新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 嵌入式系統(tǒng)面向低功耗的協(xié)同設(shè)計(jì)

嵌入式系統(tǒng)面向低功耗的協(xié)同設(shè)計(jì)

作者: 時(shí)間:2004-12-10 來(lái)源:網(wǎng)絡(luò) 收藏
摘要:中,低或低并沒(méi)作為一個(gè)整體在當(dāng)前的研究中得到充分的重視。本文闡述在系統(tǒng)級(jí)的重要性,綜述硬件低功耗、軟件低功耗和通信低功耗的設(shè)計(jì)方法,并給出實(shí)現(xiàn)低功耗設(shè)計(jì)的一種可行方法。

關(guān)鍵詞:設(shè)計(jì) 硬件低功耗 軟件低功耗 功耗估計(jì)

1 概述

對(duì)于當(dāng)今的各種電子設(shè)備尤其是系統(tǒng)來(lái)說(shuō),功耗是一個(gè)非常重要的問(wèn)題。系統(tǒng)部件產(chǎn)生的熱量和功耗成比例,為解決散熱問(wèn)題而采取的冷卻措施進(jìn)一步增加了整個(gè)系統(tǒng)的功耗。為了得到最好的結(jié)果,在設(shè)計(jì)初級(jí)階段就要盡可能地考慮低功耗問(wèn)題。

由于現(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是由漏電流消耗的,是在電路沒(méi)有正常運(yùn)轉(zhuǎn)時(shí)產(chǎn)生的,對(duì)于CMOS電路來(lái)說(shuō),這個(gè)功耗很?。缓笕?xiàng)稱為動(dòng)態(tài)功耗,Pshort是在門電路輸出狀態(tài)發(fā)生改變時(shí)兩個(gè)CMOS晶體管同時(shí)導(dǎo)通產(chǎn)生的;第三項(xiàng)稱為開(kāi)關(guān)功耗,和時(shí)鐘頻率f、供電電壓Vdd和開(kāi)關(guān)電容Csw有關(guān);最后一項(xiàng)Pglitching是由電路中不需要的開(kāi)關(guān)動(dòng)作產(chǎn)生的。從式(1)可以看出,在所有的功耗中,能夠改進(jìn)的部分只有開(kāi)關(guān)功耗。在處理器上綁定任務(wù)將影響開(kāi)關(guān)電容,選擇不同處理器將影響頻率和供電電壓。本文所考慮的系統(tǒng)模型包括了常用的大部分結(jié)構(gòu):硬件部件(ASICs)、微處理器(DSPs、微控制器)、存儲(chǔ)器和內(nèi)部互連網(wǎng)絡(luò)。這里互連網(wǎng)絡(luò)不指一條總線,而是指多條總線和點(diǎn)到點(diǎn)的連接,甚至無(wú)線連接。

目前,對(duì)硬件的功耗估計(jì)可以在不同的抽象級(jí)別上進(jìn)行:從慢而精確的門級(jí)功耗估計(jì)到快但不夠精確的算法級(jí)估計(jì)。折衷速度和功耗、采用流水線技術(shù)、關(guān)斷某些部件、減少開(kāi)關(guān)活性等方法都是系統(tǒng)設(shè)計(jì)中經(jīng)常使用的。

軟件低功耗是一個(gè)較新的問(wèn)題,主要是針對(duì)移動(dòng)通信、無(wú)線通信等數(shù)字信號(hào)處理器(DSP)應(yīng)用提出來(lái)的。軟件功耗優(yōu)化通常包括以下技術(shù):存儲(chǔ)器存取最小化、機(jī)器指令的最佳選擇、開(kāi)發(fā)處理器的低功耗特性等。軟件功耗估計(jì)可以在兩個(gè)基本的抽象級(jí)別上進(jìn)行:在低級(jí)別上,門級(jí)指令處理系統(tǒng)中利用現(xiàn)有的門級(jí)和功耗估計(jì)工具;在高級(jí)別上,則利用每類指令或指令序列的執(zhí)行頻率來(lái)估計(jì)功耗。后一級(jí)方法不夠準(zhǔn)確,但比前一種速度快。

由于消耗在總線上的功耗占系統(tǒng)功耗的很大一部分,因此,低功耗通信綜合也作為低功耗軟件優(yōu)化的一部分。在總線上,通常是通過(guò)采用冗余碼編碼來(lái)減少開(kāi)關(guān)活性從而降低功耗的。

2 設(shè)計(jì)流程

在典型的軟硬件協(xié)同設(shè)計(jì)過(guò)程中,與功耗相關(guān)的問(wèn)題通常是在系統(tǒng)劃分成硬件和軟件兩部分后才開(kāi)始考慮的。雖然這種方法可以降低功耗,但真正地低功耗的協(xié)同設(shè)計(jì)過(guò)程則需要從劃分開(kāi)始就要考慮功耗,如圖1所示。從設(shè)計(jì)流程初期就要考慮功耗和控制的原因,可以用下面的例子說(shuō)明:假定個(gè)過(guò)程選擇用軟件來(lái)完成,軟件的執(zhí)行時(shí)間較長(zhǎng),但輸出結(jié)果所用的通信時(shí)間短,這樣就導(dǎo)致了高帶寬,并占用總線。但同樣的過(guò)程如果用硬件來(lái)實(shí)現(xiàn),硬件的執(zhí)行速度更快,從而允許更長(zhǎng)的通信時(shí)間,并可以選擇低功耗的總線編碼策略。這樣就降低了整個(gè)系統(tǒng)的功耗(因?yàn)橥ㄐ胚^(guò)程非常耗能)。

2.1 輸入和輸出

如圖1所示,協(xié)同設(shè)計(jì)過(guò)程的輸入是系統(tǒng)規(guī)范,也就是通常所說(shuō)的行為方式。通過(guò)設(shè)計(jì)得或自動(dòng)工具軟件可以將這個(gè)規(guī)范分解成通過(guò)虛擬通道通信的子過(guò)程。通過(guò)軟硬件劃分,其中一些子過(guò)程由硬件綜合來(lái)實(shí)現(xiàn),而另外的子過(guò)程將通過(guò)運(yùn)行在處理器上的軟件來(lái)完成。虛擬通道通常由總線、點(diǎn)到點(diǎn)的連接、共享存儲(chǔ)器或其它類型的內(nèi)部通信過(guò)程來(lái)實(shí)現(xiàn)。

到目前為止,研究者已提出了一些系統(tǒng)劃分方法。每一個(gè)子過(guò)程是一個(gè)通過(guò)自動(dòng)化工具從系統(tǒng)規(guī)范中提取的基本模塊。個(gè)基本模塊是一個(gè)指令序列,除了第一條或最后一條指令外,不允許跳入和跳出這個(gè)指令序列。虛擬通道僅用來(lái)完成與進(jìn)程的上下文(例如存活期的變量)的通信。這種分解方法產(chǎn)生了大量小的子過(guò)程和密集的通信過(guò)程。另一種方法是由設(shè)計(jì)者明確地指明各個(gè)過(guò)程以及各模塊之間通信的數(shù)據(jù)。用后一種方法,子過(guò)程的數(shù)量得到了控制,但卻失去了增強(qiáng)并行性的潛能。將系統(tǒng)分解成通過(guò)通道相互通信的子系統(tǒng)以后,就可以得到圖2所示的任務(wù)圖。

圖2中,每一個(gè)字節(jié)是一個(gè)子過(guò)程。每一條邊是有向邊,表示各過(guò)程之間的數(shù)據(jù)依賴性。從節(jié)點(diǎn)出發(fā)的有向邊只有滿足特定條件時(shí)才能完成通信。不同的有向邊進(jìn)入同一任務(wù)節(jié)點(diǎn)(稱為聯(lián)合節(jié)點(diǎn)),表示此任務(wù)要從不同的過(guò)程接收數(shù)據(jù)并且只有在數(shù)據(jù)接收完畢后才開(kāi)始執(zhí)行過(guò)程。

2.2 部件的選擇和系統(tǒng)分區(qū)

設(shè)計(jì)者對(duì)運(yùn)行軟件的處理器、總線的數(shù)目和采用仲裁協(xié)議的類型通常有一個(gè)總體的思路,可以初步?jīng)Q定系統(tǒng)包含部件的數(shù)目和類型。最簡(jiǎn)單的結(jié)構(gòu)就是各種硬件加速器:微處理器、ASIC和通過(guò)總線連接的主存。對(duì)于更加復(fù)雜的系統(tǒng)則需要不同種類的處理器、多個(gè)ASIC、各種總線和多種存儲(chǔ)器。

一旦部件的數(shù)目和類型確定下來(lái),進(jìn)程就要用ASIC或運(yùn)行在專用部件上的軟件實(shí)現(xiàn)。虛擬通道要和總線緊密連接,多個(gè)過(guò)程能用同一個(gè)處理器開(kāi)且多個(gè)通道也可以共享同一總線。根據(jù)ASIC的面積和處理器的價(jià)格,在保持性能不變的情況下,一個(gè)典型分區(qū)的目標(biāo)就是使系統(tǒng)代價(jià)最小。在最壞情況下,所有的過(guò)程在單一的ASIC上實(shí)現(xiàn);而在理想情況下,處理器在不需要額外硬件的情況下完成所有的工作。

低功耗分區(qū)的代價(jià)函數(shù)在系統(tǒng)上是硬件、軟件和通信過(guò)程功耗估計(jì)的總和。在分區(qū)過(guò)程中,在滿足給定速度面積條件下,這個(gè)函數(shù)應(yīng)該達(dá)到最小值。

2.3 功耗估計(jì)

正如通信過(guò)程中的功耗估計(jì)一樣,對(duì)于每一個(gè)任務(wù)不管用硬件還是軟件實(shí)現(xiàn),功耗估計(jì)都是非常重要。

軟件功耗和所用的處理器是密切相關(guān)的。通常它需要每一條指令或指令類的準(zhǔn)確信息。功耗估計(jì)可以在不同準(zhǔn)確度的級(jí)別上進(jìn)行;僅用軟件代碼長(zhǎng)度并假定所有指令的功耗相等;考慮指令的分類和指令序列;通過(guò)使用處理器的硬件模型和硬件模擬器來(lái)獲得指令序列的功耗估計(jì)。對(duì)每一個(gè)處理器,根據(jù)規(guī)定的功耗特性可以采用不同的估計(jì)方法。例如,對(duì)于處理器P1僅用代碼長(zhǎng)度估計(jì),可能要比P2用硬件模型估計(jì)得到更準(zhǔn)確的結(jié)果。

硬件功耗估計(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ò)程中的功耗與互連的類型密切相關(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ā)展而來(lái)的。在高級(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ù)沒(méi)有特別的方法??焖俚挠布O(shè)計(jì)給出了下限,系統(tǒng)級(jí)規(guī)范對(duì)執(zhí)行時(shí)間的要求則確定了上限。在供電電壓不變的情況下,快速電路通常需要更多的晶體管,產(chǎn)生了更大的開(kāi)關(guān)電容,從而消耗更多的能量。我們假定一個(gè)任務(wù)在硬件實(shí)現(xiàn)上表示為兩個(gè)極端的設(shè)計(jì):其中一個(gè)速度最快,消耗能量最多;另一個(gè)最慢,但消耗能量最少,如圖3所示。

3.2 綜合過(guò)程

在一個(gè)常用的高級(jí)綜合里,通常需要完成分配、調(diào)度和任務(wù)的綁定,在協(xié)同設(shè)計(jì)過(guò)程中也可采用相同的方法。分別將影響每一個(gè)執(zhí)行任務(wù)的功耗,高度將決定總的執(zhí)行時(shí)間,綁定則影響通信過(guò)程。

在這里,要注意切耗和能量的區(qū)別。考慮一個(gè)任務(wù)以不同的頻率f1和f2在一個(gè)處理上運(yùn)行,相應(yīng)的時(shí)鐘周期分別為T1和T2,所需的周期數(shù)都是N,如圖4。由于要做同樣的計(jì)算,完成該任務(wù)所需的能量與頻率無(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í)間,通過(guò)降低電壓可以在很大程度上降低功耗。因此,一個(gè)比較好的方法是讓處理器盡可能地一直處于工作的狀態(tài),因?yàn)樵黾訄?zhí)行時(shí)間比處理器空閑時(shí)關(guān)掉它更有利。

4 實(shí)驗(yàn)結(jié)果

從一個(gè)現(xiàn)有的系統(tǒng)綜合環(huán)境出發(fā),通過(guò)約束邏輯編程方法,們開(kāi)發(fā)了一個(gè)增強(qiáng)型環(huán)境來(lái)實(shí)現(xiàn)系統(tǒng)綜合。在我們的例子中,任務(wù)圖里有九個(gè)任務(wù)和八個(gè)過(guò)程。資源庫(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é)語(yǔ)

在進(jìn)行系統(tǒng)設(shè)計(jì)時(shí),如果在設(shè)計(jì)階段就盡可能地考慮功耗,就可以明顯地降低整個(gè)系統(tǒng)的功耗。上面實(shí)驗(yàn)結(jié)果也說(shuō)明了在較高級(jí)別上重視功耗的重要性,這對(duì)設(shè)計(jì)正在廣泛使用的系統(tǒng)具有非常重要的指導(dǎo)意義。

linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)


評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉