JP2010003042A - マルチcpuシステムおよびプログラマブルコントローラ - Google Patents

マルチcpuシステムおよびプログラマブルコントローラ Download PDF

Info

Publication number
JP2010003042A
JP2010003042A JP2008160098A JP2008160098A JP2010003042A JP 2010003042 A JP2010003042 A JP 2010003042A JP 2008160098 A JP2008160098 A JP 2008160098A JP 2008160098 A JP2008160098 A JP 2008160098A JP 2010003042 A JP2010003042 A JP 2010003042A
Authority
JP
Japan
Prior art keywords
cpu
cache
cpus
shared
data
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
JP2008160098A
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 JP2008160098A priority Critical patent/JP2010003042A/ja
Publication of JP2010003042A publication Critical patent/JP2010003042A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

【課題】複数のCPUで共有メモリを共有して使用する場合に、オーバーヘッドを抑制して、データを高速で処理可能とする。
【解決手段】共有メモリが接続するバスに複数のCPUが共通接続され、各CPUはその内部に一次キャッシュを持たずそれらの外部に各CPUで互いに共有して使用する一次キャッシュを設けてあると共に、さらに、各CPUで互いに共有して使用する二次キャッシュを設けた。
【選択図】図1

Description

本発明は、複数のCPU(プロセッサ)がそれぞれの一次バスを介して二次バスに共通に接続されていると共にその二次バスに上記各CPUにより共有される共有RAMが接続されてなるマルチCPUシステムおよびプログラマブルコントローラを用いて制御対象を制御する制御システムに関するものである。
シーケンスプログラムを実行して制御対象をシーケンス制御する従来のプログラマブルコントローラシステムにおいては、例えば、電源モジュール、CPUモジュール、入出力モジュール、その他のモジュールを、同一のPLCバスに接続して構成されているタイプのものがある。上記CPUモジュールでは、従来から内蔵する単一のCPUにより、各モジュールの制御を行っている。しかしながら、プログラマブルコントローラシステムにおいてその高速制御化を図るには、CPUを高速制御が可能であるが価格が高価となるCPUに交換することが必要である。一方、CPUモジュールに複数のCPUを内蔵させることで、これらCPUに制御を分散する方式もあり、この方式では、CPUを高速制御可能な高価なものと交換する必要がなくなる。もちろん、上記タイプではなく、同一のハウジング内部に上記モジュール機能を備えたタイプのプログラマブルコントローラもある。
上記のようにCPUモジュール内部に複数のCPUを内蔵し、各CPUとメモリとをバスに共通接続すると共に、各CPUがキャッシュとは関係なく、このメモリを共有メモリとしてデータを共有し個別にそのデータにアクセス可能とした場合、共有メモリの動作速度が遅いので、負荷が複雑で膨大化した場合、共有メモリへのアクセスによるオーバーヘッドが問題化するようになる。
なお、上記した先行技術の特許文献1を下記する。
特開2006−031426号公報
本発明は、複数のCPUで共有メモリを共有して使用する場合に、上記オーバーヘッドが起こらず、各CPUがデータを高速で処理可能とすることである。
本発明によるマルチCPUシステムは、共有メモリが接続するバスに複数のCPUが共通接続されてなるマルチCPUシステムにおいて、上記各CPUは一次キャッシュを内蔵せず、それらの外部に各CPUで互いに共有して使用する一次キャッシュを設けてあることを特徴とするものである。
本発明によると、各CPUは、シーケンスプログラム実行において繰り返し用いる命令ロードや必要なデータの読み書きには、データ転送性能が高い一次キャッシュに格納しておき、それのロードやデータの読み書きには、低速な共有メモリにアクセスすることなく、高速な一次キャッシュにアクセスできるようになると共に、当該CPUは他のCPUが一次キャッシュに格納したロードや読み書きデータも利用することができるので、さらに、低速な共有メモリにアクセスする機会を減らせるようになり、各CPUはデータを高速で処理することができるようになり、オーバーヘッドが解消されるようになる。
そして、特に、本発明では、一次キャッシュを各CPUで共有化したから、各CPUのいずれか1つが一次キャッシュにデータをキャッシュすると、他のCPUもそのデータをキャッシュしたのと同等になり、当該他のCPUはそのデータをキャッシュすることが必要でなくなり、一次キャッシュにキャッシュされているそのデータを即座に利用することが可能となり、動作速度が著しく向上することとなる。
本発明のマルチCPUシステムにおいて、好ましい態様は、さらに、各CPUで互いに共有して使用する二次キャッシュを設けた、ことである。
この態様では、すべてのデータを一次キャッシュ、二次キャッシュ、共有メモリといったハードウェア構成のもので各CPUが共有化することができるようになり、ソフトウエアで共有化する場合と比べても、マルチCPUシステム全体の動作速度を著しく向上させることができるようになる。
本発明によるプログラマブルコントローラは、複数のCPUと、上記複数のCPUにより使用される共有メモリと、各CPUと共有メモリとを共通に接続しかつ入出力モジュール等のモジュールが接続されるバスと、を備えたプログラマブルコントローラにおいて、上記各CPUは一次キャッシュを内蔵せず、それらの外部に各CPUで互いに共有して使用する一次キャッシュを設けてある、ことを特徴とするものである。
本発明のプログラマブルコントローラにおいて、好ましい態様は、上記各CPUと一次キャッシュはフィールド・プログラマブル・ゲート・アレイ(FPGA)等のプログラマブル論理回路によって実装されていると共に、FPGA等のプログラマブル論理回路外では各CPUで互いに共有する二次キャッシュを有していることである。
本発明によれば、複数のCPUで共有メモリを共有して使用する場合に、オーバーヘッドを抑制して、データを高速で処理することができる。
以下、添付した図面を参照して、本発明の実施の形態に係るマルチCPUシステム構成のCPUモジュールを含むプログラマブルコントローラを説明する。
実施の形態のプログラマブルコントローラにおいては、バス1上に、CPUモジュール2と、共有RAM3と、複数の入出力(I/O)モジュール4と、が接続されている。
CPUモジュール2は、複数の、実施の形態では2つのCPU2a,2bと、キャッシュサイズ(容量:数十〜百数十KBほどの容量)が小さいが超高速の一次キャッシュ(L1キャッシュ)2cと、キャッシュサイズ(容量:数百KB〜数MBの容量)が一次キャッシュ2cよりも大きくなり、一次キャッシュ2cよりも低速であるが、それなりに高速の二次キャッシュ(L2キャッシュ)2dとを含む。なお、一次、二次はキャッシュ階層を示し、CPU2a,2bが最初に参照するキャッシュとして一次は二次よりも上位キャッシュ階層である。
CPUモジュール2は、さらに、ワークメモリ、I/Oメモリ、システムメモリ、シーケンスプログラムメモリ等を有するが、これらの図示を略している。ワークメモリは、各CPU2a,2bがプログラムを実行するに際し、演算途中結果の記憶領域として使用される。I/Oメモリは、I/Oモジュール等から取り込まれる入力データや、I/Oモジュール等へ送り出すための出力データの格納領域として使用される。システムメモリは、プログラマブルコントローラの基本仕様を定めるシステムプログラムが格納されている。シーケンスプログラムメモリは、ユーザが所望する制御仕様に対応したシーケンスプログラムを記憶するメモリである。なお、CPUモジュール2は、実施の形態では、一次キャッシュ2cと二次キャッシュ2dとを備えるが、三次以上のキャッシュを備えることもできる。
CPUモジュール2内の各CPU2a,2bは、一次キャッシュを内蔵(CPU内部の処理系に直結)せず当該CPU外部に各CPU2a,2bで互いに共有して使用する一次キャッシュ2cを備えている。これら各CPU2a,2bと一次キャッシュ2cはユーザが任意に論理を設計できるフィールド・プログラマブル・ゲート・アレイ(FPGAで例えば米国XILINX社のXCシリーズ等)やプログラマブル・ロジック・デバイス(PLD)等のプログラマブル論理回路2eによって実装されている。また、プログラマブル論理回路2e外では各CPU2a,2bで互いに共有する二次キャッシュ2dを有している。各CPU2a,2bは、一次キャッシュ2cへデータ要求し、一次キャッシュ2cにデータが有れば(キャッシュヒット)、そのまま一次キャッシュ2cから各CPU2a,2bへデータを送り、無ければ(キャッシュミス)、二次キャッシュ2dへデータ要求する。二次キャッシュ2dはデータ有無を調べ、データがあれば一次キャッシュ2cにデータを送る。一次キャッシュ2cと二次キャッシュ2dは、データが重複しないようになっている。これら一次キャッシュ2cと二次キャッシュ2d内におけるデータ格納方式はダイレクトマップ方式、セットアソシアティブ方式、 フルアソシアティブ方式等各種あるが、これらに限定されない。これら一次キャッシュ2cと二次キャッシュ2d内におけるデータ更新方式はライトスルー、ライトバック、等各種あるが、これらに限定されない。キャッシュは目的別に命令キャッシュ、データキャッシュ、実行トレースキャッシュ、その他に分類されるが、これら目的別に限定されない。上記プログラマブル論理回路2eは、LUT(ルックアップテーブル)とフリップフロップとで構成される基本セルを縦横配列したものであり、LUTを書き換えることにより内部のハードウェアロジックを変更することができるようになっている。こうしたプログラマブル論理回路2eは、論理回路を記述する回路情報をこれらに読み込ませることで、内部の論理回路と論理回路間の結線を自由に構成することができるので一次キャッシュ2cを任意に変更ないし再構成することができる。
以上の構成を備えた実施の形態のプログラマブルコントローラにおいては、共有RAM3が接続するバス1に各CPU2a,2bが共通接続され、各CPU2a,2bは外部に各CPU2a,2bで互いに共有して使用する一次キャッシュ2cを設けてあるので、各CPU2a,2bは、シーケンスプログラム実行において繰り返し用いる命令ロードや必要なデータの読み書きには、データ高速転送性能の高い一次キャッシュ2cに格納しておき、それのロードやデータの読み書きには、低速な共有RAM3にアクセスすることなく、高速な一次キャッシュ2cにアクセスできるようになるから、各CPU2a,2bはデータを高速で処理することができるようになり、オーバーヘッドが解消されるようになる。
そして、従来では、各CPU2a,2bがそれぞれ個別に内蔵していた一次キャッシュに対して、実施の形態では、一次、二次のキャッシュ2c,2dを各CPU2a,2bで共有しているので、例えば一方のCPU2aは、他方のCPU2bが一次、二次のキャッシュ2c,2dに書き込んだデータをキャッシュせずに即座に利用することができるので、高速動作がより可能となる。この場合、一次、二次のキャッシュ2c,2dでのハードウェア構成での共有と、共有RAM3でのハードウェア構成での共有とにより、全データの共有化が可能となり、動作速度が格段に向上することとなる。また、共有構成がハードウェアであり、WindowsOSのソフトウエアでのデータ共有構成とは相違して、動作速度も格段に向上する
図1は本発明の実施形態に係るプログラマブルコントローラの構成を示す図である。 図2は従来のプログラマブルコントローラの構成を示す図である。
符号の説明
1 バス
2 CPUモジュール
3 共有RAM
4 I/Oモジュール

Claims (5)

  1. 共有メモリが接続するバスに複数のCPUが共通接続されてなるマルチCPUシステムにおいて、上記各CPUは一次キャッシュを内蔵せず、それらの外部に各CPUで互いに共有して使用する一次キャッシュを設けてある、ことを特徴とするマルチCPUシステム。
  2. さらに、各CPUで互いに共有して使用する二次キャッシュを設けた、ことを特徴とする請求項1に記載のマルチCPUシステム。
  3. 複数のCPUと、上記複数のCPUにより使用される共有メモリと、各CPUと共有メモリとを共通に接続しかつ入出力モジュール等のモジュールが接続されるバスと、を備えたプログラマブルコントローラにおいて、上記各CPUは一次キャッシュを内蔵せず、それらの外部に各CPUで互いに共有して使用する一次キャッシュを設けてある、ことを特徴とするプログラマブルコントローラ。
  4. 上記各CPUと一次キャッシュはプログラマブル論理回路によって実装されていると共に、プログラマブル論理回路外では各CPUで互いに共有する二次キャッシュを有している、ことを特徴とする請求項3に記載のプログラマブルコントローラ。
  5. 上記プログラマブル論理回路は、FPGAである、ことを特徴とする請求項3または4に記載のプログラマブルコントローラ。
JP2008160098A 2008-06-19 2008-06-19 マルチcpuシステムおよびプログラマブルコントローラ Pending JP2010003042A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008160098A JP2010003042A (ja) 2008-06-19 2008-06-19 マルチcpuシステムおよびプログラマブルコントローラ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008160098A JP2010003042A (ja) 2008-06-19 2008-06-19 マルチcpuシステムおよびプログラマブルコントローラ

Publications (1)

Publication Number Publication Date
JP2010003042A true JP2010003042A (ja) 2010-01-07

Family

ID=41584732

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008160098A Pending JP2010003042A (ja) 2008-06-19 2008-06-19 マルチcpuシステムおよびプログラマブルコントローラ

Country Status (1)

Country Link
JP (1) JP2010003042A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013235576A (ja) * 2012-05-08 2013-11-21 Samsung Electronics Co Ltd マルチcpuシステムとそれを含むコンピューティングシステム
WO2018168264A1 (ja) * 2017-03-13 2018-09-20 富士通株式会社 情報処理装置、情報処理装置の制御方法および情報処理装置の制御プログラム

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002517034A (ja) * 1998-05-26 2002-06-11 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド エミュレーションコプロセッサ
JP2004030000A (ja) * 2002-06-24 2004-01-29 Nec Corp 共有キャッシュメモリのヒット判定制御方法及び共有キャッシュメモリのヒット判定制御方式
JP2008059455A (ja) * 2006-09-01 2008-03-13 Kawasaki Microelectronics Kk マルチプロセッサ

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002517034A (ja) * 1998-05-26 2002-06-11 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド エミュレーションコプロセッサ
JP2004030000A (ja) * 2002-06-24 2004-01-29 Nec Corp 共有キャッシュメモリのヒット判定制御方法及び共有キャッシュメモリのヒット判定制御方式
JP2008059455A (ja) * 2006-09-01 2008-03-13 Kawasaki Microelectronics Kk マルチプロセッサ

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013235576A (ja) * 2012-05-08 2013-11-21 Samsung Electronics Co Ltd マルチcpuシステムとそれを含むコンピューティングシステム
WO2018168264A1 (ja) * 2017-03-13 2018-09-20 富士通株式会社 情報処理装置、情報処理装置の制御方法および情報処理装置の制御プログラム

Similar Documents

Publication Publication Date Title
US9892058B2 (en) Centrally managed unified shared virtual address space
US9292447B2 (en) Data cache prefetch controller
US20130046934A1 (en) System caching using heterogenous memories
JP4477688B2 (ja) キャッシュメモリアクセスを管理する方法と装置
EP3048533B1 (en) Heterogeneous system architecture for shared memory
US10042762B2 (en) Light-weight cache coherence for data processors with limited data sharing
KR101639943B1 (ko) 범용 그래픽 프로세서의 공유 메모리를 캐시로 동작시키기 위한 공유 메모리 제어 방법 및 이를 이용한 범용 그래픽 프로세서
KR20170120635A (ko) 캐시 메인터넌스 명령
CN107771322B (zh) 可编程集成电路中存储器资源的管理
US20170083444A1 (en) Configuring fast memory as cache for slow memory
GB2507759A (en) Hierarchical cache with a first level data cache which can access a second level instruction cache or a third level unified cache
US7415576B2 (en) Data processor with block transfer control
US5502828A (en) Reducing memory access in a multi-cache multiprocessing environment with each cache mapped into different areas of main memory to avoid contention
EP4078383A1 (en) Zero value memory compression
Zhang et al. Fuse: Fusing stt-mram into gpus to alleviate off-chip memory access overheads
US11106596B2 (en) Configurable skewed associativity in a translation lookaside buffer
KR20240004361A (ko) 프로세싱-인-메모리 동시적 프로세싱 시스템 및 방법
JP2004199677A (ja) キャッシュを動作させるためのシステム及び方法
US7779205B2 (en) Coherent caching of local memory data
US11257278B2 (en) Graphics surface addressing
US10318428B2 (en) Power aware hash function for cache memory mapping
JP2010003042A (ja) マルチcpuシステムおよびプログラマブルコントローラ
KR20180078512A (ko) 반도체 장치
US20120131279A1 (en) Memory elements for performing an allocation operation and related methods
JP2007041813A (ja) 情報処理システムおよび情報処理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110614

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130206

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130219

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130418

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20131112