JP2919184B2 - パイプライン処理を行う情報処理装置 - Google Patents

パイプライン処理を行う情報処理装置

Info

Publication number
JP2919184B2
JP2919184B2 JP19416192A JP19416192A JP2919184B2 JP 2919184 B2 JP2919184 B2 JP 2919184B2 JP 19416192 A JP19416192 A JP 19416192A JP 19416192 A JP19416192 A JP 19416192A JP 2919184 B2 JP2919184 B2 JP 2919184B2
Authority
JP
Japan
Prior art keywords
register
state
instruction
information
address
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
JP19416192A
Other languages
English (en)
Other versions
JPH0635699A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP19416192A priority Critical patent/JP2919184B2/ja
Publication of JPH0635699A publication Critical patent/JPH0635699A/ja
Application granted granted Critical
Publication of JP2919184B2 publication Critical patent/JP2919184B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、命令処理を高速に実行
するためのパイプライン処理を行う情報処理装置に
、特に、本発明はパイプライン処理の遅れを減じるこ
とにより、計算システムの性能を向上させることができ
情報処理装置に関するものである。
【0002】
【従来の技術】パイプライン処理とは、一つの命令処理
を複数の処理に分割し複数の命令処理を並列に実行する
処理方式である。図8(a),(b)に6段で構成され
るパイプライン処理における各命令の実行処理を示す。
同図において、分割された複数の処理は「ステート」と
いう名前で区別され、パイプライン処理は、Dステー
ト、Aステート、Tステート、Bステート、Eステー
ト、Wステートの各処理を順番に通過することにより、
処理される。
【0003】Dステートでは命令のデコード、Aステー
トではアドレス計算、TステートではTLB(変換索引
緩衝機構、以下TLBという)の索引、Bステートでは
LBS(ローカル・バッファ・ストレージ、以下、LB
Sという)キャッシュ・メモリからのデータのリード、
Eステートでは演算の実行、Wステートでは演算結果の
レジスタへの格納が行われる。また、複数命令処理間で
同一のステートがセットされることはない。
【0004】1ステートが処理される時間を1マシンサ
イクルと呼ぶが、理想的にパイプライン処理が動作すれ
ば図8(a)に示すようにN個の命令がNマシンサイク
ルで実行される。ところで、パイプライン処理を行う情
報処理装置においては、パイプライン処理を理想的に動
作させることを妨げる要因としてパイプラインのインタ
ロックが存在する。その代表的なものとして、汎用レジ
スタを更新しようとしている命令の後続命令が上記汎用
レジスタをアドレス計算に使用するケースに生じるDス
テート・インタロックがある。
【0005】図8(b)は上記Dステート・インタロッ
クが生じている状態を示した図であり、同図において、
命令1は例えば汎用レジスタ1を更新する命令であり、
更新データはWステートで得られる。命令2は汎用レジ
スタ1をAステートでアドレス計算に使用する命令であ
り、命令1での更新データをAステートのアドレス加算
器入力データ・レジスタにセットできるタイミングま
で、そのDステートでインタロックしている。
【0006】高速性を要求される情報処理装置において
は、上記のようなインタロックを減ずるため様々なバイ
パス機構を設けており、Dステートのインタロックを制
御する回路が著しく複雑なものになる。しかも、Dステ
ートのインタロック制御を受けるレジスタはその数が多
く、インタロック制御信号の上記レジスタへのロード数
増加がさらにインタロック制御信号の信号伝搬遅延時間
を伸ばしてしまい、情報処理装置のマシンサイクル短縮
を阻害する大きな要因となっている。
【0007】このことは、現在多くの計算システムに採
用されている演算ステージ・パイプライン技術にとって
特に重要になりつつある。すなわち、アドレス計算に用
いることがない浮動小数点レジスタを更新する命令に関
しての演算ステージ・パイプライン技術が進むにつれ
て、それら浮動小数点命令と合前後してパイプラインに
投入される一般命令によるインタロックの度合いが大き
なものとなっている。
【0008】図9(a),(b)は上記のような演算ス
テージのパイプライン処理をEステート、Vステートの
2ステートで行う演算ステージ・パイプライン命令の実
行処理を示す図であり、同図(a)は全ての命令がEス
テート、Vステートの2ステートでパイプライン処理を
行っている場合であり、同図(b)は2ステートでパイ
プライン処理を行う演算ステージ・パイプライン命令の
間に一般命令(同図における命令2)が投入された場合
である。
【0009】図9から明らかなように、図9(b)にお
いては、図9(a)に較べて5番目の命令の実行が1サ
イクル遅れている。しかしながら、汎用レジスタを更新
する一般命令に演算パイプライン技術を採用すること
は、Dステージのインタロック制御をさらに複雑なもの
とし、その部分の制御回路の増大を招くこととなる。図
10はパイプライン処理における各ステートの主な処理
を示す図であり、同図においてはパイプライン処理を6
ないし7ステートで行うものについて示している。
【0010】同図において、401は汎用レジスタ,浮
動小数点レジスタなどを含むレジスタ・スタック、40
2は仮想アドレスを実アドレスにアドレス変換するTL
B、403は高速なアクセスを可能とするため主記憶装
置のデータのコピーを保持するLBS、404は演算を
実行するための演算器、501,502はそれぞれアド
レス計算用のデータを保持するベース・レジスタ、イン
デックス・レジスタ、503は命令から切りだされたデ
ィスプレースメント部を保持するレジスタ、504はレ
ジスタ501ないし503の内容を加算するアドレス加
算器、505,506,507,509は各ステートの
結果を保持するレジスタ、508はレジスタ・スタック
401の内容を保持するレジスタである。
【0011】次に、図10により、パイプライン処理に
おける各ステートの主な処理を説明する。Dステートに
おいては、オペコードがデコードされ、レジスタ・スタ
ック401よりアドレス計算用のデータが読み出されて
ベース・レジスタ501、インデックス・レジスタ50
2にセットされる。また、図示しない命令レジスタから
ティスプレースメント部が切りだされレジスタ503に
セットされる。
【0012】Aステートにおいては、レジスタ501,
502,503の内容がアドレス加算器504により加
算され、その結果が有効アドレスとしてレジスタ505
にセットされる。Tステートにおいては、レジスタ50
5にセットされた有効アドレスがTLB402により実
アドレスに変換され、レジスタ506にセットされる。
【0013】Bステートにおいては、レジスタ506に
セットされた実アドレスによりLBSからデータが読み
だされレジスタ507にセットされる。Eステートにお
いては、レジスタ507にセットされた内容、レジスタ
・オペランド・バス501を介して与えられるレジスタ
・スタック401の内容に基づき演算器404により演
算が実行され、その結果がレジスタ509にセットされ
る。
【0014】Wステートにおいては、レジスタ509の
セットされた結果をレジスタ・スタック401に書き込
む。レジスタ・スタック401の内容はレジスタ・オペ
ランド・バス501を介して演算器404に送ることが
できる。図11は、本発明の前提となる図10に示した
アドレス加算器504の制御部の基本構成を示す図であ
り、同図において、401は図10に示したレジスタ・
スタック、411は命令バッファ、412は命令を保持
する命令レジスタ、601は制御部、504は図10に
示したアドレス加算器、501,502,503はそれ
ぞれ図10に示したアドレス計算用のデータを保持する
ベース・レジスタ、インデックス・レジスタ、および、
命令から切りだされたディスプレースメント部を保持す
るレジスタ、505は図10に示したアドレス計算結果
を保持するレジスタである。
【0015】602,603はアドレス加算器504の
入力データを選択するための制御信号を保持するレジス
タ、604,605,606,607はバイパス・デー
タを保持するバイパス・レジスタ、630,631はセ
レクタであり、レジスタ602,603に保持された制
御信号に応じて、ベース・レジスタ501、インデック
ス・レジスタ502の出力、あるいは、バイパス・レジ
スタ604,605,606,607の出力を選択す
る。
【0016】608〜611は汎用レジスタ書き込みを
示すビットを保持するレジスタ、612〜615はバイ
パス可能であることを示すビットを保持するレジスタ、
616〜619はバイパス・データが保持されるレジス
タ(バイパス・レジスタ604,605,606,60
7)を指示するレジスタ、620〜623はレジスタ書
き込み番号を指示するレジスタであり、各レジスタはシ
フト・レジスタから構成され、A,T,B,Eの各ステ
ートでその内容がシフトされる。
【0017】図11において、LBSから読みだされた
命令データは命令バッファ411に蓄えられ、1命令ず
つ切りだされて命令レジスタ412にセットされる。命
令レジスタ412の内容は制御回路601に入力され、
ベース・レジスタ番号IB、インデックスレジスタ番号
IXが切りだされ、その番号に基づきレジスタ・スタッ
ク401のベース・レジスタ、インデックス・レジスタ
が読みだされて、ベース・レジスタ501、502にセ
ットされる。
【0018】また、命令レジスタ412よりディスプレ
ースメント部SET DRが切りだされ、レジスタ50
3にセットされる。セレクタ630,631はレジスタ
602,603に保持された制御信号に応じて、ベース
・レジスタ501、インデックス・レジスタ502の出
力、あるいは、バイパス・レジスタ604,605,6
06,607の出力を選択する。
【0019】アドレス加算器504はセレクタ630,
631の出力、レジスタ503の出力に応じてアドレス
計算を行い、その結果をレジスタ505およびバイパス
・レジスタ604,605,606,607にセットす
る。レジスタ505にセットされたデータは、図10に
示したように、TLBの索引に用いられる。Dステート
が終了すると、制御回路601はDステートが終了した
ことを示すDステート終了信号626を出力し、この信
号により命令バッファ411より次の命令が切りださ
れ、命令レジスタ412にセットされる。
【0020】図12は図11に示した制御回路601の
従来例を示す図であり、同図において、701は命令レ
ジスタの内容を入力として、ベース・レジスタ番号71
7を切りだすためのデコーダであり、このデコーダ70
1の出力717がそのままベース・レジスタ番号IBと
して、図11に示したレジスタ・スタック401の索引
に用いられる。また、デコーダ701は命令レジスタの
内容をデコードし、ベース・レジスタ使用命令であるこ
とを示す信号715を出力する。
【0021】702〜705はデコーダ701が出力す
るベース・レジスタ番号717と図11に示したレジス
タ書き込み番号を指示するレジスタ620〜623の出
力を比較する比較器、+608〜+610は図11に示
した汎用レジスタ書き込みを示すビットを保持するレジ
スタ608〜611の出力信号、−612〜−615は
図11に示したバイパス可能であることを示すビットを
保持するレジスタ612〜615の出力の否定信号、+
612〜+615は上記レジスタ612〜615の出力
信号、+616〜+619は図11に示したバイパス・
データが保持されるレジスタを指示するレジスタ616
〜619の出力信号である。
【0022】706〜709はレジスタ干渉検出回路で
あり、その出力は、それぞれ、パイプラインの先行命令
のA,T,B,Eステートとレジスタ干渉を起こしてい
ることを示す。716はレジスタ干渉検出回路706〜
709の出力等に基づきDステート終了信号+D RE
LEASEを出力する論理積回路、718は論理積回路
716の出力などに基づき命令レジスタ更新を制御する
信号+626を出力する論理積回路である。
【0023】710〜713は適切なバイパス・レジス
タ番号を選択するためのセレクタ、714は図11に示
したセレクタ630を制御する制御信号624を出力す
るデコーダである。なお、図12にはベース・レジスタ
に関するDステートのインタロックおよびバイパス部を
示したが、インデックス・レジスタについても同様な回
路が設けられている。
【0024】同図において、デコーダ701が出力する
ベース・レジスタ番号717は比較器702〜705に
おいて、レジスタ620〜623(図11)に保持され
たレジスタ書き込み番号と比較される。レジスタ干渉検
出回路706は、ベース・レジスタ使用命令であること
を示す信号715がオンであり、また、比較器702が
一致検出信号を出力し、かつ、Aステートのレジスタ書
き込み信号+608と、Aステートのバイパス可能信号
の否定−612とがオンであるとき出力を発生する。こ
の出力はDステートで先行命令のAステートとレジスタ
干渉を起こしていることを示しており、レジスタ干渉検
出回路706の出力は論理積回路716に与えられる。
【0025】論理積回路716は、命令レジスタ上の命
令がバリッドであることを示す信号の否定信号−D
ALID、レジスタ以外の干渉条件を示す信号+INT
LK OR、レジスタ干渉検出回路706の出力、が
全てオフになるとDステートが終了したことを示す信号
+D RELEASEを出力する。また、論理積回路7
18は論理積回路716の出力信号+D RELEAS
Eとマルチフローの最後のフローであることを示す+E
ND OP信号と論理積をとり、命令レジスタ更新を示
す信号626を出力する。
【0026】
【発明が解決しようとする課題】ところで、前記したよ
うに、汎用レジスタを更新する一般命令に演算パイプラ
イン技術を採用することは、Dステージのインタロック
制御をさらに複雑なものとし、その部分の制御回路の増
大を招き、上記した従来技術のままでは、マシンサイク
ル増大を招かずにはその実現が困難であった。
【0027】すなわち、上記従来技術においては、命令
レジスタ更新を制御する信号626(図11,図12)
及びアドレス加算器504の入力レジスタの更新等を制
御する信号D RELEASE(図12)をロードする
レジスタ(図示せず)の数が多く、これがマシンサイク
ル短縮のためのクリティカル・パスになっていた。この
ため、一般命令について演算パイプライン技術を導入す
ることは、パイプラインのEステート以降のステート数
増加(書き込みステートであるWステートまで)が、制
御部601(図11)中の比較器、選択器の増加を招
き、上記したクリティカル・パスの信号伝搬遅延時間を
増大させることとなってしまう。
【0028】例えば、演算パイプラインに図9に示した
Vステートを追加した場合、それに対応して比較器、レ
ジスタ干渉検出回路等を追加する必要があり、それに伴
い、D RELEASE信号等のロード数が増加し、信
号伝搬遅延時間を増大させることとなる。本発明は上記
した従来技術の欠点に鑑みなされたものであって、Dス
テートにおいてはレジスタ干渉待ち合わせのためのイン
タロックは行わず、Dステートに続くパイプライン処理
ステートでレジスタ干渉待ち合わせのためのインタロッ
クを行うことにより、従来クリティカル・パスになって
いた命令レジスタ更新を制御する信号及びアドレス加算
器の入力レジスタの更新等を制御する信号のロード数を
飛躍的に減少させ、パイプライン処理の遅れを減じるこ
とにより、計算システムの性能を向上させた情報処理装
を提供することを目的とする。
【0029】
【課題を解決するための手段】図1は本発明の原理図で
ある。上記課題を解決するため、本発明の請求項1の発
明は、パイプライン処理を行う情報処理装置において、
デコード・ステートにおいて命令コードよりアドレス計
算に必要な情報を得てその情報を保持するアドレス情報
保持手段1と、命令コードより得られたアドレス計算に
必要な情報と、アドレス情報保持手段1の出力を選択す
る選択手段2と、パイプラインの先行命令の各ステート
の情報と選択手段2の出力によりレジスタ干渉を検出す
るレジスタ干渉検出手段3と、レジスタ干渉検出手段3
の検出結果を受けてパイプラインのインタロックを行わ
せるインタロック手段4とを設け、レジスタ干渉を検出
するデコード・ステートではレジスタ干渉待ち合わせの
ためのインタロックは行わず、デコード・ステートに続
くパイプライン処理ステートにおいてレジスタ干渉待ち
合わせのためのインタロックを行うように構成したもの
である。
【0030】本発明の請求項2の発明は、請求項1の発
明において、レジスタ更新を行う命令処理中に諸回路に
より計算された結果を格納するパイパス・レジスタ5を
備え、命令コードより得られたアドレス計算に必要な情
報とアドレス情報保持手段1に保持されたアドレス計算
に必要な情報から選択された出力により、パイパス・レ
ジスタ5を選択しアドレス計算を行うようにしたもので
ある。
【0031】本発明の請求項3の発明は、請求項1また
は請求項2の発明において、レジスタ更新を指示するレ
ジスタ、バイパス可能を指示するレジスタ、バイパス・
データを保持するバイパス・レジスタの番号を指定する
レジスタ、書込みレジスタ番号を指定するレジスタを
大の演算パイプライン処理を行った時のパイプライン・
ステート数に対応した数だけ設け、アドレス計算時のレ
ジスタ干渉インタロックおよびバイパス制御を行うよう
に構成したものである。
【0032】本発明の請求項4の発明は、請求項1,2
または請求項3の発明において、アドレス計算に必要な
情報として、命令コードより、アドレス計算に用いるベ
ース・レジスタ指定番号、インデックス・レジスタ指定
番号、ディスプレースメント部およびアドレス加算器入
力制御情報を得るようにしたものである。
【0033】
【作用】本発明の請求項1の発明においては、アドレス
情報保持手段1に、命令コードより得たアドレス情報を
保持させ、選択手段3により、命令コードより得られた
アドレス情報もしくはアドレス情報保持手段に保持され
た情報を選択してレジスタ干渉を検出する。すなわち、
アドレス情報保持手段で命令コードより得られたアドレ
ス情報を保持し、デコード・ステートに続くパイプライ
ン処理ステートで、レジスタ干渉検出を行う。これによ
り、デコード・ステートに続くパイプライン処理ステー
トにおいてインタロックを行うことができる。 ここで、
デコード・ステートのリリースで制御されるレジスタの
数に比べ、デコード・ステートに続くパイプライン処理
ステートのリリースで制御される数は極めて少ない。し
たがって、レジスタ干渉検出手段3によるレジスタ干渉
検出時、ラッチアップされるレジスタの数を少なくする
ことができ、従来技術においてクリティカル・パスとな
っていたロード数を飛躍的に減少させることができる。
【0034】本発明の請求項2の発明においては、命令
コードより得られたアドレス計算に必要な情報とアドレ
ス情報保持手段1に保持されたアドレス計算に必要な情
報から選択された出力により、パイパス・レジスタ5を
選択しアドレス計算を行うようにしたので、請求項1の
発明においてバイパス制御時、アドレス計算を行うこと
が可能となり、請求項1と同様の効果をうることができ
る。
【0035】本発明の請求項3の発明においては、、請
求項1または請求項2の発明において、レジスタ更新を
指示するレジスタ、バイパス可能を指示するレジスタを
最大の演算パイプライン処理を行った時のパイプライン
・ステート数に対応した数だけ設け、アドレス計算時の
レジスタ干渉インタロックおよびバイパス制御を行うよ
うに構成したので、演算パイプラインの数に対応したレ
ジスタ干渉インタロックおよびバイパス制御を行うこと
ができる。
【0036】本発明の請求項4の発明においては、請求
項1,2または請求項3の発明において、アドレス計算
に必要な情報として、命令コードより、アドレス計算に
用いるベース・レジスタ指定番号、インデックス・レジ
スタ指定番号、ディスプレースメント部およびアドレス
加算器入力制御情報を得るようにしたので、請求項1と
同様の効果をうることができる。
【0037】
【実施例】図2は本発明の実施例を示す図であり、同図
は図11に示した制御回路601の内部構成を示してい
る。同図において、図12の従来例と同一のものには同
一の符号が付されており、702〜705はセレクタ8
03の出力と図11に示したレジスタ書き込み番号を指
示するレジスタ620〜623の出力を比較する比較
器、+608〜+610は図11に示した汎用レジスタ
書き込みを示すビットを保持するレジスタ608〜61
1の出力信号、−612〜−615は図11に示したバ
イパス可能であることを示すビットを保持するレジスタ
612〜615の出力の否定信号、+612〜+615
は上記レジスタ612〜615の出力信号、+616〜
+619は図11に示したバイパス・データが保持され
るレジスタを指示するレジスタ616〜619の出力信
号である。
【0038】706〜709は、図12の従来例と同
様、レジスタ干渉検出回路であり、その出力は、それぞ
れ、パイプラインの先行命令のA,T,B,Eステート
とレジスタ干渉を起こしていることを示す。710〜7
13は、図12の従来例と同様、適切なバイパス・レジ
スタ番号を選択するためのセレクタ、714は図11に
示したセレクタ630を制御する制御信号624を出力
するデコーダである。
【0039】801はデコード・ステートおよびその次
のステートでレジスタ干渉を起こしたことを検出した信
号を保持するレジスタ、802,803はレジスタ80
1の出力により切り換えられるセレクタ、804はデコ
ーダ701により生成されたベース・レジスタ番号71
7をデコード・ステートに続くステートの間保持するレ
ジスタ、805はデコーダ701が生成するベース・レ
ジスタを使用することを示す信号715をデコード・ス
テートに続くステートの間保持するレジスタである。
【0040】セレクタ802,803はベース・レジス
タ番号IB、ベース・レジスタ使用指示信号を選択する
セレクタであり、レジスタ801の保持信号がオフであ
れば、デコーダ701の出力がセレクタ802,803
により選択され、また、レジスタ801の保持信号がオ
ンであれば、レジスタ805,804の出力がセレクタ
802,803により選択される。
【0041】セレクタ802,803の出力は、レジス
タ干渉の検出回路702〜709、バイパス・レジスタ
の選択回路710〜713、アドレス加算器の入力制御
信号生成回路714に入力される。また、セレクタ80
3の出力はベース・レジスタ番号IBとして、図11に
示すレジスタ・スタック401の索引に用いられる。8
06は、命令レジスタ上の命令がバリッドであることを
示す信号の否定信号−D VALID、レジスタ以外の
干渉条件を示す信号+INTLK ORが全てオフ
になるとデコード・ステートが終了したことを示す信号
+D RELEASEを出力する論理積回路、807は
論理積回路806の出力信号+D RELEASEとマ
ルチフロー命令の最後のフローであることを示す+EN
OP信号との論理積をとり、命令レジスタ更新を示
す信号626を出力する論理積回路である。ここで、マ
ルチフロー命令とは、2回デコードサイクルを必要とす
る命令をいう。例えば、ロード命令は、あるメモリアド
レスからデータをフェッチする命令であり、アドレス計
算は1回で済みデコードサイクルは一回ですむ。これに
対し、ムーブ命令は、あるメモリアドレスからあるメモ
リアドレスへと、必ず2回デコードサイクルが必要とな
る。このような命令をマルチフロー命令という。また、
808,809は論理積回路であり、+D RELEA
SE信号とレジスタ干渉検出回路706〜709の出力
により、レジスタ801をセットし、以後、レジスタ干
渉検出回路706〜709の出力により、レジスタ80
1のセット状態を保持する。
【0042】なお、図2にはベース・レジスタに関する
デコード・ステートのインタロックおよびバイパス部を
示したが、インデックス・レジスタについても同様な回
路が設けられている。同図において、レジスタ801が
オフのとき、セレクタ803はデコーダ701が出力す
るベース・レジスタ番号717を選択して、比較器70
2〜705に与える。比較器702〜705は、レジス
タ620〜623(図11)に保持されたレジスタ書き
込み番号とセレクタ803の出力とを比較し、一致する
と一致検出信号を出力する。
【0043】レジスタ干渉検出回路706は、ベース・
レジスタ使用命令であることを示す信号715がオンで
あり、また、比較器702が一致検出信号を出力し、か
つ、Aステートのレジスタ書き込み信号+608と、A
ステートのバイパス可能信号の否定−612とがオンで
あるとき出力を発生する。この出力はデコード・ステー
トで先行命令のAステートとレジスタ干渉を起こしてい
ることを示しており、レジスタ干渉検出回路706の出
力はゲート808,809に与えられ、レジスタ801
をセットする。
【0044】レジスタ801がセットされることによ
り、以降、セレクタ802,803は、ベース・レジス
タを使用することを示す信号715、ベース・レジスタ
番号717をそれぞれ保持するレジスタ805,804
の出力を選択する。一方、論理積回路806は、命令レ
ジスタ上の命令がバリッドであることを示す信号の否定
信号−D VALID、レジスタ以外の干渉条件を示す
信号+INTLK ORがオフになると、デコード
・ステートが終了したことを示す信号+D RELEA
SEを出力し、デコード・ステートを終了させる。
【0045】また、論理積回路807は論理積回路80
6の出力信号+D RELEASEとマルチフローの最
後のフローであることを示す+END OP信号と論理
積をとり、命令レジスタ更新を示す信号626を出力す
る。図3は本発明におけるデコード・ステートのインタ
ロック信号およびアドレス加算器入力レジスタの更新制
御信号を生成する回路の実施例を示す図であり、同図は
図2のレジスタ801の出力信号+801、+D RE
LEASE等をその入力として、アドレス加算器の入力
レジスタ更新を制御する信号901、Aステート終了を
制御する信号902および図2に示す+INTLK
OR信号を生成する回路を示している。
【0046】同図において、+INTLK ORは
Aステートのインタロック要因を示す信号、+801は
デコード・ステートおよびその次のステートでレジスタ
干渉を起こしたことを検出した信号を保持するレジスタ
801(図2)の出力信号、+D RELEASEはデ
コード・ステート終了を示す信号、+A VALIDは
Aステートのバリッド信号、911,912,914は
論理和回路、913は論理積回路、901はアドレス加
算器の入力レジスタ更新を制御する信号、+INTLK
ORはデコード・ステートのインタロックを示す
信号である。同図において、レジスタ801の出力信号
+801は論理和回路911において、+INTLK
OR信号と論理和され、論理積回路913におい
て、ハリッド信号+A VALIDと論理積がとられ
る。論理積回路913はAステート終了を制御する信号
902を出力するとともに、その出力は、論理和回路9
14において、他のデコード・ステートのインタロック
要因と論理和がとられて+INTLK ORを出力
し、図2に示す論理積回路806の入力となる。
【0047】また、デコード・ステートの終了を示す+
RELEASE信号とレジスタ801の出力+80
1は論理和回路912において論理和が取られ、アドレ
ス加算器の入力レジスタ更新を制御する信号901を出
力する。論理和回路912の出力901がオンのときア
ドレス加算器の入力レジスタは更新され、オフのときそ
の更新は抑止される。
【0048】図4は図2におけるアドレス加算器入力選
択制御信号624を生成するデコーダ714の実施例を
示す図であり、710〜713は図2におけるセレクタ
710〜713の出力であるバイパス・レジスタ番号を
示す2ビットの信号、802は図2に示すセレクタ80
2の出力であり、ベース・レジスタを使用することを指
示する信号、1001は論理和回路、1002は論理積
回路、624は図11に示すセレクタ630を切り換え
る3ビットの制御信号である。
【0049】同図において、バイパス・レジスタ番号を
示す2ビットの信号710〜713は論理和回路100
1に与えられ、制御信号624の下位2ビットとなり、
また、ベース・レジスタを使用することを指示する信号
802は論理積回路1002に与えられ、論理和回路1
001の否定出力と論理積が取られ、制御信号624の
上位1ビットの信号となる。したがって、バイパスが行
われず、かつ、ベース・レジスタをアドレス加算に使用
するのであれば制御信号624は2進「100」とな
り、図11において、ベース・レジスタ501の出力が
アドレス加算器504に入力される。また、バイパス可
能である場合、例えばレジスタ712の出力がバイパス
・レジスタ605を指示する2進「01」であれば、制
御信号624は2進「001」となり、図11におい
て、ベース・レジスタ501の代わりにバイパス・レジ
スタ605の出力がアドレス加算器504の入力にな
る。
【0050】図5は上記実施例の動作を示すタイム・チ
ャートであり、同図により本実施例の動作を説明する。
同図において、命令1は汎用レジスタ1を更新する命
令、命令2はベース・レジスタに汎用レジスタ1を使用
する命令、命令3はベース・レジスタに汎用レジスタ2
を使用する命令である。
【0051】同図において、命令1はWステートで、演
算結果を保持するレジスタ509(図10)に汎用レジ
スタ1を更新するデータを出力する。一方、命令2は上
記したように汎用レジスタ1をベース・レジスタとして
使用する命令であり、Aステートでインタロックする。
すなわち、タイミング2で、図2におけるセレクタ80
2,803が信号715および信号717を選択し、比
較器702に、命令2がベース・レジスタを使用する命
令であることを示す信号715および命令2のベース・
レジスタ番号717を入力する。比較器702は命令1
のAステートのレジスタ書き込み番号を示す信号620
と命令2のベース・レジスタ番号717とを比較し、そ
の一致を検出する。また、図2のレジスタ804,80
5には、ベース・レジスタ番号、ベース・レジスタの使
用を示す信号が保持される。
【0052】図2のレジスタ干渉検出回路706は比較
器702が出力する一致検出信号と、命令1のAステー
トのレジスタ書き込みを指示する信号+608と命令1
のAステートのバイパス可能を示す信号612の否定信
号との論理積をとり、この出力によりレジスタ801を
セットする。また、バイパス可能を示す信号612がオ
フであることからセレクタ710ではその入力のバイパ
ス・レジスタ番号+616が選択されず、セレクタ80
2の出力によりデコーダ714の出力624は図11の
ベース・レジスタ501がアドレス加算器504の入力
になるように指示する。
【0053】タイミング3では、レジスタ801の信号
がオンであることから、図3に示す論理積回路913の
出力により、命令2はAステートでインタロックし、ま
た、論理和回路914の出力+INTLK ORが
オンになるので、命令3はデコード・ステートでインタ
ロックする。また、タイミング2でセットされた図2の
レジスタ804,805の内容は保持される。
【0054】一方、レジスタ801の信号がオンである
からセレクタ802,803はレジスタ805,804
の出力を選択し、命令1のTステートの信号と比較器7
03で比較され、レジスタ干渉検出回路707により干
渉が検出され、再びレジスタ801をセットする。以下
同様に、タイミング4では比較器704、レジスタ干渉
検出回路708の出力により、タイミング5では比較器
705、レジスタ干渉検出回路709の出力により、レ
ジスタ801がセットされる。
【0055】レジスタ801がオンの間は、前記したよ
うに図11のアドレス加算器504の入力レジスタ50
1の更新はイネーブルされ、ベース・レジスタ番号IB
はレジスタ804の内容が選択される。タイミング6で
は、演算結果を保持するレジスタ509(図10)の内
容がレジスタ・スタック401の中をバイパスしてレジ
スタ501にセットされる。
【0056】また、図2にはベース・レジスタ番号IB
とWステートの情報を比較する回路は存在しないので、
タイミング6ではレジスタ801をセットする信号は生
成されない。タイミング7ではレジスタ801の信号が
オフになったため、ベース・レジスタ番号IBは、セレ
クタ803により選択された命令レジスタの内容から切
りだされた信号717が使用される。
【0057】図6は上記実施例において、バイパス・ケ
ースにおける動作を示すタイム・チャートであり、同図
により本実施例の動作を説明する。同図において、命令
1はロード命令で汎用レジスタ1を更新する命令、命令
2はベース・レジスタに汎用レジスタ1を使用する命
令、命令3はベース・レジスタに汎用レジスタ2を使用
する命令である。
【0058】命令1はロード命令であり、タイミング4
でバイパス・データをバイパス・レジスタ605にセッ
トする。バイパス・レジスタ番号を指示するレジスタ6
16〜618は2ビットのレジスタであり、図6に示す
ようにその内容が2進数「01」のときバイパス・レジ
スタ605を指定する。バイパス可能を示すレジスタ6
12〜614はタイミング4でオンとなりバイパス・レ
ジスタが使用可能になったことを示す。
【0059】タイミング2,3までは図5において説明
したのと同様に動作し、タイミング4において、バイパ
ス可能を示すレジスタ614がオンであることから図2
のレジスタ干渉検出回路708の出力はオフとなり、タ
イミング5において、レジスタ801はオフとなる。ま
た、セレクタ712ではバイパス・レジスタ番号を指示
するレジスタ618の内容が選択され、制御信号624
は図11のセレクタ630がバイパス・レジスタ605
を指定するように生成される。
【0060】上記実施例によれば、レジスタ干渉検出回
路706〜709の出力がラッチ・アップすべきレジス
タはレジスタ801の1つだけとなり、従来技術におい
てクリティカル・パスとなっていたロード数を飛躍的に
減少させることができる。これに伴い、制御回路601
の回路数増加の制限が減じられるため、一般命令のパイ
プライン技術等の実現が容易となものとなり、計算シス
テムの性能向上に大きな効果がある。すなわち、前記し
た従来例の図12においては、ゲート706,707,
708,709の出力がゲート716の入力となってい
る。従って、ゲート706〜709の出力がD REL
EASE制御の論理に加わる。Dリリースで制御される
レジスタとしては、図11に示した命令レジスタ、図1
0に示したレジスタ501,502,503がある。ま
たその外、図示していないが、すべてのAステートで保
持すべき情報がある。 一方、Aリリースで制御されるレ
ジスタとしては、Tステートで保持すべき情報として図
10に示すレジスタ505がある。 そして、命令はDス
テートで命令レジスタの内容が解読され、全ての必要な
情報(後続のA,T,B,E,V,Wステートで必要と
なる情報)が生成される。これらの情報のうちでAステ
ートのみに必要な情報として、例えばアドレスモード、
記憶保護キー等の情報があり、これらの情報はTステー
トでは保持されない。 以上のように、全ての解読情報は
Dリリースで制御されてAステートへと渡され、その一
部がTステートへと渡され、またその一部がBステート
へと渡されていく。実回路においては、DリリースとA
リリースで制御されるレジスタの差は2倍にもなる。し
たがって、Dステートではレジスタ干渉のためのインタ
ロックを行わず、Dステートに続く次のステートでレジ
スタ干渉待ち合わせのためのインタロックを行うことに
より、ゲート706〜709の出力が1マシンサイクル
内に伝搬されるレジスタ数を飛躍的に減少させることが
できる。
【0061】また、 前記した図9に示したように演算
パイプライン処理用にステートVを追加した構成をとり
パイプライン処理を行う計算システムにおいては、図1
1におけるレジスタ書き込みを示すレジスタ608〜6
11、バイパス可能であることを示すレジスタ612〜
615、バイパス・レジスタ番号を示すレジスタ616
〜619、レジスタ書き込み番号を示すレジスタ620
〜623にVステート用の情報を保持するレジスタを追
加し、それらの出力を用いて図2における比較器702
〜705、レジスタ干渉検出回路706〜709、バイ
パス・レジスタ選択回路710〜713にVステート用
の回路を追加することが容易に可能となる。
【0062】図7は制御回路601を拡張した実施例を
示す図であり、同図においては、図2に示した実施例に
対して、比較器1301、レジスタ干渉検出器130
2、バイパス・レジスタ選択回路1303がVステート
用に追加されており、その他の構成は図2の実施例と同
様である。同図において、1304はレジスタ623
(図11)の内容を受けてVステートで保持するレジス
タ(図示せず)の内容であり、レジスタ書き込み番号を
指示する。また、1305、1306、1307も同様
にレジスタ611,615,619(図11)の内容を
受けてVステートで保持するレジスタ(図示せず)の内
容である。
【0063】図7の実施例の動作はVステートにおいて
レジスタ干渉を検出する機能が追加されている点を除
き、基本的に図2の実施例のものと同様である。また、
以上の回路追加は最大の演算パイプライン処理を行った
時のパイプライン・ステート数増加分まで可能である。
なお、上記実施例においては、デコード・ステートとア
ドレス計算ステートを分離した計算システムについての
制御方式を示したが、本発明は本質的に命令デコード・
ステートでのクリティカル・パス軽減に効果を上げるも
のであり、他のパイプライン構成をとる計算システムに
おいても同様な制御方式を採用することができる。
【0064】
【発明の効果】以上説明したことから明らかなように、
本発明においては、デコード・ステートではレジスタ干
渉待ち合わせのためのインタロックは行わず、デコード
・ステートに続くパイプライン処理ステートにおいてイ
ンタロックを行うようにしたので、レジスタ干渉検出手
段によるレジスタ干渉検出時、1つのレジスタだけをラ
ッチ・アップするだけでよく、従来技術においてクリテ
ィカル・パスとなっていたロード数を飛躍的に減少させ
ることができる。
【0065】また、これに伴い、制御回路の回路数増加
の制限が減じられるため、一般命令の演算パイプライン
の実現等が容易となり計算システムの性能向上に資すと
ころが大である。
【図面の簡単な説明】
【図1】本発明の原理図である。
【図2】本発明の実施例を示す図である。
【図3】インタロック信号を生成する回路の実施例を示
す図である。
【図4】アドレス加算器入力選択制御信号生成回路の実
施例を示す図である。
【図5】実施例の動作を示すタイム・チャートである。
【図6】実施例の動作(バイパス・ケース)を示すタイ
ム・チャートである。
【図7】制御回路を拡張した実施例を示す図である。
【図8】パイプライン命令の実行処理の様子を示す図
(その1)である。
【図9】パイプライン命令の実行処理の様子を示す図
(その2)である。
【図10】パイプライン処理における各ステートの主な
処理を示す図である。
【図11】アドレス加算器の制御部の基本構成を示す図
である。
【図12】従来例を示す図である。
【符号の説明】
401 レジスタ・スタック 411 命令バッファ 412 命令レジスタ 504 アドレス加算器 501 ベース・レジスタ 502 インデックス・レジスタ 601 制御部 604,605,606,607 バイパス・レジス
タ 503,505 602,603,608,609,6
10,611,612 613,614,615,616 617,618,6
19,620,621 622,623,801 804 805
レジスタ 630,631,710,712,713,802,8
03 セレクタ 702,702,704,705 比較器、 706,707,708,709 レジスタ
干渉検出回路 714 デコーダ

Claims (4)

    (57)【特許請求の範囲】
  1. 【請求項1】 パイプライン処理を行う情報処理装置に
    おいて、 デコード・ステートにおいて命令コードよりアドレス計
    算に必要な情報を得てその情報を保持するアドレス情報
    保持手段(1) と、 命令コードより得られたアドレス計算に必要な情報と、
    アドレス情報保持手段(1) の出力を選択する選択手段
    (2) と、 パイプラインの先行命令の各ステートの情報と選択手段
    (2) の出力によりレジスタ干渉を検出するレジスタ干渉
    検出手段(3) と、 レジスタ干渉検出手段(3) の検出結果を受けてパイプラ
    インのインタロックを行わせるインタロック手段(4) と
    を設け、レジスタ干渉を検出する デコード・ステートではレジス
    タ干渉待ち合わせのインタロックを行わず、デコード・
    ステートに続くパイプライン処理ステートにおいて、レ
    ジスタ干渉待ち合わせのためのインタロックを行うこと
    を特徴とするパイプライン処理を行う情報処理装置。
  2. 【請求項2】 レジスタ更新を行う命令処理中に諸回路
    により計算された結果を格納するバイパスレジスタ(5)
    を備え、 命令コードより得られたアドレス計算に必要な情報とア
    ドレス情報保持手段(1) に保持されたアドレス計算に必
    要な情報から選択された出力により、バイパス・レジス
    タ(5) を選択してアドレス計算を行うことを特徴とする
    請求項1のパイプライン処理を行う情報処理装置。
  3. 【請求項3】 レジスタ更新を指示するレジスタ、バイ
    パス可能を指示するレジスタ、バイパス・データを保持
    するバイパス・レジスタの番号を指定するレジスタ、書
    き込みレジスタ番号を指定するレジスタを最大の演算パ
    イプライン処理を行った時のパイプライン・ステートに
    対応した数だけ設け、アドレス計算時のレジスタ干渉イ
    ンタロックおよびバイパス制御を行うことを特徴とする
    請求項1のパイプライン処理を行う情報処理装置。
  4. 【請求項4】 アドレス計算に必要な情報として、命令
    コードより、アドレス計算に用いるベース・レジスタ指
    定番号、インデックス・レジスタ指定番号、ディスプレ
    ースメント部、および、アドレス加算器入力制御情報を
    得ることを特徴とする請求項1,2または請求項3のパ
    イプライン処理を行う情報処理装置。
JP19416192A 1992-07-21 1992-07-21 パイプライン処理を行う情報処理装置 Expired - Fee Related JP2919184B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP19416192A JP2919184B2 (ja) 1992-07-21 1992-07-21 パイプライン処理を行う情報処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP19416192A JP2919184B2 (ja) 1992-07-21 1992-07-21 パイプライン処理を行う情報処理装置

Publications (2)

Publication Number Publication Date
JPH0635699A JPH0635699A (ja) 1994-02-10
JP2919184B2 true JP2919184B2 (ja) 1999-07-12

Family

ID=16319943

Family Applications (1)

Application Number Title Priority Date Filing Date
JP19416192A Expired - Fee Related JP2919184B2 (ja) 1992-07-21 1992-07-21 パイプライン処理を行う情報処理装置

Country Status (1)

Country Link
JP (1) JP2919184B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003058367A (ja) * 2001-08-17 2003-02-28 Victor Co Of Japan Ltd 演算装置

Also Published As

Publication number Publication date
JPH0635699A (ja) 1994-02-10

Similar Documents

Publication Publication Date Title
US5404552A (en) Pipeline risc processing unit with improved efficiency when handling data dependency
EP0378830B1 (en) Method and apparatus for handling multiple condition codes as for a parallel pipeline computer
US5949996A (en) Processor having a variable number of stages in a pipeline
JP2911278B2 (ja) プロセッサ
US5123108A (en) Improved cpu pipeline having register file bypass and working register bypass on update/access address compare
JPH0810430B2 (ja) 情報処理装置
JPH0786845B2 (ja) データ処理装置
US4967350A (en) Pipelined vector processor for executing recursive instructions
US4739470A (en) Data processing system
US5274777A (en) Digital data processor executing a conditional instruction within a single machine cycle
JPH01177127A (ja) 情報処理装置
JPH0139132B2 (ja)
US5253349A (en) Decreasing processing time for type 1 dyadic instructions
US5349671A (en) Microprocessor system generating instruction fetch addresses at high speed
JPH04127237A (ja) 遅延分岐命令の制御方式
JP2002055814A (ja) 適切な発行先に命令を発行する命令発行装置
JPH08221273A (ja) 命令レベルの並列処理制御方法およびプロセッサ
JP2919184B2 (ja) パイプライン処理を行う情報処理装置
US5504870A (en) Branch prediction device enabling simultaneous access to a content-addressed memory for retrieval and registration
JP2916605B2 (ja) コンピュータ用プロセツサ
JPH04215129A (ja) 連続指令実行方法及び装置
JP2928680B2 (ja) 複合条件処理方式
JP2553728B2 (ja) 演算装置
US4935849A (en) Chaining and hazard apparatus and method
JP2944563B2 (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: 19990413

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

Free format text: PAYMENT UNTIL: 20080423

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20090423

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20090423

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20100423

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20110423

Year of fee payment: 12

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

Free format text: PAYMENT UNTIL: 20110423

Year of fee payment: 12

LAPS Cancellation because of no payment of annual fees