--------------------------------------------------------------------------------
 
摘  要:功耗是嵌入式設備的一個十分重要的性能指標。在硬件設計和選型之后,功耗水平在極大程度上取決于軟件的設計。鑒于lioux在嵌入式設備中的應用">

欧美成人aaaaa免费视频_亚洲欧美激情小说另类_欧美激情一区二区三区视频_一级在线|欧洲

技術頻道

嵌入式Linux的低功耗策略研究


--------------------------------------------------------------------------------

摘 要:功耗是嵌入式設備的一個十分重要的性能指標。在硬件設計和選型之后,功耗水平在極大程度上取決于軟件的設計。鑒于lioux在嵌入式設備中的應用日益廣泛,提出在嵌入式linux下軟件編寫的幾種策略。通過這些軟件編寫方式,能有效降低最終產品的功耗水平。
關鍵詞:嵌入式linux功耗策略

引 言
由于linux系統具有嵌入式操作系統需要的很多特色,如適應于多種cpu和多種硬件平臺、性能穩定、可裁剪性很好、源碼開放、開發和使用簡單等。目前,基于linux應用的嵌入式設備日益增多,linux正在嵌入式領域發揮著越來越重要的作用。

對于嵌入式設備尤其是移動設備來說,功耗是系統的重要指標,系統設計的重要目標之一就是要盡可能地降低功耗。目前,對功耗的研究主要集中在硬件解決方案上,而軟件研究方面很少。實踐證明:在硬件設計和選型確定后,功耗的高低與軟件設計有很大的關聯性。軟件設計和編程質量的好壞,極大地影響著最終產品的功耗水平。據此,為降低功耗,提出在嵌入式linux下軟件編程的幾種策略。

1 問題分析
因為最終耗能的是硬件,所以在考慮采用軟件方法降低功耗的時候,要充分考慮硬件的功能和性能,即在保障系統實現的基礎上怎樣組織硬件運作而使功耗降低。全速執行、待機和睡眠等行為都是利用cpu的固有能力,透過降低工作電壓或頻率來節省功耗。此外,在大多數用戶察覺不到的情況下,實際的電源管理能夠根據負載狀況逐漸改變系統的狀態,有時這種情況在l s之內可以產生數百次。

另外,在編寫程序時可能會遇到這樣的情況,如記錄狀態寄存器內容,并等待設定標記出現;檢查串口的fifo狀態標記,看是否收到數據;監測一個雙端口存儲器,以確定系統中是否有另外cpu寫入了一個變量,以便控制共享資源。從表面上看,這樣的代碼沒有什么問題,但在每個時鐘周期里不斷記錄寄存器狀態將無法有效延長設備的電池壽命。

基于這些問題,下面提出幾種策略,以有效降低最終產品的功耗水平。

2 利用linux內核的電源管理
電源管理策略的基礎是調整處理器內核的工作電壓和頻率。不過,現代的嵌入式cpu具有非常高的電源效率,以至于cpu并不總是最主要的耗能組件。其他高耗能的組件包括高性能內存、顯示屏和射頻接口等,因此,如果電源管理系統只能調節cpu內核的電壓和頻率,那么它的用途將有限。一個真正有效的電源管理方案應該可以采用與cpu內核執行相協調或相獨立的方式,支持對一系列電壓和頻率的快速調節。

linux支持兩種電源管理標準:apm(advancedpower managememt)和acpi(advanced configtlrationand p0wer interface)。apm是傳統的高級電源管理方案,目前仍然使用在許多基于linus便攜式設備中;而acpi則提供了更為靈活的電腦和設備管理接口。這兩個標準不能同時運行。缺省情況下,linux運行acpi。apm可以使機器處于suspend(懸掛)或standby(待機)狀態,以及檢查電池容量;而acpi還可以使外設(如顯示器、pci)單獨斷電,在節省電能方面有更多的控制。為了讓電源管理功能生效,需要在linux內核打開它,并且在linux里加載必需的應用軟件。

電源管理活動需要對操作系統內核和設備驅動程序進行特殊的干預。在嵌入式linux中,雖然低層電源管理駐留在操作系統內核中,但電源管理策略和機制來源于中介軟件和用戶應用程序代碼,如圖l所示。


linux內核中電源管理機制負責維持整個系統的電源狀態。它可以看成是為驅動程序、中介軟件和應用程序提供服務的元素。

通過在驅動程序中實現電源管理接口,可以讓驅動程序密切監控系統狀態。它們在外部事件的驅動下,透過設定不同的狀態反映設備的工作情況。為了實現設備電源管理接口,需要實現以下操作:
①使用pm_register對設備的每個實例(instance)進行注冊;
②在對硬件進行操作之前調用pm_access(這樣可保證設備已被喚醒,并處于ready狀態);
③用戶自己的pnl_callback函數在系統進入suspend狀態,或者從suspend狀態恢復的時候會被調用;
④當設備不使用時調用pm_dev_idle函數(這個操作是可選的,以增強設備idle狀態的監測能力);
⑤當被unioad的時候,使用pm_unreggister取消設備的注冊。

中介程序允許用戶預先定義某些策略,然后跟蹤電源狀態,執行特定的操作。

在應用程序中,利用中介程序提供的api,設立其基本的約束條件,強迫電源管理機制產生與其執行需求相匹配的變化。linix電源管理的實現機制包括以下api,例如dpm_set_os()(內核)、assert_constraint()、remove_constraint()和set_operatink—state()(內核和驅動程序)、set_policy()和set_task_state()(經系統的用戶級調用)以及/proc接口。

3 在空閑模式下等待事件
很多嵌入式cpu都具有能降低功耗的電源工作模式,最常用的是空閑模式。此時cpu內核指令執行部分關閉,而所有外設和中斷信號仍處于工作狀態。由于空閑模式比cpu執行指令時的功耗要小得多,因而可以在任何時候,只要linux檢查到所有線程都處于阻塞狀態(如等待中斷、事件或定時時間),它都可以將cpu置于空閑模式。任何中斷(如觸摸屏事件、按下按鍵事件等)都能把cpu從空閑模式中喚醒,然后繼續執行后面的代碼。如果事件不能直接連接到外部中斷,也可以用一個系統定時器定期喚醒cpu。例如在等待一個事件并且知道只要事件發生后在10 ms內能檢測到,那么可以啟動lo ms定時器,并把cpu置于空閑模式。每次處理定時中斷時都要檢查事件狀態,如果狀態沒有變化,就立刻回到空閑模式。

4 減少事件
通常cpu的定時中斷間隔為1 ms,linux會頻繁使cpu置于空閑模式,并一直維持到被中斷喚醒。在這種情況下,最有可能喚醒cpu中斷的是定時器中斷本身。即使所有其他線程被阻塞,在其他中斷、內部事件及長時間延遲之前,定時器中斷也會以每秒l 00()次的頻率把cpu從空閑模式中喚醒,以運行調度程序。就算調度程序確定所有線路都被阻塞,并很快將cpu回復到空閑模式,這樣頻繁操作也會浪費大量電源。因此,應盡可能長時間地將cpu置于空閑模式,而減少事件是解決這個問題的有效途徑。通過分析代碼和系統要求,以決定是否能改變處理中斷的方式實現。例如,可以在進入空閑模式前關閉時隙中斷信號,只有再次出現中斷信號時才被喚醒。不過,這種做法通常不太合適。盡管多數阻塞的線程可以直接或間接等待外部中斷,有些還依賴于定時中斷,如一個驅動器會在等待外設時睡眠500 ms,這時空閑模式下如果完全關閉系統定時器,可能意味著線路不能按時恢復工作。

linux最好能為調度程序進行可變超時設定。lintux知道每個線程無法確定等待的是外部還是內部事件,或者計劃在某特定時間再次運行。linux可算出第一個線程預定何時運行,并相應地在cpu置于空閑模式之前設定定時器工作。可變超時設定不會對調度程序造成很大的負擔,但卻能節省電源和處理時間。

可變計劃超時限定只是減少事件的一種方法,存儲器直接存取(dma)也可讓cpu長時間處于空閑模式,即使數據正在發送至外設或從外設收取。所以只要可能,都應在外圍驅動器中使用dma,省電效果相當令人滿意。

例如英特爾公司strongarm cpu串口接收fif0時,大約每收到8個字節發生1次中斷,在115 2oo bps.速度下,發送到這個端口的11 kb脈沖數據會引起cpu內核每秒中斷l 500次,很可能使其從空閑模式中喚醒;但如果實際上不需要在這些小的8字節設備中處理數據,浪費是很驚人的。dma最好與大容量緩沖器一起使用,以使中斷發生的水平更加容易管理,或許是每秒10次或l00次,讓cpu在兩次中斷之間空閑。事實證明,在這些場合應用dma能減少使用率達20%,可降低cpu功耗,并提高供其他線程使用的cpu帶寬。

5 控制cpu的性能
cpu在降低功耗方面的最新進展表明,cpu消耗的能量與驅動cpu的時鐘頻率以及應用其內核上的電壓平方成正比。

cpu允許動態降低時鐘速度。降低一半時鐘速度,功耗將成比例下降。但是僅采用這種技術實現節能,還需要一些技巧.因為執行的代碼可能要兩倍長的時間才能完成,即使這樣也不會省電。例如,板上lcd控制器需要使用一個儲存在片外sdram中的幀緩存。當lcd控制器工作時,需要指定足夠高的內存總線頻率來滿足顯示器刷新速率的需要。在lcd不工作的情況下(例如當pda僅作為mp3播放器使用時),降低sdram總線頻率,可以節省整個系統的功耗。

動態降低電壓是另一種做法。越來越多的cpu允許降低電壓,以適應cpu時鐘速度的下降,這樣在降低時鐘速度時也能省電。事實上,只要cpu不飽和,頻率和電壓就能不斷減少,這樣還是能完成工作,而消耗的電源總體上卻比較低。

考慮到并不是所有線程都消耗同樣多cpu帶寬,所以即使這些方法也還是可以改進的。有效應用cpu帶寬的線程,會隨著cpu時鐘速度下降而花更長的時間才能完成,這些線程使用分配給它們的每一個周期。另一方面,i/o線程采用分配給它的所有cpu周期,即便cpu時鐘速率下降,也要用同樣長的時間才能完成。例如,像很多pda使用的pcmcia卡接口,當數據寫人快閃存儲卡時,系統瓶頸不是cpu的速度,而是物理總線接口以及卡的固件為擦掉和重新編程閃存所花的時間。理想情況下,前面討論的等待事件的技術可在這里應用,以最大程度降低功耗,但是等待時間經常變化很大,遠小于操作系統運行時間,這樣會影響到性能。這些驅動程序常常檢測狀態寄存器,此時降低時鐘速度將節省一部分電源,但會對數據寫入卡的時間產生輕微影響。

使用控制cpu性能的策略,要知道何時能降低時鐘頻率和電壓而不會顯著影響性能;考慮什么時候降低驅動器和應用程序的時鐘速度比較難處理。這在多任務處理環境中更加富有技巧性。

6 結 論
近年來隨著計算機和網絡通信、消費電子合一的加速發展,嵌入式產品成為信息產業的主流。linux在短短的十幾年時間已經發展成為功能強大設計完善的操作系統之一,可運行在x86、alpha、sparc、mips、ppc、motorola、nec、arm等多種硬件平臺上,而且開放源代碼,并可以定制,越來越多的企業和研發機構都轉向嵌入式linux的開發和研究上。本文在系統分析的基礎上,研究了在嵌入式linux系統中通過優化軟件編寫機制來降低最終產品功耗水平的方法,具有很強的實際應用意義。隨著研究的深入,嵌入式linux必將顯示出其在低功耗方面的優越性,將有更多的嵌入式設備普及linux應用。

文章版權歸西部工控xbgk所有,未經許可不得轉載。

欧美成人aaaaa免费视频_亚洲欧美激情小说另类_欧美激情一区二区三区视频_一级在线|欧洲

      欧美日韩另类视频| 欧美日韩国产在线播放| 在线观看亚洲a| 欧美电影免费观看网站| 亚洲区一区二区三区| 国产精品v欧美精品v日韩精品| 亚洲欧美日韩精品久久| 国产一级久久| 欧美劲爆第一页| 亚洲欧美日韩在线观看a三区 | 欧美第一黄色网| 亚洲一区成人| 在线播放日韩专区| 欧美调教vk| 久久久一本精品99久久精品66| 亚洲精品一区中文| 国产手机视频一区二区| 欧美国产日韩一区二区在线观看| 亚洲综合色激情五月| 伊伊综合在线| 国产精品久久久久国产a级| 久久综合国产精品| 在线一区二区三区四区| 国内精品写真在线观看| 欧美丝袜一区二区| 久久久久久**毛片大全| 一本一本a久久| 精品96久久久久久中文字幕无| 欧美精品一区二区在线播放| 久久国产精品久久久久久电车| 亚洲黑丝在线| 国产在线播放一区二区三区 | 国产精品午夜电影| 欧美电影免费观看| 久久久久久久一区二区三区| 亚洲一区免费网站| 亚洲精品中文字| 激情综合视频| 国产欧美日韩精品一区| 欧美日韩精品一区二区天天拍小说 | 99精品视频免费观看视频| 伊大人香蕉综合8在线视| 国产精品男女猛烈高潮激情| 欧美精品www| 欧美成人综合一区| 美女被久久久| 久久露脸国产精品| 久久精品综合| 欧美在线观看视频一区二区| 一本色道久久加勒比88综合| 欧美一区二区三区免费在线看| 欧美日韩激情网| 亚洲精品免费电影| 欧美亚洲一区二区三区| 一区二区三区欧美| 黄色成人在线免费| 国产精品久久久久久模特| 欧美 日韩 国产在线| 午夜精品在线| 亚洲午夜精品久久| 亚洲国产精品精华液2区45| 美女精品网站| 欧美日韩一卡二卡| 国产欧美日韩麻豆91| 亚洲国产导航| 亚洲图片欧美日产| 欧美专区日韩视频| 欧美激情一二三区| 国产欧亚日韩视频| 亚洲国产精品久久精品怡红院| 一区二区高清在线观看| 欧美一进一出视频| 欧美精品二区| 国模大胆一区二区三区| 夜夜爽av福利精品导航| 久久精品夜色噜噜亚洲a∨ | 午夜性色一区二区三区免费视频 | 国产精品视频精品视频| 精品88久久久久88久久久| 一区二区激情| 久热综合在线亚洲精品| 国产精品初高中精品久久| 在线观看91精品国产入口| 亚洲一级影院| 欧美激情日韩| 黄色在线一区| 亚洲欧美日产图| 欧美久久一区| 在线观看亚洲精品视频| 午夜在线一区| 欧美日韩精品在线视频| 1024亚洲| 久久精品亚洲精品| 国产精品一区在线观看你懂的| 亚洲乱码国产乱码精品精天堂 | 激情六月婷婷久久| 亚洲一二三区视频在线观看| 欧美国产高清| 在线看国产日韩| 久久精品亚洲一区二区三区浴池| 欧美先锋影音| 亚洲久久一区| 免费在线亚洲| 在线观看视频一区二区| 性色av一区二区怡红| 国产精品国产三级国产专区53 | 国产精品swag| av成人手机在线| 欧美精品二区| 亚洲欧洲视频在线| 免费日本视频一区| 一区免费视频| 久久婷婷麻豆| 黄色在线成人| 另类av一区二区| 亚洲第一区在线| 免费观看在线综合色| 在线观看91精品国产入口| 久久精品一区二区三区中文字幕| 国产精品丝袜白浆摸在线| 亚洲一区二区动漫| 国产精品久在线观看| 亚洲一二三区精品| 国产精品久久久久久av下载红粉 | 欧美一区二区成人6969| 国产精品一区在线播放| 亚洲一区二区在线免费观看视频| 欧美日韩专区| 亚洲一区二区免费视频| 国产精品毛片一区二区三区| 亚洲一线二线三线久久久| 国产精品日韩二区| 久久aⅴ国产紧身牛仔裤| 韩日视频一区| 欧美jizz19性欧美| 日韩视频久久| 国产精品v一区二区三区| 亚洲欧美日韩在线一区| 国产亚洲精品综合一区91| 久久久久久久久久久久久女国产乱| 激情综合视频| 欧美va日韩va| 国产精品99久久久久久久女警 | 国产精品永久| 久久久精品午夜少妇| 亚洲国产精选| 欧美性色综合| 欧美专区在线| 亚洲精品男同| 国产精品第一区| 久久精品2019中文字幕| 亚洲人成网站在线播| 国产精品久久久久久久久免费桃花 | 欧美在线视频免费观看| 亚洲高清不卡| 欧美日韩中字| 久久久99久久精品女同性| 最近中文字幕mv在线一区二区三区四区| 欧美日韩小视频| 欧美一区二区三区视频免费| 亚洲大片免费看| 国产精品福利在线观看| 久久久久这里只有精品| 99在线精品免费视频九九视| 国产精品嫩草影院av蜜臀| 美女国产一区| 午夜国产精品视频免费体验区| 在线欧美亚洲| 国产精品视屏| 欧美成人自拍| 欧美一级在线播放| 999在线观看精品免费不卡网站| 国产精品免费一区二区三区观看| 美女视频黄 久久| 亚洲在线观看视频网站| 亚洲国产精品一区二区尤物区| 国产精品高潮呻吟久久av无限| 久久尤物视频| 新67194成人永久网站| 亚洲人屁股眼子交8| 国产一区亚洲| 国产精品毛片a∨一区二区三区|国| 欧美va日韩va| 久久久久久高潮国产精品视| 亚洲性xxxx| 亚洲精品视频一区二区三区| 伊人成年综合电影网| 国产美女扒开尿口久久久| 欧美日韩国产成人| 老鸭窝毛片一区二区三区| 欧美一区二区性| 亚洲天堂成人在线观看| 亚洲欧洲在线免费| 有码中文亚洲精品| 国产亚洲欧美一区| 国产精品入口| 国产精品久久久久毛片软件| 欧美日本免费| 欧美高清在线视频| 蜜桃精品久久久久久久免费影院|