• 沒有找到結果。

DVS (Dynamic Voltage Scaling)是指CPU可以依照其原設計的規格給予不同的工作電 壓,且改變工作電壓不需關閉電源重新啟動的一種技術,例如:Transmeta的CrusoeTM CPU,

AMD的Mobile K6和Athlon的CPU, Intel Xscale系列的RISC。

在降低電壓方面,CPU在較低的電壓底下工作可以節省電源和減少能量的消耗,一般而

No Voltage Scaling Quadratic Model

圖 1.2 Voltage Scaling

在Hard Real-Time系統使用DVS技術的電壓排程中,有兩種主要的方法:Intra-Task和 Inter-Task。

其中最主要的差別為:這兩種類的演算法所計算或預測出來的空閒時間(slack)是使用 在目前的Task還是下一個Task上。Inter-Task的電壓調節點是介於Task與Task之間,而 Intra-Task則是在Task內部置入調節點。因此,Inter-Task所產生的slack是給下一個 Task使用,而Intra-Task使用的Task則是用予目前的Task。

1.3.1 Intra-Task DVS

在即時系統中每個Task最差情況下的工作時間為WCET(Worst Case Execution Time)。 然 而在一個Task內可能有許多執行的分支與路徑,因為執行的路徑不同所以造成執行時間 的變化。所以當執行路徑不是WCEP(Worst Case Execution path)時工作將產生slack。

在 這 種 情 況 下 , Intra-DVS 為 利 用 slack 的 時 間 , 可 以 立 即進行調整以節省能量。

Intra-Task的演算法有下面兩種:

1. 路徑法

路徑法是依程式執行的路徑去決定工作電壓和執行頻率,若是執行的路徑與預先參考的 執行路徑不同時,則工作電壓和執行頻率將會被調整。所以如果新執行路徑的執行時間 多過於參考路徑,則工作電壓和執行頻率將會上升以保持工作的即時性。 換句話說,

如果新的路徑比參考路徑早完成的話,那麼CPU的工作電壓和執行頻率要下降以減少能 源的消耗。

2. 推測法

推測法為一開始執行就用低速然後視需要的時候再加速,比一開始用高速當slack發生 時再減速來得好。 一開始用低速執行,如果工作結束得比WCET早,如此將不需要用高 速去執行。 理論上,如果能夠推測Task的工作時間那麼就能夠計算出最佳化的排程。

此外,運用推測法CPU的速度將在既定的時間點提高工作電壓和執行頻率。因此推測法 有可能無法完全運用所有的slack,而路徑法則可以完全運用slack。

1.3.2 Inter-Task DVS

Inter-DVS是利用TASK與TASK之間的時間作工作電壓和執行頻率的調節,步驟為:(1)執 行。 (2)工作完成並計算下一個工作的執行時間。 (3)指定下一個工作的供應電壓。 (4) 執行下一個工作。大部份的Inter-DVS演算法在計算下一個工作的執行時間上有所不同

一般Inter-DVS包括二個方面:slack的評估和slack的分配。

Slack評估的目的是盡可能的將slack time找出來,而slack分配目的是將slack分散使 得工作的條件儘可能平均。Slack的來源有兩個:靜態的slack是指在WCET到時間限制間 那些額外的時間。而動態的slack將視工作在執行時所產生的空閒時間。

1.3.2 Slack評估的方法

(1)靜態 靜態常數的評估法是用來計算最穩定工作速度的方法,保證工作排程的最小執 行速度。

(2)動態 三個常用的動態評估技術:

¾ 擴張法 即使所有的工作用最大常速度排程,因為真正的工作的執行時間 常常少於它們的WCET所以會有動態slack times。一個簡單的方法用來估 計動態slack time,就是用下一個工作的啟始時間。

¾ 優先權利用法 這個方法的基本想法是,當高優先權工作在它的deadline 前完成那麼接下來低優先權的工作,能夠使用高優先權剩下來的slack time。相反的,也有可能是高優先權的工作去利用從低優先權工作的slack time。然而後者要精確地實作,需要大量的計算。

¾ 經驗法 TASK的實際執行時間往往都不會到達最長執行時間。為提高預測 的準確率,可以使用過去執行過的經驗來提高slack的預測準確率。

相關文件