多端口寄存器堆的低功耗設(shè)計方法
寄存器堆是構(gòu)成微處理器的重要部件,緩存和傳輸操作數(shù)是它的基本作用,其性能優(yōu)劣將直接影響處理器的處理能力。隨著處理器并行處理能力的加強,寄存器堆的端口越來越多,端口的增加不但增加了功耗,也加大了讀寫延時,限制了處理器時鐘頻率的提高,成為高性能微處理器的片上存儲瓶頸。
高速和低功耗是多端口寄存器堆的設(shè)計目標,但是兩者之間相互約束。在Motorola的M.CORE處理器中,寄存器堆的功耗占整個芯片的16%,在數(shù)據(jù)通路中的比例更是高達42%。有研究表明,寄存器堆的功耗達到整個處理器芯片功耗的25%。因此,高速低功耗的多端口寄存器堆的設(shè)計成為未來存儲器設(shè)計中極具挑戰(zhàn)性的工作。
1 寄存器堆的功耗組成
1.1 寄存器堆的總體結(jié)構(gòu)
目前寄存器堆所采用的基本組成單元是6T SRAM。寄存器堆在電路結(jié)構(gòu)上,可分為四個部分。第一是由存儲單元構(gòu)成的存儲陣列;第二是由地址緩沖器、譯碼器、字線及其驅(qū)動器構(gòu)成的地址路徑;第三是由數(shù)據(jù)緩沖器、讀寫放大器、位線及其預充電路構(gòu)成的數(shù)據(jù)路徑;第四是讀寫控制邏輯。如圖1所示。
1.2 多端口寄存器堆結(jié)構(gòu)
多端口的存儲單元一般每個端口都有自己的字線和位線,從而保證各個端口能夠同時獨立工作,以滿足指令級并行的微處理器工作要求。但是這同時也導致了寄存器堆功耗的迅速提高。多端口讀寫位線一般有差分式和單端式兩種,差分式讀寫以更高的數(shù)據(jù)準確性和讀寫速度應用于多數(shù)的多端口設(shè)計。其結(jié)構(gòu)如圖2所示。
1.3 多端口寄存器堆的功耗組成
1.3.1 基本單元SRAM
基本單元SRAM的功耗主要由三個部分組成。一是動態(tài)功耗,即電容充放電所消耗的功耗。二是短路功耗,即電源和地導通時所消耗的功耗。三是MOS管泄漏電流所引起的靜態(tài)功耗。在三種功耗中動態(tài)功耗所占比重最大,而SRAM中位線連接許多存儲體單元,其電容負載很大,位線充放電所引起的動態(tài)功耗就很大,占到總體動態(tài)功耗的80%,所以優(yōu)化位線動態(tài)功耗對整個SRAM功耗降低影響很大。
1.3.2 電路組成部分
在多流水線結(jié)構(gòu)的指令集并行微處理器中,一個時鐘周期內(nèi)可能對寄存器堆同時進行讀寫操作,假設(shè)每個操作的功耗是獨立的,那么寄存器堆的總功耗即為每個操作所用功耗乘以單位時間內(nèi)的操作次數(shù)。每個操作的功耗是電路各部分功耗的總和:譯碼邏輯功耗,存儲陣列功耗,敏感放大器功耗,以及對敏感放大電路、預充電路和寫驅(qū)動電路控制的驅(qū)動信號的功耗。因此,要降低寄存器堆的功耗,就應該同時從基本單元SRAM以及各個電路組成部分入手。
2 降低寄存器堆功耗的主要途徑
2.1 降低電壓擺幅
SRAM的動態(tài)功耗可由式(1)表示:
其中,α是活動因子,f是時鐘頻率,CL是負載電容,Vswing是信號擺幅,VDD是電源電壓,位線動態(tài)功耗可以用式(2)表示:
f和Cbitload分別是位線的轉(zhuǎn)換頻率和電容負載,Vswing是位線電壓擺幅,VDD是電源電壓。由(2)式可以看出在轉(zhuǎn)換頻率和電源電壓固定的條件下,可以通過減少位線電壓擺幅來優(yōu)化位線功耗,由于SRAM進行寫操作時Vswing達到VDD,而讀操作時Vswing很小,所以Vswing研究主要在寫操作周期。
采用電荷分享方法的低位線擺幅(LVBS)低功耗SRAM結(jié)構(gòu)設(shè)計可以降低位線電壓幅值,如圖3所示,當clk為0時,連接data_outO和data_outl的傳輸門關(guān)閉,無論data_in為何值,電荷分享驅(qū)動電路中兩個MOS管中只有一個能被打開,所以輸出data_out0和data_outl中只有一個輸出為VDD,另一個輸出則為GND。當clk為1時,兩個MOS管同時關(guān)閉,異或非門輸出為1,傳輸門打開。只要輸出負載電容相等,根據(jù)電荷守恒定律,data_out0和data_out1的電壓都變?yōu)閂DD/2,即電壓擺幅減少了50%,根據(jù)式(1)可知,位線動態(tài)功耗降低,從而達到降低寄存器堆功耗的目的。
評論