JPH04270431A - データ 処理装置のメモリ システム - Google Patents

データ 処理装置のメモリ システム

Info

Publication number
JPH04270431A
JPH04270431A JP3085843A JP8584391A JPH04270431A JP H04270431 A JPH04270431 A JP H04270431A JP 3085843 A JP3085843 A JP 3085843A JP 8584391 A JP8584391 A JP 8584391A JP H04270431 A JPH04270431 A JP H04270431A
Authority
JP
Japan
Prior art keywords
cache
memory
miss
information
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
Application number
JP3085843A
Other languages
English (en)
Inventor
Norman P Jouppi
ノーマン ピー ジョウピィ
Alan Eustace
アラン ユーステース
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.)
Digital Equipment Corp
Original Assignee
Digital Equipment 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
Priority claimed from US07/499,958 external-priority patent/US5261066A/en
Application filed by Digital Equipment Corp filed Critical Digital Equipment Corp
Publication of JPH04270431A publication Critical patent/JPH04270431A/ja
Pending 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
    • 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
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F02COMBUSTION ENGINES; HOT-GAS OR COMBUSTION-PRODUCT ENGINE PLANTS
    • F02BINTERNAL-COMBUSTION PISTON ENGINES; COMBUSTION ENGINES IN GENERAL
    • F02B75/00Other engines
    • F02B75/02Engines characterised by their cycles, e.g. six-stroke
    • F02B2075/022Engines characterised by their cycles, e.g. six-stroke having less than six strokes per cycle
    • F02B2075/027Engines characterised by their cycles, e.g. six-stroke having less than six strokes per cycle four
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6022Using a prefetch buffer or dedicated prefetch cache

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)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】
【0001】
【技術分野】本発明は、データ処理におけるメモリ  
ハイアラーキーの性能(パーフォーマンス)を向上する
システム及び方法に関する。とくに本発明はキャッシュ
(CACHE )メモリのシステム  パーフォーマン
ス(性能)を向上するシステム及び方法に関する。さら
に本発明は、キャッシュ  メモリへのアクセスのミス
  ペナルティ(性能低下)を大幅に減少させるシステ
ム及び方法に関する。
【0002】
【従来の技術】キャッシュ(緩衝記憶)機能は、最近の
プロセッサの動作機能に極めて重要な効果をもっている
のでますます重要となってきている。表1は、キャッシ
ュ  ミス時間と、マシンのパーフォーマンスのミスの
影響を示すものである。最近の10年間に、主メモリの
アクセス時間よりもサイクル  タイムが遙に急速に減
少している。インストラクション当りのマシン  サイ
クルの平均数も顕著に減少しており、とくにコンプレッ
クス(総合)  セット  コンピュータ(CISC)
  マシンよりレジュースト(減少)  インストラク
ション  セット  コンピュータ(RISC)マシン
への転移(transition)が含まれる場合、こ
れが著しい。これら2つの影響は相乗的であり、ミス動
作  コストを極めて増大させる結果を招来する。例え
ば、ディジタル  イクイップメント  コーポレイシ
ョン VAX 11/780 のキャッシュ  ミスは
、平均インストラクション  エクゼキューション(実
行)の60%を要するのみである。従ってインストラク
ションがキャッシュ  ミスを有していても、そのパー
フォーマンスは60%のスロー  ダウンを示すのみで
ある。しかしディジタル  イクイップメント  コー
ポレイション  WRL の如き RISC マシンが
ミスを有すると、そのコストはほぼ10倍のインストラ
クション  タイムとなる。とくにメモリ  アクセス
  タイムとマシン  サイクル  タイムの比が増加
すると、この傾向は継続する。将来、サイクル当りの2
つのインストラクションを遂行する超大形マシンで主メ
モリへ至るすべての通路のキャッシュ  ミスは、10
0 インストラクション  タイム以上のコストを要す
ることとなる。良く知られているキャッシュ  デザイ
ン技術を注意深く応用した場合でも、100 インスト
ラクションタイム以上の主メモリ回転待時間(lata
ncy )を有するマシンでは、メモリハイアラーキー
の固有性能(パーフォーマンス)の半分以上を直に失い
易いこととなる。このことから最新のメモリ  ハイー
ラーキーのハード  ウエア及びソフト  ウエアの双
方の研究が極めて重要となってきている。
【0003】
【表1】
【0004】
【発明の開示】本発明は、一般に第1キャッシュ  メ
モリと第2メモリを有するメモリ  システムに関する
。これらの第1キャッシュ  メモリと第2メモリの間
にミス  キャッシュを接続する。ミス  キャッシュ
は、第1キャッシュ  メモリよりも小さなメモリ容量
を有する。情報のアドレスを行うこれらの第1キャッシ
ュ  メモリ、第2メモリ及びミス  キャッシュにあ
る特定の手段を接続し、第1キャッシュメモリ内にアド
レス情報のミスが発生した際、情報をアドレスし、第1
キャッシュ  メモリ及びミス  キャッシュへの情報
の供給を行う。
【0005】本発明によるメモリのアクセス方法は、第
1キャッシュ  メモリをアドレスし、このアドレスに
応答する第1キャッシュ  メモリ内にミスが発生する
か否かを確める。第1キャッシュ  メモリ内にミスが
発生したときは、第2メモリより第1キャッシュ  メ
モリへ、並びにミス  キャッシュに情報が供給される
【0006】本発明はさらに、第1キャッシュ  メモ
リ、第2メモリ並びに付属のミス  キャッシュで、第
1キャッシュ  メモリよりも小容量を有し、第1キャ
ッシュ  メモリと第2メモリ間に接続されているミス
  キャッシュを有し、さらにこれらの第1キャッシュ
  メモリ、第2メモリ及び付属のミス  キャッシュ
に接続されており、第1キャッシュ  メモリ内に情報
のアドレスのミスが生じたときは、第1キャッシュ  
メモリ及び前記付属のミス  キャッシュに情報を供給
する手段を具えたメモリ  システムに関する。
【0007】
【実施例】以下図面を参照して本発明を説明する。図1
は、メモリ  システムの本発明に関係ある部分のみを
示す。同一のチップ22上に、あるいは最新のパッケー
ジ技術によって製造された単一の高速モジュール上に、
CPU (中央処理ユニット)12、フローティング 
 ポイント  ユニット(FPU )14、メモリ  
マネージメント  ユニット(MMU )16(例えば
トランスレーション  ルック・アサイド  バッファ
あるいはTLB )、及び第1レベル  インストラク
ション及びデータ  キャッシュ18及び20を設ける
。(以下本明細書においては、セントラル  プロセッ
サ24をシングル  チップと称するが、これはチップ
またはモジュールを意味する。)このチップ22のサイ
クル時間は、インストラクションの発出速度(レート)
よりも3〜8倍長い。(すなわち、3〜8インストラク
ションによって1つのオフ・チップ  クロック  サ
イクルとなる。)これは、サイクル当り多くのインスト
ラクションを発出すること(スーパー  カレンダまた
は極めて長いインストラクション  ロード VLIW
 )により、極めて速いオン・チップ  クロックを設
けるか(すなわち、通称スーパー  パイプライニング
)、あるいは、システムの残部に対するよりもプロセッ
サ  チップ22に対し高速技術を用いる(例えば、 
GaAs 対 BiCMOS )ことによって達成でき
る。
【0008】オン・チップ  キュッシュ18及び20
の予期されるサイズ(寸法)は、プロセッサ24の製造
技術によって異なるが、高速技術は一般に小サイズのオ
ン・チップキャッシュを要することとなる。例えば極め
て大きなオン・チップ  キャッシュ18及び20がC
MOSに用いるに適しているが、GaAsまたはバイポ
ーラによるプロセッサには近接限界(near ter
m )より小形のキャッシュ18及び20しか使用でき
ない。従ってGaAs及びバイポーラはより急速な動作
が可能であるが、これらの小形のキャッシュよりの高い
ミス  レートによって、GaAsまたはバイポーラ 
 マシンと、稠密なCMOS  マシン間の実際のシス
テム  パフォーマンス比は、これらのゲート速度の比
以下となる。これらすべての場合、第1レベル  キャ
ッシュ18及び20は、直接マップされるものとした。 これはもっとも早いアクセス時間を得られるからである
。オン・チップ  キャッシュ18及び20のライン寸
法は、大体16B 〜32B の範囲である。データ 
 キャッシュ20は、ライト・スルーまたはライト・バ
ックの何れでも良い。本明細書ではこれらの長・短は論
じない。
【0009】第2レベル  キャッシュ26は、512
KB 〜16MBの容量とし、超高速の静(スタティッ
ク)RAM より構成される。これは、第1レベル  
キャッシュ18, 20と同じ理由で、直接マップされ
る。この大きさのキャッシュ26のアクセス  タイム
は16〜30ns程度である。これはこのキャッシュに
、4〜30のインストラクションのアクセス  タイム
を与える。このキャッシュ26のアクセスタイムに比較
して、プロセッサ24の相対速度は、第2レベル  キ
ャッシュはパイプライン(制御)されるを要し、これに
よって充分な帯域幅を得るようにするを要する。例えば
第1レベル  キャッシュ18, 20がライトスルー
  キャッシュである場合を考える。各6または7イン
ストラクション毎に1つの平均速度でストア(蓄積)が
生ずるのが典型的であるため、パイプラインされていな
い外部キャッシュ26は7インストラクション  タイ
ムより大なるアクセス  タイムに対してはトラフィッ
クの記憶を取扱うに充分な帯域幅を有していない。これ
迄何年もの間、キャッシュ  メモリは主フレーム内で
、パイプライン制御されてきていた、しかしこれはワー
ク  ステーションの最近の開発によるものである。最
近ECL I/0 及びレジスタまたは入力及び出力に
ラッチ28を有するキャッシュ  チップが開発されて
いる。これらはパイプラインされたキャッシュとして理
想的なものである。第2レベル  キャッシュ内のパイ
プライン数は2〜3として良く、この数は、プロセッサ
  チップ22よりキャッシュ  チップに至るパイプ
段28、及びキャッシュ  チップよりプロセッサ24
に戻るパイプ段がフル(完全)または半(ハーフ)パイ
プ段であるかによって定まる。
【0010】この速度(例えばMIP 当り数メガ  
バイト)のプロセッサ24に充分なメモリを与えるため
には、主メモリ34は512MB −4GB の範囲で
あるを要する。これは約1000個のドラムを含む16
Mbのドラム(DRAM)を使用することをも意味する
。主メモリ  システム34は第2レベル  キャッシ
ュのアクセスに比し、大体約10倍の長いアクセス  
タイムを要する。かかる主メモリ34へのアクセスタイ
ムは、多くのカードに分散している数千のドラム(DR
AM)中のアドレス及びデータ信号を抽出(ファン  
アウト)ずるに要する時間がその主要部を占る。このた
めより高速なドラムが出現しても、主メモリへのアクセ
ス  タイムは大体同じ程度に留まる。主メモリへのア
クセス  タイムが大であることは、第2レベル  キ
ャッシュのライン  サイズを128 または256B
とするを要することとなる。例えば16B のみの場合
は、320ns 後に再回(リターン)することとなる
。これは50MB/secのバスのバンド幅となる。こ
のバス  バンド幅の10MIP プロセッサは、1つ
のメモリ位置より他のメモリ位置へコピーをするとき、
バス  バンド幅の制約を受けるので、100 〜10
00のMIP プロセッサを使用してもその能力の追加
は僅かである。これはプロセッサのシステム性能(パー
フォーマンス)を考える上で極めて重要な点である。
【0011】このベース  ライン  システム10に
関しいくつかの観察を行うと次の如くである。第1にこ
のシステムのメモリ  ハイアラーキーは、例えばVA
X 11/780のマシンと極めてよく類似しており、
ハイアラーキーの各レベルのみが1レベルCPU12に
向って上に移動する。例えばVAX 11/780の8
KB のボードレベル  キャッシュはオン・チップ移
動をする。早期のVAX モデルの512KB −16
MB主メモリはボードレベル  キャッシュ26となっ
ていた。780 型の主メモリがはじめて入力トランス
ファー寸法が大となった(ここでは128−256B 
 対 VAXの512 ページ)。この方式(システム
)の主メモリ34は、早期の780 型のディスク  
サブシステムの寸法と同じで、ページング及びファイル
  システム  キャッシングの如き同じ機能を行う。
【0012】システム10のメモリ  ハイアラーキー
  パーフォーマンスの各段階にパラメータを付したも
のを図2に示した。このシステムに見積られた実際のパ
ラメータは次の如くである。インストラクション  イ
ッシュウ  レート 1,000MIP 、ファースト
  レベル  インストラクション  4KB、4KB
データ  キャッシュ 16B  ライン付、1MB 
第2レベル  キャッシュ 128B ライン付。ミス
  ペナルティは、第1レベルに対し、24インストラ
クション  タイムであり、第2レベルに対し320 
インストラクション  タイムである。テスト  プロ
グラムの特性を表2に示す。これらのベンチマーク(水
準)は、現在使用されている多くのトレース(計画)に
比し、かなり長いものである。しかしこの作業にはマル
チプロセシングの効果はモデルされていない。
【0013】図2に見られるように、殆どのベンチマー
クは、第1レベル  キャッシュのミスで潜在性能(パ
ーフォーマンス)の半分以上を失っている。第2レベル
  キャッシュ  ミスによっては極く少いパーフォー
マンスが失われるのみでる。これは主として、実行プロ
グラム  サイズに比較して第2レベル  キャッシュ
のサイズが大であることによるものでる。大量のプログ
ラムによるより長いトレースは、極めて重要な第2レベ
ル  キャッシュのミスを生ずる。本説明に用いる試験
例は、第2レベル  キャッシュ機能の有意性に比し極
めて少いので、第2レベル  キャッシュ  ミスの詳
細は検査しない。
【表2】
【0014】想定されるパラメータは所定範囲の極端の
もの(最大パーフォーマンス  プロセッサに最小サイ
ズのキャッシュ)であるため、他の形態はメモリ  ハ
イアラーキーのパーフォーマンスにおける対応のロスは
、これより少いものとなる。それにも拘らず、興味ある
範囲内での任意の形態は、メモリ  ハイアラーキーの
潜在パーフォーマンスのかなりの比率部分を失う。これ
はシステムのパーフォーマンスの中の最大の部分は、メ
モリ  ハイアラーキー  パーフォーマンスの改良に
よって得られ、これはCPU のパーフォーマンスをよ
り増加しようとする試みによって得られるものではない
ことを意味する。(後者は例えば、インストラクション
の並列発生をより増加させることにより。)以下本明細
書で述べる主課題は、低価格で、ベースライン  メモ
リ  ハイアラーキーのパーフォーマンスを改良向上さ
せることでる。最後に付け加えると、CPU コア(C
PU12, EPU14, MMU16,  第1レベ
ル  キャッシュ18及び20を含む)のパーフォーマ
ンスのコンプロマイズ(妥協)を避けるため、研究すべ
き本技術に必要なすべての付加的ハードウエアはCPU
 コアの外側(すなわち、第1レベル  キャッシュ1
8及び20の下側)でなければならない。かくすること
により、これらの付加的ハードウエアはキャッシュ  
ミスの際にのみ関与することとなり、通常のインストラ
クションの実行に絶対に(クリティカルに)必要な通路
内には存しなくなる。
【0015】キャッシュのミスは4つのカテゴリーに分
類することができ、これらは次の如くである。 コンフリクト(抵触)、……conflictコンパル
ソリ(強制)、……compulsoryキャパシティ
(容量)、……capacityコヒーレンス(凝集)
、……coherenceコンフリクト  ミスとは、
キャッシュが完全に付属的(アソシアティブ)であり、
少くとも最長時間未使用LRU (リースト  リセン
トリィ  ユースト)の入換え(リプレースメント)を
有しているときには起らないミスである。コンパルソリ
  ミスとは、キャッシュが第1にデータの一部の最初
のものであるため、すべてのキャッシュ構成(オーガニ
ゼーション)に必然的なミスである。 キャパシティ  ミスとは、キャッシュのサイズが参照
間のデータを保持するに充分でないときに生ずる。コー
レンス  ミスとは、マルチプロセッサ  キャッシュ
  コンシステンシィ(確実性)の保存を無効にすると
き以外には生じないミスである。
【0016】直接マップされたキャッシュは、これらが
付属性(associativity )に欠けている
ためより多くのコンフリクト  ミスを有するが、これ
らに対するアクセスタイム  コストを考慮するとき、
これらのパーフォーマンスはセット・アソシアティブ 
 キャッシュよりも良い。実際上、究極的通路が時間を
要するRAM のアクセスである場合に、この直接マッ
プ  キャッシュのみが唯一のキャッシュ形態となる。 コンフリクト  ミスは、すべての直接マップ  キャ
ッシュ  ミスの20%〜40%の間にあることが一般
である。図3は、試験モデルに対するコンフリクトによ
りミスのパーセントを示すものである。 第1レベル  データ  キャッシュ  ミスの平均で
30%は、コンフリクトによるものであり、また第1レ
ベル  インストラクション  キャッシュ  ミスの
20%はコンフリクトによるものである。これらはかな
り大きな比率であるため、直接マップ  キャッシュ 
 メモリに限界的なアクセス通路を付加することなく、
或る程度の付加的付属性(associativity
 )を与えることにより“我々の成果(ケーキ)を亨受
し、さらにその恩恵にあずかる(食べる)”ことが好適
である。
【0017】図4のミス  キャッシュ  システム4
0に示す如く、チップ上の第1レベル  キャッシュ2
0と第2レベル  キャッシュへのアクセス  ポート
の間に小形のミスキャシュ42を配置することによって
直接マップ キャッシュ20の対応性を付加することが
できる。ミス  キャッシュ42は、データの2〜8程
度のキャッシュ線44を有する小形の完全・アソシェテ
ィブ  キャッシュである。 ミスが発生すると、データは直接マップ  キャッシュ
に戻されるのみでなく、ミス  キャッシュ42にも戻
され、ここにおいて、LRU (最長時間未使用)アイ
テムを入換える。上位キャッシュ20が検算(prov
e )される毎に、ミス  キャッシュ42も検算され
る。上位キャッシュ20内にミスが生じ、アドレスがミ
ス  キャッシュ42に一致しているときは、直接マッ
プ  キャッシュ20は次のサイクルでミス  キャッ
シュ42より再ロードされる。かくすると、長期のオフ
・チップ  ペナルティが、短期のオンサイクル  オ
ン・チップ  ミスで置換えられる。この配置は、クリ
ティカルな通路が悪化されないという要求を満足する。 その理由は、ミス  キャッシュ自体はプロセッサの実
行の通常のクリティカル通路に存しないからである。
【0018】コンフリクト  ミスの除去において、種
々のミス  キャッシュ構成の成功率を図5に示す。第
1に着目すべきことは、ミス  キャッシュ42によっ
て、インストラクション  コンフリクト  ミスより
も、より多くのデータ  コンフリクト  ミスが除か
れることである。 これは次の如くして説明できる。ほとんどすべての場合
にあてはまるように、キャッシュ  サイズよりもプロ
セジュア(手続)のサイズが小である限り、1つのプロ
セジュア内の各インストラクションは互にコンフリクト
を生じないように、インストラクション  コンフリク
トは広く拡がる傾向がある。従ってインストラクション
  コンフリクト  ミスは他のプロセジュアが呼出さ
れるときに起り易い。ターゲット  プロセジュアは、
呼出し(calling )プロセジュアに関し、すべ
ての個所にマップされるので、極めて多くのオーバーラ
ップを来す。各プロセジュアにおいて、60の異なるイ
ンストラクションが実行されるとすると、試験される最
大寸法のミス  キャッシュ42内で、コンフリクトミ
スは15ライン以上に分離される。換言すると、小さな
ミス  キャッシュ42は、全オーバー  ラップを収
容しきれず、これを使用しうるようにする前に反復して
再ロード(reload)する必要がある。この型式の
参照パターンは最悪のミスキャッシュ  パーフォーマ
ンスを示す。
【0019】一方、データ  コンフリクトは極めて接
近した間隔で生じうる。2つのキャラクタ  ストリン
グを比較する場合を考える。2つのストリングの比較点
が同じラインにマップするとすると、互に相異なるスト
リングへの交互の参照(リファレンス)は常にキャッシ
ュ内で失われる。この場合2つのエントリーのみのミス
キャッシュ42によりこれらのコンフリクト  ミスの
すべてが除かれる。これは他方のパーフォーマンスの極
端な場合であることは明らかであり、図5の結果は関連
のプログラムに基づくパーフォーマンスの範囲を示して
いる。それにも拘わらず4KB データ  キャッシュ
に対して、2つのエントリー44のみのミス  キャッ
シュ42によって、データ  キャッシュ  コンフリ
クト  ミスの平均25%、または全データ  キャッ
シュ  ミス(図6)の13%が除かれる。ミスキャッ
シュ42を4つのエントリー44に増加させると、38
%のコンフリクト  ミスが除去しうるか、全体で36
%のデータ  キャッシュ  ミスが除かれる。4エン
トリー44のミス  キャッシュエントリーによる改良
は僅かであり、15エントリーの44を設けたときも、
データ  キャッシュの全体の減少は、25%増加した
のみであった。
【0020】データ  キャッシュ20のサイズを倍増
させることによってミスが32%減少するので、(デー
タ  キャッシュ  サイズを4Kより8Kに増加させ
ると、この指標値以上となる)、第1レベル  キャッ
シュ20内の各追加ラインは、約0.13%だけミスの
数を減少させる。ミス  キャッシュ42は、記憶ビッ
ト当りにして、データ  キャッシュ20よりもより多
くの面積を必要とするが、2ライン  ミス  キャッ
シュ42内の各ラインは、ミス率において50倍の大き
さのマージンの改良を行うので、レイアウトのサイズの
差を補って余りがある。
【0021】図5と図3とを対比すると、コンフリクト
によるミスのパーセントが高い程、ミス  キャッシュ
42がより有効にこれらのミスを消去することが判る。 例えば、図3では、“met ”は、全体のデータ  
キャッシュ20のミスに対し最高のコンフリクト  ミ
スを示している。同様に“grr ”及び“yacc”
は、コンフリクト  ミスの平均パーセントよりも大き
な比率を示している。ミス  キャッシュ42はこれら
のプログラムに対しても極めて大きな貢献をする。“l
inpack ”と“ccom”はコンフリクト  ミ
スの最小パーセント値を示し、ミス  キャッシュ42
はすべてのプログラムのこれらのミスのごく数パーセン
トを取除く。これはプログラム  データ  コンフリ
クト  ミスに大きな比率を有しているときは、全体の
密度の理由で、これらを或る程度粉砕(cluster
 )すべきことを示している。これはプログラムが、少
数のコンフリクト  ミス、例えばミス  キャッシュ
より、給付(benefit )される“liver 
”の如きミスを含むことを妨げない。しかしコンフリク
トミスのパーセントが増加するにつれ、ミス  キャッ
シュによるこれらのミスの除去率も増加する。
【0022】直接マップ  キャッシュとミス  キャ
ッシュを有するシステムについて考える。ミスが生ずる
と、データは、ミス  キャッシュと直接マップ  キ
ャッシュの双方にロードされる。ある意味では、このデ
ータの二重操作は、ミス  キャッシュ内の記憶蓄積ス
ペースを浪費する。ミス  キャッシュ内の二重化され
るアイテム数は、1(ミス  キャッシュ  マップ内
のすべてのアイテムが直接マップ  キャッシュ内のラ
インと同じになっている場合)より、エントリーの全数
(ミス  キャッシュをヒットしない一連のミスが生ず
る場合)の範囲に亘る。
【0023】ミス  キャッシュ42をより良好に使用
するため、図7のキャッシュ  システム50内に示す
小形の完全付属(アソシエティブ)ミス  キャッシュ
52に対する別の置換アルゴリズムを使用すごとができ
る。ミスにより要求されるデータをミスキャッシュ42
内にロードする代りに、54に示す如く、直接マップ 
 キッシュ20よりビクティム  ラインによって完全
付属ミス  キャッシュ52にロードすることができる
。これを“ビィクティム  キャッシング(犠牲キャッ
シング)”と称する。ビィクティム  キャッシングに
は、データ  キャッシュ20にも、ビィクティムキャ
ッシュ52にも何れにもデータ  ラインは現れない。 これは、ビィクティムキャッシュ52は、直接マップ 
 キャッシュ20より放出されるアイテムのみがロード
されるからである。ビィクティム  キャッシュ52を
ヒットするような直接マップ  キャッシュ20内のミ
スの場合には、直接マップ  キャッシュ  ラインと
マッチするビィクティム  キャッシュ  ライン56
の内容をスワップ(交換)する。
【0024】参照ストリームによって、ビィクティム 
 キャッシュはミス  キャッシュに小さなあるいは極
めて重大な改良の何れかを行うことができる。この利点
はミスキャッシュ内の二重化に対応して定まる。ビィク
ティム  キャッシュは常にミスキャッシュの改良を行
う。
【0025】1例として、コール  サイトとコンフリ
クトを生ずる内側ループ内の小手続き(プロセジュア)
を呼出すインストラクション参照ストリームを考える。 このプログラムのエクゼキーション(実行)は、ミス 
 キャッシュ42内の位置数よりも大きなコンフリクト
  ループに沿ったパス長を有することもある。この場
合、ミス  キャッシュは価値を生じないこともある。 その理由は、キャッシュ内に常時二重化アイテムがフラ
ッシュされるからである。しかし、これに代えてビィク
ティム  キャッシュを使用すると、捕捉しうるパス長
はほぼ2倍となる。これは1組のコンフリクト  イン
ストラクションが直接マップ  キャッシュ20内で生
きており、また他の1組がビィクティム  キャッシュ
52内で生きているからである。このループに沿ってエ
クゼキュションが進行するにつれて、これらのアイテム
のトレードが行われる。
【0026】ビクティム  キャッシングによって除か
れるコンフリクト  ミスのパーセントを図8に示した
。1つのライン56で構成されているビクティムキャッ
シュ52は、必ず2つのライン44で構成するを要する
ミス  キャッシュ42と逆に有用でさえある。ミス 
 キャッシュと比較してすべてのベンチマークは改善さ
れている。しかしベンチマークのインストラクション 
キャッシュ18のパーフォーマンス及びデータ  キャ
ッシュ20のパーフォーマンスは長い連続参照ストリー
ム(例えば、“ccom”及び“リンパック”)がもっ
とも改良されている。
【0027】図9は、ビィクティム  キャッシュによ
って得られたと思われるミスの全体の減少率を示す。図
6と図9との比較より判るように、ビィクティム  キ
ャッシュ52のパーフォーマンスは、2倍のエントリー
数を有しているミス  キャッシュ42よりも場合によ
って良好である。例えば“yacc”のデータ  キャ
ッシュ20のパーフォーマンスを、1・エントリービィ
クティム  キャッシュ52及び2・エントリー  ミ
ス  キャッシュ42で考えて見る。ビィクティム  
キャッシュ52はビィクティムを放棄しないので、状況
によってビィクティム  キャッシュはエントリー数が
2倍のミス  キャッシュよりもミスの数が少くなる。 例えば、新規なデータの評価に多くのキャッシュ  ミ
スが生ずる(例えば、強制(compulsory)ミ
ス)ことを考えると、ミス  キャッシュ42とビィク
ティム  キャッシュ52の双方をフラッシュ  アウ
トすることが有効である。次で他の新しいラインが参照
される場合を考えると、ミス  キャッシュ42を有す
るシステム40と、ビィクティム  キャッシュ52を
有するシステム50との双方にミスが生じている。ライ
ンの古い内容が次に参照されると、ミス  キャッシュ
42はこのアイテムを保有していないが、ビィクティム
  キャッシュ52はこれを保有している。従ってミス
  キャッシュ42を有するシステム40は、メモリ 
 ハイアラーキーの次位のレベルで2つのミスを有する
が、ビィクティム  キャッシュ52を有するシステム
50は1つのみのミスを有することとなる。
【0028】図10は、種々のサイズの直接マップ  
データ  キャッシュ20をバックアップするときの、
1,2,4,15エントリーのビィクティム  キャッ
シュのパーフォーマンスを示す。一般に小さい方の数の
直接マップ  キャッシュ20が、ビィクティム  キ
ャッシュ52の付加によって、より多くの利益を得る。 参考のため、各キャッシュ  サイズに対するコンフリ
クト  ミスの全パーセントを示してある。ビィクティ
ム  キャッシュ52のパーフォーマンス対直接マップ
  キャッシュ20のパーフォーマンスには2つのファ
クターが存する。その第1は、直接マップ  キャッシ
ュ20のサイズが大となるにつれ、ビィクティム  キ
ャッシュ52の相関的サイズは小となることである。直
接マップ  キャッシュ20が大となり、ライン  サ
イズを小(16B )としている為、ビィクティム  
キャッシュにより容易に除きうる稠密なマッピングのコ
ンフリクトの可能性が減少する。第2には1KBより3
2KBへ向ってコンフリクト  ミスは僅か減少する。 既述の如く、コンフリクトミスのパーセントが減少する
につれ、ビィクティム  キャッシュ52によって除か
れるミスのパーセントも減少する。しかし極めて大きな
キャッシュに対しては、コンフリクト  ミスのパーセ
ントが増加するため、第1の効果がより大きな影響を及
ぼし、ビィクティム  キャッシュ52のパーフォーマ
ンスは僅かしか増加しない。
【0029】図11は、種々のライン  サイズの4K
B直接マップ  データ  キャッシュ20に対するビ
ィクティム  キャッシュ52のパーフォーマンスを示
す。予期したように、このレベルでライン  サイズが
増加するにつれて、コンフリクト  ミスの数も増加す
る。コンフリクト  ミスのパーセントが増加すると、
ビィクティム  キャッシュ52によって除去されるか
かるミスのパーセントも増加する。ビィクティムキャッ
シュ52を有するシステム50は、長いライン  サイ
ズにおいて、ビィクティム  キャッシュを設けないも
のよりも利益を得る。その理由は、ビィクティムキャッ
シュ52は、長いキャッシュ  ラインより由来したコ
ンフリクトによるミスを除く助けをするからである。ビ
ィクティム  キャッシュ52内にデータ記憶のために
用いられる面積が一定に保持されるとしても(例えば、
ライン  サイズが倍となると、エントリー数は半分に
カットされる)、ライン  サイズが増加したとき、ビ
ィクティム  キャッシュ52のパーフォーマンスはよ
り改良されるか、少くとも同じ状態を保つ。
【0030】キャッシュのサイズが増加すると、ミスの
大きなパーセントは、コンフリクト及びコンパルソリー
  ミスとなり、キャパシティ  ミスの比率は減少す
る。 (キャッシュが全プログラムよりも大きい場合は、コン
パルソリー  ミスのみが残るので、当然これを除く。 )従ってビィクティム  キャッシュ52は、第2レベ
ルキャッシュ26にも有効であると期待される。ライン
  サイズの増加とともに、コンフリクト  ミスの数
が増加するため、第2レベルキャッシュ26のライン 
 サイズが大となると、ビィクティム  キャッシュ5
2の潜在的有用性が増加する傾向にある。第1レベル 
 キャッシュ20の場合と同様に、第2レベル  キャ
ッシュ26内でコンフリクト  ミスのパーセントが大
となるにつれて、ビィクティム  キャッシュ52によ
って除かれるコンフリクト  ミスのパーセントが大と
なる。
【0031】ビィクティム  キャッシュの興味ある一
面は、キャッシュのハイアラーキーにおけるインクルー
ジョン  プロパーティ(算入特性)を冒涜(viol
ate )することである。これは、マルチプロセッサ
のキャッシュのコンシステンシィ(一貫性)のアルゴリ
ズムに悪影響を及ぼすだけでなく、キャッシュ  シミ
ュレーションに用いられるアルゴリズムにも影響を及ぼ
す。例えば、所定のCPU 基準ストリーム上の第2レ
ベル  キャッシュ26に対するミスの数は、その頂上
(トップ)にある第1レベル  キャッシュ26のサイ
ズ(但し、ライン  サイズではない)に無関係である
。しかしながらビィクティム  キャッシュ52は、第
1レベルのみでなく、第2レベルにおいてもコンフリク
トする多くのラインを含有することができる。このため
、第1レベル  ビィクティム  キャッシュ52の使
用は、第2レベルにおけるコンフリクト  ミスの数も
減少させることができる。第2レベル  キャッシュ2
6に対するビィクティム  キャッシュ52の研究に当
り、第1レベル  ビィクティム  キャッシュ52を
設ける場合と、設けない場合との両方の形態を考える必
要がある。
【0032】メガ  バイトの第2レベル  キャッシ
ュ26に対するビィクティム  キャッシュ52の念入
りな調査には、数百万のインストラクションのトレース
が必要となる。現在我々はより小さいテスト  ケース
に対するビィクティム  キャッシュのパフォーマンス
のみを有しており、多メガ  バイトの第2レベル  
キャッシュ26に対するビィクティム  キャッシュの
パフォーマンスを得ることについては目下取進め中であ
る。
【0033】とくに第1レベルのオン・チップにおける
ミス  キャッシュ42のその他の重要な使途は、イー
ルド(歩留り)の向上である。すべてのインストラクシ
ョン及びデータ  キャッシュ18及び20のバイトに
パリティが維持されており、データ  キャッシュ20
がライト・スルーである場合、キャッシュ  パリティ
  エラーはミスとして取扱うことができる。レフィル
  パスがキャッシュをバイパスするときは、このスキ
ムは、ハードのエラーを有するチップを使用することを
許容する。(実際上、バイトのパリティに対しては、1
バイト当り、最大で1つの悪いビットがあるとすると、
キャッシュ内のすべてのビットの1/9 迄が誤ってい
ることもありうる。)残念乍ら、ミス  キャッシュ4
2が存せず、linpack (例えば、saxpy)
の内側ループが欠陥のあるライン上にランドするか、構
造変数に用いる周波数が欠陥ライン上のものである場合
は、システムのパフォーマンスは大幅に低下(degr
ade )する、(例えば、あるコード  セグメント
で係数4より大にデグレードする)。さらに、欠陥の位
置によって、ランダムの様相でパフォーマンスのデグレ
ードがチップ毎に変化する。これは、プロジェクトのエ
ンジニアリングの開発における潜在性イールドの強化を
制限する。しかしミス  キャッシュ42を付加するこ
とによって、欠陥を引起すパリティ  ミスのペナルテ
ィは1サイクルのみとなり、これはオフ・チップ  ミ
スよりもマシンのパフォーマンスに与えるインパクトは
遙に小となる。従って欠陥の数が小であり、ミス  キ
ャッシュ42で充分取扱えるものであれば、ハードの欠
陥のあるチップを生産系で使用することができる。もし
、ミス  キャッシュ42を、生産上の欠陥のあるシス
テムのパフォーマンスの改良に使用すべきときは、イン
ストラクション  ミス  キャッシュあるいは単に1
つのエントリーのみを有するミス  キャッシュも有用
である。
【0034】前に述べたビィクティム  キャッシュ5
2はパリティ  エラーに起因するミスの修正には有用
ではない。これはビィクティムがパリティ  エラーで
コラプス(退化)しており、セーブに価しないからであ
。しかしビィクティム  キャッシュ52は次の如くの
変化を加えることによってエラー修正にも使用すること
ができる。キャッシュ  ミスがパリティ  エラーに
よって生ずる場合には、ビィクティムキャッシュ52に
入力(ミス)データをロードし、ビィクティムをロード
しない。かくすると、通常のミスに対するビィクティム
  キャッシュ52のように動作し、ミス  キャッシ
ュ42はパリティ  ミスに対し動作する。このような
僅かな変形によって、ミス  キャッシュ42がエラー
のレカバリーに用いられ、ビィクティムキャッシュのよ
り良好なパフォーマンスを組合せることができる。
【0035】コンパルソリー(強制)ミスは、如何なる
キャッシュ構成でも、一部のデータに最初に参照される
ために必要とされるミスである。キャパシティ  ミス
は、キャッシュの大きさが、参照の間にデータを充分保
持するものでないときに生ずるミスである。キャパシテ
ィ  ミス及びコンパルソリー  ミスを減少させる1
つの方法は、長いキャッシュ  ライン  サイズまた
はプレフェッチ方法の如きプレフェッチ技術を用いるこ
とである。しかしながら、ミスのレートを増加させるこ
となしに、また転送すべきデータの量を遙に増加させる
ことなしにライン  サイズを任意に大とすることはで
きない。 本章では、長いライン及び過剰のプレフェッチに関する
従来の問題を減少させ乍ら、キャパシティ  ミス及び
コンパルソリーミスを減ずる技術を研究することとする
【0036】ライン  サイズが長くなると、各種の異
なるプログラム及びアクセス  パターンに対し固定し
た転送(トランスファー)サイズを設ける点で不利益を
生ずる。プレフェッチ技術は、プログラムの実際のアク
セス  パターンにより良く適合しているので興味があ
る。このことは、インストラクション  ストリームま
たは、ユニット  ストライド  アレイ  アクセス
の如き、長い準連続(quasi−sequentia
l)アクセス  パターンのパフォーマンスの改良にと
くに重要である。
【0037】3つのプレフェッチ  アルゴリズムの詳
細な解析が、スミス  アラン  ジュニア(Smit
h Alan. J.)により“Cache Memo
rie ”として、Computing Servey
s 1982, 9, pp473−530 に発表さ
れている。プレフェッチでは、各参照後常にプレフェッ
チを行う。これは我々のベース  システム10では実
際的でない。その理由は、単一のレベル・2キャッシュ
  レファレンス(参照)を必要とする時間内に数多く
のレベル・1  キャッシュ  アクセスが行われるか
らである。これはインストラクション  キャッシュ1
8より、1サイクル当り複数のインストラクションをフ
ェッチし、同時に1サイクル当りデータ  キャッシュ
20にロードまたは蓄積を行うマシンにおいて特に事実
である。プレフェッチ・オン  ミス(ミスの際のプレ
フェッチ)及びタグド・プレフェッチ(タグ付プレフェ
ッチ)はより有望な技術である。プレフェッチ・オン 
 ミスにおいては、ミスが生ずると、次のラインもプレ
フェッチする。この技術では、純粋シーケンシャル  
レファレンス  ストリームに対するミスの数を半分に
カットする。タグド・プレフェッチは、さらにこれより
良好である。この技術においては、各ブロックは付随す
るタグ  ビットを有する。あるブロックがプレフェッ
チされると、そのタグ  ビットは“0”(ゼロ)にセ
ットされる。このブロックが使用される毎にタグ  ビ
ットは1にセットされる。このブロックが0より1に転
移する毎にその後続のブロックがプレフェッチされる。 フェッチが充分急速に行われると、これにより純粋シー
ケンシャル  リファレンス  ストリーム内のミスの
数は0に減少する。残念乍ら、ベースシステム10では
、レーテンシィ(潜在性)が極めて大であるためこれは
不可能である。図12は、C  コンパイラー  ベン
チマークの遂行中に必要とするプレフェッチ  ライン
に至る迄の時間(インストラクション  発出迄の時間
)を示すものである。当然のことながら、ライン  サ
イズは4インストラクション分であるため、マシンをキ
ャッシュされないストレート・ライン  コードで維持
するためには、プレフェッチ  ラインは、4インスト
ラクション時間内に受信されなければならない。ベース
  システムでは、第2・レベル  キャッシュ26は
、アクセスに多くのサイクルを要し、かつマシンは各サ
イクル当り実際に数多くのインストラクションを発出す
るため、タグド  プレフェッチのみが、所要のインス
トラクションを設けるのに、ワン・サイクル・アウト・
オブ  メニー  ヘッド  スタートを有する。
【0038】本発明で必要なことは、タグ転移の生ずる
前にプレフェッチをスタートさせることである。図13
に示したシステム60におけるストリーム  バッファ
62と称されるメカニズム(機構)によりこれを行うこ
とができる。ストリーム  バッファ62は、それぞれ
タグ66より成る一連のエントリー64、利用可能ビッ
ト68及びデータライン70より成る。
【0039】ミスが発生すると、ストリーム  バッフ
ァ62は、ミス  ターゲットより出発して、順次のラ
インのプレフェッチを開始する。各プレフェッチリクエ
ストが送出されると、このアドレスに対するタグ66が
ストリーム  バッファ62に入力され、ここで利用で
きるビット68は誤り(false )としてセットさ
れる。プレフェッチ  データ70が戻ってくると、そ
のタグ66と共にエントリー64内に収納され、ここで
得られるビット68は真値(true)とされる。ミス
によってリクエストされる順次のラインは、キャッシュ
20でなくバッファ62に収納される。 かくすることによって、必要でないデータによってキャ
ッシュ20が汚染されることが防止される。
【0040】次々のキャッシュへのアクセスにおいても
、これらのアドレスをストリームバッファ62に記憶さ
れている第1アイテムと比較する。この参照において、
キャッシュ20ではミスし、ストリーム  バッファ6
2ではヒットしたとすると、キャシュ20はストリーム
  バッファ62より単一サイクルで再ロードすること
が可能である。これはオフ・チップ  ミス  ペナル
ティよりも遙に急速である。ここにおけるストリーム 
 バッファ62は簡単なFIFO  キュー(待合せ)
と考えられ、キューの初頭のもののみが、タグ比較器7
2を有しており、ストリーム  バッファ62より移動
されたエレメントは、如何なるラインをもスキップする
ことなしに順次厳密に移動させることを要する。この簡
単なモデルでは、非順番(non−sequentia
l)ライン  ミスは、キューの次の下位に要求される
ラインが既に出現していても、ストリーム  バッファ
62をフラッシュさせ、ミス  アドレスより再スター
トさせる。以下に、既にフェッチしたラインを順番(シ
ーケンス)外としうるより複雑なストリーム  バッフ
ァについて述べる。
【0041】ライン64がストリーム  バッファ62
よりキャッシュ20に移されると、ストリーム  バッ
ファ62内のエントリーは1つだけシフトし、新規な後
続のアドレスがフェッチされる。次の後位アドレスはイ
ンクレメンタ74によって発生される。第2レベル  
キャッシュ26へのパイプ  ライン  インタフェイ
スによって、ストリーム  バッファ62は第2レベル
  キャッシュ26の最大帯域幅に充填され、プロセス
にあたり、多くのキャッシュ  ラインを同時にフェッ
チすることができる。例えば、インストラクション  
キャッシュ18のミスの16B ラインの再充足のレー
テンシィ(回転待ち時間…latancy )が12サ
イクルと見なす。パイプ  ラインされたメモリ  イ
ンタフェイスで、各4サイクル毎に新しいライン  リ
クエストを受入れられるものを考える。4・エントリー
  ストリーム  バッファ62は、常時3つのリクエ
ストが待機している状態で、サイクル当り1つの速度で
4Bのインストラクションを与えることができる。従っ
て順次のインストラクション実行中、長いレーテンシィ
  キャッシュ  ミスは生じない。これは、同時には
1ラインのみしかプレフェッチされない純粋順次参照ス
トリームにおけるタグ付プレフェッチのパフォーマンス
と違っている。ここでは順次のインストラクションは、
各3サイクルに1つのインストラクションに等しい帯域
幅(すなわち、12サイクル  レーテンシィ/4イン
ストラクション  各ライン当り)でのみ供給される。
【0042】図14は、それぞれ16バイトのラインを
有し、4KBインストラクション  キャッシュ18を
バックする4・エントリー  インストラクション  
ストリーム  バッファ62と、4KB  データ  
キャッシュ20をバックするデータ  ストリーム  
バッファ62のパフォーマンスを示す。この図は、バッ
ファが最初のミスで開始して、プレフェッチを許される
ライン数に基づき、除かれるミスの累計数を示すもので
ある。ほとんどのインストラクションの参照(レファレ
ンス)は、6番目の連続ラインがフェッチされる時まで
に、純粋な順番アクセス  パターンを破り、一方多く
のデータ参照パターンはより早く終結する。これの例外
は、“liver ”に対するインストラクション参照
及び“linpack ”に対するデータ参照である。 “liver ”は、プログラムの14のループが順次
実行され、初めの14ループは一般に他の手続きをコー
ルしないか、あるいは過剰のブランチを行い、連続ミス
  パターンを破るため、変則である可能性がある。“
linpack ”のデータ参照(レファレンス)パタ
ーンは次の如くして理解できる。ストリーム  バッフ
ァ62は、キャッシュ18または20がミスしたライン
を提供するのみの責務を有している。“linpack
”の内側のループ(例えば、saxpy )は、マトリ
ックスの1行と他の行との間の内積(inner pr
oduct )を行う。1つの行の第1の使用により、
この行はキャッシュにロードされる。キャッシュの当該
の後続のミス(第1行のマッピング  コンフリクトを
除く)の後、マトリックスの次位のラインが構成される
。マトリックスは過大であって、オン・チップ  キャ
ッシュに適さないので、全マトリックスは各反復(it
eration )毎にキャッシュを通過する。ストリ
ーム  バッファ62は第2レベル  キャッシュ26
によって提供される最大帯域幅でこれを行いうる。基準
ストリームがユニット・ストライドであるか、または各
第3ワードまたは最大で他へスキップすることはこれに
対し必須の要件である。非・ユニット・ストライド方向
にアレイがアクセスされると、(さらに、他のディメン
ションが、ノン・トライビアルである限り)ここに説明
したストリーム  バッファ62は僅かな利点しか有さ
なくなる。
【0043】図15は、3つの典型的なストリーム  
バッファにおける帯域要求を示すものである。“cco
m”に対するI・ストリームは極めて正規である。(イ
ンストラクション中に測定したとき。)平均として、各
4.2 インストラクション毎に16B ラインをフェ
ッチするを要する。プログラムが短いループに入ると、
ストリーム  バッファ62を参照する間隔が増加し、
例えば疑問(else)クローズをスキップするような
場合の如く、プログラムが小幅の前方ジャンプを行うよ
うなときはこれは減少する。それにも拘らず、フェッチ
周波数は極めて規則正しい。このデータは、例えばディ
ジタルイクイップメント  コーポレイション  マル
チチタン  CPU またはMIPS R2000(商
品名)の如く、短い機能ユニット  レーテンシー(回
転待ち時間)を有するマシンに対するものである。従っ
てインストラクション当りのサイクル数は、キャッシュ
  ミスの無いとき、1に極めて近くなる。
【0044】“linpack ”及び“ccom”に
対するデータ  ストリーム  バッファの参照のタイ
ミングを図15に示してある。“linpack ”に
対する新規な16B ラインの参照速度は、各27イン
ストラクション当り、1である。 “linpack ”のこの部分は二重精密(doub
k precision )であるため、この作業は、
各13.5インストラクション当り、内側ループの新し
い反復(iteration )を行う。これは希望値
よりも大である。この“linpack”のバージョン
はある程度ルーズであり、各アレイ素子に対するアドレ
ス計算を整数倍し、ループはアンロールされない。ルー
プがアンロールされ、広範な最適化(optimiza
tion)が行われるとすると、参照のレート(比率)
は増加する。しかし、インストラクション側には存しな
いデータ側の記憶トラフィックに起因するインストラク
ション  ストリームのレートよりも以下でなければな
らない。“ccom”は興味あるトライモード(三モー
ド)のパーフォーマンスを有している。ミスに続いて、
後続のラインが使用されるとすると、平均でミス後、僅
か5サイクルで必要とされる。ミス後次の2つのライン
に対し、平均で各10インストラクション毎に連続する
データ  ライン(16B )が必要とされる。初めの
3つのラインがストリーム  バッファ62の殆どの(
82%)利点を生ずる。 その後は連続するラインは“linpack ”に近い
レート、すなわち平均で各24インストラクション毎に
必要とされる。
【0045】一般に、バック・アップのメモリが新規ワ
ード(4B)の各サイクルに平均帯域幅でデータを形成
することができると、ストリーム  バッファ62は連
続参照を維持することが可能となる。これはインストラ
クション  ストリームに対し充分であり、かつ極めて
多く巻戻し(アンロール)されたブロックコピーにも充
分で、二重プレシジョン  ロード及びメモリ(sto
re )を使用する。この帯域幅が得られないときは、
インストラクション  ストリームバッファの利点は減
少し、ブロック  コピー及び他の類似のオペレーショ
ンも負のインパクトを受ける。しかし各1.5 〜2サ
イクル当り1つの新しいワードを均等化(イコーリング
)する帯域幅は多くのデータに対し依然として充分役に
立つ。なおこれらの価は帯域幅に対するものであり、図
12のプレフェッチ  スキムにおいて要求される全レ
ーテンシィを達成するよりも遙に容易である。
【0046】前章に述べたストリーム  バッファ62
は、インストラクション  キャッシュ18のミスを全
体で72%取除くことができた。しかしデータ  キャ
ッシュ20のミスは、その25%しか取除くことができ
ない。この理由の1つは、データの参照が、異なるデー
タ源よりのインタリーブされたデータ  ストリームで
構成されていることによる。データの参照におけるスト
リーム  バッファ62のパフォーマンスの向上を図る
ため、マルチ・ウエイ  ストリーム  バッファ62
のシステム80をシュミレートした。(図16)  こ
のシステム80は4個のストリーム  バッファ62を
並列にして構成されている。何れのストリーム  バッ
ファ62をもヒットしないデータキャッシュ20にミス
が生ずると、最低頻度(least recently
)でヒットされたストリーム  バッファ62をクリヤ
し(すなわちLRU 置換)、ミスのアドレスにおいて
フェッチを開始する。
【0047】図17はマルチ・ウエイ  ストリーム 
 バッファ  システム80を我々のベンチマーク  
セットで動作させたときのパフォーマンスを示す。予期
したように、インストラクション  ストリームによる
パフォーマンスは本質的には変らなかった。これはイン
ストラクション  ストリームに対しては、より簡単な
単一ストリームバッファ  システム60で充分間に合
うことを示している。 しかし、マルチ・ウエイ  ストリーム  バッファ 
 システム80は、データ側では画期的な性能向上改良
を示し、これは6つのプログラムに対しミスの43%を
除去することができ、単一ストリーム  バッファ  
システム60の性能のほぼ2倍であった。“liver
 ”のマトリクス動作が最大の改良(減少を7%より6
0%に変えた)を示したが、すべてのプログラムが或程
度の改良を示した。“liver ”もそのデータ構造
に、ユニット  ストライド  アクセスを行うことを
付記する。
【0048】以上の説明においては、ストリーム  バ
ッファ62に対し、単に1つのアドレスコンパレータの
みが設けられていた。これは、要求されたラインがスト
リームバッファ62内であるが、コンパレータ72に対
する第1位置にない場合には、ストリーム  バッファ
62は参照の際にミスをし、その内容はフラッシュされ
ることを意味する。このスキムに対し、明らかな改良を
行う1つは、コンパレータをストリーム  バッファ6
2の各位置に設けることである。かくすると、例えば準
連続参照パターンによって、あるキャッシュ  ライン
がスキップされても、ストリーム  バッファ62は、
キャッシュ  ラインが既にフェッチされている限り依
然としてこれに供給を行うことが可能である。
【0049】図18は、3つの比較器(compara
tors) を持つストリーム  バッファの性能を示
す。疑似ストリーム  バッファ(quasi−str
eam buffer) は、命令キャッシュ  ミス
の76%を除去することができ、これは純粋逐次(pu
rely sequential) ストリーム  バ
ッファよりも4%の改善であって、残留ミスの数の14
%の減少をもたらす。 このことは恐らく、”if”ステートメント中の”th
en”クローズや”else”クローズのようなコード
がスキップしたときに、疑似ストリーム  バッファが
有用なフェッチを継続できる能力に依るものであろう。 シミュレートされたこの変形は3つの比較器を持つので
、最大2つのキャッシュ  ラインに加えて更に 3/
4までのキャッシュ  ラインを、アラインメントによ
りどちらかの側で、最大合計16ないし22の命令に対
してスキップすることが出来た。 このことは、ストリーム  バッファがフラッシュされ
ることの起きない(分枝アラインメントによる)逐次ス
トリーム  バッファでは、僅かに0ないし6命令しか
スキップしないのに対比される。
【0050】疑似ストリーム  バッファの余分の比較
器はまた、4方向(four−way)データストリー
ム  バッファの性能をも改善する。結局全体では、4
方向疑似ストリーム  バッファはすべてのミスの47
%を除去することができ、これは純粋逐次4方向ストリ
ーム  バッファよりも4%の向上である。
【0051】単一ストリーム  バッファへ数個の余分
な比較器を設けるために所要のハードウェアの量は小さ
いものだから、疑似ストリーム  バッファは、命令ス
トリームに対する逐次ストリーム  バッファの有益な
一般化であるかのように思われる。それは、僅かに2つ
の比較器を付加することが、逐次ストリーム  バッフ
ァを疑似ストリーム  バッファに転換するのに要求さ
れるだけだからである。しかし、多方向(multi−
way) データ疑似ストリーム  バッファに対して
は、それは有用ではないかも知れない、と云うのは所要
の余分な比較器の数が何倍にも大きくなるであろうから
である。ソフトウェア探究での興味ある分野として、コ
ンパイラがコードを再編成し、データ  レイアウトが
ストリーム  バッファの用途を最大にする能力がある
。もし引照規準の逐次性(sequentiality
 of references) を最適化する技術が
成功するならば、ストリーム  バッファへの余分な比
較器の必要性はさらに小さくなる。
【0052】ストリーム  バッファの性能を視野に収
めるために、このセクションではストリーム  バッフ
ァの性能を以前に文献で検討したプリフェッチ技術に譬
えることにする。我々の6つのベンチマーク上での、ミ
スの際のプリフェッチ(prefetchon mis
s)、タグ付プリフェッチ(tagged prefe
tch) 及び常時プリフェッチ(always pr
efetch) の性能が表3に示される。このデータ
は、1命令付与(oneinstruction−is
sue) の第2レベルキャッシュ回転待ち時間(la
tency) を伴うこれらのプリフェッチ技術の使用
を前提にして、ミスの減少を示している。 1命令付与の回転待ち時間は1マシーンサイクルより小
さいであろうから、また第2レベルキャッシュは典型的
に多くの CPUサイクルの回転待ち時間を持つのだか
ら、このデータは全く非現実的なものであることに留意
されたい。それにも拘らず、これらの数字はこれらのプ
リフェッチ技術の性能の上限を与えるのである。この検
討におけるプリフェッチ  アルゴリズムの性能は以前
の文献に示されたデータとよく一致している。上に引用
したスミス(Smith) の論文では、16Bライン
と8方向セット結合性(16B lines and 
8−way set associativity) 
を伴う 8KB混合キャッシュ上のPDP−11痕跡T
RACE(a PDP−11 trace TRACE
 on a 8KBmixed cache)に対する
ミス  レート(miss rate) の減少は(混
合キャッシュだけしか検討されていないので)ミスの際
のプリフェッチに対して27.8%、タグ付プリフェッ
チに対して50.2%、常時プリフェッチに対して51
.8%であることが判っている。
【0053】表4では、表4からのプリフェッチの性能
を以前に示したストリーム  バッファの性能と比較し
ている。命令の側では、単純単一ストリーム  バッフ
ァ(a simple single stream 
buffer)62はミスの際のプリフェッチを広いマ
ージンで出力実行している。このことは、純粋逐次引照
規準ストリーム(a purely sequenti
alreference stream)に対してミス
の際のプリフェッチはミスの数を因数2で減少させるの
みであろうから、驚くには当たらない。単純単一ストリ
ーム  バッファシステム60も疑似ストリーム  バ
ッファ  システム80も共に、タグ付プリフェッチと
殆ど同じように機能している。トラフィックに関する限
り、ストリームバッファ62はミスの後にタグ付プリフ
ェッチより多くフェッチするであろうが、しかしタグ転
移に際してはフェッチを開始しないだろうから、トラフ
ィック率の比較は今後の興味ある研究課題である。命令
ストリーム上のストリーム  バッファ62の性能は常
時プリフェッチより僅かに劣る。このことは、常時プリ
フェッチの性能が分枝を取らない命令の百分率に近似す
るから、また命令の減少に際し逐次プリフェッチによる
キャッシュ  ミスの上限だから、驚くには当たらない
。しかし、ストリーム  バッファ62によるアプロー
チのトラフィック率は、常時プリフェッチよりもミスの
際のプリフェッチ又はタグ付プリフェッチのそれに遙か
に近いに相違ない。
【0054】
【表3】
【0055】
【表4】
【0056】表4はまた、ストリーム  バッファ62
の性能を、データ引照のためのプリフェッチ技術に譬え
る。 茲ではすべての型式の4方向ストリーム  バッファ 
 システム80がプリフェッチ戦術を出力実行する。こ
れは主として、プリフェッチ戦術が、たとえそれが必要
でない場合にさえも、プリフェッチされた項目を常にキ
ャッシュ内に置くからである。ストリーム  バッファ
62によるアプローチは、要請されたときにのみ項目を
キャッシュ20内に動かすので、結果としてプリフェッ
チされたデータを常にキャッシュ20内に置くよりも汚
染が少ない。このことは、データ引照規準の空間的所在
が命令引照規準の空間的所在よりも少ないのだから、ま
たプリフェッチされたデータはプリフェッチされた命令
よりも遙かに汚染となり易いのだから、データ引照にと
って特に重要である。
【0057】ストリーム  バッファ62の相対的性能
及び理想的なプリフェッチ技術とは無関係に、ストリー
ム  バッファによるアプローチは遙かに実行し易いも
のである。それはこのアプローチが(逐次引照規準パタ
ーンに対するミスの際のプリフェッチ又はタグ付プリフ
ェッチとは異なり)パイプライン化されたメモリ  シ
ステムの利点を活用できるからである。それはまた、先
行のブロックが使用される前にブロックをフェッチする
ことを開始できるから、プリフェッチされたデータに対
する回転待ち時間への要求条件がプリフェッチ技術に較
べて低い。最後に、少なくとも命令のストリーム  バ
ッファ62に対しては、ストリーム  バッファ62が
特別に必要とする余分のハードウェアは、タグ付プリフ
ェッチが必要とする余分なタグ記憶部としばしば同程度
である。
【0058】小さいミス  キャッシュ42(例えば 
2−8 エントリーの)は、1Kないし8Kバイトの範
囲の直接写像されたキャッシュ20に対するデータ  
キャッシュ衝突ミスの減少に効果的であることが示され
ている。それらは、キャッシュ中の同じラインに写像す
る2ないし4ライン間にミスが交互に生じる厳しい衝突
を、効果的に除去する。
【0059】ビクティム  キャッシュ52は、小さい
付属キャッシュ52の内のキャッシュ  ミスのビクテ
ィムを、ターゲットに代わって救済するミスキャッシュ
化の改良である。ビクティム  キャッシュ52は、衝
突ミスを除去するのにミス  キャッシュ42よりもず
っと効果的である。ビクティム  キャッシュ52は、
ラインのサイズが増大し、衝突ミスの百分率が増加する
のに伴い一層有益である。衝突ミスの百分率が増加する
のに伴い、ビクティム  キャッシュ52により除去可
能なこれらのミスの百分比も増加し、その結果は、ビク
ティム  キャッシュ52の使用により可能な性能の改
善に対し更に険しい傾斜となるように、一般的には見受
けられる。
【0060】ストリーム  バッファ62は、ミスした
キャッシュ  ラインの後のキャッシュラインをプリフ
ェッチする。ストリーム  バッファ62は該ラインを
、不必要なキャッシュの汚染を避けるために(キャッシ
ュ  ミスがもしあれば)キャッシュミスにより要請さ
れるまで記憶しておく。それは容量及び強制的なミスの
数を減少するのに特に有用である。それは、前に論じた
タグ付プリフェッチ又はミスの際のプリフェッチのよう
なプリフェッチ技術とは異なり、逐次引照規準に対する
パイプライン化されたメモリ  システムで使用可能な
メモリ帯域幅を活用できる。ストリーム  バッファ6
2はまた、他のプリフェッチ技術(常時プリフェッチさ
えも)より遙かに前以てデータをプリフェッチするから
、さらに長いメモリシステム回転待ち時間を許容できる
。ストリーム  バッファ62はまた、命令衝突ミスも
同じく相対的に逐次性を持つ傾向がある故、命令衝突ミ
スを補償することもできる。
【0061】多方向ストリーム  バッファ  システ
ム80は、同時に発生するいくつかのストリームをプリ
フェッチできるところの一組のストリーム  バッファ
62である。この検討では、プリフェッチ開始アドレス
が LRU (least recently use
d −最長時間未使用) 順ですべてのストリーム  
バッファ62に亙り置き換えられる。多重経路ストリー
ム  バッファ62は、アレイ操作(array op
erations)におけるようないくつかの異なる巨
大データ構造へのインターリーブされたアクセス(in
terleavedaccesses)を含むデータ引
照に対し有用である。しかし、プリフェッチすることは
逐次ライン(sequential lines)だか
ら、(2又は3の)単位幅(unit stride)
のアクセス  パターンのみが利益を受ける。
【0062】ビクティム  キャッシュ52による性能
の改善及びストリームバッファ62による性能の改善は
、データ引照規準に対し相対的に直交(relativ
ely orthogonal)するものである。ビク
ティムキャッシュ52は、引照規準がキャッシュ中の同
じラインに写像する2つの所在位置を交互に往き来する
ときに好適に働く。それはデータをプリフェッチする訳
ではなく、フェッチされたデータを使用可能に維持する
ためにずっとよい仕事をするだけである。しかるに、ス
トリーム  バッファ62は、データをプリフェッチす
ることにより性能の改善を達成する。 それは衝突が時間的に広い間隔を持つのでない限り衝突
ミスを除去しない、そしてキャッシュ  ミス引照スト
リームは多数の逐次アクセスから成るのである。これら
は正に、その相対的に小さい容量の故にビクティム  
キャッシュ52により旨く処理されない衝突ミスなので
ある。 6つのベンチマークの一組に亙って平均的に、4エント
リーのビクティム  キャッシュに当たった 4KBの
直接写像されたデータ  キャッシュ  ミスの僅かに
 2.5%が、ccom,met,yacc,grr及
びlivermore に対して、4方向ストリーム 
 バッファにも当たるのである。対照的に、linpa
ck はそのデータ  アクセス  パターンの故に、
ビクティム  キャッシュに当たったものの50%が4
方向ストリーム  バッファにも当たるのである。しか
し、linpack のキャッシュ  ミスの僅かに4
%がビクティム  キャッシュに当たる。それは6つの
ベンチマークのうちでビクティム  キャッシュするこ
とからもたらす利益が最小であり、従ってこのことはま
だストリーム  バッファとビクティム  キャッシュ
することとの間の有意な量の重複ではない。
【0063】図20は、ベース  システム10に4エ
ントリー  データビクティム  キャッシュ52と命
令ストリーム  バッファ62と4方向ストリーム  
バッファ62部分システムとを付加したものの性能を示
すグラフで、該システムは図19A 及び図19B に
システム100 とされているものである。(該ベース
  システムは、24サイクル  ミス  ペナルティ
ズを持つオンチップ 4KB命令及び 4KBデータ 
 キャッシュ、並びに 128バイト  ライン及び3
20 サイクル  ミス  ペナルティを持つ3段階第
2レベル1MBキャッシュへの16バイト  ラインを
持つ。)図20の下の実線はビクティム  キャッシュ
又はバッファを持たない原のベース  システムの性能
を表し、上の実線はバッファ及びビクティム  キャッ
シュを持つ場合の性能を表している。これらの技術の組
合せは第1レベルのミス  レートを、これらの特徴を
持たないベースライン  システム10のそれの半分未
満に減少させ、結果として6つのベンチマークに亙る平
均で 143%のシステム性能の改善がもたらされてい
る。これらの結果は、僅かの量のハードウェアの付加に
よりキャッシュ  ミス  レートを劇的に減少させ、
システム性能を改善したことを示している。
【図面の簡単な説明】
【図1】図1は、本発明に係わるようなベースライン 
 システムの概略ブロック図である。
【図2】図2は、本発明に係わらない図1のシステムの
性能を示すグラフである。
【図3】図3は、本発明に係わらない図1のシステムの
性能の別の面を示すグラフである。
【図4】図4は、本発明の実施例に係わる図1に示すシ
ステムの一部分の概略ブロック図である。
【図5】図5は、図4の部分に含まれるシステムの性能
のある1つの面を示すグラフである。
【図6】図6も、図4の部分に含まれるシステムの性能
のまた別の面を示すグラフである。
【図7】図7は、本発明のもう1つの実施例に係わる図
4の部分に対応するシステムの一部分の概略ブロック図
である。
【図8】図8は、図7の部分に含まれるシステムの性能
のある1つの面を示すグラフである。
【図9】図9も、図7の部分に含まれるシステムの性能
のある1つの面を示すグラフである。
【図10】図10も、図7の部分に含まれるシステムの
性能のある1つの面を示すグラフである。
【図11】図11も、図7の部分に含まれるシステムの
性能のある1つの面を示すグラフである。
【図12】図12は、本発明に係わらない図1のシステ
ムの性能のもう1つの別の面を示すグラフである。
【図13】図13は、本発明の更にもう1つの実施例に
係わる図4の部分に対応するシステムの一部分の概略ブ
ロック図である。
【図14】図14は、図13の部分に含まれるシステム
の性能のある1つの面を示すグラフである。
【図15】図15も、図13の部分に含まれるシステム
の性能のまた別の面を示すグラフである。
【図16】図16は、本発明の更にもう1つの実施例に
係わる図13の部分に対応するシステムの一部分の概略
ブロック図である。
【図17】図17は、図16の部分に含まれるシステム
の性能のある1つの面を示すグラフである。
【図18】図18も、図16の部分に含まれるシステム
の性能のまた別の面を示すグラフである。
【図19】図19は、図19A と図19B とを左右
に並べたものであり、図19A と図19B とはそれ
ぞれ、本発明の更にもう1つの実施例を示す図7、図1
3及び図16のシステム部分の組合せに一般的に対応す
るシステムの一部分の概略ブロック図の左半分と右半分
とを示す図である。
【図20】図20は、図19A と図19B のシステ
ムの性能のある1つの面を示すグラフである。
【符号の説明】
10  メモリ  システム(ベースライン  システ
ム)12  CPU  (中央処理ユニット)14  
フローティング  ポイント  ユニット (FPU)
16  メモリ  マネージメント  ユニット (M
MU)18,20   データ  キャッシュ(第1レ
ベル)22  チップ(プロセッサ  チップ)24 
 セントラル  プロセッサ (中央処理装置)26 
 第2レベル  キャッシュ 28  ラッチ 34  主メモリ 40  ミス  キャッシュ  システム42  ミス
  キャッシュ 44  キャッシュ  ライン 50  キャッシュ  システム 52  完全付属ミス  キャッシュ(ビクティム  
キャッシュ) 56  ライン 60  単一ストリーム  バッファ  システム62
  ストリーム  バッファ 64  エントリー 66  タグ 70  データ  ライン 72  比較器

Claims (33)

    【特許請求の範囲】
  1. 【請求項1】第1キャッシュ  メモリ(18, 20
    )と、第2メモリ(26)と、これらの第1キャッシュ
      メモリと第2メモリの間に接続されたストリーム 
     バッファ(62)とを有し、さらに前記第1キャッシ
    ュ  メモリ、第2メモリ及びストリーム  バッファ
    に接続されている手段(16)を有し、情報をアドレス
    する第1キャッシュメモリ内にミスが生じたときは、該
    手段は第1キャッシュ  メモリ及びストリーム  バ
    ッファに情報をアドレスし、かつ情報を供給し、該情報
    のアドレス及び供給手段は、前記第1キャッシュ  メ
    モリ内でミスされた情報を供給し、かつこのミスされた
    情報に対するアドレスに後続する少くとも1つのアドレ
    ス内の情報を前記ストリーム  バッファに供給する手
    段を含んでなるデータ処理装置のメモリシステム。
  2. 【請求項2】前記第1キャッシュ  メモリがインスト
    ラクション  キャッシュ(18)を含む請求項1記載
    のメモリ  システム。
  3. 【請求項3】前記第1キャッシュ  メモリがさらにデ
    ータ  キャッシュ(20)を含む請求項1記載のメモ
    リ  システム。
  4. 【請求項4】前記情報のアドレス及び供給手段は、前記
    第1キャッシュ  メモリとストリーム  バッファと
    に同時にアドレス情報を供給する手段を含んでなる請求
    項1記載のメモリ  システム。
  5. 【請求項5】前記情報のアドレス及び供給手段は、前記
    第1キャッシュ  メモリとストリーム  バッファと
    に同時に対応情報を供給する手段を含んでなる請求項1
    記載のメモリ  システム。
  6. 【請求項6】第1キャッシュ  メモリと第2メモリの
    間に接続された付加的な複数個のストリーム  バッフ
    ァを有し、前記情報アドレス及び供給手段は、第1キャ
    ッシュメモリ内でミスされたデータを供給し、このミス
    されたデータのアドレスの後続の少くとも1つのアドレ
    ス内のデータを前記付加的の複数のストリームバッファ
    に供給する手段を有してなる請求項1記載のメモリ  
    システム。
  7. 【請求項7】情報のアドレス及び供給手段が、ストリー
    ム  バッファの1つ及び第2メモリよりミスされた情
    報を供給する手段を含む請求項1記載のメモリ  シス
    テム。
  8. 【請求項8】前記第1キャッシュ  メモリを直接マッ
    プ・キャッシュ  メモリとする請求項1記載のメモリ
      システム。
  9. 【請求項9】第1キャッシュ  メモリ(18, 20
    )、第2メモリ(26)、及び第1キャッシュメモリよ
    り小容量で、第1キャッシュ  メモリと第2メモリの
    間に接続された付属のミス  キャッシュ(42, 5
    2)とを有し、さらに前記第1キャッシュ  メモリ、
    第2メモリ、及び付属のミス  キャッシュに接続され
    、アドレスされた情報に対し第1キャッシュ  メモリ
    内にミスが生じたときは、この第1キャッシュメモリ及
    び付属のミス  キャッシュに情報をアドレスし、情報
    を供給する手段(16)を具えてなるメモリ  システ
    ム。
  10. 【請求項10】第1キャッシュ  メモリがインストラ
    クション  キャッシュを有する請求項9記載のメモリ
      システム。
  11. 【請求項11】第1キャッシュ  メモリがさらにデー
    タ  キャッシュを有する請求項10記載のメモリ  
    システム。
  12. 【請求項12】前記情報のアドレス及び供給手段は、第
    1キャッシュ  メモリ及び付属のミスキャッシュに同
    時に情報のアドレスを供給する手段を含んでなる請求項
    9記載のメモリ  システム。
  13. 【請求項13】前記情報のアドレス及び供給手段は、対
    応の情報を前記第1キャッシュ  メモリ及び付属のミ
    ス  キャッシュに供給する手段を含んでなる請求項1
    0記載のメモリ  システム。
  14. 【請求項14】前記情報のアドレス及び供給手段は、前
    記付属のミス  キャッシュの1つ及び前記第2メモリ
    より第1キャッシュ  メモリへ情報を供給する手段を
    含んでなる請求項10記載のメモリ  システム。
  15. 【請求項15】前記第1キャッシュ  メモリが直接マ
    ップ  キャッシュ  メモリであり、情報のアドレス
    及び供給手段は、前記付属のミス  キャッシュの1つ
    より情報を移動された直接マップ第1キャッシュ  メ
    モリ及び第2メモリより前記の付属ミスキャッシュに情
    報を供給する手段を含む請求項14記載のメモリシステ
    ム。
  16. 【請求項16】情報のアドレス及び供給手段が、パリテ
    ィ  エラーの際、正しい情報を、前記付属ミス  キ
    ャッシュより直接マップ  第1キャッシュ  メモリ
    に供給する手段を有する請求項15記載のメモリ  シ
    ステム。
  17. 【請求項17】インストラクションの一部分を付加的に
    含んでいるデータを前記情報が有しており、メモリ  
    システムは、前記直接マップ  第1キャッシュ  メ
    モリと第2メモリの間に接続されたストリーム  バッ
    ファを付加的に有しており、前記情報のアドレス及び供
    給手段は、前記直接マップ  第1キャッシュ  メモ
    リ内でミスされたインストラクションを供給し、かつこ
    のミスされたインストラクションのアドレスに後続する
    少くとも1つのアドレスにおける情報を、該ストリーム
      バッファに供給する手段を有してなる請求項15記
    載のメモリ  システム。
  18. 【請求項18】メモリ  システムがさらに、前記直接
    マップ  第1キャッシュ  メモリと第2メモリの間
    に接続された複数個のストリーム  バッファを有し、
    前記情報のアドレス及び供給手段は、前記直接マップ 
     第1キャッシュ  メモリでミスされたデータを供給
    し、ミスされたデータのアドレスに後続する少くとも1
    つのアドレスにおけるデータを前記付加的の複数個のス
    トリーム  バッファに供給する手段を有してなる請求
    項17記載のメモリ  システム。
  19. 【請求項19】第1キャッシュ  メモリをアドレスし
    、このアドレスに応答して第1キャッシュ  メモリ内
    にミスが生じたか否かを決定し、第1キャッシュ  メ
    モリ内にミスが生じたときは、第2メモリより第1キャ
    ッシュ  メモリ及びミスキャッシュに情報を供給する
    ことを特徴とするメモリ  アクセス方法。
  20. 【請求項20】第1キャッシュ  メモリと、ミス  
    キャッシュとに同時に情報アドレスを供給する請求項1
    9記載のメモリ  アクセス方法。
  21. 【請求項21】第1キャッシュ  メモリにミスが生じ
    たときは、第2メモリより第1キャッシュ  メモリ及
    びミス  キャッシュに対応の情報を供給する請求項1
    9記載のメモリアクセス方法。
  22. 【請求項22】第1キャッシュ  メモリにミスが生じ
    たときは、さらにミス  キャッシュをアドレスし、ミ
    ス  キャッシュ内にミスが存しないときはこれに応答
    してミス  キャッシュより情報を供給し、第1キャッ
    シュ  メモリ及びミス  キャッシュにミスが生じた
    ときは、第2メモリより第1キャッシュ  メモリ及び
    ミス  キャッシュに情報を供給する請求項19記載の
    メモリ  アクセス方法。
  23. 【請求項23】ミス  キャッシュの1つ並びに第2メ
    モリより移転した第1キャッシュ  メモリよりの情報
    をミス  キャッシュに供給する請求項19記載のメモ
    リ  アクセス方法。
  24. 【請求項24】パリティ  エラーを検出し、パリティ
      エラーの存する場合には、ミス  キャッシュより
    第1キャッシュ  メモリに対応の情報を供給するステ
    ップを含んでなる請求項23記載のメモリ  アクセス
    方法。
  25. 【請求項25】データを有する情報が付加的にインスト
    ラクションの一部を含み、さらに本方法は、第1キャッ
    シュ  メモリ内でミスされたインストラクションを第
    1キャッシュ  メモリに供給し、ミスされたインスト
    ラクションに対するアドレスに後続する少くとも1つの
    アドレス内の情報を供給するステップを有してなる請求
    項23記載のメモリ  アクセス方法。
  26. 【請求項26】第1キャッシュ  メモリ内でミスされ
    たデータを第1キャッシュメモリに供給し、ミスされた
    データに対するアドレスに後続する少くとも1つのアド
    レス内のデータを付加的な複数個のストリーム  バッ
    ファに供給するステップを含んでなる請求項25記載の
    メモリ  アクセス方法。
  27. 【請求項27】第1キャッシュ  メモリをアドレスし
    、このアドレスに応じてミスが発生したか否かを決定し
    、第1キャッシュ  メモリにミスが発生した場合は、
    第2メモリより第1キャッシュ  メモリ及びストリー
    ム  バッファに情報を供給するステップを有するメモ
    リ  アクセス方法。
  28. 【請求項28】第1キャッシュ  メモリ及びストリー
    ム  バッファに同時に情報アドレスを供給する請求項
    27記載のメモリ  アクセス方法。
  29. 【請求項29】第1キャッシュ  メモリにミスが生じ
    たときは、第2メモリより第1キャッシュ  メモリ及
    びストリーム  バッファに対応の情報を供給する請求
    項27記載のメモリ  アクセス方法。
  30. 【請求項30】第1キャッシュ  メモリ内でミスされ
    た情報を第1キャッシュ  メモリに供給し、かつこの
    ミスされた情報及びミスされた情報のアドレスに後続す
    る少くとも1つのアドレスの情報をストリーム  バッ
    ファに供給するステップを含んでなる請求項29記載の
    メモリ  アクセス方法。
  31. 【請求項31】ミスされた情報がインストラクションを
    含む請求項30記載のメモリ  アクセス方法。
  32. 【請求項32】第1キャッシュ  メモリ内でミスされ
    たデータを第1キャッシュメモリに供給し、ミスされた
    データに対するアドレスに後続する少くとも1つのアド
    レス内のデータを付加的な複数個のストリーム  バッ
    ファに供給するステップを有する請求項31記載のメモ
    リ  アクセス方法。
  33. 【請求項33】第1キャッシュ  メモリ内にミスが発
    生するとストリーム  バッファをアドレスし、このア
    ドレスに応答してストリーム  バッファ内にミスが存
    しないときはストリーム  バッファより情報を供給し
    、第1キャッシュ  メモリ及びストリーム  バッフ
    ァより情報を供給し、第1キャッシュ  メモリ及びス
    トリーム  バッファ内にミスが生じたときは前記情報
    を第2メモリより第1キャッシュ  メモリ及びストリ
    ーム  バッファに供給するステップを含む請求項27
    記載のメモリ  アクセス方法。
JP3085843A 1990-03-27 1991-03-27 データ 処理装置のメモリ システム Pending JPH04270431A (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US50006290A 1990-03-27 1990-03-27
US07/499,958 US5261066A (en) 1990-03-27 1990-03-27 Data processing system and method with small fully-associative cache and prefetch buffers
US07/500062 1990-03-27
US07/499958 1990-03-27

Publications (1)

Publication Number Publication Date
JPH04270431A true JPH04270431A (ja) 1992-09-25

Family

ID=27053366

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3085843A Pending JPH04270431A (ja) 1990-03-27 1991-03-27 データ 処理装置のメモリ システム

Country Status (4)

Country Link
EP (1) EP0449540B1 (ja)
JP (1) JPH04270431A (ja)
KR (1) KR930011345B1 (ja)
DE (1) DE69132201T2 (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06110781A (ja) * 1992-09-30 1994-04-22 Nec Corp キャッシュメモリ装置
JPH11102435A (ja) * 1997-06-05 1999-04-13 Digital Equip Corp <Dec> ノンブロッキング・パイプライン・キャッシュ
WO2001004760A1 (fr) * 1999-07-07 2001-01-18 Hitachi, Ltd. Controleur de memoire
US6256708B1 (en) 1996-08-28 2001-07-03 Nec Corporation Auxiliary buffer for direct map cache
US6587927B2 (en) 1993-08-05 2003-07-01 Hitachi, Ltd. Data processor having cache memory
JP2014067250A (ja) * 2012-09-26 2014-04-17 Nec Corp メモリアクセス制御装置、メモリアクセス制御システム、及び、メモリアクセス制御方法
US9053030B2 (en) 2009-01-28 2015-06-09 Nec Corporation Cache memory and control method thereof with cache hit rate

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1993018459A1 (en) * 1992-03-06 1993-09-16 Rambus Inc. Prefetching into a cache to minimize main memory access time and cache size in a computer system
JPH06222990A (ja) * 1992-10-16 1994-08-12 Fujitsu Ltd データ処理装置
TW228580B (en) * 1993-10-01 1994-08-21 Ibm Information processing system and method of operation
US5603004A (en) * 1994-02-14 1997-02-11 Hewlett-Packard Company Method for decreasing time penalty resulting from a cache miss in a multi-level cache system
KR0146059B1 (ko) * 1995-04-11 1998-09-15 문정환 미참조 선인출 캐쉬를 이용한 명령어 선인출 방법 및 그 회로
GB2348024B (en) * 1999-03-16 2003-06-25 Ibm Cache memory systems
US6901500B1 (en) * 2000-07-28 2005-05-31 Silicon Graphics, Inc. Method and apparatus for prefetching information and storing the information in a stream buffer
DE102004007614A1 (de) * 2004-02-17 2005-09-01 Giesecke & Devrient Gmbh Datenträger mit Ablaufdiagnosespeicher
JP2009230374A (ja) * 2008-03-21 2009-10-08 Fujitsu Ltd 情報処理装置,プログラム,及び命令列生成方法
GB2493192A (en) * 2011-07-28 2013-01-30 St Microelectronics Res & Dev An exclusive cache arrangement
US9037835B1 (en) * 2013-10-24 2015-05-19 Arm Limited Data processing method and apparatus for prefetching

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS53134335A (en) * 1977-04-28 1978-11-22 Fujitsu Ltd Memory control system
JPS629436A (ja) * 1985-07-05 1987-01-17 Nec Corp マイクロプログラム制御装置
JPS6267649A (ja) * 1985-09-19 1987-03-27 Nec Corp キヤツシユメモリ制御装置におけるストア処理方式
JPS63193230A (ja) * 1987-01-22 1988-08-10 ナショナル・セミコンダクター・コーポレーション 高性能マイクロプロセッサ集積回路とメモリ参照を行なう方法
JPH02184946A (ja) * 1988-12-29 1990-07-19 Internatl Business Mach Corp <Ibm> キヤツシユ・バイパス装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4853846A (en) * 1986-07-29 1989-08-01 Intel Corporation Bus expander with logic for virtualizing single cache control into dual channels with separate directories and prefetch for different processors

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS53134335A (en) * 1977-04-28 1978-11-22 Fujitsu Ltd Memory control system
JPS629436A (ja) * 1985-07-05 1987-01-17 Nec Corp マイクロプログラム制御装置
JPS6267649A (ja) * 1985-09-19 1987-03-27 Nec Corp キヤツシユメモリ制御装置におけるストア処理方式
JPS63193230A (ja) * 1987-01-22 1988-08-10 ナショナル・セミコンダクター・コーポレーション 高性能マイクロプロセッサ集積回路とメモリ参照を行なう方法
JPH02184946A (ja) * 1988-12-29 1990-07-19 Internatl Business Mach Corp <Ibm> キヤツシユ・バイパス装置

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06110781A (ja) * 1992-09-30 1994-04-22 Nec Corp キャッシュメモリ装置
US6587927B2 (en) 1993-08-05 2003-07-01 Hitachi, Ltd. Data processor having cache memory
US6848027B2 (en) 1993-08-05 2005-01-25 Hitachi, Ltd. Data processor having cache memory
US7240159B2 (en) 1993-08-05 2007-07-03 Hitachi, Ltd. Data processor having cache memory
US6256708B1 (en) 1996-08-28 2001-07-03 Nec Corporation Auxiliary buffer for direct map cache
JPH11102435A (ja) * 1997-06-05 1999-04-13 Digital Equip Corp <Dec> ノンブロッキング・パイプライン・キャッシュ
JP4545242B2 (ja) * 1997-06-05 2010-09-15 ヒューレット・パッカード・カンパニー ノンブロッキング・パイプライン・キャッシュ
WO2001004760A1 (fr) * 1999-07-07 2001-01-18 Hitachi, Ltd. Controleur de memoire
US9053030B2 (en) 2009-01-28 2015-06-09 Nec Corporation Cache memory and control method thereof with cache hit rate
JP2014067250A (ja) * 2012-09-26 2014-04-17 Nec Corp メモリアクセス制御装置、メモリアクセス制御システム、及び、メモリアクセス制御方法

Also Published As

Publication number Publication date
EP0449540A2 (en) 1991-10-02
KR910017286A (ko) 1991-11-05
EP0449540B1 (en) 2000-05-17
DE69132201T2 (de) 2000-12-28
EP0449540A3 (en) 1992-09-09
DE69132201D1 (de) 2000-06-21
KR930011345B1 (ko) 1993-11-30

Similar Documents

Publication Publication Date Title
US5317718A (en) Data processing system and method with prefetch buffers
US5261066A (en) Data processing system and method with small fully-associative cache and prefetch buffers
US9513904B2 (en) Computer processor employing cache memory with per-byte valid bits
US7089370B2 (en) Apparatus and method for pre-fetching page data using segment table data
US9251095B2 (en) Providing metadata in a translation lookaside buffer (TLB)
US7099999B2 (en) Apparatus and method for pre-fetching data to cached memory using persistent historical page table data
US7913041B2 (en) Cache reconfiguration based on analyzing one or more characteristics of run-time performance data or software hint
EP0667580B1 (en) Cache System for a memory
US5510934A (en) Memory system including local and global caches for storing floating point and integer data
US5694568A (en) Prefetch system applicable to complex memory access schemes
JPH04270431A (ja) データ 処理装置のメモリ システム
US5715427A (en) Semi-associative cache with MRU/LRU replacement
US20060212654A1 (en) Method and apparatus for intelligent instruction caching using application characteristics
JP2021515312A (ja) 上位層キャッシュ内のエントリに基づいて下位層キャッシュへの流入をログすることによるトレース記録
Jouppi Improving direct-mapped cache performance by the addition of a small fully-associative cache prefetch buffers
JPH06236353A (ja) マルチプロセッサ・コンピュータ・システムのシステム・メモリの並行性を増大する方法およびシステム
US6965962B2 (en) Method and system to overlap pointer load cache misses
Goodman et al. The use of static column RAM as a memory hierarchy
Wang et al. Minimizing area cost of on-chip cache memories by caching address tags
Khan Brief overview of cache memory
Zhang et al. Multi-column implementations for cache associativity
Hyde et al. Degenerate sharing
Crisu An architectural survey and modeling of data cache memories in verilog hdl
JP3735373B2 (ja) マイクロコンピュータ
Sun Design and performance evaluation of cache memories for high-performance computers