組込みシステムにおける割込み処理生成システムの設計と実装

砂川 克志(9851055)


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