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