最近讀了一些1996-2000年的通過排程來降低cpu能耗的文章,主要文章有[1] [2] [3] [4] [5], 簡單總結一些該時期單核CPU功耗感知的排程策略。
該時期還出現了很多關於低功耗電路設計的文章,利用電壓可調節的技術,將執行單元作為節點,執行單元之間傳輸的資料作為邊,構成DAG,對DAG進行分析,在滿足throughput limit的情況下調節node的電壓來降低功耗。
Paper Analysis
Hongy於1998年DAC發表的論文[1]中主要針對擁有多電壓可程式設計處理器核和記憶體的SOC進行功耗降低,文章可以分為兩部分,第一部分是設計層面動態分配資源,調整處理器核、icache和dcache的數量和引數;第二部分是任務層面的排程,通過least-constraining most-constrained提出了非搶佔式排程演算法,下面講一下其第二部分排程演算法,該排程演算法分為兩部分:
-
假設所有的任務在很小的電壓下排程
首先對任務時間進行分片,分為time region。通過目標函式計算time region的值
$$
OBJ(TimeRegion tr) = maxVoltage(tr) * aveVoltage(tr)
$$
然後假定所有的任務從arrival time執行到deadline,計算time region中所有任務的最大電壓和平均電壓,time region的OBJ用來計算task的constraint
$$
OBJ(Task t) = \sum_{tr ∈[a_t, b_t]}OBJ(tr) * r_t^2/(d_t - a_t)^2
$$
$ r_t$ 是任務在該電壓下的執行時間(execution time),其中沒有被包含在其他任務時間下的,且OBJ最大即most_constrained的task,被排程在和他run-time相同的interval(a subset of time regions with the lowest sum of objective functions)下執行,排程完任務t後,對其他任務的arrival time和deadline進行更新,然後遞迴排程 -
為了降低功耗調整電壓
同一年Hongy又發了另一篇文章[2],思路和[1]一樣,第一部分進行Resource Allocation,第二部分進行Task schedule,這一篇文章中任務排程演算法為可搶佔的任務排程演算法,同時考慮了電壓切換的限制,雖然仍假設電壓是連續變化的,但是對最大變化速率(斜率)做出了限制,設定最大為K,且變化時仍能工作。演算法思路仍是least-constraining most-constrained啟發式排程演算法,增加了搶佔機制,先排程後調壓。
Ishihara於1998年發表的論文[3]中對可動態調節電壓上的排程問題進行了分析,提出了幾個lemma和theorem,比較出彩的是他考慮到了電壓不能連續變化的搶礦,指出兩個相關的theorem:
- 當處理器只能使用一部分離散的電壓值,最多兩個電壓變化即可最小化energy
- 最小化energy的兩個電壓值是相鄰於$V_{ideal}$(假如用一個供電電壓v正好在deadline完成任務,那麼v是使energy最小化的供電電壓,記為$V_{ideal}$)
兩個定理表明,通常最優化的電壓調節只需要一次電壓更改,因此電壓變化帶來的開銷往往是可以忽略的
最終給出了排程問題的整數線性規劃(ILP)形式
1999年,Shin在DAC中發表了一篇關於硬實時系統上固定優先順序排程演算法的研究[4]。首先介紹一下什麼是固定優先順序排程演算法,在基於優先順序的搶佔排程演算法(priority-based preemptive scheduling algorithm)問題中,一般分為兩種演算法
-
fixed-priority(static) algorithm
任務執行前靜態設定好其優先順序,執行中優先順序不發生變化。經典的有RMS(Rate-Monotonic Scheduling)或DMS(Deadline-Monotonic Scheduling)。
-
dynamic-priority algorithm
任務執行時動態設定其優先順序,比如EDF(Earliest Deadline First)
關於上面三種演算法,可以參考部落格,這裡不進行介紹。
在嵌入式系統中,通常將任務分為具有deadline要求的週期性(periodic)任務和非週期性(aperiodic)任務,為了分析系統的可排程性,通常會通過static analysis[6] [7]、profiling或direct measurement的方法得到任務的最壞情況執行時間(在可變電壓處理器上,根據其處理器最大速度情況下計算)。作者基於以下兩個觀察:
- 任務一般比WCET跑得快
- 在固定優先順序排程中,即使任務跑在WCET,也會出現一些idle time
以上兩種情況會導致idle time的出現,如果可以通過DVFS或DPM技術,降低idle時間的出現,同時在出現idle的時候進入power-down mode,就可以大大減少功耗。於是作者在現有排程技術上進行修改,現有的排程器維持兩個佇列:
-
run queue
儲存準備在cpu上執行的任務,按照優先順序排序。
-
delay queue
儲存等待下一個週期到來的任務,按照release time排序。
正在cpu上執行的任務稱為active task,每次排程器執行時,會檢查delay queue中是否有任務可以被移到run queue,如果有的話,移入run queue,然後將run queue首節點和active task的優先順序比較,來判斷是否發生任務切換。
作者增加了兩種機制
- 如果沒有等待執行任務(run queue為空)和正在執行的任務,所有任務都在等待下一次任務到來,則進入power-down模式
- 如果沒有等待執行任務(run queue為空)且有正在執行的任務,則調整電壓儘可能降低,節省功耗。考慮了切換的開銷。delay queue首節點的release time標識下一個任務的到來,所以可以根據該事件來調整電壓。
2000年,Shin延伸了他的工作,在ICCAD發表了文章[5],給定任務的T(period)、D(Deadline)和C(WECT),分兩部分進行排程,第一部分offline計算保證schedule feasible的前提下最低處理器速度,第二部分online根據任務執行佇列中的情況動態調整電壓和進入power-down模式。後面動態電壓調節和進入power-down模式和1999年的論文相似。
Summary
相較於90-95,出現了針對real-time下time constraint和DVFS與DPM相結合的文章,但同時也存在一定侷限,侷限在於首先還是大多evaluation都是模擬,模擬中假設了電壓的連續變化,同時power-down模式的功耗開銷[4] [5]中只是假設為5%的正常開銷,沒有實際測量,模式切換和電壓調節的開銷也並不準確。
Reference
[1] Inki Hong, D. Kirovski, Gang Qu, M. Potkonjak and M. B. Srivastava, "Power optimization of variable voltage core-based systems," Proceedings 1998 Design and Automation Conference. 35th DAC. (Cat. No.98CH36175), 1998, pp. 176-181, doi: 10.1109/DAC.1998.724462.
[2] Hong, I., Qu, G., Potkonjak, M. & Srivastavas, M. B. Synthesis techniques for low-power hard real-time systems on variable voltage processors. in Proceedings 19th IEEE Real-Time Systems Symposium (Cat. No.98CB36279) 178–187 (1998). doi:10.1109/REAL.1998.739744.
[3] Ishihara, T. & Yasuura, H. Voltage scheduling problem for dynamically variable voltage processors. in Proceedings. 1998 International Symposium on Low Power Electronics and Design (IEEE Cat. No.98TH8379) 197–202 (1998). doi:10.1145/280756.280894.
[4] Shin, Y. & Choi, K. Power conscious fixed priority scheduling for hard real-time systems. in Proceedings 1999 Design Automation Conference (Cat. No. 99CH36361) 134–139 (1999). doi:10.1109/DAC.1999.781298.
[5] Shin, Y., Choi, K. & Sakurai, T. Power optimization of real-time embedded systems on variable speed processors. in IEEE/ACM International Conference on Computer Aided Design. ICCAD - 2000. IEEE/ACM Digest of Technical Papers (Cat. No.00CH37140) 365–368 (2000). doi:10.1109/ICCAD.2000.896499.
[6] S. Lim, Y. Bae, G. Jang, B. Rhee, S. Min, C. Park, H. Shin, K. Park, and C. Kim, “An accurate worst case timing analysis for RISC processors,” in Proc. IEEE Real-Time Systems Symposium. pp. 97-108, Dec. 1994.
[7] Y. S. Li, S. Malik, and A. Wolfe, “Performance estimation of embedded software with instruction cache modeling,” in Proc. Int’l Conf. on Computer Aided Design, pp. 380-387, Nov. 1995.