DTD版本: 1.0.0
發明專利說明書
※申請案號:094147221 ※I P C 分類:
一、 發明名稱:
低漏電耗能之電源閘控指令的佈置方法與系統
Power-gating control placement for leakage power reduction
二、 中文發明摘要:
一種低漏電耗能之電源閘控指令佈置方法,其中步驟包括:輸入一程式;建立一控制流 程圖,將該程式分割為複數個區塊;分析可電源閘控元件在上述區塊中的使用狀態;產 生一第一電源閘控指令佈置,其中使用複數個電源關閉指令以及複數個電源啟動指令,
分別佈置在上述元件的複數個閒置區塊前後;產生一第二電源閘控指令佈置,其中將該 第一電源閘控指令佈置中,可結合在一起執行的電源關閉指令或電源啟動指令結合成單 一個電源關閉指令或單一個電源啟動指令;最後根據該第二電源閘控指令佈置,將電源 關閉指令以及電源啟動指令插入該程式。
三、 英文發明摘要:
This invention provides a compiler framework for employing power-gating mechanism to reduce leakage power dissipation. With a program as the input, this approach comprises:to construct the control-flow graph of the
program;to estimate the component activities on a microprocessor within the program;to generate a first power-gating instruction scheduling to
determine when, where, and whether power-gating control should be employed with the concern of power reduction;to generate a second power-gating instruction scheduling with a Sink-N-Hoist framework to merge several power-gating instructions as one compound power-gating instruction;to insert the power-gating instruction into the program according to the second power-gating instruction scheduling.
四、 指定代表圖:
(一)本案指定代表圖為: 第4圖 (二)本代表圖之元件符號簡單說明:
401...輸入控制流程圖、元件使用狀態、以及第一電源閘控指令佈置
402...遵循減少能源消耗的原則,分析第一電源閘控指令佈置,以進行電源關閉指 令之可延後分析以及電源啟動指令之可提前分析
403...進行一電源關閉指令分組方法以及一電源啟動指令分組方法將該控制流程圖 的各區塊分組,使得同組別的區塊之電源閘控指令可結合在一起
404...得到每一個組別之複數個電源閘控指令佈置組合,並且判斷各組別中最節省 能源的電源閘控指令佈置組合,以產生該第二電源閘控指令佈置
五、 本案若有化學式時,請揭示最能顯示發明特徵的化學式:
六、 發明說明:
【發明所屬之技術領域】
[0001] 本發明係有關於一種低漏電耗能之電源閘控指令的佈置方法,特別是有關於一種對處 理器或系統晶片上的複數個電源閘控元件進行低漏電耗能之電源閘控指令佈置的方法以 及系統。
【先前技術】
[0002] 在電子元件中,一般功率消耗的來源,主要來自互補式金氧半導體(CMOS)電路中因為 漏電流(leakage current)所導致的靜態功率消耗(static poWer dissipation),或切 換暫態電流(switching transient current)和負載電流之充放電所產生的動態功率消 耗(dynamic power dissipation)。然而,隨著互補金氧半導體技術的進步,先進的製 程技術已經達到深次微米(deep-submicron)的階段,靜態功率消耗在整各功率消耗中 所佔的比重逐漸增加。
[0003] 為了降低處理器或系統晶片中因為漏電流所產生的靜態功率消耗,近年來,許多電源 閘控(power-gating)方法的研究報告及發明相繼被提出。電源閘控方法對程式插入電 源閘控指令,以降低因為元件的漏電流而產生的靜態功率消耗。電源閘控指令包括電源 關閉指令以及電源啟動指令,分別對處理器或系統晶片上的可電源閘控元件進行關閉以 及啟動的動作。
[0004] 如中華民國專利公告號00519599之「結合低耗能指令集在編譯器之元件流程分析結構 與方法」所示,以編譯器技術,藉由資料流分析方法,分析處理器或系統晶片之可電源 閘控元件在程式中的使用狀態,並且在上述可電源閘控元件的閒置區間之前後,分別插 入電源關閉指令以及電源啟動指令,使其進入休眠狀態,因而得到低漏電耗能之程式 碼。
[0005] 然而,插入電源閘控指令會增加程式碼大小並且增加程式執行時間,並且上述缺點會 隨著處理器或系統晶片中可電源閘控元件的數目增加而加劇。另外,電源關閉指令以及 電源啟動指令的擷取以及解碼也會消耗能量,尤其電源啟動指令會產生尖峰電壓(peak voltage)。所以,減少電源閘控指令的數目為一必要課題。
【發明內容】
[0006] 有鑑於此,本發明遵循減少電源閘控指令數目後能量消耗不增加的原則,藉由將可延 後電源關閉指令延後以及將可提前電源啟動指令提前,使得可結合在一起的電源閘控指 令結合成單一個電源閘控指令,以產生較小程式大小而且較低能量消耗的電源閘控指令 佈置。本發明提出一種低漏電耗能之電源閘控指令的佈置,其中包括:輸入一程式;建 立一控制流程圖,其中將該程式分割為複數個區塊,根據該程式的流程,鏈結上述區塊 並且加入控制資訊;分析複數個元件在上述區塊中的使用狀態,上述元件為可電源閘控 元件;根據該控制流程圖以及上述元件在各區塊中的使用狀態,產生一第一電源閘控指 令佈置,其中使用複數個電源關閉指令以及複數個電源啟動指令,用以在上述元件的複 數個閒置區塊前後,分別佈置電源關閉指令以及電源啟動指令;調整該第一電源閘控指 令佈置,以產生一第二電源閘控指令佈置,其中將上述第一電源閘控指令佈置中可結合 在一起執行的電源關閉指令結合成單一個電源關閉指令,並且將上述第一電源閘控指令 佈置中可結合在一起執行的電源啟動指令結合成單一個電源啟動指令;以及於該程式 中,根據該第二電源閘控指令佈置,插入電源關閉指令以及電源啟動指令。
[0007] 上述低漏電耗能之電源閘控指令佈置方法,其中上述產生第二電源閘控指令佈置的步 驟更包括:在該第一電源閘控指令佈置中,判斷每一個電源關閉指令是否可被延後至該 控制流程圖之其他區塊執行,以產生每一個電源關閉指令之複數個可執行區塊,並且判 斷每一個電源啟動指令是否可被提前至該控制流程圖之其他區塊執行,以產生每一個電 源啟動指令之複數個可執行區塊;分組該控制流程圖的區塊,以產生複數個組別,使得 該第一電源閘控指令佈置中,可結合在一起的電源關閉指令之可執行區塊屬於同一個組 別,並且可結合在一起的電源啟動指令之可執行區塊屬於同一個組別;以及在每一個上 述組別中,根據其中每一個電源關閉指令之可執行區塊、或其中每一個電源啟動指令之 可執行區塊,得到每一個上述組別之複數個電源閘控指令佈置組合,接著判斷各組別中 最節省能源的電源閘控指令佈置組合,以產生該第二電源閘控指令佈置。
[0008] 上述低漏電耗能之電源閘控指令佈置方法,其中上述產生每一個電源關閉指令之可執
行區塊的方法更包括一可延後分析方法,藉由資料流分析,在該控制流程圖之每一個區 塊,得到一可執行電源關閉指令集合,用以表示可在該區塊被執行的電源關閉指令之集 合;並且上述產生電源啟動指令之可執行區塊的方法更包括一可提前分析方法,藉由資 料流分析,在該控制流程圖之每一個區塊,得到一可執行電源啟動指令集合,用以表示 可在該區塊被執行的電源啟動指令之集合。
[0009] 上述低漏電耗能之電源閘控指令佈置方法,其中上述產生組別的方法更包括一電源關 閉指令分組方法,根據上述每一個區塊之可執行電源關閉指令集合,藉由資料流分析,
使得該第一電源閘控指令佈置中,可結合在一起的電源關閉指令之可執行區塊屬於同一 個組別;以及一電源啟動指令分組方法,根據上述每一個區塊之可執行電源啟動指令集 合,藉由資料流分析,使得該第一電源閘控指令佈置中,可結合在一起的電源啟動指令 之可執行區塊屬於同一個組別。
[0010] 上述低漏電耗能之電源閘控指令佈置方法,其中上述可延後分析方法更包括一能源成 本計算方法以及一資料流分析方法,該能源成本計算方法用來計算上述各元件之電源關 閉指令的一最大可延後時脈週期數,並且該資料流分析方法包括:在該控制流程圖之每 一個區塊中,判斷一產生集合並且對每一個上述元件之電源關閉指令定義一可延後時脈 週期數,使得在一區塊中,產生集合為在該區塊中發生的電源關閉指令,並且將該產生 集合之相關元件的上述可延後時脈週期數初值化為上述最大可延後時脈週期數;在該控 制流程圖之每一個區塊中,判斷一流入集合、一消滅集合以及一流出集合,使得在一區 塊中,流入集合為該區塊之複數個前任區塊之流出集合的交集、消滅集合為該區塊中可 延後時脈週期數為零的電源關閉指令、流出集合為該區塊之產生集合聯集該區塊之流入 集合與消滅集合的差集;在一區塊中,首先判斷該區塊之流入集合,然後將出現在該區 塊之流入集合,但未出現在該區塊之產生集合的電源關閉指令之相關元件的上述可延後 時脈週期數,指定為其元件在該區塊之上述前任區塊之可延後時脈週期數的最小值減 1,接著將該區塊中,可延後時脈週期數為零的元件之電源關閉指令判斷為該區塊之消 滅集合,最後判斷該區塊之流出集合;最後重複上述判斷各區塊之流入集合、消滅集合 以及流出集合的動作,直到全部區塊的流出集合不再有變化為止,此時,一區塊的上述 可執行電源關閉指令集合即該區塊之流出集合。
[0011] 上述低漏電耗能之電源閘控指令佈置方法,其中上述可提前分析方法更包括一能源成 本計算方法以及一資料流分析方法,該能源成本計算方法用來計算上述各元件之電源啟 動指令的一最大可提前時脈週期數,並且該資料流分析方法包括:在該控制流程圖之每 一個區塊中,判斷一產生集合並且對每一個上述元件之電源啟動指令定義一可提前時脈 週期數,使得在一區塊中,產生集合為在該區塊中發生的電源啟動指令,並且將該產生 集合之相關元件的上述可提前時脈週期數初值化為上述最大可提前時脈週期數;在該控 制流程圖之每一個區塊中,判斷一流出集合、一消滅集合以及一流入集合,使得在一區 塊中,流出集合為該區塊之複數個後任區塊之流入集合的交集、消滅集合為該區塊中可 提前時脈週期數為零的電源啟動指令、流入集合為該區塊之產生集合聯集該區塊之流出 集合與消滅集合的差集;在一區塊中,首先判斷該區塊之流出集合,然後將出現在該區 塊之流出集合,但未出現在該區塊之產生集合的電源啟動指令之相關元件的上述可提前 時脈週期數,指定為其元件在該區塊之上述後任區塊之可提前時脈週期數的最小值減 1,接著將該區塊中,可提前時脈週期數為零的元件之電源啟動指令判斷為該區塊之消 滅集合,最後判斷該區塊之流入集合;最後重複上述判斷各區塊之流出集合、消滅集合 以及流入集合的動作,直到全部區塊的流入集合不再有變化為止,此時,一區塊的上述 可執行電源啟動指令集合即該區塊之流入集合。
[0012] 上述低漏電耗能之電源閘控指令佈置方法,其中上述電源關閉指令分組方法包括一資 料流分析方法,其中包括:在該控制流程圖之每一個區塊中,判斷一產生集合,使得在 一區塊中,若該區塊之上述可執行電源關閉指令集合不為空集合,並且該區塊的複數個 前任區塊之可執行電源關閉指令集合的聯集為空集合,則將該區塊的產生集合指定為一 個從未出現過的組名,用以表示一個新的組別產生;其中上述組名由一計數器產生,為 一整數,每當有新的組別產生,該計數器加1;在該控制流程圖之每一個區塊中,判斷 一流入集合、一消滅集合以及一流出集合;在一區塊中,首先,判斷該區塊之流入集
合,若該區塊的複數個前任區塊之流出集合皆為空集合,則將該區塊之流入集合指定為 空集合,反之,則取該區塊的上述前任區塊之流出集合中,除了空集合以外的最小值,
為該區塊之流入集合;然後,判斷該區塊之消滅集合,若該區塊之可執行電源關閉指令 集合為空集合,並且該區塊的複數個前任區塊之可執行電源關閉指令集合的聯集不為空 集合,則將該區塊之消滅集合指定為全集合,反之,則將其指定為空集合;最後將該區 塊之流出集合指定為該區塊之產生集合聯集該區塊之流入集合與消滅集合的差集;最後 重複上述判斷各區塊之流入集合、消滅集合以及流出集合的動作,直到全部區塊的流出 集合不再有變化為止,此時,一區塊所屬的組別,即該區塊之流出集合。
[0013] 上述低漏電耗能之電源閘控指令佈置方法,其中上述電源啟動指令分組方法包括一資 料流分析方法,其中包括:在該控制流程圖之每一個區塊中,判斷一產生集合,使得在 一區塊中,若該區塊之上述可執行電源啟動指令集合不為空集合,並且該區塊的複數個 前任區塊之可執行電源啟動指令集合的聯集為空集合,則將該區塊的產生集合指定為一 個從未出現過的組名,用以表示一個新的組別產生;其中上述組名由一計數器產生,為 一整數,每當有新的組別產生,該計數器加1;在該控制流程圖之每一個區塊中,判斷 一流入集合、一消滅集合以及一流出集合;在一區塊中,首先,判斷該區塊之流入集 合,若該區塊的複數個前任區塊之流出集合皆為空集合,則將該區塊之流入集合指定為 空集合,反之,則取該區塊的上述前任區塊之流出集合中,除了空集合以外的最小值,
為該區塊之流入集合;然後,判斷該區塊之消滅集合,若該區塊之可執行電源啟動指令 集合為空集合,並且該區塊的複數個前任區塊之可執行電源啟動指令集合的聯集不為空 集合,則將該區塊之消滅集合指定為全集合,反之,則將其指定為空集合;最後將該區 塊之流出集合指定為該區塊之產生集合聯集該區塊之流入集合與消滅集合的差集;最後 重複上述判斷各區塊之流入集合、消滅集合以及流出集合的動作,直到全部區塊的流出 集合不再有變化為止,此時,一區塊所屬的組別,即該區塊之流出集合。
[0014] 另外,本發明提出一種低漏電耗能之電源閘控指令佈置系統,其中輸入為一程式並且 輸出為一電源閘控程式,該電源閘控程式為被插入複數個電源閘控指令後的該程式,其 中該低漏電耗能之電源閘控指令佈置系統更包括:一建構控制流程圖模組,將該程式分 割為複數個區塊,根據該程式的流程,鏈結上述區塊並且加入控制資訊,以得到一控制 流程圖;一元件使用狀態分析模組,用以分析複數個元件在上述區塊中的使用狀態,上 述元件為可電源閘控元件;一第一電源閘控指令佈置模組,根據該控制流程圖以及上述 元件在各區塊中的使用狀態,產生一第一電源閘控指令佈置,其中使用複數個電源關閉 指令以及複數個電源啟動指令,用以在上述元件的複數個閒置區塊前後,分別佈置電源 關閉指令以及電源啟動指令;一第二電源閘控指令佈置模組,調整該第一電源閘控指令 佈置,以產生一第二電源閘控指令佈置,其中將上述第一電源閘控指令佈置中可結合在 一起執行的電源關閉指令結合成單一個電源關閉指令,或將上述第一電源閘控指令佈置 中可結合在一起執行的電源啟動指令結合成單一個電源啟動指令;以及一插入電源閘控 指令模組,於該程式中,根據該第二電源閘控指令佈置,插入電源關閉指令以及電源啟 動指令。
[0015] 上述低漏電耗能之電源閘控指令佈置系統,其中上述第二電源閘控指令佈置模組更包 括:一第一電源閘控指令分析模組,用以在該第一電源閘控指令佈置中,判斷每一個電 源關閉指令是否可被延後至該控制流程圖之其他區塊執行,以產生每一個電源關閉指令 之複數個可執行區塊,並且判斷每一個電源啟動指令是否可被提前至該控制流程圖之其 他區塊執行,以產生每一個電源啟動指令之複數個可執行區塊;一分組模組,用以分組 該控制流程圖的區塊,以產生複數個組別,使得該第一電源閘控指令佈置中,可結合在 一起的電源關閉指令之可執行區塊屬於同一個組別,並且可結合在一起的電源啟動指令 之可執行區塊屬於同一個組別;以及一能源評估模組,用以在每一個上述組別中,根據 其中每一個電源關閉指令之可執行區塊、或其中每一個電源啟動指令之可執行區塊,得 到每一個上述組別之複數個電源閘控指令佈置組合,接著判斷各組別中最節省能源的電 源閘控指令佈置組合,以產生該第二電源閘控指令佈置。
[0016] 上述低漏電耗能之電源閘控指令佈置系統,其中上述第一電源閘控指令分析模組包括 一可延後分析方法以及一可提前分析方法,分別藉由資料流分析在該控制流程圖之每一
個區塊得到一可執行電源關閉指令集合以及一可執行電源啟動指令集合,用以表示可在 該區塊被執行的電源關閉指令之集合以及電源啟動指令之集合。
[0017] 上述低漏電耗能之電源閘控指令佈置系統,其中上述分組模組更包括:一電源關閉指 令分組模組,根據上述每一個區塊之可執行電源關閉指令集合,藉由資料流分析,使得 該第一電源閘控指令佈置中,可結合在一起的電源關閉指令之可執行區塊屬於同一個組 別;以及一電源啟動指令分組模組,根據上述每一個區塊之可執行電源啟動指令集合,
藉由資料流分析,使得該第一電源閘控指令佈置中,可結合在一起的電源啟動指令之可 執行區塊屬於同一個組別。
[0018] 為使本發明之上述目的、特徵和優點能更明顯易懂,下文特舉複數個較佳實施例,並 配合所附圖式,作詳細說明如下。
【實施方式】
[0019] 第1圖表示一種處理器架構,其中包括程式計數器101、指令解碼器102、整數暫存器 103、浮點數暫存器104、電源閘控控制暫存器105、整數邏輯運算元106、整數乘法器 107、浮點數加法器108、浮點數乘法器109、浮點數除法器110。其中整數乘法器107、
浮點數加法器108、浮點數乘法器109、浮點數除法器110皆附有一個電源閘控元件111。
電源閘控控制暫存器105內的值表示是否對上述可電源閘控元件進行電源閘控動作。該 處理器具有以指令控制電源閘控控制暫存器105內的值的設計。
[0020] 第2圖說明使用編譯器技術產生一處理器可執行的一低漏電耗能組合程式碼,其中包 括:步驟201,編譯器讀入一高階語言程式,經由前端分析器對該高階語言程式進行語 彙以及語意分析,並且產生一高階中介描述;步驟202,讀入該高階中介描述,將該高 階中介描述轉換成該處理器可處理的一低階中介描述;步驟203,讀入該低階中介描 述,並且進行暫存器配置與指令排程,以產生一程式,該程式內的每一個敘述皆可對應 地轉換成組合程式碼;步驟204,讀入該程式,分析該處理器之複數個可電源閘控元件 於該程式中的使用狀態,並且於該程式適當位置插入電源閘控指令並且盡可能地減少電 源閘控指令數目;步驟205,讀入步驟204輸出之包含電源閘控指令的程式,將其轉換成 該處理器之組合程式碼。
[0021] 第3圖更詳細說明上述步驟204之內容,其中包括:步驟301,讀入步驟203所輸出之程 式;步驟302,建立一控制流程圖,其中將該程式分割為複數個區塊,根據該程式的流 程,鏈結上述區塊並且加入控制資訊;步驟303,分析上述可電源閘控元件在該控制流 程圖之每一個區塊的使用狀態;步驟304,根據該控制流程圖以及上述可電源閘控元件 在各區塊中的使用狀態,遵循減少能源消耗的原則,產生一第一電源閘控指令佈置,其 中使用複數個電源關閉指令以及複數個電源啟動指令,在上述可電源閘控元件的複數個 閒置區塊前後,分別佈置電源關閉指令以及電源啟動指令;步驟305,遵循減少能源消 耗的原則,將該第一電源閘控指令佈置中可結合在一起執行的電源關閉指令結合成單一 個電源關閉指令,並且將該第一電源閘控指令佈置中可結合在一起執行的電源啟動指令 結合成單一個電源啟動指令,以產生一第二電源閘控指令佈置;以及步驟306,根據該 第二電源閘控指令佈置,於該程式插入電源關閉指令以及電源啟動指令。
[0022] 上述步驟302至304,可依中華民國專利公告號00519599之「結合低耗能指令集在編譯器 之元件流程分析結構與方法」所描述之技術取得其操作方法。亦可使用其他數種方法,
例如,使用profiling方式歸納得到該第一電源閘控指令佈置。不論是使用軟體或硬體 技術取得該第一電源閘控指令佈置,皆可運用在本發明所提出之低漏電耗能之電源閘控 指令佈置方法。
[0023] 第4圖更詳細說明上述步驟305之內容,其中包括:步驟401,輸入該控制流程圖、上述 可電源閘控元件在該控制流程圖之每一個區塊的使用狀態、以及該第一電源閘控指令佈 置;步驟402,遵循減少能源消耗的原則,在該第一電源閘控指令佈置中,判斷每一個 電源關閉指令是否可被延後至該控制流程圖之其他區塊執行,以產生每一個電源關閉指 令之複數個可執行區塊,並且判斷每一個電源啟動指令是否可被提前至該控制流程圖之 其他區塊執行,以產生每一個電源啟動指令之複數個可執行區塊;步驟403,分組該控 制流程圖的區塊,以產生複數個組別,使得該第一電源閘控指令佈置中,可結合在一起
的電源關閉指令之可執行區塊屬於同一個組別,並且可結合在一起的電源啟動指令之可 執行區塊屬於同一個組別;步驟404,在每一個上述組別中,根據其中每一個電源關閉 指令之可執行區塊、或其中每一個電源啟動指令之可執行區塊,得到每一個組別之複數 個電源閘控指令佈置組合,接著判斷各組別中最節省能源的電源閘控指令佈置組合,以 產生該第二電源閘控指令佈置。
[0024] 一實施例說明本發明所提出的一可延後分析方法的一能源成本計算方法。該能源成本計 算方法計算出可以將一處理器的一可電源閘控元件之電源關閉指令延後執行的最大時脈 週期數。其中定義E
off
(C)表示關閉元件C電源時的能量消耗,Efet-dec-off
(C)表示 擷取並且解碼元件C之電源關閉指令時所需要的能量消耗,Eexe-off
(C)表示執行元件C 的電源關閉指令時所需要的能量消耗,其中N表示該處理器之可電源閘控元件的總 數,Efet-dec-off
(C)與Eexe-off
(C)的總合等於Eoff
(C)。定義Pleak
(C)為元件C在 已啟動但非運作狀態下每一個時脈週期之能量消耗,Prleak
(C)為元件C在休眠狀態下 每一個時脈週期之能量消耗。定義SINK_SLKC
為元件C之電源關閉指令的可延後時脈週 期數,其中SINK_SLKC
滿足以下不等式:Eoff
(C)+Prleak
(C).SINK_SLKC
>E
fet-dec-off
(C)/N+Eexe-off
(C)+Pleak
(C).SINK_SLKC
(1)由方程式(1)可以求 得一最大可延後時脈週期數MAX_SINK_SLKC
,其中[0025] 一實施例說明本發明所提出的一可提前分析方法的一能源成本計算方法。該能源成本計 算方法計算出可以將一處理器的一可電源閘控元件之電源啟動指令提前執行的最大時脈 週期數。其中定義E
on
(C)表示啟動元件C電源時的能量消耗,Efet-dec-on
(C)表示擷 取並且解碼元件C之電源啟動指令時所需要的能量消耗,Eexe-on
(C)表示執行元件C的 電源啟動指令時所需要的能量消耗,其中N表示該處理器之可電源閘控元件的總數,E
fet-dec-on
(C)與Eexe-on
(C)的總合等於Eon
(C)。定義HOIST_SLKC
為元件C之 電源關閉指令的可提前時脈週期數,其中HOIST_SLKC
滿足以下不等式:Eon
(C)+P
rleak
(C).HOIST_SLKC
>Efet-dec-on
(C)/N+Eexe-on
(C)+Pleak
(C).HOIST_SLK
C
(3)由方程式(3)可以求得一最大可提前時脈週期數MAX_HOIST_SLKC
,其中
[0026] 一實施例說明本發明所提出的一可延後分析法的一資料流分析方法。其中在控制流程圖 的每一個區塊中,定義一產生集合、一消滅集合、一流入集合以及一流出集合,並且定 義每一個元件之電源關閉指令在每一個區塊的一可延後時脈週期數。SINKABLE
loc
(b )、SINKABLEblk
(b )、SINKABLEin
(b )以及SINKABLEout
(b ),分別表示區塊b 的產 生集合、消滅集合、流入集合以及流出集合。SINK_ 表示元件C之電源關閉指令在區 塊b 之可延後時脈週期數。如第5圖所示,該可延後分析法的步驟包括:步驟501,首先 判斷每一個區塊之產生集合,並且指定其產生集合內容的可延後時脈週期數。在一區 塊b 中,判斷SINKABLEloc
(b ),並且將SINKABLEloc
(b )內的相關元件之電源關閉指 令的SINK_ 指定為上述MAX_SINK_SLKC
。[0027] 步驟502判斷每一個區塊之流入集合、消滅集合以及流出集合。在一區塊b
中,SINKABLE
in
(b )= SINKABLEout
(p ),其中Pred (b )為控制流程圖中領先區 塊b 一個區塊的複數個前任區塊。指定出現在SINKABLEin
(b )但未出現在SINKABLEloc
(b )中的相關元件之電源關閉指令的SINK_ ,使得其SINK_ = _SINK_ - 1。SINKABLEblk
(b )為SINK_ =0的元件之電源關閉指令。而區塊b 之流出集合,SINKABLE
out
(b )=SINKABLEloc
(b )∪(SINKABLEin
(b )-SINKABLEblk
(b ))。[0028] 步驟503判斷全部區塊之流出集合是否與前一次步驟502運作前相同,若不相同,則重複 步驟502,直到全部區塊之流出集合都不再變化為止。此時,區塊b 之SINKABLE
out
(b)為可在區塊b 被執行的電源關閉指令之集合。
[0029] 一實施例說明本發明所提出的一可提前分析法的一資料流分析方法。其中在控制流程圖 的每一個區塊中,定義一產生集合、一消滅集合、一流入集合以及一流出集合,並且定 義每一個元件之電源啟動指令在每一個區塊的一可提前時脈週期數。HOISTABLE
loc
(b )、HOISTABLEblk
(b )、HOISTABLEin
(b )以及HOISTABLEout
(b ),分別表示區塊b 的產生集合、消滅集合、流入集合以及流出集合。HOIST_ 表示元件C之電源啟動指令 在區塊b 之可提前時脈週期數。如第6圖所示,該可提前分析法的步驟包括:步驟601,判斷每一個區塊之產生集合,並且指定其產生集合內容的可提前時脈週期數。在一區 塊b 中,判斷HOISTABLE
loc
(b ),並且將HOISTABLEloc
(b )內的相關元件之電源啟動 指令的HOIST_ 指定為上述MAX_HOIST_SLKC
。[0030] 步驟602判斷每一個區塊之流出集合、消滅集合以及流入集合。在一區塊b
中,HOISTABLE
out
(b )= HOISTABLEin
(s ),其中Succ (b )為控制流程圖中落後 區塊b 一個區塊的複數個後任區塊。指定出現在HOISTABLEout
(b )但未出現在HOISTABLE
loc
(b )中的相關元件之電源啟動指令的HOIST_ ,使得其HOIST_ = _HOIST_ -1。HOISTABLEblk
(b )為HOIST- =0的元件之電源啟動指令。而區塊b 之流入集合,HOISTABLEin
(b )=HOISTABLEloc
(b )∪(HOISTABLEout
(b )-HOISTABLE
blk
(b ))。[0031] 步驟603判斷全部區塊之流入集合是否與前一次步驟602運作前相同,若不相同,則重複 步驟602,直到全部區塊之流入集合都不再變化為止。。此時,區塊b 之HOISTABLE
in
(b )為可在區塊b 被執行的電源啟動指令之集合。[0032] 一實施例說明本發明所提出的一電源關閉指令分組方法的一資料流分析方法,其中在控 制流程圖的每一個區塊中,定義一產生集合、一消滅集合、一流入集合以及一流出集 合。GROUP-OFF
loc
(b )、GROUP-OFFblk
(b )、GROUP-OFFin
(b )以及GROUP-OFF
out
(b ),分別表示區塊b 的產生集合、消滅集合、流入集合以及流出集合。如第7 圖所示,該電源關閉指令分組方法的步驟包括:步驟701,在控制流程圖之每一個區塊 中,判斷一產生集合。在一區塊b 中,判斷GROUP-OFFloc
(b ),其中若SINKABLEout
(b )≠Φ並且 SINKABLEout
(p )=Φ,則將GROUP-OFFloc
(b )指定為一個新的整 數,表示有一個新的組別產生,該整數由一計數器產生,每當有新的組別產生,則該計 數器加1。[0033] 步驟702判斷每一個區塊的一流入集合、一消滅集合以及一流出集合;在一區塊b 中,GROUP-OFF
in
(b )={ ,其中Φ_x )表示集合x 中唯一元素的值(集合x中只包 含一個元素),若x 為空集合則Φ(x )為無窮大;若SINKABLEout
(b )=Φ並且SINKABLE
out
(p )≠Φ,則GROUP-OFFblk
(b )=Ω,反之,則GROUP-OFFblk
(b )=Φ;而區塊b 之流出集合,GROUP-OFF
out
(b )=GROUP-OFFloc
(b )∪(GROUP-OFF
in
(b )-GROUP-OFFblk
(b ))。[0034] 步驟703判斷全部區塊之流出集合是否與前一次步驟702運作前相同,若不相同,則重複 步驟702,直到全部區塊之流出集合都不再變化為止,此時,區塊b所屬的組別即GROUP
-OFF
out
(b )的內容。[0035] 一實施例說明本發明所提出的一電源啟動指令分組方法的一資料流分析方法,其中在控 制流程圖的每一個區塊中,定義一產生集合、一消滅集合、一流入集合以及一流出集 合。GROUP-ON
loc
(b )、GROUP-ONblk
(b )、GROUP-ONin
(b )以及GROUP-ONout
(b ),分別表示區塊b 的產生集合、消滅集合、流入集合以及流出集合。如第8圖所示,該 電源啟動指令分組方法的步驟包括:步驟801,在控制流程圖之每一個區塊中,判斷一 產生集合。在一區塊b中,判斷GROUP-ONloc
(b ),其中若HOISTABLEin
(b )≠Φ並且HOISTABLE
in
(p )=Φ,則將GROUP-ONloc
(b )指定為一個新的整數,表示有一個 新的組別產生,該整數由一計數器產生,每當有新的組別產生,則該計數器加1。[0036] 步驟802判斷每一個區塊的一流入集合、一消滅集合以及一流出集合;在一區塊b 中,GROUP-ON
in
(b )={ ;若HOISTABLEin
(b )=Φ並且 HOISTABLEin
(p )≠Φ,則GROUP-ONblk
(b )=Ω,反之,則GROUP-ONblk
(b )=Φ;而區塊b 之流 出集合,GROUP-ONout
(b )=GROUP-ONloc
(b )∪(GROUP-ONin
(b )-GROUP-ONblk
(b ))。[0037] 步驟803判斷全部區塊之流出集合是否與前一次步驟802運作前相同,若不相同,則重複 步驟802,直到全部區塊之流出集合都不再變化為止,此時,區塊b 所屬的組別即GROUP
-ON
out
(b )的內容。[0038] 一實施例說明本發明所提出之低漏電耗能之電源閘控指令佈置方法。一處理器具有兩個 可電源閘控元件A、B。第9A圖表示一控制流程圖、元件A、B在每一個區塊的使用狀態、
以及一第一電源閘控指令佈置。其中每一個區塊的左半邊表示元件A之使用狀態,而右 半邊表示元件B之使用狀態,若元件在一區塊為使用中,則將該區塊標示為灰色。第9A 圖顯示第一電源閘控指令佈置針對元件A在區塊B
m+2
、Bn+2
佈置兩個電源關閉指令,並且針對元件B在區塊B
m+5
、Bn+5
佈置兩個電源關閉指令。進行上述可延後分析方 法,依照該可延後分析方法的一能源成本計算方法,可得元件A之最大可延後時脈週期 數為4、元件B之最大可延後時脈週期數為2。將SINKABLEloc
(Bm+2
)指定為A4
,表示 第一電源閘控指令佈置將元件A之電源關閉指令佈置於區塊Bm+2
,且該指令於該區塊 之可延後時脈週期數為4,同樣地,以此記號紀錄其他集合的內容。使用可延後分析方 法的資料流分析方法,結果如第1表所示,說明每一個區塊b 的SINKABLEloc
(b)、SINKABLE
blk
(b )、SINKABLEin
(b )以及SINKABLEout
(b ),其中未填充部分為空 集合。其中SINKABLEout
(b )表示區塊b 的可執行電源關閉指令。[0039]
[0040] 接著進行上述電源關閉指令分組方法,其中利用一資料流分析方法,求得每一個區塊b 的GROUP-OFF
loc
(b )、GROUP-OFFblk
(b )、GROUP-OFFin
(b )以及GROUP-OFFout
(b ),結果如第2表所示,其中未填充部分為空集合。其中GROUP-OFFout
(b )即表示 區塊b 所屬組別。[0041]
[0042] 在上述組別1、2中,個別根據其中每一個區塊之可執行電源關閉指令,得到各組別之複 數個電源閘控指令佈置組合,接著判斷各組別中最節省能源的電源閘控指令佈置組合,
以產生一第二電源閘控指令佈置。其結果如第9B圖所示,該第二電源閘控指令佈置在第 1組別中,將元件A、B的電源關閉指令結合在一起且佈置於區塊B
m+5
,並且在第2組別 中,將元件A、B的電源關閉指令結合在一起且佈置於區塊Bn+6
。[0043] 本發明已揭示較佳實施例如上,僅用於幫助瞭解本發明之實施,非用以限定本發明之精 神,而熟悉此領域技藝者於領悟本發明之精神後,在不脫離本發明之精神範圍內,當可 作些許更動潤飾及等同之變化替換,其專利保護範圍當視後附之申請專利範圍及其等同 領域而定。
【圖式簡單說明】
[0081] 第1圖表示一處理器架構;第2圖為一流程圖,說明使用編譯器技術產生一處理器可執行 的一低漏電耗能組合程式碼;第3圖為一流程圖,說明一種低漏電耗能之電源閘控指令 佈置方法;第4圖為一流程圖,說明藉由調整第一電源閘控指令佈置,產生第二電源閘 控指令佈置的方法;第5圖為一流程圖,表示一可延後分析法的一資料流分析方法;第6 圖為一流程圖,表示一可提前分析法的一資料流分析方法;第7圖為一流程圖,表示一 電源關閉指令分組方法的一資料流分析方法;第8圖為一流程圖,表示一電源啟動指令 分組方法的一資料流分析方法;第9A圖為一實施例,說明兩個可電源閘控元件於一程式 中的第一電源閘控指令佈置;第9B圖為一實施例,說明針對第9A圖使用本發明所提出之 方法,產生第二電源閘控指令佈置。
【主要元件符號說明】
[0044] 101...程式計數器(PC) [0045] 102...指令解碼器 [0046] 103...整數暫存器 [0047] 104...浮點數暫存器
[0048] 105...電源閘控控制暫存器 [0049] 106...整數邏輯運算元
[0050] 107...整數乘法器 [0051] 108...浮點數加法器 [0052] 109...浮點數乘法器 [0053] 110...浮點數除法器
[0054] 201...前端分析器對輸入之高階語言程式進行語彙與語意分析,並且產生一高階中 介描述
[0055] 202...將該高階中介描述針對其處理器轉換成一低階中介描述
[0056] 203...針對該處理器,對該低階中介描述進行暫存器配置與指令排程
[0057] 204...分析該程式中各元件的使用狀態,在該程式適當位置插入電源閘控指令並且 盡可能地減少電源閘控指令數目
[0058] 205...產生該處理器之組合程式碼
[0059] 301...輸入一程式,該程式為已進行暫存器配置與指令排程的一低階中介描述 [0060] 302...建立該程式之控制流程圖
[0061] 303...分析控制流程圖中任意區塊上各元件的使用狀態
[0062] 304...遵循減少能源消耗的原則,產生一第一電源閘控指令佈置,在可電源閘控元 件的閒置區間前後,分別佈置電源關閉指令以及電源啟動指令
[0063] 305...遵循減少能源消耗的原則,將第一電源閘控指令佈置中,可結合在一起執行 的電源閘控指令結合成單一個電源閘控指令,以產生一第二電源閘控指令佈置
[0064] 306...根據該第二電源閘控指令佈置,將電源關閉指令以及電源啟動指令插入該程 式
[0065] 401...輸入控制流程圖、元件使用狀態、以及第一電源閘控指令佈置
[0066] 402...遵循減少能源消耗的原則,分析第一電源閘控指令佈置,以進行電源關閉指 令之可延後分析以及電源啟動指令之可提前分析
[0067] 403...進行一電源關閉指令分組方法以及一電源啟動指令分組方法將該控制流程圖 的各區塊分組,使得同組別的區塊之電源閘控指令可結合在一起
[0068] 404...得到每一個組別之複數個電源閘控指令佈置組合,並且判斷各組別中最節省 能源的電源閘控指令佈置組合,以產生該第二電源閘控指令佈置
[0069] 501...判斷每一個區塊b 之SINKABLE
loc
(b ),並且指定SINK_ 的初始值[0070] 502...判斷每一個區塊b 之SINKABLE
in
(b )、SINKABLEblk
(b )以及SINKABLEout
(b )[0071] 503...判斷每一個區塊b 之SINKABLE
out
(b )是否與步驟502計算前相同[0072] 601...判斷每一個區塊b 之HOISTABLE
loc
(b ),並且指令HOIST- 的初始值 [0073] 602...判斷每一個區塊b 之HOISTABLEout
(b )、HOISTABLEblk
(b )以及HOISTABLE
in
(b )[0074] 603...判斷每一個區塊b 之HOISTABLE
in
(b )是否與步驟602計算前相同 [0075] 701...指定每一個區塊b 之GROUP-OFFloc
(b )[0076] 702...判斷每一個區塊b 之GROUP-OFF
in
(b )、GROUP-OFFblk
(b )以及GROUP-OFF
out
(b )[0077] 703...判斷每一個區塊b 之GROUP-OFF
out
(b )是否與步驟702計算前相同 [0078] 801...指定每一個區塊b 之GROUP-ONloc
(b )[0079] 802...判斷每一個區塊b 之GROUP-ON
in
(b )、GROUP-ONblk
(b )以及GROUP-ON
out
(b )[0080] 803...判斷每一個區塊b 之GROUP-ON
out
(b )是否與步驟802計算前相同七、 申請專利範圍:
1.一種低漏電耗能之電源閘控指令佈置方法,其中包括;輸入一程式;建立一控制流程 圖,其中將該程式分割為複數個區塊,根據該程式的流程,鏈結上述區塊並且加入控制 資訊;分析複數個元件在上述區塊中的使用狀態,上述元件為可電源閘控元件;根據該 控制流程圖以及上述元件在各區塊中的使用狀態,產生一第一電源閘控指令佈置,其中 使用複數個電源關閉指令以及複數個電源啟動指令,用以在上述元件的複數個閒置區塊 前後,分別佈置電源關閉指令以及電源啟動指令;調整該第一電源閘控指令佈置,以產 生一第二電源閘控指令佈置,其中將上述第一電源閘控指令佈置中可結合在一起執行的 電源關閉指令結合成單一個電源關閉指令,並且將上述第一電源閘控指令佈置中可結合 在一起執行的電源啟動指令結合成單一個電源啟動指令;以及於該程式中,根據該第二 電源閘控指令佈置,插入電源關閉指令以及電源啟動指令。
2.如申請專利範圍第1項所述之低漏電耗能之電源閘控指令佈置方法,其中上述產生第 二電源閘控指令佈置的步驟更包括:在該第一電源閘控指令佈置中,判斷每一個電源關 閉指令是否可被延後至該控制流程圖之其他區塊執行,以產生每一個電源關閉指令之複 數個可執行區塊,並且判斷每一個電源啟動指令是否可被提前至該控制流程圖之其他區 塊執行,以產生每一個電源啟動指令之複數個可執行區塊;分組該控制流程圖的區塊,
以產生複數個組別,使得該第一電源閘控指令佈置中,可結合在一起的電源關閉指令之 可執行區塊屬於同一個組別,並且可結合在一起的電源啟動指令之可執行區塊屬於同一 個組別;以及在每一個上述組別中,根據其中每一個電源關閉指令之可執行區塊、或其 中每一個電源啟動指令之可執行區塊,得到每一個上述組別之複數個電源閘控指令佈置 組合,接著判斷各組別中最節省能源的電源閘控指令佈置組合,以產生該第二電源閘控 指令佈置。
3.如申請專利範圍第2項所述之低漏電耗能之電源閘控指令佈置方法,其中上述產生每 一個電源關閉指令之可執行區塊的方法更包括一可延後分析方法,藉由資料流分析,在 該控制流程圖之每一個區塊,得到一可執行電源關閉指令集合,用以表示可在該區塊被 執行的電源關閉指令之集合;並且上述產生電源啟動指令之可執行區塊的方法更包括一 可提前分析方法,藉由資料流分析,在該控制流程圖之每一個區塊,得到一可執行電源 啟動指令集合,用以表示可在該區塊被執行的電源啟動指令之集合。
4.如申請專利範圍第3項所述之低漏電耗能之電源閘控指令佈置方法,其中上述產生組 別的方法更包括:一電源關閉指令分組方法,根據上述每一個區塊之可執行電源關閉指 令集合,藉由資料流分析,使得該第一電源閘控指令佈置中,可結合在一起的電源關閉 指令之可執行區塊屬於同一個組別;以及一電源啟動指令分組方法,根據上述每一個區 塊之可執行電源啟動指令集合,藉由資料流分析,使得該第一電源閘控指令佈置中,可 結合在一起的電源啟動指令之可執行區塊屬於同一個組別。
5.如申請專利範圍第3項所述之低漏電耗能之電源閘控指令佈置方法,其中上述可延後 分析方法更包括一能源成本計算方法以及一資料流分析方法,該能源成本計算方法用來 計算上述各元件之電源關閉指令的一最大可延後時脈週期數,並且該資料流分析方法包 括:在該控制流程圖之每一個區塊中,判斷一產生集合並且對每一個上述元件之電源關 閉指令定義一可延後時脈週期數,使得在一區塊中,產生集合為在該區塊中發生的電源 關閉指令,並且將該產生集合之相關元件的上述可延後時脈週期數初值化為上述最大可 延後時脈週期數;在該控制流程圖之每一個區塊中,判斷一流入集合、一消滅集合以及 一流出集合,使得在一區塊中,流入集合為該區塊之複數個前任區塊之流出集合的交 集、消滅集合為該區塊中可延後時脈週期數為零的電源關閉指令、流出集合為該區塊之 產生集合聯集該區塊之流入集合與消滅集合的差集;在一區塊中,首先判斷該區塊之流 入集合,然後將出現在該區塊之流入集合,但未出現在該區塊之產生集合的電源關閉指 令之相關元件的上述可延後時脈週期數,指定為其元件在該區塊之上述前任區塊之可延 後時脈週期數的最小值減1,接著將該區塊中,可延後時脈週期數為零的元件之電源關 閉指令判斷為該區塊之消滅集合,最後判斷該區塊之流出集合;以及重複上述判斷各區 塊之流入集合、消滅集合以及流出集合的動作,直到全部區塊的流出集合不再有變化為 止,此時,一區塊的上述可執行電源關閉指令集合即該區塊之流出集合。
6.如申請專利範圍第3項所述之低漏電耗能之電源閘控指令佈置方法,其中上述可提前 分析方法更包括一能源成本計算方法以及一資料流分析方法,該能源成本計算方法用來 計算上述各元件之電源啟動指令的一最大可提前時脈週期數,並且該資料流分析方法包 括:在該控制流程圖之每一個區塊中,判斷一產生集合並且對每一個上述元件之電源啟 動指令定義一可提前時脈週期數,使得在一區塊中,產生集合為在該區塊中發生的電源 啟動指令,並且將該產生集合之相關元件的上述可提前時脈週期數初值化為上述最大可 提前時脈週期數;在該控制流程圖之每一個區塊中,判斷一流出集合、一消滅集合以及 一流入集合,使得在一區塊中,流出集合為該區塊之複數個後任區塊之流入集合的交 集、消滅集合為該區塊中可提前時脈週期數為零的電源啟動指令、流入集合為該區塊之 產生集合聯集該區塊之流出集合與消滅集合的差集;在一區塊中,首先判斷該區塊之流 出集合,然後將出現在該區塊之流出集合,但未出現在該區塊之產生集合的電源啟動指 令之相關元件的上述可提前時脈週期數,指定為其元件在該區塊之上述後任區塊之可提 前時脈週期數的最小值減1,接著將該區塊中,可提前時脈週期數為零的元件之電源啟 動指令判斷為該區塊之消滅集合,最後判斷該區塊之流入集合;以及重複上述判斷各區 塊之流出集合、消滅集合以及流入集合的動作,直到全部區塊的流入集合不再有變化為 止,此時,一區塊的上述可執行電源啟動指令集合即該區塊之流入集合。
7.如申請專利範圍第4項所述之低漏電耗能之電源閘控指令佈置方法,其中上述電源關 閉指令分組方法包括一資料流分析方法,其中包括:在該控制流程圖之每一個區塊中,
判斷一產生集合,使得在一區塊中,若該區塊之上述可執行電源關閉指令集合不為空集 合,並且該區塊的複數個前任區塊之可執行電源關閉指令集合的聯集為空集合,則將該 區塊的產生集合指定為一個從未出現過的組名,用以表示一個新的組別產生;其中上述 組名由一計數器產生,為一整數,每當有新的組別產生,該計數器加1;在該控制流程 圖之每一個區塊中,判斷一流入集合、一消滅集合以及一流出集合;在一區塊中,首 先,判斷該區塊之流入集合,若該區塊的上述前任區塊之流出集合皆為空集合,則將該 區塊之流入集合指定為空集合,反之,則取該區塊的上述前任區塊之流出集合中,除了 空集合以外的最小值,為該區塊之流入集合;然後,判斷該區塊之消滅集合,若該區塊 之可執行電源關閉指令集合為空集合,並且該區塊的複數個前任區塊之可執行電源關閉 指令集合的聯集不為空集合,則將該區塊之消滅集合指定為全集合,反之,則將其指定 為空集合;最後將該區塊之流出集合指定為該區塊之產生集合聯集該區塊之流入集合與 消滅集合的差集;以及重複上述判斷各區塊之流入集合、消滅集合以及流出集合的動 作,直到全部區塊的流出集合不再有變化為止,此時,一區塊所屬的組別,即該區塊之 流出集合。
8.如申請專利範圍第4項所述之低漏電耗能之電源閘控指令佈置方法,其中上述電源啟 動指令分組方法包括一資料流分析方法,其中包括:在該控制流程圖之每一個區塊中,
判斷一產生集合,使得在一區塊中,若該區塊之上述可執行電源啟動指令集合不為空集 合,並且該區塊的複數個前任區塊之可執行電源啟動指令集合的聯集為空集合,則將該 區塊的產生集合指定為一個從未出現過的組名,用以表示一個新的組別產生;其中上述 組名由一計數器產生,為一整數,每當有新的組別產生,該計數器加1;在該控制流程 圖之每一個區塊中,判斷一流入集合、一消滅集合以及一流出集合;在一區塊中,首 先,判斷該區塊之流入集合,若該區塊的上述前任區塊之流出集合皆為空集合,則將該 區塊之流入集合指定為空集合,反之,則取該區塊的上述前任區塊之流出集合中,除了 空集合以外的最小值,為該區塊之流入集合;然後,判斷該區塊之消滅集合,若該區塊 之可執行電源啟動指令集合為空集合,並且該區塊的複數個前任區塊之可執行電源啟動 指令集合的聯集不為空集合,則將該區塊之消滅集合指定為全集合,反之,則將其指定 為空集合;最後將該區塊之流出集合指定為該區塊之產生集合聯集該區塊之流入集合與 消滅集合的差集;以及重複上述判斷各區塊之流入集合、消滅集合以及流出集合的動 作,直到全部區塊的流出集合不再有變化為止,此時,一區塊所屬的組別,即該區塊之 流出集合。
9.一種低漏電耗能之電源閘控指令佈置系統,其中,輸入為一程式並且輸出為一電源閘 控程式,該電源閘控程式為被插入複數個電源閘控指令後的該程式,其中該低漏電耗能 之電源閘控指令佈置系統更包括:一建構控制流程圖模組,將該程式分割為複數個區
塊,根據該程式的流程,鏈結上述區塊並且加入控制資訊,以得到一控制流程圖;一元 件使用狀態分析模組,用以分析複數個元件在上述區塊中的使用狀態,上述元件為可電 源閘控元件;一第一電源閘控指令佈置模組,根據該控制流程圖以及上述元件在各區塊 中的使用狀態,產生一第一電源閘控指令佈置,其中使用複數個電源關閉指令以及複數 個電源啟動指令,用以在上述元件的複數個閒置區塊前後,分別佈置電源關閉指令以及 電源啟動指令;一第二電源閘控指令佈置模組,調整該第一電源閘控指令佈置,以產生 一第二電源閘控指令佈置,其中將上述第一電源閘控指令佈置中可結合在一起執行的電 源關閉指令結合成單一個電源關閉指令,或將上述第一電源閘控指令佈置中可結合在一 起執行的電源啟動指令結合成單一個電源啟動指令;以及一插入電源閘控指令模組,於 該程式中,根據該第二電源閘控指令佈置,插入電源關閉指令以及電源啟動指令。
10.如申請專利範圍第9項所述之低漏電耗能之電源閘控指令佈置系統,其中上述第二電 源閘控指令佈置模組更包括:一第一電源閘控指令分析模組,用以在該第一電源閘控指 令佈置中,判斷每一個電源關閉指令是否可被延後至該控制流程圖之其他區塊執行,以 產生每一個電源關閉指令之複數個可執行區塊,並且判斷每一個電源啟動指令是否可被 提前至該控制流程圖之其他區塊執行,以產生每一個電源啟動指令之複數個可執行區 塊;一分組模組,用以分組該控制流程圖的區塊,以產生複數個組別,使得該第一電源 閘控指令佈置中,可結合在一起的電源關閉指令之可執行區塊屬於同一個組別,並且可 結合在一起的電源啟動指令之可執行區塊屬於同一個組別;以及一能源評估模組,用以 在每一個上述組別中,根據其中每一個電源關閉指令之可執行區塊、或其中每一個電源 啟動指令之可執行區塊,得到每一個上述組別之複數個電源閘控指令佈置組合,接著判 斷各組別中最節省能源的電源閘控指令佈置組合,以產生該第二電源閘控指令佈置。
11.如申請專利範圍第10項所述之低漏電耗能之電源閘控指令佈置系統,其中上述第一 電源閘控指令分析模組包括一可延後分析方法以及一可提前分析方法,分別藉由資料流 分析在該控制流程圖之每一個區塊得到一可執行電源關閉指令集合以及一可執行電源啟 動指令集合,用以表示可在該區塊被執行的電源關閉指令之集合以及電源啟動指令之集 合。
12.如申請專利範圍第11項所述之低漏電耗能之電源閘控指令佈置系統,其中上述分組 模組更包括:一電源關閉指令分組模組,根據上述每一個區塊之可執行電源關閉指令集 合,藉由資料流分析,使得該第一電源閘控指令佈置中,可結合在一起的電源關閉指令 之可執行區塊屬於同一個組別;以及一電源啟動指令分組模組,根據上述每一個區塊之 可執行電源啟動指令集合,藉由資料流分析,使得該第一電源閘控指令佈置中,可結合 在一起的電源啟動指令之可執行區塊屬於同一個組別。
八、 圖式:
第1圖
第2圖
第3圖
第4圖
第5圖
第6圖
第7圖
第8圖
第9A圖
第9B圖