(57)【要約】【課題】割込み処理の終了後、より短時間のうちに割込み処理から通常処理に復帰し、割込み処理による動作停止時間がより短縮できる割込み制御装置を提供する。【解決手段】複数の処理をタスクを処理する通常のプログラムにしたがって実行すると共に、外部割込み処理を割込みハンドラを起動して実行するプロセッサを制御する割込みコントローラ１を、外部割込み処理を受付ける割込み検出部２０１、受付けられた割込み処理が待ち割込みであるか否かを判別する割込みコントローラ制御部２０２で構成し、割込みコントローラ制御部２０２は、待ち割込み以外の命令であると判断された場合には割込みハンドラを起動するようプロセッサ２０に命令し、受付けられた割込みが待ち割込みであると判断された場合には通常のプログラムによって待ち割込みを実行するようプロセッサ２０に命令する。【選択図】図２
2007226538.tif 000002
【特許請求の範囲】
【請求項１】
複数の処理を第１プログラムにしたがって実行すると共に、外部から要求された割込み処理を外部割込み処理用の第２プログラムを起動して実行するプロセッサを制御する割込み制御装置であって、
外部から要求された割込み処理を受付ける割込み受付手段と、
前記割込み受付手段によって受付けられた割込み処理が、予め設定された内容である待ち割込みであるか否かを判別する割込み判別手段と、
受付けられた割込みが、前記割込み判別手段によって待ち割込み以外の命令であると判断された場合には前記第２プログラムを起動するようプロセッサに命令し、受付けられた割込みが前記割込み判別手段によって待ち割込みであると判断された場合、前記第１プログラムによって待ち割込みを実行するようプロセッサに命令する動作命令手段を備えることを特徴とする割込み制御装置。
【請求項２】
前記動作命令手段は、前記第２プログラムによって実行された割込み処理の終了後、さらに待ち割込みが受付けられるまで前記第１プログラムによる処理の実行をプロセッサに停止させることを特徴とする請求項１に記載の割込み制御装置。
【請求項３】
複数の待ち割込みが設定された場合、前記停止命令手段は、複数の待ち割込みのうちの一部が受付けられるまで前記第１プログラムによる処理の実行を停止するようプロセッサに命令することを特徴とする請求項１または２に記載の割込み制御装置。
【請求項４】
複数の待ち割込みが設定された場合、前記停止命令手段は、複数の待ち割込みのうちの全部が受付けられるまで前記第１プログラムによる処理の実行を停止するようプロセッサに命令することを特徴とする請求項１または２に記載の割込み制御装置。
【請求項５】
前記動作命令手段は、前記割込み判別手段によって待ち割込み以外の命令であると判断された場合には前記第２プログラムを起動し、受付けられた割込みが前記割込み判別手段によって待ち割込みであると判断された場合には前記第１プログラムによって待ち割込みを実行するよう命令する命令信号をプロセッサに出力することを特徴とする請求項１から４のいずれか１項に記載の割込み制御装置。
【請求項６】
前記動作命令手段は、割込み処理が待ち割込みであるか否かを判定するための割込み判定テーブルを備え、プロセッサは、前記割込み判定テーブルを参照して受付けられた割込みが待ち割込みであるか否かを判断することを特徴とする請求項１から５のいずれか１項に記載の割込み制御装置。
【請求項７】
複数の処理を第１プログラムにしたがって実行すると共に、外部から要求された割込み処理を外部割込み処理用の第２プログラムを起動して実行するプロセッサを制御する割込み制御方法をコンピュータに実行させるためのプログラムであって、
外部から要求された割込み処理が、予め設定された内容である待ち割込みであるか否かを判別する割込み判別ステップと、
要求された割込み処理が前記割込み判別ステップにおいて待ち割込み以外の命令であると判断された場合には、前記第２プログラムを起動するようプロセッサに命令し、要求された割込みが前記割込み判別ステップにおいて待ち割込みであると判断された場合には前記第１プログラムによって待ち割込みをプロセッサに実行させる動作命令ステップを含むことを特徴とする割込み制御方法をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、割込み制御装置及び割込み制御方法をコンピュータに実行させるためのプログラムにかかり、特にプロセッサと接続する外部機器によってプロセッサに要求された割込み処理を制御する割込み制御装置及び割込み制御方法をコンピュータに実行させるためのプログラムに関する。
【背景技術】
【０００２】
現在、プロセッサに複数のモジュールを接続して構成される装置がある。このような装置の例として、例えば、携帯電話が挙げられる。携帯電話は、プロセッサが通信やカメラ、キーボードといった複数のモジュールと接続し、プロセッサ内部で発生する処理（通常処理）を実行しながらモジュールによって要求される割込み処理を実行する。
外部のモジュールによって要求される割込み処理（外部割込み）は、通常処理から外部割込みへの処理の移行や外部割込みの終了後、通常処理への復帰までの間プロセッサを停止させる。このため、外部割込みによってプロセッサが停止する時間を短縮し、プロセッサの処理効率を高める技術が提案されている。
【０００３】
このような技術の従来例として、例えば、特許文献１が挙げられる。特許文献１は、割込み処理後、割込みの要求時、ｈａｌｔ状態のプロセッサの起動を高速化することによって割込みによるプロセッサの処理効率低下を抑えるものである。
【特許文献１】特開平５−８８９１４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
外部割込みが発生した場合、プロセッサは、割込みを要求したモジュールの動作を制御し、この制御によってモジュールが実行した処理の完了を待って通常処理を再開する。しかしながら、上記した特許文献１は、プロセッサが、モジュールの処理の完了を判定することについて、以下の欠点を有する。
すなわち、モジュールは、プロセッサに例えば割込み要求をして割込み処理Ａを実行し、割込み処理Ａの終了後に再びプロセッサに割込みを要求して割込み処理Ａの終了を通知する。特許文献１の発明は、プロセッサがｈａｌｔ状態に遷移して割込み処理Ａの終了通知のための割込みに備えている。そして、外部割込みが発生すると割込み処理を実行し、この割込み処理が処理Ａの終了を通知する割込み処理であったか否かを判定し、処理Ａの終了を通知するものであれば通常処理を再開する。
【０００５】
また、特許文献１では、実行された割込み処理が処理Ａの終了通知でなかった場合、プロセッサを再びｈａｌｔ状態にするよう制御し、処理Ａの終了を通知する外部割込みの発生に備えて待機する。
このような特許文献１の発明によれば、割込み処理の終了後、割込み処理の内容を判定するための時間が必要になる。また、外部割込みは、割込みハンドラと呼ばれるプログラムを起動して行われる。このため、特許文献１の発明は、外部割込みが発生するたびに割込みハンドラを起動して割込み処理を実行するので、割込みハンドラの起動に時間を要し、割込み処理によってプロセッサが停止する時間がいっそう大きくなるおそれがある。
【０００６】
また、モジュールが実行する割込み処理の終了を判断する他の方法として、割込みハンドラ内において処理の終了を判定することが考えられる。しかしながら、割込み処理に」は処理にかかる時間が短いものも多く、このような割込み処理の終了を判定するために割込みハンドラを起動した場合、処理のオーバーヘッドが大きくて処理効率を充分高めることができない。
【０００７】
さらに、モジュールが実行する割込み処理の終了を判断する他の方法として、プロセッサがモジュールのレジスタをポーリングすることによって処理の終了を判定することが考えられる。しかしながら、ポーリングは、プロセッサの処理効率を高めるという目的には不適であるばかりでなく、プロセッサとモジュールとを接続するバスの帯域を占有するという不具合がある。
【０００８】
本発明は、このような点に鑑みてなされたものであって、割込み処理の終了後、より短時間のうちに割込み処理から通常処理に復帰し、割込み処理による動作停止時間がより短縮できる割込み制御装置及び割込み制御装方法をコンピュータに実行させるためのプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
以上の課題を解決するため、本発明の割込み制御装置は、複数の処理を第１プログラムにしたがって実行すると共に、外部から要求された割込み処理を外部割込み処理用の第２プログラムを起動して実行するプロセッサを制御する割込み制御装置であって、外部から要求された割込み処理を受付ける割込み受付手段と、前記割込み受付手段によって受付けられた割込み処理が、予め設定された内容である待ち割込みであるか否かを判別する割込み判別手段と、受付けられた割込みが、前記割込み判別手段によって待ち割込み以外の命令であると判断された場合には前記第２プログラムを起動するようプロセッサに命令し、受付けられた割込みが前記割込み判別手段によって待ち割込みであると判断された場合、前記第１プログラムによって待ち割込みを実行するようプロセッサに命令する動作命令手段を備えることを特徴とする。
【００１０】
このような発明によれば、外部から要求された割込み処理を受付けることができる。また、受付けられた割込み処理が、予め設定された内容である待ち割込みであるか否かを判別し、受付けられた割込みが待ち割込み以外の命令であると判断された場合には前記第２プログラムを起動するようプロセッサに命令することができる。このため、待ち割込み以外の割込みを通常通り割込みハンドラを起動して実行することができる。
【００１１】
また、割込みが待ち割込みであると判断された場合、前記第１プログラムによって待ち割込みを実行するようプロセッサに命令することができる。このため、特定の待ち割込みについては割込みハンドラ等の他のプログラムを起動することなく通常のプログラムによって実行することができる。このため本発明は、割込みによって要求された処理の処理時間が短い場合にも割込み処理のオーバーヘッドを低減することができる。また、割込み処理の終了後、割込みハンドラ等から通常のプログラムに移行するためプロセッサが停止する時間が不要である。したがって、より短時間のうちに割込み処理から通常処理に復帰し、割込み処理による動作停止時間がより短縮できる割込み制御装置を提供することができる。
【００１２】
また、本発明の割込み制御装置は、前記動作命令手段が、前記第２プログラムによって実行された割込み処理の終了後、さらに待ち割込みが受付けられるまで第１プログラムによる処理の実行をプロセッサに停止させることを特徴とする。
このような発明によれば、第２プログラムによって割込み処理を実行した後にも引き続き第１プログラムによって実行される割込みに備えて待機することができる。
【００１３】
また、本発明の割込み制御装置は、複数の待ち割込みが設定された場合、前記停止命令手段は、複数の待ち割込みのうちの一部が受付けられるまで前記第１プログラムによる処理の実行を停止するようプロセッサに命令することを特徴とする。
このような発明によれば、設定された全ての割込み処理の発生に備えてプロセッサを待機させることができる。このため、プロセッサにおける割込み制御の自由度を高めることができる。
【００１４】
また、本発明の割込み制御装置は、複数の待ち割込みが設定された場合、前記停止命令手段は、複数の待ち割込みのうちの全部が受付けられるまで前記第１プログラムによる処理の実行を停止するようプロセッサに命令することを特徴とする。
このような発明によれば、設定された全ての割込み処理の発生に備えてプロセッサを待機させることができる。このため、プロセッサにおける割込み制御の自由度を高めることができる。
【００１５】
また、本発明の割込み制御装置は、前記動作命令手段が、前記割込み判別手段によって待ち割込み以外の命令であると判断された場合には前記第２プログラムを起動し、受付けられた割込みが前記割込み判別手段によって待ち割込みであると判断された場合には前記第１プログラムによって待ち割込みを実行するよう命令する命令信号をプロセッサに出力することを特徴とする。
このような発明によれば、命令信号をプロセッサに出力した後、プロセッサが独立し第１プログラム、第２プログラムによって割込みを制御することができる。このため、第１プログラム、第２プログラムの切り替え等の処理が速やかに実行できる。
【００１６】
また、本発明の割込み制御装置は、前記動作命令手段が、割込み処理が待ち割込みであるか否かを判定するための割込み判定テーブルを備え、プロセッサは、前記割込み判定テーブルを参照して受付けられた割込みが待ち割込みであるか否かを判断することを特徴とする。
このような発明によれば、プロセッサが判定テーブルを使って簡易に割込みが待ち割込みであるか否か判断することができる。
【００１７】
本発明の割込み制御方法をコンピュータに実行させるためのプログラムは、複数の処理を第１プログラムにしたがって実行すると共に、外部から要求された割込み処理を外部割込み処理用の第２プログラムを起動して実行するプロセッサを制御する割込み制御方法をコンピュータに実行させるためのプログラムであって、外部から要求された割込み処理が、予め設定された内容である待ち割込みであるか否かを判別する割込み判別ステップと、要求された割込み処理が前記割込み判別ステップにおいて待ち割込み以外の命令であると判断された場合には、前記第２プログラムを起動するようプロセッサに命令し、要求された割込みが前記割込み判別ステップにおいて待ち割込みであると判断された場合には前記第１プログラムによって待ち割込みをプロセッサに実行させる動作命令ステップを含むことを特徴とする。
【００１８】
このような発明によれば、外部から要求された割込み処理が予め設定された内容である待ち割込みであるか否かを判別し、受付けられた割込みが待ち割込み以外の命令であると判断された場合には前記第２プログラムを起動するようプロセッサに命令することができる。このため、待ち割込み以外の割込みを通常通り割込みハンドラを起動して実行することができる。
【００１９】
また、割込みが待ち割込みであると判断された場合、前記第１プログラムによって待ち割込みを実行するようプロセッサに命令することができる。このため、特定の待ち割込みについては割込みハンドラ等の他のプログラムを起動することなく通常のプログラムによって実行することができる。このため、本発明は、割込みによって要求された処理の処理時間が短い場合にも割込み処理のオーバーヘッドを低減することができる。また、割込み処理の終了後、割込みハンドラ等から通常のプログラムに移行するためプロセッサが停止する時間が不要である。したがって、より短時間のうちに割込み処理から通常処理に復帰し、割込み処理による動作停止時間がより短縮できる割込み制御方法をコンピュータに実行させるためのプログラムを提供することができる。
【発明を実施するための最良の形態】
【００２０】
以下、図を参照して本発明にかかる割込み制御装置及び割込み制御方法をコンピュータに実行させるためのプログラムの実施の形態１ないし３を説明する。
【００２１】
（実施形態１）
図１は、実施形態１の割込み制御装置を説明するための図であって、割込み制御装置と接続するプロセッサの形態を説明するための図である。実施形態１の割込み制御装置は、シングルプロセッサ、マルチプロセッサのいずれにも適用することが可能である。図１（ａ）は、単一のプロセッサ２０でなるシングルプロセッサと割込み制御装置である割込みコントローラ１とを接続した構成を示し、（ｂ）は、複数のプロセッサ２０ａ〜２０ｄでなるマルチプロセッサと割込みコントローラ１とを接続した構成を示している。
【００２２】
図２は、割込みコントローラ１の構成を示した図であって、マルチプロセッサ２０と接続した場合の例を示している。プロセッサ２０は、メモリ３と接続し、通常はメモリ３から読み出した命令をタスク単位で順次実行している。
また、プロセッサ２０は、割込みコントローラ１を介して周辺モジュール４と接続している。周辺モジュール４は、カメラ、通信装置といった複数のモジュールを含む。各モジュールは、プロセッサ２０に対して割込みを要求し、自装置の制御を依頼する。周辺モジュール４がプロセッサ２０に対して行う割込みを外部割込みという。また、本明細書の実施形態にあっては、特に記載しない場合、割込みの文言は外部割込みを指すものとする。
【００２３】
マルチプロセッサ２０は、複数の処理を第１プログラム（通常プログラムと記す）にしたがってタスク単位で実行すると共に、外部から要求された割込み処理を外部割込み処理用の第２プログラム（割込みハンドラ）を起動して実行するプロセッサである。割込みコントローラ１は、図２に示すように、外部から要求された割込み処理を受付ける割込み検出部２０１、受付けられた割込み処理が、予め設定された内容の割込み処理（待ち割込み）であるか否かを判別する割込みコントローラ制御部２０２と、受付けられた割込みが割込みコントローラ制御部２０２によって待ち割込み以外の命令であると判断された場合には割込みハンドラを起動するようプロセッサ２０に命令し、受付けられた割込みが待ち割込みであると判断された場合、通常プログラムによって待ち割込みを実行する割込み通知部２０４を備えている。
【００２４】
以上の構成において、割込み検出部２０１は割込み受付手段、割込みコントローラ制御部２０２は割込み判別手段、割込みコントローラ制御部２０２及び割込み通知部２０４は動作命令手段として機能する。
【００２５】
また、実施形態１の割込みコントローラ１は、実施形態１の割込み判定テーブルである割込み待ちテーブル２０３を備えている。割込み待ちテーブル２０３は、プロセッサ２０ａ〜２０ｄの待割込みを記録するテーブルである。割込みコントローラ制御部２０２は、割込み待ちテーブル２０３を参照し、割込み待ちの状態であるプロセッサが待っている割込み（待ち割込み）を検出する。そして、割込み待ちのプロセッサに対し、プロセッサの待ち割込みを通知するよう制御する。
【００２６】
次に、このような割込みコントローラ１によって制御されるプロセッサ２０の動作を説明する。なお、実施形態１にあっては、プロセッサ２０ａ〜２０ｄのうち、ｈａｌｔ状態にあるプロセッサが割込み（要求割込み）を受付けるものとする。
例えば、プロセッサ２０ａに周辺モジュール４からの割込みを要求した場合、割込みコントローラ１は、要求割込みをプロセッサ２０ａに通知する。プロセッサ２０ａは、割込みハンドラを起動して要求割込みの処理を実行する。割込みハンドラの起動により、周辺モジュール４が例えば撮像や通信といった特有の処理を実行する。
【００２７】
また、周辺モジュール４における処理の終了は、割込み（終了通知割込み）によってプロセッサ２０ａに通知される。実施形態１の割込みコントローラ１は、要求割込みの通知後、終了通知割込みをプロセッサ２０の終了通知割込みである割込みＡを待ち割込みに設定する。そして、プロセッサ２０ａに対し、通知された割込みが割込みＡ以外の命令である場合には割込みハンドラを起動し、割込みが割込みＡであると判断された場合、通常プログラムによって割込みＡを実行するよう命令（新命令）する命令信号をプロセッサ２０ａに出力する。
【００２８】
図３は、プロセッサ２０ａの命令の実行順序を示す図である。命令の実行順序は、データ・キュー等として通常プログラムにより設定される。データ・キューでは、プロセッサ２０ａで実行される命令が実行の順番にしたがって設定されている。プロセッサ２０ａに出力された新命令は、プロセッサ２０ａに出力されたタイミングでデータ・キューに設定される。新命令がデータ・キューに設定された状態を図３に示す。図３に示したように新命令がデータ・キューに設定された場合、プロセッサ２０ａは、新命令の実行によって割込みＡの待ち状態に入る。
【００２９】
さらに、割込みコントローラ１は、割込みが要求された場合、割込み待ちテーブル２０３を参照し、この割込みがプロセッサ２０ａ〜２０ｄのいずれかの待ち割込みであるか否か判断する。そして、待ち割込みが発生したと判断すると、割込みが発生したことを示す情報に割込みＡがプロセッサ２０ａの待ち割込みであることを示す情報を付加してプロセッサ２０ａに通知する。
【００３０】
割込みＡが発生したことにより、プロセッサ２０ａは、割込みハンドラを起動することなく割込みＡを実行する。割込みＡの実行によってプロセッサ２０ａは割込み待ち状態から解除され、データ・キューに設定されている次の命令１から順に命令２、命令３を実行する。
【００３１】
図４（ａ）、（ｂ）は、以上の制御によるプロセッサ２０ａの動作を説明するための図である。図４（ａ）は、新命令によって割込みＡの割込み待ち状態にあるプロセッサに対し、割込みＡが発生したことが通知された状態を示している。プロセッサは、割込みＡの発生によって図３に示した命令１、命令２を通常プログラムによって実行する。なお、本明細書の実施形態では、通常プログラムによって実行される命令を通常命令と記す。
【００３２】
また、（ｂ）は、割込みＡの割込み待ち状態にあるプロセッサに対し、割込みＡ以外の割込み（割込みＢ）が通知されたときのプロセッサの動作を示している。プロセッサは、割込みＢが要求されたとき、割込みＢが待ち割込みでないことから割込みハンドラを起動して割込み処理Ｂを実行する。
なお、実施形態１では、新命令が、割込みハンドラによって実行された割込み処理の終了後、さらに待ち割込みが受付けられるまで通常プログラムによる処理の実行をプロセッサ２０に停止させる。この停止状態は、ｈａｌｔ、Ｓｌｅｅｐ等のどのような停止状態であってもよい。
【００３３】
また、停止状態にあるプロセッサは、待ち割込みである割込みＡが通知された場合、（ａ）に示した動作と同様に、新命令を実行することによって割込みＡを実行する。この結果、プロセッサは、データ・キューにおいて新命令の次に設定されていた命令１、命令２を通常プログラムによって実行する。
【００３４】
図５は、実施形態１の割込みコントローラ１によるプロセッサの制御方法をコンピュータに実行させるためのフローチャートであって、割込みコントローラ制御部２０２が割込み制御する場合の動作を示している。割込みコントローラ制御部２０２は、割込み検出部２０１によって新たな割込みが検出されたか否か判断する（Ｓ５０１）。割込みが発生しない場合（Ｓ５０１：Ｎｏ）、割込みが発生するまで待機する。また、割込みが発生した場合には（Ｓ５０１：Ｙｅｓ）、割込みコントローラ制御部２０２が、割込み待ちテーブル２０３を参照し（Ｓ５０２）、発生した割込みが待ち割込みに指定された割込みであるか否か判断する（Ｓ５０３）。
【００３５】
ステップＳ５０３の判断の結果、待ち割込みでない場合（Ｓ５０３：Ｎｏ）、プロセッサ（例えばプロセッサ２０ａ）に対し、割込みハンドラによって処理される通常の割込みが発生したことを検出し（Ｓ５０４）、プロセッサ２０ａに通知する（Ｓ５０５）。
一方、ステップＳ５０３において、発生した割込みが待ち割込みであると判断された場合（Ｓ５０３：Ｙｅｓ）、待ち割込みの発生を通知することによってプロセッサ２０ａにおける待ち割込みの割込み待ちを解除する（Ｓ５０６）。そして、割込み待ちテーブル２０３のプロセッサ２０ａが割込み待ち状態であることを示すデータをクリアし（Ｓ５０７）、処理を終了する。
【００３６】
以上述べた実施形態１は、割込みが待ち割込みであると判断された場合、通常プログラムによって待ち割込みを実行するようプロセッサに命令することができる。このため、特定の待ち割込みについては割込みハンドラを起動することなく通常のプログラムによって実行することができる。このため本発明は、割込みによって要求された処理の処理時間が短い場合にも割込み処理のオーバーヘッドを低減することができる。また、割込み処理の終了後、割込みハンドラから通常のプログラムに移行するためプロセッサが停止する時間が不要である。したがって、より短時間のうちに割込み処理から通常処理に復帰し、割込み処理による動作停止時間をより短縮することができる。
【００３７】
なお、以上述べた実施形態１の割込み制御装置は、１つのプロセッサ２０ａに１つの待ち割込みが設定された場合について説明したが、実施形態１は、このような構成に限定されるものではない。すなわち、１つのプロセッサ２０ａに複数の待ち割込みを設定することができる。このような場合、新命令は、複数の待ち割込みのうちの一部が割込み検出部２０１に受付けられるまで通常プログラムで設定された通常処理の実行を停止するようプロセッサ２０ａに命令するものであってもよい。また、複数の待ち割込みのうちの全部が受付けられるまで通常プログラムで設定された通常処理の実行を停止するようプロセッサ２０ａに命令するものであってもよい。
【００３８】
（実施形態２）
次に、本発明の実施形態２の割込み制御装置について説明する。なお、実施形態２の割込み制御装置は、割込みコントローラ１の割込みテーブル２０３をベクタテーブルで構成したものである。このような実施形態２の構成は、図１で説明した構成と同様であるから図示及び説明を省くものとする。
なお、実施形態２では、割込みコントローラ制御部２０２が、プロセッサ２０ａに要求割込みを通知すると共に、要求割込みに対する終了割込みを待ち割込みとする新命令をプロセッサ２０ａに送信する。新命令は、データ・キューに追加される。
【００３９】
図６は、実施形態２の割込みコントローラによるプロセッサの制御方法をコンピュータに実行させるためのフローチャートであって、ベクタテーブルを使って割込み制御する場合の動作を示している。
割込みコントローラは、新たな割込みが検出されたか否か判断する（Ｓ６０１）。割込みが発生しない場合（Ｓ６０１：Ｎｏ）、割込みが発生するまで待機する。また、割込みが発生した場合には（Ｓ６０１：Ｙｅｓ）、ベクタテーブルでなる割込み待ちテーブル２０３を参照し（Ｓ６０２）、発生した割込みがいずれかのプロセッサ（ここではプロセッサ２０ａ）の待ち割込みに指定された割込みであるか否か判断する（Ｓ６０３）。
【００４０】
図７（ａ）、（ｂ）は、ベクタテーブルの構成例を示した図であって、（ａ）は割込み処理（割込みベクタ）を実行するための割込みハンドラの参照アドレス（先頭）、割込みハンドラにアクセスするためのアドレス（先頭）を示している。図中の左側に示したアドレスが参照アドレスであり、右側に示したアドレスがアクセス先のアドレスである。（ｂ）は、図中に示したベクタ１（ｖｅｃ１）が、待ち割込みであることを示すベクタテーブルを示している。
【００４１】
なお、ベクタ０、ベクタ１といった複数のベクタは、例えば、複数のモジュールを含む周辺モジュール４の割込みを要求したモジュールによって識別される。
（ｂ）に示したベクタテーブルでは、ベクタ１の割込みハンドラのアクセス先にアクセス不可能なデータが設定されている。プロセッサ２０ａは、ベクタ１に対応する割込み処理以外の割込み処理が要求されたとき、ベクタテーブルを参照して割込みハンドラを起動する。なお、実施形態２では、割込みハンドラの起動後、プロセッサ２０ａはデータ・キューにおける新命令の処理に戻る（Ｓ６０４）。
【００４２】
また、プロセッサ２０ａは、ベクタ１に対応する割込み処理が要求されたとき、ベクタ
テーブルを参照して割込みハンドラを起動できないことを検出する。この場合、プロセッサ２０ａは、通常プログラムによってデータ・キューに設定された新命令を実行する。新命令の実行にあたり、割込みコントローラ１は、図７（ｂ）に示したベクタ１が待ち割込みであることを示す情報をクリアする（Ｓ６０５）。新命令の実行の結果、待ち割込みが実行され、待ち状態が解除される（Ｓ５０６）。この結果、通常命令がデータ・キューに設定されている順番で順次実行される。
【００４３】
以上述べた実施形態２にあっては、割込みコントローラ１及びプロセッサ２０ａ〜２０ｄが、受付けられた割込みが待ち割込みであるか否かを、ベクタテーブルを使って判別する割込み判別手段として機能している。
【００４４】
（実施形態３）
次に、本発明の実施形態３の割込み制御装置について説明する。なお、実施形態３の割込み制御装置は、割込み判定テーブルをプロセッサ２０ａ〜２０ｄが備えるステータスレジスタに備えるものである。プロセッサは、ステータスレジスタを参照して受付けられた割込みが待ち割込みであるか否かを判断する。このような実施形態３の構成は、図１で説明した構成と外観上は同様であるから図示及び説明を省くものとする。また、ステータスレジスタは、プロセッサにあって周知の構成であるから構成図における図示を省くものとする。
【００４５】
なお、実施形態３では、割込みコントローラ制御部２０２が、プロセッサ２０ａに要求割込みを通知すると共に、要求割込みに対する終了割込みを待ち割込みとする新命令をプロセッサ２０ａに送信する。新命令は、データ・キューに追加される。
【００４６】
図８は、実施形態３の割込みコントローラの動作を説明するためのフローチャートであって、ステータスレジスタを使って割込み制御する場合の動作を示している。割込みコントローラ１は、新たな割込みが検出されたか否か判断する（Ｓ８０１）。割込みが発生しない場合（Ｓ８０１：Ｎｏ）、割込みが発生するまで待機する。
また、割込みが発生した場合（Ｓ８０１：Ｙｅｓ）、プロセッサ（例えばプロセッサ２０ａ）に割込みの発生を通知する。プロセッサ２０ａは、ステータスレジスタを参照し（Ｓ８０２）、自プロセッサが割込み待ちの状態にあるか否か判断する（Ｓ８０３）。
【００４７】
図９は、ステータスレジスタの構成例を示している。ステータスレジスタは、割込み待ち状態であるか否かを判断する割込み待ちフラグ（ＩＷ）、割込み優先度を示す割込みレベル（ＩＬ）等が記録される部分を予め有している。ステップ８０２の判断は、プロセッサ２０ａが割込み待ちフラグを参照することによって判断できる。
また、実施形態３では、割込み待ちフラグに各プロセッサが割込み待ちであるか否かの情報ばかりでなく、待ち割込みを特定するための情報が割込み待ち情報テーブルとして保存されている。
【００４８】
図１０は、割込み待ち情報テーブルの構成例を示している。図示した割込み待ち情報テーブルは、ベクタ０（ｖｅｃ０）、ベクタ１（ｖｅｃ１）といった割込みハンドラの各々について割込みハンドラの参照先のオフセットアドレスと、オフセットアドレスに対応する割込み待ちフラグが記録されている。割込み待ちフラグは、例えば、待ち割込みの割込みハンドラに対応するもののみ１のフラグを立て、他の割込みハンドラに対応するものについては０とすることによって待ち割込みを記録することができる。
【００４９】
なお、プロセッサ２０ａ〜２０ｄのステータスレジスタのフラグは、要求割込みがあったとき割込みコントローラ１によって設定されるようにしてもよい。
プロセッサ２０ａは、ステータスレジスタの割込み待ちフラグを参照し（Ｓ８０４）、発生した割込みが待ち割込みに指定された割込みであるか否か判断する（Ｓ８０５）。そして、１のフラグの割込みハンドラに対応する割込み処理以外の割込み処理が要求されたとき（Ｓ８０３：Ｎｏ）、割込みハンドラを起動する。なお、実施形態３では、割込みハンドラの起動後、プロセッサ２０ａはデータ・キューにおける新命令の処理に戻る（Ｓ８０８）。
【００５０】
また、プロセッサ２０ａは、１のフラグが立った割込みハンドラに対応する割込み処理が要求されたとき（Ｓ８０５：Ｙｅｓ）、通常プログラムによってデータ・キューに設定された新命令を実行する。新命令の実行にあたり、割込みコントローラ１は、図１０に示した待ち割込みを示すフラグをクリアする（Ｓ８０６）。この結果、待ち状態が解除され（Ｓ８０７）。この結果、プロセッサ２０ａが、データ・キューに設定されている順番で通常命令を順次実行する。
【００５１】
以上述べた実施形態３にあっては、プロセッサ２０ａ〜２０ｄのステータスレジスタ及び割込みコントローラ１が、受付けられた割込みが待ち割込みであるか否かを判別する割込み判別手段として機能している。
【００５２】
なお、以上述べた実施形態１〜３の割込み制御方法をコンピュータに実行させるプログラムは、インストール可能な形式または実行可能な形式のファイルでＣＤ−ＲＯＭ、フロッピー（登録商標）ディスク（ＦＤ）、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録されて提供される。また、実施形態１〜３の割込み制御方法をコンピュータに実行させるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウン起動させることにより提供するように構成しても良い。さらに、実施形態１〜３の割込み制御方法をコンピュータに実行させるプログラムは、コンピュータで読み取り可能なＲＯＭ、フラッシュメモリ、メモリカード、ＵＳＢ接続型フラッシュメモリ等のメモリデバイスに記録されて提供してもよい。
【００５３】
さらに、本実施形態の割込み制御装置は、このような動作を実行するための専用のハードウェア構成を設けるものであってもよい。また、一般的なプロセッサ上で本発明の実施形態の割込み制御方法をコンピュータに実行させるためのプログラムを動作させ、プロセッサの既存のハードウェア構成を使って割込みを制御するものであってもよい。
【図面の簡単な説明】
【００５４】
【図１】本発明の実施形態１の割込み制御装置を説明するための図である。
【図２】図１に示した割込みコントローラの構成を示した図である。
【図３】本発明の実施形態１の割込み制御装置によって制御されるプロセッサの命令の実行順序を示す図である。
【図４】本発明の実施形態１の割込み制御装置によって制御されるプロセッサの動作を説明するための図である。
【図５】実施形態１の割込みコントローラによるプロセッサの制御方法をコンピュータに実行させるためのフローチャートである。
【図６】実施形態２の割込みコントローラによるプロセッサの制御方法をコンピュータに実行させるためのフローチャートである。
【図７】本発明の実施形態２のベクタテーブルの構成例を示した図である。
【図８】実施形態３の割込みコントローラの動作を説明するためのフローチャートである。
【図９】実施形態３のステータスレジスタの構成例を示す図である。
【図１０】実施形態３の割込み待ち情報テーブルの構成例を示す図である。
【符号の説明】
【００５５】
１  割込みコントローラ、３  メモリ、４  周辺モジュール、２０  プロセッサ、２０１  割込み検出部、２０２  割込みコントローラ制御部、２０３  割込み待ちテーブル、２０４  割込み通知部
【図１】
2007226538.tif 000003
【図２】
2007226538.tif 000004
【図３】
2007226538.tif 000005
【図４】
2007226538.tif 000006
【図５】
2007226538.tif 000007
【図６】
2007226538.tif 000008
【図７】
2007226538.tif 000009
【図８】
2007226538.tif 000010
【図９】
2007226538.tif 000011
【図１０】
2007226538.tif 000012