JPH07253926A - キャッシュ・ミスによる時間ペナルティ減少方法 - Google Patents

キャッシュ・ミスによる時間ペナルティ減少方法

Info

Publication number
JPH07253926A
JPH07253926A JP7014479A JP1447995A JPH07253926A JP H07253926 A JPH07253926 A JP H07253926A JP 7014479 A JP7014479 A JP 7014479A JP 1447995 A JP1447995 A JP 1447995A JP H07253926 A JPH07253926 A JP H07253926A
Authority
JP
Japan
Prior art keywords
cache
data line
data
memory
main 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.)
Granted
Application number
JP7014479A
Other languages
English (en)
Other versions
JP3618385B2 (ja
Inventor
Gordon Kurpanek
ゴードン・クーパネック
Eric Delano
エリック・デラノ
Michael A Buckley
マイケル・エイ・バックレー
William R Bryg
ウィリアム・アール・ブリグ
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.)
HP Inc
Original Assignee
Hewlett Packard Co
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 Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of JPH07253926A publication Critical patent/JPH07253926A/ja
Application granted granted Critical
Publication of JP3618385B2 publication Critical patent/JP3618385B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related 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
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels
    • 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
    • G06F12/0864Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
    • 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/12Replacement control
    • 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
    • G06F12/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch

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)

Abstract

(57)【要約】 【目的】 最小量のハードウェアの追加のみで、キャツ
シュ・スラッシング挙動を除去できるキャッシュ・ミス
による時間ペナルティ減少方法を提供する。 【構成】 第1のデータ・ラインを主記憶装置11から
補助キャッシュ23に転送する場合に、第1のデータ・
ラインの行先表示がデータ・キャッシュ14の表示をし
ている場合には、第1のデータ・ラインをデータ・キャ
ッシュ14に移動させる。また、第2のデータ・ライン
がデータ・キャッシュ14の外に移動され、第2のデー
タ・ラインが汚染されている場合には、第2のデータ・
ラインを主記憶装置11に戻し、第3のデータ・ライン
に対してプロセッサがアクセスを要求する場合には、第
3のデータ・ラインに対して並行して補助キャッシュ2
3とデータ・キャッシュ14をプロセッサにより探索す
る。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、多重レベル・キャッシ
ュ装置におけるキャッシュ・ミスに起因する時間ペナル
ティを低減させるためのキャッシュ・ミスによる時間ペ
ナルティ減少方法に係わる。
【0002】
【従来の技術】現在のコンピュータ装置の殆どは、中央
処理装置(以下、CPUという)と主記憶装置とを含
む。CPUが命令とオペランドとを復号し実行すること
が可能な速度は、命令とオペランドとが主記憶装置から
CPUに転送される上で可能な転送速度によって決ま
る。主記憶装置から命令とオペランドとをCPUが受け
取るために要する時間を減少させるために、コンピュー
タ装置の多くは、CPUと主記憶装置との間にキャッシ
ュ・メモリを含む。
【0003】キャッシュ・メモリは、CPUによって近
い将来に使用されると推測される主記憶装置内の内容の
一部分を一時的に保持するために使用される小型の高速
バッファ記憶装置である。キャッシュ・メモリの主要な
目的は、データ又は命令の取り出しのためのメモリ・ア
クセスを行うのに要する時間を短縮することである。キ
ャッシュ・メモリ内に存在する情報に対するアクセスに
要する時間は、主記憶装置内に存在する情報に対するア
クセスに要する時間よりも遥かに短い。従って、キャッ
シュ・メモリを有するCPUでは、命令とオペランドと
の取出し及び/又は格納における待ち時間は著しく短く
て済む。
【0004】キャッシュ・メモリは、1ワード以上のデ
ータを含む多数のブロックによって構成される。各ブロ
ックは、そのブロックが主記憶装置のどのブロックのコ
ピーであるかを一意的に同定するアドレス・タグに対応
付けられる。プロセッサがメモリ参照を行う度に、要求
されたデータのコピーがキャッシュ・メモリ内に存在す
るかどうかを調べるためにアドレス・タグ比較が行われ
る。要求されたメモリ・ブロックがキャッシュ・メモリ
内に存在しない場合には、その要求されたブロックが主
記憶装置から検索され、キャッシュ・メモリ内に格納さ
れ、プロセッサに供給される。
【0005】主記憶装置からデータを検索するためにキ
ャッシュ・メモリを使用することに加えて、CPUは、
主記憶装置にデータを直接書き込む代わりにキャッシュ
・メモリ内にデータを書き込むことも可能である。プロ
セッサがキャッシュ・メモリにデータを書き込むことを
必要とする時には、キャッシュ・メモリは、データがそ
の中に書き込まれるべきデータ・ブロックがキャッシュ
・メモリ内に存在するかどうかを調べるために、アドレ
ス・タグの比較を行う。データ・ブロックが存在する場
合には、データがキャッシュ・メモリ内のそのデータ・
ブロック内に書き込まれる。多くの装置の場合には、そ
の後で、そのデータ・ブロックのためのデータ「汚染ビ
ット(dirty bit) 」が設定される。このダーティ・ビッ
トは、当該データ・ブロック内のデータが汚染されてい
る(即ち、変更されている)ということを示し、従っ
て、当該データ・ブロックがキャッシュ・メモリから削
除される前に、その変更されたデータが主記憶装置内に
書き込まれなければならない。データがその中に書き込
まれるはずのデータ・ブロックがキャッシュ・メモリ内
に存在しない時には、そのデータブロックがキャッシュ
・メモリ内に移動させられるか、データが主記憶装置内
に直接書き込まれなければならない。新たなデータがキ
ャッシュ・メモリ内に入れられる時に重ね書きされるか
又はキャッシュ・メモリからコピーされて移動させられ
るデータ・ブロックは、犠牲ブロック又は犠牲ラインと
呼ばれる。
【0006】応用例によっては、第2のキャッシュ・メ
モリが、第1のキャッシュ・メモリと主記憶装置との間
に直列に付加される場合もある。第1のキャッシュ・メ
モリは、典型的には、第2のキャッシュ・メモリ内のデ
ータの部分セットを有する。同様に、第2のキャッシュ
・メモリは、典型的には、主記憶装置内のデータの部分
セットを有する。アクセスされるデータは、最初に、第
1のキャッシュ・メモリ内で探索される。第1のキャッ
シュ・メモリ内でミスがある場合には、そのアクセスさ
れたデータが第2のキャッシュ・メモリ内で探索され
る。第2のキャッシュ・メモリ(以下、キャッシュ・メ
モリを単に「キャッシュ」という)内でミスがある場合
には、そのアクセスされたデータが主記憶装置の外に移
動させられる。
【0007】プロセッサ装置用の2レベル・キャッシュ
の一例では、第1レベルのキャッシュが第2レベルのキ
ャッシュの適正な部分セットである。この「適正な部分
セット」という術語は、第1レベルのキャッシュ内の全
項目が第2レベルのキャッシュ内にも存在するというこ
とを意味する。第2レベルのキャッシュは、第1レベル
のキャッシュ内に存在しない追加の項目を含む。第1レ
ベルのキャッシュは第2レベルのキャッシュよりも容量
が小さく、且つ第2レベルのキャッシュよりもプロセッ
サに近い位置にある。第1レベルのキャッシュは、第2
レベル・キャッシュよりも容量が小さく、且つ第2レベ
ル・キャッシュよりもプロセッサに近い位置にあり、更
には、その対応する第2レベルのキャッシュ又は記憶装
置のアクセス待ち時間よりも短いアクセス待ち時間を有
するので、一般的に性能の改善をもたらすことが可能で
ある。
【0008】通常の動作では、何らかのメモリ参照を実
現するためには、幾つかの異なった動作が必要である。
メモリ参照は一般的にロード命令又は格納命令である。
先ず最初に、最も単純で最も高速度の形で、メモリ参照
が第1レベル・キャッシュ内でヒットすることが可能で
ある。「ヒット(hit) 」とは、「チェックされているキ
ャッシュ(第1レベル又は第2レベル)内に、所期メモ
リ・アドレスのためのデータが存在する場合」と定義さ
れる。「ミス」とは、「チェックされているキャッシュ
(第1レベル又は第2レベル)内に、所期メモリ・アド
レスのためのデータが存在しない場合」と定義される。
第1レベル・キャッシュでヒットがあった時には、サイ
クル・ペナルティはゼロであり、メモリ参照は処理ペナ
ルティなしに完了する。
【0009】その次に最高速度の場合は、第2レベルの
キャッシュ内でヒットが生じる第1レベルのキャッシュ
・ミスである。これは、第2レベルのキャッシュから適
切な16ビット量で単一の第1レベルのキャッシュを満
たすために一連の動作シーケンスが行われることを引き
起こす。その後で、データがプロセッサに送られるか、
格納が完了する。これは、中速度の動作であり、プロセ
ッサは、メモリ参照が完了されるのを待つ間、停止され
られる。
【0010】最低速度の動作は、メモリ参照が第1レベ
ルのキャッシュと第2レベルのキャッシュの両方をミス
する場合である。この例では、主記憶装置から戻り、第
2レベルのキャッシュの中に当該ラインを移動させるた
めに、長い一連の動作シーケンスが開始させられる。こ
のデータが記憶装置から第2レベルのキャッシュにコピ
ーされる時には、第1レベルのキャッシュが再び参照さ
れ、この時には、第2レベルのキャッシュ内でヒットす
る第1レベルのキャッシュ・ミスによる。これは、第2
レベルのキャッシュ・ラインの当該部分が第1レベル・
キャッシュ内に書き込まれると、その後で、要求された
データがプロセッサに供給されるか、格納が完了され
る。
【0011】典型的には、キャッシュ・メモリは直接マ
ッピング型である。即ち、キャッシュ内の1つ以上の項
目にアクセスするために索引が使用される。この場合、
マッチングが生じるかどうかを判定するために、その項
目のためのタグが、アドレスのタグ部分と比較される。
【0012】多方向セット連想キャッシュの場合には、
複数のデータ・ランダム・アクセス・メモリ(以下、R
AMという)に同時にアクセスするために、単一の索引
が使用される。データRAMは、1つ以上の物理RAM
集積回路によって実現されることが可能である。1つの
セットは、単一のキャッシュ索引によってアドレス指定
されるライン全ての集まりである。単一のキャッシュ索
引によってアドレス指定されるデータRAMの数は、キ
ャッシュの方向数を表す。例えば、1つのキャッシュに
おいて2つのデータRAMからデータをアクセスするた
めに単一のキャッシュ索引が使用される場合には、その
キャッシュは2方向セット連想キャッシュである。同様
に、1つのキャッシュにおいて4つのデータRAMから
データをアクセスするために単一のキャッシュ索引が使
用される場合には、そのキャッシュは4方向セット連想
キャッシュである。
【0013】多方向アクセスが行われる場合には、各デ
ータRAM毎にタグ比較が行われる。タグ比較が所期の
データ・ブロックが特定のデータRAM内に存在するこ
とを示す時には、その特定のデータRAMからのデータ
に基づいて/によって、その動作が行われる。
【0014】完全連想キャッシュの場合には、索引は使
用されない。完全連想キャッシュに対してアクセスが行
われる時には、完全連想キャッシュ内の各キャッシュ・
ラインに対してタグ比較が行われる。所期データ・ライ
ンがそのキャッシュ内に存在することをタグ比較が示す
時には、その特定のデータ・ラインからのデータに基づ
いて/によって、その動作が行われる。
【0015】キャッシュ装置の全般的な説明に関して
は、例えばDavid A. Patterson, JohnL. Hennessy, Com
puter Architecture A Quatitative Approach, Morgan
Kauffman Publishers, Inc., San Maeto, California,
1990(1990年、カリフォルニア州、サン・メイ
ト、「モルガン・カフマン出版株式会社」発行、「ダビ
ッド・エイ・パターソン」、「ジョン・エル・ヘネシ
イ」共著、「容量処理方法に関するコンピュータ構
造」)のページ404〜423、ページ454〜464
を参照されたい。
【0016】
【発明が解決しようとする課題】従来技術の装置の1つ
では、完全連想犠牲キャッシュが、より大容量の直接マ
ッピング・キャッシュから犠牲ラインを受け取る。直接
マッピング・キャッシュ内でミスがある時には、完全連
想犠牲キャッシュが、完全連想キャッシュ内に発見され
る場合が時としてある。Norman P. Jouppi, Improving
Direct-Mapped Cache Performance by the Addition of
a Small Fully-Associative Cache and Prefetch Buff
ers, Proceedings17th ISCA,May 1990{19
90年5月、第17回議事録の「ノーマン・ピィ・ジュ
ピィ」による「小容量完全連想キャッシュと、先取りバ
ッファの追加による改善直線マッピング・キャツシュ性
能」のページ364〜373seattle,WA(シアトル,ダ
フリュウ・エイ)}を参照されたい。
【0017】
【課題を解決するための手段】本発明の好適な実施例で
は、キャッシュ装置が、主記憶装置内に格納されプロセ
ッサによって使用されるデータをバッファリングする。
このキャッシュ装置は、第1のキャッシュと、第2のキ
ャッシュと、第1の転送手段と、第2の転送手段と、第
3の転送手段と、アクセス手段とを含む。第1のキャッ
シュは完全連想型である。第2のキャッシュは直接マッ
ピング型である。第1の転送手段は、主記憶装置から第
1のキャッシュにデータ・ラインを転送する。第2の転
送手段は、第1のキャッシュから第2のキャッシュにデ
ータ・ラインを転送する。第3の転送手段は第2のキャ
ッシュから主記憶装置にデータ・ラインを転送する。第
1のキャッシュからデータ・ラインのアクセスと、第2
のキャッシュからのデータ・ラインのアクセスとが、並
行して行われる。
【0018】本発明の好適な実施例では、第2のキャッ
シュ内に索引を生成するためにハッシュ関数が使用され
る。その索引によってアクセスされるデータ・ラインの
ためのタグが、第2のキャッシュ内でヒットがあったか
どうかを判定するために、所期データ・ラインのための
タグと比較される。
【0019】第1のキャッシュに対するデータ・アクセ
ス1回毎に、ヒットがあるかどうかを判定するために、
第1のキャッシュ内の全データ・ラインのためのタグが
チェックされる。内容参照可能メモリが第1のキャッシ
ュのためのタグを記憶する。データ・ラインが、先入れ
先出し(以下、FIFOという)記憶装置の形の第1の
キャッシュによって格納される。
【0020】更に、この好適な実施例では、データ・ラ
インが第1のキャッシュの外に移動させられる時のデー
タ・ラインのための行先を示す表示が、第1のキャッシ
ュ内の各データ・ラインと共に格納される。この表示
は、データ・ラインが第2のキャッシュ・ラインに移動
させられるのか又は主記憶装置に移動させられるかを表
示する。
【0021】更に、この好ましい実施例では、データが
第1のキャッシュ内に先取りされるためのメモリ空間を
与えるために、予め決められた数より多くのデータ・ラ
インを第1のキャッシュが含む時に、データ・ラインが
1度に2つずつ第1のキャッシュの外に移動させられ
る。これら2つのデータ・ラインが第2のキャッシュ内
の同一の記憶場所にマッピングされる時には、これら2
つのデータ・ラインのどちらか一方が主記憶装置に移動
させられる。
【0022】例えば、特定のタイプのデータ・アクセス
の場合には、プロセッサは、キャッシュ・ミスがある場
合に使用されることになっている、又は、「ヒット」デ
ータ・ラインのための参照ビットがゼロにセットされ
る、第1のキャッシュ内のデータ・ライン上でヒットが
ある場合に使用されることになっている、先取りアドレ
スを生成する。先取りアドレスのためのデータ・ライン
が既に第1と第2のキャッシュ内に存在する時には、更
に動作を行う必要はない。先取りアドレスのためのデー
タ・ラインが既に第1と第2のキャッシュ内に存在しな
い時には、先取りアドレスのためのデータ・ラインが先
取りされる。先取りデータ・ラインのための参照ビット
がクリアされ(即ち、ゼロにセットされ)、先取りデー
タ・ラインが参照されなかったことを表示する。「未参
照(unreferenced)」という印を付けられている第1のキ
ャッシュ内のデータ・ラインにおいてキャッシュ・ヒッ
トがある場合には、参照ビットが、そのデータ・ライン
の参照が現時点で完了したということを表示する「1」
にセットされる。この好適な実施例では、「未参照」と
いう印を付けられている第1のキャッシュ内のデータ・
ライン上においてキャッシュ・ヒットがあり、かつ先取
りアドレスが生成され終わっている時には、その先取り
アドレスのためのデータ・ラインがキャッシュの一方の
中に存在しない場合に、その先取りアドレスのためのデ
ータ・ラインが主記憶装置から先取りされ、第1のキャ
ッシュの中に入れられる。先取りデータ・ラインのため
の参照ビットがクリアされ、先取りデータ・ラインが参
照されなかったことを表示する。
【0023】本発明の好適な実施例は、最少量のハード
ウェアの追加だけによって、直接マッピング型キャッシ
ュに典型的に関連したスラッシング挙動を取り除く。
【0024】
【実施例】図1は、コンピュータ装置の単純化したブロ
ック線図である。プロセッサ12と主記憶装置11とが
バス10に接続された形で示されている。プロセッサ1
2は、命令キャッシュ13とデータ・キャッシュ14と
を使用する。命令キャッシュ13は、プロセッサ12用
の命令をスタティック・ランダム・アクセス記憶装置
(以下、SRAMという)内に格納する。データ・キャ
ッシュ14は、プロセッサ12用のデータをSRAM内
に格納する。
【0025】図2は、プロセッサ12の単純化したブロ
ック線図を示す。プロセッサ12は、バス・インターフ
ェース論理回路26と、命令キャッシュ・インターフェ
ース論理回路24と、データ・キャッシュ論理回路25
と、論理演算装置(ALU)22と、アドレス変換バッ
ファ(以下、TLBという)21と、補助キャッシュ2
3とを含む形で示されている。装置のバス・インターフ
ェース論理回路26は、装置のバス10に対するインタ
ーフェースをプロセッサ12に与える。命令キャッシュ
・インターフェース論理回路24は、命令キャッシュ1
3に対するインターフェースをプロセッサ12に与え
る。データ・キャッシュ論理回路25は、データ・キャ
ッシュ14に対するインターフェースをプロセッサ12
に与える。後で更に詳細に説明するように、補助キャッ
シュ23は、論理演算装置22に対してデータを与える
ためにデータ・キャッシュ14と並列に使用される。ア
ドレス変換バッファ21は、補助キャッシュ23内に格
納されたデータとデータ・キャッシュ14内に格納され
たデータとに対してアクセスするために使用されるキャ
ッシュ・タグを生成するために、仮想アドレスを実アド
レスにマッピングするために使用される。
【0026】図3は、データ・キャッシュ装置のための
構成を示す。この好適な実施例では、補助キャッシュ2
3は、64個の完全連想32バイト・キャッシュ・ライ
ンから成る。補助キャッシュ23は、アドレスの一部分
が項目タグ各々と一致させられることを可能にする内容
参照可能メモリ(以下、CAMという)内にタグを格納
する。この好適な実施例では、データ・キャッシュ14
は直接マッピングされ、1メガバイトまでのデータ(3
2K32バイト・キャッシュ・ライン)から成る。
【0027】各キャッシュ・アクセス毎に、データ・キ
ャッシュ14と補助キャッシュ23との両方が並行して
アクセスされる。(図2に示される)TLB21からア
クセスされる実アドレスが、アクセスのための補助キャ
ッシュ・アクセス・タグを補助キャッシュ23内に生成
するために使用される。補助キャッシュ・アクセス・タ
グが、補助キャッシュ23内のいずれかのデータ・ライ
ンのためのタグと一致する場合には、データ・ライン3
6上にヒットが発生させられる。ヒットは、補助キャッ
シュから「ヒット」データを選択しそのヒット・データ
をデータ・パス33上に位置させるように、セレクタ3
7に信号を送る。
【0028】補助キャッシュ23へのアクセスと同時
に、索引13が、データ・キャッシュ14内の単一のデ
ータ・ラインにアクセスするために使用される。この好
適な実施例では、その索引は、アクセスされた記憶場所
のための仮想アドレスの一部分をハッシュすることによ
って導き出されたハッシュ値から構成される。データ・
キャッシュ14内の索引を付けられた記憶場所のための
アドレス・タグが、データライン31上に位置したアク
セス記憶場所の実アドレスの一部分と比較される。この
比較は、比較論理回路35によって表される。補助キャ
ッシュ23又はデータ・キャッシュ14からのヒットが
ある場合には、論理回路34がヒット・データ・ライン
32上にヒット信号を生成する。
【0029】補助キャッシュ23とデータ・キャッシュ
14との両方からのヒットがある場合には、新たなデー
タ・ラインが主記憶装置11から先取りされる。データ
・ラインは、FIFOの順序で補助キャッシュ23から
出し入れされる。主記憶装置11から要求される全デー
タ・ラインは、補助キャッシュ23内に移動させられ
る。データ・ラインが補助キャッシュ23の外に移動さ
せられることになっている時には、そのデータ・ライン
はデータ・キャッシュ14に入れられるか又は主記憶装
置11に戻される。補助キャッシュ23からのデータ・
ラインをデータ・キャッシュ14内に移動させるか又は
主記憶装置11に戻すかの決定は、補助キャッシュ23
内のデータ・ラインと共に格納された割り当てビットの
値によって決まる。割り当てビットの値は、そのデータ
・ラインが補助ビット23の中に移されることを生じさ
せた命令と、その命令が、キャッシュ・ヒット副命令欄
(cache hit sub-operation field) において指定された
「非割当て」キャッシュ・ヒットを有したかどうかとい
うことに基づいて決定される。例えば、この好適な実施
例では、短い変位ロード及び格納と索引付きロード及び
格納とが、キャッシュ・ヒット副命令欄を有する。
【0030】「非割当て」キャッシュ・ヒットを伴うロ
ード命令又は格納命令がそのキャッシュをミスする場合
には、アクセスされたデータ・ラインといずれかの先取
りされたデータ・ラインとの両方が補助キャッシュ23
内に入れられ、その割当てビットがクリアされ(即ち、
ゼロにセットされ)、「非割当て」を表示する。これに
加えて、指定された「非割当て」キャッシュ・ヒットを
伴うデータ・アクセスが、参照ビットがクリアされる
(下記参照)補助キャッシュ23内のデータ・ライン上
でのヒットに結果し、従って(後で更に詳細に説明する
ように)先取りを生じさせる場合には、その好ましいデ
ータ・ラインが、補助キャッシュ23内に入れられ、そ
の割当てビットがクリアされ(即ち、ゼロにセットさ
れ)、「非割当て」を表示する。他の全てのデータ・ラ
インは補助キャッシュ23に入れられ、その割当てビッ
トが「1」にセットされ、「割当て」を表示する。
【0031】補助キャッシュ23内のデータ・ラインが
置換されることになっている時には、そのデータ・ライ
ンがデータ・キャッシュ14と(汚染ビットの場合に)
主記憶装置11とのどちらに移されなければならないか
を決定するために、割当てビットがチェックされる。そ
のデータ・ラインのための割当てビットが1にセットさ
れる場合には、そのデータ・ラインはデータ・キャッシ
ュ14に移される。そのデータ・ラインのための割当て
ビットが0にセットされる場合には、そのデータ・ライ
ンが汚染されている(即ち、補助キャッシュ内に入れら
れてから変更が加えられている)ならば、そのデータ・
ラインが主記憶装置11に移される。そのデータ・ライ
ンが汚染されていない場合には、そのデータラインは、
主記憶装置11に再び書き込まれることなしに、廃棄さ
れる。
【0032】例えば、補助キャッシュ23内のデータ・
ラインは、そのデータが長時間に亙って使用されること
が無いと推測され且つそのデータの同一データ・ライン
内の他のデータが近い将来に使用されると推測される時
に、「非割当て」と印付けされる。キャッシュ・ヒット
のための更に別の情報は、「可変的取出しを伴うキャッ
シュ・メモリと置換スキーマ(Cache Memory with Varia
ble Fetch and Replacement Schemes)」に関してWillia
m R. Bryg (ウィリアム・アール・ブリッグ他に対して
与えられた米国特許第4,928,239号に説明され
ている。データ・キャッシュ14内のデータ・ラインが
置換されることになっている時には、そのデータ・ライ
ンがデータ・キャッシュ14と主記憶装置11とのどち
らに移動させられなければならないかを決定するため
に、割当てビットがチェックされる。
【0033】データ・ラインをデータ・キャッシュ14
内に移動させる前にデータ・ラインを補助キャッシュ2
3内に移動させることが、直接マッピング・キャッシュ
に典型的に関連したスラッシング挙動を取り除く。例え
ば、ベクトル計算では、i=0〜Nの場合に次(1)式
のようでる。
【0034】
【数1】
【0035】要素A[i]、B[i]、C[i]、D
[i]が同一のキャッシュ索引にマッピングされる場合
には、直接マッピングされたキャッシュだけが上記計算
の各要素に対してスラッシングを与えるだけだろう。こ
れは、このループの8回の反復において32回のキャッ
シュミスを生じさせるだろう。しかし、補助キャッシュ
の場合には、各データラインが、他を移動させずにその
キャッシュシステム内に移される。順次32ビットデー
タ要素であると仮定すると、そのループの8回の反復
は、最初の4つのキャッシュ・ミスだけしか引き起こさ
ない。より大きなキャッシュでもこのタイプのキャッシ
ュ・スラッシングを低減させることがないということに
留意されたい。最新のコンパイラは、スラッシングを低
減又は除去するためにデータ構造を再位置合せすること
が可能であることが多いが、適正な最適化を可能にする
ために十分なコンパイル時間情報が、アプリケーション
において常に得られることが可能であるわけではない。
補助キャッシュ23は、最小限度のハードウェアしか必
要とせずに、コンパイラによる最適化なしにキャッシュ
・スラッシングを除去するという点で優れている。
【0036】補助キャッシュ23内の項目は、循環FI
FO待ち行列の形に順序付けられる。キャッシュ・ミス
又は先取りのために主記憶装置11から要求される新た
なデータラインが、上記待ち行列の最上部に置かれ、古
い項目が上記待ち行列の最下部の外に移動させられる。
FIFO待ち行列内のデータ・ラインに対する消去又は
排除が、待ち行列が循環するにつれて取り除かれるバブ
ル(空白スロット)を生じさせる。3/4満杯FIFO
( a three quater full FIFO)を維持するための試みが
行われる。従って、典型的なミス待ち時間下で隠される
可能性がある幾つかのデータ・ラインが、FIF0が4
8個未満の項目しか含まなくなるまで、ミスの間に補助
キャッシュ23の外に移動させられる。この好適な実施
例では、各ミス毎に、待ち時間が、2つのデータ・ライ
ンが補助キャッシュ23の外に移動させられることを可
能にする。
【0037】この好適な実施例では、先取りデータ・ラ
イン用のメモリ空間を確保するように補助キャッシュ2
3の外にデータ・ラインを移動させるために、追加のマ
シン・サイクルを必要とせずに補助キャッシュ23の中
に先取りデータのためのメモリ空間を実現にするために
は、補助キャッシュ23が3/4満杯以下であることが
最適である。
【0038】例えば、この好適な実施例では、後で更に
説明するように、データ・ラインが主記憶装置11から
補助キャッシュ23の中に先取りされることが可能であ
る。補助キャッシュ23が満杯であり、且つ、補助キャ
ッシュ23内に格納されなければならない先取りデータ
・ラインがある場合には、1つのデータ・ラインが補助
キャッシュ23の外に移動させられる。しかし、補助キ
ャッシュ23が完全に満杯ではない時には、データ・ラ
インが移動させられる必要はない。先取りデータのため
のメモリ空間を事前に作るために、ミスが発生し且つ補
助キャッシュ23が3/4満杯以上である(即ち、全て
のバブルを含むFIFOの初めと終わりとの間に48個
以上の項目が存在する)時には、2つのデータ・ライン
が補助キャッシュ23の外に移動させられる。
【0039】これに加えて、後で更に説明するように、
先取りデータがキャッシュ・ミス時に補助キャッシュ2
3内に移されることが可能である。例えば、キャッシュ
・ミス時に、プロセッサが、その次のデータ・ラインが
既に補助キャッシュ23内に存在するかどうかを確かめ
るためにチェックを行う。そうでない場合には、プロセ
ッサが、ミスがあるデータ・ラインを先取りし、更に
は、その次のデータ・ラインを先取りする。
【0040】この好ましい実施例では、キャッシュ・ミ
スが、単一のデータ・ラインが主記憶装置11から先取
りされることを要求し(即ち、第2のデータ・ラインの
先取りがなく)、且つ、補助キャッシュ23が3/4満
杯以上である場合には、2つのデータ・ラインが補助キ
ャッシュ23の外に移動させられる。これらのデータラ
インはミス待ち時間の間に外に移動させられることが可
能であり、一方、プロセッサ12が機能停止させられ、
データが主記憶装置11から戻されるのを待機する。メ
モリ空間を作るためにデータ・ラインが外に移動させら
れる必要がないので、プロセッサが機能停止を回避する
が故に、後続の先取りヒットが有利である。
【0041】データ・ラインが、次の例外を除いて、F
IFO順にデータ・キャッシュに移される。2つのデー
タ・ラインがミス時に補助キャッシュ23の外に移動さ
せられ、且つ、これらのデータ・ラインの両方がデータ
・キャッシュ14内の同一の索引にマッピングされる場
合には、その第1のデータ・ラインがデータ・キャッシ
ュ14に移され、第2のデータ・ラインが主記憶装置1
1に戻される。
【0042】図4は、補助キャッシュ23の単純化した
ブロック線図を示す。データ・ラインを格納するために
SRAM43が使用される。SRAM43内に格納され
たデータ・ラインのためのタグを格納するために、CA
M41が使用される。ビット・メモリ42は、様々なキ
ャッシュ制御ビットを格納するために使用される。各デ
ータ・ラインと共に格納されるキャッシュ制御ビット
は、上記の(カラム46によって表される)割当てビッ
トと、下記の(カラム47で表される)参照ビットとを
含む。補助キャッシュ23からの特定のデータ・ライン
をデータ・キャッシュ14と主記憶装置11のどちらに
移動させるかの決定は、その特定のデータ・ラインのた
めの格納された割当てビットの値に依存する。FIFO
ポインタ44は、FIFOメモリとしてのSRAMの使
用を容易にするために、SRAM43中の最初の項目の
位置と最後の項目の位置とを表示する。補助キャッシュ
がアクセスされ、キャッシュ・ミスがあることをCAM
41が検出する時に、選択論理回路45がデータ・パス
33に適正なデータ・ラインを与える。
【0043】この好ましい実施例では、データ・キャッ
シュ14と補助キャッシュ23とに対するアクセスがそ
の両方のキャッシュにおけるミスに起因する場合には、
プロセッサ12が主記憶装置11からの「ミス・データ
・ラインを要求する。そのミスデータ・ラインが主記憶
装置11から補助キャッシュ23内に移動させられる時
に、そのデータ・ラインのためのカラム47内の参照
(R)ビットがセットされ、そのデータ・ラインが参照
されたことを表示する。
【0044】これに加えて、特定のタイプのデータ・ア
クセスの場合には、キャッシュ・ミスがある時に使用さ
れる、又は、「ヒット」データ・ラインのための参照ビ
ットがゼロにセットされる補助キャッシュ14内のデー
タ・ライン上でヒットがある時に使用される先取りアド
レスを、プロセッサ12が生成する。一般的に、プロセ
ッサ12によって生成される先取りアドレスは、アクセ
スされたデータ・ラインの次に続くデータ・ラインであ
る。
【0045】キャッシュ・ミス時には、先取りアドレス
のためのデータ・ラインが既にデータ・キャッシュ14
又は補助キャッシュ23の内に存在するならば、更に別
の動作が行われる必要がない。先取りアドレスのための
データ・ラインが未だデータ・キャッシュ14又は補助
キャッシュ23の内に存在しないならば、その先取りア
ドレスのためのデータ・ラインが先取りされる。先取り
されたデータ・ラインが主記憶装置11から補助キャッ
シュ23の中に移される時に、その新たなデータ・ライ
ンのためのカラム47内の参照(R)ビットがクリアさ
れ、その先取りデータ・ラインが参照されなかったこと
を表示する。
【0046】この好適な実施例では、「未参照」と印付
けされている(即ち、その項目のためのカラム47内の
参照ビットがクリアされている)補助キャッシュ23内
のデータ・ライン上にキャッシュ・ヒットがあり、且
つ、プロセッサ12が先取りアドレスを生成する時に、
プロセッサ12が、そのデータ・ラインのためのカラム
47内の参照ビットをセットし、そのデータ・ラインが
現時点で参照済みであるということを表示する。これに
加えて、プロセッサ12は、先取りアドレスのためのデ
ータ・ラインが既にデータ・キャッシュ14又は補助キ
ャッシュ23の内に存在するかどうかをチェックする。
そうでない場合には、先取りアドレスのためのデータ・
ラインが先取りされる。先取りデータ・ラインが主記憶
装置11から補助キャッシュ23の中に移される時に、
その新たなデータ・ラインのためのカラム47内の参照
(R)ビットがクリアされ、その先取りデータ・ライン
が参照されなかったことを表示する。
【0047】データ・ラインは、主記憶装置11からバ
ス10を経由してプロセッサ12に転送される。この好
適な実施例では、バス10は64ビット幅であり、各デ
ータ・ラインは256ビット幅である。従って、プロセ
ッサ12に転送されるべき全データ・ライン1つ当たり
4つのバス・サイクルが必要である。プロセッサ実行時
間に対する影響を最小限にするために、バス10を経由
したデータ転送が完了するまで各データ・ラインがムー
ブ・イン・バッファ48内で併合される。そのデータ・
ライン全体がムーブ・イン・バッファ48に転送され終
わると、そのデータ・ラインが単一のサイクルでSRA
M43内に書き込まれる。従って、補助キャッシュ23
は、より大きい割合の時間に亙ってプロセッサ12にと
って使用可能である。
【0048】上記の説明は、本発明の方法の単なる一例
と実施例とを開示し説明するものである。当業者には理
解されるように、本発明は、本発明の思想又は本質的特
徴とから逸脱することなく、他の特定の形態で具体化さ
れることが可能である。従って、本発明のこの開示内容
は、特許請求の範囲で請求される本発明の範囲を非限定
的に例示するものであることが意図されている。
【0049】以上、本発明の各実施例について詳述した
が、ここで各実施例の理解を容易にするために、各実施
例ごとに要約して以下に列挙する。
【0050】1. コンピュータ装置における、主記憶
装置内に格納され、かつプロセッサによって利用される
データをバッファリングするための方法であって、
(a).データ・ラインを前記主記憶装置から第1のキ
ャッシュに転送する工程であって、前記データ・ライン
が前記第1のキャッシュの外に移動させられる時の前記
データ・ラインの行先を表示するための表示を前記デー
タ・ライン各々と共に前記第1のキャッシュ内に格納
し、前記表示は前記データ・ラインが第2のキャッシュ
に送られるのかどうか又は前記主記憶装置に戻されるの
かどうかを表示する前記工程と、(b).第1のデータ
ラインが前記第1のキャッシュの外に移動させられ、か
つ前記表示は前記第1のデータ・ラインが前記第2のキ
ャッシュに送られなければならないことを表示する時
に、前記第1のデータ・ラインを前記第2のキャッシュ
に移動させる工程と、(c).第2のデータ・ラインが
前記第2のキャッシュの外に移動させられ、かつ、汚染
されている時に、前記第2のデータ・ラインを前記主記
憶装置に戻す工程と、(d).前記プロセッサが第3の
データ・ラインに対するアクセスを要求する時に、前記
第3のデータ・ラインに対して平行して前記第1のキャ
ッシュと前記第2のキャッシュとを探索する工程と、を
含むキャッシュ・ミスによる時間ペナルティ減少方法で
ある。
【0051】2. 前記工程(d)が、(d.1).前
記第2のキャッシュの中に索引を生成する副次的工程
と、(d.2).前記第2のキャッシュ内の第4のデー
タ・ラインにアクセスするために前記索引を使用する副
次的工程と、(d.3).前記第4のデータ・ラインが
前記第3のデータ・ラインであるかどうかを決定するた
めに、前記第4のデータ・ラインのためのタグを前記第
3のデータ・ラインのためのタグと比較する副次的工程
と、(d.4).前記第1のキャッシュ内のデータ・ラ
インのいずれかが前記第3のデータ・ラインであるかど
うかを決定するために、前記第1のキャッシュ内に格納
された個々のデータ・ラインのためのタグをチェックす
る副次的工程と、を含み、前記副次的工程(d.4)が
前記副次的工程(d.1)から前記副次的工程(d.
3)までと共に並行して行われる上記1に記載のキャッ
シュ・ミスによる時間ペナルティ減少方法である。
【0052】3. 前記工程(b)において、前記第1
のデータ・ラインが前記第1のキャッシュの外に移動さ
せられる時に前記第1のデータ・ラインが前記第1のキ
ャッシュ内の他のデータ・ラインのいずれよりも長く前
記第1のキャッシュ内に存在しているように、前記第1
のキャッシュ内のデータ・ラインが先入れ先出しの形で
処理される上記1に記載のキャッシュ・ミスによる時間
ペナルティ減少方法である。
【0053】4. 前記工程(b)が、所定数よりも多
いデータラインを前記第1のキャッシュが含む時に、追
加のデータラインを前記第1のデータ・ラインと共に前
記第1のキャッシュから移動させる副次的工程を含む上
記1に記載のキャッシュ・ミスによる時間ペナルティ減
少方法である。
【0054】5. 前記工程(b.1)において、上記
追加のデータ・ラインは、前記第1のデータ・ラインが
マッピングされる前記第2のキャッシュ内の記憶場所と
同一の前記第2のキャッシュ内の記憶場所にマッピング
される時に、前記第2のデータ・ラインを前記主記憶装
置に移動させる上記4に記載のキャッシュ・ミスによる
時間ペナルティ減少方法である。
【0055】6. 前記方法が更に、(e).前記工程
(d)において、前記第3のデータ・ラインが前記第1
のキャッシュ内に存在せずかつ前記第2のキャッシュ内
に存在しない時に、前記主記憶装置から前記第1のキャ
ッシュに前記第3のデータ・ラインを転送する工程を含
み、この工程が更に、(i).前記第1のキャッシュ内
で、前記第3のデータ・ラインを「参照済」として印付
けする副次的工程と、(ii).前記主記憶装置から前
記第1のキャッシュに第4のデータ・ラインを先取りす
る副次的工程と、(iii).前記第1のキャッシュ内
で、前記第4のデータ・ラインを「未参照」として印付
けする副次的工程と、を含む上記1に記載のキャッシュ
・ミスによる時間ペナルティ減少方法である。
【0056】7. 前記工程(e)が更に、(iv).
前記プロセッサが前記第4のデータ・ラインに対するア
クセスを要求する時に、前記第1のキャッシュ内で、前
記第4のデータ・ラインを「参照済」として印付けし、
前記主記憶装置から前記第1のキャッシュに第5のデー
タ・ラインを先取りし、前記第1のキャッシュ内で、前
記第5のデータ・ラインを「未参照」として印付けする
副次的工程と、を含む上記6に記載のキャッシュ・ミス
による時間ペナルティ減少方法である。
【0057】8. 主記憶装置内に格納されプロセッサ
によって利用されるデータをバッファリングするために
キャッシュ・ミスによる時間ペナルティ減少方法に適用
されるキャッシュシ装置であって、データ・ラインを格
納するためのデータ・ラインメモリと、前記データ・ラ
イン・メモリ内に格納されたデータ・ラインがその第1
のキャッシュの外に移動させられる時に前記データ・ラ
インの行先を表示する表示を前記データ・ライン各々と
共に格納するための格納手段とを含む、第1のキャッシ
ュと、第2のキャッシュと、前記主記憶装置から前記第
1のキャッシュにデータ・ラインを転送するために、前
記第1のキャッシュと前記主記憶装置とに結合した第1
の転送手段と、前記第1のキャッシュの外に移動させら
れるいずれの第1のデータ・ラインのための行先も前記
格納手段内に格納された前記第1のデータ・ラインのた
めの表示の値に依存している、前記第1のキャッシュか
ら前記第2のキャッシュと前記第1のキャッシュから前
記主記憶装置とにデータ・ラインを転送するために、前
記第1のキャッシュと前記第2のキャッシュと前記主記
憶装置とに結合した第2の転送手段と、前記第2のキャ
ッシュから前記主記憶装置にデータ・ラインを転送する
ために、前記第2のキャッシュと前記主記憶装置とに結
合した第3の転送手段と、前記第1のキャッシュと前記
第2のキャッシュとに対して並行してアクセスするため
のアクセス手段と、を含む前記キャッシュ・ミスによる
時間ペナルティ減少方法に適用されるキャッシュ装置で
ある。
【0058】9. 前記アクセス手段が、前記第2のキ
ャッシュ内に索引を生成するために、前記第2のキャッ
シュに結合された索引生成手段と、前記索引生成手段に
よって生成された索引によってアクセスされたデータ・
ラインのためのタグを所期データ・ラインのためのタグ
と比較するために、前記第2のキャッシュに結合した比
較手段と、前記第1のキャッシュ内のデータ・ラインの
いずれかが前記所期データ・ラインであるかどうかを決
定するために、前記第1のキャッシュに結合した連想型
比較手段と、を含む上記8に記載のキャッシュ・ミスに
よる時間ペナルティ減少方法に適用されるキャッシュ装
置である。
【0059】10. 前記データ・ライン・メモリが先
入れ先出し記憶装置である上記8に記載のキャッシュ・
ミスによる時間ペナルティ減少方法に適用されるキャッ
シュ装置である。
【0060】11. 前記第2の転送手段は、前記第1
のキャッシュが予め決められた数より多い数のデータ・
ラインを含む時に1度に2つのデータ・ラインを前記第
1のキャッシュの外に移動させる上記8に記載のキャッ
シュ・ミスによる時間ペナルティ減少方法に適用される
キャッシュ装置である。
【0061】12. 前記第2の転送手段が、前記第2
のキャッシュ内の同一の記憶場所にマッピングされた2
つのデータ・ラインを前記第1のキャッシュの外に移動
させる時に、前記第2の転送手段が前記2つのデータ・
ラインのどちらか一方を前記主記憶装置に移動させる上
記11に記載のキャッシュ・ミスによる時間ペナルティ
減少方法に適用されるキャッシュ装置である。
【0062】13. 主記憶装置内に格納され、かつプ
ロセッサによって利用されるデータをバッファリングす
るためにキャッシュ・ミスによる時間ペナルティ減少方
法に適用されるキャッシュ装置であって、完全連想型の
第1のキャッシュと、直接マッピング型の第2のキャッ
シュと、前記主記憶装置から前記第1のキャッシュにデ
ータ・ラインを転送するための、前記第1のキャッシュ
と前記主記憶装置とに結合した第1の転送手段と、前記
第1のキャッシュから前記第2のキャッシュにデータ・
ラインを転送するための、前記第2のキャッシュと前記
主記憶装置とに結合された第2の転送手段と、前記第2
のキャッシュから前記主記憶装置にデータ・ラインを転
送するための、前記第2のキャッシュと前記主記憶装置
とに結合した第3の転送手段と、前記第1のキャッシュ
と前記第2のキャッシュとに対して並行してアクセスす
るためのアクセス手段と、を含むキャッシュ・ミスによ
る時間ペナルティ減少方法に適用されるキャッシュ装置
である。
【0063】14. 前記アクセス手段は、前記第2の
キャッシュ内に索引を生成するために、前記第2のキャ
ッシュに結合した索引生成手段と、前記索引生成手段に
よって生成された前記索引によってアクセスされるデー
タ・ラインのためのタグを所期データ・ラインのための
タグと比較するために、前記第2のキャッシュに結合し
た比較手段と、前記第1のデータ・キャッシュ内のデー
タ・ラインのいずれかが前記所期データラインであるか
どうかを決定するために、前記第1のキャッシュに結合
した連想型比較手段と、とを含む上記13に記載のキャ
ッシュ・ミスによる時間ペナルティ減少方法に適用され
るキャッシュ装置である。
【0064】15. 前記第1のキャッシュが、データ
・ラインを格納するためのデータ・ライン・メモリと、
前記データ・ライン・メモリ内に格納されたデータ・ラ
インのためのタグを格納するための内容参照可能メモリ
と、を含む上記13に記載のキャッシュ・ミスによる時
間ペナルティ減少方法に適用されるキャッシュ装置であ
る。
【0065】16. 前記データ・ラインメモリが先入
れ先出しメモリである上記15に記載のキャッシュ・ミ
スによる時間ペナルティ減少方法に適用されるキャッシ
ュ装置である。
【0066】17. 前記第1のキャッシュは更に、前
記第1のキャッシュからデータ・ラインを外に移動させ
る時の前記データ・ラインの行先を表示する表示を前記
データ・ラインメモリ内に格納された前記データ・ライ
ン各々と共に格納するための格納手段を含む上記15に
記載のキャッシュ・ミスによる時間ペナルティ減少方法
に適用されるキャッシュ装置である。
【0067】18. 前記第2の転送手段は、前記第1
のキャッシュが所定数より多い数のデータ・ラインを含
む時に1度に1つ以上のデータ・ラインを前記第1のキ
ャッシュの外に移動させる上記13に記載のキャッシュ
・ミスによる時間ペナルティ減少方法に適用されるキャ
ッシュ装置である。
【0068】19. 前記第2の転送手段は、前記第2
のキャッシュ内の同一の記憶場所にマッピングされた2
つのデータ・ラインを前記第1のキャッシュの外に移動
させる時に、前記第2の転送手段が前記2つのデータ・
ラインのどちらか一方を前記主記憶装置に移動させる上
記18に記載のキャッシュ・ミスによる時間ペナルティ
減少方法に適用されるキャッシュ装置である。
【0069】20. 前記第1のキャッシュが更に、前
記データ・ライン各々が参照済みであることを表示する
表示を前記データ・ライン・メモリ内に格納された前記
データ・ライン各々と共に格納するための格納手段を含
む上記13に記載のキャッシュ・ミスによる時間ペナル
ティ減少方法に適用されるキャッシュ装置である。
【0070】21. 前記第1の転送手段は更に、第1
のデータ・ラインに対する参照の結果として前記第1の
キャッシュ内に前記第1のデータ・ラインが入れられる
時に前記第1のデータ・ラインを前記第1のキャッシュ
内で「参照済」と印付けし、かつ先取りの結果として前
記第1のキャッシュ内に第2のデータ・ラインが入れら
れる時に前記第2のデータ・ラインを前記第1のキャッ
シュ内で「未参照」として印付けするためのものである
上記20に記載のキャッシュ・ミスによる時間ペナルテ
ィ減少方法に適用されるキャッシュ装置である。
【0071】22. 前記アクセス手段は更に、前記第
2のデータ・ラインが参照される時に前記第2のデータ
・ラインを前記第1のキャッシュ内で「参照済」として
印付けするためのものである上記21に記載のキャッシ
ュ・ミスによる時間ペナルティ減少方法に適用されるキ
ャッシュ装置である。
【0072】23. コンピュータ装置における、主記
憶装置内に格納されプロセッサによって利用されるキャ
ッシュ・ミスによる時間ペナルティ減少方法に適用され
るデータをバッファリングするための方法であって、
(a).前記主記憶装置から第1のキャッシュにデータ
・ラインを転送する工程と、(b).第1のデータ・ラ
インが前記第1のキャッシュの外に移動させられる時
に、前記第1のデータ・ラインを第2のキャッシュに移
動させる工程と、(c).第2のデータ・ラインが前記
第2のキャッシュの外に移動させられかつ汚染されてい
る時に、前記第2のデータ・ラインを前記主記憶装置に
戻す工程と、(d).前記プロセッサが第3のデータ・
ラインに対するアクセスを要求する時に、前記第3のデ
ータ・ラインを求めて前記第1のキャッシュと前記第2
のキャッシュとに対して並行して探索を行う工程と、を
含むキャッシュ・ミスによる時間ペナルティ減少方法に
適用されるデータをバッファリングするための方法であ
る。
【0073】24. 前記工程(d)が更に、(d.
1).前記第2のキャッシュの中に索引を生成する副次
的工程と、(d.2).前記第2のキャッシュ内の第4
のデータ・ラインにアクセスするために前記索引を使用
する副次的工程と、(d.3).前記第4のデータ・ラ
インが前記第3のデータ・ラインであるかどうかを決定
するために、前記第4のデータ・ラインのためのタグを
前記第3のデータ・ラインのためのタグと比較する副次
的工程と、(d.4).前記第1のキャッシュ内のデー
タ・ラインのいずれかが前記第3のデータ・ラインであ
るかどうかを決定するために、前記第1のキャッシュ内
に格納された個々のデータ・ラインのためのタグをチェ
ックする副次的工程と、を含み、前記副次的工程(d.
4)が前記副次的工程(d.1)から前記副次的工程
(d.3)までと共に並行して行われる23項に記載の
キャッシュ・ミスによる時間ペナルティ減少方法に適用
されるデータをバッファリングするための方法である。
【0074】25. 前記工程(b)において、前記第
1のデータ・ラインが前記第1のキャッシュの外に移動
させられる時に前記第1のデータ・ラインが前記第1の
キャッシュ内の他のデータ・ラインのいずれよりも長く
前記第1のキャッシュ内に存在しているように、前記第
1のキャッシュが先入れ先出しの形で処理される上記2
3に記載のキャッシュ・ミスによる時間ペナルティ減少
方法に適用されるデータをバッファリングするための方
法である。
【0075】26. 前記工程(b)が、所定数よりも
多いデータ・ラインを前記第1のキャッシュが含む時
に、追加のデータ・ラインを前記第1のデータ・ライン
と共に移前記第1のキャッシュから移動させる副次的工
程を含む上記23に記載のキャッシュ・ミスによる時間
ペナルティ減少方法に適用されるデータをバッファリン
グするための方法である。
【0076】27. 前記副次的工程(b.1)は、上
記追加のデータ・ラインが、前記第1のデータ・ライン
がマッピングされる前記第2のキャッシュ内の記憶場所
と同一の前記第2のキャッシュ内の記憶場所にマッピン
グされる時に、前記第1のデータ・ラインを前記主記憶
装置に移動させることを含む上記26に記載のキャッシ
ュ・ミスによる時間ペナルティ減少方法に適用されるデ
ータをバッファリングするための方法である。
【0077】28. 前記データをバッファリングする
ための方法が更に、(e).前記工程(d)において前
記第3のデータ・ラインが前記第1のキャッシュ内に存
在せずかつ前記第2のキャッシュ内に存在しない時に、
前記主記憶装置から前記第1のキャッシュに前記第3の
データ・ラインを転送する工程を含み、この工程が更
に、(i).前記第1のキャッシュ内で、前記第3のデ
ータ・ラインを「参照済」として印付けする副次的工程
と、(ii).前記主記憶装置から前記第1のキャッシ
ュに第4のデータ・ラインを先取りする副次的工程と、
(iii).前記第1のキャッシュ内で、前記第4のデ
ータ・ラインを「未参照」として印付けする副次的工程
と、を含む上記23に記載のキャッシュ・ミスによる時
間ペナルティ減少方法に適用されるデータをバッファリ
ングする方法である。
【0078】29. 前記工程(e)が更に、(i
v).前記プロセッサが前記第4のデータ・ラインに対
するアクセスを要求する時に、前記第1のキャッシュ内
で、前記第4のデータ・ラインを「参照済」として印付
けし、前記主記憶装置から前記第1のキャッシュに第5
のデータラインを先取りし、前記第1のキャッシュ内
で、前記第5のデータラインを「未参照」として印付け
する副次的工程を含む上記28に記載のキャッシュ・ミ
スによる時間ペナルティ減少方法に適用されるデータを
バッファリングする方法である。
【0079】
【発明の効果】以上のように、本発明によれば、データ
・ラインを主記憶装置から第1のキャッシュの外に移動
させる時にデータ・ラインの行先表示をデータ・ライン
のそれぞれとともに第1のキャッシュ内に格納し、この
表示はデータ・ラインが第2のキャッシュに送られるの
か、主記憶装置に戻されるのかを表示し、第1のデータ
・ラインを第1のキャッシュの外に移動させる時に第1
のデータ・ラインの行先表示が第1のデータ・ラインを
第2のキャッシュに送らなければならない表示をしてい
ると、第1のデータ・ラインを第2のキャッシュに移動
させ、第2のデータ・ラインが第2のキャッシュの外に
移動され、汚染されると第2のデータ・ラインを主記憶
装置に戻し、プロセッサが第3のデータ・ラインに対す
るアクセスを要求すると、第3のデータ・ラインに対し
て並行して第1と第2のキャッシュを探索するようにし
たので、最小量のハードウェアの追加のみで直接マッピ
ング型キャッシュにコンパイラによる最適化なしにキャ
ッシュ・スラッシングを取り除くことができる。
【図面の簡単な説明】
【図1】本発明の好適な実施例による命令キャッシュと
データ・キャッシュとを有するコンピュータ装置の単純
化したブロック図である。
【図2】本発明の好適な実施例による図1に示したプロ
セッサの単純化したブロック図である。
【図3】本発明の好適な実施例による、図1に示したコ
ンピュータ装置のためのキャッシュシ装置の単純化した
ブロック図である。
【図4】本発明の好適な実施例による、図2に示したプ
ロセッサ内の補助キャッシュの単純化したブロック図で
ある。
【符号の説明】
10 バス 11 主記憶装置 12 プロセッサ 13 命令キャッシュ 14 データ・キャッシュ 21 アドレス変換バッファ 22 論理演算装置 23 補助キャッシュ 24 命令キャッシュ・インターフェース論理回路 25 データ・キャッシュ・インターフェース論理回路 26 装置のバス・インターフェース論理回路 32 ピット・データ・ライン 33 データ・バス 34 論理回路 35 比較論理回路 36 データ・ライン 37 セレクタ 41 内容参照可能メモリ 42 ビット・メモリ 43 スタティツク・ランダム・アクセス記憶装置 44 FIFOポインタ 45 選択論理回路 46,47 カラム 48 ムーブ・イン・バッファ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 マイケル・エイ・バックレー アメリカ合衆国コロラド州ウィンドソアー コットンウッド・ドライヴ 1109 (72)発明者 ウィリアム・アール・ブリグ アメリカ合衆国カリフォルニア州サラトガ ペレゴ・ウェイ 18630

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 コンピュータ装置における、主記憶装置
    内に格納され、かつプロセッサによって利用されるデー
    タをバッファリングするための方法であって、 (a).データ・ラインを前記主記憶装置から第1のキ
    ャッシュに転送する工程であって、前記データ・ライン
    が前記第1のキャッシュの外に移動させられる時の前記
    データ・ラインの行先を表示するための表示を前記デー
    タ・ライン各々と共に前記第1のキャッシュ内に格納
    し、前記表示は前記データ・ラインが第2のキャッシュ
    に送られるのかどうか又は前記主記憶装置に戻されるの
    かどうかを表示する前記工程と、 (b).第1のデータラインが前記第1のキャッシュの
    外に移動させられ、かつ前記表示は前記第1のデータ・
    ラインが前記第2のキャッシュに送られなければならな
    いことを表示する時に、前記第1のデータ・ラインを前
    記第2のキャッシュに移動させる工程と、 (c).第2のデータ・ラインが前記第2のキャッシュ
    の外に移動させられ、かつ、汚染されている時に、前記
    第2のデータ・ラインを前記主記憶装置に戻す工程と、 (d).前記プロセッサが第3のデータ・ラインに対す
    るアクセスを要求する時に、前記第3のデータ・ライン
    に対して平行して前記第1のキャッシュと前記第2のキ
    ャッシュとを探索する工程と、を含むキャッシュ・ミス
    による時間ペナルティ減少方法。
JP01447995A 1994-02-14 1995-01-31 データをバッファリングする方法およびそのシステム Expired - Fee Related JP3618385B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US196-042 1994-02-14
US08/196,042 US5603004A (en) 1994-02-14 1994-02-14 Method for decreasing time penalty resulting from a cache miss in a multi-level cache system

Publications (2)

Publication Number Publication Date
JPH07253926A true JPH07253926A (ja) 1995-10-03
JP3618385B2 JP3618385B2 (ja) 2005-02-09

Family

ID=22723904

Family Applications (1)

Application Number Title Priority Date Filing Date
JP01447995A Expired - Fee Related JP3618385B2 (ja) 1994-02-14 1995-01-31 データをバッファリングする方法およびそのシステム

Country Status (4)

Country Link
US (1) US5603004A (ja)
EP (1) EP0667580B1 (ja)
JP (1) JP3618385B2 (ja)
DE (1) DE69518676T2 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6256708B1 (en) 1996-08-28 2001-07-03 Nec Corporation Auxiliary buffer for direct map cache
US6792498B2 (en) 2001-01-22 2004-09-14 Hitachi, Ltd. Memory system with mechanism for assisting a cache memory
JP2006048181A (ja) * 2004-07-30 2006-02-16 Fujitsu Ltd 記憶制御装置、ムーブインバッファ制御方法およびプログラム
JPWO2008093399A1 (ja) * 2007-01-30 2010-05-20 富士通株式会社 演算処理装置、情報処理装置及び演算処理装置の制御方法
JP2013542511A (ja) * 2010-09-27 2013-11-21 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド 積極的プリフェッチングによるプロセッサキャッシュ汚染を低減するための方法及び装置

Families Citing this family (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6021471A (en) * 1994-11-15 2000-02-01 Advanced Micro Devices, Inc. Multiple level cache control system with address and data pipelines
US5897654A (en) * 1995-02-10 1999-04-27 International Business Machines Corporation Method and system for efficiently fetching from cache during a cache fill operation
US5732242A (en) * 1995-03-24 1998-03-24 Silicon Graphics, Inc. Consistently specifying way destinations through prefetching hints
EP0752645B1 (en) * 1995-07-07 2017-11-22 Oracle America, Inc. Tunable software control of Harvard architecture cache memories using prefetch instructions
US5860095A (en) * 1996-01-02 1999-01-12 Hewlett-Packard Company Conflict cache having cache miscounters for a computer memory system
US5835946A (en) * 1996-04-18 1998-11-10 International Business Machines Corporation High performance implementation of the load reserve instruction in a superscalar microprocessor that supports multi-level cache organizations
US5761468A (en) * 1996-05-15 1998-06-02 Sun Microsystems Inc Hardware mechanism for optimizing instruction and data prefetching by forming augmented prefetch instructions
US5954812A (en) * 1996-10-29 1999-09-21 Texas Instruments Incorporated Apparatus for caching system management memory in a computer having a system management mode employing address translation
US5752261A (en) * 1996-11-07 1998-05-12 Ncr Corporation Method and apparatus for detecting thrashing in a cache memory
US6223256B1 (en) 1997-07-22 2001-04-24 Hewlett-Packard Company Computer cache memory with classes and dynamic selection of replacement algorithms
US5909697A (en) * 1997-09-30 1999-06-01 Sun Microsystems, Inc. Reducing cache misses by snarfing writebacks in non-inclusive memory systems
US6073212A (en) * 1997-09-30 2000-06-06 Sun Microsystems, Inc. Reducing bandwidth and areas needed for non-inclusive memory hierarchy by using dual tags
US6237073B1 (en) 1997-11-26 2001-05-22 Compaq Computer Corporation Method for providing virtual memory to physical memory page mapping in a computer operating system that randomly samples state information
US6163840A (en) * 1997-11-26 2000-12-19 Compaq Computer Corporation Method and apparatus for sampling multiple potentially concurrent instructions in a processor pipeline
US6175814B1 (en) 1997-11-26 2001-01-16 Compaq Computer Corporation Apparatus for determining the instantaneous average number of instructions processed
US6442585B1 (en) 1997-11-26 2002-08-27 Compaq Computer Corporation Method for scheduling contexts based on statistics of memory system interactions in a computer system
US6332178B1 (en) 1997-11-26 2001-12-18 Compaq Computer Corporation Method for estimating statistics of properties of memory system transactions
US6195748B1 (en) 1997-11-26 2001-02-27 Compaq Computer Corporation Apparatus for sampling instruction execution information in a processor pipeline
US6202127B1 (en) * 1997-11-26 2001-03-13 Compaq Computer Corporation Apparatus for spatial and temporal sampling in a computer memory system
US6374367B1 (en) 1997-11-26 2002-04-16 Compaq Computer Corporation Apparatus and method for monitoring a computer system to guide optimization
US6549930B1 (en) 1997-11-26 2003-04-15 Compaq Computer Corporation Method for scheduling threads in a multithreaded processor
US6237059B1 (en) 1997-11-26 2001-05-22 Compaq Computer Corporation Method for estimating statistics of properties of memory system interactions among contexts in a computer system
US6253291B1 (en) 1998-02-13 2001-06-26 Sun Microsystems, Inc. Method and apparatus for relaxing the FIFO ordering constraint for memory accesses in a multi-processor asynchronous cache system
US6253285B1 (en) * 1998-04-16 2001-06-26 Compaq Computer Corporation Method and apparatus for minimizing dcache index match aliasing using hashing in synonym/subset processing
US6253301B1 (en) * 1998-04-16 2001-06-26 Compaq Computer Corporation Method and apparatus for a dedicated physically indexed copy of the data cache tag arrays
US6397296B1 (en) * 1999-02-19 2002-05-28 Hitachi Ltd. Two-level instruction cache for embedded processors
US6904498B2 (en) * 2002-10-08 2005-06-07 Netcell Corp. Raid controller disk write mask
US7203798B2 (en) * 2003-03-20 2007-04-10 Matsushita Electric Industrial Co., Ltd. Data memory cache unit and data memory cache system
US7143239B2 (en) * 2003-08-07 2006-11-28 Hewlett-Packard Development Company, L.P. Cache structure and methodology
US7373637B2 (en) * 2003-09-30 2008-05-13 International Business Machines Corporation Method and apparatus for counting instruction and memory location ranges
US7395527B2 (en) 2003-09-30 2008-07-01 International Business Machines Corporation Method and apparatus for counting instruction execution and data accesses
US7937691B2 (en) 2003-09-30 2011-05-03 International Business Machines Corporation Method and apparatus for counting execution of specific instructions and accesses to specific data locations
US8381037B2 (en) * 2003-10-09 2013-02-19 International Business Machines Corporation Method and system for autonomic execution path selection in an application
US7421681B2 (en) * 2003-10-09 2008-09-02 International Business Machines Corporation Method and system for autonomic monitoring of semaphore operation in an application
US7415705B2 (en) 2004-01-14 2008-08-19 International Business Machines Corporation Autonomic method and apparatus for hardware assist for patching code
US7526757B2 (en) * 2004-01-14 2009-04-28 International Business Machines Corporation Method and apparatus for maintaining performance monitoring structures in a page table for use in monitoring performance of a computer program
US7392370B2 (en) 2004-01-14 2008-06-24 International Business Machines Corporation Method and apparatus for autonomically initiating measurement of secondary metrics based on hardware counter values for primary metrics
US7895382B2 (en) * 2004-01-14 2011-02-22 International Business Machines Corporation Method and apparatus for qualifying collection of performance monitoring events by types of interrupt when interrupt occurs
US7496908B2 (en) * 2004-01-14 2009-02-24 International Business Machines Corporation Method and apparatus for optimizing code execution using annotated trace information having performance indicator and counter information
US8135915B2 (en) * 2004-03-22 2012-03-13 International Business Machines Corporation Method and apparatus for hardware assistance for prefetching a pointer to a data structure identified by a prefetch indicator
US7526616B2 (en) * 2004-03-22 2009-04-28 International Business Machines Corporation Method and apparatus for prefetching data from a data structure
US7421684B2 (en) 2004-03-22 2008-09-02 International Business Machines Corporation Method and apparatus for autonomic test case feedback using hardware assistance for data coverage
US7366871B2 (en) * 2004-11-18 2008-04-29 Sun Microsystems, Inc. Apparatus and method for determining stack distance including spatial locality of running software for estimating cache miss rates based upon contents of a hash table
US7373480B2 (en) * 2004-11-18 2008-05-13 Sun Microsystems, Inc. Apparatus and method for determining stack distance of running software for estimating cache miss rates based upon contents of a hash table
US7386669B2 (en) * 2005-03-31 2008-06-10 International Business Machines Corporation System and method of improving task switching and page translation performance utilizing a multilevel translation lookaside buffer
US7409502B2 (en) * 2006-05-11 2008-08-05 Freescale Semiconductor, Inc. Selective cache line allocation instruction execution and circuitry
JP2009053820A (ja) * 2007-08-24 2009-03-12 Nec Electronics Corp 階層型キャッシュメモリシステム
US20130262767A1 (en) * 2012-03-28 2013-10-03 Futurewei Technologies, Inc. Concurrently Accessed Set Associative Overflow Cache
US9652233B2 (en) * 2013-08-20 2017-05-16 Apple Inc. Hint values for use with an operand cache
US9489149B2 (en) 2014-06-16 2016-11-08 Netapp, Inc. Methods and systems for using a write cache in a storage system
US11620220B2 (en) * 2014-07-14 2023-04-04 Via Alliance Semiconductor Co., Ltd. Cache system with a primary cache and an overflow cache that use different indexing schemes
US9558127B2 (en) * 2014-09-09 2017-01-31 Intel Corporation Instruction and logic for a cache prefetcher and dataless fill buffer
KR20160065773A (ko) * 2014-10-08 2016-06-09 비아 얼라이언스 세미컨덕터 씨오., 엘티디. 1차 캐시와 오버플로 선입 선출 캐시를 구비하는 캐시 시스템
US20170046278A1 (en) * 2015-08-14 2017-02-16 Qualcomm Incorporated Method and apparatus for updating replacement policy information for a fully associative buffer cache
US11226904B2 (en) 2019-04-26 2022-01-18 Hewlett Packard Enterprise Development Lp Cache data location system

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4774654A (en) * 1984-12-24 1988-09-27 International Business Machines Corporation Apparatus and method for prefetching subblocks from a low speed memory to a high speed memory of a memory hierarchy depending upon state of replacing bit in the low speed memory
US4928239A (en) * 1986-06-27 1990-05-22 Hewlett-Packard Company Cache memory with variable fetch and replacement schemes
US5058006A (en) * 1988-06-27 1991-10-15 Digital Equipment Corporation Method and apparatus for filtering invalidate requests
US5146578A (en) * 1989-05-01 1992-09-08 Zenith Data Systems Corporation Method of varying the amount of data prefetched to a cache memory in dependence on the history of data requests
US5307477A (en) * 1989-12-01 1994-04-26 Mips Computer Systems, Inc. Two-level cache memory system
IT1238313B (it) * 1990-01-18 1993-07-12 Memoria tampone in tandem
US5163140A (en) * 1990-02-26 1992-11-10 Nexgen Microsystems Two-level branch prediction cache
US5317718A (en) * 1990-03-27 1994-05-31 Digital Equipment Corporation Data processing system and method with prefetch buffers
EP0449540B1 (en) * 1990-03-27 2000-05-17 Digital Equipment Corporation Memory system and method with prefetch buffer
US5261066A (en) * 1990-03-27 1993-11-09 Digital Equipment Corporation Data processing system and method with small fully-associative cache and prefetch buffers
CA2044689A1 (en) * 1990-06-15 1991-12-16 Roger E. Tipley Multilevel inclusion in multilevel cache hierarchies
DE4306077A1 (ja) * 1992-02-27 1993-09-02 Hewlett Packard Co

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6256708B1 (en) 1996-08-28 2001-07-03 Nec Corporation Auxiliary buffer for direct map cache
US6792498B2 (en) 2001-01-22 2004-09-14 Hitachi, Ltd. Memory system with mechanism for assisting a cache memory
JP2006048181A (ja) * 2004-07-30 2006-02-16 Fujitsu Ltd 記憶制御装置、ムーブインバッファ制御方法およびプログラム
JPWO2008093399A1 (ja) * 2007-01-30 2010-05-20 富士通株式会社 演算処理装置、情報処理装置及び演算処理装置の制御方法
JP4491500B2 (ja) * 2007-01-30 2010-06-30 富士通株式会社 演算処理装置、情報処理装置及び演算処理装置の制御方法
US8671246B2 (en) 2007-01-30 2014-03-11 Fujitsu Limited Information processing system and information processing method
JP2013542511A (ja) * 2010-09-27 2013-11-21 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド 積極的プリフェッチングによるプロセッサキャッシュ汚染を低減するための方法及び装置

Also Published As

Publication number Publication date
US5603004A (en) 1997-02-11
EP0667580A2 (en) 1995-08-16
EP0667580A3 (en) 1996-07-31
DE69518676T2 (de) 2001-01-04
DE69518676D1 (de) 2000-10-12
EP0667580B1 (en) 2000-09-06
JP3618385B2 (ja) 2005-02-09

Similar Documents

Publication Publication Date Title
JP3618385B2 (ja) データをバッファリングする方法およびそのシステム
JP3587591B2 (ja) キャッシュ・ミスを制御する方法およびその計算機システム
US6119205A (en) Speculative cache line write backs to avoid hotspots
US6212602B1 (en) Cache tag caching
US8909871B2 (en) Data processing system and method for reducing cache pollution by write stream memory access patterns
EP0763795B1 (en) Stream prefetching buffer with stream filter
JP2839060B2 (ja) データ処理システムおよびデータ処理方法
US5694568A (en) Prefetch system applicable to complex memory access schemes
US6766419B1 (en) Optimization of cache evictions through software hints
US6122709A (en) Cache with reduced tag information storage
US5740399A (en) Modified L1/L2 cache inclusion for aggressive prefetch
US5664147A (en) System and method that progressively prefetches additional lines to a distributed stream buffer as the sequentiality of the memory accessing is demonstrated
US6578111B1 (en) Cache memory system and method for managing streaming-data
US5715427A (en) Semi-associative cache with MRU/LRU replacement
US6463507B1 (en) Layered local cache with lower level cache updating upper and lower level cache directories
US8621152B1 (en) Transparent level 2 cache that uses independent tag and valid random access memory arrays for cache access
US5930819A (en) Method for performing in-line bank conflict detection and resolution in a multi-ported non-blocking cache
JPH07104816B2 (ja) コンピュータシステムを動作する方法及びコンピュータシステムにおけるメモリ管理装置
US5809526A (en) Data processing system and method for selective invalidation of outdated lines in a second level memory in response to a memory request initiated by a store operation
JP2575598B2 (ja) マルチプロセッサ・コンピュータ・システムのシステム・メモリの並行性を増大する方法およびシステム
US7356650B1 (en) Cache apparatus and method for accesses lacking locality
US6418513B1 (en) Queue-less and state-less layered local data cache mechanism
US6405285B1 (en) Layered local cache mechanism with split register load bus and cache load bus
US20060179173A1 (en) Method and system for cache utilization by prefetching for multiple DMA reads
US6446166B1 (en) Method for upper level cache victim selection management by a lower level cache

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20040521

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040601

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040825

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040921

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20041025

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20041109

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20041110

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081119

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091119

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091119

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101119

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees