软件驱动的功率分析
軟件驅動的功率分析
Software-driven power analysis
功率成本高;功率成本高。這是對阿克頓勛爵名言的一種強迫性的改編,抓住了半導體設計和功耗的兩個重要方面。從一段時間內的平均功耗來看,很明顯高功耗的芯片將產生高成本。在便攜式設備中,更大的功率意味著電池體積更大、價格更高,或者電池壽命縮短。此外,更大的功率意味著更先進和更昂貴的包裝來散熱。這三個因素在產品定價、利潤率和市場成功的可能性方面也會產生連鎖反應。
對功耗的擔憂遠遠超出了至少部分時間使用電池的便攜式設備。壁掛式設備在包裝、電源和配電系統方面也會產生額外的成本。這些相同的問題一直延伸到服務器領域,包括機架或計算服務器、海量數據存儲陣列和網絡交換機。服務器領域的運營成本是巨大的;研究表明,在每臺服務器的生命周期中,功耗超過了硬件本身的價格。服務器場可能位于水電站大壩或大型太陽能電池陣列附近,以滿足它們的高需求。一些地方還必須符合“綠色法律”,以規范服務器的功率消耗。
在高端,過度的功率消耗可能需要液體冷卻系統,這會增加巨大的基礎設施和相關成本。基于所有這些原因,降低平均功耗是幾乎所有半導體項目的目標,而不管終端市場如何。在考慮峰值功率時,降低功率可能是一個關鍵需求,而不僅僅是一個目標。有些芯片被設計成只允許某些部分同時運行。在這種情況下,打開所有功能可能需要比設備所能處理的更多的電流消耗,從而導致熱擊穿和永久性損壞。
Challenges of power analysis
功率分析的挑戰
考慮到限制功耗的所有動機,該行業已經開發出各種各樣的低功耗設計技術。這些范圍從布局級電路調整到系統級、應用程序感知、基于軟件的電源管理。無論使用何種技術,在設計和驗證正在開發的芯片時,通過估計平均功耗和峰值功耗來準確評估它們的影響是非常有價值的。在制造之后才發現平均功率對于一個可行的產品來說太高了,或者峰值功率消耗破壞了芯片,這是不可接受的。需要有效的硅前功率分析,最好在項目的多個階段進行。
電子設計自動化行業傳統的功率分析方法依賴于仿真。芯片的功能驗證需要開發一個測試臺,然后編寫或生成一套測試,檢查芯片設計的每個功能或特征。模擬整個測試套件,或者只模擬一個具有代表性的部分,并將結果輸入傳統的power signoff工具是一件相對簡單的事情。由于大多數功耗只發生在電路切換狀態時,模擬器可以向電源簽核工具提供切換活動文件。當結合目標技術庫中的功率特性時,該工具可以為平均功耗和峰值功耗提供相當準確的估計。
然而,這種準確性完全與在模擬中運行的測試有關。在實踐中,任何驗證測試套件都不能代表生產軟件運行時的芯片操作。為功能驗證而設計的測試,其目的在于只刺激目標特性所需的設計區域。受約束的隨機測試臺可以生成更多的并行活動,但仍然不太可能模擬真實世界的使用情況。真正精確的功率分析只能通過使用來自實際軟件工作負載的切換活動來執行,包括在操作系統(OS)上運行的用戶應用程序。
啟動操作系統、啟動系統服務和運行應用程序通常需要數十億個時鐘周期。這在模擬中運行是完全不現實的。相比之下,模擬器通常運行數十億個周期,從操作系統引導到多個用戶應用程序并行運行。仿真練習了執行高精度功率分析所需的實際軟件工作負載。挑戰在于,power簽核工具被設計成可以處理數千個周期,而不是數百萬個,當然也不是數十億個。需要一種新的方法來識別仿真運行中的幾個高活動區域,并將重點放在僅使用這些窗口進行功率分析(圖1)。
Figure 1. Power analysis using power windows
Moving to software-driven power analysis
轉向軟件驅動的功率分析
圖1所示流程的第一個要求是仿真器生成一個概要文件,顯示設計的哪些部分在一段時間內處于活動狀態。此活動配置文件可以在波形查看器或其他硬件調試工具中查看為圖形。由于電源簽準不能在數十億個周期上執行,下一步是用戶利用活動配置文件來確定一個或多個電源關鍵型窗口,在此期間活動最高,功耗也可能最高。如果這些窗口中的每一個都在數百萬個周期內,則可用于下一階段的功率分析。作為基準,模擬器應該能夠在三個小時內生成十億個軟件工作負載周期的活動概要文件。
默認情況下,模擬器不生成活動概要文件;需要一個新的功率分析器工具來創建加權活動模型,并將其與設計一起加載到模擬器中。將多線程功耗分析引擎添加到仿真運行中,可以生成配置文件,使用戶能夠在執行數十億個周期、復雜的軟件工作負載時系統地分析其設計的功耗使用情況。一旦寄存器傳輸級(RTL)設計就緒,用戶就可以運行這個功率分析步驟。由于實現流程中每個階段的功率估計變得更加精確,因此用戶可以對合成后的門級(GL)網絡列表運行相同的分析(請參見圖2)。由于總功耗是目標指標,因此應盡可能使用完整的芯片級RTL或netlist。
Figure 2. Selection of power critical windows
該過程的下一步是在模擬器中重放(重新運行)每個功率關鍵型窗口,以生成關于功耗和切換活動的更詳細的信息。由于這可能是大量的數據,因此運行整個數十億周期的工作負載是不切實際的。模擬器必須支持“保存”和“恢復”,以便標識為電源關鍵型窗口的工作負載的每一部分都可以自己快速輕松地重放。對于重播,模擬可以從最接近窗口的保存/還原點開始。模擬器還必須能夠在測試運行期間記錄刺激,這樣回放就可以確定地發生。這些要求同樣適用于仿真中的有效調試以及實際功率分析。
功率臨界窗口回放的結果被輸入到功率分析器中,這將產生兩個結果。第一個是交換活動交換格式(SAIF)文件,它記錄了設計中每個信號的交換活動。作為一個基準,這個流應該能夠在兩個小時內從1TB的仿真數據生成一個1億個周期的SAIF文件。給定模擬器的適當輸出,此文件可以100%準確。因此,它提供了對設計活動的深入洞察,并使更準確的功耗估計成為可能。由功率分析器生成的SAIF文件被輸入power signoff工具(參見圖3),它計算窗口期間的平均功耗。這對于試圖了解最終芯片的功率要求的用戶非常有用。
Figure 3. Estimation of average power
功率分析器還為整個功率臨界窗口生成一個周期的功耗值。用戶可以在調試工具中查看此信息,并使用它來選擇一個或多個需要高精度功率估計的電源簽出窗口(請參見圖4)。除了完整的SAIF文件外,功率分析儀還可以訪問目標芯片技術的詳細庫,包括電源特性。因此,與最終芯片相比,此階段的功率分析通常準確率為95%。用戶可以將power signoff窗口提供給power signoff工具,以進一步完善power分析。power signoff工具可以計算窗口的峰值功率,允許用戶確保功耗保持在芯片的物理限制范圍內。如果需要IR-drop分析,可以選擇一個或多個事件窗口在適當的工具中運行。
Figure 4.Selection of power signoff windows
由于設計流程中的后續改進能夠實現更精確的功率分析,用戶可能希望在RTL、合成后網絡列表和放置和路由的網絡列表上運行功率分析器和電源簽出工具。用戶可能還想分析一個包含工程變更單(ECO)的網絡列表,以確保功耗不會受到實質性影響。用戶應該能夠使用后端工具功能為快速分析創建一個零延遲波形,或者為更精確的后端分析創建更精確的延遲注釋波形(參見圖5)。
Figure 5. Power analysis calculations for multiple delay models from a single emulation run
Real-world results
實際結果
Synopsys提供了一個軟件驅動的功率分析流程,滿足了前面討論的所有需求(參見圖6)。它可以使用真實的軟件工作負載而不是合成測試,從而大大降低了丟失關鍵電源問題的風險。它為數百萬個周期的窗口提供精確的平均功率和循環功率結果,比基于模擬的方法快1000倍。下表顯示了實際客戶設計的示例:
在分析不同門級實現的功率時,流通過重用仿真結果來支持仿真效率。功率分析流程集成了熟悉的調試技術,使用戶能夠高效、準確地查明和修復與電源相關的問題。
Figure 6. Synopsys software-driven power analysis flow
Summary
摘要
功耗現在是許多芯片和系統的開發人員所關心的主要問題,從便攜式、電池供電的設備到最大的計算服務器機架。即使在最早的產品規范中也出現了功率要求,在整個開發過程中都采用了低功耗設計技術,并且在該過程的多個點都需要精確的功率估計。這些計算必須使用在仿真中運行的實際軟件工作負載來預測平均功率和峰值功率。本文概述的軟件驅動的功率分析流程使用了最先進的技術和技術,比傳統的基于仿真的方法更快、更精確。這個流的一個商業實現現在已經可以使用了。
總結
- 上一篇: 用测试驱动开发状态机
- 下一篇: Usb-type-C端口实现的挑战与设计