(57)【特許請求の範囲】
【請求項１】
プロセッサが受け付ける割り込みを制御する割り込み制御回路において、
複数の割り込みのそれぞれについて、当該割り込みに設定されたグループの情報を保持
するグループ設定レジスタと、
各グループについて、当該グループに属する割り込みをマスクすべきか否かを指定する
情報を保持するマスク情報レジスタと、
複数の割り込みのそれぞれについて、前記グループ設定レジスタ及びマスク情報レジス
タの情報に基づいてマスクすべきか否かを判定し、該判定結果に従って割り込みをマスク
する第１のマスク手段であって、前記マスク情報レジスタが複数のグループにわたって割
り込みをマスクしない指定を行うことに応答して、当該複数のグループにわたって前記割
り込みをマスクしない第１のマスク手段と、
複数の割り込みのそれぞれについて、当該割り込みに設定された優先度の情報を保持する
優先度設定レジスタと、
プロセッサが現在受け付けている割り込みの優先度を保持する優先度保持レジスタと、
複数の割り込みのそれぞれについて、前記優先度設定レジスタ及び優先度保持レジスタの
情報に基づいてマスクすべきか否かを判定し、該判定結果に従って割り込みをマスクする
第２のマスク手段と、
前記第１のマスク手段によるマスクがなされない前記複数のグループに属する割り込みであり、かつ、前記第２のマスク手段によるマスクがなされない割り込みの中から優先するものを選別する出力回路
を備えることを特徴とする割り込み制御回路。
【請求項２】
前記マスク情報レジスタに保持された情報は、プロセッサの処理の状況に応じて逐次書
き換えられる、請求項１に記載の割り込み制御回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、割り込み制御回路に関し、更に詳しくは、複数の割り込みのうちの一部をマスクする割り込み制御回路に関する。
【背景技術】
【０００２】
特定用途向けの組み込みシステム（embedded system）が普及している。組み込みシステムの適用は、例えば、家電機器や、自動車等といった多岐の分野にわたっている。組み込みシステムでは、１つのプロセッサが制御する対象が増えてきており、それに伴って、プロセッサが取り扱う割り込み信号の数も増加している。例えば、プロセッサが、電子制御機器のシステム制御を行うと共に、システムの自己診断やデータのバックアップを行う場合には、そのプロセッサには、システム制御に関係する割り込みと、システムの自己診断やデータのバックアップに関係する割り込みとが入力される。
【０００３】
電子制御機器のシステム制御では、プロセッサは、発生した割り込みに対応して、時々刻々と変化する電子制御機器の動作状況に応じた処理を行う。このとき、システム制御に対応する割り込みが発生してから、その処理を実際に終えるまでの時間が、あらかじめ定められた所定の期間（制約時間）を超えると、システムの制御が電子制御機器の状態の変化に追いつかなくなって、システム制御に支障が出ることがある。このため、プロセッサには、システム制御の処理については、必ず、割り込みが発生してから所定の期間内に処理を終え、その結果を返すことが要求される、つまり、高いリアルタイム性が要求される。ここで、リアルタイム性とは、一般的には、システムに課せられる時間的制約を満足できることをいう。一方、自己診断やデータのバックアップについては、対応する割り込みが発生してから、実際に処理を終えるまでの時間が時によってまちまちであったとしても大きな問題は発生せず、それほど高いリアルタイム性は要求されない。
【０００４】
上記プロセッサでは、プロセッサに課せられる制約時間は、電子制御機器の動作状況に応じて変化し、例えば電子制御機器の動作が高速である場合には、システム制御に課せられる制約時間は短くなり、電子制御機器の動作が低速である場合には、システム制御に課せられる制約時間は長くなる。システムに課せられる制約時間が短いとき、或いは、一定時間に行う処理が増えたとき、プロセッサの処理能力の余裕が少なくなることから、プロセッサが全ての割り込みを受け付け可能とすると、割り込みが過剰に発生した場合には、その制約時間内に処理を終えることができず、処理が間に合わないといった事態が生じ得る。
【０００５】
通常、各割り込みは、プロセッサの動作とは非同期に、それぞれの要因に応じて発生するものであるから、割り込みの発生自体を抑制することはできないが、プロセッサが受け付け可能とする割り込みを制御することはできる。この割り込みの制御では、割り込みコントローラによって、プロセッサの処理能力に余裕がないときには、要求されるリアルタイム性が低い割り込みを一時的にマスクしてこれを保留し、要求されるリアルタイム性が高い割り込みのみがプロセッサによって受け付けられるようにする。このような、割り込みを一時的にマスクする技術としては、例えば特許文献１や特許文献２に記載された技術がある。
【０００６】
図６は、特許文献２に記載された、割り込みコントローラを有する半導体装置の一部を示している。割り込みコントローラ２０２は、割り込みマスクテーブル２０３を備えている。割り込みマスクテーブル２０３には、入力する複数の割り込み信号のそれぞれについて、その割り込み信号をマスクするか否かの情報が書き込まれる。割り込みマスクテーブル２０３は、ＣＰＵ２０１の処理の状態に応じて書き換え可能に構成される。各割り込みには、その割り込みに要求されるリアルタイム性に応じて優先度が設定されており、その優先度は、要求されるリアルタイム性が高いほど、高く設定される。
【０００７】
割り込みコントローラ２０２は、割り込みマスクテーブル２０３を参照して、入力する複数の割り込み信号のうち、マスクする旨の情報が書き込まれている割り込み信号については、その割り込み信号をマスクしてＣＰＵ２０１に伝達しない。これとは逆に、マスクしない旨の情報が書き込まれている割り込み信号については、その割り込み信号をマスクせずにＣＰＵ２０１に伝達する。これによって、割り込みマスクテーブル２０３にマスクしない旨の情報が書き込まれている所望の割り込み信号のみが、ＣＰＵ２０１によって受け付け可能にされる。
【０００８】
組み込みシステムでは、ＣＰＵ２０１の処理能力に余裕があるか否かは、制御対象の機器の動作状況によって判断される。ＣＰＵ２０１の処理能力に余裕があるときには、割り込みマスクテーブル２０３には、全ての割り込み信号をマスクしない旨の情報が書き込まれ、全ての割り込み信号が、ＣＰＵ２０１によって受け付け可能にされる。これとは逆に、ＣＰＵ２０１の処理能力に余裕がないときには、割り込みマスクテーブル２０３には、優先度が低い割り込み信号をマスクする旨の情報が書き込まれ、優先度が高い所望の割り込み信号のみが、ＣＰＵ２０１に受け付け可能となる。
【０００９】
図７は、ＣＰＵ２０１によって受け付け可能にされる割り込み信号を、処理の進行と共に示している。ＣＰＵ２０１は、時間の進行に従って、フェーズ１〜フェーズ６の処理を行う。なお、この例では、割り込みコントローラ２０２に入力される割り込み信号は、割り込み信号ＩＮＴ（０）〜ＩＮＴ（１５）までの１６個であり、優先度は、ＰＲＩ＃０〜＃３までの４段階である例について示している。優先度は、数字が小さいものほど高いものとし、優先度ＰＲＩ＃０＞優先度ＰＲＩ＃１＞優先度ＰＲＩ＃２＞優先度ＰＲＩ＃３である。
【００１０】
図７の例では、割り込み信号ＩＮＴ（０）、ＩＮＴ（４）、ＩＮＴ（８）、ＩＮＴ（１２）の優先度は、それぞれ優先度ＰＲＩ＃０に設定され、割り込み信号ＩＮＴ（１）、ＩＮＴ（５）、ＩＮＴ（９）、ＩＮＴ（１３）の優先度は、それぞれ優先度ＰＲＩ＃１に設定されている。また、割り込み信号ＩＮＴ（２）、ＩＮＴ（６）、ＩＮＴ（１０）、ＩＮＴ（１４）の優先度は、それぞれ優先度ＰＲＩ＃２に設定され、割り込み信号ＩＮＴ（３）、ＩＮＴ（７）、ＩＮＴ（１１）、ＩＮＴ（１５）の優先度は、それぞれ優先度ＰＲＩ＃３に設定されている。
【００１１】
フェーズ１は、制御対象機器において、制約時間内に処理ができないほど処理が増え、ＣＰＵ２０１の処理能力に余裕がない状態にある。この状態では、割り込みマスクテーブル２０３には、割り込み信号ＩＮＴ（０）、ＩＮＴ（４）、ＩＮＴ（８）、ＩＮＴ（１２）についてはマスクしない旨の情報が書き込まれ、それ以外の割り込みについてはマスクする旨の情報が書き込まれる。これにより、優先度ＰＲＩ＃１以下に設定されている全ての割り込み信号がマスクされ、優先度ＰＲＩ＃０に設定されている割り込み信号のみがＣＰＵ２０１によって受け付け可能にされている。
【００１２】
フェーズ２は、制御対象機器の動作状況が変化し、制約時間が少し長くなって、ＣＰＵ２０１の処理能力に少し余裕が出てきた状態にある。この状態では、割り込みマスクテーブル２０３には、フェーズ１でマスクしない旨の情報が書き込まれた割り込み信号に加え、割り込み信号ＩＮＴ（１）、ＩＮＴ（５）、ＩＮＴ（９）、ＩＮＴ（１３）についてもマスクしない旨の情報が書き込まれる。これにより、優先度ＰＲＩ＃２以下に設定されている割り込み信号がマスクされ、優先度ＰＲＩ＃０及び優先度ＰＲＩ＃１に設定されている割り込み信号がＣＰＵ２０１によって受け付け可能にされている。
【００１３】
フェーズ３は、ＣＰＵ２０１の処理能力の余裕がフェーズ２と同じ程度であるため、割り込みマスクテーブル２０３に書き込まれる情報はフェーズ２と同様であり、優先度ＰＲＩ＃０及びＰＲＩ＃１に設定されている割り込み信号がＣＰＵ２０３によって受け付け可能にされている。フェーズ４は、ＣＰＵ２０１の処理能力の余裕がフェーズ１と同じ程度であるため、割り込みマスクテーブル２０３に書き込まれる情報はフェーズ１と同様であり、優先度ＰＲＩ＃０に設定されている割り込み信号のみがＣＰＵ２０３によって受け付け可能にされている。
【００１４】
フェーズ５及びフェーズ６は、ＣＰＵ２０１の処理能力の余裕がフェーズ２及びフェーズ３と同様であるため、割り込みマスクテーブル２０３に書き込まれる情報は、フェーズ２及びフェーズ３と同様である。従って、フェーズ５及びフェーズ６では、優先度ＰＲＩ＃０及びＰＲＩ＃１に設定されている割り込み信号がＣＰＵ２０３によって受け付け可能にされている。
【特許文献１】特開平５−２１０５１４号公報
【特許文献２】特開平８−２９７５８１号公報（図１、段落００１８）
【発明の開示】
【発明が解決しようとする課題】
【００１５】
ところで、従来は、プロセッサの処理能力に応じて、優先度が高い順に、受け付け可能とする割り込みを増やすように制御しているため、プロセッサの処理能力にある程度まで余裕が出てくるまでは、優先度の低い割り込みが受け付け可能にされない。優先度が低い割り込みは、要求されるリアルタイム性が低いとはいえ、長時間にわたって受け付けられなくてもよいというわけではない。しかし、処理が立て込んでいるような場合には、図７に示すように、優先度ＰＲＩ＃２以下の割り込みが全く受け付け可能にならないという問題がある。
【００１６】
例えば、フェーズ３において、優先度ＰＲＩ＃２に設定されている割り込みを受け付け可能としたいときには、割り込みコントローラ２０２は、割り込みマスクテーブル２０３を参照して、優先度ＰＲＩ＃０、ＰＲＩ＃１、及びＰＲＩ＃２に設定された割り込みが受け付け可能となるように制御する。しかし、この場合には、割り込みが過剰に発生するような状況では、プロセッサが行う処理件数が増大し、リアルタイム性が悪化するおそれがある。
【００１７】
また、割り込みマスクテーブル２０３には、各割り込みに対応して、その割り込みをマスクする旨、或いは、マスクしない旨の情報が書き込まれ、割り込みコントローラ２０２は、その割り込みマスクテーブル２０３を参照して、割り込みをマスクする旨の情報が書き込まれた割り込みをマスクしている。このため、割り込みコントローラ２０２によって割り込みをマスクしようとする場合には、個々の割り込み信号がどの優先度に設定されているかを考慮しながら制御する必要があり、マスクするための制御が煩雑であった。複数の割り込みのうち、いくつかの割り込みを一括でマスクすることができれば制御を単純化できるが、従来、そのような手法は採用されていなかった。
【００１８】
本発明は、上記従来技術の問題点を解消し、複数の割り込みのうちの所望の割り込みのみを、簡易にマスクすることができる割り込み制御回路を提供することを目的とする。また、本発明は、プロセッサの処理能力にそれほど処理に余裕がないときでも、リアルタイム性をそれほど悪化させることなく、優先度の低い割り込みをも受け付け可能とすることができる割り込み制御回路を提供する。
【課題を解決するための手段】
【００１９】
上記目的を達成するために、本発明の割り込み制御回路は、プロセッサが受け付ける割り込みを制御する割り込み制御回路において、複数の割り込みのそれぞれについて、当該割り込みに設定されたグループの情報を保持するグループ設定レジスタと、各グループについて、当該グループに属する割り込みをマスクすべきか否かを指定する情報を保持するマスク情報レジスタと、複数の割り込みのそれぞれについて、前記グループ設定レジスタ及びマスク情報レジスタの情報に基づいてマスクすべきか否かを判定し、該判定結果に従って割り込みをマスクする第１のマスク手段とを備えることを特徴とする。
【００２０】
本発明の割り込み制御回路では、第１のマスク手段は、マスク情報レジスタによってマスクすべきと指定されたグループに属する割り込みを、一括でマスクする。このため、マスク情報レジスタが保持するマスクすべきと指定する情報を、逐次書き換えることにより、プロセッサが受け付け可能とする割り込みを、簡易に変化させることができる。これにより、例えばプロセッサの処理能力に余裕がないときにも、要求されるリアルタイム性が低い割り込みを一時的に受け付け可能として、その要求されるリアルタイム性が低い割り込みが長時間にわたって受け付け可能にされない事態を回避することができる。また、マスクすべきグループを指定することで、そのグループに属する割り込みを一括でマスクできるため、割り込みごとにその割り込みをマスクする／しないの情報を書き込んで、所望の割り込みをマスクする従来の制御に比して、マスクすべき割り込みの制御を、簡易化できる。
【００２１】
本発明の割り込み制御回路は、複数の割り込みのそれぞれについて、当該割り込みに設定された優先度の情報を保持する優先度設定レジスタと、プロセッサが現在受け付けている割り込みの優先度を保持する優先度保持レジスタと、複数の割り込みのそれぞれについて、前記優先度設定レジスタ及び優先度保持レジスタの情報に基づいてマスクすべきか否かを判定し、該判定結果に従って割り込みをマスクする第２のマスク手段とを更に備えることが好ましい。この場合には、第２のマスク手段が、現在プロセッサが受け付けている割り込みよりも低い優先度に属する割り込みが発生したとしても、これをマスクすることで、現在受け付けている割り込みよりも優先度の低い割り込みが、プロセッサによって受け付けられないようにすることができる。ここで、優先度は、例えば割り込みに対応して実行される処理に要求されるリアルタイム性に応じて設定される。
【００２２】
本発明の割り込み制御回路では、前記マスク情報レジスタに保持された情報は、プロセッサの処理の状況に応じて逐次書き換えられることが好ましい。例えば、プロセッサの処理が立て込み、プロセッサの処理能力に余裕がないときには、所望のグループに属する割り込みのみがプロセッサによって受け付けられるような情報を、マスク情報レジスタに書き込み、プロセッサが受け付け可能とする割り込みを制限するとよい。また、その際に、受け付け可能とするグループを逐次変化させることで、プロセッサの処理能力に余裕がない場合でも、あるグループに属する割り込みが長時間にわたって受け付け可能にされない事態を防止することができる。
【００２３】
本発明の別の視点の割り込み制御回路は、プロセッサが受け付ける割り込みを制御する割り込み制御回路において、複数の割り込みのそれぞれについて、当該割り込みに設定された優先度の情報を保持する優先度設定レジスタと、各グループについて、当該優先度に属する割り込みをマスクすべきか否かを指定する情報を保持するマスク情報レジスタと、複数の割り込みのそれぞれについて、前記優先度設定レジスタ及びマスク情報レジスタの情報に基づいてマスクすべきか否かを判定し、該判定結果に従って割り込みをマスクする第１のマスク手段とを備えることを特徴とする。
【００２４】
本発明の別の視点の割り込み制御回路では、第１のマスク手段は、マスク情報レジスタによってマスクすべきと指定された優先度に属する割り込みを、一括でマスクする。このため、マスク情報レジスタが保持する、マスクすべきと指定する情報を逐次に書き換えることにより、プロセッサが受け付け可能とする割り込みを、簡易に変化させることができる。これにより、例えばプロセッサの処理能力に余裕がないときにも、優先度の低い割り込みを一時的に受け付け可能として、その優先度の低い割り込みが長時間にわたって受け付け可能にされない事態を回避することができる。また、マスクすべき優先度を指定することで、その優先度に属する割り込みを一括でマスクできるため、割り込みごとにその割り込みをマスクする／しないの情報を書き込んで、所望の割り込みをマスクする従来の制御に比して、マスクすべき割り込みの制御を、簡易化できる。
【００２５】
本発明の別の視点の割り込み制御回路は、プロセッサが現在受け付けている割り込みの優先度を保持する優先度保持レジスタと、複数の割り込みのそれぞれについて、前記優先度設定レジスタ及び優先度保持レジスタの情報に基づいてマスクすべきか否かを判定し、該判定結果に従って割り込みをマスクする第２のマスク手段とを更に備えることが好ましい。この場合には、第２のマスク手段が、現在プロセッサが受け付けている割り込みよりも低い優先度に設定された割り込みが発生したとしても、これをマスクすることで、現在受け付けている割り込みよりも優先度の低い割り込みが、プロセッサによって受け付けられないようにすることができる。
【００２６】
本発明の別の視点の割り込み制御回路では、前記マスク情報レジスタに保持された情報は、プロセッサの処理の状況に応じて逐次書き換えられることが好ましい。例えば、プロセッサの処理が立て込み、プロセッサの処理能力に余裕がないときには、所望の優先度に属する割り込みのみがプロセッサによって受け付けられるような情報を、マスク情報レジスタに書き込んで、プロセッサが受け付け可能とする割り込みを制限するとよい。また、その際に、受け付け可能とする優先度を逐次変化させることで、プロセッサの処理能力に余裕がない場合でも、優先度が低い割り込みが長時間にわたって受け付け可能にされない事態を防止することができる。
【発明の効果】
【００２７】
本発明の割り込み制御回路では、マスクすべきグループ又は優先度を指定することで、そのグループ又は優先度に属する割り込みを一括でマスクできるため、従来に比して、マスクすべき割り込みの制御を、簡易化できる。また、マスク情報レジスタが保持する、マスクすべきと指定する情報を書き換えることにより、プロセッサが受け付け可能とする割り込みを逐次変化させることができ、その場合には、ある割り込みが長時間にわたって受け付け可能にされない事態を回避することができる。
【発明を実施するための最良の形態】
【００２８】
以下、図面を参照し、本発明の実施形態例に基づいて、本発明を更に詳細に説明する。図１は、本発明の第１実施形態例の割り込み制御回路を有する半導体装置の構成を示している。半導体装置１００は、プロセッサ１０１と、割り込み制御回路１０２とを備える。この半導体装置１００は、例えば電子制御機器の制御を行う組み込みシステムに用いられ、プロセッサ１０１は、電子制御機器のシステム制御や、センサから入力された情報によるデータの演算処理、システムの自己診断、データのバックアップ等を行う。
【００２９】
割り込み制御回路１０２は、割り込みグループマスクレジスタ１０３、割り込みサービスレベル保持レジスタ１０４、出力信号生成回路１０６、及び、複数の割り込み要因制御モジュール１０５（０）〜（Ｎ）（Ｎ：自然数）を備える。本実施形態例では、複数の割り込みをいくつかのグループに分け、そのグループ単位で、割り込みをマスクし、プロセッサ１０１が受け付け可能とする割り込みを制限する。各割り込みは、例えば、システム制御に関係する割り込みが属するグループ、システムの自己診断に関係する割り込みが属するグループといったように、プロセッサ１０１が行う処理ごとにグループ分けされる。
【００３０】
割り込み制御回路１０２は、複数の割り込み信号ＩＮＴ（０）〜ＩＮＴ（Ｎ）を入力し、プロセッサ１０１に、割り込み要求信号と、割り込み識別信号とを送信する。各割り込み信号ＩＮＴには、それぞれ、優先度とグループとが設定されている。図２は、各割り込み信号に設定される、優先度及びグループを示している。この例では、Ｎ＝１５であり、優先度として、ＰＲＩ＃０〜ＰＲＩ＃３までの４つの優先度が設定され、グループとして、Ｇｒｐ＃０〜Ｇｒｐ＃７までの８つのグループが設定されている。
【００３１】
ここで、優先度は、割り込みに対応する処理に要求されるリアルタイム性の高低に応じて設定され、値が小さいほど優先度が高いものとする。割り込み信号ＩＮＴ（０）、ＩＮＴ（４）、ＩＮＴ（８）、及びＩＮＴ（１２）は、最も要求されるリアルタイム性が高い割り込みであり、その優先度は、最も高いＰＲＩ＃０に設定されている。割り込み信号ＩＮＴ（１）、ＩＮＴ（５）、ＩＮＴ（９）、及びＩＮＴ（１３）の優先度は、２番目に高いＰＲＩ＃１に設定される。
【００３２】
割り込み信号ＩＮＴ（２）、ＩＮＴ（６）、ＩＮＴ（１０）、及びＩＮＴ（１４）の優先度は、３番目に高いＰＲＩ＃２に設定される。割り込み信号ＩＮＴ（３）、ＩＮＴ（７）、ＩＮＴ（１１）、及びＩＮＴ（１５）の優先度は、最も低いＰＲＩ＃３に設定される。なお、優先度が同じ割り込みが競合した場合には、プロセッサ１０１は、競合する割り込みのうち、割り込み番号が小さい方を受け付けるものとする。例えば、同じ優先度ＰＲＩ＃０に設定される割り込み信号ＩＮＴ（０）と割り込み信号ＩＮＴ（４）とが競合したときには、プロセッサ１０１は、割り込み信号ＩＮＴ（０）を受け付けるものとする。
【００３３】
割り込み要因制御モジュール１０５（０）〜（Ｎ）は、それぞれ、割り込み信号ＩＮＴ（０）〜（Ｎ）に対応して設けられる。割り込みグループマスクレジスタ１０３は、マスクすべきグループを指定するレジスタとして構成される。割り込みサービスレベル保持レジスタ１０４は、プロセッサ１０１が現在処理を行っている割り込みに対応して設定されている優先度を保持する。各割り込み要因制御モジュール１０５は、割り込みグループマスクレジスタ１０３及び割り込みサービスレベル保持レジスタ１０４を参照して、入力される割り込み信号ＩＮＴを、出力信号生成回路１０６に伝達するか否かを決定する。
【００３４】
図３は、図１に示す、各割り込み要因制御モジュール１０５の構成を示している。割り込み要因制御モジュール１０５（０）〜（Ｎ）は、それぞれ、割り込み要因保持装置１５１、割り込みマスク回路１５２、割り込みレベル判定回路１５３、割り込みグループ設定レジスタ１５４、及び、割り込みレベル設定レジスタ１５５を備える。割り込み要因保持装置１５１は、入力する割り込み信号ＩＮＴを、その割り込み信号ＩＮＴがプロセッサ１０１によって受け付けられるまで保持し、割り込みが発生している旨を割り込みマスク回路１５２に入力する。
【００３５】
割り込みレベル設定レジスタ１５５は、割り込み要因制御モジュール１０５に入力する割り込み信号ＩＮＴに設定された優先度を記憶する。例えば、各割り込みに図２に示すような優先度が設定されているときには、割り込み要因制御モジュール１０５（０）、１０５（４）、１０５（８）、及び１０５（１２）の割り込みレベル設定レジスタ１５５には、それぞれ優先度ＰＲＩ＃０を示す情報を保持し、割り込み要因制御モジュール１０５（１）、１０５（５）、１０５（９）、及び１０５（１３）の割り込みレベル設定レジスタ１５５には、それぞれ優先度ＰＲＩ＃１を示す情報を保持する。
【００３６】
割り込みグループ設定レジスタ１５４は、割り込み要因制御モジュール１０５に入力する割り込み信号ＩＮＴに設定されたグループ番号を記憶する。例えば、割り込みが図２に示すようにグループ分けされているときには、割り込み要因制御モジュール１０５（０）及び１０５（４）の割り込みグループ設定レジスタ１５４には、それぞれグループＧｒｐ＃０を示す情報としてグループ番号０を保持し、割り込み要因制御モジュール１０５（８）及び１０５（１２）の割り込みグループ設定レジスタ１５４には、それぞれグループＧｒｐ＃４を示す情報としてグループ番号４を保持する。
【００３７】
割り込みグループマスクレジスタ１０３は、例えば、割り込み信号ＩＮＴに設定されるグループ数に応じたビット数を有するレジスタとして構成され、その各ビットには、それぞれのビットに対応するグループ番号に設定された割り込み信号をマスクすべき旨の情報（“１”）、又は、割り込み信号をマスクしない旨の情報（“０”）が書き込まれている。例えば、グループＧｒｐ＃３に設定されている割り込み信号をマスクしたいときには、割り込みグループマスクレジスタ１０３の３番目のビットには“１”が書き込まれる。また、グループＧｒｐ＃３及びグループＧｒｐ＃７に設定されている割り込み信号をマスクしたいときには、割り込みグループマスクレジスタ１０３の３番目のビット、及び、７番目のビットにそれぞれ“１”が書き込まれる。
【００３８】
割り込みマスク回路１５２は、割り込みグループ設定レジスタ１５４が保持するグループ番号に対応する、割り込みグループマスクレジスタ１０３のビットに書き込まれている情報を読み取る。割り込みマスク回路１５２は、読み取ったビットに、割り込み信号をマスクしない旨の情報（“０”）が書き込まれているときには、割り込み要因保持装置１５１から入力する割り込みが発生している旨の信号を、そのまま割り込みレベル判定回路１５３に入力する。これとは逆に、そのビットに、割り込み信号をマスクすべき旨の情報（“１”）が書き込まれているときには、割り込み要因保持装置１５１から入力する割り込みが発生している旨の信号をマスクして、その旨の信号を割り込みレベル判定回路１５３に入力しない。
【００３９】
割り込みレベル判定回路１５３は、割り込み信号ＩＮＴに設定された優先度を割り込みレベル設定レジスタ１５５から読み出し、その優先度と、割り込みサービスレベル保持レジスタ１０４が保持する、現在プロセッサ１０１が実行中の処理の優先度とを比較する。割り込みレベル判定回路１５３は、割り込みマスク回路１５２から割り込みが発生した旨の信号を入力するとき、プロセッサ１０１が現在実行中の処理の優先度が、割り込み要因制御モジュール１０５に入力される割り込み信号ＩＮＴに設定された優先度よりも低ければ、入力する割り込みが発生した旨の信号を、出力信号生成回路１０６（図１）に受け渡す。
【００４０】
出力信号生成回路１０６は、割り込み要因制御モジュール１０５（０）〜（Ｎ）から、対応する割り込みが発生した旨の信号が入力されると、その発生した割り込みに対応する割り込み要求信号と割り込み識別信号とをプロセッサ１０１に入力する。出力信号生成回路１０６は、複数の割り込み要因制御モジュール１０５から割り込みが発生した旨の信号を入力するときには、割り込み番号の値が小さいものを優先し、その値が小さい方の割り込みに対応する割り込み要求信号と割り込み識別信号とをプロセッサ１０１に入力する。プロセッサ１０１は、何れかの割り込みを受け付けると、その割り込み対応した処理を開始し、割り込みサービスレベル保持レジスタ１０４の値を、新たに受け付けた割り込みに対応して設定されている優先度で更新する。
【００４１】
図４は、プロセッサ１０１によって受け付け可能にされる割り込み信号を処理の進行と共に示している。プロセッサ１０１は、時間経過と共に、フェーズ１〜フェーズ６の処理を行う。なお、各割り込み信号に設定される優先度及びグループは、図２のように設定されているものとし、図４中に網掛けで示す番号の割り込みがプロセッサ１０１によって受け付け可能にされるものする。この一連の処理では、グループＧｒｐ＃０に設定された割り込みについては、全ての期間（フェーズ）でプロセッサ１０１によって受け付け可能にされ、グループＧｒｐ＃１〜Ｇｒｐ＃３、及び、グループＧｒｐ＃５に設定された割り込みついては、プロセッサ１０１の処理の余裕に応じて、受け付け可能にされ、或いは、受付不可にされる。
【００４２】
ここで、図４に示す一連の処理は、以下に示す条件を満たして進行するものとする。優先度ＰＲＩ＃０に設定される割り込みのうち、グループＧｒｐ＃０に設定された割り込み信号ＩＮＴ（０）及びＩＮＴ（４）は、それぞれ最も重要な割り込みであり、それら割り込みが発生したときには、プロセッサ１０１は、直ちにその割り込みを受け付けなければならない。また、グループＧｒｐ＃１に設定される割り込み信号ＩＮＴ（１）及びＩＮＴ（５）と、グループＧｒｐ＃５に設定された割り込み信号ＩＮＴ（９）及びＩＮＴ（１３）とは、長時間にわたって受け付けられない期間があってはならない。更に、優先度がＰＲＩ＃２に設定される割り込みのうち、グループＧｒｐ＃２に設定される割り込み信号ＩＮＴ（２）及びＩＮＴ（６）と、優先度がＰＲＩ＃３に設定される割り込みのうち、グループＧｒｐ＃３に設定される信号ＩＮＴ（３）及びＩＮＴ（７）とについても、設定される優先度は低いものの、長時間受け付けられない期間があってはならない。
【００４３】
グループＧｒｐ＃４に設定される割り込み信号（８）及びＩＮＴ（１２）は、図４に示す一連の処理とは排他的に行われるべき処理に関係する割り込みである等により、ここでは、受け付ける必要がない割り込みである。このため、グループＧｒｐ＃４に設定される割り込みは、その優先度は最も高いＰＲＩ＃０に設定されてはいるが、この一連の処理では受け付け可能とはされない。同様に、グループＧｒｐ＃６に設定される割り込み信号ＩＮＴ（１０）及びＩＮＴ（１４）と、グループＧｒｐ＃７に設定される割り込み信号ＩＮＴ（１１）及びＩＮＴ（１５）とについても、この一連の処理では受け付ける必要がない割り込みであり、この一連の処理では、受け付け可能にされない。
【００４４】
フェーズ１は、例えば電子制御機器において、制約時間が短くなり、制約時間内に処理ができないほど処理が増えて、プロセッサ１０１の処理能力に余裕がない状態にある。フェーズ１では、割り込みグループマスクレジスタ１０３のグループＧｒｐ＃０に対応するビットには、割り込みをマスクしない旨の情報（“０”）が書き込まれ、それ以外のグループに対応するビットには、割り込みをマスクする旨の情報（“１”）が書き込まれる。これにより、割り込み要因制御モジュール１０５（１）〜（Ｎ）のうち、割り込みグループ設定レジスタ１５４にグループ番号０以外のグループ番号が書き込まれている割り込み要因制御モジュール１０５では、割り込みが発生したとしても、割り込みマスク回路１５２によって割り込みが発生した旨の信号がマスクされる。このため、フェーズ１では、プロセッサ１０１が受け付け可能とする割り込みが、一連の処理において最も重要な割り込みであるグループＧｒｐ＃０に設定された割り込みのみに制限される。
【００４５】
フェーズ２は、電子制御機器の動作状況が変化し、制約時間が少し長くなって、プロセッサ１０１の処理能力に少し余裕が出てきた状態にある。フェーズ２では、割り込みグループマスクレジスタ１０３のグループＧｒｐ＃０及びＧｒｐ＃１に対応するビットには、割り込みをマスクしない旨の情報（“０”）が書き込まれ、それら以外のグループに対応するビットには、割り込みをマスクする旨の情報（“１”）が書き込まれる。これにより、グループＧｒｐ＃０及びグループＧｒｐ＃１以外のグループに設定された割り込みがマスクされ、フェーズ２では、プロセッサ１０１は、グループＧｒｐ＃０に設定された割り込みに加えて、グループＧｒｐ＃１に設定された割り込みを受け付け可能とする。
【００４６】
フェーズ３は、プロセッサ１０１の処理能力の余裕がフェーズ２と同じ程度であるが、グループＧｒｐ＃０に設定された割り込みと共に、プロセッサ１０１によって受け付け可能にされるグループが、フェーズ２とは異なる。フェーズ３では、割り込みグループマスクレジスタ１０３のグループＧｒｐ＃０及びＧｒｐ＃２に対応するビットには、割り込みをマスクしない旨の情報（“０”）が書き込まれ、それら以外のグループに対応するビットには、割り込みをマスクする旨の情報（“１”）が書き込まれる。これにより、フェーズ３では、グループＧｒｐ＃１に代えて、グループＧｒｐ＃２に設定された割り込みが、グループＧｒｐ＃０と共に受け付け可能にされる。
【００４７】
フェーズ４は、再び制約時間が短くなり、プロセッサ１０１の処理能力の余裕は、フェーズ１と同様である。このため、フェーズ３では、フェーズ１と同様に、割り込みグループマスクレジスタ１０３のグループＧｒｐ＃０に対応するビットには、割り込みをマスクしない旨の情報（“０”）が書き込まれ、それ以外のグループに対応するビットには、割り込みをマスクする旨の情報（“１”）が書き込まれる。これにより、プロセッサ１０１が受け付け可能とする割り込みは、再び、グループＧｒｐ＃０に設定された割り込みのみに制限される。
【００４８】
フェーズ５は、制約時間が少し長くなって、フェーズ２と同様に、プロセッサ１０１の処理能力に少し余裕が出てきた状態にある。フェーズ５では、割り込みグループマスクレジスタ１０３のグループＧｒｐ＃０及びＧｒｐ＃５に対応するビットには、割り込みをマスクしない旨の情報（“０”）が書き込まれ、それら以外のグループに対応するビットには、割り込みをマスクする旨の情報（“１”）が書き込まれる。これにより、グループＧｒｐ＃０及びグループＧｒｐ＃５以外のグループに設定された割り込みがマスクされ、フェーズ５では、プロセッサ１０１は、グループＧｒｐ＃０に設定された割り込みに加えて、グループＧｒｐ＃５に設定された割り込みを受け付け可能とする。
【００４９】
フェーズ６は、プロセッサ１０１の処理能力の余裕がフェーズ５と同じ程度であるが、グループＧｒｐ＃０に設定された割り込みと共に、プロセッサ１０１によって受け付け可能にされるグループが、フェーズ５とは異なる。フェーズ６では、割り込みグループマスクレジスタ１０３のグループＧｒｐ＃０及びＧｒｐ＃３に対応するビットには、割り込みをマスクしない旨の情報（“０”）が書き込まれ、それら以外のグループに対応するビットには、割り込みをマスクする旨の情報（“１”）が書き込まれる。これにより、フェーズ６では、グループＧｒｐ＃５に代えて、グループＧｒｐ＃３に設定された割り込みが、グループＧｒｐ＃０と共に受け付け可能にされる。
【００５０】
本実施形態例では、プロセッサ１０１が受け付け可能とする割り込みを、処理の余裕に応じて、単に優先度が高いものから順に受け付け可能とするのではなく、余裕がそれほどないときでも、優先度の低い割り込みを一時的に受け付け可能としている。本実施形態例では、優先度ＰＲＩ＃２に設定された割り込みを受け付け可能としたいときには、図４のフェーズ３に示すように、優先度ＰＲＩ＃１に設定された割り込みを受け付け可能とせずに、優先度ＰＲＩ＃０に設定された割り込みの一部と、優先度ＰＲＩ＃２に設定された割り込みの一部が受け付け可能となるように制御している。このようにすることで、プロセッサ１０１は、その処理能力にそれほど処理に余裕がないときでも、リアルタイム性を悪化させることなく、優先度の低い割り込みに対応する処理を行うことがきる。
【００５１】
また、本実施形態例では、各割り込み要因制御モジュール１０５は、入力する割り込みに設定されたグループが、割り込みグループマスクレジスタ１０３によってマスクすべきと指定されているときには、割り込みが発生したとしても、その割り込みを保留し、割り込みが発生した旨を出力信号生成回路１０６に伝達しない。これにより、本実施形態例では、マスクすべきグループを指定するだけで、そのグループに設定される割り込みを一括でマスクできる。従って、個々の割り込みに対してマスクする／マスクしないを指定する従来に比して、所望の割り込みを、簡易にマスクすることができる。
【００５２】
なお、上記実施形態例では、同じ優先度に設定された割り込みを複数のグループに分ける、逆に言えば、同じグループに設定された割り込みは、全て同じ優先度に設定されている例について説明したが、各割り込みに設定するグループは任意に設定でき、同じグループに設定される割り込みが、すべて同じ優先度に設定されている必要はない。例えば、図２の例では、優先度ＰＲＩ＃０に設定される割り込み信号ＩＮＴ（０）及びＩＮＴ（４）と、優先度ＰＲＩ＃２に設定される割り込み信号ＩＴ（２）及びＩＮＴ（６）とを、グループＧｒｐ＃０に設定することもできる。
【００５３】
また、例えば、優先度ＰＲＩ＃０（図２）に設定された割り込みを全てグループＧｒｐ＃０に設定し、優先度ＰＲＩ＃１に設定された割り込みを全てグループＧｒｐ＃１に設定するといったように、グループと優先度とを１対１に対応させてもよい。その場合には、図３に示す割り込みグループ設定レジスタ１５４と割り込みレベル設定レジスタ１５５とが同じ情報を保持することとなる。この場合には、図５に示すように、割り込み要因制御モジュール１０５ａでは、割り込みグループ設定レジスタ１５４を省略することができる。割り込みレベルマスクレジスタ１０７は、割り込みグループマスクレジスタ１０３（図１）と同様に、各優先度について、その優先度に設定された割り込みをマスクする／しないの情報が書き込まれている。割り込みマスク回路１５２は、その割り込みレベルマスクレジスタ１０７に、割り込みレベル設定レジスタ１５５が保持する優先度の割り込みをマスクする旨の情報が書き込まれているか否かによって、割り込みが発生した旨をマスクするか否かを決定する。このような構成を採用する場合には、マスクすべき優先度を指定することで、その優先度に設定された割り込みを一括でマスクすることができる。
【００５４】
以上、本発明をその好適な実施形態例に基づいて説明したが、本発明の割り込み制御回路は、上記実施形態例にのみ限定されるものではなく、上記実施形態例の構成から種々の修正及び変更を施したものも、本発明の範囲に含まれる。
【図面の簡単な説明】
【００５５】
【図１】本発明の第１実施形態例の割り込み制御回路を有する半導体装置の構成を示すブロック図。
【図２】各割り込み信号に設定される、優先度及びグループを示すブロック図。
【図３】図１の割り込み要因制御モジュール１０５の構成例を示すブロック図。
【図４】プロセッサによって受け付け可能にされる割り込み信号を処理の進行と共に示すブロック図。
【図５】割り込み要因制御モジュール１０５の別の構成例を示すブロック図。
【図６】従来の割り込みコントローラを有する半導体装置の一部を示すブロック図。
【図７】プロセッサによって受け付け可能にされる割り込み信号を、処理の進行と共に示すブロック図。
【符号の説明】
【００５６】
１００：半導体装置
１０１：プロセッサ
１０２：割り込み制御回路
１０３：割り込みグループマスクレジスタ
１０４：割り込みサービスレベル保持レジスタ
１０５：割り込み要因制御モジュール
１０６：出力信号生成回路
１０７：割り込みレベルマスクレジスタ
１５１：割り込み要因保持装置
１５２：割り込みマスク回路
１５３：割り込みレベル判定回路
１５４：割り込みグループ設定レジスタ
１５５：割り込みレベル設定レジスタ
【図１】
0004731126.tif 000002
【図２】
0004731126.tif 000003
【図３】
0004731126.tif 000004
【図４】
0004731126.tif 000005
【図５】
0004731126.tif 000006
【図６】
0004731126.tif 000007
【図７】
0004731126.tif 000008