IEM - ソフトウェアによる制御
こうしたDVFSの最大の問題は、システムにどれだけゆとりがあって、どこまでならば電圧と周波数を下げてもシステム動作に影響がないかという動的な制御が果たして可能かという点である。
DVFSを実現するためのひとつの考え方に、アプリケーション自身により制御する方法がある。各アプリケーションは、自身が必要とするプロセッサの負荷を考慮し、負荷が変化する前に自身で制御する。しかし、この方法では特定のアプリケーションに対しては最適化できるが、マルチスレッドの場合やデータにより負荷が一様でないような場合には制御則や保守が複雑になってしまう。
こうしたDVFSの電力制御を統一化した効率的な手法で行うことを目的としたソフトウェアに「IEMソフトウェア」がある。IEMソフトウェアは英ARMがライセンスするソフトウェアIPである。こうしたソフトウェアIPは、ほかにJazelle搭載コアでJavaの実行を行うJTEKソフトウェアやTrustZone搭載コアによるセキュリティ機能を実現するTrustZoneソフトウェアなどがある。
IEMソフトウェアの概要を図3に示す。
図3 IEMソフトウェアの概要 |
IEMソフトウェアは、OSのスケジューラからの情報を直接取り出し、各アプリケーションの実行状況から次の時点で最大性能の何パーセントで実行すればよいかを動的に演算する。
この結果はDVFSのドライバに送られ、DVFSハードウェアによって電圧と周波数の変更が行われる。通常は段階的にしか変更ができないので、必要とされる性能を満たす最小の電圧と周波数となる。
これら一連の処理を繰り返すことにより、システム全体の電力制御が行われる。必要とする性能の演算には「ポリシ」と呼ばれる複数の制御則が適用でき、システムのいろいろな局面でより細かな制御を行うことが可能となっている。
これらのポリシには以下のようなものがある。
ステップ
OSのアイドル時間が長い場合には周波数を一段階下げる。短い場合には一段階上げる。
平均
平均したタスクの実行時間が余っている場合には周波数を下げる。不足している場合には周波数を上げる。
パースペクティブ
各タスクを周期的な実行とみなし、そのタスクに関するアイドル時間を短くなるように制御する。
カスタム
システム独自のポリシ(例えば電池の残量が低下しすぎた場合には、つねに最低レベルで実行するなど)を定義する。
これらのポリシを複数組み合わせ、優先度を持たせて制御することも可能である。IEMソフトウェアでは、OSの情報から統一的な手法により電力制御ができるので、アプリケーションは消費電力に関する考慮をする必要がない。また、プログラムをダウンロードして使用するような負荷の動的な変化にも柔軟に対応できる。