TWI405070B - 頻率調整方法及使用此方法的電子裝置、電腦程式產品與電腦可讀取儲存媒體 - Google Patents
頻率調整方法及使用此方法的電子裝置、電腦程式產品與電腦可讀取儲存媒體 Download PDFInfo
- Publication number
- TWI405070B TWI405070B TW97150540A TW97150540A TWI405070B TW I405070 B TWI405070 B TW I405070B TW 97150540 A TW97150540 A TW 97150540A TW 97150540 A TW97150540 A TW 97150540A TW I405070 B TWI405070 B TW I405070B
- Authority
- TW
- Taiwan
- Prior art keywords
- work
- parameter
- adjustment ratio
- clock adjustment
- time
- Prior art date
Links
Landscapes
- Power Sources (AREA)
- Executing Machine-Instructions (AREA)
Description
本發明是有關於一種頻率調整方法,且特別是有關於一種即時系統之工作排程的頻率調整方法及使用此方法的電子裝置、電腦程式產品與電腦可讀取儲存媒體。
一般而言,中央處理器(Central Processing Unit,CPU)的工作排程(Scheduling)是多元程式規劃(Multi-task)作業系統的基礎。藉由中央處理器在不同工作(Task)之間的切換,作業系統可以讓電腦的輸出量提高。也就是說,藉由隨時保有一個工作在執行,以提高中央處理器的使用率。另外,在單一處理器系統裡,一次只能執行一個工作,無法多個工作同時執行,因此如果在多個工作的狀態下,其他的工作都必須等待中央處理器處理完當下的工作後再進行處理。
在下一個工作執行之前,若中央處理器處於閒置結束狀態,可藉由多元程式規劃,以有效地利用中央處理器的閒置結束時間。而多元程式規劃是將多個工作同時存放在記憶單元之中,當某個工作在等待的時候,作業系統就把中央處理器的使用權取走並且交給另一個工作。依上述方式進行,每當一個工作必須要等待的時候,中央處理器就可以先行處理另外一個工作。
此外,即時系統(Real-time System)有著較嚴格的時間限制。對於硬即時系統(hard real-time system)而言,所有工作更是必須要在所訂定的時間限制內完成,否則將會產生嚴重的後果(例如:核能發電廠的核子反應爐監視系統)。另外,對於廣泛應用於今日生活且以電池為電源的可攜式嵌入式系統來說,需同時符合即時系統的期限要求以及低耗電量兩項要求,以便於增加可攜式嵌入式系統的使用時間,並避免產生嚴重的後果。因此,如何在最佳的工作排程下,達到降低中央處理器的使用頻率且符合即時系統對時序的要求,進而使得即時系統較為省電,將是一個重要的課題。
而最佳工作排程的取得方式之一,可利用在"Practical voltage-scaling for fixed-priority RT-systems,"Saowanee Saewong;Rajkumar,R. On Real-Time and Embedded Technology and Applications Symposium,2003. Proceedings. The 9th IEEE Volume,Issue,27-30 May 2003,pp. 106-114.論文中所提出的PM-clock演算法(Priority Monotonic Clock Frequency Assignment)來實現。在PM-clock演算法中,會依據優先權順序由最高至最低的順序計算出每一工作的最小時脈調整比值,再依據這些最小時脈調整比值中計算出每一工作的理想頻率,最後根據這些理想頻率調整每一工作的工作頻率。其中這些工作的最小時脈調整比值的計算是透過函式Energy-Minimizing-Freq01來完成。
圖1為傳統實施例的函式Energy-Minimizing-Freq01的流程圖。請參照圖1,在本實施例中,PM-clock演算法在計算每一個工作τi
皆會呼叫一次函式Energy-Minimizing-Freq01來得到每一工作τi
的最小時脈調整比值,其中每一工作τi
對應的工作資訊皆會包括工作執行時間Ci
、工作觸發週期Ti
及完成工作時限Di
,其中i為一正整數。在步驟S110中,會設定所有參數的初始值,而參數ω會設定為工作執行時間Ci
除以頻率最大值fmax
(亦即此裝置的最大運作頻率)。
接著,步驟S120會判斷IN_BZP的參數值是否為「TRUE(真)」。若步驟S120的判斷結果為「Yes」,亦即IN_BZP的參數值為「TRUE」,則執行步驟S130;反之,則執行步驟140。而步驟S130會計算此工作τi
以頻率最大值fmax
執行時,其完成工作時限Di
內閒置時間的起始點,並存入參數ω中,以及將IN_BZP的參數值設定為「FALSE(偽)」,其中步驟S131用以計算並驗證此閒置時間的起始點是否正確,函數hp為優先權順序高於等於工作τi
的工作的集合,函數floor為取得小於括號中算式計算結果的最大整數。
接著,步驟S150會判斷參數ω是否小於工作τi
的工作時限Di
,若參數ω小於工作τi
的工作時限Di
則回到步驟S120;反之,則回傳α的參數值,作為工作τi
的最小時脈調整比值。在參數ω小於工作時限Di
時,會回到步驟S120,並且由於IN_BZP的參數值被設定為「FALSE」,所以此時步驟S120後會接著執行步驟S140,以計算此工作τi
的時脈調整比值,並取其最小值存入參數α中,其中函數ceil為取得大於括號中算式計算結果的最小整數。
而以函式Energy-Minimizing-Freq01來看,每一工作τi
皆要取得優先權順序較其高的工作之工作資訊,以計算出其最小時脈調整比值。然而,PM-clock演算法是由優先權順序最高計算至最低,所以有很多相同的運算資訊會被重覆計算,並且計算的步驟通常會比較耗時,致使在計算每一工作的最小時脈調整比值會造成計算時間上的浪費。
本發明提供一種頻率調整方法及使用此方法的電子裝置、電腦程式產品與電腦可讀取儲存媒體,藉此減少工作排程的運算步驟以降低即時系統排程的運算時間。
本發明提出一種頻率調整方法,其包括下列步驟。首先,取得在即時系統之工作排程中多個工作所對應的工作資訊,其中這些工作各自使用對應的工作時脈。接著,依據工作排程之優先權順序,以優先權最低者至優先權最高者的順序,依序使用對應的工作資訊計算每一工作各自的最小時脈調整比值,其中使用完整演算法去計算最低優先權者工作的最小時脈調整比值並記錄其中運算資訊,以及使用精簡演算法與前述運算資訊去計算非最低優先權者工作的最小時脈調整比值。然後,依據這些工作的最小時脈調整比值以及其的優先權順序,計算出每一工作各自的理想頻率。最後,依據這些工作的理想頻率,調整這些工作所對應的工作時脈。
在本發明之一實施例中,上述之工作所對應的工作資訊包括工作執行時間、工作觸發週期以及完成工作時限。
在本發明之一實施例中,上述之使用對應的工作資訊計算每一工作各自的最小時脈調整比值的步驟包括:利用完整演算法計算最低優先權順序的第一工作的最小時脈調整比值,並且記錄前述運算資訊中至少一閒置結束參數及其對應的鬆弛參數,以及依據所述閒置結束參數及其對應的鬆弛參數,利用精簡演算法計算這些工作中第二工作的最小時脈調整比值,其中所述閒置結束參數為第一工作的完成工作時限內至少一閒置時間的結束時間點,而所述鬆弛參數為所述閒置時間的時間長度,以及第二工作的優先權順序高於第一工作。
在本發明之一實施例中,上述之精簡演算法包括下列步驟:先設定最小時脈調整比值的初始值為1,再依序取得所述閒置結束參數的其中之一及其對應的鬆弛參數,接著利用閒置結束參數及其對應的鬆弛參數依序計算出第二工作的時脈調整比值,若時脈調整比值小於最小時脈調整比值時,則記錄時脈調整比值作為第二工作的最小時脈調整比值,接著依據第二工作的工作執行時間調整鬆弛參數,以及在閒置結束參數小於第二工作的完成工作時限時,再次進行精簡演算法。
在本發明之一實施例中,上述之計算出每一工作的理想頻率的步驟包括:依據這些工作由優先權最高至優先權最低的順序,依序從優先權順序最高的工作進行計算,且每一工作的理想頻率是取優先權順序低於或等於其優先權順序之這些工作的最小時脈比值的最大值。
在本發明之一實施例中,頻率調整方法更包括在這些工作的其中之一的理想頻率小於其前一工作的理想頻率時,依據優先權順序高於工作的這些工作的理想頻率,調整工作的理想頻率。
在本發明一實施例中,上述調整這些工作其中之一所對應的工作時脈的步驟包括下列步驟。當調降即時系統之處理器的工作電壓與即時系統之處理器的工作時脈時,先調降即時系統之處理器的工作時脈後,再調降即時系統之處理器的工作電壓。當調升即時系統之處理器的工作電壓與即時系統之處理器的工作時脈時,先調升即時系統之處理器的工作電壓後,再調即時系統之處理器的工作時脈。
本發明另提出一種電腦可讀取儲存媒體,用以儲存電腦程式。該電腦程式用以載入至電腦系統中並且使得該電腦系統執行上述頻率調整方法。
本發明亦提出一種電腦程式產品,當電子裝置載入該電腦程式並執行後,可完成上述頻率調整方法。
本發明再提出一種電子裝置,其包括處理器及記憶單元。處理器依據工作所對應的工作時脈而運行,其中處理器取得在即時系統之工作排程中多個工作所對應的工作資訊,且依據工作排程之優先權順序,以優先權最低者至優先權最高者的順序,依序使用對應的工作資訊計算每一工作各自的最小時脈調整比值,然後依據這些工作的最小時脈調整比值以及優先權順序,計算出每一工作各自的理想頻率,接著依據這些工作的理想頻率,調整這些工作所對應的工作時脈;其中,處理器使用完整演算法去計算最低優先權者工作的最小時脈調整比值並記錄其中運算資訊,以及使用精簡演算法與前述運算資訊去計算非最低優先權者工作的最小時脈調整比值。記憶單元耦接於處理器,儲存這些工作的工作資訊、最小時脈調整比值,以及理想頻率。
在本發明之一實施例中,上述之處理器利用完整演算法計算最低優先權順序的第一工作的最小時脈調整比值,並且記錄運算資訊中至少一閒置結束參數及其對應的鬆弛參數,以及依據所述閒置結束參數及對應的鬆弛參數,利用精簡演算法計算第二工作的最小時脈調整比值;其中,所述閒置結束參數為一閒置時間的結束時間,所述鬆弛參數為閒置時間的長度,且第二工作的優先權順序高於第一工作。
在本發明之一實施例中,上述之處理器更執行精簡演算法,以設定最小時脈調整比值的初始值為1,接著依序取得所述閒置結束參數的其中之一及其對應的鬆弛參數以利用閒置結束參數及其對應的鬆弛參數依序計算出第二工作的時脈調整比值,在時脈調整比值小於最小時脈調整比值時,記錄時脈調整比值作為第二工作的最小時脈調整比值,以及依據第二工作的工作執行時間調整鬆弛參數,並且在閒置結束參數小於第二工作的完成工作時限時,更次執行精簡演算法。
基於上述,本發明的頻率調整方法、電子裝置、電腦程式產品及電腦可讀取儲存媒體,透過計算最低優先權工作的過程中,取得運算資訊中的閒置結束參數及對應鬆弛參數,再利用閒置結束參數及鬆弛參數計算出非最低優先權工作的最小時脈調整比值。藉此,可節省耗時的計算過程,以加速最佳排程的計算速度,減少最佳排程的計算時間。
為讓本發明之上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
圖2為根據發明一實施例之電子裝置的系統方塊圖。請先參照圖2,電子裝置200包括處理器210及記憶單元220。在本實施例中,電子裝置200可以為即時系統(Real-time System),而處理器210可以用來處理即時系統之工作排程(Scheduling),並且電子裝置200例如為可攜式電子裝置這一類可使用電池供應電源的電子裝置。記憶單元220耦接於處理器210,用來儲存工作(Task)的工作資訊、最小時脈調整比值及理想頻率,其中工作資訊包括工作執行時間(Processor cycle)、工作觸發週期(Trigger Period)、完成工作時限(Deadline)。前述工作執行時間是指不降低CPU運作頻率的情況下完成該工作所需執行時間;工作觸發週期是指發生該工作(或該工作進入工作排程)的時間週期;而完成工作時限是指從發生該工作(或該工作進入工作排程)的時間算起,完成該工作的相對時限。而工作執行時間、工作觸發週期以及完成工作時限,分別以Ci
、Ti
、Di
表示之,其中i為大於等於1的正整數。值得一提的是,記憶單元220可整合進處理器210中,亦即處理器210會包含記憶單元220,以處理即時系統之工作排程。
圖3A為根據本發明一實施例之頻率調整方法的流程圖。請參照圖2及圖3A,首先,在步驟S301中,處理器210會取得在即時系統之工作排程中多個工作所對應的工作資訊,並且處理器210會依據所處理的工作所對應的工作時脈而運行,以執行這些工作。在此為了方便說明,在本實施例中,以取得3個工作作為說明,且這3個工作分別以τ1
、τ2
、τ3
表示之,以優先權順序來排列則為τ1
>τ2
>τ3
。其中,工作τ1
對應的工作資訊C1
、T1
、D1
為{7*fmax
,20,20};工作τ2
對應的工作資訊C2
、T2
、D2
為{5*fmax
,28,28};工作τ3
對應的參數值C3
、T3
、D3
為{3*fmax
,30,30}。另外,上述fmax
為頻率最大值(亦即該系統的處理器的最大運作頻率),而上述對應參數Ci
項的表示式Ci
*fmax
係指以fmax
為頻率所需的執行時間為Ci
,並非指Ci
乘以fmax
。而工作τ1
、τ2
、τ3
的排程會如圖3B所示,圖3B為圖3A之工作排程示意圖,其縱軸為相對於頻率最大值fmax
的倍數,其橫軸為時間t。
接著,在步驟S302中,處理器210會依據工作排程之優先權順序,以優先權最低者至優先權最高者的順序,依序使用對應的工作資訊計算每一工作各自的最小時脈調整比值。其中,處理器210會使用完整演算法(稍後說明)與對應的工作資訊去計算最低優先權者工作的最小時脈調整比值並記錄其中運算資訊,以及使用精簡演算法(稍後說明)與前述運算資訊去計算這些工作中非最低優先權者的最小時脈調整比值。
換言之,處理器210會利用完整演算法先計算出工作τ3
的最小時脈調整比值。請參照圖3B,在計算過程中,處理器210會取得小於或等於工作τ3
完成工作時限的閒置結束參數(亦即閒置時間的結束時間點),而從圖示中可以得知閒置結束參數分別為20及28。由於工作τ3
要在滿足工作τ1
及τ2
的執行需求後才獲得執行的權力,因此執行工作τ3
時,尚須考慮工作τ1
及工作τ2
,所以處理器210於閒置結束參數為20時,其工作量總共為15(即工作τ1
+工作τ2
+工作τ3
),而其鬆弛參數(閒置時間的時間長度)為5(即20-15)。另考量工作τ3
於閒置結束參數為28的執行工作時間與鬆弛參數,則處理器210執行工作的時間總共為22(即工作τ1
*2+工作τ2
+工作τ3
),而其鬆弛參數為6(即28-22)。因此,工作τ3
的最小時脈調整比值會等於min{15/20,22/28}=0.75。由於工作τ2
執行於工作τ3
之前,所以工作τ3
的工作執行時間C3
對工作τ2
而言會等同閒置時間,因此對於工作τ2
而言只需將工作τ3
的計算過程中的鬆弛參數進行修正,便可以獲得工作τ2
的鬆弛參數。例如,工作τ2
所對應的鬆弛參數會分別修正為8(即5+3)及9(即6+3)。此鬆弛參數的修正結果(即運算資訊)可以被記錄下來,以備後續運算工作τ1
與τ2
的最小時脈調整比值的運算過程所利用。其中,上述工作τ3
的計算過程則為完整演算法的運算過程。
接著計算工作τ2
,由於閒置結束參數20及28為小於或等於工作τ2
的完成工作時限D2
(即28),以致這些閒置結束參數皆會在完成工作時限D2
內皆會出現,所以閒置結束參數20及28皆會被使用到。另外,工作τ2
的鬆弛參數已經由前述完整演算法的運算過程中求得,亦即對應於閒置結束參數20及28的鬆弛參數分別為8及9,因此可以進一步求得其執行的時間總共分別為12(即20-8)及19(即28-9)。因此,工作τ2
的最小時脈調整比值會等於min{12/20,19/28}=0.60。其中,上述工作τ2
的計算過程因利用工作τ3
計算過程中的運算資訊而不需要重新進行一次完整演算法,故上述工作τ2
的計算過程稱之為精簡演算法。另外,在使用精簡演算法計算工作τ2
的最小時脈調整比值的過程中,也可以順便計算工作τ1
的鬆弛參數。同理可推,對於工作τ1
而言,工作τ2
的工作執行時間會等同閒置時間,因此可以將鬆弛參數分別修正為13(即8+5)及14(即9+5)。
在計算工作τ1
時,由於工作τ1
的鬆弛參數已經由前述工作τ2
的精簡演算法的運算過程中求得,因此亦可以再一次使用精簡演算法來計算工作τ1
的最小時脈調整比值。因為閒置結束參數28大於工作τ1
的完成工作時限D1
(即20),故在此只會使用到閒置結束參數20,而其對應的鬆弛參數為13,而執行的時間總共為7(即20-13)。因此,工作τ1
的最小時脈調整比值會等於7/20=0.35。
在計算出工作τ1
~τ3
的最小時脈調整比值後,如步驟S303所示,處理器210會依據這些工作的最小時脈調整比值以及其優先權順序,計算出工作τ1
~τ3
各自的理想頻率,其中上述工作的理想頻率的計算方式例如為取優先權順序低於或等於其的這些工作的最小時脈頻率的最大值。換言之,工作τ1
的理想頻率會等於max{0.35,0.60,0.75}=0.75,工作τ2
的理想頻率會等於max{0.60,0.75}=0.75,工作τ3
的理想頻率會等於max{0.75}=0.75。最後,如步驟S304所示,依據工作τ1
~τ3
各自的理想頻率,調整各自的工作時脈,使得工作τ1
~τ3
的工作時脈的頻率皆降低為頻率最大值fmax
的0.75倍。藉此,可在符合每一工作的工作資訊下,降低處理器210工作τ1
~τ3
各自的工作時脈的頻率,進而達到節能的作用。
此外,由上述頻率調整方法可再延伸出一實施例。圖4為根據本發明另一實施例的頻率調整方法的流程圖。請參照圖2、圖3A及圖4,在本實施例中,步驟S401及S407可參照圖3A相似部份所述,故在此不再贅述。在步驟S402中,處理器210會利用完整演算法計算最低優先權順序的第一工作的最小時脈調整比值,並且記錄前述運算資訊中至少一閒置結束參數及其對應的鬆弛參數。接著,步驟S403中,處理器210依據所述閒置結束參數及其對應的鬆弛參數,利用精簡演算法計算這些工作中第二工作的最小時脈調整比值,其中第二工作的優先權順序高於第一工作。然後在步驟S404中,處理器210會判斷工作排程中所有的第二工作的最小時脈調整比值是否被計算出,若判斷結果為「否」,代表還有第二工作的最小時脈調整比值未被計算出,則回到步驟S403,以計算其他第二工作的最小時脈調整比值;若判斷結果為「是」,代表所有第二工作的最小時脈調整比值皆被計算出,則接著執行步驟S405。
以上述三個工作τ1
~τ3
的計算過程為例,步驟S402則對應至工作τ3
(亦即第一工作)的計算過程。而步驟S403則對應至工作τ1
及τ2
的計算過程。由於排程中優先權順序高於工作τ3
的有工作τ1
及τ2
(亦即第二工作),所以步驟S404第一次的判斷結果會為「否」,使得處理器210再次執行步驟403;而步驟S404第二次的判斷結果會為「是」,則接著執行步驟S405,結束計算工作τ1
~τ3
的最小時脈調整比值。
在步驟S405中,處理器210會由工作τ1
~τ3
中優先權最高至優先權最低的順序,依序從工作τ1
開始進行計算,且每一工作的理想頻率是取優先權順序低於或等於其優先權順序之這些工作的最小時脈比值的最大值。此步驟405的計算過程可參照步驟303所述計算過程,在此不再贅述。在步驟S406中,處理器210會在工作τ2
~τ3
的其中之一的理想頻率小於其前一工作的理想頻率時,依據優先權順序高於此工作的這些工作的理想頻率,調整工作的理想頻率。在工作τ1
~τ3
皆計算出其理想頻率後,接著執行步驟S407。
舉例來說,假設工作τ3
所算出的理想頻率為0.7,會小於工作τ2
的理想頻率(0.75),所以會對工作τ3
的理想頻率進行調整。在此會先減去工作τ1
及τ2
利用理想頻率調整其工作時脈後所佔用的時間,以求得工作τ3
的最大執行時間,亦即工作τ3
的完成工作時限D3
(30)減去(C1
*2+C2
)/0.75=4.7。接著,求出工作τ3
以最大頻率執行所需時間與經調整頻率後最大執行時間的比值,亦即3/4.7=0.638,此數值0.638即為工作τ3
調整後的最小時脈調整比值,再利用調整後此最小時脈調整比值即可求出工作τ3
調整後的理想頻率。由於工作τ3
為最低優先權的工作,所以其最小時脈調整比值(0.638)亦即理想頻率。
更者,可以對步驟S403中所述的精簡演算法作進一步的解說,以使本領域通常知識者可了解上述實施例。圖5為圖4步驟S403中精簡演算法的細部流程圖。請參照圖4及圖5,在步驟S403中,首先會執行步驟S501,先設定最小時脈調整比值的初始值為1。接著步驟S502會依序取得所述閒置結束參數的其中之一及其對應的鬆弛參數,並且步驟S503會利用閒置結束參數及其對應的鬆弛參數依序計算出第二工作的時脈調整比值。
而步驟S504會判斷時脈調整比值是否小於最小時脈調整比值。若時脈調整比值小於最小時脈調整比值時,則執行步驟S505以記錄時脈調整比值作為第二工作的最小時脈調整比值;反之,則忽略步驟S505以直接執行步驟S506。接著,步驟S506會依據第二工作的工作執行時間Ci
調整所使用的鬆弛參數。如步驟S507所示,會判斷閒置結束參數是否小於第二工作的完成工作時限Di
。在閒置結束參數小於第二工作的完成工作時限Di
時,會回到步驟S502以再次進行精簡演算法;反之,則往下執行步驟S404。
以計算上述工作τ2
的最小時脈調整比值為例,其中閒置結束參數及鬆弛參數請參照上述的說明。首先,會將最小時脈調整比值的初始值設定為1,在第一次執行步驟502時,會取得的閒置結束參數為20及對應的鬆弛參數為8,而工作τ2
執行的時間總共為12(即20-8),藉此可得到時脈調整比值會為12/20(即0.6)。由於時脈調整比值(即0.6)小於最小時脈調整比值(即1),所以最小時脈調整比值會變更為0.6,接著會將鬆弛參數修正為13(即8+5),以加入工作τ2
的工作執行時間C2
。由於此時所使用的閒置結束參數(即20)小於工作τ2
的完成工作時限D2
(即28),所以會再回到步驟502。
在第二次執行步驟502時,會取得的閒置結束參數為28及對應的鬆弛參數為9,而工作τ2
執行的時間總共會為19(即28-9),藉此可得到時脈調整比值會為19/28(即0.679)。由於時脈調整比值(即0.679)不小於最小時脈調整比值(即0.6),所以最小時脈調整比值仍保持為0.6,接著會將鬆弛參數修正為14(即9+5),以加入工作τ2
的工作執行時間。而此時的閒置結束參數(即28)不小於工作τ2
的完成工作時限D2
(即28),所以會往下執行步驟S404。至此,可計算出工作τ2
的最小時脈調整比值(即0.6)。
除此之外,可再提一實施例,以使本發明的實施例更加容易了解。圖6A為根據本發明再一實施例的頻率調整方法的流程圖。請參照圖3B及圖6A,本實施例是以演算法的流程型態來呈現,且為了解說方便,在此仍以上述三個工作τ1
~τ3
來說明,所以演算法中的n=3。在本實施例中,首先步驟S610會將陣列型態的閒置結束參數idleEnd及鬆弛參數slack內的數值皆設為0。接著,在步驟S620中,會由工作τ3
到τ1
依序各別呼叫函式Energy-Minimizing-Freq02以計算工作τ1
~τ3
的最小時脈調整比值ε1
~ε3
,亦即由最低優先權順序的工作τ3
開始計算其最小時脈調整比值ε3
。
最後,步驟S630會利用最小時脈調整比值ε1
~ε3
計算出工作τ1
~τ3
的理想頻率υ1
~υ3
,以供處理器210調整工作τ1
~τ3
對應的工作頻率。而步驟S631會判斷工作τ2
~τ3
的其中之一的理想頻率是否小於其前一工作的理想頻率,以在工作τ2
~τ3
的其中之一的理想頻率小於其前一工作的理想頻率時,依據優先權順序高於此工作的這些工作的理想頻率,重新計算此工作的最小時脈調整比值εj
,以藉此調整此工作的理想頻率。其中,函式Inflated-Energy-Minimizing-Freq可以為先前技術中論文"Practical voltage-scaling for fixed-priority RT-systems"所述相關部份來實施,在此則不再加以贅述,以及函數lp為優先權順序低於等於工作τi
的工作的集合。
接著,再對函式Energy-Minimizing-Freq02作進一步說明,其中部份函數可參照函式Energy-Minimizing-Freq01的說明。圖6B為圖6A的函式Energy-Minimizing-Freq02的流程圖。請參照圖3B及圖6B,在步驟S621中,會設定所有參數值的初始值,參數S、I、β、Δ及ω’設定為零,參數α(最小時脈調整比值)及idleIdx設為1,參數IN_BZP設定為「TRUE(真)」,參數ω則設定為工作執行時間Ci
除以最大使用頻率fmax
(此時為計算工作τ3
,亦即此次的參數ω為C3
/fmax
=3)。接著,在步驟S622中,會判斷所計算的工作是否為最低優先權的工作τ3
。
由於本實施是從最低優先權的工作τ3
開始計算,所以步驟S622第一次執行的結果會為「Yes」,接著會執行步驟S623,以判斷參數IN_BZP是否為「TRUE」。由於參數IN_BZP的初始值為「TRUE」,且在此之前並未更動參數IN_BZP的值,所以步驟S623第一次執行的結果會為「Yes」,接著執行步驟S624以計算工作τ3
閒置時間的起始點。在步驟S624中,步驟S625第一次執行會得到參數ω=15(此為第一個閒置時間的起始點),參數Δ=12,由於參數Δ不為零,所以要再執行一次以驗證參數ω是否正確。其中,函數hp為優先權順序高於等於工作τi
的工作的集合,函數floor為取得小於括號中算式計算結果的最大整數。而步驟S625第二次執行的結果仍得到參數ω=15,而參數Δ=0,代表計算出的參數ω正確,接著將參數IN_BZP設定為「FALSE(偽)」,以進行時脈調整比值的計算。接著在步驟S628中,因為參數ω(即15)小於工作τ3
的完成工作時限D3
(即30),所以會回到步驟S622。
由於此時函式Energy-Minimizing-Freq02係被呼叫以計算工作τ3
,且此時的參數IN_BZP已被更改為「FALSE」,所以會經由步驟S622、S623,再進行到步驟S626。在步驟S626中,會得到β/ω(亦即時脈調整比值)=15/20(即0.75),由於β/ω(即0.75)小於參數α的初始值(即1),所以參數α會更新為0.75,其中函數ceil為取得大於括號中算式計算結果的最小整數。同時,閒置結束參數idleEnd1
會設定為20,鬆弛參數slack1
會設定為8(即5+3),並將IN_BZP設定為「TRUE」,以計算下一個時脈調整比值,以及將idleIdx增加為2。以下為了說明書的簡潔,則省略判斷式的詳細說明。
此時的函式Energy-Minimizing-Freq02會回到步驟S622,由於IN_BZP又被設定為「TRUE」,所以流程會回到進行步驟S624。在執行步驟S624後會得到參數ω=27(此為第二個閒置時間的起始點),並將IN_BZP設定為「FALSE」。接著會執行步驟S626,會得到β/ω(亦即時脈調整比值)=22/28(即0.786),閒置結束參數idleEnd2
會設定為28,鬆弛參數slack2
會設定為9(即6+3)。因為此時的β/ω(即0.786)大於參數α(即0.75),所以參數α不會被更動,再將IN_BZP更改為「TRUE」。而函式Energy-Minimizing-Freq02此時會經由步驟S628、S622及S623,再回到步驟S624。而此次步驟S624的執行結果會得到參數ω=33(不小於工作τ3
的完成工作時限30),代表接下來的閒置時間超出工作τ3
的完成工作時限30,致使函式Energy-Minimizing-Freq02的流程在執行到步驟S628時,會進行回傳參數α到演算法主體的步驟。
接著函式Energy-Minimizing-Freq02會被再次呼叫以計算工作τ2
的最小時脈調整比值,步驟S621的執行如上述說明,在此則不在贅述。而執行步驟S622時,會由於工作τ2
非最低優先權順序的工作,所以會接著執行步驟S627。在步驟S627中,此時會取得閒置結束參數idleEnd1
(即20)及鬆弛參數slack1
(即8),分別存入參數ω及S,而得到β/ω=12/20(即0.6)。由於β/ω(即0.6)小於參數α的初始值(即1),所以參數α會更新為0.6,並且鬆弛參數slack1
會修正為13(即8+5),以及idleIdx會增加為2。由於此時的參數ω(即20)小於工作τ2
的完成工作時限D2
(即28),致使函式Energy-Minimizing-Freq02會再回到執行步驟S627。
而再次執行步驟S627時,會取得閒置結束參數idleEnd2
(即28)及鬆弛參數slack2
(即9),同樣分別存入參數ω及S,而得到β/ω=19/28(即0.679)。因為此時的β/ω(即0.679)大於參數α(即0.6),所以參數α不會被更動,並且參數ω(即28)不小於工作τ2
的完成工作時限D2
(即28),致使函式Energy-Minimizing-Freq02會結束計算並且回傳參數α到演算法主體中。
再接著,函式Energy-Minimizing-Freq02會再被呼叫以計算工作τ1
的最小時脈調整比值,在步驟S627中,會取得閒置結束參數idleEnd1
(即20)及鬆弛參數slack1
(即13),分別存入參數ω及S,而得到β/ω=7/20(即0.35)。由於β/ω(即0.35)小於參數α的初始值(即1),所以參數α會更新為0.35,並且鬆弛參數slack1
會更新為20(即13+7),以及idleIdx會增加為2。由於此時的參數ω(即20)不小於工作τ1
的完成工作時限D1
(即20),所以函式Energy-Minimizing-Freq02會結束計算並且回傳參數α到演算法主體中。至此,可計算出工作τ1
~τ3
的最小時脈調整比值分別為0.35、0.6、0.75,使得執行圖6A的步驟S630時,可以依據這些最小時脈調整比值計算出工作τ1
~τ3
的理想頻率,以調整工作τ1
~τ3
各自的工作時脈。
在此,可以針對傳統函式Energy-Minimizing-Freq01及本實施例的Energy-Minimizing-Freq02作比對。請參照圖1及圖6B,由圖中可以得到,步驟S130會等於步驟S624(亦即步驟S131會等於步驟S625),步驟S140與步驟S626的計算量可視為相同(因其間的差異與「」相較甚微,故可忽略不計),而步驟S627的計算式與步驟140相似,但計算量少於步驟140(因步驟140中的「 」相當耗時,會主宰計算時間較鉅)。以傳統函式Energy-Minimizing-Freq01而言,計算工作τ1
的最小時脈調整比值會執行1次步驟S131,1次步驟S140;計算工作τ2
的最小時脈調整比值會執行4次步驟S131,2次步驟S140;計算工作τ3
的最小時脈調整比值會執行5次步驟S131,2次步驟S140。綜上述,步驟S131被執行10次,步驟S140被執行5次。
以本實施例的函式Energy-Minimizing-Freq02而言,計算工作τ3
的最小時脈調整比值會執行5次步驟S625,2次步驟S626;計算工作τ2
的最小時脈調整比值會執行2次步驟S627;計算工作τ1
的最小時脈調整比值會執行1次步驟S627。總而言之,步驟S625被執行5次,步驟S626被執行2次,步驟S627被執行3次。比較上述函式的運算量,並彙整如表1所示,其中步驟S131及S140的運算量分別以[a1]及[a2]來表示,而步驟S625、S626及S627的運算量分別以[b1]、[b2]、[b3]來表示。由表1可得知,本實施例的函式Energy-Minimizing-Freq02的計算量會低於傳統函式Energy-Minimizing-Freq01。因此,本實施例的函式Energy-Minimizing-Freq02可以更快計算出最佳排程,以加快計算速度,減少計算的時間。
此外,若硬體可以支援調整即時系統的工作電壓時,可以在調變即時系統之處理器的工作時脈的同時,據以調整即時系統的工作電壓,並且工作時脈與工作電壓的調變方式為:(1)調降工作時脈與工作電壓時,先調降工作時脈後,再調降工作電壓。(2)調升工作時脈與工作電壓時,先調升工作電壓後,再調升工作時脈。
綜上所述,本發明實施例的頻率調整方法及電子裝置,透過計算最低優先權工作的過程中,取得運算資訊中的閒置結束參數及對應鬆弛參數,再利用閒置結束參數及鬆弛參數計算出非最低優先權工作的最小時脈調整比值。藉此,可節省耗時的計算過程,以加速最佳排程的計算速度,減少最佳排程的計算時間。
本領域具通常知識者可以依其需求,而以任何形式實現上述諸實施例。例如,可以內儲程式之電腦可讀取儲存媒體來實現上述諸實施例。也就是說,上述諸實施例可以用程式(電腦軟體)形式實現之,而將此程式儲存在硬碟、軟碟、CD-ROM等電腦可讀取儲存媒體中。
由於網路之普及,上述程式(電腦軟體)除可儲存於電腦可讀取儲存媒體外,亦可在網路上直接傳輸提供,而無須藉由儲存於儲存媒體上提供該程式。因此,本領域具通常知識者可以依其需求,而以「電腦程式產品」型式實現上述諸實施例。所謂電腦程式產品,係載有電腦可讀取之程式且不限外在形式之物。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,故本發明之保護範圍當視後附之申請專利範圍所界定者為準。
S110、S120、S130、S131、S140、S150...傳統實施例的函式Energy-Minimizing-Freq01的步驟
200...電子裝置
210...處理器
220...記憶單元
S301~S304、S401~S407、S610、S620、S630、S631...本發明實施例的頻率調整方法的步驟
S501~S507...精簡演算法的步驟
S621~S628...本發明實施例的函式Energy-Minimizing-Freq02的步驟
τ1
~τ3
...工作
圖1為傳統實施例的函式Energy-Minimizing-Freq01的流程圖。
圖2為根據發明一實施例之電子裝置的系統方塊圖。
圖3A為根據本發明一實施例之頻率調整方法的流程圖。
圖3B為圖3A之工作排程示意圖。
圖4為根據本發明另一實施例的頻率調整方法的流程圖。
圖5為圖4步驟S403中精簡演算法的細部流程圖。
圖6A為根據本發明再一實施例的頻率調整方法的流程圖。
圖6B為圖6A的函式Energy-Minimizing-Freq02的流程圖。
S301~S304...本發明實施例的頻率調整方法的步驟
Claims (12)
- 一種頻率調整方法,包括:取得在一即時系統之一工作排程中多個工作所對應的工作資訊,其中該些工作各自使用對應的工作時脈;依據該工作排程之優先權順序,以優先權最低者至優先權最高者的順序,依序使用對應的工作資訊計算該些工作各自的最小時脈調整比值,其中使用一完整演算法去計算該些工作中最低優先權者的最小時脈調整比值並記錄其中運算資訊,以及使用一精簡演算法與前述運算資訊去計算該些工作中非最低優先權者的最小時脈調整比值;依據該些工作的最小時脈調整比值以及該些工作的優先權順序,計算出該些工作各自的參考頻率;以及依據該些工作的參考頻率,調整該些工作所對應的工作時脈。
- 如申請專利範圍第1項所述之頻率調整方法,其中工作所對應的工作資訊包括工作執行時間、工作觸發週期以及完成工作時限。
- 如申請專利範圍第1項所述之頻率調整方法,其中使用對應的工作資訊計算該些工作各自的最小時脈調整比值的步驟包括:利用該完整演算法計算該些工作中最低優先權順序的一第一工作的最小時脈調整比值,並且記錄該運算資訊中至少一閒置結束(idle end)參數及其對應的多個鬆弛(slack)參數,其中所述閒置結束參數為該第一工作的一完成工作時限內至少一閒置時間的結束時間點,而所述鬆弛參數為所述閒置時間的時間長度;以及 依據所述閒置結束參數及其對應的鬆弛參數,利用該精簡演算法計算該些工作中一第二工作的最小時脈調整比值,其中該第二工作的優先權順序高於該第一工作。
- 如申請專利範圍第3項所述之頻率調整方法,其中該精簡演算法包括:設定該最小時脈調整比值的初始值為1;依序取得該些閒置結束參數的其中之一及其對應的鬆弛參數;利用該閒置結束參數及其對應的鬆弛參數依序計算出該第二工作的一時脈調整比值;若該時脈調整比值小於該最小時脈調整比值時,則記錄該時脈調整比值作為該第二工作的最小時脈調整比值;依據該第二工作的一工作執行時間調整該鬆弛參數;以及在該閒置結束參數小於該第二工作的該完成工作時限時,再次進行該精簡演算法。
- 如申請專利範圍第1項所述之頻率調整方法,其中計算出該些工作的參考頻率的步驟包括:依據該些工作由優先權最高至優先權最低的順序,依序從優先權順序最高的該工作進行計算,且每一該些工作的參考頻率是取優先權順序低於或等於其優先權順序之該些工作的最小時脈比值的最大值。
- 如申請專利範圍第1項所述之頻率調整方法,更包括:在該些工作的其中之一的參考頻率小於其前一工作的參考頻率時,依據優先權順序高於該工作的該些工作的參考頻率,調整該工作的參考頻率。
- 如申請專利範圍第1項所述之頻率調整方法,其中調整該些工作其中之一所對應的工作時脈的步驟包括:當調降該即時系統之處理器的一工作電壓與該即時系統之處理器的該工作時脈時,先調降該工作時脈後,再調降該工作電壓;以及當調升該即時系統之處理器的該工作電壓與該即時系統之處理器的該工作時脈時,先調升該工作電壓後,再調升該工作時脈。
- 一種電腦可讀取儲存媒體,用以儲存一電腦程式,該電腦程式用以載入至一電腦系統中並且使得該電腦系統執行如申請專利範圍第1項所述頻率調整方法。
- 一種電腦程式產品,當電子裝置載入該電腦程式並執行後,可完成申請專利範圍第1項所述之頻率調整方法。
- 一種電子裝置,包括:一處理器,依據該些工作對應的工作時脈而運行,其中該處理器取得在一即時系統之一工作排程中多個工作所對應的工作資訊,且依據該工作排程之優先權順序,以優先權最低者至優先權最高者的順序,依序使用對應的工作資訊計算該些工作各自的最小時脈調整比值,然後依據該些工作的最小時脈調整比值以及該些工作的優先權順序,計算出該些工作各自的參考頻率,接著依據該些工作的參考頻率,調整該些工作所對應的工作時脈;其中,該處理器使用一完整演算法去計算該些工作中最低優先權者的最小時脈調整比值並記錄其中運算資訊,以及使用一精簡演算法與前述運算資訊去計算該些工作中非最低優先權者的最小時脈調整比值;以及 一記憶單元,耦接於該處理器,儲存該些工作的工作資訊、該些最小時脈調整比值,以及該些參考頻率。
- 如申請專利範圍第10項所述之電子裝置,其中該處理器利用該完整演算法計算該些工作中最低優先權順序的一第一工作的最小時脈調整比值,並且記錄運算資訊中至少一閒置結束(idle end)參數及其對應的鬆弛(slack)參數,以及依據所述閒置結束參數及對應的鬆弛參數,利用該精簡演算法計算該些工作中一第二工作的最小時脈調整比值;其中,所述閒置結束參數為一閒置時間的結束時間,所述鬆弛參數為該閒置時間的長度,且該第二工作的優先權順序高於該第一工作。
- 如申請專利範圍第10項所述之電子裝置,其中該處理器更執行該精簡演算法,以設定該最小時脈調整比值的初始值為1,接著依序取得所述閒置結束參數的其中之一及其對應的鬆弛參數以利用該閒置結束參數及其對應的鬆弛參數依序計算出該第二工作的一時脈調整比值,在該時脈調整比值小於該最小時脈調整比值時,記錄該時脈調整比值作為該第二工作的最小時脈調整比值,以及依據該第二工作的一工作執行時間調整該鬆弛參數,並且在該閒置結束參數小於該第二工作的一完成工作時限時,更次執行該精簡演算法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW97150540A TWI405070B (zh) | 2008-12-24 | 2008-12-24 | 頻率調整方法及使用此方法的電子裝置、電腦程式產品與電腦可讀取儲存媒體 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW97150540A TWI405070B (zh) | 2008-12-24 | 2008-12-24 | 頻率調整方法及使用此方法的電子裝置、電腦程式產品與電腦可讀取儲存媒體 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201024960A TW201024960A (en) | 2010-07-01 |
TWI405070B true TWI405070B (zh) | 2013-08-11 |
Family
ID=44852378
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW97150540A TWI405070B (zh) | 2008-12-24 | 2008-12-24 | 頻率調整方法及使用此方法的電子裝置、電腦程式產品與電腦可讀取儲存媒體 |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI405070B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5812860A (en) * | 1996-02-12 | 1998-09-22 | Intel Corporation | Method and apparatus providing multiple voltages and frequencies selectable based on real time criteria to control power consumption |
US6425086B1 (en) * | 1999-04-30 | 2002-07-23 | Intel Corporation | Method and apparatus for dynamic power control of a low power processor |
US20040025069A1 (en) * | 2002-08-01 | 2004-02-05 | Gary Scott P. | Methods and systems for performing dynamic power management via frequency and voltage scaling |
TW200710630A (en) * | 2005-09-09 | 2007-03-16 | Hon Hai Prec Ind Co Ltd | Circuit for timely adjusting frequency of central processing unit |
TW200802098A (en) * | 2005-09-30 | 2008-01-01 | Co Ware Inc | Scheduling in a multicore architecture |
-
2008
- 2008-12-24 TW TW97150540A patent/TWI405070B/zh not_active IP Right Cessation
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5812860A (en) * | 1996-02-12 | 1998-09-22 | Intel Corporation | Method and apparatus providing multiple voltages and frequencies selectable based on real time criteria to control power consumption |
US6425086B1 (en) * | 1999-04-30 | 2002-07-23 | Intel Corporation | Method and apparatus for dynamic power control of a low power processor |
US20040025069A1 (en) * | 2002-08-01 | 2004-02-05 | Gary Scott P. | Methods and systems for performing dynamic power management via frequency and voltage scaling |
TW200710630A (en) * | 2005-09-09 | 2007-03-16 | Hon Hai Prec Ind Co Ltd | Circuit for timely adjusting frequency of central processing unit |
TW200802098A (en) * | 2005-09-30 | 2008-01-01 | Co Ware Inc | Scheduling in a multicore architecture |
Non-Patent Citations (8)
Title |
---|
Agrawal, S., Yadav, R.S., Ranvijay, "System level energy aware fault tolerance approach for real time system", 2008/11/21, TENCON 2008 - 2008 IEEE Region 10 Conference, On page(s): 1 - 6 * |
Aydin, H., Melhem, R., Mosse, D., Mejia-Alvarez, P., "Poweraware scheduling for periodic real-time tasks", 2004/05, IEEE Transactions on Computers, On page(s): 584 - 600 Volume: 53, Issue: 5 * |
Bren Mochocki, Xiaobo Sharon Hu, Gang Quan, "Practical on-line DVS scheduling for fixed-priority real-time systems", 2005/03/10, the 11th IEEE Real Time and Embedded Technology and Applications Symposium * |
Chuan-Yue Yang, Jian-Jia Chen, Chia-Mei Hung, Tei-Wei Kuo, "System-Level Energy-Efficiency for Real-Time Tasks", 2007/05/09, 10th IEEE International Symposium on Object and Component-Oriented Real-Time Distributed Computing, ISORC '07., On page(s): 266 - 273 * |
Dakai Zhu, Xuan Qi, Aydin, H., "Energy Management for Periodic Real-Time Tasks with Variable Assurance Requirements", 2008/08/27, 14th IEEE International Conference on Embedded and Real-Time Computing Systems and Applications. RTCSA '08., On page(s): 259 - 268 * |
Gang Zeng, Tomiyama, H., Takada, H., Ishihara, T., "A Generalized Framework for System-Wide Energy Savings in Hard Real-Time Embedded Systems", 2008/12/20, IEEE/IFIP * |
International Conference on Embedded and Ubiquitous Computing, EUC '08. Volume 1, On page(s): 206 - 213 * |
Saowanee Saewong, "Power-Aware CPU Management in QoSGuaranteed Systems." , 2007/09, PhD thesis, Electrical and Computer Engineering, Carnegie Mellon University * |
Also Published As
Publication number | Publication date |
---|---|
TW201024960A (en) | 2010-07-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11513585B1 (en) | Power management for a graphics processing unit or other circuit | |
JP4490298B2 (ja) | プロセッサ電力制御装置及びプロセッサ電力制御方法 | |
AU2007342556B2 (en) | Methods and systems for power management in a data processing system | |
JP5824162B2 (ja) | スケジュールされたリソースセット移行を使用したポータブルコンピューティングデバイスのための作業負荷推定による電力の節約 | |
US10281970B2 (en) | Control device, system, and computer program product | |
TWI559150B (zh) | 協調裝置和應用程式中斷事件以節省平臺電力之技術 | |
US8261112B2 (en) | Optimizing power consumption by tracking how program runtime performance metrics respond to changes in operating frequency | |
JP6169547B2 (ja) | チップ上のマルチコアシステムの全域チップ電力を管理する方法およびその装置 | |
JPWO2005106623A1 (ja) | Cpuクロック制御装置、cpuクロック制御方法、cpuクロック制御プログラム、記録媒体、及び伝送媒体 | |
JP4697805B2 (ja) | データ処理装置 | |
WO2023273015A1 (zh) | 一种进程迁移方法、装置、计算设备以及存储介质 | |
JP3742364B2 (ja) | クロック周波数の制御方法および電子機器 | |
US20100162018A1 (en) | System and method for optimizing electrical power consumption | |
JP2016511880A (ja) | 保証された過渡期限とともに中央処理装置の電力を制御するためのシステムおよび方法 | |
US8667198B2 (en) | Methods and systems for time keeping in a data processing system | |
JP2014137680A (ja) | パワー・オン状態から省電力状態に移行させる方法およびコンピュータ | |
JP2000039937A (ja) | コンピュータシステムおよびそのパワーセーブ制御方法 | |
JP2003271401A (ja) | 負荷監視機能を有するマイクロプロセッサ | |
JP5251575B2 (ja) | グリッドコンピューティングの管理プログラム | |
US9632566B2 (en) | Dynamically controlling power based on work-loop performance | |
JP2011524574A (ja) | タスクロードを測定するための方法およびシステム | |
TWI401558B (zh) | 頻率調整方法及使用此方法的電子裝置、電腦程式產品與電腦可讀取儲存媒體 | |
TWI405070B (zh) | 頻率調整方法及使用此方法的電子裝置、電腦程式產品與電腦可讀取儲存媒體 | |
JP5930504B2 (ja) | 保証された過渡期限とともに中央処理装置の電力を制御するためのシステムおよび方法 | |
US9690616B2 (en) | Based on natural load determination either adjust processor sleep time or generate artificial load |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |