JPH10214226A - 第2レベルキャッシュの古いラインの除去によるプロセッサのメモリ性能の強化方法及びシステム - Google Patents
第2レベルキャッシュの古いラインの除去によるプロセッサのメモリ性能の強化方法及びシステムInfo
- Publication number
- JPH10214226A JPH10214226A JP9291882A JP29188297A JPH10214226A JP H10214226 A JPH10214226 A JP H10214226A JP 9291882 A JP9291882 A JP 9291882A JP 29188297 A JP29188297 A JP 29188297A JP H10214226 A JPH10214226 A JP H10214226A
- Authority
- JP
- Japan
- Prior art keywords
- cache
- memory
- level
- line
- processor
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
- G06F12/0897—Caches characterised by their organisation or structure with two or more cache hierarchy levels
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レベル・キャッシュでキャッシュ・
ラインに関するメモリ要求を受け取った時に、そのメモ
リ要求がストアによって開始されたものであるかどうか
を判定する。メモリ要求が第1レベル・キャッシュでの
ヒットをもたらし、メモリ要求がストアによって開始さ
れたと判定される場合には、第2レベル・キャッシュの
対応するキャッシュ・ラインを無効化する。メモリ要求
が第1レベル・キャッシュでのミスをもたらす場合、そ
のメモリ要求は、第2レベル・キャッシュに送られ、メ
モリ要求が第2レベル・キャッシュでのヒットをもたら
し、ストアによって開始されたと判定される場合には、
結果のキャッシュ・ラインが第1レベル・キャッシュに
転送され、第2レベル・キャッシュ内の結果のキャッシ
ュ・ラインが無効化される。
方法及びシステムを提供する。 【解決手段】 第1レベル・キャッシュでキャッシュ・
ラインに関するメモリ要求を受け取った時に、そのメモ
リ要求がストアによって開始されたものであるかどうか
を判定する。メモリ要求が第1レベル・キャッシュでの
ヒットをもたらし、メモリ要求がストアによって開始さ
れたと判定される場合には、第2レベル・キャッシュの
対応するキャッシュ・ラインを無効化する。メモリ要求
が第1レベル・キャッシュでのミスをもたらす場合、そ
のメモリ要求は、第2レベル・キャッシュに送られ、メ
モリ要求が第2レベル・キャッシュでのヒットをもたら
し、ストアによって開始されたと判定される場合には、
結果のキャッシュ・ラインが第1レベル・キャッシュに
転送され、第2レベル・キャッシュ内の結果のキャッシ
ュ・ラインが無効化される。
Description
【0001】
【発明の属する技術分野】本発明は、全般的にはデータ
処理システムのキャッシュ・メモリ管理の改良に関し、
具体的には、第2レベル・キャッシュでの古いキャッシ
ュ・ラインの除去を介するデータ処理システムのキャッ
シュ・メモリ管理の改良に関する。
処理システムのキャッシュ・メモリ管理の改良に関し、
具体的には、第2レベル・キャッシュでの古いキャッシ
ュ・ラインの除去を介するデータ処理システムのキャッ
シュ・メモリ管理の改良に関する。
【0002】
【従来の技術】コンピュータ・システムには、通常は、
階層記憶システムに結合された情報プロセッサが含まれ
る。プロセッサに対する相対的な階層記憶位置のそれぞ
れに使用される記憶装置の種類は、通常は、速度、容量
及びコストの要件のバランスをとることによって決定さ
れる。一般に使用されるメモリ階層には、大量記憶のた
めの直接アクセス記憶装置(DASD)、主記憶用のラ
ンダム・アクセス・メモリ(RAM)、及び、最近アク
セスされたかそれに隣接するメモリ位置にあるデータ及
びコードのプロセッサ・キャッシュ記憶用のキャッシュ
として既知の、特殊な高速のRAMメモリが含まれる。
メモリ管理システムは、すぐにアクセスされる可能性が
最も高いと見なされるアドレスに関して、この階層内で
メモリの各部を動的にコピーする。
階層記憶システムに結合された情報プロセッサが含まれ
る。プロセッサに対する相対的な階層記憶位置のそれぞ
れに使用される記憶装置の種類は、通常は、速度、容量
及びコストの要件のバランスをとることによって決定さ
れる。一般に使用されるメモリ階層には、大量記憶のた
めの直接アクセス記憶装置(DASD)、主記憶用のラ
ンダム・アクセス・メモリ(RAM)、及び、最近アク
セスされたかそれに隣接するメモリ位置にあるデータ及
びコードのプロセッサ・キャッシュ記憶用のキャッシュ
として既知の、特殊な高速のRAMメモリが含まれる。
メモリ管理システムは、すぐにアクセスされる可能性が
最も高いと見なされるアドレスに関して、この階層内で
メモリの各部を動的にコピーする。
【0003】CPUがメモリ・アクセスを開始する時に
は必ず、記憶システムが、物理アドレスをキャッシュに
送る。キャッシュは、この物理アドレスをタグ・メモリ
内のアドレス・タグのすべてと比較して、データのコピ
ーを保持しているかどうかを調べる。この動作が読取ア
クセスであり、キャッシュが所与のデータを保持してい
る場合には、キャッシュは、それ自体の高速RAMから
要求されたデータを読み取り、CPUに供給する。これ
がキャッシュ・ヒットであり、通常は、同じ値を主記憶
から直接読み取るよりはるかに高速である。しかし、キ
ャッシュがそのデータを保持していない場合、キャッシ
ュ・ミスが発生し、キャッシュは、物理アドレスを主記
憶システムに渡して、データを読み取る。データが主記
憶から到着した時には、CPUとキャッシュの両方がコ
ピーを受け取る。この要求が主記憶でもミスになる場
合、必要なブロックは、ディスクから主記憶及びキャッ
シュへ転送される。その後、CPUが同一のブロックを
アクセスする場合には、その要求がキャッシュでのヒッ
トを発生させ、ブロックまたはキャッシュ・ラインが、
主記憶ではなくキャッシュから転送され、かなり高速の
アクセスがもたらされる。
は必ず、記憶システムが、物理アドレスをキャッシュに
送る。キャッシュは、この物理アドレスをタグ・メモリ
内のアドレス・タグのすべてと比較して、データのコピ
ーを保持しているかどうかを調べる。この動作が読取ア
クセスであり、キャッシュが所与のデータを保持してい
る場合には、キャッシュは、それ自体の高速RAMから
要求されたデータを読み取り、CPUに供給する。これ
がキャッシュ・ヒットであり、通常は、同じ値を主記憶
から直接読み取るよりはるかに高速である。しかし、キ
ャッシュがそのデータを保持していない場合、キャッシ
ュ・ミスが発生し、キャッシュは、物理アドレスを主記
憶システムに渡して、データを読み取る。データが主記
憶から到着した時には、CPUとキャッシュの両方がコ
ピーを受け取る。この要求が主記憶でもミスになる場
合、必要なブロックは、ディスクから主記憶及びキャッ
シュへ転送される。その後、CPUが同一のブロックを
アクセスする場合には、その要求がキャッシュでのヒッ
トを発生させ、ブロックまたはキャッシュ・ラインが、
主記憶ではなくキャッシュから転送され、かなり高速の
アクセスがもたらされる。
【0004】キャッシュ・メモリの容量は、主記憶やデ
ィスク駆動装置の容量より小さいので、CPUが必要と
する可能性があるデータ・ブロックのすべてを常にキャ
ッシュに格納することはできない。キャッシュが満杯の
時に新規のブロックまたはキャッシュ・ラインをロード
するためには、キャッシュからブロックを除去またはキ
ャスト・アウトして、新たにアクセスされるデータのた
めの空間を作る必要がある。周知の一般に使用されるキ
ャッシュ置換アルゴリズムは、LRU(LeastRecently
Used)アルゴリズムである。LRUアルゴリズムによれ
ば、もっとも長い期間にわたってキャッシュ内でアクセ
スされなかったブロックが、必要性の最も低いブロック
として選択され、新規ブロックによって置換される。
ィスク駆動装置の容量より小さいので、CPUが必要と
する可能性があるデータ・ブロックのすべてを常にキャ
ッシュに格納することはできない。キャッシュが満杯の
時に新規のブロックまたはキャッシュ・ラインをロード
するためには、キャッシュからブロックを除去またはキ
ャスト・アウトして、新たにアクセスされるデータのた
めの空間を作る必要がある。周知の一般に使用されるキ
ャッシュ置換アルゴリズムは、LRU(LeastRecently
Used)アルゴリズムである。LRUアルゴリズムによれ
ば、もっとも長い期間にわたってキャッシュ内でアクセ
スされなかったブロックが、必要性の最も低いブロック
として選択され、新規ブロックによって置換される。
【0005】最新の世代のパーソナル・コンピュータで
は、通常は、多重レベル・キャッシュ・システムが使用
される。このシステムでは、システム性能をさらに高め
るために、キャッシュ・メモリがオンチップのレベル1
(L1)プロセッサ・キャッシュと、別個のレベル2
(L2)キャッシュとに分割される。どちらのキャッシ
ュ・メモリも、高速スタティックRAMである。より小
さいL1キャッシュは、プロセッサの集積回路内に集積
され、キャッシュ・メモリのアクセス速度が大幅に高め
られる。L2キャッシュはより大きく、通常は500K
Bないし1MBの範囲であり、L1キャッシュに格納さ
れたデータのブロックを含む大量のブロックのデータを
格納することによって性能を高める。
は、通常は、多重レベル・キャッシュ・システムが使用
される。このシステムでは、システム性能をさらに高め
るために、キャッシュ・メモリがオンチップのレベル1
(L1)プロセッサ・キャッシュと、別個のレベル2
(L2)キャッシュとに分割される。どちらのキャッシ
ュ・メモリも、高速スタティックRAMである。より小
さいL1キャッシュは、プロセッサの集積回路内に集積
され、キャッシュ・メモリのアクセス速度が大幅に高め
られる。L2キャッシュはより大きく、通常は500K
Bないし1MBの範囲であり、L1キャッシュに格納さ
れたデータのブロックを含む大量のブロックのデータを
格納することによって性能を高める。
【0006】このような多重レベル・キャッシュ・シス
テムは、強い包含(strong inclusion)または弱い包含
(weak inclusion)と称するものを用いて動作する。強
い包含では、L1キャッシュに格納されたデータ・セッ
トまたはメモリのブロックの全体が、L2キャッシュに
格納されたメモリのブロックのサブセットであること
と、L1キャッシュへのストアが、ライトスルー動作を
介するL2キャッシュへのストアでもあることが必要で
ある。弱い包含では、L1キャッシュにL2キャッシュ
のメモリのブロックのサブセットが含まれることが必要
であるが、L1キャッシュに対する変更は、ライトバッ
ク動作を使用して周期的にL2キャッシュ内で更新され
る。
テムは、強い包含(strong inclusion)または弱い包含
(weak inclusion)と称するものを用いて動作する。強
い包含では、L1キャッシュに格納されたデータ・セッ
トまたはメモリのブロックの全体が、L2キャッシュに
格納されたメモリのブロックのサブセットであること
と、L1キャッシュへのストアが、ライトスルー動作を
介するL2キャッシュへのストアでもあることが必要で
ある。弱い包含では、L1キャッシュにL2キャッシュ
のメモリのブロックのサブセットが含まれることが必要
であるが、L1キャッシュに対する変更は、ライトバッ
ク動作を使用して周期的にL2キャッシュ内で更新され
る。
【0007】キャッシュ管理システムの重要な機能の1
つが、プロセッサが必要とする新しいキャッシュ・ライ
ンによる、キャッシュ内に存在するラインの置換であ
る。セット・アソシアティブ・キャッシュでは、合同ク
ラスの所与の数の「ウェイ」だけをキャッシュ内に保持
でき、その結果、キャッシュ内のウェイが満杯であり、
クラスのメンバをキャッシュにロードしなければならな
い時には、キャッシュ管理システムが、通常はLRU置
換方式を使用して、置換のためにキャッシュ内のウェイ
の1つを選択する。たとえば、8ウェイ・セット・アソ
シアティブ・キャッシュでは、所与のインデックスを有
する8つのラインだけをキャッシュ内に保持できる。同
一のインデックスを有する第9のキャッシュ・ラインが
必要な場合には、このラインによって、そのインデック
スを有する既存の8つのキャッシュ・ラインのうちの1
つが置換される。
つが、プロセッサが必要とする新しいキャッシュ・ライ
ンによる、キャッシュ内に存在するラインの置換であ
る。セット・アソシアティブ・キャッシュでは、合同ク
ラスの所与の数の「ウェイ」だけをキャッシュ内に保持
でき、その結果、キャッシュ内のウェイが満杯であり、
クラスのメンバをキャッシュにロードしなければならな
い時には、キャッシュ管理システムが、通常はLRU置
換方式を使用して、置換のためにキャッシュ内のウェイ
の1つを選択する。たとえば、8ウェイ・セット・アソ
シアティブ・キャッシュでは、所与のインデックスを有
する8つのラインだけをキャッシュ内に保持できる。同
一のインデックスを有する第9のキャッシュ・ラインが
必要な場合には、このラインによって、そのインデック
スを有する既存の8つのキャッシュ・ラインのうちの1
つが置換される。
【0008】
【発明が解決しようとする課題】L1キャッシュにロー
ドされるキャッシュ・ラインによって、修正されたキャ
ッシュ・ラインが置換される場合、修正されたライン
は、L2キャッシュにキャスト・アウトされて、そこに
格納される。L2キャッシュに対するラインフィルのた
びに、置換される修正されたラインが、主記憶にキャス
ト・アウトされる。その結果、L1キャッシュからL2
キャッシュへのキャスト・アウトが、L1キャッシュか
らのキャスト・アウトの余地を作るためにL2キャッシ
ュから主記憶への後続のキャスト・アウトを引き起こす
可能性がある。しかし、メモリ・アクセスがストアによ
って開始されたものである場合、このシステムでは複数
の非効率性が発生する。これらの非効率性を除去し、こ
れによってメモリ性能を強化するキャッシュ・メモリ管
理システムを提供することが望ましい。
ドされるキャッシュ・ラインによって、修正されたキャ
ッシュ・ラインが置換される場合、修正されたライン
は、L2キャッシュにキャスト・アウトされて、そこに
格納される。L2キャッシュに対するラインフィルのた
びに、置換される修正されたラインが、主記憶にキャス
ト・アウトされる。その結果、L1キャッシュからL2
キャッシュへのキャスト・アウトが、L1キャッシュか
らのキャスト・アウトの余地を作るためにL2キャッシ
ュから主記憶への後続のキャスト・アウトを引き起こす
可能性がある。しかし、メモリ・アクセスがストアによ
って開始されたものである場合、このシステムでは複数
の非効率性が発生する。これらの非効率性を除去し、こ
れによってメモリ性能を強化するキャッシュ・メモリ管
理システムを提供することが望ましい。
【0009】
【課題を解決するための手段】データ処理システムのメ
モリ性能を強化する方法及びシステムを提供する。第1
レベル・キャッシュのキャッシュ・ラインに関するメモ
リ要求が受け取られる。そのメモリ要求が、ストアによ
って開始されたかどうかを判定する。メモリ要求が、第
1レベル・キャッシュでのヒットをもたらし、メモリ要
求がストアによって開始されたと判定される場合には、
第2レベル・キャッシュの対応するキャッシュ・ライン
を無効化する。メモリ要求が第1レベル・キャッシュで
のミスをもたらす場合、そのメモリ要求は、第2レベル
・キャッシュに送られ、そのメモリ要求が第2レベル・
キャッシュでのヒットをもたらし、ストアによって開始
されたと判定される場合には、結果のキャッシュ・ライ
ンが第1レベル・キャッシュに転送され、第2レベル・
キャッシュ内の結果のキャッシュ・ラインが無効化され
る。本発明の上記ならびに追加の目的、特徴及び長所
は、以下の詳細な説明から明白になる。
モリ性能を強化する方法及びシステムを提供する。第1
レベル・キャッシュのキャッシュ・ラインに関するメモ
リ要求が受け取られる。そのメモリ要求が、ストアによ
って開始されたかどうかを判定する。メモリ要求が、第
1レベル・キャッシュでのヒットをもたらし、メモリ要
求がストアによって開始されたと判定される場合には、
第2レベル・キャッシュの対応するキャッシュ・ライン
を無効化する。メモリ要求が第1レベル・キャッシュで
のミスをもたらす場合、そのメモリ要求は、第2レベル
・キャッシュに送られ、そのメモリ要求が第2レベル・
キャッシュでのヒットをもたらし、ストアによって開始
されたと判定される場合には、結果のキャッシュ・ライ
ンが第1レベル・キャッシュに転送され、第2レベル・
キャッシュ内の結果のキャッシュ・ラインが無効化され
る。本発明の上記ならびに追加の目的、特徴及び長所
は、以下の詳細な説明から明白になる。
【0010】
【発明の実施の形態】ここで図面、具体的には図1を参
照すると、本発明の好ましい実施例に従って情報を処理
するための、全体として符号10で示されるデータ処理
システムのブロック図が示されている。図示の実施例で
は、データ処理システム10に、単一の集積回路スーパ
ースカラ・マイクロプロセッサを含むプロセッサ12が
含まれる。したがって、プロセッサ12には、さまざま
な実行ユニット、レジスタ、バッファ、メモリ及び他の
機能ユニットが含まれ、これらのすべてが集積回路によ
って形成される。本発明の好ましい実施例では、プロセ
ッサ12に、International Business Machines, Inc.
及びMotorola, Inc.によって製造される、縮小命令セッ
ト・コンピュータ(RISC)技法に従って動作するP
owerPC(米国における登録商標)系列のマイクロ
プロセッサのうちの1つが含まれる。
照すると、本発明の好ましい実施例に従って情報を処理
するための、全体として符号10で示されるデータ処理
システムのブロック図が示されている。図示の実施例で
は、データ処理システム10に、単一の集積回路スーパ
ースカラ・マイクロプロセッサを含むプロセッサ12が
含まれる。したがって、プロセッサ12には、さまざま
な実行ユニット、レジスタ、バッファ、メモリ及び他の
機能ユニットが含まれ、これらのすべてが集積回路によ
って形成される。本発明の好ましい実施例では、プロセ
ッサ12に、International Business Machines, Inc.
及びMotorola, Inc.によって製造される、縮小命令セッ
ト・コンピュータ(RISC)技法に従って動作するP
owerPC(米国における登録商標)系列のマイクロ
プロセッサのうちの1つが含まれる。
【0011】図1のシステムは、一次レベル(L1)キ
ャッシュ、二次レベル(L2)キャッシュ、主記憶及び
ディスク記憶装置の階層記憶構成を有する。プロセッサ
12には、一次レベル・キャッシュとしてオンチップの
L1キャッシュ14が含まれる。L1キャッシュ14
は、通常は、8KBないし32KBの範囲の記憶容量を
有し、さらに、その構成要素は、プロセッサ12内の、
単一のスタティック・ランダム・アクセス・メモリ(S
RAM)・デバイスまたは2つの物理的に別々のデバイ
スとすることができる。二次キャッシュであるL2キャ
ッシュ20は、局所バス17によって(図示されないバ
ス・インターフェース・ユニットで)プロセッサ12に
接続される。L2キャッシュ20は、通常は一次オンチ
ップ・キャッシュよりはるかに大きく、64KBないし
1MBの範囲の容量を有するが、アクセスははるかに低
速である。通常の動作時に、L2キャッシュ20には、
主記憶22に格納されたメモリのブロックのサブセット
が格納される。同じ形で、L1キャッシュ14には、L
2キャッシュ20に格納されたメモリのブロックのサブ
セットが格納される。高速のL1キャッシュ及びL2キ
ャッシュによって、プロセッサは、主記憶から高速キャ
ッシュに前に転送されたデータまたは命令のサブセット
への相対的に高速のアクセス時間を達成でき、したがっ
て、データ処理システムの動作速度が改善される。
ャッシュ、二次レベル(L2)キャッシュ、主記憶及び
ディスク記憶装置の階層記憶構成を有する。プロセッサ
12には、一次レベル・キャッシュとしてオンチップの
L1キャッシュ14が含まれる。L1キャッシュ14
は、通常は、8KBないし32KBの範囲の記憶容量を
有し、さらに、その構成要素は、プロセッサ12内の、
単一のスタティック・ランダム・アクセス・メモリ(S
RAM)・デバイスまたは2つの物理的に別々のデバイ
スとすることができる。二次キャッシュであるL2キャ
ッシュ20は、局所バス17によって(図示されないバ
ス・インターフェース・ユニットで)プロセッサ12に
接続される。L2キャッシュ20は、通常は一次オンチ
ップ・キャッシュよりはるかに大きく、64KBないし
1MBの範囲の容量を有するが、アクセスははるかに低
速である。通常の動作時に、L2キャッシュ20には、
主記憶22に格納されたメモリのブロックのサブセット
が格納される。同じ形で、L1キャッシュ14には、L
2キャッシュ20に格納されたメモリのブロックのサブ
セットが格納される。高速のL1キャッシュ及びL2キ
ャッシュによって、プロセッサは、主記憶から高速キャ
ッシュに前に転送されたデータまたは命令のサブセット
への相対的に高速のアクセス時間を達成でき、したがっ
て、データ処理システムの動作速度が改善される。
【0012】マイクロプロセッサのレベル1キャッシュ
は、命令とデータのキャッシュ記憶のために別々の内部
キャッシュを有する「スプリット・キャッシュ」として
実施されることがしばしばである。スプリット・キャッ
シュは、別々の命令キャッシュ(Icache)とデー
タ・キャッシュ(Dcache)を有し、この2つのキ
ャッシュのそれぞれが、独自のアドレス及び制御ポート
を有する。このような構成では、命令のアドレッシング
の直列性がデータのアドレッシングの直列性よりはるか
に高いので、効率的なキャッシュ記憶がもたらされる。
キャッシュ記憶機能をこの2種類の情報について分離す
ることによって、データ・キャッシュの大量の入出力が
命令キャッシュ内の命令の参照の高い局所性に干渉しな
くなるので、実質的な効率改善がもたらされる。これら
の長所を利用するために、近代のマイクロプロセッサで
一般的に実施されているように、これらの記憶空間の共
用は行われず、2つのキャッシュの機能性は、明確に別
々に定義される。
は、命令とデータのキャッシュ記憶のために別々の内部
キャッシュを有する「スプリット・キャッシュ」として
実施されることがしばしばである。スプリット・キャッ
シュは、別々の命令キャッシュ(Icache)とデー
タ・キャッシュ(Dcache)を有し、この2つのキ
ャッシュのそれぞれが、独自のアドレス及び制御ポート
を有する。このような構成では、命令のアドレッシング
の直列性がデータのアドレッシングの直列性よりはるか
に高いので、効率的なキャッシュ記憶がもたらされる。
キャッシュ記憶機能をこの2種類の情報について分離す
ることによって、データ・キャッシュの大量の入出力が
命令キャッシュ内の命令の参照の高い局所性に干渉しな
くなるので、実質的な効率改善がもたらされる。これら
の長所を利用するために、近代のマイクロプロセッサで
一般的に実施されているように、これらの記憶空間の共
用は行われず、2つのキャッシュの機能性は、明確に別
々に定義される。
【0013】プロセッサ12は、アドレス線及びデータ
線21によってシステム・バス18に結合される。主記
憶22は、メモリ・コントローラ24を介してシステム
・バス18に接続される。通常、主記憶は、ランダム・
アクセス・メモリ(RAM)を使用して実施され、1M
Bないし64MBの記憶容量を有する。大容量記憶は、
ディスク・コントローラ28を介してシステム・バス1
8に結合されるDASD(ディスク駆動装置)26によ
って提供される。
線21によってシステム・バス18に結合される。主記
憶22は、メモリ・コントローラ24を介してシステム
・バス18に接続される。通常、主記憶は、ランダム・
アクセス・メモリ(RAM)を使用して実施され、1M
Bないし64MBの記憶容量を有する。大容量記憶は、
ディスク・コントローラ28を介してシステム・バス1
8に結合されるDASD(ディスク駆動装置)26によ
って提供される。
【0014】主記憶とキャッシュの間のオペランドまた
は命令の転送は、通常は、ブロックと称する固定長の単
位で行われる。データのブロックは、トラック、セク
タ、ライン、バイトなど、当技術分野で既知の変化する
サイズで転送できる。しかし、主記憶とキャッシュのデ
ータ・アレイの両方が、通常は、複数のキャッシュ・ラ
インに分割され、キャッシュ・ラインのサイズは、すべ
て同一であり、通常は4バイトから64バイトの間の範
囲のサイズの複数のワードが含まれるので、通常は、1
つまたは複数のラインのブロックが転送される。本明細
書では、キャッシュ・ラインを転送の単位として説明す
るが、本発明は、任意のサイズまたは任意の種類のデー
タ転送単位と共に実施できる。
は命令の転送は、通常は、ブロックと称する固定長の単
位で行われる。データのブロックは、トラック、セク
タ、ライン、バイトなど、当技術分野で既知の変化する
サイズで転送できる。しかし、主記憶とキャッシュのデ
ータ・アレイの両方が、通常は、複数のキャッシュ・ラ
インに分割され、キャッシュ・ラインのサイズは、すべ
て同一であり、通常は4バイトから64バイトの間の範
囲のサイズの複数のワードが含まれるので、通常は、1
つまたは複数のラインのブロックが転送される。本明細
書では、キャッシュ・ラインを転送の単位として説明す
るが、本発明は、任意のサイズまたは任意の種類のデー
タ転送単位と共に実施できる。
【0015】プロセッサ12は、L1キャッシュ14、
L2キャッシュ20及び主記憶22を含む多重レベル記
憶システムに対してメモリ要求を発行する。プロセッサ
12は、L1キャッシュ14に物理アドレスを送ること
によってメモリ要求を開始する。キャッシュは、この物
理アドレスをそのアドレス・タグのすべてと比較して、
データのコピーを保持しているかどうかを調べる。L1
キャッシュ14でキャッシュ・ライン(修正済みであれ
クリーンであれ)にヒットした場合、L2コントローラ
またはバス・インターフェース・ユニット(BIU)に
よるそれ以上の処理は不要である。L1キャッシュ14
でのミスは、通常は、命令のミス、データのロードまた
はストアのミス、ライトスルー動作もしくはキャッシュ
管理命令の結果であるが、これが発生すると、L2キャ
ッシュ要求がもたらされる。L2キャッシュ20でヒッ
トが観察される場合、要求されたキャッシュ・ライン
は、L1キャッシュ14に転送され、プロセッサから使
用できるようにされる。キャッシュ要求が、L1キャッ
シュ14とL2キャッシュ20の両方でミスした場合、
BUIによって、要求されたラインに関する主記憶から
の「ラインフィル」を求めるメモリ要求が行われる。要
求されたライン(ブロック転送であることがしばしばで
ある)は、主記憶からBIUに返され、要求されたキャ
ッシュ・ラインは、L1キャッシュ14とL2キャッシ
ュ20の両方に転送される。
L2キャッシュ20及び主記憶22を含む多重レベル記
憶システムに対してメモリ要求を発行する。プロセッサ
12は、L1キャッシュ14に物理アドレスを送ること
によってメモリ要求を開始する。キャッシュは、この物
理アドレスをそのアドレス・タグのすべてと比較して、
データのコピーを保持しているかどうかを調べる。L1
キャッシュ14でキャッシュ・ライン(修正済みであれ
クリーンであれ)にヒットした場合、L2コントローラ
またはバス・インターフェース・ユニット(BIU)に
よるそれ以上の処理は不要である。L1キャッシュ14
でのミスは、通常は、命令のミス、データのロードまた
はストアのミス、ライトスルー動作もしくはキャッシュ
管理命令の結果であるが、これが発生すると、L2キャ
ッシュ要求がもたらされる。L2キャッシュ20でヒッ
トが観察される場合、要求されたキャッシュ・ライン
は、L1キャッシュ14に転送され、プロセッサから使
用できるようにされる。キャッシュ要求が、L1キャッ
シュ14とL2キャッシュ20の両方でミスした場合、
BUIによって、要求されたラインに関する主記憶から
の「ラインフィル」を求めるメモリ要求が行われる。要
求されたライン(ブロック転送であることがしばしばで
ある)は、主記憶からBIUに返され、要求されたキャ
ッシュ・ラインは、L1キャッシュ14とL2キャッシ
ュ20の両方に転送される。
【0016】その後、同一のインデックスを有する別の
キャッシュ・ラインへのメモリ・アクセスが、L1キャ
ッシュ14で発生する可能性がある。前に転送されたキ
ャッシュ・ラインが、最新のメモリ要求に対応するため
にL1キャッシュ・コントローラによって(L1 LR
U機構に従って)置換される場合、より大きいL2キャ
ッシュ20には、置換されたキャッシュ・ラインがまだ
保持されている可能性があり、これによって、プロセッ
サが、必要な時にそのラインをL1キャッシュ14に転
送することによってそのラインにアクセスできるように
なる。
キャッシュ・ラインへのメモリ・アクセスが、L1キャ
ッシュ14で発生する可能性がある。前に転送されたキ
ャッシュ・ラインが、最新のメモリ要求に対応するため
にL1キャッシュ・コントローラによって(L1 LR
U機構に従って)置換される場合、より大きいL2キャ
ッシュ20には、置換されたキャッシュ・ラインがまだ
保持されている可能性があり、これによって、プロセッ
サが、必要な時にそのラインをL1キャッシュ14に転
送することによってそのラインにアクセスできるように
なる。
【0017】主記憶22に、キャッシュ・フィルが試み
られた位置が含まれない場合、このデータを含むページ
が、DASD26からアクセスされ、その後、キャッシ
ュ・フィルが完了し、メモリ・アクセスが満足される。
DASD26からページを取得し、主記憶22に書き込
むのに必要な時間は、数千CPUサイクルになり、この
間、CPUは、通常通りに別のタスクに切り替えられる
か機能を停止し、要求を満たすデータを待つ。最適の性
能を得るための目的は、L1キャッシュ14及びL2キ
ャッシュ20に、局所性と即時性の原理に基づいて次に
使用される可能性が最も高いデータが格納されることで
あり、これは、CPU上で実行中のタスクによって最も
最近に使用されたデータをキャッシュ内に維持すること
によって近似される。
られた位置が含まれない場合、このデータを含むページ
が、DASD26からアクセスされ、その後、キャッシ
ュ・フィルが完了し、メモリ・アクセスが満足される。
DASD26からページを取得し、主記憶22に書き込
むのに必要な時間は、数千CPUサイクルになり、この
間、CPUは、通常通りに別のタスクに切り替えられる
か機能を停止し、要求を満たすデータを待つ。最適の性
能を得るための目的は、L1キャッシュ14及びL2キ
ャッシュ20に、局所性と即時性の原理に基づいて次に
使用される可能性が最も高いデータが格納されることで
あり、これは、CPU上で実行中のタスクによって最も
最近に使用されたデータをキャッシュ内に維持すること
によって近似される。
【0018】キャッシュ・メモリでは、主記憶アドレス
をそれ自体の局所アドレスにマッピングするのに、異な
るマッピング技法が使用される。セット・アソシアティ
ブ・キャッシュでは、主記憶とキャッシュ・メモリの両
方が、N個のリフィル・ラインまたはN個のキャッシュ
・ラインの列に編成される。キャッシュは、主記憶の任
意の列のリフィル・ラインlを、キャッシュ自体のRA
Mデータ・アレイの任意のカラムのリフィル・ラインl
にマッピングできる。メモリに格納されたデータは、メ
モリ・アドレスのインデックス部分を利用してキャッシ
ュ・ラインにマッピングされる。このインデックス部分
は、通常は、同一のインデックスを有する複数のメモリ
・アドレスがキャッシュ内の同一の組のキャッシュ・ラ
インにマッピングされるように、アドレスの複数の下位
ビットから形成される。特定のメモリ・アドレスに関連
する、キャッシュ記憶されたデータは、アドレス・タグ
によって、同一のインデックスを有する他のアドレス
(すなわち、同一の合同クラス内のアドレス)に関連す
るデータから区別される。このアドレス・タグは、通常
はアドレスの上位ビットであり、キャッシュ記憶された
データに関連するキャッシュ・タグ・メモリに格納され
る。データ・アレイに格納されたキャッシュ・ラインの
それぞれのタグ・アドレスは、有効性状況などの状況情
報と共に、タグ・メモリに格納される。
をそれ自体の局所アドレスにマッピングするのに、異な
るマッピング技法が使用される。セット・アソシアティ
ブ・キャッシュでは、主記憶とキャッシュ・メモリの両
方が、N個のリフィル・ラインまたはN個のキャッシュ
・ラインの列に編成される。キャッシュは、主記憶の任
意の列のリフィル・ラインlを、キャッシュ自体のRA
Mデータ・アレイの任意のカラムのリフィル・ラインl
にマッピングできる。メモリに格納されたデータは、メ
モリ・アドレスのインデックス部分を利用してキャッシ
ュ・ラインにマッピングされる。このインデックス部分
は、通常は、同一のインデックスを有する複数のメモリ
・アドレスがキャッシュ内の同一の組のキャッシュ・ラ
インにマッピングされるように、アドレスの複数の下位
ビットから形成される。特定のメモリ・アドレスに関連
する、キャッシュ記憶されたデータは、アドレス・タグ
によって、同一のインデックスを有する他のアドレス
(すなわち、同一の合同クラス内のアドレス)に関連す
るデータから区別される。このアドレス・タグは、通常
はアドレスの上位ビットであり、キャッシュ記憶された
データに関連するキャッシュ・タグ・メモリに格納され
る。データ・アレイに格納されたキャッシュ・ラインの
それぞれのタグ・アドレスは、有効性状況などの状況情
報と共に、タグ・メモリに格納される。
【0019】Nウェイ・セット・アソシアティブ・キャ
ッシュでは、メモリ位置が、特定のインデックスのキャ
ッシュ・ラインの組にマッピングされる。各インデック
スは、そのインデックスを共用するメモリ内のアドレス
の合同クラスを形成する。しかし、キャッシュの列また
は「ウェイ」の数(すなわち、所与の時点でキャッシュ
内に保持できる合同クラスのメンバの数)は、キャッシ
ュのサイズによって制限され、したがって、ウェイの数
は、クラス内のメンバの数より少ない。したがって、N
ウェイ・セット・アソシアティブ・キャッシュでは、キ
ャッシュ内の所与のインデックスにあるN個のメモリ位
置(キャッシュ・ライン)に各メモリ位置(キャッシュ
・ライン)がマッピングされ、このNは、合同クラスご
とにキャッシュによって維持されるウェイの数である。
ッシュでは、メモリ位置が、特定のインデックスのキャ
ッシュ・ラインの組にマッピングされる。各インデック
スは、そのインデックスを共用するメモリ内のアドレス
の合同クラスを形成する。しかし、キャッシュの列また
は「ウェイ」の数(すなわち、所与の時点でキャッシュ
内に保持できる合同クラスのメンバの数)は、キャッシ
ュのサイズによって制限され、したがって、ウェイの数
は、クラス内のメンバの数より少ない。したがって、N
ウェイ・セット・アソシアティブ・キャッシュでは、キ
ャッシュ内の所与のインデックスにあるN個のメモリ位
置(キャッシュ・ライン)に各メモリ位置(キャッシュ
・ライン)がマッピングされ、このNは、合同クラスご
とにキャッシュによって維持されるウェイの数である。
【0020】プロセッサ12のキャッシュ・コントロー
ラ機能または専用のキャッシュ・コントローラ・ハード
ウェアは、受け取ったメモリ要求がロード要求かストア
要求かを判定する。受け取ったメモリ要求がロード要求
の場合、プロセッサ12は、取り出されたキャッシュ・
ラインをL1キャッシュ14及びL2キャッシュ20の
両方にロードする。受け取ったメモリ要求がストア要求
の場合、プロセッサ12は、取り出したキャッシュ・ラ
インをL1キャッシュ14及びL2キャッシュ20の両
方にロードする。
ラ機能または専用のキャッシュ・コントローラ・ハード
ウェアは、受け取ったメモリ要求がロード要求かストア
要求かを判定する。受け取ったメモリ要求がロード要求
の場合、プロセッサ12は、取り出されたキャッシュ・
ラインをL1キャッシュ14及びL2キャッシュ20の
両方にロードする。受け取ったメモリ要求がストア要求
の場合、プロセッサ12は、取り出したキャッシュ・ラ
インをL1キャッシュ14及びL2キャッシュ20の両
方にロードする。
【0021】図示の実施例によれば、データ処理システ
ム用のキャッシュ管理システムでは、ストアによって開
始されたキャッシュ・アクセスの処理中にL2キャッシ
ュ20内の古くなったキャッシュ・ラインのうちのある
クラスを除去することによって、L2キャッシュ20の
効率が改善される。ストアによって開始されたキャッシ
ュ・アクセスでL1キャッシュ・タグ15内でヒットが
発生する時には、ストアは、L1キャッシュ・アレイ1
6内のキャッシュ・ラインに対して実行され、そのキャ
ッシュ・ラインは、修正済みとマークされる。それと同
時またはその後に、そのキャッシュ・ラインに関するテ
ーブル索引がL2キャッシュ・タグ23で開始され、そ
のキャッシュ・ラインは、L2キャッシュ・アレイ25
内で無効化される。これによって、この古くなった、し
たがって、不要なキャッシュ・ラインをL2キャッシュ
20から除去することによって、メモリ性能が改善され
る。これによって、L2キャッシュ20で余分のタグ
(ウェイ)が解放されることも諒解されるであろう。こ
れによって、追加の有効なキャッシュ・ラインをL2キ
ャッシュ20にロードでき、その後、これをプロセッサ
がアクセスできるようになる。このL2キャッシュ20
でのキャッシュ・ラインの配置によって、このキャッシ
ュ・ラインに関するメモリ・アクセス遅延が減少する。
また、従来技術に関連する問題が防止される。これは、
このインデクシングされるキャッシュ・ラインの置換が
(L2 LRU機構に起因して)、キャッシュ・ライン
のインデックスに関連する4つのセクタのうちのいくつ
が有効であり、修正済みであるかに応じて、4つまでの
キャッシュ・ラインの主記憶へのキャスト・アウトをも
たらすという問題である。
ム用のキャッシュ管理システムでは、ストアによって開
始されたキャッシュ・アクセスの処理中にL2キャッシ
ュ20内の古くなったキャッシュ・ラインのうちのある
クラスを除去することによって、L2キャッシュ20の
効率が改善される。ストアによって開始されたキャッシ
ュ・アクセスでL1キャッシュ・タグ15内でヒットが
発生する時には、ストアは、L1キャッシュ・アレイ1
6内のキャッシュ・ラインに対して実行され、そのキャ
ッシュ・ラインは、修正済みとマークされる。それと同
時またはその後に、そのキャッシュ・ラインに関するテ
ーブル索引がL2キャッシュ・タグ23で開始され、そ
のキャッシュ・ラインは、L2キャッシュ・アレイ25
内で無効化される。これによって、この古くなった、し
たがって、不要なキャッシュ・ラインをL2キャッシュ
20から除去することによって、メモリ性能が改善され
る。これによって、L2キャッシュ20で余分のタグ
(ウェイ)が解放されることも諒解されるであろう。こ
れによって、追加の有効なキャッシュ・ラインをL2キ
ャッシュ20にロードでき、その後、これをプロセッサ
がアクセスできるようになる。このL2キャッシュ20
でのキャッシュ・ラインの配置によって、このキャッシ
ュ・ラインに関するメモリ・アクセス遅延が減少する。
また、従来技術に関連する問題が防止される。これは、
このインデクシングされるキャッシュ・ラインの置換が
(L2 LRU機構に起因して)、キャッシュ・ライン
のインデックスに関連する4つのセクタのうちのいくつ
が有効であり、修正済みであるかに応じて、4つまでの
キャッシュ・ラインの主記憶へのキャスト・アウトをも
たらすという問題である。
【0022】ストアによって開始されたキャッシュ・ア
クセスが、L1キャッシュ・タグ15内でミスする場
合、L2キャッシュ・タグ23内でL2キャッシュのテ
ーブル索引を実行して、そのキャッシュ・ラインがL2
キャッシュ20に存在するかどうかを判定する。L2キ
ャッシュ・タグ23がヒットの応答を返す場合、そのキ
ャッシュ・ラインは、L2キャッシュ20からL1キャ
ッシュ14に転送され、ストアは、L1キャッシュ内の
キャッシュ・ラインに対して実行され、そのラインは、
修正済みとマークされる。やはり、L2キャッシュ20
に存在するキャッシュ・ラインは古くなり、キャッシュ
管理システムは、L2キャッシュ20からこの古くなっ
たキャッシュ・ラインを無効化する。下で説明するよう
に、このシステムでは、L1内で「ダーティ(変更済
み)」であるキャッシュ・ラインのためにL2内でアド
レス空間を維持する必要が除去される。
クセスが、L1キャッシュ・タグ15内でミスする場
合、L2キャッシュ・タグ23内でL2キャッシュのテ
ーブル索引を実行して、そのキャッシュ・ラインがL2
キャッシュ20に存在するかどうかを判定する。L2キ
ャッシュ・タグ23がヒットの応答を返す場合、そのキ
ャッシュ・ラインは、L2キャッシュ20からL1キャ
ッシュ14に転送され、ストアは、L1キャッシュ内の
キャッシュ・ラインに対して実行され、そのラインは、
修正済みとマークされる。やはり、L2キャッシュ20
に存在するキャッシュ・ラインは古くなり、キャッシュ
管理システムは、L2キャッシュ20からこの古くなっ
たキャッシュ・ラインを無効化する。下で説明するよう
に、このシステムでは、L1内で「ダーティ(変更済
み)」であるキャッシュ・ラインのためにL2内でアド
レス空間を維持する必要が除去される。
【0023】ここで図2を参照すると、第2レベル・キ
ャッシュで古くなったキャッシュ・ラインを除去するこ
とによる、プロセッサのメモリ性能を改善する方法の流
れ図が示されている。ステップ100で、キャッシュ管
理システムは遊休状態であり、キャッシュ・ラインに関
するメモリ要求を待っている。判断ブロック110で、
プロセッサのロード/ストア・ユニットまたは命令フェ
ッチャからキャッシュ・ラインに関するメモリ要求を受
け取ったかどうかを判定する。メモリ要求を受け取って
いない場合、キャッシュ管理システムは、ステップ10
0で遊休状態にとどまる。キャッシュ・ラインに関する
メモリ要求を受け取った場合、この方法では、L1テー
ブル索引をL1キャッシュ・タグ15で実行するかどう
かを判定する判断ブロック120に進む。メモリ要求が
L1キャッシュ・タグでヒットした場合、この処理は、
ステップ130に進んで、要求されたキャッシュ・ライ
ンを要求元の装置に返すことによってL1キャッシュ・
アクセスを完了する。
ャッシュで古くなったキャッシュ・ラインを除去するこ
とによる、プロセッサのメモリ性能を改善する方法の流
れ図が示されている。ステップ100で、キャッシュ管
理システムは遊休状態であり、キャッシュ・ラインに関
するメモリ要求を待っている。判断ブロック110で、
プロセッサのロード/ストア・ユニットまたは命令フェ
ッチャからキャッシュ・ラインに関するメモリ要求を受
け取ったかどうかを判定する。メモリ要求を受け取って
いない場合、キャッシュ管理システムは、ステップ10
0で遊休状態にとどまる。キャッシュ・ラインに関する
メモリ要求を受け取った場合、この方法では、L1テー
ブル索引をL1キャッシュ・タグ15で実行するかどう
かを判定する判断ブロック120に進む。メモリ要求が
L1キャッシュ・タグでヒットした場合、この処理は、
ステップ130に進んで、要求されたキャッシュ・ライ
ンを要求元の装置に返すことによってL1キャッシュ・
アクセスを完了する。
【0024】その後、判断ブロック140で、メモリ要
求がストアによって開始されたメモリ要求とロードによ
って開始されたメモリ要求のどちらであるかを判定す
る。メモリ要求がストアによって開始されたアクセスで
ない場合、ステップ100に戻る。メモリ要求がストア
によって開始された場合、ステップ150に進んで、L
2キャッシュ・タグ23でのテーブル索引を行うことに
よって、L2キャッシュ20でメモリ要求を実行する。
ステップ160で、メモリ要求がL2キャッシュ・タグ
23でヒットしたかどうかを判定する。キャッシュ管理
システムがL2キャッシュ20内にデータの包含的な組
を維持せず、キャッシュ・ラインがL2キャッシュ20
に含まれない場合、キャッシュ・ラインは、L2キャッ
シュ・タグ23ではヒットせず、この処理はステップ1
00に戻る。キャッシュ・ラインがL2キャッシュ・タ
グ23でヒットする場合、ステップ170でそのキャッ
シュ・ラインをL2キャッシュ20内で無効化し、この
方法はステップ100に戻る。
求がストアによって開始されたメモリ要求とロードによ
って開始されたメモリ要求のどちらであるかを判定す
る。メモリ要求がストアによって開始されたアクセスで
ない場合、ステップ100に戻る。メモリ要求がストア
によって開始された場合、ステップ150に進んで、L
2キャッシュ・タグ23でのテーブル索引を行うことに
よって、L2キャッシュ20でメモリ要求を実行する。
ステップ160で、メモリ要求がL2キャッシュ・タグ
23でヒットしたかどうかを判定する。キャッシュ管理
システムがL2キャッシュ20内にデータの包含的な組
を維持せず、キャッシュ・ラインがL2キャッシュ20
に含まれない場合、キャッシュ・ラインは、L2キャッ
シュ・タグ23ではヒットせず、この処理はステップ1
00に戻る。キャッシュ・ラインがL2キャッシュ・タ
グ23でヒットする場合、ステップ170でそのキャッ
シュ・ラインをL2キャッシュ20内で無効化し、この
方法はステップ100に戻る。
【0025】メモリ要求からのキャッシュ・ラインがL
2キャッシュ・タグ23内でヒットしない場合、この方
法は、判断ブロック120からステップ180に進む。
ステップ180では、キャッシュ・ラインに関するテー
ブル索引をL2キャッシュ・タグ23内で実行し、判断
ブロック190で、キャッシュ・ラインに関するヒット
が発生したかどうかを判定する。L2キャッシュ・タグ
23でヒットが発生しない場合、そのキャッシュ・ライ
ンは、主記憶からL1キャッシュ14とL2キャッシュ
20の両方にロードされ、L1キャッシュ14のアクセ
スが、ステップ200で完了する。その後、この方法は
ステップ100に戻る。
2キャッシュ・タグ23内でヒットしない場合、この方
法は、判断ブロック120からステップ180に進む。
ステップ180では、キャッシュ・ラインに関するテー
ブル索引をL2キャッシュ・タグ23内で実行し、判断
ブロック190で、キャッシュ・ラインに関するヒット
が発生したかどうかを判定する。L2キャッシュ・タグ
23でヒットが発生しない場合、そのキャッシュ・ライ
ンは、主記憶からL1キャッシュ14とL2キャッシュ
20の両方にロードされ、L1キャッシュ14のアクセ
スが、ステップ200で完了する。その後、この方法は
ステップ100に戻る。
【0026】ステップ190でのL2キャッシュ・タグ
23でのテーブル索引がヒットをもたらす場合、この方
法は、ステップ210に進んで、要求されたキャッシュ
・ラインがL2キャッシュ20からL1キャッシュ14
へ転送され、L1キャッシュ14からメモリ・アクセス
が完了する。その後、この方法では、判断ブロック22
0で元のメモリ要求がストアによって開始されたかどう
かを判定する。元のメモリ要求がストアによって開始さ
れた場合、この処理は、ステップ170に進んで、L2
キャッシュ20のキャッシュ・ラインを無効化する。判
断ブロック220の判定でメモリ要求がストアによって
開始されたものでない場合、または、ステップ170で
L2キャッシュ20のキャッシュ・ラインを無効化した
後には、この処理はステップ100に戻る。
23でのテーブル索引がヒットをもたらす場合、この方
法は、ステップ210に進んで、要求されたキャッシュ
・ラインがL2キャッシュ20からL1キャッシュ14
へ転送され、L1キャッシュ14からメモリ・アクセス
が完了する。その後、この方法では、判断ブロック22
0で元のメモリ要求がストアによって開始されたかどう
かを判定する。元のメモリ要求がストアによって開始さ
れた場合、この処理は、ステップ170に進んで、L2
キャッシュ20のキャッシュ・ラインを無効化する。判
断ブロック220の判定でメモリ要求がストアによって
開始されたものでない場合、または、ステップ170で
L2キャッシュ20のキャッシュ・ラインを無効化した
後には、この処理はステップ100に戻る。
【0027】まとめとして、本発明の構成に関して以下
の事項を開示する。
の事項を開示する。
【0028】(1)第1レベル・メモリでキャッシュ・
ラインに関するメモリ要求を受け取るステップと、メモ
リ要求がストアによって開始されたかどうかを判定する
ステップと、メモリ要求が第1レベル・メモリでのヒッ
トをもたらし、メモリ要求がストアによって開始された
と判定される場合に、第2レベル・メモリの対応するキ
ャッシュ・ラインを無効化するステップとを含む、デー
タ処理システムのメモリ性能を強化する方法。 (2)メモリ要求が、プロセッサによって生成されるこ
とを特徴とする、上記(1)に記載の方法。 (3)メモリ要求を発行するプロセッサと、発行された
メモリ要求をサービスするためにプロセッサに結合さ
れ、第1レベル・メモリと第2レベル・メモリとを含む
多重レベル記憶システムと、キャッシュ・ラインに関す
るプロセッサによるメモリ要求を受け取り、メモリ要求
がストアによって開始されたものであり、第1レベル・
メモリでのヒットをもたらす場合に、第2レベル・メモ
リのキャッシュ・ラインを無効化するキャッシュ・コン
トローラとを含む、強化されたメモリ性能を有するデー
タ処理システム。 (4)第1レベル・メモリが、第1レベル・キャッシュ
であることを特徴とする、上記(3)に記載のデータ処
理システム。 (5)第2レベル・メモリが、第2レベル・キャッシュ
であることを特徴とする、上記(3)に記載のデータ処
理システム。 (6)第1レベル・メモリでキャッシュ・ラインに関す
るメモリ要求を受け取るための回路と、メモリ要求がス
トアによって開始されたかどうかを判定するための回路
と、メモリ要求が第1レベル・メモリでのヒットをもた
らし、メモリ要求がストアによって開始されたと判定さ
れる場合に、第2レベル・メモリの対応するキャッシュ
・ラインを無効化するための回路とを含む、強化された
メモリ性能を有するデータ処理システム。 (7)第1レベル・メモリが、第1レベル・キャッシュ
であることを特徴とする、上記(6)に記載のデータ処
理システム。 (8)第2レベル・メモリが、第2レベル・キャッシュ
であることを特徴とする、上記(6)に記載のデータ処
理システム。
ラインに関するメモリ要求を受け取るステップと、メモ
リ要求がストアによって開始されたかどうかを判定する
ステップと、メモリ要求が第1レベル・メモリでのヒッ
トをもたらし、メモリ要求がストアによって開始された
と判定される場合に、第2レベル・メモリの対応するキ
ャッシュ・ラインを無効化するステップとを含む、デー
タ処理システムのメモリ性能を強化する方法。 (2)メモリ要求が、プロセッサによって生成されるこ
とを特徴とする、上記(1)に記載の方法。 (3)メモリ要求を発行するプロセッサと、発行された
メモリ要求をサービスするためにプロセッサに結合さ
れ、第1レベル・メモリと第2レベル・メモリとを含む
多重レベル記憶システムと、キャッシュ・ラインに関す
るプロセッサによるメモリ要求を受け取り、メモリ要求
がストアによって開始されたものであり、第1レベル・
メモリでのヒットをもたらす場合に、第2レベル・メモ
リのキャッシュ・ラインを無効化するキャッシュ・コン
トローラとを含む、強化されたメモリ性能を有するデー
タ処理システム。 (4)第1レベル・メモリが、第1レベル・キャッシュ
であることを特徴とする、上記(3)に記載のデータ処
理システム。 (5)第2レベル・メモリが、第2レベル・キャッシュ
であることを特徴とする、上記(3)に記載のデータ処
理システム。 (6)第1レベル・メモリでキャッシュ・ラインに関す
るメモリ要求を受け取るための回路と、メモリ要求がス
トアによって開始されたかどうかを判定するための回路
と、メモリ要求が第1レベル・メモリでのヒットをもた
らし、メモリ要求がストアによって開始されたと判定さ
れる場合に、第2レベル・メモリの対応するキャッシュ
・ラインを無効化するための回路とを含む、強化された
メモリ性能を有するデータ処理システム。 (7)第1レベル・メモリが、第1レベル・キャッシュ
であることを特徴とする、上記(6)に記載のデータ処
理システム。 (8)第2レベル・メモリが、第2レベル・キャッシュ
であることを特徴とする、上記(6)に記載のデータ処
理システム。
【図1】好ましい実施例に従って情報を処理するための
データ処理システムのブロック図である。
データ処理システムのブロック図である。
【図2】好ましい実施例に従って第2レベル・キャッシ
ュの古いキャッシュ・ラインを除去することによって、
プロセッサのメモリ性能を強化する方法の流れ図であ
る。
ュの古いキャッシュ・ラインを除去することによって、
プロセッサのメモリ性能を強化する方法の流れ図であ
る。
10 データ処理システム 12 プロセッサ 14 L1キャッシュ 15 L1キャッシュ・タグ 16 L1キャッシュ・アレイ 17 局所バス 18 システム・バス 20 L2キャッシュ 21 アドレス線及びデータ線 22 主記憶 23 L2キャッシュ・タグ 24 メモリ・コントローラ 25 L2キャッシュ・アレイ 26 DASD(ディスク駆動装置) 28 ディスク・コントローラ
Claims (8)
- 【請求項1】第1レベル・メモリでキャッシュ・ライン
に関するメモリ要求を受け取るステップと、 メモリ要求がストアによって開始されたかどうかを判定
するステップと、 メモリ要求が第1レベル・メモリでのヒットをもたら
し、メモリ要求がストアによって開始されたと判定され
る場合に、第2レベル・メモリの対応するキャッシュ・
ラインを無効化するステップとを含む、データ処理シス
テムのメモリ性能を強化する方法。 - 【請求項2】メモリ要求が、プロセッサによって生成さ
れることを特徴とする、請求項1に記載の方法。 - 【請求項3】メモリ要求を発行するプロセッサと、 発行されたメモリ要求をサービスするためにプロセッサ
に結合され、第1レベル・メモリと第2レベル・メモリ
とを含む多重レベル記憶システムと、 キャッシュ・ラインに関するプロセッサによるメモリ要
求を受け取り、メモリ要求がストアによって開始された
ものであり、第1レベル・メモリでのヒットをもたらす
場合に、第2レベル・メモリのキャッシュ・ラインを無
効化するキャッシュ・コントローラとを含む、強化され
たメモリ性能を有するデータ処理システム。 - 【請求項4】第1レベル・メモリが、第1レベル・キャ
ッシュであることを特徴とする、請求項3に記載のデー
タ処理システム。 - 【請求項5】第2レベル・メモリが、第2レベル・キャ
ッシュであることを特徴とする、請求項3に記載のデー
タ処理システム。 - 【請求項6】第1レベル・メモリでキャッシュ・ライン
に関するメモリ要求を受け取るための回路と、 メモリ要求がストアによって開始されたかどうかを判定
するための回路と、 メモリ要求が第1レベル・メモリでのヒットをもたら
し、メモリ要求がストアによって開始されたと判定され
る場合に、第2レベル・メモリの対応するキャッシュ・
ラインを無効化するための回路とを含む、強化されたメ
モリ性能を有するデータ処理システム。 - 【請求項7】第1レベル・メモリが、第1レベル・キャ
ッシュであることを特徴とする、請求項6に記載のデー
タ処理システム。 - 【請求項8】第2レベル・メモリが、第2レベル・キャ
ッシュであることを特徴とする、請求項6に記載のデー
タ処理システム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/740368 | 1996-10-28 | ||
US08/740,368 US5809526A (en) | 1996-10-28 | 1996-10-28 | Data processing system and method for selective invalidation of outdated lines in a second level memory in response to a memory request initiated by a store operation |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH10214226A true JPH10214226A (ja) | 1998-08-11 |
JP3262519B2 JP3262519B2 (ja) | 2002-03-04 |
Family
ID=24976210
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP29188297A Expired - Fee Related JP3262519B2 (ja) | 1996-10-28 | 1997-10-24 | 第2レベルキャッシュの古いラインの除去によるプロセッサのメモリ性能の強化方法及びシステム |
Country Status (3)
Country | Link |
---|---|
US (1) | US5809526A (ja) |
JP (1) | JP3262519B2 (ja) |
CN (1) | CN1093961C (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007058349A (ja) * | 2005-08-22 | 2007-03-08 | Fujitsu Ltd | キャッシュシステム |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
US5991851A (en) * | 1997-05-02 | 1999-11-23 | Enhanced Memory Systems, Inc. | Enhanced signal processing random access memory device utilizing a DRAM memory array integrated with an associated SRAM cache and internal refresh control |
US6715040B2 (en) * | 2001-01-05 | 2004-03-30 | Nec Electronics, Inc. | Performance improvement of a write instruction of a non-inclusive hierarchical cache memory unit |
US6857050B2 (en) * | 2002-06-10 | 2005-02-15 | Sun Microsystemes, Inc. | Data storage system using 3-party hand-off protocol to maintain a single coherent logical image |
US20060248287A1 (en) * | 2005-04-29 | 2006-11-02 | Ibm Corporation | Methods and arrangements for reducing latency and snooping cost in non-uniform cache memory architectures |
US7577795B2 (en) * | 2006-01-25 | 2009-08-18 | International Business Machines Corporation | Disowning cache entries on aging out of the entry |
US7757045B2 (en) * | 2006-03-13 | 2010-07-13 | Intel Corporation | Synchronizing recency information in an inclusive cache hierarchy |
US8225043B1 (en) * | 2010-01-15 | 2012-07-17 | Ambarella, Inc. | High performance caching for motion compensated video decoder |
US8612676B2 (en) | 2010-12-22 | 2013-12-17 | Intel Corporation | Two-level system main memory |
WO2013048493A1 (en) | 2011-09-30 | 2013-04-04 | Intel Corporation | Memory channel that supports near memory and far memory access |
US9465662B2 (en) * | 2011-10-17 | 2016-10-11 | Cavium, Inc. | Processor with efficient work queuing |
CN103399824B (zh) * | 2013-07-17 | 2016-07-27 | 北京航空航天大学 | 一种高速缓存中缓存不命中的状态保持方法与装置 |
US10275160B2 (en) | 2015-12-21 | 2019-04-30 | Intel Corporation | Method and apparatus to enable individual non volatile memory express (NVME) input/output (IO) Queues on differing network addresses of an NVME controller |
US10200376B2 (en) | 2016-08-24 | 2019-02-05 | Intel Corporation | Computer product, method, and system to dynamically provide discovery services for host nodes of target systems and storage resources in a network |
US10176116B2 (en) | 2016-09-28 | 2019-01-08 | Intel Corporation | Computer product, method, and system to provide discovery services to discover target storage resources and register a configuration of virtual target storage resources mapping to the target storage resources and an access control list of host nodes allowed to access the virtual target storage resources |
CN115712392A (zh) * | 2022-11-15 | 2023-02-24 | 中科芯集成电路有限公司 | 一种基于Buffer的Cache控制器及工作方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0461926B1 (en) * | 1990-06-15 | 1998-09-02 | Compaq Computer Corporation | Multilevel inclusion in multilevel cache hierarchies |
US5530832A (en) * | 1993-10-14 | 1996-06-25 | International Business Machines Corporation | System and method for practicing essential inclusion in a multiprocessor and cache hierarchy |
US5510934A (en) * | 1993-12-15 | 1996-04-23 | Silicon Graphics, Inc. | Memory system including local and global caches for storing floating point and integer data |
US5564035A (en) * | 1994-03-23 | 1996-10-08 | Intel Corporation | Exclusive and/or partially inclusive extension cache system and method to minimize swapping therein |
US5577227A (en) * | 1994-08-04 | 1996-11-19 | Finnell; James S. | Method for decreasing penalty resulting from a cache miss in multi-level cache system |
US5584013A (en) * | 1994-12-09 | 1996-12-10 | International Business Machines Corporation | Hierarchical cache arrangement wherein the replacement of an LRU entry in a second level cache is prevented when the cache entry is the only inclusive entry in the first level cache |
-
1996
- 1996-10-28 US US08/740,368 patent/US5809526A/en not_active Expired - Fee Related
-
1997
- 1997-09-26 CN CN97119632A patent/CN1093961C/zh not_active Expired - Fee Related
- 1997-10-24 JP JP29188297A patent/JP3262519B2/ja not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007058349A (ja) * | 2005-08-22 | 2007-03-08 | Fujitsu Ltd | キャッシュシステム |
Also Published As
Publication number | Publication date |
---|---|
US5809526A (en) | 1998-09-15 |
CN1181544A (zh) | 1998-05-13 |
CN1093961C (zh) | 2002-11-06 |
JP3262519B2 (ja) | 2002-03-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4486750B2 (ja) | テンポラリ命令及び非テンポラリ命令用の共用キャッシュ構造 | |
US7698508B2 (en) | System and method for reducing unnecessary cache operations | |
US6078992A (en) | Dirty line cache | |
EP0695996B1 (en) | Multi-level cache system | |
US7266647B2 (en) | List based method and apparatus for selective and rapid cache flushes | |
US6766419B1 (en) | Optimization of cache evictions through software hints | |
US5926829A (en) | Hybrid NUMA COMA caching system and methods for selecting between the caching modes | |
JP3795985B2 (ja) | コンピュータメモリシステムの競合キャッシュ | |
US8909871B2 (en) | Data processing system and method for reducing cache pollution by write stream memory access patterns | |
JP3262519B2 (ja) | 第2レベルキャッシュの古いラインの除去によるプロセッサのメモリ性能の強化方法及びシステム | |
JP3281893B2 (ja) | キャッシュ・メモリ階層内で利用するキャッシュ・コヒーレンシ機構を実施するための方法およびシステム | |
US5715427A (en) | Semi-associative cache with MRU/LRU replacement | |
JPH04233048A (ja) | 多重レベルキャッシュの制御方法及び装置 | |
US5737751A (en) | Cache memory management system having reduced reloads to a second level cache for enhanced memory performance in a data processing system | |
JP2000250812A (ja) | メモリ・キャッシュ・システムおよびその管理方法 | |
EP1388065A2 (en) | Method and system for speculatively invalidating lines in a cache | |
JPS61156346A (ja) | 記憶階層の先取り装置 | |
US8621152B1 (en) | Transparent level 2 cache that uses independent tag and valid random access memory arrays for cache access | |
EP0936552B1 (en) | Pseudo precise I-cache inclusivity for vertical caches | |
US20030084253A1 (en) | Identification of stale entries in a computer cache | |
US8473686B2 (en) | Computer cache system with stratified replacement | |
US6347363B1 (en) | Merged vertical cache controller mechanism with combined cache controller and snoop queries for in-line caches | |
US6792498B2 (en) | Memory system with mechanism for assisting a cache memory | |
JP2001249846A (ja) | キャッシュメモリ装置及びデータ処理システム | |
US20030033483A1 (en) | Cache architecture to reduce leakage power consumption |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
LAPS | Cancellation because of no payment of annual fees |