JP2010049511A - 共有メモリへのアクセス方式およびマルチcpu構成のプログラマブルコントローラ - Google Patents

共有メモリへのアクセス方式およびマルチcpu構成のプログラマブルコントローラ Download PDF

Info

Publication number
JP2010049511A
JP2010049511A JP2008213494A JP2008213494A JP2010049511A JP 2010049511 A JP2010049511 A JP 2010049511A JP 2008213494 A JP2008213494 A JP 2008213494A JP 2008213494 A JP2008213494 A JP 2008213494A JP 2010049511 A JP2010049511 A JP 2010049511A
Authority
JP
Japan
Prior art keywords
cpu
shared memory
memory
bus
fpga
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
Application number
JP2008213494A
Other languages
English (en)
Inventor
Masahiko Yokoo
雅彦 横尾
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Koyo Electronics Industries Co Ltd
Original Assignee
Koyo Electronics Industries Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Koyo Electronics Industries Co Ltd filed Critical Koyo Electronics Industries Co Ltd
Priority to JP2008213494A priority Critical patent/JP2010049511A/ja
Publication of JP2010049511A publication Critical patent/JP2010049511A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】各CPUの共有メモリへのアクセス経路を内部バスと切り離すことで当該内部バスに接続されている各種メモリの実行を可能とし、各CPUの負荷の高速制御を可能とする。
【解決手段】各CPUそれぞれに内部バスを介してFPGAを接続し、各FPGAそれぞれを外部バスを介してモジュールバスに接続すると共に、FPGAにメモリバスを介して共有メモリを接続し、上記FPGAは、各CPUの共有メモリへのアクセスのためのバス調停と、共有メモリへのデータ書き込みの制御を行うバス調停/書き込み制御ブロックと、上記バス調停/書き込み制御ブロックにより上記共有メモリにいずれか一のCPUがアクセス中のとき他のCPUが上記共有メモリに書き込むデータが書き込まれ、共有メモリへの上記一のCPUがアクセス終了後に上記メモリ回路に書き込んであるデータを上記共有メモリに書き写されるメモリブロックとを、コンフィグレーションされている。
【選択図】図1

Description

本発明は、複数のCPUを備えたプログラマブルコントローラにおいて、各CPUが1つのメモリを共有メモリとして、当該メモリへアクセスする方式ならびにマルチCPUのプログラマブルコントローラに関するものである。
プログラマブルコントローラはシーケンスプログラムを実行してそれに接続された制御機器をシーケンス制御するようになっている。このようなプログラマブルコントローラにおいて、CPUモジュールにはモジュールバスを介して複数の入出力モジュール等の各種モジュールが接続されている。CPUモジュールに内蔵するCPUはシーケンスプログラムの実行により、例えば入出力モジュールに対してデータ送信要求を行い、入出力モジュールはこれに応答してセンサなどの入力デバイスデータをCPUに送信し、CPUはアクチュエータなどの出力デバイスを制御する。
しかしながら、上記プログラマブルコントローラで、1つのCPUにより高速制御化を図るには、CPUを、高速制御が可能であるが価格が高価なCPUに交換することが必要である。そこで、CPUモジュールを複数化し、それぞれのCPUモジュール内のCPUをモジュールバスに接続し、これらCPUに制御を分散する、いわゆるマルチCPU方式化することが考えられる。特許文献1参照。このようなマルチCPU方式構成では、CPUを高速制御可能な高価なものと交換する必要がなくなる。
図4を参照して従来のプログラマブルコントローラにおけるマルチCPU方式を説明すると、CPUモジュール10,20それぞれのCPU11,21をモジュールバス30に共通接続し、モジュールバス30には上記両CPU11,21に共有される共有メモリ40を接続している。モジュールバス30には各種モジュール50を接続している。また、CPUモジュール10のCPU11は内部バスB11でワークメモリ14に接続されている。CPUモジュール20のCPU21は内部バスB21でワークメモリ24に接続されている。
しかしながら、上記マルチCPU方式では、モジュールバス30にCPU11,21を接続し、モジュールバス30に接続した共有メモリ40を各CPU11,21間で共有使用する場合、各CPU11,21間でモジュールバス30使用上からバス調停を行う必要があった。
図5を参照して、CPU11が共有メモリ40をアクセス中の時刻t0−t1は、モジュールバス30はCPU11により占有されているので、CPU21は、共有メモリ40にアクセスすることができないで、ウエイトとなる。一方、CPU11も共有メモリ40にアクセス中であるために、内部バスB11は占有されていて、CPU11はワークメモリ14にアクセスすることができないし、また、CPU11はワークメモリ14を用いたワークができない。CPU21が共有メモリ40をアクセス中の時刻t2−t3は、モジュールバス30はCPU21により占有されているので、CPU11は、共有メモリ40にアクセスすることができないで、ウエイトとなる。一方、CPU21も共有メモリ40にアクセス中であるために、内部バスB21は占有されていて、CPU21はワークメモリ24にアクセスすることができないし、また、CPU21はワークメモリ24を用いたワークができない。このようにしてCPU11,21は互いに割り込みINTにより、バス調停する必要があり、複雑膨大な負荷を制御する場合に上記バス調停を行うと、負荷を高速処理することが困難化する。特に、各CPU11,21間で割り込み処理宣言でバス使用の調停を行う場合、各CPU11,21間で統率をとることが難しく、負荷処理の整然たる分担には不向きである。なお、特許文献には以下のものがある。
特開2006−031426号公報 特開2002−024165号公報
本発明は、各CPUが、共有メモリにアクセス中であっても、このアクセス経路をそれぞれの内部バスとは切り離すことで当該内部バスに接続されている各種メモリの実行を可能として、また、各CPU自体はバス調停を行う必要性をなくすことで、負荷の高速制御を可能とした、マルチCPU構成のプログラマブルコントローラにおける共有メモリへのアクセス方式を提供するものである。
本発明はまた、各CPUのいずれかが共有メモリにアクセス中であっても、他のCPUは別のメモリに共有メモリに対するデータを書き込んでおけば、上記アクセス終了後にその書き込んだデータを共有メモリに書き込み可能にして各CPUがさらに負荷の高速制御を可能とした、マルチCPU構成のプログラマブルコントローラにおける共有メモリへのアクセス方式を提供するものである。
本発明によるマルチCPU構成のプログラマブルコントローラにおいて共有メモリへのアクセス方式は、それぞれが制御プログラムを実行するCPUを内蔵した複数のCPUモジュールを備え、各CPUが少なくとも1つのメモリを共有メモリとするプログラマブルコントローラにおいて、各CPUの該共有メモリへのアクセス方式であって、それぞれのCPUモジュールは、内部のCPUそれぞれに内部バスを介してFPGAを接続し、各FPGAそれぞれを、外部バスを介してモジュールバスに接続すると共に、少なくとも一方のFPGAにメモリバスを介して共有メモリを接続した構成となし、上記FPGAは、その内部に、各CPUの共有メモリへのアクセスのためのバス調停と、共有メモリへのデータ書き込みの制御を行うバス調停/書き込み制御ブロックと、上記バス調停/書き込み制御ブロックにより上記共有メモリにいずれか一のCPUがアクセス中のとき他のCPUが上記共有メモリに書き込むデータが書き込まれると共に、上記共有メモリへの上記一のCPUがアクセス終了後に上記メモリ回路に書き込んであるデータを上記共有メモリに書き写されるメモリブロックと、をコンフィグレーションされていることを特徴とするものである。
上記メモリブロックは、好ましくは、デュアルポートRAMブロック構成になっている、ことである。
本発明によるプログラマブルコントローラは、それぞれが制御プログラムを実行するCPUを内蔵した複数のCPUモジュールを備え、各CPUが少なくとも1つのメモリを共有メモリとするプログラマブルコントローラであって、各CPUが該共有メモリにアクセスする方式が上記本発明のアクセス方式である、ことを特徴とするものである。
本発明によれば、上記FPGA内のバス調停/書き込み制御ブロックにより、各CPUのうちいずれか一のCPUが共有メモリにアクセス中であっても、他のCPUは負荷のデータ処理等ができる一方、各CPUは、共有メモリへのアクセスのためのバス調停を行う必要がなくなるので、バス調停に要していた時間を負荷のデータ処理に使用することができるようになり、各CPUにより負荷の高速制御が可能となる。
そして、本発明においては特に、各CPUのいずれかが共有メモリにアクセス中であっても、上記FPGA内のメモリブロックに他のCPUは共有メモリへの書き込みデータを書き込んでおけば、上記アクセス終了後にその書き込んだデータを共有メモリに書き写しすることが可能であるから、各CPUはさらに負荷の高速制御を行うことが可能となる。
以下、添付した図面を参照して、本発明の実施の形態に係るマルチCPU構成のプログラマブルコントローラにおける共有メモリへのアクセス方式を説明する。
図1は本実施の形態のマルチCPU構成のプログラマブルコントローラの構成を示し、図1において、10,20はCPUモジュールであり、このCPUモジュール10,20は、それぞれ、制御プログラムとしてシーケンスプログラムを実行するCPU11,21を内蔵する。このCPU11,21の内部バスB11,B21にシステムプログラムを格納するシステムメモリ12,22、シーケンスプログラムを格納するプログラムメモリ13,23、CPU11,21の作業等に用いるワークメモリ14,24、フラッシュメモリ等からなるコンフィグレーションデータメモリ15,25が接続されている。
コンフィグレーションデータは、コンフィグレーションすべき回路構成のデータである。そして、この内部バスB11,21には、コンフィグレーションデータがコンフィグレーションされるFPGA16,26が接続されている。
FPGA16,26は、SRAM型のフィールドプログラマブルゲートアレイ(Field Programmable Gate Array)である。FPGA16,26は同構成であり、FPGA26について説明する。FPGA26は、LUT(ルックアップテーブル)とフリップフロップとで構成される基本セルを縦横配列したものであり、LUTを書き換えることにより内部のハードウェアロジックを変更することができるようになっている。こうしたFPGA26は、論理ブロックを記述する回路ブロック情報をこれらに読み込ませることで、内部の論理ブロックと論理ブロック間の結線を自由に構成することで、図2で示すブロックを任意に構成することができる。
すなわち、FPGA26は、図2で示すように、入出力ブロック26aと、バス調停/書き込み制御ブロック26bと、メモリブロックとしてのデュアルポートRAMブロック26cと、ゲートブロック26dと、入出力ブロック26eと、それらブロック間を接続する配線と、を有する論理ブロック構成にコンフィグレーションされている。FPGA26は、コンフィグレーションデータメモリ25に記憶された論理ブロック構成のデータを読み込んで所望の論理ブロック構成にコンフィグレーションされる。そして、FPGA26は外部バスB23を介してモジュールバス30に接続されている。デュアルポートRAMは、内部にページという一定単位の記憶領域を複数持ち、また、ポートを2つ有している。デュアルポートRAMはいずれのポートからもデータの書き込み/読み出しが可能である。書き込みはポインタにより制御され、この制御により、リングバッファを構成する。
バス調停/書き込み制御ブロック26bは、CPU21が共有メモリ27にアクセス中のときに、CPUモジュール10のCPU11から共有メモリ27へのデータ書き込み読み出しのアクセス要求があると、CPU21のアクセスをCPU11のそれよりも優先するか、アクセス先着順とするか、CPU11のアクセスをCPU21のそれよりも優先するかの判断を行う。
この判断により、ゲートブロック26dの開閉を制御して共有メモリ27に対するCPU11,21のアクセスのためのバス調停を行うようになっている。
また、このCPU11が共有メモリ27にアクセス中のときに、CPU21から共有メモリ27へのデータ書き込みのためのアクセス要求があると、バス調停/書き込み制御ブロック26bは、CPU21からのデータをデュアルポートRAMブロック26cに書き込ませる制御を行い、CPU11の共有メモリ27へのアクセスが終了すると、デュアルポートRAMブロック26cに書き込んであるデータをゲートブロック26dを制御して、共有メモリ27に再度、書き込ませる。
このバス調停および書き込み制御を、図2、図3を参照して説明する。図2で点線(B)はCPU11から共有メモリ27へのアクセス経路、点線(A)はCPU21からデュアルポートRAMブロック26cへのデータ書き込み経路、一点鎖線(A)はデュアルポートRAMブロック26cから共有メモリ27へのデータの再書き込み経路を示し、図3でA、Bは上記図2のそれに対応するデータを示す。
図3(a)で示すように、FPGA26は、時刻t0以降でCPU11が共有メモリ27に出た書き込みのアクセスであるときに、図3(b)で示すように、時刻t1でCPU21から共有メモリ27にデータ書き込みのアクセス要求があると、CPU21からの書き込みデータをデュアルポートRAMブロック26cに書き込ませる。そして、時刻t2でCPU11の共有メモリ27へのアクセスが終了すると、FPGA26は、デュアルポートRAMブロック26cに書き込んであるデータをゲートブロック26dを介して共有メモリ27に書き写させる。
上記バス調停においては、各CPU11,21それぞれの内部バスB11,B21はバス調停から切り離されており、各CPU11,21は内部バスB11,B21を使用して制御を実行することができる。そのため、例えば、CPU21は、内部バスB21を用いてワークメモリ24にアクセスしてワークを行って負荷のデータ処理等ができると共に、CPU21は、バス調停を行う必要がなくなるので、バス調停に要していた時間を負荷のデータ処理に使用することができるようになり、負荷の高速制御が可能となる。
そして、上記実施の形態では、CPU11が共有メモリ27にアクセス中であっても、CPU21はデュアルポートRAMブロック26cに共有メモリ27に対するデータを書き込んでおき、CPU11の上記アクセスが終了すると、デュアルポートRAMブロック26cに書き込んだデータを共有メモリ27に書き写しすることが可能であるから、CPU21は、CPU11の共有メモリ27へのアクセス終了を待つことなく負荷の制御を行うことが可能となり、さらに負荷の高速制御を行うことが可能となる。
なお、CPUモジュール10のFPGA16、共有メモリ17も、同様に、バス調停およびデータの書き込み制御を行うことができるようにしてもよい。
なお、図1で示す実施の形態では、共有メモリ17,27をそれぞれのCPUモジュール10,20が内蔵しているが、一方のCPUモジュール10にのみ共有メモリ17を設け、他方のCPUモジュール20の共有メモリ27を設けずに、かつ、その共有メモリ17をCPUモジュール10のFPGA16と、CPUモジュール20のFPGA26とに接続した構成とし、両FPGA16,26がバス調停およびデータの書き込み制御を行うようにしてもよい。この場合、両FPGA16,26の間でバス調停および書き込み制御に関するデータを通信して互いを監視できるようにしてもよい。
図1は本発明の実施形態に係るプログラマブルコントローラの構成を示す図である。 図2はFPGAのコンフィグレーション構成を示す図である。 図3は共有メモリへのアクセスのためのバス調停の説明に供する図である。 図4は従来のプログラマブルコントローラの構成を示す図である。 図5は共有メモリへのアクセスのためのバス調停の説明に供する図である。
符号の説明
10,20 CPUモジュール
30 モジュールバス
50 モジュール
11,21 CPU
12,22 システムメモリ
13,23 プログラムメモリ
14,24 ワークメモリ
15,25 コンフィグレーションデータメモリ
16,26 FPGA
26a 入出力ブロック
26b バス調停/書き込み制御ブロック
26c デュアルポートRAMブロック(メモリブロック)
26d ゲートブロック
26e 入出力ブロック
17,27 共有メモリ
B11,B21 内部バス
B12,B22 メモリバス
B13,B23 外部バス

Claims (3)

  1. それぞれが制御プログラムを実行するCPUを内蔵した複数のCPUモジュールを備え、各CPUが少なくとも1つのメモリを共有メモリとするプログラマブルコントローラにおいて、各CPUの該共有メモリへのアクセス方式であって、
    それぞれのCPUモジュールは、内部のCPUそれぞれに内部バスを介してフィールドプログラマブルゲートアレイ(FPGA)を接続し、各FPGAそれぞれを、外部バスを介してモジュールバスに接続すると共に、少なくとも一方のFPGAにメモリバスを介して共有メモリを接続した構成となし、
    上記FPGAは、その内部に、各CPUの共有メモリへのアクセスのためのバス調停と、共有メモリへのデータ書き込みの制御を行うバス調停/書き込み制御ブロックと、上記バス調停/書き込み制御ブロックにより上記共有メモリにいずれか一のCPUがアクセス中のとき他のCPUが上記共有メモリに書き込むデータが書き込まれると共に、上記共有メモリへの上記いずれか一のCPUがアクセス終了後に上記メモリ回路に書き込んであるデータを上記共有メモリに書き写されるメモリブロックとを、コンフィグレーションされている、マルチCPU構成のプログラマブルコントローラにおける共有メモリへのアクセス方式。
  2. 上記メモリブロックが、デュアルポートRAMブロック構成になっている、請求項1に記載の方式。
  3. それぞれが制御プログラムを実行するCPUを内蔵した複数のCPUモジュールを備え、各CPUが少なくとも1つのメモリを共有メモリとするプログラマブルコントローラであって、各CPUが該共有メモリにアクセスする方式が上記請求項1または2に記載の方式である、プログラマブルコントローラ。
JP2008213494A 2008-08-22 2008-08-22 共有メモリへのアクセス方式およびマルチcpu構成のプログラマブルコントローラ Pending JP2010049511A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008213494A JP2010049511A (ja) 2008-08-22 2008-08-22 共有メモリへのアクセス方式およびマルチcpu構成のプログラマブルコントローラ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008213494A JP2010049511A (ja) 2008-08-22 2008-08-22 共有メモリへのアクセス方式およびマルチcpu構成のプログラマブルコントローラ

Publications (1)

Publication Number Publication Date
JP2010049511A true JP2010049511A (ja) 2010-03-04

Family

ID=42066543

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008213494A Pending JP2010049511A (ja) 2008-08-22 2008-08-22 共有メモリへのアクセス方式およびマルチcpu構成のプログラマブルコントローラ

Country Status (1)

Country Link
JP (1) JP2010049511A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101298459B1 (ko) * 2011-12-15 2013-08-23 두산중공업 주식회사 Fpga 기반 제어기의 버스 구조
CN117130458A (zh) * 2023-02-27 2023-11-28 荣耀终端有限公司 数据处理方法、电子设备及存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101298459B1 (ko) * 2011-12-15 2013-08-23 두산중공업 주식회사 Fpga 기반 제어기의 버스 구조
CN117130458A (zh) * 2023-02-27 2023-11-28 荣耀终端有限公司 数据处理方法、电子设备及存储介质

Similar Documents

Publication Publication Date Title
US7411859B2 (en) Multi-port memory device for buffering between hosts
EP1564646A2 (en) Configurable embedded processor
JP2004110785A (ja) メモリコントローラ
US20080178024A1 (en) Multilayered bus system
US8397005B2 (en) Masked register write method and apparatus
KR20200081045A (ko) 3차원 적층 메모리 장치 및 그 동작 방법
JP2000047974A (ja) バス制御コントローラのバス調停方法、バス制御コントローラ及び電子機器のシステム
JPH01320564A (ja) 並列処理装置
JPH0146946B2 (ja)
JP2010049511A (ja) 共有メモリへのアクセス方式およびマルチcpu構成のプログラマブルコントローラ
JPH08221319A (ja) 半導体記憶装置
US5627968A (en) Data transfer apparatus which allows data to be transferred between data devices without accessing a shared memory
JP6294732B2 (ja) データ転送制御装置及びメモリ内蔵装置
US8244929B2 (en) Data processing apparatus
JP4446968B2 (ja) データ処理装置
CN109271333B (zh) 一种sram控制方法及控制器、控制系统
CN112100098B (zh) Ddr控制系统及ddr存储系统
JP2010049512A (ja) 高速バス転送方式およびマルチcpu構成のプログラマブルコントローラ
JP6432348B2 (ja) 演算装置及び演算方法
JP2010049510A (ja) バス調停方式およびマルチcpu構成のプログラマブルコントローラ
JP2005107873A (ja) 半導体集積回路
JP2008287571A (ja) 共有メモリ切替え回路と切替え方法
US8764874B2 (en) Arrangement, method, integrated circuit and device for routing requests
US20220391336A1 (en) Semiconductor device
JP5000858B2 (ja) データ処理装置