可重構系統(tǒng)功耗相關的硬件任務調度算法
(1)算法1:EEHTS算法本文引用地址:http://www.ex-cimer.com/article/188567.htm
在任何時刻t,EEHTS算法首先檢查Alist隊列中的第1個任務Ti,函數(shù)有3種可能的返回結果:ACCEPT、REJECT和NULL。第2行中如果FPGA空白區(qū)域列表B中有合適的位置放置任務Ti,那么將Ti加入到Elist中,然后第6行重新計算1個更加優(yōu)化的FPGA頻率fe,如果fe小于當前FPGA運行的頻率fworking,并且在fe下所有Elist中任務均能在其截止期內完成,那么說明可以在保證任務截止期的條件下通過降低頻率而降低硬件任務的整體功耗,所以此時算法返回ACCEPT;第13行如果任務即將或者已經錯過最遲開始時間,那么此時函數(shù)返回REJECT,表示此任務被拒絕;第15行如果當前時刻沒有合適的位置,但是任務仍沒有到其最遲開始時間,表示在將來的時刻仍然可能獲得任務所需資源,所以函數(shù)返回結果NULL。
算法1中第6行重新計算FPGA工作頻率的算法如算法2所示,其中F是所有硬件任務工作頻率值的集合。需要說明的是,同一時刻在FPGA運行的硬件任務的工作頻率值必須相同,并且選擇5作為FPGA頻率的增量也是符合實際FPGA技術情況的。
(2)算法2:選擇最優(yōu)的頻率值作為FPGA的運行頻率
步驟1:fscheduled,max=min(fi,min|Ti∈Elist)
步驟2:對于F集合中的滿足fmin≤f≤fscheduled,max的每個f值,計算:
選取使得計算步驟2中結果最小的,值作為FPGA的運行頻率值,從而使得FPGA的總體功耗最低。
3 模擬實驗及分析
由于當前并沒有一個統(tǒng)一的基準用于評價可重構系統(tǒng)功耗相關的調度算法,因此采取了類似參考文獻[2]中的模擬實驗模型設計了離散時鐘的模擬器,模仿實時系統(tǒng)中的時鐘滴答以進行任務截止期的檢查。然后設計隨機任務生成器,生成分別含有1 000、2 000、3 009、4 000、5 000、6 000個Ti(fi,max,ωi,ai,ci,ti,ei,fworking)的任務集,硬件任務的寬度和執(zhí)行時間也是隨機生成的。
假定目標器件為Xilinx Virtex XCV1000,共96列×64行,其中可用于配置硬件任務的動態(tài)部分是80列,其他用于操作系統(tǒng)進行通信和I/O。模擬實驗中采用的參數(shù)如下:任務的最小寬度ωmin=1,Nmax=80,任務的寬度范圍ωi為1~80;fmin=20 MHz,fmax=100MHz,所以各個任務的可運行的最大頻率fi,max∈[20,25,…,1 000];任務在fi,max頻率時的運行時間ti范圍為100~1 000 ms。ei范圍為20~200 mJ,ei的大小和任務寬度相關。到達時間范圍01.5~500 ms,模擬器的時鐘滴答設置為500 μs。分別模擬了采用ELST算法和EEHTS算法的任務集的總體運行時間和整體功耗,如圖4和圖5所示。從圖4中可以看到,采用ELST算法的任務運行時間曲線要比采用EEHTS算法的低,這是因為只采用ELST算法時并不改變FPGA的運行頻率,F(xiàn)PGA始終使用最高頻率運行,顯然這種方法的功耗會大于EEHTS算法,實驗結果也證明了這點。如圖5所示,EEHTs算法雖然犧牲了一些時間性能,但是硬件任務仍然可以在其截止期內完成,并且相對于ELST算法,硬件任務功耗大約降低了32%。
結 語
在嵌入式系統(tǒng)中,低功耗是非常重要的目標。本文通過對可重構系統(tǒng)中硬件任務調度算法的研究,在對硬件任務調度時加入了對功耗的考慮,動態(tài)改變硬件任務運行的頻率,從而降低系統(tǒng)整體功耗。
評論