(57)【要約】【課題】複数のプロセッサを用いる処理において、各プロセッサにかかる負荷が分散できることを目的とする。【解決手段】２つ以上のプロセッサと、前記プロセッサのいずれもがアクセスできる記憶部とを有する演算装置が、前記プロセッサのうち、第１プロセッサによって第１処理を行い、前記プロセッサのうち、前記第１プロセッサとは異なる第２プロセッサによって第２処理を行い、前記第１処理及び前記第２処理とは異なる第３処理に用いるデータを前記記憶部に記憶し、前記演算装置が、前記プロセッサに対して、トリガ信号をそれぞれ送信し、前記トリガ信号が送信されると、前記第１処理が開始されてからの処理時間を計測し、前記第３処理が前記データに基づいて前記第２プロセッサで処理されるように切り替えることで上記課題を解決する。【選択図】図１
2017107294.tif 000002
【特許請求の範囲】
【請求項１】
２つ以上のプロセッサを有する演算装置であって、
前記プロセッサのうち、第１プロセッサによって第１処理を行う第１処理部と、
前記プロセッサのうち、前記第１プロセッサとは異なる第２プロセッサによって第２処理を行う第２処理部と、
前記第１処理及び前記第２処理とは異なる第３処理に用いるデータを記憶し、かつ、前記第１処理部及び前記第２処理部のいずれもがアクセスできる記憶部と、
前記第１処理部及び前記第２処理部に対して、トリガ信号をそれぞれ送信するトリガ信号送信部と、
前記トリガ信号が送信されると、前記第１処理が開始されてからの処理時間を計測する計測部と、
前記第３処理が前記データに基づいて前記第２処理部で処理されるように切り替える切替部と
を含む演算装置。
【請求項２】
前記処理時間は、前記第１処理が開始されてから前記第１処理が終了するまでの時間であり、
前記処理時間が所定の時間を示す閾値より大きい値であると、前記切替部は、前記切り替えを行う請求項１に記載の演算装置。
【請求項３】
前記処理時間が所定の時間を示す閾値に達すると、前記切替部は、前記切り替えを行う請求項１に記載の演算装置。
【請求項４】
前記トリガ信号は、所定時間ごとに送信される請求項２又は３に記載の演算装置。
【請求項５】
前記閾値は、前記所定時間に対して所定の係数を乗じた値である請求項４に記載の演算装置。
【請求項６】
前記プロセッサは、優先度に基づく順序で、各処理を行う請求項１乃至５のいずれか一項に記載の演算装置。
【請求項７】
前記第３処理を前記第２処理部で処理されるように切り替えられた場合、前記第１処理部によって行われる第３処理を停止させる請求項１乃至６のいずれか一項に記載の演算装置。
【請求項８】
前記切替部は、前記第２処理部で行われる処理が前記データに基づいて前記第１処理部で処理されるように切り替える請求項１乃至７のいずれか一項に記載の演算装置。
【請求項９】
２つ以上のプロセッサと、前記プロセッサのいずれもがアクセスできる記憶部とを有する演算装置が行う演算方法であって、
前記演算装置が、前記プロセッサのうち、第１プロセッサによって第１処理を行う第１処理手順と、
前記演算装置が、前記プロセッサのうち、前記第１プロセッサとは異なる第２プロセッサによって第２処理を行う第２処理手順と、
前記演算装置が、前記第１処理及び前記第２処理とは異なる第３処理に用いるデータを前記記憶部に記憶する記憶手順と、
前記演算装置が、前記プロセッサに対して、トリガ信号をそれぞれ送信するトリガ信号送信手順と、
前記演算装置が、前記トリガ信号が送信されると、前記第１処理が開始されてからの処理時間を計測する計測手順と、
前記演算装置が、前記第３処理が前記データに基づいて前記第２プロセッサで処理されるように切り替える切替手順と
を含む演算方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、演算装置及び演算方法に関する。
【背景技術】
【０００２】
従来、２つのＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を利用してデータ処理等を行う方法が知られている。
【０００３】
例えば、２つのＣＰＵを有するＰＬＣ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｃｏｎｔｒｏｌｌｅｒ）において、繰り返し実行されるデータ処理を効率化する方法が知られている。具体的には、第１の制御部と、第２の制御部とを有するデータ処理システムにおいて、まず、第１の制御部が、所定のトリガーイベントを検出すると、第２の制御部に実行させるデータ処理の内容等を第２の制御部に通知する。一方で、第２の制御部は、第１の制御部から通知されるデータ処理を実行し、データ処理の開始状態及び終了状態をトリガーイベントと対応付けて登録する。この登録があると、登録されるイベントと一致するトリガーイベントが検出でき、第１の制御部からの指示がなくとも、状態遷移が行われ、データ処理が効率的に実行できる（例えば、特許文献１）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１１−１７０４７６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記の従来技術においては、例えば、１つのプロセッサに実行させる処理が集中する等の処理における負荷が集中する場合がある。この場合には、あるプロセッサに負荷が偏り、複数のプロセッサ間において、各プロセッサにかかる負荷が分散されない場合が多い。
【０００６】
本発明の実施の形態は、上記の点に鑑みてなされたものであり、本発明の１つの側面は、複数のプロセッサを用いる処理において、各プロセッサにかかる負荷が分散できることを目的とする。
【課題を解決するための手段】
【０００７】
一態様における、２つ以上のプロセッサを有する演算装置は、前記プロセッサのうち、第１プロセッサによって第１処理を行う第１処理部と、前記プロセッサのうち、前記第１プロセッサとは異なる第２プロセッサによって第２処理を行う第２処理部と、前記第１処理及び前記第２処理とは異なる第３処理に用いるデータを記憶し、かつ、前記第１処理部及び前記第２処理部のいずれもがアクセスできる記憶部と、前記第１処理部及び前記第２処理部に対して、トリガ信号をそれぞれ送信するトリガ信号送信部と、前記トリガ信号が送信されると、前記第１処理が開始されてからの処理時間を計測する計測部と、前記第３処理が前記データに基づいて前記第２処理部で処理されるように切り替える切替部とを含む。
【発明の効果】
【０００８】
本発明の実施の形態によれば、複数のプロセッサを用いる処理において、各プロセッサにかかる負荷が分散できる。
【図面の簡単な説明】
【０００９】
【図１】本発明の一実施形態における演算装置のハードウェア構成例を示すブロック図である。
【図２】本発明の一実施形態における演算装置による全体処理の一例を示すフローチャートである。
【図３】本発明の一実施形態における演算装置による全体処理の処理結果例を示すタイミングチャートである。
【図４】本発明の一実施形態における演算装置の機能構成の一例を示す機能ブロック図である。
【発明を実施するための形態】
【００１０】
以下、本発明の実施形態について、添付の図面を参照しながら詳細に説明する。
【００１１】
本発明の一実施形態に係る演算装置は、例えば、２つ以上のプロセッサを有する装置である。以下、本発明の実施形態を図面に基づいて、演算装置が２つのプロセッサを有する例で説明する。
【００１２】
また、演算装置は、例えば、ＵＰＳ（Ｕｎｉｎｔｅｒｒｕｐｔｉｂｌｅ  Ｐｏｗｅｒ  Ｓｕｐｐｌｙ、無停電電源装置）、ＰＣＳ（Ｐｏｗｅｒ  Ｃｏｎｄｉｔｉｏｎｉｎｇ  Ｓｙｓｔｅｍ、パワーコンディショナ）又はＰＬＣ等に用いられる。なお、演算装置は、ネットワーク等を介して接続されてもよい。
【００１３】
１．演算装置のハードウェア構成例
２．演算装置による全体処理例
３．演算装置の機能構成例
＜＜１．演算装置のハードウェア構成例＞＞
図１は、本発明の一実施形態における演算装置のハードウェア構成例を示すブロック図である。演算装置１０は、ＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）等のＰＬＤ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）又はＣＰＵ等のプロセッサを複数有する。以下、図示するように、演算装置１０が、第１プロセッサＨＷ１と、第２プロセッサＨＷ２とを有するハードウェア構成である例で説明する。また、この例では、第１プロセッサＨＷ１及び第２プロセッサＨＷ２には、ＦＰＧＡＨＷ３が接続されるとする。
【００１４】
第１プロセッサＨＷ１及び第２プロセッサＨＷ２は、演算装置１０が行う処理及びにデータ加工を実現するための演算を行う演算装置である。また、第１プロセッサＨＷ１及び第２プロセッサＨＷ２は、演算装置１０が有するハードウェアを制御する制御装置である。具体的には、第１プロセッサＨＷ１及び第２プロセッサＨＷ２は、例えば、ＣＰＵ等である。
【００１５】
また、第１プロセッサＨＷ１及び第２プロセッサＨＷ２によって行われるそれぞれの処理は、機能ごとに分担される。例えば、第１プロセッサＨＷ１は、パワーエレクトロニクス用の処理を行い、一方で、第２プロセッサＨＷ２は、通信用の処理を行う等のように、各プロセッサでそれぞれ行われる処理が分担される。なお、処理は、機能に基づいて分担されるに限られない。
【００１６】
第１プロセッサＨＷ１には、ＲＯＭ（Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）ＨＷ１１及びＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）ＨＷ１２等の記憶装置が接続される。同様に、第２プロセッサＨＷ２には、ＲＯＭＨＷ２１及びＳＲＡＭＨＷ２２等の記憶装置が接続される。なお、記憶装置は、第１プロセッサＨＷ１又は第２プロセッサＨＷ２のいずれか一方に接続される構成でもよい。
【００１７】
ＦＰＧＡＨＷ３は、演算回路ＨＷ３１、レジスタ（ｒｅｇｉｓｔｅｒ）ＨＷ３２及び共有メモリＨＷ３３を有する。
【００１８】
演算回路ＨＷ３１は、各種演算を行う。
【００１９】
レジスタＨＷ３２は、フラグデータ等の各種データを記憶する。
【００２０】
共有メモリＨＷ３３は、各種処理に用いられるデータを記憶する。また、第１プロセッサＨＷ１及び第２プロセッサＨＷ２は、いずれも共有メモリＨＷ３３が記憶するデータを参照することができる。さらに、共有メモリＨＷ３３が記憶するデータは、例えば、インタフェースを介して入力される。なお、インタフェースは、例えば、Ａ／Ｄ（ａｎａｌｏｇ−ｄｉｇｉｔａｌ）変換器等である。また、データは、他の経路で入力されてもよい。
【００２１】
ＦＰＧＡＨＷ３は、所定時間ごと、すなわち、周期的に、トリガ信号を第１プロセッサＨＷ１及び第２プロセッサＨＷ２にそれぞれ送信する。例えば、ＦＰＧＡＨＷ３は、クロック信号ごとに、カウンタ値をカウントアップするカウンタを有する。このカウンタの示すカウンタ値が、所定時間を示す値になるたびに、ＦＰＧＡＨＷ３は、トリガ信号を第１プロセッサＨＷ１及び第２プロセッサＨＷ２にそれぞれ送信する。次に、ＦＰＧＡＨＷ３は、カウンタ値をリセットする。このようにすると、トリガ信号が所定時間ごとに送信される。
【００２２】
なお、記憶装置の種類及び数は、図示する構成に限られない。つまり、ＲＯＭ及びＳＲＡＭは、他の種類の記憶装置であってもよい。また、演算装置は、図示する記憶装置の数と異なる記憶装置を有するハードウェア構成であってもよい。
【００２３】
演算装置１０は、いわゆるマルチプロセッサのハードウェア構成である。
【００２４】
なお、演算装置１０は、図示するハードウェア構成に限られない。例えば、演算装置１０は、更にプロセッサを有し、３つ以上のプロセッサを有するハードウェア構成でもよい。
【００２５】
また、第１プロセッサＨＷ１、第２プロセッサＨＷ２及びＦＰＧＡＨＷ３は、図示する種類に限られない。すなわち、第１プロセッサＨＷ１、第２プロセッサＨＷ２及びＦＰＧＡＨＷ３は、いずれも同一の種類の装置でもよく、それぞれ異なる種類の装置でもよい。例えば、第１プロセッサＨＷ１及び第２プロセッサＨＷ２がＦＰＧＡ等であってもよい。
【００２６】
＜＜２．演算装置による全体処理例＞＞
図２は、本発明の一実施形態における演算装置による全体処理の一例を示すフローチャートである。例えば、第１プロセッサＨＷ１（図１参照）が、図２（Ａ）に示す全体処理を行うとする。一方で、第２プロセッサＨＷ２（図１参照）が、図２（Ｂ）に示す全体処理を行うとする。また、図２（Ａ）及び図２（Ｂ）に示すそれぞれの全体処理は、各プロセッサにトリガ信号がそれぞれ送信されると開始されるとする。なお、図２において、同一の処理は、同一の符号を付し、重複する説明を省略する。
【００２７】
また、各プロセッサは、優先度に基づく順序で、各処理を行う方式であるのが望ましい。すなわち、各プロセッサは、高い優先度の処理から順に処理を行う。なお、優先度は、各処理に対して、あらかじめ設定されるとする。このようにして、優先度に基づく順序で処理が行われると、後から発生する処理であっても、高い優先度に設定されると、高い優先度の処理を早く終了させることができる。
【００２８】
さらに、各プロセッサは、いわゆる割り込み処理が可能であるのが望ましい。すなわち、処理が行われている間に割り込み処理が発生すると、各プロセッサは、処理中の処理を中断し、割り込み処理を先に処理する。次に、割り込み処理が終了すると、各プロセッサは、中断した処理を再開する。このようにして、割り込み処理が可能であると、例えば、高い優先度の処理が割り込まれる場合には、各プロセッサは、処理中の処理を中断し、先に高い優先度の処理を行うことができる。以下、各プロセッサが、優先度に基づく順序で、各処理を行う方式であり、かつ、割り込み処理が可能である例で説明する。
【００２９】
＜＜処理時間の計測開始例（ステップＳ０１）＞＞
ステップＳ０１では、演算装置は、各プロセッサのそれぞれの処理時間の計測を開始する。なお、処理時間は、ステップＳ０１から計測が開始され、後述するステップＳ０６で終了とされるまでの時間とする。
【００３０】
＜＜データの読み出し例（ステップＳ０２）＞＞
ステップＳ０２では、演算装置は、各プロセッサが行うそれぞれ行う処理に用いるデータを読み出す。具体的には、ステップＳ０２では、各プロセッサは、ＦＰＧＡＨＷ３（図１参照）に対して、処理に用いるデータをそれぞれ要求し、ＦＰＧＡＨＷ３が記憶装置から読み出すそれぞれのデータを受け取る。なお、データは、あらかじめ外部装置等から入力されるとする。また、記憶領域は、例えば、外部装置から入力されるデータと、各プロセッサが共有して用いるデータとが記憶される領域をそれぞれ異なる領域とする構成でもよい。この構成では、各プロセッサは、それぞれが行う処理に応じて、各領域から処理に用いるデータをそれぞれ読み出す。
【００３１】
＜＜切り替えを行うか否かの判断例（ステップＳ０３）＞＞
ステップＳ０３では、演算装置は、切り替えを行うか否かを判断する。具体的には、切り替えを行うか否かの判断は、例えば、フラグデータ等に基づいて判断される。フラグデータは、例えば、１ビットデータである。すなわち、フラグが「１」（ＯＮ）であると、演算装置は、切り替えを行うと判断する。一方で、フラグが「０」（ＯＦＦ）であると、演算装置は、切り替えを行わないと判断する。なお、フラグデータは、例えば、以前に図２に示す全体処理が行われた場合には、後述するステップＳ０８等で設定される。
【００３２】
演算装置が切り替えを行うと判断すると（ステップＳ０３でＹＥＳ）、演算装置は、ステップＳ０４に進む。一方で、演算装置が切り替えを行わないと判断すると（ステップＳ０３でＮＯ）、演算装置は、ステップＳ０５に進む。
【００３３】
＜＜処理の実行例（ステップＳ０４）＞＞
ステップＳ０４では、演算装置は、処理を実行する。すなわち、例えば、第１プロセッサＨＷ１（図１参照）が、行う予定の処理であっても、ステップＳ０４では、第２プロセッサＨＷ２（図１参照）が、用いるデータを読み出した上で処理を代わりに実行する。
【００３４】
＜＜制御処理等の実行例（ステップＳ０５）＞＞
ステップＳ０５では、演算装置は、制御処理等を実行する。なお、ステップＳ０５は、第１プロセッサＨＷ１が行うとする。一方で、図示するように、第２プロセッサＨＷ２は、制御処理を行わないとする。このようにすると、第１プロセッサＨＷ１は、第２プロセッサＨＷ２より、行う処理が多い。そのため、第１プロセッサＨＷ１は、第２プロセッサＨＷ２より、処理による負荷が大きくなる場合が多い。この場合、処理時間は、長くなることが多い。
【００３５】
＜＜処理時間の計測終了例（ステップＳ０６）＞＞
ステップＳ０６では、演算装置は、処理時間の計測を終了する。すなわち、ステップＳ０１によって計測が開始された処理時間は、ステップＳ０６によって終了し、確定する。
【００３６】
＜＜処理時間が閾値より大きい値であるか否かの判断例（ステップＳ０７）＞＞
ステップＳ０７では、演算装置は、処理時間が閾値より大きい値であるか否かを判断する。すなわち、ステップＳ０７では、演算装置は、ステップＳ０１及びステップＳ０６によって計測される処理時間があらかじめパラメータ等で設定される閾値より大きい値であるか否かを判断する。処理時間は、負荷が大きい場合には、値が大きくなることが多い。したがって、処理時間が閾値より大きい値であるか否かによって、演算装置は、各プロセッサの負荷が大きい状態であるか否かが判断できる。
【００３７】
閾値は、例えば、許容時間等に基づいて設定される。特に、いわゆるリアルタイム処理等では、所定時間、すなわち、許容時間以内に処理が完了するように、求められることが多い。この場合には、例えば、閾値は、許容時間に所定の係数を乗じた値に設定される。具体的には、所定時間が「１２．５μｓ」であるとし、所定の係数が「０．８」であるとする。この例では、閾値は、「１２．５μｓ×０．８＝１０．０μｓ」と設定される。なお、所定の係数は、あらかじめパラメータ等によって設定される値である。
【００３８】
次に、処理時間が閾値より大きい値であると判断されると（ステップＳ０７でＹＥＳ）、演算装置は、ステップＳ０８に進む。一方で、処理時間が閾値より大きい値でないと判断されると（ステップＳ０７でＮＯ）、演算装置は、全体処理を終了する。なお、全体処理の終了後、更にトリガ信号が送信されると、各プロセッサは、全体処理をステップＳ０１から行う。
【００３９】
＜＜切り替えを行う設定例（ステップＳ０８）＞＞
ステップＳ０８では、演算装置は、切り替えが行われるように設定する。例えば、ステップＳ０３がフラグデータに基づいて行われる場合には、ステップＳ０８では、演算装置は、フラグデータを「１」とする。なお、処理時間が閾値より大きい値でないと判断される場合（ステップＳ０７でＮＯ）には、演算装置は、フラグデータを「０」とする処理を行ってもよい。
【００４０】
例えば、所定時間が「１２．５μｓ」である場合には、演算装置は、行う処理がすべて完了するのに、「１２．５μｓ」以内であることが求められる。一方で、優先度の順に処理が行われるとすると、高い優先度の割り込み処理に長く処理時間がかかる場合に、低い優先度の処理が所定時間以内に完了しない場合がある。そこで、所定時間に所定の係数を乗じた値等を閾値に設定すると、演算装置は、処理時間に対して、各プロセッサがどの程度の負荷がかかっている状態かを判断できる。すなわち、処理時間が閾値より大きい値である場合には、判断対象となるプロセッサは、負荷が大きい状態である。このような状態では、この後に実行される予定の処理等は、他のプロセッサに切り替えて、負荷が小さい状態のプロセッサで実行されるのが望ましい。
【００４１】
このように、負荷による状態に応じて、処理を実行するプロセッサが柔軟に切り替えられると、複数のプロセッサを用いる処理において、各プロセッサにかかる負荷が分散できる。
【００４２】
また、図２（Ａ）及び図２（Ｂ）に示す各全体処理は、それぞれトリガ信号が送信されると、開始される。トリガ信号は、ＦＰＧＡＨＷ３（図１参照）が、カウンタ値等に基づいて生成する信号であるため、同一のタイミングを示す信号である。そのため、トリガ信号によって、演算装置は、各プロセッサを同期させることができる。
【００４３】
さらに、共有メモリＨＷ３３（図１参照）によって記憶されるデータは、第１プロセッサＨＷ１（図１参照）及び第２プロセッサＨＷ２（図１参照）で、共有できる状態であるのが望ましい。すなわち、共有メモリＨＷ３３は、第１プロセッサＨＷ１及び第２プロセッサＨＷ２のいずれからでもアクセスできるのが望ましい。共有メモリＨＷ３３に記憶されるデータは、各処理に用いられるデータである。
【００４４】
各処理を実行するプロセッサが切り替えられると、あらかじめ想定されていたプロセッサ以外のプロセッサが処理を実行することになる。例えば、あらかじめ第１プロセッサＨＷ１に実行させる予定の処理であったとしても、図２に示す全体処理によって、第２プロセッサＨＷ２が実行するように切り替えられる場合がある。この場合には、処理に用いるデータをあらかじめ想定されていたプロセッサ以外のプロセッサが読み出すことになる。そのため、複数のプロセッサのうち、いずれのプロセッサからでもデータが読み出せると、演算装置は、実行させるプロセッサをより柔軟に切り替えることができる。
【００４５】
また、切り替えが行われた場合には、演算装置は、切り替え前のプロセッサが行う処理を停止させるのが望ましい。具体的には、あらかじめ第１プロセッサＨＷ１に実行させる予定の処理が、図２に示す全体処理によって、第２プロセッサＨＷ２が実行するように切り替えられる場合がある。この場合には、第２プロセッサＨＷ２が処理を実行する。一方で、第１プロセッサＨＷ１は、第２プロセッサＨＷ２が処理を実行するように切り替えられたとしても、処理を実行してしまう場合がある。このように、同一の処理が各プロセッサで複数回行われてしまう場合がある。そこで、切り替えが行われた場合には、演算装置は、切り替え前のプロセッサ、すなわち、図２に示すステップＳ０８等の切り替えを行うように設定したプロセッサが行う処理を停止させる。このように処理を停止させると、演算装置は、処理が何度も行われてしまう無駄を少なくすることができる。
【００４６】
さらに、切り替えが行われた場合であっても、各処理は、所定時間以内に完了するように実行されるのが望ましい。すなわち、各処理結果に基づいて記憶装置に記憶されるデータが更新される場合には、更新は、所定時間以内に完了するのが望ましい。
【００４７】
図３は、本発明の一実施形態における演算装置による全体処理の処理結果例を示すタイミングチャートである。例えば、図示するように、トリガ信号ＴＲＧが、所定時間ＣＹＣごとに各プロセッサにそれぞれ送信されるとする。具体的には、トリガ信号ＴＲＧは、図１に示す構成では、ＦＰＧＡＨＷ３（図１参照）で生成される。次に、第１プロセッサＨＷ１及び第２プロセッサＨＷ２には、同一のタイミングで、トリガ信号ＴＲＧがそれぞれ送信される。なお、図３は、トリガ信号ＴＲＧがローアクティブ信号である例を示す。
【００４８】
また、図３は、第１プロセッサＨＷ１（図１参照）によって行われる第１処理Ｐ１の例を示す。同様に、図３は、第２プロセッサＨＷ２（図１参照）によって行われる第２処理Ｐ２の例を示す。なお、図３は、第１処理Ｐ１及び第２処理Ｐ２で行われる各処理が同一である例を示す。
【００４９】
例えば、図示するように、第１処理Ｐ１及び第２処理Ｐ２では、それぞれ第１割込処理ＩＰ１、第２割込処理ＩＰ２及び第３割込処理ＩＰ３が周期的に行われるとする。このような場合には、それぞれの第１割込処理ＩＰ１、第２割込処理ＩＰ２及び第３割込処理ＩＰ３は、所定時間ＣＹＣ以内に完了することが求められる。これに対して、第２割込処理ＩＰ２のように、長い処理時間となる処理等が更に割り込んだりすると、所定時間ＣＹＣ以内にすべての処理が完了できない場合がある。
【００５０】
そこで、図２に示すステップＳ０７のように、処理時間が閾値より大きい値である場合（ステップＳ０７でＹＥＳ）には、演算装置は、切り替えを行う。なお、以下の説明では、切り替えの対象となる処理を第３処理という。すなわち、第３処理は、最初の設定等では、第１処理Ｐ１の次に第１プロセッサＨＷ１によって行われる処理である。これに対して、切り替えが行われると、第３処理は、第２プロセッサＨＷ２によって行われることになる。
【００５１】
このように、負荷状態に応じて、柔軟に処理を行うプロセッサを切り替えると、演算装置は、所定時間ＣＹＣ以内にすべての処理が完了するようにできる。また、負荷状態に応じて切り替えが行われると、負荷が分散するように調整されるため、演算装置は、処理時間を高速にすることができる。
【００５２】
なお、切り替えられる処理は、各処理のうち、一部であってもよい。
【００５３】
また、切り替えは、処理中に行われてもよい。具体的には、第１プロセッサＨＷ１が第１処理Ｐ１を処理している間に、第１処理Ｐ１の開始からの処理時間が閾値になった場合には、処理中に、切り替えが行われてもよい。すなわち、いわゆるウォッチドックタイマ等によって、処理時間が閾値に達したのが検出されると、演算装置は、次に行う処理等を他のプロセッサが行うように切り替える。
【００５４】
なお、切り替えが行われた場合及び処理が終了した場合には、処理時間をカウントするカウンタ等がリセットされてもよい。
【００５５】
＜＜３．演算装置の機能構成例＞＞
図４は、本発明の一実施形態における演算装置の機能構成の一例を示す機能ブロック図である。図示するように、演算装置１０は、第１処理部ＦＮ１と、第２処理部ＦＮ２と、記憶部ＦＮ３と、トリガ信号送信部ＦＮ４と、計測部ＦＮ５と、切替部ＦＮ６とを含む。
【００５６】
また、演算装置１０は、第１処理部ＦＮ１及び第２処理部ＦＮ２によって、第１処理ＰＲ１、第２処理ＰＲ２及び第３処理ＰＲ３を行うとする。なお、第１処理ＰＲ１、第２処理ＰＲ２及び第３処理ＰＲ３は、いずれも第１処理部ＦＮ１及び第２処理部ＦＮ２によって実行可能とする。まず、演算装置１０は、図４（ａ）に示すように、第１処理ＰＲ１及び第３処理ＰＲ３を第１処理部ＦＮ１によって実行するとし、一方で、第２処理ＰＲ２を第２処理部ＦＮ２によって実行すると設定する。
【００５７】
第１処理部ＦＮ１は、第１処理ＰＲ１を行う。例えば、第１処理部ＦＮ１は、第１プロセッサＨＷ１（図１参照）等によって実現される。
【００５８】
第２処理部ＦＮ２は、第２処理ＰＲ２を行う。例えば、第２処理部ＦＮ２は、第２プロセッサＨＷ２（図１参照）等によって実現される。
【００５９】
記憶部ＦＮ３は、第１処理部ＦＮ１による第１処理ＰＲ１及び第２処理部ＦＮ２による第２処理ＰＲ２とは異なる第３処理ＰＲ３等で用いられるデータを記憶する。例えば、記憶部ＦＮ３は、共有メモリＨＷ３３（図１参照）等によって実現される。なお、記憶部ＦＮ３に対して、第１処理部ＦＮ１及び第２処理部ＦＮ２は、いずれもアクセスできるのが望ましい。
【００６０】
トリガ信号送信部ＦＮ４は、第１処理部ＦＮ１及び第２処理部ＦＮ２に対して、トリガ信号ＴＲＧをそれぞれ送信する。例えば、トリガ信号送信部ＦＮ４は、ＦＰＧＡＨＷ３（図１参照）等によって実現される。なお、トリガ信号ＴＲＧは、所定時間ごとに送信されるのが望ましい。
【００６１】
計測部ＦＮ５は、トリガ信号ＴＲＧが送信されると、第１処理部ＦＮ１によって第１処理が開始されてから第１処理が終了するまで又は第１処理が開始されてから現在まで経過した処理時間を計測する。例えば、計測部ＦＮ５は、ＦＰＧＡＨＷ３等によって実現される。
【００６２】
切替部ＦＮ６は、計測部ＦＮ５によって計測される処理時間が閾値より大きい値であると、第１処理部ＦＮ１で行われる第３処理ＰＲ３が、第２処理部ＦＮ２で処理されるように切り替える。例えば、切替部ＦＮ６は、ＦＰＧＡＨＷ３等によって実現される。
【００６３】
演算装置１０は、第１処理部ＦＮ１及び第２処理部ＦＮ２によって、各処理を行う。この処理には、記憶部ＦＮ３に記憶されるデータが用いられる。次に、演算装置１０は、計測部ＦＮ５によって、処理時間を計測する。なお、処理時間は、トリガ信号送信部ＦＮ４によって送信されるトリガ信号ＴＲＧに基づいて、計測が開始され、第１処理部ＦＮ１によって行われる処理が終了すると、計測が完了する。続いて、演算装置１０は、計測された処理時間があらかじめ設定される閾値より大きい値であるか否かを判断する。次に、処理時間が閾値より大きい値である、すなわち、第１処理部ＦＮ１にかかる負荷が大きい場合、演算装置１０は、切替部ＦＮ６によって、第１処理部ＦＮ１で行われる第３処理ＰＲ３を第２処理部ＦＮ２で処理されるように切り替える。また、切り替えは、処理中に閾値に処理時間が達した場合に行われてもよい。
【００６４】
図４（ｂ）は、切替部ＦＮ６によって切り替えられた後の状態の一例を示す機能ブロック図である。図示するように、図４（ａ）では、第１処理ＰＲ１及び第３処理ＰＲ３が第１処理部ＦＮ１によって行われていたのが、第３処理ＰＲ３が中断され、図４（ｂ）では、第３処理ＰＲ３が第２処理部ＦＮ２によって行われるようになる。なお、図では、実線で示す処理が行われる処理である。一方で、破線で示す処理は、行われない設定となっている処理であって、行うことができる処理である。
【００６５】
このようにすると、第１処理部ＦＮ１にかかる負荷が大きい場合、第１処理部で行われる第３処理を第２処理部ＦＮ２が行うようにできる。すなわち、負荷が大きい処理部に更に処理が追加され、演算装置１０は、１つの処理部にかかる負荷がより大きくなるのを軽減できる。したがって、複数のプロセッサを用いる処理において、演算装置１０は、各プロセッサにかかる負荷が分散できる。
【００６６】
なお、切り替えは、第１処理部ＦＮ１から第２処理部ＦＮ２にするに限られない。例えば、切り替えは、第２処理部ＦＮ２から第１処理部ＦＮ１にするでもよい。また、切り替えは、各プロセッサにかかる負荷に応じて、双方向に行われてもよい。
【００６７】
また、本発明は、本発明に係る処理の一部又は全部の手順が、ファームウェア等のプログラムに基づいて情報処理装置によって実行されることで実現されてもよい。すなわち、本発明は、情報処理をコンピュータに実行させるためのプログラム等によって実現されてもよい。
【００６８】
以上、本発明の好ましい実施例について詳述したが、本発明は、係る特定の実施形態に限定されるものではない。すなわち、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形又は変更が可能である。
【符号の説明】
【００６９】
１０  演算装置
ＨＷ１  第１プロセッサ
ＨＷ２  第２プロセッサ
ＴＲＧ  トリガ信号
ＦＮ１  第１処理部
ＦＮ２  第２処理部
ＦＮ３  記憶部
ＦＮ４  トリガ信号送信部
ＦＮ５  計測部
ＦＮ６  切替部
ＰＲ１  第１処理
ＰＲ２  第２処理
ＰＲ３  第３処理
【図１】
2017107294.tif 000003
【図２】
2017107294.tif 000004
【図３】
2017107294.tif 000005
【図４】
2017107294.tif 000006