欧美日韩亚州综合,国产一区二区三区影视,欧美三级三级三级爽爽爽,久久中文字幕av一区二区不卡

你的位置:首頁 > 測試測量 > 正文

一種利用實時時鐘降低嵌入式系統功耗的方法

發布時間:2014-09-16 責任編輯:sherryyu

【導讀】眾所周知,低功耗已經是衡量一個嵌入式系統的重要指標。而作為嵌入式系統的核心,嵌入式CPU的功耗則對整個系統起著重要的作用。本文介紹一種利用實時時鐘降低嵌入式系統功耗的方法,供大家參考學習。
 
1.嵌入式CPU低功耗模式介紹
 
眾所周知,低功耗已經是衡量一個嵌入式系統的重要指標。而作為嵌入式系統的核心,嵌入式CPU的功耗則對整個系統起著重要的作用。當前流行的嵌入式系統CPU,基本都提供低功耗特性。一般而言,當嵌入式CPU都會有工作模式與低功耗模式,而低功耗模式又可進一步分為空閑模式,休眠模式,睡眠模式等。進入低功耗模式后,CPU的功耗會降低很多。而外部中斷發生時,可以將CPU喚醒。一個嵌入式系統運行起來后,當系統進入idle狀態時,就可以讓CPU進入低功耗模式,而當外部中斷發生時,再喚醒CPU,重新回到工作模式。讓CPU盡可能多的處于低功耗模式,可以大大降低系統的功耗。然而,即使系統處于idle而且沒有別的工作要做,系統實時時鐘的中斷,也會不停的喚醒CPU,從而增加系統功耗。因此,可以考慮對系統實時時鐘的中斷進行修改,從而減少對系統功耗的影響。
 
2.系統實時時鐘與功耗的關系分析
 
在目前的嵌入式系統中,系統實時時鐘一般是一個硬件循環計數器。當硬件計數器計到一定數值時會向CPU發出中斷。系統實時時鐘是現代多任務嵌入式操作系統的重要組成部分,因此我們需要先討論一下嵌入式操作系統與系統實時時鐘的關系。當今的嵌入式操作系統一般都支持多任務,優先級和時間片調度。當嵌入式OS運行起來后,一般都有一個IDLE任務,它的優先級最低,而其他任務的優先級都應該比它高。在優先級調度機制中,只有當系統中其他高優先級任務都處于阻塞狀態時,它才有機會運行。時間片調度機制只對同優先級的任務有效。也就是說,不同優先級的任務之間是不會按時間片調度輪轉的,而是按優先級來調度的。因此當系統進入IDLE任務時,可以認為系統中沒有工作要CPU來做,系統為idle狀態。當時間片調度機制開啟后,嵌入式OS就會根據時間片來調度任務。
 
也就是當一個時間片用完后,要運行調度器來決定下一個時間片的歸屬。時間片的基本單位是系統tick,而系統tick是以系統實時時鐘為基礎的。當系統實時時鐘中斷產生時,CPU會將系統tick加1。每當系統tick增加n(一個時間片)時,嵌入式OS將啟用調度器進行時間片調度。因此,當時間片調度機制開啟后,就需要系統tick的實時更新和調度器的定時運行,也就需要實時時鐘中斷以很高的頻率定時產生。如果關閉時間片調度機制,則任務之間只需要按照優先級來調度,這樣就不需要計算時間片,也就是系統tick不用實時更新,實時時鐘的中斷不必以很高的頻率產生,調度器也不用定時運行。這樣就有可能考慮延長實時時鐘的中斷間隔。同時調度器不需要進行時間片調度,可以節省系統開銷。但關閉時間片調度后,系統就只有優先級調度。這就要求系統的所有任務要主動阻塞,而不要期待調度器把同優先級的其他任務調度出CPU而讓自己運行。在目前流行的嵌入式操作系統中,一般都提供了很多主動阻塞的機制,因此要做到這一點并不難。延長實時時鐘的中斷間隔,可以讓CPU長期處于低功耗狀態,直到有設備中斷喚醒CPU。
 
這樣將大大減低系統在空閑時的功耗。延長實時時鐘中斷間隔后,需要考慮的問題有兩個,一是系統tick,另一個是系統delay。系統tick是實時時鐘和操作系統之間的接口,操作系統與時間相關的模塊和API,基本都是基于tick的。在一般系統中,實時時鐘的中斷是每個tick一次。因此tick是操作系統最小的計時單位。延長實時時鐘中斷間隔后,系統tick就會長時間不增加,因此怎樣保證系統tick的準確性,就是最基本的問題。解決了tick的準確性,就可以隔離實時時鐘對操作系統的影響。系統delay是操作系統一種重要的阻塞機制,它主要用于讓一個任務主動讓出CPU一段時間。一般系統delay是基于系統實時時鐘的,系統delay的基本單位就是tick。當調用delay時,API函數會首先得到當前系統tick,然后加上需要delay的時間,形成一個未來的delay時間點,再將任務掛到系統的delay隊列上。因此delay隊列上的所有任務都對應一個自己的delay時間點。當系統tick超過某個任務的delay時間點時,該任務就應該醒來。這就需要實時時鐘的中斷來喚醒CPU,并運行調度器讓delay的任務重新進入就緒隊列。如果實時時鐘中斷間隔延長,系統tick就會很長時間不增加,就很難保證delay的準確性。同時delay時間到達后,也無法喚醒任務。要保證系統tick的準確性,就要求每次主動獲得系統tick時,需要通過實時時鐘硬件計數器的值計算出當前的系統tick。同時,需要保證主動獲取和實時時鐘中斷之間的同步。而對于系統delay,則需要修改硬件計數器的計數值,使其為系統delay隊列上的最小delay時間點的delay時間。這樣可以利用硬件計數器來準確控制delay的準確性,并且利用中斷來及時調度任務。
 
3.在I.MX51上的解決方案:
 
ECOS是一款優秀的輕量級嵌入式操作系統,它的內核微小,緊湊,支持多任務,優先級和時間片調度機制。飛思卡爾的多媒體芯片i.mx51基于ARM Cortex-A8核,具有很高的性能,同時支持了ARM提供的低功耗功能。ARM提供低功耗模式,即睡眠模式。ARM執行指令WFI后,會進入睡眠狀態。在睡眠模式下,ARM的時鐘被關閉,ARM只消耗極低的功耗來維護自身的狀態,即啟用SRPG(State retaining power gate)。當有中斷發生時,ARM會被喚醒,恢復時鐘,重新開始執行。MX51提供了多個硬件計數器,本文采用其中的GPT作為實時時鐘。GPT是一個循環計數器,可以設置最大為0xffffffff的計數值,每個時鐘計數值減1,當計數值減到0時觸發中斷,時鐘為32KHz。GPT的計數值可以在任意時刻被ARM讀取,讀取是不影響計數的。當IDLE任務運行時,IDLE就執行WFI指令,讓ARM進入低功耗模式。如果有設備產生中斷,ARM就會被喚醒,處理中斷以及所需的任務調度,任務運行。基于前面的分析,本文對ECOS的時間片調度和實時時鐘系統進行了修改。對于時間片調度機制,在ECOS的配置文件中將其關閉。
 
對于實時時鐘,則延長了它的中斷間隔。系統tick在兩種情況下會被更新,一種是當調用ECOS API去讀系統tick的時候,另一種就是GPT產生中斷。當ECOS啟動后,將GPT的計數值設為最大,這樣GPT就需要很長時間才會產生一次中斷。在這期間,系統tick只會在ECOS API主動讀取時才會更新。系統tick的更新是通過讀取硬件計數器的計數值計算出來的。在ECOS系統的實時時鐘類中增加一個變量pre_hardware_count用于記錄上一次讀取的硬件計數器的值。當每次系統API讀取tick時,當前硬件計數器的值與上一次讀取時硬件計數器的值的差值就是兩次讀取之間已經過去的tick數。當實時時鐘產生中斷時,即硬件計數器計到0,將此變量清零。
 
這樣,就可以保證每次讀取系統tick 時,能得到一個準確的系統tick值。當有任務要主動延時一段時間,即調用系統delay API時。ECOS的API函數會計算出該任務的delay時間點,然后將該任務掛入系統delay隊列。然后遍歷系統delay隊列,找出隊列中的最小delay時間點,把該delay時間點對應的delay時間寫入GPT,讓GPT來控制delay時間。delay時間到后,GPT會產生中斷,ECOS將中斷處理程序分為兩部分,ISR和DSR。在ISR中將硬件計數器設為最大值。然后在DSR中增加系統tick,將超時的任務重新掛入就緒隊列,并且再次找出系統delay隊列上的最小delay時間點,寫入硬件計數器。如果系統delay隊列為空,則不對硬件計數器再進行操作,保持ISR 中寫入的最大值。最后ECOS會運行調度器,如果超時的任務具有最高優先級,那么它就會得到運行,也就是醒過來。這樣也就可以保證系統delay的準確性與及時性。下圖是修改后實時時鐘后系統tick, delay以及調度器相關的流程圖。
 
下圖是修改后實時時鐘后系統tick, delay以及調度器相關的流程圖。
實時時鐘修改流程圖
圖1. 實時時鐘修改流程圖
 
下面是在飛思卡爾公司i.mx51上的實驗數據。
可以看出,修改了時間片調度和實時時鐘后,不論ARM工作在哪個電壓點,系統IDLE時的功耗降低了差不多10倍。因此,延長實時時鐘中斷間隔能極大的降低系統功耗。
 
4.其他系統的類似方法
 
當前流行的嵌入式操作系統Linux和WinCE也都在討論修改系統實時時鐘中斷方式以求降低系統功耗。對于Linux系統,有一個Less Watts項目,實現tickless idle,即無tick的idle,其實就是修改實時時鐘的中斷方式。WinCE則提供了可變系統時鐘節拍Variable Tick Scheduler,在進入idle狀態前改變系統時鐘節拍,這樣在預期的時間段里,idle狀態不會被無謂的系統時鐘中斷喚醒。
 
5.結論
 
可以看出,通過修改實時時鐘中斷方式,可以使CPU在idle狀態下長時間處于低功耗模式,極大的降低系統功耗。而且當前流行的嵌入式操作系統都在積極的探討此方法。相信今后這項功能會成為嵌入式操作系統必備的一個功能。
 
特別推薦
技術文章更多>>
技術白皮書下載更多>>
熱門搜索

關閉

?

關閉

欧美日韩亚州综合,国产一区二区三区影视,欧美三级三级三级爽爽爽,久久中文字幕av一区二区不卡
国产91在线观看| 欧美日韩亚洲综合在线 欧美亚洲特黄一级 | 91麻豆精品秘密| 六月婷婷色综合| 久久久综合视频| 91精品啪在线观看国产60岁| 成人免费视频播放| 亚洲综合精品自拍| 亚洲丝袜另类动漫二区| 欧美日韩电影一区| 欧美最新大片在线看| 狠狠色狠狠色综合| 偷拍与自拍一区| 亚洲另类春色国产| 综合亚洲深深色噜噜狠狠网站| 欧美国产乱子伦| 69精品人人人人| 欧美猛男超大videosgay| 91香蕉视频mp4| 99视频超级精品| 国内欧美视频一区二区| 蜜桃视频第一区免费观看| 五月婷婷另类国产| 中文字幕五月欧美| 中文字幕av不卡| 亚洲欧美一区二区视频| 国产精品久久久一本精品| 亚洲国产精品黑人久久久| 欧美激情一区二区在线| 中文字幕精品综合| 国产精品二三区| 亚洲国产视频一区二区| 亚洲第一成人在线| 日韩电影网1区2区| 一区二区三区四区不卡在线| 亚洲综合在线视频| 视频一区视频二区中文字幕| 日韩精品三区四区| 韩国精品主播一区二区在线观看| 麻豆成人91精品二区三区| 精品一区二区免费在线观看| 国产精品18久久久久久久网站| 成人午夜电影小说| 精品视频免费在线| 精品精品国产高清a毛片牛牛 | 婷婷综合在线观看| 久久99久久精品欧美| 成人午夜电影小说| 91久久国产最好的精华液| 91精品午夜视频| 精品国产免费视频| 亚洲免费观看视频| 日韩影院精彩在线| 国产传媒久久文化传媒| 91福利精品第一导航| 日韩免费观看高清完整版 | 国产日韩精品一区二区三区| 亚洲欧美国产毛片在线| 精品系列免费在线观看| 在线不卡免费av| 一区二区三区四区在线播放| 99精品在线免费| 国产欧美一区二区精品秋霞影院| 日本在线不卡视频一二三区| 在线视频你懂得一区二区三区| 欧美国产激情二区三区| 粉嫩高潮美女一区二区三区| 久久婷婷色综合| 韩国午夜理伦三级不卡影院| 欧美zozozo| 日韩av电影免费观看高清完整版| 欧美影片第一页| 一级特黄大欧美久久久| 91亚洲精华国产精华精华液| 日本一区二区不卡视频| 国产成人免费视频网站高清观看视频| 精品国产91洋老外米糕| 国产在线麻豆精品观看| 精品福利一区二区三区免费视频| 免费成人你懂的| 久久蜜臀精品av| 不卡一区二区中文字幕| 中文字幕制服丝袜一区二区三区| a级精品国产片在线观看| 国产精品福利影院| 欧美中文一区二区三区| 亚洲18女电影在线观看| 欧美日韩一二区| 久久www免费人成看片高清| 精品国产乱码久久久久久闺蜜| 国产乱码精品一区二区三区av| 久久综合九色综合欧美亚洲| 成人午夜电影小说| 伊人性伊人情综合网| 欧美日韩亚州综合| 精品一区中文字幕| 国产精品视频免费| 欧美在线不卡视频| 黄色资源网久久资源365| 中文字幕二三区不卡| 欧美中文字幕久久| 久久不见久久见免费视频7| 中文成人av在线| 欧美久久免费观看| 国产成人综合亚洲网站| 亚洲一区在线播放| www成人在线观看| 99精品黄色片免费大全| 蜜桃av噜噜一区| 国产精品天天摸av网| 欧美日韩免费电影| 成人深夜福利app| 免费一级片91| 亚洲美女淫视频| 欧美电视剧免费全集观看| 成av人片一区二区| 久久精品国产免费| 亚洲日本韩国一区| 久久色.com| 欧美日韩卡一卡二| 91视频一区二区三区| 国产精品一区二区三区四区| 亚洲一二三级电影| 一区在线中文字幕| 久久综合九色综合97婷婷女人| 在线免费观看不卡av| 国产成人av网站| 精品一区二区三区视频在线观看| 亚洲在线中文字幕| 国产精品伦一区| 精品国产乱码91久久久久久网站| 在线成人小视频| 欧美日本精品一区二区三区| 91美女在线看| 成人免费高清视频| 大胆亚洲人体视频| 国产成人在线视频免费播放| 精品一区二区三区免费观看| 日本成人在线网站| 夜夜亚洲天天久久| 一区二区三区中文字幕| 国产精品国产精品国产专区不蜜| 国产亚洲1区2区3区| 26uuu欧美| 精品国产污网站| 久久嫩草精品久久久精品一| 日韩欧美在线影院| 精品国产一区二区在线观看| 欧美一区二区三区四区久久| 91精品国产品国语在线不卡| 欧美色窝79yyyycom| 欧美日韩视频在线观看一区二区三区| 91毛片在线观看| 91黄视频在线观看| 欧美日韩一区二区在线观看| 欧美日韩一区二区三区不卡| 欧美高清精品3d| 精品国产伦一区二区三区免费| 久久这里只有精品首页| 久久久久久久综合日本| 国产女主播一区| ...中文天堂在线一区| 亚洲人成精品久久久久| 亚洲小说欧美激情另类| 日本三级亚洲精品| 国模一区二区三区白浆| 成人午夜视频网站| 欧美图片一区二区三区| 欧美一区二区在线免费观看| 久久伊99综合婷婷久久伊| 欧美激情一区二区三区蜜桃视频 | 欧美精品一二三区| 精品久久久久av影院 | 精品精品国产高清a毛片牛牛| 久久无码av三级| 亚洲三级电影网站| 奇米精品一区二区三区在线观看 | 欧美中文字幕一区二区三区亚洲 | 国产成人免费视频精品含羞草妖精| 成人综合婷婷国产精品久久| 欧美中文字幕一区| 国产三级欧美三级日产三级99| 国产精品白丝在线| 蜜臀av性久久久久蜜臀av麻豆 | 日韩激情视频网站| 大胆欧美人体老妇| 欧美精品自拍偷拍| 国产精品美女久久久久久2018| 亚洲国产aⅴ天堂久久| 国产精品一区二区x88av| 色成年激情久久综合| 欧美成人女星排行榜| 亚洲人成精品久久久久| 国产乱人伦精品一区二区在线观看| 91美女片黄在线| 久久精品欧美日韩精品| 日本午夜一本久久久综合| 色综合色狠狠综合色| 久久一留热品黄| 日韩国产精品大片|