JPH03217963A - マルチプロセッサ・システムおよびそのプライベート・キャッシュ制御方法 - Google Patents

マルチプロセッサ・システムおよびそのプライベート・キャッシュ制御方法

Info

Publication number
JPH03217963A
JPH03217963A JP2004668A JP466890A JPH03217963A JP H03217963 A JPH03217963 A JP H03217963A JP 2004668 A JP2004668 A JP 2004668A JP 466890 A JP466890 A JP 466890A JP H03217963 A JPH03217963 A JP H03217963A
Authority
JP
Japan
Prior art keywords
data
private
shared
cache
working set
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
JP2004668A
Other languages
English (en)
Other versions
JPH061463B2 (ja
Inventor
Shigenori Shimizu
清水 茂則
Morimiki Obara
盛幹 小原
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
Priority to JP2004668A priority Critical patent/JPH061463B2/ja
Priority to DE69130580T priority patent/DE69130580T2/de
Priority to EP91300077A priority patent/EP0438211B1/en
Priority to US07/639,440 priority patent/US5228136A/en
Publication of JPH03217963A publication Critical patent/JPH03217963A/ja
Publication of JPH061463B2 publication Critical patent/JPH061463B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 以下の順でこの発明を説明する。
A.産業上の利用分野 B.従来の技術 C.産業上の利用分野 D.問題点を解決するための手段 E.実施例 El.実施例の構成(第1図〜第4図)E2.実施例の
動乍(第1図〜第4図)E3、実施例の効果(第5図〜
第7図)E4.実施例の変形 F.発明の効果 A.産業上の利用分野 この発明は複数のプロセッサがプライベート・キャッシ
ュを介して共有バスおよび共有メモリに接続されている
マルチプロセッサ・システムに関し、とくに各プライベ
ート・キャッシュがわに制御装置を設け共有バス上の信
号を監視することにまってプライベート・キャッシュに
おけるデータの操作、たとえばプライベート・キャッシ
ュ間のデータの一貫性を維持する操作を行う、いわゆる
スヌープ・キヤ・νシュを有するマルチプロセッサ・シ
ステムおまびそのプライベート・キャッシュ制御方法に
関する。
B.従来の技術 複数台のプロセッサがそれぞれプライベート・キャッシ
ュを持ち、共有パスによって相互接続される密結合マル
チプロセッサ・システムが提案され、実用化されつつあ
る。
複数のプロセ・νサは、同じく共有バスに接続される共
有メモリをリード・ライトする。もし、プライベート・
キャッシュが無い場合を考えると、各プロセッサの発生
する共有メモリへのリード・ライトはすべて共有バスを
介して行なわれる。そのため共有バスの使用率が高くな
り、プロセッサの台数を増やしてもシステムの性能はあ
る限界以上に向上しない。
そこで各プロセッサにプライベート・キャッシュを搭載
することによって、共有メモリ内データの一部のコピー
をキャッシュ・メモリに持ち、データのリード・ライト
をキャッシュ内で処理して、共有バスと共有メモリをで
きるだけ使わずに済ませる方式がある(マルチキャッシ
ュ・システム)。ところで、この方式では、各プロセ・
νサがそれぞれのキャッシュ内で、同じアドレスのデー
タを勝手に書き替えてしまうと、同一時刻に同一アドレ
スのデータが異なる値をとる可能性が生じる。そして同
一時刻、同一アドレスのデータ間で値がことならないよ
うにする工夫が必要であった。ここで、どのプロセッサ
から見ても同じアドレスには同じ値が入っているように
見えることをデータの一致牲(コンシステンシ)と呼ぶ
コンシステンシを保証するひとつの方法としてスヌープ
・キャッシュ方式がある。スヌープ・キャッシュ方式は
、各プロセッサのキャッシュ制御装置が共有バスを常時
監視することによって、キャッシュ間のコンシステンシ
を保つものである。即ち、あるプロセッサが自分のキャ
ッシュ内にあるデータを更新するとき、他のプロセッサ
のキャッシュにもそのコピーがあると、とのアドレスの
データをどう書き替えたかという情報を共有バス上に流
す。他のプロセッサのキャッシュ制御装置はそれを見て
、自分のキャッシュ内にあるデータを更新(アツプデー
ト)するか、もしくは無効化(インバリデート)するこ
とによってコンシステンシを保つ。
従来のスヌープ・キャッシュ方式では、共有データに対
する書き込みが起こったとき、他のキャッシュに存在す
るコピーを更新するか無効化するか、どちらか一方の方
式をとっていた。以後、更新する方式をアツプデート方
式、無効化する方式をインバリデート方式と呼ぶことに
する。
例えば、米国ゼロックス社のDragonや米国デジタ
ル・イクイップメント・コーポレーション社のFire
Flyはアップデート方式、カリフォルニア大学のSP
URはインバリデート方式を用いている。日本アイ・ビ
ー・エム社の東京基礎研究所で開発されたTOP−1 
<開発雛形)は、アップテート方式とインバリデート方
式とをプログラムで選択的に切り換えることができるは
うに設計されている。
ところで、この2方式は、複数のキャッシュ間のコンシ
ステンシを保つという意味では等価で、キャッシュ内の
データを更新(アップデート)しても無効化(インバリ
デート)してもコンシステンシ上はかまわないが、性能
という観点からは一長一短がある。
まずアツプデート方式は、複数のプロセッサが、非常に
密に共有するデータを扱うのに適している。つまり、密
に共有するデータに対してインパリデート方式を用いる
と、1台のプロセッサがその領域をライトするたびに他
のキャッシュ内のコピーを無効化してしまい、他のキャ
ッシュがその領域をリード・ライトするときに必ずキャ
ッシュ・ミスになって共有バスにアクセスが必要となる
。その点ア・νプデート方式では、コピーを持つキャッ
シュすべてが同時に更新されるので、共有バスを使うこ
となく当該データを読むことができる。例えば、一般的
にア・ンプデート方式は、生産者一消費者モデルの並列
プログラムに用いられるバッファや、プロセッサ間の同
期に使われるセマフォアなどに適している。
他方、インバリデート方式は、ある1台のプロセッサで
排他的に使用されるデータや共有アクセスがあまり発生
しない共有データに応用するのが望ましい。本来、ある
1台のプロセッサにおいて専有されていたデータである
にもかかわらず、ページングやプロセス・マイグレーシ
ョンによって見かけ上共有データになってしまった場合
には、不要な共有データがシステム中に残ることになり
、性能低下の原因となる。このような環境ではインバリ
デート方式が有効に働く。
ゆえに、どちらの方式をとるのが望ましいかは一概に決
まらず、実行されるプログラムの性質や個々のプロセッ
サの動作状況に依存する。いろいろなデータアクセスの
状況において、いつも良い性能を提供するプロトコルは
実現因難であった。
前述のDragon,FireFly,SPURはどち
らか一方の方式のみ実現されている。したがって場合に
よっては好ましい性能を提供できない。また、TOP−
1では上記の2方式を選択的に切り換えることができる
ようにっているが、ソフトウエアで2方式を制御してい
る。したがってとのまうに切替るかの問題が残っており
、その態様によっては十分な性能を引きだせない場合も
考えられる。
C.発明が解決しようとする問題点 この発明は以上の事情を考慮してなされたものであり、
インバリデート方式とアツプデート方式の2つのプロト
コルを動的に最適に切り換える制御機構を提供すること
を目的としている。これにより、共有バスのトラフィッ
クを減少させ、システムの性能を向上させることが出来
る。
さらに、同じ機構を応用して、新たなキャッシュ゜プロ
トコルを導入して、共有バスのトラフィックをさらに減
少させるキャッシュの制御を行うことも目的としている
D.問題点を解決するための手段 通常、プロセッサは短い時間では限られた領域のメモリ
をくりかえしアクセスしている。この領域をワーキング
・セットという。この発明では、共有データに書きこみ
が発生したとき、そのデータがワーキング・セットに含
まれているかどうか検出し、含まれていればア・ンプデ
ート方式、含まれていなければインバリデート方式でキ
ャッシュのコンシステンシを制御する。ワーキング・セ
ット内のデータは、プロセッサにより使われる確率が高
い。そこで、ワーキング・セット内のデータをアップデ
ートすることにより、そのプロセッサはバスを使用する
ことなく、最新のデータにアクセスできる。逆に、ワー
キング・セット外のデータは、プロセッサにより使われ
る確率が低い。ところが、このデータはキャッシュの中
に存在する以上、他のプロセッサが書きこみを行うたび
にバスを使ってアップデートされなければならない。
以上の点を考慮して、ワーキング・セット外のデータを
インバリデートすることにより、不必要なアップデート
のためのバス・トラフィックを少なくする。
さらに、上記のワーキング・セットの検出機構を利用し
て、オール・リード(ALL READ)という新たな
キャッシュ・プロトコルを導入し、システムの性能を向
上させる。スヌープ・キャッシュを用いたマルチプロセ
ッサ・システムでは、同一番地のデータやコードをいく
つかのプロセッサで共有することが頻繁にある。この場
合、通常のスヌープ・キャッシュ・プロトコルでは、そ
れぞれのプロセッサがパスを使用して、同一番地のデー
タやコードを繰返し各自のキャッシュ中にロードするこ
とになる。あるプロセ・yサがある番地のデータあるい
はコードに対してリード・ミスを起こして,バスを使用
してキャッシュ中にロードする時、そのデータあるいは
コードを使用するであろう他のキャッも自動的に自キャ
ッシュ中に取り込むことができれば、システム性能が大
幅に向上するが、従来方式では、そのデータあるいはコ
ードの使用性を、他のキャッシュが先見的に予測するこ
とができないため、リード・データのブロードキャスト
を効率よく実現することは不可能である。この発明では
、上述のワーキング・セット検出機構を使って、ワーキ
ング・セット内のデータのみオール・リードを適用する
。これにより、効率良くオール・リードを実現し、バス
のトラフイツクを減少させシステムの性能を向上させる
E.実施例 El.実施例の構成 以下この発明の実施例を説明する。第1図はマルチプロ
セッサ・システムの全体図である。この図において、複
数のプロセッサP1、P2、・・P,,がキャッシュC
1、C2、・・、Cnを経由して共有バス1および共有
メモリ2に接続されている。これらのキャッシュC1、
C2、・・、Cイは、プロセッサP1、P2、・・、P
1の平均メモリ・アクセススピードをはやめるだけだけ
でなく、共有バス1の信号をモニタ(以後これをスヌー
プと呼ぶ)することにより、キャッシュC1、C2、・
・、C1相互間のコンシステンシを保つ機能を持ってい
る。
各キャッシュCは第2図のまうに構成される。
キャッシュ基本制御部3は、キャッシュCがプロセッサ
Pからアクセスされたとき、およびパス1のスヌープを
行うときのキャッシュC全体の基本的な制御を行う。デ
ータ・メモリ4は、主記憶(共有メモリ2)の一部のコ
ピーを記憶する高速なメモリである。プロセッサPはほ
とんどの場合、主記憶にアクセスすることなく、このデ
ータ・メモリ4から必要なデータの読み書きができる(
データのアクセスはたとえば4バイト単位で行なわれる
)。このため、プロセッサPの平均メモリ・アクセスが
速くなる。モード切換制御部5が、この発明に一り新た
に考案された部分である。このモード切換制御部5は、
プロセッサPのメモリ・アクセスとバス1上のメモリ・
アクセスをモニタすることにより、キャッシュ基本制御
部3がキャッシュC間のコンシステンシを効率よくを保
てるまうに、キャッシュCのモードを切換る。
第3図にキャッシュ基本制御部3の内部を示す。この制
御部3には、プロセッサPとバス1の両方からそれぞれ
、アクセス制御信号とアドレス信号が入力される。キャ
ッシュ基本制御部3にはタグ・メモリ6があり、このキ
ャッシュCがコピーを持っている主記憶のアドレスが保
持されている。この制御部5は、プロセッサPからアク
セスされたときや、バス1のスヌープを行うときに、そ
のアドレスのデータがキャッシュCにa己憶されている
かどうか調べ、キャッシュCの適当な制御を行う。
第4図にモード切換制御部5の内部を示す。この制御部
壮、n個のワーキング・セット・メモリ(以下WSM,
、WSM.、・・、WSM.,または総じてWSMと呼
ぶ)とn入力のOR回路7からなる。WSMはカウンタ
8、アドレス・タグ9、バリッド・フラグ10、2つの
コンバレータ11、12と、WSMの制御を行う制御回
路13から構成される。各WSMには、ワーキング・セ
ットに含まれる1つの記憶ブロック(たとえば4Kバイ
ト単位)が登録されている。モード切換制御部5は、プ
ロセッサPやバス1上のアクセスのアドレスがワーキン
グ・セットの記憶ブロックに含まれるかどうか調べる。
ワーキング・セット中のn個の記憶ブロックのいずれか
に含まれていれば、OR回路7の出力が1になり、前述
のキャッシュ基本制御部3のモードをアップデートにし
、そうでなければOR回路7の出力が0になり、キャッ
シュ基本制御部3のモードをインバリデートにする。
プロセッサPは短い時間で見ると、非常にかぎられたメ
モリ空間(限られた数の記憶ブロック)を頻繁にアクセ
スしている。この空間をワーキング・セットという。W
SMは、このワーキング・セットを検出して、それに属
する記憶ブロックを登録する。プロセッサPやバス1上
のメモリ・アクセスに対して、そのアドレスが登録した
ワーキング・セットにあるかどうか調べる。また、ワー
キング・セットは長い時間では変化しているので、使わ
れなくなった記憶ブロックはWSMから削除される。以
下、第4図を使ってモード切換制御部5の動作について
説明する。
第4図のアドレス・タグ9は、ワーキング・セットに登
録されている記憶ブロックのアドレスを保持している。
ここでは、プロセッサPのアドレス空間を2のM乗バイ
ト、ワーキング・セットの記憶ブロックの管理区画の大
きさを2のW乗バイトとすると、アドレス・タグは、ア
ドレスの上位<M−w)ビットを記憶している。バリッ
ド・フラグ10は、WSMがワーキング・セットとして
有効な記憶ブロックのアドレスを記憶しているかどうか
を示す。プロセッサPかバス1でメモリ・アクセス要求
を行うと、各WSMはそのアドレスの上位<M−w)ビ
ットとアドレス・タグ9の内容とをコンバレータ11で
比較する。上位アドレスが一致して、かつパリッド・フ
ラグ10のビットが1であれば、そのアクセスはワーキ
ング・セット内へのものであり、OR回路7の出力が1
になる。
ワーキング・セットに属する記憶ブロックの登録は以下
のようにして行なわれる。プロセッサPからのメモリ・
アクセス要求があり、それがワーキング・セットのいず
れの記憶ブロックにも含まれない場合、そのアドレスは
新たなワーキング・セットの記憶ブロックのアドレスと
して登録される。これには、n個のWSMの内、バリッ
ド・フラグ10のビットが0であるWSMの一つについ
て、アドレス・タグ9にアドレスの上位<M−W)ビッ
トを書きこみ、バリッド・フラグ10を1にするだけで
良い。もしこの時、すべてのWSMのパリッド・フラグ
10のビットが1のときは、新たなワーキング・セット
は登録されない。
つぎに、ワーキング・セットからの記憶ブロックの削除
について述べる。ワ“−キング・セットは、一度登録さ
れても、それがプロセッサPによって使われなくなれば
、WSMから削除される。
これにはWSMのカウンタ8が使われる。このカウンタ
8は、プロセッサPからのメモリ・アクセス要求がある
とインクリメントされる。さらに、プロセッサPからの
メモリ・アクセス要求がそのWSMのワーキング・セッ
トの記憶ブロック内であれば、カウンタ8はクリアされ
る。すなわち、このカウンタ8はプロセッサPがワーキ
ング・セット中の対応する記憶ブロックに最後にアクセ
スレてから、何回その記憶ブロック以外の記憶領域にア
クセス捨ているかを示している。このカウンタ8がオー
バーフローしたとき、もはやそのワーキング・セット中
の記憶ブロックはプロセッサPに使われなくなっとと見
なされ、パリツド・フラグ10のビット1をクリアして
、その記憶ブロックをワーキソグ・セットからを削除す
る。
この実施例では、以上のようにして、ワーキング・セッ
トをWSM上に記憶する。以下では、モード切換制御部
5の出力(第4図のOR回路の出力)によってプロトコ
ルの動的な最適化とリード・ブロードキャストの制御を
行う方法を述べる。
《2)プロトコルの動的な最適化制御 第1図の各キャッシュCは、パス1をスヌープしている
。キャッシュ基本制御部3(第2図)は、自分がコピー
を持つデータへの書込みをバス1上に発見すると、その
コピーをインバリデートするか、アップデートすること
によって、キャッシュC相互間のフンシステンシを保つ
。自分がコビーを持つデータへの書込みがある場合、こ
の実施例では、モード切換制御部5にまり、そのデータ
がワーキング・セットに含まれているかどうかわかる。
もしそのデータが自分のワーキング・セットに入ってい
れば、キャッシュ基本制御部3はアップデート方弐で処
理を行う。また、ワーキング・セ・νトに入っていなけ
れば、インバリデート方式で処理を行う。ワーキング・
セット内のデータは頻繁に使われるので、アップデート
方式の方が効率がまく、ワーキング・セット外のデータ
は頻繁にアクセスされないので、インバリデート方式の
方が効率がよい。このように、共有データへの書込みが
ワーキング・セット中へかどうかによってプロトコルを
切り換え、効率良くキャッシュC間のコンシステンシを
保持する。
(3)オール・リードの制御 通常のキャッシュを使ったバス結合マルチプロセ・ンサ
・システムでは、キャッシュ・ミスが発生すると、各プ
ロセッサPは個別にバス1を使用してメモリ2からデー
タをキャッシュCに読みこむ。このため、各プロセッサ
Pが大量の同じデータを共有して処理を進める場合には
、異なるプロセッサPがそれぞれバス1を使用して同じ
データを読むことになる。この場合、一つのプロセッサ
Pがデータを読んだとき他のプロセ・νサPのキャッシ
ュCにもデータを転送できれば、パス1の使用率を大幅
に下げシステムの性能を向上させることができる。この
方式を、オール・リードと呼ぶことにする。
この方式は、但し、他のプロセッサPのキャッシュC内
にすでにストアされたデータを追い出して、新しいデー
タをストアするので、以下の点で注意が必要である。
i) ブロードキャストを行うプロセッサの選択一つの
バス1で結合されたプロセッサPはすべてが、同じ共有
データで処理を行うとは限らないので、共有データの転
送が必要なプロセッサPのみにブロードキャストを行う
必要がある。
ij)プロセッサP間の同期 同じ共有データを処理しているプロセッサP問でも、プ
ログラム上でいつも同期がとられているとは限らないの
で、一つのプロセッサPがオール・リードを実行したと
きに、他のプロセ・ンサPがそのデータを必要としてい
るかどうか一般には明らかでない。このため、共有デー
タの転送を必要とするプロセッサPを動的に選択してブ
ロードキャストを行う必要がある。
以上のような注意を払わないと、このオール・リードは
キャッシュC中の本来必要なデータを追い出して、シス
テムの性能をかえって低下させる可能性もある。
この実施例では、ワーキング・セットの検出機能を使っ
て、このオール・リードを効率よく実現する。あるプロ
セッサPがオール・リードを実行すると、オール・リー
ド要求がバス1に出力される。このとき、他のプロセッ
サPのモード切換制御部5はそのアドレスがワーキング
・セ・νトの記憶ブロックに含まれているかどうか調べ
る。もしそのアドレスが自分のワーキング・セットの記
憶ブロックに入っていれば、キャッシュ基本制御部3は
そのデータをデータ・メモリ4に取り込む。
決だ、ワーキング・セットに入っていなければ取り込ま
ない。この方式にまり、ブロードキャストされた共有デ
ータを使用しないプロセッサPは、データを取り込まな
いので、i)で述べたような問題が解決される。またi
i)に関しても、ブロードキャストが実行されたとき、
そのデータを使用していないプロセ・νサPはデータを
取り込まない。これに対して、複数のプロセッサPが同
じ共有データの大きなブロックを必要としているときに
は、つぎのまうにしてオール・リードが実現される。
1)最初の共有データへのアクセスは、それぞれのプロ
セッサPがバス1を使用してデータを読みこむく通常の
アクセス)。このときそのデータを含むワーキング・ブ
ロックが各プロセ・νサのワーキング・セットに登録さ
れる。
2)つぎに、いずれかのプロセッサPが同じ共有データ
・ブロックの次のデータをオール・リードで読みこむ。
このデータは、1)で登録されたワーキング・セット内
にあるので、他のプロセッサPはそのデータを取り込む
このようにして、最初のリードは通常のアクセスで行な
われるが、それ以降の同じワーキング・ブロックへのリ
ードについては、オール・リードを効率よく使って、バ
スのトラフィックを減し、システムの性能を向上させる
ことができる。
E3.実施例の効果 この実施例によれば、プロトコルの動的な最適化制御や
オール・リードの制御により、マルチプロセッサにおけ
るバスのトラッフィックを減らし、システムの効率を向
上させることができる。
以下では、マルチプロセッセで見られる典型的な事例を
使って、実施例の効果を具体的に示す。
スピン・ロックは、マルチプロセッサでクリティカル・
セクションの排他制御のために用いられる典型的な手法
である。第5図に、スピン・ロックの慨念図を示す。こ
の場合、各プロセッサPはクリティカル・セクションに
入るときに、ある共有変数の値を1にセットし、出ると
きに0にリセットする。各プロセッサPは、クリティ力
ル・セクションに入る前にその共有変数の値を調へ、1
であれば0になるまで待つ。第5図のプロダラムを説明
すると、 (1)共有変数Xを読む (2)読みこんだXを1と比較する (3)比較した結果、Xが1であれば、loopにジャ
ンプする (4)(3)でXがOであれば、Xをもう一度1かどう
か調べ、1にセットする。(4)の命令は、比較とセッ
トを不可分に実行する。
(5)<4)で、Xが0でなければ、1 oopにジャ
ンプする (6)クリティカル・セクションの本体を実行する (7)最後に、XをOにリセットする 今、10台のプロセッサP(第1図でnを10とする)
を結合したマルチプロセッサについて、1台のプロセッ
サP1がクリティカル・セクションを実行中で、その他
の9台のプロセッサP2〜P,。クリティカル・セクシ
ョンに入るために、Xが0になるのを待っているとする
。ここで、共有変数XについてのキャッシュCの動作を
考える。
プロセッサP1が(7)でXに書きこむ。このとき、他
のキヤ・νシュCはXのコピーを持っているので、キャ
ッシュ制御回路はキャッシュCのコンシステンシを保つ
ように動咋する。インパリデーション方式では、プロセ
ッサP2〜P1。のXのコピーはインバリデートされる
。このとき、これらのプロセッサPは{1)〜(3)の
プログラムを実行しているので、(1)でキャッシュの
リード・ミスが発生し、バスを使ってXのコピーが読み
こまれる。このため、プロセッサP1の(7)での書き
こみと、プロセッサP2〜P1。の(1)でのリード・
ミスにまり、合計10回のバス・トラフイックが発生す
る。これに対して、アツプデート方式では、、プロセッ
サP,が《7)で書きこみを行ったとき、プロセッサP
2〜P1。
のXのコピーはアップデートされる。このため、プロセ
ッサP2〜p toは、(1)でリード・ミスを発生し
ない。よって、合計のパス・トラフィックはプロセッサ
P1の(7)での書きこみ1回のみである。
実施例によると、プロセッサP2〜P1。が(1)〜(
3)のループを実行している間は、XはプロセッサP2
〜P10のワーキング・セットに含まれている。そこで
、プロセッサP1が(7)でXに書きこんだとき、プロ
セッサP2〜P1。のモード切換制御部5は、キャッシ
ュ基本制御部3に対して、アップデート方式でキャッシ
ュC間のコンシステンシを保つように指示する。このた
め、上で述べたように、全体のバス・トラフィックが減
り、システムの効率が向上する。
b.プロセス・マイグレーション 前述の例は、アップデート方式がインバリデート方式よ
りすぐれている場合であるが、その逆の例もある。汎用
のマルチプロセッサでは、プログラムはマルチプロセス
環境で実行される。通常、プロセスの個数よりプロセ・
νサPの個数の方が少ないので、マルチプロセッサの制
御プログラムは、プロセッサPに割当てるプロセスを一
定の条件の下に切り換ている。これをプロセスに注目し
て考えると、プロセスはあるプロセッサPに割当てられ
た後、制御プログラムによって実行を中断され、誌だあ
る時に再度プロセッサPに割当てられ実行を再開する。
このとき、一般的には、プロセスは以前に割当てられて
いたプロセッサPと異なるプロセッサPに割当てられる
ことがある。このようにして、プロセスがプロセス切り
換えによって、プロセッサP間を移っていくことをプロ
セス・マイグレーションと呼ぶ。
アップデート方式では、共有データへの書き込みはバス
1に出力され、他のプロセッサPのキャッシュCのコピ
ーを更新する。そこで、共有データが大変多くなると、
バス1の使用率が高くなってしまう。プロセス・マイグ
レーションがおこるとプロセスは異なるプロセッサPで
実行されるが、以前にそのプロセスが実行されていたプ
ロセッサPのキャッシュCは、そのプロセスの使ってい
たデータのコピーを持ったままである。このため、その
プロセスの使うデータは現在のプロセッサPと以前のプ
ロセッサPのキャッシュ間で共有されてレ味う。このよ
うな共有データを疑似共有データと呼ぶことにする。プ
ロセス・マイグレーションがおこるとこのようにして共
有データが大変多くなり、アツプデート方式のプロトコ
ルではバス使用率が高くなるため、システムの性能に影
響を与える。
一方、インバリデート方式のキャッシュCでは、プロセ
ス・マイグレーションによるシステムの性能の低下は非
常に少ない。それというのは、疑似共有データに一度書
き込みが発生すると、プロセスが以前に実行されていた
プロセッサPのキャッシュCにある疑似共有データは、
無効化されてしまい、非共有データとなるからである。
よって、各疑似共有データについては、最初の一回の書
き込みはバスに出力されるが、以降はバス1を使用しな
いですむ。
この実施例にはれば、ワーキング・セット内のデータは
アツプデート方式、それ以外はインバリデート方式で、
キャッシュCのコンシステンシを制御する。さらに、プ
ロセス・マイグレーションがおこると、プロセスのワー
キング・セットは、以前にそのプロセスを実行していた
プロセッサPのキャッシュCのワーキング・セット・メ
モリから削除される。このため、疑似共有データはイン
バリデート方式で処理される。
以上のように、キャッシュのコンシステンシを制御する
プロトコルは、インバリデート方式がよい場合と、ア・
νプデート方式がよい場合がある。
この実施例によると、これらのプロトコルを効率のよい
方に自動的に切り換えることができるため、システムの
性能を向上させることができる。
2)オール・リードにまる効果 ここでは、2次元行列の掛算の場合について、オール・
リードが有効であることを示す。ここでは、第6図に示
したように、120xl20の行列2つをそれぞれ9個
の部分行列に分割し、掛算を行う。9台のプロセッサP
,〜P9は第7図に示したように、部分行列の掛算を行
う。また、行列の1つの要素は32ビット(4バイト)
で、パス1の1回の転送で32ビットのデータが転送さ
れるとする。
i.通常のプロトコルを使った場合 第7図に示された通り、各プロセッサPは部分行列の掛
算を3回行うので、6個の部分行列を読みこむ。各部分
行列は1600個の要素を持ち、一回の転送で1個の要
素が転送されるので、各プロセッサPは9600 (=
1600x6)回ノハス転送を要求する。さらに、9台
のプロセッサPが独立にバス転送を行うので、システム
全体では、86400 (=9600x9)回のパス転
送が必要である。
ii.オール・リードを使った場合 第7図に止ると、各部分行列は3つのプロセッサPから
参照される。オール・リードを使うと、ワーキンング・
セット含まれるデータについては、1回の転送で複数の
キャッシュCに読みこむことができる。ここでは、各部
分行列の要素は連続したメモリ領域に配置されているも
のとする。
例えば、Allについて考えてみると、Allはプロセ
ッサP1、プロセッサP2、プロセッサP3の3プロセ
ッサPから参照される。Allの最初の要素については
、個別にバスを使ってデータを読みこむ。このとき、A
llの配置されているメモリ領域がこれらのプロセッサ
Pのワーキング・セットとして登録される。このため、
2番目以降のAllの要素は、これらのプロセッサPの
一つがバス1を使って読みこむと他の2つのプロセッサ
Pのキャッシュにも読みこまれる。このため、Allを
3つのプロセッサPが読み′こむために必要なバス転送
回数は、1602 (=3+1599)回となる。他の
8個の部分行列についても同様である。よって、行列の
掛算に必要なバス転送回数の合計は、14418 (=
1602x9)回となる。
このように、通常のプロトコルでは86400回必要で
あったバス転送を、オール・リードを使うことによって
14418回に減らすことができる。
E4.実施例の変形 以上実施例に即してこの発明を詳述したが、この発明は
実施例に限定されるものではなく種々の変形が可能であ
る。たとえばアクセス・データがワーキング・セットに
属するかどうかの判別に変えてLRUの手法を採用して
もよい。要するに局所性のあるデータについてはアップ
デート手法を採り、局所性のないデータについてはイン
バリデート手法を採ればよい。
F.発明の効果 以上説明したようにこの発明によれば、インバリデート
方式とアップデート方式の2つのプロトコルを動的に最
適に切り換える制御機構を提供することができる。これ
にまり、共有バスのトラフィックを減少させ、システム
の性能を向上させることができる。さらに、同し機構を
応用して、新たなキャッシュ・プロトコルを導入して、
共有バスのトラフィックをさらに減少させることができ
る。
【図面の簡単な説明】
第1図はこの発明の1実施例の全体構成を示すブロック
図、第2図は第1図例のプライベート・キャッシュの構
成を示すブロック図、第3図は第2図のキャッシュ基本
制御部の構成を示すブロック図、第4図は第2図のモー
ド切換制御部の構成を示すブロック図、第5図、第6図
および第7図は上述実施例の応用例を示す図である。 P・・・プロセッサ、C・・・プライベート・キャッシ
ュ、1・・・共有パス、2−・・共有メモリ、3・・・
キャッシュ基本制御部、4・・・データ・メモリ、5・
・・モード切換制御部、WSM・・・ワーキング・セッ
ト・メモリ。 PI P2 プロセッサより バスより Pn

Claims (8)

    【特許請求の範囲】
  1. (1)複数のプロセッサがそれぞれのプライベート・キ
    ャッシュを介して共有バスおよび共有メモリに接続され
    、かつ上記プライベート・キャッシュの各々に設けられ
    た制御装置が上記共有バス上の信号を監視して、当該プ
    ライベート・キャッシュを含む2以上のプライベート・
    キャッシュで共有される共有データについて上記2以上
    のプライベート・キャッシュのいずれかで更新書込みが
    あったときに共有データ間の不一致を解消するようにデ
    ータ一貫性維持手続きを実行するマルチプロセッサ・シ
    ステムにおいて、 上記プライベート・キャッシュのそれぞれに、当該プラ
    イベート・キャッシュのデータに対して上記一貫性維持
    手続きが必要なときにそのデータがワーキング・セット
    に属する記憶ブロックに含まれるかどうかを判別する判
    別手段と、 少なくとも2種類のデータ一貫性維持手続きを選択的に
    実現でき、上記判別手段の判別結果に応じた種類の一貫
    性維持手続きを実行する一貫性維持手続き実行手段とを
    設けることを特徴とするマルチプロセッサ・システム。
  2. (2)上記判別手段は、 上記ワーキング・セットに含まれる複数の記憶ブロック
    の識別子を記憶する記憶手段と、当該プライベート・キ
    ャッシュに対応するプロセッサまたは他のプロセッサに
    よりアクセスされるデータを含む記憶ブロックの識別子
    が上記記憶手段に記憶されている識別子かどうかを判別
    する手段とを有する特許請求の範囲第1項記載のマルチ
    プロセッサ・システム。
  3. (3)当該プライベート・キャッシュのワーキング・セ
    ットに属しない任意の記憶ブロックに含まれるデータが
    、当該プライベート・キャッシュに対応するプロセッサ
    によってアクセスされたときに、上記任意の記憶ブロッ
    クを上記ワーキング・セットに属させるようにし、さら
    に当該プライベート・キャッシュのワーキング・セット
    に属する任意の記憶ブロックの他の記憶ブロックに含ま
    れるデータが、当該プライベート・キャッシュに対応す
    るプロセッサによって所定回数アクセスされ、かつその
    間に上記任意の記憶ブロックに含まれるデータが上記プ
    ロセッサによってアクセスされないときに、上記任意の
    記憶ブロックを上記ワーキング・セットから外すように
    する特許請求の範囲第2項記載のマルチプロセッサ・シ
    ステム。
  4. (4)上記データ一貫性維持手続きは、1のプライベー
    ト・キャッシュで共有データに更新書込みがあったとき
    に当該プライベート・キャッシュの当該共有データの状
    態表示を占有に変え、かつ他のプライベート・キャッシ
    ュの当該共有データを無効にする無効型のデータ一貫性
    維持手続きと、1のプライベート・キャッシュで共有デ
    ータに更新書込みがあったときに他のプライベート・キ
    ャッシュに当該共有データがあればこれを変更するとと
    もに当該プライベート・キャッシュの当該共有データの
    状態表示を共有のままにし、他のプライベート・キャッ
    シュに共有データがなければ当該プライベート・キャッ
    シュの当該データの状態表示を占有に変える更新型のデ
    ータ一貫性維持手続きである特許請求の範囲第1項、第
    2項または第3項記載のマルチプロセッサ・システム。
  5. (5)上記データ一貫性維持手続きの対象データが上記
    ワーキング・セットに属する記憶ブロックに含まれるこ
    とを上記判別手段が判別したときに上記更新型のデータ
    一貫性維持手続きを実行し、上記データ一貫性維持手続
    きの対象データが上記ワーキング・セットに属する記憶
    ブロックに含まれないことを上記判別手段が判別したと
    きに上記無効型のデータ一貫性維持手続きを実行する特
    許請求の範囲第4項記載のマルチプロセッサ・システム
  6. (6)複数のプロセッサがそれぞれのプライベート・キ
    ャッシュを介して共有バスおよび共有メモリに接続され
    、かつ上記プライベート・キャッシュの各々に設けられ
    た制御装置が上記共有バス上の信号を監視して、当該プ
    ライベート・キャッシュを含む2以上のプライベート・
    キャッシュで共有される共有データについて上記2以上
    のプライベート・キャッシュのいずれかで更新書込みが
    あったときに共有データ間の不一致を解消するようにデ
    ータ一貫性維持手続きを実行するマルチプロセッサ・シ
    ステムにおいて、 上記プライベート・キャッシュのそれぞれに、当該プラ
    イベート・キャッシュのデータに対して上記一貫性維持
    手続きが必要なときにそのデータがアクセス局所性を有
    する記憶ブロックに含まれるかどうかを判別する判別手
    段と、 少なくとも2種類のデータ一貫性維持手続きを選択的に
    実現でき、上記判別手段の判別結果に応じた種類の一貫
    性維持手続きを実行する一貫性維持手続き実行手段とを
    設けることを特徴とするマルチプロセッサ・システム。
  7. (7)複数のプロセッサがそれぞれのプライベート・キ
    ャッシュを介して共有バスおよび共有メモリに接続され
    、かつ上記プライベート・キャッシュの各々に設けられ
    た制御装置が上記共有バス上の信号を監視して、当該プ
    ライベート・キャッシュを含む2以上のプライベート・
    キャッシュで共有されるべきデータについて上記2以上
    のプライベート・キャッシュのうちの他のプライベート
    ・キャッシュへ読み込みがあったときに当該プライベー
    ト・キャッシュへも上記共有バスを介して同時に当該デ
    ータの読み込みを行えるようにしたマルチプロセッサ・
    システムにおいて、 上記プライベート・キャッシュのそれぞれに、他のプラ
    イベート・キャッシュが読み込むデータが当該プライベ
    ート・キャッシュのワーキング・セットに属する記憶ブ
    ロックに含まれるときに、当該プライベート・キャッシ
    ュもそのデータを読み込む必要があると判別する判別手
    段と、上記判別結果に基づいて上記データを当該プライ
    ベート・キャッシュに読み込む手段とを設けることを特
    徴とするマルチプロセッサ・システム。
  8. (8)特許請求の範囲第7項記載のマルチプロセッサ・
    システムのプライベート・キャッシュ制御方法において
    、 複数のプライベート・キャッシュに個別のアクセスで同
    一のデータを読み込み、このデータを含む記憶ブロック
    を上記複数のプライベート・キャッシュのワーキング・
    セットに含ませるステップと、 上記ワーキング・セットに含まされた記憶ブロックに含
    まれるデータを上記複数のプライベート・キャッシュの
    1つへの読み込みアクセスを行ない、同時に上記プライ
    ベート・キャッシュの他のものにも読み込みを行うステ
    ップとを有することを特徴とするマルチプロセッサ・シ
    ステムのプライベート・キャッシュ制御方法。
JP2004668A 1990-01-16 1990-01-16 マルチプロセッサ・システムおよびそのプライベート・キャッシュ制御方法 Expired - Lifetime JPH061463B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2004668A JPH061463B2 (ja) 1990-01-16 1990-01-16 マルチプロセッサ・システムおよびそのプライベート・キャッシュ制御方法
DE69130580T DE69130580T2 (de) 1990-01-16 1991-01-04 Cache-Speicheranordnung
EP91300077A EP0438211B1 (en) 1990-01-16 1991-01-04 Cache memory system
US07/639,440 US5228136A (en) 1990-01-16 1991-01-10 Method and apparatus to maintain cache coherency in a multiprocessor system with each processor's private cache updating or invalidating its contents based upon set activity

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004668A JPH061463B2 (ja) 1990-01-16 1990-01-16 マルチプロセッサ・システムおよびそのプライベート・キャッシュ制御方法

Publications (2)

Publication Number Publication Date
JPH03217963A true JPH03217963A (ja) 1991-09-25
JPH061463B2 JPH061463B2 (ja) 1994-01-05

Family

ID=11590292

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004668A Expired - Lifetime JPH061463B2 (ja) 1990-01-16 1990-01-16 マルチプロセッサ・システムおよびそのプライベート・キャッシュ制御方法

Country Status (4)

Country Link
US (1) US5228136A (ja)
EP (1) EP0438211B1 (ja)
JP (1) JPH061463B2 (ja)
DE (1) DE69130580T2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07152646A (ja) * 1993-07-15 1995-06-16 Bull Sa 記憶階層レベル間での交換のコヒーレンシー管理方法
JP2008046961A (ja) * 2006-08-18 2008-02-28 Fujitsu Ltd システムコントローラ,スヌープタグ更新方法および情報処理装置

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5161219A (en) * 1989-01-13 1992-11-03 International Business Machines Corporation Computer system with input/output cache
US5404483A (en) * 1990-06-29 1995-04-04 Digital Equipment Corporation Processor and method for delaying the processing of cache coherency transactions during outstanding cache fills
US5539911A (en) 1991-07-08 1996-07-23 Seiko Epson Corporation High-performance, superscalar-based computer system with out-of-order instruction execution
US5493687A (en) 1991-07-08 1996-02-20 Seiko Epson Corporation RISC microprocessor architecture implementing multiple typed register sets
GB9118312D0 (en) * 1991-08-24 1991-10-09 Motorola Inc Real time cache implemented by dual purpose on-chip memory
US5627967A (en) * 1991-09-24 1997-05-06 International Business Machines Corporation Automated generation on file access control system commands in a data processing system with front end processing of a master list
JP3730252B2 (ja) 1992-03-31 2005-12-21 トランスメタ コーポレイション レジスタ名称変更方法及び名称変更システム
US5553266A (en) * 1992-04-24 1996-09-03 Digital Equipment Corporation Update vs. invalidate policy for a snoopy bus protocol
DE69323790T2 (de) * 1992-04-29 1999-10-07 Sun Microsystems, Inc. Verfahren und Vorrichtung für mehreren ausstehende Operationen in einem cachespeicherkohärenten Multiprozessorsystem
DE69308548T2 (de) 1992-05-01 1997-06-12 Seiko Epson Corp Vorrichtung und verfahren zum befehlsabschluss in einem superskalaren prozessor.
US5511226A (en) * 1992-08-25 1996-04-23 Intel Corporation System for generating snoop addresses and conditionally generating source addresses whenever there is no snoop hit, the source addresses lagging behind the corresponding snoop addresses
KR100292300B1 (ko) 1992-12-31 2001-09-17 야스카와 히데아키 레지스터재명명시스템및방법
US5628021A (en) 1992-12-31 1997-05-06 Seiko Epson Corporation System and method for assigning tags to control instruction processing in a superscalar processor
US5664153A (en) * 1993-04-21 1997-09-02 Intel Corporation Page open/close scheme based on high order address bit and likelihood of page access
FR2707777B1 (fr) * 1993-07-15 1995-08-18 Bull Sa Ensemble informatique à mémoire partagée.
FR2707778B1 (fr) * 1993-07-15 1995-08-18 Bull Sa NÓoeud de processeurs.
FR2707776B1 (fr) 1993-07-15 1995-08-18 Bull Sa Procédé de gestion de mémoires d'un système informatique, système informatique mémoire et support d'enregistrement mettant en Óoeuvre le procédé.
US5630095A (en) * 1993-08-03 1997-05-13 Motorola Inc. Method for use with a data coherency protocol allowing multiple snoop queries to a single snoop transaction and system therefor
US5581793A (en) * 1993-08-24 1996-12-03 Micron Electronics, Inc. System for bypassing setup states in a bus operation
US5655102A (en) * 1993-09-29 1997-08-05 Silicon Graphics, Inc. System and method for piggybacking of read responses on a shared memory multiprocessor bus
US5535352A (en) * 1994-03-24 1996-07-09 Hewlett-Packard Company Access hints for input/output address translation mechanisms
US5651134A (en) * 1994-10-26 1997-07-22 Ncr Corporation Method for configuring a cache memory to store only data, only code, or code and data based on the operating characteristics of the application program
US5530932A (en) * 1994-12-23 1996-06-25 Intel Corporation Cache coherent multiprocessing computer system with reduced power operating features
US5787476A (en) 1995-05-05 1998-07-28 Silicon Graphics, Inc. System and method for maintaining coherency of virtual-to-physical memory translations in a multiprocessor computer
US6106565A (en) * 1997-02-27 2000-08-22 Advanced Micro Devices, Inc. System and method for hardware emulation of a digital circuit
US5923898A (en) * 1997-05-14 1999-07-13 International Business Machines Corporation System for executing I/O request when an I/O request queue entry matches a snoop table entry or executing snoop when not matched
US6023747A (en) * 1997-12-17 2000-02-08 International Business Machines Corporation Method and system for handling conflicts between cache operation requests in a data processing system
US6128706A (en) * 1998-02-03 2000-10-03 Institute For The Development Of Emerging Architectures, L.L.C. Apparatus and method for a load bias--load with intent to semaphore
US6263407B1 (en) 1998-02-17 2001-07-17 International Business Machines Corporation Cache coherency protocol including a hovering (H) state having a precise mode and an imprecise mode
US6415358B1 (en) 1998-02-17 2002-07-02 International Business Machines Corporation Cache coherency protocol having an imprecise hovering (H) state for instructions and data
US6292872B1 (en) 1998-02-17 2001-09-18 International Business Machines Corporation Cache coherency protocol having hovering (H) and recent (R) states
US6272603B1 (en) 1998-02-17 2001-08-07 International Business Machines Corporation Cache coherency protocol having hovering (H), recent (R), and tagged (T) states
US6253285B1 (en) 1998-04-16 2001-06-26 Compaq Computer Corporation Method and apparatus for minimizing dcache index match aliasing using hashing in synonym/subset processing
US6370622B1 (en) 1998-11-20 2002-04-09 Massachusetts Institute Of Technology Method and apparatus for curious and column caching
US6651088B1 (en) * 1999-07-20 2003-11-18 Hewlett-Packard Development Company, L.P. Method for reducing coherent misses in shared-memory multiprocessors utilizing lock-binding prefetchs
US6484238B1 (en) 1999-12-20 2002-11-19 Hewlett-Packard Company Apparatus and method for detecting snoop hits on victim lines issued to a higher level cache
US6631474B1 (en) * 1999-12-31 2003-10-07 Intel Corporation System to coordinate switching between first and second processors and to coordinate cache coherency between first and second processors during switching
JP2002032265A (ja) * 2000-07-14 2002-01-31 Hitachi Ltd キャッシュ・アクセス制御方式およびデータ処理システム
US7664823B1 (en) * 2003-09-24 2010-02-16 Cisco Technology, Inc. Partitioned packet processing in a multiprocessor environment
CN104951240B (zh) 2014-03-26 2018-08-24 阿里巴巴集团控股有限公司 一种数据处理方法及处理器

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3848234A (en) * 1973-04-04 1974-11-12 Sperry Rand Corp Multi-processor system with multiple cache memories
US3840862A (en) * 1973-09-27 1974-10-08 Honeywell Inf Systems Status indicator apparatus for tag directory in associative stores
US3938097A (en) * 1974-04-01 1976-02-10 Xerox Corporation Memory and buffer arrangement for digital computers
US4392200A (en) * 1980-01-28 1983-07-05 Digital Equipment Corporation Cached multiprocessor system with pipeline timing
US4843542A (en) * 1986-11-12 1989-06-27 Xerox Corporation Virtual memory cache for use in multi-processing systems
JPH0668735B2 (ja) * 1987-02-09 1994-08-31 日本電気アイシーマイコンシステム株式会社 キヤツシユメモリ−
US4959777A (en) * 1987-07-27 1990-09-25 Motorola Computer X Write-shared cache circuit for multiprocessor system
GB8728494D0 (en) * 1987-12-05 1988-01-13 Int Computers Ltd Multi-cache data storage system
EP0343567A3 (en) * 1988-05-25 1991-01-09 Hitachi, Ltd. Multi-processing system and cache apparatus for use in the same
US5025365A (en) * 1988-11-14 1991-06-18 Unisys Corporation Hardware implemented cache coherency protocol with duplicated distributed directories for high-performance multiprocessors

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07152646A (ja) * 1993-07-15 1995-06-16 Bull Sa 記憶階層レベル間での交換のコヒーレンシー管理方法
JP2008046961A (ja) * 2006-08-18 2008-02-28 Fujitsu Ltd システムコントローラ,スヌープタグ更新方法および情報処理装置

Also Published As

Publication number Publication date
DE69130580D1 (de) 1999-01-21
EP0438211A2 (en) 1991-07-24
EP0438211B1 (en) 1998-12-09
DE69130580T2 (de) 1999-07-15
US5228136A (en) 1993-07-13
EP0438211A3 (en) 1992-08-05
JPH061463B2 (ja) 1994-01-05

Similar Documents

Publication Publication Date Title
JPH03217963A (ja) マルチプロセッサ・システムおよびそのプライベート・キャッシュ制御方法
JP3309425B2 (ja) キャッシュ制御装置
US5537573A (en) Cache system and method for prefetching of data
US4774654A (en) 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
US7409505B2 (en) Optimized high bandwidth cache coherence mechanism
US6631447B1 (en) Multiprocessor system having controller for controlling the number of processors for which cache coherency must be guaranteed
EP0210384B1 (en) Cache memory consistency control with explicit software instructions
US6957304B2 (en) Runahead allocation protection (RAP)
CN101446923B (zh) 一种响应于指令而清洗高速缓冲存储器线的装置和方法
US20040093467A1 (en) Adaptive cache coherence protocols
JP2010507160A (ja) データ処理装置の共有メモリへの書込みアクセス要求の処理
US5802574A (en) Method and apparatus for quickly modifying cache state
JPH02141845A (ja) マルチプロセッサシステムにおいて中央処理ユニットにより主メモリからデータブロックを読み取る方法
JPH0721085A (ja) メモリとi/o装置の間で転送されるデータをキャッシュするためのストリーミングキャッシュおよびその方法
US5875468A (en) Method to pipeline write misses in shared cache multiprocessor systems
JPH06318174A (ja) キャッシュ・メモリ・システム及び主メモリに記憶されているデータのサブセットをキャッシュする方法
KR20070040340A (ko) 소형 캐시 시스템에서 원자적 보존 라인에 라이트백하는것을 배제하는 방법 및 시스템
JPH0467242A (ja) プロセッサおよびそのキャッシュメモリ制御方法
US20060294319A1 (en) Managing snoop operations in a data processing apparatus
JP2001249846A (ja) キャッシュメモリ装置及びデータ処理システム
US5895486A (en) Method and system for selectively invalidating cache lines during multiple word store operations for memory coherence
JPH0721781B2 (ja) マルチプロセツサ・システム
JP2846888B2 (ja) 分散共有メモリを持つマルチプロセッサシステム
JPH11143774A (ja) キャッシュ制御機構
JP3782178B2 (ja) 情報処理装置