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