JPH07200399A - マイクロプロセッサ、およびマイクロプロセッサにおいてメモリにアクセスするための方法 - Google Patents

マイクロプロセッサ、およびマイクロプロセッサにおいてメモリにアクセスするための方法

Info

Publication number
JPH07200399A
JPH07200399A JP6304514A JP30451494A JPH07200399A JP H07200399 A JPH07200399 A JP H07200399A JP 6304514 A JP6304514 A JP 6304514A JP 30451494 A JP30451494 A JP 30451494A JP H07200399 A JPH07200399 A JP H07200399A
Authority
JP
Japan
Prior art keywords
cache
replacement
level
microprocessor
entry
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP6304514A
Other languages
English (en)
Inventor
David B Witt
デイビッド・ビィ・ウィット
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.)
Advanced Micro Devices Inc
Original Assignee
Advanced Micro Devices Inc
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 Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of JPH07200399A publication Critical patent/JPH07200399A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

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レベルの、セットアソシアティブキャッ
シュの性能を向上させる。 【構成】 このマイクロプロセッサ10は共通の半導体
ダイ上のマイクロプロセッサコア15およびセットアソ
シアティブ第1レベルキャッシュ30を含む。置換キャ
ッシュ60が同じ半導体ダイ上に置かれ、第1レベルキ
ャッシュに結合される。第1レベルキャッシュミスの際
に、第1レベルエントリが廃棄され置換キャッシュにス
トアされる。第1レベルキャッシュミスが起こると、置
換キャッシュがチェックされ、そこでヒットが起こる
と、ヒットエントリが第1レベルキャッシュに送られて
ストアされる。キャッシュミスがこれらの両方で起これ
ば、所望のエントリを取込むために主メモリアクセスが
開始され、そこから取込まれた所望のエントリは第1レ
ベルキャッシュに送られてストアされる。

Description

【発明の詳細な説明】
【0001】
【発明の背景】この発明は一般にコンピュータシステム
のためのメモリアーキテクチャに関し、より特定的には
コンピュータのプロセッサと用いるための高性能キャッ
シュメモリに関する。
【0002】プロセッサがその外部に位置される主メモ
リ内にストアされたデータにアクセスするには数クロッ
クサイクルかかることが多い。これらの外部メモリアク
セスはかなりの時間を必要とするだけでなく、かなりの
量の電力を消費する。プロセッサによって最近アクセス
されたデータおよび命令をストアするための比較的小型
で高速のメモリ(またはキャッシュ)をプロセッサに設
けることによってコンピュータシステムの性能を高める
キャッシュメモリがよく用いられている。これらの命令
およびデータは、一度アクセスされているので比較的す
ぐに再びアクセスされることを期待してキャッシュにス
トアされる。キャッシュメモリの速度またはアクセス時
間は外部主メモリよりもかなり速い。より低速の外部主
メモリにアクセスするのではなく、キャッシュヒットが
起こるとキャッシュから命令またはデータを取込むこと
によって、所望の情報を取込むのにかなりの時間が節約
できる。
【0003】最近の傾向としては、マイクロプロセッサ
チップ上に、図1に示されるマイクロプロセッサコアと
ともに第1レベル(L1)キャッシュが組込まれてい
る。この具体例では、マイクロプロセッサチップに、チ
ップ上に、位置するレベル1キャッシュ(L1)とマイ
クロプロセッサチップの外部に位置するレベル2キャッ
シュ(L2)とが設けられている。オンチップL1キャ
ッシュはL1命令キャッシュとL1データキャッシュと
の両方を含む。この例ではL1キャッシュおよびL2キ
ャッシュは、物理アドレスおよび物理データバスを介し
て外部主メモリに結合されている。オフチップL2キャ
ッシュは、典型的にはオンチップL1キャッシュよりも
ずっと大きい。たとえば、4KバイトオンチップL1キ
ャッシュおよび256Kバイト−512Kバイトオフチ
ップL2外部キャッシュが一般的である。
【0004】典型的なキャッシュ構成では、第2レベル
L2キャッシュは第1レベルキャッシュエントリのすべ
てをサブセットとして含む。言い換えれば、第1レベル
L1キャッシュのエントリのすべてが第2レベルL2キ
ャッシュにもストアされる。この態様で、L2キャッシ
ュへのアクセスは、リクエストされた命令またはデータ
がL1キャッシュにもストアされているという表示がな
い限り、L1キャッシュを調べる必要はない。
【0005】「直接マッピング」および「アソシアティ
ブ」キャッシュの両方がメモリ性能を高めることが知ら
れている。直接マッピングキャッシュでは、情報の特定
のブロックまたはラインが、ブロックまたはラインのブ
ロックフレームアドレスに従ってキャッシュ内の単一の
位置にのみストアできる。「フルアソシアティブ」キャ
ッシュでは、ブロックはキャッシュ内のどこに位置され
てもよく、一方「セットアソシアティブ」キャッシュで
はブロックはある組のストア位置にストアされるように
制約される。2ウェイセットアソシアティブキャッシュ
では、キャッシュ内の各組は2ブロックの情報をストア
できる。4ウェイセットアソシアティブキャッシュで
は、キャッシュ内の各組が4ブロックの情報をストアで
きる。キャッシュ性能は一般に連想性が高まるにつれて
向上するが、連想性が高まるとより複雑なキャッシュ回
路が必要となる傾向にある。
【0006】1990年IEEE第7回コンピュータア
ーキテクチャに関するシンポジウム(IEEE Seventh Ann
ual Symposium On Computer Architecture)の「小型フ
ルアソシアティブキャッシュおよびプリフェッチバッフ
ァの付加による直接マッピングキャッシュ性能の向上」
(“Improving Direct-Mapped Cache Performance ByTh
e Addition of A Small Fully-Associative Cache And
Prefetch Buffers ”) と題されるノーマン・ピー・ジ
ョッピ(Norman P. Jouppi)による刊行物では「ミスキ
ャッシュ」を説明している。説明されているミスキャッ
シュは、第1レベル直接マッピングキャッシュとそのリ
フィル経路との間に位置される小型のフルアソシアティ
ブキャッシュである。直接マッピングキャッシュでミス
が起こっても、ミスキャッシュでヒットが起これば、主
メモリへのアクセスを避けることによってかなりの時間
が節約される。このようなミスキャッシュは典型的には
非常に小さく、ある例では2−5エントリまたはブロッ
クを保持する。
【0007】ジョッピはまた、ミスキャッシングの改
良、すなわち「犠牲キャッシュ」も説明している。犠牲
キャッシュとは、小さなフルアソシアティブキャッシュ
(犠牲キャッシュ)にリクエストされたブロックの代わ
りにミスの犠牲となるものがロードされることを除いて
は、ミスキャッシュに関して説明したような、小さなフ
ルアソシアティブキャッシュである。言い換えれば、キ
ャッシュミスが直接マッピングL1キャッシュで起こる
と、L1キャッシュから廃棄されたブロックまたは「犠
牲となるもの」が犠牲キャッシュにストアされる。ジョ
ッピが説明している犠牲キャッシュは、典型的には1−
5エントリを保持する。ジョッピの犠牲キャッシュの目
的は、小さな(1−5エントリ)フルアソシアティブ犠
牲キャッシュを加えることによって、直接マッピング第
1レベルキャッシュの性能をセットアソシアティブキャ
ッシュの性能に近いレベルに向上させることである。犠
牲キャッシュは直接マッピング第1レベルキャッシュか
ら最近追い出されたエントリのみを含む。上述のことか
ら、ジョッピの犠牲キャッシュの目的は直接マッピング
キャッシュの性能を向上させることであることがわか
る。
【0008】より速いクロック速度を有し、命令および
データを大量に使用するプロセッサによって起こる、メ
モリに対するより速いアクセスの要求は高まる一方であ
り、現在利用可能であるよりもさらに高速のキャッシュ
メモリシステムが明らかに望まれる。
【0009】
【発明の概要】したがって、この発明のキャッシュメモ
リシステムのある利点は、第1レベルセットアソシアテ
ィブメモリキャッシュの性能の向上である。
【0010】開示されるキャッシュメモリシステムの別
の利点は、キャッシュが消費するチップ領域が不当に増
大するのを避けながらキャッシュ性能を向上することで
ある。
【0011】開示されるキャッシュメモリシステムのさ
らに別の利点は、分割命令/データ第1レベルキャッシ
ュの性能をこのような第1レベルキャッシュの寸法を増
大しないで向上させることである。
【0012】この発明のキャッシュメモリシステムのさ
らに別の利点は電力の節約である。この発明のある実施
例に従えば、半導体ダイおよび半導体ダイ上に置かれる
マイクロプロセッサコアを含むマイクロプロセッサが提
供される。マイクロプロセッサはまた、半導体ダイ上に
置かれてマイクロプロセッサコアに結合される第1レベ
ルセットアソシアティブキャッシュを含む。第1レベル
キャッシュは、予め定められた数の情報エントリをスト
アするのに十分大きな、予め定められたバイトサイズを
示す。ある実施例において、第1レベルキャッシュは分
割命令キャッシュ−データキャッシュである。マイクロ
プロセッサはさらに、半導体ダイ上に置かれて第1レベ
ルキャッシュに結合される置換キャッシュを含む。置換
キャッシュは、第1レベルキャッシュでのキャッシュミ
スの結果として第1レベルキャッシュから廃棄される情
報エントリをストアする。置換キャッシュは、第1レベ
ルキャッシュのサイズの少なくとも約半分である。所与
のクロックレートで性能を最高にするために、第1レベ
ルキャッシュおよび置換キャッシュの両方ともがセット
アソシアティブキャッシュである。
【0013】新規であると考えられるこの発明の特徴は
前掲の特許請求の範囲に特定的に述べられる。しかしな
がら、この発明自体は、その構造および動作方法の両方
について添付の図面および以下の説明を参照することに
よって最もよく理解されるであろう。
【0014】
【詳細な説明】I.マイクロプロセッサアドレシング この発明の詳細な説明に入る前に、インテル(Intel )
X86アーキテクチャ等の従来のマイクロプロセッサア
ーキテクチャによって用いられるアドレシング方式を理
解することが有用である。X86アーキテクチャとは、
広く受入れられているマイクロプロセッサアーキテクチ
ャである。i386(商標)マイクロプロセッサにおい
て最初に導入されたこのアーキテクチャは、i486
(商標)マイクロプロセッサおよびペンティアム(商
標)マイクロプロセッサの両方の基本アーキテクチャで
あり、これらはすべてカリフォルニア州サンタクララ
(SantaClara )のインテル社から入手可能である。X
86アーキテクチャは3つの異なるタイプのアドレス、
つまり論理(すなわち仮想)アドレス、線形アドレスお
よび物理アドレスを与える。
【0015】論理アドレスはセグメントベースアドレス
からのオフセットを表わす。セグメントベースアドレス
はセレクタを介してアクセスされる。より具体的には、
セグメントレジスト内にストアされるセレクタはグロー
バルディスクリプタテーブル(GDT)内の位置を指す
インデックスである。GDT位置は、セグメントベース
アドレスに対応する線形アドレスをストアする。線形ア
ドレスのさらなる説明は、デイビッド・ビィ・ウィット
(David B. Witt )による「プロセッサ、キャッシュ、
およびエイリアシングが発生するのを防ぐための方法」
と題する平成6年10月24日に出願された特願平6−
257826(1993年10月29日に出願された
“Linearly Addressable Microprocessor Cache ”と題
する米国特許連続番号第146,381号)に見られ、
その開示をここに引用によって援用する。
【0016】論理アドレスと線形アドレスとの間の変換
はマイクロプロセッサが実モードにあるか保護モードに
あるかに依存する。マイクロプロセッサが実モードにあ
れば、セグメンテーションユニットはセレクタを4ビッ
ト左にシフトし、その結果をオフセットに加えて線形ア
ドレスを形成する。マイクロプロセッサが保護モードに
あれば、セグメンテーションユニットはセレクタが指し
た線形ベースアドレスをオフセットに加えて線形アドレ
スとする。
【0017】物理アドレスとは、マイクロプロセッサの
アドレスピンに現れて外部メモリに物理的にアドレスす
るのに用いられるアドレスである。物理アドレスは必ず
しも線形アドレスに対応するわけではない。ページング
が可能化されなければ、32ビット線形アドレスは物理
アドレスに対応する。ページングが可能化されれば、線
形アドレスは物理アドレスに変換されなくてはならな
い。通常はマイクロプロセッサのメモリ管理ユニットの
一部として含まれるページングユニットがこの変換を行
なう。
【0018】ページングユニットは線形アドレスを物理
アドレスに変換するのに2レベルの表を用いる。第1レ
ベルの表はページディレクトリであり、第2レベルの表
はページテーブルである。ページディレクトリは複数の
ページディレクトリエントリを含み、各エントリがペー
ジテーブルのアドレスおよびページテーブルに関する情
報を含む。線形アドレスの上位10ビット(A22−A
31)がページディレクトリエントリを選択するための
インデックスとして用いられる。ページテーブルは複数
のページテーブルエントリを含み、各ページテーブルエ
ントリはページフレームの開始アドレスおよびページに
関する統計的情報を含む。線形アドレスのアドレスビッ
トA12−A21はページテーブルエントリの1つを選
択するためのインデックスとして用いられる。ページフ
レームの開始アドレスは線形アドレスの下位12ビット
と連結されて物理アドレスを形成する。
【0019】すべてのメモリ動作について2レベルの表
にアクセスすることはマイクロプロセッサの性能に実質
的に影響を与えるので、メモリ管理ユニットは一般に最
も最近にアクセスされたページテーブルエントリのキャ
ッシュを含む。このキャッシュはトランスレーションル
ックアサイドバッファ(TLB)と呼ばれる。マイクロ
プロセッサはエントリがTLBにないときのみページン
グユニットを用いる。
【0020】X86アーキテクチャに従い、キャッシュ
を含んだ最初のプロセッサは486プロセッサであっ
た。486プロセッサは8Kバイト統合キャッシュを用
いた。対照的に、ペンティアム(商標)プロセッサは別
個の8Kバイト命令およびデータキャッシュを含む。4
86プロセッサキャッシュおよびペンティアム(商標)
プロセッサキャッシュは物理アドレスを介してアクセス
されるが、これらのプロセッサの機能ユニットは論理ア
ドレスで動作する。したがって、機能ユニットがこれら
のキャッシュへのアクセスを必要とするとき、論理アド
レスは線形アドレスに変換され、そして物理アドレスに
変換されなくてはならない。
【0021】X86アーキテクチャ以外のマイクロプロ
セッサアーキテクチャでは、キャッシュヒット時にアド
レス変換時間をなくすために仮想的にアドレスされたキ
ャッシュ(すなわち論理アドレス)を用いることが知ら
れている。しかしながら、入力/出力装置(I/O)は
物理アドレスを用いるので、I/Oがキャッシュと相互
作用するにはマッピングが必要とされる。これらのシス
テムでは、一般には仮想および物理の2レベルのアドレ
シングしかなく、物理的にアドレスされたI/O装置が
仮想的にアドレスされたキャッシュと相互作用するのに
必要な変換は一度だけである。さらに、仮想的にアドレ
スされたキャッシュでは、プロセスが切換わるごとに仮
想アドレスが異なる物理アドレスを参照し、したがって
仮想的にアドレスされたキャッシュエントリが潜在的に
無効であるのでキャッシュはフラッシュされなくてはな
らない。さらに、仮想的にアドレスされたキャッシュで
は、2つの異なる仮想アドレスが同じ物理アドレスに対
応する可能性がある。これらの複製アドレスはエイリア
スと呼ばれ、同じ物理アドレスからの情報を有する2つ
の位置が仮想キャッシュ内に存在することとなり、その
位置のうちの一方の情報しか変更されない。
【0022】II.マイクロプロセッサキャッシュアー
キテクチャ概説 以下はこの発明を実施するために最良と企図されるモー
ドの説明である。この説明はこの発明を例示するもので
あって、制限するものとして理解されるべきではない。
【0023】図2はこの発明のキャッシュメモリアーキ
テクチャを用いる集積化マイクロプロセッサ10を示す
ブロック図である。マイクロプロセッサ10は、整数演
算を扱うための整数ユニット20と浮動小数点演算を扱
うための浮動小数点ユニット25とを含むマイクロプロ
セッサコア15を含む。マイクロプロセッサコア15は
さらに、ロードおよびストア動作を監視するロード/ス
トアユニット134と命令をデコードする命令デコーダ
108とを含む。マイクロプロセッサ15は、マイクロ
プロセッサ10の中央処理装置(CPU)とも称する。
マイクロプロセッサコア15は、そこにデータが処理の
ために与えられるDATAポートと、実行のために命令
がそこに与えられるINSTRUCTIONポートとを
含む。
【0024】この発明の好ましい実施例において、マイ
クロプロセッサコア15はスーパースカラプロセッサで
ある。しかしながら、この発明は、スカラおよびベクト
ルプロセッサ等の他のタイプのプロセッサにも適用でき
る。図1には整数ユニット20、FPU25、デコーダ
108およびロード/ストアユニット134のみがマイ
クロプロセッサコア15内に図示されているが、実行さ
れているプログラムにおける分岐を予測する分岐ユニッ
ト等の他の機能ユニットもコア15内に含まれ得ること
を理解されたい。
【0025】マイクロプロセッサ10は、マイクロプロ
セッサコア15以外のコンピュータ構成要素もマイクロ
プロセッサコア15と同じ半導体ダイ27上に含まれる
という意味で集積化プロセッサである。たとえば、破線
内に示される第1レベルキャッシュ30がダイ27上の
マイクロプロセッサ10に組込まれる。第1レベルキャ
ッシュ30は、ダイ27上に置かれてそれぞれマイクロ
プロセッサコア15のINSTRUCTIONポートお
よびDATAポートに結合される第1レベル命令ストア
アレイ180および第1レベルデータストアアレイ31
2を含む。
【0026】第1レベルキャッシュ30はこの実施例で
は分割命令−データセットアソシアティブキャッシュで
あることが認められる。第1レベル命令ストアアレイ1
80および第1レベルデータストアアレイ312はま
た、内部アドレス/データバス(IAD)102を介し
てバスインタフェースユニット45にも結合される。I
ADバス102およびバスインタフェースユニット45
は双方ともダイ27上に置かれる。バスインタフェース
ユニット45は従来のタイプであり、主メモリ50上の
対応するポートに結合される物理アドレスポートおよび
データポートを含む。主メモリ50はマイクロプロセッ
サ10の外部に位置され、外部メモリとも称する。1つ
以上の入力/出力(I/O)装置55もまた、図2に示
されるようにバスインタフェースユニット45に結合さ
れ得る。
【0027】第1レベルキャッシュ30はさらに、線形
命令タグアレイ182と線形データタグアレイ310と
を含む。線形命令タグアレイ182とは、第1レベル命
令ストアアレイ180に現在ストアされている命令を示
す線形アドレスまたはタグをストアするアレイである。
線形データタグアレイ310とは、第1レベルデータス
トアアレイ312に現在ストアされているデータを示す
線形アドレスまたはタグをストアするアレイである。
【0028】第1レベルキャッシュ30はまた、内部ア
ドレス/データバス102を介して命令ストアアレイ1
80とデータストアアレイ312とに結合される物理命
令タグアレイ390と物理データタグアレイ392とを
含む。物理命令タグアレイ390とは、第1レベル命令
ストアアレイ180内に現在ストアされている命令を示
す実際の物理アドレスまたはタグをストアするアレイで
ある。物理データタグアレイ392とは、第1レベルデ
ータストアアレイ312に現在ストアされているデータ
を示す物理アドレスまたはタグをストアするアレイであ
る。
【0029】第1レベル命令ストアアレイ180および
線形命令タグアレイ182はともに、第1レベルキャッ
シュ30内の命令キャッシュ104(破線で示される)
を形成する。第1レベルデータストアアレイ312と線
形データタグアレイ310はともに、第1レベルキャッ
シュ30内のデータキャッシュ150を形成する。
【0030】置換キャッシュ60が図2に示されるよう
に内部アドレス/データ(IAD)バス102に結合さ
れる。置換キャッシュ60は、命令およびデータの両方
がストアされる統合キャッシュである。置換キャッシュ
60はストアアレイ65とタグアレイ70とを含む。命
令およびデータはストアアレイ65にストアされ、主メ
モリ内のこのような命令およびデータの物理アドレスは
タグアレイ70にアドレスタグとしてストアされる。こ
の態様でタグアレイ70内のタグをスキャンすることに
よって、置換キャッシュ60が特定の命令またはデータ
を含むかどうか判断できる。
【0031】第1レベル命令ストアアレイ180のサイ
ズが16Kバイトであり、第1レベルデータストアアレ
イ312のサイズが8Kバイトであるこの発明の一実施
例において、32Kバイトストアアレイ65を備えた置
換キャッシュ60が用いられる。この発明の好ましい実
施例において、置換キャッシュ、ならびに第1レベルキ
ャッシュ30の命令キャッシュおよびデータキャッシュ
は4ウェイセットアソシアティブである。しかしなが
ら、置換キャッシュが他のレベルのセット連想性を用い
る、または直接マッピングであるこの発明の他の実施例
も企図される。置換キャッシュ60は有利に、分割第1
レベルキャッシュ、すなわち命令キャッシュ104およ
びデータキャッシュ150の性能を、これらのキャッシ
ュのサイズを増す必要なく、向上する。
【0032】他の多くのキャッシュ構造とは異なり、置
換キャッシュ60のエントリは第1レベルキャッシュ3
0のサブセットではなく、置換キャッシュ60のエント
リは、第1レベルキャッシュ30によって用いられる特
定の置換アルゴリズムに従って第1レベルキャッシュ3
0から追い出された第1レベルキャッシュ30からの廃
棄されたエントリである。第1レベルキャッシュ置換ア
ルゴリズムに用いられ得る置換アルゴリズムは、従来の
リースト・リーセントリー・ユーズド(LRU)、リー
スト・フリークエントリー・ユーズド(LFU)および
「ランダム」置換アルゴリズムを含む。「エントリ」、
「ブロック」および「ライン」は同意語と見なされ、キ
ャッシュ技術に関するその従来の意味を有する。
【0033】この説明の目的のため、第1レベルキャッ
シュ、すなわち命令ストアアレイ180およびデータス
トアアレイ312がそれぞれ命令およびデータで充満さ
れるのに十分な時間にわたってマイクロプロセッサ10
が動作していると仮定する。第1レベルキャッシュヒッ
トが起こると、リクエストされた命令またはデータは命
令ストアアレイ180またはデータストアアレイ312
に含まれている。リクエストされた情報が命令であれ
ば、線形命令タグアレイ182内のタグ、またはその代
わりに物理命令タグアレイ390内のタグが各アレイ内
で並列にスキャンされる。リクエストされた情報がデー
タであれば、線形データタグアレイ310、またはその
代わりに物理データタグアレイ392内のタグが各アレ
イ内で並列にスキャンされる。
【0034】線形命令タグアレイ182および物理命令
タグアレイ390のこのようなスキャニングに関するさ
らなる情報は、平成6年10月24日に出願された「プ
ロセッサ、キャッシュ、およびエイリアシングが発生す
るのを防ぐための方法」と題される特願平6−2578
26(1993年10月29日出願のDavid B. Wittに
よる“Lineary Addressable Microprocessor Cache”と
題される米国特許出願連続番号第146,381号)に
見られ、その開示をここに引用によって援用する。しか
し、簡単にいえば、線形タグがまずヒットまたはミスに
関してスキャンされることが認められる。ミスが起こる
と、次に物理タグがヒットまたはミスに関してスキャン
される。分割第1レベル命令およびデータキャッシュは
線形にアドレスされるので、エイリアスを持つコピーを
有する可能性があることが認められる。エイリアスを持
つコピーは、その線形アドレスは異なるが物理アドレス
は同じである情報エレメント(命令またはデータエレメ
ント)である。線形アドレシング方式では、処理中の同
じ物理アドレスの複数の更新を避けるために存在を許さ
れる物理データのコピーは1つだけである。したがっ
て、命令およびデータ物理タグの両方をチェックするこ
とにより、所望の物理アドレスについてエイリアスを持
つコピーが存在しないことが保証される。所望の物理ア
ドレスについてエイリアスを持つエントリが存在するこ
とがわかると、線形(命令またはデータ)タグアレイに
ストアされた線形タグは、物理(命令またはデータ)タ
グアレイ内の一致した物理タグに対応する新しい線形タ
グで上書きされる。言い換えれば、線形タグはエイリア
スが起こるエントリの新しい線形タグで上書きされる。
エイリアスの場合には一方の情報エレメントが常にキャ
ッシュされるので、エイリアスヒットの場合には置換キ
ャッシュ60にアクセスは行なわれない。物理タグアレ
イにおいてミスが起これば、キャッシュメモリシステム
は、第1レベルアレイにはないエントリを常に含む置換
タグアレイ70をチェックする。置換キャッシュ60は
物理タグおよび物理アドレシングを用いるので、置換キ
ャッシュ60に関してはエイリアスのおそれはない。
【0035】ここで第1レベルキャッシュ30内のキャ
ッシュヒットおよびミスの説明に戻って、リクエストさ
れた命令またはデータ情報のアドレスと第1レベルキャ
ッシュタグアレイのうちの1つにあるタグとの間で一致
が起これば、第1レベルキャッシュヒットが起こってい
る。この場合、アドレスされた命令またはデータは対応
する命令ストアアレイまたはデータストアアレイの適切
なものから取込まれ、処理のためにマイクロプロセッサ
15に与えられる。
【0036】しかしながら、リクエストされた命令また
はデータ情報のアドレスと第1レベル命令およびデータ
キャッシュタグアレイ内のタグとの間に一致が起こらな
ければ、第1レベルキャッシュミスが起こっている。第
1レベルキャッシュミスが起これば、リクエストされた
命令またはデータは第1レベル命令ストアアレイ180
にも第1レベルデータストアアレイ312にもない。こ
の場合、置換キャッシュ60の置換タグアレイ70内の
置換タグが、リクエストされた命令またはデータが置換
キャッシュ60内にあるかどうかを見るためにスキャン
される。
【0037】リクエストされた命令またはデータの物理
アドレスと置換タグアレイ70内の置換タグとの間に一
致が見出されれば、置換キャッシュヒットが起こってお
り、リクエストされた情報は置換キャッシュ60のスト
アアレイ65内に含まれる。この状況では、アドレスさ
れた命令またはデータを含む置換キャッシュ60内のブ
ロックが置換ストアアレイ65から取込まれる。この取
込まれた情報は、そこでストアするために第1レベルキ
ャッシュに与えられ、最終的には処理のためにマイクロ
プロセッサコア15に与えられる。取込まれた情報(す
なわち取込まれた情報を含むエントリまたはブロック)
は、その適切な記憶アレイでストアするために第1レベ
ルキャッシュ30に送られる。より具体的には、取込ま
れた情報が命令を含むエントリであれば、取込まれた情
報は第1レベル命令ストアアレイ180にストアされ
る。取込まれた情報がデータを含むエントリであれば、
取込まれた情報は第1レベルデータストアアレイ312
にストアされる。
【0038】置換キャッシュヒットの場合には、置換キ
ャッシュ60からのヒットエントリ(それについてヒッ
トが起こっているエントリ)が、第1レベルキャッシュ
のセットアソシアティブ特性に従ってそのアドレスに従
って第1レベルキャッシュ内の位置にストアされる。さ
らに、ヒットエントリは、第1レベルキャッシュ30の
ために選択された特定の置換キャッシュアルゴリズムに
従って利用可能であると考えられる第1レベルキャッシ
ュ内の位置にストアされる。たとえば、リーセント・リ
ーセントリー・ユーズド(LRU)、リースト・フリー
クエントリー・ユーズド(LFU)またはランダム置換
アルゴリズムを、セットアソシアティブ第1レベルキャ
ッシュ30の置換アルゴリズムとして用いてもよい。
【0039】取込まれた情報がストアのために第1レベ
ルキャッシュ30に送られると、キャッシュ30からの
情報のエントリまたはブロックはキャッシュ30から廃
棄される。この情報は廃棄情報または廃棄情報エントリ
と称され、第1レベルキャッシュ30のために選択され
た特定のタイプの置換アルゴリズムによって決定され
る。廃棄情報エントリは第1レベルキャッシュ30から
置換キャッシュ60にそのエントリとしてストアするた
めに送られる。
【0040】置換キャッシュミスがあれば、主メモリ5
0がアクセスされ、リクエストされた情報はそこから取
込まれる。主メモリ50から取込まれたエントリは、第
1レベルキャッシュ30に送られてそこでストアされ
る。エントリは次にコア15による処理のためにマイク
ロプロセッサコア15に与えられる。それに応答して、
廃棄エントリが第1レベルキャッシュ30から排除され
る。廃棄エントリは置換キャッシュ60に送られて、置
換ストアアレイ65にストアされる。
【0041】マイクロプロセッサ10の電力を節約する
ために、置換キャッシュ60はそれにアクセスするとき
がくるまではクロック動作されない。すなわち、置換キ
ャッシュ60は、ヒットについて置換キャッシュ60の
タグアレイ70をスキャンするときまではクロック動作
されない。置換キャッシュ60はそのときまでアイドル
電力節約状態にある。クロック回路72は図示のとおり
にマイクロプロセッサコア15および第1レベルキャッ
シュ30に基準クロックすなわちタイムベース信号(C
LOCK)を与える。このCLOCK信号はまたクロッ
ク制御回路74にも供給され、これはキャッシュ60の
クロック動作のために置換キャッシュ60にRCLOC
K信号を供給する。入力74Aで、クロック制御回路7
4は第1レベルキャッシュ30から、第1レベルキャッ
シュ30でミスが起こったときを示す第1レベルミス情
報を受取る。クロック制御回路74は、第1レベルミス
情報を受取るまでアイドルRCLOCKクロック信号
(クロックパルスを伴なわないクロック信号)を発生す
る。クロック制御回路74が第1レベルミス情報を受取
ると、クロック制御回路74は活性クロックパルスを伴
なうRCLOCK信号を発生し、これが置換キャッシュ
60をクロック動作させる。それに応答して、置換キャ
ッシュ60は活性となり、電力を引出す。置換キャッシ
ュ60へのアクセスが、置換キャッシュ60からの完了
信号によってクロック制御入力74Bに示されるように
完了すれば、RCLOCK信号のパルスは停止する。こ
の態様で、置換キャッシュ60のクロック動作は停止
し、再び電力の節約が始まり、次の置換キャッシュアク
セスまで続く。
【0042】メモリ読出またはロード動作の間の置換キ
ャッシュアーキテクチャの動作を示すフローチャートが
図3に示される。ロード動作を実際に始める前に、置換
キャッシュ60は、ブロック500に示されるように置
換キャッシュ60がクロック動作されないアイドル状態
に置かれて、電力を節約する。置換キャッシュ60は実
際にアクセスされるまでこのアイドル電力節約状態にあ
る。ロード命令が決定ブロック502でデコードされる
と、ロード動作がロード動作開始ブロック504で始め
られる。次にブロック505に示されるように第1レベ
ルタグアレイがスキャンされる。より具体的には、リク
エストされた情報が命令であれば、線形命令タグアレイ
182がスキャンされ、一方リクエストされた情報がデ
ータであれば、線形データタグアレイ310がスキャン
される。リクエストされた情報のアドレスは、ブロック
510に示されるようにスキャンされる第1レベルタグ
と比較される。次に決定ブロック515でテストが行な
われ、このようなタグのいずれかがリクエストされた情
報のアドレスと一致するかどうかを判断する。リクエス
トされた情報のアドレスとスキャンされた第1レベル線
形タグとの間に一致があれば、リクエストされた情報は
適切な第1レベルストアアレイ(命令ストアアレイ18
0またはデータストアアレイ312)から取込まれ、マ
イクロプロセッサコア15に送られる。しかしながら、
このような一致がなければ、適切な物理タグアレイがブ
ロック525に示されるようにスキャンされる。より具
体的には、リクエストされた情報が命令であれば、物理
命令タグアレイ390がスキャンされ、一方リクエスト
された情報がデータであれば、物理データタグアレイ3
92がスキャンされる。次に決定ブロック530でテス
トが行なわれ、リクエストされた情報のアドレスがスキ
ャンされる物理タグのいずれかに一致するかどうかを判
断する。このようなアドレス一致が見出されれば、エイ
リアス状況が存在する。このようなエイリアス状況が見
出されれば、線形タグアレイにストアされた対象の線形
タグは、ブロック535に示されるように物理タグアレ
イ内の物理タグに一致するリクエストの対応する新しい
線形タグで上書きされる。リクエストされた情報は次に
ブロック540に示されるようにマイクロプロセッサコ
ア15に送られる。ブロック500ないしブロック53
0を含む上述の動作の間、置換キャッシュ60はクロッ
ク動作されず、電力が節約されることが認められる。
【0043】しかしながら、決定ブロック530に戻っ
て、リクエストされた情報のアドレスとスキャンされた
物理タグとの間に一致がないと判断されれば、第1レベ
ルキャッシュミスが起こっている。このような第1レベ
ルキャッシュミスの際には、ブロック545に示される
ように統合置換キャッシュ60のクロック動作が始ま
り、キャッシュ60のアクセスが始まると電力が置換キ
ャッシュ60に引出され始める。より具体的には、ブロ
ック550で置換タグアレイ70がスキャンされる。決
定ブロック555でテストが行なわれて、読出動作にお
いてリクエストされた情報のアドレスがスキャンされた
置換タグのいずれかに一致するかどうかを判断する。こ
のような一致が見出されれば、置換キャッシュヒットが
起こっている。このような置換キャッシュヒットの際に
は、置換キャッシュ60は、リクエストされた情報を含
む置換ストアアレイ65内のエントリを第1レベルキャ
ッシュ30に送り、これはブロック560に示されると
おりである。ブロック565に示されるように、送られ
たエントリは第1レベルキャッシュ30内でこのキャッ
シュのために選択された特定のセットアソシアティブア
ドレシング方式によって決定された位置にストアされ
る。ブロック570に示されるように、リクエストされ
た情報は次に第1レベルキャッシュ30からマイクロプ
ロセッサコア15に送られる。ブロック575で、第1
レベルキャッシュ30は、キャッシュ30によって用い
られる特定の置換アルゴリズムに従って廃棄エントリを
追い出す。廃棄エントリは、ブロック580に示される
ようにこのキャッシュのために選択された特定のセット
アソシアティブアドレシング方式によって決定される位
置で置換キャッシュ60にストアされる。
【0044】しかしながら、決定ブロック555で置換
タグ一致が見出されなければ、ブロック585および5
90に示されるように対象の読出動作のためにリクエス
トされた情報を得るために外部主メモリ50がアクセス
される。この場合、主メモリにストアされ、かつ対象の
読出動作で求められる、このリクエストされた情報は主
メモリ情報と称する。リクエストされた情報を含む主メ
モリ50内のエントリが、ブロック590で主メモリ5
0から取込まれ、ブロック595で第1レベルキャッシ
ュ30に送られる。このエントリは次に、ブロック60
0に示されるように第1レベルキャッシュ30にストア
される。このエントリ内のリクエストされた主メモリ情
報は、ブロック605で第1レベルキャッシュ30から
マイクロプロセッサコア15に送られる。プロセスの流
れはブロック575に続き、ここで第1レベルキャッシ
ュは廃棄エントリを追い出し、ブロック580で第1レ
ベルキャッシュ30からの廃棄エントリは置換キャッシ
ュ60にストアされる。次にこの流れはブロック500
のロードまたは他の動作の開始に戻る。
【0045】上述の電力節約特徴に関して図3に示した
プロセスの流れの代わりに、置換キャッシュ60は、キ
ャッシュ60へのアクセスが完了した直後にアイドル状
態に戻ってもよい。すなわち、置換キャッシュ60のク
ロック動作は、プロセスの流れがキャッシュアイドルブ
ロック500に戻るのを待つことなく、置換キャッシュ
アクセスが完了した後停止してもよい。
【0046】メモリ書込またはストア動作の間の置換キ
ャッシュアーキテクチャの動作を示すフローチャートは
図4に示される。実際にストア動作を始める前に、置換
キャッシュ60は、ブロック700に示されるように置
換キャッシュ60がクロック動作されないアイドル状態
に置かれる。置換キャッシュ60がクロック動作されて
いなければ電力は節約される。置換キャッシュ60は、
書込動作の際に実際にアクセスされるまで、このアイド
ル電力節約状態にある。ストア命令が決定ブロック70
2でデコードされると、ストア動作はストア動作開始ブ
ロック704で開始される。
【0047】決定ブロック705でテストが行なわれ
て、線形タグヒットが起こっているかどうかが判断され
る。すなわち、処理中の書込動作に関連するターゲット
アドレスが第1レベル線形データタグアレイ310内の
線形データタグのいずれかに一致するかどうかを判断す
るためのテストが行なわれる。一致が見出されれば、対
象の書込動作のためのデータが、ブロック710で、書
込アドレスに関連したデータを含む第1レベルデータス
トアアレイ312内のエントリに書込まれる。
【0048】しかしながら、このようなタグ一致が見出
されなければ、物理データタグアレイ392内の物理タ
グが、ブロック715に示されるようにスキャンされ
る。決定ブロック720で、物理タグヒットが起こって
いるかどうかを判断するためのテストが行なわれる。よ
り具体的には、処理中の書込動作のターゲットアドレス
が物理データタグアレイ392のタグのいずれかに一致
するかどうかを判断するためのチェックが行なわれる。
このような一致が見出されれば、エイリアス状況が存在
する。エイリアスの場合、複数の線形アドレスが同じ物
理アドレスと関連している。この場合、ブロック725
で古い線形タグは新しい線形タグで上書きされる。処理
中の書込動作に関連するデータは、ブロック730で示
されるように、書込動作のターゲットアドレスに対応す
る、第1レベルデータストアアレイ312内のエントリ
に書込まれる。
【0049】しかしながら、決定ブロック720で物理
タグヒットがなければ、置換キャッシュ60のクロック
動作はブロック732で再開され、置換タグアレイ70
内の置換キャッシュタグがブロック735でスキャンさ
れる。決定ブロック740でテストが行なわれて、置換
タグヒットが起こっているかどうかを判断する。すなわ
ち、処理中の書込動作のターゲットアドレスが置換タグ
アレイ70内の何らかのタグに一致するかどうかを見る
ための比較が行なわれる。このようなタグ一致がなけれ
ば、置換キャッシュミスが起こっており、ブロック74
5で示されるように外部メモリ50で処理中の書込動作
が実行される。しかしながら、置換タグヒットが起こっ
ていることを示す置換タグ一致があれば、処理中の書込
動作は置換キャッシュで行なわれる。これを達成するた
めに、ブロック750に示されるように、第1レベルキ
ャッシュ30内で置換えられるべきエントリがまず割当
られる。次にブロック755で交替が行なわれ、第1レ
ベルキャッシュ30からの置換えられたエントリが交替
する、すなわち置換キャッシュ60内のヒットエントリ
と換えられる。すなわち、置換キャッシュ60において
それについてヒットが起こったエントリは第1レベルデ
ータストアアレイ312に送られ、データストアアレイ
312での置換のために割当られたエントリは置換スト
アアレイ65に送られて、そこでストアされる。置換キ
ャッシュ60にこのように書込まれたエントリの状態
は、ブロック760に示されるようにモディファイドに
更新される。
【0050】決定ブロック765で前の状態がシェアー
ドだったかどうかを判断するためのテストが行なわれ
る。前の状態がシェアードでなければ、新しい状態はブ
ロック770に示されるようにモディファイドである。
しかしながら、前の状態がシェアードであれば、ブロッ
ク775に示されるようにエントリが主メモリ50に書
込まれる。新しい状態はブロック780に示されるよう
に排他的であると見なされる。
【0051】モディファイド、排他的、シェアードおよ
びインバリッドという言葉は、ここでは、モディファイ
ド、排他的、シェアードおよびインバリッド(バリッ
ド)ビットが特定のキャッシュブロックまたはエントリ
に関しての状態情報を与えるのに用いられる周知のME
SIプロトコルに従う。
【0052】III.第1レベルおよび置換キャッシュ
動作の詳細 図2に戻って、第1レベルデータストアアレイ312は
マイクロプロセッサコアのロード/ストア機能ユニット
134、およびIADバス102に結合される。物理タ
グ回路162は、物理命令タグアレイ390と物理デー
タタグアレイ392との両方を含む。物理タグ回路16
2は、第1レベル命令キャッシュストアアレイ180お
よび第1レベルデータキャッシュストアアレイ312の
両方とIADバス102を介して相互作用する。この特
定の実施例では、命令ストアアレイ180およびデータ
ストアアレイ312は双方とも線形アドレス可能なキャ
ッシュである。命令ストアアレイ180およびデータス
トアアレイ312は物理的に別個であるが、これらのキ
ャッシュアレイの双方とも同じアーキテクチャを用いて
構成される、すなわち、双方のキャッシュとも対応する
タグアレイとストアアレイを含む。
【0053】マイクロプロセッサ10はまた、メモリ管
理ユニット(MMU)164およびバスインタフェース
ユニット45(BIU)を含む。メモリ管理ユニット1
64は、IADバス102と物理タグ回路162とに結
合される。バスインタフェースユニット45は、486
XLバス等の外部マイクロプロセッサバス、ならびに物
理タグ回路162およびIADバス102に結合され
る。
【0054】マイクロプロセッサ10は命令のシーケン
スを含むコンピュータプログラムを実行する。コンピュ
ータプログラムは典型的にはハードディスク、フロッピ
ーディスクまたはコンピュータシステム内に位置される
他の不揮発性記憶媒体にストアされる。プログラムが実
行されるとき、プログラムは、記憶媒体から主メモリ5
0にロードされ、これがバスインタフェースユニット4
5を介してマイクロプロセッサ10によってアクセスさ
れる。プログラムの命令および関連するデータが主メモ
リ50にあれば、個々の命令は実行に備えられ、最終的
にマイクロプロセッサ10によって実行される。
【0055】主メモリ50にストアされた後、命令はバ
スインタフェースユニット45を介して第1レベル命令
ストアアレイ180に渡され、ここで命令は一時的に保
持される。命令デコーダ108は命令キャッシュ104
から命令を受取る。命令デコーダ108は命令を調べ
て、取るべき適切な動作を決定する。たとえば、デコー
ダ108は特定の命令がPUSH、POP、LOAD、
AND、OR、EX OR、ADD、SUB、NOP、
JUMP、条件付きJUMP(BRANCH)である
か、または他の命令であるかどうかを判断し得る。デコ
ーダ108が判断した、どの特定のタイプの命令が存在
するかに依存して、マイクロプロセッサコア15のその
タイプのための適切な機能ユニットに命令が発行され
る。
【0056】図5を参照して、命令キャッシュ104が
より詳細に示される。命令キャッシュ104は線形にア
ドレスされる、16Kバイト4ウェイセットアソシアテ
ィブキャッシュである。各セットは256のエントリを
含み、各エントリは16バイトの命令ブロックおよび線
形アドレスタグを含む。命令キャッシュ104は、キャ
ッシュコントローラ170、アドレス回路172、線形
命令タグアレイ182、および命令ストアアレイ180
を含む。キャッシュコントローラ170は、命令キャッ
シュ104の種々の動作を調整するための制御信号を与
える。アドレス回路172は、マイクロプロセッサコア
15から受取られる論理ターゲットプログラムカウンタ
(LOGICAL PC)に基づいて線形フェッチプロ
グラムカウンタ(FETCH PC)を発生する。アド
レス回路172はまた、外部メモリからのプリフェッチ
命令に関連するX86保護チェックおよびアドレス生成
を行なう。現在のFETCH PC値に基づいて、その
値に関連する主メモリアドレスに対応する命令が、マイ
クロプロセッサコア15がメモリ内のプログラムを実行
するに当たってその命令を進める際に、主メモリ50か
ら連続的にフェッチされる。すなわち、命令はFETC
H PCの前進によって、マイクロプロセッサコア15
に実際に取込まれる前に、主メモリからプリフェッチさ
れ、命令ストアアレイ180にストアされる。アドレス
回路172は論理アドレスと線形アドレスとの間で変換
するための変換回路として機能する。命令キャッシュ1
04はIADバス102を介して受取った命令をストア
する。マイクロプロセッサ10が置換キャッシュ60お
よび第1レベルキャッシュ30のキャッシュミスの際等
に主メモリ50にアクセスすると、主メモリからのアク
セスされたエントリは、マイクロプロセッサコア15が
後に必要とする場合に備えて第1レベルキャッシュ30
にストアされる。FETCH PC値は、連続する命令
が主メモリから取込まれて第1レベルキャッシュ30に
ストアされると増分され、前進し続ける。
【0057】命令キャッシュ104は2つの主アレイ、
すなわち命令キャッシュストアアレイ180および線形
タグアレイ182に構成される。命令キャッシュストア
アレイ180は16バイトのラインすなわちエントリを
ストアする。線形タグアレイ182は命令に対応する線
形アドレスタグをストアする。これらのアレイの各々
は、アドレス回路172によって与えられる線形FET
CH PCアドレスによってアドレスされる。
【0058】図6を参照して、線形FETCH PCア
ドレス186の上位ビットは、線形タグアレイ182内
にストアされたタグと比較される。これらのビットはエ
ントリが命令ストアアレイ180内にストアされると線
形タグとしてストアされる。FETCH PCアドレス
186の中位ビットは、アレイ内のブロックにアドレス
し、アレイのブロックからエントリを取込むのに用いら
れるキャッシュインデックスを与える。下位ビットは命
令ストアアレイ180内にストアされた命令ブロックの
BYTE0からの、取込まれたエントリにおけるオフセ
ットを与え、このようにしてFETCH PCアドレス
によってアドレスされた実際のバイトにアクセスする。
【0059】キャッシュ104の命令キャッシュエント
リ188は、線形アドレスタグエントリ190と命令エ
ントリ192とを含む。命令エントリ192は16バイ
ト(IBYTE0−IBYTE15)の命令のブロック
を含む。線形アドレスタグエントリ190は、線形タグ
値(LTAG)、線形タグ有効ビット(TV)、16バ
イト有効ビット(BV0−BV15)および有効物理変
換ビット(P)を含む。線形FETCH PCアドレス
の上位20ビットに対応する線形タグ値は、対応するス
トアアレイエントリにストアされたブロックの線形ブロ
ックフレームアドレスを示す。線形タグ有効値は線形タ
グ値が有効であるかどうかを示す。各バイト有効ビット
は、16バイト命令エントリの対応するバイトが有効で
あるかどうかを示す。有効物理変換ビットは、エントリ
がうまく物理タグヒットを与えるかどうかを示す。
【0060】図7を参照して、線形アドレス可能な命令
キャッシュ104の線形命令タグアレイ182および命
令ストアアレイ180が詳細に示される。命令キャッシ
ュ104は分割命令−データ第1レベルキャッシュ30
の一部であることを思い起こされたい。命令キャッシュ
104は、命令キャッシュ104の4つのセットに対応
する4つの4Kバイト列、すなわち列0、列1、列2お
よび列3に構成される。命令ストアアレイ180はマル
チプレクサ(MUX)回路206と4つの別個のストア
アレイである、列0ストアアレイ200、列1ストアア
レイ201、列2ストアアレイ202および列3ストア
アレイ203とを含む。マルチプレクサ206は、線形
タグアレイにストアされた線形タグ値との一致があった
かどうかを示す列ヒット指示制御信号を線形タグアレイ
182から受取り、出力としてストアアレイの列の1つ
にストアされた命令を与える。
【0061】アドレスタグアレイ182は列0−3に対
応する線形タグアレイ210−213を含む。線形タグ
アレイ210−213は、ストアアレイ200−203
と同じセットおよびブロック構成で組織される。線形タ
グアレイ210−213の各々は、それぞれのストアア
レイ200−203のエントリに対応する複数の線形タ
グエントリを含む。各線形タグアレイは、それぞれの列
ヒット指示信号(COL HIT0−COL HIT
3)を与えるそれぞれの比較回路220−223と結合
される。したがって、命令キャッシュ104の各列はス
トアアレイ、線形タグアレイおよび比較回路を含む。ス
トアアレイ200−203、アドレスタグアレイ210
−213、および比較回路220−223はすべて、ア
ドレス回路172から線形アドレスFETCH PCを
受取る。
【0062】図8を参照して、この発明に関したデータ
キャッシュ150の説明が与えられる。データキャッシ
ュ150は線形にアドレスされる8Kバイト4ウェイセ
ットアソシアティブキャッシュである。データ150の
各組は128のエントリを含み、各エントリは16バイ
トの情報のブロックを含む。(データキャッシュ150
として16Kバイト4ウェイセットアソシアティブキャ
ッシュが用いられれば、データキャッシュ150の各組
は256のエントリを含むことに注目されたい。)デー
タキャッシュ150は、データキャッシュコントローラ
300、データストアアレイ312、および線形データ
タグアレイ310を含む。データキャッシュコントロー
ラ300はデータキャッシュ150の種々の動作を調整
するための制御信号を与える。データキャッシュコント
ローラ300は、IADバス102から、およびロード
ストアセクション134から制御信号(CONTRO
L)を受取り、データキャッシュコントローラ300は
キャッシュアレイ304に制御信号を与える。データス
トアアレイ312はブロックでデータをストアし、特定
のブロックがアドレスされるとそのデータのブロックを
与える。データストアアレイ312はまたIADバス1
02と結合され、キャッシュコントローラ300からの
制御信号に加えて、データストアアレイ312はロード
ストアセクション134からデータ信号およびアドレス
信号を受取る。
【0063】データキャッシュ150はデータストアア
レイ312および線形データタグ回路310の2つのア
レイに構成される。データキャッシュアレイ312はロ
ード/ストア機能ユニット134と、2つのデータ信号
(DATA A、DATAB)を受け渡す。線形データ
タグアレイ310はロード/ストア機能ユニット134
によって与えられた2つの線形アドレス(ADDR
A、ADDR B)によってアドレスされ、2つの線形
アドレスもまたデータストアアレイ312に与えられ
る。したがって、データキャッシュ150はデュアルポ
ートメモリアレイであり、両方のポートがロード/スト
ア機能ユニット134と結合されて2つのデータ値が同
時に書込まれる、または読出されることを可能にする。
データストアアレイ312はまた線形タグアレイ310
から制御信号を受取る。
【0064】図9を参照して、各線形アドレス319の
中位ビットは、線形タグアレイの各列内のブロックにア
ドレスして各ストアアレイからエントリを取込むのに用
いられるキャッシュブロックインデックス(INDE
X)を与える。各線形アドレスの上位ビットは線形タグ
アレイ310の各列の線形データタグと比較され、キャ
ッシュブロックインデックスによってアクセスされる列
の1つを選択する。各線形アドレスの下位ビットは、線
形アドレスによってアドレスされた実際のバイトにアク
セスするための取込まれたエントリへのオフセット(O
FF)を与える。
【0065】データキャッシュ150のデータキャッシ
ュエントリ320は、線形アドレスタグエントリ324
およびデータエントリ322を含む。データエントリ3
22は、16バイト(DBYTE0−DBYTE15)
のデータのブロックを含む。データ線形アドレスタグエ
ントリ324は、データ線形タグ値(DTAG)、線形
タグ有効ビット(TV)、データ有効ビット(DV)、
および有効物理変換ビット(P)を含む。線形アドレス
の上位21ビットに対応するデータ線形タグ値は、対応
するストアアレイエントリにストアされたブロックの線
形ブロックフレームアドレスを示す。線形タグ有効ビッ
トは線形タグが有効であるかどうかを示す。データ有効
ビットは、ストアアレイ内の対応するエントリが有効で
あるかどうかを示す。有効物理変換ビットは、エントリ
がうまく物理タグヒットを与えるかどうかを示す。
【0066】図10を参照して、線形にアドレス可能な
データキャッシュ150の線形データタグアレイ310
およびデータストアアレイ312が示される。データキ
ャッシュ150は4つの2Kバイト列、すなわち列0、
列1、列2、および列3に構成される。線形データタグ
アレイ310およびデータストアアレイ312の構成
は、線形命令タグアレイ182および命令ストアアレイ
180と類似しているが、線形データタグアレイ310
は2つの線形アドレス(ADDR A、ADDRB)を
同時に受取り、データストアアレイ312は2つのデー
タ信号(DATA A、DATA B)を同時に受取
り、与える。すなわちデータキャッシュ150はデュア
ルポートデータキャッシュとして機能する。
【0067】データストアアレイ312は4つの別個の
データストアアレイ、列0ストアアレイ350、列1ス
トアアレイ351、列2ストアアレイ352、および列
3ストアアレイ353とマルチプレクサ(MUX)回路
360とを含む。マルチプレクサ360は、それぞれの
線形タグアレイにストアされた線形タグ値との一致があ
るかどうかを示す制御信号を線形データタグアレイ31
0から受取る。マルチプレクサ360はデータを受取
り、ストアアレイ350−353に与え、マルチプレク
サ360はまた、データをIADバス102およびロー
ド/ストア機能ユニット134に与える。
【0068】線形タグアレイ回路310は列0−3に対
応する線形タグアレイ370−373を含む。各線形タ
グアレイは対応する比較回路374−377と結合され
る。したがって、データキャッシュ150の各列は、ス
トアアレイ、線形タグアレイおよび比較回路を含む。ス
トアアレイ350−353、アドレスタグアレイ370
−373、および比較回路374−377はすべて、線
形アドレスADDRA、ADDR Bをロード/ストア
機能ユニット134から受取る。
【0069】図11を参照して、物理タグ回路162は
命令物理タグアレイ部分390とデータ物理タグアレイ
部分392とを含む。命令物理タグアレイ部分390
は、複数の命令物理タグアレイ400、401、40
2、403と、複数の命令比較回路404、405、4
06、407を含む。データ物理タグアレイ部分は、複
数のデータ物理タグアレイ408、409、410、4
11と、複数の対応するデータ比較回路412、41
3、414、415とを含む。命令物理タグアレイ40
0−403は命令キャッシュ104の列0−3に対応す
る。データ物理タグアレイ408−411はデータキャ
ッシュ150の列0−3に対応する。
【0070】命令物理タグアレイ400−403は、バ
スインタフェースユニット45によって与えられた物理
アドレスの最下位ビットを受取り、それぞれの物理タグ
を比較回路404−407に与え、これらはまた同じ物
理アドレスの最上位ビットを受取る。比較回路404−
407は命令ストアアレイ180にそれぞれの命令列ヒ
ット指示信号(IHIT C0−IHIT C3)を与
える。これらの命令列ヒット指示信号は、どの列ストア
アレイが出力命令を与えるかを制御するためにマルチプ
レクサ206のHIT COL入力(図7参照)に与え
られる。
【0071】データ物理タグアレイ408−411は、
バスインタフェースユニット45から与えられた物理ア
ドレスの最下位ビットを受取り、それぞれのデータ物理
タグを比較回路412−415に与え、これらはまた同
じ物理アドレスの最上位ビットも受取る。比較回路41
2−415は、それぞれのデータ列ヒット指示信号(D
HIT C0−DHIT C3)をデータストアアレイ
312に与える。これらのデータ列ヒット指示信号は、
どの列ストアアレイが出力命令を与えるかを制御するた
めにマルチプレクサ360のHIT COL A入力
(図10参照)に与える。
【0072】ストアアレイから別個にアクセスされた物
理タグアレイを与えることによって、キャッシュ150
は、ストアアレイ350−353にアクセスする必要が
なく、ゆえにこれらのアレイにアクセスするのに必要な
電力を与える必要も、バス監視動作の間に物理タグにア
クセスする必要もないので、より効率的である。さら
に、線形−物理アドレス変換経路がこの速度経路の一部
ではないのでさらに効率が上がる。これは、線形タグの
みがマイクロプロセッサコアから直接アクセスされるた
めである。
【0073】図6、9、11および13を参照して、物
理タグアレイ400−403、408−411は、それ
らの対応する線形タグアレイと同じセットおよびブロッ
クの関係で構成される。すなわち、命令物理タグアレイ
400、401、402、403は各々、命令キャッシ
ュ104の命令線形タグアレイ210、211、21
2、213のエントリに対応する複数の命令物理タグエ
ントリを含み、データ物理タグアレイ408、409、
410、411は、データキャッシュ150の線形デー
タタグアレイ370、371、372、373のエント
リに対応する複数のデータ物理タグエントリを含む。し
たがって、各命令物理タグエントリ416は、概念的に
は命令エントリ188の一部として含まれ、各データ物
理タグエントリ417は概念的にはデータエントリ32
0の一部として含まれる。
【0074】図13に示されるように、各物理タグエン
トリ416、417は、物理タグ値(PTAG)、物理
タグ有効ビット(PV)、およびシェアードビット
(S)を含む。さらに、各データ物理タグエントリ41
7は、モディファイドビット(M)、キャッシュディス
エーブルビット(CD)およびライトスルービット(W
T)を含む。物理タグ値は、対応するストアアレイの対
応するエントリにストアされた情報に対応する物理アド
レス418の線形アドレスからの変換の後の物理アドレ
スを示す。物理タグ有効ビットは、対応するストアアレ
イの対応するエントリが有効情報を含むかどうかを示
す。シェアードビットは、プロセッサ100がその一部
であるコンピュータシステム内のどこかで別のキャッシ
ュが同じデータを有するかどうかを示す。モディファイ
ドビットは、ストアアレイにストアされたデータが変更
されたかどうか(すなわち書込まれたかどうか)、およ
びしたがってキャッシュの外部にストアされた対応のデ
ータと矛盾がないかどうかを示す。キャッシュディスエ
ーブルビットは、この特定のエントリがキャッシュ不能
化されているかどうか、すなわちそのそれぞれのキャッ
シュにストアされ得ないかどうかを示す。ライトスルー
ビットは、エントリがキャッシュに書込まれるときにそ
のエントリの対応する外部メモリ位置にも書込まれるべ
きであることを示す。
【0075】図12を参照して、メモリ管理ユニット1
64は、TLBアレイ420およびTLB比較回路42
2を含む。TLBアレイ420は4ウェイセットアソシ
アティブキャッシュとして構成される。各セットは32
のエントリを含み、全部で128のTLBエントリを与
える。メモリ管理ユニット164は、線形アドレスと物
理アドレスとの間で変換するための変換回路として機能
する。
【0076】図13を参照して、TLB164の各TL
Bエントリ430は、線形タグ(LTAG)値および物
理タグ(PTAG)値を含む。線形タグ値は線形アドレ
ス320の最上位ビットに対応し、物理タグ値は線形タ
グアドレス320に対応する物理アドレス418の最上
位ビットに対応する。線形タグエントリに対応する線形
アドレス320の最下位ビットと物理タグ値を連結させ
ることによって、物理アドレスは有利に、2レベルのペ
ージテーブルを用いることなく得られる。
【0077】図14は置換キャッシュ60の詳細なブロ
ック図を示す。置換キャッシュ60は置換機構800、
たとえばLRU置換機構を含む。置換機構800は、置
換キャッシュ60のための特定の置換方式を実現する。
たとえば、置換キャッシュのために選択された置換機構
は、LRU、LFUまたはランダム置換アルゴリズムで
あってもよい。置換キャッシュエントリがそれと関連す
る置換アルゴリズムによって置換キャッシュから除去さ
れると、そのエントリが変更されていれば主メモリに書
込まれる。そうでなければそのエントリは廃棄される。
【0078】置換機構800は、その入力でアクセスリ
クエストを受取る置換キャッシュコントローラ805に
結合される。キャッシュコントローラ805は128ビ
ット読出/書込バス810に結合される。読出/書込バ
ス810は16バイトのキャッシュブロックまたはエン
トリを収容する十分な幅を有する。読出/書込バス81
0はIADインタフェース(ラッチ/ドライバ)815
を介して図示のように内部アドレスデータ(IAD)バ
ス102に結合されて、アドレスおよびデータ情報が置
換キャッシュ60に書込まれ、かつそこから取込まれる
ことを可能にする。
【0079】図14に示されるように、置換キャッシュ
60はストア置換アレイ65と置換タグアレイ70とを
含む。置換キャッシュ60は統合キャッシュであり、し
たがってストアアレイ65は命令とデータの両方をスト
アする。置換キャッシュ60は、この4ウェイセットア
ソシアティブキャッシュの4つのセットに対応する、4
つの8Kバイト列、すなわち列0、列1、列2、および
列3で構成される。置換ストアアレイ65は4つの別個
のストアアレイ、すなわち列0ストアアレイ820、列
1ストアアレイ821、列2ストアアレイ822および
列3ストアアレイ823を含む。ストアアレイ820、
821、822および823の各々は、この特定の32
Kバイト置換キャッシュの実現例では8Kバイトをスト
アする。各ストアアレイは512までのエントリ、すな
わち512の16バイトエントリまたはブロックをこの
場合にはストアする。ストアアレイの各々は、この4ウ
ェイセットアソシアティブキャッシュの4つのセットの
異なる1つをストアする。
【0080】置換ストアアレイ65はさらに、読出/書
込(R/W)インターフェース830、831、832
および833を含み、これらはそれぞれ列0ストアアレ
イ820、列1ストアアレイ821、列2ストアアレイ
822、および列3ストアアレイ823に図示のとおり
に結合される。R/Wインタフェース830−833
は、置換タグアレイ70内にストアされたタグとの一致
があったかどうかを示す列ヒット情報制御信号を置換タ
グアレイ70から受取り、出力としてストアアレイの列
の1つにストアされた命令またはデータを与える。より
具体的には、列ヒット情報制御信号HIT COL0、
HIT COL1、HIT COL2、およびHIT
COL3は、それぞれR/Wインタフェース830、8
31、832、および833に与えられる(接続は図示
せず)。この発明の一実施例では、R/Wインタフェー
ス830−833は、マルチプレクサ206に関して図
7に示されるのと類似した態様でマルチプレクサとして
実現される。
【0081】置換タグアレイ70は4つの別個のタグア
レイ、すなわち列0タグアレイ840、列1タグアレイ
841、列2タグアレイ842および列3タグアレイ8
43を含む。各タグアレイは512の16バイトタグ、
すなわちその列のストアアレイの各エントリにつき1つ
のタグをストアすることができる。別個のタグアレイ8
40−843はすべて読出/書込バス810に結合され
て、R/Wバス810によって与えられるブロックのイ
ンデックス部分(ビット12:4)を受取る。タグアレ
イ840−843の出力は、図示のようにそれぞれのコ
ンパレータ850−853に結合される。各コンパレー
タには、処理中の読出または書込動作と関連するタグ値
が与えられる。コンパレータ850−853は、それぞ
れアレイ840−843でヒットが起こったときを示す
比較動作を実行する。
【0082】図15をここで参照して、物理アドレス8
60の中位ビット(12:4)は、置換タグアレイ84
0−843の各列内のブロックにアドレスし、各ストア
アレイからエントリを取込むのに用いられるキャッシュ
ブロックインデックス(INDEX)を与える。各物理
アドレス860の上位ビット(31:13)、すなわち
TAG VALUEは、置換タグアレイ810の各列の
タグと比較されて、したがってキャッシュブロックイン
デックス(INDEX)によってアクセスされた列の1
つを選択する。下位ビット(3:0)は、物理アドレス
860によってアドレスされた実際のバイトにアクセス
するように、取込まれたエントリへのオフセット(OF
FSET)を与える。
【0083】図16は各置換キャッシュエントリまたは
ブロック865にストアされた値の表現である。置換キ
ャッシュエントリ865はアドレスタグエントリ870
とデータエントリ875とを含む。データエントリ87
5は16バイト(RBYTE0、RBYTE1、…RB
YTE15)のデータのブロックを含む。各ブロックに
ストアされた値はまた、物理タグ有効ビット(V)、シ
ェアードビット(S)およびモディファイドビット
(M)を含む。
【0084】要約として、ここでメモリキャッシュアー
キテクチャの動作を置換キャッシュでミスが起こった状
態について説明する。置換キャッシュミスが起こると、
まず第1レベルキャッシュ30でミスがあるはずであ
る。この例では、処理中の動作が命令読出であると仮定
するが、この説明は一般にデータ読出および書込にも当
てはまる。
【0085】命令読出が処理中であれば、第1レベル命
令キャッシュ線形タグがまずアクセスされる。リクエス
トされたアドレスと第1レベル線形タグアレイ内にスト
アされたタグとの間には一致がないと仮定する。この際
に、線形アドレスはトランスレーションルックアサイド
バッファアレイ420によって物理アドレスに変換され
る。結果としてできる物理タグがエイリアスについてチ
ェックされる。それでもタグ一致が見つからなければ、
第1レベルキャッシュミスが起こっている。第1レベル
キャッシュミスの場合、置換キャッシュ物理タグがアク
セスされ、タグ一致についてチェックされる。一致が見
出されなければ、置換キャッシュミスが起こっている。
【0086】置換キャッシュミスが起こると、アドレス
された情報を得るために主メモリ50に対する外部メモ
リアクセスが行なわれる。リクエストされた情報を含む
主メモリ50内のエントリが第1レベルキャッシュ30
に送られて、そのキャッシュの4ウェイセットアソシア
ティブアドレシング方式に従ってストアされる。第1レ
ベルキャッシュ30において置換えられるべきその特定
のエントリが、キャッシュ30のために用いられている
置換アルゴリズムに従って決定される。この例では、第
1レベルキャッシュ30のためにランダム置換アルゴリ
ズムが用いれていると仮定する。ランダムカウンタ(図
示せず)が0:3から選択し、この特定の例では2を選
択する。したがってエントリ番号2が第1レベルキャッ
シュ30から追い出され、置換キャッシュ60に送られ
る。エントリ番号2は物理アドレス情報、バリッドビッ
ト(V)および16バイトのストアデータを含む。この
例のように命令ではなく、データを扱っていれば、エン
トリ番号2はまたシェアードビット(S)およびモディ
ファイドビット(M)の状態をも含むことに注目された
い。しかしながら、命令の場合には、シェアードビット
(S)およびモディファイドビット(M)は、命令が変
更されないので常に排他的に設定される。
【0087】次に置換キャッシュは、第1レベルキャッ
シュから置換キャッシュに追い出されたエントリ(廃棄
エントリ)の物理アドレスを取込み、その4ウェイセッ
トアソシアティブキャッシュにアクセスする。この具体
的な例では、置換キャッシュは置換えを決定するのにラ
ンダム置換アルゴリズムを用い、ランダム番号はこの場
合3であると仮定する。したがって、エントリ番号3が
廃棄される前に一時ラッチ(図示せず)にコピーされ
る。第1レベルキャッシュ30からの廃棄エントリが、
置換キャッシュ60のために選択されたセット連想性方
式に従って置換キャッシュ60のエントリ3に書込まれ
る。この発明の一実施例では、置換キャッシュの置換ア
ルゴリズムが廃棄されるべきエントリとして置換キャッ
シュ60のエントリ3を選択すれば、第1レベルキャッ
シュからの廃棄エントリは、廃棄される前にエントリ3
が置換キャッシュ内で占めていたのと同じ位置に書込ま
れる。
【0088】置換キャッシュ60にこのように書込まれ
たエントリは、物理タグ、バリッドビット(V)、シェ
アードビット(S)、モディファイドビット(M)およ
び16バイトのデータを含む。一時ラッチにコピーされ
た置換キャッシュ60からのエントリの状態が調べられ
る。一時ラッチ内のエントリの状態がシェアードか、排
他的か、またはインバリッドであれば、これは廃棄され
る。一時ラッチ内のエントリの状態がモディファイドで
あれば、これは主メモリ50に書込まれる。
【0089】さらに要約として、ここでメモリキャッシ
ュアーキテクチャの動作を第1レベルキャッシュでミス
が起こり置換キャッシュでヒットが起こった状態につい
て説明する。この例では、処理中の動作はデータ読出
(またはロード)動作であると仮定する。データ書込動
作は説明する動作と類似している。この例では、第1レ
ベルキャッシュ30がアクセスされる。第1レベルキャ
ッシュ30内の線形タグがチェックされ、ミスが認めら
れる。読出動作に関連する線形アドレスがトランスレー
ションルックアサイドバッファによって対応する物理ア
ドレスに変換される。次に、物理命令/データタグがエ
イリアスについてチェックされる。次に物理タグミスが
第1レベルキャッシュにおいて認められる。第1レベル
キャッシュミスの際に、置換キャッシュの置換物理タグ
が処理中の読出動作のアドレス情報との一致についてス
キャンされる。この例では、置換キャッシュ60の列1
でのヒットがある、すなわち置換キャッシュ60にスト
アされたセット1のどこかでヒットが起こったと仮定す
る。置換キャッシュヒットが起こると、このようなヒッ
トが起こったことを示すヒット情報が置換キャッシュ6
0から第1レベルキャッシュ30に伝えられる。第1レ
ベルキャッシュは次に、第1レベルキャッシュ30のた
めに用いられている4ウェイセットアソシアティブアド
レシング方式に従って置換キャッシュヒットエントリを
後にストアするためにエントリを割当る。この例では、
廃棄されるデータストアアレイ312の特定のエントリ
を決定するのにランダム置換アルゴリズムが用いられて
いる。この例の目的のために、セット0のエントリが廃
棄されると仮定する。データストアアレイ312のセッ
ト0のエントリが廃棄エントリとして保持レジスタ(図
示せず)に書込まれる。廃棄エントリは、組0物理アド
レス、データ、シェアード、モディファイドおよびバリ
ッドビットを含む。第1レベルキャッシュ30からの廃
棄エントリは置換キャッシュ60に送られ、置換キャッ
シュ60からのリクエストされたエントリ(置換キャッ
シュヒットエントリ)が第1レベルキャッシュ30に送
られる。このように置換キャッシュ60と第1レベルキ
ャッシュ30との間で交替が起こる。
【0090】置換キャッシュ60は保持レジスタ内の廃
棄エントリをヒットしている列(この例では列1)内の
置換ストアアレイ65に書込む。置換ストアアレイへの
この書込みは、タグ、データ、シェアード、およびモデ
ィファイドビットを含む。次に第1レベルキャッシュ3
0は置換キャッシュ60からキャッシュ30に交替され
たエントリの物理アドレスを取込み、このように交替さ
れたエントリの物理タグをそのセット0で対応する物理
タグアレイ392に書込む。このような交替されたエン
トリと関連する線形タグが、そのセット0で線形データ
タグアレイ310に書込まれる。置換キャッシュ60か
ら交替されたエントリのシェアードおよびモディファイ
ドビットが、これもまたそのセット0で物理タグアレイ
392に書込まれる。置換キャッシュから交替されたエ
ントリのバリッド情報および実際のデータは、セットア
ソシアティブ方式に従ってデータストアアレイ312に
ストアされる。マイクロプロセッサ10は実行を続け
る。
【0091】この発明の好ましい実施例では、置換キャ
ッシュストアアレイのサイズは第1レベルキャッシュ命
令ストアアレイおよびデータストアアレイのサイズの合
計とほぼ同じまたはそれより大きいサイズである。たと
えば、分割命令/データストアアレイが第1レベルキャ
ッシュ30として用いられると、32Kバイト置換キャ
ッシュストアアレイは、第1レベル命令ストアアレイが
16Kバイトであり、かつ第1レベルデータストアアレ
イが8Kバイトであると、許容可能な結果をもたらす。
第1レベルキャッシュ30として、統合キャッシュでは
なくこのような分割命令/データストアアレイが用いら
れた場合には、第1レベルキャッシュのサイズは第1レ
ベル命令およびデータストアアレイのサイズの合計と考
えられる。一般に置換キャッシュのサイズは第1レベル
キャッシュのサイズと同じかまたはそれよりも大きい
が、置換キャッシュのサイズが第1レベルキャッシュの
サイズの約1/2ないし第1レベルキャッシュのサイズ
の約8倍またはそれよりも大きい範囲内にあれば性能の
向上が達成される。たとえば、第1レベルキャッシュの
サイズが16Kバイトの場合には、置換キャッシュのサ
イズは約8Kバイトないし約256Kバイトまたはそれ
よりも大きい範囲にある。その上限を制限する要因は、
マイクロプロセッサダイの空間の利用可能性である。
【0092】マイクロプロセッサ装置およびそのための
メモリアーキテクチャを説明したが、このような装置を
動作させるための方法も開示されたことが明らかであ
る。要約すれば、この方法は、互いに結合されて共通の
半導体ダイ上に置かれるマイクロプロセッサコアおよび
第1レベルキャッシュを含むマイクロプロセッサに関連
する。主メモリがマイクロプロセッサの外部に置かれ
て、マイクロプロセッサに結合される。メモリにアクセ
スするための方法は、半導体ダイ上に置かれて、第1レ
ベルキャッシュに結合される置換キャッシュを設けるス
テップを含み、置換キャッシュは第1レベルキャッシュ
のサイズの少なくとも約半分である。この方法はさら
に、第1レベルキャッシュ内でキャッシュミスが起こる
と第1レベルキャッシュからエントリを廃棄するステッ
プを含み、このように廃棄されたエントリは廃棄エント
リと呼ばれる。この方法はさらに、マイクロプロセッサ
コアによる後の使用のために置換キャッシュに廃棄エン
トリをストアするステップを含む。この方法はさらに、
置換キャッシュでキャッシュヒットが起こると置換キャ
ッシュがヒットエントリを第1レベルキャッシュに供給
するステップを含む。この方法はさらに、マイクロプロ
セッサコアによる後の使用のために第1キャッシュにヒ
ットエントリをストアするステップを含む。
【0093】進歩したキャッシュメモリシステムを備え
たマイクロプロセッサを説明した。この発明のキャッシ
ュメモリシステムは、キャッシュが消費するチップ領域
を不当に増大することを避けながらキャッシュ性能を向
上することを提供する。この発明のキャッシュメモリシ
ステムはまた、望ましいことに外部メモリへのアクセス
の数を減じる。さらにこの進歩したキャッシュメモリシ
ステムによって電力が有利に節約される。
【0094】この発明のある好ましい特徴のみを例示す
るために示したが、多くの変形および変更が可能であ
る。したがって、前掲の特許請求の範囲はこの発明の真
の精神に含まれるこのような変更および変形のすべてを
包含すると意図されることを理解されたい。
【図面の簡単な説明】
【図1】第1および第2レベルキャッシュメモリを含む
従来のキャッシュメモリアーキテクチャのブロック図で
ある。
【図2】この発明に従う置換キャッシュアーキテクチャ
のブロック図である。
【図3】メモリ読出動作の間の置換キャッシュアーキテ
クチャの動作を示すフローチャートの図である。
【図4】メモリ書込動作の間の置換キャッシュアーキテ
クチャの動作を示すフローチャートの図である。
【図5】この発明によって用いられる第1レベル線形ア
ドレス命令キャッシュのブロック図である。
【図6】対応する線形および物理アドレスとともに図5
の命令キャッシュのエントリを示す図である。
【図7】図5の命令キャッシュの線形タグアレイおよび
ストアアレイのブロック図である。
【図8】この発明によって用いれる線形アドレスデータ
キャッシュのブロック図である。
【図9】対応する線形および物理アドレスとともに図8
のデータキャッシュのエントリを示す図である。
【図10】図8のデータキャッシュの線形タグアレイお
よびデータストアアレイのブロック図である。
【図11】この発明によって用いられる物理タグ回路の
ブロック図である。
【図12】この発明によって用いられるトランスレーシ
ョンルックアサイドバッファのブロック図である。
【図13】図11の物理タグ回路のエントリ、図12の
トランスレーションルックアサイドバッファのエント
リ、ならびに対応する線形および物理アドレスのブロッ
ク図である。
【図14】この発明によって用いられる置換キャッシュ
のブロック図である。
【図15】この発明のメモリアーキテクチャによって用
いられるアドレシング方式が用いる命令またはデータの
物理アドレスの図である。
【図16】この発明のメモリアーキテクチャによって用
いられるエントリまたはラインの図である。

Claims (22)

    【特許請求の範囲】
  1. 【請求項1】 半導体ダイと、 前記半導体ダイ上に置かれるマイクロプロセッサコア
    と、 前記半導体ダイ上に置かれて前記マイクロプロセッサコ
    アに結合される第1レベルセットアソシアティブキャッ
    シュとを含み、前記第1レベルキャッシュは、予め定め
    られた数の情報エントリをストアするのに十分大きい、
    予め定められたバイトサイズを示し、さらに前記半導体
    ダイ上に置かれて前記第1レベルキャッシュに結合され
    る置換キャッシュを含み、前記置換キャッシュは、第1
    レベルキャッシュミスの結果として前記第1レベルキャ
    ッシュから廃棄された情報エントリをストアし、前記置
    換キャッシュは、前記第1レベルキャッシュのサイズの
    少なくとも約半分である、マイクロプロセッサ。
  2. 【請求項2】 前記置換キャッシュに結合されて、前記
    置換キャッシュでヒットが起こるときを検出し、かつ前
    記置換キャッシュでヒットが起こるとヒットエントリを
    前記置換キャッシュから前記第1レベルキャッシュに供
    給するための置換キャッシュヒット検出回路をさらに含
    む、請求項1に記載のマイクロプロセッサ。
  3. 【請求項3】 第1レベルキャッシュミスおよび置換キ
    ャッシュミスの両方が起こると、所望の情報を取込むた
    めに外部メモリにアクセスするためのメモリアクセス手
    段をさらに含む、請求項1に記載のマイクロプロセッ
    サ。
  4. 【請求項4】 前記置換キャッシュがセットアソシアテ
    ィブ置換キャッシュを含む、請求項1に記載のマイクロ
    プロセッサ。
  5. 【請求項5】 前記置換キャッシュが4ウェイセットア
    ソシアティブ置換キャッシュを含む、請求項1に記載の
    マイクロプロセッサ。
  6. 【請求項6】 前記第1レベルキャッシュが4ウェイセ
    ットアソシアティブキャッシュを含む、請求項1に記載
    のマイクロプロセッサ。
  7. 【請求項7】 半導体ダイと、 前記半導体ダイ上に置かれるマイクロプロセッサコア
    と、 前記半導体ダイ上に置かれて前記マイクロプロセッサコ
    アに結合される第1レベルセットアソシアティブキャッ
    シュとを含み、前記第1レベルキャッシュは、予め定め
    られた数の情報エントリをストアするのに十分大きい、
    予め定められたバイトサイズを示し、さらに前記第1レ
    ベルキャッシュに結合されて、前記第1レベルキャッシ
    ュでヒットが起こるときを検出し、かつ前記第1レベル
    キャッシュでキャッシュミスが起こると前記第1レベル
    キャッシュから廃棄情報としてエントリを廃棄するため
    の第1レベルキャッシュヒット検出器と、 前記半導体ダイ上に置かれて前記第1レベルキャッシュ
    に結合される置換キャッシュとを含み、前記置換キャッ
    シュは第1レベルキャッシュミスの結果として前記第1
    レベルキャッシュから廃棄された廃棄情報エントリをス
    トアし、前記置換キャッシュは前記第1レベルキャッシ
    ュのサイズの少なくとも約半分であり、さらに前記置換
    キャッシュに結合されて、第1レベルキャッシュミスの
    後に前記置換キャッシュでヒットが起こるときを検出
    し、かつ前記置換キャッシュでヒットが起こると前記置
    換キャッシュから前記第1レベルキャッシュにヒットエ
    ントリを供給するための置換キャッシュヒット検出器を
    含む、マイクロプロセッサ。
  8. 【請求項8】 前記第1レベルキャッシュが第1レベル
    命令キャッシュと第1レベルデータキャッシュとを含
    む、請求項7に記載のマイクロプロセッサ。
  9. 【請求項9】 前記置換キャッシュがアクセスされてい
    るときに前記置換キャッシュにクロック信号を与え、か
    つ電力を節約するように前記置換キャッシュがアクセス
    されていないときには前記置換キャッシュに前記クロッ
    ク信号を与えないためのクロックコントローラをさらに
    含む、請求項7に記載のマイクロプロセッサ。
  10. 【請求項10】 前記第1レベルキャッシュ内に置かれ
    て、前記第1レベルキャッシュでヒットが起こるときを
    検出し、かつ前記第1レベルキャッシュでキャッシュミ
    スが起こると前記第1レベルキャッシュから廃棄情報エ
    ントリとしてエントリを廃棄するための第1レベルキャ
    ッシュヒット検出回路をさらに含む、請求項7に記載の
    マイクロプロセッサ。
  11. 【請求項11】 前記マイクロプロセッサに命令および
    データを与えるための外部メモリと組合される、請求項
    7に記載のマイクロプロセッサ。
  12. 【請求項12】 第1レベルキャッシュミスが起こり、
    かつ置換キャッシュミスが起こると、前記外部メモリか
    ら所望の情報エントリを取込んで、前記所望の情報エン
    トリを前記第1レベルキャッシュにそこでストアするた
    めに送るように、前記外部メモリにアクセスするための
    メモリアクセス手段をさらに含む、請求項11に記載の
    マイクロプロセッサ。
  13. 【請求項13】 前記置換キャッシュがセットアソシア
    ティブ置換キャッシュを含む、請求項7に記載のマイク
    ロプロセッサ。
  14. 【請求項14】 前記置換キャッシュが4ウェイセット
    アソシアティブ置換キャッシュを含む、請求項7に記載
    のマイクロプロセッサ。
  15. 【請求項15】 前記第1レベルキャッシュが4ウェイ
    セットアソシアティブキャッシュを含む、請求項7に記
    載のマイクロプロセッサ。
  16. 【請求項16】 互いに結合されて共通の半導体ダイ上
    に置かれるマイクロプロセッサコアおよび第1レベルキ
    ャッシュを含むマイクロプロセッサにおいて、メモリに
    アクセスするための方法であって、主メモリが前記マイ
    クロプロセッサの外部に置かれて前記マイクロプロセッ
    サに結合され、 前記方法は、 前記半導体ダイ上に置かれて前記第1レベルキャッシュ
    に結合される置換キャッシュを設けるステップを含み、
    前記置換キャッシュは前記第1レベルキャッシュのサイ
    ズの少なくとも約半分の大きさであり、さらに前記第1
    レベルキャッシュでキャッシュミスが起こると、前記第
    1レベルキャッシュからエントリを廃棄するステップを
    含み、このように廃棄されたエントリは廃棄エントリと
    称され、さらに前記マイクロプロセッサコアによる後の
    使用のために前記置換キャッシュに前記廃棄エントリを
    ストアするステップを含み、 前記置換キャッシュは、キャッシュヒットが前記置換キ
    ャッシュで起こると、前記第1レベルキャッシュにヒッ
    トエントリを供給し、さらに前記マイクロプロセッサコ
    アによる後の使用のために前記第1レベルキャッシュに
    前記ヒットエントリをストアするステップを含む、方
    法。
  17. 【請求項17】 前記置換キャッシュがアクセスされて
    いる間は前記置換キャッシュをクロック動作させるステ
    ップをさらに含む、請求項16に記載の方法。
  18. 【請求項18】 前記置換キャッシュがアクセスされて
    いない間は前記置換キャッシュをクロック動作させるの
    を停止するステップをさらに含む、請求項17に記載の
    方法。
  19. 【請求項19】 前記第1レベルキャッシュがセットア
    ソシアティブである、請求項16に記載の方法。
  20. 【請求項20】 前記置換キャッシュがセットアソシア
    ティブである、請求項16に記載の方法。
  21. 【請求項21】 前記第1レベルキャッシュが4ウェイ
    セットアソシアティブである、請求項16に記載の方
    法。
  22. 【請求項22】 前記置換キャッシュが4ウェイセット
    アソシアティブである、請求項16に記載の方法。
JP6304514A 1993-12-09 1994-12-08 マイクロプロセッサ、およびマイクロプロセッサにおいてメモリにアクセスするための方法 Pending JPH07200399A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US164246 1988-03-04
US08/164,246 US5623627A (en) 1993-12-09 1993-12-09 Computer memory architecture including a replacement cache

Publications (1)

Publication Number Publication Date
JPH07200399A true JPH07200399A (ja) 1995-08-04

Family

ID=22593622

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6304514A Pending JPH07200399A (ja) 1993-12-09 1994-12-08 マイクロプロセッサ、およびマイクロプロセッサにおいてメモリにアクセスするための方法

Country Status (3)

Country Link
US (1) US5623627A (ja)
EP (1) EP0657819A3 (ja)
JP (1) JPH07200399A (ja)

Families Citing this family (68)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5813031A (en) * 1994-09-21 1998-09-22 Industrial Technology Research Institute Caching tag for a large scale cache computer memory system
US5778438A (en) * 1995-12-06 1998-07-07 Intel Corporation Method and apparatus for maintaining cache coherency in a computer system with a highly pipelined bus and multiple conflicting snoop requests
US5737749A (en) * 1996-05-20 1998-04-07 International Business Machines Corporation Method and system for dynamically sharing cache capacity in a microprocessor
US5900011A (en) * 1996-07-01 1999-05-04 Sun Microsystems, Inc. Integrated processor/memory device with victim data cache
KR19980032776A (ko) * 1996-10-16 1998-07-25 가나이 츠토무 데이타 프로세서 및 데이타 처리시스템
US6212605B1 (en) * 1997-03-31 2001-04-03 International Business Machines Corporation Eviction override for larx-reserved addresses
US6049849A (en) * 1997-04-14 2000-04-11 International Business Machines Corporation Imprecise method and system for selecting an alternative cache entry for replacement in response to a conflict between cache operation requests
US6026470A (en) * 1997-04-14 2000-02-15 International Business Machines Corporation Software-managed programmable associativity caching mechanism monitoring cache misses to selectively implement multiple associativity levels
US5978888A (en) * 1997-04-14 1999-11-02 International Business Machines Corporation Hardware-managed programmable associativity caching mechanism monitoring cache misses to selectively implement multiple associativity levels
US6145057A (en) * 1997-04-14 2000-11-07 International Business Machines Corporation Precise method and system for selecting an alternative cache entry for replacement in response to a conflict between cache operation requests
US5974507A (en) * 1997-04-14 1999-10-26 International Business Machines Corporation Optimizing a cache eviction mechanism by selectively introducing different levels of randomness into a replacement algorithm
US6094708A (en) 1997-05-06 2000-07-25 Cisco Technology, Inc. Secondary cache write-through blocking mechanism
US6332178B1 (en) 1997-11-26 2001-12-18 Compaq Computer Corporation Method for estimating statistics of properties of memory system transactions
US6163840A (en) * 1997-11-26 2000-12-19 Compaq Computer Corporation Method and apparatus for sampling multiple potentially concurrent instructions in a processor pipeline
US6549930B1 (en) 1997-11-26 2003-04-15 Compaq Computer Corporation Method for scheduling threads in a multithreaded processor
US6195748B1 (en) 1997-11-26 2001-02-27 Compaq Computer Corporation Apparatus for sampling instruction execution information in a processor pipeline
US6374367B1 (en) 1997-11-26 2002-04-16 Compaq Computer Corporation Apparatus and method for monitoring a computer system to guide optimization
US6202127B1 (en) * 1997-11-26 2001-03-13 Compaq Computer Corporation Apparatus for spatial and temporal sampling in a computer memory system
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
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
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
US6175814B1 (en) 1997-11-26 2001-01-16 Compaq Computer Corporation Apparatus for determining the instantaneous average number of instructions processed
US6122709A (en) * 1997-12-19 2000-09-19 Sun Microsystems, Inc. Cache with reduced tag information storage
US7071946B2 (en) * 1997-12-30 2006-07-04 Micron Technology, Inc. Accelerated graphics port for a multiple memory controller computer system
US6157398A (en) * 1997-12-30 2000-12-05 Micron Technology, Inc. Method of implementing an accelerated graphics port for a multiple memory controller computer system
US6115385A (en) 1998-03-11 2000-09-05 Cisco Technology, Inc. Method and system for subnetting in a switched IP network
US6785274B2 (en) 1998-10-07 2004-08-31 Cisco Technology, Inc. Efficient network multicast switching apparatus and methods
US6298411B1 (en) 1999-01-05 2001-10-02 Compaq Computer Corporation Method and apparatus to share instruction images in a virtual cache
US6272598B1 (en) * 1999-03-22 2001-08-07 Hewlett-Packard Company Web cache performance by applying different replacement policies to the web cache
US6460114B1 (en) 1999-07-29 2002-10-01 Micron Technology, Inc. Storing a flushed cache line in a memory buffer of a controller
US6249843B1 (en) 1999-08-05 2001-06-19 International Business Machines Corporation Store instruction having horizontal memory hierarchy control bits
US6230242B1 (en) 1999-08-05 2001-05-08 International Business Machines Corporation Store instruction having vertical memory hierarchy control bits
US6253286B1 (en) 1999-08-05 2001-06-26 International Business Machines Corporation Apparatus for adjusting a store instruction having memory hierarchy control bits
US6249911B1 (en) 1999-08-05 2001-06-19 International Business Machines Corporation Optimizing compiler for generating store instructions having memory hierarchy control bits
JP2001167040A (ja) * 1999-12-14 2001-06-22 Hitachi Ltd 記憶サブシステム及び記憶制御装置
AU2001245520A1 (en) 2000-03-08 2001-09-17 Sun Microsystems, Inc. Vliw computer processing architecture having a scalable number of register files
HK1048537A1 (zh) 2000-03-08 2003-04-04 Sun Microsystems, Inc. 设有装置在晶片上的动态随机存取记忆体(ram)的极长指令集电脑处理架构
US7080234B2 (en) * 2000-03-08 2006-07-18 Sun Microsystems, Inc. VLIW computer processing architecture having the problem counter stored in a register file register
US6591341B1 (en) * 2000-03-31 2003-07-08 Intel Corporation Multilevel cache system and method having a merged tag array to store tags for multiple data arrays
US7487369B1 (en) * 2000-05-01 2009-02-03 Rmi Corporation Low-power cache system and method
US6615300B1 (en) * 2000-06-19 2003-09-02 Transmeta Corporation Fast look-up of indirect branch destination in a dynamic translation system
US20030131201A1 (en) * 2000-12-29 2003-07-10 Manoj Khare Mechanism for efficiently supporting the full MESI (modified, exclusive, shared, invalid) protocol in a cache coherent multi-node shared memory system
US7260684B2 (en) * 2001-01-16 2007-08-21 Intel Corporation Trace cache filtering
US20020188805A1 (en) * 2001-06-05 2002-12-12 Sailesh Kottapalli Mechanism for implementing cache line fills
US7346757B2 (en) * 2002-10-08 2008-03-18 Rmi Corporation Advanced processor translation lookaside buffer management in a multithreaded system
FR2846114A1 (fr) * 2002-10-16 2004-04-23 Thomson Licensing Sa Dispositif de memorisation d'une liste d'elements et procede de memorisation d'un element dans un tel dispositif
US7136967B2 (en) * 2003-12-09 2006-11-14 International Business Machinces Corporation Multi-level cache having overlapping congruence groups of associativity sets in different cache levels
US7941585B2 (en) 2004-09-10 2011-05-10 Cavium Networks, Inc. Local scratchpad and data caching system
US7594081B2 (en) 2004-09-10 2009-09-22 Cavium Networks, Inc. Direct access to low-latency memory
JP2008512786A (ja) 2004-09-10 2008-04-24 カビウム・ネットワークス データ構造の選択的複製方法および装置
US7930484B2 (en) * 2005-02-07 2011-04-19 Advanced Micro Devices, Inc. System for restricted cache access during data transfers and method thereof
US20060179231A1 (en) * 2005-02-07 2006-08-10 Advanced Micron Devices, Inc. System having cache memory and method of accessing
US20060259828A1 (en) 2005-05-16 2006-11-16 Texas Instruments Incorporated Systems and methods for controlling access to secure debugging and profiling features of a computer system
US9633213B2 (en) * 2005-05-16 2017-04-25 Texas Instruments Incorporated Secure emulation logic between page attribute table and test interface
JP2007158968A (ja) * 2005-12-07 2007-06-21 Canon Inc 情報処理装置及び情報処理方法
US8606998B2 (en) * 2006-08-24 2013-12-10 Advanced Micro Devices, Inc. System and method for instruction-based cache allocation policies
US20080120471A1 (en) * 2006-11-06 2008-05-22 On Demand Microelectronics Method and apparatus for least-recently-used replacement of a block frame in an electronic memory device
US8086831B2 (en) * 2008-02-01 2011-12-27 International Business Machines Corporation Indexed table circuit having reduced aliasing
US8688911B1 (en) 2008-11-25 2014-04-01 Marvell Israel (M.I.S.L) Ltd. Transparent processing core and L2 cache connection
US8484421B1 (en) * 2008-11-25 2013-07-09 Marvell Israel (M.I.S.L) Ltd. Cache pre-fetch architecture and method
US9396117B2 (en) * 2012-01-09 2016-07-19 Nvidia Corporation Instruction cache power reduction
US9552032B2 (en) 2012-04-27 2017-01-24 Nvidia Corporation Branch prediction power reduction
US9547358B2 (en) 2012-04-27 2017-01-17 Nvidia Corporation Branch prediction power reduction
US10042750B2 (en) 2013-03-15 2018-08-07 Micron Technology, Inc. Apparatuses and methods for adaptive control of memory using an adaptive memory controller with a memory management hypervisor
US10956339B2 (en) * 2016-07-14 2021-03-23 Advanced Micro Devices, Inc. System and method for storing cache location information for cache entry transfer
US12032482B2 (en) * 2022-01-24 2024-07-09 Micron Technology, Inc. Dual cache for row hammer mitigation
CN116431529B (zh) * 2023-06-15 2023-08-29 睿思芯科(深圳)技术有限公司 基于l1d-l2缓存的别名处理系统、方法及相关设备
US12066943B1 (en) 2023-06-15 2024-08-20 Rivai Technologies (Shenzhen) Co., Ltd. Alias processing method and system based on L1D-L2 caches and related device

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3699533A (en) * 1970-10-29 1972-10-17 Rca Corp Memory system including buffer memories
US4458310A (en) * 1981-10-02 1984-07-03 At&T Bell Laboratories Cache memory using a lowest priority replacement circuit
US5185878A (en) * 1988-01-20 1993-02-09 Advanced Micro Device, Inc. Programmable cache memory as well as system incorporating same and method of operating programmable cache memory
GB8805908D0 (en) * 1988-02-12 1988-04-13 Int Computers Ltd Data memory system
JPH0786847B2 (ja) * 1988-08-09 1995-09-20 松下電器産業株式会社 キャッシュメモリ
US5107465A (en) * 1989-09-13 1992-04-21 Advanced Micro Devices, Inc. Asynchronous/synchronous pipeline dual mode memory access circuit and method
JP2833062B2 (ja) * 1989-10-30 1998-12-09 株式会社日立製作所 キャッシュメモリ制御方法とこのキャッシュメモリ制御方法を用いたプロセッサおよび情報処理装置
US5307477A (en) * 1989-12-01 1994-04-26 Mips Computer Systems, Inc. Two-level cache memory system
US5261066A (en) * 1990-03-27 1993-11-09 Digital Equipment Corporation Data processing system and method with small fully-associative cache and prefetch buffers
US5317718A (en) * 1990-03-27 1994-05-31 Digital Equipment Corporation Data processing system and method with prefetch buffers
CA2044689A1 (en) * 1990-06-15 1991-12-16 Roger E. Tipley Multilevel inclusion in multilevel cache hierarchies

Also Published As

Publication number Publication date
EP0657819A3 (en) 1996-08-07
US5623627A (en) 1997-04-22
EP0657819A2 (en) 1995-06-14

Similar Documents

Publication Publication Date Title
US5623627A (en) Computer memory architecture including a replacement cache
EP0695996B1 (en) Multi-level cache system
US6772316B2 (en) Method and apparatus for updating and invalidating store data
US6161166A (en) Instruction cache for multithreaded processor
EP1934753B1 (en) Tlb lock indicator
US7089370B2 (en) Apparatus and method for pre-fetching page data using segment table data
US7805588B2 (en) Caching memory attribute indicators with cached memory data field
JP4065660B2 (ja) 機能が並列に分散された変換索引バッファ
US6014732A (en) Cache memory with reduced access time
US8037281B2 (en) Miss-under-miss processing and cache flushing
US5715427A (en) Semi-associative cache with MRU/LRU replacement
KR20010101695A (ko) 가상 메모리 시스템에서의 메모리 접근 개선 기술
JPH0619793A (ja) キャッシュ・アクセスのための仮想アドレス変換予測の履歴テーブル
JPH03141443A (ja) データ格納方法及びマルチ・ウェイ・セット・アソシアチブ・キャッシュ記憶装置
US20020095552A1 (en) Highly efficient design of storage array for use in caches and memory subsystems
US8621152B1 (en) Transparent level 2 cache that uses independent tag and valid random access memory arrays for cache access
JP3431878B2 (ja) マルチスレッド・プロセッサの命令キャッシュ
JP2008545199A (ja) メモリ内の同じページに対する多数の変換ルックアサイド緩衝器へのアクセスの防止
US5926841A (en) Segment descriptor cache for a processor
JPWO2006038258A1 (ja) データプロセッサ
US6385696B1 (en) Embedded cache with way size bigger than page size
US6766421B2 (en) Fast hardware looping mechanism for cache cleaning and flushing of cache entries corresponding to a qualifier field
US5737550A (en) Cache memory to processor bus interface and method thereof
US7076635B1 (en) Method and apparatus for reducing instruction TLB accesses

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: 20040525

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20041019