定義
功率的損耗,指設備、器件等輸入功率和輸出功率的差額。功率的損耗。電路中通常指元、器件上耗散的熱能。有時也指整機或設備所需的電源功率。
功耗同樣是所有的電器設備都有的一個指標,指的是在單位時間中所消耗的能源的數量,單位為W。不過複印機和電燈不同,是不會始終在工作的,在不工作時則處於待機狀態,同樣也會消耗一定的能量(除非切斷電源才會不消耗能量)。因此複印機的功耗一般會有兩個,一個是工作時的功耗,另一個則是待機時的功耗。
待機功耗
2001年,歐盟要求額定輸出功率0.3W~70W的無負載功率損耗均為1W;2005年,歐盟將該標準變為額定輸出功率0.3W~50W的無負載功率損耗為0.3W、額定輸出功率15W~70W的無負載功率損耗為0.75W。由此可以看出,大家對電器產品功耗方面的要求正日益嚴格。
為了符合歐盟等組織針對產品功耗而制定的種種規範,很多新技術應運而生,主要思想是讓開關電源在負載很小或空載處於待機狀態時能夠以較低開關頻率操作。
TI公司提供的UCC28600電源方案,在30%~100%輸出功率段,採用準諧振零電壓和固定頻率不連續模式相結合的電源控制方式,以及高達1A的驅動能力,使得反激式電源的開關損耗大為降低,整機工作效率達到85%以上;在10%~30%輸出功率段,採用固定峰值電流的關斷時間調製模式的電源控制方式,使得電源的動態負載回響和低功率段的轉換效率都得到極大的改善;同時在大約10%輸出功率段採用跳脈衝的待機控制模式,使得待機功耗低至150毫瓦特。
UCC28600能直接驅動高達200瓦特的反激式電源,同時UCC28600自身攜帶的引腳功能能在待機模式下自動關斷PFC功能,使得用戶的設計更為簡潔,費用更低廉。
TDP功耗
TDP的英文全稱是“ThermalDesignPower”,中文翻譯為“熱設計功耗”,是反應一顆處理器熱量釋放的指標,它的含義是當處理器達到負荷最大的時候,釋放出的熱量,單位為瓦(W)。
CPU的TDP功耗並不是CPU的真正功耗。功耗(功率)是CPU的重要物理參數,根據電路的基本原理,功率(P)=電流(A)×電壓(V)。所以,CPU的功耗(功率)等於流經處理器核心的電流值與該處理器上的核心電壓值的乘積。而TDP是指CPU電流熱效應以及其他形式產生的熱能,他們均以熱的形式釋放。顯然CPU的TDP小於CPU功耗。換句話說,CPU的功耗很大程度上是對主機板提出的要求,要求主機板能夠提供相應的電壓和電流;而TDP是對散熱系統提出要求,要求散熱系統能夠把CPU發出的熱量散掉,也就是說TDP功耗是要求CPU的散熱系統必須能夠驅散的最大總熱量。
現在CPU廠商越來越重視CPU的功耗,因此人們希望TDP功耗越小越好,越小說明CPU發熱量小,散熱也越容易,對於筆記本來說,電池的使用時間也越長。Intel和AMD對TDP功耗的含義並不完全相同。AMD的的CPU集成了記憶體控制器,相當於把北橋的部分發熱量移到CPU上了,因此兩個公司的TDP值不是在同一個基礎上,不能單純從數字上比較。另外,TDP值也不能完全反映CPU的實際發熱量,因為現在的CPU都有節能技術,實際發熱量顯然還要受節能技術的影響,節能技術越有效,實際發熱量越小。
TDP功耗可以大致反映出CPU的發熱情況,實際上,制約CPU發展的一個重要問題就是散熱問題。溫度可以說是CPU的殺手,顯然發熱量低的CPU設計有望達到更高的工作頻率,並且在整套計算機系統的設計、電池使用時間乃至環保方面都是大有裨益。目前的台式機CPU,TDP功耗超過100W基本是不可取的,比較理想的數值是低於50W。
低功耗SOC設計
1)為什麼需要低功耗?
隨著SOC的集成度與性能的不斷發展,如今的SOC已達到百瓦量級。如Intel的Itanium2功耗約130瓦,這需要昂貴的封裝,散熱片及冷卻環境。根據摩爾定律,每18個月電晶體密度增加一倍,而電源技術要達到相同的增速,需要5年,顯然電源技術已成瓶頸。電路里的大電流會使產品的壽命和可靠性降低。電源的動態壓降嚴重的時候還會造成失效。
2)功耗從哪兒來?
功耗一般分兩種:來自開關的動態功耗,和來自漏電的靜態功耗。而動態功耗又可分為電容充放電(包括網路電容和輸入負載),還有當P/NMOS同時打開形成的瞬間短路電流。靜態功耗也可分為幾類:擴散區和襯底形成二極體的反偏電流(Idiode),另外一類是關斷電晶體中通過柵氧的電流(Isubthreshold)。晶片的漏電會隨溫度變化,所以當晶片發熱時,靜態功耗指數上升。另外漏電流也會隨特徵尺寸減少而增加。
公式:Ptotal=Pdynamic+Pshort+Pleakage
Pswitch=A*C*V2*F
Pshort=A(B/12)(V-2Vth)3*F*T
Pleakage=(Idiode+Isubthreshold)*V
3)怎樣減少功耗呢?
首先定義對功耗的需求,然後分析不同的架構,決定如下需求:systemperformance,processorandotherIPselection,newmodulestobedesigned,targettechnology,thenumberofpowerdomainstobeconsidered,targetclockfrequencies,clockdistributionandstructure,I/Orequirements,memoryrequirements,analogfeaturesandvoltageregulation.你還需要定義工作模式:如startup,active,standby,idle,andpowerdown等等,當然這些模式是由軟硬體共同決定的。
理想的解決辦法是不同工作模式下用不同的工作電壓,但這又會造成太過複雜的情況,比如你需要考慮不同電壓區域隔離,開關及電壓恢復,觸發器和存儲器的日常存儲恢復中狀態缺失,等等。簡單一點來講,你可以根據高性能/高電壓和低性能/低電壓來劃分你的設計。接下來你可以考慮系統時鐘結構,這對減少動態功耗很有用。你可以使用多個時鐘域,降低頻率,調整相位等等。一般處理器的軟體接口控制都可做到這幾點。別忘了可能出現的比如glitch,skew,等問題。
一旦架構確定下來,就可以做RTLcode了,當然目標還是低功耗。使用EDA工具時注意mutiplethresholdleakageoptimization,multiplesupplyvoltagedomains,locallatchbasedclockgating,de-cloneandre-clonerestructuring,operandisolation,andgatelevelpoweroptimization.我們一條條的來看:
第一,mutiplethresholdleakageoptimization。庫檔案一般有三版:低Vth(快,大漏電),標準Vth,高Vth(慢,低漏電)。工具一般儘量用高Vthcell,而由於timing限制則需用低Vthcell.很明顯,選庫很重要。
第二,multiplevoltagedomains。不同工作電壓需要庫的支持。不同電壓區域的劃分則需要前後端設計的協作。
第三,locallatchbasedclockgating。這是在成組的flop之前加上特定的clockgatinglatch.
第四,de-cloneandre-clonerestructuring。在layout之前,將localclockgating提到更高一級,以利於減少面積,為CTS建立“乾淨“的起始點。在具體布局時,對localclockgating進行re-clone,以利於最佳化時鐘樹。
第五,operandisolation。這一步通過一個通用控制信號,自動識別並關閉datapathelements和分層組合模組。
第六,Classicalgateleveloptimization。改變單元尺寸,pinswapping,去除不必要的buffer,合並門,加入buffer減少skew,調整邏輯等等。
SOC的功耗分析
大規模積體電路多採用CMOS電路,對於CMOS電路來說,在執行某一任務期間,1個時鐘周期的能量消耗為:
式中:M為系統中門電路的個數,Cm為第m個門電路的負載電容,為第k個門電路每個時鐘周期的開關次數,Vdd為電路的電源電壓值。
可以看出,影響系統功耗的主要因素有工作電壓、負載電容、門電路的開關次數和時鐘數。這些參數就是進行SOC系統低功耗設計的出發點。
SOC不同層次的低功耗設計
影響系統功耗的參數調整主要是從系統級到物理級來進行。下面將針對各種不同層次中較為有效的設計方法進行闡述與探討。
系統級
在系統級進行低功耗設計的主要方法有:
(1)軟硬體劃分
軟硬體劃分是從系統功能的抽象描述著手,把系統功能分解為硬體和軟體來實現。通過比較採用硬體方式和軟體方式實現系統功能的功耗,得出一個比較合理的低功耗實現方案。由於軟硬體的劃分處於設計的起始階段,所以能為降低功耗帶來更大的可能。
(2)功耗管理
功耗管理的核心思想是設計並區分不同的工作模式。其管理方式可分為動態功耗管理和靜態功耗管理2種。動態功耗管理的思想就是有選擇地將不被調用的模組掛起,從而降低功耗。靜態功耗管理是對待機工作模式的功耗進行管理,它所要監測的是整個系統的工作狀態,而不是只針對某個模組。如果系統在一段時間內一直處於空閒狀態,則靜態功耗管理就會把整個晶片掛起,系統進入睡眠狀態,以減少功耗。
(3)軟體代碼最佳化
軟體代碼的功耗最佳化主要包括:①在確定算法時,對所需算法的複雜性、並發性進行分析,儘可能利用算法的規整性和可重用性,減少所需的運算操作和運算資源。②把算法轉換為可執行代碼時,儘可能針對特定的硬體體系結構進行最佳化。例如,由於訪問暫存器比訪問記憶體需要更少功耗,所以,可以通過合理有效地利用暫存器來減少對記憶體的訪問。③在作業系統中充分利用硬體提供的節電模式。隨著動態電壓縮放技術的出現,作業系統可以通過合理地設定工作狀態來減少功耗。
結構級
在結構級進行低功耗設計的主要方法有:
(1)並行結構
並行結構是將1條數據通路的工作分解到2條通路上完成。並行結構降低功耗的主要原因是其獲得與參考結構相同的計算速度的前提下,其工作頻率可以降低為原來的1/2,同時電源電壓也可降低。並行電路結構是以犧牲晶片的面積來降低功耗。假定參考結構中的工作頻率為.,電源電壓,整個數據通路的等效電容是,最壞情況下的延遲為:,則:。如果採用並行結構,可以使工作頻率降為/2,最壞情況下的延遲可以達到2,假定電源電壓降低為/1.8,由於電路的加倍和外部布線的增加,其等效的電容為2。則:由上式可以看出,並行結構下功耗有明顯的降低。
(2)流水結構
電路流水就是採用插人暫存器的辦法降低組合路徑的長度,達到降低功耗的目的。一個先相加再比較的電路中間插人流水線暫存器的流水結構。加法器和選擇器處在2條不同的組合路徑上,電路的工作頻率沒有改變,但每一級的電路減少,使電源電壓可以降低。假設電源電壓為/1.8,由於加人了流水線暫存器,等效電容變為原來的1.2。則:由上式可見,採用流水線結構也可以顯著地降低功耗。
電路流水化和並行化可以達到降低功耗的目的,這是因為設計者可以選擇電路的工作電壓。如果電路工作電壓固定,2種方法只能提高電路的工作速度,但功耗將相應地有所增加。
(3)編碼最佳化
一般可採用One-Hot碼、格雷碼和匯流排反轉碼降低片上系統匯流排的功耗。
One-Hot碼在一個二進制數中只允許1個數位不同於其他各數位的值;格雷碼在任何2個連續的數字其對應的二進制碼只有1位的數值不同。由於在訪問相鄰的2個地址的內容時,其跳變次數比較少,從而有效地減少了匯流排功耗。匯流排反轉碼是在傳輸數據時考慮相鄰數據之間的關係來決定傳輸的格式。當傳送部件向匯流排上傳輸第個數據時,會將它和進行比較,根據比較的結果來決定傳送還是,從而減少匯流排的有效翻轉數,進而減少系統的功耗。
除了這幾種編碼外還有一些更為複雜的低功耗編碼,如窄匯流排編碼、部分匯流排反轉編碼和自適應編碼等,這些編碼方式的最終目的就是通過改變編碼來降低不同數據切換時的平均翻轉次數。在採用這些編碼時,設計者應該綜合考慮它們帶來的其他代價,如增加的編碼解碼電路等。
暫存器級
在暫存器級進行低功耗設計的主要方法有三種。
(1)門控時鐘
門控時鐘有2種:門控到達邏輯模組的時鐘和門控到達每個觸發器的時鐘。但不管是哪一種,都能起到降低功耗的作用。門控到達邏輯模組的時鐘控制方法如下圖所示。中心模組提供給模組A和模組B不同的門控時鐘,當模組不工作時,可以關閉該模組,從而達到減少功耗的目的。
模組級時鐘門控方法
門控到達每個觸發器的時鐘控制方法如下圖所示。當暫存器保持數據時,可以關閉暫存器時鐘輸入,減少功耗。
門控時鐘控制的暫存器
(2)存儲分區訪問
存儲分區訪問是將一個大的存儲模組分成不同的小的存儲模組,通過解碼器輸出的高位地址來區分不同的存儲模組。工作中,只有被訪問的存儲器才工作,其他幾塊存儲器不工作。多模組RAM的架構如下圖所示。
多模組ram架構
根據參考文獻[[4],採用此種方法可以將RAM的功耗減少12.5%。
(3)預計算
預計算是提前進行位寬較小的計算工作,如果這些操作得到的信息可以代表實際的運算結果,就可以避免再進行位寬較大的計算工作,降低電路的有效翻轉率,從而達到降低功耗的目的。