(57)【特許請求の範囲】
【請求項１】
マルチタスク機能を有し、アプリケーションデータ格納用メモリ（ＤＭ）にスタック領域を持たせ、このスタック領域をアクセスするためのスタックポインタ（ＳＰ）を演算用ＬＳＩ内部に備えたプログラマブルコントローラにおいて、
前記演算用ＬＳＩは、第１のインストラクションレジスタ、第２のインストラクションレジスタ、第３のインストラクションレジスタによるアプリケーションプログラムの順次転送で、アプリケーションプログラム格納用プログラムメモリ（ＰＭ）からのアプリケーションプログラムのプリフェッチ処理と、アプリケーションデータ格納用メモリ（ＤＭ）からのアプリケーションデータのプリリード処理を並列して順次実行するパイプライン方式を採用し、
前記メモリ（ＤＭ）に対してアドレスを与えるために、アドレスポインタとスタックポインタ（ＳＰ）をマルチプレクサで選択するものであり、かつ、前記マルチプレクサを制御するためのアドレス選択コマンドと、前記メモリ（ＤＭ）へのリードコマンドをマイクロコードの解析結果から同時に出力するものであること
を特徴とするプログラマブルコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラマブルコントローラに係り、特にアプリケーションデータ格納メモリ（データメモリ）のアクセス制御に関する。
【背景技術】
【０００２】
一般に、プログラマブルコントローラの演算回路は、図２のように、アプリケーションプログラムを格納するプログラムメモリ（ＰＭ）１、アプリケーションデータを格納するデータメモリ（ＤＭ）２、演算用ＬＳＩ３、管理用ＣＰＵ４で構成されている。
【０００３】
図３はプログラマブルコントローラのブロック構成を示す。演算用ＬＳＩ３は、ＰＣ（プログラムカウンタ）１１の値をアドレスとして、ＰＭ１に格納されているアプリケーションプログラムをフェッチしてプログラムを順次実行していく。演算速度を向上させるために、演算用ＬＳＩ３はインストラクションレジスタ１２，１３，１４によるアプリケーションプログラムの順次転送でアプリケーションプログラムのプリフェッチ処理、アプリケーションデータのプリリード処理を並列して順次実行するパイプライン方式を採用している（例えば特許文献１参照）。例えば、図３のＴ２はアプリケーションデータのプリリード時のＤＭ２へのアドレスがオペランドになる。
【０００４】
また、演算用ＬＳＩ３は、内部にマイクロコードを搭載して、マイクロコード方式を採用している。マイクロコードとはアプリケーションプログラムを実行する為の演算用ＬＳＩ内部プログラムのことであり、図３ではレジスタ１２に読み出されたオペコードをマッピングＲＡＭ１５，マップレジスタ１６，マイクロコードＲＡＭ１７，マイクロコードレジスタ１８およびデコーダ１９によって複数のマイクロコード命令を逐次発生する。
【０００５】
また、プログラマブルコントローラがマルチタスク機能を有している場合、アプリケーションデータ格納用メモリ（ＤＭ）２にスタック領域を持たせて、そのスタック領域をアクセスするためのスタックポインタ（ＳＰ）２０を演算用ＬＳＩ内部に有している。アプリケーションデータ領域をアクセスする場合は、インストラクションコードのオペランドをアドレスとして、オペランドをマルチプレクサ２１を介してＤＭアドレスポインタ（ＤＰ）２２に格納し、ＤＭ２へのアクセスを行っている。この処理はパイプライン処理（プリリード）の中で行われるため、高速に実行されている。
【０００６】
２３はインストラクションスタック、２４はマルチプレクサ、２５は演算器（ＡＬＵ）、２６は汎用レジスタ、２７はデータスタックである。
【特許文献１】特開２００２−２９７３７６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
前記のように、アプリケーションデータ格納用メモリ（ＤＭ）２にスタック領域を持たせて、そのスタック領域をアクセスする場合、マイクロコードにてスタックポインタ（ＳＰ）２０をＤＭアドレスポインタ（ＤＰ）２２にロードしてから、スタック領域をアクセスする構造となっている。その後にマイクロコードからＤＭ２へのリードコマンドが発行されてスタック領域へのアクセス処理が行われる。
【０００８】
この場合、スタック領域にアクセスするたびにマイクロコードによりスタックポインタＳＰ２０からＤＰ２２にロードする必要がある為、スタック領域へのアクセスが遅くなる。
【０００９】
本発明の目的は、データメモリのスタック領域への高速アクセスができるプログラマブルコントローラを提供することにある。
【課題を解決するための手段】
【００１０】
本発明は、アプリケーションデータ格納メモリ（ＤＭ）に対するアドレス制御は、アドレスポインタとスタックポインタ（ＳＰ）をマルチプレクサで選択し、メモリ（ＤＭ）のスタック領域に、マイクロコードからＤＭアドレス選択コマンドとＤＭリードコマンドを同時に出力することでスタック領域へのアクセスの高速化を可能とするもので、以下の構成を特徴とする。
【００１１】
（１）マルチタスク機能を有し、アプリケーションデータ格納用メモリ（ＤＭ）にスタック領域を持たせ、このスタック領域をアクセスするためのスタックポインタ（ＳＰ）を演算用ＬＳＩ内部に備えたプログラマブルコントローラにおいて、
前記演算用ＬＳＩは、第１のインストラクションレジスタ、第２のインストラクションレジスタ、第３のインストラクションレジスタによるアプリケーションプログラムの順次転送で、アプリケーションプログラム格納用プログラムメモリ（ＰＭ）からのアプリケーションプログラムのプリフェッチ処理と、アプリケーションデータ格納用メモリ（ＤＭ）からのアプリケーションデータのプリリード処理を並列して順次実行するパイプライン方式を採用し、
前記メモリ（ＤＭ）に対してアドレスを与えるために、アドレスポインタとスタックポインタ（ＳＰ）をマルチプレクサで選択するものであり、かつ、前記マルチプレクサを制御するためのアドレス選択コマンドと、前記メモリ（ＤＭ）へのリードコマンドをマイクロコードの解析結果から同時に出力するものであることを特徴とする。
【発明の効果】
【００１２】
以上のとおり、本発明によれば、アプリケーションデータ格納メモリ（ＤＭ）に対するアドレス制御は、アドレスポインタとスタックポインタ（ＳＰ）をマルチプレクサで選択し、この選択にはメモリ（ＤＭ）のスタック領域に、マイクロコードからＤＭアドレス選択コマンドとＤＭリードコマンドを同時に出力するため、スタック領域へのアクセスの高速化が可能となる。
【発明を実施するための最良の形態】
【００１３】
図１は、本発明の実施形態を示すプログラマブルコントローラのブロック構成である。同図が図３と異なる部分は、データメモリ（ＤＭ）２へのアクセス制御にある。
【００１４】
図１において、データメモリ（ＤＭ）２に対するアドレス制御は、ＤＭアドレスポインタ２２とスタックポインタ２０をマルチプレクサ２１で選択とする。ＤＭアドレスポインタ２２はインストラクションレジスタ１３と１４のいずれか一方のオペランドがセットされる。
【００１５】
マルチプレクサ２１の選択信号は、デコーダ１９によるマイクロコードの解読結果から選択できるようにする。このとき、ＤＭアドレスの選択コマンドとＤＭへのリードコマンドを同時に出力できるようにする。これにより、データメモリ（ＤＭ）２のスタック領域へのアクセスは１マイクロコードサイクルで実行できる。
【図面の簡単な説明】
【００１６】
【図１】本発明の実施形態を示すプログラマブルコントローラのブロック構成。
【図２】プログラマブルコントローラの全体構成
【図３】従来のプログラマブルコントローラのブロック構成。
【符号の説明】
【００１７】
１  プログラムメモリ
２  データメモリ
３  演算用ＬＳＩ
４  管理用ＣＰＵ
２０  スタックポインタ
２１  マルチプレクサ
２２  ＤＭアドレスポインタ
【図１】
0005292831.tif 000002
【図２】
0005292831.tif 000003
【図３】
0005292831.tif 000004