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

データ処理装置

Info

Publication number
JPH01296341A
JPH01296341A JP12790688A JP12790688A JPH01296341A JP H01296341 A JPH01296341 A JP H01296341A JP 12790688 A JP12790688 A JP 12790688A JP 12790688 A JP12790688 A JP 12790688A JP H01296341 A JPH01296341 A JP H01296341A
Authority
JP
Japan
Prior art keywords
branch
address
instruction
bit
register
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
JP12790688A
Other languages
English (en)
Other versions
JPH0769809B2 (ja
Inventor
Yoshiharu Ono
大野 義治
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)

Abstract

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

Description

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

Claims (1)

    【特許請求の範囲】
  1. (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 true JPH01296341A (ja) 1989-11-29
JPH0769809B2 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)

Citations (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 分岐予測制御方式

Patent Citations (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
JPH0769809B2 (ja) 1995-07-31

Similar Documents

Publication Publication Date Title
EP0628184B1 (en) Cpu having pipelined instruction unit and effective address calculation unit with retained virtual address capability
US5530825A (en) Data processor with branch target address cache and method of operation
EP0118828B1 (en) Instruction fetch apparatus and method of operating same
US6449714B1 (en) Total flexibility of predicted fetching of multiple sectors from an aligned instruction cache for instruction execution
US4763245A (en) Branch prediction mechanism in which a branch history table is updated using an operand sensitive branch table
EP0302999B1 (en) Out-of-sequence operand fetches
US7730283B2 (en) Simple load and store disambiguation and scheduling at predecode
US5560036A (en) Data processing having incircuit emulation function
US6754856B2 (en) Memory access debug facility
US7162613B2 (en) Mechanism for processing speculative LL and SC instructions in a pipelined processor
KR100909163B1 (ko) 브랜치 보정을 통한 전치-디코드 에러 조절
US6543028B1 (en) Silent data corruption prevention due to instruction corruption by soft errors
US20090183035A1 (en) Processor including hybrid redundancy for logic error protection
US5862371A (en) Method and system for instruction trace reconstruction utilizing performance monitor outputs and bus monitoring
CA1180455A (en) Pipelined microprocessor with double bus architecture
US5987585A (en) One-chip microprocessor with error detection on the chip
JP3486690B2 (ja) パイプライン方式プロセッサ
US6993638B2 (en) Memory access device and method using address translation history table
US7290179B2 (en) System and method for soft error handling
US6934903B1 (en) Using microcode to correct ECC errors in a processor
US6510506B2 (en) Error detection in cache tag array using valid vector
US6978361B2 (en) Effectively infinite branch prediction table mechanism
JPH01296341A (ja) データ処理装置
JPH01296343A (ja) データ処理装置
JPH01296344A (ja) データ処理装置

Legal Events

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