組込みシステムにおける割込み処理生成システムの設計と実装
砂川 克志(9851055)
組込みシステムにおけるソフトウェアの生産性向上のために,ITRONをはじめ
多様な組込みシステム向けOSが作成されている.しかし,組込みシステム向け
OSはアークテクチャに特化して作られることが多く,OSそのものの移植性は必
ずしも高いとは言えない.特に割込み処理に関しては,使用するプロセッサや
割込みコントローラに大きく依存するので,コードの再利用性が低く,組込み
システム開発時の生産性も高くはない.割込みに関する移植性を向上させる方
法として,割込み処理を仮想化し,OSの上位層とのインタフェースを統一する
ことにより,アーキテクチャの差異を吸収する方法が考えられる.代表的な組
込みシステム向けOSであるITRONにおいても割込みの仮想化を取り入れた階層
構造の仕様が検討されている.本研究の予備段階でも,アーキテクチャに依存
したレジスタの退避,復帰の部分を関数モジュールとして与え,アーキテクチャ
依存のコードの割合が比較的低い割込み処理ルーチン (Interrupt Service
Routine, ISR)のみを割込み処理コードから独立して記述できるインタフェー
スを考察した.しかし,組込みシステムは即応性が求められることが多いため,
アーキテクチャを仮想化するインタフェース層における関数呼び出しなどのオー
バーヘッドが問題になることが多い.そこで,応答速度を維持しつつ組込みシ
ステム向けOSにおける生産性向上を図るため,関数モジュールとして与えてい
た部分も,アーキテクチャに最適なコードとして自動的に生成するシステムを
設計し,さらに,その一部を実装した.組込みシステム開発者は本研究で提案
するインタフェースを用いて論理的な割込み構成(割込み要因,優先度,ISRの
ソースコード)を割込み処理生成システムに入力するだけで,アーキテクチャ
に最適な割込み処理コードの生成が可能となる.現在のバージョンでは,自動
的に生成できる部分は,割込みベクタテーブルと割込みコントローラの初期化
の部分である.