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

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

Info

Publication number
JP3206394B2
JP3206394B2 JP28377795A JP28377795A JP3206394B2 JP 3206394 B2 JP3206394 B2 JP 3206394B2 JP 28377795 A JP28377795 A JP 28377795A JP 28377795 A JP28377795 A JP 28377795A JP 3206394 B2 JP3206394 B2 JP 3206394B2
Authority
JP
Japan
Prior art keywords
instruction
stage
pipeline
register
programmable controller
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 - Fee Related
Application number
JP28377795A
Other languages
English (en)
Other versions
JPH09128235A (ja
Inventor
達男 増田
明 薮田
宏史 坂井
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 KR1019960042852A priority patent/KR100260012B1/ko
Priority to EP96115647A priority patent/EP0766155B1/en
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)

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では本発明に関する
部部のみ図示しており他の構成は図示を省略している。
そして、プログラマブルコントローラが処理する命令の
中には、先行するビット処理命令の結果により、後に続
く命令を実行するのかどうかを決定するようにしている
ものがある。すなわち、算術論理演算ユニットALU で処
理される通常の命令の場合には、命令実行条件がどうで
あれ、とにかく、算術論理演算ユニットALU では演算を
実行し、その命令が非実行となった場合にはレジスタ書
き戻しまたはデータメモリ書き込みの制御信号を無効に
することで、その命令を実質的に非実行にしている。
【0010】しかし、この5段パイプライン構造のパイ
プラインステージの時間が短いという利点は、プログラ
マブルコントローラの仕様上必要な応用命令を実行する
際には問題となる。パイプラインの第3ステージEXに設
けられた算術論理演算ユニットALU で、算術演算、論理
演算、メモリアクセスのアドレス計算などを行うが、応
用命令の中でも、特に複雑な乗算や除算などの演算は、
パイプラインステージ1段の時間内に実行することは困
難である。
【0011】一般に演算時間を短くしようとすると、そ
れを実行する回路は大規模なものになる。図7に示した
5段パイプライン構造のプログラマブルコントローラに
おいて、仕様に含まれる乗算または除算をパイプライン
ステージ1段の時間内に実行させようとすると、LSI
に搭載できないほど大きな演算ブロックが必要になる
か、面積の問題を無視して速いアルゴリズムの演算ブロ
ックを用いても、パイプラインステージ1段の時間内に
演算を終了させることが不可能になり、これらの演算を
実行するためにパイプラインステージの時間を長くしな
ければならなくなる。
【0012】本発明は、上記問題点に鑑みなされたもの
で、その目的とするところは、パイプラインステージ1
段の時間内に演算を終了することができない命令を容易
に実装することができる5段パイプライン構造のプログ
ラマブルコントローラの構造を提供することにある。
【0013】
【課題を解決するための手段】上記目的を達成するた
め、請求項1記載の5段パイプライン構造のプログラマ
ブルコントローラは、基本的なビット演算処理と、複数
ビットの応用処理を行うプログラマブルコントローラで
あって、パイプライン処理の各命令実行ステージに対応
したハードウェアとして、命令メモリとプログラムカウ
ンタとを備えたIF部と、命令デコーダと汎用レジスタと
を備えたID部と、算術論理演算ユニットを備えたEX部
と、データメモリとそのデータメモリへのアクセス制御
を行うメモリアクセスインターフェースとを備えたMEM
部と、ビット演算処理を行うBPU を備えたWB部とを備
え、命令実行ステージを、命令メモリから命令を取り出
す命令フェッチ処理を行う第1ステージと、命令デコー
ド、及び、汎用レジスタから値を取り出すレジスタフェ
ッチ処理を行う第2ステージと、算術論理演算またはデ
ータアドレス計算または分岐先の実効アドレスを計算す
る分岐先計算を行う第3ステージと、データメモリへの
メモリアクセス処理を行う第4ステージと、ビット演算
または前記汎用レジスタへの書き込み処理または分岐処
理を行う第5ステージとで構成し、先行するビット処理
命令の結果により、先行するビット処理命令の結果によ
り、後に続く命令を実行するのかどうかを決定するもの
において、パイプラインステージ1段の時間内に演算を
終了することができない命令を実行する際、設定した前
記命令の演算終了に必要な時間だけプログラムカウンタ
のインクリメントを停止させ、レジスタ書き戻し、デー
タメモリ書き込み等の制御信号を無効にすることで、パ
イプラインを停止させて前記命令を実行するように構成
されていることを特徴とすることを特徴とするものであ
る。
【0014】請求項2記載の5段パイプライン構造のプ
ログラマブルコントローラは、請求項1記載のものにお
いて、パイプラインステージ1段の時間内に演算を終了
することができず演算時間が一定ではない命令を実行す
る際、前記命令を実行する演算ブロックから演算終了信
号が到着するまでの間、プログラムカウンタのインクリ
メントを停止させ、レジスタ書き戻し、データメモリ書
き込み等の制御信号を無効にして、パイプラインを停止
させて前記命令を実行するように構成されていることを
特徴とするものである。
【0015】請求項3記載の5段パイプライン構造のプ
ログラマブルコントローラは、請求項2記載のものにお
いて、パイプラインステージ1段の時間内に演算を終了
することができない複数の命令を実行する際、前記命令
の種類に適した演算終了の判定方法を用いて、プログラ
ムカウンタのインクリメントを停止させ、レジスタ書き
戻し、データメモリ書き込み等の制御信号を無効にする
ことで、パイプラインを停止させて前記命令を実行する
ように構成されていることを特徴とするものである。
【0016】請求項4記載の5段パイプライン構造のプ
ログラマブルコントローラは、請求項1乃至3のいずれ
かに記載のものにおいて、前記演算ブロックが、複数種
類のデータ幅の演算に対応可能に構成されており、入力
の所定のビット位置に値をセットして前記演算ブロック
に与え、必要に応じて未使用のビット位置をクリアする
ように構成されていることを特徴とするものである。
【0017】請求項5記載の5段パイプライン構造のプ
ログラマブルコントローラは、請求項1乃至4のいずれ
かに記載のものにおいて、パイプラインステージ1段の
時間内に演算を終了することができない命令を実行する
際、前記命令が複数の汎用レジスタに演算結果を格納す
る場合は、必要なレジスタ書き戻しを全て実行するま
で、所定情報を保持するように構成されていることを特
徴とするものである。
【0018】請求項6記載の5段パイプライン構造のプ
ログラマブルコントローラは、請求項1乃至5のいずれ
かに記載のものにおいて、パイプラインステージ1段の
時間内に演算を終了することができない命令を実行する
際、命令解読を行うステージと、命令実行を行うステー
ジ間に設けられたパイプラインレジスタ上の前記命令の
引数または制御信号を、必要なだけ保持するように構成
されていることを特徴とするものである。
【0019】請求項7記載の5段パイプライン構造のプ
ログラマブルコントローラは、請求項1乃至6いずれか
に記載のものにおいて、パイプライン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段の時間内に演算を終了することができない命
令)を実行するのかどうかを決定するものがある。算術
論理演算ユニットALU で処理される通常の命令の場合に
は、命令実行条件がどうであれ、とにかく、算術論理演
算ユニットALU では演算を実行し、その命令が非実行と
なった場合にはレジスタ書き戻しまたはデータメモリ書
き込みの制御信号を無効にすることで、その命令を実質
的に非実行にしている。パイプラインの流れをできるだ
け乱さないようにこのような実装の仕方をするが、演算
実行制御ブロックSUBALUでも同じように演算ブロックに
無条件に演算を実行させると、命令実行条件が非実行と
なった場合には、演算終了までの待ち時間が無駄にな
る。そこで、演算実行制御ブロック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または6記載の5段パイプ
ライン構造のプログラマブルコントローラによれば、
イプライン構造に合わせて演算ブロックを再設計する必
要がなくなり過去の設計資産を有効に活用することが可
能になる。
【0045】また、請求項記載の5段パイプライン構
造のプログラマブルコントローラによれば、通常のパイ
プラインの動作では見られないような複数の書き戻し動
作を必要とする命令を実装することが可能になる。
【0046】また、請求項記載の5段パイプライン構
造のプログラマブルコントローラによれば、パイプライ
ンレジスタ上に演算の引数を保持させることが可能にな
り、演算ブロックの小型化を図ることも可能になる。
【0047】さらに、請求項記載の5段パイプライン
構造のプログラマブルコントローラによれば、パイプラ
インステージ1段の時間内に演算を完了させることが困
難な命令の実行条件が成立しないような場合にも、無駄
にパイプラインを止めることを防止することができる。
【図面の簡単な説明】
【図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 プログラムカウンタ
フロントページの続き (56)参考文献 特開 平7−244588(JP,A) 特開 平4−130537(JP,A) 特開 平5−189015(JP,A) 特開 平4−363704(JP,A) ヘネシー&パターソン「コンピュー タ・アーキテクチャ −設計・実現・評 価の定量的アプローチ−」、日経BP 社、平成5年(1993年)5月31日、p. 277−284 武良丈治外3名「PC(FP10,FP 10S)の高速処理技術」松下電工技報51 巻(1995年)p.40−45 尾崎伸治外9名「A 100MHz E mbedded RISC Micro controller」電子情報通信 学会技術研究報告94巻243号(ICD94 96−110)(1994年)p.25−30 (58)調査した分野(Int.Cl.7,DB名) G06F 9/38 G05B 19/05

Claims (7)

    (57)【特許請求の範囲】
  1. 【請求項1】 基本的なビット演算処理と、複数ビ
    ットの応用処理を行うプログラマブルコントローラであ
    って、パイプライン処理の各命令実行ステージに対応し
    たハードウェアとして、命令メモリとプログラムカウン
    タとを備えたIF部と、命令デコーダと汎用レジスタとを
    備えたID部と、算術論理演算ユニットを備えたEX部と、
    データメモリとそのデータメモリへのアクセス制御を行
    うメモリアクセスインターフェースとを備えたMEM 部
    と、ビット演算処理を行うBPU を備えたWB部とを備え、
    命令実行ステージを、命令メモリから命令を取り出す命
    令フェッチ処理を行う第1ステージと、命令デコード、
    及び、汎用レジスタから値を取り出すレジスタフェッチ
    処理を行う第2ステージと、算術論理演算またはデータ
    アドレス計算または分岐先の実効アドレスを計算する分
    岐先計算を行う第3ステージと、データメモリへのメモ
    リアクセス処理を行う第4ステージと、ビット演算また
    は前記汎用レジスタへの書き込み処理または分岐処理を
    行う第5ステージとで構成し、先行するビット処理命令
    の結果により、後に続く命令を実行するのかどうかを決
    定するものにおいて、パイプラインステージ1段の時間
    内に演算を終了することができない命令を実行する際、
    設定した前記命令の演算終了に必要な時間だけプログラ
    ムカウンタのインクリメントを停止させ、レジスタ書き
    戻し、データメモリ書き込み等の制御信号を無効にする
    ことで、パイプラインを停止させて前記命令を実行する
    ように構成されていることを特徴とする5段パイプライ
    ン構造のプログラマブルコントローラ。
  2. 【請求項2】 パイプラインステージ1段の時間内
    に演算を終了することができず演算時間が一定ではない
    命令を実行する際、前記命令を実行する演算ブロックか
    ら演算終了信号が到着するまでの間、プログラムカウン
    タのインクリメントを停止させ、レジスタ書き戻し、デ
    ータメモリ書き込み等の制御信号を無効にして、パイプ
    ラインを停止させて前記命令を実行するように構成され
    ていることを特徴とする請求項1記載の5段パイプライ
    ン構造のプログラマブルコントローラ。
  3. 【請求項3】 パイプラインステージ1段の時間内
    に演算を終了することができない複数の命令を実行する
    際、前記命令の種類に適した演算終了の判定方法を用い
    て、プログラムカウンタのインクリメントを停止させ、
    レジスタ書き戻し、データメモリ書き込み等の制御信号
    を無効にすることで、パイプラインを停止させて前記命
    令を実行するように構成されていることを特徴とする
    求項2記載の5段パイプライン構造のプログラマブルコ
    ントローラ。
  4. 【請求項4】 前記演算ブロックが、複数種類のデ
    ータ幅の演算に対応可能に構成されており、入力の所定
    のビット位置に値をセットして前記演算ブロックに与
    え、必要に応じて未使用のビット位置をクリアするよう
    に構成されていることを特徴とする請求項2又は3のい
    ずれかに記載の5段パイプライン構造のプログラマブル
    コントローラ。
  5. 【請求項5】 パイプラインステージ1段の時間内
    に演算を終了することができない命令を実行する際、前
    記命令が複数の汎用レジスタに演算結果を格納する場合
    は、必要なレジスタ書き戻しを全て実行するまで、前記
    複数の汎用レジスタの各汎用レジスタに格納されるべき
    演算結果を保持するように構成されていることを特徴と
    する請求項1乃至4のいずれかに記載の5段パイプライ
    ン構造のプログラマブルコントローラ。
  6. 【請求項6】 パイプラインステージ1段の時間内
    に演算を終了することができない命令を実行する際、命
    令解読を行うステージと、命令実行を行うステージ間に
    設けられたパイプラインレジスタ上の前記命令の引数ま
    たは制御信号を、前記命令が終了するまで保持するよう
    に構成されていることを特徴とする請求項1乃至5のい
    ずれかに記載の5段パイプライン構造のプログラマブル
    コントローラ。
  7. 【請求項7】 パイプライン1段の時間内に演算を
    終了することができない命令を実行するか非実行にする
    かを決定するフラグが設けられており、非実行の場合に
    は、前記演算命令が演算実行状態に遷移しない構成とし
    ていることを特徴とする請求項1乃至6いずれかに記載
    の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
KR1019960042852A KR100260012B1 (ko) 1995-09-29 1996-09-30 프로그래머블 컨트롤러
EP96115647A EP0766155B1 (en) 1995-09-29 1996-09-30 Programmable controller

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 JPH09128235A (ja) 1997-05-16
JP3206394B2 true 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)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3089427B2 (ja) * 1990-09-20 2000-09-18 松下電器産業株式会社 データ処理装置
JPH07244588A (ja) * 1994-01-14 1995-09-19 Matsushita Electric Ind Co Ltd データ処理装置

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
ヘネシー&パターソン「コンピュータ・アーキテクチャ −設計・実現・評価の定量的アプローチ−」、日経BP社、平成5年(1993年)5月31日、p.277−284
尾崎伸治外9名「A 100MHz Embedded RISC Micro controller」電子情報通信学会技術研究報告94巻243号(ICD94 96−110)(1994年)p.25−30
武良丈治外3名「PC(FP10,FP10S)の高速処理技術」松下電工技報51巻(1995年)p.40−45

Also Published As

Publication number Publication date
JPH09128235A (ja) 1997-05-16

Similar Documents

Publication Publication Date Title
US8539485B2 (en) Polling using reservation mechanism
US4729094A (en) Method and apparatus for coordinating execution of an instruction by a coprocessor
US4715013A (en) Coprocessor instruction format
US20040205747A1 (en) Breakpoint for parallel hardware threads in multithreaded processor
JP2002512399A (ja) 外部コプロセッサによりアクセス可能なコンテキストスイッチレジスタセットを備えたriscプロセッサ
US4731736A (en) Method and apparatus for coordinating execution of an instruction by a selected coprocessor
US4750110A (en) Method and apparatus for executing an instruction contingent upon a condition present in another data processor
JP2006502488A (ja) 省電力vliwプロセッサ
US5021991A (en) Coprocessor instruction format
EP0523758B1 (en) A method and apparatus for coordinating execution of an instruction by a coprocessor
KR100260012B1 (ko) 프로그래머블 컨트롤러
US4821231A (en) Method and apparatus for selectively evaluating an effective address for a coprocessor
US4758950A (en) Method and apparatus for selectively delaying an interrupt of a coprocessor
US4914578A (en) Method and apparatus for interrupting a coprocessor
JP4800582B2 (ja) 演算処理装置
US6993674B2 (en) System LSI architecture and method for controlling the clock of a data processing system through the use of instructions
US5864701A (en) Apparatus and method for managing interrupt delay associated with mask flag transition
JP3900499B2 (ja) 再構成可能な、命令レベルのハードウェアによる高速化のためにマイクロプロセッサとともにfpgaテクノロジを使用する方法および装置
JP3206394B2 (ja) 5段パイプライン構造のプログラマブルコントローラ
US4994961A (en) Coprocessor instruction format
US4758978A (en) Method and apparatus for selectively evaluating an effective address for a coprocessor
JPH1049373A (ja) パイプライン・デジタル・プロセッサにおいて多重で高精度の事象を操作する方法と装置
JP2001014161A (ja) プログラマブルコントローラ
JP3158107B2 (ja) 浮動小数点状態および制御レジスタ(fpscr)命令を直接実行するための方法および装置
JP3520372B2 (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