




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
嵌入式系統(tǒng)的低功耗設(shè)計(jì)內(nèi)容低功耗設(shè)計(jì)概述功耗控制技術(shù)Moblin的功耗控制技術(shù)8.1低功耗設(shè)計(jì)概述嵌入式低功耗的重要性嵌入式系統(tǒng)的功耗組成CMOS電路的基本功耗模型8.1.1嵌入式低功耗的重要性HotPlateNuclearReactor386486PentiumPentiumProPentium2Pentium3Pentium4(Prescott)Pentium4為什么功耗問題這么重要?電池容量不遵循摩爾定律增長(zhǎng)Processor(MIPS)HardDisk(capacity)Memory(capacity)Battery(energystored)012345616x14x12x10x8x6x4x2x1xImprovement
(comparedtoyear0)Time(years)8.1.2嵌入式系統(tǒng)的功耗組成CPU不再是唯一的功耗的組成處理器、無(wú)線通信、屏幕是嵌入式系統(tǒng)的3個(gè)主要功耗部件8.1.3CMOS電路的基本功耗模型分為靜態(tài)功耗和動(dòng)態(tài)功耗——回顧第3章關(guān)于處理器的知識(shí),實(shí)際上這一點(diǎn)對(duì)所有CMOS電路都適用。靜態(tài)功耗曾經(jīng)微不足道,但現(xiàn)在隨著工藝制程(130nm、90nm、60nm)向深納米發(fā)展,問題已經(jīng)變得非常突出。動(dòng)態(tài)功耗=aCFV2a為與電路有關(guān)的一個(gè)調(diào)整參數(shù);C為一個(gè)時(shí)鐘周期內(nèi)的總柵電容,對(duì)于一個(gè)處理器來(lái)說它是固定的。V最關(guān)鍵,因?yàn)閯?dòng)態(tài)功耗與其平方成正比。此外隨著工藝制程(130nm、90nm、60nm)的發(fā)展,工作電壓要求越來(lái)越低。F為時(shí)鐘頻率。V與F的制約關(guān)系V越高,可以支持的F越高8.2功耗控制技術(shù)功耗控制可以從不同層次來(lái)實(shí)現(xiàn),根據(jù)實(shí)現(xiàn)效果,從高到低可分為:系統(tǒng)設(shè)計(jì)軟件算法設(shè)計(jì)硬件的設(shè)計(jì)8.2.1系統(tǒng)設(shè)計(jì)的低功耗考慮待機(jī)模式的設(shè)計(jì)卸載計(jì)算密集任務(wù)到專用硬件動(dòng)態(tài)電源管理(DynamicPowerManagement)動(dòng)態(tài)電壓/頻率調(diào)整(DynamicVoltage/FrequencyScaling)時(shí)鐘門控(ClockGating)技術(shù)8.2.1.1待機(jī)模式的設(shè)計(jì)對(duì)于大多數(shù)家電希望能用遙控器控制開關(guān)所以待機(jī)時(shí),不能完全斷電。常用的實(shí)現(xiàn)方法包括兩種:偽待機(jī)方案待機(jī)時(shí)就是程序不運(yùn)行,關(guān)閉顯示待機(jī)功耗很大備份MCU方案用一個(gè)非常低功耗的MCU來(lái)負(fù)責(zé)遙控器的響應(yīng),并且控制主CPU的電源待機(jī)時(shí)主CPU完全斷電8.2.1.2卸載計(jì)算密集任務(wù)到專用硬件通過把復(fù)雜的計(jì)算卸載(offloading)到專門的硬件上,放低對(duì)主處理器的主頻要求比如一視頻播放器里的YUV→RGB轉(zhuǎn)換環(huán)節(jié)如果用CPU來(lái)做,對(duì)于720p的可能要用掉一個(gè)嵌入式處理器(400Mhz左右)的全部計(jì)算能力,功耗10瓦左右。但是如果用一個(gè)專門的硬件電路來(lái)做(并行的多個(gè)乘加單元),可能10Mhz的工作頻率就夠了,也許幾十個(gè)mW功耗就夠了采用具有專門對(duì)你的計(jì)算密集應(yīng)用有專門加速模塊的SoC比如TIOMAP2420里的Imaging/VideoAccelerator模塊如果價(jià)格不敏感,可以直接利用FPGA設(shè)計(jì)加速模塊8.2.1.3動(dòng)態(tài)電源管理(DynamicPowerManagement)很多處理器或者外設(shè)支持多種不同的睡眠模式一般是通過關(guān)斷部分電路的電源實(shí)現(xiàn)睡眠不同的睡眠模式下,關(guān)斷的范圍不一樣,從而從睡眠恢復(fù)所需的時(shí)間也不一樣盡量讓系統(tǒng)在沒有活動(dòng)任務(wù)時(shí)進(jìn)入盡可能深的睡眠模式需要操作系統(tǒng)和應(yīng)用軟件的配合才能實(shí)現(xiàn)模式切換的頻度的折中從睡眠模式恢復(fù)到正常狀態(tài)的這個(gè)過程往往比正常模式還要費(fèi)電比如硬盤從靜止→啟動(dòng)到規(guī)定的轉(zhuǎn)速過于激進(jìn)的切換,可能導(dǎo)致頻繁的恢復(fù),所以反而更耗電過于保守的切換,節(jié)電效果也不好8.2.1.3動(dòng)態(tài)電源管理處理器功耗管理策略處理器的運(yùn)行方式可以用一個(gè)電源狀態(tài)機(jī)來(lái)描述:8.2.1.3動(dòng)態(tài)電源管理處理器功耗管理策略(續(xù))
處理器的電源(即功耗)有兩種不同類型的管理策略:一種是靜態(tài)電源管理機(jī)制。它由用戶調(diào)用,不依賴于處理器活動(dòng)。一個(gè)靜態(tài)機(jī)制的例子是通過節(jié)電模式來(lái)節(jié)省電源。這種方式用一條指令來(lái)進(jìn)入,通過接收一個(gè)中斷或其他事件來(lái)結(jié)束。另一種是動(dòng)態(tài)電源管理機(jī)制。它是基于處理器的動(dòng)態(tài)活動(dòng)來(lái)對(duì)功耗來(lái)進(jìn)行控制的。例如,當(dāng)指令運(yùn)行時(shí),如果處理器某些部分的邏輯不需運(yùn)行,那么處理器也許會(huì)關(guān)掉這些特定部分。8.2.1.3動(dòng)態(tài)電源管理APM、ACPI標(biāo)準(zhǔn)實(shí)現(xiàn)嵌入式計(jì)算系統(tǒng)的低功耗,需要硬件和操作系統(tǒng)協(xié)同地工作。為協(xié)調(diào)操作系統(tǒng)和硬件對(duì)功耗和電源的管理,需要為兩者制定一套統(tǒng)一的接口規(guī)范。最早的規(guī)范是APM(Advancedpowermanagement,高級(jí)功耗管理),它是由Intel和微軟聯(lián)手發(fā)布的一組API,使運(yùn)行于與IBM兼容的個(gè)人計(jì)算機(jī)上的操作系統(tǒng)能與BIOS協(xié)同實(shí)現(xiàn)功耗管理。目前的規(guī)范是ACPI(AdvancedConfigurationandPowerInterface,高級(jí)配置和電源接口),它是從APM發(fā)展過來(lái)的。ACPI是一個(gè)電源管理服務(wù)的開放工業(yè)標(biāo)準(zhǔn)。它與多種操作系統(tǒng)兼容,最初目標(biāo)是針對(duì)個(gè)人計(jì)算機(jī)的。ACPI提供了一些電源管理的基本工具并抽象出硬件層。操作系統(tǒng)有自己的電源管理模型,它通過ACPI向硬件發(fā)送需求控制,然后觀察硬件狀態(tài)將其作為電源管理的輸入,從而實(shí)現(xiàn)對(duì)計(jì)算機(jī)和外圍設(shè)備的電源的控制。8.2.1.3動(dòng)態(tài)電源管理APM、ACPI標(biāo)準(zhǔn)ACPI在整個(gè)計(jì)算機(jī)系統(tǒng)中結(jié)構(gòu)目前一些流行操作系統(tǒng)和軟件平臺(tái),如WindowsXP、Moblin等,都是支持ACPI。8.2.1.3動(dòng)態(tài)電源管理操作系統(tǒng)支持的常見低功耗狀態(tài)當(dāng)任務(wù)空閑(或稱處于非活躍狀態(tài))時(shí),計(jì)算機(jī)系統(tǒng)可通過進(jìn)入各種低功耗的工作模式的方式來(lái)節(jié)能,這些低功耗的工作模式有時(shí)又統(tǒng)稱為“睡眠”模式。系統(tǒng)的這些低功耗工作模式,介于系統(tǒng)完全啟動(dòng)和完全關(guān)閉狀態(tài)之間,擁有多種形式,每種形式擁有自己的特點(diǎn),能滿足不同角度的用戶需求。這些工作模式包括:待機(jī)(Standby)系統(tǒng)處于“待機(jī)(Standby)”模式時(shí),將切斷所用硬件組件的電源,從而減少計(jì)算機(jī)的電源消耗。“待機(jī)”可切斷外圍設(shè)備、顯示器甚至硬盤驅(qū)動(dòng)器的電源,但會(huì)保留計(jì)算機(jī)內(nèi)存的電源,以不至于丟失工作數(shù)據(jù)。8.2.1.3動(dòng)態(tài)電源管理操作系統(tǒng)支持的常見低功耗狀態(tài)待機(jī)(Standby)(續(xù))待機(jī)模式的主要優(yōu)點(diǎn)在于恢復(fù)時(shí)間短,只需數(shù)秒時(shí)間系統(tǒng)就可恢復(fù)到之前的狀態(tài)。缺點(diǎn)在于待機(jī)模式仍需要對(duì)內(nèi)存供電。這樣內(nèi)存內(nèi)容將不會(huì)被保存到文件夾中,因而也就不會(huì)因?yàn)閮?nèi)存重新加載而影響運(yùn)行速度。但是,如果在該模式下發(fā)生電源中斷,所有未保存的內(nèi)存內(nèi)容都將丟失。因此,待機(jī)又稱為掛起到內(nèi)存(SuspendtoRAM,簡(jiǎn)稱STR)。處于待機(jī)狀態(tài)的系統(tǒng),除硬盤外,其他設(shè)備還是處于加電等待狀態(tài)(也就是說喚醒時(shí)無(wú)須重新加電,通俗地說就是原地待命),所以電源、處理器、顯卡等設(shè)備的風(fēng)扇還是處于工作中,鍵盤指示燈也是亮著的。我們可以通過按鍵盤任意鍵或動(dòng)一下鼠標(biāo)來(lái)喚醒電腦,這時(shí)硬盤就會(huì)重新加電并啟動(dòng),然后和內(nèi)存、處理器等設(shè)備交換數(shù)據(jù),從而完成返回到原來(lái)工作模式的任務(wù)。8.2.1.3動(dòng)態(tài)電源管理操作系統(tǒng)支持的常見低功耗狀態(tài)休眠(Hibernate)系統(tǒng)處于“休眠(Hibernate)”模式時(shí),將保存運(yùn)行狀態(tài)的一份映像到外部存儲(chǔ)器中,然后關(guān)閉計(jì)算機(jī)電源。這樣重啟電源時(shí),運(yùn)行就會(huì)恢復(fù)到按原來(lái)離開時(shí)的樣子,如文件和文檔就會(huì)按原來(lái)離開時(shí)的樣子在桌面上打開。休眠模式比待機(jī)模式的脫機(jī)程度更深,因此有助于節(jié)省更多的電量,但重啟時(shí)間更長(zhǎng)。此外,休眠模式還具備更高的安全性。這是因?yàn)樵撃J讲粌H會(huì)像睡眠模式那樣關(guān)閉對(duì)外設(shè)和硬盤的供電,而且還會(huì)切斷對(duì)RAM內(nèi)存芯片的供電。因此,又稱為掛起到硬盤(SuspendtoDisk,簡(jiǎn)稱STD)。8.2.1.3動(dòng)態(tài)電源管理操作系統(tǒng)支持的常見低功耗狀態(tài)休眠(Hibernate)(續(xù))由于休眠模式會(huì)在關(guān)閉電源之前,將內(nèi)存中的所有數(shù)據(jù)保存至(寫入)外部存儲(chǔ)器(一般是硬盤)上的參考文件中。退出休眠模式時(shí),系統(tǒng)將恢復(fù)(讀?。┰撐募?,并將相應(yīng)的數(shù)據(jù)重新加載到內(nèi)存中。這樣,系統(tǒng)就恢復(fù)到了之前的工作模式。由于休眠模式需要保存內(nèi)存數(shù)據(jù),因此與睡眠模式相比,該模式的恢復(fù)(喚醒)時(shí)間要更長(zhǎng)。這種模式的優(yōu)勢(shì)在于其完全不耗電,因此不怕休眠后供電異常,但代價(jià)是需要一塊和物理內(nèi)存一樣大小的硬盤空間。而這種模式的恢復(fù)速度較待機(jī)模式慢。休眠狀態(tài)的計(jì)算機(jī)系統(tǒng)幾乎和通常關(guān)機(jī)一樣安靜,用戶還可以完全切斷電源,而內(nèi)存的數(shù)據(jù)(即運(yùn)行狀態(tài))不會(huì)由于斷電而丟失。與待機(jī)相比,休眠一般難以通過外部設(shè)備來(lái)喚醒的,它需要和正常開機(jī)一樣啟動(dòng)系統(tǒng);不過和開機(jī)相比,休眠后啟動(dòng)系統(tǒng)無(wú)需一個(gè)一個(gè)進(jìn)程地來(lái)啟動(dòng),只須要將硬盤中的內(nèi)存鏡像讀取到內(nèi)存中即可,因此速度較開機(jī)還是快得多。8.2.1.3動(dòng)態(tài)電源管理操作系統(tǒng)支持的常見低功耗狀態(tài)睡眠(Sleep)“睡眠(Sleep)”模式結(jié)合了待機(jī)和休眠的所有優(yōu)點(diǎn)。將系統(tǒng)切換到睡眠狀態(tài)后,系統(tǒng)會(huì)將內(nèi)存中的數(shù)據(jù)全部轉(zhuǎn)存到硬盤上的休眠文件中,然后關(guān)閉除了內(nèi)存外所有設(shè)備的供電,讓內(nèi)存中的數(shù)據(jù)依然維持著。這樣,當(dāng)用戶想要恢復(fù)的時(shí)候,如果在睡眠過程中供電沒有發(fā)生過異常,就可以直接從內(nèi)存中的數(shù)據(jù)恢復(fù),速度很快;但如果睡眠過程中供電異常,內(nèi)存中的數(shù)據(jù)已經(jīng)丟失了,還可以從硬盤上恢復(fù),只是速度會(huì)慢一點(diǎn)。不過無(wú)論如何,這種模式都不會(huì)導(dǎo)致數(shù)據(jù)丟失。此外,睡眠模式也不是一直不變地持續(xù)下去的,如果系統(tǒng)進(jìn)入睡眠模式一段時(shí)間后沒有被喚醒,那么還會(huì)自動(dòng)被轉(zhuǎn)入休眠狀態(tài),并關(guān)閉對(duì)內(nèi)存的供電,進(jìn)一步節(jié)約能耗。8.2.1.3動(dòng)態(tài)電源管理操作系統(tǒng)支持的常見低功耗狀態(tài)實(shí)現(xiàn)這些低功耗狀態(tài)節(jié)能,一方面需要操作系統(tǒng)的支持,另一方面也要求硬件提供相應(yīng)的支持,如支持高級(jí)配置和電源接口(ACPI),這樣的協(xié)同才能實(shí)現(xiàn)上述功能。當(dāng)空閑時(shí)間(又稱非活躍時(shí)間)達(dá)到指定長(zhǎng)度,或者檢測(cè)出電池電量不足時(shí),操作系統(tǒng)可自動(dòng)將計(jì)算機(jī)系統(tǒng)置于各種相應(yīng)的低功耗狀態(tài),從而達(dá)到整個(gè)系統(tǒng)節(jié)能的目的。8.2.1.4動(dòng)態(tài)電壓/頻率調(diào)整(DynamicVoltage/FrequencyScaling)某些新的CPU可以讓軟件動(dòng)態(tài)的改變工作電壓和頻率通常兩者按一定比例同步的修改,電壓上升,可以運(yùn)行的最高頻率上升某些時(shí)候CPU上執(zhí)行的任務(wù)并不一定要求很快完成比如在Windows事件循環(huán)中idle階段的一些處理此時(shí)可以將CPU頻率改慢,同時(shí)CPU電壓改低→兩者都對(duì)降低功耗有貢獻(xiàn)8.2.1.4動(dòng)態(tài)電壓/頻率調(diào)整動(dòng)態(tài)電壓/頻率調(diào)整技術(shù)實(shí)例:SpeedStep、EIST、C&Q技術(shù)SpeedStep是由Intel公司推出的,對(duì)IntelCPU進(jìn)行功耗控制的一項(xiàng)技術(shù)。后來(lái)Intel發(fā)展了該技術(shù),現(xiàn)在一般統(tǒng)稱為EIST(EnhancedIntelSpeedStepTechnology,增強(qiáng)型智能變頻)。此技術(shù)最早用在IntelPentium3-M處理器上,現(xiàn)在IntelPentium46xx、PentiumM、PentiumD、酷睿(Core)、Atom等多種系列上都采用了此技術(shù)。此技術(shù)的基本原理是通過調(diào)整處理器的電壓和頻率,來(lái)減少其功耗和發(fā)熱,當(dāng)然隨著電壓和頻率的降低,處理器的處理速度也會(huì)隨之有所降低。采用此技術(shù)的系統(tǒng),不僅更加節(jié)能,而且不需要安裝大功率散熱器來(lái)散熱,也不用擔(dān)心長(zhǎng)時(shí)間使用因溫度過高導(dǎo)致電腦不穩(wěn)定。8.2.1.4動(dòng)態(tài)電壓/頻率調(diào)整動(dòng)態(tài)電壓/頻率調(diào)整技術(shù)實(shí)例:SpeedStep、EIST、C&Q技術(shù)對(duì)于AMD處理器,該公司推出了兩種與EIST類似的CPU節(jié)流技術(shù)。一個(gè)是C&Q(Cool'n'Quiet)技術(shù),俗稱“涼又靜”。該技術(shù)用在了它的桌面和服務(wù)器處理器生產(chǎn)線上。其目標(biāo)不是去延長(zhǎng)電池壽命,因?yàn)樗]有用在AMD移動(dòng)處理器上,而是為了產(chǎn)生少的熱量。當(dāng)處理器的任務(wù)不是很重時(shí),該技術(shù)會(huì)根據(jù)處理器的任務(wù)量的多少來(lái)調(diào)用和關(guān)閉一些晶體管,這樣可減少散熱需求,并據(jù)此將系統(tǒng)風(fēng)扇逐漸下降到較低速度,從而產(chǎn)生更涼爽、更安靜的操作,這恰好是該項(xiàng)技術(shù)的名字來(lái)由。8.2.1.4動(dòng)態(tài)電壓/頻率調(diào)整動(dòng)態(tài)電壓/頻率調(diào)整技術(shù)實(shí)例:SpeedStep、EIST、C&Q技術(shù)同樣,要實(shí)現(xiàn)C&Q功能,系統(tǒng)必須滿足以下條件:支持C&Q的處理器、支持C&Q的主板和相應(yīng)的BIOS、適當(dāng)?shù)腂IOS設(shè)置、操作系統(tǒng)的支持和正確的系統(tǒng)設(shè)置。另一種CPU節(jié)流(CPUthrottling)技術(shù)是AMDPowerNow。該技術(shù)主要用在移動(dòng)處理器上,而在桌面系統(tǒng)上也能找到一些支持的CPU,如AMDK6-2+。該技術(shù)以每秒30次的頻率“偵察”處理器的負(fù)荷情況,根據(jù)實(shí)際情況動(dòng)態(tài)更改工作頻率和電壓,從而達(dá)到降低發(fā)熱和功耗的目的。8.2.1.5時(shí)鐘門控(ClockGating)技術(shù)時(shí)鐘門控技術(shù)是通過另一種途徑來(lái)實(shí)現(xiàn)節(jié)能的,它通過關(guān)閉和開啟相關(guān)模塊的時(shí)鐘來(lái)實(shí)現(xiàn)功耗控制的。此技術(shù)最早在諸如OMAP3之類的手機(jī)傳統(tǒng)芯片家族中應(yīng)用,而Intel從Pentium4處理器也開始采用它來(lái)實(shí)現(xiàn)節(jié)能。采用時(shí)鐘門控技術(shù),如果在當(dāng)前的時(shí)鐘周期內(nèi),系統(tǒng)沒有用到某些邏輯模塊,則切斷這些模塊的時(shí)鐘信號(hào),關(guān)閉模塊的電路使其邏輯開關(guān)不改變狀態(tài),這樣僅需要保留漏電流而其切換功率消耗接近于零,從而達(dá)到降低功耗的效果。而當(dāng)有工作要做時(shí),重新激活模塊的時(shí)鐘。以上過程又稱裁剪時(shí)鐘樹(pruneclocktree)。從某種意義上來(lái)說,時(shí)鐘門控實(shí)際上是可變頻率時(shí)鐘的一種極限情況——即只有零和最高頻率兩種值。為實(shí)現(xiàn)此技術(shù),要求每個(gè)模塊——又稱功能單元塊(FunctionalUnitBlock,F(xiàn)UB)——都包含有時(shí)鐘門邏輯電路,也就是說,要實(shí)現(xiàn)時(shí)鐘樹的裁剪必須有附加邏輯部件來(lái)保證。時(shí)鐘門控有幾種實(shí)現(xiàn)形式。一種是通過軟件的手工時(shí)鐘門控,此方法中,由驅(qū)動(dòng)來(lái)開啟或關(guān)閉指定空閑控制器所使用的不同時(shí)鐘。另一種是自動(dòng)時(shí)鐘門控,此方法中,硬件能被告知或自己檢測(cè)到是否有工作在做,然后如果指定時(shí)鐘不再需要的話則關(guān)閉它。這些模式互相影響、融合。例如,一個(gè)內(nèi)部橋或總線可能會(huì)使用自動(dòng)門控,這樣它始終被門控關(guān)閉著,直到處理器或DMA引擎需要使用它才結(jié)束。而總線上的外圍設(shè)備如果在軟件上沒有使用到的話,則可能被驅(qū)動(dòng)程序中的門控相關(guān)代碼關(guān)閉。8.2.2軟件的考慮
程序設(shè)計(jì)中的低功耗遵循的主要的原則和建議有:1.低功耗優(yōu)化的最基本原則低功耗優(yōu)化的最基本原則盡量減少處理器和各種外設(shè)的工作時(shí)間。當(dāng)不需要某個(gè)外設(shè)和不需要處理器運(yùn)算時(shí),盡可能地把處理器和外設(shè)的功耗降低或關(guān)閉。由于處理器的功耗在系統(tǒng)的總功耗中所占比例較大,因此要盡可能縮短處理器的工作時(shí)間,較長(zhǎng)地處于空閑方式或掉電方式是軟件設(shè)計(jì)降低嵌入式系統(tǒng)功耗的關(guān)鍵。8.2.2軟件的考慮2.總體建議是:高性能=低功耗基本上所有軟件層次的性能優(yōu)化的措施對(duì)于降低功耗都是有積極作用的:算法層次優(yōu)化→減少運(yùn)算次數(shù)→降低CPU頻率要求實(shí)現(xiàn)層次優(yōu)化減少完成同樣的運(yùn)算次數(shù)所需的CPU時(shí)鐘數(shù)→降低CPU頻率要求減少內(nèi)存數(shù)據(jù)搬運(yùn)次數(shù)→減少總線、內(nèi)存的功耗一般來(lái)說,在電壓固定的大多數(shù)情況下,短暫時(shí)間內(nèi)以峰值速度運(yùn)行而長(zhǎng)時(shí)間地處于深度空閑狀態(tài),比長(zhǎng)時(shí)間以低時(shí)鐘率(即工作頻率)運(yùn)行而僅以短時(shí)間處于輕度空閑狀態(tài),節(jié)能的效率要高得多。因此,同樣的任務(wù)以最短的時(shí)間運(yùn)行完,然后進(jìn)入空閑狀態(tài),比以較長(zhǎng)的時(shí)間運(yùn)行完,然后才進(jìn)入短暫的空閑狀態(tài),消耗的電能要少得多。采用快速算法也可以降低功耗,這實(shí)際上也是遵循了高性能等于低功耗這條建議。8.2.2軟件的考慮3.盡量使用功耗低的硬件來(lái)實(shí)現(xiàn)任務(wù)完成同樣的任務(wù)可以選擇不同的硬件來(lái)實(shí)現(xiàn),然而不同的硬件的功耗開銷是不一樣,應(yīng)該選擇功耗低的硬件來(lái)實(shí)現(xiàn)。一般地,寄存器訪問的能耗是最低的,高速緩存訪問的能耗比主存訪問的能耗低。因此在程序設(shè)計(jì)時(shí)應(yīng)該盡量遵循以下建議:盡量有效使用寄存器。分析高速緩存行為來(lái)發(fā)現(xiàn)主要的高速緩存沖突。盡可能在存儲(chǔ)系統(tǒng)中使用頁(yè)模式訪問。8.2.2軟件的考慮4.輪詢是低功耗優(yōu)化的大敵。程序在等待狀態(tài)改變或者訪問外設(shè)時(shí)可能會(huì)采用輪詢(poll)的方法,此方法有時(shí)又稱“飛速旋轉(zhuǎn)”(spinning)代碼。輪詢讓處理器重復(fù)執(zhí)行幾條指令,其功率消耗與繁重計(jì)算任務(wù)基本相當(dāng),而其作用僅僅是等待狀態(tài)改變,卻無(wú)法讓等待期進(jìn)入空閑狀態(tài),造成功耗的大量浪費(fèi)。因此,在低功耗設(shè)計(jì)中,應(yīng)該盡量避免使用輪詢,而使用替代方法。例如,對(duì)外設(shè)的訪問使用中斷方式來(lái)代替輪詢;客戶-服務(wù)器協(xié)作模型中,將客戶端不停地查詢服務(wù),改為服務(wù)器主動(dòng)推(push)服務(wù)給客戶端;在線程同步時(shí),如果需要查詢狀態(tài)改變,可以使用操作系統(tǒng)提供的事件量(event)、信號(hào)量(semaphore)等服務(wù)來(lái)實(shí)現(xiàn)。8.2.2軟件的考慮5.事件驅(qū)動(dòng)的程序設(shè)計(jì)方法從軟件設(shè)計(jì)方法來(lái)說,低功耗程序應(yīng)該盡量遵循事件驅(qū)動(dòng)的程序設(shè)計(jì)。所謂事件驅(qū)動(dòng)的程序設(shè)計(jì)就是程序設(shè)計(jì)成響應(yīng)事件的模式:當(dāng)有事件來(lái)就運(yùn)行處理事件;當(dāng)沒有事件到達(dá),或事件處理完程序放棄處理器處于“休眠”狀態(tài)。這里說的事件是廣義的事件,包括用戶的輸入、網(wǎng)絡(luò)通信事件、進(jìn)程/線程同步時(shí)的事件等。在Windows系統(tǒng)中,事件驅(qū)動(dòng)被稱為消息驅(qū)動(dòng)。采用事件驅(qū)動(dòng)設(shè)計(jì)的程序,使處理器的利用率特別高:只有真正有事情要處理時(shí)才運(yùn)行,無(wú)事情處理時(shí),讓出處理器,這樣操作系統(tǒng)和硬件就能在處理器讓出的時(shí)間內(nèi)及時(shí)地偵測(cè)到處理器處于空閑狀態(tài),從而做出降低功耗的操作。事件驅(qū)動(dòng)的程序設(shè)計(jì)方法在嵌入式系統(tǒng)的一個(gè)特殊分支領(lǐng)域——無(wú)線傳感器網(wǎng)絡(luò)——中幾乎被當(dāng)做鐵的紀(jì)律。8.2.2軟件的考慮6.減少程序中類似于輪詢的周期性操作前面說輪詢操作使系統(tǒng)消耗不必要的電能,而實(shí)際上,程序中一些不必要的周期性觸發(fā)或運(yùn)行的操作同樣有著與輪詢類似的消耗不必要的電能的效果。Moblin中的TicklessIdle技術(shù)實(shí)際上是操作系統(tǒng)內(nèi)核程序遵循此原則采取的改進(jìn),即去除內(nèi)核中周期性的定時(shí)操作。此外還有很多Linux應(yīng)用程序中常見的不必要的周期性觸發(fā)或運(yùn)行的操作。例如鼠標(biāo)移動(dòng)(每秒1次,在屏保中常用)、音量改變(每秒10次,在混頻器程序中常用)。這些常見的不必要的周期性觸發(fā)或運(yùn)行的操作,會(huì)導(dǎo)致系統(tǒng)從空閑狀態(tài)中不必要地喚醒,應(yīng)該引起我們的注意,小心地加以避免或改進(jìn),否則它們會(huì)輕易地抵消掉各種節(jié)能技術(shù)帶來(lái)的功耗節(jié)省。8.2.2軟件的考慮7.通信、數(shù)據(jù)采集上的低功耗建議在數(shù)據(jù)采集中,A/D轉(zhuǎn)換需要消耗功率,采集的速度越快,則消耗的功率越多,而產(chǎn)生的數(shù)據(jù)量也越大,處理器需要花費(fèi)越多的時(shí)間來(lái)處理數(shù)據(jù),從而功耗越大。因此數(shù)據(jù)采集時(shí)中盡量降低采集的速率。在通信模塊設(shè)計(jì)中,盡量地提高傳送的波特率(每秒鐘串行口傳送的數(shù)據(jù)位數(shù))。提高通信速率,就意味著通信時(shí)間的縮短,因而減少了通信時(shí)高功耗的時(shí)間,降低了總的功耗。同理,在使用WiFi通信時(shí),應(yīng)多使用突發(fā)(burst)模式來(lái)傳輸數(shù)據(jù),這樣可以縮短通信(特別是發(fā)送數(shù)據(jù))的時(shí)間,便于WiFi設(shè)備盡快進(jìn)入空閑狀態(tài)。傳感器網(wǎng)絡(luò)中,此建議的形式稍微有所變化:減少網(wǎng)絡(luò)中傳輸?shù)臄?shù)據(jù)的容量就能節(jié)省網(wǎng)絡(luò)內(nèi)部處理所消耗的能量。因此在傳感器網(wǎng)絡(luò)中應(yīng)該盡量減少通信數(shù)據(jù)量,而不是單純地縮短通信時(shí)間。8.2.2軟件的考慮8.外設(shè)通信和界面設(shè)計(jì)上的低功耗建議如果外設(shè)支持動(dòng)態(tài)電源調(diào)整,盡量用突發(fā)(burst)模式來(lái)訪問數(shù)據(jù)比如本來(lái)播放一個(gè)大小為2MB的視頻文件以每秒200KB讀數(shù)據(jù)的話需要10s的時(shí)間,但是如果在第一秒以2MB速率讀數(shù)據(jù)的話,后9秒相應(yīng)外設(shè)可以進(jìn)入休眠狀態(tài)。GUI如果不是一定需要用16位色就夠了,24位/32位色意味著更多的計(jì)算和內(nèi)存數(shù)據(jù)的搬移→更高的功耗8.2.2軟件的考慮9.建立電源感知的程序嵌入式系統(tǒng)(如MID、上網(wǎng)本等)的電源經(jīng)常在連接外接電源和未連接外接電源(即使用電池電源)狀態(tài)之間切換,這兩種電源狀態(tài)對(duì)軟件的功耗要求完全不同,前者對(duì)功耗不敏感,但多半也會(huì)要求性能優(yōu)先,而后者對(duì)功耗敏感,因此需要在性能和功耗之間進(jìn)行平衡。對(duì)此,應(yīng)用程序應(yīng)當(dāng)檢測(cè)出設(shè)備當(dāng)前使用電源的類型,做出與電源相關(guān)變化相適應(yīng)的調(diào)整,即達(dá)到電源感知(power-aware)的效果。此外電源管理中存在一些潛在的可能會(huì)影響軟件行為的因素,如設(shè)備電池低于特定閾值時(shí)轉(zhuǎn)入關(guān)閉狀態(tài),以及自動(dòng)休眠等。應(yīng)用設(shè)計(jì)時(shí)也應(yīng)考慮這些電源管理事件帶來(lái)的環(huán)境變化,重視這些因素給運(yùn)行可能帶來(lái)的影響,做出相應(yīng)的應(yīng)對(duì),這就達(dá)到某種電源管理感知的效果。例如,應(yīng)用正在進(jìn)行耗時(shí)的運(yùn)算(如冗長(zhǎng)的浮點(diǎn)運(yùn)算、查詢循環(huán)系統(tǒng)、復(fù)雜的圖形重現(xiàn)等),就可能被這些電源管理事件所中斷或暫停,作為應(yīng)對(duì)措施之一是需要及時(shí)地保存現(xiàn)場(chǎng),在環(huán)境允許時(shí),及時(shí)從中斷狀態(tài)中恢復(fù)。此外還可以針對(duì)電源進(jìn)行某種防御性編程。如提前考慮到用戶將會(huì)啟動(dòng)的任務(wù)(例如,播放電影)。提前確定是否有足夠的電池電量來(lái)完成該任務(wù),并且如果根據(jù)電池電量的當(dāng)前狀態(tài)不能成功完成,則要在任務(wù)啟動(dòng)時(shí)向用戶報(bào)警。程序通過多種可能的方式開來(lái)讀取電源的狀態(tài),來(lái)決定程序應(yīng)該采取的行動(dòng)。8.2.3硬件的設(shè)計(jì)使用低功耗工藝的器件改善芯片的電路設(shè)計(jì)和制造工藝,是一種在物理級(jí)別上獲得節(jié)能效果的技術(shù)。如:SoI(絕緣體上硅結(jié)構(gòu)),High-K(高介電常數(shù))等。在保證吞吐率的情況下,降低總線寬度總線越寬,需要驅(qū)動(dòng)的信號(hào)越多,功耗越大盡量選用低電壓版本的器件例如:1.8vMobileDDRSDRAMvs2.5V標(biāo)準(zhǔn)DDRSDRAM8.2.3硬件的設(shè)計(jì)節(jié)能的電路設(shè)計(jì)和制造工藝?yán)悠渲兄皇遣捎贸碗妷海║ltraLowVoltage,ULV)技術(shù)的處理器。ULV系列處理器一方面降低處理器核心電壓,另一方面有選擇地縮減處理器的核心數(shù)量甚至尺寸,從而從硬件上(物理上)實(shí)現(xiàn)功耗的控制。此外,與ULV處理器類似,45納米制造工藝也是從硬件層面上降低處理器的功耗,只不過其技術(shù)涉及面更廣一點(diǎn)??傮w來(lái)說,45納米制造工藝能將處理器內(nèi)部晶體管間的切換功耗降低近30%,將晶體管切換速度提高20%,而減少柵極漏電流10倍以上,源極向漏極的漏電流5倍以上。這就為芯片帶來(lái)更低的功耗和更持久的電池續(xù)航時(shí)間,同時(shí)擁有更多的晶體管數(shù)目以及更小尺寸。IntelAtom就采用了45納米制造工藝節(jié)能技術(shù)。隨著制造工藝的發(fā)展,制造精度的進(jìn)一步提升,芯片在其尺寸越來(lái)越小的同時(shí),其物理功耗也就越來(lái)越低。8.3Moblin的功耗控制技術(shù)Moblin作為基于IntelAtom的軟件平臺(tái),其突出的特點(diǎn)之一是對(duì)低功耗的重視和支持。Moblin功耗控制和管理包括了多個(gè)方面的技術(shù)和組成部分,這些組件實(shí)現(xiàn)的層次不同,有的集成在Linux內(nèi)核中,如TicklessIdle;有的作為Moblin基礎(chǔ)層的一個(gè)模塊出現(xiàn),如設(shè)備和總線功耗管理;有的則以工具的形式出現(xiàn),如PowerTOP、BLTK等。這些組件大部分不是Moblin所特有的,如TicklessIdle技術(shù)已應(yīng)用于當(dāng)前各種Linux中,很多Linux也配備了BLTK。8.3Moblin的功耗控制技術(shù)
下面我們其中幾個(gè)組件重點(diǎn)介紹一下:1.TicklessIdle無(wú)滴答空閑(TicklessIdle),有的翻譯成“非固定頻率”、“沒有空循環(huán)”等,是一種用在Linux內(nèi)核中用以提高功耗節(jié)省能力的技術(shù)。傳統(tǒng)的Linux內(nèi)核對(duì)處理器使用一個(gè)周期定時(shí)器,來(lái)記錄系統(tǒng)狀態(tài),調(diào)度負(fù)載平衡、維持各種處理器定時(shí)器事件等。早期的定時(shí)器頻率一般是100Hz,而新內(nèi)核則使用250Hz或1000Hz。然而,當(dāng)處理器空閑時(shí),這些周期定時(shí)事件卻消耗著大量
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年西安雁塔區(qū)第八小學(xué)招聘筆試真題
- 2024年蕪湖市中西醫(yī)結(jié)合醫(yī)院招聘筆試真題
- 組織變革與戰(zhàn)略實(shí)施試題及答案
- 2024年保山市龍陵縣臘勐鎮(zhèn)衛(wèi)生院村醫(yī)招聘真題
- 人際關(guān)系管理的總結(jié)與提升計(jì)劃
- 2024年杭州市時(shí)代小學(xué)招聘筆試真題
- 湖南省長(zhǎng)沙市開福區(qū)青竹湖湘一外國(guó)語(yǔ)學(xué)校2025屆數(shù)學(xué)七下期末達(dá)標(biāo)檢測(cè)試題含解析
- 軟件考試成功策略試題及答案
- 計(jì)算機(jī)二級(jí)VB專題討論試題及答案
- 2025年軟考設(shè)計(jì)師應(yīng)考策略試題及答案
- 2024年全國(guó)軟件水平考試之初級(jí)程序員考試經(jīng)典測(cè)試題附答案
- 化糞池應(yīng)急預(yù)案方案
- 2024年安徽高考生物試卷試題真題及答案詳解(精校打印版)
- 2024年中考英語(yǔ)真題-帶答案
- JTG 3432-2024 公路工程集料試驗(yàn)規(guī)程(正式版)
- 中建項(xiàng)目管理手冊(cè)2023年
- 中國(guó)古代的聲學(xué)成就
- 甲狀腺健康科普宣傳課件
- 2024年中國(guó)十五冶金建設(shè)集團(tuán)限公司公開招聘中高端人才公開引進(jìn)高層次人才和急需緊缺人才筆試參考題庫(kù)(共500題)答案詳解版
- 醫(yī)藥代表拜訪情景演練
- 中國(guó)竹笛演奏智慧樹知到期末考試答案章節(jié)答案2024年四川音樂學(xué)院
評(píng)論
0/150
提交評(píng)論