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