JPH03129432A - 分岐制御回路 - Google Patents
分岐制御回路Info
- Publication number
- JPH03129432A JPH03129432A JP1266158A JP26615889A JPH03129432A JP H03129432 A JPH03129432 A JP H03129432A JP 1266158 A JP1266158 A JP 1266158A JP 26615889 A JP26615889 A JP 26615889A JP H03129432 A JPH03129432 A JP H03129432A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- branch
- circuit
- pipeline
- relative
- 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/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 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
-
- 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)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
[発明の目的]
(産業上の利用分野〉
本発明はパイプライン方式データ処理装置の分岐t11
御回路、特に分岐によるパイプラインの乱れを最小に抑
制する分岐制御回路に関するものである。
御回路、特に分岐によるパイプラインの乱れを最小に抑
制する分岐制御回路に関するものである。
(従来の技術)
パイプライン方式のデータ処理装置においては命令の実
行処理が高速に行なえるため、現在においては多くのデ
ータ処理装置がパイプライン方式を採用している。
行処理が高速に行なえるため、現在においては多くのデ
ータ処理装置がパイプライン方式を採用している。
パイプライン方式の構成の一例を挙げれば、命令フェッ
チ段、命令デコード段、実効アドレス計算段、オペラン
ドフェッチ段、命令実行段の5つのパイプライン段で構
成されてJ5す、命令はメモリから逐次的に読出され、
各パイプライン段(ステージ)を順に流れて処理が行な
われる。すなわち、各パイプライン段で異なる命令が処
理され、パイプラインの流れに乱れがない処理状態で最
高の性能が得られることになる。
チ段、命令デコード段、実効アドレス計算段、オペラン
ドフェッチ段、命令実行段の5つのパイプライン段で構
成されてJ5す、命令はメモリから逐次的に読出され、
各パイプライン段(ステージ)を順に流れて処理が行な
われる。すなわち、各パイプライン段で異なる命令が処
理され、パイプラインの流れに乱れがない処理状態で最
高の性能が得られることになる。
したがって、非パイプライン方式のデータ処理において
は、各処理段ごとに1マシンサイクル要する場合に1命
令の実行に5マシンサイクル必要であるのに対し、パイ
プライン方式では前記乱れのない最高の性能状態では1
マシンサイクル毎に命令が実行されるので5倍の性能が
得られる。
は、各処理段ごとに1マシンサイクル要する場合に1命
令の実行に5マシンサイクル必要であるのに対し、パイ
プライン方式では前記乱れのない最高の性能状態では1
マシンサイクル毎に命令が実行されるので5倍の性能が
得られる。
〈発明が解決しようとする課題〉
しかしながら、パイプライン方式においては、分岐命令
により分岐が行なわれた時に命令の流れが乱れてしまい
、当該分岐命令以降の命令ですでにパイプライン中で処
理が進んでいるものが無効にされ、分岐先の命令から処
理を再開しなければならなくなってしまう。その結果、
性能の低下を招くことになっている。
により分岐が行なわれた時に命令の流れが乱れてしまい
、当該分岐命令以降の命令ですでにパイプライン中で処
理が進んでいるものが無効にされ、分岐先の命令から処
理を再開しなければならなくなってしまう。その結果、
性能の低下を招くことになっている。
上記の問題に対処する方式として、分岐予測による処理
方式が提案されている。この方式では分岐命令ごとの分
岐予測情報により分岐が成功するか否かを予測し、成、
功すると予測した場合には、当該分岐命令実行前に、分
岐先命令を先に実行することによりパイプラインの乱れ
を少なくしている。
方式が提案されている。この方式では分岐命令ごとの分
岐予測情報により分岐が成功するか否かを予測し、成、
功すると予測した場合には、当該分岐命令実行前に、分
岐先命令を先に実行することによりパイプラインの乱れ
を少なくしている。
しかし上記の方式では、分岐先のアドレスを何らかの手
段で求める必要がある。
段で求める必要がある。
分岐先のアドレスを求める方式として命令フェッチ段で
対応表を引く方式がある。
対応表を引く方式がある。
第10図は、従来技術による分岐制御において対応表を
引く方式を示す。
引く方式を示す。
同図に示すように、分岐命令BIのアドレスと分岐先命
令TIの分岐先アドレスの対応表を持たせておいて、命
令フェッチ段あるいは命令デコード段で対応表を引き、
分岐先のアドレスを得ている。そして分岐命令BIの分
岐が成功すると予測された場合には、対応表から得た分
岐先アドレスから命令フェッチを開始するようになって
いる。
令TIの分岐先アドレスの対応表を持たせておいて、命
令フェッチ段あるいは命令デコード段で対応表を引き、
分岐先のアドレスを得ている。そして分岐命令BIの分
岐が成功すると予測された場合には、対応表から得た分
岐先アドレスから命令フェッチを開始するようになって
いる。
したがって、確かに、従来方式においても第10図に示
すように分岐予測が成功(ヒツト〉した場合には分岐に
伴なう乱れは最小に抑えられる。
すように分岐予測が成功(ヒツト〉した場合には分岐に
伴なう乱れは最小に抑えられる。
しかしながら、上記従来技術による方式においては、対
応表を用いるため該対応表の内容に相当するハードウェ
ア量が大となってしまうので、対応表のエントリ数を多
くすることはできない問題があった。
応表を用いるため該対応表の内容に相当するハードウェ
ア量が大となってしまうので、対応表のエントリ数を多
くすることはできない問題があった。
一方、対応表に対するエントリ数を小さくしようとする
と、第11図に示すように、対応表にアクセスした場合
に不成功(ミスヒツト)する比率も高くなる。すなわち
、ミスヒツトする比率が高くなるということは、分岐命
令B1の分岐予測が不可能となることを意味している。
と、第11図に示すように、対応表にアクセスした場合
に不成功(ミスヒツト)する比率も高くなる。すなわち
、ミスヒツトする比率が高くなるということは、分岐命
令B1の分岐予測が不可能となることを意味している。
このように従来のパイプライン方式による命令の実行処
理においては、分岐予測をヒツトさせようとするとハー
ドウェア量も大となってしまい、一方対応表に対するエ
ントリ数を少なくすると分岐予測がミスヒツトしてしま
い、パイプラインの乱れを生じてしまうという二律背反
の問題があった。
理においては、分岐予測をヒツトさせようとするとハー
ドウェア量も大となってしまい、一方対応表に対するエ
ントリ数を少なくすると分岐予測がミスヒツトしてしま
い、パイプラインの乱れを生じてしまうという二律背反
の問題があった。
[発明の構成]
(課題を解決するための手段)
本発明は上記の問題点を解決するためになされたもので
、その目的は、少ないハードウェア構成により、分岐命
令によるパイプラインの乱れを最小に抑えることのでき
る分岐制御回路を提供することである。
、その目的は、少ないハードウェア構成により、分岐命
令によるパイプラインの乱れを最小に抑えることのでき
る分岐制御回路を提供することである。
このため本発明においては、通常の主デコード回路の外
に副デコード回路を設け、出現頻度の高い短縮形の相対
分岐命令のみを前記副デコード回路で分岐予測するよう
に構成している。
に副デコード回路を設け、出現頻度の高い短縮形の相対
分岐命令のみを前記副デコード回路で分岐予測するよう
に構成している。
(作用)
したがって、分岐先アドレスを記憶しておくメモリが不
要となると共に分岐命令のアドレスと該命令中のディス
プレースメントとを加neすることにより分岐先アドレ
スを得ることができる。したがって、セレクタと加締を
用いるだけで分岐制御回路が構成できる。
要となると共に分岐命令のアドレスと該命令中のディス
プレースメントとを加neすることにより分岐先アドレ
スを得ることができる。したがって、セレクタと加締を
用いるだけで分岐制御回路が構成できる。
(実施例)
第1図は本発明による分岐制御回路の一実施例を示す。
図示の分岐制御命令は、命令フェッヂ段からの命令を保
持する命令バッファ101、短縮形の相対分岐命令のみ
をデコードする副デコード回路102、および−膜形の
相対分岐命令をデコードする主デコード回路103から
構成されている。
持する命令バッファ101、短縮形の相対分岐命令のみ
をデコードする副デコード回路102、および−膜形の
相対分岐命令をデコードする主デコード回路103から
構成されている。
動作においては、副デ」−ド回路102において短縮形
の相対分岐命令のみをデコードして分岐予測を行ない、
主デコード回路103は命令バッフ?の先頭に格納され
ている命令を信月線106を介して入力し、それをデコ
ードして以降の処理に適する内部命令へと変換し、信号
線109へ出力し、−膜形の相対分岐命令の分岐予測を
おこない、分岐先アドレスを信号線111へ、そのアド
レスが有効であることを分岐先アドレス有効信号線11
0へ出力する。
の相対分岐命令のみをデコードして分岐予測を行ない、
主デコード回路103は命令バッフ?の先頭に格納され
ている命令を信月線106を介して入力し、それをデコ
ードして以降の処理に適する内部命令へと変換し、信号
線109へ出力し、−膜形の相対分岐命令の分岐予測を
おこない、分岐先アドレスを信号線111へ、そのアド
レスが有効であることを分岐先アドレス有効信号線11
0へ出力する。
第2図は、本発明に用いられる命令のフォーマットを示
す。図示したように該命令フォーマットは1ハーフワー
ド(口W)を基本単位とし、可変長となっている。10
Wの命令は分岐情報を示す81部と命令機能およびオペ
ランド情報を示すlN5T部から構成される。81部は
本実施例では1ビツトであり、B1部に続<lN5T部
が分岐命令の先頭で、かつその分岐命令の分岐が成功す
ると予測されるとき1″であり、それ以外はII O1
1であり、I NST部は16ビツトにしている。命令
バッファへは後述するように40W単位でアライメント
のとれた4HWの命令が一度に命令フエツヂ部から与え
られる。また命令バッファ101は格納している命令の
先頭aHW分を第1図の信号線106を介して主デコー
ド回路103へ出力する。
す。図示したように該命令フォーマットは1ハーフワー
ド(口W)を基本単位とし、可変長となっている。10
Wの命令は分岐情報を示す81部と命令機能およびオペ
ランド情報を示すlN5T部から構成される。81部は
本実施例では1ビツトであり、B1部に続<lN5T部
が分岐命令の先頭で、かつその分岐命令の分岐が成功す
ると予測されるとき1″であり、それ以外はII O1
1であり、I NST部は16ビツトにしている。命令
バッファへは後述するように40W単位でアライメント
のとれた4HWの命令が一度に命令フエツヂ部から与え
られる。また命令バッファ101は格納している命令の
先頭aHW分を第1図の信号線106を介して主デコー
ド回路103へ出力する。
第3図は本発明による予測制御回路において用いられる
短縮形および一般形の相対分岐命令フォーマットを示す
。該分岐命令はそのアドレスと命令中に含まれるディス
プレースメントを加えた値を分岐先アドレスとして用い
る。ずなわら、短縮形の相対分岐命令は命令長が10W
であり、lN5T部のO〜7ビツトが相対分岐命令であ
ることを示すオペレーションコード(OP)部であり、
8〜15ビツトが8ビツトのディスプレースメント(#
d8)を示す。−膜形の相対分岐命令は、ディスプレー
スメントのサイズとして8ビツト、16ビツト、32ビ
ツトを選ぶことができる。ディスプレースメントが8ビ
ツトのときは相対分岐命令中のSSファールドはOOで
ある。この時、命令は20Wであり、第10Wが分岐命
令の機能を、第20Wがディスプレースメントを示し、
デイスプレースメントの下位8ビツトが有効である。デ
ィスプレースメントが16ビツトのときは相対分岐命令
中のSSフィールドは01である。この時、命令は20
Wであり、第1日Wが分岐命令の機能を、第20Wがデ
ィスプレースメントを示す。ディスプレースメントが3
2ビツトのときは相対分岐命令中のSSフィールドは1
0である。この時、命令は30Wであり、第1HWが分
岐命令の機能を、第28Wがディスプレースメントの上
位16ビツト、第30Wがディスプレースメントの下位
16ビツトを示す。副デコード回路102が分岐予測す
る命令は短縮形の相対分岐命令に限定される。 第4図
は第1図に示した副デコード回路102の詳l1llな
構成を示す。
短縮形および一般形の相対分岐命令フォーマットを示す
。該分岐命令はそのアドレスと命令中に含まれるディス
プレースメントを加えた値を分岐先アドレスとして用い
る。ずなわら、短縮形の相対分岐命令は命令長が10W
であり、lN5T部のO〜7ビツトが相対分岐命令であ
ることを示すオペレーションコード(OP)部であり、
8〜15ビツトが8ビツトのディスプレースメント(#
d8)を示す。−膜形の相対分岐命令は、ディスプレー
スメントのサイズとして8ビツト、16ビツト、32ビ
ツトを選ぶことができる。ディスプレースメントが8ビ
ツトのときは相対分岐命令中のSSファールドはOOで
ある。この時、命令は20Wであり、第10Wが分岐命
令の機能を、第20Wがディスプレースメントを示し、
デイスプレースメントの下位8ビツトが有効である。デ
ィスプレースメントが16ビツトのときは相対分岐命令
中のSSフィールドは01である。この時、命令は20
Wであり、第1日Wが分岐命令の機能を、第20Wがデ
ィスプレースメントを示す。ディスプレースメントが3
2ビツトのときは相対分岐命令中のSSフィールドは1
0である。この時、命令は30Wであり、第1HWが分
岐命令の機能を、第28Wがディスプレースメントの上
位16ビツト、第30Wがディスプレースメントの下位
16ビツトを示す。副デコード回路102が分岐予測す
る命令は短縮形の相対分岐命令に限定される。 第4図
は第1図に示した副デコード回路102の詳l1llな
構成を示す。
同図に示した副デコード回路102は、命令ラッチ40
1、フェッチPC402、セレクタ403、分岐命令デ
コード回路404、および加算器405で構成されてい
る。
1、フェッチPC402、セレクタ403、分岐命令デ
コード回路404、および加算器405で構成されてい
る。
動作に45いては、命令フェッチ部から1104を介し
て読み出された4HWの命令は命令ラッチ401に格納
され、線105を介して読み出された命令の先頭アドレ
スが7エツチPC402へ格納される。フェッチPCの
ビット31は最小命令単位が)(Wであるので常にOで
ある。命令は4日W単位でアライメントがとれており、
フェッチPC402のアドレスの29.30ビツトが“
o o ”の命令がlN5TのO〜15ビット、” 0
1 ”の命令がlN5Tの16〜31ビツト、10″の
命令がlN5Tの32〜47ビツト、” 11 ’の命
令がI NSTの48〜63ピツトへ格納される。
て読み出された4HWの命令は命令ラッチ401に格納
され、線105を介して読み出された命令の先頭アドレ
スが7エツチPC402へ格納される。フェッチPCの
ビット31は最小命令単位が)(Wであるので常にOで
ある。命令は4日W単位でアライメントがとれており、
フェッチPC402のアドレスの29.30ビツトが“
o o ”の命令がlN5TのO〜15ビット、” 0
1 ”の命令がlN5Tの16〜31ビツト、10″の
命令がlN5Tの32〜47ビツト、” 11 ’の命
令がI NSTの48〜63ピツトへ格納される。
命令が逐次的にフェッチされているときはフェッチPC
のピット位置29.30はOOであり、命令ラッチの4
8Wすべてが有効である。分岐先の命令がフェッチされ
た場合はフェッチPCの29゜30は分岐先のアドレス
となり、命令ラッチはそのアドレス以降が有効である。
のピット位置29.30はOOであり、命令ラッチの4
8Wすべてが有効である。分岐先の命令がフェッチされ
た場合はフェッチPCの29゜30は分岐先のアドレス
となり、命令ラッチはそのアドレス以降が有効である。
例えば、フェッチPCの29.30が10ときは命令ラ
ッチのlN5Tの32〜63ビツト、B【の2〜3ビツ
トが有効となる。セレクタ403は命令ラッチのBIO
〜3とフェッチPCの29.30ビツトより命令ラッチ
の4目Wの内、10Wを選択し、分岐命令デコード回路
404と加算器405へ出力する。
ッチのlN5Tの32〜63ビツト、B【の2〜3ビツ
トが有効となる。セレクタ403は命令ラッチのBIO
〜3とフェッチPCの29.30ビツトより命令ラッチ
の4目Wの内、10Wを選択し、分岐命令デコード回路
404と加算器405へ出力する。
第5図は、フェッチPC402の29.30ビツトの状
態および分岐情報810〜813までのビット状態によ
ってセレクタ403の出力選択動作を示す。例えば、フ
ェッチPCの上記ビット位置が[1,○]で81 [0
]−0,BI [1]=0、B[[2]=1であれば、
rNsT [32〜47]ビツト出力が選択される。
態および分岐情報810〜813までのビット状態によ
ってセレクタ403の出力選択動作を示す。例えば、フ
ェッチPCの上記ビット位置が[1,○]で81 [0
]−0,BI [1]=0、B[[2]=1であれば、
rNsT [32〜47]ビツト出力が選択される。
セレクタ403は、命令ラッチ401内に分岐が成功す
ると予測される命令がある場合、その命令の目Wが分岐
命令デコード回路404と加算器405へ出力される。
ると予測される命令がある場合、その命令の目Wが分岐
命令デコード回路404と加算器405へ出力される。
分岐が成功すると予測される命令がない場合は、すべて
1が出力される。分岐命令デコード回路404では、セ
レクタ403の出力の内上位の1バイトを入力する。こ
の1バイ]〜の値が短縮形の相対分岐命令のオペコード
部と一致する場合は、分岐先アドレス有効信号109を
出力する。全て1のビットパターンは短縮形の相対分岐
命令のオペコード部OPと一致しない。
1が出力される。分岐命令デコード回路404では、セ
レクタ403の出力の内上位の1バイトを入力する。こ
の1バイ]〜の値が短縮形の相対分岐命令のオペコード
部と一致する場合は、分岐先アドレス有効信号109を
出力する。全て1のビットパターンは短縮形の相対分岐
命令のオペコード部OPと一致しない。
加算器405は、セレクタの出力の下位1バイトを1ビ
ツト左シフトしたものとフェッチPCの値を加算し、そ
の結果を信号線108に出力する。
ツト左シフトしたものとフェッチPCの値を加算し、そ
の結果を信号線108に出力する。
第6図は、副デコード回路102で分岐予測を行なった
場合のパイプラインの流れを示す。
場合のパイプラインの流れを示す。
同図に示すように本発明においては、第1図の回路で副
デコード回路102は命令バッファ101に新たに入力
される命令をデコードし、主デコード回路103は命令
バッファの先頭の命令をデコードするので、第6図のサ
イクル1では副デコード回路102と主デコード回路1
03は同時に異なる命令をデコードしている。したがっ
てこの場合に、分岐予測が成功すれば分岐によるパイプ
ラインの乱れはなくなる。
デコード回路102は命令バッファ101に新たに入力
される命令をデコードし、主デコード回路103は命令
バッファの先頭の命令をデコードするので、第6図のサ
イクル1では副デコード回路102と主デコード回路1
03は同時に異なる命令をデコードしている。したがっ
てこの場合に、分岐予測が成功すれば分岐によるパイプ
ラインの乱れはなくなる。
第7図は、第1図に示した主デコード回路1゜3の詳細
な構成を示す。
な構成を示す。
同図に示した主デコード回路101は、命令ラッチ70
1、デコードPC702、セレクタ703、デコード回
路704、第1の加算器705、および第2の加算器7
06で構成されている。この主デコード回路101の命
令バッフ?101から与えられる命令は30Wであり、
命令ラッチ701に格納される。命令ラッチ701の第
1)−IW(B1[0]とlN5T[O〜15])はデ
コード回路704へ入力される。デコード回路704で
は、与えられた命令を内部命令に変換し、それを信号線
109を介して実効アドレス計算部へ出力する。また、
デコードした命令長を第1の加算器706へ出力する。
1、デコードPC702、セレクタ703、デコード回
路704、第1の加算器705、および第2の加算器7
06で構成されている。この主デコード回路101の命
令バッフ?101から与えられる命令は30Wであり、
命令ラッチ701に格納される。命令ラッチ701の第
1)−IW(B1[0]とlN5T[O〜15])はデ
コード回路704へ入力される。デコード回路704で
は、与えられた命令を内部命令に変換し、それを信号線
109を介して実効アドレス計算部へ出力する。また、
デコードした命令長を第1の加算器706へ出力する。
前記第2の加算器706は、命令ラッチの第10Wのア
ドレスを示すデコードPC702とデコード回路の出力
するデコードした命令長を加える。次の命令が第1図の
命令バッファ101から入力されたときに第2の加算器
706の出力値はデコードPC702に格納される。
ドレスを示すデコードPC702とデコード回路の出力
するデコードした命令長を加える。次の命令が第1図の
命令バッファ101から入力されたときに第2の加算器
706の出力値はデコードPC702に格納される。
分岐が成功したときは命令フェッチ部から信号線105
を介して与えられる命令フェッチアドレスが、デコード
PC702に格納される。デコード回路はB1[0]が
1で、かつlN5T[O〜151が一般形の相対分岐命
令のビットパターンと一致jるとき分岐アドレス有効信
号110を出力する。このとき分岐先アドレスはセレク
タ703と第1の加算器705から計算されている。セ
レクタ703は、一般形の相対分岐命令のディスプレー
スメントを選択する。一般形の相対分岐命令のディスプ
レースメントのサイズは命令中のSSフィールド(IN
ST[6〜7])で示される。
を介して与えられる命令フェッチアドレスが、デコード
PC702に格納される。デコード回路はB1[0]が
1で、かつlN5T[O〜151が一般形の相対分岐命
令のビットパターンと一致jるとき分岐アドレス有効信
号110を出力する。このとき分岐先アドレスはセレク
タ703と第1の加算器705から計算されている。セ
レクタ703は、一般形の相対分岐命令のディスプレー
スメントを選択する。一般形の相対分岐命令のディスプ
レースメントのサイズは命令中のSSフィールド(IN
ST[6〜7])で示される。
第8図は、第1HW中のSSフィールドで指定されるビ
ット状態とセレクタ703の選択出力との関係を示す。
ット状態とセレクタ703の選択出力との関係を示す。
すなわち、第7図において、第1の加算器7゜5はデコ
ードPC702の値とセレクタ703で選択された出力
である相対分岐命令のディスプレースメント値(第8図
中の各rNsTのビット値)とを加拝し分岐先アドレス
を求め信号線111を介して出力する。
ードPC702の値とセレクタ703で選択された出力
である相対分岐命令のディスプレースメント値(第8図
中の各rNsTのビット値)とを加拝し分岐先アドレス
を求め信号線111を介して出力する。
第9図は、第7図を示した主デコード回路103で分岐
予測を行なった場合のパイプラインの流れを示す。すな
わち、前記主デコード回路103において、サイクル1
で分岐が成功すると予測された分岐命令81がデコード
され、サイクル2で分岐先命令TIがフェッチされ、サ
イクル3でフェッチされた前記命令が主デコード回路1
03で再びデコードされるため、分岐命令Blと分岐先
命令TIとの間のパイプラインの乱れは1サイクルとな
る。
予測を行なった場合のパイプラインの流れを示す。すな
わち、前記主デコード回路103において、サイクル1
で分岐が成功すると予測された分岐命令81がデコード
され、サイクル2で分岐先命令TIがフェッチされ、サ
イクル3でフェッチされた前記命令が主デコード回路1
03で再びデコードされるため、分岐命令Blと分岐先
命令TIとの間のパイプラインの乱れは1サイクルとな
る。
以上述べてきたように、本発明の実施例において分岐予
測情報を示寸81は10W当り1ビツトの場合について
、分岐予測が成功(ヒツト)すれば1″′、不成功(ミ
スヒツト)であれずO″とすることによって各分岐毎に
予測が行なえる点を説明した。
測情報を示寸81は10W当り1ビツトの場合について
、分岐予測が成功(ヒツト)すれば1″′、不成功(ミ
スヒツト)であれずO″とすることによって各分岐毎に
予測が行なえる点を説明した。
しかしながら、BI部を1ビツトより多くして、過去複
数回の分岐の方向の履歴を81部に含むようにして、こ
れに基づいて分岐予測を行うようにしてもよい。
数回の分岐の方向の履歴を81部に含むようにして、こ
れに基づいて分岐予測を行うようにしてもよい。
さらに、主デコード回路103を改良し、短縮形の相対
分岐命令の内、無条件分岐命令で、81部が“O”であ
って、副デコード回路102で分岐予測されなかったも
のを主デコード回路103において分岐予測されるよう
にしてもよい。
分岐命令の内、無条件分岐命令で、81部が“O”であ
って、副デコード回路102で分岐予測されなかったも
のを主デコード回路103において分岐予測されるよう
にしてもよい。
[発明の効果]
本発明による分岐制御回路の実施例においては主デコー
ド回路の外に副デコード回路を設けると共に、出現頻度
の高い短縮形の相対分岐命令のみを副デコード回路で分
岐予測するようにし、かつ分岐先アドレスを求めること
を分岐命令のアドレスと分岐命令中のディスプレースメ
ントを加算することによって得ているため、セレクタと
加算器の組合せの少ないハードウェアで構成することが
できる。また、本発明においては、分岐先アドレスを記
憶しておく必要がないので分岐先アドレス記憶用のメモ
リが不要となると共に、分岐予測が成功したときのパイ
プラインの乱れを最小に抑えることができる。
ド回路の外に副デコード回路を設けると共に、出現頻度
の高い短縮形の相対分岐命令のみを副デコード回路で分
岐予測するようにし、かつ分岐先アドレスを求めること
を分岐命令のアドレスと分岐命令中のディスプレースメ
ントを加算することによって得ているため、セレクタと
加算器の組合せの少ないハードウェアで構成することが
できる。また、本発明においては、分岐先アドレスを記
憶しておく必要がないので分岐先アドレス記憶用のメモ
リが不要となると共に、分岐予測が成功したときのパイ
プラインの乱れを最小に抑えることができる。
第1図は本発明による分岐制御回路の基本構成図、
第2図は本発明の分岐制御回路で用いられる命令フォー
マット図、 第3図は本発明の回路で用いられる多形の相対分岐命令
フォーマット図、 第4図は第1図の副デコード回路の詳細図、M5図は第
4図の各分岐予測情報、フェッチPCの各ピット状態と
セレクタ出力の関係を示す図、第6図は副デコード回路
での分岐予測動作を説明づるパイプライン流れ図、 第7図は第1図の主デコード回路の詳細図、第8図はS
S部のビット状態とセレクタ出力の関係図、 第9図は主デコード回路での分岐予測動作を説明するパ
イプライン流れ図、 第10図は従来技術による分岐制御方式における分岐予
測成功の場合のパイプライン流れ図、第11図は従来技
術による方式における分岐不成功の場合のパイプライン
流れ図である。 101・・・命令バッファ 102・・・副デコード回路 103・・・主デコード回路
マット図、 第3図は本発明の回路で用いられる多形の相対分岐命令
フォーマット図、 第4図は第1図の副デコード回路の詳細図、M5図は第
4図の各分岐予測情報、フェッチPCの各ピット状態と
セレクタ出力の関係を示す図、第6図は副デコード回路
での分岐予測動作を説明づるパイプライン流れ図、 第7図は第1図の主デコード回路の詳細図、第8図はS
S部のビット状態とセレクタ出力の関係図、 第9図は主デコード回路での分岐予測動作を説明するパ
イプライン流れ図、 第10図は従来技術による分岐制御方式における分岐予
測成功の場合のパイプライン流れ図、第11図は従来技
術による方式における分岐不成功の場合のパイプライン
流れ図である。 101・・・命令バッファ 102・・・副デコード回路 103・・・主デコード回路
Claims (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 true JPH03129432A (ja) | 1991-06-03 |
| JPH0650465B2 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) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| 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 |
Families Citing this family (11)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2761688B2 (ja) * | 1992-02-07 | 1998-06-04 | 三菱電機株式会社 | データ処理装置 |
| JP3345787B2 (ja) * | 1993-04-13 | 2002-11-18 | 三菱電機株式会社 | データ処理装置 |
| KR100310581B1 (ko) * | 1993-05-14 | 2001-12-17 | 피터 엔. 데트킨 | 분기목표버퍼의추측기록메카니즘 |
| TW380238B (en) * | 1996-12-09 | 2000-01-21 | Matsushita Electric Industrial 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 |
| 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 |
| 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 |
| 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 US US07/597,319 patent/US5295248A/en not_active Expired - Lifetime
- 1990-10-15 KR KR1019900016351A patent/KR930005769B1/ko not_active Expired - Fee Related
- 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
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| 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 |
Also Published As
| Publication number | Publication date |
|---|---|
| EP0423726A2 (en) | 1991-04-24 |
| DE69032463D1 (de) | 1998-08-13 |
| EP0423726A3 (en) | 1992-09-16 |
| EP0423726B1 (en) | 1998-07-08 |
| US5295248A (en) | 1994-03-15 |
| DE69032463T2 (de) | 1998-12-17 |
| KR910008565A (ko) | 1991-05-31 |
| JPH0650465B2 (ja) | 1994-06-29 |
| KR930005769B1 (ko) | 1993-06-24 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP2603626B2 (ja) | データ処理装置 | |
| US7836287B2 (en) | Reducing the fetch time of target instructions of a predicted taken branch instruction | |
| US6510511B2 (en) | Methods and apparatus for branch prediction using hybrid history with index sharing | |
| US4954943A (en) | Data processing system | |
| JPH06110683A (ja) | マイクロプロセッサの拡張ブランチターゲット方法及びその装置 | |
| CN101763249A (zh) | 对非控制流指令减少分支检验 | |
| JP3182438B2 (ja) | データプロセッサ | |
| US20050198480A1 (en) | Apparatus and method of controlling instruction fetch | |
| JP3486690B2 (ja) | パイプライン方式プロセッサ | |
| JPH03129432A (ja) | 分岐制御回路 | |
| EP0394711A2 (en) | Branch instruction control unit based on a pipeline method | |
| JP3811140B2 (ja) | 情報処理装置 | |
| US7519799B2 (en) | Apparatus having a micro-instruction queue, a micro-instruction pointer programmable logic array and a micro-operation read only memory and method for use thereof | |
| JP2001060152A (ja) | 分岐予測を抑止する情報処理装置および方法 | |
| US20080065870A1 (en) | Information processing apparatus | |
| KR920006770B1 (ko) | 명령을 페치(fetch)하기 위한 제어 시스템 | |
| US6360310B1 (en) | Apparatus and method for instruction cache access | |
| JP4728877B2 (ja) | マイクロプロセッサおよびパイプライン制御方法 | |
| JP4002288B2 (ja) | 情報処理装置 | |
| JP3493110B2 (ja) | 高速分岐処理装置 | |
| US7711926B2 (en) | Mapping system and method for instruction set processing | |
| JP4049490B2 (ja) | 情報処理装置 | |
| JP3471691B2 (ja) | マイクロ命令における分岐命令制御方式 | |
| JP2001034474A (ja) | データ処理装置及びデータ処理方法 | |
| JPH09311787A (ja) | データ処理装置 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| LAPS | Cancellation because of no payment of annual fees |