第四章 電壓排程的耗損
4.3 電壓調整策略
4.3.1 Miss-deadline
4.3 電壓調整策略
過去的電壓調整策略,大都是依CPU和Workload的使用率直接來做調整並沒有考慮耗損 時,那麼很容易造成無法排程或miss-deadline。
使用即時系統的目的還是在利用和確保”即時”的工作性質,因此任何排程策略的產生 首先必需確保Miss-deadline不會產生。因此,本研究提出結合電壓調整之耗損的排程 策略將從即時性質開始討論。
4.3.1 Miss-deadline
Miss-deadline的原因主要是沒有足夠的時間處理調整時的耗損,因此Task在面臨調整 時需要將調整的時間計算進去,但是如此一來,似乎只要將WCET的時間加上轉換的時間 就萬無一失了?但是,增加WCET將意味著需要更高階的CPU才能保證這所有的工作都能準 時完成,然而CPU效能的提升意味著CPU實際的利用率可能會降低,如此的考慮方法太過 於消極。因此,在本研究中提出有效的策略來保證即時性質,並且比將調整的延遲加入 WCET內要能夠減少為做電壓調整所發生的耗損。
圖 4.2 Voltage scaling up
計算 i i current
i current
C S α = D t⋅
− ,
a
i ≤t
current若αi>1,則需做升頻與升壓的動作。因此需重新計算升頻與升壓的時間延遲的結果是否 仍然滿足工作的執行所需:
( )
圖 4.3 Voltage Scaling down
此外,還有若干的狀況需要進一步考慮調降的工作。 若是調降後會產生miss-deadline 則無法執行scaling down的動作,圖4.4說明了這樣的情況。
圖 4.4 Voltage scaling down but miss deadline.
上述說明了slack必需足夠才能做電壓的調整。此外,考慮一種排程的狀況,若Task的 workload小於轉換的耗損,那麼不斷的做轉換將導致更多的損耗。
證明如下:
假設有N個Task{1..N},Task{1,3,5,…,N}的WCET使用的工作電壓為v1, Task{2,4,
6,8…,N-1}的WCET使用v2且
D
i−1 = ,暫不考慮idle的情況。a
iDVS 100 overhead
E ⋅N E N E
overhead V2
E >E
所以, Edvs >Edvs o_
圖 4.5 工作量小於電壓調節的耗損.
藉由圖4.5 (a)說明了,電壓的調節必須視其工作量的大小做判斷,也就是投資報酬率 的觀念。在這樣的定義當中暫時忽略miss-deadline的情況發生,單就能量的損耗而言 做計算,換言之;若是調降後所節省下來的能量小於電壓調節時的能量消耗,尤其工作 量又小於電壓調節時的損耗,那麼反而會導致額外的浪費。 此外,在圖4.ZZ的(b)及(c) 又導出miss-deadline的狀況其中若
2 max, v2 max
V =V S =S 則會發生miss-deadline,當然這 樣的假設過於極端,然而確可借此突顯出電壓調節造成延遲的重要性。誠如前文所撰,
將電壓調節的延遲時間加入WCET內就不會產生miss-deadline了,當然,這是解決的方 法之一,可是WCET的增加勢必造成為處理所有極端的情況下必須採用更高階的CPU,如 此一來對系統設計是不利的且因CPU運算能力的升級,有可能會更耗電。 因此,為 deadline的控制並充份利用slack和idle的時間做電壓調整的動作。將擬定另外的策略。
基本上,Scheduler若計算出現行的運算量是CPU目前的運算能力無法負擔的,那麼將無 條件加以調整提昇電壓和頻率。 以符合需要且確保工作的即時性。但是,操作電壓和 頻率的下降則有較多的考慮,例如:若是工作量在較低的頻率下雖可運算結束,但是加 上電壓調節的時間延遲,則有可能會超過其限制的時間這麼做將得不償失,沒有必要。
此時,slack將會產生,可以將slack搜集起來並視情況再利用。
圖 4.6 說明著這樣的關係:
圖 4.6 保持原來的操作參數
因此,下面將針對一些task排列的狀況,來增加slack和idle的重新利用。