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