(57)【要約】【課題】  起動時の初期化処理を行う場合に、中央処理装置において、デバイスからの割り込み処理に伴うタスクスイッチによる処理サイクルが増加することを防ぎ、更には割り込み処理ルーチン内で、割り込みが初期化によるか通常動作によるかの判別も不要にして、通常の割り込み動作の処理サイクルをも短縮する割り込み制御装置、情報処理システム、及びそのプログラムを提供する。【解決手段】  ＩＮＩＴレジスタ１１７において、ＩＮＩＴ信号が活性化され、且つ全ての初期化完了割り込み要因が発生した時点で、ＣＰＵ１０１に初期化完了の割り込みが通知され、初期化処理が終わると、ＣＰＵ１０１はＩＮＩＴレジスタ１１７のＩＮＩＴ信号を不活性とし、割り込みベクタ２０３のポインタを切り替えることにより、初期化完了以降のＣＰＵ１０１への割り込みは、通常の割り込みとして処理される。【選択図】図１
2007179132.tif 000002
【特許請求の範囲】
【請求項１】
複数のデバイスから割り込み要求信号を受信し、該割り込み要求信号を中央処理装置に伝達する制御を行う割り込み制御装置であって、
デバイスから個々の割り込み要求信号を受信する度に前記中央処理装置に伝達するか、あるいは、すべてのデバイスから前記割り込み要求信号を受信した場合にのみ前記中央処理装置に伝達するかを選択可能とすることを特徴とする割り込み制御装置。
【請求項２】
すべてのデバイスから前記割り込み要求信号を受信した場合にのみ前記中央処理装置に伝達する処理を選択し、所定時間内にすべてのデバイスから前記割り込み要求信号を受信しなかった場合、所定時間内に受信した前記割り込み要求信号を前記中央処理装置に伝達することを特徴とする請求項１に記載の割り込み制御装置。
【請求項３】
前記中央処理装置が起動時の初期化処理を行う場合は、すべてのデバイスから前記割り込み要求信号を受信した場合にのみ前記中央処理装置に伝達する処理を選択し、初期化処理の終了後は、デバイスから個々の割り込み要求信号を受信する度に前記中央処理装置に伝達する処理を選択することを特徴とする請求項１又は２に記載の割り込み制御装置。
【請求項４】
請求項３に記載の割り込み制御装置と、装置全体を制御する中央処理装置と、割り込み要求信号を送信する複数のデバイスとを備えた情報処理システムであって、
前記中央処理装置は、
起動時の初期化処理を行う場合、前記割り込み制御装置からの割り込み要求信号が入力されると初期化用割り込み処理ルーチンの位置を示すベクタアドレスを設定して初期化用割り込み処理ルーチンを実行する手段と、
初期化処理後は、通常割り込み処理ルーチンの位置を示すベクタアドレスを設定する手段と、
を備えたことを特徴とする情報処理システム。
【請求項５】
請求項３に記載の割り込み制御処置と、装置全体を制御する中央処理装置と、割り込み要求信号を送信する複数のデバイスとを備えた情報処理システムに用いるプログラムであって、
前記中央処理装置に、
起動時の初期化処理を行う場合、前記割り込み制御装置からの割り込み要求信号が入力されると初期化用割り込み処理ルーチンの位置を示すベクタアドレスを設定して初期化用割り込み処理ルーチンを実行する手段と、
初期化処理後は、通常割り込み処理ルーチンの位置を示すベクタアドレスを設定する手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システムにおいて、中央処理装置に対して外部デバイスから発生する割り込みの制御の技術に関する。
【背景技術】
【０００２】
近年のプロセッサ内蔵の組み込み機器では、プロセッサ、すなわち、中央処理装置でＯＳ（オペレーティングシステム）を動作させ、ＯＳ上でアプリケーションが動作する。中央処理装置はさらに、組み込み機器内に内蔵された種々の周辺ハードウェアデバイスの制御も行う。
【０００３】
ハードウェアデバイスは、中央処理装置とは異なる時間スケールで動作するため、中央処理装置がハードウェアデバイスに対して動作指示を行う際、デバイスから応答がすぐには帰らない場合がある。応答がすぐに帰ってこない場合、中央処理装置は応答待ちを行うと他の処理ができないために、割り込み処理を使うことが一般的である。割り込み処理は、中央処理装置が割り込みを要求する信号を受信した後、その時実行中の処理を中断して処理中のものをスタックに退避させ、受信した信号に応じた割り込み処理を行う。割り込み処理が終わった後は、スタックに退避させていた処理を呼び出し、実行途中であった処理を続行するものである。
【０００４】
割り込み装置は、一般的には特許文献１、非特許文献１に示すようなハードウェアとソフトウェアにより実現される。特許文献１ではベクタによる割り込み装置と動作について示されており、非特許文献１では、複数の割り込み要因を１つの割り込み活性線で共有する割り込み回路と動作について示されている。
【０００５】
以下、図１７、図１８をもとに、従来の割り込み装置を説明する。
【０００６】
図１７は、ハードウェアにおいて、割り込み活性線が１本（ＩＲＱ０＿ｎ）設けられた中央処理装置（以下、「ＣＰＵ」という。）に対しての割り込み発生回路を示す。この例では、ＣＰＵ６０１にはｅｖｅｎｔ０、ｅｖｅｎｔ１の２種の割り込みイベントが接続されるが、割り込み活性線は１本しかないために、途中に、Ｌａｔｃｈ回路６０６、６０７、論理和回路６０３が接続される。Ｌａｔｃｈ回路６０６、６０７は、割り込みのイベントｅｖｅｎｔ０、ｅｖｅｎｔ１のイベントをラッチしておくための回路であり、イベントが発生すると出力は活性され、クリアされるまでは状態を保持する。
【０００７】
図１９に回路の一例を、表１に図１９の回路の真理値表を示す。
【表１】
2007179132.tif 000003
【０００８】
図１９の例では、ｅｎ端子８０１に接続された正論理のイベントは、ｃｌｒ端子８０２が活性されるまでｑ端子８０３にＨｉｇｈ出力として保持される。ｃｌｒ端子８０２は、後述するＣＰＵ６０１からのレジスタと接続されている。活性されたＬａｔｃｈ回路出力は、論理和回路６０３で論理和され、ＣＰＵ６０１に接続される。
【０００９】
すなわち、この例では、割り込みのｅｖｅｎｔ０、ｅｖｅｎｔ１のどちらが発生しても、直ちにＣＰＵ６０１に通知される。
【００１０】
ＩＲＱ０＿ｎが活性されたとき、ＣＰＵ６０１では、これまでの状態を一時的にメモリ内の別領域に退避させ、割り込みベクタに示されたアドレスへジャンプし、割り込み処理が行われる。割り込みベクタは、例えば、レジスタで構成されている。
【００１１】
ＩＲＱ０＿ｎに対しての割り込み処理ルーチンへのジャンプは、プログラムによらず割り込みベクタにより行われるが、ｅｖｅｎｔ０が起きたかｅｖｅｎｔ１が起きたかはわからない。そこで、ｅｖｅｎｔ０、ｅｖｅｎｔ１のどちらが発生したかをＣＰＵ６０１が判定するには、ＣＰＵ６０１のプログラム中で外部ポートをレジスタアクセスすればよい。
【００１２】
本例では、ＣＰＵ６０１はｎビット幅のデータバスＤ［ｎ：０］とｎビット幅のアドレスバスＡ［ｎ：０］、読み出し信号ＲＤ＿ｎ、書き込み信号ＷＲ＿ｎをもち、割り込み要因レジスタ６０４が接続されている。割り込み要因レジスタ６０４は、ＣＰＵ６０１のメモリ空間にマッピングされたレジスタで、固有のアドレスを割り当てられており、割り込み要因レジスタ６０４内のアドレスデコーダ回路とＣＰＵ６０１のアドレスバスＡ［ｎ：０］を比較し、アドレスバスＡのアドレスが割り込み要因レジスタのアドレスと同じになり、かつ、ＲＤ＿ｎ信号が活性されたときにＤ［ｎ：０］にＬａｔｃｈ回路６０６、６０７の状態を出力する。
【００１３】
ＣＰＵ６０１は割り込みの状態を知り、ｅｖｅｎｔ０、または、ｅｖｅｎｔ１、もしくは両方の割り込み処理を行う。
【００１４】
割り込み処理は通常動作の処理と、デバイスの初期化に特化した処理の場合があり、多くの場合、割り込み処理ルーチン内で、条件により処理が選択される。以上の様子を図２０に示す。
【００１５】
活性された割り込み線は、状態が保持されるので、割り込み処理が終わった時点で、ＣＰＵ６０１がラッチを解除する。これには、プログラム中で外部ポートをレジスタアクセスすればよい。
【００１６】
本例では、ＣＰＵ６０１には割り込み要因クリアレジスタ６０５が接続されている。割り込み要因クリアレジスタ６０５は、割り込み要因レジスタ６０４と同様に、割り込み要因クリアレジスタ６０５固有のアドレスを持ち、ＣＰＵ６０１が割り込み要因クリアレジスタ６０５に値を書き込むと、ラッチ回路６０６、６０７のｃｌｒ端子により、ラッチを解除する。どちらのラッチを解除するかは、ビットに対応したラッチ回路がユニークに接続されることにより、クリアすべきビットを活性させて選択される。
【００１７】
図１８は、プロセッサに複数の割り込み活性線ＩＲＱ０＿ｎ、ＩＲＱ１＿ｎ、ＩＲＱ２＿ｎが設けられ、割り込みイベントとしてｅｖｅｎｔ０〜ｅｖｅｎｔ５がある場合の例を示す。
【００１８】
基本的には図１７の場合と同様の動作をするが、ＩＲＱ０＿ｎ〜ＩＲＱ２＿ｎのそれぞれに割り込みベクタが設定されているため、ＩＲＱ０＿ｎ〜ＩＲＱ２＿ｎそれぞれの割り込み処理ルーチンを持つ。図２１に、図１８の場合の割り込みベクタと割り込み処理ルーチンの関係を示す。
【００１９】
図２２は、図１８の回路の場合のタイミングチャートを示す。ｔ３０２で発生した割り込みのイベントｅｖｅｎｔ０は、図１８のラッチ回路７１０でラッチされ、出力がｅｖｅｎｔ０−ｌとしてｔ３０３で活性される。活性されたｅｖｅｎｔ０−ｌは直ちに論理和回路７０５、反転回路７０２を経由し、ＩＲＱ０＿ｎとしてＣＰＵ７０１に通知される。
【００２０】
通知されたＣＰＵ７０１内では、ｔ３０３でプログラムカウンタが割り込みベクタアドレスにセットされ、割り込みベクタアドレスに示されたアドレスへジャンプする。図２２ではｔ３０３の１クロックが割り当てられているが、現実のＣＰＵでは数クロックを要する。
【００２１】
割り込みルーチンでは割り込み要因を割り込み要因レジスタ７０８へのアクセスで読み込み（ｔ３０４）、しかるべき割り込み処理を行う（ｔ３０５）。割り込み処理ｔ３０５は、実際には数十から数百クロックを要する。
【００２２】
割り込み処理を終えたとき、割り込み要因クリアレジスタ７０９により割り込み要因をクリアする（ｔ３０６）と、ラッチ回路７１０がクリアされ、出力ｅｖｅｎｔ０−ｌがクリアされ、ＩＲＱ０＿ｎが非活性となる（ｔ３０７）。
【００２３】
同様に、ｅｖｅｎｔ１が発生したときの様子をｔ３０９〜ｔ３１４に示す。
【００２４】
組み込み機器は、システムの起動時、ＣＰＵが周辺ハードウェアデバイスを初期化する際に、種々のハードウェアデバイスを一斉に初期化する。一般には、初期化にはＣＰＵクロックサイクルに比較して長い時間を要するため、個々のハードウェアは割り込み線の活性を以って初期化の完了をプロセッサに通知する。このため、初期化時には初期化完了の割込みが集中し、タスク切り替えが頻繁に発生する。
【００２５】
図２３を使って従来の初期化タスクを、図２４を使って従来の割り込みメインルーチンを、図２５を使って従来の個々のデバイスの割り込みサブルーチンの動作を、図２６を使って割り込みに注目した場合の状態遷移を示す。
【００２６】
システム起動時、デバイスの個数分の初期化完了フラグをリセットする（Ｓ８０１）。初期化完了フラグはタスク間の通信に使われる内部レジスタで、メモリ内の特定番地に設けられる。
【００２７】
その後、デバイスの個数分の初期化タスクを起動し（Ｓ８０２）、割り込みを許可する（Ｓ８０３）。
【００２８】
デバイスの初期化タスクは、デバイスの起動を順次行うが、デバイスが起動完了したかの判定は行わない。デバイスの起動が完了したかは、後述の図２５に示す個々のデバイスの割り込みサブルーチンのＳ１００２に達したかにより判定され、Ｓ１００２で初期化完了フラグがセットされる。
【００２９】
初期化タスクは、この初期化完了フラグが全てのデバイス分有効になったかを判定し（Ｓ８０４）、有効になった時点で初期化タスクを終了し、通常の動作に移行する。個々のデバイスの初期化完了通知は、割り込み処理により行われる。
【００３０】
割り込み処理状態は、プロセッサから見たときに、通常の動作を一時中断し、割り込み処理という別な動作を行う状態である。
【００３１】
図２６において、割り込みが無ければ（ｅ０）通常処理状態を維持する（ｓｔ１）が、割り込み線が活性されると（ｅ１）、通常処理の状態を退避し（ｓｔ２）、割り込み処理状態（ｓｔ３）に移行する。割り込み処理状態（ｓｔ３）では、割り込みルーチンが実行される。割り込み処理が終了すると、割り込み処理状態（ｓｔ３）から状態の回復を行い（ｓｔ４）、通常処理状態（ｓｔ１）にもどる。
【００３２】
状態の退避処理（ｓｔ２）は、ハードウェアにおいて自動で行われる場合とソフトウェアで行われる場合があるが、代表的な処理内容はどちらの場合も同様であり、ＣＰＵ内部レジスタと、これまでの処理のメモリ上の状態を、メモリの別の領域に退避させる処理である。従い、大量のメモリコピーが発生する。
また、状態の回復処理（ｓｔ４）も全く同様に、ハードウェアにおいてに自動で行われる場合とソフトウェアで行われる場合があるが、代表的な処理内容はどちらの場合も同様であり、ｓｔ２でメモリの別の領域に退避させていたＣＰＵ内部レジスタと、通常処理でのメモリ上の状態を、ＣＰＵ内のレジスタとメモリの本来の領域に復帰させる処理である。従い、大量のメモリコピーが発生する。
【００３３】
割り込みルーチン内では、割り込み要因レジスタ７０８を読み出し（Ｓ９０１）、割り込み要因を特定し（Ｓ９０２）、処理の優先順位を判定し（Ｓ９０３）、個々のデバイスの割り込みサブルーチンへジャンプする（Ｓ９０４）。
【００３４】
個々のデバイスの割り込みサブルーチンでは、デバイスの初期化完了フラグが有効になっているかを判定し（Ｓ１００１）、有効になっていなければ初期処理中であり、初期化が完了したものと判定して初期化完了フラグをセットする（Ｓ１００２）。初期化完了フラグが既にセットされていたのであれば、通常動作の割り込みが発生したと判定し（Ｓ１００１）、通常の割り込み処理を行う（Ｓ１００３）。
【００３５】
Ｓ１００２、またはＳ１００３の処理を行った後に、次の割り込みを許可するため、デバイスの割り込み要因クリアレジスタ７０９のビットをクリア（Ｓ１００４）し、処理を終了とし、割り込みルーチンから復帰する。
【特許文献１】特開２００１−５６７６号公報
【非特許文献１】トランジスタ技術１９９１年６月号  ｐ４５６−ｐ４６０
【発明の開示】
【発明が解決しようとする課題】
【００３６】
近年、組み込み機器のＯＳは高度化され、複雑なアプリケーションプログラムやハードウェアを制御できるようになったが、そのために、デバイスの個数分の初期化時の割り込みタスクのスイッチが、従来よりも多く行われるようになり、システム起動に時間がかかるようになり、起動時間短縮の必要性が出てきている。
【００３７】
本発明は、斯かる実情に鑑み、システム起動時、中央処理装置において、デバイス初期化に伴う煩雑な割り込み処理が発生し、タスクスイッチによる処理サイクルが増加することを防ぎ、さらには割り込み処理ルーチン内で、初期化による割り込みか通常動作の割り込みかの判別も不要にすることにより、通常の割り込み動作の処理サイクルをも短縮する割り込み制御装置、情報処理システム、及びそのプログラムを提供するものである。
【課題を解決するための手段】
【００３８】
斯かる実情に鑑み、第１の発明による割り込み制御装置は、複数のデバイスから割り込み要求信号を受信し、該割り込み要求信号を中央処理装置に伝達する制御を行う割り込み制御装置であって、デバイスから個々の割り込み要求信号を受信する度に前記中央処理装置に伝達するか、あるいは、すべてのデバイスから前記割り込み要求信号を受信した場合にのみ前記中央処理装置に伝達するかを選択可能とすることを特徴とする。
【００３９】
また、第２の発明による割り込み制御装置は、すべてのデバイスから前記割り込み要求信号を受信した場合にのみ前記中央処理装置に伝達する処理を選択し、所定時間内にすべてのデバイスから前記割り込み要求信号を受信しなかった場合、所定時間内に受信した前記割り込み要求信号を前記中央処理装置に伝達することを特徴とする。
【００４０】
また、第３の発明による割り込み制御装置は、前記中央処理装置が起動時の初期化処理を行う場合は、すべてのデバイスから前記割り込み要求信号を受信した場合にのみ前記中央処理装置に伝達する処理を選択し、初期化処理の終了後は、デバイスからの個々の割り込み要求信号を受信する度に前記中央処理装置に伝達する処理を選択することを特徴とする。
【００４１】
また、第４の発明による情報処理システムは、前記記載の割り込み制御装置と、装置全体を制御する中央処理装置と、割り込み要求信号を送信する複数のデバイスとを備えた情報処置システムであって、前記中央処理装置は、起動時の初期化処理を行う場合、前記割り込み制御装置からの割り込み要求信号が入力されると初期化用割り込み処理ルーチンの位置を示すベクタアドレスを設定して初期化用割り込み処理ルーチンを実行する手段と、初期化処理後は、通常割り込み処理ルーチンの位置を示すベクタアドレスを設定する手段とを備えたことを特徴とする。
【００４２】
また、第５の発明によるプログラムは、前記記載の割り込み制御処置と、装置全体を制御する中央処理装置と、割り込み要求信号を送信する複数のデバイスとを備えた情報処理システムに用いるプログラムであって、前記中央処理装置に、起動時の初期化処理を行う場合、前記割り込み制御装置からの割り込み要求信号が入力されると初期化用割り込み処理ルーチンの位置を示すベクタアドレスを設定して初期化用割り込み処理ルーチンを実行する手段と、初期化処理後は、通常割り込み処理ルーチンの位置を示すベクタアドレスを設定する手段として機能させることを特徴とする。
【発明の効果】
【００４３】
本発明によれば、デバイスから個々の割り込み要求信号を受信する度に中央処理装置に伝達するか、あるいは、すべてのデバイスから割り込み要求信号を受信した場合にのみ中央処理装置に伝達するかを選択可能であるので、システム起動時にデバイスを初期化する際、すべてのデバイスから割り込み要求信号を受信した場合にのみ中央処理装置に伝達する処理を選択することにより、デバイスからの初期化完了を通知する一斉の割り込みに伴う煩雑なタスクスイッチによる処理サイクルの増加を防ぐことができる。
また、初期化処理後は、通常割り込み処理ルーチンの位置を示すベクタアドレスを設定する構成とすることより、初期化による割り込みか通常動作の割り込みかの判別が不要になり、通常の割り込み動作の処理サイクルを短縮することができる。
【発明を実施するための最良の形態】
【００４４】
以下、本発明の第１の実施形態、および第２の実施形態を、添付図面を参照して説明する。
［第１の実施形態]
【００４５】
はじめに、本発明の第１の実施形態に関わる情報処理システムの構成例を図１を用いて説明する。
【００４６】
情報処理システム１００は、ＣＰＵ１０１、割り込み制御装置１０２、及びデバイス１０３、１０４、１０５、１０６、１０７、１０８により構成されている。割り込み制御装置１０２は、反転回路１０９、１１０、１１１、４入力論理和・論理積回路１１２、２入力論理和・論理積回路１１３、１１４、割り込み要因レジスタ１１５、割り込み要因クリアレジスタ１１６、ＩＮＩＴレジスタ１１７、Ｌａｔｃｈ回路１１８、１１９、１２０、１２１、１２２、１２３により構成されている。
【００４７】
従来の回路である図１８との相違は、論理和回路７０５、７０６、７０７が、４入力論理和・論理積回路１１２、２入力論理和・論理積回路１１３、１１４に置き換わっていることと、２入力論理和・論理積回路１１３、１１４の出力が４入力論理和・論理積回路１１２にも接続されていること、ＩＮＩＴレジスタ１１７が追加されていることと、ＩＮＩＴレジスタ１１７の出力であるＩＮＩＴ信号が、４入力論理和・論理積回路１１２、２入力論理和・論理積回路１１３、１１４に接続されていることである。
【００４８】
ＩＮＩＴレジスタ１１７は、電源投入時は初期値として初期化状態、すなわち、ＩＮＩＴ信号は活性状態、本例ではＨｉｇｈの状態となっている。
【００４９】
図２は、４入力論理和・論理積回路１１２の回路図である。
【００５０】
図３は、２入力論理和・論理積回路１１３、１１４の回路図である。
【００５１】
４入力論理和・論理積回路１１２、２入力論理和・論理積回路１１３、１１４は、ｓ端子１２４、１２５、１２６により、入力信号の論理和を出力するか、論理積を出力するかを選択する回路である。ｓ端子１２４、１２５、１２６はＩＮＩＴレジスタ１１７と接続されている。
【００５２】
ＩＮＩＴ信号が非活性の状態、すなわち、ｓ端子１２４、１２５、１２６がＬｏｗの場合は入力信号の論理和が出力され、ＩＮＩＴ信号が活性の状態、すなわち、ｓ端子１２４、１２５、１２６がＨｉｇｈであれば入力信号の論理積が出力される。つまり、以下の真理値表のようになる。
【００５３】
以下の表２に、４入力論理和・論理積回路１１２の真理値表を示す。
【表２】
2007179132.tif 000004
【００５４】
また、以下の表３に、２入力論理和・論理積回路１１３、１１４の真理値表を示す。
【表３】
2007179132.tif 000005
【００５５】
電源投入時は、４入力論理和・論理積回路１１２、２入力論理和・論理積回路１１３、１１４は、入力の論理積を出力することとなる。更に、図１の例では、４入力論理和・論理積回路１１２は、４入力論理和・論理積回路１１２に接続される割り込みのイベントｅｖｅｎｔ０―ｌ、ｅｖｅｎｔ１−ｌ、２入力論理和・論理積回路１１３、１１４に接続されるｅｖｅｎｔ２―ｌ、ｅｖｅｎｔ３―ｌ、ｅｖｅｎｔ４―ｌ、ｅｖｅｎｔ５―ｌの全てがＨｉｇｈとなったときにＨｉｇｈを出力する。
【００５６】
ここで、ｅｖｅｎｔ０―ｌ、ｅｖｅｎｔ１―ｌ、ｅｖｅｎｔ２―ｌ、ｅｖｅｎｔ３―ｌ、ｅｖｅｎｔ４―ｌ、ｅｖｅｎｔ５―ｌは、Ｌａｔｃｈ回路１１８、１１９、１２０、１２１、１２２、１２３の出力である。Ｌａｔｃｈ回路１１８、１１９、１２０、１２１、１２２、１２３は、図１９に示した従来のものと同じである。
【００５７】
Ｌａｔｃｈ回路１１８、１１９、１２０、１２１、１２２、１２３に接続される割り込みの要因はｅｖｅｎｔ０〜ｅｖｅｎｔ５に示すＨｉｇｈアクティブの信号である。すなわち、ｅｖｅｎｔ０〜５の全てが少なくとも１回は活性された場合にのみ、ＩＲＱ０＿ｎに割り込みが通知される。
【００５８】
図４は、本発明の第１の実施形態の初期化時の割り込みのタイミングチャートである。ｔ１０７でＩＲＱ１＿ｎ信号が、ｔ１０８でＩＲＱ２＿ｎ信号が活性されるが、後で詳細を述べる図９の初期化タスクの動作により、初期化時のＩＲＱ１＿ｎ、ＩＲＱ２＿ｎ信号の動作は無視される。
【００５９】
図４に示す例では、ｔ１０２でｅｖｅｎｔ０が、ｔ１０３でｅｖｅｎｔ２が、ｔ１０４でｅｖｅｎｔ５が、ｔ１０６でｅｖｅｎｔ３が、ｔ１０７でｅｖｅｎｔ４が、ｔ１０９でｅｖｅｎｔ１が発生している。個々のｅｖｅｎｔは、後述するデバイスの初期化時のデバイスの初期化タスクにより起動した初期化処理に起因するもので、デバイス１０３、１０４、１０５、１０６、１０７、１０８の初期化が完了したことを示すｅｖｅｎｔである。
【００６０】
ｅｖｅｎｔ０〜５に対応するラッチされたｅｖｅｎｔ０−ｌ〜ｅｖｅｎｔ５−ｌが活性されるが、全てが活性されるｔ１１０まではＩＲＱ０＿ｎは活性されない。ここで初めて割り込みがＣＰＵ１０１に通知され、ｔ１１１でＣＰＵ１０１は割り込み要因レジスタ１１５により全ての割り込みが発生したことを確認し（全ての割り込み要因が発生したことの確認は省略できる）、割り込み処理を終え、ｔ１１３でＩＮＩＴレジスタ１１７を初期化時ではない状態にして、ＩＮＩＴ信号を非活性にし、ｔ１１５で割り込み要因クリアレジスタ１１６を活性することで次の割り込み発生が許可される。
【００６１】
このことにより、システム起動時にデバイスを初期化する際、デバイスからの初期化完了を通知する一斉の割り込みに伴う煩雑なタスクスイッチによる処理サイクルの増加を防ぐことができる。
【００６２】
以降はＩＮＩＴ信号が活性されていないために、ｅｖｅｎｔ０〜５に発生した割り込みは、都度、割り込みとしてＣＰＵ１０１に通知される。このときの動作を図５に示す。
【００６３】
従来の動作を説明した図２２との相違はＩＮＩＴ信号が関わるか否かだけであり、しかも、ＩＮＩＴ信号は非活性の状態である。
【００６４】
以上のように、初期化時と通常動作時で、割り込み信号ＩＲＱ０＿ｎ、ＩＲＱ１＿ｎ、ＩＲＱ２＿ｎの動作を変えることができる。
【００６５】
図６に、本発明に関わる初期化タスクの動作の例をフローチャートにより示す。はじめに、ＣＰＵ１０１は、デバイスの初期化完了フラグをリセットする。本発明の初期化完了フラグもレジスタで構成され、メモリ内の特定番地に設けられている。しかし、図２３に示す従来の初期化タスクでは、Ｓ８０１でデバイスの個数分の初期化完了フラグを用意する必要があったが、本発明では、Ｓ１０１で、ただ１つのフラグを用意すればよい。
【００６６】
次に、デバイス１０３、１０４、１０５、１０６、１０７、１０８の個数分の初期化タスクを起動する（Ｓ１０２）。
【００６７】
起動完了した時点で、ＣＰＵ１０１は、ＩＲＱ０＿ｎの割り込みのみ許可する（Ｓ１０３）。ここで、ＩＲＱ１＿ｎ、ＩＲＱ２＿ｎの割り込みは許可しない。従って、ＩＲＱ１＿ｎ、ＩＲＱ２＿ｎの割り込みは活性されたとしても無視される。
【００６８】
次に、ＣＰＵ１０１は、先にリセットしたデバイスの初期化完了フラグがセットされたかをポーリングにより待ち（Ｓ１０４）、有効になった場合は、ＩＲＱ１＿ｎ、ＩＲＱ２＿ｎの割り込みをも許可し（Ｓ１０５）、初期化タスクを終了する。この後、通常の動作のタスクに移行する。
【００６９】
図７で、本発明に関わる個々のデバイス１０３、１０４、１０５、１０６、１０７、１０８の初期化タスクを説明する。個々のデバイスの初期化タスクが起動された後、個々のデバイス１０３、１０４、１０５、１０６、１０７、１０８ごとの初期化処理が開始される（Ｓ２０１）。この初期化タスクでは、初期化が完了したことを待たずにタスクを終了する。初期化完了の通知は、個々のデバイス１０３、１０４、１０５、１０６、１０７、１０８より、図１に示すｅｖｅｎｔ０〜５により行われる。
【００７０】
図８に、本発明の初期化割り込みルーチンを示す。本発明では、図７で説明したように、全ての割り込み要因が活性されてはじめて図８に示す初期化割り込みが呼び出されることとなる。
【００７１】
初期化割り込みルーチンでは初めに、デバイスの初期化完了フラグを有効にセットする（Ｓ３０１）。本発明では、初期化完了割り込みフラグはデバイスの個数分持つのではなく１つでよい。
【００７２】
その後、ＣＰＵ１０１は、割り込みベクタを通常の割り込み処理のベクタに切り替える（Ｓ３０２）。割り込みベクタは、ＣＰＵ１０１のメモリ空間にマッピングされたレジスタで、固有のアドレスを割り当てられている。
【００７３】
本発明では、割り込みベクタ及び割り込みルーチンについて示す図９のように、ＩＲＱ０＿ｎの割り込み処理ルーチン２０１、２０２の２種類をもち、別のベクタで管理する。すなわち、最初のベクタ２０３のジャンプ先では、図８に示す初期化割り込みルーチン２０１にジャンプするようにし、初期化割り込みルーチン２０１にジャンプした以降は、ジャンプする割り込みルーチンを切り替える制御を行い、ベクタ２０３のポインタを書き換え、通常の割り込み処理ルーチン２０２へジャンプするようにセットする。
【００７４】
これにより、ＣＰＵ１０１では、割り込みルーチンにジャンプした後に都度、初期化割り込みか通常の割り込みかを判定して処理を選択する必要が無くなり、初期化時と通常時でそれぞれに決まった処理が行われるようになる。
【００７５】
その後、初期化処理を終了したＣＰＵ１０１の制御により、ＩＮＩＴレジスタ１１７のＩＮＩＴ信号を無効にセットする（Ｓ３０３）。これにより、以降発生するｅｖｅｎｔ０〜ｅｖｅｎｔ５が発生するごとに都度、割り込みＩＲＱ０＿ｎ、ＩＲＱ１＿ｎ、ＩＲＱ２＿ｎが活性されるようになる。
【００７６】
その後、割り込み要因クリアレジスタ１１６の全要因ビットをクリアする（Ｓ３０４）。これにより、ｅｖｅｎｔ０〜５の次の割り込みが許可される。これ以降は、ｅｖｅｎｔ０〜５で発生した割り込みは、通常の割り込みとして処理される。
【００７７】
図１０に本発明の通常割り込みルーチンを示す。本発明の通常割り込みルーチンは図２４に示す従来の割り込みルーチンと同様となっている。しかしながら、Ｓ４０４でジャンプする図１１に示す個々のデバイスの割り込みルーチンは、図２５に示す従来の個々のデバイスの割り込みルーチンとは異なり、初期化時の割り込みであるか否かの判定を行う必要が無いので、通常の割り込み動作の処理サイクルを短縮することができる。
［第２の実施形態］
【００７８】
次に、本発明の第２の実施形態を、図を用いて説明する。
【００７９】
第１の実施形態では、図６のＳ１０２で示した、全てのデバイスの初期化タスク起動後に、デバイスに障害が発生し、デバイスの一つでも初期化が完了しなかった場合に、初期化完了フラグが立つことを待ち続けることになり、図６のＳ１０４から先に進まなくなることになる。第２の実施形態は、この問題を回避するものである。デバイスの初期化完了に関する障害が想定されないシステムにおいては、第２の実施形態は必要無い。
【００８０】
はじめに、本発明の第２の実施形態に関わる情報処理システムの構成例を図１２を用いて説明する。
【００８１】
情報処理システム３００は、ＣＰＵ３０１、割り込み制御装置３０２、及びデバイス３０３、３０４、３０５、３０６、３０７、３０８により構成されている。割り込み制御装置３０２は、反転回路３０９、３１０、３１１、４入力論理和・論理積回路３１２、２入力論理和・論理積回路３１３、３１４、割り込み要因レジスタ３１５、割り込み要因クリアレジスタ３１６、ＩＮＩＴレジスタ３１７、Ｌａｔｃｈ回路３１８、３１９、３２０、３２１、３２２、３２３、タイムアウトレジスタ３２７、タイマ３２８により構成されている。
【００８２】
第１の実施形態との相違は、タイムアウトレジスタ３２７とタイマ３２８が追加されている点である。
【００８３】
タイムアウトレジスタ３２７は、第１の実施形態における図６のＳ１０４でデバイスの初期化完了フラグが有効になることを待ち続ける際、規定時間以上待ち続けた場合には、強制的に初期化失敗と判定するための時間を設定するためのレジスタである。ＣＰＵ３０１がタイムアウトレジスタ３２７に値を書き込むと、書き込まれた値と書き込み信号が、タイマ３２８に送られる。
【００８４】
タイマ３２８は、タイムアウトレジスタ３２７に値が書き込まれると、書き込まれた値からタイマ３２８の持つ基準クロックに従いカウントダウンし、値が０になると、ＴＩＭＥ＿ＯＵＴ＿ｎ信号をアクティブにする（この場合Ｌｏｗとなる）。
【００８５】
ＴＩＭＥ＿ＯＵＴ＿ｎ信号は、ＩＮＩＴレジスタ３１７の出力であるＩＮＩＴ信号と論理積がとられており、ＴＩＭＥ＿ＯＵＴ＿ｎ信号がＬｏｗになると、ＩＮＩＴ信号が強制的にＬｏｗとなり、４入力論理和・論理積回路３１２は、ＩＮＩＴ０〜ＩＮＩＴ３のどれか一つでも有効になっている場合にはＣＰＵ３０１に割り込みを通知するようになる。
【００８６】
次に、図１３に、本発明の第２の実施形態に関わる初期化タスクの動作の例をフローチャートにより示す。はじめに、ＣＰＵ３０１は、デバイスの初期化完了フラグと初期化失敗フラグをリセットする（Ｓ６０１）。
【００８７】
次に、ＣＰＵ３０１は、システム上全てのデバイス３０３、３０４、３０５、３０６、３０７、３０８の初期化が終わるであろうことが想定される規定時間よりも長い時間値をタイムアウト値とし、タイムアウト値をタイムアウトレジスタ３２７にセットする（Ｓ６０２）。すなわち、ここで設定されたタイムアウト値の時間以上の時間が経過しても割り込みが活性されない場合は、強制的にタイムアウト時点の状態の割り込みを発生させることになる。
【００８８】
次に、デバイス３０３、３０４、３０５、３０６、３０７、３０８の個数分の初期化タスクを起動する（Ｓ６０３）。
起動完了した時点で、ＣＰＵ３０１は、ＩＲＱ０＿ｎの割り込みのみ許可する（Ｓ６０４）。ここで、ＩＲＱ１＿ｎ、ＩＲＱ２＿ｎの割り込みは許可しない。従って、ＩＲＱ１＿ｎ、ＩＲＱ２＿ｎの割り込みは活性されたとしても無視される。
【００８９】
次に、ＣＰＵ３０１は、初期化失敗フラグが有効になっているか判定し（Ｓ６０５）、有効になっていない場合は、次に、デバイスの初期化完了フラグが有効になったかを判定する（Ｓ６０７）。
【００９０】
初期化失敗フラグが有効にならず、且つ、デバイスの初期化完了フラグが有効にならない場合は、どちらかのフラグが有効になるまでポーリングを繰り返す。
【００９１】
初期化失敗フラグが有効になった場合は、初期化失敗処理を行う（Ｓ６０６）。初期化失敗処理は、システムごとに適宜用意されるべき処理を行うが、例えば、割り込み要因レジスタ３１５を読み出し、完了していないデバイスを判定し、再度、初期化完了していないデバイスに対して初期化処理を行った後にタイムアウトレジスタ３２７に再度タイムアウト値を設定し、割り込みを待つか、そもそも異常と判定し、システム全体を終了させるなどの処理がある。
【００９２】
初期化失敗フラグが有効にならずに、デバイス初期化完了フラグが有効になった場合は、初期化が完了したと判定し、ＩＲＱ１＿ｎ、ＩＲＱ２＿ｎの割り込みを有効にし（Ｓ６０８）、初期化タスクを終了する。
【００９３】
次に、本発明の第２の実施形態の初期化割り込みメインルーチンを、図１４のフローチャートで説明する。
【００９４】
第２の実施形態では、第１の実施形態とは異なり、全ての初期化に関する割り込み要因が活性されてはじめて初期化割り込みが呼び出されるとは限らない。従って、はじめに、ＣＰＵ３０１は、全ての初期化の割り込み要因が活性されているかを、割り込み要因レジスタ３１５を読むことにより判定する（Ｓ７０１）。
【００９５】
ここで、全ての初期化の割り込み要因が活性されていない場合は、初期化失敗と判定し、初期化失敗フラグを有効にセット（Ｓ７０２）し、初期化割り込みメインルーチンを終了する。
【００９６】
全ての初期化の割り込み要因が活性されている場合は、第１の実施形態の図８に示すＳ３０１の初期化割り込みメインルーチンと同様に、ＣＰＵ３０１は、デバイスの初期化完了フラグを有効にセットする（Ｓ７０３）。
【００９７】
その後、ＣＰＵ３０１は、割り込みベクタを通常の割り込み処理のベクタに切り替え（Ｓ７０４）、ＩＮＩＴレジスタ３１７のＩＮＩＴ信号を無効にセットする（Ｓ７０５）。
【００９８】
その後、割り込み要因クリアレジスタ３１６の全要因ビットをクリアする（Ｓ７０６）。
【００９９】
これにより、ｅｖｅｎｔ０〜５の次の割り込みが許可される。これ以降は、ｅｖｅｎｔ０〜５で発生した割り込みは、通常の割り込みとして処理される。
【０１００】
以上の本発明の第１の実施形態、第２の実施形態のようにして、割り込みの回数と割り込みルーチン内での処理のサイクル数を削減することができる。
【０１０１】
具体的には、図２６の状態遷移図に従い、状態の退避（ｓｔ２）の時間をｔＴＳＷ、ｎ番の割り込み処理（ｓｔ３）の時間をｔＥＩＳＲｎ、状態の回復（ｓｔ４）の時間をｔＲＴとすると、従来例では３回の割り込みがあった場合、以下の時間数がかかることになる。
【０１０２】
ｔＴＳＷ＋ｔＥＩＳＲ１＋ｔＲＴ＋ｔＴＳＷ＋ｔＥＩＳＲ２＋ｔＲＴ＋ｔＴＳＷ＋ｔＥＩＳＲ３＋ｔＲＴ
＝３ｔＴＳＷ＋ｔ３ＲＴ＋ｔＥＩＳＲ１＋ｔＥＩＳＲ２＋ｔＥＩＳＲ３
【０１０３】
上記の従来の時間が、本発明では、以下の時間で終了するようになる。
【０１０４】
ｔＴＳＷ＋ｔＥＩＳＲ１‘+ｔＥＩＳＲ２’＋ｔＥＩＳＲ３’＋ｔＲＴ
＝ｔＴＳＷ+ｔＲＴ+ｔＥＩＳＲ１’+ｔＥＩＳＲ２’+ｔＥＩＳＲ３’
【０１０５】
ここで更に、ｔＥＩＳＲ１’、ｔＥＩＳＲ２’、ｔＥＩＳＲ３’は、ｔＥＩＳＲ１、ｔＥＩＳＲ２、ｔＥＩＳＲ３と比較し、初期化割り込みか否かの判定を毎回行わなくとも良いため、
【０１０６】
ｔＥＩＳＲ１’≦ｔＥＩＳＲ１、ｔＥＩＳＲ２’≦ｔＥＩＳＲ２、ｔＥＩＳＲ３’≦ｔＥＩＳＲ３
と言える。
【０１０７】
以上の制御は、近年一般化している情報家電機器、デジタル家電機器を含むプロセッサを使った組み込みシステム全てで活用できる。
【０１０８】
ここではデジタル家電機器の一例として、デジタルＴＶの場合の割り込みを、図１５を使って説明する。図１５は、一般的なデジタルＴＶの構成を示す図である。
【０１０９】
図１５では、チューナ４０３、ＴＳデコーダ４０５、音声デコーダ４０６、画像デコーダ４０９、Ｉ／Ｏ４１４、モデム４１９、グラフィクス系画面描画器４２０には初期化時に割り込みを使用し、さらに、初期化以外の動作でも割り込みを使用する。よって、上記部位の、プロセッサに対しての割り込み回路と割り込み処理ルーチンに本発明を用いることで、初期化時間の短縮が可能となる。
【０１１０】
また、デジタル家電機器の一例として、ＨＤＤレコーダの場合の割り込みを、図１６を使って説明する。図１６は、一般的なＨＤＤ（ハードディスクドライブ）レコーダの構成を示す図である。
【０１１１】
図１６では、アナログチューナ５０４、デジタルチューナ５１６、音声エンコーダ５１０、画像エンコーダ５１１、ＴＳエンコーダ５１２、記録メディアドライブ５１３、ＨＤＤ５１４、バスブリッジ５１５、ＴＳデコーダ５１９、音声デコーダ５２０、画像デコーダ５２１、Ｉ／Ｏ５２８、モデム５３３、グラフィクス系画面描画器５３４には初期化時に割り込みを使用し、さらに、初期化以外の動作でも割り込みを使用する。よって、上記部位の、プロセッサに対しての割り込み回路と割り込み処理ルーチンに本発明を用いることで、初期化時間の短縮が可能となる。
【０１１２】
尚、本発明の割り込み制御装置、割り込み制御方法、プログラムを記憶した記録媒体は、上記した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更を加え得ることは勿論である。
【図面の簡単な説明】
【０１１３】
【図１】本発明に関わる割り込み制御装置を備えた情報処理システムの構成図の一例である。
【図２】本発明に関わる４入力論理和・論理積回路の構成図の一例である。
【図３】本発明に関わる２入力論理和・論理積回路の構成図の一例である。
【図４】本発明の初期化時の割り込みの動作を示すタイミングチャートの一例を示す図である。
【図５】本発明の通常動作時の割り込みの動作を示すタイミングチャートの一例を示す図である。
【図６】本発明に関わる初期化タスクの一例を示すフローチャートである。
【図７】本発明に関わる個々のデバイスの初期化タスクの一例を示すフローチャートである。
【図８】本発明に関わる初期化割り込みルーチンの一例を示すフローチャートである。
【図９】本発明の複数の割り込みベクタと割り込みルーチンを示す図である。
【図１０】本発明に関わる通常割り込みルーチンの一例を示すフローチャートである。
【図１１】本発明に関わる個々のデバイスの割り込みルーチンの一例を示すフローチャートである。
【図１２】本発明の第２の実施形態に関わる割り込み制御装置を備えた情報処理システムの構成図の一例である。
【図１３】本発明の第２の実施形態に関わる初期化タスクの一例を示すフローチャートである。
【図１４】本発明の第２の実施形態に関わる初期化割り込みルーチンの一例を示すフローチャートである。
【図１５】デジタルＴＶの構成を示す図である。
【図１６】ＨＤＤレコーダの構成を示す図である。
【図１７】従来例１の構成を示す構成図の一例である。
【図１８】従来例２の構成を示す構成図の一例である。
【図１９】Ｌａｔｃｈ回路の構成図の一例である。
【図２０】従来の割り込みベクタと割り込みルーチンを示す図である。
【図２１】従来の複数の割り込みベクタと割り込みルーチンを示す図である。
【図２２】従来の割り込み制御装置の動作を示すタイミングチャートの一例を示す図である。
【図２３】従来の初期化タスクの一例を示すフローチャートである。
【図２４】従来の割り込みルーチンの一例を示すフローチャートである。
【図２５】従来の個々のデバイスの割り込みルーチンの一例を示すフローチャートである。
【図２６】割り込み処理に注目した場合の一般的な状態遷移図を示す図である。
【符号の説明】
【０１１４】
１００  情報処理システム
１０１  ＣＰＵ
１０２  割り込み制御装置
１０３、１０４、１０５、１０６、１０７、１０８  デバイス
１０９、１１０、１１１  反転回路
１１２  ４入力論理和・論理積回路
１１３、１１４  ２入力論理和・論理積回路
１１５  割り込み要因レジスタ
１１６  割り込み要因クリアレジスタ
１１７  ＩＮＩＴレジスタ
１１８、１１９、１２０、１２１、１２２、１２３  Ｌａｔｃｈ回路
１２４、１２５、１２６  ｓ端子
２０１、２０２  割り込み処理ルーチン
２０３  割り込みベクタ
３００  情報処理システム
３０１  ＣＰＵ
３０２  割り込み制御装置
３０３、３０４、３０５、３０６、３０７、３０８  デバイス
３０９、３１０、３１１  反転回路
３１２  ４入力論理和・論理積回路
３１３、３１４  ２入力論理和・論理積回路
３１５  割り込み要因レジスタ
３１６  割り込み要因クリアレジスタ
３１７  ＩＮＩＴレジスタ
３１８、３１９、３２０、３２１、３２２、３２３  Ｌａｔｃｈ回路
３２４、３２５、３２６  ｓ端子
３２７  タイムアウトレジスタ
３２８  タイマ
４０１  デジタルテレビ
４０２  アンテナ
４０３  チューナ
４０４  復調器
４０５  ＴＳデコーダ
４０６  音声デコーダ
４０７  Ｄ／Ａコンバータ
４０８  スピーカ
４０９  画像デコーダ
４１０  重畳器
４１１  Ｄ／Ａコンバータ
４１２  モニタ
４１３  リモコン
４１４  Ｉ／Ｏ
４１５  ＮＶＲＡＭ
４１６  ＲＯＭ
４１７  ＲＡＭ
４１８  ＣＰＵ
４１９  モデム
４２０  グラフィクス系画面描画器
４２１  グラフィクス系画面用フレームメモリ
５０１  ＨＤＤレコーダ
５０２  アナログ放送用アンテナ
５０３  デジタル放送用アンテナ
５０４  アナログチューナ
５０５  復調器
５０６  音声用Ａ／Ｄコンバータ
５０７  画像用Ａ／Ｄコンバータ
５０８、５０９  セレクタ
５１０  音声エンコーダ
５１１  画像エンコーダ
５１２  ＴＳエンコーダ
５１３  記録メディアドライブ
５１４  ＨＤＤ
５１５  バスブリッジ
５１６  デジタルチューナ
５１７  復調器
５１８  セレクタ
５１９  ＴＳデコーダ
５２０  音声デコーダ
５２１  画像デコーダ
５２２  音声用Ｄ／Ａコンバータ
５２３  重畳器
５２４  画像用Ｄ／Ａコンバータ
５２５  スピーカ
５２６  モニタ
５２７  リモコン
５２８  Ｉ／Ｏ
５２９  ＮＶＲＡＭ
５３０  ＲＯＭ
５３１  ＲＡＭ
５３２  ＣＰＵ
５３３  モデム
５３４  グラフィクス系画像描画器
５３５  グラフィクス系画像用メモリ
５３６  ストリーム系バス
５３７  ＣＰＵバス
５３８、５３９  セレクタ
６０１  ＣＰＵ
６０２  反転回路
６０３  ２入力論理和回路
６０４  割り込み要因レジスタ
６０５  割り込み要因クリアレジスタ
６０６、６０７  Ｌａｔｃｈ回路
７０１  ＣＰＵ
７０２、７０３、７０４  反転回路
７０５、７０６、７０７  ２入力論理和回路
７０８  割り込み要因レジスタ
７０９  割り込み要因クリアレジスタ
７１０、７１１、７１２、７１３、７１４、７１５  Ｌａｔｃｈ回路
８０１  ｅｎ端子
８０２  ｃｌｒ端子
８０３  ｑ端子
【図１】
2007179132.tif 000006
【図２】
2007179132.tif 000007
【図３】
2007179132.tif 000008
【図４】
2007179132.tif 000009
【図５】
2007179132.tif 000010
【図６】
2007179132.tif 000011
【図７】
2007179132.tif 000012
【図８】
2007179132.tif 000013
【図９】
2007179132.tif 000014
【図１０】
2007179132.tif 000015
【図１１】
2007179132.tif 000016
【図１２】
2007179132.tif 000017
【図１３】
2007179132.tif 000018
【図１４】
2007179132.tif 000019
【図１５】
2007179132.tif 000020
【図１６】
2007179132.tif 000021
【図１７】
2007179132.tif 000022
【図１８】
2007179132.tif 000023
【図１９】
2007179132.tif 000024
【図２０】
2007179132.tif 000025
【図２１】
2007179132.tif 000026
【図２２】
2007179132.tif 000027
【図２３】
2007179132.tif 000028
【図２４】
2007179132.tif 000029
【図２５】
2007179132.tif 000030
【図２６】
2007179132.tif 000031