高いリアルタイム性を実現するシステム

15.2はコロンビア大学のEdwards氏とカリフォルニア大学バークレー校のLee氏による共同発表で、リアルタイム性の高いシステムの提案が行われた。

自動車の走行制御などにプロセッサが使われるようになると、リアルタイム性が重要になる。リアルタイムOSでは処理に必要となる時間を予測し、目的の時間内に処理が終了するよう、各タスクのスケジューリングを行う。しかし、一般的なプロセッサでは、キャッシュのミスや分岐予測のミスなどで実行時間が変動し、最悪の場合を想定してスケジューリングを行ったのでは、効率は下がる。キャッシュや分岐予測のような、ヒットすれば実行時間が短くなる仕組みは使わないようにすれば、実行時間の変動は大幅に減少する。しかし、全体の実行性能は大幅に低下する。

これに対して、Sun Microsystemsの「Niagara」のように1本の実効パイプラインを多数のスレッドで順次切り替えて使うマルチスレッド制御や、キャシュの替わりにスクラッチパッドやローカルメモリを使うなどの方法により、実行性能を確保することを提案している。プロセッサ本体はこのような既知の手法を組み合わせれば、実行時間の精度を上げることができる。しかしDRAMのリフレッシュ動作や、ディスクなどのメカニカルなI/Oのタイミングなどの微妙な違いにより、I/Oからの割り込みや仮想記憶を考えると、一定時間での実行は容易ではない。そこでFPGAを使った研究を進めている。

リアルタイム処理以外の用途でも、実行時間の変動はプログラムのバグを引き起こす要因となっており、提案のようなシステムは有効であると述べている。実現のアプローチは順当であるが、実行時間が一定であることを最大の設計原理とするところが"ワイルド"と言える。