JPH0689173A - ブランチ・ヒストリーを持つ命令実行処理装置 - Google Patents
ブランチ・ヒストリーを持つ命令実行処理装置Info
- Publication number
- JPH0689173A JPH0689173A JP23988992A JP23988992A JPH0689173A JP H0689173 A JPH0689173 A JP H0689173A JP 23988992 A JP23988992 A JP 23988992A JP 23988992 A JP23988992 A JP 23988992A JP H0689173 A JPH0689173 A JP H0689173A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- branch
- address
- history
- information
- 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
Links
Landscapes
- Advance Control (AREA)
Abstract
行処理装置に関し、ブランチ・ヒストリーの効率的な使
用の実現を図ることを目的とする。 【構成】ブランチ・ヒストリーのエントリーを、命令ア
ドレスに対応付けられて、命令フェッチ長と命令語最小
単位長とから規定される個数のブロックで構成し、か
つ、ブランチ・ヒストリーへの登録の際には、分岐命令
の命令アドレスの指すブロックのエントリーに、エント
リーデータを登録するよう構成するとともに、ブランチ
・ヒストリーの参照の際には、命令フェッチ領域に含ま
れる命令語最小単位長毎の命令アドレスを索引アドレス
して、各ブロックのエントリーデータを参照するように
構成する。
Description
を持つ命令実行処理装置に関し、特に、ブランチ・ヒス
トリーの効率的な使用の実現を図るブランチ・ヒストリ
ーを持つ命令実行処理装置に関する。
命令の命令アドレスとの対応関係を登録管理するブラン
チ・ヒストリーを備えることで、分岐命令をパイプライ
ン処理の損失を伴うことなく実行する命令実行処理装置
が実用化されつつある。このような命令実行処理装置を
実用的なものにしていくためには、ブランチ・ヒストリ
ーの効率的な使用の実現を図る構成の構築が必要であ
る。
等の命令実行処理装置では、1つの命令の実行の完了を
待たずに、実行サイクルが空けば次々と後続の命令を投
入してその実行を開始する。このことによって性能の増
大を図ってきた。しかしながら、先行する命令の実行結
果が後続の命令の実行に影響を与えることで、先行する
命令の実行を待たなければ後続の命令の実行が開始でき
ないようなことが起こる。このような場合、パイプライ
ンに乱れが生じて性能低下が引き起こされる。
ンの1フローの処理では完了しないことがあり、このこ
とは、少なくとも命令語をデコードした後でないと判明
しない。また、命令語の大きさは、その論理仕様によっ
て複数の種類が規定される場合がある。
フェッチした後、次に実行される命令語の先頭アドレス
は、先にフェッチされた命令語をデコードした後でない
と判明しない。従って、次に実行すべき命令語のアドレ
スと、それがいつ必要になるかは、命令語をフェッチす
る時点では判明しない。このため、次に実行される命令
語のフェッチは、現在実行中の命令語をデコードした後
でないと実行することができず、高性能のパイプライン
の実現を困難にする。
いものとなる。すなわち、分岐が成立するか否かという
ことと、分岐先の命令アドレスは、分岐命令を実行した
後でないと判明しないため、上記で述べた命令語のデコ
ードよりも更に後のサイクルでないと次に実行される命
令語のフェッチが行えないことになる。
に、最近、過去に実行した分岐命令の命令アドレスと、
その分岐先命令の命令アドレスとの対応関係を登録管理
するブランチ・ヒストリーを備える構成を採って、過去
に実行した分岐命令が再び現れるときには、このブラン
チ・ヒストリーから分岐先の命令アドレスを索引してい
くことで、分岐先命令をできるだけ早く命令実行パイプ
ラインに投入していくという構成を採るようになってき
た。
リーを備えると、確かに、分岐命令に伴うパイプライン
処理の損失をなくすことができる可能性がある。しかし
ながら、従来技術では、具体的に、どのようにブランチ
・ヒストリーを構成して、どのように使用していくのか
ということが充分検討されていないという問題点があっ
た。
であって、ブランチ・ヒストリーを持つ命令実行処理装
置にあって、そのブランチ・ヒストリーの効率的な使用
の実現を図れるようにする新たなブランチ・ヒストリー
を持つ命令実行処理装置の提供を目的とするものであ
る。
を図示する。1はキャッシュであって、主記憶データの
写しを管理するもの、2-i(i=0〜2)は3系列備え
られる命令アドレス生成回路であって、キャッシュ1を
索引するための命令アドレスを例えば8バイトずつ順次
加算することで生成するもの、3はブランチ・ヒストリ
ーであって、過去に実行した分岐命令の命令アドレス
と、分岐先命令の命令アドレスと、その分岐処理の成立
・不成立等の各種制御情報とを登録管理するものであ
る。
チ・ヒストリー3への書込・読出処理を実行するもの、
5は読出情報検査加工回路であって、ブランチ・ヒスト
リー3から読み出されるデータの検査・加工処理を実行
するもの、6-i(i=0〜2)は3系列備えられる命令
バッファ回路であって、キャッシュ1から読み出される
命令列をバッファリングするもの、7は命令バッファ回
路6-iに対応付けて備えられるタグ管理回路であって、
読出情報検査加工回路5の出力情報をタグ情報として、
命令バッファ回路6-iにバッファリングされている命令
に対応付けて管理するものである。
回路2-iの出力するいずれかの命令アドレスか、タグ管
理回路7の出力する分岐先命令の命令アドレスのいずれ
かを選択して、キャッシュ1/ブランチ・ヒストリー3
に提示するもの、9はバッファ系列選択回路であって、
いずれかの命令バッファ回路6-iを選択して、その選択
した命令バッファ回路6-iのバッファリングする命令列
を命令実行パイプラインに投入するもの、10は命令供
給制御回路であって、タグ管理回路7の管理するタグ情
報に従ってバッファ系列選択回路9に対して選択指示信
号を送出するものである。
リーを、命令アドレスに対応付けられて、命令フェッチ
長と命令語最小単位長とから規定される個数のブロック
で構成する。例えば、命令フェッチ長が8バイトで、命
令語最小単位長が2バイトである場合には、ブランチ・
ヒストリー3は4個のブロックを用意する。
ランチ・ヒストリー3のブロック構成に合わせて、ブラ
ンチ・ヒストリー3にエントリーデータを登録する際に
は、分岐命令の命令アドレスの指すブロックのエントリ
ーにエントリーデータを登録する構成を採る。例えば、
分岐命令が奇数アドレスに配置されない場合には、書込
・読出制御回路4は、分岐命令のアドレスの内の最下位
ビットを除く下位2ビットの指すブロックにエントリー
データを登録する。
ランチ・ヒストリー3のブロック構成に合わせて、ブラ
ンチ・ヒストリー3のエントリーデータを参照する際に
は、命令フェッチ領域に含まれる命令語最小単位長毎の
命令アドレスを索引アドレスとして、各ブロックのエン
トリーデータを参照する構成を採る。例えば、フェッチ
アドレスが「1008HEX 」である場合にあって、命令
フェッチ長が8バイトであり、命令語最小単位長が2バ
イトである場合には、「1008HEX 」、「100A
HEX 」、「100CHEX 」及び「100EHEX 」を索引
アドレスとして、各ブロックのエントリーデータを参照
する。
御回路4がエントリーデータを参照することで、ブラン
チ・ヒストリー3に分岐成立の分岐命令が登録されてい
ることが検索されるときには、その分岐命令の命令アド
レスとフェッチアドレスとの差分アドレス情報を算出し
て、この算出した差分アドレス情報を、分岐成立情報及
び分岐先アドレス情報とともにタグ情報としてタグ管理
回路7に出力する。このようにして、読出情報検査加工
回路5から分岐命令のタグ情報を受け取ると、タグ管理
回路7は、分岐先アドレス情報については、直ちに選択
回路8に出力していくとともに、差分アドレス情報及び
分岐成立情報については、命令バッファ回路6-iをシフ
トしていく分岐命令に対応付けて管理していく。
ヒストリーを参照して、過去の分岐命令の実行結果から
分岐成立となる可能性を示唆する履歴情報が得られる場
合に、読み出された過去における分岐命令の分岐先の命
令アドレスに関する命令フェッチ、及び、これに連続す
る領域に対する命令フェッチを、命令実行パイプライン
における分岐命令の実行とは独立に、これよりも先行し
て行い、かつ、その際に使用する命令アドレスと命令語
の保持手段を指し示す識別情報をブランチ・ヒストリー
を参照した命令フェッチに関連付けて、命令フェッチの
タグ情報として、管理する。
置かれるアドレス境界に対応付けられ、かつ、命令フェ
ッチの際に1回のアクセスでフェッチされる単位長さを
包含する個数のブロックに分割して構成し、分岐命令の
実行結果に基づいてブランチ・ヒストリーへ情報を登録
する際には、分岐命令の命令アドレスの指す単一のブロ
ックのエントリーに登録するとともに、命令フェッチの
際には、1回のアクセスでフェッチされる単位長の全域
に対応して、ブランチ・ヒストリーの複数ブロックを同
時に参照する。
トリーを参照して、分岐命令の過去の実行結果が何れか
1つ、または、複数のブロックから履歴情報として得ら
れた場合には、これらのうち最も低いアドレスに対応付
けられるブロックから得られる履歴情報を採用した上
で、その採用された履歴情報が得られたブランチ・ヒス
トリーのブロックを識別する情報と、命令フェッチのア
クセス単位の先頭アドレスとから、命令フェッチの1回
のアクセスでフェッチされる単位長さの中のどの位置
に、ここで採用された履歴情報が対応付けられるかを判
別する情報を生成し、それをブランチ・ヒストリーから
読み出される、分岐命令の命令アドレス、分岐先命令の
命令アドレス、及び、該分岐命令の実行結果に関する制
御情報等の情報とともに命令フェッチのタグ情報とし
て、管理する。
ージにおける命令のデコード結果によって、ブランチ・
ヒストリーに履歴が登録されている可能性のある分岐命
令であることが判明し、かつ、そこで命令フェッチのタ
グ情報を参照して、該命令語に関連して、過去の分岐命
令の実行結果から分岐成立となる可能性を示唆する履歴
情報が得られる場合に、該分岐命令の命令実行パイプラ
インにおける最初の実行ステージでの処理の完了に同期
して、命令語の命令実行パイプラインへの投入の制御
を、それまで命令実行パイプラインに投入していた命令
列を保持する命令語の保持手段に代えて、命令フェッチ
のタグ情報に示される、既にフェッチを開始している分
岐先の命令列を保持する命令語の保持手段に切り替える
ことによって、ブランチ・ヒストリーによって過去の実
行結果から分岐成立となる可能性を示唆する履歴情報が
得られた分岐命令に続いて、その履歴情報によって予測
される分岐先の命令列を命令実行パイプラインへ投入す
る。
チ・ヒストリー3の効率的な使用の実現が図れるように
なるのである。
明を詳細に説明する。これから説明する実施例のCPU
は、命令フェッチのパイプラインと、命令実行のパイプ
ラインという独立したパイプラインを備えている。ここ
で、この命令フェッチパイプラインは、IAサイクル
(命令フェッチアドレスの計算サイクル)、ITサイク
ル(アドレス変換サイクル)、IBサイクル(バッファ
の読出サイクル)、IRサイクル(命令実行パイプライ
ンとの同期サイクル)という「IAーITーIBーI
R」という4サイクル構成を採り、一方、命令実行パイ
プラインは、Dサイクル(命令の解読サイクル)、Aサ
イクル(主記憶オペランドのアドレス計算サイクル)、
Tサイクル(アドレス変換サイクル)、Bサイクル(オ
ペランドの読出サイクル)、Eサイクル(演算実行サイ
クル)、Wサイクル(演算結果格納サイクル)という
「DーAーTーBーEーW」という6サイクル構成を採
るものとする。
全体構成を図示する。図中、図1で説明したものと同じ
ものについては同一の記号で示してある。1aは命令フ
ェッチパイプラインで索引されるキャッシュ、1bは命
令実行パイプラインで索引されるキャッシュ、11は命
令実行パイプラインに展開されて主記憶オペランドのア
ドレス計算を行うオペランドアドレス生成回路(以下、
OP EAGと略記することがある)、12は命令実行
パイプラインに展開されて演算処理を行う演算器、13
は命令実行パイプラインに展開されてタグを管理するタ
グ管理回路である。
2(以下、IF EAGと略記することがある)の周辺
回路の一実施例を図示する。この図の命令アドレス生成
回路2-i(i=0〜2)は、A系列(ID=00)、B系
列(ID=01)、C系列(ID=10)という3系列から
構成されている。従って、これに対応して、後述するよ
うに、命令バッファ回路6もA系列、B系列、C系列と
いう3系列から構成されることになる。
ジスタであって、命令アドレス生成回路2-0に命令アド
レスを提示する。IARBはB系列の命令アドレスレジ
スタであって、命令アドレス生成回路2-1に命令アドレ
スを提示する。IARCはC系列の命令アドレスレジス
タであって、命令アドレス生成回路2-2に命令アドレス
を提示する。
・ステータス・ワード)から入るか、分岐命令の分岐
先命令フェッチを行うときに、OP EAGやIB B
RHS TIARの値がIF EAGの出力として選択
されて入る。また、IARBやIARCには、上記の
場合に、命令フェッチの先頭アドレスが入る。ここで、
IB BRHS TIARとは、ブランチ・ヒストリー
3を索引して得られた分岐先の命令アドレスを保持する
命令フェッチパイプラインのIBサイクルのタグであ
る。
RAの保持する命令アドレスか、命令アドレス生成回路
2-0の生成する命令アドレスのいずれか一方を選択す
る。20-1はB系列の選択回路であって、IARBの保
持する命令アドレスか、命令アドレス生成回路2-1の生
成する命令アドレスのいずれか一方を選択する。20-2
はC系列の選択回路であって、IARCの保持する命令
アドレスか、命令アドレス生成回路2-2の生成する命令
アドレスのいずれか一方を選択する。
の出力する命令アドレスか、命令実行パイプラインのオ
ペランドアドレス生成回路11の生成するオペランドア
ドレス(OP EAG)か、IB BRHS TIAR
のいずれかを選択して、キャッシュ1a/ブランチ・ヒ
ストリー3に渡していくとともに、選択した命令アドレ
スを対応のIARに戻していく。
ドバックされてくる命令アドレスと、例えば8バイトと
いうフェッチの命令長とを加算して、その命令列の次の
命令フェッチのための命令アドレスを生成していくこと
で、次々にフェッチのための命令アドレスを生成して、
キャッシュ1a/ブランチ・ヒストリー3に渡していく
よう処理することになる。
は、各系列のいずれかを選択した上で、場合によって異
なる以下のアドレスを用いて行われる。すなわち、その
1つは、作動状態になった最初の命令フェッチや、同じ
系列に対する2つ目以降の命令フェッチの場合で、この
場合には、PSWのセットした命令アドレスを起点とし
て、それに8バイトずつ加算していくことで求められる
命令アドレスを用いて命令フェッチが行われる。別の1
つは、分岐命令を実行してその分岐先のターゲット・フ
ェッチを行う場合で、この場合には、オペランドアドレ
ス生成回路11で生成された分岐先の命令アドレスを起
点として、それに8バイトずつ加算していくことで求め
られる命令アドレスを用いて命令フェッチが行われる。
更に別の1つは、先行する命令フェッチにおいてブラン
チ・ヒストリー3にヒットした場合で、この場合には、
ブランチ・ヒストリー3から得られる過去に実行したこ
とのある分岐命令の分岐先の命令アドレスを起点とし
て、それに8バイトずつ加算していくことで求められる
命令アドレスを用いて命令フェッチが行われる。
と、その周辺回路の一実施例を図示する。この図の命令
バッファ回路6-i(i=0〜2)は、図3に示した命令
アドレス生成回路2-iに対応して、A系列、B系列、C
系列という3系列から構成されることになる。
る複数回の命令フェッチの結果を保持できるように、各
々1回分のフェッチデータを保持する4個の命令語レジ
スタIBR0,IBR1,IBR2,IBR3(図中の
IBRAはA系列、IBRBはB系列、IBRCはC系
列を表す)の直列接続で構成される。従って、命令フェ
ッチが8バイト単位で行われるとするときには合計32
バイトの容量を持つ。キャッシュ1aから読み出される
フェッチデータはIBR3に供給され、このようにして
新たにIBR3にフェッチデータが供給されると、各段
のフェッチデータは前段のIBRにシフトされていくこ
とになる。命令フェッチは、このIBR上のフェッチデ
ータが、命令実行パイプラインに命令語として供給され
て消費されるまで、上述のシフト動作によってIBRか
らのあふれを生じないないように制御されることにな
る。
(図中でNSICAと略記することがある)、60-1は
B系列のNSIカウンタ(図中でNSICBと略記する
ことがある)、60-2はC系列のNSIカウンタ(図中
でNSICCと略記することがある)、61-0はA系列
の抽出回路、61-1はB系列の抽出回路、61-2はC系
列の抽出回路、9は図1で説明したバッファ系列選択回
路である。
イプラインに投入する命令語のIBR上の保持位置を管
理するものであって、命令語最小単位長がハーフワード
の2バイトである場合には、2バイト単位でもってIB
R上のアドレス位置を管理することになる。この実施例
のNSIカウンタ60-iは、5ビットで構成されて、I
BR0の先頭アドレスとして「00HEX 」、IBR1の
先頭アドレスとして「04HEX 」、IBR2の先頭アド
レスとして「08HEX 」、IBR3の先頭アドレスとし
て「0CHEX 」が割り付けられて、更に、「10HEX 」
でIBRが空であることを表す。例えば、NSIカウン
タ60-iの値が「00111」であれば、IBR1の0
番目から始まるハーフワードの内の第3番目のハーフワ
ードというように、IBR上のアドレス位置を管理する
とともに、例えば「10000」であればIBRが空で
あるということを管理するのである。
イプラインから新たなフェッチデータが供給されて、I
BRの各段のフェッチデータが前段にシフトされるとき
に、IBR0側に向けて8バイト分、すなわち4だけカ
ウンタ値をディクリメントするとともに、命令実行パイ
プラインに命令語が投入されると、IBR3側に向けて
その命令語長分カウンタ値をインクリメントする。な
お、命令フェッチは、常に8バイト単位で実行されるも
のであることから、各フェッチデータの先頭は、常に、
各IBRの先頭アドレス位置に保持されることになる。
の保持するフェッチデータを入力として、自系列のNS
Iカウンタ60-iの指すIBR上のアドレス位置から、
命令語を抽出する。図5に、抽出回路61-iの詳細な回
路構成を図示する。ここで、図中のaは選択回路を表し
ており、この図では、NSIカウンタ60-iが「010
01」を管理することに対応して、抽出回路61-iは、
IBR2の第1番目のハーフワードから6バイトの命令
語を抽出する例を示してある。
るように、命令供給制御回路10から与えられる系列選
択指示信号(PRESENT ID)の指す系列の抽出
回路61-iを選択して、その選択した抽出回路61-iの
抽出する命令語を命令実行パイプラインに投入していく
ことになる。
7の回路の一実施例を図示する。タグ管理回路7は、図
6に示すように、命令フェッチパイプラインの実行サイ
クルに同期させて、ブランチ・ヒストリー3の索引によ
り得られる分岐命令のタグ情報を流していって、IBR
TAGSにこのタグ情報を流していくよう処理する。
このIBR TAGSの詳細な回路構成が図7に示すも
のであって、命令バッファ回路6-iと同様の回路構成を
採って、命令バッファ回路6-iのフェッチデータに対応
付けて分岐命令のタグ情報を管理することになる。
2バイトといった命令語最小単位長で抽出されて命令実
行パイプラインに投入されていくのに対して、このIB
R TAGSの管理するタグ情報は、命令レジスタIBR
に対応付けられるTAGレジスタの8バイトを単位とし
て1セットとなる。すなわち、フェッチデータを単位し
て管理されるものであることから、NSIカウンタ60
-iの下位2ビットのビット値(その下位2ビットに続く
上位2ビットの指すIBR内における命令語の保持位置
を表している)に関係なく、その上位2ビットの指すI
BRに対応付けて読み出されていくことになる。
より得られる分岐命令のタグ情報の内、分岐先命令の命
令アドレス(BRHS TIAR)については、図3に
も示したように、IBサイクルでもって選択回路21に
出力されて命令フェッチに使用され、分岐成立情報と後
述する差分アドレス情報(BRHS TID)とについ
ては、図7に示す構成を採るIBR TAGSに管理さ
れていく。
3と、その周辺回路の一実施例を図示する。ここで、4
は図1で説明した書込・読出制御回路、5は図1で説明
した読出情報検査加工回路である。
の命令アドレスとその分岐先の命令アドレスとの対応関
係を、分岐が成立したか否か等の制御情報とともに管理
する。ここで、このエントリーデータは、分岐命令を実
行する命令実行パイプラインのWサイクルで登録される
ことになる。これは、Wサイクルでは、分岐命令の分岐
成立・不成立が確定していることと、PSWの指すIA
Rの命令アドレス(PSW IAR)が、Wサイクルで
実行中の命令の命令アドレスを指し示すことで都合がよ
いからである。
チ・ヒストリー3には、図8に示すように、PSW I
AR(図中では、WIARで記述してある)と、命令実
行パイプラインのWサイクルのタグであるWOARと、
分岐命令の実行結果が分岐成立であったことを示すタグ
のW BR TKNとが入力されることになる。ここ
で、WOARは主記憶オペランドアドレスのタグで、オ
ペランドアドレス生成回路11の出力をパイプラインに
沿ってシフトしたものである。すなわち、ブランチ・ヒ
ストリー3には、分岐命令の命令アドレスの示すWIA
Rと、その分岐命令の分岐先となる命令アドレスの示す
WOARと、分岐成立情報のW BR TKNとが入力
されることになるのである。
ントリーデータのデータ構造、図10に、このブランチ
・ヒストリー3を索引することになる命令アドレス生成
回路2-iの生成する命令アドレスのデータ構造を図示す
る。
リー3は、分岐命令自身の命令アドレスであるWIAR
のビット20〜28をアドレスとし、WIARのビット29〜
30で示されるブロックに、分岐命令自身の命令アドレス
であるWIARのビット1〜19をOIARとして登録
し、分岐先命令の命令アドレスであるWOARのビット
1〜30をTIARとして登録し、その分岐命令の分岐成
立を表すW BR TKN等を制御情報として登録して
これを管理する。一方、この図10に示すように、命令
アドレス生成回路2-iの生成する命令アドレスは、ブラ
ンチ・ヒストリー3のエントリーデータのOIARと比
較されるビット1〜19のEIAR部分と、ブランチ・ヒ
ストリー3の索引アドレスとして用いられるビット20〜
28のADRS部分と、これから説明するブランチ・ヒス
トリー3の持つ4つのブロックの内の1つを指定するビ
ット29〜30のID部分と、残りのビット31とから構成さ
れることになる。
トである場合、命令語は2バイトのアドレス境界に置か
れる。一方、命令フェッチは8バイトずつ行われる。こ
れから、ブランチ・ヒストリー3は、8バイトのフェッ
チデータの中に含まれる最大4個の命令語が分岐命令で
あるか否かを管理するために、図8に示すように、4個
のブロックのエントリーを持つ構造を採ることになる。
ここで、分岐命令の命令アドレスが与えられるときに、
4個ある内のどのブロックに登録されるかは命令アドレ
スにより決定されることになり、例えば、命令アドレス
が奇数アドレスをとらない場合には、最下位ビットを除
く下位2ビット、すなわち、図10で説明したビット29
〜30のID部分のビット値の指すブロックに登録される
構成が採られる。
4の詳細な回路構成の一実施例を図示する図中、40は
加算器、41〜47は選択回路、48は第0番目(ID
=00)のブロックをアクセスするための命令アドレスを
保持するアドレスレジスタ、49は第1番目(ID=0
1)のブロックをアクセスするための命令アドレスを保
持するアドレスレジスタ、50は第2番目(ID=10)
のブロックをアクセスするための命令アドレスを保持す
るアドレスレジスタ、51は第3番目(ID=11)のブ
ロックをアクセスするための命令アドレスを保持するア
ドレスレジスタである。
2-iの生成する命令アドレスのビット1〜28に“1”を
加算する。選択回路41は、命令アドレス生成回路2-i
の生成する命令アドレスのビット29〜30が“00”の値
を示すときに、その命令アドレスを選択し、それ以外の
値を示すときに、加算器40の出力する命令アドレスを
選択する。選択回路42は、命令アドレス生成回路2-i
の生成する命令アドレスのビット29〜30が“0x(x=
0or1)”の値を示すときに、その命令アドレスを選択
し、“1x(x=0or1)”の値を示すときに、加算器
40の出力する命令アドレスを選択する。選択回路43
は、命令アドレス生成回路2-iの生成する命令アドレス
のビット29〜30が“11”以外の値を示すときに、その
命令アドレスを選択し、“11”の値を示すときに、加
算器40の出力する命令アドレスを選択する。
リー3への書込処理のときにはWIARの示す命令アド
レスを選択し、ブランチ・ヒストリー3からの読出処理
のときには選択回路41の出力する命令アドレスを選択
してアドレスレジスタ48にセットする。選択回路45
は、ブランチ・ヒストリー3への書込処理のときにはW
IARの示す命令アドレスを選択し、ブランチ・ヒスト
リー3からの読出処理のときには選択回路42の出力す
る命令アドレスを選択してアドレスレジスタ49にセッ
トする。選択回路46は、ブランチ・ヒストリー3への
書込処理のときにはWIARの示す命令アドレスを選択
し、ブランチ・ヒストリー3からの読出処理のときには
選択回路43の出力する命令アドレスを選択してアドレ
スレジスタ50にセットする。選択回路47は、ブラン
チ・ヒストリー3への書込処理のときにはWIARの示
す命令アドレスを選択し、ブランチ・ヒストリー3から
の読出処理のときには命令アドレス生成回路2-iの生成
する命令アドレスを選択してアドレスレジスタ50にセ
ットする。
制御回路4は、ブランチ・ヒストリー3にエントリーデ
ータを登録するときには、WIARの示す命令アドレス
のビット29〜30のビット値の指すブロックにエントリー
データを登録していくよう処理する。
ーデータを参照するときには、加算器40と選択回路4
1,42,43の機能により、命令フェッチのアドレス
を使用して、そのフェッチアドレスを開始の索引アドレ
スとして、+2バイト、+4バイト、+6バイトした索
引アドレスに対応する合計4つの索引アドレスを使って
同時にアクセスするよう処理する。このアクセス処理に
従って、1回の命令フェッチでフェッチされる8バイト
分のフェッチデータに対応するブランチ・ヒストリー3
の4エントリー分のデータの索引を1回で行うことを可
能にする。
2,43の機能により、図12に示すように、フェッチ
アドレスのビット29〜30値が“00”を示すときには、
第0番目(ID=00)のブロックから始まって、同一の
エントリーライン上の4つのブロックを同時にアクセス
する。また、フェッチアドレスのビット29〜30値が“0
1”を示すときには、第1番目(ID=01)のブロック
から始まって、同一のエントリーライン上の第2番目
(ID=10)のブロック、第3番目(ID=11)のブロ
ックと、次エントリーライン上の第0番目(ID=00)
のブロックとを同時にアクセスする。また、フェッチア
ドレスのビット29〜30値が“10”を示すときには、第
2番目(ID=10)のブロックから始まって、同一のエ
ントリーライン上の第3番目(ID=11)のブロック
と、次エントリーライン上の第0番目(ID=00)のブ
ロック、第1番目(ID=01)のブロックとを同時にア
クセスする。また、フェッチアドレスのビット29〜30値
が“11”を示すときには、第3番目(ID=11)のブ
ロックから始まって、次エントリーライン上の第0番目
(ID=00)のブロック、第1番目(ID=01)のブロ
ック、第2番目(ID=11)のブロックを同時にアクセ
スするのである。
理は、命令フェッチパイプラインに同期して、IAサイ
クルで命令アドレス生成回路2-iの生成する命令アドレ
スをアドレスレジスタ48〜51にセットして、ITサ
イクルでブランチ・ヒストリー3のRAMをアクセスす
ることで実行されることになる。
報検査加工回路5の詳細な回路構成の一実施例を図示す
る。読出情報検査加工回路5は、図13に示すように、
ブランチ・ヒストリー3の4個のブロックに対応付けて
備えられる読出情報検査回路50-i(i=0〜3)と、
読出情報加工回路51とから構成される。この読出情報
検査回路50-i(i=0〜3)は、対応のブロックに、
索引アドレスの指す分岐命令が登録されているか否かを
検索して、分岐命令が登録されているときには分岐先命
令の命令アドレスを出力する。一方、読出情報加工回路
51は、これらの読出情報検査回路50-iの出力情報を
受けて、ブランチ・ヒストリー3に分岐命令が登録され
ているか否かを表示するヒット情報(BRHS HI
T)と、登録されている分岐先の命令アドレス(BRH
S TIAR)と、これから詳述する差分アドレス情報
(BRHS TID)とを出力する。
構成の一実施例、図15に、読出情報加工回路51の回
路構成の一実施例を図示する。読出情報検査回路50-i
は、図14に示すように、排他的NOR回路500-i
と、AND回路501-iとから構成される。この排他的
NOR回路500-iは、ブランチ・ヒストリー3の対応
のブロックから読み出されるOIARと、索引アドレス
のビット1〜19(図10のEIAR)とを比較すること
で、両者が一致しているか否かを検出する。AND回路
501-iは、排他的NOR回路500-iが一致を検出
し、かつ、そのブロックから読み出される制御情報が有
効なエントリーであることを表示しているときに、ヒッ
ト情報を出力する。そして、読出情報検査回路50-i
は、このヒット情報を出力するときに、TIARで表さ
れる分岐先命令の命令アドレスを出力するよう処理す
る。
-iは、対応のブロックに、書込・読出制御回路4の生成
する命令アドレスを持つ分岐命令が登録されているか否
かを検査して、分岐命令が登録されているときには分岐
先命令の命令アドレスを出力するよう動作するのであ
る。
示すように、OR回路510と、プライオリティ回路5
11と、選択回路512と、エンコーダ513と、アド
レスレジスタ514と、減算器515とから構成され
る。このOR回路510は、読出情報検査回路50-iの
出力する4つのヒット情報の論理和値を算出して出力す
ることで、BRHS HITを出力する。プライオリテ
ィ回路511は、読出情報検査回路50-iの出力する4
つのヒット情報を入力として、ヒットした内の最も小さ
な索引アドレスを示すブランチ・ヒストリー3のブロッ
ク番号を選択する。選択回路512は、プライオリティ
回路511の選択したブロック番号の指す読出情報検査
回路50-iの出力するTIARを選択して出力すること
で、BRHS TIARを出力する。エンコーダ513
は、プライオリティ回路511の選択したブロック番号
をエンコードすることで、2ビット表示のブロック番号
を出力する。アドレスレジスタ514は、命令アドレス
生成回路2-iの出力する命令アドレスのビット29〜30の
ビット値、すなわちフェッチアドレスのビット29〜30の
ビット値を保持する。減算器515は、エンコーダ51
3の出力する2ビット値と、アドレスレジスタ514の
保持する2ビット値との差分値を算出することで、差分
アドレス情報であるBRHS TIDを出力する。すな
わち、減算器515は、ブランチ・ヒストリー3のヒッ
トしたエントリー(分岐命令か否かはこの時点では判明
していない)の内の最もフェッチアドレスに近いエント
リーに対応する命令アドレスと、フェッチアドレスとの
差分アドレス情報を算出するのである。
は、ブランチ・ヒストリー3に過去の分岐命令の実行結
果が登録されているか否かを表示するヒット情報のBR
HS HITと、登録されている分岐先の命令アドレスの
BRHS TIARと、分岐命令の命令アドレスとフェ
ッチアドレスとの差分アドレス情報であるBRHS TI
Dとを特定して、これらのタグ情報をタグ管理回路7に
流していく。
1によりタグ管理回路7に流されるタグ情報の内、BR
HS TIARについては、図3に示したように、IB
サイクルで選択回路21に出力される構成が採られるの
で、このIBサイクルから、ブランチ・ヒストリー3に
ヒットした分岐先命令の命令フェッチが開始されること
になる。この先行フェッチされる命令は、使用されてい
ない系列の命令バッファ回路6-iにバッファリングさ
れ、このとき使用する系列ID(BRHS TARGE
T REQ ID)は、ブランチ・ヒストリー3にヒッ
トした命令フェッチのタグ情報としてタグ管理回路7に
同様に流されていく。すなわち、読出情報加工回路51
によりタグ管理回路7に流されるタグ情報のBRHS
HIT,BRHS TIDと、このBRHS TARG
ET REQ IDとが、図7に示したIBR TAG
Sにセットされて命令供給制御回路10に提示されてい
くことになるのである。
0の一実施例を図示する。図中、100は系列IDレジ
スタ、101,102は選択回路、103は排他的NO
R回路、104,105はAND回路である。
系列選択回路9に対しての系列選択指示信号となる命令
バッファ回路6-iの系列ID(PRESENT ID)
を保持する。選択回路101は、系列IDレジスタ10
0の保持するPRESENT IDの指すNSIカウンタ
60-iを選択して、その選択したNSIカウンタ60-i
の下位2ビットを出力する。選択回路102は、タグ管
理回路7から与えられる上述のBRHS TARGET
REQ IDか、系列IDレジスタ100の保持する
PRESENT IDのいずれか一方を選択して、系列
IDレジスタ100にセットする。
7から与えられる2ビット値のBRHS TIDと、選
択回路101の選択出力するNSIカウンタ60-iの下
位2ビットのビット値とを比較することで、両者が一致
しているか否かを検出する。選択回路101の出力する
NSIカウンタ60-iの下位2ビットのビット値は、命
令実行パイプラインに投入する命令語の命令レジスタI
BRi内における保持位置を表しており、一方、タグ管
理回路7から与えられる2ビット値のBRHS TID
は、ブランチ・ヒストリー3にヒットした命令の命令ア
ドレスと、フェッチアドレスとの差分アドレスを表して
いることから、この両者が一致するということは、命令
実行パイプラインに投入する命令語がブランチ・ヒスト
リー3にヒットした命令であるということを意味する。
03が一致を検出し、かつ、タグ管理回路7から与えら
れるBRHS HITがヒットを表示し、かつ、命令実
行パイプラインのDサイクルの命令デコード回路から分
岐命令のデコード表示があるときに、命令バッファ回路
6-iの系列IDの切替要求指示信号となるD BRHS
HITを発行する。AND回路105は、AND回路
104がD BRHS HITを発行し、かつ、命令実行
パイプラインのDサイクルのがリリースされ、かつ、D
サイクルにある命令の最後のフローであるときに、選択
回路102に対して、タグ管理回路7から与えられるB
RHS TARGET REQ IDを選択するよう指
示する。
IBR PRESENTED及びBRHS TARG
ET REQ ID IBR PRESENTEDは、
IBR TAGSに保持されるタグ情報の内、NSIカ
ウンタ60-iとPRESENT IDで選択されたも
の、即ち、現在命令実行パイプラインに投入している命
令語の含まれるIBR上の8バイトのデータに対応する
BRHS HITとBRHS TARGET REQ
IDである。また、図16に示すBR TKN TARG
ET IDは、ブランチ・ヒストリー3にヒットしなか
った分岐命令の場合に、その分岐先の命令フェッチをO
P EAGを用いて行ったときの命令フェッチの系列I
Dであり、これは、分岐成立を示すBR TKNがオン
になると、選択回路102によって選択されてPRES
ENT IDにセットされる。
は、命令実行パイプラインに投入される命令語がブラン
チ・ヒストリー3にヒットした分岐命令であるときに
は、命令バッファ回路6-iにバッファリングされている
分岐先の命令列を選択して、命令実行パイプラインに投
入していくよう処理するのである。
を例にして、このように構成される実施例の動作処理に
ついて説明する。ここで、この動作処理の説明にあって
は、説明を簡単にするために、分岐動作以外の各命令の
オペレーション内容は省略し、また、命令語長は何れも
4バイトで、命令実行パイプラインを1フローで処理を
完了するものとする。
命令列が最初に実行される場合のときの動作処理につい
て説明する。時刻0で、ID=00のA系列を使用して、
IF EAG=1000HEX で命令フェッチが開始さ
れ、命令フェッチパイプラインのIA,IT,IB,I
Rの各サイクルをこの命令フェッチ要求が流れていく。
この処理で、始めの2命令を含む8バイトの領域がIB
RAに取り込まれる。パイプライン処理に従って、これ
に続いて、アドレスを+8バイトずつインクリメントし
ながら、次々とこれに続く領域が8バイトずつIBRA
に取り込まれていく。NSCIAの初期値は00
HEX で、最初の要求がIBサイクルを抜けるときに−4
されて、時刻3で、0C HEX となる。
は、IBRA3上に要求した命令語がセットされるの
で、NSICA=0CHEX に従って、IBRA3の先頭
から命令語を取り出して命令実行パイプラインに供給し
て、命令実行パイプラインのDサイクルを有効にし、そ
の後、命令1は命令実行パイプラインを順にA,T,
B,E,Wと流れていく。命令1は4バイトであり、こ
れが1τでDサイクルの処理を完了すると、NSICA
を+2するが、これと同時に、2つの目の命令フェッチ
要求がIBサイクルを抜けるので、こちらからはNSI
CAを−4しようとする。従って、差し引き−2され
て、時刻4では、NSICA=0AHEX となる。また、
このとき、最初の命令フェッチ要求でIBRA3上にセ
ットされた8バイトは、IBRA2上にシフトされる。
IBRA2のバイト4から始まる命令語を命令実行パイ
プラインに供給して、命令実行パイプラインのDサイク
ルを有効にし、その後、命令2も命令実行パイプライン
を順にA,T,B,E,Wと流れていく。以下、同様
に、命令フェッチ要求と、命令実行パイプラインにおけ
る命令処理の完了に同期して、NSICAを更新しなが
ら処理が行われていく。しかし、命令4は分岐命令であ
るために、これが命令実行パイプラインのAサイクルに
至る時刻7以降では、以上とは異なる動作が行われる。
OP EAGによって算出され、このアドレスを用いて
ID=01のB系列の命令フェッチが始まる。また、命令
4の後には、命令5が命令実行パイプラインに投入され
るが、命令4の分岐がそのAサイクルで確定し、分岐成
立となるので、命令5は、途中でキャンセルされ、PR
ESENT IDがID=01に切り替わって、分岐先の
ターゲットの命令列を実行すべきことが示される。その
後、分岐先の命令が用意される時刻10まで待って、分
岐先のターゲットである命令1が実行される。B系列に
おける命令フェッチ要求と、命令実行パイプラインにお
ける命令処理の完了と、NSICBの更新も、前述のA
系列におけるそれと同様である。
は、分岐命令の処理に関連して、4τの損失が生じてい
る。また、この場合には、命令4の分岐命令が実行され
ると、そのWサイクルでブランチ・ヒストリー3にそれ
が登録される。命令4の命令アドレスが100CHEX で
あるので、登録されるブランチ・ヒストリー3のアドレ
スは「001HEX 」、ブロックはID=10であり、OI
AR=00001HEX、TIAR=00001000
HEX とともに、制御情報として分岐成立であったことが
記録される。
録されている場合には、以上に説明したものとは異なる
動作を行う。次に、図20及び図21に従って、このと
きの動作処理について説明する。
関連して命令1,命令2が実行される様子は図18及び
図19の場合と同様である。2つ目の命令フェッチリク
エストは、IF EAG=1008HEX で行われる。こ
のリクエストのITサイクルでブランチ・ヒストリー3
を参照する場合には、1008HEX ,100AHEX ,1
00CHEX ,100EHEX に対応する1組のエントリー
が参照されて、この内の100CHEX 番地において、ブ
ランチ・ヒストリー3にヒットし、過去の実行結果が分
岐成立であったことが判明する。
RHS TIAR=1000HEX とともに、命令フェッ
チのアドレスと、ヒットしたエントリーに対応する命令
アドレスとの隔たりとからBRHS TID=10を求
める。より具体的には、図15の減算器515を用い
て、命令フェッチのアドレスのビット29,30 の値「0
0」を、ヒットしたブランチ・ヒストリー3のブロック
のID=10から減算して、BRHS TID=10を求
めるのである。これらをIBサイクルのタグとしてラッ
チアップして、時刻3で、これに基づく分岐のターゲッ
ト命令のフェッチをID=01の系列Bを使用して開始す
る。また、このターゲットの系列のIDも命令フェッチ
パイプラインのタグとして記憶する。
要求は、IRサイクルに入るが、このとき以降、BRH
S HIT,BRHS TID等のタグは、IBRAの
タグとして命令語と一緒に管理される。時刻6では、N
SICA=0EHEX で、IBRA3のバイト4からバイ
ト7にある命令4の分岐命令が命令実行パイプラインに
供給されて、Dサイクルで実行されている。このとき、
IBR TAGのA3 TAGに、BRHS HITがあ
って命令と同時にDサイクルに提示されており、更に、
BRHS TID=10で、NSICAの下位2ビット
と一致し、Dサイクルの命令がデコードした結果分岐命
令であるので、Dサイクルにある命令がブランチ・ヒス
トリー3にヒットしたことを示すD BRHS HIT
信号が上がっている。そこで、命令4がDサイクルを抜
けるときに、PRESENT IDをターゲットのIDで
あるID=01に切り替える。このタイミングで、既にI
D=01の命令フェッチのリクエストによって、命令4の
分岐先の命令1はIBRBに保持されており、時刻7で
は、それが命令実行パイプラインに投入される。これ以
降の動作は以上に説明したものと同様である。
イプラインの損失は全く生じないのである。
ブランチ・ヒストリーを持つ命令実行処理装置におい
て、ブランチ・ヒストリーの効率的な使用の実現を図れ
るようになるのである。
ある。
ある。
ある。
ータ構造図である。
る。
Claims (4)
- 【請求項1】 分岐命令の命令アドレスと、分岐先命令
の命令アドレスと、該分岐命令の実行結果に関する制御
情報とを登録管理するブランチ・ヒストリーを持ち、か
つ、命令フェッチに使用する命令アドレスと命令語の保
持手段を複数組備えて、複数の命令列の命令フェッチ
を、命令実行パイプラインにおける命令実行とは独立に
行う命令実行処理装置において、 ブランチ・ヒストリーを参照して、過去の分岐命令の実
行結果から分岐成立となる可能性を示唆する履歴情報が
得られる場合に、 読み出された過去における分岐命令の分岐先の命令アド
レスに関する命令フェッチ、及び、これに連続する領域
に対する命令フェッチを、命令実行パイプラインにおけ
る分岐命令の実行とは独立に、これよりも先行して行
い、 かつ、その際に使用する命令アドレスと命令語の保持手
段を指し示す識別情報をブランチ・ヒストリーを参照し
た命令フェッチに関連付けて、命令フェッチのタグ情報
として、管理するよう構成することを、 特徴とするブランチ・ヒストリーを持つ命令実行処理装
置。 - 【請求項2】 請求項1記載のブランチ・ヒストリーを
持つ命令実行処理装置において、 ブランチ・ヒストリーを、命令語の置かれるアドレス境
界に対応付けられ、かつ、命令フェッチの際に1回のア
クセスでフェッチされる単位長さを包含する個数のブロ
ックに分割して構成し、 分岐命令の実行結果に基づいてブランチ・ヒストリーへ
情報を登録する際には、分岐命令の命令アドレスの指す
単一のブロックのエントリーに登録するとともに、命令
フェッチの際には、1回のアクセスでフェッチされる単
位長の全域に対応して、ブランチ・ヒストリーの複数ブ
ロックを同時に参照するよう構成することを、 特徴とするブランチ・ヒストリーを持つ命令実行処理装
置。 - 【請求項3】 請求項1又は2記載のブランチ・ヒスト
リーを持つ命令実行処理装置において、 命令フェッチの際にブランチ・ヒストリーを参照して、
分岐命令の過去の実行結果が何れか1つ、または、複数
のブロックから履歴情報として得られた場合には、これ
らのうち最も低いアドレスに対応付けられるブロックか
ら得られる履歴情報を採用した上で、その採用された履
歴情報が得られたブランチ・ヒストリーのブロックを識
別する情報と、命令フェッチのアクセス単位の先頭アド
レスとから、命令フェッチの1回のアクセスでフェッチ
される単位長さの中のどの位置に、ここで採用された履
歴情報が対応付けられるかを判別する情報を生成し、そ
れをブランチ・ヒストリーから読み出される、分岐命令
の命令アドレス、分岐先命令の命令アドレス、及び、該
分岐命令の実行結果に関する制御情報等の情報とともに
命令フェッチのタグ情報として、管理するよう構成する
ことを、 特徴とするブランチ・ヒストリーを持つ命令実行処理装
置。 - 【請求項4】 請求項1、2又は3記載のブランチ・ヒ
ストリーを持つ命令実行処理装置において、 命令実行パイプラインの最初のステージにおける命令の
デコード結果によって、ブランチ・ヒストリーに履歴が
登録されている可能性のある分岐命令であることが判明
し、かつ、そこで命令フェッチのタグ情報を参照して、
該命令語に関連して、過去の分岐命令の実行結果から分
岐成立となる可能性を示唆する履歴情報が得られる場合
に、 該分岐命令の命令実行パイプラインにおける最初の実行
ステージでの処理の完了に同期して、命令語の命令実行
パイプラインへの投入の制御を、それまで命令実行パイ
プラインに投入していた命令列を保持する命令語の保持
手段に代えて、命令フェッチのタグ情報に示される、既
にフェッチを開始している分岐先の命令列を保持する命
令語の保持手段に切り替えることによって、ブランチ・
ヒストリーによって過去の実行結果から分岐成立となる
可能性を示唆する履歴情報が得られた分岐命令に続い
て、その履歴情報によって予測される分岐先の命令列を
命令実行パイプラインへ投入するように構成すること
を、 特徴とするブランチ・ヒストリーを持つ命令実行処理装
置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP23988992A JP3335379B2 (ja) | 1992-09-09 | 1992-09-09 | ブランチ・ヒストリーを持つ命令実行処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP23988992A JP3335379B2 (ja) | 1992-09-09 | 1992-09-09 | ブランチ・ヒストリーを持つ命令実行処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0689173A true JPH0689173A (ja) | 1994-03-29 |
JP3335379B2 JP3335379B2 (ja) | 2002-10-15 |
Family
ID=17051379
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP23988992A Expired - Fee Related JP3335379B2 (ja) | 1992-09-09 | 1992-09-09 | ブランチ・ヒストリーを持つ命令実行処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3335379B2 (ja) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6421771B1 (en) | 1998-06-29 | 2002-07-16 | Fujitsu Limited | Processor performing parallel operations subject to operand register interference using operand history storage |
US6530013B1 (en) | 1998-12-17 | 2003-03-04 | Fujitsu Limited | Instruction control apparatus for loading plurality of instructions into execution stage |
WO2007099604A1 (ja) * | 2006-02-28 | 2007-09-07 | Fujitsu Limited | コンピュータの分岐予測装置 |
US7447881B2 (en) | 2002-06-28 | 2008-11-04 | Fujitsu Limited | Branch prediction apparatus and method |
US7783868B2 (en) | 2002-06-28 | 2010-08-24 | Fujitsu Limited | Instruction fetch control device and method thereof with dynamic configuration of instruction buffers |
EP2261797A1 (en) | 2009-06-01 | 2010-12-15 | Fujitsu Limited | Information processing apparatus and branch prediction method |
EP2573673A1 (en) | 2011-09-22 | 2013-03-27 | Fujitsu Limited | Multithreaded processor and instruction fetch control method of multithreded processor |
EP2840484A2 (en) | 2013-08-15 | 2015-02-25 | Fujitsu Limited | Processor and control method of processor |
US10048969B2 (en) | 2015-07-24 | 2018-08-14 | Fujitsu Limited | Dynamic branch predictor indexing a plurality of weight tables by instruction address fetch history and making a prediction based on a product sum calculation of global history register values and outputted weight table value |
US11010170B2 (en) | 2018-08-16 | 2021-05-18 | Fujitsu Limited | Arithmetic processing apparatus which replaces values for future branch prediction upon wrong branch prediction |
-
1992
- 1992-09-09 JP JP23988992A patent/JP3335379B2/ja not_active Expired - Fee Related
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6421771B1 (en) | 1998-06-29 | 2002-07-16 | Fujitsu Limited | Processor performing parallel operations subject to operand register interference using operand history storage |
US6530013B1 (en) | 1998-12-17 | 2003-03-04 | Fujitsu Limited | Instruction control apparatus for loading plurality of instructions into execution stage |
US7783868B2 (en) | 2002-06-28 | 2010-08-24 | Fujitsu Limited | Instruction fetch control device and method thereof with dynamic configuration of instruction buffers |
US7447881B2 (en) | 2002-06-28 | 2008-11-04 | Fujitsu Limited | Branch prediction apparatus and method |
JP5136404B2 (ja) * | 2006-02-28 | 2013-02-06 | 富士通株式会社 | 演算処理装置、演算処理装置の制御方法 |
WO2007099604A1 (ja) * | 2006-02-28 | 2007-09-07 | Fujitsu Limited | コンピュータの分岐予測装置 |
US8578140B2 (en) | 2006-02-28 | 2013-11-05 | Fujitsu Limited | Branch prediction apparatus of computer storing plural branch destination addresses |
EP2261797A1 (en) | 2009-06-01 | 2010-12-15 | Fujitsu Limited | Information processing apparatus and branch prediction method |
US8595474B2 (en) | 2009-06-01 | 2013-11-26 | Fujitsu Limited | Information processing apparatus and branch prediction method |
EP2573673A1 (en) | 2011-09-22 | 2013-03-27 | Fujitsu Limited | Multithreaded processor and instruction fetch control method of multithreded processor |
US9069565B2 (en) | 2011-09-22 | 2015-06-30 | Fujitsu Limited | Processor and control method of processor |
EP2840484A2 (en) | 2013-08-15 | 2015-02-25 | Fujitsu Limited | Processor and control method of processor |
US10048969B2 (en) | 2015-07-24 | 2018-08-14 | Fujitsu Limited | Dynamic branch predictor indexing a plurality of weight tables by instruction address fetch history and making a prediction based on a product sum calculation of global history register values and outputted weight table value |
US11010170B2 (en) | 2018-08-16 | 2021-05-18 | Fujitsu Limited | Arithmetic processing apparatus which replaces values for future branch prediction upon wrong branch prediction |
Also Published As
Publication number | Publication date |
---|---|
JP3335379B2 (ja) | 2002-10-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5276882A (en) | Subroutine return through branch history table | |
JP3182740B2 (ja) | 単一クロック・サイクルに非連続命令を取り出すための方法およびシステム。 | |
US5121473A (en) | Pipelined system includes correction mechanism operated on history information identifying conditional jump instructions for which the jump prediction was incorrect on previous instances of execution of those instructions | |
US4454578A (en) | Data processing unit with pipelined operands | |
US4827402A (en) | Branch advanced control apparatus for advanced control of a branch instruction in a data processing system | |
JP2937485B2 (ja) | スーパースカラプロセッサにおけるトラップを検出して実行する方法及び装置 | |
KR920006275B1 (ko) | 데이타 처리 장치 | |
US6779102B2 (en) | Data processor capable of executing an instruction that makes a cache memory ineffective | |
EP0394624B1 (en) | Multiple sequence processor system | |
JPH11212788A (ja) | プロセッサのデータ供給装置 | |
JPS62221036A (ja) | 計算装置 | |
JPH02153428A (ja) | キャッシュ装置と命令読出し装置 | |
JPH063584B2 (ja) | 情報処理装置 | |
JPH0689173A (ja) | ブランチ・ヒストリーを持つ命令実行処理装置 | |
JP3794918B2 (ja) | 復帰選択ビットを用いて分岐予測のタイプを分類する分岐予測 | |
US7234046B2 (en) | Branch prediction using precedent instruction address of relative offset determined based on branch type and enabling skipping | |
JP3732234B2 (ja) | スーパースカラマイクロプロセッサのための非ブロッキングロードを実現するロード/ストアユニットおよびロード/ストアバッファから非ブロッキング的にロードを選択する方法 | |
US7600102B2 (en) | Condition bits for controlling branch processing | |
JP2001522082A (ja) | より小さな数の分岐予測および代替ターゲットを用いて近似的により大きな数の分岐予測をすること | |
GB2310057A (en) | Branch history with inhibit bits | |
US5276853A (en) | Cache system | |
JP3490005B2 (ja) | 命令制御装置及びその方法 | |
US7577827B2 (en) | Data processor with multi-command instruction words | |
JPS6236258B2 (ja) | ||
JP2943772B2 (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: 20020716 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080802 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090802 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090802 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100802 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110802 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120802 Year of fee payment: 10 |
|
LAPS | Cancellation because of no payment of annual fees |