JPH09128235A - 5段パイプライン構造のプログラマブルコントローラ - Google Patents

5段パイプライン構造のプログラマブルコントローラ

Info

Publication number
JPH09128235A
JPH09128235A JP7283777A JP28377795A JPH09128235A JP H09128235 A JPH09128235 A JP H09128235A JP 7283777 A JP7283777 A JP 7283777A JP 28377795 A JP28377795 A JP 28377795A JP H09128235 A JPH09128235 A JP H09128235A
Authority
JP
Japan
Prior art keywords
instruction
pipeline
stage
time
register
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
Application number
JP7283777A
Other languages
English (en)
Other versions
JP3206394B2 (ja
Inventor
Tatsuo Masuda
達男 増田
Akira Yabuta
明 薮田
Hiroshi Sakai
宏史 坂井
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.)
Panasonic Electric Works Co Ltd
Original Assignee
Matsushita Electric Works Ltd
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 Matsushita Electric Works Ltd filed Critical Matsushita Electric Works Ltd
Priority to JP28377795A priority Critical patent/JP3206394B2/ja
Priority to US08/721,181 priority patent/US5933651A/en
Priority to CNB961211032A priority patent/CN1137421C/zh
Priority to DE69621091T priority patent/DE69621091T2/de
Priority to EP96115647A priority patent/EP0766155B1/en
Priority to KR1019960042852A priority patent/KR100260012B1/ko
Publication of JPH09128235A publication Critical patent/JPH09128235A/ja
Application granted granted Critical
Publication of JP3206394B2 publication Critical patent/JP3206394B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

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

Abstract

(57)【要約】 【課題】 パイプラインステージ1段の時間内に演算を
終了することができない命令を容易に実装することがで
きる5段パイプライン構造のプログラマブルコントロー
ラの構造を提供する。 【解決手段】 パイプラインステージ1段の時間内に演
算を終了することができない命令を実行する専用の演算
ブロックSUBALUと、演算ユニットMULT等を設け、一定時
間(該当命令の演算終了に必要な時間)、プログラムカ
ウンタPCのインクリメントを停止させ、レジスタ書き戻
し、データメモリ書き込み等の制御信号を無効にするこ
とで、パイプラインを停止させて該当命令を実行するよ
うに構成されている。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、ビット処理を主と
する基本命令と、複数ビットの応用命令を処理を行うプ
ログラマブルコントローラに関し、特に基本命令と応用
命令を両方処理することのできる命令処理部を有するプ
ログラマブルコントローラに関するものである。
【0002】
【従来の技術】プログラマブルコントローラは、産業用
装置、機械、FA機器の制御に広く用いられており、対
象となる装置の複雑化、高速化に応じて、より多数の入
出力信号を高速に処理することが求められている。この
ため、ビット処理を主とする基本命令と、複数ビットの
応用命令処理を行うことのできる専用ハードウェア(プ
ロセッサ)で高速化を実現し、通信処理・周辺処理など
を行う汎用マイクロプロセッサと組み合わせてプログラ
マブルコントローラを構成している。
【0003】従来例としては、この専用ハードウェア
(プロセッサ)の構造として、3段パイプライン構造で
命令を実行していた。パイプラインステージの例は、以
下のようになる。 1:命令フェッチ 2:命令デコード、レジスタフェッチ、算術論理演算、
データアドレス計算、分岐先計算 3:メモリアクセス(リード/ライト)、分岐、ビット
演算、レジスタ書き込み
【0004】
【発明が解決しようとする課題】上記の3段パイプライ
ン構造だと、各ステージの一番遅い実行ステージの処理
速度で、全体の命令実行速度が決まってしまう。このよ
うなパイプライン処理の高速化のためには、各ステージ
の処理速度を均等にする必要があるが、この例では、命
令メモリとデータメモリを同じアクセス時間のメモリを
使用すると、1に対して3の方がビット演算を行う分、
処理時間がかかるというアンバランスがある。実行速度
向上のためには、パイプラインステージをさらに分割し
て多段にすれば良く、専用ハードウェア(プロセッサ)
の命令実行サイクルを以下のような5段に要素分割し
た、5段パイプライン構造を持ったプログラマブルコン
トローラを開発した。 1:命令フェッチ 2:命令デコード、レジスタフェッチ 3:算術論理命令、データアドレス計算、分岐先計算 4:メモリアクセス(リード/ライト) 5:分岐、ビット演算、レジスタ書き込み この5段パイプライン構造を採用すると、従来の3段パ
イプライン構造のプログラマブルコントローラに比べ
て、パイプラインステージ間のアンバランスが改善さ
れ、パイプラインステージ1段当たりの所要時間も短縮
されるため、全体の命令実行速度を向上させることがで
きる。この5段パイプライン構造の概略構造を図7のブ
ロック図に基づいて説明する。
【0005】図で、IFで示される第1ステージは、命令
メモリ1から命令レジスタIRへ、次に実行する命令を読
み込む命令フェッチ処理を行うステージで、命令を格納
する命令メモリ1と、プログラムカウンタ制御回路ADDR
CALCからの信号を受けて、次に実行する命令が格納され
た命令メモリ1のアドレスを計数するプログラムカウン
タPCとで構成されている。プログラムカウンタPCのアド
レス指定に従って命令メモリ1から読み出された命令が
格納される命令レジスタIRは、第1ステージIFの実行結
果を保存して、次の第2ステージであるIDにその結果を
伝える、パイプラインレジスタIF/ID を兼ねている。
【0006】IDで表される第2ステージは、命令デコー
ダ2による命令デコード、及び、レジスタファイル3を
構成する複数の汎用レジスタのいずれかの汎用レジスタ
から値を取り出すレジスタフェッチ処理を行うステージ
で、命令のop-code 部を解読するデコーダ2と、複数の
汎用レジスタで構成されたレジスタファイル3とで構成
されている。レジスタファイル3には、2つの出力が設
けられており、一方の出力はパイプラインレジスタID/E
X のS1に接続され、他方の出力はパイプラインレジスタ
ID/EX のS2に接続されている。また、命令デコーダ2で
解読された命令の値もパイプラインレジスタID/EX の所
定の箇所に格納される。
【0007】次に、EXで示される第3ステージは、算術
論理演算ユニットALU によって、算術論理演算またはデ
ータアドレス計算または分岐先の実効アドレスを計算す
る分岐先計算を行うステージで、算術論理演算ユニット
ALU の一方の入力は、パイプラインレジスタID/EX のS1
の出力に接続され、他方の入力は、パイプラインレジス
タID/EX のS2の出力に接続されている。また、算術論理
演算ユニットALU は、パイプラインレジスタID/EX の所
定の箇所に格納された、デコードされた命令の値によっ
て制御され、算術論理演算ユニットALU の出力は、パイ
プラインレジスタEX/MEMのD に格納される。
【0008】次に、MEM で示される第4ステージは、デ
ータメモリ4へのメモリアクセス処理を行うステージ
で、パイプラインレジスタEX/MEMのD に格納されていた
値は、データメモリ4の所定アドレスに書き込まれると
共に、パイプラインレジスタMEM/WBの所定箇所に出力さ
れる。または、データメモリ4の所定アドレスに格納さ
れていた値がパイプラインレジスタMEM/WBの所定箇所に
読みだされる。
【0009】最後に、WBで示される第5ステージは、ビ
ット演算または汎用レジスタへの書き込み処理または分
岐処理を行うステージで、汎用レジスタへの書き込み処
理の場合は、パイプラインレジスタMEM/WBの所定箇所に
格納されていた値が、レジスタファイル3の所定の汎用
レジスタに格納される。但し、図7では本発明に関する
部分のみ図示しており他の構成は図示を省略している。
【0010】しかし、この5段パイプライン構造のパイ
プラインステージの時間が短いという利点は、プログラ
マブルコントローラの仕様上必要な応用命令を実行する
際には問題となる。パイプラインの第3ステージEXに設
けられた算術論理演算ユニットALU で、算術演算、論理
演算、メモリアクセスのアドレス計算などを行うが、応
用命令の中でも、特に複雑な乗算や除算などの演算は、
パイプラインステージ1段の時間内に実行することは困
難である。
【0011】一般に演算時間を短くしようとすると、そ
れを実行する回路は大規模なものになる。図7に示した
5段パイプライン構造のプログラマブルコントローラに
おいて、仕様に含まれる乗算または除算をパイプライン
ステージ1段の時間内に実行させようとすると、LSI
に搭載できないほど大きな演算ブロックが必要になる
か、面積の問題を無視して速いアルゴリズムの演算ブロ
ックを用いても、パイプラインステージ1段の時間内に
演算を終了させることが不可能になり、これらの演算を
実行するためにパイプラインステージの時間を長くしな
ければならなくなる。
【0012】本発明は、上記問題点に鑑みなされたもの
で、その目的とするところは、パイプラインステージ1
段の時間内に演算を終了することができない命令を容易
に実装することができる5段パイプライン構造のプログ
ラマブルコントローラの構造を提供することにある。
【0013】
【課題を解決するための手段】上記目的を達成するた
め、請求項1記載の5段パイプライン構造のプログラマ
ブルコントローラは、パイプラインステージ1段の時間
内に演算を終了することができない命令を実行する際、
設定した前記命令の演算終了に必要な時間だけプログラ
ムカウンタのインクリメントを停止させ、レジスタ書き
戻し、データメモリ書き込み等の制御信号を無効にする
ことで、パイプラインを停止させて前記命令を実行する
ように構成されていることを特徴とするものである。
【0014】請求項2記載の5段パイプライン構造のプ
ログラマブルコントローラは、パイプラインステージ1
段の時間内に演算を終了することができず演算時間が一
定ではない命令を実行する際、前記命令を実行する演算
ブロックから演算終了信号が到着するまでの間、プログ
ラムカウンタのインクリメントを停止させ、レジスタ書
き戻し、データメモリ書き込み等の制御信号を無効にし
て、パイプラインを停止させて前記命令を実行するよう
に構成されていることを特徴とするものである。
【0015】請求項3記載の5段パイプライン構造のプ
ログラマブルコントローラは、パイプラインステージ1
段の時間内に演算を終了することができない複数種類の
命令を実行する際、前記命令の種類に適した演算終了の
判定方法を用いて、プログラムカウンタのインクリメン
トを停止させ、レジスタ書き戻し、データメモリ書き込
み等の制御信号を無効にすることで、パイプラインを停
止させて前記命令を実行するように構成されていること
を特徴とするものである。
【0016】請求項4記載の5段パイプライン構造のプ
ログラマブルコントローラは、パイプラインステージ1
段の時間内に演算を終了することができない命令を実行
するか非実行にするかを決定するフラグが設けられてお
り、非実行の場合には前記命令の演算を開始させず、無
駄にパイプラインの動作を停止させないように構成され
ていることを特徴とするものである。
【0017】請求項5記載の5段パイプライン構造のプ
ログラマブルコントローラは、パイプラインステージ1
段の時間内に演算を終了することができない命令を実行
する演算ブロックが、複数種類のデータ幅の演算に対応
可能に構成されており、入力の所定のビット位置に値を
セットして前記演算ブロックに与え、必要に応じて未使
用のビット位置の値をクリアするように構成されている
ことを特徴とするものである。
【0018】請求項6記載の5段パイプライン構造のプ
ログラマブルコントローラは、パイプラインステージ1
段の時間内に演算を終了することができない命令を実行
する際、前記命令が複数の汎用レジスタに演算結果を格
納する場合は、必要なレジスタ書き戻しを全て実行する
まで、所定情報を保持するように構成されていることを
特徴とするものである。
【0019】請求項7記載の5段パイプライン構造のプ
ログラマブルコントローラは、パイプラインステージ1
段の時間内に演算を終了することができない命令を実行
する際、命令解読を行うステージと、命令実行を行うス
テージ間に設けられたパイプラインレジスタ上の前記命
令の引数または制御信号を、必要なだけ保持するように
構成されていることを特徴とするものである。
【0020】本発明の5段パイプライン構造のプログラ
マブルコントローラは、プログラマブルコントローラで
必要とされる演算のうち、演算に時間がかかる乗算また
は除算などの処理を、複数のパイプラインステージの時
間をかけて実行する専用の演算ブロックと、それらの演
算ブロック及びパイプライン構造の必要な部分を制御す
る命令実行制御ブロックとを備えたものである。
【0021】図6に基づいて本発明の5段パイプライン
構造のプログラマブルコントローラの一概略構造につい
て説明する。図6に示すプログラマブルコントローラ
は、図7に示したプログラマブルコントローラに対し
て、パイプライン構造の第3ステージEXに、算術演算、
論理演算、メモリアクセスのアドレス計算などを行う算
術論値演算ユニットALU の他に、応用命令の中でも特に
複雑な乗算及び除算の演算を実行するための専用の演算
ブロックMULT及び演算ブロックDIV と、これらの演算ブ
ロックの演算実行を制御する演算実行制御ブロックSUBA
LUと、パイプラインレジスタEX/MEMに引き渡す演算結果
を、算術論値演算ユニットALU の出力または演算実行制
御ブロックSUBALUの出力に切り替えるマルチプレクサMU
X とを付加したものである。
【0022】演算実行制御ブロックSUBALUは、パイプラ
イン実行においては、算術論値演算ユニットALU と同等
の立場にあり、図に示すように、パイプラインレジスタ
ID/EX から演算に必要な引数S1,S2、及び、制御信号
(デコーダ2で解読された信号)を受け取り、演算ブロ
ックMULTまたは演算ブロックDIV に、必要なデータを与
え、演算結果を、マルチプレクサMUX を介してパイプラ
インレジスタEX/MEMに引き渡すように構成されている。
但し、これらの演算は、パイプラインステージ1段の時
間では完了しないので、演算実行制御ブロックSUBALU
は、それらの専用の演算ブロックが演算中である時に
は、(1)プログラムカウンタPCのインクリメントを停
止させ、パイプラインの動作を止め、(2)第2ステー
ジID、第3ステージEXで、汎用レジスタ(レジスタファ
イル3)への書き戻し、データメモリ4への書き込み要
求信号を無効にし不正な書き込みを抑止する、などの制
御を行う。より具体的な機能については実施形態を示し
て説明することとする。
【0023】
【発明の実施の形態】図1に基づいて本発明の5段パイ
プライン構造のプログラマブルコントローラの一実施形
態について説明する。図1は、5段パイプライン構造の
うち、第1ステージIF、第2ステージID、第3ステージ
EXの構造のみを示すこととする。また、パイプライン構
造の中で本発明に直接関係のない部分は図示を省略して
いる。さらに、図6に示した構成と同等構成については
同符号を付すこととする。
【0024】第1ステージIFで、プログラムカウンタPC
は、次にフェッチする命令メモリ1のアドレスを計数す
るもので、プログラムカウンタ制御回路ADDRCALCにより
このプログラムカウンタPCに格納されている値は更新さ
れる。図1に示すプログラマブルコントローラでは、分
岐命令などの、プログラムカウンタPCを変更する命令を
処理する場合についてはその構成の図示及びその説明を
省略することとし、基本的にはプログラムカウンタPC
は、1ずつ加算され、制御信号HZD-PCが1の時には、プ
ログラムカウンタPCは元の値を保持するものとして説明
する。
【0025】第1ステージIFと第2ステージID間に配置
された、パイプラインレジスタIF/ID を兼ねる命令レジ
スタIRは、プログラムカウンタPCに格納された、命令メ
モリ1の所定のアドレスに格納された命令を命令メモリ
1から読み出しフェッチする。
【0026】次の第2ステージIDでは、この命令レジス
タIRの値を基にして命令の内容が解読される。第2ステ
ージIDには、仕様で定められたビット幅の汎用レジスタ
を複数本有するレジスタファイル3と、命令を解読して
後段のパイプラインステージで用いる各種の制御信号を
生成するデコーダ2(以降、デコーダDC)と、パイプラ
イン動作を進めていく上で、例外的な制御信号を出力す
るハザード制御ユニットHDU が設けられている。第2ス
テージIDと第3ステージEX間に配置されたパイプライン
レジスタID/EX には、指定された番号の汎用レジスタの
値を読み出して格納するためのS1及びS2、後続のそれぞ
れのパイプラインステージで用いられる制御信号EX,ME
M ,WB、レジスタ書き戻し時のレジスタ番号を示すREG
が存在する。
【0027】制御信号EX,MEM ,WBは、必要とされる制
御信号の集まりで、レジスタ書き戻しを制御する制御信
号WB、または、データメモリ書き込みを制御する制御信
号MEM は、それらの値が1の時に書き込みが有効になる
ものとする。第2ステージIDのデコーダDCとパイプライ
ンレジスタID/EX との間にはマルチプレクサMUX1が存在
し、このマルチプレクサMUX1は、制御信号HZD-IDが1の
時にはこれらの制御信号EX,MEM ,WBを全て0で上書き
することで、汎用レジスタ(レジスタファイル3)、ま
たは、データメモリ4への書き込み要求を無効にする。
【0028】実際に、演算を実行する第3ステージEXで
は、算術論値演算ユニットALU がパイプラインレジスタ
ID/EX のS1,S2の値を基に、制御信号EXで指定された演
算を実行して、その結果をパイプラインレジスタEX/MEM
のDST に格納する。
【0029】さらに、図1に示すプログラマブルコント
ローラでは、演算処理がパイプラインステージ1段分の
時間で終了しないような命令を実装するため、第3ステ
ージEXに、演算実行制御ブロックSUBALUを設けている。
このブロックはパイプライン動作の中では、パイプライ
ンレジスタID/EX から入力を受け取り、演算結果をEX/M
EMに返すという、算術論値演算ユニットALU と同等の働
きをするブロックである。但し、実際の演算は行わず、
専用の演算ブロック(乗算を行う演算ブロックMULT、除
算を行う演算ブロックDIV )を別構成として設け、演算
実行制御ブロックSUBALUはこれらの演算ブロックに引数
を与え、演算結果を受け取り、パイプラインレジスタEX
/MEMに引き渡す役割を果たす。これらの演算は、パイプ
ラインステージ1段の時間内には終了しないので、演算
中はパイプラインの動作を停止させなくてはならず、演
算実行制御ブロックSUBALUはこのための制御信号RQ-HZD
をハザード制御ユニットHDU に出力する。
【0030】また、演算結果または書き戻すレジスタの
番号をパイプラインレジスタEX/MEMに引き渡す時、パイ
プラインレジスタEX/MEMへの出力を、演算結果について
は、算術論値演算ユニットALU の出力、または、演算実
行制御ブロックSUBALUの出力に切り替える必要があり、
書き戻す汎用レジスタの番号については、パイプライン
レジスタID/EX のREG の値、または、演算実行制御ブロ
ックSUBALUの出力に切り替える必要があるため、演算実
行制御ブロックSUBALUはそのための制御信号RQ-WT をマ
ルチプレクサMUX2,MUX3に出力する。マルチプレクサMU
X2によって、パイプラインレジスタEX/MEMに引き渡す演
算結果が切り替えられ、マルチプレクサMUX3によって、
パイプラインレジスタEX/MEMに引き渡す、書き戻す汎用
レジスタの番号が切り替えられるように構成されてい
る。
【0031】さらに、第3ステージEXでは、制御信号ME
M または制御信号WBは何の働きもせず、パイプラインレ
ジスタID/EX からパイプラインレジスタEX/MEMに転送さ
れるだけであるが、ここにも、第2ステージIDと同様
に、マルチプレクサMUX4,MUX5を設けて、それらに与え
る制御信号HZD-EXを1にすることで、これらの制御信号
を無効にすることもできる。MUX4は、制御信号WBを0で
上書きして汎用レジスタ(レジスタファイル3)への書
き込み要求を無効にするためのマルチプレクサ、MUX5
は、制御信号MEM を0で上書きしてデータメモリ4への
書き込み要求を無効にするためのマルチプレクサであ
る。
【0032】次に、演算実行制御ブロックSUBALUの動作
を図2のタイミングチャートを用いて説明する。図2に
示すタイミングチャートは、命令メモリ1の10番地に乗
算命令(MULT)があり、その前の 9番地、 8番地に、そ
れぞれ、先行命令F1、先行命令F2があり、11番地以降に
は、後続命令R1、後続命令R2、後続命令R3、後続命令R4
がある場合の一例を示したものである。
【0033】図1に示すプログラマブルコントローラで
は、回路内部のレジスタは、φ1〜φ4の4相のクロッ
ク信号のいずれかで駆動されているものとし、各パイプ
ラインレジスタは、クロック信号φ1で駆動されている
ものとする。図には、パイプラインレジスタIF/ID を兼
ねる命令レジスタIR、プログラムカウンタPC、制御信号
HZD-PC、パイプラインレジスタID/EX のS1とEX、演算実
行制御ブロックSUBALU内部のステートマシンの状態STAT
E 、乗算ブロックMULTの演算終了信号DONE、パイプライ
ンレジスタEX/MEMのDST とWB、制御信号HZD-EX、演算実
行制御ブロックSUBALUが出力する制御信号RQ-WT を示し
ている。
【0034】図2に示す例では、パイプラインレジスタ
を駆動するクロック信号φ1の1パイプラインステージ
がパイプラインステージ1段となり、時系列順に、パイ
プラインステージT1〜T5、さらに少し時間をおいてパイ
プラインステージTa〜Teという期間があり、パイプライ
ンステージT1では、乗算命令の1つ前の命令(先行命令
F1)が命令レジスタIRにフェッチされており、パイプラ
インステージT2で乗算命令がフェッチされる。そして、
パイプラインステージT3で乗算命令がパイプラインの第
3ステージEXに投入され、パイプラインレジスタID/EX
のEXから乗算要求を受け取った演算実行制御ブロックSU
BALU、及び、ハザード制御ユニットHDUにより生成され
る制御信号HZD-PCにより、プログラムカウンタPCのイン
クリメントは停止する。そして、演算実行制御ブロック
SUBALU内部のステートマシンの状態は、演算要求待ちの
状態を示す初期状態IDLEからMULT1 へ、さらに、MULT2
へと遷移する。この演算実行制御ブロックSUBALU内部の
ステートマシンの状態がMULT2 の時は、乗算ブロックMU
LTから演算終了信号DONEが返されるまでそのまま待ち続
け、演算終了信号DONEが到着した後で、状態MULT3 、さ
らに、もとの演算要求待ちの状態を示すIDLEへと遷移す
る。演算実行制御ブロックSUBALUは内部のステートマシ
ンの状態の情報を、ハザード制御ユニットHDU に与え、
ハザード制御ユニットHDU はそれを基に制御信号HZD-P
C,HZD-EXを更新する。
【0035】図2に示した、乗算命令を実行する場合
の、演算実行制御ブロックSUBALU内部のステートマシン
の状態遷移図を図3に示す。演算要求待ちの状態を示す
初期状態IDLEから状態MULT1 に移るのは、パイプライン
の第3ステージEXに乗算命令が投入された時である。状
態MULT1 から状態MULT2 へは無条件に遷移し、状態MULT
2 で演算終了を待つ。演算終了の判定は、乗算ブロック
MULTから演算終了信号DONEが与えられることにより行わ
れるが、演算にかかる時間が一定であるなどの理由で演
算ブロックが演算終了信号DONEを返さない仕様になって
いるときは、演算実行制御ブロックSUBALU内部に、例え
ば、時間計測手段としてカウンタを設け、そのカウント
の値が予め設定している値を越えることを状態遷移の条
件(演算終了の判定条件)にすることもできる。
【0036】また、図2のタイミングチャートでは、乗
算を行う場合だけを示したが、図1に示したプログラマ
ブルコントローラのように、演算実行制御ブロックSUBA
LUに複数の演算ブロックを接続して、複数種類の演算を
処理させる場合は、図4の状態遷移図に示すように、演
算要求待ちの初期状態IDLEから複数種類の演算のステー
ト(図4では、乗算演算のステートまたは除算演算のス
テート)に遷移できるようなステートマシンを作成すれ
ばよい。この時、演算終了の判定は、演算を処理する各
演算ブロックの仕様に合わせて、各演算ブロックから返
される演算終了信号DONEによるか、または、一定時間経
過を計測する、演算実行制御ブロックSUBALU内部のカウ
ンタ(時間計測手段)の値によって判断するか、都合の
良い判定方法を選択すればよい。
【0037】ところで、プログラマブルコントローラが
処理する命令の中には、先行するビット処理命令の結果
により、その命令(パイプラインステージ1段の時間内
に演算を終了することができない命令)を実行するのか
どうかを決定するものがある。算術論理演算ユニットAL
U で処理される通常の命令の場合には、命令実行条件が
どうであれ、とにかく、算術論理演算ユニットALU では
演算を実行し、その命令が非実行となった場合にはレジ
スタ書き戻しまたはデータメモリ書き込みの制御信号を
無効にすることで、その命令を実質的に非実行にしてい
る。パイプラインの流れをできるだけ乱さないようにこ
のような実装の仕方をするが、演算実行制御ブロックSU
BALUでも同じように演算ブロックに無条件に演算を実行
させると、命令実行条件が非実行となった場合には、演
算終了までの待ち時間が無駄になる。そこで、演算実行
制御ブロックSUBALUで処理をする命令が、パイプライン
の第3ステージEXに投入されたとき、命令実行条件が成
立していない場合には、初期状態IDLEから演算実行中の
状態に遷移させないようにして、無駄な時間が経過しな
いように構成する。
【0038】また、演算ブロックが複数のモードでの動
作をサポートする場合(複数種類のデータ幅の演算に対
応する場合等)、例えば、1つの乗算ブロックで 8bit
データ同士の乗算と、16bit データ同士の乗算を行う場
合は、2本のレジスタの値をそのまま引数とし、 8bit
乗算の場合は2本のレジスタのそれぞれ上位 8bit の値
を乗算の引数にする場合、実際に乗算を行う乗算ブロッ
クが 8bit 演算モードで動作するときには、引数は入力
データの下位 8bit にセットしなければならないので、
演算実行制御ブロックSUBALUSUBALUは、パイプラインレ
ジスタから得た16bit データをそのまま乗算ブロックMU
LTに引き渡すのではなく、上位 8bit の値を下位 8bit
に代入し直す必要がある。
【0039】さらに、乗算ブロックMULTが 8bit 演算モ
ードの時、入力データの未使用のビット位置は必ず0で
クリアしなければならない場合等、演算実行制御ブロッ
クSUBALUが演算ブロックの仕様に合わせてデータを加工
しなければならない場合がある。また、入力に限らず、
演算結果に関しても同様の加工が必要な場合もある。こ
のようなデータの加工が不要となるように演算ブロック
を設計するべきではあるが、過去の設計資産を流用して
全体のシステムを構築する場合には、このような処理も
必要になる。
【0040】また、図1に示した5段パイプライン構造
のプログラマブルコントローラで実行させる命令の中に
は、1つあるいは2つのレジスタの値を基にして演算を
行い、その演算結果を1ワードのデータメモリ4または
1本の汎用レジスタ(レジスタファイル3)に書き戻す
ものがあるが、演算実行制御ブロックSUBALUが処理する
命令の中には、複数の書き戻し処理が必要になる場合が
ある。例えば、16bit同士の乗算を行った場合には、そ
の結果は32bit 長になる。レジスタファイル3中の汎用
レジスタが16bit 幅だとすると、1命令に対してレジス
タ書き戻しを2回行う必要が生じる。図2に示したタイ
ミングチャートでは、乗算命令に対して、汎用レジスタ
への書き戻しを1回しか行っていないが、演算のデータ
幅、汎用レジスタ、データメモリ4等のデータ幅によっ
ては、複数回の書き戻し処理が必要となる場合もある。
このような命令に対しては、演算実行制御ブロックSUBA
LUで、演算要求時にパイプラインレジスタから与えられ
た情報を記憶しておき、通常のパイプライン動作では発
生しない複数回の書き戻し動作も実現できるようにステ
ートマシンを設計しておく。
【0041】さらに、図2のタイミングチャートにおい
て、パイプラインステージT3で乗算要求が第3ステージ
EXに投入されているが、この時、命令レジスタIRには後
続命令R1がフェッチされているので、次のパイプライン
ステージT4には後続命令R1の引数がパイプラインレジス
タID/EX に投入される。乗算命令の引数はパイプライン
ステージ1段分の時間しかパイプラインレジスタID/EX
には存在しないが、実際に演算を行う演算ブロックMULT
の仕様が演算終了まで引数を固定させておかなければな
らない場合には、正しく演算を行うことができなくなっ
てしまう。そこで、パイプラインレジスタID/EX の中
の、演算実行制御ブロックSUBALUに値を渡すものに関し
ては、図5に示すように、マルチプレクサMUX6を設け、
保持要求があれば、パイプラインレジスタID/EX 自身に
格納されている値(例えば、S1の内容)を保持できるよ
うにし、演算実行制御ブロックSUBALUがそのための保持
要求信号を発生するように構成する。これにより、後続
命令がパイプラインレジスタID/EX に投入されても、演
算実行制御ブロックSUBALUが処理している該当命令の引
数または演算モードなどの制御信号を必要なだけ保持す
ることが可能になり、正しく演算を実行できるようにな
る。
【0042】なお、実施形態には、乗算、除算を行う演
算ブロックを示したが実施形態に限定されるものではな
い。
【0043】
【発明の効果】請求項1乃至請求項3記載の5段パイプ
ライン構造のプログラマブルコントローラによれば、パ
イプラインステージ1段の時間内に演算を完了させるこ
とが困難な命令を実装する場合、必要な時間だけパイプ
ラインの動作を停止させることにより、該当命令を容易
に実装することが可能になる。
【0044】また、請求項4記載の5段パイプライン構
造のプログラマブルコントローラによれば、パイプライ
ンステージ1段の時間内に演算を完了させることが困難
な命令の実行条件が成立しないような場合にも、無駄に
パイプラインを止めることを防止することができる。
【0045】さらに、請求項5または請求項7記載の5
段パイプライン構造のプログラマブルコントローラによ
れば、パイプライン構造に合わせて演算ブロックを再設
計する必要がなくなり、過去の設計資産を有効に活用す
ることが可能になる。
【0046】請求項6記載の5段パイプライン構造のプ
ログラマブルコントローラによれば、通常のパイプライ
ンの動作では見られないような複数の書き戻し動作を必
要とする命令を実装することが可能になる。
【0047】請求項7記載の5段パイプライン構造のプ
ログラマブルコントローラによれば、パイプラインレジ
スタ上に演算の引数を保持させることが可能になり、演
算ブロックの小型化を図ることも可能となる。
【図面の簡単な説明】
【図1】本発明の5段パイプライン構造のプログラマブ
ルコントローラの一実施形態を示すブロック図である。
【図2】本発明の5段パイプライン構造のプログラマブ
ルコントローラの動作タイミングの一実施形態を示すタ
イミングチャートである。
【図3】本発明の5段パイプライン構造のプログラマブ
ルコントローラの演算実行制御ブロックSUBALU内部のス
テートマシンの状態遷移の一実施形態を示す状態遷移図
である。
【図4】本発明の5段パイプライン構造のプログラマブ
ルコントローラの演算実行制御ブロックSUBALU内部のス
テートマシンの状態遷移の異なる実施形態を示す状態遷
移図である。
【図5】本発明の5段パイプライン構造のプログラマブ
ルコントローラの異なる実施形態を示すブロック図であ
る。
【図6】本発明の5段パイプライン構造のプログラマブ
ルコントローラの概略構成の一実施形態を示すブロック
図である。
【図7】従来の5段パイプライン構造のプログラマブル
コントローラの一例を示すブロック図である。
【符号の説明】
3 レジスタファイル(汎用レジ
スタ) IF,ID,EX,MEM , WB パイプラインレジスタ MULT,DIV 演算ブロック PC プログラムカウンタ

Claims (7)

    【特許請求の範囲】
  1. 【請求項1】 パイプラインステージ1段の時間内に演
    算を終了することができない命令を実行する際、設定し
    た前記命令の演算終了に必要な時間だけプログラムカウ
    ンタのインクリメントを停止させ、レジスタ書き戻し、
    データメモリ書き込み等の制御信号を無効にすること
    で、パイプラインを停止させて前記命令を実行するよう
    に構成されていることを特徴とする5段パイプライン構
    造のプログラマブルコントローラ。
  2. 【請求項2】 パイプラインステージ1段の時間内に演
    算を終了することができず演算時間が一定ではない命令
    を実行する際、前記命令を実行する演算ブロックから演
    算終了信号が到着するまでの間、プログラムカウンタの
    インクリメントを停止させ、レジスタ書き戻し、データ
    メモリ書き込み等の制御信号を無効にして、パイプライ
    ンを停止させて前記命令を実行するように構成されてい
    ることを特徴とする5段パイプライン構造のプログラマ
    ブルコントローラ。
  3. 【請求項3】 パイプラインステージ1段の時間内に演
    算を終了することができない複数種類の命令を実行する
    際、前記命令の種類に適した演算終了の判定方法を用い
    て、プログラムカウンタのインクリメントを停止させ、
    レジスタ書き戻し、データメモリ書き込み等の制御信号
    を無効にすることで、パイプラインを停止させて前記命
    令を実行するように構成されていることを特徴とする5
    段パイプライン構造のプログラマブルコントローラ。
  4. 【請求項4】 パイプラインステージ1段の時間内に演
    算を終了することができない命令を実行するか非実行に
    するかを決定するフラグが設けられており、非実行の場
    合には前記命令の演算を開始させず、無駄にパイプライ
    ンの動作を停止させないように構成されていることを特
    徴とする5段パイプライン構造のプログラマブルコント
    ローラ。
  5. 【請求項5】 パイプラインステージ1段の時間内に演
    算を終了することができない命令を実行する演算ブロッ
    クが、複数種類のデータ幅の演算に対応可能に構成され
    ており、入力の所定のビット位置に値をセットして前記
    演算ブロックに与え、必要に応じて未使用のビット位置
    の値をクリアするように構成されていることを特徴とす
    る5段パイプライン構造のプログラマブルコントロー
    ラ。
  6. 【請求項6】 パイプラインステージ1段の時間内に演
    算を終了することができない命令を実行する際、前記命
    令が複数の汎用レジスタに演算結果を格納する場合は、
    必要なレジスタ書き戻しを全て実行するまで、所定情報
    を保持するように構成されていることを特徴とする5段
    パイプライン構造のプログラマブルコントローラ。
  7. 【請求項7】 パイプラインステージ1段の時間内に演
    算を終了することができない命令を実行する際、命令解
    読を行うステージと、命令実行を行うステージ間に設け
    られたパイプラインレジスタ上の前記命令の引数または
    制御信号を、必要なだけ保持するように構成されている
    ことを特徴とする5段パイプライン構造のプログラマブ
    ルコントローラ。
JP28377795A 1995-09-29 1995-10-31 5段パイプライン構造のプログラマブルコントローラ Expired - Fee Related JP3206394B2 (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
JP28377795A JP3206394B2 (ja) 1995-10-31 1995-10-31 5段パイプライン構造のプログラマブルコントローラ
US08/721,181 US5933651A (en) 1995-09-29 1996-09-27 Programmable controller
CNB961211032A CN1137421C (zh) 1995-09-29 1996-09-29 可编程控制器
DE69621091T DE69621091T2 (de) 1995-09-29 1996-09-30 Programmierbare Steuerung
EP96115647A EP0766155B1 (en) 1995-09-29 1996-09-30 Programmable controller
KR1019960042852A KR100260012B1 (ko) 1995-09-29 1996-09-30 프로그래머블 컨트롤러

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP28377795A JP3206394B2 (ja) 1995-10-31 1995-10-31 5段パイプライン構造のプログラマブルコントローラ

Publications (2)

Publication Number Publication Date
JPH09128235A true JPH09128235A (ja) 1997-05-16
JP3206394B2 JP3206394B2 (ja) 2001-09-10

Family

ID=17669997

Family Applications (1)

Application Number Title Priority Date Filing Date
JP28377795A Expired - Fee Related JP3206394B2 (ja) 1995-09-29 1995-10-31 5段パイプライン構造のプログラマブルコントローラ

Country Status (1)

Country Link
JP (1) JP3206394B2 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04130537A (ja) * 1990-09-20 1992-05-01 Matsushita Electric Ind Co Ltd データ処理装置
JPH07244588A (ja) * 1994-01-14 1995-09-19 Matsushita Electric Ind Co Ltd データ処理装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04130537A (ja) * 1990-09-20 1992-05-01 Matsushita Electric Ind Co Ltd データ処理装置
JPH07244588A (ja) * 1994-01-14 1995-09-19 Matsushita Electric Ind Co Ltd データ処理装置

Also Published As

Publication number Publication date
JP3206394B2 (ja) 2001-09-10

Similar Documents

Publication Publication Date Title
US6665776B2 (en) Apparatus and method for speculative prefetching after data cache misses
US20010010075A1 (en) Efficient handling of a large register file for context switching and function calls and returns
JP2002512399A (ja) 外部コプロセッサによりアクセス可能なコンテキストスイッチレジスタセットを備えたriscプロセッサ
KR20010109354A (ko) 프로세서내의 기록 트래픽을 감소시키는 시스템 및 방법
JP2004171573A (ja) 新規な分割命令トランズアクションモデルを使用して構築したコプロセッサ拡張アーキテクチャ
US5996059A (en) System for monitoring an execution pipeline utilizing an address pipeline in parallel with the execution pipeline
EP0766155B1 (en) Programmable controller
JP2535252B2 (ja) 並列処理装置
JP2008542949A (ja) パイプライン型マイクロプロセッサの節電システムおよび節電方法
KR101077425B1 (ko) 효율적 인터럽트 리턴 어드레스 저장 메커니즘
JPH1165839A (ja) プロセッサの命令制御機構
JP3790626B2 (ja) デュアルワードまたは複数命令をフェッチしかつ発行する方法および装置
US6055628A (en) Microprocessor with a nestable delayed branch instruction without branch related pipeline interlocks
US7539847B2 (en) Stalling processor pipeline for synchronization with coprocessor reconfigured to accommodate higher frequency operation resulting in additional number of pipeline stages
JP4800582B2 (ja) 演算処理装置
US5737562A (en) CPU pipeline having queuing stage to facilitate branch instructions
JPH09128235A (ja) 5段パイプライン構造のプログラマブルコントローラ
JPH06214785A (ja) マイクロプロセッサ
JP2001014161A (ja) プログラマブルコントローラ
JP3405106B2 (ja) プログラマブルコントローラ
JPH0876996A (ja) プログラマブルコントローラ
US20020108022A1 (en) System and method for allowing back to back write operations in a processing system utilizing a single port cache
KR100515039B1 (ko) 조건부 명령어를 고려한 파이프라인 상태 표시 회로
JP3414579B2 (ja) プログラマブルコントローラ
JP3063593B2 (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: 20010605

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20070706

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080706

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090706

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090706

Year of fee payment: 8

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: 20090706

Year of fee payment: 8

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: 20090706

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100706

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100706

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110706

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120706

Year of fee payment: 11

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: 20120706

Year of fee payment: 11

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: 20120706

Year of fee payment: 11

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130706

Year of fee payment: 12

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130706

Year of fee payment: 12

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: 20130706

Year of fee payment: 12

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees