芯片的整體功耗是如何計算出來的?


芯片的整體功耗都有哪些組成部分呢?最根本的組成部分有兩個,即靜態功耗和動態功耗。

1. 靜態功耗(Static Power),又稱漏電流功耗(Leakage Power)。其原理請參見下圖:

 

 

上圖中紅色箭頭表明了在通電狀態下PMOS內主要的泄露電流及其走向,意即:

泄漏電流(Leakage Current) = 漏極->N-Well + Gate->N-Well + 源極->漏極

泄露電流存在的原因在於,MOS管中的多種摻雜區形成導電區域,同時這些區域會組成多個PN節,從而在通電后形成一系列微小的電流。

盡管在現今芯片的工作電壓已經很低的前提下,每個MOS管的漏電流很小,但由於每顆芯片中集成的晶體管至多幾億甚至幾十億,積少成多,導致芯片的整體leakage power變得越來越恐怖。

在后端設計中,由於每個標准單元(standard cell)的leakage都集成在其liberty庫文件(.lib)中,因此計算leakage power只需在制定條件下將design中所有的標准單元(包括各種Macro)的leakage值相加即可。目前所有的主流PR工具對此都有支持。需要指出的是,由於一個標准單元的leakage power和其面積成正比,因此在實際后端設計的各個階段,尤其是low power設計中,一般會重點關注芯片中邏輯門的面積變化並以此快速推斷design的leakage功耗變化。

 

2. 動態功耗(Dynamic Power),主要是由於芯片中的寄生RC電路的充放電引起的。換言之,當芯片中的電路出現任何信號翻轉,都將會產生dynamic power,其中所占最大比例的就是clock信號的翻轉。下圖展示了一個反相器(inverter)在信號翻轉時的簡單模型:

 

 當我們把反相器簡化成一個簡單的rc電路時,就可以清晰的看清充放電時的電流走向。當芯片處於工作狀態時,每一個工作中的標准單元都會隨着clock or/and data的翻轉而不斷重復上述過程,從而產生大量的動態功耗。

在實際后端設計時,動態功耗由於和芯片的功能息息相關,因此在計算的時候會引入翻轉率(toggle rate)的概念。翻轉率是衡量單位時間內device上信號翻轉時間所占的比率。在實際計算dynamic功耗的時候,又會分成兩個部分。一部分為標准單元內部的dynamic功耗,又名Internal Power,這部分的計算是嵌入liberty庫文件內部,通過標准單元的input transition和output load來查表得到的;另一部分為互連線(net)上的dynamic功耗,這部分的計算通過將所有net上每個翻轉周期的功耗乘以其翻轉率並相加得到。反轉率通過某種固定格式的文件傳入EDA工具,比較常用的格式有SAIF(Switching Activity Interchange Format)、VCD(Value Change Dump)以及FSDB(Fast Signal Database)文件。

目前主流的PR工具均支持此類用法,但是signoff時仍然需要比較專業的power計算工具如Synopsys PrimeTime PX或Cadence Palladium等。

至此,我們基本了解了一顆芯片整體功耗的計算方法。而在現今十分重要的低功耗設計中,所有的手法都是從降低以上兩個方面(Static, Dynamic)的功耗着手的:

比如應用多個power domain以便在芯片的某一部分功能不用的時候將其斷電關閉;或者通過升級更先進的工藝來降低每個晶體管的size從而降低整體面積;抑或通過改善時鍾樹綜合手段來降低芯片中占比很大的clock network power。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM