JPS63221427A - 分岐予測を行う情報処理装置 - Google Patents

分岐予測を行う情報処理装置

Info

Publication number
JPS63221427A
JPS63221427A JP5732487A JP5732487A JPS63221427A JP S63221427 A JPS63221427 A JP S63221427A JP 5732487 A JP5732487 A JP 5732487A JP 5732487 A JP5732487 A JP 5732487A JP S63221427 A JPS63221427 A JP S63221427A
Authority
JP
Japan
Prior art keywords
instruction
branch
unit
prediction
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.)
Pending
Application number
JP5732487A
Other languages
English (en)
Inventor
Takashi Horikawa
隆 堀川
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 JP5732487A priority Critical patent/JPS63221427A/ja
Publication of JPS63221427A publication Critical patent/JPS63221427A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明はパイプライン方式により命令を実行する情報処
理装置に関し、特に効果的にパイプライン制御を行うた
めに条件分岐命令において分岐するかどうかを予測する
機構を備えた情報処理装置に関する。
〔従来の技術〕
一般に情報処理装置では命令コードの取り込み(以下、
命令フェッチ)、命令コードの解読(以下、命令デコー
ド)、命令実行という操作を各機械語命令について順次
行うことによってプログラムを実行している。命令によ
っては、この他に、オペランド・アドレスの計算、主記
憶からのオペランドのアクセス(以下、オペランド・リ
ード)や命令実行結果の主記憶への書き戻しく以下、オ
ペランド・ライト)という操作を必要とするものもある
第2図に示す情報処理装置では主記憶制御部21aに主
記憶のコピーを保持するバッファ・メモリ22を内蔵し
、命令先取り部1の要求する命令フェッチおよび命令実
行部4の要求するオペランド・リードとオペランド・ラ
イトを行う。また、オペランド・アドレスの計算および
命令のデコードは命令デコード部23、命令の実行を命
令実行部4で行っている。これらの操作は情報処理装置
内の各部分で分担して処理されるので、連続する数命令
についてこれらの各操作をオーバーラツプさせて並列に
行うことが可能である。この点に着目し命令を高速に実
行するために、数命令分の操作を並列に処理するよ°う
に制御することが広く行われている。これをパイプライ
ン制御といい、このような制御をとっている情報処理装
置をパイプライン型情報処理装置と呼ぶ。
パイプライン型情報処理装置で処理を高速に行うために
は、装置内の各部分が並列に動作する必要がある。しか
しながら条件分岐命令では分岐の条件が確定するまで次
に実行すべき命令が定まらないので、条件分岐命令に続
く命令を実行することができない。したがって情報処理
装置内の各ユニットに空き時間が生じ、命令実行速度向
上の妨げになっていた。
この問題点を解決するため、バッファ・メモリ22に付
随させて分岐履歴記録部7aを持たせて過去に実行され
た条件分岐命令について分岐したかしなかったという条
件分岐命令の実行履歴を分岐履歴書き込み制御部9の制
御により書き込み、再度条件分岐命令が実行されるとき
には条件分岐命令認識部6により起動される履歴予測部
8aが分岐履歴記録部7aに保持されている実行履歴を
らとにして条件分岐命令の予測を行って命令の先取り方
向を制御することによりパイプラインの各ユニットにお
ける空き時間を少なくする方法が行われている。
〔発明が解決しようとする問題点〕
バイブライン型情報処理装置の処理速度を向上させるた
め、過去に実行された条件分岐命令の分岐履歴をもとに
分岐予測を行う方式では、過去の分岐履歴が記録されて
いない条件分岐命令に関しては予測できないので、分岐
予測を完全に行うことができないという問題点がある。
本発明の目的は、前記の問題点を解決するため、過去に
実行された分岐命令の履歴をもとに分岐予測を行う履歴
予測部に加え、条件分岐命令の属性をもとにして分岐予
測を行う静的予測部を持たせることによって過去の分岐
履歴が記録さていない条件分岐命令についても予測を行
う情報処理装置を提供することにある。
〔問題点を解決するための手段〕
本発明の分岐予測を行う情報処理装置は、命令の先取り
を行う命令先取り部と、命令先取り部により実行すべき
命令が設定されこれを保持する命令レジスタと、命令先
取り部により命令レジスタに保持されている命令のアド
レスが設定されこれを保持する命令アドレス・レジスタ
と、命令レジスタに格納されている命令を実行するため
の命令実行部と、命令レジスタに保持されている命令コ
ードと命令アドレス・レジスタに保持されているアドレ
スから実効アドレスを計算するアドレス計算部と、命令
レジスタに格納されている命令が条件分岐命令であるこ
とを認識する条件分岐命令認識部と、条件分岐命令の実
行履歴を保持する分岐履歴記録部と、分岐履歴記録部に
保持された分岐ff歴をもとに分岐予測を行うlll[
予測部と、条件分岐命令認識部により実行される命令が
条件分岐命令であると判定されたときに命令実行部によ
る分岐命令の実行結果を分岐履歴記録部に分岐履歴とし
て記録するための分岐履歴書き込み制御部とを有し、条
件分岐命令認識部により実行すべき命令が条件分岐命令
であると判定されたときに履歴予測部の分岐予測結果に
より命令先取り部において命令の先取りを、アドレス計
算部で計算された実効アドレスから行うか実行中の条件
分岐命令に続く命令を先取りするかを制御する情報処理
装置において、命令レジスタに格納された条件分岐命令
の属性をもとに分岐方向の予測を行う静的予測部と、分
岐履歴記録部に分岐履歴が記録されているかどうかを調
べて履歴予測部において行う分岐予測が有効か無効かを
判定する履歴予測有効判定部と、命令先取り部における
命令先取り方向を決定するための最終予測を行う最終予
測部とを備え、履歴予測有効判定部の判定結果が有効で
あるときには履歴予測部の予測結果、無効であるときに
は静的予測部の予測結果を最終予測部の予測結果として
命令先取り部に送ることによって条件分岐命令の先取り
方向を決定すようにして構成される。
〔作用〕
本発明による情報処理装置において、プログラムに実行
中に条件分岐命令が実行されると静的予測部は命令レジ
スタに保持された命令コードをもとにして分岐予測を行
い、予測結果を出力する。
一方、履歴予測部は分岐履歴記録部に保持された分岐履
歴をもとに分岐予測を行い予測結果を出力する。このと
き、分岐履歴が記録されていないために分岐予測を行う
ことができないときは履歴予測有効判定部は最終予測部
に対する出力を無効とする。分岐履歴が記録されており
履歴予測部において分岐予測を行うことができるときに
はこの出力は有効となる。最終予測部では履歴予測有効
判定部の出力が有効のときには履歴予測部の出力、無効
のときには静的予測部の出力を最終予測結果として命令
先取り部に送ることにより命令の先取り方向を制御する
このような制御を行うことにより、分岐履歴が記録され
ていない条件分岐命令の実行時においても分岐予測を行
うことを可能にする。
〔実施例〕
以下、本発明により分岐予測を行う情報処理装置につい
て図面を参照しながら説明する。
第1図は本発明の一実施例を示すブロック図である。同
図においてプロセッサ内部の主記憶制御部21は主記憶
のアクセスを行う部分であり、主記憶のコピーを保持す
るバッファ・メモリ22とバッファ・メモリ22に対応
した履歴メモリ31と有効メモリ32を内蔵する分岐履
歴記録部7を持つ、主記憶・制御部21の内部に仮想記
憶管理機構を持つ情報処理装置も考えられる。
命令先取り部1は次に実行すべき命令のアドレスを保持
する先取りアドレス・レジスタ33を内蔵する。命令デ
コード部23は命令のデコードとアドレス計算を行う部
分であり、命令レジスタ2、命令アドレス・レジスタ3
、アドレス計算部5を内部に持つ、アドレス計算部5は
、命令レジスタ2に格納された命令コードや命令アドレ
ス・レジスタ3に格納されたアドレスやプロセッサ内の
レジスタを用いてオペランド・アドレスを計算する部分
である。命令実行部4は命令デコード部23によりデコ
ードされた結果にもとづいて命令を実行する部分である
さらに、本情報処理装置では条件分岐命令において分岐
するかどうかを予測するために条件分岐命令認識部6、
分岐履歴書き込み制御部9、履歴予測部8、履歴予測有
効判定部11、静的予測部10、最終予測部12を持つ
まず、本実施例における情報処理装置で分岐命令以外の
命令を実行する手順を示す。命令先取り部1では、先取
りアドレス・レジスタ33により主記憶上の位置を示さ
れる命令先取りコードを主記憶制御部21に対してフェ
ッチ要求する。主記憶制御部21は、要求されたアドレ
スの命令コードが内蔵するバッファ・メモリ22に存在
する場合はバッファ・メモリ22、存在しない場合は主
記憶をアクセスして命令コードを取り出し、命令先取り
部1に送る。なお、命令コードがバッファ・メモリ22
内に存在しない場合は、さらに主記憶をアクセスして取
り出した命令コードをバッファ・メモリ22に記録する
と共に、このバッファ・メモリ22位置に対応する有効
メモリ32位置に無効を示す値を書き込む、命令先取り
部1では、主記憶制御部21より受は取った命令コード
を命令レジスタ2、先取りアドレス・レジスタ33で示
される命令コードの存在するアドレスを命令アドレス・
レジスタ3に格納すると共に、後続する命令のアドレス
を先取りアドレス・レジスタ33に格納する。この操作
を繰り返し行うことにより、順次命令フェッチを行い、
命令コードを命令デコード部23に送る。命令デコード
部23では、命令レジスタ2に格納された命令コードを
デコードし、デコード結果を命令実行部4に送る。さら
に命令デコード部23では、命令デコードの結果、命令
レジスタ2に格納された命令が、主記憶にあるオペラン
ドを扱う命令である場合には、アドレス計算部5により
オペランドのアドレスを計算する。このアドレスはオペ
ランドのリード、ライトの区別とともに主記憶制御部2
1に送られる。主記憶制御部21では、リードすべきオ
ペランドについてはバッファ・メモル22または主記憶
をアクセスして、命令実行に必要なオペランドを用意す
る。命令実行部4では、デコード部より送られるデコー
ド結果をもとに、主記憶制御部21が用意したオペラン
ドを取り出し、これを用いて命令を実行する。さらに、
命令の実行結果を主記憶に格納する必要のあるときには
、実行結果を主記憶制御部21に送る。主記憶制御部2
1では、ライトする必要のあるオペランドが命令実行部
4から送られると、あらかじめ命令デコード部23から
送られたオペランド・アドレスで指定される主記憶位置
に、このオペランドをライトする。
実行すべき命令が分岐命令の場合、アドレス計算部5に
より分岐先アドレスが計算され、命令先取り部1に送ら
れる。命令先取り部1では、分岐先アドレスを先取りア
ドレス・レジスタ33に格納すると共に、このアドレス
をから命令フェッチを行うことで分岐命令が実行される
本情報処理装置において、条件分岐命令が実行されると
きには以下の操作が行われる0条件分岐命令認識部6は
命令レジスタ2を監視しており、ここに格納された命令
が条件分岐命令のときには条件分岐命令認識部6の出力
を有効にする。この操作により分岐履歴書き込み制御部
9が起動され、命令実行部4において実行された条件分
岐命令の分岐結果をバッファ・メモリ22に対応して存
在する分岐履歴記録部の履歴メモリ31に書き込み、対
応する有効メモリ32には有効を示す値を書き込む。以
上の操作によりバッファ・メモリ22に存在する条件分
岐命令について分岐履歴が設定される。
条件分岐命令の予測は以下の手順により行われる。主記
憶制御部21では、命令先取り部1からの要求により命
令コードを命令先取り部1に送ると共に、対応する分岐
履歴記録部の履歴メモリ31に記録された分岐履歴を示
す値を履歴予測部8、有効メモリ32に記録された分岐
履歴の有効性を示す値を履歴予測有効判定部11に送る
。主記憶制御部21から先取りされた命令が命令レジス
タ2に格納されると、履歴予測部8では主記憶制御部2
1から送られた分岐履歴を示す値から分岐予測を行い、
これを最終予測部12に対して出力すると同時に、履歴
予測有効判定部11では主記憶制御部21から送られた
有効性を示す値から履歴予測の有効性を判定し、これを
最終予測部12に対して出力する。また、静的予測部1
0では、命令レジスタ2に格納された命令コードの属性
をもとにして分岐予測を行い、予測結果を最終予測部1
2に送る。最終予測部12では履歴予測有効判定部11
の出力が有効のときは履歴予測部8の予測結果、無効の
ときには静的予測部10の予測結果を最終予測結果とす
る。この最終予測結果は、条件分岐命令認識部6の出力
が有効になると最終予測部12から命令先取り部1に対
して出力される。上述したように条件分岐命令認識部6
の出力が有効になるのは命令レジスタ2に格納されてい
る命令が条件分岐命令のときであるため、本情報処理装
置において条件分岐命令を実行するときには常に命令先
取り部1に対して最終予測部12から分岐予測が出力さ
れる。
命令先取り部1では、最終予測部12から送られる分岐
予測が分岐することを示す値であるときにはアドレス計
算部5から送られる分岐先アドレスで示される主記憶位
置から命令のフェッチを行う。また、分岐予測が分岐し
ないことを示す値であるときには先取りアドレス・レジ
スタ33により示される主記憶位置から命令のフェッチ
を行う。以上の操作により、総ての条件分岐命令につい
て分岐予測を行い、これを高速に実行する。
以上、本発明の一実施例について説明したが、これによ
り明らかなように本発明の主旨は条件分岐命令において
過去の実行履歴をもとに分岐予測を行う方式の欠点、す
なわち、履歴が記録されていない条件分岐命令について
は分岐予測を行うことができないことを改良するため、
履歴をもとにした分岐予測が有効であるかどうかを判定
する機構と、過去の実行履歴には無関係に分岐予測を行
う予測機構を組み合わせ、過去の分岐履歴が記録されて
いない分岐命令についても分岐予測を可能としたことで
ある。従って、この主旨には背がない限り条件分岐命令
の予測手段にはいくっがの実行方法があるのは明かであ
る0例えば、ここで説明した一実施例では、過去の条件
分岐命令において分岐したかどうかを記録する履歴メモ
リ31をバッファ・メモリ22に対応して存在するもの
としたが、主記憶制御部21にバッファ・メモリ22が
ない情報処理装置では、履歴メモリ31が単独で存在す
ることも考えられる。このような情報処理装置も本発明
が適用できることは明らかである。
〔発明の効果〕
本発明によると、分岐履歴が記録されていない条件分岐
命令を含む総ての条件分岐命令において分岐予測を行い
、これを高速に実行することができる情報処理装置を構
成することが可能となる。
【図面の簡単な説明】
第1図は本発明の一実施例を示すブロック図、第2図は
従来の情報処理装置の例を示すブロック図である。 1・・・命令先取り部、2・・・命令レジスタ、3・・
・命令アドレス・レジスタ、4・・・命令実行部、5・
・・アドレス計算部、6・・・条件分岐命令認識部、7
・・・分岐履歴記録部、8・・・履歴予測部、9・・・
分岐履歴書き込み制御部、10・・・静的予測部、11
・・・履歴予測有効判定部、12・・・最終予測部、2
1・・・主記憶制御部、22・・・バッファ・メモリ、
23・・・命令デコード部、31・・・履歴メモリ、3
2・・・有効メモリ、33・・・先取りアドレス・レジ
スタ。

Claims (1)

  1. 【特許請求の範囲】 命令の先取りを行う命令先取り部と、命令先取り部によ
    り実行すべき命令が設定されこれを保持する命令レジス
    タと、命令先取り部により命令レジスタに保持されてい
    る命令のアドレスが設定されこれを保持する命令アドレ
    ス・レジスタと、命令レジスタに格納されている命令を
    実行するための命令実行部と、命令レジスタに保持され
    ている命令コードと命令アドレス・レジスタに保持され
    ているアドレスから実効アドレスを計算するアドレス計
    算部と、命令レジスタに格納されている命令が条件分岐
    命令であることを認識する条件分岐命令認識部と、条件
    分岐命令の実行履歴を保持する分岐履歴記録部と、分岐
    履歴記録部に保持された分岐履歴をもとに分岐予測を行
    う履歴予測部と、条件分岐命令認識部により実行される
    命令が条件分岐命令であると判定されたときに命令実行
    部による分岐命令の実行結果を分岐履歴記録部に分岐履
    歴として記録するための分岐履歴書き込み制御部とを有
    し、 条件分岐命令認識部により実行すべき命令が条件分岐命
    令であると判定されたときに履歴予測部の分岐予測結果
    により命令先取り部において命令の先取りを、アドレス
    計算部で計算された実効アドレスから行うか実行中の条
    件分岐命令に続く命令を先取りするかを制御する情報処
    理装置において、 命令レジスタに格納された条件分岐命令の属性をもとに
    分岐方向の予測を行う静的予測部と、分岐履歴記録部に
    分岐履歴が記録されているかどうかを調べて履歴予測部
    において行う分岐予測が有効か無効かを判定する履歴予
    測有効判定部と、命令先取り部における命令先取り方向
    を決定するための最終予測を行う最終予測部とを備え、 履歴予測有効判定部の判定結果が有効であるときには履
    歴予測部の予測結果、無効であるときには静的予測部の
    予測結果を最終予測部の予測結果として命令先取り部に
    送ることによって条件分岐命令の先取り方向を決定する
    ことを特徴とする分岐予測を行う情報処理装置。
JP5732487A 1987-03-11 1987-03-11 分岐予測を行う情報処理装置 Pending JPS63221427A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5732487A JPS63221427A (ja) 1987-03-11 1987-03-11 分岐予測を行う情報処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5732487A JPS63221427A (ja) 1987-03-11 1987-03-11 分岐予測を行う情報処理装置

Publications (1)

Publication Number Publication Date
JPS63221427A true JPS63221427A (ja) 1988-09-14

Family

ID=13052396

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5732487A Pending JPS63221427A (ja) 1987-03-11 1987-03-11 分岐予測を行う情報処理装置

Country Status (1)

Country Link
JP (1) JPS63221427A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02260033A (ja) * 1989-02-03 1990-10-22 Digital Equip Corp <Dec> ブランチ予測

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02260033A (ja) * 1989-02-03 1990-10-22 Digital Equip Corp <Dec> ブランチ予測

Similar Documents

Publication Publication Date Title
US5377336A (en) Improved method to prefetch load instruction data
EP0380859B1 (en) Method of preprocessing multiple instructions
JP2504830Y2 (ja) デ―タ処理装置
JP2006520964A5 (ja)
JP2006520964A (ja) 分岐ターゲットに基づいて分岐予測をするための方法および装置
EP0655679B1 (en) Method and apparatus for controlling instruction in pipeline processor
US20040117606A1 (en) Method and apparatus for dynamically conditioning statically produced load speculation and prefetches using runtime information
US6332187B1 (en) Cumulative lookahead to eliminate chained dependencies
US11494190B2 (en) Circuitry and method for controlling a generated association of a physical register with a predicated processing operation based on predicate data state
US6668306B2 (en) Non-vital loads
JPS63221427A (ja) 分岐予測を行う情報処理装置
JP2534662B2 (ja) 命令キヤツシユ制御方法
JPS6336336A (ja) 情報処理装置
JPS6324421A (ja) 情報処理装置
JP2006331415A (ja) データプロセッサ、データ処理方法
JP2806690B2 (ja) マイクロプロセッサ
JPH0248733A (ja) 情報処理装置
JPH01263830A (ja) 情報処理装置
KR100282225B1 (ko) 데이타 캐쉬 메모리의 제어장치
JPH08286914A (ja) メモリ制御装置
JPS63168730A (ja) 分岐命令処理装置
JPH01239638A (ja) 分岐予測を行う情報処理装置
JPS6191725A (ja) アドレスマツチ制御方式
JPH05216665A (ja) 命令プリフェッチ方法
JPH04290130A (ja) プロセッサのエラー管理方式