JPH09274565A - 分岐による中断のないパイプライン化されたマイクロプロセッサ及びその動作方法 - Google Patents
分岐による中断のないパイプライン化されたマイクロプロセッサ及びその動作方法Info
- Publication number
- JPH09274565A JPH09274565A JP8339125A JP33912596A JPH09274565A JP H09274565 A JPH09274565 A JP H09274565A JP 8339125 A JP8339125 A JP 8339125A JP 33912596 A JP33912596 A JP 33912596A JP H09274565 A JPH09274565 A JP H09274565A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- instructions
- branch
- microprocessor
- pipelined
- 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
-
- 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/3861—Recovery, e.g. branch miss-prediction, exception handling
- G06F9/3865—Recovery, e.g. branch miss-prediction, exception handling using deferred exception handling, e.g. exception flags
-
- 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/3005—Arrangements for executing specific machine instructions to perform operations for flow control
- G06F9/30058—Conditional branch instructions
-
- 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
-
- 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/3854—Instruction completion, e.g. retiring, committing or graduating
- G06F9/3858—Result writeback, i.e. updating the architectural state or memory
- G06F9/38585—Result writeback, i.e. updating the architectural state or memory with result invalidation, e.g. nullification
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
Abstract
想された分岐ターゲット命令に関するスループットを最
大にするように、複数機能装置、複数段パイプライン・
マイクロプロセッサで誤って予想された分岐を処理する
改良された機構を提案する。 【解決手段】 各サイクルごとに、最大数の命令を、分
岐命令の後に別々のブロックとして分割せずにディスパ
ッチするディスパッチ装置を含む。誤って予想された分
岐は、未処理命令FIFO中の分岐命令の後に続く命令
に関する有効ビットを無効にセットすることによって処
理される。
Description
ン化された機能装置を使用するRISCマイクロプロセ
ッサに関し、詳細には、分岐命令を処理するディスパッ
チ装置で使用される機構に関する。
C)マイクロプロセッサの主要な利点の1つは、命令を
非常に早い速度で処理できることである。これは1つに
は、クロック速度のためであり、1つには、複数の機能
装置が同時に使用され、そのため、1サイクル中に、複
数の機能がそれぞれの異なる命令に対して実行されるか
らである。また、パイプラインが使用され、そのため、
各機能装置は、各サイクルごとに、パイプラインを通じ
て命令を移動する。例えば、一度に4つの機能装置が使
用され9段パイプラインを有するシステムは、一度に9
×4=36個の命令を処理することができる。同じサイ
クル中に発行される命令を命令群と呼ぶ。
ーキテクチャで発生する主要な問題の1つは、分岐命令
またはジャンプ命令の処理である。通常、分岐のターゲ
ット・アドレスを算出しターゲット命令を取り出すには
いくつかのパイプライン・サイクルが必要なので、この
問題のために、パイプラインの遅延および減速が生じる
ことがある。1つの手法は、単に、ターゲット・アドレ
スが正しく算出され、あるいは分岐が条件付きである場
合は、その条件も判定されるまで、追加命令を発行しな
いことである。その場合、パイプラインは、これが処理
されている間、数サイクルにわたって空になり、パイプ
ラインの性能上の利点が失われる。
向を予想する1つまたは複数のビットを記憶することで
ある。したがって、次の命令はこの予想に基づいて取り
出され、パイプラインはフルスピードで継続し、予想さ
れた命令とその後に続く命令が処理される。予想が正し
い場合、パイプラインは減速せず、最大の性能を発揮す
る。しかし、予想が正しくない場合、誤って予想された
命令のパイプラインをフラッシュする機構を使用しなけ
ればならない。通常、予想速度は、予想のまれな誤りの
発生時にパイプラインをフラッシュする時間上の欠点
が、予想が正しいときにパイプラインを最大限に活用す
ることによって補われるほど高い。
ラッシュすることは複雑なタスクである。ある手法で
は、各命令は、それが分岐に従うものであることを示す
ようにタグ付けできる。その場合、その後でこのタグを
調べることができる。残念なことに、この手法では、各
パイプラインの各段での各機能装置中のタグを調べるた
めに多量の余分なハードウェアが必要である。命令がパ
イプラインから出るのを待つことは十分ではない。なぜ
なら、この場合、フラッシングを開始する前にパイプラ
インを空にしておくために必要なすべてのサイクルが必
要であり、したがって追加時間が費やされるからであ
る。
crosystems Inc.)のSparcシステ
ムで使用される代替方法では、分岐命令がパイプライン
内を伝搬する際にパイプラインのどの段が分岐命令を有
するかを追跡する論理機構が使用される。この手法の1
つの問題は、分岐がパイプライン中の命令群中の複数の
命令の中央で発生する恐れがあることである。これは、
分岐後の追加命令の発行を次のサイクルまで遅延させる
ことによって対処される。したがって、各サイクルごと
に4つの機能装置に4つの命令が発行され、命令2が分
岐である場合、2つの命令しか発行されず、分岐の後に
続く2つの命令は後続のサイクルまで待機する。この手
法は、誤って予想された分岐命令がどこにあるかを追跡
するために必要な論理機構が簡略化される利点を有する
が、分岐の予想されたターゲット・アドレスが正しいと
きには、パイプラインの容量の一部が使用されない。
論理機構しか必要とせず、正しく予想された分岐ターゲ
ット命令に関するスループットを最大にするように、複
数機能装置、複数段パイプライン・マイクロプロセッサ
で誤って予想された分岐を処理する改良された機構を有
することが望ましい。
とに、最大数の命令を、分岐命令の後に別々のブロック
として分割せずにディスパッチするディスパッチ装置を
含むマイクロプロセッサを提供する。誤って予想された
分岐は、未処理命令FIFO中の分岐命令の後に続く命
令に関する有効ビットを無効にセットすることによって
処理される。
セス段の前に未処理命令FIFOが調べられ、無効な命
令のための不要なメモリ・アクセス・サイクルが回避さ
れる。パイプラインの出力時に有効ビットも調べられ
る。機能装置中の命令と未処理命令FIFO中の命令と
の突き合わせは、OPコードを調べ、特定のサイクルま
たは段に関してどの機能装置がFIFO中のどの位置に
対応するかを判定することによって行われる。
ために、下記の説明を添付の図面と共に参照されたい。
traSparcTMマイクロプロセッサ10のブロック
図である。命令キャッシュ12は、復号装置14に命令
を与える。命令キャッシュは、プリフェッチ装置16か
ら命令を受け取ることができ、プリフェッチ装置16
は、分岐装置18から命令を受け取り、あるいは命令T
LB(変換索引バッファ)20に仮想アドレスを与え
る。TLB20は次いで、キャッシュ制御/システム・
インタフェース22を通じてオフチップ・キャッシュか
ら命令を取り出させる。オフチップ・キャッシュからの
命令は、事前復号装置24に与えられ、分岐命令である
かどうかなど、ある種の情報が命令キャッシュ12に与
えられる。
6に与えられ、そこでディスパッチ装置28からアクセ
スされる。ディスパッチ装置28は、バス30に沿って
一度に4つの復号命令を与え、各命令は8つの機能装置
32ないし46のうちの1つに与えられる。ディスパッ
チ装置は、そのような4つの命令を各サイクルごとにデ
ィスパッチし、これらの命令は、データ依存性および適
当な機能装置の使用可能性に関して検査を受ける。
ストア装置32と2つの整数ALU装置34および36
は、1組の整数レジスタ48を共用する。浮動小数点レ
ジスタ50は、浮動小数点装置38、40、42とグラ
フィカル装置44および46によって共用される。整数
機能装置群および浮動小数点機能装置群はそれぞれ、対
応する完了装置52および54を有する。マイクロプロ
セッサは、オンチップ・データ・キャッシュ56とデー
タTLB58も含む。
ン中の各命令に関する情報を含む。この未処理命令FI
FO66は、命令FIFO制御論理機構71によって制
御される。
令のディスパッチの例を示す。命令バッファ26は、命
令6および11に2つの分岐命令を含む12個の命令と
共に示されている。ディスパッチ装置28は、複数の機
能装置に接続されたバス30にこれらの命令を与える。
図2の左側に、従来技術のシーケンス60においてディ
スパッチャ59によって5つのサイクルのそれぞれでデ
ィスパッチされる命令が示されている。図2の右側に
は、図のように、同じ命令を3つのサイクルでディスパ
ッチすることができる本発明によるシーケンス62のデ
ィスパッチャ28によるディスパッチが示されている。
のサイクルで命令1ないし4を与える。これを基本ブロ
ックと呼ぶ。第2のサイクルでは、命令6が分岐命令な
ので、サイクル2中には命令5および6しかディスパッ
チされず、したがって、短い基本ブロックが与えられ
る。命令7はサイクル3までディスパッチされない。サ
イクル3では、命令7ないし10がディスパッチされ
る。サイクル4では、命令11が分岐なので、命令11
しかディスパッチされない。ディスパッチは、サイクル
5で命令12から再開される。
で、分岐の後に続く命令がどこに現れるかを追跡するこ
とができる。たとえば、サイクル2に分岐があったこと
に着目することによって、その後に続くあらゆる段、こ
の例ではサイクル3ないし5は、命令6に対する予想さ
れる分岐に従った命令を有することが分かる。分岐予想
論理機構は、分岐方向(分岐が選択されるかどうか)を
予想し、それが選択されると予想された場合に分岐のタ
ーゲット・アドレスを求める。この分岐の方向またはタ
ーゲット・アドレスが誤って予想された場合、論理機構
は、サイクル3、4、5、すなわち命令自体が適当な時
間に存在する段中のすべての命令をフラッシュする必要
があることを知る。これはたとえば、未処理命令FIF
O中のこれらの命令に対応するすべての有効ビットを無
効状態にセットすることによって行うことができる。こ
の種のシステムの欠点は、分岐方向およびターゲット・
アドレスが正しく予想されたときにパイプライン中の各
サイクル中の可能な命令スロットが無駄になることであ
る。また、将来、プロセッサのスカラリティが増大する
(各サイクルごとにより多くの命令が発行される)につ
れて、この種のシステムの下で無駄になるスロットの数
も増加する。現在、使用できる分岐予想技法はますます
高度なものになっているので、分岐ターゲットが正しく
予想される確率が高い。
示したように、サイクル1で命令1ないし4を与え、サ
イクル2で命令5ないし8を与え、サイクル3で命令9
ないし12を与える。図の例では、12個の命令が3サ
イクルでディスパッチされ、これに対して、シーケンス
60の例では、同じ命令が5サイクルでディスパッチさ
れる。従来技術の5つの基本ブロックは3つのスーパー
ブロックとして組み合わされる。当然のことながら、い
くつかの分岐がある場合、これによってスループットが
著しく向上する。
段を詳しく示すものである。具体的には、1番下に浮動
小数点レジスタ50が示されており、5つの浮動小数点
機能装置およびグラフィカル機能装置が示されている。
パイプラインのそれぞれの異なる段は、図の中央部の行
64の文字で示されている。図3の1番上には、未処理
命令FIFO66が示されている。図のように、FIF
Oは、パイプラインの7つの段またはサイクルに対応す
る7つの行を有し、対応する命令は、図のように1から
28まで続く各行中の4つの位置に記憶される。したが
って、各行は命令群を記憶する。FIFO中の位置に対
応する命令は、パイプライン中の同じサイクルの機能装
置内にある。命令FIFO制御論理機構71は、未処理
命令FIFO66の動作を制御する。
明する。F/D段は、キャッシュから命令が取り出され
る段である。この段のD部分では、命令が復号され命令
バッファ26内に置かれる。段Gでは、データ依存性お
よび機能装置要件に応じて最大4つの命令がディスパッ
チされ、レジスタ・ファイルがアクセスされる。命令が
必要とするデータがまだ得られない場合、データ依存性
に応じて4つよりも少ない命令を送ることができること
に留意されたい。あるいは、複数の命令が同じ機能単位
を必要としている場合、等価機能装置が使用できない場
合には4つよりも少ない命令をディスパッチすることが
できる。
・アドレスが算出される。段Cでは、FPU計算が開始
され、オンチップ・データ・キャッシュおよびTLBが
検査される。段N1は、浮動小数点計算の第2段であ
り、段N2は、浮動小数点完了段である。段N3によっ
てトラップまたはエラーを処理することができ、段W
は、結果をレジスタ・ファイルに書き直すためのもので
ある。
査論理機構70および有効検査論理機構72が設けられ
る。有効検査論理機構70は、未処理命令FIFO66
では74として示されているパイプラインの第4段中の
命令が有効であるかどうかを判定する。この点で、命令
が無効である場合、オフチップ・メモリのアクセスおよ
びそれに関連する多数のサイクルの必要が回避される。
出力で、命令が有効であるかどうかを判定し、無効な結
果がレジスタ・ファイルに書き込まれるのを防止する。
有効検査論理機構70および72はすでに、他の目的に
使用されており、それを本発明で使用するに過ぎない。
本発明によれば、この点で妥当性検査を行うことによっ
て、ディスパッチ装置が、誤って予想された分岐をブロ
ックとして分割せず、予想が誤っていると判定されたと
きに未処理命令FIFO66中の適当なビットを無効化
するように修正された場合に、このような分岐を「フラ
ッシュする」ことができる。既存のディスパッチ装置を
このような機能を実行するように修正することは簡単で
ある。
処理論理機構によって判定され、分岐処理論理機構は一
般に、分岐装置で実施される。この論理機構は、実際の
入力信号を与えて未処理命令FIFO66中の有効ビッ
トを変更する。このタイプの論理機構は、従来、分岐を
有する命令群の後に続く命令群を無効にするために使用
されてきた。
よって実行されるステップを示すフローチャートであ
る。ステップAで、命令バッファ26の次の4つの命令
が調べられる。次いで、ストラクチュラル・ハザードに
関する検査が行われる(ステップB)。これには、正し
いタイプの機能装置およびメモリ・ポートまたは命令が
必要とする他の資源が使用できるかどうかなどが含まれ
る。ストラクチュラル・ハザードがある場合、命令は保
持される(ステップC)。データおよび制御の依存性が
検査され(ステップD)、処理されていない依存性があ
る場合、その命令は次のサイクルまで保持される(ステ
ップC)。あるオプションでは、命令が、4つの命令か
らなる同じブロック中の第2の分岐であるかどうかを調
べる検査が行われる(ステップE)。そうである場合、
その命令は次のサイクルまで保持される。これによっ
て、分岐判定論理機構を複製して同じサイクル(あるい
は、将来のより高速なサイクルのマシンでは同じ数サイ
クル)中の2つの別々の分岐を判定することが不要にな
る。重複論理機構が設けられている場合、ステップEは
なくなる。最後に、命令が機能装置にディスパッチされ
る(ステップF)。
は、発行される命令群当たりに1つの分岐命令しか許可
しないことである。発行される命令群中の分岐の数は、
命令スカラリティに応じて変更することができる。たと
えば、4スカラ・マシンが使用されており、サポートさ
れているアプリケーションでは、5命令おきよりも頻繁
に分岐を有することが統計上まれであると仮定する。こ
の場合、4命令当たりに2つの分岐があることはまれな
ので、各命令群を1つの分岐に制限した場合に多数の未
使用スロットが生じることはまれである。一方、将来の
マシンが10スカラであり、一度に10個の命令が発行
される場合、一般に、命令群当たりに2つの分岐があ
り、命令群当たりに1つの分岐しか許可しない場合には
多数の未使用スロットが生じる。したがって、そのよう
な例では、命令群当たりに2つ(しかし、おそらく3つ
ではない)の分岐を許可することが望ましい。
行されるステップのフローチャートである。分岐命令の
場合、正しい分岐方向が算出される(ステップG)。算
出された分岐方向は次いで、予想された分岐方向と比較
され、ターゲット・アドレスが求められる(ステップ
H)。分岐方向が一致した場合(ステップI)、分岐が
条件付きであるかどうかが判定される(ステップJ)。
分岐が条件付きである場合、その条件に関する試験が行
われる(ステップK)。条件が満たされた場合(ステッ
プL)、プロセスは完了する。分岐が正しく予想され
(方向とターゲット・アドレスの両方)、条件が満たさ
れている場合、ディスパッチされる命令を修正する必要
はない。分岐が誤って予想され、あるいは条件付き分岐
のいずれかの条件が満たされていない場合、分岐命令は
命令FIFO内に配置される(ステップM)。次いで、
分岐命令の後に続くすべての命令に関する有効ビットが
無効状態にセットされる(ステップN)。これは、図1
の分岐装置18が、分岐が誤って予想されたこととを示
し、かつ分岐命令を識別する制御信号を命令FIFO制
御論理機構71へ送ることによって行うことができる。
制御論理機構71は次いで、命令情報を未処理命令FI
FO66内に配置し、適当な有効ビットを無効状態にセ
ットする。
たは72は、適当な機能装置中の命令を未処理命令FI
FO66中の適当な命令データと突き合わせることがで
きる。未処理命令FIFO66は、図3中の番号で示し
たように、命令を常にプログラム順に並べる。しかし、
この順序は、命令のタイプに応じて異なるので機能装置
内では異なるものでよい。有効検査論理機構は、OPコ
ード(または符号化OPコード)を調べ、それがどの機
能装置に対応するかを知ることによって、未処理命令F
IFO66中のデータを機能装置に合致させることがで
きる。同じタイプのOPコードを実行できる複数の機能
装置が活動状態である場合、有効検査論理機構は、ディ
スパッチ装置と同じ優先順位割り当て論理を有する。た
とえば、第1の加算命令は常に、整数加算のために第1
の整数ALUへ送ることができる。代替実施形態では、
命令が発行されたときに命令FIFO内に機能装置ID
が置かれる。
サイクルごとに単一の分岐命令しか許可しない。したが
って、特定のサイクル中の命令2および3に分岐がある
場合、命令4は次のサイクルまで待機し、第1のサイク
ルでは3つの命令しか送られない。この制限を使用し
て、1組の処理ハードウェア論理機構しか使用せずに適
当な分岐命令を判定することができる。単一サイクル内
に複数の分岐がある可能性がある場合、単一サイクルま
たはその他の短い期間中に複数の分岐命令を正しく予想
できるように、この論理機構を複製する必要があり、し
たがってマイクロプロセッサ上のより多くの面積が必要
になる(非常に短いサイクルのマシンでは複数のサイク
ルが必要になる可能性がある)。
を複製してサイクル当たりに複数の分岐を許可し、それ
によって各サイクルごとに複数の分岐をディスパッチす
ることができる。他の実施形態は、様々な数の機能装置
を有することも、あるいは様々な数のパイプライン段を
有することも、あるいは様々なサイクル当たり許可分岐
数を有することもできる。
Oレジスタ66内で各段またはサイクルごとに単一の有
効ビットを使用することができる。誤って予想された分
岐ターゲットに関しては、その段またはサイクルに対応
する未処理命令FIFOのライン全体を無効化すること
ができる。次いで、ターゲット命令だけでなく、分岐命
令自体、およびその段またはサイクルに対応する同じラ
イン中の最初の命令もフラッシュすることができる。次
いで、分岐命令および同じライン中の最初の命令を再び
ディスパッチする必要がある。この場合も、ハードウェ
アおよび論理機構の複雑さとスループットが兼ね合わさ
れる。
必要なしにディスパッチ装置を簡略化することができ、
スループットを向上させることができることである。デ
ィスパッチ装置は、サイクル当たりに複数の分岐が許可
されている場合、分岐を機能装置にディスパッチする際
に分岐を探す必要も、あるいは識別する必要もない。単
一の分岐しか許可されていない場合、ディスパッチ装置
は、少なくとも第1の分岐に関する検査を行う必要があ
る。
その趣旨または基本的特性から逸脱せずに他の特定の態
様で具体化することができる。たとえば、機能装置命令
と未処理命令FIFO中の命令データとの間の合致を判
定する有効論理装置の代わりに、未処理命令FIFO中
の対応する特定の位置を識別するタグを機能装置命令に
与えることができる。別法として、FIFOではなく他
のデータ記憶構造を使用して命令妥当性データを記憶す
ることができる。パイプラインのそれぞれの異なる領域
に、妥当性ビットを検査する追加論理機構を追加するこ
とができる。たとえば、待ち時間の長い演算が開始され
る(すなわち、浮動小数点除算)ときに、妥当性ビット
を検査し、命令が無効である場合は演算を中止すること
ができる。したがって、前述の説明は好ましい実施形態
を例示するものであり、本発明の範囲について述べた添
付の特許請求の範囲を参照されたい。
施形態のブロック図である。
命令の割り当てを示す図である。
よび未処理命令FIFOの図である。
の動作のフローチャートである。
未処理命令FIFO制御論理機構の動作のフローチャー
トである。
Claims (21)
- 【請求項1】 パイプライン化された複数の機能装置
と、 分岐命令および予想ターゲット命令を含め、複数の命令
を与える少なくとも1つの命令バッファと、 前記命令バッファと前記パイプライン化された複数の機
能装置との間に結合され、分岐命令と予想ターゲット命
令の両方を単一のサイクル中に前記機構装置にディスパ
ッチするように構成された命令ディスパッチ装置とを備
えることを特徴とするマイクロプロセッサ。 - 【請求項2】 さらに、前記パイプライン化された複数
の機能装置中の各命令ごとの追跡データを格納する未処
理命令FIFOを備え、前記追跡データが、有効ビット
を含むことを特徴とする請求項1に記載のマイクロプロ
セッサ。 - 【請求項3】 さらに、予想された分岐方向と実際の分
岐方向を比較するように構成され、分岐方向が合致し、
前記分岐が選択されたときに、予想されたターゲット・
アドレスと実際のターゲット・アドレスを比較する分岐
予想論理機構と、 前記予想された分岐方向またはターゲット・アドレスが
誤って予想されたものである場合に、前記未処理命令F
IFO中の前記ターゲット命令およびその後に続く命令
に対応する前記追跡データに関する前記有効ビットを無
効状態にセットするように構成されたFIFO制御論理
機構とを備えることを特徴とする請求項2に記載のマイ
クロプロセッサ。 - 【請求項4】 さらに、前記パイプライン式機能装置の
終わりに各命令ごとに前記妥当性ビットを検査し、無効
と判定された命令に関する演算の結果を記憶するのを妨
げるように構成されたパイプラインの終わり有効論理機
構を備えることを特徴とする請求項3に記載のマイクロ
プロセッサ。 - 【請求項5】 さらに、前記機能装置によって待ち時間
の長い演算が行われる前に前記パイプライン式装置の中
間段で各命令ごとに前記妥当性ビットを検査し、無効と
判定された命令に関する待ち時間の長い演算を妨げるよ
うに構成された中間有効論理機構を備えることを特徴と
する請求項3に記載のマイクロプロセッサ。 - 【請求項6】 前記待ち時間の長い演算がオフチップ・
メモリ・アクセスであることを特徴とする請求項5に記
載のマイクロプロセッサ。 - 【請求項7】 前記命令ディスパッチ装置がさらに、所
与のサイクル中に前記機能装置に単一の分岐命令しかデ
ィスパッチできないように構成されることを特徴とする
請求項1に記載のマイクロプロセッサ。 - 【請求項8】 前記命令ディスパッチ装置がさらに、所
与のサイクル中に前記機能装置に所定数の分岐命令しか
ディスパッチできないように構成されることを特徴とす
る請求項1に記載のマイクロプロセッサ。 - 【請求項9】 パイプライン化された複数の機能装置
と、 分岐命令および予想ターゲット命令を含め、複数の命令
を与える少なくとも1つの命令バッファと、 前記命令バッファと前記パイプライン化された複数の機
能装置との間に結合され、分岐命令と予想ターゲット命
令の両方を単一のサイクル中に前記機構装置にディスパ
ッチするように構成された命令ディスパッチ装置と、 有効ビットを含み、前記パイプライン化された複数の機
能装置中の各命令ごとの追跡データを含む未処理命令F
IFOと、 前記予想された分岐方向が正しく予想されているかどう
かを判定するように構成された分岐予想論理機構と、 前記予想されたターゲット命令が誤って予想されたもの
である場合に、前記未処理命令FIFO中の前記ターゲ
ット命令およびその後に続く命令に対応する前記追跡デ
ータに関する前記有効ビットを無効状態にセットするよ
うに構成されたFIFO制御論理機構と、 前記パイプライン式機能装置の終わりに各命令ごとに前
記妥当性ビットを検査し、無効と判定された命令に関す
る演算の結果を記憶するのを妨げるように構成されたパ
イプラインの終わり有効論理機構とを備えることを特徴
とするマイクロプロセッサ。 - 【請求項10】 さらに、前記機能装置によって待ち時
間の長い演算が行われる前に前記パイプライン式装置の
中間段で各命令ごとに前記妥当性ビットを検査し、無効
と判定された命令に関する待ち時間の長い演算を妨げる
ように構成された中間有効論理機構を備えることを特徴
とする請求項9に記載のマイクロプロセッサ。 - 【請求項11】 前記待ち時間の長い演算がオフチップ
・メモリ・アクセスであることを特徴とする請求項10
に記載のマイクロプロセッサ。 - 【請求項12】 前記命令ディスパッチ装置がさらに、
所与のサイクル中に前記機能装置に所定数の分岐命令し
かディスパッチできないように構成されることを特徴と
する請求項10に記載のマイクロプロセッサ。 - 【請求項13】 前記所定の数が1であることを特徴と
する請求項12に記載のマイクロプロセッサ。 - 【請求項14】 パイプライン化された複数の機能装置
と、少なくとも1つの命令バッファと、命令ディスパッ
チ装置とを有するマイクロプロセッサを動作させる方法
であって、 分岐命令および予想ターゲット命令を含め、複数の命令
を前記命令バッファに与える要素を供給するステップ
と、 前記ディスパッチ装置を用いて分岐命令と予想ターゲッ
ト命令の両方を単一のサイクル中に前記機能装置にディ
スパッチする要素を供給するステップとを含むことを特
徴とする方法。 - 【請求項15】 未処理命令FIFO中の前記パイプラ
イン化された複数の機能装置中の各命令ごとの追跡デー
タを記憶する要素を供給し、前記追跡データが有効ビッ
トを含むステップを含むことを特徴とする請求項14に
記載の方法。 - 【請求項16】 前記予想された分岐方向が正しく予想
されているかどうかを判定する要素を供給するステップ
と、 前記予想されたターゲット命令が誤って予想されたもの
である場合に、前記未処理命令FIFO中の前記ターゲ
ット命令およびその後に続く命令に対応する前記追跡デ
ータに関する前記有効ビットを無効状態にセットする要
素を供給するステップとを含むことを特徴とする請求項
15に記載の方法。 - 【請求項17】 さらに、 パイプラインの終わり有効論理機構において、前記パイ
プライン式機能装置の終わりに各命令ごとに前記妥当性
ビットを検査する要素を提供するステップと、 無効と判定された命令に関する演算の結果を記憶するの
を妨げる要素を供給するステップとを含むことを特徴と
する請求項16に記載の方法。 - 【請求項18】 さらに、 中間有効論理機構において、前記機能装置によって待ち
時間の長い演算が行われる前に前記パイプライン式装置
の中間段で各命令ごとに前記妥当性ビットを検査する要
素を供給するステップと、 無効と判定された命令に関する待ち時間の長い演算を妨
げるステップとを含むことを特徴とする請求項16に記
載の方法。 - 【請求項19】 所与のサイクル中に前記命令ディスパ
ッチ装置が前記機能装置に所定数の分岐命令しかディス
パッチできないようにするステップを含むことを特徴と
する請求項14に記載の方法。 - 【請求項20】 前記所定の数が1であることを特徴と
する請求項19に記載の方法。 - 【請求項21】 メモリと、 前記メモリに結合されたマイクロプロセッサとを備え、
前記マイクロプロセッサが、 パイプライン化された複数の機能装置と、 分岐命令および予想ターゲット命令を含め、複数の命令
を与える少なくとも1つの命令バッファと、 前記命令バッファと前記パイプライン化された複数の機
能装置との間に結合され、分岐命令と予想ターゲット命
令の両方を単一のサイクル中に前記機構装置にディスパ
ッチするように構成された命令ディスパッチ装置とを含
むことを特徴とするコンピュータ・システム。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US08/569,725 US5809324A (en) | 1995-12-07 | 1995-12-07 | Multiple instruction dispatch system for pipelined microprocessor without branch breaks |
| US08/569,725 | 1995-12-07 |
Publications (3)
| Publication Number | Publication Date |
|---|---|
| JPH09274565A true JPH09274565A (ja) | 1997-10-21 |
| JPH09274565A5 JPH09274565A5 (ja) | 2004-10-21 |
| JP3779012B2 JP3779012B2 (ja) | 2006-05-24 |
Family
ID=24276603
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP33912596A Expired - Lifetime JP3779012B2 (ja) | 1995-12-07 | 1996-12-05 | 分岐による中断のないパイプライン化されたマイクロプロセッサ及びその動作方法 |
Country Status (5)
| Country | Link |
|---|---|
| US (1) | US5809324A (ja) |
| EP (1) | EP0778519B1 (ja) |
| JP (1) | JP3779012B2 (ja) |
| KR (1) | KR100431975B1 (ja) |
| DE (1) | DE69626263T2 (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7636837B2 (en) | 2003-05-28 | 2009-12-22 | Fujitsu Limited | Apparatus and method for controlling instructions at time of failure of branch prediction |
Families Citing this family (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6289437B1 (en) * | 1997-08-27 | 2001-09-11 | International Business Machines Corporation | Data processing system and method for implementing an efficient out-of-order issue mechanism |
| US6289442B1 (en) * | 1998-10-05 | 2001-09-11 | Advanced Micro Devices, Inc. | Circuit and method for tagging and invalidating speculatively executed instructions |
| US6910123B1 (en) * | 2000-01-13 | 2005-06-21 | Texas Instruments Incorporated | Processor with conditional instruction execution based upon state of corresponding annul bit of annul code |
| US6976150B1 (en) * | 2000-04-06 | 2005-12-13 | The Board Of Governors For Higher Education, State Of Rhode Island And Providence Plantations | Resource flow computing device |
| US7072998B2 (en) * | 2003-05-13 | 2006-07-04 | Via Technologies, Inc. | Method and system for optimized FIFO full conduction control |
| US7949861B2 (en) * | 2005-06-10 | 2011-05-24 | Qualcomm Incorporated | Method and apparatus for managing instruction flushing in a microprocessor's instruction pipeline |
| US8127115B2 (en) * | 2009-04-03 | 2012-02-28 | International Business Machines Corporation | Group formation with multiple taken branches per group |
| KR20130066402A (ko) * | 2011-12-12 | 2013-06-20 | 삼성전자주식회사 | 트레이스 데이터 저장 장치 및 방법 |
| US9122424B1 (en) * | 2013-07-18 | 2015-09-01 | Western Digital Technologies, Inc. | FIFO buffer clean-up |
Family Cites Families (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4833599A (en) * | 1987-04-20 | 1989-05-23 | Multiflow Computer, Inc. | Hierarchical priority branch handling for parallel execution in a parallel processor |
| JP2845646B2 (ja) * | 1990-09-05 | 1999-01-13 | 株式会社東芝 | 並列演算処理装置 |
| US5493669A (en) * | 1993-03-03 | 1996-02-20 | Motorola, Inc. | Data processor for simultaneously searching two fields of the rename buffer having first and second most recently allogated bits |
| US5644779A (en) * | 1994-04-15 | 1997-07-01 | International Business Machines Corporation | Processing system and method of operation for concurrent processing of branch instructions with cancelling of processing of a branch instruction |
| US5598546A (en) * | 1994-08-31 | 1997-01-28 | Exponential Technology, Inc. | Dual-architecture super-scalar pipeline |
| US5542109A (en) * | 1994-08-31 | 1996-07-30 | Exponential Technology, Inc. | Address tracking and branch resolution in a processor with multiple execution pipelines and instruction stream discontinuities |
-
1995
- 1995-12-07 US US08/569,725 patent/US5809324A/en not_active Expired - Lifetime
-
1996
- 1996-11-26 DE DE69626263T patent/DE69626263T2/de not_active Expired - Fee Related
- 1996-11-26 EP EP96308514A patent/EP0778519B1/en not_active Expired - Lifetime
- 1996-12-04 KR KR1019960061584A patent/KR100431975B1/ko not_active Expired - Lifetime
- 1996-12-05 JP JP33912596A patent/JP3779012B2/ja not_active Expired - Lifetime
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7636837B2 (en) | 2003-05-28 | 2009-12-22 | Fujitsu Limited | Apparatus and method for controlling instructions at time of failure of branch prediction |
Also Published As
| Publication number | Publication date |
|---|---|
| KR100431975B1 (ko) | 2004-10-28 |
| EP0778519A3 (en) | 1998-06-10 |
| JP3779012B2 (ja) | 2006-05-24 |
| EP0778519A2 (en) | 1997-06-11 |
| EP0778519B1 (en) | 2003-02-19 |
| DE69626263T2 (de) | 2004-02-05 |
| KR970049478A (ko) | 1997-07-29 |
| US5809324A (en) | 1998-09-15 |
| DE69626263D1 (de) | 2003-03-27 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| EP0399762B1 (en) | Multiple instruction issue computer architecture | |
| US6260138B1 (en) | Method and apparatus for branch instruction processing in a processor | |
| US5553256A (en) | Apparatus for pipeline streamlining where resources are immediate or certainly retired | |
| EP0399760B1 (en) | Paired instruction processor branch recovery mechanism | |
| US6279107B1 (en) | Branch selectors associated with byte ranges within an instruction cache for rapidly identifying branch predictions | |
| US5850543A (en) | Microprocessor with speculative instruction pipelining storing a speculative register value within branch target buffer for use in speculatively executing instructions after a return | |
| US6122656A (en) | Processor configured to map logical register numbers to physical register numbers using virtual register numbers | |
| US5421020A (en) | Counter register implementation for speculative execution of branch on count instructions | |
| US7711930B2 (en) | Apparatus and method for decreasing the latency between instruction cache and a pipeline processor | |
| US6119223A (en) | Map unit having rapid misprediction recovery | |
| JP3803723B2 (ja) | 分岐予測を選択する分岐セレクタを採用する分岐予測機構 | |
| KR100493126B1 (ko) | 데이터정밀도모드표시기를구비한다중파이프라인형마이크로프로세서 | |
| JPH03116236A (ja) | 例外処理方法及び例外処理装置 | |
| US6393550B1 (en) | Method and apparatus for pipeline streamlining where resources are immediate or certainly retired | |
| US5954816A (en) | Branch selector prediction | |
| US6108774A (en) | Branch prediction with added selector bits to increase branch prediction capacity and flexibility with minimal added bits | |
| JP3779012B2 (ja) | 分岐による中断のないパイプライン化されたマイクロプロセッサ及びその動作方法 | |
| US6101597A (en) | Method and apparatus for maximum throughput scheduling of dependent operations in a pipelined processor | |
| EP1099158B1 (en) | Processor configured to selectively free physical registers upon retirement of instructions | |
| US6754813B1 (en) | Apparatus and method of processing information for suppression of branch prediction | |
| US20100031011A1 (en) | Method and apparatus for optimized method of bht banking and multiple updates | |
| US6289428B1 (en) | Superscaler processor and method for efficiently recovering from misaligned data addresses | |
| KR100335747B1 (ko) | 무순서 인스트럭션 발행이 가능한 프로세서의 인스트럭션 버퍼에 인스트럭션을 로드하는 방법 및 장치 | |
| US5850542A (en) | Microprocessor instruction hedge-fetching in a multiprediction branch environment | |
| US5890006A (en) | Apparatus for extracting instruction specific bytes from an instruction |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20051227 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060110 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060117 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20060207 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060301 |
|
| R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100310 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110310 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110310 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120310 Year of fee payment: 6 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130310 Year of fee payment: 7 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130310 Year of fee payment: 7 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140310 Year of fee payment: 8 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| EXPY | Cancellation because of completion of term |