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