(57)【要約】【課題】簡易な手順で、優先順位の低い割り込みタスクが完了するまでの時間を見積もることができ、優先順位の低い割込み処理のリアルタイム性を改善する。【解決手段】割り込み制御装置１００は、割り込み要因ごとに割り込みの優先順位を管理して割り込み信号Ｆ１〜Ｆｎを発生するｎ個の割り込み要因発生部Ｕ１〜Ｕｎと、割り込み要因発生部Ｕ１〜Ｕｎの各々が管理する優先順位を比較し、比較結果に基づいて優先して処理すべき割り込みをＣＰＵ２００に通知する通知部２０とを備え、割り込み要因発生部Ｕ１は、割り込みの優先順位を記憶する優先順位レジスタ１５と、割り込み要因が発生してから所定時間ごとに、優先順位レジスタ１５に記憶されている優先順位を所定順位だけ高くするように更新する更新部１６Ａとを備える、【選択図】図１
2016181172.tif 000002
【特許請求の範囲】
【請求項１】
割り込み要因ごとに割り込みの優先順位を管理して割り込み信号を発生する複数の割り込み要因発生部と、
前記複数の割り込み要因発生部の各々が管理する優先順位を比較し、比較結果に基づいて優先して処理すべき割り込み信号を外部に通知する通知部とを備え、
前記複数の割り込み要因発生部のうち少なくとも一つは、
割り込み信号の優先順位を記憶する優先順位記憶部と、
前記割り込み要因が発生してから所定時間ごとに、前記優先順位記憶部に記憶されている優先順位を所定順位だけ高くするように更新する更新部とを備える、
ことを特徴とする割り込み制御装置。
【請求項２】
前記更新部は、更新後の優先順位が予め定められた上限順位を超えないように、前記優先順位記憶部の記憶内容を更新することを特徴とする請求項１に記載の割り込み制御装置。
【請求項３】
割り込み要因ごとに割り込みの優先順位を管理して割り込み信号を発生する複数の割り込み要因発生部と、
前記複数の割り込み要因発生部の各々が管理する優先順位を比較し、比較結果に基づいて優先して処理すべき割り込み信号を外部に通知する通知部とを備え、
前記複数の割り込み要因発生部のうち少なくとも一つは、
割り込み信号の優先順位を記憶する優先順位記憶部と、
前記割り込み要因が発生してから所定時間が経過すると、前記優先順位記憶部に記憶されている優先順位を設定可能な１番高い順位へ更新する更新部と、
を備えることを特徴とする割り込み制御装置。
【請求項４】
前記複数の割り込み要因発生部の少なくとも一つは、
前記所定時間を記憶する所定時間記憶部を備え、
前記更新部は、前記所定時間記憶部の記憶内容を参照して前記所定時間を取得し、取得した前記所定時間に基づいたタイミングで、前記優先順位記憶部の記憶内容を更新する、
ことを特徴とする請求項１乃至３のうちいずれか１項に記載の割り込み制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、割り込み制御装置に関する。
【背景技術】
【０００２】
情報処理装置では、シリアル通信インターフェースやネットワークカードなどの周辺装置が、割り込み制御装置を介してＣＰＵ（Central Processing Unit）と接続されている。これらの周辺装置は、キー操作やデータ受信といった割り込み要因を検知すると、割り込み制御装置に対して割り込み信号を出力する。割り込み制御装置から割り込み信号をＣＰＵが取得すると、ＣＰＵは実行中の処理を中断して、取得した割り込み信号に対応したタスクを実行する。
【０００３】
このような情報処理装置において、割り込み制御装置が、複数の周辺装置からの割り込み信号に優先順位を設定し、タスクのリアルタイム性を向上させる手法が知られている。また、優先順位の低い割り込み要因に起因するタスクを実行中に優先順位の高い割り込み要因が発生した場合は、実行中のタスクを一時停止させ、優先順位の高い割り込み要因に起因するタスクを実行し、それが終了した時に一時停止させていた優先順位の低いタスクを再開させる多重割り込みという方法が知られている。
【０００４】
しかしながら、優先順位の高いタスクの処理時間が長く、また頻発するような状態では、優先順位の低いタスクが長時間実行されない可能性がある。
特許文献１に開示された情報処理装置は、優先順位の低いアプリケーション処理タスクを実行するために、周辺装置からの割り込み要因信号を受けて実行される割り込み処理において周辺装置からの割り込み要因信号を無効にしている。そして、アプリケーションと同等以下の優先順位を持った開始処理タスクによりデータ処理タスクが起動されるまで割り込み要因信号が無効となる状態を継続させる。その一方で、アプリケーション処理が長期に及んだ時は、タイマ割込によって開始処理タスクに実行権を移して割り込みタスクを実行できるようにしている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００７−３２３２５６公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１に記載された手法では、開始処理タスクを用いてアプリケーション処理タスクを実行する必要があり、手順が複雑であるといった問題があった。
本発明は、上述した事情に鑑みてなされたものであり、簡易な手順で、優先順位の低い割り込みタスクが完了するまでの時間を見積もることができ、優先順位の低い割込み処理のリアルタイム性を改善可能な割り込み制御装置を提供することを解決課題の一つとする。
【課題を解決するための手段】
【０００７】
以上の課題を解決するために、本発明に係る割り込み制御装置の一態様は、
割り込み要因ごとに割り込みの優先順位を管理して割り込み信号を発生する複数の割り込み要因発生部と、前記複数の割り込み要因発生部の各々が管理する優先順位を比較し、比較結果に基づいて優先して処理すべき割り込み信号を外部に通知する通知部とを備え、前記複数の割り込み要因発生部のうち少なくとも一つは、割り込み信号の優先順位を記憶する優先順位記憶部と、前記割り込み要因が発生してから所定時間ごとに、前記優先順位記憶部に記憶されている優先順位を所定順位だけ高くするように更新する更新部とを備える。
【０００８】
この態様によれば、優先順位の低い割り込み信号であっても、所定時間が経過するたびに、優先順位を所定順位だけ高くすることができる。このため、割り込み要因が発生してから時間が経過すると、次第に優先順位を上げることができ、やがて他の割り込み信号と比較して最も高い優先順位となる。したがって、本来、優先順位の低い割り込みであっても、確実に割り込みを実行することが可能となる。また、優先順位の初期値をＸとし、優先順位の数[0]をＫとし、所定時間Ｔｘが経過するたびに優先順位を所定順位Ｑｘだけ高くするものとすると、当該割り込み要因が発生してから、これに対応するタスクが実行されるまで時間の最大値Ｔmaxは、Ｔmax＝（Ｋ−Ｘ）・Ｔｘ／Ｑｘとなる。従って、割り込み要因が発生してから、タスクが実行されるまでの最大時間を予め知ることが可能となる。
また、所定順位は「１」であってもよいし、「２以上の自然数」であってもよい。所定順位が「１」の場合、所定時間が経過するたびに、優先順位は「１」高くなる。
また、更新部は、ノンマスカブル割り込み要因に最高の優先順位を排他的に割り当ててもよい。この場合、更新部は、優先順位が最高の優先順位未満となるように優先順位記憶部に記憶されている優先順位を更新することが好ましい。
【０００９】
上述した割り込み制御装置の一態様において、前記更新部は、更新後の優先順位が予め定められた上限順位を超えないように、前記優先順位記憶部の記憶内容を更新することが好ましい。この態様によれば、優先順位の低い割り込み信号が、時間経過によって優先順位が高くなったとしても上限順位があるので、これを超える優先順位の割り込み信号より優先されることを無くすことができる。
【００１０】
より具体的には、更新部は、上限順位を記憶した上限順位記憶部と、優先順位記憶部から読み出した優先順位と所定順位とを加算した順位を前記上限順位と比較する比較部と、
前記比較部の比較結果に基づいて、前記加算した順位が前記上限順位以下である場合は、前記加算した順位を更新後の優先順位とし、前記加算した順位が前記上限順位を超える場合は、前記上限順位を更新後の優先順位となるように前記優先順位記憶部の記憶内容を更新することが好ましい。
上述した割り込み制御装置の一態様において、前記更新部は、前記所定順位を記憶する所定順位記憶部を備え、前記所定順位記憶部から読み出した前記所定順位を用いて、前記優先順位記憶部の記憶内容を更新することが好ましい。さらに、所定順位記憶部は、書き換え可能であることが好ましい。この態様によれば、所定順位を変更することができるので、他の割り込みより優先して処理したい状況が生じた場合などに対応することも可能となる。
【００１１】
本発明に係る割り込み制御装置の他の態様は、割り込み要因ごとに割り込みの優先順位を管理して割り込み信号を発生する複数の割り込み要因発生部と、前記複数の割り込み要因発生部の各々が管理する優先順位を比較し、比較結果に基づいて優先して処理すべき割り込み信号を外部に通知する通知部とを備え、前記複数の割り込み要因発生部のうち少なくとも一つは、割り込み信号の優先順位を記憶する優先順位記憶部と、前記割り込み要因が発生してから所定時間が経過すると、前記優先順位記憶部に記憶されている優先順位を設定可能な１番高い順位へ更新する更新部と、を備えることを特徴とする。
【００１２】
この態様によれば、本来、優先順位の低い割り込み信号であっても、割り込み要因が発生してから所定時間が経過すれば、優先順位を設定可能な１番高い順位へ一度に変更することができる。しかも設定可能な１番高い順位は、他の割り込み要因発生部で割り当てる順位よりも高い順位であるから、割り込み要因が発生してから、所定時間が経過すると、対応する割り込みを実行させることができる。また、一度に優先順位を上げるので、割り込み要因が発生してからＣＰＵが対応するタスクを開始するまでの時間を確実に見積もることができる。
【００１３】
上述した割り込み制御装置の一態様または他の態様において、前記複数の割り込み要因発生部の少なくとも一つは、前記所定時間を記憶する所定時間記憶部を備え、前記更新部は、前記所定時間記憶部の記憶内容を参照して前記所定時間を取得し、取得した前記所定時間に基づいたタイミングで、前記優先順位記憶部の記憶内容を更新することが好ましい。
【００１４】
この態様によれば、所定時間記憶部の記憶内容を変更することによって、割り込み要因が発生してから優先順位記憶部に記憶された優先順位を更新するまでの時間を変更することができる。所定時間が長いほど、割り込み信号の優先順位が高いタスクのリアルタイム性が向上し、所定時間が短いほど、割り込み信号の優先順位が低いタスクのリアルタイム性が向上する。すなわち、所定時間を調整することによって、トレードオフの関係にある割り込みの優先順位が高いタスクのリアルタイム性と割り込みの優先順位が低いタスクのリアルタイム性とを調整することが可能となる。
【図面の簡単な説明】
【００１５】
【図１】本発明の第１実施形態に係る情報処理装置の構成を示すブロック図である。
【図２】同装置に用いる更新部の動作を説明するためのタイミングチャートである。
【図３】同装置に用いる割り込み要因発生部Ｕｊの構成を示す回路図である。
【図４】同装置に用いるＣＰＵの処理の遷移を説明するための説明図である。
【図５】本発明の第２実施形態に係る情報処理装置の構成を示すブロック図である。
【図６】同装置に用いる更新部の動作を説明するためのタイミングチャートである。
【図７】同装置に用いるＣＰＵの処理の遷移を説明するための説明図である。
【発明を実施するための形態】
【００１６】
以下、本発明の一実施形態について図面を参照しつつ説明する。
＜第１実施形態＞
図１は、本発明の第１実施形態に係る情報処理装置１の主要部を示すブロック図である。情報処理装置１は、例えば、パーソナルコンピュータが該当する。情報処理装置１は、割り込み制御装置１００、ＣＰＵ２００、およびｎ（ｎは２以上の自然数）個の周辺装置Ａ１〜Ａｎを備える。この例の周辺装置Ａ１は、シリアル通信インターフェースであり、キーボードに接続されている。
【００１７】
割り込み制御装置１００には、周辺装置Ａ１〜Ａｎから割り込み要因信号Ｓ１〜Ｓｎが供給される。例えば、利用者がキーボードのキーを押し下げると、押し下げられたキーを特定するデータＤがシリアル形式でシリアル通信インターフェースＡ１に供給される。シリアル通信インターフェースＡ１は、ＦＩＦＯ（First In First Out）で構成されたメモリＭにデータＤを記憶し、割り込み要因が発生したことを示す割り込み要因信号Ｓ１を割り込み制御装置１００へ出力する。
【００１８】
割り込み制御装置１００は、ｎ個の周辺装置と１対１に対応するｎ個の割り込み要因発生部Ｕ１〜Ｕｎと、ＣＰＵ２００に割り込み信号ＩＲＱを通知する通知部２０とを備える。
本実施形態においては、割り込み要因発生部Ｕ１と割り込み要因発生部Ｕ２〜Ｕｎとの構成が相違する。まず、割り込み要因発生部Ｕ１の構成について説明する。
【００１９】
割り込み要因発生部Ｕ１は、アンド回路１１、ＳＲフリップフロップ１２、アンド回路１３、設定部１４、優先順位レジスタ１５、および更新部１６Ａを備える。アンド回路１１には、割り込み要因信号Ｓ１とマスク信号Ｓｍ１とが入力する。マスク信号Ｓｍ１は、例えば、ＣＰＵ２００から供給される信号であって、マスク信号Ｓｍ１がハイレベルのとき割り込み要因信号Ｓ１を有効にし、マスク信号Ｓｍ１がローレベルのとき割り込み要因信号Ｓ１を無効にする。
【００２０】
アンド回路１１は割り込み要因信号Ｓ１とマスク信号Ｓｍ１との論理積を演算し、演算結果をＳＲフリップフロップ１２のセット端子Ｓに供給する。ＳＲフリップフロップ１２のリセット端子Ｒにはリセット信号Ｓｒ１が供給され、出力端子Ｑから割り込み要因フラグｆ１が出力される。リセット信号Ｓｒ１はＣＰＵ２００から供給される。ＣＰＵ２００は、割り込み要因信号Ｓ１に対応する処理を終了すると、リセット信号Ｓｒ１をアクティブにする。ＳＲフリップフロップ１２は、ＣＰＵが対応する処理を完了させるまで割り込み要因信号Ｓ１を記憶する手段として機能する。
【００２１】
割り込み要因フラグｆ１は、設定部１４と更新部１６Ａとアンド回路１３とに供給される。設定部１４は優先順位の初期値を記憶する初期値レジスタ１４１を備える。なお、初期値レジスタ１４１に記憶されている初期値は、ＣＰＵ２００などから書き換え可能である。
割り込み要因フラグｆ１がアクティブになると、設定部１４は初期値レジスタ１４１から読み出した値を優先順位の初期値として優先順位レジスタ１５に書き込む。
ここで、優先順位は、各種の割り込み要因が競合する場合、他の割り込み要因に優先してＣＰＵ２００に対応するタスクを実行させる順位の意味であり、値が大きいほど、優先される程度が高くなる。本実施形態では、最も高い優先順位にノンマスカブル割り込み要因を割り当ており、他の割り込み要因の優先順位は２番目以下となるようになっている。ノンマスカブル割り込み要因は、ハードウェアエラーなどに起因するものであり、リアルタイム性の要求が極めて高い。また、ノンマスカブル割り込み要因は、ＣＰＵ２００の発行するマスク信号によってマスクされない。
【００２２】
次に、更新部１６Ａは、割り込み要因フラグｆ１が有効になってから無効になるまでの有効期間Ｔａにおいて、所定時間Ｔｘごとに優先順位レジスタ１５に記憶されている優先順位を所定順位Ｑｘだけ高くなるように更新する。
【００２３】
更新部１６Ａは、更新間隔を規定する所定時間Ｔｘを記憶した所定時間レジスタ１６１、タイマー１６２、所定順位Ｑｘを記憶する所定順位レジスタ１６３、上限順位Ｑｍを記憶した上限順位レジスタ１６４、および順位比較部１６５を備える。所定時間レジスタ１６１に記憶されている所定時間Ｔｘ、所定順位レジスタ１６３に記憶されている所定順位Ｑｘ、上限順位レジスタ１６４に記憶されている上限順位Ｑｍは、例えばＣＰＵ２００などによって書き換え可能である。
【００２４】
タイマー１６２は、所定時間レジスタ１６１に記憶されている所定時間Ｔｘを読み出して、カウント値が所定時間Ｔｘと一致すると、一定時間だけハイレベルとなる出力信号を生成する。また、タイマー１６２は、割り込み要因フラグｆ１の立ち上がりエッジとタイマー１６２の出力信号の立ち上がりエッジとで計時を開始し、割り込み要因フラグｆ１の立ち下がりエッジで計時を終了する。
【００２５】
上限順位Ｑｍは、優先順位が取り得る順位のうち、更新部１６Ａが優先順位レジスタ１５の記憶内容を更新する際の最も高い順位を示している。従って、優先順位レジスタ１５に上限順位Ｑｍを超える優先順位が格納されることはない。
順位比較部１６５は、優先順位レジスタ１５から読み出した優先順位と所定順位Ｑｘとを加算した順位を上限順位Ｑｍと比較する。更新部１６Ａは、順位比較部１６５の比較結果に基づいて、加算した順位が上限順位Ｑｍ以下である場合は、加算した順位を更新後の優先順位とし、加算した順位が上限順位Ｑｍを超える場合は、上限順位Ｑｍを更新後の優先順位となるように優先順位レジスタ１５の記憶内容を更新する。これにより、更新部１６Ａは、更新後の優先順位が予め定められた上限順位Ｑｍを超えないように、優先順位レジスタ１５の記憶内容を更新する。
【００２６】
例えば、優先順位レジスタ１５に格納されている優先順位をＱ１、更新後に優先順位レジスタ１５に格納される優先順位をＱ２としたとき、更新後の優先順位Ｑ２は以下の式で与えられる。
Ｑ１＋Ｑｘ≦Ｑｍである場合、Ｑ２＝Ｑ１＋Ｑｘ
Ｑ１＋Ｑｘ＞Ｑｍである場合、Ｑ２＝Ｑｍ
ここで、ノンマスカブル割り込み要因に最も高い順位を割り当てているので、上限順位Ｑｍを２番目に高い順位を割り当てることになる。
【００２７】
図２を参照して更新部１６Ａの動作を説明する。この例では、所定順位Ｑｘは「１」であり、優先順位の初期値は「１」であるものとする。
まず、時刻ｔ１において割り込み要因フラグｆ１がアクティブになると、タイマー１６２が計時を開始する。また、時刻ｔ１において設定部１４は、優先順位の初期値「１」を優先順位レジスタ１５に書き込む。そして、時刻ｔ１から所定時間Ｔｘが経過して時刻ｔ２に至ると、タイマー１６２は、出力信号をローレベルからハイレベルに遷移させる。時刻ｔ２におけるタイマー１６２の出力信号の立ち上がりエッジに同期して、更新部１６Ａは、優先順位レジスタ１５から優先順位を読み出し、これに所定順位Ｑｘを加算した値を優先順位レジスタ１５に書き込む。この例では、初期値が「１」、所定順位Ｑｘが「１」であるので、時刻ｔ２から優先順位「２」が優先順位レジスタ１５に格納されることになる。
【００２８】
以後、同様に時刻ｔ３、時刻ｔ４、及び時刻ｔ５において優先順位が「１」づつ上がる。そして、時刻ｔ６においてリセット信号Ｓｒ１がアクティブになると、割り込み要因フラグｆ１の有効期間Ｔａが終了し、タイマー１６２は動作を停止しカウント値をクリヤする。
【００２９】
説明を図１に戻す。割り込み要因発生部Ｕ１のアンド回路１３には、割り込み要因フラグｆ１とイネーブル信号Ｓｅ１が供給される、イネーブル信号Ｓｅ１はＣＰＵ２００が生成する。イネーブル信号Ｓｅ１は、ＣＰＵ２００が割り込み要因信号Ｓ１に対応する割り込み要因を処理可能な場合に、アクティブとなる。イネーブル信号Ｓｅ１がハイレベルの場合に、アンド回路１３は割り込み要因フラグｆ１を割り込み信号Ｆ１として通知部２０に出力する。また、優先順位レジスタ１５は優先順位を示す優先順位信号Ｐ１を出力する。
【００３０】
次に、割り込み要因発生部Ｕ２〜Ｕｎについて説明する。割り込み要因発生部Ｕ２〜Ｕｎは、同一の構成である。ここでは、割り込み要因発生部Ｕｊについて説明する。但し、ｊは２以上ｎ以下の任意の自然数である。図３に割り込み要因発生部Ｕｊの構成を示す。この図に示すように、割り込み要因発生部Ｕｊは、割り込み要因発生部Ｕ１から、設定部１４および更新部１６Ａを削除したものである。なお、優先順位レジスタ１５にはｊ番目の割り込み要因に対応する優先順位が予め格納されている。
すなわち、割り込み要因発生部Ｕｊから出力される優先順位信号Ｐｊの示す優先順位は固定であって、優先順位信号Ｐ１のように変化しない。
説明を図１に戻す。通知部２０は、優先順位選択部２１と比較部２２とを備える。優先順位選択部２１は、優先順位信号Ｐ１〜Ｐｎを比較して、割り込み信号Ｆ１〜Ｆｎの中から優先順位の最も高い割り込み信号を選択し、これを割り込み信号ＩＲＱとして比較部２２に出力する。同時に当該割り込み信号ＩＲＧの優先順位Ｐｙも比較部２２へ出力する。比較部２２は、現在、ＣＰＵ２００が実行中のタスクに対応する優先順位Ｐｘと割り込み信号ＩＲＱの優先順位Ｐｙを比較し、Ｐｙ＞Ｐｘであれば割り込み信号ＩＲＱをＣＰＵ２００に出力し、Ｐｙ≦Ｐｘであれば割り込み信号ＩＲＱをＣＰＵ２００に出力しない。
【００３１】
次に、ＣＰＵ２００が処理するタスクの遷移について、図４を参照しつつ、具体的に説明する。この例では、ＣＰＵ２００が各割り込み要因発生部Ｕ１〜Ｕｎのイネーブル信号Ｓｅ１〜Ｓｅｎをハイレベルに設定し、各割り込み要因発生部Ｕ１〜Ｕｎから割り込み信号Ｆ１〜Ｆｎおよび優先順位信号Ｐ１〜Ｐｎが通知部２０に出力されるものとする。
図４（Ａ）は、割り込み制御装置１００を用いた場合のＣＰＵ２００が処理するタスクの遷移を示したものであり、図４（Ｂ）は、割り込み要因発生部Ｕ１の替わりに割り込み要因発生部Ｕｊを用いた場合のＣＰＵ２００が処理するタスクの遷移を示したものである。なお、図４において、黒く塗りつぶした部分は、ＣＰＵ２００がタスクを切り替えるために必要とする内部レジスタの待避および復帰に要する時間である。また、割り込み要因信号Ｓ１〜Ｓ４は割り込み要因１〜４に各々対応している。また、所定順位Ｑｘは「１」であり、上限順位Ｑｍは「４」であり、優先順位の初期値は「１」である。なお、優先順位「５」はノンマスカブル割り込み要因に割り当てられている。
【００３２】
図４（Ａ）に示すように時刻ｔ１において割り込み要因１が発生する。この時点で、優先順位「４」の割り込み要因４と優先順位「３」の割り込み要因３が存在するので、従来の方法であれば、これらに対応するタスクが終了しない限り、割り込み要因１のタスクが実行されることはない。
【００３３】
しかしながら、上述した割り込み要因発生部Ｕ１では、所定時間Ｔｘごとに優先順位を所定順位Ｑｘだけ上げる。このため、時刻ｔ１から所定時間Ｔｘが経過して時刻ｔ２になると、割り込み要因１の優先順位が「２」になる。そして、時刻ｔ２から所定時間Ｔｘが経過して時刻ｔ３になると、割り込み要因１の優先順位が「３」になる。時刻ｔ２では、ＣＰＵ２００は、優先順位「４」の割り込み要因４に対応するタスクを実行中である。そして、時刻ｔ４において割り込み要因４に対応するタスクが終了すると、その時点で優先順位「３」の割り込み要因１が最も高い優先順位となる。このため、時刻ｔ４から割り込み要因１のタスクが実行される。
【００３４】
一方、図４（Ｂ）に示すように従来の情報処理装置では優先順位が「１」の割り込み要因１は、より高い優先順位の割り込み要因２〜４が存在するため、ＣＰＵ２００が割り込み要因１に対応するタスクを実行することができない。
【００３５】
本実施形態によれば、本来、優先順位の低い割り込み要因であっても、所定時間Ｔｘごとに優先順位を所定順位Ｑｘだけ高くすることができる。このため、割り込み要因が発生してから時間が経過すると、次第に優先順位を上げることができ、やがて他の割り込み要因と比較して最も高い優先順位となる。したがって、本来、優先順位の低い割り込み要因であっても、確実に割り込みを実行することが可能となる。
【００３６】
また、優先順位の初期値をＸとし、上限順位ＱｍがＫであり、優先順位が上限順位Ｑｍになると、特殊な例外を除きタスクが実行されるものとする。この場合、当該割り込み要因が発生してから、これに対応するタスクが実行されるまで時間の最大値Ｔmaxは以下の式で与えられる。従って、割り込み要因が発生してから、タスクが実行されるまでの最大時間を予め知ることが可能となる。
Ｔmax＝（Ｋ−Ｘ）・Ｔｘ／Ｑｘ
【００３７】
＜第２実施形態＞
上述した第１実施形態では、所定の割り込み要因の優先順位を所定時間ごとに高くすることにより、本来、優先順位の低い割り込み要因であっても、対応するタスクをＣＰＵで実行できるようにした。これに対して、第２実施形態では、所定の割り込み要因の優先順位を所定時間が経過した後、割り当て可能な最大の順位まで高くするものである。
【００３８】
図５は、本発明の第２実施形態に係る情報処理装置２の主要部を示すブロック図である。情報処理装置２は、割り込み要因発生部Ｕ１の更新部１６Ａの替わりに更新部１６Ｂを用いる点を除いて、図１に示す第１実施形態の情報処理装置１と同様に構成されている。
【００３９】
更新部１６Ｂは、優先順位の更新までの時間を規定する所定時間Ｔｘを記憶した所定時間レジスタ１６１、タイマー１６６、および特定順位Ｑｚを記憶する特定順位レジスタ１６７を備える。特定順位レジスタ１６７が記憶する特定順位Ｑｚは、ＣＰＵ２００などから書き換え可能である。
更新部１６Ｂは、割り込み要因フラグｆ１が有効になってから所定時間Ｔｘが経過すると、優先順位レジスタ１５に記憶されている優先順位の初期値を特定順位Ｑｚに書き換える。特定順位Ｑｚは任意であるが、本実施形態では、優先順位の取り得る複数の順位のうち、２番目に高い順位である。これは、１番目に高い順位は、ノンマスカブル割り込み要因にのみ割り当て、他の割り込み要因には割り当てないからである。なお、特定順位Ｑｚを１番目に高い順位としてもよい。
【００４０】
タイマー１６６は、所定時間レジスタ１６１に記憶されている所定時間Ｔｘを読み出して、カウント値が所定時間Ｔｘと一致すると、一定時間だけハイレベルとなる出力信号を生成する点で、第１実施形態のタイマー１６２と一致し、計時の開始が異なる。すなわち、タイマー１６２は、割り込み要因フラグｆ１の立ち上がりエッジとタイマー１６２の出力信号の立ち上がりエッジとで計時を開始するが、第２実施形態のタイマー１６６は、割り込み要因フラグｆ１の立ち上がりエッジのみに対応して計時を開始し、所定時間Ｔｘが経過すると、計時を終了しカウント値をリセットする。
【００４１】
図６を参照して更新部１６Ｂの動作を説明する。この例では、特定順位Ｑｚは「４」であり、優先順位の初期値は「１」であるものとする。
まず、時刻ｔ１０において割り込み要因フラグｆ１がアクティブになると、タイマー１６６が計時を開始する。また、時刻ｔ１０において設定部１４は、優先順位の初期値「１」を優先順位レジスタ１５に書き込む。そして、時刻ｔ１０から所定時間Ｔｘが経過して時刻ｔ１１に至ると、タイマー１６６は、出力信号をローレベルからハイレベルに遷移させる。時刻ｔ１１におけるタイマー１６６の出力信号の立ち上がりエッジに同期して、更新部１６Ｂは、特定順位レジスタ１６７から特定順位Ｑｚを読み出し、特定順位Ｑｚを優先順位レジスタ１５に書き込む。
そして、時刻ｔ１２においてリセット信号Ｓｒ１がアクティブになると、割り込み要因フラグｆ１がローレベル（非アクティブ）になる。
【００４２】
次に、ＣＰＵ２００が処理するタスクの遷移について、図７を参照しつつ、具体的に説明する。この例では、ＣＰＵ２００が各割り込み要因発生部Ｕ１〜Ｕｎのイネーブル信号Ｓｅ１〜Ｓｅｎをハイレベルに設定し、各割り込み要因発生部Ｕ１〜Ｕｎから割り込み信号Ｆ１〜Ｆｎおよび優先順位信号Ｐ１〜Ｐｎが通知部２０に出力されるものとする。なお、同図において、黒く塗りつぶした部分は、ＣＰＵ２００がタスクを切り替えるために必要とする内部レジスタの待避および復帰に要する時間である。また、割り込み要因信号Ｓ１〜Ｓ４は割り込み要因１〜４に各々対応している。また、特定順位Ｑｚは「４」であり、優先順位の初期値は「１」である。なお、優先順位「５」はノンマスカブル割り込み要因に割り当てられている。
【００４３】
図７に示すように時刻ｔ２０のおいて割り込み要因１が発生する。この時点で、優先順位「４」の割り込み要因４と優先順位「３」の割り込み要因３が存在するので、従来の方法であれば、これらに対応するタスクが終了しない限り、割り込み要因１のタスクが実行されることはない。
【００４４】
しかしながら、上述した割り込み要因発生部Ｕ１では、所定時間Ｔｘが経過すると、優先順位を特定順位Ｑｚに変更する。このため、時刻ｔ２０から所定時間Ｔｘが経過して時刻ｔ２１になると、割り込み要因１の優先順位が「４」になり、その時点で優先順位「４」の割り込み要因１が最も高い優先順位となる。このため、時刻ｔ２２から割り込み要因１のタスクが実行される。
【００４５】
本実施形態によれば、本来、優先順位の低い割り込み要因であっても、所定時間Ｔｘが経過すれば、優先順位を特定順位Ｑｚに上げることができる。すなわち、一度に優先順位を上げるので、割り込み要因が発生してからＣＰＵが対応するタスクを開始するまでの時間を確実に見積もることができるといった利点がある。
【００４６】
例えば、図５に示す例では、割り込み要因信号Ｓ１は、キーボードの操作に起因するものである。この場合、シリアル通信インターフェースＡ１のメモリＭには、不定期に、不定のサイズでデータＤが蓄積されるので、1 バイトでもデータＤがあれば、割り込み要因信号Ｓ１が発行される。また、キーボードの入力にはリアルタイム性が要求されるので、優先順位を高く設定する必要がある。しかし、データ量は少量であるし、キーボードの操作の頻度は、不定期で且つ、数百ｍｓの間隔であるので、高い優先順位を与えることによって他の処理が遅延することが懸念される。
【００４７】
本実施形態によれば、キーボードの操作に起因する割り込み要因信号Ｓ１がアクティブになっても、優先順位の初期値としては「１」であるため、他の割り込み要因に対応するタスクの妨げとならない。そして、所定時間Ｔｘが経過すると、優先順位を上げて特定順位Ｑｚに更新するので、ＣＰＵがキーボードの操作に起因する割り込みを受け付けることが可能となる。すなわち、優先順位は低いが、ある時間内に確実にタスクを実行する必要のある割り込み要因に対して、所定時間Ｔｘが経過するまではより優先順位の高い割り込みを優先させつつ、所定時間Ｔｘが経過すると当該割り込み要因に対するタスクを実行することが可能となる。
【００４８】
＜変形例＞
以上に例示した形態は多様に変形される。具体的な変形の態様を以下に例示する。以下の例示から任意に選択された２以上の態様は適宜に併合され得る。
【００４９】
（１）前述の各実施形態では、所定時間レジスタ１６１に記憶されている所定時間Ｔｘ、所定順位レジスタ１６３に記憶されている所定順位Ｑｘ、上限順位レジスタ１６４に記憶されている上限順位Ｑｍ、特定順位レジスタ１６７に記憶されている特定順位Ｑｚ、初期値レジスタ１４１に記憶されている初期値は、ＣＰＵ２００などから書き換え可能であったが、本発明はこれに限定されるものではなく、書き換え不能であってもよい。
【００５０】
（２）上述した第１実施形態では、上限順位Ｑｍを設けたが、本発明はこれに限定されるものではなく、上限順位Ｑｍを設けなくてもよい。また、時間が経過するほど所定順位レジスタ１６３に記憶される所定順位Ｑｘを大きくなるように書き換えてもよい。
【００５１】
（３）上述した各実施形態では、割り込み要因発生部Ｕ１のみが他の割り込み要因発生部Ｕ２〜Ｕｎと異なるものとして説明したが、本発明はこれに限定されるものではなく、ｎ個の割り込み要因発生部のうち、少なくとも一つが割り込み要因発生部Ｕ１であればよい。また、ｎ個の割り込み要因発生部の中に第１実施形態の割り込み要因発生部Ｕ１と第２実施形態の割り込み要因発生部Ｕ１とが混在してもよい。
【符号の説明】
【００５２】
１,２……情報処理装置、Ｕ１〜Ｕｎ……割り込み要因発生部、Ａ１〜Ａｎ……周辺装置、１４……設定部、１５……優先順位レジスタ、１６Ａ,１６Ｂ……更新部、２１……優先順位選択部、２２……比較部、１４１……初期値レジスタ、１６１……所定時間レジスタ、１６２,１６６……タイマー、１６３……所定順位レジスタ、１６４……上限順位レジスタ、１６５……順位比較部、１６７……特定順位レジスタ、ＩＲＱ……割り込み信号。
【図１】
2016181172.tif 000003
【図２】
2016181172.tif 000004
【図３】
2016181172.tif 000005
【図４】
2016181172.tif 000006
【図５】
2016181172.tif 000007
【図６】
2016181172.tif 000008
【図７】
2016181172.tif 000009