牛人經驗之晶片設計篇——微處理器低功耗設計技術詳談

2019-08-21   21IC中國電子網

晶片設計向來為熱點之一,原由在於晶片設計可存在於諸多行業之中。本文中,將為大家介紹微處理器中低功耗晶片設計技術。希望通過本文,大家能對晶片設計有更深層次的理解。



隨著半導體工藝的飛速發展和晶片工作頻率的提高,晶片的功耗迅速增加,而功耗增加又將導致晶片發熱量的增大和可靠性的下降。因此,功耗已經成為深亞微米集成電路設計中的一個重要考慮因素。為了使產品更具競爭力,工業界對晶片設計的要求已從單純追求高性能、小面積轉為對性能、面積、功耗的綜合要求。而微處理器作為數字系統的核心部件,其低功耗設計對降低整個系統的功耗具有重要的意義。

本文首先介紹了微處理器的功耗來源,重點介紹了常用的低功耗設計技術,並對今後低功耗微處理器設計的研究方向進行了展望。



一、微處理器的功耗來源

研究微處理器的低功耗設計技術,首先必須了解它的功耗來源。高層次仿真得出的結論如圖1所示。



從圖1中可以看出,時鐘單元(Clock)功耗最高,因為時鐘單元有時鐘發生器、時鐘驅動、時鐘樹和鍾控單元的時鐘負載;數據通路(Datapath)是僅次於時鍾單元的部分,其功耗主要來自運算單元、總線和寄存器堆。除了上述兩部分,還有存儲單元(Memory),控制部分和輸入/輸出 (Control,I/O)。存儲單元的功耗與容量相關。

如圖2所示,CMOS電路功耗主要由3部分組成:電路電容充放電引起的動態功耗,結反偏時漏電流引起的功耗和短路電流引起的功耗。其中,動態功耗是最主要的,占了總功耗的90%以上,表達式如下:



式中:f為時鐘頻率,C1為節點電容,α為節點的翻轉機率,Vdd為工作電壓。



二、常用的低功耗設計技術

低功耗設計足一個複雜的綜合性課題。就流程而言,包括功耗建模、評估以及優化等;就設計抽象層次而言,包括自系統級至版圖級的所有抽象層次。同時,功耗優化與系統速度和面積等指標的優化密切相關,需要折中考慮。下面討論常用的低功耗設計技術。

1.動態電壓調節

由式(1)可知,動態功耗與工作電壓的平方成正比,功耗將隨著工作電壓的降低以二次方的速度降低,因此降低工作電壓是降低功耗的有力措施。但是,僅僅降低工作電壓會導致傳播延遲加大,執行時間變長。然而,系統負載是隨時間變化的,因此並不需要微處理器所有時刻都保持高性能。動態電壓調節DVS (Dynarnic Voltage Scaling)技術降低功耗的主要思路是根據晶片工作狀態改變功耗管理模式,從而在保證性能的基礎上降低功耗。在不同模式下,工作電壓可以進行調整。為了精確地控制DVS,需要採用電壓調度模塊來實時改變工作電壓,電壓調度模塊通過分析當前和過去狀態下系統工作情況的不同來預測電路的工作負荷。

2.門控時鐘和可變頻率時鐘

如圖1所示,在微處理器中,很大一部分功耗來自時鐘。時鐘是惟一在所有時間都充放電的信號,而且很多情況下引起不必要的門的翻轉,因此降低時鐘的開關活動性將對降低整個系統的功耗產牛很大的影響。門控時鐘包括門控邏輯模塊時鐘和門控寄存器時鐘。門控邏輯模塊時鐘對時鐘網絡進行劃分,如果在當前的時鐘周期內,系統沒有用到某些邏輯模塊,則暫時切斷這些模塊的時鐘信號,從而明顯地降低開關功耗。圖3為採用「與」門實現的時鐘控制電路。門控寄存器時鐘的原理是當寄存器保持數據時,關閉寄存器時鐘,以降低功耗。然而,門控時鐘易引起毛刺,必須對信號的時序加以嚴格限制,並對其進行仔細的時序驗證。

另一種常用的時鐘技術就是可變頻率時鐘。它根據系統性能要求,配置適當的時鐘頻率以避免不必要的功耗。門控時鐘實際上是可變頻率時鐘的一種極限情況(即只有零和最高頻率兩種值),因此,可變頻率時鐘比門控時鐘技術更加有效,但需要系統內嵌時鐘產生模塊PLL,增加了設計複雜度。去年Intel公司推出的採用先進動態功耗控制技術的Montecito處理器,就利用了變頻時鐘系統。該晶片內嵌一個高精度數字電流表,利用封裝上的微小電壓降計算總電流;通過內嵌的一個32位微處理器來調整主頻,達到64級動態功耗調整的目的,大大降低了功耗。



3.並行結構與流水線技術

並行結構的原理是通過犧牲面積來降低功耗。將一個功能模塊複製為n(n≥2)個相同的模塊,這些模塊並行計算後通過數據選擇器選擇輸出,採用二分頻的並行結構,如圖4所示。



並行設計後,由於有多個模塊同時工作,提高了吞吐能力,可以把每個模塊的速度降低為原來的l/n。根據延時和工作電壓的線性關係,工作電壓可以相應降低為原來的l/n,電容增大為原來的n倍,工作頻率降低為原來的l/n,根據式(1)功耗降低為原來的1/n2。並行設計的關鍵是算法設計,一般算法中並行計算的並行度往往比較低,並行度高的算法比較難開發。例如:若原模塊的功耗為P=a×CL×V2dd×f,採用二分頻結構,由於增加了一個模塊和數據選擇器,整個電容負載為2.2CL,工作頻率為f/2,工作電壓可以降為O.6 V,則其功耗為:



由此可見,二分頻並行結構在保持原有電路性能的同時降低了60%的功耗。

流水線技術本質上也是一種並行。把某一功能模塊分成n個階段進行流水作業,每個階段由一個子模塊來完成,在子模塊之間插入寄存器,如圖5所示。若工作頻率不變,對某個模塊的速度要求僅為原來的1/n,則工作電壓可以降低為原來的1/n,電容的變化不大(寄存器面積占的比例很小),功耗可降低為原來的 1/n2,面積基本不變,但增加了控制的複雜度。例如,若原模塊的功耗為P=α×C1×V2dd×f,採用流水線技術,由於增加了寄存器,整個電容負載為 1.2CL,工作頻率不變,工作電壓降為0.6 V,則其功耗為:



由此可見,流水線技術能顯著降低系統功耗。



通過流水線技術和並行結構降低功耗的前提是電路工作電壓可變。如果工作電壓固定,則這兩種方法只能提高電路的工作速度,並相應地增加了電路的功耗。在深亞微米工藝下,工作電壓已經比較接近閾值電壓,為了使工作電壓有足夠的下降空間,應該降低闊值電壓;但是隨著閾值電壓的降低,亞閾值電流將呈指數增長,靜態功耗迅速增加。因此,電壓的下降空間有限。

4.低功耗單元庫

設計低功耗單元庫是降低功耗的一個重要方法,包括調整單元尺寸、改進電路結構和版圖設計。用戶可以根據負載電容和電路延時的需要選擇不同尺寸的電路來實現,這樣會導致不同的功耗,因此可以根據需要設計不同尺寸的單元。同時,為常用的單元選擇低功耗的實現結構,如觸發器、鎖存器和數據選擇器等。

5.低功耗狀態機編碼

狀態機編碼對信號的活動性具有重要影響,通過合理選擇狀態機狀態的編碼方法,減少狀態切換時電路的翻轉,可以降低狀態機的功耗。其原則是:對於頻繁切換的相鄰狀態,儘量採用相鄰編碼。例如:Gray碼在任何兩個連續的編碼之間只有一位的數值不同,在設計計數器時,使用Gray碼取代二進位碼,則計數器的改變次數幾乎減少一半,顯著降低了功耗;在訪問相鄰的地址空間時,其跳變次數顯著減少,有效地降低了總線功耗。

6.Cache的低功耗設計

作為現代微處理器中的重要部件,Cache的功耗約占整個晶片功耗的30%~60%,因此設計高性能、低功耗的Cach結構,對降低微處理器的功耗有明顯作用。Cache低功耗設計的關鍵在於降低失效率,減少不必要的操作。通常用來降低Cache功耗的方法有以下兩種:一種是從存儲器的結構出發,設計低功耗的存儲器,例如採用基於CAM的Cache結構;另一種是通過減少對Cache的訪問次數來降低功耗。

以上主要是從硬體的角度來實現功耗的降低。除了硬體方法,通過軟體方面的優化,也能顯著地降低功耗。例如:在Crusoe處理器中,採用高效的超長指令 (VLIW)、代碼融合(Code Morphing)技術、LongRun電源管理技術和RunCooler工作溫度自動調節等創新技術,獲得了良好的低功耗效果。

三、微處理器的低功耗設計研究展望



功耗是微處理器設計長期面臨的問題,分析當前的研究狀況,未來的低功耗微處理器設計研究有如下發展趨勢:

首先,系統級的低功耗設計研究。抽象層次越高,採用低功耗技術功耗可降低的比例越大。

其次,面向功耗的軟硬體協同設計。而向功耗的軟硬體協同設計可以獲得功耗優化的系統架構,再配合有效的功耗管理,可以大大降低最終的功耗。

再次,異步電路的研究。同步電路的時鐘功耗在整個系統的功耗中占了相當大的比例。異步邏輯無需全局時鐘,而是採用握手信號協調模塊問的工作,減少了時鐘驅動和同步電路中很多不必要的翻轉,從而有效地降低了功耗。然而,異步電路實現困難,且缺乏EDA軟體的支持,因而還有待於進一步的研究。

四、結論

本文介紹了低功耗微處理器的研究現狀,討論了幾種常用的微處理器低功耗設計技術,展望了低功耗微處理器設計研究的發展趨勢。