專利名稱:具有非易失性存儲級的先入先出存儲設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種先入先出存儲設(shè)備。
背景技術(shù):
當(dāng)前的集成電路包含大量小的芯片內(nèi)緩沖器。大量的這些緩沖器用來去耦知識產(chǎn)權(quán)(IP)塊,諸如處理核心、通用處理器(例如ARMTM或MIPSTM)、數(shù)字信號處理器(DSP)、特定用途處理器(ASP)或其它硬件核心。這種去耦緩沖器典型地具有先入先出(FIFO)操作,在某些系統(tǒng)中可能有多于200個FIFO緩沖器。為此,使用了專用硬件FIFO,其能夠顯著地減小面積并增加這些緩沖器的速度。
有兩種已知類型的硬件FIFO動態(tài)和靜態(tài)。動態(tài)FIFO只是將數(shù)據(jù)存儲有限的時間量,在這之后,如果沒有被刷新,其將丟失。靜態(tài)FIFO永久性地存儲數(shù)據(jù)。
動態(tài)FIFO比靜態(tài)FIFO小,但是為了保存數(shù)據(jù),必須刷新所述FIFO,并且這涉及額外的邏輯來生成刷新信號等,而靜態(tài)FIFO在尺寸上比動態(tài)FIFO大,無需刷新就可以保存數(shù)據(jù),并因此不需要額外的邏輯。根據(jù)需求來使用這些設(shè)備中的任意一個。
將參照圖1和圖2來說明傳統(tǒng)FIFO的基本操作。如圖1中所圖示的,在這種FIFO中,僅當(dāng)?shù)谝患?01為空時,數(shù)據(jù)才被寫入FIFO100的該第一級101。數(shù)據(jù)行波傳送穿過FIFO 100直到其到達FIFO100最后占用的級103的后面。在讀取時,如圖2所示,僅當(dāng)FIFO 200的最后級201為非空時,才從該最后的級轉(zhuǎn)移數(shù)據(jù)??瞻卓臻g行波傳送穿過FIFO 200直到在FIFO 200中最后占用的級203之后。
數(shù)據(jù)傳播穿過FIFO花費了有限的時間。因此,在讀取操作期間對于空穴或空白空間來說存在有限的時間來反向傳播穿過FIFO,即是,在已經(jīng)讀取字之后直到所述空間變得可寫所花費的時間。由于這些是用管道進行的,因此這對靜態(tài)FIFO設(shè)備是特別有問題的。因此,在已經(jīng)從FIFO讀取數(shù)據(jù)之后,一旦位置變得可用,該空間(或空穴)在其在輸入端變得可見并對要寫入其中的數(shù)據(jù)可用之前必須反向傳播穿過每個流水線的級,即,引入了等待時間。
作為示例,如果對FIFO的每個管道級傳播空穴的時間是360ps,那么,對于大小為32的FIFO來說,使一個空間在FIFO存儲設(shè)備的“輸入”端變得可用要花費11520ps。在以200MHz(即5ns時鐘周期)運行的系統(tǒng)中,這產(chǎn)生了3個時鐘周期的額外等待時間。在以500MHz運行的系統(tǒng)中,該額外的等待時間將是6個周期。
一個已知的改進這種系統(tǒng)中的等待時間的技術(shù)是為FIFO提供額外的級。這些額外的級只是用于等待時間隱藏,例如,為200MHZ系統(tǒng)提供3個額外級,為500MHZ系統(tǒng)提供6個額外級。然而,這增加了緩存器的成本(在硅的面積方面),例如給200MHz的系統(tǒng)增加了10%的成本,給500MHz的系統(tǒng)增加了20%的成本。要增加的級的數(shù)量與FIFO的長度和設(shè)備操作頻率成比例。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種FIFO存儲設(shè)備,其在最小化設(shè)備成本的同時改善了等待時間。
這是通過用于在非易失性(或靜態(tài))FIFO中隱藏等待時間的額外級來實現(xiàn)的;這些額外級是易失性(或動態(tài))FIFO。依照本發(fā)明的第一方面,提供了一種FIFO存儲設(shè)備,其包含存儲級和輸入級,所述存儲級包含多個非易失性存儲元件,并且所述輸入級包含多個易失性存儲元件。這樣,所述輸入級有效地隱藏了所述存儲級的等待時間。
所述輸入級可以包含易失性FIFO存儲器,其代替了上述的傳統(tǒng)硬件FIFO的額外級。因此,不再需要增加這些級,并且設(shè)備的成本也減少了。
此外,F(xiàn)IFO緩存總是被用來提高數(shù)據(jù)吞吐量。能夠使用非易失性存儲器來實現(xiàn)根據(jù)本發(fā)明該方面的所述存儲設(shè)備,諸如靜態(tài)硬件FIFO或SRAM。這可以適應(yīng)數(shù)據(jù)流的給定平均吞吐量。然后,諸如DARM的易失性存儲器能夠被用于數(shù)據(jù)流最差情況的吞吐量。當(dāng)這在一小段時間內(nèi)發(fā)生時,在不刷新的情況下使用DRAM,或者作為選擇,可以使用動態(tài)硬件FIFO。在這種情況下,要增加額外的存儲器以便容納由臨時較高率的成組傳送而產(chǎn)生的額外數(shù)據(jù),這否則將導(dǎo)致產(chǎn)生數(shù)據(jù)的IP停止,或者導(dǎo)致溢出。在大部分的情況下,當(dāng)能夠保證額外數(shù)據(jù)在有限時間內(nèi)被吸收時,易失性并較便宜的存儲器能夠被用于所述額外數(shù)據(jù)。
這在IC設(shè)計中尤其有利,所述IC設(shè)計需要小時間間隔的額外存儲。例如,硬件去耦FIFO存儲器,其中為隱藏等待時間而增加了額外級,和具有額外易失性緩沖以便容納數(shù)據(jù)流吞吐量峰值的FIFO存儲器。
本發(fā)明允許降低FIFO存儲器的成本,對于臨時數(shù)據(jù)所述FIFO存儲器需要額外級。這個成本降低是通過使用易失性而不是非易失性存儲器來實現(xiàn)的。在硬件FIFO的情況下,這個成本的降低沒有損失速度,因為靜態(tài)(非易失性)和動態(tài)(易失性)FIFO以相同的速度運行。
現(xiàn)在將參照附圖來描述本發(fā)明的實施例,附圖中圖1是傳統(tǒng)FIFO中寫操作的示意圖;圖2是傳統(tǒng)FIFO中讀操作的示意圖;圖3根據(jù)本發(fā)明第一實施例的存儲設(shè)備的框圖;和圖4根據(jù)本發(fā)明第二實施例的存儲設(shè)備的框圖。
具體實施例方式
現(xiàn)在將參照圖3描述本發(fā)明的實施例。FIFO存儲設(shè)備300包含數(shù)據(jù)輸入端301,數(shù)據(jù)輸出端303,寫使能端(wr_en)305,寫接受端(accept)307,讀使能端(rd_en)309和讀有效端(valid)311。所述數(shù)據(jù)輸入端301連接到輸入緩沖級315的數(shù)據(jù)輸入端313。所述輸入緩沖級315包含多個動態(tài)、易失性存儲元件(這里未示出)。所述輸入緩沖級315的數(shù)據(jù)輸出端317連接到存儲級321的數(shù)據(jù)輸入端319。所述存儲設(shè)備321是非易失性、靜態(tài)FIFO,其包含多個靜態(tài)存儲元件或鎖存器(這里未示出)。所述存儲級321的數(shù)據(jù)輸出端323連接到存儲設(shè)備300的數(shù)據(jù)輸出端303。所述非易失性FIFO321如傳統(tǒng)非易失性、靜態(tài)FIFO中那樣存儲所述數(shù)據(jù)。然后,由于所述輸入緩沖級315能夠臨時地存儲等待空間被反向傳播穿過所述存儲級315的數(shù)據(jù),因此所述輸入緩沖級315能夠操作來隱藏存儲級321的等待時間。
所述寫使能端305連接到第一與門325的第一輸入端。第一與門325的第二輸入端連接到計數(shù)器327的輸出。第一與門325的輸出為輸入緩沖級315提供了寫使能信號(wr_en1)。在第二與門329的第一輸入上提供輸入緩沖級315的接受標(biāo)記(accept1),所述第二與門329的第二輸入連接到計數(shù)器327的輸出。第二與門329的輸出連接到FIFO存儲設(shè)備300的接受端307和第三與門331的第一輸入。第三與門331的第二輸入連接到FIFO存儲設(shè)備300的寫使能端305。第三與門331的輸出連接到計數(shù)器327。存儲級321的接受標(biāo)記(accept2)連接到輸入緩沖級315的讀使能端(rd_en1)。所述輸入緩沖級315的有效標(biāo)記(valid1)連接到存儲級321的寫使能端(wr_en2)。
FIFO存儲設(shè)備300的讀使能端309為存儲級321提供讀使能(rd_en2)。在FIFO存儲設(shè)備300的有效端311上提供存儲級321的有效標(biāo)記(valid2)。FIFO存儲設(shè)備300的數(shù)據(jù)輸出端303連接到存儲級321的數(shù)據(jù)輸出端。所述存儲級321的標(biāo)記(valid2)和讀使能(rd_en2)是第四與門333的相應(yīng)輸入。第四與門333的輸出連接到計數(shù)器327。
FIFO存儲設(shè)備300還包括傳統(tǒng)設(shè)計的讀接口和寫接口,并且在圖3中未示出。
現(xiàn)在將描述本發(fā)明第一實施例的存儲設(shè)備300的操作。
在讀操作期間,讀接口通過激活端309上的讀使能(rd_en=高)來請求來自存儲設(shè)備300的數(shù)據(jù)。FIFO存儲設(shè)備300通過使端311上的標(biāo)記(valid)為高來指示數(shù)據(jù)可用,即,存儲FIFO321的最后級被占用。當(dāng)rd_en和valid都為高時,數(shù)據(jù)字被傳送到FIFO存儲設(shè)備300的數(shù)據(jù)輸出端303之上。對于寫操作是相似地,寫接口通過使所述端305上的wr_en為高來發(fā)出寫請求,并且如果所述FIFO設(shè)備300能夠容納數(shù)據(jù),即,所述輸入緩存315的第一級為空,那么其使在所述端307上的標(biāo)記(accept)為高并且字?jǐn)?shù)據(jù)被傳輸?shù)剿鲚斎刖彌_級315的輸入端313之上。然后,所述數(shù)據(jù)被寫入輸入緩沖級315的第一級直到其到達最后占用的級的后面。當(dāng)所述數(shù)據(jù)到達輸入緩沖級315的最后級時,標(biāo)記valid1被激活并且作為所述存儲級321的寫使能(wr_en2)被提供(作出了寫請求)。如果所述存儲設(shè)備321的第一級為空,那么所述標(biāo)記accept2為高,并且使得所述輸入緩沖級315的讀使能rd_en1為高,并且保存在輸入緩沖級315的最后級中的數(shù)據(jù)被傳遞到所述存儲FIFO321的第一級中。就像輸入緩沖級315一樣,數(shù)據(jù)行波傳送穿過存儲設(shè)備321直到其到達最后占用的級的后面。
FIFO存儲設(shè)備300還包含計數(shù)器327,其維護輸入緩沖級和存儲級空白空間的計數(shù)。當(dāng)rd_en和valid都為高時,即,作出了讀請求并且數(shù)據(jù)字被傳送到輸出端303之上時,遞增計數(shù)器327的內(nèi)容以便指示存儲級321中的空白空間。相反,當(dāng)wr_en和accept都為高時,即,作出了寫請求并且數(shù)據(jù)被傳送到輸入緩沖級315之中時,遞減計數(shù)器以便指示空白空間現(xiàn)在被占用。如果存在空白空間,那么計數(shù)器327的內(nèi)容為正值,并且accept1為高(在輸入緩存315的第一級處存在空白空間),端307的accept為高并且輸入緩沖級315準(zhǔn)備如果發(fā)生了寫請求就在輸入端301上接收數(shù)據(jù)。復(fù)位時,計數(shù)器327初始地被設(shè)置為等于存儲級321的大小。
計數(shù)器327能夠被用來向讀接口和寫接口提供關(guān)于在FIFO設(shè)備300中是否存在空間的信息。圖4示出了這個的實現(xiàn)。
根據(jù)本發(fā)明第二實施例的FIFO設(shè)備400對應(yīng)于圖3的設(shè)備,并且相同的組件使用了相同的引用數(shù)字,并且在這里不包含詳細(xì)的描述。
在第二實施例中,計數(shù)器327輸出空間的數(shù)量。這是作為端440上的標(biāo)記empty_sapce來提供的,所述端440對于寫接口可用。這個標(biāo)記也被提供給減法器442,在所述減法器442中輸出了FIFO的大小和空間數(shù)量的差值。如果減法器442的輸出為0,那么端444上的full_space標(biāo)記被輸出給讀接口。計數(shù)器327的輸出上的值由數(shù)字轉(zhuǎn)換器446進行數(shù)字化,所述數(shù)字轉(zhuǎn)換器446在計數(shù)器的輸出指示有至少一個空間的情況下輸出1(輸出值大于0),在計數(shù)器的輸出指示沒有空間的情況下輸出0。這作為輸入被提供給第二與門329。
根據(jù)上述優(yōu)選實施例的FIFO存儲設(shè)備包括隱藏存儲FIFO等待時間的額外級。
這些額外級(易失性FIFO 315)僅被用作為臨時存儲。數(shù)據(jù)被存儲在這個隊列中最長時間僅是存儲級321中的空項行波傳送穿過FIFO給輸出所花費的時間。這個時間比易失性FIFO的保持時間要短(例如,對于PRLE/IC設(shè)計/DD&T組中的靜態(tài)、非易失性FIFO,空項的行波傳送時間是每個級360ps,而動態(tài)FIFO的保持時間是1us)。結(jié)果,易失性FIFO315不需要刷新邏輯。能夠省去易失性存儲315的刷新是因為數(shù)據(jù)駐留在易失性FIFO315中的時間(最多十幾個ns)比易失性FIFO單元的保持時間小很多。因此,不需要用于刷新操作的額外電路,進一步減少了設(shè)備的大小和成本。
根據(jù)本發(fā)明優(yōu)選實施例的FIFO存儲設(shè)備的一個實例當(dāng)在使用時,需要每位2.8m2大小的動態(tài)單元,和每位7.5m2大小的靜態(tài)單元。因此,對于隱藏等待時間,成本減小了63%。對于上述特殊實例,根據(jù)本發(fā)明實施例的32級FIFO,以200MHz來操作,總的FIFO成本減少了6.3%。根據(jù)本發(fā)明實施例的32級FIFO,以500MHz來操作,總的FIFO成本減少了12.6%。
盡管本發(fā)明的優(yōu)選實施例在附圖中圖示并且在前面的詳細(xì)描述中作出了描述,但是要理解的是本發(fā)明不局限于所公開的實施例,而是在不偏離權(quán)利要求所提出的本發(fā)明范圍的情況下能夠有許多的變化、修改。
權(quán)利要求
1.一種FIFO存儲設(shè)備,包含存儲級和輸入級,所述存儲級包含多個非易失性存儲元件,并且所述輸入級包含多個易失性存儲元件。
2.根據(jù)權(quán)利要求1的FIFO存儲設(shè)備,其中所述存儲級包含非易失性FIFO存儲設(shè)備。
3.根據(jù)權(quán)利要求1或2的FIFO存儲設(shè)備,其中所述輸入級包含易失性FIFO存儲設(shè)備。
4.根據(jù)前面權(quán)利要求中任何一個的FIFO存儲設(shè)備,其中所述存儲設(shè)備進一步包含用于監(jiān)控所述輸入級和/或存儲級的狀態(tài)的裝置。
5.根據(jù)權(quán)利要求4的FIFO存儲設(shè)備,其中所述監(jiān)控裝置包含指示空白空間數(shù)量的計數(shù)器。
6.根據(jù)前面權(quán)利要求中任何一個的FIFO存儲設(shè)備,其中所述輸入級和存儲級串聯(lián)連接。
7.一種集成電路,包括至少一個根據(jù)前面權(quán)利要求中任何一個的存儲設(shè)備。
全文摘要
一種FIFO存儲設(shè)備(300)包含存儲級(321),所述存儲級是包含多個非易失性存儲元件或鎖存器的非易失性FIFO。該FIFO存儲設(shè)備(300)包含輸入級(315),所述輸入級是包含多個易失性存儲元件的易失性FIFO。所述輸入級(315)為數(shù)據(jù)提供臨時存儲,并因此隱藏了存儲設(shè)備(321)的等待時間。
文檔編號G06F5/12GK1918541SQ200580004669
公開日2007年2月21日 申請日期2005年2月8日 優(yōu)先權(quán)日2004年2月12日
發(fā)明者A·拉杜勒斯庫 申請人:皇家飛利浦電子股份有限公司