JPH04363704A - プログラマブルコントローラの演算プロセッサ - Google Patents
プログラマブルコントローラの演算プロセッサInfo
- Publication number
- JPH04363704A JPH04363704A JP3186628A JP18662891A JPH04363704A JP H04363704 A JPH04363704 A JP H04363704A JP 3186628 A JP3186628 A JP 3186628A JP 18662891 A JP18662891 A JP 18662891A JP H04363704 A JPH04363704 A JP H04363704A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- unit
- address
- section
- bpu
- 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.)
- Granted
Links
- 230000003247 decreasing effect Effects 0.000 abstract 1
- 238000004364 calculation method Methods 0.000 description 30
- 238000010586 diagram Methods 0.000 description 17
- 230000006870 function Effects 0.000 description 15
- 230000000630 rising effect Effects 0.000 description 10
- 238000000034 method Methods 0.000 description 5
- 230000005764 inhibitory process Effects 0.000 description 4
- DOMHZVJNLCAZSA-UYSNGIAKSA-N (2s,3r,5s,6r)-2,3,4,5,6-pentachlorocyclohexan-1-ol Chemical compound OC1[C@H](Cl)[C@@H](Cl)C(Cl)[C@@H](Cl)[C@@H]1Cl DOMHZVJNLCAZSA-UYSNGIAKSA-N 0.000 description 3
- 230000010365 information processing Effects 0.000 description 2
- SHXWCVYOXRDMCX-UHFFFAOYSA-N 3,4-methylenedioxymethamphetamine Chemical compound CNC(C)CC1=CC=C2OCOC2=C1 SHXWCVYOXRDMCX-UHFFFAOYSA-N 0.000 description 1
- HCHKCACWOHOZIP-UHFFFAOYSA-N Zinc Chemical compound [Zn] HCHKCACWOHOZIP-UHFFFAOYSA-N 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 239000000872 buffer Substances 0.000 description 1
- XXBDWLFCJWSEKW-UHFFFAOYSA-N dimethylbenzylamine Chemical compound CN(C)CC1=CC=CC=C1 XXBDWLFCJWSEKW-UHFFFAOYSA-N 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 206010016531 fetishism Diseases 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
Landscapes
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
- Programmable Controllers (AREA)
Abstract
め要約のデータは記録されません。
Description
ローラの演算プロセッサに関する。
トリーオートメーション)化の傾向に基づき、プログラ
マブルコントーラの用途は、従来のリレーシーケンス制
御中心のプログラム構成から、データ処理更には情報処
理用応用命令が多用されたプログラム構成に変わってき
ている。
うした傾向に基づき、応用命令が複雑、高機能化する方
向にある。このプログラマブルコントローラのこのよう
な命令が高機能化する動きは、CISC型と称されるコ
ンピュータの動向に類似している。一方、情報処理分野
におけるコンピュータの動きとして、RISC型と称さ
れるコンピュータが複雑、高機能化したCISC型コン
ピュータに対比させる形で登場してきている。
RISC型アーキテクチャのプロセッサがCPUとして
多く採用されている。ところでプログラマブルコントロ
ーラに利用されている演算プロセッサは、CISC型タ
イプのアーキテクチャを持つものが従来から採用されて
いる。この場合図19に示すように、インストラクショ
ンメモリIMと、CISC型演算プロセッサ1’と、デ
ータメモリDMと、マイクロコードMCとから構成され
、マイクロコードMCはより複雑、高機能化する応用命
令を実行するための情報を得る手段として、命令自体の
コードとは別に用いたものである。
にはマイクロコードMCが不要なRISC型に比べ、処
理速度が遅くなる。また、命令のコードサイズがばらば
らであり、高効率なパイプライン処理ができないという
問題もある。更には、複雑な処理をする高機能な命令を
実行する場合には、ハードウェアが複雑となるという問
題もある。また複雑さを軽減するためにはマイクロコー
ドMCにハードウェア機能を一部依存させるが、内蔵ハ
ードウェアとマイクロコードMCとのトレードオフが難
しいという問題もある。
演算プロセッサは、プログラマブルコントローラには未
だ使用されていない。つまり最も使用頻度の高いシーケ
ンス命令は特殊な処理が必要なため、RISC型の命令
セットではサポートされていない。そのため、RISC
型の命令を使用すれば、一つのシーケンス命令に対し、
多くの命令を組合わさなければならず、そのため命令の
サイズが大きくなり、メモリコストが高くなるだけでな
く、CISC型より遅くなる場合もある。
ているRISC型の演算プロセッサ1’’を用いてプロ
グラマブルコントローラを構成し、シーケンス命令の基
本的な処理である1ビット論理演算などのビット処理命
令をサポートしていることを前提とした命令を構成した
場合を示す。この場合インストラクッションメモリIM
に格納する、例えば〔OUT Y0〕命令はデータ入
力する〔LD, R1,Y0〕命令と、ビット操作をし
て出力する〔BITOUT Y0〕命令の二つの命令
が必要となる。現在市販されているRISC型プロセッ
サでは、もっと多くの命令を必要とするのは言うまでも
ない。尚LDはロード命令、STRはストア命令、ST
はスタート命令を示す。
、その目的とするところは使用メモリコストを下げる一
方、応用命令の高効率のパイプライン実行を可能とした
演算プロセッサのアーキテクチャを実現して、コストパ
ーフォーマンスの高いプログラマブルコントローラの演
算プロセッサを提供するにある。
シーケンス命令を実行するビットプロセッシングユニッ
トと、RISC型のデータ処理命令を実行するマルチビ
ットプロセッシングユニットと、両プロセッシングユニ
ットのマルチ演算を調停するコントロールユニットと、
両プロセッシングユニット共有のインストラクションレ
ジスタを持つインストラクションフェッチユニットと、
データメモリのバスインターフェース部とから少なくと
もなり、使用頻度の高いシーケンス命令をビットプロセ
ッシングユニットでパイプライン実行し、データ処理用
の応用命令をRISC型のデータ処理命令にコンパイル
してマルチビットプロセッシングユニットでパイプライ
ン実行させるものである。
令をビットプロセッシングユニットでパイプライン実行
するので、少ないメモリサイズで高効率のパイプライン
を実現できる。またデータ処理用の応用命令をRISC
型のデータ処理命令にコンパイルしてマルチビットプロ
セッシングユニットでパイプライン実行させるので、複
数ワードに及ぶ応用命令でも高い効率のパイプラインで
高速実行できる。
サ1を中心としたブロック構成を示し、図示するように
外部に命令が格納されるインストラクションメモリIM
と、データメモリDMとを分離して設けた所謂ハーバー
ドアーキテクチャを採用している。
クションメモリIMとは別のプログラムメモリ(図示せ
ず)に格納し、実行時には32bitのインストラクシ
ョンメモリIMにコンパイルされて格納されることを前
提とする。またシーケンス命令は、ユーザのソースコー
ドが1対1でコンパイルされる。一方データ処理用の応
用命令は、RISC型の命令に変換されるため、コード
サイズの比率は定まらない。
に詳細に説明する。インストラクションメモリIMにあ
る命令は全て1ワード(1ワード=32bit)で命令
が完結している。またデータメモリDMのデータ幅は1
6bit幅としている。演算プロセッサ1は内部を大き
く分類してインストラクションフェッチユニット2(以
下IFU部と略す)、コントロールユニット3、ビット
プロセッシングユニット(以下BPU部と略す)4、マ
ルチビットプロセッシングユニット(以下MPU部と略
す)5、データメモリバスインターフェース部(以下B
IU部と略す)6の5つのユニットから構成されており
、IFU部2は図2に示すように16bitカウンタで
構成されたプログラムカウンタ(以下PCと略す)2a
と、命令をフェッチする32bit長のレジスタにより
構成されたインストラクションレジスタ(以下IRと略
す)2bと,ゲート素子2c、2dとからなり、PC2
aの更新はBPU部4又はMPU部5からのPC2aの
更新情報のPCINC/PCHLT=”H”と、コント
ロールユニット3のクロックコントローラ3bから出力
されるFetchCLKとのゲート素子2cでの合成条
件によりPC2aのクロックを生成して行い、更新しな
いときは、PCINC/PCHLT=”L”となって、
クロックを生成しない。命令のフェッチも同様で、BP
U部4又はMPU部5からのフェッチ許可/禁止信号の
FEN/FINH=”H”と、コントロールユニット3
のクロックコントローラ3bから出力されるFetch
CLKとのゲート素子2dでの合成により、Fetch
CLKをIR2bに出力し、このFetchCLKの立
ち上がりエッジでIR2bの書き込みを行うもので、F
etchCLKはマシンサイクルの変化点で立ち上がる
。
ユニットの演算調停を主目的とするユニットで、命令の
種類としてBPU命令か、MPU命令かを大きく2つに
分け、この判定をベースとしてBPU部4と、MPU部
5とのマルチ演算調停を行い、32bitのインストラ
クションバスIBの内上位6bitをMPU/BPU判
定デコード部3aでデコードしてMPU命令か、BPU
命令かの判定を行い、その判定結果により、MPU部5
、BPU部4から夫々出力される情報を選択するための
MPU/BPU 信号をラッチ回路3fを介してBIU
部6に出力する。またFetchCLKを含めてマルチ
演算パイプライン方式を実現するための各種クロックは
クロックコントローラ3b及び実行コントロール部3c
から生成される。尚3d、3eはデータセレクタであり
、MPU/BPU 信号をセレクタ信号として用い、P
CINC/PCHLT、FEN/FINHを入力A,B
を通じてMPU部5、BPU部4から選択して取り込ん
で出力Yから出す。
コントロール部3cから生成され、各ユニットに供給さ
れる各種クロックの波形を示し、同図(a)はベースク
ロックBASECLK 、同図(b)はFetchCL
K、同図(c)はMPU部5へ送るレジスタフェッチク
ロックRSCLK、同図(d)はMPU部5、BPU部
4へ送る演算クロック、同図(e)はBIU部6へ送る
データメモリ読み出し信号DMRD、同図(f)はデー
タメモリ書き込み信号DMWRである。
ル部3cはBPU部4、MPU部5からのデータアクセ
ス要求信号RQを取り込み、またBPU部4、MPU部
5に対し実行許可信号をパイプラインシーケンスに基づ
き、BPUEXU,MPUEXUとして出力する。特に
MPUEXUは、パイプラインシーケンスにおいて実行
許可を出力するタイミングであっても、BPU部4の1
ビットアキュムレータBITACCの内容がオフであれ
ば、MPU部5に対して実行許可を出力しない仕様にな
っている。BITACCは、シーケンス命令におけるビ
ット処理結果が格納される1ビットのアキュムレータで
ある。
イプライン処理を行うためのBPU部4、MPU部5の
内部ハードウェア構成を説明する。BPU部4はBPU
命令を26bitで構成したもので、図4に示すように
、デコード部4a、データメモリDMのアドレス計算部
4b、マシンサイクルカウンタ4c、ALU4d、演算
ファンクションコード生成部4e、ワーキングレジスタ
4f、演算レジスタ4g、アドレスレジスタ4h等から
構成され、32bitの命令の上位6bitをBPU指
定コードに割り当て、残りの26bitをインストラク
ションバスIBを介してBPU命令として取り込み、そ
の内の上位5bitをオペコードOCとしてデコード部
4aによりデコードし、残りの21bitからなるオペ
ランドOPをアドレス計算部4bに取り込むようになっ
ている。デコード部4aは、複数サイクルの実行ステー
ジを必要とする命令を処理するために、マシンサイクル
カウンタ4cに実行ステージ数をプリセットし、実行ス
テージを繰り返す毎に、デクリメントするもので、デク
リメントした結果が0であれば、PCINC/PCHL
T=”H”,FEN/FINH=”H”とし、次の命令
をフェッチしてパイプラインを保つ。このときマシンサ
イクルカウンタ4cのプリセット値を必要実行ステージ
に1を引いた値とする。実行ステージが一つの命令では
マシンサイクルカウンタ4cのプリセット値が0となり
、常に次の命令をフェッチ許可することができる。また
マシンサイクルカウンタ4cの値が0以外のときはフェ
ッチを禁止する。マシンサイクルカウンタ4cの内容は
レジスタフェッチクロックの立ち上がりエッジで更新さ
れる。
るファンクションコードは5bitのオペコードOCの
デコード出力と、ロジック回路4iを通じて取り込むマ
シンンサイクルカウンタ4cの情報MCDにより演算フ
ンクションコード生成部4eで決定生成され、またFe
tchCLKの立ち上がりでコードが更新される。尚フ
ァンクションコードには演算クロックを制御する機能も
ある。例えば〔NOP〕命令ならばワーキングレジスタ
4f及びBITTACCを中心とする演算レジスタ4g
の書き込みクロックを生成しない。
tのオペランドOPとマシンサイクルカウンタ4cのア
ドレス用マシンサイクル情報AMCDとに基づいてアド
レス計算部4bにより計算され、アドレスレジスタ4h
と、図1に示すBIU部6を介してデータメモリDMに
転送され、またデータメモリDMとワーキングレジスタ
4f及び演算レジスタ4gとの間のデータ授受もBIU
部6を介して行われる。複数実行の命令処理の場合各実
行ステージで異なるアドレスを出力する際マシンサクル
カウンタ4cの情報が必要となる。
とFetchCLKの立ち上がりは図3に示すように同
じであるが、演算クロックのアクティブロウの幅がFe
tchCLKに比べて大きくとってあるのは、演算クロ
ックを必要とするワーキングレジスタ4fにRAMを使
用し、このRAMをアクセスするために必要なパルス幅
を得るためである。
を示している。ここでRISC型の命令を実行するMP
U部5でも乗除算を行う場合にはパイプライン処理中多
くの実行ステージを必要とするが、こうした乗除算は1
ワードの命令で実行が可能なため、BPU部4と同様に
マシンサイクルカウンタ5aを内蔵し、実行ステージを
管理するようになっている。
コードOCをデコード部5bでデコードし、残りの26
bitのオペランドOPをアドレス計算部5cに取り込
む。デコード部5bは複数サイクルの実行ステージを上
記のように必要とするために、マシンサイクルカウンタ
5aに実行ステージ数をプリセットし、実行ステージを
繰り返す毎にデクリメントするようになっており、デク
リメントした結果が0であれば、PCINC/PCHL
T=”H”、FEN/FINH=”H”とし、次の命令
をフェッチしてパイプラインを保つ。このときマシンサ
イクルカウンタ5aのプリセット値を必要実行ステージ
に1を引いた値とする。実行ステージが一つの命令では
マシンサイクルカウンタ5aのプリセット値は0となり
、常に次の命令をフェッチ許可することができる。また
マシンサイクルカウンタ5aの値が0以外のときはフェ
ッチを禁止する。マシンサイクルカウンタ5aの内容は
レジスタフエッチクロックRSCLK の立ち上がりエ
ッジで更新される。
は6bitのオペコードOCのデコード出力と、ロジッ
ク回路5fを通じて取り込むマシンンサイクルカウンタ
5aの情報によりファンクションコード生成部5eで決
定生成され、またFetchCLKの立ち上がりでコー
ドが更新される。尚ファンクションコードには演算クロ
ックを制御する機能もある。
ス計算部5cで行うが、アドレッシングモードをサポー
トするので、内部のインデックスレジスタ5g又はベー
スレジスタ5hの内容と、オペランドOPのオフセット
アドレスとを加算して出力したり、32bit長のワー
キングレジスタ5iの内容をアドレスとして選択したり
する。どのようなアドレス計算を行うかの選択は、26
bitのオペランドOPの中にタグ情報をデコードする
ことにより行う。
部4と基本的に異なるのは第2ステージであるデコード
、アドレス計算のとき32bit長のワーキングレジス
タ5iから演算対象のレジスタの内容をMUX5lを通
じてレジスタフェッチクロックRSCLK のタイミン
グでALU5dの入力レジスタ5jにフェッチすること
である。また第3の実行ステージでは、書き込みクロッ
クWDCLKによりメモリアクセス、レジスタ間演算、
演算結果の出力レジスタ5kに対する書き込みを行う。 尚メモリアクセスは全てロード/ストア命令で行う。尚
5mはアドレスレジスタである。
ンターフェース部でBPU部4、MPU部5からのデー
タメモリアドレスDMA及びデータメモリデータDMD
のセレクト機能を中心の機能として持っている。データ
メモリDMの読み出し/書き込みのコントロールは、コ
ントロールユニット3がBPU部4及びMPU部5から
のデータアクセス要求信号RQに基づき、バスセレクト
のBPU/MPU 信号と同時にDMRD/DMWR
信号をBIU部6に伝達することにより行われる。
及びPC2aの更新制御はBPU部4、MPU部5から
出力されるFEN/FINH及びPCINC/PCHL
Tの信号を選択し、結果をIFU部2に伝達するわけで
ある。しかし単に2つの信号を選択するだけなら簡単で
あるが、実際には例外的シーケンスとして、割り込みシ
ーケンス、シングルステップシーケンス、バス開放シー
ケンス等も外部/内部的要因で、コントロールユニット
3がサポートするため、IFU部2に対する伝達内容は
もっと複雑となる。 この内容についてはブランチ命令も含めて本発明では特
に触れない。
セス要求信号RQは、BPU部4及びMPU部5から夫
々出力され、コントロールユニット3がデータアクセス
要求信号RQを選択し、その結果をRD/WRのクロッ
ク信号及びバスのセレクト信号としてBIU部6に伝達
する。図7は、図1に示す構成に基づいくBPU部4、
MPU部5のマルチ演算パイプライン方式のタイミング
について示している。
IMの内容としては図6に示すように2つのBPU命令
と最も簡単な2つのMPU命令を例に挙げており、これ
らの命令がインストラクションメモリIMに格納され、
それを実行するときの状態を示している。図6中n〜n
+1は各命令を格納したインストラクションメモリIM
のアドレスを示している。
となっているが、各パイプラインステージの詳細につい
ては省略している。次に例示したパイプラインの概要に
ついて説明する。まず第1ステージは命令のフェッチを
行い、第2ステージはフェッチされた命令のデコード及
びデータのアドレス計算を行う。
のアドレスの計算であり、デコード情報と、1ワード3
2bitの命令に含まれるオペランドOP、更には複数
実行ステージを必要とするCISC型シーケンス命令の
場合はどの実行ステージにあるかにより決定される。第
3ステージはレジスタ演算及びメモリアクセスを行うス
テージである。
令は、この第3ステージでBPUEXU信号が有効であ
れば、データメモリDMからのデータ入力と1ビット抽
出及びBITACCの書き込み処理を同じマシンサイク
ルで行う。このとき、データメモリDMのアドレスも1
マシンサイクルの幅で確定している。BPU部4及びM
PU部5から出力されるデコード情報であるPCINC
/PCHLT,FEN/FINHは実行する命令が何ス
テージ必要なのかにより決定される。 図示例では〔OUT Y0〕が図7(g)に示すよう
に二つの実行ステージを必要とするので、最初の実行ス
テージではフェッチを禁止させる。また命令のアドレス
更新もさせない。それ以外の実行ステージは、そのステ
ージで実行が完結するので、命令のフェッチを許可し、
アドレスも更新する。
PU部4のデータアクセス要求又は図7(f)に示すM
PU部5のデータアクセス要求、つまり図示するように
データメモリDMに対するRD要求、WD要求があれば
、そのデータアクセス要求をコントロールユニット3に
伝える。ここで高効率なパイプラインとは演算状態を連
続して行うことであり、命令のコードサイズがばらばら
であって、数ワードに及ぶ場合には実行ステージよりフ
ェッチが多くなって停止することがあるが、本発明の場
合にはBPU部4とMPU部5とも全て1ワードで実行
ステージに移行できる命令は、CISC型アーキテクチ
ャで実行して実行ステージに移行するために、複数ワー
ドの命令フェッチを必要とするものは、1ワードで実行
ステージに移行できるRISCタイプの命令に置き換え
、パイプラインの高効率化により、高速化を図っている
。
ージに移行できるのでCISC型の命令であってもBP
U部4でパイプライン実行を行う。また応用命令の大半
は複数ワードの命令フェッチを必要とするので、RIS
C型の1ワード固定長の命令に置き換え、MPU部5で
パイプライン実行を行う。これらの2種類のBPU部4
とMPU部5とのマルチ演算を調停するコントロールユ
ニット3と、共有の1ワードインストラクションレジス
タを持つIFU部2を設けることにより、ハード量の少
ない高効率のパイプラインを維持できるアーキテクチャ
となるのである。
モリIMのアドレスと、図7(b)に示すインストラク
ションバスIBの出力はIFU部2から出力され、イン
ストラクションメモリIMのアドレスは図2に示すIF
U部2内部のPC2aから出力される。またインストラ
クションバス出力はIFU部2内部のインストラクショ
ンレジスタ2bの出力である。そしてインストラクショ
ンメモリIMのアドレスの更新と同時に更新前アドレス
のインストラクションをインストラクションレジスタ2
bに書き込むのである。またIFU部2に対するPC2
aの更新情報PCINC/PCHLT 、フェッチ許可
情報FEN/FINHはコントロールユニット3がBP
U部4、MPU部5からの情報を選択し、IFU部2に
伝達する。
HLT 、フェッチ許可情報FEN/FINHはデコー
ド出力情報であって、インストラクションバスIBの内
容をデコードする論理回路の遅延tが存在する。ここで
図6で示した〔OUT Y0〕の命令では〔Y0〕が
格納されたデータメモリDMからデータを読み出し、〔
Y0〕のビット位置にBITACCの内容を反映させ、
再度データメモリDMに書き込む処理を行う。インスト
ラクションメモリIMには1ワード(32bit)の〔
OUT Y0〕の命令が入っているが、BPU部4の
デコード出力から図7(c)に示すように最初にFIN
H,PCHLTが出力してフェッチを停止させ、次のサ
イクルでFEN 、 PCINC が出力されて通常の
パイプラインシーケンスに入っている。
の更新タイミングと同時に更新したアドレスの二つ前の
命令のデータアクセス要求、図7(g)に示す実行情報
が確定する。これはフェッチからデコード、実行までに
3段のパイプラインシケンスに基づいていることを示す
。尚データのアドレスの計算結果はデータアクセス要求
と同時に確定する。
命令、例えばデータを扱うデータ処理命令と、リレーシ
ケンス記述に適合したビット処理命令を、データ処理命
令はMPU部5で、ビット処理命令はBPU部4に夫々
割当て、MPU部5とBPU部4の二つの演算処理ユニ
ットが交互に命令を実行する過程において3ステージパ
イプラインの一貫性を保つための必要最低限のコントロ
ール信号を機能を具体的に示して実施例2の構成を示し
いる。尚実施例1で使用した同じ記号、番号は同じ構成
、或いは信号、情報を示して、信号、情報については異
なるもの、新たに増えたものについてのみ詳説する。
らは、インストラクションメモリIMのアドレスが出力
され、インストラクションメモリIMからは32bit
の命令がIR2bにフェッチされる。IR2bにフェチ
された命令コードはコントロールユニット3に送出され
る。コントロールユニット3からはIFU部2のPC2
aの更新及びIR2bへの命令フェッチに関する情報(
UPDATA INFO)がIFU部2に出力される。 この情報はBPU部4と、MPU部5とから出力される
IFU部2へのPC2aのアドレスの更新情報PCIN
C/PCHLT やフェッチ許可情報FEN/FINH
で、コントロールユニット3が有効となる方の情報を選
択した結果をIFU部2へ出力するものである。
3 が演算を許可することをBPU部4、MPU部5に
夫々知らせる信号で、どちらか一方が許可される(図1
のBPUEXU,MPUEXU に相当する)。データ
バスDBはBPU部4とMPU部5とで共有するもので
、入力は共通で出力はBPU部5、MPU部5で夫々の
3ステートバッファを介して接続される。
DMへの実効アドレスであり、MDMAはMPU部5か
らのデータメモリDMへの実効アドレスであり、BR/
WはBPU部4のデータメモリDMの読み/書きのコン
トール信号であり、MR/WはMPU部5のデータメモ
リDMの読み/書きのコントール信号である。データメ
モリDMにはBIU部6からはBPU/MPU信号で選
択されたデータメモリDMのコントロール信号がDMR
/W として出力され、またアドレスがDMA として
出力される。そして読み書きされるデータDMD はデ
ータメモリDMとBIU部6の双方向のデータバスDA
を通じて送受される。
タイミングでBPU部4とMPU部5との間でパイプラ
イン調停が行われるかを説明する。まず図9はインスト
ラクションメモリIMに格納されたサンプルプログラム
を示しており、N−1,…N+2 はそのアドレスを示
す。さてこのサンプルプログラムに使われる命令はすべ
ての演算サイクル(図10のT)で演算処理が終了し、
図中の命令の内〔ST X0〕と〔AND L0〕
はビット処理命令であるためにBPU部4に適合するの
で、BPU部4で演算を行い、〔LOAD r1,E
A〕命令はデータを扱う命令であるためMPU部5で処
理を行う。
するためには、一つの命令例の演算終了サイクルでPC
2aは二つ後の命令を示す必要があるので、〔ST
X0〕命令の演算サイクルでは、〔LOAD r1,
EA〕命令をインストラクションメモリIMから読み出
すことになる。また〔ST X0〕命令の次の〔AN
D L0〕命令はIR2bにラッチされており、この
IR2bの内容をコントロールユニット3がデコードし
てBPU部4、MPU部5のどちらかの演算処理ユニッ
トに割り当てるかを判定する一方、BPU部4とMPU
部5は演算に必要な情報をデコードする。
算サイクル数を判定し、演算サイクル数が1なら最終演
算サイクルとみなし、IFU部2へのPC2aのアドレ
ス更新(PCIN)と、命令フェッチ許可(FEN )
をコントロールユニット3に要求する。このサンプルプ
ログラム例では〔AND L0〕命令がBPU部4で
処理する命令であることをデコードで判定し、BPU部
4は演算サイクルが1の命令であることを判定し、アド
レス更新(PCIN)と、命令フェッチ許可(FEN
)をコントロールユニット3に要求する。
らの要求を有効とみなし、IFU部2にアドレス更新(
PCIN) と、命令フェッチ許可(FEN)を指示す
る。演算サイクルにおけるオペランドの処理についても
、同様に、外部のデータメモリDMがオペランドOPの
フィルードになっている場合、BPU部4とMPU部5
とがデータメモリDMに対するアクセス要求(RQ)を
出し、BPU部4で処理する命令であれば、BPU部か
らのBR/W信号をデータメモリDMに対するDMR/
W信号として選択するようにBIU部6にBPU/MP
U信号で指示する。
けるタイミングチャートを示しており、同図(a)はシ
ステムクロックを示し、演算サイクルT中にはφ1〜φ
6のクロックが存在する。同図(b)はPC2aのアド
レスを示し、同図(c)はIR2bに命令をフェッチし
た状態を示す。同図(d)はBPU部4からのPC2a
のアドレス更新、フェッチ許可の情報出力の状態を示し
、同図(e)はMPU部5かのPC2aのアドレス更新
(PCINC)、フェッチ許可の情報出力(FEN)
の状態を示す。
リDMに対するアクセス要求(RQ)の状態を示し、同
図(g)はMPU部5のデータメモリDMに対するアク
セス要求(RQ)の状態を示す。同図(h)はコントロ
ールユニット3によってIFU部2へ出力される、アド
レス更新(PCINC) 、フェッチ許可(FEN)
の指示を示す。
クセス要求(RQ)が有効なユニットを示す。同図(j
)は演算処理の状態を示す。図11はデータメモリDM
の状態を示しており、実効アドレスeaにはビットオペ
ランド(L,X,Y等)、ワードオペランド(DT等)
が格納される。
算サイクルを終了する命令を用いたが、図12に示すよ
うに二つの演算サイクルを必要とし、BPU部4で処理
される〔OUT Y0〕命令を使用したプログラムの
場合には、図13に示すようなパイプライン調停がなさ
れる。この場合〔OUT Y0〕命令がIR2bにラ
ッチされた最初のサイクルでBPU部4からPC2aの
アドレス更新の停止と、フェッチの禁止が要求される。 つまりOUT命令は2つの演算サイクルを必要とするた
め、命令のアドレスを更新し、フェチを許可すると2回
目、つまりOUT命令の最終演算サイクルの筈が、〔L
OAD r1,EA〕命令の演算サイクルになるため
である。
ドレス更新の禁止及びフェッチを禁止し、最終演算とな
る2回目の演算サイクルではアドレス更新と、フェッチ
の許可を要求するのである。尚図13(a)〜(j)は
図10(a)〜(j)と対応している。 (実施例3)図14はリレーシケンス記述に適合したビ
ット処理命令をBPU部4での演算処理命令(以下BP
U命令)とし、1ワードの命令で複数の演算サイクルを
必要とする場合の、3ステージパイプライン調停のハー
ドウェアの実施例を示す。
2bからの命令コードはデコード部20に取り込まる。 デコード部20では命令をデコードするものでここから
のデコード出力を元に、演算情報、パイプラインコント
ロール、オペランドの実効アドレスが生成される。デコ
ード出力はロジック部21に送られ、ロジック部21で
は3ステージパイプラインの調停信号として、IFU部
2に対する命令のアドレス更新/停止,、命令フェッチ
の許可/禁止を要求するための信号を生成する。つまり
PC2aのアドレスの更新要求(PCINC) 、PC
2aのアドレスの更新停止要求(PCINC) 、PC
2aのアドレスの更新停止要求、PC2aのアドレスの
デクリメント要求〔PCDE〕、命令フェッチ許可要求
(FEN) 、命令フェッチ禁止要求(FINH)がコ
ントロールユニット3へ出力される。
クル数から1を引いた値を持つの3bitエンコード出
力が入力ロジック部21に送られる。この入力ロジック
部21は3bitのF/F22に上記3bitエンコー
ド出力をプリセットする機能と、F/F22をデクリメ
ントカウンタにする二つの機能を持ち、F/F22の出
力がAALリセット状態で且つBPU命令のときには3
bitエンコード出力をプリセットし、F/F22の出
力がALLリセット状態でなく、且つBPU命令のとき
にはF/F22をデクリメントカウンタとして機能させ
る。
ル指定用エンコードとして機能し、図15(a)に示す
クロックφ3 の立ち下がりで更新されるもので、デコ
ード部23に送られる。このデコード部23は、F/F
22の出力のデコードを元に1ワードで複数の演算サイ
クルを必要とするBPU命令のサイクル別の演算コード
、オペランドOPのアドレスを,上記デコード部20の
デコード出力を組み合わせて生成する。
デコード部23からのサイクル別の演算コードと、デコ
ード部20の出力とで、BPU部4内のALU4dのオ
ペコードOCを生成するものであり、さらにオペランド
OPが外部のデータメモリDMにある場合、データメモ
リDMのアクセス要求(RQ)をコントロールユニット
3に出す。演算コード及びデータメモリDMのアクセス
要求(RQ)はともに、クロックφ6の立上がりで更新
されるF/F22の出力となっている。
23からの入力に加え、IR2bからの命令コードのオ
ペランド指定フィールドを入力としデータメモリDMの
アドレスを指定するものである。なおレジスタBMFは
、IR2bがインストラクションメモリIMから命令を
フェッチする32bitのレジスタであるのに対し、イ
ンストラクションメモリIMと同じアドレスにあるビッ
トメモリ(図示せず)[以下BMと称する]の1ビット
をIR2bと同じタイミングでフェッチする1bitレ
ジスタである。
プライン調停信号を使用して、どのようなタイミングで
3ステージパイプライン処理が行なわれるかを、図16
に示す1リードの命令で複数の演算サイクルを必要とし
、加えて特徴ある命令を例にあげて図15のタイミング
チャートに基づいて説明する。例示した命令はBPU命
令のうち、使用頻度の高い[OUT],[DF]の二つ
の命令であり、[OUT]命令は、データメモリDMに
ある16bitのオペランドを使用し、1bitだけ、
コプロセッサ内部にあるBITACCリレーシーケンス
制御におけるリレー接点のオン/オフイメージが反映さ
れる。)の内容に置き換える演算を行なう二つの演算サ
イクルを必要とする。
データメモリDMには存在せず、フェッチされたインス
トラクションメモリIMのアドレス(PC2aのアドレ
ス)と同じアドレスにある、BMをビットオペランドと
して利用する演算を行ない、3つの演算サイクルを必要
とする。3つ演算サイクルのうち、最初の演算サイクル
でBITACCの内容をBMに書き込み、同じサイクル
で、[DF]命令のフェッチと同時にフェッチされたB
Mの内容であるレジスタBMFとBMに書き込んだBI
TACCの内容とのロジック演算を行なう。
/メモリの更新は行なわず、パイプライン調停サイクル
として、ハードウェアストロールサイクルとなっている
。図15(a)のT1〜T5夫々は、一つのバスサイク
ル又は演算サイクルを示す。T1サイクルでは、演算は
[OUT]命令の一つ前の命令の演算サイクルであり、
また[OUT]命令のデコードサイクル及びオペランド
OPの実効アドレス計算サイクルでもある。
イクルを必要とするので、命令フェッチの禁止(FIN
H)とプログラムカウンタ2bのアドレス更新の停止(
PCHLT)をコントロルーユニット3に要求する。コ
ントロールユニット3は命令がBPUタイプの命令であ
ることを判定しているので、BPU部4からの命令フェ
ッチの禁止(FINH)とPC2aのアドレス更新の停
止の要求(PCHLT)を有効とし、IFU部2に指示
する(図15(b))。
サイクル数に1を引いた値、[OUT]命令の場合は図
15(g)に示すように1となる。命令フェッチの禁止
(FINH)はF/F22の出力の値が0以外のとき有
効となる。逆にF/F22の出力の値が0のとき命令フ
ェッチ(FIN)が命令フェッチの禁止(FINH)に
代って有効となる。
とデータメモリDMのアクセス要求を判定するために、
図14のデコード部23でデコードされ、デコード結果
がクロックφ6の立上がりでオペレーションコード出力
部25に含まれるラッチに記憶される。実効アドレスは
、図15(f)に示すようにこのサイクルのクロックφ
5で確定し、次のサイクルT2のオペランドフェッチの
ときにデータメモリDMのアドレスを1クロック分先出
しをする。
の演算サイクルをT1のクロックφ6の立上がりで記憶
された図15(h)に示す演算コードと図15(d)に
示すアクセス要求内容、すなわちオペレーションコード
出力部25に含まれるラッチに記憶された内容をもとに
、データメモリDMにあるオペランドOPのフェッチを
行なう。このオペランドOPはクロックφ5で内部のデ
ータレジスタにラッチされる。
は1から0にデクリメントされ、命令フェッチの禁止(
FINH)が命令フェッチ許可(FIN)に、アドレス
更新の停止の要求(PCHLT)がアドレス更新(PC
INH)に夫々変る。その為命令のアドレスがクロック
φ5で更新され、更新前にアドレスにある[DF]命令
がIR2bにクロックφ5でフェッチされる。
ルと同様に[OUT]命令の次に演算に必要な演算コー
ドとメモリアクセス要求コードをアドレス生成部25で
更新する。T3サイクルは[OUT]命令の最終演算サ
イクルとなる。このT3サイクルでは、図15(h)に
示すようにBITACCの内容を[Y0]に対応するデ
ータメモリDMのビットに書き込む。また[DF]命令
のデコードサイクルとして、3つの演算サイクルを必要
とするので、F/F22の値をプリセットする。次の[
DF]命令の最初の演算サイクルであるT4では、[D
F]命令が格納されているインストラクションメモリI
Mのアドレス(図15(e)に示す N+1)と同じ
アドレスのBMにBITACCの内容を書き込む必要が
ある。しかし、アドレスは[DF]命令の次の命令のア
ドレス(N+1)になっているのでアドレスをデクリメ
ントすることを要求することになる。このためロジック
部20で生成されるパイプライン調停信号をPC2aの
アドレスのデクリメントを要求する信号(PCDEC)
と命令フェッチを要求する信号(FINH)にクロッ
クφ3で変える。
演算サイクルとなるので、N+1のアドレスにあるBM
のオペランドエリアに図17に示すようにBITACC
の内容を書き込む。BMの更新前のビットオペランドは
、T2サイクルのクロックφ5で[DF]命令のフェッ
チと同時にレジスタBMFにフェッチされ、レジスタB
MFの内容は、T3サイクルのクロックφ6で更新され
る演算コードに反映される。
内容、すなわちBITACCに書き変る前のBMのビッ
トオペランドとBITACCとのロジック演算により、
結果をクロックφ5でBITACCに書き込む。またT
1−T3サイクルと同様にクロックφ3で、F/F22
の出力の値を2から1にデクリメントして命令フェッチ
[FINH]とし、命令のアドレス補正のためPC2a
のアドレスの更新の信号[PCINC]をパイプライン
調停信号として出力する。
6サイクルでは、[DF]命令の演算は行なわれず、パ
イプライン調停サイクルとしてハードウェアサイクルと
なる。尚図15(c)はIR2bの内容を示す。また図
18データメモリDMの記憶状態を示す。
度の高いシーケンス命令をビットプロセッシングユニッ
トでパイプライン実行するので、少ないメモリサイズで
高効率のパイプラインを実現でき、またデータ処理用の
応用命令をRISC型のデータ処理命令にコンパイルし
てマルチビットプロセッシングユニットでパイプライン
実行させるので、複数ワードに及ぶ応用命令でも高い効
率のパイプラインで高速実行ができるものであり、高い
コストパーファマンスのプログラマブルコントーラが実
現でき、しかも両プロセッシングユニットを独立してモ
ジュール化することにより、設計時のインプリテーショ
ンからシミュレーションまで個別に行うことができて、
演算プロセッサの設計が容易となり、また全ての命令を
1ワードで実行することにより、命令キューを必要とせ
ず、その結果パイプライン調停も容易となるので、ハー
ド量を少なくできるという効果もある。
。
ールユニットの回路ブロック図である。
トの各種クロックの説明図である。
ック図である。
ック図である。
を示す説明図である。
ある。
。
たインストラクションメモリの内容説明図である。
ャートである。
を示す説明図である。
格納したインストラクションメモリの内容説明図である
。
ャートである。
生成回路部位のブロック図である。
ャートである。
したインストラクションメモリの内容説明図である。
明図である。
を示す説明図である。
コントロールユニット 4 ビットプロセッシングユニット5
マルチビットプロセッシングユニット6
データバスインターフェース部IM インス
トラクションメモリDM データメモリ
Claims (1)
- 【請求項1】CISC型のシーケンス命令を実行するビ
ットプロセッシングユニットと、RISC型のデータ処
理命令を実行するマルチビットプロセッシングユニット
と、両プロセッシングユニットのマルチ演算を調停する
コントロールユニットと、両プロセッシングユニット共
有のインストラクションレジスタを持つインストラクシ
ョンフェッチユニットと、データメモリのバスインター
フェース部とから少なくともなり、使用頻度の高いシー
ケンス命令をビットプロセッシングユニットでパイプラ
イン実行し、データ処理用の応用命令をRISC型のデ
ータ処理命令にコンパイルしてマルチビットプロセッシ
ングユニットでパイプライン実行させることを特徴とす
るプログラマブルコントローラの演算プロセッサ。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP3186628A JP3027627B2 (ja) | 1991-02-25 | 1991-07-25 | プログラマブルコントローラの演算プロセッサ |
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP3-29701 | 1991-02-25 | ||
| JP2970191 | 1991-02-25 | ||
| JP3186628A JP3027627B2 (ja) | 1991-02-25 | 1991-07-25 | プログラマブルコントローラの演算プロセッサ |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH04363704A true JPH04363704A (ja) | 1992-12-16 |
| JP3027627B2 JP3027627B2 (ja) | 2000-04-04 |
Family
ID=26367931
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP3186628A Expired - Lifetime JP3027627B2 (ja) | 1991-02-25 | 1991-07-25 | プログラマブルコントローラの演算プロセッサ |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP3027627B2 (ja) |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH0876996A (ja) * | 1994-08-31 | 1996-03-22 | Matsushita Electric Works Ltd | プログラマブルコントローラ |
| JPH10307607A (ja) * | 1997-05-08 | 1998-11-17 | Hitachi Ltd | 主プロセッサ及びプログラマブルコントローラ |
| WO2005015386A1 (ja) * | 2003-08-07 | 2005-02-17 | Matsushita Electric Industrial Co., Ltd. | プロセッサ集積回路及びプロセッサ集積回路を用いた製品開発方法 |
| US6950923B2 (en) | 1996-01-24 | 2005-09-27 | Sun Microsystems, Inc. | Method frame storage using multiple memory circuits |
-
1991
- 1991-07-25 JP JP3186628A patent/JP3027627B2/ja not_active Expired - Lifetime
Cited By (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH0876996A (ja) * | 1994-08-31 | 1996-03-22 | Matsushita Electric Works Ltd | プログラマブルコントローラ |
| US6950923B2 (en) | 1996-01-24 | 2005-09-27 | Sun Microsystems, Inc. | Method frame storage using multiple memory circuits |
| US6961843B2 (en) | 1996-01-24 | 2005-11-01 | Sun Microsystems, Inc. | Method frame storage using multiple memory circuits |
| JPH10307607A (ja) * | 1997-05-08 | 1998-11-17 | Hitachi Ltd | 主プロセッサ及びプログラマブルコントローラ |
| WO2005015386A1 (ja) * | 2003-08-07 | 2005-02-17 | Matsushita Electric Industrial Co., Ltd. | プロセッサ集積回路及びプロセッサ集積回路を用いた製品開発方法 |
| CN100390728C (zh) * | 2003-08-07 | 2008-05-28 | 松下电器产业株式会社 | 处理器集成电路和安装了处理器集成电路的产品开发方法 |
Also Published As
| Publication number | Publication date |
|---|---|
| JP3027627B2 (ja) | 2000-04-04 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5371860A (en) | Programmable controller | |
| JP2519226B2 (ja) | プロセツサ | |
| JPH03129433A (ja) | 並列処理装置および並列処理方法 | |
| EP1215569A1 (en) | Data processor | |
| JPS5831014B2 (ja) | 命令先取り装置 | |
| JPS63273134A (ja) | マクロ命令パイプラインを用いてマイクロ命令を変更する方法及び装置 | |
| CN108139911B (zh) | 在vliw处理器的同一执行包中使用有条件扩展槽的指令的有条件执行规格 | |
| US5276824A (en) | Data processor having a multi-stage instruction pipe and selection logic responsive to an instruction decoder for selecting one stage of the instruction pipe | |
| US20030028754A1 (en) | Data processor using indirect register addressing | |
| CN111984316A (zh) | 用于在处理器中比较源数据的方法和设备 | |
| JPH03233630A (ja) | 情報処理装置 | |
| US6948049B2 (en) | Data processing system and control method | |
| JP2009526300A (ja) | マイクロプロセッサ用の命令セット | |
| JP3027627B2 (ja) | プログラマブルコントローラの演算プロセッサ | |
| JP3727395B2 (ja) | マイクロコンピュータ | |
| JP3164915B2 (ja) | データ処理装置及びそのデータ処理方法 | |
| JP2976850B2 (ja) | データ処理装置 | |
| US20200371793A1 (en) | Vector store using bit-reversed order | |
| JPS6314239A (ja) | 計算機システムの命令作成ユニット | |
| JP3841820B2 (ja) | マイクロコンピュータ | |
| JPH024010B2 (ja) | ||
| US11900112B2 (en) | Vector reverse | |
| JPH0876996A (ja) | プログラマブルコントローラ | |
| JP4498705B2 (ja) | キャッシュシステム | |
| JP3765782B2 (ja) | マイクロコンピュータ |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20000118 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080128 Year of fee payment: 8 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090128 Year of fee payment: 9 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090128 Year of fee payment: 9 |
|
| S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090128 Year of fee payment: 9 |
|
| R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100128 Year of fee payment: 10 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100128 Year of fee payment: 10 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110128 Year of fee payment: 11 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120128 Year of fee payment: 12 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120128 Year of fee payment: 12 |
|
| S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120128 Year of fee payment: 12 |
|
| R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
| EXPY | Cancellation because of completion of term | ||
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120128 Year of fee payment: 12 |