JPH0520064A - パイプライン制御方式 - Google Patents

パイプライン制御方式

Info

Publication number
JPH0520064A
JPH0520064A JP17569691A JP17569691A JPH0520064A JP H0520064 A JPH0520064 A JP H0520064A JP 17569691 A JP17569691 A JP 17569691A JP 17569691 A JP17569691 A JP 17569691A JP H0520064 A JPH0520064 A JP H0520064A
Authority
JP
Japan
Prior art keywords
instruction
register
state
cycles
pipeline
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
JP17569691A
Other languages
English (en)
Other versions
JP2636566B2 (ja
Inventor
Gakuo Asakawa
岳夫 浅川
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 JP3175696A priority Critical patent/JP2636566B2/ja
Publication of JPH0520064A publication Critical patent/JPH0520064A/ja
Application granted granted Critical
Publication of JP2636566B2 publication Critical patent/JP2636566B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Abstract

(57)【要約】 【目的】 本発明は、パイプライン処理を行う情報処理
装置における、パイプライン制御方式に関し、レジスタ
干渉時の命令の処理を高速に実行する。 【構成】 複数のマシンサイクルからなる演算実行ステ
ートを備え、演算の実行をパイプライン処理する情報処
理装置であって、Mサイクルで演算実行ステートを終了
する命令の直後に、Nサイクルで演算実行ステートを終
了する命令が該パイプラインに投入されたときで、上記
M>Nであると、該Nサイクルで演算実行ステートを終
了する命令を強制的にMサイクルで演算実行を行う制御
手段を設けた情報処理装置において、上記2つの命令間
で書き込みレジスタと読み出しレジスタの間に干渉が生
じたとき、上記Mサイクルで演算実行を行う制御手段を
抑止する。又、上記Nサイクル命令がレジスタ間移動命
令であって、該2命令間のレジスタ干渉が検出されたと
き、Bステートインターロック信号を抑止して、Mサ
イクルで実行する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、パイプライン処理を行
う情報処理装置において、先行命令と後続命令との間に
レジスタ干渉があることを検出したときの命令処理を高
速に実行するための処理方式に関する。
【0002】パイプライン処理とは、一つの命令処理を
複数の処理(ステート)に分割し、複数の命令処理を並
列に実行する処理方式である。図5に6段で構成される
パイプライン処理の例を示す。分割された複数の処理
は、各々ステートという名前で区別される。図5におい
ては、該パイプライン処理は、Dステート,Aステー
ト,Tステート,Bステート,Eステート,Wステート
の各ステートを順次通過することにより処理される。
【0003】ここで、Dステートでは命令のデコード,
Aステートではアドレス計算,Tステートではアドレス
変換バッファ(TLB)の索引,Bステートではキャッ
シュのリード,Eステートでは演算の実行,Wステート
では演算結果のレジスタへの格納が行われる。
【0004】複数の命令処理間で同一のステートがセッ
トされることはない。また各ステートで行われる処理に
用いられる情報はパイプラインタグと呼ばれ、処理が進
むに従い、順次シフトされるシフトレジスタで構成され
る。
【0005】1ステートが処理される時間を1マシンサ
イクルと呼ぶが、理想的にパイプライン処理が動作すれ
ばN個の命令がNマシンサイクルで終了するように見え
るのである。
【0006】然して、該パイプライン処理においては、
先行命令と後続命令との間にレジスタ干渉を生じること
があり、このような場合でも、該N個の命令がNマシン
サイクルで終了するように制御できることが要求され
る。
【0007】
【従来の技術】図6〜図9は、従来のパイプライン処理
方式を説明する図であり、図6はパイプラインインター
ロックにより、パイプライン処理が妨げられる場合の動
作タイムチャートを示し、図7は演算ステートをパイプ
ライン処理する場合の動作タイムチャートを示し、図8
は演算ステートをパイプライン処理する命令と、演算ス
テートをパイプライン処理しない命令とが続いた場合の
動作タイムチャートを示し、図9はVステート付き命令
と、Vステート可変命令との間でレジスタ干渉が生じた
場合の動作タイムチャートを示している。
【0008】パイプライン処理を行う情報処理装置にお
いては、パイプライン処理を理想的に動作させることを
妨げる要因としてパイプラインインターロックが存在す
る。その代表的なものとして演算が1サイクルで終わら
ないためのEステートインターロックがある。浮動小数
点命令等の処理では図6に示すように1サイクル毎に命
令を処理することができない。従って、図示されている
如くに、Eステートインターロックがかかると、後続す
る命令に、Bステートインターロック,Tステートイン
ターロック,Aステートインターロック,Dステートイ
ンターロックがかかるようになり、図6に示したよう
に、例えば、6番目の命令開始が図5に比べて1サイク
ル遅れてしまうことになる。
【0009】然しながら、高速性を要求される情報処理
装置においては、演算ステートをパイプライン化するこ
とにより、1サイクル毎の命令処理を実現している。図
7の例では、演算ステートをEステート,Vステートに
分割することで、図示されているように、1サイクル毎
のパイプライン処理を実現している。
【0010】前記技術においても、なお、上記Vステー
ト付き命令(命令1)と,Vステートなし命令(命令
2)を続けて実行した場合には、ロスタイムを生じてし
まう。図8にこの例を示す。この例では、命令1がVス
テート付き命令で、命令2がVステートなし命令である
ため、Bステートインターロックにより、Wステートが
重ならないように制御している。
【0011】その結果、図示されている如くに、第6番
目の命令で、命令の開始が1サイクル遅れてしまうこと
になる。このようなケースにおいて、ロスタイムを減じ
るために、Vステート付き命令の直後のVステートなし
命令をVステート付き命令として実行するための技術
が、本願出願人が先願している特開平2−069825
号公報に開示されている。
【0012】上記技術においては、図8の命令1がVス
テート付き命令であることから命令2をVステート付き
命令として実行させることにより理想的なパイプライン
動作を行わせることができる。さらに該技術において
は、Vステートを付けるか付けないかを可変にする(但
し、浮動小数点データのロード系命令)こととし、その
命令の前にVステートなし命令が実行された場合Vステ
ート可変命令をVステートなし命令として実行すること
によりロスタイムを減じることが述べられている。
【0013】
【発明が解決しようとする課題】上記技術においては、
Vステートを可変に付けることにより、その命令の前後
にVステートなし命令が実行された場合のロスタイムを
減じることをその目的としているが、Vステート可変の
命令とその直前のVステート付き命令との間にレジスタ
干渉が生じた場合には、なおロスタイムが生じてしま
う。
【0014】この例を図9(a) に示しているが、本図に
示されるように、上記技術によればAD命令の直後のL
PDR命令(ロードポジティブレジスタ命令:ロード系
命令)は無条件にVステート付き命令として実行される
が、AD命令の結果レジスタをLPDR命令で読み出そ
うとする(即ち、AD命令とLPDR命令との間でレジ
スタ干渉がある)と、AD命令の結果をバイパスするこ
とのできるタイミングまでLPDR命令はBステートで
インターロックしてしまう。その結果、その次のAR命
令の実行が遅らされてしまう。図9(b) に、上記LPD
R命令がVサイクルなし命令として実行されたケースを
示すが、AR命令の実行は、上記図9(a) の場合に比べ
て1サイクル速くなっている。
【0015】上記図9(b) の例では、後のAR命令がV
ステートなし命令として処理されるため、図9(a) のA
R命令が、図9(b) のAR命令に比べて1サイクル遅く
なっているが、これはAR命令が汎用レジスタを更新す
る命令であるため、容易に、Vステート付き命令とする
ことができないためである。
【0016】即ち、上記Vステート付き命令は、前述の
ように、演算サイクルが1サイクルで終わらない浮動小
数点演算命令を対象としたものである為、汎用レジスタ
を更新対象とする、上記AR命令等において、該Vステ
ート付き命令として動作するように構成しようとする
と、該汎用レジスタは、浮動小数点レジスタと異なり、
演算のオペランドのみでなく、メモリアクセスのための
アドレス計算にも使用されるため、Vステートを付ける
ことによりレジスタの更新サイクルを遅らせると、アド
レス計算回路へのデータのバイパス手段等の構成が非常
に複雑となってしまうのである。
【0017】以上の従来技術例においては、演算実行ス
テートをE,Vステートと2つのステートとして記述し
てきたが、これをさらにE,V1,V2,V3,・ ・ とす
ることは、物量の追加が許される限り比較的容易に実現
しうる。
【0018】そのような構成をとる装置においては、上
記技術に示されるように、浮動小数点レジスタへのロー
ド系(LPDR命令)の命令のみを演算実行ステート可
変命令とするのでなく、さらに多くの一般的な浮動小数
点命令が演算実行ステート可変命令と成りうるため、図
9(a) のようなケース、即ち、先行命令がVステート付
き命令であって、該先行命令と該Vステート可変命令
(LPDR命令)にレジスタ干渉があると、後続のVス
テート付きにできない命令(AR命令)の処理時間が長
くなるというケースは、更に、多く生じることになる。
【0019】又、図10は、浮動小数点ロード系命令の
問題点を説明する図であり、(a) はBステートインター
ロックが存在している場合を示し、(b) はロード系命令
と前後の命令間でレジスタ干渉がある場合の問題点を示
している。
【0020】上記技術においては、前述のように、Vス
テートを可変に付けることによりその命令の前後にVス
テートなし命令が実行された場合のロスタイムを減じる
ことをその目的としているが、Vステート可変の命令と
その直前のVステート付き命令との間にレジスタ干渉が
生じた場合には、本図 (a)から明らかなように、なおロ
スタイムが生じてしまう。
【0021】即ち、図10(a) に示されるように、上記
技術によればAD命令の直後のLDR命令(長精度レジ
スタレジスタ間移動命令)は、無条件にVステート付き
命令として実行されるが、AD命令の結果レジスタをL
DR命令で読みだそうとする(即ち、AD命令と、続
く、LDR命令との間にレジスタ干渉がある)と、該A
D命令の結果をバイパスすることのできるタイミングま
でLDR命令はBステートでインターロックしてしま
う。その結果、その次のAD命令の実行がTステートで
インターロックするため遅らされてしまう。
【0022】そこで、例えば、(b) 図に示したように、
該LDR命令のBステートインターロックを抑止するよ
うに制御すると、該LDR命令と、後続しているAD命
令との間にレジスタ干渉があった場合、該LDR命令の
結果をバイパスすることのできるタイミングまで、後述
のAD命令はBステートでインターロックしてしまうと
いう問題が残る。
【0023】本発明は上記従来の欠点に鑑み、複数のマ
シンサイクルからなる演算実行ステートを設け、演算実
行をパイプライン処理するよう構成された情報処理装置
であって、M(=2)サイクルで演算実行ステートを終
了する命令の直後にN(=1)サイクルで演算実行ステ
ートを終了する命令がパイプラインに投入された場合に
M>NであればNサイクルで演算実行ステートを終了す
る命令を強制的にMサイクルで演算実行を行うようにす
る制御手段と、上記2命令間でレジスタ干渉を検出した
とき、Bステートインターロックを行う為のBステート
インターロック信号生成部を備えた情報処理装置におい
て、強制的なMサイクルの実行演算,或いは、Bステー
トインターロックによって生じる後続命令の実行時間を
遅れを解消することのできるパイプライン制御方式を提
供することを目的とするものである。
【0024】
【課題を解決するための手段】図1は、本発明の一実施
例を示した図であり、図2,図3は、本発明の他の実施
例を示した図であって、図1は先行命令との間にレジス
タ干渉があった場合のVステート可変命令のVステート
を抑止する例を示し、図2は、レジスタレジスタ間移動
命令(LDR命令)と先行命令との間でレジスタ干渉が
あった場合のBステートインターロック動作を抑止する
例を示し、図3は、レジスタレジスタ間移動命令(LD
R命令)と、その先行命令との間でレジスタ干渉があ
り、該レジスタレジスタ間移動命令(LDR命令)と、
その後続命令との間にもレジスタ干渉があった場合の、
該先行命令の演算結果を後続命令へのバイパスする例を
示している。
【0025】上記の問題点は下記の如くに構成したパイ
プライン制御方式によって解決される。 (1) 複数のマシンサイクルからなる演算実行ステート
(E,V) を設けて、演算実行をパイプライン処理するよう
構成された情報処理装置であって、Mサイクルで演算実
行ステートを終了する命令の直後に、Nサイクルで演算
実行ステートを終了する命令がパイプラインに投入され
た場合に、M>NであればNサイクルで演算実行ステー
トを終了する命令を強制的にMサイクルで演算実行を行
うようにする制御手段 802を設けた情報処理装置におい
て、前記2命令間で書き込みレジスタと読み出しレジス
タの間に干渉が生じた場合には、前記制御手段 802にお
いて、Nサイクルで演算実行ステートを終了する命令を
Mサイクルで演算実行を行うようにすることを抑止する
ように制御する。
【0026】(2) 複数のマシンサイクルからなる演算実
行ステート(E,V) を設けて、演算実行をパイプライン処
理するよう構成された情報処理装置であって、Mサイク
ルで演算実行ステートを終了する命令の直後にNサイク
ルで演算実行ステートを終了する命令がパイプラインに
投入された場合にM>NであればNサイクルで演算実行
ステートを終了する命令を強制的にMサイクルで演算実
行を行うようにする制御手段 802と、上記2命令間でレ
ジスタ干渉を検出したとき、Bステートインターロック
信号生成部 806を備えた情報処理装置において、前期N
サイクル命令がレジスタレジスタ間移動命令であった
場合に、前記制御手段 802で、該2命令間の書き込みレ
ジスタと読み出しレジスタの間の干渉を検出したとき、
その情報、即ち、インターロック制御ビットを保持す
ると共に、該インターロック制御ビットに基づいて、
上記Bステートインターロック信号生成部 806で生成さ
れるBステートインターロック信号を抑止して、該レ
ジスタレジスタ間移動命令をMサイクルで実行するよ
うに制御する。
【0027】(3) 上記 (2)項の情報処理装置において、
上記レジスタレジスタ間移動命令と、その先行命令の
間でレジスタ干渉が生じ,且つ、上記レジスタレジスタ
間移動命令の後続命令が、上記レジスタレジスタ間移
動命令の結果レジスタを使用しようとしていることを
検出したとき、上記レジスタレジスタ間移動命令の先
行命令の演算結果を、上記レジスタレジスタ間移動命令
の後続命令へとバイパスする手段を設けて、上記レ
ジスタレジスタ間移動命令の後続命令では、上記バイ
パスされた結果レジスタ情報を用いて演算するように制
御する。
【0028】
【作用】本発明では、M(=2)サイクルで演算実行ス
テートを終了する命令の直後にN(=1)サイクルで演
算実行ステートを終了する命令がパイプラインに投入さ
れた場合に、M>Nであれば、Nサイクルで演算実行ス
テートを終了する命令を強制的にMサイクルで演算実行
を行うようにする制御手段 802を備えた情報処理装置に
おいて、上記2命令間で書き込みレジスタと読み出しレ
ジスタの間に干渉が生じた場合には、上記制御手段 802
において、Nサイクルで演算実行ステートを終了する命
令をMサイクルで演算実行を行うようにすることを抑止
するようにする。
【0029】図1のようなケースにおいて、AD命令
(命令1)とLPDR命令(命令2)の間でレジスタ干
渉が検出された場合には、制御手段 802において、演算
実行ステート可変命令であるLPDR命令(命令2)を
本来の最短演算実行サイクル、即ち、Eステートの1サ
イクルで実行を行うようにさせる。
【0030】従って、図9(b) に示したように、該LP
DR命令(命令2)に続く、AR命令の実行サイクル
を、図9(a) に示した従来方式に比較して、1サイクル
短縮することができる効果が得られる。
【0031】又、本発明では、図2に示したように、M
(=2)サイクルで演算実行ステートを終了する命令
(AD命令)の直後にN(=1)サイクルで演算実行ス
テートを終了する命令(LDR命令)がパイプラインに
投入された場合に、M>Nであれば、Nサイクルで演算
実行ステートを終了する命令を強制的にMサイクルで演
算実行を行うようにする制御手段 802を備えた情報処理
装置において、上記Nサイクル命令がレジスタレジスタ
間移動命令(LDR命令) であった場合に、前記2
命令間の書き込みレジスタと読み出しレジスタの間の干
渉を検出すると、その情報をインターロック制御ビット
として保持し、レジスタレジスタ間移動命令(LDR
命令)を先行命令(AD命令)とのレジスタ干渉によ
るBステートのインターロック信号発生手段 806を制御
して、該Bステートインターロック信号を生じさせず
に、Vステートを有するM(=2)サイクルで実行する
ようにしたものである。
【0032】又、レジスタレジスタ間移動命令(LDR
命令)とその先行命令(AD命令)の間でレジスタ干
渉が生じ、且つ、該レジスタレジスタ間移動命令(LD
R命令)の後続命令(AD命令)がレジスタレジスタ
間移動命令(LDR命令)の結果レジスタを使用しよ
うとした場合(即ち、レジスタ干渉があった場合)、図
3に示したように、制御手段 807において、上記記述の
保持された情報、即ち、インターロック制御ビットを
用いて、レジスタレジスタ間移動命令(LDR命令)
の先行命令の結果をレジスタレジスタ間移動命令(LD
R命令)の後続命令へとバイパスする手段を設け
て、結果的に、該レジスタレジスタ間移動命令(LDR
命令)の結果レジスタを使用するの同じ効果を得るよ
うにして、レジスタ干渉が発生した場合にも、Bステー
トインターロックを発生させることなく、且つ、M(=
2)サイクル命令の儘で、パイプライン処理の高速化を
図るようにしたものである。
【0033】
【実施例】以下本発明の実施例を図面によって詳述す
る。前述の図1は本発明の一実施例を示した図であり、
図2,図3は、本発明の他の実施例を示した図であり、
図4は、パイプライン処理の基本構成例を示したもので
ある。
【0034】本発明においては、複数のマシンサイクル
からなる演算実行ステート(E,V) を備え、演算の実行
を、例えば、E,Vステートにより、パイプライン処理
する情報処理装置であって、Mサイクルで演算実行ステ
ートを終了する命令の直後に、Nサイクルで演算実行ス
テートを終了する命令が該パイプラインに投入されたと
きで、上記M>Nであると、該Nサイクルで演算実行ス
テートを終了する命令を強制的にMサイクルで演算実行
を行う制御手段 802を設けた情報処理装置において、上
記2つの命令間で書き込みレジスタと読み出しレジスタ
の間に干渉が生じたとき、上記Mサイクルで演算実行を
行う制御手段 802を抑止する手段。又、上記Nサイクル
命令がレジスタレジスタ間移動命令(LDR命令)で
あって、該2命令間のレジスタ干渉が検出されたとき、
Bステートインターロック信号を抑止する信号(イン
ターロック制御ビット)を設けて、該Bステートイン
ターロック信号を抑止する信号で、上記Bステートイ
ンターロック信号発生手段 806で生成されるBステート
インターロック信号を抑止して、Mサイクルで実行す
るようにする手段。更に、上記レジスタレジスタ間移動
命令(LDR命令)と、その先行命令の間でレジスタ干
渉があり、該レジスタレジスタ間移動命令(LDR命
令)と後続命令との間にもレジスタ干渉があったと
き、上記Bステートインターロック抑止信号を用い
て、上記レジスタレジスタ間移動命令(LDR命令)
の先行命令の演算結果を、該レジスタレジスタ間移動命
令(LDR命令)の後続命令にバイパスする手段が
本発明を実施するのに必要な手段である。尚、全図を通
して同じ符号は同じ対象物を示している。
【0035】以下、図4,図1〜図3により、本発明の
パイプライン制御方式を説明する。本実施例では、パイ
プライン処理を簡単のために、6ステートもしくは7ス
テートで行うものとする。
【0036】各ステートの主な処理を図4に沿って説明
する。Dステートではオペコードがデコードされ、レジ
スタスタック(汎用レジスタGR,浮動小数点レジスタ
FRを含む)よりアドレス計算用のデータが読み出され
て、レジスタ701(ベースレジスタ),レジスタ70
2(インデックスレジスタ)にセットされる。
【0037】Aステートでは、該レジスタ701,70
2がアドレス加算器703により加算され、その結果が
有効アドレスとしてレジスタ704にセットされる。T
ステートでは、有効アドレスがTLB(変換索引緩衝機
構:前述のアドレス変換バッファ)により実アドレスに
変換され、レジスタ705にセットされる。
【0038】Bステートでは実アドレスによりLBS
(ローカルバッファストレージ:主記憶データのコピー
を保持し高速にアクセスできる)からデータが読みださ
れ、レジスタ706にセットされる。
【0039】Eステートでは、演算が実行され、結果が
レジスタ708にセットされる。Wステートでは、上記
の演算結果をレジスタスタックに書き込む。これらレジ
スタの内容はレジスタオペランドバス709により、レ
ジスタ707にセットされ演算器に送ることができる。
演算実行ステートが複数になる場合においては、必ず、
Wステートで演算結果がレジスタ708に格納されるよ
うに演算器は調整される。
【0040】図2に本発明の主要な制御部の一実施例を
示す。レジスタ801はAサイクルの命令コードを保持
するレジスタであり、その出力を受けて制御回路802
では、レジスタ803,804,805をセットする制
御信号を出力する。
【0041】レジスタ803は、処理される命令がレジ
スタックに書き込みを行うことを示すレジスタであり、
804は書き込みレジスタ番号を保持するレジスタであ
り、805は処理される命令の演算実行ステートのサイ
クル数(前述のM,N)を示すレジスタである。
【0042】該演算実行サイクル数レジスタ805の内
容はTステートで演算制御部に送られて、演算制御部に
所定の数の演算実行ステート処理を指示する。図1の例
では、命令1が演算実行ステートを2ステート(E,V
ステート)必要とする命令であることを示している。1
サイクル遅れて命令2が実行される。命令2のAステー
トでは、上記命令1の演算実行ステート数を示す、演算
実行サイクル数レジスタ805の内容を参照して、自命
令の演算実行ステート数が決定される。
【0043】すなわち、命令2が最短でも3つ以上の演
算実行ステートを必要とするような命令であるならばそ
の数を示すように,そうでなければ命令2と同じ2つの
演算実行ステート(前述のE,Vステート)数を示すよ
うに、該演算実行サイクル数レジスタ805の内容が設
定される。またその時に、上記レジスタ803,804
の内容,及び自命令の命令コードを保持するオペコード
レジスタ801の内容からデコードされたレジスタ読み
出し番号とから、書き込みレジスタと読み出しレジスタ
の間にレジスタ干渉があるかどうかがチェックされる。
【0044】該レジスタ干渉チェックの結果、レジスタ
干渉があったならば、命令2の最短の演算実行ステート
数を示すように演算実行サイクル数レジスタ805の内
容が設定される。このように、演算実行サイクル数レジ
スタ805の内容は、本発明においては、前命令の演算
実行ステート数,前命令の書き込みレジスタアドレス,
自命令の最短演算実行ステート数,自命令の読み出しレ
ジスタアドレスより最もロスタイムを少なくするように
決定される。
【0045】次に、図2,図3により、本発明の他の実
施例について説明する。図2に本発明による他の実施例
のタイムチャート及び制御回路部を示す。Aステートで
は、オペコードレジスタ801に設定されている命令の
オペコードをデコードして演算指令コード,ライトレ
ジスタアドレスを求め、それぞれ、演算指令コードレジ
スタと,ライトアドレスレジスタ804にセットする。
またレジスタ書き込みを制御するライト制御ビットを生
成して、ライト制御レジスタ803にセットする。
【0046】LDR命令のAサイクルでは、上記AD
命令のライトアドレスレジスタ804,ライト制御レジ
スタ803,及び、該LDR命令のオペコードをデコ
ードして求めたリードレジスタアドレス,リード制御ビ
ットを、上記制御回路802に入力する。
【0047】制御回路802はAD命令とLDR命令
の間でレジスタ干渉を検出したら演算指令コードをノ
ーオペレーションにするよう指示して、該LDR命令
によって、レジスタレジスタ間移動が行われないように
する。
【0048】又、上記レジスタ干渉の条件を検出したこ
とで、インターロック制御ビットを“オン”にする。
LDR命令のBステートではAD命令のライトレジス
タアドレス(レジスタ804の内容)と,LDR命令
のリードレジスタアドレスをBステートインターロック
信号発生回路806に入力し、上記レジスタ干渉を検出
するとBステートインターロック信号を生成する。然
し、上記制御回路802で生成されたインターロック制
御ビットが“オン”である場合には、該Bステートイ
ンターロック信号を出力しないように制御する。
【0049】従って、レジスタ干渉がある場合には、L
DR命令はノーオペレーションのまま、且つ、通常のレ
ジスタ干渉があったときに実行されるBステートインタ
ーロックをせずにWステートまで進む。
【0050】上記先行のAD命令の演算結果はそのまま
保持されているので、該LDR命令のライトアドレス
レジスタ804が指示するライトレジスタアドレスに従
って、レジスタスタックに書き込む。
【0051】図3に本発明の別の他の実施例として、L
DR命令と先行命令,及び、その後続命令の間にレジス
タ干渉が生じた場合のタイムチャート及び制御回路部の
実施例を示す。
【0052】そして、先行のAD命令と、該LDR命令
との間のレジスタ干渉時の動作は、図2に示したとお
りの動作となる。この場合、先行するAD命令の演算結
果を、該LDR命令の後続命令の演算ステートEにバ
イパスするバイパスルートが設けられる。
【0053】該後続のAD命令の制御回路807には、
上記LDR命令のライトアドレスと,インターロック
制御ビットと,後続のAD命令のリードアドレスとが
入力される。LDR命令の書き込みと、該後続のAD
命令の読み出しで、レジスタ干渉が生じた場合、上記イ
ンターロック制御ビットが“オン”であれば、バイパス
制御ラッチ902をオンにする。
【0054】この結果、演算器の入力にはLDR命令
に先行するAD命令の結果が選択されるようにバイパス
手段が選択される。上記インターロック制御ビット
が“オフ”であった場合には、先行のAD命令と、該L
DR命令との間ではレジスタ干渉がなかったことを意味
しているので、該LDR命令の結果をバイパスできるタ
イミングまで、該LDR命令のBステートインターロッ
クする。
【0055】更に、LDR命令と後続のAD命令で干渉
が生じない場合には、リードレジスタアドレスで選択さ
れたレジスタスタックの内容をセットしたレジスタ90
3が演算器に入力される。
【0056】このように、本発明においては、複数のマ
シンサイクルからなる演算実行ステート(E,V) を備え、
演算の実行をパイプライン処理する情報処理装置であっ
て、Mサイクルで演算実行ステートを終了する命令の直
後に、Nサイクルで演算実行ステートを終了する命令が
該パイプラインに投入されたときで、上記M>Nである
と、該Nサイクルで演算実行ステートを終了する命令を
強制的にMサイクルで演算実行を行う制御手段 802を設
けた情報処理装置において、上記2つの命令間で書き込
みレジスタと読み出しレジスタの間に干渉が生じたと
き、上記Mサイクルで演算実行を行う制御手段 802を抑
止するか,又、上記Nサイクル命令がレジスタレジスタ
間移動命令(LDR命令)であって、該2命令間のレジ
スタ干渉が検出されたとき、Bステートインターロック
信号を抑止する手段を設けて、該Bステートインタ
ーロック信号を抑止する手段で、上記Bステートイン
ターロック信号発生手段 806で生成されるBステートイ
ンターロック信号を抑止して、Mサイクルで実行する
ようにするか,更に、上記レジスタレジスタ間移動命令
(LDR命令)と、その先行命令の間でレジスタ干渉が
あり、該レジスタレジスタ間移動命令(LDR命令)と
後続命令との間にもレジスタ干渉があったとき、上記B
ステートインターロック抑止手段の信号を用いて、上
記レジスタレジスタ間移動命令(LDR命令)の先行命
令の演算結果を、該レジスタレジスタ間移動命令(LD
R命令)の後続命令にバイパスするようにしたところ
に特徴がある。
【0057】
【発明の効果】以上、詳細に説明したように、本発明の
パイプライン制御方式においては、複数のマシンサイク
ルからなる演算実行ステート(E,V) を備え、演算の実行
をパイプライン処理する情報処理装置であって、Mサイ
クルで演算実行ステートを終了する命令の直後に、Nサ
イクルで演算実行ステートを終了する命令が該パイプラ
インに投入されたときで、上記M>Nであると、該Nサ
イクルで演算実行ステートを終了する命令を強制的にM
サイクルで演算実行を行う制御手段 802を設けた情報処
理装置において、上記2つの命令間で書き込みレジスタ
と読み出しレジスタの間に干渉が生じたとき、上記Mサ
イクルで演算実行を行う制御手段 802を抑止するか,
又、上記Nサイクル命令がレジスタレジスタ間移動命令
(LDR命令)であって、該2命令間のレジスタ干渉が
検出されたとき、Bステートインターロック信号を抑
止する手段を設けて、該Bステートインターロック信
号を抑止する手段で、上記制御手段 806で生成される
Bステートインターロック信号を抑止して、Mサイク
ルで実行するようにするか,更に、上記レジスタレジス
タ間移動命令(LDR命令)と、その先行命令の間でレ
ジスタ干渉があり、該レジスタレジスタ間移動命令(L
DR命令)と後続命令との間にもレジスタ干渉があった
とき、上記Bステートインターロック抑止手段の信号
を用いて、上記レジスタレジスタ間移動命令(LDR命
令)の先行命令の演算結果を、該レジスタレジスタ間移
動命令(LDR命令)の後続命令にバイパスするよう
にしたものであるので、各命令間でレジスタ干渉があっ
た場合でも、ロスタイムを生じることなく、高速に、各
命令をパイプライン処理することができる効果がある。
【図面の簡単な説明】
【図1】本発明の一実施例を示した図
【図2】本発明の他の実施例を示した図(その1)
【図3】本発明の他の実施例を示した図(その2)
【図4】パイプライン処理の基本構成例を示した図
【図5】6段で構成されるパイプライン処理の例を示し
た図
【図6】従来のパイプライン処理方式を説明する図(そ
の1)
【図7】従来のパイプライン処理方式を説明する図(そ
の2)
【図8】従来のパイプライン処理方式を説明する図(そ
の3)
【図9】従来のパイプライン処理方式を説明する図(そ
の4)
【図10】浮動小数点ロード系命令の問題点を説明する
【符号の説明】
701,702,704 〜708 レジスタ 703 加算器 801 オペコードレジスタ 802 制御回路 803 ライト制御レジスタ, 又は、ライト制御ビット 804 ライトアドレスレジスタ 805 演算実行
サイクル数レジスタ 806 Bステートインターロック生成部 807 制御回路 演算指令コード Bステートインターロック信号 バイパスルート,又は、バイパス手段 インターロック制御ビット,又は、インターロ
ック制御レジスタ

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】複数のマシンサイクルからなる演算実行ス
    テート(E,V) を設けて、演算実行をパイプライン処理す
    るように構成された情報処理装置であって、 Mサイクルで演算実行ステートを終了する命令の直後
    に、Nサイクルで演算実行ステートを終了する命令がパ
    イプラインに投入された場合に、M>NであればNサイ
    クルで演算実行ステートを終了する命令を強制的にMサ
    イクルで演算実行を行うようにする制御手段(802) を設
    けた情報処理装置において、 前記2命令間で書き込みレジスタと読み出しレジスタの
    間に干渉が生じた場合には、前記制御手段(802) におい
    て、Nサイクルで演算実行ステートを終了する命令をM
    サイクルで演算実行を行うようにすることを抑止するよ
    うに制御することを特徴とするパイプライン制御方式。
  2. 【請求項2】複数のマシンサイクルからなる演算実行ス
    テート(E,V) を設けて、演算実行をパイプライン処理す
    るよう構成された情報処理装置であって、 Mサイクルで演算実行ステートを終了する命令の直後に
    Nサイクルで演算実行ステートを終了する命令がパイプ
    ラインに投入された場合にM>NであればNサイクルで
    演算実行ステートを終了する命令を強制的にMサイクル
    で演算実行を行うようにする制御手段(802) と、上記2
    命令間でレジスタ干渉を検出したとき、Bステートイン
    ターロック信号生成部(806) を備えた情報処理装置にお
    いて、 前期Nサイクル命令がレジスタレジスタ間移動命令
    () であった場合に、前記制御手段(802) で、該2命
    令間の書き込みレジスタと読み出しレジスタの間の干渉
    を検出したとき、その情報 (インターロック制御ビット
    ) を保持すると共に、該情報 (インターロック制御ビ
    ット) に基づいて、上記Bステートインターロック信
    号生成部(806) で生成されるBステートインターロック
    信号()を抑止して、該レジスタレジスタ間移動命令
    () をMサイクルで実行するように制御することを特
    徴とするパイプライン制御方式。
  3. 【請求項3】上記請求項2の情報処理装置において、上
    記レジスタレジスタ間移動命令()と、その先行命令
    の間でレジスタ干渉が生じ,且つ、上記レジスタレジス
    タ間移動命令()の後続命令が、上記レジスタレジス
    タ間移動命令()の結果レジスタを使用しようとして
    いることを検出したとき、 上記レジスタレジスタ間移動命令()の先行命令の演
    算結果を、上記レジスタレジスタ間移動命令()の後
    続命令へとバイパスする手段()を設けて、 上記レジスタレジスタ間移動命令()の後続命令で
    は、上記バイパスされた結果レジスタ情報を用いて演算
    するように制御することを特徴とするパイプライン制御
    方式。
JP3175696A 1991-07-17 1991-07-17 パイプライン制御方式 Expired - Fee Related JP2636566B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP3175696A JP2636566B2 (ja) 1991-07-17 1991-07-17 パイプライン制御方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3175696A JP2636566B2 (ja) 1991-07-17 1991-07-17 パイプライン制御方式

Publications (2)

Publication Number Publication Date
JPH0520064A true JPH0520064A (ja) 1993-01-29
JP2636566B2 JP2636566B2 (ja) 1997-07-30

Family

ID=16000652

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3175696A Expired - Fee Related JP2636566B2 (ja) 1991-07-17 1991-07-17 パイプライン制御方式

Country Status (1)

Country Link
JP (1) JP2636566B2 (ja)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0269825A (ja) * 1988-09-06 1990-03-08 Fujitsu Ltd パイプライン制御方式

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0269825A (ja) * 1988-09-06 1990-03-08 Fujitsu Ltd パイプライン制御方式

Also Published As

Publication number Publication date
JP2636566B2 (ja) 1997-07-30

Similar Documents

Publication Publication Date Title
US5404552A (en) Pipeline risc processing unit with improved efficiency when handling data dependency
US5710902A (en) Instruction dependency chain indentifier
JP2911278B2 (ja) プロセッサ
US5461722A (en) Parallel processing apparatus suitable for executing in parallel a plurality of instructions including at least two branch instructions
JPS59114641A (ja) 割込処理装置
JPS6239780B2 (ja)
JP2620511B2 (ja) データ・プロセッサ
JP3556246B2 (ja) パイプラインプロセッサにおける割込み処理のための装置
EP0378415A2 (en) Multiple instruction dispatch mechanism
JP3834145B2 (ja) ネスト可能な遅延分岐命令を有するマイクロプロセッサを備えたデータ処理装置及びそのマイクロプロセッサを動作させる方法
JP3817436B2 (ja) プロセッサおよびリネーミング装置
JP2636566B2 (ja) パイプライン制御方式
US5548736A (en) Method and apparatus overcoming delay introduced by instruction interlocking in pipelined instruction execution
JPH07129399A (ja) 命令属性レジスターを使用して多機能命令を実行する マイクロコンピュータ
JP2553728B2 (ja) 演算装置
JPH03269728A (ja) パイプライン計算機における命令実行制御方式
JP3560482B2 (ja) 命令制御装置
JP2919184B2 (ja) パイプライン処理を行う情報処理装置
JP2511063B2 (ja) パイプライン制御方式
JP2636192B2 (ja) 情報処理装置
JP3475861B2 (ja) データ処理装置
JP2000003279A (ja) Vliwプロセッサ、プログラム生成装置、および記録媒体
JP2622026B2 (ja) 中央処理装置におけるレジスタ書込制御方式
JPH0269825A (ja) パイプライン制御方式
JPH0619705A (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: 19970311

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

Free format text: PAYMENT UNTIL: 20080425

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20090425

Year of fee payment: 12

LAPS Cancellation because of no payment of annual fees