(57)【要約】【課題】相対的に優先度が低いリアルタイム処理とその他の処理とをマルチプログラミング環境で並列実行するプロセッサの割り込み制御において、所定の期間内に実行可能であるにも関わらずリアルタイム処理が無駄に抑止されることを防止する。【解決手段】判定部１００は、割り込み要求に基づくリアルタイム処理の実行予想時間（第２の実行予想時間）と、過去の割り込み要求に基づいて既に実行完了待ちにある１又は複数の他の処理の実行予想時間（第１の実行予想時間）とに基づいて、割り込み要求に基づくリアルタイム処理を有効期間内に実行完了できるかを判定する。信号生成部１０３は、有効期間内にリアルタイム処理を完了できると判定された場合にリアルタイム処理を起動するための第１の割り込み信号を生成し、有効期間内にリアルタイム処理を完了できないと判定された場合に第１の割り込み信号の生成を抑止する。【選択図】図２
2011232937.tif 000002
【特許請求の範囲】
【請求項１】
外部からの割り込み要求に基づいて第１のプロセッサに割り込み信号を供給する割り込み制御装置であって、
所定の有効期間内に実行を完了する必要があるリアルタイム処理に関連付けられた第１の割り込み要求が発生した場合に、過去の割り込み要求に基づいて既に実行完了待ちにある１又は複数の他の処理の前記第１のプロセッサによる実行に要する第１の実行予想時間と、前記リアルタイム処理の前記第１のプロセッサによる実行に要する第２の実行予想時間とに基づいて、前記第１のプロセッサが前記リアルタイム処理を前記有効期間内に実行完了できるかを判定する第１の判定部と、
前記有効期間内に前記リアルタイム処理を完了できると判定された場合に前記リアルタイム処理を起動するための第１の割り込み信号を生成し、前記有効期間内に前記リアルタイム処理を完了できないと判定された場合に前記第１の割り込み信号の生成を抑止する信号生成部と、
を備える、割り込み制御装置。
【請求項２】
前記第１の判定部が前記有効期間内に前記リアルタイム処理を完了できると判定した後の時間経過に基づいて、前記リアルタイム処理を前記有効期間内に実行完了できるかを再判定する第２の判定部をさらに備え、
前記信号生成部は、前記有効期間内に前記リアルタイム処理を完了できないと前記第２の判定部によって判定された場合に、前記第１の割り込み信号の生成を抑止する、請求項１に記載の割り込み制御装置。
【請求項３】
前記第１の比較部は、
現在時刻を示すタイムカウンタ値と前記有効期間の設定値とを加算することによって、前記第１の割り込み要求に基づく前記リアルタイム処理を完了すべき有効時刻を算出する第１の加算回路と、
前記第１の実行予想時間に基づいて算出された第１の実行完了予想時刻と前記第２の実行予想時間の設定値とを加算することによって、前記他の処理及び前記リアルタイム処理の実行完了の予想時刻を表わす第２の実行完了予想時刻を算出する第２の加算回路と、
前記有効時刻及び前記第２の実行完了予想時刻を比較することによって、前記リアルタイム処理を前記有効期間内に実行完了できるかを判定する第１の比較回路と、
を備える、請求項１〜２のいずれか１項に記載の割り込み制御装置。
【請求項４】
前記第２の比較部は、
前記有効時刻から前記第２の実行予想時間の設定値を減算することによって、前記有効時刻の修正値を算出する減算回路と、
現在時刻を示すタイムカウンタ値と前記修正値を比較することによって、前記リアルタイム処理を前記有効期間内に実行完了できるかを判定する第２の比較回路と、
を備える、請求項２に従属する請求項３に記載の割り込み制御装置。
【請求項５】
前記第１の比較部は、第１の判定プログラムを実行することによって、前記リアルタイム処理を前記有効期間内に実行完了できるかを判定する前記第２のプロセッサを備え、
前記第２のプロセッサは、前記第１及び第２の実行予想時間、並びに前記第１の判定プログラムの実行時間に基づいて、前記第１のプロセッサが前記リアルタイム処理を前記有効期間内に実行完了できるかを判定する、請求項１又は２に記載の割り込み制御装置。
【請求項６】
前記第２のプロセッサは、第２の判定プログラムを実行することによって、前記第２の判定部として動作するよう構成され、
前記第２のプロセッサは、現在時刻、前記第２の実行予想時間、前記有効期間、及び前記第２の判定プログラムの実行時間に基づいて、前記第１のプロセッサが前記リアルタイム処理を前記有効期間内に実行完了できるかを判定する、請求項２に従属する請求項５に記載の割り込み制御装置。
【請求項７】
前記第１のプロセッサは、ＤＣモーターの制御を行うプロセッサであって、
前記リアルタイム処理は、前記ＤＣモーターの回転子の位置を示すＡ／Ｄ変換値を取得する処理を含む、請求項１〜６のいずれか１項に記載の割り込み制御装置。
【請求項８】
外部からの割り込み要求に基づいて第１のプロセッサに割り込み信号を供給するか否かを制御する割り込み制御方法であって、
所定の有効期間内に実行を完了する必要があるリアルタイム処理に関連付けられた第１の割り込み要求が発生した場合に、過去の割り込み要求に基づいて既に実行完了待ちにある１又は複数の他の処理の前記第１のプロセッサによる実行に要する第１の実行予想時間と、前記リアルタイム処理の前記第１のプロセッサによる実行に要する第２の実行予想時間とに基づいて、前記第１のプロセッサが前記リアルタイム処理を前記有効期間内に実行完了できるかを判定し、
前記有効期間内に前記リアルタイム処理を完了できると判定された場合に前記リアルタイム処理を起動するための第１の割り込み信号を生成し、前記有効期間内に前記リアルタイム処理を完了できないと判定された場合に前記第１の割り込み信号の生成を抑止する、
割り込み制御方法。
【請求項９】
前記第１の判定部が前記有効期間内に前記リアルタイム処理を完了できると判定した後の時間経過に基づいて、前記リアルタイム処理を前記有効期間内に実行完了できるかを再判定し、
前記有効期間内に前記リアルタイム処理を完了できないと前記再判定において判定された場合に、前記第１の割り込み信号の生成を抑止する、請求項８に記載の割り込み制御方法。
【請求項１０】
前記第１のプロセッサは、ＤＣモーターの制御を行うプロセッサであって、
前記リアルタイム処理は、前記ＤＣモーターの回転子の位置を示すＡ／Ｄ変換値を取得する処理を含む、請求項８又は９に記載の割り込み制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プロセッサに対する割り込みの制御に関し、特に、所定の時間内に完了する必要のある処理（リアルタイム処理）に関連する割り込みの制御に関する。
【背景技術】
【０００２】
家電や輸送機械などに搭載されるプロセッサ（マイクロコントローラ）は、マルチプログラミング環境を有することが一般的である。このようなプロセッサは、リアルタイム処理と他の処理（リアルタイム処理及び非リアルタイム処理を含む）とを切り替えて実行することが求められる。例えば、エア・コンディショナーの場合、コンプレッサー内のＤＣモーター回転子の位置検出に必要なＡ／Ｄ変換値の取得処理は、リアルタイム処理である。エア・コンディショナーのＤＣモーター制御を行うマイクロコントローラは、Ａ／Ｄ変換値の取得を含むリアルタイム処理を他の処理とともにマルチプログラミング環境で並列実行できることが望ましい。エア・コンディショナーのＤＣモーター制御における他の処理とは、例えば、ユーザによるコントローラ操作の受け付け等を行うシステム制御回路からの割り込み処理である。
【０００３】
なお、マルチプログラミング環境とは、複数のプログラムを定期的に切り替えて実行したり、イベントの発生に応じて実行するプログラムを切り替えたりすることによって、複数のプログラムがあたかも並列実行されているような環境を意味する。マルチプログラミングは、マルチプロセス、マルチスレッド、マルチタスク等と呼ばれる場合もある。
【０００４】
特許文献１は、リアルタイム処理（具体的にはＤＣモーターの制御）のために周期的に発生する割り込みの発生周期を、プロセッサ（ＣＰＵ：Central Processing Unit）の負荷に応じて変更することを開示している。具体的には、特許文献１では、ＣＰＵに対する割り込みの多重数を指標としてＣＰＵ負荷の大小を判定し、ＣＰＵ負荷が大きい場合にＤＣモーター制御のための割り込みの発生周期を長くする。
【０００５】
特許文献２は、周期的な割り込みによって起動されるリアルタイム処理（リアルタイムタスク）の合間に、不定期な割り込みによって起動される他のタスクを実行できるかを、リアルタイムタスク及び当該他のタスクの実行時間を用いて判定することを開示している。特許文献２に記載されたコントローラは、リアルタイムタスクの合間に他のタスクを実行可能と判定した場合に当該他のタスクを実行し、実行不可能と判定した場合に当該他のタスクの実行を遅らせる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平７−２５５１９２号公報
【特許文献２】特開昭６３−２７９３０３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上述したエア・コンディショナーのＤＣモーター制御の場合などにおいては、リアルタイム処理であるＤＣモーターの制御処理（Ａ／Ｄ変換値の取得）は、他の処理（例えばシステム制御コントローラからの割り込み処理）に比べて相対的に優先度が低い。特許文献１に開示された技術は、ＣＰＵ負荷が大きい場合に、相対的に優先度の低いリアルタイム処理の実行を抑止できる点で有効である。しかしながら、特許文献１は、ＣＰＵ負荷を割り込み多重数で判断し、リアルタイム処理を起動するための周期的な割り込みの実行間隔を変更することを開示するのみである。
【０００８】
つまり、特許文献１は、割り込みによって起動されるタスク（リアルタイム処理及び非リアルタイム処理を含む）の実行時間を考慮していない。よって、特許文献１の技術では、リアルタイム処理を起動するための割り込みの間隔が必要以上に長くなり、必要以上にリアルタイム処理の実行を抑制してしまうおそれがあるという問題がある。割り込みによって起動される各処理（タスク）の実行時間が短ければ、割り込み多重数が大きくてもＣＰＵがリアルタイム処理を所定の時間内に完了できる可能性があるためである。つまり、割り込み多重数のみを指標として相対的に優先度の低いリアルタイム処理の実行を抑制することは、相対的に優先度が低いリアルタイム処理とその他の処理とをマルチプログラミング環境で並列実行するＣＰＵの割り込み制御として適切ではない。
【０００９】
なお、特許文献２は、周期的なリアルタイム処理（リアルタイムタスク）の実行を優先し、これらのリアルタイムタスクの合間に非リアルタイム処理である他のタスクを実行できるかをタスク実行時間に基づいて判定し、必要に応じて他のタスクの実行を遅らせることを開示するのみである。つまり、特許文献２は、割り込みによって起動されるリアルタイム処理の実行の抑止について何ら開示していない。
【課題を解決するための手段】
【００１０】
本発明の第１の態様は、外部からの割り込み要求に基づいて第１のプロセッサに割り込み信号を供給する割り込み制御装置を含む。当該割り込み制御装置は、第１の判定部、及び信号生成部を含む。前記第１の判定部は、所定の有効期間内に実行を完了する必要があるリアルタイム処理に関連付けられた第１の割り込み要求が発生した場合に、過去の割り込み要求に基づいて既に実行完了待ちにある１又は複数の他の処理の前記第１のプロセッサによる実行に要する第１の実行予想時間と、前記リアルタイム処理の前記第１のプロセッサによる実行に要する第２の実行予想時間とに基づいて、前記第１のプロセッサが前記リアルタイム処理を前記有効期間内に実行完了できるかを判定する。前記信号生成部は、前記有効期間内に前記リアルタイム処理を完了できると判定された場合に前記リアルタイム処理を起動するための第１の割り込み信号を生成し、前記有効期間内に前記リアルタイム処理を完了できないと判定された場合に前記第１の割り込み信号の生成を抑止する。
【００１１】
本発明の第２の態様は、外部からの割り込み要求に基づいて第１のプロセッサに割り込み信号を供給するか否かを制御する割り込み制御方法を含む。当該方法は、以下のステップ（ａ）及び（ｂ）を含む。
（ａ）所定の有効期間内に実行を完了する必要があるリアルタイム処理に関連付けられた第１の割り込み要求が発生した場合に、過去の割り込み要求に基づいて既に実行完了待ちにある１又は複数の他の処理の前記第１のプロセッサによる実行に要する第１の実行予想時間と、前記リアルタイム処理の前記第１のプロセッサによる実行に要する第２の実行予想時間とに基づいて、前記第１のプロセッサが前記リアルタイム処理を前記有効期間内に実行完了できるかを判定すること、及び
（ｂ）前記有効期間内に前記リアルタイム処理を完了できると判定された場合に前記リアルタイム処理を起動するための第１の割り込み信号を生成し、前記有効期間内に前記リアルタイム処理を完了できないと判定された場合に前記第１の割り込み信号の生成を抑止すること。
【００１２】
上述した本発明の各態様は、割り込み要求に基づくリアルタイム処理の実行予想時間（第２の実行予想時間）と、過去の割り込み要求に基づいて既に実行完了待ちにある１又は複数の他の処理の実行予想時間（第１の実行予想時間）とに基づいて、リアルタイム処理を有効期間内に実行完了できるかを判定する。このため、特許文献１のように割り込み多重数のみによってプロセッサの負荷を判定するのに比べて、リアルタイム処理の実行要否を適切に判定できる。例えば、既に実行完了待ちにある割り込み数が多くても、これらの処理が十分早く完了するのであれば、リアルタイム処理をプロセッサに行わせることができる。
【発明の効果】
【００１３】
つまり、上述した本発明の各態様によれば、相対的に優先度が低いリアルタイム処理とその他の処理とをマルチプログラミング環境で並列実行するプロセッサの割り込み制御において、所定の期間内に実行可能であるにも関わらずリアルタイム処理が無駄に抑止されることを防止できる。
【図面の簡単な説明】
【００１４】
【図１】本発明の実施の形態１にかかるモーター制御装置の使用例を示すブロック図である。
【図２】図１に示した割り込みコントローラ１０の構成例を示すブロック図である。
【図３】図２に示した発生状況レジスタＩＣの具体例を示す図である。
【図４】図２に示した設定レジスタＩＤの具体例を示す図である。
【図５】各種時間情報の関係を示す概念図である。
【図６】図２に示した第１判定部の構成例を示すブロック図である。
【図７】図２に示した第２判定部の構成例を示すブロック図である。
【図８】図２に示した第１判定部の動作例を示すフローチャートである。
【図９】図２に示した第２判定部の動作例を示すフローチャートである。
【図１０】図１に示した割り込みコントローラ１０の他の構成例を示すブロック図である。
【図１１】図１０に示した割り込みコントローラ１０による第１の判定動作の具体例を示すフローチャートである。
【図１２】図１０に示した割り込みコントローラ１０による第２の判定動作の具体例を示すフローチャートである。
【発明を実施するための形態】
【００１５】
以下では、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。各図面において、同一要素には同一の符号が付されており、説明の明確化のため、必要に応じて重複説明は省略される。
【００１６】
＜発明の実施の形態１＞
本実施の形態では、ＤＣモーターの制御を行うＣＰＵ１１を含むモーター制御装置１について説明する。図１は、モーター制御装置１の使用例を示す図である。モーター制御装置１は、割り込みコントローラ１０及びＣＰＵ１１を含む。図１の例では、ＣＰＵ１１は、相対的に優先度が低いリアルタイム処理（例えば、モーター回転子の位置検出に必要なＡ／Ｄ変換値の取得）とその他の処理（例えば、システム制御回路２からの割り込み処理）とをマルチプログラミング環境で並列実行する。システム制御回路２は、ユーザによるコントローラ操作の受け付け処理等を行い、処理結果に基づいてモーター制御装置１に対して割り込み処理を要求する。ドライバ回路３は、モーター制御装置１により制御され、ＤＣモーター４が有するＵ相、Ｖ相、及びＷ相の３つのコイルに電流を供給する。
【００１７】
以下では、図１に示したモーター制御装置１に含まれる各要素について説明する。割り込みコントローラ１０は、Ａ／Ｄコンバータ（ＡＤＣ）１４からの割り込み、通信回路１５経由でのシステム制御回路２からの割り込み、並びにその他の周辺回路１６及び１７からの割り込みを受信し、受信した割り込みに基づいて生成した割り込み信号をＣＰＵ１１に送る。また、割り込みコントローラ１０は、リアルタイム処理に関連付けられた割り込み（例えばＡＤＣ１４からの割り込み）を受信した場合に、リアルタイム処理を無効化するか否かを決定する。具体的には、リアルタイム処理を所定の有効期間内に完了できないと判定した場合に、リアルタイム処理を無効化し、当該リアルタイム処理を起動するためのＣＰＵ１１に対する割り込み信号の送信を抑止する。割り込みコントローラ１０によるリアルタイム処理の無効化動作の詳細については後述する。
【００１８】
ＣＰＵ１１は、マルチプログラミング環境を提供し、割り込みコントローラ１０からの割り込み信号に応じて実行プログラムの切り替えを行い、割り込み信号に対応するプログラムを実行する。ＲＯＭ１２は、ＣＰＵ１１により実行されるプログラムや、ＣＰＵ１１から参照される設定データ等を格納する。ＲＡＭ１３は、プログラムのロード領域やＣＰＵ１１のワーク領域として使用される。ＡＤＣ１４は、ドライバ回路３が生成する３相の電流をサンプリングする。サンプリングされた電流値は、ＣＰＵ１１によって参照され、モーター回転子の位置推定に使用される。通信回路１５は、システム制御回路２との信号送受信を行う。出力制御回路１８は、ＣＰＵ１１からの指示に基づいて、ＤＣモーター４を駆動するためのＰＷＭ（Pulse Width Modulation）信号を生成し、これをドライバ回路３に供給する。
【００１９】
続いて以下では、割り込みコントローラの構成例と、割り込みコントローラ１０によるリアルタイム処理の無効化動作の詳細について説明する。図２は、割り込みコントローラ１０の構成例を示すブロック図である。図２示す割り込みコントローラ１０は、複数の割り込み（割り込み要求）１〜ｎを受け付け、割り込み信号を生成する。ここで、ｎは２以上の整数である。
【００２０】
割り込みコントローラ１０は、割り込み１〜ｎのうちリアルタイム処理に関連付けられた少なくとも１つの割り込み（ここでは割り込みｍとする）について、ＣＰＵ１１によるリアルタイム処理の実行が予め定められた有効期間内に完了するか否かを判定する。ここで、リアルタイム処理の有効期間は、割り込みｍを受け付けてからＣＰＵ１１によるリアルタイム処理の実行が完了するまでの期間とすればよい。そして、割り込みコントローラ１０は、有効期間内でのリアルタイム処理の完了が困難と判定した場合には、当該割り込みｍを無効化する。つまり、割り込みコントローラ１０は、割り込みｍに対応するリアルタイム処理をＣＰＵ１１に実行させるための割り込み信号を生成しない。
【００２１】
ＣＰＵ１１によるリアルタイム処理の実行が予め定められた有効期間内に完了するか否かは以下のようにの判定すればよい。例えば、割り込みコントローラ１０は、既に割り込みを受け付けて実行完了待ちにある１又は複数の他の割り込み処理と当該リアルタイム処理とを合計した実行時間が、有効期間より短いか否かを判定すればよい。ＣＰＵ１１による合計の実行時間がリアルタイム処理の有効期間より長い場合、リアルタイム処理を実行したとしても完了時刻は所望の有効期間を経過している可能性が高い。よって、割り込みコントローラ１０は、ＣＰＵ１１による合計の実行時間がリアルタイム処理の有効期間より長い場合に、割り込みｍを無効化すればよい。なお、この判定を行うためには、各割り込み処理のＣＰＵ１１による実行時間を、割り込みコントローラ１０に予め設定しておく必要がある。各割り込み処理の実行時間は、予め計測しておけばよい。
【００２２】
以下では、リアルタイム処理を含む割り込み処理の合計の実行時間を指標として、割り込みｍの無効化を判定し、割り込みｍに基づく割り込み信号の生成を抑止するための割り込みコントローラ１０の構成例について説明する。図２において、第１判定部１００は、割り込みｍの発生時に、割り込みｍを無効化するか否かの判定を行う。一方、第２判定部１０１は、第１判定部１００による判定の後に、ＣＰＵ１１による実行完了待ち（つまり、割り込み信号の生成待ち）の割り込み処理について、割り込みｍを無効化するか否かの再判定を行う。信号生成部１０３は、２つの判定部１００及び１０１によって無効化されていない割り込みに関する割り込み信号を生成してＣＰＵ１１に供給する。
【００２３】
タイムカウンタＩＡ、並びにレジスタＩＢ、ＩＣ、及びＩＤは、判定部１００及び１０１によって参照される。また、レジスタＩＢ及びＩＣは、判定部１００及び１０１によって更新される。タイムカウンタＩＡは、現在時刻を示す計数値を保持するレジスタである。全割り込み予想実行時間レジスタＩＢは、ＣＰＵ１１による実行完了待ち状態にある全ての割り込み処理がＣＰＵ１１で実行されるのに要する合計時間を示す値を保持する。発生状況レジスタＩＣは、割り込み１〜ｎのそれぞれについて、発生時刻に関連した時間情報を保持する。設定レジスタＩＤは、割り込み１〜ｎのそれぞれについて、予め測定された実行時間等の設定情報を保持する。
【００２４】
図３は、発生状況レジスタＩＣの具体例を示している。図３に示すレジスタＩＣは、割り込み要因毎に、処理基準時刻を保持可能なレジスタＩＣ１、及び最大割り込み有効時刻を保持可能なＩＣ２を有する。ここで、処理基準時刻は、割り込みを受け付けた時刻を意味する。また、最大割り込み有効時刻は、割り込み処理を完了すべき時点を意味する。
【００２５】
図４は、設定レジスタＩＤの具体例を示している。図４に示すレジスタＩＤは、割り込み動作設定を保持可能なレジスタＩＤ０、割り込み実行時間を保持可能なレジスタＩＤ１、及び最大割り込み有効期間を保持可能なレジスタＩＤ２を、割り込み要因毎に有する。ここで、割り込み動作設定は、判定部１００及び１０１による無効化判定の対象とするか否か等の設定情報を含む。割り込み実行時間は、予め計測されたＣＰＵ１１による割り込み処理の実行時間を意味する。また、最大割り込み有効期間は、割り込み処理がリアルタイム処理である場合に保持される情報であり、割り込みを受け付けてから割り込み処理を完了するまでに許容される時間を意味する。
【００２６】
図５は、割り込みｍに関して、カウンタＩＡ、並びにレジスタＩＢ、ＩＣ、及びＩＤに保持される時間情報の関係を示した概念図である。図５は、割り込みｍの発生時点において、未完了の３つの割り込み（割り込み１〜３）が存在する場合について示している。また、図５中のＴ（ＩＣ１−ｍ）等の記号は、括弧内に記載されたレジスタに保持されている値（時間情報）を示している。
【００２７】
続いて以下では、第１判定部１００及び第２判定部１０１の構成例及び動作について図６〜９を用いて説明する。図６は、第１判定部１００の構成例を示している。なお、図６は、割り込みｍが発生した場合について示している。加算回路１０００は、タイムカウンタに保持された現在時刻Ｔ（ＩＡ）と、設定レジスタＩＤに保持された割り込みｍの最大割り込み有効期間Ｔ（ＩＤ２−ｍ）を加算し、加算結果を発生状況レジスタＩＣの割り込みｍに関する領域に格納する。加算回路１０００により得られる加算結果は、最大割り込み有効時刻Ｔ（ＩＣ２−ｍ）に相当する。
【００２８】
加算回路１００１は、設定レジスタＩＤに保持された割り込みｍの割り込み実行時間Ｔ（ＩＤ１−ｍ）と、全割り込み予想実行時間レジスタＩＢに保持された値Ｔ（ＩＢ）を加算し、加算結果によって全割り込み予想実行時間レジスタＩＢを上書きする。加算回路１００１により得られる加算結果は全割り込み予想実行時間Ｔ（ＩＢ）の更新値に相当する。
【００２９】
加算回路１００２は、を発生状況レジスタＩＣに保持された割り込みｍの処理基準時刻Ｔ（ＩＣ１−ｍ）と、更新後の全割り込み予想実行時間Ｔ（ＩＢ）とを加算する。加算回路１００１により得られる加算結果は、図５に示した全割り込み予想完了時刻に相当する。
【００３０】
比較回路１００３は、発生状況レジスタＩＣに保持された最大割り込み有効時刻Ｔ（ＩＣ２−ｍ）と、加算回路１００２から供給される全割り込み予想完了時刻（Ｔ（ＩＣ１−ｍ）＋Ｔ（ＩＢ））を比較する。
【００３１】
続いて第２判定部１０１の構成例を説明する。第２判定部１０１は、第１判定部１００の判定部結果によって無効化されなかった割り込み処理の全てについて繰り返し比較処理を行う。具体的には、第２判定部１０１は、例えば、タイムカウンタＩＡの更新毎に繰り返し比較処理を行えばよい。図７は、第２判定部１０１の構成例を示している。なお、図７は、割り込みｘの無効化が行われる場合について示している。
【００３２】
減算回路１０１０は、割り込みｘの最大割り込み有効時刻Ｔ（ＩＣ２−ｘ）から割り込みｘの実行時間Ｔ（ＩＤ１−ｘ）を減算する。
【００３３】
比較回路１０１２は、タイムカウンタＩＡに保持された現在時刻Ｔ（ＩＡ）と、減算回路１０１０の演算結果を比較する。
【００３４】
減算回路１０１１は、割り込みｘの無効化に伴って、全割り込み予想実行時間Ｔ（ＩＢ）の更新を行う。具体的には、減算回路１０１１は、無効化された割り込みｘの割り込み実行時間Ｔ（ＩＤ１−ｍ）を全割り込み予想実行時間Ｔ（ＩＢ）から減算し、得られた結果によって全割り込み予想実行時間レジスタＩＢを上書きする。
【００３５】
図８は、割り込み発生時に第１判定部１００によって行われる判定動作の具体例を示すフローチャートである。図８の処理は、割り込みｍの発生に応じて開始される（ステップＳ１０）。ステップＳ１１では、第１判定部１００は、全割り込み予想完了時刻Ｔ（ＩＢ）を更新する。ステップＳ１２では、第１判定部１００は、発生した割り込みｍが間引き処理（無効化処理）の対象となる割り込みであるかを判定する。この判定は、設定レジスタＩＤに含まれる割り込み動作設定レジスタＩＤ０−ｍに保持された設定値を用いて行えばよい。ステップＳ１２において間引き処理の対象でないと判定された場合（Ｓ１２でＮＯ）、第１判定部１００の処理は終了し、通常の割り込み処理が行われる（ステップＳ１３）。ステップＳ１２において間引き処理の対象と判定された場合（Ｓ１２でＹＥＳ）、ステップＳ１４以降の処理が行われる。
【００３６】
ステップＳ１４では、第１判定部１００は、発生状況レジスタＩＣに保持された割り込みｍに関する値、具体的には処理基準時刻Ｔ（ＩＣ１−ｍ）及び最大割り込み有効時刻Ｔ（ＩＣ２−ｍ）、を更新する。
【００３７】
ステップＳ１５では、第１判定部１００は、割り込みｍに関する割り込み処理（リアルタイム処理）が所定の有効期間内に完了できるか否かを判定する。具体的には、第１判定部１００は、処理基準時刻Ｔ（ＩＣ１−ｍ）に全割り込み予想実行時間Ｔ（ＩＢ）を加算した値（つまり、全割り込み予想完了時刻）が、最大割り込み有効時刻Ｔ（ＩＣ２−ｍ）を超えるか否かを判定すればよい。全割り込み予想完了時刻が最大割り込み有効時刻Ｔ（ＩＣ２−ｍ）未満である場合（ステップＳ１５でＮＯ）、割り込みｍは無効化されずに第２判定部１０１による常時監視の対象となる（ステップＳ１６）。一方、全割り込み予想完了時刻が最大割り込み有効時刻Ｔ（ＩＣ２−ｍ）以上である場合（ステップＳ１５でＹＥＳ）、割り込みｍは無効化される（ステップＳ１７）。
【００３８】
ステップＳ１７では、第１判定部１００は、発生状況レジスタＩＣに保持された割り込みｍに関する値を初期化する。図８の例では、初期値をゼロとしている。また、第１判定部１００は、全割り込み予想実行時間Ｔ（ＩＢ）を更新する。具体的には、全割り込み予想実行時間Ｔ（ＩＢ）から無効化された割り込みｍに対応する処理の実行時間Ｔ（ＩＤ１−ｍ）を差し引けばよい。
【００３９】
図９は、実行完了待ちにある割り込みに関して第２判定部１０１によって繰り返し行われる判定動作の具体例を示すフローチャートである。ステップＳ２１では、実行完了待ちの各割り込みについて、現在時刻Ｔ（ＩＡ）に割り込み実行時間Ｔ（ＩＤ１−ｍ）を加算して得られる時刻と、最大割り込み有効時刻Ｔ（ＩＣ２−ｘ）とを比較する。現在時刻Ｔ（ＩＡ）に割り込み実行時間Ｔ（ＩＤ１−ｍ）を加算して得られる時刻が、最大割り込み有効時刻Ｔ（ＩＣ２−ｘ）に到達していない場合（Ｓ２１でＮＯ）、ステップＳ２１の判定を繰り返し行う。一方、現在時刻Ｔ（ＩＡ）が、最大割り込み有効時刻Ｔ（ＩＣ２−ｘ）から割り込み実行時間Ｔ（ＩＤ１−ｍ）を減じて得られる時刻を経過している場合（Ｓ２１でＹＥＳ）、第２判定部１０１は、該当の割り込みｘを無効化する（ステップＳ２２）。
【００４０】
ステップＳ２２では、第２判定部１０１は、発生状況レジスタＩＣに保持された割り込みｘに関する値を初期化する。図９の例では、初期値をゼロとしている。また、第２判定部１０１は、全割り込み予想実行時間Ｔ（ＩＢ）を更新する。具体的には、全割り込み予想実行時間Ｔ（ＩＢ）から無効化された割り込みｘに対応する処理の実行時間Ｔ（ＩＤ１−ｘ）を差し引けばよい。
【００４１】
上述したように、本実施の形態で説明した割り込みコントローラ１０は、割り込みｍに基づくリアルタイム処理の実行時間Ｔ（ＩＤ１−ｍ）と、過去の割り込み要求に基づいて既に実行完了待ちにある１又は複数の他の処理の実行時間とに基づいて得られる全割り込み予想実行時間Ｔ（ＩＢ）を指標として、割り込みｍに基づくリアルタイム処理を有効期間内に実行完了できるかを判定する。従って、割り込みコントローラ１０によれば、相対的に優先度が低いリアルタイム処理（例えば、モーター回転子の位置検出に必要なＡ／Ｄ変換値の取得）とその他の処理（例えば、システム制御回路２からの割り込み処理）とをマルチプログラミング環境で並列実行するＣＰＵ１１の割り込み制御において、所定の期間内に実行可能であるにも関わらずリアルタイム処理が無駄に抑止されることを防止できる。
【００４２】
＜発明の実施の形態２＞
上述した実施の形態１では、判定部１００及び１０１を加算回路及び比較回路等のハードウェアを用いて構成する例、つまり判定部１００及び１０１をＡＳＩＣ（Application Specific Integrated Circuit）、ＰＬＤ（Programmable Logic Device）等のハードウェアを用いて製造する場合に好適な例を示した。しかしながら、判定部１００及び１０１は、ソフトウェア、すなわちプロセッサ及びコンピュータプログラム（判定プログラム）によって実現してもよい。この場合、以下に示す具体例のように、リアルタイム処理の無効化判定に際して、判定部１００及び１０１の機能を実現するための判定プログラムの実行時間を考慮するとよい。ソフトウェアを用いて無効化判定を行う場合、ハードウェアを用いる場合に比べて判定に要する時間が大きくなる傾向があるためである。判定プログラムの実行に要する時間を考慮することによって、リアルタイム処理の無効化判定をより正確に行うことができる。
【００４３】
図１０は、割り込みコントローラ１０の他の構成例を示すブロック図である。図１０の構成例は、図２の構成例に含まれる判定部１００及び１０１に代えてプロセッサ２００、並びにメモリ２０１に保存された第１判定プログラム２０２及び第２判定プログラム２０３を含む。プロセッサ２００が第１判定プログラム２０２を実行することによって、上述した第１判定部１００として動作する。また、プロセッサ２００が第２判定プログラム２０３を実行することによって、上述した第２判定部１０１として動作する。
【００４４】
また、図１０の構成例は、判定時間レジスタＳ１及びＳ２を含む。判定時間レジスタＳ１は、予め計測された第１判定プログラム２０２の実行時間の情報を保持する。また、判定時間レジスタＳ２は、予め計測された第２判定プログラム２０３の実行時間の情報を保持する。なお、より正確な判定のために、判定時間レジスタＳ１の値は、第１判定プログラム２０２の全体の実行時間ではなく、割り込みが発生した時点から第１判定プログラムが起動され、発生状況レジスタの更新（特にタイムカウンタＩＡから取得した現在時刻Ｔ（ＩＡ）による処理基準時刻Ｔ（ＩＣ１−ｍ）の更新）が行われるまでの時間としてもよい。判定時間レジスタＳ２の値は、第２判定プログラム２０３の実行によってタイムカウンタＩＡから現在時刻Ｔ（ＩＡ）の取得が行われるタイミングから第２判定プログラム２０３が終了するまでの時間としてもよい。また、判定時間レジスタＳ２の値は、第２判定プログラム２０３の実行によってタイムカウンタＩＡから現在時刻Ｔ（ＩＡ）の取得が行われるタイミングから、レジスタの値を用いて無効化判定が行われるタイミングまでの平均的な時間としてもよい。
【００４５】
図１０に示したメモリ２０１、レジスタＳ１、Ｓ２、ＩＡ、ＩＢ，ＩＣ、ＩＤは、割り込みコントローラ１０内に配置する必要は無く、例えばＲＡＭ１３の一部をこれらのメモリ及びレジスタとして用いてもよい。また、メモリ２０１、判定時間レジスタＳ１及びＳ２、並びに設定レジスタＩＤは、記録内容の変更を行わなくてもよいため、ＲＯＭ１２の一部をこれらのメモリ及びレジスタとして用いてもよい。
【００４６】
図１１は、割り込み発生時に第１判定プログラム２０２の実行によって行われる判定動作の具体例を示すフローチャートである。図１１のステップＳ３５を除く他のステップＳ１０〜Ｓ１４及びＳ１６〜１７は、図８のフローチャートの対応するステップと同様である。
【００４７】
ステップＳ３５では、プロセッサ２００は、割り込みｍに関する割り込み処理（リアルタイム処理）が所定の有効期間内に完了できるかを判定する。具体的には、プロセッサ２００は、全割り込み予想完了時刻（Ｔ（ＩＣ１−ｍ）＋Ｔ（ＩＢ））に判定時間Ｔ（Ｓ１）を加えた値が、最大割り込み有効時刻Ｔ（ＩＣ２−ｍ）を超えるか否かを判定すればよい。
【００４８】
図１２は、実行完了待ちにある割り込みに関して第２判定プログラム２０３の実行によって繰り返し行われる判定動作の具体例を示すフローチャートである。ステップＳ４１では、実行完了待ちの各割り込みについて、現在時刻Ｔ（ＩＡ）に割り込み実行時間Ｔ（ＩＤ１−ｍ）及び判定時間Ｔ（Ｓ２）を加算して得られる時刻と、最大割り込み有効時刻Ｔ（ＩＣ２−ｘ）とを比較する。図１２のステップＳ２２は、図９のフローチャートの対応するステップと同様である。
【００４９】
さらに、本発明は上述した実施の形態のみに限定されるものではなく、既に述べた本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。
【符号の説明】
【００５０】
１  モーター制御装置
２  システム制御回路
３  ドライバ回路
４  ＤＣモーター
１０  割り込みコントローラ
１１  ＣＰＵ（Central Processing Unit）
１２  ＲＯＭ（Read Only Memory）
１３  ＲＡＭ（Random Access Memory）
１４  Ａ／Ｄコンバータ（ＡＤＣ）
１５  通信回路
１６、１７  周辺回路
１８  出力制御回路
１００  第１判定部
１０２  第２判定部
１０３  信号生成部
２００  プロセッサ
２０１  メモリ
２０２  第１判定プログラム
２０３  第２判定プログラム
１０００〜１００２  加算回路
１００３  比較回路
１０１０、１０１１  減算回路
１０１２  比較回路
ＩＡ  タイムカウンタ
ＩＢ  全割り込み予想実行時間レジスタ
ＩＣ  発生状況レジスタ
ＩＤ  設定レジスタ
Ｓ１  判定時間レジスタ
Ｓ２  判定時間レジスタ
【図１】
2011232937.tif 000003
【図２】
2011232937.tif 000004
【図３】
2011232937.tif 000005
【図４】
2011232937.tif 000006
【図５】
2011232937.tif 000007
【図６】
2011232937.tif 000008
【図７】
2011232937.tif 000009
【図８】
2011232937.tif 000010
【図９】
2011232937.tif 000011
【図１０】
2011232937.tif 000012
【図１１】
2011232937.tif 000013
【図１２】
2011232937.tif 000014