TWI309002B - - Google Patents
Download PDFInfo
- Publication number
- TWI309002B TWI309002B TW095122714A TW95122714A TWI309002B TW I309002 B TWI309002 B TW I309002B TW 095122714 A TW095122714 A TW 095122714A TW 95122714 A TW95122714 A TW 95122714A TW I309002 B TWI309002 B TW I309002B
- Authority
- TW
- Taiwan
- Prior art keywords
- compiler
- power
- optimization
- power saving
- block
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/443—Optimisation
- G06F8/4432—Reducing the energy consumption
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Power Sources (AREA)
- Devices For Executing Special Programs (AREA)
Description
;309002 * 九、發明說明: 【發明所屬之技術領域】 本發明係有關一種編譯器最佳化之方法,特別是指一種 ' 編譯器中省電最佳化排程之方法。 . 【先别技術】 近年來可攜式產品如PDA、手機、MP3播放器曰益普 及,除了外觀造型趨向小巧簡便之外,使用時間長短亦是消 _ 費者購買時會考量的因素之一,電池壽命便成為評估產品價 值的重要依據,而且增加電池壽命,可以降低成本、減少體 積以及重量,更加提升產品的價值,因此如何增加電池使用 時間’成為最近的熱門議題。 目前現有的低電壓消耗技術主要可分為三種,第一種是 以硬體架構來減少電量消耗,主要方法是藉由增加特殊硬體 來減少電壓消耗,例如英特爾等公司提出了支援動態電壓調 整(Dynamic voltage sca_, DVS)技術之處理器,可以藉 由調整合適的處理器電壓和頻率,來有效的利用處理器,^ 免不必要的電量浪費’但相對的處理器效率將會大受影響。 第二種方法是以作業系_角度來改善電量消耗,藉^ 行緒重新排定執行順序來避免尖峰時段的產生,減 浪費’但由於每增加新的執行緒就需要重新計算和排定= 順序’亦會影響處理ϋ效率。第三種是以編譯器角度來處理仃 例如由編譯器在編譯過程中於程式碼加人訊息,通 調整合適的處理器電壓和頻率,來有效個處理器,、=: 1309002 必要的電量浪眚,彳θ β & λ 、、一疋舄要硬體的配合才能實現。 由上述先前技術可歸納出先 執行效能難以同眛暴缸, 百无疋電里蝻耗與 佳,反之低錢消耗_錢行效能不 :t 讀式執行效能佳則電壓消耗高;其次1分研 究只適用於特定平a,普田门,、人邛刀研 mm σ實雜雙限;再者,部分技術需要在 耘式執仃期間,動能钟笪人 ^ 程式效率。…十h適的處理11麵及頻率,會拖慢 •種編發明即針對上述習知技術之數項缺失,提出一 、a ”電最佳化排程之方法,以有效克服上述之該 問題。 【發明内容】 本發明之主要目的在提供—種編譯H巾省電最佳化排程 之方法’其係將不具相依性之相同運算單元合併在同一基本 程式區塊中’因而當這些運算單元不使用時,編譯器不需重 籲覆判斷而浪費時間與資源,且可減少切換電源模式之次數。 本發明之另一目的在提供一種編譯器中省電最佳化排程 之方法,其係將不使用之運算單元之電壓關閉,以節省電量 ' 消耗。 本發明之再一目的在提供一種編譯器中省電最佳化排程 之方法’經過 SPEC2000、Mediabench 及 Dspstone 等標準 /則試程式,省電效果平均可達26%,且可以改善因動態電壓 ’節(Dynamic Voltage Scaling,DVS)技術所降低之程式 執行效率。 1309002 。為達上述之目的’本發明提供—種編譯財省電最佳化 排程之方法,其係建立—應隸式之控韻程(⑺ntr〇lf丨 g p )>及:貝料机程(data flow graph),依據應用程式所使 * =之運算單元’將控制流程區分為複數個基本程式區塊;接 者分析控制流程及資料流程,建立應用程式之電量模型 (powermGdel)’时配每—運算單元—電賴式;判斷閒 置之相同運算單元彼此之間是否具有相錄,若不具相依性 籲則將閒置,算單元之程式碼合併為新基本程式區塊,並關閉 閒置之運算單元,將新基本程式區塊切換為合適之電源模 式;以及助同電·紅基本程式區塊合併。由於不同之 運算皁錢基本程式區塊具有各自之省電模式,當執行到下 -個基本輕式區塊時會對電源模式進行切換,_由將基本 程式區塊合併之步驟可減少切換省f模式的次數。 底下藉由具體實_詳加㈣,t更料瞭解本發明之 目的、技術内容、特點及其所達成之功效。 •【實施方式】 /本發明係提供—種應編譯时省電最佳化排程之方法, 其係針對編譯過程中如何對應用程式之程式碼進行編排重 整’並調整其電壓,以達到省電最佳化的目的。 如第-圖為編譯之系統架構,如圖所示,本發明所提供 之方法係利用SUIF2之編譯器系統中進行模擬,提供一應用 程式^,其可為c語言所撰寫之程式碼,當應用程式1〇進 、爲畢器〇中後為低電壓通過(Low power pass)之步驟, 1309002 • 首先為第一部分,SUIF2系統22之最佳化(optimization)、 高階SUIF過程及低階SUIF過程等步驟,用以完成應用程式 10之内部程序分析,如整體別名分析(global alias)、專門 化分析(specialization)及資料流程分析。 _ 低電壓通過步驟之第二部份為機械SUIF系統24 (Machine SU丨F)之架構。請同時參考第二圖之流程圖,在 此部分中’機械SUIF系統24先分析運算單元庫及最佳化介 • 面’以建立應用程式10之控制流程(control flow graph) 及資料流程(data flow graph),如步驟S10所述,接著如 步驟S12開始進行最佳化’首先分析控制流程及資料流程, 以建立應用程式之一電量模型(p0wer model),與此同時, 更依據應用程式1〇所使用之運算單元,將控制流程區分為 複數基本程式區塊B,此基本程式區塊B係由複數區段尺所 組成,每一區段r中又包含至少一個運算單元,而此運算單 兀可為加法器或乘法器,以進行整數及浮點運算,再依據電 釀量模型分配給每—運算單元—電源模式;運算單元並不會同 時間一起運作,因此如步驟S14所述,關閉閒置的運算單元, _ 益判斷閒置運算單元中相同之運算單元彼此之間是否具有相 依性,若分別在兩基本程式區塊中之兩運算單元不具相依 性:則如步驟S16所述,將該兩閒置運算單元之基本程式區 塊合併為新的基本程式區塊,並如步驟S18所述將新基本程 式區塊之電_式城為合適之省電模式;最後,如步驟^ 所述’將相同電源模式之基本程式區塊合併。重複步驟S16 .1309002 至S20,直到沒有可合併之運算單元。 當應用程式10重排之流程結束後,此重排後之最佳化 =秋式利用-系統程式26開始進行編譯動作,此系統程 式%可為A丨pha模擬程式,並可在八丨响u峨系統下交又 、扁澤再連結至運行運算單元庫(run_tjme |jbrar^執行該 應用程式’以產生可在模擬器30上運作之執行碼。此模^ 器30可為Wattch模擬器,其提供迴圈式模擬,可量測中央 ^里器在某-組參數時之電量雜及在不同架構下之電量模 第三圖為本發明中程式碼排程之觸方法,此為虛擬碼 所撰寫’ N(B)為基本程式區塊B的執行次數,FU⑹為 基本程式區塊B中所執行之運算運算單元,FU(R)為區段R 中所執行之運算運算單元,fmem為在基本程式區塊B中所有 指令在記憶體中存取的比例,Tper(R)為基本程式區塊b執 行時間的比例,f(B)表示基本程式區塊B之電量模型,f(R) 表示區段R之電量模型。當程式被分割為複數區段後,若 Ri及Rj兩個區段符合下面兩個條件,則合併為一個區段:_ 是FU(Ri)= FU(Rj) ’其表示此兩區段皆運用同一運算單元; 一是D(Ri,Rj) = 0,其表示此兩區段並不相依。在此段虛擬 程式碼中並設有三個參數γ、α及β,其中γ為將一運算單元 開啟或關閉的臨界值,而α及β則為在賦予一個區段電源模 式時參考之臨界值;藉由區段r中Tper(R)值大於γ來決定 要開啟或關閉區段R中之運算單元。 1309002 本發明中所使用之Wattch模擬器係設定一般模式下電 壓為1.5V ’時脈解為_MHz,而電壓下降模式fd_ 壓及時脈解分別4 〇.3v及·ΜΗζ,在第三圖之虛擬程式 碼中有兩個步驟在判斷電_式,在第-步驟中,先依據α 值給予每—區段R —個電源模式,再判斷Ri及Rj是否符人 f(R〇 = f⑽且D(Ri,的條件,若符合則將民及Rj合; 為新的區段’重覆此步驟直到沒有區段可供合併為止。 在第二步驟中依據P值給予每—基本程式區段B—個電源模 式。 、 以下將以第四圖為實施例說明本發明之最佳化排程方 法。在此實施例中具有兩個for迴圈及兩個temp表示式,首 先,由於兩及兩表示式所運用之運算單元相同,且彼此 f不相依’故將兩,及兩表示式分別合併為兩個區段;接 者’先將迴_段中所包含之乘法器關,再將表示式區段 鲁所包^之加法;最後,將包含兩迴圈之區段設定為低 電 '原模式並將包含兩表示式之區段設定為一般電源模式。 .比較原程式碼及重新排程後之最佳化程式竭,後者將加法器 及乘法器分別合併至兩不同區段中,由於加法器在迴圈中須 * 執行多次,故將其電源模式設定為低電量,當執行迴圈時, 由於不使用到乘法器,可將乘法器關閉,而當執行表示式時, 由於不使用到加法器,可將其關閉,故較原程式碼更為省電。 第五圖至第七圖分別為原程式碼及經本發明最佳化排程 後之程式碼在SPEC2000、Mediabench以及Dspstone等標 1309002 - 準測試程式下執行各指令時之電量比較示意圖,如第五圖中 之matrix指令在重新排程之後,所需電量足足比未排程前節 省了 一倍多,除了 irr_biquad_one_section指令外,其餘皆 較最佳化排程前省電;同理,在Mediabench以及Dspstone 秦 兩標準測試程式下更可明顯看出本發明之省電效果。第八圖 至第十圖分別為原程式碼及經本發明最佳化排程後之程式瑪 在SPEC2000、Mediabench以及Dspstone等標準測試程式 參下執行各指令時之效能示意圖,由於程式碼在經過本發明之 省電最佳化排程後,其長度並未產生很大的變化,故執行效 能上不會產生大的影響。 >
綜上所述,本發明所提供之編譯器中省電最佳化排程方 法係將不同的基本程式區塊中相同且彼此沒有相依性之置運 算單元合併成新的基本程式區塊,以減少運算單元開關 切換不同省電模式的次數來達到省電的目的 SPEC2_、Mediabench以及叫如⑽等標 省電效果平均可達26%,且麵g= voltageScaiing,DVS)技術下不會嚴重影響程式執二率: 唯以上所述者,僅為本發明之餘實㈣Μ 來限定本發明實施之範圍。故即 並非用 特徵及精神所為之均等變化或修飾,==圍所述之 請專利範圍内。 々應^括於本發明之申 【圖式簡單說明】 第一圖為本發明之系統架構之示意圖 1309002 .第t圖為本發明編譯器中省電最佳化排程之方法流程圖。 第圖為本毛明中以虛幾碼表示排程最佳化判斷之示意圖。 第四圖為本發财以部份程式料行最佳化排程之一實施 . 例。 *第五圖至第七®分別為原程式碼及經本發明最佳化排程後之 程式碼在SPEC2000、Mediabench以及Dspstone等標準測 試程式下執行各指令時之電量比較示意圖。 鲁第八圖至第十圖分別為原程式碼及經本發明最佳化排程後之 程式碼在SPEC2000、Mediabench以及Dspstone等標準測 試程式下執行各指令時之效能示意圖。 【主要元件符號說明】 1〇應用程式 20編譯器 22 SUIF2 系統 _ 24機械SUIF系統 26系統程式 . 30模擬器 12
Claims (1)
1309002 十、申請專利範圍: 1. 一種編譯器中省電最佳化排程之方法,在編譯器中將編, 後所產生之機械碼重新排程,以達到省電最佳化之目的, 包括以下步驟: 建立一應用程式之控制流程(c〇ntr〇l f丨〇vv graph)及資 流程(data flow graph); 依據該應用程式所使用之運算單元,將該控制流程區八、 複數基本程式區塊; 乃為 分析該控制流程及該資料流程以建立該應用程式之電息# 型(power model ),並分配每一該運算單元一電源里松 判斷該運算單元中之相同且閒置者彼此之間是否具有莫式, 性,若不具相依性則將該閒置運算單元之程式碼八相依 新基本程式區塊,並關閉該閒置運算單元,將今Q併為 程式區塊切換為合適之電源模式;以及 X靳基本 將相同電源模式之該基本程式區塊合併。 2. 如申請專利範圍第1項所述之編譯器中省電最佳化 方法,其中該編譯器可為SUIF2之編譯系統。 ¥程之 3_如申請專利範圍第彳項所述之編譯器中省電最佳化排 方法’其中該控制流程及資料流程之建立係根據該庫 式經編譯後所提供之運算單元分析及最佳化i介= (optimization interface) ° ;, 4.如申請專·圍第彳項所述之編譯器中省電最佳化排程之 方法’其中每—該基本程式區塊中係可包含複數運算單元。 如申請專利範圍第彳項所述之編譯器中省電最佳化排程之 13 1309002 雜本程式區塊之電源模式係預設為一般模 6如申珠i之λ·該新基本程式區塊之電源模式則為省電模式。 方法1利範圍第1項所述之編譯器中省電最佳化排程之 做判斷。、中°亥運算單疋是否具相依性係根據該資料流程來 ==範圍第1項所述之編譯器中省電最佳化排程之 二销縣程式區軸城之電賴式係參考該 罨量杈型,以判斷是否合適。 8.::請:利範圍第!項所述之編譯器中省電最佳化排程之 狀熊/、中該運算單疋可在開始執行前預先設定開或關的 9=申睛專利範圍第彳項所述之編譯財省電最佳化排程 流=1 =算單元之間—性,_該控制 10·如申請專利範㈣i項所述之編譯器中省電最佳化挪。 之方法,其中該運算單元若需反覆使用,則其所屬該義^ 程式區塊之電源模式係設為低電量。 土
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW095122714A TW200801925A (en) | 2006-06-23 | 2006-06-23 | Method for energy-efficient scheduling optimization for compiler |
US11/566,697 US8108850B2 (en) | 2006-06-23 | 2006-12-05 | Power-aware compiling method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW095122714A TW200801925A (en) | 2006-06-23 | 2006-06-23 | Method for energy-efficient scheduling optimization for compiler |
Publications (2)
Publication Number | Publication Date |
---|---|
TW200801925A TW200801925A (en) | 2008-01-01 |
TWI309002B true TWI309002B (zh) | 2009-04-21 |
Family
ID=38924596
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW095122714A TW200801925A (en) | 2006-06-23 | 2006-06-23 | Method for energy-efficient scheduling optimization for compiler |
Country Status (2)
Country | Link |
---|---|
US (1) | US8108850B2 (zh) |
TW (1) | TW200801925A (zh) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090228874A1 (en) * | 2008-03-07 | 2009-09-10 | Interuniversitair Microelektronica Centrum Vzw (Imec) | Method and system for code compilation |
US8495605B2 (en) * | 2008-06-16 | 2013-07-23 | International Business Machines Corporation | Policy-based program optimization to minimize environmental impact of software execution |
EP2290538A3 (en) * | 2009-08-31 | 2011-06-22 | Imec | Method and device for reducing power consumption in application specific instruction set processors |
US8799693B2 (en) * | 2011-09-20 | 2014-08-05 | Qualcomm Incorporated | Dynamic power optimization for computing devices |
US9098309B2 (en) | 2011-09-23 | 2015-08-04 | Qualcomm Incorporated | Power consumption optimized translation of object code partitioned for hardware component based on identified operations |
US9002694B2 (en) * | 2012-05-03 | 2015-04-07 | Freescale Semiconductors, Inc. | Verification of design derived from power intent |
KR101959252B1 (ko) * | 2012-07-16 | 2019-07-04 | 삼성전자주식회사 | 데이터를 기반으로 전력을 관리하는 장치 및 방법 |
US9557800B2 (en) | 2012-08-31 | 2017-01-31 | Micron Technology, Inc. | Sequence power control |
JP5981313B2 (ja) | 2012-11-09 | 2016-08-31 | 株式会社東芝 | 電力抑制型蓄電蓄熱最適化装置、最適化方法及び最適化プログラム |
US10133557B1 (en) * | 2013-01-11 | 2018-11-20 | Mentor Graphics Corporation | Modifying code to reduce redundant or unnecessary power usage |
US9501382B2 (en) * | 2013-06-25 | 2016-11-22 | Purdue Research Foundation | Systems and methods of detecting power bugs |
US9606783B2 (en) * | 2013-10-14 | 2017-03-28 | International Business Machines Corporation | Dynamic code selection based on data policies |
US10409513B2 (en) * | 2017-05-08 | 2019-09-10 | Qualcomm Incorporated | Configurable low memory modes for reduced power consumption |
US11079825B2 (en) * | 2019-08-13 | 2021-08-03 | Intel Corporation | Compiler guided power allocation in computing devices |
US11900156B2 (en) | 2019-09-24 | 2024-02-13 | Speedata Ltd. | Inter-thread communication in multi-threaded reconfigurable coarse-grain arrays |
US11175922B1 (en) | 2020-04-28 | 2021-11-16 | Speedata Ltd. | Coarse-grain reconfigurable array processor with concurrent handling of multiple graphs on a single grid |
US11354157B2 (en) * | 2020-04-28 | 2022-06-07 | Speedata Ltd. | Handling multiple graphs, contexts and programs in a coarse-grain reconfigurable array processor |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5452401A (en) * | 1992-03-31 | 1995-09-19 | Seiko Epson Corporation | Selective power-down for high performance CPU/system |
US20030014742A1 (en) * | 2001-07-09 | 2003-01-16 | Sasken Communication Technologies Limited | Technique for compiling computer code to reduce energy consumption while executing the code |
KR101006117B1 (ko) * | 2002-12-20 | 2011-01-07 | 인터내셔널 비지네스 머신즈 코포레이션 | 무선 애드혹 네트워크에서의 최대 수명 라우팅 |
EP1626328A1 (en) * | 2004-08-13 | 2006-02-15 | Dialog Semiconductor GmbH | Power saving during idle loop |
TWI304547B (en) * | 2005-12-29 | 2008-12-21 | Ind Tech Res Inst | Power-gating control placement for leakage power reduction |
-
2006
- 2006-06-23 TW TW095122714A patent/TW200801925A/zh not_active IP Right Cessation
- 2006-12-05 US US11/566,697 patent/US8108850B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US8108850B2 (en) | 2012-01-31 |
US20070300214A1 (en) | 2007-12-27 |
TW200801925A (en) | 2008-01-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI309002B (zh) | ||
Xie et al. | Compile-time dynamic voltage scaling settings: Opportunities and limits | |
Hong et al. | Power optimization of variable voltage core-based systems | |
Trefethen et al. | Energy-aware software: Challenges, opportunities and strategies | |
Saputra et al. | Energy-conscious compilation based on voltage scaling | |
Magklis et al. | Profile-based dynamic voltage and frequency scaling for a multiple clock domain microprocessor | |
Srivastava et al. | Predictive system shutdown and other architectural techniques for energy efficient programmable computation | |
Swanson et al. | Greendroid: Exploring the next evolution in smartphone application processors | |
Parikh et al. | Instruction scheduling for low power | |
Lo et al. | Prediction-guided performance-energy trade-off for interactive applications | |
Rauber et al. | Performance and energy metrics for multi-threaded applications on DVFS processors | |
Haj-Yahya et al. | Energy efficient high performance processors: recent approaches for designing green high performance computing | |
Azevedo et al. | Architectural and compiler strategies for dynamic power management in the copper project | |
Lu et al. | A dynamic, compiler guided DVFS mechanism to achieve energy-efficiency in multi-core processors | |
Takase et al. | An integrated optimization framework for reducing the energy consumption of embedded real-time applications | |
Hajiamini et al. | Impact of cache voltage scaling on energy-time pareto frontier in multicore systems | |
Wang et al. | Compiler-assisted leakage-aware loop scheduling for embedded VLIW DSP processors | |
Wang et al. | Energy optimization by software prefetching for task granularity in GPU-based embedded systems | |
Ghattas et al. | Energy management for commodity short-bit-width microcontrollers | |
Huang et al. | Efficient and scalable compiler-directed energy optimization for realtime applications | |
Lee et al. | Power-aware code scheduling assisted with power gating and DVS | |
Mu et al. | Autonomous hardware/software partitioning and voltage/frequency scaling for low-power embedded systems | |
Travers et al. | Power-normalized performance optimization of concurrent many-core applications | |
Shyam et al. | Compiler-directed dynamic voltage scaling using program phases | |
Rauber et al. | Towards an energy model for modular parallel scientific applications |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |