降低功耗可以從RTL-level和Gate-level設計策略著手。諸如時鐘門控(clock gating)之類的方法已被廣泛地使用。其他的方法,例如動態電壓和頻率調節,由於難以實施,還沒有被廣泛地使用。在更先進地工藝中,功耗變得越來越重要,正在開發更多的方法來實現設計的功耗要求。

1、降低電源電壓

降低功耗的最基本方法是降低電源電壓。 功耗與電源電壓的平方成正比,如圖1中的示例所示。 電源電壓降低50%會導致75%的功耗減少。

CMOS技術使用越來越低的電源電壓來減少功耗。 從20世紀80年代雙極TTL電路的5 V供電電壓開始,目前的先進工藝,電源電壓已降至約1 V。但是降低電源電壓來降低功耗的同時,但也降低了開關速度。

此外,降低晶體管閾值電壓,會導致更多的問題,例如抗雜訊能力,泄漏電流。 較低的電壓擺幅使晶元與外部設備介面變得更加困難。

2、時鐘門控

時鐘門控是一種動態功耗降低方法,在寄存器存儲的邏輯值不變的時候,停止其觸發時鐘信號。時鐘門控的實現如圖2所示:

時鐘門控對於在許多時鐘周期需要保持相同邏輯值的寄存器特別有用。 關閉時鐘可以消除不必要的開關活動,否則會在每個時鐘周期都會重新觸發寄存器。 時鐘門控的主要挑戰是找到使用它的最佳位置,並在正確的周期創建時鐘門控的開關邏輯。

時鐘門控是一種成熟的降低功耗技術,已經使用了很多年。

Power Compiler等綜合工具可以在時鐘路徑適當的位置自動插入時鐘門控單元。 時鐘門控實現起來相對簡單因為它只需要改變網表。

3、多閾值標準單元庫

一些CMOS標準單元工藝庫具有不同的閾值(Vt)。 在這種情況下,標準單元庫可以提供帶有不同閾值電壓的標準單元來實現相同的邏輯功能。例如,該庫可以提供兩個反相器單元:一個使用Low -Vt晶體管,另一個使用High-Vt晶體管。

Low -Vt單元具有更高的速度和更大的泄漏電流。 High-Vt單元漏電流小,但速度較慢。 綜合工具可以基於速度和功耗之間的trade off選擇合適類型的標準單元。 例如,它可以在關鍵路徑使用Low -Vt單元,在非關鍵路徑使用High -Vt單元

4、多電壓設計

晶元的不同部分可能具有不同的速度要求。 例如,CPU和RAM模塊可能需要比外圍模塊更快。 如前所述,較低的電源電壓降低功耗,但也會降低速度。 所以,CPU和RAM以更高的供電電壓運行,而外圍模塊在較低電壓下工作,如圖3所示。

在單個晶元上提供兩個或更多電源電壓會帶來一些複雜性。 必須有額外的引腳來提供晶元電壓和電源網格必須將每個電壓源分別分配給適當的模塊。

如果邏輯信號離開一個電壓域並進入另一個電壓域,則需要一個level-shifter單元產生帶有合適的電壓擺幅的信號。 在圖4所示的示例中,level-shifter轉換1.8V電壓擺幅的信號到1.0V電壓擺幅的信號。 level-shifter單元本身需要兩個與輸入和輸出電源電壓相匹配的電源。

5、電源開關

電源開關是一種降低功耗的技術,其中晶元的一部分在不活動期間被完全關閉。 例如,在手機晶元中,當手機處於待機模式時,可以關閉語音處理功能。 當用戶撥打電話或接聽外線電話的時候,語音處理塊必須從斷電狀態「喚醒」。

電源開關可以大幅降低總體功耗,因為它同時降低了泄漏功耗以及動態功耗。 它還引入了一些其他挑戰,包括對電源控制,電源開關網路,isolation cellsretention registers 的需求。

電源控制是一個邏輯塊,用於確定何時斷電和上電。 打開和關閉電源需要一定的時間和功耗成本,電源控制器應確定適當的斷電時間。

可以被斷電的模塊必須連接到由大量源 - 漏連接的,在always-on的電源軌道和cell的電源引腳之間的晶體管組成的電源開關網路。 電源開關網路分布在模塊的周圍或內部。 電源開關網路被打開時,將電源連接到模塊中的邏輯門。 關閉時,電源從模塊中的邏輯門斷開。

採用多閾值CMOS(MTCMOS)工藝的High-Vt晶體管作為電源開關是因為它們可以最大限度地減少功耗泄漏,並且它們的開關速度不是非常的關鍵。PMOS開關可以放置在VDD和模塊的電源引腳之間,NMOS開關可以放置在VSS和模塊接地引腳之間,如圖5所示。要合適地選擇開關的數量,驅動強度和位置,以使得在模塊中的峰值功耗使用期間達到可接受的電壓降(IR Drop)。

圖5所示的電源開關策略稱為粗粒度策略,因為電源開關應用於整個模塊。 並聯的多個晶體管共同驅動為模塊供電的電源網路。 在細粒度策略中,每個庫單元都有自己的電源開關。 細粒度策略有更好的功耗降低潛力,但需要更多的面積。

在信號離開斷電模塊並進入always on模塊的地方,任何電源開關的使用都需要isolation cells。當斷電模塊被斷電時, isolation cells提供一個已知恆定邏輯值給always-on模塊,從而防止可能的電流泄露。

isolation cell 的一個簡單實現如圖6所示。 當左邊的模塊上電時,信號P_UP為高電平,輸出信號通過isolation cell不變(除了延遲)。 當左邊的模塊關閉時,P_UP為低電平,保持恆定邏輯0進入always-on模塊。 其他類型的isolation cell可以保持邏輯1而不是0,或者可以保持電源關閉時刻當時鎖存的信號值。 在模塊斷電期間,isolation cell本身必須具有供電。

電源開關可與多電壓結合使用。不同的模塊可以在不同電壓下工作,並且在它們也可以單獨斷電。 在這種情況下,不同模塊之間的介面單元必須執行level shiftingisolation功能。 執行這兩種功能的單元稱為enable level shifter。 該單元必須具有兩個獨立的電源,就像其他level shifter一樣。

當模塊被斷電然後再上電時,通常需要模塊恢復到掉電之前的狀態。 有幾種方法可以達到這樣的效果。例如,斷電前模塊寄存器內容可以複製到模塊外面的RAM,然後在上電後複製回來。

另一種策略是在掉電模塊中使用retention registers。 斷電前,retention registers通過將數據保存到shadow register(也稱為bubble register),可以在斷電期間保留數據。 上電後,它將數據從shadow register恢復到主寄存器。 shadow register具有always-on的電源,

但它採用high-Vt晶體管,以最大限度地減少掉電期間的泄漏功耗。 主寄存器採用快速但漏電的low-Vt晶體管。

一種retention register實現如圖7所示。 SAVE信號在掉電和恢復之前將寄存器數據保存到shadow register中,上電後RESTORE信號恢複數據。 retention register使用電平敏感的控制信號,而不是邊沿敏感的SAVE和RESTORE信號。

retention register佔用比普通寄存器更大的區域,除了模塊其餘部分使用的電源,它還需要一個always-on的always-on電源連接。

6、動態電壓和頻率調節

擴展多電壓的原理,可以允許在晶元工作期間改變電壓以匹配當前的工作負載。 例如,筆記本電腦中的處理器晶元進行簡單的電子表格計算時可以在較低的電壓和較低的時鐘頻率下工作,從而節省功耗; 然後繼進行3-D圖像渲染時,在更高的電壓和更高時鐘頻率下工作。 晶元工作期間供電電壓和工作頻率的變化滿足工作負載要求稱為動態電壓和頻率調整。

晶元電源可以設計為多個級別,甚至是連續的電源範圍。 動態電壓調節需要多級電源和邏輯模塊確定用於給定任務的最佳電壓電平。由於電源範圍以及電壓電平和工作頻率的組合,設計,實現,驗證和測試都特別具有挑戰性。

動態電壓調節可以與電源開關技術相結合。設計中的模塊可以在多個電壓電平下工作,以實現不同的性能要求,或在不需要時完全關閉。

歡迎關注微信公眾號 數字晶元實驗室


推薦閱讀:
相关文章