(57)【要約】【課題】ＣＰＵの処理効率を高めたまま、簡単な構成で複数の割込ハンドラの処理の実行の競合を調停することができる割込処理調停装置を提供する。【解決手段】優先順位制御部１２で優先順位の高い割込ハンドラの実行中にその割込ハンドラがイベント待ちの状態になったことを受けてその割込ハンドラの割込優先順位を最下位に下げるとともに、実行調停部１３でその割込ハンドラの処理の続行を確保するために必要なレジスタの内容をその割込ハンドラについてあらかじめ固定されたスタック領域１１のレジスタ確保領域に待避させるとともに、優先順位の低い割込ハンドラ用のレジスタ保存領域の内容を読み出して実行する。【選択図】        図１
2004199558.tif 000002
【特許請求の範囲】
【請求項１】
それぞれが、複数の優先順位のうちのいずれかの固有優先順位を持ち各所定の割込処理を実行する複数の割込ハンドラそれぞれの実行を要求する割込みを受け付けて該複数の割込ハンドラの処理の実行の競合を調停する割込処理調停装置において、
前記複数の割込ハンドラそれぞれについてあらかじめ固定されたレジスタ保存領域と、
いずれかの割込ハンドラの実行中に該割込ハンドラがイベント待ちの状態になったことを受けて該割込ハンドラの割込優先順位を最下位に下げるとともに該イベントの発生を受けて該割込ハンドラの優先順位を該割込ハンドラの固有優先順位に固定させる優先順位制御部と、
いずれか第１の割込ハンドラの実行中に、該第１の割込ハンドラの優先順位よりも高い優先順位を持つ第２の割込ハンドラの実行を要求する割込みの発生、又は該実行中の第１の割込ハンドラの優先順位よりも高い固有優先順位を持つ第２の割込ハンドラの最下位優先順位から該第２の割込ハンドラの固有優先順位への切換を受けて、前記第１の割込ハンドラの処理の続行を確保するために必要なレジスタの内容を該第１の割込ハンドラ用レジスタ確保領域に待避させるとともに前記第２の割込ハンドラ用のレジスタ保存領域の内容を該第２の割込ハンドラの実行を司るレジスタに戻す実行調停部とを備えたものであることを特徴とする割込処理調停装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数の割込ハンドラの処理の実行の競合を調停する割込処理調停装置に関する。
【０００２】
【従来の技術】
中央処理装置（ＣＰＵ）がプログラムを実行している途中で、周辺のハードウェア装置から非同期に割込処理の要求が発生すると、ＣＰＵは実行中のプログラムを一時中断し、その割込処理の要求に応じた割込処理を実行させるための割込制御を行なう。割込制御を行なうための装置としては割込コントローラが用いられる。この割込コントローラは、割込要因（割込要求の発生源）に対して、割込優先順位を決めるための割込レベル（例えば０〜７までのレベル）を予め一意的に決定し、その割込レベルに応じてＣＰＵに割込信号を送出する。ＣＰＵは、この割込信号に対応する割込処理プログラムである割込ハンドラを呼び出して割込処理を行なう。
【０００３】
図５は、従来の、複数の割込ハンドラによる割込処理が行なわれる様子を示す図、図６は、図５に示す割込処理で使用されるスタック領域を示す図である。
【０００４】
図５には、３つの割込ハンドラＡ，Ｂ，Ｃによる割込処理が行なわれる様子が示されている。これら３つの割込ハンドラＡ，Ｂ，Ｃの割込優先順位は、低い順に、割込ハンドラＡ，Ｂ，Ｃとなっている。また、図６に示すスタック領域２００は、各割込ハンドラＡ，Ｂ，Ｃによる割込処理時に使用される各領域部２０１，２０２，２０３を有する。
【０００５】
最初の時点では、図５に示すように、割込ハンドラＡによる割込処理が実行されている。従って、スタック領域２００の領域部２０１には、この割込ハンドラＡによる割込処理が実行される以前に実行されていたプログラムの続行を確保するために必要なＣＰＵのレジスタ等の内容が待避されている。
【０００６】
ここで、割込ハンドラＡによる割込処理が実行されている途中の時刻ｔ１の時点で、割込ハンドラＢによる割込処理を実行するための割込信号が、図示しない割込コントローラを介して出力される。割込ハンドラＢの割込優先順位の方が割込ハンドラＡの割込優先順位よりも高いので、スタック領域２００の領域部２０２に、割込ハンドラＡの処理の続行を確保するために必要なＣＰＵのレジスタ等の内容が待避され、次いで割込ハンドラＢによる割込処理が実行される。
【０００７】
さらに、割込ハンドラＢによる割込処理が実行されている途中の時刻ｔ２の時点で、割込ハンドラＣによる割込み処理を実行するための割込み信号が出力される。割込ハンドラＣの割込み優先順位の方が割込ハンドラＢの割込み優先順位よりも高いので、スタック領域２００の領域部２０３に、割込ハンドラＢの処理の続行を確保するために必要なＣＰＵのレジスタ等の内容が待避され、次いで割込ハンドラＣによる割込処理が実行される。
【０００８】
さらに、割込ハンドラＣによる割込処理における時刻ｔ３の時点で、外部装置に対して演算処理を実行する旨の命令が発行される。ここで、外部装置は、演算処理結果が得られるまでに所定時間（時刻ｔ３から時刻ｔ４までの時間）を必要とする。従って、割込ハンドラＣは、時刻ｔ３から時刻ｔ４までの間、イベント待ち状態となる。このイベント待ち状態の時間（イベント待ち時間と称する）は、ＣＰＵが何らの処理も実行しないアイドリング時間である。
【０００９】
割込ハンドラＣは、時刻ｔ４の時点で外部装置から演算処理結果が得られた旨を受けると、その演算処理結果に基づいて時刻ｔ４から時刻ｔ５までの時間で割込処理を実行する。時刻ｔ５で割込ハンドラＣによる割込処理が終了すると、スタック領域２００の領域部２０３に待避されている内容が読み出され、これにより割込ハンドラＢによる割込処理が続行する。
【００１０】
さらに、時刻ｔ６で割込ハンドラＢによる割込処理が終了すると、スタック領域２００の領域部２０２に待避されている内容が読み出され、これにより割込ハンドラＡによる割込み処理が実行される。このようにして、複数の割込ハンドラによる、いわゆる多重割込処理が行なわれる。
【００１１】
ここで、上述したように、割込ハンドラＣによる割込処理において発生するイベント待ち時間は、ＣＰＵが何らの処理も実行しないアイドリング時間であり、従ってＣＰＵの処理効率が悪いという問題がある。
【００１２】
そこで、以下に説明するように、割込ハンドラＣをイベント待ち時間の前後で２つに分割し、イベント待ち時間に割込ハンドラＢによる割込処理を実行することにより、ＣＰＵの処理効率を高めるということが行なわれている。
【００１３】
図７は、イベント待ち時間に、割込ハンドラＢによる割込処理が実行される様子を示す図である。
【００１４】
ここでは、図７に示すように、前述した割込ハンドラＣが、時刻ｔ３から時刻ｔ４までのイベント待ち時間を挟んで、割込ハンドラＣ１と割込ハンドラＣ２の２つに分割されている。割込ハンドラＣ１は、外部装置に対して演算処理を実行する旨の命令を発行した時刻ｔ３の時点で割込処理を終了する。従って、割込ハンドラＢによる割込処理が実行される。この割込処理中の時刻ｔ４の時点で外部装置から演算処理終了の旨を受けると、今度は割込ハンドラＣ２による割込処理が実行される。このようにして、時刻ｔ３から時刻ｔ４までのイベント待ち時間に、割込ハンドラＢによる割込処理が実行されるため、ＣＰＵの処理効率を高めることができる。
【００１５】
また、割込要求発生源からの割込要求信号を、入力コントロールスイッチで選択することにより、複数の割込優先順位を制御する技術が提案されている（例えば、特許文献１参照）。
【００１６】
さらに、割込要求信号の割込レベルをＣＰＵで変更することにより、複数の割込優先順位を制御する技術も提案されている（例えば、特許文献２参照）。
【００１７】
【特許文献１】
特開平６−３０９１８１号公報（段落番号００１３−段落番号０    ０２０、第１図）
【特許文献２】
特開平７−４９７９３号公報（段落番号００１５−段落番号０      ０２４、第１図）
【００１８】
【発明が解決しようとする課題】
しかし、上述した、割込ハンドラを２つに分割する技術では、イベント待ち時間に、その割込ハンドラよりも優先順位の低い割込ハンドラによる割込処理が実行されるため、ＣＰＵの処理効率を高めることができるものの、これら２つの割込ハンドラにおける変数管理等は複雑である。従って、プログラムが煩雑となり柔軟性に欠けるという問題がある。
【００１９】
また、特許文献１では、複数の割込優先順位を制御するにあたり、割込要求信号を選択するための入力コントロールスイッチ等が必要であり、特許文献２では、割込要求信号の割込レベルをＣＰＵで変更するにあたり、レベルデコーダや２入力ＯＲ回路等が必要である。従って、複数の割込ハンドラの処理の実行の競合を調停するにあたり、構成が複雑であるという問題がある。
【００２０】
本発明は、上記事情に鑑み、ＣＰＵの処理効率を高めたまま、簡単な構成で複数の割込ハンドラの処理の実行の競合を調停することができる割込処理調停装置を提供することを目的とする。
【００２１】
【課題を解決するための手段】
上記目的を達成する本発明の割込処理調停装置は、それぞれが、複数の優先順位のうちのいずれかの固有優先順位を持ち各所定の割込処理を実行する複数の割込ハンドラそれぞれの実行を要求する割込みを受け付けてそれら複数の割込ハンドラの処理の実行の競合を調停する割込処理調停装置において、
上記複数の割込ハンドラそれぞれについてあらかじめ固定されたレジスタ保存領域と、
いずれかの割込ハンドラの実行中にその割込ハンドラがイベント待ちの状態になったことを受けてその割込ハンドラの割込優先順位を最下位に下げるとともにそのイベントの発生を受けてその割込ハンドラの優先順位をその割込ハンドラの固有優先順位に固定させる優先順位制御部と、
いずれか第１の割込ハンドラの実行中に、その第１の割込ハンドラの優先順位よりも高い優先順位を持つ第２の割込ハンドラの実行を要求する割込みの発生、又はその実行中の第１の割込ハンドラの優先順位よりも高い固有優先順位を持つ第２の割込ハンドラの最下位優先順位からその第２の割込ハンドラの固有優先順位への切換を受けて、上記第１の割込ハンドラの処理の続行を確保するために必要なレジスタの内容をその第１の割込ハンドラ用レジスタ確保領域に待避させるとともに上記第２の割込ハンドラ用のレジスタ保存領域の内容をその第２の割込ハンドラの実行を司るレジスタに戻す実行調停部とを備えたものであることを特徴とする。
【００２２】
本発明の割込処理調停装置は、優先順位の高い割込ハンドラの実行中にその割込ハンドラがイベント待ちの状態になったことを受けて、その割込ハンドラの割込優先順位を最下位に下げるとともに、その割込ハンドラの処理の続行を確保するために必要なレジスタの内容をその割込ハンドラについてあらかじめ固定されたレジスタ確保領域に待避させるとともに、優先順位の低い割込ハンドラ用のレジスタ保存領域の内容を読み出して実行することができる。このため、従来技術のように複雑な変数管理等や複雑な構成は不要である。従って、ＣＰＵの処理効率を高めたまま、簡単な構成で複数の割込ハンドラの処理の実行の競合を調停することができる。
【００２３】
【発明の実施の形態】
以下、本発明の実施形態について説明する。
【００２４】
図１は、本発明の一実施形態の割込処理調停装置を含むシステムを示す図である。
【００２５】
図１には、本実施形態の割込処理調停装置１０と、割込コントローラ２０と、ＣＰＵ３０と、ＲＯＭ４０と、ＲＡＭ５０とが示されている。
【００２６】
割込処理調停装置１０は、それぞれが、複数の優先順位のうちのいずれかの固有優先順位を持ち各所定の割込処理を実行する複数の割込ハンドラそれぞれの実行を要求する割込みを受け付けて、それら複数の割込ハンドラの処理の実行の競合を調停する装置であり、この割込処理調停装置１０には、スタック領域１１と、優先順位制御部１２と、実行調停部１３とが備えられている。
【００２７】
スタック領域１１は、詳細は後述するが、複数の割込ハンドラそれぞれについてあらかじめ固定されたレジスタ保存領域を有する。
【００２８】
優先順位制御部１２は、いずれかの割込ハンドラの実行中にその割込ハンドラがイベント待ちの状態になったことを受けて、その割込ハンドラの割込優先順位を最下位に下げるとともに、そのイベントの発生を受けてその割込ハンドラの優先順位をその割込ハンドラの固有優先順位に固定させる役割を担うものである。
【００２９】
実行調停部１３は、いずれか第１の割込ハンドラの実行中に、その第１の割込ハンドラの優先順位よりも高い優先順位を持つ第２の割込ハンドラの実行を要求する割込みの発生、又はその実行中の第１の割込ハンドラの優先順位よりも高い固有優先順位を持つ第２の割込ハンドラの最下位優先順位からその第２の割込ハンドラの固有優先順位への切換を受けて、上記第１の割込ハンドラの処理の続行を確保するために必要なレジスタの内容をその第１の割込ハンドラ用レジスタ確保領域に待避させるとともに、上記第２の割込ハンドラ用のレジスタ保存領域の内容をその第２の割込ハンドラの実行を司るレジスタに戻す役割を担うものである。
【００３０】
割込コントローラ２０は、割込要因（割込要求の発生源）からの割込要求信号ＩＮＴ０〜ＩＮＴ７に対して、割込優先順位を決めるための割込レベル（例えば０〜７までのレベル）を予め一意的に決定し、その割込レベルに応じてＣＰＵ３０に割込信号を送出する。
【００３１】
ＣＰＵ３０は、プログラムカウンタ（ＰＣ）を含むレジスタを有し、割込信号に応じて割込ハンドラを呼び出して割込処理を行なうとともに、このシステム全体を制御する。
【００３２】
ＲＯＭ４０には、ＣＰＵ３０で実行されるプログラムやデータが記憶されている。
【００３３】
ＲＡＭ５０は、ＣＰＵ３０の作業エリア等として用いられる。
【００３４】
図２は、図１に示す割込処理調停装置により、複数の割込ハンドラの処理の実行の競合が調停される様子を示す図、図３は、図１に示すスタック領域の構成を示す図である。
【００３５】
図２に示す割込ハンドラＡ，Ｂ，Ｃの割込優先順位は、低い順に、割込ハンドラＡ，Ｂ，Ｃとなっている。また、図３に示すスタック領域１１は、レジスタ保存領域１１＿１，１１＿２，１１＿３を有する。これらレジスタ領域１１＿１，１１＿２，１１＿３は、後述するようにして割込ハンドラＡ，Ｂ，Ｃの割込み優先順位が逆転した場合（例えば、割込ハンドラＣの割込み優先順位の方が、割込ハンドラＢの割込み優先順位よりも低くなるような場合）であっても、スタック領域１１に格納された情報の書き換え（破壊）が起こらないように、以下のように予め固定されてなる領域である。
【００３６】
レジスタ保存領域１１＿１は、割込ハンドラＡの割込み処理におけるローカル変数及びＣＰＵ３０のレジスタ（ＰＣ：プログラムカウンタを含む）に格納された情報が保存される使用領域１１＿１ａと、必要に応じて情報が格納される予備領域１１＿１ｂから構成されている。
【００３７】
レジスタ保存領域１１＿２は、割込ハンドラＢの割込み処理におけるローカル変数及び上記レジスタに格納された情報が保存される使用領域１１＿２ａと、必要に応じて情報が格納される予備領域１１＿２ｂから構成されている。
【００３８】
レジスタ保存領域１１＿３は、割込ハンドラＣの割込み処理におけるローカル変数及び上記レジスタに格納された情報が保存される使用領域１１＿３ａと、必要に応じて情報が格納される予備領域１１＿３ｂから構成されている。
【００３９】
次に、本実施形態の割込処理調停装置を含むシステムの動作について、図２および図４を参照して説明する。
【００４０】
図４は、本実施形態の割込処理調停装置を含むシステムにおける割込処理プログラムの概念的な構成図である。
【００４１】
この割込処理プログラム１００は、共通割込ハンドラ１００ａ、個別割込処理部１００ｂ、終了処理部１００ｃ、個別割込ハンドライベント待ち処理部１００ｄ、および共通割込待ち処理部１００ｅから構成されている。ここで、共通割込ハンドラ１００ａは、実行調停部１３に組み込まれている。また、個別割込処理部１００ｂおよび終了処理部１００ｃは、ＲＯＭ４０内に格納された各割込ハンドラＡ，Ｂ，Ｃに組み込まれている。さらに、個別割込ハンドライベント待ち処理部１００ｄは、優先順位制御部１２に組み込まれている。また、共通割込待ち処理部１００ｅは、ＲＯＭ４０内に格納されている。
【００４２】
尚、本実施形態では、共通割込ハンドラ１００ａ，個別割込ハンドライベント待ち処理部１００ｄは、割込処理調停装置１０を構成する実行調停部１３，優先順位制御部１２に組み込まれた例で説明するが、本発明は、これに限られるものではなく、例えば、共通割込ハンドラ１００ａ，個別割込ハンドライベント待ち処理部１００ｄをＲＯＭ４０内に組み込むとともに、スタック領域１１をＲＡＭ５０内に組み込んで割込処理調停装置を構成してもよい。
【００４３】
共通割込ハンドラ１００ａは、以下の処理を行なう。
（１）割込み受付処理をハードウェアに対して行なう。具体的には、割込マスク処理を行なう。
（２）割り込まれた割込ハンドラに対応するＣＰＵレジスタ（ＰＣ：プログラムカウンタを含む）等の情報をスタック領域１１に格納する。
（３）割り込んだ割込ハンドラに対応するＣＰＵレジスタ等の情報をスタック領域１１から読み出す。
（４）ＰＣの値を最後に呼び出す。これにより、個別割込ハンドラ（割込ハンドラＡ，Ｂ，Ｃ）にジャンプする。ここで、各割込ハンドラＡ，Ｂ，Ｃの実行位置は、図示しない初期化プログラムで各使用領域１１＿１ａ，１１＿２ａ，１１＿３ａ内に初期設定されている。このため、各割込ハンドラＡ，Ｂ，Ｃは、最初の時点では、この実行位置から割込処理を実行する。尚、従来の割込処理調停装置では、この（４）における処理と同等の処理は、割込ハンドラへの関数コールで行なわれる。本実施形態では、ジャンプする（ジャンプ命令）ことにより行なわれるため、処理プログラムのステップ数や処理時間が短くて済む。
【００４４】
個別割込処理部１００ｂは、以下の処理を行なう。
（１）割込処理（各割込ハンドラＡ，Ｂ，Ｃによる割込処理）を実行する。
（２）割込優先順位を最下位にする。
【００４５】
終了処理部１００ｃは、以下の処理を行なう。
（１）割込みを禁止する。
（２）スタック領域１１を初期化して次の割込み時に備える。
（３）後述する共通割込待ち処理部１００ｅにジャンプする。
【００４６】
個別割込ハンドライベント待ち処理部１００ｄは、以下の処理を行なう。
（１）割込みを禁止する。
（２）スタック領域１１に格納されているＰＣの値を、待ち状態解除後に実行されるべきアドレスに置き換える。
（３）割込優先順位を最下位にする。
（４）共通割込待ち処理部１００ｅにジャンプする。
【００４７】
共通割込待ち処理部１００ｅは、以下の処理を行なう。
（１）ルーピング開始アドレスをセットする。
（２）割込みの受け付けを行なう（イネーブルインタラプトの実行）。
（３）上記（１）のルーピング開始アドレスにジャンプすることにより、ルーピングを行なう。
【００４８】
ここで、図２を参照して、本実施形態の割込処理調停装置１０の実行手順について説明する。ここでは、本実施形態の特徴部分である時刻ｔ２の時点から説明する。割込ハンドラＢによる割込処理実行中に、時刻ｔ２で割込ハンドラＣによる割込処理を実行するための割込信号が、割込コントローラ２０（図１参照）から出力される。割込ハンドラＣの割込優先順位の方が割込ハンドラＢの割込優先順位よりも高いので、割込ハンドラＢによる割込処理に代えて割込ハンドラＣによる割込処理が、以下の手順で実行される。
【００４９】
先ず、共通割込ハンドラ１００ａによる処理が行なわれる。ここでは、前述したようにして、割込マスク処理、割り込まれた割込ハンドラＢに対応するレジスタ情報のスタック領域１１（使用領域１１＿２ａ）への格納、割り込んだ割込ハンドラＣに対応するレジスタ情報のスタック領域１１（使用領域１１＿３ａ）からの読み出しを行なう。ここで、読み出しにあたり、最後に割込ハンドラＣの実行位置（ＰＣの値）を呼び出す。これにより、割込ハンドラＣにジャンプする。
【００５０】
次いで、個別割込処理部１００ｂによる処理が行なわれる。ここでは、割込ハンドラＣによる割込処理が行なわれる。割込ハンドラＣによる割込処理において、時刻ｔ３の時点で、外部装置に向けて演算処理を実行する旨の命令が行なわれる。尚、外部装置では演算処理結果が得られるまでに時刻ｔ３から時刻ｔ４までの時間が必要とされる。また、割込み優先順位を最下位にする。
【００５１】
さらに、時刻ｔ３の時点では、個別割込ハンドライベント待ち処理部１００ｄによる処理が行なわれる。ここでは、割り込みを禁止し、スタック領域１１（使用領域１１＿３ａ）に格納されているＰＣの値（割込ハンドラＣのアドレス）を、待ち状態解除後に実行されるべきアドレスに置き換える。また、割込み優先順位を最下位にして、共通割込待ち処理部１００ｅにジャンプする。
【００５２】
共通割込待ち処理部１００ｅでは、割込みの受け付けおよびルーピング処理を行なう。すると、割込コントローラ２０から割込ハンドラＢに対応する割込信号が時刻ｔ３の直後に発生し、これにより割込ハンドラＢによる割込処理が、以下の手順で実行される。
【００５３】
先ず、共通割込ハンドラ１００ａによる処理が行なわれる。ここでは、割込マスク処理、割り込まれた割込ハンドラＣに対応するレジスタ情報のスタック領域１１（使用領域１１＿３ａ）への格納、割り込んだ割込ハンドラＢに対応するレジスタ情報のスタック領域１１（使用領域１１＿２ａ）からの読み出しを行なう。これにより、割込ハンドラＢにジャンプする。
【００５４】
次いで、個別割込処理部１００ｂによる処理、即ち割込ハンドラＢによる割込処理と割込優先順位を最下位にする処理が行なわれる。ここでは、前述した外部装置による演算処理結果が得られるまでに必要な時刻ｔ３から時刻ｔ４までのイベント待ち時間に、この割込ハンドラＢによる割込処理が行なわれる。従って、ＣＰＵの処理効率を高めることができる。割込ハンドラＢによる割込処理の途中の時刻ｔ４で外部装置から演算処理終了の旨を受けると、割込ハンドラＣに対する２度目の割込みが発生し、割込ハンドラＣによる割込処理が、以下の手順で実行される。
【００５５】
即ち、共通割込ハンドラ１００ａによる処理、個別割込処理部１０ｂによる処理、終了処理部１００ｃによる処理、および個別割込ハンドライベント待ち処理部１００ｄによる処理が行なわれる。このようにして、時刻ｔ５の時点で割込ハンドラＣによる割込処理が一通り終了する。
【００５６】
すると、今度は、割込コントローラ２０により、割込ハンドラＢに対する割込みが発生し、上述したと同じ一連の手順である、共通割込ハンドラ１００ａによる処理、個別割込処理部１００ｂによる処理、終了処理部１００ｃによる処理、および個別割込ハンドライベント待ち処理部１００ｄによる処理が行なわれる。このようにして、時刻ｔ６の時点で割込ハンドラＢによる割込処理が一通り終了する。
【００５７】
さらに、割込コントローラ２０により、割込ハンドラＡに対する割込みが発生し、一連の手順である、共通割込ハンドラ１００ａによる処理、個別割込み処理部１００ｂによる処理、終了処理部１００ｃによる処理、および個別割込ハンドライベント待ち処理部１００ｄによる処理が行なわれる。このようにして、割込ハンドラＡによる割込処理が行なわれる。
【００５８】
本実施形態では、割込コントローラ２０からの割込信号をＣＰＵ３０が受け付けた時点で、スタック領域１１の使用領域１１＿１ａ，１１＿２ａ，１１＿３ａに格納された実行位置から割込処理を開始するための共通割込ハンドラ１００ａが備えられている。このようにすることにより、複数の異なる優先順位を持つ複数の割込信号を１つの共通割込ハンドラ１００ａに対応させることができ、従って共通割込ハンドラ１００ａ、即ち同じ処理ルーチン（コンテキスト）の中で優先度の異なる割込処理を複数実行することができる。
【００５９】
このように、本実施形態では、複数の割込優先順位を有する複数の割込ハンドラによる割込処理において、それら複数の割込優先順位を自在に変更することにより、それら複数の割込ハンドラによる割込処理を自在に制御することができる。また、１つの割込ハンドラに複数の割込信号を対応させることもできる。
【００６０】
また、本実施形態では、ある割込優先順位を有する割込ハンドラにおいてイベント待ち状態が発生する場合、その割込ハンドラの優先順位よりも低い割込優先順位を有する割込ハンドラに制御を渡して割込処理を行なうことができる。このため、イベント待ち状態における時間に、上記低い優先順位を有する割込ハンドラによる割込処理が実行される。従って、ＣＰＵのアイドリング時間を短く抑えることができ、ＣＰＵを有効に使用することができる。
【００６１】
【発明の効果】
以上説明したように、本発明の割込処理調停装置によれば、ＣＰＵの処理効率を高めたまま、簡単な構成で複数の割込ハンドラの処理の実行の競合を調停することができる。
【図面の簡単な説明】
【図１】本発明の一実施形態の割込処理調停装置を含むシステムを示す図である。
【図２】図１に示す割込処理調停装置により、複数の割込ハンドラの処理の実行の競合が調停される様子を示す図である。
【図３】図１に示すスタック領域の構成を示す図である。
【図４】本実施形態の割込処理調停装置を含むシステムにおける割込処理プログラムの概念的な構成図である。
【図５】従来の、複数の割込ハンドラによる割込処理が行なわれる様子を示す図である。
【図６】図５に示す割込処理で使用されるスタック領域を示す図である。
【図７】イベント待ち時間に、割込ハンドラＢによる割込処理が実行される様子を示す図である。
【符号の説明】
１０  割込処理調停装置
１１  スタック領域
１１＿１，１１＿２，１１＿３  レジスタ保存領域
１１＿１ａ，１１＿２ａ，１１＿３ａ  使用領域
１１＿１ｂ，１１＿２ｂ，１１＿３ｂ  予備領域
１２  優先順位制御部
１３  実行調停部
２０  割込コントローラ
３０  ＣＰＵ
４０  ＲＯＭ
５０  ＲＡＭ
１００  割込処理プログラム
１００ａ  共通割込ハンドラ
１００ｂ  個別割込処理部
１００ｃ  終了処理部
１００ｄ  個別割込ハンドライベント待ち処理部
１００ｅ  共通割込待ち処理部
【図１】
2004199558.tif 000003
【図２】
2004199558.tif 000004
【図３】
2004199558.tif 000005
【図４】
2004199558.tif 000006
【図５】
2004199558.tif 000007
【図６】
2004199558.tif 000008
【図７】
2004199558.tif 000009