著者
横山 哲郎 今井 敬吾 曾 剛 冨山 宏之 高田 広章 結縁 祥治
出版者
情報処理学会
雑誌
情報処理学会論文誌プログラミング(PRO) (ISSN:18827802)
巻号頁・発行日
vol.2, no.2, pp.54-69, 2009-03-23

動的電圧制御 (DVS: dynamic voltage scaling) は,プロセッサへの供給電圧とその動作周波数をプログラム実行時に変化させる技術であり,現在,多くの商用プロセッサに実装されている.本稿では,デッドラインなどの制約のあるリアルタイムシステムを対象に,DVS システムにおいて動的エネルギー消費のより少ないプログラムを開発する方法論の 1 つを提示する.DVS システムで実行されるプログラムに動的エネルギー消費の最適化が有効であるためには,残り予測実行時間の実行早期の正確な見積りを容易にすることが重要である.そのため,プログラムは何を計算するかに加えどう計算するかをうまく指定する必要がある.しかし,プログラム改変によるエネルギー消費の最適化はプログラムのモジュール性を著しく損なう.本稿では,プログラムから独立し,エネルギー消費の最適化戦略を開発する手法を提案する.提案手法により,エネルギー消費の最適化を行うときに元のプログラムの部分正当性が容易に保存され,元のプログラムおよびエネルギー消費の最適化を行うための評価戦略が独立してそれぞれモジュール性を有するようになった.遅延評価などのプログラミング言語の特徴や構成的アルゴリズム論における組化などを活用することにより半自動化が実現できたことが,本開発法の特徴の 1 つである.本稿では,整列,選択,文字列検索などの基本的なアルゴリズムに提案手法を適用する.また,電力モデルを備えた命令セットシミュレータ(ISS: instruction set simulator)において実験を行い,エネルギー消費がどれだけ最適化されたかを評価する.基本的なアルゴリズムにおいて,本稿のアプローチが有効であることから,複雑なアルゴリズムに対しても本手法が効果的であることが期待される.DVS (dynamic voltage scaling) is a technique for scaling the processor's supply voltages and working frequencies. Several commercially available processors provide voltage/frequency controls. We propose a development method for deriving dynamically energy efficient programs on DVS-enabled real-time systems, which have several constraints such as deadline. In order to improve energy efficiency of programs on DVS systems, it is necessary to accurately estimate remaining predicted execution time in the early phase of the execution of programs. Thus, how to execute codes is as important as what codes to execute. However, the revision of programs for energy efficiency seriously harms their modularity. We separate concerns of the development of energy optimization strategy from the development of programs. As the result, partial correctness of original programs is preserved, and each of original programs and energy optimization strategy has modularity, independently. Lazy evaluation of functional programming languages and tupling in constructive algorithmics are employed for realizing the semi-automation of our development method. Our techniques are applied to basic algorithms such as sorting, selection, and string matching. Their energy efficiency is evaluated by using an instruction set simulator (ISS) with a power model.