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