JPS6154541A - 命令先取り制御方式 - Google Patents

命令先取り制御方式

Info

Publication number
JPS6154541A
JPS6154541A JP17599484A JP17599484A JPS6154541A JP S6154541 A JPS6154541 A JP S6154541A JP 17599484 A JP17599484 A JP 17599484A JP 17599484 A JP17599484 A JP 17599484A JP S6154541 A JPS6154541 A JP S6154541A
Authority
JP
Japan
Prior art keywords
instruction
address
store
adder
5tis
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
JP17599484A
Other languages
English (en)
Other versions
JPH0238965B2 (ja
Inventor
Kouhei Ootsuyama
大津山 公平
Yuji Oinaga
勇次 追永
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 JP17599484A priority Critical patent/JPS6154541A/ja
Publication of JPS6154541A publication Critical patent/JPS6154541A/ja
Publication of JPH0238965B2 publication Critical patent/JPH0238965B2/ja
Granted legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、パイプライン方式の計算機における命令先取
り制御方式に関し、特にストア命令実行時に先取りして
ある命令列への反映を行うための効率的な制御方式に関
する。
〔従来の技術〕
−aに高速の計算機では、命令フェッチ時のメモリアク
セスにより生じる実行の遅れを実質的に削減するため、
命令の先取り制御が行われている。
命令の先取りを行う場合には、各命令の時間的な順序性
を保証することが不可欠であり、たとえば現在の命令の
実行により後続のある命令の内容が変更されたとき、命
令バッファ内に先取りされている命令列中に変更前のも
のがあれば、その先取りされた命令の実行を禁止しなけ
ればならない。
計算機には、このような順序性の保証を行うためにいく
つかの機能が用意されており、その1つにS T KS
 (Store in the In5trucLio
n Stream)と呼ばれている機能がある。
5TIS41能は、現在実行されている命令が。
すでに先取りされている命令列の格納領域へのストアで
ある場合を検出するもので、もしそのようなストアがあ
る場合、そのストアを反映するために、命令バッファに
先取りされている命令列を一旦全て放棄し、ストアの終
了後に再び後続の命令を先取りしなおす、すなわち再命
令先取り(Re −1fetch)を行うようにするも
のである。
第2図は、このようなストアの具体例を示したもので、
21はメモリの命令格納領域の一部である。現在、0番
地から8番地までの命令が命令バッファに先取りされて
おり、そして0番地のストア命令“ST6番地”が実行
された状態にある。
したがって6番地の内容が更新されたことにより。
命令バッファに先取りされている6番地の内容は無効と
なる。
第3図は、前述した5TIS機能を実現する従来方式の
1例の構成を示したもので、22は実行アドレス生成回
路EAG、23は命令バ・7フアとして機能するLBS
、24は5TIS検出回路。
WARは現在実行中のストア命令の作業アドレスすなわ
ち先頭のストアアドレス、IARは命令先取り領域の先
頭アドレスを表している。
節単に説明すると、実行アドレス生成回路EAG22は
、先取りすべき命令のアドレス修飾計算を行い、命令先
取り領域の先頭アドレスIARを発生する。IARは、
命令ハソファのLBS23および5TIS検出回路24
へj共給される。
5TIS検出回路24は、ストアアドレスWARと命令
先取り領域の先頭アドレスIARとを比較して、WAR
がIARで始まる命令先取り領域中に入るか否かを調べ
、先取り領域中に入る場合には5TIS検出信号を出力
してその領域中の先取り命令列を無効化するようにして
いる。
このとき、現在実行中の命令のアドレスを正確に算出す
ることは難しいので、命令ハソファの深さにある幅を持
たせた区間を5TIS検出範囲としている。
第4図は、第3図に示した従来方式の構成によるストア
命令のパイプライン制御タイミングを示したもので、横
軸のり、A、T、B、E、Wはそれぞれパイプラインの
以下に示す制御ステージを表している。
D:  Decode     (命令デコード)A:
  Address    (実効アドレス生成)T 
:  Translation  (アドレス変換)B
:  Buffer    (バフ7ア検索)E : 
 Execution   (演算)W:  Writ
e     (レジスタへの書き込み)図示のように、
Tステージで5TIS検出が行われ1次のBステージで
再先取りフラグ(Re −1fetch flag)が
ONに設定される。そして再先取り(Re −i f 
e tch)の実行は、Wステージの後、すなわちスト
ア命令が終了した後で開始される。
〔発明が解決しようとする問題点〕
第3図および第4図で説明した従来方式の場合。
第5図に示す例のように、プログラムAとプログラムA
より分岐されるプログラムBがあり、プログラムAの分
岐命令BRANCHの直後に作業領域があるような場合
には2図の上方(アドレスの低い方)から下方へ順に実
行して行くと、命令とともに作業領域の内容まで命令バ
ッファへ先取りされることが起こる。その結果、プログ
ラム中のストア命令STの実行により1図の矢印で示す
作業領域内へのストアが5TIS検出にかかり、先取り
されているストア命令STの後続命令は無効にされ、再
先取り(Re −i f e tch)が必要となる。
しかし実際上は9作業領域が命令として実行されること
がないので、上記した再先取りは無駄となって、性能低
下の原因となる。
特に大型計算機では、命令バッファが深くなる傾向にあ
るため、従来方式では、今後5TIS検出範囲が次第に
広くなって行くことが想定される。
このような状況で、さらにプログラム中でストア命令が
連続して実行されるような場合には、そのたびに再先取
り(Re −i f e tch)が行われることによ
って著しく性能が低下することになる。なお。
第5図の例のように分岐命令BRANCHの後に作業領
域がある例は、実際のプログラムでしばしば見られると
ころである。
〔問題点を解決するための手段〕
本発明は、現在実行中の命令の先頭アドレスとストア命
令のオペランドアドレスすなわらストア命令のストア先
頭アドレスとを比較してその差を求め、以後順次実行さ
れる命令の長さの累和かその差を超えない限り5TIS
検出を行わないことにより、5TIS検出範囲を実質的
範囲に限定できるようにするものである。
本発明の構成は、それによりパイプライン方式により命
令を実行および制御するとともに命令の先取りを行う計
算機において、ストア命令のストア先頭アドレスと実行
命令の先頭アドレスとの差を計算する加算器と、該加算
器の出力を保持するカウンタとをそなえ、プログラム中
の二連の命令を順次実行してゆく際に、命令ごとにその
命令長を上記カウンタの内容から減算し、該減算結果の
値が負になったとき、現在先取りしてある命令列を無効
にして再先取りを行わせることを特徴としている。
〔実施例〕
以下に2本発明の詳細を実施例にしたがって説明する。
第1図は2本発明の1実施例であるパイプラインの構成
図である。図において、1,2,3.  はそれぞれ命
令先取り領域の先頭アドレスを格納するレジスタIAR
−0,IAR−1,IAR−2を示し、4は現在実行中
の命令が先頭アドレスIARから何半語目にあるかを半
語単位でカウントしているNSrカウンタ、5はこのN
Srカウンタの値をIARに加算し、命令実行アドレス
を生成するNSI加算器、6および7はNSr加算器5
の加算結果の命令実行アドレスをAステージおよびTス
テージで保持するレジスタAIARおよびTIARであ
る。また8はディスプレイスメントレジスタDR,9は
ヘースレジスタBR,10はインデックスレジスタXR
,11はオペランドの実行アドレスを計算するオペラン
ド実行アドレス生成回路0EAG、12および13はそ
れぞれTステージにおいてオペランド実行アドレスを保
持スるオペランドアドレスレジスタTOAR,0EAR
である。そして工4はTIAR7とTOAR12の内容
の差をとる5TIS加算器、15は5TIS検出回路を
示す。なお9図上部のり、A。
T、B、E、Wは、第4図で説明したパイプラインの制
御ステージとの対応を示している。以下。
ストア命令実行時の動作について述べるDステージにお
いて、IAR−0ないしIAR−2の指定された1つと
カウンタN5ICの各内容は、NSI加算器で加算され
、結果の実行命令アドレス(先頭アドレス)はAIAR
へ格納される。
次のAステージにおいて、AIARの実行命令アドレス
はT I A Rへ転送される。他方、0EA(J:、
DR,BR,XRの内容に基づいてオペランド実行アド
レス(先頭アドレス)を生成し、TOARおよび0EA
Rへそれぞれ格納する。
次のTステージにおいて、5TIS加算器14ばTIA
Rの命令実行アドレスとTOARのオペランド実行アド
レスとの差を゛とり、その差とTST長(ストアする長
さ)または5TIK(命令バッファの深さに関する目安
となる定数)とを5TIS検出回路15で比較し、5T
IS検出が行われた場合、再先取りフラグを設定する。
5TrS検出には1次の2つのタイプがある。
タイプI :TIAR−TOAR<TST長タイプU 
: TOAR−TIAR<STI Kタイプ■は、第6
図(a)に示すように、命令実行アドレス(TIAR)
がオペランド実行アドレス(TOAR)よりも大きいく
遠くにある)が。
オペランド実行アドレス(TOAR)を先頭にストアさ
れるオペランドの長さくTST長)が命令実行アドレス
(TIAR)を越える範囲に亘っている場合であり、先
取りされている実行中の命令またはさらにその後続命令
が変更されているため。
5TIS状態としてストア命令終了後に直ちに再先取り
(Re−ifetch )する。
タイプ■は、第6図(b)に示すように、オペランド実
行アドレス(TOAR)が命令実行アドレス(TIAR
)よりも大きい(遠くにある)が。
その差が命令バッファの深さに関連して定められるある
範囲5TIKよりも小さい場合であり、実行中の命令あ
るいは先取りされている後続命令が変更されている可能
性があるため、さらに命令実行ごとにその命令の語尾部
分がオペランド実行アドレス(ストアアドレス)にかか
るか否かをチェックし、かかった場合にはじめて5TI
S状態とするものである。
第7図は、第1図に示された実施例における5TIS検
出回路の細部構成図である。図において。
1イはオペランド実行アドレスと命令実行アドレスの差
(TOAR−T I AR)を求める5TIS加算器、
15は5TIS検出回路、25はタイプ■検出用の加算
器、26はタイプ■検出用の加算器、27は正検出器、
28はOR回路、29は(TOAR−TIAR)から実
行された命令の長さTILCを逐次減算するためのカウ
ンタ5TIC。
30はSTMCの有効/無効を表示するラッチ5TIC
VALID、31は命令の長さTILC減算用のILC
加算器、32はセレクタ、33は比較器、34は負検出
器を表している。
まずストア命令実行の際、5TIS加算器14はTOA
R+ (−TIAR)の加算を行う。ここでTOAR−
TIAR<Oであれば、加算器25でTST長−(TI
AR−TOAR)が計算され。
正検出器27が。
TST長−(TIAR−TOAR)>0を検出した場合
、前記したタイプIの条件が成立するので、OR回路2
8を介して5TIS検出信号を出力する。
他方、TOAR−TIAR>Oであれば、加算器26で (TOAR−TI’AR)−3TIK を計算する。ここで前記したタイプ■の条件(TOAR
−TIAR)−5TrK<0が成立すれば、さらにカウ
ンタ5TIC,ILC加算器、負検出器などにより5T
IS条件をチェックしてゆく。すなわち命令を実行する
ごとにその長さTILCを(TOAR−T I AR)
から減算して行き、その値が負になったとき、すなわち
実行中の命令の語尾部分がストアアドレスのT。
AR以後と重なり、その実行中の命令または実行中の命
令とその後続命令とが、ストア命令によって書き替えら
れているものと判定し、5TIS検出信号を出力する。
この条件は1例えばストア命令とそれに続いて実行され
る各命令の長さをTIL C,、T T L C,、−
−−−=−T I L C,とし、後続命令はストア命
令でばないとしたとき、はじめて。
(TOAR−TIAR) (TI LCo”TILC1+−=+TILCr)<Q
となるr番目の命令で5TIS検出するもので。
r−1番目までの命令までは5TIS検出とならないの
で再先取りを行わずに済まさせることができる。
このため、カウンタ5TICにはストア命令の実行時に
TOAR−TIARが設定され、以後後続命令が実行さ
れるたびにその命令長TILCをILC加算器でカウン
タ5TICの内容から減算し、減算結果を再びカウンタ
5TrGに格納する循環的な減算動作が行われる。セレ
クタ32は。
上記したカウンタ5TICへの(TOAR−TIAR)
の設定とその後の実行命令長の減算動作とを切り替える
ために使用される。比較器33は。
2回目以降のストア命令出現時にその(TOAR−T 
I AR)値とカウンタ5TICの現在値とを比較し、
  (TOAR−TIAR)<5TICであれば、この
新しいストア命令の(TOAR−TIAR)値を5TI
Cに設定するよう、セレクタ32を制御卸する。これは
、タイプn5TIsが検出   −゛されたストア命令
が2つ以上ある時5TIS検出が最も5TISになるの
が早いストアアドレスに対して行われる必要があるから
である。負検出器34はrLc加算器31からの減算結
果が負になったとき、OR回路28から5TIS検出信
号を出力する。
第8図はタイプ■のストア命令検出時の制御フローを示
したものである。なお、  (TOAR−TIAR)=
八とする。
ストア命令実行時に、5TICVALID=0のときは
、初めてタイプ■となったときであるので、現命令のA
を求めST I C−A、  ST I CVAL I
 D←1に設定する。
他方 5TICVALID=1のときは、すでに先行ス
トア命令により5TICに有効データが設定済みである
ので、5TICと現命令のAのどぢらが小さいかを調べ
、5TIC−TILC<Aであれば5TIC←(ST 
I C−T I LC)の減算を行い、5TIC−TI
LC≧AであればこのAで5TICを更新する。すなわ
ぢ常により小さい5TIS検出範囲を採用する。
第9図は、第8図で検出するタイプ■のストア命令に続
く他の通常命令(非ストア命令)実行時の制御フローを
示したものである。
まず5TICVALID=1の場合、5TrCより現在
実行している命令の長さT I L Cを減じ、結果値
を5TICに代入する。この値が“0”以下である場合
、最後に5TICにTOAR−TfARを設定したスト
ア命令のストアアドレスが、現在実行している命令の中
に含まれるごとになるので、命令実行を中止して、その
実行していた命令から再先取りして命令実行をやり直す
他方、5TICVALID=0の場合には、タイプ■に
よる5TIS検出は行われない。
またBRANCH,LPSW、および割込みなどで実行
中の命令のアドレスが変わる命令では。
5TICVALIDを“0”にリセットする。
その結果第5図の例で説明したような無駄な5TIs検
出と再先取りが抑制される。
第10図は第7図に示した本発明実施例回路の有効性を
説明するためのプログラム例であり、第11図はその実
行時のバイブラインにおける5TIS検出動作を示した
ものである。第11図中の要素14,29,30.31
は、それぞれ第7図における5TIS加算器、カウンタ
5TIC,ラッチ5TICVALID、ILC加算器を
表している。また第10図および第11図中の番号■乃
至■はプログラム中の順次の命令とバイブライン動作と
の対応を示している。なお簡単化のため。
命令長TILCは全て2バイトとする。
■のストア命令5T18は最初のストア命令てあり、5
TIS加算器14はTOAR−TIAR=18−0=1
8を計算する。これによりタイプ■に検出され、5TI
CVALIDをONに設定するとともに5TIC29に
“18″を設定する。
■のストア命令5T22では、5TIS加算器の出力が
TOAR−TIAR=22−2=20であり、5TIC
=18の方が小さいので、ILC加算器31の出力5T
IC−TI LC=18−2=16を5TIS29に代
入する。
■の通常(非ストア)命令Aでは、ILC加算器31の
加算結果STIC−TMLC=16−2=14を5TI
C29に代入する。
■のストア命令5T16では、5TIS加算器14はT
OAR−TIAR=16−6=10を出力し、これは5
TIC=14よりも小さいので。
この値“10”を選択し、ST[S29に代入する。
■および■の通常命令B、Cでば、それぞれ■LC加算
器が5TICから命令長2ずつ減算し。
ST I C= 6となる。
■の命令BRANCHでは、ST[CVALIDが0”
にリセットされ、タイプ■による5TIS検出動作は一
旦終了する。
〔発明の効果〕
以上のように本発明によれば、実行命令が実際にストア
アドレスにかかるかどうかを調べて再先取りを開始する
ようにしているため、制御動作の無駄がなくなり、従来
方式にくらべて計算機の著しい性能向上を図ることがで
きる。
【図面の簡単な説明】
第1図は本発明の1実施例の構成図、第2図は再先取り
が必要なストア命令の説明図、第3図は従来の5TIS
機能を実現した回路の1例を示す構成図、第4図は第3
図に示した従来例回路の動作を示すバイブラインの制御
タイミング図、第5図は5TIS検出により不要な再先
取りが生じるプログラムの説明図、第6図は第1図に示
した実施例における5TIS検出のタイプ1およびタイ
プ■の説明図、第7図は第1図に示した実施例における
5TIS検出回路の細部構成図、第8図および第9図は
それぞれ第7図に示した5TIS検出回路の動作を示す
制御フロー図、第10図は実施例の動作を説明するため
のプログラム例の説明図、第11図は第10図に示すプ
ログラムの実行における5TIS検出動作を示す説明図
である。 図中、5は命令実行アト゛レスを生成するNSI加算器
、7はレジスタTIAR,11はオペランド実行アドレ
ス生成回路0EAG、12はレジスタTOAR,14は
5TIS加算器、15は5TIS検出回路、TILCは
実行命令の長さ、 TST長はストアされるオペランド
の長さを表す。

Claims (1)

    【特許請求の範囲】
  1. パイプライン方式により命令を実行および制御するとと
    もに命令の先取りを行う計算機において、ストア命令の
    ストア先頭アドレスと実行命令の先頭アドレスとの差を
    計算する加算器と、該加算器の出力を保持するカウンタ
    とをそなえ、プログラム中の一連の命令を順次実行して
    ゆく際に、命令ごとにその命令長を上記カウンタの内容
    から減算し、該減算結果の値が負になったとき、現在先
    取りしてある命令列を無効にして再先取りを行わせるこ
    とを特徴とする命令先取り制御方式
JP17599484A 1984-08-24 1984-08-24 命令先取り制御方式 Granted JPS6154541A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP17599484A JPS6154541A (ja) 1984-08-24 1984-08-24 命令先取り制御方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP17599484A JPS6154541A (ja) 1984-08-24 1984-08-24 命令先取り制御方式

Publications (2)

Publication Number Publication Date
JPS6154541A true JPS6154541A (ja) 1986-03-18
JPH0238965B2 JPH0238965B2 (ja) 1990-09-03

Family

ID=16005845

Family Applications (1)

Application Number Title Priority Date Filing Date
JP17599484A Granted JPS6154541A (ja) 1984-08-24 1984-08-24 命令先取り制御方式

Country Status (1)

Country Link
JP (1) JPS6154541A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5749265A (en) * 1993-04-12 1998-05-12 Nsk, Ltd. Ball screw device
JP2007192332A (ja) * 2006-01-19 2007-08-02 Nsk Ltd ボールねじ
JP2007285351A (ja) * 2006-04-13 2007-11-01 Nsk Ltd ボールねじ

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5482140A (en) * 1977-12-14 1979-06-30 Hitachi Ltd Information processor
JPS57185545A (en) * 1981-05-11 1982-11-15 Hitachi Ltd Information processor

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5482140A (en) * 1977-12-14 1979-06-30 Hitachi Ltd Information processor
JPS57185545A (en) * 1981-05-11 1982-11-15 Hitachi Ltd Information processor

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5749265A (en) * 1993-04-12 1998-05-12 Nsk, Ltd. Ball screw device
JP2007192332A (ja) * 2006-01-19 2007-08-02 Nsk Ltd ボールねじ
JP2007285351A (ja) * 2006-04-13 2007-11-01 Nsk Ltd ボールねじ

Also Published As

Publication number Publication date
JPH0238965B2 (ja) 1990-09-03

Similar Documents

Publication Publication Date Title
US5276882A (en) Subroutine return through branch history table
JP3845043B2 (ja) 命令フェッチ制御装置
EP1889152B1 (en) A method and apparatus for predicting branch instructions
US4775927A (en) Processor including fetch operation for branch instruction with control tag
US20060200655A1 (en) Forward looking branch target address caching
US20050198480A1 (en) Apparatus and method of controlling instruction fetch
JPH06110683A (ja) マイクロプロセッサの拡張ブランチターゲット方法及びその装置
JP2006520964A5 (ja)
JP2000172507A (ja) 命令フェッチ制御装置
JP2006520964A (ja) 分岐ターゲットに基づいて分岐予測をするための方法および装置
US5146570A (en) System executing branch-with-execute instruction resulting in next successive instruction being execute while specified target instruction is prefetched for following execution
JP2526017B2 (ja) ランタイム遅延削減方法及びデ―タ処理システム
JPS6154541A (ja) 命令先取り制御方式
JP2001060152A (ja) 分岐予測を抑止する情報処理装置および方法
US20080065870A1 (en) Information processing apparatus
JP5696210B2 (ja) プロセッサ及びその命令処理方法
JP2004038338A (ja) 分岐予測機構を有する情報処理装置
JPH07306785A (ja) 分岐命令実行機能を持つプロセッサおよび分岐命令制御方法
JP2002182902A (ja) メモリデータアクセス構造およびその方法
JP2005215946A (ja) 情報処理装置
JPS60241136A (ja) デ−タ処理装置
KR100265332B1 (ko) 분기예측방법
JPH0235525A (ja) 命令フェッチ制御方法
JP3493110B2 (ja) 高速分岐処理装置
JP4049490B2 (ja) 情報処理装置

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees
S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R370 Written measure of declining of transfer procedure

Free format text: JAPANESE INTERMEDIATE CODE: R370