JP2737820B2 - メモリアクセス方法およびシステム - Google Patents

メモリアクセス方法およびシステム

Info

Publication number
JP2737820B2
JP2737820B2 JP5206635A JP20663593A JP2737820B2 JP 2737820 B2 JP2737820 B2 JP 2737820B2 JP 5206635 A JP5206635 A JP 5206635A JP 20663593 A JP20663593 A JP 20663593A JP 2737820 B2 JP2737820 B2 JP 2737820B2
Authority
JP
Japan
Prior art keywords
cache
address
data
buffer
line
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.)
Expired - Lifetime
Application number
JP5206635A
Other languages
English (en)
Other versions
JPH06161893A (ja
Inventor
ディーン グローブス ランダル
トーマス オークィン ザ セカンド ジョン
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 JPH06161893A publication Critical patent/JPH06161893A/ja
Application granted granted Critical
Publication of JP2737820B2 publication Critical patent/JP2737820B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、コンピュータおよびデ
ータ処理システムの分野に関し、特に、メモリアクセス
および制御の分野に関する。特に、本発明は、データ処
理システムのキャッシュ操作機構に関する。
【0002】なお、本明細書の記述は本件出願の優先権
の基礎たる米国特許出願第07/950,351号(1
992年9月24日出願)の明細書の記載に基づくもの
であって、当該米国特許出願の番号を参照することによ
って当該米国特許出願の明細書の記載内容が本明細書の
一部分を構成するものとする。
【0003】
【従来の技術】記憶階層を有するデータ処理するシステ
ムでは、プロセッサにより高速アクセスするため、主記
憶に記憶されているデータの選択されたラインがキャッ
シュと呼ばれる高速バッファにコピーされる。プロセッ
サによりデータが要求されるか、あるいはプロセッサが
実行命令を必要とすると、常に、システムはまずキャッ
シュを検査し、データまたは命令がそのキャッシュから
獲得できるか否かを判定する。判定した結果、キャッシ
ュから獲得できる場合は、キャッシュに存在するデータ
/命令は直ちにプロセッサに供給される。他方、キャッ
シュから獲得できない場合は、データ/命令は主記憶か
ら取り出されるが、その取り出しはキャッシュからより
も遅い。キャッシュディレクトリに直接アクセスするに
は、変換された絶対アドレスではなく、非変換論理アド
レスの一部が、各プロセッサ要求で、よく用いられる。
というのは、データ/命令の変換されたアドレスを待つ
ため、システムパフォーマンスが著しく低下するからで
ある。代表的なキャッシュシステムは米国特許第5,113,
508 号(発明者:Groves他,出願人:本出願と同一)に
記載されている。ここに、特許番号を付して本明細書の
一部とする。また、代表的なキャッシュシステムは"IBM
RISC SYSTEM/6000 Technology",First Edition, 1990,
IBM order number SA23-2619 に記載されている。ここ
に、マニュアル名を付して本明細書の一部とする。
【0004】キャッシュシノニム(cache synonym) は非
変換論理アドレスを用いて生成され、そのキャッシュに
アクセスする。所定のデータ/命令項目はキャッシュ内
の複数記憶場所に存在することができ、2つ以上の名前
でアクセスすることができる。米国特許第 4,400,770号
および米国特許第 4,797,814号に記載されているよう
に、シノニムは次の場合に柔軟性を有する。すなわち、
複数プロセスが所定のキャッシュラインを異なる論理
(仮想)アドレスを用いてアクセスするか、任意の時点
で、論理(仮想)または物理(実)アドレスのいずれか
を用いてキャッシュラインにアクセスする機能が存在す
るときに、柔軟性を有する。米国特許第 4,400,770号お
よび米国特許第 4,797,814号の番号を付して本明細書の
一部とする。
【0005】このようなシノニムを用いた結果、種々の
スキー、例えば、Brenza, J.G.,IBM Technical Discl
osure Bulletin, June 1991, pp377-381に記載されてい
るスキーは、キャッシュシノニムが異なるキャッシュ
ライン記憶場所に対するエントリがないように設計され
ている。
【0006】しかし、その従来例では、キャッシュ内の
データを、キャッシュラインからキャッシュラインに、
効率的にコピーするか、あるいは移動する必要性または
要望を取り扱っていない。このような機能がある場合、
キャッシュ管理のシステムスループットが改善されるこ
とになる。すなわち、システムスループットは、主記憶
からの複数のロード/ストアを実行しデータをコピーす
るか、あるいは移動する要件を削除し、そのキャッシュ
に複製エントリを作成し、そのキャッシュと主記憶の間
に余分のトラフィックを生成することにより改善するこ
とができる。
【0007】また、従来例では、キャッシュディレクト
リのキャッシュラインを容易にリネームする機能を取り
扱っていない。この機能がある場合は、データ項目を1
キャッシュラインごとに論理的にコピーするのが望まし
く、その上、1つのキャッシュラインを用いるだけで論
理的にコピーするのが望ましい。
【0008】従って、本発明の目的は、データ処理シス
テムの全体的なシステムパフォーマンスを改善すること
にある。
【0009】本発明の他の目的は、データ処理システム
のメモリアクセスのレイテンシ(latency) を改善するこ
とにある。
【0010】本発明のさらに他の目的は、データ処理シ
ステムのキャッシュを管理する改善された方法を提供す
ることにある。
【0011】本発明のさらにまた他の目的は、データ処
理システムのキャッシュパフォーマンスを改善すること
にある。
【0012】本発明の他の目的は、主記憶からのリロー
ドを最小限にすることにある。
【0013】本発明のさらに他の目的は、データ処理シ
ステムキャッシュのヒット率を向上させることにある。
【0014】
【課題を解決するための手段】本発明は、キャッシュを
有するデータ処理システムのパフォーマンスを向上させ
る方法および装置を提供する。1つのキャッシュライン
からのデータを、そのキャッシュ内の別のキャッシュラ
インに、容易にしかも高速にコピーすることができる。
好ましい実施例では、このコピーキャッシュラインオペ
レーションは、中央処理装置の命令セットのオペコード
を用いて開始される。従って、データ処理システムでラ
ンしているソフトウェアは、このCPU命令を実行し
て、このキャッシュラインコピーを呼び出す。
【0015】他の機能はキャッシュラインをリネームす
る機能であり、そのオペレーションを開始するのにCP
U命令を再び用いる。このようにすると、物理的にコピ
ーすることなく、キャッシュデータが論理的にコピーさ
れる。
【0016】次のようにすることができる。
【0017】1)本発明に係るデータ処理システムのメ
モリアクセス方法であって、複数のデータバイトを前記
データ処理システムのメモリからキャッシュの第1のラ
インにロードするステップと、前記複数のデータバイト
を前記キャッシュの第2のラインに前記メモリに、再ア
クセスすることなくストアするステップとを備えたこと
を特徴とする。
【0018】2) 上記1)に記載の方法において、前
記ストアするステップは、前記ロードステップと実質的
に同一に起こることを特徴とする。
【0019】3) 上記1)に記載の方法において、前
記ロードステップおよびストアステップは、中央処理装
置 (CPU)命令により開始されることを特徴とする。
【0020】4) 上記1)に記載の方法において、前
記キャッシュはキャッシュアレイとキャッシュリロード
バッファを備えたことを特徴とする。
【0021】5) 上記4)に記載の方法において、前
記複数のデータバイトは前記キャッシュの前記キャッシ
ュリロードバッファにロードされることを特徴とする。
【0022】6) 上記5)に記載の方法において、前
記キャッシュリロードバッファの前記複数のデータバイ
トは、キャッシュミスの結果として、前記キャッシュア
レイに転送されることを特徴とする。
【0023】7) 本発明に係るデータ処理システムの
メモリアクセス方法において、キャッシュの第1のキャ
ッシュラインに前記データ処理システムのメモリにスト
アされたデータをロードするステップと、第2のキャッ
シュラインに前記第1キャッシュラインにストアされた
データをロードするステップとを備えたことを特徴とす
る。
【0024】8) 上記7)に記載の方法において、前
記第2のキャッシュラインにロードするステップは、中
央処理装置(CPU) 命令により開始されることを特徴とす
る。
【0025】9) 上記7)に記載の方法において、前
記第1のキャッシュおよび第2のキャッシュが中央処理
装置(CPU) 命令により開始されることを特徴とする。
【0026】10) 上記9)に記載の方法において、
前記データは前記CPU命令により指定されることを特
徴とする。
【0027】11) 上記9)に記載の方法において、
前記第2のキャッシュラインは前記CPU命令により指
定されることを特徴とする。
【0028】12) 上記7)に記載の方法において、
前記キャッシュはキャッシュアレイとキャッシュリロー
ドバッファを備えたことを特徴とする。
【0029】13) 上記7)に記載の方法において、
前記第2のキャッシュラインはキャッシュミスの結果と
してロードされることを特徴とする。
【0030】14) 上記12)に記載の方法におい
て、前記キャッシュリロードバッファは前記第1のキャ
ッシュラインを備えたことを特徴とする。
【0031】15) 上記12)に記載の方法におい
て、前記キャッシュアレイは前記第2のキャッシュライ
ンを備えたことを特徴とする。
【0032】16) 本発明に係るデータ処理システム
のメモリアクセス方法において、キャッシュディレクト
リにディレクトリエントリを有するキャッシュラインを
前記データ処理システムのメモリにストアされたデータ
からロードするステップと、前記キャッシュラインのデ
ィレクトリエントリをリネームするステップとを備えた
ことを特徴とする。
【0033】17) 上記16)に記載の方法におい
て、キャッシュラインをロードするステップは、中央処
理装置(CPU) 命令により開始されることを特徴とする。
【0034】18) 上記17)に記載の方法におい
て、前記データは前記CPU命令のオペランドにより指
定されることを特徴とする。
【0035】19) 上記17)に記載の方法におい
て、前記ディレクトリエントリは前記CPU命令のオペ
ランドにより指定された値にリネームされることを特徴
とする。 20) 上記16)に記載の方法において、前記キャッ
シュはキャッシュアレイとキャッシュリロードバッファ
を備えたことを特徴とする。
【0036】21) 本発明に係るデータ処理システム
のメモリをアクセスするシステムであって、複数のデー
タバイトを、前記データ処理システムのメモリから、キ
ャッシュの第1のラインにロードする手段と、前記複数
のデータバイトを前記キャッシュの第2のラインに、前
記メモリに再アクセスせずにストアする手段とを備えた
ことを特徴とする。
【0037】22) 上記21)に記載のシステムにお
いて、前記ストアは前記ロードと実質的に同時に起こる
ことを特徴とする。
【0038】23) 上記21)に記載のシステムにお
いて、前記キャッシュはキャッシュアレイとキャッシュ
リロードバッファを備えたことを特徴とする。
【0039】24) 上記19)に記載のシステムにお
いて、前記複数のデータバイトは前記キャッシュの前記
キャッシュリロードバッファにロードされることを特徴
とする。
【0040】25) 上記24)に記載の方法におい
て、前記キャッシュリロードバッファの前記複数のデー
タバイトは、キャッシュミスの結果として、前記キャッ
シュアレイに転送されることを特徴とする。
【0041】26) 本発明に係るデータ処理システム
のメモリをアクセスするシステムであって、キャッシュ
の第1のキャッシュラインに前記データ処理システムの
メモリにストアされたデータをロードする手段と、第2
のキャッシュラインに前記第1キャッシュラインにスト
アされたデータをロードする手段とを備えたことを特徴
とする。
【0042】27) 上記26)に記載のシステムにお
いて、前記データは前記CPU命令により指定されるこ
とを特徴とする。
【0043】28) 上記26)に記載のシステムにお
いて、前記第2のキャッシュラインはキャッシュミスの
結果としてロードされることを特徴とする。
【0044】29) 上記26)に記載のシステムにお
いて、前記キャッシュはキャッシュアレイとキャッシュ
リロードバッファを備えたことを特徴とする。
【0045】30) 上記26)に記載のシステムにお
いて、前記第2のキャッシュラインはキャッシュミスの
結果としてロードされることを特徴とする。
【0046】31) 上記23)に記載のシステムにお
いて、前記キャッシュリロードバッファは前記第1のキ
ャッシュラインを備えたことを特徴とする。
【0047】32) 上記23)に記載のシステムにお
いて、前記キャッシュアレイは前記第2のキャッシュラ
インを備えたことを特徴とする。
【0048】33) 本発明に係るデータ処理システム
のメモリをアクセスするシステムであって、キャッシュ
ディレクトリにディレクトリエントリを有するキャッシ
ュラインに前記データ処理システムのメモリにストアさ
れたデータをロードする手段と、前記キャッシュライン
のディレクトリエントリをリネームする手段とを備えた
ことを特徴とする。
【0049】34) 上記33)に記載のシステムにお
いて、前記データは前記CPU命令により指定されるこ
とを特徴とする。
【0050】35) 上記33)に記載のシステムにお
いて、前記ディレクトリエントリはCPU命令のオペラ
ンドにより指定された値にリネームされることを特徴と
する。 36) 上記33)に記載のシステムにおいて、前記キ
ャッシュはキャッシュアレイとキャッシュリロードバッ
ファを備えたことを特徴とする。
【0051】37) 本発明に係るデータ処理システム
のメモリをアクセスするシステムであって、CPUと、
該CPUに結合され、複数のデータバイトを、前記デー
タ処理システムのメモリから、キャッシュの第1ライン
にロードする手段と、前記CPUに結合され、前記複数
のデータバイトを、前記キャッシュの第2のラインに、
前記メモリを再アクセスせずにストアする手段とを備え
たことを特徴とする。
【0052】
【実施例】以下、図面を参照して本発明の実施例を詳細
に説明する。
【0053】AIX カーネルには、データをコピーする速
度に非常に敏感なオペレーションが種々存在する。AIX
はInternational Business Machines Corporation の商
標である。(AIX はAT&TおよびUniversity of Berkeley
により開発されたUNIXオペレーティングシステムのIBM
バージョンである。)UINXはUnix System Laboratorie
s, Inc.の商標である。これらのオペレーションのうち
の最も重要なものは、'fork'システムコールである。こ
のシステムコールにより、親プロセスと並行して実行す
る子プロセスが生成(spawn) される。その子プロセスは
親プロセスのデータ領域のコピーを必要とする。種々の
スキームを用いて、AIX およびMachでそれぞれ用いられ
る'copy-on-read','copy-on-write'のようなスキームで
必要とする実際のコピーの実際の量を減少させた。この
ように適正化させた場合でも、ページをコピーするに
は、依然、大幅なシステムタイムを必要とする。そし
て、ページをより効率的にコピーする方法が切に望まれ
ている。
【0054】1つの非常に効率的な方法は、"copy data
cache line"命令を供給することである。その命令が遅
い場合でも、この命令は、ページをコピーする現在の方
法よりも著しく速い。次に、代表的なデータ処理マシー
ンがコピーすることができるサイクル当たりのバイト数
と比較する。
【0055】 バイト/サイクル マシーン 2 RS/6000 Model 530 - 固定小数点 4 RS/6000 Model 530 - 浮動少数点 このため、4サイクルコピーキャッシュラインは、浮動
少数点レジスタ(32バイト/キャッシュラインとす
る)を用いて、2倍だけ速くデータを移動させることに
なる。コピーキャッシュライン命令はメモリからの'to
adress' を取り出すことはない。このことは、コピーキ
ャッシュライン命令はキャッシュミスの少なくとも1/2
を保管し、従って、ヒット率を改善するという点で、さ
らに別のパフォーマンスの効果である。
【0056】キャッシュラインコピーをRISC型プロセッ
サにインプリメントするのに、3つの公知の任意指定が
存在する。
【0057】1)2つのメモリアドレス、すなわち、RA
+ RB と(RA + 1) + RB を有する命令を有する。2つの
メモリアドレスのうちの一方はソースを指し、他方はデ
スティネーションを指す。ただし、RA + 1はRAの直後の
レジスタである。これは、ソフトウェアに対する簡単な
インタフェースであり、一般的に有用であるが、インプ
リメントは非常に複雑である。というのは、他のRISC型
命令は2つのメモリアドレスを有するからである。
【0058】2)ソースアドレスまたはターゲットアド
レスのいずれかを含む新しい特定のレジスタを規定し、
しかも、RA + RB からその特定のレジスタのアドレスに
コピーし、その特定のレジスタのアドレスからRA + RB
にコピーする新しい命令を規定する。これもインプリメ
ントするのは複雑である。さらに、ソフトウェアはこの
新しいレジスタをどのようにハンドルするかに気を配ら
なければならない(すなわち、そのレジスタが新たにプ
ロセス状態の一部となるか、あるいは、割り込みをデセ
ーブルにしてランするのにこのコードを必要とする順次
使用可能なレジスタになるかのいずれかである)。
【0059】3)2つの新しい特権命令を規定する。第
1の特権命令はdcmtrb(Data Cache Move to Reload Buf
fer;データキャッシュのリロードバッファへの移動 )で
ある。第2の特権命令はdcrrb(Data Cache Rename Relo
ad Buffer;データキャッシュリネームリロードバッファ
)である。CRB (Cache Reload Buffer; キャッシュリ
ロードバッファ)はインプリメンテーションレジスタで
あり、このレジスタは現在リロードされているラインを
含むデータキャッシュの1ライン追加セットのようにア
クトする。レジスタをこのようにソフトウェアにエクス
ポーズすることにより、コピーキャッシュライン機能を
ソフトウェアでパフォームすることができる。
【0060】データキャッシュ移動およびリネームをイ
ンプリメントする好ましい例を説明する。図1を説明す
る。標準の中央処理装置(CPU) 10はアドレス信号とデ
ータ信号を生成し、バス12上に出力する。このバスは
CPU10をシステムメモリ50と、データキャッシュ
アレイ20と、タグアレイ30と、CRB タグアレイ60
とに接続され、同様に、タグマッチングロジック70
と、CRB タグマッチングロジック80とに接続されてい
る。さらに、CPU10はバス14を介してマルチプレ
クサ16およびマルチプレクサ22に接続されている。
マルチプレクサ16はキャッシュリロードバッファ(CR
B) 18にアクセスし、マルチプレクサ22はデータキ
ャッシュアレイ20にアクセスする。CPU10による
キャッシュリロードバッファとデータキャッシュアレイ
への特定のアクセス例を次に説明する。
【0061】データキャッシュアレイ20は当業者に公
知の高速read/writeメモリの慣用のアレイであり、CP
U10に対するデータキャッシュとして用いられる。デ
ータの完全なキャッシュライン(好ましい例では、32
バイト)がそのキャッシュに書き込み実行可能になるま
で、システムメモリ50からのバッファデータに対し
て、キャッシュリロードバッファ18が用いられる。タ
グアレイ30は1キャッシュラインごとに1エントリを
データキャッシュアレイ20に含む。その1エントリは
所定のキャッシュライン記憶場所のシステムメモリアド
レスの値を備えている。CRB タグアレイ60は、データ
キャッシュアレイ20に書き込む予定のデータに対応す
るアドレスをキャッシュリロードバッファ18に一時的
にストアするためのバッファである。キャッシュリロー
ドバッファ18のデータがデータキャッシュアレイ20
内の記憶場所に転送される場合、CRB タグアレイ60に
ストアされた値は、タグアレイ30の対応する記憶場所
に転送される。次に、CRB タグアレイとタグアレイ30
の間でデータ転送をし、同様に、キャッシュリロードバ
ッファ18とデータキャッシュアレイ20の間でのデー
タ転送は、さらに図2ないし図5を参照して説明する。
【0062】制御ロジック40は図1に示す全体的なデ
ータフローを制御する。制御ロジック40はCPU10
と、CRB マルチプレクサ16と、CRB 18と、データキ
ャッシュアレイマルチプレクサ22と、データキャッシ
ュアレイ20とに結合される。さらに、制御ロジックは
タグマッチングロジック70と、CRB タグマッチングロ
ジック80とに結合されている。タグマッチングロジッ
ク70および80はバス12上に存在するアドレス間で
いつマッチングがとれたかを検知する。しかも、タグア
レイ30またはCRB タグアレイ60のいずれかにストア
されたアドレス間でいつマッチングがとれたかを検知す
る。
【0063】慣用のキャッシュシステムでは、CPU1
0はバス12を介してデータにアクセスする。そのパフ
ォーマンスの場合、キャッシュ20を用いて、CPU1
0にデータを直ちに供給する。そのキャッシュはシステ
ムメモリ50に駐在するデータの一部を局所的にコピー
する。そのキャッシュは、前のCPU命令でCPU10
により最近(recently)にアクセスされたデータに、近い
か、あるいは近接するデータを備えている。従って、C
PU10によりアクセスされる次のデータが、システム
メモリ50にのみに駐在するより、(比較的速いアクセ
スタイムを有する)キャッシュ20に駐在する確率の方
が高い。
【0064】CPU10はアドレスをバス12に入れ
て、このようなアドレスからデータを読み出すと、タグ
マッチングロジック70は、タグアレイ30のアドレス
と比較することにより、そのアドレスがデータキャッシ
ュアレイに現在存在するキャッシュラインのアドレスと
一致するか否かを判定する。このタグアレイ30がその
キャッシュにストアされた対応するデータラインのアド
レスを備えていると、このタグマッチングロジック70
はバス12上のアドレスと、タグアレイ30に記憶され
た値とを比較することができる。一致した場合、すなわ
ち、データキャッシュアレイ20がCPU10によりシ
ークされたデータ項目を含む場合、CPU10は要求さ
れたデータをキャッシュ20から取り出す。このこと
は、タグマッチングロジック70が信号線24を介して
制御ロジック40に、一致が検出されたことをシグナル
するので分かる。そして、制御ロジックは信号線26を
介してキャッシュアレイ20をイネーブルにし、そのキ
ャッシュアレイ20に含まれる要求されたデータを信号
線28を介してCPU10に転送する。一致が検出され
ない場合、すなわち、データキャッシュアレイがCPU
10によりシークされたデータ項目を含まない場合は、
タグマッチングロジックが検査され、要求されたデータ
が既にキャッシュリロードバッファ(CRB) 18にバッフ
ァリングされており、キャッシュ20へのストアを待つ
(図2を参照して詳細に説明する)。このことは、バス
12上のアドレスをCRB タグアレイ60にストアされた
値と比較することにより行われる。その検査の結果は、
信号線25を介して制御ロジック40に転送される。一
致が検出された場合、制御ロジック40により、CRB 1
8からのデータは信号線29を介してCPU10に転送
される。一致がタグマッチングロジック70および80
により検出された場合は、ミスが生じる。これは、キャ
ッシュラインを、システムメモリ50からのデータを用
いて、データキャッシュにロードしなければならないこ
とを意味する。多分、隣接データ、またはごく隣接した
データが実質的にCPUから要求されるので、キャッシ
ュラインは要求された実際のデータを超えるデータを含
む。従って、キャッシュラインに要求された実際のデー
タがロードされ、同様に、システムメモリ50にストア
されたデータの隣接するバイト/ワードがロードされ
る。再び、(ミスのため)キャッシュラインをロードす
るこの必要性は、タグマッチングロジック70および8
0を用いて検出される。そのことは、信号線24および
25を介して制御ロジック40に次のことをシグナルす
る。すなわち、タグアレイ30またはCRB タグアレイ6
0にストアされたアドレスが、バス12上に存在するア
ドレスに等しくないことをシグナルする。この時点で、
データはパス13上のシステムメモリ50から読み出さ
れ、制御ロジック40により制御されたマルチプレクサ
16を介して、パス17上のキャッシュリロードバッフ
ァ18にバッファリングされる。データ分の完全なキャ
ッシュラインがパス21上のデータキャッシュアレイ2
0にストア可能になるまで、このキャッシュリロードバ
ッファを用いて、システムメモリ50から受信されるデ
ータをバッファリングする。CRB 18が一杯になると、
制御ロジック40はマルチプレクサ22をイネーブルに
してCRB 18からのデータをキャッシュ20の特定の記
憶場所にロードする。このことは、次の利用可能なサイ
クルの間に生じるか、あるいは、その後のキャッシュミ
スが生じるまで延期される。次に、このことを説明す
る。
【0065】図2を説明する。図2はアドレス1からの
ロードミスの間のキャッシュオペレーションに対する一
方法を示す。再び、ロードミスとは、CPU10がアド
レス1からのデータをロードしようと試みたことを意味
し、このデータはデータキャッシュアレイ20に現在存
在しないが、(図1に示す)より遅いシステムメモリ5
0に存在する。従って、データキャッシュアレイ20に
システムメモリ50からのデータが新たに供給されなけ
ればならない。図2はCRB 18と、データキャッシュア
レイ20と、CRB タグアレイ60と、タグアレイ30と
を示す。CRB 18はデータキャッシュアレイ20にスト
アされる1ラインのデータを含む。このデータキャッシ
ュアレイ20は複数次元のアレイであり、そのアレイに
複数ラインのデータを、例えば、記憶場所32および3
4に、ストアすることができる。各記憶場所には、好ま
しい実施例では、完全なキャッシュラインが含まれる。
しかし、他の構成、例えば、全キャッシュラインに対し
て2つ以上の記憶場所を必要とする構成は、本発明の精
神および範囲を逸脱しないで可能である。CRB タグアレ
イ60はタグアレイ30にロードされるアドレス(アド
レス1)を含む。このアドレスはCRB 18に存在するデ
ータと一致する。タグアレイ30は複数記憶場所、例え
ば、記憶場所36および38を含む。ここで、キャッシ
ュアレイ20にストアされたデータに一致するアドレス
がストアされる。例えば、32で示すキャッシュライン
にストアされたデータは36で示すタグアレイ30にス
トアされるアドレスを有する。図2に示すように、(C
PU10により要求された)アドレス1の1ラインのデ
ータは、18で示すCRB にバッファリングされる。アド
レス1はCRB タグアレイ60にバッファリングされる。
このデータおよびアドレス情報は、対応するデータキャ
ッシュアレイ20およびタグ記憶場所30にストアされ
ることになる。その情報は空の記憶場所34および38
にストアするか、あるいは空の記憶場所が存在しない場
合は最近アクセスされた(recently accessed) 記憶場所
のいずれかにストアされる。一例では、CRB 18および
CRB タグアレイ60がその後のロードまたはストアミス
により必要とされるまで、データおよびアドレスがキャ
ッシュおよびタグに転送されない。他の例では、CRB デ
ータおよびCRB タグの場合は、CRB データおよびCRB タ
グを、キャッシュへのアクセスを必要としないシステム
サイクルの間、キャッシュアレイおよびタグに転送する
ことができる。従って、システムスループットの遅延が
軽減される。
【0066】図1を説明する。CPUストアオペレーシ
ョンを説明する。CPU10はストアオペレーションを
開始すると、ロードオペレーションを説明する際に既に
説明した方法と同様にして、タグマッチングロジック7
0および80を用いて、タグアレイ30およびCRB タグ
アレイ60をバス12上のアドレスに対して検査しなけ
ればならない。キャッシュヒットがタグアレイ30で検
知されると(アドレスのマッチングがタグアレイ30で
検知され、しかも、データキャッシュアレイ20が書き
込まれるデータのコピーを含む)、制御ロジック40は
信号線21′を介してマルチプレクサ22にディレクト
し、CPU10からのデータをデータパス14および1
7′を介してデータキャッシュアレイ20にストアす
る。キャッシュヒットがCRB タグアレイ60上で検知さ
れると(アドレスマッチングがCRBタグアレイ60で検
知され、CRB 18が書き込まれるデータのコピーを含む
とき)、制御ロジック40は信号線19上のマルチプレ
クサ16をディレクトし、CPU10からのデータをデ
ータパス14および15を介してCRB 18にストアす
る。タグ30またはCRB タグアレイ60のいずれかに対
してヒットがない場合、ストアミスが生じる。
【0067】図3はアドレス2に対するストアミスを示
す。ストアミスとは、CPU10がアドレス2に対する
データストアを開始するが、キャッシュ20もCRB 18
(データキャッシュアレイ20を拡張したものである)
もアドレス2データの局所的なコピーを含まない。
【0068】前にロードされたデータは、アドレス1か
らキャッシュアレイ20に転送され、対応するタグエン
トリは記憶場所38に存在する。アドレス2にストアさ
れるデータは、CRB 18に一時的に駐在し、対応するCR
B タグバッファ60に駐在する。空の記憶場所か、ある
いはLRU(least recently used)記憶場所が42で示すキ
ャッシュアレイに存在し、対応するタグは記憶場所44
に存在する。
【0069】図4を説明する。キャッシュアレイ20は
アドレス1からのデータを記憶場所34に含む。このデ
ータは(図2を参照して上述したような)前のロードコ
マンドにより得られる。このキャッシュライン34に対
する対応するタグアドレスは、記憶場所38にストアさ
れる。アドレス1からアドレス2に1ページのデータを
コピーするロード/ストアオペレーションは、実行され
ているCPU命令のストリームが非常に良く似ているの
が典型的であり、しかも、キャッシュアレイ20にスト
アする前にキャッシュラインをバッファリングするのに
CRB 18を用いることが典型的である場合、その命令列
はアドレス1からのデータをロードし、そのデータをア
ドレス2にストアし、図4に示す状態にする。CRB 18
はアドレス1からのデータを、そのデータをコピーする
ストア命令の結果として含む。これは通常生じることで
はない。それは、1ページのデータが記憶場所(例え
ば、アドレス1)から記憶場所(アドレス2)にコピー
されるとき、同一のデータを用いて、ロード/ストアの
シーケンスが生じるからである。システムフォーク(for
k)オペレーションが生じるとき、Unixオペレーティング
システムでは、頻繁に、ページをこのようにコピーする
必要がある。このフォークにより子が生成(spawn) さ
れ、しかも、その子はそのフォークオペレーションの前
に親が保持した環境の複製コピーを必要とする。
【0070】図5は図4の結果を示す。これは、CRB お
よびCRB タグ情報が、アドレス3に対するミスの結果と
して(CRB の使用をプロンプトして、キャッシュにミス
データをロードする)、キャッシュアレイ20およびキ
ャッシュタグ30に転送されている。理解できることで
あるが、このため、データのコピーがキャッシュアレイ
の記憶場所34(図5参照)および42に記憶される。
ストア命令により、アドレス2からのデータがアドレス
1からのデータにより実質的に置換されたとしても、ア
ドレス2からのデータを転送するのに、さらにシステム
サイクルが必要である。
【0071】このアプローチは、RISC System/6000のよ
うなシステムにページをコピーする技術の現状を示す。
これには主に2つの不都合がある。1)コピーされたデー
タはデータキャッシュアレイ内に2ライン分を占有し、
データキャッシュがより非効率的に使用され、しかも、
キャッシュミス率が増加する。2)アドレス2からのデー
タが不必要にCRB 18にコピーされ、従って、システム
メモリバンド幅およびCPUサイクルが消費される。
【0072】図6を説明する。図6は、図2に示す命令
と同様のdcmtrb命令を実行することにより生じるミスを
示す。アドレス1からのデータ、すなわち、キャッシュ
にその前に存在しないデータが、CRB 18にバッファリ
ングされる。アドレス1からのデータはCRB 60にスト
アされたアドレス1のアドレスを有する。dcmtrb命令
は、LRU キャッシュラインを選択して、データキャッシ
ュアレイ30に空のスロットを作成する必要がない。と
いうのは、dcmtrb命令は、このエントリがデータキャッ
シュアレイ30に転送されず、従って、そのキャッシュ
で1ラインだけ省かれることになるからである。
【0073】dcrrb 命令を実行した結果は図7から充分
理解することができる。1ページのデータをコピーする
のに用いられる前のロード/ストアシーケンスに対し
て、dcrrb 命令により、CRB タグアレイ60にストアさ
れたアドレス値のみを修正することができる。CRB に対
するその後のオペレーションにより、アドレス2からの
データをCRB にロードする必要はない。
【0074】最後に、dcmtrb/dcrrb対を供給した結果は
図5よりも図8から明らかである。図8は、図7からの
CRB およびCRB タグ情報が、アドレス3に対するミスの
結果として(よって、CRB の使用をプロンプトし、その
伝送がトリガされる)、キャッシュアレイ20およびタ
グ30にどのように転送されたかを示す。アドレス1か
らのデータ、すなわち、図7に18で示すCRB に存在す
るデータは、キャッシュアレイ20のキャッシュライン
42に今移動される。対応するアドレス(アドレス
2)、すなわち、図7に60で示すCRB タグに存在する
アドレスは、タグアレイ30の記憶場所44に移動され
る。記憶場所46および48は空のままであり、アドレ
ス3からのデータおよびアドレスの受信が実行可能であ
る。アドレス1からのデータ(図5の34)の複製コピ
ーは、このアプローチを用いて存在せず、データのこの
ような複製を除去することによりキャッシュの利用が改
善される。全体的なシステムパフォーマンスがキャッシ
ュアレイのサイズによりインパクトされると、高速アク
セスのため、キャッシュはシステムメモリに対して比較
的高価であるので、このアプローチを用いたシステムの
コスト/パフォーマンスは大幅に改善される。
【0075】ハードウェアフローを記述したので、その
ハードウェアをドライブするのに用いられるソフトウェ
アオペレーションを記述する。データキャッシュのリロ
ードバッファへの移動(dcmtrb)と呼ばれる命令は、デー
タをキャッシュリロードバッファに移動するのに供給さ
れる。図9を説明する。命令62は、オペコード64
と、一時レジスタ66と、レジスタA 68と、レジス
タB 72と、拡張オペコード74とを有する。dcmtrb
オペコード64を有する命令62に対して、CRBに移動
されるキャッシュラインのアドレスは、レジスタA(RA)
68の内容とレジスタB(RB)72を加算することにより
計算される。このアドレスによりアドレスされるバイト
を含むラインは、データキャッシュに既に存在する場
合、キャッシュリロードバッファにコピーされる。この
アドレスによりアドレスされるバイトを含むラインは、
データキャッシュラインに既に存在しない場合、置換の
ために1ラインを選択せずに、キャッシュリロードバッ
ファに直接コピーされる。
【0076】また、データキャッシュリネームリロード
バッファ(dcrrb) が供給される。dcrrb オペコード64
を有する命令62を図9を参照して説明する。CRB がリ
ネームされるアドレスがレジスタA(RA)68とレジスタ
B(RB)72の内容を加算することにより計算される。デ
ータキャッシュアレイの1ラインがこのアドレスにより
アドレスされたバイトを含む場合は、そのラインは無効
である。キャッシュリロードバッファのディレクトリエ
ントリにマークが付けられ、アドレスされたバイトを含
む記憶のキャッシュラインサイズのブロックのデータを
含み、しかも、1ラインが置換のために選択されること
を、このキャッシュラインにより示される。
【0077】R2により指されたページをR3により指され
たページにコピーするコードは、表1のようになる。
【0078】
【表1】 load r4,0 インデックスレジスタをクリア loop: dcmtrb (r2,r4) ラインをcrb にロード dcrrb (r3,r40 リネーム addi r4,r4,32 インデックスをキャッシュラインサイズだけイン クリメント bdn loop 分岐およびカウンタのデクリメント R2は第1キャッシュラインのアドレスをソースページに
含み、R3は第1キャッシュラインのアドレスをデスティ
ネーションページに含む。R4はインデックスレジスタと
して用いられる。(分岐およびデクリメント(bdn) 命令
により用いられる)カウンタは、ライン数をそのページ
に含む。
【0079】繰り返すため、キャッシュラインをリネー
ムする機能が果たされる。データを記憶場所から記憶場
所にコピーするのに、慣用のオペレーティングによりパ
フォームされたロード/ストアシーケンスは、データが
一度ストアされると、データからコピーされたものは必
要としない。しかし、慣用的なアプローチはこのデータ
を必要としないが、キャッシュに保持されているデータ
の複製コピーが得られる。我々は、データの複製を認識
し除去することにより、キャッシュベースシステムのコ
スト/パフォーマンスを大幅に改善した。従って、キャ
ッシュストア非効率を最小にし、同様に、キャッシュと
のデータトラフィックを最小にすることができる。
【0080】以上、本発明の実施例を説明したが、本発
明の精神および範囲を逸脱することなく種々の変更を行
うことができることは、当業者にとって当然のことであ
る。
【0081】
【発明の効果】以上説明したように、本発明によれば、
上記のように構成したので、データ処理システムの全体
的なシステムパフォーマンスを改善することができる。
【図面の簡単な説明】
【図1】キャッシュを有するデータ処理システムのシス
テムデータフローを示すブロック図である。
【図2】ロードミスが生じた後のキャッシュの状態と対
応するデータタグを示す図である。
【図3】ストアミスが生じた後のキャッシュの状態と対
応するタグを示す図である。
【図4】CPU命令のロード/ストアシーケンスが生じ
た後のキャッシュの状態と対応するタグを示す図であ
る。
【図5】CPU命令のロード/ストアシーケンスの後に
ミスが生じた場合のキャッシュの状態と、対応するタグ
を示す図である。
【図6】ロードミスが生じた後のキャッシュの状態と、
対応するタグを示す図である。
【図7】リネームCRB命令が生じた後のキャッシュの
状態と、対応するタグを示す図である。
【図8】CPU命令のロード/リネームシーケンスの後
にミスが生じた場合のキャッシュの状態と、対応するタ
グを示す図である。
【図9】dcmtrbおよびdcrrb 命令のフォーマットを示す
図である。
【符号の説明】
10 CPU 12,14 バス 16,22 マルチプレクサ 18 キャッシュリロードバッファ 20 データキャッシュアレイ 30 タグアレイ 40 制御ロジック 50 システムメモリ 60 CRB タグアレイ 70 タグマッチングロジック 80 CRB タグマッチングロジック
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ジョン トーマス オークィン ザ セ カンド アメリカ合衆国 78727 テキサス州 オースチン ハローデン ドライブ 2700 (56)参考文献 欧州特許出願公開280954(EP,A) 欧州特許出願公開375883(EP,A)

Claims (5)

    (57)【特許請求の範囲】
  1. 【請求項1】 プロセッサと、主記憶と、キャッシュと
    相互結合したデータ処理装置であって、ディレクトリを
    有するキャッシュ・リロード・バッファと相互結合した
    データ処理システムで、データを移動させ、前記主記憶
    と前記キャッシュの間のキャッシュミス・トラフィック
    を減少させる方法であって、 前記主記憶または前記キャッシュから第1のアドレスの
    1ラインのデータを前記キャッシュ・リロード・バッフ
    ァにロードするステップと、 前記第1のアドレスを前記バッファ・ディレクトリにロ
    ードするステップと、 前記バッファ・ディレクトリの前記第1のアドレスを第
    2のアドレスに変更するステップと、 前記第1のアドレスを有する前記キャッシュの任意のデ
    ータを前記バッファ・ディレクトリのアドレスの変更に
    応答して無効にして前記キャッシュのストア効率を改善
    するステップとを備えたことを特徴とする方法。
  2. 【請求項2】 プロセッサと、主記憶と、キャッシュと
    相互結合したデータ処理装置であって、ディレクトリを
    有するキャッシュ・リロード・バッファと相互結合した
    データ処理システムで、データを移動し、前記主記憶
    と、前記キャッシュの間のキャッシュミス・トラフィッ
    クを減少させるシステムであって、 前記主記憶または前記キャッシュから第1のアドレスの
    1ラインのデータを前記キャッシュ・リロード・バッフ
    ァにロードする手段と、 前記第1のアドレスを前記バッファ・ディレクトリにロ
    ードする手段と、前記バッファ・ディレクトリの前記第
    1のアドレスを第2のアドレスに変更する手段と、 前記第1のアドレスを有する前記キャッシュの任意のデ
    ータを前記バッファ・ディレクトリのアドレスの変更に
    応答して無効にして前記キャッシュのストア効率を改善
    する手段とを備えたことを特徴とするシステム。
  3. 【請求項3】 データ処理システムのデータを移動させ
    て、主記憶とキャッシュの間のキャッシュミス・トラフ
    ィックを減少させるシステムにおいて、 CPUと、 該CPUに結合した手段であって、前記データ処理シス
    テムの前記主記憶または前記キャッシュから第1のアド
    レスの1ラインのデータをキャッシュ・リロード・バッ
    ファにロードする手段と、 前記キャッシュ・リロード・バッファと関係付けをした
    バッファ・ディレクトリに、前記第1のアドレスをロー
    ドする手段と、 前記CPUに結合した手段であって、前記バッファ・デ
    ィレクトリの前記第1のアドレスを第2のアドレスに変
    更する手段と、 前記第1のアドレスを有する前記キャッシュの任意のデ
    ータを、前記バッファ・ディレクトリのアドレス変更に
    応答して無効にして前記キャッシュのストア効率を改善
    する手段とを備えたことを特徴とするシステム。
  4. 【請求項4】 プロセッサと、主記憶と、キャッシュ・
    アレイと相互結合したデータ処理システムであって、デ
    ィレクトリを有するキャッシュ・リロード・バッファと
    相互結合したデータ処理システムで、キャッシュライン
    をリネームして前記キャッシュ・アレイのストア効率を
    改善する方法であって、 前記キャッシュ・アレイから第1のアドレスの最初のラ
    インのデータを前記キャッシュ・リロード・バッファに
    転送するステップと、 前記第1のアドレスを前記バッファ・ディレクトリにロ
    ードするステップと、 前記バッファ・ディレクトリの前記第1のアドレスを第
    2のアドレスに変更するステップと、 前記第1のアドレスを有する前記キャッシュの任意のラ
    インのデータを前記バッファ・ディレクトリの前記第1
    のアドレスから前記第2のアドレスへの変更に応じて無
    効にして前記キャッシュの1つ以上のラインを利用可能
    にするステップと、 前記第2のアドレスの最初のラインのデータを、前記キ
    ャッシュ・リロード・バッファから前記キャッシュ・ア
    レイの1つのラインに、キャッシュミスに応答して転送
    するステップとを備えたことを特徴とする方法。
  5. 【請求項5】 キャッシュ・ラインをリネームしてキャ
    ッシュ・アレイのストア効率を改善するシステムであっ
    て、 前記キャッシュ・アレイから第1のアドレスの最初のラ
    インのデータをキャッシュ・リロード・バッファに転送
    する手段と、 前記キャッシュ・リロード・バッファに関係付けをした
    バッファ・ディレクトリに前記第1のアドレスをロード
    する手段と、 前記バッファ・ディレクトリの前記第1のアドレスを第
    2のアドレスに変更する手段と、 前記第1のアドレスを有する前記キャッシュアレイの任
    意のラインのデータを前記バッファ・ディレクトリの前
    記第1のアドレスから前記第2のアドレスへの変更に応
    答して無効にして前記キャッシュアレイのストア効率を
    改善する手段と、 前記第2のアドレスの最初のラインのデータを、前記キ
    ャッシュ・リロード・バッファから前記キャッシュ・ア
    レイの1つのラインに、キャッシュミスに応答して転送
    する手段とを備えたことを特徴とするシステム。
JP5206635A 1992-09-24 1993-08-20 メモリアクセス方法およびシステム Expired - Lifetime JP2737820B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US95035192A 1992-09-24 1992-09-24
US950351 1997-10-14

Publications (2)

Publication Number Publication Date
JPH06161893A JPH06161893A (ja) 1994-06-10
JP2737820B2 true JP2737820B2 (ja) 1998-04-08

Family

ID=25490318

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5206635A Expired - Lifetime JP2737820B2 (ja) 1992-09-24 1993-08-20 メモリアクセス方法およびシステム

Country Status (3)

Country Link
US (1) US5555400A (ja)
EP (1) EP0589661A1 (ja)
JP (1) JP2737820B2 (ja)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3078204B2 (ja) * 1995-06-01 2000-08-21 株式会社東芝 磁気ディスク装置及び磁気ディスク装置におけるバッファ管理方法
US6658552B1 (en) * 1998-10-23 2003-12-02 Micron Technology, Inc. Processing system with separate general purpose execution unit and data string manipulation unit
US7111125B2 (en) * 2002-04-02 2006-09-19 Ip-First, Llc Apparatus and method for renaming a data block within a cache
US6901483B2 (en) * 2002-10-24 2005-05-31 International Business Machines Corporation Prioritizing and locking removed and subsequently reloaded cache lines
EP1544742A1 (en) * 2003-12-17 2005-06-22 Alcatel Method for reducing the processing time of a data processing device
CN101546282B (zh) * 2008-03-28 2011-05-18 国际商业机器公司 用于在处理器中执行写拷贝的方法和设备
US8473567B2 (en) * 2010-03-29 2013-06-25 Intel Corporation Generating a packet including multiple operation codes
US9652387B2 (en) 2014-01-03 2017-05-16 Red Hat, Inc. Cache system with multiple cache unit states
US10042580B2 (en) 2015-11-05 2018-08-07 International Business Machines Corporation Speculatively performing memory move requests with respect to a barrier
US10067713B2 (en) 2015-11-05 2018-09-04 International Business Machines Corporation Efficient enforcement of barriers with respect to memory move sequences
US10152322B2 (en) * 2015-11-05 2018-12-11 International Business Machines Corporation Memory move instruction sequence including a stream of copy-type and paste-type instructions
US9996298B2 (en) 2015-11-05 2018-06-12 International Business Machines Corporation Memory move instruction sequence enabling software control
US10241945B2 (en) 2015-11-05 2019-03-26 International Business Machines Corporation Memory move supporting speculative acquisition of source and destination data granules including copy-type and paste-type instructions
US10126952B2 (en) 2015-11-05 2018-11-13 International Business Machines Corporation Memory move instruction sequence targeting a memory-mapped device
US10346164B2 (en) 2015-11-05 2019-07-09 International Business Machines Corporation Memory move instruction sequence targeting an accelerator switchboard
US10331373B2 (en) * 2015-11-05 2019-06-25 International Business Machines Corporation Migration of memory move instruction sequences between hardware threads
US10140052B2 (en) 2015-11-05 2018-11-27 International Business Machines Corporation Memory access in a data processing system utilizing copy and paste instructions
CN108572926B (zh) * 2017-03-13 2022-02-22 阿里巴巴集团控股有限公司 一种用于同步中央处理器所属缓存的方法和装置

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4028675A (en) * 1973-05-14 1977-06-07 Hewlett-Packard Company Method and apparatus for refreshing semiconductor memories in multi-port and multi-module memory system
JPS5730179A (en) * 1980-07-29 1982-02-18 Fujitsu Ltd Buffer memory control system
US4400770A (en) * 1980-11-10 1983-08-23 International Business Machines Corporation Cache synonym detection and handling means
US4797814A (en) * 1986-05-01 1989-01-10 International Business Machines Corporation Variable address mode cache
EP0280954B1 (de) * 1987-02-16 1991-04-24 Siemens Aktiengesellschaft Verfahren zur Steuerung des Datenaustausches zwischen Verarbeitungseinheiten und einem Speichersystem mit Cachespeicher in Datenverarbeitungsanlagen, sowie ein entsprechend arbeitender Cachespeicher
EP0348628A3 (en) * 1988-06-28 1991-01-02 International Business Machines Corporation Cache storage system
JPH02141846A (ja) * 1988-11-24 1990-05-31 Hitachi Ltd バッファメモリ制御方式
US5313613A (en) * 1988-12-30 1994-05-17 International Business Machines Corporation Execution of storage-immediate and storage-storage instructions within cache buffer storage
EP0375883A3 (en) * 1988-12-30 1991-05-29 International Business Machines Corporation Cache storage system
US5226169A (en) * 1988-12-30 1993-07-06 International Business Machines Corp. System for execution of storage-immediate and storage-storage instructions within cache buffer storage
JPH02213960A (ja) * 1989-02-14 1990-08-27 Hitachi Ltd キャッシュメモリ
JPH0661068B2 (ja) * 1989-07-18 1994-08-10 株式会社日立製作所 記憶再配置方法および階層化記憶システム
US5170476A (en) * 1990-01-22 1992-12-08 Motorola, Inc. Data processor having a deferred cache load
US5197144A (en) * 1990-02-26 1993-03-23 Motorola, Inc. Data processor for reloading deferred pushes in a copy-back data cache
US5261066A (en) * 1990-03-27 1993-11-09 Digital Equipment Corporation Data processing system and method with small fully-associative cache and prefetch buffers
US5179682A (en) * 1990-05-15 1993-01-12 Sun Microsystems, Inc. Method and apparatus for improved current window cache with switchable address in, out, and local cache registers
US5313609A (en) * 1991-05-23 1994-05-17 International Business Machines Corporation Optimum write-back strategy for directory-based cache coherence protocols

Also Published As

Publication number Publication date
JPH06161893A (ja) 1994-06-10
US5555400A (en) 1996-09-10
EP0589661A1 (en) 1994-03-30

Similar Documents

Publication Publication Date Title
JP2737820B2 (ja) メモリアクセス方法およびシステム
US6456891B1 (en) System and method for transparent handling of extended register states
US4701844A (en) Dual cache for independent prefetch and execution units
US6029212A (en) Method of handling arbitrary size message queues in which a message is written into an aligned block of external registers within a plurality of external registers
JP3218317B2 (ja) 集積キャッシュユニットおよびその構成方法
EP0381470B1 (en) Processing of memory access exceptions along with prefetched instructions within the instruction pipeline of a virtual memory system-based digital computer
EP0115036B1 (en) A hierarchical memory system including separate cache memories for storing data and instructions
JP3285644B2 (ja) キャッシュメモリを有するデータプロセッサ
KR100308677B1 (ko) 복수l1캐쉬라인의파이프라인형스누핑
JP2870207B2 (ja) 延滞キャッシュ・ロードを有するデータプロセッサ
JPH06318177A (ja) キャッシュ・ミス・ペナルティを減少させる方法、装置及びコンピュータ・システム
KR100308682B1 (ko) 다중방향연관외부마이크로프로세서캐쉬
JPH02190930A (ja) ソフトウエア命令実行装置
US4831581A (en) Central processor unit for digital data processing system including cache management mechanism
EP1782184B1 (en) Selectively performing fetches for store operations during speculative execution
JPH0711793B2 (ja) マイクロプロセッサ
JPH0997214A (ja) 補助プロセッサのためのアドレス変換を含む情報処理システム
US5091845A (en) System for controlling the storage of information in a cache memory
EP1039377B1 (en) System and method supporting multiple outstanding requests to multiple targets of a memory hierarchy
KR100308675B1 (ko) 캐쉬어드레스발생방법
US5226170A (en) Interface between processor and special instruction processor in digital data processing system
EP0380842A2 (en) Method and apparatus for interfacing a system control unit for a multiprocessor system with the central processing units
JP3431878B2 (ja) マルチスレッド・プロセッサの命令キャッシュ
JPH0340047A (ja) キヤツシユ・ライン・ストア方法
JPH04251352A (ja) マイクロプロセサのオンチップキャッシュ内のメモリ位置の選択的ロック