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

データ処理装置

Info

Publication number
JPH0769809B2
JPH0769809B2 JP63127906A JP12790688A JPH0769809B2 JP H0769809 B2 JPH0769809 B2 JP H0769809B2 JP 63127906 A JP63127906 A JP 63127906A JP 12790688 A JP12790688 A JP 12790688A JP H0769809 B2 JPH0769809 B2 JP H0769809B2
Authority
JP
Japan
Prior art keywords
branch
instruction
address
register
branch history
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.)
Expired - Fee Related
Application number
JP63127906A
Other languages
English (en)
Other versions
JPH01296341A (ja
Inventor
義治 大野
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 JP63127906A priority Critical patent/JPH0769809B2/ja
Publication of JPH01296341A publication Critical patent/JPH01296341A/ja
Publication of JPH0769809B2 publication Critical patent/JPH0769809B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Description

【発明の詳細な説明】 技術分野 本発明はデータ処理装置に関し、特に分岐ヒストリメモ
リを有するデータ処理装置に関するものである。
従来技術 近年、電子計算機の高速化が進み、特に大型電子計算機
の領域においては命令取出し,命令解読,オペランド取
出し,演算,演算結果の格納を複数のパイプラインステ
ージに分割し、各ステージの処理を並列的に実行するこ
とによって処理速度を向上させるパイプライン技法が広
く採用されている。このパイプライン技法によれば、各
パイプラインステージにおいて連続処理を継続する場合
に最高性能を達成できる。
しかしながら、分岐命令の実行においては、分岐先の取
出に多大な時間を要するため、パイプラインの処理に空
き時間を生じて、著しく性能が低下することになる。そ
こで、過去に実行した分岐命令の格納アドレスと分岐命
令の分岐先アドレスとを対にして履歴情報としてメモリ
に貯え、このメモリを命令取出時に参照して、命令取出
アドレスにおいて過去に分岐した履歴があれば、この履
歴から得られる分岐先アドレスを分岐先予測アドレスと
して以後の命令取出を行う分岐ヒストリメモリ技術が出
現している。
この分岐ヒストリメモリ方式の分岐予測技術の有効性
は、多数のプログラムにおいて無条件分岐命令では勿
論、条件分岐命令においてもループを形成するコーディ
ングにおいては、前回と同じ方向に分岐する確率が極め
て高いという事実により裏付けられている。この特性を
小容量の分岐ヒストリメモリにて実現するためには、あ
らたな分岐命令の実行結果により古い情報を置き換える
ことが有効であり、LRU(Least Recently Used),FIFO
(First In First Out)等のリプレースアルゴリズムが
採用されている。
一方、プログラム内の条件分岐命令の参照する状態変化
(例:演算結果)により分岐先が変化することがある。
この場合には、分岐ヒストリメモリに記憶された分岐履
歴の示す分岐先アドレスと実際の分岐命令の分岐先アド
レスとが不一致となる。これに備えて、分岐命令の実行
時に両アドレスを比較し、不一致であれば予測取出され
た分岐先先取動作を無効化し、再度分岐命令の実行結果
に基いて正しい分岐先を取出す分岐予測検証技術があ
る。
上述した従来の分岐ヒストリメモリでは、新たな分岐命
令の出現の度に分岐ヒストリメモリ内の古い分岐履歴を
更新している。このために特定の分岐命令における分岐
履歴を分岐ヒストリメモリに設定して、分岐予測機構の
診断を実行するといった診断方式を実現できないという
欠点がある。
予測が外れて再度分岐先を取出すべきか否かを判定する
には、実行時間の測定によっており、よって極めて診断
精度が粗いという欠点がある。換言すれば、分岐予測機
構の正当性検証を時間という間接パラメータに置換して
おり、直接的に機能確認ができないという欠点がある。
発明の目的 そこで、本発明はこの様な従来のものの欠点を解決すべ
くなされたものであって、その目的とするところは、分
岐ヒストリメモリ機構の機能の正当性を正しく直接的に
検証可能なデータ処理装置を提供することにある。
発明の構成 本発明によれば、命令語を記憶する記憶手段と、この記
憶手段から読出された命令語が分岐命令の場合に分岐先
アドレスを生成するアドレス生成手段と、前記分岐命令
の命令語取出アドレスと前記分岐先アドレスとからなる
アドレス対を分岐履歴情報として、前記命令語取出アド
レスに対応する格納アドレスに保持する分岐ヒストリ記
憶手段と、前記分岐命令の命令語取出アドレスにより前
記分岐ヒストリ記憶手段内の分岐履歴情報を読出して前
記分岐命令に対応する分岐履歴情報の登録の有無を判定
する索引手段と、前記分岐命令の実行結果として決定さ
れた分岐先アドレスと前記索引手段からの出力として得
られた分岐取出アドレスとを比較して両者が不一致のと
き前記分岐命令の分岐履歴情報を前記分岐ヒストリ記憶
手段に登録する更新制御手段と、評価検証モードを設定
するモード設定レジスタ手段と、このモード設定レジス
タ手段の設定内容に応じて前記更新制御手段の更新動作
を抑止制御する手段とを含むことを特徴とするデータ処
理装置が得られる。
本発明によれば、上記構成の他に更に、前記モード設定
レジスタ手段の設定内容に応じて前記分岐ヒストリ記憶
手段への新規登録抑止及び先取り無効化抑止の各制御を
少なくともなす手段を含むことを特徴とするデータ処理
装置が得られる。
実施例 次に、本発明の実施例について図面を参照して説明す
る。
第1図は本発明を適用したデータ処理装置のブロック図
である。第1図において、命令制御ユニット1は命令用
キャッシュメモリ(命令キャッシュ)30を内蔵してお
り、命令語の先行取出し、解読,オペランド取出し,仮
想アドレスの作成を実行する。記憶制御ユニット2は命
令制御ユニット1の作成した仮想アドレスを実アドレス
に変換し、このアドレスをもとにオペランド用キャッシ
ュメモリ(オペランドキャッシュ)53,54を参照してオ
ペランドを読出し、これを演算制御ユニット3へ供給す
る。
演算制御ユニット3は記憶制御ユニット2から供給され
たオペランドに対して命令制御ユニット1から送られた
制御指示に基いて演算を実行し、その結果を汎用レジス
タおよびオペランドキャッシュへ格納する。なお、記憶
制御ユニット2は主記憶とのインタフェースをもち、オ
ペランドキャッシュおよび命令キャッシュに不在のデー
タが要求された場合、主記憶から読出す機能も有する
が、第1図においてはこれらのインタフェース部を省略
している。
命令制御ユニット1は以下のように構成される。命令語
先取用命令カウンタ(FIC)13と、この命令カウンタ13
の出力により参照される命令キャッシュ30と、命令カウ
ンタ13の出力を分岐予測結果が判明するまで保持する待
避レジスタ(BICF)14とを命令先取用に備えている。
分岐予測用の命令カウンタ(NIC)12の出力は分岐ヒス
トリメモリのアドレス部(NAA)10とデータ部(NAB)11
とにアドレスとして供給され、比較回路17によりアドレ
ス部10の出力と読出アドレスとの一致が検出されると、
対応するデータ部11の出力が選択回路19にて選択され待
避レジスタ(WIC)18にセットされる。待避レジスタ18
は予測済アドレスバッファ(NABF)20へ格納されるとと
もに、分岐予測に後続する命令取出のために選択回路15
および16へ送られる。
選択回路15は予測済アドレスバッファ20,待避レジスタ1
4,命令カウンタ12の+1加算値および分岐命令の分岐先
実アドレスの4者の出力を択一的に命令カウンタ12へ供
給する。選択回路16は予測済アドレスバッファ20,待避
レジスタ14,命令カウンタ13の+1加算値および分岐命
令の分岐先実行アドレスの4者の出力を択一的に命令カ
ウンタ13へ供給する。
命令キャッシュ30から読出された命令語は命令レジスタ
33に供給されるとともに、先行デコーダ34にて命令コー
ドが分岐命令であることが検出され、この検出結果が制
御回路21へ供給される。命令レジスタ33の一部はベース
レジスタ(GR)35の読出アドレスとして使用され、他の
一部は汎用レジスタ(BR)36の読出アドレスとして使用
される。アドレス加算器(ADR)37は命令レジスタ33の
アドレスシラブル部とベースレジスタの出力と汎用レジ
スタの出力との3者を加算して仮想アドレスを作成し、
記憶制御ユニット2へ供給する。
一方、命令レジスタ33の出力はデコーダ38において命令
制御ユニット内の制御信号を生成するとともに演算制御
ユニット用制御情報を作成し、待避バッファ(ISS)40
に供給する。待避バッファ40は記憶制御ユニット2が演
算制御ユニット3へオペランドを供給する時点におい
て、格納していた制御情報を演算制御ユニット3へ出力
する。またアドレス待避バッファ(ABF)41は記憶制御
ユニット2から送られる実アドレスを格納する。
記憶制御ユニット2はアドレス加算器37から送られる仮
想アドレスを保持する仮想アドレスレジスタ(VAR)50,
この仮想アドレスを実アドレスに変換するアドレス変換
バッファ(TLB)51、このバッファ51から出力される実
アドレスを保持する実アドレスレジスタ(PAR)52およ
びオペランドキャッシュ53,54から構成され、オペラン
ドキャッシュの出力はオペランドとして演算制御ユニッ
ト3へ供給される。また実アドレスレジスタ52の出力は
先述した如く分岐命令の分岐先アドレスとして選択回路
15及び16へ供給される。
演算制御ユニット3は汎用レジスタ63の出力を保持する
作業レジスタ60と、オペランドキャッシュ54からの出力
を保持する作業レジスタ61と、両作業レジスタ60,61の
出力を演算してその結果を汎用レジスタ63およびオペラ
ンドキャッシュ54へ供給するALU62とを含み、ALU62のキ
ャリィ出力およびゼロ検出出力は分岐判定回路66に送ら
れる。分岐判定回路66は待避バッファ40から供給された
命令解読情報が条件分岐命令のコンディションコードを
通知する場合にALU62の出力を参照して、分岐GO/NOGOを
判定し、この結果を命令制御ユニット1の制御回路21へ
通知する。
モードレジスタ65は分岐予測機構の動作モードを指示す
るレジスタであり、デコーダ64は待避バッファ40の出力
として供給される命令の制御情報を解読して演算ユニッ
ト3内の制御信号を分配する。このデコーダ64の制御信
号の一部はモードレジスタ65へ接続されており、このモ
ードレジスタ65が保持する値をこの制御信号に応じて変
更できるようになっている。
第2図は前述のモードレジスタ65,制御回路21およびそ
の周辺の具体的回路例を示している。同図において、ア
ンドゲート101はモードレジスタ65のビット0の値に従
い、端子130のタイミングで端子121から送られる分岐ヒ
ストリメモリの有効性を示すVビットを参照し、その出
力はオアゲート105を介して分岐ヒストリメモリの更新
回路へ端子131を介して送られる。
同様に、アンドゲート102は端子130から入力されるタイ
ミングでアドレス比較器から端子122を介して送られる
アドレス不一致信号をモードレジスタ65のビット1が
“1"の場合のみオアゲート105へ送出し、ビット1が
“0"の場合送出を抑止する。
アンドゲート104はモードレジスタ65のビット3が“1"
の場合、端子122から入力されるアドレス比較器のアド
レス不一致出力を端子124から送られる制御タイミング
で参照し、図示せぬインジケータにセットする。アンド
ゲート103はモードレジスタ65のビット2が“1"の場
合、端子122から入力されるアドレス比較器のアドレス
不一致出力を端子123から入力されるタイミングで参照
し、分岐先の取出をキャンセルする信号を生成する。
同図において、モードレジスタ65は先述のビット0〜3
の合計4ビットから構成される。モードレジスタ65のビ
ット0は分岐ヒストリメモリから出力されたデータの有
効表示ビットであるVビットが無効であるときの新規デ
ータの登録を抑止するモードを示す。モードレジスタ65
のビット1は分岐ヒストリメモリから出力されたデータ
の分岐先アドレスと実際の分岐命令の解読および実行結
果として得られる分岐先アドレスとが不一致であった場
合に、旧データを新規アドレス対とする分岐ヒストリメ
モリの更新を抑止するモードを示す。また、モードレジ
スタ65のビット2はビット1と同様に分岐先アドレスが
不一致であった場合、誤った分岐先取出を無効化する動
作を抑止するモードを示す。さらにレジスタ65のビット
3はビット1と同様に分岐先アドレスが不一致であった
場合、特定のインジケータをセットするモードを示す。
これらの各モードの抑止している機能はビット3を除
き、本来分岐ヒストリメモリを利用した分岐予測機構に
おいては必須の機能であって、特に分岐ヒストリメモリ
の更新および分岐予測誤り時の補正に係わる機能であ
る。従って、モードレジスタ65が抑止を指示する場合に
は、ビット0によって分岐ヒストリメモリの新規登録抑
止、ビット1によって不一致時の更新抑止、ビット2に
よって不一致時の不正な先取無効化の抑止、さらにビッ
ト3によって不一致時のインジケータへのセットが夫々
にされることになる。従って、分岐ヒストリメモリに予
め既知の分岐先を登録しておきしかる後にモードレジス
タ65の各ビットを制御することによって、様々な分岐ヒ
ストリメモリ動作の評価が可能となる。
例えば、ビット1をセットすることにより、分岐ヒスト
リメモリの更新を抑止し、分岐予測失敗状態を持続さ
せ、分岐予測失敗に基づく分岐先命令の先取りのキャン
セルを多発させることにより、先行制御回路の正当性の
評価を実施できる。
他の例としては、分岐ヒストリメモリの情報が全て正し
い分岐結果を有する場合を設定した後に、モードレジス
タ65のビット2もしくはビット3を設定し、分岐先不一
致状態発生というエラーをインジケータに設定したり、
または先取りキャンセル抑止することにより正常なプロ
グラム論理の継続を不可能にすることにより、分岐予測
機構の正当性を直接的に評価検証可能となるのである。
発明の効果 叙上の如く、本発明によれば、モードレジスタのビット
を予め設定することにより分岐ヒストリメモリ機構の機
能の正当性を正しく直接的に検証できるという効果があ
る。
【図面の簡単な説明】
第1図は本発明の実施例のブロック図、第2図は第1図
における制御回路とその周辺回路との一部ブロック図で
ある。 主要部分の符号の説明 1……命令制御ユニット 2……記憶制御ユニット 3……演算制御ユニット 10,11……分岐ヒストリメモリ 12……分岐予測用命令カウンタ 13……命令語先取用命令カウンタ 21……制御回路 30……命令キャッシュ 65……モードレジスタ

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】命令語を記憶する記憶手段と、この記憶手
    段から読出された命令語が分岐命令の場合に分岐先アド
    レスを生成するアドレス生成手段と、前記分岐命令の命
    令語取出アドレスと前記分岐先アドレスとからなるアド
    レス対を分岐履歴情報として、前記命令語取出アドレス
    に対応する格納アドレスに保持する分岐ヒストリ記憶手
    段と、前記分岐命令の命令語取出アドレスにより前記分
    岐ヒストリ記憶手段内の分岐履歴情報を読出して前記分
    岐命令に対応する分岐履歴情報の登録の有無を判定する
    索引手段と、前記分岐命令の実行結果として決定された
    分岐先アドレスと前記索引手段からの出力として得られ
    た分岐取出アドレスとを比較して両者が不一致のとき前
    記分岐命令の分岐履歴情報を前記分岐ヒストリ記憶手段
    に登録する更新制御手段と、評価検証モードを設定する
    モード設定レジスタ手段と、このモード設定レジスタ手
    段の設定内容に応じて前記更新制御手段の更新動作を抑
    止制御する手段とを含むことを特徴とするデータ処理装
    置。
  2. 【請求項2】前記モード設定レジスタ手段の設定内容に
    応じて前記分岐ヒストリ記憶手段への新規登録抑止及び
    先取り無効化抑止の各制御を少なくともなす手段を更に
    含むことを特徴とする請求項1記載のデータ処理装置。
JP63127906A 1988-05-25 1988-05-25 データ処理装置 Expired - Fee Related JPH0769809B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP63127906A JPH0769809B2 (ja) 1988-05-25 1988-05-25 データ処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP63127906A JPH0769809B2 (ja) 1988-05-25 1988-05-25 データ処理装置

Publications (2)

Publication Number Publication Date
JPH01296341A JPH01296341A (ja) 1989-11-29
JPH0769809B2 true JPH0769809B2 (ja) 1995-07-31

Family

ID=14971583

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63127906A Expired - Fee Related JPH0769809B2 (ja) 1988-05-25 1988-05-25 データ処理装置

Country Status (1)

Country Link
JP (1) JPH0769809B2 (ja)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60164842A (ja) * 1984-02-08 1985-08-27 Nec Corp 命令先取り装置
JPS61175733A (ja) * 1985-01-30 1986-08-07 Nec Corp 分岐予測制御方式

Also Published As

Publication number Publication date
JPH01296341A (ja) 1989-11-29

Similar Documents

Publication Publication Date Title
EP0118828B1 (en) Instruction fetch apparatus and method of operating same
US5615350A (en) Apparatus to dynamically control the out-of-order execution of load-store instructions in a processor capable of dispatching, issuing and executing multiple instructions in a single processor cycle
US5404467A (en) CPU having pipelined instruction unit and effective address calculation unit with retained virtual address capability
EP0380846B1 (en) Apparatus for resolving a variable number of potential memory access conflicts in a pipeline computer system and method therefor
US6581151B2 (en) Apparatus and method for speculatively forwarding storehit data based on physical page index compare
EP0381447B1 (en) Method and apparatus for controlling the conversion of virtual to physical memory addresses in a digital computer system
US5592634A (en) Zero-cycle multi-state branch cache prediction data processing system and method thereof
US7162613B2 (en) Mechanism for processing speculative LL and SC instructions in a pipelined processor
JP4585005B2 (ja) 分岐訂正によるプリデコードのエラー処理
JPH06131178A (ja) マルチプロセッサ又はパイプラインプロセッサシステムにおい てデータの完全性を確保する方法
JPH06131175A (ja) 高性能プロセッサのためのバイト比較操作方法
JPH06110685A (ja) 高性能プロセッサにおける分岐予想方法
JPH0695877A (ja) 簡略命令セットプロセッサの性能改善方法
GB2321323A (en) Computer programme branch prediction
JP2560889B2 (ja) マイクロプロセッサ
JP2006520964A (ja) 分岐ターゲットに基づいて分岐予測をするための方法および装置
JP2006520964A5 (ja)
US6742112B1 (en) Lookahead register value tracking
CA2045735A1 (en) Computer performance by eliminating branches
JP3825974B2 (ja) トランスレーション・ルックアサイド・バッファ回路
JP3486690B2 (ja) パイプライン方式プロセッサ
US6993638B2 (en) Memory access device and method using address translation history table
EP0471888B1 (en) Microprocessor for enhancing initiation of instruction execution after the execution of conditional branch instruction
KR19990003937A (ko) 프리페치 장치
JPH0769809B2 (ja) データ処理装置

Legal Events

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