JPH024010B2 - - Google Patents
Info
- Publication number
- JPH024010B2 JPH024010B2 JP58185832A JP18583283A JPH024010B2 JP H024010 B2 JPH024010 B2 JP H024010B2 JP 58185832 A JP58185832 A JP 58185832A JP 18583283 A JP18583283 A JP 18583283A JP H024010 B2 JPH024010 B2 JP H024010B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- address
- register
- processing
- operand
- 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
- 238000000034 method Methods 0.000 claims description 25
- 238000004364 calculation method Methods 0.000 claims description 22
- 230000004048 modification Effects 0.000 claims description 21
- 238000012986 modification Methods 0.000 claims description 21
- 230000008569 process Effects 0.000 claims description 20
- 238000003672 processing method Methods 0.000 claims description 8
- 230000010355 oscillation Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 230000004069 differentiation Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
- G06F9/355—Indexed addressing
-
- 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
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/05—Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
- G06F9/35—Indirect addressing
-
- 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/15105—Hardwired logic to accelerate, speed up execution of instructions
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Programmable Controllers (AREA)
- Executing Machine-Instructions (AREA)
Description
【発明の詳細な説明】
〔発明の利用分野〕
本発明はプログラマブルコントローラ、特に高
速、高機能を必要とする制御に使用する好適なプ
ログラマブルコントローラのパイプライン処理方
法に関する。
速、高機能を必要とする制御に使用する好適なプ
ログラマブルコントローラのパイプライン処理方
法に関する。
プログラマブルコントローラとは、種々のプラ
ントを制御する目的を持ち、論理演算を行うシー
ケンサと数値演算を行う演算手段とを兼ね具えた
プログラマブルなコントローラを云う。ここで、
プログラマブルとは、ユーザが処理手順(制御手
順をも含む)を変更可能とするものとの意であ
る。
ントを制御する目的を持ち、論理演算を行うシー
ケンサと数値演算を行う演算手段とを兼ね具えた
プログラマブルなコントローラを云う。ここで、
プログラマブルとは、ユーザが処理手順(制御手
順をも含む)を変更可能とするものとの意であ
る。
かかるプログラマブルコントローラでは、プラ
ントとのインターフエースは、プロセス入出力装
置(PI/O)によつてなす。然るにPI/Oは、
シーケンサからみた場合、アドレスが固定
(PI/Oアドレスが与えられている)化されてい
るため、修飾(インデツクス)等の処理は少な
い。一方、シーケンサではなく、一般的な処理装
置では、逆に修飾等の処理は多く、アドレスは固
定化されていない。ここで、修飾とは、命令(コ
マンド)の一部を構成するアドレス部をそのまま
アドレスとして利用するのではなく、命令の一部
を構成する修飾部で指示するインデツクス内容に
よつてアドレス部を修飾することを云う。この修
飾は、一般にアドレス部とインデツクス内容とを
加算する処理を云う。
ントとのインターフエースは、プロセス入出力装
置(PI/O)によつてなす。然るにPI/Oは、
シーケンサからみた場合、アドレスが固定
(PI/Oアドレスが与えられている)化されてい
るため、修飾(インデツクス)等の処理は少な
い。一方、シーケンサではなく、一般的な処理装
置では、逆に修飾等の処理は多く、アドレスは固
定化されていない。ここで、修飾とは、命令(コ
マンド)の一部を構成するアドレス部をそのまま
アドレスとして利用するのではなく、命令の一部
を構成する修飾部で指示するインデツクス内容に
よつてアドレス部を修飾することを云う。この修
飾は、一般にアドレス部とインデツクス内容とを
加算する処理を云う。
次に、以上を前提とした従来のプログラマブル
コントローラを第1図に示す。このプログラマブ
ルコントローラは、処理装置(CPU)1とプロ
グラム格納用メモリ12より成る。プロセス入出
力装置(PI/O)13は、CPU1とプロセスと
のインターフエース手段である。
コントローラを第1図に示す。このプログラマブ
ルコントローラは、処理装置(CPU)1とプロ
グラム格納用メモリ12より成る。プロセス入出
力装置(PI/O)13は、CPU1とプロセスと
のインターフエース手段である。
プログラム格納用メモリ12は、シーケンス用
のプログラムを格納する。このメモリ12は、
CPU1のアクセスを受け、プログラムを構成す
る命令をCPU1に出力する。アクセスとは、プ
ログラムカウンタ4でのプログラム番号の受付け
であり、CPU1への命令の出力とは、命令レジ
スタ11に送出することを云う。
のプログラムを格納する。このメモリ12は、
CPU1のアクセスを受け、プログラムを構成す
る命令をCPU1に出力する。アクセスとは、プ
ログラムカウンタ4でのプログラム番号の受付け
であり、CPU1への命令の出力とは、命令レジ
スタ11に送出することを云う。
CPU1は、発振回路2、制御回路3、プログ
ラムカウンタ4、修飾(インデツクス)レジスタ
5、スイツチ6,8、演算回路7、アドレスレジ
スタ9、アキユムレータ10、命令レジスタ11
より成る。
ラムカウンタ4、修飾(インデツクス)レジスタ
5、スイツチ6,8、演算回路7、アドレスレジ
スタ9、アキユムレータ10、命令レジスタ11
より成る。
発振回路2は、基本クロツクの発振源であり、
種々のタイミングの元となる。制御回路3は、各
種の制御源となす。この制御は、プログラムの解
読によつてなす制御が主である。
種々のタイミングの元となる。制御回路3は、各
種の制御源となす。この制御は、プログラムの解
読によつてなす制御が主である。
プログラムカウンタ4は、制御回路3からのカ
ウントアツプ信号(又はダウン信号)を受けて、
次に必要とするプログラムの番号を計数する。プ
ログラムカウンタ4の計数値は、プログラム番号
(命令番号)を指す。このプログラム番号は、プ
ログラムメモリ12のアドレスを直接に、又は間
接に指示する。この直接指示とは、プログラム番
号がプログラムメモリ12のアドレスそのもので
あることを意味し、間接指示とは、プログラム番
号を一度デコードを行いその出力がプログラムメ
モリ12のアドレスを指示することを意味する。
ウントアツプ信号(又はダウン信号)を受けて、
次に必要とするプログラムの番号を計数する。プ
ログラムカウンタ4の計数値は、プログラム番号
(命令番号)を指す。このプログラム番号は、プ
ログラムメモリ12のアドレスを直接に、又は間
接に指示する。この直接指示とは、プログラム番
号がプログラムメモリ12のアドレスそのもので
あることを意味し、間接指示とは、プログラム番
号を一度デコードを行いその出力がプログラムメ
モリ12のアドレスを指示することを意味する。
命令レジスタ11は、プログラムカウンタ4の
プログラム番号に従つてプログラムメモリ12か
ら読出した命令を一時記憶するレジスタである。
読出し命令は、オペコードOPとインデツクス部
IX、及びアドレス部ADDRより成る。
プログラム番号に従つてプログラムメモリ12か
ら読出した命令を一時記憶するレジスタである。
読出し命令は、オペコードOPとインデツクス部
IX、及びアドレス部ADDRより成る。
オペコードOPは制御回路3に送出された後解
読され、制御回路3は、その解読結果に従つて必
要な制御を行う。スイツチ6と8とは制御回路3
の制御のもとに、1側か2側かにオンする構成を
なす。スイツチ6を1側にオンさせた時は、アキ
ユムレータ10の内容を選択し、2側にオンさせ
た時はインデツクスレジスタ5の内容を選択す
る。スイツチ8を1側にオンさせた時は、PI/
O13の出力(オペランド)を選択し、2側にオ
ンさせた時は命令レジスタ11のアドレス部
ADDRを選択する。
読され、制御回路3は、その解読結果に従つて必
要な制御を行う。スイツチ6と8とは制御回路3
の制御のもとに、1側か2側かにオンする構成を
なす。スイツチ6を1側にオンさせた時は、アキ
ユムレータ10の内容を選択し、2側にオンさせ
た時はインデツクスレジスタ5の内容を選択す
る。スイツチ8を1側にオンさせた時は、PI/
O13の出力(オペランド)を選択し、2側にオ
ンさせた時は命令レジスタ11のアドレス部
ADDRを選択する。
インデツクスレジスタ5は、インデツクスIX
をアドレスとするレジスタ群であり、この各レジ
スタはその修飾すべき内容を格納してある。
をアドレスとするレジスタ群であり、この各レジ
スタはその修飾すべき内容を格納してある。
演算回路7は、スイツチ6と8とからの選択出
力を取込み、制御回路3の制御のもとに種々の演
算を行う。演算内容は、加算、減算等がある。
力を取込み、制御回路3の制御のもとに種々の演
算を行う。演算内容は、加算、減算等がある。
演算回路7の演算内容がアドレス作成であれば
アドレスレジスタ9に送られ、データ作成であれ
ばアキユームレータ10に送られる。アドレスレ
ジスタ9は、PI/O13のアドレス(オペラン
ド)指定用となる。
アドレスレジスタ9に送られ、データ作成であれ
ばアキユームレータ10に送られる。アドレスレ
ジスタ9は、PI/O13のアドレス(オペラン
ド)指定用となる。
以上の従来例によれば、全ての命令がオペラン
ドをレジスタ修飾アドレツシングモードで指すた
め、オペランド、つまりPI/O13を読出すご
とに番地計算が必要となる。PI/O13の番地
計算は、命令レジスタ11のアドレス部ADDR
の内容とインデツクスレジスタ15で指示したイ
ンデツクス内容を加える計算であり、この結果が
PI/Oアドレスとなる。
ドをレジスタ修飾アドレツシングモードで指すた
め、オペランド、つまりPI/O13を読出すご
とに番地計算が必要となる。PI/O13の番地
計算は、命令レジスタ11のアドレス部ADDR
の内容とインデツクスレジスタ15で指示したイ
ンデツクス内容を加える計算であり、この結果が
PI/Oアドレスとなる。
この番地計算のために、スイツチ6,8を設け
て、PI/O13の番地計算時には、スイツチ8
を2側、スイツチ6を2側にオンし、演算回路7
でADDRとインデツクス内容との加算を行う。
加算結果は、アドレスレジスタ9に送出される。
て、PI/O13の番地計算時には、スイツチ8
を2側、スイツチ6を2側にオンし、演算回路7
でADDRとインデツクス内容との加算を行う。
加算結果は、アドレスレジスタ9に送出される。
尚、命令のアドレス部ADDRのみでオペラン
ド番地を指定したい場合、即ち、ダイレクトアド
レツシングモードに相当する場合には、予じめ
“0”を書込んでなるレジスタをインデツクスレ
ジスタ5に用意しておき、命令のインデツクス部
IXをその番地に設定させておけばよい。
ド番地を指定したい場合、即ち、ダイレクトアド
レツシングモードに相当する場合には、予じめ
“0”を書込んでなるレジスタをインデツクスレ
ジスタ5に用意しておき、命令のインデツクス部
IXをその番地に設定させておけばよい。
かかる従来例によれば、演算回路7は、命令本
来の演算とオペランドの番地計算の2通りの演算
を行うことを必要とする。然るに、この2つの演
算を演算回路が行うことは、演算回路自体にとつ
ては負担であり、CPU1全体にとつても、処理
速度向上のネツクとなつていた。
来の演算とオペランドの番地計算の2通りの演算
を行うことを必要とする。然るに、この2つの演
算を演算回路が行うことは、演算回路自体にとつ
ては負担であり、CPU1全体にとつても、処理
速度向上のネツクとなつていた。
一方、高速処理のための処理方法には、パイプ
ライン処理方法がある。プログラマブルコントロ
ーラの分野でもパイプライン処理方法が導入され
つつある。パイプライン処理とは、命令の処理過
程を分割し、各分割処理毎に別々の制御を行わ
せ、あたかも複数の命令の処理を同時併行的に行
わせているように、処理させる方法である。分割
の仕方も種々存在する。一般的には命令を取出す
処理を行う命令フエツチ処理、このフエツチした
命令を解読しオペランドの読み出しを行うオペラ
ンド読み出し処理、このオペランドを利用しての
演算処理、より成る。
ライン処理方法がある。プログラマブルコントロ
ーラの分野でもパイプライン処理方法が導入され
つつある。パイプライン処理とは、命令の処理過
程を分割し、各分割処理毎に別々の制御を行わ
せ、あたかも複数の命令の処理を同時併行的に行
わせているように、処理させる方法である。分割
の仕方も種々存在する。一般的には命令を取出す
処理を行う命令フエツチ処理、このフエツチした
命令を解読しオペランドの読み出しを行うオペラ
ンド読み出し処理、このオペランドを利用しての
演算処理、より成る。
かかるパイプライン処理方法のもとで演算処理
を行う演算回路7を有し、この演算回路7では命
令本来の演算とオペランドの番地計算との2通り
の演算を必要とする。この2通りの演算の結果、
処理速度が低下していた。
を行う演算回路7を有し、この演算回路7では命
令本来の演算とオペランドの番地計算との2通り
の演算を必要とする。この2通りの演算の結果、
処理速度が低下していた。
本発明の目的は、処理速度の向上をはかつてな
るプログラマブルコントローラのパイプライン処
理方法を提供するにある。
るプログラマブルコントローラのパイプライン処
理方法を提供するにある。
本発明は、パイプライン化したプログラマブル
コントローラにおいて、命令からオペランドのレ
ジスタ修飾アドレツシングモードとダイレクトア
ドレツシングモードとを判別し、ダイレクトアド
レツシングモードでは演算回路を経由しないで直
接オペランドを読出さしめた点にある。これによ
つて、演算回路の演算負担の軽減化をはかれる。
コントローラにおいて、命令からオペランドのレ
ジスタ修飾アドレツシングモードとダイレクトア
ドレツシングモードとを判別し、ダイレクトアド
レツシングモードでは演算回路を経由しないで直
接オペランドを読出さしめた点にある。これによ
つて、演算回路の演算負担の軽減化をはかれる。
第2図は本発明の実施例図である。本実施例は
CPU1と、プログラム格納用メモリ12と、
PI/O13とより成る。CPU1は、発振回路2、
制御回路3、プログラムカウンタ4、インデツク
スレジスタ5、スイツチ6,8、演算回路7、レ
ジスタ9、アキユムレータ10、命令レジスタ1
1,18、スイツチ27、オアゲート23,2
5、微分回路24より成る。
CPU1と、プログラム格納用メモリ12と、
PI/O13とより成る。CPU1は、発振回路2、
制御回路3、プログラムカウンタ4、インデツク
スレジスタ5、スイツチ6,8、演算回路7、レ
ジスタ9、アキユムレータ10、命令レジスタ1
1,18、スイツチ27、オアゲート23,2
5、微分回路24より成る。
第1図の従来例と異なる点は、パイプライン化
したこと、命令の中にオペランド先読み許可信号
部POFを設けたこと、命令レジスタ11の他に
パイプライン用の第2の命令レジスタ18を設け
たこと、データレジスタ26を設けたこと、オア
ゲート23,25、微分回路24、スイツチ27
を設けた点にある。
したこと、命令の中にオペランド先読み許可信号
部POFを設けたこと、命令レジスタ11の他に
パイプライン用の第2の命令レジスタ18を設け
たこと、データレジスタ26を設けたこと、オア
ゲート23,25、微分回路24、スイツチ27
を設けた点にある。
ここで、POFを設定する理由を述べる。
プログラマブルコントローラは、入力データを
もとに演算を行い出力する装置であり、ここで、
入力及び出力は、プラントからの直接のデータで
あつたり、プラントへの駆動出力であるため、そ
の割付(アドレス割付け)は、演算の途中で自動
的に割付けたり、任意のアドレスに割付けたりす
る様な性格のものではなく、システム計画時に制
御対象であるプラントとの間で一義的にアドレス
割付けが決められる性格のものである。
もとに演算を行い出力する装置であり、ここで、
入力及び出力は、プラントからの直接のデータで
あつたり、プラントへの駆動出力であるため、そ
の割付(アドレス割付け)は、演算の途中で自動
的に割付けたり、任意のアドレスに割付けたりす
る様な性格のものではなく、システム計画時に制
御対象であるプラントとの間で一義的にアドレス
割付けが決められる性格のものである。
例えば、第7図の様な層の温度管理を行なう場
合では、各々の測定温度は各々の温度検出器から
アナログ入力へ温度データとして入力され、プロ
グラマブルコントローラ内で演算しその結果をフ
イードバツクとしてアナログ出力によりヒータを
駆動して温度コントロールを行う。ここで、各々
の温度データ(アナログ入力)、ヒータ駆動(ア
ナログ出力)は任意のアドレス割付けではなく、
システム計画時に各々に個々のアドレスを割付け
られる。
合では、各々の測定温度は各々の温度検出器から
アナログ入力へ温度データとして入力され、プロ
グラマブルコントローラ内で演算しその結果をフ
イードバツクとしてアナログ出力によりヒータを
駆動して温度コントロールを行う。ここで、各々
の温度データ(アナログ入力)、ヒータ駆動(ア
ナログ出力)は任意のアドレス割付けではなく、
システム計画時に各々に個々のアドレスを割付け
られる。
この様にプログラマブルコントローラは、通常
の計算機と異なり、プログラム作成者やソフトウ
エアが勝手にアドレス割付けを行うものではな
く、システムにより一義的に決められているため
直接アドレスを指定するダイレクトアドレシング
でアクセスする場合が圧倒的に多い。
の計算機と異なり、プログラム作成者やソフトウ
エアが勝手にアドレス割付けを行うものではな
く、システムにより一義的に決められているため
直接アドレスを指定するダイレクトアドレシング
でアクセスする場合が圧倒的に多い。
しかし乍ら、以上の例で制御対象の温度槽が複
数台あり、入出力のアドレス割付が相似的な割付
けであり、かつ制御アルゴリズムが同じ場合に
は、制御プログラムをサブルーチン化し、制御対
象の入出力アドレスをインデツクス修飾により、
相似的なアドレツシングでアクセスする事によ
り、プログラム量を少なくする事が可能である。
この様なケースは、少ないのであるが、しかし、
この種のアプリケーシヨンにおいては、インデツ
クス修飾が多大の効果を発揮する。このためプロ
グラマブルコントローラにおいては、この様な2
種類のアドレツシングモードが必要である。
数台あり、入出力のアドレス割付が相似的な割付
けであり、かつ制御アルゴリズムが同じ場合に
は、制御プログラムをサブルーチン化し、制御対
象の入出力アドレスをインデツクス修飾により、
相似的なアドレツシングでアクセスする事によ
り、プログラム量を少なくする事が可能である。
この様なケースは、少ないのであるが、しかし、
この種のアプリケーシヨンにおいては、インデツ
クス修飾が多大の効果を発揮する。このためプロ
グラマブルコントローラにおいては、この様な2
種類のアドレツシングモードが必要である。
以上のように、プログラマブルコントローラで
は、ダイレクトアドレツシングモードの命令がほ
とんどであり、一般の計算機とは大いに異なる。
従つて、一般の計算機の如く、主たる命令がイン
デツクス修飾やベースレジスタ方式の如きシステ
ムのもとでの命令のパイプライン処理にあつて
は、インデツクス修飾やベースレジスタの判定が
重要となるが、プログラマブルコントローラでは
このようなことはない。
は、ダイレクトアドレツシングモードの命令がほ
とんどであり、一般の計算機とは大いに異なる。
従つて、一般の計算機の如く、主たる命令がイン
デツクス修飾やベースレジスタ方式の如きシステ
ムのもとでの命令のパイプライン処理にあつて
は、インデツクス修飾やベースレジスタの判定が
重要となるが、プログラマブルコントローラでは
このようなことはない。
一方、プログラマブルコントローラでも、イン
デツクス修飾が皆無かと云うと上述の如き例外的
ケースがある。そこで、一般の計算機とは多数と
少数とが逆転するが、ダイレクトアドレツシング
モードを示す命令にはPOF=1とし、インデツ
クス修飾モードを示す命令にはPOF=0とする、
POFを命令の一部に導入したのである。即ち、
POFは1ビツト構成であり、“1”であればダイ
レクトアドレツシングモードの命令であることを
意味し、POFが“0”であればそうでない命令
であることを意味する。
デツクス修飾が皆無かと云うと上述の如き例外的
ケースがある。そこで、一般の計算機とは多数と
少数とが逆転するが、ダイレクトアドレツシング
モードを示す命令にはPOF=1とし、インデツ
クス修飾モードを示す命令にはPOF=0とする、
POFを命令の一部に導入したのである。即ち、
POFは1ビツト構成であり、“1”であればダイ
レクトアドレツシングモードの命令であることを
意味し、POFが“0”であればそうでない命令
であることを意味する。
これ以外の構成要素は、第1図と同じ機能を持
つ。以下簡単に説明する。発振回路2は、基本ク
ロツクの発振を行う。制御回路3は、命令レジス
タ18のオペコード部OPを取込み解読し必要な
制御のための各種信号を出力する。このタイミン
グは発振回路2の基本クロツクに基づく。制御回
路3は、この他に各種の制御機能を持つ。
つ。以下簡単に説明する。発振回路2は、基本ク
ロツクの発振を行う。制御回路3は、命令レジス
タ18のオペコード部OPを取込み解読し必要な
制御のための各種信号を出力する。このタイミン
グは発振回路2の基本クロツクに基づく。制御回
路3は、この他に各種の制御機能を持つ。
プログラムカウンタ4は、プログラム番号(命
令)の計数を行う。この計数出力は直接又は間接
にプログラム格納用メモリ12のアドレスをな
す。プログラム格納用メモリ12は、プログラム
(命令)を格納してなり、プログラムカウンタ4
の出力によつてアクセスを受け、そのアクセスア
ドレスから所定のプログラム(命令)を読出す。
令)の計数を行う。この計数出力は直接又は間接
にプログラム格納用メモリ12のアドレスをな
す。プログラム格納用メモリ12は、プログラム
(命令)を格納してなり、プログラムカウンタ4
の出力によつてアクセスを受け、そのアクセスア
ドレスから所定のプログラム(命令)を読出す。
命令レジスタ11は、メモリ12から読出した
命令を一時格納する。命令は、オペコード部OP、
オペランド先読み許可信号部POF、インデツク
ス部IX、アドレス部ADDRより成る。この命令
レジスタ11の内容はレジスタ18に送出される
と共に、その一部はスイツチ27等の制御に使用
される。
命令を一時格納する。命令は、オペコード部OP、
オペランド先読み許可信号部POF、インデツク
ス部IX、アドレス部ADDRより成る。この命令
レジスタ11の内容はレジスタ18に送出される
と共に、その一部はスイツチ27等の制御に使用
される。
インデツクスレジスタ5は、n個のインデツク
スアドレスを持ち、このインデツクスアドレスは
命令レジスタ18のインデツクス部IXが指定す
る。インデツクスレジスタ5の内容はインデツク
スデータが入つている。
スアドレスを持ち、このインデツクスアドレスは
命令レジスタ18のインデツクス部IXが指定す
る。インデツクスレジスタ5の内容はインデツク
スデータが入つている。
アキユームレータ7は、スイツチ8とスイツチ
6の選択出力を取込み所定の演算を行う。アキユ
ムレータ7は、演算回路7の出力を取込む。レジ
スタ9は演算回路7の出力を取込む。スイツチ2
7の出力は、PI/O13に送られる。更に、
PI/O13のオペランドはレジスタ26に送ら
れ一時記憶される。
6の選択出力を取込み所定の演算を行う。アキユ
ムレータ7は、演算回路7の出力を取込む。レジ
スタ9は演算回路7の出力を取込む。スイツチ2
7の出力は、PI/O13に送られる。更に、
PI/O13のオペランドはレジスタ26に送ら
れ一時記憶される。
以上の構成で、プログラムカウンタ4、プログ
ラム格納用メモリ12、命令レジスタ11、
PI/O13、演算回路7、レジスタ26、アキ
ユムレータ10はそれぞれ、並行して動作し、あ
る命令の演算中に次の命令のオペランドを読出
し、そして次の次の命令を読出すように動作す
る。従つて、各構成要素は遊ぶことなく動作して
いる。即ち、これがパイプライン処理である。こ
のパイプライン処理でPC4によりプログラムメ
モリ12から命令を読出してIR11に命令をセ
ツトするまでを命令フエツチ処理、IR11への
命令セツトからレジスタ修飾指令信号102がで
るまでの処理をオペランド読出し処理、IR18
への命令セツトからALU7での演算完了までの
処理を実行処理と呼ぶ。具体的には第3図に詳述
されている。
ラム格納用メモリ12、命令レジスタ11、
PI/O13、演算回路7、レジスタ26、アキ
ユムレータ10はそれぞれ、並行して動作し、あ
る命令の演算中に次の命令のオペランドを読出
し、そして次の次の命令を読出すように動作す
る。従つて、各構成要素は遊ぶことなく動作して
いる。即ち、これがパイプライン処理である。こ
のパイプライン処理でPC4によりプログラムメ
モリ12から命令を読出してIR11に命令をセ
ツトするまでを命令フエツチ処理、IR11への
命令セツトからレジスタ修飾指令信号102がで
るまでの処理をオペランド読出し処理、IR18
への命令セツトからALU7での演算完了までの
処理を実行処理と呼ぶ。具体的には第3図に詳述
されている。
以上の実施例で発明の中心となる動作について
更に詳述する。第3図はタイムチヤートである。
発振器2の発振クロツク100を基本クロツクと
しているものとする。今、プログラムカウンタ4
がk番地の命令を読出したとすると、次の演算終
了信号104で命令レジスタ11はその読出し命
令Ikをラツチする。命令Ikがダイレクトアドレツ
シングモードの命令であるとすると、命令Ikのア
ドレス部ADDRが直接にPI/Oアドレスとして
オペランド読出を行う。この手順は、以下とな
る。POF=1により、スイツチ27を1側にオ
ンさせ、次いで命令レジスタ11のアドレス部
ADDRをこのスイツチ27を介してPI/O13
に送り、オペランド読出しを行う。このPI/O
13から読出されたオペランドは次の演算終了信
号104でレジスタ26にラツチされる。これと
同時に命令レジスタ11の命令Ikは命令レジスタ
18に移される。
更に詳述する。第3図はタイムチヤートである。
発振器2の発振クロツク100を基本クロツクと
しているものとする。今、プログラムカウンタ4
がk番地の命令を読出したとすると、次の演算終
了信号104で命令レジスタ11はその読出し命
令Ikをラツチする。命令Ikがダイレクトアドレツ
シングモードの命令であるとすると、命令Ikのア
ドレス部ADDRが直接にPI/Oアドレスとして
オペランド読出を行う。この手順は、以下とな
る。POF=1により、スイツチ27を1側にオ
ンさせ、次いで命令レジスタ11のアドレス部
ADDRをこのスイツチ27を介してPI/O13
に送り、オペランド読出しを行う。このPI/O
13から読出されたオペランドは次の演算終了信
号104でレジスタ26にラツチされる。これと
同時に命令レジスタ11の命令Ikは命令レジスタ
18に移される。
命令レジスタ18の内容の中でオペコード部
OP及びPOFは制御回路3に送られ、制御回路3
はこれを解読し、演算回路7に対して演算動作指
令103を与える。演算回路7は、指令103を
受けてレジスタ26の内容とアキユムレータ10
の内容との間で所定の演算を行い、次の演算終了
信号104でこの演算結果をアキユムレータ10
にラツチさせる。
OP及びPOFは制御回路3に送られ、制御回路3
はこれを解読し、演算回路7に対して演算動作指
令103を与える。演算回路7は、指令103を
受けてレジスタ26の内容とアキユムレータ10
の内容との間で所定の演算を行い、次の演算終了
信号104でこの演算結果をアキユムレータ10
にラツチさせる。
以上詳述したことから明らかなように、読出さ
れる命令がダイレクトアドレツシングモードの命
令であれば、演算終了信号104を区切りに、次
から次へと命令を流れ作動的に処理してゆくこと
になる。この処理の過程では、演算回路7の処理
内容は1つの命令で1回の演算でよい。
れる命令がダイレクトアドレツシングモードの命
令であれば、演算終了信号104を区切りに、次
から次へと命令を流れ作動的に処理してゆくこと
になる。この処理の過程では、演算回路7の処理
内容は1つの命令で1回の演算でよい。
一方、レジスタ修飾アドレツシングモードの命
令では、POF=“0”をなす。例えば、(k+1)
番目の命令がレジスタ修飾アドレツシングモード
の命令である時には、スイツチ27は2側にオン
となる。そして最初の基本クロツクで次の演算終
了信号104により、命令レジスタ18に入つた
命令Ik+1のオペコード部OP及びPOF=“0”とを
制御回路3が解読する。この解読の結果、制御回
路3は番地計算指令105を出力し、スイツチ6
及び8を2側にオンさせる。これにより、演算回
路7は命令レジスタ18のADDRとインデツク
スIXの指令したレジスタ5の内容との加算とを
行い番地計算を行わせる。この計算結果は、番地
計算指令105の後縁でレジスタ9にラツチさせ
る。次に基本クロツク100でPI/O13から
のオペランド読出しを行う。この間は演算回路7
も休止している。レジスタ修飾指令信号102
は、命令Ik+1を解読した結果として、番地計算と
この期間の2クロツク分、“1”となつている。
レジスタ修飾指令信号102はオアゲート23に
入力し信号106となり、微分回路24は信号1
06の後縁で微分出力107で発生する。この微
分信号107によりオアゲート25を介してレジ
スタ26に、PI/O13から読出したオペラン
ドをラツチさせる。次の基本クロツクで命令本来
の演算を実行し、1命令分の処理を終了する。
令では、POF=“0”をなす。例えば、(k+1)
番目の命令がレジスタ修飾アドレツシングモード
の命令である時には、スイツチ27は2側にオン
となる。そして最初の基本クロツクで次の演算終
了信号104により、命令レジスタ18に入つた
命令Ik+1のオペコード部OP及びPOF=“0”とを
制御回路3が解読する。この解読の結果、制御回
路3は番地計算指令105を出力し、スイツチ6
及び8を2側にオンさせる。これにより、演算回
路7は命令レジスタ18のADDRとインデツク
スIXの指令したレジスタ5の内容との加算とを
行い番地計算を行わせる。この計算結果は、番地
計算指令105の後縁でレジスタ9にラツチさせ
る。次に基本クロツク100でPI/O13から
のオペランド読出しを行う。この間は演算回路7
も休止している。レジスタ修飾指令信号102
は、命令Ik+1を解読した結果として、番地計算と
この期間の2クロツク分、“1”となつている。
レジスタ修飾指令信号102はオアゲート23に
入力し信号106となり、微分回路24は信号1
06の後縁で微分出力107で発生する。この微
分信号107によりオアゲート25を介してレジ
スタ26に、PI/O13から読出したオペラン
ドをラツチさせる。次の基本クロツクで命令本来
の演算を実行し、1命令分の処理を終了する。
以上の3クロツクの間、演算終了信号104は
休止しているので、プログラムカウンタ4、命令
レジスタ11,18の動作も凍結され、次の動作
に備えている。
休止しているので、プログラムカウンタ4、命令
レジスタ11,18の動作も凍結され、次の動作
に備えている。
尚、POF=“0”の時には、オペランド必要と
する命令を示したが、オペランド不用な命令もあ
る。オペランドが必要か不用かは各命令のオペコ
ードOPによつて決まる故に、最終的には制御回
路3がこの判定を行う。
する命令を示したが、オペランド不用な命令もあ
る。オペランドが必要か不用かは各命令のオペコ
ードOPによつて決まる故に、最終的には制御回
路3がこの判定を行う。
本実施例によれば、ダイレクトアドレツシング
モードの命令の場合には、命令読出しとオペラン
ド読出しとに分れて並行して処理可能となり、処
理速度は従来に比して3倍向上できた。従つて、
演算回路7の負担も軽くなつた。
モードの命令の場合には、命令読出しとオペラン
ド読出しとに分れて並行して処理可能となり、処
理速度は従来に比して3倍向上できた。従つて、
演算回路7の負担も軽くなつた。
第4図は本発明の他の実施例図を示す。命令コ
ードの中に、POFを特別に設けずに、代りに、
インデツクス部IXにPOFを実質的に含ませるこ
とができる。従つて、インデツクス部IXをドコ
ードさせるべくデコーダ28を設けた。このデコ
ード出力はオアゲート23の入力とすればよい。
この実施例では、プログラムの中にPOFを持た
なくてよいとの利点を持つ。
ードの中に、POFを特別に設けずに、代りに、
インデツクス部IXにPOFを実質的に含ませるこ
とができる。従つて、インデツクス部IXをドコ
ードさせるべくデコーダ28を設けた。このデコ
ード出力はオアゲート23の入力とすればよい。
この実施例では、プログラムの中にPOFを持た
なくてよいとの利点を持つ。
第5図は他の実施例図を示す。本実施例は、共
通バス方式を使用した時のものである。プログラ
ム格納用メモリ12とPI/O13とを共通バス
37,38に接続せしめている。共通バス37は
アドレスバス、共通バス38はデータバスであ
る。CPU1内には、スイツチ29,30を設け、
スイツチ29は出力選択用であり、プログラムカ
ウンタ4の計数値とスイツチ27の出力との選択
を行い、スイツチ30は入力選択用であり、デー
タバス上のデータを命令レジスタ11に送出する
か、レジスタ26に送出するかの選択を行う。ス
イツチ29,30の選択の制御は制御回路3が行
う。
通バス方式を使用した時のものである。プログラ
ム格納用メモリ12とPI/O13とを共通バス
37,38に接続せしめている。共通バス37は
アドレスバス、共通バス38はデータバスであ
る。CPU1内には、スイツチ29,30を設け、
スイツチ29は出力選択用であり、プログラムカ
ウンタ4の計数値とスイツチ27の出力との選択
を行い、スイツチ30は入力選択用であり、デー
タバス上のデータを命令レジスタ11に送出する
か、レジスタ26に送出するかの選択を行う。ス
イツチ29,30の選択の制御は制御回路3が行
う。
プログラム格納用メモリ12は、本来のメモリ
12Aの他のアドレス一致回路31とスイツチ3
2とを持つ。PI/O13は、本来のPI/O13
Aの他のアドレス一致回路33とスイツチ34と
を持つ。アドレス一致回路31と33とは、アド
レスバス37より送られてくるアドレスがプログ
ラム格納用メモリ12のためのアドレスか、
PI/O用のアドレスかの区分を行い且つ該当す
るアドレスであればアクセスを行い且つスイツチ
32又は33をオンする機能を持つ。
12Aの他のアドレス一致回路31とスイツチ3
2とを持つ。PI/O13は、本来のPI/O13
Aの他のアドレス一致回路33とスイツチ34と
を持つ。アドレス一致回路31と33とは、アド
レスバス37より送られてくるアドレスがプログ
ラム格納用メモリ12のためのアドレスか、
PI/O用のアドレスかの区分を行い且つ該当す
るアドレスであればアクセスを行い且つスイツチ
32又は33をオンする機能を持つ。
第6図は、第5図の実施例のタイムチヤートで
ある。第6図で、アドレスバス37、データバス
38は、バス切替信号108を用いて行つてお
り、プログラムとPI/Oとを交互に読出すため、
プログラムカウンタ4、命令レジスタ11,1
8、レジスタ26、演算がすべて基本クロツクの
2倍の周期で行うことになる。これ以外の動作
は、第3図と変りない。
ある。第6図で、アドレスバス37、データバス
38は、バス切替信号108を用いて行つてお
り、プログラムとPI/Oとを交互に読出すため、
プログラムカウンタ4、命令レジスタ11,1
8、レジスタ26、演算がすべて基本クロツクの
2倍の周期で行うことになる。これ以外の動作
は、第3図と変りない。
本実施例によると、第2図の実施例に比して処
理速度が遅くなる欠点を持つが、従来例に比して
は1.5倍の処理速度を得る利点を持つ。更に、
CPU1、プログラム格納用メモリ12、PI/O
13間のトータル接続信号語数を減少させる利点
を持つ。
理速度が遅くなる欠点を持つが、従来例に比して
は1.5倍の処理速度を得る利点を持つ。更に、
CPU1、プログラム格納用メモリ12、PI/O
13間のトータル接続信号語数を減少させる利点
を持つ。
発明の効果
本発明によれば、パイプライン化したプログラ
マブルコントローラにおいて、多数発生するダイ
レクトアドレツシングモードの命令は、先読みさ
れることとなり、処理速度の向上がはかれた。
マブルコントローラにおいて、多数発生するダイ
レクトアドレツシングモードの命令は、先読みさ
れることとなり、処理速度の向上がはかれた。
第1図は従来例図、第2図は本発明の実施例
図、第3図はそのタイムチヤート、第4図は本発
明の他の実施例図、第5図は本発明の更に他の実
施例図、第6図はそのタイムチヤート、第7図は
プログラマブルコントローラでのダイレクトアド
レツシングの説明図である。 1…CPU、2…発振回路、3…制御回路、4
…プログラムカウンタ(PC)、5…インデツクス
レジスタ、6,8…スイツチ、7…演算回路
(ALU)、9…PI/Oアドレスレジスタ(IOAR)
10…アキユムレータ(ACC)11,18…命
令レジスタ(IR)、26…PI/Oデータレジスタ
(IODR)、27…スイツチ、23,25…オアゲ
ート、24…微分回路、12…プログラム格納用
メモリ、13…プロセス入出力装置(PI/O)。
図、第3図はそのタイムチヤート、第4図は本発
明の他の実施例図、第5図は本発明の更に他の実
施例図、第6図はそのタイムチヤート、第7図は
プログラマブルコントローラでのダイレクトアド
レツシングの説明図である。 1…CPU、2…発振回路、3…制御回路、4
…プログラムカウンタ(PC)、5…インデツクス
レジスタ、6,8…スイツチ、7…演算回路
(ALU)、9…PI/Oアドレスレジスタ(IOAR)
10…アキユムレータ(ACC)11,18…命
令レジスタ(IR)、26…PI/Oデータレジスタ
(IODR)、27…スイツチ、23,25…オアゲ
ート、24…微分回路、12…プログラム格納用
メモリ、13…プロセス入出力装置(PI/O)。
Claims (1)
- 【特許請求の範囲】 1 命令のフエツチ処理と命令のオペランド読出
し処理と命令の実行処理とをパイプラインによつ
て行うプログラマブルコントローラにおいて、 命令をフエツチ処理によりフエツチした次のス
テツプで該命令語をみてレジスタ修飾アドレツシ
ングモードかダイレクトアドレツシングモードか
を判定し、ダイレクトアドレツシングモードの命
令であればアドレス計算することなくプロセス入
出力装置から対応するオペランドを読出して次の
ステツプで命令の実行処理を行わせ、レジスタ修
飾アドレツシングモードの命令であればオペラン
ド読み出し処理は休止しその次のステツプたる命
令の実行処理でレジスタ修飾に従つたアドレス計
算を行わせ、この計算アドレスを命令のオペラン
ド読み出し処理に利用させてなるプログラマブル
コントローラのパイプライン処理方法。 2 上記プロセス入出力装置と命令を格納するプ
ログラムメモリとは、共通のアドレス線と共通の
データ線とに接続され、共通のアドレス線上のプ
ロセス入出力装置かプログラムメモリかを示すア
ドレスによつてプロセス入出力装置かプログラム
メモリかの選択を行い、この選択に従つて上記共
通バスをその選択した装置側に占有させてなる特
許請求の範囲第1項記載のプログラマブルコント
ローラのパイプライン処理方法。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP58185832A JPS6079431A (ja) | 1983-10-06 | 1983-10-06 | プログラマブルコントローラのパイプライン処理方法 |
EP84111774A EP0136699B1 (en) | 1983-10-06 | 1984-10-02 | Programmable controller |
DE8484111774T DE3481944D1 (de) | 1983-10-06 | 1984-10-02 | Programmierbares steuerwerk. |
BR8405017A BR8405017A (pt) | 1983-10-06 | 1984-10-04 | Controlador programavel |
US06/658,025 US4694419A (en) | 1983-10-06 | 1984-10-05 | Programmable controller with direct to plant addressing |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP58185832A JPS6079431A (ja) | 1983-10-06 | 1983-10-06 | プログラマブルコントローラのパイプライン処理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPS6079431A JPS6079431A (ja) | 1985-05-07 |
JPH024010B2 true JPH024010B2 (ja) | 1990-01-25 |
Family
ID=16177655
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP58185832A Granted JPS6079431A (ja) | 1983-10-06 | 1983-10-06 | プログラマブルコントローラのパイプライン処理方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US4694419A (ja) |
EP (1) | EP0136699B1 (ja) |
JP (1) | JPS6079431A (ja) |
BR (1) | BR8405017A (ja) |
DE (1) | DE3481944D1 (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS62120541A (ja) * | 1985-11-20 | 1987-06-01 | Nec Corp | 命令制御方式 |
JP2834837B2 (ja) * | 1990-03-30 | 1998-12-14 | 松下電工株式会社 | プログラマブルコントローラ |
JPH0934866A (ja) * | 1995-07-18 | 1997-02-07 | Nec Corp | マイクロコンピュータ |
US6163836A (en) * | 1997-08-01 | 2000-12-19 | Micron Technology, Inc. | Processor with programmable addressing modes |
US6041328A (en) * | 1997-12-17 | 2000-03-21 | Advanced Micro Devices, Inc. | Tracking availability of elements within a shared list of elements from an index and count mechanism |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS54102937A (en) * | 1978-01-31 | 1979-08-13 | Fujitsu Ltd | Information processor |
JPS5541565A (en) * | 1978-09-20 | 1980-03-24 | Nippon Telegr & Teleph Corp <Ntt> | Address modification system |
JPS58115548A (ja) * | 1981-12-29 | 1983-07-09 | Fujitsu Ltd | マイクロプログラム制御方式 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2134805A5 (ja) * | 1971-04-21 | 1972-12-08 | Cii | |
US3969722A (en) * | 1974-07-03 | 1976-07-13 | General Electric Company | Method and apparatus for operator interrogation of simulated control circuits |
JPS5128728A (ja) * | 1974-09-04 | 1976-03-11 | Hitachi Ltd | |
US3967104A (en) * | 1974-11-26 | 1976-06-29 | Texas Instruments Incorporated | Direct and indirect addressing in an electronic digital calculator |
US4200927A (en) * | 1978-01-03 | 1980-04-29 | International Business Machines Corporation | Multi-instruction stream branch processing mechanism |
JPS5755451A (en) * | 1980-09-19 | 1982-04-02 | Canon Inc | Information processor |
US4451884A (en) * | 1982-02-02 | 1984-05-29 | International Business Machines Corporation | Cycle stealing I/O controller with programmable offline mode of operation |
-
1983
- 1983-10-06 JP JP58185832A patent/JPS6079431A/ja active Granted
-
1984
- 1984-10-02 EP EP84111774A patent/EP0136699B1/en not_active Expired - Lifetime
- 1984-10-02 DE DE8484111774T patent/DE3481944D1/de not_active Expired - Lifetime
- 1984-10-04 BR BR8405017A patent/BR8405017A/pt not_active IP Right Cessation
- 1984-10-05 US US06/658,025 patent/US4694419A/en not_active Expired - Lifetime
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS54102937A (en) * | 1978-01-31 | 1979-08-13 | Fujitsu Ltd | Information processor |
JPS5541565A (en) * | 1978-09-20 | 1980-03-24 | Nippon Telegr & Teleph Corp <Ntt> | Address modification system |
JPS58115548A (ja) * | 1981-12-29 | 1983-07-09 | Fujitsu Ltd | マイクロプログラム制御方式 |
Also Published As
Publication number | Publication date |
---|---|
US4694419A (en) | 1987-09-15 |
EP0136699A2 (en) | 1985-04-10 |
EP0136699B1 (en) | 1990-04-11 |
JPS6079431A (ja) | 1985-05-07 |
DE3481944D1 (de) | 1990-05-17 |
BR8405017A (pt) | 1985-08-20 |
EP0136699A3 (en) | 1987-06-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPS61204758A (ja) | コ・プロセツサ制御方式 | |
JPH0769791B2 (ja) | マイクロプロセッサ | |
US5068821A (en) | Bit processor with powers flow register switches control a function block processor for execution of the current command | |
JPH024010B2 (ja) | ||
JPH0447335B2 (ja) | ||
JPH0776922B2 (ja) | データ処理システム | |
JP2694948B2 (ja) | マイクロプログラム処理装置 | |
JP2567134B2 (ja) | ビットフィールド論理演算処理装置およびそれを具備するモノリシックマイクロプロセッサ | |
JP3027627B2 (ja) | プログラマブルコントローラの演算プロセッサ | |
JPH0222413B2 (ja) | ||
JPS6134188B2 (ja) | ||
JPH0241770B2 (ja) | ||
JP3948303B2 (ja) | プログラマブルコントローラ | |
JP3063593B2 (ja) | プログラマブルコントローラ | |
JP2020140290A (ja) | 中央演算処理装置 | |
JPH0512009A (ja) | デイジタル信号処理装置 | |
JPS61118840A (ja) | 電子計算機の制御方式 | |
JPH03164945A (ja) | データ処理装置 | |
JPH08305564A (ja) | マイクロコンピュータ | |
JPH0319570B2 (ja) | ||
JPH0150934B2 (ja) | ||
JPH04263322A (ja) | マイクロコンピュータ | |
JPH0658629B2 (ja) | データ処理装置 | |
JPH03113659A (ja) | キャッシュメモリ試験方法 | |
JPS6222147A (ja) | ワンチツプマイクロコンピユ−タ |