JP3463292B2 - キャッシュ動作要求間の競合に応答して置換用の代替キャッシュ・エントリを選択する方法及びシステム - Google Patents
キャッシュ動作要求間の競合に応答して置換用の代替キャッシュ・エントリを選択する方法及びシステムInfo
- Publication number
- JP3463292B2 JP3463292B2 JP10281398A JP10281398A JP3463292B2 JP 3463292 B2 JP3463292 B2 JP 3463292B2 JP 10281398 A JP10281398 A JP 10281398A JP 10281398 A JP10281398 A JP 10281398A JP 3463292 B2 JP3463292 B2 JP 3463292B2
- Authority
- JP
- Japan
- Prior art keywords
- entry
- cache
- identified
- replacement
- request
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
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/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/126—Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
- G06F12/127—Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning using additional replacement algorithms
-
- 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/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
【0001】
【発明の利用分野】本発明は、データ処理システムにお
けるキャッシュを管理する方法及びシステムに係り、更
に詳細に説明すれば、2つのキャッシュ動作要求間の競
合(conflict)に応答して置換用の代替キャッシュ・エ
ントリを選択するキャッシュ管理方法及びシステムに係
る。
けるキャッシュを管理する方法及びシステムに係り、更
に詳細に説明すれば、2つのキャッシュ動作要求間の競
合(conflict)に応答して置換用の代替キャッシュ・エ
ントリを選択するキャッシュ管理方法及びシステムに係
る。
【0002】
【従来の技術】データ処理システムの性能を最大化する
ために、データ処理システム内のメモリは、1つ以上の
下位メモリ・レベルを有するように階層化されているの
が普通である。即ち、このような階層化メモリは、不揮
発性の記憶装置及び主記憶に加えて、1つ以上のキャッ
シュ・レベルを含む1つ以上の上位メモリ・レベルから
構成することができる。当業者には明らかなように、キ
ャッシュ・メモリは、主記憶に比較して小さな容量を有
し、その内部に格納されているデータ及び命令をデータ
処理システム内のプロセッサが比較的速やかにアクセス
することを可能にする。
ために、データ処理システム内のメモリは、1つ以上の
下位メモリ・レベルを有するように階層化されているの
が普通である。即ち、このような階層化メモリは、不揮
発性の記憶装置及び主記憶に加えて、1つ以上のキャッ
シュ・レベルを含む1つ以上の上位メモリ・レベルから
構成することができる。当業者には明らかなように、キ
ャッシュ・メモリは、主記憶に比較して小さな容量を有
し、その内部に格納されているデータ及び命令をデータ
処理システム内のプロセッサが比較的速やかにアクセス
することを可能にする。
【0003】通常のデータ処理システム内のキャッシュ
・メモリは、セット・アソシアティブ型として編成され
ている。即ち、データの主記憶アドレスを使用して、こ
のデータを格納可能な複数のエントリ又はメンバを含ん
でいる特定のコングルエンス・クラスに対し、このデー
タをマップするようになっている。キャッシュ内にデー
タ(命令を含む)が格納されていることを表示するた
め、その主記憶アドレスの予定のアドレス・ビットを選
択して得られたタグを、キャッシュ・ディレクトリ内に
記録する。かくて、一の要求アドレスを受け取ると、キ
ャッシュ・ディレクトリ内の論理は、この要求アドレス
がマップされたコングルエンス・クラスに対応する特定
のディレクトリ・セット内に格納済みのタグの各々を、
この要求アドレスのタグ・ビットと比較し、要求データ
がキャッシュ内に存在するか否かを決定する。もし、要
求データがキャッシュ内に存在すれば、「ヒット」が生
じ、この要求データが要求の型に応じて処理されること
になる。他方、要求データがキャッシュ内に存在しなけ
れば、「ミス」が生じる。もし、一の読み取り要求に応
答してミスが生じれば、この要求アドレスがマップされ
たコングルエンス・クラス内にある一のエントリの内容
を、要求データで以て置換しなければならない(即ち、
キャストアウト)。参照の局所性という原理に基づい
て、置換対象のエントリは、このコングルエンス・クラ
ス内で最も長い間使用されなかったエントリを決定する
処の、LRU(Least Recently Used )アルゴリズムに
従って選択されるのが普通である。
・メモリは、セット・アソシアティブ型として編成され
ている。即ち、データの主記憶アドレスを使用して、こ
のデータを格納可能な複数のエントリ又はメンバを含ん
でいる特定のコングルエンス・クラスに対し、このデー
タをマップするようになっている。キャッシュ内にデー
タ(命令を含む)が格納されていることを表示するた
め、その主記憶アドレスの予定のアドレス・ビットを選
択して得られたタグを、キャッシュ・ディレクトリ内に
記録する。かくて、一の要求アドレスを受け取ると、キ
ャッシュ・ディレクトリ内の論理は、この要求アドレス
がマップされたコングルエンス・クラスに対応する特定
のディレクトリ・セット内に格納済みのタグの各々を、
この要求アドレスのタグ・ビットと比較し、要求データ
がキャッシュ内に存在するか否かを決定する。もし、要
求データがキャッシュ内に存在すれば、「ヒット」が生
じ、この要求データが要求の型に応じて処理されること
になる。他方、要求データがキャッシュ内に存在しなけ
れば、「ミス」が生じる。もし、一の読み取り要求に応
答してミスが生じれば、この要求アドレスがマップされ
たコングルエンス・クラス内にある一のエントリの内容
を、要求データで以て置換しなければならない(即ち、
キャストアウト)。参照の局所性という原理に基づい
て、置換対象のエントリは、このコングルエンス・クラ
ス内で最も長い間使用されなかったエントリを決定する
処の、LRU(Least Recently Used )アルゴリズムに
従って選択されるのが普通である。
【0004】データ・コヒーレンシィ及び一貫性を維持
するために、多重プロセッサ形式のデータ処理システム
は、ディレクトリ型又はスヌープ型の通信プロトコルを
使用して、このデータ処理システム内の他の場所でデー
タ・アクセスが行われていることを各キャッシュ・メモ
リに通知するのが普通である。これらのキャッシュは、
以下で「スヌープ要求」と呼ばれるデータ・アクセス情
報を使用するとともに、このデータ処理システム内で実
現されているコヒーレンシイ・プロトコルに基づいて、
データの無効化、データの書き戻し、ディレクトリ内に
格納されているコヒーレンシイ状態の更新、又は他の適
当なアクションを行う。
するために、多重プロセッサ形式のデータ処理システム
は、ディレクトリ型又はスヌープ型の通信プロトコルを
使用して、このデータ処理システム内の他の場所でデー
タ・アクセスが行われていることを各キャッシュ・メモ
リに通知するのが普通である。これらのキャッシュは、
以下で「スヌープ要求」と呼ばれるデータ・アクセス情
報を使用するとともに、このデータ処理システム内で実
現されているコヒーレンシイ・プロトコルに基づいて、
データの無効化、データの書き戻し、ディレクトリ内に
格納されているコヒーレンシイ状態の更新、又は他の適
当なアクションを行う。
【0005】
【発明が解決しようとする課題】本発明の基礎をなす認
識とは、一のキャッシュが受け取ったスヌープ要求がこ
のキャッシュに関連するプロセッサから受け取ったキャ
ッシュ動作要求と競合する場合には、問題が生じうる、
というものである。例えば、一のスヌープ要求が当該キ
ャッシュに対し特定のディレクトリ・エントリを更新す
ることを要求している状況下で、このスヌープ要求と同
じコングルエンス・クラスにマップされる一の読み取り
要求が当該キャッシュ内でミスすれば、このミスに応答
して置換アルゴリズムによって選択される置換用のコン
グルエンス・クラス・エントリが、このスヌープ要求に
応答して更新しなければならないディレクトリ・エント
リと同じになることがあり得る。このシナリオに応答す
る場合、通常のキャッシュは、スヌープ要求が必要とす
る更新が行われるまで、読み取り要求のサービスを遅延
させているので、データの待ち時間が生じてプロセッサ
の性能を低下させることになる。
識とは、一のキャッシュが受け取ったスヌープ要求がこ
のキャッシュに関連するプロセッサから受け取ったキャ
ッシュ動作要求と競合する場合には、問題が生じうる、
というものである。例えば、一のスヌープ要求が当該キ
ャッシュに対し特定のディレクトリ・エントリを更新す
ることを要求している状況下で、このスヌープ要求と同
じコングルエンス・クラスにマップされる一の読み取り
要求が当該キャッシュ内でミスすれば、このミスに応答
して置換アルゴリズムによって選択される置換用のコン
グルエンス・クラス・エントリが、このスヌープ要求に
応答して更新しなければならないディレクトリ・エント
リと同じになることがあり得る。このシナリオに応答す
る場合、通常のキャッシュは、スヌープ要求が必要とす
る更新が行われるまで、読み取り要求のサービスを遅延
させているので、データの待ち時間が生じてプロセッサ
の性能を低下させることになる。
【0006】かくて、データ処理システムにおける改良
されたキャッシュ管理方法及びシステムを提供すること
が望まれている。特に、キャッシュ動作要求間の競合に
応答して置換用の代替キャッシュ・エントリを選択する
ための改良されたキャッシュ管理方法及びシステムを提
供することが望まれている。
されたキャッシュ管理方法及びシステムを提供すること
が望まれている。特に、キャッシュ動作要求間の競合に
応答して置換用の代替キャッシュ・エントリを選択する
ための改良されたキャッシュ管理方法及びシステムを提
供することが望まれている。
【0007】従って、本発明の目的は、データ処理シス
テムにおけるキャッシュ管理方法及びシステムを提供す
ることである。
テムにおけるキャッシュ管理方法及びシステムを提供す
ることである。
【0008】本発明の他の目的は、2つのキャッシュ動
作要求間の競合に応答して置換用の代替キャッシュ・エ
ントリを選択するためのキャッシュ管理方法及びシステ
ムを提供することである。
作要求間の競合に応答して置換用の代替キャッシュ・エ
ントリを選択するためのキャッシュ管理方法及びシステ
ムを提供することである。
【0009】
【課題を解決するための手段】本発明に従って、第1及
び第2のキャッシュ動作要求が受け取られる。第2のキ
ャッシュ動作要求を受け取ったことに応答して、キャッ
シュ内の複数のエントリのうち一のエントリが置換用と
して識別される。第1及び第2のキャッシュ動作要求間
の競合が存在すると、これに応答して、前記複数のエン
トリのうち前記識別された置換用のエントリとは異なる
一の代替エントリが置換される。1つの実施例では、第
1のキャッシュ動作要求が前記識別された置換用のエン
トリを指定する場合、第2のキャッシュ動作要求に応答
して後者の代替エントリが置換される。
び第2のキャッシュ動作要求が受け取られる。第2のキ
ャッシュ動作要求を受け取ったことに応答して、キャッ
シュ内の複数のエントリのうち一のエントリが置換用と
して識別される。第1及び第2のキャッシュ動作要求間
の競合が存在すると、これに応答して、前記複数のエン
トリのうち前記識別された置換用のエントリとは異なる
一の代替エントリが置換される。1つの実施例では、第
1のキャッシュ動作要求が前記識別された置換用のエン
トリを指定する場合、第2のキャッシュ動作要求に応答
して後者の代替エントリが置換される。
【0010】
【発明の実施の形態】図1には、本発明を有利に実施す
ることができるデータ処理システム10の実施例が示さ
れている。このデータ処理システム10は、多重プロセ
ッサ形式のデータ処理システムであって、2つ以上のプ
ロセッサ12を備えている。各プロセッサ12は、命令
及びデータ用のローカル記憶装置として作用する、オン
ボード形式のレベル1(L1)キャッシュ14を含んで
いる。各プロセッサ12は、キャッシュ・データ18及
びキャッシュ・ディレクトリ20を含む、それ自体のレ
ベル2(L2)キャッシュ16にそれぞれ結合されてい
る。他方、これらのL2キャッシュ16は、関連するプ
ロセッサ12が要求したデータ及び命令を主記憶26か
ら検索するために、共有システム・バス24にそれぞれ
結合されている。L2キャッシュ16の各々は、システ
ム・バス24上の通信トランザクションを監視(即ち、
スヌープ)することにより、データ処理システム10内
の他の場所で行われているデータ・アクセスに応答し
て、キャッシュ・ディレクトリ20の更新又はキャッシ
ュ・データ18の或る内容の書き戻しが必要であるか否
かを決定する。
ることができるデータ処理システム10の実施例が示さ
れている。このデータ処理システム10は、多重プロセ
ッサ形式のデータ処理システムであって、2つ以上のプ
ロセッサ12を備えている。各プロセッサ12は、命令
及びデータ用のローカル記憶装置として作用する、オン
ボード形式のレベル1(L1)キャッシュ14を含んで
いる。各プロセッサ12は、キャッシュ・データ18及
びキャッシュ・ディレクトリ20を含む、それ自体のレ
ベル2(L2)キャッシュ16にそれぞれ結合されてい
る。他方、これらのL2キャッシュ16は、関連するプ
ロセッサ12が要求したデータ及び命令を主記憶26か
ら検索するために、共有システム・バス24にそれぞれ
結合されている。L2キャッシュ16の各々は、システ
ム・バス24上の通信トランザクションを監視(即ち、
スヌープ)することにより、データ処理システム10内
の他の場所で行われているデータ・アクセスに応答し
て、キャッシュ・ディレクトリ20の更新又はキャッシ
ュ・データ18の或る内容の書き戻しが必要であるか否
かを決定する。
【0011】図2には、キャッシュ・ディレクトリ20
の一層詳細なブロック図が示されている。L2キャッシ
ュ16の各々は、8ウェイのセット・アソシアティブ型
キャッシュであって、64バイトのキャッシュ・ライン
を複数個有し、32ビットのアドレスを使用する。この
実施例において、各要求アドレスのビット17〜25
は、この要求アドレスをL2キャッシュ16の特定のコ
ングルエンス・クラスにマップするためのインデックス
を形成し、各要求アドレスのビット0〜16は、一のコ
ングルエンス・クラス・エントリ(即ち、ウェイ)に格
納された一のキャッシュ・ラインを一意に識別するため
のタグを形成し、各要求アドレスのビット26〜31
は、この要求アドレスが指定するデータと当該データが
属するキャッシュ・ラインの開始端との間のオフセット
を指定する。
の一層詳細なブロック図が示されている。L2キャッシ
ュ16の各々は、8ウェイのセット・アソシアティブ型
キャッシュであって、64バイトのキャッシュ・ライン
を複数個有し、32ビットのアドレスを使用する。この
実施例において、各要求アドレスのビット17〜25
は、この要求アドレスをL2キャッシュ16の特定のコ
ングルエンス・クラスにマップするためのインデックス
を形成し、各要求アドレスのビット0〜16は、一のコ
ングルエンス・クラス・エントリ(即ち、ウェイ)に格
納された一のキャッシュ・ラインを一意に識別するため
のタグを形成し、各要求アドレスのビット26〜31
は、この要求アドレスが指定するデータと当該データが
属するキャッシュ・ラインの開始端との間のオフセット
を指定する。
【0012】キャッシュ・ディレクトリ20は、タグ及
びコヒーレンシイ状態記憶装置30を備えている。この
記憶装置30が含んでいる複数のセット32の各々は、
キャッシュ・データ18内の一のコングルエンス・クラ
スにそれぞれ対応する。一のセット32は8つのメンバ
34を保持し、その各々は、当該セット32が関連する
コングルエンス・クラス内にある対応するエントリのタ
グ及びコヒーレンシイ状態を格納する。また、キャッシ
ュ・ディレクトリ20が備えているLRU論理40は、
キャッシュ・データ18の各コングルエンス・クラス内
にある各エントリの最新のアクセス状況を表すLRU標
識を格納する。かくて、各コングルエンス・クラスに関
連するLRU論理40内のLRU標識は、最も長い間ア
クセスされなかったエントリ、2番目に最も長い間アク
セスされなかったエントリ、3番目に最も長い間アクセ
スされなかったエントリ、等を特定する。一のコングル
エンス・クラスを指定するインデックス・ビットを受け
取ると、LRU論理40は、8ビットの復号化「LR
U」信号41を生成し、その「1」に設定した単一ビッ
トの位置を通して、指定されたコングルエンス・クラス
のLRUエントリを特定する。
びコヒーレンシイ状態記憶装置30を備えている。この
記憶装置30が含んでいる複数のセット32の各々は、
キャッシュ・データ18内の一のコングルエンス・クラ
スにそれぞれ対応する。一のセット32は8つのメンバ
34を保持し、その各々は、当該セット32が関連する
コングルエンス・クラス内にある対応するエントリのタ
グ及びコヒーレンシイ状態を格納する。また、キャッシ
ュ・ディレクトリ20が備えているLRU論理40は、
キャッシュ・データ18の各コングルエンス・クラス内
にある各エントリの最新のアクセス状況を表すLRU標
識を格納する。かくて、各コングルエンス・クラスに関
連するLRU論理40内のLRU標識は、最も長い間ア
クセスされなかったエントリ、2番目に最も長い間アク
セスされなかったエントリ、3番目に最も長い間アクセ
スされなかったエントリ、等を特定する。一のコングル
エンス・クラスを指定するインデックス・ビットを受け
取ると、LRU論理40は、8ビットの復号化「LR
U」信号41を生成し、その「1」に設定した単一ビッ
トの位置を通して、指定されたコングルエンス・クラス
のLRUエントリを特定する。
【0013】データ処理システム10の動作中、キャッ
シュ・ディレクトリ20は、その関連するプロセッサ1
2又はシステム・バス24からキャッシュ動作要求に関
連する要求アドレスを受け取ることができる。図2に示
すように、キャッシュ・ディレクトリ20が受け取る各
要求アドレスのインデックス・ビット17〜25は、タ
グ及びコヒーレンシイ状態記憶装置30と、LRU論理
40の両方に入力される。タグ及びコヒーレンシイ状態
記憶装置30は、これらのインデックス・ビットを使用
して一のセット32を選択する。次に、選択したセット
32の各メンバ34内に格納されている各タグを、要求
アドレスのタグ・ビットと個別に比較する。この比較に
使用する複数の比較手段42の各々は、比較結果に応じ
て、1ビットのマッチ出力をそれぞれ生成する。比較手
段42からの8ビット出力は、復号化「マッチ」信号4
4を形成し、これをマルチプレクサ50の第1の入力に
供給する。
シュ・ディレクトリ20は、その関連するプロセッサ1
2又はシステム・バス24からキャッシュ動作要求に関
連する要求アドレスを受け取ることができる。図2に示
すように、キャッシュ・ディレクトリ20が受け取る各
要求アドレスのインデックス・ビット17〜25は、タ
グ及びコヒーレンシイ状態記憶装置30と、LRU論理
40の両方に入力される。タグ及びコヒーレンシイ状態
記憶装置30は、これらのインデックス・ビットを使用
して一のセット32を選択する。次に、選択したセット
32の各メンバ34内に格納されている各タグを、要求
アドレスのタグ・ビットと個別に比較する。この比較に
使用する複数の比較手段42の各々は、比較結果に応じ
て、1ビットのマッチ出力をそれぞれ生成する。比較手
段42からの8ビット出力は、復号化「マッチ」信号4
4を形成し、これをマルチプレクサ50の第1の入力に
供給する。
【0014】マルチプレクサ50の第2の8ビット入力
は、「キャストアウト 犠牲エントリ」信号46を受け
取る。この信号46は、キャッシュ動作要求に応答して
置換可能な一のコングルエンス・クラス・エントリを特
定する。図3〜図5を参照して以下で詳述するように、
犠牲エントリ(victim)選択論理60は、要求アドレス
に関連するキャッシュ動作要求がキャッシュ・ディレク
トリ20によって受け取られる他のキャッシュ動作要求
と競合しない限り、「LRU」信号41を「キャストア
ウト 犠牲エントリ」信号46として出力する。しかし
ながら、2つのキャッシュ動作要求が競合する(又は潜
在的に競合する)場合には、「キャストアウト 犠牲エ
ントリ」信号46は、選択したコングルエンス・クラス
内にある(LRUエントリとは別の)一のエントリを特
定する。マルチプレクサ50は、NORゲート54から
の「ミス」信号52に応答して、その2つの8ビット入
力のうち1つを出力として選択する。かくて、マルチプ
レクサ50は、ヒットに応答して、8ビットの復号化信
号を出力することにより、要求アドレスに対応するデー
タを格納しているキャッシュ・ライン・エントリを特定
する。代替的に、マルチプレクサ50は、ミスに応答し
て、置換可能な一のコングルエンス・クラス・エントリ
を特定する8ビットの復号化信号を出力する。
は、「キャストアウト 犠牲エントリ」信号46を受け
取る。この信号46は、キャッシュ動作要求に応答して
置換可能な一のコングルエンス・クラス・エントリを特
定する。図3〜図5を参照して以下で詳述するように、
犠牲エントリ(victim)選択論理60は、要求アドレス
に関連するキャッシュ動作要求がキャッシュ・ディレク
トリ20によって受け取られる他のキャッシュ動作要求
と競合しない限り、「LRU」信号41を「キャストア
ウト 犠牲エントリ」信号46として出力する。しかし
ながら、2つのキャッシュ動作要求が競合する(又は潜
在的に競合する)場合には、「キャストアウト 犠牲エ
ントリ」信号46は、選択したコングルエンス・クラス
内にある(LRUエントリとは別の)一のエントリを特
定する。マルチプレクサ50は、NORゲート54から
の「ミス」信号52に応答して、その2つの8ビット入
力のうち1つを出力として選択する。かくて、マルチプ
レクサ50は、ヒットに応答して、8ビットの復号化信
号を出力することにより、要求アドレスに対応するデー
タを格納しているキャッシュ・ライン・エントリを特定
する。代替的に、マルチプレクサ50は、ミスに応答し
て、置換可能な一のコングルエンス・クラス・エントリ
を特定する8ビットの復号化信号を出力する。
【0015】キャッシュ・ディレクトリ20が備えてい
るデータ処理論理56は、「ミス」信号52及びマルチ
プレクサ50の8ビット出力に応答して、データ処理及
びキャッシュ更新動作を行う。例えば、データ処理論理
56は、読み取りミスに応答して、この要求アドレスを
含むキャッシュ・ラインを主記憶26から要求し、この
要求データを関連するプロセッサ12へ供給するととも
に、要求済みのキャッシュ・ラインをマルチプレクサ5
0の8ビット出力が指定するコングルエンス・クラス・
エントリ内に格納する。代替的に、データ処理論理56
は、読み取りヒットに応答して、要求アドレスに対応す
るデータを関連するプロセッサ12へ供給する。データ
処理論理56は、一のコングルエンス・クラス・エント
リへのアクセス又はその置換に応答して、「LRU 更
新」信号58を生成し、これをLRU論理40に与え
て、アクセスされたコングルエンス・クラスに関連する
LRU標識を更新させる。
るデータ処理論理56は、「ミス」信号52及びマルチ
プレクサ50の8ビット出力に応答して、データ処理及
びキャッシュ更新動作を行う。例えば、データ処理論理
56は、読み取りミスに応答して、この要求アドレスを
含むキャッシュ・ラインを主記憶26から要求し、この
要求データを関連するプロセッサ12へ供給するととも
に、要求済みのキャッシュ・ラインをマルチプレクサ5
0の8ビット出力が指定するコングルエンス・クラス・
エントリ内に格納する。代替的に、データ処理論理56
は、読み取りヒットに応答して、要求アドレスに対応す
るデータを関連するプロセッサ12へ供給する。データ
処理論理56は、一のコングルエンス・クラス・エント
リへのアクセス又はその置換に応答して、「LRU 更
新」信号58を生成し、これをLRU論理40に与え
て、アクセスされたコングルエンス・クラスに関連する
LRU標識を更新させる。
【0016】データ処理論理56は、スヌープ・ミスに
応答しないが、スヌープ・キュー70を使用してスヌー
プ・ヒットを処理する。図2の実施例では、スヌープ・
キュー70は、スヌープ処理論理の2つのインスタンス
(SN0及びSN1)から成る。この各インスタンス
は、スヌープ要求アドレスを格納するためのアドレス・
フィールドと、このスヌープ要求アドレスが指定するコ
ングルエンス・クラス・エントリの8ビットの復号化信
号を格納するためのエントリ・フィールドと、この指定
されたエントリのコヒーレンシイ状態を格納するための
メンバ値フィールドを有する。データ処理論理56は、
スヌープ・キュー70を備えているために、選択された
コヒーレンシイ・プロトコルに従って、2つのスヌープ
要求を同時にサポートすることができる。当業者には明
らかなように、スヌープ・キュー70のキューの深さを
大きくすれば、追加のスヌープ要求を同時にサポートす
ることができる。
応答しないが、スヌープ・キュー70を使用してスヌー
プ・ヒットを処理する。図2の実施例では、スヌープ・
キュー70は、スヌープ処理論理の2つのインスタンス
(SN0及びSN1)から成る。この各インスタンス
は、スヌープ要求アドレスを格納するためのアドレス・
フィールドと、このスヌープ要求アドレスが指定するコ
ングルエンス・クラス・エントリの8ビットの復号化信
号を格納するためのエントリ・フィールドと、この指定
されたエントリのコヒーレンシイ状態を格納するための
メンバ値フィールドを有する。データ処理論理56は、
スヌープ・キュー70を備えているために、選択された
コヒーレンシイ・プロトコルに従って、2つのスヌープ
要求を同時にサポートすることができる。当業者には明
らかなように、スヌープ・キュー70のキューの深さを
大きくすれば、追加のスヌープ要求を同時にサポートす
ることができる。
【0017】図3には、キャッシュ動作要求間の競合に
応答して置換用の代替キャッシュ・エントリを選択する
方法の実施例の論理的フローチャートが示されている。
このプロセスは、要求アドレスを含む一の読み取り要求
を受け取るときに、ブロック80で開始する。次のブロ
ック82で、キャッシュ・ディレクトリ20は、この読
み取り要求のヒットの有無を決定する。もし、ヒットす
れば、ブロック104に進み、そこでデータ処理論理5
6は、要求済みのデータをプロセッサ12に供給する。
次のブロック106で、LRU論理40は、この要求ア
ドレスがマップされたコングルエンス・クラスに関連す
るLRU標識を更新する。このプロセスは、その後のブ
ロック108で終了する。
応答して置換用の代替キャッシュ・エントリを選択する
方法の実施例の論理的フローチャートが示されている。
このプロセスは、要求アドレスを含む一の読み取り要求
を受け取るときに、ブロック80で開始する。次のブロ
ック82で、キャッシュ・ディレクトリ20は、この読
み取り要求のヒットの有無を決定する。もし、ヒットす
れば、ブロック104に進み、そこでデータ処理論理5
6は、要求済みのデータをプロセッサ12に供給する。
次のブロック106で、LRU論理40は、この要求ア
ドレスがマップされたコングルエンス・クラスに関連す
るLRU標識を更新する。このプロセスは、その後のブ
ロック108で終了する。
【0018】ブロック82に戻って、説明を続ける。も
し、この要求アドレスがキャッシュ・ディレクトリ20
内のヒットに帰着しなければ、ブロック84では、LR
U論理40によりこの要求アドレスがマップするコング
ルエンス・クラスのLRUエントリを決定する。次のブ
ロック86では、一のスヌープ要求が現にアクティブで
あるか否か、即ち、読み取り要求と実質的に同時に一の
スヌープ要求が受け取られたか否かという決定を行う。
もし、そうでなければ、次のステップ88では、スヌー
プ・キュー70がアクティブであるか否か、即ち、以前
に受け取られた一のスヌープ要求がスヌープ・キュー7
0の何れかのエントリ(SN0又はSN1)によって現
にサービスされているか否かという決定を行う。もし、
ブロック88の決定結果がNOであれば、ブロック92
に進み、そこで犠牲エントリ選択論理60がこのコング
ルエンス・クラスのLRUエントリを置換用の「犠牲エ
ントリ」として選択する。図2を参照して既に説明した
ように、置換すべきコングルエンス・クラス・エントリ
は、「キャストアウト 犠牲エントリ」信号46により
復号化形式で指定される。次に、このプロセスは、後述
するブロック102に進む。
し、この要求アドレスがキャッシュ・ディレクトリ20
内のヒットに帰着しなければ、ブロック84では、LR
U論理40によりこの要求アドレスがマップするコング
ルエンス・クラスのLRUエントリを決定する。次のブ
ロック86では、一のスヌープ要求が現にアクティブで
あるか否か、即ち、読み取り要求と実質的に同時に一の
スヌープ要求が受け取られたか否かという決定を行う。
もし、そうでなければ、次のステップ88では、スヌー
プ・キュー70がアクティブであるか否か、即ち、以前
に受け取られた一のスヌープ要求がスヌープ・キュー7
0の何れかのエントリ(SN0又はSN1)によって現
にサービスされているか否かという決定を行う。もし、
ブロック88の決定結果がNOであれば、ブロック92
に進み、そこで犠牲エントリ選択論理60がこのコング
ルエンス・クラスのLRUエントリを置換用の「犠牲エ
ントリ」として選択する。図2を参照して既に説明した
ように、置換すべきコングルエンス・クラス・エントリ
は、「キャストアウト 犠牲エントリ」信号46により
復号化形式で指定される。次に、このプロセスは、後述
するブロック102に進む。
【0019】もし、ブロック86又は88の決定結果が
YESであれば、このプロセスは、ブロック94に進
み、そこでキャッシュ動作要求間の競合が存在するか否
かという決定を行う。キャッシュ動作要求間の実際の競
合が生じるのは、一のスヌープ要求によって指定された
コングルエンス・クラスが、一の読み取り要求に応答し
て置換用に識別されたLRUエントリとなる場合であ
る。このことが一の競合を表す理由は、データが主記憶
26にキャストアウト(即ち、フラッシュ)される前
に、スヌープ要求の結果を反映するようにLRUエント
リのコヒーレンシイ状態を更新しなければならないから
である。
YESであれば、このプロセスは、ブロック94に進
み、そこでキャッシュ動作要求間の競合が存在するか否
かという決定を行う。キャッシュ動作要求間の実際の競
合が生じるのは、一のスヌープ要求によって指定された
コングルエンス・クラスが、一の読み取り要求に応答し
て置換用に識別されたLRUエントリとなる場合であ
る。このことが一の競合を表す理由は、データが主記憶
26にキャストアウト(即ち、フラッシュ)される前
に、スヌープ要求の結果を反映するようにLRUエント
リのコヒーレンシイ状態を更新しなければならないから
である。
【0020】キャッシュ動作要求間に競合が存在するか
否かという決定は、犠牲エントリ選択論理60の所望の
実現形態に応じて、正確にも不正確にもこれを行うこと
ができる。図4を参照して以下で詳述する犠牲エントリ
選択論理60の第1の実施例は、読み取り及びスヌープ
要求間に競合が存在するか否かという決定を行うため
に、これらのキャッシュ動作要求の両方が同一のコング
ルエンス・クラスを指定するか否かを検査するので、そ
の結果はやや不正確である。この競合決定論理が不正確
であると云われる所以は、読み取り要求に応答して置換
用に選択したコングルエンス・クラスを、スヌープ要求
が指定することもあるし指定しないこともあるからであ
る。もし、一層高い正確度が望ましいのであれば、図5
の第2の実施例を使用して、犠牲エントリ選択論理60
を実現することができる。図5の正確な競合決定論理
は、読み取りミスに応答して置換用に選択したコングル
エンス・クラス・エントリをスヌープ要求が指定する場
合にのみ、キャッシュ動作要求間の競合の存在を指示す
る。
否かという決定は、犠牲エントリ選択論理60の所望の
実現形態に応じて、正確にも不正確にもこれを行うこと
ができる。図4を参照して以下で詳述する犠牲エントリ
選択論理60の第1の実施例は、読み取り及びスヌープ
要求間に競合が存在するか否かという決定を行うため
に、これらのキャッシュ動作要求の両方が同一のコング
ルエンス・クラスを指定するか否かを検査するので、そ
の結果はやや不正確である。この競合決定論理が不正確
であると云われる所以は、読み取り要求に応答して置換
用に選択したコングルエンス・クラスを、スヌープ要求
が指定することもあるし指定しないこともあるからであ
る。もし、一層高い正確度が望ましいのであれば、図5
の第2の実施例を使用して、犠牲エントリ選択論理60
を実現することができる。図5の正確な競合決定論理
は、読み取りミスに応答して置換用に選択したコングル
エンス・クラス・エントリをスヌープ要求が指定する場
合にのみ、キャッシュ動作要求間の競合の存在を指示す
る。
【0021】もし、ブロック94で、読み取り要求とス
ヌープ要求との間に競合が存在しないと決定すれば、そ
こからブロック92に進む。さもなければ、ブロック1
00に進み、そこで犠牲エントリ選択論理60は、読み
取りミスに応答して、LRUエントリとは異なる一のコ
ングルエンス・クラス・エントリを置換用の「犠牲エン
トリ」として選択する。その後のブロック102では、
キャッシュ・ディレクトリ20のデータ処理論理56が
主記憶26からの要求データをロードする。ここで、代
替的な犠牲エントリを置換用に選択した場合は、ブロッ
ク102のロード動作をスヌープ要求の処理動作と並行
して行うことができ、これにより待ち時間を最小にする
ことができる。
ヌープ要求との間に競合が存在しないと決定すれば、そ
こからブロック92に進む。さもなければ、ブロック1
00に進み、そこで犠牲エントリ選択論理60は、読み
取りミスに応答して、LRUエントリとは異なる一のコ
ングルエンス・クラス・エントリを置換用の「犠牲エン
トリ」として選択する。その後のブロック102では、
キャッシュ・ディレクトリ20のデータ処理論理56が
主記憶26からの要求データをロードする。ここで、代
替的な犠牲エントリを置換用に選択した場合は、ブロッ
ク102のロード動作をスヌープ要求の処理動作と並行
して行うことができ、これにより待ち時間を最小にする
ことができる。
【0022】次に、ブロック104では、データ処理論
理56が、主記憶26から検索した要求データをプロセ
ッサ12に供給する。ブロック106では、LRU論理
40が、読み取り要求アドレスによって指定されたコン
グルエンス・クラスのLRU標識を更新する。その後、
このプロセスは、ブロック108で終了する。
理56が、主記憶26から検索した要求データをプロセ
ッサ12に供給する。ブロック106では、LRU論理
40が、読み取り要求アドレスによって指定されたコン
グルエンス・クラスのLRU標識を更新する。その後、
このプロセスは、ブロック108で終了する。
【0023】図4には、犠牲エントリ選択論理60の第
1の実施例の詳細ブロック図が示されている。この犠牲
エントリ選択論理60は、NORゲート130〜134
及びデコーダ140から成る、代替犠牲エントリ選択論
理を含んでいる。NORゲート130は、スヌープ・キ
ュー70のエントリSN0内に格納されている8ビット
の復号化エントリ標識のうちビット4〜7を入力として
受け取り、1ビットの出力を供給する。同様に、NOR
ゲート132は、スヌープ・キュー70のエントリSN
1内に格納されている8ビットの復号化エントリ標識の
うちビット2、3、6及び7を入力として受け取り、1
ビットの出力を供給する。NORゲート134は、(も
しあれば)現にアクティブなスヌープ要求によって指定
されたエントリの8ビットの復号化エントリ標識のうち
ビット1、3、5及び7を入力として受け取り、1ビッ
トの出力を供給する。デコーダ140は、NORゲート
130〜134の出力を入力として受け取り、その3ビ
ット入力を8ビットの復号化「代替 犠牲エントリ」信
号142へ復号化して、これをマルチプレクサ146の
第1の入力に供給する。ここで、「代替 犠牲エント
リ」信号142によって指定されたコングルエンス・ク
ラス・エントリが、SN0、SN1及び現にアクティブ
なスヌープ要求によって指定されたエントリとは常に異
なる、ということに留意すべきである。
1の実施例の詳細ブロック図が示されている。この犠牲
エントリ選択論理60は、NORゲート130〜134
及びデコーダ140から成る、代替犠牲エントリ選択論
理を含んでいる。NORゲート130は、スヌープ・キ
ュー70のエントリSN0内に格納されている8ビット
の復号化エントリ標識のうちビット4〜7を入力として
受け取り、1ビットの出力を供給する。同様に、NOR
ゲート132は、スヌープ・キュー70のエントリSN
1内に格納されている8ビットの復号化エントリ標識の
うちビット2、3、6及び7を入力として受け取り、1
ビットの出力を供給する。NORゲート134は、(も
しあれば)現にアクティブなスヌープ要求によって指定
されたエントリの8ビットの復号化エントリ標識のうち
ビット1、3、5及び7を入力として受け取り、1ビッ
トの出力を供給する。デコーダ140は、NORゲート
130〜134の出力を入力として受け取り、その3ビ
ット入力を8ビットの復号化「代替 犠牲エントリ」信
号142へ復号化して、これをマルチプレクサ146の
第1の入力に供給する。ここで、「代替 犠牲エント
リ」信号142によって指定されたコングルエンス・ク
ラス・エントリが、SN0、SN1及び現にアクティブ
なスヌープ要求によって指定されたエントリとは常に異
なる、ということに留意すべきである。
【0024】マルチプレクサ146の第2の入力は、L
RU論理140から8ビットの復号化「LRU」信号4
1を受け取る。マルチプレクサ146は、キャッシュ動
作要求間の競合が検出されたときにアサートされる「代
替 犠牲エントリ 選択」信号148に応答して、信号
142及び41のうちの1つを出力として選択する。
RU論理140から8ビットの復号化「LRU」信号4
1を受け取る。マルチプレクサ146は、キャッシュ動
作要求間の競合が検出されたときにアサートされる「代
替 犠牲エントリ 選択」信号148に応答して、信号
142及び41のうちの1つを出力として選択する。
【0025】「代替 犠牲エントリ 選択」信号148
は、比較手段160〜164、ANDゲート170〜1
74及びORゲート180から成る、不正確な競合検出
論理によって生成される。比較手段160〜164の各
々は、プロセッサ12から受け取られた要求アドレスの
インデックスを、スヌープ・キュー70のエントリSN
0及びSN1内で指定されたそれぞれのアドレス、並び
に現スヌープ要求(もしあれば)によって指定されたア
ドレスのインデックス・ビットとそれぞれ比較する。比
較手段160の出力は、スヌープ・キュー70のエント
リSN0がアクティブであるか否かを指示する、「SN
0 アクティブ」信号165によって有効化(qualify
)される。同様に、比較手段162の出力は、スヌー
プ・キュー70のエントリSN1がアクティブであるか
否かを指示する、「SN1 アクティブ」信号165に
よって有効化される。比較手段164の出力は、キャッ
シュ・ディレクトリ20が現スヌープ要求を受け取るこ
とに応答してハイに移行する、「スヌープ ゴー アク
ティブ」信号169によって有効化される。有効化信号
165、167及び169は、ANDゲート170〜1
74において、比較手段160〜164の出力とそれぞ
れANDされる。ANDゲート170〜174の出力を
受け取るORゲート180は、「代替 犠牲エントリ
選択」信号148を生成する。前述のように、この「代
替 犠牲エントリ 選択」信号148がアサート(1に
設定)されるのは、競合が検出される場合であるから、
この場合のマルチプレクサ146は、「代替 犠牲エン
トリ」信号142を「キャストアウト 犠牲エントリ」
信号46として選択することになる。
は、比較手段160〜164、ANDゲート170〜1
74及びORゲート180から成る、不正確な競合検出
論理によって生成される。比較手段160〜164の各
々は、プロセッサ12から受け取られた要求アドレスの
インデックスを、スヌープ・キュー70のエントリSN
0及びSN1内で指定されたそれぞれのアドレス、並び
に現スヌープ要求(もしあれば)によって指定されたア
ドレスのインデックス・ビットとそれぞれ比較する。比
較手段160の出力は、スヌープ・キュー70のエント
リSN0がアクティブであるか否かを指示する、「SN
0 アクティブ」信号165によって有効化(qualify
)される。同様に、比較手段162の出力は、スヌー
プ・キュー70のエントリSN1がアクティブであるか
否かを指示する、「SN1 アクティブ」信号165に
よって有効化される。比較手段164の出力は、キャッ
シュ・ディレクトリ20が現スヌープ要求を受け取るこ
とに応答してハイに移行する、「スヌープ ゴー アク
ティブ」信号169によって有効化される。有効化信号
165、167及び169は、ANDゲート170〜1
74において、比較手段160〜164の出力とそれぞ
れANDされる。ANDゲート170〜174の出力を
受け取るORゲート180は、「代替 犠牲エントリ
選択」信号148を生成する。前述のように、この「代
替 犠牲エントリ 選択」信号148がアサート(1に
設定)されるのは、競合が検出される場合であるから、
この場合のマルチプレクサ146は、「代替 犠牲エン
トリ」信号142を「キャストアウト 犠牲エントリ」
信号46として選択することになる。
【0026】図5には、犠牲エントリ選択論理60の第
2の実施例の詳細ブロック図が示されている。前述のも
のと同じ参照番号が幾つか図5でも使用されていること
から明らかなように、犠牲エントリ選択論理60の第2
の実施例は、第1の実施例と実質的に類似している。し
かしながら、競合の決定を正確に行うために、第2の実
施例の競合決定論理は、新たな比較手段210〜214
を備えている。比較手段210〜214の各々は、8ビ
ットの復号化「LRU」信号41を、SN0、SN1及
び現スヌープ要求の8ビットの復号化エントリ標識のそ
れぞれと比較するように配設されている。比較手段21
0〜214のそれぞれの1ビット出力は、「LRU」信
号41及び一のスヌープ要求の両方が同じコングルエン
ス・クラス・エントリを指定するか否かを指示するもの
であって、ANDゲート200〜204にそれぞれ入力
されるように接続されている。こうして、キャッシュ動
作要求間の競合が存在するか否かという決定を有効化す
ることができる。従って、第2の実施例では、「代替
犠牲エントリ 選択」信号148がアサートされるの
は、一の読み取りミスに応答して置換用に選択したコン
グルエンス・クラス・エントリを一のスヌープ要求が指
定する場合だけである。
2の実施例の詳細ブロック図が示されている。前述のも
のと同じ参照番号が幾つか図5でも使用されていること
から明らかなように、犠牲エントリ選択論理60の第2
の実施例は、第1の実施例と実質的に類似している。し
かしながら、競合の決定を正確に行うために、第2の実
施例の競合決定論理は、新たな比較手段210〜214
を備えている。比較手段210〜214の各々は、8ビ
ットの復号化「LRU」信号41を、SN0、SN1及
び現スヌープ要求の8ビットの復号化エントリ標識のそ
れぞれと比較するように配設されている。比較手段21
0〜214のそれぞれの1ビット出力は、「LRU」信
号41及び一のスヌープ要求の両方が同じコングルエン
ス・クラス・エントリを指定するか否かを指示するもの
であって、ANDゲート200〜204にそれぞれ入力
されるように接続されている。こうして、キャッシュ動
作要求間の競合が存在するか否かという決定を有効化す
ることができる。従って、第2の実施例では、「代替
犠牲エントリ 選択」信号148がアサートされるの
は、一の読み取りミスに応答して置換用に選択したコン
グルエンス・クラス・エントリを一のスヌープ要求が指
定する場合だけである。
【0027】
【発明の効果】以上のように、本発明によれば、2つの
キャッシュ動作要求間の競合に応答して置換用の代替キ
ャッシュ・エントリを選択するための改良されたキャッ
シュ管理方法及びシステムを提供することができる。キ
ャッシュ動作要求間の競合は、所望の実現形態に応じ
て、正確にも不正確にもこれを検出することができる。
本発明は、置換用の代替キャッシュ・エントリを選択す
ることにより、複数のキャッシュ動作要求を同時にサポ
ートすることが可能であり、これによりキャッシュの性
能を強化することができる。なお、本発明は、多重プロ
セッサ及びユニ・プロセッサ形式の何れのデータ処理シ
ステムにおいても実施可能であるばかりか、メモリ階層
中の任意のレベルにあるキャッシュにおいて実施可能で
ある。さらに、本発明の実施は、通常のセット・アソシ
アティブ型のキャッシュに限定されるものではなく、他
のキャッシュ・アーキテクチャにおいてもこれを実施す
ることができる。
キャッシュ動作要求間の競合に応答して置換用の代替キ
ャッシュ・エントリを選択するための改良されたキャッ
シュ管理方法及びシステムを提供することができる。キ
ャッシュ動作要求間の競合は、所望の実現形態に応じ
て、正確にも不正確にもこれを検出することができる。
本発明は、置換用の代替キャッシュ・エントリを選択す
ることにより、複数のキャッシュ動作要求を同時にサポ
ートすることが可能であり、これによりキャッシュの性
能を強化することができる。なお、本発明は、多重プロ
セッサ及びユニ・プロセッサ形式の何れのデータ処理シ
ステムにおいても実施可能であるばかりか、メモリ階層
中の任意のレベルにあるキャッシュにおいて実施可能で
ある。さらに、本発明の実施は、通常のセット・アソシ
アティブ型のキャッシュに限定されるものではなく、他
のキャッシュ・アーキテクチャにおいてもこれを実施す
ることができる。
【図1】本発明の方法及びシステムに従ったデータ処理
システムの実施例を示す図である。
システムの実施例を示す図である。
【図2】図1に示したデータ処理システム内のキャッシ
ュ・ディレクトリを示す一層詳細なブロック図である。
ュ・ディレクトリを示す一層詳細なブロック図である。
【図3】キャッシュ動作要求間の競合に応答して置換用
の代替キャッシュ・エントリを選択する方法の実施例を
示す論理的フローチャートである。
の代替キャッシュ・エントリを選択する方法の実施例を
示す論理的フローチャートである。
【図4】図2に示した犠牲エントリ選択論理の第1の実
施例を示す詳細ブロック図である。
施例を示す詳細ブロック図である。
【図5】図2に示した犠牲エントリ選択論理の第2の実
施例を示す詳細ブロック図である。
施例を示す詳細ブロック図である。
12・・・プロセッサ
14・・・L1キャッシュ
16・・・L2キャッシュ
18・・・キャッシュ・データ
20・・・キャッシュ・ディレクトリ
24・・・システム・バス
26・・・主記憶
30・・・タグ及びコヒーレンシイ状態記憶装置
32・・・セット
34・・・メンバ
40・・・LRU論理
42・・・比較手段
50・・・マルチプレクサ
56・・・データ処理論理
60・・・犠牲エントリ選択論理
70・・・スヌープ・キュー
フロントページの続き
(72)発明者 ジョン・スティーブン・ドッドサン
アメリカ合衆国78660、テキサス州フル
ガーヴィル、ベル・ロック・サークル
1205
(56)参考文献 特開 昭56−77965(JP,A)
特開 平3−58251(JP,A)
特開 平6−161900(JP,A)
(58)調査した分野(Int.Cl.7,DB名)
G06F 12/08 - 12/12
Claims (26)
- 【請求項1】複数のエントリを含むキャッシュを管理す
る方法であって、 (a)第1及び第2のキャッシュ動作要求を受け取るス
テップと、 (b)前記第1のキャッシュ動作要求を受け取ったこと
に応答して、前記複数のエントリのうち前記第1のキャ
ッシュ動作要求が指定するエントリとは異なる一の代替
エントリを識別するステップと、 (c)前記第2のキャッシュ動作要求を受け取ったこと
に応答して、前記複数のエントリのうち置換用の一のエ
ントリを識別するステップと、 (d)前記第1のキャッシュ動作要求が前記識別された
置換用の一のエントリを指定していることに応答して、
前記識別された一の代替エントリと前記識別された置換
用の一のエントリのうち前記識別された一の代替エント
リを選択するステップとを含み、 前記キャッシュが、複数のエントリから成る複数のコン
グルエンス・クラスを含むセット・アソシアティブ型の
キャッシュであり、 前記識別された置換用の一のエントリと前記識別された
一の代替エントリが、前記複数のコングルエンス・クラ
スのうち同一のコングルエンス・クラス内にある ことを
特徴とする、前記方法。 - 【請求項2】前記ステップ(a)が、前記第1のキャッ
シュ動作要求が受け取られた後で且つ当該第1のキャッ
シュ動作要求によって指示される第1のキャッシュ動作
が完了する前に、前記第2のキャッシュ動作要求を受け
取ることを特徴とする、請求項1記載の方法。 - 【請求項3】前記第1及び第2のキャッシュ動作要求
が、一のスヌープ要求及び一の読み取り要求であること
を特徴とする、請求項2記載の方法。 - 【請求項4】前記ステップ(a)が、前記第1及び第2
のキャッシュ動作要求を実質的に同時に受け取ることを
特徴とする、請求項1記載の方法。 - 【請求項5】前記第2のキャッシュ動作要求が、一のア
ドレスを有し、前記ステップ(c)が、当該アドレスに
応答して前記置換用のエントリを識別することを特徴と
する、請求項1記載の方法。 - 【請求項6】前記複数のエントリが、一のコングルエン
ス・クラスを構成し、前記ステップ(c)が、当該コン
グルエンス・クラス内の前記複数のエントリのうち最も
長い間使用されなかった前記置換用のエントリを識別す
ることを特徴とする、請求項1記載の方法。 - 【請求項7】前記ステップ(d)が、前記第1のキャッ
シュ動作要求の処理動作と並行して行われることを特徴
とする、請求項1記載の方法。 - 【請求項8】前記ステップ(c)が、前記識別された置
換用の一のエントリの標識を示す信号を生成することを
特徴とする、請求項1記載の方法。 - 【請求項9】前記第1のキャッシュ動作要求の処理動作
と並行して主記憶からの要求データをプロセッサに供給
するステップをさらに含むことを特徴とする、請求項1
記載の方法。 - 【請求項10】前記ステップ(b)で受け取った前記第
1のキャッシュ動作要求が複数のスヌープ要求であり、
前記識別された一の代替エントリが、前記複数のスヌー
プ要求のそれぞれが指定する複数のエントリのいずれと
も異なることを特徴とする、請求項1記載の方法。 - 【請求項11】データを格納するための複数のエントリ
と、第1のキャッシュ動作要求を受け取ったことに応答し
て、前記複数のエントリのうち前記第1のキャッシュ動
作要求が指定するエントリとは異なる一の代替エントリ
を識別する代替犠牲エントリ選択論理手段と、 第2のキャッシュ動作要求を受け取ったことに応答し
て、前記複数のエントリのうち置換用の一のエントリを
識別するためのエントリ識別論理手段と、前記第1のキャッシュ動作要求が前記識別された置換用
の一のエントリを指定していることに応答して、前記識
別された一の代替エントリと前記識別された置換用の一
のエントリのうち前記識別された一の代替エントリを選
択する 犠牲エントリ選択論理手段とを備えて成るキャッ
シュであって、 前記キャッシュが、複数のエントリから成る複数のコン
グルエンス・クラスを含むセット・アソシアティブ型の
キャッシュであり、 前記識別された置換用の一のエントリと前記識別された
一の代替エントリが、前記複数のコングルエンス・クラ
スのうち同一のコングルエンス・クラス内にある ことを
特徴とする、前記キャッシュ。 - 【請求項12】前記第1及び第2のキャッシュ動作要求
が、一のスヌープ要求及び一の読み取り要求であること
を特徴とする、請求項11記載のキャッシュ。 - 【請求項13】前記第2のキャッシュ動作要求が、前記
識別された置換用のエントリを指定するアドレスを有す
ることを特徴とする、請求項11記載のキャッシュ。 - 【請求項14】前記エントリ識別論理手段が、LRU論
理手段から成ることを特徴とする、請求項11記載のキ
ャッシュ。 - 【請求項15】前記第1のキャッシュ動作要求の処理動
作と並行して前記識別された一の代替エントリが置換さ
れることを特徴とする、請求項11記載のキャッシュ。 - 【請求項16】前記エントリ識別論理手段が前記識別さ
れた置換用の一のエントリの標識を示す信号を前記犠牲
エントリ選択論理手段に出力することによって、前記置
換用の一のエントリが識別されることを特徴とする、請
求項11記載のキャッシュ。 - 【請求項17】前記第1のキャッシュ動作要求の処理動
作と並行して主記憶からの要求データ をプロセッサに供
給するデータ処理論理をさらに含むことを特徴とする、
請求項11記載のキャッシュ。 - 【請求項18】前記第1のキャッシュ動作要求が複数の
スヌープ要求であり、代替犠牲エントリ選択論理手段に
よって識別された一の代替エントリが、前記複数のスヌ
ープ要求のそれぞれが指定する複数のエントリのいずれ
とも異なることを特徴とする、請求項1記載のキャッシ
ュ。 - 【請求項19】一のプロセッサと、 前記プロセッサに結合されたキャッシュとを備え、 前記キャッシュが、 データを格納するための複数のエントリと、第1のキャッシュ動作要求を受け取ったことに応答し
て、前記複数のエントリのうち前記第1のキャッシュ動
作要求が指定するエントリとは異なる一の代替エントリ
を識別する代替犠牲エントリ選択論理手段と、 第2のキャッシュ動作要求を受け取ったことに応答し
て、前記複数のエントリのうち置換用の一のエントリを
識別するためのエントリ識別論理手段と、前記第1のキャッシュ動作要求が前記識別された置換用
の一のエントリを指定していることに応答して、前記識
別された一の代替エントリと前記識別された置換用の一
のエントリのうち前記識別された一の代替エントリを選
択する 犠牲エントリ選択論理手段を含み、 前記キャッシュが、複数のエントリから成る複数のコン
グルエンス・クラスを含むセット・アソシアティブ型の
キャッシュであり、 前記識別された置換用の一のエントリと前記識別された
一の代替エントリが、前記複数のコングルエンス・クラ
スのうち同一のコングルエンス・クラス内にある ことを
特徴とする、データ処理システム。 - 【請求項20】前記第1及び第2のキャッシュ動作要求
が、一のスヌープ要求及び一の読み取り要求であること
を特徴とする、請求項19記載のデータ処理システム。 - 【請求項21】前記第2のキャッシュ動作要求が、前記
識別された置換用のエントリを指定するアドレスを有す
ることを特徴とする、請求項19記載のデータ処理シス
テム。 - 【請求項22】前記エントリ識別論理手段が、LRU論
理手段から成ることを特徴とする、請求項19記載のデ
ータ処理システム。 - 【請求項23】前記第1のキャッシュ動作要求の処理動
作と並行して前記識別された一の代替エントリを置換す
ることを特徴とする、請求項19記載のデータ処理シス
テム。 - 【請求項24】前記エントリ識別論理手段が前記識別さ
れた置換用の一のエントリの標識を示す信号を前記犠牲
エントリ選択論理手段に出力することによって、前記置
換用の一のエントリが識別されることを特徴とする、請
求項19記載のデータ処理システム。 - 【請求項25】前記第1のキャッシュ動作要求の処理動
作と並行して主記憶からの要求データをプロセッサに供
給するデータ処理論理をさらに含むことを特徴とする、
請求項19記載のデータ処理システム。 - 【請求項26】前記第1のキャッシュ動作要求が複数の
スヌープ要求であり、代替犠牲エントリ選択論理手段に
よって識別された一の代替エントリが、前記複数のスヌ
ープ要求のそれぞれが指定する複数のエントリのいずれ
とも異なることを特徴とする、請求項19記載のキャッ
シュ。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/839,439 US6145057A (en) | 1997-04-14 | 1997-04-14 | Precise method and system for selecting an alternative cache entry for replacement in response to a conflict between cache operation requests |
US08/839439 | 1997-04-14 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH10326226A JPH10326226A (ja) | 1998-12-08 |
JP3463292B2 true JP3463292B2 (ja) | 2003-11-05 |
Family
ID=25279733
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP10281398A Expired - Fee Related JP3463292B2 (ja) | 1997-04-14 | 1998-04-14 | キャッシュ動作要求間の競合に応答して置換用の代替キャッシュ・エントリを選択する方法及びシステム |
Country Status (2)
Country | Link |
---|---|
US (1) | US6145057A (ja) |
JP (1) | JP3463292B2 (ja) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6378044B1 (en) * | 1999-09-22 | 2002-04-23 | Vlsi Technology, Inc. | Method and system for cache replacement among configurable cache sets |
US6519684B1 (en) * | 1999-11-23 | 2003-02-11 | Motorola, Inc. | Low overhead method for selecting and updating an entry in a cache memory |
US6412050B1 (en) * | 1999-12-30 | 2002-06-25 | Intel Corporation | Memory record update filtering |
US6571317B2 (en) * | 2001-05-01 | 2003-05-27 | Broadcom Corporation | Replacement data error detector |
US7062761B2 (en) | 2001-07-10 | 2006-06-13 | Micron Technology, Inc. | Dynamic arrays and overlays with bounds policies |
US7127559B2 (en) * | 2001-07-10 | 2006-10-24 | Micron Technology, Inc. | Caching of dynamic arrays |
US6785771B2 (en) | 2001-12-04 | 2004-08-31 | International Business Machines Corporation | Method, system, and program for destaging data in cache |
US7177853B1 (en) * | 2002-02-21 | 2007-02-13 | Emc Corporation | Cache management via statistically adjusted time stamp queue |
JP3940148B2 (ja) * | 2002-11-20 | 2007-07-04 | 富士通株式会社 | メモリ制御装置およびキャッシュリプレース制御方法 |
US6993628B2 (en) * | 2003-04-28 | 2006-01-31 | International Business Machines Corporation | Cache allocation mechanism for saving elected unworthy member via substitute victimization and imputed worthiness of substitute victim member |
US6996679B2 (en) * | 2003-04-28 | 2006-02-07 | International Business Machines Corporation | Cache allocation mechanism for saving multiple elected unworthy members via substitute victimization and imputed worthiness of multiple substitute victim members |
US7114035B2 (en) * | 2003-09-04 | 2006-09-26 | International Business Machines Corporation | Software-controlled cache set management with software-generated class identifiers |
US20050289300A1 (en) * | 2004-06-24 | 2005-12-29 | International Business Machines Corporation | Disable write back on atomic reserved line in a small cache system |
US20060015689A1 (en) * | 2004-07-15 | 2006-01-19 | International Business Machines Corporation | Implementation and management of moveable buffers in cache system |
JP5488346B2 (ja) * | 2010-08-30 | 2014-05-14 | 富士通株式会社 | ストレージシステム、制御装置および制御方法 |
GB2571539B (en) * | 2018-02-28 | 2020-08-19 | Imagination Tech Ltd | Memory interface |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4441155A (en) * | 1981-11-23 | 1984-04-03 | International Business Machines Corporation | Page controlled cache directory addressing |
US4463420A (en) * | 1982-02-23 | 1984-07-31 | International Business Machines Corporation | Multiprocessor cache replacement under task control |
US5091846A (en) * | 1986-10-03 | 1992-02-25 | Intergraph Corporation | Cache providing caching/non-caching write-through and copyback modes for virtual addresses and including bus snooping to maintain coherency |
US5025365A (en) * | 1988-11-14 | 1991-06-18 | Unisys Corporation | Hardware implemented cache coherency protocol with duplicated distributed directories for high-performance multiprocessors |
US5133074A (en) * | 1989-02-08 | 1992-07-21 | Acer Incorporated | Deadlock resolution with cache snooping |
US5375445A (en) * | 1992-03-12 | 1994-12-27 | Mannasset Specialty Company | Apparatus for producing a shaft clutch mechanism |
US5553266A (en) * | 1992-04-24 | 1996-09-03 | Digital Equipment Corporation | Update vs. invalidate policy for a snoopy bus protocol |
US5319766A (en) * | 1992-04-24 | 1994-06-07 | Digital Equipment Corporation | Duplicate tag store for a processor having primary and backup cache memories in a multiprocessor computer system |
JPH06318174A (ja) * | 1992-04-29 | 1994-11-15 | Sun Microsyst Inc | キャッシュ・メモリ・システム及び主メモリに記憶されているデータのサブセットをキャッシュする方法 |
US5398325A (en) * | 1992-05-07 | 1995-03-14 | Sun Microsystems, Inc. | Methods and apparatus for improving cache consistency using a single copy of a cache tag memory in multiple processor computer systems |
US5553248A (en) * | 1992-10-02 | 1996-09-03 | Compaq Computer Corporation | System for awarding the highest priority to a microprocessor releasing a system bus after aborting a locked cycle upon detecting a locked retry signal |
US5623627A (en) * | 1993-12-09 | 1997-04-22 | Advanced Micro Devices, Inc. | Computer memory architecture including a replacement cache |
US5550988A (en) * | 1994-03-01 | 1996-08-27 | Intel Corporation | Apparatus and method for performing error correction in a multi-processor 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 |
US5680577A (en) * | 1995-04-27 | 1997-10-21 | International Business Machines Corporation | Method and system for processing multiple requests for data residing at the same memory address |
US5715427A (en) * | 1996-01-26 | 1998-02-03 | International Business Machines Corporation | Semi-associative cache with MRU/LRU replacement |
-
1997
- 1997-04-14 US US08/839,439 patent/US6145057A/en not_active Expired - Fee Related
-
1998
- 1998-04-14 JP JP10281398A patent/JP3463292B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US6145057A (en) | 2000-11-07 |
JPH10326226A (ja) | 1998-12-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6023747A (en) | Method and system for handling conflicts between cache operation requests in a data processing system | |
US5740400A (en) | Reducing cache snooping overhead in a multilevel cache system with multiple bus masters and a shared level two cache by using an inclusion field | |
US7444494B2 (en) | Data processing system and method for predictively selecting a scope of broadcast of an operation utilizing a history-based prediction | |
US6343344B1 (en) | System bus directory snooping mechanism for read/castout (RCO) address transaction | |
US7856532B2 (en) | Cache logic, data processing apparatus including cache logic, and a method of operating cache logic | |
US7484042B2 (en) | Data processing system and method for predictively selecting a scope of a prefetch operation | |
US7290094B2 (en) | Processor, data processing system, and method for initializing a memory block to an initialization value without a cache first obtaining a data valid copy | |
JP3463292B2 (ja) | キャッシュ動作要求間の競合に応答して置換用の代替キャッシュ・エントリを選択する方法及びシステム | |
US6343347B1 (en) | Multiprocessor system bus with cache state and LRU snoop responses for read/castout (RCO) address transaction | |
US6275909B1 (en) | Multiprocessor system bus with system controller explicitly updating snooper cache state information | |
US6353875B1 (en) | Upgrading of snooper cache state mechanism for system bus with read/castout (RCO) address transactions | |
US10725923B1 (en) | Cache access detection and prediction | |
US20070136535A1 (en) | System and Method for Reducing Unnecessary Cache Operations | |
US6502171B1 (en) | Multiprocessor system bus with combined snoop responses explicitly informing snoopers to scarf data | |
JP2005528694A (ja) | スレッド識別子に基づくキャッシュ追い出しを用いたマルチスレッド化キャッシュのための方法および装置 | |
US8621152B1 (en) | Transparent level 2 cache that uses independent tag and valid random access memory arrays for cache access | |
EP0936554A2 (en) | Cache coherency protocol including a hovering (H) state having a precise mode and an imprecise mode | |
US20070101067A1 (en) | System and method for contention-based cache performance optimization | |
US6049849A (en) | Imprecise method and system for selecting an alternative cache entry for replacement in response to a conflict between cache operation requests | |
US20070168639A1 (en) | Data processing system and method for selecting a scope of broadcast of an operation by reference to a translation table | |
JP2004199677A (ja) | キャッシュを動作させるためのシステム及び方法 | |
US6349367B1 (en) | Method and system for communication in which a castout operation is cancelled in response to snoop responses | |
US6279086B1 (en) | Multiprocessor system bus with combined snoop responses implicitly updating snooper LRU position | |
US6338124B1 (en) | Multiprocessor system bus with system controller explicitly updating snooper LRU information | |
US7587556B2 (en) | Store buffer capable of maintaining associated cache information |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
LAPS | Cancellation because of no payment of annual fees |