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

データ処理装置

Info

Publication number
JPH0769811B2
JPH0769811B2 JP63322631A JP32263188A JPH0769811B2 JP H0769811 B2 JPH0769811 B2 JP H0769811B2 JP 63322631 A JP63322631 A JP 63322631A JP 32263188 A JP32263188 A JP 32263188A JP H0769811 B2 JPH0769811 B2 JP H0769811B2
Authority
JP
Japan
Prior art keywords
instruction
address
branch
decoding
executing
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.)
Expired - Lifetime
Application number
JP63322631A
Other languages
English (en)
Other versions
JPH02166520A (ja
Inventor
正人 鈴木
雅士 出口
幸伸 西川
敏道 松崎
雅也 宮崎
隆 坂尾
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 JP63322631A priority Critical patent/JPH0769811B2/ja
Priority to US07/451,252 priority patent/US5237666A/en
Priority to EP89313289A priority patent/EP0375364B1/en
Priority to DE68928374T priority patent/DE68928374T2/de
Priority to KR1019890019110A priority patent/KR920006744B1/ko
Publication of JPH02166520A publication Critical patent/JPH02166520A/ja
Publication of JPH0769811B2 publication Critical patent/JPH0769811B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30021Compare instructions, e.g. Greater-Than, Equal-To, MINMAX
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3804Instruction prefetching for branches, e.g. hedging, branch folding
    • G06F9/3806Instruction prefetching for branches, e.g. hedging, branch folding using address prediction, e.g. return stack, branch history buffer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3842Speculative instruction execution
    • G06F9/3844Speculative instruction execution using dynamic branch prediction, e.g. using branch history tables

Description

【発明の詳細な説明】 産業上の利用分野 本発明は、コンピュータの処理の高速化を目的としたデ
ータ処理装置に関するものである。
従来の技術 従来のデータ処理装置としては、例えば特開昭63-88643
号公報に示されている。
第13図はこの従来のデータ処理装置の構成図を示すもの
であり、11は命令コードの先読みを行なう命令先読み装
置、12は命令先読み装置11により先読みされた命令コー
ドの解読を行なう命令解読装置、13は命令解読装置12か
ら得られる制御情報に従って命令の実行を行なう命令実
行装置、14は分岐命令実行時に分岐先の命令コードとそ
のアドレスを格納する履歴格納装置、15は分岐命令の実
行に先立って履歴格納装置14から分岐先の命令コードと
分岐先アドレスを取出してそれぞれ命令解読装置12と命
令先読み装置11に出力する分岐予測装置、16は分岐予測
装置15が出力する分岐先アドレスと分岐命令の次に実行
されるべき命令のアドレスとを比較する比較装置、17は
メモリ・I/Oなどを接続する入出力バス、18は命令先読
み装置11および命令実行装置13からのデータ入出力要求
を調停し入出力バス17の制御を行なうバス制御装置であ
る。第14図は第13図に示す履歴格納装置14の構成図を示
すものであり、141は分岐命令の直前に実行された命令
のアドレスを格納するアドレスタグ部、142は分岐命令
の分岐先アドレスから始まる一定長の命令コードを格納
する分岐先命令部、143は分岐命令の分岐先アドレスを
格納する分岐先アドレス部、144はエントリのデータが
有効であることを示す有効ビットである。
以上のように構成された従来のデータ処理装置において
は、分岐命令は初めて実行されるとき、命令解読装置12
で解読されたのち命令実行装置13において実行され、分
岐が成立した場合は命令実行装置13で計算された分岐先
アドレスが命令先読み装置11に渡され新たに分岐先の命
令コードが読出される。このとき履歴格納装置14は、命
令実行装置13に保持している分岐命令の直前に実行した
命令のアドレスをアドレスタグ部141に、命令実行装置1
3で計算した分岐先のアドレスを分岐先アドレス部143
に、読出された分岐先の命令コードを分岐先命令部142
に、それぞれ同一のエントリに格納し、有効ビット144
をエントリのデータが有効であることを示す‘1'にセッ
トする。次に再び同一の分岐命令が実行されるとする。
命令解読装置12がこの分岐命令の直前の命令を解読する
と同時に分岐予測装置15は解読中の命令のアドレスで履
歴格納装置14を検索する。このとき、そのアドレスがア
ドレスタグ部141にヒットし、分岐予測装置15は分岐命
令の実行を待たずに分岐の成立を予測し、分岐先の命令
コードと分岐先アドレスをそれぞれ分岐先命令部142と
分岐先アドレス部143から取出して命令解読装置12と命
令先読み装置11に送出する。命令解読装置12は分岐命令
の解読終了後直ちに分岐予測装置15から受取った分岐先
の命令コードの解読を開始し、命令先読み装置11はそれ
までに先読みされた命令をリセットするとともに分岐予
測装置15から受取った分岐先アドレスに対して分岐先命
令部142の語長分だけ先のアドレスから命令の先読みを
行なう。前記の分岐命令が命令実行装置13において実行
され分岐命令の次に実行されるべき命令のアドレスが決
定すると、比較装置16はそのアドレスと分岐予測装置15
が出力する分岐先アドレスとを比較し、分岐予測の真偽
を検証する。比較結果が不一致の場合には有効ビット14
4を‘0'にリセットし、比較装置16からの信号により、
命令解読装置12は解読中の命令をキャンセルし、命令先
読み装置11は先読みした命令をキャンセルするとともに
命令実行装置13において決定された分岐命令の次に実行
されるべき命令のアドレスにより新たに命令の先読みを
行なう。過去において同一分岐命令の分岐が成立した場
合、次回も分岐が成立する可能性は高く、このような場
合、命令実行装置13は分岐命令の実行に続いて分岐先命
令を待ち時間なしで実行することができる。
発明が解決しようとする課題 しかしながら上記のような構成では、命令解読装置12で
分岐命令を解読し、命令実行装置13で分岐命令の次に実
行すべき命令のアドレスを決定する必要があるため、分
岐予測装置15での予測が正しくても分岐命令の実行クロ
ック数を零にすることができないという問題点を有して
いた。
また上記のような構成では、比較命令も命令実行装置13
で実行されるため、分岐命令に極めて高い確率で前置す
る比較命令の実行クロック数は分岐予測装置15での予測
の真偽にかかわらず存在するという問題点を有してい
た。
請求項1記載の発明はかかる点に鑑み、過去に実行した
無条件分岐命令を再度実行する場合の無条件分岐命令の
実行クロック数が零になるデータ処理装置を提供するこ
とを目的とする。
請求項2記載の発明は、分岐成立・分岐不成立の予測が
正しい場合の分岐命令の実行クロック数が零になるデー
タ処理装置を提供することを目的とする。
請求項3記載の発明はかかる点に鑑み、過去に実行した
比較命令を再度実行する場合の比較命令の実行クロック
数が零になるデータ処理装置を提供することを目的とす
る。
請求項4記載の発明はかかる点に鑑み、分岐成立・分岐
不成立の予測が正しい場合の分岐命令と分岐命令に前置
する比較命令の実行クロック数がともに零になるデータ
処理装置を提供することを目的とする。
課題を解決するための手段 請求項1記載の本発明は、無条件分岐命令より前に実行
した命令のアドレスをアドレスタグとして、無条件分岐
命令の次に実行されるべき命令の命令コードとこの命令
コードに続く命令を読出するためのアドレスを格納した
履歴格納手段と、無条件分岐命令の直前の命令が解読さ
れている間に前記履歴格納手段から無条件分岐命令の次
に実行されるべき命令を取出す先行分岐手段とを備えた
データ処理装置である。
請求項2記載の発明は、分岐命令より前に実行した命令
のアドレスをアドレスタグとして、分岐命令の次に実行
されるべき命令のアドレスもしくは分岐命令の次に実行
されるべき命令の命令コードとこの命令コードに続く命
令を読出すためのアドレスおよび分岐命令で分岐を判定
する条件コードを格納した履歴格納手段と、分岐命令よ
り前の命令が解読されている間に前記履歴格納手段によ
り分岐命令の次に実行されるべき命令を予測する分岐予
測手段と、分岐命令の次に実行されると予測された命令
の実行と並列に、前記履歴格納手段に格納されている分
岐を判定する条件コードに基づいて予測の真偽を検証す
る分岐検証手段とを備えたデータ処理装置である。
請求項3記載の発明は、比較命令により前に実行した命
令のアドレスをアドレスタグとして、比較命令に続く命
令のアドレスもしくは比較命令に続く命令の命令コード
とこの命令コードに続く命令を読出すためのアドレスお
よび比較命令で比較する汎用レジスタを指定する情報も
しくは比較する即値を格納した履歴格納手段と、比較命
令より前の命令が解読されている間に前記履歴格納手段
から比較命令に続く命令を取出す比較命令除去手段と、
比較命令に続く命令の実行と並列に、前記履歴格納手段
に格納されている比較する汎用レジスタを指定する情報
もしくは比較する即値を用いて比較を行なう比較手段と
を備えたデータ処理装置である。
請求項4記載の発明は、比較命令より前に実行した命令
のアドレスをアドレスタグとして、分岐命令の次に実行
されるべき命令のアドレスもしくは分岐命令の次に実行
されるべき命令の命令コードとこの命令コードに続く命
令を読出すためのアドレスおよび比較命令で比較する汎
用レジスタを指定する情報もしくは比較する即値および
分岐命令で分岐を判定する条件コードを格納した履歴格
納手段と、比較命令より前の命令が解読されている間に
前記履歴格納手段により分岐命令の次に実行されるべき
命令を予測する分岐予測手段と、分岐命令の次に実行さ
れると予測された命令の実行と並列に、前記履歴格納手
段に格納されている比較する汎用レジスタを指定する情
報もしくは比較する即値を用いて比較し、比較結果と前
記履歴格納手段に格納されている分岐を判定する条件コ
ードとに基づいて予測の真偽を検証する分岐検証手段と
を備えたデータ処理装置である。
作用 請求項1記載の発明は前記した構成により、無条件分岐
命令が出現する場合に、無条件分岐命令の直前の命令が
解読されている時にその命令のアドレスが履歴格納手段
のアドレスタグにヒットすると、先行分岐手段は無条件
分岐命令の次に実行されるべき命令の命令コードとこの
命令コードに続く命令を読出すためのアドレスを出力す
る。その後、無条件分岐命令の解読ならびに実行を行な
わずに、無条件分岐命令の直前の命令に続いて無条件分
岐命令の次に実行されるべき命令を解読・実行すること
により、過去に実行した無条件分岐命令を再度実行する
場合の無条件分岐命令の実行クロック数を零にする。
請求項2記載の発明は前記した構成により、前置する命
令の実行結果により分岐を行なう分岐命令が出現する場
合に、分岐命令より前の命令が解読されている時にその
命令のアドレスが履歴格納手段のアドレスタグにヒット
すると、分岐予測手段は分岐命令の次に実行されるべき
命令のアドレスもしくは分岐命令の次に実行されるべき
命令の命令コードとこの命令コードに続く命令を読出す
ためのアドレスを出力し分岐命令の次に実行されるべき
命令の予測を行なう。その後、分岐命令の解読ならびに
実行を行なわずに、分岐命令の直前の命令に続いて分岐
命令の次に実行されると予測された命令を解読・実行
し、分岐検証手段が予測の真偽の検証を分岐命令の次に
実行されると予測された命令の実行と並列に行なうこと
により予測が真の場合の分岐命令の実行クロック数を零
にする。
請求項3記載の発明は前記した構成により、比較命令が
出現する場合に、比較命令より前の命令が解読されてい
る時にその命令のアドレスが履歴格納手段のアドレスタ
グにヒットすると、比較命令除去手段は比較命令に続く
命令のアドレスもしくは比較命令に続く命令の命令コー
ドとこの命令コードに続く命令を読出すためのアドレス
を出力する。その後、比較命令の解読ならびに実行を行
なわずに、比較命令の直前の命令に続いて比較命令に続
く命令を解読・実行し、比較手段が比較命令に続く命令
の実行と並列に比較を行なうことにより過去に実行した
比較命令を再度実行する場合の比較命令の実行クロック
数を零にする。
請求項4記載の発明は前記した構成により、比較命令と
比較結果により分岐を行なう分岐命令が連続する場合
に、比較命令より前の命令が解読されている時にその命
令のアドレスが履歴格納手段のアドレスタグにヒットす
ると、分岐予測手段は分岐命令の次に実行されるべき命
令のアドレスもしくは分岐命令の次に実行されるべき命
令の命令コードとこの命令コードに続く命令を読出すた
めのアドレスを出力し、分岐命令の次に実行されるべき
命令の予測を行なう。その後、比較命令および分岐命令
の解読ならびに実行を行なわずに、比較命令の直前の命
令に続いて分岐命令の次に実行されると予測された命令
を解読・実行し、分岐検証手段が予測の真偽の検証を分
岐命令の次に実行されると予測された命令の実行と並列
に行なうことにより予測が真の場合の分岐命令と分岐命
令に前置する比較命令の実行クロック数をともに零にす
る。
実施例 第1図は本発明の第1の実施例におけるデータ処理装置
の構成図を示すものである。
第1図において、1は命令コードの先読みを行なう命令
先読み装置、2は命令先読み装置1により先読みされた
命令コードの解読を行なう命令解読装置、3は命令解読
装置2から得られる制御情報に従って命令の実行を行な
う命令実行装置、4aは無条件分岐命令実行時に無条件分
岐命令の分岐先の命令コードと分岐先アドレスを格納す
る履歴格納装置、5aは無条件分岐命令の実行に先立って
履歴格納装置4aから無条件分岐命令の次に実行されるべ
き命令の命令コードとそのアドレスを取出してそれぞれ
命令解読装置2と命令先読み装置1に出力する先行分岐
装置、7はメモリ・I/Oなどを接続する入出力バス、8
は命令先読み装置1および命令実行装置3からのデータ
入出力要求を調停し入出力バス7の制御を行なうバス制
御装置である。第2図は第1図に示す履歴格納装置4aの
構成図を示すものであり、401aは無条件分岐命令の直前
に実行された命令のアドレスを格納するアドレスタグ
部、402aは無条件分岐命令の分岐先アドレスから始まる
一定長の命令コードを格納する分岐先命令部、403aは無
条件分岐命令の分岐先アドレスを格納する分岐先アドレ
ス部、409aはエントリのデータが有効であることを示す
有効ビットである。
以上のように構成された第1の実施例のデータ処理装置
について、以下その動作を説明する。
命令先読み装置1で先読みされた命令コードが命令解読
装置2で解読されると、同時に先行分岐装置5aは解読中
の命令のアドレスで履歴格納装置4aを検索する。命令解
読装置2で解読中の命令が無条件分岐命令の直前の命令
であっても、その命令が初めて実行される場合や実行さ
れてから他の命令によって履歴格納装置4aのエントリが
書換えられた場合は履歴格納装置4aのアドレスタグ部40
1aはヒットしない。アドレスタグ部401aがヒットしない
ときはそのまま処理は続行され、命令は命令解読装置2
で解読されたのち命令実行装置3で実行される。
まず、アドレスタグ部401aがヒットしないまま無条件分
岐命令が実行された場合を説明する。
無条件分岐命令が命令実行装置3で実行されるとき、命
令実行装置3は分岐先アドレスの計算を行ない、命令先
読み装置1はこのアドレスを受取って新たに分岐先の命
令コードを読出す。このとき履歴格納装置4aは、命令実
行装置3に保持している無条件分岐命令の直前に実行し
た命令のアドレスをアドレスタグ部401aに、命令先読み
装置1で読出された分岐先の命令コードを分岐先命令部
402aに、命令実行装置3で計算した分岐先アドレスを分
岐先アドレス部403aに格納し、有効ビット409aをエント
リのデータが有効であることを示す‘1'にセットする。
次に、上で述べた動作のあと再び同一の無条件分岐命令
が実行される場合を説明する命令解読装置2がこの無条
件分岐命令の直前の命令を解読すると同時に先行分岐装
置5aはこの命令のアドレスで履歴格納装置4aを検索す
る。このとき、そのアドレスがアドレスタグ部401aにヒ
ットし、先行分岐装置5aは無条件分岐命令の実行を待た
ずに過去の履歴により分岐先の命令コードと分岐先アド
レスをそれぞれ分岐先命令部402aと分岐先アドレス部40
3aから取出して命令解読装置2と命令先読み装置1に送
出する。命令解読装置2は無条件分岐命令の直前の命令
の解読終了後直ちに先行分岐装置5aから受取った分岐先
の命令コードの解読を開始し、命令先読み装置1はそれ
までに先読みした命令をキャンセルするとともに先行分
岐装置5aから受取った分岐先アドレスに対して分岐先命
令部402aの語長分だけ先のアドレスから命令の先読みを
行なう。以降はそのまま処理を続行する。
第3図は履歴格納装置4aのアドレスタグ部401aがヒット
した場合の動作タイミング図を示すものである。命令先
読み装置1、先行分岐装置5a、命令解読装置2、命令実
行装置3において実行されている命令をクロック単位で
示している。ここでは各装置の必要クロック数を1クロ
ックとしている。先行分岐装置5aがクロックt2で無条件
分岐命令の直前の命令(命令b)のアドレスで履歴格納
装置4aを検索すると、そのアドレスがアドレスタグ部40
1aにヒットし、先行分岐装置5aは分岐先の命令コードと
分岐先アドレスをそれぞれ命令解読装置2と命令先読み
装置1に送出する。クロックt3で命令解読装置2は分岐
先の命令コード(命令m)の解読を開始し、命令先読み
装置1は分岐先アドレスに対して分岐先命令部402aの語
長分だけ先のアドレスから命令(命令n)の先読みを行
なう。ただし同図では命令n以外の先読みのタイミング
は記していない。クロックt4で命令実行装置3が分岐先
の命令(命令m)を実行する。
このように過去に実行した無条件分岐命令を再度実行す
る場合は、無条件分岐命令の直前の命令(命令b)の実
行後直ちに分岐先の命令(命令m)を実行し、無条件分
岐命令(命令c)の実行クロック数が零になる。
以上のように本実施例によれば、無条件分岐命令より前
の命令が解読されている時に先行分岐装置5aがその命令
のアドレスで履歴格納装置4aを検索して無条件分岐命令
の次に実行されるべき命令の命令コードとそのアドレス
を得、無条件分岐命令の解読ならびに実行を行なわずに
無条件分岐命令の直前の命令に続いて無条件分岐命令の
次に実行されるべき命令を解読・実行することにより、
無条件分岐命令の実行クロック数を零にすることができ
る。
なお、本実施例においては履歴格納装置4aに分岐先命令
部402aを設けているが、これを省略してもよい。この場
合、命令解読装置2で解読中の命令のアドレスがアドレ
スタグ部401aにヒットしたとき、命令先読み装置1は先
行分岐装置5aから得られる無条件分岐命令の次に実行さ
れるべき命令のアドレスから命令の先読みを開始し、命
令解読装置2は無条件分岐命令の直前の命令の解読を終
了後、命令先読み装置1から送出される命令を解読す
る。
また、本実施例において分岐先アドレス部403aに分岐先
アドレスを格納し、命令解読装置2で解読中の命令のア
ドレスがアドレスタグ部401aにヒットしたとき、命令先
読み装置1は先行分岐装置5aから得られるアドレスに対
して分岐先命令部402aの語長分だけ先のアドレスから命
令の先読みを開始しているが、予め分岐先アドレス部40
3aに分岐先アドレスに分岐先命令部402aの語長分を加算
したものを格納し命令解読装置2で解読中の命令のアド
レスがアドレスタグ部401aにヒットしたとき命令先読み
装置1は先行分岐装置5aから得られるアドレスから命令
の先読みを開始するようにしてもよい。
また、本実施例においてアドレスタグ部401aに無条件分
岐命令の直前の命令のアドレスを格納し、命令解読装置
2がこの無条件分岐命令の直前の命令を解読していると
きに先行分岐を行なっているが、直前の命令でなくとも
無条件分岐命令より前に実行された命令であれば如何な
る命令でもよい。
第4図は本発明の第2の実施例におけるデータ処理装置
の構成図を示すものである。
同図において、1は命令先読み装置、2は命令解読装
置、3は命令実行装置、7は入出力バス、8はバス制御
装置で、以上は第1図の構成と同様なものである。第4
図において、4bは分岐命令実行時に分岐命令の次に実行
された命令の命令コードとそのアドレスおよび分岐命令
の次に実行され得る他の命令のアドレスおよびその分岐
命令の条件コードと分岐成立の有無を格納する履歴格納
装置、5bは分岐命令の実行に先立って履歴格納装置4bか
ら分岐命令の次に実行されると予測される命令の命令コ
ードとそのアドレスを取出してそれぞれ命令解読装置2
と命令先読み装置1に出力する分岐予測装置6bは分岐予
測装置5bから受取った分岐命令の条件コードと分岐予測
が分岐成立が否かの情報とに基づき分岐予測の真偽を検
証する分岐検証装置である。第5図は第4図に示す履歴
格納装置4bの構成図を示すものであり、401bは分岐命令
の直前に実行された命令のアドレスを格納するアドレス
タグ部、402b、403b、404bは分岐命令の分岐が成立した
場合はそれぞれ分岐命令の分岐先アドレスから始まる一
定長の命令コードと分岐先アドレスと分岐命令に後続す
る命令のアドレスを格納し、分岐命令の分岐が成立しな
かった場合はそれぞれ分岐命令に後続する命令のアドレ
スから始まる一定長の命令コードと分岐命令に後続する
命令のアドレスと分岐命令の分岐先アドレスを格納する
候補命令部、候補アドレス部、次候補アドレス部、407b
は分岐命令の分岐成立を判定する条件コードを格納する
条件コード部、408bは分岐命令の分岐が成立したことを
示す成立予測部、409bはエントリのデータが有効である
ことを示す有効ビットである。
以上のように構成された第2の実施例のデータ処理装置
について、以下その動作を説明する。
命令先読み装置1で先読みされた命令コードが命令解読
装置2で解読されると、同時に分岐予測装置5bは解読中
の命令のアドレスで履歴格納装置4bを検索する。命令解
読装置2で解読中の命令が分岐命令の直前の命令であっ
ても、その命令が初めて実行される場合や実行されてか
ら他の命令によって履歴格納装置4bのエントリが書換え
られた場合は履歴格納装置4bのアドレスタグ部401bはヒ
ットしない。アドレスタグ部401bがヒットしないときは
そのまま処理は続行され、命令は命令解読装置2で解読
されたのち命令実行装置3で実行される。
まず、アドレスタグ部401bがヒットしないまま分岐命令
が実行され、分岐が成立した場合を説明する。
分岐命令が命令実行装置3で実行されるとき、命令実行
装置3は分岐先アドレスの計算を行ない分岐成立・不成
立を判定する。分岐が成立した場合、命令先読み装置1
は命令実行装置3で計算された分岐先アドレスを受取
り、新たに分岐先の命令コードを読出す。このとき履歴
格納装置4bは、命令実行装置3に保持している分岐命令
の直前に実行した命令のアドレスをアドレスタグ部401b
に、命令先読み装置1で読出された分岐先の命令コード
を候補命令部402bに、命令実行装置3で計算した分岐先
アドレスを候補アドレス部403bに、分岐命令に後続する
命令のアドレスを次候補アドレス部404bに、分岐命令の
条件コードを条件コード部407bに、それぞれ同一のエン
トリに格納し、成立予測部408bを分岐が成立したことを
示す‘1'にセットし、有効ビット409bをエントリのデー
タが有効であることを示す‘1'にセットする。
次に、上で述べた動作のあと再び同一の分岐命令が実行
される場合を説明する。
今回も分岐が成立する可能性が高く、動作は以下のよう
になる。命令解読装置2がこの分岐命令の直前の命令を
解読すると同時に分岐予測装置5bはこの命令のアドレス
で履歴格納装置4bを検索する。このとき、そのアドレス
がアドレスタグ部401bにヒットし、分岐予測装置5bは分
岐命令の実行を待たずに過去の履歴により分岐の成立を
予測し、分岐先の命令コードと分岐先アドレスをそれぞ
れ候補命令部402bと候補アドレス部403bから取出して命
令解読装置2と命令先読み装置1に送出する。命令解読
装置2は分岐命令の直前の命令の解読終了後直ちに分岐
予測装置5bから受取った分岐先の命令コードの解読を開
始し、命令先読み装置1はそれまでに先読みした命令を
キャンセルするとともに分岐予測装置5bから受取った分
岐先アドレスに対して候補命令部402bの語長分だけ先の
アドレスから命令の先読みを行なう。命令実行装置3が
分岐命令の次に実行されると予測された命令を実行する
のと並列に、分岐検証装置6bは分岐予測装置5bから受取
った条件コード部407bに格納された分岐命令の条件コー
ドと成立予測部408bが示す予測が分岐成立側であること
の情報とに基づき分岐予測の真偽を検証する。検証の結
果、予測が真であることが判明すればそのまま処理を続
行する。一方検証の結果、予測が偽であることが判明し
た場合は、分岐検証装置6bからの信号により命令実行装
置3は分岐命令の次に実行されると予測した命令の実行
結果の格納をキャンセルし、命令解読装置2は解読中の
命令をキャンセルし、命令先読み装置1は先読みした命
令をキャンセルするとともに次候補アドレス部404bに格
納された分岐命令に後続する命令のアドレスを分岐予測
装置5bから受取り、このアドレスにより新たに命令の先
読みを行なう。このとき、次に再び同一の分岐命令が実
行される場合には分岐が成立しない可能性が高いと考え
られるため、履歴格納装置4bは、アドレスタグ部401bが
ヒットしたエントリを次のように更新する。即ち、命令
先読み装置1で先読みされた分岐命令に後続する命令の
命令コードを候補命令部402bに、それまでの次候補アド
レス部404bの内容(分岐命令に後続する命令のアドレ
ス)を候補アドレス部403bに、それまでの候補アドレス
部403bの内容(分岐命令の分岐先アドレス)を次候補ア
ドレス部404bに格納し、成立予測部408bを分岐が成立し
なかったことを示す‘0'にリセットする。
第6図は分岐予測が真である場合の動作タイミング図を
示すものである。命令先読み装置1、分岐予測装置5b、
命令解読装置2、命令実行装置3、分岐検証装置6bにお
いて実行されている命令をクロック単位で示している。
ここでは各装置の必要クロック数を1クロックとしてい
る。分岐予測装置5bがクロックt2で分岐命令の直前の命
令(命令b)のアドレスで履歴格納装置4bを検索する
と、そのアドレスがアドレスタグ部401bにヒットし、分
岐予測装置5bは分岐先の命令コードと分岐先アドレスを
それぞれ命令解読装置2と命令先読み装置1に送出す
る。クロックt3で命令解読装層2は分岐先の命令コード
(命令m)の解読を開始し、命令先読み装置1は分岐先
アドレスに対して候補命令部402bの語長分だけ先のアド
レスから命令(命令n)の先読みを行なう。ただし同図
では命令n以外の先読みのタイミングは記していない。
クロックt4で命令実行装置3が分岐命令の次に実行され
ると予測された命令(命令m)を実行するのと並列に、
分岐検証装置6bは分岐予測の真偽を検証する。検証の結
果、予測が真であり、処理は続行される。このように分
岐成立の予測が正しい場合は、分岐命令の直前の命令
(命令b)の実行後直ちに分岐先の命令(命令m)を実
行し、分岐命令(命令c)の実行クロック数が零にな
る。
次に、アドレスタグ部401bがヒットしないまま分岐命令
が実行され、分岐が成立しなかった場合を説明する。
即ち分岐が成立しなかった場合、分岐命令が命令実行装
置3で実行されるとき履歴格納装置4bは、命令実行装置
3に保持している分岐命令の直前に実行した命令のアド
レスをアドレスタグ部401bに、命令先読み装置1で先読
みされた分岐命令に後続する命令の命令コードを候補命
令部402bに、分岐命令に後続する命令のアドレスを候補
アドレス部403bに、命令実行装置3で計算した分岐命令
の分岐先アドレスを次候補アドレス部404bに、分岐命令
の条件コードを条件コード部407bに、それぞれ同一のエ
ントリに格納し、成立予測部408bを分岐が成立しなかっ
たことを示す‘0'にリセットし、有効ビット409bをエン
トリのデータが有効であることを示す‘1'にセットす
る。
次に、上に述べた動作のあと再び同一の分岐命令が実行
される場合を説明する。
今回も分岐が成立しない可能性が高く、動作は以下のよ
うになる。命令解読装置2がこの分岐命令の直前の命令
を解読すると同時に分岐予測装置5bはこの命令のアドレ
スで履歴格納装置4bを検索する。このとき、そのアドレ
スがアドレスタグ部401bにヒットし、分岐予測装置5bは
分岐命令の実行を待たずに過去の履歴により分岐の不成
立を予測し、分岐命令に後続する命令の命令コードとそ
のアドレスをそれぞれ候補命令部402bと候補アドレス部
403bから取出して命令解読装置2と命令先読み装置1に
送出する。命令解読装置2は分岐命令の直前の命令の解
読終了後直ちに分岐予測装置5bから受取った命令コード
の解読を開始し、命令先読み装置1はそれまでに先読み
した命令をキャンセルするとともに分岐予測装置5bから
受取ったアドレスに対して候補命令部402bの語長分だけ
先のアドレスから命令の先読みを行なう。命令実行装置
3が分岐命令の次に実行されると予測された命令を実行
するのと並列に、分岐検証装置6bは分岐予測装置5bから
受取った条件コード部407bに格納された分岐命令の条件
コードと成立予測部408bが示す予測が分岐不成立側であ
ることの情報とに基づき分岐予測の真偽を検証する。検
証の結果、予測が真であることが判明すればそのまま処
理を続行する。一方検証の結果、予測が偽であることが
判明した場合は、分岐検証装置6bからの信号により命令
実行装置3は分岐命令の次に実行されると予測した命令
の実行結果の格納をキャンセルし、命令解読装置2は解
読中の命令をキャンセルし、命令先読み装置1は先読み
した命令をキャンセルするとともに次候補アドレス部40
4bに格納された分岐先のアドレスを分岐予測装置5bから
受取り、このアドレスにより新たに命令の先読みを行な
う。このとき、次に再び同一の分岐命令が実行される場
合には分岐が成立する可能性が高いと考えられるため、
履歴格納装置4bは、アドレスタグ部401bがヒットしたエ
ントリを次のように更新する。即ち、命令先読み装置1
で読出された分岐先の命令の命令コードを候補命令部40
2bに、それまでの次候補アドレス部404bの内容(分岐命
令の分岐先アドレス)を候補アドレス部403bに、それま
での候補アドレス部403bの内容(分岐命令に後続する命
令のアドレス)を次候補アドレス部404bに格納し、成立
予測部408bを分岐が成立したことを示す‘1'にセットす
る。このように分岐不成立の予測が正しい場合も、分岐
命令の直前の命令の実行後直ちに分岐命令に後続する命
令を実行し、分岐命令の実行クロック数が零になる。
以上のように本実施例によれば、分岐命令より前の命令
が解読されている時に分岐予測装置5bがその命令のアド
レスで履歴格納装置4bを検索して分岐命令の次に実行さ
れるべき命令の命令コードとそのアドレスを得、分岐命
令の解読ならびに実行を行なわずに分岐命令の直前の命
令に続いて分岐命令の次に実行されると予測された命令
を解読・実行し、分岐検証装置6bが予測の真偽の検証を
分岐命令の次に実行されると予測された命令の実行と並
列に行なうことにより、分岐が成立・不成立にかかわら
ず予測が真の場合の分岐命令の実行クロック数を零にす
ることができる。
なお、本実施例において履歴格納装置4bに候補命令部40
2bを設けているが、これを省略してもよい。この場合、
命令解読装置2で解読中の命令のアドレスがアドレスタ
グ部401bにヒットしたとき、命令先読み装置1は分岐予
測装置5bから得られる分岐命令の次に実行されるべき命
令のアドレスから命令の先読みを開始し、命令解読装置
2は分岐命令の直前の命令の解読を終了後、命令先読み
装置1から送出される命令を解読する。
また、本実施例において候補アドレス部403bに分岐先ア
ドレスまたは分岐命令に後続する命令のアドレスを格納
し、命令解読装置2で解読中の命令のアドレスがアドレ
スタグ部401bにヒットしたとき、命令先読み装置1は分
岐予測装置5bから得られるアドレスに対して候補命令部
402bの語長分だけ先のアドレスから命令の先読みを開始
しているが、予め候補アドレス部403bに分岐先アドレス
または分岐命令に後続する命令のアドレスに候補命令部
402bの語長分を加算したものを格納し、命令解読装置2
で解読中の命令のアドレスがアドレスタグ部401bにヒッ
トしたとき、命令先読み装置1は分岐予測装置5bから得
られるアドレスから命令の先読みを開始するようにして
もよい。
また、本実施例においてアドレスタグ部401bに分岐命令
の直前の命令のアドレスを格納し、命令解読装置2がこ
の分岐命令の直前の命令を解読しているときに分岐予測
を行なっているが、直前の命令でなくとも分岐命令より
前に実行された命令であれば如何なる命令でもよい。
また、本実施例において命令解読装置2で解読中の命令
のアドレスがアドレスタグ部401bにヒットし分岐成立を
予測したとき、命令先読み装置1はそれまでに先読みし
た命令をリセットして新たに分岐先の命令の先読みを開
始しているが、これをリセットせずに保存しておき、予
測が外れ分岐が成立しなかったときにこれを読出して命
令解読装置2に送るようにしてもよい。
また、本実施例において履歴格納装置4bと分岐予測装置
5bは過去1回の最も新しい履歴に従って分岐の予測を行
なっているが、過去複数回の履歴に従って分岐の予測を
行なってもよい。
また、本実施例において分岐予測が外れた場合に候補ア
ドレス部403bの内容と次候補アドレス部404bの内容を交
換しているが、常に候補アドレス部403bに分岐先アドレ
スを、次候補アドレス部404bに分岐命令に後続する命令
のアドレスを格納するようにし、命令解読装置2で解読
中の命令のアドレスがアドレスタグ部401bにヒットした
とき、成立予測部408bが‘1'ならば候補アドレス部403b
の内容を、‘0'ならば次候補アドレス部404bの内容を命
令先読み装置1に送るようにしてもよい。
第7図は本発明の第3の実施例におけるデータ処理装置
の構成図を示すものである。同図において、1は命令先
読み装置、2は命令解読装置、3は命令実行装置、7は
入出力バス、8はバス制御装置で、以上は第1図の構成
と同様なものである。第7図において、4cは比較命令解
読時に比較命令に続く命令の命令コードとそのアドレス
および比較命令のオペランドに関す情報を格納する履歴
格納装置、9は比較命令の実行に先立って履歴格納装置
4cから比較命令に続く命令の命令コードとそのアドレス
を取出してそれぞれ命令解読装置2と命令先読み装置1
に出力する比較命令除去装置、10は比較命令除去装置9
から比較命令のオペランドに関する情報を受取り、この
内容に従って命令実行装置3中の汎用レジスタを読出し
て比較を行なう比較装置である。第8図は第7図に示す
履歴格納装置4cの構成図を示すものであり、401cは比較
命令の直前に実行された命令のアドレスを格納するアド
レスタグ部、402cは比較命令に続く命令のアドレスから
始まる一定長の命令コードを格納する次命令部、403cは
比較命令に続く命令のアドレスを格納する次命令アドレ
ス部、405c、406cは比較命令の第1および第2のオペラ
ンドが汎用レジスタのときはその汎用レジスタを指定す
る情報(レジスタ番号)を格納し、オペランドが即値の
ときはその即値を格納する比較第1オペランド部、比較
第2オペランド部、409cはエントリのデータが有効であ
ることを示す有効ビットである。
以上のように構成された第3の実施例のデータ処理装置
について、以下その動作を説明する。
命令先読み装置1で先読みされた命令コードが命令解読
装置2で解読されると、同時に比較命令除去装置9は解
読中の命令のアドレスで履歴格納装置4cを検索する。命
令解読装置2で解読中の命令が比較命令の直前の命令で
あっても、その命令が初めて実行される場合や実行され
てから他の命令によって履歴格納装置4cのエントリが書
換えられた場合は履歴格納装置4cのアドレスタグ部401c
はヒットしない。アドレスタグ部401cがヒットしないと
きはそのまま処理は続行され、命令は命令解読装置2で
解読されたのち命令実行装置3で実行される。
まず、アドレスタグ部401cがヒットしないまま比較命令
が解読・実行された場合を説明する。
比較命令が命令解読装置2で解読されるとき、履歴格納
装置4cは命令解読装置2に保持している比較命令の直前
に実行した命令のアドレスをアドレスタグ部401cに、命
令先読み装置1で読出された比較命令に続く命令の命令
コードを次命令部402cに、比較命令に続く命令のアドレ
スを次命令アドレス部403cに、解読中の比較命令の2つ
のオペランドの汎用レジスタを指定する情報または即値
を比較第1オペランド部405cと比較第2オペランド部40
6cに、それぞれ同一のエントリに格納し、有効ビット40
9cをエントリのデータが有効であることを示す‘1'にセ
ットする。
次に、上で述べた動作のあと再び同一の比較命令が実行
される場合を説明する。
命令解読装置2がこの比較命令の直前の命令を解読する
と同時に比較命令除去装置9はこの命令のアドレスで履
歴格納装置4cを検索する。このとき、そのアドレスがア
ドレスタグ部401cにヒットし、比較命令除去装置9は比
較命令に続く命令の命令コードとそのアドレスをそれぞ
れ次命令部402cと次命令アドレス部403cから取出して命
令解読装置2と命令先読み装置1に送出する。命令解読
装置2は比較命令の直前の命令の解読終了後直ちに比較
命令除去装置9から受取った比較命令に続く命令の命令
コードの解読を開始し、命令先読み装置1はそれまでに
先読みした命令をキャンセルするとともに比較命令除去
装置9から受取った比較命令に続く命令のアドレスに対
して次命令部402cの語長分だけ先のアドレスから命令の
先読みを行なう。命令実行装置3が比較命令に続く命令
を実行するのと並列に、比較装置10は比較命令除去装置
9から比較第1オペランド部405cと比較第2オペランド
部406cに格納された比較命令のオペランドの汎用レジス
タを指定する情報(レジスタ番号)または即値を受取
り、この内容に従って命令実行装置3に内蔵された汎用
レジスタを読出して比較を行ない、その比較結果を命令
実行装置3に内蔵するフラグレジスタに反映する。以降
はそのまま処理を続行する。
第9図は履歴格納装置4cのアドレスタグ部401cがヒット
した場合の動作タイミング図を示すものである。命令先
読み装置1、比較命令除去装置9、命令解読装置2、命
令実行装置3、比較装置10において実行されている命令
をクロック単位で示している。ここでは各装置の必要ク
ロック数を1クロックとしている。比較命令除去装置9
がクロックt2で比較命令の直前の命令(命令b)のアド
レスで履歴格納装置4cを検索すると、そのアドレスがア
ドレスタグ部401cにヒットし、比較命令除去装置9は比
較命令に続く命令の命令コードとそのアドレスをそれぞ
れ命令解読装置2と命令先読み装置1に送出する。クロ
ックt3で命令解読装置2は比較命令に続く命令の命令コ
ード(命令d)の解読を開始し、命令先読み装置1は比
較命令に続く命令のアドレスに対して次命令部402cの語
長分だけ先のアドレスから命令(命令e)の先読みを行
なう。ただし同図では命令e以外の先読みのタイミング
は記していない。クロックt4で命令実行装置3が比較命
令に続く命令(命令d)を実行するのと並列に、比較装
置10は比較を行なう。このように過去に実行した比較命
令を再度実行する場合は、比較命令の直前の命令(命令
b)の実行後直ちに比較命令に続く命令(命令d)を実
行し、比較命令(命令c)の実行クロック数が零にな
る。
以上のように本実施例によれば、比較命令より前の命令
が解読されている時に比較命令除去装置9がその命令の
アドレスで履歴格納装置4cを検索して比較命令に続く命
令の命令コードとそのアドレスを得、比較命令の解読な
らびに実行を行なわずに比較命令の直前の命令に続いて
比較命令に続く命令を解読・実行し、比較命令に続く命
令の実行と並列に比較装置10が比較を行なうことによ
り、比較命令の実行クロック数を零にすることができ
る。
なお、本実施例において履歴格納装置4cに次命令部402c
を設けているが、これを省略してもよい。この場合、命
令解読装置2で解読中の命令のアドレスがアドレスタグ
部401cにヒットしたとき、命令先読み装置1は比較命令
除去装置9から得られる比較命令に続く命令のアドレス
から命令の先読みを開始し、命令解読装置2は比較命令
の直前の命令の解読を終了後、命令先読み装置1から送
出される命令を解読する。
また、本実施例において次命令アドレス部403cに比較命
令に続く命令のアドレスを格納し、命令解読装置2で解
読中の命令のアドレスがアドレスタグ部401cにヒットし
たとき、命令先読み装置1は比較命令除去装置9から得
られるアドレスに対して次命令部402cの語長分だけ先の
アドレスから命令の先読みを開始しているが、予め次命
令アドレス部403cに比較命令に続く命令のアドレスに次
命令部402cの語長分を加算したものを格納し、命令解読
装置2で解読中の命令のアドレスがアドレスタグ部401c
にヒットしたとき、命令先読み装置1は比較命令除去装
置9から得られるアドレスから命令の先読みを開始する
ようにしてもよい。
また、本実施例においてアドレスタグ部401dに比較命令
の直前の命令のアドレスを格納し、命令解読装置2がこ
の比較命令の直前の命令を解読しているときに比較命令
の除去を行なっているが、直前の命令でなくとも比較命
令より前に実行された命令であれば如何なる命令でもよ
い。
第10図は本発明の第4の実施例におけるデータ処理装置
の構成図を示すものである。
同図において、1は命令先読み装置、2は命令解読装
置、3は命令実行装置、7は入出力バス、8はバス制御
装置で、以上は第1図の構成と同様なものである。第10
図において、4dは分岐命令実行時に分岐命令の次に実行
された命令の命令コードとそのアドレスおよび分岐命令
の次に実行され得る他の命令のアドレスおよびその分岐
命令の条件コードと分岐成立の有無および分岐命令に前
置する比較命令のオペランドに関する情報を格納する履
歴格納装置、5dは分岐命令の実行に先立って履歴格納装
置4dから分岐命令の次に実行されると予測される命令の
命令コードとそのアドレスを取出してそれぞれ命令解読
装置2と命令先読み装置1に出力する分岐予測装置、6d
は分岐予測装置5dから比較命令のオペランドに関する情
報を受取り、この内容に従って命令実行装置3中の汎用
レジスタを読出して比較を行ない、その比較結果と分岐
予測装置5dから受取った分岐命令の条件コードと分岐予
測が分岐成立か否かの情報とに基づき分岐予測の真偽を
検証する分岐検証装置である。第11図は第10図に示す履
歴格納装置4dの構成図を示すものであり、401dは分岐命
令に前置する比較命令の直前に実行された命令のアドレ
スを格納するアドレスタグ部、402d、403d、404dは比較
命令に後続する分岐命令の分岐が成立した場合はそれぞ
れ分岐命令の分岐先アドレスから始まる一定長の命令コ
ードの分岐先アドレスと分岐命令に後続する命令のアド
レスを格納し、比較命令に後続する分岐命令の分岐が成
立しなかった場合はそれぞれ分岐命令に後続する命令の
アドレスから始まる一定長の命令コードと分岐命令に後
続する命令のアドレスと分岐命令の分岐先アドレスを格
納する候補命令部、候補アドレス部、次候補アドレス
部、405d、406dは分岐命令に前置する比較命令の第1お
よび第2のオペランドが汎用レジスタのときはその汎用
レジスタを指定する情報(レジスタ番号)を格納し、オ
ペランドが即値のときはその即値を格納する比較第1オ
ペランド部、比較第2オペランド部、407dは比較命令に
後続する分岐命令の分岐成立を判定する条件コードを格
納する条件コード部、408dは比較命令に後続する分岐命
令の分岐が成立したことを示す成立予測部、409dはエン
トリのデータが有効であることを示す有効ビットであ
る。
以上のように構成された本実施例のデータ処理装置につ
いて、以下その動作を説明する。
命令先読み装置1で先読みされた命令コードが命令解読
装置2で解読されると、同時に分岐予測装置5dは解読中
の命令のアドレスで履歴格納装置4dを検索する。命令解
読装置2で解読中の命令が分岐命令に前置する比較命令
の直前の命令であっても、その命令が初めて実行される
場合や実行されてから他の命令によって履歴格納装置4d
のエントリが書換えられた場合は履歴格納装置4dのアド
レスタグ部401dはヒットしない。アドレスタグ部401dが
ヒットしないときはそのまま処理は続行され、命令は命
令解読装置2で解読されたのち命令実行装置3で実行さ
れる。
まず、アドレスタグ部401dがヒットしないまま比較命令
に後続する分岐命令が実行され、分岐が成立した場合を
説明する。
分岐命令が命令実行装置3で実行されるとき、命令実行
装置3は分岐先アドレスの計算を行ない分岐成立・不成
立を判定する。分岐が成立した場合、命令先読み装置1
は命令実行装置3で計算された分岐先アドレスを受取
り、新たに分岐先の命令コードを読出す。このとき履歴
格納装置4dは、命令実行装置3に保持している比較命令
の直前に実行した命令のアドレスをアドレスタグ部401d
に、命令先読み装置1で読出された分岐先の命令コード
を候補命令部402dに、命令実行装置3で計算した分岐先
アドレスを候補アドレス部403dに、分岐命令の後続する
命令のアドレスを次候補アドレス部404dに、命令実行装
置3に保持している比較命令の2つのオペランドの汎用
レジスタを指定する情報または即値を比較第1オペラン
ド部405dと比較第2オペランド部406dに、分岐命令の条
件コードを条件コード部407dに、それぞれ同一のエント
リに格納し、成立予測部408dを分岐が成立したことを示
す‘1'にセットし、有効ビット409dをエントリのデータ
が有効であることを示す‘1'にセットする。
次に、上で述べた動作のあと再び同一の比較命令とそれ
に後続する分岐命令が実行される場合を説明する。
今回も分岐が成立する可能性は高く、動作は以下のよう
になる。命令解読装置2がこの比較命令の直前の命令を
解読すると同時に分岐予測装置5dはこの命令のアドレス
で履歴格納装置4dを検索する。このとき、そのアドレス
がアドレスタグ部401dにヒットし、分岐予測装置5dは分
岐命令の実行を待たずに過去の履歴により分岐の成立を
予測し、分岐先の命令コードと分岐先アドレスをそれぞ
れ候補命令部402dと候補アドレス部403dから取出して命
令解読装置2と命令先読み装置1に送出する。命令解読
装置2は比較命令の直前の命令の解読終了後直ちに分岐
予測装置5dから受取った分岐先の命令コードの解読を開
始し、命令先読み装置1はそれまでに先読みした命令を
キャンセルするとともに分岐予測装置5dから受取った分
岐先アドレスに対して候補命令部402dの語長分だけ先の
アドレスから命令の先読みを行なう。命令実行装置3が
分岐命令の次に実行されると予測された命令を実行する
のと並列に、分岐検証装置6dは分岐予測装置5dから比較
第1オペランド部405dと比較第2オペランド部406dに格
納された比較命令のオペランドの汎用レジスタを指定す
る情報(レジスタ番号)または即値を受取り、この内容
に従って命令実行装置3に内蔵された汎用レジスタを読
出して比較を行ない、その比較結果を命令実行装置3に
内蔵するフラグレジスタに反映するとともに、分岐予測
装置5dから受取った条件コード部407dに格納された分岐
命令の条件コードと成立予測部408dが示す予測が分岐成
立側であることの情報とに基づき分岐予測の真偽を検証
する。検証の結果、予測が真であることが判明すればそ
のまま処理を続行する。一方検証の結果、予測が偽であ
ることが判明した場合は、分岐検証装置6dからの信号に
より命令実行装置3は分岐命令の次に実行されると予測
した命令の実行結果の格納をキャンセルし、命令解読装
置2は解読中の命令をキャンセルし、命令先読み装置1
は先読みした命令をキャンセルするとともに次候補アド
レス部404dの格納された分岐命令に後続する命令のアド
レスを分岐予測装置5dから受取り、このアドレスにより
新たに命令の先読みを行なう。このとき、次に再び同一
の比較命令とそれに後続する分岐命令が実行される場合
には分岐が成立しない可能性が高いと考えられるため、
履歴格納装置4dは、アドレスタグ部401dがヒットしたエ
ントリを次のように更新する。即ち、命令先読み装置1
で先読みされた分岐命令に後続する命令の命令コードを
候補命令部402dに、それまでの次候補アドレス部404dの
内容(分岐命令に後続する命令のアドレス)を候補アド
レス部403dに、それまでの候補アドレス部403dの内容
(分岐命令の分岐先アドレス)を次候補アドレス部404d
に格納し、成立予測部408dを分岐が成立しなかったこと
を示す‘0'にリセットする。
第12図は分岐予測が真である場合の動作タイミング図を
示すものである。命令先読み装置1、分岐予測装置5d、
命令解読装置2、命令実行装置3、分岐検証装置6dにお
いて実行されている命令をクロック単位で示している。
ここでは各装置の必要クロック数を1クロックとしてい
る。分岐予測装置5dがクロックt2で比較命令の直前の命
令(命令b)のアドレスで履歴格納装置4dを検索する
と、そのアドレスがアドレスタグ部401dにヒットし、分
岐予測装置5dは分岐先の命令コードと分岐先アドレスを
それぞれ命令解読装置2と命令先読み装置1に送出す
る。クロックt3で命令解読装置2は分岐先の命令コード
(命令m)の解読を開始し、命令先読み装置1は分岐先
アドレスに対して候補命令部402dの語長分だけ先のアド
レスから命令(命令n)の先読みを行なう。ただし同図
では命令n以外の先読みのタイミングは記していない。
クロックt4で命令実行装置3が分岐命令の次に実行され
ると予測された命令(命令m)を実行するのと並列に、
分岐検証装置6dは分岐予測の真偽を検証す。検証の結
果、予測が真であり、処理は続行される。このように分
岐成立の予測が正しい場合は、比較命令の直前の命令
(命令b)の実行後直ちに分岐先の命令(命令m)を実
行し、分岐命令(命令d)と分岐命令に前置する比較命
令(命令c)の実行クロック数がともに零になる。
次に、アドレスタグ部401dがヒットしないまま比較命令
に後続する分岐命令が実行され、分岐が成立しなかった
場合を説明する。
即ち分岐が成立しなかった場合、分岐命令が命令実行装
置3で実行されるとき履歴格納装置4dは、命令実行装置
3に保持している比較命令の直前に実行した命令のアド
レスをアドレスタグ部401dに、命令先読み装置1で先読
みされた分岐命令に後続する命令の命令コードを候補命
令部402dに、分岐命令に後続する命令のアドレスを候補
アドレス部403dに、命令実行装置3で計算した分岐命令
の分岐先アドレスを次候補アドレス部404dに、命令実行
装置3に保持している比較命令の2つのオペランドの汎
用レジスタを指定する情報または即値を比較第1オペラ
ンド部405dと比較第2オペランド部406dに、分岐命令の
条件コードを条件コード部407dに、それぞれ同一のエン
トリに格納し、成立予測部408dを分岐が成立しなかった
ことを示す‘0'にリセットし、有効ビット409dをエント
リのデータが有効であることを示す‘1'にセットする。
次に、上に述べた動作のあと再び同一の比較命令とそれ
に後続する分岐命令が実行される場合を説明する。
今回も分岐が成立しない可能性が高く、動作は以下のよ
うになる。命令解読装置2がこの比較命令の直前の命令
を解読すると同時に分岐予測装置5dはこの命令のアドレ
スで履歴格納装置4dを検索する。このとき、そのアドレ
スがアドレスタグ部401dにヒットし、分岐予測装置5dは
分岐命令の実行を待たずに過去の履歴により分岐の不成
立を予測し、分岐命令に後続する命令の命令コードとそ
のアドレスをそれぞれ候補命令部402dと候補アドレス部
403dから取出して命令解読装置2と命令先読み装置1に
送出する。命令解読装置2は比較命令の直前の命令の解
読終了後直ちに分岐予測装置5dから受取った命令コード
の解読を開始し、命令先読み装置1はそれまでに先読み
した命令をキャンセルするとともに分岐予測装置5dから
受取ったアドレスに対して候補命令部402dの語長分だけ
先のアドレスから命令の先読みを行なう。命令実行装置
3が分岐命令の次に実行されると予測された命令を実行
するのと並列に、分岐検証装置6dは分岐予測装置5dから
比較第1オペランド部405dと比較第2オペランド部406d
に格納された比較命令のオペランドの汎用レジスタを指
定する情報(レジスタ番号)または即値を受取り、この
内容に従って命令実行装置3に内蔵された汎用レジスタ
を読出して比較を行ない、その比較結果を命令実行装置
3に内蔵するフラグレジスタに反映するとともに、分岐
予測装置5dから受取った条件コード部407dに格納された
分岐命令の条件コードと成立予測部408dが示す予測が分
岐不成立側であることの情報とに基づき分岐予測の真偽
を検証する。検証の結果、予測が真であることが判明す
ればそのまま処理を続行する。一方検証の結果、予測が
偽であることが判明した場合は、分岐検証装置6dからの
信号により命令実行装置3は分岐命令の次に実行される
と予測した命令の実行結果の格納をキャンセルし、命令
解読装置2は解読中の命令をキャンセルし、命令先読み
装置1は先読みした命令をキャンセルするとともに次候
補アドレス部404dに格納された分岐先のアドレスを分岐
予測装置5dから受取り、このアドレスにより新たに命令
の先読みを行なう。このとき、次に再び同一の比較命令
とそれに後続する分岐命令が実行される場合には分岐が
成立する可能性が高いと考えられるため、履歴格納装置
4dは、アドレスタグ部401dがヒットしたエントリを次の
ように更新する。即ち、命令先読み装置1で読出された
分岐先の命令の命令コードを候補命令部402dに、それま
での次候補アドレス部404dの内容(分岐命令の分岐先ア
ドレス)を候補アドレス部403dに、それまでの候補アド
レス部403dの内容(分岐命令に後続する命令のアドレ
ス)を次候補アドレス部404dに格納し、成立予測部408d
を分岐を成立したことを示す‘1'にセットする。このよ
うに分岐不成立の予測が正しい場合も、比較命令の直前
の命令の実行後直ちに分岐命令に後続する命令を実行
し、分岐命令と分岐命令に前置する比較命令の実行クロ
ック数がともに零になる。
以上のように本実施例によれば、比較命令より前の命令
が解読されている時に分岐予測装置5dがその命令のアド
レスで履歴格納装置4dを検索して分岐命令の次に実行さ
れるべき命令の命令コードとそのアドレスを得、比較命
令および分岐命令の解読ならびに実行を行なわずに比較
命令の直前の命令に続いて分岐命令の次に実行されると
予測された命令を解読・実行し、分岐検証装置6dが予測
の真偽の検証を分岐命令の次に実行されると予測された
命令の実行と並列に行なうことにより、分岐が成立・不
成立にかかわらず予測が真の場合の分岐命令と分岐命令
に前置する比較命令の実行クロック数をともに零にする
ことができる。
なお、本実施例において履歴格納装置4dに候補命令部40
2dを設けているが、これを省略してもよい。この場合、
命令解読装置2で解読中の命令のアドレスがアドレスタ
グ部401dにヒットしたとき、命令先読み装置1は分岐予
測装置5dから得られる分岐命令の次に実行されるべき命
令のアドレスから命令の先読みを開始し、命令解読装置
2は比較命令の直前の命令の解読を終了後、命令先読み
装置1から送出される命令を解読する。
また、本実施例において候補アドレス部403dに分岐先ア
ドレスまたは分岐命令に後続する命令のアドレスを格納
し、命令解読装置2で解読中の命令のアドレスがアドレ
スタグ部401dにヒットしたとき、命令先読み装置1は分
岐予測装置5dから得られるアドレスに対して候補命令部
402dの語長分だけ先のアドレスから命令の先読みを開始
しているが、予め候補アドレス部403dに分岐先アドレス
または分岐命令に後続する命令のアドレスに候補命令部
402dの語長分を加算したものを格納し、命令解読装置2
で解読中の命令のアドレスがアドレスタグ部401dにヒッ
トしたとき、命令先読み装置1は分岐予測装置5dから得
られるアドレスから命令の先読みを開始するようにして
もよい。
また、本実施例においてアドレスタグ部401dの比較命令
の直前の命令のアドレスを格納し、命令解読装置2がこ
の比較命令の直前の命令を解読しているときに分岐予測
を行なっているが、直前の命令でなくとも比較命令より
前に実行された命令であれば如何なる命令でもよい。
また、本実施例において命令解読装置2で解読中の命令
のアドレスがアドレスタグ部401dにヒットし分岐成立を
予測したとき、命令先読み装置1はそれまでに先読みし
た命令をリセットして新たに分岐先の命令の先読みを開
始しているが、これをリセットせずに保存しておき、予
測が外れ分岐が成立しなかったときにこれを読出して命
令解読装置2に送るようにしてもよい。
また、本実施例において履歴格納装置4dと分岐予測装置
5dは過去1回の最も新しい履歴に従って分岐の予測を行
なっているが、過去複数回の履歴に従って分岐の予測を
行なってもよい。
また、本実施例において分岐予測が外れた場合に候補ア
ドレス部403dの内容と次候補アドレス部404dの内容を交
換しているが、常に候補アドレス部403dに分岐先アドレ
スを、次候補アドレス部404dに分岐命令に後続する命令
のアドレスを格納するようにし、命令解読装置2で解読
中の命令のアドレスがアドレスタグ部401dにヒットした
とき、成立予測部408dが‘1'ならば候補アドレス部403d
の内容を、‘0'ならば次候補アドレス部404dの内容を命
令先読み装置1に送るようにしてもよい。
発明の効果 以上説明したように、請求項1記載の発明によれば、過
去に実行した無条件分岐命令を再度実行する場合、無条
件分岐命令の直前の命令の実行後直ちに無条件分岐命令
の分岐先の命令を実行し、無条件分岐命令の実行クロッ
ク数を零にすることができ、その実用的効果は大きい。
また、請求項2記載の発明によれば、分岐成立・分岐不
成立の予測が正しい場合、分岐命令の直前の命令の実行
後直ちに分岐命令の次に実行すべき命令を実行し、分岐
命令の実行クロック数を零にすることができ、その実用
的効果は大きい。
また、請求項3記載の発明によれば、過去に実行した比
較命令を再度実行する場合、比較命令の直前の命令の実
行後直ちに比較命令に続く命令を実行し、比較命令の実
行クロック数を零にすることができ、その実用的効果は
大きい。
また、請求項4記載の発明によれば、分岐成立・分岐不
成立の予測が正しい場合、比較命令の直前の命令の実行
後直ちに分岐命令の次に実行すべき命令を実行し、分岐
命令と分岐命令に前置する比較命令の実行クロック数を
ともに零にすることができ、その実用的効果は大きい。
【図面の簡単な説明】
第1図は本発明の第1の実施例におけるデータ処理装置
の構成図、第2図は同実施例の履歴格納装置4aの構成
図、第3図は同実施例の動作タイミング図、第4図は本
発明の第2の実施例におけるデータ処理装置の構成図、
第5図は同実施例の履歴格納装置4bの構成図、第6図は
同実施例の動作タイミング図、第7図は本発明の第3の
実施例におけるデータ処理装置の構成図、第8図は同実
施例の履歴格納装置4cの構成図、第9図は同実施例の動
作タイミング図、第10図は本発明の第4の実施例におけ
るデータ処理装置の構成図、第11図は同実施例の履歴格
納装置4dの構成図、第12図は同実施例の動作タイミング
図、第13図は従来のデータ処理装置の構成図、第14図は
同従来例の履歴格納装置14の構成図である。 1……命令先読み装置、2……命令解読装置、3……命
令実行装置、4a,4b,4c,4d……履歴格納装置、5a……先
行分岐装置、5b,5d……分岐予測装置、6d,6b……分岐検
証装置、7……入出力バス、8……バス制御装置、9…
…比較命令除去装置、10……比較装置。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 松崎 敏道 大阪府門真市大字門真1006番地 松下電器 産業株式会社内 (72)発明者 宮崎 雅也 大阪府門真市大字門真1006番地 松下電器 産業株式会社内 (72)発明者 坂尾 隆 大阪府門真市大字門真1006番地 松下電器 産業株式会社内 (56)参考文献 特開 昭58−123141(JP,A) 特開 昭58−60355(JP,A)

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】第1の命令を実行する少なくとも汎用レジ
    スタと演算器から成る命令実行手段と、前記命令実行手
    段が前記第1の命令を実行している間に前記第1の命令
    に後続する第2の命令を解読する命令解読手段と、前記
    命令解読手段が前記第2の命令を解読している間に前記
    第2の命令に後続する第3の命令を読出す命令先読み手
    段と、前記命令実行手段で実行する第4の命令に後続し
    無条件に分岐を行なう第5の命令を実行した結果、前記
    第5の命令に連続しない第6の命令を前記命令実行手段
    が実行する場合に、前記第6の命令コードとこの命令コ
    ードに続く命令を前記命令先読み手段により読出すため
    のアドレスおよび前記第4の命令のアドレスを格納する
    履歴格納手段と、前記命令解読手段が前記第4の命令を
    解読している間に解読する命令のアドレスにより前記履
    歴格納手段を検索し前記命令のアドレスが前記履歴格納
    手段に格納されている場合は、前記命令解読手段に対し
    て前記第6の命令の命令コードを、前記命令先読み手段
    に対して前記第6の命令に続く命令を読出すためのアド
    レスを出力する先行分岐手段とを備え、前記命令解読手
    段による前記第4の命令の解読と並行して行われる前記
    先行分岐手段における検索が成功した場合、前記命令解
    読手段は前記第4の命令の解読の後途切れることなく前
    記履歴格納手段から前記先行分岐手段を経て得られる前
    記第6の命令を解読し、命令先読み手段はそれまでの命
    令読出しの後途切れることなく既に読出した命令を無効
    化するとともに前記履歴格納手段から前記先行分岐手段
    を経て得られる前記第6の命令に続く命令を読出すため
    のアドレスを用いて命令を読出し、前記命令実行手段は
    前記第4の命令の実行後途切れることなく前記第6の命
    令を実行することを特徴としたデータ処理装置。
  2. 【請求項2】第1の命令を実行する少なくとも汎用レジ
    スタと演算器から成る命令実行手段と、前記命令実行手
    段が前記第1の命令を実行している間に前記第1の命令
    に後続する第2の命令を解読する命令解読手段と、前記
    命令解読手段が前記第2の命令を解読している間に前記
    第2の命令に後続する第3の命令を読出す命令先読み手
    段と、前記命令実行手段で実行する第4の命令に後続し
    前記第4の命令の実行結果に基づいて分岐を行なう第5
    の命令とを実行した結果、前記第5の命令に連続する第
    6の命令を前記命令実行手段が実行する場合(分岐不成
    立の場合)には前記第6の命令のアドレスもしくは前記
    第6の命令の命令コードとこの命令コードに続く命令を
    前記命令先読み手段により読出すためのアドレスおよび
    前記第5の命令で分岐を判定する条件コードおよび前記
    第4の命令のアドレスもしくは前記第4の命令より前に
    実行されるべき命令のアドレスを格納し、また前記第5
    の命令に連続しない第7の命令を前記命令実行手段が実
    行する場合(分岐成立の場合)には前記第7の命令のア
    ドレスもしくは前記第7の命令コードとこの命令コード
    に続く命令を前記命令先読み手段により読出すためのア
    ドレスおよび前記第5の命令で分岐を判定する条件コー
    ドおよび前記第4の命令のアドレスもしくは前記第4の
    命令より前に実行されるべき命令のアドレスを格納する
    履歴格納手段と、前記命令解読手段が前記第4の命令も
    しくは前記第4の命令より前に実行されるべき命令を解
    読している間に解読する命令のアドレスにより前記履歴
    格納手段を検索し前記命令のアドレスが前記履歴格納手
    段に格納されている場合は、前記命令先読み手段に対し
    て前記第6の命令のアドレスまたは前記第7の命令のア
    ドレスを出力するか、もしくは前記命令解読手段に対し
    て前記第6の命令の命令コードまたは前記第7の命令の
    命令コードを、前記命令先読み手段に対して前記第6の
    命令または前記第7の命令に続く命令を読出すためのア
    ドレスを出力する分岐予測手段と、前記命令実行手段が
    前記第6の命令または前記第7の命令を実行している間
    に、前記履歴格納手段に格納されている前記第5の命令
    で分岐を判定する条件コードとに基づいて前記命令実行
    手段が現在実行している命令が前記第4の命令に続いて
    実行すべき命令であることを検証する分岐検証手段とを
    備え、前記分岐予測手段の予測が正しい場合には前記命
    令実行手段が前記第4の命令を実行後、続いて前記第6
    の命令または前記第7の命令を実行することを特徴とし
    たデータ処理装置。
  3. 【請求項3】第1の命令を実行する少なくとも汎用レジ
    スタと演算器から成る命令実行手段と、前記命令実行手
    段が前記第1の命令を実行している間に前記第1の命令
    に後続する第2の命令を解読する命令解読手段と、前記
    命令解読手段が前記第2の命令を解読している間に前記
    第2の命令に後続する第3の命令を読出す命令先読み手
    段と、前記命令実行手段で実行する第4の命令に後続
    し、汎用レジスタの内容と汎用レジスタの内容もしくは
    即値との比較を行なう第5の命令と前記第5の命令に後
    続する第6の命令とを実行する場合に、前記第6の命令
    のアドレスもしくは前記第6の命令の命令コードとこの
    命令コードに続く命令を前記命令先読み手段により読出
    すためのアドレスおよび前記第5の命令で比較する汎用
    レジスタを指定する情報もしくは比較する即値および前
    記第4の命令のアドレスもしくは前記第4の命令より前
    に実行されるべき命令のアドレスを格納する履歴格納手
    段と、前記命令解読手段が前記第4の命令もしくは前記
    第4の命令より前に実行されるべき命令を解読している
    間に解読する命令のアドレスにより前記履歴格納手段を
    検索し前記命令のアドレスが前記履歴格納手段に格納さ
    れている場合は、前記命令先読み手段に対して前記第6
    の命令のアドレスを出力するか、もしくは前記命令解読
    手段に対して前記第6の命令の命令コードを、前記命令
    先読み手段に対して前記第6の命令に続く命令を読出す
    ためのアドレスを出力する比較命令除去手段と、前記命
    令実行手段が前記第6の命令を実行している間に、前記
    履歴格納手段に格納されている前記第5の命令で比較す
    る汎用レジスタを指定する情報もしくは比較する即値を
    用いて比較を行なう比較手段とを備え、前記比較命令除
    去手段における検索が成功した場合には前記命令実行手
    段が前記第4の命令を実行後、続いて前記第6の命令を
    実行することを特徴としたデータ処理装置。
  4. 【請求項4】第1の命令を実行する少なくとも汎用レジ
    スタと演算器から成る命令実行手段と、前記命令実行手
    段が前記第1の命令を実行している間に前記第1の命令
    に後続する第2の命令を解読する命令解読手段と、前記
    命令解読手段が前記第2の命令を解読している間に前記
    第2の命令に後続する第3の命令を読出す命令先読み手
    段と、前記命令実行手段で実行する第4の命令に後続
    し、汎用レジスタの内容と汎用レジスタの内容もしくは
    即値との比較を行なう第5の命令と前記第5の命令に後
    続し前記第5の命令の実行結果に基づいて分岐を行なう
    第6の命令とを実行した結果、前記第6の命令に連続す
    る第7の命令を前記命令実行手段が実行する場合(分岐
    不成立の場合)には前記第7の命令のアドレスもしくは
    前記第7の命令の命令コードとこの命令コードに続く命
    令を前記命令先読み手段により読出すためのアドレスお
    よび前記第5の命令で比較する汎用レジスタを指定する
    情報もしくは比較する即値および前記第6の命令で分岐
    を判定する条件コードおよび前記第4の命令のアドレス
    もしくは前記第4の命令より前に実行されるべき命令の
    アドレスを格納し、また前記第6の命令に連続しない第
    8の命令を前記命令実行手段が実行する場合(分岐成立
    の場合)には前記第8の命令のアドレスもしくは前記第
    8の命令コードとこの命令コードに続く命令を前記命令
    先読み手段により読出すためのアドレスおよび前記第5
    の命令で比較する汎用レジスタを指定する情報もしくは
    比較する即値および前記第6の命令で分岐を判定する条
    件コードおよび前記第4の命令のアドレスもしくは前記
    第4の命令より前に実行されるべき命令のアドレスを格
    納する履歴格納手段と、前記命令解読手段が前記第4の
    命令もしくは前記第4の命令より前に実行されるべき命
    令を解読している間に解読する命令のアドレスにより前
    記履歴格納手段を検索し前記命令のアドレスが前記履歴
    格納手段に格納されている場合は、前記命令先読み手段
    に対して前記第7の命令のアドレスまたは前記第8の命
    令のアドレスを出力するか、もしくは前記命令解読手段
    に対して前記第7の命令の命令コードまたは前記第8の
    命令の命令コードを、前記命令先読み手段に対して前記
    第7の命令または前記第8の命令に続く命令を読出すた
    めのアドレスを出力する分岐予測手段と、前記命令実行
    手段が前記第7の命令または前記第8の命令を実行して
    いる間に、前記履歴格納手段に格納されている前記第5
    の命令で比較する汎用レジスタを指定する情報もしくは
    比較する即値を用いて比較し、比較結果と前記履歴格納
    手段に格納されている前記第6の命令で分岐を判定する
    条件コードとに基づいて前記命令実行手段が現在実行し
    ている命令が前記第4の命令に続いて実行すべき命令で
    あることを検証する分岐検証手段とを備え、前記分岐予
    測手段の予測が正しい場合には前記命令実行手段が前記
    第4の命令を実行後、続いて前記第7の命令または前記
    第8の命令を実行することを特徴としたデータ処理装
    置。
JP63322631A 1988-12-21 1988-12-21 データ処理装置 Expired - Lifetime JPH0769811B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP63322631A JPH0769811B2 (ja) 1988-12-21 1988-12-21 データ処理装置
US07/451,252 US5237666A (en) 1988-12-21 1989-12-15 Apparatus using address of a predetermined preceding instruction and target instruction address stored in history table to prefetch target instruction
EP89313289A EP0375364B1 (en) 1988-12-21 1989-12-19 Data processor with zero execution clock count for conditional branch instruction
DE68928374T DE68928374T2 (de) 1988-12-21 1989-12-19 Datenprozessor mit Null-Ausführungszyklus für einen bedingten Sprung-Befehl
KR1019890019110A KR920006744B1 (ko) 1988-12-21 1989-12-21 분기명령 및 비교명령의 한편 또는 양편의 실행클록수를 영으로 하는 데이터처리장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP63322631A JPH0769811B2 (ja) 1988-12-21 1988-12-21 データ処理装置

Publications (2)

Publication Number Publication Date
JPH02166520A JPH02166520A (ja) 1990-06-27
JPH0769811B2 true JPH0769811B2 (ja) 1995-07-31

Family

ID=18145869

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63322631A Expired - Lifetime JPH0769811B2 (ja) 1988-12-21 1988-12-21 データ処理装置

Country Status (5)

Country Link
US (1) US5237666A (ja)
EP (1) EP0375364B1 (ja)
JP (1) JPH0769811B2 (ja)
KR (1) KR920006744B1 (ja)
DE (1) DE68928374T2 (ja)

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5226130A (en) * 1990-02-26 1993-07-06 Nexgen Microsystems Method and apparatus for store-into-instruction-stream detection and maintaining branch prediction cache consistency
US5230068A (en) * 1990-02-26 1993-07-20 Nexgen Microsystems Cache memory system for dynamically altering single cache memory line as either branch target entry or pre-fetch instruction queue based upon instruction sequence
US5303356A (en) * 1990-05-04 1994-04-12 International Business Machines Corporation System for issuing instructions for parallel execution subsequent to branch into a group of member instructions with compoundability in dictation tag
JPH0460720A (ja) * 1990-06-29 1992-02-26 Hitachi Ltd 条件分岐命令制御方式
US5287467A (en) * 1991-04-18 1994-02-15 International Business Machines Corporation Pipeline for removing and concurrently executing two or more branch instructions in synchronization with other instructions executing in the execution unit
US5539911A (en) * 1991-07-08 1996-07-23 Seiko Epson Corporation High-performance, superscalar-based computer system with out-of-order instruction execution
US5493687A (en) 1991-07-08 1996-02-20 Seiko Epson Corporation RISC microprocessor architecture implementing multiple typed register sets
JP3182438B2 (ja) * 1991-10-28 2001-07-03 株式会社日立製作所 データプロセッサ
US5434986A (en) * 1992-01-09 1995-07-18 Unisys Corporation Interdependency control of pipelined instruction processor using comparing result of two index registers of skip instruction and next sequential instruction
JP2761688B2 (ja) * 1992-02-07 1998-06-04 三菱電機株式会社 データ処理装置
US5507028A (en) * 1992-03-30 1996-04-09 International Business Machines Corporation History based branch prediction accessed via a history based earlier instruction address
DE69311330T2 (de) 1992-03-31 1997-09-25 Seiko Epson Corp Befehlsablauffolgeplanung von einem risc-superskalarprozessor
WO1993022722A1 (en) 1992-05-01 1993-11-11 Seiko Epson Corporation A system and method for retiring instructions in a superscalar microprocessor
US5784604A (en) * 1992-10-09 1998-07-21 International Business Machines Corporation Method and system for reduced run-time delay during conditional branch execution in pipelined processor systems utilizing selectively delayed sequential instruction purging
US5628021A (en) 1992-12-31 1997-05-06 Seiko Epson Corporation System and method for assigning tags to control instruction processing in a superscalar processor
JP3531166B2 (ja) 1992-12-31 2004-05-24 セイコーエプソン株式会社 レジスタ・リネーミングのシステム及び方法
US5577217A (en) * 1993-05-14 1996-11-19 Intel Corporation Method and apparatus for a branch target buffer with shared branch pattern tables for associated branch predictions
GB2285154B (en) * 1993-12-24 1998-04-01 Advanced Risc Mach Ltd Branch cache
US5666505A (en) * 1994-03-11 1997-09-09 Advanced Micro Devices, Inc. Heuristic prefetch mechanism and method for computer system
US5790845A (en) * 1995-02-24 1998-08-04 Hitachi, Ltd. System with reservation instruction execution to store branch target address for use upon reaching the branch point
US6052801A (en) * 1995-05-10 2000-04-18 Intel Corporation Method and apparatus for providing breakpoints on a selectable address range
US5659679A (en) * 1995-05-30 1997-08-19 Intel Corporation Method and apparatus for providing breakpoints on taken jumps and for providing software profiling in a computer system
US5740413A (en) * 1995-06-19 1998-04-14 Intel Corporation Method and apparatus for providing address breakpoints, branch breakpoints, and single stepping
US5621886A (en) * 1995-06-19 1997-04-15 Intel Corporation Method and apparatus for providing efficient software debugging
US5694568A (en) * 1995-07-27 1997-12-02 Board Of Trustees Of The University Of Illinois Prefetch system applicable to complex memory access schemes
US5742805A (en) * 1996-02-15 1998-04-21 Fujitsu Ltd. Method and apparatus for a single history register based branch predictor in a superscalar microprocessor
US5919256A (en) * 1996-03-26 1999-07-06 Advanced Micro Devices, Inc. Operand cache addressed by the instruction address for reducing latency of read instruction
US5991874A (en) * 1996-06-06 1999-11-23 Intel Corporation Conditional move using a compare instruction generating a condition field
US5867699A (en) * 1996-07-25 1999-02-02 Unisys Corporation Instruction flow control for an instruction processor
US6427192B1 (en) * 1998-09-21 2002-07-30 Advanced Micro Devices, Inc. Method and apparatus for caching victimized branch predictions
JP4060506B2 (ja) * 1999-12-28 2008-03-12 株式会社東芝 ディスク制御装置
US6965983B2 (en) * 2003-02-16 2005-11-15 Faraday Technology Corp. Simultaneously setting prefetch address and fetch address pipelined stages upon branch
ATE491986T1 (de) * 2003-07-09 2011-01-15 Nxp Bv Verfahren und system zur zweigprädiktion
US7234046B2 (en) * 2004-12-01 2007-06-19 Faraday Technology Corp. Branch prediction using precedent instruction address of relative offset determined based on branch type and enabling skipping
US20070294518A1 (en) * 2006-06-14 2007-12-20 Shen-Chang Wang System and method for predicting target address of branch instruction utilizing branch target buffer having entry indexed according to program counter value of previous instruction
US9069547B2 (en) 2006-09-22 2015-06-30 Intel Corporation Instruction and logic for processing text strings
GB2458295B (en) * 2008-03-12 2012-01-11 Advanced Risc Mach Ltd Cache accessing using a micro tag
US9654483B1 (en) * 2014-12-23 2017-05-16 Amazon Technologies, Inc. Network communication rate limiter
US9438412B2 (en) * 2014-12-23 2016-09-06 Palo Alto Research Center Incorporated Computer-implemented system and method for multi-party data function computing using discriminative dimensionality-reducing mappings
US9569613B2 (en) * 2014-12-23 2017-02-14 Intel Corporation Techniques for enforcing control flow integrity using binary translation
US10664280B2 (en) * 2015-11-09 2020-05-26 MIPS Tech, LLC Fetch ahead branch target buffer

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4062058A (en) * 1976-02-13 1977-12-06 The United States Of America As Represented By The Secretary Of The Navy Next address subprocessor
JPS5860355A (ja) * 1981-10-07 1983-04-09 Nec Corp 情報処理装置
JPS58123141A (ja) * 1982-01-19 1983-07-22 Nec Corp 高速計数分岐実行方式
DE3382350D1 (de) * 1982-11-17 1991-08-29 Nec Corp Anordnung zum vorabholen von befehlen mit vorhersage einer verzweigungszieladresse.
JP2508021B2 (ja) * 1986-10-01 1996-06-19 三菱電機株式会社 デ−タ処理装置
JP2603626B2 (ja) * 1987-01-16 1997-04-23 三菱電機株式会社 データ処理装置
GB8728493D0 (en) * 1987-12-05 1988-01-13 Int Computers Ltd Jump prediction

Also Published As

Publication number Publication date
DE68928374T2 (de) 1998-03-19
EP0375364B1 (en) 1997-10-08
JPH02166520A (ja) 1990-06-27
KR900010553A (ko) 1990-07-07
EP0375364A2 (en) 1990-06-27
EP0375364A3 (en) 1992-06-10
KR920006744B1 (ko) 1992-08-17
DE68928374D1 (de) 1997-11-13
US5237666A (en) 1993-08-17

Similar Documents

Publication Publication Date Title
JPH0769811B2 (ja) データ処理装置
JP2603626B2 (ja) データ処理装置
JPH0789319B2 (ja) デ−タ処理装置における先行制御装置
JPH06110683A (ja) マイクロプロセッサの拡張ブランチターゲット方法及びその装置
JPH0557616B2 (ja)
JP2526017B2 (ja) ランタイム遅延削減方法及びデ―タ処理システム
JPH03129432A (ja) 分岐制御回路
JPH09330221A (ja) マイクロプロセッサにおける早期例外を追跡するシステム及び方法
JP2723238B2 (ja) 情報処理装置
JP3843048B2 (ja) 分岐予測機構を有する情報処理装置
JPH07306785A (ja) 分岐命令実行機能を持つプロセッサおよび分岐命令制御方法
JP4728877B2 (ja) マイクロプロセッサおよびパイプライン制御方法
JP2508021B2 (ja) デ−タ処理装置
JP3471691B2 (ja) マイクロ命令における分岐命令制御方式
JP3102846B2 (ja) ロードアドレスキャッシュ装置及び方法
JP3967363B2 (ja) 分岐予測装置および分岐予測方法
JP3851235B2 (ja) 分岐予測装置および分岐予測方法
JP2878526B2 (ja) プリフェッチ制御方式
JPS60198640A (ja) パイプライン型情報処理装置
JP2559416B2 (ja) 情報処理装置
JP4113227B2 (ja) 分岐予測機構を有する情報処理装置
JPH06168120A (ja) 命令先取り装置
JPH0235525A (ja) 命令フェッチ制御方法
JPH05313894A (ja) 情報処理装置
JPH0481218B2 (ja)

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20070731

Year of fee payment: 12

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080731

Year of fee payment: 13

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090731

Year of fee payment: 14

EXPY Cancellation because of completion of term
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090731

Year of fee payment: 14