JP2015141648A - プログラマブルコントローラ - Google Patents
プログラマブルコントローラ Download PDFInfo
- Publication number
- JP2015141648A JP2015141648A JP2014015163A JP2014015163A JP2015141648A JP 2015141648 A JP2015141648 A JP 2015141648A JP 2014015163 A JP2014015163 A JP 2014015163A JP 2014015163 A JP2014015163 A JP 2014015163A JP 2015141648 A JP2015141648 A JP 2015141648A
- Authority
- JP
- Japan
- Prior art keywords
- data
- memory
- external interface
- cpu
- programmable controller
- 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
- 230000015654 memory Effects 0.000 claims abstract description 135
- 238000000034 method Methods 0.000 claims description 35
- 230000036316 preload Effects 0.000 claims description 30
- 238000012545 processing Methods 0.000 claims description 26
- 238000012546 transfer Methods 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 10
- 230000005540 biological transmission Effects 0.000 description 8
- 230000006870 function Effects 0.000 description 6
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
Images
Landscapes
- Programmable Controllers (AREA)
Abstract
【課題】I/Oリフレッシュ時のキャッシュ無効化による影響の少ないプログラマブルコントローラを提供する。【解決手段】プログラマブルコントローラ1は、キャッシュメモリ19を共有する第1CPU11および第2CPU12と、外部のI/Oユニット25とのデータ送受を行う外部インターフェース17とを備える。外部インターフェース17は、I/Oユニット25からの入力データと、データメモリ20における当該入力データの格納先のアドレスのデータとを比較して、両者が異なる場合にのみ、当該入力データをデータメモリ20に格納してデータを更新するとともに、更新されたデータに対応するキャッシュメモリ19のデータを無効化する。【選択図】図1
Description
本発明は、プログラマブルコントローラに関し、特に、入出力(I/O)データを他の制御装置との間で送受する技術に関する。
FA(ファクトリーオートメーション)で用いられるプログラマブルコントローラは、入力機器(スイッチやセンサなど)のON/OFF情報に基づき、ラダー言語などで書かれた制御プログラム(ユーザプログラム)に沿って論理演算を行い、その演算結果に応じて、制御対象である出力機器(リレーやバルブ、アクチュエータなど)にON/OFF情報を出力することにより、出力機器を制御する。
例えば、下記の特許文献1に、ON/OFF情報の通信を行う制御装置の一例が開示されている。特許文献1の制御装置は、制御対象との通信を高速に実行するために、制御系と待機系の両方にプログラムを実行する機能を持たせている。
特許文献1の制御装置は、制御対象とのデータ送受(入出力リフレッシュ;以下「I/Oリフレッシュ」ともいう)を行うI/Oインターフェースと、制御プログラムを実行する制御プログラム実行回路とを有している。I/Oインターフェースは、制御対象及びコモンメモリとのデータ送受を行い、制御プログラム実行回路は、コモンメモリに格納されたデータに基づき、制御プログラムを沿った演算を行い、その演算結果をコモンメモリに格納する。I/Oリフレッシュと制御プログラム演算とが同時に実行されることで、制御の高速化が図られている。
キャッシュを搭載するコントローラは、I/Oリフレッシュを行うときに、入力データに対応するキャッシュを無効化する。そのため、I/Oリフレッシュと制御プログラムの演算とが並列実行されるコントローラでは、制御プログラム演算において入力データをリード(読み出し)する命令を実行するときにキャッシュミスが発生して、制御プログラム実行時間が長くなる問題が生じる。
本発明は以上のような課題を解決するためになされたものであり、I/Oリフレッシュ時のキャッシュ無効化による影響の少ないプログラマブルコントローラを提供することを目的とする。
本発明の第1の局面に係るプログラマブルコントローラは、外部とのデータ送受を行う外部インターフェースと、前記外部インターフェースが外部から取得した入力データに基づき、制御プログラムに沿って演算実行を行い、前記演算実行の結果である出力データを前記外部インターフェースを介して外部へ出力するCPUと、前記入力データ、前記出力データおよび前記CPUが前記演算実行に使用するデータを格納するデータメモリと、を備えるプログラマブルコントローラであって、前記CPUは、キャッシュメモリを備え、前記外部インターフェースは、前記入力データと、前記データメモリにおける前記入力データの格納先のアドレスのデータとを比較して、両者が異なる場合にのみ、前記入力データを前記データメモリに格納してデータを更新するとともに更新されたデータに対応する前記キャッシュメモリのデータを無効化する。
本発明の第2の局面に係るプログラマブルコントローラは、外部とのデータ送受を行う外部インターフェースと、前記外部インターフェースが外部から取得した入力データに基づき、制御プログラムに沿って演算実行を行い、前記演算実行の結果である出力データを前記外部インターフェースを介して外部へ出力するCPUと、前記入力データ、前記出力データおよび前記CPUが前記演算実行に使用するデータを格納するデータメモリと、を備えるプログラマブルコントローラであって、前記CPUは、キャッシュメモリを備え、前記演算実行の前または前記演算実行中の待ち処理期間に、前記データメモリ内のデータの一部を前記キャッシュメモリへ転送するプリロード処理を行う。
本発明に係るプログラマブルコントローラによれば、データメモリの更新に伴うキャッシュメモリのデータの無効化によって、CPUによる演算実行が受ける影響を小さくすることができる。それにより、演算実行の時間を短縮できるため、制御周期の短い制御を実行することが可能となる。
<実施の形態1>
図1は、実施の形態1に係るプログラマブルコントローラ1の構成を示すブロック図である。プログラマブルコントローラ1は、第1CPU11及び第2CPU12、第1CPUプログラムメモリ13、第2CPUプログラムメモリ14及び外部インターフェース(外部IF)17を備えている。
図1は、実施の形態1に係るプログラマブルコントローラ1の構成を示すブロック図である。プログラマブルコントローラ1は、第1CPU11及び第2CPU12、第1CPUプログラムメモリ13、第2CPUプログラムメモリ14及び外部インターフェース(外部IF)17を備えている。
第1CPU11及び第2CPU12は、共通のキャッシュメモリ19を有している。第1CPU11のユーザプログラムで規定される命令は、第1CPUプログラムメモリ13に格納される。第2CPU12のユーザプログラムで規定される命令は、第2CPUプログラムメモリ14に格納される。また、外部インターフェース17は、データメモリ20及び比較部26を有している。
第1CPU11及び第2CPU12、第1CPUプログラムメモリ13、第2CPUプログラムメモリ14及び外部インターフェース17の間は、伝送路15によって接続されている。また、第1CPU11及び第2CPU12と外部インターフェース17との間は、スヌープバス18によっても接続されている。スヌープバス18は、第1CPU11及び第2CPU12のキャッシュメモリ19と外部インターフェース17のデータメモリ20とのキャッシュコヒーレンシを保つためのスヌープ処理を行うための専用バスである。また、外部インターフェース17は、伝送路24を介して外部のI/Oユニット25に接続される。
第1CPU11及び第2CPU12は、外部インターフェース17のデータメモリ20内のデータにアクセスしながら、それぞれのユーザプログラムで規定される命令に従って演算実行(命令実行)し、その演算実行の結果(演算結果)をデータメモリ20に書き込む。つまり、第1CPU11及び第2CPU12は、演算実行に伴って、データメモリ20に対するデータ読み出し及び書き込みを行う。また、第1CPU11及び第2CPU12は、データメモリ20にアクセスする度にキャッシュメモリ19にもデータを書込む。それにより、次に同じデータが必要となったときにキャッシュヒットとなり、演算実行の高速化を図ることができる。
外部インターフェース17は、外部のI/Oユニット25とのデータ送受(I/Oリフレッシュ)の処理、すなわち、I/Oユニット25から入力データをリードする処理(入力リフレッシュ)、ならびに、第1CPU11及び第2CPU12による演算結果のデータをI/Oユニット25へ出力する処理(出力リフレッシュ)を行う。外部インターフェース17のデータメモリ20には、外部インターフェース17が入出力したデータが格納される。なお、外部インターフェース17はDMA(ダイレクトメモリアクセス)機能を有しており、I/Oユニット25の間のデータ送受はDMA機能を用いて行うことが可能である。
外部インターフェース17は、データメモリ20のデータの書き換え(更新)を行うとき、第1CPU11及び第2CPU12のキャッシュメモリ19とのキャッシュコヒーレンシを保つために、スヌープバス18を用いて、書き換えられたデータに対応するキャッシュ(キャッシュメモリ19内のデータ)を無効化する機能を有している。また、外部インターフェース17が有する比較部26は、データメモリ20内のデータと、I/Oユニット25から取得したデータとを比較する機能を有している。
図2は、実施の形態1に係るプログラマブルコントローラ1の動作を説明するための図である。
まず、外部インターフェース17は、I/Oユニット25から入力リフレッシュ(IN)を実行する。すなわち、I/Oユニット25から入力データを取得し、データメモリ20に格納する処理を行う。
ただし、本実施の形態では、I/Oユニット25からの入力データをデータメモリ20に格納する前に、比較部26が、I/Oユニット25から取得した入力データと、データメモリ20における当該入力データの格納先のアドレスのデータとを比較する。両者が異なる場合、外部インターフェース17は、当該入力データをデータメモリ20に格納する処理を通常どおり行う。両者が一致した場合、外部インターフェース17は、当該入力データをデータメモリ20に格納する処理は行わない。
外部インターフェース17は、データメモリ20に入力データを格納する処理を行った場合、当該入力データをデータメモリ20に格納したアドレスを、スヌープバス18を通してキャッシュメモリ19へ送信し、それに一致するキャッシュメモリ19のアドレスのデータを無効化する。このキャッシュの無効化処理は、外部インターフェース17がデータメモリ20に入力データを格納する処理をしなかった場合は行われない。
プログラマブルコントローラ1における演算実行時間は短いため、I/Oユニット25からリードした入力データにおいて、演算実行毎に更新されるデータは少ない確率が高い。上記のようにI/Oユニット25から取得した入力データとデータメモリ20内のデータが同じ場合は、キャッシュの無効化処理を行わないようにすることで、キャッシュメモリ19に有効なデータが多く残ることになり、この後の演算実行の処理におけるキャッシュヒットの確率が上がるため、演算実行の処理時間を短くできる。
その後、第1CPU11及び第2CPU12は、第1CPUプログラムメモリ13及び第2CPUプログラムメモリ14に格納されているラダー言語などで書かれた制御プログラム(ユーザプログラム)に従って演算処理を行う(演算実行)。第1CPU11及び第2CPU12は、この演算処理にデータメモリ20内のデータを使用する。
第1CPU11及び第2CPU12は、演算実行の終了後、その演算結果に基づいて、I/Oユニット25を通して出力機器(リレーやバルブ、アクチュエータなど)にON/OFF情報を出力する出力リフレッシュ処理の実行を、外部インターフェース17に指示する。指示を受けた外部インターフェース17は、出力リフレッシュ(OUT)を実行する。
なお、図2においては、I/Oリフレッシュが行われる間、第1CPU11及び第2CPU12は何も行わない待ち処理の状態としたが、その期間を、例えば、Ethernet(登録商標)やUSB等を介してプログラマブルコントローラ1に接続したPCがデータメモリ20内のデータをモニタする処理やデバッグ処理といったサービス処理にあててもよい。
以上のように、実施の形態1に係るプログラマブルコントローラ1によれば、I/Oリフレッシュ時に無効化されるキャッシュを減らすことができ、制御プログラムの実行時間が短縮されるため、制御周期の短い制御を実行することが可能となる。
<実施の形態2>
実施の形態2では、外部インターフェース17に設けた2つのデータメモリ(第1及び第2データメモリ)を用いることによって、全体の演算実行時間を短く技術を提案する。実施の形態2の技術では、実施の形態1に比べて多くのメモリを必要とするが、実施の形態1よりも高速に演算実行を行うことが可能となる。
実施の形態2では、外部インターフェース17に設けた2つのデータメモリ(第1及び第2データメモリ)を用いることによって、全体の演算実行時間を短く技術を提案する。実施の形態2の技術では、実施の形態1に比べて多くのメモリを必要とするが、実施の形態1よりも高速に演算実行を行うことが可能となる。
図3は、実施の形態2に係るプログラマブルコントローラ1の構成を示すブロック図である。この図において、図1に示したものと同様の機能を有する要素には同一符号を付してある。実施の形態2のプログラマブルコントローラ1においては、外部インターフェース17内に、第1CPU11及び第2CPU12が演算で用いるデータを格納するデータメモリとして、第1データメモリ21及び第2データメモリ22の2つが設けられている。
第1CPU11及び第2CPU12は、外部インターフェース17の第1及び第2データメモリ21,22内のデータにアクセスしながら、それぞれのユーザプログラムで規定される命令に従って演算実行(命令実行)し、その演算実行の結果(演算結果)を第1及び第2データメモリ21,22に書き込む。つまり、第1CPU11及び第2CPU12は、演算実行に伴って、第1及び第2データメモリ21,22に対するデータ読み出し及び書き込みを行う。また、第1CPU11及び第2CPU12は、第1及び第2データメモリ21,22にアクセスする度にキャッシュメモリ19にもデータを書込む。それにより、次に同じデータが必要となったときにキャッシュヒットとなり、演算実行の高速化を図ることができる。
外部インターフェース17は、外部のI/Oユニット25とのデータ送受(I/Oリフレッシュ)の処理、すなわち、I/Oユニット25から入力データをリードする処理(入力リフレッシュ)、ならびに、第1CPU11及び第2CPU12による演算結果のデータをI/Oユニット25へ出力する処理(出力リフレッシュ)を行う。外部インターフェース17の第1及び第2データメモリ21,22には、外部インターフェース17が入出力したデータが格納される。
外部インターフェース17は、第1及び第2データメモリ21,22のデータの書き換え(更新)を行うとき、第1CPU11及び第2CPU12のキャッシュメモリ19とのキャッシュコヒーレンシを保つために、スヌープバス18を用いて、書き換えられたデータに対応するキャッシュ(キャッシュメモリ19内のデータ)を無効化する機能を有している。
図4は、実施の形態2に係るプログラマブルコントローラ1の動作を説明するための図である。
まず、外部インターフェース17は、I/Oユニット25から入力リフレッシュ(IN)を実行する。ここでは、外部インターフェース17は、I/Oユニット25から入力データを取得し、第1データメモリ21に格納する。
入力データが第1データメモリ21に格納されたことを受けて、第1CPU11及び第2CPU12は、第1データメモリ21からプリロード(先読み)を行い、入力データをキャッシュメモリ19に転送する。その後、第1CPU11及び第2CPU12は、演算実行の処理を行う。この演算実行の処理には、第1データメモリ21が使用される。
なお、図4には、演算実行の前に全ての入力データをプリロード処理を行うシーケンスを示しているが、演算実行の期間に行われる実際の演算処理では、第1CPU11と第2CPU12とで互いに同期処理を行う必要があり、図5に示すように同期待ちの期間(待ち処理期間)が発生する。プリロード処理は、この同期待ちの期間に行われてもよく、その方が制御プログラムの処理にかかる全体の時間を短縮できることが多い。
図6,図7を用いてプリロード処理について説明する。図6は、ユーザがラダー言語などで書いた制御プログラム(ユーザプログラム)の一例である。また、図7には図6の制御プログラムからコンパイラが自動的に生成するプリロード処理プログラムを示している。
図6の制御プログラムにおいて、Xデバイスが、入力リフレッシュによって書き換わるデバイス(入力データ)であるとする。Xデバイスは、演算実行開始時の入力リフレッシュにより、データが書き換えられる。その際、キャッシュコヒーレンシを保つため、外部インターフェース17は、スヌープバス18を介して、書き換えられたデータのアドレスをキャッシュメモリ19へ送信し、それと一致するキャッシュメモリ19のアドレスのデータを無効化する。
ここで、コンパイラが図6の制御プログラムから図7に示すプリロード処理プログラムを作成する方法について述べる。まず、コンパイラは、制御プログラムから「FOR〜NEXT」構文を表す命令と、入力データXをリードする命令を抽出する。次に、インデックス修飾デバイスZで修飾された入力データXをリードする命令を抽出する。その後、入力データXを使用したZ値を変更する命令を抽出する。
このように各命令が抽出されると、コンパイラは、図7に示すように、使用しているインデックス修飾デバイスZを別のメモリに退避する命令を、プリロード処理プログラムの先頭に配置する。またプリロード処理プログラムの作成においては、抽出した入力データXをリードする命令は、入力データXをプリロード処理する命令に変えて配置される。
また、FOR〜NEXT構文を表す命令に関して、制御プログラムのFOR〜NEXT間に、インデックス修飾デバイスZで修飾された入力データXをリードする命令がある場合は、FOR〜NEXT命令と、インデックス修飾デバイスZで修飾された入力データXをプリロードする命令と、入力データXを使用したZ値を変更する命令とが、制御プログラムと同じ順番に並べられてプリロード処理プログラムに配置される。
コンパイラは、抽出した各命令を配置し終えると、プリロード処理プログラムの最後に、退避したインデックス修飾デバイスZを復帰させる命令を配置する。以上により、プリロード処理プログラムが作成される。
図4に戻り、プリロード処理の後、第1CPU11及び第2CPU12は制御プログラムに沿って演算実行を行う。第1CPU11及び第2CPU12が演算実行している間、外部インターフェース17は入力リフレッシュ(IN)を行い、入力データを第2データメモリ22に格納する。このとき、第1データメモリ21は、第1CPU11及び第2CPU12の演算実行に使用されているため、第1データメモリ21の書き換えは行わない。このように、外部インターフェース17による入力リフレッシュは、第1CPU11および第2CPU12による演算実行に並列して実行される。
演算実行の終了後、第1CPU11及び第2CPU12は、入力リフレッシュが完了していることを確認して、プリロード処理と、外部インターフェース17に対する出力リフレッシュ処理の指示とを実行する。今回のプリロード処理は、第2データメモリ22に対して行う。
プリロード処理の実行後、第1CPU11及び第2CPU12は、2度目の演算実行を行う。また、それに並列して、外部インターフェース17が、出力リフレッシュ(OUT)を実行する。このように、外部インターフェース17による出力リフレッシュも、第1CPU11および第2CPU12による演算実行に並列して実行される。
2度目の演算実行では、基本的には第1データメモリ21が使用されるが、入力データのリードと、次の出力リフレッシュにおける出力データの格納は、第2データメモリ22を使用して行われる。次の出力リフレッシュでの出力データを第2データメモリ22に格納する理由は、演算実行の処理で外部インターフェース17が第1データメモリ21を使用している可能性があるためである。
2度目の演算実行の間、外部インターフェース17は入力リフレッシュを行い、今度は入力データを第1データメモリ21に格納する。このとき、第2データメモリ22は、第1CPU11及び第2CPU12の演算実行に使用されているため、第2データメモリ22の書き変えは行わない。
2度目の演算実行の終了後、第1CPU11及び第2CPU12は、出力リフレッシュ及び入力リフレッシュが完了していることを確認して、外部インターフェース17に対して、出力リフレッシュの実行を指示する。その後、第1CPU11及び第2CPU12は、プリロード処理を実行する。今度のプリロード処理は、第1データメモリ21に対して行う。このように、I/Oリフレッシュの処理では、演算実行の度に、第1データメモリ21と第2データメモリ22とを切り替えて使用される。
以上のように、実施の形態2に係るプログラマブルコントローラ1によれば、第1及び第2データメモリ21,22に対するプリロード処理によって、入力データをキャッシュメモリ19に転送するため、演算実行中のキャッシュミスが低減される。さらに、I/Oリフレッシュと演算実行の並列処理が可能となることから、制御プログラムの実行時間を短くすることができ、制御周期の短い制御を実行することが可能となる。
<実施の形態3>
実施の形態2において、制御プログラムが入力データを多用するものである場合、生成されるプリロード処理プログラムの実行時間が長くなり、かえって制御周期が長くなることが考えられる。そこで、実施の形態3では、実行時間が制御プログラムに依存しないプリロード処理プログラムを作成する技術を提案する。
実施の形態2において、制御プログラムが入力データを多用するものである場合、生成されるプリロード処理プログラムの実行時間が長くなり、かえって制御周期が長くなることが考えられる。そこで、実施の形態3では、実行時間が制御プログラムに依存しないプリロード処理プログラムを作成する技術を提案する。
図8は、実施の形態3に係るプログラマブルコントローラ1の構成を示すブロック図である。実施の形態2(図3)の構成とは、外部インターフェース17に比較部26が設けられている点で異なっている。
比較部26は、入力リフレッシュの実行時に、実施の形態1と同様に、I/Oユニット25から取得した入力データと、第1及び第2データメモリ21,22における当該入力データの格納先のアドレスのデータとを比較する。両者が異なる場合、外部インターフェース17は、当該入力データを第1及び第2データメモリ21,22に格納する処理を行う。両者が一致した場合、外部インターフェース17は、当該入力データを第1及び第2データメモリ21,22に格納する処理は行わない。
外部インターフェース17は、第1及び第2データメモリ21,22に入力データを格納する処理を行った場合、当該入力データを第1及び第2データメモリ21,22に格納したアドレスを、スヌープバス18を通してキャッシュメモリ19へ送信し、それに一致するキャッシュメモリ19のアドレスのデータを無効化する。実施の形態3では、さらにそのとき、外部インターフェース17がキャッシュを無効化した回数(キャッシュ無効化回数)と、無効化したデータのアドレス(キャッシュ無効化アドレス)を第1及び第2データメモリ21,22に格納する。
実施の形態3に係るプログラマブルコントローラ1の動作は、基本的に実施の形態2(図4)と同様であるが、プリロード処理プログラムが異なる。
実施の形態3のプリロード処理プログラムは、図9に示すように、入力リフレッシュの実行時に外部インターフェース17が第1及び第2データメモリ21,22に格納したキャッシュ無効化アドレスを読み出すプログラムである。このプリロード処理プログラムでは、まず、キャッシュ無効化回数(図9の例では4回)を読み出す。次に、キャッシュ無効化回数分だけキャッシュ無効化アドレスを読み出し、そのキャッシュ無効化アドレスに対応するデータのプリロード処理を実行する。つまり、第1データメモリ21または第1データメモリ21から当該データをプリロードして、キャッシュメモリ19に転送する。
実施の形態3のプリロード処理プログラムの実行時間は、制御プログラム(ユーザープログラム)に依存せず、I/Oユニット25の更新頻度、つまりI/Oユニット25の更新によるキャッシュ無効化の頻度に依存する。
実施の形態3では、実施の形態2と同様の効果が得られる。さらに、実施の形態3のプリロード処理の実行時間は、制御周期ごとのI/Oユニット25の更新頻度に依存し、制御プログラムに依存しない。また、プログラマブルコントローラ1における演算実行時間は短いため、I/Oユニット25からリードした入力データにおいて、演算実行毎に更新されるデータは少ない確率が高いので、プリロード処理も短くなる。
なお、本発明は、その発明の範囲内において、各実施の形態を自由に組み合わせたり、各実施の形態を適宜、変形、省略することが可能である。
1 プログラマブルコントローラ、11 第1CPU、12 第2CPU、13 第1CPUプログラムメモリ、14 第2CPUプログラムメモリ、15 伝送路、17 外部インターフェース、18 スヌープバス、19 キャッシュメモリ、20 データメモリ、21 第1データメモリ、22 第2データメモリ、24 伝送路、25 I/Oユニット、26 比較部。
Claims (9)
- 外部とのデータ送受を行う外部インターフェースと、
前記外部インターフェースが外部から取得した入力データに基づき、制御プログラムに沿って演算実行を行い、前記演算実行の結果である出力データを前記外部インターフェースを介して外部へ出力するCPUと、
前記入力データ、前記出力データおよび前記CPUが前記演算実行に使用するデータを格納するデータメモリと、
を備えるプログラマブルコントローラであって、
前記CPUは、キャッシュメモリを備え、
前記外部インターフェースは、前記入力データと、前記データメモリにおける前記入力データの格納先のアドレスのデータとを比較して、両者が異なる場合にのみ、前記入力データを前記データメモリに格納してデータを更新するとともに更新されたデータに対応する前記キャッシュメモリのデータを無効化する
ことを特徴とするプログラマブルコントローラ。 - 外部とのデータ送受を行う外部インターフェースと、
前記外部インターフェースが外部から取得した入力データに基づき、制御プログラムに沿って演算実行を行い、前記演算実行の結果である出力データを前記外部インターフェースを介して外部へ出力するCPUと、
前記入力データ、前記出力データおよび前記CPUが前記演算実行に使用するデータを格納するデータメモリと、
を備えるプログラマブルコントローラであって、
前記CPUは、キャッシュメモリを備え、前記演算実行の前または前記演算実行中の待ち処理期間に、前記データメモリ内のデータの一部を前記キャッシュメモリへ転送するプリロード処理を行う
ことを特徴とするプログラマブルコントローラ。 - 前記外部インターフェースは、前記演算実行が行われている間に前記入力データを外部から取得して前記データメモリに格納する処理を行う
請求項2に記載のプログラマブルコントローラ。 - 前記外部インターフェースは、前記演算実行が行われている間に前記データメモリに格納されている前記出力データを外部へ出力する処理を行う
請求項2または請求項3に記載のプログラマブルコントローラ。 - 前記データメモリを複数有し、
前記外部インターフェースは、前記複数のデータメモリのうち前記演算実行で使用されていないものに、前記入力データを格納する
請求項2から請求項4のいずれか一項に記載のプログラマブルコントローラ。 - 前記外部インターフェースは、前記データメモリのデータが更新されるときに、更新されたデータに対応する前記キャッシュメモリのデータを無効化する
請求項2から請求項5のいずれか一項に記載のプログラマブルコントローラ。 - 前記外部インターフェースは、前記キャッシュメモリのデータを無効化するときに、無効化したデータのアドレスを前記データメモリに格納し、
前記CPUは、前記プリロード処理において、前記データメモリに格納されている前記無効化されたデータのアドレスに対応する前記データメモリのアドレスのデータを前記キャッシュメモリへ転送する
請求項6に記載のプログラマブルコントローラ。 - 前記外部インターフェースは、前記入力データと、前記データメモリにおける前記入力データの格納先のアドレスのデータとを比較して、両者が異なる場合にのみ、前記入力データを前記データメモリに格納してデータを更新するとともに更新されたデータに対応する前記キャッシュメモリのデータを無効化する
請求項7に記載のプログラマブルコントローラ。 - 前記制御プログラムに基づいて、前記キャッシュに前記入力データを格納するプリロード処理を行うプログラムを作成するコンパイラをさらに備える
請求項2から請求項6のいずれか一項に記載のプログラマブルコントローラ。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014015163A JP2015141648A (ja) | 2014-01-30 | 2014-01-30 | プログラマブルコントローラ |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014015163A JP2015141648A (ja) | 2014-01-30 | 2014-01-30 | プログラマブルコントローラ |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2015141648A true JP2015141648A (ja) | 2015-08-03 |
Family
ID=53771929
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014015163A Pending JP2015141648A (ja) | 2014-01-30 | 2014-01-30 | プログラマブルコントローラ |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2015141648A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017167794A (ja) * | 2016-03-16 | 2017-09-21 | Jfeプラントエンジ株式会社 | Usbデータ通信装置 |
WO2020079720A1 (ja) * | 2018-10-15 | 2020-04-23 | 三菱電機株式会社 | プログラマブルロジックコントローラ、外部機器、方法、及びプログラム |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS60256801A (ja) * | 1984-06-04 | 1985-12-18 | Mitsubishi Electric Corp | 遠隔入出力シ−ケンサ |
JPH10154005A (ja) * | 1996-11-25 | 1998-06-09 | Meidensha Corp | プログラマブルコントローラの入出力制御方式 |
JP2006099431A (ja) * | 2004-09-29 | 2006-04-13 | Toshiba Corp | 制御装置 |
JP2011014043A (ja) * | 2009-07-03 | 2011-01-20 | Fuji Electric Systems Co Ltd | プログラマブルコントローラおよびアプリケーションプログラムの更新方法 |
JP2013073344A (ja) * | 2011-09-27 | 2013-04-22 | Fuji Electric Co Ltd | プログラマブルコントローラ、プログラム作成支援装置、デジタル制御プログラム、およびプログラム作成支援プログラム |
-
2014
- 2014-01-30 JP JP2014015163A patent/JP2015141648A/ja active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS60256801A (ja) * | 1984-06-04 | 1985-12-18 | Mitsubishi Electric Corp | 遠隔入出力シ−ケンサ |
JPH10154005A (ja) * | 1996-11-25 | 1998-06-09 | Meidensha Corp | プログラマブルコントローラの入出力制御方式 |
JP2006099431A (ja) * | 2004-09-29 | 2006-04-13 | Toshiba Corp | 制御装置 |
JP2011014043A (ja) * | 2009-07-03 | 2011-01-20 | Fuji Electric Systems Co Ltd | プログラマブルコントローラおよびアプリケーションプログラムの更新方法 |
JP2013073344A (ja) * | 2011-09-27 | 2013-04-22 | Fuji Electric Co Ltd | プログラマブルコントローラ、プログラム作成支援装置、デジタル制御プログラム、およびプログラム作成支援プログラム |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017167794A (ja) * | 2016-03-16 | 2017-09-21 | Jfeプラントエンジ株式会社 | Usbデータ通信装置 |
WO2020079720A1 (ja) * | 2018-10-15 | 2020-04-23 | 三菱電機株式会社 | プログラマブルロジックコントローラ、外部機器、方法、及びプログラム |
US11467990B2 (en) | 2018-10-15 | 2022-10-11 | Mitsubishi Electric Corporation | Programmable logic controller, external apparatus, method, and recording medium |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11237728B2 (en) | Method for accessing extended memory, device, and system | |
JP6066250B2 (ja) | マルチコア異種システム変換のルックアサイドバッファコヒーレンシ | |
JP5843801B2 (ja) | 情報処理装置およびデバッグ方法 | |
JP5852446B2 (ja) | 並列コンピュータ・システムの性能を改良するための装置、方法及びコンピュータ・プログラム | |
EP3131018B1 (en) | Transaction abort method in a multi-core cpu. | |
US9606923B2 (en) | Information processing device with shared memory, memory order guarantee method using counters fence instructions in relation to cache-oriented requests, and recording medium storing program | |
JP5129023B2 (ja) | キャッシュメモリ装置 | |
ES2357308T3 (es) | Almacenamiento en memoria caché en el procesado de datos. | |
JP2015141648A (ja) | プログラマブルコントローラ | |
CN111078620A (zh) | 具有软件-硬件共同管理的高速缓存系统的多核处理器 | |
US11687460B2 (en) | Network cache injection for coherent GPUs | |
US11126568B2 (en) | Object coherence in distributed shared memory systems | |
US9817672B2 (en) | Information processing apparatus and method for controlling information processing apparatus | |
EP2979192B1 (en) | Implementing coherency with reflective memory | |
JP2017219931A (ja) | 情報処理装置、情報処理方法、およびプログラム | |
US20130262782A1 (en) | Central processing unit, method for controlling central processing unit, and information processing apparatus | |
JPWO2007099614A1 (ja) | システムコントローラおよびキャッシュ制御方法 | |
TWI696076B (zh) | 指令處理方法及儲存控制器 | |
JP6626216B2 (ja) | コントローラ | |
US9652401B2 (en) | Tagged cache for data coherency in multi-domain debug operations | |
US20190286562A1 (en) | Information processing apparatus, cache control apparatus and cache control method | |
CN103810122A (zh) | 用于嵌入式系统的高速缓存器 | |
JP2019533239A (ja) | アトミックセットのデータアクセスを提供するための装置および方法 | |
US20140068179A1 (en) | Processor, information processing apparatus, and control method | |
JPH08123722A (ja) | 情報処理システムにおける記憶制御方法および記憶制御装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20151026 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20160824 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20160830 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20170307 |