JPH07334363A - 情報処理装置 - Google Patents

情報処理装置

Info

Publication number
JPH07334363A
JPH07334363A JP12162294A JP12162294A JPH07334363A JP H07334363 A JPH07334363 A JP H07334363A JP 12162294 A JP12162294 A JP 12162294A JP 12162294 A JP12162294 A JP 12162294A JP H07334363 A JPH07334363 A JP H07334363A
Authority
JP
Japan
Prior art keywords
branch
instruction
address
information
branch prediction
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
JP12162294A
Other languages
English (en)
Inventor
Satoshi Itsukida
諭 五木田
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP12162294A priority Critical patent/JPH07334363A/ja
Publication of JPH07334363A publication Critical patent/JPH07334363A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Abstract

(57)【要約】 【目的】 分岐予測の精度が改善でき命令の実行効率を
向上させて高速な情報処理ができる情報処理装置を提供
することを目的とする。 【構成】 外部メモリ101から送られてくる命令フィ
ールド中に分岐予測情報107と分岐アドレスとが含ま
れている。選択回路106は、分岐予測情報107を参
照して、分岐アドレスか非分岐アドレス生成回路104
から生成される非分岐アドレスかのどちらかを選択す
る。選択回路106は、選択したアドレスを次にフェッ
チすべき命令のアドレスとして外部メモリ101に出力
する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、情報処理の高速化に対
応する情報処理装置に関するものである。
【0002】
【従来の技術】近年、情報機器における情報処理の高速
化に伴い、多くの情報処理装置では、命令に対する実行
処理を複数の実行部に分割し、これらの命令実行処理の
並列動作を可能とすることによって、パイプライン機構
をサポートしている。
【0003】パイプライン機構を持つCPUの場合、単
位時間当たりの命令投入数を多くでき、命令処理の高速
化が可能となる。しかし、パイプライン機構では種々の
ハザードが存在する。これらのハザードに関しては、た
とえば、1993年8月20日発行『コンピュータアー
キテクチャ原理 コロナ社』(以下、文献1と記す)、
第98頁〜第100頁に説明されている。
【0004】この説明によると、パイプラインハザード
としては、命令チェッチとデータフェッチが同時に行な
われることによる構造ハザードと、メモリやレジスタへ
のアクセスが複数の命令によっておこなわれることから
発生するデータハザードと、条件分岐によって次の命令
が変化し、先行フェッチした命令と矛盾を引き起こすコ
ントロールハザードとがある。
【0005】これらのパイプラインハザードのうち、条
件分岐によって引き起こされるコントロールハザードを
解消するためには、ディレイドブランチと分岐予測の2
通りの技法が存在する。
【0006】ディレイドブランチの場合には、分岐命令
をフェッチした後に分岐実行するまでの時間の間のパイ
プをソフトウェアに公開するもので、CPU利用者は分
岐までのパイプを命令で埋めることができる。一方、分
岐予測の場合には、あらかじめ、分岐する方向を予測し
ておき、予測した方向の命令をあらかじめフェッチして
おくものである。
【0007】この分岐予測の技法を採用した従来の情報
処理装置の一例について、以下に説明する。図2は従来
の情報処理装置の一例である。
【0008】図2において、外部メモリ201とCPU
202とが接続されている。CPU202は、命令デコ
ーダ203、非分岐アドレス生成回路204、分岐予測
回路205、選択回路206から構成されている。ま
た、命令デコーダ203は、外部メモリ201、選択回
路206に接続されている。非分岐アドレス生成回路2
04は選択回路206に接続されている。分岐予測回路
205は選択回路206に接続されている。
【0009】以上のような構成要素からなる情報処理装
置について、以下にその動作を説明する。外部メモリ2
01にはCPU202が実行する命令が存在する。CP
U202は、外部メモリ201から各命令を読みだし命
令デコーダ203に取り込む。命令デコーダ203は命
令の内容を解釈する。ここでは、解釈された命令の内容
が条件分岐命令(bnc)である場合を考える。
【0010】この条件分岐命令(bnc)は、この命令
フィールド中に、分岐条件の成立時に実行すべき命令の
アドレス情報(adr1)を持ち、また、非分岐アドレ
ス生成回路204は、分岐条件の非成立時に実行すべき
命令のアドレス情報を生成する。
【0011】この場合の条件分岐命令(bnc)に対し
て、分岐条件の成立時には、条件分岐命令(bnc)の
命令フィールド中のアドレス情報(adr1)が分岐ア
ドレスとして選択回路206に送られる。一方、分岐条
件の非成立時には、非分岐アドレス生成回路204が生
成したアドレス情報が非分岐アドレスとして選択回路2
06に送られる。
【0012】選択回路206は、非分岐時の非分岐アド
レス、あるいは分岐時の分岐アドレスのどちらのアドレ
スをフェッチするかを決定する。この決定の際には、分
岐予測回路205からの分岐予測の情報をもとに、どち
らのアドレスを外部メモリ201に送るかを決定する。
このアドレスに基づいて、外部メモリ201は該当する
命令をCPU202に送る。この際において、重要な点
は分岐予測回路205における分岐予測を行うための方
法であるが、この分岐予測の方法に関しては、たとえ
ば、文献1の第107〜110頁に説明されている。
【0013】この分岐予測の方法としては、前回の分岐
/非分岐の精度をもとに次の分岐/非分岐の予想を行な
う状態遷移マシンによる分岐予測と、分岐命令実行時の
分岐番地を表にし、その情報を元に予想を行なうブラン
チターゲットバッファによる分岐予測などがある。これ
らの分岐予測は、いずれもCPU内での分岐に関する情
報を蓄え利用することにより、分岐予測を行なうもので
ある。
【0014】また他に、分岐アドレスの値によって分岐
を予測する機構がある。例えば一例として、分岐アドレ
スの値が現在のアドレスと比較し、分岐アドレスのほう
が値が小さい場合分岐と予測し、分岐アドレスの方が値
が大きい場合分岐しないとする予測する手法がある。こ
の手法の場合、分岐命令の統計的情報を判断基準として
いる。文献1の第104頁に記されているように、条件
分岐の場合、if文に関する場合は50%が分岐し、ル
ープを構成する場合は90%が分岐する。
【0015】ループを構成している場合、分岐アドレス
の値は、現在実行している命令のアドレスの値より小さ
い。このことから、分岐アドレスの値と命令のアドレス
の値とを比較することにより、分岐か非分岐かを予測す
る。これは、前述の通りループが分岐する確率が統計上
多く、実際にプログラムがループ構成をしていた場合に
は効果は大きい。
【0016】しかし、分岐アドレスの値によって分岐予
測を行なう場合、プログラムによってはループ構成の
際、条件判断を先頭で行なう場合もあり、必ずループが
値の小さい方のアドレスに分岐するとは限らない。ま
た、分岐する場合と分岐しない場合との確率はプログラ
ムの書き方にも左右されるためアドレスの値だけで判断
しては予測精度が十分でない。
【0017】
【発明が解決しようとする課題】しかしながら上記のよ
うな従来の情報処理装置では、分岐予測回路205にお
ける分岐予測の方法が固定化されており、分岐予測が的
中した場合には、パイプライン上で連続した命令が実行
できるが、この分岐予測が外れた場合には、先行フェッ
チされパイプライン上に残った実行途中の命令をキャン
セルし、その後に、別の命令をフェッチし直すことが必
要となり、このため、命令の実行効率が著しく低下す
る。つまり、分岐予測の精度が命令の実行効率などの実
行性能に大きく影響する。
【0018】したがって、分岐予測の精度が問題となる
が、上記のような従来の分岐予測の方法は、いずれの方
法をとったとしても、どの方法もハードウェアによる実
現であり限られた範囲の方法に固定化されてしまい、あ
らゆるプログラムや命令に対して、各プログラムや命令
に応じた分岐予測の情報を得ることが困難であり、分岐
予測の精度が低下するという問題点を有していた。
【0019】本発明は、上記問題点に鑑み、分岐予測の
方法に柔軟性を持たせることにより、あらゆるプログラ
ムや命令に応じた分岐予測の設定ができ、このため、分
岐予測の精度を向上させることができ、命令の連続的な
実行が可能となり命令の実行効率を向上させて高速な情
報処理ができる情報処理装置を提供することを目的とす
る。
【0020】
【課題を解決するための手段】上記問題点を解決するた
めに本発明の情報処理装置は、CPUが、命令デコーダ
によって解釈した外部メモリからの命令に基づいて情報
処理を実行する情報処理装置において、前記命令のうち
の条件分岐命令に、実行するアドレスを決定する分岐予
測情報と前記条件分岐命令に対する分岐時の分岐先であ
る分岐アドレスとを情報として持ち、前記命令デコーダ
を、前記条件分岐命令を解釈した場合には、前記分岐予
測情報と分岐アドレスとを出力するよう構成し、前記条
件分岐命令に対して、非分岐時の非分岐先である非分岐
アドレスを生成する非分岐アドレス生成回路と、前記分
岐予測情報に基づいて、前記非分岐アドレスか分岐アド
レスかのどちらかを選択し、実行する命令のアドレスと
して前記外部メモリに出力する選択回路とを備えた構成
とする。
【0021】
【作用】上記の構成によると、外部メモリに持った命令
のうちの条件分岐命令に、選択回路が非分岐アドレスか
分岐アドレスかの選択を行う際に参照する分岐予測情報
を埋め込み、この分岐予測情報を外部から設定可能とし
て、分岐予測をソフトウエアで行う。
【0022】
【実施例】以下、本発明の一実施例の情報処理装置につ
いて、図面を参照しながら説明する。
【0023】図1は本実施例の情報処理装置の構成図を
示すものである。図1において、外部メモリ101とC
PU102とが接続されている。CPU102は、命令
デコーダ103、非分岐アドレス生成回路104、選択
回路106から構成されている。命令デコーダ103は
外部メモリ101、選択回路106に接続されている。
非分岐アドレス生成回路104は選択回路106に接続
されている。
【0024】以上のような構成要素からなる情報処理装
置について、以下にその動作を説明する。外部メモリ1
01にはCPU102が実行する命令が存在する。CP
U102は、外部メモリ101から各命令を読みだし命
令デコーダ103に取り込む。命令デコーダ103は命
令の内容を解釈する。ここでは、解釈された命令の内容
が条件分岐命令(bnc)である場合を考える。
【0025】この条件分岐命令(bnc)は、この命令
フィルード中に、分岐条件の成立時に実行すべき命令の
アドレス情報(adr1)を持ち、同時に分岐予測情報
107を含んでいる。また、非分岐アドレス生成回路1
04は、分岐条件の非成立時に実行すべき命令のアドレ
ス情報を生成する。
【0026】この場合の条件分岐命令(bnc)に対し
て、分岐条件の成立時には、条件分岐命令(bnc)の
命令フィルード中のアドレス情報(adr1)が分岐ア
ドレスとして選択回路106に送られる。一方、分岐条
件の非成立時には、非分岐アドレス生成回路104が生
成したアドレス情報が非分岐アドレスとして選択回路1
06に送られる。
【0027】選択回路106は、命令デコーダ103か
らの分岐アドレスと、非分岐アドレス生成回路104か
らの非分岐アドレスのどちらかを選択する。この選択の
際には、選択回路106は、命令デコーダ103からの
分岐予測情報107を参照し、この分岐予測情報107
に基づいて、分岐アドレスか非分岐アドレスかのどちら
かを選択する。選択回路106は、選択したアドレスを
外部メモリ101に送り、外部メモリ101に対して実
行すべき命令のアドレスを指定する。
【0028】外部メモリ101は、外部メモリ101内
において、選択回路106から指定されたアドレスに対
応する命令をCPU102に送る。本実施例において
は、分岐予測情報107は1ビットで構成されており、
分岐予測情報107が1であれば分岐アドレスを選択
し、0であれば非分岐アドレスを選択する。もし、条件
分岐命令(bnc)が複数の分岐命令を可能とする多分
岐命令であった場合は、分岐予測情報107を複数ビッ
トで構成することも可能である。この場合は、多分岐命
令内に存在する複数の分岐アドレスと、非分岐アドレス
とから選択することになる。
【0029】図1においては、選択回路106が、命令
デコーダ103からの分岐アドレスとしてのアドレス情
報(adr1)によって示されたアドレスを指定した場
合を表している。
【0030】以上の動作により、条件分岐命令(bn
c)の命令フィールドに分岐予測情報107を埋め込
み、この分岐予測情報107を外部から設定可能とし
て、分岐予測をソフトウェアでおこなうことにより、従
来のようなハードウェア(図2の分岐予測回路205)
による分岐予測のように、限られた範囲の方法に固定化
された予測アルゴリズムに対して、より柔軟性を持った
手段で分岐予測ができる。この場合、分岐予測情報10
7は、例えば、ユーザが任意に指定することも可能であ
り、またコンパイラ等のシステムソフトウェアが設定す
ることも可能である。
【0031】このため、以前の固定化されたハードウェ
アによる分岐予測ではできなかったアプリケーションや
プログラム特有の分岐予測の情報が設定できる。例え
ば、従来手法の分岐アドレスの値によって分岐予測を行
なう場合と本実施例の手法とを比較すると、ループを構
成する場合でもプログラムによっては条件判断を先頭で
行なう場合もあり、必ずループが値の小さい方のアドレ
スに分岐するとは限らないが、そのような場合でも、プ
ログラム毎の対応が可能となる。
【0032】また、分岐する場合と分岐しない場合との
確率はプログラムの書き方にも左右されるが、これもプ
ログラムに応じた分岐予測情報が設定可能なため、分岐
精度を向上できる。
【0033】以上のように本実施例により、分岐予測情
報の外部からの設定を可能とすることにより、分岐予測
の方法に柔軟性を持たせることができ、あらゆるプログ
ラムや命令に応じた分岐予測の設定ができる。このた
め、分岐予測の精度を向上させることができ、命令の連
続的な実行が可能となり命令の実行効率を向上させるこ
とができる。
【0034】なお、上記の実施例では、外部メモリを用
いて説明したが、本発明ではこれを特定するものではな
く、命令が収められているメモリであれば、たとえば、
キャッシュメモリを使用しても何ら差し支えない。
【0035】
【発明の効果】以上のように本発明によれば、外部メモ
リに持った命令のうちの条件分岐命令に、選択回路が非
分岐アドレスか分岐アドレスかの選択を行う際に参照す
る分岐予測情報を埋め込み、この分岐予測情報を外部か
ら設定可能として、分岐予測をソフトウエアで行うこと
ができる。
【0036】そのため、分岐予測の方法に柔軟性を持た
せることができ、あらゆるプログラムや命令に応じた分
岐予測の設定ができる。この結果、分岐予測の精度を向
上させることができ、命令の連続的な実行が可能となり
命令の実行効率を向上させて高速な情報処理ができる。
【図面の簡単な説明】
【図1】本発明の実施例の情報処理装置の構成図
【図2】従来の情報処理装置の構成図
【符号の説明】
101 外部メモリ 102 CPU 103 命令デコーダ 104 非分岐アドレス生成回路 106 選択回路

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 CPUが、命令デコーダによって解釈し
    た外部メモリからの命令に基づいて情報処理を実行する
    情報処理装置において、前記命令のうちの条件分岐命令
    に、実行するアドレスを決定する分岐予測情報と前記条
    件分岐命令に対する分岐時の分岐先である分岐アドレス
    とを情報として持ち、前記命令デコーダを、前記条件分
    岐命令を解釈した場合には、前記分岐予測情報と分岐ア
    ドレスとを出力するよう構成し、前記条件分岐命令に対
    して、非分岐時の非分岐先である非分岐アドレスを生成
    する非分岐アドレス生成回路と、前記分岐予測情報に基
    づいて、前記非分岐アドレスか分岐アドレスかのどちら
    かを選択し、実行する命令のアドレスとして前記外部メ
    モリに出力する選択回路とを備えた情報処理装置。
JP12162294A 1994-06-03 1994-06-03 情報処理装置 Pending JPH07334363A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP12162294A JPH07334363A (ja) 1994-06-03 1994-06-03 情報処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP12162294A JPH07334363A (ja) 1994-06-03 1994-06-03 情報処理装置

Publications (1)

Publication Number Publication Date
JPH07334363A true JPH07334363A (ja) 1995-12-22

Family

ID=14815822

Family Applications (1)

Application Number Title Priority Date Filing Date
JP12162294A Pending JPH07334363A (ja) 1994-06-03 1994-06-03 情報処理装置

Country Status (1)

Country Link
JP (1) JPH07334363A (ja)

Similar Documents

Publication Publication Date Title
KR100411529B1 (ko) 제2 레벨 분기 예측 테이블을 이용한 분기 예측 방법 및장치
JP6718454B2 (ja) 選択的ページミス変換プリフェッチによってプログラムメモリコントローラにおけるページ変換ミスレイテンシを隠すこと
JP3518770B2 (ja) 命令をその少なくとも1つの実行装置へ迅速にディスパッチする方法および装置
JPH0334024A (ja) 分岐予測の方法とそのための装置
US6687812B1 (en) Parallel processing apparatus
JP2006134331A (ja) ブランチ目的アドレスを利用してキャッシュウェイを予測するプロセッサ及びその方法
JP2016536665A (ja) 推論的ベクトル演算の実行を制御するためのデータ処理装置及び方法
US5729707A (en) Instruction prefetch circuit and cache device with branch detection
JP3721780B2 (ja) 複数のパイプライン処理機構を有するデータ処理装置
JPH08320788A (ja) パイプライン方式プロセッサ
JPH08314719A (ja) プロセッサ及び翻訳装置
JPH08123723A (ja) 先行読出機能付命令キャッシュメモリ
US20040225866A1 (en) Branch prediction in a data processing system
JP2020510255A (ja) キャッシュ・ミス・スレッド・バランシング
US5987599A (en) Target instructions prefetch cache
US6308242B1 (en) Apparatus for adaptively controlling a prefetch queue based on various flush conditions
US6701426B1 (en) Switching between a plurality of branch prediction processes based on which instruction set is operational wherein branch history data structures are the same for the plurality of instruction sets
JP2001060152A (ja) 分岐予測を抑止する情報処理装置および方法
JP2006040173A (ja) 分岐予測装置および分岐予測方法
JPH07334363A (ja) 情報処理装置
US20080005545A1 (en) Dynamically shared high-speed jump target predictor
JP2002342075A (ja) マイクロプロセッサ
US7343481B2 (en) Branch prediction in a data processing system utilizing a cache of previous static predictions
JP3419276B2 (ja) 命令プリフェッチ装置、および命令プリフェッチ方法
KR920006613B1 (ko) 파이프라인으로 동작하는 프로세서의 명령어 페취 유니트