(57)【要約】【課題】割り込み発生源毎に割り込みマスク解除までの遅延時間を変更可能にして、無駄な割り込みハンドラの起動をなくし、システムのパフォーマンスを向上することができる割り込み制御装置を提供する。【解決手段】割り込み制御装置１は、１以上のデバイスからの割り込み信号を受け付ける割り込み受付部１１と、割り込み受付部１１において受け付けた割り込み信号に対するマスク解除のための信号を、デバイス毎に設定された遅延量だけ遅延させる遅延部１６と、を有する。【選択図】図２
2009301212.tif 000002
【特許請求の範囲】
【請求項１】
１以上のデバイスからの割り込み信号を受け付ける割り込み受付部と、
前記割り込み受付部において受け付けた割り込み信号に対するマスク解除のための信号又は前記受け付けた割り込み信号に基づいてプロセッサへ割り込みを通知するための信号を、前記デバイス毎に設定された遅延量だけ遅延させる遅延部と、
を有することを特徴とする割り込み制御装置。
【請求項２】
前記マスク解除のための信号を出力するマスク解除信号出力部と、
前記遅延量が設定される遅延量設定部と、をさらに有し、
前記遅延部は、前記マスク解除信号出力部からの前記マスク解除のための信号を、前記遅延量設定部からの前記遅延量だけ遅延させるように制御することを特徴とする請求項１に記載の割り込み制御装置。
【請求項３】
前記遅延部は、前記割り込み受付部からの前記割り込み信号に基づいて、前記割り込み信号を出力したデバイスの割り込み要因を読み出し、前記デバイス毎に設定された遅延量だけ遅延させた後に、前記割り込み信号を出力したデバイスの割り込み要因を再度読み出す割り込み要因読み出し部と、
読み出された割り込み要因と、再度読み出された割り込み要因とを比較し、比較結果が一致したか否かを判定する判定部と、を有し、
前記判定部による前記比較結果が一致した場合、前記プロセッサへ割り込みを通知するための信号を出力することを特徴とする請求項１に記載の割り込み制御装置。
【請求項４】
前記デバイス毎に設定された遅延量は、変更可能であることを特徴とする請求項１から請求項３の何れか１項に記載の割り込み制御装置。
【請求項５】
前記遅延量は、前記割り込み要因に応じて変更可能であることを特徴とする請求項３に記載の割り込み制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、割り込み制御装置に関し、特に、マスク解除のための信号又はプロセッサへ割り込みを通知するための信号を遅延させる割り込み制御装置に関する。
【背景技術】
【０００２】
従来より、パーソナルコンピュータ等のキーボード、マウス等のデバイスから割り込み信号を受け付け、プロセッサに割り込みを通知する割り込み制御装置が知られている。この割り込み信号は、所定の割り込み処理が完了するまで、割り込み制御装置に入力され続ける。そのため、割り込み制御装置は、一度、割り込みをプロセッサに通知すると、割り込み信号はマスクされ、何度も割り込みをプロセッサに通知しないようにする。所定の割り込み処理が完了すると、割り込み信号の出力は停止される。その後、割り込み信号のマスクは解除される。
【０００３】
ところが、割り込み信号の出力が停止されるまでのタイミングに何らかの要因により遅延が発生した場合、割り込み信号の出力が停止される前に割り込み信号のマスクが解除されるため、割り込み制御装置は、再び割り込みをプロセッサに通知してしまう。その後、プロセッサが割り込み処理を行うときに、割り込み信号の出力が停止されていると、割り込み要因を判別することができないためspurious interrupt（以下、スプリアス割り込みという）が発生する。
【０００４】
このスプリアス割り込みは、割り込み要因が不明な割り込みのことであり、スプリアス割り込みが発生しても割り込み要因が不明であるためデバイスドライバがデバイスに対して処理を行うことはなく、結果的に無駄な割り込みとなる。
【０００５】
そのため、割り込み信号のマスク解除を遅らせる割り込み制御装置が提案されている（例えば、特許文献１参照）。この提案によれば、マスク信号がマスク解除状態にされると、一定時間経過後にマスク解除する信号を出力し、マスク解除動作を行っている。即ち、割り込みマスク解除命令発行後一定時間経過して、マスク解除動作が行われるようになっている。
【０００６】
しかし、この提案の割り込み制御装置は、割り込みマスク解除までの時間が一定のため、割り込み発生源毎に遅延時間の設定ができないという問題がある。
【特許文献１】特開平４−１８０１２９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
そこで、本発明は、割り込み発生源毎に割り込みマスク解除までの遅延時間を変更可能にして、無駄な割り込みハンドラの起動をなくし、システムのパフォーマンスを向上することができる割り込み制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の一態様によれば、１以上のデバイスからの割り込み信号を受け付ける割り込み受付部と、前記割り込み受付部において受け付けた割り込み信号に対するマスク解除のための信号又は前記受け付けた割り込み信号に基づいてプロセッサへ割り込みを通知するための信号を、前記デバイス毎に設定された遅延量だけ遅延させる遅延部と、を有することを特徴とする割り込み制御装置を提供することができる。
【発明の効果】
【０００９】
本発明の割り込み制御装置によれば、割り込み発生源毎に割り込みマスク解除までの遅延時間を変更可能にして、無駄な割り込みハンドラの起動をなくし、システムのパフォーマンスを向上することができる。
【発明を実施するための最良の形態】
【００１０】
以下、図面を参照して本発明の実施の形態について詳細に説明する。  
（第１の実施の形態）  
まず、図１に基づいて、第１の実施の形態の割り込み制御システムの構成について説明する。図１は、第１の実施の形態に係る割り込み制御システムの構成を説明するためのブロック図である。
【００１１】
図１に示すように、割り込み制御システム１００は、割り込み制御装置１と、プロセッサ２と、メモリ３と、バス４と、複数のデバイス５ａ〜５ｎと、バス４と複数のデバイス５ａ〜５ｎとの間にそれぞれ設けられた複数のインターフェース（以下、I/Fという）６ａ〜６ｎとを有して、１チップの半導体装置として構成されている。
【００１２】
なお、説明を簡単にするために、割り込み制御装置１とプロセッサ２とを別々に示しているが、割り込み制御装置１は、プロセッサ２の機能の一部としてプロセッサ２に内蔵されていてもよい。また、割り込み制御装置１、プロセッサ２、メモリ３、バス４、デバイス５ａ〜５ｎ及びI/F６ａ〜６ｎは、別々のチップにより構成されていてもよい。
【００１３】
メモリ３には、割り込みハンドラ７と、複数のデバイス５ａ〜５ｎのそれぞれに対応する複数のデバイスドライバ８ａ〜８ｎとが格納されている。この割り込みハンドラ７及び複数のデバイスドライバ８ａ〜８ｎは、プロセッサ２により実行されるプログラムである。
【００１４】
デバイス５ａ〜５ｎのそれぞれは、割り込みが発生すると、I/F６ａ〜６ｎ及びバス４を介して、割り込み制御装置１に割り込み信号を出力する。割り込み制御装置１は、割り込み信号が入力されると、バス４を介して、プロセッサ２にその割り込みを通知する。プロセッサ２は、割り込みが通知されると、割り込みハンドラ７を起動した後、割り込みを発生したデバイスに対応するデバイスドライバを起動し、所定の割り込み処理を実行する。
【００１５】
なお、デバイス５ａ〜５ｎのそれぞれは、I/F６ａ〜６ｎ及びバス４を介さずに、２点鎖線９に示すように、直接、割り込み制御装置１に割り込み信号を出力するようにしてもよい。また、割り込み制御装置１は、バス４を介さずに、２点鎖線１０に示すように、直接、プロセッサ２に割り込みを通知するようにしてもよい。
【００１６】
次に、上述した割り込み制御装置１の詳細な構成について説明する。図２は、本実施の形態に係る割り込み制御装置の詳細な構成を説明するためのブロック図である。
【００１７】
割り込み制御装置１は、割り込み受付部１１と、割り込み通知部１２と、デバイス要因記憶部１３と、割り込みマスク設定部１４と、割り込みマスク解除遅延設定部１５と、遅延部１６とを有して構成されている。
【００１８】
割り込み受付部１１には、デバイス５ａ〜５ｎからの割り込み信号が入力される。割り込み受付部１１は、割り込み信号が入力されると、この割り込み信号を割り込み通知部１２及びデバイス要因記憶部１３に出力する。
【００１９】
割り込み通知部１２は、後述する割り込みマスク信号又は割り込みマスク解除信号に基づいて、プロセッサ２に割り込みを通知又は非通知にする処理を行う。割り込み通知部１２は、割り込みマスク信号が入力されている場合、割り込みを非通知にし、割り込みマスク解除信号が入力されている場合、割り込みを通知する。
【００２０】
デバイス要因記憶部１３は、割り込み受付部１１からの割り込み信号、即ち、割り込み要因を記憶する。この記憶された要因は、プロセッサ２により読み出される。
【００２１】
割り込みマスク設定部１４は、プロセッサ２からの指示に基づいて、割り込みマスク信号又は割り込みマスク解除信号を、後述する遅延部１６を介して、割り込み通知部１２に出力する。即ち、割り込みマスク設定部１４は、割り込みのマスク解除のための信号を出力するマスク解除信号出力部を構成する。
【００２２】
割り込みマスク解除遅延設定部１５には、プロセッサ２からデバイス毎のマスク解除遅延時間が設定される。即ち、割り込みマスク解除遅延設定部１５は、マスク解除までの遅延量が設定される遅延量設定部を構成する。割り込みマスク解除遅延設定部１５は、このマスク解除遅延時間を遅延部１６に出力する。
【００２３】
遅延部１６は、遅延回路により構成され、割り込みマスク解除遅延設定部１５からのマスク解除遅延時間に基づいて、割り込みマスク設定部１４からの割り込みマスク解除信号を遅延させる。遅延部１６は、この遅延させた割り込みマスク解除信号を割り込み通知部１２に出力する。
【００２４】
ここで、割り込みマスク解除遅延設定部１５に設定されるマスク解除遅延時間について説明する。図３は、割り込みマスク解除遅延設定部に設定されるマスク解除遅延時間の例について説明するための説明図である。
【００２５】
図３に示すように、割り込みマスク解除遅延設定部１５には、デバイス５ａ〜５ｎのそれぞれに対応したマスク解除遅延時間がプロセッサ２により設定される。図３の例では、デバイス５ａには、２msecのマスク解除遅延時間が設定され、デバイス５ｂには、１msecのマスク解除遅延時間が設定されている。
【００２６】
このように、割り込みマスク解除遅延設定部１５には、割り込み発生源毎、即ち、デバイス毎にマスク解除遅延時間が設定でき、このマスク解除遅延時間は変更可能になっている。なお、割り込みマスク解除遅延設定部１５には、割り込み要因毎にマスク解除遅延時間を設定してもよい。つまり、本実施の形態では、リアルタイム性が要求されるデバイス、例えば、飛行機の自動操縦中に発生するエラーによる割り込み信号に対しては、後述するスプリアス割り込みの発生の確率が上がったとしても、他の割り込みを受け付けるために、マスク遅延時間を小さく設定する。逆に、リアルタイム性が要求されないデバイス、例えば、キーボードのキー入力による割り込み信号に対しては、遅延時間を大きく設定して、後述するスプリアス割り込みが発生しないようにすることができる。
【００２７】
次に、このように構成される実施の形態の動作について説明する。
【００２８】
まず、図４に基づいて、通常の割り込み処理の流れについて説明する。図４は、通常の割り込み処理の流れの例を説明するための説明図である。なお、以下の説明では、デバイス５ａから割り込みが発生した場合を例に説明する。
【００２９】
デバイス５ａは、割り込みが発生すると、割り込み信号を割り込み制御装置１に出力する（矢印３１）。この割り込み信号は、割り込み受付部１１に入力された後、割り込み通知部１２及びデバイス要因記憶部１３に出力される。割り込み制御装置１は、割り込み信号が入力されると、割り込み通知部１２を介して割り込みをプロセッサ２に通知する（矢印３２）。プロセッサ２は、割り込みが通知されると、割り込みハンドラ７を起動する（矢印３３）。
【００３０】
割り込みハンドラ７は、割り込み制御装置１の割り込みマスク設定部１４に割り込みをマスクするための信号を出力する。割り込みマスク設定部１４から割り込みマスク信号が割り込み通知部１２に出力されことにより、割り込みのマスクが設定される（矢印３４）。次に、割り込みハンドラ７は、デバイス要因記憶部１３から割り込みの発生源の情報を取得し（矢印３５）、割り込みの発生源を特定する（矢印３６）。割り込みハンドラ７は、割り込み発生源を特定すると、割り込みの発生源、即ち、デバイス５ａに対応したデバイスドライバ８ａを起動する（矢印３７）。
【００３１】
デバイスドライバ８ａは、デバイス５ａから割り込み要因を特定し、デバイス５ａに対し割り込み要因に対応した処理を行い（矢印３８）、処理の完了を割り込みハンドラ７に通知する（矢印３９）。デバイス５ａは、割り込み要因に対応した処理が完了すると、割り込み信号の出力を停止する（矢印４０）。その後、割り込みハンドラ７は、割り込みのマスクを解除するための信号を割り込み制御装置１の割り込みマスク設定部１４に出力する。割り込みマスク設定部１４から割り込みマスク解除信号が割り込み通知部１２に出力されことにより、割り込みのマスクが解除される（矢印４１）。
【００３２】
以上のように、通常の割り込み処理では、割り込み信号の出力を停止した後に、割り込みマスクの解除が行われる。このような通常の割り込み処理では、スプリアス割り込みが発生することはない。
【００３３】
ここで、このような通常の割り込み処理では、スプリアス割り込みが発生しないが、スプリアス割り込みが発生する場合の割り込み処理の流れについて説明する。図５は、スプリアス割り込みが発生する場合の割り込み処理の流れの例を説明するための説明図である。矢印３９までは、図４と同様のため説明を省略する。
【００３４】
矢印３８に示すデバイスに対して処理を行う時点から、図４の矢印４０に示す割り込み信号の出力を停止するまでに、何らかの要因により遅延が発生した場合、スプリアス割り込みが発生することがある。矢印４０ａに示すように、何らかの要因により割り込み信号の出力を停止するまでに遅延が発生した場合、矢印４１に示す割り込みマスクが解除された後も、割り込み信号が割り込み制御装置１に入力されている状態となる。割り込みマスクが解除されたため、割り込み制御装置１は、割り込み信号を受け付け、再び割り込みをプロセッサ２に通知する（矢印４２）。その後、矢印４３〜矢印４６に示す通常の割り込み処理が行われるが、割り込みハンドラ７が割り込みの発生源を取得する時点において、既に割り込み信号の出力が停止されている場合、割り込みハンドラ７は、割り込みの発生源を取得することができない。このため、割り込みハンドラ７は、割り込み発生源を特定することができなくなり、スプリアス割り込みが発生する。
【００３５】
なお、デバイスドライバ８ａが、デバイス５ａに対して処理を行う時点から、デバイス５ａが、割り込み信号の出力を停止するまでの遅延の要因としては、デバイスドライバ８ａからデバイス５ａまでのデータ伝達経路による遅延、あるいは、デバイス５ａの内部処理による遅延などが考えられるが、遅延の要因については、本実施の形態では問題としない。
【００３６】
従来では、スプリアス割り込みの発生を防ぐことができず、スプリアス割り込みの発生は無駄な割り込みハンドラ７の起動を引き起こし、システムのパフォーマンスの低下の原因となる。具体的には、図５の矢印４２に示す割り込みを通知するから、矢印４６に示す割り込み発生源を特定するまでの処理が、無駄となっている。
【００３７】
本実施の形態では、割り込みマスク解除遅延設定部１５に割り込みマスク解除遅延を設定し、遅延部１６により実際のマスク解除を遅らせるようにしている。これにより、デバイスに対して処理を行う時点から、割り込み信号の出力を停止するまでに、何らかの要因により遅延が発生した場合でも、スプリアス割り込みの発生を防ぐことができるようにしている。
【００３８】
図６は、本実施の形態の割り込み処理の流れの例を説明するための説明図である。
【００３９】
デバイスドライバ８ａが、デバイス５ａに対して処理を行い、処理完了を割り込みハンドラ７に通知する。割り込みハンドラ７は、処理完了の通知を受け取ると、割り込みマスク解除遅延の設定を割り込みマスク解除遅延設定部１５に行う（矢印４７）。割り込みマスク解除遅延設定部１５は、マスク解除遅延時間を遅延部１６に出力する。遅延部１６には、割り込みマスク設定部１４から割り込みマスク解除信号が入力される。この割り込みマスク解除信号は、マスク解除遅延時間だけ割り込みマスクの解除が遅延され（矢印４８）、割り込み通知部１２に出力される。
【００４０】
以上のように、割り込み制御装置１は、マスク解除遅延設定部１５にデバイス毎に設定されるマスク解除遅延時間に基づいて、遅延部１６おいてマスク解除信号の出力を遅延させ、実際のマスク解除を遅延させるようにした。この結果、デバイスドライバがデバイスに対して処理を行う時点から、デバイスが割り込み信号の出力を停止するまでに遅延がある場合でも、スプリアス割り込みの発生を防ぐことができる。
【００４１】
よって、本実施の形態の割り込み制御装置によれば、割り込み発生源毎に割り込みマスク解除までの遅延時間を変更可能にして、無駄な割り込みハンドラの起動をなくし、システムのパフォーマンスを向上することができる。
【００４２】
（第２の実施の形態）
デバイスから割り込み信号が入力され、割り込みハンドラを起動して割り込み要因を特定するまで前に、何らかの原因により割り込み信号の出力が停止されると、割り込み要因が分からなくなり、スプリアス割り込みが発生する場合もある。第２の実施の形態では、このようなスプリアス割り込みの発生を防ぐことができる割り込み制御装置について説明する。
【００４３】
図７は、第２の実施の形態に係る割り込み制御装置の構成を説明するためのブロック図である。なお、本実施の形態の割り込み制御システムの構成は、図１と同様のため説明を省略する。
【００４４】
本実施の形態の割り込み制御装置１ａは、図２の割り込み制御装置１から割り込みマスク解除遅延設定部１５及び遅延部１６を省き、遅延量設定部２１と、デバイス要因レジスタアドレス２２と、割り込み要因読み出し部２３と、割り込み要因記憶部２４ａ、２４ｂと、判定部２５とが追加されて構成されている。また、本実施の形態の割り込み制御装置１ａは、図２の割り込み通知部１２に代わり、割り込み通知部１２ａを用いて構成されている。
【００４５】
遅延量設定部２１には、プロセッサ２によりデバイス毎に後述する要因レジスタを読み出す遅延時間が設定され、この遅延時間は変更可能になっている。なお、遅延量設定部２１には、割り込み要因毎に後述する要因レジスタを読み出す遅延時間を設定してもよい。遅延量設定部２１は、この設定されたデバイス毎の遅延時間を割り込み要因読み出し部２３に出力する。
【００４６】
デバイス要因レジスタアドレス２２には、プロセッサ２からデバイス毎の要因レジスタのアドレスが設定される。デバイス要因レジスタアドレス２２は、この設定されたデバイス毎の要因レジスタのアドレスを割り込み要因読み出し部２３に出力する。
【００４７】
割り込み要因読み出し部２３は、割り込み受付部１１から割り込み信号が入力されると、デバイス毎の要因レジスタのアドレスに基づいて、割り込み信号を出力したデバイスの要因レジスタを読み出し、読み出した割り込み要因を割り込み要因記憶部２４ａに書き込む。
【００４８】
割り込み要因読み出し部２３は、カウンタを使用してそのデバイス用の遅延時間だけ待つ。割り込み要因読み出し部２３は、遅延時間だけ待った後、再度、割り込み信号を出力したデバイスの割り込み要因レジスタを読み出し、読み出した割り込み要因を割り込み要因記憶部２４ｂに書き込む。
【００４９】
割り込み要因記憶部２４ａは、後述する３２ビットレジスタを有しており、割り込み要因読み出し部２３によって読み出された割り込み要因を記憶する。割り込み要因記憶部２４ａは、この記憶した割り込み要因を判定部２５に出力する。
【００５０】
同様に、割り込み要因記憶部２４ｂは、後述する３２ビットレジスタを有しており、割り込み要因読み出し部２３によって、所定の時間遅延した後、再度、読み出された割り込み要因を記憶する。割り込み要因記憶部２４ｂは、この記憶した割り込み要因を判定部２５に出力する。
【００５１】
判定部２５は、割り込み要因記憶部２４ａ、２４ｂのそれぞれから入力された値のビット毎の比較を行い、比較結果が一致したか否かを判定する。即ち、判定部２５は、割り込み要因記憶部２４ａ及び２４ｂに記憶された割り込み要因が一致したか否かを判定している。判定部２５は、比較結果が一致したか否かを示す制御信号を割り込み通知部１２ａに出力する。
【００５２】
割り込み通知部１２ａは、この制御信号に基づいて、割り込みをプロセッサ２に通知するか否かを決定する。割り込み通知部１２ａは、比較結果が一致したことを示す制御信号が入力された場合、割り込みをプロセッサ２に通知し、比較結果が一致しないことを示す制御信号が入力された場合、割り込みをプロセッサ２に通知しない。
【００５３】
このように、割り込み要因読み出し部２３によって読み出された割り込み要因が割り込み要因記憶部２４ａに記憶され、所定の時間遅延した後、再度、読み出された割り込み要因が割り込み要因記憶部２４ｂに記憶される。判定部２５において割り込み要因記憶部２４ａ及び２４ｂに記憶された割り込み要因が一致したと判定された場合、割り込みがプロセッサ２に通知される。よって、割り込みは、所定の時間遅延されプロセッサ２に通知されるようになっている。即ち、割り込み要因読み出し部２３、割り込み要因記憶部２４ａ、２４ｂ及び判定部２５により、割り込みを所定の時間遅延させプロセッサに通知する遅延部が構成される。
【００５４】
図８は、割り込み要因記憶部２４ａの構成を説明するための説明図である。割り込み要因記憶部２４ａは、各デバイス５ａ〜５ｎに対応する３２ビットレジスタを有している。割り込み要因読み出し部２３により読み出された割り込み要因が、この３２ビットレジスタに３２ビットデータとして記憶される。例えば、デバイス５ａがハードディスクドライブ（以下、HDDという）の場合、デバイス５ａに対応する３２ビットレジスタの３２ビットの各ビットは、このHDDからの各割り込み要因に対応する。例えば、この３２ビットレジスタの最下位ビットが１の場合、HDDからのリード終了の割り込み要因を示し、２ビット目が１の場合、HDDからのライト終了の割り込み要因を示し、３ビット目が１の場合、HDDからのエラーの割り込み要因を示している。
【００５５】
同様に、割り込み要因記憶部２４ｂは、各デバイス５ａ〜５ｎに対応する３２ビットレジスタを有している。割り込み要因読み出し部２３により、所定の時間遅延した後、再度、読み出された割り込み要因が、この３２ビットレジスタに３２ビットデータとして記憶される。
【００５６】
なお、割り込み要因記憶部２４ａ及び２４ｂのそれぞれは、３２ビットレジスタとして説明したが、これに限定されることなく、３２ビット以外のビット幅のレジスタでもよい。
【００５７】
次に、このように構成された実施の形態の動作について説明する。  
図９は、本実施の形態の割り込み処理の流れの例を説明するための説明図である。なお、第１の実施の形態と同様に、以下の説明では、デバイス５ａから割り込みが発生した場合を例に説明する。また、図９において図４と同一の処理については、同一の符号を付して説明を省略する。
【００５８】
デバイス５ａは、割り込みが発生すると、割り込み信号を割り込み制御装置１ａに出力する。この割り込み信号は、割り込み受付部１１に入力された後、割り込み通知部１２ａ、デバイス要因記憶部１３及び割り込み要因読み出し部２３に出力される。
【００５９】
割り込み要因読み出し部２３に割り込み信号が入力されると、デバイス要因レジスタアドレスからのアドレス情報に基づいて、デバイス５ａの要因レジスタが読み出される（矢印４９）。読み出された割り込み要因は、割り込み要因記憶部２４ａに記憶される。
【００６０】
割り込み要因読み出し部２３では、遅延量設定部２１からの遅延時間に基づいて、再度、デバイス５ａの要因レジスタが読み出される（矢印５０）。読み出された割り込み要因は、割り込み要因記憶部２４ｂに記憶される。
【００６１】
割り込み要因記憶部２４ａ、２４ｂのそれぞれに記憶された割り込み要因は、判定部２５に出力され、比較される。判定部２５では、比較結果に基づいた制御信号が割り込み通知部１２ａに出力される。
【００６２】
割り込み通知部１２ａでは、制御信号に基づいて、割り込みをプロセッサ２に通知するか否かが決定される。判定部２５での比較結果が一致した場合、割り込み通知部１２ａは、割り込みをプロセッサ２に通知する（矢印５１）。割り込みがプロセッサ２に通知されると、通常の割り込み処理が実行される。
【００６３】
ここで、矢印４０ａに示すように、何らかの要因により割り込み信号の出力を停止するまでに遅延が発生した場合、即ち、割り込みのマスクの解除後に割り込み信号が、割り込み制御装置１に入力された場合、割り込み要因読み出し部２３により、デバイス５ａの要因レジスタが読み出される（矢印５２）。読み出された割り込み要因は、割り込み要因記憶部２４ａに記憶される。
【００６４】
次に、遅延量設定部２１からの遅延時間に基づいて、再度、割り込み要因読み出し部２３により、デバイス５ａの要因レジスタが読み出される（矢印５３）。読み出された割り込み要因は、割り込み要因記憶部２４ｂに記憶される。
【００６５】
矢印５２の要因レジスタを読み出されてから、矢印５３の再度、要因レジスタが読み出されるまでに、割り込み信号の出力が停止された場合、割り込み要因記憶部２４ａ、２４ｂのそれぞれに記憶された割り込み要因が一致しないため、判定部２５での比較結果は、一致しない。判定部２５での比較結果が一致しない場合、割り込み通知部１２ａは、割り込みをプロセッサ２に通知しない。
【００６６】
以上のように、割り込み要因読み出し部２３は、デバイスの割り込み要因を読み出した後、遅延量設定部２１に設定された遅延時間に基づいて、再度、デバイスの割り込み要因を読み出すようにした。割り込み制御装置１ａは、読み出された割り込み要因が一致した場合、プロセッサ２に割り込みを通知し、読み出された割り込み要因が一致しない場合、プロセッサ２に割り込みを通知しない。即ち、割り込み制御装置１ａは、遅延量設定部２１に設定された遅延時間だけ、プロセッサ２に割り込みが通知されることを遅らせるようにした。この結果、不要な割り込みがプロセッサ２に通知されることを抑制し、スプリアス割り込みの発生を防ぐことができる。
【００６７】
また、割り込み制御装置１ａは、割り込み発生時点でのデバイスの割り込み要因を割り込み要因読み出し部２３により読み出し、割り込み要因記憶部２４ａ及び２４ｂに保持するようにした。デバイスハンドラでの割り込み要因を特定するときに、割り込み要因が分からなくなった場合、プロセッサ２は、割り込み要因記憶部２４ａ及び２４ｂに保持された割り込み要因を読み出す。この結果、デバイスハンドラでの割り込み要因を特定するときに、割り込み要因が分からなくなることを防ぎ、スプリアス割り込みの発生を防ぐことができる。
【００６８】
本発明は、上述した実施の形態に限定されるものではなく、本発明の要旨を変えない範囲において、種々の変更、改変等が可能である。
【図面の簡単な説明】
【００６９】
【図１】第１の実施の形態に係る割り込み制御装置の全体構成を説明するためのブロック図である。
【図２】第１の実施の形態に係る割り込み制御装置の詳細構成を説明するためのブロック図である。
【図３】割り込みマスク解除遅延設定部に設定されるマスク解除遅延時間の例について説明するための説明図である。
【図４】通常の割り込み処理の流れの例を説明するための説明図である。
【図５】スプリアス割り込みが発生する場合の割り込み処理の流れの例を説明するための説明図である。
【図６】第１の実施の形態の割り込み処理の流れの例を説明するための説明図である。
【図７】第２の実施の形態に係る割り込み制御装置の詳細構成を説明するためのブロック図である。
【図８】割り込み要因記憶部の構成を説明するための説明図である。
【図９】第２の実施の形態の割り込み処理の流れの例を説明するための説明図である。
【符号の説明】
【００７０】
１，１ａ  割り込み制御装置、２  プロセッサ、３  メモリ、４  バス、５ａ〜５ｎ  デバイス、６ａ〜６ｎ  I/F、７  割り込みハンドラ、８ａ〜８ｎ  デバイスドライバ、１１  割り込み受付部、１２，１２ａ  割り込み通知部、１３  デバイス要因記憶部、１４  割り込みマスク設定部、１５  割り込みマスク解除遅延設定部、１６  遅延部、２１  遅延量設定部、２２  デバイス要因レジスタアドレス、２３  割り込み要因読み出し部、２４ａ，２４ｂ  割り込み要因記憶部、２５  判定部
【図１】
2009301212.tif 000003
【図２】
2009301212.tif 000004
【図３】
2009301212.tif 000005
【図４】
2009301212.tif 000006
【図５】
2009301212.tif 000007
【図６】
2009301212.tif 000008
【図７】
2009301212.tif 000009
【図８】
2009301212.tif 000010
【図９】
2009301212.tif 000011