(57)【要約】【課題】  割込信号に従って制御タスクをその優先度に応じて短時間に切り替ることができる割込制御回路を提供する。【解決手段】  割込信号線２１に対する通常時と緊急時の割込レベルがそれぞれ設定された割込レベル制御レジスタ１５ａ，１５ｂを備え、緊急割込信号線２１ａからの割り込みがあると、優先処理実行要求レジスタ１９によって緊急用の割込レベル制御レジスタ１５ｂが選択される。内部制御回路１１Ａは、割込要因レジスタ１３に割込要因をセットし、入力された割込信号の割込レベルと現在実行中の割込レベルとを比較し、入力された割込信号の優先レベルが高い場合には、割込番号レジスタ１６に当該割込番号をセットすると共に、ＣＰＵ１に対して割込要求信号ＩＲＱを出力する。【選択図】      図１
2006309311.tif 000002
【特許請求の範囲】
【請求項１】
制御対象機器から複数の割込信号線を介して与えられる複数の割込信号に基づいて、該制御対象機器を制御するマイクロコンピュータに対する割込要求を行う割込制御回路であって、
前記割込信号に基づいて処理待ち状態の割込要因をセットするための割込要因レジスタと、
前記複数の割込信号線の内で緊急用に指定された緊急割込信号線から割込信号が与えられた時にセットされる優先処理実行要求レジスタと、
前記割込要因毎に通常割込動作時に割り当てられる割込レベルが設定される第１の割込レベル制御レジスタと、
前記割込要因毎に緊急割込動作時に割り当てられる割込レベルが設定される第２の割込レベル制御レジスタと、
前記優先処理実行要求レジスタがセットされない時には前記第１の割込レベル制御レジスタを選択し、該優先処理実行要求レジスタがセットされた時には前記第２の割込レベル制御レジスタを選択するセレクタと、
前記制御対象機器から割込信号が与えられたときに、前記セレクタで選択された前記第１または第２の割込レベル制御レジスタに設定された割込レベルを参照し、該割込信号の割込レベルを判定して前記マイクロコンピュータに割込要求を行う内部制御回路とを、
備えたことを特徴とする割込制御回路。
【請求項２】
制御対象機器を制御するための複数の制御タスク毎に通常動作時に割り当てられる通常優先度と緊急動作時に割り当てられる緊急優先度が設定され、該制御対象機器から複数の割込信号線を介して与えられる複数の割込信号に基づいて、該制御対象機器を制御するマイクロコンピュータに対する割込要求を行う割込制御回路であって、
前記割込信号に基づいて処理待ち状態の割込要因をセットするための割込要因レジスタと、
前記複数の割込信号線の内で緊急用に指定された緊急割込信号線から割込信号が与えられた時にセットされる優先処理実行要求レジスタと、
前記割込信号に対応する割込番号をセットするための割込番号レジスタと、
前記制御対象機器から割込信号が与えられたときに、前記割込要因レジスタと前記割込番号レジスタをセットして、前記マイクロコンピュータに割込要求を行う内部制御回路とを、
備えたことを特徴とする割込制御回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マイクロコンピュータにおける割込制御回路に関するものである。
【背景技術】
【０００２】
図２は、従来のマイクロコンピュータの構成図である。
このマイクロコンピュータは、中央処理装置（以下、「ＣＰＵ」という）１、読み出し専用メモリ（以下、「ＲＯＭ」という）２、ランダムアクセス・メモリ（以下、「ＲＡＭ」という）３、入出力インタフェース回路（以下、「入出力Ｉ／Ｆ」という）４、及び割込制御回路１０を有し、これらがシステムバス５によって接続されている。ＣＰＵ１は、割込制御回路１０から与えられる割込要求信号ＩＲＱとＲＯＭ２に格納されたプログラムに従って、全体の処理制御を行うものである。
【０００３】
ＲＯＭ２は、リアルタイムＯＳ及び多数の制御タスク等で構成されるプログラムや、処理に必要な固定データを記憶するものである。ＲＡＭ３は、随時書き換えが可能なメモリで、処理中のデータ等を記憶するものである。入出力Ｉ／Ｆ４は、制御対象機器の状態を読み取ったり、この制御対象機器に対する制御信号を出力したりするためのものである。割込制御回路１０は、制御対象機器の状態が変化した時に、その状態変化に応じてＣＰＵ１の処理内容を変更させるために、割込要求信号ＩＲＱを出力する回路である。
【０００４】
割込制御回路１０は、内部制御回路１１及び内部バス１２と、この内部バス１２に接続された割込要因レジスタ１３、割込要因クリアレジスタ１４、割込レベル制御レジスタ１５、割込番号レジスタ１６、及び現割込レベルレジスタ１７で構成されている。
【０００５】
内部制御回路１１は、制御対象機器から複数の割込制御線２１を介して与えられる割込信号に基づいて、割込要因レジスタ１３等の各レジスタの内容を制御すると共に、ＣＰＵ１に対して割込要求信号ＩＲＱを出力するものである。割込要因レジスタ１３は、少なくとも割込信号線２１と同数のビット構成のレジスタで、割込のあった割込信号線に対応するビットを“１”にセットしておくためのものである。割込要因クリアレジスタ１４は、割込要因レジスタ１３の内容を１ビット単位でリセットするもので、この割込要因レジスタ１３と同じビット構成のレジスタである。割込レベル制御レジスタ１５は、各割込信号線２１に対応する割込レベル（起動される制御タスクの優先度）を設定するレジスタである。この割込レベル制御レジスタ１５の内容は、初期設定時にＣＰＵ１から書き込まれるようになっている。割込番号レジスタ１６は、割込要因レジスタ１３にセットされて処理待ち状態となっている割込要因の内で、優先度の一番高い割込番号をセットするためのレジスタである。現割込レベルレジスタ１７は、現在実行されている割込処理のレベルを示すレジスタである。
【０００６】
次に、このマイクロコンピュータにおける割込制御回路１０の動作を説明する。
制御対象装置から割込信号線２１を介して割込信号が与えられると、内部制御回路１１は、その割込信号に対応する割込要因レジスタ１３のビットを“１”に設定し、割込要求を受け付けた状態とする。更に、内部制御回路１１は、与えられた割込信号に対応する割込レベルを割込レベル制御レジスタ１５から読み出し、現割込レベルレジスタ１７に設定されている割込レベルと比較する。もしも、与えられた割込信号の割込レベルが、現割込レベルレジスタ１７に設定された割込レベル以下の場合は、内部制御回路１１の処理は終了する。
【０００７】
割込信号の割込レベルが、現割込レベルレジスタ１７に設定された割込レベルよりも高い場合、内部制御回路１１は、与えられた割込信号の割込レベルを割込番号レジスタ１６に設定すると共に、その割込番号を現割込レベルレジスタ１７に設定する。その後、内部制御回路１１は、ＣＰＵ１に対して割込要求信号ＩＲＱを出力する。
【０００８】
ＣＰＵ１は、割込ハンドラによって割込番号レジスタ１６から割込番号を読み出し、この割込番号に対応する制御タスクを起動する。制御タスクの実行が終了すると、割込ハンドラは、割込要因クリアレジスタ１４に対して、終了した割込番号を消去するための書き込みを行う。内部制御回路１１は、書き込まれた割込要因クリアレジスタ１４の内容に従って、割込要因レジスタ１３の対応するビットを“０”にリセットする。
【０００９】
その後、内部制御回路１１は、割込要因レジスタ１３にセットされて処理待ち状態となっている割込要因がなくなるまで、優先度の高い割込要因から順に、上記の割込番号レジスタ１６及び現割込レベルレジスタ１７への設定と、ＣＰＵ１に対する割込要求信号ＩＲＱの出力の処理を繰り返す。
【００１０】
なお、下記特許文献１には、アプリケーションプログラム中に処理状況通知インタフェースを埋め込み、この埋め込まれたインタフェースが実行される毎に、タスク開始からの経過時間と処理の進行状況を用いてタスク終了の予測時間を算出する。そして、制約時間内に終了しないと推定される場合にそのタスクの優先度を動的に上げることを特徴とするタスクの優先制御方式が記載されている。
【００１１】
【特許文献１】特開平７−２７１６１４号公報
【発明の開示】
【発明が解決しようとする課題】
【００１２】
しかしながら、例えば自動車に組み込む制御機器の場合、エンジン制御等のための多数のセンサから入力される信号に基づいて多数のタスクを短時間（例えば、５０μｓ以下）で切り替えて処理する必要がある。このため、１００個以上のセンサを有するような複雑な制御を必要とする場合、複数の制御タスクをその優先度に応じてソフトウエアによって短時間に切り替えることができなくなるおそれがあった。
【００１３】
本発明は、複数の制御タスクをその優先度に応じて短時間に切り替ることを可能とする割込制御回路を提供することを目的としている。
【課題を解決するための手段】
【００１４】
本発明は、制御対象機器から複数の割込信号線を介して与えられる複数の割込信号に基づいて、該制御対象機器を制御するマイクロコンピュータに対する割込要求を行う割込制御回路を、前記割込信号に基づいて処理待ち状態の割込要因をセットするための割込要因レジスタと、前記複数の割込信号線の内で緊急用に指定された緊急割込信号線から割込信号が与えられた時にセットされる優先処理実行要求レジスタと、前記割込要因毎に通常割込動作時に割り当てられる割込レベルが設定される第１の割込レベル制御レジスタと、前記割込要因毎に緊急割込動作時に割り当てられる割込レベルが設定される第２の割込レベル制御レジスタと、前記優先処理実行要求レジスタがセットされない時には前記第１の割込レベル制御レジスタを選択し、該優先処理実行要求レジスタがセットされた時には前記第２の割込レベル制御レジスタを選択するセレクタと、前記制御対象機器から割込信号が与えられたときに、前記セレクタで選択された前記第１または第２の割込レベル制御レジスタに設定された割込レベルを参照し、該割込信号の割込レベルを判定して前記マイクロコンピュータに割込要求を行う内部制御回路とを備えた構成としている。
【発明の効果】
【００１５】
本発明では、緊急割込信号線から割込信号が与えられた時に、優先処理実行要求レジスタがセットされ、緊急割込動作時の割込レベルが設定された第２の割込レベル制御レジスタがセレクタで選択される。内部制御回路はセレクタを介して第２の割込レベル制御レジスタを読み出すことにより、緊急割込動作時の割込レベルに基づいて割込信号の優先度を判定し、マイクロコンピュータに割込要求を行う。これにより、複数の制御タスクをその優先度に応じて短時間に切り替ることが可能になるという効果がある。
【発明を実施するための最良の形態】
【００１６】
マイクロコンピュータ側で、制御対象機器を制御するための複数の制御タスク毎に通常動作時に割り当てる通常優先度と緊急動作時に割り当てる緊急優先度を設定している場合の割込制御回路は、割込信号に基づいて処理待ち状態の割込要因をセットするための割込要因レジスタと、複数の割込信号線の内で緊急用に指定された緊急割込信号線から割込信号が与えられた時にセットされる優先処理実行要求レジスタと、割込信号に対応する割込番号をセットするための割込番号レジスタと、制御対象機器から割込信号が与えられたときに、前記割込要因レジスタと前記割込番号レジスタをセットして、前記マイクロコンピュータに割込要求を行う内部制御回路とを備えた構成とする。
【実施例１】
【００１７】
図１は、本発明の実施例１を示すマイクロコンピュータの構成図であり、図２中の要素と共通の要素には共通の符号が付されている。
【００１８】
このマイクロコンピュータは、ＣＰＵ１、ＲＯＭ２、ＲＡＭ３、入出力Ｉ／Ｆ４、及び割込制御回路１０Ａを有し、これらがシステムバス５によって接続されている。ＣＰＵ１は、割込制御回路１０Ａから与えられる割込要求信号ＩＲＱとＲＯＭ２に格納されたプログラムに従って、全体の処理制御を行うものである。
【００１９】
ＲＯＭ２は、リアルタイムＯＳ及び多数の制御タスク等で構成されるプログラムや、処理に必要な固定データを記憶するものである。ＲＡＭ３は、随時書き換えが可能なメモリで、処理中のデータ等を記憶するものである。入出力Ｉ／Ｆ４は、制御対象機器の状態を読み取ったり、この制御対象機器に対する制御信号を出力したりするためのものである。割込制御回路１０Ａは、制御対象機器の状態が変化した時に、その状態変化に応じてＣＰＵ１の処理内容を変更させるために、割込要求信号ＩＲＱを出力する回路である。
【００２０】
割込制御回路１０Ａは、内部制御回路１１Ａ及び内部バス１２と、この内部バス１２に接続された図２と同様の割込要因レジスタ１３、割込要因クリアレジスタ１４、割込番号レジスタ１６及び現割込レベルレジスタ１７に加え、２組の割込レベル制御レジスタ１５ａ，１５ｂと、セレクタ１８と、優先処理実行要求レジスタ１９で構成されている。
【００２１】
内部制御回路１１Ａには、制御対象機器から複数の割込制御線２１を介して割込信号与えられるようになっている。更に、この割込制御線２１の一部は、緊急割込信号を出力する緊急割込信号線２１ａとなっている。内部制御回路１１Ａは、割込信号と緊急割込信号に基づいて、割込要因レジスタ１３等の各レジスタの内容を制御すると共に、ＣＰＵ１に対して割込要求信号ＩＲＱを出力するものである。
【００２２】
割込要因レジスタ１３は、少なくとも割込信号線２１と同数のビット構成のレジスタで、各ビットが制御対象機器に接続された割込信号線２１に対応するように構成されている。割込要因レジスタ１３は、タスク待ち行列としての性格を有している。その第ｋビットが“１”にセットされていれば、タスク番号ｋの制御タスクが実行待ち状態にあることを示している。また、第ｋビットがリセットされて“０”になっていれば、タスク番号ｋの制御タスクは起動を要請されていないことを示している。従って、割込要因レジスタ１３内の“１”のビットの個数を数えれば、現在待機状態にある制御タスクの数が分かる。この割込要因レジスタ１３の各ビットは、内部制御回路１１Ａからセットされるようになっている。
【００２３】
割込要因クリアレジスタ１４は、割込要因レジスタ１３の内容を１ビット単位でリセットするもので、この割込要因レジスタ１３と同じビット構成のレジスタである。割込要因クリアレジスタ１４は、該当する制御タスクの処理が終了して時点で、ＣＰＵ１から書き込みが行われるようになっている。
【００２４】
割込番号レジスタ１６は、割込要因レジスタ１３にセットされて処理待ち状態となっている割込要因の内で、優先度の一番高い割込番号をセットするためのレジスタである。また、現割込レベルレジスタ１７は、現在実行されている割込処理のレベルを示すレジスタである。
【００２５】
一方、割込レベル制御レジスタ１５ａ，１５ｂは、各割込信号線２１に対応する割込レベルを設定するレジスタである。割込レベル制御レジスタ１５ａには、緊急割込信号線２１ａを除く割込信号線２１から割込信号が与えられたときに各割込信号線２１に割り当てる通常割込レベルが設定されている。また、割込レベル制御レジスタ１５ｂには、緊急割込信号線２１ａから緊急割込信号が与えられたときに各割込信号線２１に割り当てる緊急割込レベルが設定されている。
【００２６】
通常の動作状態では優先度の低い制御タスクを緊急時に最優先で起動させる必要がある場合としては、例えば、走行する自動車で急ブレーキが踏まれた時に、エンジン回転数を急激に低下させ、ブレーキ自体はアンチブロック・ブレーキング・システム（ＡＢＳ）機能でスリップしないように制御する場合がある。また、走行中に車体前部のセンサによって障害物を検知した時に、アクセルペダルの制御を無視してエンジンを停止させ、強制的にブレーキをかけるような制御を優先して処理し、事故に因る衝撃の緩和をはかるような場合がある。このような状況を検出するセンサを緊急割込信号線２１ａに接続することにより、割込レベル制御レジスタ１５ｂに設定された緊急割込レベルが使用されることになる。これらの割込レベル制御レジスタ１５ａ，１５ｂの内容は、初期設定時にＣＰＵ１から書き込まれるようになっている。
【００２７】
割込レベル制御レジスタ１５ａ，１５ｂは、セレクタ１８を介して内部バス１２に接続されている。セレクタ１８は、優先処理実行要求レジスタ１９から与えられる選択信号ＳＬが“０”の時に割込レベル制御レジスタ１５ａを内部バス１２に接続し、この選択信号ＳＬが“１”の時には割込レベル制御レジスタ１５ｂを内部バス１２に接続するものである。
【００２８】
優先処理実行要求レジスタ１９は、緊急割込信号線２１ａからの緊急割込信号が与えられたときに、“１”にセットされると共に、この内容を選択信号ＳＬとしてセレクタ１８に与えるものである。なお、この優先処理実行要求レジスタ１９のリセットは、起動された制御タスクの処理終了後に、ソフトウエアによって緊急処理が完了したか否かが判定されて、すべての緊急処理が完了した時点でＣＰＵ１側からリセットされるようになっている。
【００２９】
図３は、図１の動作を示すフローチャートである。以下、この図３を参照しつつ、図１の割込制御動作を説明する。
【００３０】
まず、ステップＳ１おいて、ＣＰＵ１は、割込レベル制御レジスタ１５ａ，１５ｂに、各割込信号線２１の通常割込動作に対応する通常割込レベルと、緊急割込動作に対応する緊急割込レベルを設定する。ステップＳ１の初期設定の後、ステップＳ２へ進む。
【００３１】
ステップＳ２でＣＰＵ１はアイドル状態となり、外部割込を待ち受ける状態となる。即ち、ここでは外部割込が有るか否かをチェックし、無ければアイドル状態が維持される。また、アイドル状態では、例えば自己診断プログラム等の制御に必要な最低限度のタスクを処理することもできる。自己診断プログラムでは、制御対象機器の状態を順次読み取り、異常の有無を判定し、異状がある場合には警告を発する等の処理を行う。アイドル状態時に外部割込が発生すると、ステップＳ３へ進む。
【００３２】
ステップＳ３では、割込信号が緊急割込信号線２１ａからの緊急割込であればステップＳ４で優先処理実行要求レジスタ１９がハードウエアで“１”にセットされ、ステップＳ５へ移行する。緊急割込でなければ、優先処理実行要求レジスタ１９はセットされずに、ステップＳ５へ進む。
【００３３】
ステップＳ５において、内部制御回路１１Ａは、その割込信号に対応する割込要因レジスタ１３のビットを“１”に設定し、割込要求を受け付けた状態とする。
【００３４】
ステップＳ６において、内部制御回路１１Ａは、与えられた割込信号に対応する割込レベルを割込レベル制御レジスタ１５から読み出す。この時、優先処理実行要求レジスタ１９が“１”にセットされていれば、セレクタ１８で割込レベル制御レジスタ１５ｂが選択され、緊急割込レベルが読み出される。また、優先処理実行要求レジスタ１９が“０”であれば、セレクタ１８で割込レベル制御レジスタ１５ａが選択され、通常割込レベルが読み出される。
【００３５】
ステップＳ７において、内部制御回路１１Ａは、割込レベル制御レジスタ１５から読み出した割込レベルを、現割込レベルレジスタ１７に設定されている割込レベルと比較する。読み出した割込信号の割込レベルが、現割込レベルレジスタ１７に設定された割込レベルよりも高い場合は、ステップＳ８へ進む。もしも、読み出した割込信号の割込レベルが、現割込レベルレジスタ１７に設定された割込レベル以下の場合は、現在、優先順位の高い制御タスクが実行中であるので、内部制御回路１１Ａの処理は終了し、実行中の制御タスクの終了を待つことになる。読み出した割込信号の割込レベルが、現割込レベルレジスタ１７に設定された割込レベルよりも高い場合は、ステップＳ８へ進む。
【００３６】
ステップＳ８において、内部制御回路１１Ａは、割込番号レジスタ１６に実行すべき割込番号をセットし、現割込レベルレジスタ１７にその割込番号に対応する割込レベルをセットする。そして、内部制御回路１１Ａは、ＣＰＵ１に対して割込要求信号ＩＲＱを出力する。
【００３７】
ステップＳ９において、割込要求信号ＩＲＱによってＣＰＵ１が呼び出され、割込ハンドラが起動される。ステップＳ１０において、割込ハンドラは、割込番号レジスタ１６にセットされた割込番号に対応する制御タスクを起動し、該当する制御タスクが実行される。制御タスクの実行が終了すると、ステップＳ１１へ進む。
【００３８】
ステップＳ１１において、割込ハンドラが再起動される。ステップＳ１２において、アプリケーションプログラムにより、緊急処理が完了したか否かが判定される。緊急処理が完了していれば、次のステップＳ１３において、ＣＰＵ１側から、優先処理実行要求レジスタ１９が“０”にリセットされた後、ステップＳ１４へ進む。緊急処理が完了していなければ、そのままステップＳ１４へ進む。
【００３９】
ステップＳ１４において、内部制御回路１１Ａによって割込要因レジスタ１３がチェックされ、処理待ち状態の割込要因が残っているか否かが判定される。処理待ちの割込要因が存在すれば、ステップＳ１５へ進み、存在しなければステップＳ１６へ進む。
【００４０】
ステップＳ１５において、内部制御回路１１Ａは、割込レベル制御レジスタ１５を参照して、処理待ちの割込要因の中から割込レベルが一番高い割込要因を選択する。なお、この時参照される割込レベル制御レジスタは、優先処理実行要求レジスタ１９に設定されている値に従い、セレクタ１８によって割込レベル制御レジスタ１５ａ，１５ｂのいずれか一方が選択される。ステップＳ１５の後、ステップＳ８へ進み、選択された処理待ちの割込要因に対する処理が行われる。
【００４１】
ステップＳ１４の判定の結果、処理待ちの割込要因が存在しなければ、ステップＳ１６で全体の制御処理がすべて終了しているか否かが判定され、終了していれば一連の動作は終了し、制御が継続していればステップＳ２へ戻って再びアイドル状態で待機することになる。
【００４２】
以上のように、この実施例１のマイクロコンピュータは、制御対象機器に接続される割込信号線２１の内で緊急割込信号用に使用される緊急割込信号線２１ａを区分し、この緊急割込線２１ａから割込があったときにセットされる優先処理実行要求レジスタ１９を設けている。更に、割込信号毎に通常割込レベルがセットされた割込レベル制御レジスタ１５ａと、緊急割込レベルがセットされた割込レベル制御レジスタ１５ｂを設け、これらの２つのレジスタ１５ａ，１５ｂの内の一方を、優先処理実行要求レジスタ１９の内容によって切り替えて内部バス１２に接続するセレクタ１８を有している。
【００４３】
これにより、割込時にその割込が緊急か否かをハードウエアによって判別し、緊急割込時には該当する緊急制御タスクを直ちに起動することが可能になり、リアルタイムＯＳ下において、制御タスクを安定して実行させることができるという利点がある。
【実施例２】
【００４４】
図４は、本発明の実施例２を示すマイクロコンピュータの構成図であり、図１中の要素と共通の要素には共通の符号が付されている。
【００４５】
このマイクロコンピュータは、図１中の割込制御回路１０Ａに代えて構成の異なる割込制御回路１０Ｂを設けると共に、ＲＡＭ３の内部に優先度設定テーブル３ａを設けたものである。
【００４６】
割込制御回路１０Ｂは、図１中の割込制御回路１０Ａから現割込レベルレジスタ１７、割込レベル制御レジスタ１５ａ，１５ｂ、及びセレクタ１８を削除したものである。即ち、割込制御回路１０Ｂは、図１中の割込制御回路１０Ａと同様の、割込要因レジスタ１３、割込要因クリアレジスタ１４、割込番号レジスタ１６、優先処理実行要求レジスタ１９及び内部バス１２を有している。また、割込制御回路１０Ｂ内のレジスタを制御する内部制御回路１１Ｂは、図１中の内部制御回路１１Ａよりも制御内容が簡素化されている。
【００４７】
即ち、内部制御回路１１Ｂは、割込信号線２１から割込信号が入力されたときに、割込要因レジスタ１３の該当するビットをセットすると共に、その割込番号を割込番号レジスタ１６にセットして、ＣＰＵ１に割込要求信号ＩＲＱを出力するようになっている。また、内部制御回路１１Ｂは、ＣＰＵ１によって制御タスクが実行されて割込要因クリアレジスタ１４がセットされたときに、そのセット内容に応じて割込要因レジスタ１３中の該当する割込要因をリセットするようになっている。
【００４８】
一方、ＲＡＭ３内に設けられた優先度設定テーブル３ａは、図１中の割込レベル制御レジスタ１５ａ，１５ｂに設定されていた各割込信号線２１に対応する割込レベルを格納したテーブルである。即ち、優先度設定テーブル３ａには、各割込信号線２１に対応して起動される制御タスク毎に、緊急割込信号線２１ａを除く割込信号線２１から割込信号が与えられたときに割り当てられる通常優先度と、緊急割込信号線２１ａから緊急割込信号が与えられたときに割り当てられる緊急優先度が格納されている。その他の構成は、図１と同様である。
【００４９】
次に図４における割込制御動作を説明する。
例えば、制御対象機器から割込信号線２１を介して割込制御回路１０Ｂに通常の割込信号が与えられると、この割込信号は内部制御回路１１Ｂによって検出され、その割込番号が割込番号レジスタ１６にセットされ、割込要因レジスタ１３の該当するビットが“１”にセットされると共に、ＣＰＵ１に対して割込要求信号ＩＲＱが出力される。一方、優先処理実行要求レジスタ１９には、通常の割込信号は与えられないので、この優先処理実行要求レジスタ１９の内容は“０”である。
【００５０】
割込要求信号ＩＲＱによって呼び出されたＣＰＵ１は、割込ハンドラを起動させる。割込ハンドラは、実行中の制御タスクが存在しない場合は、システムバス５を介して割込制御回路１０Ｂ内の割込番号レジスタ１６を読み出し、この割込番号レジスタ１６で指定された割込番号の制御タスクを起動させる。
【００５１】
実行中の制御タスクが存在する場合、割込ハンドラは、割込要因レジスタ１３、割込番号レジスタ１６、及び優先処理要求レジスタ１９を読み出す。このとき、優先処理要求レジスタ１９の内容は“０”であるので、割込ハンドラは、優先度設定テーブル３ａの通常優先度を参照し、現在実行中の制御タスクと割込番号レジスタ１６に設定された割込番号に対応する制御タスクの優先度を比較し、優先度の高い方の制御タスクを実行させる。そして、その制御タスクの実行が終了した時点で割込ハンドラが再起動され、割込要因クリアレジスタ１４がセットされる。内部制御回路１１Ｂは、セットされた割込要因クリアレジスタ１４に基づいて、割込要因レジスタ１３の該当するビットをリセットする。
【００５２】
割込ハンドラは、更に、割込要因レジスタ１３に処理待ち状態の割込要因がセットされているか否かをチェックし、セットされている場合には、優先度設定テーブル３ａの通常優先度を参照して、優先度の高い制御タスクから順次、選択して実行させる。
【００５３】
一方、制御対象機器から緊急割込信号線２１ａを介して割込制御回路１０Ｂに緊急の割込信号が与えられると、この割込信号は内部制御回路１１Ｂによって検出され、その割込番号が割込番号レジスタ１６にセットされ、割込要因レジスタ１３の該当するビットが“１”にセットされると共に、ＣＰＵ１に対して割込要求信号ＩＲＱが出力される。また、優先処理実行要求レジスタ１９の内容は“１”にセットされる。
【００５４】
ＣＰＵ１の割込ハンドラは、優先処理要求レジスタ１９から読み出した内容が“１”であるので、優先度設定テーブル３ａの緊急優先度を参照して制御タスクの優先度を比較し、実行させる制御タスクを選択する。選択された制御タスクによって緊急処理が終了すると、割込ハンドラによって優先処理要求レジスタ１９が“０”にリセットされる。その後の動作は、通常優先度の場合と同様である。
【００５５】
以上のように、この実施例２のマイクロコンピュータは、制御対象機器に接続される割込信号線２１の内で緊急割込信号用に使用される緊急割込信号線２１ａを区分し、この緊急割込線２１ａから割込があったときにセットされる優先処理実行要求レジスタ１９を設けている。更に、ＲＡＭ３内に制御タスク毎に通常優先度と緊急優先度を設定した優先度設定テーブル３ａを設け、優先処理実行要求レジスタ１９の内容に従って、これらの２つの優先度を使い分けるようにしている。
【００５６】
これにより、割込時にその割込が緊急か否かがハードウエアによって判別されるので、第１の実施形態と同様の利点がある。
【図面の簡単な説明】
【００５７】
【図１】本発明の実施例１を示すマイクロコンピュータの構成図である。
【図２】従来のマイクロコンピュータの構成図である。
【図３】図１の動作を示すフローチャートである。
【図４】本発明の実施例２を示すマイクロコンピュータの構成図である。
【符号の説明】
【００５８】
１    ＣＰＵ
２    ＲＯＭ
３    ＲＡＭ
３ａ    優先度設定テーブル
４    入出力Ｉ／Ｆ
５    システムバス
１０Ａ，１０Ｂ    割込制御回路
１１Ａ，１１Ｂ    内部制御回路
１２    内部バス
１３    割込要因レジスタ
１４    割込要因クリアレジスタ
１５ａ，１５ｂ    割込レベル制御レジスタ
１６    割込番号レジスタ
１７    現割込レベルレジスタ
１８    セレクタ
１９    優先処理実行要求レジスタ
２１    割込信号線
２１ａ    緊急割込信号線
【図１】
2006309311.tif 000003
【図２】
2006309311.tif 000004
【図３】
2006309311.tif 000005
【図４】
2006309311.tif 000006