JPH02310624A - データ処理装置 - Google Patents

データ処理装置

Info

Publication number
JPH02310624A
JPH02310624A JP1132321A JP13232189A JPH02310624A JP H02310624 A JPH02310624 A JP H02310624A JP 1132321 A JP1132321 A JP 1132321A JP 13232189 A JP13232189 A JP 13232189A JP H02310624 A JPH02310624 A JP H02310624A
Authority
JP
Japan
Prior art keywords
instruction
address
branch
branching
circuit
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
JP1132321A
Other languages
English (en)
Other versions
JP2570859B2 (ja
Inventor
Sadatake Mori
森 定剛
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP1132321A priority Critical patent/JP2570859B2/ja
Priority to US07/527,911 priority patent/US5317702A/en
Publication of JPH02310624A publication Critical patent/JPH02310624A/ja
Application granted granted Critical
Publication of JP2570859B2 publication Critical patent/JP2570859B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3804Instruction prefetching for branches, e.g. hedging, branch folding
    • G06F9/3806Instruction prefetching for branches, e.g. hedging, branch folding using address prediction, e.g. return stack, branch history buffer

Abstract

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

Description

【発明の詳細な説明】 技術分野 本発明はデータ処理装置に関し、特に命令の先取りを行
うデータ処理装置において用いられる分岐ヒストリテー
ブルの読出し制御に関する。
従来技術 従来、この種のデータ処理装置においては、分岐予測の
方法として、「米国特許第3559183号公報」およ
び「特公昭第50−22384号公報」に詳述されてい
る分岐ヒストリテーブルを用元また方法と、「米国特許
第4477872号公報」に詳述されているデコードヒ
ストリテーブルを用いた方法とがある。
分岐ヒストリテーブルを用いた方法では、テーブル上に
対象の命令アドレスと一致したアドレスが検出されると
、それに対応する分岐先アドレスがテーブルから読出さ
れ、該アドレスにより命令の先取りが再開されていた。
デコードヒストリテーブルを用いた方法では、テーブル
上に対象の命令アドレスと一致したアドレスが検出され
ると、そのアドレスに対応する情報により分岐の成功ま
たは失敗が予n1されていた。
このような従来のデータ処理装置では、分岐予n1に分
岐ヒストリテーブルを用いた方法の場合、制御上命令の
予肺1され得る先取り方向にしか予lP1を行うことで
きないという欠点がある。
また、分岐予測にデコードヒストリテーブルを用いた方
法の場合、実際の分岐先の命令の取出しが分岐命令のデ
コード後となってしまうため、分岐先の命令の開始が遅
れてしまうという欠点がある。
発明の目的 本発明は上記のような従来のものの欠点を除去すべくな
されたもので、命令の予11−1されえない先取り方向
に対しても予測を行うことができ、効率のよい分岐命令
の制御を行うことができるデータ処理装置の提供を目的
とする。
発明の構成 本発明によるデータ処理装置は、分岐命令のアドレスと
該分岐命令の分岐先アドレスとが各々対応して格納され
た分岐ヒストリテーブルを用いて命令の先取りを行うデ
ータ処理装置であって、上位装置からの命令取出し要求
のアドレスが前記分岐ヒストリテーブルに存在するか否
かを検出する検出手段と、前記分岐ヒストリテーブルか
ら前記分岐先アドレスを読出すか否かを示す前記王位装
置からの検出モードを保持する検出モード保持手段と、
前記検出手段の検出結果と前記検出モード保持手段に格
納された前記検出モードとにより、該命令取出し要求の
アドレスにより前記分岐ヒストリテーブルから読出され
た前記分岐先アドレスにより命令の先取りを行うか否か
を示す情報を保持する第1の保持手段と、前記検出手段
の検出結果と前記検出モード保持手段に格納された前記
検出モードとにより、前記命令取出し要求のアドレスに
一致する分岐命令があるか否かを示す情報を保持する第
2の保持手段とを有することを特徴とする。
実施例 次に、本発明の一実施例について図面を参照して説明す
る。
第1図は本発明の一実施例の構成を示すブロック図であ
る。図において、命令アドレス゛レジスタ(IAR)1
は命令取出しのアドレスを保持するレジスタであり、信
号線101を介して送られてくるアドレス生成回路(図
示せず)からの命令アドレスを受取って保持し、その命
令アドレスの一部を信号線102を介して分岐命令アド
レス記憶回路(TAA)2および分岐先アドレス記憶回
路(TAB)3に送出するとともに、その命令アドレス
の他の部分を信号線103を介して命令アドレス比較回
路(TAC)4に命令アドレスの比較用として送出する
分岐命令アドレス記憶回路2は過去に分岐した分岐命令
のアドレスの一部を記憶するメモリであり、信号線10
2を介して送られてくる命令アドレスレジスタ1からの
命令アドレスの一部により索引され、その命令アドレス
の一部に対応する過去の分岐命令のアドレスの一部を信
号線104を介して命令アドレス比較回路4に送出する
分岐先アドレス記憶回路3は分岐命令アドレス記憶回路
2に記憶された分岐命令のアドレスの一部に対応する分
岐先アドレスを記憶するメモリであり、信号線102を
介して送られてくる命令アドレスレジスタ1からの命令
アドレスの一部により索引され、その命令アドレスの一
部に対応する分岐先アドレスを信号線!05を介して予
測分岐先アドレスレジスタ(TAR)5に送出する。
命令アドレス比較回路4は命令取出しのアドレスと過去
の分岐命令のアドレスとが一致するかどうかを検出する
比較回路であり、信号線103を介して送られてくる命
令アドレスレジスタ1がらの命令アドレスの他の部分と
、信号線104を介して送られてくる分岐命令アドレス
記憶回路2からの過去の分岐命令のアドレスの一部とを
比較し、その比較結果を信号線106を介してアンド回
路10゜11に送出する。
予J?J 分岐先アドレスレジスタ5は命令取出しのア
ドレスと過去の分岐命令のアドレスとが一致した場合に
対応する分岐先アドレスを受取るレジスタであり、信号
線109を介して送られてくるアンド回路11からの検
出信号に応じて、信号線105を介して送られてくる分
岐先アドレス記憶回路3からの分岐先アドレスを受取り
、信号線Utを介してアドレス生成回路に予測分岐先ア
ドレスとして送出する。
検出モードフラグ(TSM)6は命令アドレスレジスタ
1と対応して、命令アドレスレジスタ1に保持された命
令アドレスと分岐命令アドレス記憶回路2に記憶された
過去の分岐命令のアドレスとが一致したときに分岐先ア
ドレスを読出すか否かのモードを保持するフリップフロ
ップであり、信号線107を介して送られてくる命令先
取り制御回路(図示せず)からの検出モードを受取り、
その検出モードを信号線108を介してノット回路9お
よびアンド回路11に送出する。
検出フラグ(TH)7は命令アドレスレジスタ1に保持
された命令アドレスと一致する分岐命令のアドレスが検
出され、予測分岐先アドレスが予測分岐先アドレスレジ
スタ5に読出されたことを示す予Il1分岐先アドレス
読出し情報を保持するフリップフロップであり、信号線
109を介して送られてくるアンド回路11からの予測
分岐先アドレス読出し情報を受取り、該予測分岐先アド
レス読出し情報を信号線112を介して命令先取り制御
回路に送出する。
検出フラグ(TH)8は命令アドレスレジスタ1に保持
された命令アドレスと一致する分岐命令のアドレスが検
出されても、予11FI分岐先アドレスが予測分岐先ア
ドレスレジスタ5に読出されなかったことを示す分−命
令アドレス−数情報を保持するフリップフロップであり
、信号線110を介して送られてくるアンド回路10か
らの分岐命令アドレス−数情報を受取り、該分岐命令ア
ドレス一致情報を信号線113を介して命令先取り制御
回路に送出する。
ノット回路9は否定の論理を作成する回路であり、信号
線108を介して送られてくる検出モー゛ドフラグ6か
らの検出モードの反転値を信号線114を介してアンド
回路10に送出する。
アンド回路10は論理積を作成する回路であり、信号線
10Bを介して送られてくる命令アドレス比較回路4か
らの比較結果と、信号線+14を介して送られてくるノ
ット回路9からの検出モードの反転値との論理積をとり
、分岐命令アドレス−数情報を信号線110を介して検
出フラグ8に送出する。
アンド回路11は論理積を作成する回路であり、信号線
10Bを介して送られてくる命令アドレス比較回路4か
らの比較結果と、信号線“10gを介して送られてくる
検出モードフラグ6からの検出モードとの論理積をとり
、信号線109を介して予測分岐先アドレスレジスタ5
にストローブ信号を送出し、信号線109を介して検出
フラグ7に予測分岐先アドレス読出し情報を送出する。
次に、第1図を用いて本発明の一実施例の動作について
説明する。
まず、通常の命令取出し時には、命令アドレスレジスタ
1に命令取出しアドレスがセットされるとともに、検出
モードフラグ6に検出モードとして“1mがセットされ
る。
この命令アドレスレジスタ1にセットされた命令取出し
アドレスの一部により分岐命令アドレス記憶回路2から
過去の分岐命令のアドレスが読出されると、命令アドレ
スレジスタ1の命令取出しアドレスと分岐命令アドレス
記憶回路2からの過去の分岐命令のアドレスとが命令ア
ドレス比較回路4で比較される。
それらのアドレスが一致すると、信号線106を介して
命令アドレス比較回路4からアンド回路10.11に比
較結果として“1”が出力される。
このとき、検出モードフラグ6には11“がセットされ
ているので、アンド回路11に“1”が人力され、アン
ド回路10にノット回路9を介して“0“が入力される
よって、アンド回路10から検出フラグ8には“0”が
出力され、アンド回路11から予測分岐先アドレスレジ
スタ5および検出フラグ7には°1@が出力される。
これにより、予測分岐先アドレスレジスタ5には分岐先
アドレス記憶回路3から読出された分岐先アドレスが保
持される。
検出フラグ7に“1”がセットされることにより、予1
1?3分岐先アドレスレジスタ5に保持された分岐先ア
ドレスによって命令の先取りが開始されるが、その予測
方向以外の命令取出しでは命令アドレスレジスタ1に命
令取出しアドレスがセットされるときに検出゛モードフ
ラグ6に検出モードとして“0°がセットされる。
この場合、上述の処理動作と同様に、命令アドレス比較
回路4で命令アドレスレジスタ1の命令取出しアドレス
と分岐命令ア゛ドレス記憶回路2からの過去の分岐命令
のアドレスとが比較され、それらのアドレスが一致する
と、命令アドレス比較回路4からアンド回路10.11
に比較結果として′1”が出力される。
このとき、検出モードフラグ6には′01がセットされ
ているので、アンド回路11に“0”が入力され、アン
ド回路10にノット回路9を介して′1“が入力される
よって、アンド回路10から検出フラグ8には“1°が
出力され、アンド回路11から予測分岐先アドレスレジ
スタ5および検出フラグ7には“0°が出力される。
これにより、予測分岐先アドレスレジスタ5に分岐先ア
ドレス記憶回路3から読出された分岐先アドレスが保持
されることはない。
この場合には、検出フラグ8にセットされた内容が分岐
の成功または失敗を予測するための情報として使用され
る。
第2図は本発明の一実施例の動作を示す図である。図に
おいて、(A)〜(C)は夫々条件分岐命令(TZE)
を示しており、■〜■は夫々命令列を示している。
通常、分岐ヒストリテーブルを用いて分岐子Δ−1を行
うとき、その子n1される命令列上の分岐命令と分岐先
アドレスとを予測するため、条件分岐命令(A)、(B
)が分岐ヒストリテーブルにヒツトした場合には命令列
■に対して予測を行う。この場合、条件分岐命令(A)
の分岐失敗側や条件分岐命令(B)の分岐失敗側に対し
ては予測されない。
すなわち、実際に条件分岐命令(A)が実行されたとき
に分岐が失敗すると、条件分岐命令(C)は予測されて
いないため、命令列■が処理されることになる。
しかしながら、命令列■の命令取出しに対しては検出モ
ードフラグ6に“1°をセットし、それ以外は検出モー
ドフラグ6に“0”をセットする。
すると、予測分岐先の命令の取出しは行われないが、条
件分岐命令(C)に対しても尋の命令アドレスが分岐ヒ
ストリテーブルに存在するか否かを検出することができ
る。
つまり、その検出結果によりヒツトが示されたときには
条件分岐命令(C)に対して分岐成功を予測し、ミスヒ
ツトが示されたときには条件分岐命令(C)に対して分
岐失敗を予測して分岐命令を処理することができる。
このように、分岐先予測のための分岐命令アドレス記憶
回路2および分岐先アドレス記憶回路3からなる分岐ヒ
ストリテーブルへのアクセスに対応して検出モードを設
定し、その検出モードが分岐ヒストリテーブルからの分
岐先アドレスの読出しを示し、命令取出しアドレスが分
岐ヒストリテーブルに存在することが検出されたときに
、該命令取出しアドレスにより分岐ヒストリテーブルか
ら読出された分岐先アドレスで命令の先取りを行い、そ
の検出モードが分岐ヒストリテーブルからの分岐先アド
レスの読出しを示さず、該命令取出しアドレスが分岐ヒ
ストリテーブルに存在することが検出されたときに、該
命令取出しアドレスに一致する分岐命令があることを示
すようにすることによって、分岐ヒストリテーブルの機
能と同時に、分岐命令検出のためのデコードヒストリテ
ーブル同様の能力を持たせることができる。
よって、分岐予測失敗側の先取りに関しても、予測分岐
先命令の先取りは行わないが、分岐命令が存在し、かつ
その分岐命令が分岐するという悄報を命令先取り制御回
路に伝達することができるので、命令の予測されえない
先取り方向に対しても予測を行うことができ、効率のよ
い分岐命令ノ制御を行うことができる。
また、検出モードを常に“1”または“0“にしておく
ことにより、上記の回路を分岐ヒストリテーブルまたは
デコードヒストリテーブルのうちどちらか一方の能力だ
けを持たせることも可能である。
発明の詳細 な説明したように本発明によれば、検出モードが分岐ヒ
ストリテーブルからの分岐先アドレスの読出しを示し、
命令取出しアドレスが分岐ヒストリテーブルに存在する
ことが検出されたときに、該命令取出しアドレスにより
分岐ヒストリテーブルから読出された分岐先アドレスで
命令の先取りを行い、検出モードが分岐ヒストリテーブ
ルからの分岐先アドレスの読出しを示さず、該命令取出
しアドレスが分岐ヒストリテーブルに存在することが検
出されたときに、該命令取出しアドレスに一致する分岐
命令があることを示すようにすることによって、命令の
予測されえない先取り方向に対しても予測を行うことが
でき、効率のよい分岐命令の制御を行うことができると
いう効果がある。
【図面の簡単な説明】
第1図は本発明の一実施例の構成を示すブロック図、第
2図は本発明の一実施例の動作を示す図である。 主要部分の符号の説明 2・・・・・・分岐命令アドレス記憶回路3・・・・・
・分岐先アドレス記憶回路4・・・・・・命令アドレス
比較回路 5・・・・・・予測分岐先アドレスレジスタ6・・・・
・・検出モードフラグ 7.8・・・・・・検出フラグ 9・・・・・・ノット回路

Claims (1)

    【特許請求の範囲】
  1. (1)分岐命令のアドレスと該分岐命令の分岐先アドレ
    スとが各々対応して格納された分岐ヒストリテーブルを
    用いて命令の先取りを行うデータ処理装置であって、上
    位装置からの命令取出し要求のアドレスが前記分岐ヒス
    トリテーブルに存在するか否かを検出する検出手段と、
    前記分岐ヒストリテーブルから前記分岐先アドレスを読
    出すか否かを示す前記上位装置からの検出モードを保持
    する検出モード保持手段と、前記検出手段の検出結果と
    前記検出モード保持手段に格納された前記検出モードと
    に応じて、該命令取出し要求のアドレスによって前記分
    岐ヒストリテーブルから読出された前記分岐先アドレス
    で命令の先取りを行うか否かを示す情報を保持する第1
    の保持手段と、前記検出手段の検出結果と前記検出モー
    ド保持手段に格納された前記検出モードとに応じて、前
    記命令取出し要求のアドレスに一致する分岐命令がある
    か否かを示す情報を保持する第2の保持手段とを有する
    ことを特徴とするデータ処理装置。
JP1132321A 1989-05-25 1989-05-25 データ処理装置 Expired - Fee Related JP2570859B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP1132321A JP2570859B2 (ja) 1989-05-25 1989-05-25 データ処理装置
US07/527,911 US5317702A (en) 1989-05-25 1990-05-24 Device for effectively controlling a branch history table for an instruction prefetching system even if predictions are branch unsuccessful

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1132321A JP2570859B2 (ja) 1989-05-25 1989-05-25 データ処理装置

Publications (2)

Publication Number Publication Date
JPH02310624A true JPH02310624A (ja) 1990-12-26
JP2570859B2 JP2570859B2 (ja) 1997-01-16

Family

ID=15078583

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1132321A Expired - Fee Related JP2570859B2 (ja) 1989-05-25 1989-05-25 データ処理装置

Country Status (2)

Country Link
US (1) US5317702A (ja)
JP (1) JP2570859B2 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5394530A (en) * 1991-03-15 1995-02-28 Nec Corporation Arrangement for predicting a branch target address in the second iteration of a short loop
US5434985A (en) * 1992-08-11 1995-07-18 International Business Machines Corporation Simultaneous prediction of multiple branches for superscalar processing
JP3211423B2 (ja) * 1992-10-13 2001-09-25 ソニー株式会社 分岐命令実行方法および分岐命令実行装置
US5740417A (en) * 1995-12-05 1998-04-14 Motorola, Inc. Pipelined processor operating in different power mode based on branch prediction state of branch history bit encoded as taken weakly not taken and strongly not taken states
US6055621A (en) * 1996-02-12 2000-04-25 International Business Machines Corporation Touch history table
US5887174A (en) * 1996-06-18 1999-03-23 International Business Machines Corporation System, method, and program product for instruction scheduling in the presence of hardware lookahead accomplished by the rescheduling of idle slots
US6044222A (en) * 1997-06-23 2000-03-28 International Business Machines Corporation System, method, and program product for loop instruction scheduling hardware lookahead
US6275918B1 (en) 1999-03-16 2001-08-14 International Business Machines Corporation Obtaining load target operand pre-fetch address from history table information upon incremented number of access indicator threshold
US7085915B1 (en) 2000-02-29 2006-08-01 International Business Machines Corporation Programmable prefetching of instructions for a processor executing a non-procedural program

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS623339A (ja) * 1985-06-28 1987-01-09 Nec Corp 中央処理装置の高速化方式に於ける命令先取り方式
JPS63147230A (ja) * 1986-12-10 1988-06-20 Nec Corp 命令の先取りを行なうデ−タ処理装置

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3559183A (en) * 1968-02-29 1971-01-26 Ibm Instruction sequence control
US4477872A (en) * 1982-01-15 1984-10-16 International Business Machines Corporation Decode history table for conditional branch instructions
EP0109655B1 (en) * 1982-11-17 1991-07-24 Nec Corporation Instruction prefetching device with prediction of a branch destination address
EP0150177A1 (en) * 1983-07-11 1985-08-07 Prime Computer, Inc. Data processing system
JPH0769818B2 (ja) * 1984-10-31 1995-07-31 株式会社日立製作所 デ−タ処理装置
US4763245A (en) * 1985-10-30 1988-08-09 International Business Machines Corporation Branch prediction mechanism in which a branch history table is updated using an operand sensitive branch table
US4853840A (en) * 1986-01-07 1989-08-01 Nec Corporation Instruction prefetching device including a circuit for checking prediction of a branch instruction before the instruction is executed
US4991080A (en) * 1986-03-13 1991-02-05 International Business Machines Corporation Pipeline processing apparatus for executing instructions in three streams, including branch stream pre-execution processor for pre-executing conditional branch instructions
JPS62226232A (ja) * 1986-03-28 1987-10-05 Toshiba Corp 分岐先アドレス算出回路
GB2188759B (en) * 1986-04-05 1990-09-05 Burr Brown Ltd Data processing with op code early comparison
US4943908A (en) * 1987-12-02 1990-07-24 International Business Machines Corporation Multiple branch analyzer for prefetching cache lines
GB8728493D0 (en) * 1987-12-05 1988-01-13 Int Computers Ltd Jump prediction

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS623339A (ja) * 1985-06-28 1987-01-09 Nec Corp 中央処理装置の高速化方式に於ける命令先取り方式
JPS63147230A (ja) * 1986-12-10 1988-06-20 Nec Corp 命令の先取りを行なうデ−タ処理装置

Also Published As

Publication number Publication date
JP2570859B2 (ja) 1997-01-16
US5317702A (en) 1994-05-31

Similar Documents

Publication Publication Date Title
US8171260B2 (en) Fetching all or portion of instructions in memory line up to branch instruction based on branch prediction and size indicator stored in branch target buffer indexed by fetch address
JPH06110683A (ja) マイクロプロセッサの拡張ブランチターゲット方法及びその装置
EP0381470A2 (en) Processing of memory access exceptions along with prefetched instructions within the instruction pipeline of a virtual memory system-based digital computer
JPH0789319B2 (ja) デ−タ処理装置における先行制御装置
US6760835B1 (en) Instruction branch mispredict streaming
JPS58125148A (ja) 条件付きブランチ命令の予測装置
JPH02310624A (ja) データ処理装置
US6108776A (en) Globally or selectively disabling branch history table operations during sensitive portion of millicode routine in millimode supporting computer
US6125444A (en) Millimode capable computer system providing global branch history table disables and separate millicode disables which enable millicode disable to be turned off for some sections of code execution but not disabled for all
JPH0773104A (ja) キャッシュ・システム
JP2000056970A (ja) 命令及びデータの先読み方法、マイクロコントローラ、疑似命令検出回路、及び、記録媒体
US5625808A (en) Read only store as part of cache store for storing frequently used millicode instructions
US5421026A (en) Data processor for processing instruction after conditional branch instruction at high speed
JPS5991551A (ja) 分岐先アドレス予測を行なう命令先取り装置
JPS6312030A (ja) 情報処理装置のエラ−処理機構
JP3251148B2 (ja) パイプラインデ−タ処理装置
JP2793409B2 (ja) 分岐ヒストリテーブル障害処理方式
JP2883335B2 (ja) 情報処理装置
JP2001154845A (ja) キャッシュミスした後のメモリバスアクセス制御方式
JPS6240555A (ja) プリフエツチ制御方式
JPH027128A (ja) 情報処理装置
JPS61210431A (ja) 情報処理装置
JPH01230152A (ja) キヤツシユ記憶装置
JPH0553798A (ja) 情報処理装置
JP2000132389A (ja) 命令プリフェッチ機構を具備する計算機システム

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees