本文**:
在pc時代,還少有人將處理器功耗提上驗證的日程,因為大家對於處理器效能的關注多於功耗的考慮。在十多年前,大家使用2g的功能手機,「超長待機」一詞漸漸被作為主打廣告語進入了使用者的視線,這得益於硬體本身的低功耗(效能本身不要求太突出)和大容量的電池。而到了智慧型手機時代,伴隨著將桌面辦公和娛樂移動化的需求,一部手機承載著以前桌面機的效能。這種要求之下,也催生了智慧型機市場在過去的幾年當中蓬勃增長,因為隨著軟體效能對硬體的日趨增長的要求,以及流動網路資料傳輸效能的不斷提高,都在促進者硬體效能的層層上公升。
在移動時代,硬體提公升效能的方式主要表現為以下幾種方式
總體上看,隨著效能的提公升,能耗也會逐步提高,這在過去的pc時代還不是乙個顯著問題,但是到了移動端的現在,就越發要求硬體不但要求效能有提公升,也同時需要考慮能耗是否也可以接受。我們這篇文章主要以移動晶元為例,來討論目前關於效能(performance)和效能(power consumption)的權衡。
從上面這張移動硬體領域的技術缺口圖上可以看出,無線通訊技術被標註上了1g、2g、3g和4g。夏農定律**出每8個月傳輸效能會提公升一倍,同時摩爾定律也指出了每18個月電晶體的單位密度會提公升一倍因此處理器的效能也會提公升一倍。同樣地也有對電池生產商每10年左右能源密度提公升一倍,而儲存器的效能大約每12年會提公升一倍。
那麼從這張圖不同器件的特性增長來看,就揭示了對於耗移動硬體的技術缺口,它們是:
而上面講述的技術缺口同目前硬體提公升效能的方式也大致保持邏輯吻合。我們本篇主要就如何解決能效缺口入手,講述目前主流的能效驗證方式。
功率和能量
首先我們先引入基本的概念,能率和電能在日常器件能效討論中經常會提起,然而它們是不同的兩個術語。
功率 = 能量/時間 (瓦特)
能量 = 功率*時間 (焦耳)
有時候,我們設法降低功率也會隨之降低能耗,但這也不是絕對的,例如有些任務在高速高功率情況下可以很短完成,而且效果實際上要比在低速低功率下消耗更長時間的效率更高。又比如,如果靜態功耗可以忽略的前提下,如果乙個任務需要固定的時鐘週期數完成,那麼無論時鐘快還是慢,它消耗的能量是一樣多的;然而,當靜態功耗無法忽略的時候(例如目前的工藝製程已大致在10奈米),反倒是時鐘更快、動態功耗越高的情況下,完成這項任務更高效。所以,效能的驗證和評估實際上就是對能量利用效率的優化途徑。
靜態功耗和動態功耗
所以從上面的例子,我們知道,如果要考慮功耗,需要考慮兩部分,靜態功耗和動態功耗,總的功耗表現可以描述為如下
總功耗 = 開關功耗 + 短路功耗 + 靜態功耗
這裡開關功耗和短路功耗構成了動態功耗的部分。
開關功耗 = c•v2 •f
c = 負載電容
v = 電壓
f = 頻率
短路功耗 = v • i (短路)
i(短路)為在開關切換過程中n極和p級同時有效時發生的電路電流
靜態功耗 =v • i (漏電)
而靜態功耗(或漏電功耗)則是電晶體在啟用或者保持狀態下都會出現的漏電造成的功耗。
節能技術
實際上移動硬體節能(省電)技術是一項全面的流程,從工藝製程、電路、封裝到模組設計、soc設計、系統和應用軟體開發等等,整個環節都需要有效利用能量。下面這張圖是從晶元硬體和軟體所採用的節能技術(省去工藝製程):
能效驗證
我們這裡主要針對矽前設計階段入手,進行能效驗證,我們將其主要分為兩個部分:
pa(power aware)能效設計流程
upf/cpf這兩種功耗格式比較類似,且可以將它們的流程主要分為四個部分:
規定功耗格式檔案,指定了電源掉電、觸發隔離和狀態保持等行為,以及它們的控制訊號。
rtl模擬**(門級**也可以支援),除過要保證在功能同非能效驗證時一樣,也要進行低功耗邏輯和斷電控制功能驗證,檢查狀態丟失、分離和保持。
邏輯功能檢查和等價性檢查(帶有upf/cpf插入的單元)。
邏輯綜合和dft(帶有upf/cpf插入的單元)。
對於矽前驗證階段,驗證人員接觸到的主要是rtl模擬**,我們一般採取的策略是:
進行非效能的rtl**(不帶pa)
在普通rtl功能**都通過的情況下,進行pa**
在門級**階段,如果時間允許,可以在後期進行門級pa**
功耗**與優化
一般我們期望盡早地獲取到功耗的估測資訊,而這一期望又與晶元開發過程相悖,因為往往在流片以後的軟體開發階段測量出來的功耗是更準確的。但是如果需要等到流片之後才能測量功耗,那麼低功耗設計的成本就很大了,因為一方面這使得我們試錯的成本增加,另外一方面產品能效優化迭代的週期也變長了。所以,我們希望在矽前設計階段甚至是規劃階段(tlm虛擬模型)來估測出晶元功耗,已經分析出較降低功耗的設計方法。這這裡,我們將目光落在rtl和門級階段,通過現有的功耗設計平台,執行早期物理感知功耗預算與除錯、功耗降低分析、電源效率回歸分析、以及利用**器介面對動態應用進行功耗特性分析。
簡而言之,目前這些工具都是為了檢視、估計、分析和降低功耗,通過在rtl級和布局後門級功耗資料指標和報告,為設計和驗證人員提供除錯和追蹤功耗的方法。目前主要的功耗**分析工具有powerartist(ansys)、spyglass power(synopsys)、primetime px(synopsys)、redhawk(ansys)。而我們在實際專案中通過不同工具的比較,提供了如下的建議:
目前在矽前能效驗證階段,我們相對容易做到的是去採納pa設計流程,進行相應的rtl**和後端流程。在pa驗證過程中,我們可以通過熟悉的**器進行pa**,進而在保證原有功能實現的情況下,進一步檢查低功耗邏輯和斷電控制功能。而對於功耗**與優化,目前有幾點因素值得考慮:
驗證的方法篇之七 效能驗證
本文 在邁過了效能驗證的坎以後,我們來到了效能 performance 驗證部分。顧名思義,在這部分驗證當中我們需要測試晶元的效能,而測試效能又離不開大量的運算或者資料傳輸。我們之前提到過,矽前rtl驗證的瓶頸之一在於 速度,而且一旦到了晶元級 這一因素就更進一步放大了。由於在產品定義過程中,對於系...
驗證的管理篇之六 驗證師的培養
本文 我們在之前的 晶元驗證全視篇 中針對驗證師的 自我修養 提出了包括技術和專案在內的要素分析,從 一名驗證師的自我修養 一文可以發現驗證師需要得到各方面的鍛鍊。在這些因素背後,通過日常的觀察,我們可以發現優秀驗證師之間的共同能力。這些能力不完全是與生俱來,如果你願意下功夫,也可以在下面總結出的出...
驗證的方法篇之八 趨勢展望
本文 目前主要的驗證方式包括動態 形式驗證和硬體加速,那麼如何選擇它們,已經是否可以構建乙個可復用的驗證平台實現這些不同驗證方法的跨越是接下來我們需要關心的。隨著設計的尺寸和複雜度在不斷提高,即便有ip復用的方式來縮短設計時間,更多模組之間的互動可能性也要求更充分地去驗證這些狀態空間。目前 技術的瓶...