專利名稱:具有共享一個共用存儲器的多個處理器的裝置的制作方法
技術領域:
本發明涉及一種數據處理裝置,該數據處理裝置包括共享一個共用存儲器的多個處理器。本發明可用于,例如,能夠對MPEG數據流進行解碼的集成電路。
文獻WO95/32579描述了MPEG解碼器。MPEG解碼器具有外部DRAM存儲器。控制單元對外部DRAM存儲器和內部雙向總線進行控制。所有在外部DRAM存儲器和不同的內部單元之間的數據傳輸均通過這個總線進行。
本發明的目的是能夠以相對較低的成本實現,特別是實現高速處理。
本發明將考慮以下方面。通常通過總線實現處理器和存儲器之間的數據通信。為了完成所述通信,總線按照每單位時間的位數具有某一通帶。當數據分別從存儲器讀出或寫入存儲器時,處理器接收和提供數據的速度由所需通帶控制。例如,實時處理視頻數據的處理器需要具有相對大通帶的總線。
原則上,總線的通帶取決于兩個因素。首先,通帶取決于形成總線的線路的電子特征,例如,如果線路具有充分的電容量,則這個線路可能每單位時間只傳送相對少的位數。其次,通帶取決于形成總線的線的數量。例如,如果線路可以每秒最大傳輸1M位,包括10條線路(寬度=10位)的總線將會具有每秒10M位的通帶。包括100條線路(寬度=100位)的總線將會具有每秒100M位的通帶。
通常的方案是使用共用總線,通過這個共用總線不同的處理器可以訪問共用存儲器。在現有技術的文獻中描述了這樣一種例子。由于共用總線將不同的處理器連接到共用存儲器上,因此其通常具有相當長的長度。這意味著該總線的線路將具有相對大的電容量。因此,為了獲得足夠的通帶,總線應具有相對大的尺寸,特別在高速使用時,例如,視頻處理時。大尺寸總線通常是昂貴的,特別是在集成電路中實施時,原因是總線占據了相對大的表面積。
根據本發明,在開篇段落中所定義類型的裝置包括
專用總線,專用總線能專門在一個處理器和所述共用存儲器之間進行數據通信;及一個存儲器接口,用于通過所述專用總線保持相當穩定的數據流,以串的形式訪問所述共用存儲器。
這會使每個專用總線的寬度最佳化專用總線的寬度是使得通帶恰好滿足相應處理器的需要。因為存儲器接口確保這些總線傳送相當穩定的數據流,因此專用總線的寬度可以得到有效利用。而且,由于專用總線僅需將單個處理器連接到共用存儲器上,因此總線會相對較短。所以,總線的一條線路可以在單位時間傳送相對多的位數。所有這些因素的結果是,在大量的實施方式中,實現了專用總線總共將占據的表面積比在現有技術中使用的共用總線的表面積更小。因此,本發明可以實現相對低的成本。
下面參考附圖對本發明及有利于實現本發明的附加特性進行詳細描述。
圖1是根據本發明的數據處理裝置;圖2示出了裝置的存儲器接口的操作;圖3是裝置的數據處理單元;圖4是裝置的存儲器接口;圖5是對單元的讀訪問;圖6a和6b是對共用存儲器的仲裁訪問;圖7是存儲器接口的存取接口;圖8是存儲器接口的緩沖存儲器裝置;圖9是用于讀的緩沖存儲器裝置。
下面的注解涉及參考符號。在所有的圖中相似的部件用相同的參考字母表示。多個相似的部件可出現在一個圖中。在那種情況下,數字后綴有參考字母以區分相似的部件。為方便可省略數字或后綴。這既適用于說明書部分,也適用于權利要求部分。
圖1所示為數據處理裝置。該裝置包括共用存儲器SDRAM、存儲器接口INT以及三個數據處理單元B1、B2和B3。這些數據處理單元在下文中稱為“單元”。每個單元B均通過專用讀總線BBR和專用寫總線BBW與存儲器接口INT相連。每個專用讀總線BBR和每個專用寫總線BBW均用于給定單元B。存儲器接口INT通過專用讀總線BBR與共用存儲器SDRAM相連。單元B、專用讀和寫總線BBR、BBW以及存儲器接口INT可以形成集成電路的一部分,共用存儲器SDRAM是外部設備。
下面描述數據處理裝置的一般操作。請求單元B接收將被處理的、存儲在共用存儲器SDRAM中的數據。在對所述數據進行處理之后,單元B將處理后的數據經存儲器接口INT提供給共用存儲器SDRAM。存儲器接口INT通過不同的單元B控制對共用存儲器SDRAM的訪問。
存儲器接口INT有兩個基本功能。首先,它在共用存儲器SDRAM的訪問級別上在不同單元B之間執行仲裁。一個單元B在某個時間能讀或寫訪問共用存儲器SDRAM。這意味著單元B僅能以串方式訪問存儲器。其次,在讀的情況下,存儲器接口INT將來自共用存儲器SDRAM并打算用于給定單元B的數據串(data burst)轉換成穩定的數據流。由此,該數據流經各自的專用讀總線BBR傳送到單元B。在寫的情況下,存儲器接口INT將來自給定單元B的穩定數據流轉換成將寫入共用存儲器SDRAM的數據串。
圖2示出了存儲器接口INT的操作。T(BM)表示共用存儲器SDRAM和存儲器接口INT之間通過共用總線BM的數據傳送。T(BBR1)、T(BBR2)和T(BBR3)分別表示存儲器接口INT和單元B1、B2和B3之間通過各自的專用讀總線BBR1、BBR2和BBR3的數據傳送。T(BBW1)、T(BBW2)和T(BBW3)分別表示存儲器接口INT和單元B1、B2和B3之間通過各自的專用寫總線BBW1、BBW2和BBW3的數據傳送。
數據傳送T(BM)由數據串DB組成。每個數據串DB對應于通過單元B以寫方式或讀方式對共用存儲器SDRAM的一次訪問操作。DB后加括號的參考標記指示串中的數據屬于該單元B,還指示訪問類型寫(W)或讀(R)。例如,DB1(B1/R)指示數據串DB1通過B1以讀方式訪問共用存儲器SDRAM。
圖2示出了存儲器接口INT執行來自共用存儲器SDRAM且屬于某一單元B的數據串的“平滑”。相反地,該圖還示出了存儲器接口INT執行從單元B接收的數據的時間集中,目的是將所述數據作為串(數據壓縮)寫入共用存儲器SDRAM中。因此,通過專用讀總線BBR和專用寫總線BBW的數據傳送受影響率較低。因此,這使專用讀總線BBR和專用寫總線BBW能具有相對較窄的通帶,結果,具有相對小的寬度。在這方面,應注意,總線大小不需要一定對應于包含在通過該總線傳送的數據中的位數。例如,16位數據可分成4位字。因此,所述數據可以經4位總線以4字序列的形式傳送。
圖3示出了單元B。單元B包括處理器P和通用地址電路AGA。處理器P進行邏輯請求LRQ。假設單元B處理視頻數據,在這種情況下,邏輯請求LRQ例如可以是請求當前圖象中給定線的象素。通用地址電路AGA將邏輯請求LRQ轉換為物理請求PRQ。物理請求PRQ定義物理地址,在該物理地址,被請求的數據存儲在共用存儲器SDRAM中。物理請求PRQ可以具有以下形式起始地址,從所述地址開始查找的多個地址,以及如果適用的話,在查找數據期間采用的一種方案。該方案可以以下列形式定義將被讀的連續地址數,將被跳過的地址數和“讀和跳”反復操作數。AGA可以以這種方式進行編程翻譯參數將邏輯請求LRQ的翻譯定義為物理請求PRQ。這能使數據靈活存入共用存儲器SDRAM中。
圖4示出了存儲器接口INT。存儲器接口INT包括仲裁器ARB,存取接口SIF,緩沖寄存器裝置BUF和地址及宏命令電路AGB。每個單元B有一個地址和宏命令電路AGB。
總之,存儲器接口INT的內部操作如下。每個地址及宏命令電路AGB將來自與其相關的單元B的物理請求分成宏命令。宏命令表示請求訪問存儲器中的給定行。在宏命令發送到仲裁器ARB之前,地址及宏命令電路AGB校驗緩沖存儲器裝置BUF中是否有足夠空間。最后,首先將宏命令提供給緩沖存儲器裝置BUF。如果緩沖存儲器裝置BUF確認有足夠空間用于存儲宏命令所定義的數據量,地址及宏命令電路AGB就將宏命令發送到仲裁器ARB。仲裁器ARB接收來自不同地址及宏命令電路AGB的宏命令并選擇一個宏命令提供給存取接口SIF。該選擇是根據下文描述的仲裁方案作出的。存取接口SIF對從仲裁器ARB接收到的宏命令以其接收順序進行處理。因此,存取接口SIF提供對共用存儲器SDRAM的訪問,存取操作有經處理的宏命令確定。
宏命令使X個地址組能被訪問,每組包括Y個地址,地址組通過Z個字彼此隔開,X、Y、Z是整數。因此宏命令包含以下信息
將被訪問的首地址;在地址(Y-1)組中首地址基礎上隨后將被訪問的地址數;在兩組連續地址(Z)之間跳過的地址數;除第一組(X-1)之外將被訪問的地址組號;訪問類型讀或寫。
宏命令位級的一個例子如下。假設存儲在共用存儲器SDRAM中的數據具有32位的寬度,共用存儲器SDRAM的最大容量位256兆位。這意味著一個地址由23位表示。進一步假設存取操作限制為最大16個地址的長度。這種限制從等待時間的角度來看是可取的。因此,X-1和Y-1最大是15,因此能以4位進行編碼。最后,行根據共用存儲器SDRAM的配置最大包含512個地址。因此,將被跳過的地址數不能超過511,結果,該數以9位被編碼。由此,宏命令的長度為23+2×4+9+1=41位。地址以位40至18進行編碼,存取類型在位17,將讀出的字數(Y-1)在位16至13,將被跳過的字數(Z)在位12至4,字組數(X-1)在位3至0。
圖5示出了通過給定單元B以讀方式訪問共用存儲器SDRAM的過程。水平維度表示時間。該圖的垂直維度表示所涉及的不同功能部件。該圖包含箭頭。這些箭頭表示訪問接口存儲器SRAM過程中的不同步驟S。
S1=相關單元B的處理器將邏輯請求LRQ發送到通用地址電路AGA。邏輯請求LRQ指定數據子集,例如在將要處理的一組數據例如圖象中線的亮度象素。
S2=通用地址電路AGA將邏輯請求LRQ轉換為物理請求PRQ。
S3=通用地址電路AGA將物理請求PRQ發送到宏命令地址電路AGB。
S4=宏命令地址電路AGB將物理請求PRQ轉換為宏命令。
S5=宏命令地址電路AGB將從物理請求PRQ導出的第一條宏命令發送到緩沖存儲器裝置BUF。
S6=緩沖存儲器裝置BUF校驗是否有存儲宏命令所確定的數據數的空間。
S7=緩沖存儲器裝置BUF將對有空間的確認發送給宏命令地址電路AGB。
S8=表示給定延遲。
S9=緩沖存儲器裝置BUF將宏命令發送給仲裁器ARB。
S10=仲裁器ARB根據仲裁方案對作為訪問共用存儲器SDRAM的請求進行處理,仲裁方案通過單元(以讀和寫方式)提供對共用存儲器SDRAM的任何訪問。
S11=仲裁器ARB將宏命令發送到存取接口SIF。
S12=宏命令在存取接口SIF排序,首先處理先接收到的宏命令。
S13=存取接口SIF根據宏命令產生共用存儲器SDRAM的控制信號。這些控制信號是宏命令指定地址上的數據被連續讀取。
S14=從共用存儲器SDRAM連續讀出的數據傳送到緩沖存儲器裝置BUF。
S15=緩沖存儲器裝置BUF暫時存儲數據。
S16=緩沖存儲器裝置BUF以穩定方式將數據傳送到處理器P中。
在步驟S1中作出的邏輯請求LRQ之后對每個宏命令重復步驟S1-S15。
下面的步驟在圖5中未示出。在步驟S1,通用地址電路AGA向處理器P發送確認信號。該信號指示邏輯請求LRQ已經被接受并將對其進行處理。響應確認信號,處理器P產生新的邏輯請求并保持該請求直至進一步通知。當緩沖存儲器裝置BUF響應邏輯請求LRQ發送最后的宏命令時,完成邏輯請求LRQ的處理。在那種情況下,緩沖存儲器裝置BUF向通用地址電路AGA發送確認信號以指示后者邏輯請求LRQ的處理已經完成。作為響應,通用地址電路AGA開始處理新的邏輯請求LRQ,處理方式與步驟S1中邏輯請求LRQ的處理過程類似。換言之,重復該過程圖6a和6b示出了仲裁器ARB的仲裁方案。在圖6a中,循環示出了8個狀態ST1-ST8。這些狀態ST以循環的方式一個接一個出現。每個狀態ST表示向存取接口SIF發送宏命令的可能性。因此,每個狀態表示訪問存儲器的可能性。每個狀態對應于一個給定處理器P。對應于給定狀態的處理器P在表示狀態的循環中中被指定。
圖6b表示與圖6a相對應的仲裁過程。該過程包括多個步驟SA1-SA8,并對圖6a中的每個狀態ST加以實施。步驟SA1是在狀態跳躍之后實施的第一個步聚。在步驟SA1,仲裁器ARB校驗宏命令是否處于等待狀態,宏命令由緩沖存儲器裝置BUF發送并跟隨來自對應于狀態S[i]的處理器P[j]的邏輯請求LRQ。如果這種宏命令處于等待狀態,則在步驟SA1之后進行步驟SA2。在步驟SA2中,仲裁器ARB將相關的宏命令發送到存取接口SIF。其作用是在給定延遲之后,共用存儲器SDRAM被宏命令定義的相關處理器P訪問。在宏命令已經向下一個狀態發送仲裁跳躍后,這意味著重復圖6b中所表示的過程。
但是,如果在步驟S1中,仲裁器ARB已經檢測出沒有與對應于狀態S[i]的處理器P相關的處于等待狀態的宏命令,則在步驟SA1之后進行步驟SA3,仲裁器ARB校驗是否其他宏命令正在等待。如果沒有其他宏命令正在等待,仲裁器ARB就跳到下一個狀態,并重復圖6b所示的過程。如果有其他宏命令正在等待,仲裁器ARB則執行步驟SA4。在步驟SA4中,仲裁器ARB以優先權順序選擇宏命令。每個宏命令有給定的優先級。優先級由發出宏命令的處理器P確定。因此,仲裁器ARB選擇優先級最高的宏命令并將該宏命令發送到存取接口SIF。在發送宏命令之后,ARB跳到下一個狀態,這意味著重復圖6b所示過程。
根據圖6a和6b,應注意,每個狀態對應于一個處理器P是不必要的。可能引入不與任何處理器P對應的一個或多個狀態,這意味著有可能引入自由狀態。在自由狀態的情況下,仲裁器ARB僅在優先級的基礎上選擇宏命令。這種自由狀態在這種情況下是有用的數據處理裝置包括處理器P,處理器P在等待時間和共用存儲器SDRAM的訪問等級上的通帶方面的限制是比較適中的。因此,為了避免該處理器P未給定充分的存取,可能引入自由狀態。處理器P能利用這些自由狀態訪問共用存儲器SDRAM。
圖7示出了存取接口SIF的一個例子。存取接口SIF包括宏命令緩沖存儲器FIFO_MC,列生成器CAGU,命令生成器CGU,控制信號生成器IF_SDRAM,數據緩沖存儲器IF_D。
存取接口SIF的一般操作如下。宏命令緩沖存儲器FIFO_MC接收來自仲裁器ARB的宏命令。該存儲器暫時存儲這些宏命令并將它們以其到達順序發送到列生成器CAGU。在宏命令緩沖存儲器FIFO_MC已滿因此不能接受新的宏命令的情況下,它將此報告給種裁器ARB。來自存取接口SIF的該信號的結果指示其“FIFO是滿的”,仲裁器ARB延遲當前所選擇的宏命令的傳送直至宏命令緩沖存儲器FIFO_MC報告它能接受新的宏命令那一個時刻為止。事實上,來自存取接口SIF的“FIFO是滿的”信號將仲裁器ARB“凍結”一段時間。
當根據前述宏命令的存儲器訪問操作已經完成時,列生成器CAGU請求來自宏命令緩沖存儲器FIFO_MC的新的宏命令。結果,列生成器CAGU與命令生成器CGU組合將宏命令翻譯成一系列地址。共用存儲器SDRAM的地址由共用存儲器SDRAM的組數、行數和列數決定。已經指出,宏命令與對存取存儲器SRAM的單行的訪問有關,它自動隱含了訪問發生在單組中。因此。它足以使列生成器CAGU在宏命令的基礎上生成一系列列,以便根據宏命令定義一系列地址。列生成器CAGU的實現例如可以包括一些計數器和一些邏輯電路。在這種結構下,宏命令的內容用于對計數器進行編程。
命令生成器CGU連續接收共用存儲器SDRAM的另一個列號。命令生成器CGU還從宏命令緩沖存儲器FIFO_MC接收由宏命令定義的地址的組數和行數。該信息能使列生成器CAGU定義一系列訪問共用存儲器SDRAM的命令,每個命令定義一個地址。而且,命令生成器CGU產生將共用存儲器SDRAM設置為正確狀態的必要命令,以便允許由宏命令定義的存取操作。這些命令涉及共用存儲器SDRAM的適當處理,例如預裝載和激活。而且,命令生成器CGU確保共用存儲器SDRAM以規則間隔被刷新并產生必要的命令以執行這些刷新操作。
控制信號生成器IF_SDRAM根據從命令生成器CGU接收到的命令產生控制信號。例如,控制信號生成器IF_SDRAM產生簡稱以首字母縮寫下的RAS、CAS的信號。控制信號生成器IF_SDRAM確保在一系列控制信號中遵守共用存儲器SDRAM的特定等待時間。這些等待時間可以根據所用的共用存儲器SDRAM類型而變化。因此,控制信號生成器IF_SDRAM對于所用共用存儲器SDRAM的類型是特殊的。如果要使用另一種類型的共用存儲器SDRAM,就要充分修改即對控制信號生成器IF_SDRAM重新編程。原則上,存取接口的其他部件不需要任何修改。
數據緩沖存儲器IF_D在讀的情況下將數據從共用存儲器SDRAM傳送到圖4所示的緩沖存儲器中,在寫的情況下將數據從緩沖存儲器BUF傳送到共用存儲器SDRAM中。為此目的,數據緩沖存儲器IF_D使共用存儲器SDRAM(讀時)所提供的或提供給共用存儲器SDRAM(寫時)的數據同步。而且,數據緩沖存儲器IF_D形成具有一個單位深度的FIFO。這意味著如果給定時鐘脈沖使數據從共用存儲器SDRAM中讀出,則該數據將在下一個時鐘脈沖被傳送到緩沖存儲器裝置BUF。在寫的情況下,以另一方式完成。
圖8示出了形成圖4所示的存儲器接口INT部分的緩沖存儲器裝置BUF。緩沖存儲器裝置BUF包括讀緩沖存儲器裝置BUFR和寫緩沖存儲器裝置BUFW以及用于確認信號FIFO_ACK的緩沖存儲器。如圖1所示,讀緩沖存儲器裝置BUFR和寫緩沖存儲器裝置BUFW經存取接口SIF和共用總線BM與共用存儲器SDRAM相連接。讀緩沖存儲器裝置BUFR分別經專用讀總線BBR1、BBR2和BBR3與單元B1、B2和B3相連接。寫緩沖存儲器裝置BUFW分別經專用讀總線BBW1、BBW2和BBW3與單元B1、B2和B3相連接。確認信號緩沖存儲器FIFO_ACK與仲裁器ARB相連接。
緩沖存儲器裝置BUF的一般操作如下。讀緩沖存儲器裝置BUFR臨時存儲從共用存儲器SDRAM接收的數據,而寫緩沖存儲器裝置BUFW存儲將寫入共用存儲器SDRAM中的和從單元B接收到的數據。確認信號緩沖存儲器FIFO_ACK接收來自仲裁器ARB的確認信號。這種信號指示仲裁器ARB已經將宏命令提供給存取接口SIF。
確認信號緩沖存儲器FIFO_ACK的深度與圖7所示的存取接口SIF的宏命令緩沖存儲器FIFO_MC的深度相同。因此,當宏命令離開宏命令緩沖存儲器FIFO_MC時,結果是根據宏命令進行的存儲器訪問受到了影響,與該宏命令相對應的確認信號離開確認信號緩沖存儲器FIFO_ACK。該信號指示相關的訪問操作是讀訪問還是寫訪問。在首先提到的情況下,讀緩沖存儲器裝置BUFR被激活,從共用存儲器SDRAM接收數據,而在最后提到的情況下,寫緩沖存儲器裝置BUFW被激活,將數據發送到共用存儲器SDRAM種。由確認信號緩沖存儲器FIFO_ACK提供的確認信號進一步指示在宏命令所定義的存取操作中包含的數據量。在讀或寫的情況下,緩沖存儲器裝置BUF分別用該指示進行“將數據存到哪里或從哪里獲取數據”的內部管理。
圖9示出了讀緩沖存儲器裝置BUFR的一個例子。讀緩沖存儲器裝置BUFR包括輸入緩沖存儲器IB,存取存儲器SRAM,包含多個輸出緩沖存儲器OB的裝置,控制電路CON裝置,以及接口存儲器存取仲裁器ARBBR。輸入緩沖存儲器IB經已在圖4中示出的存取接口SIF連接到共用存儲器SDRAM。輸出緩沖存儲器OB1、OB2和OB3分別經專用讀總線BBR1、BBR2和BBR3連接到處理器P1、P2和P3,圖2和3中示出的最后提到的部件。控制電路CON1、CON2和CON3分別與宏命令地址電路AGB1、宏命令地址電路AGB2和宏命令地址電路AGB3以及存取接口SIF相連接。
讀緩沖存儲器裝置BUFR操作如下。從共用存儲器SDRAM接收的數據具有N位寬度,N是整數,以頻率F到達。接口存儲器SRAM具有2N位的寬度,這意味著一個地址能包含2N位,且以頻率F操作。輸入緩沖存儲器IB形成來自共用存儲器SDRAM的兩個連續數據對并將這些對載入接口存儲器SRAM中。形成一個對需要兩個時鐘周期。當假設從共用存儲器SDRAM接收到的所有連續數據都可以配對時,則每兩個時鐘周期進行對接口存儲器SRAM的寫訪問。訪問單個地址僅需要一個時鐘周期。因此,在兩個寫訪問操作之間,可用一個時鐘周期作為讀訪問接口存儲器SRAM,以便將從共用存儲器SDRAM讀出的數據傳送到單元B。這樣在理論上,對接口存儲器SRAM的寫訪問和讀訪問能交替進行,一個接一個。對接口存儲器SRAM的訪問將在下文中詳細描述。
實際上,接口存儲器SRAM分為三個區Z1、Z2和Z3。區Z1、Z2和Z3分別包含將用于處理器P1、P2和P3的數據。來自共用存儲器SDRAM的數據根據發出當前宏命令的處理器P經輸入緩沖存儲器IB寫入區Z1、Z2或Z3。在區Z1、Z2和Z3中存在的數據以穩定的方式并根據固定方案分別被傳送到輸出緩沖存儲器OB1、OB2和OB3。輸出緩沖存儲器OB實際上將數據分成多個部分,并將相關數據一部分一部分地提供給相應的處理器P。例如,輸出緩沖存儲器OB能將16位分成4-位部分。因此,取代需要16-位總線的在一個時鐘周期內傳送數據的是僅需要4-位總線的在4個時鐘周期內一部分一部分地傳送數據。
控制電路CON1、CON2和CON3分別控制區Z1、Z2和Z3。為此目的,每個控制電路CON控制一組參數,這些參數包括寫指針,讀指針和區占有值。寫指針定義來自共用存儲器SDRAM的數據的寫入地址。讀指針定義將傳送到相關輸出緩沖存儲器OB的數據的地址。占有值指示仍可用于存儲從共用存儲器SDRAM接收到的數據的地址號。控制電路CON1、CON2和CON3還分別控制緩沖存儲器OB1、OB2和OB3。為此目的,每個控制電路CON控制表示相應OB占有狀態的參數。
現在描述由控制電路CON執行的控制過程,假設共用存儲器SDRAM如圖5所示那樣被訪問。在步驟S5中,宏命令地址電路AGB將宏命令提交給緩沖存儲器裝置BUF。該宏命令由對應于發出宏命令的處理器P的控制電路CON進行處理。控制電路CON將宏命令定義的數據數量與占有值相比較。因此,控制電路CON校驗在相關的區Z內是否有足夠空間來存儲期望的數據。如果有足夠的空間,控制電路CON則將此報告給宏命令地址電路AGB,而且更新占有參數。這意味著它考慮了已經存儲在相關區內的數據同時應該這樣做。因此,可以將占有參數的更新看成是相關區內的一種駐留。
下面描述在圖5所示的步驟S12過程中發生了什么。該步驟S12表示根據相關宏命令讀出共用存儲器SDRAM。已經解釋了,在存取接口SIF開始處理宏命令并開始讀出的時刻,與相關宏命令相關的確認信號離開圖7所示的確認信號緩沖存儲器FIFO-ACK。該確認信號指示訪問是寫操作,而且,該信號指定產生宏命令的處理器P。因此,對應于該處理器P的控制電路CON知道它應當提供應存儲在共用存儲器SDRAM內的數據地址,而且,控制電路CON根據宏命令接收在存取操作中所涉及的數據數量的指示,該指示形成確認信號的一部分。
在來自共用存儲器SDRAM的數據對寫入相關區Z的每個時刻,控制電路CON將寫指針加1。而且,更新占有值。控制電路CON繼續這樣做直至有宏命令定義的對共用存儲器SDRAM的讀訪問已經完成。控制電路CON借助于包含在存取操作中的數據數量來檢測存儲操作的結束,該數量由確認信號和通過記數寫入接口存儲器SRAM內的數據表示。
每次從給定區Z讀出數據對之后,控制該區的控制電路CON就將讀指針加1。而且,更新占有值。
接口存儲器存取仲裁器ARBBR控制對接口存儲器SRAM的訪問。有幾種訪問類型(1)通過存取接口SIF訪問,將數據從共用存儲器SDRAM寫入接口存儲器SRAM,(2)通過輸出緩沖存儲器OB1進行的存取操作,(3)通過輸出緩沖存儲器OB2進行的存取操作,以及(4)通過輸出緩沖存儲器OB3進行的存取操作。最后提到的三種存取操作用于將包含在接口存儲器SRAM內的數據分別傳送到處理器P1、P2和P3。
對接口存儲器SRAM的任何訪問響應提交給接口存儲器存取仲裁器ARBBR的請求而作出的。從當前請求,接口存儲器存取仲裁器ARBBR選擇具有最高優先級的請求。寫訪問請求(經存取接口SIF訪問)的優先級最大。正如上文所解釋的,由于寫入數據對,這種請求通常每兩個時鐘周期僅出現一次。寫操作僅需要一個時鐘周期。因此,有足夠的機會以讀方式訪問接口存儲器SRAM,以便將數據傳送到不同的處理器P。
給定輸出緩沖存儲器OB的讀訪問請求是根據輸出緩沖存儲器OB和單元B之間的專用讀總線BBR的大小作出的。例如,假設總線大小是N/2位。這意味著在每個時鐘周期內N/2位部分能從輸出緩沖存儲器OB傳送到單元B。接口存儲器SRAM的讀取是以數據對的形成進行的。一個數據對包括2N位。所以,將一個數據對送入單元B需要4個時鐘周期。一個數據對的傳送包含請求以讀方式訪問接口存儲器SRAM。因此,在本例中,OB將每4個時鐘周期提交一個訪問請求。該例顯示出通向單元B的總線的大小規定不同輸出緩沖存儲器OB的訪問請求的頻率。如果專用讀總線BBR的大小是N/4位,則每8個時鐘周期有一個訪問請求。
下面的描述涉及一例對訪問接口存儲器SRAM的仲裁。假設專用讀總線BBR1的大小是N/2位,專用讀總線BBR2的大小和專用讀總線BBR3的大小是N/4位。存取接口SIF的存取操作優先級最高,之后,優先級的順序是輸出緩沖存儲器OB1、OB2和OB3的存取操作。
最后,假設所有類型的訪問(SIF,OB1,OB2,OB3)請求在第一時鐘周期內同時提交。
周期1所有請求同時作出;
待處理的請求存取接口SIF,輸出緩沖存儲器OB1、OB2和OB3。
周期2具有最高優先級的存取接口SIF占用該通路并撤銷其請求;輸出緩沖存儲器OB1、OB2和OB3保持其請求;待處理的請求輸出緩沖存儲器OB1、OB2和OB3;周期3具有第二高優先級的輸出緩沖存儲器OB1具有引線并撤銷其請求;存取接口SIF提交新請求;待處理的請求存取接口SIF,輸出緩沖存儲器OB2和OB3;周期4具有最高優先級的存取接口SIF占用該通路并撤銷其請求;輸出緩沖存儲器OB2和OB3維持它們的請求;待處理的請求輸出緩沖存儲器OB2和OB3;周期5具有第三高優先級的輸出緩沖存儲器OB2占用該通路并撤銷其請求;存取接口SIF提交新請求;待處理的請求存取接口SIF和輸出緩沖存儲器OB3;周期6具有最高優先級的存取接口SIF占用該通路并撤銷其請求;輸出緩沖存儲器OB1正在用盡緩沖容量并再次提交請求;待處理的請求存取接口SIF,輸出緩沖存儲器OB1和OB3;周期7具有第二高優先級的輸出緩沖存儲器OB1占用該通路并撤銷其請求;存取接口SIF提交新請求;待處理的請求存取接口SIF和輸出緩沖存儲器OB3;周期8具有最高優先級的存取接口SIF占用該通路并撤銷其請求;輸出緩沖存儲器OB3維持其請求;待處理的請求輸出緩沖存儲器OB3;周期9具有第四高優先級的輸出緩沖存儲器OB3占用該通路并撤銷其請求;存取接口SIF提交新請求;待處理的請求存取接口SIF;周期10具有最高優先級的存取接口SIF占用該通路并撤銷其請求;輸出緩沖存儲器OB1正在用盡緩沖容量并再次提交請求;待處理的請求輸出緩沖存儲器OB1;周期11具有第二高優先級的輸出緩沖存儲器OB1占用該通路并撤銷其請求;存取接口SIF提交新請求;待處理的請求存取接口SIF;周期12具有最高優先級的存取接口SIF占用該通路并撤銷其請求;輸出緩沖存儲器OB2正在用盡緩沖容量并再次提交請求;待處理的請求輸出緩沖存儲器OB2;周期13具有第三高優先級的輸出緩沖存儲器OB2占用該通路并撤銷其請求;存取接口SIF提交新請求;待處理的請求存取接口SIF;周期14具有最高優先級的存取接口SIF占用該通路并撤銷其請求;輸出緩沖存儲器OB1正在用盡緩沖容量并再次提交請求;待處理的請求輸出緩沖存儲器OB1;周期15具有第二高優先級的輸出緩沖存儲器OB1占用該通路并撤銷其請求;存取接口SIF提交新請求;待處理的請求存取接口SIF;周期16具有最高優先級的存取接口SIF占用該通路并撤銷其請求;輸出緩沖存儲器OB3正在用盡緩沖容量并再次提交請求;待處理的請求輸出緩沖存儲器OB3;周期17具有第四高優先級的輸出緩沖存儲器OB3占用該通路并撤銷其請求;存取接口SIF提交新請求;待處理的請求存取接口SIF;周期18具有最高優先級的存取接口SIF占用該通路并撤銷其請求;輸出緩沖存儲器OB1正在用盡緩沖容量并再次提交請求;
待處理的請求輸出緩沖存儲器OB1;周期19具有第二高優先級的輸出緩沖存儲器OB1占用該通路并撤銷其請求;存取接口SIF提交新請求;待處理的請求存取接口SIF;周期20具有最高優先級的存取接口SIF占用該通路并撤銷其請求;輸出緩沖存儲器OB2正在用盡緩沖容量并再次提交請求;待處理的請求輸出緩沖存儲器OB2;周期21具有第三高優先級的輸出緩沖存儲器OB2占用該通路并撤銷其請求;存取接口SIF提交新請求;待處理的請求存取接口SIF;周期22具有最高優先級的存取接口SIF占用該通路并撤銷其請求;輸出緩沖存儲器OB1正在用盡緩沖容量并再次提交請求;待處理的請求輸出緩沖存儲器OB1;周期23具有第二高優先級的輸出緩沖存儲器OB1占用該通路并撤銷其請求;存取接口SIF提交新請求;待處理的請求存取接口SIF;周期24具有最高優先級的存取接口SIF占用該通路并撤銷其請求;輸出緩沖存儲器OB3正在用盡緩沖容量并再次提交請求;待處理的請求輸出緩沖存儲器OB3;周期25具有第四高優先級的輸出緩沖存儲器OB3占用該通路并撤銷其請求;存取接口SIF提交新請求;待處理的請求存取接口SIF;周期26具有最高優先級的存取接口SIF占用該通路并撤銷其請求;輸出緩沖存儲器OB1正在用盡緩沖容量并再次提交請求;待處理的請求輸出緩沖儲器OB1;等等。
上文所述的存取操作具有8個周期的一個循環。這就好象仲裁是通過具有8個狀態的循環機來實現的。這是由于在本例中假沒所有的單元B都以有規律的方式處理其數據。
而且,假設每兩個時鐘周期有規律地通過存取接口SIF遞交一次訪問請求。實際上,這些假設不一定是正確的。為此,最好借助于仲裁器并按照優先級的順序控制對接口存儲器SRAM的訪問,而不是借助于循環機。就對接口存儲器SRAM的訪問而言,仲裁器具有一定程度的靈活性,因此,它能更好地利用可用于數據傳送的帶寬。
下面是一個規則之例外的例子,根據該例子,每兩個時鐘周期僅有一次對接口存儲器SRAM寫訪問(=通過存取接口SIF訪問)。該例外出現在響應包含奇數個數據的宏命令對共用存儲器SDRAM進行訪問的情況下。在該訪問中涉及的所有數據,除了最后的數據元,都具有伙伴并由此形成對寫入接口存儲器SRAM中。最后的數據元是單獨的。用下一個數據元形成一個對是不可能的,因為該數據元是另一個存取操作的第一個數據元,因此將用于另一個處理器P。結果,該另一個存取操作的第一個數據元應當存儲在接口存儲器SRAM的另一個區Z中。因此,一旦到達包含奇數個數據元的訪問的最后數據元的輸入緩沖存儲器IB,所述數據就在該時鐘周期內在沒有伙伴的情況下載入接口存儲器SRAM中,該時鐘周期在對包含在存取操作內的最后的數據對進行寫操作之后。因此,在一個周期內將連續有兩個寫訪問操作,否則在兩次寫訪問操作之間會允許一次讀訪問。
圖5和9與存儲器借口INT以讀方式進行的操作有關。在寫方式下的操作實際上是對稱的。這意味著寫緩沖存儲器裝置BUFW與上文所述的讀緩沖存儲器裝置BUFR相類似。因此,寫緩沖存儲器裝置BUFW包括分成區的接口存儲器,每個區與不同的單元B相關聯。單元B能在指示該數據應該存取在哪里的宏命令之前或之后提供將寫入共用存儲器的數據。實際上,與區相對應的單元B一提供將存儲在共用存儲器的數據,區就會被填滿。例如所述填充可以繼續直至該區完全被數據填滿。在這種情況下,存儲器接口INT將向相關單元B表示再沒有存儲新數據的空間了。這將防止單元B提供新數據直至空間變得在相關區中是可用的。數據從區Z傳送到共用存儲器導致空間可用。宏命令一被仲裁器ARB接受并經存取接口SIF處理,就會發生該數據傳送。在相關單元B已經提供數據之前發送宏命令也同樣是可能的。在任何情況下,只要寫緩沖存儲器裝置BUFW不指示相關區的充分填充水平,就不會向仲裁器ARB提供宏命令。
上文參考圖1-9所述的數據處理裝置是開頭部分的“發明概述”概括的本發明的一個實施例。參考圖1,專用讀總線BBR1和專用寫總線BBW1能使數據專門在單元B1和共用存儲器SDRAM之間進行通信。專用讀總線BBR2和專用寫總線BBW2能使數據專門在單元B2和共用存儲器SDRAM之間進行通信。專用讀總線BBR3和專用寫總線BBW3能使數據專門在單元B3和共用存儲器SDRAM之間進行通信。存儲器接口INT允許每個單元B以數據串的形式訪問共用存儲器,同時在專用讀和寫總線BBR、BBW上產生穩定的數據流。事實上,對于每個單元B來說,存儲器接口INT對從共用存儲器SDRAM讀出并將用于單元B的數據串進行平滑。相反,對于每個單元B來說,存儲器接口INT對從單元B接收到的數據執行時間集中,以便將數據以串的形式寫入共用存儲器SDRAM中。
附圖以及上文的說明都是示意性的而不限制本發明。顯然,可以在所附權利要求的范圍內進行各種變形。就此作出以下說明。
實現本發明所述的數據處理裝置有各種方式。圖1所示的數據處理裝置包括三個處理器。其他的實施例可以包括三個以上或三個以下的處理器。而且,每個處理器具有專用總線不是必須的。一些處理器可以共享一條共用總線,通過該共用總線,處理器可以訪問共用存儲器。例如,圖1所示的數據處理裝置可以包括兩個或兩個以上附加處理器,未示出,這些處理器共享一條共用總線,通過該共用總線,它們可以訪問共用存儲器SDRAM或另一個共用存儲器。
實現專用總線有不同的方式。圖1所示的數據處理裝置包括專用讀總線BBR和專用寫總線BBW。其他實施例可以包括專用雙向總線。在該實施例中,處理器通過專用雙向總線既能從共用存儲器讀數據又能將數據寫入共用存儲器總。該專用雙向總線將運送穩定的讀數據流和穩定的寫數據流,這兩種流是交叉存取的。
實現存儲器接口有不同的方式。圖4所示的存儲器接口在仲裁的基礎上提供對共用存儲器的訪問。其他實施例可以在固定方案的基礎上提供對共用存儲器的訪問。固定方案可以是包括用于每個處理器的至少一個時隙的重復性存取方式。
通過硬件或軟件,或者既用硬件又用軟件來實現功能有不同的方式。在這方面,圖是概略的,每個圖僅表示本發明的一種可能的實施例。因此,盡管圖示出了不同的功能作為不同的塊,但這決不排除一個硬件或軟件完成幾種功能。也不排除硬件、軟件或兩者的組合實現一種功能。
例如,圖4示出了包括不同塊組合的存儲器接口控制對共用存儲器的訪問,并控制包括在存儲器接口內的存儲器電路。原理上,通過適當的被編程的計算機電路實現三個塊是可能的。載入程序存儲器的指令組使計算機電路實現參考圖1-9所述的各種控制操作。指令組可以通過讀載體例如磁盤將指令組載入程序存儲器中,所述載體包含指令組。讀載體可以通過通信網絡實現,例如因特網。即,服務提供商可以通過通信網絡使指令組可用。
權利要求中的任何參考標記都不限制權利要求。詞“包含”不排除存在權利要求中所列部件和步驟以外的其他部件和步驟。部件或步驟前面的字“一個”不排除存在多個這種部件和步驟。
權利要求
1.一種數據處理裝置,包括多個與一個共用存儲器配合布置的處理器,其特征在于,所述數據處理裝置包括專用總線,專用總線能專門在一個處理器和所述共用存儲器之間進行數據通信;以及一個存儲器接口,用于提供以數據串的形式對所述共用存儲器進行訪問,同時在所述專用總線上產生穩定的數據流。
2.根據權利要求1所述的數據處理裝置,其特征在于,所述存儲器接口包括一個共用緩沖存儲器;以及一個控制裝置,用于控制所述共用存儲器內的屬于不同處理器的區。
3.根據權利要求2所述的數據處理裝置,其特征在于,所述存儲器接口包括一個仲裁器,用于控制對所述共用緩沖存儲器的訪問。
4.一種通過經專用總線與共用存儲器配合布置的多個處理器處理數據的方法,專用總線能專門在處理器和共用存儲器之間進行數據通信;所述方法包括以下步驟提供以數據串的形式對所述共用存儲器進行訪問,同時在所述專用總線上產生穩定的數據流。
5.一種用于數據處理裝置的計算機程序產品,包括經存儲器接口和專用總線與共用存儲器配合布置的多個處理器,計算機程序產品包括一組指令,當所述指令載入數據處理裝置中時,使所述存儲器接口提供以數據串的形式對所述共用存儲器進行訪問,同時在所述專用總線上產生穩定的數據流。
全文摘要
數據處理裝置包括多個處理器。這些處理器共享一個共用存儲器。所述裝置包括專用總線。專用總線能專門在處理器和共用存儲器之間進行數據通信。存儲器接口提供以數據串的形式對共用存儲器進行訪問,同時在專用總線上產生穩定的數據流。
文檔編號G06F15/167GK1286442SQ0013059
公開日2001年3月7日 申請日期2000年8月28日 優先權日1999年8月31日
發明者T·諾維特, H·德珀休斯, S·穆茨 申請人:皇家菲利浦電子有限公司