(57)【要約】【課題】複数のＣＰＵで共有メモリを共有して使用する場合に、オーバーヘッドを抑制して、データを高速で処理可能とする。【解決手段】共有メモリが接続するバスに複数のＣＰＵが共通接続され、各ＣＰＵはその内部に一次キャッシュを持たずそれらの外部に各ＣＰＵで互いに共有して使用する一次キャッシュを設けてあると共に、さらに、各ＣＰＵで互いに共有して使用する二次キャッシュを設けた。【選択図】図１
2010003042.tif 000002
【特許請求の範囲】
【請求項１】
共有メモリが接続するバスに複数のＣＰＵが共通接続されてなるマルチＣＰＵシステムにおいて、上記各ＣＰＵは一次キャッシュを内蔵せず、それらの外部に各ＣＰＵで互いに共有して使用する一次キャッシュを設けてある、ことを特徴とするマルチＣＰＵシステム。
【請求項２】
さらに、各ＣＰＵで互いに共有して使用する二次キャッシュを設けた、ことを特徴とする請求項１に記載のマルチＣＰＵシステム。
【請求項３】
複数のＣＰＵと、上記複数のＣＰＵにより使用される共有メモリと、各ＣＰＵと共有メモリとを共通に接続しかつ入出力モジュール等のモジュールが接続されるバスと、を備えたプログラマブルコントローラにおいて、上記各ＣＰＵは一次キャッシュを内蔵せず、それらの外部に各ＣＰＵで互いに共有して使用する一次キャッシュを設けてある、ことを特徴とするプログラマブルコントローラ。
【請求項４】
上記各ＣＰＵと一次キャッシュはプログラマブル論理回路によって実装されていると共に、プログラマブル論理回路外では各ＣＰＵで互いに共有する二次キャッシュを有している、ことを特徴とする請求項３に記載のプログラマブルコントローラ。
【請求項５】
上記プログラマブル論理回路は、ＦＰＧＡである、ことを特徴とする請求項３または４に記載のプログラマブルコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のＣＰＵ（プロセッサ）がそれぞれの一次バスを介して二次バスに共通に接続されていると共にその二次バスに上記各ＣＰＵにより共有される共有ＲＡＭが接続されてなるマルチＣＰＵシステムおよびプログラマブルコントローラを用いて制御対象を制御する制御システムに関するものである。
【背景技術】
【０００２】
シーケンスプログラムを実行して制御対象をシーケンス制御する従来のプログラマブルコントローラシステムにおいては、例えば、電源モジュール、ＣＰＵモジュール、入出力モジュール、その他のモジュールを、同一のＰＬＣバスに接続して構成されているタイプのものがある。上記ＣＰＵモジュールでは、従来から内蔵する単一のＣＰＵにより、各モジュールの制御を行っている。しかしながら、プログラマブルコントローラシステムにおいてその高速制御化を図るには、ＣＰＵを高速制御が可能であるが価格が高価となるＣＰＵに交換することが必要である。一方、ＣＰＵモジュールに複数のＣＰＵを内蔵させることで、これらＣＰＵに制御を分散する方式もあり、この方式では、ＣＰＵを高速制御可能な高価なものと交換する必要がなくなる。もちろん、上記タイプではなく、同一のハウジング内部に上記モジュール機能を備えたタイプのプログラマブルコントローラもある。
【０００３】
上記のようにＣＰＵモジュール内部に複数のＣＰＵを内蔵し、各ＣＰＵとメモリとをバスに共通接続すると共に、各ＣＰＵがキャッシュとは関係なく、このメモリを共有メモリとしてデータを共有し個別にそのデータにアクセス可能とした場合、共有メモリの動作速度が遅いので、負荷が複雑で膨大化した場合、共有メモリへのアクセスによるオーバーヘッドが問題化するようになる。
【０００４】
なお、上記した先行技術の特許文献１を下記する。
【特許文献１】特開２００６−０３１４２６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明は、複数のＣＰＵで共有メモリを共有して使用する場合に、上記オーバーヘッドが起こらず、各ＣＰＵがデータを高速で処理可能とすることである。
【課題を解決するための手段】
【０００６】
本発明によるマルチＣＰＵシステムは、共有メモリが接続するバスに複数のＣＰＵが共通接続されてなるマルチＣＰＵシステムにおいて、上記各ＣＰＵは一次キャッシュを内蔵せず、それらの外部に各ＣＰＵで互いに共有して使用する一次キャッシュを設けてあることを特徴とするものである。
【０００７】
本発明によると、各ＣＰＵは、シーケンスプログラム実行において繰り返し用いる命令ロードや必要なデータの読み書きには、データ転送性能が高い一次キャッシュに格納しておき、それのロードやデータの読み書きには、低速な共有メモリにアクセスすることなく、高速な一次キャッシュにアクセスできるようになると共に、当該ＣＰＵは他のＣＰＵが一次キャッシュに格納したロードや読み書きデータも利用することができるので、さらに、低速な共有メモリにアクセスする機会を減らせるようになり、各ＣＰＵはデータを高速で処理することができるようになり、オーバーヘッドが解消されるようになる。
【０００８】
そして、特に、本発明では、一次キャッシュを各ＣＰＵで共有化したから、各ＣＰＵのいずれか１つが一次キャッシュにデータをキャッシュすると、他のＣＰＵもそのデータをキャッシュしたのと同等になり、当該他のＣＰＵはそのデータをキャッシュすることが必要でなくなり、一次キャッシュにキャッシュされているそのデータを即座に利用することが可能となり、動作速度が著しく向上することとなる。
【０００９】
本発明のマルチＣＰＵシステムにおいて、好ましい態様は、さらに、各ＣＰＵで互いに共有して使用する二次キャッシュを設けた、ことである。
【００１０】
この態様では、すべてのデータを一次キャッシュ、二次キャッシュ、共有メモリといったハードウェア構成のもので各ＣＰＵが共有化することができるようになり、ソフトウエアで共有化する場合と比べても、マルチＣＰＵシステム全体の動作速度を著しく向上させることができるようになる。
【００１１】
本発明によるプログラマブルコントローラは、複数のＣＰＵと、上記複数のＣＰＵにより使用される共有メモリと、各ＣＰＵと共有メモリとを共通に接続しかつ入出力モジュール等のモジュールが接続されるバスと、を備えたプログラマブルコントローラにおいて、上記各ＣＰＵは一次キャッシュを内蔵せず、それらの外部に各ＣＰＵで互いに共有して使用する一次キャッシュを設けてある、ことを特徴とするものである。
【００１２】
本発明のプログラマブルコントローラにおいて、好ましい態様は、上記各ＣＰＵと一次キャッシュはフィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）等のプログラマブル論理回路によって実装されていると共に、ＦＰＧＡ等のプログラマブル論理回路外では各ＣＰＵで互いに共有する二次キャッシュを有していることである。
【発明の効果】
【００１３】
本発明によれば、複数のＣＰＵで共有メモリを共有して使用する場合に、オーバーヘッドを抑制して、データを高速で処理することができる。
【発明を実施するための最良の形態】
【００１４】
以下、添付した図面を参照して、本発明の実施の形態に係るマルチＣＰＵシステム構成のＣＰＵモジュールを含むプログラマブルコントローラを説明する。
【００１５】
実施の形態のプログラマブルコントローラにおいては、バス１上に、ＣＰＵモジュール２と、共有ＲＡＭ３と、複数の入出力（Ｉ／Ｏ）モジュール４と、が接続されている。
【００１６】
ＣＰＵモジュール２は、複数の、実施の形態では２つのＣＰＵ２ａ，２ｂと、キャッシュサイズ（容量：数十〜百数十ＫＢほどの容量）が小さいが超高速の一次キャッシュ（Ｌ１キャッシュ）２ｃと、キャッシュサイズ（容量：数百ＫＢ〜数ＭＢの容量）が一次キャッシュ２ｃよりも大きくなり、一次キャッシュ２ｃよりも低速であるが、それなりに高速の二次キャッシュ（Ｌ２キャッシュ）２ｄとを含む。なお、一次、二次はキャッシュ階層を示し、ＣＰＵ２ａ，２ｂが最初に参照するキャッシュとして一次は二次よりも上位キャッシュ階層である。
【００１７】
ＣＰＵモジュール２は、さらに、ワークメモリ、Ｉ／Ｏメモリ、システムメモリ、シーケンスプログラムメモリ等を有するが、これらの図示を略している。ワークメモリは、各ＣＰＵ２ａ，２ｂがプログラムを実行するに際し、演算途中結果の記憶領域として使用される。Ｉ／Ｏメモリは、Ｉ／Ｏモジュール等から取り込まれる入力データや、Ｉ／Ｏモジュール等へ送り出すための出力データの格納領域として使用される。システムメモリは、プログラマブルコントローラの基本仕様を定めるシステムプログラムが格納されている。シーケンスプログラムメモリは、ユーザが所望する制御仕様に対応したシーケンスプログラムを記憶するメモリである。なお、ＣＰＵモジュール２は、実施の形態では、一次キャッシュ２ｃと二次キャッシュ２ｄとを備えるが、三次以上のキャッシュを備えることもできる。
【００１８】
ＣＰＵモジュール２内の各ＣＰＵ２ａ，２ｂは、一次キャッシュを内蔵（ＣＰＵ内部の処理系に直結）せず当該ＣＰＵ外部に各ＣＰＵ２ａ，２ｂで互いに共有して使用する一次キャッシュ２ｃを備えている。これら各ＣＰＵ２ａ，２ｂと一次キャッシュ２ｃはユーザが任意に論理を設計できるフィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡで例えば米国ＸＩＬＩＮＸ社のＸＣシリーズ等）やプログラマブル・ロジック・デバイス（ＰＬＤ）等のプログラマブル論理回路２ｅによって実装されている。また、プログラマブル論理回路２ｅ外では各ＣＰＵ２ａ，２ｂで互いに共有する二次キャッシュ２ｄを有している。各ＣＰＵ２ａ，２ｂは、一次キャッシュ２ｃへデータ要求し、一次キャッシュ２ｃにデータが有れば（キャッシュヒット）、そのまま一次キャッシュ２ｃから各ＣＰＵ２ａ，２ｂへデータを送り、無ければ（キャッシュミス）、二次キャッシュ２ｄへデータ要求する。二次キャッシュ２ｄはデータ有無を調べ、データがあれば一次キャッシュ２ｃにデータを送る。一次キャッシュ２ｃと二次キャッシュ２ｄは、データが重複しないようになっている。これら一次キャッシュ２ｃと二次キャッシュ２ｄ内におけるデータ格納方式はダイレクトマップ方式、セットアソシアティブ方式、 フルアソシアティブ方式等各種あるが、これらに限定されない。これら一次キャッシュ２ｃと二次キャッシュ２ｄ内におけるデータ更新方式はライトスルー、ライトバック、等各種あるが、これらに限定されない。キャッシュは目的別に命令キャッシュ、データキャッシュ、実行トレースキャッシュ、その他に分類されるが、これら目的別に限定されない。上記プログラマブル論理回路２ｅは、ＬＵＴ（ルックアップテーブル）とフリップフロップとで構成される基本セルを縦横配列したものであり、ＬＵＴを書き換えることにより内部のハードウェアロジックを変更することができるようになっている。こうしたプログラマブル論理回路２ｅは、論理回路を記述する回路情報をこれらに読み込ませることで、内部の論理回路と論理回路間の結線を自由に構成することができるので一次キャッシュ２ｃを任意に変更ないし再構成することができる。
【００１９】
以上の構成を備えた実施の形態のプログラマブルコントローラにおいては、共有ＲＡＭ３が接続するバス１に各ＣＰＵ２ａ，２ｂが共通接続され、各ＣＰＵ２ａ，２ｂは外部に各ＣＰＵ２ａ，２ｂで互いに共有して使用する一次キャッシュ２ｃを設けてあるので、各ＣＰＵ２ａ，２ｂは、シーケンスプログラム実行において繰り返し用いる命令ロードや必要なデータの読み書きには、データ高速転送性能の高い一次キャッシュ２ｃに格納しておき、それのロードやデータの読み書きには、低速な共有ＲＡＭ３にアクセスすることなく、高速な一次キャッシュ２ｃにアクセスできるようになるから、各ＣＰＵ２ａ，２ｂはデータを高速で処理することができるようになり、オーバーヘッドが解消されるようになる。
【００２０】
そして、従来では、各ＣＰＵ２ａ，２ｂがそれぞれ個別に内蔵していた一次キャッシュに対して、実施の形態では、一次、二次のキャッシュ２ｃ，２ｄを各ＣＰＵ２ａ，２ｂで共有しているので、例えば一方のＣＰＵ２ａは、他方のＣＰＵ２ｂが一次、二次のキャッシュ２ｃ，２ｄに書き込んだデータをキャッシュせずに即座に利用することができるので、高速動作がより可能となる。この場合、一次、二次のキャッシュ２ｃ，２ｄでのハードウェア構成での共有と、共有ＲＡＭ３でのハードウェア構成での共有とにより、全データの共有化が可能となり、動作速度が格段に向上することとなる。また、共有構成がハードウェアであり、ＷｉｎｄｏｗｓＯＳのソフトウエアでのデータ共有構成とは相違して、動作速度も格段に向上する
【図面の簡単な説明】
【００２１】
【図１】図１は本発明の実施形態に係るプログラマブルコントローラの構成を示す図である。
【図２】図２は従来のプログラマブルコントローラの構成を示す図である。
【符号の説明】
【００２２】
１  バス
２  ＣＰＵモジュール
３  共有ＲＡＭ
４  Ｉ／Ｏモジュール
【図１】
2010003042.tif 000003
【図２】
2010003042.tif 000004