JPS62224829A - 命令キヤツシユ制御方式 - Google Patents

命令キヤツシユ制御方式

Info

Publication number
JPS62224829A
JPS62224829A JP6784086A JP6784086A JPS62224829A JP S62224829 A JPS62224829 A JP S62224829A JP 6784086 A JP6784086 A JP 6784086A JP 6784086 A JP6784086 A JP 6784086A JP S62224829 A JPS62224829 A JP S62224829A
Authority
JP
Japan
Prior art keywords
instruction
cache
branch
address
branch destination
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
JP6784086A
Other languages
English (en)
Other versions
JP2534662B2 (ja
Inventor
Yasushi Oi
康 大井
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 JP61067840A priority Critical patent/JP2534662B2/ja
Publication of JPS62224829A publication Critical patent/JPS62224829A/ja
Application granted granted Critical
Publication of JP2534662B2 publication Critical patent/JP2534662B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、命令キャッシュメモリの制御方式に関し、特
に、分岐先アドレスキャッシュへの先行フェッチを制御
する方式に関する。。
〔従来の技術〕
分岐先アドレスキャッシュ機構は、既に実行された実行
された実績のある分岐命令について、その命令アドレス
と、その分岐先アドレスとを対にして連想メモリの形で
記憶するキャッシュメモリを持ち、次に7エツチされる
命令が分岐命令か否かを予測するために用いら几ている
。従来の分岐先アドレスキャッシュ機構の最大の使用目
的は、パイプライン処理における命令7ヱツチステージ
より前で命令予測を行ない、次に7エツチされる命令が
分岐命令と予測さnた場合は、分岐先の命令についても
パイプライン処理を並列に開始・実行することにより、
分岐命令によるパイプライン処理中の内容の破棄に伴う
処理性能の著しい低下を抑えるととくある。この方式は
、各種類の分岐命令に対して適用される必要性から、条
件分岐命令に対しては、過去の条件の成立/不成立の履
歴管理およ♂その履歴情報に基づく分岐予測、およびイ
ンデクス指定形分岐命令に対しては、予測分岐先アドレ
スとアドレス計算結果による確定分岐先アドレスとの比
較およびその更新などの機構が必要である。しかも、実
効性能の向上のためには、数多くの分岐命令に対して、
確度の高い予測情報を提供する必要があるため、キャッ
シュ・エントリ数の増大と履歴情報部の複雑化とが必至
となる。
さらに1複数の連続する分岐命令への対処のためKは複
雑な制御が必要となる場合がある。
以上述べたように、分岐先アドレスキャッシュ機構の技
術は、処理装置のパイプライン処理の乱れを少なくする
ために1全ての分岐命令に対する的確な予測と、それら
に対するパイプライン処理の重複を目的として用いられ
てきた。
しかし、パイプ2イ/処理の定常性を崩す原因としては
、分岐命令の実行によるパイプラインの破壊の他に、低
速である外部メモリに対するアクセスの問題がある。特
に、外部メモリのアクセスが性能の上限を決定するよう
な、いわゆる「パス・ネック」のシステムにおいては、
後者のほうがパイプライン処理の性能を決めるよシ重要
な要因になると考えられる。
従来の計算機技術では、これらを解決する方法として、
キャッシュメモリなどの記憶の階層化手法が用いられて
いる。命令コードおよびデータのアクセス時には、最初
にキャッシュメモリへの参照が生じ、キャッシュメモリ
内にアクセスされるべき内容が存在しなかった場合には
、キャッシュメモリの入れ換え動作が駆動さnlこのと
きのみ外部メモリの参照が発生する。
外部メモリのアクセスが性能の上限を決定するような、
いわゆる「バス・ネック」のシステムにおいては、その
性能向上のためのキャッシュメモリ導入が必須となる。
しかし、特に命令コードに関するキャッシュ管理におい
て、従来のキャッシュの入れ換え動作方式は、分岐命令
に関する情報を利用していないため、分岐命令のデコー
ド終了後分岐が確定して初めて、分岐先アドレスによる
キャッシュ検索を行なうことKなり、そのときにキャッ
シュ・ミスが発生すると性能は大きく低下することにな
る。
〔発明が解決しようとする問題点3 以上のように、従来の分岐先アドレスキャッシュは、分
岐命令に関する命令キャッシュの制御のために用いるこ
とが可能ではあるが、全ての分岐命令に対する分岐先ア
ドレスキャッシュの入れ換えを行なうと、分岐先アドレ
スキャッシュより入れ換え頻度の少ない命令キャッシュ
を制御するためには、命令キャッシュに対して十分大き
なエントリ・サイズを持つ必要があること、および分岐
予測が前回の分岐先アドレスに基づいているため、予想
される分岐先と確定した分岐先との比較手段を用いて二
ントリ更新作業を行なう必要があること、並びに分岐先
アドレスキャッシュの更新頻度は、全ての新たな分岐命
令で発生することによりハードウェア量の多大な増加、
およびスイッチングの増大によるシステム消費電力の増
加を伴うという欠点を有している。
本発明の目的は、従来の分岐先アドレスキャッシュと比
較して、同等もしくはそれ以下のエントリ・サイズであ
る分岐先アドレスキャッシュを用い、分岐予測のための
付加ハードウェア量を削減し、分岐先アドレスキャッシ
ュの、不必要な更新作業を除くことで回路のスイッチン
グ回数を低減することが可能な命令キャッシュ制御方式
を提供することにある。
〔問題点tS決するだめの手段〕
本発明の分岐先アドレスキャッシュ機構による命令キャ
ッシュ制御方式は、分岐命令の分岐先に存在する命令コ
ードを予め命令キャッシュ機構に7エツチするように制
御する分岐先アドレス・キャッシュ機構による命令キャ
ッシュ制御方式であって、前記命令が分岐命令であるこ
とをデコード手段により確定した後における該分岐命令
の分岐先アドレスによって前記命令キャッシュ機構の検
索を行なった時の検索結果を用いて前記分岐先アドレス
・キャッシュ機構の内容の入几換えを行なうことを特徴
としている。
〔実施例〕
次に本発明について図面を参照して説明する。
第1図は本発明の一実施例のブロック図である。
第1図において、101は次にフェッチすべき命令の先
頭アドレスを保持する命令フェッチアドレスレジスタ、
102は分岐命令アドレスとを対にして保持する分岐先
アドレスキャッジ、、103は命令アドレスと命令コー
ドとを対にして保持する命令キャッシュ、104はデコ
ードを持つ命令の待機用バッファ、105は命令デコー
ダ、106はデコードされた分岐命令の待機用バッファ
、107は分岐先アドレスキャッシュ102に対する分
岐命令登録用ラッチ、108は命令キャッジ、103に
対する命令コード登録用ラッチ、109は命令キャッシ
ュ103に対する検索要求を調停する命令キャッシュア
クセスアービタを各々表わす。
第2図は第1図における分岐先アドレスキャッジ為10
2の構成図で、201は分岐命令そのものが存在するア
ドレスを保持する分岐命令アドレスバッファ、202は
201で保持されるアドレスに対応づけられた分岐命令
の分岐先アドレスを保持する分岐先アドレスバッファで
ある。
第3図は第1図における命令キャッシュ103の構成図
で、301は命令の存在するアドレスを保持する命令ア
ドレスバッファ、302は301で保持されるアドレス
に対応づけられた命令のコードを含むメモリ部分を保持
する命令コードバッファである。
次に本実施例を第4図に示てれた流れ図にもとづいて説
明する(第4図は動作の概要のみを示す流れ図である)
まず、次にフェッチされる命令の先頭アドレスが命令ア
ドレスレジスタ101にロードされる(401)。この
アドレスは命令コードのアクセスに使用さnろが、その
ためキャッシュアクセスアービタ109を通じて命令キ
ャッシュ103の検索が行なわ几る(402)。それと
並行して分岐先アドレスキャッシュ102の検索が行な
われる(403)。 101にラッチされたアドレスが
分岐命令アドレスバッファ201内に存在した場合は、
101に基づきフェッチされる命令が分岐命令だと予想
さnるため、対応する分岐先予想アドレスを分岐先アド
レスバッファ202かう得る(404)。
このアドレスはアービタ109を通じて、次に命令キャ
ッシユ103の検索に用いられる(405)。
特に、分岐先アドレスが命令アドレスバッファ301内
に存在しない場合には、命令キャッシュ103の入れか
えを実行する(406)。
これらの動作の結果として、命令アドレス、命令コード
及びその命令が分岐先アドレスキャッジ具にあったか否
かを示す情報の3つ組が、命令待機用バッファ104に
集められる。処理403において、101にラッチされ
たアドレスが分岐アドレスバッファ201内に存在しな
かった場合は、以上述べた分岐先予想に関する処理40
4〜406は実行されず、命令待機用バッファ104に
杜上記と同様の情報が染められる。その上で命令デコー
ドが行なわれ(407) 、その命令が分岐命令であり
(408)、かつ処理409でその分岐が確定した場合
′(無条件分岐命令、サブルーチンコール命令などでは
必ず分岐が確定する。条件分岐命令などでは、それ以前
の命令実行でその条件が成立したときのみ分岐が確定す
る。)その分岐命令の分岐先アドレスを107及び10
1に格納する(410)。
デコードにより確定した真の分岐先アドレスに対応する
命令コードが命令キャッジ5103に存在するか否かが
次に検証さ几る。処理403において分岐命令と予想さ
れなかった命令でかつデコード結果が分岐命令であった
場合(411)において、確定分岐先アドレスが命令ア
ドレスバク7ア301に存在した場合は何もしない。こ
几に対し、確定分岐先アドレスが命令アドレスバク7ア
301に存在しなかりた場合は、107に待機させであ
る命令とアドレスと分岐先アドレスとのベアを分岐先ア
ドレスキャッジ為に登録する入れかえを実施し、かつ命
令キャッシュにおいて分岐先命令コードを登録する入れ
かえを実施する(412)。2つの入れかえは独立故、
その順序関係や並列性の如何を問わない。処理終了後は
次命令の7エツチ処理に移る。
処理403において分岐命令と予想された命令でも、確
定分岐先が命令キャシュにあるかどうかがテストさnる
(413)。確定分岐先アドレスが命令アドレスバッフ
ァ301に存在した場合は何もしない。これに対し、確
定分岐先アドレスが命令アドレス比較手段301に存在
しなかった場合は、102での予想アドレスが誤ってい
た(例えばインデクスアドレシングなどのように動的に
分岐アドレスが決定される場合はこのようなことが発生
し得る)ことKなり、102の当該エントリを更新する
と共に、命令キャッシュにおいて分岐先命令コードを登
録する入れかえを実施する(414)。
2つの処理は独立故、その順序関係や並列性の如何を問
わない。処理終了後は次命令の7エツチ処理に移る。
〔発明の効果〕
以上述べたように本実施例では、処理411〜412ン
で示さ几る通り、新たにデコードされた分岐命令のうち
、命令キャッシュに存在しなかりたもののみを分岐先ア
ドレスバッファに登録している。これは、従来の「全分
岐命令を登録する」方式に比べて次の利点がある。すな
わち、本発明の目的は効率よいキャッシュ制御であり、
分岐予測による分岐先命令コードの早期フェッチである
。よって、分岐先アドレスキャッシュ検索の成功(ヒツ
ト)/不成功(ミス)にかかわらず、命令キャッシュに
命令コードが存在すればそれが最適な制御となる。従来
のように命令キャッシュに存在する命令アドレスを含め
て分岐命令キャッシュに登録することは、命令キャッシ
ュ制御としては冗長な情報を持つことになる。本発明の
ように命令キャッシュに既に存在している分岐命令を分
岐先アドレスキャッシュに登録しないことで、分岐先ア
ドレスキャッシュは従来より少ないエントリ数でより多
くのキャッシュサイズに応じた分岐履歴情報をより長時
間の量大nかえられることなしに保持することが可能と
なるという効果がある。
本実施例によれば、さらに分岐先が誤まっていたときの
処置に効果がある。従来は、処理413でもし分岐先が
予想と異なった場合は、分岐先アドレスバッファの分岐
先アドレスを変更しなけ几ばならない。しかし、本発明
では命令キャッシュに分岐先アドレスがヒツトする限り
上記変更を行なわないし、分岐は6成功″シていると見
なすことができる。こ几は分岐先アドレスがインデクス
修飾されたアドレシングであっても、それが命令キャッ
シュのブロックサイズ以内(あるいはいくつかのブロッ
クサイズの合計)の範囲を超えなければ厳密な分岐先ア
ドレスで制御を行なう必要はないという考えに基づいて
いる。これにより、分岐先アドレスバッファで得られた
予想分岐先アドレス及びデコード後の確定分岐先アドレ
スに対するアドレス比較手段をすべて命令キャッシュで
代行できることになり、従来に比べて明らかに小規模な
回路を構成することができるという効果がある。
以上述べたように、本発明を用いnば小規模な分岐先ア
ドレスキャッシュ機構によって、分岐予測に関する制御
を含めたキャッシュ制御を実現することが可能となり、
特にメモリアクセスが性能の上限を決定するようなシス
テムにおいて有効である。
【図面の簡単な説明】
第1図は本発明の一実施例を示すブ目ツク図、第2図は
アドレスキャッシュ102の構成図、第3図は命令キャ
ッシュ103の構成図、第4図(a)。 (′b)はフローチャートである。 101・・・・・・命令7エツチアドレスレジスタ、1
02・・・・・・分岐先アドレスキャッシュ、103・
・・・・・命令キャッシュ、104・・・・・・命令待
機用バッファ、105・・・・・・命令デコーダ、10
6・・・・・・デコードされた分岐命令待機用バッファ
、107・・・・・・分岐命令登録用ラッチ、108・
・・・−・命令コード登録用ラッチ、109−・・・・
・命令キャッシュアクセスアービタ、201・・・・・
・分岐命令アドレスバッファ、202・・・・・・分岐
先アドレスバッファ、301・・・・・・命令アドレス
バッファ、302・・・・・・命令コードバッファ。 ・・T、°゛\

Claims (1)

    【特許請求の範囲】
  1. 分岐命令の分岐先に存在する命令コードを予め命令キャ
    ッシュ機構にフェッチするように制御する分岐先アドレ
    ス・キャッシュ機構による命令キャッシュ制御方式であ
    って、前記命令が分岐命令であることをデコード手段に
    より確定した後における該分岐命令の分岐先アドレスに
    よって前記命令キャッシュ機構の検索を行なった時の検
    索結果を用いて、前記分岐先アドレス・キャッシュ機構
    の内容の入れ換えを行なうことを特徴とする命令キャッ
    シュ制御方式。
JP61067840A 1986-03-25 1986-03-25 命令キヤツシユ制御方法 Expired - Lifetime JP2534662B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP61067840A JP2534662B2 (ja) 1986-03-25 1986-03-25 命令キヤツシユ制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP61067840A JP2534662B2 (ja) 1986-03-25 1986-03-25 命令キヤツシユ制御方法

Publications (2)

Publication Number Publication Date
JPS62224829A true JPS62224829A (ja) 1987-10-02
JP2534662B2 JP2534662B2 (ja) 1996-09-18

Family

ID=13356547

Family Applications (1)

Application Number Title Priority Date Filing Date
JP61067840A Expired - Lifetime JP2534662B2 (ja) 1986-03-25 1986-03-25 命令キヤツシユ制御方法

Country Status (1)

Country Link
JP (1) JP2534662B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01102810A (ja) * 1987-10-14 1989-04-20 Hitachi Cable Ltd 酸化物系超電導線材
JPH0527971A (ja) * 1991-07-24 1993-02-05 Nec Corp 情報処理装置
JP2007514237A (ja) * 2003-12-15 2007-05-31 フリースケール セミコンダクター インコーポレイテッド 分岐先バッファにおいてエントリを割り当てる方法及び装置
JP2010501101A (ja) * 2006-08-16 2010-01-14 クゥアルコム・インコーポレイテッド 分岐先アドレスキャッシュにおけるルックアップの低減方法および装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6027945A (ja) * 1983-07-27 1985-02-13 Nec Corp 命令取出装置
JPS6051948A (ja) * 1983-08-31 1985-03-23 Hitachi Ltd 情報処理装置
JPS60105050A (ja) * 1983-11-11 1985-06-10 Fujitsu Ltd パイプライン制御方式

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6027945A (ja) * 1983-07-27 1985-02-13 Nec Corp 命令取出装置
JPS6051948A (ja) * 1983-08-31 1985-03-23 Hitachi Ltd 情報処理装置
JPS60105050A (ja) * 1983-11-11 1985-06-10 Fujitsu Ltd パイプライン制御方式

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01102810A (ja) * 1987-10-14 1989-04-20 Hitachi Cable Ltd 酸化物系超電導線材
JPH0527971A (ja) * 1991-07-24 1993-02-05 Nec Corp 情報処理装置
JP2007514237A (ja) * 2003-12-15 2007-05-31 フリースケール セミコンダクター インコーポレイテッド 分岐先バッファにおいてエントリを割り当てる方法及び装置
JP2010501101A (ja) * 2006-08-16 2010-01-14 クゥアルコム・インコーポレイテッド 分岐先アドレスキャッシュにおけるルックアップの低減方法および装置

Also Published As

Publication number Publication date
JP2534662B2 (ja) 1996-09-18

Similar Documents

Publication Publication Date Title
US4943908A (en) Multiple branch analyzer for prefetching cache lines
US4991080A (en) Pipeline processing apparatus for executing instructions in three streams, including branch stream pre-execution processor for pre-executing conditional branch instructions
KR100411529B1 (ko) 제2 레벨 분기 예측 테이블을 이용한 분기 예측 방법 및장치
US7941607B1 (en) Method and system for promoting traces in an instruction processing circuit
US6442681B1 (en) Pipelined central processor managing the execution of instructions with proximate successive branches in a cache-based data processing system while performing block mode transfer predictions
EP0180725B1 (en) Instruction prefetch operation for branch instructions
US6081887A (en) System for passing an index value with each prediction in forward direction to enable truth predictor to associate truth value with particular branch instruction
JP2003005956A (ja) 分岐予測装置、プロセッサ、及び分岐予測方法
EP0394624A2 (en) Multiple sequence processor system
US20080098174A1 (en) Cache memory having pipeline structure and method for controlling the same
JP2006520964A5 (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
JP3794918B2 (ja) 復帰選択ビットを用いて分岐予測のタイプを分類する分岐予測
JP3725547B2 (ja) 限定ラン分岐予測
JP2002229852A (ja) キャッシュシステムの制御回路
JPH0773104A (ja) キャッシュ・システム
KR20220054328A (ko) 프로세서에서의 인터럽트된 명령어 복구를 위한 레지스터 재명명 맵 테이블(rmt) 상태 복구를 위한 프로세서 재정렬 버퍼(rob)의 순회 최소화
JPH06161779A (ja) データ処理装置の割込み制御方式
JPS62224829A (ja) 命令キヤツシユ制御方式
JP3606435B2 (ja) モードを変更する分岐命令を制御する命令処理装置および方法
US7953933B1 (en) Instruction cache, decoder circuit, basic block cache circuit and multi-block cache circuit
EP4226241A1 (en) Restoring speculative history used for making speculative predictions for instructions processed in a processor employing control independence techniques
US9250909B2 (en) Fast index tree for accelerated branch prediction
US8015359B1 (en) Method and system for utilizing a common structure for trace verification and maintaining coherency in an instruction processing circuit
JP2772100B2 (ja) 並列命令フェッチ機構