JPH08235061A - マルチプロセッサ・データ処理システム - Google Patents

マルチプロセッサ・データ処理システム

Info

Publication number
JPH08235061A
JPH08235061A JP7311862A JP31186295A JPH08235061A JP H08235061 A JPH08235061 A JP H08235061A JP 7311862 A JP7311862 A JP 7311862A JP 31186295 A JP31186295 A JP 31186295A JP H08235061 A JPH08235061 A JP H08235061A
Authority
JP
Japan
Prior art keywords
cache
bit
copy
high level
cache line
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP7311862A
Other languages
English (en)
Other versions
JP3132749B2 (ja
Inventor
Hoichi Cheong
ホイチー・チョン
A Hicks Dwayne
ドウェイン・エイ・ヒックス
Soo Kimmin
キムミン・ソー
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 JPH08235061A publication Critical patent/JPH08235061A/ja
Application granted granted Critical
Publication of JP3132749B2 publication Critical patent/JP3132749B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related 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
    • 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/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0846Cache with multiple tag or data arrays being simultaneously accessible
    • G06F12/0848Partitioned cache, e.g. separate instruction and operand caches

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
1キャッシュのコピーを半分のレコード・ビットで追跡
する方法を提供する。 【解決の手段】 マルチレベル・キャッシュを備えたマ
ルチプロセッサ・データ処理システムであって、各プロ
セッサは、データ・キャッシュ(Dキャッシュ)と命令
キャシュ(Iキャッシュ)とからなる分割された高いレ
ベル(たとえばL1)のキャッシュを有する。1つまた
は複数のプロセッサによって使用されるキャッシュ行を
追跡するために、共用の低いレベル(たとえばL2)の
キャッシュは包含ビットとDビットおよびIビットを有
するディレクトリを含む。ディレクトリは、各プロセッ
サごとにわずか1+2/N個のビットを使って、データ
・キャッシュおよび命令キャッシュの包含をすぐ上のレ
ベルのキャッシュ内に正確に記録する。ここでNはプロ
セッサの数である。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、データ処理システ
ムにおけるキャッシュ・メモリの管理に関し、より詳細
には、マルチプロセッサ(MP)データ処理システムに
おけるマルチレベル共用キャッシュ・メモリに関する。
【0002】
【従来の技術】マルチレベル共用キャッシュ・メモリを
有するマルチプロセッサ(MP)を支援するためには、
大規模な相互照会を防ぐために重要な特性である包含特
性を維持しなければならない。包含特性とは、上のレベ
ルのキャッシュ(たとえば、レベル1またはL1)にキ
ャッシュ・コピーが常駐することが、それより下のレベ
ルのキャッシュ(L2、L3...)における常駐を暗
示することである。下のレベルのキャッシュ・ディレク
トリはそのすぐ上のレベルの複数のキャッシュによって
共用され、これらの共用キャッシュにおけるキャッシュ
・コピーの常駐を記録する。通常は、すぐ上のレベルの
各キャッシュごとに1ビットの包含ビットが使用され
る。現レベルのキャッシュ・コピーに対する論理演算を
実行する必要があるときは、ディレクトリ論理が、上の
レベルのどのキャッシュが包含ビットからのコピーを有
するかを決定して、相互照会を正確な宛先に伝播させる
ことができる。包含ビットがない場合は、相互照会を上
のレベルのキャッシュにやみくもに同報通信しなければ
ならない。しかし、同報通信を回避するには、上のレベ
ルの各キャッシュにおける常駐を反映する少なくとも1
ビットを使用しなければならない。たとえば、それぞれ
L1キャッシュを有するN個のプロセッサがL2キャッ
シュを共用する場合、L2キャッシュの各ディレクトリ
・エントリは、L1キャッシュにロードされたキャッシ
ュ・コピーの常駐を記録するために少なくともNビット
を必要とすることになる。(セクタリングを使用すると
き、すなわち1本のL2キャッシュ行がM本の連続した
L1行にまたがるときは、L2キャッシュの各エントリ
はMxN個の包含ビットを必要とする。)そうしない
と、L2キャッシュは、あるL1キャッシュにあると思
われるキャッシュ・コピーに対して操作を実行する必要
があるときに、すべてのL1キャッシュに相互照会しな
ければならない。
【0003】包含ビットはまた、重要な目的に役立ち、
具体的には、L2キャッシュのディレクトリが包含ビッ
ト情報に基づいてキャッシュ・コピーの独占権を要求元
L1キャッシュに与えることができる。独占権は、L1
キャッシュがL2キャッシュとの通信を行わずに専用コ
ピー上で修正を行えるという点で重要である。そのため
には、L1キャッシュに独占権を与えるためにL2キャ
ッシュの包含ビットが正確さを維持しなければならな
い。
【0004】進んだプロセッサは、一般にL1キャッシ
ュをデータ・キャッシュ(Dキャッシュ)と命令キャッ
シュ(Iキャッシュ)に分割する。分割L1キャッシュ
を有するシステムでは、L2キャッシュのコピーはプロ
セッサのDキャッシュ、Iキャッシュまたはその両方の
キャッシュ内にある可能性があるので、包含特性を維持
するために二倍のビット数を必要とする。これらのプロ
セッサは通常、データ・キャッシュと命令キャッシュの
コヒーレンスを維持するためにさらに追加のキャッシュ
操作命令を有する。そのような複数のプロセッサをサポ
ートする共用L2キャッシュにおいては、キャッシュ操
作命令の分割L1キャッシュへの同報通信を回避するこ
とが重要である。二倍の包含ビットを使用するという犠
牲を払ったり正確さを損なったりせずに、過度の通信オ
ーバーヘッド(同報通信)を回避する必要をなくする解
決策が必要とされる。
【0005】
【発明が解決しようとする課題】したがって、本発明の
目的は、マルチプロセッサ・システムにおける分割L1
キャッシュのコピーを半分のレコード・ビットで追跡す
る方法を提供することである。
【0006】
【課題を解決するための手段】本発明によれば、マルチ
プロセッサ(MP)データ処理システムにおいて1つま
たは複数のプロセッサによって使用されるキャッシュ行
を追跡する方式が提供される。より具体的には、この方
式は、各プロセッサがそれ自体のL1キャッシュを有
し、システム内の複数のプロセッサがL2キャッシュを
共用する、マルチレベル・キャッシュ・システムに適用
される。各L1キャッシュは、データ・キャッシュ(D
キャッシュ)と命令キャッシュ(Iキャッシュ)に分割
される。L2キャッシュは、包含ビットの他にDビット
とIビットも含むディレクトリを備える。
【0007】本発明により、データと命令によって共用
される低レベルのキャッシュが、DキャッシュとIキャ
ッシュとに分割されたすぐ上のレベルのキャッシュにお
けるデータ・キャッシュの包含を正確に追跡することが
可能になる。本発明では、下のレベルのキャッシュ・エ
ントリがすぐ上のレベルにおいて命令としてのみ使用さ
れる場合に、下のレベルのキャッシュも命令キャッシュ
の包含を正確に追跡することができる。本発明は、常に
データ・キャッシュの包含と命令キャッシュの包含を両
方とも維持する他の方法よりも大幅に少ない包含ビット
を使用することにより、階層メモリ・システム内で包含
を維持するコストを削減する。
【0008】上記その他の目的、態様および利点は、図
面を参照しながら以下の本発明の好ましい実施形態の詳
細な説明を読めばより良く理解されよう。
【0009】
【発明の実施の形態】次に、図面を、より詳細には図1
を参照すると、それぞれレベル1すなわちL1のキャッ
シュを有する複数のプロセッサ101〜10Nを含む典型
的なマルチプロセッサ(MP)データ処理システムを示
す。プロセッサ101のL1キャッシュによって例示され
るように、各L1キャッシュはデータ・キャッシュ(D
キャッシュ111Dと命令キャッシュ(Iキャッシュ)1
1Iに分割される。各プロセッサのL1キャッシュは、
共用レベル2すなわちL2のキャッシュ12と通信す
る。L1キャッシュとL2キャッシュ12の間での要求
およびデータの転送は、2地点間相互接続やバス、スイ
ッチ網13などの相互接続媒体による。L2キャッシュ
とメイン・メモリ・モジュール14の間でのデータ転送
は、2地点間相互接続やバス、スイッチなどの相互接続
15を経由する。
【0010】L2キャッシュ12は、ディレクトリ12
1とデータ・アレイ122を有する。ディレクトリ12
1には、L1データおよびL1命令の包含を表す状況ビ
ットが常駐する。また、L2キャッシュに関連する制御
論理(図示せず)もある。ディレクトリ121は、各キ
ャッシュ行ごとに簿記情報を含む。各L2キャッシュ行
ごとに、その行に対応するディレクトリ・エントリがあ
る。各ディレクトリ・エントリは、有効ビット、アドレ
ス・タグ、N個の包含ビット、Dビット、およびIビッ
トを含む。あるキャッシュ位置がアクセスされるとき、
ディレクトリ・エントリとデータが検索される。有効ビ
ットは、その行が有効行であるかどうか(またはキャッ
シュ位置が有効行を含むかどうか)を判定するために使
用される。論理1は、キャッシュ行が有効であることを
示し、論理0は、キャッシュ位置が有効キャッシュ行を
含まないことを表す。アドレス・タグは、要求アドレス
のタグ部分と比較される。比較が一致した場合は、アク
セスされたキャッシュ位置の有効行が要求キャッシュ行
である。一致しない場合は、そのキャッシュ位置は要求
側が必要とする行を含まない。N個の包含ビット、Dビ
ット、およびIビットの機能は、要求側が要求する特定
のキャッシュ行が、いずれかのL1キャッシュに常駐す
るかどうかを識別するために使用される。これらのビッ
トが提供する情報については、以下に詳細に説明する。
【0011】図2は、ディレクトリ・エントリの1つの
可能な構成を示す。Nプロセッサ・システム用の包含ビ
ットの数は、非分割のL1キャッシュ・システムにおい
て一定量の同報通信が許容される場合には、1つのキャ
ッシュ・エントリについてNよりも小さい数nとするこ
とができる。しかし、本発明は、特にL1キャッシュを
分割してもビット数が二倍にならないようにすることを
目指したものであり、非分割キャッシュ用のどのような
削減方式にも適用される。
【0012】一般性を失うことなく、非分割L1キャッ
シュ・システムにおいてプロセッサごとに少なくとも1
ビットを必要とする非区分のL2キャッシュ12を想定
する。提示した方式は、N個のプロセッサを有する分割
キャッシュ・システムの各プロセッサごとに1+2/N
ビットしか必要としない(各キャッシュ・エントリごと
に2NビットではなくN+2ビットが使用される)。大
きなL2キャッシュでは、このN−2ビットの節約で数
キロバイトのディレクトリ空間が節約できることにな
る。m本のL1行に等しくなるように1本のL2行がL
2キャッシュが区分される場合、本発明は、2mNビッ
トではなくわずかMn+2ビットしか必要としない。し
たがって、節約はさらに大きくなる。
【0013】本発明は、各プロセッサごとに1つの包含
ビットを使用する。N個のプロセッサを有するシステム
では、各L2ディレクトリ・エントリは、Nビット・ベ
クトルを有し、各ビットがそれぞれ1つのプロセッサに
対応する。L2キャッシュのデータがプロセッサのL1
キャッシュにあるとき、そのプロセッサは常駐プロセッ
サと呼ばれる。
【0014】本発明は、N個の包含ビットの他に各キャ
ッシュ行ごとに、2つの追加ビット、DビットとIビッ
トを使用する。L2のデータがL1のDキャッシュだけ
にあるときは、Dビットがセットされ、常駐プロセッサ
に属する包含ビットがセットされるい。L2のデータが
L1のIキャッシュにだけにあるときは、Iビットがセ
ットされ、対応する包含ビットがセットされる。Dビッ
トまたはIビットのいずれかがオンの場合は、キャッシ
ュ・コピーに対する操作を、対応する包含ビットのオン
状態によって指定されるプロセッサの特定L1キャッシ
ュに転送することもできる。DおよびIビットが共にオ
ンのときは、包含ビットはL1Dキャッシュの常駐だけ
を示し、L2のキャッシュ・コピーがすべてのプロセッ
サのIキャッシュ内にあると想定される。
【0015】上記の方式により、L2ディレクトリは、
どのL1のDキャッシュがL2のコピーを有するかを常
に正確に追跡する。包含ビットが他のL1Dキャッシュ
の包含を示さないときは、キャッシュ・コピーの独占権
をL1キャッシュに与えることができる。Dキャッシュ
操作の同報通信は必要でない。L2ディレクトリ121
はまた、L2のキャッシュ・コピーがプロセッサによる
命令としてのみ使用される(Iビットだけがセットされ
た)とき、どのL1IキャッシュがL2コピーを有する
かを正確に追跡することができる。DビットとIビット
がどちらもセットされたときには不正確な包含情報だけ
が生じるが、この限られたケースでは不正確さはIキャ
ッシュ包含に関してだけである。この不正確さによっ
て、命令キャッシュ操作をL1キャッシュに伝播する必
要があるときに同報通信しなければならなくなる。この
犠牲を払うことによって、各プロセッサのL1キャッシ
ュ行ごとに、2ビットではなくわずか1+2/Nビット
しか必要でなくなる。(区分キャッシュでは、このコス
トは1+2/mNである。) 典型的な区分L2キャッ
シュ・システムでは、連続するL1キャッシュ行を、同
じ目的ですなわちIキャッシュ、Dキャッシュまたは両
方のキャッシュ内ですべて使用する傾向があるため、L
2キャッシュ行ごとにDビットとIビットを情報の大き
な損失なしに使用することができる。以下の考察では、
非区分L2キャッシュを対象に話を進めるが、この方式
は、区分L2キャッシュにも容易に適用され、実際に区
分L2キャッシュ上で実施される。
【0016】以下に、Dビット、Iビットおよび包含ビ
ットをセットする条件を説明する。 1.DビットとIビットがどちらもセットされていない
コピーをL1のDキャッシュにロードするときは、Dビ
ットをセットし、要求側L1キャッシュ用の包含ビット
をセットする(Dキャッシュ上の正確な包含)。 2.DビットとIビットがどちらもセットされていない
コピーをL1のIキャッシュにロードするときは、Iビ
ットをセットし、要求側L1キャッシュ用の包含ビット
をセットする(Iキャッシュ上の正確な包含)。 3.IビットだけがセットされたコピーをL1のDキャ
ッシュにロードするときは、既存の包含ビットをすべて
リセットし、要求側L1キャッシュ用の包含ビットおよ
びDビットをセットする(L1Iキャッシュ上の正確な
包含からL1Dキャッシュに変更する)。 4.IビットだけがセットされたコピーをL1Iキャッ
シュにロードする場合は、要求側L1キャッシュ用の包
含ビットをセットする(L1Iキャッシュ上の正確な包
含)。 5.DビットだけがセットされたコピーをL1Iキャッ
シュにロードするときは、Iビットをセットする(L1
Dキャッシュ上の正確な包含)。 6.Dビットがセットされた(Iビットはセットされて
いてもセットされていなくてもよい)コピーをL1Dキ
ャッシュにロードするときは、要求側L1キャッシュ用
の包含ビットをセットする(L1Dキャッシュ上の正確
な包含)。 7.DビットとIビットが両方ともセットされたコピー
をL1Iキャッシュにロードするときは、何もしない
(L1Dキャッシュ上の正確な包含)。 以下に、Dビット、Iビットおよび包含ビットをリセッ
トする条件を説明する。 1.DビットまたはIビットだけがセットされたコピー
をコピーを有するL1キャッシュから取り出すときは、
対応する包含ビットがリセットされる(L1Dキャッシ
ュまたはIキャッシュのいずれか上の正確な包含)。 2.DビットまたはIビットだけがセットされたコピー
をそのコピーを有する最後のL1キャッシュから取り出
すときは、対応する包含ビットがリセットされDビット
またはIビットもリセットされる(L1のDキャッシュ
またはIキャッシュ上の正確な包含)。 3.DビットとIビットが両方ともセットされているコ
ピーは、コピーがそのL1Dキャッシュから取り出され
る場合、L1キャッシュに対応する包含ビットがリセッ
トされる(L1Dキャッシュ上の正確な包含)。 4.DビットとIビットが両方ともセットされているコ
ピーは、コピーがそのL1Iキャッシュから取り出され
る場合、包含ビットは変更されない(L1Iキャッシュ
上だけの正確な包含)。 5.DビットとIビットが両方ともオンのコピーは、L
2キャッシュ・コピーがL2キャッシュから取り出され
るときだけ、DビットとIビットが両方ともリセットさ
れる(ゼロ包含)。 以下に、L2ディレクトリ管理手段がL2キャッシュか
ら行を移動する際にIビット、Dビットおよび包含ビッ
トを使用する条件を説明する。 1.IビットとDビットがどちらもセットされていない
コピーをL2キャッシュから取り出すときは、ディレク
トリ管理手段は、L1データ・キャッシュまたはL1命
令キャッシュから行を除去しなくてよい。 2.DビットだけがセットされたコピーをL2キャッシ
ュから取り出すときは、ディレクトリ管理手段は、包含
ビットを使ってL1データ・キャッシュから行を除去
し、コピーを所有する可能性の最も高いデータ・キャッ
シュにその要求を送る。 3.IビットだけがセットされたコピーをL2キャッシ
ュから取り出すときは、ディレクトリ管理手段は、包含
ビットを使ってL1命令キャッシュから行を除去し、コ
ピーを所有する可能性の最も高い命令キャッシュにその
要求を送る。 4.DビットがセットされIビットもセットされたコピ
ーをL2キャッシュから取り出すときは、ディレクトリ
管理手段は、包含ビットを使ってすべてのL1命令キャ
ッシュおよび選択したL1データ・キャッシュから行を
除去し、コピーを所有する可能性の最も高いキャッシュ
にその要求を送る。 以下に、L2ディレクトリ管理手段がメモリからの照会
をどのように処理するかを説明する。 1.IビットもDビットのどちらもセットされていない
コピーがメモリから照会されたときは、ディレクトリ管
理手段は、L1データ・キャッシュとL1命令キャッシ
ュの照会をどちらも転送しない。 2.Dビットがセットされたコピーがメモリから照会さ
れたときは、ディレクトリ管理手段は、包含ビットを使
って照会をL1データ・キャッシュに転送する。 3.Iビットだけがセットされたコピーがメモリから照
会されたときは、ディレクトリ管理手段は、包含ビット
を使って照会をL1命令キャッシュに転送する。 4.DビットがセットされIビットもセットされたコピ
ーがメモリから照会されたときは、ディレクトリ管理手
段は、包含ビットを使ってすべてのL1命令キャッシュ
および選択されたL1データ・キャッシュに照会を転送
し、その要求を、コピーを所有する可能性の最も高いキ
ャッシュに送る。
【0017】図3の状態図は、DビットおよびIビット
の変更、ならびにDキャッシュを表す包含と、Iキャッ
シュを表す包含と非包含の間での包含ビットの変更を説
明する。オン(論理1)およびオフ(論理0)にセット
された包含ビット、DビットおよびIビットが、キャッ
シュ行の様々な状態を構成する。各キャッシュ行は状態
21で始まり、キャッシュに対して実行される操作の結
果として他の状態に変化する。表1は、キャッシュ行に
対するそれぞれの状態の効果をを示す。
【0018】
【表1】
【0019】状態の変化に影響を及ぼす可能性のある操
作には、L2およびL1Dキャッシュ内へのキャッシュ
行のロード、L2およびL1Iキャッシュ内へのキャッ
シュ行のロード、L2からL1Iキャッシュへのキャッ
シュ行のロード、L2からL1Dキャッシュへのキャッ
シュ行のロード、L1Iキャッシュからの行の置換、L
1Dキャッシュからのキャッシュ行の置換、L2キャッ
シュおよびすべてのL1キャッシュからの行の置換が含
まれる。
【0020】図3の上部から始めると、状態21は、コ
ピーがL2キャッシュ内にもどのL1キャッシュ内にも
ないという条件である。この条件下では、包含ビット、
DビットおよびIビットがそれぞれゼロにリセットされ
る。コピーがメイン・メモリからL2キャッシュにロー
ドされた後で要求側L1Dキャッシュにロードされる場
合は、状態21から状態22に至る経路に従って、要求
側L1キャッシュ用の包含ビットがセットされ、Dビッ
トがセットされるが、Iビットはリセットされたままで
ある。一方、コピーがメイン・メモリからL2キャッシ
ュにロードされた後で要求側L1Iキャッシュにロード
される場合は、状態21から状態23への経路に従っ
て、要求側L1キャッシュ用の包含ビットがセットさ
れ、Iビットがセットされるが、Dビットはリセットさ
れたままである。
【0021】状態22から、コピーが次にL1Iキャッ
シュにロードされる場合、または状態23から、コピー
が次にL1Dキャッシュにロードされる場合は、状態2
4で、DビットとIビットが両方ともセットされる。状
態22から24への経路では、追加の包含ビットはセッ
トされない。状態23から24への経路では、新しくロ
ードされたDキャッシュ用の包含ビットのみがセットさ
れ、他の包含ビットはすべてリセットされる。状態22
から23へ経路でも、コピーがL1キャッシュおよびL
2キャッシュの両方から取り出される場合は状態21に
戻り、すべての包含ビットがリセットされる。コピーが
最後のL1キャッシュから取り出される場合、コピーが
L2キャッシュ内には残っているが、L1キャッシュ内
にはないという状態25をとる。したがって、包含ビッ
トはリセットされ、DビットとIビットは共にリセット
される。後でコピーがL1キャッシュのどれか1つにコ
ピーされる場合は、コピーがDキャッシュとIキャッシ
ュのどちらにコピーされるかに応じて、状態22または
23をとる。L2キャッシュ内のコピーが取り出される
場合も、状態21をとる。
【0022】キャッシュ行は、それがL2キャッシュお
よびすべてのL1キャッシュから取り出される(状態2
1に変化する)まで状態24に留まる。キャッシュ行が
状態24にあるときは、それをL1Dキャッシュから取
り出すことによってのみ対応する包含ビットがオフにな
る。L1Iキャッシュから取り出してもまたは、他のI
キャッシュにロードしても、包含ビットには影響はな
い。キャッシュ行をさらに多くのDキャッシュにロード
すると、対応する包含ビットがオンになる。キャッシュ
行の状態を24から変更する唯一の操作は、L2キャッ
シュおよびすべてのL1キャッシュからキャッシュ行を
取り出すことである。
【0023】まとめとして、本発明の構成に関して以下
の事項を開示する。
【0024】(1)データ・キャッシュと命令キャッシ
ュとに分割された高レベルのキャッシュをそれぞれ有す
る複数のN個のプロセッサと、第1の相互接続手段によ
って前記各プロセッサの高レベルのキャッシュに接続さ
れた共用のすぐ下のレベルのキャッシュと、第2の相互
接続手段によって前記すぐ下のレベルのキャッシュに接
続されたメイン・メモリとを含み、前記すぐ下のレベル
のキャッシュが、ディレクトリとデータ・アレイを含
み、前記ディレクトリが、プロセッサごとにわずか1+
2/N個のビットしか使わずに、すぐ上のレベルのキャ
ッシュ内にデータ・キャッシュ包含および命令キャッシ
ュ包含を正確に記録することを特徴とする、マルチプロ
セッサ ・データ処理システム。 (2)前記すぐ下のレベルのキャッシュのディレクトリ
が、その行が有効行かどうかを示す有効ビットと、タグ
・ビットと、包含ビットと、Dビットと、Iビットとを
それぞれ有する行のアレイを含み、さらに、タグ・ビッ
トを要求アドレスのタグ部分と比較して、アクセスされ
たキャッシュ位置にある有効行が要求されたキャッシュ
行であるかどうかを判定する比較手段と、包含ビット、
DビットおよびIビットを使って、要求元が要求する特
定のキャッシュ行が高いレベルのキャッシュのどれかに
常駐しているかどうかを識別するディレクトリ管理手段
とを含むことを特徴とする、上記(1)に記載のマルチ
プロセッサ・データ処理システム。 (3)DビットとIビットがどちらもセットされていな
いキャッシュ行のコピーが高レベルのデータ・キャッシ
ュにロードされるとき、ディレクトリ管理手段が、Dビ
ットをセットし、要求元高レベル・キャッシュ用の包含
ビットをセットすることを特徴とする、上記(2)に記
載のマルチプロセッサ・データ処理システム。 (4)DビットとIビットがどちらもセットされていな
いキャッシュ行のコピーが高レベルの命令キャッシュに
ロードされるとき、ディレクトリ管理手段が、Iビット
をセットし、要求元高レベル・キャッシュ用の包含ビッ
トをセットすることを特徴とする、上記(2)に記載の
マルチプロセッサ・データ処理システム。 (5)Iビットだけがセットされたキャッシュ行のコピ
ーが高レベルのデータ・キャッシュにロードされると
き、ディレクトリ管理システムが、既存の包含ビットを
すべてリセットし、要求元高レベル・キャッシュ用の包
含ビットとDビットとをセットすることを特徴とする、
上記(2)に記載のマルチプロセッサ・データ処理シス
テム。 (6)Iビットだけがセットされたキャッシュ行のコピ
ーが高レベルの命令キャッシュにロードされるとき、デ
ィレクトリ管理システムが、要求元高レベル・キャッシ
ュ用の包含ビットをセットすることを特徴とする、上記
(2)に記載のマルチプロセッサ・データ処理システ
ム。 (7)Dビットだけがセットされたキャッシュ行のコピ
ーが高レベルの命令キャッシュにロードされるとき、デ
ィレクトリ管理手段がIビットをセットすることを特徴
とする、上記(2)に記載のマルチプロセッサ・データ
処理システム。 (8)DビットがセットされIビットはセットされてい
るかまたはセットされていないキャッシュ行のコピーが
高レベルのデータ・キャッシュにロードされるとき、デ
ィレクトリ管理手段が、要求元高レベル・キャッシュ用
の包含ビットをセットすることを特徴とする、上記
(2)に記載のマルチプロセッサ・データ処理システ
ム。 (9)DビットとIビットが両方ともセットされたキャ
ッシュ行のコピーが高レベルの命令キャッシュにロード
されるとき、ディレクトリ管理手段が何もしないことを
特徴とする、上記(2)に記載のマルチプロセッサ・デ
ータ処理システム。 (10)DビットとIビットがどちらもセットされてい
ないキャッシュ行のコピーが高レベルのデータ・キャッ
シュにロードされるときは、ディレクトリ管理手段が、
Dビットをセットし、要求元高レベル・キャッシュ用の
包含ビットをセットし、DビットとIビットがどちらも
セットされていないキャッシュ行のコピーが高レベルの
命令キャッシュにロードされるときは、ディレクトリ管
理手段が、Iビットをセットし、要求元高レベル・キャ
ッシュ用の包含ビットをセットし、Iビットだけがセッ
トされたキャッシュ行のコピーが高レベルのデータ・キ
ャッシュにロードされるときは、ディレクトリ管理手段
が、すべての既存の包含ビットをリセットし、要求元高
レベル・キャッシュ用の包含ビットとDビットとをセッ
トし、Iビットだけがセットされたキャッシュ行のコピ
ーが高レベルの命令キャッシュにロードされるときは、
ディレクトリ管理手段が、要求元高レベル・キャッシュ
用の包含ビットをセットし、Dビットだけがセットされ
たキャッシュ行のコピーが高レベルの命令キャッシュに
ロードされるときは、ディレクトリ管理手段がIビット
をセットし、DビットがセットされIビットはセットさ
れているかまたはセットされていないキャッシュ行のコ
ピーが高レベルのデータ・キャッシュにロードされると
きは、ディレクトリ管理手段が、要求元高レベル・キャ
ッシュ用の包含ビットをセットし、DビットとIビット
が共にセットされたキャッシュ行のコピーが高レベルの
命令キャッシュにロードされるときは、ディレクトリ管
理手段が何もしないことをことを特徴とする、上記
(2)に記載のマルチプロセッサ・データ処理システ
ム。 (11)DビットまたはIビットだけがセットされたキ
ャッシュ行のコピーが、キャッシュ行のコピーを有する
高レベル・キャッシュから取り出されるとき、ディレク
トリ管理手段が、対応する包含ビットをリセットするこ
とを特徴とする、上記(2)に記載のマルチプロセッサ
・データ処理システム。 (12)DビットまたはIビットだけがセットされたキ
ャッシュ行のコピーがキャッシュ行のコピーを有する最
後の高レベル・キャッシュから取り出されるとき、ディ
レクトリ管理手段が、対応する包含ビットをリセット
し、DビットまたはIビットもリセットすることを特徴
とする、上記(2)に記載のマルチプロセッサ・データ
処理システム。 (13)DビットおよびIビットが両方ともセットされ
ているキャッシュ行のコピーについて、そのキャッシュ
行のコピーが高レベル・データ・キャッシュから取り出
されるとき、ディレクトリ管理手段が、その高レベル・
キャッシュに対応する包含ビットをリセットすることを
特徴とする、上記(2)に記載のマルチプロセッサ・デ
ータ処理システム。 (14)DビットおよびIビットが両方ともセットされ
ているキャッシュ行のコピーについて、キャッシュ行の
コピーが高レベル命令キャッシュから取り出されると
き、ディレクトリ管理手段によって包含ビットが変更さ
れないことを特徴とする、上記(2)に記載のマルチプ
ロセッサ・データ処理システム。 (15)DビットおよびIビットが両方ともオンのキャ
ッシュ行のコピーについて、共用のすぐ下のレベルのキ
ャッシュ・コピーが共用のすぐ下のレベルのキャッシュ
から取り出されるときだけ、ディレクトリ管理手段が、
DビットとIビットをリセットすることを特徴とする、
上記(2)に記載のマルチプロセッサ・データ処理シス
テム。 (16)DビットまたはIビットだけがセットされたキ
ャッシュ行がコピーがキャッシュ行のコピーを有する高
レベル・キャッシュから取り出されるときは、ディレク
トリ管理手段が、対応する包含ビットをリセットし、D
ビットまたはIビットだけがセットされたキャッシュ行
のコピーがキャッシュ行のコピーを有する最後の高レベ
ル・キャッシュから取り出されるときは、ディレクトリ
管理手段が、対応する包含ビットをリセットし、Dビッ
トまたはIビットもリセットし、DビットとIビットが
両方ともセットされているキャッシュ行のコピーについ
て、そのキャッシュ行のコピーが高レベル・データ・キ
ャッシュから取り出されるときは、ディレクトリ管理手
段が、その高レベル・キャッシュに対応する包含ビット
をリセットし、DビットとIビットが両方ともセットさ
れているキャッシュ行のコピーについて、キャッシュ行
のコピーが高レベル命令キャッシュから取り出されると
きは、ディレクトリ管理手段が、包含ビットを変更せ
ず、DビットとIビットが両方ともオンのキャッシュ行
のコピーについて、共用のすぐ下のレベルのキャッシュ
・コピーが共用のすぐ下のレベルのキャッシュから取り
出されるときだけ、ディレクトリ管理手段が、Dビット
とIビットをリセットすることを特徴とする、上記
(2)に記載のマルチプロセッサ・データ処理システ
ム。 (17)DビットがセットされておらずIビットもセッ
トされていないキャッシュ行のコピーが共用のすぐ下の
レベルのキャッシュから取り出されるとき、ディレクト
リ管理手段が、高レベルのデータ・キャッシュまたは高
レベルの命令キャッシュから行を除去しないことを特徴
とする、上記(2)に記載のマルチプロセッサ・データ
処理システム。 (18)Dビットがセットされたキャッシュ行のコピー
が共用のすぐ下のレベルのキャッシュから取り出される
とき、ディレクトリ管理手段が、包含ビットを使って高
レベル・データ・キャッシュの行を除去し、その要求を
キャッシュ行のコピーを所有する可能性の最も高いデー
タ・キャッシュに送ることを特徴とする、上記(2)に
記載のマルチプロセッサ・データ処理システム。 (19)Iビットがセットされたキャッシュ行のコピー
が共用のすぐ下のレベルのキャッシュから取り出される
とき、ディレクトリ管理手段が、包含ビットを使って高
レベルの命令キャッシュの行を除去し、その要求をキャ
ッシュ行のコピーを所有する可能性の最も高い命令キャ
ッシュに送ることを特徴とする、上記(2)に記載のマ
ルチプロセッサ・データ処理システム。 (20)IビットがセットされDビットがセットされた
キャッシュ行のコピーが共用のすぐ下のレベルのキャッ
シュから取り出されるとき、ディレクトリ管理手段が、
包含ビットを使ってすべての高レベルの命令キャッシュ
と選択された高レベルのデータ・キャッシュから行を除
去し、その要求をキャッシュ行のコピーを所有する可能
性の最も高い高レベルのデータ・キャッシュに送ること
を特徴とする、上記(2)に記載のマルチプロセッサ・
データ処理システム。 (21)DビットがセットされておらずIビットもセッ
トされていないキャッシュ行のコピーが共用のすぐ下の
レベルのキャッシュから取り出されるときは、ディレク
トリ管理手段が、高レベルのデータ・キャッシュまたは
高レベルの命令キャッシュから行を除去せず、Dビット
がセットされたキャッシュ行のコピーが共用のすぐ下の
レベルのキャッシュから取り出されるときは、ディレク
トリ管理手段が、包含ビットを使って高レベル・データ
・キャッシュの行を除去し、その要求をキャッシュ行の
コピーを所有する可能性の最も高いデータ・キャッシュ
に送り、Iビットがセットされたキャッシュ行のコピー
が共用のすぐ下のレベルのキャッシュから取り出される
ときは、ディレクトリ管理手段が、包含ビットを使って
高レベルの命令キャッシュの行を除去し、その要求をキ
ャッシュ行のコピーを所有する可能性の最も高い命令キ
ャッシュに送り、Iビットがセットされたキャッシュ行
のコピーが共用のすぐ下のレベルのキャッシュから取り
出されるときは、ディレクトリ管理手段が、包含ビット
を使ってすべての高レベルの命令キャッシュおよび選択
された高レベルのデータ・キャッシュから行を除去し
て、その要求をキャッシュ行のコピーを所有する可能性
の最も高い高レベルの命令キャッシュに送ることを特徴
とする、上記(2)に記載のマルチプロセッサ・データ
処理システム。 (22)DビットがセットされておらずIビットもセッ
トされていないキャッシュ行のコピーがメイン・メモリ
から照会されたとき、ディレクトリ管理手段が、その問
合せを高レベルのデータ・キャッシュにも高レベルの命
令キャッシュにも渡さないことを特徴とする、上記
(2)に記載のマルチプロセッサ・データ処理システ
ム。 (23)Dビットがセットされたキャッシュ行のコピー
がメイン・メモリから照会されたとき、ディレクトリ管
理手段が、包含ビットを使って高レベルのデータ・キャ
ッシュにその照会を渡して、メイン・メモリ要求をキャ
ッシュ行のコピーを所有する可能性の最も高いデータ・
キャッシュに送ることを特徴とする、上記(2)に記載
のマルチプロセッサ・データ処理システム。 (24)Iビットがセットされたキャッシュ行のコピー
がメイン・メモリから照会されたとき、ディレクトリ管
理手段が、包含ビットを使って高レベルの命令キャッシ
ュにその照会を渡して、メイン・メモリ要求をキャッシ
ュ行のコピーを所有する可能性の最も高い命令キャッシ
ュに送ることを特徴とする、上記(2)に記載のマルチ
プロセッサ・データ処理システム。 (25)IビットがセットされDビットがセットされた
キャッシュ行のコピーがメイン・メモリから照会された
とき、ディレクトリ管理手段が、包含ビットを使ってす
べての高レベルの命令キャッシュおよび選択された高レ
ベルのデータ・キャッシュにその照会を渡して、メイン
・メモリ要求をキャッシュ行のコピーを所有する可能性
の最も高いデータ・キャッシュに送ることを特徴とす
る、上記(2)に記載のマルチプロセッサ・データ処理
システム。 (26)DビットがセットされておらずIビットもセッ
トされていないキャッシュ行のコピーがメイン・メモリ
から照会されたときは、ディレクトリ管理手段が、その
照会を高レベルのデータ・キャッシュにも高レベルの命
令キャッシュにも渡さず、Dビットがセットされたキャ
ッシュ行のコピーがメイン・メモリから照会されたとき
は、ディレクトリ管理手段が、包含ビットを使ってその
照会を高レベルのデータ・キャッシュに渡して、メイン
・メモリ要求をキャッシュ行のコピーを所有する可能性
の最も高いデータ・キャッシュに送り、Iビットがセッ
トされたキャッシュ行のコピーがメイン・メモリから照
会されたときは、ディレクトリ管理手段が、包含ビット
を使ってその照会を高レベルの命令キャッシュに渡し
て、メイン・メモリ要求をキャッシュ行のコピーを所有
する可能性の最も高い命令キャッシュに送り、Iビット
がセットされDビットがセットされたキャッシュ行のコ
ピーがメイン・メモリから照会されたときは、ディレク
トリ管理手段が、包含ビットを使ってその照会をすべて
の高レベルの命令キャッシュおよび選択された高レベル
のデータ・キャッシュに渡して、メイン・メモリ要求を
キャッシュ行のコピーを所有する可能性の最も高いデー
タ・キャッシュに送ることを特徴とする、上記(2)に
記載のマルチプロセッサ・データ処理システム。
【図面の簡単な説明】
【図1】マルチレベル・キャッシュ・メモリを有する典
型的なマルチプロセッサ・システムを示すブロック図で
ある。
【図2】キャッシュ・メモリ・マップの図である。
【図3】本発明に従ってL1キャッシュ・コピーを追跡
するプロセスの論理を示す状態図である。
【符号の説明】
101 プロセッサ 10N プロセッサ 111D データ・キャッシュ 111I 命令キャッシュ 12 L2キャッシュ 13 スイッチ網 14 メイン・メモリ・モジュール 15 相互接続 121 ディレクトリ 122 データ・アレイ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ドウェイン・エイ・ヒックス アメリカ合衆国78660 テキサス州フリュ ーガーヴィル・デューンズ・ドライブ 2405 (72)発明者 キムミン・ソー アメリカ合衆国78746 テキサス州オース チン ウォルシュ・タールトン・レーン 2102エイ

Claims (26)

    【特許請求の範囲】
  1. 【請求項1】データ・キャッシュと命令キャッシュとに
    分割された高レベルのキャッシュをそれぞれ有する複数
    のN個のプロセッサと、 第1の相互接続手段によって前記各プロセッサの高レベ
    ルのキャッシュに接続された共用のすぐ下のレベルのキ
    ャッシュと、 第2の相互接続手段によって前記すぐ下のレベルのキャ
    ッシュに接続されたメイン・メモリとを含み、 前記すぐ下のレベルのキャッシュが、ディレクトリとデ
    ータ・アレイを含み、前記ディレクトリが、プロセッサ
    ごとにわずか1+2/N個のビットしか使わずに、すぐ
    上のレベルのキャッシュ内にデータ・キャッシュ包含お
    よび命令キャッシュ包含を正確に記録することを特徴と
    する、マルチプロセッサ ・データ処理システム。
  2. 【請求項2】前記すぐ下のレベルのキャッシュのディレ
    クトリが、その行が有効行かどうかを示す有効ビット
    と、タグ・ビットと、包含ビットと、Dビットと、Iビ
    ットとをそれぞれ有する行のアレイを含み、さらに、 タグ・ビットを要求アドレスのタグ部分と比較して、ア
    クセスされたキャッシュ位置にある有効行が要求された
    キャッシュ行であるかどうかを判定する比較手段と、包
    含ビット、DビットおよびIビットを使って、要求元が
    要求する特定のキャ ッシュ行が高いレベルのキャッシュのどれかに常駐して
    いるかどうかを識別するディレクトリ管理手段とを含む
    ことを特徴とする、請求項1に記載のマルチプロセッサ
    ・データ処理システム。
  3. 【請求項3】DビットとIビットがどちらもセットされ
    ていないキャッシュ行のコピーが高レベルのデータ・キ
    ャッシュにロードされるとき、ディレクトリ管理手段
    が、Dビットをセットし、要求元高レベル・キャッシュ
    用の包含ビットをセットすることを特徴とする、請求項
    2に記載のマルチプロセッサ・データ処理システム。
  4. 【請求項4】DビットとIビットがどちらもセットされ
    ていないキャッシュ行のコピーが高レベルの命令キャッ
    シュにロードされるとき、ディレクトリ管理手段が、I
    ビットをセットし、要求元高レベル・キャッシュ用の包
    含ビットをセットすることを特徴とする、請求項2に記
    載のマルチプロセッサ・データ処理システム。
  5. 【請求項5】Iビットだけがセットされたキャッシュ行
    のコピーが高レベルのデータ・キャッシュにロードされ
    るとき、ディレクトリ管理システムが、既存の包含ビッ
    トをすべてリセットし、要求元高レベル・キャッシュ用
    の包含ビットとDビットとをセットすることを特徴とす
    る、請求項2に記載のマルチプロセッサ・データ処理シ
    ステム。
  6. 【請求項6】Iビットだけがセットされたキャッシュ行
    のコピーが高レベルの命令キャッシュにロードされると
    き、ディレクトリ管理システムが、要求元高レベル・キ
    ャッシュ用の包含ビットをセットすることを特徴とす
    る、請求項2に記載のマルチプロセッサ・データ処理シ
    ステム。
  7. 【請求項7】Dビットだけがセットされたキャッシュ行
    のコピーが高レベルの命令キャッシュにロードされると
    き、ディレクトリ管理手段がIビットをセットすること
    を特徴とする、請求項2に記載のマルチプロセッサ・デ
    ータ処理システム。
  8. 【請求項8】DビットがセットされIビットはセットさ
    れているかまたはセットされていないキャッシュ行のコ
    ピーが高レベルのデータ・キャッシュにロードされると
    き、ディレクトリ管理手段が、要求元高レベル・キャッ
    シュ用の包含ビットをセットすることを特徴とする、請
    求項2に記載のマルチプロセッサ・データ処理システ
    ム。
  9. 【請求項9】DビットとIビットが両方ともセットされ
    たキャッシュ行のコピーが高レベルの命令キャッシュに
    ロードされるとき、ディレクトリ管理手段が何もしない
    ことを特徴とする、請求項2に記載のマルチプロセッサ
    ・データ処理システム。
  10. 【請求項10】DビットとIビットがどちらもセットさ
    れていないキャッシュ行のコピーが高レベルのデータ・
    キャッシュにロードされるときは、ディレクトリ管理手
    段が、Dビットをセットし、要求元高レベル・キャッシ
    ュ用の包含ビットをセットし、DビットとIビットがど
    ちらもセットされていないキャッシュ行のコピーが高レ
    ベルの命令キャッシュにロードされるときは、ディレク
    トリ管理手段が、Iビットをセットし、要求元高レベル
    ・キャッシュ用の包含ビットをセットし、Iビットだけ
    がセットされたキャッシュ行のコピーが高レベルのデー
    タ・キャッシュにロードされるときは、ディレクトリ管
    理手段が、すべての既存の包含ビットをリセットし、要
    求元高レベル・キャッシュ用の包含ビットとDビットと
    をセットし、Iビットだけがセットされたキャッシュ行
    のコピーが高レベルの命令キャッシュにロードされると
    きは、ディレクトリ管理手段が、要求元高レベル・キャ
    ッシュ用の包含ビットをセットし、Dビットだけがセッ
    トされたキャッシュ行のコピーが高レベルの命令キャッ
    シュにロードされるときは、ディレクトリ管理手段がI
    ビットをセットし、DビットがセットされIビットはセ
    ットされているかまたはセットされていないキャッシュ
    行のコピーが高レベルのデータ・キャッシュにロードさ
    れるときは、ディレクトリ管理手段が、要求元高レベル
    ・キャッシュ用の包含ビットをセットし、DビットとI
    ビットが共にセットされたキャッシュ行のコピーが高レ
    ベルの命令キャッシュにロードされるときは、ディレク
    トリ管理手段が何もしないことをことを特徴とする、請
    求項2に記載のマルチプロセッサ・データ処理システ
    ム。
  11. 【請求項11】DビットまたはIビットだけがセットさ
    れたキャッシュ行のコピーが、キャッシュ行のコピーを
    有する高レベル・キャッシュから取り出されるとき、デ
    ィレクトリ管理手段が、対応する包含ビットをリセット
    することを特徴とする、請求項2に記載のマルチプロセ
    ッサ・データ処理システム。
  12. 【請求項12】DビットまたはIビットだけがセットさ
    れたキャッシュ行のコピーがキャッシュ行のコピーを有
    する最後の高レベル・キャッシュから取り出されると
    き、ディレクトリ管理手段が、対応する包含ビットをリ
    セットし、DビットまたはIビットもリセットすること
    を特徴とする、請求項2に記載のマルチプロセッサ・デ
    ータ処理システム。
  13. 【請求項13】DビットおよびIビットが両方ともセッ
    トされているキャッシュ行のコピーについて、そのキャ
    ッシュ行のコピーが高レベル・データ・キャッシュから
    取り出されるとき、ディレクトリ管理手段が、その高レ
    ベル・キャッシュに対応する包含ビットをリセットする
    ことを特徴とする、請求項2に記載のマルチプロセッサ
    ・データ処理システム。
  14. 【請求項14】DビットおよびIビットが両方ともセッ
    トされているキャッシュ行のコピーについて、キャッシ
    ュ行のコピーが高レベル命令キャッシュから取り出され
    るとき、ディレクトリ管理手段によって包含ビットが変
    更されないことを特徴とする、請求項2に記載のマルチ
    プロセッサ・データ処理システム。
  15. 【請求項15】DビットおよびIビットが両方ともオン
    のキャッシュ行のコピーについて、共用のすぐ下のレベ
    ルのキャッシュ・コピーが共用のすぐ下のレベルのキャ
    ッシュから取り出されるときだけ、ディレクトリ管理手
    段が、DビットとIビットをリセットすることを特徴と
    する、請求項2に記載のマルチプロセッサ・データ処理
    システム。
  16. 【請求項16】DビットまたはIビットだけがセットさ
    れたキャッシュ行がコピーがキャッシュ行のコピーを有
    する高レベル・キャッシュから取り出されるときは、デ
    ィレクトリ管理手段が、対応する包含ビットをリセット
    し、DビットまたはIビットだけがセットされたキャッ
    シュ行のコピーがキャッシュ行のコピーを有する最後の
    高レベル・キャッシュから取り出されるときは、ディレ
    クトリ管理手段が、対応する包含ビットをリセットし、
    DビットまたはIビットもリセットし、 DビットとI
    ビットが両方ともセットされているキャッシュ行のコピ
    ーについて、そのキャッシュ行のコピーが高レベル・デ
    ータ・キャッシュから取り出されるときは、ディレクト
    リ管理手段が、その高レベル・キャッシュに対応する包
    含ビットをリセットし、DビットとIビットが両方とも
    セットされているキャッシュ行のコピーについて、キャ
    ッシュ行のコピーが高レベル命令キャッシュから取り出
    されるときは、ディレクトリ管理手段が、包含ビットを
    変更せず、DビットとIビットが両方ともオンのキャッ
    シュ行のコピーについて、共用のすぐ下のレベルのキャ
    ッシュ・コピーが共用のすぐ下のレベルのキャッシュか
    ら取り出されるときだけ、ディレクトリ管理手段が、D
    ビットとIビットをリセットすることを特徴とする、請
    求項2に記載のマルチプロセッサ・データ処理システ
    ム。
  17. 【請求項17】DビットがセットされておらずIビット
    もセットされていないキャッシュ行のコピーが共用のす
    ぐ下のレベルのキャッシュから取り出されるとき、ディ
    レクトリ管理手段が、高レベルのデータ・キャッシュま
    たは高レベルの命令キャッシュから行を除去しないこと
    を特徴とする、請求項2に記載のマルチプロセッサ・デ
    ータ処理システム。
  18. 【請求項18】Dビットがセットされたキャッシュ行の
    コピーが共用のすぐ下のレベルのキャッシュから取り出
    されるとき、ディレクトリ管理手段が、包含ビットを使
    って高レベル・データ・キャッシュの行を除去し、その
    要求をキャッシュ行のコピーを所有する可能性の最も高
    いデータ・キャッシュに送ることを特徴とする、請求項
    2に記載のマルチプロセッサ・データ処理システム。
  19. 【請求項19】Iビットがセットされたキャッシュ行の
    コピーが共用のすぐ下のレベルのキャッシュから取り出
    されるとき、ディレクトリ管理手段が、包含ビットを使
    って高レベルの命令キャッシュの行を除去し、その要求
    をキャッシュ行のコピーを所有する可能性の最も高い命
    令キャッシュに送ることを特徴とする、請求項2に記載
    のマルチプロセッサ・データ処理システム。
  20. 【請求項20】IビットがセットされDビットがセット
    されたキャッシュ行のコピーが共用のすぐ下のレベルの
    キャッシュから取り出されるとき、ディレクトリ管理手
    段が、包含ビットを使ってすべての高レベルの命令キャ
    ッシュと選択された高レベルのデータ・キャッシュから
    行を除去し、その要求をキャッシュ行のコピーを所有す
    る可能性の最も高い高レベルのデータ・キャッシュに送
    ることを特徴とする、請求項2に記載のマルチプロセッ
    サ・データ処理システム。
  21. 【請求項21】DビットがセットされておらずIビット
    もセットされていないキャッシュ行のコピーが共用のす
    ぐ下のレベルのキャッシュから取り出されるときは、デ
    ィレクトリ管理手段が、高レベルのデータ・キャッシュ
    または高レベルの命令キャッシュから行を除去せず、D
    ビットがセットされたキャッシュ行のコピーが共用のす
    ぐ下のレベルのキャッシュから取り出されるときは、デ
    ィレクトリ管理手段が、包含ビットを使って高レベル・
    データ・キャッシュの行を除去し、その要求をキャッシ
    ュ行のコピーを所有する可能性の最も高いデータ・キャ
    ッシュに送り、Iビットがセットされたキャッシュ行の
    コピーが共用のすぐ下のレベルのキャッシュから取り出
    されるときは、ディレクトリ管理手段が、包含ビットを
    使って高レベルの命令キャッシュの行を除去し、その要
    求をキャッシュ行のコピーを所有する可能性の最も高い
    命令キャッシュに送り、Iビットがセットされたキャッ
    シュ行のコピーが共用のすぐ下のレベルのキャッシュか
    ら取り出されるときは、ディレクトリ管理手段が、包含
    ビットを使ってすべての高レベルの命令キャッシュおよ
    び選択された高レベルのデータ・キャッシュから行を除
    去して、その要求をキャッシュ行のコピーを所有する可
    能性の最も高い高レベルの命令キャッシュに送ることを
    特徴とする、請求項2に記載のマルチプロセッサ・デー
    タ処理システム。
  22. 【請求項22】DビットがセットされておらずIビット
    もセットされていないキャッシュ行のコピーがメイン・
    メモリから照会されたとき、ディレクトリ管理手段が、
    その問合せを高レベルのデータ・キャッシュにも高レベ
    ルの命令キャッシュにも渡さないことを特徴とする、請
    求項2に記載のマルチプロセッサ・データ処理システ
    ム。
  23. 【請求項23】Dビットがセットされたキャッシュ行の
    コピーがメイン・メモリから照会されたとき、ディレク
    トリ管理手段が、包含ビットを使って高レベルのデータ
    ・キャッシュにその照会を渡して、メイン・メモリ要求
    をキャッシュ行のコピーを所有する可能性の最も高いデ
    ータ・キャッシュに送ることを特徴とする、請求項2に
    記載のマルチプロセッサ・データ処理システム。
  24. 【請求項24】Iビットがセットされたキャッシュ行の
    コピーがメイン・メモリから照会されたとき、ディレク
    トリ管理手段が、包含ビットを使って高レベルの命令キ
    ャッシュにその照会を渡して、メイン・メモリ要求をキ
    ャッシュ行のコピーを所有する可能性の最も高い命令キ
    ャッシュに送ることを特徴とする、請求項2に記載のマ
    ルチプロセッサ・データ処理システム。
  25. 【請求項25】IビットがセットされDビットがセット
    されたキャッシュ行のコピーがメイン・メモリから照会
    されたとき、ディレクトリ管理手段が、包含ビットを使
    ってすべての高レベルの命令キャッシュおよび選択され
    た高レベルのデータ・キャッシュにその照会を渡して、
    メイン・メモリ要求をキャッシュ行のコピーを所有する
    可能性の最も高いデータ・キャッシュに送ることを特徴
    とする、請求項2に記載のマルチプロセッサ・データ処
    理システム。
  26. 【請求項26】DビットがセットされておらずIビット
    もセットされていないキャッシュ行のコピーがメイン・
    メモリから照会されたときは、ディレクトリ管理手段
    が、その照会を高レベルのデータ・キャッシュにも高レ
    ベルの命令キャッシュにも渡さず、Dビットがセットさ
    れたキャッシュ行のコピーがメイン・メモリから照会さ
    れたときは、ディレクトリ管理手段が、包含ビットを使
    ってその照会を高レベルのデータ・キャッシュに渡し
    て、メイン・メモリ要求をキャッシュ行のコピーを所有
    する可能性の最も高いデータ・キャッシュに送り、Iビ
    ットがセットされたキャッシュ行のコピーがメイン・メ
    モリから照会されたときは、ディレクトリ管理手段が、
    包含ビットを使ってその照会を高レベルの命令キャッシ
    ュに渡して、メイン・メモリ要求をキャッシュ行のコピ
    ーを所有する可能性の最も高い命令キャッシュに送り、
    IビットがセットされDビットがセットされたキャッシ
    ュ行のコピーがメイン・メモリから照会されたときは、
    ディレクトリ管理手段が、包含ビットを使ってその照会
    をすべての高レベルの命令キャッシュおよび選択された
    高レベルのデータ・キャッシュに渡して、メイン・メモ
    リ要求をキャッシュ行のコピーを所有する可能性の最も
    高いデータ・キャッシュに送ることを特徴とする、請求
    項2に記載のマルチプロセッサ・データ処理システム。
JP07311862A 1994-12-05 1995-11-30 マルチプロセッサ・データ処理システム Expired - Fee Related JP3132749B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US34922694A 1994-12-05 1994-12-05
US349226 1994-12-05

Publications (2)

Publication Number Publication Date
JPH08235061A true JPH08235061A (ja) 1996-09-13
JP3132749B2 JP3132749B2 (ja) 2001-02-05

Family

ID=23371433

Family Applications (1)

Application Number Title Priority Date Filing Date
JP07311862A Expired - Fee Related JP3132749B2 (ja) 1994-12-05 1995-11-30 マルチプロセッサ・データ処理システム

Country Status (2)

Country Link
US (1) US5694573A (ja)
JP (1) JP3132749B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007193805A (ja) * 2006-01-18 2007-08-02 Internatl Business Mach Corp <Ibm> デュアル・システム・ディレクトリ構造体を有するマルチプロセッサ・システムおよび方法
US7428617B2 (en) 2004-07-29 2008-09-23 Fujitsu Limited Cache memory and method to maintain cache-coherence between cache memory units
US7958318B2 (en) 2006-02-14 2011-06-07 Fujitsu Limited Coherency maintaining device and coherency maintaining method

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US5946710A (en) * 1996-11-14 1999-08-31 Unisys Corporation Selectable two-way, four-way double cache interleave scheme
US5835908A (en) 1996-11-19 1998-11-10 Microsoft Corporation Processing multiple database transactions in the same process to reduce process overhead and redundant retrieval from database servers
US6058456A (en) * 1997-04-14 2000-05-02 International Business Machines Corporation Software-managed programmable unified/split caching mechanism for instructions and data
US6065091A (en) * 1997-05-30 2000-05-16 Via-Cyrix, Inc. Translation look-aside buffer slice circuit and method of operation
US6345339B1 (en) * 1998-02-17 2002-02-05 International Business Machines Corporation Pseudo precise I-cache inclusivity for vertical caches
US7248585B2 (en) 2001-10-22 2007-07-24 Sun Microsystems, Inc. Method and apparatus for a packet classifier
JP4127763B2 (ja) * 2002-01-22 2008-07-30 株式会社東芝 半導体装置
US7024519B2 (en) * 2002-05-06 2006-04-04 Sony Computer Entertainment Inc. Methods and apparatus for controlling hierarchical cache memory
US7133975B1 (en) * 2003-01-21 2006-11-07 Advanced Micro Devices, Inc. Cache memory system including a cache memory employing a tag including associated touch bits
US7991966B2 (en) * 2004-12-29 2011-08-02 Intel Corporation Efficient usage of last level caches in a MCMP system using application level configuration
US8990501B1 (en) * 2005-10-12 2015-03-24 Azul Systems, Inc. Multiple cluster processor
US7543112B1 (en) * 2006-06-20 2009-06-02 Sun Microsystems, Inc. Efficient on-chip instruction and data caching for chip multiprocessors
US7793044B1 (en) * 2007-01-16 2010-09-07 Oracle America, Inc. Efficient caching of stores in scalable chip multi-threaded systems
JP5440067B2 (ja) * 2009-09-18 2014-03-12 富士通株式会社 キャッシュメモリ制御装置およびキャッシュメモリ制御方法
US20110320720A1 (en) * 2010-06-23 2011-12-29 International Business Machines Corporation Cache Line Replacement In A Symmetric Multiprocessing Computer
US9529719B2 (en) 2012-08-05 2016-12-27 Advanced Micro Devices, Inc. Dynamic multithreaded cache allocation
GB2516477A (en) * 2013-07-24 2015-01-28 Ibm Method and system for handling virtual memory address synonyms in a multi-level cache hierarchy structure
US9652233B2 (en) * 2013-08-20 2017-05-16 Apple Inc. Hint values for use with an operand cache
WO2016131175A1 (zh) * 2015-02-16 2016-08-25 华为技术有限公司 多核系统中数据访问者目录的访问方法及设备
JP6468121B2 (ja) * 2015-08-17 2019-02-13 富士通株式会社 演算処理装置および演算処理装置の制御方法
KR102454879B1 (ko) 2020-09-22 2022-10-17 (재)예수병원유지재단 위치변동 가능한 휠체어용 수납부재

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4445174A (en) * 1981-03-31 1984-04-24 International Business Machines Corporation Multiprocessing system including a shared cache
WO1984002799A1 (en) * 1982-12-30 1984-07-19 Ibm A hierarchical memory system including separate cache memories for storing data and instructions
US4755930A (en) * 1985-06-27 1988-07-05 Encore Computer Corporation Hierarchical cache memory system and method
US4783736A (en) * 1985-07-22 1988-11-08 Alliant Computer Systems Corporation Digital computer with multisection cache
US4794521A (en) * 1985-07-22 1988-12-27 Alliant Computer Systems Corporation Digital computer with cache capable of concurrently handling multiple accesses from parallel processors
US4853846A (en) * 1986-07-29 1989-08-01 Intel Corporation Bus expander with logic for virtualizing single cache control into dual channels with separate directories and prefetch for different processors
US5168560A (en) * 1987-05-29 1992-12-01 Amdahl Corporation Microprocessor system private split cache tag stores with the system tag store having a different validity bit for the same data line
US4926317A (en) * 1987-07-24 1990-05-15 Convex Computer Corporation Hierarchical memory system with logical cache, physical cache, and address translation unit for generating a sequence of physical addresses
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
US5163142A (en) * 1988-10-28 1992-11-10 Hewlett-Packard Company Efficient cache write technique through deferred tag modification
US5202972A (en) * 1988-12-29 1993-04-13 International Business Machines Corporation Store buffer apparatus in a multiprocessor system
US5185871A (en) * 1989-12-26 1993-02-09 International Business Machines Corporation Coordination of out-of-sequence fetching between multiple processors using re-execution of instructions
US5490261A (en) * 1991-04-03 1996-02-06 International Business Machines Corporation Interlock for controlling processor ownership of pipelined data for a store in cache
US5394555A (en) * 1992-12-23 1995-02-28 Bull Hn Information Systems Inc. Multi-node cluster computer system incorporating an external coherency unit at each node to insure integrity of information stored in a shared, distributed memory
US5530832A (en) * 1993-10-14 1996-06-25 International Business Machines Corporation System and method for practicing essential inclusion in a multiprocessor and cache hierarchy
US5539895A (en) * 1994-05-12 1996-07-23 International Business Machines Corporation Hierarchical computer cache system

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7428617B2 (en) 2004-07-29 2008-09-23 Fujitsu Limited Cache memory and method to maintain cache-coherence between cache memory units
JP2007193805A (ja) * 2006-01-18 2007-08-02 Internatl Business Mach Corp <Ibm> デュアル・システム・ディレクトリ構造体を有するマルチプロセッサ・システムおよび方法
US7958318B2 (en) 2006-02-14 2011-06-07 Fujitsu Limited Coherency maintaining device and coherency maintaining method

Also Published As

Publication number Publication date
JP3132749B2 (ja) 2001-02-05
US5694573A (en) 1997-12-02

Similar Documents

Publication Publication Date Title
JP3132749B2 (ja) マルチプロセッサ・データ処理システム
EP0936555B1 (en) Cache coherency protocol with independent implementation of optimised cache operations
JP3281893B2 (ja) キャッシュ・メモリ階層内で利用するキャッシュ・コヒーレンシ機構を実施するための方法およびシステム
KR100274771B1 (ko) Smp 버스의 공유 상태에서의 캐시 라인들의 공유 개입 방법
JP2516300B2 (ja) 多重プロセツサ・システムの性能の最適化装置及び方法
US7093079B2 (en) Snoop filter bypass
US7340565B2 (en) Source request arbitration
KR100293136B1 (ko) Smp버스의최근판독상태에서의캐시라인들의공유개입방법
KR100273039B1 (ko) 멀티프로세서 데이터 처리 시스템의 캐쉬 일관성을 유지하기위한 캐쉬 일관성 프로토콜 제공 방법 및시스템
JPH10333985A (ja) データ供給方法及びコンピュータ・システム
US6334172B1 (en) Cache coherency protocol with tagged state for modified values
JP2000250812A (ja) メモリ・キャッシュ・システムおよびその管理方法
US20090063782A1 (en) Method for Reducing Coherence Enforcement by Selective Directory Update on Replacement of Unmodified Cache Blocks in a Directory-Based Coherent Multiprocessor
JPH10289154A (ja) Smpバスの排他状態でのキャッシュ・ラインの共用を行う方法及び装置
JPH10289157A (ja) Smpバスの共用介入優先方法及びシステム
US6950906B2 (en) System for and method of operating a cache
US6701417B2 (en) Method and apparatus for supporting multiple cache line invalidations per cycle
US6701416B1 (en) Cache coherency protocol with tagged intervention of modified values
US6341336B1 (en) Cache coherency protocol having tagged state used with cross-bars
US8244983B2 (en) Memory control systems with directory caches and methods for operation thereof
US6397295B1 (en) Cache mechanism for shared resources in a multibus data processing system
EP0936553B1 (en) Cache coherency protocol with tagged state and historical information
JPH06208507A (ja) キャッシュメモリシステム
JPH01102662A (ja) 記憶装置
JPS61229142A (ja) 階層構成をなすバツフアメモリシステムにおけるリブレ−ス制御用アレイ管理装置

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20071124

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081124

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081124

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091124

Year of fee payment: 9

LAPS Cancellation because of no payment of annual fees