(57)【特許請求の範囲】
【請求項１】
プロセッサーと、
少なくとも２つの割込処理に対応する割込信号を検出した場合、前記少なくとも２つの割込処理を１つずつ順番に選択し、選択した割込処理に対応する割込要求を前記プロセッサーに発行する割込コントローラーとを備え、
前記割込コントローラーは、前記少なくとも２つの割込処理のうちの第１割込処理の、割込信号検出から割込処理開始までの処理開始時間と開始要求時間との差より、前記少なくとも２つの割込処理のうちの第２割込処理の、割込信号検出から割込処理終了までの所要時間が短い場合、前記第２割込処理を前記第１割込処理より先に選択すること、
を特徴とする情報処理装置。
【請求項２】
前記割込コントローラーは、前記少なくとも２つの割込処理のうち、優先度の最も高い割込処理の処理開始時間と前記開始要求時間との差より所要時間が短い低優先度の割込処理がある場合、前記低優先度の割込処理を前記優先度の最も高い割込処理より先に選択し、優先度の最も高い割込処理の処理開始時間と前記開始要求時間との差より所要時間が短い低優先度の割込処理がない場合、前記優先度の最も高い割込処理を前記低優先度の割込処理より先に選択することを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記割込コントローラーは、前記割込信号を検出すると前記プロセッサーに通知し、
前記プロセッサーは、前記割込信号の検出の通知から前記処理開始時間と前記所要時間を計測し、前記処理開始時間のデータと前記所要時間のデータを所定の記憶装置に記憶しておき、次回のその割込処理の登録時に、前記処理開始時間および前記所要時間のデータを前記記憶装置から読み出して、前記開始要求時間と前記処理開始時間との差であるマージン時間を計算し、前記マージン時間と前記所要時間とを前記割込コントローラーへ通知し、
前記割込コントローラーは、前記プロセッサーから通知された前記マージン時間および前記所要時間に基づく順番で割込処理を選択すること、
を特徴とする請求項１記載の情報処理装置。
【請求項４】
前記割込コントローラーは、前記割込信号を検出すると前記プロセッサーに通知し、
前記プロセッサーは、前記割込信号の検出の通知から前記処理開始時間と前記所要時間を計測し、前記処理開始時間のデータと前記所要時間のデータを所定の記憶装置に記憶しておき、次回のその割込処理の登録時に、前記処理開始時間および前記所要時間のデータを前記記憶装置から読み出して、前記処理開始時間および前記所要時間と前記開始要求時間とを前記割込コントローラーへ通知し、
前記割込コントローラーは、前記プロセッサーから通知された前記開始要求時間、前記処理開始時間、および前記所要時間に基づく順番で割込処理を選択すること、
を特徴とする請求項１記載の情報処理装置。
【請求項５】
前記開始要求時間は、前記割込処理を登録する割込ハンドラーにより設定されることを特徴とする請求項１から請求項４のうちのいずれか１項記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置に関するものである。
【背景技術】
【０００２】
コンピューターといった情報処理装置では、ＣＰＵ（Central Processing Unit）に、割込コントローラーが接続されており、割込コントローラーは、複数のチャネルから割込信号を受付可能であって、割込信号を検出すると、割込信号を検出したチャネルについて割込要求をＣＰＵに発行し、ＣＰＵは、そのチャネルに割り当てられている割込処理を実行する。
【０００３】
このような割込コントローラーにおいて、複数のチャネルにおいて同時に割込信号が検出された場合、ＣＰＵにより指定された優先度に基づいて、チャネルつまり割込処理が選択される技術がある（例えば特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００７−１７２０３０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述の技術では、ＣＰＵが固定の優先度を静的に割込コントローラーに与えるため、実際の割込発生時に、要求されたスケジュールどおりに実行されるように適切な順番で割込処理が実行されない可能性がある。
【０００６】
特に、エンべデッドシステムでは、割込ハンドラーの処理実行（つまり、割込処理の実行）にリアルタイム性が強く要求される。このため、上述の技術のように、割込処理の優先度を割込コントローラーに指定するなどして、割込信号検出から割込ハンドラーの処理開始までの即応性を高めようとしている。しかし、ある机上の方針で優先度を固定的に割込コントローラーにセットしても、実際の動作では種々の要因からその方針どおりとならないこともある。
【０００７】
本発明は、上記の問題に鑑みてなされたものであり、要求されたスケジュールどおりになるように、適切な順番で割込処理が実行される情報処理装置を得ることを目的とする。
【課題を解決するための手段】
【０００８】
上記の課題を解決するために、本発明では以下のようにした。
【０００９】
本発明に係る情報処理装置は、プロセッサーと、少なくとも２つの割込処理に対応する割込信号を検出した場合、少なくとも２つの割込処理を１つずつ順番に選択し、選択した割込処理に対応する割込要求をプロセッサーに発行する割込コントローラーとを備える。そして、割込コントローラーは、少なくとも２つの割込処理のうちの第１割込処理の処理開始時間（割込信号検出から割込処理開始までの時間）と開始要求時間との差より、少なくとも２つの割込処理のうちの第２割込処理の所要時間（割込信号検出から割込処理終了までの時間）が短い場合、第２割込処理を第１割込処理より先に選択する。
【００１０】
これにより、第１割込処理の実行スケジュールに余裕がある場合には、第２割込処理が先に実行されるため、すべての割込処理がスケジュールどおりに実行されやすくなる。したがって、要求されたスケジュールどおりになるように、適切な順番で割込処理が実行される。
【００１１】
また、本発明に係る情報処理装置は、上記の情報処理装置に加え、次のようにしてもよい。この場合、割込コントローラーは、優先度の最も高い割込処理の処理開始時間と開始要求時間との差より所要時間が短い低優先度の割込処理がある場合、低優先度の割込処理を優先度の最も高い割込処理より先に選択し、優先度の最も高い割込処理の処理開始時間と開始要求時間との差より所要時間が短い低優先度の割込処理がない場合、優先度の最も高い割込処理を低優先度の割込処理より先に選択する。
【００１２】
これにより、優先度の高い割込処理の実行スケジュールに余裕がある場合には、優先度の低い割込処理が先に実行されるため、予めセットされている優先度に拘わらず、すべての割込処理がスケジュールどおりに実行されやすくなる。したがって、要求されたスケジュールどおりになるように、適切な順番で割込処理が実行される。
【００１３】
また、本発明に係る情報処理装置は、上記の情報処理装置のいずれかに加え、次のようにしてもよい。この場合、割込コントローラーは、割込信号を検出するとプロセッサーに通知する。プロセッサーは、割込信号の検出の通知から処理開始時間と所要時間を計測し、処理開始時間のデータと所要時間のデータを所定の記憶装置に記憶しておき、次回のその割込処理の登録時に、処理開始時間および所要時間のデータを記憶装置から読み出して、開始要求時間と処理開始時間との差であるマージン時間を計算し、マージン時間と所要時間とを割込コントローラーへ通知する。割込コントローラーは、プロセッサーから通知されたマージン時間および所要時間に基づく順番で割込処理を選択する。
【００１４】
また、本発明に係る情報処理装置は、上記の情報処理装置のいずれかに加え、次のようにしてもよい。この場合、割込コントローラーは、割込信号を検出するとプロセッサーに通知する。プロセッサーは、割込信号の検出の通知から処理開始時間と所要時間を計測し、処理開始時間のデータと所要時間のデータを所定の記憶装置に記憶しておき、次回のその割込処理の登録時に、処理開始時間および所要時間のデータを記憶装置から読み出して、処理開始時間および所要時間と開始要求時間とを割込コントローラーへ通知する。割込コントローラーは、プロセッサーから通知された開始要求時間、処理開始時間、および所要時間に基づく順番で割込処理を選択する。
【００１５】
また、本発明に係る情報処理装置は、上記の情報処理装置のいずれかに加え、次のようにしてもよい。この場合、開始要求時間は、割込処理を登録する割込ハンドラーにより設定される。
【発明の効果】
【００１６】
本発明によれば、情報処理装置において、要求されたスケジュールどおりになるように、適切な順番で割込処理が実行される。
【図面の簡単な説明】
【００１７】
【図１】図１は、本発明の実施の形態に係る情報処理装置の構成を示すブロック図である。
【図２】図２は、図１におけるＣＰＵの割込エントリー時の処理について説明するフローチャートである。
【図３】図３は、図１における割込コントローラーの動作を説明するフローチャートである。
【図４】図４は、図３における割込順番の決定（ステップＳ１５）の詳細を説明するフローチャートである。
【図５】図５は、図１におけるＣＰＵの割込検出時の処理について説明するフローチャートである。
【発明を実施するための形態】
【００１８】
以下、図に基づいて本発明の実施の形態を説明する。
【００１９】
図１は、本発明の実施の形態に係る情報処理装置の構成を示すブロック図である。図１において、ＣＰＵ１は、割込要求を受付可能なプロセッサーである。割込コントローラー２は、ＣＰＵ１に接続されており、複数の割込処理のうち、少なくとも２つの割込処理に対応する割込信号を検出した場合、少なくとも２つの割込信号を１つずつ順番に選択し、選択した割込信号に対応する割込要求をＣＰＵ１に発行する。
【００２０】
ＣＰＵ１は、各種プログラムを実行し、ハンドラー管理部１１、計時部１２、および通知部１３を実現する。
【００２１】
ハンドラー管理部１１は、割込ハンドラーの登録、割込要求の受け付けなどを行う処理部である。割込ハンドラーの登録では、割込ハンドラーによりチャネル（つまり、ＩＲＱ番号）および開始要求時間が指定され、チャネル（ＩＲＱ番号）とその割込ハンドラーのルーチンが登録される。また、割込コントローラー２から割込要求を受け付けると、ハンドラー管理部１１は、割込要求で指定されたチャネル（ＩＲＱ番号）に対応して登録されている割込ハンドラーのルーチンを実行させる。
【００２２】
計時部１２は、ある割込処理（つまり、あるＩＲＱ（Interrupt ReQuest）番号）について割込信号が検出されてからその割込処理が開始されるまで（つまり割込ハンドラーのルーチン呼び出しまで）の処理開始時間、および割込信号検出からその割込処理実行終了までの所要時間を計測する処理部である。計測された処理開始時間および所要時間は、割込処理ごとに（つまりＩＲＱ番号ごとに）処理時間データ３１として記憶装置３に記憶される。なお、記憶装置３は、揮発性または不揮発性の半導体メモリ、ハードディスクなどの装置である。
【００２３】
通知部１３は、ハンドラー管理部１１による割込処理の登録時に、その割込処理の処理時間データ３１を記憶装置３から読み出して、割込ハンドラーにより指定された開始要求時間と、その処理開始時間との差であるマージン時間を計算し、マージン時間と所要時間とを割込コントローラー２へ通知する処理部である。
【００２４】
割込コントローラー２は、割込要因選択回路２１、割込要求生成回路２２および制御回路２３を有する回路である。
【００２５】
割込要因選択回路２１は、周期的に、所定の複数のチャネル（つまり、ＩＲＱ番号）をスキャンし、各チャンネルで割込信号が検出されるか否かを判定し、１回のスキャンで１つのチャネルにおいて割込信号が検出された場合、割込信号が検出されたチャネルを割込要求生成回路２２に通知し、１回のスキャンで複数のチャネルにおいて割込信号が検出された場合、制御回路２３により決定された順番で、割込信号が検出されたチャネルを割込要求生成回路２２に通知する。また、割込要因選択回路２１は、１つのチャネルで割込信号が検出された場合、割込信号が検出された時点で、割込信号が検出されたチャネル（つまり、ＩＲＱ番号）をＣＰＵ１に通知する。
【００２６】
割込要求生成回路２２は、割込要因選択回路２１から通知されたチャネルの順番で、割込要求を生成しＣＰＵ１に対して発行する。複数のチャネルで割込信号が検出された場合、割込要求生成回路２２は、１つの割込処理の完了の通知をＣＰＵ１から受信すると、次の割込要求をＣＰＵ１へ発行する。
【００２７】
制御回路２３は、ＣＰＵ１において登録された割込処理のチャネルと、その割込処理についての優先度、マージン時間および所要時間の情報とをＣＰＵ１の通知部１３から受信して保持し、割込要因選択回路２１により複数のチャネルで割込信号が検出された場合に、割込信号が検出された複数のチャネルの割込処理のうち、優先度の最も高い割込処理のマージン時間より所要時間が短い低優先度の割込処理がある場合、低優先度の割込処理を優先度の最も高い割込処理より先の順番とし、優先度の最も高い割込処理のマージン時間より所要時間が短い低優先度の割込処理がない場合、優先度の最も高い割込処理を低優先度の割込処理より先の順番とする。
【００２８】
次に、上記情報処理装置の動作について説明する。
【００２９】
（ａ）割込ハンドラー登録時の動作
【００３０】
図２は、図１におけるＣＰＵ１の割込エントリー時の処理について説明するフローチャートである。
【００３１】
ハンドラー管理部１１は、割込ハンドラーによる割込エントリーを受け付けると（ステップＳ１）、その割込エントリーから、チャネル（ＩＲＱ番号）、優先度、および開始要求時間を特定する。
【００３２】
そして、通知部１３は、その割込ハンドラーについての処理時間データ３１を記憶装置３から読み出して、特定された開始要求時間と、処理時間データ３１内の処理開始時間との差であるマージン時間を計算し（ステップＳ２）、計算したマージン時間と、処理時間データ３１内の所要時間とを、そのチャネル（ＩＲＱ番号）および優先度とともに割込コントローラー２へ通知する。
【００３３】
割込コントローラー２では、制御回路２３が、チャネル（ＩＲＱ番号）とマージン時間と所要時間とを受信し保持する。
【００３４】
なお、その割込ハンドラーが１回も実行されていない場合には、その割込ハンドラーについての処理時間データ３１が存在しないため通知されない。制御回路２３は、割込信号が検出された複数のチャネルのうちのいずれかについてのマージン時間と所要時間のデータがない場合には、マージン時間と所要時間のデータを考慮せずに、優先度だけで、割込処理の順番を決定する。
【００３５】
（ｂ）割込検出時の動作
【００３６】
図３は、図１における割込コントローラー２の動作を説明するフローチャートである。図４は、図３における割込順番の決定（ステップＳ１５）の詳細を説明するフローチャートである。図５は、図１におけるＣＰＵ１の割込検出時の処理について説明するフローチャートである。
【００３７】
割込コントローラー２では、割込要因選択回路２１が、各チャネルで割込信号が検出されるか否かを監視しており（ステップＳ１１）、１回のスキャンで少なくとも１つの割込信号が検出されると、割込信号を検出したチャネルをＣＰＵ１に通知する（ステップＳ１２）。ＣＰＵ１では、この通知を受け付けると、そのチャネルについて計時部１２が計時を開始する（ステップＳ３１）。
【００３８】
そして、割込要因選択回路２１は、割込信号を検出したチャネルが複数であるか否かを判定する（ステップＳ１３）。割込信号を検出したチャネルが１つである場合には、割込要因選択回路２１は、そのチャネルを割込要求生成回路２２に通知する。割込要求生成回路２２は、その通知により指定されたチャネルについての割込要求を生成する（ステップＳ１４）。
【００３９】
一方、割込信号を検出したチャネルが複数である場合には、割込要因選択回路２１は、検出した複数のチャネルを制御回路２３に通知する。制御回路２３は、通知された複数のチャネルの割込処理順番を決定し、割込要因選択回路２１に通知する。（ステップＳ１５）。
【００４０】
このとき、制御回路２３は、まず、割込要因選択回路２１から通知された複数のチャネルのうち、優先度の最も高いチャネルを特定し（ステップＳ２１）、特定したチャネルについてのマージン時間を特定する（ステップＳ２２）。そして、制御回路２３は、特定したマージン時間より所要時間の短い割込処理のチャネルがあるか否かを判定する（ステップＳ２３）。特定したマージン時間より所要時間の短い他の割込処理のチャネルがある場合、特定したマージン時間より所要時間の短い割込処理のチャネルを、優先度の最も高いチャネルより先の順番とする（ステップＳ２４）。なお、特定したマージン時間より所要時間の短い割込処理のチャネルが２つある場合には、それらのうちの優先度の高いほうのチャネルを、優先度の最も高いチャネルより先の順番とする。一方、特定したマージン時間より所要時間の短い割込処理のチャネルがない場合、優先度の順番どおり、優先度の最も高いチャネルを、特定したマージン時間より所要時間の短い割込処理のチャネルより先の順番とする（ステップＳ２５）。
【００４１】
処理順番が決定されると、割込要因選択回路２１は、その順番で、割込信号が検出されたチャネルを割込要求生成回路２２に通知する。
【００４２】
割込要求生成回路２２は、その順番で割込要求を生成する（ステップＳ１６）。
【００４３】
そして、割込要求生成回路２２は、ステップＳ１４またはステップＳ１６で生成した順番で割込要求を１つずつＣＰＵ１へ発行する。割込要求生成回路２２は、割込要求を発行した後に、割込処理の完了通知を受信すると、次の割込要求を発行する。
【００４４】
一方、ＣＰＵ１では、ハンドラー管理部１１は、割込要求を受け付けると、割込要求により指定された割込ハンドラーのルーチンを実行させる。このとき、ステップＳ３１で計時開始している場合には、ハンドラー管理部１１は、割込要求を受け付けると（ステップＳ３２）、その割込要求で指定される割込ハンドラーのルーチンを実行させる時点までの時間、つまり処理開始時間を計時部１２で特定しつつ（ステップＳ３３）、そのルーチンを実行させる（ステップＳ３４）。そのルーチンの処理が完了すると、計時部１２で、ステップＳ３１からの時間、つまり、所要時間が特定される（ステップＳ３５）。このようにして処理開始時間と所要時間が計測された場合、この割込ハンドラーについての処理開始時間と所要時間が処理時間データ３１として記録される（ステップＳ３６）。既に割込ハンドラーについての処理時間データ３１が存在する場合には、（ａ）計測された処理開始時間と所要時間で処理時間データ３１を更新したり、（ｂ）記録されている処理開始時間と計測された処理開始時間とのうち短いものを処理時間データ３１に残し、記録されている所要時間と計測された所要時間とのうち長いものを処理時間データ３１に残したりする。
【００４５】
この処理時間データ３１は、次回、この割込ハンドラーがＣＰＵ１１で登録されたときに使用される。
【００４６】
以上のように、上記実施の形態に係る情報処理装置は、ＣＰＵ１と、少なくとも２つの割込処理に対応する割込信号を検出した場合、少なくとも２つの割込処理を１つずつ順番に選択し、選択した割込処理に対応する割込要求をＣＰＵ１に発行する割込コントローラー２とを備える。そして、割込コントローラー２は、検出した少なくとも２つの割込処理のうちの第１割込処理の処理開始時間と開始要求時間との差より、検出した少なくとも２つの割込処理のうちの第２割込処理の所要時間が短い場合、第２割込処理を第１割込処理より先に選択する。
【００４７】
これにより、第１割込処理の実行スケジュールに余裕がある場合には、第２割込処理が先に実行されるため、すべての割込処理がスケジュールどおりに実行されやすくなる。したがって、要求されたスケジュールどおりになるように、適切な順番で割込処理が実行される。
【００４８】
なお、上述の実施の形態は、本発明の好適な例であるが、本発明は、これらに限定されるものではなく、本発明の要旨を逸脱しない範囲において、種々の変形、変更が可能である。
【００４９】
例えば、上述の実施の形態では、ＣＰＵ１で処理時間データ３１からマージン時間を計算しているが、その代わりに、処理開始時間と所要時間を割込コントローラー２へ通知し、割込コントローラー２が処理開始時間と所要時間から同様にマージン時間を計算するようにしてもよい。
【産業上の利用可能性】
【００５０】
本発明は、例えば、情報処理装置の割込処理に適用可能である。
【符号の説明】
【００５１】
１  ＣＰＵ（プロセッサーの一例）
２  割込コントローラー
３  記憶装置
【図１】
0005380409.tif 000002
【図２】
0005380409.tif 000003
【図３】
0005380409.tif 000004
【図４】
0005380409.tif 000005
【図５】
0005380409.tif 000006