David?。耍幔簦遥椋悖搿。牵澹睿簦椋欤?/p>
摘要:在嵌入式應(yīng)用中,影響功耗指標(biāo)的因素很多。在進(jìn)行具體設(shè)計(jì)預(yù)算時(shí),了解這些因素將有助于設(shè)計(jì)出理想的低功耗系統(tǒng)。本文將考慮影響功耗的不同方面,同時(shí),這些知識(shí)對(duì)于某個(gè)特定項(xiàng)目的處理器選擇也有幫助。
關(guān)鍵詞:低功耗;嵌入式設(shè)計(jì);電源;休眠;處理器喚醒
任何一個(gè)嵌入式設(shè)計(jì)都是在對(duì)電源供電結(jié)構(gòu)進(jìn)行詳盡分析后才能完成的;同樣,對(duì)于恒定電源供電的有線系統(tǒng)也是如此。處理器和其周邊的硬件生態(tài)系統(tǒng)的消耗通常占電源的較大比例,因此,這就是所有的“重點(diǎn)”之所在。
在深入討論之前,我們先按次序討論一下術(shù)語。“能量”與做功的總量有關(guān),而“功率”是測量做功的速率(單位時(shí)間的能量)。電子學(xué)中,功耗=(系統(tǒng)元器件的電壓)×(流經(jīng)系統(tǒng)元器件的電流),能量=功率×?xí)r間。
因此,系統(tǒng)設(shè)計(jì)員通常關(guān)心總的能量消耗和峰值功耗。換句話說,使用的能量是從電池吸收的,但電池也需要提供足夠的瞬時(shí)能量以滿足峰值功率的要求。習(xí)慣上將集中討論功耗,然而,實(shí)際上也將論及系統(tǒng)中使用的能量和功率。
什么是“低功耗”
“低功耗”究竟指什么?從嵌入式觀點(diǎn)看,經(jīng)常將該術(shù)語同電池驅(qū)動(dòng)移動(dòng)設(shè)備聯(lián)系起來,但該術(shù)語實(shí)質(zhì)上也是相對(duì)的。從功率尺度的最低端應(yīng)用看,我們可以只簡單地討論手表電池的例子。然而,在另一個(gè)極端,為了避免額外的設(shè)計(jì)負(fù)擔(dān)和費(fèi)用(如熱同步、風(fēng)扇、調(diào)整器等),又需要構(gòu)想使功耗最小的“插入式”系統(tǒng)。
畢竟現(xiàn)今的很多設(shè)計(jì)系統(tǒng),諸如從汽車收音機(jī)到“插件箱”中的儀器板卡,都是根據(jù)交到OEM(原設(shè)備供應(yīng)商)的規(guī)格構(gòu)建的系統(tǒng)。為了確保銷售商之間的一致,這些規(guī)格經(jīng)常描述了嚴(yán)格的功率預(yù)算分配。關(guān)鍵點(diǎn)是,為了關(guān)注降低功耗,系統(tǒng)不一定非要用電池供電,或者非要“移動(dòng)”。
為了方便,可以將低功耗嵌入式系統(tǒng)分為三個(gè)不同類型。
第一類是在不使用時(shí)就關(guān)閉電源的系統(tǒng)。對(duì)于這類應(yīng)用,系統(tǒng)運(yùn)行時(shí)的低電流消耗駕馭著電池的壽命。這樣的應(yīng)用實(shí)例包括便攜式媒體播放器、GPS設(shè)備和數(shù)碼相機(jī),這些系統(tǒng)在工作狀態(tài)呈現(xiàn)出低功耗的特性,同時(shí)待機(jī)電流是“無關(guān)緊要”的,這是由于設(shè)備關(guān)閉時(shí)是不吸收電流的(如果使用了實(shí)時(shí)時(shí)鐘會(huì)有幾微安的電流)。通常根據(jù)不同的應(yīng)用,處理器在有效工作狀態(tài)時(shí)的電流從幾十到幾百毫安。
第二類中,將開機(jī)或完全關(guān)閉的系統(tǒng)改進(jìn)為開機(jī)或“待機(jī)模式”的系統(tǒng)。在待機(jī)狀態(tài),系統(tǒng)處于最低電流消耗狀態(tài),同時(shí)仍維持存儲(chǔ)區(qū)中的內(nèi)容。對(duì)于這樣的系統(tǒng),有效電流和待機(jī)電流消耗都很重要,此時(shí)有效電流的消耗與第一種情況相同,而待機(jī)電流通常則從數(shù)百微安到幾毫安。這種類型的典型產(chǎn)品如VOIP移動(dòng)電話和聲控設(shè)備。該類還包括這樣的情況,系統(tǒng)的某部分仍處于“監(jiān)控”狀態(tài),在轉(zhuǎn)換到全速處理狀態(tài)之前等待某事件的發(fā)生。
第三類由始終處于加電狀態(tài)的設(shè)備構(gòu)成。這里,功率要求很可能在次毫安范圍內(nèi),這就直接限制了可實(shí)現(xiàn)的處理性能。此類的應(yīng)用實(shí)例包括手表和一些便攜式或植入式醫(yī)療設(shè)備。有很多方法可以調(diào)整系統(tǒng)的功耗指標(biāo),以滿足應(yīng)用要求,包括:
·動(dòng)態(tài)改變頻率和電壓;
·了解處理器內(nèi)分離的供電范圍;
·分析代碼從而針對(duì)降低功耗做優(yōu)化;
·運(yùn)用處理器的多種供電模式;
·從系統(tǒng)級(jí)關(guān)注功耗的產(chǎn)生。
本文將集中討論最后兩種方法,參考文獻(xiàn)部分列出了其他幾個(gè)主題的詳細(xì)說明。
電源供電模式
許多應(yīng)用涉及相對(duì)于其處理的需求有明顯差別的工作模式??紤]一個(gè)用電池供電并帶有嵌入式處理器的傳感器。處理器的外設(shè)可能采集周圍環(huán)境的參數(shù)。在該模式下,不要求有計(jì)算功率,處理器可能要求突發(fā)讀入遙測數(shù)據(jù)的數(shù)據(jù)包。當(dāng)處理器讀取足夠數(shù)據(jù)并開始處理時(shí),則進(jìn)入“全速”工作模式,整個(gè)處理器就被喚醒,以最高的性能運(yùn)行。當(dāng)不需要傳感器數(shù)據(jù)也不需要處理時(shí),可提供超低功耗模式。
處理器要從各種各樣的掉電模式中喚醒,需要接收某種類型的喚醒事件。外部事件可以是外部激勵(lì),如標(biāo)志引腳翻轉(zhuǎn),或者內(nèi)部處理器活動(dòng),如DMA傳輸完成或定時(shí)器滿等。
不同處理器上實(shí)現(xiàn)的確定電源供電模式有很大差別,但處理平臺(tái)之間通常也有一些共性,例如“全速”工作模式;“睡眠”模式,為了使系統(tǒng)快速恢復(fù),即使處理器未使用的部分為省電處于無效,片上存儲(chǔ)器仍保持供電;以及“休眠”模式,此模式中,為了最大節(jié)省電源,片上存儲(chǔ)器也可以不供電。本文中,“待機(jī)模式”表示綜合的低功耗模式,這里的電流消耗和恢復(fù)到全速處理模式所需的時(shí)間需要進(jìn)行折中,也就是電流越低,恢復(fù)到全速工作的時(shí)間就越長。
為什么需要讓處理器定期進(jìn)入或退出待機(jī)模式呢?其實(shí)很簡單,就是為了減少能量消耗和延長電池壽命。在許多待機(jī)模式中,由于處理器仍然被供電,處理器可保留其所有的內(nèi)部狀態(tài)和存儲(chǔ)器內(nèi)容,但大大地減少了電流的吸收。此外,處理器喚醒需要占用幾毫秒時(shí)間,但這也比傳統(tǒng)的處理器從冷啟動(dòng)加載快得多。
休眠模式
“休眠”待機(jī)模式是特別有意思的,因?yàn)樗ㄟ^完全關(guān)閉處理器內(nèi)核電源,實(shí)現(xiàn)了最大的能量節(jié)省(與“待機(jī)綜合”下的其他模式不同)。當(dāng)處理器內(nèi)核的電源關(guān)閉后,不再維護(hù)處理器的內(nèi)部狀態(tài),因此,任何保存在內(nèi)部(存儲(chǔ)器內(nèi)容、寄存器內(nèi)容等)的關(guān)鍵信息,在關(guān)電前都必須提前寫入到非易失性存儲(chǔ)器設(shè)備中。然而,即使關(guān)閉了處理器內(nèi)核電源,休眠方式仍為使SDRAM保持“活躍”狀態(tài)提供了措施。在進(jìn)入休眠模式前,設(shè)置SDRAM進(jìn)入自刷新模式,并在喚醒后可以重新控制它,處理器允許將系統(tǒng)狀態(tài)存儲(chǔ)在易失性DRAM中,而不是非易失性Flash存儲(chǔ)器中,這樣,處理器在喚醒后就可以更快速自舉,否則,處理器還需要從非易失性存儲(chǔ)器重新載入程序代碼。
充分利用電源供電模式
現(xiàn)在考慮另一個(gè)具有代表性的情況,此時(shí)有不同的處理器供電模式,在功耗方面也有很大的差別。考慮一臺(tái)帶有輸入緩沖區(qū)的便攜式MP3播放器,將音頻數(shù)據(jù)解碼到SDRAM中的輸出緩沖區(qū),然后將處理器置為待機(jī)模式,直到又需要新的數(shù)據(jù)為止。
由于MP3解碼處理要求低,在不需要處理的間隔,處理器可以進(jìn)入休眠狀態(tài),比如,設(shè)備可能工作在“25%解碼,75%休眠”的情形,也就是說,此時(shí)處理器在這個(gè)25%的時(shí)間時(shí),其內(nèi)核吸收電流是30mA,而在75%的時(shí)間時(shí),處理器內(nèi)核的吸收電流僅有15mA。在解碼間隔,處理器盡可能快地在外部存儲(chǔ)器中構(gòu)建解碼的樣本,一旦達(dá)到了緩沖區(qū)期望的大小,處理器就進(jìn)入睡眠狀態(tài),直到需要更新數(shù)據(jù)緩沖區(qū)。
換句話說,如果通常進(jìn)行連續(xù)流MP3解碼,即75MHz,則可選擇以300MHz對(duì)在待機(jī)模式過程中收集的緩沖區(qū)數(shù)進(jìn)行解碼。這樣,處理器就在一個(gè)更高水平上運(yùn)行,但其運(yùn)行過程很短(在處理器又回到睡眠狀態(tài)前)。通