JPH0650465B2 - 分岐制御回路 - Google Patents
分岐制御回路Info
- Publication number
- JPH0650465B2 JPH0650465B2 JP1266158A JP26615889A JPH0650465B2 JP H0650465 B2 JPH0650465 B2 JP H0650465B2 JP 1266158 A JP1266158 A JP 1266158A JP 26615889 A JP26615889 A JP 26615889A JP H0650465 B2 JPH0650465 B2 JP H0650465B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- branch
- circuit
- pipeline
- bits
- 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 - Fee Related
Links
- 238000000034 method Methods 0.000 claims description 10
- 238000006073 displacement reaction Methods 0.000 description 16
- 238000010586 diagram Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 4
- 238000007796 conventional method Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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; CALCULATING OR 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/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
- G06F9/322—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
- G06F9/324—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address using program counter relative addressing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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)
Description
【発明の詳細な説明】 [発明の目的] (産業上の利用分野) 本発明はパイプライン方式データ処理装置の分岐制御回
路、特に分岐によるパイプラインの乱れを最小に抑制す
る分岐制御回路に関するものである。
路、特に分岐によるパイプラインの乱れを最小に抑制す
る分岐制御回路に関するものである。
(従来の技術) パイプライン方式のデータ処理装置においては命令の実
行処理が高速に行なえるため、現在においては多くのデ
ータ処理装置がパイプライン方式を採用している。
行処理が高速に行なえるため、現在においては多くのデ
ータ処理装置がパイプライン方式を採用している。
パイプライン方式の構成の一例を挙げれば、命令フェッ
チ段、命令デコード段、実効アドレス計算段、オペラン
ドフェッチ段、命令実行段の5つのパイプライン段で構
成されており、命令はメモリから逐次的に読出され、各
パイプライン段(ステージ)を順に流れて処理が行なわ
れる。すなわち、各パイプライン段で異なる命令が処理
され、パイプラインの流れに乱れがない処理状態で最高
の性能が得られることになる。
チ段、命令デコード段、実効アドレス計算段、オペラン
ドフェッチ段、命令実行段の5つのパイプライン段で構
成されており、命令はメモリから逐次的に読出され、各
パイプライン段(ステージ)を順に流れて処理が行なわ
れる。すなわち、各パイプライン段で異なる命令が処理
され、パイプラインの流れに乱れがない処理状態で最高
の性能が得られることになる。
したがって、非パイプライン方式のデータ処理において
は、各処理段ごとに1マシンサイクル要する場合に1命
令の実行に5マシンサイクル必要であるのに対し、パイ
プライン方式では前記乱れのない最高の性能状態では1
マシンサイクル毎に命令が実行されるので5倍の性能が
得られる。
は、各処理段ごとに1マシンサイクル要する場合に1命
令の実行に5マシンサイクル必要であるのに対し、パイ
プライン方式では前記乱れのない最高の性能状態では1
マシンサイクル毎に命令が実行されるので5倍の性能が
得られる。
(発明が解決しようとする課題) しかしながら、パイプライン方式においては、分岐命令
により分岐が行なわれた時に命令の流れが乱れてしま
い、当該分岐命令以降の命令ですでにパイプライン中で
処理が進んでいるものが無効にされ、分岐先の命令から
処理を再開しなければならなくなってしまう。その結
果、性能の低下を招くことになっている。
により分岐が行なわれた時に命令の流れが乱れてしま
い、当該分岐命令以降の命令ですでにパイプライン中で
処理が進んでいるものが無効にされ、分岐先の命令から
処理を再開しなければならなくなってしまう。その結
果、性能の低下を招くことになっている。
上記の問題に対処する方式として、分岐予測による処理
方式が提案されている。この方式では分岐命令ごとの分
岐予測情報により分岐が成功するか否かを予測し、成功
すると予測した場合には、当該分岐命令実行前に、分岐
先命令を先に実行することによりパイプラインの乱れを
少なくしている。
方式が提案されている。この方式では分岐命令ごとの分
岐予測情報により分岐が成功するか否かを予測し、成功
すると予測した場合には、当該分岐命令実行前に、分岐
先命令を先に実行することによりパイプラインの乱れを
少なくしている。
しかし上記の方式では、分岐先のアドレスを何らかの手
段で求める必要がある。
段で求める必要がある。
分岐先のアドレスを求める方式として命令フェッチ段で
対応表を引く方式がある。
対応表を引く方式がある。
第10図は、従来技術による分岐制御において対応表を
引く方式を示す。
引く方式を示す。
同図に示すように、分岐命令BIのアドレスと分岐先命
令TIの分岐先アドレスの対応表を持たせておいて、命
令フェッチ段あるいは命令デコード段で対応表を引き、
分岐先のアドレスを得ている。そして分岐命令BIの分
岐が成功すると予測された場合には、対応表から得た分
岐先アドレスから命令フェッチを開始するようになって
いる。したがって、確かに、従来方式においても第10
図に示すように分岐予測が成功(ヒット)した場合には
分岐に伴なう乱れは最小に抑えられる。
令TIの分岐先アドレスの対応表を持たせておいて、命
令フェッチ段あるいは命令デコード段で対応表を引き、
分岐先のアドレスを得ている。そして分岐命令BIの分
岐が成功すると予測された場合には、対応表から得た分
岐先アドレスから命令フェッチを開始するようになって
いる。したがって、確かに、従来方式においても第10
図に示すように分岐予測が成功(ヒット)した場合には
分岐に伴なう乱れは最小に抑えられる。
しかしながら、上記従来技術による方式においては、対
応表を用いるため該対応表の内容に相当するハードウェ
ア量が大となってしまうので、対応表のエントリ数を多
くすることはできない問題があった。
応表を用いるため該対応表の内容に相当するハードウェ
ア量が大となってしまうので、対応表のエントリ数を多
くすることはできない問題があった。
一方、対向表に対するエントリ数を小さくしようとする
と、第11図に示すように、対応表にアクセスした場合
に不成功(ミスヒット)する比率も高くなる。すなわ
ち、ミスヒットする比率が高くなるということは、分岐
命令BIの分岐予測が不可能となることを意味してい
る。
と、第11図に示すように、対応表にアクセスした場合
に不成功(ミスヒット)する比率も高くなる。すなわ
ち、ミスヒットする比率が高くなるということは、分岐
命令BIの分岐予測が不可能となることを意味してい
る。
このように従来のパイプライン方式による命令の実行処
理においては、分岐予測をヒットさせようとするとハー
ドウェア量も大となってしまい、一方対応表に対するエ
ントリ数を少なくすると分岐予測がミスヒットしてしま
い、パイプラインの乱れを生じてしまうという二律背反
の問題があった。
理においては、分岐予測をヒットさせようとするとハー
ドウェア量も大となってしまい、一方対応表に対するエ
ントリ数を少なくすると分岐予測がミスヒットしてしま
い、パイプラインの乱れを生じてしまうという二律背反
の問題があった。
[発明の構成] (課題を解決するための手段) 本発明は上記の問題点を解決するためになされたもの
で、その目的は、少ないハードウェア構成により、分岐
命令によるパイプラインの乱れを最小に抑えることので
きる分岐制御回路を提供することである。
で、その目的は、少ないハードウェア構成により、分岐
命令によるパイプラインの乱れを最小に抑えることので
きる分岐制御回路を提供することである。
このため本発明においては、通常の主デコード回路の外
に副デコード回路を設け、出現頻度の高い短縮形の相対
分岐命令のみを前記副デコード回路で分岐予測するよう
に構成している。
に副デコード回路を設け、出現頻度の高い短縮形の相対
分岐命令のみを前記副デコード回路で分岐予測するよう
に構成している。
(作用) したがって、分岐先アドレスを記憶しておくメモリが不
要となると共に分岐命令のアドレスと該命令中のディス
プレースメントとを加算することにより分岐先アドレス
を得ることができる。したがって、セレクタと加算を用
いるだけで分岐制御回路が構成できる。
要となると共に分岐命令のアドレスと該命令中のディス
プレースメントとを加算することにより分岐先アドレス
を得ることができる。したがって、セレクタと加算を用
いるだけで分岐制御回路が構成できる。
(実施例) 第1図は本発明による分岐制御回路の一実施例を示す。
図示の分岐制御命令は、命令フェッチ段からの命令を保
持する命令バッファ101、短縮形の相対分岐命令のみ
をデコードする副デコード回路102、および一般形の
相対分岐命令をデコードする主デコード回路103から
構成されている。
持する命令バッファ101、短縮形の相対分岐命令のみ
をデコードする副デコード回路102、および一般形の
相対分岐命令をデコードする主デコード回路103から
構成されている。
動作においては、副デコード回路102において短縮形
の相対分岐命令のみをデコードして分岐予測を行ない、
主デコード回路103は命令バッファの先頭に格納され
ている命令を信号線106を介して入力し、それをデコ
ードして以降の処理に適する内部命令へと変換し、信号
線109へ出力し、一般形の相対分岐命令の分岐予測を
おこない、分岐先アドレスを信号線111へ、そのアド
レスが有効であることを分岐先アドレス有効信号線11
0へ出力する。
の相対分岐命令のみをデコードして分岐予測を行ない、
主デコード回路103は命令バッファの先頭に格納され
ている命令を信号線106を介して入力し、それをデコ
ードして以降の処理に適する内部命令へと変換し、信号
線109へ出力し、一般形の相対分岐命令の分岐予測を
おこない、分岐先アドレスを信号線111へ、そのアド
レスが有効であることを分岐先アドレス有効信号線11
0へ出力する。
第2図は、本発明に用いられる命令のフォーマットを示
す。図示したように該命令フォーマットは1ハーフワー
ド(HW)を基本単位とし、可変長となっている。1H
Wの命令は分岐情報を示すBI部と命令機能およびオペ
ランド情報を示すINST部から構成される。BI部は
本実施例では1ビットであり、BI部に続くINST部
が分岐命令の先頭で、かつその分岐命令の分岐が成功す
ると予測されるとき“1”であり、それ以外は“0”で
あり、INST部は16ビットにしている。命令バッフ
ァへは後述するように4HW単位でアライメントのとれ
た4HWの命令が一度に命令フェッチ部から与えられ
る。また命令バッファ101は格納している命令の先頭
3HW分を第1図の信号線106を介して主デコード回
路103へ出力する。
す。図示したように該命令フォーマットは1ハーフワー
ド(HW)を基本単位とし、可変長となっている。1H
Wの命令は分岐情報を示すBI部と命令機能およびオペ
ランド情報を示すINST部から構成される。BI部は
本実施例では1ビットであり、BI部に続くINST部
が分岐命令の先頭で、かつその分岐命令の分岐が成功す
ると予測されるとき“1”であり、それ以外は“0”で
あり、INST部は16ビットにしている。命令バッフ
ァへは後述するように4HW単位でアライメントのとれ
た4HWの命令が一度に命令フェッチ部から与えられ
る。また命令バッファ101は格納している命令の先頭
3HW分を第1図の信号線106を介して主デコード回
路103へ出力する。
第3図は本発明による予測制御回路において用いられる
短縮形および一般形の相対分岐命令フォーマットを示
す。該分岐命令はそのアドレスと命令中に含まれるディ
スプレースメントを加えた値を分岐先アドレスとして用
いる。すなわち、短縮形の相対分岐命令は命令長が1H
Wであり、INST部の0〜7ビットが相対分岐命令で
あることを示すオペレーションコード(OP)部であ
り、8〜15ビットが8ビットのディスプレースメント
(#d8)を示す。一般形の相対分岐命令は、ディスプ
レースメントのサイズとして8ビット、16ビット、3
2ビットを選ぶことができる。ディスプレースメントが
8ビットのときは相対分岐命令中のssファールドはooで
ある。この時、命令は2HWであり、第1HWが分岐命
令の機能を、第2HWがディスプレースメントを示し、
ディスプレースメントの下位8ビットが有効である。デ
ィスプレースメントが16ビットのときは相対分岐命令
中のSSフィールドは01である。この時、命令は2H
Wであり、第1HWが分岐命令の機能を、第2HWがデ
ィスプレースメントを示す。ディスプレースメントが3
2ビットのときは相対分岐命令中のssフィールドは10
である。この時、命令は3HWであり、第1HWが分岐
命令の機能を、第2HWがディスプレースメントの上位
16ビット、第3HWがディスプレースメントの下位1
6ビットを示す。副デコード回路102が分岐予測する
命令は短縮形の相対分岐命令に限定される。第4図は第
1図に示した副デコード回路102の詳細な構成を示
す。
短縮形および一般形の相対分岐命令フォーマットを示
す。該分岐命令はそのアドレスと命令中に含まれるディ
スプレースメントを加えた値を分岐先アドレスとして用
いる。すなわち、短縮形の相対分岐命令は命令長が1H
Wであり、INST部の0〜7ビットが相対分岐命令で
あることを示すオペレーションコード(OP)部であ
り、8〜15ビットが8ビットのディスプレースメント
(#d8)を示す。一般形の相対分岐命令は、ディスプ
レースメントのサイズとして8ビット、16ビット、3
2ビットを選ぶことができる。ディスプレースメントが
8ビットのときは相対分岐命令中のssファールドはooで
ある。この時、命令は2HWであり、第1HWが分岐命
令の機能を、第2HWがディスプレースメントを示し、
ディスプレースメントの下位8ビットが有効である。デ
ィスプレースメントが16ビットのときは相対分岐命令
中のSSフィールドは01である。この時、命令は2H
Wであり、第1HWが分岐命令の機能を、第2HWがデ
ィスプレースメントを示す。ディスプレースメントが3
2ビットのときは相対分岐命令中のssフィールドは10
である。この時、命令は3HWであり、第1HWが分岐
命令の機能を、第2HWがディスプレースメントの上位
16ビット、第3HWがディスプレースメントの下位1
6ビットを示す。副デコード回路102が分岐予測する
命令は短縮形の相対分岐命令に限定される。第4図は第
1図に示した副デコード回路102の詳細な構成を示
す。
同図に示した副デコード回路102は、命令ラッチ40
1、フェッチPC402、セレクタ403、分岐命令デ
コード回路404、および加算器405で構成されてい
る。
1、フェッチPC402、セレクタ403、分岐命令デ
コード回路404、および加算器405で構成されてい
る。
動作においては、命令フェッチ部から線104を介して
読み出された4HWの命令は命令ラッチ401に格納さ
れ、線105を介して読み出された命令の先頭アドレス
がフェッチPC402へ格納される。フェッチPCのビ
ット31は最小命令単位がHWであるので常に0であ
る。命令は4HW単位でアライメントがとれており、フ
ェッチPC402のアドレスの29,30ビットが“0
0”の命令がINSTの0〜15ビット、“01”の命
令がINSTの16〜31ビット、“10”の命令がI
NSTの32〜47ビット、“11”の命令がINST
の48〜63ビットへ格納される。命令が逐次的にフェ
ッチされているときはフェッチPCのビット位置29,
30は00であり、命令ラッチの4HWすべてが有効で
ある。分岐先の命令がフェッチされた場合はフェッチP
Cの29,30は分岐先のアドレスとなり、命令ラッチ
はそのアドレス以降が有効である。例えば、フェッチP
Cの29,30が10のときは命令ラッチのINSTの
32〜63ビット、BIの2〜3ビットが有効となる。
セレクタ403は命令ラッチのBI0〜3とフェッチP
Cの29,30ビットより命令ラッチの4HWの内、1
HWを選択し、分岐命令デコード回路404を加算器4
05へ出力する。
読み出された4HWの命令は命令ラッチ401に格納さ
れ、線105を介して読み出された命令の先頭アドレス
がフェッチPC402へ格納される。フェッチPCのビ
ット31は最小命令単位がHWであるので常に0であ
る。命令は4HW単位でアライメントがとれており、フ
ェッチPC402のアドレスの29,30ビットが“0
0”の命令がINSTの0〜15ビット、“01”の命
令がINSTの16〜31ビット、“10”の命令がI
NSTの32〜47ビット、“11”の命令がINST
の48〜63ビットへ格納される。命令が逐次的にフェ
ッチされているときはフェッチPCのビット位置29,
30は00であり、命令ラッチの4HWすべてが有効で
ある。分岐先の命令がフェッチされた場合はフェッチP
Cの29,30は分岐先のアドレスとなり、命令ラッチ
はそのアドレス以降が有効である。例えば、フェッチP
Cの29,30が10のときは命令ラッチのINSTの
32〜63ビット、BIの2〜3ビットが有効となる。
セレクタ403は命令ラッチのBI0〜3とフェッチP
Cの29,30ビットより命令ラッチの4HWの内、1
HWを選択し、分岐命令デコード回路404を加算器4
05へ出力する。
第5図は、フェッチPC402の29,30ビットの状
態および分岐情報BI0〜BI3までのビット状態によ
ってセレクタ403の出力選択動作を示す。例えば、フ
ェッチPCの上記ビット位置が[1,0]でBI[0]
=0,BI[1]=0、BI[2]=1であれば、IN
ST[32〜47]ビット出力が選択される。
態および分岐情報BI0〜BI3までのビット状態によ
ってセレクタ403の出力選択動作を示す。例えば、フ
ェッチPCの上記ビット位置が[1,0]でBI[0]
=0,BI[1]=0、BI[2]=1であれば、IN
ST[32〜47]ビット出力が選択される。
セレクタ403は、命令ラッチ401内に分岐が成功す
ると予測される命令がある場合、その命令のHWが分岐
命令デコード回路404と加算器405へ出力される。
分岐が成功すると予測される命令がない場合は、すべて
1が出力される。分岐命令デコード回路404では、セ
レクタ403の出力の内上位の1バイトを入力する。こ
の1バイトの値が短縮形の相対分岐命令のオペコード部
と一致する場合は、分岐先アドレス有効信号109を出
力する。全て1のビットパターンは短縮形の相対分岐命
令のオペコード部OPと一致しない。加算器405は、
セレクタの出力の下位1バイトを1ビット左シフトした
ものとフェッチPCの値を加算し、その結果を信号線1
08に出力する。
ると予測される命令がある場合、その命令のHWが分岐
命令デコード回路404と加算器405へ出力される。
分岐が成功すると予測される命令がない場合は、すべて
1が出力される。分岐命令デコード回路404では、セ
レクタ403の出力の内上位の1バイトを入力する。こ
の1バイトの値が短縮形の相対分岐命令のオペコード部
と一致する場合は、分岐先アドレス有効信号109を出
力する。全て1のビットパターンは短縮形の相対分岐命
令のオペコード部OPと一致しない。加算器405は、
セレクタの出力の下位1バイトを1ビット左シフトした
ものとフェッチPCの値を加算し、その結果を信号線1
08に出力する。
第6図は、副デコード回路102で分岐予測を行なった
場合のパイプラインの流れを示す。
場合のパイプラインの流れを示す。
同図に示すように本発明においては、第1図の回路で副
デコード回路102は命令バッファ101に新たに入力
される命令をデコードし、主デコード回路103は命令
バッファの先頭の命令をデコードするので、第6図のサ
イクル1では副デコード回路102と主デコード回路1
03は同時に異なる命令をデコードしている。したがっ
てこの場合に、分岐予測が成功すれば分岐によるパイプ
ラインの乱れはなくなる。
デコード回路102は命令バッファ101に新たに入力
される命令をデコードし、主デコード回路103は命令
バッファの先頭の命令をデコードするので、第6図のサ
イクル1では副デコード回路102と主デコード回路1
03は同時に異なる命令をデコードしている。したがっ
てこの場合に、分岐予測が成功すれば分岐によるパイプ
ラインの乱れはなくなる。
第7図は、第1図に示した主デコード回路103の詳細
な構成を示す。
な構成を示す。
同図に示した主デコード回路101は、命令ラッチ70
1、デコードPC702、セレクタ703、デコード回
路704、第1の加算器705、および第2の加算器7
06で構成されている。この主デコード回路101の命
令バッファ101から与えられる命令は3HWであり、
命令ラッチ701に格納される。命令ラッチ701の第
1HW(BI[0]とINST[0〜15])はデコー
ド回路704へ入力される。デコード回路704では、
与えられた命令を内部命令に変換し、それを信号線10
9を介して実効アドレス計算部へ出力する。また、デコ
ードした命令長を第1の加算器706へ出力する。前記
第2の加算器706は、命令ラッチの第1HWのアドレ
スを示すデコードPC702とデコード回路の出力する
デコードした命令長を加える。次の命令が第1図の命令
バッファ101から入力されたときに第2の加算器70
6の出力値はデコードPC702に格納される。分岐が
成功したときは命令フェッチ部から信号線105を介し
て与えられる命令フェッチアドレスが、デコードPC7
02に格納される。デコード回路はBI[0]が1で、
かつINST[0〜15]が一般形の相対分岐命令のビ
ットパターンと一致するとき分岐アドレス有効信号11
0を出力する。このとき分岐先アドレスはセレクタ70
3と第1の加算器705から計算されている。セレクタ
703は、一般形の相対分岐命令のディスプレースメン
トを選択する。一般形の相対分岐命令のディスプレース
メントのサイズは命令中のssフィールド(INST[6
〜7])で示される。
1、デコードPC702、セレクタ703、デコード回
路704、第1の加算器705、および第2の加算器7
06で構成されている。この主デコード回路101の命
令バッファ101から与えられる命令は3HWであり、
命令ラッチ701に格納される。命令ラッチ701の第
1HW(BI[0]とINST[0〜15])はデコー
ド回路704へ入力される。デコード回路704では、
与えられた命令を内部命令に変換し、それを信号線10
9を介して実効アドレス計算部へ出力する。また、デコ
ードした命令長を第1の加算器706へ出力する。前記
第2の加算器706は、命令ラッチの第1HWのアドレ
スを示すデコードPC702とデコード回路の出力する
デコードした命令長を加える。次の命令が第1図の命令
バッファ101から入力されたときに第2の加算器70
6の出力値はデコードPC702に格納される。分岐が
成功したときは命令フェッチ部から信号線105を介し
て与えられる命令フェッチアドレスが、デコードPC7
02に格納される。デコード回路はBI[0]が1で、
かつINST[0〜15]が一般形の相対分岐命令のビ
ットパターンと一致するとき分岐アドレス有効信号11
0を出力する。このとき分岐先アドレスはセレクタ70
3と第1の加算器705から計算されている。セレクタ
703は、一般形の相対分岐命令のディスプレースメン
トを選択する。一般形の相対分岐命令のディスプレース
メントのサイズは命令中のssフィールド(INST[6
〜7])で示される。
第8図は、第1HW中のssフィールドで指定されるビッ
ト状態とセレクタ703の選択出力との関係を示す。
ト状態とセレクタ703の選択出力との関係を示す。
すなわち、第7図において、第1の加算器705はデコ
ードPC702の値とセレクタ703で選択された出力
である相対分岐命令のディスプレースメント値(第8図
中の各INSTのビット値)とを加算し分岐先アドレス
を求め信号線111を介して出力する。
ードPC702の値とセレクタ703で選択された出力
である相対分岐命令のディスプレースメント値(第8図
中の各INSTのビット値)とを加算し分岐先アドレス
を求め信号線111を介して出力する。
第9図は、第7図を示した主デコード回路103で分岐
予測を行なった場合のパイプラインの流れを示す。すな
わち、前記主デコード回路103において、サイクル1
で分岐が成功すると予測された分岐命令BIがデコード
され、サイクル2で分岐先命令TIがフェッチされ、サ
イクル3でフェッチされた前記命令が主デコード回路1
03で再びデコードされるため、分岐命令BIと分岐先
命令TIとの間のパイプラインの乱れは1サイクルとな
る。
予測を行なった場合のパイプラインの流れを示す。すな
わち、前記主デコード回路103において、サイクル1
で分岐が成功すると予測された分岐命令BIがデコード
され、サイクル2で分岐先命令TIがフェッチされ、サ
イクル3でフェッチされた前記命令が主デコード回路1
03で再びデコードされるため、分岐命令BIと分岐先
命令TIとの間のパイプラインの乱れは1サイクルとな
る。
以上述べてきたように、本発明の実施例において分岐予
測情報を示すBIは1HW当り1ビットの場合につい
て、分岐予測が成功(ヒット)すれば“1”、不成功
(ミスヒット)であれば“0”とすることによって各分
岐毎に予測が行なえる点を説明した。
測情報を示すBIは1HW当り1ビットの場合につい
て、分岐予測が成功(ヒット)すれば“1”、不成功
(ミスヒット)であれば“0”とすることによって各分
岐毎に予測が行なえる点を説明した。
しかしながら、BI部を1ビットより多くして、過去複
数回の分岐の方向の履歴をBI部に含むようにして、こ
れに基づいて分岐予測を行うようにしてもよい。
数回の分岐の方向の履歴をBI部に含むようにして、こ
れに基づいて分岐予測を行うようにしてもよい。
さらに、主デコード回路103を改良し、短縮形の相対
分岐命令の内、無条件分岐命令で、BI部が“0”であ
って、副デコード回路102で分岐予測されなかったも
のを主デコード回路103において分岐予測されるよう
にしてもよい。
分岐命令の内、無条件分岐命令で、BI部が“0”であ
って、副デコード回路102で分岐予測されなかったも
のを主デコード回路103において分岐予測されるよう
にしてもよい。
[発明の効果] 本発明による分岐制御回路の実施例においては主デコー
ド回路の外に副デコード回路を設けると共に、出現頻度
の高い短縮形の相対分岐命令のみを副デコード回路で分
岐予測するようにし、かつ分岐先アドレスを求めること
を分岐命令のアドレスと分岐命令中のディスプレースメ
ントを加算することによって得ているため、セレクタと
加算器の組合せの少ないハードウェアで構成することが
できる。また、本発明においては、分岐先アドレスを記
憶しておく必要がないので分岐先アドレス記憶用のメモ
リが不要となると共に、分岐予測が成功したときのパイ
プラインの乱れを最小に抑えることができる。
ド回路の外に副デコード回路を設けると共に、出現頻度
の高い短縮形の相対分岐命令のみを副デコード回路で分
岐予測するようにし、かつ分岐先アドレスを求めること
を分岐命令のアドレスと分岐命令中のディスプレースメ
ントを加算することによって得ているため、セレクタと
加算器の組合せの少ないハードウェアで構成することが
できる。また、本発明においては、分岐先アドレスを記
憶しておく必要がないので分岐先アドレス記憶用のメモ
リが不要となると共に、分岐予測が成功したときのパイ
プラインの乱れを最小に抑えることができる。
第1図は本発明による分岐制御回路の基本構成図、 第2図は本発明の分岐制御回路で用いられる命令フォー
マット図、 第3図は本発明の回路で用いられる各形の相対分岐命令
フォーマット図、 第4図は第1図の副デコード回路の詳細図、 第5図は第4図の各分岐予測情報、フェッチPCの各ビ
ット状態とセレクタ出力の関係を示す図、 第6図は副デコード回路での分岐予測動作を説明するパ
イプライン流れ図、 第7図は第1図の主デコード回路の詳細図、 第8図はss部のビット状態とセレクタ出力の関係図、 第9図は主デコード回路での分岐予測動作を説明するパ
イプライン流れ図、 第10図は従来技術による分岐制御方式における分岐予
測成功の場合のパイプライン流れ図、 第11図は従来技術による方式における分岐不成功の場
合のパイプライン流れ図である。 101……命令バッファ 102……副デコード回路 103……主デコード回路
マット図、 第3図は本発明の回路で用いられる各形の相対分岐命令
フォーマット図、 第4図は第1図の副デコード回路の詳細図、 第5図は第4図の各分岐予測情報、フェッチPCの各ビ
ット状態とセレクタ出力の関係を示す図、 第6図は副デコード回路での分岐予測動作を説明するパ
イプライン流れ図、 第7図は第1図の主デコード回路の詳細図、 第8図はss部のビット状態とセレクタ出力の関係図、 第9図は主デコード回路での分岐予測動作を説明するパ
イプライン流れ図、 第10図は従来技術による分岐制御方式における分岐予
測成功の場合のパイプライン流れ図、 第11図は従来技術による方式における分岐不成功の場
合のパイプライン流れ図である。 101……命令バッファ 102……副デコード回路 103……主デコード回路
Claims (1)
- 【請求項1】パイプライン方式によって分岐命令を含む
命令を実行処理するデータ処理装置において、命令フェ
ッチ段から命令バッファへ入力される命令群のうち短縮
形の相対分岐命令を処理すると共に前記命令内に含まれ
ている分岐情報から分岐が成功すると予測された場合
に、その分岐先アドレスを生成する副デコード回路と、
前記命令群のうち一般形の相対分岐命令を処理すると共
に前記命令内に含まれている分岐情報から分岐が成功す
ると予測された場合に、その分岐先アドレスを生成する
主デコード回路とを備えたことを特徴とする分岐制御回
路。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP1266158A JPH0650465B2 (ja) | 1989-10-16 | 1989-10-16 | 分岐制御回路 |
KR1019900016351A KR930005769B1 (ko) | 1989-10-16 | 1990-10-15 | 분기 제어회로 |
US07/597,319 US5295248A (en) | 1989-10-16 | 1990-10-15 | Branch control circuit |
DE69032463T DE69032463T2 (de) | 1989-10-16 | 1990-10-16 | Verzweigungssteuerschaltung |
EP90119840A EP0423726B1 (en) | 1989-10-16 | 1990-10-16 | Branch control circuit |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP1266158A JPH0650465B2 (ja) | 1989-10-16 | 1989-10-16 | 分岐制御回路 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH03129432A JPH03129432A (ja) | 1991-06-03 |
JPH0650465B2 true JPH0650465B2 (ja) | 1994-06-29 |
Family
ID=17427093
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP1266158A Expired - Fee Related JPH0650465B2 (ja) | 1989-10-16 | 1989-10-16 | 分岐制御回路 |
Country Status (5)
Country | Link |
---|---|
US (1) | US5295248A (ja) |
EP (1) | EP0423726B1 (ja) |
JP (1) | JPH0650465B2 (ja) |
KR (1) | KR930005769B1 (ja) |
DE (1) | DE69032463T2 (ja) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2761688B2 (ja) * | 1992-02-07 | 1998-06-04 | 三菱電機株式会社 | データ処理装置 |
JP3345787B2 (ja) * | 1993-04-13 | 2002-11-18 | 三菱電機株式会社 | データ処理装置 |
JPH09500989A (ja) * | 1993-05-14 | 1997-01-28 | インテル・コーポレーション | 分岐ターゲット・バッファにおける推論履歴 |
US5724565A (en) * | 1995-02-03 | 1998-03-03 | International Business Machines Corporation | Method and system for processing first and second sets of instructions by first and second types of processing systems |
TW380238B (en) * | 1996-12-09 | 2000-01-21 | Matsushita Electric Ind Co Ltd | Information processing apparatus which accurately predicts whether a branch is taken for a conditional branch instruction, using small-scale hardware |
US5974538A (en) * | 1997-02-21 | 1999-10-26 | Wilmot, Ii; Richard Byron | Method and apparatus for annotating operands in a computer system with source instruction identifiers |
US6134649A (en) * | 1997-11-17 | 2000-10-17 | Advanced Micro Devices, Inc. | Control transfer indication in predecode which identifies control transfer instruction and an alternate feature of an instruction |
US6167506A (en) * | 1997-11-17 | 2000-12-26 | Advanced Micro Devices, Inc. | Replacing displacement in control transfer instruction with encoding indicative of target address, including offset and target cache line location |
US6061786A (en) * | 1998-04-23 | 2000-05-09 | Advanced Micro Devices, Inc. | Processor configured to select a next fetch address by partially decoding a byte of a control transfer instruction |
EP0953898A3 (en) | 1998-04-28 | 2003-03-26 | Matsushita Electric Industrial Co., Ltd. | A processor for executing Instructions from memory according to a program counter, and a compiler, an assembler, a linker and a debugger for such a processor |
US6237087B1 (en) * | 1998-09-30 | 2001-05-22 | Intel Corporation | Method and apparatus for speeding sequential access of a set-associative cache |
JP2001273138A (ja) * | 2000-03-24 | 2001-10-05 | Fujitsu Ltd | プログラム変換装置および方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3764988A (en) * | 1971-03-01 | 1973-10-09 | Hitachi Ltd | Instruction processing device using advanced control system |
JPS5848144A (ja) * | 1981-09-16 | 1983-03-22 | Nec Corp | デ−タ処理装置の分岐命令制御方式 |
US4991080A (en) * | 1986-03-13 | 1991-02-05 | International Business Machines Corporation | Pipeline processing apparatus for executing instructions in three streams, including branch stream pre-execution processor for pre-executing conditional branch instructions |
GB8728493D0 (en) * | 1987-12-05 | 1988-01-13 | Int Computers Ltd | Jump prediction |
JPH02287626A (ja) * | 1989-04-28 | 1990-11-27 | Toshiba Corp | パイプライン方式の分岐命令制御装置 |
-
1989
- 1989-10-16 JP JP1266158A patent/JPH0650465B2/ja not_active Expired - Fee Related
-
1990
- 1990-10-15 KR KR1019900016351A patent/KR930005769B1/ko not_active IP Right Cessation
- 1990-10-15 US US07/597,319 patent/US5295248A/en not_active Expired - Lifetime
- 1990-10-16 EP EP90119840A patent/EP0423726B1/en not_active Expired - Lifetime
- 1990-10-16 DE DE69032463T patent/DE69032463T2/de not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH03129432A (ja) | 1991-06-03 |
EP0423726B1 (en) | 1998-07-08 |
KR930005769B1 (ko) | 1993-06-24 |
EP0423726A2 (en) | 1991-04-24 |
KR910008565A (ko) | 1991-05-31 |
EP0423726A3 (en) | 1992-09-16 |
US5295248A (en) | 1994-03-15 |
DE69032463D1 (de) | 1998-08-13 |
DE69032463T2 (de) | 1998-12-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5101341A (en) | Pipelined system for reducing instruction access time by accumulating predecoded instruction bits a FIFO | |
JPH06110683A (ja) | マイクロプロセッサの拡張ブランチターゲット方法及びその装置 | |
US4954943A (en) | Data processing system | |
JPH0650465B2 (ja) | 分岐制御回路 | |
US4541047A (en) | Pipelined data processing system | |
JP3486690B2 (ja) | パイプライン方式プロセッサ | |
EP0297943B1 (en) | Microcode reading control system | |
US5088030A (en) | Branch address calculating system for branch instructions | |
JPH0348536B2 (ja) | ||
EP0394711A2 (en) | Branch instruction control unit based on a pipeline method | |
US5142630A (en) | System for calculating branch destination address based upon address mode bit in operand before executing an instruction which changes the address mode and branching | |
US20080065870A1 (en) | Information processing apparatus | |
US5421026A (en) | Data processor for processing instruction after conditional branch instruction at high speed | |
JPH07306785A (ja) | 分岐命令実行機能を持つプロセッサおよび分岐命令制御方法 | |
US6360310B1 (en) | Apparatus and method for instruction cache access | |
JPS6161412B2 (ja) | ||
US7711926B2 (en) | Mapping system and method for instruction set processing | |
JP3493110B2 (ja) | 高速分岐処理装置 | |
JP2778610B2 (ja) | パイプライン演算制御方法およびシステム | |
JP2944563B2 (ja) | パイプライン型情報処理装置 | |
JP4049490B2 (ja) | 情報処理装置 | |
JP3471691B2 (ja) | マイクロ命令における分岐命令制御方式 | |
JP2596639B2 (ja) | 先行制御方式 | |
JPH0248733A (ja) | 情報処理装置 | |
JPS6047618B2 (ja) | 情報処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
LAPS | Cancellation because of no payment of annual fees |