JPH04220722A - パイプライン処理装置 - Google Patents

パイプライン処理装置

Info

Publication number
JPH04220722A
JPH04220722A JP41240990A JP41240990A JPH04220722A JP H04220722 A JPH04220722 A JP H04220722A JP 41240990 A JP41240990 A JP 41240990A JP 41240990 A JP41240990 A JP 41240990A JP H04220722 A JPH04220722 A JP H04220722A
Authority
JP
Japan
Prior art keywords
instruction
branch
stage
execution
instruction stream
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
JP41240990A
Other languages
English (en)
Other versions
JP3082944B2 (ja
Inventor
Aiichiro Inoue
愛一郎 井上
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 JP02412409A priority Critical patent/JP3082944B2/ja
Publication of JPH04220722A publication Critical patent/JPH04220722A/ja
Application granted granted Critical
Publication of JP3082944B2 publication Critical patent/JP3082944B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Abstract

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

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、パイプライン処理方式
を採用した情報処理装置において、分岐命令の実行に対
応して命令ストリームを変更あるいは持続する処理を有
効に実施するパイプライン制御方式に関する。
【0002】パイプライン処理方式を採用した場合に、
分岐の成立あるいは不成立を予測して処理を行うように
されるが、当該予測がはずれた場合には命令ストリーム
を変更することが必要となる。
【0003】
【従来の技術】パイプライン処理方式を採用した情報処
理装置においては、一つの命令の実行の完了を待たずに
実行ステージが空けば次々と後続の命令を投入してその
実行を開始する。このことによって性能の増大を図って
きた。しかし、しばしば先行する命令の実行結果が後続
の命令の実行に影響を与えることによって、先行する命
令が実行されるのを待たなければ後続の命令の実行が開
始できない様な場合にはパイプラインの処理に乱れを生
じ、性能の低下を引き起こす原因となる。この代表的な
例が分岐命令である。
【0004】そこで例えば分岐命令を実行する場合にも
その分岐の成立、不成立が判明する以前に後続の命令、
或いは、分岐のターゲット側の命令の実行を開始する事
が考えられる。この場合に分岐命令に続いてパイプライ
ンに投入する命令を決定する好ましい手段としては、過
去に同一の分岐命令を実行した時にそれが成立したか否
かを記憶しておいて、それと同一の結果となるものとし
て予測する方法などが有る。
【0005】
【発明が解決しようとする課題】しかしながら、分岐命
令を実行した結果が必ずしも予測通りであるとは限らな
い。このような場合には、既にパイプラインに投入され
て実行を開始した命令をキャンセルする必要が出てくる
。勿論上記の予測を行うことなく処理を実行してゆく方
式の場合でも、分岐が成立すると同様なキャンセルを行
う必要が生じて同じ条件となる。
【0006】このようにしてキャンセルされる命令は、
例えば、上記の分岐命令の実行時の例において、分岐の
後続の命令であったり、分岐のターゲット側の命令であ
ったりすることがあるように場合によって異なる。
【0007】本発明は、パイプラインに投入されて実行
を開始した命令ストリームを選択的にキャンセルする手
段を提供することを目的としている。
【0008】
【課題を解決するための手段】図1は本発明の原理構成
図を示す。図中の符号1−iは夫々実行ステージ、2−
iは夫々タグ、3−iは夫々命令ストリームID、4−
iは夫々有効フラグ、5−iは夫々ステージ無効化回路
、6はキャンセルID、7はキャンセル条件成立情報を
表している。
【0009】図示の場合、パイプラインは6個の実行ス
テージから構成され、各ステージの処理内容の概要は次
の通りである。 D:命令の解読, A:主記憶オペランドのアドレス計算,T:アドレス変
換, B:オペランド読み出し, E:演算実行, W:演算結果の格納。
【0010】また有効フラグ(DVないしWV)4−i
は各実行ステージにおける処理が有効か否かを指示し、
命令ストリームID(D−IDないしW−ID)は各実
行ステージに投入されている命令が該当する命令ストリ
ームを指示し、タグ(D−TAGないしW−TAD)2
−iは各実行ステージの実行を制御する上記以外のオペ
コードその他のタグを表している。更にステージ無効化
回路5−iは、図示しないキャンセル指示回路からのキ
ャンセルID6とキャンセル条件成立情報7とを受け取
り、自己の実行ステージを無効化すべきであれば、上記
有効フラグ4−iを無効化する。
【0011】
【作用】    本発明においては、パイプラインの各
実行ステージに、命令ストリームを識別する情報を、命
令ストリームIDと呼ぶタグとして、付加して各実行ス
テージで実行中の命令ストリームを識別するようにする
。パイプライン処理中のある命令ストリーム中の命令を
キャンセルする必要がある場合には、どの命令ストリー
ムをキャンセルするかをキャンセル条件の生成とともに
識別し通知する。そして、キャンセルすべき命令ストリ
ームIDを有するパイプラインの実行ステージを無効化
する。
【0012】
【実施例】図2は本発明の実施例において、実行される
命令ストリームの一例を示す。命令ストリームIDは2
ビットで、4つの命令ストリームを区別できるようにさ
れている。図2においては、はじめに実行中の命令スト
リームがID=00で示され、その中の命令3a が分
岐命令BCであったとする。この分岐が成立することに
よってそのターゲットに実行が移り、そのターゲットの
ID=01で示される命令ストリーム中の命令(命令1
b から)が引き続いて実行される。この命令ストリー
ム中にも分岐命令BC(命令6b )があるが、これは
分岐不成立で、引き続き同一命令ストリームの命令(命
令7b 以降)が順次実行されるものとして示されてい
る。
【0013】図3に本発明の実施例のパイプラインを示
す。図中の符号は図1に対応している。本発明の実施例
のパイプラインは図1の場合と同様に6つの実行ステー
ジから構成されている。また図中のDV〜WVは各ステ
ージの有効(Valid)を示し、D−ID〜W−ID
は各ステージに付加した命令ストリームIDを示し、D
−TAG〜W−TAGは各ステージの実行を制御する上
述以外のオペコードその他のタグを表す。尚、図3では
演算器等のファンクション・ユニットは本発明の趣旨と
は関連がないので示していない。
【0014】図4はステージ無効化回路の構成例を示し
、命令ストリームをキャンセルするに当って各ステージ
を無効化する回路を示す。この回路はパイプラインの各
ステージ毎に同様なものが存在する。
【0015】図中の符号3−i,4−i,5−i,6,
7は図1に対応し、8は一致回路、9はキャンセルすべ
きサイクルか否かを判別する判別回路、10はアンド回
路を表している。
【0016】この回路に何らかのキャンセル条件が成立
したことと、キャンセルすべき命令ストリームのIDと
が通知されると、自身のステージの命令ストリームID
と比較を行い、両IDが一致したら、自身のステージの
Validをリセットするように働く。キャンセルすべ
きサイクルか否かの判別回路については後述する。
【0017】図5は分岐の成立または不成立の際に命令
ストリームのキャンセル条件を生成するキャンセル指示
回路を示す。図中の符号11はキャンセル指示回路、1
2は分岐確定回路、13,14は夫々選択回路、15,
16は夫々オア回路を表している。また図示のD−TI
D,A−TID,T−TID,B−TID,E−TID
は夫々各対応する実行ステージにおいて、分岐命令によ
るターゲット側の命令ストリームの命令が投入されてい
た場合の当該ターゲット側の命令ストリームIDを表し
ている。
【0018】図5においては、上記分岐によるもの以外
のキャンセル条件からの通知もあるものとして示されて
いる。
【0019】分岐確定回路12では、分岐命令とそれに
先行する命令の実行状態を調べて、その分岐が成立する
か不成立となるかを決定し、当該成立あるいは不成立の
決定とそれが確定した時点で分岐命令のどのステージで
確定したのかという情報とともに出力する。例えば,分
岐確定は,次のように行なわれる。先行する命令の条件
コードを見る(この条件コードが何時確定するかは,先
行命令に依存する。)無条件分岐する命令の場合は,デ
コード時に,先行する命令が,汎用レジスタをカウント
して回すときは,そのカウント値を見る等の動作を行な
う。この分岐確定回路は,従来の装置で一般的に使用さ
れているものである。
【0020】これを受けて、キャンセル指示回路11は
、次の指示を行う。即ち、分岐不成立の場合にはターゲ
ット側の命令ストリームは実行すべきでないので、実行
ステージに流れているターゲット側の命令ストリームの
IDを選択回路13から選択してこれを出力するととも
に、分岐が不成立として確定したことをキャンセル条件
成立として出力する。一方、分岐成立の場合には分岐命
令に続く現在実行中であった命令ストリームは実行すべ
きでないので、実行ステージに流れている分岐命令自身
の命令ストリームIDを選択回路14から選択してこれ
を出力するとともに、分岐が成立として確定したことを
キャンセル条件成立として出力する。
【0021】尚、この実施例では、分岐命令のターゲッ
ト側の命令ストリームIDを分岐命令自身の実行時に自
身を制御するタグ類とともにパイプラインを流して、こ
れをもとに分岐が不成立となった場合のIDを決定して
いる。しかし、もっと単純な例としては分岐命令自身の
IDとは異なる全てのIDについてこれをキャンセルす
べきものと指定することも考えられる。通常はこれで十
分である。但し、この場合には、ある分岐が確定して実
行すべき命令ストリームが確定するまでは、パイプライ
ンに投入できるのは現在実行中の命令ストリームまたは
その中に含まれるまだ確定していない分岐命令のうち、
最も近くにある、ただ一つの分岐命令のターゲットの命
令ストリームの2通りに限られるおそれがある。
【0022】また、この実施例では、分岐命令の実行の
完了前に分岐成立が確定する事があり得る。この場合に
は、分岐命令を含め、それよりも前のシーケンスの命令
は完了しなければならない。そこで分岐の確定したステ
ージが何処であるかを、図4に示す各ステージの無効化
を行うステージ無効化回路5−iに通知して、分岐の確
定したステージ以前のステージに限って無効化を行うよ
うにされる。この部分が図4においてキャンセルすべき
サイクルか否かの判別回路9として示されている。
【0023】図6はパイプラインへの命令供給部分の要
部を示す。図中の符号17ないし19は夫々命令バッフ
ァ、20はプリゼンテーション制御回路、21は選択回
路を表している。命令はその実行に先立って主記憶装置
から順次取り出されて命令バッファ17ないし19に蓄
えられる。命令バッファから選択された命令語が図3に
示すパイプラインのDステージにセットされ、かつ、そ
れが有効であることが示されると、命令実行が始まる。
【0024】図2に示した命令ストリームを実行する場
合に、ID=00,01,10のそれぞれの命令ストリ
ーム中の命令は、実行に先立つ取り込みによって、それ
ぞれ命令バッファ(A,B,C)17ないし19にバッ
ファリングされていて、決定されたプリゼンテーション
のIDに従って、滞りなくパイプラインに供給される。 尚、ここで決定されたプリゼンテーションのIDはパイ
プラインに投入される命令の命令ストリームIDそのも
のであり、パイプラインの各ステージに引き継がれて行
く。プリゼンテーション制御回路20におけるパイプラ
インへ投入する命令ストリームの決定は、図5に示した
分岐確定回路12からの情報や、分岐予測を行った場合
にはその情報などによって決定される。この論理の詳細
および命令バッファの構造およびバッファからの命令の
プリゼンテーションの詳細については本発明の趣旨とは
直接関係がないので省略する。
【0025】図7ないし図9は本発明の実施例において
図2に示した命令ストリームを実行した場合の処理の流
れを示す。
【0026】図7で示すのは次の場合である。図2に示
した命令ストリームの命令1a から命令3a の分岐
命令BCを実行し、分岐命令(命令3a )のBステー
ジで分岐成立が確定するが、この時すでにパイプライン
には、分岐命令に続く同一ストリームの命令4a から
命令6a が投入されており、これらのキャンセルが行
われる。この時、命令4a ,5a ,6a のそれぞ
れがパイプラインのT,A,Dの各ステージにあるが、
図5に示すキャンセル指示回路11は分岐がBステージ
で成立した事を分岐命令自身の命令ストリームIDとと
もに、図4で示す各ステージ無効化回路5−iに通知し
、これを受けて、図4に示す回路のうちT,A,Dの各
ステージに対応するものは、その命令ストリームIDに
従って自ステージを無効化することを検知する。これに
よって、これらの各ステージは無効化され、それによっ
て次のステージへの遷移も止められ、命令4a ,5a
 ,6a はキャンセルされる。一方、分岐が成立した
ことは、図6に示す回路にも通知されてパイプラインに
投入する命令ストリームをID=00からID=01に
切り替える。これによって、命令6a の後には、命令
1b 〜3b 、および、それに続く命令ストリームが
投入されて実行される。
【0027】図8で示すのは次の場合である。図2に示
した命令ストリームの命令4b から順次に命令6b 
の分岐命令BCまでを実行し、分岐命令のEステージで
分岐不成立が確定するが、この時すでにパイプラインに
は、分岐のターゲットの命令ストリームの命令1c か
ら命令4c が、投入されており、これらのキャンセル
が行われる。分岐のターゲットの命令ストリームがパイ
プラインに投入されたのは、図6に示すプリゼンテーシ
ョン制御回路に対して、分岐予測回路(図示しない)か
ら過去にこの分岐命令を実施した時に分岐が成立したと
いう事が通知された事などの理由による事が考えられる
。キャンセルが図5,図4に示す回路によって行われる
様子は、図5が示す回路が図4に示す回路に通知するキ
ャンセルIDが分岐のターゲットのものである事以外は
前述の図7における場合と同様である。また、この場合
には、分岐不成立であるために、引き続いて実行される
のは分岐命令自身と同一の命令ストリームの命令である
【0028】図9には図8で示したのと同じ部分の命令
ストリームを実行した場合である。しかし、この場合に
は、命令プリゼンテーションが図8に示したのとは異な
る動作をしている。これは、図8と同様に分岐予測回路
の働きなどによって、分岐のターゲットの命令ストリー
ムが投入されているが、そのタイミングが図8で示した
場合とは異なり、分岐命令BCに続いてその後続の命令
7b ,8b がパイプラインに投入されてから、分岐
命令のターゲットの命令1c ,2c がパイプライン
に投入されている。こうした事は、例えば、命令ストリ
ームID=10で示される、命令1c ないし3c 、
及びこれに続く命令ストリームの供給が間に合わなかっ
た場合にもパイプラインを遊ばせない事をもくろむよう
な制御を考えると、容易に考えられるケースである。こ
の図9の場合においても分岐の確定からのキャンセルの
動作は、図7,図8に示した場合と同様にして行われる
。この場合に異なるのは、分岐命令6b (BC)に続
いて実行すべき命令とキャンセルすべき命令が同時にパ
イプラインで実行中であり、これらが選択的にキャンセ
ルされていることである。この選択性は図7,図8に示
した場合の動作と全く同一の制御によってなされるもの
である。即ち、図7,図8に示した場合の動作で説明し
た如く、キャンセルを行う時にパイプラインの各ステー
ジの命令ストリームIDをキャンセルすべき命令ストリ
ームのIDと比較することによってなされる。
【0029】
【発明の効果】本発明によれば、予めパイプラインに投
入されて実行を開始した命令を選択的にキャンセルする
ことができる。このために、命令プリゼンテーションの
制御に自由度を与え、分岐の確定からのキャンセルの制
御をこれと独立したものとすることができる点で、大き
な効果が期待できる。
【図面の簡単な説明】
【図1】本発明の原理構成図である。
【図2】実施例において実行される命令ストリームの一
例である。
【図3】実施例パイプラインである。
【図4】ステージ無効化回路の構成例である。
【図5】キャンセル指示回路の構成例である。
【図6】パイプラインへの命令供給部分の要部である。
【図7】処理の流れの例である。
【図8】処理の流れの例である。
【図9】処理の流れの例である。
【符号の説明】
1  実行ステージ 2  タグ 3  命令ストリームID 4  有効フラグ 5  ステージ無効化回路 6  キャンセルID 7  キャンセル条件成立情報 11  キャンセル指示回路 12  分岐確定回路

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】  命令ストリーム中の命令を逐次実行し
    てゆくパイプラインをそなえたパイプライン処理方式を
    採用した情報処理装置において、上記パイプラインを構
    成する夫々の実行ステージ(1−i)に、当該ステージ
    の有効性を指示する有効フラグ(4−i)と、当該ステ
    ージに投入されている命令ストリームを指示する命令ス
    トリームID(3−i)と、当該ステージの実行を制御
    するタグ(2−i)とを少なくとも設けると共に、上記
    パイプラインを構成する夫々の上記実行ステージ(1−
    i)に、当該ステージの実行を無効化するステージ無効
    化回路(5−i)を設け、各実行ステージにおける上記
    ステージ無効化回路(5−i)は、キャンセル対象とな
    る命令ストリームのキャンセルID(6)とキャンセル
    条件成立情報(7)とを受け取り、パイプラインの各実
    行ステージの命令ストリームID(3−i)と一致する
    上記キャンセルID(6)を受け取りかつ上記キャンセ
    ル条件成立情報(7)を受け取った際に、キャンセルす
    べきサイクルを判別して、当該実行ステージにおける上
    記有効フラグ(4−i)を無効化するようにしたことを
    特徴とするパイプライン制御方式。
  2. 【請求項2】  上記パイプラインは、分岐命令の実行
    に対応して、分岐成立・不成立を確定する分岐確定回路
    (12)を有するキャンセル指示回路(11)をそなえ
    、当該キャンセル指示回路(11)は、上記分岐成立の
    場合に、当該分岐の成立した分岐命令をもつ上記命令ス
    トリームに該当する上記命令ストリームIDを上記キャ
    ンセルID(6)として上記各ステージ無効化回路(5
    −i)に供給すると共に、上記分岐成立に対応してキャ
    ンセル条件が成立すべき実行ステージに対して上記キャ
    ンセル条件成立情報(7)を供給し、かつ上記分岐不成
    立の場合に、当該分岐が成立した場合のターゲットとな
    るべき命令ストリームに該当する上記命令ストリームI
    Dを上記キャンセルID(6)として上記各ステージ無
    効化回路(5−i)に供給すると共に、上記分岐不成立
    に対応してキャンセル条件が成立すべき実行ステージに
    対して上記キャンセル条件成立情報(7)を供給するよ
    うにしたことを特徴とする請求項1記載のパイプライン
    制御方式。
JP02412409A 1990-12-20 1990-12-20 パイプライン処理装置 Expired - Fee Related JP3082944B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP02412409A JP3082944B2 (ja) 1990-12-20 1990-12-20 パイプライン処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP02412409A JP3082944B2 (ja) 1990-12-20 1990-12-20 パイプライン処理装置

Publications (2)

Publication Number Publication Date
JPH04220722A true JPH04220722A (ja) 1992-08-11
JP3082944B2 JP3082944B2 (ja) 2000-09-04

Family

ID=18521253

Family Applications (1)

Application Number Title Priority Date Filing Date
JP02412409A Expired - Fee Related JP3082944B2 (ja) 1990-12-20 1990-12-20 パイプライン処理装置

Country Status (1)

Country Link
JP (1) JP3082944B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07281893A (ja) * 1994-04-15 1995-10-27 Internatl Business Mach Corp <Ibm> 処理システム及び演算方法
JPH07281894A (ja) * 1994-04-15 1995-10-27 Internatl Business Mach Corp <Ibm> 処理システムおよび動作の方法
WO2004031944A1 (ja) * 2002-10-04 2004-04-15 Fujitsu Limited プロセッサ及び命令制御方法
JP2009524167A (ja) * 2006-01-20 2009-06-25 クゥアルコム・インコーポレイテッド オペランドの早期の条件付き選択

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS56123041A (en) * 1980-02-29 1981-09-26 Hitachi Ltd Information processor

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS56123041A (en) * 1980-02-29 1981-09-26 Hitachi Ltd Information processor

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07281893A (ja) * 1994-04-15 1995-10-27 Internatl Business Mach Corp <Ibm> 処理システム及び演算方法
JPH07281894A (ja) * 1994-04-15 1995-10-27 Internatl Business Mach Corp <Ibm> 処理システムおよび動作の方法
WO2004031944A1 (ja) * 2002-10-04 2004-04-15 Fujitsu Limited プロセッサ及び命令制御方法
JP2009524167A (ja) * 2006-01-20 2009-06-25 クゥアルコム・インコーポレイテッド オペランドの早期の条件付き選択
US9710269B2 (en) 2006-01-20 2017-07-18 Qualcomm Incorporated Early conditional selection of an operand

Also Published As

Publication number Publication date
JP3082944B2 (ja) 2000-09-04

Similar Documents

Publication Publication Date Title
JP4105684B2 (ja) ロード操作の推測結果をレジスタ値にリンクするためのシステムおよび方法
JP3866261B2 (ja) ロード/ストア操作をバイパスするために投機的ソースオペランドを使用するシステムおよび方法
US6862677B1 (en) System and method for eliminating write back to register using dead field indicator
EP0533337A1 (en) Apparatus and method for resolving dependencies among a plurality of instructions within a storage device
US7496737B2 (en) High priority guard transfer for execution control of dependent guarded instructions
JPH11272464A (ja) 投機的境界不整列ロ―ド操作方法及び装置
JPH0540627A (ja) 並列演算処理装置
US7366885B1 (en) Method for optimizing loop control of microcoded instructions
US6725365B1 (en) Branching in a computer system
US8799628B2 (en) Early branch determination
US7725690B2 (en) Distributed dispatch with concurrent, out-of-order dispatch
JP3207124B2 (ja) カウント/リンク・レジスタ変更命令の投機実行をサポートする方法及び装置
JP2535252B2 (ja) 並列処理装置
US5469552A (en) Pipelined data processor having combined operand fetch and execution stage to reduce number of pipeline stages and penalty associated with branch instructions
US3553655A (en) Short forward conditional skip hardware
JP3546403B2 (ja) 順序外の実行を容易にする装置及び方法
JPS634208B2 (ja)
US6134645A (en) Instruction completion logic distributed among execution units for improving completion efficiency
JPH04220722A (ja) パイプライン処理装置
US6098168A (en) System for completing instruction out-of-order which performs target address comparisons prior to dispatch
US6789185B1 (en) Instruction control apparatus and method using micro program
JPH06295243A (ja) データ処理装置
EP1050805B1 (en) Transfer of guard values in a computer system
JPWO2008155839A1 (ja) 命令処理装置
JP2901573B2 (ja) スーパースカラー方式の情報処理装置

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 19970304

LAPS Cancellation because of no payment of annual fees