(57)【要約】  割り込みハンドラ部（１３０）は、割り込み時刻にタイマー割り込みを発生させるとともに、割り込み準備処理を実行する。待機時間測定部（１４２）は、割り込み準備処理が完了した後、開始要求（２０１）が発生するまでの時間を待機時間として測定する。時刻算出部（４４１）は、待機時間測定部（１４２）により測定された待機時間に基づいて差引時間を算出し、待機時間から差引時間を差し引いた時間と割り込み準備処理の処理時間とを加算した準備時間を算出する。時刻算出部（４４１）は、準備時間を次回の開始要求（２０１）の時刻から早めた時刻を次回の割り込み時刻として時刻記憶部（４４２）に記憶する。
2020026315.tif 000002
【特許請求の範囲】
【請求項１】
定期的に発生する開始要求に応じて、割り込み処理を開始する割り込み制御装置において、
前記割り込み処理の準備のための割り込み準備処理を開始させる割り込み時刻を記憶する時刻記憶部と、
前記割り込み時刻にタイマー割り込みを発生させるとともに、前記割り込み準備処理を実行する割り込みハンドラ部と、
前記割り込み準備処理が完了した後、前記開始要求が発生するまでの時間を待機時間として測定する待機時間測定部と、
前記待機時間測定部により測定された待機時間に基づいて差引時間を算出し、前記待機時間から前記差引時間を差し引いた時間と前記割り込み準備処理の処理時間とを加算した準備時間を算出し、前記準備時間を次回の開始要求の時刻から早めた時刻を次回の割り込み時刻として前記時刻記憶部に記憶する時刻算出部と
を備えた割り込み制御装置。
【請求項２】
前記時刻算出部は、
前記待機時間に割合を表す閾値を乗じた時間を前記差引時間として算出する請求項１に記載の割り込み制御装置。
【請求項３】
前記閾値は、２分の１である請求項２に記載の割り込み制御装置。
【請求項４】
前記待機時間測定部は、
前記割り込み準備処理が完了した後、現在時刻を開始時刻として取得し、前記開始要求が発生した時刻を終了時刻として、前記終了時刻から前記開始時刻までの時間を前記待機時間として測定する請求項１から請求項３のいずれか１項に記載の割り込み制御装置。
【請求項５】
前記割り込み制御装置は、
前記割り込み準備処理が完了した後、前記開始時刻を取得する前に、前記開始要求が発生したかを判定し、前記開始要求が発生していた場合に次回の準備時間を前記準備時間より増加させる違反処理部を備えた請求項４に記載の割り込み制御装置。
【請求項６】
前記割り込み制御装置は、前記割り込み処理を並列処理する２つのプロセッサを備えるマルチコアプロセッサを備え、
前記２つのプロセッサの一方のプロセッサは、前記開始要求を定期的に出力する開始要求部を備え、
前記２つのプロセッサの他方のプロセッサは、
前記時刻記憶部と、前記割り込みハンドラ部と、前記待機時間測定部と、前記時刻算出部とを備えた請求項１から請求項５のいずれか１項に記載の割り込み制御装置。
【請求項７】
定期的に発生する開始要求に応じて、割り込み処理を開始する割り込み制御装置であって、前記割り込み処理の準備のための割り込み準備処理を開始させる割り込み時刻を記憶する時刻記憶部を備えた割り込み制御装置の割り込み制御方法において、
割り込みハンドラ部が、前記割り込み時刻にタイマー割り込みを発生させるとともに、前記割り込み準備処理を実行し、
待機時間測定部が、前記割り込み準備処理が完了した後、前記開始要求が発生するまでの時間を待機時間として測定し、
時刻算出部が、前記待機時間測定部により測定された待機時間に基づいて差引時間を算出し、前記待機時間から前記差引時間を差し引いた時間と前記割り込み準備処理の処理時間とを加算した準備時間を算出し、前記準備時間を次回の開始要求の時刻から早めた時刻を次回の割り込み時刻として前記時刻記憶部に記憶する割り込み制御方法。
【請求項８】
定期的に発生する開始要求に応じて、割り込み処理を開始する割り込み制御装置であって、前記割り込み処理の準備のための割り込み準備処理を開始させる割り込み時刻を記憶する時刻記憶部を備えた割り込み制御装置の割り込み制御プログラムにおいて、
前記割り込み時刻にタイマー割り込みを発生させるとともに、前記割り込み準備処理を実行する割り込みハンドラ処理と、
前記割り込み準備処理が完了した後、前記開始要求が発生するまでの時間を待機時間として測定する待機時間測定処理と、
前記待機時間測定処理により測定された待機時間に基づいて差引時間を算出し、前記待機時間から前記差引時間を差し引いた時間と前記割り込み準備処理の処理時間とを加算した準備時間を算出し、前記準備時間を次回の開始要求の時刻から早めた時刻を次回の割り込み時刻として時刻記憶部に記憶する時刻算出処理と
をコンピュータに実行させる割り込み制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、割り込み制御装置、割り込み制御方法および割り込み制御プログラムに関する。
【背景技術】
【０００２】
機器の制御は、制御対象装置からの情報入力、演算、および制御対象装置への情報出力といった一連の制御処理を周期的に行うことで実現される。そのため、開始要求となる信号を周期的に発生させ、その開始要求のタイミングで制御処理を開始する必要がある。さらに、その開始要求のタイミングから低遅延で制御処理を開始することが求められる。
制御処理を割り込み処理で実装し、開始要求のタイミングに割り込みを発生させることで、実行中のアプリケーションよりも優先して制御処理を開始することができる。しかし、割り込みハンドラの入口で行われるコンテキストの退避といった準備処理が、開始要求のタイミングから制御処理の開始が遅延する原因となる。この準備処理は、割り込みハンドラ入口処理、あるいは割り込み準備処理ともいう。【０００３】
このように、開始要求のタイミングから割り込み準備処理を開始すると、制御処理の開始が遅延する虞がある。そこで、従来は、割り込み準備処理にかかる時間を測定しておき、その時間分、開始要求より早く割り込み準備処理を開始する方法が提案されている。【０００４】
特許文献１では、開始時刻から低遅延で目的の処理を開始するために、開始時刻から、割り込み予約時間分、早い時刻にタイマー割り込みを発生させる技術が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１３−０９７６５９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１では、開始要求の発生までに準備処理を終了させるために、準備処理の処理時間を事前に測定しておく必要がある。また、特許文献１では、準備処理の処理時間にある程度のマージンを固定値で設定しているため、待機時間が発生してしまう。また、特許文献１では、その待機時間を調節する仕組みが無い。【０００７】
本発明は、準備処理の処理時間を事前に測定することなく、できるだけ開始要求の直前に準備処理を終了するように、準備処理を開始する割り込み時刻を調節することを目的とする。
【課題を解決するための手段】
【０００８】
本発明に係る割り込み制御装置は、定期的に発生する開始要求に応じて、割り込み処理を開始する割り込み制御装置において、
前記割り込み処理の準備のための割り込み準備処理を開始させる割り込み時刻を記憶する時刻記憶部と、
前記割り込み時刻にタイマー割り込みを発生させるとともに、前記割り込み準備処理を実行する割り込みハンドラ部と、
前記割り込み準備処理が完了した後、前記開始要求が発生するまでの待機時間を測定する待機時間測定部と、
前記待機時間に基づいて差引時間を算出し、前記待機時間から前記差引時間を差し引いた時間と前記割り込み準備処理の処理時間とを加算した準備時間を算出し、前記準備時間を次回の開始要求の時刻から早めた時刻を次回の割り込み時刻として前記時刻記憶部に記憶する時刻算出部とを備えた。
【発明の効果】
【０００９】
本発明に係る割り込み制御装置によれば、時刻算出部が、待機時間から差引時間を差し引いた時間と割り込み準備処理の処理時間とを加算した準備時間を算出し、前記準備時間を次回の開始要求の時刻から早めた時刻を次回の割り込み時刻とする。本発明に係る割り込み制御装置によれば、待機時間に応じて準備時間が短くなり、割り込み時刻を開始要求の時刻に近づけることができる。よって、本発明に係る割り込み制御装置によれば、開始要求の直近に割り込み準備処理を終了するように割り込み時刻を設定することができる。
【図面の簡単な説明】
【００１０】
【図１】実施の形態１に係る割り込み制御システムおよび割り込み制御装置のハードウェア構成図。
【図２】実施の形態１に係る割り込み制御装置の機能構成図。
【図３】実施の形態１に係る割り込み制御装置の動作を示すフローチャート。
【図４】実施の形態１に係る割り込み管理処理によるタイミングチャート。
【図５】実施の形態１に係る割り込み管理処理の詳細なフローチャート。
【図６】実施の形態１に係るタイミング予測処理の詳細なフローチャート。
【図７】実施の形態１に係る制御処理の詳細なフローチャート。
【図８】実施の形態１に係る割り込み管理処理と比較するタイミングチャートの例。
【図９】実施の形態１に係る割り込み管理処理と比較するタイミングチャートの別例。
【図１０】実施の形態２に係る割り込み制御装置の機能構成図。
【図１１】実施の形態２に係る割り込み管理処理の詳細なフローチャート。
【図１２】実施の形態３に係る割り込み制御システムおよび割り込み制御装置のハードウェア構成図。
【図１３】実施の形態３に係る割り込み制御装置の機能構成図。
【図１４】実施の形態３に係る割り込み制御装置のコア０の動作を示すフローチャート。
【図１５】実施の形態３に係る周期割り込み管理処理の詳細なフローチャート。
【図１６】実施の形態３に係る割り込み制御装置のコア１の動作を示すフローチャート。
【発明を実施するための形態】
【００１１】
以下、本発明の実施の形態について、図を用いて説明する。なお、各図中、同一または相当する部分には、同一符号を付している。実施の形態の説明において、同一または相当する部分については、説明を適宜省略または簡略化する。
【００１２】
実施の形態１．
本実施の形態では、定期的に発生する開始要求に基づいて、割り込み処理を開始する割り込み制御装置１００について説明する。割り込み制御装置１００は、外部から周期的に入力される開始要求に応じて、制御処理を割り込み処理として開始する。特に、本実施の形態では、今回のタイマー割り込み発生時の待機時間の測定値に基づいて、次回の開始要求の事前に発生させるタイマー割り込みの割り込み時刻を予測する態様について説明する。ここで、割り込み時刻を割り込みタイミングともいう。
【００１３】
＊＊＊構成の説明＊＊＊
図１は、本実施の形態に係る割り込み制御システム５００、および割り込み制御装置１００のハードウェア構成図である。また、図２は、本実施の形態に係る割り込み制御装置１００の機能構成図である。
図１および図２を用いて、本実施の形態に係る割り込み制御システム５００および割り込み制御装置１００の構成について説明する。
割り込み制御システム５００は、割り込み制御装置１００と、周期信号装置２００と制御対象装置３００とを備える。割り込み制御装置１００は、周期信号装置２００からの周期信号を開始要求２０１として取得し、この開始要求２０１を契機に制御処理を行い、制御対象装置３００を制御する。周期信号装置２００は、割り込み制御装置１００に対して周期的に開始要求２０１を入力する。また、制御対象装置３００は、割り込み制御装置１００との制御情報の入出力により動作する。
【００１４】
割り込み制御装置１００は、コンピュータである。割り込み制御装置１００は、プロセッサ１を備えるとともに、メモリ２、周期信号インタフェース３、および制御対象インタフェース４といった他のハードウェアを備える。プロセッサ１はシングルコアプロセッサであり、制御処理を行う素子である。メモリ２は制御処理に必要なデータを記憶する素子である。周期信号インタフェース３は外部の周期信号装置２００から開始要求を取得する素子である。制御対象インタフェース４は外部の制御対象装置３００との制御情報の入出力を行う素子である。
【００１５】
以下において、割り込み制御装置１００のハードウェア構成について、詳細に説明する。
割り込み制御装置１００は、他のハードウェアとして、上述したハードウェアに加え、補助記憶装置、入力インタフェース、出力インタフェース、通信装置といったハードウェアを備えてもよい。プロセッサ１は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
【００１６】
割り込み制御装置１００は、機能要素として、ＯＳ実行部１１０と、アプリケーション処理部１２０と、割り込みハンドラ部１３０と、割り込み処理部１４０を備える。割り込み処理部１４０の詳細な機能要素については後述する。
割り込みハンドラ部１３０と割り込み処理部１４０の機能は、主に、ソフトウェアにより実現される。なお、割り込み処理部１４０のうち、後述する時刻記憶部４４２は、メモリ２に備えられる。また、制御情報入力部４５１および結果出力部４５３は、制御対象インタフェース４に備えられていてもよい。
【００１７】
プロセッサ１は、割り込み制御プログラムを実行する装置である。割り込み制御プログラムは、割り込みハンドラ部１３０と割り込み処理部１４０の機能を実現するプログラムである。
プロセッサ１は、演算処理を行うＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）である。プロセッサ１の具体例は、ＣＰＵ、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）である。
【００１８】
メモリ２は、データを一時的に記憶する記憶装置である。メモリ２の具体例は、ＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、あるいはＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）である。
補助記憶装置は、データを保管する記憶装置である。補助記憶装置の具体例は、ＨＤＤである。また、補助記憶装置は、ＳＤ（登録商標）メモリカード、ＣＦ、ＮＡＮＤフラッシュ、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ（登録商標）ディスク、ＤＶＤといった可搬記憶媒体であってもよい。なお、ＨＤＤは、Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅの略語である。ＳＤ（登録商標）は、Ｓｅｃｕｒｅ  Ｄｉｇｉｔａｌの略語である。ＣＦは、ＣｏｍｐａｃｔＦｌａｓｈ（登録商標）の略語である。ＤＶＤは、Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋの略語である。
【００１９】
入力インタフェースは、マウス、キーボード、あるいはタッチパネルといった入力装置と接続されるポートである。入力インタフェースは、具体的には、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）端子である。なお、入力インタフェースは、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）と接続されるポートであってもよい。
出力インタフェースは、ディスプレイといった出力機器のケーブルが接続されるポートである。出力インタフェースは、具体的には、ＵＳＢ端子またはＨＤＭＩ（登録商標）（Ｈｉｇｈ  Ｄｅｆｉｎｉｔｉｏｎ  Ｍｕｌｔｉｍｅｄｉａ  Ｉｎｔｅｒｆａｃｅ）端子である。ディスプレイは、具体的には、ＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）である。
【００２０】
通信装置は、レシーバとトランスミッタを有する。通信装置は、ＬＡＮ、インターネット、あるいは電話回線といった通信網に接続している。通信装置は、具体的には、通信チップまたはＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）である。
【００２１】
割り込み制御プログラムは、プロセッサ１に読み込まれ、プロセッサ１によって実行される。メモリには、割り込み制御プログラムだけでなく、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）も記憶されている。プロセッサ１は、ＯＳを実行しながら、割り込み制御プログラムを実行する。割り込み制御プログラムおよびＯＳは、補助記憶装置に記憶されていてもよい。補助記憶装置に記憶されている割り込み制御プログラムおよびＯＳは、メモリ２にロードされ、プロセッサ１によって実行される。なお、割り込み制御プログラムの一部または全部がＯＳに組み込まれていてもよい。
【００２２】
割り込み制御装置１００は、プロセッサ１を代替する複数のプロセッサを備えていてもよい。これら複数のプロセッサは、割り込み制御プログラムの実行を分担する。それぞれのプロセッサは、プロセッサ１と同じように、割り込み制御プログラムを実行する装置である。
【００２３】
割り込み制御プログラムにより利用、処理または出力されるデータ、情報、信号値および変数値は、メモリ２、補助記憶装置、または、プロセッサ１内のレジスタあるいはキャッシュメモリに記憶される。
【００２４】
割り込み制御装置１００の各部の「部」を「処理」、「手順」あるいは「工程」に読み替えてもよい。割り込み制御装置１００の各部とは、割り込みハンドラ部１３０に加え、後述する割り込み管理部１４１、待機時間測定部１４２、開始要求待機部１４３、タイミング予測部１４４の時刻算出部４４１、および制御処理部１４５の制御処理演算部４５２である。すなわち、割り込み制御装置１００の各部とは、割り込みハンドラ部１３０、割り込み管理部１４１、待機時間測定部１４２、開始要求待機部１４３、時刻算出部４４１、および制御処理演算部４５２である。
また、割り込みハンドラ処理、割り込み管理処理、待機時間測定処理、開始要求待機処理、タイミング予測処理、制御処理、時刻算出処理、および制御処理演算処理の「処理」を「プログラム」、「プログラムプロダクト」または「プログラムを記録したコンピュータ読取可能な記憶媒体」に読み替えてもよい。
割り込み制御プログラムは、上記の各部の「部」を「処理」、「手順」あるいは「工程」に読み替えた各処理、各手順あるいは各工程を、コンピュータに実行させる。また、割り込み制御方法は、割り込み制御装置１００が割り込み制御プログラムを実行することにより行われる方法である。
割り込み制御プログラムは、コンピュータ読取可能な記録媒体に格納されて提供されてもよい。また、割り込み制御プログラムは、プログラムプロダクトとして提供されてもよい。
【００２５】
＊＊＊機能の概要説明＊＊＊
割り込み制御装置１００は、ＯＳ実行部１１０と、アプリケーション処理部１２０と、割り込みハンドラ部１３０と、割り込み処理部１４０を備える。
割り込みハンドラ部１３０は、割り込み時刻にタイマー割り込みを発生させるとともに、割り込み準備処理を実行する。具体的には、割り込みハンドラ部１３０は、時刻記憶部４４２に記憶された割り込み時刻にタイマー割り込みを発生させる。割り込みハンドラ部１３０は、タイマー割り込みを発生させ、アプリケーション処理部１２０により行われるアプリケーションの実行を中断させ、割り込み準備処理を実行し、割り込み処理部１４０の割り込み管理部１４１の機能を実行させる。
【００２６】
割り込み処理部１４０は、割り込み管理部１４１と、待機時間測定部１４２と、開始要求待機部１４３と、タイミング予測部１４４と、制御処理部１４５を備える。割り込み管理部１４１は、待機時間測定部１４２と、タイミング予測部１４４と、制御処理部１４５の機能を呼び出す。
待機時間測定部１４２は、割り込み準備処理が完了した後、開始要求２０１が発生するまでの時間を待機時間として測定する。具体的には、待機時間測定部１４２は、割り込み準備処理が完了した後、現在時刻を開始時刻として取得し、開始要求２０１が発生した時刻を終了時刻とする。そして、待機時間測定部１４２は、開始時刻から終了時刻までの時間を待機時間として測定する。
開始要求待機部１４３は、開始要求２０１である周期信号を待機し、開始要求２０１の発生を待機時間測定部１４２に伝える。
【００２７】
タイミング予測部１４４は、時刻算出部４４１と時刻記憶部４４２とを備える。
時刻算出部４４１は、待機時間測定部１４２により測定された待機時間に基づいて差引時間を算出し、待機時間から差引時間を差し引いた時間と割り込み準備処理の処理時間とを加算した準備時間を算出する。そして、時刻算出部４４１は、次回の開始要求２０１の時刻から準備時間だけ早い時刻、すなわち準備時間を次回の開始要求の時刻から早めた時刻を次回の割り込み時刻として時刻記憶部４４２に記憶する。時刻算出部４４１は、待機時間に割合を表す閾値を乗じた時間を差引時間として算出する。閾値は、メモリ２に記憶される。閾値は、具体的には、２分の１、３分の１、あるいは５分の３のように予め定めておく。
時刻記憶部４４２は、割り込み処理の準備のための割り込み準備処理を開始させる割り込み時刻を記憶する。時刻記憶部４４２は、割り込みハンドラ部１３０が次にタイマー割り込みを発生させるタイミングを割り込み時刻として設定する。
【００２８】
制御処理部１４５は、制御情報入力部４５１と、制御処理演算部４５２と、演算結果出力部４５３とを備える。制御情報入力部４５１は、制御対象装置３００から制御対象情報を取得する。制御処理演算部４５２は、制御対象情報をもとに演算を行う。演算結果出力部４５３は、演算結果を制御対象装置３００に出力する。
【００２９】
＊＊＊動作の説明＊＊＊
図３は、本実施の形態に係る割り込み制御装置１００の動作を示すフローチャートである。
ステップＳ１において、ＯＳ実行部１１０によりＯＳが起動される。
ステップＳ２において、アプリケーション処理部１２０によりアプリケーションプログラムが実行される。
ステップＳ３において、割り込みハンドラ部１３０は、時刻記憶部４４２に設定されている割り込み時刻にタイマー割り込みを発生させ、割り込み準備処理を実行する。
ステップＳ４において、割り込み処理部１４０は、割り込み管理処理を実行する。
ステップＳ５において、割り込みハンドラ部１３０が割り込みハンドラ出口処理を実行する。
その後、アプリケーション処理部１２０によるアプリケーションプログラムの実行、すなわちステップＳ２に戻る。
【００３０】
図４は、本実施の形態に係る割り込み処理のタイミングチャートである。図４では、（Ａ１）の割り込みハンドラ出口処理が完了した後、（Ａ２）のアプリケーション処理が実行される。その後、（Ａ３）の割り込み準備処理が実行された状態を示している。
【００３１】
図５は、本実施の形態に係るステップＳ４の割り込み管理処理の詳細なフローチャートである。
割り込み管理処理では、割り込み管理部１４１から、割り込み管理処理として実行する各機能構成部が呼び出される。
ステップＳ４１において、待機時間測定部１４２は、開始時刻として現在時刻を取得する。図４の例では、開始時刻ｔ１が取得される。
ステップＳ４２において、開始要求待機部１４３は、周期信号装置２００からの開始要求２０１があるかチェックする待機処理を実行する。開始要求２０１があれば、ステップＳ４３に進む。開始要求２０１がなければ、開始要求２０１があるまでステップＳ４２を繰り返す。
ステップＳ４３において、待機時間測定部１４２は、終了時刻として現在時刻を取得する。図４の例では、終了時刻ｔ２が取得される。待機時間測定部１４２は、開始時刻ｔ１と終了時刻ｔ２の差分から待機時間Ｔｔを算出する。
ステップＳ４４において、タイミング予測部１４４は、タイマー割り込みのタイミングである割り込み時刻ｔｗを予測するタイミング予測処理を実行する。
ステップＳ４５において、制御処理部１４５は、割り込み処理である（Ａ４）の制御処理を実行する。
【００３２】
図６は、本実施の形態に係るステップＳ４４のタイミング予測処理の詳細なフローチャートである。
ステップＳ４４１において、時刻算出部４４１は、待機時間測定部１４２により測定された待機時間Ｔｔに基づいて差引時間Ｔｓを算出する。具体的には、時刻算出部４４１は、待機時間Ｔｔに割合を表す閾値を乗じた時間を差引時間Ｔｓとして算出する。たとえば、時刻算出部４４１は、待機時間Ｔｔに２分の１を乗じた時間、すなわち待機時間Ｔｔの半分の時間を差引時間Ｔｓとして算出する。なお、時刻算出部４４１は、待機時間測定部１４２から開始時刻ｔ１と終了時刻ｔ２のみを取得し、時刻算出部４４１が開始時刻ｔ１と終了時刻ｔ２の差分から待機時間Ｔｔを算出してもよい。
ステップＳ４４２において、時刻算出部４４１は、待機時間Ｔｔから差引時間Ｔｓを差し引いた時間と、割り込み準備処理の処理時間Ｔｅとを加算した準備時間Ｔｊを算出する。なお、準備時間Ｔｊに予め開始時刻ｔ１を取得する処理時間を含めてもよい。
ステップＳ４４３において、時刻算出部４４１は、次回の開始要求の時刻ｔｎから準備時間Ｔｊ分、早い時刻ｔｗを次回の割り込み時刻とする。言い換えると、時刻算出部４４１は、準備時間Ｔｊを次回の開始要求の時刻ｔｎから早めた時刻を次回の割り込み時刻ｔｗとする。時刻算出部４４１は、次回のタイマー割り込みの割り込みタイミングとして割り込み時刻ｔｗを時刻記憶部４４２に記憶する。
【００３３】
図７は、本実施の形態に係るステップＳ４５の制御処理の詳細なフローチャートである。
ステップＳ４５１において、制御情報入力部４５１は、制御対象装置３００から制御情報を取得する。
ステップＳ４５２において、制御処理演算部４５２は、制御情報を用いて制御処理の演算を実行する。
ステップＳ４５３において、演算結果出力部４５３は、制御対象装置３００に演算結果を出力する。
【００３４】
＊＊＊本実施の形態の効果の説明＊＊＊
図８は、本実施の形態に係る割り込み処理と比較するためのタイミングチャートの例である。図８は、開始要求と同時にタイマー割り込みを発生させて制御処理を開始する場合のタイミングチャートを示している。図８では、（Ｂ１）の割り込みハンドラ出口処理が完了した後、（Ｂ２）のアプリケーション処理が実行される。その後、（Ｂ３）の割り込み準備処理が実行され、（Ｂ４）の制御処理が開始される。よって、図８のタイミングチャートでは、割り込み準備処理の処理時間に依存して制御処理の開始タイミングに遅れが発生する。
【００３５】
図９は、本実施の形態に係る割り込み処理と比較するためのタイミングチャートの別例である。図９では、タイマー割り込みのタイミングを予測し、開始要求より早い時刻にタイマー割り込みを発生させる手法を示している。図９では、（Ｃ１）が割り込みハンドラ出口処理であり、（Ｃ２）がアプリケーション処理である。図９の手法では、割り込み準備処理の処理時間が事前に測定される。そして、その測定時間に待機時間αを加えた時間分、開始要求より早くタイマー割り込みを発生させる。すなわち、図９の手法では、（Ｃ３）の割り込み準備処理の実行時間に待機時間αを加えた時間だけ、開始要求より早くタイマー割り込みを発生させる。図９では、タイマー割り込みが発生すると、（Ｃ３）の割り込み準備処理が実行され、待機時間αを待機した後に、（Ｃ４）の制御処理が実行される。しかしながら、割り込み準備処理の処理時間の変更に対応するために、待機時間αとしてある程度の期間を確保しなくてはならない。
【００３６】
図４の本実施の形態に係る割り込み処理によるタイミングチャートである。実施の形態に係る割り込み処理では、次周期の割り込み時刻を設定するための準備時間Ｔｊは、前回の準備時間Ｔｊ’から待機時間Ｔｔの半分の値を差し引いた時間である。よって、周期ごとに待機時間Ｔｔを半減させていくことになり、準備時間Ｔｊも周期ごとに短くすることができる。
【００３７】
以上のように、本実施の形態では、待機時間測定部とタイミング予測部を備えることにより、割り込み準備処理の実行時間に変更があった場合でも再測定をする必要がない。さらに、図９の比較例では、割り込み準備処理の処理時間に待機時間αを加えて、タイマー割り込みの割り込み時刻を設定する必要があった。しかし、本実施の形態では、開始要求の直前に待機状態に入るようにタイマー割り込みの割り込み時刻を設定することが可能である。
【００３８】
また、本実施の形態に係る割り込み制御装置によれば、事前に測定した環境と制御処理を実行する環境での実行時間の差異による影響を受けず、開始要求のできる限り直前に準備処理を終了するように準備処理を開始するタイミングを設定できる。
【００３９】
＊＊＊他の構成＊＊＊
＜変形例１＞
本実施の形態では、割り込み制御装置１００の外の周期信号装置から、開始要求が割り込み制御装置に入力される。しかし、割り込み制御装置の外から開始要求を入力するのではなく、割り込み制御装置内に周期的な開始要求を発行する仕組みがあってもよい。
【００４０】
＜変形例２＞
本実施の形態では、準備処理として割り込み準備処理を説明した。その他にも、必要な準備処理がメモリからのデータのロードといった処理である場合でも同様の効果が得られる。
【００４１】
＜変形例３＞
本実施の形態のタイミング予測処理では、周期ごとに待機時間を半減させていく処理を行っているが、周期ごとに待機時間が減少するようにすれば、半減でなくてもよい。また、測定した待機時間を前回の割り込みタイミングからそのまま差し引いてもよい。たとえば、閾値を０に設定することで差引時間を０にして、待機時間をそのまま割り込みタイミングから差し引くことができる。この変形例により、次周期に待機時間が無くなることが期待できる。また、過去複数回の待機時間を参照できるように保存し、過去複数回の待機時間を元に次周期の割り込みタイミングを算出するようにしてもよい。また、事前に待機時間の許容時間を定めておき、待機時間がその許容時間に収まっている場合は、タイマー割り込みの設定値を前回の割り込みタイミングと同様の値としてもよい。これにより、待機時間を許容時間内に抑えた上で待機時間測定開始時に既に開始要求が発行される可能性を低下させることができる。
【００４２】
＜変形例４＞
本実施の形態では、割り込み制御装置１００の各部の機能がソフトウェアで実現される。変形例として、割り込み制御装置１００の各部の機能がハードウェアで実現されてもよい。このとき、割り込み制御装置１００は、プロセッサ１に替えて電子回路を備える。
【００４３】
電子回路は、割り込み制御装置１００の各部の機能を実現する専用の電子回路である。
電子回路は、具体的には、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ロジックＩＣ、ＧＡ、ＡＳＩＣ、または、ＦＰＧＡである。ＧＡは、Ｇａｔｅ  Ａｒｒａｙの略語である。ＡＳＩＣは、Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔの略語である。ＦＰＧＡは、Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙの略語である。
割り込み制御装置１００の各部の機能は、１つの電子回路で実現されてもよいし、複数の電子回路に分散して実現されてもよい。
別の変形例として、割り込み制御装置１００の各部の一部の機能が電子回路で実現され、残りの機能がソフトウェアで実現されてもよい。
【００４４】
プロセッサと電子回路の各々は、プロセッシングサーキットリとも呼ばれる。つまり、割り込み制御装置１００において、割り込み制御装置１００の各部の機能は、プロセッシングサーキットリにより実現される。
【００４５】
実施の形態２．
本実施の形態では、主に、実施の形態１と異なる点について説明する。なお、実施の形態１と同様の構成には同一の符号を付し、その説明を省略する場合がある。
【００４６】
実施の形態１では、測定した待機時間から次周期の待機時間が減少するように割り込みタイミングを設定する。このとき、待機時間の測定開始時に既に開始要求が発行されている場合がある。待機時間の測定開始時に既に開始要求が発行されている場合を、違反と呼ぶ。本実施の形態では、割り込み制御装置１００ａが、次周期で違反を発生させないようにする仕組みを備える。
【００４７】
＊＊＊動作の説明＊＊＊
図１０を用いて、実施の形態２に係る割り込み制御装置１００ａの機能構成について説明する。
本実施の形態の割り込み制御装置１００ａは、実施の形態１の割り込み制御装置１００の機能構成に加え、違反処理部１４６を備える。違反処理部１４６は、違反検出機能と、違反時の割り込み時刻算出機能とを有する。違反処理部１４６は、割り込み準備処理が完了した後、開始時刻を取得する前に、開始要求が発生したかを判定する。違反処理部１４６は、開始要求が発生していた場合に次回の準備時間を前回の準備時間より増加させる。違反処理部１４６は、増加させた次回の準備時間を用いて、次回の割り込み時刻を設定する。
【００４８】
図１１は、本実施の形態に係る割り込み管理処理の詳細なフローチャートである。
ステップＳ４６において、違反処理部１４６は、違反を検出したかを判定する。違反処理部１４６は、タイマー割り込み直後に、開始要求があるかをチェックすることで、違反が発生しているかどうかを検出する。違反を検出しない場合は、処理はステップＳ４１に進む。ステップＳ４１からステップＳ４５までの処理は、図５のステップＳ４１からステップＳ４５までの処理と同様である。
一方、違反を検出した場合は、処理はステップＳ４７に進む。
ステップＳ４７およびステップＳ４６において、違反処理部１４６は、前回割り込み時刻ｔｗを設定した際の準備時間Ｔｊを増加させ、増加させた準備時間を用いて次回の割り込み時刻を設定する。そして、違反処理部１４６は、次回の割り込み時刻を時刻記憶部４４２に記憶する。
【００４９】
＊＊＊本実施の形態の効果の説明＊＊＊
本実施の形態に係る割り込み制御装置によれば、違反処理部が、違反を検出すると、前回の準備時間を増加させ、増加させた準備時間でタイマー割り込みを設定する。よって、次周期で違反からの復帰を試みることができる。また、一度違反が発生した場合にそれ以降の周期で違反を繰り返すことなく、違反から復帰するように割り込みタイミングの算出を行うことができる。
【００５０】
実施の形態３．
本実施の形態では、主に、実施の形態１と異なる点について説明する。なお、実施の形態１と同様の構成には同一の符号を付し、その説明を省略する場合がある。
【００５１】
実施の形態１では、プロセッサ１がシングルコアプロセッサであることを前提に説明した。本実施の形態では、マルチコアプロセッサ５がコア０とコア１を備えるマルチプロセッサであり、コア０とコア１で制御処理を並列処理する割り込み制御システム５００ｂおよび割り込み制御装置１００ｂについて説明する。コア０において周期的に制御処理を開始する周期割り込みが発生し、その直後にコア０からコア１に制御処理の開始要求２０１を発行し、並列処理を開始する。
【００５２】
＊＊＊構成の説明＊＊＊
図１２を用いて、本実施の形態に係る割り込み制御システム５００ｂ、および割り込み制御装置１００ｂのハードウェア構成について説明する。
割り込み制御装置１００ｂは、マルチコアプロセッサ５、共有メモリ８、制御対象インタフェース４を備える。マルチコアプロセッサ５には、制御処理を行う素子であるコア０  ６と、割り込みタイミングを予測するコア１  ７を搭載する。共有メモリ８はマルチコア間で制御処理に必要なデータを共有するための素子である。
【００５３】
図１３を用いて、本実施の形態に係る割り込み制御装置１００ｂの機能構成について説明する。
割り込み制御装置１００ｂは、コア０  ６とコア１  ７から構成される。
コア０は、ＯＳ実行部１１０ｘと、アプリケーション処理部１２０ｘと、周期割り込みハンドラ部１３０ｘと、周期割り込み処理部１４０ｘとを備える。周期割り込みハンドラ部１３０ｘは、制御処理の開始のタイミングに周期割り込みを発生させ、周期割り込み管理部１４１ｘを呼び出す。周期割り込みにより制御処理が周期的に実行される。周期割り込み処理部１４０ｘは、周期割り込み管理部１４１ｘと、制御処理部１４５ｘと、開始要求部１４７を備える。周期割り込み管理部１４１ｘは、開始要求部１４７と制御処理部１４５ｘを呼び出す。開始要求部１４７は、コア１に制御処理の開始要求を通知する。制御処理部１４５ｘは、制御情報入力部４５１と、制御処理演算部４５２ｘと、演算結果出力部４５３を備える。制御処理演算部４５２ｘは、コア０に割り当てられた制御処理を実行し、コア１の制御処理演算部４５２ｙとデータを共有しながら制御処理を実行する。
コア１は、ＯＳ実行部１１０ｙと、アプリケーション処理部１２０ｙと、タイマー割り込みハンドラ部１３０ｙと、タイマー割り込み処理部１４０ｙとを備える。タイマー割り込み管理部１４１ｙにおける制御処理部１４５ｙの制御処理演算部４５２ｙは、コア１に割り当てられた制御処理を実行し、コア０の制御処理演算部４５２ｘとデータを共有しながら制御処理を実行する。
【００５４】
＊＊＊動作の説明＊＊＊
図１４は、本実施の形態に係る割り込み制御装置１００ｂのコア０の動作を示すフローチャートである。
ステップＳ１０からステップＳ１１は、図３のステップＳ１からステップＳ２と同様である。
ステップＳ１２において、周期割り込みハンドラ部１３０ｘにより周期割り込みが発生し、周期割り込みハンドラ部１３０ｘは周期割り込みハンドラ入口処理を実行する。
その後、ステップＳ１３において、周期割り込み管理部１４１ｘは、周期割り込み管理処理を実行する。
その後、ステップＳ１４において、周期割り込みハンドラ部１３０ｘにより周期割り込みハンドラ出口処理が実行される。
【００５５】
図１５は、本実施の形態に係る周期割り込み管理処理の詳細なフローチャートである。
周期割り込み管理処理では、周期割り込み管理部１４１ｘから、周期割り込み管理処理として実行する各機能構成部が呼び出される。
ステップＳ１３０において、開始要求部１４７は、コア１に対して開始要求を出す。
ステップＳ１３１において、制御処理部１４５ｘは、制御処理を実行する。
【００５６】
図１６は、本実施の形態に係る割り込み制御装置１００ｂのコア１の動作を示すフローチャートである。
ステップＳ２０からステップＳ２４は、図３のステップＳ１からステップＳ５と同様である。図１６では、割り込み準備処理をタイマー割り込みハンドラ入口処理と記述している。
【００５７】
＊＊＊本実施の形態の効果の説明＊＊＊
本実施の形態に係る割り込み制御装置１００ｂは、割り込み処理を並列処理する２つのプロセッサを備えるマルチコアプロセッサを備える。そして、２つのプロセッサの一方のプロセッサであるコア０は、開始要求を定期的に出力する開始要求部を備える。また、２つのプロセッサの他方のプロセッサであるコア１は、時刻記憶部と、タイマー割り込みの割り込みハンドラ部と、待機時間測定部と、時刻算出部とを備える。
本実施の形態では、マルチコアプロセッサで構成された割り込み制御装置１００ｂにおいても、実施の形態１と同様の効果を得ることができる。すなわち、周期的な開始要求の直前に待機状態に入れるようにタイマー割り込みの割り込み時刻を設定することができる。
【００５８】
＊＊＊他の構成＊＊＊
実施の形態１の変形例と同様に、実施の形態２，３においても変形可能である。
【００５９】
以上の実施の形態１から３では、割り込み制御装置の各部を独立した機能ブロックとして説明した。しかし、割り込み制御装置の構成は、上述した実施の形態のような構成でなくてもよい。割り込み制御装置の機能ブロックは、上述した実施の形態で説明した機能を実現することができれば、どのような構成でもよい。また、割り込み制御装置は、１つの装置でなく、複数の装置から構成されたシステムでもよい。
【００６０】
また、実施の形態１から３のうち、複数の部分を組み合わせて実施しても構わない。あるいは、これらの実施の形態のうち、１つの部分を実施しても構わない。その他、これら実施の形態を、全体としてあるいは部分的に、どのように組み合わせて実施しても構わない。
すなわち、実施の形態１から３では、各実施の形態の自由な組み合わせ、あるいは各実施の形態の任意の構成要素の変形、もしくは各実施の形態において任意の構成要素の省略が可能である。
【００６１】
なお、上述した実施の形態は、本質的に好ましい例示であって、本発明の範囲、本発明の適用物の範囲、および本発明の用途の範囲を制限することを意図するものではない。上述した実施の形態は、必要に応じて種々の変更が可能である。
【符号の説明】
【００６２】
１  プロセッサ、２  メモリ、３  周期信号インタフェース、４  制御対象インタフェース、５  マルチコアプロセッサ、６  コア０、７  コア１、８  共有メモリ、１００，１００ａ，１００ｂ  割り込み制御装置、１１０，１１０ｘ，１１０ｙ  ＯＳ実行部、１２０，１２０ｘ，１２０ｙ  アプリケーション処理部、１３０  割り込みハンドラ部、１３０ｘ  周期割り込みハンドラ部、１３０ｙ  タイマー割り込みハンドラ部、１４０  割り込み処理部、１４０ｘ  周期割り込み処理部、１４０ｙ  タイマー割り込み処理部、１４１  割り込み管理部、１４１ｘ  周期割り込み管理部、１４１ｙ  タイマー割り込み管理部、１４２  待機時間測定部、１４３  開始要求待機部、１４４  タイミング予測部、４４１  時刻算出部、４４２  時刻記憶部、１４５，１４５ｘ，１４５ｙ  制御処理部、４５１  制御情報入力部、４５２，４５２ｘ，４５２ｙ  制御処理演算部、４５３  結果出力部、１４６  違反処理部、１４７  開始要求部、２００  周期信号装置、２０１  開始要求、３００  制御対象装置、５００，５００ｂ  割り込み制御システム、ｔ１  開始時刻、ｔ２  終了時刻。
【図１】
2020026315.tif 000003
【図２】
2020026315.tif 000004
【図３】
2020026315.tif 000005
【図４】
2020026315.tif 000006
【図５】
2020026315.tif 000007
【図６】
2020026315.tif 000008
【図７】
2020026315.tif 000009
【図８】
2020026315.tif 000010
【図９】
2020026315.tif 000011
【図１０】
2020026315.tif 000012
【図１１】
2020026315.tif 000013
【図１２】
2020026315.tif 000014
【図１３】
2020026315.tif 000015
【図１４】
2020026315.tif 000016
【図１５】
2020026315.tif 000017
【図１６】
2020026315.tif 000018
【国際調査報告】
2020026315.tif 000019
2020026315.tif 000020