新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于混合任務的動態電壓調節算法驗證及仿真

        基于混合任務的動態電壓調節算法驗證及仿真

        作者: 時間:2014-06-26 來源:網絡 收藏

          在目前的應用中用得越來越廣泛,尤其在功能復雜、系統龐大的應用中顯得愈來愈重要。人們要求實時產品能夠提供更為強勁的計算能力,以滿足無線通信、多媒體應用的要求,然而高性能的代價就是高能耗,因此延長實時嵌入式系統電池使用時間已經成為實時嵌入式系統設計普遍關注的問題。在實時嵌入式系統中,核心處理器的能耗占據整個能耗的相當大一部分。調節被看作是降低處理器能耗的關鍵技術,其原理是在系統運行時態通過動態改變處理器的電壓和頻率,降低系統中的無用能耗,從而提高能量的有效利用率[1]。

        本文引用地址:http://www.104case.com/article/248870.htm

          當前,基于任務的調節算法主要集中在對周期性任務集合的研究,其中只有很少一部分是對周期性任務和非周期性任務的混合任務集進行研究。另外,基于工作負荷的DVS算法盡管能從系統級上解決無用能耗問題,但卻很少考慮到系統的實時性。

          1 調節算法理論背景

          1.1 動態電壓調節算法的必要性

          由于CMOS電路的能量消耗E與電路電壓V的平方成正比,因此降低電壓是降低線路能耗的最有效的方法之一。DVS算法的基本原理: 系統在運行時間內根據性能的不同要求而相應地執行降低或者提高電壓和工作頻率的操作,從而降低能耗。

          傳統的電源管理技術只是在空閑時間內降低功耗十分有效,而在運行時間內卻無能為力。目前,一些操作系統內核對動態電壓管理(DPM)的支持還是局限于不能調整核心電壓,主要是通過調整CPU頻率和支持開關外圍設備的供電來實現。但是近年來,隨著半導體技術的發展,在運行時態動態改變處理器的工作電壓和/或時鐘頻率已經變成了現實。很多商用嵌入式處理支持動態電壓調節DVS這一技術,比如TI公司的OMAP系列處理器、Intel公司的StrongARM處理器、Transmeta公司的Crusoe處理器,還有IBM公司的PowerPC 405LP處理器等。

          1.2 與任務調度

          在實時系統軟件中,最基本的軟件是。它是實時系統軟件的基礎,所有的實時應用軟件都是在實時操作系統的支撐下運行的。與通用操作系統相比,實時操作系統有其特有的一些重要特征,包括規模較小、中斷時間很短、進程切換很快、中斷被屏蔽時間很短、能管理ms級或μs級的多個定時器。因此它能適應各種實時應用的需求,從快速的實時響應到慢速的實時響應,都能應付自如。

          實時系統的實時性通過周期(period)和時限(deadline)來體現。周期是均勻重復性任務每兩次調用開始的時間間隔。任務必須在某個時刻前完成操作,啟動時刻與該時刻的時間間隔被稱為“時限”。均勻重復性任務又稱為“周期性任務(periodic task)”。周期性任務在一個周期內的一次調用可以看作是一個作業。通常,周期性任務的作業周期和時限是相等的。

          實時操作系統的核心就是任務調度。它提供給系統一個決策機制,決定在某個瞬間時刻下,系統作業池中哪一個作業占用處理器。基于線程的任務間DVS算法就是以實時系統的任務調度為主要理論基礎。

          1.3 服務器

          然而,現實的情況是實時系統中并非所有的任務都是非周期性的。對于兩種任務的混合調度情況,在基于優先級的方案中,簡單地使非周期性任務的優先級低于周期性的任務[2]。這樣,非周期性任務作為后臺活動運行;而在搶占式系統中,它就不能掠奪周期性任務的資源。盡管這是一個安全的方案,但是考慮到非周期性任務的時限,如果讓它們只作為后臺運行,往往會錯過它們的時限。為了改善非周期性任務的這種狀況,可利用服務器(server)來解決。在RM策略下,最廣泛研究的是可延期服務器(Deferred Server,DS)和偶發服務器[3](Sporadic Server,SS)。

          在DS中,引進一個新的最高優先級任務,這個任務也就是服務器。它有一個周期Ts和一個容量(Budget)Es。在運行時態,當一個非周期性任務達到時,如果服務器有可用容量,就立即開始執行,直到任務完成或服務器容量耗盡;如果服務器沒有可用容量,那么非周期進程會被掛起(或轉換為后臺優先級)。在DS模型中,服務器容量每Ts個單位被補充一次。

          SS的操作不同于DS在于它的容量補充策略。在SS中,如果一個任務在t時刻到達,并要求使用容量e,那么服務器在時間t后的Ts個時間單位補充容量e。通常,SS能提供比DS更高的容量,但同時也增加了實現的開銷。

          2 基于混合任務集的減慢因子DVS算法

          在實時系統中可調度性是保證系統可靠的重要參數,對任務集進行可調度性分析是減慢因子算法的必要部分。在進行可調度性分析的過程中,本文把非周期性任務的服務器看作固定優先級的周期性任務,將服務器的周期Ts作為任務周期和周期性任務一起分析。假設在系統S中存在著n個周期性任務t1、t2、t3、 K、tn和個非周期性任務a1、a2、a3、K、an,所有的非周期性任務受可延期服務器DS的調度。如果系統S運行于固定速度處理器上,混合任務集在單調速率可搶占的調度方案下調度,那么可以用周期性任務集的單調速率可搶占調度方案的響應時間分析方法對這個混合任務集進行可調度分析。

          減慢因子即任務的運行頻率和最高頻率之間的比值。在系統運行期間,即使所有任務按照最壞情況執行時間(WCET)運行,大多數情況下處理器的利用率也遠低于100%,任務集在某個任務時限前,系統處于空閑調度循環中。因此,對處理器的電壓和工作頻率進行減慢因子計算,使空閑時間間隔大大縮短甚至消失,這樣就達到了降低能耗的目的。

          在下面的減慢DVS算法中,當任何新的周期性任務或者服務器進入系統并且在調度器中登記后,將會執行 Compute_Slowdown_Factors過程,進行整個系統的可調度性分析,并且為每一個任務計算出最低的工作頻率,從而保證所有任務在其工作頻率下運行仍舊是可調度的,不會影響整個系統的實時性需求。

          下面給出計算靜態減慢因子αs算法的偽代碼(其中0<αs≤1):

          //Algorithm Compute_Slowdown_Factors

          Inputs:

          S//將要進行減慢因子計算的任務集,包括周期性任務和非周期性任務的服務器

          Outputs:

          Slowdown_Factors[]//任務集的靜態減慢因子

          {

          Sm//計算出減慢因子后,將要超過時限的任務集,初始化為空集

          Current_Scaling _Factor=1;

          For S中的每一個任務i

          Slowdown_Factor[i]=1;

          While (S不為空集){

          F=Scale_WCET(S,Slowdown_Factor[]);//計算減慢因子F

          重新設置Sm;

          Current_Scaling_Facotr *=F;

          For S中的每一個任務i {

          If任務i!=服務器

          Slowdown_Factor[i]=F;

          }

          重新設置集合S,讓集合S中所有任務的優先級小于Sm中最低優先級任務的優先級;

          }

          }

          上面的程序通過Scale_WCET過程計算一個減慢因子,使得給定任務集中存在的一個或者多個任務的最差響應時間剛好等于它們的時限(此時該任務集剛好可調度),這樣的任務稱為“臨界任務”。Compute_Slowdown_Factors過程首先調用Scale_WCET過程計算初始任務集的同一減慢因子F;然后讓優先級低于臨界任務的任務集繼續調用Scale_WCET過程計算出新的減慢因子。這是因為如果繼續讓作用于優先級高于臨界任務的減慢因子F變小,則必然會導致至少有一個臨界任務超過時限,破壞了系統的實時性;而讓作用優先級低于臨界任務的減慢因子F變小,則不會影響整個任務集的可調度性。這個過程將會反復執行,直到初始任務集中的最低優先級任務變成臨界任務。總之,這個迭代過程為每一個任務計算出減慢因子,同時保證整個任務集是可以調度的。需要說明的是,對于服務器將不會應用靜態減慢因子,因為如果增加了服務器的運行時間,則必然會造成受服務器調度的非周期性任務的平均響應時間的增加。

          3 算法驗證和仿真

          本算法通過T1 OMAP1612的TCSCDMA無線終端平臺來驗證,對實時嵌入式操作系統Nucleus微內核進行功能上的擴充,主要是實現了可延期服務器(DS)和偶發服務器(SS)來對非周期性任務進行調度。同時,又整合了基于本算法的DVS模塊和CPU功率檢測模塊。

          本實驗通過3種情況(沒有采用DVS算法,以及基于混合任務集的減慢因子DVS算法在DS和SS中的分別應用)分別在服務器利用率為25%、35%、45%的情況下進行了時間為60 s的實驗,得出各情況下能耗在不同服務器利用率下的關系,如圖1所示。

          

         

          圖1 各種算法的能耗對比

          圖1結果表明,采用基于混合任務集的減慢因子DVS算法與沒有采用DVS算法相比,能耗降低了大概19.3%~32%;同時也看到,服務器利用率越高,能耗越接近于沒有采用DVS算法所產生的能耗。這是因為為了保證非周期性任務有很短的響應時間,基于混合任務集的減慢因子DVS算法在服務器上運行時,總是以最高頻率運行,同時高服務器利用率意味著服務器會占用很大一部分CPU周期。因此,在這樣的環境下,CPU很大的一部分時間都運行在最高頻率上,導致服務器利用率越高, 越接近沒有采用DVS算法的情況。

          4 結論

          本文提出的針對靜態空閑間隔的靜態減慢因子算法屬于脫機(offline)的DVS算法。該算法同時把占系統很大部分的非周期性任務一起進行分析,把非周期性任務的服務器當作周期性任務進行動態電壓調節,從而解決了非周期性任務的功耗問題,具有很大的實際意義。在保證性能的同時,降低了系統中的無用能耗,提高了能量的有效利用率。隨著研究的深入,還將深入到對聯機(online)情況進行動態電壓調節。

          參考文獻

          [1] Pering T, Burd T, Brodersen R. Dynamic voltage scaling and the design of a lowpower microprocessor system[C]. Proceedings of the 7th Annual International Conference on Mobile Computing and Networking, 2001:251259.

          [2] Hakan Aydin, Qi Yang. EnergyResponsiveness Tradeoffs for RealTime Systems with Mixed Workload[C].IEEE RealTime and Embedde Technology and Applications Symposium,7483,2004.

          [3] Dongkun Shin, Jihong Kim. Dynamic voltage scaling of periodic and aperiodic tasks in prioritydriven systems[C]. Proceedings of the 2004 Conference on Asia South Pacific Design Automation: Electronic Design and Solution Fair 2004, 2004:653658.

        linux操作系統文章專題:linux操作系統詳解(linux不再難懂)


        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 锡林郭勒盟| 大足县| 天气| 芦溪县| 讷河市| 广河县| 穆棱市| 丁青县| 平湖市| 绩溪县| 和田县| 疏附县| 明溪县| 珲春市| 日照市| 衡山县| 项城市| 云霄县| 常州市| 集安市| 云林县| 靖边县| 宝丰县| 木兰县| 张掖市| 来凤县| 临汾市| 昆明市| 磐安县| 奇台县| 祁门县| 正宁县| 通化市| 南雄市| 交口县| 慈溪市| 卫辉市| 从江县| 麦盖提县| 三河市| 牡丹江市|