專利名稱:緩沖器的隊(duì)列管理器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明通常涉及數(shù)據(jù)隊(duì)列的管理,該數(shù)據(jù)隊(duì)列接收自外部源并被輸入到一個(gè)設(shè)備中做進(jìn)一步處理。本發(fā)明尤其涉及一種與FIFO緩沖器一起用于控制所接收數(shù)據(jù)隊(duì)列的改進(jìn)DRAM。
在許多應(yīng)用中,在短時(shí)間段內(nèi)接收數(shù)據(jù)的速率比特殊設(shè)備利用數(shù)據(jù)的速率高,因此迫使隊(duì)列數(shù)據(jù)有序地輸入到其將被使用的設(shè)備中。一種通用型隊(duì)列是先進(jìn)先出(FIFO)緩沖器,它將從某種外部源接收的數(shù)據(jù)臨時(shí)存儲(chǔ)起來,以接收設(shè)備能夠適應(yīng)的速度輸入到接收設(shè)備中。遇到的問題之一是FIFO緩沖器可能會(huì)超過其容量來存儲(chǔ)輸入比輸出更快的數(shù)據(jù)。因此,當(dāng)這種輸入數(shù)據(jù)比FIFO緩沖器的存儲(chǔ)容量更大時(shí),需要在時(shí)間周期內(nèi)以具有最小開銷的有序方法來管理數(shù)據(jù)。
根據(jù)本發(fā)明,提供一種FIFO緩沖器的帶寬保存隊(duì)列管理器,最好在ASIC芯片上且最好包括獨(dú)立的DRAM,該獨(dú)立的DRAM包含可擴(kuò)展到FIFO緩沖器數(shù)據(jù)存儲(chǔ)空間以外從而提供所需的附加數(shù)據(jù)存儲(chǔ)空間的FIFO隊(duì)列。在ASIC芯片上使用FIFO緩沖器來存儲(chǔ)和檢索多重隊(duì)列入口。只要隊(duì)列的總大小不超過緩沖器中的有效存儲(chǔ),則不需要附加數(shù)據(jù)存儲(chǔ)器。然而,當(dāng)超過FIFO緩沖器中的緩沖器存儲(chǔ)空間時(shí),則在附加數(shù)據(jù)存儲(chǔ)器中寫入和讀取數(shù)據(jù),附加數(shù)據(jù)存儲(chǔ)器最好是DRAM且最好是包的形式,包具有保持?jǐn)?shù)據(jù)存儲(chǔ)設(shè)備最佳性能的最佳大小,且按地址的先進(jìn)先出(FIFO)順序進(jìn)行排列這樣的方式將包寫入數(shù)據(jù)存儲(chǔ)器。DRAM可以是獨(dú)立芯片,或者也可以形成在ASIC上。在兩者中的任一種情況下,其存儲(chǔ)器與FIFO緩沖器是分離的。
圖1是本發(fā)明被管理的DRAM隊(duì)列管理器結(jié)構(gòu)的高級(jí)簡(jiǎn)圖;圖2是輸入FIFO緩沖器的稍微概略的詳細(xì)視圖,及圖3是輸出FIFO緩沖器的稍微概略的詳細(xì)視圖。
現(xiàn)在參考附圖,先參考圖1,所示為根據(jù)本發(fā)明的帶寬保存DRAM隊(duì)列管理器的結(jié)構(gòu)和操作概貌。在ASIC芯片10上形成隊(duì)列管理器。隊(duì)列管理器從外部源接收的數(shù)據(jù)輸入12,輸入到數(shù)據(jù)按隊(duì)列排列的輸入FIFO(先進(jìn)先出)緩沖器14。數(shù)據(jù)16從輸入FIFO緩沖器14中輸出到存儲(chǔ)器接口18和多路轉(zhuǎn)接器(Mux)20。存儲(chǔ)器接口18連接到獨(dú)立芯片DRAM芯片22(然而,DRAM可形成在ASIC10上)。多路轉(zhuǎn)接器控制邏輯24控制多路轉(zhuǎn)接器20選擇性地把數(shù)據(jù)16從FIFO緩沖器14輸出到DRAM芯片22或輸出FIFO緩沖器32上。FIFO緩沖器32把數(shù)據(jù)34輸出到將要被提供數(shù)據(jù)的設(shè)備(未示出)中。
通常,圖1所示的隊(duì)列管理器以下列方式操作將寫入隊(duì)列的數(shù)據(jù)12輸入到輸入FIFO緩沖器14中。離開FIFO的數(shù)據(jù)16可以進(jìn)入輸出FIFO緩沖器32也可以進(jìn)入外部存儲(chǔ)器接口18,然后再根據(jù)輸入FIFO緩沖器14和輸出FIFO緩沖器32中是否有足夠的空間給正在從外部源讀取的數(shù)據(jù)來通過多路轉(zhuǎn)接器20和多路轉(zhuǎn)接器控制邏輯24控制進(jìn)入DRAM芯片22。對(duì)多路轉(zhuǎn)接器20的控制基于下列條件即,輸入FIFO緩沖器14和輸出FIFO緩沖器32是否為滿的或至少具有滿容量的預(yù)定百分比。當(dāng)有比最大允許值更多的數(shù)據(jù)將存儲(chǔ)在輸入FIFO緩沖器14和輸出FIFO緩沖器32中時(shí),多路轉(zhuǎn)接器20選擇將要寫入到外部存儲(chǔ)接口18中的數(shù)據(jù),然后將數(shù)據(jù)存儲(chǔ)在DRAM芯片22中。當(dāng)讀取輸出FIFO緩沖器32時(shí),在多路轉(zhuǎn)接器控制邏輯24控制下通過存儲(chǔ)接口將數(shù)據(jù)從DRAM芯片22中讀入到輸出FIFO緩沖器32中。因此,只要從外部源中讀取的輸入數(shù)據(jù)12的量不超過輸入FIFO緩沖器14和輸出FIFO緩沖器32的預(yù)選容量,則數(shù)據(jù)直接從輸入FIFO緩沖器14傳送到輸出FIFO緩沖器32。
然而,當(dāng)所輸入的數(shù)據(jù)12的量超過輸入FIFO緩沖器14和輸出FIFO緩沖器32的容量或容量的預(yù)定百分比時(shí),則輸入FIFO緩沖器14通過存儲(chǔ)接口18將數(shù)據(jù)寫入到DRAM芯片22中。DRAM芯片22具有在相連地址以先進(jìn)先出原理進(jìn)行寫入和讀取的結(jié)構(gòu),從而不再需要如傳統(tǒng)高速緩沖存儲(chǔ)器中的地址變換。每次一個(gè)數(shù)據(jù)項(xiàng)地將數(shù)據(jù)從外部源寫入輸入FIFO緩沖器14和從輸入FIFO緩沖器14寫入輸出FIFO緩沖器32。然而,數(shù)據(jù)最好是寫入到存儲(chǔ)接口18中并從那里進(jìn)入DRAM芯片22,由輸出FIFO32以成組多數(shù)據(jù)項(xiàng)形式從DRAM芯片22讀取數(shù)據(jù)來利用DRAM芯片22的最佳傳輸率。此外,由于按先進(jìn)先出原理對(duì)DRAM進(jìn)行排列,因此可利用組性能且不需要將地址標(biāo)記加到所寫入的數(shù)據(jù)上。因此,例如,可以以三項(xiàng)的數(shù)據(jù)包的形式將數(shù)據(jù)寫入DRAM芯片22中和從DRAM芯片22中讀出,而不必由地址一個(gè)一個(gè)地讀取每個(gè)數(shù)據(jù)項(xiàng)。DRAM最好是DDR(雙倍數(shù)據(jù)率)DRAM。雙倍數(shù)據(jù)率DRAM允許給定數(shù)量的ASIC包上I/O引腳的數(shù)據(jù)帶寬是標(biāo)準(zhǔn)同步DRAM的兩倍。這是通過在時(shí)鐘信號(hào)的上升沿和下降沿上都裝入和捕捉數(shù)據(jù)來實(shí)現(xiàn)的。RAMBUS是在一些應(yīng)用中有利于增加每英寸帶寬的另一種方案。
現(xiàn)在參考圖2,所示為輸入FIFO緩沖器14更為詳細(xì)的描述。輸入FIFO緩沖器14包括鎖存器,鎖存器在用于六個(gè)不同數(shù)據(jù)項(xiàng)的存儲(chǔ)單元40a,40b,40c,40d,40e和40f上。從外部源每次一個(gè)數(shù)據(jù)項(xiàng)地讀取數(shù)據(jù)項(xiàng),并在控制選擇器40a,40b和40c的控制下每次一個(gè)數(shù)據(jù)項(xiàng)地寫入FIFO緩沖器14中。設(shè)有為比較器48提供輸出的寫指針44和讀指針46。比較器48的輸出進(jìn)入多路轉(zhuǎn)接器控制邏輯24。如上所述,以組形式寫入數(shù)據(jù),例如,響應(yīng)多路轉(zhuǎn)接器20的控制,三個(gè)數(shù)據(jù)項(xiàng)從FIFO緩沖器14進(jìn)入到DRAM20或每次一個(gè)數(shù)據(jù)項(xiàng)地進(jìn)入輸出FIFO緩沖器32。圖3所示為輸出FIFO緩沖器32的詳細(xì)視圖。
圖3所示為在存儲(chǔ)單元50a,50b,50c,50d,50e和50f上的數(shù)據(jù)項(xiàng)鎖存器及控制輸入54a,54b,54c,54d,54e和54f到存儲(chǔ)單元50a-50f的選擇器52a,52b,52c,52d,52e和52f。所提供的來自數(shù)據(jù)項(xiàng)存儲(chǔ)器50a-50f的數(shù)據(jù)輸出56a,56b,56c,56d,56e和56f進(jìn)入選擇器58來提供數(shù)據(jù)輸出34,每次一個(gè)數(shù)據(jù)項(xiàng)地輸出數(shù)據(jù)。設(shè)有將信號(hào)輸出到比較器66的寫指針62和讀指針64。比較器66將其差輸出到多路轉(zhuǎn)接器控制邏輯24。
DRAM20也具有寫指針、讀指針和比較器(均未示出),DRAM比較器的輸出也提供給多路轉(zhuǎn)接器控制邏輯24。如上所述,以多數(shù)據(jù)項(xiàng)方式將數(shù)據(jù)從DRAM寫入輸出FIFO32中來利用DRAM的最佳數(shù)據(jù)傳輸率。存儲(chǔ)器接口用于保持指針指向存儲(chǔ)在DRAM芯片22中的隊(duì)列的頭尾部分。通過相連地址和頭、尾指針,可排除對(duì)單地址的需要,DRAM芯片22以FIFO方式運(yùn)行。
多路轉(zhuǎn)接器控制邏輯24以下述方式控制多路轉(zhuǎn)接器20首先,每次一個(gè)數(shù)據(jù)項(xiàng)地把數(shù)據(jù)12輸入到FIFO緩沖器14中的輸入FIFO隊(duì)列中;且假定輸出FIFO緩沖器32為空,則在多路轉(zhuǎn)接器20的作用下將數(shù)據(jù)從輸入FIFO緩沖器14直接發(fā)送到輸出FIFO緩沖器32中。當(dāng)輸出FIFO緩沖器32全充滿且輸入FIFO緩沖器14半充滿時(shí),控制邏輯24響應(yīng)比較器48和66來切換多路轉(zhuǎn)接器20,在寫周期以多數(shù)據(jù)項(xiàng)將數(shù)據(jù)經(jīng)過存儲(chǔ)接口18送入DRAM芯片22,輸出FIFO緩沖器32在讀周期以多數(shù)據(jù)項(xiàng)經(jīng)過存儲(chǔ)接口18從DRAM芯片22讀取數(shù)據(jù)。當(dāng)DRAM中的比較器指出DRAM芯片22中不再存有數(shù)據(jù)項(xiàng)時(shí),則將多路轉(zhuǎn)接器20切換回到使數(shù)據(jù)從輸入FIFO緩沖器14送入到輸出FIFO緩沖器32。
如上所述,通過寫指針記錄下一組數(shù)據(jù)項(xiàng)寫入到在什么地方以及讀指針記錄下一組數(shù)據(jù)項(xiàng)從什么地方讀來實(shí)現(xiàn)上述存儲(chǔ)接口的控制。比較器確定這兩個(gè)指針是否相同,這表示緩沖器是滿的還是空的。讀指針和寫指針按下列方式運(yùn)行當(dāng)讀指針和寫指針在讀周期上處于相同數(shù)據(jù)單元時(shí),意味著存儲(chǔ)單元為空,當(dāng)讀指針和寫指針在寫周期上處于相同數(shù)據(jù)單元時(shí),意味著存儲(chǔ)單元為滿。
因此,讀指針、寫指針、比較器44,46和48以及讀指針、寫指針和比較器62,64和66的操作是用于指示輸入FIFO緩沖器14中的數(shù)據(jù)存儲(chǔ)器是滿還是空以及輸出FIFO緩沖器32中的數(shù)據(jù)存儲(chǔ)器是滿還是空,并據(jù)此控制多路轉(zhuǎn)接器20的操作。DRAM中的讀、寫以及比較器以相同方式操作。(需要注意的是在某些應(yīng)用中可使用數(shù)據(jù)項(xiàng)的鏈表,而不是使用讀指針和寫指針)輸入數(shù)據(jù)12和輸出數(shù)據(jù)34的接口總線帶寬可與存儲(chǔ)器總線接口的帶寬相同。然而,我們期望具有不同的總線帶寬,特別是在使用DDRDRAM時(shí)?;谔厥鈶?yīng)用所必須作出的比較評(píng)定是所提供的單片緩沖數(shù)量(硅面積)對(duì)數(shù)據(jù)傳輸效率(帶寬)。在大多數(shù)情況下,帶寬更為重要。由DRAM接口的帶寬和可接受命令和數(shù)據(jù)的速率來確定最大帶寬。盡管通常ASIC上的I/O數(shù)量是限制因素,但這些速率是DRAM的特性且?guī)捠强蛇x的。當(dāng)權(quán)衡這些問題后,就存在保持該最大帶寬所需的特殊最小包大小。通常由特殊應(yīng)用來指示輸入數(shù)據(jù)12和輸出數(shù)據(jù)34寬度,以使變量具有單片緩沖器大小,所述大小說是最小DRAM包大小除以數(shù)據(jù)項(xiàng)乘以4(每個(gè)輸入和輸出FIFO都需要能夠存儲(chǔ)具有數(shù)據(jù)價(jià)值的兩個(gè)存儲(chǔ)包)歸納本發(fā)明設(shè)備的操作,數(shù)據(jù)從外部源讀入輸入FIFO緩沖器14,且只要輸出FIFO緩沖器32不滿,就從輸入FIFO緩沖器14寫入輸出FIFO緩沖器32。當(dāng)輸出FIFO緩沖器32變滿且輸入FIFO緩沖器14半滿時(shí),多路轉(zhuǎn)接器20轉(zhuǎn)換并允許輸入FIFO緩沖器14將數(shù)據(jù)寫入DRAM芯片22中,允許輸出FIFO緩沖器32從DRAM芯片22中讀取數(shù)據(jù)。輸出FIFO緩沖器32的輸出作為輸出34被輸出。當(dāng)輸出FIFO緩沖器32和DRAM芯片22為空時(shí),則多路轉(zhuǎn)接器20允許輸入FIFO緩沖器14直接寫入輸出FIFO緩沖器32。因此,當(dāng)數(shù)據(jù)輸入12比輸入FIFO緩沖器14和輸出FIFO緩沖器32所能處理的數(shù)據(jù)更大時(shí),DRAM芯片22充當(dāng)附加緩沖空間。
權(quán)利要求
1.一種管理數(shù)據(jù)從外部源輸入系統(tǒng)的隊(duì)列管理器,包括輸入FIFO緩沖器,接收和存儲(chǔ)來自所述外部源的數(shù)據(jù)項(xiàng);輸出FIFO緩沖器,接收、存儲(chǔ)和輸出數(shù)據(jù)項(xiàng)到所述系統(tǒng);存儲(chǔ)器設(shè)備,與所述輸入FIFO緩沖器和所述輸出FIFO緩沖器接口,及控制機(jī)構(gòu)選擇性地將數(shù)據(jù)從所述輸入FIFO緩沖器寫入到所述存儲(chǔ)器設(shè)備中,從所述存儲(chǔ)器設(shè)備中將數(shù)據(jù)讀入所述輸出FIFO緩沖器。
2.根據(jù)權(quán)利要求1定義的發(fā)明,其中所述數(shù)據(jù)作為數(shù)據(jù)項(xiàng)存儲(chǔ)在所述輸入FIFO緩沖器和所述輸出FIFO緩沖器中,且所述控制電路包括以多包數(shù)據(jù)項(xiàng)方式將數(shù)據(jù)寫入到所述輸出數(shù)據(jù)緩沖器和從所述輸入FIFO緩沖器中讀取數(shù)據(jù)的電路邏輯。
3.根據(jù)權(quán)利要求2定義的發(fā)明,其中所述存儲(chǔ)器設(shè)備配置成以組方式讀寫數(shù)據(jù)。
4.根據(jù)權(quán)利要求1定義的發(fā)明,其中所述存儲(chǔ)器設(shè)備包括至少一個(gè)DRAM芯片。
5.根據(jù)權(quán)利要求1定義的發(fā)明,其中所述控制邏輯包括的邏輯是,將所述輸入FIFO緩沖器連接到所述輸出FIFO緩沖器直至所述輸出FIFO緩沖器充至第一預(yù)定量且所述輸入FIFO緩沖器充至記錄預(yù)定量,此后將所述輸入FIFO緩沖器連接到所述存儲(chǔ)器設(shè)備直至所述存儲(chǔ)器設(shè)備為空且所述輸出FIFO緩沖器為空,然后再將所述輸入FIFO緩沖器與所述輸出FIFO緩沖器相連接。
6.根據(jù)權(quán)利要求5定義的發(fā)明,其中所述第一預(yù)定量為全充滿,記錄預(yù)定量為半充滿。
7.根據(jù)權(quán)利要求1定義的發(fā)明,其中所述控制機(jī)構(gòu)包括多路轉(zhuǎn)接器。
8.根據(jù)權(quán)利要求4定義的發(fā)明,其中所述DRAM芯片為雙密度DRAM芯片。
9.一種管理數(shù)據(jù)從外部源輸入到系統(tǒng)的方法,包括以下步驟提供輸入FIFO緩沖器,用于接收和存儲(chǔ)來自所述外部源的數(shù)據(jù)項(xiàng)的;提供輸出FIFO緩沖器,用于接收、存儲(chǔ)和輸出數(shù)據(jù)項(xiàng)到所述系統(tǒng);提供與所述輸入FIFO緩沖器和所述輸出FIFO緩沖器接口的存儲(chǔ)器設(shè)備;將輸入數(shù)據(jù)提供給所述輸入FIFO緩沖器并從所述輸出FIFO緩沖器輸出數(shù)據(jù),及控制數(shù)據(jù)流以便將所述輸入FIFO緩沖器連接到所述輸出FIFO緩沖器直至所述輸出FIFO緩沖器充至第一預(yù)定量且所述輸入FIFO緩沖器充至第二預(yù)定量,此后將所述輸入FIFO緩沖器連接到所述存儲(chǔ)器設(shè)備直至所述存儲(chǔ)器設(shè)備為空且所述輸出FIFO緩沖器為空,然后再將所述輸入FIFO緩沖器與所述輸出FIFO緩沖器相連接。
10.根據(jù)權(quán)利要求9定義的發(fā)明,其中所述數(shù)據(jù)作為數(shù)據(jù)項(xiàng)被寫入到所述輸入FIFO緩沖器和所述輸出FIFO緩沖器,以多包數(shù)據(jù)項(xiàng)方式將數(shù)據(jù)寫入到所述輸出數(shù)據(jù)緩沖器并從所述輸入FIFO緩沖器中讀取數(shù)據(jù)。
11.根據(jù)權(quán)利要求9定義的發(fā)明,其中數(shù)據(jù)以組方式寫入到所述存儲(chǔ)器設(shè)備并從所述存儲(chǔ)器設(shè)備中讀取。
12.根據(jù)權(quán)利要求9定義的發(fā)明,其中所述存儲(chǔ)器設(shè)備包括至少一個(gè)DRAM芯片。
13.根據(jù)權(quán)利要求9定義的發(fā)明,其中所述第一預(yù)定量為全充滿,所述第二預(yù)定量為半充滿。
全文摘要
提供一種用于FIFO緩沖器的帶寬保存隊(duì)列管理器。只要隊(duì)列的總大小不超過緩沖器的有效存儲(chǔ),就不需要附加的數(shù)據(jù)存儲(chǔ)器。然而,當(dāng)超過FIFO緩沖器上緩沖器存儲(chǔ)空間的某個(gè)預(yù)定量時(shí),數(shù)據(jù)寫入到附加數(shù)據(jù)存儲(chǔ)器和從附加數(shù)據(jù)存儲(chǔ)器中讀取,最好是以能夠保持?jǐn)?shù)據(jù)存儲(chǔ)設(shè)備最佳性能的最佳大小的包方式,包最好以按照地址的先進(jìn)先出(FIFO)順序排列的方式寫入到數(shù)據(jù)存儲(chǔ)設(shè)備中。數(shù)據(jù)最好以組方式寫入DRAM和從DRAM中讀取。
文檔編號(hào)G06F13/38GK1303053SQ0013700
公開日2001年7月11日 申請(qǐng)日期2000年12月27日 優(yōu)先權(quán)日2000年1月4日
發(fā)明者布賴恩·M·巴斯, 吉恩·L·卡爾維納克, 邁科·C·海蒂斯, 邁克爾·S·西格爾, 邁克爾·R·特朗布利, 法布里斯·J·韋普蘭克 申請(qǐng)人:國際商業(yè)機(jī)器公司