JPH02166520A - データ処理装置 - Google Patents
データ処理装置Info
- Publication number
- JPH02166520A JPH02166520A JP63322631A JP32263188A JPH02166520A JP H02166520 A JPH02166520 A JP H02166520A JP 63322631 A JP63322631 A JP 63322631A JP 32263188 A JP32263188 A JP 32263188A JP H02166520 A JPH02166520 A JP H02166520A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- address
- branch
- decoding
- executed
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30021—Compare instructions, e.g. Greater-Than, Equal-To, MINMAX
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3804—Instruction prefetching for branches, e.g. hedging, branch folding
- G06F9/3806—Instruction prefetching for branches, e.g. hedging, branch folding using address prediction, e.g. return stack, branch history buffer
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3842—Speculative instruction execution
- G06F9/3844—Speculative instruction execution using dynamic branch prediction, e.g. using branch history tables
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Debugging And Monitoring (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
産業上の利用分野
本発明は、コンピュータの処理の高速化を目的としたデ
ータ処理装置に関するものである。
ータ処理装置に関するものである。
従来の技術
従来のデータ処理装置としては、例えば特開昭63−8
8643号公報に示されている。
8643号公報に示されている。
第13図はこの従来のデータ処理装置の構成図を示すも
のであり、11は命令コードの先読みを行なう命令先読
み装置、12は命令先読み装置11により先読みされた
命令コードの解読を行なう命令解読装置、13は命令解
読装置12から得られる制御情報に従って命令の実行を
行なう命令実行装置、14は分岐命令実行時に分岐先の
命令コードとそのアドレスを格納する履歴格納装置、1
5は分岐命令の実行に先立って履歴格納装置14から分
岐先の命令コードと分岐先アドレスを取出してそれぞれ
命令解読装置12と命令先読み装置11に出力する分岐
予測装置、16は分岐予測装置15が出力する分岐先ア
ドレスと分岐命令の次に実行されるべき命令のアドレス
とを比較する比較装置、17はメモリ・Iloなどを接
続する入出力バス、18は命令先読み装置11および命
令実行装置13からのデータ入出力要求を調停し入出力
バス17の制御を行なうバス制御装置である。
のであり、11は命令コードの先読みを行なう命令先読
み装置、12は命令先読み装置11により先読みされた
命令コードの解読を行なう命令解読装置、13は命令解
読装置12から得られる制御情報に従って命令の実行を
行なう命令実行装置、14は分岐命令実行時に分岐先の
命令コードとそのアドレスを格納する履歴格納装置、1
5は分岐命令の実行に先立って履歴格納装置14から分
岐先の命令コードと分岐先アドレスを取出してそれぞれ
命令解読装置12と命令先読み装置11に出力する分岐
予測装置、16は分岐予測装置15が出力する分岐先ア
ドレスと分岐命令の次に実行されるべき命令のアドレス
とを比較する比較装置、17はメモリ・Iloなどを接
続する入出力バス、18は命令先読み装置11および命
令実行装置13からのデータ入出力要求を調停し入出力
バス17の制御を行なうバス制御装置である。
第14図は第13図に示す履歴格納装置14の構成図を
示すものであり、141は分岐命令の直前に実行された
命令のアドレスを格納するアドレスタグ部、142は分
岐命令の分岐先アドレスから始まる一定長の命令コード
を格納する分岐先命令部、143は分岐命令の分岐先ア
ドレスを格納する分岐先アドレス部、144はエントリ
のデータが有効であることを示す有効ビットである。
示すものであり、141は分岐命令の直前に実行された
命令のアドレスを格納するアドレスタグ部、142は分
岐命令の分岐先アドレスから始まる一定長の命令コード
を格納する分岐先命令部、143は分岐命令の分岐先ア
ドレスを格納する分岐先アドレス部、144はエントリ
のデータが有効であることを示す有効ビットである。
以上のように構成された従来のデータ処理装置において
は、分岐命令は初めて実行されるとき、命令解読装置1
2で解読されたのち命令実行装置13において実行され
、分岐が成立した場合は命令実行装置13で計算された
分岐先アドレスが命令先読み装置11に渡され新たに分
岐先の命令コードが読出される。このとき履歴格納装置
14は、命令実行装置13に保持している分岐命令の直
前に実行した命令のアドレスをアドレスタグ部141に
、命令実行装置13で計算した分岐先のアドレスを分岐
先アドレス部143に、読出された分岐先の命令コード
を分岐先命令部142に、それぞれ同一のエントリに格
納し、有効ビット144をエントリのデータが有効であ
ることを示す” 1”にセットする。次に再び同一の分
岐命令が実行されるとする。命令解読装置12がこの分
岐命令の直前の命令を解読すると同時に分岐予測装置1
5は解読中の命令のアドレスで履歴格納装置14を検索
する。このとき、そのアドレスがアドレスタグ部141
にヒツトし、分岐予測装置15は分岐命令の実行を待た
ずに分岐の成立を予測し、分岐先の命令コードと分岐先
アドレスをそれぞれ分岐先命令f15142と分岐先ア
ドレス部143から取出して命令解読装置12と命令先
読み装置11に送出する。命令解読装R12は分岐命令
の解読終了後直ちに分岐予測装置15から受取った分岐
先の命令コードの解読を開始し、命令先読み装置11は
それまでに先読みされた命令をリセットするとともに分
岐予測装置15から受取った分岐先アドレスに対して分
岐先命令部142の語長分だけ先のアドレスから命令の
先読みを行なう。前記の分岐命令が命令実行装置13に
おいて実行され分岐命令の次に実行されるべき命令のア
ドレスが決定すると、比較装置16はそのアドレスと分
岐予測装置15が出力する分岐先アドレスとを比較し、
分岐予測の真偽を検証する。比較結果が不一致の場合に
は有効ビット144をIQSにリセットシ、比較装置1
6からの信号により、命令解読装置12は解読中の命令
をキャンセルし、命令先読み装置11は先読みした命令
をキャンセルするとともに命令実行装置13において決
定された分岐命令の次に実行されるべき命令のアドレス
により新たに命令の先読みを行なう。過去において同一
分岐命令の分岐が成立した場合、次回も分岐が成立する
可能性は高く、このような場合、命令実行装置13は分
岐命令の実行に続いて分岐先命令を待ち時間なしで実行
することができる。
は、分岐命令は初めて実行されるとき、命令解読装置1
2で解読されたのち命令実行装置13において実行され
、分岐が成立した場合は命令実行装置13で計算された
分岐先アドレスが命令先読み装置11に渡され新たに分
岐先の命令コードが読出される。このとき履歴格納装置
14は、命令実行装置13に保持している分岐命令の直
前に実行した命令のアドレスをアドレスタグ部141に
、命令実行装置13で計算した分岐先のアドレスを分岐
先アドレス部143に、読出された分岐先の命令コード
を分岐先命令部142に、それぞれ同一のエントリに格
納し、有効ビット144をエントリのデータが有効であ
ることを示す” 1”にセットする。次に再び同一の分
岐命令が実行されるとする。命令解読装置12がこの分
岐命令の直前の命令を解読すると同時に分岐予測装置1
5は解読中の命令のアドレスで履歴格納装置14を検索
する。このとき、そのアドレスがアドレスタグ部141
にヒツトし、分岐予測装置15は分岐命令の実行を待た
ずに分岐の成立を予測し、分岐先の命令コードと分岐先
アドレスをそれぞれ分岐先命令f15142と分岐先ア
ドレス部143から取出して命令解読装置12と命令先
読み装置11に送出する。命令解読装R12は分岐命令
の解読終了後直ちに分岐予測装置15から受取った分岐
先の命令コードの解読を開始し、命令先読み装置11は
それまでに先読みされた命令をリセットするとともに分
岐予測装置15から受取った分岐先アドレスに対して分
岐先命令部142の語長分だけ先のアドレスから命令の
先読みを行なう。前記の分岐命令が命令実行装置13に
おいて実行され分岐命令の次に実行されるべき命令のア
ドレスが決定すると、比較装置16はそのアドレスと分
岐予測装置15が出力する分岐先アドレスとを比較し、
分岐予測の真偽を検証する。比較結果が不一致の場合に
は有効ビット144をIQSにリセットシ、比較装置1
6からの信号により、命令解読装置12は解読中の命令
をキャンセルし、命令先読み装置11は先読みした命令
をキャンセルするとともに命令実行装置13において決
定された分岐命令の次に実行されるべき命令のアドレス
により新たに命令の先読みを行なう。過去において同一
分岐命令の分岐が成立した場合、次回も分岐が成立する
可能性は高く、このような場合、命令実行装置13は分
岐命令の実行に続いて分岐先命令を待ち時間なしで実行
することができる。
発明が解決しようとする課題
しかしながら上記のような構成では、命令解読装置12
で分岐命令を解読し、命令実行装置13で分岐命令の次
に実行すべき命令のアドレスを決定する必要があるため
、分岐予測装置15での予測が正しくても分岐命令の実
行うロック数を零にすることができないという問題点を
有していた。
で分岐命令を解読し、命令実行装置13で分岐命令の次
に実行すべき命令のアドレスを決定する必要があるため
、分岐予測装置15での予測が正しくても分岐命令の実
行うロック数を零にすることができないという問題点を
有していた。
また上記のような構成では、比較命令も命令実行装置1
3で実行されるため、分岐命令に極めて高い確率で前置
する比較命令の実行うロック数は分岐予測装置15での
予測の真偽にかかわらず存在するという問題点を有して
いた。
3で実行されるため、分岐命令に極めて高い確率で前置
する比較命令の実行うロック数は分岐予測装置15での
予測の真偽にかかわらず存在するという問題点を有して
いた。
請求項1記載の発明はかかる点に鑑み、過去に実行した
無条件分岐命令を再度実行する場合の無条件分岐命令の
実行うロック数が零になるデータ処理装置を提供するこ
とを特徴とする 請求項2記載の発明は、分岐成立・分岐不成立の予測が
正しい場合の分岐命令の実行うロック数が零になるデー
タ処理装置を提供することを特徴とする 請求項3記載の発明はかかる点に鑑み、過去に実行した
比較命令を再度実行する場合の比較命令の実行うロック
数が零になるデータ処理装置を提供することを特徴とす
る 請求項4記載の発明はかかる点に鑑み、分岐成立・分岐
不成立の予測が正しい場合の分岐命令と分岐命令に前置
する比較命令の実行うロック数がともに零になるデータ
処理装置を提供することを目的とする。
無条件分岐命令を再度実行する場合の無条件分岐命令の
実行うロック数が零になるデータ処理装置を提供するこ
とを特徴とする 請求項2記載の発明は、分岐成立・分岐不成立の予測が
正しい場合の分岐命令の実行うロック数が零になるデー
タ処理装置を提供することを特徴とする 請求項3記載の発明はかかる点に鑑み、過去に実行した
比較命令を再度実行する場合の比較命令の実行うロック
数が零になるデータ処理装置を提供することを特徴とす
る 請求項4記載の発明はかかる点に鑑み、分岐成立・分岐
不成立の予測が正しい場合の分岐命令と分岐命令に前置
する比較命令の実行うロック数がともに零になるデータ
処理装置を提供することを目的とする。
課題を解決するための手段
請求項1記載の本発明は、無条件分岐命令より前に実行
した命令のアドレスをアドレスタグとして、無条件分岐
命令の次に実行されるべき命令のアドレスもしくは無条
件分岐命令の次に実行されるべき命令の命令コードとこ
の命令コードに続く命令を読出すためのアドレスを格納
した履歴格納手段と、無条件分岐命令より前の命令が解
読されている間に前記履歴格納手段から無条件分岐命令
の次に実行されるべき命令を取出す先行分岐手段とを備
えたデータ処理装置である。
した命令のアドレスをアドレスタグとして、無条件分岐
命令の次に実行されるべき命令のアドレスもしくは無条
件分岐命令の次に実行されるべき命令の命令コードとこ
の命令コードに続く命令を読出すためのアドレスを格納
した履歴格納手段と、無条件分岐命令より前の命令が解
読されている間に前記履歴格納手段から無条件分岐命令
の次に実行されるべき命令を取出す先行分岐手段とを備
えたデータ処理装置である。
請求項2記載の発明は、分岐命令より前に実行した命令
のアドレスをアドレスタグとして、分岐命令の次に実行
されるべき命令のアドレスもしくは分岐命令の次に実行
されるべき命令の命令コードとこの命令コードに続く命
令を読出すためのアドレスおよび分岐命令で分岐を判定
する条件コードを格納した履歴格納手段と、分岐命令よ
り前の命令が解読されている間に前記履歴格納手段によ
り分岐命令の次に実行されるべき命令を予測する分岐子
91手段と、分岐命令の次に実行されると予測された命
令の実行と並列に、前記履歴格納手段に格納されている
分岐を判定する条件コードに基づいて予測の真偽を検証
する分岐検証手段とを備えたデータ処理装置である。
のアドレスをアドレスタグとして、分岐命令の次に実行
されるべき命令のアドレスもしくは分岐命令の次に実行
されるべき命令の命令コードとこの命令コードに続く命
令を読出すためのアドレスおよび分岐命令で分岐を判定
する条件コードを格納した履歴格納手段と、分岐命令よ
り前の命令が解読されている間に前記履歴格納手段によ
り分岐命令の次に実行されるべき命令を予測する分岐子
91手段と、分岐命令の次に実行されると予測された命
令の実行と並列に、前記履歴格納手段に格納されている
分岐を判定する条件コードに基づいて予測の真偽を検証
する分岐検証手段とを備えたデータ処理装置である。
請求項3記載の発明は、比較命令より前に実行した命令
のアドレスをアドレスタグとして、比較命令に続く命令
のアドレスもしくは比較命令に続く命令の命令コードと
この命令コードに続く命令を読出すためのアドレスおよ
び比較命令で比較する汎用レジスタを指定する情報もし
くは比較する即値を格納した履歴格納手段と、比較命令
より前の命令が解読されている間に前記履歴格納手段か
ら比較命令に続く命令を取出す比較命令除去手段と、比
較命令に続く命令の実行と並列に、前記履歴格納手段に
格納されている比較する汎用レジスタを指定する情報も
しくは比較する即値を用いて比較を行なう比較手段とを
備えたデータ処理装置である。
のアドレスをアドレスタグとして、比較命令に続く命令
のアドレスもしくは比較命令に続く命令の命令コードと
この命令コードに続く命令を読出すためのアドレスおよ
び比較命令で比較する汎用レジスタを指定する情報もし
くは比較する即値を格納した履歴格納手段と、比較命令
より前の命令が解読されている間に前記履歴格納手段か
ら比較命令に続く命令を取出す比較命令除去手段と、比
較命令に続く命令の実行と並列に、前記履歴格納手段に
格納されている比較する汎用レジスタを指定する情報も
しくは比較する即値を用いて比較を行なう比較手段とを
備えたデータ処理装置である。
請求項4記載の発明は、比較命令より前に実行した命令
のアドレスをアドレスタグとして、分岐命令の次に実行
されるべき命令のアドレスもしくは分岐命令の次に実行
されるべき命令の命令コードとこの命令コードに続く命
令を読出すためのアドレスおよび比較命令で比較する汎
用レジスタを指定する情報もしくは比較する即値および
分岐命令で分岐を判定する条件コードを格納した履歴格
納手段と、比較命令より前の命令が解読されている間に
前記履歴格納手段により分岐命令の次に実行されるべき
命令を予測する分岐予測手段と、分岐命令の次に実行さ
れると予測された命令の実行と並列に、前記履歴格納手
段に格納されている比較する汎用レジスタを指定する情
報もしくは比較する即値を用いて比較し、比較結果と前
記履歴格納手段に格納されている分岐を判定する条件コ
ードとに基づいて予測の真偽を検証する分岐検証手段と
を備えたデータ処理装置である。
のアドレスをアドレスタグとして、分岐命令の次に実行
されるべき命令のアドレスもしくは分岐命令の次に実行
されるべき命令の命令コードとこの命令コードに続く命
令を読出すためのアドレスおよび比較命令で比較する汎
用レジスタを指定する情報もしくは比較する即値および
分岐命令で分岐を判定する条件コードを格納した履歴格
納手段と、比較命令より前の命令が解読されている間に
前記履歴格納手段により分岐命令の次に実行されるべき
命令を予測する分岐予測手段と、分岐命令の次に実行さ
れると予測された命令の実行と並列に、前記履歴格納手
段に格納されている比較する汎用レジスタを指定する情
報もしくは比較する即値を用いて比較し、比較結果と前
記履歴格納手段に格納されている分岐を判定する条件コ
ードとに基づいて予測の真偽を検証する分岐検証手段と
を備えたデータ処理装置である。
作 」
請求項1記載の発明は前記した構成により、無条件分岐
命令が出現する場合に、無条件分岐命令より前の命令が
解読されている時にその命令のアドレスが履歴格納手段
のアドレスタグにヒツトすると、先行分岐手段は無条件
分岐命令の次に実行されるべき命令のアドレスもしくは
無条件分岐命令の次に実行されるべき命令の命令コード
とこの命令コードに続く命令を読出すためのアドレスを
出力する。その後、無条件分岐命令の解読ならびに実行
を行なわずに、無条件分岐命令の直前の命令に続いて無
条件分岐命令の次に実行されるべき命令を解読・実行す
ることにより、過去に実行した無条件分岐命令を再度実
行する場合の無条件分岐命令の実行うロック数を特徴す
る 請求項2記載の発明は前記した構成により、前置する命
令の実行結果により分岐を行なう分岐命令が出現する場
合に、分岐命令より前の命令が解読されている時にその
命令のアドレスが履歴格納手段のアドレスタグにヒツト
すると、分岐予測手段は分岐命令の次に実行されるべき
命令のアドレスもしくは分岐命令の次に実行されるべき
命令の命令コードとこの命令コードに続く命令を読出す
ためのアドレスを出力し分岐命令の次に実行されるべき
命令の予測を行なう。その後、分岐命令の解読ならびに
実行を行なわずに、分岐命令の直前の命令に続いて分岐
命令の次に実行されると予測された命令を解読・実行し
、分岐検証手段が予測の真偽の検証を分岐命令の次に実
行されると予測された命令の実行と並列に行なうことに
より予測が真の場合の分岐命令の実行うロック数を特徴
する 請求項3記載の発明は前記した構成により、比較命令が
出現する場合に、比較命令より前の命令が解読されてい
る時にその命令のアドレスが履歴格納手段のアドレスタ
グにヒツトすると、比較命令除去手段は比較命令に続く
命令のアドレスもしくは比較命令に続く命令の命令コー
ドとこの命令コードに続(命令を読出すためのアドレス
を出力する。その後、比較命令の解読ならびに実行を行
なわずに、比較命令の直前の命令に続いて比較命令に続
く命令を解読・実行し、比較手段が比較命令に続(命令
の実行と並列に比較を行なうことにより過去に実行した
比較命令を再度実行する場合の比較命令の実行うロック
数を特徴する請求項4記載の発明は前記した構成により
、比較命令と比較結果により分岐を行なう分岐命令が連
続する場合に、比較命令より前の命令が解読されている
時にその命令のアドレスが履歴格納手段のアドレスタグ
にヒツトすると、分岐予測手段は分岐命令の次に実行さ
れるべき命令のアドレスもしくは分岐命令の次に実行さ
れるべき命令の命令コードとこの命令コードに続く命令
を読出すためのアドレスを出力し、分岐命令の次に実行
されるべき命令の予測を行なう。その後、比較命令およ
び分岐命令の解読ならびに実行を行なわずに、比較命令
の直前の命令に続いて分岐命令の次に実行されると予測
された命令を解読・実行し、分岐検証手段が予測の真偽
の検証を分岐命令の次に実行されると予測された命令の
実行と並列に行なうことにより予測が真の場合の分岐命
令と分岐命令に前置する比較命令の実行うロック数をと
もに零にする。
命令が出現する場合に、無条件分岐命令より前の命令が
解読されている時にその命令のアドレスが履歴格納手段
のアドレスタグにヒツトすると、先行分岐手段は無条件
分岐命令の次に実行されるべき命令のアドレスもしくは
無条件分岐命令の次に実行されるべき命令の命令コード
とこの命令コードに続く命令を読出すためのアドレスを
出力する。その後、無条件分岐命令の解読ならびに実行
を行なわずに、無条件分岐命令の直前の命令に続いて無
条件分岐命令の次に実行されるべき命令を解読・実行す
ることにより、過去に実行した無条件分岐命令を再度実
行する場合の無条件分岐命令の実行うロック数を特徴す
る 請求項2記載の発明は前記した構成により、前置する命
令の実行結果により分岐を行なう分岐命令が出現する場
合に、分岐命令より前の命令が解読されている時にその
命令のアドレスが履歴格納手段のアドレスタグにヒツト
すると、分岐予測手段は分岐命令の次に実行されるべき
命令のアドレスもしくは分岐命令の次に実行されるべき
命令の命令コードとこの命令コードに続く命令を読出す
ためのアドレスを出力し分岐命令の次に実行されるべき
命令の予測を行なう。その後、分岐命令の解読ならびに
実行を行なわずに、分岐命令の直前の命令に続いて分岐
命令の次に実行されると予測された命令を解読・実行し
、分岐検証手段が予測の真偽の検証を分岐命令の次に実
行されると予測された命令の実行と並列に行なうことに
より予測が真の場合の分岐命令の実行うロック数を特徴
する 請求項3記載の発明は前記した構成により、比較命令が
出現する場合に、比較命令より前の命令が解読されてい
る時にその命令のアドレスが履歴格納手段のアドレスタ
グにヒツトすると、比較命令除去手段は比較命令に続く
命令のアドレスもしくは比較命令に続く命令の命令コー
ドとこの命令コードに続(命令を読出すためのアドレス
を出力する。その後、比較命令の解読ならびに実行を行
なわずに、比較命令の直前の命令に続いて比較命令に続
く命令を解読・実行し、比較手段が比較命令に続(命令
の実行と並列に比較を行なうことにより過去に実行した
比較命令を再度実行する場合の比較命令の実行うロック
数を特徴する請求項4記載の発明は前記した構成により
、比較命令と比較結果により分岐を行なう分岐命令が連
続する場合に、比較命令より前の命令が解読されている
時にその命令のアドレスが履歴格納手段のアドレスタグ
にヒツトすると、分岐予測手段は分岐命令の次に実行さ
れるべき命令のアドレスもしくは分岐命令の次に実行さ
れるべき命令の命令コードとこの命令コードに続く命令
を読出すためのアドレスを出力し、分岐命令の次に実行
されるべき命令の予測を行なう。その後、比較命令およ
び分岐命令の解読ならびに実行を行なわずに、比較命令
の直前の命令に続いて分岐命令の次に実行されると予測
された命令を解読・実行し、分岐検証手段が予測の真偽
の検証を分岐命令の次に実行されると予測された命令の
実行と並列に行なうことにより予測が真の場合の分岐命
令と分岐命令に前置する比較命令の実行うロック数をと
もに零にする。
実施例
第1図は本発明の第1の実施例におけるデータ処理装置
の構成図を示すものである。
の構成図を示すものである。
第1図において、1は命令コードの先読みを行なう命令
先読み装置、2は命令先読み装置1により先読みされた
命令コードの解読を行なう命令解読装置、3は命令解読
装置2から得られる制御情報に従うて命令の実行を行な
う命令実行装置、4aは無条件分岐命令実行時に無条件
分岐命令の分岐先の命令コードと分岐先アドレスを格納
する履歴格納装置、5aは無条件分岐命令の実行に先立
って履歴格納装置4aから無条件分岐命令の次に実行さ
れるべき命令の命令コードとそのアドレスを取出してそ
れぞれ命令解読装置2と命令先読み装置l!iに出力す
る先行分岐装置、7はメモリ・■10などを接続する入
出力バス、8は命令先読み装置1および命令実行装置3
からのデータ入出力要求を調停し入出カバスフの制御を
行なうパス制御装置である。第2図は第1図に示す履歴
格納装置4aの構成図を示すものであり、401aは無
条件分岐命令の直前に実行された命令のアドレスを格納
するアドレスタグ部、402aは無条件分岐命令の分岐
先アドレスから始まる一定長の命令コードを格納する分
岐先命令部、403aは無条件分岐命令の分岐先アドレ
スを格納する分岐先アドレス部5409aはエントリの
データが有効であることを示す有効ビットである。
先読み装置、2は命令先読み装置1により先読みされた
命令コードの解読を行なう命令解読装置、3は命令解読
装置2から得られる制御情報に従うて命令の実行を行な
う命令実行装置、4aは無条件分岐命令実行時に無条件
分岐命令の分岐先の命令コードと分岐先アドレスを格納
する履歴格納装置、5aは無条件分岐命令の実行に先立
って履歴格納装置4aから無条件分岐命令の次に実行さ
れるべき命令の命令コードとそのアドレスを取出してそ
れぞれ命令解読装置2と命令先読み装置l!iに出力す
る先行分岐装置、7はメモリ・■10などを接続する入
出力バス、8は命令先読み装置1および命令実行装置3
からのデータ入出力要求を調停し入出カバスフの制御を
行なうパス制御装置である。第2図は第1図に示す履歴
格納装置4aの構成図を示すものであり、401aは無
条件分岐命令の直前に実行された命令のアドレスを格納
するアドレスタグ部、402aは無条件分岐命令の分岐
先アドレスから始まる一定長の命令コードを格納する分
岐先命令部、403aは無条件分岐命令の分岐先アドレ
スを格納する分岐先アドレス部5409aはエントリの
データが有効であることを示す有効ビットである。
以上のように構成された第1の実施例のデータ処理装置
について、以下その動作を説明する。
について、以下その動作を説明する。
命令先読み装置1で先読みされた命令コードが命令解読
装置2で解読されると、同時に先行分岐装置5aは解読
中の命令のアドレスで履歴格納装置4aを検索する。命
令解読装置2で解読中の命令が無条件分岐命令の直前の
命令であっても、その命令が初めて実行される場合や実
行されてから他の命令によって履歴格納・装置4aのエ
ントリが書換えられた場合は履歴格納装置4aのアドレ
スタグ部401aはヒツトしない。アドレスタグ部40
1aがヒツトしないときはそのまま処理は続行され、命
令は命令解読装置2で解読されたのち命令実行装置3で
実行される。
装置2で解読されると、同時に先行分岐装置5aは解読
中の命令のアドレスで履歴格納装置4aを検索する。命
令解読装置2で解読中の命令が無条件分岐命令の直前の
命令であっても、その命令が初めて実行される場合や実
行されてから他の命令によって履歴格納・装置4aのエ
ントリが書換えられた場合は履歴格納装置4aのアドレ
スタグ部401aはヒツトしない。アドレスタグ部40
1aがヒツトしないときはそのまま処理は続行され、命
令は命令解読装置2で解読されたのち命令実行装置3で
実行される。
まず、アドレスタグ部401aがヒツトしないまま無条
件分岐命令が実行された場合を説明する。
件分岐命令が実行された場合を説明する。
無条件分岐命令が命令実行装置3で実行されるとき、命
令実行装置3は分岐先アドレスの計算を行ない、命令先
読み装置1はこのアドレスを受取って新たに分岐先の命
令コードを読出す。このとき履歴格納装置4aは、命令
実行装置3に保持している無条件分岐命令の直前に実行
した命令のアドレスをアドレスタグ部401aに、命令
先読み装置1で読出された分岐先の命令コードを分岐先
命令部402aに、命令実行装置3で計算した分岐先ア
ドレスを分岐先アドレス部403aに格納し、有効ビッ
ト409aをエントリのデータが有効であることを示す
11°にセットする。
令実行装置3は分岐先アドレスの計算を行ない、命令先
読み装置1はこのアドレスを受取って新たに分岐先の命
令コードを読出す。このとき履歴格納装置4aは、命令
実行装置3に保持している無条件分岐命令の直前に実行
した命令のアドレスをアドレスタグ部401aに、命令
先読み装置1で読出された分岐先の命令コードを分岐先
命令部402aに、命令実行装置3で計算した分岐先ア
ドレスを分岐先アドレス部403aに格納し、有効ビッ
ト409aをエントリのデータが有効であることを示す
11°にセットする。
次に、上で述べた動作のあと再び同一の無条件分岐命令
が実行される場合を説明する 命令解読装置2がこの無
条件分岐命令の直前の命令を解読すると同時に先行分岐
装置5aはこの命令のアドレスで履歴格納装置4aを検
索する。このとき、そのアドレスがアドレスタグ部40
1aにヒツトし、先行分岐H]5aは無条件分岐命令の
実行を待たずに過去の履歴により分岐先の命令コードと
分岐先アドレスをそれぞれ分岐先命令部402aと分岐
先アドレス部403aから取出して命令解読装置2と命
令先読み装置1に送出する。命令解読装置2は無条件分
岐命令の直前の命令の解読終了後直ちに先行分岐装置5
aから受取った分岐先の命令コードの解読を開始し、命
令先読み装置1はそれまでに先読みした命令をキャンセ
ルするとともに先行分岐装置5aから受取った分岐先ア
ドレスに対して分岐先命令部402aの語長骨だけ先の
アドレスから命令の先読みを行なう。以降はそのまま処
理を続行する。
が実行される場合を説明する 命令解読装置2がこの無
条件分岐命令の直前の命令を解読すると同時に先行分岐
装置5aはこの命令のアドレスで履歴格納装置4aを検
索する。このとき、そのアドレスがアドレスタグ部40
1aにヒツトし、先行分岐H]5aは無条件分岐命令の
実行を待たずに過去の履歴により分岐先の命令コードと
分岐先アドレスをそれぞれ分岐先命令部402aと分岐
先アドレス部403aから取出して命令解読装置2と命
令先読み装置1に送出する。命令解読装置2は無条件分
岐命令の直前の命令の解読終了後直ちに先行分岐装置5
aから受取った分岐先の命令コードの解読を開始し、命
令先読み装置1はそれまでに先読みした命令をキャンセ
ルするとともに先行分岐装置5aから受取った分岐先ア
ドレスに対して分岐先命令部402aの語長骨だけ先の
アドレスから命令の先読みを行なう。以降はそのまま処
理を続行する。
第3図は履歴格納装置4aのアドレスタグ部401aが
ヒツトした場合の動作タイミング図を示すものである。
ヒツトした場合の動作タイミング図を示すものである。
命令先読み装置1、先行分岐装置5as 命令解読装
置2、命令実行装置3において実行されている命令をク
ロック単位で示している。
置2、命令実行装置3において実行されている命令をク
ロック単位で示している。
ここでは各装置の必要クロック数を1クロツクとしてい
る。先行分岐装置5aがクロックt2で無条件分岐命令
の直前の命令(命令b)のアドレスで履歴格納装置4a
を検索すると、そのアドレスがアドレスタグ部401a
にヒツトし、先行分岐l置5aは分岐先の命令コードと
分岐先アドレスをそれぞれ命令解読装置2と命令先読み
装置1に送出する。クロックt3で命令解読装置2は分
岐先の命令コード(命令m)の解読を開始し、命令先読
み装置1は分岐先アドレスに対して分岐先命令部402
aの語長骨だけ先のアドレスから命令(命令n)の先読
みを行なう。ただし同図では命令n以外の先読みのタイ
ミングは記していない。
る。先行分岐装置5aがクロックt2で無条件分岐命令
の直前の命令(命令b)のアドレスで履歴格納装置4a
を検索すると、そのアドレスがアドレスタグ部401a
にヒツトし、先行分岐l置5aは分岐先の命令コードと
分岐先アドレスをそれぞれ命令解読装置2と命令先読み
装置1に送出する。クロックt3で命令解読装置2は分
岐先の命令コード(命令m)の解読を開始し、命令先読
み装置1は分岐先アドレスに対して分岐先命令部402
aの語長骨だけ先のアドレスから命令(命令n)の先読
みを行なう。ただし同図では命令n以外の先読みのタイ
ミングは記していない。
クロックt4で命令実行装置3が分岐先の命令(命令m
)を実行する。
)を実行する。
このように過去に実行した無条件分岐命令を再度実行す
る場合は、無条件分岐命令の直前の命令(命令b)の実
行後直ちに分岐先の命令(命令m)を実行し、無条件分
岐命令(命令C)の実行うロック数が零になる。
る場合は、無条件分岐命令の直前の命令(命令b)の実
行後直ちに分岐先の命令(命令m)を実行し、無条件分
岐命令(命令C)の実行うロック数が零になる。
以上のように本実施例によれば、無条件分岐命令より前
の命令が解読されている時に先行分岐装置5aがその命
令のアドレスで履歴格納装置4aを検索して無条件分岐
命令の次に実行されるべき命令の命令コードとそのアド
レスを得、無条件分岐命令の解読ならびに実行を行なわ
ずに無条件分岐命令の直前の命令に続いて無条件分岐命
令の次に実行されるべき命令を解読・実行することによ
り、無条件分岐命令の実行うロック数を零にすることが
できる。
の命令が解読されている時に先行分岐装置5aがその命
令のアドレスで履歴格納装置4aを検索して無条件分岐
命令の次に実行されるべき命令の命令コードとそのアド
レスを得、無条件分岐命令の解読ならびに実行を行なわ
ずに無条件分岐命令の直前の命令に続いて無条件分岐命
令の次に実行されるべき命令を解読・実行することによ
り、無条件分岐命令の実行うロック数を零にすることが
できる。
なお、本実施例において履歴格納装置4aに分岐先命令
部402aを設けているが、これを省略してもよい。こ
の場合、命令解読装置2で解読中の命令のアドレスがア
ドレスタグ部401aにヒツトしたとき、命令先読み装
置1は先行分岐装置5aから得られる無条件分岐命令の
次に実行されるべき命令のアドレスから命令の先読みを
開始し、命令解読装置2は無条件分岐命令の直前の命令
の解読を終了後、命令先読み装置1から送出される命令
を解読する。
部402aを設けているが、これを省略してもよい。こ
の場合、命令解読装置2で解読中の命令のアドレスがア
ドレスタグ部401aにヒツトしたとき、命令先読み装
置1は先行分岐装置5aから得られる無条件分岐命令の
次に実行されるべき命令のアドレスから命令の先読みを
開始し、命令解読装置2は無条件分岐命令の直前の命令
の解読を終了後、命令先読み装置1から送出される命令
を解読する。
また、本実施例において分岐先アドレス部403aに分
岐先アドレスを格納し、命令解読装置2で解読中の命令
のアドレスがアドレスタグ部401aにヒツトしたとき
、命令先読み装置1は先行分岐装置5aから得られるア
ドレスに対して分岐先命令部402aの語長分だけ先の
アドレスから命令の先読みを開始しているが、予め分岐
先アドレス部403aに分岐先アドレスに分岐先命令部
402aの語長分を加算したものを格納し命令解読装置
2で解読中の命令のアドレスがアドレスタグ部401a
にヒツトしたとき命令先読み装置1は先行分岐装置5a
から得られるアドレスから命令の先読みを開始するよう
にしてもよい。
岐先アドレスを格納し、命令解読装置2で解読中の命令
のアドレスがアドレスタグ部401aにヒツトしたとき
、命令先読み装置1は先行分岐装置5aから得られるア
ドレスに対して分岐先命令部402aの語長分だけ先の
アドレスから命令の先読みを開始しているが、予め分岐
先アドレス部403aに分岐先アドレスに分岐先命令部
402aの語長分を加算したものを格納し命令解読装置
2で解読中の命令のアドレスがアドレスタグ部401a
にヒツトしたとき命令先読み装置1は先行分岐装置5a
から得られるアドレスから命令の先読みを開始するよう
にしてもよい。
また、本実施例においてアドレスタグ部401aに無条
件分岐命令の直前の命令のアドレスを格納し、命令解読
装置2がこの無条件分岐命令の直前の命令を解読してい
るときに先行分岐を行なっているが、直前の命令でなく
とも無条件分岐命令より前に実行された命令であれば如
何なる命令でもよい。
件分岐命令の直前の命令のアドレスを格納し、命令解読
装置2がこの無条件分岐命令の直前の命令を解読してい
るときに先行分岐を行なっているが、直前の命令でなく
とも無条件分岐命令より前に実行された命令であれば如
何なる命令でもよい。
第4図は本発明の第2の実施例におけるデータ処理装置
の構成図を示すものである。
の構成図を示すものである。
同図において、1は命令先読み装置、2は命令解読装置
、3は命令実行装置、7は入出力バス、8はバス制御装
置で、以上は第1図の構成と同様なものである。第4図
において、4bは分岐命令実行時に分岐命令の次に実行
された命令の命令コードとそのアドレスおよび分岐命令
の次に実行され得る他の命令のアドレスおよびその分岐
命令の条件コードと分岐成立の有無を格納する履歴格納
装置、5bは分岐命令の実行に先立って履歴格納装置4
bから分岐命令の次に実行されると予測される命令の命
令コードとそのアドレスを取出してそれぞれ命令解読装
置3と命令先読み装置1に出力する分岐予測装置6bは
分岐予測装置5bから受取った分岐命令の条件コードと
分岐予測が分岐成立か否かの情報とに基づき分岐予測の
真偽を検証する分岐検証装置である。第5図は第4図に
示す履歴格納装置4bの構成図を示すものであり、40
1bは分岐命令の直前に実行された命令のアドレスを格
納するアドレスタグ部、402b、403b1404b
は分岐命令の分岐が成立した場合はそれぞれ分岐命令の
分岐先アドレスから始まる一定長の命令コードと分岐先
アドレスと分岐命令に後続する命令のアドレスを格納し
、分岐命令の分岐が成立しなかった場合はそれぞれ分岐
命令に後続する命令のアドレスから始まる一定長の命令
コードと分岐命令に後続する命令のアドレスと分岐命令
の分岐先アドレスを格納する候補命令部、候補アドレス
部、次候補アドレス部、407bは分岐命令の分岐成立
を判定する条件コードを格納する条件コード部、408
bは分岐命令の分岐が成立したことを示す成立予測部、
409bはエントリのデータが有効であることを示す有
効ビットである。
、3は命令実行装置、7は入出力バス、8はバス制御装
置で、以上は第1図の構成と同様なものである。第4図
において、4bは分岐命令実行時に分岐命令の次に実行
された命令の命令コードとそのアドレスおよび分岐命令
の次に実行され得る他の命令のアドレスおよびその分岐
命令の条件コードと分岐成立の有無を格納する履歴格納
装置、5bは分岐命令の実行に先立って履歴格納装置4
bから分岐命令の次に実行されると予測される命令の命
令コードとそのアドレスを取出してそれぞれ命令解読装
置3と命令先読み装置1に出力する分岐予測装置6bは
分岐予測装置5bから受取った分岐命令の条件コードと
分岐予測が分岐成立か否かの情報とに基づき分岐予測の
真偽を検証する分岐検証装置である。第5図は第4図に
示す履歴格納装置4bの構成図を示すものであり、40
1bは分岐命令の直前に実行された命令のアドレスを格
納するアドレスタグ部、402b、403b1404b
は分岐命令の分岐が成立した場合はそれぞれ分岐命令の
分岐先アドレスから始まる一定長の命令コードと分岐先
アドレスと分岐命令に後続する命令のアドレスを格納し
、分岐命令の分岐が成立しなかった場合はそれぞれ分岐
命令に後続する命令のアドレスから始まる一定長の命令
コードと分岐命令に後続する命令のアドレスと分岐命令
の分岐先アドレスを格納する候補命令部、候補アドレス
部、次候補アドレス部、407bは分岐命令の分岐成立
を判定する条件コードを格納する条件コード部、408
bは分岐命令の分岐が成立したことを示す成立予測部、
409bはエントリのデータが有効であることを示す有
効ビットである。
以上のように構成された第2の実施例のデータ処理装置
について、以下その動作を説明する。
について、以下その動作を説明する。
命令先読み装置1で先読みされた命令コードが命令解読
装置2で解砕されると、同時に分岐予測装置5bは解読
中の命令のアドレスで履歴格納装置4bを検索する。命
令解読装置2で解読中の命令が分岐命令の直前の命令で
あっても、その命令が初めて実行される場合や実行され
てから他の命令によって履歴格納装置4bのエン) I
Jが書換えられた場合は履歴格納装置4bのアドレスタ
グ部401bはヒツトしない。アドレスタグ部401b
がヒツトしないときはそのまま処理は続行され、命令は
命令解読装置2で解読されたのち命令実行装置3で実行
される。
装置2で解砕されると、同時に分岐予測装置5bは解読
中の命令のアドレスで履歴格納装置4bを検索する。命
令解読装置2で解読中の命令が分岐命令の直前の命令で
あっても、その命令が初めて実行される場合や実行され
てから他の命令によって履歴格納装置4bのエン) I
Jが書換えられた場合は履歴格納装置4bのアドレスタ
グ部401bはヒツトしない。アドレスタグ部401b
がヒツトしないときはそのまま処理は続行され、命令は
命令解読装置2で解読されたのち命令実行装置3で実行
される。
まず、アドレスタグ部401bがヒツトしないまま分岐
命令が実行され、分岐が成立した場合を説明する。
命令が実行され、分岐が成立した場合を説明する。
分岐命令が命令実行装置3で実行されるとき、命令実行
装置3は分岐先アドレスの計算を行ない分岐成立・不成
立を判定する。分岐が成立した場合、命令先読み装置1
は命令実行装置3で計算された分岐先アドレスを受取り
、新たに分岐先の命令コードを読出す。このとき履歴格
納装置4bは、命令実行装置3に保持している分岐命令
の直前に実行した命令のアドレスをアドレスタグ部40
1bに、命令先読み装置1で読出された分岐先の命令コ
ードを候補命令部402bに、命令実行装置3で計算し
た分岐先アドレスを候補アドレス部403bに、分岐命
令に後続する命令のアドレスを次候補アドレス部404
bに、分岐命令の条件コードを条件コード部407bに
、それぞれ同一のエン) IJに格納し、成立予測部4
08bを分岐が成立したことを示す′ 1′にセットし
、有効ビット409bをエントリのデータが有効である
ことを示す11′にセットする。
装置3は分岐先アドレスの計算を行ない分岐成立・不成
立を判定する。分岐が成立した場合、命令先読み装置1
は命令実行装置3で計算された分岐先アドレスを受取り
、新たに分岐先の命令コードを読出す。このとき履歴格
納装置4bは、命令実行装置3に保持している分岐命令
の直前に実行した命令のアドレスをアドレスタグ部40
1bに、命令先読み装置1で読出された分岐先の命令コ
ードを候補命令部402bに、命令実行装置3で計算し
た分岐先アドレスを候補アドレス部403bに、分岐命
令に後続する命令のアドレスを次候補アドレス部404
bに、分岐命令の条件コードを条件コード部407bに
、それぞれ同一のエン) IJに格納し、成立予測部4
08bを分岐が成立したことを示す′ 1′にセットし
、有効ビット409bをエントリのデータが有効である
ことを示す11′にセットする。
次に、上で述べた動作のあと再び同一の分岐命令が実行
される場合を説明する。
される場合を説明する。
今回も分岐が成立する可能性が高く、動作は以下のよう
になる。命令解読装置2がこの分岐命令の直前の命令を
解読すると同時に分岐予測装置5bはこの命令のアドレ
スで履歴格納装置4bを検索する。このとき、そのアド
レスがアドレスタグ11401bにヒツトし、分岐予測
装置5bは分岐命令の実行を待たずに過去の履歴により
分岐の成立を予測し、分岐先の命令コードと分岐先アド
レスをそれぞれ候補命令部402bと候補アドレス部4
03bから取出して命令解読装置2と命令先読み装置1
に送出する。命令解読装置2は分岐命令の直前の命令の
解読終了後直ちに分岐予測装置5bから受取った分岐先
の命令コードの解読を開始し、命令先読み装置J、はそ
れまでに先読みした命令をキャンセルするとともに分岐
予測袋fi5bから受取、た分岐先アドレスに対して候
補命令部402bの語長骨だけ先のアドレスから命令の
先読みを行なう。命令実行装置3が分岐命令の次に実行
されると予測された命令を実行するのと並列に、分岐検
証装置6bは分岐予測装置5bから受取った条件コード
部407bに格納された分岐命令の条件コードと成立予
測部408bが示す予測が分岐成立側であることの情報
とに基づき分岐予測の真偽を検証する。検証の結果、予
測が真であることが判明すればそのまま処理を続行する
。
になる。命令解読装置2がこの分岐命令の直前の命令を
解読すると同時に分岐予測装置5bはこの命令のアドレ
スで履歴格納装置4bを検索する。このとき、そのアド
レスがアドレスタグ11401bにヒツトし、分岐予測
装置5bは分岐命令の実行を待たずに過去の履歴により
分岐の成立を予測し、分岐先の命令コードと分岐先アド
レスをそれぞれ候補命令部402bと候補アドレス部4
03bから取出して命令解読装置2と命令先読み装置1
に送出する。命令解読装置2は分岐命令の直前の命令の
解読終了後直ちに分岐予測装置5bから受取った分岐先
の命令コードの解読を開始し、命令先読み装置J、はそ
れまでに先読みした命令をキャンセルするとともに分岐
予測袋fi5bから受取、た分岐先アドレスに対して候
補命令部402bの語長骨だけ先のアドレスから命令の
先読みを行なう。命令実行装置3が分岐命令の次に実行
されると予測された命令を実行するのと並列に、分岐検
証装置6bは分岐予測装置5bから受取った条件コード
部407bに格納された分岐命令の条件コードと成立予
測部408bが示す予測が分岐成立側であることの情報
とに基づき分岐予測の真偽を検証する。検証の結果、予
測が真であることが判明すればそのまま処理を続行する
。
方検証の結果、予測が偽であることが判明した場合は、
分岐検証装置6bからの信号により命令実行装置3は分
岐命令の次に実行されると予測した命令の実行結果の格
納をキャンセルし、命令解読装置2は解読中の命令をキ
ャンセルし、命令先読み装置1は先読みした命令をキャ
ンセルするとともに次候補アドレス部404bに格納さ
れた分岐命令に後続する命令のアドレスを分岐予測装置
5bから受取り、このアドレスにより新たに命令の先読
みを行なう。このとき、次に再び同一の分岐命令が実行
される場合には分岐が成立しない可能性が高いと考えら
れるため、履歴格納装置4bは、アドレスタグ部401
bがヒツトしたエントリを次のように更新する。即ち、
命令先読み装置1で先読みされた分岐命令に後続する命
令の命令コードを候補命令部402bに、それまでの次
候補アドレス部404bの内容(分岐命令に後続する命
令のアドレス)を候補アドレス部403bに、それまで
の候補アドレス部403bの内容(分岐命令の分岐先ア
ドレス)を次候補アドレス部404bに格納し、成立予
測部408bを分岐が成立しなかったことを示すOIに
リセットする。
分岐検証装置6bからの信号により命令実行装置3は分
岐命令の次に実行されると予測した命令の実行結果の格
納をキャンセルし、命令解読装置2は解読中の命令をキ
ャンセルし、命令先読み装置1は先読みした命令をキャ
ンセルするとともに次候補アドレス部404bに格納さ
れた分岐命令に後続する命令のアドレスを分岐予測装置
5bから受取り、このアドレスにより新たに命令の先読
みを行なう。このとき、次に再び同一の分岐命令が実行
される場合には分岐が成立しない可能性が高いと考えら
れるため、履歴格納装置4bは、アドレスタグ部401
bがヒツトしたエントリを次のように更新する。即ち、
命令先読み装置1で先読みされた分岐命令に後続する命
令の命令コードを候補命令部402bに、それまでの次
候補アドレス部404bの内容(分岐命令に後続する命
令のアドレス)を候補アドレス部403bに、それまで
の候補アドレス部403bの内容(分岐命令の分岐先ア
ドレス)を次候補アドレス部404bに格納し、成立予
測部408bを分岐が成立しなかったことを示すOIに
リセットする。
第6図は分岐予測が真である場合の動作タイミング図を
示すものである。命令先読み装置1、分岐予測装置5b
1 命令解読装置2、命令実行装置3、分岐検証装置6
bにおいて実行されている命令をクロック単位で示して
いる。ここでは各装置の必要クロック数を1クロツタと
している。分岐予測装置5bがクロックt2で分岐命令
の直前の命令(命令b)のアドレスで履歴格納装置4b
を検索すると、そのアドレスがアドレスタグ部401b
にヒツトし、分岐予測装置5bは分岐先の命令コードと
分岐先アドレスをそれぞれ命令解読装置2と命令先読み
装置1に送出する。クロックt3で命令解読装置2は分
岐先の命令コード(命令m)の解読を開始し、命令先読
み装置1は分岐先アドレスに対して候補命令部402b
の語長骨だけ先のアドレスから命令(命令n)の先読み
を行なう。ただし同図では命令n以外の先読みのタイミ
ングは記していない。クロックt4で命令実行装置3が
分岐命令の次に実行されると予測された命令(命令m)
を実行するのと並列に、分岐検証装置6bは分岐予測の
真偽を検証する。検証の結果、予測が真であり、処理は
続行される。このように分岐成立の予測が正しい場合は
、分岐命令の直前の命令(命令b)の実行後直ちに分岐
先の命令(命令m)を実行し、分岐命令(命令C)の実
行うロック数が零になる。
示すものである。命令先読み装置1、分岐予測装置5b
1 命令解読装置2、命令実行装置3、分岐検証装置6
bにおいて実行されている命令をクロック単位で示して
いる。ここでは各装置の必要クロック数を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で計
算した分岐命令の分岐先アドレスを次候補アドレス部4
04bに、分岐命令の条件コードを条件コード部407
bに、それぞれ同一のエントリに格納し、成立予測部4
08bを分岐が成立しなかったことを示す°0′にリセ
ットし、有効ビット409bをエントリのデータが有効
であることを示す11′にセットする。
置3で実行されるとき履歴格納装置4bは、命令実行装
置3に保持している分岐命令の直前に実行した命令のア
ドレスをアドレスタグ部401bに、命令先読み装置1
で先読みされた分岐命令に後続する命令の命令コードを
候補命令部402bに、分岐命令に後続する命令のアド
レスを候補アドレス部403bに、命令実行装置3で計
算した分岐命令の分岐先アドレスを次候補アドレス部4
04bに、分岐命令の条件コードを条件コード部407
bに、それぞれ同一のエントリに格納し、成立予測部4
08bを分岐が成立しなかったことを示す°0′にリセ
ットし、有効ビット409bをエントリのデータが有効
であることを示す11′にセットする。
次に、上に述べた動作のあと再び同一の分岐命令が実行
される場合を説明する。
される場合を説明する。
今回も分岐が成立しない可能性が高く、動作は以下のよ
うになる。命令解読装置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から受取
り、このアドレスにより新たに命令の先読みを行なう。
うになる。命令解読装置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の内
容(分岐命令の分岐先アドレス)を候補アドレス部40
3bに、それまでの候補アドレス部403bの内容(分
岐命令に後続する命令のアドレス)を次候補アドレス部
404bに格納し、成立予測部408bを分岐が成立し
たことを示す” 1”にセットする。このように分岐不
成立の予測が正しい場合も、分岐命令の直前の命令の実
行後直ちに分岐命令に後続する命令を実行し、分岐命令
の実行うロック数が零になる。
は分岐が成立する可能性が高いと考えられるため、履歴
格納装置4bは、アドレスタグ部401bがヒツトした
エントリを次のように更新する。即ち、命令先読み装置
1で読出された分岐先の命令の命令コードを候補命令部
402bに、それまでの次候補アドレス部404bの内
容(分岐命令の分岐先アドレス)を候補アドレス部40
3bに、それまでの候補アドレス部403bの内容(分
岐命令に後続する命令のアドレス)を次候補アドレス部
404bに格納し、成立予測部408bを分岐が成立し
たことを示す” 1”にセットする。このように分岐不
成立の予測が正しい場合も、分岐命令の直前の命令の実
行後直ちに分岐命令に後続する命令を実行し、分岐命令
の実行うロック数が零になる。
以上のように本実施例によれば、分岐命令より前の命令
が解読されている時に分岐予測装置5bがその命令のア
ドレスで履歴格納装置4bを検索して分岐命令の次に実
行されるべき命令の命令コードとそのアドレスを得、分
岐命令の解読ならびに実行を行なわずに分岐命令の直前
の命令に続いて分岐命令の次に実行されると予測された
命令を解読・実行し、分岐検証装置6bが予測の真偽の
検証を分岐命令の次に実行されると予測された命令の実
行と並列に行なうことにより、分岐が成立・不成立にか
かわらず予測が真の場合の分岐命令の実行うロック数を
零にすることができる。
が解読されている時に分岐予測装置5bがその命令のア
ドレスで履歴格納装置4bを検索して分岐命令の次に実
行されるべき命令の命令コードとそのアドレスを得、分
岐命令の解読ならびに実行を行なわずに分岐命令の直前
の命令に続いて分岐命令の次に実行されると予測された
命令を解読・実行し、分岐検証装置6bが予測の真偽の
検証を分岐命令の次に実行されると予測された命令の実
行と並列に行なうことにより、分岐が成立・不成立にか
かわらず予測が真の場合の分岐命令の実行うロック数を
零にすることができる。
なお、本実施例において履歴格納装置4bに候補命令部
402bを設けているが、これを省略してもよい。この
場合、命令解読装置2で解読中の命令のアドレスがアド
レスタグ部401bにヒツトしたとき、命令先読み装置
1は分岐予測装置5bから得られる分岐命令の次に実行
されるべき命令のアドレスから命令の先読みを開始し、
命令解読装置2は分岐命令の直前の命令の解読を終了後
、命令先読み装置1から送出される命令を解読する。
402bを設けているが、これを省略してもよい。この
場合、命令解読装置2で解読中の命令のアドレスがアド
レスタグ部401bにヒツトしたとき、命令先読み装置
1は分岐予測装置5bから得られる分岐命令の次に実行
されるべき命令のアドレスから命令の先読みを開始し、
命令解読装置2は分岐命令の直前の命令の解読を終了後
、命令先読み装置1から送出される命令を解読する。
また、本実施例において候補アドレス部403bに分岐
先アドレスまたは分岐命令に後続する命令のアドレスを
格納し、命令解読装置2で解読中の命令のアドレスがア
ドレスタグ部401bにヒツトしたとき、命令先読み装
置1は分岐予測装置5bから得られるアドレスに対して
候補命令部402bの語長骨だけ先のアドレスから命令
の先読みを開始しているが、予め候補アドレス部403
bに分岐先アドレスまたは分岐命令に後続する命令のア
ドレスに候補命令部402bの語長骨を加算したものを
格納し、命令解読装置2で解読中の命令のアドレスがア
ドレスタグ部401bにヒツトしたとき、命令先読み装
置1は分岐予測装置5bから得られるアドレスから命令
の先読みを開始するようにしてもよい。
先アドレスまたは分岐命令に後続する命令のアドレスを
格納し、命令解読装置2で解読中の命令のアドレスがア
ドレスタグ部401bにヒツトしたとき、命令先読み装
置1は分岐予測装置5bから得られるアドレスに対して
候補命令部402bの語長骨だけ先のアドレスから命令
の先読みを開始しているが、予め候補アドレス部403
bに分岐先アドレスまたは分岐命令に後続する命令のア
ドレスに候補命令部402bの語長骨を加算したものを
格納し、命令解読装置2で解読中の命令のアドレスがア
ドレスタグ部401bにヒツトしたとき、命令先読み装
置1は分岐予測装置5bから得られるアドレスから命令
の先読みを開始するようにしてもよい。
また、本実施例においてアドレスタグ部401bに分岐
命令の直前の命令のアドレスを格納し、命令解読装置2
がこの分岐命令の直前の命令を解読しているときに分岐
予測を行なっているが、直前の命令でなくとも分岐命令
より前に実行された命令であれば如何なる命令でもよい
。
命令の直前の命令のアドレスを格納し、命令解読装置2
がこの分岐命令の直前の命令を解読しているときに分岐
予測を行なっているが、直前の命令でなくとも分岐命令
より前に実行された命令であれば如何なる命令でもよい
。
また、本実施例において命令解読装置2で解読中の命令
のアドレスがアドレスタグ部401bにヒツトし分岐成
立を予測したとき、命令先読み装置1はそれまでに先読
みした命令をリセットして新たに分岐先の命令の先読み
を開始しているが、これをリセットせずに保存しておき
、予測が外れ分岐が成立しなかったときにこれを読出し
て命令解読装置2に送るようにしてもよい。
のアドレスがアドレスタグ部401bにヒツトし分岐成
立を予測したとき、命令先読み装置1はそれまでに先読
みした命令をリセットして新たに分岐先の命令の先読み
を開始しているが、これをリセットせずに保存しておき
、予測が外れ分岐が成立しなかったときにこれを読出し
て命令解読装置2に送るようにしてもよい。
また、本実施例において履歴格納装置4bと分岐子1i
tI+装置5bは過去1回の最も新しい履歴に従って分
岐の予測を行なっているが、過去複数回の履歴に従って
分岐の予測を行なってもよい。
tI+装置5bは過去1回の最も新しい履歴に従って分
岐の予測を行なっているが、過去複数回の履歴に従って
分岐の予測を行なってもよい。
また、本実施例において分岐予測が外れた場合に候補ア
ドレス部403bの内容と次候補アドレス部404bの
内容を交換しているが、常に候補アドレス部403bに
分岐先アドレスを、次候補アドレス部404bに分岐命
令に後続する命令のアドレスを格納するようにし、命令
解読装置2で解読中の命令のアドレスがアドレスタグ部
401bにヒツトしたとき、成立予測部408bが”
1”ならば候補アドレス部403bの内容を、”0ゝな
らば次候補アドレス部404bの内容を命令先読み装置
1に送るようにしてもよい。
ドレス部403bの内容と次候補アドレス部404bの
内容を交換しているが、常に候補アドレス部403bに
分岐先アドレスを、次候補アドレス部404bに分岐命
令に後続する命令のアドレスを格納するようにし、命令
解読装置2で解読中の命令のアドレスがアドレスタグ部
401bにヒツトしたとき、成立予測部408bが”
1”ならば候補アドレス部403bの内容を、”0ゝな
らば次候補アドレス部404bの内容を命令先読み装置
1に送るようにしてもよい。
第7図は本発明の第3の実施例におけるデータ処理装置
の構成図を示すものである。同図において、1は命令先
読み装置、2は命令解読装置、3は命令実行装置、7は
入出力バス、8はバス制御装置で、以上は第1図の構成
と同様なものである。
の構成図を示すものである。同図において、1は命令先
読み装置、2は命令解読装置、3は命令実行装置、7は
入出力バス、8はバス制御装置で、以上は第1図の構成
と同様なものである。
第7図において、4cは比較命令解読時に比較命令に続
く命令の命令コードとそのアドレスおよび比較命令の、
オペランドに関する情報を格納する履歴格納装置、9は
比較命令の実行に先立って紺歴格納装置4cから比較命
令に続く命令の命令コードとそのアドレスを取出してそ
れぞれ命令解読装置2と命令先読み装置1に出力する比
較命令除去装置、10は比較命令除去装置9から比較命
令のオペランドに関する情報を受取り、この内容に従っ
て命令実行装置3中の汎用レジスタを読出して比較を行
なう比較装置である。第8図は第7図にボす履歴格納装
置4cの構成図を示すものであり、401cは比較命令
の直前に実行された命令のアドレスを格納するアドレス
タグ部、402cは比較命令に続く命令のアドレスから
始まる一定長の命令コードを格納する次命令部、403
cは比較命令に続く命令のアドレスを格納する次命令ア
ドレス部、405 c、 406 cは比較命令の第
1および第2のオペランドが汎用レジスタのときはその
汎用レジスタを指定する情!7g(レジスタ番号)を格
納し、オペランドが即値のときはその即値を格納する比
較第1オペランド部、比較第2オペランド部、409c
はエントリのデータが有効であることを示す有効ビット
である。
く命令の命令コードとそのアドレスおよび比較命令の、
オペランドに関する情報を格納する履歴格納装置、9は
比較命令の実行に先立って紺歴格納装置4cから比較命
令に続く命令の命令コードとそのアドレスを取出してそ
れぞれ命令解読装置2と命令先読み装置1に出力する比
較命令除去装置、10は比較命令除去装置9から比較命
令のオペランドに関する情報を受取り、この内容に従っ
て命令実行装置3中の汎用レジスタを読出して比較を行
なう比較装置である。第8図は第7図にボす履歴格納装
置4cの構成図を示すものであり、401cは比較命令
の直前に実行された命令のアドレスを格納するアドレス
タグ部、402cは比較命令に続く命令のアドレスから
始まる一定長の命令コードを格納する次命令部、403
cは比較命令に続く命令のアドレスを格納する次命令ア
ドレス部、405 c、 406 cは比較命令の第
1および第2のオペランドが汎用レジスタのときはその
汎用レジスタを指定する情!7g(レジスタ番号)を格
納し、オペランドが即値のときはその即値を格納する比
較第1オペランド部、比較第2オペランド部、409c
はエントリのデータが有効であることを示す有効ビット
である。
以上のように構成された第3の実施例のデータ処理装置
について、以下その動作を説明する。
について、以下その動作を説明する。
命令先読み装置1で先読みされた命令コードが命令解読
装置2で解読されると、同時に比較命令除去装置9は解
読中の命令のアドレスで履歴格納装置4cを検索する。
装置2で解読されると、同時に比較命令除去装置9は解
読中の命令のアドレスで履歴格納装置4cを検索する。
命令解読装置2で解読中の命令が比較命令の直前の命令
であっても、その命令が初めて実行される場合や実行さ
れてから他の命令によって履歴格納装置4cのエントリ
が書換えられた場合は履歴格納装置4cのアドレスタグ
部401cはヒツトしない。アドレスタグ部401cが
ヒツトしないときはそのまま処理は続行され、命令は命
令解読装置2で解読されたのち命令実行装置3で実行さ
れる。
であっても、その命令が初めて実行される場合や実行さ
れてから他の命令によって履歴格納装置4cのエントリ
が書換えられた場合は履歴格納装置4cのアドレスタグ
部401cはヒツトしない。アドレスタグ部401cが
ヒツトしないときはそのまま処理は続行され、命令は命
令解読装置2で解読されたのち命令実行装置3で実行さ
れる。
まず、アドレスタグ部401cがヒツトしないまま比較
命令が解読・実行された場合を説明する。
命令が解読・実行された場合を説明する。
比較命令が命令解読装置2で解読されるとき、履歴格納
装置4cは命令解読装置2に保持している比較命令の直
前に実行した命令のアドレスをアドレスタグ部401C
に、命令先読み装置1で読出された比較命令に続く命令
の命令コードを次命令部402cに、比較命令に続く命
令のアドレスを次命令アドレス部403 cに、解読中
の比較命令の2つのオペランドの汎用レジスタを指定す
る情報または即値を比較第1オペランド部405cと比
較第2オペランド部406cに、それぞれ同一のエント
リに格納し、有効ピット−4090をエントリのデータ
が有効であることを示すlitにセットする。
装置4cは命令解読装置2に保持している比較命令の直
前に実行した命令のアドレスをアドレスタグ部401C
に、命令先読み装置1で読出された比較命令に続く命令
の命令コードを次命令部402cに、比較命令に続く命
令のアドレスを次命令アドレス部403 cに、解読中
の比較命令の2つのオペランドの汎用レジスタを指定す
る情報または即値を比較第1オペランド部405cと比
較第2オペランド部406cに、それぞれ同一のエント
リに格納し、有効ピット−4090をエントリのデータ
が有効であることを示すlitにセットする。
次に、上で述べた動作のあと再び同一の比較命令が実行
される場合を説明する。
される場合を説明する。
命令解読装置2がこの比較命令の直前の命令を解読する
と同時に比較命令除去装置9はこの命令のアドレスで履
歴格納装置4cを検索する。このとき、そのアドレスが
アドレスタグ部401cにヒツトし、比較命令除去装置
9は比較命令に続く命令の命令コードとそのアドレスを
それぞれ次命令部402cと次命令アドレス部403c
から取出して命令解読装置2と命令先読み装置1に送出
する。命令解読装置2は比較命令の直前の命令の解読終
了後直ちに比較命令除去装置9から受取った比較命令に
続く命令の命令コードの解読を開始し、命令先読み装置
1はそれまでに先読みした命令をキャンセルするととも
に比較命令除去装置9から受取った比較命令に続く命令
のアドレスに対して次命令部402cの語長骨だけ先の
アドレスから命令の先読みを行なう。命令実行装置3が
比較命令に続く命令を実行するのと並列に、比較装置1
0は比較命令除去装置9から比較第1オペランド部40
5cと比較第2オペランド部408cに格、納された比
較命令のオペランドの汎用レジスタを指定する情報(レ
ジスタ番号)または即値を受取り、この内容に従って命
令実行装置3に内蔵された汎用レジスタを読出して比較
を行ない、その比較結果を命令実行装置3に内蔵するフ
ラグレジスタに反映する。以降はそのまま処理を続行す
る。
と同時に比較命令除去装置9はこの命令のアドレスで履
歴格納装置4cを検索する。このとき、そのアドレスが
アドレスタグ部401cにヒツトし、比較命令除去装置
9は比較命令に続く命令の命令コードとそのアドレスを
それぞれ次命令部402cと次命令アドレス部403c
から取出して命令解読装置2と命令先読み装置1に送出
する。命令解読装置2は比較命令の直前の命令の解読終
了後直ちに比較命令除去装置9から受取った比較命令に
続く命令の命令コードの解読を開始し、命令先読み装置
1はそれまでに先読みした命令をキャンセルするととも
に比較命令除去装置9から受取った比較命令に続く命令
のアドレスに対して次命令部402cの語長骨だけ先の
アドレスから命令の先読みを行なう。命令実行装置3が
比較命令に続く命令を実行するのと並列に、比較装置1
0は比較命令除去装置9から比較第1オペランド部40
5cと比較第2オペランド部408cに格、納された比
較命令のオペランドの汎用レジスタを指定する情報(レ
ジスタ番号)または即値を受取り、この内容に従って命
令実行装置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以
外の先読みのタイミングは記していない。
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)の実行うロック数が零になる。
命令d)を実行するのと並列に、比較装置10は比較を
行なう。このように過去に実行した比較命令を再度実行
する場合は、比較命令の直前の命令(命令b)の実行後
直ちに比較命令に続く命令(命令d)を実行し、比較命
令(命令C)の実行うロック数が零になる。
以上のように本実施例によれば、比較命令より前の命令
が解読されている時に比較命令除去装置9がその命令の
アドレスで履歴格納装置4cを検索して比較命令に続く
命令の命令コードとそのアドレスを得、比較命令の解読
ならびに実行を行なわずに比較命令の直前の命令に続い
て比較命令に続く命令を解読・実行し、比較命令に続く
命令の実行と並列に比較装置10が比較を行なうことに
より、比較命令の実行うロック数を零にすることができ
る。
が解読されている時に比較命令除去装置9がその命令の
アドレスで履歴格納装置4cを検索して比較命令に続く
命令の命令コードとそのアドレスを得、比較命令の解読
ならびに実行を行なわずに比較命令の直前の命令に続い
て比較命令に続く命令を解読・実行し、比較命令に続く
命令の実行と並列に比較装置10が比較を行なうことに
より、比較命令の実行うロック数を零にすることができ
る。
なお、本実施例において履歴格納装置4cに次命令部4
02cを設けているが、これを省略してもよい。この場
合、命令解読装置2で解読中の命令のアドレスがアドレ
スタグ部401Cにヒツトしたとき、命令先読み装置1
は比較命令除去装置9から得られる比較命令に続く命令
のアドレスから命令の先読みを開始し、命令解読装置2
は比較命令の直前の命令の解読を終了後、命令先読み装
置1から送出される命令を解読する。
02cを設けているが、これを省略してもよい。この場
合、命令解読装置2で解読中の命令のアドレスがアドレ
スタグ部401Cにヒツトしたとき、命令先読み装置1
は比較命令除去装置9から得られる比較命令に続く命令
のアドレスから命令の先読みを開始し、命令解読装置2
は比較命令の直前の命令の解読を終了後、命令先読み装
置1から送出される命令を解読する。
また、本実施例において次命令アドレス部403cに比
較命令に続く命令のアドレスを格納し、命令解読装置2
で解読中の命令のアドレスがアドレスタグ部401cに
ヒツトしたとき、命令先読み装置1は比較命令除去装置
9から得られるアドレスに対して次命令部402cの語
長骨だけ先のアドレスから命令の先読みを開始している
が、予め次命令アドレス部403 cに比較命令に続く
命令のアドレスに次命令部402cの語長骨を加算した
ものを格納し、命令解読装置2で解読中の命令のアドレ
スがアドレスタグ部401cにヒツトしたとき、命令先
読み装置1は比較命令除去装置9から得I″)れるアド
レスから命令の先読みを開始するようにしてもよい。
較命令に続く命令のアドレスを格納し、命令解読装置2
で解読中の命令のアドレスがアドレスタグ部401cに
ヒツトしたとき、命令先読み装置1は比較命令除去装置
9から得られるアドレスに対して次命令部402cの語
長骨だけ先のアドレスから命令の先読みを開始している
が、予め次命令アドレス部403 cに比較命令に続く
命令のアドレスに次命令部402cの語長骨を加算した
ものを格納し、命令解読装置2で解読中の命令のアドレ
スがアドレスタグ部401cにヒツトしたとき、命令先
読み装置1は比較命令除去装置9から得I″)れるアド
レスから命令の先読みを開始するようにしてもよい。
また、本実施例においてアドレスタグ部401dに比較
命令の直前の命令のアドレスを格納し、命令解読装置2
がこの比較命令の直前の命令を解読しているときに比較
命令の除去を行なっているが、直前の命令でなくとも比
較命令より前に実行された命令であれば如何なる命令で
もよい。
命令の直前の命令のアドレスを格納し、命令解読装置2
がこの比較命令の直前の命令を解読しているときに比較
命令の除去を行なっているが、直前の命令でなくとも比
較命令より前に実行された命令であれば如何なる命令で
もよい。
第10図は本発明の第4の実施例におけるデータ処理装
置の構成図を示すものである。
置の構成図を示すものである。
同図において、1は命令先読み装置、2は命令解読装置
、3は命令実行装置、7は入出力バス、8はバス制御装
置で、以上は第1図の構成と同様なものである。第10
図において、4dは分岐命令実行時に分岐命令の次に実
行された命令の命令コードとそのアドレスおよび分岐命
令の次に実行され得る他の命令のアドレスおよびその分
岐命令の条件コードと分岐成立の有無および分岐命令に
前置する比較命令のオペランドに関する情報を格納する
履歴格納装置、5dは分岐命令の実行に先立って履歴格
納装置4dから分岐命令の次に実行されると予測される
命令の命令コードとそのアドレスを取出してそれぞれ命
令解読装置2と命令先読み装置1に出力する分岐予測装
置、6dは分岐予測装置5dから比較命令のオペランド
に関する情報を受取り、この内容に従って命令実行装置
3中の汎用レジスタを続出、して比較を行ない、その比
較結果と分岐予測装置5dから受取った分岐命令の条件
コードと分岐予測が分岐成立か否かの情報とに基づき分
岐予測の真偽を検証する分岐検証装置である。第11図
は第10図に示す履歴格納袋’ri 4 dの構成図を
示すものであり、401dは分岐命令に前置する比較命
令の直前に実行された命令のアドレスを格納するアドレ
スタグ部、402d、403d1404dは比較命令に
後続する分岐命令の分岐が成立した場合はそれぞれ分岐
命令の分岐先アドレスから始まる一定長の命、令コード
と分岐先アドレスと分岐命令に後続する命令のアドレス
を格納し、比較命令に後続する分岐命令の分岐が成立し
なかった場合はそれぞれ分岐命令に後続する命令のアド
レスから始まる一定長の命令コードと分岐命令に後続す
る命令のアドレスと分岐命令の分岐先アドレスを格納す
る候補命令部、候補アドレス部、次候補アドレス部、4
05d。
、3は命令実行装置、7は入出力バス、8はバス制御装
置で、以上は第1図の構成と同様なものである。第10
図において、4dは分岐命令実行時に分岐命令の次に実
行された命令の命令コードとそのアドレスおよび分岐命
令の次に実行され得る他の命令のアドレスおよびその分
岐命令の条件コードと分岐成立の有無および分岐命令に
前置する比較命令のオペランドに関する情報を格納する
履歴格納装置、5dは分岐命令の実行に先立って履歴格
納装置4dから分岐命令の次に実行されると予測される
命令の命令コードとそのアドレスを取出してそれぞれ命
令解読装置2と命令先読み装置1に出力する分岐予測装
置、6dは分岐予測装置5dから比較命令のオペランド
に関する情報を受取り、この内容に従って命令実行装置
3中の汎用レジスタを続出、して比較を行ない、その比
較結果と分岐予測装置5dから受取った分岐命令の条件
コードと分岐予測が分岐成立か否かの情報とに基づき分
岐予測の真偽を検証する分岐検証装置である。第11図
は第10図に示す履歴格納袋’ri 4 dの構成図を
示すものであり、401dは分岐命令に前置する比較命
令の直前に実行された命令のアドレスを格納するアドレ
スタグ部、402d、403d1404dは比較命令に
後続する分岐命令の分岐が成立した場合はそれぞれ分岐
命令の分岐先アドレスから始まる一定長の命、令コード
と分岐先アドレスと分岐命令に後続する命令のアドレス
を格納し、比較命令に後続する分岐命令の分岐が成立し
なかった場合はそれぞれ分岐命令に後続する命令のアド
レスから始まる一定長の命令コードと分岐命令に後続す
る命令のアドレスと分岐命令の分岐先アドレスを格納す
る候補命令部、候補アドレス部、次候補アドレス部、4
05d。
406dは分岐命令に前置する比較命令の第1および第
2のオペランドが汎用レジスタのときはその汎用レジス
タを指定する情報(レジスタ番号)を格納し、オペラン
ドが即値のときはその即値を格納する比較第1オペラン
ド部、比較第2オペランド部、407dは比較命令に後
続する分岐命令の分岐成立を判定する条件コードを格納
する条件コード部、408dは比較命令に後続する分岐
命令の分岐が成立したことを示す成立予測部、409d
はエントリのデータが有効であることを示す有効ビット
である。
2のオペランドが汎用レジスタのときはその汎用レジス
タを指定する情報(レジスタ番号)を格納し、オペラン
ドが即値のときはその即値を格納する比較第1オペラン
ド部、比較第2オペランド部、407dは比較命令に後
続する分岐命令の分岐成立を判定する条件コードを格納
する条件コード部、408dは比較命令に後続する分岐
命令の分岐が成立したことを示す成立予測部、409d
はエントリのデータが有効であることを示す有効ビット
である。
以上のように構成された本実施例のデータ処理装置につ
いて、以下その動作を説明する。
いて、以下その動作を説明する。
命令先読み装置1で先読みされた命令コードが命令解読
装置2で解読されると、同時に分岐予測装置5dは解読
中の命令のアドレスで履歴格納装置4dを検索する。命
令解読装置2で解読中の命令が分岐命令に前置する比較
命令の直前の命令であっても、その命令が初めて実行さ
れる場合や実行されてから他の命令によって履歴格納装
置4dのエンド1克が書換えられた場合は履歴格納装置
4dのアドレスタグ部401dはヒツトしない。アドレ
スタグ部401dがヒツトしないときはそのまま処理は
続行され、命令は命令解読装置2で解読されたのち命令
実行装置3で実行される。
装置2で解読されると、同時に分岐予測装置5dは解読
中の命令のアドレスで履歴格納装置4dを検索する。命
令解読装置2で解読中の命令が分岐命令に前置する比較
命令の直前の命令であっても、その命令が初めて実行さ
れる場合や実行されてから他の命令によって履歴格納装
置4dのエンド1克が書換えられた場合は履歴格納装置
4dのアドレスタグ部401dはヒツトしない。アドレ
スタグ部401dがヒツトしないときはそのまま処理は
続行され、命令は命令解読装置2で解読されたのち命令
実行装置3で実行される。
まず、アドレスタグ部401dがヒツトしないまま比較
命令に後続する分岐命令が実行され、分岐が成立した場
合を説明する。
命令に後続する分岐命令が実行され、分岐が成立した場
合を説明する。
分岐命令が命令実行装置3で実行されるとき、命令実行
装置3は分岐先アドレスの計算を行ない分岐成立・不成
立を判定する。分岐が成立した場合、命令先読み装置1
は命令実行装置3で計算された分岐先アドレスを受取り
、新たに分岐先の命令コードを読出す。このとき履歴格
納装置4dは、命令実行装置3に保持している比較命令
の直前に実行した命令のアドレスをアドレスタグ部40
1dに、命令先読み装置1で読出された分岐先の命令コ
ードを候補命令部402dに、命令実行装置3で計算し
た分岐先アドレスを候補アドレス部403dに、分岐命
令に後続する命令のアドレスを次候補アドレス部404
dに、命令実行装置3に保持している比較命令の2つの
オペランドの汎用レジスタを指定する情報または即値を
比較第1オペランド部405dと比較第2オペランド部
406dに、分岐命令の条件コードを条件コード部40
7dに、それぞれ同一のエントリに格納し、成立予測部
408dを分岐が成立したことを示す11′にセットし
、有効ビット409dをエントリのデータが有効である
ことを示す” I′にセットする。
装置3は分岐先アドレスの計算を行ない分岐成立・不成
立を判定する。分岐が成立した場合、命令先読み装置1
は命令実行装置3で計算された分岐先アドレスを受取り
、新たに分岐先の命令コードを読出す。このとき履歴格
納装置4dは、命令実行装置3に保持している比較命令
の直前に実行した命令のアドレスをアドレスタグ部40
1dに、命令先読み装置1で読出された分岐先の命令コ
ードを候補命令部402dに、命令実行装置3で計算し
た分岐先アドレスを候補アドレス部403dに、分岐命
令に後続する命令のアドレスを次候補アドレス部404
dに、命令実行装置3に保持している比較命令の2つの
オペランドの汎用レジスタを指定する情報または即値を
比較第1オペランド部405dと比較第2オペランド部
406dに、分岐命令の条件コードを条件コード部40
7dに、それぞれ同一のエントリに格納し、成立予測部
408dを分岐が成立したことを示す11′にセットし
、有効ビット409dをエントリのデータが有効である
ことを示す” I′にセットする。
次に、上で述べた動作のあと再び同一の比較命令とそれ
に後続する分岐命令が実行される場合を説明する。
に後続する分岐命令が実行される場合を説明する。
今回も分岐が成立する可能性が高く、動作は以下のよう
になる。命令解読装置2がこの比較命令の直前の命令を
解読すると同時に分岐予測装置5dはこの命令のアドレ
スで履歴格納装置4dを検索する。このとき、そのアド
レスがアドレスタグ部401dにヒツトし、分岐予測装
置5dは分岐命令の実行を待たずに過去の履歴により分
岐の成立を予測し、分岐先の命令コードと分岐先アドレ
スをそれぞれ候補命令部402dと候補アドレス部40
3dから取出して命令解読装置2と命令先読み装置1に
送出する。命令解読装置2は比較命令の直前の命令の解
読終了後直ちに分岐予測装置5dから受取った分岐先の
命令コードの解読を開始し、命令先読み装置1はそれま
でに先読みした命令をキャンセルするとともに分岐予測
装置5dから受取った分岐先アドレスに対して候補命令
部402dの語長分だけ先のアドレスから命令の先読み
を行なう。命令実行装置3が分岐命令の次に実行される
と予測された命令を実行するのと並列に、分岐検証装置
6dは分岐予測装置5dから比較第1オペランド部40
5dと比較第2オペランド部408dに格納された比較
命令のオペランドの汎用レジスタを指定する情報(レジ
スタ番号)または即値を受取り、この内容に従って命令
実行装置3に内蔵された汎用レジスタを読出して比較を
行ない、その比較結果を命令実行装置3に内蔵するフラ
グレジスタに反映するとともに、分岐予測装置5dから
受取った条件コード部407dに格納された分岐命令の
条件コードと成立予測部408dが示す予測が分岐成立
側であることの情報とに基づき分岐予測の真偽を検証す
る。検証の結果、予測が真であることが判明すればその
まま処理を続行する。一方検証の結果、予測が偽である
ことが判明した場合は、分岐検証装置6dからの信号に
より命令実行装置3は分岐命令の次に実行されると予測
した命令の実行結果の格納をキャンセルし、命令解読装
置2は解読中の命令をキャンセルし、命令先読み装置1
は先読みした命令をキャンセルするとともに次候補アド
レス部404dに格納された分岐命令に後続する命令の
アドレスを分岐予測袋fif5dから受取り、このアド
レスにより新たに命令の先読みを行なう。このとき、次
に再び同一の比較命令とそれに後続する分岐命令が実行
される場合には分岐が成立しない可能性が高いと考えら
れるため、履歴格納装置4dは、アドレスタグ部401
dがヒツトしたエントリを次のように更新する。即ち、
命令先読み装置1で先読みされた分岐命令に後続する命
令の命令コードを候補命令部402dに、それまでの次
候補アドレス部404dの内容(分岐命令に後続する命
令のアドレス)を候補アドレス部403dに、それまで
の候補アドレス部403dの内容(分岐命令の分岐先ア
ドレス)を次候補アドレス部404dに格納し、成立予
測部408dを分岐が成立しなかったことを示す101
にリセットする。
になる。命令解読装置2がこの比較命令の直前の命令を
解読すると同時に分岐予測装置5dはこの命令のアドレ
スで履歴格納装置4dを検索する。このとき、そのアド
レスがアドレスタグ部401dにヒツトし、分岐予測装
置5dは分岐命令の実行を待たずに過去の履歴により分
岐の成立を予測し、分岐先の命令コードと分岐先アドレ
スをそれぞれ候補命令部402dと候補アドレス部40
3dから取出して命令解読装置2と命令先読み装置1に
送出する。命令解読装置2は比較命令の直前の命令の解
読終了後直ちに分岐予測装置5dから受取った分岐先の
命令コードの解読を開始し、命令先読み装置1はそれま
でに先読みした命令をキャンセルするとともに分岐予測
装置5dから受取った分岐先アドレスに対して候補命令
部402dの語長分だけ先のアドレスから命令の先読み
を行なう。命令実行装置3が分岐命令の次に実行される
と予測された命令を実行するのと並列に、分岐検証装置
6dは分岐予測装置5dから比較第1オペランド部40
5dと比較第2オペランド部408dに格納された比較
命令のオペランドの汎用レジスタを指定する情報(レジ
スタ番号)または即値を受取り、この内容に従って命令
実行装置3に内蔵された汎用レジスタを読出して比較を
行ない、その比較結果を命令実行装置3に内蔵するフラ
グレジスタに反映するとともに、分岐予測装置5dから
受取った条件コード部407dに格納された分岐命令の
条件コードと成立予測部408dが示す予測が分岐成立
側であることの情報とに基づき分岐予測の真偽を検証す
る。検証の結果、予測が真であることが判明すればその
まま処理を続行する。一方検証の結果、予測が偽である
ことが判明した場合は、分岐検証装置6dからの信号に
より命令実行装置3は分岐命令の次に実行されると予測
した命令の実行結果の格納をキャンセルし、命令解読装
置2は解読中の命令をキャンセルし、命令先読み装置1
は先読みした命令をキャンセルするとともに次候補アド
レス部404dに格納された分岐命令に後続する命令の
アドレスを分岐予測袋fif5dから受取り、このアド
レスにより新たに命令の先読みを行なう。このとき、次
に再び同一の比較命令とそれに後続する分岐命令が実行
される場合には分岐が成立しない可能性が高いと考えら
れるため、履歴格納装置4dは、アドレスタグ部401
dがヒツトしたエントリを次のように更新する。即ち、
命令先読み装置1で先読みされた分岐命令に後続する命
令の命令コードを候補命令部402dに、それまでの次
候補アドレス部404dの内容(分岐命令に後続する命
令のアドレス)を候補アドレス部403dに、それまで
の候補アドレス部403dの内容(分岐命令の分岐先ア
ドレス)を次候補アドレス部404dに格納し、成立予
測部408dを分岐が成立しなかったことを示す101
にリセットする。
第12図は分岐予測が真である場合の動作タイミング図
を示すものである。命令先読み装置1、分岐予測装置5
d1 命令解読装置2、命令実行装置3、分岐検証装置
6dにおいて実行されている命令をクロック単位で示し
ている。ここでは各装置の必要クロック数を1クロツク
としている。分岐予測装置5dがクロックt2で比較命
令の直前の命令(命令b)のアドレスで履歴格納装置4
dを検索すると、そのアドレスがアドレスタグ部401
dにヒツトし、分岐予測装置5dは分岐先の命令コード
と分岐先アドレスをそれぞれ命令解読装置2と命令先読
み装置1に送出する。クロックt3で命令解読装置2は
分岐先の命令コード(命令m)の解読を開始し、命令先
読み装置1は分岐先アドレスに対して候補命令部402
dの語長分だけ先のアドレスから命令(命令n)の先読
みを行なう。ただし同図では命令n以外の先読みのタイ
ミングは記していない。クロックt4で命令実行装置3
が分岐命令の次に実行されると予測された命令(命令m
)を実行するのと並列に、分岐検証装置6dは分岐予測
の真偽を検証する。検証の結果、予測が真であり、処理
は続行される。このように分岐成立の予測が正しい場合
は、比較命令の直前の命令(命令b)の実行後直ちに分
岐先の命令(命令m)を実行し、分岐命令(命令d)と
分岐命令に前置する比較命令(命令C)の実行うロック
数がともに零になる。
を示すものである。命令先読み装置1、分岐予測装置5
d1 命令解読装置2、命令実行装置3、分岐検証装置
6dにおいて実行されている命令をクロック単位で示し
ている。ここでは各装置の必要クロック数を1クロツク
としている。分岐予測装置5dがクロックt2で比較命
令の直前の命令(命令b)のアドレスで履歴格納装置4
dを検索すると、そのアドレスがアドレスタグ部401
dにヒツトし、分岐予測装置5dは分岐先の命令コード
と分岐先アドレスをそれぞれ命令解読装置2と命令先読
み装置1に送出する。クロックt3で命令解読装置2は
分岐先の命令コード(命令m)の解読を開始し、命令先
読み装置1は分岐先アドレスに対して候補命令部402
dの語長分だけ先のアドレスから命令(命令n)の先読
みを行なう。ただし同図では命令n以外の先読みのタイ
ミングは記していない。クロックt4で命令実行装置3
が分岐命令の次に実行されると予測された命令(命令m
)を実行するのと並列に、分岐検証装置6dは分岐予測
の真偽を検証する。検証の結果、予測が真であり、処理
は続行される。このように分岐成立の予測が正しい場合
は、比較命令の直前の命令(命令b)の実行後直ちに分
岐先の命令(命令m)を実行し、分岐命令(命令d)と
分岐命令に前置する比較命令(命令C)の実行うロック
数がともに零になる。
次に、アドレスタグ部401dがヒツトしないまま比較
命令に後続する分岐命令が実行され、分岐が成立しなか
った場合を説明する。
命令に後続する分岐命令が実行され、分岐が成立しなか
った場合を説明する。
即ち分岐が成立しなかった場合、分岐命令が命令実行装
置3で実行されるとき履歴格納装置4dは、命令実行装
置3に保持している比較命令の直前に実行した命令のア
ドレスをアドレスタグ部401dに、命令先読み装置1
で先読みされた分岐命令に後続する命令の命令コードを
候補命令部402dに、分岐命令に後続する命令のアド
レスを候補アドレス部403dに、命令実行装置3で計
算した分岐命令の分岐先アドレスを次候補アドレス部4
04dに、命令実行装置3に保持している比較命令の2
つのオペランドの汎用レジスタを指定する情報または即
値を比較第1オペランド部405dと比較第2オペラン
ド部406dに、分岐命令の条件コードを条件コード部
407dに、それぞれ同一のエン) IJに格納し、成
立予測部408dを分岐が成立しなかったことを示すI
O”にリセットし、有効ビット409dをエントリのデ
ータが有効であることを示す+ 1”にセットする。
置3で実行されるとき履歴格納装置4dは、命令実行装
置3に保持している比較命令の直前に実行した命令のア
ドレスをアドレスタグ部401dに、命令先読み装置1
で先読みされた分岐命令に後続する命令の命令コードを
候補命令部402dに、分岐命令に後続する命令のアド
レスを候補アドレス部403dに、命令実行装置3で計
算した分岐命令の分岐先アドレスを次候補アドレス部4
04dに、命令実行装置3に保持している比較命令の2
つのオペランドの汎用レジスタを指定する情報または即
値を比較第1オペランド部405dと比較第2オペラン
ド部406dに、分岐命令の条件コードを条件コード部
407dに、それぞれ同一のエン) IJに格納し、成
立予測部408dを分岐が成立しなかったことを示すI
O”にリセットし、有効ビット409dをエントリのデ
ータが有効であることを示す+ 1”にセットする。
次に、上に述べた動作のあと再び同一の比較命令とそれ
に後続する分岐命令が実行される場合を説明する。
に後続する分岐命令が実行される場合を説明する。
今回も分岐が成立しない可能性が高く、動作は以下のよ
うになる。命令解読装置2がこの比較命令の直前の命令
を解読すると同時に分岐予測装置5dはこの命令のアド
レスで履歴格納装置4dを検索する。このとき、そのア
ドレスがアドレスタグ部401dにヒツトし、分岐予測
装置5dは分岐命令の実行を待たずに過去の履歴により
分岐の不成立を予測し、分岐命令に後続する命令の命令
コードとそのアドレスをそれぞれ候補命令部402dと
候補アドレス部403dから取出して命令解読装置2と
命令先読み装置1に送出する。命令解読装置21ま比較
命令の直前の命令の解読終了後直ちに分岐予測装置5d
から受取った命令コードの解読を開始し、命令先読み装
置1はそれまでに先読みした命令をキャンセルするとと
もに分岐予測装置5dから受取ったアドレスに対して候
補命令部402dの語長分だけ先のアドレスから命令の
先読みを行なう。命令実行装置3が分岐命令の次に実行
されると予測された命令を実行するのと並列に、分岐検
証装置6dは分岐予測装置5dから比較第1オペランド
部405dと比較第2オペランド部406dに格納され
た比較命令のオペランドの汎用レジスタを指定する情報
(レジスタ番号)または即値を受取り、この内容に従っ
て命令実行装置3に内蔵された汎用レジスタを読出して
比較を行ない、その比較結果を命令実行装置3に内蔵す
るフラグレジスタに反映するとともに、分岐子71II
I装置5dから受取った条件コード部407dに格納さ
れた分岐命令の条件コードと成立予測部408dが示す
予測が分岐不成立側であることの情報とに基づき分岐予
測の真偽を検証する。検証の結果、予測が真であること
が判明すればそのまま処理を続行する。一方検証の結果
、予測が偽であることが判明した場合は、分岐検証装置
6dからの信号により命令実行装置3は分岐命令の次に
実行されると予測した命令の実行結果の格納をキャンセ
ルし、命令解読装置2は解読中の命令をキャンセルし、
命令先読み装置1は先読みした命令をキャンセルすると
ともに次候補アドレス部404dに格納された分岐先の
アドレスを分岐予測装置5dから受取り、このアドレス
により新たに命令の先読みを行なう。このとき、次に再
び同一の比較命令とそれに後続する分岐命令が実行され
る場合には分岐が成立する可能性が高いと考えられるた
め、履歴格納装置4dは、アドレスタグ部401dがヒ
ツトしたエントリを次のように更新する。即ち、命令先
読み装置1で読出された分岐先の命令の命令コードを候
補命令部402dに、それまでの次候補アドレス部40
4dの内容(分岐命令の分岐先アドレス)を候補アドレ
ス部403dに、それまでの候補アドレス部403dの
内容(分岐命令に後続する命令のアドレス)を次候補ア
ドレス部404dに格納し、成立予測部408dを分岐
が成立したことを示す”1゛にセットする。このように
分岐不成立の予測が正しい場合も、比較命令の直前の命
令の実行後直ちに分岐命令に後続する命令を実行し、分
岐命令と分岐命令に前置する比較命令の実行うロック数
がともに零になる。
うになる。命令解読装置2がこの比較命令の直前の命令
を解読すると同時に分岐予測装置5dはこの命令のアド
レスで履歴格納装置4dを検索する。このとき、そのア
ドレスがアドレスタグ部401dにヒツトし、分岐予測
装置5dは分岐命令の実行を待たずに過去の履歴により
分岐の不成立を予測し、分岐命令に後続する命令の命令
コードとそのアドレスをそれぞれ候補命令部402dと
候補アドレス部403dから取出して命令解読装置2と
命令先読み装置1に送出する。命令解読装置21ま比較
命令の直前の命令の解読終了後直ちに分岐予測装置5d
から受取った命令コードの解読を開始し、命令先読み装
置1はそれまでに先読みした命令をキャンセルするとと
もに分岐予測装置5dから受取ったアドレスに対して候
補命令部402dの語長分だけ先のアドレスから命令の
先読みを行なう。命令実行装置3が分岐命令の次に実行
されると予測された命令を実行するのと並列に、分岐検
証装置6dは分岐予測装置5dから比較第1オペランド
部405dと比較第2オペランド部406dに格納され
た比較命令のオペランドの汎用レジスタを指定する情報
(レジスタ番号)または即値を受取り、この内容に従っ
て命令実行装置3に内蔵された汎用レジスタを読出して
比較を行ない、その比較結果を命令実行装置3に内蔵す
るフラグレジスタに反映するとともに、分岐子71II
I装置5dから受取った条件コード部407dに格納さ
れた分岐命令の条件コードと成立予測部408dが示す
予測が分岐不成立側であることの情報とに基づき分岐予
測の真偽を検証する。検証の結果、予測が真であること
が判明すればそのまま処理を続行する。一方検証の結果
、予測が偽であることが判明した場合は、分岐検証装置
6dからの信号により命令実行装置3は分岐命令の次に
実行されると予測した命令の実行結果の格納をキャンセ
ルし、命令解読装置2は解読中の命令をキャンセルし、
命令先読み装置1は先読みした命令をキャンセルすると
ともに次候補アドレス部404dに格納された分岐先の
アドレスを分岐予測装置5dから受取り、このアドレス
により新たに命令の先読みを行なう。このとき、次に再
び同一の比較命令とそれに後続する分岐命令が実行され
る場合には分岐が成立する可能性が高いと考えられるた
め、履歴格納装置4dは、アドレスタグ部401dがヒ
ツトしたエントリを次のように更新する。即ち、命令先
読み装置1で読出された分岐先の命令の命令コードを候
補命令部402dに、それまでの次候補アドレス部40
4dの内容(分岐命令の分岐先アドレス)を候補アドレ
ス部403dに、それまでの候補アドレス部403dの
内容(分岐命令に後続する命令のアドレス)を次候補ア
ドレス部404dに格納し、成立予測部408dを分岐
が成立したことを示す”1゛にセットする。このように
分岐不成立の予測が正しい場合も、比較命令の直前の命
令の実行後直ちに分岐命令に後続する命令を実行し、分
岐命令と分岐命令に前置する比較命令の実行うロック数
がともに零になる。
以上のように本実施例によれば、比較命令より前の命令
が解読されている時に分岐予測装置5dがその命令のア
ドレスで履歴格納装置4dを検索して分岐命令の次に実
行されるべき命令の命令コードとそのアドレスを得、比
較命令および分岐命令の解読ならびに実行を行なわずに
比較命令の直前の命令に続いて分岐命令の次に実行され
ると予測された命令を解読・実行し、分岐検証装置6d
が予測の真偽の検証を分岐命令の次に実行されると予測
された命令の実行と並列に行なうことにより、分岐が成
立・不成立にかかわらず予測が真の場合の分岐命令と分
岐命令に前置する比較命令の実行うロック数をともに零
にすることができる。
が解読されている時に分岐予測装置5dがその命令のア
ドレスで履歴格納装置4dを検索して分岐命令の次に実
行されるべき命令の命令コードとそのアドレスを得、比
較命令および分岐命令の解読ならびに実行を行なわずに
比較命令の直前の命令に続いて分岐命令の次に実行され
ると予測された命令を解読・実行し、分岐検証装置6d
が予測の真偽の検証を分岐命令の次に実行されると予測
された命令の実行と並列に行なうことにより、分岐が成
立・不成立にかかわらず予測が真の場合の分岐命令と分
岐命令に前置する比較命令の実行うロック数をともに零
にすることができる。
なお、本実施例において履歴格納装置4dに候補命令部
402dを設けているが、これを省略してもよい。この
場合、命令解読装置2で解読中の命令のアドレスがアド
レスタグ部401dにヒツトしたとき、命令先読み装置
1は分岐予測装置5dから得られる分岐命令の次に実行
されるべき命令のアドレスから命令の先読みを開始し、
命令解読装置2は比較命令の直前の命令の解読を終了後
、命令先読み装置1から送出される命令を解読する。
402dを設けているが、これを省略してもよい。この
場合、命令解読装置2で解読中の命令のアドレスがアド
レスタグ部401dにヒツトしたとき、命令先読み装置
1は分岐予測装置5dから得られる分岐命令の次に実行
されるべき命令のアドレスから命令の先読みを開始し、
命令解読装置2は比較命令の直前の命令の解読を終了後
、命令先読み装置1から送出される命令を解読する。
また、本実施例において候補アドレス部403dに分岐
先アドレスまたは分岐命令に後続する命令のアドレスを
格納し、命令解読装置2で解読中の命令のアドレスがア
ドレスタグM401dにヒツトしたとき、命令先読み装
置1は分岐予測装置5dから得られるアドレスに対して
候補命令部402dの語長分だけ先のアドレスから命令
の先読みを開始しているが、予め候補アドレス部403
dに分岐先アドレスまたは分岐命令に後続する命令のア
ドレスに候補命令部402dの語長分を加算したものを
格納し、命令解読装置2で解読中の命令のアドレスがア
ドレスタグ部401dにヒツトしたとき、命令先読み装
置1は分岐予測装置5dから得られるアドレスから命令
の先読みを開始するようにしてもよい。
先アドレスまたは分岐命令に後続する命令のアドレスを
格納し、命令解読装置2で解読中の命令のアドレスがア
ドレスタグM401dにヒツトしたとき、命令先読み装
置1は分岐予測装置5dから得られるアドレスに対して
候補命令部402dの語長分だけ先のアドレスから命令
の先読みを開始しているが、予め候補アドレス部403
dに分岐先アドレスまたは分岐命令に後続する命令のア
ドレスに候補命令部402dの語長分を加算したものを
格納し、命令解読装置2で解読中の命令のアドレスがア
ドレスタグ部401dにヒツトしたとき、命令先読み装
置1は分岐予測装置5dから得られるアドレスから命令
の先読みを開始するようにしてもよい。
また、本実施例においてアドレスタグ部401dに比較
命令の直前の命令のアドレスを格納し、命令解読装置2
がこの比較命令の直前の命令を解読しているときに分岐
予測を行なっているが、直前の命令でなくとも比較命令
より前に実行された命令であれば如何なる命令でもよい
。
命令の直前の命令のアドレスを格納し、命令解読装置2
がこの比較命令の直前の命令を解読しているときに分岐
予測を行なっているが、直前の命令でなくとも比較命令
より前に実行された命令であれば如何なる命令でもよい
。
また、本実施例において命令解読装置2で解読中の命令
のアドレスがアドレスタグ部401dにヒツトし分岐成
立を予測したとき、命令先読み装置1はそれまでに先読
みした命令をリセットして新たに分岐先の命令の先読み
を開始しているが、これをリセットせずに保存しておき
、予測が外れ分岐が成立しなかったときにこれを読出し
て命令解読装置2に送るようにしてもよい。
のアドレスがアドレスタグ部401dにヒツトし分岐成
立を予測したとき、命令先読み装置1はそれまでに先読
みした命令をリセットして新たに分岐先の命令の先読み
を開始しているが、これをリセットせずに保存しておき
、予測が外れ分岐が成立しなかったときにこれを読出し
て命令解読装置2に送るようにしてもよい。
また、本実施例において履歴格納装置4dと分岐予測装
置5dは過去1回の最も新しい履歴に従って分岐の予測
を行なっているが、過去複数回の履歴に従って分岐の予
測を行なってもよい。
置5dは過去1回の最も新しい履歴に従って分岐の予測
を行なっているが、過去複数回の履歴に従って分岐の予
測を行なってもよい。
また、本実施例において分岐予測が外れた場合に候補ア
トl/入部403dの内容と次候補アドレス部404d
の内容を交換しているが、常に候補アドレス部403d
に分岐先アドレスを、次候補アドレス部404dに分岐
命令に後続する命令のアドレスを格納するようにし、命
令解読装置2で解読中の命令のアドレスがアドレスタグ
部401dにヒツトしたとき、成立予測部408dが1
1′ならば候補アドレス部403dの内容を、0ゝなら
ば次候補アドレス部404dの内容を命令先読み装置1
に送るようにしてもよい。
トl/入部403dの内容と次候補アドレス部404d
の内容を交換しているが、常に候補アドレス部403d
に分岐先アドレスを、次候補アドレス部404dに分岐
命令に後続する命令のアドレスを格納するようにし、命
令解読装置2で解読中の命令のアドレスがアドレスタグ
部401dにヒツトしたとき、成立予測部408dが1
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・
・・命令実行装置、4 al 4 b+ 4 C1
4d・・・履歴格納装置、5a・・・先行分岐装置、5
b、5d・・・分岐予測装置、8d、8b・・・分岐検
証装置、7・・・入出力バス、8・・・パス制御装置、
9・・・比較命令除去装置、10・・・比較装置。 代理人の氏名 弁理士 粟野重孝 はか18凭 図 錫 図 オシ ロ 図 第 図 第10図 第 図 第 図 第13図 第14図
の構成図、第2図は同実施例の履歴格納装置4aの構成
図、第3図は同実施例の動作タイミング図、第4図は本
発明の第2の実施例におけるデータ処理装置の構成図、
第5図は同実施例の履歴格納装置4bの構成図、第6図
は同実施例の動作タイミング図、第7図は本発明の第3
の実施例におけるデータ処理装置の構成図、第8図は同
実施例の履歴格納装置4cの構成図、第9図は同実施例
の動作タイミング図、第10図は本発明の第4の実施例
におけるデータ処理装置の構成図、第11図は同実施例
の履歴格納装置4dの構成図、第12図は同実施例の動
作タイミング図、第13図は従来のデータ処理装置の構
成図、第14図は同従来例の履歴格納装置14の構成図
である。 1・・・命令先読み装置、2・・・命令解読装置、3・
・・命令実行装置、4 al 4 b+ 4 C1
4d・・・履歴格納装置、5a・・・先行分岐装置、5
b、5d・・・分岐予測装置、8d、8b・・・分岐検
証装置、7・・・入出力バス、8・・・パス制御装置、
9・・・比較命令除去装置、10・・・比較装置。 代理人の氏名 弁理士 粟野重孝 はか18凭 図 錫 図 オシ ロ 図 第 図 第10図 第 図 第 図 第13図 第14図
Claims (4)
- (1)第1の命令を実行する少なくとも汎用レジスタと
演算器から成る命令実行手段と前記命令実行手段が前記
第1の命令を実行している間に前記第1の命令に後続す
る第2の命令を解読する命令解読手段と、前記命令解読
手段が前記第2の命令を解読している間に前記第2の命
令に後続する第3の命令を読出す命令先読み手段と、前
記命令実行手段で実行する第4の命令に後続し無条件に
分岐を行なう第5の命令を実行した結果、前記第5の命
令に連続しない第6の命令を前記命令実行手段が実行す
る場合に、前記第6の命令のアドレスもしくは前記第6
の命令コードとこの命令コードに続く命令を前記命令先
読み手段により読出すためのアドレスおよび前記第4の
命令のアドレスもしくは前記第4の命令より前に実行さ
れるべき命令のアドレスを格納する履歴格納手段と、前
記命令解読手段が前記第4の命令もしくは前記第4の命
令より前に実行されるべき命令を解読している間に解読
する命令のアドレスにより前記履歴格納手段を検索し前
記命令のアドレスが前記履歴格納手段に格納されている
場合は、前記命令先読み手段に対して前記第6の命令の
アドレスを出力するか、もしくは前記命令解読手段に対
して前記第6の命令の命令コードを、前記命令先読み手
段に対して前記第6の命令に続く命令を読出すためのア
ドレスを出力する先行分岐手段とを備え、前記先行分岐
手段における検索が成功した場合には前記命令実行手段
が前記第4の命令を実行後、続いて前記第6の命令を実
行することを特徴としたデータ処理装置。 - (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)第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)第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の命令
を実行することを特徴としたデータ処理装置。
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 true JPH02166520A (ja) | 1990-06-27 |
| JPH0769811B2 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) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5454087A (en) * | 1991-10-28 | 1995-09-26 | Hitachi, Ltd. | Branching system for return from subroutine using target address in return buffer accessed based on branch type information in BHT |
Families Citing this family (40)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| 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 |
| 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 |
| 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 |
| US5493687A (en) | 1991-07-08 | 1996-02-20 | Seiko Epson Corporation | RISC microprocessor architecture implementing multiple typed register sets |
| US5539911A (en) | 1991-07-08 | 1996-07-23 | Seiko Epson Corporation | High-performance, superscalar-based computer system with out-of-order instruction execution |
| 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 |
| WO1993020505A2 (en) | 1992-03-31 | 1993-10-14 | Seiko Epson Corporation | Superscalar risc instruction scheduling |
| KR950701437A (ko) | 1992-05-01 | 1995-03-23 | 요시오 야마자끼 | 슈퍼스칼라 마이크로프로세서에서의 명령어 회수를 위한 시스템 및 방법 |
| 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 |
| KR100292300B1 (ko) | 1992-12-31 | 2001-09-17 | 야스카와 히데아키 | 레지스터재명명시스템및방법 |
| 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 |
| US5621886A (en) * | 1995-06-19 | 1997-04-15 | Intel Corporation | Method and apparatus for providing efficient software debugging |
| US5740413A (en) * | 1995-06-19 | 1998-04-14 | Intel Corporation | Method and apparatus for providing address breakpoints, branch breakpoints, and single stepping |
| 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 |
| US9569613B2 (en) * | 2014-12-23 | 2017-02-14 | Intel Corporation | Techniques for enforcing control flow integrity using binary translation |
| 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 |
| US10664280B2 (en) * | 2015-11-09 | 2020-05-26 | MIPS Tech, LLC | Fetch ahead branch target buffer |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS5860355A (ja) * | 1981-10-07 | 1983-04-09 | Nec Corp | 情報処理装置 |
| JPS58123141A (ja) * | 1982-01-19 | 1983-07-22 | Nec Corp | 高速計数分岐実行方式 |
Family Cites Families (5)
| 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 |
| EP0109655B1 (en) * | 1982-11-17 | 1991-07-24 | Nec Corporation | Instruction prefetching device with prediction of a branch destination address |
| 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 |
-
1988
- 1988-12-21 JP JP63322631A patent/JPH0769811B2/ja not_active Expired - Lifetime
-
1989
- 1989-12-15 US US07/451,252 patent/US5237666A/en not_active Expired - Lifetime
- 1989-12-19 EP EP89313289A patent/EP0375364B1/en not_active Expired - Lifetime
- 1989-12-19 DE DE68928374T patent/DE68928374T2/de not_active Expired - Lifetime
- 1989-12-21 KR KR1019890019110A patent/KR920006744B1/ko not_active Expired
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS5860355A (ja) * | 1981-10-07 | 1983-04-09 | Nec Corp | 情報処理装置 |
| JPS58123141A (ja) * | 1982-01-19 | 1983-07-22 | Nec Corp | 高速計数分岐実行方式 |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5454087A (en) * | 1991-10-28 | 1995-09-26 | Hitachi, Ltd. | Branching system for return from subroutine using target address in return buffer accessed based on branch type information in BHT |
Also Published As
| Publication number | Publication date |
|---|---|
| KR900010553A (ko) | 1990-07-07 |
| DE68928374T2 (de) | 1998-03-19 |
| KR920006744B1 (ko) | 1992-08-17 |
| EP0375364B1 (en) | 1997-10-08 |
| JPH0769811B2 (ja) | 1995-07-31 |
| EP0375364A3 (en) | 1992-06-10 |
| EP0375364A2 (en) | 1990-06-27 |
| DE68928374D1 (de) | 1997-11-13 |
| US5237666A (en) | 1993-08-17 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5237666A (en) | Apparatus using address of a predetermined preceding instruction and target instruction address stored in history table to prefetch target instruction | |
| US4827402A (en) | Branch advanced control apparatus for advanced control of a branch instruction in a data processing system | |
| JP2603626B2 (ja) | データ処理装置 | |
| US5265213A (en) | Pipeline system for executing predicted branch target instruction in a cycle concurrently with the execution of branch instruction | |
| EP0468134A2 (en) | Subroutine return through branch history table | |
| JP5209633B2 (ja) | ワーキング・グローバル・ヒストリ・レジスタを備えるシステム及び方法 | |
| CN112596792A (zh) | 分支预测方法、装置、介质及设备 | |
| US7603545B2 (en) | Instruction control method and processor to process instructions by out-of-order processing using delay instructions for branching | |
| JP3843048B2 (ja) | 分岐予測機構を有する情報処理装置 | |
| JP2723238B2 (ja) | 情報処理装置 | |
| JP2886838B2 (ja) | スーパースカラパイプライン式データ処理装置の可変長命令の並列デコーディング装置及び方法 | |
| KR900010552A (ko) | 명령을 페치(fetch)하기 위한 제어 시스템 | |
| JP4728877B2 (ja) | マイクロプロセッサおよびパイプライン制御方法 | |
| US6948055B1 (en) | Accuracy of multiple branch prediction schemes | |
| JP2508021B2 (ja) | デ−タ処理装置 | |
| EP4610818A1 (en) | Methods for training a load-store dependence predictor and for predicting memory dependence based on the path between dependent instructions and a processor associated with them | |
| JP3471691B2 (ja) | マイクロ命令における分岐命令制御方式 | |
| JP3851235B2 (ja) | 分岐予測装置および分岐予測方法 | |
| JP3967363B2 (ja) | 分岐予測装置および分岐予測方法 | |
| JP3102846B2 (ja) | ロードアドレスキャッシュ装置及び方法 | |
| HK40092280B (en) | Branch prediction method, apparatus, processor, medium, and device | |
| JP4113227B2 (ja) | 分岐予測機構を有する情報処理装置 | |
| JPH06149569A (ja) | レジスタ番号変更装置 | |
| JPH06301538A (ja) | 条件分岐命令処理装置 | |
| JPH03177926A (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 |