(57)【特許請求の範囲】
【請求項１】
数値演算などの応用命令処理を汎用マイクロプロセッサで行い、接点命令などの基本命令処理を専用プロセッサで行うプログラマブルコントローラにおいて、
ラダーシーケンス用プログラムメモリとデータメモリのバスを分離し、前記専用プロセッサは、前記プログラムメモリとデータメモリに対して同時にアクセス可能とし、かつプログラムメモリからリードしたデータを多段にしたパイプライン処理を行い、該パイプライン処理に際して、ラダープログラムの命令の演算処理が複数ステップになるとき、全ての命令の最後のステップでプログラムメモリのリードと、そのカウンタのインクリメント、オペランドデータのリード、デコードを行い、
前記専用プロセッサは、内部の命令コードのデコードの際に、前記汎用マイクロプロセッサからリード可能なレジスタにその命令の処理プログラム格納アドレスを示すデータと、専用プロセッサの処理命令か汎用マイクロプロセッサの処理命令かを示すデータを加えて汎用マイクロプロセッサにポーリングさせ、
前記汎用マイクロプロセッサは、その区分の命令を認識すると読み出した当該命令の処理プログラム格納アドレスを示すデータを使用し、当該命令の処理プログラムに分岐し処理を行い、前記専用プロセッサがプリフエッチしたオペランドデータ等を読み出して演算処理を行うことを特徴とするプログラマブルコントローラ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、プログラマブルコントローラに係り、特に演算を高速に行うための演算部の構成に関する。
【０００２】
【従来の技術】
プログラマブルコントローラは、プログラムメモリ上に格納されたユーザプログラム命令の羅列を、順次読み出し、解析し、その結果に基づき高速に演算実行する。特にラダーシーケンスの演算は高速性が要求される。
【０００３】
プログラマブルコントローラの命令は、接点命令などの基本命令と数値演算などの応用命令に大別される。ラダーシーケンスのプログラムでは、基本命令の出現比率が高く、この演算を高速に処理することが、全体的な高速演算の実現につながる。
【０００４】
さて、図２に一般的なプログラマブルコントローラの演算部の構成を示す。演算部は、数値演算などの応用命令処理に汎用マイクロプロセッサ（又は汎用ＤＳＰ）１とメモリ２、３を、接点命令などの基本命令処理に専用プロセッサ（又は専用ＬＳＩ）４を用いる。５は、ラダーシーケンス用プログラムメモリ・データメモリである。
【０００５】
この構成は、先に述べたように、基本命令は演算処理が単純であるが出現比率が高く、応用命令は演算処理が基本命令に比べ複雑であるが出現比率が低いため、コストパフォーマンスに優れるからである。また、プログラマブルコントローラで演算性能に大きく影響を与える要素として命令のフェッチがある。
【０００６】
図２の構成において、接点命令などの基本命令処理を行う専用プロセッサは、主な要素はユーザプログラム命令の順次読み出しやオペランドのデータを読み出すメモリインタフェース部４1、ユーザ命令を解析するデコード部４2、そして演算部４3からなる。
【０００７】
この基本命令処理を行う専用プロセッサ４は、汎用マイクロプロセッサ１からの起動指示によりプログラム命令を読み出し、デコードし、デコード内容によりオペランドのデータを読み出しと演算を行う。これらは、単純な繰り返し処理であるためハードウェア回路だけの実現が容易である。
【０００８】
【発明が解決しようとする課題】
プログラマブルコントローラは、時代と共に更なる演算性能の向上を求められてきている。
【０００９】
しかし、従来の構成では、基本命令処理（専用）プロセッサの処理でプログラム命令の読み出しとオペランドの読み出しなどメモリ素子へのアクセスタイムが演算の高速化のネックとなる。また、プログラムメモリの順次読み出しにおける応用命令へのランダムな遭遇による汎用マイクロプロセッサと基本命令処理用専用プロセッサへの処理切り替え時間がネックとなり、大幅な演算性能の向上が望めない。
【００１０】
本発明の目的は、主に基本命令処理プロセッサの処理を高速化するプログラマブルコントローラを提供することにある。
【００１１】
【課題を解決するための手段】
本発明は、数値演算などの応用命令処理を汎用マイクロプロセッサで行い、接点命令などの基本命令処理を専用プロセッサで行うプログラマブルコントローラにおいて、
ラダーシーケンス用プログラムメモリとデータメモリのバスを分離し、前記専用プロセッサは、前記プログラムメモリとデータメモリに対して同時にアクセス可能とし、かつプログラムメモリからリードしたデータを多段にしたパイプライン処理を行い、該パイプライン処理に際して、ラダープログラムの命令の演算処理が複数ステップになるとき、全ての命令の最後のステップでプログラムメモリのリードと、そのカウンタのインクリメント、オペランドデータのリード、デコードを行い、
前記専用プロセッサは、内部の命令コードのデコードの際に、前記汎用マイクロプロセッサからリード可能なレジスタにその命令の処理プログラム格納アドレスを示すデータと、専用プロセッサの処理命令か汎用マイクロプロセッサの処理命令かを示すデータを加えて汎用マイクロプロセッサにポーリングさせ、
前記汎用マイクロプロセッサは、その区分の命令を認識すると読み出した当該命令の処理プログラム格納アドレスを示すデータを使用し、当該命令の処理プログラムに分岐し処理を行い、前記専用プロセッサがプリフエッチしたオペランドデータ等を読み出して演算処理を行うことを特徴とする。
【００１４】
【発明の実施の形態】
図１は、本発明の実施形態を示すプログラマブルコントローラの演算部の構成であり、ラダーシーケンス用プログラムメモリとデータメモリのバスを分離し、基本命令専用プロセッサから同時にアクセス可能とする。
【００１５】
基本命令専用プロセッサ６は、プログラムメモリ５Ａとデータメモリ５Ｂに対し別々にインタフェースを持たせ、プログラムメモリの読み込み部にはレジスタ６1、６2、６3を多段に設け、パイプライン処理を可能にする。即ち、カレントの命令の演算を実行している時、データメモリインタフェース６4ではカレントの次の命令のオペランドをリードし、プログラムメモリインタフェース部では、カレントの２つ後の命令をリードしていると言う具合である。
【００１６】
接点命令などの基本命令は、処理が単純で１ステップの演算で済み、ハード化が容易であったが、本発明では、小規模なマイクロコード処理を行い数値演算命令でも処理の単純なものは専用プロセッサ６で処理する。
【００１７】
パイプライン処理の整合は、下記表に例を示すように、全てのユーザ命令の最後のステップでプログラムメモリのリードとオペランドデータのリードを行うことで行う。これにより、カレントの命令の処理開始ステップに、オペランドのデータなどを揃え、直ちに演算回路６5で演算を行える状態とし、みせかけの演算性能は演算ステップだけとなる。
【００１８】
【表１】
0003646445.tif 000002
【００１９】
また、複雑な数値演算命令やブロック命令などの応用命令は汎用マイクロプロセッサ１で処理させるが、専用プロセッサ６内部の命令コードのデコードの際に、汎用マイクロプロセッサ１からリード可能なレジスタにその命令の処理プログラム格納アドレスを示すデータと、専用プロセッサ６の処理命令か汎用マイクロプロセッサ１の処理命令かを示すデータを加えて、汎用マイクロプロセッサ１にポーリングさせる。
【００２０】
汎用マイクロプロセッサ１は、汎用マイクロプロセッサの区分の命令を認識すると読み出した当該命令の処理プログラム格納アドレスを示すデータを使用し、当該命令の処理プログラムに分岐し処理を行う。処理では専用プロセソサ６がプリフエッチしたオペランドデータ等を専用プロセッサから読み出し演算処理を行う。
【００２１】
【発明の効果】
以上のとおり、本発明によれば、ラダーシーケンス用プログラムメモリとデータメモリの分離とラダープログラム命令のパイプライン処理により、演算処理ステップのみがみせかけの演算時間となり、接点などの基本命令では１ステップが見せかけの演算時間となり、演算の高速化を実現できる。
【００２２】
また、単純な数値演算も専用プロセッサに取り込むことが可能であり、ラダー命令に特化した無駄のない処理が可能となり、高速演算が実現できる。
【００２３】
また、汎用マイクロプロセッサは、専用プロセッサから処理を切り替えられたとき、直ちに当該命令の処理プログラムに分岐できるほか、演算データも揃っており高速処理が実現できる。
【図面の簡単な説明】
【図１】本発明の実施形態を示すプログラマブルコントローラの演算部の構成図。
【図２】従来の一般的なプログラマブルコントローラの演算部の構成図。
【符号の説明】
１…汎用マイクロプロセッサ
４…専用プロセッサ
５…ラダーシーケンス用プログラムメモリ・データメモリ
５Ａ…プログラムメモリ
５Ｂ…データメモリ
６…専用プロセッサ
６1〜６3…レジスタ
６4…インタフェース
６5…演算回路
【図１】
0003646445.tif 000003
【図２】
0003646445.tif 000004