JPH11282678A - ス―パスカラ・プロセッサでストア命令を処理する方法及び装置 - Google Patents

ス―パスカラ・プロセッサでストア命令を処理する方法及び装置

Info

Publication number
JPH11282678A
JPH11282678A JP11006240A JP624099A JPH11282678A JP H11282678 A JPH11282678 A JP H11282678A JP 11006240 A JP11006240 A JP 11006240A JP 624099 A JP624099 A JP 624099A JP H11282678 A JPH11282678 A JP H11282678A
Authority
JP
Japan
Prior art keywords
data
queue
instruction
store
entry
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
Application number
JP11006240A
Other languages
English (en)
Other versions
JP3155519B2 (ja
Inventor
Barry D Williamson
バリー・ディ・ウィリアムソン
Jim E Phillips
ジム・イー・フィリップス
D Q Nguyen
ディキュー・ニューイェン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH11282678A publication Critical patent/JPH11282678A/ja
Application granted granted Critical
Publication of JP3155519B2 publication Critical patent/JP3155519B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • G06F9/3834Maintaining memory consistency

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

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は一般に処理システム
に関して、特に、処理システムにおいて複数のストア命
令の完了を提供することに関する。
【0002】
【従来の技術】より高速且つ強力なコンピュータ・シス
テムの継続的な開発において、縮小命令セット・コンピ
ュータ(RISC)・プロセッサとして知られる、意味
深いマイクロプロセッサが利用されている。RISCプ
ロセッサの分野における進歩が、スーパスカラ・プロセ
ッサの開発を導いた。スーパスカラ・プロセッサは、そ
の名が示すように、従来のスカラ・マイクロプロセッサ
では一般に見いだせない機能を実行する。これらの機能
には、命令を非プログラム順序で実行する能力が含まれ
る。命令は非プログラム順序で発生するが、実行の結果
はプログラム順序で発生したように現れ、適切なデータ
・コヒーレンスが維持される。
【0003】スーパスカラ・プロセッサ性能の共通のボ
トルネックは、所与の時刻において、プロセッサ内で未
完であり得る命令の数である。通常、命令ユニットは未
完の命令の数を示すキューを含む。キューは通常、最大
数に達すると、命令のそれ以上のディスパッチを延期す
る。
【0004】完了までに時間がかかり得る命令の1つの
タイプは、ストア命令である。ストア命令は多くの理由
からその完了までに時間がかかり得る。例えば、ストア
命令は、1サイクルにつき完了され得るストアの最大数
により、及び各サイクルにつきキャッシュを更新できる
ストアの数により、その完了までに時間がかかる。従来
のスーパスカラ・プロセッサは通常、1サイクル当たり
1つのストア命令を完了するだけである。このことはし
ばしば、ディスパッチを停止させる。
【0005】
【発明が解決しようとする課題】従って、こうした問題
を効率的且つ効果的に解決し、ストア命令完了の不足に
よるディスパッチ・ユニットの停止の回数を低減し、全
体的なプロセッサ性能を向上させるシステムが待望され
る。
【0006】
【課題を解決するための手段】従って、本発明は、1サ
イクルの間に完了され得るストア命令の数を増加するも
のである。停止状態の後、処理システム内で複数のスト
ア命令の完了を処理する方法及びシステムが開示され
る。処理システムは命令ユニットを含み、命令ユニット
がディスパッチ・ユニット、完了ユニット、変換ユニッ
ト及び少なくとも1つの実行ユニットを含む。ロード・
ストア・ユニットが、ディスパッチ・ユニットから複数
の命令を受信する命令キューと、命令キューから複数の
命令を受信する少なくとも1つの有効アドレス(EA)
・ユニットと、ストア・キューとを含む。ストア・キュ
ーは変換ユニット、少なくとも1つの実行ユニット及び
少なくとも1つのEAユニットに接続され、少なくとも
1つの実行ユニットからの複数の命令の各々の完了以前
に、その命令に関連するデータ及び実アドレス情報を受
信する。
【0007】このようにして、従来システムに関連する
ボトルネック、すなわち、命令ユニットによりディスパ
ッチされ得る命令の最大数が低減される。
【0008】本発明の実施例に従い、完了テーブル内で
待機しているストア命令の迅速な完了を可能にする、ス
ーパスカラ・プロセッサ内で使用される回路が提供され
る。本発明の実施例によれば、ストア命令のためのデー
タを記憶するデータ・キューが提供される。ストア命令
が実行され、その有効アドレスが使用可能となった後、
回路がストア命令により要求されたデータの位置を汎用
レジスタ(GPR)またはリネーム・レジスタから決定
する。ストア命令により要求されたデータを最初に発生
した命令が成功裡に完了された場合、命令が固定小数点
演算か浮動小数点演算かに応じて、データがGPRまた
は浮動小数点レジスタ(FPR)内に構成される。本発
明の説明のために、ここでは固定小数点命令を想定する
が、当業者であれば、本発明を浮動小数点命令に適用す
ることは容易であろう。なお、GPR及びFPRはプロ
セッサのアーキテクチャ上のレジスタであって、命令で
オペランド・レジスタとして指定することができる。本
明細書では、そのようなレジスタをアーキテクチャ・レ
ジスタと呼ぶ。
【0009】ストア命令により要求されたデータを生成
した命令がまだ完了していないが、関連する実行ユニッ
トにより最終結果まで処理されている場合、データがリ
ネーム・レジスタに有効として記憶される。命令がスト
ア命令により要求されたデータをまだ生成していない場
合には、データ受信用のリネーム・レジスタがプロセッ
サにより無効とマークされる。
【0010】GPR内か有効リネーム・レジスタ内かに
関わらず、一旦ストア命令により要求されたデータが使
用可能になると、そのデータはデータ・キュー内のエン
トリに渡される。読出しポートがリネーム・レジスタ上
に提供され、この動作を容易にする。本発明の現バージ
ョンでは、完了はプログラム順序で発生しなければなら
ないので、データをデータ・キューに受け渡すステップ
が、完了キュー・ポインタがストア命令を次に完了すべ
き命令として指し示すよりずっと以前に、発生し得る。
これは特に、完了がストア命令以前に発行された命令に
より停止された場合に当てはまる。ストア命令が完了す
る時点において、ストア命令により要求されたデータが
既にデータ・キュー内に存在し、キャッシュに送信され
得るが、その際、従来のプロセッサのようにGPRへの
アクセスは要求されない。このことは、複数のストア命
令が1クロック・サイクル内で完了されることを可能に
する。なぜなら、ストア命令が完了窓内でそれらの順番
を待機している間に、データが"プリロード"されるため
に、GPRポートにおいてボトルネックが存在しないか
らである。これは勿論、GPRポート上に1つの読出し
ポートだけを有する従来のプロセッサでは可能でない。
より多くのポートが追加され得るが、これは追加の設
計、チップ領域及び複雑性を要求する。
【0011】
【発明の実施の形態】本発明は、スーパスカラ・プロセ
ッサ内で完了され得るストア命令の数を増加することに
より、ディスパッチの停止を低減するものである。以下
の説明は、当業者が本発明を実施及び利用するために提
供される。ここで述べられる好適な実施例の様々な変
更、一般的な原理及び特徴が、当業者であれば容易に明
らかとなろう。
【0012】図1は、本発明に従い情報を処理するプロ
セッサ10のブロック図である。好適な実施例では、プ
ロセッサ10は、例えばIBM社のPowerPCプロ
セッサなどの単一の集積回路スーパスカラ・マイクロプ
ロセッサである。従って、後述のように、プロセッサ1
0は様々なユニット、レジスタ、バッファ、メモリ及び
他のセクションを含み、それらの全てが集積回路により
形成される。更に好適な実施例では、プロセッサ10は
縮小命令セット・コンピュータ(RISC)技術に従い
動作する。図1に示されるように、システム・バス11
がプロセッサ10のバス・インタフェース・ユニット
(BIU)12に接続される。BIU12は、プロセッ
サ10とシステム・バス11との間の情報の転送を制御
する。
【0013】BIU12は、プロセッサ10の命令キャ
ッシュ14及びデータ・キャッシュ16に接続される。
命令キャッシュ14は、命令をシーケンサ・ユニット1
8に出力する。命令キャッシュ14からのこうした命令
に応答して、シーケンサ・ユニット18は命令を選択的
に、プロセッサ10の他の実行回路に出力する。
【0014】ディスパッチ・ユニット46及び完了ユニ
ット48の実行ユニットを含むシーケンサ・ユニット1
8に加え、好適な実施例では、プロセッサ10の実行回
路は複数の実行ユニット、すなわち分岐ユニット20、
固定小数点ユニットA(FXUA)22、固定小数点ユ
ニットB(FXUB)24、複合固定小数点ユニット
(CFXU)26、ロード/ストア・ユニット(LS
U)28、及び浮動小数点ユニット(FPU)30を含
む。FXUA22、FXUB24、CFXU26及びL
SU28は、汎用アーキテクチャ・レジスタ(GPR)
32及び固定小数点リネーム・バッファ34から、それ
らのソース・オペランド情報を入力する。更に、FXU
A22及びFXUB24は、キャリー・ビット(CA)
・レジスタ42から"キャリー・ビット"を入力する。F
XUA22、FXUB24、CFXU26及びLSU2
8は、それらの演算結果(宛先オペランド情報)を出力
し、固定小数点リネーム・バッファ34内の選択エント
リに記憶する。更に、CFXU26は特殊目的レジスタ
(SPR)40に対して、ソース・オペランド情報及び
宛先オペランド情報を入出力する。
【0015】FPU30はそのソース・オペランド情報
を、浮動小数点アーキテクチャ・レジスタ(FPR)3
6及び浮動小数点リネーム・バッファ38から入力す
る。FPU30はその演算の結果(宛先オペランド情
報)を出力し、浮動小数点リネーム・バッファ38内の
選択エントリに記憶する。
【0016】シーケンサ・ユニット18はGPR32及
びFPR36に対して、情報を入出力する。分岐ユニッ
ト20はシーケンサ・ユニット18から命令及びプロセ
ッサ10の現状態を示す信号を入力する。こうした命令
及び信号に応答して、分岐ユニット20はシーケンサ・
ユニット18に、プロセッサ10による実行のために命
令シーケンスを記憶する適切なメモリ・アドレスを示す
信号を出力する。分岐ユニット20からのこうした信号
に応答して、シーケンサ・ユニット18は命令キャッシ
ュ14から指示された命令シーケンスを入力する。命令
キャッシュ14内に指示された命令シーケンスの1つ以
上の命令が記憶されていない場合、命令キャッシュ14
は、システム・バス11に接続されるシステム・メモリ
39から、BIU12及びシステム・バス11を介し
て、こうした命令を入力する。
【0017】命令キャッシュ14から入力された命令に
応答して、シーケンサ・ユニット18はディスパッチ・
ユニット46を通じて、命令を実行ユニット20、2
2、24、26、28及び30の選択されたものに選択
的にディスパッチする。各実行ユニットは、特定クラス
の命令の1つ以上の命令を実行する。例えば、FXUA
22及びFXUB24は、ソース・オペランドに対し
て、加算、減算、論理積、論理和及び排他的論理和など
の、第1のクラスの固定小数点演算を実行する。CFX
U26はソース・オペランドに対して、固定小数点乗算
及び除算などの、第2のクラスの固定小数点演算を実行
する。FPU30はソース・オペランドに対して、浮動
小数点乗算及び除算などの、浮動小数点演算を実行す
る。
【0018】プロセッサ10は、実行ユニット20、2
2、24、26、28及び30の様々なものにおいて、
複数の命令を同時に処理することにより高性能を達成す
る。従って、各命令は一連のステージとして処理され、
各ステージが他の命令のステージと並列に実行可能であ
る。こうした技術は"パイプライン方式"と呼ばれる。好
適な実施例では、命令は通常6ステージで、すなわちフ
ェッチ、解読、ディスパッチ、実行、完了及び書き戻し
ステージで処理される。
【0019】好適な実施例では、各命令は命令処理のス
テージの各々を完了するのに、1マシン・サイクルを要
求する。しかしながら、一部の命令(例えばCFXU2
6により実行される複合固定小数点命令)は、2サイク
ル以上を要求し得る。従って、先行する命令の完了に要
求される時間の変動に応じて、特定の命令の実行ステー
ジと完了ステージとの間に、可変の遅延が発生し得る。
【0020】ロード命令に応答して、LSU28はデー
タ・キャッシュ16から情報を入力し、こうした情報を
リネーム・バッファ34及び38の選択されたものにコ
ピーする。こうした情報がデータ・キャッシュ16内に
記憶されていない場合、データ・キャッシュ16は、シ
ステム・バス11に接続されるシステム・メモリ39か
らBIU12及びシステム・バス11を介して、こうし
た情報を入力する。更にデータ・キャッシュ16は、B
IU12及びシステム・バス11を介して、システム・
バス11に接続されるシステム・メモリ39に情報を出
力できる。ストア命令に応答して、LSU28はGPR
32、FPR36、リネーム・バッファ34及び38の
選択されたものから情報を入力し、こうした情報をデー
タ・キャッシュ16またはメモリ39にコピーする。
【0021】実行ユニット、例えばFXUA22、FX
UB24、リネーム・バッファ34及びディスパッチ・
ユニット46の間の対話の例として、命令"add
c、a、b"がディスパッチ・ユニット46からFXU
A22にディスパッチされる。当業者であれば理解でき
るように、ディスパッチ・ユニット46はFXUA22
にオペランド"a"及び"b"のタグを提供し、FXUA2
2にオペランドのデータを検索する場所を伝える。例え
ば、6個のリネーム・バッファを有するシステムでは、
ディスパッチ・ユニット46は"a"に対するオペランド
がリネーム・バッファ1内で突き止められるとして、6
ビットのタグ"100000"によりタグ付けする。タ
グ"010000"は、好適には、オペランド"b"がリネ
ーム・バッファ2内に存在することを示すために使用さ
れる。FXUA22はGPR32へ書込まないので、デ
ィスパッチ・ユニット46は演算のターゲットとして、
001000などのリネーム・バッファ・タグを使用し
なければならず、それにより加算命令の結果がリネーム
・バッファ3内に配置される。
【0022】前述のように、従来システムの1つの問題
は、1サイクル内で1ストア命令だけが完了され得るこ
とである。従来システムにおけるこの問題を示すため
に、図2を参照して述べることにする。
【0023】図2は、処理システム内でストア命令を完
了する従来のシステムである。この実施例では、命令ユ
ニット102はディスパッチ・ユニット103及び完了
ユニット105を含む。命令ユニット102は、命令キ
ャッシュ104からディスパッチ・ユニット103に命
令を受け取る。ディスパッチ・ユニット103は次に、
命令キャッシュから受け取ったストア命令を、ロード/
ストア(LDST)・ユニット106に提供する。ディ
スパッチ・ユニット103はまた、ストア命令を完了ユ
ニット105に送る。LDST106内に以前の命令が
存在する場合、ストア命令は命令キュー108に提供さ
れる。LDST106内に以前の命令が存在しない場合
には、命令キュー108がバイパスされて、ストア命令
は直接有効アドレス(EA)・ユニット110に提供さ
れる。いずれの場合にも、EAユニット110は次に、
特定の命令のためのアドレス情報を受け取る。
【0024】有効アドレスの制御命令が、ストア・キュ
ー130の終了キュー112に提供され、一方、アドレ
スに関する情報が変換ユニット114に提供される。変
換ユニット114はEA情報を実アドレス(RA)に変
換し、それを終了キュー112に提供する。終了キュー
112は、終了有効信号を完了ユニット105に提供す
る。すると完了ユニット105は、完了有効信号を終了
キュー112に提供する。終了キュー112はアドレス
を固定小数点ユニット(FXU)116及び浮動小数点
ユニット(FPU)118に送る。FXU及びFPU
は、それらのアドレスに関連するデータを完了キュー1
20に提供する。終了キュー112はRA情報を完了キ
ュー120に提供する。完了キュー120はストア命令
をデータ・キャッシュ122に提供する。
【0025】図3を参照すると、固定小数点実行ユニッ
ト(FXU)116の複数のストア命令(INST)1
乃至4のデータ・フローのタイミング図が示される。こ
の実施例では、一般に202で示されるように、命令1
がサイクル1でディスパッチされ、命令2がサイクル2
で、命令3がサイクル3で、命令4がサイクル4でそれ
ぞれディスパッチされる。その後、一般に204で示さ
れるように、LDSTユニット106が命令1の有効ア
ドレス(EA1)をサイクル2の前半で実行し、命令2
の有効アドレス(EA2)をサイクル3の前半で、命令
3の有効アドレス(EA3)をサイクル4の前半で、命
令4の有効アドレス(EA4)をサイクル5の前半でそ
れぞれ実行する。命令1乃至4の変換されたアドレスの
アクセスが、一般に206で示される。命令1のアドレ
スのアクセスは、サイクル2の後半とサイクル3の前半
の間に実行され、命令2のアドレスのアクセスは、サイ
クル3の後半とサイクル4の前半の間に、命令3のアド
レスのアクセスは、サイクル4の後半とサイクル5の前
半の間に、命令4のアドレスのアクセスは、サイクル5
の後半とサイクル6の前半の間に、それぞれ実行され
る。
【0026】次に、一般に208で示されるように、実
アドレスが変換ユニットから提供される。命令1の実ア
ドレス(RA1)はサイクル3の後半に提供され、命令
2の実アドレス(RA2)はサイクル4の後半に、命令
3の実アドレス(RA3)はサイクル5の後半に、命令
4の実アドレス(RA4)はサイクル6の後半に、それ
ぞれ提供される。
【0027】この実施例では、一般に210で示される
ように、終了キューが前述のように、サイクル4乃至7
の間に、命令1乃至4の実アドレス値によりロードされ
る。命令1乃至4は、一般に212で示されるように、
サイクル4乃至7で終了し得る。たとえ命令1乃至4が
完了されても、アーキテクチャ・レジスタ・ファイル上
の単一の読出しポートにより命令間に構造的な依存性が
存在し、これが一般に213で示されるように、プロセ
ッサの性能を制限する。すなわち、命令1はサイクル5
で完了され得、命令2は命令1が完了されれば、サイク
ル6で完了され得、命令3は命令1及び2が完了されれ
ば、サイクル7で完了され得る。最後に、命令4は命令
1乃至3が完了されれば、サイクル8で完了され得る。
【0028】一般に214で示される停止状態の後、命
令完了ユニットがフル状態の場合、前述の構造的な依存
性により命令1乃至4が一般に216で示されるよう
に、サイクルn+1から開始し、1度に1つずつ完了さ
れる。これは完了ユニット105がサイクルn+1乃至
n+4の間に、命令1乃至4に対する完了信号を起動す
ることにより達成される。それ故、固定小数点ユニット
汎用レジスタ(GPR)がアクセスされ、命令1乃至4
に対するデータが、一般に218で示されるように、サ
イクルn+1乃至n+4の間に獲得される。各命令に対
するデータ有効信号が、一般に220で示されるよう
に、サイクルn+1乃至n+4の間に提供される。
【0029】その後、一般に222で示されるように、
完了ストア・キューが命令1乃至4によりロードされ
る。命令1はサイクルn+2で完了ストア・キューにロ
ードされる。命令2はサイクルn+3で完了ストア・キ
ューにロードされ、命令3はサイクルn+4で完了スト
ア・キューにロードされ、命令4はサイクルn+5で完
了ストア・キューにロードされる。次に、一般に224
で示されるように、命令1乃至4のデータがサイクルn
+2乃至n+5の間に、1度に1命令ずつ、データ・キ
ャッシュに送られる。
【0030】プロセッサが未完の命令の最大数に関する
限界に達すると、サイクルn+2において1命令だけが
ディスパッチされ得る。これはサイクルn+3乃至n+
6にも当てはまる。従って、完了ユニットがフル状態の
ために、一般に226で示される命令5乃至8が、順次
ディスパッチされる必要がある。従って、ディスパッチ
時間におけるこの不利益が、プロセッサの全体性能に影
響する。
【0031】このデータ・フローに関する問題は、前述
の終了キュー/完了キューの相互作用により、完了ユニ
ット105がフル状態でディスパッチ停止が発生する場
合、命令のディスパッチが多大に遅延されることであ
る。この問題を克服する従来のアプローチは、実行ユニ
ット上にポートを追加することである。このアプローチ
は、システムに追加のコスト及び複雑度を課する。従っ
て、ディスパッチ停止が発生した後に、複数のストア命
令を完了することにより、プロセッサの全体性能を改善
するための既知のアプローチよりも単純な方法及びシス
テムが求められる。
【0032】本発明に従い示されるシステム及び方法
は、停止状態が発生し、完了バッファがフル状態の後
に、複数のストア命令を完了することによりプロセッサ
の性能を実質的に改善する。また、完了バッファは従来
のプロセッサほど高速に充填されない。本発明では、ス
トア・キューは終了キューと完了キューとの組み合わせ
ではなく、単一のキューである。更に、ストア命令に関
連するデータが、命令の完了後にではなく完了以前にア
クセスされる。ストア命令は次の2つの条件のいずれか
が満たされるとき、すなわち、実アドレス(RA)及び
データがストア・キューにロードされるか、RAがスト
ア・キューにロードされ、データがストア・キューに送
信されているとき終了され得る。データを早期にアクセ
スすることにより、複数のストア命令が実質的に同時に
完了され得る。従って、完了バッファがフル状態時のデ
ィスパッチの停止後、複数の命令がディスパッチされ得
る。そうすることにより、複数のストア命令を同時に完
了し、それにより完了バッファ内のエントリを解放する
ことにより、命令ディスパッチの遅延を実質的に低減す
るシステムが提供される。
【0033】以下の議論では、本発明についてより詳細
に述べることにする。図4は、本発明に従い、1サイク
ルにつき単一のストア命令の実行を提供するストア命令
データ・フローの第1の実施例である。図2に示される
要素と類似の要素が、複数存在する。これらの要素は図
2と類似の番号を与えられる。しかしながら、幾つかの
大きな違いが存在する。第1は、ロード/ストア・ユニ
ット306のストア・キュー312が、終了キューと完
了キューとの組み合わせではなく、単一のキューであ
る。この構成では、完了ユニット105'がストア命令
を完了し、ストア・キュー312が完了時に適切なエン
トリをマークする。好適な実施例では、ストア・キュー
312は16エントリの深さである。すなわち、16個
のストア命令がストア・キューに記憶され得る。また、
好適な実施例では、各エントリ内のビットは、命令ユニ
ットからの完了信号にもとづき、アクティブにされる。
更に、このデータ・フローの動作は、図2のストア命令
のデータ・フローに関して述べられた動作とは異なる。
前述のように、データはストア命令の完了以前にアクセ
スされる。ストア命令は、以下の2つの条件の1つが満
たされるとき、すなわち、1)実アドレス及びデータが
ストア・キューにロードされるか、2)実アドレスがス
トア・キューにロードされ、データがストア・キューに
送信されているとき終了される。
【0034】これらの違いについて詳述するために、図
4のデータ・フローの動作を一般に示す図5を参照する
ことにする。
【0035】最初にステップ402で、複数のストア命
令が、ディスパッチ・ユニット103'からロード/ス
トア・ユニット306内の有効アドレス(EA)・ユニ
ット310に提供される。ステップ404で、EAユニ
ット310は制御情報をストア・キュー312に提供す
る。ステップ406で、EAユニット310はアドレス
情報を変換ユニット114'に提供する。ステップ40
8で、複数のストア命令に関連する実アドレス(RA)
が、変換ユニット114'から読出され、複数のストア
命令に関連するデータが、FXUユニット116'から
読出される。ステップ409で、ディスパッチ停止が発
生した後、完了ユニットはフル状態である。
【0036】ステップ410で、完了ユニット105'
は、ストア・キュー312から受信される終了有効信号
にもとづき、その完了窓内において複数のストア命令を
完了する。ステップ412で、ストア・キューがそのエ
ントリを完了済みとしてマークする。その後、ステップ
416で、同一数の新たな命令がディスパッチ・ユニッ
ト103'からディスパッチされ、ステップ418で完
了ユニット105'に提供される。そうすることで、デ
ィスパッチ停止が本発明により多大に低減される。
【0037】本発明の動作をより詳細に述べるために、
またそれを図2のデータ・フローのタイミング図と対比
するために、図3と一緒に図6を参照することにする。
図6は、図4のデータ・フローのタイミング図である。
図3の202と同様に、図6の実施例では、一般に50
2で示されるように、命令1がサイクル1でディスパッ
チされ、命令2がサイクル2で、命令3がサイクル3
で、命令4がサイクル4で、それぞれディスパッチされ
る。その後、図3の204と同様に、ロード/ストア・
ユニットが図6の504で一般に示されるように、命令
1の有効アドレス(EA1)をサイクル2の前半で実行
し、命令2の有効アドレス(EA2)をサイクル3の前
半で、命令3の有効アドレス(EA3)をサイクル4の
前半で、命令4の有効アドレス(EA4)をサイクル5
の前半で、それぞれ実行する。
【0038】その後、図3の206で示されるのと同様
に、命令1乃至4の変換のためのキャッシュ変換アクセ
スが発生する。図6の506で一般に示されるように、
命令1の変換アドレスのためのキャッシュ・アクセス
は、サイクル2の後半とサイクル3の前半との間に発生
し、命令2の変換アドレスのためのキャッシュ・アクセ
スは、サイクル3の後半とサイクル4の前半との間に発
生し、命令3の変換アドレスのためのキャッシュ・アク
セスは、サイクル4の後半とサイクル5の前半との間に
発生し、命令4の変換アドレスのためのキャッシュ・ア
クセスは、サイクル5の後半とサイクル6の前半との間
に発生する。
【0039】しかしながら、図3と異なり、次にデータ
が使用可能な場合、一般に508で示されるように、ア
ーキテクチャ・レジスタ・ファイル(GPR)がアクセ
スされる。命令1のデータがサイクル3でアクセスさ
れ、次に命令2のデータがサイクル4で、命令3のデー
タがサイクル5で、そして命令4のデータがサイクル6
でそれぞれアクセスされる。
【0040】次に、一般に510及び512でそれぞれ
示されるように、実アドレスに対するデータ(RA1乃
至RA4)が変換ユニットから提供され、データ有効信
号がFXU116'からストア・キュー312に提供さ
れる。この実施例では、命令1に対するデータ有効信号
はサイクル4の間に提供され、命令2に対するデータ有
効信号はサイクル5の間に、命令3に対するデータ有効
信号はサイクル6の間に、そして命令4に対するデータ
有効信号は、サイクル7の間にそれぞれ提供される。R
A1はサイクル3の後半の間に提供され、RA2はサイ
クル4の後半の間に、RA3はサイクル5の後半の間
に、RA4はサイクル6の後半の間にそれぞれ提供され
る。
【0041】この実施例では、一般に514で示される
ように、ストア・キュー312がサイクル4乃至7の間
に、それぞれ命令1乃至4の実アドレス値をロードされ
る。命令1乃至4の各々に対するストア・キュー終了
が、一般に518で示されるように、ストア実アドレス
がストア・キューにロードされ且つFXU116'デー
タ有効信号が、一般に510で示されるように提供され
るのと同一のサイクルの間に発生する。従って、次の2
つの条件の一方が満足される場合、すなわち、1)命令
1乃至4に対するRA及びデータがストア・キューにロ
ードされるか、2)命令1乃至4に対するRAがストア
・キューにロードされ、データがストア・キューに転送
されている場合、ストア・キュー終了が発生し得る。次
に、一般に516で示されるように、命令1乃至4に対
するデータが入手可能であれば、それぞれサイクル5乃
至8の間に、ストア・キュー312にロードされる。
【0042】一般に521で示される停止状態の後、5
22で示されるように、4つの命令が同時に完了され得
る。これは、4つの命令が順次完了されなければならな
い図3のシステムとは対照的である。次に、完了ユニッ
ト105'がサイクルn+1の間に、命令1乃至4に対
する完了信号を起動する。また、全ての命令が完了済み
としてマークされているので、一般に524で示される
ように、ディスパッチ・ユニット103'は命令5乃至
8を同時に(サイクルn+2で)ディスパッチできる。
【0043】プロセッサがサイクルn+2で、1サイク
ル当たりの未完命令の最大数に関する限界に達すると、
この実施例はサイクルn+2において、1サイクルにつ
き最大4命令がディスパッチされることを可能にする。
それに対して、従来技術では、1命令がディスパッチさ
れるだけである。
【0044】図7は、本発明の好適な実施例のストア命
令のデータ・フローを示す。このデータ・フローは、1
サイクル当たり最大2つの命令をサポートする。要素は
図5のそれと類似である。共通要素は類似の番号で示さ
れるが幾つかの違いが存在する。図示のように、2つの
EAユニット310a及び310bが存在する。更に、
FXU116'のための2つのポートが存在する。FX
U116'上に2つのポートが存在するので、変換ユニ
ット114'は各ポートに対して変換信号を提供し、ス
トア・キュー312は各ポートに対して終了有効信号を
提供する。
【0045】図8を参照すると、この実施例では、1サ
イクルにつき2つの命令が処理され得るので、一般に6
02で示されるように、命令1及び2がサイクル1の間
にディスパッチされ、命令3及び4がサイクル2の間に
ディスパッチされる。次に、一般に604で示されるよ
うに、EA1及びEA2のロード/ストア生成が、サイ
クル2の前半に発生し、EA3及びEA4のロード/ス
トア実行が、サイクル3の前半に発生する。次に、一般
に606で示されるように、キャッシュが命令1及び2
の変換アドレスのために、サイクル2の後半とサイクル
3の前半の間にアクセスされ、命令3及び4の変換アド
レスのために、サイクル3の後半とサイクル4の前半の
間にアクセスされる。
【0046】次に、一般に608で示されるように、ア
ーキテクチャ・レジスタ・ファイル(GPR)がアクセ
スされる。命令1及び2のデータは、サイクル3におい
てアクセスされ、命令3及び4のデータは、サイクル4
においてアクセスされる。
【0047】次に、一般に610及び612でそれぞれ
示されるように、実アドレスのデータ(RA1乃至RA
4)が変換ユニットから提供され、命令1乃至4のデー
タ有効信号がストア・キュー312に提供される。この
実施例では、命令1及び2のデータ有効信号がサイクル
4の間に提供され、命令3及び4のデータ有効信号がサ
イクル5の間に提供される。RA1及びRA2はサイク
ル3の後半に提供され、RA3及びRA4はサイクル4
の後半に提供される。
【0048】この実施例では、一般に614で示される
ように、サイクル4及び5の間にストア・キュー312
が命令1乃至4の実アドレス値をロードされる。命令1
乃至4の各々に対するストア・キュー終了が、一般に6
18で示されるように、ストア・キュー実アドレスがロ
ードされるのと同一のサイクルの間に発生する。次に、
一般に616で示されるように、命令1乃至4のデータ
が入手可能であれば、それぞれサイクル5及び6の間に
ストア・キュー312にロードされる。
【0049】621で示される停止状態の後、622で
示されるように、4つの命令が同時に完了され得る。こ
のとき、完了ユニット105'はサイクルn+1の間
に、命令1乃至4に対する完了信号を起動する。また、
全ての命令が完了済みとしてマークされているので、6
24で示されるように、ディスパッチ・ユニット10
3'は命令5乃至8を同時に(サイクルn+2で)ディ
スパッチできる。
【0050】プロセッサが1サイクル当たりの未完命令
の最大数に関する限界に達すると、サイクルn+2で、
最大4命令がディスパッチされ得るのに対して、従来技
術では、1命令がディスパッチされるだけである。この
ことは命令8がディスパッチされるときに、3サイクル
を節約することになる。
【0051】本発明によるシステム及び方法では、複数
のストア命令が一緒に処理されるので、命令が一緒に完
了され得、それによりストア命令を完了するためのサイ
クル数を実質的に低減する。命令ユニットによりディス
パッチされ得る命令の最大数のボトルネックが、従来シ
ステムにより要求される完了キュー・エントリを排除す
ることにより緩和され、それにより命令ユニットが新た
な命令をディスパッチすることを可能にする。
【0052】図9を参照すると、本発明の別の実施例に
従い、ディスパッチのボトルネックを低減する回路70
0が示される。この実施例では、GPR714に加え、
リネーム・レジスタ716が読出しポートを提供され、
それによりデータがリネーム・レジスタからマルチプレ
クサ(MUX)718を介して、データ・キュー(DA
TAQ)722に転送される。データ・キュー722の
エントリを図10に示す。回路700はまた、命令タグ
を記憶するタグ・キュー(TAGQ)704を含む。命
令タグは回路700により、特定のストア命令に関連付
けられるアドレス及びデータを、様々なキュー内で位置
整合するために使用される。タグ・キュー704内の各
フィールドは、好適にはnビット幅であり、ここでn
は、プロセッサ内で保留中の全てのストア命令を一意的
に識別するのに十分な数のタグが割当てられるように選
択される。タグ・キュー内の各フィールドは、タグ・フ
ィールド内に含まれるデータが有効な保留命令か否かを
示す有効ビットにも関連付けられる。有効ビットは、命
令がLSUにより実行され、タグがタグ・キュー内のエ
ントリに転送されるとき、最初に活動化される。有効ビ
ットは、以下で詳述されるように、ストア命令に対応す
るデータがデータ・キュー722からキャッシュに転送
された後に非活動化される。有効ビットが非活動化され
ると、そのエントリは続くストア命令による再利用のた
めに使用可能になる。図11は、タグ・キュー704内
の個々のエントリを示す。
【0053】回路700はまた、特定のストア命令によ
り要求されたデータを含む、特定のGPRまたはリネー
ム・レジスタ・ファイル・エントリを選択するための情
報を含む、ポインタ・キュー(PTRQ)706を含
む。図12は、一般的なポインタ・キュー・エントリに
含まれるフィールドを示す。より詳細には、ストア・ポ
インタ・キュー706は、データがストア・データ・キ
ュー722の適切なエントリにロードされることを保証
する機構である。データはFXU実行ユニットまたはF
PU実行ユニットから、非プログラム順序で戻され得る
ので、ストア・ポインタ・キューが必要となる。1実施
例では、ストア・ポインタ・キュー706は深さnのプ
ッシュダウン・キューである。FXU実行ユニットまた
はFPU実行ユニットからのデータ要求を生成するため
に、下位の2つのエントリがLSU論理702によりチ
ェックされる。FXU(GPR)レジスタ・ファイルま
たはFPU(FPR)レジスタ・ファイルをアドレス指
定するために、アーキテクチャ・レジスタ・ファイル・
ポインタが使用され、FXU(リネーム)レジスタ・フ
ァイルまたはFPU(リネーム)レジスタ・ファイルを
アドレス指定するために、リネーム・レジスタ・ファイ
ル・ポインタが使用される。アーキテクチャ・レジスタ
・ファイル及びリネーム・レジスタ・ファイルの両方
が、並列にアクセスされる。データ・キュー722に転
送されるデータは、関連するポインタ・キュー・エント
リ内のリネーム/アーキテクチャ(R/A)ビットによ
り決定される。R/Aビットがセットされている場合、
アーキテクチャ・コピーが使用され、R/Aビットがセ
ットされていない場合、リネーム・データがマルチプレ
クサ718により選択される。R/Aビットの初期値
は、ディスパッチ時にリネーム・ユニットから割当てら
れ、命令と共に、ロード/ストア実行ユニットに転送さ
れる。R/Aビットは、LSU論理により保持されなけ
ればならない動的ビットである。なぜなら、ストア・ポ
インタがデータをアクセスできる以前に、ストア命令の
ソース・データの位置がリネーム・レジスタ・ファイル
からアーキテクチャ・レジスタ・ファイルに移動し得る
からである。換言すると、当初ストア命令のデータはリ
ネーム・レジスタ・ファイル内に存在すると決定される
が(R/A=0)、ストア・ポインタ・キューがデータ
をリネーム・レジスタ・ファイルからアクセスできる以
前に、命令ユニットはストア命令のソースであるGPR
を変更し得た命令を完了する。この結果、リネーム・デ
ータがアーキテクチャ・レジスタ・ファイルにロードさ
れる。LSU論理は、関連ポインタ・キュー・エントリ
のR/Aビットを0から1に変更する。
【0054】データがリネーム・レジスタ・ファイルま
たはアーキテクチャ・レジスタ・ファイルからアクセス
されると、ストア・ポインタ・タグ・フィールドが、ス
トア・データ・キュー内のデータを、ストア・タグ・キ
ュー内の対応するエントリ(マッチング・タグ値を有す
る)に位置整合するために使用される。有効ビット
(V)は単に、ストア・ポインタ・キュー・エントリが
有効か否かを示すだけである。
【0055】毎サイクルごとに、ポインタ・キュー内の
2つの下位エントリが走査され、GPRレジスタ・ファ
イル及びリネーム・レジスタ・ファイル内のエントリに
含まれるデータが、マルチプレクサ718に転送され
る。制御論理が、GPRレジスタ・ファイル・エントリ
及びリネーム・レジスタ・ファイル・エントリに関連付
けられる有効ビットをチェックする。エントリ内のデー
タが有効でない場合、それはデータ・キューに転送され
ない。データは本質的に"放棄"され、ポインタ・キュー
・エントリが次のサイクルで再走査される。結局、スト
ア命令により要求されたデータがリネーム・レジスタに
書込まれ、その特定のリネーム・レジスタに対応するリ
ネーム有効ビットが活動化される。データがデータ・キ
ューに転送されるとき、制御論理はポインタ・キュー・
エントリ内の有効ビットを非活動化する。このことは続
くストア命令がポインタ・キュー・エントリを再利用す
ることを可能にする。なぜなら、ポインタ・キュー(及
び終了キュー)がタグ・キューにより位置整合されない
からである。
【0056】回路700は、ストア終了キュー(FIN
Q)710を含む。ストア終了キュー710は、ストア
命令を終了する役割を担う。これもまたプッシュダウン
・キューである。終了キュー710は、アドレス生成サ
イクルの間に生成された固有ストア・タグのうち、各I
IDで"最終"要求としてマークされたタグを保持する。
ここでIIDは、ディスパッチ時に各命令に割当てら
れ、プロセッサを通じて、命令を追跡するために使用さ
れる命令識別子を表す。より詳細には、本発明の特定の
1実施例では、あらゆる位置不整合の命令(すなわち、
ストア命令により要求されたデータが、キャッシュ境界
上で位置不整合となる)は、各IIDにつき2つのキャ
ッシュ・アクセス要求を有し、そのうち第2の要求タグ
だけが終了キューに配置される。位置整合された命令の
場合は、各要求が"最終"とマークされ、そのタグが終了
キューに配置される。もちろん、位置不整合の命令の処
理は、本発明と共に使用される特定のアーキテクチャに
大きく依存する。
【0057】本発明のこのバージョンでは、最も古い2
つのエントリがLSU論理により走査され、それらが終
了され得るか否かがチェックされる。タイミング上の配
慮から、本発明は各サイクルの間により多くのまたは少
ないエントリを走査するようにも、容易に適応化され得
る。ストア命令は非プログラム順序で終了され得る。す
なわち、最も古いエントリが何らかの理由により終了さ
れ得なかった場合、2番目に古いエントリが終了され得
る。ストア終了キュー710内の2つの最も古い命令に
対するタグが、ストア・タグ・キュー704内のタグと
比較され、ストアEA/制御キュー708内でチェック
されるべきエントリが決定される。ストア命令は、その
実アドレス及びデータが、それぞれ実アドレス・キュー
(RAQ)712及びストア・データ・キュー722に
ロードされているか、または実アドレスが実アドレス・
キュー712にロードされ、データがデータ・キュー7
22にロードされようとしている場合、終了され得る。
一旦命令が終了キューにより終了可能になると、ストア
EA/制御キュー708から獲得されるそのIID及び
終了信号が、命令完了ユニット(図示せず)に送信され
る。
【0058】前と同様に、有効ビット(V)は単に、ス
トア終了キュー・エントリが有効であることを示すだけ
である。終了キューが最初に実行済み命令によりロード
されるとき、有効ビットが活動化される。ストア命令に
対応する実アドレス・キュー及びデータ・キュー内のエ
ントリが有効なとき、終了報告が完了ユニットに送信さ
れ、終了キュー有効ビットが非活動化される。換言する
と、終了キューは、実アドレス及びストア命令により要
求されたデータの両方が、そのストア命令が完了され得
る以前に使用可能なことを保証するように動作する。終
了報告は任意の例外情報の他に、命令に対応する有効ア
ドレス制御キュー・エントリ(図14)から獲得される
IIDを含む。
【0059】回路700は更に、有効アドレス制御キュ
ー(EA/CNTLQ)708を含む。図14は、一般
的な有効アドレス制御キュー・エントリを示す。有効ア
ドレス制御キュー708は、深さnのプッシュダウン・
キューであり、メモリを更新するための実アドレス及び
ストア・データと共に、データ・キャッシュに転送され
る有効アドレスを保持する。このキューはまた、ストア
命令を終了するために、ストア・キューにより使用され
るIIDを含む。Eビットは、例外が実行の間に発生し
た場合、このエントリがデータ・キャッシュに転送され
ることを阻止する例外ビットである。Eビットは設計上
の選択に応じて、プロセッサ上の様々な資源により操作
され得る。例えば、本発明の1実施例では、Eビットは
ストア割込みなどの特定の事象に際して、データ・キャ
ッシュ・メモリ管理ユニット(DCMMU)724のア
ドレス変換論理によりセットされる。
【0060】Cビットは、ストア命令が体系的に命令完
了ユニットにより完了され、メモリへのストアが発生す
べきことを意味する完了ビットである。完了されたスト
アだけがデータ・キャッシュに転送され得る。特定の有
効アドレス制御キュー・エントリでCビットが活動化さ
れるのは、タグ・キュー、データ・キュー及び実アドレ
ス・キュー内の対応するエントリが、問題のストア命令
に対して有効で、完了ユニットがこの命令が完了された
ことを示すときだけである。データがデータ・キューか
らキャッシュに転送された後、対応する有効アドレス制
御キュー・エントリ内の有効ビットは非活動化される。
同時に、タグ・キュー、データ・キュー及び実アドレス
・キュー内の有効ビットも、それらのそれぞれのエント
リに対して非活動化される。
【0061】この時点で、当業者には本発明の1つの重
要な利点が明らかとなろう。アドレス及びストア命令に
より要求されたデータが、既にアドレス・キュー及びデ
ータ・キュー内に保持されているので、命令が完了され
る時点になると、すなわち命令のIIDが完了テーブル
内で次に完了すべきエントリとなるとき、アーキテクチ
ャ・レジスタ・ファイルまたはリネーム・レジスタ・フ
ァイルからの読出しを実行する必要無しに命令が完了さ
れ得る。代わりに、データが単にデータ・キューからキ
ャッシュに転送される。本発明のこのバージョンでは、
データ・キューが単一の読出しポートだけを具備され、
結果的に、1サイクルにつき1ストア命令だけがそのデ
ータをキャッシュに転送され得るものと仮定する。しか
しながら、レジスタ・ファイルの読出しが要求されない
ので、本発明は1サイクル内で複数のIIDが完了ユニ
ットから有効アドレス制御キューに転送されることを可
能にし、関連するエントリの各々に対して、Cビットを
セットする。一旦IIDが転送されると、完了テーブル
内のエントリが続く命令により再利用され得る。これは
1サイクル内で、完了テーブル内の複数のエントリを解
放し、完了テーブルがフル状態の時に生じ得るディスパ
ッチの停止を阻止する。
【0062】例えば、データをメモリ・アライメントに
フォーマットするストア・フォーマッタの制御などの、
本発明の体系的な実現に依存する様々な目的で、他の各
種制御ビットが提供され得る。有効ビット(V)は、有
効アドレス制御キュー・エントリが有効であることを示
し、エントリがロードされるときに活動化され、前述の
ように非活動化される。
【0063】回路700により使用される別のキュー
は、実アドレス・キュー(RAQ)712である。この
キューは、完了バッファ(図示せず)内で保留中のスト
ア命令によるキャッシュ・アクセスのための実アドレス
を記憶する。このキュー内のアドレスは、メモリへの実
際の書込みを行うために、対応するストア・データと一
緒にキャッシュに転送される。
【0064】最後に、回路700は、完了バッファ(図
示せず)内で保留中の様々なストア命令により要求され
たデータを記憶するデータ・キュー722を有する。デ
ータ・キュー722は、関連するストア命令が実行され
る時のデータの位置に依存して、GPRレジスタ・ファ
イルまたはリネーム・レジスタ・ファイルのいずれかか
らデータを受信する。
【0065】本発明の1バージョンの動作は次のようで
ある。ディスパッチに際して、ストア命令がディスパッ
チ・ユニット(図示せず)から、ロード/ストア・ユニ
ット(LSU)論理702に転送される。ディスパッチ
・ユニットは命令に識別タグ(IID)を割当て、これ
はプロセッサ全体を通じて命令を追跡するために使用さ
れる。続くクロック・サイクルにおいて、LSU702
は命令の有効アドレスを計算し、識別のための固有のタ
グを命令に割当てる。ここでIIDはLSUにより生成
されるタグとは区別され、タグ・キュー704に記憶さ
れる。この実施例では、タグ識別はLSU内で内部的に
使用されるだけである。このことは、ディスパッチ・ユ
ニットによりストア命令に割当てられたIIDが、元の
ストアがデータ・キャッシュに送信されるより以前に再
発行される可能性により、論理設計を単純化する。II
Dを使用してLSUキュー内でデータを位置整合するよ
うにすることも可能であるが、この実施例は設計上の選
択の理由から、別々のタグを採用する。LSU論理70
2は次に、タグをタグ・キュー704に転送する。タグ
・キュー704は、以下で詳述されるように、回路70
0内の様々なキュー間のアライメントを保持するために
使用される。
【0066】同じサイクルの間に、LSU論理はまた、
命令及びそのタグをポインタ・キュー706に転送す
る。この実施例のポインタ・キュー706は、単純なプ
ッシュダウン・キューである。ポインタ・キュー内の各
エントリは、図12に示されるように、タグ・フィール
ド、GPRポインタ、リネーム・ポインタ、リネーム/
アーキテクチャ・ビット(R/A)及び有効ビット
(V)を含む。タグ・フィールドは、前のサイクルにL
SU論理702により割当てられた命令の識別タグを含
む。GPRフィールドは、ディスパッチされる命令に関
連付けられるGPRポインタを含む。同様に、リネーム
・ポインタは、ディスパッチされる命令に関連付けられ
るリネーム・ポインタを含むが、この情報は命令解読の
一部でないので、リネーム制御論理から到来する。R/
Aビットは、命令に関連付けられるデータを含む位置、
すなわち、データがリネーム・レジスタ及びGPRのい
ずれにあるかを識別する。1実施例では、R/Aビット
がセットされるとき、命令のデータはGPRエントリに
記憶される。ストア命令のために要求されたデータがG
PR内に存在する場合、R/Aビットを更新する必要は
ない。なぜなら、そのデータを要求するストア命令が完
了されるまで、アーキテクチャ・レジスタが変化しない
からである。
【0067】しかしながら、R/Aビットがセットされ
ない場合、データはリネーム・レジスタ・エントリ内で
突き止められる。この場合、R/Aビットが後述のよう
に、ポインタ・キュー706内で更新されなければなら
ない。LSU論理702はリネーム・レジスタ制御論理
(図示せず)からR/Aビットを獲得し、それを他の情
報と一緒にポインタ・キュー706に同時に転送する。
ストア命令のデータがリネーム・レジスタから獲得され
る場合、リネーム・エントリの有効ビットはリネーム・
データが有効か否か、すなわちデータを生成した命令が
それをリネーム・レジスタに書込んだか否か、またはそ
の命令が依然保留中か否かを示す。R/Aビットはリネ
ーム・エントリの有効ビットと共に使用され、ストア命
令のデータが入手可能な場合、各サイクルにおいて、デ
ータ・キュー722へのその転送を可能にする。
【0068】ポインタ・キュー706はLSU論理70
2により各サイクルで走査される。図12のポインタ・
キュー・エントリが走査されるとき、その中のリネーム
・ポインタが、完了ユニットの書き戻しベクトル(同様
にリネーム・ポインタ)と比較され、対応するR/Aビ
ットがセットされるべきか否かが決定される。より詳細
には、完了ユニット内の各エントリは、完了する命令の
データが突き止められるリネーム・レジスタに対応する
書き戻しベクトル・フィールドを含む。書き戻しベクト
ルは、プロセッサ上の論理により、リネーム・レジスタ
からのデータをそのデータを生成した命令により目標と
されたレジスタに書込むために使用される。ポインタ・
キュー・エントリ内のリネーム・ポインタと完了テーブ
ル内の書き戻しベクトルとの間で、比較一致が見い出さ
れるとき、これはストア命令により必要とされるデータ
を生成した命令が完了し、現在GPRエントリ内に構成
されていることを示す。従って、その特定のストア命令
のために要求されたデータは、もはやリネーム・レジス
タ内では見い出されず、GPR内にある。従って、LS
U論理はポインタ・キュー・エントリ内のR/Aビット
をトグルする。
【0069】ポインタ・キュー706はまた、データ・
キュー722への転送準備が整ったデータを有するエン
トリが存在するか否かを決定するために走査される。タ
イミング上の理由から、ポインタ・キュー706の一部
だけ、例えば最後の2つのエントリなどを走査すること
が望ましかろう。しかしながら、これは設計上の選択に
よる。ポインタ・キュー706の走査は、命令のデータ
がデータ・キュー722に非プログラム順序で書込まれ
ることを可能にする。例えば、ポインタ・キュー706
内の最後の、それ故最も古いエントリが走査され、その
データがリネーム・レジスタ内に記憶されることが見い
出されるものの、リネーム有効ビットにより、そのデー
タがまだ以前のデータ生成命令から受信されていないこ
とが示される場合、ポインタ・キュー706内の最も古
い命令のデータは、データ・キュー722に転送され得
ない。この場合、LSU論理702は次に古いエントリ
を走査する。このエントリに対してR/Aビットがセッ
トされていると、このエントリのデータはGPRに含ま
れる。この場合、LSU論理702はR/Aビットと共
にGPRポインタを使用することにより、適切なGPR
エントリを選択し、データをデータ・キュー722に記
憶する。GPRからデータを受信する特定のデータ・キ
ュー・エントリは、前述のようにタグ・キュー704の
同じエントリに対応するものである。換言すると、プロ
セッサはポインタ・キュー706内のタグを、タグ・キ
ュー704内の関連ストア命令のタグと比較する。関連
ストア命令のタグが、タグ・キュー704内の第4のエ
ントリに記憶されている場合、GPRから受信されるデ
ータはデータ・キュー722内の第4のエントリに書込
まれる。このように、タグ・キュー704は、データ・
キュー722、実アドレス・キュー712及び有効アド
レス制御キュー708間のアライメントを保持する。各
特定のストア命令に対して、これらの各キューのエント
リがその命令に関する情報を有する。
【0070】選択されたエントリからのデータは、マル
チプレクサ(MUX)718を介してラッチ720に転
送される。MUX718は、データがGPRエントリま
たはリネーム・レジスタ・エントリのどちらから、ラッ
チ720に転送されるかを選択するために使用される。
そのために、ポインタ・キュー・エントリのR/Aビッ
トが、MUX718選択信号線への入力として提供され
る。このR/Aビットがセットされている場合、GPR
データが選択される。R/Aビットがリセットされてい
る場合、リネーム・レジスタ・データが選択される。
【0071】続くクロック・サイクルにて、データがラ
ッチ720からデータ・キュー722に転送される。適
切なデータ・アライメントを維持するために、タグを用
いて、データを受信するためのデータ・キュー722内
の適切なエントリを選択する。データ・キュー722内
のこのエントリは更に、実アドレス・キュー712内に
記憶される適切な実アドレスに対応する。これは次の例
に関連して詳述される。命令がLSU702によりタグ
識別子"06"を割当てられると仮定しよう。更に、タグ
がLSU702から転送されるとき、第4のエントリが
タグ・キュー704内の次に使用可能なエントリと仮定
しよう。従って、タグ"06"がLSU702によりタグ
・キュー704の第4のエントリに書込まれる。アドレ
ス変換の後、DCMMU724が実アドレス・キュー7
12にタグと一緒に、ストア命令により目標とされたキ
ャッシュ位置の実アドレスを転送する。LSU制御論理
は、この実アドレスのタグを、タグ・キュー704に記
憶されるタグと比較する。比較はこの場合、タグ"06"
が前述のように、タグ・キュー704の第4のエントリ
に記憶されていることを示す。従って、LSU制御論理
は、タグ"06"を割当てられたストア命令のための実ア
ドレスを、実アドレス・キュー712の第4のエントリ
に書込む。同様に、タグ"06"を有するストア命令のデ
ータが、データ・キュー722に書込まれるとき、LS
U制御論理は最初にタグ・キュー704を走査し、タ
グ"06"がその第4のエントリに記憶されていると判断
し、データをラッチ720からデータ・キュー722の
第4のエントリに書込む。もちろん、当業者であれば、
データ・アライメントを維持する他の技術も、設計上の
選択次第で、容易に適応可能であることが理解できよ
う。
【0072】この時点で、前述の実施例の回路がパイプ
ライン化され、複数のストア命令のための実アドレス及
びデータが、それぞれ実アドレス・キュー712及びデ
ータ・キュー722内のエントリに待ち行列化されるこ
とが理解できよう。結果的に、完了時に、ストア命令が
GPRをアクセスする必要がない。代わりに、完了時、
適切なストア・キュー・エントリが完了とマークされ、
キャッシュにプログラム順序で転送される。要求データ
が適切なデータ・キュー・エントリから、実アドレス・
キュー712に記憶される対応するキャッシュ・アドレ
スと共にキャッシュに転送される。
【0073】図16及び図17では、本発明の実施例の
動作を表すフローチャートが示される。ステップ110
2で、ストア命令がLSU論理にディスパッチされる。
解読された命令は、ストア命令に対して要求されるデー
タを有するアーキテクチャ・レジスタをソースとして指
定する。対応するGPRエントリがこのデータに対して
まだ更新されていない場合、対応するリネーム・レジス
タ・ポインタが、前述のように、リネーム論理から獲得
される。フローは次にステップ1104に移行し、そこ
で命令が実行され、解読された命令データから有効アド
レスが生成される。同時に、タグもまたLSU制御論理
により生成される。ステップ1106で、有効アドレス
及びタグが、実アドレスの計算のために、データ・キャ
ッシュ・メモリ管理ユニット(DCMMU)724に送
信される。DCMMUにより実アドレスが計算される
と、それがステップ1108で、タグと一緒にLSU制
御論理に戻される。LSU制御論理は、ステップ111
0で、DCMMUからのタグをタグ・キュー704のタ
グと比較し、対応する実アドレス・キュー・エントリに
DCMMUからの実アドレスをロードする。換言する
と、特定のストア命令のタグが、第4のタグ・キュー・
エントリ内に記憶されている場合、ステップ1110
で、DCMMUからの実アドレスが、実アドレス・キュ
ー712の第4のエントリに記憶される。
【0074】ステップ1104の完了後、プロセッサは
ステップ1112にも継続し、そこでタグ・キュー及び
ポインタ・キューに、ステップ1104で生成されたタ
グ及びアーキテクチャ/リネーム・ファイル・ポインタ
がそれぞれロードされる。通常、有効アドレス制御キュ
ー及び終了キューが、それぞれステップ1116及び1
118でロードされる。
【0075】ステップ1114で、LSU制御論理が、
関連ストア命令に対するストア・ポインタ・キュー・エ
ントリ内のR/Aビットをチェックし、ストア命令によ
り要求されたデータがGPRエントリ内に記憶されてい
るか否かを判断する。記憶されていない場合、システム
はステップ1120に移行し、要求データに対応するリ
ネーム・エントリが有効か否かをチェックする。ストア
命令により要求されたデータがGPRエントリ内に存在
せず、有効でない場合、ステップ1122で、プロセッ
サはステップ1120にループして戻る。ステップ11
20で、リネーム・エントリ内のデータが有効な場合、
フローはステップ1124に移行し、ポインタ・キュー
からのリネーム・ポインタを用いて、リネーム・レジス
タ・ファイルが読出される。ステップ1114で、スト
ア命令により要求されたデータがGPRエントリ内に存
在する場合、フローはステップ1126に移行し、対応
するGPRレジスタ・ファイルが、ポインタ・キューか
らのGPRポインタを用いて読出される。
【0076】リネーム・レジスタ・ファイルまたはGP
Rレジスタ・ファイルのいずれかを読出した後、フロー
はステップ1128に移行し、対応するリネーム/GP
Rレジスタ・ファイルが、対応するストア命令に対する
ポインタ・キューからのR/Aビットにもとづき選択さ
れる。ポインタ・キュー及びタグ・キュー内のタグが比
較され、マルチプレクサからデータを受信する対応する
データ・キュー・エントリが決定される。関連ストア命
令のタグがタグ・キューの第4のエントリ内に存在する
場合、リネーム・レジスタ・ファイルまたはGPRレジ
スタ・ファイルから読出されたデータは、データ・キュ
ー内の第4のエントリに書込まれる。同時に、ポインタ
・キュー・エントリがポインタ・キューから除去され
る。
【0077】ステップ1130でデータがデータ・キュ
ー・エントリに書込まれると、プロセッサはステップ1
132に移行し、そこでストア命令が終了される準備が
整ったか否かが判断される。この動作のために、LSU
論理が終了キュー・タグを走査し、それらのタグをタグ
・キュー内のタグと比較する。本発明の1バージョンで
は、1サイクル内に2つの下位の終了キュー・エントリ
だけが走査される。しかしながら、これは設計上の選択
の問題であり、より多くのまたは少ない終了キュー・エ
ントリが1サイクル内で走査されてもよい。特定の終了
キューからのタグがタグ・キュー内のタグと比較され、
終了キューから検索されたタグに対応するタグ・キュー
・エントリが決定される。終了キューからの特定のタグ
が第4のタグ・キュー・エントリ内で見い出されると、
プロセッサは有効アドレス制御キュー、実アドレス・キ
ュー及びデータ・キュー内の、対応する第4のエントリ
をチェックする。これらの対応するエントリの各々に対
して、プロセッサはステップ1134で、有効ビットが
セットされているか否かを判断する。セットされていな
い場合、プロセッサはステップ1132にループして戻
り、前述の3つのキューのそれぞれの対応するエントリ
に対して、有効ビットがセットされるまでステップ11
32及び1134を繰り返す。
【0078】その後、フローはステップ1136に移行
し、有効アドレス制御キューからのIIDを完了ユニッ
ト・キュー内の対応するIIDと比較することにより、
ストア命令が完了される。同時に、対応する終了キュー
・エントリが除去される。ステップ1138で、プロセ
ッサは完了ユニットからの完了を待機する。完了時に、
対応するエントリは、プロセッサがデータをデータ・キ
ューからキャッシュ・メモリに転送する準備が整ったこ
とを示す、特定の制御ビットをセットされる。本発明の
この実施例では、データ・キューからキャッシュへのデ
ータの実際の転送は、プロセッサ上で発生し得る様々な
要因により、対応するストア命令が完了としてマークさ
れた後、複数サイクルを要し得る。ステップ1140
で、適切な有効アドレス制御キュー・エントリがそのC
ビットをセットすることにより、完了とマークされる。
【0079】ステップ1142で、プロセッサはDCM
MUに、実アドレス、有効アドレス、命令ID、及びデ
ータをデータ・キューからキャッシュに転送するために
必要とされる他の制御信号を送信する。最後に、ステッ
プ1144で、完了されたストア命令に対応するタグ・
キュー・エントリ、有効アドレス制御キュー・エント
リ、実アドレス・キュー・エントリ、データ・キュー・
エントリが、それらのそれぞれのキューから除去され、
続いてディスパッチされるストア命令のために空間を解
放する。
【0080】図18は、前述の実施例で述べられた回路
の動作を示すタイミング図である。図18のタイミング
図について、図1及び図9に示されるプロセッサのブロ
ック図を参照しながら述べることにする。サイクル1
で、ストア命令が命令キャッシュ14からディスパッチ
され、ディスパッチ・ユニット46により解読される。
解読された命令は、次にロード/ストア・ユニット(L
SU)28(図9では702)に転送される。サイクル
2の前半で、LSU28が命令の有効アドレス(EA)
を計算する。当業者であれば、メモリ・アドレス指定の
異なるモード、及び有効アドレスと実アドレスとの違い
について精通していることであろう。本発明は多数のメ
モリ・アドレス指定方式に容易に適用可能であり、それ
らのいずれかが設計上の選択により使用され得る。本発
明は、IBM社から提供される"PowerPC"プロセ
ッサ・ファミリにより採用されるメモリ・アドレス指定
方式に関して述べられる。こうしたメモリ・アドレス指
定モードは、市販の刊行物、例えばIBM社から提供さ
れる"PowerPC Microprocessor Family: The Programmin
g Environments"(発行番号MPRPPCFPE-01)で詳述され
ている。
【0081】サイクル2ではまた、命令のタグがLSU
28により生成される。有効アドレス及び命令タグがメ
モリ管理ユニット(DCMMU)に転送され、サイクル
の終了時に実アドレスが計算される。
【0082】サイクル3では、ポインタ・キュー706
及びタグ・キュー704が、LSU28により更新され
る。これらのキューに転送される情報については既に述
べた。また実アドレスが、データ・キャッシュ16内の
メモリ管理ユニットから戻される。サイクル3では更
に、GPRがアクセスされる(ストア命令のデータがG
PR内に存在すると仮定する)。タイミング上の理由か
ら、このデータをデータ・キューに転送する前に、1サ
イクルの間ラッチすることが望ましい。従って、この実
施例では、LSU制御論理がサイクル4でFXUストア
有効信号を生成し、データをラッチ720にラッチす
る。
【0083】サイクル4では、命令終了信号が生成され
る。前述のように、終了キューがストア命令を終了する
ために使用される。これは固有のストア・タグを含む。
終了キュー内の各エントリが走査されて、終了キュー・
エントリのタグがタグ・キュー内のタグと比較される。
対応するタグ・キュー・エントリの有効ビットがセット
されている場合、有効アドレス制御キューからの対応す
るIIDが終了される。1実施例では、終了キューがポ
インタ・キューのように処理され、下位の2つのエント
リが走査される。しかしながら、前述のように、ストア
命令は非プログラム順序で終了され得る。終了信号は完
了ユニットに送信され、ストア命令が次に完了キュー内
で完了される命令となるとき、そのストア命令が完了さ
れ得ることを示す。
【0084】サイクル5では、ストア命令データがラッ
チ720からデータ・キュー722に転送される。デー
タをデータ・キュー722内の適切なエントリに位置整
合する1つの好適な方法については既に述べた。この時
点すなわちサイクル5で、ストア命令は完了の準備が整
う。なぜなら、データがサイクル4で、すなわち命令が
終了されるサイクルで、マルチプレクサからロードされ
ているからである。
【0085】完了ユニットは1サイクル内で、複数の命
令を完了できる。前述のように、完了は単に、ストア・
キュー内の4つのエントリを完了としてマークするだけ
であるが、これはこれらがデータ・キューに送信され得
ることを意味する。各エントリの完了ビットは、有効ア
ドレス制御キュー内に保持される。LSUはキャッシュ
が使用可能になると(すなわち、より高い優先順位の要
求により使用中でなければ)、最も古い完了済みストア
・キュー・エントリをキャッシュに送信する。
【0086】以上から、当業者であれば、リネーム・レ
ジスタ・ファイル・データをアクセスすることにより、
密結合ループ内の複数のストア命令がより効率的に完了
され、それにより、完了バッファがフル状態であること
により引き起こされるディスパッチ停止の回数が低減さ
れることが明らかであろう。本発明は図示の実施例に従
い述べられたが、当業者であれば、本発明の趣旨及び範
囲内において、これらの実施例の変形が存在し得ること
が理解できよう。従って、本発明は4つのストア命令を
1度に完了する内容について述べられたが、当業者であ
れば、本発明の趣旨及び範囲内において、任意の数のス
トア命令が1度に完了され得ることが理解できよう。従
って、当業者によれば、本発明の趣旨及び範囲から逸脱
すること無しに、多くの変更が可能であろう。
【0087】まとめとして、本発明の構成に関して以下
の事項を開示する。
【0088】(1)スーパスカラ・プロセッサでストア
命令を処理する方法であって、ディスパッチ・ユニット
からストア命令をディスパッチするステップと、前記ス
トア命令を実行し、前記ストア命令により目標とされる
データを記憶する実アドレス・メモリ位置、及び前記デ
ータを含むレジスタ・ファイル内のエントリを決定する
ステップと、前記ストア命令が完了する前に、前記デー
タを前記レジスタ・ファイル内の前記エントリからデー
タ・キューに転送するステップと、前記ストア命令の完
了時に、前記データを前記データ・キューからキャッシ
ュ・メモリに転送するステップとを含む、方法。 (2)前記プロセッサが1クロック・サイクルの間に、
複数のストア・データを、前記データ・キュー内の複数
のエントリから、前記キャッシュ・メモリ内の対応する
位置に転送する、前記(1)記載の方法。 (3)前記レジスタ・ファイルからのデータの転送が、
アーキテクチャ・レジスタ・ファイル及びリネーム・レ
ジスタ・ファイルからのデータを多重化するステップを
含む、前記(1)記載の方法。 (4)命令ディスパッチ・ユニット、アーキテクチャ・
レジスタ・ファイル、リネーム・レジスタ・ファイル、
ロード/ストア・ユニット、完了ユニット及びキャッシ
ュ・メモリを有するスーパスカラ・プロセッサで、スト
ア命令を処理する装置であって、前記ストア命令に対応
するエントリを有し、前記エントリが前記ストア命令に
より要求されたデータを含む、前記アーキテクチャ・レ
ジスタ・ファイル及び前記リネーム・レジスタ・ファイ
ル内のエントリを指し示すポインタを含む、ポインタ・
キューと、前記アーキテクチャ・レジスタ・ファイル及
び前記リネーム・レジスタ・ファイル上の読出しポート
に接続され、データを前記レジスタ・ファイルの一方か
ら、前記キャッシュ・メモリに接続されるデータ・キュ
ー内のエントリに転送するマルチプレクサとを含む、装
置。 (5)前記ポインタ・キュー内の前記エントリが、前記
ストア命令により要求されたデータが、前記アーキテク
チャ・レジスタ・ファイルまたは前記リネーム・レジス
タ・ファイル内の前記エントリに記憶されているか否か
を示すビットを含む、前記(4)記載の装置。 (6)前記マルチプレクサの選択信号線が前記ビットに
応答する、前記(5)記載の装置。 (7)前記ストア命令により要求されたデータが、前記
命令が完了される前の該命令の終了時に、前記マルチプ
レクサから前記データ・キュー内のエントリに転送され
る、前記(4)記載の装置。 (8)前記ストア命令の完了時、前記命令により要求さ
れたデータが、前記データ・キュー内の前記エントリか
ら前記キャッシュ・メモリに転送される、前記(7)記
載の装置。 (9)複数のストア命令からのデータが、1クロック・
サイクルの間に、前記データ・キューに転送される、前
記(8)記載の装置。 (10)前記ストア命令を一意的に識別するタグを含む
タグ・キューを含む、前記(4)記載の装置。
【図面の簡単な説明】
【図1】本発明に従うコンピュータ・システムのブロッ
ク図である。
【図2】処理システム内でストア命令を完了する従来の
システムを示す図である。
【図3】図2のデータ・フローの動作を示すタイミング
図である。
【図4】本発明に従い、単一のLSUがGPR及びFP
Rをアクセスし、複数のストア命令を完了するデータ・
フローの第1の実施例を示す図である。
【図5】本発明に従いストア命令を完了するデータ・フ
ローを示すフローチャートである。
【図6】図4のデータ・フローの動作を示すタイミング
図である。
【図7】本発明に従い、2個のLSUがGPR及びFP
Rをアクセスし、複数のストア命令を完了するデータ・
フローの第2の実施例を示す図である。
【図8】図7のデータ・フローの動作を示すタイミング
図である。
【図9】GPR、FPR及びリネームをアクセスする、
本発明の実施例に従うプロセッサのブロック図である。
【図10】図9のプロセッサ内で示される実施例におい
て使用されるデータ・キューの論理内容を示す図であ
る。
【図11】図9のプロセッサ内で示される実施例におい
て使用されるタグ・キューの論理内容を示す図である。
【図12】図9のプロセッサ内で示される実施例におい
て使用されるストア・ポインタ・キューの論理内容を示
す図である。
【図13】図9のプロセッサ内で示される実施例におい
て使用される終了キューの論理内容を示す図である。
【図14】図9のプロセッサ内で示される実施例におい
て使用される有効アドレス制御キューの論理内容を示す
図である。
【図15】図9のプロセッサ内で示される実施例におい
て使用される実アドレス(RA)・キューの論理内容を
示す図である。
【図16】本発明の実施例に従うプロセッサの動作を示
すフローチャートである。
【図17】本発明の実施例に従うプロセッサの動作を示
すフローチャートである。
【図18】本発明の実施例に従うプロセッサのタイミン
グ図である。
【符号の説明】
10 プロセッサ 11 システム・バス 12 バス・インタフェース・ユニット 14、104 命令キャッシュ 16、122 データ・キャッシュ 18 シーケンサ・ユニット 20 分岐ユニット 22 固定小数点ユニットA(FXUA) 24 固定小数点ユニットB(FXUB) 26 複合固定小数点ユニット(CFXU) 28 ロード/ストア・ユニット(LSU) 30 浮動小数点ユニット(FPU) 32 汎用レジスタ(GPR) 34 固定小数点リネーム・バッファ 36 浮動小数点レジスタ(FPR) 38 浮動小数点リネーム・バッファ 39 システム・メモリ 40 特殊目的レジスタ(SPR) 42 キャリー・ビット(CA)・レジスタ 46 ディスパッチ・ユニット 48 完了ユニット 702 ロード/ストア・ユニット(LSU) 704 タグ・キュー(TAGQ) 706 ポインタ・キュー(PTRQ) 708 有効アドレス制御キュー(EA/CNTLQ) 710 終了キュー(FINQ) 712 実アドレス・キュー(RAQ) 714 GPR 716 リネーム・レジスタ・ファイル 718 マルチプレクサ(MUX) 720 ラッチ 722 データ・キュー(DATAQ)
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ジム・イー・フィリップス アメリカ合衆国78681、テキサス州ラウン ド・ロック、レーン、ピン・オーク 1602 (72)発明者 ディキュー・ニューイェン アメリカ合衆国78728、テキサス州オース ティン、ウェルドン・レーン 14308

Claims (10)

    【特許請求の範囲】
  1. 【請求項1】スーパスカラ・プロセッサでストア命令を
    処理する方法であって、 ディスパッチ・ユニットからストア命令をディスパッチ
    するステップと、 前記ストア命令を実行し、前記ストア命令により目標と
    されるデータを記憶する実アドレス・メモリ位置、及び
    前記データを含むレジスタ・ファイル内のエントリを決
    定するステップと、 前記ストア命令が完了する前に、前記データを前記レジ
    スタ・ファイル内の前記エントリからデータ・キューに
    転送するステップと、 前記ストア命令の完了時に、前記データを前記データ・
    キューからキャッシュ・メモリに転送するステップとを
    含む、方法。
  2. 【請求項2】前記プロセッサが1クロック・サイクルの
    間に、複数のストア・データを、前記データ・キュー内
    の複数のエントリから、前記キャッシュ・メモリ内の対
    応する位置に転送する、請求項1記載の方法。
  3. 【請求項3】前記レジスタ・ファイルからのデータの転
    送が、アーキテクチャ・レジスタ・ファイル及びリネー
    ム・レジスタ・ファイルからのデータを多重化するステ
    ップを含む、請求項1記載の方法。
  4. 【請求項4】命令ディスパッチ・ユニット、アーキテク
    チャ・レジスタ・ファイル、リネーム・レジスタ・ファ
    イル、ロード/ストア・ユニット、完了ユニット及びキ
    ャッシュ・メモリを有するスーパスカラ・プロセッサ
    で、ストア命令を処理する装置であって、 前記ストア命令に対応するエントリを有し、前記エント
    リが前記ストア命令により要求されたデータを含む、前
    記アーキテクチャ・レジスタ・ファイル及び前記リネー
    ム・レジスタ・ファイル内のエントリを指し示すポイン
    タを含む、ポインタ・キューと、 前記アーキテクチャ・レジスタ・ファイル及び前記リネ
    ーム・レジスタ・ファイル上の読出しポートに接続さ
    れ、データを前記レジスタ・ファイルの一方から、前記
    キャッシュ・メモリに接続されるデータ・キュー内のエ
    ントリに転送するマルチプレクサとを含む、装置。
  5. 【請求項5】前記ポインタ・キュー内の前記エントリ
    が、前記ストア命令により要求されたデータが、前記ア
    ーキテクチャ・レジスタ・ファイルまたは前記リネーム
    ・レジスタ・ファイル内の前記エントリに記憶されてい
    るか否かを示すビットを含む、請求項4記載の装置。
  6. 【請求項6】前記マルチプレクサの選択信号線が前記ビ
    ットに応答する、請求項5記載の装置。
  7. 【請求項7】前記ストア命令により要求されたデータ
    が、前記命令が完了される前の該命令の終了時に、前記
    マルチプレクサから前記データ・キュー内のエントリに
    転送される、請求項4記載の装置。
  8. 【請求項8】前記ストア命令の完了時、前記命令により
    要求されたデータが、前記データ・キュー内の前記エン
    トリから前記キャッシュ・メモリに転送される、請求項
    7記載の装置。
  9. 【請求項9】複数のストア命令からのデータが、1クロ
    ック・サイクルの間に、前記データ・キューに転送され
    る、請求項8記載の装置。
  10. 【請求項10】前記ストア命令を一意的に識別するタグ
    を含むタグ・キューを含む、請求項4記載の装置。
JP00624099A 1998-01-30 1999-01-13 スーパスカラ・プロセッサでストア命令を処理する方法及び装置 Expired - Fee Related JP3155519B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/016654 1998-01-30
US09/016,654 US6192461B1 (en) 1998-01-30 1998-01-30 Method and apparatus for facilitating multiple storage instruction completions in a superscalar processor during a single clock cycle

Publications (2)

Publication Number Publication Date
JPH11282678A true JPH11282678A (ja) 1999-10-15
JP3155519B2 JP3155519B2 (ja) 2001-04-09

Family

ID=21778257

Family Applications (1)

Application Number Title Priority Date Filing Date
JP00624099A Expired - Fee Related JP3155519B2 (ja) 1998-01-30 1999-01-13 スーパスカラ・プロセッサでストア命令を処理する方法及び装置

Country Status (6)

Country Link
US (1) US6192461B1 (ja)
EP (1) EP0933697A2 (ja)
JP (1) JP3155519B2 (ja)
KR (1) KR100309309B1 (ja)
CN (1) CN100557562C (ja)
TW (1) TW408269B (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008269601A (ja) * 2007-04-18 2008-11-06 Internatl Business Mach Corp <Ibm> マイクロプロセッサにおける種々の命令タイプを対象としたユニバーサル・レジスタ・リネーム機構

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6721874B1 (en) * 2000-10-12 2004-04-13 International Business Machines Corporation Method and system for dynamically shared completion table supporting multiple threads in a processing system
US6957323B2 (en) * 2001-11-14 2005-10-18 Elan Research, Inc. Operand file using pointers and reference counters and a method of use
US6862639B2 (en) * 2002-03-11 2005-03-01 Harris Corporation Computer system including a receiver interface circuit with a scatter pointer queue and related methods
US6941428B2 (en) * 2002-09-25 2005-09-06 International Business Machines Corporation Memory controller optimization
US20040193846A1 (en) * 2003-03-28 2004-09-30 Sprangle Eric A. Method and apparatus for utilizing multiple opportunity ports in a processor pipeline
US7366851B2 (en) * 2004-08-19 2008-04-29 International Business Machines Corporation Processor, method, and data processing system employing a variable store gather window
CN100367213C (zh) * 2004-09-30 2008-02-06 黄英哲 具有自动备份和还原寄存器内数据的系统和方法
US8713286B2 (en) * 2005-04-26 2014-04-29 Qualcomm Incorporated Register files for a digital signal processor operating in an interleaved multi-threaded environment
KR100723212B1 (ko) 2005-12-09 2007-05-29 엘지전자 주식회사 화면 분할 표시 기능을 구비한 전자 단말기 및 그 화면표시 방법
US7774563B2 (en) * 2007-01-09 2010-08-10 International Business Machines Corporation Reducing memory access latency for hypervisor- or supervisor-initiated memory access requests
CN100583030C (zh) * 2007-12-29 2010-01-20 中国科学院计算技术研究所 一种risc处理器及其数据访存方法
US9104532B2 (en) * 2012-12-14 2015-08-11 International Business Machines Corporation Sequential location accesses in an active memory device
CN103984530B (zh) * 2014-05-15 2016-08-17 中国航天科技集团公司第九研究院第七七一研究所 一种提高store指令执行效率的流水线结构及方法
US10372458B2 (en) * 2015-04-01 2019-08-06 Huawei Technologies Co., Ltd Method and apparatus for a self-clocked, event triggered superscalar processor
US20170364356A1 (en) * 2016-06-16 2017-12-21 International Business Machines Corporation Techniques for implementing store instructions in a multi-slice processor architecture
CN107480209A (zh) * 2017-07-28 2017-12-15 上海德衡数据科技有限公司 一种基于空时自适应处理的多路数据存储和处理系统原型
CN116880908B (zh) * 2023-09-07 2023-11-10 北京开源芯片研究院 一种指令处理方法、装置、电子设备及可读存储介质

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4594660A (en) * 1982-10-13 1986-06-10 Honeywell Information Systems Inc. Collector
JPH02183333A (ja) * 1989-01-10 1990-07-17 Mitsubishi Electric Corp データ処理装置
US5696955A (en) * 1994-06-01 1997-12-09 Advanced Micro Devices, Inc. Floating point stack and exchange instruction
US5621896A (en) * 1994-06-01 1997-04-15 Motorola, Inc. Data processor with unified store queue permitting hit under miss memory accesses
DE69506623T2 (de) * 1994-06-03 1999-07-22 Motorola Inc Datenprozessor mit einer Ausführungseinheit zur Durchführung von Ladebefehlen und Verfahren zu seinem Betrieb
US5887152A (en) * 1995-04-12 1999-03-23 Advanced Micro Devices, Inc. Load/store unit with multiple oldest outstanding instruction pointers for completing store and load/store miss instructions
US5926645A (en) * 1997-07-22 1999-07-20 International Business Machines Corporation Method and system for enabling multiple store instruction completions in a processing system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008269601A (ja) * 2007-04-18 2008-11-06 Internatl Business Mach Corp <Ibm> マイクロプロセッサにおける種々の命令タイプを対象としたユニバーサル・レジスタ・リネーム機構

Also Published As

Publication number Publication date
JP3155519B2 (ja) 2001-04-09
US6192461B1 (en) 2001-02-20
CN1224871A (zh) 1999-08-04
KR100309309B1 (ko) 2001-11-15
CN100557562C (zh) 2009-11-04
EP0933697A2 (en) 1999-08-04
KR19990066800A (ko) 1999-08-16
TW408269B (en) 2000-10-11

Similar Documents

Publication Publication Date Title
US5611063A (en) Method for executing speculative load instructions in high-performance processors
JP3155519B2 (ja) スーパスカラ・プロセッサでストア命令を処理する方法及び装置
US5553256A (en) Apparatus for pipeline streamlining where resources are immediate or certainly retired
US5761476A (en) Non-clocked early read for back-to-back scheduling of instructions
KR100335745B1 (ko) 고성능의 추론적인 오정렬 로드 연산
US6336183B1 (en) System and method for executing store instructions
US8074060B2 (en) Out-of-order execution microprocessor that selectively initiates instruction retirement early
US5867684A (en) Method and processor that permit concurrent execution of a store multiple instruction and a dependent instruction
US8347068B2 (en) Multi-mode register rename mechanism that augments logical registers by switching a physical register from the register rename buffer when switching between in-order and out-of-order instruction processing in a simultaneous multi-threaded microprocessor
US5913054A (en) Method and system for processing a multiple-register instruction that permit multiple data words to be written in a single processor cycle
JPH10124391A (ja) マージされたストア・オペレーションによってストア集束を行うためのプロセッサ及び方法
JP2000259412A (ja) ストア命令転送方法およびプロセッサ
US6463524B1 (en) Superscalar processor and method for incrementally issuing store instructions
US6393550B1 (en) Method and apparatus for pipeline streamlining where resources are immediate or certainly retired
US6378062B1 (en) Method and apparatus for performing a store operation
US5805849A (en) Data processing system and method for using an unique identifier to maintain an age relationship between executing instructions
JP2682812B2 (ja) オペレーションの処理システム及び方法
JP3600467B2 (ja) アウト・オブ・オーダ論理条件レジスタ処理のためのデータ処理システム及び方法
US6324640B1 (en) System and method for dispatching groups of instructions using pipelined register renaming
US6970996B1 (en) Operand queue for use in a floating point unit to reduce read-after-write latency and method of operation
JP3160259B2 (ja) 命令実行の並列性を高める方法および装置
US6581155B1 (en) Pipelined, superscalar floating point unit having out-of-order execution capability and processor employing the same
US5678016A (en) Processor and method for managing execution of an instruction which determine subsequent to dispatch if an instruction is subject to serialization
US6134645A (en) Instruction completion logic distributed among execution units for improving completion efficiency
US6829699B2 (en) Rename finish conflict detection and recovery

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees