如今,降低總體系統(tǒng)功耗是設(shè)計(jì)便攜式手持電子設(shè)備的最關(guān)鍵因素之一。消費(fèi)者期望值的日益增長(zhǎng)也就要求便攜式設(shè)備必須延長(zhǎng)電池壽命并提高自身性能。對(duì)于便攜式系統(tǒng)設(shè)計(jì)人員和制造者來(lái)說(shuō),即使降低10mW 左右的功耗也是極其重要的。
如今,設(shè)計(jì)人員可以采用多種設(shè)計(jì)方法來(lái)大大降低總體系統(tǒng)功耗,如:
降低工作電壓
優(yōu)化系統(tǒng)和 CPU 時(shí)鐘頻率
消除上電過(guò)程中大電流消耗的尖脈沖
有效管理系統(tǒng)電池的工作
有效管理系統(tǒng)器件的操作模式
盡量減少總線活動(dòng)
降低總線電容
降低開(kāi)關(guān)噪聲
這些只是設(shè)計(jì)方法中可用來(lái)降低任意終端應(yīng)用的功耗的幾個(gè)例子。
其中最重要的節(jié)電技法之一是管理系統(tǒng)中器件操作模式的能力。如今,許多制造商提供的器件都具有節(jié)電模式,即暫時(shí)將器件從其正常操作模式掛起。這些器件如果在特定時(shí)長(zhǎng)內(nèi)不活動(dòng),可以選擇關(guān)閉電源或轉(zhuǎn)至非工作狀態(tài)。如今的許多微處理器和微控制器都具備這種功能。通過(guò)利用和管理 PCB 上功耗大戶(hù)(如處理器)的操作模式,可以顯著降低系統(tǒng)的總體功耗。
降低功耗不僅涉及正確管理器件的操作模式,還涉及到設(shè)計(jì)能利用器件可用操作模式的系統(tǒng)。卸載微處理器的操作任務(wù)可使微處理器在較長(zhǎng)時(shí)間內(nèi)保持低功耗狀態(tài)。降低系統(tǒng)功耗的一種方法是讓低功耗可編程邏輯器件(如 CPLD)管理這些卸載的操作。本文講述這種方法以及可使處理器保持較長(zhǎng)低功耗狀態(tài)的操作類(lèi)型,以期降低系統(tǒng)功耗。
微處理器操作模式
在某些便攜式應(yīng)用中,CPU 功耗可達(dá)總體系統(tǒng)功耗的 30%。圖 1 所示為無(wú)線上網(wǎng)機(jī)應(yīng)用中系統(tǒng)組件的典型功耗。
在正常工作狀態(tài)下,微處理器的功耗范圍可達(dá) 720μW 到 1W。微處理器的操作模式包括正常、運(yùn)行、睡眠、掛起、待機(jī)、停止和空閑等,因器件和制造商而異。各操作模式之間的功耗變化范圍可達(dá) 230mW。某些低功耗微處理器在正常操作模式下的功耗可少至 250mW。
示例
注:所提供的微處理器參考僅為示例,用來(lái)說(shuō)明不同操作模式下的功耗。鑒于尚無(wú)確定功耗的標(biāo)準(zhǔn)方法,本文檔中的數(shù)據(jù)以制造商提供的數(shù)據(jù)為依據(jù),僅供參考。有關(guān)詳情,請(qǐng)見(jiàn)“參考文獻(xiàn)”。
下面舉例說(shuō)明微處理器在不同操作模式下的功耗差異。圖 2 所示為 Intel StrongARM SA-1110 微處理器在不同操作模式下的功耗。圖 2 所示功耗數(shù)字的確定條件是:工作頻率 206 MHz,標(biāo)稱(chēng)外部供電電壓 3.3 V,內(nèi)部供電電壓 1.8 V。
StrongARM 處理器的操作模式包括正常、空閑和睡眠。在正常操作模式下,CPU 滿(mǎn)負(fù)荷運(yùn)行,器件完全供電并接收有效時(shí)鐘。在空閑模式下,盡管仍然為 CPU 及其他組件供電,但對(duì) CPU 的所有時(shí)鐘輸入都停止,僅保持對(duì)外設(shè)的時(shí)鐘輸入為有效。在睡眠模式下,停止向 CPU 及外設(shè)組件供電。在睡眠模式下,除實(shí)時(shí)時(shí)鐘、中斷控制器、電源管理器和通用 I/O 外,所有其他功能均停止。
操作模式控制
帶節(jié)電模式的微處理器具有一個(gè)板上電源管理控制器。操作模式允許操作系統(tǒng)或軟件應(yīng)用程序?qū)?CPU 暫時(shí)掛起。微處理器執(zhí)行一系列進(jìn)入節(jié)電狀態(tài)的指令。進(jìn)入斷電模式后,微處理器的若干元件仍可響應(yīng)系統(tǒng)中斷。
例如,StrongARM SA-1110 處理器的空閑模式節(jié)電效果顯著,但仍保持對(duì) LCD、存儲(chǔ)器和 I/O 控制器等模塊供電。即使對(duì) CPU 的時(shí)鐘輸入已經(jīng)停止,外設(shè)模塊仍處于活動(dòng)狀態(tài)??臻e模式仍會(huì)消耗 100mW 左右的可觀功率。處理器進(jìn)入睡眠模式后,僅為活動(dòng)模塊供電,使其響應(yīng)中斷和喚醒信號(hào)請(qǐng)求。睡眠模式比空閑模式功耗更小,其所耗電流可低于 100mA。
插入響應(yīng)和處理系統(tǒng)中斷的外部器件可以減少處理器的操作任務(wù)。通過(guò)讓微處理器保持盡可能長(zhǎng)的斷電模式,即可顯著降低功耗。
必須發(fā)生某一事件才能使微處理器從斷電模式返回到正常操作模式。以下事件可喚醒處理器,但因制造商、器件和當(dāng)前操作模式而異:
硬件復(fù)位
系統(tǒng)中斷
通用 I/O 中斷
實(shí)時(shí)時(shí)鐘中斷
OS 計(jì)時(shí)器中斷
外設(shè)中斷
外部喚醒信號(hào)
一旦識(shí)別出已啟動(dòng)的喚醒事件,微處理器就會(huì)開(kāi)始執(zhí)行從斷電狀態(tài)喚醒的一系列步驟。圖 3 所示為處理器從斷電模式蘇醒的一般流程。
CPLD 設(shè)計(jì)
操作模式是在微處理器空閑特定時(shí)長(zhǎng)后啟用。微處理器在接收到已啟動(dòng)的中斷時(shí)會(huì)響應(yīng)該中斷請(qǐng)求。處理器在響應(yīng)中斷請(qǐng)求時(shí)會(huì)以運(yùn)行或正常模式操作。減少對(duì)處理器的中斷請(qǐng)求數(shù)可延長(zhǎng)處理器處于節(jié)電狀態(tài)的時(shí)間。理想情況下,如果沒(méi)有任何需要執(zhí)行的指令,微處理器就會(huì)永遠(yuǎn)保持節(jié)電模式。插入響應(yīng)和處理系統(tǒng)中斷的外部器件可以減少處理器的操作任務(wù)。通過(guò)讓微處理器保持盡可能長(zhǎng)的斷電模式,可顯著降低功耗。
使用低功耗可編程邏輯器件來(lái)輔助微處理器可以降低系統(tǒng)功耗并延長(zhǎng)系統(tǒng)電池壽命。業(yè)界最新的 CPLD 產(chǎn)品可同時(shí)實(shí)現(xiàn)高性能和低功耗。典型低功耗 CPLD 的待機(jī)電流小于 100μA。圖 4 所示為用可再編程 CPLD 作為對(duì)輸入系統(tǒng)中斷的接口。利用外部數(shù)據(jù)采集器件卸載需要微處理器處理的中斷請(qǐng)求可降低總體系統(tǒng)功耗。
系統(tǒng)中斷
根據(jù)處理器的最終應(yīng)用,有多種外部器件可以中斷處理器。這些中斷信號(hào)包括數(shù)據(jù)采集和數(shù)據(jù)處理兩種請(qǐng)求?,F(xiàn)在,通過(guò)分離對(duì)微處理器的數(shù)據(jù)處理請(qǐng)求,可以由外部 CPLD 來(lái)處理數(shù)據(jù)采集請(qǐng)求。利用 CPLD 來(lái)處理數(shù)據(jù)采集中斷可以卸載對(duì)微處理器的中斷請(qǐng)求,從而降低功耗。
是否可將數(shù)據(jù)采集中斷類(lèi)型劃歸 CPLD 取決于最終應(yīng)用。可以將要求對(duì)輸入數(shù)據(jù)予以響應(yīng)的外設(shè)或輸入數(shù)據(jù)劃為數(shù)據(jù)采集中斷請(qǐng)求類(lèi)型。數(shù)據(jù)采集中斷包括:
存儲(chǔ)器存取中斷
I2C、UART、SPI 和 ISA 等通信接口
通用 I/O 中斷
LCD 接口中斷
這并非可由 CPLD 處理的中斷的完整列表,只是為系統(tǒng)設(shè)計(jì)提供一個(gè)起點(diǎn)。
操作流程
圖 5 所示為 CPLD 設(shè)計(jì)的主要操作流程。CPLD 一旦識(shí)別出有效的外部中斷,就會(huì)自我判斷是否具有處理該中斷的功能。CPLD 處理該中斷之后,會(huì)向處理器發(fā)出一個(gè)中斷申請(qǐng),請(qǐng)求其進(jìn)行所要求的數(shù)據(jù)處理。CPLD 如果不能處理該中斷,則將其傳遞給處理器。CPLD 還負(fù)責(zé)監(jiān)測(cè)處理器的操作狀態(tài)。
功能
低功耗 CPLD 設(shè)計(jì)由處理中斷請(qǐng)求的中斷接口和控制器、處理中斷的功能以及處理器接口組成。下面分別詳述 CPLD 的各主要功能:
系統(tǒng)器件的中斷接口
中斷控制器
用于中斷處理的外設(shè)接口
微處理器中斷接口
微處理器操作模式接口
中斷接口
CPLD 的中斷接口接收經(jīng)過(guò)微處理器識(shí)別的所有外部器件的中斷請(qǐng)求。該中斷接口判斷 CPLD 是否有能力處理相應(yīng)的中斷請(qǐng)求。CPLD 對(duì)請(qǐng)求數(shù)據(jù)接收和存儲(chǔ)功能的數(shù)據(jù)采集中斷進(jìn)行處理。CPLD 如果不能處理該中斷,則將其傳遞給微處理器。
CPLD 的中斷接口為所有中斷源提供屏蔽功能,并且具有判斷中斷源的能力??删幊踢壿嬆軌蜢`活地改變觸發(fā)模式,包括高低電平敏感觸發(fā)模式和升降沿敏感觸發(fā)模式。CPLD 的中斷控制寄存器與微處理器中的寄存器相似。
中斷控制器
CPLD 的中斷控制器模擬系統(tǒng)微處理器中的功能。該中斷控制器判斷數(shù)據(jù)采集中斷來(lái)自哪個(gè)器件,然后啟動(dòng)中斷處理。CPLD 處理本該由微處理器處理的數(shù)據(jù)采集中斷請(qǐng)求。
中斷控制器啟動(dòng)處理請(qǐng)求的操作。由 CPLD 從遠(yuǎn)程器件接收數(shù)據(jù)的應(yīng)用就是這樣的例子。該器件請(qǐng)求將所傳送的數(shù)據(jù)寫(xiě)入存儲(chǔ)器。CPLD 的中斷控制器識(shí)別出有效中斷,然后啟動(dòng)存儲(chǔ)器接口來(lái)解譯數(shù)據(jù)。
外設(shè)接口
CPLD 提供處理中斷請(qǐng)求所需的系統(tǒng)器件接口。所需器件接口取決于最終應(yīng)用。如果外部器件向 CPLD 發(fā)出中斷請(qǐng)求,要求對(duì)存儲(chǔ)元件進(jìn)行數(shù)據(jù)讀寫(xiě)操作,則 CPLD 設(shè)計(jì)中就需具備該存儲(chǔ)器的接口。所需接口類(lèi)型可以為存儲(chǔ)器接口、LCD 接口以及 PCI、UART、SPI 和 ISA 等通信接口。
微處理器中斷接口
像請(qǐng)求處理器提供服務(wù)的所有外部器件一樣,CPLD 也具有向微處理器發(fā)出中斷的功能。CPLD 必須能夠在完成數(shù)據(jù)采集操作之后向微處理器發(fā)出中斷。設(shè)計(jì)人員可以為來(lái)自 CPLD 的中斷請(qǐng)求設(shè)置優(yōu)先級(jí),并可選擇該中斷是否喚醒處于斷電狀態(tài)的處理器。
微處理器操作模式接口
CPLD 是否能識(shí)別處理器的操作狀態(tài)取決于系統(tǒng)微處理器。有些微處理器提供表示當(dāng)前操作模式的外部引腳。CPLD 可能會(huì)識(shí)別出處理器的當(dāng)前操作狀態(tài),并且確定是否向處理器發(fā)出執(zhí)行等待中斷的請(qǐng)求,這取決于 CPLD 和微處理器的設(shè)計(jì)。例如,如果 CPLD 接收到低優(yōu)先級(jí)中斷,而處理器無(wú)需從低功耗狀態(tài)轉(zhuǎn)至其他狀態(tài),則 CPLD 可以創(chuàng)建一個(gè)寄存器以指示將中斷掛起。然后,當(dāng)處理器蘇醒時(shí),可由微處理器讀取掛起中斷的寄存器。
優(yōu)點(diǎn)
圖 6 和圖 7 所示為可在一種典型電池供電器件中實(shí)現(xiàn)的節(jié)電效果;其中圖 7 所示為使用先進(jìn)的低功耗 CPLD,圖 6 所示為使用獨(dú)立的微處理器設(shè)計(jì)。與通過(guò)延長(zhǎng)微處理器低功耗模式所實(shí)現(xiàn)的節(jié)電效果相比,CPLD 的功耗要求微不足道。典型低功耗 CPLD 的待機(jī)電流約為 100μA。操作功耗取決于應(yīng)用和時(shí)鐘頻率。對(duì)于充滿(mǎn) 16 位計(jì)數(shù)器和 50MHz 時(shí)鐘的 64 宏單元的 CPLD 來(lái)說(shuō),ICC 約為 10mA。請(qǐng)注意,所實(shí)現(xiàn)的實(shí)際節(jié)電效果取決于系統(tǒng)設(shè)計(jì),包括微處理器類(lèi)型和 CPLD 設(shè)計(jì)。
隨著用 CPLD 獲得節(jié)電效果,中斷響應(yīng)時(shí)間也縮短了。外設(shè)不必再等待微處理器從節(jié)電狀態(tài)蘇醒的延遲時(shí)間??梢詫?shí)現(xiàn)的其他設(shè)計(jì)節(jié)省項(xiàng)包括:
減少對(duì)處理器的中斷請(qǐng)求數(shù)
減少一定時(shí)長(zhǎng)上的處理器喚醒周期數(shù)
在不影響吞吐量的情況下降低時(shí)鐘頻率
進(jìn)行數(shù)據(jù)處理操作時(shí)以較低頻率運(yùn)行處理器
進(jìn)行數(shù)據(jù)采集操作時(shí)以較高頻率運(yùn)行 CPLD
結(jié)論
設(shè)計(jì)功耗敏感型應(yīng)用不僅涉及使用軟件進(jìn)行電源管理,還涉及運(yùn)用硬件設(shè)計(jì)技巧。通過(guò)設(shè)計(jì)低功耗 CPLD 來(lái)延長(zhǎng)微處理器的低功耗操作狀態(tài),可以顯著降低系統(tǒng)功耗。當(dāng)今市場(chǎng)上的最新 CPLD 可以為任何最終應(yīng)用提供低功耗和高速度的靈活組合應(yīng)用。
參考文獻(xiàn)
《Intel StrongARM SA-1110 微處理器開(kāi)發(fā)手冊(cè)》,2000 年 6 月。
《摩托羅拉半導(dǎo)體應(yīng)用指南》之“DragonBall 電源管理”,摩托羅拉公司,1998 年。
《Geode GX1 處理器系列低功耗集成 x86 解決方案》,National Semiconductor 公司,2000 年 10 月。
《微處理器報(bào)告》,1999 年 9 月。
《第 27 期微處理器/控制器年度報(bào)告》之“EDN 訪問(wèn)”,2000 年 9 月。