JP2005332370A - 制御装置 - Google Patents
制御装置 Download PDFInfo
- Publication number
- JP2005332370A JP2005332370A JP2005108797A JP2005108797A JP2005332370A JP 2005332370 A JP2005332370 A JP 2005332370A JP 2005108797 A JP2005108797 A JP 2005108797A JP 2005108797 A JP2005108797 A JP 2005108797A JP 2005332370 A JP2005332370 A JP 2005332370A
- Authority
- JP
- Japan
- Prior art keywords
- control
- program
- instruction
- control data
- read
- 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
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Abstract
【課題】制御プログラムを高速に実行可能な制御装置を提供する。
【解決手段】本発明の一態様に係る制御装置は、連続して実行される処理命令に対して連続するアドレスが付された制御プログラムを、連続して実行される処理命令が並列に読出し可能なように分散して記憶する複数の制御プログラムメモリ191〜19nと、複数の制御プログラムメモリ191〜19nに対してアドレスを制御プログラム順に出力し、実行対象の処理命令以降の処理命令を先回りで読出すプログラムメモリ制御手段31と、プログラムメモリ制御手段31によって読出された処理命令を実行する演算手段30とを具備する。
【選択図】 図2
【解決手段】本発明の一態様に係る制御装置は、連続して実行される処理命令に対して連続するアドレスが付された制御プログラムを、連続して実行される処理命令が並列に読出し可能なように分散して記憶する複数の制御プログラムメモリ191〜19nと、複数の制御プログラムメモリ191〜19nに対してアドレスを制御プログラム順に出力し、実行対象の処理命令以降の処理命令を先回りで読出すプログラムメモリ制御手段31と、プログラムメモリ制御手段31によって読出された処理命令を実行する演算手段30とを具備する。
【選択図】 図2
Description
本発明は、制御対象のプロセス値を所定の値に制御する制御装置に関する。
制御装置は、例えば、製紙プラントや自動車産業における組み立て作業などを含むFA分野、化学プラントを含むPA分野、上下水道システムなどを含む公共システムなど、様々な産業システムに対して用いられる。
図17は、従来の制御装置の一例を示すブロック図である。
入出力モジュール1は、制御装置2から入力したデータを制御対象3に出力する。また、入出力モジュール1は、制御対象3から入力した制御データ1aを制御装置2に出力する。
制御装置2の制御プログラム実行回路4としては、例えばマイクロプロセッサ、中央処理装置などが用いられる。
制御プログラム実行回路4は、制御プログラムメモリ5から制御プログラム5aに記載された処理命令を順次読出し、制御データ1aを入出力モジュール1及びI/Oインタフェース6経由で読出し、制御データメモリ7に格納されている制御データ7aを読出す。
制御プログラム実行回路4は、制御プログラム5aの処理命令にしたがって、制御データ1a及び制御データ7aに対する処理を実行する。
そして、制御プログラム実行回路4は、制御プログラム5aにしたがって、処理結果を示すデータをI/Oインタフェース6経由で入出力モジュール1に出力し、あるいは処理結果を示すデータを制御データメモリ7に書込む。
これにより、制御装置2の制御処理が実行される。制御装置2は、モニタ装置8から通信インタフェース9経由で各種命令を入力する。
また、制御装置2には、制御プログラム実行回路4、制御プログラムメモリ5、I/Oインタフェース6、制御データメモリ7の他にも、プログラム実行回路10、プログラムメモリ11、データメモリ12を具備するとしてもよい。制御装置2内の各部分間では、バス13経由でプログラム及びデータが入出力される。
制御装置2の一例としては、プログラマブルコントローラなどがある。
近年では、ある装置に複数の制御装置を実装して制御装置を多重化する技術や、ある装置に複数の制御装置を実装して処理を分担させるなどにより、制御処理を高速化する技術が提案されている(例えば、特許文献1参照)。
特願平11−196457号
従来の制御装置2では、制御プログラム実行回路4を高速化しても、制御プログラムメモリ5及び制御データメモリ7から制御プログラム5a及び制御データ7aを読出す動作に時間がかかり、この読出し速度が制限となって制御処理の高速化が困難である。
また、複数の制御装置が持つ発振器の周波数が全く同一ではない場合には、多重化した複数の制御装置で同一の制御プログラムを並行に実行させ、複数の制御装置間で同期を取ることが困難である。また、制御開始のタイミングを合わせることも困難である。
本発明は、以上のような実情に鑑みてなされたもので、制御プログラムを高速に実行可能な制御装置を提供することを目的とする。
本発明を実現するにあたって講じた具体的手段について以下に説明する。
本発明の実施例に係る制御装置において、複数の制御プログラムメモリは、連続して実行される処理命令に対して連続するアドレスが付された制御プログラムを、連続して実行される処理命令が並列に読出し可能なように分散して記憶する。プログラムメモリ制御手段は、複数の制御プログラムメモリに対してアドレスを制御プログラム順に出力し、実行対象の処理命令以降の処理命令を先回りで読出す。演算手段は、プログラムメモリ制御手段によって読出された処理命令を実行する。
本発明においては、メモリからデータ又はプログラムを高速に読出すことができ、これにより、制御プログラムを高速に実行できる。
以下、図面を参照しながら本発明の実施の形態について説明する。なお、上記図17及び以下の各図において同様の部分については同様の符号を付して説明を省略する。
(第1の実施の形態)
本実施の形態では、制御プログラムメモリから制御プログラムを高速に読出すとともに、制御データメモリから制御データを高速に読出すことにより、制御プログラムを高速に実行可能な制御装置について説明する。
本実施の形態では、制御プログラムメモリから制御プログラムを高速に読出すとともに、制御データメモリから制御データを高速に読出すことにより、制御プログラムを高速に実行可能な制御装置について説明する。
図1は、本実施の形態に係る制御装置の一例を示すブロック図である。
制御装置14は、プログラム実行回路15、プログラムメモリ16、データメモリ17を具備する。
また、制御装置14は、制御プログラム実行回路18、他のメモリ単位の動作とは無関係に、異なるアドレスバス及び異なる命令でアクセス可能な複数の単位の制御プログラムメモリ191〜19n、他のメモリ単位の動作とは無関係に、異なるアドレスバス及び異なる命令でアクセス可能な複数の単位の制御データメモリ201〜20mを具備する。
制御装置14は、各制御プログラムメモリ191〜19nに対応する複数のバッファ211〜21n、各制御データメモリ201〜20mに対応する複数のバッファ221〜22mを具備する。制御装置14内の各部分間では、システムバス26経由でプログラム及びデータが入出力される。
プログラムメモリ16は、高級言語で記述されている制御ソースプログラム23とコンパイラ24とを記憶する。
プログラム実行回路15は、プログラムメモリ16をアクセスし、コンパイラ24を用いて制御ソースプログラム23に対するコンパイルを実行し、コンパイルの結果得られる制御プログラムを複数の制御プログラムメモリ191〜19nに記録するとともに、コンパイルの結果得られる制御プログラムで使用される制御データの割り付けを複数の制御データメモリ201〜20mに対して実行する。
図2は、制御プログラム実行回路18の構成の一例を示すブロック図である。
制御プログラム実行回路18は、複数の制御プログラムメモリ191〜19nに対して、それぞれバッファ211〜21n経由でアクセスする。
また、制御プログラム実行回路18は、複数の制御データメモリ201〜20mに対して、それぞれバッファ221〜22m経由でアクセスする。
制御プログラム実行回路18は、I/Oインタフェース27、通信インタフェース28、システムバスインタフェース29、演算回路30、制御プログラムメモリ制御回路31、バッファ32、キャッシュメモリ制御回路33、キャッシュメモリ34、制御データメモリ制御回路35、バッファ36を具備する。
I/Oインタフェース27及び通信インタフェース28は、上記図17のI/Oインタフェース6及び通信インタフェース9と同様であるが、制御プログラム実行回路18に内蔵されているため、高速にデータの入出力が可能である。
システムバスインタフェース29は、制御装置14内の他の部分からのデータをシステムバス26経由で入力し、演算回路30に出力する。また、システムバスインタフェース29は、演算回路30からのデータを入力し、システムバス26経由で制御装置14内の他の部分に出力する。
演算回路30は、制御プログラムメモリ制御回路31を用いて、各制御プログラムメモリ191〜19nに記憶されているプログラムコードを、それぞれバッファ211〜21n、バッファ32経由で読出す。
また、演算回路30は、キャッシュメモリ制御回路33によってキャッシュメモリ34に読出し対象の制御データが記憶されていると判断された場合、キャッシュメモリ34から制御データを読出す。
また、演算回路30は、キャッシュメモリ制御回路33によってキャッシュメモリ34に読出し対象の制御データが記憶されていないと判断された場合、制御データメモリ制御回路35を用いて、各制御データメモリ201〜20mに記憶されている制御データをそれぞれバッファ221〜22m、バッファ36経由で読出す。
また、演算回路30は、制御データメモリ制御回路35を用いて、バッファ36、バッファ221〜22m経由で各制御データメモリ201〜20mに制御データを書込む。
そして、演算回路30は、読出したプログラムコード及び制御データにしたがって、処理を実行する。
本実施の形態では、制御プログラムメモリ191〜19nが並列に備えられており、コンパイラ24により連続するプログラムコードに連続するアドレスが割り付けられており、連続するプログラムコードがそれぞれ異なる制御プログラムメモリに記録されている。
このため、演算回路30は、高速にプログラムコードを読出すことが可能であり、アドレスの順序にしたがって高速にプログラムコードを実行することが可能である。
また、本実施の形態では、コンパイラ24により、あるプログラム構成単位(ここでいうプログラム構成単位とは、IEC 61131-3でいうProgram Organization Unit(POU)であるとする)で使用される制御データが制御データメモリ201〜20mのいずれかの所定範囲の領域に記憶される。そして、この領域内の制御データがまとめてキャッシュメモリ34に記憶される。
このため、演算回路30は、高確率でキャッシュメモリ34から制御データを読出すことができ、キャッシュメモリ34のヒット率を向上させることができ、高速に制御データを読出すことが可能である。
また、本実施の形態では、制御データメモリ201〜20mが並列に備えられており、コンパイラ24により制御データが他の制御データへの読出し又は書込み状態に関係なく独立に読出し及び書込み可能とされている。
このため、演算回路30は、ある制御データの読出し又は書込み状態に関係なく、他の制御データの読出し又は書込みを実行可能であり、制御データに対するアクセスを高速化できる。
以下に、本実施の形態に係る制御装置14による制御プログラム及び制御データの読出し動作について説明する。
本実施の形態において、複数の制御プログラムメモリ191〜19nがバッファ211〜21nを介して制御プログラム実行回路18に接続されている。バッファ211〜21nは、後述するように、制御プログラムメモリ制御回路31から出力されるアドレスをラッチし、制御プログラムメモリ制御回路31から出力されたコマンドにしたがって、制御プログラムメモリに読出しコマンドを出力可能であり、任意の制御プログラムメモリを、他の制御プログラムメモリの動作とは無関係にアクセス可能としている。
各制御プログラムメモリ191〜19nは,制御プログラムメモリ制御回路31により、順次起動される。
図3は、コンパイラ24による制御ソースプログラム23のコンパイル結果の一例を示す図である。なお、この図3では、制御ソースプログラム23がSFC(Sequential Function Chart)プログラムの場合を例示している。
なお、図3では、制御装置14が4つの制御プログラムメモリ191〜194を具備する場合(4バンクメモリの場合)を例として説明を行う。
コンパイラ24は、制御ソースプログラム23をコンパイルし、連続して実行される処理命令(プログラムコード)が連続で読出し可能となる制御プログラム25を作成する。
そして、コンパイラ24は、連続して実行されるプログラムコードが異なるメモリ単位から連続で読出し可能となるように、制御プログラム25を複数の制御プログラムメモリ191〜194に記憶する。
本実施の形態では、制御プログラム25のあるプログラムコードが制御プログラムメモリ191に記録された場合、次に実行されるプログラムコードは、アクセス時間を短縮可能とするために、他の制御プログラムメモリ192〜194のいずれかに記録される。
なお、コンパイラ24は、制御ソースプログラム23に分岐条件がある場合であっても、分岐部分や並列実行部分が一続きになるようにコンパイルし、分岐して不実行となる部分を演算回路30で不実行とするように制御することによって分岐動作を不要にし、分岐部分での制御プログラムの読出しアドレスが不連続とならないように、複数の制御プログラムメモリ191〜194に制御プログラム25を記憶する。
すなわち、コンパイラ24は、アドレス順にプログラムコードを実行するのみで、制御ソースプログラム23で記述された処理が実現されるように、コンパイルを行う。
制御ソースプログラム23は、命令Sa1〜Sa4を具備する。この命令Sa1〜Sa4を具備する制御ソースプログラム23において、命令Sa1の実行後には、処理が分岐し、命令Sa2又は命令Sa3が実行される。命令Sa2と命令Sa3のうちのいずれか一方の実行後には、処理が合流し、命令Sa4が実行される。
さらに、制御ソースプログラム23は、各命令Sa2〜Sa4の前段に配置され、「後段の命令Sa2〜Sa4の実行権限の有無を判断し、実行権限を有すると判断された場合に、後段の命令Sa2〜Sa4を、実行権限を有する状態とする」判断命令Ta1〜Ta4を具備する。すなわち、判断命令Ta1〜Ta4は、後段の各命令Sa2〜Sa4について、実行権限判断と実行権限付与とを行う。判断命令Ta1〜Ta4は、この各判断命令Ta1〜Ta4の前段の命令で得られた実行結果を、この各判断命令Ta1〜Ta4の前段の命令と後段の命令との間で中継するか否か判断する役割を持つ場合もある。
先の命令Sa1と後の命令Sa2,Sa3との間に分岐がある場合、分岐部と分岐後の命令Sa2,Sa3との間に、判断命令Ta1,Ta2が配置される。
先の命令Sa2,Sa3と後の命令Sa4との間に合流がある場合、合流前の命令Sa2,Sa3と合流部との間に、判断命令Ta3,Ta4が配置される。
制御ソースプログラム23は、コンパイラ24により、命令Sa1→判断命令Ta1→命令Sa2→判断命令Ta3→判断命令Ta2→命令Sa3→判断命令Ta4→命令Sa4という順序の制御プログラム25に変換される。
この制御プログラム25では、処理に分岐と合流がある場合に、分岐から合流までの一方の経路に含まれる判断命令及び命令が連続し、その後に、分岐から合流までの他方の経路に含まれる判断命令及び命令が連続する状態で、各判断命令及び命令が並べられる。
制御プログラム25において、命令Sa1〜Sa4は、コンパイラ24により、それぞれ命令「STEP」に変換される。より具体的に説明すると、命令Sa1は、命令(命令語:オペランド)「STEP: Sa1」に変換される。命令Sa2は、命令「STEP:Sa2」に変換される。命令Sa3は、命令「STEP:Sa3」に変換される。命令Sa4は、命令「STEP:Sa4」に変換される。
また、制御プログラム25において、判断命令Ta1〜Ta4は、コンパイラ24により、それぞれ後段の命令に実行権限があるか否かを判断する命令「CONDITION」、及び後段の命令に実行権限がある場合に実行権限を付与する命令「TRANSITION」に変換される。より具体的に説明すると、判断命令Ta1は、命令(命令語:オペランド)「CONDITION:Ta1」及び「TRANSITION:Sa1,Sa2」に変換される。判断命令Ta3は、命令「CONDITION:Ta3」及び命令「TRANSITION:Sa2,Sa4」に変換される。判断命令Ta2は、命令「CONDITION:Ta2」及び命令「TRANSITION:Sa1,Sa3」に変換される。判断命令Ta4は、命令「CONDITION:Ta4」及び命令「TRANSITION:Sa3,Sa4」に変換される。
命令(命令語:オペランド)には、実行順序にそってアドレス「1」〜「12」が付される。
本実施の形態において、順序が隣り合う命令は、先回りで読出し可能とするために、異なる制御プログラムメモリ191〜194に記憶される。このように、順序が隣り合う命令が異なる制御プログラムメモリ191〜194に記憶されることにより、順序が隣り合う命令の読出しを並列的に行うことができ、パイプライン制御の乱れの発生を防止できる。
ここで、本実施の形態における制御プログラム25の実行状態について詳細に説明する。
図4は、本実施の形態に係る命令の実行状態の例を示す図である。なお、図4では、制御装置14が4つの制御プログラムメモリ191〜194を具備する場合(4バンクメモリの場合)を例として説明を行う。
本実施の形態においては、各命令Sa2〜Sa4及び判断命令Ta1〜Ta4は、命令読出し段階、オペランド読出し段階、命令実行段階、書込み段階の4つの段階から構成される場合を例に説明するが、この段階は2以上であればよい。また、本実施の形態においては、分岐後の命令Sa2が実行されず、分岐後の命令Sa3が実行される場合を例に説明するが、逆に分岐後の命令Sa2が実行され分岐後の命令Sa3が実行されない場合も同様である。
本実施の形態では、制御プログラム実行回路18は、パイプライン制御にしたがって、命令Sa1→判断命令Ta1→命令Sa2→判断命令Ta3→判断命令Ta2→命令Sa3→判断命令Ta4→命令Sa4の順序で制御プログラム25を制御プログラムメモリ191〜194から読出す。
コンパイル後の命令単位で説明すると、制御プログラム実行回路18は、パイプライン制御にしたがって、アドレス番号「1」の命令Sa1の「STEP」→アドレス番号「2」の命令Ta1の「CONDITION」→アドレス番号「3」の命令Ta1の「TRANSITION」→アドレス番号「4」の命令Sa2の「STEP」→アドレス番号「5」の命令Ta3の「CONDITION」→アドレス番号「6」の命令Ta3の「TRANSITION」→アドレス番号「7」の命令Ta2の「CONDITION」→アドレス番号「8」の命令Ta2の「TRANSITION」→アドレス番号「9」の命令Sa3の「STEP」→アドレス番号「10」の命令Ta4の「CONDITION」→アドレス番号「11」の命令Ta4の「TRANSITION」→アドレス番号「12」の命令Sa4の「STEP」、の順序で制御プログラム25を制御プログラムメモリ191〜194から読出す。
以下に、制御プログラム25に対するパイプライン制御について説明する。
まず、アドレス番号「1」の「STEP: Sa1」に対する命令読出し段階、オペランド読出し段階、命令実行段階、書込み段階が実行される。
アドレス番号「1」の「STEP: Sa1」に対する命令読出し段階の実行後、アドレス番号「2」の「CONDITION: Ta1」に対する命令読出し段階、オペランド読出し段階、命令実行段階、書込み段階が実行される。
このアドレス番号「2」の「CONDITION: Ta1」に対する命令実行段階では、アドレス番号「1」の「STEP: Sa1」に対する命令実行段階で得られた実行結果に基づいて、「命令Sa2が実行権限を有する」か判断される。この例では、アドレス番号「2」の「CONDITION: Ta1」に対する命令実行段階において「命令Sa2が実行権限を有していない」と判断されたとする。
アドレス番号「2」の「CONDITION: Ta1」に対する命令読出し段階の実行後、アドレス番号「3」の「TRANSITION: Sa1,Sa2」に対する命令読出し段階、オペランド読出し段階が実行される。しかしながら、先のアドレス番号「2」の「CONDITION:Ta1」に対する命令実行段階において「命令Sa2が実行権限を有していない」と判断されたため、アドレス番号「3」の「TRANSITION: Sa1,Sa2」に対する命令実行段階及び書込み段階は実行されない。この結果、アドレス番号「4」の「STEP:Sa2」は、実行権限を有していない状態となる。
アドレス番号「3」の「TRANSITION: Sa1,Sa2」に対する命令読出し段階の実行後、アドレス番号「4」の「STEP:Sa2」に対する命令読出し段階、オペランド読出し段階が実行される。しかしながら、アドレス番号「4」の「STEP:Sa2」は実行権限を有していない状態であるため、アドレス番号「4」の「STEP:Sa2」に対する命令実行段階及び書込み段階は実行されない。
アドレス番号「4」の「STEP:Sa2」に対する命令読出し段階の実行後、アドレス番号「5」の「CONDITION:Ta3」に対する命令読出し段階、オペランド読出し段階、命令実行段階、書込み段階が実行される。このアドレス番号「5」の「CONDITION:Ta3」に対する命令実行段階では、先のアドレス番号「4」の「STEP:Sa2」に対する命令実行段階が実行されていないため、次のアドレス番号「6」の「TRANSITION:Sa2,Sa4」に対する命令実行段階、書込み段階を実行しないとの判断がなされる。
アドレス番号「5」の「CONDITION:Ta3」に対する命令読出し段階の実行後、アドレス番号「6」の「TRANSITION: Sa2,Sa4」に対する命令読出し段階、オペランド読出し段階が実行される。しかしながら、アドレス番号「6」の「TRANSITION: Sa2,Sa4」に対する命令実行段階、書込み段階は、先のアドレス番号「5」の「CONDITION: Ta3」での判断にしたがって実行されない。
アドレス番号「6」の「TRANSITION: Sa2,Sa4」に対する命令読出し段階の実行後、アドレス番号「7」の「CONDITION: Ta2」に対する命令読出し段階、オペランド読出し段階、命令実行段階、書込み段階が実行される。
このアドレス番号「7」の「CONDITION: Ta2」に対する命令実行段階では、アドレス番号「1」の「STEP:Sa1」に対する命令実行段階で得られた実行結果に基づいて、「命令Sa3が実行権限を有する」か否か判断される。この例では、アドレス番号「7」の「CONDITION:Ta2」に対する命令実行段階において「命令Sa3が実行権限を有する」と判断される。
アドレス番号「7」の「CONDITION:Ta2」に対する命令読出し段階の実行後、アドレス番号「8」の「TRANSITION:Sa1,Sa3」に対する命令読出し段階、オペランド読出し段階、命令実行段階、書込み段階が実行される。ここで、先のアドレス番号「7」の「CONDITION:Ta2」に対する命令実行段階において「命令Sa3が実行権限を有する」と判断されたため、アドレス番号「8」の「TRANSITION:Sa1,Sa3」に対する命令実行段階により命令Sa3が実行権限を有する状態とされる。
アドレス番号「8」の「TRANSITION:Sa1,Sa3」に対する命令読出し段階の実行後、アドレス番号「9」の「STEP:Sa3」に対する命令読出し段階、オペランド読出し段階が実行され、さらに命令Sa3は実行権限を有する状態であるため、アドレス番号「9」の「STEP:Sa3」に対する命令実行段階、書込み段階が実行される。なお、アドレス番号「9」の「STEP:Sa3」に対する命令実行段階は、アドレス番号「1」の「STEP:Sa1」に対する命令実行段階で得られた結果を用いて処理を行う。
アドレス番号「9」の「STEP:Sa3」に対する命令読出し段階の実行後、アドレス番号「10」の「CONDITION:Ta4」に対する命令読出し段階、オペランド読出し段階、命令実行段階、書込み段階が実行される。
このアドレス番号「10」の「CONDITION:Ta4」に対する命令実行段階では、アドレス番号「9」の「STEP:Sa3」に対する命令実行段階で得られた実行結果に基づいて、「命令Sa4が実行権限を有する」か否か判断される。この例では、アドレス番号「10」の「CONDITION: Ta4」に対する命令実行段階において「命令Sa4が実行権限を有する」と判断される。
アドレス番号「10」の「CONDITION: Ta4」に対する命令読出し段階の実行後、アドレス番号「11」の「TRANSITION: Sa3,Sa4」に対する命令読出し段階、オペランド読出し段階、命令実行段階、書込み段階が実行され、先のアドレス番号「10」の「CONDITION:Ta4」に対する命令実行段階において「命令Sa4が実行権限を有する」と判断されたため、アドレス番号「11」の「TRANSITION:Sa3,Sa4」に対する命令実行段階により命令Sa4が実行権限を有する状態とされる。
アドレス番号「11」の「TRANSITION: Sa3,Sa4」に対する命令読出し段階の実行後、アドレス番号「12」の「STEP:Sa4」に対する命令読出し段階、オペランド読出し段階が実行され、さらに命令Sa4は実行権限を有する状態であるため、アドレス番号「12」の「STEP:Sa4」に対する命令実行段階、書込み段階が実行される。なお、アドレス番号「12」の「STEP:Sa4」に対する命令実行段階は、アドレス番号「9」の「STEP:Sa3」に対する命令実行段階で得られた結果を用いて処理を行う。
本実施の形態では、この図4のように処理が行われることにより、パイプライン制御が継続し、命令Sa1〜Sa4及び判断命令Ta1〜Ta4に基づく各命令間で、処理段階を重複させつつ処理を実行させることができ、効率的かつ迅速な処理を行うことができる。
一方、処理に分岐がある場合の従来の制御プログラムの実行状態を、図5に示す。
従来において処理に分岐がある場合、制御プログラムには、条件成立時ジャンプ命令語「JON」や無条件ジャンプ命令語「JUMP」が含まれる。この条件成立時ジャンプ命令語「JON」や無条件ジャンプ命令語「JUMP」がある部分では、次の命令語を先回りして読出し・実行することが困難となり、パイプライン制御に乱れが生じ、パイプライン制御の継続が困難となる。分岐が増えるほど条件成立時ジャンプ命令語「JON」や無条件ジャンプ命令語「JUMP」が増加し、制御プログラムの効率的かつ迅速な処理が困難となる。
図6は、制御データの割り付け結果の第1例を示す図である。なお、この図6では、制御ソースプログラムがLD(Ladder Diagram)言語で記述されており、制御ソースプログラムで使用されている制御データ変数A1〜A6,B7,A8〜A10,B11についての制御データが制御データメモリ51に記録される場合を例示している。
コンパイラ24は、制御プログラムメモリ51のいずれかの所定範囲の領域に、制御プログラム内のあるプログラム構成単位MS01で使用される制御データを割り付ける。
制御データ変数A1〜A6,A8〜A10についての制御データは入力データである。制御データ変数B7,B11についての制御データは出力データである。
コンパイラ24は、プログラム構成単位MS01に使用される制御データの割り付けられる記憶領域がキャッシュメモリ34の記憶容量以下となるように、制御データの割り付けを行う。そして、プログラム構成単位MS01の実行中においては、このプログラム構成単位MS01に使用される制御データをキャッシュメモリ34に記憶する。
この図6の記憶方式を採用することで、プログラム構成単位MS01の実行中においては、キャッシュメモリ34に対する制御データのヒット率を向上させることができ、この結果、プログラム構成単位MS01の実行速度を高速化できる。
図7は、コンパイラ24による制御データの割り付け結果の第2例を示す図である。なお、この図7では、制御ソースプログラム52がLD言語で記述されており、制御ソースプログラム52で使用されている制御データ変数A1〜A6,B7,A8〜A10,B11についての制御データが制御データメモリ201,202に記録される場合を例示している。すなわち、この図7では、制御装置14が2つの制御データメモリ201,202を具備する場合(2バンクメモリの場合)を例として図示している。
制御ソースプログラム52を実行した場合の制御データ変数の出現順は、A1〜A6,B7,A8〜A10,B11であるとする。制御データ変数A1〜A6,B7,A8〜A10,B11は、出現順に、異なる制御データメモリ201,202に割り付けられる。この図7のように、出現順が隣り合う制御データがそれぞれ交互に制御データメモリ201,202に記憶されることにより、制御データメモリ201,202からの制御データの読出し又は書込みを効率よく行うことができる。また、一方の制御データメモリの内容を使用中において、他方の制御データメモリの内容をキャッシュメモリ34に予め記憶しておくことで、先回りで次に使用される制御データをキャッシュメモリ34に記憶させることができ、キャッシュヒット率を向上させることができる。
このように、コンパイラ24は、連続して使用される制御データを、他の制御データの読出し又は書込み状態に関係なく独立に読出し及び書込み可能となるように、複数の制御データメモリ201〜20mに制御データを記憶する。
本実施の形態では、第1の制御データが制御データメモリ201に記録されている場合、次に使用される第2の制御データは、第1の制御データと独立に読出し又は書込み可能とするために、他の制御プログラムメモリ202〜20mのいずれかに記録される。
なお、上記図6の制御データの記憶方式と上記図7の制御データの記憶方式とは組み合わせることが可能である。例えば、上記図6のプログラム構成単位MS01で使用される制御データ変数A1〜A6,B7,A8〜A10,B11について、隣り合う使用順序の制御データ変数を異なる制御データメモリ201,202に記憶する。すなわち、制御データメモリ201に、制御データ変数A1,A3,A5,B7,A9,B11を記憶し、制御データメモリ202に、制御データ変数A2,A4,A6,A8,A10を記憶する。加えて、制御データ変数A1,A3,A5,B7,A9,B11を制御データメモリ201の近い所定の領域に記憶し、制御データ変数A2,A4,A6,A8,A10を制御データメモリ202の近い所定の領域に記憶する。そして、キャッシュメモリ34は、プログラム構成単位MS01で使用される制御データ変数A1〜A6,B7,A8〜A10,B11をまとめて記憶可能とする。
これにより、プログラム構成単位MS01の実行中におけるキャッシュヒット率を向上させることができる。また、制御データメモリ201からの制御データ変数A1,A3,A5,B7,A9,B11の読出しと並列的に、制御データメモリ202からの制御データ変数A2,A4,A6,A8,A10の読出しを行うことができる。さらに、キャッシュメモリ34と制御データメモリ201との間での制御データ変数A1,A3,A5,B7,A9,B11の読出し又は書込みと、キャッシュメモリ34と制御データメモリ202との間での制御データ変数A2,A4,A6,A8,A10の読出し又は書込みとを、並列的に実行させることができる。したがって、プログラム構成単位MS01の実行速度を高速化できる。
ここで、本実施の形態における制御データのアクセス状態について詳細に説明する。
図8は、本実施の形態における制御データに対するアクセス状態の例を示す図である。なお、図8では、制御装置14が2つの制御データメモリ201,202を具備する場合(2バンクメモリの場合)を例として示す。
制御プログラム25の各命令はパイプライン制御により実行され、本実施の形態において、制御プログラム25の各命令は、順序通りに実行される。制御プログラム25において、実行順序の隣り合う命令によってアクセスされる制御データは、異なる制御データメモリ(バンクメモリ)201,202に格納される。これにより、実行順序の隣り合う命令によってアクセスされる制御データを先回りでアクセスすることが可能となる。
上述したように、本実施の形態では、パイプライン制御の乱れの発生を防止できる。本実施の形態では、実行順序の隣り合う命令によってアクセスされる制御データが同じ制御データメモリに記憶されていないため、制御データの並列的なアクセスを高レベルに維持できる。
図9は、制御プログラムメモリ191〜194と、制御データメモリ201,202と、キャッシュメモリ34との動作タイミングの一例を示すタイミングチャートである。
この図9では、制御装置14が4つの制御プログラムメモリ191〜194を具備し、2つの制御データメモリ201,202を具備する場合を例として図示しているが、他の制御プログラムメモリ193〜19n及び他の制御データメモリ203〜20mを具備する場合についても同様である。
また、この図9は、上記図1及び図2に示す制御装置14において、上記図6のプログラム構成単位MS01又は図7の制御ソースプログラム52における制御データ変数A8の読出し処理が実行されるまでのタイミングチャートを示しており、その後の処理については省略している。
制御プログラムメモリ191〜194に対する読出しコマンドは、立ち下がりでアドレス有効、立ち上がりで動作完了を表す。
制御プログラムメモリ制御回路31は、この図9に示すように、複数の制御プログラムメモリ191〜194に対して順番にアドレスと読出しコマンドを与え、アドレス順にプログラムコード(命令)を読出すことができる。制御プログラムメモリ191〜194毎にバッファ211〜214が備えられているため、制御プログラムメモリ191〜194からのプログラムコードの読出しは、それぞれ独立して実行可能である。
すなわち、制御プログラムメモリ制御回路31は、制御プログラムメモリ191〜194のうちのいずれかからプログラムコードを読出し中であっても、他の制御プログラムメモリから他のプログラムコードを読出すことが可能である。
上述したように、制御ソースプログラム52は、アドレス順に実行可能な状態にコンパイルされる。コンパイラ24は、上記図3で説明したように、分岐実行や並列実行を単純な順実行プログラムとしてコンパイルすることで、制御プログラムメモリ191〜194をアクセスする際のアドレスが不連続にならないように制御プログラムを作成する。
これにより、制御ソースプログラム52に分岐条件がある場合であっても、制御プログラムメモリ制御回路31によってアドレス順にプログラムコードが読出されることにより、演算回路30は、条件分岐を含む処理を構成する各命令をパイプライン制御にしたがって実現可能である。
しかしながら,割り込みプログラムの実行やタスクの切替などにより、読出すプログラムコードのアドレスを連続させることが困難な場合には、制御プログラムメモリ制御回路31は、所望の制御プログラムメモリにアドレスと読出しコマンドを出力し、プログラムコードが出力されるまで演算回路30の実行を待たせるように制御を行う。
制御データメモリ201,202からの制御データの読出し及び書込みも、制御プログラムメモリ191,192からのプログラムコードの読出しと独立して実行される。
この図9において、制御データ変数A1,A3,A5,B7,A9,B11は、制御データメモリ201の所定の領域内に記憶されている。制御データ変数A2,A4,A6,A8,A10は、制御データメモリ202の所定の領域内に記憶されている。
制御データ変数A1,A3,A5,B7,A9,B11のいずれかに対してキャッシュミスが発生した場合、制御データメモリ201における所定領域内(キャッシュメモリ34に記憶可能な領域内)の制御データ変数A1,A3,A5,B7,A9,B11がキャッシュメモリ34に記憶される。その後、制御データ変数A1,A3,A5,B7,A9,B11に対する読出し又は書込みは、キャッシュメモリ34に対して行われる。
同様に、制御データ変数A2,A4,A6,A8,A10のいずれかに対してキャッシュミスが発生した場合、制御データメモリ202における所定領域内の制御データ変数A2,A4,A6,A8,A10がキャッシュメモリ34に記憶される。その後、制御データ変数A2,A4,A6,A8,A10に対する読出し又は書込みは、キャッシュメモリ34に対して行われる。
例えば、制御データ変数B7のように、キャッシュメモリ34に書込まれた制御データは、キャッシュメモリ34から制御データメモリ201に書込まれる(ライドバック)。
図9のパイプラインステージにおいては、各命令に対して、読出し又は書込み対象の制御データ変数が記載されている。
この図9のパイプラインステージにおいて、キャッシュミスなどにより処理に必要な制御データ変数の読出し又は書き込みが行われていない場合には、命令の実行が待ち状態となる。
なお、制御データ読出しコマンドと制御データ書込みコマンドとは、同様のタイミングで発生する。制御データ書込みコマンドにおいても、制御データ読出しコマンドと同様に、キャッシュミスが発生した場合に、その後制御プログラムの読出しが待たされる場合がある。
以下に、本実施の形態に係る制御装置14による制御データの読出し及び書込み動作の第1例について説明する。
演算回路30は、読出し対象の制御データのアドレスと読出しコマンドをキャッシュメモリ制御回路33に出力する。
キャッシュメモリ制御回路33は、読出し対象の制御データがキャッシュメモリ34に記憶されているか否か判断する。
読出し対象の制御データがキャッシュメモリ34に記憶されている場合、キャッシュメモリ制御回路33は、キャッシュメモリ34から読出し対象の制御データを読出し、演算回路30に出力する。
一方、読出し対象の制御データがキャッシュメモリ34に記憶されていない場合、キャッシュメモリ制御回路33は、読出し対象の制御データのアドレスと読出しコマンドを制御データメモリ制御回路35に出力する。
制御データメモリ制御回路35は、読出し対象の制御データのアドレスと読出しコマンドを入力すると、読出し対象の制御データの属するプログラム構成単位で使用される制御データの集合を読出し、キャッシュメモリ34に記憶するとともに、読出し対象の制御データを演算回路30に出力する。
このように、本実施の形態では、演算回路30と制御データメモリ201〜20mの間にキャッシュメモリ34が装備されている。キャッシュメモリ34は、制御データのアクセスに対してだけ有効である。
キャッシュメモリ34を有効に使用するために、上述したように、コンパイラ24は、制御データを制御データメモリ201〜20mに割り付ける際に、あるプログラム構成単位に含まれる制御データを所定範囲内の領域に割り付ける。これにより、あるプログラム構成単位のプログラムコード実行中においては、全制御データアクセス回数に対するキャッシュメモリ34からの読出し回数の割合(ヒット率)が高くなり、高速に制御データ変数を読出すことができる。
また、制御データ変数の中には直接出力変数という変数がある。直接出力変数に書込まれた制御データは、制御装置14の一括入出力(スキャン入出力)とは別に、その書込み時点で入出力モジュール1に出力される。
図10は、直接出力変数の出力動作の一例を示すブロック図である。
書込み対象の制御データ変数が直接出力変数の場合、演算回路30は、キャッシュメモリ制御回路34にその情報を出力し、キャッシュメモリ34に制御データを書込むだけでなく、実際の入出力モジュール1に同時に書込みを行う(ライトスルー動作)。これにより、書込み対象の制御データがI/Oインタフェース27経由で直接入出力モジュール1に出力される。
以下に、本実施の形態に係る制御装置14による制御データの読出し及び書込み動作の第2例について説明する。
制御装置14は、複数の制御データメモリ201〜20mを制御可能とするために、制御データ用のバッファ221〜22m及び制御データメモリ制御回路35を具備する。
各制御データメモリ201〜20mには、専用のバッファ221〜22mが備えられている。このため、制御データメモリ制御回路35は、読出しコマンド又は書込みコマンドに基づいて、独立して読出し及び書込み動作を実行可能である。
図11は、制御データメモリ201,202の動作タイミングの一例を示すタイミングチャートである。なお、他の制御データメモリ203〜20mを具備する場合についても同様である。
上述したように、複数の制御データメモリを効果的に使用するために、制御データ変数についての制御データは、アクセス順を考慮して制御データメモリ201,202に割り付けられる。
例えば、上記図6に示すようなLD言語で記述された制御プログラムでは,制御データのアクセス順がオペランドの変数名の数字で表される。本実施の形態では、連続してアクセスされる制御データが、アクセス順にしたがって異なる制御データメモリ201,202に割り付けられる。
さらに、コイルコマンドのように書込みが発生する場合には、書込みと並行して制御データメモリからの読出しが可能となるように、次のコマンドで使用する制御データメモリを、コイルコマンドが使用する制御データメモリと異なる他の制御データメモリとする。コイルコマンドではない書込みが発生する他のコマンドについても同様とする。
これにより、例えば、制御データメモリ201に制御データを書込んでいる間に、制御データメモリ202から制御データを読出すことが可能である。
以上説明した本実施の形態においては、連続して実行されるプログラムコードがアドレスの順序にしたがってシーケンシャルに読出され、実行される。
また、制御プログラムメモリ191〜19n及び制御プログラムメモリ制御回路31を用いて、次に実行されるプログラムコードを先回りで読出しておくことができる。
これにより、制御プログラム25を高速に実行することができる。特に、制御装置14がプログラマブルコントローラの場合、この制御装置14に使用される制御プログラム25はアドレス順に実行されることが多いため、本実施の形態に係る制御装置14の動作は有効である。
本実施の形態では、制御プログラムメモリ191〜19nが演算回路30に要求されるメモリアクセス速度よりも遅い場合であっても、制御プログラム25を高速に実行することができる。
また、本実施の形態においては、あるプログラム構成単位に属する制御データがまとめてキャッシュメモリ34に記憶されるため、キャッシュメモリ34のヒット率を向上させることができ、制御データを高速にアクセスすることができ、制御プログラム25を高速に実行することができる。また、直接出力にも対応可能である。
また、本実施の形態では、連続して使用される制御データが異なる制御データメモリ201〜20mに記憶されるため、制御データの読出し又は書込みが同じ制御データメモリから連続して実行されることが防止され、また制御データの書込みと読出しとを並行して実行できる。
これにより、制御データを高速にアクセスすることができ、制御プログラム25を高速に実行することができる。
(第2の実施の形態)
本実施の形態では、上記第1の実施の形態に係る制御装置の変形例について説明する。
本実施の形態では、上記第1の実施の形態に係る制御装置の変形例について説明する。
図12は、本実施の形態に係る制御装置で用いられる制御プログラムの一例を示す図である。
図13は、本実施の形態に係る制御装置の一例を示すブロック図である。なお、この図13において、上記図1,2と同一の部分については省略している。
本実施の形態では、制御対象3に対する制御の信頼性を向上させるために、複数の制御装置381〜38kに同一の制御プログラム37を並列に実行させ、その結果を比較して正しい結果を選択する。制御プログラム37の各プログラム構成単位の先頭には、同期命令が配置される。制御装置381〜38kは、同様の構成とする。
制御装置381は、上記制御装置14の制御プログラム実行回路18及び制御プログラム25に代えて、制御プログラム実行回路39及び制御プログラム37が用いられる。制御装置381は、他の制御装置382〜38kと同期をとるために、AND演算部40を具備するとともに、制御プログラム実行回路39内にAND演算部41を具備する。
なお、AND演算部40,41は統合してもよい。
制御プログラム実行回路39に具備される演算回路42は、同期命令を実行すると、同期要求を他の制御装置382〜38kに出力する。同期要求の出力には、例えば通信インタフェース28が用いられる。
制御装置381は、他の制御装置382〜38kの同期要求を入力する。AND演算部40とAND演算部41とは、自制御装置381が出力される同期要求と他の制御装置382〜38kから入力した各同期要求との論理積信号を演算回路42に入力する。
演算回路42は、論理積信号に基づいて、各制御装置381〜38kの同期が完了したか否か(論理積信号が有効状態か否か)を検出する。
各制御装置381〜38kの同期が完了していない場合、演算回路42は、同期完了まで次のプログラムコードの実行を待機する。
一方、同期が完了した場合、演算回路42は、次のプログラムコードを実行する。
以上説明した本実施の形態においては、制御プログラム37の各プログラム構成単位の先頭に配置された同期命令により、制御装置381〜38kの並列実行が容易に実現される。
(第3の実施の形態)
本実施の形態では、上記第1の実施の形態における通信インタフェース28について詳細に説明する。なお、上記第2の実施の形態に係る制御装置381〜38kの通信インタフェース28についても同様である。
本実施の形態では、上記第1の実施の形態における通信インタフェース28について詳細に説明する。なお、上記第2の実施の形態に係る制御装置381〜38kの通信インタフェース28についても同様である。
図14は、通信インタフェース28の詳細構成の一例を示すブロック図である。
また、図15は、伝送命令を含む制御プログラムの一例を示す図である。
通信インタフェース28は、制御プログラム実行回路14に内蔵される。
演算回路30は、通信インタフェース28に具備されている伝送ステータスレジスタ28a、伝送データバッファ28bを直接アクセス可能である。
演算回路30は、上記図15に示すようなネットワークを介してデータを送信する伝送命令43を実行した場合、指定されたデータを通信インタフェース28の伝送データバッファ28bに書込むと同時に、コマンド・ステータスレジスタ28aに伝送の種別、伝送起動指示を書込む。
また、演算回路30は、ネットワークを介してデータを受信する伝送命令を実行した場合、制御プログラム実行回路14外部の通信インタフェースをアクセスするのではなく、制御プログラム実行回路14内部の通信インタフェース28をアクセスし、伝送ステータスの確認、データの受信を行う。
このように、通信インタフェース28を制御プログラム実行回路14内部に実装し、その内部のバッファ28b,レジスタ28aを演算回路30から直接アクセス可能とすることで、通信インタフェース28のステータス、伝送データを高速に処理し、伝送命令を高速に実行することができる。
(第4の実施の形態)
本実施の形態では、各種バッファにラッチ機能(保存機能)を具備する制御装置について説明する。
本実施の形態では、各種バッファにラッチ機能(保存機能)を具備する制御装置について説明する。
図16は、本実施の形態に係るバッファの一例を示す回路図である。この図16では、1ビット分のラッチ及びバッファの構成の例を示している。
バッファ44は、例えば、データバッファ、アドレスバッファ、コマンドバッファとして用いることができる。
バッファ44は、上記各実施の形態で説明したバッファ211〜21n,221〜22m,32,36、通信インタフェース28内の伝送データバッファ28b、I/Oインタフェース27内のバッファ、システムバスインタフェース29内のバッファなど、制御装置14,381〜38k内の各種バッファに対して適用される。
なお、本実施の形態において、バッファ44は、データをラッチするデータバッファとして用いられる場合について説明するが、アドレスをラッチするアドレスバッファ、コマンドをラッチするコマンドバッファとして用いられる場合についても同様である。
バッファ44は、AND回路45、シフトレジスタ46、ラッチデータ読出し用バッファ47、AND回路48、OR回路49、スイッチ回路50を具備する。
選択信号は、新データの出力が選択される場合にHigh信号として入力され、ラッチデータの出力が選択される場合にLow信号として入力される。すなわち、この選択信号は、ラッチデータの出力命令として機能する。
AND回路45は、新データと選択信号とを入力し、選択信号がHigh信号の場合に新データを出力する。
シフトレジスタ46は、入力した新データをラッチデータとしてラッチデータ読出し用バッファ47に保存する。
一方、シフトレジスタ46は、ラッチ信号を入力する度に、ラッチデータ読出し用バッファ47から各ラッチデータを出力する。なお、ラッチデータの出力順序は、保存された順序又は逆の順序のいずれでもよい。
AND回路48は、シフトレジスタ46からのラッチデータと選択信号の反転結果を入力し、Low信号である選択信号が反転されてHigh信号となった場合に、ラッチデータを出力する。
OR回路49は、AND回路45からの新データとAND回路48からのラッチデータのいずれか一方を出力する。
スイッチ回路50は、AND回路45から新データとラッチデータのいずれか一方を入力する。また、スイッチ回路50は、バッファイネーブル信号を入力すると、新データとラッチデータのいずれか一方を出力する。
本実施の形態においては、選択信号により新データの出力かラッチデータの出力かを選択可能である。バッファ44が両方向のバッファとして用いられる場合には、上記図16と同様の回路が逆方向に並列接続される。
本実施の形態では、制御プログラム25,37の実行において何らかのエラーが発生した場合、アクセスを停止し、バッファ44にラッチされているデータを選択して読出す。
このように、アドレス及びデータバッファにデータを時系列的にラッチする機能を具備することにより、エラー発生時にアクセスしたデータを確認することができ、エラー発生の原因を解析することができ、制御プログラム実行時に発生したエラーの原因究明が容易になる。
なお、上記各実施の形態において、各構成要素は、同様の動作を実現可能であれば自由に変形可能であり、配置を変更させてもよく、自由に組み合わせることが可能であり、分割することも可能である。
1…入出力モジュール、1a,7a,381〜38k…制御データ、2…制御装置、3,14…制御対象、4,18,39…制御プログラム実行回路、5,191〜19n…制御プログラムメモリ、5a…制御プログラム、6…I/Oインタフェース、7,201〜20m…制御データメモリ、8…モニタ装置、9…通信インタフェース、10,15…プログラム実行回路、11,16…プログラムメモリ、12,17…データメモリ、13…バス、211〜21n,221〜22m,32,36,44…バッファ、23…制御ソースプログラム、24…コンパイラ、25,37…制御プログラム、26…システムバス、27…I/Oインタフェース、28…通信インタフェース、29…システムバスインタフェース、30,42…演算回路、31…制御プログラムメモリ制御回路、33…キャッシュメモリ制御回路、34…キャッシュメモリ、35…制御データメモリ制御回路、
Claims (9)
- 連続して実行される処理命令に対して連続するアドレスが付された制御プログラムを、前記連続して実行される処理命令が並列に読出し可能なように分散して記憶する複数の制御プログラムメモリと、
前記複数の制御プログラムメモリに対して前記アドレスを制御プログラム順に出力し、実行対象の処理命令以降の処理命令を先回りで読出すプログラムメモリ制御手段と、
前記プログラムメモリ制御手段によって読出された処理命令を実行する演算手段と
を具備する制御装置。 - 請求項1記載の制御装置において、
前記制御プログラムメモリから読出された内容を保存し、出力命令に応じて前記内容を出力する手段をさらに具備したことを特徴とする制御装置。 - 請求項1又は請求項2記載の制御装置において、
前記処理命令は、複数の命令と、この複数の命令のそれぞれに対応しておりこの複数の命令のそれぞれについて実行するか否か判断する複数の判断命令とを含み、
前記制御プログラムは、処理に分岐と合流がある場合、分岐から合流までの一方の経路に含まれる判断命令及び命令が連続し、その後に、分岐から合流までの他方の経路に含まれる判断命令及び命令が連続する状態で、前記複数の判断命令及び前記複数の命令の実行順序が定められており、
前記制御プログラムにおける実行順序の隣り合う処理命令は、それぞれが異なる制御プログラムメモリに記憶される
ことを特徴とする制御装置。 - 請求項3記載の制御装置において、
前記連続して実行される処理命令によってアクセスされる複数の制御データを記憶する複数の制御データメモリをさらに具備し、
実行順序の隣り合う処理命令によってアクセスされる制御データは、それぞれが異なる制御データメモリに記憶される
ことを特徴とする制御装置。 - 請求項1乃至請求項3のいずれか1項に記載の制御装置において、
前記制御プログラムの一部で使用される制御データを記憶するキャッシュメモリと、
前記制御プログラムの一部で使用される制御データを前記キャッシュメモリの容量以内で記憶する制御データメモリと、
前記演算手段によって制御データ読出しが発生した場合に、前記キャッシュメモリに読出し対象の制御データが記憶されているか否か判断し、前記キャッシュメモリに前記読出し対象の制御データが記憶されている場合に前記キャッシュメモリから前記読出し対象の制御データを読出すキャッシュメモリ制御手段と
をさらに具備することを特徴とする制御装置。 - 請求項4又は請求項5記載の制御装置において、
前記制御データメモリから読出された内容を保存し、出力命令に応じて前記内容を出力する手段をさらに具備したことを特徴とする制御装置。 - 請求項1乃至請求項6のいずれか1項に記載の制御装置において、
前記複数の制御プログラムメモリは、前記制御プログラムを、プログラム命令語長が複数語長に拡張されたような状態で、並列に読出し又は書込み可能なように分散して記憶し、
前記制御プログラムの一部で使用される制御データについて前記制御データメモリに対する読出し又は書込み処理を実行するデータメモリ制御手段をさらに具備する
ことを特徴とする制御装置。 - 請求項1乃至請求項7のいずれか1項に記載の制御装置において、
前記制御プログラムは、実行中に同期させたい部分に同期命令を含み、
前記制御プログラムを実行する他の装置が前記同期命令を実行したか否かを検出する手段をさらに具備し、
前記演算手段は、前記他の装置で前記同期命令が実行されている場合に、前記制御プログラムの処理を進め、他の制御装置と同期して前記制御プログラムを実行する
ことを特徴とする制御装置。 - 請求項1乃至請求項8のいずれか1項に記載の制御装置において、
前記演算手段と通信インタフェースとを含む回路を具備することを特徴とする制御装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005108797A JP2005332370A (ja) | 2004-04-19 | 2005-04-05 | 制御装置 |
CN200510065958XA CN1690899B (zh) | 2004-04-19 | 2005-04-19 | 控制装置 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004123330 | 2004-04-19 | ||
JP2005108797A JP2005332370A (ja) | 2004-04-19 | 2005-04-05 | 制御装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005332370A true JP2005332370A (ja) | 2005-12-02 |
Family
ID=35486962
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005108797A Pending JP2005332370A (ja) | 2004-04-19 | 2005-04-05 | 制御装置 |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP2005332370A (ja) |
CN (1) | CN1690899B (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008040995A (ja) * | 2006-08-10 | 2008-02-21 | Meidensha Corp | プログラマブルコントローラ |
JP2011253267A (ja) * | 2010-06-01 | 2011-12-15 | Fuji Electric Co Ltd | プログラマブルコントローラ、プログラマブルコントローラのプログラム実行方法 |
CN101717143B (zh) * | 2009-11-24 | 2012-02-01 | 河海大学 | 一种絮凝剂自动加药控制方法 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6602684B2 (ja) * | 2016-02-15 | 2019-11-06 | 株式会社東芝 | 制御装置および制御方法 |
CN105843589B (zh) * | 2016-03-18 | 2018-05-08 | 同济大学 | 一种应用于vliw类型处理器的存储器装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3120033B2 (ja) * | 1996-03-19 | 2000-12-25 | 株式会社東芝 | 分散メモリ型マルチプロセッサシステム及び故障回復方法 |
US5907863A (en) * | 1996-08-16 | 1999-05-25 | Unisys Corporation | Memory control unit using preloaded values to generate optimal timing of memory control sequences between different memory segments |
TW405090B (en) * | 1997-04-04 | 2000-09-11 | Ibm | Predictive cache loading by program address discontinuity history |
EP0935199B1 (en) * | 1998-02-04 | 2011-05-04 | Panasonic Corporation | Memory control unit and memory control method and medium containing program for realizing the same |
US6643755B2 (en) * | 2001-02-20 | 2003-11-04 | Koninklijke Philips Electronics N.V. | Cyclically sequential memory prefetch |
-
2005
- 2005-04-05 JP JP2005108797A patent/JP2005332370A/ja active Pending
- 2005-04-19 CN CN200510065958XA patent/CN1690899B/zh active Active
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008040995A (ja) * | 2006-08-10 | 2008-02-21 | Meidensha Corp | プログラマブルコントローラ |
CN101717143B (zh) * | 2009-11-24 | 2012-02-01 | 河海大学 | 一种絮凝剂自动加药控制方法 |
JP2011253267A (ja) * | 2010-06-01 | 2011-12-15 | Fuji Electric Co Ltd | プログラマブルコントローラ、プログラマブルコントローラのプログラム実行方法 |
Also Published As
Publication number | Publication date |
---|---|
CN1690899A (zh) | 2005-11-02 |
CN1690899B (zh) | 2012-07-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100276475B1 (ko) | 마이크로 컴퓨터 시스템 | |
JP3561915B2 (ja) | スーパースカラ型プロセサにおいて命令処理を制御するためタグを割り当てるシステム及び方法 | |
KR102269504B1 (ko) | 자동차용 제어 장치 | |
US20060130012A1 (en) | Program conversion device, program conversion and execution device, program conversion method, and program conversion and execution method | |
EP1618466B1 (en) | Data processing in which concurrently executed processes communicate via a fifo buffer | |
KR20160109992A (ko) | 커널 퓨징, 리사이징 및 인터리빙 자동 연산 방법 | |
US8595726B2 (en) | Apparatus and method for parallel processing | |
KR100792320B1 (ko) | 주프로세서용 명령의 프리페치에 보조프로세서를 이용하는방법 및 장치 | |
JP2005332370A (ja) | 制御装置 | |
JP4471947B2 (ja) | データ処理装置及びデータ処理方法 | |
KR100502455B1 (ko) | 프로그래머블 컨트롤러 | |
CN101243394B (zh) | 利用辅助存储器来访问存储器的方法和系统 | |
US10606602B2 (en) | Electronic apparatus, processor and control method including a compiler scheduling instructions to reduce unused input ports | |
JP2002278774A (ja) | プロセッサ内の機能単位の制御時に命令語を生成する方法と装置 | |
JP2000029508A (ja) | プログラマブルコントローラ | |
JP2002268876A (ja) | パイプライン処理方法、及び情報処理装置 | |
JP3743155B2 (ja) | パイプライン制御型計算機 | |
JP3224068B2 (ja) | プログラマブルコントローラ | |
KR20180038875A (ko) | 데이터 입출력 유닛, 전자 장치 및 그 제어 방법들 | |
JP2006502490A (ja) | アドレス範囲に依存した命令並行処理を行うデータ処理装置 | |
JPH0319570B2 (ja) | ||
JPH0454531A (ja) | プログラム読出し回路 | |
JPH09138781A (ja) | 並列プロセスを含むプログラムの修正装置、修正方法、 および修正プログラムを記憶する記憶媒体 | |
JP2000056991A (ja) | マルチタスク機能を備えたマイクロコンピュ―タプログラマブルコントロ―ラ及びその制御方法 | |
JP2001350632A (ja) | 命令配置方法、および、コンパイラを記憶した記憶媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080306 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20091029 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20091104 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20100302 |