(57)【要約】【課題】ＲＩＳＣ方式でパイプライン処理を行うプログラマブルコントローラにおいて、パイプラインの段数を減らし、ハードウェア量を減らす。【解決手段】パイプライン処理の各命令の実行は、  プログラムメモリから命令を読み出すインストラクションフェッチＩＦと、  読み出した命令のインストラクションデコードＩＤとメモリアクセスＭＡの並行処理と、  メモリアクセスで読み出したデータが不要であればそれを仕様しない論理演算の実行ＥＸＥとからなる演算ステップとする。【選択図】図１
2008129667.tif 000002
【特許請求の範囲】
【請求項１】
ＲＩＳＣ方式でパイプライン処理を行うプログラマブルコントローラであって、
パイプライン処理の各命令を実行する演算部は、
プログラムメモリから命令を読み出すインストラクションフェッチＩＦと、
前記読み出した命令のインストラクションデコードＩＤとメモリアクセスＭＡの並行処理と、
前記メモリアクセスで読み出したデータが不要であればそれを使用しない論理演算の実行ＥＸＥと、
からなる演算ステップで実行する構成にしたことを特徴とするプログラマブルコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＲＩＳＣ方式でパイプライン処理を行うプログラマブルコントローラに係り、特に演算速度を上げるための演算処理方式に関する。
【背景技術】
【０００２】
プログラマブルコントローラのアプリケーションプログラムは、ラダー言語が最も一般的であり、その実行にはアプリケーションプログラムの性質上、先頭から順番に実行し、分岐も極めて少ない。したがって、演算速度を向上させるためには、ＲＩＳＣ（Reduced Instruction Set Computer）プロセッサのようなパイプライン処理方式が最もふさわしく、この方式を利用したプログラマブルコントローラも提案されている（例えば、特許文献１参照）。
【０００３】
図３はラダープログラムの例を示し、そのプログラムメモリへの展開を図４に表として示す。このプログラムをＲＩＳＣプロセッサで実行すると、図５のようなフローになる。各命令は、インストラクションフェッチＩＦと、インストラクションデコードＩＤと、メモリアクセスＭＡおよび演算ＥＸＥからなり、これらが各ステップで並列処理される。例えば、ステップｎでは、命令１の演算ＥＸＥと命令２のメモリアクセスＭＡと命令３のデコードＩＤと命令４のフェッチＩＦが並列処理される。
【０００４】
このときのプロセッサのブロック構成は図６のようになる。プログラムメモリＰＭには図４に示すようなプログラムが格納される。命令フェッチは、プログラムカウンタＰＣの値をプログラムメモリＰＭのアドレスとして１つの命令（オペコードとオペランド）をデータとしてインストラクションレジスタＩＲに読み出す。デコーダＤＥＣはオペコードを解読し、これらを縮小命令化してコントロールレジスタＣＴＲＬＲＥＧ１，２，…に順次転送する。
【０００５】
インストラクションレジスタＩＲのオペランドは、オペランドレジスタＯＰＲＲＥＧおよびアドレスレジスタＡＤＲＲＥＧに取り込まれ、アドレスレジスタＡＤＲＲＥＧにはオペランドに対応するデータメモリＤＭのアドレス指定をし、このアドレス指定によりデータメモリＤＭから読み出したデータをデータレジスタＤＡＴＡＲＥＧへ転送する。また、オペランドレジスタＯＰＲＲＥＧに取り出されるオペランドがモディファイされてモディファイレジスタＭＯＤＢＵＦに保持され、コントロールレジスタＣＴＲＬＲＥＧ１のデータによりデータレジスタＤＡＴＡＲＥＧへの転送データが切り替えられる。
【０００６】
論理演算ユニットＬＵは、コントロールレジスタＣＴＲＬＲＥＧ１，２の制御の基に、マルチプレクサＭＵＸおよデータスタックＤＳを介したデータの選択的な取り込みと論理演算を実行する。
【特許文献１】特開平５−１８９０１４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
ＲＩＳＣ方式によるパイプライン処理では、クロック毎に実行ステートを分割および割り当てることにより、クロック周波数を上げて実質的に演算速度を高めることができる。
【０００８】
しかし、実行制御部分のハードウェアはシンプルになるが、パイプラインが多段になり、この部分（図６ではコントロールレジスタＣＴＲＬＲＥＧ１、２、…と、これらによる制御）の回路量が増大する問題がある。
【０００９】
本発明の目的は、上記の課題を解決したプログラマブルコントローラを提供することにある。
【課題を解決するための手段】
【００１０】
本発明は、プログラマブルコントローラの命令の殆どが、オペランドのアドレスからデータを読み出し、演算を行っていることに着目し、命令をデコードした結果によってデータメモリをアクセスする従来方式に代えて、全ての命令でデコードと同時に命令アクセス（オペランドデータの読み出し）を行い、各命令の実行時に読み出したデータが不要であれば使用しない演算処理方式とすることで、前記の課題を解決したもので、以下の方式を特徴とする。
【００１１】
（１）ＲＩＳＣ方式でパイプライン処理を行うプログラマブルコントローラであって、
パイプライン処理の各命令を実行する演算部は、
プログラムメモリから命令を読み出すインストラクションフェッチＩＦと、
前記読み出した命令のインストラクションデコードＩＤとメモリアクセスＭＡの並行処理と、
前記メモリアクセスで読み出したデータが不要であればそれを使用しない論理演算の実行ＥＸＥと、
からなる演算ステップで実行する構成にしたことを特徴とする。
【発明の効果】
【００１２】
以上のとおり、本発明によれば、命令のデコードと同時に命令アクセス（オペランドデータの読み出し）を行い、各命令の実行時に読み出したデータが不要であればそのデータを使用しないようにしたため、パイプラインの段数を減らし、ハードウェア量を減らすことができる。また、分岐する命令など、パイプラインをクリアしなければならない命令のとき、ロスが少なくなる。
【発明を実施するための最良の形態】
【００１３】
図１は、本発明の実施形態を示す実行フローである。同図が図５と異なる部分は、各命令が、インストラクションフェッチＩＦと、インストラクションデコードＩＤとメモリアクセスＭＡの並行処理、および演算ＥＸＥからなる点にある。
【００１４】
このような実行フローは、各ステップで並列処理される。例えば、ステップｎでは、命令２の演算ＥＸＥと、命令３のメモリアクセスＭＡとデコードＩＤの並行処理と、命令４のフェッチＩＦ処理になる。
【００１５】
このときのプロセッサのブロック構成は図２のようになる。同図が図６と異なる回路部分は、従来のアドレスレジスタＡＤＲＲＥＧとオペランドレジスタＯＰＲＲＥＧが省略され、コントロールレジスタＣＴＲＬＲＥＧ１，２に代えて１つのコントロールレジスタＣＴＲＬＲＥＧにされる。
【００１６】
本実施形態によれば、命令のデコードと同時に命令アクセス（オペランドデータの読み出し）を行い、各命令の実行時に読み出したデータが不要であれば使用しないという演算処理になり、パイプラインの段数を減らし、ハードウェア量を減らすことができる。また、分岐する命令など、パイプラインをクリアしなければならない命令のとき、ロスが少なくなる。
【図面の簡単な説明】
【００１７】
【図１】本発明の実施形態を示すパイプライン処理の実行フロー。
【図２】本発明の実施形態を示す演算部のブロック図。
【図３】ラダープログラムの例。
【図４】図３のプログラムの例。
【図５】ＲＩＳＣ方式によるパイプライン処理の実行フロー。
【図６】ＲＩＳＣ方式による演算部のブロック図。
【符号の説明】
【００１８】
ＰＭ  プログラムメモリ
ＤＭ  データメモリ
ＰＣ  プログラムカウンタ
ＩＲ  インストラクションレジスタ
ＯＰＲＲＥＧ  オペランドレジスタ
ＤＥＣ  デコーダ
ＤＳ  データスタック
ＭＵＸ  マルチプレクサ
ＬＵ  論理演算ユニット
ＡＤＲＲＥＧ  アドレスレジスタ
ＤＡＴＡＲＥＧ  データレジスタ
ＭＯＤＢＵＦ  モディファイレジスタ
ＣＴＲＬＲＥＧ  コントロールレジスタ
【図１】
2008129667.tif 000003
【図２】
2008129667.tif 000004
【図３】
2008129667.tif 000005
【図４】
2008129667.tif 000006
【図５】
2008129667.tif 000007
【図６】
2008129667.tif 000008