一種低功耗fifo的電路結(jié)構(gòu)的制作方法
【專利摘要】本實用新型提供一種低功耗FIFO的電路結(jié)構(gòu),包括大容量的靜態(tài)隨機存儲器、用于控制在靜態(tài)隨機存儲器寫入數(shù)據(jù)地址的寫控制電路,和用于控制從靜態(tài)隨機存儲器讀出數(shù)據(jù)地址的讀控制電路,其特征在于:所述的大容量的靜態(tài)隨機存儲器由若干個小容量的靜態(tài)隨機存儲器構(gòu)成;本電路結(jié)構(gòu)還包括用于控制每個小容量的靜態(tài)隨機存儲器的工作模式的模式控制器,模式控制器的輸入端分別與寫控制電路和讀控制電路連接,模式控制器的輸出端數(shù)量與小容量的靜態(tài)隨機存儲器相同,每個模式控制器的輸出端與一個小容量的靜態(tài)隨機存儲器連接。利用本實用新型結(jié)構(gòu)極大地減小了功耗,節(jié)約了電能。
【專利說明】
一種低功耗FIFO的電路結(jié)構(gòu)
技術(shù)領(lǐng)域
[0001]本實用新型涉及集成電路設(shè)計的技術(shù)領(lǐng)域,具體涉及一種低功耗FIFO(先入先出)的電路結(jié)構(gòu)。
【背景技術(shù)】
[0002]FIFO是指先入先出(first in first out),它在當今集成電路中是廣泛被使用的結(jié)構(gòu),尤其是大規(guī)模的復雜的SOC(系統(tǒng)級芯片)芯片中,應(yīng)用領(lǐng)域較多,如遠程通信、數(shù)字信號處理、大容量存儲系統(tǒng)、圖像處理、打印系統(tǒng)等等。其主要用途是用來緩沖數(shù)據(jù),位于發(fā)送方和接收方之間,當發(fā)送方和接收方的數(shù)據(jù)率不一致的時候,或者發(fā)送出去的數(shù)據(jù)還沒有被接收方讀取走的時候,這些數(shù)據(jù)就必須要用FIFO來做一下數(shù)據(jù)緩沖,避免數(shù)據(jù)遺漏或丟失。在芯片設(shè)計過程中,如何來設(shè)計FIFO的容量或者深度,要根據(jù)應(yīng)用需求來決定,一般FIFO的深度都是用最壞情況來考慮,倘若發(fā)送方在某個時間段內(nèi),突發(fā)地發(fā)送了大量數(shù)據(jù),而接收方還來不及讀取走的時候,這時候就必須要使用一個足夠大的FIFO來存儲這些數(shù)據(jù)。對于這樣一種大容量的FIF0,就需要一塊較大的存儲空間。在當今芯片設(shè)計中,一般會用到一塊容量較大的SRAM(靜態(tài)隨機存儲器)來作為存儲數(shù)據(jù)的空間,其結(jié)構(gòu)如圖1所示,F(xiàn)IFO內(nèi)還需要有讀寫控制兩個子模塊,分別控制寫入數(shù)據(jù)的地址和讀出數(shù)據(jù)的地址。
[0003]在如今的芯片設(shè)計過程中,低功耗是個非常關(guān)注的方面,無論是大型芯片還是小型芯片,都對功耗指標有所要求。尤其是在一些移動設(shè)備或者小型設(shè)備上,低功耗方面的要求非常高。然而,對于一個大容量的FIF0,若其所搭配的是一整塊大的SRAM來做數(shù)據(jù)存儲空間的話,它在工作過程中,這一個大塊SRAM的每一次讀或?qū)懖僮?,其功耗都是較大的。因此,對于大容量FIFO的功耗較高的問題,必須要解決。
[0004]然而經(jīng)過分析實際中的工作情況,對于這樣一種大容量的FIFO來說,若在所有工作時間內(nèi),并不是總是真的要用得到最大的容量,僅僅在特殊情況或者最壞情況下才有可能用得到。若在多數(shù)情況下,F(xiàn)IFO內(nèi)部其實并沒有存儲很多的數(shù)據(jù),那么這塊大的SRAM內(nèi),其實很多空間是沒有真的被利用到的。
[0005]現(xiàn)代的低功耗的SRAM,其內(nèi)部電路設(shè)計方面已經(jīng)有所改進,有的可以有SD(shutdown)、DS(deep sleep)、LS(light sleep)等幾種低功耗工作模式。根據(jù)實際工作情況和需要,當某一個SRAM不需要其工作的時候,可以把它至于合適的低功耗模式下。SD模式是指完全關(guān)閉,該塊SRAM的內(nèi)部電源整個被切斷,以節(jié)省靜態(tài)功耗,在SD模式下,內(nèi)部存儲的數(shù)據(jù)不能被保持,會完全丟失。DS模式是指深度睡眠,關(guān)閉SRAM內(nèi)部的周邊電路,并且把存儲單元的內(nèi)部核心電壓降低,以節(jié)省一些靜態(tài)功耗,但內(nèi)部已經(jīng)存儲的數(shù)據(jù),不會被丟失。LS模式是輕度睡眠,僅僅關(guān)閉掉SRAM的周邊電路,存儲單元的內(nèi)部核心電壓仍然保持,所以已經(jīng)存儲的數(shù)據(jù),不會被丟失。
[0006]對于這樣一種內(nèi)部只有一整塊大的SRAM的FIFO來說,若系統(tǒng)開始工作后,根據(jù)功能要求,它里面的這塊大的SRAM是無法整個進入睡眠模式或關(guān)閉模式的,它就是需要一直在工作狀態(tài),即使沒有讀寫的操作,因為它至少也要一直處于待命狀態(tài)。在它的待命狀態(tài)的靜態(tài)功耗是比較大的。另一方面,當有數(shù)據(jù)寫入和讀出的時候,對于一塊大的SRAM的讀寫操作,其功耗也是較大的。所以,這塊大的SRAM,無論是整體待命狀態(tài),還是處于讀寫的工作狀態(tài),這兩個方面功耗大的問題,需要用新方法來解決。
【實用新型內(nèi)容】
[0007]本實用新型要解決的技術(shù)問題是:提供一種低功耗FIFO的電路結(jié)構(gòu),節(jié)約電能。
[0008]本實用新型為解決上述技術(shù)問題所采取的技術(shù)方案為:一種低功耗FIFO的電路結(jié)構(gòu),包括大容量的靜態(tài)隨機存儲器、用于控制在靜態(tài)隨機存儲器寫入數(shù)據(jù)地址的寫控制電路,和用于控制從靜態(tài)隨機存儲器讀出數(shù)據(jù)地址的讀控制電路,其特征在于:所述的大容量的靜態(tài)隨機存儲器由若干個小容量的靜態(tài)隨機存儲器構(gòu)成;本電路結(jié)構(gòu)還包括用于控制每個小容量的靜態(tài)隨機存儲器的工作模式的模式控制器,模式控制器的輸入端分別與寫控制電路和讀控制電路連接,模式控制器的輸出端數(shù)量與小容量的靜態(tài)隨機存儲器相同,每個模式控制器的輸出端與一個小容量的靜態(tài)隨機存儲器連接。
[0009]按上述方案,所述的模式控制器包括計數(shù)器和喚醒信號發(fā)生裝置,所述的計數(shù)器的輸入端分別與寫控制電路和讀控制電路連接,計數(shù)器的輸出端與喚醒信號發(fā)生裝置連接,喚醒信號發(fā)生裝置的輸出端與小容量的靜態(tài)隨機存儲器連接。
[0010]本實用新型的有益效果為:
[0011 ] 1、通過將原有的一整個大容量的靜態(tài)隨機存儲器替換為若干個小容量的靜態(tài)隨機存儲器,當讀寫數(shù)據(jù)量較少時,僅用其中I個或幾個小容量的靜態(tài)隨機存儲器,其它小容量的靜態(tài)隨機存儲器處于關(guān)閉狀態(tài),當所用的小容量的靜態(tài)隨機存儲器不足以存儲寫入的數(shù)據(jù)量時,智能的喚醒其中I個處于關(guān)閉狀態(tài)的小容量的靜態(tài)隨機存儲器;利用本實用新型結(jié)構(gòu)極大地減小了功耗,節(jié)約了電能。
【附圖說明】
[0012]圖1為現(xiàn)有技術(shù)中FIFO的電路結(jié)構(gòu)圖。
[0013]圖2為本實用新型一實施例的電路結(jié)構(gòu)圖。
【具體實施方式】
[0014]下面結(jié)合具體實例和附圖對本實用新型做進一步說明。
[0015]本實用新型提供一種低功耗FIFO的電路結(jié)構(gòu),如圖2所示,包括大容量的靜態(tài)隨機存儲器、用于控制在靜態(tài)隨機存儲器寫入數(shù)據(jù)地址的寫控制電路、用于控制從靜態(tài)隨機存儲器讀出數(shù)據(jù)地址的讀控制電路、和用于控制每個小容量的靜態(tài)隨機存儲器的工作模式的模式控制器,所述的大容量的靜態(tài)隨機存儲器由若干個小容量的靜態(tài)隨機存儲器構(gòu)成;模式控制器的輸入端分別與寫控制電路和讀控制電路連接,模式控制器的輸出端數(shù)量與小容量的靜態(tài)隨機存儲器相同,每個模式控制器的輸出端與一個小容量的靜態(tài)隨機存儲器連接。模式控制器輸出喚醒信號,喚醒相應(yīng)的小容量的靜態(tài)隨機存儲器。
[0016]所述的模式控制器可以采取各種硬件結(jié)構(gòu),優(yōu)選的,本實施例的模式控制器包括計數(shù)器和喚醒信號發(fā)生裝置,所述的計數(shù)器的輸入端分別與寫控制電路和讀控制電路連接,計數(shù)器的輸出端與喚醒信號發(fā)生裝置連接,喚醒信號發(fā)生裝置的輸出端與小容量的靜態(tài)隨機存儲器連接。
[0017]讀、寫控制電路分別控制讀寫兩個指針,寫指針指向下一個需要寫入的地址,讀指針指向下一個需要讀出的地址。在開始工作的時候,靜態(tài)隨機存儲器內(nèi)部沒有存儲任何數(shù)據(jù),寫指針和讀指針都指向起始地址,第一塊小容量的靜態(tài)隨機存儲器處于工作狀態(tài),其它小容量的靜態(tài)隨機存儲器處于關(guān)閉狀態(tài)。當發(fā)送方有數(shù)據(jù)發(fā)過來的時候,每個數(shù)據(jù)依次地寫入第一塊小容量的靜態(tài)隨機存儲器,并且寫指針依次上移,指向下一個可用的地址。當接收方讀取數(shù)據(jù)走的時候,讀指針依次上移,讀取走了的數(shù)據(jù),其空間釋放出來。當寫指針寫到第一塊小容量的靜態(tài)隨機存儲器的頂部的時候,可以循環(huán)回來,只要讀取走了的空間,是可以繼續(xù)使用的。
[0018]模式控制器能夠根據(jù)讀寫指針的位置,按情況地去開啟需要工作的小容量的靜態(tài)隨機存儲器,并關(guān)閉掉完全不需要工作的其他小塊,或者把它們置于睡眠模式,可以根據(jù)需要設(shè)置深度睡眠或淺度睡眠模式。通過這樣的預(yù)測式地開啟需要工作的部分,關(guān)閉不必要的部分,可以極大地節(jié)省動態(tài)功耗,同時也可以節(jié)省大量的靜態(tài)功耗。
[0019]本實施例中將大塊的SRAM分切成6塊,分別是SRAM1-SRAM6。在FIFO剛開始工作的時候,只有SRAMl處于工作狀態(tài)。因為在FIFO剛開始工作的時候,不確定什么時候發(fā)送方的寫數(shù)據(jù)會過來,所以要隨時待命準備寫入數(shù)據(jù),SRAMl必須處于工作狀態(tài),其他5塊是可以置于關(guān)閉模式或睡眠模式。下面用睡眠模式和工作模式的切換方式來繼續(xù)說明。
[0020]當有數(shù)據(jù)陸續(xù)寫入FIFO內(nèi),寫指針就會指向下一個地址。當寫指針指向SRAMI的快要到達頂部地址的時候(可以通過模式控制器計數(shù)得到),這時候需要提前激活SRAM2。這個提前量,可以根據(jù)SRAM的電路的內(nèi)部要求,比如一塊SRAM的從淺度睡眠到喚醒模式,至少需要2ns的喚醒時間,若當前電路的工作頻率是lGHz(寫速度是每周期寫一個數(shù)據(jù)),那么就需要提前兩個周期,把SRAM2從淺度睡眠模式喚醒起來,當寫指針指向SRAMl的頂部地址減去2的時候,(模式控制器發(fā)送喚醒信號)開始激活SRAM2,那么當寫指針指向到SRAM2的第一個地址的時候,它已經(jīng)完全激活可以工作了。若是SRAM2在初始態(tài)是置于深度睡眠模式的話,若其需要1ns的喚醒時間(深度睡眠模式的喚醒時間比淺度睡眠模式長一些),那么就需要當寫指針到達SRAMl的頂?shù)刂窚p去10的位置的時候,(模式控制器發(fā)送喚醒信號)就開始喚醒SRAM2。即使在發(fā)出喚醒信號到寫指針真的指向到SRAM2的這段時間內(nèi),若寫數(shù)據(jù)并沒有每個時鐘都寫入數(shù)據(jù),看起來SRAM2的喚醒過早了,但是這樣的提前量是為了滿足最差情況的,若萬一寫數(shù)據(jù)不停地寫入,SRAM2是必須要在寫指針指向它的底部地址的那個時刻,能夠被完全激活起來開始工作。這樣就是預(yù)測式地激活的基本方法。
[0021]當讀取操作將某一個小SRAM塊內(nèi)部的數(shù)據(jù)都讀取完了之后,可以檢查一下這個塊是不是還在使用,是在被正在寫入或者準備寫入(提前激活),若不是,那么這個塊就是就可以被關(guān)閉,可以將其置于睡眠模式(深度睡眠或淺度睡眠需要根據(jù)實際情況)。當讀完SRAMl之后,寫指針還沒有指向到SRAMl或還沒有逼近SRAMl的時候,這塊SRAMl是可以立即置為睡眠模式,以節(jié)省功耗。若寫指針循環(huán)一圈過來,讀指針已經(jīng)讀取SRAM3完畢,指向SRAM4了,但是寫指針已經(jīng)指向了SRAM3,這時候是不能把SRAM3關(guān)閉的,它仍然是需要工作,在這種情況是寫入數(shù)據(jù)較多,讀取還沒有來得及讀取走這么多量的數(shù)據(jù),這些數(shù)據(jù)都存儲在FIFO內(nèi)。
[0022]根據(jù)SRAM的內(nèi)部電路所能夠支持哪些低功耗模式,和該芯片在低功耗方面的要求,以及控制的復雜度,來靈活地實施本發(fā)明的想法。差別只是“預(yù)測式”激活的提前量的長短不同,基本原理相同。
[0023]實施例1,工作模式與LS(淺度睡眠)配合。因為LS到喚醒的時間較短,其控制方法也較簡單。假如SRAM的從LS模式到工作模式的喚醒時間為2ns,那么預(yù)測式喚醒的方法,就需要留夠至少2ns的時間用來喚醒下一個需要投入工作的小塊。舉例,假如FIFO工作在IGHz的頻率,寫入速度也是IG速度,每個時鐘周期就是1ns,當寫指針快要到達SRAMl的頂部,還差2個地址的時候,開始發(fā)送喚醒信號來激活SRAM2小塊。那么當寫指針指向SRAM2的底部的時候,它已經(jīng)完成了激活,進入可以工作的狀態(tài)。
[0024]實施例2,工作與DS(深度睡眠)配合。與實施例1稍有不同的是,激活所需要的提前量,是由于SRAM從DS模式到工作模式的喚醒時間較長一些。仍然按照上述假設(shè)條件,工作頻率IGhz,寫速度為也是1G。若SRAM內(nèi)部電路的要求從DS到工作模式需要1ns時間,那么就需要在寫指針在距離SRAMl的頂部還差10個地址的時候,開始發(fā)送喚醒信號來激活SRAM2小塊。
[0025]實施例3,工作與LS(淺度睡眠)+DS(深度睡眠)一起配合。由于DS的喚醒時間長,但是它所節(jié)省的功耗比LS要多。可以將距離工作區(qū)域較遠的小塊,置于DS模式,接近快要開始使用的小塊置于LS模式。當工作的小塊為SRAMl時,把SRAM2從DS模式切換到LS模式。當前寫入的塊已經(jīng)到達SRAM2時,可以把SRAM3提前的從DS模式切換到LS模式。激活SRAM3的條件,與實施例1相同,當寫指針逼近SRAM3的時候,將它置入工作狀態(tài),這時候需要把SRAM4從DS模式切換到LS模式。這樣階梯式地切換和喚醒需要工作的下一個小塊,可以更多地節(jié)省功耗,并可以較快速地把下一個小塊從LS狀態(tài)激活到工作狀態(tài)。
[0026]實施例4,工作模式和SD、DS、LS—起配合使用。在實施例3的基礎(chǔ)上,若更遠處的沒有需要用的小塊,可以完全置于SD(Shutdown)的電源關(guān)閉模式,這樣可以更多的節(jié)省功耗。根據(jù)指針所處的位置,預(yù)測式地把小塊從SD模式置入DS模式,再進入LS模式,然后被激活進入工作模式來寫入數(shù)據(jù),存儲數(shù)據(jù)或被讀出數(shù)據(jù)。使用完了的小塊,也根據(jù)它舉例工作區(qū)域的遠近,進入SD或DS、LS模式。這樣的實施例,其工作狀態(tài)較多,控制起來稍復雜,但是可以達到最大程度的節(jié)省功耗。
[0027]以上實施例的各模式的結(jié)合,在模式控制器中,以硬件的方式,根據(jù)小容量的靜態(tài)隨機存儲器的地址數(shù)量,設(shè)置計數(shù)器的計數(shù)值,根據(jù)計數(shù)值來喚醒各小容量的靜態(tài)隨機存儲器。
【主權(quán)項】
1.一種低功耗FIFO的電路結(jié)構(gòu),包括大容量的靜態(tài)隨機存儲器、用于控制在靜態(tài)隨機存儲器寫入數(shù)據(jù)地址的寫控制電路,和用于控制從靜態(tài)隨機存儲器讀出數(shù)據(jù)地址的讀控制電路,其特征在于:所述的大容量的靜態(tài)隨機存儲器由若干個小容量的靜態(tài)隨機存儲器構(gòu)成;本電路結(jié)構(gòu)還包括用于控制每個小容量的靜態(tài)隨機存儲器的工作模式的模式控制器,模式控制器的輸入端分別與寫控制電路和讀控制電路連接,模式控制器的輸出端數(shù)量與小容量的靜態(tài)隨機存儲器相同,每個模式控制器的輸出端與一個小容量的靜態(tài)隨機存儲器連接。2.根據(jù)權(quán)利要求1所述的一種低功耗FIFO的電路結(jié)構(gòu),其特征在于:所述的模式控制器包括計數(shù)器和喚醒信號發(fā)生裝置,所述的計數(shù)器的輸入端分別與寫控制電路和讀控制電路連接,計數(shù)器的輸出端與喚醒信號發(fā)生裝置連接,喚醒信號發(fā)生裝置的輸出端與小容量的靜態(tài)隨機存儲器連接。
【文檔編號】G06F5/06GK205540689SQ201620095725
【公開日】2016年8月31日
【申請日】2016年1月29日
【發(fā)明人】李瀟
【申請人】啟芯瑞華科技(武漢)有限公司