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

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

Info

Publication number
JPH061463B2
JPH061463B2 JP2004668A JP466890A JPH061463B2 JP H061463 B2 JPH061463 B2 JP H061463B2 JP 2004668 A JP2004668 A JP 2004668A JP 466890 A JP466890 A JP 466890A JP H061463 B2 JPH061463 B2 JP H061463B2
Authority
JP
Japan
Prior art keywords
data
private
shared
cache
private cache
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.)
Expired - Lifetime
Application number
JP2004668A
Other languages
English (en)
Other versions
JPH03217963A (ja
Inventor
茂則 清水
盛幹 小原
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; 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/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)

Description

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

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 JPH03217963A (ja) 1991-09-25
JPH061463B2 true 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)

Families Citing this family (42)

* 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
US5493687A (en) 1991-07-08 1996-02-20 Seiko Epson Corporation RISC microprocessor architecture implementing multiple typed register sets
US5539911A (en) 1991-07-08 1996-07-23 Seiko Epson Corporation High-performance, superscalar-based computer system with out-of-order instruction execution
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
EP0636256B1 (en) 1992-03-31 1997-06-04 Seiko Epson Corporation Superscalar risc processor instruction scheduling
US5553266A (en) * 1992-04-24 1996-09-03 Digital Equipment Corporation Update vs. invalidate policy for a snoopy bus protocol
EP0568231B1 (en) * 1992-04-29 1999-03-10 Sun Microsystems, Inc. Methods and apparatus for providing multiple outstanding operations in a cache consistent multiple processor computer system
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
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
EP0849665B1 (en) 1992-12-31 2001-10-04 Seiko Epson Corporation System and method for register renaming
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
FR2707774B1 (fr) * 1993-07-15 1995-08-18 Bull Sa Procédé de gestion cohérente des échanges entre des niveaux d'une hiérarchie de mémoires à au moins trois niveaux.
FR2707778B1 (fr) * 1993-07-15 1995-08-18 Bull Sa NÓoeud de processeurs.
FR2707777B1 (fr) * 1993-07-15 1995-08-18 Bull Sa Ensemble informatique à mémoire partagée.
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
US6272603B1 (en) 1998-02-17 2001-08-07 International Business Machines Corporation Cache coherency protocol having hovering (H), recent (R), and tagged (T) states
US6292872B1 (en) 1998-02-17 2001-09-18 International Business Machines Corporation Cache coherency protocol having hovering (H) and recent (R) states
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
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
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
JP4912790B2 (ja) * 2006-08-18 2012-04-11 富士通株式会社 システムコントローラ,スヌープタグ更新方法および情報処理装置
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

Also Published As

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

Similar Documents

Publication Publication Date Title
JPH061463B2 (ja) マルチプロセッサ・システムおよびそのプライベート・キャッシュ制御方法
US5606686A (en) Access control method for a shared main memory in a multiprocessor based upon a directory held at a storage location of data in the memory after reading data to a processor
US6816947B1 (en) System and method for memory arbitration
CN101446923B (zh) 一种响应于指令而清洗高速缓冲存储器线的装置和方法
US7409505B2 (en) Optimized high bandwidth cache coherence mechanism
US6757787B2 (en) Adaptive cache coherence protocols
US7657710B2 (en) Cache coherence protocol with write-only permission
JP3309425B2 (ja) キャッシュ制御装置
TWI493349B (zh) 用於操控經發佈至資料處理設備內局部快取記憶體結構之存取操作的設備與方法
US7194586B2 (en) Method and apparatus for implementing cache state as history of read/write shared data
JPH05128071A (ja) 多重プロセツサ・システムの性能の最適化装置及び方法
JPH0997214A (ja) 補助プロセッサのためのアドレス変換を含む情報処理システム
JPH0340046A (ja) キャッシュメモリ制御方式および情報処理装置
US20060294319A1 (en) Managing snoop operations in a data processing apparatus
KR20070040340A (ko) 소형 캐시 시스템에서 원자적 보존 라인에 라이트백하는것을 배제하는 방법 및 시스템
JPH0467242A (ja) プロセッサおよびそのキャッシュメモリ制御方法
JPH0721781B2 (ja) マルチプロセツサ・システム
JPH05216765A (ja) 階層バッファ記憶装置
JP3925854B2 (ja) マルチ・プロセッサ・システムにおけるプログラム
JPH05158793A (ja) 並列キャッシュメモリ
JP3782178B2 (ja) 情報処理装置
JP3219810B2 (ja) データ処理装置
JP2852247B2 (ja) 共有メモリ型マルチプロセッサシステム
JPH0830512A (ja) スレッド制御方式
JP2000105727A (ja) マルチプロセッサ、シングルプロセッサおよびデータ記憶制御方法