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
Application number
JP6183618A
Other languages
English (en)
Inventor
Kimming So
キミング・ソー
Wen-Hann Wang
ウェンーハン・ワン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH07121442A publication Critical patent/JPH07121442A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, 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キャッシュに存在する対応するラインとの間の関係を
キャッシュ・ラインによって示すために内包ビットを利
用する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、一般的にはコンピュー
タのメモリ・アーキテクチャに関する。特に、本発明
は、複数のキャッシュ及びキャッシュ・レベルを含むマ
ルチプロセッサ・アーキテクチャにおける第1のレベル
(L1)のキャッシュと第2のレベル(L2)のキャッ
シュとの間のインターフェースを目的とする。
【0002】
【従来の技術】複数のプロセッサを含み、このようなマ
ルチプロセッサに関連するマルチレベル・キャッシュ・
アーキテクチャを有するコンピュータ・アーキテクチャ
は、近年、特に注目されかつ技術的に成長してきた分野
となっている。有力な研究として、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)」を与えるアー
キテクチャとは対称的である。
【0004】内包の2つの両極端を検討すると、「弱い
内包」を実施するシステムは、単にL2キャッシュと関
連のL1キャッシュとの間のスーパセット条件を保持す
るのみである。従って、この手法は、L2キャッシュに
て検知されるメモリ要求によって探索されるラインをい
ずれかのL1キャッシュが有するかをL2キャッシュが
信頼性をもって判断するための適切な情報を保持しな
い。それと対称的に、かつ内包のもう一方の極として、
「強い内包」は、L1の内容及び状態についての包括的
な知識を関連するL2に与えることによって、有効であ
ると認知されかつ関連するL1キャッシュに記憶された
キャッシュ・ラインに対する要求のみが、L2から取出
される。
【0005】弱い内包のアーキテクチャは、L2キャッ
シュのラインの任意の置換に対して対応するL1ライン
の無効化を実行することにより簡単にスーパセット条件
が得られるので、設計容易である。しかしながら、弱い
内包アーキテクチャは、L2キャッシュに対し、L1の
内容について極めて少ない情報しか与えない。L1の無
効化は非常に頻繁に発生し、頻繁な更新割込みが必要と
されるため、プロセッサにとってL1の利用性が抑制さ
れてしまう。
【0006】L2キャッシュによりもたらされるメモリ
・アクセスの遮蔽(shielding)は、「強い内包」アー
キテクチャの実施により改善される。しかしながらこの
アーキテクチャは、L2において適切な知識を保持する
ために、L1キャッシュと関連のL2キャッシュとの間
の拡張的な通信を必要とする。よって、強い内包アーキ
テクチャが最適な遮蔽効果を得るにも拘らず、L2にお
いてL1の内容の完全な知識を保持するためにL1とL
2との間の通信が頻繁となることから、全体的なシステ
ム速度は劣化してしまう。
【0007】
【発明が解決しようとする課題】従って、L2キャッシ
ュとサポートされるL1キャッシュとの間に好ましくな
い大量の通信を導引することなくL2キャッシュによる
合理的な遮蔽を可能とするマルチレベル・キャッシュ・
アーキテクチャが依然として必要とされている。ほとん
どのアーキテクチャでは、L2キャッシュは、多数のL
1キャッシュ及びそれらと関連するプロセッサのために
働かなければならず、その一方で全てのキャッシュ・コ
ヒーレンス要求を満足しなければならない。最後に、レ
ベル間の通信の態様は、オンボードのL1キャッシュを
有するがL1からL2への通信機構をもたない市販のマ
イクロプロセッサに存在する資源と一致すべきである。
【0008】
【課題を解決するための手段】本発明は、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のレベルのキャッシュ・ラ
インに選択的に問合せるための手段とから構成される。
別の態様では、本発明は、そのように構成されたシステ
ムを実施するための方法に関する。
【0010】本発明による階層キャッシュ・システムの
特別な実施例では、個々にそれぞれのプロセッサと関連
する複数の第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キャッ
シュの資源をグループ毎に共有している。
【0012】異なるL2キャッシュにより支援されるプ
ロセッサ間の通信は、相互接続システム4を介して実現
される。このシステムは、バス、スイッチ又はこれらの
組合せとして構築することができる。図1はまた、相互
接続システム4に結合された主メモリ6及びI/Oプロ
セッサ7が存在することも示している。
【0013】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への特別で
かつ拡張的な通信を必要とする。
【0015】内包及び遮蔽の概念について、図2を参照
してさらに詳細に説明する。図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つに有効なデータとして存在するか否かを確か
めることができる。
【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に描か
れている。
【0018】図5は、本発明の動作を概略的に示してい
る。プロセッサ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」に)リセットされ
るものである。
【0020】ここで、L2キャッシュ32は、L2ライ
ンが有効である状態を常に所有するわけではないことを
注記する。例えば、プロセッサ27によるL1キャッシ
ュ28内のラインへの変更に関する情報が、即座にL2
キャッシュ32へ送られない場合がある。これは、L2
キャッシュ・レベルにおけるL1状態の完全な知識を必
要とする強い内包の実施とは対称的である。
【0021】プロセッサ27及びL1キャッシュ28
は、相互接続システム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)に記載の方法。
【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への無効化の回数
はそれぞれ以下のようになった。
【0025】弱い内包 ・・・600,000回 強い内包 ・・・189,000回 基本的内包・・・209,500回
【0026】さらに、これらのパラメタの下でのL1か
らL2への必要とされる通信の回数は、以下のようにな
った。 弱い内包 ・・・175,000回 強い内包 ・・・500,000回 基本的内包・・・175,500回
【0027】基本的内包が、強い内包とほぼ同じ無効化
回数を示しながら、弱い内包と実質的に同じ通信回数を
示したことを注記する。双方の回数の目標は、これらの
計数を最小限とすることである。先ず第1に、これらの
有望な結果が、L2キャッシュにおいて全ての有効なL
1内容の完全な複写を保持できるような特別な通信のた
めの資源を備えていない汎用的なマイクロプロセッサ設
計を用いるシステム・アーキテクチャによって実現され
ることを理解されたい。
【0028】図6の別の実施例は、L2キャッシュの基
本的内包ビットがタグと状態のディレクトリに記憶され
る必要がないことを示している。これらのビットは、別
々ではあるがリンクされたディレクトリに保有されても
よい。このようなフレキシビリティがあることから、基
本的内包アーキテクチャと動作方法とを、図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のレベルのキャッシュとそれぞれ関連し、該関
    連する第1のレベルのキャッシュに記憶された前記デー
    タのラインのスーパセットを記憶する複数の第2のレベ
    ルのキャッシュと、 第2のレベルのキャッシュ・ラインが関連する第1のレ
    ベルのキャッシュへロードされたときに該第2のレベル
    のキャッシュ・ラインをマーキングし、かつ該ラインが
    関連する第1のレベルのキャッシュからのラインで置換
    されたときは該第2のレベルのキャッシュ・ラインから
    該マーキングを取除くための手段と、 第2のレベルのキャッシュの対応するラインの問合せに
    応答してマーキングされたラインをもつ第1のレベルの
    キャッシュを選択的に問合せるための手段とを有するデ
    ータ処理システム。
  2. 【請求項2】関連する第1のレベルのキャッシュによる
    対応するラインの無効化に応答して第2のレベルのキャ
    ッシュ・ラインからマーキングを選択的に取除くための
    手段を有する請求項1に記載のデータ処理システム。
  3. 【請求項3】関連する第2のレベルのキャッシュの対応
    するラインの置換に応答して第1のレベルのキャッシュ
    ・ラインを選択的に無効化するための手段を有する請求
    項2に記載のデータ処理システム。
  4. 【請求項4】前記マーキングが、キャッシュ・ライン・
    アドレスによるものである請求項3に記載のデータ処理
    システム。
  5. 【請求項5】前記マーキングが、内包(inclusion)ビッ
    トによるものである請求項4に記載のデータ処理システ
    ム。
  6. 【請求項6】前記マーキングが、第2のレベルのキャッ
    シュのディレクトリ内でされる請求項5に記載のデータ
    処理システム。
  7. 【請求項7】データのラインに対してストアイン方式を
    用いる各々のプロセッサとそれぞれ関連する複数の第1
    のレベルのキャッシュと、前記第1のレベルのキャッシ
    ュとそれぞれ関連しかつ該関連する第1のレベルのキャ
    ッシュに記憶された前記データのラインのスーパセット
    を記憶する複数の第2のレベルのキャッシュとを有する
    マルチプロセッサの階層キャッシュ・システムを制御す
    るための方法であって、 関連する第1のレベルのキャッシュに対応するラインを
    ロードするとき第2のレベルのキャッシュ・ラインをマ
    ーキングするステップと、 前記第2のレベルのキャッシュ・ラインが関連する第1
    のレベルのキャッシュからのラインで置換されたときは
    該第2のレベルのキャッシュ・ラインからマーキングを
    選択的に取除くステップと、 第2のレベルのキャッシュの対応するラインの問合せに
    応答してマーキングされたラインをもつ第1のレベルの
    キャッシュに選択的に問合せるステップとを有するマル
    チプロセッサの階層キャッシュ・システムを制御するた
    めの方法。
  8. 【請求項8】関連する第1のレベルのキャッシュによる
    対応するラインの無効化に応答して第2のレベルのキャ
    ッシュ・ラインからマーキングを選択的に取除くステッ
    プを有する請求項7に記載の方法。
  9. 【請求項9】前記関連する第2のレベルのキャッシュの
    対応するラインの置換に応答して第1のレベルのキャッ
    シュ・ラインを選択的に無効化するステップを有する請
    求項8に記載の方法。
  10. 【請求項10】キャッシュ・ライン・アドレスにより前
    記第2のレベルのキャッシュ内のマーキングをグループ
    化するステップを有する請求項9に記載の方法。
  11. 【請求項11】前記マーキングが、内包ビットによるも
    のである請求項10に記載の方法。
  12. 【請求項12】前記マーキングが、前記第2のレベルの
    キャッシュのキャッシュ・ディレクトリ内にされる請求
    項11に記載の方法。
JP6183618A 1993-10-14 1994-08-04 データ処理システム及び制御方法 Pending JPH07121442A (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (5)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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