JP2011232937A - 割り込み制御装置、及び割り込み制御方法 - Google Patents

割り込み制御装置、及び割り込み制御方法 Download PDF

Info

Publication number
JP2011232937A
JP2011232937A JP2010102261A JP2010102261A JP2011232937A JP 2011232937 A JP2011232937 A JP 2011232937A JP 2010102261 A JP2010102261 A JP 2010102261A JP 2010102261 A JP2010102261 A JP 2010102261A JP 2011232937 A JP2011232937 A JP 2011232937A
Authority
JP
Japan
Prior art keywords
time
interrupt
real
execution
completed
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2010102261A
Other languages
English (en)
Inventor
Katsuhisa Kitagawa
勝久 北川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Renesas Electronics Corp filed Critical Renesas Electronics Corp
Priority to JP2010102261A priority Critical patent/JP2011232937A/ja
Publication of JP2011232937A publication Critical patent/JP2011232937A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Microcomputers (AREA)

Abstract

【課題】相対的に優先度が低いリアルタイム処理とその他の処理とをマルチプログラミング環境で並列実行するプロセッサの割り込み制御において、所定の期間内に実行可能であるにも関わらずリアルタイム処理が無駄に抑止されることを防止する。
【解決手段】判定部100は、割り込み要求に基づくリアルタイム処理の実行予想時間(第2の実行予想時間)と、過去の割り込み要求に基づいて既に実行完了待ちにある1又は複数の他の処理の実行予想時間(第1の実行予想時間)とに基づいて、割り込み要求に基づくリアルタイム処理を有効期間内に実行完了できるかを判定する。信号生成部103は、有効期間内にリアルタイム処理を完了できると判定された場合にリアルタイム処理を起動するための第1の割り込み信号を生成し、有効期間内にリアルタイム処理を完了できないと判定された場合に第1の割り込み信号の生成を抑止する。
【選択図】図2

Description

本発明は、プロセッサに対する割り込みの制御に関し、特に、所定の時間内に完了する必要のある処理(リアルタイム処理)に関連する割り込みの制御に関する。
家電や輸送機械などに搭載されるプロセッサ(マイクロコントローラ)は、マルチプログラミング環境を有することが一般的である。このようなプロセッサは、リアルタイム処理と他の処理(リアルタイム処理及び非リアルタイム処理を含む)とを切り替えて実行することが求められる。例えば、エア・コンディショナーの場合、コンプレッサー内のDCモーター回転子の位置検出に必要なA/D変換値の取得処理は、リアルタイム処理である。エア・コンディショナーのDCモーター制御を行うマイクロコントローラは、A/D変換値の取得を含むリアルタイム処理を他の処理とともにマルチプログラミング環境で並列実行できることが望ましい。エア・コンディショナーのDCモーター制御における他の処理とは、例えば、ユーザによるコントローラ操作の受け付け等を行うシステム制御回路からの割り込み処理である。
なお、マルチプログラミング環境とは、複数のプログラムを定期的に切り替えて実行したり、イベントの発生に応じて実行するプログラムを切り替えたりすることによって、複数のプログラムがあたかも並列実行されているような環境を意味する。マルチプログラミングは、マルチプロセス、マルチスレッド、マルチタスク等と呼ばれる場合もある。
特許文献1は、リアルタイム処理(具体的にはDCモーターの制御)のために周期的に発生する割り込みの発生周期を、プロセッサ(CPU:Central Processing Unit)の負荷に応じて変更することを開示している。具体的には、特許文献1では、CPUに対する割り込みの多重数を指標としてCPU負荷の大小を判定し、CPU負荷が大きい場合にDCモーター制御のための割り込みの発生周期を長くする。
特許文献2は、周期的な割り込みによって起動されるリアルタイム処理(リアルタイムタスク)の合間に、不定期な割り込みによって起動される他のタスクを実行できるかを、リアルタイムタスク及び当該他のタスクの実行時間を用いて判定することを開示している。特許文献2に記載されたコントローラは、リアルタイムタスクの合間に他のタスクを実行可能と判定した場合に当該他のタスクを実行し、実行不可能と判定した場合に当該他のタスクの実行を遅らせる。
特開平7−255192号公報 特開昭63−279303号公報
上述したエア・コンディショナーのDCモーター制御の場合などにおいては、リアルタイム処理であるDCモーターの制御処理(A/D変換値の取得)は、他の処理(例えばシステム制御コントローラからの割り込み処理)に比べて相対的に優先度が低い。特許文献1に開示された技術は、CPU負荷が大きい場合に、相対的に優先度の低いリアルタイム処理の実行を抑止できる点で有効である。しかしながら、特許文献1は、CPU負荷を割り込み多重数で判断し、リアルタイム処理を起動するための周期的な割り込みの実行間隔を変更することを開示するのみである。
つまり、特許文献1は、割り込みによって起動されるタスク(リアルタイム処理及び非リアルタイム処理を含む)の実行時間を考慮していない。よって、特許文献1の技術では、リアルタイム処理を起動するための割り込みの間隔が必要以上に長くなり、必要以上にリアルタイム処理の実行を抑制してしまうおそれがあるという問題がある。割り込みによって起動される各処理(タスク)の実行時間が短ければ、割り込み多重数が大きくてもCPUがリアルタイム処理を所定の時間内に完了できる可能性があるためである。つまり、割り込み多重数のみを指標として相対的に優先度の低いリアルタイム処理の実行を抑制することは、相対的に優先度が低いリアルタイム処理とその他の処理とをマルチプログラミング環境で並列実行するCPUの割り込み制御として適切ではない。
なお、特許文献2は、周期的なリアルタイム処理(リアルタイムタスク)の実行を優先し、これらのリアルタイムタスクの合間に非リアルタイム処理である他のタスクを実行できるかをタスク実行時間に基づいて判定し、必要に応じて他のタスクの実行を遅らせることを開示するのみである。つまり、特許文献2は、割り込みによって起動されるリアルタイム処理の実行の抑止について何ら開示していない。
本発明の第1の態様は、外部からの割り込み要求に基づいて第1のプロセッサに割り込み信号を供給する割り込み制御装置を含む。当該割り込み制御装置は、第1の判定部、及び信号生成部を含む。前記第1の判定部は、所定の有効期間内に実行を完了する必要があるリアルタイム処理に関連付けられた第1の割り込み要求が発生した場合に、過去の割り込み要求に基づいて既に実行完了待ちにある1又は複数の他の処理の前記第1のプロセッサによる実行に要する第1の実行予想時間と、前記リアルタイム処理の前記第1のプロセッサによる実行に要する第2の実行予想時間とに基づいて、前記第1のプロセッサが前記リアルタイム処理を前記有効期間内に実行完了できるかを判定する。前記信号生成部は、前記有効期間内に前記リアルタイム処理を完了できると判定された場合に前記リアルタイム処理を起動するための第1の割り込み信号を生成し、前記有効期間内に前記リアルタイム処理を完了できないと判定された場合に前記第1の割り込み信号の生成を抑止する。
本発明の第2の態様は、外部からの割り込み要求に基づいて第1のプロセッサに割り込み信号を供給するか否かを制御する割り込み制御方法を含む。当該方法は、以下のステップ(a)及び(b)を含む。
(a)所定の有効期間内に実行を完了する必要があるリアルタイム処理に関連付けられた第1の割り込み要求が発生した場合に、過去の割り込み要求に基づいて既に実行完了待ちにある1又は複数の他の処理の前記第1のプロセッサによる実行に要する第1の実行予想時間と、前記リアルタイム処理の前記第1のプロセッサによる実行に要する第2の実行予想時間とに基づいて、前記第1のプロセッサが前記リアルタイム処理を前記有効期間内に実行完了できるかを判定すること、及び
(b)前記有効期間内に前記リアルタイム処理を完了できると判定された場合に前記リアルタイム処理を起動するための第1の割り込み信号を生成し、前記有効期間内に前記リアルタイム処理を完了できないと判定された場合に前記第1の割り込み信号の生成を抑止すること。
上述した本発明の各態様は、割り込み要求に基づくリアルタイム処理の実行予想時間(第2の実行予想時間)と、過去の割り込み要求に基づいて既に実行完了待ちにある1又は複数の他の処理の実行予想時間(第1の実行予想時間)とに基づいて、リアルタイム処理を有効期間内に実行完了できるかを判定する。このため、特許文献1のように割り込み多重数のみによってプロセッサの負荷を判定するのに比べて、リアルタイム処理の実行要否を適切に判定できる。例えば、既に実行完了待ちにある割り込み数が多くても、これらの処理が十分早く完了するのであれば、リアルタイム処理をプロセッサに行わせることができる。
つまり、上述した本発明の各態様によれば、相対的に優先度が低いリアルタイム処理とその他の処理とをマルチプログラミング環境で並列実行するプロセッサの割り込み制御において、所定の期間内に実行可能であるにも関わらずリアルタイム処理が無駄に抑止されることを防止できる。
本発明の実施の形態1にかかるモーター制御装置の使用例を示すブロック図である。 図1に示した割り込みコントローラ10の構成例を示すブロック図である。 図2に示した発生状況レジスタICの具体例を示す図である。 図2に示した設定レジスタIDの具体例を示す図である。 各種時間情報の関係を示す概念図である。 図2に示した第1判定部の構成例を示すブロック図である。 図2に示した第2判定部の構成例を示すブロック図である。 図2に示した第1判定部の動作例を示すフローチャートである。 図2に示した第2判定部の動作例を示すフローチャートである。 図1に示した割り込みコントローラ10の他の構成例を示すブロック図である。 図10に示した割り込みコントローラ10による第1の判定動作の具体例を示すフローチャートである。 図10に示した割り込みコントローラ10による第2の判定動作の具体例を示すフローチャートである。
以下では、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。各図面において、同一要素には同一の符号が付されており、説明の明確化のため、必要に応じて重複説明は省略される。
<発明の実施の形態1>
本実施の形態では、DCモーターの制御を行うCPU11を含むモーター制御装置1について説明する。図1は、モーター制御装置1の使用例を示す図である。モーター制御装置1は、割り込みコントローラ10及びCPU11を含む。図1の例では、CPU11は、相対的に優先度が低いリアルタイム処理(例えば、モーター回転子の位置検出に必要なA/D変換値の取得)とその他の処理(例えば、システム制御回路2からの割り込み処理)とをマルチプログラミング環境で並列実行する。システム制御回路2は、ユーザによるコントローラ操作の受け付け処理等を行い、処理結果に基づいてモーター制御装置1に対して割り込み処理を要求する。ドライバ回路3は、モーター制御装置1により制御され、DCモーター4が有するU相、V相、及びW相の3つのコイルに電流を供給する。
以下では、図1に示したモーター制御装置1に含まれる各要素について説明する。割り込みコントローラ10は、A/Dコンバータ(ADC)14からの割り込み、通信回路15経由でのシステム制御回路2からの割り込み、並びにその他の周辺回路16及び17からの割り込みを受信し、受信した割り込みに基づいて生成した割り込み信号をCPU11に送る。また、割り込みコントローラ10は、リアルタイム処理に関連付けられた割り込み(例えばADC14からの割り込み)を受信した場合に、リアルタイム処理を無効化するか否かを決定する。具体的には、リアルタイム処理を所定の有効期間内に完了できないと判定した場合に、リアルタイム処理を無効化し、当該リアルタイム処理を起動するためのCPU11に対する割り込み信号の送信を抑止する。割り込みコントローラ10によるリアルタイム処理の無効化動作の詳細については後述する。
CPU11は、マルチプログラミング環境を提供し、割り込みコントローラ10からの割り込み信号に応じて実行プログラムの切り替えを行い、割り込み信号に対応するプログラムを実行する。ROM12は、CPU11により実行されるプログラムや、CPU11から参照される設定データ等を格納する。RAM13は、プログラムのロード領域やCPU11のワーク領域として使用される。ADC14は、ドライバ回路3が生成する3相の電流をサンプリングする。サンプリングされた電流値は、CPU11によって参照され、モーター回転子の位置推定に使用される。通信回路15は、システム制御回路2との信号送受信を行う。出力制御回路18は、CPU11からの指示に基づいて、DCモーター4を駆動するためのPWM(Pulse Width Modulation)信号を生成し、これをドライバ回路3に供給する。
続いて以下では、割り込みコントローラの構成例と、割り込みコントローラ10によるリアルタイム処理の無効化動作の詳細について説明する。図2は、割り込みコントローラ10の構成例を示すブロック図である。図2示す割り込みコントローラ10は、複数の割り込み(割り込み要求)1〜nを受け付け、割り込み信号を生成する。ここで、nは2以上の整数である。
割り込みコントローラ10は、割り込み1〜nのうちリアルタイム処理に関連付けられた少なくとも1つの割り込み(ここでは割り込みmとする)について、CPU11によるリアルタイム処理の実行が予め定められた有効期間内に完了するか否かを判定する。ここで、リアルタイム処理の有効期間は、割り込みmを受け付けてからCPU11によるリアルタイム処理の実行が完了するまでの期間とすればよい。そして、割り込みコントローラ10は、有効期間内でのリアルタイム処理の完了が困難と判定した場合には、当該割り込みmを無効化する。つまり、割り込みコントローラ10は、割り込みmに対応するリアルタイム処理をCPU11に実行させるための割り込み信号を生成しない。
CPU11によるリアルタイム処理の実行が予め定められた有効期間内に完了するか否かは以下のようにの判定すればよい。例えば、割り込みコントローラ10は、既に割り込みを受け付けて実行完了待ちにある1又は複数の他の割り込み処理と当該リアルタイム処理とを合計した実行時間が、有効期間より短いか否かを判定すればよい。CPU11による合計の実行時間がリアルタイム処理の有効期間より長い場合、リアルタイム処理を実行したとしても完了時刻は所望の有効期間を経過している可能性が高い。よって、割り込みコントローラ10は、CPU11による合計の実行時間がリアルタイム処理の有効期間より長い場合に、割り込みmを無効化すればよい。なお、この判定を行うためには、各割り込み処理のCPU11による実行時間を、割り込みコントローラ10に予め設定しておく必要がある。各割り込み処理の実行時間は、予め計測しておけばよい。
以下では、リアルタイム処理を含む割り込み処理の合計の実行時間を指標として、割り込みmの無効化を判定し、割り込みmに基づく割り込み信号の生成を抑止するための割り込みコントローラ10の構成例について説明する。図2において、第1判定部100は、割り込みmの発生時に、割り込みmを無効化するか否かの判定を行う。一方、第2判定部101は、第1判定部100による判定の後に、CPU11による実行完了待ち(つまり、割り込み信号の生成待ち)の割り込み処理について、割り込みmを無効化するか否かの再判定を行う。信号生成部103は、2つの判定部100及び101によって無効化されていない割り込みに関する割り込み信号を生成してCPU11に供給する。
タイムカウンタIA、並びにレジスタIB、IC、及びIDは、判定部100及び101によって参照される。また、レジスタIB及びICは、判定部100及び101によって更新される。タイムカウンタIAは、現在時刻を示す計数値を保持するレジスタである。全割り込み予想実行時間レジスタIBは、CPU11による実行完了待ち状態にある全ての割り込み処理がCPU11で実行されるのに要する合計時間を示す値を保持する。発生状況レジスタICは、割り込み1〜nのそれぞれについて、発生時刻に関連した時間情報を保持する。設定レジスタIDは、割り込み1〜nのそれぞれについて、予め測定された実行時間等の設定情報を保持する。
図3は、発生状況レジスタICの具体例を示している。図3に示すレジスタICは、割り込み要因毎に、処理基準時刻を保持可能なレジスタIC1、及び最大割り込み有効時刻を保持可能なIC2を有する。ここで、処理基準時刻は、割り込みを受け付けた時刻を意味する。また、最大割り込み有効時刻は、割り込み処理を完了すべき時点を意味する。
図4は、設定レジスタIDの具体例を示している。図4に示すレジスタIDは、割り込み動作設定を保持可能なレジスタID0、割り込み実行時間を保持可能なレジスタID1、及び最大割り込み有効期間を保持可能なレジスタID2を、割り込み要因毎に有する。ここで、割り込み動作設定は、判定部100及び101による無効化判定の対象とするか否か等の設定情報を含む。割り込み実行時間は、予め計測されたCPU11による割り込み処理の実行時間を意味する。また、最大割り込み有効期間は、割り込み処理がリアルタイム処理である場合に保持される情報であり、割り込みを受け付けてから割り込み処理を完了するまでに許容される時間を意味する。
図5は、割り込みmに関して、カウンタIA、並びにレジスタIB、IC、及びIDに保持される時間情報の関係を示した概念図である。図5は、割り込みmの発生時点において、未完了の3つの割り込み(割り込み1〜3)が存在する場合について示している。また、図5中のT(IC1−m)等の記号は、括弧内に記載されたレジスタに保持されている値(時間情報)を示している。
続いて以下では、第1判定部100及び第2判定部101の構成例及び動作について図6〜9を用いて説明する。図6は、第1判定部100の構成例を示している。なお、図6は、割り込みmが発生した場合について示している。加算回路1000は、タイムカウンタに保持された現在時刻T(IA)と、設定レジスタIDに保持された割り込みmの最大割り込み有効期間T(ID2−m)を加算し、加算結果を発生状況レジスタICの割り込みmに関する領域に格納する。加算回路1000により得られる加算結果は、最大割り込み有効時刻T(IC2−m)に相当する。
加算回路1001は、設定レジスタIDに保持された割り込みmの割り込み実行時間T(ID1−m)と、全割り込み予想実行時間レジスタIBに保持された値T(IB)を加算し、加算結果によって全割り込み予想実行時間レジスタIBを上書きする。加算回路1001により得られる加算結果は全割り込み予想実行時間T(IB)の更新値に相当する。
加算回路1002は、を発生状況レジスタICに保持された割り込みmの処理基準時刻T(IC1−m)と、更新後の全割り込み予想実行時間T(IB)とを加算する。加算回路1001により得られる加算結果は、図5に示した全割り込み予想完了時刻に相当する。
比較回路1003は、発生状況レジスタICに保持された最大割り込み有効時刻T(IC2−m)と、加算回路1002から供給される全割り込み予想完了時刻(T(IC1−m)+T(IB))を比較する。
続いて第2判定部101の構成例を説明する。第2判定部101は、第1判定部100の判定部結果によって無効化されなかった割り込み処理の全てについて繰り返し比較処理を行う。具体的には、第2判定部101は、例えば、タイムカウンタIAの更新毎に繰り返し比較処理を行えばよい。図7は、第2判定部101の構成例を示している。なお、図7は、割り込みxの無効化が行われる場合について示している。
減算回路1010は、割り込みxの最大割り込み有効時刻T(IC2−x)から割り込みxの実行時間T(ID1−x)を減算する。
比較回路1012は、タイムカウンタIAに保持された現在時刻T(IA)と、減算回路1010の演算結果を比較する。
減算回路1011は、割り込みxの無効化に伴って、全割り込み予想実行時間T(IB)の更新を行う。具体的には、減算回路1011は、無効化された割り込みxの割り込み実行時間T(ID1−m)を全割り込み予想実行時間T(IB)から減算し、得られた結果によって全割り込み予想実行時間レジスタIBを上書きする。
図8は、割り込み発生時に第1判定部100によって行われる判定動作の具体例を示すフローチャートである。図8の処理は、割り込みmの発生に応じて開始される(ステップS10)。ステップS11では、第1判定部100は、全割り込み予想完了時刻T(IB)を更新する。ステップS12では、第1判定部100は、発生した割り込みmが間引き処理(無効化処理)の対象となる割り込みであるかを判定する。この判定は、設定レジスタIDに含まれる割り込み動作設定レジスタID0−mに保持された設定値を用いて行えばよい。ステップS12において間引き処理の対象でないと判定された場合(S12でNO)、第1判定部100の処理は終了し、通常の割り込み処理が行われる(ステップS13)。ステップS12において間引き処理の対象と判定された場合(S12でYES)、ステップS14以降の処理が行われる。
ステップS14では、第1判定部100は、発生状況レジスタICに保持された割り込みmに関する値、具体的には処理基準時刻T(IC1−m)及び最大割り込み有効時刻T(IC2−m)、を更新する。
ステップS15では、第1判定部100は、割り込みmに関する割り込み処理(リアルタイム処理)が所定の有効期間内に完了できるか否かを判定する。具体的には、第1判定部100は、処理基準時刻T(IC1−m)に全割り込み予想実行時間T(IB)を加算した値(つまり、全割り込み予想完了時刻)が、最大割り込み有効時刻T(IC2−m)を超えるか否かを判定すればよい。全割り込み予想完了時刻が最大割り込み有効時刻T(IC2−m)未満である場合(ステップS15でNO)、割り込みmは無効化されずに第2判定部101による常時監視の対象となる(ステップS16)。一方、全割り込み予想完了時刻が最大割り込み有効時刻T(IC2−m)以上である場合(ステップS15でYES)、割り込みmは無効化される(ステップS17)。
ステップS17では、第1判定部100は、発生状況レジスタICに保持された割り込みmに関する値を初期化する。図8の例では、初期値をゼロとしている。また、第1判定部100は、全割り込み予想実行時間T(IB)を更新する。具体的には、全割り込み予想実行時間T(IB)から無効化された割り込みmに対応する処理の実行時間T(ID1−m)を差し引けばよい。
図9は、実行完了待ちにある割り込みに関して第2判定部101によって繰り返し行われる判定動作の具体例を示すフローチャートである。ステップS21では、実行完了待ちの各割り込みについて、現在時刻T(IA)に割り込み実行時間T(ID1−m)を加算して得られる時刻と、最大割り込み有効時刻T(IC2−x)とを比較する。現在時刻T(IA)に割り込み実行時間T(ID1−m)を加算して得られる時刻が、最大割り込み有効時刻T(IC2−x)に到達していない場合(S21でNO)、ステップS21の判定を繰り返し行う。一方、現在時刻T(IA)が、最大割り込み有効時刻T(IC2−x)から割り込み実行時間T(ID1−m)を減じて得られる時刻を経過している場合(S21でYES)、第2判定部101は、該当の割り込みxを無効化する(ステップS22)。
ステップS22では、第2判定部101は、発生状況レジスタICに保持された割り込みxに関する値を初期化する。図9の例では、初期値をゼロとしている。また、第2判定部101は、全割り込み予想実行時間T(IB)を更新する。具体的には、全割り込み予想実行時間T(IB)から無効化された割り込みxに対応する処理の実行時間T(ID1−x)を差し引けばよい。
上述したように、本実施の形態で説明した割り込みコントローラ10は、割り込みmに基づくリアルタイム処理の実行時間T(ID1−m)と、過去の割り込み要求に基づいて既に実行完了待ちにある1又は複数の他の処理の実行時間とに基づいて得られる全割り込み予想実行時間T(IB)を指標として、割り込みmに基づくリアルタイム処理を有効期間内に実行完了できるかを判定する。従って、割り込みコントローラ10によれば、相対的に優先度が低いリアルタイム処理(例えば、モーター回転子の位置検出に必要なA/D変換値の取得)とその他の処理(例えば、システム制御回路2からの割り込み処理)とをマルチプログラミング環境で並列実行するCPU11の割り込み制御において、所定の期間内に実行可能であるにも関わらずリアルタイム処理が無駄に抑止されることを防止できる。
<発明の実施の形態2>
上述した実施の形態1では、判定部100及び101を加算回路及び比較回路等のハードウェアを用いて構成する例、つまり判定部100及び101をASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)等のハードウェアを用いて製造する場合に好適な例を示した。しかしながら、判定部100及び101は、ソフトウェア、すなわちプロセッサ及びコンピュータプログラム(判定プログラム)によって実現してもよい。この場合、以下に示す具体例のように、リアルタイム処理の無効化判定に際して、判定部100及び101の機能を実現するための判定プログラムの実行時間を考慮するとよい。ソフトウェアを用いて無効化判定を行う場合、ハードウェアを用いる場合に比べて判定に要する時間が大きくなる傾向があるためである。判定プログラムの実行に要する時間を考慮することによって、リアルタイム処理の無効化判定をより正確に行うことができる。
図10は、割り込みコントローラ10の他の構成例を示すブロック図である。図10の構成例は、図2の構成例に含まれる判定部100及び101に代えてプロセッサ200、並びにメモリ201に保存された第1判定プログラム202及び第2判定プログラム203を含む。プロセッサ200が第1判定プログラム202を実行することによって、上述した第1判定部100として動作する。また、プロセッサ200が第2判定プログラム203を実行することによって、上述した第2判定部101として動作する。
また、図10の構成例は、判定時間レジスタS1及びS2を含む。判定時間レジスタS1は、予め計測された第1判定プログラム202の実行時間の情報を保持する。また、判定時間レジスタS2は、予め計測された第2判定プログラム203の実行時間の情報を保持する。なお、より正確な判定のために、判定時間レジスタS1の値は、第1判定プログラム202の全体の実行時間ではなく、割り込みが発生した時点から第1判定プログラムが起動され、発生状況レジスタの更新(特にタイムカウンタIAから取得した現在時刻T(IA)による処理基準時刻T(IC1−m)の更新)が行われるまでの時間としてもよい。判定時間レジスタS2の値は、第2判定プログラム203の実行によってタイムカウンタIAから現在時刻T(IA)の取得が行われるタイミングから第2判定プログラム203が終了するまでの時間としてもよい。また、判定時間レジスタS2の値は、第2判定プログラム203の実行によってタイムカウンタIAから現在時刻T(IA)の取得が行われるタイミングから、レジスタの値を用いて無効化判定が行われるタイミングまでの平均的な時間としてもよい。
図10に示したメモリ201、レジスタS1、S2、IA、IB,IC、IDは、割り込みコントローラ10内に配置する必要は無く、例えばRAM13の一部をこれらのメモリ及びレジスタとして用いてもよい。また、メモリ201、判定時間レジスタS1及びS2、並びに設定レジスタIDは、記録内容の変更を行わなくてもよいため、ROM12の一部をこれらのメモリ及びレジスタとして用いてもよい。
図11は、割り込み発生時に第1判定プログラム202の実行によって行われる判定動作の具体例を示すフローチャートである。図11のステップS35を除く他のステップS10〜S14及びS16〜17は、図8のフローチャートの対応するステップと同様である。
ステップS35では、プロセッサ200は、割り込みmに関する割り込み処理(リアルタイム処理)が所定の有効期間内に完了できるかを判定する。具体的には、プロセッサ200は、全割り込み予想完了時刻(T(IC1−m)+T(IB))に判定時間T(S1)を加えた値が、最大割り込み有効時刻T(IC2−m)を超えるか否かを判定すればよい。
図12は、実行完了待ちにある割り込みに関して第2判定プログラム203の実行によって繰り返し行われる判定動作の具体例を示すフローチャートである。ステップS41では、実行完了待ちの各割り込みについて、現在時刻T(IA)に割り込み実行時間T(ID1−m)及び判定時間T(S2)を加算して得られる時刻と、最大割り込み有効時刻T(IC2−x)とを比較する。図12のステップS22は、図9のフローチャートの対応するステップと同様である。
さらに、本発明は上述した実施の形態のみに限定されるものではなく、既に述べた本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。
1 モーター制御装置
2 システム制御回路
3 ドライバ回路
4 DCモーター
10 割り込みコントローラ
11 CPU(Central Processing Unit)
12 ROM(Read Only Memory)
13 RAM(Random Access Memory)
14 A/Dコンバータ(ADC)
15 通信回路
16、17 周辺回路
18 出力制御回路
100 第1判定部
102 第2判定部
103 信号生成部
200 プロセッサ
201 メモリ
202 第1判定プログラム
203 第2判定プログラム
1000〜1002 加算回路
1003 比較回路
1010、1011 減算回路
1012 比較回路
IA タイムカウンタ
IB 全割り込み予想実行時間レジスタ
IC 発生状況レジスタ
ID 設定レジスタ
S1 判定時間レジスタ
S2 判定時間レジスタ

Claims (10)

  1. 外部からの割り込み要求に基づいて第1のプロセッサに割り込み信号を供給する割り込み制御装置であって、
    所定の有効期間内に実行を完了する必要があるリアルタイム処理に関連付けられた第1の割り込み要求が発生した場合に、過去の割り込み要求に基づいて既に実行完了待ちにある1又は複数の他の処理の前記第1のプロセッサによる実行に要する第1の実行予想時間と、前記リアルタイム処理の前記第1のプロセッサによる実行に要する第2の実行予想時間とに基づいて、前記第1のプロセッサが前記リアルタイム処理を前記有効期間内に実行完了できるかを判定する第1の判定部と、
    前記有効期間内に前記リアルタイム処理を完了できると判定された場合に前記リアルタイム処理を起動するための第1の割り込み信号を生成し、前記有効期間内に前記リアルタイム処理を完了できないと判定された場合に前記第1の割り込み信号の生成を抑止する信号生成部と、
    を備える、割り込み制御装置。
  2. 前記第1の判定部が前記有効期間内に前記リアルタイム処理を完了できると判定した後の時間経過に基づいて、前記リアルタイム処理を前記有効期間内に実行完了できるかを再判定する第2の判定部をさらに備え、
    前記信号生成部は、前記有効期間内に前記リアルタイム処理を完了できないと前記第2の判定部によって判定された場合に、前記第1の割り込み信号の生成を抑止する、請求項1に記載の割り込み制御装置。
  3. 前記第1の比較部は、
    現在時刻を示すタイムカウンタ値と前記有効期間の設定値とを加算することによって、前記第1の割り込み要求に基づく前記リアルタイム処理を完了すべき有効時刻を算出する第1の加算回路と、
    前記第1の実行予想時間に基づいて算出された第1の実行完了予想時刻と前記第2の実行予想時間の設定値とを加算することによって、前記他の処理及び前記リアルタイム処理の実行完了の予想時刻を表わす第2の実行完了予想時刻を算出する第2の加算回路と、
    前記有効時刻及び前記第2の実行完了予想時刻を比較することによって、前記リアルタイム処理を前記有効期間内に実行完了できるかを判定する第1の比較回路と、
    を備える、請求項1〜2のいずれか1項に記載の割り込み制御装置。
  4. 前記第2の比較部は、
    前記有効時刻から前記第2の実行予想時間の設定値を減算することによって、前記有効時刻の修正値を算出する減算回路と、
    現在時刻を示すタイムカウンタ値と前記修正値を比較することによって、前記リアルタイム処理を前記有効期間内に実行完了できるかを判定する第2の比較回路と、
    を備える、請求項2に従属する請求項3に記載の割り込み制御装置。
  5. 前記第1の比較部は、第1の判定プログラムを実行することによって、前記リアルタイム処理を前記有効期間内に実行完了できるかを判定する前記第2のプロセッサを備え、
    前記第2のプロセッサは、前記第1及び第2の実行予想時間、並びに前記第1の判定プログラムの実行時間に基づいて、前記第1のプロセッサが前記リアルタイム処理を前記有効期間内に実行完了できるかを判定する、請求項1又は2に記載の割り込み制御装置。
  6. 前記第2のプロセッサは、第2の判定プログラムを実行することによって、前記第2の判定部として動作するよう構成され、
    前記第2のプロセッサは、現在時刻、前記第2の実行予想時間、前記有効期間、及び前記第2の判定プログラムの実行時間に基づいて、前記第1のプロセッサが前記リアルタイム処理を前記有効期間内に実行完了できるかを判定する、請求項2に従属する請求項5に記載の割り込み制御装置。
  7. 前記第1のプロセッサは、DCモーターの制御を行うプロセッサであって、
    前記リアルタイム処理は、前記DCモーターの回転子の位置を示すA/D変換値を取得する処理を含む、請求項1〜6のいずれか1項に記載の割り込み制御装置。
  8. 外部からの割り込み要求に基づいて第1のプロセッサに割り込み信号を供給するか否かを制御する割り込み制御方法であって、
    所定の有効期間内に実行を完了する必要があるリアルタイム処理に関連付けられた第1の割り込み要求が発生した場合に、過去の割り込み要求に基づいて既に実行完了待ちにある1又は複数の他の処理の前記第1のプロセッサによる実行に要する第1の実行予想時間と、前記リアルタイム処理の前記第1のプロセッサによる実行に要する第2の実行予想時間とに基づいて、前記第1のプロセッサが前記リアルタイム処理を前記有効期間内に実行完了できるかを判定し、
    前記有効期間内に前記リアルタイム処理を完了できると判定された場合に前記リアルタイム処理を起動するための第1の割り込み信号を生成し、前記有効期間内に前記リアルタイム処理を完了できないと判定された場合に前記第1の割り込み信号の生成を抑止する、
    割り込み制御方法。
  9. 前記第1の判定部が前記有効期間内に前記リアルタイム処理を完了できると判定した後の時間経過に基づいて、前記リアルタイム処理を前記有効期間内に実行完了できるかを再判定し、
    前記有効期間内に前記リアルタイム処理を完了できないと前記再判定において判定された場合に、前記第1の割り込み信号の生成を抑止する、請求項8に記載の割り込み制御方法。
  10. 前記第1のプロセッサは、DCモーターの制御を行うプロセッサであって、
    前記リアルタイム処理は、前記DCモーターの回転子の位置を示すA/D変換値を取得する処理を含む、請求項8又は9に記載の割り込み制御方法。
JP2010102261A 2010-04-27 2010-04-27 割り込み制御装置、及び割り込み制御方法 Pending JP2011232937A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010102261A JP2011232937A (ja) 2010-04-27 2010-04-27 割り込み制御装置、及び割り込み制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010102261A JP2011232937A (ja) 2010-04-27 2010-04-27 割り込み制御装置、及び割り込み制御方法

Publications (1)

Publication Number Publication Date
JP2011232937A true JP2011232937A (ja) 2011-11-17

Family

ID=45322199

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010102261A Pending JP2011232937A (ja) 2010-04-27 2010-04-27 割り込み制御装置、及び割り込み制御方法

Country Status (1)

Country Link
JP (1) JP2011232937A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021024555A1 (ja) * 2019-08-08 2021-02-11 株式会社日立製作所 制御システム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021024555A1 (ja) * 2019-08-08 2021-02-11 株式会社日立製作所 制御システム
JP2021026652A (ja) * 2019-08-08 2021-02-22 株式会社日立製作所 制御システム
JP7364388B2 (ja) 2019-08-08 2023-10-18 株式会社日立製作所 制御システム

Similar Documents

Publication Publication Date Title
JP6169547B2 (ja) チップ上のマルチコアシステムの全域チップ電力を管理する方法およびその装置
US8117618B2 (en) Forward progress mechanism for a multithreaded processor
JP2010286898A (ja) マルチスレッド実行装置、マルチスレッド実行方法
US20110078702A1 (en) Multiprocessor system
JP2010160715A (ja) 車両用電子制御ユニット
US6748444B1 (en) Transmission system of short time lag
JP6962176B2 (ja) 電力変換装置の制御装置
JP5653332B2 (ja) 周期エラー検出方法および周期エラー検出回路
CN104303150B (zh) 用于管理计算机系统中的任务执行的方法
JP5621613B2 (ja) 情報処理装置、制御方法及びプログラム
JP2011232937A (ja) 割り込み制御装置、及び割り込み制御方法
US7484214B2 (en) Real time control system
WO2013073013A1 (ja) 電力制御装置、電子計算機及び電力制御方法
JP2019133206A (ja) モータ駆動システム、モータ制御システムおよび自走ロボット
US9058207B2 (en) Simulation apparatus, method, and computer-readable recording medium
JP2011108140A (ja) データ処理装置
JP7435182B2 (ja) 電子制御装置
JP2010140239A (ja) 割り込みレイテンシーを短縮する装置及び方法
JP2010072731A (ja) データ処理装置、方法及びプログラム
JP2010176403A (ja) マルチスレッドプロセッサ装置
US9342312B2 (en) Processor with inter-execution unit instruction issue
JP5668505B2 (ja) クロック周波数制御プログラム、クロック周波数制御装置
JP6729430B2 (ja) 電子制御装置
US20110016472A1 (en) Image processing apparatus, image processing method, and program
JP2013084218A (ja) コア監視装置、情報処理装置