【導讀】你的設計在執(zhí)行特定功能時要消耗多少功率?對于許多設計來說,正確地掌握這個問題可能會決定成敗,但要知道這個正確的數(shù)字并不像聽起來那么容易。功率分析所預測的功率與硅片消耗的功率之間存在著巨大的差距。在已知的差距被彌補的同時,新的挑戰(zhàn)和要求也在對工具提出。這使得功率分析和早期的功率優(yōu)化嘗試成為EDA最具創(chuàng)新性的領域之一。各種市場都關注功率的不同方面,每一個方面都會影響設計或?qū)崿F(xiàn)過程的特定方面,同時,幾何尺寸的縮小也增加了新的物理效應,而這些效應尚未被完全納入。
設計和驗證團隊不得不重新配置,以應對這些挑戰(zhàn),同時平衡降低功耗帶來的投資回報率與改進設計或更便宜的產(chǎn)品。"功耗感知設計至關重要,并得到了很多關注,但根本不是一個簡單的過程,"Arm公司杰出工程師James Myers說。"這也是完全不同的,取決于設計的種類。"
這推動了人們對這個問題的大量關注。"每一個客戶都對功率感興趣,"Cadence的產(chǎn)品管理總監(jiān)Rob Knoth說。"但功率的含義會隨著每一次對話而改變。有的產(chǎn)品以消耗多少電量而生,也有的產(chǎn)品以消耗多少電量而死。其他人則更關心他們將需要多少臺空調(diào),或者他們是否能從環(huán)境能源中為設備供電。他們都會通過不同的視角來看待電源和功率錯誤。"
定義電力蟲子聽起來很簡單,但它是什么呢?"我們將電源錯誤定義為不希望的功耗,"Ansys公司PowerArtist產(chǎn)品管理負責人Preeti Gupta說。"它對功能沒有幫助。但功率是一個數(shù)字。如果我的設計消耗了500毫瓦,我怎么知道這是否是最佳的?是不是離我應該的位置有5倍的差距?"
獵取功率錯誤
也許一個更重要的問題會被問到,當一個芯片回來后,消耗的功率比預期的要大。你如何找到這個功耗錯誤的原因,是什么原因可能導致預測和實際的分歧?過程中哪里讓你失望了?一些潛在的脫節(jié)現(xiàn)象如圖1所示。
圖1:今天的特設功率分析。
這個bug可能在非常詳細的層面上,也可能在最高的抽象層面上,以及中間的任何地方。設備的靈活性可以是一種祝福,也可以是一種詛咒。"今天,設計師們看到了一系列可以使用的器件,"Synopsys設計組高級職員應用工程師Haran Thanikasalam說。"例如,代工廠提供高Vt器件、低Vt器件和超低Vt器件。如果你采用高Vt器件,那些器件速度較慢,但它們耗散的功率較小,而如果我們采用超低Vt器件,它們的速度非??欤瑫r它們的漏電現(xiàn)象非常嚴重。在決策中可能會浪費很多功率。此外,當把低Vt器件和高Vt器件結合在一起時,某些代工廠或工藝不允許這兩種擴散合并在一起,所以它們必須是單獨的擴散,這就會影響你的領域。"
在最新的節(jié)點上,新的效應就會出現(xiàn)。"今天的設備幾乎達到了角質(zhì)級,"Thanikasalam補充道。"即使是輕微的變化也會大規(guī)模地改變設備的工作方式。我們甚至如何測量功率,以及如何將這些由模擬提供的功率數(shù)字與實際硅片相關聯(lián)?這是一個越來越嚴重的問題,因為在硅片上,你無法準確地指出某個特定的塊,比如內(nèi)存,到底浪費了多少,因為你沒有辦法測量這些信息。"
在系統(tǒng)層面,發(fā)現(xiàn)了不同的問題。"仿真器本質(zhì)上受限于它們能模擬的周期數(shù),或者它們能運行的現(xiàn)實場景數(shù),"Ansys的Gupta說。"用戶需要能夠采取真實的芯片級流量的工具和方法論,并在早期對其進行建模。他們需要考慮,對于10億個時鐘周期,有不同的操作模式,這就是相應的功率曲線。這是我的視頻IP打開和關閉的時候,我的CPU子系統(tǒng)或者GPU子系統(tǒng)閑置的時候,任何暴露的功耗bug都會有非常大的影響。想象一下,在幾秒鐘的時間里,你的GPU子系統(tǒng)可能已經(jīng)被關閉了。在簡單的模擬場景中,你無法認識到這一點,但在現(xiàn)實的應用場景中,你或許能夠認識到這一點。"
這就造成了抽象性和保真性的老難題。"當你進入更高的抽象水平時,你不可能像設計更明確時那樣具有同樣的準確性,"Gupta補充道。"但早期分析確實可以提供對更高影響功率問題的見解。今天,許多團隊專注于RT級。例如,您正在查看一個具有數(shù)百萬個倒裝觸發(fā)器的設計,您希望提取一個通用的高級使能。但在RTL,一個時鐘網(wǎng)是理想的,這可以提供不太可預測的結果。我們必須估計負載,它將驅(qū)動什么樣的電容。我們做時鐘門拆分,我們做緩沖區(qū)尺寸調(diào)整,我們創(chuàng)建網(wǎng)狀網(wǎng)絡、樹狀網(wǎng)絡,我們的想法是,這不是要達到一個超級精確的功率數(shù)字,而是這些高級功率調(diào)試方案應該被保真地識別出來。"
關注度不斷擴大
Cadence的Knoth問道:“團隊必須清楚地了解他們的權力擔憂。你最擔心的是什么?圖2形象地展示了一些潛在的擔憂。"是熱擔憂嗎?是峰值功率問題嗎?是待機功率問題嗎?是di/dt問題嗎?你是否擔心喚醒的急流?即使你知道擔心的問題是什么,你也要問什么時候才會有適當?shù)拇碳碚_地進行功率或熱分析,這樣我們就不會做出不正確的結論,要么給產(chǎn)品增加過多的余量,要么延遲進度。這是一個非常共同依賴的問題。”
圖2:五種功率方案。
Gupta對此表示同意:“有些人開始在門級測量功率,以便了解電網(wǎng)是否已被正確構建,能夠維持該功率。封裝是否足以支撐該功率?從那里開始,它已經(jīng)演變成更復雜的方案:數(shù)百種功率門控條件、動態(tài)電壓和頻率縮放。你把所有這些因素集中在一起,復雜性就會飆升。”
Arm的Myers說:“一些設計承認,必須存在反饋回路,以便就地處理電源問題。在服務器中,重點可能是在固定的熱包絡內(nèi)最大限度地提高吞吐量,這歸結為有源功率/GHz、熱管理和對電源噪聲的容忍度,其中一些可以在硅后通過表征電壓和溫度傳感器然后調(diào)整系統(tǒng)管理軟件來完成--所以可配置性很重要。但也有復雜的硬件設計反饋回路,例如何時對某一特定塊進行節(jié)流,以維持系統(tǒng)完整性,同時將吞吐量影響降到最低。電流尖峰對系統(tǒng)完整性來說是個問題,但取決于上下文,如去耦電容、平面圖中的相鄰塊、當前DVFS點、穩(wěn)壓器負載、封裝布局等。考慮到所有這些因素,反饋回路通常太長,有不穩(wěn)定的風險,所以需要新的方法,因為過多的靜態(tài)裕度會直接影響性能。”
Knoth說:“有些人關心的是動力的積分--能量。一些公司正在改變對話,從我們做什么來優(yōu)化動力,到我們做什么來優(yōu)化能源?歸根結底,能源才是真正完成工作的東西。動力在很多方面對我們來說是一個更容易衡量的東西,也是我們更容易兼顧的東西,但它確實是能量,是最終的目標,我們越是能直接衡量它,我們就越能創(chuàng)造出有助于理解它和利用它的工具。”
過去單獨分析功率的許多方面,現(xiàn)在正變得由物理屬性聯(lián)系起來。熱影響靜態(tài)和動態(tài)功率,這也會影響時間?;顒訒a(chǎn)生熱量,所以有一個反饋循環(huán)。方案必須足夠長,不僅要產(chǎn)生熱量,還要允許這些熱量在裸片上的散失,以查看它對鄰近器件的影響。
Gupta說:“功耗的一部分是由功能結構決定的,第二部分是由活動在你的設計中是如何流動的決定的?;顒訉挠幸患売绊?,當然布局和變化效應也很重要。圍繞時鐘有很多關注點,因為它是你設計中最快的信號,它控制著設計中發(fā)生的很多功耗。你關閉時鐘,你就可以節(jié)省大量的電力。你關閉電源,就能節(jié)省更多的電力。”
Knoth說:“電源必須是一個過程的組成部分。這是一個多層次的方法,你必須考慮用今天的信息能得出什么樣的有效結論。隨著設計的進展,事情的成熟,你能夠得到更多的準確性,你能夠?qū)Ξa(chǎn)品有更多的洞察力,但有時你能改變產(chǎn)品的數(shù)量會減少。隨著時間的推移,它變得越來越少。早期你的靈活性最大,但準確性最小。什么時候你需要鎖定某些關于封裝、關于散熱片、關于電網(wǎng)穩(wěn)健性的決策?你必須從整體產(chǎn)品進度的角度來考慮這個問題。”
Ambiq公司架構和產(chǎn)品規(guī)劃副總裁Dan Cermak說:“這總是一個微妙的平衡。對于硅片開發(fā),總是存在挑戰(zhàn)和風險,你會遇到GIGO效應(Garbage In Garbage Out),在設計階段太早進行功率調(diào)試可能會給你帶來誤導性/錯誤的結果,但等到最終設計完成后再開始功率調(diào)試就太晚了,無法影響有意義的改變。”
結果保真度
仿真結果的準確性取決于必要的物理效應能否被模擬出來。功能性都是關于1和0的,但對于功率問題,這可能是個問題。
Synopsys的Thanikasalam說:“考慮一個存儲器,有一些位線貫穿SRAM存儲器,該存儲器的主要功率來自于這些位線的波動。它們會耗費大量的功率。當你做仿真時,你有能力將它們設置為VDD或它們接地。在真實的硅中,你沒有辦法做到這一點。即使一條位線出現(xiàn)在VDD上,隨著時間的推移,該位線也會開始泄漏,因為沒有任何東西將該位線固定在VDD點上。這些都是差分對,它們可能就在中間出現(xiàn),然后消耗大量的功率。所以模擬器和真實硅片的工作原理之間有很大的關聯(lián)性差距。”
Ambiq的Cermak說:“即使假設了數(shù)字抽象,也有很大的誤差空間。有一個問題是確定必須分析的適當?shù)墓ぷ髫撦d/場景,它是一個有代表性的工作負載嗎?它是否涵蓋了設計的所有關鍵操作模式?對于較大的設計,這個問題變得更加復雜,因為你必須將這些工作負載分解成更小的微工作負載來進行實際評估。”
Knoth補充道:“你的功率分析只有你的矢量才好,你必須在一個層次上看問題,你要看,''這個矢量的覆蓋率是多少?活動是什么樣的?我們已經(jīng)投資了相當多的資金來構建實用工具,幫助客戶對刺激本身做更多的工作,將不同的向量合并在一起以創(chuàng)建新的場景,將一個向量的活動與另一個向量的活動進行對比。”
Thanikasalam說:“整個過程比功能驗證要復雜得多。除非你刺激電路的一部分,否則你不會撥動那個設備,也不會有熱量從它身上散發(fā)出來,你必須讓測試臺更加嚴格,確保在做模擬時,電路的每個部分都是真正的撥動。這對性能有負面影響,而且需要更多的時間,需要更多的能力。這絕不是一個單一的問題了。你必須同時解決所有的問題。隔離一個單一的效果變得非常困難。”
Gupta說:“你無法任意裝箱大型矢量集。我可能有成千上萬的向量,我如何識別哪些是所有這些矢量中共同的最活躍信號。我有時序關鍵路徑,我如何表征這些路徑上的時序功率敏感性,以便做出設計決策?方法論需要有能力存儲各種功率相關的數(shù)據(jù),然后有一個框架和API,用戶可以跨大型設計、長向量進行查看,幫助他們獲得有意義的見解。”
知識產(chǎn)權問題
Myers說:“在設計中使用IP時,可能會對所提供的功率模型的保真度產(chǎn)生疑問。EDA工具很擅長精確定位功率的貢獻者,如果它們在數(shù)字邏輯中,而且你有適當?shù)姆抡娲碳ぃ鼈儗τ跈z查內(nèi)部宏,如存儲器或混合信號部分的設計沒有什么幫助,在那里你依賴于你的設計師或IP供應商。幸運的是,這方面有一些標準倡議,如IEEE 1801,它正在追求增強的功率感知宏的建模。”
Knoth說:“現(xiàn)在還處于早期階段。業(yè)界在實現(xiàn)正常化方面取得了一些非常好的進展,即當你包裝和銷售IP時,功率信息與定時信息同樣重要,即使你只是看看定時模型是如何在行業(yè)內(nèi)出貨的,自從Liberty模型首次推出以來,已經(jīng)發(fā)生了令人難以置信的演變,功率比定時有一個額外的維度。”
Thanikasalam說:“現(xiàn)在問題依然存在。當設計公司向終端客戶定義他們的功率規(guī)格時,有很多假設,這些設置是用于該功率情況的,而這些特定的設置甚至可能在真實的硅上不可能。所以,基于模擬的報價和硅片提供的實際數(shù)字之間存在這種差異。”
誰的責任?
設計和驗證團隊一起工作,卻又獨立工作。理解功率需要比功能驗證更多的設計知識,那么最終由誰來負責尋找功率錯誤呢?
Gupta說:“在電源方面比較成功的公司已經(jīng)創(chuàng)建了一個新的團隊叫做電源方法團隊,這個團隊位于設計團隊和驗證團隊之間。他們是將RTL設計者創(chuàng)建的設計進行功率分析并找出可以做出哪些改變的人。然后他們通過設計社區(qū)管理這些變化。他們與驗證工程師合作,幫助他們認識到功率矢量應該是什么。”
Knoth說:“驗證團隊傳統(tǒng)上一直是矢量集的維護者。"行業(yè)已經(jīng)成熟,產(chǎn)品的功能驗證和產(chǎn)品的功率分析和優(yōu)化正在加入到一起,這兩者真的需要合二為一,否則都不能有效地完成自己的工作。做功能驗證的人可以關注功率。你不應該強迫人們使用一個完全獨立的工具或運行集的生態(tài)系統(tǒng)。EDA行業(yè)有責任讓人們盡可能不痛苦地將波形轉(zhuǎn)化為瓦特。”
Gupta說:“這可能會造成目標的沖突。"隨著時間的推移,我看到功率方法論團隊開始雇用驗證工程師,因為他們正在與功能回歸資源競爭,沒有功能,芯片就什么都不是。所以他們很難游說和競選功率向量,而范式的轉(zhuǎn)變是,功率方法論工程師現(xiàn)在正在為功率編寫向量。”
結語
如今,大量的投資和創(chuàng)新都投入到功率分析工具中,沒有簡單的答案。用戶不得不在測試的廣泛性和結果的保真度之間做出權衡,并評估在開發(fā)路徑上必須做出的每一個決策的必要條件。但這只是旅程的開始。分析是方法論發(fā)展的第一階段,之后需要進行洞察、優(yōu)化和自動化。其中一些是在問題空間不斷發(fā)展的同時出現(xiàn)的。Knoth說:“當你從有一個電力焦點切換到能源焦點時,你已經(jīng)得到了一個額外的自由度,這是你以前沒有的,看看這對像地方和路線和綜合這樣的事情能做什么是相當迷人的。一旦你開始考慮能源與電力,就會有一些驚人的創(chuàng)新機會。”
推薦閱讀: