JPH06259252A - 分岐制御回路 - Google Patents

分岐制御回路

Info

Publication number
JPH06259252A
JPH06259252A JP4308193A JP4308193A JPH06259252A JP H06259252 A JPH06259252 A JP H06259252A JP 4308193 A JP4308193 A JP 4308193A JP 4308193 A JP4308193 A JP 4308193A JP H06259252 A JPH06259252 A JP H06259252A
Authority
JP
Japan
Prior art keywords
instruction
branch
address
specified
unit
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.)
Withdrawn
Application number
JP4308193A
Other languages
English (en)
Inventor
Akiyoshi Ino
明寿 猪野
Hideki Sakata
英樹 坂田
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 JP4308193A priority Critical patent/JPH06259252A/ja
Publication of JPH06259252A publication Critical patent/JPH06259252A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Abstract

(57)【要約】 【目的】長命令語方式の計算機の分岐制御回路に関し、
命令フィールドの拡張を行なわずにソフトウェアによる
分岐予測方法を実現することを目的とする。 【構成】プリフェッチした命令語を保持するための命令
バッファ1と、次命令アドレス指定手段3と、分岐アド
レス指定手段4と、前記の2つのアドレスを選択するア
ドレス選択手段7と、命令語の中の条件分岐命令を検出
する条件分岐命令検出手段5と、他の単位命令が特定の
命令であることを検出する特定命令検出手段6と、条件
分岐命令を検出したとき、条件が確定していれば、その
条件に従ったアドレスを選択するように、条件が未確定
であり、かつ、他の単位命令が特定の命令であるとき、
次命令アドレス指定手段3が指定するアドレスを選択す
るように、特定の命令でないとき、分岐アドレス指定手
段4が指定するアドレスを選択するように、指定するフ
ェッチ先決定手段8とにより構成する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、1命令語中に複数の処
理(単位命令)を指定する長命令語方式の計算機(LI
W計算機)の分岐制御回路に関する。特に命令のプリフ
ェッチを行うLIW計算機で、条件分岐命令を演算処理
とは独立に処理する計算機の分岐処理回路に関する。
【0002】条件分岐命令の分岐先アドレスは、多くの
場合、その条件判定以前に得ることができる。そこで、
分岐先アドレスを得た段階で、分岐するかしないかの予
測ができれば、分岐スロットを埋めて処理の高速化を図
ることができる。そのため、分岐処理を演算パイプライ
ンとは独立に行うことが求められている。
【0003】これを行う分岐制御回路は、命令のプリフ
ェッチを行い、命令パイプラインに隙間をあけることな
く命令を供給する役割をもち、条件分岐命令をフェッチ
した場合、条件の確定を待たずに分岐方向を予測して命
令のフェッチを行う必要がある。
【0004】しかし、分岐方向の予測を誤ってプリフェ
ッチした場合、条件確定時に再度フェッチを行い改めて
デコードする必要があり、処理速度の低下をまねく。さ
らに、無用な命令フェッチのためにメモリのアクセスポ
ートが使用され、オペランドのアクセス等を阻害するこ
とになる。また、無用な命令フェッチによってキャッシ
ュに不要な命令を読み込み、必要な命令列がキャッシュ
から失われることになる。これらによっても処理速度の
低下に結びつく。このため、分岐先を的確に予測する必
要がある。
【0005】
【従来の技術】分岐先の予測方法として、ハードウェア
によるものとソフトウェアによるものとがある。前者の
例には、分岐処理の履歴をとり、その履歴に従って分岐
方向を予測する方法がある。しかし、この方法は多量の
物量を要しながら、ソフトウェアの特性が反映されない
ため、必ずしも予測の正解率は高くない。後者の方法の
例は、コンパイラ等でコード化する時に効率的な分岐方
向を予測する方法である。例えば、N回ループを回る場
合には分岐する回数Nに対して分岐しないのは1回だけ
である。従って、分岐命令フィールド中にプリフェッチ
方向を指示するフラグビットを設け、コンパイラがコー
ド化する時に、分岐する場合と分岐しない場合のどちら
の可能性が高いかを判断してこのフラグを設定してお
く。ハードウェアの分岐制御回路はこのフラグに従っ
て、命令語をプリフェッチするアドレスを切り替える。
【0006】この方法は少ないハードウェアで、高い予
測正解率が得られるが、命令語の中にフラグを設ける必
要があるため、その余裕がない場合や、既存するモデル
との間で命令互換性を保たねばならない場合には採用で
きない。
【0007】
【発明が解決しようとする課題】本発明は、LIW命令
の特徴を生かすことにより、命令フィールドの拡張を行
なわず、すなわち命令語の変更を行なわないで、ソフト
ウェアによる分岐予測方法を実現することを目的として
いる。
【0008】
【課題を解決するための手段】本発明は、コンパイラに
よってコードに変換する際に分岐先として確率の高い方
向を予測し、その情報を命令語中に反映させることが基
本である。
【0009】LIW計算機の場合、1命令語中に複数の
単位命令が記述されるため、分岐命令を含む命令語中に
は、他の単位命令を記述することができる。そこで、命
令フィールドに特定のフラグを用意せず、分岐命令と組
み合わされた単位命令の種類によって分岐予測情報を与
えるようにしたものである。
【0010】図1は本発明の原理ブロック図である。図
1(A)に示すように、1命令語中に複数の単位命令を
記述する長命令語方式の計算機において、プリフェッチ
した命令語を保持するための命令バッファ1と、非分岐
時にフェッチする命令アドレスを指定する次命令アドレ
ス指定手段3と、分岐先アドレスを指定する分岐アドレ
ス指定手段4と、前記の2つのアドレスを選択するアド
レス選択手段7と、命令バッファ1の最後段にある命令
語の中の単位命令のオペレーションコードを調べて条件
分岐命令を検出する条件分岐命令検出手段5と、その命
令語中の他の単位命令のオペレーションコードを調べて
特定の命令であることを検出する特定命令検出手段6
と、条件分岐命令検出手段5が条件分岐命令を検出した
とき、その条件分岐命令の指定する条件が確定していれ
ば、その条件に従ったアドレスを選択するように、指定
の条件が未確定であり、かつ、特定命令検出手段6が、
他の単位命令が特定の命令であることを検出したとき、
次命令アドレス指定手段3が指定するアドレスを選択す
るように、指定の条件が未確定であり、かつ、特定命令
検出手段6が、他の単位命令が特定の命令でないことを
検出したとき、分岐アドレス指定手段4が指定するアド
レスを選択するように、アドレス選択回路7に指定する
フェッチ先決定手段8とより構成する。
【0011】また、図1(B)に示すように、特定のオ
ペレーションコードを指定する1つ以上のレジスタ10を
備え、そのレジスタ10と単位命令中のオペレーションコ
ードとを比較して特定命令を検出するようにしてもよ
い。
【0012】
【作用】条件分岐命令と組み合わされた単位命令が特定
命令であると、コンパイラは分岐が成立しない可能性が
高いと予測したことを示すことになる。逆に、組み合わ
された単位命令が特定命令でなければ分岐が成立する可
能性が高いと予測したことを示す。従って、分岐制御回
路はそれに従って命令語をプリフェッチするアドレスを
切り替えれば、再フェッチの頻度が少なくなる。
【0013】
【実施例】以下、図面を参照して本発明の実施例を説明
する。図2は本発明の実施例の要部を示す。図1と同一
の機能のものは、同一の符号を付して示す。
【0014】この実施例のLIW命令は2つの単位命令
からなる。また、分岐命令は2つの単位命令の2番目の
ものに記述されるものとする。特定命令(分岐しないこ
とを予測したことを示す機能をもつ単位命令)は減算命
令(SUB)とする。
【0015】プリフェッチされた命令語は命令バッファ
1にとりこまれ、同時にこの命令語のアドレスがアドレ
スバッファ2に保持される。アドレス生成器3はアドレ
スバッファ2の値に命令語長を加えて、非分岐時のアド
レス(次の命令語のアドレス)を生成する。アドレス生
成器4はアドレスバッファ2の値に分岐オフセット12の
値を加えて、分岐時のアドレスを生成する。これら2つ
のアドレスはセレクタ7によって選択され、命令語のプ
リフェッチアドレスとして使われる。
【0016】分岐命令検出器5は、命令フィールドのう
ち、分岐命令が位置する2番目のフィールドのオペレー
ションコード11を監視し、条件分岐命令であるときに
‘1’を、それ以外のとき‘0’を出力する。命令比較
器6は残る命令フィールドのオペレーションコード14
を、減算命令(SUB)のオペレーションコードと一致
するか否かを監視し、減算命令(SUB)であるときに
‘1’を、それ以外のとき‘0’を出力する。
【0017】セレクタ9は、条件分岐命令の条件指定フ
ィールド13の値により、図には示してない演算処理部の
出力である条件コードCCをみて、分岐条件の成立/不
成立を‘1’‘0’の出力で示す。セレクタ80は分岐条
件の成立/不成立を示す信号と減算命令(SUB)であ
るか否かを示す信号とを、条件コードCCの有効信号V
によって選択する。条件コードCCの有効信号Vが
‘1’であれば分岐条件の成立/不成立を示す信号(セ
レクタ9の出力)が、‘0’であれば減算命令(SU
B)であるか否かを示す信号(命令比較器6の出力)が
出力され、ANDゲート81で条件分岐命令であることを
示す信号(分岐命令検出器5の出力)とANDをとって
セレクタ7に選択制御信号として入力され、分岐アドレ
スと非分岐アドレスを切り替える。従って、分岐条件が
確定しているときはそれに従ったアドレスから命令語が
プリフェッチされ、分岐条件が未確定であれば、予測に
基づくアドレスから命令語がプリフェッチされる。
【0018】図3に減算命令(SUB)を非分岐予測を
示す特定命令に定めた場合のプログラム例を示す。ステ
ップ〜は、レジスタgr1 にある入力パラメータの値
を調べ、その値に従って異なる処理を行なうため分岐す
る場合である。ステップで入力パラメータが「1」の
場合、減算命令SUBの結果の条件コードCCは0にセ
ットされ、次のステップで、条件分岐命令BRCによ
りCC=0なら、label-1 へ分岐する。入力パラメータ
が「1」ではない場合、CCは0ではなく、分岐はしな
い。従って、入力パラメータが「3」ならばステップ
のBRCでは分岐せず、ステップの減算命令SUBの
結果の条件コードCCは0にセットされ、次のステップ
で、条件分岐命令BRCによりlabel-2 へ分岐する。
入力パラメータが「5」ならばステップ、ステップ
のBRCでは分岐せず、ステップの減算命令SUBの
結果の条件コードCCは0にセットされ、次のステップ
で、条件分岐命令BRCによりlabel-3 へ分岐する。
【0019】このようにパラメータの値がいくつもあ
り、その値を順番に調べて分岐先を変えるようなとき
は、個々の分岐命令で分岐しない場合の方が多い。従っ
てコンパイラは、条件分岐命令BRCに非分岐予測を示
す特定命令である減算命令SUBを組み合わせて、分岐
しないことを予測したことを示す。
【0020】ステップ〜は、例えばメモリ上の文字
列を別の領域に移す場合である。文字列の最後は「0」
であり、それによって終了する。ステップの命令SU
Bで、メモリから読み出した文字が「0」であるかどう
かを調べ、ステップの命令BRCでは、文字が「0」
でない限りステップへループする。つまり、この命令
では分岐することの方が多い。従って特定命令ではない
加算命令ADDを組み合わせて、分岐することを予測し
たことを示す。この予測が外れるのは一回だけである。
【0021】
【発明の効果】以上説明したように、本発明によれば、
命令語の変更を行なわないで、効率のよいソフトウェア
による分岐予測の方法を実現することができる。
【図面の簡単な説明】
【図1】本発明の原理ブロック図である。
【図2】本発明の実施例の要部を示す構成ブロック図で
ある。
【図3】実施例のプログラム例である。
【符号の説明】
1 命令バッファ 2 (アドレスバッファ) 3 次命令アドレス指定手段(アドレス生成器) 4 分岐アドレス指定手段(アドレス生成器) 5 条件分岐命令検出手段(分岐命令検出器) 6 特定命令検出手段(命令比較器) 7 アドレス選択手段(セレクタ) 8 フェッチ先決定手段 80 (セレクタ) 81 (ANDゲート) 9 (セレクタ) 10 レジスタ 11 (オペレーションコード) 12 (分岐オフセット) 13 (条件指定フィールド) 14 (オペレーションコード)

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 1命令語中に複数の単位命令を記述する
    長命令語方式の計算機において、 プリフェッチした命令語を保持するための命令バッファ
    (1)と、 非分岐時にフェッチする命令アドレスを指定する次命令
    アドレス指定手段(3)と、 分岐先アドレスを指定する分岐アドレス指定手段(4)
    と、 前記の2つのアドレスを選択するアドレス選択手段
    (7)と、 命令バッファ(1)の最後段にある命令語の中の単位命
    令のオペレーションコードを調べて条件分岐命令を検出
    する条件分岐命令検出手段(5)と、 その命令語中の他の単位命令のオペレーションコードを
    調べて特定の命令であることを検出する特定命令検出手
    段(6)と、 条件分岐命令検出手段(5)が条件分岐命令を検出した
    とき、 その条件分岐命令の指定する条件が確定していれば、そ
    の条件に従ったアドレスを選択するように、 指定の条件が未確定であり、かつ、特定命令検出手段
    (6)が、他の単位命令が特定の命令であることを検出
    したとき、次命令アドレス指定手段(3)が指定するア
    ドレスを選択するように、 指定の条件が未確定であり、かつ、特定命令検出手段
    (6)が、他の単位命令が特定の命令でないことを検出
    したとき、分岐アドレス指定手段(4)が指定するアド
    レスを選択するように、アドレス選択回路(7)に指定
    するフェッチ先決定手段(8)とより構成することを特
    徴とする分岐制御回路。
  2. 【請求項2】 特定のオペレーションコードを指定する
    1つ以上のレジスタ(10)を備え、そのレジスタと単位
    命令中のオペレーションコードとを比較して特定命令を
    検出するようにしたことを特徴とする請求項1に記載の
    分岐制御回路。
JP4308193A 1993-03-04 1993-03-04 分岐制御回路 Withdrawn JPH06259252A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP4308193A JPH06259252A (ja) 1993-03-04 1993-03-04 分岐制御回路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4308193A JPH06259252A (ja) 1993-03-04 1993-03-04 分岐制御回路

Publications (1)

Publication Number Publication Date
JPH06259252A true JPH06259252A (ja) 1994-09-16

Family

ID=12653895

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4308193A Withdrawn JPH06259252A (ja) 1993-03-04 1993-03-04 分岐制御回路

Country Status (1)

Country Link
JP (1) JPH06259252A (ja)

Similar Documents

Publication Publication Date Title
KR100431168B1 (ko) 단일 클럭 사이클 내에 불연속 명령을 페치하기 위한 방법 및 시스템
US4827402A (en) Branch advanced control apparatus for advanced control of a branch instruction in a data processing system
JP3565504B2 (ja) プロセッサにおける分岐予測方法及びプロセッサ
US8069336B2 (en) Transitioning from instruction cache to trace cache on label boundaries
US6408385B1 (en) Data processor
KR100974384B1 (ko) 분기 명령들을 예측하기 위한 방법 및 장치
JP4027620B2 (ja) 分岐予測装置、プロセッサ、及び分岐予測方法
JP2875909B2 (ja) 並列演算処理装置
US6247122B1 (en) Method and apparatus for performing branch prediction combining static and dynamic branch predictors
KR20090094335A (ko) 서브루틴 호를 인지하기 위한 방법들 및 장치
KR101026978B1 (ko) 리턴 스택을 운용하는 방법 및 장치
US7017030B2 (en) Prediction of instructions in a data processing apparatus
US20040117606A1 (en) Method and apparatus for dynamically conditioning statically produced load speculation and prefetches using runtime information
JP3794918B2 (ja) 復帰選択ビットを用いて分岐予測のタイプを分類する分岐予測
CN115576608A (zh) 处理器核、处理器、芯片、控制设备和指令融合方法
KR930001055B1 (ko) 가변 단어길이 명령의 병렬해독 및 병렬실행을 하는 데이터 처리장치
JPH08320788A (ja) パイプライン方式プロセッサ
JP3741870B2 (ja) 命令及びデータの先読み方法、マイクロコントローラ、疑似命令検出回路
US20050027921A1 (en) Information processing apparatus capable of prefetching instructions
US20050154859A1 (en) Branch prediction in a data processing apparatus
JP2004038338A (ja) 分岐予測機構を有する情報処理装置
JPH06259252A (ja) 分岐制御回路
JP2001022577A (ja) 情報処理装置
JP2503223B2 (ja) 先行制御方式
JPH04220722A (ja) パイプライン処理装置

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20000509