中文字幕第二一区_久久久久在线视频_精品国产自在现线看久久_亚洲精品一区二区三区电影网

產(chǎn)品分類

當(dāng)前位置: 首頁 > 工業(yè)電子產(chǎn)品 > 集成電路(ICs) > 時鐘,定時與頻率管理 > 實時時鐘

類型分類:
科普知識
數(shù)據(jù)分類:
實時時鐘

一種利用實時時鐘降低嵌入式系統(tǒng)功耗的方法

發(fā)布日期:2022-10-03 點擊率:115

【導(dǎo)讀】眾所周知,低功耗已經(jīng)是衡量一個嵌入式系統(tǒng)的重要指標(biāo)。而作為嵌入式系統(tǒng)的核心,嵌入式CPU的功耗則對整個系統(tǒng)起著重要的作用。本文介紹一種利用實時時鐘降低嵌入式系統(tǒng)功耗的方法,供大家參考學(xué)習(xí)。

 

1.嵌入式CPU低功耗模式介紹

 

眾所周知,低功耗已經(jīng)是衡量一個嵌入式系統(tǒng)的重要指標(biāo)。而作為嵌入式系統(tǒng)的核心,嵌入式CPU的功耗則對整個系統(tǒng)起著重要的作用。當(dāng)前流行的嵌入式系統(tǒng)CPU,基本都提供低功耗特性。一般而言,當(dāng)嵌入式CPU都會有工作模式與低功耗模式,而低功耗模式又可進(jìn)一步分為空閑模式,休眠模式,睡眠模式等。進(jìn)入低功耗模式后,CPU的功耗會降低很多。而外部中斷發(fā)生時,可以將CPU喚醒。一個嵌入式系統(tǒng)運行起來后,當(dāng)系統(tǒng)進(jìn)入idle狀態(tài)時,就可以讓CPU進(jìn)入低功耗模式,而當(dāng)外部中斷發(fā)生時,再喚醒CPU,重新回到工作模式。讓CPU盡可能多的處于低功耗模式,可以大大降低系統(tǒng)的功耗。然而,即使系統(tǒng)處于idle而且沒有別的工作要做,系統(tǒng)實時時鐘的中斷,也會不停的喚醒CPU,從而增加系統(tǒng)功耗。因此,可以考慮對系統(tǒng)實時時鐘的中斷進(jìn)行修改,從而減少對系統(tǒng)功耗的影響。

 

2.系統(tǒng)實時時鐘與功耗的關(guān)系分析

 

在目前的嵌入式系統(tǒng)中,系統(tǒng)實時時鐘一般是一個硬件循環(huán)計數(shù)器。當(dāng)硬件計數(shù)器計到一定數(shù)值時會向CPU發(fā)出中斷。系統(tǒng)實時時鐘是現(xiàn)代多任務(wù)嵌入式操作系統(tǒng)的重要組成部分,因此我們需要先討論一下嵌入式操作系統(tǒng)與系統(tǒng)實時時鐘的關(guān)系。當(dāng)今的嵌入式操作系統(tǒng)一般都支持多任務(wù),優(yōu)先級和時間片調(diào)度。當(dāng)嵌入式OS運行起來后,一般都有一個IDLE任務(wù),它的優(yōu)先級最低,而其他任務(wù)的優(yōu)先級都應(yīng)該比它高。在優(yōu)先級調(diào)度機(jī)制中,只有當(dāng)系統(tǒng)中其他高優(yōu)先級任務(wù)都處于阻塞狀態(tài)時,它才有機(jī)會運行。時間片調(diào)度機(jī)制只對同優(yōu)先級的任務(wù)有效。也就是說,不同優(yōu)先級的任務(wù)之間是不會按時間片調(diào)度輪轉(zhuǎn)的,而是按優(yōu)先級來調(diào)度的。因此當(dāng)系統(tǒng)進(jìn)入IDLE任務(wù)時,可以認(rèn)為系統(tǒng)中沒有工作要CPU來做,系統(tǒng)為idle狀態(tài)。當(dāng)時間片調(diào)度機(jī)制開啟后,嵌入式OS就會根據(jù)時間片來調(diào)度任務(wù)。

 

也就是當(dāng)一個時間片用完后,要運行調(diào)度器來決定下一個時間片的歸屬。時間片的基本單位是系統(tǒng)tick,而系統(tǒng)tick是以系統(tǒng)實時時鐘為基礎(chǔ)的。當(dāng)系統(tǒng)實時時鐘中斷產(chǎn)生時,CPU會將系統(tǒng)tick加1。每當(dāng)系統(tǒng)tick增加n(一個時間片)時,嵌入式OS將啟用調(diào)度器進(jìn)行時間片調(diào)度。因此,當(dāng)時間片調(diào)度機(jī)制開啟后,就需要系統(tǒng)tick的實時更新和調(diào)度器的定時運行,也就需要實時時鐘中斷以很高的頻率定時產(chǎn)生。如果關(guān)閉時間片調(diào)度機(jī)制,則任務(wù)之間只需要按照優(yōu)先級來調(diào)度,這樣就不需要計算時間片,也就是系統(tǒng)tick不用實時更新,實時時鐘的中斷不必以很高的頻率產(chǎn)生,調(diào)度器也不用定時運行。這樣就有可能考慮延長實時時鐘的中斷間隔。同時調(diào)度器不需要進(jìn)行時間片調(diào)度,可以節(jié)省系統(tǒng)開銷。但關(guān)閉時間片調(diào)度后,系統(tǒng)就只有優(yōu)先級調(diào)度。這就要求系統(tǒng)的所有任務(wù)要主動阻塞,而不要期待調(diào)度器把同優(yōu)先級的其他任務(wù)調(diào)度出CPU而讓自己運行。在目前流行的嵌入式操作系統(tǒng)中,一般都提供了很多主動阻塞的機(jī)制,因此要做到這一點并不難。延長實時時鐘的中斷間隔,可以讓CPU長期處于低功耗狀態(tài),直到有設(shè)備中斷喚醒CPU。

 

這樣將大大減低系統(tǒng)在空閑時的功耗。延長實時時鐘中斷間隔后,需要考慮的問題有兩個,一是系統(tǒng)tick,另一個是系統(tǒng)delay。系統(tǒng)tick是實時時鐘和操作系統(tǒng)之間的接口,操作系統(tǒng)與時間相關(guān)的模塊和API,基本都是基于tick的。在一般系統(tǒng)中,實時時鐘的中斷是每個tick一次。因此tick是操作系統(tǒng)最小的計時單位。延長實時時鐘中斷間隔后,系統(tǒng)tick就會長時間不增加,因此怎樣保證系統(tǒng)tick的準(zhǔn)確性,就是最基本的問題。解決了tick的準(zhǔn)確性,就可以隔離實時時鐘對操作系統(tǒng)的影響。系統(tǒng)delay是操作系統(tǒng)一種重要的阻塞機(jī)制,它主要用于讓一個任務(wù)主動讓出CPU一段時間。一般系統(tǒng)delay是基于系統(tǒng)實時時鐘的,系統(tǒng)delay的基本單位就是tick。當(dāng)調(diào)用delay時,API函數(shù)會首先得到當(dāng)前系統(tǒng)tick,然后加上需要delay的時間,形成一個未來的delay時間點,再將任務(wù)掛到系統(tǒng)的delay隊列上。因此delay隊列上的所有任務(wù)都對應(yīng)一個自己的delay時間點。當(dāng)系統(tǒng)tick超過某個任務(wù)的delay時間點時,該任務(wù)就應(yīng)該醒來。這就需要實時時鐘的中斷來喚醒CPU,并運行調(diào)度器讓delay的任務(wù)重新進(jìn)入就緒隊列。如果實時時鐘中斷間隔延長,系統(tǒng)tick就會很長時間不增加,就很難保證delay的準(zhǔn)確性。同時delay時間到達(dá)后,也無法喚醒任務(wù)。要保證系統(tǒng)tick的準(zhǔn)確性,就要求每次主動獲得系統(tǒng)tick時,需要通過實時時鐘硬件計數(shù)器的值計算出當(dāng)前的系統(tǒng)tick。同時,需要保證主動獲取和實時時鐘中斷之間的同步。而對于系統(tǒng)delay,則需要修改硬件計數(shù)器的計數(shù)值,使其為系統(tǒng)delay隊列上的最小delay時間點的delay時間。這樣可以利用硬件計數(shù)器來準(zhǔn)確控制delay的準(zhǔn)確性,并且利用中斷來及時調(diào)度任務(wù)。

 

3.在I.MX51上的解決方案:

 

ECOS是一款優(yōu)秀的輕量級嵌入式操作系統(tǒng),它的內(nèi)核微小,緊湊,支持多任務(wù),優(yōu)先級和時間片調(diào)度機(jī)制。飛思卡爾的多媒體芯片i.mx51基于ARM Cortex-A8核,具有很高的性能,同時支持了ARM提供的低功耗功能。ARM提供低功耗模式,即睡眠模式。ARM執(zhí)行指令WFI后,會進(jìn)入睡眠狀態(tài)。在睡眠模式下,ARM的時鐘被關(guān)閉,ARM只消耗極低的功耗來維護(hù)自身的狀態(tài),即啟用SRPG(State retaining power gate)。當(dāng)有中斷發(fā)生時,ARM會被喚醒,恢復(fù)時鐘,重新開始執(zhí)行。MX51提供了多個硬件計數(shù)器,本文采用其中的GPT作為實時時鐘。GPT是一個循環(huán)計數(shù)器,可以設(shè)置最大為0xffffffff的計數(shù)值,每個時鐘計數(shù)值減1,當(dāng)計數(shù)值減到0時觸發(fā)中斷,時鐘為32KHz。GPT的計數(shù)值可以在任意時刻被ARM讀取,讀取是不影響計數(shù)的。當(dāng)IDLE任務(wù)運行時,IDLE就執(zhí)行WFI指令,讓ARM進(jìn)入低功耗模式。如果有設(shè)備產(chǎn)生中斷,ARM就會被喚醒,處理中斷以及所需的任務(wù)調(diào)度,任務(wù)運行。基于前面的分析,本文對ECOS的時間片調(diào)度和實時時鐘系統(tǒng)進(jìn)行了修改。對于時間片調(diào)度機(jī)制,在ECOS的配置文件中將其關(guān)閉。

 

對于實時時鐘,則延長了它的中斷間隔。系統(tǒng)tick在兩種情況下會被更新,一種是當(dāng)調(diào)用ECOS API去讀系統(tǒng)tick的時候,另一種就是GPT產(chǎn)生中斷。當(dāng)ECOS啟動后,將GPT的計數(shù)值設(shè)為最大,這樣GPT就需要很長時間才會產(chǎn)生一次中斷。在這期間,系統(tǒng)tick只會在ECOS API主動讀取時才會更新。系統(tǒng)tick的更新是通過讀取硬件計數(shù)器的計數(shù)值計算出來的。在ECOS系統(tǒng)的實時時鐘類中增加一個變量pre_hardware_count用于記錄上一次讀取的硬件計數(shù)器的值。當(dāng)每次系統(tǒng)API讀取tick時,當(dāng)前硬件計數(shù)器的值與上一次讀取時硬件計數(shù)器的值的差值就是兩次讀取之間已經(jīng)過去的tick數(shù)。當(dāng)實時時鐘產(chǎn)生中斷時,即硬件計數(shù)器計到0,將此變量清零。

 

這樣,就可以保證每次讀取系統(tǒng)tick 時,能得到一個準(zhǔn)確的系統(tǒng)tick值。當(dāng)有任務(wù)要主動延時一段時間,即調(diào)用系統(tǒng)delay API時。ECOS的API函數(shù)會計算出該任務(wù)的delay時間點,然后將該任務(wù)掛入系統(tǒng)delay隊列。然后遍歷系統(tǒng)delay隊列,找出隊列中的最小delay時間點,把該delay時間點對應(yīng)的delay時間寫入GPT,讓GPT來控制delay時間。delay時間到后,GPT會產(chǎn)生中斷,ECOS將中斷處理程序分為兩部分,ISR和DSR。在ISR中將硬件計數(shù)器設(shè)為最大值。然后在DSR中增加系統(tǒng)tick,將超時的任務(wù)重新掛入就緒隊列,并且再次找出系統(tǒng)delay隊列上的最小delay時間點,寫入硬件計數(shù)器。如果系統(tǒng)delay隊列為空,則不對硬件計數(shù)器再進(jìn)行操作,保持ISR 中寫入的最大值。最后ECOS會運行調(diào)度器,如果超時的任務(wù)具有最高優(yōu)先級,那么它就會得到運行,也就是醒過來。這樣也就可以保證系統(tǒng)delay的準(zhǔn)確性與及時性。下圖是修改后實時時鐘后系統(tǒng)tick, delay以及調(diào)度器相關(guān)的流程圖。

 

下圖是修改后實時時鐘后系統(tǒng)tick, delay以及調(diào)度器相關(guān)的流程圖。

實時時鐘修改流程圖

圖1. 實時時鐘修改流程圖

 

下面是在飛思卡爾公司i.mx51上的實驗數(shù)據(jù)。

可以看出,修改了時間片調(diào)度和實時時鐘后,不論ARM工作在哪個電壓點,系統(tǒng)IDLE時的功耗降低了差不多10倍。因此,延長實時時鐘中斷間隔能極大的降低系統(tǒng)功耗。

 

4.其他系統(tǒng)的類似方法

 

當(dāng)前流行的嵌入式操作系統(tǒng)Linux和WinCE也都在討論修改系統(tǒng)實時時鐘中斷方式以求降低系統(tǒng)功耗。對于Linux系統(tǒng),有一個Less Watts項目,實現(xiàn)tickless idle,即無tick的idle,其實就是修改實時時鐘的中斷方式。WinCE則提供了可變系統(tǒng)時鐘節(jié)拍Variable Tick Scheduler,在進(jìn)入idle狀態(tài)前改變系統(tǒng)時鐘節(jié)拍,這樣在預(yù)期的時間段里,idle狀態(tài)不會被無謂的系統(tǒng)時鐘中斷喚醒。

 

5.結(jié)論

 

可以看出,通過修改實時時鐘中斷方式,可以使CPU在idle狀態(tài)下長時間處于低功耗模式,極大的降低系統(tǒng)功耗。而且當(dāng)前流行的嵌入式操作系統(tǒng)都在積極的探討此方法。相信今后這項功能會成為嵌入式操作系統(tǒng)必備的一個功能。

 

下一篇: PLC、DCS、FCS三大控

上一篇: 如果Fuse保護(hù)效果不佳

推薦產(chǎn)品

更多
中文字幕第二一区_久久久久在线视频_精品国产自在现线看久久_亚洲精品一区二区三区电影网

      9000px;">

          亚洲激情图片qvod| 高清日韩电视剧大全免费| 亚洲午夜私人影院| 国产精品乡下勾搭老头1| 欧美精品久久一区二区三区| 中文字幕一区二区三区视频| 成人伦理片在线| 国产精品三级久久久久三级| 国产精品综合二区| 久久九九影视网| 精品一区二区三区日韩| 久久久www免费人成精品| 日韩精品高清不卡| 一本大道久久a久久综合婷婷| 中文字幕第一区综合| eeuss国产一区二区三区| 国产精品白丝在线| 久久99精品网久久| 91精品国产欧美一区二区| 首页欧美精品中文字幕| 欧美一区二区三区电影| 日韩国产高清影视| 欧美日韩一区二区三区视频| 国产日韩欧美精品一区| a4yy欧美一区二区三区| 中文在线一区二区| 欧美伦理影视网| 国产成人在线观看| 婷婷国产在线综合| 亚洲欧美福利一区二区| 久久综合久久久久88| 91传媒视频在线播放| 国产一区二区三区在线观看免费| 国产日韩精品一区二区三区| 色综合久久九月婷婷色综合| 免费观看91视频大全| 国产精品蜜臀在线观看| 911国产精品| 欧美在线|欧美| 久久99精品久久久久久| 亚洲欧美日韩电影| 久久婷婷久久一区二区三区| 在线观看网站黄不卡| 国产精品乡下勾搭老头1| 日韩精品一二三区| 亚洲另类一区二区| 精品国产一区二区三区不卡| 在线观看不卡一区| 色综合久久久久网| 国产aⅴ综合色| 国产aⅴ精品一区二区三区色成熟| 看电视剧不卡顿的网站| 久久av老司机精品网站导航| 亚洲高清不卡在线观看| 亚洲图片欧美视频| 亚洲丰满少妇videoshd| 亚洲一区二区三区激情| 午夜精品福利一区二区三区蜜桃| 中文字幕欧美三区| 亚洲国产cao| 激情久久五月天| 99久久精品费精品国产一区二区| 一本久道久久综合中文字幕 | 欧美一级二级三级蜜桃| 精品国产免费人成电影在线观看四季| 91麻豆精品国产自产在线观看一区 | 色综合天天综合网国产成人综合天| 国产精品正在播放| 91黄视频在线观看| 欧美电影精品一区二区| 久久久久久久久久久久久久久99 | 中文字幕一区二区三区色视频| 亚洲精品videosex极品| 日本少妇一区二区| 色视频一区二区| 欧美国产综合一区二区| 免费人成精品欧美精品| 色老头久久综合| 国产亚洲一二三区| 久久99精品久久久久久久久久久久 | 欧美成人性战久久| 琪琪久久久久日韩精品| 在线精品视频一区二区三四| 亚洲天堂中文字幕| 色综合久久综合网欧美综合网| 欧美国产日韩在线观看| 国产在线精品一区二区三区不卡 | 久久人人超碰精品| 伦理电影国产精品| 欧美电视剧免费观看| 日本在线不卡一区| 久久嫩草精品久久久精品| 狠狠色丁香九九婷婷综合五月| 日韩欧美国产一二三区| 久久精品国产久精国产| 日韩欧美色综合| 国产精品亚洲а∨天堂免在线| 国产亚洲综合色| 99精品一区二区三区| 亚洲一区二区在线观看视频| 欧美日韩小视频| 精品一区二区三区不卡| 国产精品视频一二三区| 99久久久免费精品国产一区二区 | 国产成人在线观看| 蜜臀久久99精品久久久久久9| 国产偷国产偷亚洲高清人白洁| 亚洲欧美综合另类在线卡通| 成人精品视频网站| 日韩一区二区在线播放| 日韩手机在线导航| 国产精品丝袜一区| 亚洲最大色网站| 美女在线视频一区| 欧美精品在线视频| 国产亚洲精久久久久久| 亚洲午夜久久久久久久久电影网 | 精品国产乱码久久| 国产成人综合亚洲网站| **性色生活片久久毛片| 制服丝袜日韩国产| 99国产精品久| 国产精品亚洲一区二区三区在线 | 亚洲欧洲韩国日本视频| 亚洲成人av福利| 精品中文av资源站在线观看| 91精品国产色综合久久不卡蜜臀| 成熟亚洲日本毛茸茸凸凹| 一区二区免费看| 国产亚洲制服色| 欧美精品一区二区三| 日韩欧美中文字幕精品| 91精品国产综合久久久久久漫画| 欧美三级一区二区| 欧美男同性恋视频网站| 欧美一级夜夜爽| 欧美欧美欧美欧美| 欧美一区二区三区在线看| 精品国产亚洲在线| 精品国产91洋老外米糕| 久久综合久久99| 国产精品国产三级国产aⅴ原创| 中文字幕不卡三区| 亚洲人成网站影音先锋播放| 国产精品你懂的| 亚洲资源中文字幕| 婷婷丁香激情综合| 久久国产三级精品| 国产精品综合二区| 91国偷自产一区二区开放时间| 欧日韩精品视频| 91麻豆精品国产91久久久更新时间| 91麻豆福利精品推荐| 在线观看日产精品| 欧美精品一区视频| 亚洲国产日韩一区二区| 精品一区二区三区不卡| 在线观看欧美黄色| 精品国产凹凸成av人导航| 一区二区不卡在线视频 午夜欧美不卡在| 日本亚洲天堂网| 在线免费观看不卡av| 自拍偷拍亚洲激情| 国产福利一区二区三区在线视频| 99精品热视频| 欧美国产综合色视频| 紧缚奴在线一区二区三区| 欧美视频一区二区三区在线观看 | 精品99一区二区三区| 一区二区视频在线看| 国产精品一区二区免费不卡 | 日韩毛片高清在线播放| 国产一区三区三区| 5858s免费视频成人| 三级一区在线视频先锋| 欧美日韩中字一区| 亚洲韩国精品一区| 欧美日韩国产天堂| 日韩 欧美一区二区三区| 欧美精品电影在线播放| 日韩极品在线观看| 欧美v日韩v国产v| 国产精品一级二级三级| 亚洲人吸女人奶水| 欧洲av一区二区嗯嗯嗯啊| 日韩电影在线免费观看| 精品黑人一区二区三区久久| 国产精品一区二区在线看| 国产精品高清亚洲| 51久久夜色精品国产麻豆| 免费观看久久久4p| 国产精品色在线| 欧美一区二区三区视频在线| 国产福利一区二区三区视频在线| 亚洲色图另类专区| 欧美精品自拍偷拍动漫精品| 韩国三级电影一区二区| 一卡二卡欧美日韩| 欧美激情中文字幕| 欧美一级一区二区|