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

データ処理装置

Info

Publication number
JPH01296344A
JPH01296344A JP12790988A JP12790988A JPH01296344A JP H01296344 A JPH01296344 A JP H01296344A JP 12790988 A JP12790988 A JP 12790988A JP 12790988 A JP12790988 A JP 12790988A JP H01296344 A JPH01296344 A JP H01296344A
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.)
Pending
Application number
JP12790988A
Other languages
English (en)
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 JP12790988A priority Critical patent/JPH01296344A/ja
Publication of JPH01296344A publication Critical patent/JPH01296344A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Abstract

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

Description

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

Claims (1)

    【特許請求の範囲】
  1. (1)命令語を記憶する記憶手段と、この記憶手段から
    読出された命令語が分岐命令の場合に分岐先アドレスを
    生成するアドレス生成手段と、前記分岐命令の命令語取
    出アドレスと、前記分岐先アドレスとからなるアドレス
    対を分岐履歴情報として、前記命令語取出アドレスに対
    応する格納アドレスに保持する分岐ヒストリ記憶手段と
    、前記分岐命令の命令語取出アドレスにより前記分岐ヒ
    ストリ記憶手段内の分岐履歴情報を読出して前記分岐命
    令に対応する分岐履歴情報の登録の有無を判定する索引
    手段と、この判定結果が無を示すとき、前記分岐命令の
    分岐履歴情報として新たに前記記憶手段に登録する更新
    制御手段と、この更新制御手段による前記分岐ヒストリ
    記憶手段の更新動作を抑止制御する制御手段とを含むこ
    とを特徴とするデータ処理装置。
JP12790988A 1988-05-25 1988-05-25 データ処理装置 Pending JPH01296344A (ja)

Priority Applications (1)

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

Applications Claiming Priority (1)

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

Publications (1)

Publication Number Publication Date
JPH01296344A true JPH01296344A (ja) 1989-11-29

Family

ID=14971655

Family Applications (1)

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

Country Status (1)

Country Link
JP (1) JPH01296344A (ja)

Similar Documents

Publication Publication Date Title
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
EP0628184B1 (en) Cpu having pipelined instruction unit and effective address calculation unit with retained virtual address capability
EP0706128B1 (en) Fast comparison method and apparatus for errors corrected cache tags
KR100909163B1 (ko) 브랜치 보정을 통한 전치-디코드 에러 조절
US6543028B1 (en) Silent data corruption prevention due to instruction corruption by soft errors
JPH0427573B2 (ja)
US5862371A (en) Method and system for instruction trace reconstruction utilizing performance monitor outputs and bus monitoring
KR870001307B1 (ko) 버퍼 기억장치의 단일 비트 에러처리시스템
JP3486690B2 (ja) パイプライン方式プロセッサ
US6993638B2 (en) Memory access device and method using address translation history table
US7290179B2 (en) System and method for soft error handling
JP2002278752A (ja) 命令の実行結果予測装置
US6978361B2 (en) Effectively infinite branch prediction table mechanism
JPH01296344A (ja) データ処理装置
JPH01296343A (ja) データ処理装置
JPS5991551A (ja) 分岐先アドレス予測を行なう命令先取り装置
JPH01296342A (ja) データ処理装置
JPH01296341A (ja) データ処理装置
US20060150048A1 (en) Method and apparatus for protecting TLB's VPN from soft errors
AU700454B2 (en) Jump prediction
US7334115B1 (en) Detection, recovery and prevention of bogus branches
WO2023108600A1 (en) System, method and apparatus for reducing power consumption of error correction coding using compacted data blocks
JP3108512B2 (ja) 分岐予測装置
JPH0695306B2 (ja) 命令先取り装置