標題: 針對嵌入式處理器之原始碼能量最佳化的實驗性分析
An Empirical Analysis of Source-level Energy Optimization for Embedded Processors
作者: 黃詠文
Yung-Wen Huang
黃育綸
Yu-Lun Huang
電控工程研究所
關鍵字: 原始碼轉換;能量最佳化;指令集架構;進階精簡指令集機器;source-level transformations;energy optimization;instruction set architecture (ISA);ARM
公開日期: 2007
摘要: 適度地轉換程式原始碼可以有效地減少處理器執行指令的數量、降低指令或資料快取失敗的機會,進而降低存取外部記憶體的次數與所需的能量消耗。程式原始碼的轉換概念始於保持轉換前後原始碼的執行結果,但卻可以節省整個程式執行所需耗費的能量。近年來嵌入式系統的市場需求趨勢,強力地引導產業提供更省能的應用與產品,除了電力電子方面的相關研究,在軟體模組能量最佳化方面,由於其不用變動硬體電路的優點,使得許多研究學者投注其相關研究,例如,改變資料結構、迴圈、函式、控制流程與運算子等。然而,在嵌入式處理器日漸普及的趨勢下,我們發現軟體模組能量耗損情形與其所在嵌入式處理器的指令集架構(Instruction Set Architecture,ISA)亦有著密不可分的關係。換言之,程式原始碼的轉換對軟體能量消耗產生的影響會隨著指令集架構的不同,而有所差異。此差異甚至可能改變套用早期程式原始碼轉換所預期的能量耗損,使得轉換後的能量消耗不降反升。因此,在本論文中,我們針對各種軟體能量最佳化轉換方法,加以重新分類,增加了與處理器指令集架構相關的類別,並以ARM處理器指令集架構提出兩種新的轉換方法,包括插入冗餘變數、重新排列陣列宣告,嘗試減少存取陣列變數時,計算陣列基底位址時所需的指令個數,藉以降低能量的消耗。此外,為了驗證各種轉換方法所能貢獻的能量最佳化程度以及邊際效應,我們設計了一連串的實驗,以EMSIM作為我們的StrongARM處理器的能量模擬器,對特定形式的軟體程式碼進行不同的轉換。透過這些實驗,可以取得各種轉換方法所能得到的能量消耗情形,並探討各種轉換所帶來的成本效應,如程式碼大小及程式執行效率的變化等影響。
Source-level transformations can reduce the number of assembly instructions and the miss rate of instruction or data cache, resulting in an optimization of energy consumption and retaining the same execution results for software modules. Recently, the increasing market demand has become major a driving force for industries to create more energy-efficient applications and products. In addition to power electronics, because of the advantage of hardware circuit remaining unchanged researchers also devote a lot to energy optimization in software modules, such as applying the source-level transformations to data structures, loops, procedures, control structures, operators and so on. We found that energy consumption of software modules is highly related to the instruction set architecture (ISA) of the embedded processors, which means that the expected energy consumption is affected by the ISA of the processors. The result might not be what we expected upon applying the source-level transformations. In this thesis, we re-classify the source-level transformations, and add a new ISA-specific sub-category. Based on ARM ISA, we propose two transformations for energy optimization, called dummy variables insertion and arrays declaration permutation, to reduce the instructions in calculating the base addresses of the arrays. These transformations are verified via a series of experiments based on the EMSIM, the energy simulator of StrongARM. From these experiments, the energy optimization for each transformation can be analyzed and the side effects, such as code size and executing performance, can also be evaluated.
URI: http://140.113.39.130/cdrfb3/record/nctu/#GT009212521
http://hdl.handle.net/11536/68168
顯示於類別:畢業論文


文件中的檔案:

  1. 252101.pdf

若為 zip 檔案,請下載檔案解壓縮後,用瀏覽器開啟資料夾中的 index.html 瀏覽全文。