JP2002287957A - キャッシュのような構造を使用してcpu設計におけるオペランド・アクセス・ステージを高速化するための方法及び装置 - Google Patents
キャッシュのような構造を使用してcpu設計におけるオペランド・アクセス・ステージを高速化するための方法及び装置Info
- Publication number
- JP2002287957A JP2002287957A JP2002042171A JP2002042171A JP2002287957A JP 2002287957 A JP2002287957 A JP 2002287957A JP 2002042171 A JP2002042171 A JP 2002042171A JP 2002042171 A JP2002042171 A JP 2002042171A JP 2002287957 A JP2002287957 A JP 2002287957A
- Authority
- JP
- Japan
- Prior art keywords
- operand
- buffer
- instruction
- queue
- reading
- 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
- 238000000034 method Methods 0.000 title claims abstract description 32
- 239000000872 buffer Substances 0.000 claims abstract description 78
- 230000002123 temporal effect Effects 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 244000259191 Duranta erecta Species 0.000 description 1
- 102100031083 Uteroglobin Human genes 0.000 description 1
- 108090000203 Uteroglobin Proteins 0.000 description 1
- 238000005516 engineering process 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
- G06F9/3824—Operand accessing
- G06F9/383—Operand prefetching
-
- 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/3824—Operand accessing
- G06F9/3826—Bypassing or forwarding of data results, e.g. locally between pipeline stages or within a pipeline stage
-
- 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
-
- 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/3854—Instruction completion, e.g. retiring, committing or graduating
- G06F9/3858—Result writeback, i.e. updating the architectural state or memory
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)
- Executing Machine-Instructions (AREA)
Abstract
(57)【要約】
【課題】高周波数設計という時間的要求に適応すると共
に、単一のサイクルでオペランドをアクセスするための
方法及び装置を提供する。 【解決手段】複数のエントリを有し、各エントリが発生
待ち行列における命令に割り当てられるオペランド・バ
ッファが設けられる。オペランド・バッファは、発生待
ち行列と同じ数のエントリを有する。設計済みレジスタ
及び一時データのためのレジスタ・ファイルがインプリ
メントされる。オペランド・バッファにおけるデータ
は、エントリが割り当てられる時にレジスタ・ファイル
から書き込まれる。命令が実行される時、オペランド・
バッファにおける対応エントリは必要なく、そのエント
リは割り当て解除される。オペランド・バッファはレジ
スタ・ファイルよりも少ないエントリしか持たない。従
って、オペランド・アクセス・ステージは、レジスタ・
ファイルではなくオペランド・バッファの読み出しを必
要とし、オペランド・バッファは1サイクルで読み出さ
れ得る。
に、単一のサイクルでオペランドをアクセスするための
方法及び装置を提供する。 【解決手段】複数のエントリを有し、各エントリが発生
待ち行列における命令に割り当てられるオペランド・バ
ッファが設けられる。オペランド・バッファは、発生待
ち行列と同じ数のエントリを有する。設計済みレジスタ
及び一時データのためのレジスタ・ファイルがインプリ
メントされる。オペランド・バッファにおけるデータ
は、エントリが割り当てられる時にレジスタ・ファイル
から書き込まれる。命令が実行される時、オペランド・
バッファにおける対応エントリは必要なく、そのエント
リは割り当て解除される。オペランド・バッファはレジ
スタ・ファイルよりも少ないエントリしか持たない。従
って、オペランド・アクセス・ステージは、レジスタ・
ファイルではなくオペランド・バッファの読み出しを必
要とし、オペランド・バッファは1サイクルで読み出さ
れ得る。
Description
【0001】
【発明の属する技術分野】本発明は、データ処理に関
し、特に、マイクロプロセッサ設計におけるオペランド
・アクセスに関するものである。更に詳しくいえば、本
発明は、キャッシュのような構造を使用してマイクロプ
ロセッサ設計におけるオペランド・アクセス・ステージ
を高速化するための方法及び装置を提供する。
し、特に、マイクロプロセッサ設計におけるオペランド
・アクセスに関するものである。更に詳しくいえば、本
発明は、キャッシュのような構造を使用してマイクロプ
ロセッサ設計におけるオペランド・アクセス・ステージ
を高速化するための方法及び装置を提供する。
【0002】
【従来技術】マイクロプロセッサにおいて命令がディス
パッチされる時、それらの命令に対するオペランドがレ
ジスタ・ファイルから読み出される。図1は、従来技術
のマイクロプロセッサ設計のブロック図である。命令が
ディスパッチ101から受け取られる時、マッパ102
はその命令を発生待ち行列(ISQ)104に送る。命
令はその発生待ち行列から実行ユニット110、112
に発生される。実行ユニット110は固定小数点実行ユ
ニットであり、実行ユニット112はロード/ストア実
行ユニットである。命令が命令ユニットに発生される
時、レジスタ・ファイル106からオペランドが読み出
される。一般に、オペランドは1サイクルで読み出さ
れ、命令が実行される。しかる後、次のサイクルでその
結果がレジスタ・ファイル106に書き戻される。
パッチされる時、それらの命令に対するオペランドがレ
ジスタ・ファイルから読み出される。図1は、従来技術
のマイクロプロセッサ設計のブロック図である。命令が
ディスパッチ101から受け取られる時、マッパ102
はその命令を発生待ち行列(ISQ)104に送る。命
令はその発生待ち行列から実行ユニット110、112
に発生される。実行ユニット110は固定小数点実行ユ
ニットであり、実行ユニット112はロード/ストア実
行ユニットである。命令が命令ユニットに発生される
時、レジスタ・ファイル106からオペランドが読み出
される。一般に、オペランドは1サイクルで読み出さ
れ、命令が実行される。しかる後、次のサイクルでその
結果がレジスタ・ファイル106に書き戻される。
【0003】しかし、高周波数設計のマイクロプロセッ
サは多くのパイプライン・ステージを必要とする。パイ
プライン・ステージの数が増加するに従って、より大き
いレジスタ・ファイルに対する要求が増加する。同時マ
ルチスレッド化のような新しい技術は更に大きいレジス
タ・ファイルを必要とする。結局、周波数要件に適応す
るため、より大きいレジスタ・ファイルは、レジスタ・
ファイル・アクセス・ステージを複数サイクルで遂行さ
せることになろう。多サイクルのオペランド・アクセス
・ステージはプロセッサのパフォーマンスを低下させる
であろう。
サは多くのパイプライン・ステージを必要とする。パイ
プライン・ステージの数が増加するに従って、より大き
いレジスタ・ファイルに対する要求が増加する。同時マ
ルチスレッド化のような新しい技術は更に大きいレジス
タ・ファイルを必要とする。結局、周波数要件に適応す
るため、より大きいレジスタ・ファイルは、レジスタ・
ファイル・アクセス・ステージを複数サイクルで遂行さ
せることになろう。多サイクルのオペランド・アクセス
・ステージはプロセッサのパフォーマンスを低下させる
であろう。
【0004】
【発明が解決しようとする課題】従って、本発明の目的
は、高周波数設計という時間的要求に適応すると共に、
単一のサイクルでオペランドをアクセスするための方法
及び装置を提供すことにある。
は、高周波数設計という時間的要求に適応すると共に、
単一のサイクルでオペランドをアクセスするための方法
及び装置を提供すことにある。
【0005】
【課題を解決するための手段】本発明は、複数のエント
リを有し、各エントリが発生待ち行列における命令に割
り当てられるオペランド・バッファを提供する。オペラ
ンド・バッファは、発生待ち行列と同じ数のエントリを
有する。設計済みレジスタ及び一時データのためのレジ
スタ・ファイルがインプリメントされる。オペランド・
バッファにおけるデータは、エントリが割り当てられる
時にレジスタ・ファイルから書き込まれる。命令が実行
される時、オペランド・バッファにおける対応エントリ
は必要なく、そのエントリは割り当て解除される。オペ
ランド・バッファはレジスタ・ファイルよりも少ないエ
ントリしか持たない。従って、オペランド・アクセス・
ステージは、レジスタ・ファイルではなくオペランド・
バッファの読み出しを必要とし、オペランド・バッファ
は1サイクルで読み出され得る。
リを有し、各エントリが発生待ち行列における命令に割
り当てられるオペランド・バッファを提供する。オペラ
ンド・バッファは、発生待ち行列と同じ数のエントリを
有する。設計済みレジスタ及び一時データのためのレジ
スタ・ファイルがインプリメントされる。オペランド・
バッファにおけるデータは、エントリが割り当てられる
時にレジスタ・ファイルから書き込まれる。命令が実行
される時、オペランド・バッファにおける対応エントリ
は必要なく、そのエントリは割り当て解除される。オペ
ランド・バッファはレジスタ・ファイルよりも少ないエ
ントリしか持たない。従って、オペランド・アクセス・
ステージは、レジスタ・ファイルではなくオペランド・
バッファの読み出しを必要とし、オペランド・バッファ
は1サイクルで読み出され得る。
【0006】
【発明の実施の形態】次に、図面、特に、図2、図3、
及び図4を参照すると、本発明をインプリメントし得る
マイクロプロセッサ設計の概略的な表示が本発明の望ま
しい実施例に従って示される。特に、図2を参照する
と、命令がディスパッチ201から受け取られ、マッパ
202が命令を発生待ち行列(ISQ)204に送る。
ISQ204に送られた各命令に対して、マッパ202
は、オペランドをオペランド・バッファ208へ読み込
むようにレジスタ・ファイル206に命令する。オペラ
ンド・バッファ208は、ISQ204における各エン
トリに対して1つのエントリを有する。しかし、オペラ
ンド・バッファ208は、レジスタ・ファイル206よ
りも少ないエントリを有する。従って、オペランド・バ
ッファのエントリが割り当てられる時にオペランドがレ
ジスタ・ファイルから読み出される。この読み出しは1
サイクルよりも多いサイクルを取ることがある。
及び図4を参照すると、本発明をインプリメントし得る
マイクロプロセッサ設計の概略的な表示が本発明の望ま
しい実施例に従って示される。特に、図2を参照する
と、命令がディスパッチ201から受け取られ、マッパ
202が命令を発生待ち行列(ISQ)204に送る。
ISQ204に送られた各命令に対して、マッパ202
は、オペランドをオペランド・バッファ208へ読み込
むようにレジスタ・ファイル206に命令する。オペラ
ンド・バッファ208は、ISQ204における各エン
トリに対して1つのエントリを有する。しかし、オペラ
ンド・バッファ208は、レジスタ・ファイル206よ
りも少ないエントリを有する。従って、オペランド・バ
ッファのエントリが割り当てられる時にオペランドがレ
ジスタ・ファイルから読み出される。この読み出しは1
サイクルよりも多いサイクルを取ることがある。
【0007】プロセッサは、使用可能なオペランドを有
するISQ204において最も古い命令を選択し、実行
ユニット当たり1つの命令を送る。命令が実行ユニット
210、212に発生される時、ISQ選択ポインタを
使用して、対応するオペランドがオペランド・バッファ
208から読み出される。オペランド・バッファからの
この読み出しは1サイクルしか取らない。簡単にするた
めに、2つの実行ユニットが示される。しかし、この分
野では知られているように、スーパースカラ・プロセッ
サ設計は多くのそのような実行ユニットを含み得る。
するISQ204において最も古い命令を選択し、実行
ユニット当たり1つの命令を送る。命令が実行ユニット
210、212に発生される時、ISQ選択ポインタを
使用して、対応するオペランドがオペランド・バッファ
208から読み出される。オペランド・バッファからの
この読み出しは1サイクルしか取らない。簡単にするた
めに、2つの実行ユニットが示される。しかし、この分
野では知られているように、スーパースカラ・プロセッ
サ設計は多くのそのような実行ユニットを含み得る。
【0008】実行ユニット210、212による実行の
後、宛先アドレス・タグを使用してレジスタ・ファイル
に、そしてISQによって与えられたスヌープ・コント
ロールを使用してオペランド・バッファにデータが書き
戻される。ISQは、それが或るロケーションから命令
を選択する時、適正なオペランドを選択するために、対
応するロケーション・ポインタをオペランド・バッファ
に送るであろう。このロケーション・ポインタはISQ
選択ポインタと呼ばれる。ISQは、実行ユニットから
の戻った宛先アドレス・タグをそれのソース・オペラン
ド・アドレス・タグと比較する。それらが一致する場
合、データがデータ・オペランド・バッファにおける適
正なロケーションに記憶される。これはスヌープ・コン
トロールと呼ばれる。
後、宛先アドレス・タグを使用してレジスタ・ファイル
に、そしてISQによって与えられたスヌープ・コント
ロールを使用してオペランド・バッファにデータが書き
戻される。ISQは、それが或るロケーションから命令
を選択する時、適正なオペランドを選択するために、対
応するロケーション・ポインタをオペランド・バッファ
に送るであろう。このロケーション・ポインタはISQ
選択ポインタと呼ばれる。ISQは、実行ユニットから
の戻った宛先アドレス・タグをそれのソース・オペラン
ド・アドレス・タグと比較する。それらが一致する場
合、データがデータ・オペランド・バッファにおける適
正なロケーションに記憶される。これはスヌープ・コン
トロールと呼ばれる。
【009】図3を参照すると、実行ユニットに対して発
生されるべき命令をISQ発生ロジック250が選択す
る。ISQ発生ロジック250はISQ254から命令
を選択するための制御信号を生成する。オペランド・バ
ッファ258からオペランド(S0、S1)を選択する
ために同じ制御が使用される。この制御信号はISQ選
択ポインタと呼ばれる。
生されるべき命令をISQ発生ロジック250が選択す
る。ISQ発生ロジック250はISQ254から命令
を選択するための制御信号を生成する。オペランド・バ
ッファ258からオペランド(S0、S1)を選択する
ために同じ制御が使用される。この制御信号はISQ選
択ポインタと呼ばれる。
【0010】図4を参照すると、スヌープ比較器270
が宛先アドレス・タグとISQ264におけるすべての
ソース・オペランドとを比較する。実行ユニット(FX
0、LS0)が宛先アドレス・タグ276、278を返
送する時、スヌープ比較器270は到来する宛先アドレ
ス・タグとISQにおけるすべてのソース・オペランド
(S0、S1)とを比較する。比較結果は、結果データ
をオペランド・バッファ268に書き込むためのバッフ
ァ書き戻しイネーブル信号として使用される。例えば、
結果データがISQにおけるロケーションNのS0に対
応することをスヌープ比較器270が表す場合、オペラ
ンド・バッファにおけるロケーションNのS0に対する
バッファ書き戻しイネーブル信号はアクティブであり、
その結果データがオペランド・バッファに書き込まれ
る。
が宛先アドレス・タグとISQ264におけるすべての
ソース・オペランドとを比較する。実行ユニット(FX
0、LS0)が宛先アドレス・タグ276、278を返
送する時、スヌープ比較器270は到来する宛先アドレ
ス・タグとISQにおけるすべてのソース・オペランド
(S0、S1)とを比較する。比較結果は、結果データ
をオペランド・バッファ268に書き込むためのバッフ
ァ書き戻しイネーブル信号として使用される。例えば、
結果データがISQにおけるロケーションNのS0に対
応することをスヌープ比較器270が表す場合、オペラ
ンド・バッファにおけるロケーションNのS0に対する
バッファ書き戻しイネーブル信号はアクティブであり、
その結果データがオペランド・バッファに書き込まれ
る。
【0011】図5を参照すると、本発明の望ましい実施
例に従って、オペランド・バッファの動作のフローチャ
ートが示される。プロセスが開始し、ディスパッチにお
いて論理的ポインタをマップする(ステップ302)。
次に、プロセスは物理的ソース・ポインタ及び宛先アド
レス・タグを実行ユニットに送り(ステップ304)、
オペランドをオペランド・バッファに入れる(ステップ
306)。しかる後、実行ユニットが結果データ及び宛
先アドレス・タグを返送する(ステップ308)。次
に、プロセスは、ISQによって与えられるスヌープ・
コントロールを使用してデータをレジスタ・ファイル及
びオペランド・バッファに書き戻し(ステップ30
8)、終了する。
例に従って、オペランド・バッファの動作のフローチャ
ートが示される。プロセスが開始し、ディスパッチにお
いて論理的ポインタをマップする(ステップ302)。
次に、プロセスは物理的ソース・ポインタ及び宛先アド
レス・タグを実行ユニットに送り(ステップ304)、
オペランドをオペランド・バッファに入れる(ステップ
306)。しかる後、実行ユニットが結果データ及び宛
先アドレス・タグを返送する(ステップ308)。次
に、プロセスは、ISQによって与えられるスヌープ・
コントロールを使用してデータをレジスタ・ファイル及
びオペランド・バッファに書き戻し(ステップ30
8)、終了する。
【0012】従って、本発明は、オペランド・バッファ
を設けることによって従来技術の欠点を解決する。オペ
ランド・バッファは発生待ち行列と同じ数のエントリを
有する。オペランドは、エントリが発生待ち行列におけ
る命令に割り当てられる時、レジスタ・ファイルからオ
ペランド・バッファにロードされる。従って、レジスタ
・ファイルが前もって読み出されるので、その読み出し
は複数サイクルを取ることができる。プロセッサにおけ
る実行ユニットに対して命令が発生される時、オペラン
ドがオペランド・バッファから読み出される。オペラン
ド・バッファの読み出しは1サイクルを取る。
を設けることによって従来技術の欠点を解決する。オペ
ランド・バッファは発生待ち行列と同じ数のエントリを
有する。オペランドは、エントリが発生待ち行列におけ
る命令に割り当てられる時、レジスタ・ファイルからオ
ペランド・バッファにロードされる。従って、レジスタ
・ファイルが前もって読み出されるので、その読み出し
は複数サイクルを取ることができる。プロセッサにおけ
る実行ユニットに対して命令が発生される時、オペラン
ドがオペランド・バッファから読み出される。オペラン
ド・バッファの読み出しは1サイクルを取る。
【0013】本発明の記述は図解及び説明を目的として
行われたが、網羅的であること及び開示された形式にお
ける発明に限定されることを意図するものではない。当
業者には多くの修正及び変更が明らかであろう。実施例
は、本発明の原理及び実用的な応用に関して最善の説明
を行うために、及び意図された特定の用途に適した種々
の修正を伴う種々の実施例に関しても当業者が本発明を
理解することを可能にするために、選択及び記述され
た。
行われたが、網羅的であること及び開示された形式にお
ける発明に限定されることを意図するものではない。当
業者には多くの修正及び変更が明らかであろう。実施例
は、本発明の原理及び実用的な応用に関して最善の説明
を行うために、及び意図された特定の用途に適した種々
の修正を伴う種々の実施例に関しても当業者が本発明を
理解することを可能にするために、選択及び記述され
た。
【0014】まとめとして、本発明の構成に関して以下
の事項を開示する。
の事項を開示する。
【0015】(1)プロセッサにおいてオペランドをア
クセスするための方法にして、命令を発生待ち行列に割
り当てるステップと、前記命令に対するオペランドをレ
ジスタ・ファイルから読み出すステップと、前記発生待
ち行列における命令とオペランド・バッファにおけるオ
ペランドとの間の適合を実質的に維持するために前記オ
ペランドを前記オペランド・バッファにロードするステ
ップと、を含む方法。 (2)前記オペランドをロードするステップは、前記オ
ペランド・バッファにおけるエントリを前記発生待ち行
列における命令に割り当てるステップと、前記オペラン
ドを前記エントリにロードするステップと、を含む、上
記(1)に記載の方法。 (3)前記オペランドをレジスタ・ファイルから読み出
すステップは1サイクルよりも多いサイクルを取る、上
記(1)に記載の方法。 (4)前記発生待ち行列から命令を選択して発生するス
テップと、発生された命令を実行ユニットに送るステッ
プと、を更に含む、上記(1)に記載の方法。 (5)前記発生された命令に対応するオペランドを前記
オペランド・バッファから読み出すステップと、前記発
生された命令に対応するオペランドを前記実行ユニット
に供給するステップと、を更に含む、上記(4)に記載
の方法。 (6)前記発生された命令に対応するオペランドを前記
オペランド・バッファから読み出すステップは1サイク
ルを取る、上記(5)に記載の方法。 (7)前記発生された命令に対応するオペランドを前記
オペランド・バッファから読み出すステップは発生待ち
行列選択ポインタを使用するステップを含む、上記
(5)に記載の方法。 (8)前記実行ユニットからの結果を前記レジスタ・フ
ァイルに書き込むステップを更に含む、上記(4)に記
載の方法。 (9)前記実行ユニットからの結果を前記オペランド・
バッファに書き込むステップを更に含む、上記(4)に
記載の方法。 (10)前記実行ユニットからの結果を前記オペランド
・バッファに書き込むステップは、前記発生待ち行列に
よって与えられたスヌープ・コントロールを使用するス
テップを含む、上記(9)に記載の方法。 (11)プロセッサにおいてオペランドをアクセスする
ための装置にして、発生待ち行列と、命令を前記発生待
ち行列に割り当てるマッパと、オペランドを記憶するレ
ジスタ・ファイルと、前記発生待ち行列における命令に
対するオペランドを記憶するオペランド・バッファと、
を含み、前記オペランド・バッファにおけるオペランド
は前記発生待ち行列における命令に実質的に適合する、
装置。 (12)前記オペランド・バッファにおける各エントリ
は前記発生待ち行列における命令に対応する、上記(1
1)に記載の装置。 (13)前記オペランドを前記レジスタ・ファイルから
読み出すためのアクセス・ステージは1サイクルよりも
多いサイクルを取る、上記(11)に記載の装置。 (14)前記オペランドを前記オペランド・バッファか
ら読み出すためのアクセス・ステージは1サイクルを取
る、上記(11)に記載の装置。 (15)前記発生待ち行列及び前記オペランド・バッフ
ァは同じ数のエントリを有する、上記(11)に記載の
装置。 (16)プロセッサにおいてオペランドをアクセスする
ための装置にして、命令を発生待ち行列に割り当てるた
めの割り当て手段と、前記命令に対するオペランドをレ
ジスタ・ファイルから読み出すための読み出し手段と、
前記オペランドをオペランド・バッファにロードするた
めのバッファ手段と、を含む装置。 (17)前記バッファ手段は、前記オペランド・バッフ
ァにおけるエントリを前記発生待ち行列における命令に
割り当てるための割り当て手段と、前記オペランドを前
記エントリにロードするためのロード手段と、を含む、
上記(16)に記載の装置。 (18)前記発生待ち行列から命令を選択して発生する
ための選択手段と、発生された命令を実行ユニットに送
るための搬送手段と、を更に含む、上記(16)に記載
の装置。 (19)前記発生された命令に対応するオペランドを前
記オペランド・バッファから読み出すための手段と、前
記発生された命令に対応するオペランドを前記実行ユニ
ットに供給するための手段と、を更に含む、上記(1
8)に記載の装置。 (20)前記発生された命令に対応するオペランドを前
記オペランド・バッファから読み出すための手段は発生
待ち行列選択ポインタを含む、上記(19)に記載の装
置。 (21)前記実行ユニットからの結果を前記レジスタ・
ファイルに書き込むための手段を更に含む、上記(1
9)に記載の装置。 (22)前記実行ユニットからの結果を前記オペランド
・バッファに書き込むための手段を更に含む、上記(1
9)に記載の装置。 (23)前記書き込むための手段は前記発生待ち行列に
よって与えられたスヌープ・コントロールを含む、上記
(22)に記載の装置。
クセスするための方法にして、命令を発生待ち行列に割
り当てるステップと、前記命令に対するオペランドをレ
ジスタ・ファイルから読み出すステップと、前記発生待
ち行列における命令とオペランド・バッファにおけるオ
ペランドとの間の適合を実質的に維持するために前記オ
ペランドを前記オペランド・バッファにロードするステ
ップと、を含む方法。 (2)前記オペランドをロードするステップは、前記オ
ペランド・バッファにおけるエントリを前記発生待ち行
列における命令に割り当てるステップと、前記オペラン
ドを前記エントリにロードするステップと、を含む、上
記(1)に記載の方法。 (3)前記オペランドをレジスタ・ファイルから読み出
すステップは1サイクルよりも多いサイクルを取る、上
記(1)に記載の方法。 (4)前記発生待ち行列から命令を選択して発生するス
テップと、発生された命令を実行ユニットに送るステッ
プと、を更に含む、上記(1)に記載の方法。 (5)前記発生された命令に対応するオペランドを前記
オペランド・バッファから読み出すステップと、前記発
生された命令に対応するオペランドを前記実行ユニット
に供給するステップと、を更に含む、上記(4)に記載
の方法。 (6)前記発生された命令に対応するオペランドを前記
オペランド・バッファから読み出すステップは1サイク
ルを取る、上記(5)に記載の方法。 (7)前記発生された命令に対応するオペランドを前記
オペランド・バッファから読み出すステップは発生待ち
行列選択ポインタを使用するステップを含む、上記
(5)に記載の方法。 (8)前記実行ユニットからの結果を前記レジスタ・フ
ァイルに書き込むステップを更に含む、上記(4)に記
載の方法。 (9)前記実行ユニットからの結果を前記オペランド・
バッファに書き込むステップを更に含む、上記(4)に
記載の方法。 (10)前記実行ユニットからの結果を前記オペランド
・バッファに書き込むステップは、前記発生待ち行列に
よって与えられたスヌープ・コントロールを使用するス
テップを含む、上記(9)に記載の方法。 (11)プロセッサにおいてオペランドをアクセスする
ための装置にして、発生待ち行列と、命令を前記発生待
ち行列に割り当てるマッパと、オペランドを記憶するレ
ジスタ・ファイルと、前記発生待ち行列における命令に
対するオペランドを記憶するオペランド・バッファと、
を含み、前記オペランド・バッファにおけるオペランド
は前記発生待ち行列における命令に実質的に適合する、
装置。 (12)前記オペランド・バッファにおける各エントリ
は前記発生待ち行列における命令に対応する、上記(1
1)に記載の装置。 (13)前記オペランドを前記レジスタ・ファイルから
読み出すためのアクセス・ステージは1サイクルよりも
多いサイクルを取る、上記(11)に記載の装置。 (14)前記オペランドを前記オペランド・バッファか
ら読み出すためのアクセス・ステージは1サイクルを取
る、上記(11)に記載の装置。 (15)前記発生待ち行列及び前記オペランド・バッフ
ァは同じ数のエントリを有する、上記(11)に記載の
装置。 (16)プロセッサにおいてオペランドをアクセスする
ための装置にして、命令を発生待ち行列に割り当てるた
めの割り当て手段と、前記命令に対するオペランドをレ
ジスタ・ファイルから読み出すための読み出し手段と、
前記オペランドをオペランド・バッファにロードするた
めのバッファ手段と、を含む装置。 (17)前記バッファ手段は、前記オペランド・バッフ
ァにおけるエントリを前記発生待ち行列における命令に
割り当てるための割り当て手段と、前記オペランドを前
記エントリにロードするためのロード手段と、を含む、
上記(16)に記載の装置。 (18)前記発生待ち行列から命令を選択して発生する
ための選択手段と、発生された命令を実行ユニットに送
るための搬送手段と、を更に含む、上記(16)に記載
の装置。 (19)前記発生された命令に対応するオペランドを前
記オペランド・バッファから読み出すための手段と、前
記発生された命令に対応するオペランドを前記実行ユニ
ットに供給するための手段と、を更に含む、上記(1
8)に記載の装置。 (20)前記発生された命令に対応するオペランドを前
記オペランド・バッファから読み出すための手段は発生
待ち行列選択ポインタを含む、上記(19)に記載の装
置。 (21)前記実行ユニットからの結果を前記レジスタ・
ファイルに書き込むための手段を更に含む、上記(1
9)に記載の装置。 (22)前記実行ユニットからの結果を前記オペランド
・バッファに書き込むための手段を更に含む、上記(1
9)に記載の装置。 (23)前記書き込むための手段は前記発生待ち行列に
よって与えられたスヌープ・コントロールを含む、上記
(22)に記載の装置。
【図1】従来技術のマイクロプロセッサ設計のブロック
図である。
図である。
【図2】本発明の望ましい実施例に従ってインプリメン
トされ得るマイクロプロセッサ設計の概略表示である。
トされ得るマイクロプロセッサ設計の概略表示である。
【図3】本発明の別の望ましい実施例に従ってインプリ
メントされ得るマイクロプロセッサ設計の概略表示であ
る。
メントされ得るマイクロプロセッサ設計の概略表示であ
る。
【図4】本発明の更に別の望ましい実施例に従ってイン
プリメントされ得るマイクロプロセッサ設計の概略表示
である。
プリメントされ得るマイクロプロセッサ設計の概略表示
である。
【図5】本発明の望ましい実施例によるオペランド・バ
ッファの動作のフローチャートである。
ッファの動作のフローチャートである。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ハング・クイール アメリカ合衆国78717、テキサス州、オー スチン、ドーマン・ドライブ 16310 (72)発明者 ダンク・クォーク・ニュエン アメリカ合衆国78759、テキサス州、オー スチン、スカイフラワー・ドライブ 10200 Fターム(参考) 5B013 AA02 CC10 5B033 AA01 BF00 DD01 DD04 DD06 DD09
Claims (23)
- 【請求項1】プロセッサにおいてオペランドをアクセス
するための方法にして、 命令を発生待ち行列に割り当てるステップと、 前記命令に対するオペランドをレジスタ・ファイルから
読み出すステップと、 前記発生待ち行列における命令とオペランド・バッファ
におけるオペランドとの間の適合を実質的に維持するた
めに前記オペランドを前記オペランド・バッファにロー
ドするステップと、 を含む方法。 - 【請求項2】前記オペランドをロードするステップは、 前記オペランド・バッファにおけるエントリを前記発生
待ち行列における命令に割り当てるステップと、 前記オペランドを前記エントリにロードするステップ
と、 を含む、請求項1に記載の方法。 - 【請求項3】前記オペランドをレジスタ・ファイルから
読み出すステップは1サイクルよりも多いサイクルを取
る、請求項1に記載の方法。 - 【請求項4】前記発生待ち行列から命令を選択して発生
するステップと、 発生された命令を実行ユニットに送るステップと、 を更に含む、請求項1に記載の方法。 - 【請求項5】前記発生された命令に対応するオペランド
を前記オペランド・バッファから読み出すステップと、 前記発生された命令に対応するオペランドを前記実行ユ
ニットに供給するステップと、 を更に含む、請求項4に記載の方法。 - 【請求項6】前記発生された命令に対応するオペランド
を前記オペランド・バッファから読み出すステップは1
サイクルを取る、請求項5に記載の方法。 - 【請求項7】前記発生された命令に対応するオペランド
を前記オペランド・バッファから読み出すステップは発
生待ち行列選択ポインタを使用するステップを含む、請
求項5に記載の方法。 - 【請求項8】前記実行ユニットからの結果を前記レジス
タ・ファイルに書き込むステップを更に含む、請求項4
に記載の方法。 - 【請求項9】前記実行ユニットからの結果を前記オペラ
ンド・バッファに書き込むステップを更に含む、請求項
4に記載の方法。 - 【請求項10】前記実行ユニットからの結果を前記オペ
ランド・バッファに書き込むステップは、前記発生待ち
行列によって与えられたスヌープ・コントロールを使用
するステップを含む、請求項9に記載の方法。 - 【請求項11】プロセッサにおいてオペランドをアクセ
スするための装置にして、 発生待ち行列と、 命令を前記発生待ち行列に割り当てるマッパと、 オペランドを記憶するレジスタ・ファイルと、 前記発生待ち行列における命令に対するオペランドを記
憶するオペランド・バッファと、 を含み、前記オペランド・バッファにおけるオペランド
は前記発生待ち行列における命令に実質的に適合する、
装置。 - 【請求項12】前記オペランド・バッファにおける各エ
ントリは前記発生待ち行列における命令に対応する、請
求項11に記載の装置。 - 【請求項13】前記オペランドを前記レジスタ・ファイ
ルから読み出すためのアクセス・ステージは1サイクル
よりも多いサイクルを取る、請求項11に記載の装置。 - 【請求項14】前記オペランドを前記オペランド・バッ
ファから読み出すためのアクセス・ステージは1サイク
ルを取る、請求項11に記載の装置。 - 【請求項15】前記発生待ち行列及び前記オペランド・
バッファは同じ数のエントリを有する、請求項11に記
載の装置。 - 【請求項16】プロセッサにおいてオペランドをアクセ
スするための装置にして、 命令を発生待ち行列に割り当てるための割り当て手段
と、 前記命令に対するオペランドをレジスタ・ファイルから
読み出すための読み出し手段と、 前記オペランドをオペランド・バッファにロードするた
めのバッファ手段と、 を含む装置。 - 【請求項17】前記バッファ手段は、 前記オペランド・バッファにおけるエントリを前記発生
待ち行列における命令に割り当てるための割り当て手段
と、 前記オペランドを前記エントリにロードするためのロー
ド手段と、 を含む、請求項16に記載の装置。 - 【請求項18】前記発生待ち行列から命令を選択して発
生するための選択手段と、 発生された命令を実行ユニットに送るための搬送手段
と、 を更に含む、請求項16に記載の装置。 - 【請求項19】前記発生された命令に対応するオペラン
ドを前記オペランド・バッファから読み出すための手段
と、 前記発生された命令に対応するオペランドを前記実行ユ
ニットに供給するための手段と、 を更に含む、請求項18に記載の装置。 - 【請求項20】前記発生された命令に対応するオペラン
ドを前記オペランド・バッファから読み出すための手段
は発生待ち行列選択ポインタを含む、請求項19に記載
の装置。 - 【請求項21】前記実行ユニットからの結果を前記レジ
スタ・ファイルに書き込むための手段を更に含む、請求
項19に記載の装置。 - 【請求項22】前記実行ユニットからの結果を前記オペ
ランド・バッファに書き込むための手段を更に含む、請
求項19に記載の装置。 - 【請求項23】前記書き込むための手段は前記発生待ち
行列によって与えられたスヌープ・コントロールを含
む、請求項22に記載の装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/798,293 US20020124157A1 (en) | 2001-03-01 | 2001-03-01 | Method and apparatus for fast operand access stage in a CPU design using a cache-like structure |
US09/798293 | 2001-03-01 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2002287957A true JP2002287957A (ja) | 2002-10-04 |
Family
ID=25173027
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002042171A Pending JP2002287957A (ja) | 2001-03-01 | 2002-02-19 | キャッシュのような構造を使用してcpu設計におけるオペランド・アクセス・ステージを高速化するための方法及び装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20020124157A1 (ja) |
JP (1) | JP2002287957A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006039815A (ja) * | 2004-07-26 | 2006-02-09 | Fujitsu Ltd | マルチスレッドプロセッサおよびレジスタ制御方法 |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7979677B2 (en) * | 2007-08-03 | 2011-07-12 | International Business Machines Corporation | Adaptive allocation of reservation station entries to an instruction set with variable operands in a microprocessor |
US8458443B2 (en) * | 2008-09-08 | 2013-06-04 | Smsc Holdings S.A.R.L. | VLIW processor with execution units executing instructions from instruction queues and accessing data queues to read and write operands |
US8458439B2 (en) * | 2008-12-16 | 2013-06-04 | International Business Machines Corporation | Block driven computation using a caching policy specified in an operand data structure |
US8407680B2 (en) * | 2008-12-16 | 2013-03-26 | International Business Machines Corporation | Operand data structure for block computation |
US8285971B2 (en) * | 2008-12-16 | 2012-10-09 | International Business Machines Corporation | Block driven computation with an address generation accelerator |
US8327345B2 (en) * | 2008-12-16 | 2012-12-04 | International Business Machines Corporation | Computation table for block computation |
US8281106B2 (en) * | 2008-12-16 | 2012-10-02 | International Business Machines Corporation | Specifying an addressing relationship in an operand data structure |
US9286068B2 (en) | 2012-10-31 | 2016-03-15 | International Business Machines Corporation | Efficient usage of a multi-level register file utilizing a register file bypass |
US10275251B2 (en) | 2012-10-31 | 2019-04-30 | International Business Machines Corporation | Processor for avoiding reduced performance using instruction metadata to determine not to maintain a mapping of a logical register to a physical register in a first level register file |
US9424045B2 (en) * | 2013-01-29 | 2016-08-23 | Arm Limited | Data processing apparatus and method for controlling use of an issue queue to represent an instruction suitable for execution by a wide operand execution unit |
US11630668B1 (en) | 2021-11-18 | 2023-04-18 | Nxp B.V. | Processor with smart cache in place of register file for providing operands |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5898882A (en) * | 1993-01-08 | 1999-04-27 | International Business Machines Corporation | Method and system for enhanced instruction dispatch in a superscalar processor system utilizing independently accessed intermediate storage |
US5465373A (en) * | 1993-01-08 | 1995-11-07 | International Business Machines Corporation | Method and system for single cycle dispatch of multiple instructions in a superscalar processor system |
US5754812A (en) * | 1995-10-06 | 1998-05-19 | Advanced Micro Devices, Inc. | Out-of-order load/store execution control |
US5884059A (en) * | 1996-01-26 | 1999-03-16 | Advanced Micro Devices, Inc. | Unified multi-function operation scheduler for out-of-order execution in a superscalar processor |
US6055621A (en) * | 1996-02-12 | 2000-04-25 | International Business Machines Corporation | Touch history table |
WO1998006030A1 (en) * | 1996-08-07 | 1998-02-12 | Sun Microsystems | Multifunctional execution unit |
US6070235A (en) * | 1997-07-14 | 2000-05-30 | International Business Machines Corporation | Data processing system and method for capturing history buffer data |
US6061777A (en) * | 1997-10-28 | 2000-05-09 | International Business Machines Corporation | Apparatus and method for reducing the number of rename registers required in the operation of a processor |
US5974524A (en) * | 1997-10-28 | 1999-10-26 | International Business Machines Corporation | Method and apparatus for reducing the number of rename registers in a processor supporting out-of-order execution |
US6449713B1 (en) * | 1998-11-18 | 2002-09-10 | Compaq Information Technologies Group, L.P. | Implementation of a conditional move instruction in an out-of-order processor |
US6647489B1 (en) * | 2000-06-08 | 2003-11-11 | Ip-First, Llc | Compare branch instruction pairing within a single integer pipeline |
-
2001
- 2001-03-01 US US09/798,293 patent/US20020124157A1/en not_active Abandoned
-
2002
- 2002-02-19 JP JP2002042171A patent/JP2002287957A/ja active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006039815A (ja) * | 2004-07-26 | 2006-02-09 | Fujitsu Ltd | マルチスレッドプロセッサおよびレジスタ制御方法 |
US7805594B2 (en) | 2004-07-26 | 2010-09-28 | Fujitsu Limited | Multithread processor and register control method |
US8447959B2 (en) | 2004-07-26 | 2013-05-21 | Fujitsu Limited | Multithread processor and method of controlling multithread processor |
Also Published As
Publication number | Publication date |
---|---|
US20020124157A1 (en) | 2002-09-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4553936B2 (ja) | アウト・オブ・オーダーのdmaコマンドキューにおけるコマンド順序の設定に関する技術 | |
EP3920032A1 (en) | Backward compatibility testing of software in a mode that disrupts timing | |
US7958333B2 (en) | Processor with memory access stage adapted to fetch an instruction of a thread when no memory access operation is detected | |
EP2411908B1 (en) | Tracking deallocated load instructions using a dependence matrix | |
EP0677188B1 (en) | System and method for assigning tags to instructions to control instruction execution | |
US20030105901A1 (en) | Parallel multi-threaded processing | |
KR102524565B1 (ko) | 로드 스토어 유닛들을 바이패싱하여 스토어 및 로드 추적 | |
JP2005284749A (ja) | 並列処理コンピュータ | |
EP2652613A1 (en) | Accessibility of graphics processing compute resources | |
JPH05224921A (ja) | データ処理システム | |
US6237066B1 (en) | Supporting multiple outstanding requests to multiple targets in a pipelined memory system | |
JP2002287957A (ja) | キャッシュのような構造を使用してcpu設計におけるオペランド・アクセス・ステージを高速化するための方法及び装置 | |
US10740256B2 (en) | Re-ordering buffer for a digital multi-processor system with configurable, scalable, distributed job manager | |
CN114514505A (zh) | 退役队列压缩 | |
US20130135327A1 (en) | Saving and Restoring Non-Shader State Using a Command Processor | |
US9329893B2 (en) | Method for resuming an APD wavefront in which a subset of elements have faulted | |
EP3497558B1 (en) | System and method for load and store queue allocations at address generation time | |
CN117501254A (zh) | 使用近存储器计算为复杂操作提供原子性 | |
JP5058116B2 (ja) | ストリーミングidメソッドによるdmac発行メカニズム | |
US20070043869A1 (en) | Job management system, job management method and job management program | |
JP4631442B2 (ja) | プロセッサ | |
US20040128484A1 (en) | Method and apparatus for transparent delayed write-back | |
EP4002103A1 (en) | User timer directly programmed by application | |
JP2023501069A (ja) | 選択不可能なスケジューラキューの後のレジスタリネーミング |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20041018 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20041102 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20050405 |