(57)【要約】【課題】マルチＣＰＵシステムにおいて、各ＣＰＵが、共有メモリにアクセス中でも、それぞれの内部バスに接続されている各種メモリの使用を可能として、また、各ＣＰＵ自体はバス調停を行う必要性をなくす。【解決手段】本方式は、ＣＰＵ２１に内部バスＢ２１を介してＦＰＧＡ２６を接続し、ＦＰＧＡ１６，２６それぞれを外部バスＢ１３，Ｂ２３を介してモジュールバス３０に共通接続すると共に、ＦＰＧＡ２６にメモリバスＢ２２を介して共有メモリ２７を接続し、ＦＰＧＡ２６は、ＣＰＵ２１が共有メモリ２７にアクセス中でメモリバスＢ２２を占有中のときに、ＣＰＵ１１からアクセス要求があると、ＣＰＵ２１のアクセス優先、アクセス先着順、ＣＰＵ１１アクセス優先かの判断により、共有メモリ２７にＣＰＵ１１がアクセスするためのバス調停を行う。【選択図】図１
2010049510.tif 000002
【特許請求の範囲】
【請求項１】
それぞれが制御プログラムを実行するＣＰＵを内蔵した複数のＣＰＵモジュールを備え、各ＣＰＵが少なくとも１つのメモリを共有メモリとするプログラマブルコントローラにおいて、各ＣＰＵが該共有メモリにアクセスするときのバス調停方式であって、
それぞれのＣＰＵモジュールは、内部のＣＰＵそれぞれに内部バスを介してＦＰＧＡを接続し、各ＦＰＧＡそれぞれを外部バスを介してモジュールバスに接続すると共に、少なくとも一方のＦＰＧＡにメモリバスを介して共有メモリを接続した構成となし、
上記ＦＰＧＡは、上記内部バスと切り離して各ＣＰＵの共有メモリへのアクセスのためのバス調停を行うように、その回路構成がコンフィグレーションされる、プログラマブルコントローラにおけるバス調停方式。
【請求項２】
それぞれが制御プログラムを実行するＣＰＵを内蔵した複数のＣＰＵモジュールを備え、各ＣＰＵが少なくとも１つのメモリを共有メモリとするプログラマブルコントローラであって、各ＣＰＵが該共有メモリにアクセスするときのバス調停方式が上記請求項１に記載の方式である、プログラマブルコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のＣＰＵを備えたプログラマブルコントローラにおいて、各ＣＰＵが１つのメモリを共有メモリとして、当該メモリへアクセスするときのバス調停方式に関するものである。
【背景技術】
【０００２】
プログラマブルコントローラはシーケンスプログラムを実行してそれに接続された制御機器をシーケンス制御するようになっている。このようなプログラマブルコントローラにおいて、ＣＰＵモジュールにはモジュールバスを介して複数の入出力モジュール等の各種モジュールが接続されている。ＣＰＵモジュールに内蔵するＣＰＵはシーケンスプログラムの実行により、例えば入出力モジュールに対してデータ送信要求を行い、入出力モジュールはこれに応答してセンサなどの入力デバイスデータをＣＰＵに送信し、ＣＰＵはアクチュエータなどの出力デバイスを制御する。
【０００３】
しかしながら、上記プログラマブルコントローラで、１つのＣＰＵにより高速制御化を図るには、ＣＰＵを、高速制御が可能であるが価格が高価なＣＰＵに交換することが必要である。そこで、ＣＰＵモジュールを複数化し、それぞれのＣＰＵモジュール内のＣＰＵをモジュールバスに接続し、これらＣＰＵに制御を分散する、いわゆるマルチＣＰＵ方式化することが考えられる。特許文献１参照。このようなマルチＣＰＵ方式構成では、ＣＰＵを高速制御可能な高価なものと交換する必要がなくなる。
【０００４】
図４を参照して従来のプログラマブルコントローラにおけるマルチＣＰＵ方式を説明すると、ＣＰＵモジュール１０，２０それぞれのＣＰＵ１１，２１をモジュールバス３０に共通接続し、モジュールバス３０には上記両ＣＰＵ１１，２１に共有される共有メモリ４０を接続している。モジュールバス３０には各種モジュール５０を接続している。また、ＣＰＵモジュール１０のＣＰＵ１１は内部バスＢ１１でワークメモリ１４に接続されている。ＣＰＵモジュール２０のＣＰＵ２１は内部バスＢ２１でワークメモリ２４に接続されている。
【０００５】
しかしながら、上記マルチＣＰＵ方式では、モジュールバス３０にＣＰＵ１１，２１を接続し、モジュールバス３０に接続した共有メモリ４０を各ＣＰＵ１１，２１間で共有使用する場合、各ＣＰＵ１１，２１間でモジュールバス３０使用上からバス調停を行う必要があった。
【０００６】
図５を参照して、ＣＰＵ１１が共有メモリ４０をアクセス中の時刻ｔ０−ｔ１は、モジュールバス３０がＣＰＵ１１により占有されているので、ＣＰＵ２１は、共有メモリ４０にアクセスすることができないで、ウエイトとなる。一方、ＣＰＵ１１も共有メモリ４０にアクセス中であるために、内部バスＢ１１は占有されていて、ＣＰＵ１１はワークメモリ１４にアクセスすることができないし、また、ＣＰＵ１１はワークメモリ１４を用いたワークができない。ＣＰＵ２１が共有メモリ４０をアクセス中の時刻ｔ２−ｔ３は、モジュールバス３０がＣＰＵ２１により占有されているので、ＣＰＵ１１は、共有メモリ４０にアクセスすることができないで、ウエイトとなる。一方、ＣＰＵ２１も共有メモリ４０にアクセス中であるために、内部バスＢ２１は占有されていて、ＣＰＵ２１はワークメモリ２４にアクセスすることができないし、また、ＣＰＵ２１はワークメモリ２４を用いたワークができない。このようにしてＣＰＵ１１，２１は互いに割り込みＩＮＴにより、バス調停する必要があり、複雑膨大な負荷を制御する場合に上記バス調停を行うと、負荷を高速処理することが困難化する。特に、各ＣＰＵ１１，２１間で割り込み処理宣言でバス使用の調停を行う場合、各ＣＰＵ１１，２１間で統率をとることが難しく、負荷処理の整然たる分担には不向きである。なお、特許文献には以下のものがある。
【特許文献１】特開２００６−０３１４２６号公報
【特許文献２】特開２００２−０２４１６５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明は、各ＣＰＵが、共有メモリにアクセス中であっても、このアクセス経路をそれぞれの内部バスと切り離すことで当該内部バスに接続されている各種メモリの実行を可能とし、また、各ＣＰＵ自体はバス調停を行う必要性をなくすことで、負荷の高速制御を可能としたプログラマブルコントローラにおけるバス調停方式を提供するものである。
【課題を解決するための手段】
【０００８】
本発明によるマルチＣＰＵ構成で共有メモリを備えたプログラマブルコントローラにおけるバス調停方式は、それぞれが制御プログラムを実行するＣＰＵを内蔵した複数のＣＰＵモジュールを備え、各ＣＰＵが少なくとも１つのメモリを共有メモリとするプログラマブルコントローラにおいて、各ＣＰＵが該共有メモリにアクセスするときのバス調停方式であって、それぞれのＣＰＵモジュールは、内部のＣＰＵそれぞれに内部バスを介してＦＰＧＡを接続し、各ＦＰＧＡそれぞれを外部バスを介してモジュールバスに接続すると共に、少なくとも一方のＦＰＧＡにメモリバスを介して共有メモリを接続した構成となし、上記ＦＰＧＡは、上記内部バスと切り離して各ＣＰＵの共有メモリへのアクセスのためのバス調停を行うように、その回路構成がコンフィグレーションされるようになっていることを特徴とするものである。
【０００９】
本発明によれば、各ＣＰＵのうちいずれか一のＣＰＵが共有メモリにアクセス中であっても、他のＣＰＵは内部バスに接続されているワークメモリにワークすることで負荷のデータ処理等ができる一方、各ＣＰＵは、共有メモリへのアクセスのためのバス調停を行う必要がなくなるので、バス調停に要していた時間を負荷のデータ処理に使用することができるようになり、各ＣＰＵにより負荷の高速制御が可能となる。
【発明の効果】
【００１０】
本発明によると、各ＣＰＵは、共有メモリにアクセスするバス調停中であっても、それぞれの内部バスに接続されている各種メモリを用いて制御が可能であり、また、バス調停を行う必要がないから、負荷の高速制御を行うことができる。
【発明を実施するための最良の形態】
【００１１】
以下、添付した図面を参照して、本発明の実施の形態に係るマルチＣＰＵ構成のプログラマブルコントローラにおけるバス調停方式を説明する。図１は本実施の形態のマルチＣＰＵ構成のプログラマブルコントローラの構成を示し、図１において、１０，２０はＣＰＵモジュールであり、このＣＰＵモジュール１０，２０は、それぞれ、ＣＰＵ１１，２１を内蔵する。このＣＰＵ１１，２１の内部バスＢ１１，Ｂ２１にシステムプログラムを格納するシステムメモリ１２，２２、シーケンスプログラムを格納するプログラムメモリ１３，２３、ＣＰＵ１１，２１の作業等に用いるワークメモリ１４，２４、フラッシュメモリ等からなるコンフィグレーションデータメモリ１５，２５が接続されている。
【００１２】
コンフィグレーションデータは、コンフィグレーションすべき回路構成のデータである。そして、この内部バスＢ１１，２１には、バス調停デバイスとしてＦＰＧＡ１６，２６が接続されている。
【００１３】
ＦＰＧＡ１６，２６は、ＳＲＡＭ型のフィールドプログラマブルゲートアレイ（Field Programmable Gate Array）であり、図２で示すように、論理ブロックと入出力ブロックと配線とを有する書換え可能な半導体集積回路により構成されている。ＦＰＧＡ１６，２６は、コンフィグレーションデータメモリ１５，２５に記憶された回路構成のデータを読み込んで所望の回路構成にコンフィグレーションされる。そして、ＦＰＧＡ１６，２６は外部バスＢ１３，Ｂ２３を介してモジュールバス３０に接続されている。
【００１４】
以上の構成において、本実施の形態では、ＦＰＧＡ１６，２６に、メモリバスＢ１２，Ｂ２２を介して共有メモリ１７，２７が接続されている。ＣＰＵモジュール２０のＦＰＧＡ２６は、ＣＰＵ２１が共有メモリ２７にアクセス中でメモリバスＢ２２を占有中のときに、ＣＰＵモジュール１０のＣＰＵ１１から共有メモリ２７へのアクセス要求があると、ＦＰＧＡ２６は、ＣＰＵ２１のアクセスをＣＰＵ１１のそれよりも優先するか、アクセス先着順とするか、ＣＰＵ１１のアクセスをＣＰＵ２１のそれよりも優先するかの判断を行う。この判断により、共有メモリ２７に対するＣＰＵ１１，２１のアクセスするためのバス調停を行うようになっている。
【００１５】
このバス調停を、図３を参照して説明する。図３でＡは図１の点線（Ａ）で示すＣＰＵ２１の共有メモリ２７へのアクセスを示し、Ｂは図１の点線（Ｂ）で示すＣＰＵ１１の共有メモリ２７へのアクセスを示す。
【００１６】
図３（ａ）で示すように、ＦＰＧＡ２６は、ＣＰＵ２１のアクセスをＣＰＵ１１のそれよりも優先する場合（Ａ＞Ｂ）では、ＣＰＵ２１が共有メモリ２７にアクセス中であるときに、ＣＰＵ１１からアクセス要求があっても、ＣＰＵ１１にウエイトをかけ、ＣＰＵ２１のアクセスが終了すると、メモリバスＢ２２を開放すると共に、ＣＰＵ１１に対するウエイトを解除して、ＣＰＵ１１のアクセスを許可する。
【００１７】
図３（ｂ）で示すように、ＦＰＧＡ２６は、アクセス先着順（Ａ＝Ｂ）の場合では、ＣＰＵ２１がＣＰＵ１１よりも先に共有メモリ２７にアクセスしているのであれば、ＣＰＵ１１にウエイトをかけ、ＣＰＵ２１のアクセスが終了すると、メモリバスＢ２２を開放すると共に、ＣＰＵ１１に対するウエイトを解除して、ＣＰＵ１１のアクセスを許可する。
【００１８】
図３（ｃ）で示すように、ＦＰＧＡ２６は、ＣＰＵ２１のアクセスよりもＣＰＵ１１のそれを優先する場合（Ａ＜Ｂ）では、ＣＰＵ２１が共有メモリ２７にアクセス中であっても、ＣＰＵ１１からアクセス要求があると、ＣＰＵ２１にウエイトをかけ、ＣＰＵ１１のアクセスを優先的に許可し、ＣＰＵ１１のアクセスが終了すると、メモリバスＢ２２を開放すると共に、ＣＰＵ２１のウエイトを解除して、ＣＰＵ２１のアクセス続行を許可する。
【００１９】
上記いずれのバス調停においても、各ＣＰＵ１１，２１それぞれの内部バスＢ１１，Ｂ２１はバス調停から切り離されており、各ＣＰＵ１１，２１は内部バスＢ１１，Ｂ２１を使用して制御を実行することができる。
【００２０】
そして、上記したようにＦＰＧＡ２６がバス調停を行うから、ＣＰＵ２１は、内部バスＢ２１を用いてワークメモリ２４にアクセスしてワークを行って負荷のデータ処理等ができると共に、ＣＰＵ２１は、バス調停を行う必要がなくなるので、バス調停に要していた時間を負荷のデータ処理に使用することができるようになり、負荷の高速制御が可能となる。
【００２１】
なお、ＣＰＵモジュール１０のＦＰＧＡ１６、共有メモリ１７も、同様に、バス調停を行うことができるようにしてもよい。
【００２２】
なお、図１で示す実施の形態では、ワークメモリ１４，２４とは別に共有メモリ１７，２７を設けているが、上記ワークメモリ１４，２４を共有メモリ１７，２７とすることもできる。
【００２３】
なお、図１で示す実施の形態では、共有メモリ１７，２７をそれぞれのＣＰＵモジュール１０，２０が内蔵しているが、一方のＣＰＵモジュール１０にのみ共有メモリ１７を設け、他方のＣＰＵモジュール２０の共有メモリ２７を設けずに、かつ、その共有メモリ１７をＣＰＵモジュール１０のＦＰＧＡ１６と、ＣＰＵモジュール２０のＦＰＧＡ２６とに接続した構成とし、両ＦＰＧＡ１６，２６がバス調停するようにしてもよい。この場合、両ＦＰＧＡ１６，２６の間でバス調停に関するデータを通信して互いのバス調停を監視できるようにしてもよい。
【図面の簡単な説明】
【００２４】
【図１】図１は本発明の実施形態に係るプログラマブルコントローラの構成を示す図である。
【図２】図２はコンフィグレーションデータメモリの構成を示す図である。
【図３】図３は共有メモリへのアクセスのためのバス調停の説明に供する図である。
【図４】図４は従来のプログラマブルコントローラの構成を示す図である。
【図５】図５は共有メモリへのアクセスのためのバス調停の説明に供する図である。
【符号の説明】
【００２５】
１０，２０  ＣＰＵモジュール
３０  モジュールバス
５０  モジュール
１１，２１  ＣＰＵ
１２，２２  システムメモリ
１３，２３  プログラムメモリ
１４，２４  ワークメモリ
１５，２５  コンフィグレーションデータメモリ
１６，２６  ＦＰＧＡ
１７，２７  共有メモリ
Ｂ１１，Ｂ２１  内部バス
Ｂ１２，Ｂ２２  メモリバス
Ｂ１３，Ｂ２３  外部バス
【図１】
2010049510.tif 000003
【図２】
2010049510.tif 000004
【図３】
2010049510.tif 000005
【図４】
2010049510.tif 000006
【図５】
2010049510.tif 000007