(57)【要約】【課題】小型化あるいは高速化の要求を満たしながらも現状の集積回路技術で製品化のためのコスト水準を維持できるプログラマブルコントローラを提供する。【解決手段】プログラマブルコントローラは、シーケンス命令を実行する専用プロセッサコア１′とシーケンス命令を格納した命令メモリ４とシーケンス命令の実行中に作業領域となるデータメモリ５ａ，５ｂとを備える。専用プロセッサコア１′とデータメモリ５ｂとは１チップに集積された集積回路１０ｃを構成する。【選択図】図１
2008226276.tif 000002
【特許請求の範囲】
【請求項１】
シーケンス命令を実行する専用プロセッサと、専用プロセッサと並列動作し外部装置および周辺機器とのデータ交換を制御する汎用プロセッサと、システムプログラムを格納するシステムメモリと、外部装置および周辺機器を接続する周辺回路部と、専用プロセッサが用いるメモリ群とを備え、前記メモリ群のうち専用プロセッサがシーケンス命令を実行する際の作業領域として用いるデータメモリが２分割され、データメモリの一方と専用プロセッサとが１チップに集積されていることを特徴とするプログラマブルコントローラ。
【請求項２】
前記一方のデータメモリは他方のデータメモリよりもデータバスのバス幅が広いことを特徴とする請求項１記載のプログラマブルコントローラ。
【請求項３】
前記メモリ群がシーケンス命令からなるプログラムを格納した命令メモリと、専用プロセッサがシーケンス命令を実行する際の作業領域として用いるデータメモリとを含むことを特徴とする請求項１または請求項２記載のプログラマブルコントローラ。
【請求項４】
前記専用プロセッサのバスにアクセス制御のためのバスインタフェースユニットが接続され、周辺回路部と汎用プロセッサとメモリ群とはバスインタフェースユニットを介して専用プロセッサに接続されることを特徴とする請求項１ないし請求項３のいずれか１項に記載のプログラマブルコントローラ。
【請求項５】
前記専用プロセッサはパイプライン動作を行うことを特徴とする請求項１ないし請求項４のいずれか１項に記載のプログラマブルコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラマブルコントローラに関するものである。
【背景技術】
【０００２】
一般に、プログラマブルコントローラは各種機器の制御に広く用いられている。近年、制御対象となる機器の構成が複雑化し、また高速な動作を要求されるようになってきており、多数の入出力信号を高速に処理することが要求されている。そこで、図７に示すように、ビット処理を主とするシーケンス命令である基本命令を実行する基本命令処理および複数ビット演算のシーケンス命令である応用命令を実行する応用命令処理を行う専用プロセッサ１を用いることで高速化を実現し、外部装置との通信（通信処理）や周辺機器とのデータ交換（周辺処理）などを制御する汎用プロセッサ２を専用プロセッサ１とは別に設けて、専用プロセッサ１と汎用プロセッサ２とで並列処理を行うようにしたプログラマブルコントローラが提案されている。
【０００３】
このようなマルチプロセッサ構成のプログラマブルコントローラ（基本命令用と応用命令用とを別プロセッサで構成したマルチプロセッサ構成のプログラマブルコントローラとして特許文献１に記載のものがある）では、メモリ空間の少なくとも一部を共用できるように構成してあり、基本命令に対する処理、応用命令に対する処理、通信処理、周辺処理を行うに際してメモリ上の必要なデータを参照したり更新したりするようになっている。また、プログラマブルコントローラで用いるメモリには、システムプログラムを格納するシステムメモリ３、シーケンス命令からなるシーケンスプログラムを格納する命令メモリ４、シーケンスプログラムの実行中に作業領域として必要なデータメモリ５があり、シーケンス命令である微分命令を実行可能なプログラマブルコントローラでは、微分命令での作業用に専用に用いるデータメモリとしての微分メモリ６を備える場合もある。システムメモリ３はシステムＲＯＭ３ａとシステムＲＡＭ３ｂとの両方を備えることが多く、システムメモリ３は主として汎用プロセッサ２が用いる。また、命令メモリ４、データメモリ５、微分メモリ６は主として専用プロセッサ１が使用する。プログラマブルコントローラには、記憶装置や印刷装置あるいはプログラム作成装置などの周辺機器を接続するための周辺回路部としての周辺ＩＣ７、制御対象となる各種機器を接続するための入出力部８も設けられる。
【特許文献１】特開平４−２５７００２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、上述したように多数の入出力信号を高速に処理することが要求されるようになってきたことにより、プログラマブルコントローラの内部バスの本数が増加する傾向にあり、とくに多くのメモリにアクセスする専用プロセッサ１では端子数が著しく増加してきている。端子間のピッチの縮小化には限界があるから、端子数が増加すると集積回路からなる専用プロセッサのパッケージが大型化し、結果的に実装面積が増加するという問題が生じている。プログラマブルコントローラは、制御対象となる機器に組み込まれる場合も多く、この種のプログラマブルコントローラでは専用プロセッサ１の実装面積の増加が小型化を阻害する要因になる。
【０００５】
また、半導体プロセスの微細化の進展に伴って専用プロセッサ１の動作速度が向上してきているが、専用プロセッサ１がアクセスするメモリは専用プロセッサ１とは別に設けられているから、専用プロセッサ１とメモリとの間の経路は回路基板（プリント基板など）を経由することになり、回路基板の誘導成分や容量成分が高速化を阻害する。つまり、専用プロセッサ１が高速化してもメモリへのアクセス時間が短縮できないから、このアクセス時間がプログラマブルコントローラの全体の速度を制限するボトルネックになる可能性がある。
【０００６】
この種の課題を解決するには、プログラマブルコントローラを構成する各要素を１チップに集積することが考えられ、半導体プロセスの微細化技術の進展によって１チップの半導体に集積できる回路規模が著しく増加している傾向からすれば、将来的にはこのような解決も考えられる。しかしながら、現状技術でプログラマブルコントローラの全体を１チップ化するとコスト増が大きくなり、製品化に支障をきたすという問題がある。
【０００７】
本発明は上記事由に鑑みて為されたものであり、その目的は、小型化あるいは高速化の要求を満たしながらも現状の集積回路技術で製品化のためのコスト水準を維持できるようにしたプログラマブルコントローラを提供することにある。
【課題を解決するための手段】
【０００８】
請求項１の発明は、シーケンス命令を実行する専用プロセッサと、専用プロセッサと並列動作し外部装置および周辺機器とのデータ交換を制御する汎用プロセッサと、システムプログラムを格納するシステムメモリと、外部装置および周辺機器を接続する周辺回路部と、専用プロセッサが用いるメモリ群とを備え、前記メモリ群のうち専用プロセッサがシーケンス命令を実行する際の作業領域として用いるデータメモリが２分割され、データメモリの一方と専用プロセッサとが１チップに集積されているものである。この構成によれば、データメモリを２分割しているから専用プロセッサが実行するシーケンス命令の種類に応じて専用プロセッサと同じチップ上のデータメモリと外部のデータメモリとを使い分けることが可能になる。たとえば、１命令でもデータメモリへのアクセス回数が多くなるような場合には専用プロセッサと同じチップ上に集積したデータメモリを用いることでアクセス速度の向上が可能になる。
【０００９】
請求項２の発明は、請求項１の発明において、前記一方のデータメモリが他方のデータメモリよりもデータバスのバス幅が広いものである。
【００１０】
この構成によれば、専用プロセッサと同じチップ上に集積されているデータメモリのほうがデータバスのバス幅が広いことによって、外部のデータメモリを用いる場合よりもアクセス回数を減らすことが可能になる。そこで、専用プロセッサが実行するシーケンス命令の種類に応じて１命令でデータメモリに複数回のアクセスを要する場合には専用プロセッサと同じチップ上に集積されたデータメモリを用い、他の命令では外部のデータメモリを用いるようにすれば、シーケンス命令の実行速度を全体として高めることが可能になる。
【００１１】
請求項３の発明は、請求項１または請求項２の発明において、前記メモリ群がシーケンス命令からなるプログラムを格納した命令メモリと、専用プロセッサがシーケンス命令を実行する際の作業領域として用いるデータメモリとを含むものである。
【００１２】
請求項４の発明は、請求項１ないし請求項３の発明において、前記専用プロセッサのバスにアクセス制御のためのバスインタフェースユニットが接続され、周辺回路部と汎用プロセッサとメモリ群とがバスインタフェースユニットを介して専用プロセッサに接続されているものである。
【００１３】
請求項５の発明は、請求項１ないし請求項４の発明において、前記専用プロセッサがパイプライン動作を行うものである。
【発明の効果】
【００１４】
請求項１の発明の構成によれば、データメモリを２分割しているから専用プロセッサが実行するシーケンス命令の種類に応じて専用プロセッサと同じチップ上のデータメモリと外部のデータメモリとを使い分けることが可能になる。たとえば、１命令でもデータメモリへのアクセス回数が多くなるような場合には専用プロセッサと同じチップ上に集積したデータメモリを用いることでアクセス速度の向上が可能になる。
【００１５】
請求項２の発明の構成によれば、専用プロセッサと同じチップ上に集積されているデータメモリのほうがデータバスのバス幅が広いことによって、外部のデータメモリを用いる場合よりもアクセス回数を減らすことが可能になる。そこで、専用プロセッサが実行するシーケンス命令の種類に応じて１命令でデータメモリに複数回のアクセスを要する場合には専用プロセッサと同じチップ上に集積されたデータメモリを用い、他の命令では外部のデータメモリを用いるようにすれば、シーケンス命令の実行速度を全体として高めることが可能になる。
【発明を実施するための最良の形態】
【００１６】
（参考例１）
本例は、周辺機器を接続する周辺ＩＣ（図７の符号７参照）に相当する回路について再利用可能な形で設計資産が蓄積されてきていることに鑑みて、専用プロセッサと専用プロセッサが主としてアクセスするメモリと周辺ＩＣに相当する機能とを１チップ化することで、小型化および高速化を可能とした例を示す。
【００１７】
すなわち、本例は、図３に示すように、図７に示した従来構成の専用プロセッサ１に相当する回路を専用プロセッサコア１′とし、周辺回路部である周辺ＩＣ７に相当する回路を機能コア７′として、命令メモリ４、データメモリ５、微分メモリ６とともにＬＳＩとしての１チップの集積回路１０ａを構成したものである。本例における専用プロセッサコア１′は、特許請求の範囲における「専用プロセッサ」に相当する。また、この集積回路１０ａにはバスインタフェースユニット（以下、「ＢＩＵ」という）９も搭載されている。ＢＩＵ９は集積回路１０ａの内部や外部とのアクセス制御のための回路である。すなわち、専用プロセッサコア１′はＢＩＵ９を介して集積回路１０ａの内部に設けた命令メモリ４、データメモリ５、微分メモリ６、機能コア７′に接続されており、また集積回路１０ａの外部に設けた汎用プロセッサ２、システムメモリ３、入出力部８もＢＩＵ９に接続される。
【００１８】
このような構成によって、集積回路１０ａは汎用プロセッサ２との間のバスに接続する端子と入出力部８に接続する端子と周辺機器に接続する端子とのほか電源端子程度を備えていればよく、従来の専用プロセッサ１の端子数に比較すると集積回路１０ａの端子数は大幅に削減されることになる。このことによって、集積回路１０ａのパッケージ面積は従来の専用プロセッサ１のパッケージ面積よりも小さくすることが可能になり、結果的にプログラマブルコントローラの小型化につながる。しかも、専用プロセッサ１が主としてアクセスする命令メモリ４、データメモリ５、微分メモリ６については集積回路１０ａの内部配線で専用プロセッサコア１′に接続されるから、外部の回路基板を用いる場合に比較するとアクセス速度の向上が可能になる。
【００１９】
アクセス速度についての概念を図に示すと図４のようになる。図４（ａ）は従来構成での専用プロセッサ１の動作、図４（ｂ）は本例での専用プロセッサコア１′の動作を示す。専用プロセッサ１と専用プロセッサコア１′とは同等の機能を有するものであり、命令実行処理を５段階に分割した５段パイプライン構成を有している。すなわち、命令実行処理は、命令フェッチＩＦ、命令デコードＩＤ、命令実行ＥＸ、メモリアクセスＭＥＭ、結果書き込みＷＢの５段階で処理される。パイプライン動作では、各段階の処理時間（パイプラインステージの実行時間）は等しくする必要がある。従来では、上述した５段階の中では命令実行ＥＸＥの段階に要する時間がもっとも長く、この時間が専用プロセッサ１（専用プロセッサコア１′）の全体としてのパイプラインサイクルを規定していた。しかしながら、半導体プロセスの微細化が進み回路の動作速度が向上してくると命令実行ＥＸＥに要する時間は短縮されるから、メモリへのアクセスが必要な命令フェッチＩＤ、メモリアクセスＭＥＭの段階に要する時間がパイプラインサイクルを規定する要素になる。つまり、従来構成では専用プロセッサ１からメモリへのアクセス経路に回路基板を含んでいたことによって図４（ａ）のようにパイプラインサイクルが比較的長くなっていたのに対して、本例ではメモリへのアクセス経路が集積回路１０ａの内部に形成されていることによって図４（ｂ）のように従来構成よりもパイプラインサイクルが短縮されるのである。他の構成および動作は従来構成と同様である。
【００２０】
（参考例２）
本例は、図５に示すように、専用プロセッサコア１′とともに微分メモリ６を集積回路１０ｂに集積したものである。また、集積回路１０ｂには参考例１と同様にＢＩＵ９を設けている。命令メモリ４、データメモリ５、周辺ＩＣ７については集積回路１０ｂの外部に設ける。つまり、従来構成に比較すると微分メモリ６のみを専用プロセッサ１とともに１チップに集積したことになる。
【００２１】
一般に微分メモリ６のデータ幅は１ビットであるが微分メモリ６は命令メモリ４と同一のアドレス空間を有するからアドレス幅は命令メモリ４と同幅を有している。したがって、微分メモリ６だけでも専用プロセッサコア１′とともに集積回路１０ｂに実装することで、従来構成の専用プロセッサ１のパッケージよりも集積回路１０ｂのパッケージの端子数を削減することができる。ここに、命令メモリ４と微分メモリ６とのアドレス空間が等しいことから、アドレスバスを命令メモリ４と微分メモリ６とで共有させることで専用プロセッサ１の端子数を削減することも考えられるが、仮にこのような構成を採用すると、命令メモリ４と微分メモリ６とで同時に異なるアドレスにアクセスする必要が生じるときには、一方のメモリへのアクセスを無効化し、無効化した処理を次のパイプラインサイクルにずらすという例外的な処理が必要になるから、それだけ命令の実行時間に要する時間が増加することになる。本例では、このような例外的な処理を行わず命令の実行時間を従来構成と同程度に保ちながらも集積回路１０ｂの端子数を従来の専用プロセッサ１の端子数よりも削減することができるのである。他の構成および動作は従来構成と同様である。
【００２２】
（実施の形態）
本実施形態は、図１に示すように、２つのデータメモリ５ａ，５ｂを設け、一方のデータメモリ５ｂを専用プロセッサコア１′およびＢＩＵ９と同じチップに集積した集積回路１０ｃを構成したものである。
【００２３】
参考例１でも説明したように、専用プロセッサコア１′は基本的には５段パイプライン動作で命令を実行するのであるが、プログラマブルコントローラに特有な命令を処理するには、１つの命令の実行により多くの段階が必要になる場合もある。
【００２４】
たとえば、出力命令はデータメモリ５（５ａ，５ｂ）中の特定の１ビットを更新する命令であって、従来構成ではデータメモリ５からワード単位でデータを読み込み、対象となるビットを更新した後に、データメモリ５にワード単位で書き戻すという処理になる。つまり、出力命令を実行するにはデータメモリ５に２度アクセスすることになる。そこで、１命令でデータメモリ５へのアクセスが複数回になるような命令を実行する際には、後続の命令の実行を一時停止して、データメモリ５に必要な回数のアクセスを行う例外処理が必要になる。この種の命令にはデータメモリ５へのアクセス回数が２回程度ではなく、何度もアクセスの必要な命令もあり、そのような命令の実行には多くの時間が必要になる。とくに、タイマ命令やカウンタ命令を実行するには多くの情報が必要であって、この種の情報が４８ビットであるものとし、データメモリ５のワード幅が１６ビット幅であるとすれば、３回のアクセスが必要になる。つまり、図２（ａ）に示すように、読出と書込とを３回ずつ行うことになり、この種の命令の実行には５段階よりも多くの段階を要することになる。
【００２５】
しかして、本実施形態では専用プロセッサコア１′と同一チップにデータメモリ５ｂを集積しているから、このデータメモリ５ｂについては集積回路１０ｃの外部のデータメモリ５ａよりもデータバスの幅を広く設定しておくことによって、タイマ命令やカウンタ命令でのデータメモリ５ｂへのアクセス回数を低減することが可能になる。たとえば、上述の例ではデータメモリ５ｂのデータバスを４８ビットに設定しておくことによって、従来は３回ずつの読出と書込とを要していた命令が図２（ｂ）のように１回ずつの読出と書込とでよいことになり、命令の実行時間を大幅に短縮することができる。つまり、専用プロセッサコア１′で実行する命令に応じて集積回路１０ｃの外部のデータメモリ５ａと内部のデータメモリ５ｂとを使い分けることによって処理の高速化が可能になる。他の構成および動作は従来構成と同様である。
【００２６】
（参考例３）
本例は、図６に示すように、従来構成のうち周辺ＩＣに相当する機能コア７′を専用プロセッサコア１′とともに１チップ化したものである。専用プロセッサコア１′を設けた集積回路１０ｄには、ＢＩＵ９および通信管理バッファ１１も集積される。通信管理バッファ１１は、機能コア７′を介して外部装置と通信する際の汎用プロセッサ２の負荷を軽減するものであって、通信時の受信データのエラー判定を集積回路１０ｄの内部で実施可能とするものである。
【００２７】
一般に、受信データには、通信内容を示すヘッダと、受信データがノイズなどの影響で破壊されていないか否かを判定するための判定ビット列とが含まれているから、通信管理バッファ１１では判定ビット列によって正常か否かを判定するとともに、ヘッダの内容が通信プロトコルに従っているか否かを判断する。ここで、通信管理バッファ１１において判定ビット列あるいはヘッダの内容の不備を検出すると、ただちに機能コア７′から外部装置にエラーを返させる。また、通信管理バッファ１１では受信データが正常と判断されたときには、汎用プロセッサ２に対して受信データが存在することを通知する。このように、汎用プロセッサ２では受信データのエラー判定を行う必要がないから、汎用プロセッサ２での通信処理に対する負荷が軽減されるのである。また、汎用プロセッサ２の通信処理に対する負荷が軽減されることによって、汎用プロセッサ２の処理能力の余剰分で通信機能を拡張することも可能になる。他の構成および動作は従来構成と同様である。
【００２８】
本例の構成では従来構成に比較して周辺ＩＣに相当する機能コア７′を集積回路１０ｄに内蔵したことによって、部品点数が削減されることになり、結果的に実装面積が小さくなり、プログラマブルコントローラの小型化につながるのである。
【００２９】
なお、上述した実施の形態および参考例の構成は適宜に組み合わせて用いることも可能である。
【図面の簡単な説明】
【００３０】
【図１】本発明の実施の形態を示すブロック図である。
【図２】（ａ）は従来例の動作説明図、（ｂ）は図１に示した構成の動作説明図である。
【図３】参考例１を示すブロック図である。
【図４】（ａ）は従来例の動作説明図、（ｂ）は図３に示した構成の動作説明図である。
【図５】参考例２を示すブロック図である。
【図６】参考例３を示すブロック図である。
【図７】従来例を示すブロック図である。
【符号の説明】
【００３１】
１  専用プロセッサ
１′  専用プロセッサコア
２  汎用プロセッサ
３  システムメモリ
４  命令メモリ
５  データメモリ
５ａ，５ｂ  データメモリ
６  微分メモリ
７  周辺ＩＣ
７′  機能コア
８  入出力部
９  バスインタフェースユニット
１０ａ〜１０ｄ  集積回路
１１  通信管理バッファ
【図１】
2008226276.tif 000003
【図２】
2008226276.tif 000004
【図３】
2008226276.tif 000005
【図４】
2008226276.tif 000006
【図５】
2008226276.tif 000007
【図６】
2008226276.tif 000008
【図７】
2008226276.tif 000009