直播推薦
企業(yè)動態(tài)
- 紛享銷客發(fā)布首個企業(yè)級智能CRM平臺ShareAI
- 揭秘西企業(yè)數(shù)字化+低碳化轉(zhuǎn)型“工具箱”:西門子Xcelerator
- 企業(yè)AI賦能數(shù)智制造,用友U9 cloud世界級云ERP煥新升級
- 《“智“領(lǐng)石化,“質(zhì)“造未來——威圖石化行業(yè)數(shù)智化實踐白皮書》隆重發(fā)布
- 攜手共贏!德國Agfa搭載瑞典IPCO鋼帶,實現(xiàn)印刷設(shè)備振動銳減6倍,提升印刷速度與精度
- 創(chuàng)四方集團榮獲“知名商標(biāo)品牌閃亮”證書,助力品牌戰(zhàn)略升級
- 皇冠CAD(CrownCAD)2025 R3版本來了,率先開啟C“Ai”D時代!
- 電費砍半!中國制冷展:海爾發(fā)布AI建筑最新成果
推薦展會
摘 要:功耗是嵌入式設(shè)備的一個十分重要的性能指標(biāo)。在硬件設(shè)計和選型之后,功耗水平在極大程度上取決于軟件的設(shè)計。鑒于lioux在嵌入式設(shè)備中的應(yīng)用日益廣泛,提出在嵌入式linux下軟件編寫的幾種策略。通過這些軟件編寫方式,能有效降低zui終產(chǎn)品的功耗水平。
關(guān)鍵詞:嵌入式linux功耗策略
引 言
由于linux系統(tǒng)具有嵌入式操作系統(tǒng)需要的很多特色,如適應(yīng)于多種cpu和多種硬件平臺、性能穩(wěn)定、可裁剪性很好、源碼開放、開發(fā)和使用簡單等。目前,基于linux應(yīng)用的嵌入式設(shè)備日益增多,linux正在嵌入式領(lǐng)域發(fā)揮著越來越重要的作用。
對于嵌入式設(shè)備尤其是移動設(shè)備來說,功耗是系統(tǒng)的重要指標(biāo),系統(tǒng)設(shè)計的重要目標(biāo)之一就是要盡可能地降低功耗。目前,對功耗的研究主要集中在硬件解決方案上,而軟件研究方面很少。實踐證明:在硬件設(shè)計和選型確定后,功耗的高低與軟件設(shè)計有很大的關(guān)聯(lián)性。軟件設(shè)計和編程質(zhì)量的好壞,極大地影響著zui終產(chǎn)品的功耗水平。據(jù)此,為降低功耗,提出在嵌入式linux下軟件編程的幾種策略。
1 問題分析
因為zui終耗能的是硬件,所以在考慮采用軟件方法降低功耗的時候,要充分考慮硬件的功能和性能,即在保障系統(tǒng)實現(xiàn)的基礎(chǔ)上怎樣組織硬件運作而使功耗降低。全速執(zhí)行、待機和睡眠等行為都是利用cpu的固有能力,透過降低工作電壓或頻率來節(jié)省功耗。此外,在大多數(shù)用戶察覺不到的情況下,實際的電源管理能夠根據(jù)負載狀況逐漸改變系統(tǒng)的狀態(tài),有時這種情況在l s之內(nèi)可以產(chǎn)生數(shù)百次。
另外,在編寫程序時可能會遇到這樣的情況,如記錄狀態(tài)寄存器內(nèi)容,并等待設(shè)定標(biāo)記出現(xiàn);檢查串口的fifo狀態(tài)標(biāo)記,看是否收到數(shù)據(jù);監(jiān)測一個雙端口存儲器,以確定系統(tǒng)中是否有另外cpu寫入了一個變量,以便控制共享資源。從表面上看,這樣的代碼沒有什么問題,但在每個時鐘周期里不斷記錄寄存器狀態(tài)將無法有效延長設(shè)備的電池壽命。
基于這些問題,下面提出幾種策略,以有效降低zui終產(chǎn)品的功耗水平。
2 利用linux內(nèi)核的電源管理
電源管理策略的基礎(chǔ)是調(diào)整處理器內(nèi)核的工作電壓和頻率。不過,現(xiàn)代的嵌入式cpu具有非常高的電源效率,以至于cpu并不總是zui主要的耗能組件。其他高耗能的組件包括高性能內(nèi)存、顯示屏和射頻接口等,因此,如果電源管理系統(tǒng)只能調(diào)節(jié)cpu內(nèi)核的電壓和頻率,那么它的用途將有限。一個真正有效的電源管理方案應(yīng)該可以采用與cpu內(nèi)核執(zhí)行相協(xié)調(diào)或相獨立的方式,支持對一系列電壓和頻率的快速調(diào)節(jié)。
linux支持兩種電源管理標(biāo)準:apm(advancedpower managememt)和acpi(advanced configtlrationand p0wer interface)。apm是傳統(tǒng)的電源管理方案,目前仍然使用在許多基于linus便攜式設(shè)備中;而acpi則提供了更為靈活的電腦和設(shè)備管理接口。這兩個標(biāo)準不能同時運行。缺省情況下,linux運行acpi。apm可以使機器處于suspend(懸掛)或standby(待機)狀態(tài),以及檢查電池容量;而acpi還可以使外設(shè)(如顯示器、pci)單獨斷電,在節(jié)省電能方面有更多的控制。為了讓電源管理功能生效,需要在linux內(nèi)核打開它,并且在linux里加載必需的應(yīng)用軟件。
電源管理活動需要對操作系統(tǒng)內(nèi)核和設(shè)備驅(qū)動程序進行特殊的干預(yù)。在嵌入式linux中,雖然低層電源管理駐留在操作系統(tǒng)內(nèi)核中,但電源管理策略和機制來源于中介軟件和用戶應(yīng)用程序代碼,如圖l所示。
linux內(nèi)核中電源管理機制負責(zé)維持整個系統(tǒng)的電源狀態(tài)。它可以看成是為驅(qū)動程序、中介軟件和應(yīng)用程序提供服務(wù)的元素。
通過在驅(qū)動程序中實現(xiàn)電源管理接口,可以讓驅(qū)動程序密切監(jiān)控系統(tǒng)狀態(tài)。它們在外部事件的驅(qū)動下,透過設(shè)定不同的狀態(tài)反映設(shè)備的工作情況。為了實現(xiàn)設(shè)備電源管理接口,需要實現(xiàn)以下操作:
①使用pm_register對設(shè)備的每個實例(instance)進行注冊;
②在對硬件進行操作之前調(diào)用pm_access(這樣可保證設(shè)備已被喚醒,并處于ready狀態(tài));
③用戶自己的pnl_callback函數(shù)在系統(tǒng)進入suspend狀態(tài),或者從suspend狀態(tài)恢復(fù)的時候會被調(diào)用;
④當(dāng)設(shè)備不使用時調(diào)用pm_dev_idle函數(shù)(這個操作是可選的,以增強設(shè)備idle狀態(tài)的監(jiān)測能力);
⑤當(dāng)被unioad的時候,使用pm_unreggister取消設(shè)備的注冊。
中介程序允許用戶預(yù)先定義某些策略,然后跟蹤電源狀態(tài),執(zhí)行特定的操作。
在應(yīng)用程序中,利用中介程序提供的api,設(shè)立其基本的約束條件,強迫電源管理機制產(chǎn)生與其執(zhí)行需求相匹配的變化。linix電源管理的實現(xiàn)機制包括以下api,例如dpm_set_os()(內(nèi)核)、assert_constraint()、remove_constraint()和set_operatink—state()(內(nèi)核和驅(qū)動程序)、set_policy()和set_task_state()(經(jīng)系統(tǒng)的用戶級調(diào)用)以及/proc接口。
3 在空閑模式下等待事件
很多嵌入式cpu都具有能降低功耗的電源工作模式,zui常用的是空閑模式。此時cpu內(nèi)核指令執(zhí)行部分關(guān)閉,而所有外設(shè)和中斷信號仍處于工作狀態(tài)。由于空閑模式比cpu執(zhí)行指令時的功耗要小得多,因而可以在任何時候,只要linux檢查到所有線程都處于阻塞狀態(tài)(如等待中斷、事件或定時時間),它都可以將cpu置于空閑模式。任何中斷(如觸摸屏事件、按下按鍵事件等)都能把cpu從空閑模式中喚醒,然后繼續(xù)執(zhí)行后面的代碼。如果事件不能直接連接到外部中斷,也可以用一個系統(tǒng)定時器定期喚醒cpu。例如在等待一個事件并且知道只要事件發(fā)生后在10 ms內(nèi)能檢測到,那么可以啟動lo ms定時器,并把cpu置于空閑模式。每次處理定時中斷時都要檢查事件狀態(tài),如果狀態(tài)沒有變化,就立刻回到空閑模式。
4 減少事件
通常cpu的定時中斷間隔為1 ms,linux會頻繁使cpu置于空閑模式,并一直維持到被中斷喚醒。在這種情況下,zui有可能喚醒cpu中斷的是定時器中斷本身。即使所有其他線程被阻塞,在其他中斷、內(nèi)部事件及長時間延遲之前,定時器中斷也會以每秒l 00()次的頻率把cpu從空閑模式中喚醒,以運行調(diào)度程序。就算調(diào)度程序確定所有線路都被阻塞,并很快將cpu回復(fù)到空閑模式,這樣頻繁操作也會浪費大量電源。因此,應(yīng)盡可能長時間地將cpu置于空閑模式,而減少事件是解決這個問題的有效途徑。通過分析代碼和系統(tǒng)要求,以決定是否能改變處理中斷的方式實現(xiàn)。例如,可以在進入空閑模式前關(guān)閉時隙中斷信號,只有再次出現(xiàn)中斷信號時才被喚醒。不過,這種做法通常不太合適。盡管多數(shù)阻塞的線程可以直接或間接等待外部中斷,有些還依賴于定時中斷,如一個驅(qū)動器會在等待外設(shè)時睡眠500 ms,這時空閑模式下如果*關(guān)閉系統(tǒng)定時器,可能意味著線路不能按時恢復(fù)工作。
linux能為調(diào)度程序進行可變超時設(shè)定。lintux知道每個線程無法確定等待的是外部還是內(nèi)部事件,或者計劃在某特定時間再次運行。linux可算出*個線程預(yù)定何時運行,并相應(yīng)地在cpu置于空閑模式之前設(shè)定定時器工作??勺兂瑫r設(shè)定不會對調(diào)度程序造成很大的負擔(dān),但卻能節(jié)省電源和處理時間。
可變計劃超時限定只是減少事件的一種方法,存儲器直接存取(dma)也可讓cpu長時間處于空閑模式,即使數(shù)據(jù)正在發(fā)送至外設(shè)或從外設(shè)收取。所以只要可能,都應(yīng)在外圍驅(qū)動器中使用dma,省電效果相當(dāng)令人滿意。
例如英特爾公司strongarm cpu串口接收fif0時,大約每收到8個字節(jié)發(fā)生1次中斷,在115 2oo bps.速度下,發(fā)送到這個端口的11 kb脈沖數(shù)據(jù)會引起cpu內(nèi)核每秒中斷l(xiāng) 500次,很可能使其從空閑模式中喚醒;但如果實際上不需要在這些小的8字節(jié)設(shè)備中處理數(shù)據(jù),浪費是很驚人的。dma與大容量緩沖器一起使用,以使中斷發(fā)生的水平更加容易管理,或許是每秒10次或l00次,讓cpu在兩次中斷之間空閑。事實證明,在這些場合應(yīng)用dma能減少使用率達20%,可降低cpu功耗,并提高供其他線程使用的cpu帶寬。
5 控制cpu的性能
cpu在降低功耗方面的進展表明,cpu消耗的能量與驅(qū)動cpu的時鐘頻率以及應(yīng)用其內(nèi)核上的電壓平方成正比。
cpu允許動態(tài)降低時鐘速度。降低一半時鐘速度,功耗將成比例下降。但是僅采用這種技術(shù)實現(xiàn)節(jié)能,還需要一些技巧.因為執(zhí)行的代碼可能要兩倍長的時間才能完成,即使這樣也不會省電。例如,板上lcd控制器需要使用一個儲存在片外sdram中的幀緩存。當(dāng)lcd控制器工作時,需要足夠高的內(nèi)存總線頻率來滿足顯示器刷新速率的需要。在lcd不工作的情況下(例如當(dāng)pda僅作為mp3播放器使用時),降低sdram總線頻率,可以節(jié)省整個系統(tǒng)的功耗。
動態(tài)降低電壓是另一種做法。越來越多的cpu允許降低電壓,以適應(yīng)cpu時鐘速度的下降,這樣在降低時鐘速度時也能省電。事實上,只要cpu不飽和,頻率和電壓就能不斷減少,這樣還是能完成工作,而消耗的電源總體上卻比較低。
考慮到并不是所有線程都消耗同樣多cpu帶寬,所以即使這些方法也還是可以改進的。有效應(yīng)用cpu帶寬的線程,會隨著cpu時鐘速度下降而花更長的時間才能完成,這些線程使用分配給它們的每一個周期。另一方面,i/o線程采用分配給它的所有cpu周期,即便cpu時鐘速率下降,也要用同樣長的時間才能完成。例如,像很多pda使用的pcmcia卡接口,當(dāng)數(shù)據(jù)寫人快閃存儲卡時,系統(tǒng)瓶頸不是cpu的速度,而是物理總線接口以及卡的固件為擦掉和重新編程閃存所花的時間。理想情況下,前面討論的等待事件的技術(shù)可在這里應(yīng)用,以zui大程度降低功耗,但是等待時間經(jīng)常變化很大,遠小于操作系統(tǒng)運行時間,這樣會影響到性能。這些驅(qū)動程序常常檢測狀態(tài)寄存器,此時降低時鐘速度將節(jié)省一部分電源,但會對數(shù)據(jù)寫入卡的時間產(chǎn)生輕微影響。
使用控制cpu性能的策略,要知道何時能降低時鐘頻率和電壓而不會顯著影響性能;考慮什么時候降低驅(qū)動器和應(yīng)用程序的時鐘速度比較難處理。這在多任務(wù)處理環(huán)境中更加富有技巧性。
6 結(jié) 論
近年來隨著計算機和網(wǎng)絡(luò)通信、消費電子合一的加速發(fā)展,嵌入式產(chǎn)品成為信息產(chǎn)業(yè)的主流。linux在短短的十幾年時間已經(jīng)發(fā)展成為功能強大設(shè)計完善的操作系統(tǒng)之一,可運行在x86、alpha、sparc、mips、ppc、motorola、nec、arm等多種硬件平臺上,而且開放源代碼,并可以定制,越來越多的企業(yè)和研發(fā)機構(gòu)都轉(zhuǎn)向嵌入式linux的開發(fā)和研究上。本文在系統(tǒng)分析的基礎(chǔ)上,研究了在嵌入式linux系統(tǒng)中通過優(yōu)化軟件編寫機制來降低zui終產(chǎn)品功耗水平的方法,具有很強的實際應(yīng)用意義。隨著研究的深入,嵌入式linux必將顯示出其在低功耗方面的*性,將有更多的嵌入式設(shè)備普及l(fā)inux應(yīng)用。
免責(zé)聲明
- 凡本網(wǎng)注明"來源:智能制造網(wǎng)"的所有作品,版權(quán)均屬于智能制造網(wǎng),轉(zhuǎn)載請必須注明智能制造網(wǎng),http://towegas.com。違反者本網(wǎng)將追究相關(guān)法律責(zé)任。
- 企業(yè)發(fā)布的公司新聞、技術(shù)文章、資料下載等內(nèi)容,如涉及侵權(quán)、違規(guī)遭投訴的,一律由發(fā)布企業(yè)自行承擔(dān)責(zé)任,本網(wǎng)有權(quán)刪除內(nèi)容并追溯責(zé)任。
- 本網(wǎng)轉(zhuǎn)載并注明自其它來源的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點或證實其內(nèi)容的真實性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個人從本網(wǎng)轉(zhuǎn)載時,必須保留本網(wǎng)注明的作品來源,并自負版權(quán)等法律責(zé)任。
- 如涉及作品內(nèi)容、版權(quán)等問題,請在作品發(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。
2025第十一屆中國國際機電產(chǎn)品交易會 暨先進制造業(yè)博覽會
展會城市:合肥市展會時間:2025-09-20