(57)【要約】【課題】  マイクロプロセッサに使用される割り込み制御装置に関し、構成の複雑化を招くことなく、割り込み禁止を必要とする割り込み制御における処理速度の向上と、スタック使用量の低減を図ることができる。【解決手段】  外部からの割り込み信号により割り込みプログラムを実行するマイクロプロセッサにおいて、割り込みプログラムを制御する割り込み制御装置であって、データアドレス１４と、割り込みプログラムが実行不可能なアドレス範囲とを比較して、データアドレス１４がアドレス範囲内に含まれるか否かを判断する比較装置１３と、比較装置１３により、データアドレス１４がアドレス範囲内に含まれると判断された場合、割り込みプログラムが実行不可能となるように割り込み信号を制御する割り込み信号制御装置１７とを備えたものである。【選択図】  図１
2006155048.tif 000002
【特許請求の範囲】
【請求項１】
外部からの割り込み信号により割り込みプログラムを実行するマイクロプロセッサにおいて、前記割り込みプログラムを制御する割り込み制御装置であって、
データアドレスと、前記割り込みプログラムが実行不可能なアドレス範囲とを比較して、前記データアドレスが前記アドレス範囲内に含まれるか否かを判断する比較手段と、
前記比較手段により、前記データアドレスが前記アドレス範囲内に含まれると判断された場合、割り込みプログラムが実行不可能となるように割り込み信号を制御する割り込み信号制御手段と、を備えた割り込み制御装置。
【請求項２】
前記比較手段は、前記割り込みプログラムが実行不可能なアドレス範囲を、領域開始指定記憶レジスタに記憶されているアドレスから領域終了指定記憶レジスタに記憶されているアドレスまでの範囲とする、ことを特徴とする請求項１に記載の割り込み制御装置。
【請求項３】
外部からの割り込み信号により割り込みプログラムを実行するマイクロプロセッサにおいて、前記割り込みプログラムを制御する割り込み制御装置であって、
カウントダウンタイマと、
前記カウントダウンタイマに設定された時間が経過したか否かを監視する監視手段と、
前記設定された時間が経過するまでの間、割り込みプログラムが実行不可能となるように割り込み信号を制御する割り込み信号制御手段と、を備えた割り込み制御装置。
【請求項４】
外部からの割り込み信号により割り込みプログラムを実行するマイクロプロセッサにおいて、前記割り込みプログラムを制御する割り込み制御装置であって、
データアドレスと、前記割り込みプログラムを実行可能なアドレス範囲とを比較して、前記データアドレスが前記アドレス範囲内に含まれるか否かを判断する比較手段と、
所定の時間を記憶するタイマ初期値記憶手段と、
前記比較手段により、前記データアドレスが前記アドレス範囲外と判断された場合、前記タイマ初期値記憶手段において記憶された時間を設定するカウントダウンタイマと、
前記カウントダウンタイマに設定された時間が経過したか否かを監視する監視手段と、
前記設定された時間が経過するまでの間、割り込みプログラムが実行不可能となるように割り込み信号を制御する割り込み信号制御手段と、を備えた割り込み制御装置。
【請求項５】
外部からの割り込み信号により割り込みプログラムを実行するマイクロプロセッサにおいて、前記割り込みプログラムを制御する割り込み制御装置であって、
割り込み禁止設定回数を記憶する割り込み禁止設定回数レジスタと、
割り込み禁止設定を行うための割り込み禁止設定レジスタと、
前記割り込み禁止設定レジスタに割り込み禁止設定がされた際に、前記割り込み禁止設定回数レジスタに記憶されている割り込み禁止設定回数に１加算する加算器と、
割り込み許可設定を行うための割り込み許可設定レジスタと、
前記割り込み許可設定レジスタに割り込み許可が設定された際に、前記割り込み禁止設定回数レジスタに記憶されている割り込み禁止設定回数を１減算する減算器と、
前記割り込み禁止設定回数レジスタの値により、割り込みプログラムが実行不可能となるように割り込み信号を制御する割り込み信号制御手段と、を備えた割り込み制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マイクロプロセッサに使用される割り込み制御装置に関するものである。
【背景技術】
【０００２】
従来のマイクロプロセッサに使用される割り込み制御装置においては、割り込み許可フラグを備え、割り込み要因が発生した際、割り込み許可フラグの状態によって、割り込みプログラムを実行するか否かの判断を行っている。
【０００３】
また、所定のアドレス範囲を設定する手段を設け、プログラムカウンタの値が所定のアドレス範囲内にあるときには、割り込み許可フラグの状態によらず、強制的に割り込み許可ならびに禁止できるようにした割り込み制御装置も提案されている（例えば、特許文献１参照）。
【特許文献１】特開平２−９０２３５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
従来の割り込み制御装置では、複数の割り込みプログラム及びタスクが同一の変数に対してアクセスを行なうとき、一旦、割り込み禁止状態にしてアクセスを行なう必要がある。実際には、割り込みを禁止する前の状態を保存し、実際に割り込みを禁止した後に、保存された状態を復元し、割り込みを許可するといった一連の処理が必要となり、処理速度の低下とスタックの浪費を招くという問題があった。
【０００５】
また、特許文献１のように、プログラムカウンタの値と所定のアドレス範囲とを比較して、強制的に割り込み許可ならびに禁止できるようにした割り込み制御装置では、複数の割り込みやタスクからアクセスする変数が複数箇所で操作されている場合、所定のアドレス範囲を設定する手段ならびにプログラムカウンタの値との比較手段が、変数にアクセスするプログラム箇所分必要となり、構成の複雑化を招くという新たな問題が生じる。
【課題を解決するための手段】
【０００６】
本発明は、外部からの割り込み信号により割り込みプログラムを実行するマイクロプロセッサにおいて、前記割り込みプログラムを制御する割り込み制御装置であって、データアドレスと、前記割り込みプログラムが実行不可能なアドレス範囲とを比較して、前記データアドレスが前記アドレス範囲内に含まれるか否かを判断する比較手段と、前記比較手段により、前記データアドレスが前記アドレス範囲内に含まれると判断された場合、割り込みプログラムが実行不可能となるように割り込み信号を制御する割り込み信号制御手段とを備えたものである。
【０００７】
前記比較手段は、前記割り込みプログラムが実行不可能なアドレス範囲を、領域開始指定記憶レジスタに記憶されているアドレスから領域終了指定記憶レジスタに記憶されているアドレスまでの範囲とする。
【０００８】
本発明の割り込み制御装置によると、データアドレスが、割り込みプログラムの実行が不可能なアドレス範囲内に含まれると判断されると、割り込み禁止状態となり、割り込みプログラムの実行が不可能となる。よって、割り込みを禁止する前の状態を保存し、実際に割り込みを禁止した後に、保存された状態を復元し、割り込みを許可するというような一連の処理が不要となり、割り込み禁止を必要とする割り込み制御における処理速度の向上と、スタック使用量の低減を図ることができる。
【発明の効果】
【０００９】
本発明の割り込み制御装置によると、構成の複雑化を招くことなく、割り込み禁止を必要とする割り込み制御における処理速度の向上と、スタック使用量の低減を図ることができる。
【発明を実施するための最良の形態】
【００１０】
（実施の形態１）
本実施の形態に係る割り込み制御装置について、図１，２を用いて説明する。
【００１１】
図１は割り込み制御装置のブロック図、図２は割り込み制御装置の割り込み信号制御装置のブロック図を示している。
【００１２】
図１において、１１は領域開始指定記憶レジスタ、１２は領域終了指定記憶レジスタ、１３は比較装置（比較手段）、１４はデータアドレス、１５は割り込み許可フラグ（ＩＥ）、１６は割り込み要求フラグ（ＩＲ）、１７は割り込み信号制御装置（割り込み信号制御手段）、１８は割り込み検出フラグ（ＩＤ）である。
【００１３】
割り込み信号制御装置１７は、図２に示すように、比較装置１３と割り込み要求フラグ１６と割り込み許可フラグ１５の論理積を行う論理積回路１９にて構成されている。
【００１４】
まず、領域開始指定記憶レジスタ１１と領域終了指定記憶レジスタ１２にて所定のアドレス範囲を設定する。
【００１５】
比較装置１３では、データアドレス１４と上記アドレス範囲とを比較し、データアドレス１４がアドレス範囲内のときは０を出力し、データアドレス１４がアドレス範囲外のときは１を出力する。
【００１６】
割り込み信号制御装置１７では、論理積回路１９によって、比較装置１３の比較結果と、割り込み要求フラグ１６と、割り込み許可フラグ１５との論理積を行い、その論理積の結果を割り込み検出フラグ１８に格納する。
【００１７】
データアドレス１４が所定のアドレス範囲内の場合、比較装置１３は０を出力し、割り込み信号制御装置１７による論理積の結果は０となり、割り込み検出フラグ１８に０が格納される。割り込み検出フラグ１８が０に設定されることにより、割り込み禁止状態となり、割り込みプログラムの実行が不可能となる。
【００１８】
このように構成された割り込み制御装置によると、データアドレス１４が、割り込みプログラムの実行が不可能なアドレス範囲内に含まれると判断されると、割り込みプログラムの実行が不可能となる。よって、割り込みを禁止する前の状態を保存し、実際に割り込みを禁止した後に、保存された状態を復元し、割り込みを許可するというような一連の処理が不要となり、割り込み禁止を必要とする割り込み制御における処理速度の向上と、スタック使用量の低減を図ることができる。すなわち、領域開始指定記憶レジスタ１１と領域終了指定記憶レジスタ１２にて設定される所定のアドレス範囲を、複数の割り込みやタスクからアクセスする変数が収まるように設定することにより、割り込み禁止を必要とする割り込み制御における処理速度の向上と、スタック使用量の低減を図ることができる。
【００１９】
また、アトミックな処理が必要な変数を所定のアドレス範囲に配置することができるため、割り込みを禁止する前の状態を保存し、実際に割り込みを禁止した後に、保存された状態を復元し、割り込みを許可するというような一連の処理が不要になる。
【００２０】
さらに、複数の割り込みやタスクからアクセスする変数が複数箇所で操作されている場合においても、領域開始指定記憶レジスタ１１、領域終了指定記憶レジスタ１２、比較装置１３を変数にアクセスするプログラム箇所分用意する必要がなく、構成の複雑化を招かない。
【００２１】
（実施の形態２）
本実施の形態に係る割り込み制御装置について、図３，４を用いて説明する。
【００２２】
図３は割り込み制御装置のブロック図、図４は割り込み制御装置の割り込み信号制御装置のブロック図を示している。なお、図１，２に示した例と同一部分は、同一符号を付してその説明を省略する。
【００２３】
図３において、２１はカウントダウンタイマ、２２は割り込み信号制御装置（割り込み信号制御手段）である。割り込み信号制御装置２２は、図４に示すように、カウントダウンタイマ２１の値を入力する比較回路２３と、比較回路２３と割り込み要求フラグ１６と割り込み許可フラグ１５の論理積を行う論理積回路２４にて構成されている。
【００２４】
カウントダウンタイマ２１は、プログラムにより初期値を設定されると、システムクロックやその他のクロックに同期してカウントダウンを行い、カウント値が０になるとカウントダウンを停止する。なお、カウントダウンタイマ２１のカウント値が０になった否かの監視は、割り込み信号制御装置２２に設けられているカウントダウンタイマ２１からの入力によって出力を切り替える機能からなる監視手段にて行われる。
【００２５】
割り込み信号制御装置２２では、カウントダウンタイマ２１の値と、割り込み要求フラグ１６と、割り込み許可フラグ１５とにより、割り込み検出フラグ１８の値を設定する。すなわち、比較回路２３は、カウントダウンタイマ２１の値が０の場合は１を出力し、カウントダウンタイマ２１の値が０以外の場合は０を出力する。論理積回路２４は、比較回路２３の出力と、割り込み要求フラグ１６と、割り込み許可フラグ１５との論理積を行い、その論理積の結果を割り込み検出フラグ１８に格納する。
【００２６】
カウントダウンタイマ２１が初期値を設定されてカウントダウンを開始し、当該カウント値が０になるまでの間、比較回路２３は０を出力し、論理積回路２４による論理積の結果は０となり、割り込み検出フラグ１８に０が格納される。割り込み検出フラグ１８が０に設定されることにより、割り込み禁止状態となり、割り込みプログラムの実行が不可能となる。また、カウントダウンタイマ２１に設定された時間が経過しカウント値が０になると比較回路２３は１を出力し、論理積回路２４による論理積の結果も１となり、割り込み検出フラグ１８に１が格納され、割り込み信号を有効にし、割り込みプログラムの実行が可能となる。
【００２７】
このように構成された割り込み制御装置によると、カウントダウンタイマ２１のカウント値が０になるまでの間、割り込みプログラムの実行が不可能となる。よって、割り込みを禁止する前の状態を保存し、実際に割り込みを禁止した後に、保存された状態を復元し、割り込みを許可するというような一連の処理が不要となり、割り込み禁止を必要とする割り込み制御における処理速度の向上と、スタック使用量の低減を図ることができる。
【００２８】
（実施の形態３）
本実施の形態に係る割り込み制御装置について、図５を用いて説明する。
【００２９】
図５は割り込み制御装置のブロック図を示している。なお、図１〜４に示した例と同一部分は、同一符号を付してその説明を省略する。
【００３０】
図５において、３１はタイマ初期値設定レジスタ（タイマ初期値記憶手段）、３２はタイマ初期値転送制御装置である。
【００３１】
まず、領域開始指定記憶レジスタ１１と領域終了指定記憶レジスタ１２にて所定のアドレス範囲を設定する。
【００３２】
比較装置１３では、データアドレス１４と上記アドレス範囲とを比較し、データアドレス１４がアドレス範囲内のときは０を出力し、データアドレス１４がアドレス範囲外のときは１を出力する。
【００３３】
タイマ初期値設定レジスタ３１は、プログラムにより値を設定される。タイマ初期値転送装置３２では、比較装置１３の出力が１の場合に、タイマ初期値設定レジスタ３１の値をカウントダウンタイマ２１に設定する。
【００３４】
カウントダウンタイマ２１では、初期値を設定されるとシステムクロックやその他のクロックに同期してカウントダウンを行い、カウント値が０になるとカウントダウンを停止する。なお、カウントダウンタイマ２１のカウント値が０になった否かの監視は、割り込み信号制御装置２２に設けられているカウントダウンタイマ２１からの入力によって出力を切り替える機能からなる監視手段にて行われる。
【００３５】
割り込み信号制御装置２２では、カウントダウンタイマ２１の値と、割り込み要求フラグ１６と、割り込み許可フラグ１５とにより、割り込み検出フラグ１８の値を設定する。なお、割り込み信号制御装置２２の構成については、図４に示した例と同様である。
【００３６】
データアドレス１４が所定のアドレス範囲外の場合、比較装置１３は１を出力し、カウントダウンタイマ２１にタイマ初期値設定レジスタ３１の値が初期値として設定されてカウントダウンを開始する。当該カウント値が０になるまでの間、割り込み信号制御装置２２による論理積の結果は０となり、割り込み検出フラグ１８に０が格納される。割り込み検出フラグ１８が０に設定されることにより、割り込み禁止状態となり、割り込みプログラムの実行が不可能となる。また、カウントダウンタイマ２１に設定された時間が経過しカウント値が０になると、割り込み検出フラグ１８に１が格納され、割り込み信号を有効にし、割り込みプログラムの実行が可能となる。
【００３７】
このように構成された割り込み制御装置によると、カウントダウンタイマ２１のカウント値が０になるまでの間、割り込みプログラムの実行が不可能となる。よって、割り込みを禁止する前の状態を保存し、実際に割り込みを禁止した後に、保存された状態を復元し、割り込みを許可するというような一連の処理が不要となり、割り込み禁止を必要とする割り込み制御における処理速度の向上と、スタック使用量の低減を図ることができる。具体的には、所定のアドレス範囲内に配置された変数Ａに所定のアドレス範囲外に配置された変数Ｂを加算し変数Ａに格納する、といった割り込みプログラムを実行する場合、データアドレス１４が所定のアドレス範囲外となることで、カウントダウンタイマ２１のカウント値が０になるまでの間、割り込みプログラムの実行が不可能となり、割り込み禁止ならびに許可の一連の処理が不要となる。
【００３８】
（実施の形態４）
本実施の形態に係る割り込み制御装置について、図６，７を用いて説明する。
【００３９】
図６は割り込み制御装置のブロック図、図７は割り込み制御装置の割り込み信号制御装置のブロック図を示している。なお、図１，２に示した例と同一部分は、同一符号を付してその説明を省略する。
【００４０】
図６において、４１は割り込み禁止設定回数レジスタ、４２は割り込み禁止設定レジスタ，４３は加算器、４４は割り込み許可設定レジスタ、４５は減算器、４６は割り込み信号制御装置（割り込み信号制御手段）である。割り込み信号制御装置４６は、図７に示すように、割り込み禁止設定回数レジスタ４１の値を入力する比較回路４７と、比較回路４７と割り込み要求フラグ１６と割り込み許可フラグ１５の論理積を行う論理積回路４８にて構成されている。
【００４１】
まず、割り込み禁止設定レジスタ４２に対して割り込み禁止設定が行われると、加算器４３が割り込み禁止設定回数レジスタ４１に１を加算する。割り込み許可設定レジスタ４４に対して割り込み許可設定が行われると、減算器４５が割り込み禁止設定回数レジスタ４１から１を減算する。
【００４２】
割り込み信号制御装置４６では、割り込み禁止設定回数レジスタ４１の値が０の時には割り込みを許可し、割り込み禁止設定回数レジスタ４１の値が０以外の時には割り込みを禁止する。すなわち、比較回路４７は、割り込み禁止設定回数レジスタ４１の値が０の場合は１を出力し、割り込み禁止設定回数レジスタ４１の値が０以外の場合は０を出力する。論理積回路４８は、比較回路４７の出力と、割り込み要求フラグ１６と、割り込み許可フラグ１５との論理積を行い、その論理積の結果を割り込み検出フラグ１８に格納する。
【００４３】
割り込み禁止設定回数レジスタ４１の値が０の場合、比較回路４７は１を出力し、論理積回路４８による論理積の結果は１となり、割り込み検出フラグ１８に１が格納される。割り込み検出フラグ１８が１に設定されることにより、割り込みプログラムの実行が可能となる。また、割り込み禁止設定回数レジスタ４１の値が０以外の場合、比較回路４７は０を出力し、論理積回路４８による論理積の結果は０となり、割り込み検出フラグ１８に０が格納される。割り込み検出フラグ１８が０に設定されることにより、割り込みは禁止状態となり、割り込みプログラムの実行が不可能となる。
【００４４】
このように構成された割り込み制御装置によると、割り込み禁止設定回数レジスタ４１の値が０の時に、割り込みプログラムの実行が可能となり、割り込み禁止設定回数レジスタ４１の値が０以外の時に、割り込みプログラムの実行が不可能となる。よって、割り込みを禁止する前の状態を保存し、実際に割り込みを禁止した後に、保存された状態を復元し、割り込みを許可するというような一連の処理が不要となり、割り込み禁止を必要とする割り込み制御における処理速度の向上と、スタック使用量の低減を図ることができる。特に、ネストの深い関数や再帰関数内での割り込み禁止および割り込み許可に必要なスタック量の低減と処理時間の短縮を行うことができる。
【００４５】
なお、図８に示すように、割り込み禁止設定レジスタと割り込み許可設定レジスタを１つのレジスタにした割り込み禁止許可設定レジスタ５１を用いてもよい。すなわち、割り込み禁止許可設定レジスタ５１に対して割り込み禁止設定が行われると、加算器４３が割り込み禁止設定回数レジスタ４１に１を加算する。割り込み禁止許可設定レジスタ５１に対し割り込み許可設定が行われると、減算器４５が割り込み禁止設定回数レジスタ４１から１を減算する。その他の構成は、図６，７に示した例と同様である。
【００４６】
割り込み禁止許可設定レジスタ５１は、書き込まれる値により禁止設定か許可設定かを区別する方法や、割り込み禁止許可設定レジスタ５１へ書き込みアクセスか読み込みアクセスかにより禁止設定か許可設定かを区別する方法がある。
【産業上の利用可能性】
【００４７】
本発明に係る割り込み制御装置は、ビット長に関わらず、様々な種類のマイクロプロセッサにおいて有用である。
【図面の簡単な説明】
【００４８】
【図１】実施の形態１に係る割り込み制御装置のブロック図
【図２】実施の形態１に係る割り込み制御装置の割り込み信号制御装置のブロック図
【図３】実施の形態２に係る割り込み制御装置のブロック図
【図４】実施の形態２に係る割り込み制御装置の割り込み信号制御装置のブロック図
【図５】実施の形態３に係る割り込み制御装置のブロック図
【図６】実施の形態４に係る割り込み制御装置のブロック図
【図７】実施の形態４に係る割り込み制御装置の割り込み信号制御装置のブロ
【図８】実施の形態４の変形例に係る割り込み制御装置のブロック図
【符号の説明】
【００４９】
１１  領域開始指定記憶レジスタ
１２  領域終了指定記憶レジスタ
１３  比較装置（比較手段）
１４  データアドレス
１５  割り込み許可フラグ（ＩＥ）
１６  割り込み要求フラグ（ＩＲ）
１７，２２，４６  割り込み信号制御装置（割り込み信号制御手段）
１８  割り込み検出フラグ（ＩＤ）
２１  カウントダウンタイマ
３１  タイマ初期値設定レジスタ（タイマ初期値記憶手段）
３２  タイマ初期値転送制御装置（タイマ初期値記憶手段）
４１  割り込み禁止設定回数レジスタ
４２  割り込み禁止設定レジスタ
４３  加算器
４４  割り込み許可設定レジスタ
４５  減算器
５１  割り込み禁止許可設定レジスタ
【図１】
2006155048.tif 000003
【図２】
2006155048.tif 000004
【図３】
2006155048.tif 000005
【図４】
2006155048.tif 000006
【図５】
2006155048.tif 000007
【図６】
2006155048.tif 000008
【図７】
2006155048.tif 000009
【図８】
2006155048.tif 000010