JP5371569B2 - データ処理装置及び制御方法及びプログラム - Google Patents
データ処理装置及び制御方法及びプログラム Download PDFInfo
- Publication number
- JP5371569B2 JP5371569B2 JP2009146146A JP2009146146A JP5371569B2 JP 5371569 B2 JP5371569 B2 JP 5371569B2 JP 2009146146 A JP2009146146 A JP 2009146146A JP 2009146146 A JP2009146146 A JP 2009146146A JP 5371569 B2 JP5371569 B2 JP 5371569B2
- Authority
- JP
- Japan
- Prior art keywords
- data processing
- processing
- cpu
- completed
- algorithm
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Numerical Control (AREA)
- Programmable Controllers (AREA)
Description
そのような組込み機器のソフトウェアは、一般的に、一定の時間間隔で決められた処理を繰り返し実行する、周期処理で構成される。
このような組込み機器では、一定時間にできるだけ多くの処理や演算を実行することが高精度化につながるが、その処理時間は処理アルゴリズムに依存する。
周期処理は、目標とする点に工具(ドリルなど)を移動させる位置決め制御や、工具などが通過する軌跡を制御する補間制御を実行するが、各制御で使用する制御アルゴリズムにより、制御精度と処理時間は反比例の関係に(高精度である程処理時間が長くなる)になる。
また制御アルゴリズムが同じでもある条件(割込み発生など)で演算時間が長くなり、周期時間内に処理が完了しない場合がある。
特許文献1では、例えば使用する制御アルゴリズムを動的に変更するために、メインCPUが2ポートメモリを介してサブCPUが実行するプログラムを渡す方法を開示している。
また、特許文献1の技術では、サブCPUが実行するプログラムを動的に変更し、リセット解除によりサブCPUがプログラムを開始する方法を示しているが、サブCPUの処理が周期時間内に完了したか否かを判定することができないという課題がある。
複数のCPU(Central Processing Unit)を備え、前記複数のCPUに、データ処理結果の精度を高くするためにはデータ処理時間を長くしなければならないデータ処理を行わせるデータ処理装置であって、
同じデータ処理を対象にするがデータ処理結果の精度が相互に異なる複数の処理アルゴリズムが割り当てられている前記複数のCPUに、各々に割り当てられている処理アルゴリズムに従ってデータ処理を開始するよう指示し、前記複数のCPUに並行してデータ処理を行わせる処理開始指示部と、
所定の制限時間内にデータ処理が完了したCPUを判別する完了判別部と、
前記完了判別部によりデータ処理が完了したと判別されたCPUのデータ処理結果の中から特定のデータ処理結果を選択する処理結果選択部とを有することを特徴とする。
本実施の形態及び実施の形態2以降では、確実に周期時間内に演算を完了する制御アルゴリズムと、周期時間内に演算を完了するかどうかは不確かながら、より制御精度の高い制御アルゴリズムとを毎周期同時に実行し、周期毎に演算が完了し、制御精度の高い結果を使用することにより、装置としての制御精度を向上させる仕組みを説明する。
そして、データ処理装置100は、メインCPU200とサブCPU300に、データ処理結果の精度を高くするためにはデータ処理時間を長くしなければならない周期的なデータ処理を行わせる。
つまり、本実施の形態に係るデータ処理装置100を工業用コントローラ製品等に適用すると、制御精度を高めることにより加工精度は向上するが、それによりデータ処理時間が長くなり単位時間当たりの加工数が減少するというトレードオフとなる。
制御アルゴリズムA及び制御アルゴリズムBは、同じデータ処理を対象にするがデータ処理結果の精度が相互に異なる関係にある。
制御アルゴリズムAは、割り込み処理等があっても確実に周期時間(制限時間)内にデータ処理が完了するが、データ処理の精度は制御アルゴリズムBよりも劣るアルゴリズムである。
制御アルゴリズムBは、周期時間内にデータ処理が完了する保証はないが、データ処理の精度は制御アルゴリズムAよりも高いアルゴリズムである。
制御アルゴリズムは処理アルゴリズムの例である。
なお、以下では、「データ処理」及び「演算」は同じ意味で用いており、「周期処理」及び「周期演算」は周期的に行うデータ処理、演算を意味する。
つまり、周期処理起動部202は、自CPUとサブCPUという複数のCPUに、各々に割り当てられている制御アルゴリズムに従ってデータ処理を開始するよう指示し、複数のCPUに並行してデータ処理を行わせる。
周期処理起動部202は処理開始指示部の例である。
つまり、周期処理判定部203は、自CPUとサブCPUのうち、所定の周期時間(制限時間)内にデータ処理が完了したCPUを判別し、また、データ処理が完了したと判別したCPUのデータ処理結果の中から特定のデータ処理結果(具体的には、最も精度の高いデータ処理結果)を選択する。
周期処理判定部203は、完了判別部及び処理結果選択部の例である。
また、周期処理制御部204は、サブCPU300の演算が周期時間内に完了していない場合に、サブCPU300に演算を終了するよう指示する。
周期処理制御部204は、終了指示部の例である。
周期処理演算部301は、メインCPU200からの起動指示により周期演算(制御アルゴリズムBによる演算)を実行する手段である。
周期処理完了通知部302は、サブCPU300の処理の完了をメインCPU200に通知する手段である。
周期処理完了通知部302がメインCPU200に通知する方法としては、他に割込み信号や通信用レジスタなどが考えられるが、これに限定されない。
周期処理起動部202は、自身(周期処理起動部202)に、周期処理の起動を通知して制御アルゴリズムAによるデータ処理を開始するとともに、サブCPU300に周期処理の起動を通知する(S401)(処理開始指示ステップ)。
サブCPU300は、メインCPU200から周期処理の起動通知を受信すると、周期処理演算部301が制御アルゴリズムBによる周期演算を開始する。
サブCPU300内の周期処理完了通知部302は、周期処理演算部301における周期処理が完了すると、共有メモリ500内に演算結果を格納するとともに、メインCPU200の周期処理判定部203に周期処理の完了を通知する。完了通知には、サブCPU300の識別子を含ませる。
また、メインCPU200の周期処理起動部202は、制御アルゴリズムAによる周期処理が完了すると、共有メモリ500内に演算結果を格納するとともに、周期処理判定部203に周期処理の完了を通知する。完了通知には、メインCPU200の識別子を含ませる。
なお、制御アルゴリズムAは確実に周期時間内に演算が完了するため、メインCPUの周期処理が完了しないことはない。
次に、周期処理判定部203が、周期時間内で演算処理が完了したCPUの演算結果のうち、最も処理精度が高い演算結果を選択する(S405)(処理結果選択ステップ)。
たとえば、メインCPU200とサブCPU300の両方の演算が周期時間内に完了している場合は、周期処理判定部203は、より精度の高いサブCPU300の演算結果を選択し、周期処理結果とする。
一方、メインCPUの演算が完了し、サブCPUの演算が完了していない場合は、メインCPUの演算結果を選択し、周期処理結果とする(前述のように、制御アルゴリズムAは確実に周期時間内に演算が完了するため、メインCPUの周期処理が完了しないことはない)。
本実施形態では、実施の形態1で説明した構成において3個以上の制御アルゴリズムを同時実行する例を説明する。
図2において、サブCPU1(300a)〜サブCPUN(300n)(但し、N、n≧2)は、実施の形態1で示したサブCPU300と同じものである。
つまり、本実施の形態に係るデータ処理装置100は、2個以上のサブCPU300を備える。
各サブCPU300の内部構成は、図1と同様に、周期処理演算部301と周期処理完了通知部302が含まれている。
メインCPU200の内部構成は、図1に示した通りであるが、本実施の形態では、周期処理判定部203は、複数のサブCPU300の周期処理の完了を判定する。
本実施の形態では、実施の形態1と同様に、周期処理起動部202に制御アルゴリズムAを割り当てるとともに、サブCPU1(300a)〜サブCPUN(300n)の各々に異なる制御アルゴリズムを割り当てる。
つまり、サブCPU1(300a)〜サブCPUN(300n)の各々に割り当てる制御アルゴリズムは、それぞれ、演算時間と制御精度が異なる。
本実施の形態においても、図4のフローチャートと同様の動作が行われる。
具体的には、以下の通りである。
周期処理起動部202は自CPUの周期演算を開始するとともに、全てのサブCPUに周期処理の起動を通知する(S401)。
メインCPU200内の周期処理判定部203は、S402〜S404の処理の後、周期時間内に完了したサブCPUの演算結果及び自CPUの演算処理の内、制御精度が最も高い演算結果を選択し、周期処理結果とする(S405)。
なお、S404では、周期処理制御部204は、判定結果において演算が完了していない全てのサブCPU300に対して、演算を強制的に完了させる。
また、実施の形態1と同様に、S404の処理は、S405の処理の後に行われるようにしてもよい。
本実施形態では、実施の形態1で説明した構成においてサブCPU300の演算が完了しない場合に制御精度を変更する方法を説明する。
図3では、図1に示す構成に精度制御部205を追加している。
精度制御部205は、サブCPU300の演算が未完了である場合に制御精度を変更する手段である。
より具体的には、精度制御部205は、周期時間内にデータ処理が完了していないサブCPU300の制御アルゴリズムを、現在割り当てられている制御アルゴリズムよりもデータ処理結果の精度が低い制御アルゴリズムに変更する。精度制御部205は、例えば、周期時間内にデータ処理が完了していない回数が所定回数以上のサブCPU300の制御アルゴリズムを、現在割り当てられている制御アルゴリズムよりもデータ処理結果の精度が低い制御アルゴリズムに変更する。
精度制御部205は、アルゴリズム変更部の例である。
精度制御部205は、サブCPU300の演算処理が周期時間内に完了しなかったケースを保持し、保持結果が一定の条件に達した場合に、サブCPU300が実行する制御アルゴリズムを変更する。
例えば、精度制御部205は、サブCPU300の演算処理が周期時間内に完了しなかった回数をカウントし、単位時間当たりのカウント数が所定の値以上になった場合に、サブCPU300が実行する制御アルゴリズムを、制御精度がアルゴリズムAより高くアルゴリズムBより低い(演算時間がアルゴリズムAより長いがアルゴリズムBより短い)制御アルゴリズムCに変更する。
制御アルゴリズムを変更する方法は、共有メモリ500内のサブCPU300が実行するプログラムを書き換えてもよい。
つまり、特定のサブCPU300において周期時間内に周期処理が完了できなかった回数が所定回数に達した場合に、そのサブCPU300の現在の制御アルゴリズムと当該現在の制御アルゴリズムよりも1段階制御精度の劣る制御アルゴリズムとの間の制御アルゴリズムに変更するようにしてもよい。
図5は、実施の形態1〜3に示すデータ処理装置100のハードウェア資源の一例を示す図である。
なお、図5の構成は、あくまでもデータ処理装置100のハードウェア構成の一例を示すものであり、データ処理装置100のハードウェア構成は図5に記載の構成に限らず、他の構成であってもよい。
各CPU911は、バス912を介して、例えば、ROM(Read Only Memory)913、RAM(Random Access Memory)914、通信ボード915、表示装置901、キーボード902、マウス903、磁気ディスク装置920と接続され、これらのハードウェアデバイスを制御する。
更に、各CPU911は、FDD904(Flexible Disk Drive)、コンパクトディスク装置905(CDD)、プリンタ装置906、スキャナ装置907と接続していてもよい。また、磁気ディスク装置920の代わりに、光ディスク装置、メモリカード(登録商標)読み書き装置などの記憶装置でもよい。
RAM914は、揮発性メモリの一例である。ROM913、FDD904、CDD905、磁気ディスク装置920の記憶媒体は、不揮発性メモリの一例である。これらは、記憶装置の一例である。
実施の形態1〜3で説明した「共有メモリ500」は、例えば、RAM914により実現される。
通信ボード915、キーボード902、マウス903、スキャナ装置907、FDD904などは、入力装置の一例である。
また、通信ボード915、表示装置901、プリンタ装置906などは、出力装置の一例である。
また、これらは、実施の形態1〜3で説明した入出力装置400に相当する。
プログラム群923のプログラムは、CPU911がオペレーティングシステム921、ウィンドウシステム922を利用しながら実行する。
なお、データ処理装置100が組み込み機器であれば、ウィンドウシステム922はなくてもよい。
また、RAM914には、CPU911による処理に必要な各種データが格納される。
データ処理装置100の起動時には、ROM913のBIOSプログラム及び磁気ディスク装置920のブートプログラムが実行され、BIOSプログラム及びブートプログラムによりオペレーティングシステム921が起動される。
「〜ファイル」や「〜データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してCPU911によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示などのCPUの動作に用いられる。
抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示のCPUの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリ、レジスタ、キャッシュメモリ、バッファメモリ等に一時的に記憶される。
また、実施の形態1〜3で説明しているフローチャートの矢印の部分は主としてデータや信号の入出力を示し、データや信号値は、RAM914のメモリ、FDD904のフレキシブルディスク、CDD905のコンパクトディスク、磁気ディスク装置920の磁気ディスク、その他光ディスク、ミニディスク、DVD等の記録媒体に記録される。また、データや信号は、バス912や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
Claims (5)
- 複数のCPU(Central Processing Unit)を備え、前記複数のCPUに、データ処理結果の精度を高くするためにはデータ処理時間を長くしなければならないデータ処理を複数回行わせるデータ処理装置であって、
同じデータ処理を対象にするがデータ処理結果の精度が相互に異なる複数の処理アルゴリズムが割り当てられている前記複数のCPUに、各々に割り当てられている処理アルゴリズムに従ってデータ処理を開始するよう指示し、前記複数のCPUに並行してデータ処理を行わせる処理開始指示部と、
所定の制限時間内にデータ処理が完了したCPUを判別する完了判別部と、
前記完了判別部によりデータ処理が完了したと判別されたCPUのデータ処理結果の中から特定のデータ処理結果を選択する処理結果選択部と、
前記制限時間内にデータ処理が完了していない回数が所定回数以上のCPUの処理アルゴリズムを、現在割り当てられている処理アルゴリズムよりもデータ処理結果の精度が低い処理アルゴリズムに変更するアルゴリズム変更部とを有することを特徴とするデータ処理装置。 - 前記処理結果選択部は、
前記完了判別部によりデータ処理が完了したと判別されたCPUのデータ処理結果の中から、データ処理結果の精度が最も高い処理アルゴリズムが割り当てられているCPUのデータ処理結果を選択することを特徴とする請求項1に記載のデータ処理装置。 - 前記データ処理装置は、更に、
前記制限時間内にデータ処理が完了していないCPUに、データ処理を終了するよう指示する終了指示部を有することを特徴とする請求項1又は2に記載のデータ処理装置。 - 複数のCPU(Central Processing Unit)を備え、前記複数のCPUに、データ処理結果の精度を高くするためにはデータ処理時間を長くしなければならないデータ処理を複数回行わせるデータ処理装置による制御方法であって、
同じデータ処理を対象にするがデータ処理結果の精度が相互に異なる複数の処理アルゴリズムが割り当てられている前記複数のCPUに、各々に割り当てられている処理アルゴリズムに従ってデータ処理を開始するよう指示し、前記複数のCPUに並行してデータ処理を行わせる処理開始指示ステップと、
所定の制限時間内にデータ処理が完了したCPUを判別する完了判別ステップと、
前記完了判別ステップによりデータ処理が完了したと判別されたCPUのデータ処理結果の中から特定のデータ処理結果を選択する処理結果選択ステップと、
前記制限時間内にデータ処理が完了していない回数が所定回数以上のCPUの処理アルゴリズムを、現在割り当てられている処理アルゴリズムよりもデータ処理結果の精度が低い処理アルゴリズムに変更するアルゴリズム変更ステップとを有することを特徴とする制御方法。 - 複数のCPU(Central Processing Unit)を備え、前記複数のCPUに、データ処理結果の精度を高くするためにはデータ処理時間を長くしなければならないデータ処理を複数回行わせるデータ処理装置に、
同じデータ処理を対象にするがデータ処理結果の精度が相互に異なる複数の処理アルゴリズムが割り当てられている前記複数のCPUに、各々に割り当てられている処理アルゴリズムに従ってデータ処理を開始するよう指示し、前記複数のCPUに並行してデータ処理を行わせる処理開始指示処理と、
所定の制限時間内にデータ処理が完了したCPUを判別する完了判別処理と、
前記完了判別処理によりデータ処理が完了したと判別されたCPUのデータ処理結果の中から特定のデータ処理結果を選択する処理結果選択処理と、
前記制限時間内にデータ処理が完了していない回数が所定回数以上のCPUの処理アルゴリズムを、現在割り当てられている処理アルゴリズムよりもデータ処理結果の精度が低い処理アルゴリズムに変更するアルゴリズム変更処理とを実行させることを特徴とするプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009146146A JP5371569B2 (ja) | 2009-06-19 | 2009-06-19 | データ処理装置及び制御方法及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009146146A JP5371569B2 (ja) | 2009-06-19 | 2009-06-19 | データ処理装置及び制御方法及びプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2011003052A JP2011003052A (ja) | 2011-01-06 |
JP5371569B2 true JP5371569B2 (ja) | 2013-12-18 |
Family
ID=43560953
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009146146A Expired - Fee Related JP5371569B2 (ja) | 2009-06-19 | 2009-06-19 | データ処理装置及び制御方法及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5371569B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104267639B (zh) * | 2014-09-22 | 2018-02-23 | 苏州贝昂科技有限公司 | 一种时钟系统、计数器及任务处理方法 |
CN115944877B (zh) * | 2022-12-21 | 2024-05-28 | 厦门海辰储能科技股份有限公司 | 基于多cpu的消防系统 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0749844A (ja) * | 1993-06-04 | 1995-02-21 | Hitachi Ltd | 異バージョンプログラムの多重実行方法および計算機システム |
JPH08212084A (ja) * | 1995-02-02 | 1996-08-20 | Hitachi Ltd | 情報処理装置 |
JP2000020492A (ja) * | 1998-06-29 | 2000-01-21 | Yaskawa Electric Corp | サブcpuへのプログラムダウンロード方法およびそのnc装置 |
JP4203001B2 (ja) * | 2004-01-28 | 2008-12-24 | 株式会社東芝 | 並列計算方法、並列計算プログラム及び計算機 |
JP2006085386A (ja) * | 2004-09-15 | 2006-03-30 | Sony Corp | 情報処理装置および方法、並びにプログラム |
-
2009
- 2009-06-19 JP JP2009146146A patent/JP5371569B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2011003052A (ja) | 2011-01-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112204524B (zh) | 用于硬件加速的硬件资源的嵌入式调度 | |
KR20170131738A (ko) | 적응 인터럽트 제어를 수행하는 컴퓨터 시스템 및 그것의 인터럽트 제어 방법 | |
JP7039631B2 (ja) | アクセスリクエストを管理するための方法、装置、デバイス、および記憶媒体 | |
CN109582215B (zh) | 硬盘操作命令的执行方法、硬盘及存储介质 | |
JP2021527892A (ja) | 分岐命令のタイプに基づく先行分岐予測の選択的実行 | |
US10031757B2 (en) | Operation of a multi-slice processor implementing a mechanism to overcome a system hang | |
JP6808090B1 (ja) | 制御装置および分散処理方法 | |
JP2021527248A (ja) | 予測ミス回復の待ち時間を短縮するための偶発的な分岐予測の格納 | |
US10657022B2 (en) | Input and output recording device and method, CPU and data read and write operation method thereof | |
JP7470685B2 (ja) | 集積回路中の算出ユニットをプログラムおよび制御すること | |
JP5371569B2 (ja) | データ処理装置及び制御方法及びプログラム | |
JP5621613B2 (ja) | 情報処理装置、制御方法及びプログラム | |
JP4509951B2 (ja) | シミュレーション実行制御装置及びプログラム | |
US9058207B2 (en) | Simulation apparatus, method, and computer-readable recording medium | |
US6934936B2 (en) | Apparatus and method for adaptive address-based historical utilization recording | |
JP6253865B2 (ja) | 転送制御装置、車両及び転送制御方法 | |
JP2019160155A (ja) | 情報処理装置、情報処理方法、及びプログラム | |
JP6488962B2 (ja) | キャッシュ制御装置、キャッシュ制御方法およびキャッシュ制御プログラム | |
JP5064825B2 (ja) | バッファキャッシュ装置及びバッファキャッシュ方法及びプログラム | |
US9983879B2 (en) | Operation of a multi-slice processor implementing dynamic switching of instruction issuance order | |
JP2009059276A (ja) | 情報処理装置およびプログラム | |
JP5901252B2 (ja) | データ処理装置およびデータ処理方法およびプログラム | |
JP6379841B2 (ja) | 情報処理装置、試験方法および試験制御プログラム | |
TWI544343B (zh) | 伺服器及其方法、系統及其方法 | |
JP3998686B2 (ja) | Cpu使用時間カウント方法及びこのcpu使用時間を用いるジョブ制御装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20120201 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20130628 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130702 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130722 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20130820 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130917 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |