【導(dǎo)讀】一直以來,設(shè)計(jì)人員都將最小化功耗的工作留給實(shí)現(xiàn)/物理工具來完成。但到了這個(gè)時(shí)候,有關(guān)設(shè)計(jì)的所有重要架構(gòu)和微架構(gòu)決策都已確定。物理工具對(duì)功耗的影響非常有限。這些工具無法對(duì)設(shè)計(jì)架構(gòu)進(jìn)行徹底的更改,從而實(shí)現(xiàn)節(jié)能。物理工具所用的方法,例如單元尺寸調(diào)整、管腳交換和 Vth 選擇,只能將稍稍降低功耗而已。
UPF 主要用于增強(qiáng)漏泄功耗的功率門控,其主要用途是定義電壓域。指定不同電壓域的其中一個(gè)原因是為了協(xié)商功耗與性能之間的折衷方案。較高的電壓可獲得更快的速度,但需要更高的動(dòng)態(tài)功耗 (1/2 C V2 f)。
功耗與電壓的平方成正比。因此,降低動(dòng)態(tài)功耗要從針對(duì)設(shè)計(jì)中的不同模塊規(guī)劃合適的電壓電平開始。動(dòng)態(tài)功耗主要受活動(dòng)影響。設(shè)計(jì)中運(yùn)行的工作越多,最終需要的能量就越多。隨著在設(shè)計(jì)中完成工作的速度提高,所需功耗也會(huì)增加。要節(jié)省動(dòng)態(tài)功耗,可以降低設(shè)計(jì)的工作速度(降低時(shí)鐘速度),嘗試降低電壓,或嘗試削減設(shè)計(jì)活動(dòng)。減小設(shè)計(jì)中的電容是節(jié)能的另一個(gè)重要方面,這通??山柚咝У膶?shí)施或通過調(diào)整工藝來實(shí)現(xiàn)。
一般而言,設(shè)計(jì)架構(gòu)師比較擅長(zhǎng)確定電壓和時(shí)鐘速度。但目前為止,還未找到減少活動(dòng)(尤其是不必要的活動(dòng))的有效做法。此類縮減往往需要微架構(gòu)更改(例如 FSM 重新編碼、模塊級(jí)時(shí)鐘門控、存儲(chǔ)器門控、存儲(chǔ)器分塊和旁路存儲(chǔ)器訪問),而這類更改要求深入了解設(shè)計(jì)功能。這類更改適合由編寫 RTL 的設(shè)計(jì)人員來執(zhí)行。
在許多公司,降低功耗的工作交給功耗專家完成。這些專家具備多年積累的反復(fù)應(yīng)用于所在業(yè)務(wù)組設(shè)計(jì)的知識(shí)和方法。但這種方法非常狹隘,無法在公司內(nèi)多個(gè)業(yè)務(wù)組之間拓展。
公司開始認(rèn)識(shí)到這一方法的局限性。于是越來越多的 RTL 設(shè)計(jì)人員從一開始便承擔(dān)了解決功耗問題的任務(wù)。理想情況下原本就應(yīng)如此。了解設(shè)計(jì)的人員是進(jìn)行功耗優(yōu)化的最佳人選。而且,在設(shè)計(jì)轉(zhuǎn)向 FinFET 技術(shù)的過程中,動(dòng)態(tài)功耗已成為功耗的主導(dǎo)因素(圖 1)。
圖 1:功耗趨勢(shì)。
降低 RTL 動(dòng)態(tài)功耗的常用方法
在 RTL 做出的決定對(duì)設(shè)計(jì)功耗的影響遠(yuǎn)大于在設(shè)計(jì)流程后期做出的決定。RTL 設(shè)計(jì)人員嚴(yán)重依賴時(shí)鐘門控來削減時(shí)鐘翻轉(zhuǎn)。這是目前占絕對(duì)優(yōu)勢(shì)的降低動(dòng)態(tài)功耗的最常用方法。RTL 設(shè)計(jì)人員使用的一些其他方法包括數(shù)據(jù)門控和
觸發(fā)器克?。蚕恚▓D 2)。
圖 2:克隆觸發(fā)器方法。
圖 2 顯示:
• 觸發(fā)器 F 提供了用于 3 種算術(shù)運(yùn)算的運(yùn)算符。
• 觸發(fā)器 F 無法進(jìn)行門控,因?yàn)橹辽僖环N算術(shù)運(yùn)算需要它的值。
• 即便執(zhí)行一種運(yùn)算,另外兩種運(yùn)算中的邏輯也會(huì)發(fā)生不必要的翻轉(zhuǎn)并產(chǎn)生功耗。
• 通過將觸發(fā)器 F 克隆到三個(gè)觸發(fā)器(F1、F2 和 F3)中,可在對(duì)兩種運(yùn)算進(jìn)行門控的同時(shí)計(jì)算第三種運(yùn)算。
通過這一更改,設(shè)計(jì)人員需要確認(rèn)額外觸發(fā)器的功耗要遠(yuǎn)小于它們所控制的下游算術(shù)運(yùn)算功耗。
要對(duì)功耗產(chǎn)生更深刻的影響,RTL 設(shè)計(jì)人員需要在設(shè)計(jì)中進(jìn)行越來越多的粗粒度(微架構(gòu))更改。例如,通過以下方法可顯著削減動(dòng)態(tài)功耗:
• 模塊級(jí)的時(shí)鐘門控
• 將寄存器鏈轉(zhuǎn)換為環(huán)形緩沖器
• 關(guān)斷存儲(chǔ)器
• 旁路存儲(chǔ)器訪問
• 執(zhí)行重定時(shí)
• 使用運(yùn)算符屏蔽。
將移位寄存器替換為環(huán)形緩沖器是一種常見的微架構(gòu)設(shè)計(jì)更改。移位寄存器中的活動(dòng)量很大,因?yàn)檠刂邮招轮档挠|發(fā)器鏈,數(shù)據(jù)一直都在進(jìn)行移位。這一移位操作導(dǎo)致觸發(fā)器(以及這些觸發(fā)器所驅(qū)動(dòng)的邏輯中)發(fā)生多次不必要的翻轉(zhuǎn)并造成功耗。因此,設(shè)計(jì)人員考慮將移位寄存器替換為環(huán)形緩沖器(圖 3),因?yàn)檫@些緩沖器在讀取或使用新值時(shí)不需要移動(dòng)。
圖 3:將移位寄存器替換為環(huán)形緩沖器。
進(jìn)行這一更改后,設(shè)計(jì)人員需要確認(rèn)在環(huán)形緩沖器內(nèi)添加讀/寫指針邏輯產(chǎn)生的功耗不會(huì)超過通過使用環(huán)形緩沖器節(jié)省的功耗。
由于在任意給定的時(shí)間間隔,僅僅訪問總計(jì)地址中的少數(shù)幾個(gè)地址,因此存儲(chǔ)器會(huì)浪費(fèi)功率。為解決此問題,設(shè)計(jì)人員可使用較小的“分塊”實(shí)施總體存儲(chǔ)器,這些分塊在未被訪問時(shí)可予以關(guān)斷(圖 4)。
圖 4:存儲(chǔ)器分塊示例。
圖 4 顯示了對(duì)一個(gè) 1024 字存儲(chǔ)器進(jìn)行分塊的兩種方法:
1. 兩個(gè) 512 字的分塊:僅其中一個(gè)分塊處于主動(dòng)被訪問狀態(tài),另一個(gè)分塊則通過門控關(guān)斷以節(jié)省功耗。
2. 四個(gè) 256 字的分塊:任意時(shí)刻有三個(gè)分塊可處于門控關(guān)斷狀態(tài)。
另一種設(shè)計(jì)存儲(chǔ)器以節(jié)省功耗的方法是通過一組固定寬度的存儲(chǔ)塊來配置所需的存儲(chǔ)器字大小。在圖 5 所示的示例中,有多種實(shí)現(xiàn) 512 字 X 28 位存儲(chǔ)器的方法,圖中提供了兩種:
1. 剛好使用 28 位字大小 (16 + 8 + 4) 并插入額外的編碼邏輯,用于在兩個(gè)分塊之間做出選擇(圖 5 右上角)。
2. 使用單個(gè) 32 位存儲(chǔ)器元器件(圖 5 右下角)。盡管此解決方案不需要任何編碼邏輯,但有 4 位存儲(chǔ)器被浪費(fèi)。
圖 5:可能的存儲(chǔ)器配置。
不論設(shè)計(jì)人員采用哪種方法來降低存儲(chǔ)器功耗,都必須非常小心,確保額外解碼邏輯的功耗仍小于較大的原始存儲(chǔ)塊功耗。
遺憾的是,前述方法的接受度遠(yuǎn)不如預(yù)期。主要有兩個(gè)原因:
• 不容易了解設(shè)計(jì)中存在這類機(jī)會(huì)。
• 不容易了解通過做出更改將會(huì)降低多少功耗。
通常,設(shè)計(jì)人員依賴他們的經(jīng)驗(yàn)或直覺做出設(shè)計(jì)更改。他們載入仿真波形,并嘗試估計(jì)其設(shè)計(jì)中可能出現(xiàn)冗余活動(dòng)的位置。然后,根據(jù)此類活動(dòng)所在的區(qū)域,嘗試評(píng)估可減少浪費(fèi)活動(dòng)的方法。對(duì)一般 RTL 設(shè)計(jì)人員而言,這樣未免要求過高。因此,很多功耗節(jié)省未能付諸實(shí)施。使用 PowerPro® 提供了一種解決方案。
使用 POWERPRO 降低動(dòng)態(tài)功耗
很顯然,傳統(tǒng)的降低功耗方法已經(jīng)不再行得通。遷移到 FinFET 給動(dòng)態(tài)功耗帶來了與日俱增的嚴(yán)峻挑戰(zhàn)。為保持競(jìng)爭(zhēng)優(yōu)勢(shì),單純依賴功耗專家來降低功耗已經(jīng)遠(yuǎn)遠(yuǎn)不夠了。公司將會(huì)在功耗方面落后于競(jìng)爭(zhēng)對(duì)手。
簡(jiǎn)單地報(bào)告設(shè)計(jì)的功耗數(shù)字已不再適宜。功耗分析是一個(gè)重要的步驟,但它本身并不能節(jié)省任何功耗。最終要取決于設(shè)計(jì)人員個(gè)人的專業(yè)知識(shí),以及他們?nèi)绾谓庾x工具報(bào)告從而優(yōu)化功耗設(shè)計(jì)。
RTL 設(shè)計(jì)人員需要關(guān)于設(shè)計(jì)中哪些位置可以節(jié)省功耗的指導(dǎo)。他們需要關(guān)于其設(shè)計(jì)中存在的優(yōu)化范圍(例如模塊級(jí)時(shí)鐘門控、移位寄存器到環(huán)形緩沖器、存儲(chǔ)器緩存和復(fù)位移除)及相關(guān)功耗節(jié)省的確鑿證據(jù)。PowerPro 在設(shè)計(jì)中提供了進(jìn)行許多微架構(gòu)和細(xì)粒度優(yōu)化的可能性,并且呈現(xiàn)了與每項(xiàng)更改相關(guān)的實(shí)際功耗節(jié)省。與手動(dòng)方法相比,其可最大限度減少了花費(fèi)在做出設(shè)計(jì)決策上的時(shí)間?;?PowerPro 的建議,設(shè)計(jì)人員可根據(jù)其設(shè)計(jì)進(jìn)度做出更改。如果依據(jù)進(jìn)度還有足夠的時(shí)間,他們可以實(shí)施所有建議。如果時(shí)間有限,設(shè)計(jì)人員可以選取最佳建議加以實(shí)施。在設(shè)計(jì)流程中采用 PowerPro 時(shí),這一靈活性至關(guān)重要。
功耗優(yōu)化的另一個(gè)關(guān)鍵部分是探索各種更改(例如工作模式、時(shí)鐘頻率、工作電壓和工藝技術(shù))對(duì)應(yīng)的功耗的能力,對(duì)于 IP 開發(fā)人員而言尤其如此。建議的優(yōu)化應(yīng)適用于上述所有參數(shù)。利用 PowerPro,設(shè)計(jì)人員可以探索仿真配置文件、電壓、時(shí)鐘速度和設(shè)計(jì)自身的更改。在 PowerPro 內(nèi)可以并行評(píng)估以上多種更改(圖 6)。因此,過去需要幾周才能完成的探索任務(wù),現(xiàn)在只要幾個(gè)小時(shí)就能完成。這種生產(chǎn)率提升讓 PowerPro 成為極具吸引力的設(shè)計(jì)流程補(bǔ)充。
圖 6:PowerPro 功耗探索。
檢測(cè)功率冗余的基礎(chǔ)技術(shù)是形式化分析。PowerPro 對(duì)設(shè)計(jì)執(zhí)行深入的時(shí)序分析,以找出存儲(chǔ)器訪問、寄存器載入和數(shù)據(jù)路徑計(jì)算中存在的冗余。由于 PowerPro 能夠基于時(shí)序探索建議修改,因此遠(yuǎn)優(yōu)于市場(chǎng)中的同類競(jìng)爭(zhēng)技術(shù)。PowerPro 可針對(duì)設(shè)計(jì)流程的所有方面提供支持,包括寫出優(yōu)化的 RTL、ECO 和驗(yàn)證。設(shè)計(jì)人員確信,他們可以接受源自 PowerPro 的所有建議,并且不會(huì)對(duì)其交付進(jìn)度產(chǎn)生任何不利影響。
推薦閱讀: