JPH06250711A - プログラマブルコントローラ - Google Patents

プログラマブルコントローラ

Info

Publication number
JPH06250711A
JPH06250711A JP4003093A JP4003093A JPH06250711A JP H06250711 A JPH06250711 A JP H06250711A JP 4003093 A JP4003093 A JP 4003093A JP 4003093 A JP4003093 A JP 4003093A JP H06250711 A JPH06250711 A JP H06250711A
Authority
JP
Japan
Prior art keywords
data
microprocessor
programmable controller
register
instruction
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.)
Pending
Application number
JP4003093A
Other languages
English (en)
Inventor
Katsuyuki Shimokawa
川 勝 千 下
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP4003093A priority Critical patent/JPH06250711A/ja
Publication of JPH06250711A publication Critical patent/JPH06250711A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)
  • Programmable Controllers (AREA)

Abstract

(57)【要約】 【目的】 高速の処理ができ、浮動小数点演算や固定小
数点演算が安価に処理できるプログラマブルコントロー
ラを実現すること。 【構成】 従来ゲートアレイで作られたシーケンス専用
演算回路の役割を変え、プログラマブルコントローラの
主要機能をプログラマブルコントローラ用コープロセッ
サ(11)側に持たせ、一方マイクロプロセッサ(3)
にはプログラマブルコントローラ用コープロセッサが持
つと経済的でない数値演算の一部の機能と、プロセス入
出力の機能などマイクロプロセッサ本来の機能を持たせ
る。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は各種プラントの制御に使
われるプログラマブルコントローラに関する。
【0002】
【従来の技術】プログラマブルコントローラは主にシー
ケンス制御に使われるものであるが、近年PID制御な
どのいわゆるDDC制御(直接デジタル制御)にも広く
使われるようになり、シーケンス制御の実行の能力ばか
りでなく数値演算の能力も重要な性能の一つとなってい
る。また制御の複雑化にともない、マイクロコンピュー
タにより作成した計算機のプログラムも並行して走らせ
ることが要求されるようになった。
【0003】このため、従来は高性能化のため、処理が
単純なシーケンス演算の実行はゲートアレイに分担させ
処理をするケースが多い。シーケンス演算は基本的に1
ビットのブール代数演算であるから、16ビットあるい
は32ビットを使う。ブール代数演算は、固定小数点の
演算、浮動小数点の演算にくらべ回路が単純でありゲー
トアレイ化が容易である。一方、数値演算の実行は処理
が複雑であり、これをハードウェアにおきかえることに
より高速の処理も可能であるが、回路が大規模になり高
価になること、高い開発コストがかかることなどからマ
イクロプロセッサのソフト処理により実行されてきた。
【0004】その典型的な構成を図6に示す。マイクロ
プロセッサ3、ゲートアレイ4、プロセス入出力装置
8、マイクロプロセッサ用メモリ9、バッファ7はデー
タバス1により結合されデータを送受信する。プログラ
マブルコントローラのプログラムはコードメモリ5に蓄
えられ、またデータはデータメモリ6に保持される。プ
ログラムの実行の概要を以下に示す。 1.プログラムは周期的に実行される。周期の始めに
は、外部のプロセス状態がプロセス入出力装置8から入
力され、マイクロプロセッサ3によりデータバス1、バ
ッファ7、データバス2を通してデータメモリ6に蓄え
られる。これによりプログラムの実行の準備が整う。ま
た周期の始めはまた前周期の終わりでもあるので、前周
期のプログラムの実行結果がいまの説明とは逆方向に、
データメモリ6、データバス2、バッファ7、データバ
ス1、そして最後にプロセス入出力装置8に記憶され、
外部のプロセスへ与えられる。 2.シーケンス命令の場合は、ゲートアレイ4がコード
メモリ5のプログラムを読み、データメモリ6のデータ
にしたがってシーケンスの演算を行い、その結果を再び
データメモリ6に書き込む。シーケンス命令を実行する
時は、マイクロプロセッサはHOLD状態にしておき、
処理を行わない。 3.シーケンス命令以外のマイクロプロセッサ3で実行
する命令をここでは数値演算命令と称する。数値演算命
令がゲートアレイ4で検出されると、今度はゲートアレ
イ4は処理をマイクロプロセッサ3にまかせるため、H
OLD状態を解く。これにより、ゲートアレイ4からマ
イクロプロセッサ3に処理が移る。マイクロプロセッサ
3はバッファ7を通してコードメモリ5とデータメモリ
6にアクセスする。マイクロプロセッサ3はコードメモ
リ5を読み、命令を解釈しその命令の処理ルーチンへ飛
んで、実行を行う。 4.すべての命令の実行が終わると、実行結果をデータ
メモリ6に格納し、マイクロプロセッサ3の処理は、1
項に飛ぶ。
【0005】つぎに、図7により、ゲートアレイ4の内
部構成とシーケンス命令の処理方法について説明する。
まず各構成要素の説明をする。 1.プログラムカウンタ(PC)44はプログラムの実
行番地を保持し、番地を歩進する機能、番地をマイクロ
プロセッサから設定する機能、及びマイクロプロセッサ
から読みだす機能をもつ。 2.インストラクションレジスタ(IR)45は、プロ
グラムの内容を保持する。プログラムはオペレーション
コード(オペコード)と、必要によりビット番地やワー
ド番地などのオペランドを持つ。 3.デコーダ48は、インストラクションレジスタ45
のオペレーションコードを解釈し、ゲートアレイの全体
の動作を制御する。 4.データレジスタ(DR)46は、オペランドの示す
データを読みだしたときの記憶、及びオペランドの示す
番地への書き込みデータを保持する。データの読み書き
はワード単位であるので、ビットデータの抽出、及び挿
入のための回路を持つ。 5.ビット演算回路47は、デコーダ48の指令によ
り、オペレーションコードの指定に従い、論理積、論理
和、論理否定、排他論理和、及び上記の組み合わせ演
算、そして、演算結果の出力などのビット演算を行う。
ここでは演算の結果をつねに保持する。マイクロプロセ
ッサが演算結果を読めるようにデータバス1につなが
る。演算のためのオペランドの内容はデータレジスタ4
6から得る。演算結果は逆にデータレジスタ46へ与え
る。なお、CONTは前のオペレーションコードと同一
の場合を示す特別の命令である。 6.バッファ(BF)7にはマイクロプロセッサ3がコ
ードメモリ5、データメモリ6にアクセスする時にそれ
らの情報がおかれる。なお信号線80,81,82は図
示の回路をつなぐものである。
【0006】いま図5のようなプログラムを実行するも
のとする。この図で上部がプログラム、下部は同一のプ
ログラムをファンクションブロック図でかいたものであ
る。1番地と2番地で、ビット10とビット11の論理
積をとり、3番地でその結果とビット12の論理和をと
る。そして、その結果が1(真)なら減算を行う。減算
では三つのオペランドをもち、ワード20からワード3
0を減算し差をワード25へしまう。DATA1、DA
TA2、DATA3はそれぞれ、被減数、減数、差を示
す。以下に処理の順に説明する。 1.プログラムカウンタ44はデータメモリ6上のアド
レス1番地を保持しており、これをデータバス2のアド
レスライン2aに出力しコードメモリ5に与え、1番地
の内容を読む。読んだ内容は“AND 10”でありこ
れはデータバス2のデータライン2dを経由しインスト
ラクションレジスタ45に記憶する。 2.インストラクションレジスタ45の命令はデコーダ
48で解釈され今度はビット10を記憶するデータメモ
リ6の番地をインストラクションレジスタ45が指定
し、データを読みデータレジスタ46に読み込み、ここ
で所要のビットの状態を抽出し信号線82を通してビッ
ト演算回路47へあたえる。 3.ビット演算回路47では、抽出したビット状態BI
Nと現在記憶している前のビット演算結果BRと、デコ
ーダから受け取るオペレーションコードより、次のビッ
ト演算結果BRを計算する。ANDの場合及びANDに
続くCONTの場合はBRとBINでANDをとり、そ
の値を新たにBRに設定する。ORの場合及びORに続
くCONTの場合はBRとBINでORをとり、その値
を新たにBRに設定する。AND、ORが最初のシーケ
ンスである場合は、前の演算結果は存在しないので、B
INの値をそのままBRに設定する。この実行と並行し
て、プログラムカウンタ44を歩進し、1項と同様の処
理を行う。
【0007】以上の繰り返しにより、3番地までシーケ
ンスの実行をすすめる。4番地を読むと、デコーダ48
は、ゲートアレイ4で処理できないことを知り、データ
バス1にHOLDを解除する指令を発し、マイクロプロ
セッサ3が動きだす。マイクロプロセッサはバッファ
(BF)7を通してコードメモリ5、データメモリ6に
アクセスし、ソフトウェアにより処理を進める。図8、
図9には図5のマイクロプロセッサ3の減算命令の処理
のフローチャートを示した。他の演算命令も基本的に同
様である。p1〜p5はノードであり、同一のノードは
接続されることを示している。本図の一ブロックはマイ
クロプロセッサ命令に対応する。以下にインテル社製8
0486マイクロプロセッサを例にして図5、図8、図
9に基づき説明する。 1.マイクロプロセッサ3は、前処理としてプログラム
カウンタ(PC)44やビット演算結果BRなど制御用
データを対応するレジスタ等に格納する。 2.マイクロプロセッサ3は、内部のレジスタをプログ
ラムカウンタとする。従って、このレジスタの内容をア
ドレスとしてコードメモリ5をよみ、そのなかからオペ
レーションコード(オペコード)をとりだす。オペレー
ションコードにより処理がわかれるのでここでサブルー
チンコールを行い、所要の処理プログラムへ飛ぶ。ここ
では減算の処理へ飛ぶ(ブロック20〜22)。 3.後段のシーケンスのために、後述する減算結果のオ
ーバフローの有無を示す出力情報用フラグを初期化し、
次に前段のシーケンス結果を示すビット演算結果BRが
1である場合のみ以下の減算を行うため、シーケンス結
果を示すビット演算結果BRを保持するレジスタをチェ
ックする。なお、BRはゲートアレイの同様の名前のも
のとおなじ役目のものである。不実行の場合はノードp
4へ飛ぶ。実行の場合は、まず第1オペランドをコード
メモリ5から読む。つまり、5番地の内容を読む。次に
その内容よりデータメモリ6の20ワード番地の内容を
読み、1つのレジスタAXへしまう。同様にして第2オ
ペランドを読み、別のレジスタDXにしまう。そしてワ
ード減算(16ビット単位)を行い、差をレジスタAX
へしまう(ブロック23〜29)。 4.次に、オーバーフローの処理を行う。まずオーバー
フローがあったかどうかをフラグでチェックしなけれ
ば、第3オペランドの処理を行うためノードp3に飛
ぶ。オーバーフローがあれば、出力情報用フラグに書き
込む。そして負の最大値か正の最大値のいずれかにリミ
ットする(ブロック30〜34)。 5.つぎに、第3オペランドを読み、第3オペランドの
しめす25ワード番地に差を書き込む。そして、出力情
報用フラグの内容を処理のしやすいAXレジスタへ書き
込む(ブロック35〜37)。 6.最後に、つぎのシーケンスへアクセスするための準
備をする。マイクロプロセッサ3は、プログラムカウン
タ44を次命令の番地にセットし、シーケンス結果を示
すビット演算結果などの制御用データをゲートアレイ4
に移す。プログラムの実行中に割り込みがはいるとデー
タのセーブや復元で時間がかかるので割り込みを禁止し
て実行しているが、ここで割り込みを許可し、割り込み
があれば処理を許す。そして、つぎの準備のためにシー
ケンス結果を初期化し再度、割り込みを禁止し、最初に
戻る(ブロック38〜42)。
【0008】
【発明が解決しようとする課題】発電所などの電力設備
を中心とした各種プラントの制御では従来にくらべもっ
と高性能で高速の処理が要求されるようになった。なか
には数ミリ秒の制御周期で処理することを要求されるも
のまである。またDDC制御についても従来は固定小数
点演算で処理したものをダイナミックレンジが広く、デ
ータの飽和を心配しなくていい浮動小数点演算を要求さ
れるケースが多くなった。浮動小数点演算は演算が複雑
であり、処理時間も長くこれらを多用するケースは十分
な速度がとれないケースがでてきた。このような状況で
は、処理の高速化とより大きいプログラマブルコントロ
ーラのプログラム容量を必要とされ、結果的には一命令
の実行時間はいままでより一桁早い速度が要請されてい
る。このためには、現在の構成をそのままで、単に高速
の素子を使うのではなく、構成そのものを抜本的に見直
す必要が生じた。しかし、一方では開発に多大な時間を
必要としない、しかも安価な装置が望まれている。
【0009】以上の観点から従来の技術には以下の問題
がある。 1.数値演算命令の実行においてマイクロプロセッサの
処理ステップは図8に示したように多い。その原因とし
ては、 (a)計算後のオーバーフローのチェックと計算結果の
補正のような後の処理に計算そのもの以上にステップが
かかる。 (b)数値演算ではマイクロプロセッサ側で、プログラ
ムカウンタの機能やプログラマブルコントローラのプロ
グラムのアクセス、演算結果のための情報出力用フラグ
など、プログラマブルコントローラのすべての処理を行
っているので、マイクロプロセッサの負荷が大きい。 2.シーケンス命令と数値演算命令とに切り替わるとき
ゲートアレイとマイクロプロセッサとで制御を切り替え
るため、プログラムカウンタやシーケンス結果などの情
報の伝達に時間を費す。 3.ゲートアレイがコードメモリやデータメモリへのア
クセスを並行してできないため処理に時間がかかる。
【0010】要するに、ゲートアレイとマイクロプロセ
ッサで機能分担してプログラマブルコントローラとして
処理を行う方式は開発コストを下げ、装置を安価にする
点で良いが、機能の分担と処理の方法では高速化の点で
いろいろの問題がある。
【0011】以上の観点から、本発明は高速の処理がで
き、浮動小数点演算や固定小数点演算が安価に処理でき
るプログラマブルコントローラを実現することを目的と
するものである。
【0012】
【課題を解決するための手段】本発明は、従来ゲートア
レイで作られたシーケンス専用演算回路の役割を変え、
プログラマブルコントローラの主要機能をプログラマブ
ルコントローラ用コープロセッサ側に持たせ、一方マイ
クロプロセッサ側にはプログラマブルコントローラ用コ
ープロセッサが持つと経済的でない数値演算の一部の機
能と、プロセス入出力の機能などマイクロプロセッサ本
来の機能を持たせるプログラマブルコントローラであ
る。
【0013】
【作用】本発明のプログラマブルコントローラにおいて
は、従来ゲートアレイで作られたシーケンス専用演算回
路の役割を変え、プログラマブルコントローラの主要機
能を実行するプログラマブルコントローラ用コープロセ
ッサとしての機能をもたせ、一方マイクロプロセッサに
はプログラマブルコントローラ用コープロセッサが持つ
と経済的でない数値演算の一部の機能と、プロセス入出
力の処理などのマイクロプロセッサ本来の機能を持たせ
処理を行わせる。つまり、プログラマブルコントローラ
では、大部分の処理を行う。プログラムカウンタ、シー
ケンス結果など、従来両方にあったものは一元的にプロ
グラマブルコントローラ用コープロセッサにおきプログ
ラマブルコントローラ用コープロセッサで管理される。
シーケンス命令は当然として、数値演算命令において
も、プログラマブルコントローラ用コープロセッサのハ
ードウェアで効果的に実行できることはすべてプログラ
マブルコントローラ用コープロセッサで実行する。デー
タの変換、シーケンス結果の計算、記憶などマイクロプ
ロセッサであれば、時間がかかることはプログラマブル
コントローラ用コープロセッサにとりこみ、マイクロプ
ロセッサでは演算処理の核心のみを処理する。その結
果、高速の処理ができ、浮動小数点演算や固定小数点演
算が安価に処理できるようになる。
【0014】
【実施例】まず本発明の概要を図1、図3に基づいて説
明する。図1は本発明によるプログラマブルコントロー
ラの構成を示す。本発明ではマイクロプロセッサ3、マ
イクロプロセッサ用メモリ9、プロセス入出力装置8、
プログラマブルコントローラ用コープロセッサローラ
(PCC)11それぞれがデータバス1を通して接続さ
れ、データの交換を行い、プログラマブルコントローラ
用コープロセッサ11は独立したデータバス12、10
によりコードメモリ5、データメモリ6それぞれと接続
されている。
【0015】プログラマブルコントローラ用コープロセ
ッサ11は図3に示すように以下により構成される。す
なわち、プログラムカウンタ60、インストラクション
レジスタ61、データレジスタ62、デコーダ63、オ
ペレーションコードレジスタ64、ビット演算回路6
5、アドレスデコーダ66、データ変換回路67、デー
タ変換回路68、そしてそれらをつなぐ信号線70〜7
6、外部のデータバス1、12、10である。
【0016】プログラマブルコントローラ用コープロセ
ッサ11はコードメモリ5からコード(つまりプログラ
マブルコントローラのプログラム)を読みながら並行し
てコードを解釈してデータメモリ6のデータにアクセス
する。プログラマブルコントローラ用コープロセッサ1
1は必要なデータをデータレジスタ62に記憶する。コ
ードがシーケンス命令の場合はすべてプログラマブルコ
ントローラ用コープロセッサ11により処理が行われ
る。一方数値演算命令では、従来の方式と異なり真の計
算のみをマイクロプロセッサ3に負担させプログラムカ
ウンタの制御、演算結果の後処理、次の命令へのアクセ
スなどはすべてプログラマブルコントローラ用コープロ
セッサ11で統一して行う。つまりプログラマブルコン
トローラ用コープロセッサ11のハードウェアにより高
速で処理する。
【0017】プログラムの実行は以下のようにすすむ。 1.プログラムは周期的に実行される。周期の始めに
は、外部のプロセス状態がプロセス入出力装置8から入
力されマイクロプロセッサ3によりデータバス1、プロ
グラマブルコントローラ用コープロセッサ11、データ
バス10を通してデータメモリ6に蓄えられる。これに
よりプログラムの実行の準備が整う。また周期の始めは
また全周期の終わりでもあるので、全周期のプログラム
の実行結果がいまの説明とは逆方向に、データメモリ
6、データバス2、プログラマブルコントローラ用コー
プロセッサ11、データバス10、そして最後にプロセ
ス入出力装置8に記憶され、外部のプロセスへ与えられ
る。なお、図3、図4では図示していないが、マイクロ
プロセッサはデータバス1から、データバス12、及び
データバス10を通してコードメモリ5及びデータメモ
リ6をアクセスする経路をプログラマブルコントローラ
用コープロセッサ11のなかに持つ。 2.シーケンス命令の場合は、プログラマブルコントロ
ーラ用コープロセッサ11がコードメモリ5のプログラ
ムを読み、データメモリ6のデータにしたがってシーケ
ンスの演算を行い、その結果を再び、データメモリ6に
書き込む。シーケンス命令を実行する時は、マイクロプ
ロセッサ3は処理に関係しない。 3.数値演算命令も、プログラマブルコントローラ用コ
ープロセッサ11がコードメモリ5のプログラムを読
み、これを解釈してデータメモリ6をリードする。そし
てその結果をプログラマブルコントローラ用コープロセ
ッサ11のなかにストアする。プログラマブルコントロ
ーラ用コープロセッサ11は数値演算命令の場合マイク
ロプロセッサ3に対して処理がしやすいようにデータを
変換して渡す。従って、その処理をプログラマブルコン
トローラ用コープロセッサ11内で行う。 4.数値演算命令ではマイクロプロセッサ3がプログラ
マブルコントローラ用コープロセッサ11よりオペレー
ションコードを読みだし、その処理ルーチンへジャンプ
する。そして、変換を行い処理がしやすくしたデータを
読み計算を行う。この時、変換はプログラマブルコント
ローラ用コープロセッサ11へアクセスするアドレスの
特定のビットを使用して指示する。計算の結果はプログ
ラマブルコントローラ用コープロセッサ11に書き込
む。この時、マイクロプロセッサ3からプログラマブル
コントローラ用コープロセッサ11に書き込まれるデー
タはプログラマブルコントローラ用コープロセッサ11
で変換を行いデータレジスタ62に書かれ、同時にシー
ケンス結果を計算し記憶する。この指示はアドレス信号
の特定ビットを使用して行われる。 5.数値演算命令ではつぎにプログラマブルコントロー
ラ用コープロセッサ11のデータレジスタ62からデー
タメモリ6にデータを書き込み、一連の処理が終了す
る。 6.すべての命令の実行が終わると、1項に飛ぶ。
【0018】次に本発明の詳細を同様に図1、図3に基
づいて説明する。まず、各部の構成について図3に基づ
いて説明する。 1.プログラムカウンタ(PC)60はプログラムの実
行番地を保持し、番地を歩進する機能、番地を外部から
設定する機能及び、外部から読みだす機能をもつ。従来
の技術と異なり、プログラムカウンタ60の機能はマイ
クロプロセッサ3ではもたず、ここで一元的に管理す
る。プログラムカウンタ60の出力はコープロセッサメ
モリ用のデータバス12のアドレスとして使用する。 2.インストラクションレジスタ(IR)61は、プロ
グラムの内容を保持する。プログラムはオペレーション
コードと、必要によりビット番地やワード番地などのオ
ペランドを持つ。インストラクションレジスタ61は従
来1個のプログラムを保持していたが、プログラムを先
読みしつつ実行することを実現するためと、数値演算命
令は最大8個のプログラムで一個の機能を実現するので
(例えば減算命令は4個のプログラムよりなる)、複数
のプログラムよりなる一つの機能をまとまった形で保持
する。 3.デコーダ63は、インストラクションレジスタ61
のオペレ−ションコードを解釈し、コープロセッサ11
全体の動作を制御する。 4.データレジスタ(DR)62は、オペランドの示す
データを読みだしたときのデータの記憶、及びオペラン
ドの示す番地への書き込みデータを保持する。データの
読み書きはワード単位であるので、ビットデータの抽出
及び、挿入のための回路をもつ。データレジスタ62は
インストラクションレジスタ61と同じ数のレジスタを
持ち、データメモリ6からのデータは、そのデータの読
み出しを指示したインストラクションレジスタ61に対
応した番号のデータレジスタ62に記憶される。これは
インストラクションレジスタ61を順次デコーダ63が
解釈してデータをリードする必要があるときこの動作を
行う。例えば、図5の減算のプログラムではW20、W
30を読む必要があるのでこれを読みだし、データレジ
スタ62の1番と2番のレジスタにしまう。こうするこ
とにより、マイクロプロセッサ3はデータレジスタ62
の1番と2番のレジスタをリードするだけで、演算に必
要なデータにアクセスできる。これらデータはマイクロ
プロセッサ3が実行する時にはすでに用意されている。
また、図5のプログラムで、W25へは書き込むのであ
るが、マイクロプロセッサ3がデータレジスタ62の3
番目のレジスタに書き込む。 5.ビット演算回路65は、デコーダ63の指令によ
り、オペレーションコードの指定に従い、論理積、論理
和、論理否定、排他論理和、及び上記の組み合わせ演
算、そして、演算結果の出力などのビット演算を行う。
ここでは演算の結果をつねに保持する。また、ビット演
算回路65はマイクロプロセッサ3が演算結果を読める
ようにデータバス1につながる。演算のためのオペラン
ドの内容はデータレジスタ62から得る。演算結果は逆
にデータレジスタ62へ与える。なお、CONTは前の
オペレーションコードと同一の場合を示す特別の命令で
ある。 6.オペレーションコードレジスタ64はインストラク
ションレジスタ61の保持するオペレーションコードを
デコーダ63を介して受取り、数値演算命令の命令の種
別をマイクロプロセッサ3がアドレスライン1aを介し
てオペレーションコードレジスタ64の内容を判定し、
所要のルーチンへジャンプするのに使われる。命令がシ
ーケンス命令の場合、そして数値演算命令であるがビッ
ト演算回路65で判定したシーケンス結果が0であると
きはマイクロプロセッサ3は演算の必要がないので、オ
ペレーションコードを、命令の処理を行わないルーチン
を示す値に変更してマイクロプロセッサ3に与える。 7.アドレスデコーダ66はマイクロプロセッサ3から
のアドレス信号を解釈してプログラマブルコントローラ
用コープロセッサ11の内部のレジスタを選択し、マイ
クロプロセッサ3が読み書きする役割の他に特別の機能
を持つ。これは後述するデータ変換回路67、68の変
換動作の決定とシーケンス結果を計算し記憶する機能な
どを有する。ここでアドレスデコーダ66とマイクロプ
ロセッサ3の間で使用されるアドレス信号について説明
する。アドレス信号として下位から数えて19ビット分
を使い、この領域はつまり219バイトをPCUSEと名
付け、マイクロプロセッサはこのPCUSEをリードま
たはライトすることによって、アクセスするデータレジ
スタ62を識別するだけでなく各種の指令も発する。こ
れは現在のマイクロプロセッサは従来のものと異なりア
ドレスが16ビットしかないというような限定がない。
アドレス空間は32ビットというプログラマブルコント
ローラ用コープロセッサ11には広大すぎる空間を持つ
のでアドレス空間を有意義に使うことができる。同様の
機能はアドレスを使わないでデータとして書き込むこと
で可能であるが、これではデータレジスタ62をアクセ
スするたびにデータレジスタ62のアクセス以外にこの
指令をデータとして書き込む必要が生じ速度が低下す
る。以下にPCUSEの中身について述べる。 (a)オフセット(18〜16ビットの3ビットを使
用) データレジスタ62の中身がアドレスであるとき、その
アドレスに対して連続した番地を命令に使用するときの
基準になる前記アドレスに対するオフセットを示す。例
えば、PID用演算を実行する命令は8個のプログラム
では十分にデータを記憶する場所を確保できないのでこ
のオフセット機能を使い、前回スキャン時の中間制御デ
ータを保持する。この値が0のときオフセットがなく、
1以上ではその値がオフセット値である。なお、この選
択の1から7までをoffset1 からoffset7 で表現する。 (b)データレジスタ番号(15〜13ビットの3ビッ
トを使用) データレジスタとして有効に使用するのは1番目から7
番目のデータレジスタ62までであるのでその1から7
までを指定。0は不使用を意味する。なお、この選択1
から7までをop1 からop7 で表現する。 (c)出力データ操作(12〜11ビットの2ビットを
使用) プログラマブルコントローラ用コープロセッサ11がマ
イクロプロセッサ3から書き込まれデータレジスタ62
に書くときのデータ操作を示す。これによりデータ操作
を決めるとともに、ビット長は次に説明するテータ種別
から決定する。この値が0の時はなにも操作せず、1の
ときはlmtと表現し32ビットの固定小数点データを
16ビット固定小数点データにリミットする操作を行
う。この値が2の時は“f”と称し非数や非正規化数の
場合0に変換することを示す。 (d)データ種別(10〜8ビットの3ビットを使用) データレジスタ62から読み出すあるいは書き込むデー
タの種別を示す。値は1から6までを使いそれぞれ以下
のようになる。 i.1:log16 16ビット論理データを示す。 ii.2:ar16 16ビット固定小数点符号付きデー
タを示す。 iii.3:ar32 32ビット固定小数点データを示
す。 iv.4:arf32 32ビット浮動小数点データを示
す。 v.5:dev ビットデータを示す。 vi.6:adr アドレスであることを示す。 (e)ビット操作(7〜4ビットの4ビットを使用) ビット演算結果BRの操作について指定する。値が0は
なにもせず、1以上である時には各種の操作をする。そ
の判断の対象はマイクロプロセッサ3から書かれたデー
タである。操作の一部を示す。 i.1:br0 ビット演算結果BRを0にセット ii.2:br1 ビット演算結果BRを1にセット iii.3:brnot0 データが0でないときビット演算結
果BRを1にセット iv.4:brov16 データが16ビットを越える時、つ
まり16ビットデータとしてオーバーフローしたとき、
ビット演算結果BRを1にセット v.5:brf データが非数や非正規化数のときビ
ット演算結果BRを1にセット vi.9:brp データが正の数であるときビット演
算結果BRを1にセット vii.10:brnotp データが正の数でないときビット演
算結果BRを1にセット (f)命令終了(3ビットを使用) このビットは複数のプログラムよりなる命令のマイクロ
プロセッサ3での処理の最後を示す。1であるときに終
了であり、“e”で表わす。この命令によりプログラマ
ブルコントローラ用コープロセッサ11はこの指令と同
時に発した他の指令を処理するとともに新しい命令の処
理に移る。 (g)ライト指令 (2ビットを使用) データレジスタ62に書いたデータをデータメモリ6に
書き込むことを指令する。マイクロプロセッサ3はデー
タレジスタ62に書くだけであるが、プログラマブルコ
ントローラ用コープロセッサ11はこの指令から必要に
より変換し、そのうえでデータレジスタ62に記憶され
たデータを外部のデータメモリ6に書き込む。この指令
が1のときがライト指令であり、“mw”であらわす。
0の時は無意味を表す。PCUSEの1ビット及び0ビ
ットは32ビットデータ単位で読み書きをするため、こ
のような指令に使えないので、不使用である。 8.データ変換回路67はアドレスデコーダ66の指令
により以下のデータ変換動作をし、そのデータをデータ
ライン1dを介してマイクロプロセッサ3に出力する。
変換の指定はアドレス信号の10ビットから8ビットま
での3ビットで指定する。つまり最大8通りの選択がで
きる。 (a)log16:データレジスタ62の16ビット論理デー
タを32ビット論理データに変換する。上位16ビット
には0がはいる。つまり、0拡張を行う。32ビット化
するのは、他の計算が32ビットで行われるので、部分
的に16ビットの計算をするのが、マイクロプロセッサ
3ではむしろ時間がかかる面倒な処理となるからであ
る。また、そのオペランドに反転の指定があれば、16
ビットの論理データの1の補数を32ビット論理データ
に拡張して変換する。 (b)ar16: データレジスタ62の固定小数点符号付き
16ビットデータを符号付き32ビットデータに変換す
る。また、そのオペランドは反転の指定があれば、符号
付き16ビットデータの2の補数(つまり、符号を反転
した数)を符号つき32ビットデータに変換する。 (c)ar32: データレジスタ62のデータは固定小数点
符号付き32ビットデータである。従って特別の変換を
通常は必要としないが、そのオペランドに反転の指定が
あれば、このデータの2の補数(つまり、符号を反転し
た数)をとる変換を行う。なお、負の最大値の2の補数
をとるとオーバーフローをおこすので、正の最大にリミ
ットする。 (d)arf32:データレジスタ62の浮動小数点32ビッ
トデータのなかに非数(NAN)または非正規化数があ
れば浮動小数点の0に変換する。また、オペランドに反
転の指定があれば、符号を逆転した、浮動小数点に変換
する。 (e)dev:データレジスタ62の1ビットデータは16
ビットの論理データと同様の形式の32ビットにする。
また、そのオペランドに反転の指定があれば、16ビッ
トの論理データの1の補数を32ビット論理データに拡
張して変換する。 (f)adr:インストラクションレジスタ61はデータの
アドレスを示す場合でありこのアドレスがそのまま、デ
ータレジスタ62へ記憶された場合である。従って、変
換をしない。 9.もう一つのデータ変換回路68はアドレスデコーダ
66の出力データ操作指令により変換を行う。データの
ビット長はデータ種別より判断する。
【0019】ここで、データの変換について説明する。
プログラマブルコントローラでは、16ビットの固定小
数点の四則演算を初めとする各種の命令、そして32ビ
ットの浮動小数点の四則演算、PID用演算などの各種
の命令が処理される。まず、16ビットの固定小数点の
演算を考えると、従来の例で述べたようにこの計算でオ
ーバーフローが発生する可能性があると、オーバーフロ
ーの有無のチェック、オーバーフローによるデータの表
示が正しくないので最大値にリミットする処理を行わな
ければならない。これはむしろオーバーフローが発生し
ないように演算の桁数を上げることで解決できる。現在
の半導体の進歩により32ビットの演算も16ビットの
演算もマイクロプロセッサの内部が32ビットのため同
一の速度で処理ができる。従って32ビットの処理が出
来るようにプログラマブルコントローラ用コープロセッ
サでは16ビットデータに対してサイン拡張を行い32
ビット化する。つまり、16ビットデータの最上位のビ
ット(符号、サイン)を32ビットまで16ビット分拡
張する。このような処理はプログラマブルコントローラ
用コープロセッサのハードウェアで容易にしかも少ない
ロジックで実現できる。この32ビット化したデータを
マイクロプロセッサは読み、例えば減算を行う。この結
果はオーバーフローは発生しない。しかし、その結果は
16ビットを超えることがある。マイクロプロセッサは
32ビットの結果をそのままプログラマブルコントロー
ラ用コープロセッサに渡し、プログラマブルコントロー
ラ用コープロセッサの中で16ビットのデータに変換す
る。つまり32ビットのデータのうち上位16ビットが
全部1あるいは0であれば、データは16ビットで表現
できる。従って、上位16ビットが全部1あるいは0で
あるかを簡単なロジックで判断し、そうでなければ、負
の16ビットの最大値あるいは正の16ビットの最大値
にリミットする。これも簡単なロジックで表現できるこ
とは明らかである。また同時に、データが16ビットを
越えているか否かでシーケンス結果を記憶するケースで
は(例えば減算命令)このチェックを同時に前記のロジ
ックで行う。一方、浮動小数点演算ではオーバーフロー
は事実上存在しないが、例えば世界の標準規格であり本
発明の実施例でも使用したIEEE規格の浮動小数点表
現では、計算結果を意味しない非数(NAN)か出現す
る。これは0/0 や(−1)1/ 2 のケースであるが、これ
を発生させないように計算前にチェックするのでは時間
がかかる。プログラマブルコントローラを使う分野では
NANは0と置き換えても支障がない。0/0 や(−1)
1/2 が0であっても良いわけである。むしろNANであ
るとこれら計算結果は種々の計算を行った後、固定小数
点となり、最後にはプロセス入出力により外部に出さ
れ、このNANは固定小数点には変換できないので例外
的な処理をするように特別なことを考えなくてはいけな
いが、0にしておけば影響の少ない。このため、浮動小
数点でも、プログラマブルコントローラ用コープロセッ
サ11からマイクロプロセッサ3にデータを渡すとき、
そしてマイクロプロセッサ3からプログラマブルコント
ローラ用コープロセッサ11に書き込むときにNANを
0にする操作を行う。また必要によりマイクロプロセッ
サ3からプログラマブルコントローラ用コープロセッサ
11に書き込むときにデータを判断しシーケンス結果を
計算し記憶する。例えば正で1にするケースではデータ
の最上位ビットをチェックする。 10.信号線70から76は図示の回路を接続するもの
である。
【0020】ここで、前に説明した図3、図5を例に本
発明の動作の詳細を説明する。 1.プログラムカウンタ60はコードメモリ5上のアド
レス1番地を保持しており、これをデータバス12のア
ドレスライン12aに出力しコードメモリ5に与え、1
番地の内容を読む。読んだ内容は“AND 10”であ
りこれはデータバス12のデータライン12dを経由し
インストラクションレジスタ61に記憶する。これと同
時にプログラムカウンタ60を歩進し次のコードメモリ
5の番地の読み込みを指令し、以下の処理がパイプライ
ン処理されるように動作する。したがって、処理のパイ
プがつまらない限りコードメモリ5の読みだしを行う。
つまり、このプログラムの例では7番地まで休みなくリ
ードする。ここで述べたプログラムカウンタ60からの
パイプライン処理及び後述する2項のインストラクショ
ンレジスタ61からのパイプライン処理は、図7に示す
ようにコードメモリ5と従来のゲートアレイ4との間
と、データメモリ6と従来のゲートアレイ4との間とを
1本のバスで共有して使用していたものを、コードメモ
リ5のアクセス用に1本、又データメモリ6のアクセス
用に1本と合計2本に増やしたことによって可能とな
る。 2.インストラクションレジスタ61の命令はデコーダ
63で解釈され今度はビット10を記憶するデータメモ
リ6の番地をインストラクションレジスタ61がデータ
バス10のアドレスライン10aに出力し、データメモ
リ6に与え、データライン10dを経由して、データを
読みデータレジスタ62に読み込み、ここで所要のビッ
トの状態を抽出し信号線73を通してビット演算回路6
5へあたえる。このステップも、次々とパイプライン処
理される。すなわち、隙間なくデータメモリ6の読み込
みを行う。コードアドレスが4番地からは減算命令の処
理に変わる。従って、この場合、5番地と6番地ではワ
ード20番地とワード30番地のデータメモリ6を読み
だし、1番目と2番目のデータレジスタ62にしまう。 3.1番地から3番地までのシーケンス命令は以下のよ
うに実行される。ビット演算回路65では、抽出したビ
ット状態BINと現在記憶している前のビット演算結果
BRと、デコーダ63から受け取るオペレーションコー
ドより、次のビット演算結果BRを計算する。ANDの
場合及びANDに続くCONTの場合はBRとBINで
ANDをとり、その値を新たにBRに設定する。ORの
場合及びORに続くCONTの場合はBRとBINでO
Rをとり、その値を新たにBRに設定する。AND、O
Rが最初のシーケンスである場合は、前の演算結果は存
在しないので、BINの値をそのままBRに設定する。
以上の繰り返しにより、3番地までシーケンスの実行を
すすめる。このステップもパイプライン動作を行う。4
番地を読むと、デコーダ63は、プログラマブルコント
ローラ用コープロセッサ11で処理できないことを知
り、オペレーションコードレジスタ64に対して、演算
命令を示すオペレーションコードを与え(なお、シーケ
ンス結果が0のときは、何も実行しないルーチンへジャ
ンプする番地を与える値をオペレーションコードレジス
タ64に書き込む)、マイクロプロセッサ3は、処理を
開始する。
【0021】次にマイクロプロセッサ3での処理を、図
5に示される減算命令(SUB命令)を例に図2にフロ
ーチャートで示し、具体的にその説明をする。他の数値
演算命令も基本的に同様である。なお、マイクロプロセ
ッサ3の命令をインテル社製80486マイクロプロセ
ッサの命令コードで記述しているが、ここで示す処理は
インテル社製80486マイクロプロセッサには限定さ
れず、同様の機能を持つマイクロプロセッサでも実現で
きるものである。 1.マイクロプロセッサ3は、割り込みにより起動され
他の処理を行う以外、常にプログラマブルコントローラ
用コープロセッサ(PCC)11のオペレーションコー
ドレジスタ64をリードして、数値演算命令などのマイ
クロプロセッサ3側で行われるべき処理を待つ。図2の
ブロック51で、オペレーションコードレジスタ64を
読み、マイクロプロセッサ3のESIレジスタにしま
う。オペレーションコードレジスタ64の内容はそのま
ま、処理のルーチンのアドレスになるように決められて
いる。すなわち、一命令あたり、64バイトのスペース
をとり、命令のオペレーションコードの64倍した数を
オペレーションコードレジスタ64の内容とする。ま
た、命令が不実行の場合、つまりマイクロプロセッサ3
側で処理させるべき命令でないかあるいは処理させるべ
き状態で無いときは、0とする。例えば、加算命令は1
0×64、減算命令は11×64であり、これらが不実
行の場合、0×64とする。マイクロプロセッサ3の命
令は以下のようになる。 mov esi,opcode 2.ブロック52では、ESIに従って各命令の処理ル
ーチンにジャンプする。不実行の場合はブロック51に
戻り、減算の場合はブロック53へ飛ぶ。マイクロプロ
セッサ3の命令は以下のようになる。 jmp [esi] 3.減算の場合、1番目のデータレジスタ62(つまり
PCUSEはopl )を16ビット固定小数点符号付きデ
ータから32ビット固定小数点符号付きデータに変換
(ar16)してEAXへ読み込む。二つ以上の指定は以下
のように“”で結合し“op1 ar16”のように書く。
しかし、当然ながら、ひとつのアドレスを指定する。こ
の動作はブロック53に示すとおりで、マイクロプロセ
ッサの命令では以下のようになる。 mov eax,oplar16 4.次に、実際の減算を行う、2番目のデータレジスタ
62(つまりop2 )を16ビット固定小数点符号付きデ
ータから32ビット固定小数点符号付きデータに変換
(ar16)してつかうので、 op2ar16と書く。減算は3
2ビットで行なわれる。従って、オーバーフローはな
い。被減数はEAXにあり、答えの差は32ビットでE
AXにしまわれる。この動作はブロック54に示すとお
りで、マイクロプロセッサの命令では以下のようにな
る。 sub eax, op2ar16 5.次に、ブロック55で、3番目のデータレジスタ6
2(op3 )に、32ビット固定小数点から16ビットに
リミットをかけ( lmt ar16 ),書き込む。この動作
はこの命令の最後であるので“e”とし、またデータレ
ジスタ62からデータメモリ6に書き込むので“mw”を
指定する。もし、16ビットを越えるのであれば、ビッ
ト演算結果BRをセットするので“brov16”を指定す
る。従って、EAXをプログラマブルコントローラ用コ
ープロセッサ11に書き込む番地は以下のようになる。
マイクロプロセッサの命令は以下のようになる。 mov mwop3 lmt ar16brov16e,eax 6.つぎに、最初のブロック51の命令が実行される。
【0022】要するに、プログラマブルコントローラ用
コープロセッサ11を使うことで、マイクロプロセッサ
3は真の演算部分のみを行うので、減算では5ブロック
に短縮して処理ができる。他の四則演算や浮動小数点演
算でもほぼ同様である。参考に、浮動小数点減算命令の
例を示す。なお、プログラムの順序は実際に即して、ブ
ロック53に対応するところから始めて、ブロック52
に対応するところで終了するように書く。内容は浮動小
数点になった点の違いでプログラムが異なるが基本的に
は同じであるので説明を省略する。 fld op1art32 fsub op2art32 fstp mwop3 f arf32 brf e mov esi,opcode jmp [esi] プログラマブルコントローラ用コープロセッサ11は、
マイクロプロセッサ3に対して上述した各種情報をオペ
レーションコードレジスタ64を介して引き渡すため、
以下のコントローラ用プログラムを解釈し実行する機能
を有する。 1.命令の種別を決定するプログラムでは(例えば4番
地の“SUB”)では実施には種別と、オペランドの数
を指定する。すなわち、この例では“SUB,3”のよ
うに指定する。 2.オペランドではデータの処理種別と、データの種
類、反転の有無及びデータで構成する。データの処理種
別はR,W,R/W,NOの4種類で、それぞれ、リー
ド、ライト、リード/ライトの両方、無処理であり、こ
れをプログラマブルコントローラ用コープロセッサ11
のデコーダ63は解釈し処理する。データの種類はW,
B,F,ADR,WI,FIなどであり、その意味はワ
ードデータ(16ビット語長データ)の番地、ビットデ
ータ(1ビットのデータ)の番地、浮動小数点データ
(32ビットデータ)の番地、アドレスデータ、ワード
データの即値、浮動小数点データの即値(実際に実現は
仮数の23ビットを4ビット減らしそのビットは0とし
て表し、データレジスタ62にしまうとき32ビットの
IEEE規格に変換する)である。反転は、数値データ
の場合は符号を反転し、ビットデータは論理否定を行
う。反転がありで“N”で表現する。以上により、結局
のところ、図5のプログラムは本発明では以下のように
表現され、プログラマブルコントローラ用コープロセッ
サ11は、それを解釈実行する。 0001 AND 10 0002 CONT 11 0003 OR 12 0004 SUB, 3 0005 DATA,W, 20 0006 DATA,W, 30 0007 DATA,W, 25 オペランドの番号は、プログラマブルコントローラ用コ
ープロセッサ11でカウントすることでDATA1,D
ARTA2,DATA3と知る。なお、7番地の命令に
最後である“E”を示すことのできるようにすれば、オ
ペランドの数を指定しなくとも良い。その場合のプロメ
グラムは以下のようになる。 0001 AND 10 0002 CONT 11 0003 OR 12 0004 SUB 0005 DATA,W, 20 0006 DATA,W, 30 0007 DATA,W, 25,E
【0023】また、数値演算のうち、固定小数点の演算
は比較的少ないロジックで実現できるので、図4のよう
に、プログラマブルコントローラ用コープロセッサ11
にワード演算回路69を設けることによって、固定小数
点演算を高速に処理出来る。ワード演算回路69はデコ
ーダ63から指令を受け、ビット演算回路65の条件に
より、演算実行の有無を決定し、データレジスタ62か
らデータを得て計算し、その結果をデータレジスタ62
とビット演算回路65にしまう。マイクロプロセッサ3
では5ステップ必要な計算もマイクロプロセッサの1ス
テップ分相当の時間で処理可能である。この場合、マイ
クロプロセッサ3では、多大なロジックが必要な浮動小
数点演算、複雑な固定小数点演算(例えば、固定小数点
のPID用演算)、プログラマブルコントローラの制御
などに使われる。ワード演算回路69は算術論理演算ユ
ニットをもち、デコーダ63からの演算を指令され、ビ
ット演算回路65から演算実行の有無を指令され、演算
を行ない、その結果をデータレジスタ62、ビット演算
回路65にストアする。固定小数点演算回路69は信号
線71、73、74、77により他の回路とつながる。
【0024】他の実施例として,例えばインテル社製8
0486マイクロプロセッサのようにキャッシュメモリ
を内蔵したマイクロプロセッサを使う場合、限られたキ
ャッシュメモリを有効に利用するため、使用頻度が多い
処理ルーチンを割り当てるため、アドレスデコーダ66
は使用頻度の多いルーチンのアドレスを受け取ったとき
のみ、キャシュイネーブル信号を選択的に発し、マイク
ロプロセッサが内蔵したキャッシュメモリにアクセスで
きるようにする。
【0025】上記実施例によれば、以下のような効果が
ある。 1.マイクロプロセッサ3は、最も効率的に処理できる
計算の中枢部分のみを実行し各種の判定,オペランドの
アクセス,データの変換、データの後処理などの計算の
中枢部分と同じように時間のかかる処理を省くことがで
きる。 2.プログラマブルコントローラ用コープロセッサ11
はコードのアクセス、データのアクセスを分離したバス
10,12をとおして、パイプライン状態で行うこと
で、並列実行を切れ目なく行うことができる。 3.プログラマブルコントローラ用コープロセッサ11
は、プログタムカウンタ60、インストラクションレジ
スタ61、データレジスタ62等を全ての場合に使用で
きるように内蔵することでプログラマブルコントローラ
の実行の制御を集中して行い、実行する命令の種別に応
じて制御をマイクロプロセッサ3からプログラマブルコ
ントローラ用コープロセッサ11に移動するとき生じる
オーバーヘッドをなくすことができる。 4.プログラマブルコントローラ用コープロセッサ11
はアドレスデコーダ66を使い、変換や処理の指令をマ
イクロプロセッサ3が容易に与えられるようにすること
で、指令をマイクロプロセッサ3が与える時間を短縮で
きる。 5.プログラマブルコントローラ用コープロセッサ11
はデータの変換を行う回路67、68をもつことで、マ
イクロプロセッサの処理が単純となり、メモリ容量が少
なくてすみ、マイクロプロセッサのソフトを開発するの
が容易かつ誤りが少ないものとすることができる。 6.数値演算命令に移る前処理において、プログラマブ
ルコントローラ用コープロセッサ11はその実行結果に
よって、オペレーションコードレジスタ64に実行、不
実行の値をダイナミックに変える。加えてマイクロプロ
セッサ3の不実行のケースの処理が数少ないいくつかの
処理に集約されるため、従来の各命令の処理のなかで実
行、不実行を判断し、実行をするのに比べ、命令ステッ
プが少なくなるばかりでなく、合計したマイクロプロセ
ッサ3の数値演算のためのルーチンのメモリ量が少なく
できる。
【0026】上記の理由で、マイクロプロセッサ3の数
値演算のルーチンのメモリ量が少ない、コンパクトなも
のとすることで、マイクロプロセッサの内蔵するキャシ
ュメモリ、例えばインテル社製80486マイクロプロ
セッサを利用して、安価に高速の処理ができる。
【0027】
【発明の効果】本発明によれば、プログラマブルコント
ローラが高速に処理できるとともに、ゲートアレイを始
めとするASICを有効に活用することができる。
【図面の簡単な説明】
【図1】本発明によるプログラマブルコントローラの構
成を示すブロック図。
【図2】本発明によるプログラマブルコントローラのマ
イクロプロセッサ側のソフト処理を示すフローチャー
ト。
【図3】本発明によるプログラマブルコントローラ用コ
ープロセッサの内部構成を示すブロック図。
【図4】本発明によるプログラマブルコントローラ用コ
ープロセッサの内部構成を示すブロック図。
【図5】プログラム例とそのプログラムの動作を説明す
るためファンクションブロック図。
【図6】従来のプログラマブルコントローラの構成を示
すブロック図。
【図7】従来のプログラマブルコントローラのゲートア
レイの内部構成を示すブロック図。
【図8】従来のプログラマブルコントローラのマイクロ
プロセッサ側のソフト処理を示すフローチャート。
【図9】従来のプログラマブルコントローラのマイクロ
プロセッサ側のソフト処理を示すフローチャート。
【符号の説明】
1、10、12 バス 3 マイクロプロセッサ 5 コードメモリ 6 データメモリ 8 プロセス入出力装置 9 マイクロプロセッサ用メモリ 11 プログラマブルコントローラ用コープロセッサ

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】マイクロプロセッサと、コープロセッサ
    と、命令を収納する第一のメモリと、データを収納する
    第二のメモリとを有するプログラマブルコントローラに
    おいて、 前記コープロセッサは、複数の命令レジスタ、デコー
    ダ、複数のデータレジスタ、ビット演算回路、オペレー
    ションコードレジスタ、アドレスデコーダ、第一のデー
    タ変換回路、及び第二のデータ変換回路を備え、 前記複数の命令レジスタは、前記第一のメモリから、複
    数の命令を順次入力してそれを順次保持し、前記命令中
    のオペランドに対応するデータ番地を、第二のメモリに
    出力するものであり、 前記デコーダは、前記命令レジスタから命令と前記ビッ
    ト演算回路の演算結果を入力し、それらを解釈するもの
    であり、 前記複数のデータレジスタは、前記第二のメモリから前
    記命令のデータを順次入力してそれを順次保持し、その
    入力データから該当ビットの切り出しを行い、または前
    記データ変換回路からの入力信号に基づきデータを前記
    第二のメモリにアクセスするものであり、 前記ビット演算回路は、前記デコーダからの信号に基づ
    き前記データレジスタから入力されたデータと前回の演
    算結果との演算を行いその演算結果を保持するものであ
    り、 前記オペレーションコードレジスタは、前記デコーダか
    ら命令と前記演算結果とその命令に対応するマイクロプ
    ロセッサ側の実行番地とを入力し、これらをマイクロプ
    ロセッサに参照させるものであり、 前記アドレスデコーダは、マイクロプロセッサから入力
    されるアドレス信号を解釈するものであり、 前記第一のデータ変換回路は、前記アドレスデコーダか
    らデータレジスタ番号とデータ変換方法とを入力し、そ
    れに従い該当する前記データレジスタからデータを取り
    出し、指定された形式に変換し、マイクロプロセッサに
    その変換データをアドレス信号として出力するものであ
    り、 前記第二のデータ変換回路は、前記アドレスデコーダか
    らデータレジスタ番号とデータ変換方法と前記演算結果
    操作指令とを入力し、必要に応じて前記ビット演算回路
    に前記演算結果を出力し、該当するデータレジスタに対
    しそのデータを変換し前記第二のメモリに書き込む指令
    を出力するものであることを特徴とするプログラマブル
    コントローラ。
  2. 【請求項2】請求項1のプログラマブルコントローラに
    おいて、前記デコーダから指令を入力し、前記ビット演
    算回路の前記演算結果によって演算実行の有無を決定
    し、演算実行有りの時前記データレジスタからデータを
    得て固定小数点演算を行い、その演算結果を前記データ
    レジスタと前記ビット演算回路に出力するワード演算回
    路を備えたことを特徴とするプログラマブルコントロー
    ラ。
  3. 【請求項3】請求項1または請求項2のプログラマブル
    コントローラにおいて、マイクロプロセッサに常時前記
    オペレーションコードレジスタを監視させそのレジスタ
    の値に従い演算の実行、不実行を判断させ、演算を実行
    する時演算データの変換と演算データの記憶と演算結果
    の変更をコープロセッサに行わせるプログラマブルコン
    トローラ。
  4. 【請求項4】請求項1または請求項2のプログラマブル
    コントローラにおいて、特定の範囲をコープロセッサの
    データ番地部分とコープロセッサの前記データレジスタ
    番号とコープロセッサへのデータ変換指令部分とコープ
    ロセッサへの処理指令部分とに分割されたアドレス信号
    をマイクロプロセッサから前記アドレスデコーダへ出力
    するプログラマブルコントローラ。
JP4003093A 1993-03-01 1993-03-01 プログラマブルコントローラ Pending JPH06250711A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP4003093A JPH06250711A (ja) 1993-03-01 1993-03-01 プログラマブルコントローラ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4003093A JPH06250711A (ja) 1993-03-01 1993-03-01 プログラマブルコントローラ

Publications (1)

Publication Number Publication Date
JPH06250711A true JPH06250711A (ja) 1994-09-09

Family

ID=12569515

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4003093A Pending JPH06250711A (ja) 1993-03-01 1993-03-01 プログラマブルコントローラ

Country Status (1)

Country Link
JP (1) JPH06250711A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006048254A (ja) * 2004-08-02 2006-02-16 Ricoh Co Ltd 画像処理制御装置
JP2019153020A (ja) * 2018-03-02 2019-09-12 株式会社明電舎 プログラマブルコントローラのメモリアクセス制御システム、プログラマブルコントローラのメモリアクセス制御方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006048254A (ja) * 2004-08-02 2006-02-16 Ricoh Co Ltd 画像処理制御装置
JP2019153020A (ja) * 2018-03-02 2019-09-12 株式会社明電舎 プログラマブルコントローラのメモリアクセス制御システム、プログラマブルコントローラのメモリアクセス制御方法

Similar Documents

Publication Publication Date Title
JP3248992B2 (ja) マルチプロセッサ
CN114625423A (zh) 用于执行将矩阵变换为行交错格式的指令的系统和方法
CN112148251A (zh) 跳过无意义的矩阵运算的系统和方法
CN110909882A (zh) 用于执行水平铺块操作的系统和方法
JPS62226257A (ja) 演算処理装置
JPS6014338A (ja) 計算機システムにおける分岐機構
KR950009271B1 (ko) 정보처리시스템
US5265204A (en) Method and apparatus for bit operational process
EP0385136B1 (en) Microprocessor cooperating with a coprocessor
JPH08212075A (ja) 情報処理装置
JP2748957B2 (ja) データ処理装置
JPH06250711A (ja) プログラマブルコントローラ
JPS5826584B2 (ja) デ−タ処理装置
KR910001708B1 (ko) 중앙처리장치
JP2553200B2 (ja) 情報処理装置
US6233675B1 (en) Facility to allow fast execution of and, or, and test instructions
JPH04104350A (ja) マイクロプロセッサ
JPH07110769A (ja) Vliw型計算機
JPS6230455B2 (ja)
JPS60134937A (ja) アドレス拡張装置
US6289439B1 (en) Method, device and microprocessor for performing an XOR clear without executing an XOR instruction
JPH0256029A (ja) 汎用レジスタ切換方式
JP3239042B2 (ja) マイクロコンピュータ
JPS61296448A (ja) 電子計算機のデ−タ書込み制御方式
JPH033047A (ja) 演算機能付きメモリ