(57)【要約】【課題】周期時間内にデータ処理を確実に完了させることとデータ処理結果の精度の向上を図ることを同時に達成する。【解決手段】メインＣＰＵ２００に、確実に周期時間内にデータ処理が完了するが、データ処理の精度は制御アルゴリズムＢよりも劣る制御アルゴリズムＡを割り当て、サブＣＰＵ３００に、周期時間内にデータ処理が完了する保証はないが、データ処理の精度は制御アルゴリズムＡよりも高い制御アルゴリズムＢを割り当て、メインＣＰＵ２００とサブＣＰＵ３００が同時に制御アルゴリズムＡと制御アルゴリズムＢによりデータ処理を行い、周期時間内に完了したデータ処理結果のうち、精度が高いデータ処理結果を採用する。【選択図】図１
2011003052.tif 000002
【特許請求の範囲】
【請求項１】
複数のＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を備え、前記複数のＣＰＵに、データ処理結果の精度を高くするためにはデータ処理時間を長くしなければならないデータ処理を行わせるデータ処理装置であって、
同じデータ処理を対象にするがデータ処理結果の精度が相互に異なる複数の処理アルゴリズムが割り当てられている前記複数のＣＰＵに、各々に割り当てられている処理アルゴリズムに従ってデータ処理を開始するよう指示し、前記複数のＣＰＵに並行してデータ処理を行わせる処理開始指示部と、
所定の制限時間内にデータ処理が完了したＣＰＵを判別する完了判別部と、
前記完了判別部によりデータ処理が完了したと判別されたＣＰＵのデータ処理結果の中から特定のデータ処理結果を選択する処理結果選択部とを有することを特徴とするデータ処理装置。
【請求項２】
前記処理結果選択部は、
前記完了判別部によりデータ処理が完了したと判別されたＣＰＵのデータ処理結果の中から、データ処理結果の精度が最も高い処理アルゴリズムが割り当てられているＣＰＵのデータ処理結果を選択することを特徴とする請求項１に記載のデータ処理装置。
【請求項３】
前記データ処理装置は、更に、
前記制限時間内にデータ処理が完了していないＣＰＵに、データ処理を終了するよう指示する終了指示部を有することを特徴とする請求項１又は２に記載のデータ処理装置。
【請求項４】
前記データ処理装置は、更に、
前記制限時間内にデータ処理が完了していないＣＰＵの処理アルゴリズムを、現在割り当てられている処理アルゴリズムよりもデータ処理結果の精度が低い処理アルゴリズムに変更するアルゴリズム変更部を有することを特徴とする請求項１〜３のいずれかに記載のデータ処理装置。
【請求項５】
前記データ処理装置は、
前記複数のＣＰＵにデータ処理を複数回行わせ、
前記データ処理装置は、更に、
前記制限時間内にデータ処理が完了していない回数が所定回数以上のＣＰＵの処理アルゴリズムを、現在割り当てられている処理アルゴリズムよりもデータ処理結果の精度が低い処理アルゴリズムに変更するアルゴリズム変更部を有することを特徴とする請求項１〜４のいずれかに記載のデータ処理装置。
【請求項６】
複数のＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を備え、前記複数のＣＰＵに、データ処理結果の精度を高くするためにはデータ処理時間を長くしなければならないデータ処理を行わせるデータ処理装置による制御方法であって、
同じデータ処理を対象にするがデータ処理結果の精度が相互に異なる複数の処理アルゴリズムが割り当てられている前記複数のＣＰＵに、各々に割り当てられている処理アルゴリズムに従ってデータ処理を開始するよう指示し、前記複数のＣＰＵに並行してデータ処理を行わせる処理開始指示ステップと、
所定の制限時間内にデータ処理が完了したＣＰＵを判別する完了判別ステップと、
前記完了判別ステップによりデータ処理が完了したと判別されたＣＰＵのデータ処理結果の中から特定のデータ処理結果を選択する処理結果選択ステップとを有することを特徴とする制御方法。
【請求項７】
複数のＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を備え、前記複数のＣＰＵに、データ処理結果の精度を高くするためにはデータ処理時間を長くしなければならないデータ処理を行わせるデータ処理装置に、
同じデータ処理を対象にするがデータ処理結果の精度が相互に異なる複数の処理アルゴリズムが割り当てられている前記複数のＣＰＵに、各々に割り当てられている処理アルゴリズムに従ってデータ処理を開始するよう指示し、前記複数のＣＰＵに並行してデータ処理を行わせる処理開始指示処理と、
所定の制限時間内にデータ処理が完了したＣＰＵを判別する完了判別処理と、
前記完了判別処理によりデータ処理が完了したと判別されたＣＰＵのデータ処理結果の中から特定のデータ処理結果を選択する処理結果選択処理とを実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を用いてデータ処理を行うデータ処理装置等に関する。
【背景技術】
【０００２】
例えば、工業用コントローラ製品のような組込み機器では、センサ等の入力や制御用出力に対し一定時間内に応答する、リアルタイム性が求められる。
そのような組込み機器のソフトウェアは、一般的に、一定の時間間隔で決められた処理を繰り返し実行する、周期処理で構成される。
このような組込み機器では、一定時間にできるだけ多くの処理や演算を実行することが高精度化につながるが、その処理時間は処理アルゴリズムに依存する。
周期処理は、目標とする点に工具（ドリルなど）を移動させる位置決め制御や、工具などが通過する軌跡を制御する補間制御を実行するが、各制御で使用する制御アルゴリズムにより、制御精度と処理時間は反比例の関係に（高精度である程処理時間が長くなる）になる。
また制御アルゴリズムが同じでもある条件（割込み発生など）で演算時間が長くなり、周期時間内に処理が完了しない場合がある。
特許文献１では、例えば使用する制御アルゴリズムを動的に変更するために、メインＣＰＵが２ポートメモリを介してサブＣＰＵが実行するプログラムを渡す方法を開示している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０００−２０４９２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来、周期処理の演算時間がある条件で長くなる場合があるため、制御精度は劣るものの確実に周期時間内に演算を完了する制御アルゴリズムを使用する必要があった。
また、特許文献１の技術では、サブＣＰＵが実行するプログラムを動的に変更し、リセット解除によりサブＣＰＵがプログラムを開始する方法を示しているが、サブＣＰＵの処理が周期時間内に完了したか否かを判定することができないという課題がある。
【０００５】
本発明は、上記のような課題に鑑みたものであり、制限時間内にデータ処理を確実に完了させることとデータ処理結果の精度の向上を図ることの両者を同時に達成することを主な目的とする。
【課題を解決するための手段】
【０００６】
本発明に係るデータ処理装置は、
複数のＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を備え、前記複数のＣＰＵに、データ処理結果の精度を高くするためにはデータ処理時間を長くしなければならないデータ処理を行わせるデータ処理装置であって、
同じデータ処理を対象にするがデータ処理結果の精度が相互に異なる複数の処理アルゴリズムが割り当てられている前記複数のＣＰＵに、各々に割り当てられている処理アルゴリズムに従ってデータ処理を開始するよう指示し、前記複数のＣＰＵに並行してデータ処理を行わせる処理開始指示部と、
所定の制限時間内にデータ処理が完了したＣＰＵを判別する完了判別部と、
前記完了判別部によりデータ処理が完了したと判別されたＣＰＵのデータ処理結果の中から特定のデータ処理結果を選択する処理結果選択部とを有することを特徴とする。
【発明の効果】
【０００７】
本発明によれば、同じデータ処理を対象にするがデータ処理結果の精度が相互に異なる複数の処理アルゴリズムが割り当てられている複数のＣＰＵに各々に割り当てられている処理アルゴリズムに従って並行してデータ処理を行わせ、制限時間内にデータ処理が完了したＣＰＵのデータ処理結果の中から特定のデータ処理結果を選択するので、制限時間内にデータ処理を確実に完了させることが可能であるとともに、精度の高いデータ処理結果を選択することにより、データ処理結果の精度の向上を図ることが可能である。
【図面の簡単な説明】
【０００８】
【図１】実施の形態１に係るデータ処理装置の構成例を示す図。
【図２】実施の形態２に係るデータ処理装置の構成例を示す図。
【図３】実施の形態３に係るデータ処理装置の構成例を示す図。
【図４】実施の形態１〜３に係るデータ処理装置の動作例を示すフローチャート図。
【図５】実施の形態１〜３に係るデータ処理装置のハードウェア構成例を示す図。
【発明を実施するための形態】
【０００９】
実施の形態１．
本実施の形態及び実施の形態２以降では、確実に周期時間内に演算を完了する制御アルゴリズムと、周期時間内に演算を完了するかどうかは不確かながら、より制御精度の高い制御アルゴリズムとを毎周期同時に実行し、周期毎に演算が完了し、制御精度の高い結果を使用することにより、装置としての制御精度を向上させる仕組みを説明する。
【００１０】
図１は、本実施の形態に係るデータ処理装置１００の構成例を示す。
【００１１】
図１に示すように、データ処理装置１００は、入出力装置４００及び共有メモリ５００に接続され、また、メインＣＰＵ２００とサブＣＰＵ３００の２つのＣＰＵを備える。
そして、データ処理装置１００は、メインＣＰＵ２００とサブＣＰＵ３００に、データ処理結果の精度を高くするためにはデータ処理時間を長くしなければならない周期的なデータ処理を行わせる。
つまり、本実施の形態に係るデータ処理装置１００を工業用コントローラ製品等に適用すると、制御精度を高めることにより加工精度は向上するが、それによりデータ処理時間が長くなり単位時間当たりの加工数が減少するというトレードオフとなる。
【００１２】
そして、本実施の形態では、メインＣＰＵ２００に周期処理の管理と制御アルゴリズムＡを割り当て、サブＣＰＵ３００には、制御アルゴリズムＢを割り当てている例を説明する。
制御アルゴリズムＡ及び制御アルゴリズムＢは、同じデータ処理を対象にするがデータ処理結果の精度が相互に異なる関係にある。
制御アルゴリズムＡは、割り込み処理等があっても確実に周期時間（制限時間）内にデータ処理が完了するが、データ処理の精度は制御アルゴリズムＢよりも劣るアルゴリズムである。
制御アルゴリズムＢは、周期時間内にデータ処理が完了する保証はないが、データ処理の精度は制御アルゴリズムＡよりも高いアルゴリズムである。
制御アルゴリズムは処理アルゴリズムの例である。
なお、以下では、「データ処理」及び「演算」は同じ意味で用いており、「周期処理」及び「周期演算」は周期的に行うデータ処理、演算を意味する。
【００１３】
次に、メインＣＰＵ２００の内部構成例を説明する。
【００１４】
周期処理管理部２０１は、周期時間内に処理が完了することを管理する手段である。
【００１５】
周期処理起動部２０２は、自ＣＰＵとサブＣＰＵの周期処理を起動する手段である。
つまり、周期処理起動部２０２は、自ＣＰＵとサブＣＰＵという複数のＣＰＵに、各々に割り当てられている制御アルゴリズムに従ってデータ処理を開始するよう指示し、複数のＣＰＵに並行してデータ処理を行わせる。
周期処理起動部２０２は処理開始指示部の例である。
【００１６】
周期処理判定部２０３は、自ＣＰＵとサブＣＰＵの処理の完了を判定する手段である。
つまり、周期処理判定部２０３は、自ＣＰＵとサブＣＰＵのうち、所定の周期時間（制限時間）内にデータ処理が完了したＣＰＵを判別し、また、データ処理が完了したと判別したＣＰＵのデータ処理結果の中から特定のデータ処理結果（具体的には、最も精度の高いデータ処理結果）を選択する。
周期処理判定部２０３は、完了判別部及び処理結果選択部の例である。
【００１７】
周期処理制御部２０４は、処理結果に基づいて出力制御する手段である。
また、周期処理制御部２０４は、サブＣＰＵ３００の演算が周期時間内に完了していない場合に、サブＣＰＵ３００に演算を終了するよう指示する。
周期処理制御部２０４は、終了指示部の例である。
【００１８】
次に、サブＣＰＵ３００の内部構成例を説明する。
周期処理演算部３０１は、メインＣＰＵ２００からの起動指示により周期演算（制御アルゴリズムＢによる演算）を実行する手段である。
周期処理完了通知部３０２は、サブＣＰＵ３００の処理の完了をメインＣＰＵ２００に通知する手段である。
周期処理完了通知部３０２がメインＣＰＵ２００に通知する方法としては、他に割込み信号や通信用レジスタなどが考えられるが、これに限定されない。
【００１９】
次に、図４のフローチャートを参照して、本実施の形態に係るデータ処理装置１００の動作例について説明する。
【００２０】
メインＣＰＵ２００では、タイマ（図示せず）などにより周期処理が開始されると、周期処理管理部２０１は、周期処理起動部２０２に通知する。
周期処理起動部２０２は、自身（周期処理起動部２０２）に、周期処理の起動を通知して制御アルゴリズムＡによるデータ処理を開始するとともに、サブＣＰＵ３００に周期処理の起動を通知する（Ｓ４０１）（処理開始指示ステップ）。
サブＣＰＵ３００は、メインＣＰＵ２００から周期処理の起動通知を受信すると、周期処理演算部３０１が制御アルゴリズムＢによる周期演算を開始する。
サブＣＰＵ３００内の周期処理完了通知部３０２は、周期処理演算部３０１における周期処理が完了すると、共有メモリ５００内に演算結果を格納するとともに、メインＣＰＵ２００の周期処理判定部２０３に周期処理の完了を通知する。完了通知には、サブＣＰＵ３００の識別子を含ませる。
また、メインＣＰＵ２００の周期処理起動部２０２は、制御アルゴリズムＡによる周期処理が完了すると、共有メモリ５００内に演算結果を格納するとともに、周期処理判定部２０３に周期処理の完了を通知する。完了通知には、メインＣＰＵ２００の識別子を含ませる。
なお、制御アルゴリズムＡは確実に周期時間内に演算が完了するため、メインＣＰＵの周期処理が完了しないことはない。
【００２１】
メインＣＰＵ２００の周期処理判定部２０３は、周期時間に達した場合（Ｓ４０２でＹＥＳ）は、周期時間内に受信した完了通知に含まれている識別子から、メインＣＰＵ２００の他にサブＣＰＵ３００からも完了通知を受けているか否かを判定する（Ｓ４０３）（完了判別ステップ）。
【００２２】
サブＣＰＵ３００におけるデータ処理が周期時間内に完了しなかった場合（サブＣＰＵ３００から完了通知を受けていない場合）は、サブＣＰＵ３００における次の周期処理の実行を可能にするため、周期処理判定部２０３が周期処理制御部２０４にサブＣＰＵ３００における演算が周期時間内に完了しなかったことを通知し、周期処理制御部２０４が周期処理演算部３０１に演算処理の終了を指示する（Ｓ４０４）。
次に、周期処理判定部２０３が、周期時間内で演算処理が完了したＣＰＵの演算結果のうち、最も処理精度が高い演算結果を選択する（Ｓ４０５）（処理結果選択ステップ）。
たとえば、メインＣＰＵ２００とサブＣＰＵ３００の両方の演算が周期時間内に完了している場合は、周期処理判定部２０３は、より精度の高いサブＣＰＵ３００の演算結果を選択し、周期処理結果とする。
一方、メインＣＰＵの演算が完了し、サブＣＰＵの演算が完了していない場合は、メインＣＰＵの演算結果を選択し、周期処理結果とする（前述のように、制御アルゴリズムＡは確実に周期時間内に演算が完了するため、メインＣＰＵの周期処理が完了しないことはない）。
【００２３】
次に、周期処理判定部２０３が、選択した周期処理結果を周期処理制御部２０４に通知し、周期処理制御部２０４が、周期処理結果を共有メモリ５００から取得し、工具を移動させるためのモータなどを制御する（Ｓ４０６）とともに、周期処理管理部２０１に周期処理の完了を通知する。
【００２４】
なお、図４のフローでは、未完了のサブＣＰＵにおける動作を早期に終了させるために、周期処理判定部２０３による演算結果の選択（Ｓ４０５）の前に、周期処理制御部２０４が未完了のサブＣＰＵに処理の終了を指示するようにしたが、順序を入れ替えて、Ｓ４０５の後に、周期処理制御部２０４がサブＣＰＵの演算を強制的に完了させる通知を行うようにしてもよい。
【００２５】
このように、本実施の形態によれば、異なるＣＰＵにおいて、制御精度の異なるアルゴリズムを実行し、周期時間内に完了した結果を使用することにより、周期時間を長くすることなく、制御精度を向上することができる。
【００２６】
以上、本実施の形態では、周期処理において、制御精度の異なる制御アルゴリズムを使用したプログラムを複数のＣＰＵで同時に実行し、制御周期毎に演算が完了した処理結果の内、精度が高い結果で制御を行うことを説明した。
【００２７】
実施の形態２．
本実施形態では、実施の形態１で説明した構成において３個以上の制御アルゴリズムを同時実行する例を説明する。
【００２８】
図２は、本実施の形態に係るデータ処理装置１００の構成例を示す。
図２において、サブＣＰＵ１（３００ａ）〜サブＣＰＵＮ（３００ｎ）（但し、Ｎ、ｎ≧２）は、実施の形態１で示したサブＣＰＵ３００と同じものである。
つまり、本実施の形態に係るデータ処理装置１００は、２個以上のサブＣＰＵ３００を備える。
各サブＣＰＵ３００の内部構成は、図１と同様に、周期処理演算部３０１と周期処理完了通知部３０２が含まれている。
メインＣＰＵ２００の内部構成は、図１に示した通りであるが、本実施の形態では、周期処理判定部２０３は、複数のサブＣＰＵ３００の周期処理の完了を判定する。
本実施の形態では、実施の形態１と同様に、周期処理起動部２０２に制御アルゴリズムＡを割り当てるとともに、サブＣＰＵ１（３００ａ）〜サブＣＰＵＮ（３００ｎ）の各々に異なる制御アルゴリズムを割り当てる。
つまり、サブＣＰＵ１（３００ａ）〜サブＣＰＵＮ（３００ｎ）の各々に割り当てる制御アルゴリズムは、それぞれ、演算時間と制御精度が異なる。
【００２９】
次に動作について説明する。
本実施の形態においても、図４のフローチャートと同様の動作が行われる。
具体的には、以下の通りである。
【００３０】
メインＣＰＵ２００は、装置の初期化時に、複数のサブＣＰＵ３００にそれぞれ制御精度と演算時間が異なる複数の制御アルゴリズムによるプログラムを割り付ける（制御アルゴリズムＡは実施の形態１と同様に周期処理起動部２０２に割り付けられる）。
周期処理起動部２０２は自ＣＰＵの周期演算を開始するとともに、全てのサブＣＰＵに周期処理の起動を通知する（Ｓ４０１）。
メインＣＰＵ２００内の周期処理判定部２０３は、Ｓ４０２〜Ｓ４０４の処理の後、周期時間内に完了したサブＣＰＵの演算結果及び自ＣＰＵの演算処理の内、制御精度が最も高い演算結果を選択し、周期処理結果とする（Ｓ４０５）。
なお、Ｓ４０４では、周期処理制御部２０４は、判定結果において演算が完了していない全てのサブＣＰＵ３００に対して、演算を強制的に完了させる。
また、実施の形態１と同様に、Ｓ４０４の処理は、Ｓ４０５の処理の後に行われるようにしてもよい。
【００３１】
このように、本実施の形態によれば、制御周期毎に最も制御精度の高い演算結果を使用することにより、装置として精度を最適にすることが可能となる。
【００３２】
実施の形態３．
本実施形態では、実施の形態１で説明した構成においてサブＣＰＵ３００の演算が完了しない場合に制御精度を変更する方法を説明する。
【００３３】
図３は、本実施の形態に係るデータ処理装置１００の構成例を示す。
図３では、図１に示す構成に精度制御部２０５を追加している。
精度制御部２０５は、サブＣＰＵ３００の演算が未完了である場合に制御精度を変更する手段である。
より具体的には、精度制御部２０５は、周期時間内にデータ処理が完了していないサブＣＰＵ３００の制御アルゴリズムを、現在割り当てられている制御アルゴリズムよりもデータ処理結果の精度が低い制御アルゴリズムに変更する。精度制御部２０５は、例えば、周期時間内にデータ処理が完了していない回数が所定回数以上のサブＣＰＵ３００の制御アルゴリズムを、現在割り当てられている制御アルゴリズムよりもデータ処理結果の精度が低い制御アルゴリズムに変更する。
精度制御部２０５は、アルゴリズム変更部の例である。
【００３４】
次に動作について説明する。
【００３５】
周期処理判定部２０３は、実施の形態１と同じ判定を行い、サブＣＰＵ３００の演算処理が周期時間内に完了しなかった場合、判定結果を周期処理制御部２０４に通知するとともに、精度制御部２０５にサブＣＰＵ３００の演算処理が完了しなかったことを通知する。
精度制御部２０５は、サブＣＰＵ３００の演算処理が周期時間内に完了しなかったケースを保持し、保持結果が一定の条件に達した場合に、サブＣＰＵ３００が実行する制御アルゴリズムを変更する。
例えば、精度制御部２０５は、サブＣＰＵ３００の演算処理が周期時間内に完了しなかった回数をカウントし、単位時間当たりのカウント数が所定の値以上になった場合に、サブＣＰＵ３００が実行する制御アルゴリズムを、制御精度がアルゴリズムＡより高くアルゴリズムＢより低い（演算時間がアルゴリズムＡより長いがアルゴリズムＢより短い）制御アルゴリズムＣに変更する。
制御アルゴリズムを変更する方法は、共有メモリ５００内のサブＣＰＵ３００が実行するプログラムを書き換えてもよい。
【００３６】
なお、以上では、実施の形態１の構成（１つのサブＣＰＵ３００）において、サブＣＰＵ３００の制御アルゴリズムを変更する例を説明しているが、実施の形態２に示す構成（複数のサブＣＰＵ３００）において制御アルゴリズムを変更するようにしてもよい。
つまり、特定のサブＣＰＵ３００において周期時間内に周期処理が完了できなかった回数が所定回数に達した場合に、そのサブＣＰＵ３００の現在の制御アルゴリズムと当該現在の制御アルゴリズムよりも１段階制御精度の劣る制御アルゴリズムとの間の制御アルゴリズムに変更するようにしてもよい。
【００３７】
このように、本実施の形態によれば、例えば外来ノイズなどによりデータ転送誤りが多発するなどして割込み発生頻度が高くなった場合に対して、メインＣＰＵにおいてサブＣＰＵの演算処理の未完了状態を監視し、未完了頻度が高くなった場合に制御精度の向上度合いは低いが完了する頻度が高い制御アルゴリズムに変更することにより、装置として精度を向上させることが可能となる。
【００３８】
以上、本実施の形態では、制御精度が高いプログラムが制御周期内に頻繁に演算が完了しない場合、制御精度を変更することを説明した。
【００３９】
最後に、実施の形態１〜３に示したデータ処理装置１００のハードウェア構成例について説明する。
図５は、実施の形態１〜３に示すデータ処理装置１００のハードウェア資源の一例を示す図である。
なお、図５の構成は、あくまでもデータ処理装置１００のハードウェア構成の一例を示すものであり、データ処理装置１００のハードウェア構成は図５に記載の構成に限らず、他の構成であってもよい。
【００４０】
図５において、データ処理装置１００は、プログラムを実行するＣＰＵ９１１を複数を備えている（実施の形態１〜３に示したメインＣＰＵ２００、サブＣＰＵ３００に相当）。
各ＣＰＵ９１１は、バス９１２を介して、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）９１３、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）９１４、通信ボード９１５、表示装置９０１、キーボード９０２、マウス９０３、磁気ディスク装置９２０と接続され、これらのハードウェアデバイスを制御する。
更に、各ＣＰＵ９１１は、ＦＤＤ９０４（Ｆｌｅｘｉｂｌｅ  Ｄｉｓｋ  Ｄｒｉｖｅ）、コンパクトディスク装置９０５（ＣＤＤ）、プリンタ装置９０６、スキャナ装置９０７と接続していてもよい。また、磁気ディスク装置９２０の代わりに、光ディスク装置、メモリカード（登録商標）読み書き装置などの記憶装置でもよい。
ＲＡＭ９１４は、揮発性メモリの一例である。ＲＯＭ９１３、ＦＤＤ９０４、ＣＤＤ９０５、磁気ディスク装置９２０の記憶媒体は、不揮発性メモリの一例である。これらは、記憶装置の一例である。
実施の形態１〜３で説明した「共有メモリ５００」は、例えば、ＲＡＭ９１４により実現される。
通信ボード９１５、キーボード９０２、マウス９０３、スキャナ装置９０７、ＦＤＤ９０４などは、入力装置の一例である。
また、通信ボード９１５、表示装置９０１、プリンタ装置９０６などは、出力装置の一例である。
また、これらは、実施の形態１〜３で説明した入出力装置４００に相当する。
【００４１】
通信ボード９１５は、例えば、ＬＡＮ（ローカルエリアネットワーク）、インターネット、ＷＡＮ（ワイドエリアネットワーク）、ＳＡＮ（ストレージエリアネットワーク）などに接続されている。
【００４２】
磁気ディスク装置９２０には、オペレーティングシステム９２１（ＯＳ）、ウィンドウシステム９２２、プログラム群９２３、ファイル群９２４が記憶されている。
プログラム群９２３のプログラムは、ＣＰＵ９１１がオペレーティングシステム９２１、ウィンドウシステム９２２を利用しながら実行する。
なお、データ処理装置１００が組み込み機器であれば、ウィンドウシステム９２２はなくてもよい。
【００４３】
また、ＲＡＭ９１４には、ＣＰＵ９１１に実行させるオペレーティングシステム９２１のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。
また、ＲＡＭ９１４には、ＣＰＵ９１１による処理に必要な各種データが格納される。
【００４４】
また、ＲＯＭ９１３には、ＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ  Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）プログラムが格納され、磁気ディスク装置９２０にはブートプログラムが格納されている。
データ処理装置１００の起動時には、ＲＯＭ９１３のＢＩＯＳプログラム及び磁気ディスク装置９２０のブートプログラムが実行され、ＢＩＯＳプログラム及びブートプログラムによりオペレーティングシステム９２１が起動される。
【００４５】
上記プログラム群９２３には、実施の形態１〜３の説明において「〜部」として説明している機能を実行するプログラムが記憶されている。プログラムは、ＣＰＵ９１１により読み出され実行される。
【００４６】
ファイル群９２４には、実施の形態１〜３の説明において、「〜の判断」、「〜の演算」、「〜の計算」、「〜の比較」、「〜の処理」、「〜の設定」、「〜の選択」、「〜の割り当て」等として説明している処理の結果を示す情報やデータや信号値や変数値やパラメータが、「〜ファイル」や「〜データベース」の各項目として記憶されている。
「〜ファイル」や「〜データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してＣＰＵ９１１によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示などのＣＰＵの動作に用いられる。
抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示のＣＰＵの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリ、レジスタ、キャッシュメモリ、バッファメモリ等に一時的に記憶される。
また、実施の形態１〜３で説明しているフローチャートの矢印の部分は主としてデータや信号の入出力を示し、データや信号値は、ＲＡＭ９１４のメモリ、ＦＤＤ９０４のフレキシブルディスク、ＣＤＤ９０５のコンパクトディスク、磁気ディスク装置９２０の磁気ディスク、その他光ディスク、ミニディスク、ＤＶＤ等の記録媒体に記録される。また、データや信号は、バス９１２や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
【００４７】
また、実施の形態１〜３の説明において「〜部」として説明しているものは、「〜回路」、「〜装置」、「〜機器」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。すなわち、「〜部」として説明しているものは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせで実施されても構わない。ソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、ＤＶＤ等の記録媒体に記憶される。プログラムはＣＰＵ９１１により読み出され、ＣＰＵ９１１により実行される。すなわち、プログラムは、実施の形態１〜３の「〜部」としてコンピュータを機能させるものである。あるいは、実施の形態１〜３の「〜部」の手順や方法をコンピュータに実行させるものである。
【００４８】
このように、実施の形態１〜３に示すデータ処理装置１００は、処理装置たるＣＰＵ、記憶装置たるメモリ、磁気ディスク等、入力装置たるキーボード、マウス、通信ボード等、出力装置たる表示装置、通信ボード等を備えるコンピュータであり、上記したように「〜部」として示された機能をこれら処理装置、記憶装置、入力装置、出力装置を用いて実現するものである。
【符号の説明】
【００４９】
１００  データ処理装置、２００  メインＣＰＵ、２０１  周期処理管理部、２０２  周期処理起動部、２０３  周期処理判定部、２０４  周期処理制御部、２０５  精度制御部、３００  サブＣＰＵ、３０１  周期処理演算部、３０２  周期処理完了通知部、４００  入出力装置、５００  共有メモリ。
【図１】
2011003052.tif 000003
【図２】
2011003052.tif 000004
【図３】
2011003052.tif 000005
【図４】
2011003052.tif 000006
【図５】
2011003052.tif 000007