嵌入式系統(tǒng)面向低功耗的協(xié)同設(shè)計(jì)
關(guān)鍵詞:協(xié)同設(shè)計(jì) 硬件低功耗 軟件低功耗 功耗估計(jì)
1 概述
對(duì)于當(dāng)今的各種電子設(shè)備尤其是嵌入式系統(tǒng)來說,功耗是一個(gè)非常重要的問題。系統(tǒng)部件產(chǎn)生的熱量和功耗成比例,為解決散熱問題而采取的冷卻措施進(jìn)一步增加了整個(gè)系統(tǒng)的功耗。為了得到最好的結(jié)果,在設(shè)計(jì)初級(jí)階段就要盡可能地考慮低功耗問題。
由于現(xiàn)在大部分?jǐn)?shù)字系統(tǒng)都利用CMOS電路,因此,本文提出的思路和探討領(lǐng)域,主要指CMOS電路。在CMOS電路里,功耗由下式?jīng)Q定:
Ptotal=Pstatic+Pshort+CswfV2dd+Pslitching (1)
式(1)中,第一項(xiàng)靜態(tài)功耗Pstatic是由漏電流消耗的,是在電路沒有正常運(yùn)轉(zhuǎn)時(shí)產(chǎn)生的,對(duì)于CMOS電路來說,這個(gè)功耗很小;后三項(xiàng)稱為動(dòng)態(tài)功耗,Pshort是在門電路輸出狀態(tài)發(fā)生改變時(shí)兩個(gè)CMOS晶體管同時(shí)導(dǎo)通產(chǎn)生的;第三項(xiàng)稱為開關(guān)功耗,和時(shí)鐘頻率f、供電電壓Vdd和開關(guān)電容Csw有關(guān);最后一項(xiàng)Pglitching是由電路中不需要的開關(guān)動(dòng)作產(chǎn)生的。從式(1)可以看出,在所有的功耗中,能夠改進(jìn)的部分只有開關(guān)功耗。在處理器上綁定任務(wù)將影響開關(guān)電容,選擇不同處理器將影響頻率和供電電壓。本文所考慮的系統(tǒng)模型包括了常用的大部分結(jié)構(gòu):硬件部件(ASICs)、微處理器(DSPs、微控制器)、存儲(chǔ)器和內(nèi)部互連網(wǎng)絡(luò)。這里互連網(wǎng)絡(luò)不指一條總線,而是指多條總線和點(diǎn)到點(diǎn)的連接,甚至無線連接。
目前,對(duì)硬件的功耗估計(jì)可以在不同的抽象級(jí)別上進(jìn)行:從慢而精確的門級(jí)功耗估計(jì)到快但不夠精確的算法級(jí)估計(jì)。折衷速度和功耗、采用流水線技術(shù)、關(guān)斷某些部件、減少開關(guān)活性等方法都是系統(tǒng)設(shè)計(jì)中經(jīng)常使用的。
軟件低功耗是一個(gè)較新的問題,主要是針對(duì)移動(dòng)通信、無線通信等數(shù)字信號(hào)處理器(DSP)應(yīng)用提出來的。軟件功耗優(yōu)化通常包括以下技術(shù):存儲(chǔ)器存取最小化、機(jī)器指令的最佳選擇、開發(fā)處理器的低功耗特性等。軟件功耗估計(jì)可以在兩個(gè)基本的抽象級(jí)別上進(jìn)行:在低級(jí)別上,門級(jí)指令處理系統(tǒng)中利用現(xiàn)有的門級(jí)和功耗估計(jì)工具;在高級(jí)別上,則利用每類指令或指令序列的執(zhí)行頻率來估計(jì)功耗。后一級(jí)方法不夠準(zhǔn)確,但比前一種速度快。
由于消耗在總線上的功耗占系統(tǒng)功耗的很大一部分,因此,低功耗通信綜合也作為低功耗軟件優(yōu)化的一部分。在總線上,通常是通過采用冗余碼編碼來減少開關(guān)活性從而降低功耗的。
2 協(xié)同設(shè)計(jì)流程
在典型的軟硬件協(xié)同設(shè)計(jì)過程中,與功耗相關(guān)的問題通常是在系統(tǒng)劃分成硬件和軟件兩部分后才開始考慮的。雖然這種方法可以降低功耗,但真正地面向低功耗的協(xié)同設(shè)計(jì)過程則需要從劃分開始就要考慮功耗,如圖1所示。從設(shè)計(jì)流程初期就要考慮功耗和控制的原因,可以用下面的例子說明:假定個(gè)過程選擇用軟件來完成,軟件的執(zhí)行時(shí)間較長(zhǎng),但輸出結(jié)果所用的通信時(shí)間短,這樣就導(dǎo)致了高帶寬,并占用總線。但同樣的過程如果用硬件來實(shí)現(xiàn),硬件的執(zhí)行速度更快,從而允許更長(zhǎng)的通信時(shí)間,并可以選擇低功耗的總線編碼策略。這樣就降低了整個(gè)系統(tǒng)的功耗(因?yàn)橥ㄐ胚^程非常耗能)。
2.1 輸入和輸出
如圖1所示,協(xié)同設(shè)計(jì)過程的輸入是系統(tǒng)規(guī)范,也就是通常所說的行為方式。通過設(shè)計(jì)得或自動(dòng)工具軟件可以將這個(gè)規(guī)范分解成通過虛擬通道通信的子過程。通過軟硬件劃分,其中一些子過程由硬件綜合來實(shí)現(xiàn),而另外的子過程將通過運(yùn)行在處理器上的軟件來完成。虛擬通道通常由總線、點(diǎn)到點(diǎn)的連接、共享存儲(chǔ)器或其它類型的內(nèi)部通信過程來實(shí)現(xiàn)。
到目前為止,研究者已提出了一些系統(tǒng)劃分方法。每一個(gè)子過程是一個(gè)通過自動(dòng)化工具從系統(tǒng)規(guī)范中提取的基本模塊。個(gè)基本模塊是一個(gè)指令序列,除了第一條或最后一條指令外,不允許跳入和跳出這個(gè)指令序列。虛擬通道僅用來完成與進(jìn)程的上下文(例如存活期的變量)的通信。這種分解方法產(chǎn)生了大量小的子過程和密集的通信過程。另一種方法是由設(shè)計(jì)者明確地指明各個(gè)過程以及各模塊之間通信的數(shù)據(jù)。用后一種方法,子過程的數(shù)量得到了控制,但卻失去了增強(qiáng)并行性的潛能。將系統(tǒng)分解成通過通道相互通信的子系統(tǒng)以后,就可以得到圖2所示的任務(wù)圖。
圖2中,每一個(gè)字節(jié)是一個(gè)子過程。每一條邊是有向邊,表示各過程之間的數(shù)據(jù)依賴性。從節(jié)點(diǎn)出發(fā)的有向邊只有滿足特定條件時(shí)才能完成通信。不同的有向邊進(jìn)入同一任務(wù)節(jié)點(diǎn)(稱為聯(lián)合節(jié)點(diǎn)),表示此任務(wù)要從不同的過程接收數(shù)據(jù)并且只有在數(shù)據(jù)接收完畢后才開始執(zhí)行過程。
設(shè)計(jì)者對(duì)運(yùn)行軟件的處理器、總線的數(shù)目和采用仲裁協(xié)議的類型通常有一個(gè)總體的思路,可以初步?jīng)Q定系統(tǒng)包含部件的數(shù)目和類型。最簡(jiǎn)單的結(jié)構(gòu)就是各種硬件加速器:微處理器、ASIC和通過總線連接的主存。對(duì)于更加復(fù)雜的系統(tǒng)則需要不同種類的處理器、多個(gè)ASIC、各種總線和多種存儲(chǔ)器。
一旦部件的數(shù)目和類型確定下來,進(jìn)程就要用ASIC或運(yùn)行在專用部件上的軟件實(shí)現(xiàn)。虛擬通道要和總線緊密連接,多個(gè)過程能用同一個(gè)處理器開且多個(gè)通道也可以共享同一總線。根據(jù)ASIC的面積和處理器的價(jià)格,在保持性能不變的情況下,一個(gè)典型分區(qū)的目標(biāo)就是使系統(tǒng)代價(jià)最小。在最壞情況下,所有的過程在單一的ASIC上實(shí)現(xiàn);而在理想情況下,處理器在不需要額外硬件的情況下完成所有的工作。
低功耗分區(qū)的代價(jià)函數(shù)在系統(tǒng)上是硬件、軟件和通信過程功耗估計(jì)的總和。在分區(qū)過程中,在滿足給定速度面積條件下,這個(gè)函數(shù)應(yīng)該達(dá)到最小值。
2.3 功耗估計(jì)
正如通信過程中的功耗估計(jì)一樣,對(duì)于每一個(gè)任務(wù)不管用硬件還是軟件實(shí)現(xiàn),功耗估計(jì)都是非常重要。
硬件功耗估計(jì)可以在行為級(jí)到門級(jí)的不同級(jí)別上進(jìn)行。在較低級(jí)別上的估計(jì)比在較高級(jí)別上的估計(jì)要準(zhǔn)確,但更費(fèi)時(shí)。由于同一個(gè)任務(wù)用軟件實(shí)現(xiàn)比用硬件實(shí)現(xiàn)更耗能,因此對(duì)硬件功耗估計(jì)也不必太精確,在較高級(jí)別上的估計(jì)就足夠了。硬件估計(jì)包括數(shù)據(jù)路徑、控制部件和內(nèi)部互連上的功耗。由于功耗依賴于被處理的數(shù)據(jù),因此利用輸入到硬件里的數(shù)據(jù)與信號(hào)相關(guān)的信息能獲得更好的估計(jì)結(jié)果。
通信過程中的功耗與互連的類型密切相關(guān)。它不僅依賴于各部件連接的情況,同時(shí)與通信的帶寬和編碼類型有關(guān)。
3 實(shí)現(xiàn)方法
迄今為止,在低功耗協(xié)同設(shè)計(jì)領(lǐng)域,包含所有常用結(jié)構(gòu)的研究報(bào)導(dǎo)不多,而且大部分都是針對(duì)比較簡(jiǎn)單且結(jié)果固定的一個(gè)ASIC和一個(gè)處理器的情況。許多低功耗綜合系統(tǒng)都是從最初的協(xié)同設(shè)計(jì)環(huán)境中發(fā)展而來的。在高級(jí)綜合中,模塊庫(kù)是可用的,并且每一個(gè)模塊和操作數(shù)據(jù)都是研究的。本部分所用的方法和高級(jí)綜合類似。
3.1 必需的數(shù)據(jù)
模塊庫(kù)由處理器(DSP、微控制器、通用CPU)和物理通信通道組成。對(duì)每一個(gè)處理器,我們假定以下數(shù)據(jù)是可用的:
*參考電壓Vref和參考時(shí)鐘頻率fref;
*對(duì)于給定Vref和fref,在處理器上運(yùn)行任務(wù)I所消耗的率Pi;
*處理器上任務(wù)i的執(zhí)行時(shí)間ti。
以上所涉及的是系統(tǒng)的軟件部分。在硬件上實(shí)現(xiàn)一個(gè)任務(wù)沒有特別的方法。快速的硬件設(shè)計(jì)給出了下限,系統(tǒng)級(jí)規(guī)范對(duì)執(zhí)行時(shí)間的要求則確定了上限。在供電電壓不變的情況下,快速電路通常需要更多的晶體管,產(chǎn)生了更大的開關(guān)電容,從而消耗更多的能量。我們假定一個(gè)任務(wù)在硬件實(shí)現(xiàn)上表示為兩個(gè)極端的設(shè)計(jì):其中一個(gè)速度最快,消耗能量最多;另一個(gè)最慢,但消耗能量最少,如圖3所示。
3.2 綜合過程
在一個(gè)常用的高級(jí)綜合里,通常需要完成分配、調(diào)度和任務(wù)的綁定,在協(xié)同設(shè)計(jì)過程中也可采用相同的方法。分別將影響每一個(gè)執(zhí)行任務(wù)的功耗,高度將決定總的執(zhí)行時(shí)間,綁定則影響通信過程。
在這里,要注意切耗和能量的區(qū)別??紤]一個(gè)任務(wù)以不同的頻率f1和f2在一個(gè)處理上運(yùn)行,相應(yīng)的時(shí)鐘周期分別為T1和T2,所需的周期數(shù)都是N,如圖4。由于要做同樣的計(jì)算,完成該任務(wù)所需的能量與頻率無關(guān),而功耗卻隨時(shí)鐘頻率增加。另一方面,式(2)電路的延遲(Delay)與供電電壓成反比,這里考慮到門限電壓VT足夠?。?/P>
聯(lián)合式(1)和(2)可以得到式(3)。對(duì)于不同的執(zhí)行時(shí)間,式(3)給出了新功耗Pnew和原功耗Pi之間的關(guān)系:
式(3)表示:在一個(gè)給定的處理器上,對(duì)于一個(gè)特定的任務(wù),如果允許較長(zhǎng)的執(zhí)行時(shí)間,通過降低電壓可以在很大程度上降低功耗。因此,一個(gè)比較好的方法是讓處理器盡可能地一直處于工作的狀態(tài),因?yàn)樵黾訄?zhí)行時(shí)間比處理器空閑時(shí)關(guān)掉它更有利。
4 實(shí)驗(yàn)結(jié)果
從一個(gè)現(xiàn)有的系統(tǒng)綜合環(huán)境出發(fā),通過約束邏輯編程方法,們開發(fā)了一個(gè)增強(qiáng)型環(huán)境來實(shí)現(xiàn)系統(tǒng)綜合。在我們的例子中,任務(wù)圖里有九個(gè)任務(wù)和八個(gè)過程。資源庫(kù)里包括三種類型的處理器,其代價(jià)是{4,5,2},平均相對(duì)功耗是{4,6,5},資源庫(kù)還包括一條總線。結(jié)果顯示,不同的任務(wù)有不同的執(zhí)行時(shí)間,從而產(chǎn)生了不同的功耗。圖5繪出了這個(gè)例子的設(shè)計(jì)空間,柱狀體代表給定條件下具有最小功耗的設(shè)計(jì)。從圖5中可以看出:如果最大代價(jià)和臨界值條件放寬一些,功耗就可以降低。
結(jié)語
在進(jìn)行系統(tǒng)設(shè)計(jì)時(shí),如果在設(shè)計(jì)階段就盡可能地考慮功耗,就可以明顯地降低整個(gè)系統(tǒng)的功耗。上面實(shí)驗(yàn)結(jié)果也說明了在較高級(jí)別上重視功耗的重要性,這對(duì)設(shè)計(jì)正在廣泛使用的嵌入式系統(tǒng)具有非常重要的指導(dǎo)意義。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評(píng)論