JPH10124391A - マージされたストア・オペレーションによってストア集束を行うためのプロセッサ及び方法 - Google Patents
マージされたストア・オペレーションによってストア集束を行うためのプロセッサ及び方法Info
- Publication number
- JPH10124391A JPH10124391A JP9265555A JP26555597A JPH10124391A JP H10124391 A JPH10124391 A JP H10124391A JP 9265555 A JP9265555 A JP 9265555A JP 26555597 A JP26555597 A JP 26555597A JP H10124391 A JPH10124391 A JP H10124391A
- Authority
- JP
- Japan
- Prior art keywords
- store
- store instruction
- data
- instruction
- cache memory
- 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 description 57
- 230000015654 memory Effects 0.000 claims abstract description 92
- 238000003860 storage Methods 0.000 claims abstract description 12
- 230000004044 response Effects 0.000 claims abstract description 8
- 238000012545 processing Methods 0.000 claims description 27
- 230000008685 targeting Effects 0.000 claims description 9
- 239000000872 buffer Substances 0.000 description 30
- 230000008569 process Effects 0.000 description 24
- 238000010586 diagram Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 239000011159 matrix material Substances 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 3
- 238000013519 translation Methods 0.000 description 3
- 101001009517 Homo sapiens Probable G-protein coupled receptor 32 Proteins 0.000 description 2
- 102100030321 Probable G-protein coupled receptor 32 Human genes 0.000 description 2
- 238000013479 data entry Methods 0.000 description 2
- 101000867232 Escherichia coli Heat-stable enterotoxin II Proteins 0.000 description 1
- 101000867205 Escherichia coli Heat-stable enterotoxin ST-2 Proteins 0.000 description 1
- 101000921780 Solanum tuberosum Cysteine synthase Proteins 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 102100021145 fMet-Leu-Phe receptor Human genes 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000004377 microelectronic Methods 0.000 description 1
- 238000012546 transfer 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0844—Multiple simultaneous or quasi-simultaneous cache accessing
- G06F12/0855—Overlapped cache accessing, e.g. pipeline
-
- 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/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30043—LOAD or STORE instructions; Clear instruction
-
- 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/30181—Instruction operation extension or modification
-
- 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/30181—Instruction operation extension or modification
- G06F9/30189—Instruction operation extension or modification according to execution mode, e.g. mode flag
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Memory System (AREA)
Abstract
(57)【要約】
【課題】ストア命令をマージすることによってストア集
束を行うプロセッサ及び方法を提供する。 【解決手段】キャッシュ・メモリにおける1つ又は複数
のロケーションをターゲットとする第1及び第2ストア
命令が識別される。キャッシュ・メモリがビジーである
かどうかの決定が行われる。キャッシュ・メモリがビジ
ーであるという決定に応答して、第1及び第2ストア命
令により指定されたストア・オペレーションがマージさ
れ、その第1及び第2ストア命令により指定されたスト
ア・オペレーションを包含する単一のストア・オペレー
ションにされる。しかる後、その単一のストア・オペレ
ーションが遂行される。
束を行うプロセッサ及び方法を提供する。 【解決手段】キャッシュ・メモリにおける1つ又は複数
のロケーションをターゲットとする第1及び第2ストア
命令が識別される。キャッシュ・メモリがビジーである
かどうかの決定が行われる。キャッシュ・メモリがビジ
ーであるという決定に応答して、第1及び第2ストア命
令により指定されたストア・オペレーションがマージさ
れ、その第1及び第2ストア命令により指定されたスト
ア・オペレーションを包含する単一のストア・オペレー
ションにされる。しかる後、その単一のストア・オペレ
ーションが遂行される。
Description
【0001】
【発明の属する技術分野】本発明は、概して云えば、デ
ータ処理するための方法及び装置に関するものであり、
詳しくいえば、データ処理システムにおけるメモリにデ
ータを記憶するためのプロセッサ及び方法に関するもの
である。更に詳しくいえば、本発明は、ストア命令をマ
ージすることによってストア集束するためのプロセッサ
及び方法に関するものである。
ータ処理するための方法及び装置に関するものであり、
詳しくいえば、データ処理システムにおけるメモリにデ
ータを記憶するためのプロセッサ及び方法に関するもの
である。更に詳しくいえば、本発明は、ストア命令をマ
ージすることによってストア集束するためのプロセッサ
及び方法に関するものである。
【0002】
【従来の技術】代表的な従来技術のプロセッサは、それ
ぞれが対応するタイプの命令を実行するように最適化さ
れた複数の実行ユニットを含む。従って、例えば、プロ
セッサは、固定小数点命令を実行するための固定小数点
ユニット(FXU)、浮動小数点命令を実行するための
浮動小数点ユニット(FPU)、ブランチ命令を実行す
るためのブランチ処理ユニット(BPU)、及びロード
命令及びストア命令を実行するためのロード/ストア・
ユニット(LSU)を含み得るものである。
ぞれが対応するタイプの命令を実行するように最適化さ
れた複数の実行ユニットを含む。従って、例えば、プロ
セッサは、固定小数点命令を実行するための固定小数点
ユニット(FXU)、浮動小数点命令を実行するための
浮動小数点ユニット(FPU)、ブランチ命令を実行す
るためのブランチ処理ユニット(BPU)、及びロード
命令及びストア命令を実行するためのロード/ストア・
ユニット(LSU)を含み得るものである。
【0003】ストア命令がプロセッサによる実行のため
にメモリから検索される時、先ず、その命令はデコード
され、その命令がディスパッチされるべき実行ユニット
を決定する。そのストア命令は、それがデコードされた
後、実行のためにLSUにディスパッチされる。ストア
命令の実行は、そのストア命令に関連したデータが書き
込まれるべきメモリ・ロケーションの有効アドレス(E
A)を計算することを必要とする。ストア命令が終了し
た後、即ち、そのストア命令のEAが計算された後、そ
のストア命令は、そのストア命令に関連したデータを指
定のメモリ・ロケーションに書き込むための記憶待ち行
列にそのデータを託することによって完了する。
にメモリから検索される時、先ず、その命令はデコード
され、その命令がディスパッチされるべき実行ユニット
を決定する。そのストア命令は、それがデコードされた
後、実行のためにLSUにディスパッチされる。ストア
命令の実行は、そのストア命令に関連したデータが書き
込まれるべきメモリ・ロケーションの有効アドレス(E
A)を計算することを必要とする。ストア命令が終了し
た後、即ち、そのストア命令のEAが計算された後、そ
のストア命令は、そのストア命令に関連したデータを指
定のメモリ・ロケーションに書き込むための記憶待ち行
列にそのデータを託することによって完了する。
【0004】データを記憶及び検索するために必要なサ
イクル数を少なくするために、プロセッサはオンボード
の高レベル・データ・キャッシュを備えることが多い。
そのような高レベル・データ・キャッシュは、データ・
アクセスが1サイクル程度のわずかな時間で遂行される
ことを可能にする。キャッシュされたデータに対するデ
ータ・アクセスに関連したデータ待ち時間は最小である
ので、メモリにおける同じダブルワードへの多重連続記
憶に起因したパフォーマンスの非効率化はわずかであ
る。しかし、キャッシュのない、或いは、ストア命令が
キャッシュ禁止又はライト・スルーであるデータ処理シ
ステム構成では、同じダブルワードへの多重連続記憶の
場合、バス・アクセスの付加的な待ち時間のためにパフ
ォーマンスの非効率化が生じる。
イクル数を少なくするために、プロセッサはオンボード
の高レベル・データ・キャッシュを備えることが多い。
そのような高レベル・データ・キャッシュは、データ・
アクセスが1サイクル程度のわずかな時間で遂行される
ことを可能にする。キャッシュされたデータに対するデ
ータ・アクセスに関連したデータ待ち時間は最小である
ので、メモリにおける同じダブルワードへの多重連続記
憶に起因したパフォーマンスの非効率化はわずかであ
る。しかし、キャッシュのない、或いは、ストア命令が
キャッシュ禁止又はライト・スルーであるデータ処理シ
ステム構成では、同じダブルワードへの多重連続記憶の
場合、バス・アクセスの付加的な待ち時間のためにパフ
ォーマンスの非効率化が生じる。
【0005】
【発明が解決しようとする課題】従って、同じダブルワ
ードに対する多重記憶アクセスを遂行するに必要なサイ
クル数を最小にするような、データ処理システムにおけ
るメモリにデータを記憶するための効率的な方法及びシ
ステムを提供することが望ましい。
ードに対する多重記憶アクセスを遂行するに必要なサイ
クル数を最小にするような、データ処理システムにおけ
るメモリにデータを記憶するための効率的な方法及びシ
ステムを提供することが望ましい。
【0006】従って、本発明の目的は、データ処理のた
めの方法及びシステムを提供することにある。
めの方法及びシステムを提供することにある。
【0007】本発明のもう1つの目的は、データ処理シ
ステムにおけるメモリにデータを記憶するための改良さ
れたプロセッサ及び方法を提供することにある。
ステムにおけるメモリにデータを記憶するための改良さ
れたプロセッサ及び方法を提供することにある。
【0008】本発明の更にもう1つの目的は、ストア命
令をマージすることによってストア集束するためのプロ
セッサ及び方法を提供することにある。
令をマージすることによってストア集束するためのプロ
セッサ及び方法を提供することにある。
【0009】
【課題を解決するための手段】上記の目的は、次のよう
にして達成される。キャッシュ・メモリにおける1つ又
は複数のロケーションをターゲットとする第1及び第2
ストア命令が識別される。そのキャッシュ・メモリがビ
ジーであるかどうかの決定が行われる。キャッシュ・メ
モリがビジーであるという決定に応答して、第1及び第
2ストア命令によって指定されたオペレーションがマー
ジされ、その第1及び第2ストア命令によって指定され
たストア・オペレーションを包含する単一のストア・オ
ペレーションになる。しかる後、その単一のストア・オ
ペレーションが遂行される。
にして達成される。キャッシュ・メモリにおける1つ又
は複数のロケーションをターゲットとする第1及び第2
ストア命令が識別される。そのキャッシュ・メモリがビ
ジーであるかどうかの決定が行われる。キャッシュ・メ
モリがビジーであるという決定に応答して、第1及び第
2ストア命令によって指定されたオペレーションがマー
ジされ、その第1及び第2ストア命令によって指定され
たストア・オペレーションを包含する単一のストア・オ
ペレーションになる。しかる後、その単一のストア・オ
ペレーションが遂行される。
【0010】上記の及び更なる目的、特徴、及び例示的
実施例の利点が、以下の詳細な説明において明らかにな
るであろう。
実施例の利点が、以下の詳細な説明において明らかにな
るであろう。
【0011】
【発明の実施の形態】図面、特に、図1を参照すると、
本発明に従って情報を処理するための全体的に10とし
て示されたプロセッサの実施例が示される。その図示の
実施例では、プロセッサ10は単一集積回路スーパスカ
ラ・マイクロプロセッサより成る。従って、後述するよ
うに、プロセッサ10は、種々の実行ユニット、レジス
タ、バッファ、メモリ、及び他の機能的ユニットを含
み、それらはすべて集積回路によって形成される。プロ
セッサ10は、縮小命令セット・コンピュータ(RIS
C)技法に従って動作するIBMマイクロエレクトロニ
クス社から入手可能なマイクロプロセッサのPower
PC(商標)ラインの1つより成るものが望ましい。し
かし、他の適当なプロセッサも利用可能であることは、
以下の説明から、当業者には明なことであろう。図1に
示されるように、プロセッサ10は、そのプロセッサ1
0内のバス・インターフェース・ユニット(BIU)1
2を介してシステム・バス11に結合される。BIU1
2は、バス・アービトレーションに参加することによっ
て、プロセッサ10とメイン・メモリ(図示されてな
い)のようなそのシステム・バス11に結合された他の
装置との間の情報の転送を制御する。プロセッサ10、
システム・バス11、及びそのシステム・バス11に結
合された他の装置が一緒になってホスト・データ処理シ
ステムを形成する。
本発明に従って情報を処理するための全体的に10とし
て示されたプロセッサの実施例が示される。その図示の
実施例では、プロセッサ10は単一集積回路スーパスカ
ラ・マイクロプロセッサより成る。従って、後述するよ
うに、プロセッサ10は、種々の実行ユニット、レジス
タ、バッファ、メモリ、及び他の機能的ユニットを含
み、それらはすべて集積回路によって形成される。プロ
セッサ10は、縮小命令セット・コンピュータ(RIS
C)技法に従って動作するIBMマイクロエレクトロニ
クス社から入手可能なマイクロプロセッサのPower
PC(商標)ラインの1つより成るものが望ましい。し
かし、他の適当なプロセッサも利用可能であることは、
以下の説明から、当業者には明なことであろう。図1に
示されるように、プロセッサ10は、そのプロセッサ1
0内のバス・インターフェース・ユニット(BIU)1
2を介してシステム・バス11に結合される。BIU1
2は、バス・アービトレーションに参加することによっ
て、プロセッサ10とメイン・メモリ(図示されてな
い)のようなそのシステム・バス11に結合された他の
装置との間の情報の転送を制御する。プロセッサ10、
システム・バス11、及びそのシステム・バス11に結
合された他の装置が一緒になってホスト・データ処理シ
ステムを形成する。
【0012】BIU12は、プロセッサ10内の命令キ
ャッシュ及びMMU(メモリ管理ユニット)14並びに
データ・キャッシュ及びMMU16に接続される。命令
キャッシュ及びMMU14並びにデータ・キャッシュ及
びMMU16におけるキャッシュのような高速キャッシ
ュは、プロセッサ10がメイン・メモリからそれらのキ
ャッシュに予め転送されたデータ又は命令のサブセット
に対する比較的高速のアクセス・タイムを得ることを可
能にし、従って、ホスト・データ処理システムの動作速
度を改良する。命令キャッシュ及びMMU14は、更
に、各サイクル時に実行のための命令を命令キャッシュ
及びMMU14から取り出す順次取出装置17に結合さ
れる。その順次取出装置17は、命令キャッシュ及びM
MU14から取り出されたブランチ命令を実行のために
ブランチ処理ユニット(BPU)18に伝送し、プロセ
ッサ10における他の実行回路によって実行するための
順次命令を命令待ち行列19に記憶する。
ャッシュ及びMMU(メモリ管理ユニット)14並びに
データ・キャッシュ及びMMU16に接続される。命令
キャッシュ及びMMU14並びにデータ・キャッシュ及
びMMU16におけるキャッシュのような高速キャッシ
ュは、プロセッサ10がメイン・メモリからそれらのキ
ャッシュに予め転送されたデータ又は命令のサブセット
に対する比較的高速のアクセス・タイムを得ることを可
能にし、従って、ホスト・データ処理システムの動作速
度を改良する。命令キャッシュ及びMMU14は、更
に、各サイクル時に実行のための命令を命令キャッシュ
及びMMU14から取り出す順次取出装置17に結合さ
れる。その順次取出装置17は、命令キャッシュ及びM
MU14から取り出されたブランチ命令を実行のために
ブランチ処理ユニット(BPU)18に伝送し、プロセ
ッサ10における他の実行回路によって実行するための
順次命令を命令待ち行列19に記憶する。
【0013】図示の実施例では、プロセッサ10の実行
回路は、BPU18の他に、固定小数点ユニット(FX
U)22、ロード/ストア・ユニット(LSU)28、
及び浮動小数点ユニット(FPU)30を含む順次命令
を実行するための複数の実行ユニットより成る。実行ユ
ニット22、28、及び30の各々は、一般に、各プロ
セッサ・サイクル中に、特定のタイプの順次命令のうち
の1つ又は複数個の命令を実行する。例えば、FXU2
2は、指定された汎用レジスタ(GPR)32又はGP
Rリネーム・バッファ33から受け取ったソース・オペ
ランドを利用して、加算、減算、AND、OR、及びX
ORのような固定小数点の算術演算及び論理演算を遂行
する。FXU22は、固定小数点命令の実行に続いて、
その命令の結果データをGPRリネーム・バッファ33
に出力する。GPRリネーム・バッファ33は、その結
果データをそのGPRリネーム・バッファ33から1つ
又は複数個のGPR32に転送することによってその命
令が完了するまで、その結果データの一時的記憶を行
う。
回路は、BPU18の他に、固定小数点ユニット(FX
U)22、ロード/ストア・ユニット(LSU)28、
及び浮動小数点ユニット(FPU)30を含む順次命令
を実行するための複数の実行ユニットより成る。実行ユ
ニット22、28、及び30の各々は、一般に、各プロ
セッサ・サイクル中に、特定のタイプの順次命令のうち
の1つ又は複数個の命令を実行する。例えば、FXU2
2は、指定された汎用レジスタ(GPR)32又はGP
Rリネーム・バッファ33から受け取ったソース・オペ
ランドを利用して、加算、減算、AND、OR、及びX
ORのような固定小数点の算術演算及び論理演算を遂行
する。FXU22は、固定小数点命令の実行に続いて、
その命令の結果データをGPRリネーム・バッファ33
に出力する。GPRリネーム・バッファ33は、その結
果データをそのGPRリネーム・バッファ33から1つ
又は複数個のGPR32に転送することによってその命
令が完了するまで、その結果データの一時的記憶を行
う。
【0014】一方、FPU30は、一般に、浮動小数点
レジスタ(FPR)36又はFPRリネーム・バッファ
37から受け取ったソース・オペランドに関して、浮動
小数点乗算及び除算のような単精度及び倍精度の浮動小
数点算術演算及び論理演算を遂行する。FPU30は、
浮動小数点命令の実行から生じたデータを選択されたF
PRリネーム・バッファ37に出力する。FPRリネー
ム・バッファ37は、そのFPRリネーム・バッファ3
7からの結果データを選択されたFPR36に転送する
ことによってそれらの命令を完了するまで、その結果デ
ータを一時的に記憶する。ロード/ストア・ユニット
(LSU)28は、それの名前が意味するように、メモ
リ(即ち、データ・キャッシュ及びMMU16における
データ・キャッシュ、又はメイン・メモリ)から選択さ
れたGPR32又はFPR36にデータをロードする
か、或いは、GPR32、GPRリネーム・バッファ3
3、FPR36、又はFPRリネーム・バッファ37の
選択されたものからメモリにデータをストアする浮動小
数点命令及び固定小数点命令を実行する。
レジスタ(FPR)36又はFPRリネーム・バッファ
37から受け取ったソース・オペランドに関して、浮動
小数点乗算及び除算のような単精度及び倍精度の浮動小
数点算術演算及び論理演算を遂行する。FPU30は、
浮動小数点命令の実行から生じたデータを選択されたF
PRリネーム・バッファ37に出力する。FPRリネー
ム・バッファ37は、そのFPRリネーム・バッファ3
7からの結果データを選択されたFPR36に転送する
ことによってそれらの命令を完了するまで、その結果デ
ータを一時的に記憶する。ロード/ストア・ユニット
(LSU)28は、それの名前が意味するように、メモ
リ(即ち、データ・キャッシュ及びMMU16における
データ・キャッシュ、又はメイン・メモリ)から選択さ
れたGPR32又はFPR36にデータをロードする
か、或いは、GPR32、GPRリネーム・バッファ3
3、FPR36、又はFPRリネーム・バッファ37の
選択されたものからメモリにデータをストアする浮動小
数点命令及び固定小数点命令を実行する。
【0015】プロセッサ10は、それのスーパスカラ・
アーキテクチャのパフォーマンスを更に改良するために
命令のパイプライン実行又は順不同実行を使用する。従
って、命令は、データ依存性が守られる限り、FXU2
2、LSU28、及びFPU30によって任意の順序で
実行可能である。更に、命令は、一連のパイプライン・
ステージにおいて、FXU22、LSU28、及びFP
U30によって処理される。高性能プロセッサには一般
的であるように、各命令は5つの明確なパイプライン・
ステージ、即ち、取出、デコード/ディスパッチ、実
行、終了(finish)、及び完了(complet
ion)において処理される。
アーキテクチャのパフォーマンスを更に改良するために
命令のパイプライン実行又は順不同実行を使用する。従
って、命令は、データ依存性が守られる限り、FXU2
2、LSU28、及びFPU30によって任意の順序で
実行可能である。更に、命令は、一連のパイプライン・
ステージにおいて、FXU22、LSU28、及びFP
U30によって処理される。高性能プロセッサには一般
的であるように、各命令は5つの明確なパイプライン・
ステージ、即ち、取出、デコード/ディスパッチ、実
行、終了(finish)、及び完了(complet
ion)において処理される。
【0016】取出ステージの時、順次取出装置17は1
つ又は複数のメモリ・アドレスと関連した1つ又は複数
の命令を命令キャッシュ及びMMU14から検索する。
命令キャッシュ及びMMU14から取り出された順次命
令は順次取出装置17によって命令待ち行列19に記憶
される。それとは対照的に、順次取出装置17はブラン
チ命令を命令ストリームから除去し(フォルド・アウト
し)、実行のためにそれらをBPU18に送る。BPU
18はブランチ予測機構を含み、その機構は、1つの実
施例では、ブランチが取られるかどうかを予測すること
によって、BPU18が未解決の条件付きブランチ命令
を投機的に実行することを可能にするブランチ・ヒスト
リ・テーブルのような動的予測機構を含む。
つ又は複数のメモリ・アドレスと関連した1つ又は複数
の命令を命令キャッシュ及びMMU14から検索する。
命令キャッシュ及びMMU14から取り出された順次命
令は順次取出装置17によって命令待ち行列19に記憶
される。それとは対照的に、順次取出装置17はブラン
チ命令を命令ストリームから除去し(フォルド・アウト
し)、実行のためにそれらをBPU18に送る。BPU
18はブランチ予測機構を含み、その機構は、1つの実
施例では、ブランチが取られるかどうかを予測すること
によって、BPU18が未解決の条件付きブランチ命令
を投機的に実行することを可能にするブランチ・ヒスト
リ・テーブルのような動的予測機構を含む。
【0017】デコード/ディスパッチ・ステージの時、
ディスパッチ・ユニット20は命令待ち行列19からの
1つ又は複数の命令をデコードし、実行ユニット22、
28、及び30に、一般には、プログラム順序でディス
パッチする。更に、ディスパッチ・ユニット20は、各
ディスパッチされた命令の結果データに対して、GPR
リネーム・バッファ33又はFPRリネーム・バッファ
37におけるリネーム・バッファを割り当てる。ディス
パッチ時に、命令は、完了ユニット40の多重スロット
完了バッファにも記憶されて完了を待つ。図示の実施例
によれば、プロセッサ10は、順不同実行時に、固有の
命令識別子を利用してそのディスパッチされた命令のプ
ログラム順序を追跡する。
ディスパッチ・ユニット20は命令待ち行列19からの
1つ又は複数の命令をデコードし、実行ユニット22、
28、及び30に、一般には、プログラム順序でディス
パッチする。更に、ディスパッチ・ユニット20は、各
ディスパッチされた命令の結果データに対して、GPR
リネーム・バッファ33又はFPRリネーム・バッファ
37におけるリネーム・バッファを割り当てる。ディス
パッチ時に、命令は、完了ユニット40の多重スロット
完了バッファにも記憶されて完了を待つ。図示の実施例
によれば、プロセッサ10は、順不同実行時に、固有の
命令識別子を利用してそのディスパッチされた命令のプ
ログラム順序を追跡する。
【0018】実行ステージの時、実行ユニット22、2
8、及び30は、便宜的に、その表されたオペレーショ
ンに対するオペランド及び実行資源が使用可能になる
と、ディスパッチ・ユニット20から受け取った命令を
実行する。実行ユニット22、28、及び30は、オペ
ランド又は実行資源が使用可能になるまでその実行ユニ
ットにディスパッチされた命令を記憶する予約ステーシ
ョンを備えていることが望ましい。命令の実行が終了す
る時、実行ユニット22、28、及び30は、データ結
果があれば、命令タイプに従ってGPRリネーム・バッ
ファ33又はFPRリネーム・バッファ37にそのデー
タ結果を記憶する。しかる後、実行ユニット22、2
8、及び30は、どの命令が実行を終了したかを完了ユ
ニット40に通知する。最終的に、命令は完了ユニット
40の完了バッファからのプログラム順序で完了する。
FXU22及びFPU30によって実行された命令は、
それぞれ、GPRリネーム・バッファ33及びFPRリ
ネーム・バッファ37からGPR32及びFPR36に
その命令のデータ結果を転送することによって完了す
る。LSU28によって実行されるロード命令及びスト
ア命令は、それらの終了した命令を完了ストア待ち行列
又は完了ロード待ち行列に転送することによって完了す
る。それらの命令によって表されたロード・オペレーシ
ョン及びストア・オペレーションはそれらの待ち行列か
ら遂行されるであろう。
8、及び30は、便宜的に、その表されたオペレーショ
ンに対するオペランド及び実行資源が使用可能になる
と、ディスパッチ・ユニット20から受け取った命令を
実行する。実行ユニット22、28、及び30は、オペ
ランド又は実行資源が使用可能になるまでその実行ユニ
ットにディスパッチされた命令を記憶する予約ステーシ
ョンを備えていることが望ましい。命令の実行が終了す
る時、実行ユニット22、28、及び30は、データ結
果があれば、命令タイプに従ってGPRリネーム・バッ
ファ33又はFPRリネーム・バッファ37にそのデー
タ結果を記憶する。しかる後、実行ユニット22、2
8、及び30は、どの命令が実行を終了したかを完了ユ
ニット40に通知する。最終的に、命令は完了ユニット
40の完了バッファからのプログラム順序で完了する。
FXU22及びFPU30によって実行された命令は、
それぞれ、GPRリネーム・バッファ33及びFPRリ
ネーム・バッファ37からGPR32及びFPR36に
その命令のデータ結果を転送することによって完了す
る。LSU28によって実行されるロード命令及びスト
ア命令は、それらの終了した命令を完了ストア待ち行列
又は完了ロード待ち行列に転送することによって完了す
る。それらの命令によって表されたロード・オペレーシ
ョン及びストア・オペレーションはそれらの待ち行列か
ら遂行されるであろう。
【0019】図2を参照すると、図1に示されたロード
/ストア・ユニット(LSU)28の実行回路の詳細な
ブロック図が示される。図示のように、LSU28は、
ディスパッチ・ユニット20によってLSU28にディ
スパッチされたロード命令及びストア命令の実行を制御
する実行制御ユニット50を含む。その実行制御ユニッ
ト50は、ロード命令及びストア命令のOPコードをデ
コードするためのロジック、及びストア命令をマージす
べきかどうかを決定するためにストア命令のアドレス及
びアトリビュートを比較するためのロジックを含む。更
に、LSU28は、各ロード命令及びストア命令と関連
した32ビットのアドレス・オペランドを受けるアドレ
ス計算ユニット52を含む。アドレス計算ユニット52
は、加算器53を利用して、アドレス・オペランドを合
算してその関連の命令に対する32ビットの有効アドレ
ス(EA)を生成する。又、LSU28は、そのLSU
28にディスパッチされたロード命令及びストア命令と
関連するEA、データ、及び更なる命令情報を管理する
ストア待ち行列54及びロード待ち行列55を含んてい
る。
/ストア・ユニット(LSU)28の実行回路の詳細な
ブロック図が示される。図示のように、LSU28は、
ディスパッチ・ユニット20によってLSU28にディ
スパッチされたロード命令及びストア命令の実行を制御
する実行制御ユニット50を含む。その実行制御ユニッ
ト50は、ロード命令及びストア命令のOPコードをデ
コードするためのロジック、及びストア命令をマージす
べきかどうかを決定するためにストア命令のアドレス及
びアトリビュートを比較するためのロジックを含む。更
に、LSU28は、各ロード命令及びストア命令と関連
した32ビットのアドレス・オペランドを受けるアドレ
ス計算ユニット52を含む。アドレス計算ユニット52
は、加算器53を利用して、アドレス・オペランドを合
算してその関連の命令に対する32ビットの有効アドレ
ス(EA)を生成する。又、LSU28は、そのLSU
28にディスパッチされたロード命令及びストア命令と
関連するEA、データ、及び更なる命令情報を管理する
ストア待ち行列54及びロード待ち行列55を含んてい
る。
【0020】ストア待ち行列54は、それぞれ、多重エ
ントリFIFOサブ待ち行列を有する終了ストア待ち行
列(FSQ)58及び完了ストア待ち行列(CSQ)6
0を含み、更に、調整ロジック62並びにマルチプレク
サ64及び66のような更なる回路を含んでいる。前述
のように、FSQ58及びCSQ60における各エント
リは、アドレス計算ユニット52によって生成されたE
Aを記憶する32ビットのEAフィールド、GPR32
又はFPR36のどちらがストア命令と関連したデータ
を記憶しているかを指定するデータ・ソース、及び記憶
されるべきデータを含む64ビット・データ・フィール
ドを有する。FSQ58及びCSQ60の各エントリの
EA及びデータ・フィールドの有効性は有効フィールド
(V)における有効ビットの状態によって個々に表され
る。FSQ58及びCSQ60における各エントリは、
更に、データのバイト・サイズを表すデータ・サイズ・
フィールド、データ・バイトのうちのどれが有効なデー
タを含むかを指定するバイト・イネーブル(BE)フィ
ールド、そのデータと関連したフォーマット・アトリビ
ュートを含むフォーマット・フィールド、及びそのデー
タのMMUアトリビュートを表すMMUアトリビュート
・フィールドを含む。FSQ58のエントリのEAフィ
ールドに記憶されることに加えて、各ストア命令に対す
るアドレス計算によって生成されたEAは実行制御ユニ
ット50にも送られる。その実行制御ユニットは、詳し
く後述するように、関連のストア命令がプロセッサの効
率を高めるために他のストア命令とマージされ得るかど
うかを決定するためにそのEAを利用する。
ントリFIFOサブ待ち行列を有する終了ストア待ち行
列(FSQ)58及び完了ストア待ち行列(CSQ)6
0を含み、更に、調整ロジック62並びにマルチプレク
サ64及び66のような更なる回路を含んでいる。前述
のように、FSQ58及びCSQ60における各エント
リは、アドレス計算ユニット52によって生成されたE
Aを記憶する32ビットのEAフィールド、GPR32
又はFPR36のどちらがストア命令と関連したデータ
を記憶しているかを指定するデータ・ソース、及び記憶
されるべきデータを含む64ビット・データ・フィール
ドを有する。FSQ58及びCSQ60の各エントリの
EA及びデータ・フィールドの有効性は有効フィールド
(V)における有効ビットの状態によって個々に表され
る。FSQ58及びCSQ60における各エントリは、
更に、データのバイト・サイズを表すデータ・サイズ・
フィールド、データ・バイトのうちのどれが有効なデー
タを含むかを指定するバイト・イネーブル(BE)フィ
ールド、そのデータと関連したフォーマット・アトリビ
ュートを含むフォーマット・フィールド、及びそのデー
タのMMUアトリビュートを表すMMUアトリビュート
・フィールドを含む。FSQ58のエントリのEAフィ
ールドに記憶されることに加えて、各ストア命令に対す
るアドレス計算によって生成されたEAは実行制御ユニ
ット50にも送られる。その実行制御ユニットは、詳し
く後述するように、関連のストア命令がプロセッサの効
率を高めるために他のストア命令とマージされ得るかど
うかを決定するためにそのEAを利用する。
【0021】参照番号59で示されるように、実行制御
ユニット50は更にFSQ58にも接続される。それ
は、実行制御ユニット50がFSQ58のボトム・エン
トリを読み取ってFSQ58のボトム・エントリにおけ
るストア命令のEA及びアトリビュートと他のストア命
令のそれとを比較し、それら2つのストア命令がマージ
可能であるかどうかを決定するようにするためである。
ストア命令はFSQ58に記憶されるが、そのストア命
令のEAはデータ・キャッシュ及びMMU16のアドレ
ス変換ユニット80に送られて、そのストア命令のEA
を物理アドレスに変換させ、そのストア命令が例外を発
生したかどうかを決定させる。アドレス変換ユニット8
0によってFSQ58に戻された物理アドレス・ビット
(ビット0−20)はFSQ58における適当なエント
リのEAフィールドに記憶される。
ユニット50は更にFSQ58にも接続される。それ
は、実行制御ユニット50がFSQ58のボトム・エン
トリを読み取ってFSQ58のボトム・エントリにおけ
るストア命令のEA及びアトリビュートと他のストア命
令のそれとを比較し、それら2つのストア命令がマージ
可能であるかどうかを決定するようにするためである。
ストア命令はFSQ58に記憶されるが、そのストア命
令のEAはデータ・キャッシュ及びMMU16のアドレ
ス変換ユニット80に送られて、そのストア命令のEA
を物理アドレスに変換させ、そのストア命令が例外を発
生したかどうかを決定させる。アドレス変換ユニット8
0によってFSQ58に戻された物理アドレス・ビット
(ビット0−20)はFSQ58における適当なエント
リのEAフィールドに記憶される。
【0022】ストア待ち行列54を更に参照すると、ス
トア命令がFSQ58のボトム・エントリに存在する場
合、そのストア命令は各サイクル中に完了するものと考
えられる。1つの実施例では、ストア命令は、そのスト
ア命令がプロセッサ10における最も古い命令である場
合にだけ、即ち、そのストア命令が完了ユニット40に
おけるボトムの完了バッファ・スロットに記憶されてい
る場合にだけ完了する。しかし、投機的完了を可能にす
る他の実施例では、他の完了バッファ・スロットにある
ストア命令を完了させることができる。一旦ストア命令
が完了を認められると、そのストア命令のEA及びデー
タは、FSQ58のボトム・エントリから除去され、そ
れぞれ、マルチプレクサ64及び66に送られる。その
ストア命令の32ビットEAに加えて、マルチプレクサ
64は、そのストア命令のEAの上位29ビットが各6
4ビット・ダブルワードの下位3アドレス・ビットであ
る'000' ビットと連結されて成る第2入力を受け
る。従って、実行制御ユニット50の制御の下に、マル
チプレクサ64は、FSQ58から送られたEA又はそ
の指定されたEAによってアドレスされたメモリ・ロケ
ーションを含む64ビット・ダブルワードのEAを選択
する。しかる後、マルチプレクサ64はCSQ60内の
エントリにその選択されたEAを記憶する。
トア命令がFSQ58のボトム・エントリに存在する場
合、そのストア命令は各サイクル中に完了するものと考
えられる。1つの実施例では、ストア命令は、そのスト
ア命令がプロセッサ10における最も古い命令である場
合にだけ、即ち、そのストア命令が完了ユニット40に
おけるボトムの完了バッファ・スロットに記憶されてい
る場合にだけ完了する。しかし、投機的完了を可能にす
る他の実施例では、他の完了バッファ・スロットにある
ストア命令を完了させることができる。一旦ストア命令
が完了を認められると、そのストア命令のEA及びデー
タは、FSQ58のボトム・エントリから除去され、そ
れぞれ、マルチプレクサ64及び66に送られる。その
ストア命令の32ビットEAに加えて、マルチプレクサ
64は、そのストア命令のEAの上位29ビットが各6
4ビット・ダブルワードの下位3アドレス・ビットであ
る'000' ビットと連結されて成る第2入力を受け
る。従って、実行制御ユニット50の制御の下に、マル
チプレクサ64は、FSQ58から送られたEA又はそ
の指定されたEAによってアドレスされたメモリ・ロケ
ーションを含む64ビット・ダブルワードのEAを選択
する。しかる後、マルチプレクサ64はCSQ60内の
エントリにその選択されたEAを記憶する。
【0023】マルチプレクサ66への入力は、バイパス
入力68、フィードバック入力70、及びFSQ入力7
2を含む。FSQ入力72は、FSQ58のボトム・エ
ントリのデータ・フィールドからのデータを与える。バ
イパス入力68は、不必要なLSUアイドル・サイクル
を避けるために、FSQ58が空である時にストア命令
がFSQ58をバイパスすることを可能にする。一方、
フィードバック入力70は、選択のために又はマルチプ
レクサ66の他のデータ入力との可能な結合のために、
CSQ60のボトム・エントリの64ビット・データ・
フィールドに記憶されたデータを与える。実行制御ユニ
ット50から受けた制御信号CTNLに基づいて、マル
チプレクサ66はFSQ入力72又はバイパス入力68
のデータ・ビットを選択し、そして、ストア命令がマー
ジされるべき場合、フィードバック入力70におけるゼ
ロ・ビット又はそれより多いビットを選択する。
入力68、フィードバック入力70、及びFSQ入力7
2を含む。FSQ入力72は、FSQ58のボトム・エ
ントリのデータ・フィールドからのデータを与える。バ
イパス入力68は、不必要なLSUアイドル・サイクル
を避けるために、FSQ58が空である時にストア命令
がFSQ58をバイパスすることを可能にする。一方、
フィードバック入力70は、選択のために又はマルチプ
レクサ66の他のデータ入力との可能な結合のために、
CSQ60のボトム・エントリの64ビット・データ・
フィールドに記憶されたデータを与える。実行制御ユニ
ット50から受けた制御信号CTNLに基づいて、マル
チプレクサ66はFSQ入力72又はバイパス入力68
のデータ・ビットを選択し、そして、ストア命令がマー
ジされるべき場合、フィードバック入力70におけるゼ
ロ・ビット又はそれより多いビットを選択する。
【0024】マルチプレクサ66によるデータ・ビット
の選択及び結合に続いて、そのデータ・ビットがCSQ
60におけるエントリの64ビット・データ・フィール
ドに記憶される。FSQ58及びCSQ60における6
4ビット・データ・フィールドの使用は、マルチプレク
サ66が単精度データ及び倍精度データの両方をマージ
すること、それによって、ストア集束を実施するに必要
な追加のハードウエアを最小にすることを可能にする。
例えば、FSQ58及びCSQ60における各エントリ
は単一の64ビット倍精度データワードを記憶すること
ができる。更に、図5乃至図7を参照して詳しく後述す
るように、CSQ60におけるエントリは、順次アドレ
スのターゲットにされた2つの異なる32ビット単精度
データワードをデータ・キャッシュ82に記憶すること
が可能である。
の選択及び結合に続いて、そのデータ・ビットがCSQ
60におけるエントリの64ビット・データ・フィール
ドに記憶される。FSQ58及びCSQ60における6
4ビット・データ・フィールドの使用は、マルチプレク
サ66が単精度データ及び倍精度データの両方をマージ
すること、それによって、ストア集束を実施するに必要
な追加のハードウエアを最小にすることを可能にする。
例えば、FSQ58及びCSQ60における各エントリ
は単一の64ビット倍精度データワードを記憶すること
ができる。更に、図5乃至図7を参照して詳しく後述す
るように、CSQ60におけるエントリは、順次アドレ
スのターゲットにされた2つの異なる32ビット単精度
データワードをデータ・キャッシュ82に記憶すること
が可能である。
【0025】図示のように、ストア待ち行列54は、ス
トア命令が他のストア命令とマージされる場合、前者の
ストア命令と関連したデータ・ソース・フィールド、デ
ータ・サイズ・フィールド、及びバイト・イネーブル・
フィールドを適当に修正する調整ロジック62を含む。
ストア命令がFSQ58からCSQ60に転送される
時、実行制御ユニット50は終了メッセージ86を完了
ユニット40に送り、ストア命令が終了したことを表示
する。そこで、完了ユニット40は、その表示されたス
トア命令が完了バッファのボトム・スロットに記憶され
ている時、そのストア命令を完了バッファから除去す
る。
トア命令が他のストア命令とマージされる場合、前者の
ストア命令と関連したデータ・ソース・フィールド、デ
ータ・サイズ・フィールド、及びバイト・イネーブル・
フィールドを適当に修正する調整ロジック62を含む。
ストア命令がFSQ58からCSQ60に転送される
時、実行制御ユニット50は終了メッセージ86を完了
ユニット40に送り、ストア命令が終了したことを表示
する。そこで、完了ユニット40は、その表示されたス
トア命令が完了バッファのボトム・スロットに記憶され
ている時、そのストア命令を完了バッファから除去す
る。
【0026】更に、図2を参照すると、CSQ60は、
指示されたストア・オペレーションがまだ実行されてい
ない完了ストア命令を記憶する待ち行列を含む。参照番
号61で示されるように、CSQ60は、FSQ58と
同様に実行制御ユニット50に結合される。それは、C
SQ60のボトム・エントリを読み取って実行制御ユニ
ット50がそのボトム・エントリにおけるストア命令の
EA及びアトリビュートとFSQ58におけるストア命
令のそれとを比較して、それら2つのストア命令がマー
ジされ得るかどうかを決定するようにするためである。
更に、CSQ60はデータ・キャッシュ及びMMU16
におけるアドレス変換ユニット80及びデータ・キャッ
シュ82に結合される。例えば、低いバス利用率の期間
にストア・オペレーションが遂行されるべき時、CSQ
60のボトム・エントリのEAフィールドにおける物理
アドレスは、そのストアがキャッシュ可能である場合、
CSQ60のボトム・エントリに記憶されたデータと関
連してデータ・キャッシュ82に送られる。そこで、デ
ータ・キャッシュ82内のキャッシュ・コントローラが
キャッシュ82へのデータの記憶を管理する。その物理
アドレスと関連したデータがデータ・キャッシュ82に
存在しない場合、又はストア・オペレーションがキャッ
シュ禁止の場合、物理アドレス及びデータがBIU12
に送られ、BIU12はシステム・バス11を介してそ
のデータをメイン・メモリに記憶する。前述のように、
データ・キャッシュ82はビジー信号84を実行制御ユ
ニット50に供給し、データ・キャッシュ82がビジー
であるために単一サイクルのデータ・アクセスをサポー
トすることができない時を表示する。
指示されたストア・オペレーションがまだ実行されてい
ない完了ストア命令を記憶する待ち行列を含む。参照番
号61で示されるように、CSQ60は、FSQ58と
同様に実行制御ユニット50に結合される。それは、C
SQ60のボトム・エントリを読み取って実行制御ユニ
ット50がそのボトム・エントリにおけるストア命令の
EA及びアトリビュートとFSQ58におけるストア命
令のそれとを比較して、それら2つのストア命令がマー
ジされ得るかどうかを決定するようにするためである。
更に、CSQ60はデータ・キャッシュ及びMMU16
におけるアドレス変換ユニット80及びデータ・キャッ
シュ82に結合される。例えば、低いバス利用率の期間
にストア・オペレーションが遂行されるべき時、CSQ
60のボトム・エントリのEAフィールドにおける物理
アドレスは、そのストアがキャッシュ可能である場合、
CSQ60のボトム・エントリに記憶されたデータと関
連してデータ・キャッシュ82に送られる。そこで、デ
ータ・キャッシュ82内のキャッシュ・コントローラが
キャッシュ82へのデータの記憶を管理する。その物理
アドレスと関連したデータがデータ・キャッシュ82に
存在しない場合、又はストア・オペレーションがキャッ
シュ禁止の場合、物理アドレス及びデータがBIU12
に送られ、BIU12はシステム・バス11を介してそ
のデータをメイン・メモリに記憶する。前述のように、
データ・キャッシュ82はビジー信号84を実行制御ユ
ニット50に供給し、データ・キャッシュ82がビジー
であるために単一サイクルのデータ・アクセスをサポー
トすることができない時を表示する。
【0027】図3及び図4を参照すると、図1に示され
たプロセッサの実施例に従って、ストア集束の方法の実
施例を表す2つの論理的フローチャートが示される。図
3及び図4はストア命令をマージするための方法におけ
るステップの論理的シーケンスを示すけれども、その図
示されたステップの多くは並列的に遂行されることが望
ましいことは当業者には明らかであろう。図3及び図4
に示された方法は、図5乃至図7に示された例示的なス
トア集束オペレーション及び図8に示されたタイミング
図に関連して説明することにする。
たプロセッサの実施例に従って、ストア集束の方法の実
施例を表す2つの論理的フローチャートが示される。図
3及び図4はストア命令をマージするための方法におけ
るステップの論理的シーケンスを示すけれども、その図
示されたステップの多くは並列的に遂行されることが望
ましいことは当業者には明らかであろう。図3及び図4
に示された方法は、図5乃至図7に示された例示的なス
トア集束オペレーション及び図8に示されたタイミング
図に関連して説明することにする。
【0028】先ず、図3を参照すると、プロセスはブロ
ック100において始まり、その後、ブロック102に
進む。ブロック102は、第1ストア命令(以下、ST
Aと表す)がLSU28によってディスパッチ・ユニッ
ト20から受け取られたものかどうかを実行制御ユニッ
ト50が決定することを示す。それが否定される場合、
プロセスは、STAが受け取られるまでブロック102
において反復する。今、図8を参照すると、STAをL
SU28が受け取る場合、STAのEAはサイクル1に
おいてアドレス計算ユニット52によって計算される。
更に、ストア・リクエストがデータ・キャッシュ及びM
MU16に送られ、そのEAを物理アドレスに変換し、
例外に関してそのEAを調べる。STAのEAの計算に
続いて、図5及び図8に図示されるように、そのSTA
のEAはサイクル2の始めの時にFSQ58において有
効になる。図5及び図8に示されるように、FSQ58
の図示されたエントリのEAフィールド、サイズ・フィ
ールド、及びバイト・イネーブル(BE)フィールド
は、STAが8バイトのダブルワードの下位(右端の)
4バイトをターゲットとする32ビット・ストアである
ことを表す。更に、FSQ58の図示のエントリのデー
タ・ソース・フィールドは、STAと関連したデータが
GPS32のレジスタ31において位置指定されること
を明示している。しかし、STAと関連したデータは、
有効ビットVD によって表されるように、FSQ58に
おいては未だ有効ではない。
ック100において始まり、その後、ブロック102に
進む。ブロック102は、第1ストア命令(以下、ST
Aと表す)がLSU28によってディスパッチ・ユニッ
ト20から受け取られたものかどうかを実行制御ユニッ
ト50が決定することを示す。それが否定される場合、
プロセスは、STAが受け取られるまでブロック102
において反復する。今、図8を参照すると、STAをL
SU28が受け取る場合、STAのEAはサイクル1に
おいてアドレス計算ユニット52によって計算される。
更に、ストア・リクエストがデータ・キャッシュ及びM
MU16に送られ、そのEAを物理アドレスに変換し、
例外に関してそのEAを調べる。STAのEAの計算に
続いて、図5及び図8に図示されるように、そのSTA
のEAはサイクル2の始めの時にFSQ58において有
効になる。図5及び図8に示されるように、FSQ58
の図示されたエントリのEAフィールド、サイズ・フィ
ールド、及びバイト・イネーブル(BE)フィールド
は、STAが8バイトのダブルワードの下位(右端の)
4バイトをターゲットとする32ビット・ストアである
ことを表す。更に、FSQ58の図示のエントリのデー
タ・ソース・フィールドは、STAと関連したデータが
GPS32のレジスタ31において位置指定されること
を明示している。しかし、STAと関連したデータは、
有効ビットVD によって表されるように、FSQ58に
おいては未だ有効ではない。
【0029】図3及び図4を参照すると、STAへのス
トア待ち行列54におけるエントリの割当に続いて、実
行制御ユニット50は、STAがその後のストア命令と
マージされるかどうかを確認するために、サイクル2の
時に、ブロック104乃至116において幾つかの決定
を行う。従って、ブロック104では、実行制御ユニッ
ト50は、STAが例外を生じたかどうかを、データ・
キャッシュ及びMMU16により戻された例外情報から
決定する。それが肯定される場合、プロセスはブロック
102に戻り、もう1つのSTA命令を待つ。しかし、
STAが例外を生じなかったという決定がブロック10
4において行われる場合、プロセスはブロック106に
進む。そのブロック106は、STAが完了ユニット4
0における完了バッファのボトム・スロットにあるかど
うかの決定を行う。
トア待ち行列54におけるエントリの割当に続いて、実
行制御ユニット50は、STAがその後のストア命令と
マージされるかどうかを確認するために、サイクル2の
時に、ブロック104乃至116において幾つかの決定
を行う。従って、ブロック104では、実行制御ユニッ
ト50は、STAが例外を生じたかどうかを、データ・
キャッシュ及びMMU16により戻された例外情報から
決定する。それが肯定される場合、プロセスはブロック
102に戻り、もう1つのSTA命令を待つ。しかし、
STAが例外を生じなかったという決定がブロック10
4において行われる場合、プロセスはブロック106に
進む。そのブロック106は、STAが完了ユニット4
0における完了バッファのボトム・スロットにあるかど
うかの決定を行う。
【0030】前述のように、ブロック106において行
われた決定は、プロセッサ10における最も古い命令で
あるストア命令を完了させるだけであるプロセッサ10
の実施例を反映している。プロセッサ10の他の実施例
は、ストア命令が順不同で完了することを可能にするも
のでもよい。STAが完了バッファのボトム・スロット
にないという決定が行われる場合、STAが完了バッフ
ァのボトムに置かれるような時間まで、プロセスはブロ
ック106において反復する。次に、プロセスはブロッ
ク106からブロック108に進む。ブロック108
は、後続のストア命令STBがディスパッチ・ユニット
20からLSU28によって受領されたかどうかの決定
を行う。それが否定される場合、プロセスは結合子Bを
通して図4のブロック124に進む。しかし、STBが
サイクル2の時にLSU28によって受領される場合、
図8に示されるように、STBのEAがサイクル2にお
いて計算される。
われた決定は、プロセッサ10における最も古い命令で
あるストア命令を完了させるだけであるプロセッサ10
の実施例を反映している。プロセッサ10の他の実施例
は、ストア命令が順不同で完了することを可能にするも
のでもよい。STAが完了バッファのボトム・スロット
にないという決定が行われる場合、STAが完了バッフ
ァのボトムに置かれるような時間まで、プロセスはブロ
ック106において反復する。次に、プロセスはブロッ
ク106からブロック108に進む。ブロック108
は、後続のストア命令STBがディスパッチ・ユニット
20からLSU28によって受領されたかどうかの決定
を行う。それが否定される場合、プロセスは結合子Bを
通して図4のブロック124に進む。しかし、STBが
サイクル2の時にLSU28によって受領される場合、
図8に示されるように、STBのEAがサイクル2にお
いて計算される。
【0031】図3に戻ると、プロセスはブロック108
からブロック110に進む。ブロック110は、ストア
集束が可能にされるかどうかの決定を行う。ストア集束
はデフォルトによって、又はプロセッサ10の図示され
てない制御レジスタにおけるストア集束ビットをセット
する命令の実行を通して、プロセッサ10において可能
にされる。ストア集束が可能にされない場合、プロセス
はブロック110から、前述のように、図4のブロック
124に進む。しかし、ストア集束が可能にされる場
合、プロセスはブロック110からブロック112に進
む。ブロック112は、STAによって表されたストア
・オペレーションの遂行がシステム・バス11を介して
メイン・メモリにデータを書き込むことを必要とするか
どうかの決定を行う。ブロック112において行われる
決定は、そのストア・オペレーションがキャッシュ可能
であろうが或いはなかろうが、メイン・メモリに対して
行われたストア・オペレーションのマージが、データ待
ち時間及びバス利用の見地から効率上の利点を有するこ
とを示す。STAがシステム・バス11を介したメイン
・メモリへのストア・オペレーションを必要とする場
合、例えば、STAがライト・スルー・ストアである
か、或いはキャッシュ禁止の場合、プロセスは後述のブ
ロック115に進む。しかし、STAによって指示され
たストア・オペレーションがメイン・メモリへのデータ
の書込を必要としない場合、プロセスはブロック112
からブロック114に進む。
からブロック110に進む。ブロック110は、ストア
集束が可能にされるかどうかの決定を行う。ストア集束
はデフォルトによって、又はプロセッサ10の図示され
てない制御レジスタにおけるストア集束ビットをセット
する命令の実行を通して、プロセッサ10において可能
にされる。ストア集束が可能にされない場合、プロセス
はブロック110から、前述のように、図4のブロック
124に進む。しかし、ストア集束が可能にされる場
合、プロセスはブロック110からブロック112に進
む。ブロック112は、STAによって表されたストア
・オペレーションの遂行がシステム・バス11を介して
メイン・メモリにデータを書き込むことを必要とするか
どうかの決定を行う。ブロック112において行われる
決定は、そのストア・オペレーションがキャッシュ可能
であろうが或いはなかろうが、メイン・メモリに対して
行われたストア・オペレーションのマージが、データ待
ち時間及びバス利用の見地から効率上の利点を有するこ
とを示す。STAがシステム・バス11を介したメイン
・メモリへのストア・オペレーションを必要とする場
合、例えば、STAがライト・スルー・ストアである
か、或いはキャッシュ禁止の場合、プロセスは後述のブ
ロック115に進む。しかし、STAによって指示され
たストア・オペレーションがメイン・メモリへのデータ
の書込を必要としない場合、プロセスはブロック112
からブロック114に進む。
【0032】ブロック114は、データ・キャッシュ8
2がサイクル3の時にビジーであるかどうかを、ビジー
信号84の状態をテストすることによって決定すること
を示す。データ・キャッシュ82がビジーでない場合、
プロセスは結合子Bを介してブロック124に進む。従
って、システム・バス11を介してメイン・メモリに書
き込まれないキャッシュ可能なストアに対して、実行制
御ユニット50の図示の実施例は、データ・キャッシュ
82がサイクル3の時にビジーであることをビジー信号
84が表す場合にのみ、STA及びSTBがマージされ
得るかどうかの予備的決定を行う(ブロック116に示
される)。データ・キャッシュ82が2つ以上の連続し
たサイクルにおいてビジーである場合(図8に示される
ように)、各々が、通常、少なくとも1サイクルを必要
とする複数のストアが単一のサイクルで遂行されるの
で、ストア集束はパフォーマンス上の利点を生じる。図
示にストア集束の方法は、データ・キャッシュ82がサ
イクル3の時にビジーである場合、データ・キャッシュ
82によって消費される電力を最小にするという更なる
利点を有する。データ・キャッシュ82は、STA及び
STBの両方に対してではなく、そのマージされたキャ
ッシュ可能なストアに対してのみイネーブルされるの
で、電力は保全される。
2がサイクル3の時にビジーであるかどうかを、ビジー
信号84の状態をテストすることによって決定すること
を示す。データ・キャッシュ82がビジーでない場合、
プロセスは結合子Bを介してブロック124に進む。従
って、システム・バス11を介してメイン・メモリに書
き込まれないキャッシュ可能なストアに対して、実行制
御ユニット50の図示の実施例は、データ・キャッシュ
82がサイクル3の時にビジーであることをビジー信号
84が表す場合にのみ、STA及びSTBがマージされ
得るかどうかの予備的決定を行う(ブロック116に示
される)。データ・キャッシュ82が2つ以上の連続し
たサイクルにおいてビジーである場合(図8に示される
ように)、各々が、通常、少なくとも1サイクルを必要
とする複数のストアが単一のサイクルで遂行されるの
で、ストア集束はパフォーマンス上の利点を生じる。図
示にストア集束の方法は、データ・キャッシュ82がサ
イクル3の時にビジーである場合、データ・キャッシュ
82によって消費される電力を最小にするという更なる
利点を有する。データ・キャッシュ82は、STA及び
STBの両方に対してではなく、そのマージされたキャ
ッシュ可能なストアに対してのみイネーブルされるの
で、電力は保全される。
【0033】データ・キャッシュ82による電力消費を
大きく減少させるために、実行制御ユニット50の別の
実施例はブロック114に示された決定を省略して、キ
ャッシュ可能なストアをマージしてもよい。それは、デ
ータ・キャッシュ82がビジーでない時でも精々1サイ
クルのデータ待ち時間しか生じないためである。例え
ば、プロセッサ10を低電力で動作させる場合、複数の
キャッシュ可能なストアをマージして単一のストア・オ
ペレーションにすることによって生じる最小の追加のデ
ータ待ち時間の方が、各ストアに対してデータ・キャッ
シュ82を個々にイネーブルすることによって生じる電
力消費よりも望ましいことが多い。ブロック114を再
び参照すると、データ・キャッシュ82がサイクル3の
時にビジーであるという決定が行われる場合、プロセス
はブロック115に進む。そのブロック115は、CS
Q60がサイクル3の時に(STAを除いて)空である
か或いは空になるかどうかの決定を行う。その結果が否
定的である場合、プロセスは前述したようにブロック1
24に進む。しかし、CSQ60がサイクル3の時に
(STAを除いて)空であるか或いは空になるという場
合、プロセスは結合子Aを介して図4のブロック116
に進む。
大きく減少させるために、実行制御ユニット50の別の
実施例はブロック114に示された決定を省略して、キ
ャッシュ可能なストアをマージしてもよい。それは、デ
ータ・キャッシュ82がビジーでない時でも精々1サイ
クルのデータ待ち時間しか生じないためである。例え
ば、プロセッサ10を低電力で動作させる場合、複数の
キャッシュ可能なストアをマージして単一のストア・オ
ペレーションにすることによって生じる最小の追加のデ
ータ待ち時間の方が、各ストアに対してデータ・キャッ
シュ82を個々にイネーブルすることによって生じる電
力消費よりも望ましいことが多い。ブロック114を再
び参照すると、データ・キャッシュ82がサイクル3の
時にビジーであるという決定が行われる場合、プロセス
はブロック115に進む。そのブロック115は、CS
Q60がサイクル3の時に(STAを除いて)空である
か或いは空になるかどうかの決定を行う。その結果が否
定的である場合、プロセスは前述したようにブロック1
24に進む。しかし、CSQ60がサイクル3の時に
(STAを除いて)空であるか或いは空になるという場
合、プロセスは結合子Aを介して図4のブロック116
に進む。
【0034】ブロック116はSTA及びSTBのEA
インデックス・ビット(ビット21−28)及び利用可
能なデータ・フォーマット・アトリビュートを比較する
第1比較を示す。ストア命令のデータ・フォーマット・
アトリビュートは、例えば、データが固定小数点値を表
すか又は浮動小数点値を表すか、データ・サイズ、デー
タがビック・エンディアン・フォーマットのものである
か又はリトル・エンディアン・フォーマットのものであ
るか、或いは、データがグラフィックス情報を表すかど
うかを含む。STA及びSTBのEAのインデックス・
ビット及び利用可能なデータ・フォーマット・アトリビ
ュートが共に一致する場合、図8に示されるように、S
TA及びSTBをマージすべきかどうかの決定が行われ
るまで、実行制御装置50はSTAをブロックする。し
かし、STA及びSTBのEAのインデックス・ビット
又は利用可能なデータ・フォーマット・アトリビュート
が一致しない場合、プロセスはブロック116からブロ
ック124に進む。ブロック124は、STA及びST
Bによって指示されたストア・オペレーションをLSU
28が個別に遂行することを表す。ブロック116に示
された第1比較は、システム・バス11を介してメモリ
に書き込まれないキャッシュ可能なストアに対して、デ
ータ・キャッシュ82がビジーであり、従って、STA
により指示されたストア・オペレーションを直ちに遂行
することができない場合にだけ行われるので、ブロック
116でSTA及びSTBが不一致であっても、パフォ
ーマンスが落ちることはない。
インデックス・ビット(ビット21−28)及び利用可
能なデータ・フォーマット・アトリビュートを比較する
第1比較を示す。ストア命令のデータ・フォーマット・
アトリビュートは、例えば、データが固定小数点値を表
すか又は浮動小数点値を表すか、データ・サイズ、デー
タがビック・エンディアン・フォーマットのものである
か又はリトル・エンディアン・フォーマットのものであ
るか、或いは、データがグラフィックス情報を表すかど
うかを含む。STA及びSTBのEAのインデックス・
ビット及び利用可能なデータ・フォーマット・アトリビ
ュートが共に一致する場合、図8に示されるように、S
TA及びSTBをマージすべきかどうかの決定が行われ
るまで、実行制御装置50はSTAをブロックする。し
かし、STA及びSTBのEAのインデックス・ビット
又は利用可能なデータ・フォーマット・アトリビュート
が一致しない場合、プロセスはブロック116からブロ
ック124に進む。ブロック124は、STA及びST
Bによって指示されたストア・オペレーションをLSU
28が個別に遂行することを表す。ブロック116に示
された第1比較は、システム・バス11を介してメモリ
に書き込まれないキャッシュ可能なストアに対して、デ
ータ・キャッシュ82がビジーであり、従って、STA
により指示されたストア・オペレーションを直ちに遂行
することができない場合にだけ行われるので、ブロック
116でSTA及びSTBが不一致であっても、パフォ
ーマンスが落ちることはない。
【0035】図6を参照すると、サイクル2において遂
行されるSTA及びSTBの間の第1比較に続いて、S
TAのEA、データ、及びアトリビュートが未修正でC
SQ60に送られる。従って、サイクル3の時、STA
はCSQ60において有効になり、STBのEAはFS
Q58において有効になる。又、サイクル3の時、実行
制御ユニット50は、図4のブロック118−122に
示されたストア集束のための第2の条件セットが存在す
るかどうかを決定する。図4のブロック118及び12
0を参照すると、実行制御ユニット50は、STBが例
外を生じたかどうか及びSTBが完了ユニット40にお
ける完了バッファのボトム・スロットにあるかどうかを
決定する。STBが例外を生じた場合、又はSTBが完
了バッファのボトム・スロットにない場合、プロセス
は、LSU28がSTA及びSTBを別々に遂行するブ
ロック124に進む。しかし、STBが例外を生じず、
完了バッファのボトム・スロットに記憶されている場
合、プロセスはブロック122に進む。そのブロック1
22は、実行制御ユニット50がSTA及びSTBの第
2比較を行って、STA及びSTBの実アドレス・ビッ
ト(ビット0−19)が一致するかどうか及びSTA及
びSTBのMMUアトリビュートが一致するかどうかを
決定することを示している。
行されるSTA及びSTBの間の第1比較に続いて、S
TAのEA、データ、及びアトリビュートが未修正でC
SQ60に送られる。従って、サイクル3の時、STA
はCSQ60において有効になり、STBのEAはFS
Q58において有効になる。又、サイクル3の時、実行
制御ユニット50は、図4のブロック118−122に
示されたストア集束のための第2の条件セットが存在す
るかどうかを決定する。図4のブロック118及び12
0を参照すると、実行制御ユニット50は、STBが例
外を生じたかどうか及びSTBが完了ユニット40にお
ける完了バッファのボトム・スロットにあるかどうかを
決定する。STBが例外を生じた場合、又はSTBが完
了バッファのボトム・スロットにない場合、プロセス
は、LSU28がSTA及びSTBを別々に遂行するブ
ロック124に進む。しかし、STBが例外を生じず、
完了バッファのボトム・スロットに記憶されている場
合、プロセスはブロック122に進む。そのブロック1
22は、実行制御ユニット50がSTA及びSTBの第
2比較を行って、STA及びSTBの実アドレス・ビッ
ト(ビット0−19)が一致するかどうか及びSTA及
びSTBのMMUアトリビュートが一致するかどうかを
決定することを示している。
【0036】実施例では、STA及びSTBのMMUア
トリビュートは、ライト・スルー・ビット、キャッシュ
禁止ビット、アドレスされたメモリ・ロケーションに対
するコヒーレンシを強制するメモリ・コヒーレンシ・ビ
ット、及びアドレスされたメモリ・ロケーションからの
投機的ロード及びプリフェッチを防ぐ保護ビットを含
む。STA及びSTBの実アドレス・ビット並びにST
A及びSTBのMMUアトリビュート・ビットのすべて
が一致するわけではない場合、プロセスはブロック12
2から前述のブロック124に進む。しかし、STA及
びSTBの実アドレス・ビット並びにSTA及びSTB
のMMUアトリビュートが共に一致する場合、プロセス
はブロック122からブロック126に進む。そのブロ
ック126は、前述のように、サイクル4の時、実行制
御ユニット50がSTA及びSTBをマージすることを
示す。プロセッサ10のこの実施例は第1及び第2比較
を、それぞれ、第2及び第3サイクルの時に独立に行
う。それは、STBの実アドレス・ビットがサイクル2
の時に使用可能でないため、第1及び第2比較をサイク
ル2及び3の時に独立して遂行する。前述のように、サ
イクル2の時に第1部分比較を行うことは、データ・キ
ャッシュ82がビジーである場合に、プロセッサ10が
STA及びSTBの間の不一致に起因したパフォーマン
ス低下を回避することを可能にする。しかし、他の実施
例で、STA及びSTBの単一の比較を行うことも可能
である。
トリビュートは、ライト・スルー・ビット、キャッシュ
禁止ビット、アドレスされたメモリ・ロケーションに対
するコヒーレンシを強制するメモリ・コヒーレンシ・ビ
ット、及びアドレスされたメモリ・ロケーションからの
投機的ロード及びプリフェッチを防ぐ保護ビットを含
む。STA及びSTBの実アドレス・ビット並びにST
A及びSTBのMMUアトリビュート・ビットのすべて
が一致するわけではない場合、プロセスはブロック12
2から前述のブロック124に進む。しかし、STA及
びSTBの実アドレス・ビット並びにSTA及びSTB
のMMUアトリビュートが共に一致する場合、プロセス
はブロック122からブロック126に進む。そのブロ
ック126は、前述のように、サイクル4の時、実行制
御ユニット50がSTA及びSTBをマージすることを
示す。プロセッサ10のこの実施例は第1及び第2比較
を、それぞれ、第2及び第3サイクルの時に独立に行
う。それは、STBの実アドレス・ビットがサイクル2
の時に使用可能でないため、第1及び第2比較をサイク
ル2及び3の時に独立して遂行する。前述のように、サ
イクル2の時に第1部分比較を行うことは、データ・キ
ャッシュ82がビジーである場合に、プロセッサ10が
STA及びSTBの間の不一致に起因したパフォーマン
ス低下を回避することを可能にする。しかし、他の実施
例で、STA及びSTBの単一の比較を行うことも可能
である。
【0037】図4のブロック126に示されるようにS
TA及びSTBをマージするために、実行制御ブロック
50は、ダブルワードEAを指定する入力をマルチプレ
クサ64に選択させるように1つ又は複数の制御信号を
発生する。そこで、そのダブルワードEAは、STAの
EAに代わってCSQ60のボトム・エントリのアドレ
ス・フィールドに書き込まれる。更に、実行制御ユニッ
ト50は、マルチプレクサ66に、フィードバック入力
70(STAデータ)及びFSQ入力72(STBデー
タ)によって与えられたデータをマージさせ、その結果
のマージされたデータをCSQ60のボトム・エントリ
のデータ・フィールド内に記憶させるように1つ又は複
数の制御信号を発生する。
TA及びSTBをマージするために、実行制御ブロック
50は、ダブルワードEAを指定する入力をマルチプレ
クサ64に選択させるように1つ又は複数の制御信号を
発生する。そこで、そのダブルワードEAは、STAの
EAに代わってCSQ60のボトム・エントリのアドレ
ス・フィールドに書き込まれる。更に、実行制御ユニッ
ト50は、マルチプレクサ66に、フィードバック入力
70(STAデータ)及びFSQ入力72(STBデー
タ)によって与えられたデータをマージさせ、その結果
のマージされたデータをCSQ60のボトム・エントリ
のデータ・フィールド内に記憶させるように1つ又は複
数の制御信号を発生する。
【0038】図6及び図7を参照すると、それぞれ、サ
イクル3及び5の時のFSQ58及びCSQ60の内容
が示され、それによって、STA及びSTBのマージを
表す。図6に示されるように、FSQ58は、アドレス
・ロケーションをダブルワード境界で指定するSTBの
32ビットEAを含む。更に、図示のように、STBと
関連したデータは、GPR32のレジスタ4に含まれ、
4バイトの長さであり、8バイト・データ・バスの上位
4バイトを介してメモリに書き込まれる。STAはCS
Q60のエントリ0含まれ、STBのEAと同じダブル
ワード内にEAを有する。STAに関連したデータは、
GPR32のレジスタ31に含まれ、4バイトの長さで
あり、バスの下位4バイトを介してメモリに書き込まれ
る。
イクル3及び5の時のFSQ58及びCSQ60の内容
が示され、それによって、STA及びSTBのマージを
表す。図6に示されるように、FSQ58は、アドレス
・ロケーションをダブルワード境界で指定するSTBの
32ビットEAを含む。更に、図示のように、STBと
関連したデータは、GPR32のレジスタ4に含まれ、
4バイトの長さであり、8バイト・データ・バスの上位
4バイトを介してメモリに書き込まれる。STAはCS
Q60のエントリ0含まれ、STBのEAと同じダブル
ワード内にEAを有する。STAに関連したデータは、
GPR32のレジスタ31に含まれ、4バイトの長さで
あり、バスの下位4バイトを介してメモリに書き込まれ
る。
【0039】サイクル4の時のSTA及びSTBのマー
ジに続いて、CSQ60のエントリ0が図7に示される
ように現れる。図示のように、マージされたストア命令
のEAはSTBのそれと同じである。それは、STA及
びSTBがSTBのEAによって指定されたダブルワー
ド内のメモリ・ロケーションをターゲットにされるため
である。更に、図7に示されるように、STA及びST
Bに関連したデータは、STA及びSTBによって指示
されたストア・オペレーションがプログラム順に遂行さ
れる場合にそれが持つデータと同じデータを、メモリの
アドレスされたダブルワードが持つようにマージされて
いる。更に、CSQ60のエントリ0のデータ・ソース
・フィールド、データ・サイズ・フィールド、及びバイ
ト・イネーブル・フィールドは、マージされたストア命
令に関連したデータがGSP32のレジスタ4及び31
に含まれ、8バイトの長さであり、データ・バスの8バ
イトすべてを利用してメモリに書き込まれるであろうこ
とを反映するように、調整ロジック62によって調整さ
れている。
ジに続いて、CSQ60のエントリ0が図7に示される
ように現れる。図示のように、マージされたストア命令
のEAはSTBのそれと同じである。それは、STA及
びSTBがSTBのEAによって指定されたダブルワー
ド内のメモリ・ロケーションをターゲットにされるため
である。更に、図7に示されるように、STA及びST
Bに関連したデータは、STA及びSTBによって指示
されたストア・オペレーションがプログラム順に遂行さ
れる場合にそれが持つデータと同じデータを、メモリの
アドレスされたダブルワードが持つようにマージされて
いる。更に、CSQ60のエントリ0のデータ・ソース
・フィールド、データ・サイズ・フィールド、及びバイ
ト・イネーブル・フィールドは、マージされたストア命
令に関連したデータがGSP32のレジスタ4及び31
に含まれ、8バイトの長さであり、データ・バスの8バ
イトすべてを利用してメモリに書き込まれるであろうこ
とを反映するように、調整ロジック62によって調整さ
れている。
【0040】図5乃至図7は、マージされたストア命令
によって書き込まれたメモリ・アドレスがオーバラップ
しないストア集束の例を示しているけれども、図2に示
されたLSU28の実施例がオーバラップしたメモリ・
アドレスに書き込むストア命令をマージすることもでき
ることは、本願における説明から当業者には明らかであ
ろう。図2を参照して上述したように、オーバラップし
たアドレスをターゲットとするストア命令に関連したデ
ータは、実行制御ユニット50により発生された制御信
号に応答してマルチプレクサ66によってマージされ
る。
によって書き込まれたメモリ・アドレスがオーバラップ
しないストア集束の例を示しているけれども、図2に示
されたLSU28の実施例がオーバラップしたメモリ・
アドレスに書き込むストア命令をマージすることもでき
ることは、本願における説明から当業者には明らかであ
ろう。図2を参照して上述したように、オーバラップし
たアドレスをターゲットとするストア命令に関連したデ
ータは、実行制御ユニット50により発生された制御信
号に応答してマルチプレクサ66によってマージされ
る。
【0041】図4を参照すると、ブロック126におけ
るSTA及びSTBのマージに続いて、プロセスはブロ
ック128に進む。ブロック128は、そのマージされ
た命令によって指示されたストア・オペレーションを遂
行することを示す。従って、図8に示されるように、そ
のマージされたデータはサイクル5及び6の時にメモリ
に書き込まれる。しかる後、図4に示されたプロセスは
ブロック130において終了する。
るSTA及びSTBのマージに続いて、プロセスはブロ
ック128に進む。ブロック128は、そのマージされ
た命令によって指示されたストア・オペレーションを遂
行することを示す。従って、図8に示されるように、そ
のマージされたデータはサイクル5及び6の時にメモリ
に書き込まれる。しかる後、図4に示されたプロセスは
ブロック130において終了する。
【0042】上記の説明から明らかなように、開示され
たストア集束機構は、ストア命令を選択的に結合するこ
とによってプロセッサ・パフォーマンスを改良する。2
つの単精度ストアが集束された例示的なストア集束オペ
レーションに関連してストア集束の方法を説明したけれ
ども、単精度ストア及び倍精度ストアの両方とも前述の
実施例を利用して集束可能であることは、上記の説明か
ら明らかであろう。更に、ストア集束が、システム・バ
ス待ち時間の減少によって、ライト・スルー・ストア命
令及びキャッシュ禁止ストア命令に対するプロセッサ・
パフォーマンスの最大の強化を与えることは明らかであ
ろう。例えば、2つの集束しないストア命令がそれぞれ
7サイクルのバス・アクセスを必要とする場合、その2
つのストア命令を遂行することは14サイクルを必要と
する。一方、それらのストア命令が集束される場合、1
つの7サイクル・バス・アクセスしか必要とされず、そ
れによって、生じるバス待ち時間をかなり減少させるこ
とになる。
たストア集束機構は、ストア命令を選択的に結合するこ
とによってプロセッサ・パフォーマンスを改良する。2
つの単精度ストアが集束された例示的なストア集束オペ
レーションに関連してストア集束の方法を説明したけれ
ども、単精度ストア及び倍精度ストアの両方とも前述の
実施例を利用して集束可能であることは、上記の説明か
ら明らかであろう。更に、ストア集束が、システム・バ
ス待ち時間の減少によって、ライト・スルー・ストア命
令及びキャッシュ禁止ストア命令に対するプロセッサ・
パフォーマンスの最大の強化を与えることは明らかであ
ろう。例えば、2つの集束しないストア命令がそれぞれ
7サイクルのバス・アクセスを必要とする場合、その2
つのストア命令を遂行することは14サイクルを必要と
する。一方、それらのストア命令が集束される場合、1
つの7サイクル・バス・アクセスしか必要とされず、そ
れによって、生じるバス待ち時間をかなり減少させるこ
とになる。
【0043】実施例を詳しく示し、説明したけれども、
本実施例の精神及び技術範囲から逸脱することなく、形
式及び細部の種々の変更を行い得ることは当業者には明
らかであろう。
本実施例の精神及び技術範囲から逸脱することなく、形
式及び細部の種々の変更を行い得ることは当業者には明
らかであろう。
【0044】まとめとして、本発明の構成に関して以下
の事項を開示する。
の事項を開示する。
【0045】(1)関連したキャッシュ・メモリを有す
るプロセッサにおいてストア集束を行う方法にして、前
記キャッシュ・メモリにおける1つ又は複数のロケーシ
ョンをターゲットとする第1ストア命令及び第2ストア
命令を識別するステップと、前記キャッシュ・メモリが
ビジーであるかどうかを決定するステップと、前記キャ
ッシュ・メモリがビジーであるという決定に応答して、
前記第1ストア命令及び前記第2ストア命令をマージし
て単一のストア・オペレーションにするステップと、前
記単一のストア・オペレーションを遂行するステップ
と、を含む方法。 (2)前記第2ストア命令は、直列的順序で前記第1ス
トア命令のすぐ後に続くことを特徴とする上記(1)に
記載の方法。 (3)前記キャッシュ・メモリにおける1つ又は複数の
ロケーションのすべてが前記単一のストア・オペレーシ
ョンによって書き込まれ得るかどうかの決定に応答し
て、前記第1ストア命令及び前記第2ストア命令をマー
ジすべきかどうかを決定するステップを更に含むことを
特徴とする上記(1)に記載の方法。 (4)前記1つ又は複数のロケーションのうちの少なく
とも1つのロケーションは前記第1ストア命令及び前記
第2ストア命令の両方によってターゲットにされること
を特徴とする上記(1)に記載の方法。 (5)前記第1ストア命令及び第2ストア命令をマージ
して単一のストア・オペレーションにするステップは、
前記第1ストア命令及び前記第2ストア命令のうちの少
なくとも1つによって指定されたアドレスから前記単一
のストア・オペレーションに対するターゲット・アドレ
スを決定するステップと、前記第1ストア命令及び前記
第2ストア命令の直列的順序に従って前記第1ストア命
令及び前記第2ストア命令と関連したデータを結合する
ことによって前記単一のストア・オペレーションと関連
したデータを決定するステップと、を含むことを特徴と
する上記(1)に記載の方法。 (6)前記第1ストア命令及び前記第2ストア命令はそ
れぞれ前記キャッシュ・メモリにおける隣接したアドレ
ス範囲をターゲットにされた単精度データと関連付けら
れること、及び前記単一のストア・オペレーションは倍
精度データと関連付けられること、を特徴とする上記
(1)に記載の方法。 (7)関連したキャッシュ・メモリを有するプロセッサ
にして、前記キャッシュ・メモリにおける1つ又は複数
のロケーションをターゲットとする第1ストア命令及び
第2ストア命令を識別するための実行制御ロジックと、
前記実行制御ロジックに結合され、前記キャッシュ・メ
モリがビジーであるという決定に応答して前記第1スト
ア命令及び前記第2ストア命令をマージして単一のスト
ア・オペレーションにするマージ・ロジックと、前記マ
ージ・ロジックに結合され、前記単一のストア・オペレ
ーションを遂行するメモリ・アクセス・ロジックと、を
含むプロセッサ。 (8)前記実行制御ユニットは、前記キャッシュ・メモ
リにおける前記1つ又は複数のロケーションが前記単一
のストア・オペレーションによって書き込まれ得るかど
うかを決定するためのロジックを含むことを特徴とする
上記(7)に記載のプロセッサ。 (9)前記マージ・ロジックは、前記第1ストア命令及
び前記第2ストア命令のうちの少なくとも1つのアドレ
スから前記単一のストア・オペレーションのためのター
ゲット・アドレスを選択するアドレス選択ロジックと、
前記第1ストア命令及び前記第2ストア命令の直列的順
序に従って前記第1ストア命令及び前記第2ストア命令
と関連したデータを結合するデータ結合ロジックと、を
含むことを特徴とする上記(7)に記載のプロセッサ。 (10)前記メモリ・アクセス・ロジックは、前記キャ
ッシュ・メモリへのデータの記憶を管理するメモリ管理
ユニットを含むことを特徴とする上記(7)に記載のプ
ロセッサ。 (11)少なくとも1つのエントリを有し、前記マージ
・ロジックの入力に結合された第1待ち行列にして、該
少なくとも1つのエントリが前記第2ストア命令を一時
的に記憶するような第1待ち行列と、少なくとも1つの
エントリを有し、前記マージ・ロジックの出力に結合さ
れた第2待ち行列にして、該少なくとも1つのエントリ
が前記第1ストア命令を一時的に記憶するような第2待
ち行列と、を含むことを特徴とする上記(7)に記載の
プロセッサ。 (12)前記第2待ち行列の前記少なくとも1つのエン
トリは前記第1ストア命令及び前記第2ストア命令のマ
ージ後に前記単一のストア・オペレーションを一時的に
記憶することを特徴とする上記(7)に記載のプロセッ
サ。 (13)前記第1ストア命令及び前記第2ストア命令は
それぞれ前記キャッシュ・メモリにおける隣接したアド
レス範囲をターゲットにされた単精度データと関連付け
られること、及び前記第2待ち行列の前記少なくとも1
つのエントリは前記単一のストア・オペレーションと関
連した倍精度データを一時的に記憶するためのデータ・
フィールドを含むこと、を特徴とする上記(7)に記載
のプロセッサ。 (14)前記1つ又は複数のロケーションのうちの少な
くとも1つのロケーションは前記第1ストア命令及び前
記第2ストア命令の両方のターゲットにされることを特
徴とする上記(7)に記載のプロセッサ。 (15)キャッシュ・メモリと、前記キャッシュ・メモ
リに結合されたプロセッサとを含むデータ処理システム
にして、前記プロセッサは、前記キャッシュ・メモリに
おける1つ又は複数のロケーションをターゲットとする
第1ストア命令及び第2ストア命令を識別するための実
行制御ロジックと、前記実行制御ロジックに結合され、
前記キャッシュ・メモリがビジーであるという決定に応
答して前記第1ストア命令及び前記第2ストア命令をマ
ージして単一のストア・オペレーションにするマージ・
ロジックと、前記マージ・ロジックに結合され、前記単
一のストア・オペレーションを遂行するメモリ・アクセ
ス・ロジックと、を含むことを特徴とするデータ処理シ
ステム。 (16)前記実行制御ユニットは、前記キャッシュ・メ
モリにおける前記1つ又は複数のロケーションが前記単
一のストア・オペレーションによって書込可能であるか
どうかを決定するためのロジックを含むことを特徴とす
る上記(15)に記載のデータ処理システム。 (17)前記マージ・ロジックは、前記第1ストア命令
及び前記第2ストア命令の少なくとも1つのアドレスか
ら前記単一のストア・オペレーションに対するターゲッ
ト・アドレスを選択するアドレス選択ロジックと、前記
第1ストア命令及び前記第2ストア命令の直列的順序に
従って前記第1ストア命令及び前記第2ストア命令と関
連したデータを結合するデータ結合ロジックと、を含む
ことを特徴とする上記(15)に記載のデータ処理シス
テム。 (18)前記メモリ・アクセス・ロジックは前記キャッ
シュ・メモリへのデータの記憶を管理するメモリ管理ユ
ニットを含むことを特徴とする上記(15)に記載のデ
ータ処理システム。 (19)少なくとも1つのエントリを有し、前記マージ
・ロジックの入力に結合された第1待ち行列にして、該
少なくとも1つのエントリが前記第2ストア命令を一時
的に記憶するような第1待ち行列と、少なくとも1つの
エントリを有し、前記マージ・ロジックの出力に結合さ
れた第2待ち行列にして、該少なくとも1つのエントリ
が前記第1ストア命令を一時的に記憶するような第2待
ち行列と、を含むことを特徴とする上記(15)に記載
のデータ処理システム。 (20)前記第2待ち行列の前記少なくとも1つのエン
トリは前記第1ストア命令及び前記第2ストア命令のマ
ージ後に前記単一のストア・オペレーションを一時的に
記憶することを特徴とする上記(19)に記載のデータ
処理システム。 (21)前記第1ストア命令及び前記第2ストア命令は
それぞれ前記キャッシュ・メモリにおける隣接したアド
レス範囲をターゲットにされた単精度データと関連付け
られること、及び前記第2待ち行列の前記少なくとも1
つのエントリは前記単一のストア・オペレーションと関
連した倍精度データを一時的に記憶するためのデータ・
フィールドを含むこと、を特徴とする上記(20)に記
載のデータ処理システム。 (22)前記1つ又は複数のロケーションのうちの少な
くとも1つのロケーションは前記第1ストア命令及び前
記第2ストア命令の両方のターゲットにされることを特
徴とする上記(15)に記載のデータ処理システム。
るプロセッサにおいてストア集束を行う方法にして、前
記キャッシュ・メモリにおける1つ又は複数のロケーシ
ョンをターゲットとする第1ストア命令及び第2ストア
命令を識別するステップと、前記キャッシュ・メモリが
ビジーであるかどうかを決定するステップと、前記キャ
ッシュ・メモリがビジーであるという決定に応答して、
前記第1ストア命令及び前記第2ストア命令をマージし
て単一のストア・オペレーションにするステップと、前
記単一のストア・オペレーションを遂行するステップ
と、を含む方法。 (2)前記第2ストア命令は、直列的順序で前記第1ス
トア命令のすぐ後に続くことを特徴とする上記(1)に
記載の方法。 (3)前記キャッシュ・メモリにおける1つ又は複数の
ロケーションのすべてが前記単一のストア・オペレーシ
ョンによって書き込まれ得るかどうかの決定に応答し
て、前記第1ストア命令及び前記第2ストア命令をマー
ジすべきかどうかを決定するステップを更に含むことを
特徴とする上記(1)に記載の方法。 (4)前記1つ又は複数のロケーションのうちの少なく
とも1つのロケーションは前記第1ストア命令及び前記
第2ストア命令の両方によってターゲットにされること
を特徴とする上記(1)に記載の方法。 (5)前記第1ストア命令及び第2ストア命令をマージ
して単一のストア・オペレーションにするステップは、
前記第1ストア命令及び前記第2ストア命令のうちの少
なくとも1つによって指定されたアドレスから前記単一
のストア・オペレーションに対するターゲット・アドレ
スを決定するステップと、前記第1ストア命令及び前記
第2ストア命令の直列的順序に従って前記第1ストア命
令及び前記第2ストア命令と関連したデータを結合する
ことによって前記単一のストア・オペレーションと関連
したデータを決定するステップと、を含むことを特徴と
する上記(1)に記載の方法。 (6)前記第1ストア命令及び前記第2ストア命令はそ
れぞれ前記キャッシュ・メモリにおける隣接したアドレ
ス範囲をターゲットにされた単精度データと関連付けら
れること、及び前記単一のストア・オペレーションは倍
精度データと関連付けられること、を特徴とする上記
(1)に記載の方法。 (7)関連したキャッシュ・メモリを有するプロセッサ
にして、前記キャッシュ・メモリにおける1つ又は複数
のロケーションをターゲットとする第1ストア命令及び
第2ストア命令を識別するための実行制御ロジックと、
前記実行制御ロジックに結合され、前記キャッシュ・メ
モリがビジーであるという決定に応答して前記第1スト
ア命令及び前記第2ストア命令をマージして単一のスト
ア・オペレーションにするマージ・ロジックと、前記マ
ージ・ロジックに結合され、前記単一のストア・オペレ
ーションを遂行するメモリ・アクセス・ロジックと、を
含むプロセッサ。 (8)前記実行制御ユニットは、前記キャッシュ・メモ
リにおける前記1つ又は複数のロケーションが前記単一
のストア・オペレーションによって書き込まれ得るかど
うかを決定するためのロジックを含むことを特徴とする
上記(7)に記載のプロセッサ。 (9)前記マージ・ロジックは、前記第1ストア命令及
び前記第2ストア命令のうちの少なくとも1つのアドレ
スから前記単一のストア・オペレーションのためのター
ゲット・アドレスを選択するアドレス選択ロジックと、
前記第1ストア命令及び前記第2ストア命令の直列的順
序に従って前記第1ストア命令及び前記第2ストア命令
と関連したデータを結合するデータ結合ロジックと、を
含むことを特徴とする上記(7)に記載のプロセッサ。 (10)前記メモリ・アクセス・ロジックは、前記キャ
ッシュ・メモリへのデータの記憶を管理するメモリ管理
ユニットを含むことを特徴とする上記(7)に記載のプ
ロセッサ。 (11)少なくとも1つのエントリを有し、前記マージ
・ロジックの入力に結合された第1待ち行列にして、該
少なくとも1つのエントリが前記第2ストア命令を一時
的に記憶するような第1待ち行列と、少なくとも1つの
エントリを有し、前記マージ・ロジックの出力に結合さ
れた第2待ち行列にして、該少なくとも1つのエントリ
が前記第1ストア命令を一時的に記憶するような第2待
ち行列と、を含むことを特徴とする上記(7)に記載の
プロセッサ。 (12)前記第2待ち行列の前記少なくとも1つのエン
トリは前記第1ストア命令及び前記第2ストア命令のマ
ージ後に前記単一のストア・オペレーションを一時的に
記憶することを特徴とする上記(7)に記載のプロセッ
サ。 (13)前記第1ストア命令及び前記第2ストア命令は
それぞれ前記キャッシュ・メモリにおける隣接したアド
レス範囲をターゲットにされた単精度データと関連付け
られること、及び前記第2待ち行列の前記少なくとも1
つのエントリは前記単一のストア・オペレーションと関
連した倍精度データを一時的に記憶するためのデータ・
フィールドを含むこと、を特徴とする上記(7)に記載
のプロセッサ。 (14)前記1つ又は複数のロケーションのうちの少な
くとも1つのロケーションは前記第1ストア命令及び前
記第2ストア命令の両方のターゲットにされることを特
徴とする上記(7)に記載のプロセッサ。 (15)キャッシュ・メモリと、前記キャッシュ・メモ
リに結合されたプロセッサとを含むデータ処理システム
にして、前記プロセッサは、前記キャッシュ・メモリに
おける1つ又は複数のロケーションをターゲットとする
第1ストア命令及び第2ストア命令を識別するための実
行制御ロジックと、前記実行制御ロジックに結合され、
前記キャッシュ・メモリがビジーであるという決定に応
答して前記第1ストア命令及び前記第2ストア命令をマ
ージして単一のストア・オペレーションにするマージ・
ロジックと、前記マージ・ロジックに結合され、前記単
一のストア・オペレーションを遂行するメモリ・アクセ
ス・ロジックと、を含むことを特徴とするデータ処理シ
ステム。 (16)前記実行制御ユニットは、前記キャッシュ・メ
モリにおける前記1つ又は複数のロケーションが前記単
一のストア・オペレーションによって書込可能であるか
どうかを決定するためのロジックを含むことを特徴とす
る上記(15)に記載のデータ処理システム。 (17)前記マージ・ロジックは、前記第1ストア命令
及び前記第2ストア命令の少なくとも1つのアドレスか
ら前記単一のストア・オペレーションに対するターゲッ
ト・アドレスを選択するアドレス選択ロジックと、前記
第1ストア命令及び前記第2ストア命令の直列的順序に
従って前記第1ストア命令及び前記第2ストア命令と関
連したデータを結合するデータ結合ロジックと、を含む
ことを特徴とする上記(15)に記載のデータ処理シス
テム。 (18)前記メモリ・アクセス・ロジックは前記キャッ
シュ・メモリへのデータの記憶を管理するメモリ管理ユ
ニットを含むことを特徴とする上記(15)に記載のデ
ータ処理システム。 (19)少なくとも1つのエントリを有し、前記マージ
・ロジックの入力に結合された第1待ち行列にして、該
少なくとも1つのエントリが前記第2ストア命令を一時
的に記憶するような第1待ち行列と、少なくとも1つの
エントリを有し、前記マージ・ロジックの出力に結合さ
れた第2待ち行列にして、該少なくとも1つのエントリ
が前記第1ストア命令を一時的に記憶するような第2待
ち行列と、を含むことを特徴とする上記(15)に記載
のデータ処理システム。 (20)前記第2待ち行列の前記少なくとも1つのエン
トリは前記第1ストア命令及び前記第2ストア命令のマ
ージ後に前記単一のストア・オペレーションを一時的に
記憶することを特徴とする上記(19)に記載のデータ
処理システム。 (21)前記第1ストア命令及び前記第2ストア命令は
それぞれ前記キャッシュ・メモリにおける隣接したアド
レス範囲をターゲットにされた単精度データと関連付け
られること、及び前記第2待ち行列の前記少なくとも1
つのエントリは前記単一のストア・オペレーションと関
連した倍精度データを一時的に記憶するためのデータ・
フィールドを含むこと、を特徴とする上記(20)に記
載のデータ処理システム。 (22)前記1つ又は複数のロケーションのうちの少な
くとも1つのロケーションは前記第1ストア命令及び前
記第2ストア命令の両方のターゲットにされることを特
徴とする上記(15)に記載のデータ処理システム。
【0046】
【発明の効果】本発明によって、同じダブルワードに対
する多重記憶アクセスを遂行するに必要なサイクル数を
最小にするような、メモリにデータを記憶するための効
率的な方法及びシステムが得られる。
する多重記憶アクセスを遂行するに必要なサイクル数を
最小にするような、メモリにデータを記憶するための効
率的な方法及びシステムが得られる。
【図1】メモリに対するストア・アクセスのパフォーマ
ンスを高めるためにストア集束を利用するプロセッサの
実施例である。
ンスを高めるためにストア集束を利用するプロセッサの
実施例である。
【図2】図1に示されたプロセッサのロード/ストア・
ユニット(LSU)の詳細なブロック図表示を示す。
ユニット(LSU)の詳細なブロック図表示を示す。
【図3】図1に示されたプロセッサによって利用される
ストア集束の方法を示すフローチャートの一部分であ
る。
ストア集束の方法を示すフローチャートの一部分であ
る。
【図4】図1に示されたプロセッサによって利用される
ストア集束の方法を示すフローチャートの一部分であ
る。
ストア集束の方法を示すフローチャートの一部分であ
る。
【図5】図2に示されたロード/ストア・ユニット(L
SU)のストア待ち行列におけるストア集束を示す。
SU)のストア待ち行列におけるストア集束を示す。
【図6】図2に示されたロード/ストア・ユニット(L
SU)のストア待ち行列におけるストア集束を示す。
SU)のストア待ち行列におけるストア集束を示す。
【図7】図2に示されたロード/ストア・ユニット(L
SU)のストア待ち行列におけるストア集束を示す。
SU)のストア待ち行列におけるストア集束を示す。
【図8】ストア集束オペレーションにおける種々の事象
のタイミングを示すタイミング図である。
のタイミングを示すタイミング図である。
Claims (22)
- 【請求項1】関連したキャッシュ・メモリを有するプロ
セッサにおいてストア集束を行う方法にして、 前記キャッシュ・メモリにおける1つ又は複数のロケー
ションをターゲットとする第1ストア命令及び第2スト
ア命令を識別するステップと、 前記キャッシュ・メモリがビジーであるかどうかを決定
するステップと、 前記キャッシュ・メモリがビジーであるという決定に応
答して、前記第1ストア命令及び前記第2ストア命令を
マージして単一のストア・オペレーションにするステッ
プと、 前記単一のストア・オペレーションを遂行するステップ
と、 を含む方法。 - 【請求項2】前記第2ストア命令は、直列的順序で前記
第1ストア命令のすぐ後に続くことを特徴とする請求項
1に記載の方法。 - 【請求項3】前記キャッシュ・メモリにおける1つ又は
複数のロケーションのすべてが前記単一のストア・オペ
レーションによって書き込まれ得るかどうかの決定に応
答して、前記第1ストア命令及び前記第2ストア命令を
マージすべきかどうかを決定するステップを更に含むこ
とを特徴とする請求項1に記載の方法。 - 【請求項4】前記1つ又は複数のロケーションのうちの
少なくとも1つのロケーションは前記第1ストア命令及
び前記第2ストア命令の両方によってターゲットにされ
ることを特徴とする請求項1に記載の方法。 - 【請求項5】前記第1ストア命令及び第2ストア命令を
マージして単一のストア・オペレーションにするステッ
プは、 前記第1ストア命令及び前記第2ストア命令のうちの少
なくとも1つによって指定されたアドレスから前記単一
のストア・オペレーションに対するターゲット・アドレ
スを決定するステップと、 前記第1ストア命令及び前記第2ストア命令の直列的順
序に従って前記第1ストア命令及び前記第2ストア命令
と関連したデータを結合することによって前記単一のス
トア・オペレーションと関連したデータを決定するステ
ップと、 を含むことを特徴とする請求項1に記載の方法。 - 【請求項6】前記第1ストア命令及び前記第2ストア命
令はそれぞれ前記キャッシュ・メモリにおける隣接した
アドレス範囲をターゲットにされた単精度データと関連
付けられること、及び前記単一のストア・オペレーショ
ンは倍精度データと関連付けられること、 を特徴とする請求項1に記載の方法。 - 【請求項7】関連したキャッシュ・メモリを有するプロ
セッサにして、 前記キャッシュ・メモリにおける1つ又は複数のロケー
ションをターゲットとする第1ストア命令及び第2スト
ア命令を識別するための実行制御ロジックと、 前記実行制御ロジックに結合され、前記キャッシュ・メ
モリがビジーであるという決定に応答して前記第1スト
ア命令及び前記第2ストア命令をマージして単一のスト
ア・オペレーションにするマージ・ロジックと、 前記マージ・ロジックに結合され、前記単一のストア・
オペレーションを遂行するメモリ・アクセス・ロジック
と、 を含むプロセッサ。 - 【請求項8】前記実行制御ユニットは、前記キャッシュ
・メモリにおける前記1つ又は複数のロケーションが前
記単一のストア・オペレーションによって書き込まれ得
るかどうかを決定するためのロジックを含むことを特徴
とする請求項7に記載のプロセッサ。 - 【請求項9】前記マージ・ロジックは、 前記第1ストア命令及び前記第2ストア命令のうちの少
なくとも1つのアドレスから前記単一のストア・オペレ
ーションのためのターゲット・アドレスを選択するアド
レス選択ロジックと、 前記第1ストア命令及び前記第2ストア命令の直列的順
序に従って前記第1ストア命令及び前記第2ストア命令
と関連したデータを結合するデータ結合ロジックと、 を含むことを特徴とする請求項7に記載のプロセッサ。 - 【請求項10】前記メモリ・アクセス・ロジックは、前
記キャッシュ・メモリへのデータの記憶を管理するメモ
リ管理ユニットを含むことを特徴とする請求項7に記載
のプロセッサ。 - 【請求項11】少なくとも1つのエントリを有し、前記
マージ・ロジックの入力に結合された第1待ち行列にし
て、該少なくとも1つのエントリが前記第2ストア命令
を一時的に記憶するような第1待ち行列と、 少なくとも1つのエントリを有し、前記マージ・ロジッ
クの出力に結合された第2待ち行列にして、該少なくと
も1つのエントリが前記第1ストア命令を一時的に記憶
するような第2待ち行列と、 を含むことを特徴とする請求項7に記載のプロセッサ。 - 【請求項12】前記第2待ち行列の前記少なくとも1つ
のエントリは前記第1ストア命令及び前記第2ストア命
令のマージ後に前記単一のストア・オペレーションを一
時的に記憶することを特徴とする請求項7に記載のプロ
セッサ。 - 【請求項13】前記第1ストア命令及び前記第2ストア
命令はそれぞれ前記キャッシュ・メモリにおける隣接し
たアドレス範囲をターゲットにされた単精度データと関
連付けられること、及び前記第2待ち行列の前記少なく
とも1つのエントリは前記単一のストア・オペレーショ
ンと関連した倍精度データを一時的に記憶するためのデ
ータ・フィールドを含むこと、 を特徴とする請求項7に記載のプロセッサ。 - 【請求項14】前記1つ又は複数のロケーションのうち
の少なくとも1つのロケーションは前記第1ストア命令
及び前記第2ストア命令の両方のターゲットにされるこ
とを特徴とする請求項7に記載のプロセッサ。 - 【請求項15】キャッシュ・メモリと、前記キャッシュ
・メモリに結合されたプロセッサとを含むデータ処理シ
ステムにして、 前記プロセッサは、 前記キャッシュ・メモリにおける1つ又は複数のロケー
ションをターゲットとする第1ストア命令及び第2スト
ア命令を識別するための実行制御ロジックと、 前記実行制御ロジックに結合され、前記キャッシュ・メ
モリがビジーであるという決定に応答して前記第1スト
ア命令及び前記第2ストア命令をマージして単一のスト
ア・オペレーションにするマージ・ロジックと、 前記マージ・ロジックに結合され、前記単一のストア・
オペレーションを遂行するメモリ・アクセス・ロジック
と、 を含むことを特徴とするデータ処理システム。 - 【請求項16】前記実行制御ユニットは、前記キャッシ
ュ・メモリにおける前記1つ又は複数のロケーションが
前記単一のストア・オペレーションによって書込可能で
あるかどうかを決定するためのロジックを含むことを特
徴とする請求項15に記載のデータ処理システム。 - 【請求項17】前記マージ・ロジックは、 前記第1ストア命令及び前記第2ストア命令の少なくと
も1つのアドレスから前記単一のストア・オペレーショ
ンに対するターゲット・アドレスを選択するアドレス選
択ロジックと、 前記第1ストア命令及び前記第2ストア命令の直列的順
序に従って前記第1ストア命令及び前記第2ストア命令
と関連したデータを結合するデータ結合ロジックと、 を含むことを特徴とする請求項15に記載のデータ処理
システム。 - 【請求項18】前記メモリ・アクセス・ロジックは前記
キャッシュ・メモリへのデータの記憶を管理するメモリ
管理ユニットを含むことを特徴とする請求項15に記載
のデータ処理システム。 - 【請求項19】少なくとも1つのエントリを有し、前記
マージ・ロジックの入力に結合された第1待ち行列にし
て、該少なくとも1つのエントリが前記第2ストア命令
を一時的に記憶するような第1待ち行列と、 少なくとも1つのエントリを有し、前記マージ・ロジッ
クの出力に結合された第2待ち行列にして、該少なくと
も1つのエントリが前記第1ストア命令を一時的に記憶
するような第2待ち行列と、 を含むことを特徴とする請求項15に記載のデータ処理
システム。 - 【請求項20】前記第2待ち行列の前記少なくとも1つ
のエントリは前記第1ストア命令及び前記第2ストア命
令のマージ後に前記単一のストア・オペレーションを一
時的に記憶することを特徴とする請求項19に記載のデ
ータ処理システム。 - 【請求項21】前記第1ストア命令及び前記第2ストア
命令はそれぞれ前記キャッシュ・メモリにおける隣接し
たアドレス範囲をターゲットにされた単精度データと関
連付けられること、及び前記第2待ち行列の前記少なく
とも1つのエントリは前記単一のストア・オペレーショ
ンと関連した倍精度データを一時的に記憶するためのデ
ータ・フィールドを含むこと、 を特徴とする請求項20に記載のデータ処理システム。 - 【請求項22】前記1つ又は複数のロケーションのうち
の少なくとも1つのロケーションは前記第1ストア命令
及び前記第2ストア命令の両方のターゲットにされるこ
とを特徴とする請求項15に記載のデータ処理システ
ム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/726,736 US5860107A (en) | 1996-10-07 | 1996-10-07 | Processor and method for store gathering through merged store operations |
US08/726736 | 1996-10-07 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH10124391A true JPH10124391A (ja) | 1998-05-15 |
Family
ID=24919792
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP9265555A Pending JPH10124391A (ja) | 1996-10-07 | 1997-09-30 | マージされたストア・オペレーションによってストア集束を行うためのプロセッサ及び方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US5860107A (ja) |
JP (1) | JPH10124391A (ja) |
CN (1) | CN1098486C (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012043202A (ja) * | 2010-08-19 | 2012-03-01 | Nec Computertechno Ltd | ストアマージ装置、情報処理装置、ストアマージ方法およびプログラム |
JP2012507794A (ja) * | 2008-10-30 | 2012-03-29 | インテル コーポレイション | 有効な命令ヒュージョンを進展させる技術 |
US8244985B2 (en) | 2004-03-30 | 2012-08-14 | Intel Corporation | Store performance in strongly ordered microprocessor architecture |
JP2014063385A (ja) * | 2012-09-21 | 2014-04-10 | Fujitsu Ltd | 演算処理装置及び演算処理装置の制御方法 |
Families Citing this family (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5926831A (en) * | 1996-10-11 | 1999-07-20 | International Business Machines Corporation | Methods and apparatus for control of speculative memory accesses |
EP1182558A1 (en) | 2000-08-21 | 2002-02-27 | Texas Instruments Incorporated | MME descriptor having big/little endian bit to control the transfer data between devices |
JP4234361B2 (ja) * | 2002-06-28 | 2009-03-04 | 富士通株式会社 | 記憶制御装置およびデータ格納方法 |
JP4252828B2 (ja) * | 2003-03-19 | 2009-04-08 | 株式会社日立製作所 | キャッシュ制御方法、ノード装置、プログラム |
US7024544B2 (en) * | 2003-06-24 | 2006-04-04 | Via-Cyrix, Inc. | Apparatus and method for accessing registers in a processor |
US7366851B2 (en) * | 2004-08-19 | 2008-04-29 | International Business Machines Corporation | Processor, method, and data processing system employing a variable store gather window |
US7676513B2 (en) * | 2006-01-06 | 2010-03-09 | Microsoft Corporation | Scheduling of index merges |
US8904151B2 (en) * | 2006-05-02 | 2014-12-02 | International Business Machines Corporation | Method and apparatus for the dynamic identification and merging of instructions for execution on a wide datapath |
US20080059722A1 (en) * | 2006-08-31 | 2008-03-06 | Arm Limited | Handling data processing requests |
US7849290B2 (en) * | 2007-07-09 | 2010-12-07 | Oracle America, Inc. | Store queue architecture for a processor that supports speculative execution |
JP4771431B2 (ja) * | 2007-09-20 | 2011-09-14 | Kddi株式会社 | オペレーティングシステムに基づくイベント処理機能搭載装置及びプログラム |
US8166246B2 (en) * | 2008-01-31 | 2012-04-24 | International Business Machines Corporation | Chaining multiple smaller store queue entries for more efficient store queue usage |
US8468306B2 (en) * | 2008-02-15 | 2013-06-18 | International Business Machines Corporation | Microprocessor and method for deferred store data forwarding for store background data in a system with no memory model restrictions |
US7934080B2 (en) * | 2008-05-28 | 2011-04-26 | Oracle America, Inc. | Aggressive store merging in a processor that supports checkpointing |
CN101685408B (zh) | 2008-09-24 | 2013-10-09 | 国际商业机器公司 | 多个线程并行访问共享数据结构的方法及装置 |
US10621092B2 (en) | 2008-11-24 | 2020-04-14 | Intel Corporation | Merging level cache and data cache units having indicator bits related to speculative execution |
US9189233B2 (en) | 2008-11-24 | 2015-11-17 | Intel Corporation | Systems, apparatuses, and methods for a hardware and software system to automatically decompose a program to multiple parallel threads |
US9672019B2 (en) | 2008-11-24 | 2017-06-06 | Intel Corporation | Systems, apparatuses, and methods for a hardware and software system to automatically decompose a program to multiple parallel threads |
JP5547208B2 (ja) * | 2008-11-24 | 2014-07-09 | インテル コーポレイション | シーケンシャル・プログラムを複数スレッドに分解し、スレッドを実行し、シーケンシャルな実行を再構成するシステム、方法および装置 |
US10284437B2 (en) | 2010-09-30 | 2019-05-07 | Efolder, Inc. | Cloud-based virtual machines and offices |
US8954544B2 (en) | 2010-09-30 | 2015-02-10 | Axcient, Inc. | Cloud-based virtual machines and offices |
US9705730B1 (en) | 2013-05-07 | 2017-07-11 | Axcient, Inc. | Cloud storage using Merkle trees |
US9417855B2 (en) | 2011-09-30 | 2016-08-16 | Intel Corporation | Instruction and logic to perform dynamic binary translation |
US9785647B1 (en) | 2012-10-02 | 2017-10-10 | Axcient, Inc. | File system virtualization |
CN102929727A (zh) * | 2012-10-18 | 2013-02-13 | 浪潮(北京)电子信息产业有限公司 | 一种同步接口上数据的处理方法和系统 |
US9852140B1 (en) | 2012-11-07 | 2017-12-26 | Axcient, Inc. | Efficient file replication |
US9397907B1 (en) | 2013-03-07 | 2016-07-19 | Axcient, Inc. | Protection status determinations for computing devices |
US9886277B2 (en) * | 2013-03-15 | 2018-02-06 | Intel Corporation | Methods and apparatus for fusing instructions to provide OR-test and AND-test functionality on multiple test sources |
US9396113B2 (en) * | 2013-08-06 | 2016-07-19 | Oracle International Corporation | Flexible configuration hardware streaming unit |
US9891936B2 (en) | 2013-09-27 | 2018-02-13 | Intel Corporation | Method and apparatus for page-level monitoring |
CN106909522B (zh) * | 2015-12-22 | 2020-03-20 | 中国电信股份有限公司 | Gpu写请求数据的延迟控制方法、装置以及云计算系统 |
CN107181636B (zh) * | 2016-03-10 | 2020-09-11 | 阿里巴巴集团控股有限公司 | 一种负载均衡系统中的健康检查方法及装置 |
CN111488298A (zh) * | 2017-12-29 | 2020-08-04 | 贵阳忆芯科技有限公司 | 优化nvm接口命令执行顺序的方法与装置 |
US11636040B2 (en) * | 2019-05-24 | 2023-04-25 | Texas Instruments Incorporated | Methods and apparatus for inflight data forwarding and invalidation of pending writes in store queue |
US20220019436A1 (en) * | 2020-07-20 | 2022-01-20 | International Business Machines Corporation | Fusion of microprocessor store instructions |
CN114780031B (zh) * | 2022-04-15 | 2022-11-11 | 北京志凌海纳科技有限公司 | 一种基于单机存储引擎的数据处理方法和装置 |
US20240111537A1 (en) * | 2022-09-29 | 2024-04-04 | Synopsys, Inc. | Store instruction merging with pattern detection |
CN117742793B (zh) * | 2023-11-01 | 2024-07-02 | 上海合芯数字科技有限公司 | 数据缓存指令的指令合并电路、方法及芯片 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS59136859A (ja) * | 1983-01-27 | 1984-08-06 | Nec Corp | バツフア制御装置 |
US4750154A (en) * | 1984-07-10 | 1988-06-07 | Prime Computer, Inc. | Memory alignment system and method |
US4805098A (en) * | 1986-05-05 | 1989-02-14 | Mips Computer Systems, Inc. | Write buffer |
US5046000A (en) * | 1989-01-27 | 1991-09-03 | International Business Machines Corporation | Single-FIFO high speed combining switch |
US5357622A (en) * | 1990-09-27 | 1994-10-18 | Dell U.S.A., L.P. | Apparatus for queing and storing data writes into valid word patterns |
US5551002A (en) * | 1993-07-01 | 1996-08-27 | Digital Equipment Corporation | System for controlling a write cache and merging adjacent data blocks for write operations |
US5581734A (en) * | 1993-08-02 | 1996-12-03 | International Business Machines Corporation | Multiprocessor system with shared cache and data input/output circuitry for transferring data amount greater than system bus capacity |
US5471598A (en) * | 1993-10-18 | 1995-11-28 | Cyrix Corporation | Data dependency detection and handling in a microprocessor with write buffer |
US5644752A (en) * | 1994-06-29 | 1997-07-01 | Exponential Technology, Inc. | Combined store queue for a master-slave cache system |
US5550774A (en) * | 1995-09-05 | 1996-08-27 | Motorola, Inc. | Memory cache with low power consumption and method of operation |
-
1996
- 1996-10-07 US US08/726,736 patent/US5860107A/en not_active Expired - Fee Related
-
1997
- 1997-09-04 CN CN97117589A patent/CN1098486C/zh not_active Expired - Fee Related
- 1997-09-30 JP JP9265555A patent/JPH10124391A/ja active Pending
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8244985B2 (en) | 2004-03-30 | 2012-08-14 | Intel Corporation | Store performance in strongly ordered microprocessor architecture |
JP2012507794A (ja) * | 2008-10-30 | 2012-03-29 | インテル コーポレイション | 有効な命令ヒュージョンを進展させる技術 |
JP2015072707A (ja) * | 2008-10-30 | 2015-04-16 | インテル コーポレイション | 有効な命令フュージョンを進展させる技術 |
US9690591B2 (en) | 2008-10-30 | 2017-06-27 | Intel Corporation | System and method for fusing instructions queued during a time window defined by a delay counter |
US10649783B2 (en) | 2008-10-30 | 2020-05-12 | Intel Corporation | Multicore system for fusing instructions queued during a dynamically adjustable time window |
JP2012043202A (ja) * | 2010-08-19 | 2012-03-01 | Nec Computertechno Ltd | ストアマージ装置、情報処理装置、ストアマージ方法およびプログラム |
JP2014063385A (ja) * | 2012-09-21 | 2014-04-10 | Fujitsu Ltd | 演算処理装置及び演算処理装置の制御方法 |
Also Published As
Publication number | Publication date |
---|---|
US5860107A (en) | 1999-01-12 |
CN1098486C (zh) | 2003-01-08 |
CN1178941A (zh) | 1998-04-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH10124391A (ja) | マージされたストア・オペレーションによってストア集束を行うためのプロセッサ及び方法 | |
US5611063A (en) | Method for executing speculative load instructions in high-performance processors | |
US7165168B2 (en) | Microprocessor with branch target address cache update queue | |
JP3662296B2 (ja) | スーパースカラマイクロプロセッサおよびropを処理する方法 | |
US6067616A (en) | Branch prediction device with two levels of branch prediction cache | |
JP3871883B2 (ja) | 間接分岐ターゲットを計算するための方法 | |
US6298423B1 (en) | High performance load/store functional unit and data cache | |
US5664215A (en) | Data processor with an execution unit for performing load instructions and method of operation | |
US6321326B1 (en) | Prefetch instruction specifying destination functional unit and read/write access mode | |
JP3919802B2 (ja) | プロセッサ、およびプロセッサにおいて命令演算をスケジューリングするための方法 | |
US5913054A (en) | Method and system for processing a multiple-register instruction that permit multiple data words to be written in a single processor cycle | |
US6260134B1 (en) | Fixed shift amount variable length instruction stream pre-decoding for start byte determination based on prefix indicating length vector presuming potential start byte | |
JPH07182160A (ja) | スーパースカラマイクロプロセッサ | |
US5828895A (en) | Methods and system for predecoding instructions in a superscalar data processing system | |
US6192461B1 (en) | Method and apparatus for facilitating multiple storage instruction completions in a superscalar processor during a single clock cycle | |
US7721073B2 (en) | Conditional branch execution in a processor having a data mover engine that associates register addresses with memory addresses | |
US7721074B2 (en) | Conditional branch execution in a processor having a read-tie instruction and a data mover engine that associates register addresses with memory addresses | |
CN112559037B (zh) | 一种指令执行方法、单元、装置及系统 | |
US6405303B1 (en) | Massively parallel decoding and execution of variable-length instructions | |
US5802340A (en) | Method and system of executing speculative store instructions in a parallel processing computer system | |
US7721075B2 (en) | Conditional branch execution in a processor having a write-tie instruction and a data mover engine that associates register addresses with memory addresses | |
US5678016A (en) | Processor and method for managing execution of an instruction which determine subsequent to dispatch if an instruction is subject to serialization | |
US6115730A (en) | Reloadable floating point unit | |
US5956503A (en) | Method and system for front-end and back-end gathering of store instructions within a data-processing system | |
US5894569A (en) | Method and system for back-end gathering of store instructions within a data-processing system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040423 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070306 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070320 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20070814 |