JP2003058366A - 分岐予測なしで分岐ペナルティを減少させる新規なフェッチ分岐アーキテクチャ - Google Patents
分岐予測なしで分岐ペナルティを減少させる新規なフェッチ分岐アーキテクチャInfo
- Publication number
- JP2003058366A JP2003058366A JP2002219623A JP2002219623A JP2003058366A JP 2003058366 A JP2003058366 A JP 2003058366A JP 2002219623 A JP2002219623 A JP 2002219623A JP 2002219623 A JP2002219623 A JP 2002219623A JP 2003058366 A JP2003058366 A JP 2003058366A
- Authority
- JP
- Japan
- Prior art keywords
- branch
- instruction
- cycle
- fetch
- sequential
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
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
- 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
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)【要約】
【課題】 分岐予測なしで分岐ペナルティを減少させた
フェッチ分岐アーキテクチャを提供する。 【解決手段】 本発明によれば、分岐予測の代わりに、
合体型フェッチ分岐ユニットがプロセッサ内のデコード
ユニットと並列的に動作を行う。1つ又はそれ以上のフ
ェッチした命令からなるグループ内に分岐命令が検知さ
れると、その分岐に先行する全ての命令は通常の命令と
してマーク付けされ、その分岐命令はそのようにマーク
付けされ、且つ該分岐に続く全ての命令は逐次的命令と
マーク付けされる。2サイクル内において、最後にフェ
ッチされた命令に続く逐次的命令が検索され且つマーク
付けされ、分岐ターゲットアドレスにおいて開始するタ
ーゲット命令が検索され且つマーク付けされ、且つその
分岐が解決される。次いで、分岐解決に依存して逐次的
命令又はターゲット命令のいずれかが落とされ、固定し
た1サイクル分岐ペナルティが発生する。
フェッチ分岐アーキテクチャを提供する。 【解決手段】 本発明によれば、分岐予測の代わりに、
合体型フェッチ分岐ユニットがプロセッサ内のデコード
ユニットと並列的に動作を行う。1つ又はそれ以上のフ
ェッチした命令からなるグループ内に分岐命令が検知さ
れると、その分岐に先行する全ての命令は通常の命令と
してマーク付けされ、その分岐命令はそのようにマーク
付けされ、且つ該分岐に続く全ての命令は逐次的命令と
マーク付けされる。2サイクル内において、最後にフェ
ッチされた命令に続く逐次的命令が検索され且つマーク
付けされ、分岐ターゲットアドレスにおいて開始するタ
ーゲット命令が検索され且つマーク付けされ、且つその
分岐が解決される。次いで、分岐解決に依存して逐次的
命令又はターゲット命令のいずれかが落とされ、固定し
た1サイクル分岐ペナルティが発生する。
Description
【0001】
【発明の属する技術分野】本発明は、大略、分岐処理に
関するものであって、更に詳細には、分岐性能ペナルテ
ィを回避するために分岐予測を使用することなしにパイ
プライン型プロセッサにおける分岐処理技術に関するも
のである。
関するものであって、更に詳細には、分岐性能ペナルテ
ィを回避するために分岐予測を使用することなしにパイ
プライン型プロセッサにおける分岐処理技術に関するも
のである。
【0002】
【従来の技術】製造プラントにおいて複雑な製品を製造
するアッセンブリラインと同様に、パイプラインは性能
を改善するために集積回路の設計において広く使用され
ている。プロセッサにおいては、このような性能の改善
は、通常別個の計算要素を介して行われる逐次的な計算
の並列化によって達成される。より簡単なものであるの
で、これらの個別的な計算要素はより速いクロック速度
で動作することが可能であり、それにより性能の改善が
計られる。
するアッセンブリラインと同様に、パイプラインは性能
を改善するために集積回路の設計において広く使用され
ている。プロセッサにおいては、このような性能の改善
は、通常別個の計算要素を介して行われる逐次的な計算
の並列化によって達成される。より簡単なものであるの
で、これらの個別的な計算要素はより速いクロック速度
で動作することが可能であり、それにより性能の改善が
計られる。
【0003】同期型システムにおける積極的なパイプラ
イン化は必ずしもより効率的な構成となるものではな
い。なぜならば、高度にパイプライン化した場合にある
欠点が発生する場合があるからである。より高度のパイ
プライン化はより高い計算レイテンシィ即ち待ち時間を
暗示し、従って、プロセッサのような複雑な構成におい
て種々のパイプラインステージを介しての動作をスケジ
ューリングすることは制御器の構成を複雑なものとさせ
る。
イン化は必ずしもより効率的な構成となるものではな
い。なぜならば、高度にパイプライン化した場合にある
欠点が発生する場合があるからである。より高度のパイ
プライン化はより高い計算レイテンシィ即ち待ち時間を
暗示し、従って、プロセッサのような複雑な構成におい
て種々のパイプラインステージを介しての動作をスケジ
ューリングすることは制御器の構成を複雑なものとさせ
る。
【0004】一連の操作の実行期間中に、ジャンプ又は
ファンクションコール等の命令(又は同様の分岐を行う
命令)に起因するプログラムの流れの変化はパイプライ
ン型プロセッサにおいて性能を劣化させる場合がある。
現在実行中のものとは異なるメモリアドレスから命令の
実行を開始するための決定がなされるまでには(即ち、
異なる分岐)、現在の命令の流れからの多数の命令はパ
イプラインにおける種々のステージにおいて既に実行中
である。これらの不所望の命令はプロセッサの有用な資
源を消費し、通常「分岐ペナルティ」と呼ばれる性能の
損失を発生する。より数の多いパイプラインステージの
場合に、通常、より高い分岐ペナルティが発生する。
ファンクションコール等の命令(又は同様の分岐を行う
命令)に起因するプログラムの流れの変化はパイプライ
ン型プロセッサにおいて性能を劣化させる場合がある。
現在実行中のものとは異なるメモリアドレスから命令の
実行を開始するための決定がなされるまでには(即ち、
異なる分岐)、現在の命令の流れからの多数の命令はパ
イプラインにおける種々のステージにおいて既に実行中
である。これらの不所望の命令はプロセッサの有用な資
源を消費し、通常「分岐ペナルティ」と呼ばれる性能の
損失を発生する。より数の多いパイプラインステージの
場合に、通常、より高い分岐ペナルティが発生する。
【0005】分岐ペナルティに起因するプロセッサの性
能が著しく喪失されることを回避するために、最近の高
性能プロセッサは何等かのタイプの分岐予測を使用す
る。通常使用される1つの技術は、分岐命令の以前の履
歴に基づいて命令フェッチステージにおける条件付き分
岐の結果の予測を行うものであるが、そのことはプロセ
ッサ設計の複雑性を増加させる。
能が著しく喪失されることを回避するために、最近の高
性能プロセッサは何等かのタイプの分岐予測を使用す
る。通常使用される1つの技術は、分岐命令の以前の履
歴に基づいて命令フェッチステージにおける条件付き分
岐の結果の予測を行うものであるが、そのことはプロセ
ッサ設計の複雑性を増加させる。
【0006】1例として、最近のプロセサに対して一般
化されている典型的なプロセッサパイプラインを図3に
示してある。図示されている要素はプロセッサ内のレイ
アウトではなくパイプラインシーケンス(上から下)に
従って配列されている。図示したパイプライン構成内に
おいて、分岐命令は、最初に、デコードステージにおい
て検知され、分岐処理ユニットによって逐次的に処理さ
れ、そのことは(図示したように)、通常、その他の実
行ユニットと同一のパイプラインステージにおいて見出
される。分岐処理ユニットは分岐を解決し且つ次の命令
をフェッチすべき新たなアドレスを計算する。従って、
新たなフェッチアドレスは、パイプラインステージの頭
即ち始めに位置しているフェッチ/プレフェッチユニッ
トへ通信されねばならない。
化されている典型的なプロセッサパイプラインを図3に
示してある。図示されている要素はプロセッサ内のレイ
アウトではなくパイプラインシーケンス(上から下)に
従って配列されている。図示したパイプライン構成内に
おいて、分岐命令は、最初に、デコードステージにおい
て検知され、分岐処理ユニットによって逐次的に処理さ
れ、そのことは(図示したように)、通常、その他の実
行ユニットと同一のパイプラインステージにおいて見出
される。分岐処理ユニットは分岐を解決し且つ次の命令
をフェッチすべき新たなアドレスを計算する。従って、
新たなフェッチアドレスは、パイプラインステージの頭
即ち始めに位置しているフェッチ/プレフェッチユニッ
トへ通信されねばならない。
【0007】フェッチ及び分岐処理ユニットの間の大き
なギャップに起因して、中間のパイプラインステージは
投機的命令で充填される。分岐予測手法の特性に依存し
て、これらの投機的命令は、逐次的又はターゲット命令
のある混合したものが関与する。分岐が取られるべきで
はないことに解決すると、パイプライン内の逐次的命令
は実行を継続することが可能であるが、ターゲット命令
はドロップ即ち落とされることが必要である。一方、分
岐が取られるべきであることを解決すると、ターゲット
命令は通常通りに進行すべきであり、一方逐次的命令は
アボート即ち中止される。
なギャップに起因して、中間のパイプラインステージは
投機的命令で充填される。分岐予測手法の特性に依存し
て、これらの投機的命令は、逐次的又はターゲット命令
のある混合したものが関与する。分岐が取られるべきで
はないことに解決すると、パイプライン内の逐次的命令
は実行を継続することが可能であるが、ターゲット命令
はドロップ即ち落とされることが必要である。一方、分
岐が取られるべきであることを解決すると、ターゲット
命令は通常通りに進行すべきであり、一方逐次的命令は
アボート即ち中止される。
【0008】パイプラインの長さに依存して、パイプラ
インから逐次的又はターゲット命令をドロップ即ち落と
すことに起因する性能損失による分岐ペナルティは顕著
なものとなる場合があり、且つ性能損失を最小とさせる
ために効果的な分岐予測手法を必要とする。
インから逐次的又はターゲット命令をドロップ即ち落と
すことに起因する性能損失による分岐ペナルティは顕著
なものとなる場合があり、且つ性能損失を最小とさせる
ために効果的な分岐予測手法を必要とする。
【0009】殆どの最近のプロセッサは積極的なパイプ
ライン化及び複雑な構成とそれに付随する大きなシリコ
ン面積、パッケージング及び冷却用のコストによって高
い性能を達成しているが、これらの性能改善のためのよ
り高いコストのペナルティはワークステーションにおい
て使用されるメインストリームプロセッサに対して通常
許容可能なものであると考えられる。然しながら、その
他の適用例は高い性能を必要とするが、プロセッサの寸
法及び/又は複雑性を制限することが必要である場合が
ある。例えば、プロセッサコアのクラスター(例えば、
8個又はそれ以上)を使用するネットワーク処理システ
ムは、マイクロアーキテクチャの複雑性を制限しながら
高性能プロセッサ設計を必要とする場合がある。
ライン化及び複雑な構成とそれに付随する大きなシリコ
ン面積、パッケージング及び冷却用のコストによって高
い性能を達成しているが、これらの性能改善のためのよ
り高いコストのペナルティはワークステーションにおい
て使用されるメインストリームプロセッサに対して通常
許容可能なものであると考えられる。然しながら、その
他の適用例は高い性能を必要とするが、プロセッサの寸
法及び/又は複雑性を制限することが必要である場合が
ある。例えば、プロセッサコアのクラスター(例えば、
8個又はそれ以上)を使用するネットワーク処理システ
ムは、マイクロアーキテクチャの複雑性を制限しながら
高性能プロセッサ設計を必要とする場合がある。
【0010】従って、分岐予測なしで簡単なパイプライ
ン構成を使用して高い性能を得る命令フェッチ及び分岐
処理用の技術を提供する必要性が存在している。
ン構成を使用して高い性能を得る命令フェッチ及び分岐
処理用の技術を提供する必要性が存在している。
【0011】
【発明が解決しようとする課題】本発明は、以上の点に
鑑みなされたものであって、上述した如き従来技術の欠
点を解消し、分岐予測なしで分岐ペナルティを減少させ
たフェッチ分岐アーキテクチャを提供することを目的と
する。
鑑みなされたものであって、上述した如き従来技術の欠
点を解消し、分岐予測なしで分岐ペナルティを減少させ
たフェッチ分岐アーキテクチャを提供することを目的と
する。
【0012】
【課題を解決するための手段】本発明によれば分岐予測
の代わりにデコードユニットと並列的に動作しプロセッ
サにおいて使用するための合体型フェッチ分岐ユニット
が提供される。1つ又はそれ以上のフェッチした命令か
らグループの中で分岐命令が検知されると、その分岐に
選考する全ての命令は通常の命令としてマーク付けさ
れ、該分岐命令はそのようにマーク付けされ、且つ分岐
に続く全ての命令は逐次的命令としてマーク付けされ
る。2つのサイクル内において、最後にフェッチした命
令に続く逐次的命令が検索され且つマーク付けされ、分
岐ターゲットアドレスにおいて開始するターゲット命令
が検索され且つマーク付けされ、且つ該分岐が解決され
る。その分岐の解決に依存して逐次的又はターゲットの
いずれかの命令がドロップ即ち落とされ、固定された1
サイクル分岐ペナルティが発生する。
の代わりにデコードユニットと並列的に動作しプロセッ
サにおいて使用するための合体型フェッチ分岐ユニット
が提供される。1つ又はそれ以上のフェッチした命令か
らグループの中で分岐命令が検知されると、その分岐に
選考する全ての命令は通常の命令としてマーク付けさ
れ、該分岐命令はそのようにマーク付けされ、且つ分岐
に続く全ての命令は逐次的命令としてマーク付けされ
る。2つのサイクル内において、最後にフェッチした命
令に続く逐次的命令が検索され且つマーク付けされ、分
岐ターゲットアドレスにおいて開始するターゲット命令
が検索され且つマーク付けされ、且つ該分岐が解決され
る。その分岐の解決に依存して逐次的又はターゲットの
いずれかの命令がドロップ即ち落とされ、固定された1
サイクル分岐ペナルティが発生する。
【0013】
【発明の実施の形態】以下に説明する図1及び2及び本
明細書における本発明の原理を説明するために使用する
種々の実施例は、単に例示的なものであって、本発明の
技術的範囲を制限すべきものではない。当業者によって
理解されるように、本発明の原理は、任意の適宜に構成
された装置において実施することが可能である。
明細書における本発明の原理を説明するために使用する
種々の実施例は、単に例示的なものであって、本発明の
技術的範囲を制限すべきものではない。当業者によって
理解されるように、本発明の原理は、任意の適宜に構成
された装置において実施することが可能である。
【0014】図1は本発明の1実施例に基づくプロセッ
サパイプライン構成を示している。本発明は殆どの従来
のパイプライン型プロセッサ構成に関連して実施するこ
とが可能であるので、図1は完全なプロセッサ又はプロ
セッサ内の全ての要素及び接続を示すものではなく、本
発明を理解するために必要であるか又は本発明にとって
独特のプロセッサの構成について重点的に示してある。
サパイプライン構成を示している。本発明は殆どの従来
のパイプライン型プロセッサ構成に関連して実施するこ
とが可能であるので、図1は完全なプロセッサ又はプロ
セッサ内の全ての要素及び接続を示すものではなく、本
発明を理解するために必要であるか又は本発明にとって
独特のプロセッサの構成について重点的に示してある。
【0015】プロセッサ100は、実行用のシステムメ
モリ(不図示)及び/又は非揮発性メモリ(例えば、磁
気ハードディスク、不図示)から検索した命令を包含し
ている制御ストア即ち格納部(命令キャッシュ)101
を有している。制御ストア101から命令を受取るもの
は、デコードユニット102及びフェッチ(及びオプシ
ョンとしてプレフェッチ)及び分岐解決ユニット103
であり、それらは同一のパイプラインステージ内にあ
る。フェッチ及び分岐解決ユニット103は、以下に更
に説明するように、制御ストア101及びデコードユニ
ット102へ信号を通過させる。
モリ(不図示)及び/又は非揮発性メモリ(例えば、磁
気ハードディスク、不図示)から検索した命令を包含し
ている制御ストア即ち格納部(命令キャッシュ)101
を有している。制御ストア101から命令を受取るもの
は、デコードユニット102及びフェッチ(及びオプシ
ョンとしてプレフェッチ)及び分岐解決ユニット103
であり、それらは同一のパイプラインステージ内にあ
る。フェッチ及び分岐解決ユニット103は、以下に更
に説明するように、制御ストア101及びデコードユニ
ット102へ信号を通過させる。
【0016】デコードされた命令がデコードユニット1
02から次のパイプラインステージ内の実行ユニット1
04及び/又はロード/ストアユニット107へ供給さ
れる。当業者によって理解されるように、プロセッサ1
00は、オプションとして、並列的に動作する複数個の
実行ユニットを有することが可能であり、それは異なる
タイプの実行ユニット(例えば、整数又は固定点、浮動
小数点等)及び特定のタイプの実行ユニットの複数個の
具体例(例えば、2乃至3整数ユニット)を包含してい
る。最後に、レジスタファイル105が実行ユニット1
04から実行された命令からの結果を受取り、一方デー
タストア即ち格納部(データキャッシュ)106は、ロ
ード/ストアユニット107の制御下において、システ
ムメモリに対して及びそれからデータ(オペランド及び
実行した命令結果)をステージ処理する。
02から次のパイプラインステージ内の実行ユニット1
04及び/又はロード/ストアユニット107へ供給さ
れる。当業者によって理解されるように、プロセッサ1
00は、オプションとして、並列的に動作する複数個の
実行ユニットを有することが可能であり、それは異なる
タイプの実行ユニット(例えば、整数又は固定点、浮動
小数点等)及び特定のタイプの実行ユニットの複数個の
具体例(例えば、2乃至3整数ユニット)を包含してい
る。最後に、レジスタファイル105が実行ユニット1
04から実行された命令からの結果を受取り、一方デー
タストア即ち格納部(データキャッシュ)106は、ロ
ード/ストアユニット107の制御下において、システ
ムメモリに対して及びそれからデータ(オペランド及び
実行した命令結果)をステージ処理する。
【0017】既存のパイプライン型プロセッサ構成内の
大きな分岐ペナルティに影響を与える主要なファクター
は、パイプラインの長さ及び命令フェッチステージの分
岐検知及び分岐処理ステージからの離隔である。マイク
ロアーキテクチャの簡潔性を維持しながら高い性能を達
成するために、本発明は新規なフェッチ分岐処理技術を
使用しており、それは1サイクル分岐ペナルティを有す
るに過ぎず、従って、何等分岐予測手法を必要とするも
のではない。本発明のプロセッサ100は短く且つ簡単
なパイプラインに依存するものであり、その場合に、フ
ェッチ及び分岐検知及び処理は同一のパイプラインステ
ージ内に合体されている。
大きな分岐ペナルティに影響を与える主要なファクター
は、パイプラインの長さ及び命令フェッチステージの分
岐検知及び分岐処理ステージからの離隔である。マイク
ロアーキテクチャの簡潔性を維持しながら高い性能を達
成するために、本発明は新規なフェッチ分岐処理技術を
使用しており、それは1サイクル分岐ペナルティを有す
るに過ぎず、従って、何等分岐予測手法を必要とするも
のではない。本発明のプロセッサ100は短く且つ簡単
なパイプラインに依存するものであり、その場合に、フ
ェッチ及び分岐検知及び処理は同一のパイプラインステ
ージ内に合体されている。
【0018】更に、制御ストア101から実行ユニット
104への命令の流れの速度を増加させるために、フェ
ッチ及び分岐解決ユニット103がデコードユニット1
02と同一のパイプラインステージ内に位置されてい
る。分岐解決に関する決定及び命令のフェッチ及び発行
の間において経過するサイクル数もこの構成によって減
少されている。制御ストア101からの新たな命令は直
接的にデコードユニット102へ供給され、命令有効信
号はフェッチ分岐ユニット103から来る。
104への命令の流れの速度を増加させるために、フェ
ッチ及び分岐解決ユニット103がデコードユニット1
02と同一のパイプラインステージ内に位置されてい
る。分岐解決に関する決定及び命令のフェッチ及び発行
の間において経過するサイクル数もこの構成によって減
少されている。制御ストア101からの新たな命令は直
接的にデコードユニット102へ供給され、命令有効信
号はフェッチ分岐ユニット103から来る。
【0019】命令セットアーキテクチャ(ISA)内の
命令演算コードの適切な選択によってイネーブルされる
分岐命令の検知は、デコードユニット102による通常
の命令デコーディングと並列的にフェッチ分岐ユニット
103によって実施される。フェッチ分岐ユニットは分
岐命令を検知し且つ全ての命令(単に分岐命令のみなら
ず)に以下の命令タイプのうちの1つでラベル付けを行
う。
命令演算コードの適切な選択によってイネーブルされる
分岐命令の検知は、デコードユニット102による通常
の命令デコーディングと並列的にフェッチ分岐ユニット
103によって実施される。フェッチ分岐ユニットは分
岐命令を検知し且つ全ての命令(単に分岐命令のみなら
ず)に以下の命令タイプのうちの1つでラベル付けを行
う。
【0020】1.R型:基本命令ブロック内の通常の命
令;通常実行ユニット104によって実行される非投機
的命令。
令;通常実行ユニット104によって実行される非投機
的命令。
【0021】2.B型:分岐命令;これらの命令はフェ
ッチ分岐ユニット103によって完全にデコードされ且
つ処理される。
ッチ分岐ユニット103によって完全にデコードされ且
つ処理される。
【0022】3.S型:分岐命令直後の位置から(逐次
的)フェッチされた命令;これらは、分岐が取られる分
岐として解決する場合に実行されるべきでない投機的命
令を表わす。
的)フェッチされた命令;これらは、分岐が取られる分
岐として解決する場合に実行されるべきでない投機的命
令を表わす。
【0023】4.T型:分岐ターゲットアドレスに続く
分岐ターゲットアドレス及び位置からフェッチした命
令;これらは、分岐が取られない場合に実行されるべき
ではない投機的命令を表わす。
分岐ターゲットアドレス及び位置からフェッチした命
令;これらは、分岐が取られない場合に実行されるべき
ではない投機的命令を表わす。
【0024】スーパースカラープロセッサ構成において
は、複数個の命令が制御ストア101から受取られ且つ
各サイクル期間中にデコードユニット102及びフェッ
チ分岐ユニット103によって処理される。完全な分岐
命令処理手順は以下の通りである。
は、複数個の命令が制御ストア101から受取られ且つ
各サイクル期間中にデコードユニット102及びフェッ
チ分岐ユニット103によって処理される。完全な分岐
命令処理手順は以下の通りである。
【0025】サイクル1:
1.そのサイクル期間中に受取られたいずれかの命令が
分岐命令であるか否かを判別するためにフェッチ分岐ユ
ニット103によって制御ストア101から受けられた
各命令についてチェックを行う(検索した命令の中で分
岐が検知されない場合には、このサイクルは繰返し行わ
れる)。受取られた命令のグループ内の第一分岐命令に
先行する全ての命令はR型とマーク付けされ、そのグル
ープ内の第一分岐命令はB型とマーク付けされ、且つそ
の他の残りの命令はS型とマーク付けされる。
分岐命令であるか否かを判別するためにフェッチ分岐ユ
ニット103によって制御ストア101から受けられた
各命令についてチェックを行う(検索した命令の中で分
岐が検知されない場合には、このサイクルは繰返し行わ
れる)。受取られた命令のグループ内の第一分岐命令に
先行する全ての命令はR型とマーク付けされ、そのグル
ープ内の第一分岐命令はB型とマーク付けされ、且つそ
の他の残りの命令はS型とマーク付けされる。
【0026】2.検索された命令からなるグループにお
いて分岐が検知されるか否かに拘わらず、次のフェッチ
アドレス(分岐処理と並列的に計算される)は、常に、
最後に検索した命令(そのサイクル期間中に受取られた
最後の命令)の後の次の命令に対してポイント即ち指し
示すアドレスである。分岐が検知されなかった場合に
は、このフェッチアドレスはS型命令に対する投機的フ
ェッチに対応する。
いて分岐が検知されるか否かに拘わらず、次のフェッチ
アドレス(分岐処理と並列的に計算される)は、常に、
最後に検索した命令(そのサイクル期間中に受取られた
最後の命令)の後の次の命令に対してポイント即ち指し
示すアドレスである。分岐が検知されなかった場合に
は、このフェッチアドレスはS型命令に対する投機的フ
ェッチに対応する。
【0027】3.分岐のタイプ(例えば、条件付き又は
非条件付き、レジスタに対して絶対的/相対的等)を決
定した後に、ターゲットアドレス計算に対して必要な全
てのレジスタに対するアクセスが実施される。
非条件付き、レジスタに対して絶対的/相対的等)を決
定した後に、ターゲットアドレス計算に対して必要な全
てのレジスタに対するアクセスが実施される。
【0028】サイクル2:
1.第一サイクル期間中に分岐が検知された場合には、
このサイクル期間中に受取られた命令はデコード用のS
型としてマーク付けされる。これらの命令の内のいずれ
かが別の分岐(又は第一サイクル期間中にS型としてマ
ーク付けされた任意の命令)である場合には、その命令
を無効であるとしてマーク付けすることにより処理が遅
延される。このようなS型分岐命令は、現在の分岐処理
が完了した後に再処理される。
このサイクル期間中に受取られた命令はデコード用のS
型としてマーク付けされる。これらの命令の内のいずれ
かが別の分岐(又は第一サイクル期間中にS型としてマ
ーク付けされた任意の命令)である場合には、その命令
を無効であるとしてマーク付けすることにより処理が遅
延される。このようなS型分岐命令は、現在の分岐処理
が完了した後に再処理される。
【0029】2.ターゲットアドレスは分岐のタイプ即
ち型に依存して計算され、且つ次のフェッチアドレスが
このターゲットアドレスによって供給される(このター
ゲットアドレスに関する命令フェッチもT型命令を供給
する投機的フェッチである)。ターゲットアドレス計算
に必要なレジスタが使用可能でない場合には、必要とさ
れるレジスタが有効な値を包含するまで、分岐処理はこ
の状態に止まる。
ち型に依存して計算され、且つ次のフェッチアドレスが
このターゲットアドレスによって供給される(このター
ゲットアドレスに関する命令フェッチもT型命令を供給
する投機的フェッチである)。ターゲットアドレス計算
に必要なレジスタが使用可能でない場合には、必要とさ
れるレジスタが有効な値を包含するまで、分岐処理はこ
の状態に止まる。
【0030】3.いずれかの条件コードレジスタが必要
される場合には(条件付き分岐のため)、条件コードへ
のアクセスはこのサイクル期間中に開始される。
される場合には(条件付き分岐のため)、条件コードへ
のアクセスはこのサイクル期間中に開始される。
【0031】サイクル3:
1.このサイクル期間中に受取られた(検索された)命
令は、デコードに対してT型のマーク付けがされる。こ
れらの命令のうちのいずれかが別の分岐である場合に
は、その命令が無効であるとマーク付けすることによっ
て処理が遅延され、このような命令は、現在の分岐処理
が完了した後に再処理される。
令は、デコードに対してT型のマーク付けがされる。こ
れらの命令のうちのいずれかが別の分岐である場合に
は、その命令が無効であるとマーク付けすることによっ
て処理が遅延され、このような命令は、現在の分岐処理
が完了した後に再処理される。
【0032】2.無条件分岐の場合には、分岐解決は自
動的に取られる分岐である。
動的に取られる分岐である。
【0033】3.条件付き分岐の場合には、分岐解決は
受取られた条件コードに基づいて行われる。有効条件コ
ードが使用可能でない場合には、有効条件コードが受取
られるまで該処理はこの状態に止まる。
受取られた条件コードに基づいて行われる。有効条件コ
ードが使用可能でない場合には、有効条件コードが受取
られるまで該処理はこの状態に止まる。
【0034】4.分岐解決が取られる分岐である場合に
は、S型命令がドロップ即ち落とされ、分岐解決が取ら
れない分岐である場合には、T型命令がドロップ即ち落
とされる。
は、S型命令がドロップ即ち落とされ、分岐解決が取ら
れない分岐である場合には、T型命令がドロップ即ち落
とされる。
【0035】5.次のフェッチは、その分岐が取られた
か否かに依存して、最後の逐次的又はターゲットアドレ
スに続く位置から実施される。受取られた命令に関する
処理は、第一サイクルに対して上述した如くに再開す
る。
か否かに依存して、最後の逐次的又はターゲットアドレ
スに続く位置から実施される。受取られた命令に関する
処理は、第一サイクルに対して上述した如くに再開す
る。
【0036】要するに、分岐命令が検知されると(フェ
ッチステージ自身において)、次の2つのサイクル期間
中にその分岐を処理している間に、逐次的アドレス及び
ターゲットアドレスの両方から命令がフェッチされる。
最後のサイクル(サイクル3)期間中に、分岐が解決さ
れると、1サイクルのみに値する命令(逐次的又はター
ゲットのいずれかの命令)がドロップ即ち落とされ、1
サイクルの定義された分岐ペナルティを発生する。従っ
て、このアプローチは、性能を改善するために分岐予測
に頼ることなしに、簡単な分岐処理を使用して非常に低
い分岐ペナルティを与える。
ッチステージ自身において)、次の2つのサイクル期間
中にその分岐を処理している間に、逐次的アドレス及び
ターゲットアドレスの両方から命令がフェッチされる。
最後のサイクル(サイクル3)期間中に、分岐が解決さ
れると、1サイクルのみに値する命令(逐次的又はター
ゲットのいずれかの命令)がドロップ即ち落とされ、1
サイクルの定義された分岐ペナルティを発生する。従っ
て、このアプローチは、性能を改善するために分岐予測
に頼ることなしに、簡単な分岐処理を使用して非常に低
い分岐ペナルティを与える。
【0037】図2は本発明の1実施例に基づくフェッチ
分岐処理のプロセスに対するハイレベルのフローチャー
トである。プロセス200は1つ又はそれ以上の命令の
検索(受取り)で開始し(ステップ201)、且つ該命
令が分岐命令を有するか否かの決定へ移行する(ステッ
プ202)。包含していない場合には、フェッチした命
令の全てにR型のマーク付けがされ且つ分岐の識別のた
めに次のグループの命令がフェッチされる(ステップ2
03)。分岐命令が検知されると、その分岐命令に先行
する全ての命令にR型のマーク付けがされ、その分岐命
令はB型のマーク付けがされ、且つその分岐命令に続く
全ての命令はS型のマーク付けがされる(ステップ20
4)。最後にフェッチされた命令直後の命令(即ち、逐
次的命令)がフェッチされる(ステップ205)。
分岐処理のプロセスに対するハイレベルのフローチャー
トである。プロセス200は1つ又はそれ以上の命令の
検索(受取り)で開始し(ステップ201)、且つ該命
令が分岐命令を有するか否かの決定へ移行する(ステッ
プ202)。包含していない場合には、フェッチした命
令の全てにR型のマーク付けがされ且つ分岐の識別のた
めに次のグループの命令がフェッチされる(ステップ2
03)。分岐命令が検知されると、その分岐命令に先行
する全ての命令にR型のマーク付けがされ、その分岐命
令はB型のマーク付けがされ、且つその分岐命令に続く
全ての命令はS型のマーク付けがされる(ステップ20
4)。最後にフェッチされた命令直後の命令(即ち、逐
次的命令)がフェッチされる(ステップ205)。
【0038】次のプロセッササイクル期間中に、今フェ
ッチされた逐次的命令がS型のマーク付けがされ(ステ
ップ206)及び分岐ターゲットアドレスに位置してい
る命令(即ち、ターゲット命令)で開始する命令がフェ
ッチされる(ステップ207)。
ッチされた逐次的命令がS型のマーク付けがされ(ステ
ップ206)及び分岐ターゲットアドレスに位置してい
る命令(即ち、ターゲット命令)で開始する命令がフェ
ッチされる(ステップ207)。
【0039】分岐命令がフェッチされたサイクルに続く
第二プロセッササイクル期間中に、今フェッチされた命
令がT型のマーク付けがされ(ステップ208)且つそ
の分岐が解決される(ステップ209)。分岐が取られ
るか(taken)否かに基づいて(ステップ21
0)、T型命令がドロップ即ち落とされ且つ最後の逐次
的命令直後の位置から命令がフェッチされる(ステップ
211)か又は、S型命令がドロップ即ち落とされ且つ
最後のターゲット命令直後の位置から命令がフェッチさ
れる(ステップ212)。いずれの場合においても、今
フェッチされた命令のいずれかが分岐命令であるか否か
の判別が行われ(ステップ202)且つその処理が繰返
し行われる。
第二プロセッササイクル期間中に、今フェッチされた命
令がT型のマーク付けがされ(ステップ208)且つそ
の分岐が解決される(ステップ209)。分岐が取られ
るか(taken)否かに基づいて(ステップ21
0)、T型命令がドロップ即ち落とされ且つ最後の逐次
的命令直後の位置から命令がフェッチされる(ステップ
211)か又は、S型命令がドロップ即ち落とされ且つ
最後のターゲット命令直後の位置から命令がフェッチさ
れる(ステップ212)。いずれの場合においても、今
フェッチされた命令のいずれかが分岐命令であるか否か
の判別が行われ(ステップ202)且つその処理が繰返
し行われる。
【0040】本発明の簡単な分岐処理技術は、デコード
ユニット102と同一の及びそれと平行なパイプライン
ステージ内に合体したフェッチ分岐ユニット103を配
置することに起因する利点を提供している。制御ストア
101からデコードユニット103への命令の送給が促
進され、一方分岐処理は次の命令フェッチアドレスのデ
コーディング及び計算と並列的に進行する。分岐は単に
1サイクルの固定した分岐ペナルティで処理され、殆ど
の従来の高性能プロセッサデザインによって使用されて
いる複雑な分岐予測手法を組込むことの必要性を取除い
ており、そのことは、付加的な制御及びデータ経路複雑
性及び遅延を導入するばかりでなく、分岐履歴テーブル
を維持するための付加的なメモリ構成を必要とする。従
って、本発明は、低コストで高い性能の分岐処理に対す
る解決を提供している。
ユニット102と同一の及びそれと平行なパイプライン
ステージ内に合体したフェッチ分岐ユニット103を配
置することに起因する利点を提供している。制御ストア
101からデコードユニット103への命令の送給が促
進され、一方分岐処理は次の命令フェッチアドレスのデ
コーディング及び計算と並列的に進行する。分岐は単に
1サイクルの固定した分岐ペナルティで処理され、殆ど
の従来の高性能プロセッサデザインによって使用されて
いる複雑な分岐予測手法を組込むことの必要性を取除い
ており、そのことは、付加的な制御及びデータ経路複雑
性及び遅延を導入するばかりでなく、分岐履歴テーブル
を維持するための付加的なメモリ構成を必要とする。従
って、本発明は、低コストで高い性能の分岐処理に対す
る解決を提供している。
【0041】以上、本発明の具体的実施の態様について
詳細に説明したが、本発明は、上述した実施例にのみ制
限されるべきものではなく、本発明の技術的範囲を逸脱
することなしに種々の変形が可能であることは勿論であ
る。
詳細に説明したが、本発明は、上述した実施例にのみ制
限されるべきものではなく、本発明の技術的範囲を逸脱
することなしに種々の変形が可能であることは勿論であ
る。
【図1】 本発明の1実施例に基づくプロセッサパイプ
ライン構成を示した概略図。
ライン構成を示した概略図。
【図2】 本発明の1実施例に基づくフェッチ分岐処理
のプロセスを示したフローチャート。
のプロセスを示したフローチャート。
【図3】 既存のプロセッサに対する一般化したプロセ
ッサパイプライン構成を示した概略ブロック図。
ッサパイプライン構成を示した概略ブロック図。
100 プロセッサ
101 制御ストア(命令キャッシュ)
102 デコードユニット
103 分岐解決ユニット
104 実行ユニット
105 レジスタファイル
107 ロード/ストアユニット
フロントページの続き
(72)発明者 ファレイドン オー. カリム
アメリカ合衆国, カリフォルニア
92121, サン ディエゴ, エクゼクテ
ィブ ドライブ 4690
(72)発明者 ラメシュ チャンドラ
アメリカ合衆国, カリフォルニア
92128, サン ディエゴ, ミドルブル
ック スクエア 12277
Fターム(参考) 5B013 AA01 BB04 BB11 BB14 BB17
BB18
Claims (20)
- 【請求項1】 プロセッサにおいて使用するための分岐
予測なしで分岐ペナルティを制限する分岐アーキテクチ
ャにおいて、 デコードユニットと並列的に動作し且つ前記デコードユ
ニットに対する命令の検索を制御するフェッチ分岐ユニ
ットが設けられており、前記フェッチ分岐ユニットは、
1サイクル期間中に分岐命令を検知すると、 前記1サイクル直後の第一サイクル及び前記第一サイク
ル直後の第二サイクルのうちの1つの期間中に最後に検
索した命令の位置直後の位置から少なくとも1個の逐次
的な命令の検索を開始し且つ前記1サイクル直後の前記
第一サイクル及び前記第一サイクル直後の前記第二サイ
クルのうちの他方の期間中に前記分岐命令に対するター
ゲット位置から少なくとも1個のターゲット命令の検索
を開始する、ことを特徴とする分岐アーキテクチャ。 - 【請求項2】 請求項1において、前記フェッチ分岐ユ
ニットが前記分岐命令を解決し、且つ前記分岐命令を解
決した場合に、前記少なくとも1個の逐次的な命令か又
は前記少なくとも1個のターゲット命令のいずれかを落
とすことを特徴とする分岐アーキテクチャ。 - 【請求項3】 請求項2において、前記フェッチ分岐ユ
ニットは、前記分岐命令を解決した場合に、分岐が取ら
れるか否かに依存して、前記少なくとも1個の逐次的な
命令又は前記少なくとも1個のターゲット命令のいずれ
かにおいて最後に検索された命令の位置直後の位置から
少なくとも1個の命令を検索することを特徴とする分岐
アーキテクチャ。 - 【請求項4】 請求項1において、前記フェッチ分岐ユ
ニットは、前記1サイクル期間中に分岐命令を検知した
場合に、前記分岐命令に先行するフェッチした命令を通
常の命令型識別子でマーク付けし、前記分岐命令を分岐
命令型識別子でマーク付けし、且つ前記分岐命令の後に
続くフェッチした命令を逐次的命令型識別子でマーク付
けすることを特徴とする分岐アーキテクチャ。 - 【請求項5】 請求項4において、前記フェッチ分岐ユ
ニットは、前記1サイクル期間中に分岐命令を検知する
ことがない場合には、全てのフェッチした命令を前記通
常の命令型識別子でマーク付けすることを特徴とする分
岐アーキテクチャ。 - 【請求項6】 請求項1において、前記フェッチ分岐ユ
ニットは前記少なくとも1個の逐次的命令を逐次的命令
型識別子でマーク付けすることを特徴とする分岐アーキ
テクチャ。 - 【請求項7】 請求項1において、前記フェッチ分岐ユ
ニットは前記少なくとも1個のターゲット命令をターゲ
ット命令型識別子でマーク付けすることを特徴とする分
岐アーキテクチャ。 - 【請求項8】 プロセッサにおいて、 少なくとも1個の実行ユニット、 デコードユニット、 分岐予測なしで分岐ペナルティを制限する分岐アーキテ
クチャ、を有しており、前記分岐アーキテクチャは、 前記デコードユニットと並列的に動作し且つ前記デコー
ドユニットに対する命令の検索を制御するフェッチ分岐
ユニットを有しており、前記フェッチ分岐ユニットは、
1サイクル期間中に分岐命令を検知した場合に、 前記1サイクル直後の第一サイクル及び前記第一サイク
ル直後の第二サイクルのうちの1つの期間中に最後に検
索した命令の位置直後の位置から少なくとも1個の逐次
的命令の検索を開始し、且つ前記1サイクル直後の前記
第一サイクル及び前記第一サイクル直後の前記第二サイ
クルのうちの他方の期間中に前記分岐命令に対するター
ゲット位置から少なくとも1個のターゲット命令の検索
を開始する、ことを特徴とするプロセッサ。 - 【請求項9】 請求項8において、前記フェッチ分岐ユ
ニットは前記分岐命令を解決し、且つ前記分岐命令を解
決する場合に、前記少なくとも1個の逐次的命令又は前
記少なくとも1個のターゲット命令のいずれかを落とす
ことを特徴とするプロセッサ。 - 【請求項10】 請求項9において、前記フェッチ分岐
ユニットは、前記分岐命令を解決する場合に、分岐が取
られるか否かに依存して、前記少なくとも1個の逐次的
命令か又は前記少なくとも1個のターゲット命令のいず
れかにおける最後に検索した命令の位置直後の位置から
少なくとも1個の命令を検索することを特徴とするプロ
セッサ。 - 【請求項11】 請求項9において、前記フェッチ分岐
ユニットは、前記1サイクル期間中に分岐命令を検知す
る場合に、前記分岐命令に先行するフェッチした命令に
通常の命令型識別子でマーク付けし、前記分岐命令を分
岐命令型識別子でマーク付けし、且つ前記分岐命令に続
くフェッチした命令を逐次的命令型識別子でマーク付け
することを特徴とするプロセッサ。 - 【請求項12】 請求項11において、前記フェッチ分
岐ユニットは、前記1サイクル期間中に分岐命令を検知
することがない場合に、全てのフェッチした命令を前記
通常の命令型識別子でマーク付けすることを特徴とする
プロセッサ。 - 【請求項13】 請求項8において、前記フェッチ分岐
ユニットが前記少なくとも1個の逐次的命令を逐次的命
令型識別子でマーク付けすることを特徴とするプロセッ
サ。 - 【請求項14】 請求項8において、前記フェッチ分岐
ユニットが前記少なくとも1個のターゲット命令をター
ゲット命令型識別子でマーク付けすることを特徴とする
プロセッサ。 - 【請求項15】 プロセッサにおいて使用するための分
岐予測なしで分岐命令を処理する方法において、 デコードユニットと並列的にフェッチ分岐ユニットを動
作させて前記デコードユニットに対する命令の検索を制
御し、 1サイクル期間中に分岐命令を検知した場合に、前記1
サイクル直後の第一サイクル及び前記第一サイクル直後
の第二サイクルのうちの1つの期間中に最後に検索した
命令の位置直後の位置から少なくとも1個の逐次的命令
の検索を開始し、且つ前記1サイクル直後の前記第一サ
イクル及び前記第一サイクル直後の前記第二サイクルの
うちの他方の期間中に前記分岐命令に対するターゲット
位置から少なくとも1個のターゲット命令の検索を開始
する、ことを特徴とする方法。 - 【請求項16】 請求項15において、更に、 前記分岐命令を解決し、 前記分岐命令を解決した場合に、前記少なくとも1個の
逐次的命令又は前記少なくとも1個のターゲット命令の
いずれかを落とす、ことを特徴とする方法。 - 【請求項17】 請求項16において、更に、 前記分岐命令を解決した場合に、分岐が取られるか否か
に依存して、前記少なくとも1個の逐次的命令又は前記
少なくとも1個のターゲット命令のいずれかにおける最
後に検索した命令の位置直後の位置から少なくとも1個
の命令を検索する、ことを特徴とする方法。 - 【請求項18】 請求項15において、更に、 前記1サイクル期間中に分岐命令を検知した場合に、 前記分岐命令に先行するフェッチした命令を通常の命令
型識別子でマーク付けし、 前記分岐命令を分岐命令型識別子でマーク付けし、 前記分岐命令に続くフェッチした命令を前記逐次的命令
型識別子でマーク付けする、ことを特徴とする方法。 - 【請求項19】 請求項18において、更に、 前記1サイクル期間中に分岐命令を検知しなかった場合
に、全てのフェッチした命令を前記通常の命令型識別子
でマーク付けする、ことを特徴とする方法。 - 【請求項20】 請求項15において、更に、 前記少なくとも1個の逐次的命令を逐次的命令型識別子
でマーク付けし、且つ前記少なくとも1個のターゲット
命令をターゲット命令型識別子でマーク付けする、こと
を特徴とする方法。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US09/917290 | 2001-07-27 | ||
| US09/917,290 US7010675B2 (en) | 2001-07-27 | 2001-07-27 | Fetch branch architecture for reducing branch penalty without branch prediction |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2003058366A true JP2003058366A (ja) | 2003-02-28 |
Family
ID=25438573
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2002219623A Pending JP2003058366A (ja) | 2001-07-27 | 2002-07-29 | 分岐予測なしで分岐ペナルティを減少させる新規なフェッチ分岐アーキテクチャ |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US7010675B2 (ja) |
| EP (1) | EP1280052A3 (ja) |
| JP (1) | JP2003058366A (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2009151789A (ja) * | 2007-12-19 | 2009-07-09 | Arm Ltd | 低電力モードに入る前にハードウェアで駆動されるプロセッサのステートを記憶する装置 |
Families Citing this family (17)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2003005980A (ja) * | 2001-06-22 | 2003-01-10 | Matsushita Electric Ind Co Ltd | コンパイル装置およびコンパイルプログラム |
| US8719837B2 (en) * | 2004-05-19 | 2014-05-06 | Synopsys, Inc. | Microprocessor architecture having extendible logic |
| US7487334B2 (en) * | 2005-02-03 | 2009-02-03 | International Business Machines Corporation | Branch encoding before instruction cache write |
| TWI328771B (en) * | 2005-07-15 | 2010-08-11 | Nvidia Corp | Pipelined central processing unit structure and method of processing a sequence of instructions |
| US20070073925A1 (en) * | 2005-09-28 | 2007-03-29 | Arc International (Uk) Limited | Systems and methods for synchronizing multiple processing engines of a microprocessor |
| JP4383496B1 (ja) * | 2008-09-29 | 2009-12-16 | Necエレクトロニクス株式会社 | マイクロコンピュータ及びその命令実行方法 |
| US9952869B2 (en) * | 2009-11-04 | 2018-04-24 | Ceva D.S.P. Ltd. | System and method for using a branch mis-prediction buffer |
| CN102117198B (zh) * | 2009-12-31 | 2015-07-15 | 上海芯豪微电子有限公司 | 一种分支处理方法 |
| US20130046964A1 (en) * | 2011-08-15 | 2013-02-21 | Noam DVORETZKI | System and method for zero penalty branch mis-predictions |
| CN102520913B (zh) * | 2011-11-03 | 2014-03-26 | 浙江大学 | 基于分组更新历史信息的并行分支预测装置 |
| WO2015035341A1 (en) * | 2013-09-06 | 2015-03-12 | Huawei Technologies Co., Ltd. | System and method for an asynchronous processor with assisted token |
| US10901743B2 (en) * | 2018-07-19 | 2021-01-26 | International Business Machines Corporation | Speculative execution of both paths of a weakly predicted branch instruction |
| US11537541B2 (en) | 2018-09-28 | 2022-12-27 | Xilinx, Inc. | Network interface device and host processing device |
| US11570045B2 (en) | 2018-09-28 | 2023-01-31 | Xilinx, Inc. | Network interface device |
| US11012411B2 (en) * | 2018-11-05 | 2021-05-18 | Xilinx, Inc. | Network interface device |
| US11082364B2 (en) | 2019-04-25 | 2021-08-03 | Xilinx, Inc. | Network interface device |
| US11550577B2 (en) | 2019-05-15 | 2023-01-10 | Western Digital Technologies, Inc. | Memory circuit for halting a program counter while fetching an instruction sequence from memory |
Family Cites Families (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP0190484A3 (en) | 1985-01-28 | 1988-09-21 | Data General Corporation | Enhanced speed digital computer and method of speed enhancement |
| US5127091A (en) | 1989-01-13 | 1992-06-30 | International Business Machines Corporation | System for reducing delay in instruction execution by executing branch instructions in separate processor while dispatching subsequent instructions to primary processor |
| US5696958A (en) * | 1993-01-11 | 1997-12-09 | Silicon Graphics, Inc. | Method and apparatus for reducing delays following the execution of a branch instruction in an instruction pipeline |
| DE4345028A1 (de) * | 1993-05-06 | 1994-11-10 | Hewlett Packard Co | Vorrichtung zur Reduzierung von Verzögerungen aufgrund von Verzweigungen |
| US6119222A (en) | 1996-12-23 | 2000-09-12 | Texas Instruments Incorporated | Combined branch prediction and cache prefetch in a microprocessor |
| US6067644A (en) | 1998-04-15 | 2000-05-23 | International Business Machines Corporation | System and method monitoring instruction progress within a processor |
| US6289445B2 (en) * | 1998-07-21 | 2001-09-11 | Lsi Logic Corporation | Circuit and method for initiating exception routines using implicit exception checking |
-
2001
- 2001-07-27 US US09/917,290 patent/US7010675B2/en not_active Expired - Lifetime
-
2002
- 2002-07-15 EP EP02254954A patent/EP1280052A3/en not_active Withdrawn
- 2002-07-29 JP JP2002219623A patent/JP2003058366A/ja active Pending
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2009151789A (ja) * | 2007-12-19 | 2009-07-09 | Arm Ltd | 低電力モードに入る前にハードウェアで駆動されるプロセッサのステートを記憶する装置 |
Also Published As
| Publication number | Publication date |
|---|---|
| EP1280052A2 (en) | 2003-01-29 |
| EP1280052A3 (en) | 2003-04-09 |
| US7010675B2 (en) | 2006-03-07 |
| US20030023838A1 (en) | 2003-01-30 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5475824A (en) | Microprocessor with apparatus for parallel execution of instructions | |
| US5421020A (en) | Counter register implementation for speculative execution of branch on count instructions | |
| JP2003058366A (ja) | 分岐予測なしで分岐ペナルティを減少させる新規なフェッチ分岐アーキテクチャ | |
| EP0219203B1 (en) | Computer control providing single-cycle branching | |
| US6754812B1 (en) | Hardware predication for conditional instruction path branching | |
| US5649138A (en) | Time dependent rerouting of instructions in plurality of reservation stations of a superscalar microprocessor | |
| US6662295B2 (en) | Method and system dynamically presenting the branch target address in conditional branch instruction | |
| JPH03116233A (ja) | データプロセッサの命令処理システム | |
| JPH10133873A (ja) | 複数の分岐予測方式のうちの選択された1つを使用して条件分岐命令を投機的に実行するためのプロセッサおよび方法 | |
| US4893233A (en) | Method and apparatus for dynamically controlling each stage of a multi-stage pipelined data unit | |
| JP2002149401A (ja) | マイクロプロセッサ内の命令処理法方、マイクロプロセッサ及び情報処理システム | |
| JPH09185506A (ja) | プロセッサ内で命令を実行する方法およびシステム | |
| EP1886216B1 (en) | Controlling out of order execution pipelines using skew parameters | |
| US8977837B2 (en) | Apparatus and method for early issue and recovery for a conditional load instruction having multiple outcomes | |
| US7454598B2 (en) | Controlling out of order execution pipelines issue tagging | |
| US5768553A (en) | Microprocessor using an instruction field to define DSP instructions | |
| EP1315083A2 (en) | Processor and method of pipelining | |
| US6286094B1 (en) | Method and system for optimizing the fetching of dispatch groups in a superscalar processor | |
| US5829031A (en) | Microprocessor configured to detect a group of instructions and to perform a specific function upon detection | |
| US5226127A (en) | Method and apparatus providing for conditional execution speed-up in a computer system through substitution of a null instruction for a synchronization instruction under predetermined conditions | |
| US6170053B1 (en) | Microprocessor with circuits, systems and methods for responding to branch instructions based on history of prediction accuracy | |
| WO2002061574A1 (en) | Computer instruction with instruction fetch control bits | |
| US6336182B1 (en) | System and method for utilizing a conditional split for aligning internal operation (IOPs) for dispatch | |
| US6948055B1 (en) | Accuracy of multiple branch prediction schemes | |
| CA2356805A1 (en) | Converting short branches to predicated instructions |