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

データ処理装置

Info

Publication number
JPH01205340A
JPH01205340A JP3036088A JP3036088A JPH01205340A JP H01205340 A JPH01205340 A JP H01205340A JP 3036088 A JP3036088 A JP 3036088A JP 3036088 A JP3036088 A JP 3036088A JP H01205340 A JPH01205340 A JP H01205340A
Authority
JP
Japan
Prior art keywords
branch
branch destination
address
destination address
instruction
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
JP3036088A
Other languages
English (en)
Inventor
Takeshi Morisada
森定 剛
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 JP3036088A priority Critical patent/JPH01205340A/ja
Publication of JPH01205340A publication Critical patent/JPH01205340A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、分岐命令のアドレスと該分岐命令の分岐先ア
ドレスを対にして記憶する分岐ヒストリテーブルを有し
、命令の先取りを行うデータ処理装置に関する。
(従来の技術〕 一般に分岐ヒストリテーブルは、分岐命令のアドレスと
分岐先アドレスを対にして記憶してd3す、命令取出し
アドレスと前記分岐命令のアドレスが一致することによ
り、前記分岐先アドレスに分岐するものとして命令先取
りアドレスを制御する(特公昭5O−22384)。
また、分岐命令の分岐先アドレスは、分岐先アドレス生
成時のレジスタ修飾、命令の書替えなどにより変更され
ることが考えられる。
(発明が解決しようとする課題〕 上述した従来の分岐ヒストリテーブル制御方式では、た
だ単に分岐命令のアドレスと分岐先アドレスを記憶して
いるため、分岐先アドレスがレジスタ修飾や命令書替え
によりしばしば変更されるような分岐命令では、間違っ
た分岐先命令を先取ってしまい、再度命令を取りなおす
必要があるという欠点があり、またこのように分岐先が
変更されうる分岐命令に対して常に分岐先ヒストリテー
ブルの索引を禁止したり、分岐先命令の先取り吊を減少
させた場合には、分岐先アドレス変更後、同一分岐先ア
ドレスに分岐した場合に分岐先命令の先取りが遅れてし
まい性能が低下するという欠点がある。
〔課題を解決するための手段] 本発明のデータ処理装置は、 命令取出しアドレスにより分岐ヒストリテーブルを索引
する索引手段と、 前記索引手段により分岐先予測アドレスを読出す手段と
、 実際の分岐命令処理時、前記分岐先予測アドレスと実際
の分岐先アドレスを比較づる第1の比較手段と、 前記分岐ヒストリテーブルに設けられ、第1の比較手段
によって示される分岐先アドレス比較結果を分岐先アド
レスに対応して記憶する記憶手段と、 命令取出しアドレスにより前記分岐ヒストリテーブルを
索引する時、前記記憶手段に記憶されている比較結果が
、分岐先予測アドレスと実際の分岐先アドレスの不一致
を示していた場合、索引結果を無効化する手段と、 分岐先アドレスの前記分岐ヒストリテーブルへの登録時
、分岐ヒストリテーブルに登録する分岐先アドレスと、
前記分岐ヒストリテーブルにあらかじめ格納されている
分岐先アドレスを比較する第2の比較手段と、 第2の比較手段により前記分岐先アドレスが一致してい
た場合、前記記憶手段に記憶されている第1の比較手段
の比較結果を分岐先予測アドレスと実際の分岐先アドレ
スの一致を示すように変更する手段とを有している。
(作用) 実際の分岐先アドレスが予測した分岐先アドレスと異な
っていた場合、以後、この命令アドレスの命令読出し時
には予測分岐先アドレスは検出されないので、間違った
分岐先命令の取出しを抑えることができる。また、分岐
先アドレスを分岐ヒストリテーブルに登録するとき、こ
の分岐先アドレスが分岐ヒストリテーブルに登録されて
いれば、再び予測分岐先アドレスが検出されるようにな
り、分岐先命令の先取りがdれてしまうことはない。
〔実施例〕
次に、本発明の実施例について図面を参照して説明する
第1図は本発明のデータ処理装置の一実施例の要部のブ
ロック図である。
命令レジスタ1は命令語を保持するレジスタであり、信
号線100を介して記憶装置(図示せず)より送出され
る命令語を受け、信号線101を介して命令アドレス生
成アダー2に命令アドレス生成のための情報を送出する
。命令アドレス生成アダー2は、命令取出しアドレスを
生成するアドレス生成回路であり、分岐命令時は信号線
101を介して命令レジスタ1より送出された命令アド
レス生成情報を受け、また、信号線102を介して分岐
ヒストリテーブル5より予測分岐先アドレスと、信号線
103を介して分岐ヒストリテーブル5より予測分岐先
検出信号を受け、命令取出しアドレスを信号線104を
介して命令アドレスレジスタファイル3、分岐先アドレ
ス比較回路4、分岐ヒストリテーブル5および記憶装置
に送出する。
分岐アドレスレジスタファイル3は命令アドレスを保持
するレジスタファイルであり、信号線104を介して分
岐アドレス生成アダー2より送出される分岐先命令アド
レスを受け、信号線121を介して、分岐先アドレス比
較回路4に予測した分岐先アドレスを出力し、信号線1
06.107を介して分岐ヒストリテーブル5に現在処
理中の分岐命令のアドレスおよびその分岐先アドレスを
出力する。分岐先アドレス比較回路4は、予測した分岐
先アドレスと実際の分岐先アドレスを比較する比較回路
であり、信号線104を介して分岐アドレス生成アダー
2より出力される実際の分岐先アドレスと信号線121
を介して分岐アドレスレジスタファイル3より予測した
分岐先アドレスを受け、信号線105を介して分岐ヒス
トリテーブル5にその比較結果を出力する。分岐ヒスト
リテーブル5は、信号線104を介し分岐アドレス生成
アダー2より命令取出しアドレスを、信号線105を介
して、分岐先アドレス比較回路4より予測した分岐先ア
ドレスと実際の分岐先アドレスの比較結果を、また信号
線106 a5よび107を介して現在処理中の分岐命
令のアドレスおよびその分岐先アドレスを受け、信号線
103を介して予測分岐先検出信号および信号線102
を介して予測分岐先アドレスを分岐アドレス生成アダー
2に出力する。
第2図は第1阿中の分岐ヒストリテーブル5のブロック
図であり、信号線104,105,106.107,1
02.103は第1図中の同一名の信@線と一致する。
命令アドレス選択回路51は命令アドレスを選択する回
路であり、信号線104を介して分岐アドレス生成アダ
ー2より出力される命令取出しアドレスと信号線106
を介して分岐アドレスレジスタファイル3より出力され
る分岐命令のアドレスを分岐ヒストリテーブル5の登録
/索引の動作に応じて選択し、信号線122を介して命
令アドレスレジスタ52に送出する。命令アドレスレジ
スタ52は命令のアドレスを受けるレジスタであり、分
岐先アドレス登録時には分岐命令のアドレスを、また索
引時には命令取出しアドレスを信号線122を介して命
令アドレス選択回路51より受け、その一部を信号線1
09を介して分岐アドレステーブル55、分岐先アドレ
ステーブル56、比較情報テーブル58に送出し、また
他の−・部を信号線108を介して分岐アドレステーブ
ル55および分岐アドレス比較回路59に送出する。分
岐先アドレスレジスタ53は分岐先アドレス登録時に分
岐先アドレスを保持するためのレジスタであり、信号線
107を介して分岐アドレスレジスタファイル3より送
出された分岐先アドレスを受け、信号線110を介して
分岐先アドレステーブル56および分岐先アドレス比較
回路60に送出する。比較情報スタック54は分岐先ア
ドレス比較回路4の分岐先アドレス比較結果を受けるレ
ジスタファイルであり、信号線105を介し、分岐先ア
ドレス比較回路4より送出される比較結果を受け、信号
線111を介して比較情報選択回路57に命令アドレス
レジスタ52に保持されているアドレスの分岐命令に対
応する比較結果を出力する。分岐アドレステーブル55
は分岐命令のアドレスを示す情報を保持するメモリであ
り、信号線108を介して命令アドレスレジスタ52J
:り送出される命令アドレスの一部をアドレスとし、書
込み時には信号線109を介して命令アドレスレジスタ
52より送出される命令アドレスの一部を受け、読出し
時には、信号線113を介して分岐アドレス比較回路5
9に命令アドレス情報を送出する。分岐先アドレステー
ブル56は分岐アドレステーブル55と対応して分岐先
アドレスを保持するメモリであり、分岐アドレステーブ
ル55同様に信号線109を介して分岐アドレスレジス
タ52より送出される命令アドレスの−・部をアドレス
として受け、書込み時には分岐先アドレスレジスタ53
より信Mi1110を介して送出される分岐先アドレス
を受け、読出し時には信号線114を介して分岐先アド
レス比較回路60および予測分岐先アドレスレジスタ6
6に分岐先アドレスを出力する。比較情報選択回路57
は、比較情報テーブル58に書込む比較情報を選択する
選択回路であり、信号線111を介して比較情報スタッ
ク54より送出された分岐先アドレス比較回路4での比
較結果と、信号線112を介して分岐先変更フラグ67
より送出された分岐先アドレス比較回路60での比較結
果を選択し、信号線123を介して比較情報テーブル5
8にその選択内容を送出する。比較情報テーブル58は
分岐アドレステーブル559分岐先アドレステーブル5
6と対応して分岐先アドレスの比較結果を示す情報を保
持するメモリであり、信号線109を介して命令アドレ
スレジスタ52より送出される命令アドレスの一部をア
ドレスとして受け、出込み時に比較情報選択回路57よ
り信号線123を介して出力される比較結果を受け、読
出し時には信号線115を介してナツト回路63に比較
結果を出力する。
分岐先アドレス比較回路59は、命令アドレスと分岐命
令のアドレスが等しいかどうかを検出する比較回路であ
り、信号線108を介して命令アドレスレジスタ52よ
り送出される命令アドレス情報と信号線113を介して
分岐アドレステーブル55より送出される分岐命令のア
ドレス情報を比較して、その結果を信号線117を介し
てアンド回路62J3よびナンド回路61に送出する。
分岐先アドレス比較回路60は、分岐先アドレスが以前
分岐した時の分岐先アドレスと等しいかどうかを検出す
る比較回路であり、信号線110を介して分岐先アドレ
スレジスタ53より送出される分岐先アドレスと信号線
114を介して分岐先アドレステーブル56より送出さ
れた以前の分岐先アドレスとを比較し、その結果を信号
線118を介してナンド回路61に送出する。ナンド回
路61は信号線117を介して分岐アドレス比較回路5
9の比較結果と信号線118を介して分岐先アドレス比
較回路60の比較結果を受け、その否定論理積として、
同じ命令アドレスの分岐命令が以前に同じ分岐先アドレ
スに分岐したことを示す情報を信号線120を介して分
岐先変更フラグ67に送出する。アンド回路62は、信
号線117を介して分岐アドレス比較回路5つの比較結
果と、信号線116を介してナツト回路63の以前分岐
先アドレスの比較結果を受け、その論理積として、予測
分岐先アドレスが命令取出し時に見つかったことを示す
情報を信号線119に送出づる。ナツト回路63は信号
tfA115を介して比較情報テーブル58より送出さ
れる以前の分岐先アドレス比較情報を受け、信号線11
6にその否定を出力する。分岐先検出フラグ65は、命
令取出し時に予測分岐先が見つかったことを示すフラグ
であり、信号線119を介して同情報をアンド回路62
より受け、信号線103を介し命令アドレス生成アダー
2に送出する。予測分岐先アドレスレジスタ66は、分
岐先検出フラグ65に対応して予測分岐先アドレスを受
けるレジスタであり、信号線114を介して以前の分岐
先アドレスを受は信号線102を介して命令アドレス生
成アダー2に送出する。分岐先変更フラグ67は分岐先
アドレス書込み時に同じ分岐先に分岐していたかどうか
を示すフラグであり、信号線120を介してナンド回路
61より同情報を受け、信号線112を介して比較情報
選択回路57に送出する。
次に、本実施例の動作を簡単に説明する。
(1)まず、予測されなかった分岐命令の動作から説明
する。
命令レジスタ1に分岐命令が保持されると、命令アドレ
ス生成アダー2は信号線101を介してアドレス情報を
受は取り、分岐先命令アドレスを信号線104に送出す
る。分岐アドレスレジスタファイル3はこの分岐先アド
レスを保持し、分岐命令実行時にこの分岐先アドレスを
分岐命令アドレスとともに信号線107および106に
送出する。分岐ヒストリテーブル5は、まず、分岐アド
レスレジスタ52と分岐先アドレスレジスタ53にそれ
ぞれ分岐命令アドレスと分岐先アドレスを受け、−度分
岐アドレステーブル55を調べて同じ分岐命令が登録さ
れていないことを調べたのち、分岐アドレステーブル5
5および分岐先アドレステーブル56に書込む。このと
き対応する比較情報テーブル58には比較情報選択回路
7により分岐先変更フラグ67の出力が選択され“0″
が書込まれる。
(2)次に、命令取出しの動作について説明する。
命令取出しアドレスは命令アドレス生成アダー2にて作
成され信号線104を介して分岐ヒストリテーブル5に
送出される。分岐ヒストリテーブル5では、命令アドレ
スが命令アドレスレジスタ52に保持され、分岐アドレ
ステーブル55の出力と、分岐アドレス比較回路59で
比較され、比較結果が信号線117に出力されこの時比
較情報テーブル58の内容は“0”なので信号線119
はII I 11となり分岐先検出フラグ65が“°1
″となる。この時予測分岐先アドレスは分岐先アドレス
テーブル56より予測分岐先アドレスレジスタ66に読
出される。この画情報は、信号線103゜102を介し
て命令アドレス生成アダー2に送出され、分岐先命令の
先取りが行われる。このとき、つくられた予測分岐先ア
ドレスは信号線104を介して命令アドレスレジスタフ
ァイル3に保持される。
(3)最後に、分岐先アドレスが異っていた場合の動作
について説明する。
実際の分岐命令の処理時、(1)の動作と同様に実際の
分岐先アドレスが計算され信号線104を介し出力され
るが、この実際の分岐先アドレスと予測した分岐先アド
レスが分岐先アドレス比較回路4で比較され、その結果
が信号線105を介して、比較情報スタック54に保持
され、分岐命令の実行時に、比較情報選択回路57を介
し比較情報テーブル58に書込まれ、比較情報テーブル
58の内容が“1″になる。その他の動作は(1)の動
作と同じである。これにより、以後、この命令アドレス
の命令読出し時には、予測分岐先アドレスを検出しない
。しかしながら、分岐ヒストリテーブル5に対する書込
み動作時には、信号線114の内容と分岐先アドレスレ
ジスタ53の内容を比較し、一致すると、分岐先変更フ
ラグ67が0″になり、比較情報テーブル58の内容が
再び11011となって、再び予測分岐先アドレスが検
出されるようになる。
〔発明の効果〕
以上説明したように本発明は、分岐先アドレスが変更さ
れると、分岐先アドレスの予測を止め、再び同じ分岐先
アドレスに分岐するようになると予測を再開することに
より、誤った分岐先命令の取出しを抑さえることができ
る効果がある。
【図面の簡単な説明】
第1図は本発明のデータ処理装置の一実施例のブロック
図、第2図は第1図中の分岐ヒストリテーブル5のブロ
ック図である。 1・・・命令レジスタ、 2・・・命令アドレス生成アダー、 3・・・命令アドレスレジスタファイル、4・・・分岐
先アドレス比較回路、 5・・・分岐ヒストリテーブル、 51・・・命令アドレス選択回路、 52・・・命令アドレスレジスタ、 53・・・分岐先アドレスレジスタ、 54・・・比較情報スタック、 55・・・分岐アドレステーブル、 56・・・分岐先アドレステーブル、 57・・・比較情報選択回路、 58・・・比較情報テーブル、 59・・・分岐アドレス比較回路、 60・・・分岐先アドレス比較回路、 61・・・ナンド回路、62・・・アンド回路、63・
・・ナツト回路、 65・・・分岐先検出フラグ、 66・・・予測分岐先アドレスレジスタ、67・・・分
岐先変更フラグ。

Claims (1)

  1. 【特許請求の範囲】 分岐命令のアドレスと該分岐命令の分岐先アドレスを対
    にして記憶する分岐ヒストリテーブルを有し、命令の先
    取りを行うデータ処理装置において、 命令取出しアドレスにより前記分岐ヒストリテーブルを
    索引する索引手段と、 前記索引手段により分岐先予測アドレスを読出す手段と
    、 実際の分岐命令処理時、前記分岐先予測アドレスと実際
    の分岐先アドレスを比較する第1の比較手段と、 前記分岐ヒストリテーブルに設けられ、第1の比較手段
    によって示される分岐先アドレス比較結果を分岐先アド
    レスに対応して記憶する記憶手段と、 命令取出しアドレスにより前記分岐ヒストリテーブルを
    索引する時、前記記憶手段に記憶されている比較結果が
    、分岐先予測アドレスと実際の分岐先アドレスの不一致
    を示していた場合、索引結果を無効化する手段と、 分岐先アドレスの前記分岐ヒストリテーブルへの登録時
    、分岐ヒストリテーブルに登録する分岐先アドレスと、
    前記分岐ヒストリテーブルにあらかじめ格納されている
    分岐先アドレスを比較する第2の比較手段と、 第2の比較手段により前記分岐先アドレスが一致してい
    た場合、前記記憶手段に記憶されている第1の比較手段
    の比較結果を分岐先予測アドレスと実際の分岐先アドレ
    スの一致を示すように変更する手段とを有することを特
    徴とするデータ処理装置。
JP3036088A 1988-02-12 1988-02-12 データ処理装置 Pending JPH01205340A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP3036088A JPH01205340A (ja) 1988-02-12 1988-02-12 データ処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3036088A JPH01205340A (ja) 1988-02-12 1988-02-12 データ処理装置

Publications (1)

Publication Number Publication Date
JPH01205340A true JPH01205340A (ja) 1989-08-17

Family

ID=12301695

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3036088A Pending JPH01205340A (ja) 1988-02-12 1988-02-12 データ処理装置

Country Status (1)

Country Link
JP (1) JPH01205340A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013502657A (ja) * 2009-08-19 2013-01-24 クアルコム,インコーポレイテッド 条件付き非ブランチング命令の非実行を予測するための方法および機器

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013502657A (ja) * 2009-08-19 2013-01-24 クアルコム,インコーポレイテッド 条件付き非ブランチング命令の非実行を予測するための方法および機器
JP2015130206A (ja) * 2009-08-19 2015-07-16 クアルコム,インコーポレイテッド 条件付き非ブランチング命令の非実行を予測するための方法および機器

Similar Documents

Publication Publication Date Title
KR930016880A (ko) 전자장치 및 그것의 고정정보 수정방법
US4670836A (en) Device for detecting an overlap of operands to be accessed
JP2570859B2 (ja) データ処理装置
JPH01205340A (ja) データ処理装置
KR960012354B1 (ko) 마이크로 프로세서
JP2658342B2 (ja) データ処理装置
JPH06301537A (ja) 命令フェッチ回路
JPH0248733A (ja) 情報処理装置
JPS62232035A (ja) 命令先取り制御方式
JPH0769822B2 (ja) 演算レジスタのバイパスチェック方式
JPH03119424A (ja) 情報処理方式及び装置
JPH0342722A (ja) 分岐ヒストリテーブルを用いた分岐予測方式
JPH0476150B2 (ja)
JPH03127126A (ja) 情報処理装置
JPS6212532B2 (ja)
JPS63157236A (ja) 命令の先取り制御を行なう情報処理装置
JPS63191231A (ja) 命令の先取りを行なう情報処理装置
JPH04145553A (ja) 緩衝記憶装置
JPH0667881A (ja) 分岐予測アドレス処理方式
JPS61208130A (ja) 分岐命令制御方式
JPH03119425A (ja) 情報処理方式及び装置
JPH0683858A (ja) ベクトル命令処理装置
JPH0227690B2 (ja)
JPH0553798A (ja) 情報処理装置
JPS6074023A (ja) 変数チエツク方式