[go: up one dir, main page]

JPH02236749A - キャッシュ制御装置 - Google Patents

キャッシュ制御装置

Info

Publication number
JPH02236749A
JPH02236749A JP1149778A JP14977889A JPH02236749A JP H02236749 A JPH02236749 A JP H02236749A JP 1149778 A JP1149778 A JP 1149778A JP 14977889 A JP14977889 A JP 14977889A JP H02236749 A JPH02236749 A JP H02236749A
Authority
JP
Japan
Prior art keywords
cache
cache line
line
processor
control element
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
JP1149778A
Other languages
English (en)
Other versions
JPH0740248B2 (ja
Inventor
Lishing Liu
リイシイング・リユー
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 JPH02236749A publication Critical patent/JPH02236749A/ja
Publication of JPH0740248B2 publication Critical patent/JPH0740248B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime 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/0815Cache consistency protocols
    • G06F12/0817Cache consistency protocols using directory methods
    • G06F12/0822Copy directories

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)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 A.産業上の利用分野 本発明は、一般にマルチプロセッサ・システムにおける
キャッシェ、さらに具体的には、キャッシュ中の変更さ
れた行がそのキャッシュによって変更されたのか、それ
とも他のキャッシュによって変更されたのかを示す変更
ビットを、キャッシュ・ディレクトリ中に追加して使用
することに関する。
B.従来技術及びその問題点 現代の高性能プログラム記憶式ディジタル・コンピュー
タは、通常、命令及びデータを主記憶装置から取り出し
、取り出した命令及びデータをキャッシュに記憶する。
キャッシュとは、コンピュータの主記憶装置よりも普通
ずっと小さくかつずっと速い局所記憶装置である。ほぼ
すべての高性能ディジタル・コンビュータは、キャッシ
ュを使用しており、市販のマイクロプロセッサにも局所
キャッシュを備えたものがある。
キャッシェが開発されたのは、最新のパイプライン方式
プロセッサにふさわしいアクセス時間で動作する、極め
て大型の記憶装置を手頃なコストで製作するのが不可能
だったからである。しかし、プロセッサに遅れずに動作
できる、安価な小型の記憶装置を製作することは可能で
ある。キャッシュ中の命令はプロセッサがただちにアク
セスできるので、コンピュータの速度を上げるためにキ
ャッシュが使われて来た。
一度参照された項目(命令またはデータ)は近い将来再
度参照される傾向があることが認められている。この性
質は「参照の時間的局所性」と呼ばれ、最近に参照した
項目をキャッシュに記憶しておく理論的根拠である。ま
た、ある項目が参照された場合、その参照項目に物理的
に近接している他の項目も参照される可能性が大きいこ
とも認められている。この第2の性質は、「参照の空間
的局所性」と呼ばれ、連続する諸項目のブロックである
キャッシュ行を記憶しておく理論的根拠である。
キャッシュは、多重プロセッサ・システムでも単一プロ
セッサ・システムでも使用可能である。
共通のオペレーティング・システム及び記憶装置を共用
するいくつかのプロセッサ(CP)がそれ自体のキャッ
シュを有する、緊密結合多重プロセッサ・システムと呼
ばれる型式の多重プロセッサ(MP)システムでは、各
キャッシュが、いくつかのキャッシュ中に同時に存在す
るキャッシュ行に何が起こったかを知る必要があるので
、さらに別の問題が生じる。多数のCPが同じ主記憶装
置を共用する多重プロセッサ・システムでは、アクセス
が出されたとき、各CPがアーキテクチャ仕様に基づい
てデータの最近に更新されたバージロンを得ることが必
要である。この要件のため、キャッシュのコヒーレンス
問題としばしば呼ばれる、キャッシュ相互間のデータ整
合性を常に監視する必要がある。
従来技術の多重プロセッサ・システムには、様々な型式
のキャッシュが存在する。第1の型式のキャッシュはス
トアスルー(ST)型キャッシュであり、常に主記憶装
置に対するデータ変更を更新するために、CPが直接主
記憶装置(または第2段キャッシュ)にデータを記憶す
るのに干渉しない。主記憶装置へのストアスルーが更新
されると、その記憶を開始したCPのキャッシュ以外の
キャッシュ中にあるキャッシュ行のコピーを無効化する
ため、適当な相互間合せ(XI)動作を行なわれること
ができる。通常、ストアスルー型キャッシュ設計では、
データ記憶を組み込むためにかなりの主記憶装置の帯域
幅を必要とする。
もう一つの型式のキャッシュ設計は、ストアイン型キャ
ッシュ(S I C)である。ストアイソ型キャッシュ
は、米国特許第3735380号明細書及び第3771
137号明細書に記載されている。SICキャッシュ・
ディレクトリは、米国特許第4394731号明細書に
詳説されている。
この開示では、ストアイソ型キャッシュ内の各行が、独
占/読取り専用(EX/RO)フラグ・ビットで制御さ
れる多重プロセッサ共用可能性を有する。ストアスルー
型キャッシュとストアイソ型キャッシュの主な違いは、
ストアイン型キャッシュでは記憶がすべてキャッシュ自
体を対象している(したがって、記憶されたキャッシュ
行がストアイン型キャッシュ中にない場合にはキャッシ
ュ・ミスとなる)ことである。ストアイン型キャッシュ
設計では、コピーが遠隔キャッシュにある場合、取出し
ミスのとき、キャッシュ間転送バス(CTC)を介して
データ転送が行なえる。各キャッシュ内のディレクトリ
のコピーを含む記憶制御エレメントが使用される。この
ため、相互間合せ(XI)決定をかなり効率良く解決す
ることが可能となる。
通常、キャッシュ行の変更は、そのキャッシュ行がキャ
ッシュから置換されたときにだけ主記憶装置に対して更
新される。
キャッシュ内のキャッシュ行は、典型的には、通常LR
U行をエージ・アウトする交換アルゴリズムに従って置
換される。ストアイン型キャッシュ設計では、このよう
な修正/変更済みキャッシュ行が、エージ・アウトされ
るとき、記憶装置にも書き込まれる。その結果、ストア
イン型キャッシュ設計では、主記憶装置の帯域幅が減少
する代わりに、コヒーレンス制御がより複雑となり、相
互問合せの廃棄によって不利が生じる。相互問合せが廃
棄されるのは、一方のCPからのデータ・アクセスで、
もう一方のCPのキャッシュ中で変更されたキャッシュ
行が見つかったときである。
キャッシュ・ディレクトリは、そのキャッシュ行が読取
り専用(RO)か、独占(EX)か、変更済み(CH)
か、それとも無効(INV)かに関する情報を含んでい
る。
ROとなっているキャッシュ行は、読取り専用状態でだ
け有効である。プロセッサは、そのキャッシュ行からは
取出ししかできない。キヤ,シュ行への記憶は禁止され
ている。このキャッシュ行は、異なるキャッシュ間で同
時に共用することができる。
’EXとなっているキャッシュ行は、有効であるが、あ
るプロセッサのキャッシュ中にだけ現われ、他のどの(
遠隔)キャッシュにも常駐しない。その1つの(所有)
プロセッサだけが、そのキャッシュ行に記憶することを
許されている。
CHとなっているキャッシュ行は、その行が有効かつE
Xであることを示すだけでなく、それに記憶が行なわれ
たことも示す。すなわち、主記憶装置中のコピーが最新
のものではない可能性がある。CH行が置換されるとき
、廃棄動作を介して、そのコピーが主記憶装置に送られ
る。
INVキャッシュ行は、無効となっている行である。
典型的なコンピュータφシステムでは、第1のプロセッ
サP,がキャッシュ中のあるキャッシェ行から命令また
はデータを要求することがある。
それ自体のキャッシュが検査され、要求した特定のキャ
ッシュ行が読取り専用(RO)状態の場合は、記憶要求
を行なうことができ、記憶制御エレメント(SCE)を
介して、そのキャッシュ行を独占(EX)状態にする。
そのキャッシュ行が独占状態になると、記憶制御エレメ
ント(SCE)は、他のキャッシュに、そのキャッシュ
行が無効であり、第1のキャッシュがそのキャッシュ行
に自由に書き込めると指示する。そのキャッシュ行が一
度書き込まれると、そのキャッシュ行が変更済みである
ことを示すCHビットがセットされる。
その後、第2のプロセッサP2がそのキャッシュ行を要
求した場合、変更ビットはセットされたままであり、P
2がこのキャッシュ行に記憶を行なわなくても、変更ビ
ットはセットされたままになる。これは、キャッシュ間
パスを使ってキャッシュ行が転送されるからである。C
Hビットがオンのままなのは、そのキャッシュ行が主記
憶装置を通過していない(すなわち、CHビットのオン
は、主記憶装置が最新の状態でないことを示す)からで
ある。ただし、変更ビットがセットされたままになって
いる限り、このキャッシュ行は、いつでもただ1つのキ
ャッシュ専用でなければならない。
上記の手法では、異なる中央演算処理装置からの取出し
によって同時に共用できるはずのキャッシュ行が大部分
の時間、強制的に1つのキャッシュ中に常駐することに
なるので、並行性が不必要に失われる。たとえば、より
頻繁にアクセスされ、ある時間間隔の間に比較的たまに
しか変更されないキャッシュ行Lを考えてみる。Lがプ
ロセッサによって変更されると、これはLRU置換によ
って実際にキャッシュから置換されるまで、異なるキャ
ッシュの間で大体CHであり続けることとなる。Lが遠
隔キャッシュ中にある場合には、プロセッサがキャッシ
ュ行L上でデータ取出しを出すごとに相互間合せ(XI
)が必要となる。
上記のような異常が生じるのは、ディレクトリ項目中の
CHビットが、このような変更済みキャッシュ行がもは
や近いうちに変更を受ける可能性がないのかどうかを示
すことができないためである。
このような問題は、たとえば、キャッシェに対して最初
に変更が加えられる電源投入時にしばしば生じ、その後
は、通常このキャッシェ行に対する読取り専用(RO)
状態だけが必要である。変更ビットは、そのキャッシュ
行がエージ・アウトされて主記憶装置にダンプされるま
で、リセットされない。
キャッシュが大型になり、多重プロセッサ・システム内
のCPUの数が増加するにつれて、この問題はさらに大
きくなる。キャッシュが大型になると、キャッシュ行は
それほど速くエージ・アウトしなくなり、またCPUの
数が増加するにつれて、キャッシュ行が、エージ・アウ
トする機会を得ないうちに、CPUの間を次々にまわさ
れる傾向が増す。
当技術分野では、様々なキャッシュ管理技法が知られて
いる。しかし、変更ピットの使用が制限されているため
、キャッシュの並行性の喪失を最小限に抑えることを対
象とする既知の技術はない。
以下は、キャッシュ制御機構に関する代表的な従来技術
である。
米国特許第4484712号明細書は、2段キャッシュ
階層(LL/L2)における第2段キャッシュ置換の方
策を扱っている。L1はプロセッサ専用(局所)キャッ
シュであり、L2は全プロセッサが第2段で共用する。
Rビット及びL2ブロック項目を、そのブロックを置換
優先順位に入れるべきかどうかの指標として使用する。
この開示では、DLATヒット/ミス時にRビットを操
作する方法をいくつか提案している。本発明は、第2段
キャッシュ(L2)階層から独立しており、第1段のプ
ロセッサ局所キャッシュにおけるデータ行の並行性にの
み関する。
米国特許第4445174号明細書では、共通キャッシ
ュを使用し、共用オーバーヘッドを減少させることに基
づく性能の利点が特許請求されている。共通手ャッシュ
は、第2段キャッシュとしてでなく、プロセッサの専用
キャッシュの最上部にある第1段キャッシュとして使用
される。この開示では、主として、相互間合せ(XI)
が観察され、キャッシュ行へのアクセスで、その行が別
のプロセッサの専用キャッシュ中でCHになっているこ
とが判明するかどうかに基づいて、そのキャッシュ行を
共用キャッシュに移動すべきがどうか決定することを提
案している。損害を与える共用が遠隔CH状態を介して
検出され、次いで、そのキャッシュ行が、すべてのプロ
セッサにとって速いと考えられる共用キャッシュに入れ
られる。
本発明では、損害を与える共用特性が消えるとき、異な
るキャッシュ中のキャッシュ行を読取り専用状態にさせ
ることによって、並行性が実現される。
米国特許第4181937号明細書には、2段キャッシ
ュ階層における多重プロセッサ(MP)キャッシュ置換
方式が教示されている。全プロセ,サが共用するL2か
らのブロックの置換を決定するとき、第1段プロセッサ
・キャッシュ内のコピーの数がより少ないブロックによ
り高い優先順位が与えられる。これは、より良好なL2
置換の方策であり、Llでの並行性を増大させるものと
思われる。本発明は、L2置換には関係しない。
米国特許第4503497号明細書では、CH行が遠隔
プロセッサによってアクセスされたとき、その行がCH
かつ独占コピーとして、主記憶装置にアクセスすること
なく転送されるという、キャッシュ間転送の多重プロセ
ッサ設計が論じられている。本発明はこの設計に対する
改良であり,CHビットに対する変更を必要とする。
米国特許第439473 1号明細書には、相互間合せ
状況(すなわち、キャッシュ行が遠隔でEXまたはCH
にされる)で、キャッシュ行が、遠隔キャッシュ中で変
更されたことが判明したときにだけ、(CHでな<)E
Xとして取り出される。
この開示では、キャッシュ間転送環境は論じられていな
い。本発明は、遠隔変更状況で、キャッシュ間転送環境
に対して、この種のEX(ただしCHも)取出しを行な
う能力を提供する。これは、キャッシュ間転送機能を使
うと、CH行をEX及びCHとして直接別のキャッシュ
に転送でき、したがって、主記憶装置の更新(廃棄)ト
ラフィックが不要となるので、いくつかの利点を有する
さらに、このシステムでは、CH行の状態(すなわち、
変更が最近の記憶によるものかどうか、あるいは変更が
やりとりされて並行性を不必要に失ったかどうか)を決
定できない。
C.発明が解決しようとする問題点 したがって、本発明の目的は、キャッシュ行がどのくら
い最近に変更されたかを明らかにするキャッシュ・コヒ
ーレンス機構を提供することにある。
本発明のもう一つの目的は、キャッシュ行が遠隔の過去
の事象として変更されることによる、その並行性に対す
る不必要な制限を避けることにある。
本発明のもう一つの目的は、キャッシュ行が最近変更さ
れていない場合、そのキャッシュ行を読取り専用にして
、すべてのプロセッサにとって使用可能にさせることで
ある。
D.問題点を解決するための手段 本発明は、CH状態がCH1ocとCHremの2つの
副状態に分けられるという、キャッシュ・コヒーレンス
機構を記載している。CHloc状態とは、キャッシュ
が局所プロセッサによって最近に記憶されたことを意味
する。CH  状態とは、キャッreー シュ行が、変更済みデータ、すなわち別のキャッシュか
ら受け取ったもので、そのキャッシュによって変更され
、最後の取出し時に継承されたデータだけを含むことを
意味する。本発明は、CH1oc状況ビットを使って、
キャッシュ行Lを上例の両方のキャッシュ中で読取り専
用に保つべきかどうかを決定するものである。
E.実施例 IBM社3090シリーズなどの多重プロセッサ・メイ
ンフレーム・コンピュータでは、ストアイソ型キャッシ
ュが使用されている。各プロセッサP1ごとに、ストア
イン型キャッシュCIがある。
各キャッシュにディレクトリが付随し、ディレクトリ中
の各項目は、可能な3つの状態、INV1RO.EXの
うちの1つをとることができる。
INV  − これは、キャッシュ項目が無効なことを
示す。
RO − これは、キャッシュ項目が読取り専用状態で
育効なことを示す。プロセッサは、このキャッシュ行か
ら取り出すことしかできず、このキャッシュ行への記憶
は禁止されている。
EX  一 これは、キャッシュ行が有効であり、それ
が現在入っているキャッシュ以外のキャッシュには常駐
していないこと(すなわち、独占)を示す。他のキャッ
シュは、遠隔キャッシュと見なされる。このキャッシュ
行を所有するキャッシュを所有しているプロセッサは、
このキャッシュ行への記憶を許されるが、所有していな
いプ、ロセッサは許されない。
各キャッシュ・ディレクトリ項目に関連するCHビット
(変更ビット)もある。キャッシュ中の有効なキャッシ
ュ行について、CHビットは、その項目がEX状態にあ
る場合にだけオンになる。
CHビットがオンのとき、キャッシュ行がCH状態にあ
ると言われる。CHは、そのキャッシュ行が有効かつ独
占であるだけでなく、その行に記憶が行なわれたことも
示す。すなわち、共用される主メモリ(主記憶装置MS
)内のそのキャッシュ行のコピーが、プロセッサの1つ
によって行なわれた最近の変更を反映していないことが
ある。このキャッシュ行が置換されると、キャッシュ行
に対する変更が廃棄(castout)動作と呼ばれる
機構によって主メモリに送られる。
システム内の複数のプロセッサが、共通記憶装置制御エ
レメン} (SCE)に接続されている。
また、各プロセッサごとに、そのプロセッサのキャッシ
ュ用ディレクトリを維持するバッファ制御エレメン} 
(BCE)もある。あるプロセッサからの主要なメモリ
・アクセスは、すべてそのキャッシュに対して行なわれ
る。キャッシュ・ミスのとき(すなわち、キャッシュ行
がキャッシュ中で見つからないとき)、バッファ制御エ
レメントは記憶制御エレメントに、キャッシュ行のコピ
ーを獲得し、そのキャッシュ行にとって適正な状態(R
OまたはEX)にするよう要求する。プロセッサからの
記憶で、そのキャッシュにおいてキャッシュ行がEXま
たはCH杖態になっていないとき、バッフ1制御エレメ
ントは、記憶制御エレメントに独占杖態にせよとの要求
を送る必要が生じる。
プロセッサがキャッシュ中の有効な(EX)キャッシュ
行中に記憶を行なうとき、そのキャッシュ行がCH状態
にセットされる。
プロセッサから要求を受け取ると、記憶制御エレメント
24は、アーキテクチャ上の整合性を維持するために適
切な許可を与えるのに必要な処置を決定する。上記のI
BM3090などのコンビュータ・システムでは、記憶
制御エレメント24が、プロセッサ・キャッシュ用ディ
レクトリのフビーを維持する。その後、記憶制御エレメ
ント24は、別のキャッシュ中にそのキャッシュ行のコ
ピーがあるかどうか、及びそのコピーがどのキャッシュ
中に入っているかを決定することができ、さらに、その
キャッシュ行がRO伏態かそれともEX状態かを決定す
ることができる。記憶制御エレメントで、あるプロセッ
サにとってキャッシュ行がEXであると指示されたとき
、そのキャッシュ行は、特定の瞬間にそのキャッシュ中
でCH状態にあることもないこともある。
IBM3090システムには、キャッシュ間転送(CT
C)バス(22)がある。したがって、キャッシュ行は
、直接主メモリを通過せず、キャッシュ間転送バス22
を介して異なるキャッシュ間で転送される。従来技術の
装置からのメモリ・アクセスには、大別して、■取出し
(命令取出し)、D取出し(データまたはオペランド取
出し)、D記憶(データまたはオペランド記憶)の3種
がある。I取出し及びD取出しアクセスではデータが読
み取られ、D記憶ではメモリ内容が変更される。
ある種の状況(インターロック命令の場合など)では、
D取出して独占(EX)状態が必要となることがある。
キャッシュにアクセスするための動作は、次の通りであ
る。まず、プロセッサがそのキャッシュ中のキャッシュ
行Lに適正な許可を得てアクセスする場合、そのアクセ
スは、追加の動作なしに許可される。EX状態をとるキ
ャッシュ行には、3つの要求タイプ、■取出し、D取出
し、D記憶のどれもがアクセスできる。ただし、D記憶
では、記憶後にCHビットがオンになったEX状態が必
要である。
プロセッサPLが命令取出しによってキャッシュ行Lを
要求し、キャッシュ行Lが遠隔プロセッサPJでEXで
ある場合、記憶制御エレメントはP1に、そのEX状況
を解除するようにと通知する。
PJのバッファ制御エレメントは、その信号を受け取る
と、キャッシュ間転送バスを介してそのキャッシュ行を
Plに転送する。PJのバッファ制御エレメントlθは
、キャッシュ行の主記憶装置26への廃棄を実行させる
。それが終わったとき、プロセッサi(10)のキャッ
シュ18とプロセッサj(12)のキャッシュ20は、
共に読取り専用(RO状態)のキャッシュ行を有する。
プロセッサP+(10)がデータ取出し(D取出しまた
はオペランド取出し)によってキャッシュ行Lを要求し
、Lが遠隔プロセッサPJで独占状態のとき、記憶制御
エレメント24はPJに、そのキャッシュ行Lに対する
EX状況を解除するように通知する。PJのバッファ制
御エレメントは、その信号を受け取ると、上記と同様に
、キャッシュ間転送によってバス22を介してキャッシ
ュ行LをP,に転送させる。キャッシュ行Lがキャッシ
ュj(20)で変更されていない場合、キャッシュl(
18)とキャッシュj (20)は共に、上記(■取出
しの場合)と同様に読取り専用状態のキャッシュ行Lを
獲得する。しかし、LがキャッシュjでCH(変更済み
)の場合には、プロセッサi(10)はCH杖態のキャ
ッシュ行(CHヒットがオンになったEX行)を受け取
り、プロセッサj(12)のバッファ制御エレメント1
6はそれ自体のキャッシュからしを無効化する。最後の
状況は、遠隔CHヒット時の条件付きD取出しCHと呼
ばれる。
プロセッサIが■取出しまたはD取出しによってキャッ
シュ行Lについてキャッシュ・ミスとなり、記憶制御エ
レメント24が、そのキャッシュ行がどの遠隔キャッシ
ュ(たとえば、プロセッサj)でもEXでないことを検
出したとき、記憶制御エレメント24は、遠隔キャッシ
ュに常駐していることがわかった場合はその遠隔キャッ
シュからのキャッシュ行の転送をスケジューリングする
ことができ、実施態様によっては、主制御装置(26)
からのキャッシュ行の取出しをスケジューリングするこ
ともできる。それが終わったとき、D取止しミスのため
行Lかどのキャッシュにもないことを記憶制御エレメン
ト24が検出したとき以外は、プロセッサi(10)は
、キャッシュ行Lを読取り専用状態で獲得する。D取出
してキャッシュ・ミスとなったキャッシュ行がどのキャ
ッシュにもないときは、IBM3090などのメインフ
レーム・コンビ二一夕はP,に、主記[Lilit28
から新たに取り出したキャッシュ行に対する独占一状態
を許可する。
プロセッサlがそれ自体のキャッシェ中で読取り専用の
キャッシュ行に対して独占状況を要求する場合、記憶制
御エレメント24は、キャッシュ行Lが他の遠隔キャッ
シュ、たとえばプロセッサj(12)に属するキャッシ
ュ2 (20)中に常駐しているかどうか判定しなけれ
ばならない。
キャッシュ行Lが見つかった場合、記憶制御エレメント
はそれらの遠隔キャッシュ(キャッシュ2)に、そのコ
ピーを無効にするように通知する。次いで、記憶制御エ
レメント24は、遠隔コピーがすべて無効にされたこと
を確認すると、プロセッサi (10)にキャッシュ行
Lに対するEX状態を許可する。
プロセッサi(10)がそのキャッシュに常駐していな
いキャッシュ行Lに対する独占状況を要求する場合、記
憶制御エレメント24は、そのキャッシュ行が遠隔キャ
ッシュ(たとえばプロセッサj(12)など)中でEX
であるかどうか判定する。そうでない場合、そのキャッ
シュ行が遠隔キャッシュまたは主記憶装置26からプロ
セッサj (10)に取り出され、キャッシュ行Lのあ
らゆる可能な遠隔なコピーに無効にするようにと通知す
る。あるいはまた、そのキャッシュ行が独占杖態の遠隔
キャッシュからプロセッサl(10)に取り出される。
それには、遠隔キャッシ:L20からのキャッシェ行の
無効化が必要である。後者の場合、プロセッサi(10
)に転送されたキャッシュ行は、それが遠隔キャッシュ
中でもCHになっている場合には、やはりCH状態にな
る。
上記の動作を、第2図ないし第4図に示す。第2図には
、プロセッサからの命令取出しアクセスを示す。ステッ
プ100で、局所バッフ1制御エレメント14は、プロ
セッサによってアクセスされているキャッシュ行がキャ
ッシュ中にあるかどうか調べるためテストする。イエス
の場合、キャッシュ・アクセスが許可され、そうでない
場合は、ステップ101で、バッファ制御エレメントが
記憶制御エレメント24にミス要求を行なう。ステップ
102で、記憶制御エレメント24は、キャッシュ行が
遠隔で独占かどうか決定する。そうでない場合、記憶制
御エレメント24は主記憶装置または遠隔コピーからの
キャッシュ行取出しのスケジェーリングを行ない、読取
り専用状況が許可される。キャッシュ行が遠隔で独占的
に保持されている場合には、ステップ103で、記憶制
御エレメント24は遠隔バッフ1制御エレメントに通知
する。ステップ104で、遠隔パッフ1制御エレメント
は、そのキャッシュ行が変更されている(CH)かどう
か決定する。そうでない場合には、遠隔バッファ制御エ
レメント16は、キャッシェ行をキャッシェ間転送によ
って(キャッシュ間転・送バス22を介し)要求側キャ
ッシュにコピーし、キャッシュ行を両方のキャッシュ読
取り専用(RO)であると指定する。しかし、キャッシ
ュ行が変更されている場合には、遠隔分岐制御エレメン
トがキャッシュ行を主記憶装置に廃棄する。
第3図は、プロセッサからのデータ取出しアクセスの流
れ図である。ステップ200で、バッファ制御エレメン
ト14は、プロセッサが要求しているキャッシュ行が局
所キャッシェ18中に局所的に含まれているかどうかを
決定する。そうである場合、キャッシュ・アクセスが許
可される。しかし、そうでない場合には、ステップ20
1で、バッファ制御エレメントは、記憶制御エレメント
24にミス要求を行なう。ステップ202で、キャッシ
ュ行が遠隔で独占状態かどうかが決定される。
そうでない場合、記憶制御エレメント24は主記憶装置
または別のキャッシュ中の遠隔コピーからのキャッシュ
行取出しのスケジューリングを行ない、読取り専用状況
が許可される。しかし、キャッシュ行は遠隔で独占吠態
である場合は、ステップ203で記憶制御エレメント2
4は遠隔バッファ制御エレメント1θに通知し、ステッ
プ204で、遠隔バッファ制御エレメント18は、キャ
ッシェ行が変更されているかどうかを決定する。変更さ
れていない場合には、遠隔バッファ制御エレメント18
は、キャッシュ行を要求側キャッシュ(18)にコピー
し、そのキャッシュ行を主記憶装置に廃棄し、両方のキ
ャッシュ(18及び20)中でそのキャッシュ行を読取
り専用状況に指定する。
しかし、キャッシェ行が変更されている場合には、遠隔
バッファ制御エレメント1θはキャッシュ行を要求側キ
ャッシュ(18)に移し、それを独占/変更済み(EX
/CH)にし、次いで自身のキャッシュ行のコピーを無
効にする。
第4図は、データ記憶アクセスのための処理を示す。ス
テップ300で、パッファ制御エレメント14は、プロ
セッサが要求しているキャッシュ行が局所キャッシュ1
8中にあるかどうかを決定する。そうである場合は、キ
ャッシュ・ヒットである。ステップ301で、パッファ
制御エレメント14は、そのキャッシュ行が局所キャッ
シュ(18)にとって独占状態かどうか決定する。そう
である場合、バッファ制御エレメント14は、キャッシ
ュ・アクセスを許可し、CHビットがオンになる。しか
し、そうでない場合には、ステップ302で、バッフ1
制御エレメント14は記憶制御エレメント24に、キャ
ッシュ行を独占状態にするよう要求する。次いで、記憶
制御エレメント24は、遠隔コピーを無効にし、要求側
キャッシュ18中のキャッシュ行に対する独占状況を許
可する。
しかし、キャッシュ・ヒットでない場合には、ステップ
303で、バッファ制御エレメント14は記憶制御エレ
メントにそのキャッシュ行に対する要求を行ない、キャ
ッシュ行を独占状況に指定する。次いで、ステップ30
4で、記憶制御エレメントは、そのキャッシュ行が遠隔
キャッシュ、たとえばキャッシュ20中で独占状態かど
うか決定する。そうでない場合、記憶制御エレメント2
4は主記憶装置または遠隔キャッシュからのキャッシュ
行の取出しのスケジューリングを行ない、遠隔コピーを
無効にする。次いで、さらに、要求側キャッシュ中のキ
ャッシュ行に対する独占状況を許可する。しかし、キャ
ッシュ行が遠隔キャッシュ20中で独占状態の場合には
、ステップ305で、記憶制御エレメント24は遠隔バ
ッファ制御エレメント16に通知する。次いで、遠隔バ
ッフ1制御エレメント16は、キャッシュ行を要求側キ
ャッシュ18に移し、独占/変更済み状態を割り当て、
次いで、それ自体のコピーを無効にする。
プロセッサiからのデータ取出しキャッシュ◆ミスにつ
いて上記の説明から明らかなように、要求されたキャッ
シュ行は、特定のD取出しがキャッシュ行を読み取るこ
とを望むだけであるが、それが遠隔プロセッサj(12
)中で変更されていることがわかった場合、変更済み(
CH)として転送される。後で、そのキャッシュ行がプ
ロセッサi(10)によって変更される前に、プロセッ
サJ (12)がそのキャッシュ行にアクセスしようと
望む場合には、キャッシュlからキャッシュjへのキャ
ッシュ行転送がもう1回必要となる。
プロセッサi (10)のデータ取出しミスのとき、キ
ャッシュ行が、主記憶装置への廃棄(すなわち、キャッ
シュ行を主記憶装置26に再度記憶する)という犠牲を
払って、両方のキャッシュ中で読取り専用(共用)にさ
れる場合、この不必要なキャッシュ行転送というオーバ
ーヘッド及び関連する相互間合せ(XI)動作が節減で
きる。変更済みのデータ行は、データが取り出された後
まもなく変更される傾向があるので、この条件付きデー
タ取出しのCH判定基準は、妥当な選択であることが以
前から分かっていた。その結果、CH状態を伴うデータ
取出しでは、主記憶装置廃棄トラフィック及びそれに続
<EX状態の要求(キャッシュ行がRO状態で記憶され
ているとき)がおそらくは避けられるはずである。
しかし、環境の変化によって、上記のデータ取出しCH
判定基準が異常な挙動をもたらすようになってきた。C
H行は、これが命令取出しされる(あまりないと思われ
る)か、またはキャッシュからエージ・アウトし(置換
され)あとでミスにより再参照される場合にのみ、複数
キャッシュにより並行して(RO状態で)共用されるこ
ともできる。キャッシュがより大型となり、また多重プ
ロセッサ・システムに追加されるプロセッサの数が増加
するのにつれて、CH行が他のどのプロセッサによって
もアクセスされずにエージ・アウトする機会は、かなり
減少する。その結果、CH状況のキャッシュ行は、もは
や長い時間記憶されないときや、異なるプロセッサから
繰り返し読み取られるときでさえ、共用可能にならない
可能性が大きくなる。こうした並行性の無用な喪失は、
応用分野によっては、重大な性能上のネックになること
がある。
その理由は、CHビットがデータ汚染(すなわち主記憶
装置の内容28が最新のものでない)をも、キャッシュ
行が記憶され得る傾向をもつことをも示すためである。
CH行が異なるキャッシュの間を次々に回されるので、
CHビットは、キャッシュ行がもはや変更されないとい
うことを反映できなくなる。
しかし、本発明では、キャッシュ行が最近プロセッサに
よって変更されたかどうかを示す、追加の状態をキャッ
シュ・ディレクトリ中でキャッシュ行に割り当てる。こ
の追加の状態を、本明細書ではCHIOc(局所変更)
と呼ぶ。キャッシュ行Lは、キャッシュiが最後にその
行のコピーを受け取って以降に変更された場合、プロセ
ッサIに対してCHIoc吠態にある。キャッシュが行
Lのコピーを得たとき、それはCHloc状態にはない
が、プロセッサがその行に記憶を行なうとき、CH1o
c状態に入る。CH1。。状態は、ある行の変更される
傾向に関する指標として使用され、様々な多重プロセッ
サ・キャッシニの最適化に使用することができる。
第1図ないし第4図に示した、上記で論じた設計の修正
と考えられる実施例では、キャッシュ・ディレクトリ項
目当り1個の追加ビット(LCHビット)をバッファ制
御エレメント中で使用する。
LCHビットの操作について、以下で説明する。
ある行がキャッシェ中に取り出されるきき、関連するL
CHビットがオフになる。しかし、ある行がプロセッサ
から記憶されるときは、関連するCHビットとLCHビ
ットが共にオンになる。
ここで、多重プロセッサの動作を、主として、データ取
出しキャッシュ・ミスが遠隔に保たれている独占キャッ
シュ行に関係する状況に合わせて修正する。すなわち、
プロセッサi(10)からのデータ取出しが、記憶制御
エレメント24によって遠隔プロセッサj(12)で独
占状態であることが判明した行Lに対してキャッシュ・
ミスになったとき、記憶制御エレメント24はプロセッ
サj(12)の遠隔バッフ1制御エレメントj(18)
に、キャッシュ行Lに対するその独占状況を解除するよ
う通知する。プロセッサj(12)のバッファ制御エレ
メントj (18)は、その信号を受け取ると、その行
がCH1。。状態にあるかどうか(すなわち、関連する
LCHビットがオンかどうか)検査する。そうである場
合、その行が独占(EX)かつ変更(CH)状態をとる
プロセッサiに(キャッシュ間転送バス22を介して)
送られる。そうでない場合は、読取り専用(RO)状態
をとるプロセッサi(10)が、その行Lを受け取る。
これは、行Lがキャッシェj (20)でCH状況を有
する場合、主記憶装置26への廃棄を伴う。
第5図は、LCHピットに関係する動作に関する、第3
図の論理ステップを示す。したがって、第3図の流れ図
は、行が遠隔キャッシュでもCH1oc状態にある場合
は、EX取出し時に遠隔CH行に対してデータ取出しミ
スとなり、そうでない場合はRO共用状態をもたらすよ
うに修正される。
そのため、行がもはや変更される傾向がないとき、若干
の余分のメモリ廃棄と引き換えに、行共用の並行性が増
加する。
第3図及び第5図を参照する。第3図のステップ202
で、記憶制御エレメント24が、キャッシュ・ミスがあ
った後、アクセスまたは要求された行が遠隔で独占状態
であると判定した場合、第3図のステップ203に進ま
ず、第5図のステップ204のように修正された動作が
続行される。
このステップで、遠隔バッファ制御エレメント(16)
は、その行がCHの杖況をとっているかどうか判定する
。CHの状況をとらない場合、遠隔パッファ制御エレメ
ント16がその行を要求側キャッシュにコピーし、主記
憶装置への廃棄を行ない、行を両方のキャッシュ・メモ
リ中で読取り専用状況にセットする。しかし、遠隔バツ
ファ制御エレメン}(1B)が、行が変更されていると
判定した場合には、次に、ステップ205で、LCHビ
ットがオンになっているかどうかを判定する。LCHビ
ットがオンになっていない場合、遠隔バッファ制御エレ
メントは、行を要求側キャッシュにコピーし、主記憶装
置26への廃棄を行ない、行を両方のキャッシュ中で読
取り専用にセットする。しかし、バッファ制御エレメン
トが、LCHビットがオンであると判定した場合には、
行をEX/CH状態で要求側キャッシュに移動させ、そ
れ自体のコピーを無効にする。次いで、要求側キャッシ
ュがLCHビットをオフにする。
上記の設計修正では、CH状態が2つの副状態CHlo
c及びCH,8一区分されていると考えることができる
。ただし、CH  は別のキャッシュre諷 から運ばれた変更のために行が汚染されていることを意
味し、CHIocはキャッシュ行が局所プロセッサから
の最近の記憶のために行が汚染されていることを意味す
る。
CHIoc状態は、主として多重プロセッサ・キャッシ
ュ管理の支援に使われ、適切に実現されているならば、
アーキテクチャの正しさにとって重要ではない。したが
って、LCHビットに関する一時エラーを訂正するため
にFCCを設ける必要はない。実施態様によっては、L
CHビットをキャッシュ・アクセス(たとえば記憶)の
ためのクリティカル・パスに設ける必要もない。実施態
様によっては、単にCHloc状態を近似して、、設計
の複雑さを減少させることも可能である。
この局所変更のコンセプトは、様々な多重プロセッサ・
キャッシュ設計に適用できる。たとえば、独占状態をと
るストアスルー型多重プロセッサ・キャッシュ設計で使
用できる。ストアイン設計の場合のように、CHピット
を使用する必要はない。
ただし、CH1oc履歴は、依然として、データ取出し
キャッシュ・ミスでEX状態が獲得されるかどうか決定
するために使用できる。
F.発明の効果 本発明によれば、プロセッサごとに局所キヤ,シュを持
つマルチプロセッサ・システムにおいて、キャッシュ行
がどのくらい最近に変更されたかに関する情報を獲得し
、最近変更されたものでないならば当該キャッシュ行を
読取り専用にしてすべてのプロセッサにとって使用可能
にするので、システムのパフォーマンスが向上する。
【図面の簡単な説明】
第1図は、本発明を使用する多重プロセッサ・システム
の構成図である。 第2図ないし第4図は、従来技術のキャッシュ動作を記
述する流れ図である。 第5図は、本発明の動作を示す流れ図である。 10、12・・・・プロセッサ、14、1B・・・・バ
ッファ制御エレメント、18、20・・・・キャッシュ
、24・・・・記憶制御エレメント、26・・・・主記
憶装置。

Claims (1)

  1. 【特許請求の範囲】 複数のプロセッサと主記憶装置を具備し、各プロセッサ
    は自身に関連づけられた局所キャッシュを具備している
    マルチプロセッサ・システムにおいて、キャッシュ行の
    取出を制御するための方法であって、 キャッシュ行に対する要求が当該キャッシュにとっての
    遠隔プロセッサによって行われた際に、当該キャッシュ
    行が当該キャッシュにとっての局所プロセッサによって
    変更されたか否かを判断し、判断結果が肯定的であるな
    らば、当該キャッシュ行に独占状態を割り当て、判断結
    果が否定的であるならば、当該キャッシュ行に読取り専
    用状態を割り当てる ことを特徴とする方法。
JP1149778A 1988-08-16 1989-06-14 キャッシュ制御装置 Expired - Lifetime JPH0740248B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US23272288A 1988-08-16 1988-08-16
US232722 1988-08-16

Publications (2)

Publication Number Publication Date
JPH02236749A true JPH02236749A (ja) 1990-09-19
JPH0740248B2 JPH0740248B2 (ja) 1995-05-01

Family

ID=22874276

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1149778A Expired - Lifetime JPH0740248B2 (ja) 1988-08-16 1989-06-14 キャッシュ制御装置

Country Status (3)

Country Link
EP (1) EP0355320B1 (ja)
JP (1) JPH0740248B2 (ja)
DE (1) DE68927728T2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0944401A (ja) * 1995-07-27 1997-02-14 Nec Ibaraki Ltd キャッシュ制御装置
JP2015228060A (ja) * 2014-05-30 2015-12-17 富士通株式会社 演算処理装置及び演算処理装置の制御方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS57167189A (en) * 1981-03-31 1982-10-14 Ibm Multiplex processing system with shared cash memory
JPH01237835A (ja) * 1988-01-20 1989-09-22 Advanced Micro Devicds Inc 集積キャッシュユニットおよびその内部でキャッシュ機能を実現するための方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4394731A (en) * 1980-11-10 1983-07-19 International Business Machines Corporation Cache storage line shareability control for a multiprocessor system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS57167189A (en) * 1981-03-31 1982-10-14 Ibm Multiplex processing system with shared cash memory
JPH01237835A (ja) * 1988-01-20 1989-09-22 Advanced Micro Devicds Inc 集積キャッシュユニットおよびその内部でキャッシュ機能を実現するための方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0944401A (ja) * 1995-07-27 1997-02-14 Nec Ibaraki Ltd キャッシュ制御装置
JP2015228060A (ja) * 2014-05-30 2015-12-17 富士通株式会社 演算処理装置及び演算処理装置の制御方法

Also Published As

Publication number Publication date
EP0355320A3 (en) 1991-07-10
DE68927728D1 (de) 1997-03-13
EP0355320A2 (en) 1990-02-28
JPH0740248B2 (ja) 1995-05-01
EP0355320B1 (en) 1997-01-29
DE68927728T2 (de) 1997-07-17

Similar Documents

Publication Publication Date Title
US5317716A (en) Multiple caches using state information indicating if cache line was previously modified and type of access rights granted to assign access rights to cache line
EP0397994B1 (en) Multiprocessor cache memory system
US8996812B2 (en) Write-back coherency data cache for resolving read/write conflicts
US6085294A (en) Distributed data dependency stall mechanism
US6704841B2 (en) Method and apparatus for facilitating speculative stores in a multiprocessor system
US8924653B2 (en) Transactional cache memory system
JP4050226B2 (ja) マルチプロセッサシステムにおける推測的な格納を容易にするl2ディレクトリの利用
US5230070A (en) Access authorization table for multi-processor caches
US9244846B2 (en) Ensuring causality of transactional storage accesses interacting with non-transactional storage accesses
US9501411B2 (en) Cache backing store for transactional memory
US6718839B2 (en) Method and apparatus for facilitating speculative loads in a multiprocessor system
JP5445581B2 (ja) コンピュータシステム、制御方法、記録媒体及び制御プログラム
US20080244189A1 (en) Method, Apparatus, System and Program Product Supporting Directory-Assisted Speculative Snoop Probe With Concurrent Memory Access
US7260677B1 (en) Programmable system and method for accessing a shared memory
US6061765A (en) Independent victim data buffer and probe buffer release control utilzing control flag
US6202126B1 (en) Victimization of clean data blocks
JPH04230549A (ja) 多重レベル・キャッシュ
US7353341B2 (en) System and method for canceling write back operation during simultaneous snoop push or snoop kill operation in write back caches
US6934810B1 (en) Delayed leaky write system and method for a cache memory
JPH02236749A (ja) キャッシュ制御装置
US20080244190A1 (en) Method, Apparatus, System and Program Product Supporting Efficient Eviction of an Entry From a Central Coherence Directory