由人工智慧驱动的设计应用
英文原文:What is Low Power Design?
更多资讯:下載新思科技低功耗设计方法手冊
低功耗设计是一套技術和方法,目的在降低積體電路 (IC)整體的動態和靜態功耗(static power consumption)。
如Figure 1方程式中各別功率元件(power components)所示,低功耗设计的目標是盡可能降低各個功率元件,從而降低整體功耗。整個功率方程式包含動態和靜態功率。動態功率由開關功率(switching power)和短路功率(short-circuit power)組成;而靜態功率則由漏电流(leakage)或在沒有活动時流過電晶體的電流組成。每個功率元件的值與以下任一因素有關:
例如:當电压越高,則每個元件消耗的功率就越大,導致整體功率越高。相反地,當电压越低,總功率就越低。為了以最低的功耗實現最佳性能,需藉由各種低功耗技術和方法,嘗試並測試每一個不同因素的取捨。
電子產業相關公司不斷突破产物新特色和新功能的極限,集中在輕便、手持、以電池供電的設備中。對於這一類产物,能透過最小化功耗來延??長電池壽命,不但可以做出具差異化的市場區隔,對於終端用戶相關應用開發也是非常關鍵。而縮短設備從休眠狀態(OFF/SLEEP state)切換到運作狀態(ON/ACTIVE state)所需的時間也同樣重要,因為終端用戶都希望能在休眠/運作切換獲得無縫體驗的同時,也能享受更長的電池壽命。
對於「插電」的产物,功耗也很重要,因為加裝散熱器、復雜的冷卻系統、增加電力成本等,都會影響整個系統的成本。例如:在使用大規模並行系統的伺服器農場(server farm)中,降低單一晶片的功率可以顯著節省功耗,因為整個系統中都使用這種晶片。使用更新、更節能的IC來升級系統,可顯著降低功耗和成本。
有許多可行的低功耗设计技術,有一些非常容易上手,有一些則相當複雜。
時脈閘控技術(Clock Gating)
此技術通常運用在邏輯合成期間。其中的暫存器(flops)被優化成時脈閘控結構,進而節省了多工器(mux)的面積,並減少整個時脈網路(clock net)的開關活动(參見下圖Figure 2)。根據這個功率方程式,我們的目標是降低电容负载 (透過面積減少的方式)和減少動態功率的開關功率活动因子。這是一種非常簡單且易於取得的技術,可以降低功率和面積。但是,它需要依賴邏輯合成工具來執行優化。幸運的是,這個技術很普及,並且大多數工具和流程中都支援這項技術。
多电压技術(Multi Voltage)
這是一種藉由性能特性(performance characteristics)來區分晶片功能的技術—也許其中一個模塊是高性能的,而晶片其餘部分的性能則較低,如下圖 Figure 3 所示。為了實現高性能模塊的目標,通常需要更高的电压;而為了節省較低性能模塊的功耗,可以使用較低的电压。這樣的方式,取代了在更高电压下设计整個模塊,雖然比較簡單,但功耗也更高。這個功率方程式中,电压降低,每個靜態和動態功率也會跟著降低。在多电压设计中的個別电压島(voltage islands)上進行设计尤為複雜。电压島之間的电压交叉點可能需要电压位準偏移器(Level Shifter; LS)單元,在不同的电压特性下執行並分析模塊。
電源閘控技術(Power Gating)
如同多电压技術,在這個技術當中,IC上的功能也被區分開來,但這次功率區域的電源連接了電源開關,如下圖Figure 4 所示。電源閘控可以有效地完全關閉一個模塊的電源。在這個功率方程式中,將电压歸零也會使功率歸零,進而在模塊關閉時節省靜態和動態功率。電源閘控通常可以提供最佳的節能效果,因此在維持功能的同時,能盡可能經常地關閉最多的功率區域,是最理想的目標。為了以電源閘控實現節能效果,必須在设计中加入電源開關,這需要隔離閘(isolation gates)在電源關閉時提供電源區域的邊界一個已知狀態。同時,必須考慮设计的電源狀態,以及針對給定电压的ON/OFF狀態組合。最後,需要加入電源管理單元(PMU),進而控制電源開關和隔離單元的致能訊號(isolation enable signal) ,以確保在斷電和通電期間,這些訊號有正確的啟動順序,讓關閉期間需要被控制的變數都可以在正確的時間點有正確的值。
电源闸控时的保存状态
狀態保存技術(或暫存器保存 (register retention) 技術),是一種與電源閘控一起使用的技術。在每個關閉的模塊中,當模塊為OFF狀態時,模塊中部分或所有的暫存器會保存它們原先的數值。當模塊通電時,之前保存的數值就會被恢復。因此,保存模塊斷電時的狀態很重要,這樣模塊就可以快速恢復原先的狀態,而不必再需要額外的時間從INIT狀態轉換到當前狀態。減少切換至保存的狀態所需的時間和步驟,既可以節省功率,也可以縮短模塊恢復至原先功能狀態所需的時間。除了電源閘控所需的技術外,元件資料庫中還必須具有可使用於RTL所需的暫存器配對的保存型暫存器(retention flops)。除了將訊號新增至電源閘控之外,還需要將SAVE/RESTORE訊號也新增至PMU的訊號控制序列中(參見Figure 5)。
其他先进技术
包括前述各項技術的組合在內,目前有許多更先進的低功耗设计技術。在現今許多晶片中,經常會使用到較低电压、帶有電源閘控的模塊,並具有絕緣、保存和平移位器。半導體well biasing、零接腳(zero-pin)保存暫存器、特殊化的低功耗元件資料庫單元、動態电压和频率調節(DVFS)、自適化电压和频率調節(AVFS),以及其他客製化的设计,也是在業界會採用的先進低功耗技術。
假設有一個範例,系統規格已確定、也完成系統模拟和微架構设计(microarchitecture),針對特定製程,低功耗IP也已經選定,同時RTL 和 UPF 也已撰寫完成。在這些條件下的IC设计中,低功耗设计和验证方法會有五個主要階段。
靜態功率验证和探索
在靜態验证中,第一個步驟是確保设计流程所需设计檔案(RTL、UPF 和 SDC)在結構和語法上(syntactically)都是正確的。根據定义,靜態验证不需使用測試向量(test vector),因此這是在進入模拟或實作流程之前,針對輸入進行檢查最有效的方法。通常來說,Lint和CDC檢查對於確保RTL的完整性(clean)很重要。UPF檢查可以獨立完成,也可以與相應的 RTL 一起完成,確保它們的完整性,並且 SDC 也可以與 RTL 一起進行靜態檢查。在架構功率探索中,可以通過估計的開關或模拟的實際波形,來初步估算RTL 的功率。通過初步的RTL 功率分析,可以儘早做出選擇,以改進设计的整體架構。
動態功率验证和分析
在動態功率验证中,有幾個重要面向需要檢查。首先,檢查PMU 控制訊號的序列是否正常運作,可以關閉、限制隔離、儲存、恢復、移除隔離限制和通電(power up)。這是與设计 RTL 和 UPF 一起進行的極其重要的檢查,以確保设计可以正常運行。接著,在设计中會發現什麼類型的波形和切換活动(toggle activity)呢?這將決定所採用的動態功率,因為它取決於活动因子。活动因子越高,使用的功率就越多。因此,產生的波形對於在设计過程的初期和後期準確估算功率非常重要。
软体驱动的功率分析
在以模拟器為基礎(emulation-based)的低功率流程中,能夠為设计的功率分佈取得正確的峰值區間(peak windows)非常重要。使用模拟器讓我們得以觀察更廣的數據範圍,進而選擇對於生成波形最有價值的時間區間,以估算功率。
功率实作
基於 RTL預測的功耗估算、邏輯合成、添加DFT電路和实体实作(physical implementation)都在低功耗中扮演重要的特定角色。以 RTL為基礎的功耗預測,使我們得以使用初始的功耗估算,在早期進行 RTL 修改。在邏輯合成中,RTL、SDC 和 UPF 都經過靜態和動態完整验证;隔離器、位準偏移器和保存型暫存器也都使用特定製程元件庫實作。其中時序、面積和功率都是用於產生電路檔(Netlist)和相關 UPF' 的成本函數。通常在此期間,DFT 電路的添加也會同時發生。一旦Netlist和 UPF’完成,另一輪檢查也會或靜態、或動態地在這個階段完成—一旦處理好,結果就會被導入实体实作。在实体实作中,佈局規劃是對佈局和電源佈線進行宏觀考量的情況下完成的。接著,在實際上插入和放置電源開關的位置進行佈局;然後重覆執行佈局、佈線估計、邏輯優化和時脈樹(clock tree)合成,以再次針對時序、面積和功耗進行取捨。最後,進到佈線步驟,其中優先訊號(時脈、電源啟動、開關連接)的預先佈線完成,接著進行设计中其餘部分的細部佈線—這些都強調可以更精細地降低功率,同時也試圖滿足時序和面積的目標。
签核(Signoff)
UPF一致性應該在签核時再次進行檢查。但是,這一次使用邏輯合成中的Netlist和 UPF',以及物理實作中的 PGNetlist 和 UPF來進行,以確保對Netlist和 UPF 所做的連接和更改的一致性和完整,並保留功耗设计意圖(power intent)。針對「RTL和UPF 」、「Gate-level Netlist和UPF’」以及「PG Netlist和UPF”」所進行的邏輯等效性檢查,確保邏輯功能得以維持。最後,静态时序分析應使用UPF進行,以確保设计符合時序;而功率分析應使用詳細的波形特性,以提供準確的功耗估算結果。
在低功耗设计方法中,每個階段所需的低功耗设计工具如下:
新思科技提供已验证的低功耗流程和方法的解决方案,涵蓋低功耗设计和验证流程的所有面向,如Figure 6所示。
靜態功率验证和勘察
功能验证
软体驱动的功率分析
功率实作
签核