摘 要: 對(duì)片上系統(tǒng)的設(shè)計(jì)方法進(jìn)行了分析與探討,,給出了目前比較適用的SOC低功耗設(shè)計(jì)方法和一種新的SOC低功耗設(shè)計(jì)流程。對(duì)影響片上系統(tǒng)功耗的因素進(jìn)行了深入分析,,在此基礎(chǔ)上從不同的層次討論了SOC系統(tǒng)較為有效的低功耗設(shè)計(jì)技術(shù),,通過(guò)對(duì)這些不同層次低功耗設(shè)計(jì)技術(shù)的比較,指明了SOC系統(tǒng)低功耗設(shè)計(jì)的發(fā)展方向,。
關(guān)鍵詞: 集成電路 片上系統(tǒng) 低功耗
近年來(lái)集成電路技術(shù)發(fā)展迅速,,片上系統(tǒng)(System On Chip,SOC)技術(shù)已經(jīng)非常流行,?;谏顏單⒚椎某笠?guī)模片上系統(tǒng)芯片需求日益擴(kuò)大,使傳統(tǒng)的數(shù)字IC設(shè)計(jì)方法已不能適應(yīng)現(xiàn)代產(chǎn)業(yè)界的IC產(chǎn)品需求,。雖然IC設(shè)計(jì)者的設(shè)計(jì)能力每年以大約18%的速率提高[1],,但還是不能跟上摩爾定律所顯示的芯片規(guī)模增長(zhǎng)。IC產(chǎn)品面臨上市時(shí)間的壓力,,使得設(shè)計(jì)者必須從設(shè)計(jì)方法來(lái)提高設(shè)計(jì)效率,。
由于設(shè)計(jì)規(guī)模和集成度的不斷提高,功耗問題也正日益成為片上系統(tǒng)實(shí)現(xiàn)的一個(gè)限制因素,。對(duì)便攜式應(yīng)用來(lái)說(shuō),,其主要原因在于電池壽命;而對(duì)固定應(yīng)用則在于最高工作溫度,。既要解決電池壽命和芯片散熱問題,,又要提高電路的運(yùn)行速度和穩(wěn)定性,所能采取的根本措施就是降低功耗,。
1 SOC的設(shè)計(jì)方法
SOC的設(shè)計(jì)方法靈活多變,,種類繁多。目前,,可以用于SOC設(shè)計(jì)的設(shè)計(jì)方法主要有:全定制系統(tǒng)設(shè)計(jì)方法,、基于處理器核的系統(tǒng)設(shè)計(jì)方法、基于平臺(tái)的系統(tǒng)設(shè)計(jì)方法和系統(tǒng)級(jí)綜合設(shè)計(jì)方法,。除第1種設(shè)計(jì)方法外,,后3種均為基于IP模塊可重用設(shè)計(jì)的SOC設(shè)計(jì)方法。下面將對(duì)各種設(shè)計(jì)方法進(jìn)行闡述,,并給出目前比較合適的SOC低功耗設(shè)計(jì)方法和一種新的低功耗設(shè)計(jì)流程,。
(1)全定制系統(tǒng)設(shè)計(jì)方法。采用傳統(tǒng)的ASIC設(shè)計(jì)方法來(lái)完全或大部分定制系統(tǒng)的各個(gè)部分。該設(shè)計(jì)方法的優(yōu)點(diǎn)是設(shè)計(jì)靈活性大,、系統(tǒng)結(jié)構(gòu)緊湊,、芯片的特性好、面積小,。缺點(diǎn)是設(shè)計(jì)周期長(zhǎng),、可重用性差,一般SOC的設(shè)計(jì)都不采用這種方法,。
(2)基于處理器核的系統(tǒng)設(shè)計(jì)方法,。是在基于某種特定處理器的基礎(chǔ)上,通過(guò)添加外設(shè)模塊來(lái)完成系統(tǒng)設(shè)計(jì),。由于其處理器內(nèi)核是確定的,,因此只能在有限范圍內(nèi)選擇掛接的外設(shè)模塊。系統(tǒng)一般由可以綜合的處理器內(nèi)核和符合處理器內(nèi)核的設(shè)計(jì)標(biāo)準(zhǔn)的外設(shè)模塊和定制邏輯組成,。其缺點(diǎn)是不能滿足系統(tǒng)設(shè)計(jì)的重用需求,,SOC設(shè)計(jì)中較少采用。
(3)基于集成平臺(tái)的系統(tǒng)設(shè)計(jì)方法,。是通過(guò)架構(gòu)可重用的,、有效的體系結(jié)構(gòu),在其中加入經(jīng)過(guò)選擇的軟件或硬件IP模塊來(lái)實(shí)現(xiàn)設(shè)計(jì),。系統(tǒng)中所有的模塊都是可選部分,,通過(guò)對(duì)體系結(jié)構(gòu)中的各個(gè)部件進(jìn)行客戶化設(shè)計(jì)來(lái)實(shí)現(xiàn)不同的需求。該設(shè)計(jì)方法由于其體系結(jié)構(gòu)易于集成IP模塊,,滿足了高度可重用的需要,,是目前一種切實(shí)可行的設(shè)計(jì)方案。
(4)基于系統(tǒng)綜合的系統(tǒng)設(shè)計(jì)方法,。是在系統(tǒng)級(jí)設(shè)計(jì)流程中加入算法設(shè)計(jì),,通過(guò)高層的設(shè)計(jì)表述選擇應(yīng)用算法,調(diào)用可配置的IP,,根據(jù)需要加以改變,,并以此將系統(tǒng)劃分為新的IP和已有的可配置外設(shè)來(lái)滿足系統(tǒng)需求,。由于目前相關(guān)系統(tǒng)設(shè)計(jì)工具的欠缺和不足,,因此該設(shè)計(jì)方法離實(shí)際應(yīng)用還較遠(yuǎn)。
隨著技術(shù)的進(jìn)步和需求的提升,,未來(lái)片上系統(tǒng)的設(shè)計(jì)除了需要強(qiáng)有力的IP庫(kù)和EDA工具支持外,,還需要在設(shè)計(jì)方法上有所突破,這就是軟硬件協(xié)同設(shè)計(jì),,其流程如圖1所示,。由圖可以看出,這種設(shè)計(jì)方法是在多個(gè)層面上同時(shí)開始設(shè)計(jì),增強(qiáng)了設(shè)計(jì)的競(jìng)爭(zhēng)力,。
通過(guò)對(duì)比SOC的各種設(shè)計(jì)方法,,基于集成平臺(tái)的系統(tǒng)設(shè)計(jì)方法是當(dāng)前SOC的主流設(shè)計(jì)方法。同時(shí),,隨著SOC技術(shù)的發(fā)展,,基于系統(tǒng)綜合的系統(tǒng)設(shè)計(jì)方法和軟硬件協(xié)調(diào)設(shè)計(jì)的方法將會(huì)有所突破和發(fā)展。
2 SOC的低功耗設(shè)計(jì)
目前,,很多片上系統(tǒng)的設(shè)計(jì)都是先進(jìn)行功耗分析,,根據(jù)分析的結(jié)果再來(lái)劃分設(shè)計(jì)結(jié)構(gòu)、改進(jìn)設(shè)計(jì)和優(yōu)化方案,。功耗已成為整個(gè)SOC設(shè)計(jì)的一個(gè)重點(diǎn),,也是整個(gè)設(shè)計(jì)成功與否的關(guān)鍵因素。因此,,探討如何進(jìn)行片上系統(tǒng)的低功耗設(shè)計(jì)是十分有意義的,。下面將從片上系統(tǒng)的功耗分析入手,詳細(xì)討論不同層次的低功耗設(shè)計(jì)方法,。
2.1 SOC的功耗分析
大規(guī)模集成電路多采用CMOS電路,,對(duì)于CMOS電路來(lái)說(shuō),在執(zhí)行某一任務(wù)期間,,1個(gè)時(shí)鐘周期的能量消耗為:
式(1)中:M為系統(tǒng)中門電路的個(gè)數(shù),,Ck為第k個(gè)門電路的負(fù)載電容,SWk為第k個(gè)門電路每個(gè)時(shí)鐘周期的開關(guān)次數(shù),,VDD為電路的電源電壓值,。假設(shè)執(zhí)行第j個(gè)任務(wù)所需的總時(shí)鐘數(shù)為Nj,則執(zhí)行第n個(gè)任務(wù)的能量消耗為:
由式(2)可以看出,,影響系統(tǒng)功耗的主要因素有工作電壓,、負(fù)載電容、門電路的開關(guān)次數(shù)和時(shí)鐘數(shù),。這些參數(shù)就是進(jìn)行SOC系統(tǒng)低功耗設(shè)計(jì)的出發(fā)點(diǎn),。
2.2 SOC不同層次的低功耗設(shè)計(jì)
影響系統(tǒng)功耗的參數(shù)調(diào)整主要是從系統(tǒng)級(jí)到物理級(jí)來(lái)進(jìn)行。下面將針對(duì)各種不同層次中較為有效的設(shè)計(jì)方法進(jìn)行闡述與探討,。
2.2.1 系統(tǒng)級(jí)
在系統(tǒng)級(jí)進(jìn)行低功耗設(shè)計(jì)的主要方法有:
(1)軟硬件劃分
軟硬件劃分是從系統(tǒng)功能的抽象描述著手,,把系統(tǒng)功能分解為硬件和軟件來(lái)實(shí)現(xiàn)。通過(guò)比較采用硬件方式和軟件方式實(shí)現(xiàn)系統(tǒng)功能的功耗,,得出一個(gè)比較合理的低功耗實(shí)現(xiàn)方案,。由于軟硬件的劃分處于設(shè)計(jì)的起始階段,所以能為降低功耗帶來(lái)更大的可能,。
(2)功耗管理
功耗管理的核心思想是設(shè)計(jì)并區(qū)分不同的工作模式,。其管理方式可分為動(dòng)態(tài)功耗管理和靜態(tài)功耗管理2種,。動(dòng)態(tài)功耗管理的思想就是有選擇地將不被調(diào)用的模塊掛起,從而降低功耗,。靜態(tài)功耗管理是對(duì)待機(jī)工作模式的功耗進(jìn)行管理,,它所要監(jiān)測(cè)的是整個(gè)系統(tǒng)的工作狀態(tài),而不是只針對(duì)某個(gè)模塊,。如果系統(tǒng)在一段時(shí)間內(nèi)一直處于空閑狀態(tài),,則靜態(tài)功耗管理就會(huì)把整個(gè)芯片掛起,系統(tǒng)進(jìn)入睡眠狀態(tài),,以減少功耗,。
(3)軟件代碼優(yōu)化
軟件代碼的功耗優(yōu)化主要包括:①在確定算法時(shí),對(duì)所需算法的復(fù)雜性,、并發(fā)性進(jìn)行分析,,盡可能利用算法的規(guī)整性和可重用性,減少所需的運(yùn)算操作和運(yùn)算資源,。②把算法轉(zhuǎn)換為可執(zhí)行代碼時(shí),,盡可能針對(duì)特定的硬件體系結(jié)構(gòu)進(jìn)行優(yōu)化。例如,,由于訪問寄存器比訪問內(nèi)存需要更少功耗,,所以,可以通過(guò)合理有效地利用寄存器來(lái)減少對(duì)內(nèi)存的訪問,。③在操作系統(tǒng)中充分利用硬件提供的節(jié)電模式,。隨著動(dòng)態(tài)電壓縮放技術(shù)的出現(xiàn),操作系統(tǒng)可以通過(guò)合理地設(shè)置工作狀態(tài)來(lái)減少功耗,。
2.2.2 結(jié)構(gòu)級(jí)
在結(jié)構(gòu)級(jí)進(jìn)行低功耗設(shè)計(jì)的主要方法有:
(1)并行結(jié)構(gòu)
并行結(jié)構(gòu)是將1條數(shù)據(jù)通路的工作分解到2條通路上完成,。并行結(jié)構(gòu)降低功耗的主要原因是其獲得與參考結(jié)構(gòu)相同的計(jì)算速度的前提下,其工作頻率可以降低為原來(lái)的1/2,,同時(shí)電源電壓也可降低,。二分頻并行電路參考結(jié)構(gòu)如圖2所示。
由圖可以看出,,并行電路結(jié)構(gòu)是以犧牲芯片的面積來(lái)降低功耗,。假定參考結(jié)構(gòu)中的工作頻率為fref,電源電壓為Vref,,最壞情況下的延遲為τ,,則:
由式(4)可以看出,并行結(jié)構(gòu)下功耗有明顯的降低,。
(2)流水結(jié)構(gòu)
電路流水就是采用插入寄存器的辦法降低組合路徑的長(zhǎng)度,,達(dá)到降低功耗的目的,。一個(gè)先相加再比較的電路中間插入流水線寄存器的流水結(jié)構(gòu)如圖3所示,。
由圖可知,,加法器和選擇器處在2條不同的組合路徑上,電路的工作頻率沒有改變,,但每一級(jí)的電路減少,,使電源電壓可以降低。假設(shè)電源電壓為Vref /1.8,,由于加入了流水線寄存器,,等效電容變?yōu)樵瓉?lái)的1.2Cref。則:
由式(5)可見,,采用流水線結(jié)構(gòu)也可以顯著地降低功耗,。
電路流水化和并行化可以達(dá)到降低功耗的目的,這是因?yàn)樵O(shè)計(jì)者可以選擇電路的工作電壓,。如果電路工作電壓固定,,2種方法只能提高電路的工作速度,但功耗將相應(yīng)地有所增加,。
(3)編碼優(yōu)化
一般可采用One-Hot碼,、格雷碼和總線反轉(zhuǎn)碼降低片上系統(tǒng)總線的功耗。One-Hot碼在一個(gè)二進(jìn)制數(shù)中只允許1個(gè)數(shù)位不同于其他各數(shù)位的值,;格雷碼在任何2個(gè)連續(xù)的數(shù)字其對(duì)應(yīng)的二進(jìn)制碼只有1位的數(shù)值不同,。由于在訪問相鄰的2個(gè)地址的內(nèi)容時(shí),其跳變次數(shù)比較少,,從而有效地減少了總線功耗,。
總線反轉(zhuǎn)碼是在傳輸數(shù)據(jù)時(shí)考慮相鄰數(shù)據(jù)之間的關(guān)系來(lái)決定傳輸?shù)母袷健.?dāng)發(fā)送部件向總線上傳輸?shù)赟i+1個(gè)數(shù)據(jù)時(shí),,會(huì)將它和Si進(jìn)行比較,,根據(jù)比較的結(jié)果來(lái)決定發(fā)送Si+1還是Si,從而減少總線的有效翻轉(zhuǎn)數(shù),,進(jìn)而減少系統(tǒng)的功耗,。
除了這幾種編碼外還有一些更為復(fù)雜的低功耗編碼,如窄總線編碼,、部分總線反轉(zhuǎn)編碼和自適應(yīng)編碼等,,這些編碼方式的最終目的就是通過(guò)改變編碼來(lái)降低不同數(shù)據(jù)切換時(shí)的平均翻轉(zhuǎn)次數(shù)。在采用這些編碼時(shí),,設(shè)計(jì)者應(yīng)該綜合考慮它們帶來(lái)的其他代價(jià),,如增加的編碼解碼電路等。
2.2.3 寄存器級(jí)
在寄存器級(jí)進(jìn)行低功耗設(shè)計(jì)的主要方法有三種,。
(1)門控時(shí)鐘
門控時(shí)鐘有2種:門控到達(dá)邏輯模塊的時(shí)鐘和門控到達(dá)每個(gè)觸發(fā)器的時(shí)鐘,。但不管是哪一種,都能起到降低功耗的作用,。門控到達(dá)邏輯模塊的時(shí)鐘控制方法如圖4所示,。中心模塊提供給模塊A和模塊B不同的門控時(shí)鐘,,當(dāng)模塊不工作時(shí),可以關(guān)閉該模塊,,從而達(dá)到減少功耗的目的,。
門控到達(dá)每個(gè)觸發(fā)器的時(shí)鐘控制方法如圖5所示。當(dāng)寄存器保持?jǐn)?shù)據(jù)時(shí),,可以關(guān)閉寄存器時(shí)鐘輸入,,減少功耗。
(2)存儲(chǔ)分區(qū)訪問
存儲(chǔ)分區(qū)訪問是將一個(gè)大的存儲(chǔ)模塊分成不同的小的存儲(chǔ)模塊,,通過(guò)譯碼器輸出的高位地址來(lái)區(qū)分不同的存儲(chǔ)模塊,。工作中,只有被訪問的存儲(chǔ)器才工作,,其他幾塊存儲(chǔ)器不工作,。多模塊RAM的架構(gòu)如圖6所示。
根據(jù)參考文獻(xiàn)[4],,采用此種方法可以將RAM的功耗減少12.5%,。
(3)預(yù)計(jì)算
預(yù)計(jì)算是提前進(jìn)行位寬較小的計(jì)算工作,如果這些操作得到的信息可以代表實(shí)際的運(yùn)算結(jié)果,,就可以避免再進(jìn)行位寬較大的計(jì)算工作,,降低電路的有效翻轉(zhuǎn)率,從而達(dá)到降低功耗的目的,。例如,,2個(gè)8位操作數(shù)進(jìn)行大小比較,如果最高位就不同,,則這2位的比較結(jié)果就可以代表實(shí)際的結(jié)果,,而不需要再進(jìn)行8位操作數(shù)的比較,可顯著降低位數(shù)較多的比較器的功耗,。
2.2.4 邏輯門級(jí)
在邏輯門級(jí)進(jìn)行低功耗設(shè)計(jì)的主要方法有:
(1)邏輯優(yōu)化
邏輯優(yōu)化設(shè)計(jì)的主要目的是減少信號(hào)的翻轉(zhuǎn)活動(dòng),。通過(guò)將邏輯電路的邏輯功能盡可能地分解,使翻轉(zhuǎn)活動(dòng)最小,。然后將翻轉(zhuǎn)活動(dòng)高的結(jié)點(diǎn)隱藏到復(fù)雜的門里,,以此來(lái)降低這些結(jié)點(diǎn)的等效電容。
(2)多閾值電壓
多電壓技術(shù)的思路與可變電壓技術(shù)類似,??勺冸妷杭夹g(shù)在時(shí)間上改變電壓,而多電壓技術(shù)則在空間上使用不同的電壓,,根據(jù)系統(tǒng)不同部分的性能要求差異,,使其工作于不同的電壓,從而降低系統(tǒng)功耗。
2.2.5 版圖和物理級(jí)
在版圖和物理級(jí)進(jìn)行低功耗設(shè)計(jì)的主要方法有:
(1)布局布線優(yōu)化
布局布線優(yōu)化設(shè)計(jì)主要集中在寄生電容與翻轉(zhuǎn)活動(dòng)這2個(gè)相關(guān)的因素,。通過(guò)將連線合理地安排在不同的層面上達(dá)到降低功耗的目的,。這一部分與使用的EDA工具有關(guān)。
(2)TFSOI設(shè)計(jì)技術(shù)
薄膜SOI器件采用絕緣介質(zhì)作為隔離,,與普通的CMOS器件相比,,具有良好的特性:沒有自鎖效應(yīng),,具有高集成度,、低寄生電容和理想的亞閾值漏電流。采用SOI器件,,電路的電容可以降低約30%,,再加上較低的工作電壓,可以大大降低電路的功耗,。
以上從不同的層面系統(tǒng)地介紹了一些行之有效的低功耗設(shè)計(jì)方法,。實(shí)踐證明,在不同設(shè)計(jì)層次上采用不同的措施對(duì)功耗的改善程度是不同的,,層次越高,改善的程度越大,。各層次低功耗設(shè)計(jì)方法的效果比較如表1所示。
3 結(jié)束語(yǔ)
本文對(duì)SOC設(shè)計(jì)方法和不同層次的低功耗設(shè)計(jì)進(jìn)行了深入探討,,給出了目前比較適用的SOC低功耗設(shè)計(jì)方法和新的軟硬件協(xié)同設(shè)計(jì)流程,。隨著SOC技術(shù)的發(fā)展,軟件設(shè)計(jì)占據(jù)的地位將會(huì)越來(lái)越重要,,與軟硬件協(xié)同設(shè)計(jì)相關(guān)的新的設(shè)計(jì)方法和低功耗設(shè)計(jì)技術(shù)必將得到快速發(fā)展,。
參考文獻(xiàn)
1 Keating M,Bricaud P.片上系統(tǒng)-可重用設(shè)計(jì)方法學(xué)(第三版).北京:電子工業(yè)出版社,,2004
2 Okuma T,,Ishihara T,Yasuura H.Software Energy Reduction Techniques for Variable-Voltage Processors.Design and Test of Computer,,2001
3 Emnett F,,Biege1 M.Power Reduction through RTL Clock Gating[Z].Synopsys Users Group,San Jose,,2000
4 Jiann S Y,,Jia D.Teaching Low-Power Electronic Design in Electrical and Computer Engineering.IEEE Transactions on Education,2005,;48(1)
5 Aghaghiri Y,,F(xiàn)allah F,Pedram M.Transition Reduction in Memory Buses Using Sector-Based Encoding Techniques. IEEE Transactions on Computer-Aided Design of Intergraded Circuits and Systems,,2004,;23(8)
6 Rabaey J M,Chandrakasan A,,Nikolic B.數(shù)字集成電路——電路,、系統(tǒng)與設(shè)計(jì)(第二版).北京:電子工業(yè)出版社,,2004