摘 要: 對(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ī)模和集成度的不斷提高,功耗問(wèn)題也正日益成為片上系統(tǒng)實(shí)現(xiàn)的一個(gè)限制因素。對(duì)便攜式應(yīng)用來(lái)說(shuō),其主要原因在于電池壽命;而對(duì)固定應(yīng)用則在于最高工作溫度。既要解決電池壽命和芯片散熱問(wèn)題,又要提高電路的運(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í)開(kāi)始設(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í)鐘周期的開(kāi)關(guān)次數(shù),VDD為電路的電源電壓值。假設(shè)執(zhí)行第j個(gè)任務(wù)所需的總時(shí)鐘數(shù)為Nj,則執(zhí)行第n個(gè)任務(wù)的能量消耗為:
由式(2)可以看出,影響系統(tǒng)功耗的主要因素有工作電壓、負(fù)載電容、門電路的開(kāi)關(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)化。例如,由于訪問(wèn)寄存器比訪問(wèn)內(nèi)存需要更少功耗,所以,可以通過(guò)合理有效地利用寄存器來(lái)減少對(duì)內(nèi)存的訪問(wèn)。③在操作系統(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條不同的組合路徑上,電路的工作頻率沒(méi)有改變,但每一級(jí)的電路減少,使電源電壓可以降低。假設(shè)電源電壓為Vref /1.8,由于加入了流水線寄存器,等效電容變?yōu)樵瓉?lái)的1.2Cref。則:
由式(5)可見(jiàn),采用流水線結(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ù)值不同。由于在訪問(wèn)相鄰的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ū)訪問(wèn)
存儲(chǔ)分區(qū)訪問(wèn)是將一個(gè)大的存儲(chǔ)模塊分成不同的小的存儲(chǔ)模塊,通過(guò)譯碼器輸出的高位地址來(lái)區(qū)分不同的存儲(chǔ)模塊。工作中,只有被訪問(wèn)的存儲(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器件相比,具有良好的特性:沒(méi)有自鎖效應(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