JPH07121442A - データ処理システム及び制御方法 - Google Patents
データ処理システム及び制御方法Info
- Publication number
- JPH07121442A JPH07121442A JP6183618A JP18361894A JPH07121442A JP H07121442 A JPH07121442 A JP H07121442A JP 6183618 A JP6183618 A JP 6183618A JP 18361894 A JP18361894 A JP 18361894A JP H07121442 A JPH07121442 A JP H07121442A
- Authority
- JP
- Japan
- Prior art keywords
- cache
- line
- level cache
- level
- inclusion
- 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
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/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
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)【要約】
【目的】 マルチレベルのキャッシュをもつマルチプロ
セッサにおけるキャッシュを管理するための方法及びシ
ステムを提供する。 【構成】 内包アーキテクチャ及び手順が規定され、L
2キャッシュがL1キャッシュを、主メモリやI/Oの
読取り/書込み動作等のL2における外部からの通信か
ら遮蔽する。基本的内包はL1キャッシュからL2キャ
ッシュへの特別な通信を排除する一方、L2におけるL
1に関する適切な知識を保持することによりL1の無効
化を最小限とする。プロセッサ性能は、通信の減少及び
無効化の低減によって改善される。プロセッサ及びL1
キャッシュは、ストアイン方式を実行する。L2キャッ
シュは、L2キャッシュのデータ・ラインと関連するL
1キャッシュに存在する対応するラインとの間の関係を
キャッシュ・ラインによって示すために内包ビットを利
用する。
セッサにおけるキャッシュを管理するための方法及びシ
ステムを提供する。 【構成】 内包アーキテクチャ及び手順が規定され、L
2キャッシュがL1キャッシュを、主メモリやI/Oの
読取り/書込み動作等のL2における外部からの通信か
ら遮蔽する。基本的内包はL1キャッシュからL2キャ
ッシュへの特別な通信を排除する一方、L2におけるL
1に関する適切な知識を保持することによりL1の無効
化を最小限とする。プロセッサ性能は、通信の減少及び
無効化の低減によって改善される。プロセッサ及びL1
キャッシュは、ストアイン方式を実行する。L2キャッ
シュは、L2キャッシュのデータ・ラインと関連するL
1キャッシュに存在する対応するラインとの間の関係を
キャッシュ・ラインによって示すために内包ビットを利
用する。
Description
【0001】
【産業上の利用分野】本発明は、一般的にはコンピュー
タのメモリ・アーキテクチャに関する。特に、本発明
は、複数のキャッシュ及びキャッシュ・レベルを含むマ
ルチプロセッサ・アーキテクチャにおける第1のレベル
(L1)のキャッシュと第2のレベル(L2)のキャッ
シュとの間のインターフェースを目的とする。
タのメモリ・アーキテクチャに関する。特に、本発明
は、複数のキャッシュ及びキャッシュ・レベルを含むマ
ルチプロセッサ・アーキテクチャにおける第1のレベル
(L1)のキャッシュと第2のレベル(L2)のキャッ
シュとの間のインターフェースを目的とする。
【0002】
【従来の技術】複数のプロセッサを含み、このようなマ
ルチプロセッサに関連するマルチレベル・キャッシュ・
アーキテクチャを有するコンピュータ・アーキテクチャ
は、近年、特に注目されかつ技術的に成長してきた分野
となっている。有力な研究として、2レベルのキャッシ
ュ階層及び関係するプロトコルを用いて処理するものが
あり、複合的システムのキャッシュ・コヒーレンシィ
(一貫性)の必要性を満足させながら個々のプロセッサ
の性能を最大限とするべくこれらのキャッシュを動作さ
せている。
ルチプロセッサに関連するマルチレベル・キャッシュ・
アーキテクチャを有するコンピュータ・アーキテクチャ
は、近年、特に注目されかつ技術的に成長してきた分野
となっている。有力な研究として、2レベルのキャッシ
ュ階層及び関係するプロトコルを用いて処理するものが
あり、複合的システムのキャッシュ・コヒーレンシィ
(一貫性)の必要性を満足させながら個々のプロセッサ
の性能を最大限とするべくこれらのキャッシュを動作さ
せている。
【0003】この研究分野においては、マルチレベル内
包(inclusion)特性の研究が特に興味深いことが判明し
た。関連文献である「Multilevel Cache Hierarchies:
Organizations, Protocols and Performance」(Jurnal
of Parallel and Distributed Computing, Vol. 6, pp.
451-476, 1989)では、階層システムの含意(implicati
on)のみでなく、特にマルチレベル内包の含意について
詳細に検討している。内包の多様性、すなわちL2キャ
ッシュに記憶されたデータのラインがL2キャッシュに
よりサポートされるL1キャッシュに記憶されたライン
のスーパセットであるという概念は、分割ディレクトリ
の利用によって簡潔なものとされる。分割ディレクトリ
に関する文献には「Extended L2 Directory for L1 Res
idence Recording」(IBM Technical Disclosure Bullet
in, Vol. 34, No. 8, pp. 130-133, Jan. 1992)があ
る。拡張ディレクトリは、さらに包括的な内包を確保す
る。L1レベル・キャッシュのメモリ・アクセスのスヌ
ーピング(snooping)を選択的にイネーブルとするため
に内包ビットの利用することは、ヨーロッパ特許出願第
91305422.7号に記載されている。いくつかの
文献における設計の大勢的な目的は、「強い内包(stron
g inclusion)」アーキテクチャを規定しかつ利用するこ
とであり、「弱い内包(weak inclusion)」を与えるアー
キテクチャとは対称的である。
包(inclusion)特性の研究が特に興味深いことが判明し
た。関連文献である「Multilevel Cache Hierarchies:
Organizations, Protocols and Performance」(Jurnal
of Parallel and Distributed Computing, Vol. 6, pp.
451-476, 1989)では、階層システムの含意(implicati
on)のみでなく、特にマルチレベル内包の含意について
詳細に検討している。内包の多様性、すなわちL2キャ
ッシュに記憶されたデータのラインがL2キャッシュに
よりサポートされるL1キャッシュに記憶されたライン
のスーパセットであるという概念は、分割ディレクトリ
の利用によって簡潔なものとされる。分割ディレクトリ
に関する文献には「Extended L2 Directory for L1 Res
idence Recording」(IBM Technical Disclosure Bullet
in, Vol. 34, No. 8, pp. 130-133, Jan. 1992)があ
る。拡張ディレクトリは、さらに包括的な内包を確保す
る。L1レベル・キャッシュのメモリ・アクセスのスヌ
ーピング(snooping)を選択的にイネーブルとするため
に内包ビットの利用することは、ヨーロッパ特許出願第
91305422.7号に記載されている。いくつかの
文献における設計の大勢的な目的は、「強い内包(stron
g inclusion)」アーキテクチャを規定しかつ利用するこ
とであり、「弱い内包(weak inclusion)」を与えるアー
キテクチャとは対称的である。
【0004】内包の2つの両極端を検討すると、「弱い
内包」を実施するシステムは、単にL2キャッシュと関
連のL1キャッシュとの間のスーパセット条件を保持す
るのみである。従って、この手法は、L2キャッシュに
て検知されるメモリ要求によって探索されるラインをい
ずれかのL1キャッシュが有するかをL2キャッシュが
信頼性をもって判断するための適切な情報を保持しな
い。それと対称的に、かつ内包のもう一方の極として、
「強い内包」は、L1の内容及び状態についての包括的
な知識を関連するL2に与えることによって、有効であ
ると認知されかつ関連するL1キャッシュに記憶された
キャッシュ・ラインに対する要求のみが、L2から取出
される。
内包」を実施するシステムは、単にL2キャッシュと関
連のL1キャッシュとの間のスーパセット条件を保持す
るのみである。従って、この手法は、L2キャッシュに
て検知されるメモリ要求によって探索されるラインをい
ずれかのL1キャッシュが有するかをL2キャッシュが
信頼性をもって判断するための適切な情報を保持しな
い。それと対称的に、かつ内包のもう一方の極として、
「強い内包」は、L1の内容及び状態についての包括的
な知識を関連するL2に与えることによって、有効であ
ると認知されかつ関連するL1キャッシュに記憶された
キャッシュ・ラインに対する要求のみが、L2から取出
される。
【0005】弱い内包のアーキテクチャは、L2キャッ
シュのラインの任意の置換に対して対応するL1ライン
の無効化を実行することにより簡単にスーパセット条件
が得られるので、設計容易である。しかしながら、弱い
内包アーキテクチャは、L2キャッシュに対し、L1の
内容について極めて少ない情報しか与えない。L1の無
効化は非常に頻繁に発生し、頻繁な更新割込みが必要と
されるため、プロセッサにとってL1の利用性が抑制さ
れてしまう。
シュのラインの任意の置換に対して対応するL1ライン
の無効化を実行することにより簡単にスーパセット条件
が得られるので、設計容易である。しかしながら、弱い
内包アーキテクチャは、L2キャッシュに対し、L1の
内容について極めて少ない情報しか与えない。L1の無
効化は非常に頻繁に発生し、頻繁な更新割込みが必要と
されるため、プロセッサにとってL1の利用性が抑制さ
れてしまう。
【0006】L2キャッシュによりもたらされるメモリ
・アクセスの遮蔽(shielding)は、「強い内包」アー
キテクチャの実施により改善される。しかしながらこの
アーキテクチャは、L2において適切な知識を保持する
ために、L1キャッシュと関連のL2キャッシュとの間
の拡張的な通信を必要とする。よって、強い内包アーキ
テクチャが最適な遮蔽効果を得るにも拘らず、L2にお
いてL1の内容の完全な知識を保持するためにL1とL
2との間の通信が頻繁となることから、全体的なシステ
ム速度は劣化してしまう。
・アクセスの遮蔽(shielding)は、「強い内包」アー
キテクチャの実施により改善される。しかしながらこの
アーキテクチャは、L2において適切な知識を保持する
ために、L1キャッシュと関連のL2キャッシュとの間
の拡張的な通信を必要とする。よって、強い内包アーキ
テクチャが最適な遮蔽効果を得るにも拘らず、L2にお
いてL1の内容の完全な知識を保持するためにL1とL
2との間の通信が頻繁となることから、全体的なシステ
ム速度は劣化してしまう。
【0007】
【発明が解決しようとする課題】従って、L2キャッシ
ュとサポートされるL1キャッシュとの間に好ましくな
い大量の通信を導引することなくL2キャッシュによる
合理的な遮蔽を可能とするマルチレベル・キャッシュ・
アーキテクチャが依然として必要とされている。ほとん
どのアーキテクチャでは、L2キャッシュは、多数のL
1キャッシュ及びそれらと関連するプロセッサのために
働かなければならず、その一方で全てのキャッシュ・コ
ヒーレンス要求を満足しなければならない。最後に、レ
ベル間の通信の態様は、オンボードのL1キャッシュを
有するがL1からL2への通信機構をもたない市販のマ
イクロプロセッサに存在する資源と一致すべきである。
ュとサポートされるL1キャッシュとの間に好ましくな
い大量の通信を導引することなくL2キャッシュによる
合理的な遮蔽を可能とするマルチレベル・キャッシュ・
アーキテクチャが依然として必要とされている。ほとん
どのアーキテクチャでは、L2キャッシュは、多数のL
1キャッシュ及びそれらと関連するプロセッサのために
働かなければならず、その一方で全てのキャッシュ・コ
ヒーレンス要求を満足しなければならない。最後に、レ
ベル間の通信の態様は、オンボードのL1キャッシュを
有するがL1からL2への通信機構をもたない市販のマ
イクロプロセッサに存在する資源と一致すべきである。
【0008】
【課題を解決するための手段】本発明は、L1キャッシ
ュとL2キャッシュとの間の関係を規定するための「基
本的内包(essential inclusion)」アーキテクチャの利
用を目的としており、このアーキテクチャは、強い内包
により与えられる手法における絶縁を最大限とする一
方、弱い内包による手法における複数のL1からL2へ
の通信を最小限とする。基本的内包アーキテクチャ及び
関連する方法は、強い内包に匹敵する性能をもたらす一
方、L1からL2への通信は弱い内包に相当する程度で
あることを可能とする。さらに、基本的内包を利用する
マルチプロセッサ・システムは、低コストでかつ市販さ
れているマイクロプロセッサから構築することが可能で
あり、これらのマイクロプロセッサは、強い内包に関係
するL1からL2への通信資源は含んでいないが、弱い
内包で実施される態様におけるL1キャッシュ・ライン
の選択的無効化のための資源は備えている。
ュとL2キャッシュとの間の関係を規定するための「基
本的内包(essential inclusion)」アーキテクチャの利
用を目的としており、このアーキテクチャは、強い内包
により与えられる手法における絶縁を最大限とする一
方、弱い内包による手法における複数のL1からL2へ
の通信を最小限とする。基本的内包アーキテクチャ及び
関連する方法は、強い内包に匹敵する性能をもたらす一
方、L1からL2への通信は弱い内包に相当する程度で
あることを可能とする。さらに、基本的内包を利用する
マルチプロセッサ・システムは、低コストでかつ市販さ
れているマイクロプロセッサから構築することが可能で
あり、これらのマイクロプロセッサは、強い内包に関係
するL1からL2への通信資源は含んでいないが、弱い
内包で実施される態様におけるL1キャッシュ・ライン
の選択的無効化のための資源は備えている。
【0009】1つの態様として、本発明はマルチプロセ
ッサの階層的キャッシュ・システムを含み、このシステ
ムは、各々のプロセッサに関係する多数の第1のレベル
のキャッシュと、当該多数の第1のレベルのキャッシュ
に個々に関係しかつ関係する第1のレベルのキャッシュ
のスーパーセットである多数の第2のレベルのキャッシ
ュと、第1のレベルのキャッシュの対応するラインにお
けるデータの存在を示すために第2のレベルのキャッシ
ュ・ラインをマーキングするための手段と、関係する第
1のレベルのキャッシュからのラインで置換されたとき
は第2のレベルのそのキャッシュ・ラインからマーキン
グを選択的に除去するための手段と、第2のレベルのキ
ャッシュのクロス問合せ(cross-interrogations)に応
答してマーキングされた第1のレベルのキャッシュ・ラ
インに選択的に問合せるための手段とから構成される。
別の態様では、本発明は、そのように構成されたシステ
ムを実施するための方法に関する。
ッサの階層的キャッシュ・システムを含み、このシステ
ムは、各々のプロセッサに関係する多数の第1のレベル
のキャッシュと、当該多数の第1のレベルのキャッシュ
に個々に関係しかつ関係する第1のレベルのキャッシュ
のスーパーセットである多数の第2のレベルのキャッシ
ュと、第1のレベルのキャッシュの対応するラインにお
けるデータの存在を示すために第2のレベルのキャッシ
ュ・ラインをマーキングするための手段と、関係する第
1のレベルのキャッシュからのラインで置換されたとき
は第2のレベルのそのキャッシュ・ラインからマーキン
グを選択的に除去するための手段と、第2のレベルのキ
ャッシュのクロス問合せ(cross-interrogations)に応
答してマーキングされた第1のレベルのキャッシュ・ラ
インに選択的に問合せるための手段とから構成される。
別の態様では、本発明は、そのように構成されたシステ
ムを実施するための方法に関する。
【0010】本発明による階層キャッシュ・システムの
特別な実施例では、個々にそれぞれのプロセッサと関連
する複数の第1のレベルのキャッシュを含み、グループ
化されることによって、複数の第1のレベルのキャッシ
ュが複数の第2のレベルのキャッシュの1つを普通に共
有することができる。第2のレベルのキャッシュ内のデ
ータは、キャッシュ・ラインにより第1のレベルのキャ
ッシュ内のデータのスーパセットである。第1及び第2
のレベルのキャッシュはディレクトリを有し、第2のレ
ベルのキャッシュのディレクトリは、関連する第1のレ
ベルのキャッシュに存在するキャッシュ・ラインを識別
するための基本的な内包ビットを含む。これらのビット
は、第2のレベルのキャッシュ・ラインが第1のレベル
のキャッシュからの対応するラインで置換されるとき、
又は第2のレベルのキャッシュ・ラインが別の第2のレ
ベルのキャッシュに関連する第1のレベルのキャッシュ
の動作により無効化されるとき、選択的に除かれる。第
1のレベルのキャッシュは、有効としてマーキングされ
た状態の第1のレベルのキャッシュにのみ選択的に問合
せるために基本的内包ビットを利用することによって、
第2のレベルのクロス問合せから絶縁される。このシス
テム及び関連する方法は、弱い内包設計の利点すなわち
第1のレベルのキャッシュから第2のレベルのキャッシ
ュへの通信を低減することを可能とし、しかも同時に、
強い内包設計の手法における最小限の無効化による最大
の遮蔽効果を可能とする。解析によって、この基本的内
包技術が弱い内包と強い内包の双方による多くの利点を
提供でき、それでいてそれぞれの欠点を最小とすること
が確かめられた。本発明による以上の及び他の態様は、
後述の詳細な説明により明らかにされるであろう。
特別な実施例では、個々にそれぞれのプロセッサと関連
する複数の第1のレベルのキャッシュを含み、グループ
化されることによって、複数の第1のレベルのキャッシ
ュが複数の第2のレベルのキャッシュの1つを普通に共
有することができる。第2のレベルのキャッシュ内のデ
ータは、キャッシュ・ラインにより第1のレベルのキャ
ッシュ内のデータのスーパセットである。第1及び第2
のレベルのキャッシュはディレクトリを有し、第2のレ
ベルのキャッシュのディレクトリは、関連する第1のレ
ベルのキャッシュに存在するキャッシュ・ラインを識別
するための基本的な内包ビットを含む。これらのビット
は、第2のレベルのキャッシュ・ラインが第1のレベル
のキャッシュからの対応するラインで置換されるとき、
又は第2のレベルのキャッシュ・ラインが別の第2のレ
ベルのキャッシュに関連する第1のレベルのキャッシュ
の動作により無効化されるとき、選択的に除かれる。第
1のレベルのキャッシュは、有効としてマーキングされ
た状態の第1のレベルのキャッシュにのみ選択的に問合
せるために基本的内包ビットを利用することによって、
第2のレベルのクロス問合せから絶縁される。このシス
テム及び関連する方法は、弱い内包設計の利点すなわち
第1のレベルのキャッシュから第2のレベルのキャッシ
ュへの通信を低減することを可能とし、しかも同時に、
強い内包設計の手法における最小限の無効化による最大
の遮蔽効果を可能とする。解析によって、この基本的内
包技術が弱い内包と強い内包の双方による多くの利点を
提供でき、それでいてそれぞれの欠点を最小とすること
が確かめられた。本発明による以上の及び他の態様は、
後述の詳細な説明により明らかにされるであろう。
【0011】
【実施例】図1は、本発明に関するマルチプロセッサ・
システムを概略ブロック図により示している。このシス
テムは多数のプロセッサを有しており、これらは一般的
には符号1で示されそして個々にはPXXとして識別さ
れ、それぞれが一般的に符号2で示されるL1キャッシ
ュを備えている。プロセッサとL1キャッシュとの組合
せは、IBMコーポレーションにより製造されるパワー
PC(PowerPC:商標)601マイクロプロセッサ等の市
販のマイクロプロセッサで得られる機能の代表的なもの
である。前述のように、これらの市販のマイクロプロセ
ッサは、強い内包アーキテクチャを実施するために適し
たL1からL2への通信資源を備えていない。しかしな
がら、各プロセッサはレベル1のキャッシュを備えてい
る。多くの例では、レベル1のキャッシュは実際には2
つの機能的に明確なキャッシュ部分からなっており、一
方はデータ・キャッシュであり他方は命令キャッシュで
ある。本発明は、大体においてデータ・キャッシュに関
係する。図1に示すように、プロセッサ及び関連するL
1キャッシュは、一般的に符号3で示されるL2キャッ
シュの資源をグループ毎に共有している。
システムを概略ブロック図により示している。このシス
テムは多数のプロセッサを有しており、これらは一般的
には符号1で示されそして個々にはPXXとして識別さ
れ、それぞれが一般的に符号2で示されるL1キャッシ
ュを備えている。プロセッサとL1キャッシュとの組合
せは、IBMコーポレーションにより製造されるパワー
PC(PowerPC:商標)601マイクロプロセッサ等の市
販のマイクロプロセッサで得られる機能の代表的なもの
である。前述のように、これらの市販のマイクロプロセ
ッサは、強い内包アーキテクチャを実施するために適し
たL1からL2への通信資源を備えていない。しかしな
がら、各プロセッサはレベル1のキャッシュを備えてい
る。多くの例では、レベル1のキャッシュは実際には2
つの機能的に明確なキャッシュ部分からなっており、一
方はデータ・キャッシュであり他方は命令キャッシュで
ある。本発明は、大体においてデータ・キャッシュに関
係する。図1に示すように、プロセッサ及び関連するL
1キャッシュは、一般的に符号3で示されるL2キャッ
シュの資源をグループ毎に共有している。
【0012】異なるL2キャッシュにより支援されるプ
ロセッサ間の通信は、相互接続システム4を介して実現
される。このシステムは、バス、スイッチ又はこれらの
組合せとして構築することができる。図1はまた、相互
接続システム4に結合された主メモリ6及びI/Oプロ
セッサ7が存在することも示している。
ロセッサ間の通信は、相互接続システム4を介して実現
される。このシステムは、バス、スイッチ又はこれらの
組合せとして構築することができる。図1はまた、相互
接続システム4に結合された主メモリ6及びI/Oプロ
セッサ7が存在することも示している。
【0013】L1キャッシュは、周知の方法により、各
々の関連プロセッサのための高速メモリとなる。L2キ
ャッシュ3は、いくらか遅いキャッシュメモリである
が、例えばPOO乃至PONまでのプロセッサのグループ内
の命令又はデータを共有するための資源を備える。この
配置では、L2キャッシュはさらに、相互接続システム
4において生じるメモリ・アクセスやI/O通信からの
遮蔽を可能とする。遮蔽の目的は、プロセッサによるそ
れぞれのL1キャッシュへのアクセスとの干渉を最小限
とすることである。相互接続システム4からL2キャッ
シュを介してのL1キャッシュへの問合せは、各プロセ
ッサに対してその各々のL1キャッシュへのアクセス・
タイムを共有させてしまうことによってプロセッサの性
能を低下させる。
々の関連プロセッサのための高速メモリとなる。L2キ
ャッシュ3は、いくらか遅いキャッシュメモリである
が、例えばPOO乃至PONまでのプロセッサのグループ内
の命令又はデータを共有するための資源を備える。この
配置では、L2キャッシュはさらに、相互接続システム
4において生じるメモリ・アクセスやI/O通信からの
遮蔽を可能とする。遮蔽の目的は、プロセッサによるそ
れぞれのL1キャッシュへのアクセスとの干渉を最小限
とすることである。相互接続システム4からL2キャッ
シュを介してのL1キャッシュへの問合せは、各プロセ
ッサに対してその各々のL1キャッシュへのアクセス・
タイムを共有させてしまうことによってプロセッサの性
能を低下させる。
【0014】弱い内包遮蔽は、市販の素子においても容
易に実施できる。その場合、L2キャッシュのスーパセ
ット条件すなわちL2キャッシュがそれぞれにサポート
されるL1キャッシュ内の全てのラインを含むことが、
L2内のラインの置換の際にL1内の対応するラインを
無効化することにより簡単に実現される。しかしなが
ら、弱い内包アーキテクチャは、大量の無効化処理のた
めにプロセッサのアクセスと命令の実行を遅らせる結
果、しばしばL1の失敗を誘引してしまう。これと反対
に、強い内包は、遮蔽を最大限としかつ不必要な無効化
を最小限とするためにL2キャッシュにおいてL1の内
容の包括的な知識を与えるが、L1からL2への特別で
かつ拡張的な通信を必要とする。
易に実施できる。その場合、L2キャッシュのスーパセ
ット条件すなわちL2キャッシュがそれぞれにサポート
されるL1キャッシュ内の全てのラインを含むことが、
L2内のラインの置換の際にL1内の対応するラインを
無効化することにより簡単に実現される。しかしなが
ら、弱い内包アーキテクチャは、大量の無効化処理のた
めにプロセッサのアクセスと命令の実行を遅らせる結
果、しばしばL1の失敗を誘引してしまう。これと反対
に、強い内包は、遮蔽を最大限としかつ不必要な無効化
を最小限とするためにL2キャッシュにおいてL1の内
容の包括的な知識を与えるが、L1からL2への特別で
かつ拡張的な通信を必要とする。
【0015】内包及び遮蔽の概念について、図2を参照
してさらに詳細に説明する。図2には、L2キャッシュ
8並びに2つのL1レベルのキャッシュ9及び11が描
かれている。スーパセット条件は、L2のディレクトリ
12がL1のディレクトリ13及び14の中にそれぞれ
ラインを有することを必要とする。この方法により、相
互接続システム4からのアクセスは、ディレクトリ12
内のアドレスを比較することによりそのアドレスに対応
するデータがL2キャッシュ8によりサポートされるL
1キャッシュのいずれかに存在するか否かを判断する。
ここで、ディレクトリ・アドレスは、各キャッシュのデ
ータ・アレイ内の対応するデータ位置を指示しており、
かつアドレス情報は選択された状況下においてデータ・
アレイへ転送できることを注記する。
してさらに詳細に説明する。図2には、L2キャッシュ
8並びに2つのL1レベルのキャッシュ9及び11が描
かれている。スーパセット条件は、L2のディレクトリ
12がL1のディレクトリ13及び14の中にそれぞれ
ラインを有することを必要とする。この方法により、相
互接続システム4からのアクセスは、ディレクトリ12
内のアドレスを比較することによりそのアドレスに対応
するデータがL2キャッシュ8によりサポートされるL
1キャッシュのいずれかに存在するか否かを判断する。
ここで、ディレクトリ・アドレスは、各キャッシュのデ
ータ・アレイ内の対応するデータ位置を指示しており、
かつアドレス情報は選択された状況下においてデータ・
アレイへ転送できることを注記する。
【0016】弱い内包は、L2ディレクトリ12がL1
キャッシュ・ディレクトリ13及び14内の識別される
ラインのスーパセットを保持することのみを必要とす
る。強い内包は、弱い内包のスーパセット条件に加え
て、L2ディレクトリがL1ディレクトリの内容につい
ての適切な知識をもまた保持することを必要とし、それ
によって相互接続システム4を通して要求されたL1キ
ャッシュ・ラインが実際にL1キャッシュのデータ・ア
レイの1つに有効なデータとして存在するか否かを確か
めることができる。
キャッシュ・ディレクトリ13及び14内の識別される
ラインのスーパセットを保持することのみを必要とす
る。強い内包は、弱い内包のスーパセット条件に加え
て、L2ディレクトリがL1ディレクトリの内容につい
ての適切な知識をもまた保持することを必要とし、それ
によって相互接続システム4を通して要求されたL1キ
ャッシュ・ラインが実際にL1キャッシュのデータ・ア
レイの1つに有効なデータとして存在するか否かを確か
めることができる。
【0017】本発明により提供される基本的内包は、汎
用的な弱い内包及び強い内包の実施における欠点をほぼ
取除く一方、多くの利点を保持するものである。図3に
示すように、1つの態様として基本的内包は、L2ディ
レクトリ18の中へ連続する基本的内包ビットを導入す
る。これらのビットは、図3に概略的に示すように、L
2キャッシュ・アレイ内の特別なデータ・ラインに含ま
れるディレクトリ19内のタグ・ビット24及び状態ビ
ット26のストリングに追加される。よって図3のよう
に、描かれた基本的内包ビット19(1010)は、対
応するデータ・ラインがL1レベルのキャッシュL100
及びL102内で有効であることを示す。これらはそれぞ
れ図3の対応するL1ディレクトリ内の符号22及び2
3により識別される。L2ディレクトリ内の各ライン・
エントリに対して4つの基本的内包ビットがある。一
方、もしL2ラインがL1ラインのn倍の大きさであれ
ば、L2キャッシュ・ラインに関するL2ディレクトリ
内の基本的内包ビットの数は比例して増すことになる。
同様に、基本的内包ビットの数は、L2キャッシュに関
連するL1キャッシュの数に比例して増加する。この拡
張される変化の様子は、1つのL2キャッシュが4つの
L1キャッシュにより共有されかつそのL2キャッシュ
内の1つのラインが各L1キャッシュ内の2つのライン
についてのデータを保持する状況について、図4に描か
れている。
用的な弱い内包及び強い内包の実施における欠点をほぼ
取除く一方、多くの利点を保持するものである。図3に
示すように、1つの態様として基本的内包は、L2ディ
レクトリ18の中へ連続する基本的内包ビットを導入す
る。これらのビットは、図3に概略的に示すように、L
2キャッシュ・アレイ内の特別なデータ・ラインに含ま
れるディレクトリ19内のタグ・ビット24及び状態ビ
ット26のストリングに追加される。よって図3のよう
に、描かれた基本的内包ビット19(1010)は、対
応するデータ・ラインがL1レベルのキャッシュL100
及びL102内で有効であることを示す。これらはそれぞ
れ図3の対応するL1ディレクトリ内の符号22及び2
3により識別される。L2ディレクトリ内の各ライン・
エントリに対して4つの基本的内包ビットがある。一
方、もしL2ラインがL1ラインのn倍の大きさであれ
ば、L2キャッシュ・ラインに関するL2ディレクトリ
内の基本的内包ビットの数は比例して増すことになる。
同様に、基本的内包ビットの数は、L2キャッシュに関
連するL1キャッシュの数に比例して増加する。この拡
張される変化の様子は、1つのL2キャッシュが4つの
L1キャッシュにより共有されかつそのL2キャッシュ
内の1つのラインが各L1キャッシュ内の2つのライン
についてのデータを保持する状況について、図4に描か
れている。
【0018】図5は、本発明の動作を概略的に示してい
る。プロセッサL1の対、27と28及び29と31の
記憶方式は、汎用的なストアイン(store-in)方式(又は
「ライトバック(write-back)」方式とも呼ばれる)であ
る。この方式に従い、キャッシュの失敗のために変更さ
れた(汚損された)L1キャッシュ内のラインの置換が
必要となる時点まで、プロセッサはその各々のL1キャ
ッシュとのみ相互動作する。そのような時点において、
ストアイン方式は、L1キャッシュ内のそのラインのア
ドレス及びデータがL1キャッシュ28及び31からL
2キャッシュ32へ送られるようにする。L2キャッシ
ュがない場合には、ストアイン方式はシステム・メモリ
により相当する動作を行うことになる。
る。プロセッサL1の対、27と28及び29と31の
記憶方式は、汎用的なストアイン(store-in)方式(又は
「ライトバック(write-back)」方式とも呼ばれる)であ
る。この方式に従い、キャッシュの失敗のために変更さ
れた(汚損された)L1キャッシュ内のラインの置換が
必要となる時点まで、プロセッサはその各々のL1キャ
ッシュとのみ相互動作する。そのような時点において、
ストアイン方式は、L1キャッシュ内のそのラインのア
ドレス及びデータがL1キャッシュ28及び31からL
2キャッシュ32へ送られるようにする。L2キャッシ
ュがない場合には、ストアイン方式はシステム・メモリ
により相当する動作を行うことになる。
【0019】このようなプロセッサとL1キャッシュの
方式の概念において、 本発明は基本的内包ビットの利
用を導入する。これにより、L2キャッシュ32内の内
包ビットに関するキャッシュ・ラインが(「1」に)セ
ットされて、対応するラインがメモリ33からL1キャ
ッシュ28又は31へロードされるときにデータ・ライ
ンをマーキングする。このラインのロードはL2キャッ
シュ32を介しているので、このラインはL2キャッシ
ュへもロードされる。その後、L2キャッシュ32内の
基本的内包ビットは、2つの状況のいずれかの下で
(「0」に)リセットされる。第1の状況は、L2ライ
ンが置換された場合に、メモリ33への「汚損された」
ラインの書戻しを含む記憶動作によりL1キャッシュ2
8又は31からマーキングが取除かれるものである。こ
の動作は、ストアイン方式のL1キャッシュにおける汎
用的なメモリ更新に相当する。第2の状況は、基本的内
包ビットに対応するラインが同じL2キャッシュに関連
する他のL1キャッシュの1つにより無効化されたとき
に、この基本的内包ビットが(「0」に)リセットされ
るものである。
方式の概念において、 本発明は基本的内包ビットの利
用を導入する。これにより、L2キャッシュ32内の内
包ビットに関するキャッシュ・ラインが(「1」に)セ
ットされて、対応するラインがメモリ33からL1キャ
ッシュ28又は31へロードされるときにデータ・ライ
ンをマーキングする。このラインのロードはL2キャッ
シュ32を介しているので、このラインはL2キャッシ
ュへもロードされる。その後、L2キャッシュ32内の
基本的内包ビットは、2つの状況のいずれかの下で
(「0」に)リセットされる。第1の状況は、L2ライ
ンが置換された場合に、メモリ33への「汚損された」
ラインの書戻しを含む記憶動作によりL1キャッシュ2
8又は31からマーキングが取除かれるものである。こ
の動作は、ストアイン方式のL1キャッシュにおける汎
用的なメモリ更新に相当する。第2の状況は、基本的内
包ビットに対応するラインが同じL2キャッシュに関連
する他のL1キャッシュの1つにより無効化されたとき
に、この基本的内包ビットが(「0」に)リセットされ
るものである。
【0020】ここで、L2キャッシュ32は、L2ライ
ンが有効である状態を常に所有するわけではないことを
注記する。例えば、プロセッサ27によるL1キャッシ
ュ28内のラインへの変更に関する情報が、即座にL2
キャッシュ32へ送られない場合がある。これは、L2
キャッシュ・レベルにおけるL1状態の完全な知識を必
要とする強い内包の実施とは対称的である。
ンが有効である状態を常に所有するわけではないことを
注記する。例えば、プロセッサ27によるL1キャッシ
ュ28内のラインへの変更に関する情報が、即座にL2
キャッシュ32へ送られない場合がある。これは、L2
キャッシュ・レベルにおけるL1状態の完全な知識を必
要とする強い内包の実施とは対称的である。
【0021】プロセッサ27及びL1キャッシュ28
は、相互接続システム4上のクロス問合せから継続的に
遮蔽される。相互接続問合せによって発生したL2キャ
ッシュの失敗により、更なるL1評価が不要であること
を確認する。L2キャッシュのクロス問合せの間、基本
的内包ビットに関するラインにより識別されるL1キャ
ッシュのみが、データ状態及び内容についてさらに問合
せを受けることを必要とする。さらに、基本的内包ビッ
トにより識別されるL1キャッシュのみが、L2ライン
が置換されたとき、例えばL1キャッシュ記憶動作を通
してライン無効化を通知される必要がある。最後に、通
常強い内包に関連するL1キャッシュからL2キャッシ
ュへの通信がないことにより、マルチレベル・キャッシ
ュを備えたマルチプロセッサ・システムの構築において
オンボードL1キャッシュ・システムをもつ汎用的なマ
イクロプロセッサの利用が可能となる。
は、相互接続システム4上のクロス問合せから継続的に
遮蔽される。相互接続問合せによって発生したL2キャ
ッシュの失敗により、更なるL1評価が不要であること
を確認する。L2キャッシュのクロス問合せの間、基本
的内包ビットに関するラインにより識別されるL1キャ
ッシュのみが、データ状態及び内容についてさらに問合
せを受けることを必要とする。さらに、基本的内包ビッ
トにより識別されるL1キャッシュのみが、L2ライン
が置換されたとき、例えばL1キャッシュ記憶動作を通
してライン無効化を通知される必要がある。最後に、通
常強い内包に関連するL1キャッシュからL2キャッシ
ュへの通信がないことにより、マルチレベル・キャッシ
ュを備えたマルチプロセッサ・システムの構築において
オンボードL1キャッシュ・システムをもつ汎用的なマ
イクロプロセッサの利用が可能となる。
【0022】まとめとして、本発明の構成に関して以下
の事項を開示する。
の事項を開示する。
【0023】(1)データのラインに対してストアイン
方式を用いる各々のプロセッサとそれぞれ関連する複数
の第1のレベルのキャッシュと、前記第1のレベルのキ
ャッシュとそれぞれ関連し、該関連する第1のレベルの
キャッシュに記憶された前記データのラインのスーパセ
ットを記憶する複数の第2のレベルのキャッシュと、第
2のレベルのキャッシュ・ラインが関連する第1のレベ
ルのキャッシュへロードされたときに該第2のレベルの
キャッシュ・ラインをマーキングし、かつ該ラインが関
連する第1のレベルのキャッシュからのラインで置換さ
れたときは該第2のレベルのキャッシュ・ラインから該
マーキングを取除くための手段と、第2のレベルのキャ
ッシュの対応するラインの問合せに応答してマーキング
されたラインをもつ第1のレベルのキャッシュを選択的
に問合せるための手段とを有するデータ処理システム。 (2)関連する第1のレベルのキャッシュによる対応す
るラインの無効化に応答して第2のレベルのキャッシュ
・ラインからマーキングを選択的に取除くための手段を
有する上記(1)に記載のデータ処理システム。 (3)関連する第2のレベルのキャッシュの対応するラ
インの置換に応答して第1のレベルのキャッシュ・ライ
ンを選択的に無効化するための手段を有する上記(2)
に記載のデータ処理システム。 (4)前記マーキングが、キャッシュ・ライン・アドレ
スによるものである上記(3)に記載のデータ処理シス
テム。 (5)前記マーキングが、内包(inclusion)ビットによ
るものである上記(4)に記載のデータ処理システム。 (6)前記マーキングが、第2のレベルのキャッシュの
ディレクトリ内でされる上記(5)に記載のデータ処理
システム。 (7)データのラインに対してストアイン方式を用いる
各々のプロセッサとそれぞれ関連する複数の第1のレベ
ルのキャッシュと、前記第1のレベルのキャッシュとそ
れぞれ関連しかつ該関連する第1のレベルのキャッシュ
に記憶された前記データのラインのスーパセットを記憶
する複数の第2のレベルのキャッシュとを有するマルチ
プロセッサの階層キャッシュ・システムを制御するため
の方法であって、関連する第1のレベルのキャッシュに
対応するラインをロードするとき第2のレベルのキャッ
シュ・ラインをマーキングするステップと、前記第2の
レベルのキャッシュ・ラインが関連する第1のレベルの
キャッシュからのラインで置換されたときは該第2のレ
ベルのキャッシュ・ラインからマーキングを選択的に取
除くステップと、第2のレベルのキャッシュの対応する
ラインの問合せに応答してマーキングされたラインをも
つ第1のレベルのキャッシュに選択的に問合せるステッ
プとを有するマルチプロセッサの階層キャッシュ・シス
テムを制御するための方法。 (8)関連する第1のレベルのキャッシュによる対応す
るラインの無効化に応答して第2のレベルのキャッシュ
・ラインからマーキングを選択的に取除くステップを有
する上記(7)に記載の方法。 (9)前記関連する第2のレベルのキャッシュの対応す
るラインの置換に応答して第1のレベルのキャッシュ・
ラインを選択的に無効化するステップを有する上記
(8)に記載の方法。 (10)キャッシュ・ライン・アドレスにより前記第2
のレベルのキャッシュ内のマーキングをグループ化する
ステップを有する上記(9)に記載の方法。 (11)前記マーキングが、内包ビットによるものであ
る上記(10)に記載の方法。 (12)前記マーキングが、前記第2のレベルのキャッ
シュのキャッシュ・ディレクトリ内にされる上記(1
1)に記載の方法。
方式を用いる各々のプロセッサとそれぞれ関連する複数
の第1のレベルのキャッシュと、前記第1のレベルのキ
ャッシュとそれぞれ関連し、該関連する第1のレベルの
キャッシュに記憶された前記データのラインのスーパセ
ットを記憶する複数の第2のレベルのキャッシュと、第
2のレベルのキャッシュ・ラインが関連する第1のレベ
ルのキャッシュへロードされたときに該第2のレベルの
キャッシュ・ラインをマーキングし、かつ該ラインが関
連する第1のレベルのキャッシュからのラインで置換さ
れたときは該第2のレベルのキャッシュ・ラインから該
マーキングを取除くための手段と、第2のレベルのキャ
ッシュの対応するラインの問合せに応答してマーキング
されたラインをもつ第1のレベルのキャッシュを選択的
に問合せるための手段とを有するデータ処理システム。 (2)関連する第1のレベルのキャッシュによる対応す
るラインの無効化に応答して第2のレベルのキャッシュ
・ラインからマーキングを選択的に取除くための手段を
有する上記(1)に記載のデータ処理システム。 (3)関連する第2のレベルのキャッシュの対応するラ
インの置換に応答して第1のレベルのキャッシュ・ライ
ンを選択的に無効化するための手段を有する上記(2)
に記載のデータ処理システム。 (4)前記マーキングが、キャッシュ・ライン・アドレ
スによるものである上記(3)に記載のデータ処理シス
テム。 (5)前記マーキングが、内包(inclusion)ビットによ
るものである上記(4)に記載のデータ処理システム。 (6)前記マーキングが、第2のレベルのキャッシュの
ディレクトリ内でされる上記(5)に記載のデータ処理
システム。 (7)データのラインに対してストアイン方式を用いる
各々のプロセッサとそれぞれ関連する複数の第1のレベ
ルのキャッシュと、前記第1のレベルのキャッシュとそ
れぞれ関連しかつ該関連する第1のレベルのキャッシュ
に記憶された前記データのラインのスーパセットを記憶
する複数の第2のレベルのキャッシュとを有するマルチ
プロセッサの階層キャッシュ・システムを制御するため
の方法であって、関連する第1のレベルのキャッシュに
対応するラインをロードするとき第2のレベルのキャッ
シュ・ラインをマーキングするステップと、前記第2の
レベルのキャッシュ・ラインが関連する第1のレベルの
キャッシュからのラインで置換されたときは該第2のレ
ベルのキャッシュ・ラインからマーキングを選択的に取
除くステップと、第2のレベルのキャッシュの対応する
ラインの問合せに応答してマーキングされたラインをも
つ第1のレベルのキャッシュに選択的に問合せるステッ
プとを有するマルチプロセッサの階層キャッシュ・シス
テムを制御するための方法。 (8)関連する第1のレベルのキャッシュによる対応す
るラインの無効化に応答して第2のレベルのキャッシュ
・ラインからマーキングを選択的に取除くステップを有
する上記(7)に記載の方法。 (9)前記関連する第2のレベルのキャッシュの対応す
るラインの置換に応答して第1のレベルのキャッシュ・
ラインを選択的に無効化するステップを有する上記
(8)に記載の方法。 (10)キャッシュ・ライン・アドレスにより前記第2
のレベルのキャッシュ内のマーキングをグループ化する
ステップを有する上記(9)に記載の方法。 (11)前記マーキングが、内包ビットによるものであ
る上記(10)に記載の方法。 (12)前記マーキングが、前記第2のレベルのキャッ
シュのキャッシュ・ディレクトリ内にされる上記(1
1)に記載の方法。
【0024】
【発明の効果】強い内包、弱い内包及び基本的内包によ
る性能の相対的比較により、システム設計アーキテクチ
ャ及び動作の方法としての基本的内包の有効性を確認す
る。実施例では、2つのL1キャッシュが1つのL2キ
ャッシュを共有し、それぞれのヒット率はL1について
は95%、L2については98%である。プロセッサに
よる各L1への100回のアクセス毎に、L2への外部
クロス問合せがあると考えられる。さらに、L2にヒッ
トする各クロス問合せについて、L1へ通す必要のある
ものは60%の確率とされている。データ・ラインの1
0%は初期に双方のL1キャッシュへ記憶されるが、そ
れらの5%は双方のL1キャッシュないに留まる。最後
に、L1置換の35%は、汚損された置換である。この
ようなパラメタの考え方において、そして100万回の
L1アクセスについて、L2からL1への無効化の回数
はそれぞれ以下のようになった。
る性能の相対的比較により、システム設計アーキテクチ
ャ及び動作の方法としての基本的内包の有効性を確認す
る。実施例では、2つのL1キャッシュが1つのL2キ
ャッシュを共有し、それぞれのヒット率はL1について
は95%、L2については98%である。プロセッサに
よる各L1への100回のアクセス毎に、L2への外部
クロス問合せがあると考えられる。さらに、L2にヒッ
トする各クロス問合せについて、L1へ通す必要のある
ものは60%の確率とされている。データ・ラインの1
0%は初期に双方のL1キャッシュへ記憶されるが、そ
れらの5%は双方のL1キャッシュないに留まる。最後
に、L1置換の35%は、汚損された置換である。この
ようなパラメタの考え方において、そして100万回の
L1アクセスについて、L2からL1への無効化の回数
はそれぞれ以下のようになった。
【0025】弱い内包 ・・・600,000回 強い内包 ・・・189,000回 基本的内包・・・209,500回
【0026】さらに、これらのパラメタの下でのL1か
らL2への必要とされる通信の回数は、以下のようにな
った。 弱い内包 ・・・175,000回 強い内包 ・・・500,000回 基本的内包・・・175,500回
らL2への必要とされる通信の回数は、以下のようにな
った。 弱い内包 ・・・175,000回 強い内包 ・・・500,000回 基本的内包・・・175,500回
【0027】基本的内包が、強い内包とほぼ同じ無効化
回数を示しながら、弱い内包と実質的に同じ通信回数を
示したことを注記する。双方の回数の目標は、これらの
計数を最小限とすることである。先ず第1に、これらの
有望な結果が、L2キャッシュにおいて全ての有効なL
1内容の完全な複写を保持できるような特別な通信のた
めの資源を備えていない汎用的なマイクロプロセッサ設
計を用いるシステム・アーキテクチャによって実現され
ることを理解されたい。
回数を示しながら、弱い内包と実質的に同じ通信回数を
示したことを注記する。双方の回数の目標は、これらの
計数を最小限とすることである。先ず第1に、これらの
有望な結果が、L2キャッシュにおいて全ての有効なL
1内容の完全な複写を保持できるような特別な通信のた
めの資源を備えていない汎用的なマイクロプロセッサ設
計を用いるシステム・アーキテクチャによって実現され
ることを理解されたい。
【0028】図6の別の実施例は、L2キャッシュの基
本的内包ビットがタグと状態のディレクトリに記憶され
る必要がないことを示している。これらのビットは、別
々ではあるがリンクされたディレクトリに保有されても
よい。このようなフレキシビリティがあることから、基
本的内包アーキテクチャと動作方法とを、図6の基本的
内包ディレクトリ34等の補足的なディレクトリを追加
することにより既存の設計と一体化させることができ
る。
本的内包ビットがタグと状態のディレクトリに記憶され
る必要がないことを示している。これらのビットは、別
々ではあるがリンクされたディレクトリに保有されても
よい。このようなフレキシビリティがあることから、基
本的内包アーキテクチャと動作方法とを、図6の基本的
内包ディレクトリ34等の補足的なディレクトリを追加
することにより既存の設計と一体化させることができ
る。
【図1】マルチプロセッサ、マルチレベル・キャッシュ
・コンピュータ・システムの概略ブロック図である。
・コンピュータ・システムの概略ブロック図である。
【図2】L2キャッシュとマルチプルL1キャッシュと
の間の相互キャッシュ通信を示す概略ブロック図であ
る。
の間の相互キャッシュ通信を示す概略ブロック図であ
る。
【図3】L2キャッシュ・ディレクトリ内の基本的内包
ビットの配置を示す概略ブロック図である。
ビットの配置を示す概略ブロック図である。
【図4】異なるL1とL2のライン・サイズをもつ基本
的内包ビットの利用を概略的に示したものである。
的内包ビットの利用を概略的に示したものである。
【図5】基本的内包の実施に関連するビットのセット及
びリセットを概略的に示したものである。
びリセットを概略的に示したものである。
【図6】分離したディレクトリをもつ内包ビットの利用
を概略的に示したものである。
を概略的に示したものである。
1 プロセッサ 2 L1キャッシュ 3 L2キャッシュ 4 相互接続システム 6 主メモリ 7 I/Oプロセッサ
フロントページの続き (72)発明者 ウェンーハン・ワン アメリカ合衆国97225、オレゴン州、ポー トランド、サウス・ウェスト・ビューモン ト・ドライブ 745
Claims (12)
- 【請求項1】データのラインに対してストアイン方式を
用いる各々のプロセッサとそれぞれ関連する複数の第1
のレベルのキャッシュと、 前記第1のレベルのキャッシュとそれぞれ関連し、該関
連する第1のレベルのキャッシュに記憶された前記デー
タのラインのスーパセットを記憶する複数の第2のレベ
ルのキャッシュと、 第2のレベルのキャッシュ・ラインが関連する第1のレ
ベルのキャッシュへロードされたときに該第2のレベル
のキャッシュ・ラインをマーキングし、かつ該ラインが
関連する第1のレベルのキャッシュからのラインで置換
されたときは該第2のレベルのキャッシュ・ラインから
該マーキングを取除くための手段と、 第2のレベルのキャッシュの対応するラインの問合せに
応答してマーキングされたラインをもつ第1のレベルの
キャッシュを選択的に問合せるための手段とを有するデ
ータ処理システム。 - 【請求項2】関連する第1のレベルのキャッシュによる
対応するラインの無効化に応答して第2のレベルのキャ
ッシュ・ラインからマーキングを選択的に取除くための
手段を有する請求項1に記載のデータ処理システム。 - 【請求項3】関連する第2のレベルのキャッシュの対応
するラインの置換に応答して第1のレベルのキャッシュ
・ラインを選択的に無効化するための手段を有する請求
項2に記載のデータ処理システム。 - 【請求項4】前記マーキングが、キャッシュ・ライン・
アドレスによるものである請求項3に記載のデータ処理
システム。 - 【請求項5】前記マーキングが、内包(inclusion)ビッ
トによるものである請求項4に記載のデータ処理システ
ム。 - 【請求項6】前記マーキングが、第2のレベルのキャッ
シュのディレクトリ内でされる請求項5に記載のデータ
処理システム。 - 【請求項7】データのラインに対してストアイン方式を
用いる各々のプロセッサとそれぞれ関連する複数の第1
のレベルのキャッシュと、前記第1のレベルのキャッシ
ュとそれぞれ関連しかつ該関連する第1のレベルのキャ
ッシュに記憶された前記データのラインのスーパセット
を記憶する複数の第2のレベルのキャッシュとを有する
マルチプロセッサの階層キャッシュ・システムを制御す
るための方法であって、 関連する第1のレベルのキャッシュに対応するラインを
ロードするとき第2のレベルのキャッシュ・ラインをマ
ーキングするステップと、 前記第2のレベルのキャッシュ・ラインが関連する第1
のレベルのキャッシュからのラインで置換されたときは
該第2のレベルのキャッシュ・ラインからマーキングを
選択的に取除くステップと、 第2のレベルのキャッシュの対応するラインの問合せに
応答してマーキングされたラインをもつ第1のレベルの
キャッシュに選択的に問合せるステップとを有するマル
チプロセッサの階層キャッシュ・システムを制御するた
めの方法。 - 【請求項8】関連する第1のレベルのキャッシュによる
対応するラインの無効化に応答して第2のレベルのキャ
ッシュ・ラインからマーキングを選択的に取除くステッ
プを有する請求項7に記載の方法。 - 【請求項9】前記関連する第2のレベルのキャッシュの
対応するラインの置換に応答して第1のレベルのキャッ
シュ・ラインを選択的に無効化するステップを有する請
求項8に記載の方法。 - 【請求項10】キャッシュ・ライン・アドレスにより前
記第2のレベルのキャッシュ内のマーキングをグループ
化するステップを有する請求項9に記載の方法。 - 【請求項11】前記マーキングが、内包ビットによるも
のである請求項10に記載の方法。 - 【請求項12】前記マーキングが、前記第2のレベルの
キャッシュのキャッシュ・ディレクトリ内にされる請求
項11に記載の方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US136631 | 1993-10-14 | ||
US08/136,631 US5530832A (en) | 1993-10-14 | 1993-10-14 | System and method for practicing essential inclusion in a multiprocessor and cache hierarchy |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH07121442A true JPH07121442A (ja) | 1995-05-12 |
Family
ID=22473672
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP6183618A Pending JPH07121442A (ja) | 1993-10-14 | 1994-08-04 | データ処理システム及び制御方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US5530832A (ja) |
EP (1) | EP0649094A1 (ja) |
JP (1) | JPH07121442A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007058349A (ja) * | 2005-08-22 | 2007-03-08 | Fujitsu Ltd | キャッシュシステム |
JP2009037615A (ja) * | 2007-07-31 | 2009-02-19 | Intel Corp | 複数のコアキャッシュ・クラスタ間の包括的共有キャッシュの提供 |
JP2009252165A (ja) * | 2008-04-10 | 2009-10-29 | Toshiba Corp | マルチプロセッサシステム |
US8762647B2 (en) | 2011-06-15 | 2014-06-24 | Kabushiki Kaisha Toshiba | Multicore processor system and multicore processor |
Families Citing this family (54)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3132749B2 (ja) * | 1994-12-05 | 2001-02-05 | インターナショナル・ビジネス・マシーンズ・コーポレ−ション | マルチプロセッサ・データ処理システム |
WO1996033462A1 (de) * | 1995-04-18 | 1996-10-24 | International Business Machines Corporation | Cache-speicher |
US5740400A (en) * | 1995-06-05 | 1998-04-14 | Advanced Micro Devices Inc. | Reducing cache snooping overhead in a multilevel cache system with multiple bus masters and a shared level two cache by using an inclusion field |
US5850534A (en) * | 1995-06-05 | 1998-12-15 | Advanced Micro Devices, Inc. | Method and apparatus for reducing cache snooping overhead in a multilevel cache system |
US5778426A (en) * | 1995-10-23 | 1998-07-07 | Symbios, Inc. | Methods and structure to maintain a two level cache in a RAID controller and thereby selecting a preferred posting method |
US5875462A (en) * | 1995-12-28 | 1999-02-23 | Unisys Corporation | Multi-processor data processing system with multiple second level caches mapable to all of addressable memory |
US6070233A (en) * | 1996-01-26 | 2000-05-30 | Unisys Corporation | Processor bus traffic optimization system for multi-level cache utilizing reflection status bit to indicate data inclusion in higher level cache |
US5832250A (en) * | 1996-01-26 | 1998-11-03 | Unisys Corporation | Multi set cache structure having parity RAMs holding parity bits for tag data and for status data utilizing prediction circuitry that predicts and generates the needed parity bits |
US6021466A (en) * | 1996-03-14 | 2000-02-01 | Compaq Computer Corporation | Transferring data between caches in a multiple processor environment |
US5835946A (en) * | 1996-04-18 | 1998-11-10 | International Business Machines Corporation | High performance implementation of the load reserve instruction in a superscalar microprocessor that supports multi-level cache organizations |
US5829038A (en) * | 1996-06-20 | 1998-10-27 | Intel Corporation | Backward inquiry to lower level caches prior to the eviction of a modified line from a higher level cache in a microprocessor hierarchical cache structure |
US5926830A (en) * | 1996-10-07 | 1999-07-20 | International Business Machines Corporation | Data processing system and method for maintaining coherency between high and low level caches using inclusive states |
US5809526A (en) * | 1996-10-28 | 1998-09-15 | International Business Machines Corporation | 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 |
US5924116A (en) * | 1997-04-02 | 1999-07-13 | International Business Machines Corporation | Collaborative caching of a requested object by a lower level node as a function of the caching status of the object at a higher level node |
US6115794A (en) * | 1997-04-14 | 2000-09-05 | International Business Machines Corporation | Method and system of providing a pseudo-precise inclusivity scheme in a sectored cache memory for maintaining cache coherency within a data-processing system |
US6175899B1 (en) * | 1997-05-19 | 2001-01-16 | International Business Machines Corporation | Method for providing virtual atomicity in multi processor environment having access to multilevel caches |
US5996048A (en) * | 1997-06-20 | 1999-11-30 | Sun Microsystems, Inc. | Inclusion vector architecture for a level two cache |
US6115795A (en) * | 1997-08-06 | 2000-09-05 | International Business Machines Corporation | Method and apparatus for configurable multiple level cache with coherency in a multiprocessor system |
US6138209A (en) * | 1997-09-05 | 2000-10-24 | International Business Machines Corporation | Data processing system and multi-way set associative cache utilizing class predict data structure and method thereof |
US6000015A (en) * | 1997-09-16 | 1999-12-07 | Unisys Corporation | Processor bus traffic optimization system for multi-level cache utilizing reflection status bit to indicate data inclusion in a higher level cache |
US6115703A (en) * | 1998-05-11 | 2000-09-05 | International Business Machines Corporation | Two-level caching system for prepared SQL statements in a relational database management system |
US6295598B1 (en) * | 1998-06-30 | 2001-09-25 | Src Computers, Inc. | Split directory-based cache coherency technique for a multi-processor computer system |
US6240490B1 (en) | 1998-07-20 | 2001-05-29 | International Business Machines Corporation | Comprehensive multilevel cache preloading mechanism in a multiprocessing simulation environment |
US6792507B2 (en) | 2000-12-14 | 2004-09-14 | Maxxan Systems, Inc. | Caching system and method for a network storage system |
US6684297B2 (en) * | 2001-04-11 | 2004-01-27 | Sun Microsystems, Inc. | Reverse directory for facilitating accesses involving a lower-level cache |
US6701417B2 (en) * | 2001-04-11 | 2004-03-02 | Sun Microsystems, Inc. | Method and apparatus for supporting multiple cache line invalidations per cycle |
US20030084219A1 (en) * | 2001-10-26 | 2003-05-01 | Maxxan Systems, Inc. | System, apparatus and method for address forwarding for a computer network |
US7145914B2 (en) * | 2001-12-31 | 2006-12-05 | Maxxan Systems, Incorporated | System and method for controlling data paths of a network processor subsystem |
US7085846B2 (en) * | 2001-12-31 | 2006-08-01 | Maxxan Systems, Incorporated | Buffer to buffer credit flow control for computer network |
US7307995B1 (en) | 2002-04-05 | 2007-12-11 | Ciphermax, Inc. | System and method for linking a plurality of network switches |
US7406038B1 (en) | 2002-04-05 | 2008-07-29 | Ciphermax, Incorporated | System and method for expansion of computer network switching system without disruption thereof |
US7379970B1 (en) | 2002-04-05 | 2008-05-27 | Ciphermax, Inc. | Method and system for reduced distributed event handling in a network environment |
US7295561B1 (en) | 2002-04-05 | 2007-11-13 | Ciphermax, Inc. | Fibre channel implementation using network processors |
US20030195956A1 (en) * | 2002-04-15 | 2003-10-16 | Maxxan Systems, Inc. | System and method for allocating unique zone membership |
US20030200330A1 (en) * | 2002-04-22 | 2003-10-23 | Maxxan Systems, Inc. | System and method for load-sharing computer network switch |
US7024519B2 (en) * | 2002-05-06 | 2006-04-04 | Sony Computer Entertainment Inc. | Methods and apparatus for controlling hierarchical cache memory |
US7711901B2 (en) * | 2004-02-13 | 2010-05-04 | Intel Corporation | Method, system, and apparatus for an hierarchical cache line replacement |
US7664828B2 (en) * | 2004-02-20 | 2010-02-16 | Microsoft Corporation | Invalid policy detection |
US7243157B2 (en) * | 2004-02-20 | 2007-07-10 | Microsoft Corporation | Dynamic protocol construction |
US7496649B2 (en) * | 2004-02-20 | 2009-02-24 | Microsoft Corporation | Policy application across multiple nodes |
US20060053258A1 (en) * | 2004-09-08 | 2006-03-09 | Yen-Cheng Liu | Cache filtering using core indicators |
US7991966B2 (en) * | 2004-12-29 | 2011-08-02 | Intel Corporation | Efficient usage of last level caches in a MCMP system using application level configuration |
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 |
JP2007156821A (ja) * | 2005-12-05 | 2007-06-21 | Fujitsu Ltd | キャッシュシステム及び共用2次キャッシュ |
US7577793B2 (en) * | 2006-01-19 | 2009-08-18 | International Business Machines Corporation | Patrol snooping for higher level cache eviction candidate identification |
US8176255B2 (en) * | 2007-10-19 | 2012-05-08 | Hewlett-Packard Development Company, L.P. | Allocating space in dedicated cache ways |
JP5440067B2 (ja) * | 2009-09-18 | 2014-03-12 | 富士通株式会社 | キャッシュメモリ制御装置およびキャッシュメモリ制御方法 |
US9355109B2 (en) * | 2010-06-11 | 2016-05-31 | The Research Foundation For The State University Of New York | Multi-tier caching |
US20110320720A1 (en) * | 2010-06-23 | 2011-12-29 | International Business Machines Corporation | Cache Line Replacement In A Symmetric Multiprocessing Computer |
US8489822B2 (en) | 2010-11-23 | 2013-07-16 | Intel Corporation | Providing a directory cache for peripheral devices |
US9122612B2 (en) * | 2012-06-25 | 2015-09-01 | Advanced Micro Devices, Inc. | Eliminating fetch cancel for inclusive caches |
US9058269B2 (en) * | 2012-06-25 | 2015-06-16 | Advanced Micro Devices, Inc. | Method and apparatus including a probe filter for shared caches utilizing inclusion bits and a victim probe bit |
US9058282B2 (en) | 2012-12-31 | 2015-06-16 | Intel Corporation | Dynamic cache write policy |
US9652233B2 (en) * | 2013-08-20 | 2017-05-16 | Apple Inc. | Hint values for use with an operand cache |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS60138653A (ja) * | 1983-12-27 | 1985-07-23 | Hitachi Ltd | 階層記憶制御方式 |
JPS61290550A (ja) * | 1985-06-19 | 1986-12-20 | Hitachi Ltd | 階層記憶制御方式 |
JPH01228035A (ja) * | 1988-03-08 | 1989-09-12 | Fujitsu Ltd | データ処理装置 |
JPH04357541A (ja) * | 1990-07-27 | 1992-12-10 | Fujitsu Ltd | 階層メモリ制御方式 |
JPH052534A (ja) * | 1991-06-26 | 1993-01-08 | Agency Of Ind Science & Technol | 階層キヤツシユ・メモリ装置 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6154547A (ja) * | 1984-08-24 | 1986-03-18 | インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション | 3レベルの階層メモリを備えたデ−タ処理システム |
US4774654A (en) * | 1984-12-24 | 1988-09-27 | International Business Machines Corporation | Apparatus and method for prefetching subblocks from a low speed memory to a high speed memory of a memory hierarchy depending upon state of replacing bit in the low speed memory |
US4797814A (en) * | 1986-05-01 | 1989-01-10 | International Business Machines Corporation | Variable address mode cache |
US5023776A (en) * | 1988-02-22 | 1991-06-11 | International Business Machines Corp. | Store queue for a tightly coupled multiple processor configuration with two-level cache buffer storage |
EP0348628A3 (en) * | 1988-06-28 | 1991-01-02 | International Business Machines Corporation | Cache storage system |
US4939641A (en) * | 1988-06-30 | 1990-07-03 | Wang Laboratories, Inc. | Multi-processor system with cache memories |
US5307477A (en) * | 1989-12-01 | 1994-04-26 | Mips Computer Systems, Inc. | Two-level cache memory system |
ATE170642T1 (de) * | 1990-06-15 | 1998-09-15 | Compaq Computer Corp | Mehrstufeneinschluss in mehrstufigen cache- speicherhierarchien |
CA2045788A1 (en) * | 1990-06-29 | 1991-12-30 | Kadangode K. Ramakrishnan | Cache arrangement for file system in digital data processing system |
US5269013A (en) * | 1991-03-20 | 1993-12-07 | Digital Equipment Corporation | Adaptive memory management method for coupled memory multiprocessor systems |
US5265232A (en) * | 1991-04-03 | 1993-11-23 | International Business Machines Corporation | Coherence control by data invalidation in selected processor caches without broadcasting to processor caches not having the data |
DE69225876T2 (de) * | 1991-12-24 | 1998-12-10 | Motorola, Inc., Schaumburg, Ill. | Cachesteuerungsschaltung |
-
1993
- 1993-10-14 US US08/136,631 patent/US5530832A/en not_active Expired - Fee Related
-
1994
- 1994-08-04 JP JP6183618A patent/JPH07121442A/ja active Pending
- 1994-09-12 EP EP94306672A patent/EP0649094A1/en not_active Withdrawn
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS60138653A (ja) * | 1983-12-27 | 1985-07-23 | Hitachi Ltd | 階層記憶制御方式 |
JPS61290550A (ja) * | 1985-06-19 | 1986-12-20 | Hitachi Ltd | 階層記憶制御方式 |
JPH01228035A (ja) * | 1988-03-08 | 1989-09-12 | Fujitsu Ltd | データ処理装置 |
JPH04357541A (ja) * | 1990-07-27 | 1992-12-10 | Fujitsu Ltd | 階層メモリ制御方式 |
JPH052534A (ja) * | 1991-06-26 | 1993-01-08 | Agency Of Ind Science & Technol | 階層キヤツシユ・メモリ装置 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007058349A (ja) * | 2005-08-22 | 2007-03-08 | Fujitsu Ltd | キャッシュシステム |
JP2009037615A (ja) * | 2007-07-31 | 2009-02-19 | Intel Corp | 複数のコアキャッシュ・クラスタ間の包括的共有キャッシュの提供 |
JP2009252165A (ja) * | 2008-04-10 | 2009-10-29 | Toshiba Corp | マルチプロセッサシステム |
US8762647B2 (en) | 2011-06-15 | 2014-06-24 | Kabushiki Kaisha Toshiba | Multicore processor system and multicore processor |
Also Published As
Publication number | Publication date |
---|---|
EP0649094A1 (en) | 1995-04-19 |
US5530832A (en) | 1996-06-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH07121442A (ja) | データ処理システム及び制御方法 | |
US4370710A (en) | Cache memory organization utilizing miss information holding registers to prevent lockup from cache misses | |
US8909871B2 (en) | Data processing system and method for reducing cache pollution by write stream memory access patterns | |
US6490658B1 (en) | Data prefetch technique using prefetch cache, micro-TLB, and history file | |
US9251095B2 (en) | Providing metadata in a translation lookaside buffer (TLB) | |
US5584013A (en) | 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 | |
US7032074B2 (en) | Method and mechanism to use a cache to translate from a virtual bus to a physical bus | |
JP5078364B2 (ja) | デュアル・システム・ディレクトリ構造体を有するマルチプロセッサ・システムおよび方法 | |
US5715427A (en) | Semi-associative cache with MRU/LRU replacement | |
US5440707A (en) | Instruction and data cache with a shared TLB for split accesses and snooping in the same clock cycle | |
US20030061450A1 (en) | List based method and apparatus for selective and rapid cache flushes | |
US5765199A (en) | Data processor with alocate bit and method of operation | |
US6629209B1 (en) | Cache coherency protocol permitting sharing of a locked data granule | |
JPH11509356A (ja) | キャッシュシステム | |
KR100322225B1 (ko) | 배회(h) 상태 및 최근(r) 상태를 갖는캐쉬 코히어런시 프로토콜 | |
US5909698A (en) | Cache block store instruction operations where cache coherency is achieved without writing all the way back to main memory | |
US5737749A (en) | Method and system for dynamically sharing cache capacity in a microprocessor | |
US5809526A (en) | Data processing system and method for selective invalidation of outdated lines in a second level memory in response to a memory request initiated by a store operation | |
US8473686B2 (en) | Computer cache system with stratified replacement | |
US6950906B2 (en) | System for and method of operating a cache | |
US6178484B1 (en) | DCBST with ICBI mechanism to maintain coherency of bifurcated data and instruction caches | |
US6629214B1 (en) | Extended cache coherency protocol with a persistent “lock acquired” state | |
EP0220451B1 (en) | A cache coherence mechanism based on locking | |
US6256710B1 (en) | Cache management during cache inhibited transactions for increasing cache efficiency | |
US6101582A (en) | Dcbst with icbi mechanism |