在早期的IC設計中,關注的參數主要是性能(timing)和面積(area)。EDA工具在滿足性能要求的情況下,最小化面積。此時,功耗是一個不怎么被關心的問題。
因為CMOS工藝在相對較低的時鐘頻率下具有相當低的功耗,漏電流可忽略不計。隨著晶體管密度和時鐘頻率的提高,CMOS工藝的靜態功耗也大幅增加。同時,電源電壓和閾值電壓的降低導致漏電流增加。
這些因素使得功耗成為影響性能和面積的關鍵參數,功耗問題變得和性能/面積一樣重要了。
高功耗帶來的問題
功耗過高會帶來多方面的負面影響。
導致芯片溫度升高,需要使用更貴的陶瓷封裝和散熱系統。
溫度過高還會降低芯片的可靠性和壽命。
縮短便攜式設備的電池續航時間。隨著功能的增加,電池技術已經跟不上功耗的需求。
增加大規模使用電子設備的供電成本和環境負擔。即使微小的功耗降低也可以為用戶節省大量的費用和資源。
動態功耗和靜態功耗
IC設計中要考慮動態功耗和靜態功耗。
動態功耗是晶體管開關時消耗的功耗,與時鐘頻率和開關活動有關。
靜態功耗是晶體管泄漏電流造成的功耗,與時鐘頻率或開關活動無關。
動態功耗由開關功耗和短路功耗組成。開關功耗是電路負載電容充放電時消耗的功耗。短路功耗是電路邏輯狀態變化時流過PMOS管-NMOS管的短路電流消耗的功耗。下圖展示了開關功耗的原因。
反相器輸出從0變為1時,通過PMOS管對負載電容充電;從1變為0時,通過NMOS管對負載電容放電。因此,動態功耗與電源電壓、電容負載、時鐘頻率和開關活動有關。
在早期CMOS技術中,泄漏電流很小。但是,隨著晶體管尺寸和閾值電壓減小,泄漏功耗增大,有時甚至達到動態功耗水平。晶體管只要接通電源,就會產生泄漏電流。減慢或停止時鐘不能降低泄漏功耗。只有降低或關閉電源電壓才能減少或消除泄漏功耗。
低功耗設計方法
降低功耗是數字IC設計中的一個重要目標。為此,可以從RTL級別和門級別采用不同的設計策略。時鐘門控(clock gating)是一種常用的方法,可以在寄存器保持不變的時候停止其時鐘信號,從而減少動態功耗。其他的方法,例如動態電壓和頻率調節,雖然可以根據工作負載調整電壓和頻率,但實施難度較大。
隨著工藝技術的進步,功耗問題變得越來越突出,需要開發更多的方法來滿足設計的功耗要求。
1、降低電源電壓
降低電源電壓是一種最基本的降低功耗的方法。因為功耗與電源電壓的平方成正比,如圖所示
如果電源電壓降低50%,則功耗可以降低75%。CMOS技術為了降低功耗,不斷降低電源電壓。從20世紀80年代雙極TTL電路的5V供電開始,到目前的先進工藝,電源電壓已經降到約1 V左右。但是降低電源電壓也會影響開關速度和抗噪聲能力,并且增加泄漏電流和接口難度等問題。
2、時鐘門控
時鐘門控是一種有效的降低動態功耗的方法,它可以在寄存器保持相同邏輯值的時候停止其時鐘信號,從而避免不必要的開關活動。時鐘門控的實現如圖所示:
時鐘門控適用于在多個時鐘周期內需要保持相同邏輯值的寄存器。關閉時鐘可以節省每個時鐘周期重新觸發寄存器所消耗的功耗。時鐘門控的主要挑戰是找到合適的位置,并在合適的時機生成時鐘門控信號。?時鐘門控是一種成熟的降低功耗技術,已經被廣泛使用了很多年。Power Compiler等綜合工具可以在時鐘路徑上自動插入時鐘門控單元。時鐘門控實現起來相對簡單,因為它只需要修改網表。
3、多閾值標準單元庫
一些CMOS標準單元工藝庫提供了具有不同閾值(Vt)的標準單元。這樣,標準單元庫可以提供具有不同閾值電壓的標準單元來實現相同的邏輯功能。例如,該庫可以提供兩個反相器單元:一個使用低閾值(Low-Vt)晶體管,另一個使用高閾值(High-Vt)晶體管。
低閾值單元具有更高的速度和更大的泄漏電流。
高閾值單元具有較小的泄漏電流,但速度較慢。
綜合工具可以根據速度和功耗之間的trade-off選擇合適類型的標準單元。
例如,它可以在關鍵路徑上使用低閾值單元,在非關鍵路徑上使用高閾值單元。
4、多電壓設計
芯片的不同部分可能具有不同的速度要求。例如,CPU和RAM模塊可能需要比外圍模塊更快。如前所述,較低的電源電壓可以降低功耗,但也會降低速度,如圖所示。?
在單個芯片上提供兩個或更多電源電壓會帶來一些復雜性,并且電源網格必須將每個電壓源分別分配給適當的模塊。如果邏輯信號從一個電壓域進入另一個電壓域,則需要一個電平轉換器(level-shifter)單元產生具有合適的電壓擺幅的信號。在上圖所示的示例中,電平轉換器將1.0V的信號轉換為1.5V的信號。電平轉換器本身需要兩個與輸入和輸出電源電壓相匹配的電源。??
5、電源開關
電源開關是一種降低功耗的技術,它可以在芯片的一部分不需要工作時將其斷電。
例如,在手機芯片中,當手機處于待機模式時,可以關閉語音處理模塊。當用戶撥打或接聽電話時,語音處理模塊必須從斷電狀態“喚醒”。
電源開關可以顯著降低總體功耗,因為它既降低了靜態功耗又降低了動態功耗。但它也帶來了一些其他挑戰,包括需要電源控制、電源開關網絡、隔離單元(isolation cells)和保留寄存器(retention registers)等。
電源控制是一個邏輯塊,用于確定何時斷電和上電。打開和關閉電源需要一定的時間和功耗成本,因此電源控制器應確定合適的斷電時間。可以被斷電的模塊必須連接到由大量串聯晶體管組成的,在always-on的電源軌道和電源引腳之間的電源開關網絡。電源開關網絡分布在模塊的周圍或內部。
當打開時,它將電源連接到模塊中的邏輯門。
當關閉時,它將模塊中的邏輯門與電源斷開。
采用多閾值CMOS(MTCMOS)工藝的高閾值晶體管作為電源開關是因為它們可以最大限度地減少泄漏功耗,并且它們的開關速度不是非常關鍵。PMOS開關可以放置在VDD和模塊的電源引腳之間,NMOS開關可以放置在VSS和模塊接地引腳之間,如圖所示。
要合理地選擇開關的數量、驅動強度和位置,以保證在模塊工作時達到可接受的電壓降(IR Drop)。??
上圖所示的電源開關策略稱為粗粒度策略,因為整個模塊共用一個或多個并聯的電源開關。在細粒度策略中,每個庫單元都有自己的獨立的電源開關。細粒度策略可以進一步降低功耗,但也需要更多的面積。
在信號從斷電模塊傳輸到always-on模塊時,需要使用隔離單元(isolation cells)。隔離單元可以在斷電模塊斷電時向always-on模塊提供一個固定的邏輯值,從而避免可能產生的泄漏電流。隔離單元的一個簡單實現如圖所示。
當左邊的模塊上電時,信號Iso為低電平,輸出信號通過隔離單元不變(除了延遲)。當左邊的模塊關閉時,Iso為高電平,輸出信號保持恒定的邏輯0。其他類型的隔離單元可以保持邏輯1或者斷電時的信號值。在模塊斷電期間,隔離單元本身必須有always-on的電源。??
電源開關可以與多電壓技術結合使用。不同的模塊可以在不同電壓下工作,并且也可以分別斷電。在這種情況下,不同模塊之間的接口單元必須同時具備電平轉換和隔離功能。這種類型的單元稱為使能電平轉換器(enable level shifter)。該單元必須有兩個獨立的電源,就像普通的電平轉換器一樣。
當模塊被斷電后再上電時,通常需要模塊恢復到斷電前的狀態。有幾種方法可以實現這一目標。例如,斷電前可以將模塊內的寄存器內容復制到模塊外的RAM中,然后在上電后再復制回來。
另一種方法是在斷電模塊中使用保留寄存器。斷電前,保留寄存器可以將數據保存到影子寄存器(shadow register)中,在斷電期間保留數據。上電后,它可以將數據從影子寄存器恢復到主寄存器中。影子寄存器有always-on的電源,但它使用高閾值晶體管,以最大限度地減少斷電期間的泄漏功耗。主寄存器使用快速但漏電的低閾值晶體管。保留寄存器的一個實現如圖所示。
SAVE信號在斷電和恢復之前將寄存器數據保存到影子寄存器中,RESTORE信號在上電后恢復數據。保留寄存器使用電平敏感的控制信號,而不是邊沿敏感的SAVE和RESTORE信號。??
保留寄存器占用比普通寄存器更大的面積,并且除了模塊其余部分使用的電源外,它還需要一個always-on的電源。
6、動態電壓和頻率調節
在多電壓技術的基礎上,可以根據芯片的實時工作負載動態地調整電壓和頻率,從而優化功耗。例如,在筆記本電腦中,處理器芯片在執行簡單的電子表格計算時可以使用較低的電壓和頻率,從而節省功耗;而在進行3-D圖像渲染時,則可以使用較高的電壓和頻率,以提高性能。這種根據工作負載要求變化供電電壓和工作頻率的技術稱為動態電壓和頻率調節。
芯片電源可以設計為具有多個離散的或連續的電壓等級。動態電壓調節需要有多級電源和邏輯模塊來確定給定任務所需的最佳電壓等級。
由于存在多種可能的電壓等級和頻率組合,設計、實現、驗證和測試都非常具有挑戰性。
動態電壓調節可以與電源開關技術相結合。設計中的模塊可以在不同的電壓等級下工作,以滿足不同的性能要求,或者在不使用時完全斷電。
審核編輯:劉清
評論
查看更多