JP2594562B2 - プログラマブル・コントローラ - Google Patents
プログラマブル・コントローラInfo
- Publication number
- JP2594562B2 JP2594562B2 JP62139927A JP13992787A JP2594562B2 JP 2594562 B2 JP2594562 B2 JP 2594562B2 JP 62139927 A JP62139927 A JP 62139927A JP 13992787 A JP13992787 A JP 13992787A JP 2594562 B2 JP2594562 B2 JP 2594562B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- bit
- macro
- bit operation
- program
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/10—Plc systems
- G05B2219/15—Plc structure of the system
- G05B2219/15127—Bit and word, byte oriented instructions, boolean and arithmetic operations
Landscapes
- Programmable Controllers (AREA)
Description
【発明の詳細な説明】 〔産業上の利用分野〕 本発明はプログラマブル・コントローラ、特に、ビッ
ト演算命令と、より複雑な処理に対応するマクロ命令と
からなるプログラムを実行するプログラマブル・コント
ローラに関する。
ト演算命令と、より複雑な処理に対応するマクロ命令と
からなるプログラムを実行するプログラマブル・コント
ローラに関する。
シーケンス制御を行なうプログラマブル・コントロー
ラを動作させるプログラムは、リレー動作に対応するビ
ット演算命令、より複雑な演算や制御を行わせるための
マクロ命令、あるいは、より高級なプログラム言語、例
えばPASCAL等の命令によって記述される。
ラを動作させるプログラムは、リレー動作に対応するビ
ット演算命令、より複雑な演算や制御を行わせるための
マクロ命令、あるいは、より高級なプログラム言語、例
えばPASCAL等の命令によって記述される。
ところで、プログラマブル・コントローラにおいて
は、上記のビット演算命令とマクロ命令とから構成され
るラダー言語(以下でラダー文とも称す)によるプログ
ラムがよく用いられる。ラダー言語によるプログラムに
対しては、これをリレーのシーケンス・ダイヤグラムに
対応するラダー・ダイヤフラムとして表示させるコンバ
ータが開発されており、プログラム作成やデバッキング
も容易であり、またシーケンス制御動作に直接対応する
手順でプログラムが作成されるため、プログラマブル・
コントローラにおいても処理が高速に、効率良く行なわ
れ得るという利点を有している。
は、上記のビット演算命令とマクロ命令とから構成され
るラダー言語(以下でラダー文とも称す)によるプログ
ラムがよく用いられる。ラダー言語によるプログラムに
対しては、これをリレーのシーケンス・ダイヤグラムに
対応するラダー・ダイヤフラムとして表示させるコンバ
ータが開発されており、プログラム作成やデバッキング
も容易であり、またシーケンス制御動作に直接対応する
手順でプログラムが作成されるため、プログラマブル・
コントローラにおいても処理が高速に、効率良く行なわ
れ得るという利点を有している。
上記のラダー言語を構成する命令のうち、ビット演算
命令は、ビット論理演算のみを行なうビット演算プロセ
ッサを用いることにより高速、且つ、効率良く処理され
る。他方、マクロ命令は、ビット演算プロセッサにては
処理し得ず、複数ビットのマイクロプロセッサにより処
理され得るものである。
命令は、ビット論理演算のみを行なうビット演算プロセ
ッサを用いることにより高速、且つ、効率良く処理され
る。他方、マクロ命令は、ビット演算プロセッサにては
処理し得ず、複数ビットのマイクロプロセッサにより処
理され得るものである。
以上のような状況にあって、従来、ビット演算命令と
マクロ命令とからシーケンス制御動作の手順で書かれた
ラダー言語によるプログラムを高速、且つ、効率良く処
理することのできるプログラマブル・コントローラが要
望されていた。
マクロ命令とからシーケンス制御動作の手順で書かれた
ラダー言語によるプログラムを高速、且つ、効率良く処
理することのできるプログラマブル・コントローラが要
望されていた。
前述のように、ビット演算命令とマクロ命令とからシ
ーケンス制御動作の手順で書かれたラダー言語によるプ
ログラムを、高速、且つ、効率良く処理するプログラマ
ブル・コントローラが存在しないという問題があった。
ーケンス制御動作の手順で書かれたラダー言語によるプ
ログラムを、高速、且つ、効率良く処理するプログラマ
ブル・コントローラが存在しないという問題があった。
本発明は上記の問題点に鑑みなされたもので、ビット
演算命令とマクロ命令とからシーケンス制御動作の手順
で書かれたラダー言語によるプログラムを高速、且つ、
効率良く処理するプログラマブル・コントローラを提供
することを目的とするものである。
演算命令とマクロ命令とからシーケンス制御動作の手順
で書かれたラダー言語によるプログラムを高速、且つ、
効率良く処理するプログラマブル・コントローラを提供
することを目的とするものである。
第1図は本発明の基本的構成図である。本図におい
て、1はマイクロプロセッサ、2はメモリ、3は命令識
別部、4は割込み制御部、5はマクロ命令転送部、そし
て6はビット演算処理部である。
て、1はマイクロプロセッサ、2はメモリ、3は命令識
別部、4は割込み制御部、5はマクロ命令転送部、そし
て6はビット演算処理部である。
メモリ2はビット演算命令と、該ビット演算命令より
複雑な処理に対応するマクロ命令とからなるプログラム
を格納する。
複雑な処理に対応するマクロ命令とからなるプログラム
を格納する。
命令識別部3は前記メモリ2から前記プログラムの命
令を読出して、該命令がビット演算命令であるか、マク
ロ命令であるかを識別する。
令を読出して、該命令がビット演算命令であるか、マク
ロ命令であるかを識別する。
割込み制御部4は前記命令がマクロ命令であるとき、
前記マイクロプロセッサ1に対して割込み要求を送る。
前記マイクロプロセッサ1に対して割込み要求を送る。
マクロ命令転送部5は前記命令がマクロ命令であると
き、該マクロ命令を前記マイクロプロセッサ1へ転送す
る。
き、該マクロ命令を前記マイクロプロセッサ1へ転送す
る。
マイクロプロセッサ1は割込み要求を受けると、マク
ロ命令を読込んで、これを実行する。
ロ命令を読込んで、これを実行する。
ビット演算処理部6は前記命令がビット演算命令であ
るとき、該命令を読込んで、これを実行する。
るとき、該命令を読込んで、これを実行する。
本発明のプログラマブル・コントローラにおいては、
ビット演算命令とマクロ命令とから構成されるラダー言
語によるプログラムの命令をメモリ2から命令識別部3
へ読出し、ここにおいてビット演算命令かマクロ命令か
を識別し、マクロ命令であるときは、マイクロプロセッ
サ1に割込み要求を送り、そして該マクロ命令をマイク
ロプロセッサ1に転送し、前記の読出した命令がビット
演算命令であるときはビット演算処理部6へ送り、ビッ
ト演算命令は該ビット演算処理部6において実行され
る。
ビット演算命令とマクロ命令とから構成されるラダー言
語によるプログラムの命令をメモリ2から命令識別部3
へ読出し、ここにおいてビット演算命令かマクロ命令か
を識別し、マクロ命令であるときは、マイクロプロセッ
サ1に割込み要求を送り、そして該マクロ命令をマイク
ロプロセッサ1に転送し、前記の読出した命令がビット
演算命令であるときはビット演算処理部6へ送り、ビッ
ト演算命令は該ビット演算処理部6において実行され
る。
こうして、ラダー言語によるプログラムを構成するビ
ット演算命令と、マクロ命令とが、それぞれ、最も効率
良く、且つ、高速に処理されるに適したビット演算処理
部6とマイクロプロセッサ1とにおいて処理される。
ット演算命令と、マクロ命令とが、それぞれ、最も効率
良く、且つ、高速に処理されるに適したビット演算処理
部6とマイクロプロセッサ1とにおいて処理される。
第2図は本発明のプログラマブル・コントローラの実
施例の構成図である。本図において、1はCPU、20はマ
ルチ・ポート・メモリ、21はDRAM制御部、22aは高速ス
タティックRAM(SRAM)、22bはスタティックRAMのイン
ターフェイス、30はラダー・プログラム処理部、51,52
はバスである。
施例の構成図である。本図において、1はCPU、20はマ
ルチ・ポート・メモリ、21はDRAM制御部、22aは高速ス
タティックRAM(SRAM)、22bはスタティックRAMのイン
ターフェイス、30はラダー・プログラム処理部、51,52
はバスである。
CPU1は汎用のマイクロプロセッサからなり、通常は、
後述するDRAM20aから、例えばPASCAL等の高級言語で書
かれたプログラムの命令を読出して、これを実行する。
後述するDRAM20aから、例えばPASCAL等の高級言語で書
かれたプログラムの命令を読出して、これを実行する。
マルチ・ポート・メモリ20は、本発明により、プログ
ラムを格納する2ポートのDRAM20aとシリアル・アクセ
ス・メモリ20bとからなるものである。ここで、シリア
ル・アクセス・メモリ20bは、DRAM20a内の任意の1行を
単位としてDRAM20aとの間で相互にデータの転送を行な
い得るもので、転送時以外はDRAM20aと独立に動作する
ことができるものである。第2図に示すようなマルチ・
ポート・メモリ20は1チップLSIとして市販されてお
り、例えば、富士通製MB81461等がある。この例ではシ
リアル・アクセス・メモリ(以下ではSAMと略す)20bは
256ビットの4つのシフトレジスタからなり、一回に256
×4ビットのブロック単位でDRAM20aからのデータ転送
が行なわれる。
ラムを格納する2ポートのDRAM20aとシリアル・アクセ
ス・メモリ20bとからなるものである。ここで、シリア
ル・アクセス・メモリ20bは、DRAM20a内の任意の1行を
単位としてDRAM20aとの間で相互にデータの転送を行な
い得るもので、転送時以外はDRAM20aと独立に動作する
ことができるものである。第2図に示すようなマルチ・
ポート・メモリ20は1チップLSIとして市販されてお
り、例えば、富士通製MB81461等がある。この例ではシ
リアル・アクセス・メモリ(以下ではSAMと略す)20bは
256ビットの4つのシフトレジスタからなり、一回に256
×4ビットのブロック単位でDRAM20aからのデータ転送
が行なわれる。
DRAM制御部21は、ダイナミックRAMコントローラ24、
アービタ25、ダイナミックRAMリフレッシュ・タイマ2
6、比較器27、スタート・アドレス・レジスタ28、プロ
グラム・カウンタ29を含む部分であって、DRAM20aからC
PU1へのプログラムの読出し、およびDRAM20aからSAM20b
へのデータの転送を制御する。
アービタ25、ダイナミックRAMリフレッシュ・タイマ2
6、比較器27、スタート・アドレス・レジスタ28、プロ
グラム・カウンタ29を含む部分であって、DRAM20aからC
PU1へのプログラムの読出し、およびDRAM20aからSAM20b
へのデータの転送を制御する。
スタート・アドレス・レジスタ28には、プログラマブ
ル・コントローラの動作開始時にCPU1よりバス51を介し
て、主にビット演算命令からなるラダー文で書かれたプ
ログラムの先頭アドレスが設定される。このスタート・
アドレスはプログラム・カウンタ29にプリセットされ、
プログラム・カウンタ29は、これをダイナミックRAMコ
ントローラ(以下ではDRAMCと略す)24へ送ると共に、
所定時間毎に該アドレスをインクリメントする。比較器
27は前記プログラム・カウンタ29の出力アドレスが256
ビットの倍数になる毎にれを検出して、アービタ25に対
してDRAM20aの1行(256ビット)分のデータをSAM20bへ
転送させるための要求を送る。
ル・コントローラの動作開始時にCPU1よりバス51を介し
て、主にビット演算命令からなるラダー文で書かれたプ
ログラムの先頭アドレスが設定される。このスタート・
アドレスはプログラム・カウンタ29にプリセットされ、
プログラム・カウンタ29は、これをダイナミックRAMコ
ントローラ(以下ではDRAMCと略す)24へ送ると共に、
所定時間毎に該アドレスをインクリメントする。比較器
27は前記プログラム・カウンタ29の出力アドレスが256
ビットの倍数になる毎にれを検出して、アービタ25に対
してDRAM20aの1行(256ビット)分のデータをSAM20bへ
転送させるための要求を送る。
ダイナミックRAMリフレッシュ・タイマ26は通常のDRA
Mのリフレッシュ動作を行なわせるものである。
Mのリフレッシュ動作を行なわせるものである。
アービタ25は前記比較器27、ダイナミックRAMリフレ
ッシュ・タイマ26、よびCPU1からのDRAM20aへのアクセ
ス要求を調停して、3者のうちで使用権を獲得したもの
の要求をDRAMC24へ伝達する。
ッシュ・タイマ26、よびCPU1からのDRAM20aへのアクセ
ス要求を調停して、3者のうちで使用権を獲得したもの
の要求をDRAMC24へ伝達する。
DRAMC24は、アービタ25の出力に基いて、DRAM20aから
CPU1へのプログラム読出し、DRAM20aからSAM20bへのプ
ログラム転送、あるいはDRAM20aのリフレッシュ動作の
いずれかを行なわせるように制御する。
CPU1へのプログラム読出し、DRAM20aからSAM20bへのプ
ログラム転送、あるいはDRAM20aのリフレッシュ動作の
いずれかを行なわせるように制御する。
SAM20bを構成する4つのシフトレジスタ20bからは、
前記のプログラム・カウンタ29におけるカウント動作と
同期する読出しクロック信号に同期して前述のラダー文
による命令が読出され、ラダー・プログラム処理部30へ
入力される。
前記のプログラム・カウンタ29におけるカウント動作と
同期する読出しクロック信号に同期して前述のラダー文
による命令が読出され、ラダー・プログラム処理部30へ
入力される。
ラダー・プログラム処理部30は、ビット演算プロセッ
サ31、フェッチ・ユニット32、およびマクロ・コマンド
・レジスタ33からなる。
サ31、フェッチ・ユニット32、およびマクロ・コマンド
・レジスタ33からなる。
前記SAM20bより読出されたラダー文による命令は、ま
ずフェッチ・ユニット32に入力される。一般にラダー文
は、主にビット演算命令からなるが、それに加えて、複
雑な処理や、制御を行わせるためのマクロ命令をも含ん
でいる。このマクロ命令はビット演算プロセッサ(以下
ではBPUと略す)31では処理できないので、フェッチ・
ユニット32においてビット演算命令とマクロ命令とを判
別し、ビット演算命令はBPU31へ入力し、他方、マクロ
命令は一旦マクロ・コマンド・レジスタ33に保持すると
共に、CPU1に対して割込み要求を送る。CPU1は、この割
込み要求を受けると、CPU1が独立に行なっていた高級言
語によるプログラムの実行を中断して、マクロ・コマン
ド・レジスタ33に保持されたマクロ命令を読込んで、こ
れを実行する。
ずフェッチ・ユニット32に入力される。一般にラダー文
は、主にビット演算命令からなるが、それに加えて、複
雑な処理や、制御を行わせるためのマクロ命令をも含ん
でいる。このマクロ命令はビット演算プロセッサ(以下
ではBPUと略す)31では処理できないので、フェッチ・
ユニット32においてビット演算命令とマクロ命令とを判
別し、ビット演算命令はBPU31へ入力し、他方、マクロ
命令は一旦マクロ・コマンド・レジスタ33に保持すると
共に、CPU1に対して割込み要求を送る。CPU1は、この割
込み要求を受けると、CPU1が独立に行なっていた高級言
語によるプログラムの実行を中断して、マクロ・コマン
ド・レジスタ33に保持されたマクロ命令を読込んで、こ
れを実行する。
BPU31は、フェッチ・ユニット32から送られたビット
演算命令を読込むと、必要なデータは、SRAMインターフ
ェイス22bを介して高速SRAM22aから読込んで、演算を実
行し、結果を再び該高速SRAM22aへ書込む。
演算命令を読込むと、必要なデータは、SRAMインターフ
ェイス22bを介して高速SRAM22aから読込んで、演算を実
行し、結果を再び該高速SRAM22aへ書込む。
第3図は前記DRAM20a内に格納されるプログラムの構
成例の概略を示すものである。本図において、Aで示さ
れる部分がラダー文によるプログラムであって、ビット
演算命令の連続とマクロ命令とからなり、前述のSAM20b
を経て、フェッチ・ユニット32に読込まれる部分であ
る。Bで示される部分には、後述するように、汎用マイ
クロプロセッサからなるCPU1が割込みを受付けてマクロ
命令を実行する際に用いるマクロ命令のサブルーチン群
が格納されている。Cで示される部分が、CPU1が通常読
込んで実行するプログラムが格納されている部分であっ
て、例えばPASCAL等の高級言語で記述されたプログラム
が存在する。
成例の概略を示すものである。本図において、Aで示さ
れる部分がラダー文によるプログラムであって、ビット
演算命令の連続とマクロ命令とからなり、前述のSAM20b
を経て、フェッチ・ユニット32に読込まれる部分であ
る。Bで示される部分には、後述するように、汎用マイ
クロプロセッサからなるCPU1が割込みを受付けてマクロ
命令を実行する際に用いるマクロ命令のサブルーチン群
が格納されている。Cで示される部分が、CPU1が通常読
込んで実行するプログラムが格納されている部分であっ
て、例えばPASCAL等の高級言語で記述されたプログラム
が存在する。
第4A図および第4B図は、それぞれ、第3図のAの部分
に記述される、ビット演算命令およびマクロ命令のフォ
ーマットを示す図である。どちらのフォーマットも、上
段16ビット、下段16ビットの計32ビットの幅を有してい
る。両フォーマットの上段の左端のビット(先頭ビッ
ト)には、命令がビット演算命令のときは“0"、マクロ
命令のときには“1"の値を記す。前述の、第2図のフェ
ッチ・ユニット32においては、シリアル・アクセス・メ
モリ(SAM)20bから32ビットからなる命令を読込むと、
上記の先頭ビットの内容によって、該命令がビット演算
命令であるか、あるいはマクロ命令であるかを識別し、
該命令の残り31ビットの役割を、それぞれ第4A図および
第4B図に示されているように定める。このことは、上記
先頭ビットを制御入力とするデマルチプレクサとしての
構成により実現される。つまり、該先頭ビットの値に応
じて、残り31ビットを、ビット演算命令の場合、あるい
はマクロ命令の場合に接続されるべきラインに接続す
る。
に記述される、ビット演算命令およびマクロ命令のフォ
ーマットを示す図である。どちらのフォーマットも、上
段16ビット、下段16ビットの計32ビットの幅を有してい
る。両フォーマットの上段の左端のビット(先頭ビッ
ト)には、命令がビット演算命令のときは“0"、マクロ
命令のときには“1"の値を記す。前述の、第2図のフェ
ッチ・ユニット32においては、シリアル・アクセス・メ
モリ(SAM)20bから32ビットからなる命令を読込むと、
上記の先頭ビットの内容によって、該命令がビット演算
命令であるか、あるいはマクロ命令であるかを識別し、
該命令の残り31ビットの役割を、それぞれ第4A図および
第4B図に示されているように定める。このことは、上記
先頭ビットを制御入力とするデマルチプレクサとしての
構成により実現される。つまり、該先頭ビットの値に応
じて、残り31ビットを、ビット演算命令の場合、あるい
はマクロ命令の場合に接続されるべきラインに接続す
る。
第4A図のビット演算命令のフォーマットにおいて、上
段のLFUNC,NEGO,NEGI,ASEL,SSEL,SFUNC,RAMOおよびRAMI
は、第2図のビット演算プロセッサ31における演算実行
を制御するものであって、これらの働きについては後述
する。第4A図の下段の16ビットおよび上段右端の1ビッ
トからなる計17ビットのビット・アドレスは、前述のビ
ット演算プロセッサ(BPU)31において用いられるデー
タの、高速SRAM22aにおけるアドレスを示すものであ
り、第2図のSRAMインターフェイス22bに入力される。
段のLFUNC,NEGO,NEGI,ASEL,SSEL,SFUNC,RAMOおよびRAMI
は、第2図のビット演算プロセッサ31における演算実行
を制御するものであって、これらの働きについては後述
する。第4A図の下段の16ビットおよび上段右端の1ビッ
トからなる計17ビットのビット・アドレスは、前述のビ
ット演算プロセッサ(BPU)31において用いられるデー
タの、高速SRAM22aにおけるアドレスを示すものであ
り、第2図のSRAMインターフェイス22bに入力される。
第4B図のマクロ命令のフォーマットにおいて、IRQ
は、CPU1に対してマクロ命令実行のための割込み要求信
号を送るためのものであり、この信号はIRQが“1"であ
ることによって送られる。STPは、これが“1"のとき、
第2図のビット演算プロセッサ31を停止させるものであ
る。なお、ビット演算プロセッサ31のスタートはCPU1の
起動による。JMP、COMおよびNEGOの役割については後述
する。第4B図の下段の16ビットからなる“マクロNo."
は、そのマクロ命令の種類を示すもので、第4B図のフォ
ーマットのSETのビットが“1"のとき、該マクロNo.は第
2図のマクロ・コマンド・レジスタ33にセットされる。
そして、前記の割込み要求を受付けたCPU1は、このマク
ロNo.を読込んで、前述の第3図のBの領域に格納され
たサブルーチン群の中の、該マクロNo.に対応するサブ
ルーチンを用いて、該マクロ命令を実行する。
は、CPU1に対してマクロ命令実行のための割込み要求信
号を送るためのものであり、この信号はIRQが“1"であ
ることによって送られる。STPは、これが“1"のとき、
第2図のビット演算プロセッサ31を停止させるものであ
る。なお、ビット演算プロセッサ31のスタートはCPU1の
起動による。JMP、COMおよびNEGOの役割については後述
する。第4B図の下段の16ビットからなる“マクロNo."
は、そのマクロ命令の種類を示すもので、第4B図のフォ
ーマットのSETのビットが“1"のとき、該マクロNo.は第
2図のマクロ・コマンド・レジスタ33にセットされる。
そして、前記の割込み要求を受付けたCPU1は、このマク
ロNo.を読込んで、前述の第3図のBの領域に格納され
たサブルーチン群の中の、該マクロNo.に対応するサブ
ルーチンを用いて、該マクロ命令を実行する。
第5図は第2図のビット演算プロセッサ31の構成図で
ある。本図において、34,44はEOR回路、35はビット論理
演算ユニット(以下ではBLUと略す)、36,38はセレク
タ、37はビット・アキュームレータ(以下ではBACCと略
す)、39はスタック、40,43,45,47はAND回路、41,46は
Dフリップ・フロップ回路、42はインバータである。第
5図の構成に対する外部からの入力として示されている
もののうち、BINは、第2図の高速SRAM22aから、前述
(第4A図)のビット演算命令フォーマット中のビット・
アドレスによって指定されたビットの内容が読出された
ものである。その他のRAMI,NEGI,LFUNC,ASEL,NEGO,SSE
L,SFUNC,COM,JOMPは、前述(第4A図および第4B図)のビ
ット演算命令、あるいはマクロ命令に示されたビットの
内容が入力されるものである。また、BOUTはビット演算
プロセッサ(BPU)31の出力である。
ある。本図において、34,44はEOR回路、35はビット論理
演算ユニット(以下ではBLUと略す)、36,38はセレク
タ、37はビット・アキュームレータ(以下ではBACCと略
す)、39はスタック、40,43,45,47はAND回路、41,46は
Dフリップ・フロップ回路、42はインバータである。第
5図の構成に対する外部からの入力として示されている
もののうち、BINは、第2図の高速SRAM22aから、前述
(第4A図)のビット演算命令フォーマット中のビット・
アドレスによって指定されたビットの内容が読出された
ものである。その他のRAMI,NEGI,LFUNC,ASEL,NEGO,SSE
L,SFUNC,COM,JOMPは、前述(第4A図および第4B図)のビ
ット演算命令、あるいはマクロ命令に示されたビットの
内容が入力されるものである。また、BOUTはビット演算
プロセッサ(BPU)31の出力である。
第5図においてAND回路47に入力されるRAMIは第4A図
に示されるRAMOと共に高速SRAM22aに対するアクセスを
規定するもので、(RAMO,RAMI)が(0,0)のときは、NO
OPERATION、(0,1)のときはSRAMからの読出し、(1,
1)のときはSRAMへの書込みを規定する。(RAMO,RAMI)
=(0,1)のときはAND回路47が開となって、入力データ
BINが入力される。次のEOR回路34におけるNEGIは、ラダ
ー言語における“RD"命令(入力データをそのままBACC3
7にセットする)と“RD.NOT"命令(入力データを反転し
てBACC37にセットする)とに対応し、“RD"命令に対し
てはNEGI=“0"であってEOR回路34の出力はBINに等しく
“RD.NOT"命令に対してはNEGI=“1"となって、EOR回路
34の出力はBINを反転したものとなる。
に示されるRAMOと共に高速SRAM22aに対するアクセスを
規定するもので、(RAMO,RAMI)が(0,0)のときは、NO
OPERATION、(0,1)のときはSRAMからの読出し、(1,
1)のときはSRAMへの書込みを規定する。(RAMO,RAMI)
=(0,1)のときはAND回路47が開となって、入力データ
BINが入力される。次のEOR回路34におけるNEGIは、ラダ
ー言語における“RD"命令(入力データをそのままBACC3
7にセットする)と“RD.NOT"命令(入力データを反転し
てBACC37にセットする)とに対応し、“RD"命令に対し
てはNEGI=“0"であってEOR回路34の出力はBINに等しく
“RD.NOT"命令に対してはNEGI=“1"となって、EOR回路
34の出力はBINを反転したものとなる。
ビット論理演算ユニット(BLU)31は第4A図のフォー
マット中のLFUNCのコードによって制御され、第6図に
例示するような機能を実現するように構成された論理回
路である。BLU35は3つの入力端を有し、それぞれにNEG
IBIN(EOR回路34の出力)、ACC(BACC37の出力)、そ
してTOS(Top of Stack、スタック39の先頭ビットから
の出力)が印加される。
マット中のLFUNCのコードによって制御され、第6図に
例示するような機能を実現するように構成された論理回
路である。BLU35は3つの入力端を有し、それぞれにNEG
IBIN(EOR回路34の出力)、ACC(BACC37の出力)、そ
してTOS(Top of Stack、スタック39の先頭ビットから
の出力)が印加される。
セレクタ36はEOR回路34からの出力、あるいはBLU35の
出力のいずれかを選択するもので、第4A図のフォーマッ
トのASELのビットの内容によって制御される。
出力のいずれかを選択するもので、第4A図のフォーマッ
トのASELのビットの内容によって制御される。
ビット・アキュームレータ(BACC)37は、セレクタ36
の出力を一旦保持するもので、入力側に印加された内容
はクロックに同期してセットされる。
の出力を一旦保持するもので、入力側に印加された内容
はクロックに同期してセットされる。
セレクタ38はBLU35の出力、あるいはBACC37の出力の
いずれかを選択するもので、第4A図のフォーマットのSS
ELのビットの内容によって制御される。
いずれかを選択するもので、第4A図のフォーマットのSS
ELのビットの内容によって制御される。
スタックは、言わゆるLIFO(Last In First Out)メ
モリであって、第4A図のフォーマット中のSFUNCのコー
ドによって、PUSH(入力データがTOSに書込まれ、それ
以前のスタックのデータは1ビット右へシフトされ
る)、POP(スタックのビットのデータは1ビット左へ
シフトされる)、ACC(TOSのビットのみが入力データに
置換えられる)、あるいはHOLD(スタックの内容は変化
しない)等の動作を行なうように制御される。TOSの出
力は、第7図にも示されているように、BLU35に入力さ
れる。
モリであって、第4A図のフォーマット中のSFUNCのコー
ドによって、PUSH(入力データがTOSに書込まれ、それ
以前のスタックのデータは1ビット右へシフトされ
る)、POP(スタックのビットのデータは1ビット左へ
シフトされる)、ACC(TOSのビットのみが入力データに
置換えられる)、あるいはHOLD(スタックの内容は変化
しない)等の動作を行なうように制御される。TOSの出
力は、第7図にも示されているように、BLU35に入力さ
れる。
また、ラダー文によるプログラムにおいて、マクロ命
令を実行するための条件(制御条件)が、ビット演算命
令によって記述されているような場合には、これらの条
件は、このスタック39の各ビットに順に書込まれた後、
BACC37の内容ACCと共に第2図のデータバスを介してパ
ラレルにCPU1へ転送される。CPU1は、該制御条件を満す
かどうか判断した後、マクロ命令を実行する。第7図
は、上記のような制御条件付のマクロ命令を示すラダー
・ダイヤフラムの一例を示すものであり、第8図は第7
図のラダー・ダイヤフラムに対応するラダー言語による
プログラムを示し、第9図は第8図の各ステップにおけ
るBACC37および、スタック39における関係するビットの
内容を示すものである。
令を実行するための条件(制御条件)が、ビット演算命
令によって記述されているような場合には、これらの条
件は、このスタック39の各ビットに順に書込まれた後、
BACC37の内容ACCと共に第2図のデータバスを介してパ
ラレルにCPU1へ転送される。CPU1は、該制御条件を満す
かどうか判断した後、マクロ命令を実行する。第7図
は、上記のような制御条件付のマクロ命令を示すラダー
・ダイヤフラムの一例を示すものであり、第8図は第7
図のラダー・ダイヤフラムに対応するラダー言語による
プログラムを示し、第9図は第8図の各ステップにおけ
るBACC37および、スタック39における関係するビットの
内容を示すものである。
ビット演算命令による演算の出力は、BACC37からAND
回路43を介してEOR回路44の出力BOUTとして得られる、A
ND回路43の一方の入力、すなわち、インバータ42の出力
は、後述するように、通常のビット演算時は単に“1"で
あってBACC37の出力はスルーとなる。EOR回路44は、ラ
ダー言語のビット演算命令のうち、“WTR"命令(BACC37
の出力をそのまま高速SRAM22aに書込む)、および“WR
T.NOT"命令(BACC37の出力を反転して高速SRAM22aに書
込む)に対応して設けられたものであり、第4A図のビッ
ト演算命令のフォーマット中のNEGOのビットが“0"のと
きは、“WRT"命令に、“1"のときは“WRT.NOT"命令に対
応する。
回路43を介してEOR回路44の出力BOUTとして得られる、A
ND回路43の一方の入力、すなわち、インバータ42の出力
は、後述するように、通常のビット演算時は単に“1"で
あってBACC37の出力はスルーとなる。EOR回路44は、ラ
ダー言語のビット演算命令のうち、“WTR"命令(BACC37
の出力をそのまま高速SRAM22aに書込む)、および“WR
T.NOT"命令(BACC37の出力を反転して高速SRAM22aに書
込む)に対応して設けられたものであり、第4A図のビッ
ト演算命令のフォーマット中のNEGOのビットが“0"のと
きは、“WRT"命令に、“1"のときは“WRT.NOT"命令に対
応する。
第5図の2つのDフリップフロップ回路41および46は
第4B図のマクロ命令の実行の際にのみ動作するものであ
る。
第4B図のマクロ命令の実行の際にのみ動作するものであ
る。
第5図のDフリップフロップ回路41のエッジ・トリガ
入力端には第4B図のマクロ命令のフォーマット中のCOM
のビットの内容が印加されており、このビットが“0"か
ら“1"となるとき、同じく第4B図のフォーマットのNEGO
のビットが“0"ならば、コモンライン制御命令が実行さ
れ、以下に説明するコモンライン制御終了命令までBOUT
を“0"とする。実際、第5図においてNEGO=“0"のとき
は、AND回路43の一方の入力であるインバータ42の出力
は常にBACC37の出力を反転したものとなってAND回路43
の出力は常に“0"となり、NEGO=“0"によりEOR回路44
の出力も常に“0"となる。次に、コモンライン制御終了
命令は、第4B図のフォーマットのNEGOが“1"のとき、CO
MPの立上りに同期して実行される。このとき、第5図の
AND回路40の出力は常に“0"となることにより、Dフリ
ップフロップ回路41およびインバータ42を介してAND回
路43の一方の入力は常に“1"となって、AND回路43の出
力は常にBACC37の出力に等しく、また、NEGO=“0"によ
り、EOR回路44の出力BOUTは常にBACC37の出力を反転し
たものとなる。
入力端には第4B図のマクロ命令のフォーマット中のCOM
のビットの内容が印加されており、このビットが“0"か
ら“1"となるとき、同じく第4B図のフォーマットのNEGO
のビットが“0"ならば、コモンライン制御命令が実行さ
れ、以下に説明するコモンライン制御終了命令までBOUT
を“0"とする。実際、第5図においてNEGO=“0"のとき
は、AND回路43の一方の入力であるインバータ42の出力
は常にBACC37の出力を反転したものとなってAND回路43
の出力は常に“0"となり、NEGO=“0"によりEOR回路44
の出力も常に“0"となる。次に、コモンライン制御終了
命令は、第4B図のフォーマットのNEGOが“1"のとき、CO
MPの立上りに同期して実行される。このとき、第5図の
AND回路40の出力は常に“0"となることにより、Dフリ
ップフロップ回路41およびインバータ42を介してAND回
路43の一方の入力は常に“1"となって、AND回路43の出
力は常にBACC37の出力に等しく、また、NEGO=“0"によ
り、EOR回路44の出力BOUTは常にBACC37の出力を反転し
たものとなる。
第5図のDフリップフロップ回路46は、ジャンプ命令
の実行に関わるジャンプ・コントロール・レジスタであ
って、そのQ出力は、第2図のフェッチ・ユニット32に
伝達され、該Q出力が“1"である間、フェッチ・ユニッ
ト32においては、前述のシリアル・アクセス・メモリ20
bから読込んだ命令を無視する。すなわち、NO OPERATIO
Nと解釈する。
の実行に関わるジャンプ・コントロール・レジスタであ
って、そのQ出力は、第2図のフェッチ・ユニット32に
伝達され、該Q出力が“1"である間、フェッチ・ユニッ
ト32においては、前述のシリアル・アクセス・メモリ20
bから読込んだ命令を無視する。すなわち、NO OPERATIO
Nと解釈する。
第5図のDフリップフロップ回路46のエッジ・トリガ
入力端には第4B図のマクロ命令のフォーマットのJMPの
ビットの内容が印加されており、同じく第4B図のフォー
マットのNEGOのビットが“0"のとき、BACC37の出力が
“1"であればDフリップフロップ回路46のD出力は“1"
となって、上述のジャンプ命令が実行される。BACC37の
出力が“0"のときは、NEGO=“0"でJMPが“0"→“1"と
なってもDフリップ・フロップ回路46のQ出力は“1"と
はならず、ジャンプ命令は実行されない。そして、第4B
図のマクロ命令のフォーマットのNEGOのビットが“1"の
とき、JMPのビットが“0"→“1"となると、Dフリップ
フロップ回路46のQ出力は“1"→“0"となってジャンプ
終了命令が実行される。
入力端には第4B図のマクロ命令のフォーマットのJMPの
ビットの内容が印加されており、同じく第4B図のフォー
マットのNEGOのビットが“0"のとき、BACC37の出力が
“1"であればDフリップフロップ回路46のD出力は“1"
となって、上述のジャンプ命令が実行される。BACC37の
出力が“0"のときは、NEGO=“0"でJMPが“0"→“1"と
なってもDフリップ・フロップ回路46のQ出力は“1"と
はならず、ジャンプ命令は実行されない。そして、第4B
図のマクロ命令のフォーマットのNEGOのビットが“1"の
とき、JMPのビットが“0"→“1"となると、Dフリップ
フロップ回路46のQ出力は“1"→“0"となってジャンプ
終了命令が実行される。
以上、説明したように、上記の実施例においては、第
2図のフェッチ・ユニット32において、メモリ(SAM)2
0bから読出した命令がビット演算命令であるか、あるい
は、マクロ命令であるかを識別し、ビット演算命令であ
るならば、これをビット演算プロセッサ31にて実行さ
せ、また、マクロ命令であるならば、CPU1に対して割込
み要求を送ると共に、該マクロ命令の種類を示すマクロ
No.をマクロ・コマンド・レジスタ33を介してCPU1へ送
るように構成されているので、ビット演算命令とマクロ
命令とからなるラダー言語によるプログラムが高速、且
つ、効率良く処理実行される。
2図のフェッチ・ユニット32において、メモリ(SAM)2
0bから読出した命令がビット演算命令であるか、あるい
は、マクロ命令であるかを識別し、ビット演算命令であ
るならば、これをビット演算プロセッサ31にて実行さ
せ、また、マクロ命令であるならば、CPU1に対して割込
み要求を送ると共に、該マクロ命令の種類を示すマクロ
No.をマクロ・コマンド・レジスタ33を介してCPU1へ送
るように構成されているので、ビット演算命令とマクロ
命令とからなるラダー言語によるプログラムが高速、且
つ、効率良く処理実行される。
本発明によれば、ビット演算命令とマクロ命令とから
構成されるプログラムが高速、且つ、効率良く実行され
る。
構成されるプログラムが高速、且つ、効率良く実行され
る。
第1図は本発明の基本的構成図、 第2図は本発明の実施例の構成図、 第3図はメモリ中のプログラム構成例を示す図、 第4A図はビット演算命令のフォーマットの図、 第4B図はマクロ命令のフォーマットの図、 第5図は第2図のビット演算プロセッサ31の構成図、 第6図は第5図のビット論理演算ユニット35の機能説明
図、 第7図は制御条件付けのマクロ命令を示すラダー・ダイ
ヤフラムの1例を示す図、 第8図は第7図のラダー・ダイヤフラムに対応するプロ
グラム・コーディングの図、そして、 第9図は第8図の各ステップにおけるBACCおよびスタッ
クの内容を示す図である。 (符号の説明) 1……マイクロプロセッサ、 2……メモリ、 3……命令識別部、 4……割込み制御部、 5……マクロ命令転送部、 6……ビット演算処理部、 20……マルチ・ポート・メモリ、 20a……2ポートDRAM、 20b……シリアル・アクセス・メモリ、 21……DRAM制御部、 22a……高速スタティックRAM、 22b……SRAMインターフェイス、 24……ダイナミックRAMコントローラ、 25……アービタ、 26……ダイナミックRAMリフレッシュ・タイマ、 27……比較器、 28……スタート・アドレス・レジスタ、 29……プログラム・カウンタ、 30……ラダー・プログラム処理部、 31……ビット演算プロセッサ、 32……フェッチ・ユニット、 33……マクロ・コマンド・レジスタ、 35……ビット論理演算ユニット、 37……ビット・アキュムレータ、 39……スタック。
図、 第7図は制御条件付けのマクロ命令を示すラダー・ダイ
ヤフラムの1例を示す図、 第8図は第7図のラダー・ダイヤフラムに対応するプロ
グラム・コーディングの図、そして、 第9図は第8図の各ステップにおけるBACCおよびスタッ
クの内容を示す図である。 (符号の説明) 1……マイクロプロセッサ、 2……メモリ、 3……命令識別部、 4……割込み制御部、 5……マクロ命令転送部、 6……ビット演算処理部、 20……マルチ・ポート・メモリ、 20a……2ポートDRAM、 20b……シリアル・アクセス・メモリ、 21……DRAM制御部、 22a……高速スタティックRAM、 22b……SRAMインターフェイス、 24……ダイナミックRAMコントローラ、 25……アービタ、 26……ダイナミックRAMリフレッシュ・タイマ、 27……比較器、 28……スタート・アドレス・レジスタ、 29……プログラム・カウンタ、 30……ラダー・プログラム処理部、 31……ビット演算プロセッサ、 32……フェッチ・ユニット、 33……マクロ・コマンド・レジスタ、 35……ビット論理演算ユニット、 37……ビット・アキュムレータ、 39……スタック。
Claims (4)
- 【請求項1】ビット演算命令と、該ビット演算命令より
複雑な処理に対応するマクロ命令とからなるプログラム
を格納するメモリ(2)と、 割込み要求を受けると、マクロ命令を読込んで実行する
マイクロプロセッサ(1)と、 前記メモリ(2)から前記プログラムの命令を読出して
該命令がビット演算命令であるか、マクロ命令であるか
を識別する命令識別部(3)と、 前記命令がマクロ命令であるとき前記マイクロプロセッ
サ(1)に対して割込み要求を送る割込み制御部(4)
と、 前記命令がマクロ命令であるとき該マクロ命令を前記マ
イクロプロセッサ(1)へ転送するマクロ命令転送部
(5)と、 前記命令がビット演算命令であるとき該命令を読込んで
実行するビット演算処理部(6)とを備えてなることを
特徴とするプログラマブル・コントローラ。 - 【請求項2】前記命令識別部(3)は、前記ビット演算
命令とマクロ命令との識別を、それぞれの命令文の中の
所定位置のビットの値によって行なう特許請求の範囲第
1項記載のプログラマブル・コントローラ。 - 【請求項3】前記ビット演算命令は、前記ビット演算処
理部(6)を制御する制御信号に対応するビットを含ん
でなる特許請求の範囲第1項記載のプログラマブル・コ
ントローラ。 - 【請求項4】前記マクロ命令は、前記割込み要求を発生
するビットを含んでなる特許請求の範囲第1項記載のプ
ログラマブル・コントローラ。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP62139927A JP2594562B2 (ja) | 1987-06-05 | 1987-06-05 | プログラマブル・コントローラ |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP62139927A JP2594562B2 (ja) | 1987-06-05 | 1987-06-05 | プログラマブル・コントローラ |
Publications (2)
Publication Number | Publication Date |
---|---|
JPS63304302A JPS63304302A (ja) | 1988-12-12 |
JP2594562B2 true JP2594562B2 (ja) | 1997-03-26 |
Family
ID=15256904
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP62139927A Expired - Lifetime JP2594562B2 (ja) | 1987-06-05 | 1987-06-05 | プログラマブル・コントローラ |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2594562B2 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2618703B2 (ja) * | 1989-01-24 | 1997-06-11 | 松下電器産業株式会社 | プログラマブルシーケンスコントローラの高速演算処理方式 |
JPH036706A (ja) * | 1989-06-05 | 1991-01-14 | Hitachi Seiki Co Ltd | シーケンスコントローラ |
DE69324388T2 (de) * | 1992-01-23 | 1999-09-09 | Mitsubishi Denki K.K. | Speicherprogrammierbare Steuerung |
US6424880B1 (en) | 1999-09-10 | 2002-07-23 | Applied Materials, Inc. | Multi-computer chamber control system, method and medium |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5945504A (ja) * | 1982-09-07 | 1984-03-14 | Mitsubishi Electric Corp | シ−ケンス制御装置 |
-
1987
- 1987-06-05 JP JP62139927A patent/JP2594562B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JPS63304302A (ja) | 1988-12-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0569969B1 (en) | Microcomputer having instruction memory storing instructions for reading out internal conditions | |
US5155821A (en) | Command performing order change-over system in data processor | |
JPS5960658A (ja) | 論理機能を備えた半導体記憶装置 | |
KR970003321B1 (ko) | 코프로세서 지정 시스템 | |
JP2594562B2 (ja) | プログラマブル・コントローラ | |
KR20010085997A (ko) | 프로그램 스레드 디버깅 방법 | |
JP2690406B2 (ja) | プロセッサおよびデータ処理システム | |
EP0385136B1 (en) | Microprocessor cooperating with a coprocessor | |
US4503498A (en) | Multiprocessor cratecontroller | |
US20030145175A1 (en) | Multiprocessor system having respective control programs of a plurality of processors stored contiguously in a memory | |
JPS63214804A (ja) | Plc用プロセツサ及びplc | |
JP2000029508A (ja) | プログラマブルコントローラ | |
JP2883488B2 (ja) | 命令処理装置 | |
JPS63305406A (ja) | プログラマブル・コントロ−ラ | |
JPH07117914B2 (ja) | データ処理装置 | |
JPS6074038A (ja) | 情報処理装置 | |
JPS60193046A (ja) | 命令例外検出方式 | |
JPH0282318A (ja) | 浮動小数点演算装置 | |
JPS61123937A (ja) | データ処理装置のデータ駆動型制御方式 | |
JPH02112054A (ja) | データ処理装置 | |
JPS63305404A (ja) | ビット演算プロセッサ | |
JPH06332696A (ja) | マイクロコンピュータ | |
JPS59177658A (ja) | デバツグ制御方式 | |
JPH02207340A (ja) | エミュレーションシステム及びエミュレータ | |
FUCHI et al. | System Design of ETL MK-4B, an Input-Output Computer |