RISC-V 已迅速成為全球處理器設計和實現領域的領先標準指令集架構(ISA)。與私有架構不同,RISC-V 是一種開放給所有人的處理器設計標準,為行業帶來了前所未有的創新。RISC-V 的重要性、其對科技行業的影響在促進科技領域增長和發展的作用,涵蓋了從小型輕量級處理器到強大高性能處理器的整個計算領域。從跨國公司的深度投資到與初創公司的風險投資合作,從大學課堂到國家層面,RISC-V 正在不斷擴大其市場份額。如今,RISC-V 社區擁有來自全球 70 個國家和地區的數萬名工程師的貢獻。
截至目前,玄鐵已發布多款產品線,覆蓋從低功耗到高性能的多個應用場景。其中包括為節能設計、適用于物聯網設備等領域的 E 系列;實時處理能力和高度可靠性的 R 系列;極致性能表現的 C 系列高端處理器和剛發布致力于解決多集群間高效互聯的 XT-link 系列。以 C 系列為例:該系列包含多個分支,包括專注于實現最佳能效比的 C908 處理器,強化人工智能計算能力的 C907 處理器;早期發布的旗艦級 C910 處理器與后續升級版本 C920 處理器;后續即將發布的更高性能 C930處理器等,每一款產品都有其獨特的市場定位和 PPA 需求。
本文將由玄鐵團隊技術專家寇博華分享關于玄鐵設計與交付在 PPA 優化中的實踐:波形激勵在數字設計功耗優化中的全面解析。
寇博華
阿里巴巴達摩院玄鐵團隊技術專家
阿里巴巴達摩院玄鐵處理器設計團隊技術專家;擁有豐富的低功耗設計經驗,與前端和后端團隊緊密協作,專注于優化 PPA,并加速設計收斂的進程。
在芯片設計中,功耗、性能和面積(PPA)是衡量產品競爭力的三大關鍵指標。其中,功耗指標直接影響到產品的能效、熱管理和電池壽命。為了優化功耗,從架構設計到代碼實現,再到后端實現的每一個環節都需要精心打磨。然而,要準確分析和優化功耗,正確的波形激勵是不可或缺的。
波形激勵本質上是對設計中每一個信號翻轉信息的描述,它能夠幫助我們理解信號在不同時間點的狀態變化。只有使用了正確的波形激勵輸入,我們才能獲得有意義的信號翻轉數據,進而得到準確的功耗分析結果。本文將深入波形激勵在功耗優化中的各個方面,包括波形記錄格式、波形場景定義、波形生成方法以及反標率的確認,旨在為讀者提供全面的技術解析和實用指南。
一 波形的記錄格式
在數字設計中,信號的翻轉信息是功耗分析的關鍵。通常,信號的翻轉可以通過兩個參數來描述:toggle rate 和 static probability。
Toggle rate:表示信號在一個時鐘周期內的平均翻轉次數。如果一個信號的 toggle rate 為 1,表示該信號在每一個時鐘周期都有一次翻轉(即從 0 到 1 或從 1 到 0)。如果 toggle rate 為 0,則表示該信號在整個時間窗口內沒有發生任何翻轉。對于時鐘信號,由于在一個時鐘周期內會有上升沿和下降沿,所以其 toggle rate 最大為 2。
Static probability:表示一個信號在整個時間窗口中為 1 的占比。例如,如果一個信號在 50% 的時間內為 1,則其 static probability 為 0.5。
信號的翻轉信息通常記錄在特定的波形文件格式中,常見的有 SAIF、VCD 和 FSDB:
SAIF (Switching Activity Interchange Format):由于僅記錄每個信號在整個時間窗口內的平均翻轉狀態,即 toggle rate 和 static probability,所以 SAIF 文件僅能用來分析平均功耗。
VCD (Value Change Dump):以 ASCII 格式記錄信號在每個時鐘周期的具體翻轉變化。VCD 文件可以直接用文本編輯器打開閱讀,但由于其詳細記錄了每個時鐘周期的變化,文件體積較大。
FSDB (Fast Signal Database):和 VCD 格式一樣, FSDB 文件也記錄了每個時鐘周期信號的變化,但是由于采用二進制格式記錄,雖然不能直接以文本方式打開,但文件體積最小。FSDB 文件可以通過工具腳本轉換成其他格式,如 VCD 或 SAIF。
二 波形場景的定義
在功耗分析過程中,我們需要針對架構功能定義不同的功耗場景。這些場景可以幫助我們評估和分析整體與各個功能的功耗和能效。以下是一些常見的場景介紹:
場景分類 | 場景介紹 |
基準測試 | 以CPU為例,以下是一些典型的基準測試: Dhrystone:經典的整型運算基準測試 Whetstone:用于評估浮點計算的功耗 Sgemm:用于評估向量計算的功耗 Memcpy:用于評估數據在緩存之間搬運的功耗 |
功耗建模 | 在功耗建模中,可以靈活運用不同的指令組合搭建各種測試用例,用來激活設計中主要的數據通路。這種方法有助于構建和驗證功耗模型。 |
時鐘門控分析 | 需要使用豐富的波形激勵來不同程度的激活各個功能單元,用來觀測和完善在 RTL 插入的時鐘門控使能和葉級寄存器使能。 |
綜合和后端工具 | 對于綜合和后端工具,我們會提供合適的波形激勵,以便工具更好地優化動態功耗。 |
特殊功耗場景 | 還有一些有特殊需求的功耗場景,例如 Max Power 和 di/dt 用來幫助后端團隊分析和保證芯片系統和電源網絡的可靠性。 |
三 波形的形態和生成
以下是常用的幾種波形激勵形態及其生成方法:1. 基于 RTL 的波形激勵
最常見的波形激勵是通過 RTL 驗證前仿生成的。這些波形激勵對應的是 RTL 級別中各個信號的翻轉情況。通過 RTL 仿真,我們可以詳細記錄每個信號在不同時間點的狀態變化,從而為后續的功耗分析提供基礎數據。
2. 基于網表級別的波形激勵
后仿生成:常規的網表級波形激勵是通過跑后仿來生成的。如果不帶線(wire)和實例(instance)的延遲信息,得到的后仿波形激勵通常稱為零延遲(zero-delay)波形。另一種需要帶延遲信息的波形稱為 SDF 延遲(sdf-delay)波形。為了獲取延遲信息,后端工具需要抽取寄生參數,并在時序工具(如PrimeTime)中進行反標,計算出實際的延遲,然后將這些延遲/轉換時間等信息寫入 SDF 文件。跑后仿時可以帶著 SDF 文件生成更準確的波形。
replay 生成:由于后仿通常在項目后期才調通,而我們希望盡早獲得更準確的功耗數據,因此在項目中期,當綜合和后端實現完成后,我們會使用 EDA 工具將 RTL 波形、綜合產生的映射文件(mapping file)、SDF 文件以及實際的網表結合,生成一個網表級的波形激勵。
通過這些不同階段的波形激勵生成方法,我們可以在整個設計流程中逐步細化和校準功耗數據,確保最終產品的功耗性能達到預期目標。
四 波形的反標率
在將波形的翻轉信息反標到設計(RTL 代碼或網表)上時,確保反標的準確性至關重要。導致反標率低的常見錯誤有:
波形和設計不匹配
層級映射錯誤
MDA 選項未啟用
反標的信息一般分為兩個維度:
緯度1 | Primary Input:設計的輸入輸出 |
Sequential:時序邏輯,通常為寄存器 | |
Combinational:組合邏輯 | |
Memory:存儲器 | |
緯度2 | From Activity File:波形文件 |
From SCA/SSA:設置的翻轉約束 | |
Propagated/implied:工具自動分析得到的翻轉信息,主要用于組合邏輯信號 | |
Default/Not-Annotated:兩者都表示沒有有效的來源,區別在于default會給一個默認翻轉率;而Not-Annotated不會給任何翻轉率 |
在檢查反標率時,有些參考指標是通用的:
Memory:memory macro 上的反標應該100%來自 Activity File。
Primary Input:功能性接口信號應該從 Activity File 來,個別約束可以從 SCA/SSA 來。
而有些則根據波形和設計的階段有所不同:
RTL波形反標到網表:
在有 mapping file 的情況下,時序邏輯(sequential)大部分需要來自 Activity File。
組合邏輯(combinational)反標率不會太高,所以這部分的功耗與實際值會有明顯差距。
網表級波形反標到對應的網表:所有信號都應該100%來自 Activity File。
通過仔細檢查這些指標和要求,可以確保波形反標操作的準確性和有效性,從而提高功耗分析的精度和可靠性。
五 波形激勵在不同階段的使用
在玄鐵團隊,波形激勵的生成和使用貫穿于整個設計流程的不同階段,以確保功耗優化的有效性和準確性:
項目初期:RTL 前仿
在項目的早期階段,我們主要基于 RTL 前仿真生成波形。這些波形用于初步的功耗分析,特別是在分析時鐘動態門控和存儲器翻轉效率方面。另外,通過使用 RTL 功耗工具讀取這些波形,我們也可以得到功耗數據的早期評估,分析潛在的功耗瓶頸。
優化中期:RTL 前仿+ Replay
在優化的中期階段,我們會選擇具有代表性的波形,提供給后端團隊用于綜合和后端實現,幫助工具更有效地優化動態和靜態功耗。此外,我們還會使用 replay 工具生成網表級別的零延遲(zero-delay)和帶延遲(sdf-delay)波形激勵。這有助于盡早評估和分析各個場景下更真實的功耗水平,并進行相應的優化。
PPA優化后期:后仿真
到了 PPA 優化的后期,驗證團隊會調通后仿,生成基于后仿真的網表級波形激勵。我們將這些后仿波形與之前通過 replay 機制生成的數據進行對比,以獲得最真實的功耗數據。這種對比也可以幫助我們驗證前期優化的效果。
后續探索:性能建模與仿真平臺
為了進一步提高功耗分析的準確性和全面性,我們還可以嘗試在更早期基于性能建模產生的信號激勵來進行功耗建模。此外,我們也可以利用 FPGA 和 Emulator 仿真平臺自帶的激勵和功耗分析工具,對更復雜和完整的系統級場景進行功耗分析。這種方法能夠更好地模擬實際工作環境,從而提供更為精確的功耗數據。
六 結 語
玄鐵的每一款產品都有其獨特的市場定位,同時需要滿足不同市場細分下的性能和PPA要求。玄鐵團隊不僅需要面對不同產品線的常規迭代升級、大規模的架構升級,還要緊跟上市發布時間節點,時間緊任務重,對于PPA快速迭代需求變高。通過這些不同階段的波形激勵使用方法,玄鐵能夠在整個設計流程中持續優化和分析功耗,確保最終產品的高效能和競爭力。
-
數字設計
+關注
關注
0文章
47瀏覽量
22324 -
PPA
+關注
關注
0文章
21瀏覽量
7513 -
RISC-V
+關注
關注
45文章
2322瀏覽量
46586
發布評論請先 登錄
相關推薦
評論