[go: up one dir, main page]

JPH0625984B2 - マルチプロセツサ・システム - Google Patents

マルチプロセツサ・システム

Info

Publication number
JPH0625984B2
JPH0625984B2 JP2037536A JP3753690A JPH0625984B2 JP H0625984 B2 JPH0625984 B2 JP H0625984B2 JP 2037536 A JP2037536 A JP 2037536A JP 3753690 A JP3753690 A JP 3753690A JP H0625984 B2 JPH0625984 B2 JP H0625984B2
Authority
JP
Japan
Prior art keywords
data
shared
cache
private
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
JP2037536A
Other languages
English (en)
Other versions
JPH03253963A (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 JP2037536A priority Critical patent/JPH0625984B2/ja
Priority to US07/637,902 priority patent/US5241664A/en
Priority to DE69130583T priority patent/DE69130583T2/de
Priority to EP91301062A priority patent/EP0443755B1/en
Publication of JPH03253963A publication Critical patent/JPH03253963A/ja
Publication of JPH0625984B2 publication Critical patent/JPH0625984B2/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)

Description

【発明の詳細な説明】
以下の順でこの発明を説明する。 A.産業上の利用分野 B.従来の技術 C.産業上の利用分野 D.問題点を解決するための手段 E.実施例 E1.実施例の構成(第1図〜第4図) E2.実施例の動作(第1図〜第4図) E3.実施例の有効性(第5図〜第10図) F.発明の効果 A.産業上の利用分野 この発明は複数のプロセッサがプライベート・キャッシ
ュを介して共有バスおよび共有メモリに接続されている
マルチプロセッサ・システムに関し、とくに各プライベ
ート・キャッシュ側に制御装置を設け共有バス上の信号
を監視することによってプライベート・キャッシュにお
けるデータの操作、たとえばプライベート・キャッシュ
間のデータの一貫性を維持する操作を行う、いわゆるス
ヌープ・キャッシュを有するマルチプロセッサ・システ
ムに関する。 B.従来の技術 複数台のプロセッサがそれぞれプライベート・キャッシ
ュを持ち、共有バスによって相互接続される密結合マル
チプロセッサ・システムが提案され、実用化されつつあ
る。 複数のプロセッサは、同じく共有バスに接続される共有
メモリをリード・ライトする。もし、プライベート・キ
ャッシュが無い場合を考えると、各プロセッサの発生す
る共有メモリへのリード・ライトはすべて共有バスを介
して行なわれる。そのため共有バスの使用率が高くな
り、プロセッサの台数を増やしてもシステムの性能はあ
る限界以上に向上しない。 そこで各プロセッサにプライベート・キャッシュを搭載
することによって、共有メモリ内データの一部をコピー
をキャッシュ・メモリに持ち、データのリード・ライト
をキャッシュ内で処理して、共有バスと共有メモリをで
きるだけ使わずに済ませる方式がある(マルチキャッシ
ュ・システム)。ところで、この方式では、各プロセッ
サがそれぞれのキャッシュ内で、同じアドレスのデータ
を勝手に書き替えてしまうと、同一時刻に同一アドレス
のデータが異なる値をとる可能性が生じる。そして同一
時刻、同一アドレスのデータ間で値が異ならないように
する工夫が必要であった。ここで、どのプロセッサから
見ても同じアドレスには同じ値が入っているように見え
ることをデータの一貫性(コンシステンシ)と呼ぶ。 一貫性を保証するひとつの方法としてスヌープ・キャッ
シュ方式がある。スヌープ・キャッシュ方式は、各プロ
セッサのキャッシュ制御装置は共有バスを常時監視する
ことによって、キャッシュ間の一貫性を保つものであ
る。即ち、あるプロセッサが自分のキャッシュ内にある
データを更新するとき、他のプロセッサのキャッシュに
もそのコピーがあると、どのアドレスのデータをどう書
き替えたかという情報を共有バス上の流す。他のプロセ
ッサのキャッシュ制御装置はそれを見て、自分のキャッ
シュ内にあるデータを更新(アップデート)するか、も
しくは無効化(インバリデート)することによって一貫
性を保つ。 従来のスヌープ・キャッシュ方式では、共有データに対
する書き込みが起こったとき、他のキャッシュに存在す
るコピーを更新するか無効化するか、どちらか一方の方
式をとっていた。以後、更新する方式をアップデート方
式、無効化する方式をインバリデート方式と呼ぶことに
する。例えば、米国ゼロックス社のDragon(“Th
e Dragon Processor”,Proceedings of Second Intern
ational Conference on ASPLOS,1987,pp.65-69,R.R.Atk
inson他)や米国デジタル・イクイップメント社のFi
reFly(“Firefly:a Multiprocessor Workstatio
n”,Proceedings of Second International Conferenc
e on ASPLOS,1987,pp.164-172,C.P.Thacker他)はアッ
プデート方式、カリフォルニア大学のSPUR(“Desi
gn Decision in SPUR”,IEEE computer,pp.8-22,1986,
Nov.,M.Hill他)はインバリデート方式を用いている。
また本出願人は、アップテート方式とインバリデート方
式とをプログラムで選択的に切り換えることができるよ
うに設計されたマルチプロセッサについてすでに出願し
ている(特願平1−4799号、平成1年1月13
日)。 ところで、この2方式は、複数のキャッシュ間の一貫性
を保つという意味では等価で、キャッシュ内でデータを
更新(アップデート)しても無効化(インバリデート)
しても一貫性上はかまわないが、性能という観点からは
一長一短がある。 まずアップデート方式は、複数のプロセッサが、非常に
密に共有するデータ(共有しているプロセッサの当該デ
ータに対するアクセス頻度にあまりばらつきがない)を
扱うのに適している。つまり、密に共有するデータに対
してインバリデート方式を用いると、1台のプロセッサ
がその領域をライトするたびに他のキャッシュ内のコピ
ーを無効化していまい、他のキャッシュがその領域をリ
ード・ライトするときに必ずキャッシュ・ミスになって
共有バスにアクセスが必要となる。その点アップデート
方式では、コピーを持つキャッシュすべてが同時に更新
されるので、共有バスを使うことなく当該データを読む
ことができる。例えば、一般的にアップデート方式は、
生産者−消費者モデルの並列プログラムに用いられるバ
ッファや、プロセッサ間の同期に使われるセマフォアな
どに適している。 他方、インバリデート方式は、ある1台のプロセッサで
排他的に使用されるデータや他のプロセッサによるアク
セスがあまり発生しない共有データに応用するのが望ま
しい。本来、ある1台のプロセッサにおいて専有されて
いたデータであるにもかかわらず、ページングやプロセ
ス・マイグレーションによって見かけ上共有データにな
ってしまった場合には、不要な共有データがシステム中
に残ることになり、性能低下の原因となる。このような
環境ではインバリデート方式が有効に働く。 ゆえに、どちらの方式をとるのが望ましいかは一概に決
まらず、実行されるプログラムの性質や個々のプロセッ
サの動作状況に依存する。いろいろなデータアクセスの
状況において、いつも良い性能を提供するプロトコルは
実現困難であった。 前述のDragon、FireFly、SPURはどち
らか一方の方式のみ実現されている。したがって場合に
よっては好ましい性能を提供できない。また、特願平1
−4799号の発明では上記の2方式を選択的に切り換
えることができるようにっているが、ソフトウェアで2
方式を制御している。したがってどのように切替るかの
問題が残っており、その態様によっては十分な性能を引
きだせない場合も考えられる。 なお本出願人はキャッシュ・プロトコルをワーキング・
セット情報に基づいて自動的に切り換える手法について
すでに出願している(平成2年1月16日、特願平2−
4668)。 C.発明が解決しようとする問題点 この発明は以上の事情を考慮してなされたものであり、
インバリデート方式とアップデート方式との2つのプロ
トコルを動的に最適に切り換える制御機構を提供するこ
とを目的としている。これにより、共有バスのトラフィ
ックを減少させ、システムの性能を向上させることがで
きる。 D.問題点を解決するための手段 この発明では以上の目的を達成するために、各プライベ
ート・キャッシュの各共有データについて採用するプロ
トコルを、当該プライベート・キャッシュに対応するプ
ロセッサが当該共有データをアクセスする可能性ないし
は頻度と、対応するプロセッサ以外のプロセッサが当該
共有データをアクセスする可能性ないしは頻度とに基づ
いて自動的に切換るようにする。 プロトコルがインバリデート型とアップデート型の例で
は、当該プライベート・キャッシュに対応するプロセッ
サが当該共有データをアクセスする可能性が大きくなれ
ばなるほどアップデート型のプロトコルを採用する方
が、キャッシュ・ヒットを増大させるうえで好ましい。
また対応するプロセッサ以外のプロセッサが当該共有デ
ータをアクセスする可能性が大きくなければなるほどイ
ンバリデート型のプロトコルを採用する方が、共有デー
タの更新手続き用のバス・トラフィックを減ずる上で好
ましい。 具体的な例では、各プライベート・キャッシュの各共有
データについて、当該プライベート・キャッシュに対応
するプロセッサが当該共有データをアクセスした頻度
と、対応するプロセッサ以外のプロセッサが当該共有デ
ータを更新書込みしたことを示す信号が共有バスに送出
された頻度との差を求め、この値を所定の基準値と比較
し、この比較結果に基づいて、当該プライベート・キャ
ッシュの当該共有データで採用するプロトコルを自動的
に切換るようにする。 E.実施例 E1.実施例の構成 以下この発明の実施例を説明する。 第1図はマルチプロセッサ・システムの全体図である。
この図において、複数のプロセッサP1、P2、・・、Pnがキ
ャッシュC1,C2、・・、Cnを経由して共有バス1および共
有メモリ2に接続されている。これらのキャッシュC1、C
2、‥、Cnは、プロセッサP1、P2、・・、Pnの平均メモリ・
アクセススピードをはやめるだけでなく、共有バス1の
信号をモニタ(以後これをスヌープと呼ぶ)することに
より、キャッシュC1、C2、‥、Cn相互間の一貫性を保つ機
能を持っている。 各キャッシュCは第2図のように構成される。この第2
図においてキャッシュ制御部3は、キャッシュCがプロ
セッサPからアクセスされたとき、およびバス1のスヌ
ープを行うときのキャッシュC全体の基本的な制御を行
う。キャッシュ・データ・メモリ4は、主記憶(共有メ
モリ2)の一部のコピーを記憶する高速なメモリであ
る。このキャッシュ・データ・メモリ4はたとえば64
ビットのデータ・ブロックを16K個記憶できる。プロ
セッサPはほとんどの場合、主記憶にアクセスすること
なく、このデータ・メモリ4から必要なデータの読み書
きができる(データのアクセスはデータ・ブロック単位
で行なわれる)。このため、プロセッサPの平均メモリ
・アクセスが速くなる。キャッシュ・タグ・メモリ5は
キャッシュ・データ・メモリ4にストアされているデー
タ・ブロックの各々のために第3図に示すようなキャッ
シュ・タグをストアする。キャッシュ・タグは後に詳述
するようにV,S,D,アクセス・カウントおよびアド
レス情報の各フィールドからなる。基準値レジスタ6は
キャッシュ・タグ・メモリ5にストアされているキャッ
シュ・タグのアクセス・カウントに関連して基準値をス
トアするものである。比較器7はアドレス情報で特定さ
れたキャッシュ・タグのアクセス・カウントを基準値レ
ジスタ6の基準値に比較しその比較結果をキャッシュ制
御部3に供給する。 つぎにキャッシュ・タグについて説明する。 第3図に示すようにキャッシュ・タグはV,S,D,ア
クセス・カウントおよびアドレス情報の各フィールドか
らなる。アドレス情報は当該キャッシュ・タグが対応す
るデータ・ブロックで用いるのと同じアドレスである。
V,SおよびDはそれぞれ有効フラグ、共有フラグおよ
びデーティ・フラグであり、アドレス情報で特定される
データ・ブロックがそれぞれつぎのような状態であるこ
とを示す。 V:有効フラグ 0:無効 1:有効 S:共有フラグ 0:専有 1:共有 D:ダーティ・フラグ 0:クリーン(共有メモリと同一内容) 1:ダーティ(共有メモリと異なる内容) アクセス・カウントは所定ビットのアップダウン・カウ
ンタをなすものであり、その管理方法については後述す
る。 つぎにキャッシュ・データ・メモリ4のデータ・ブロッ
クの状態について説明する。なおキャッシュ制御部3は
個々のデータ・ブロックをこれら状態およびアクセス・
カウントに基づいて管理する。またデータ・ブロックの
状態の遷移についてはのちに実施例の動作との関連で詳
述する。 第4図に示すようにキャッシュ・データ・メモリ4の個
々のデータ・ブロックの状態はつぎの5とおりである。 (1)無効 (2)クリーン専有:システム内における唯一のコピー
であり、共有メモリと同じ値を保持している。 (3)クリーン共有:システム内に複数のコピーが存在
する可能性があり、リプレースに対してライト・バック
の必要はない。 (4)ダーティ専有:システム内における唯一のコピー
であるが、共有メモリとは違うデータの値を保持してい
る。リプレースに対してライト・バックしなければなら
ない。 (5)ダーティ共有:システム内に複数のコピーが存在
する可能性があり、リプレースに対してタイト・バック
しなければならない。 上述の5つの状態は第3図に示すキャッシュ・タグ内の
3つのフラグによって管理され、その対応関係は表1に
示されるとおりである。なお、表中のXは「無意味」を
表す。 つぎにアクセス・カウントの管理方法について説明す
る。 通常、スヌープ・プロトコルでは、キャッシュ・タグの
中にD(ダーティ)フラグ、S(共有)フラグおよびV
(有効)フラグの3ビットを付加することによって、デ
ータ・ブロックの状態が管理される。 この実施例では、これらのフラグに加えて、アクセス・
カウント・フィールドが付加される(第3図)。前述の
基準値レジスタ6とこの追加されたフィールドの値の関
係によって、キャッシュ中の共有コピー(クリーン共有
あるいはダーティ共有状態)に対する制御方式が最適化
される。すなわち、本アクセス・カウント、フィールド
は、正の値のみ保持するカウンタであり、つぎのような
規約で、増加,減少される。 アクセス・カウントの規約 (1)バスライトが生じるたびに、1だけ増加される。
ただし、所定値Mを超えない。 (2)自分自身のプロセッサからのアクセスが生じる毎
に、1だけ減少される。但し、0以下にはならない。 要約するならば、本アクセス・カウント・フィールド
は、当該ブロックに対して発生したバスからのライト要
求と自プロセッサPからのアクセス要求の数の差を保持
する。 そして、本フィールドの値がある基準値(M)に達して
いる状態を以下の説明中では、“R(Reache
d)”状態と表記する(具体的には、アクセス・カウン
ト・フィールドの値=Mレジスタの値)。Mは第2図に
示した基準値レジスタ6に保持され、プログラムによっ
てその値を書き替えることも可能である。 キャッシュ制御部3は、R状態のときにはインバリデー
ト型プロトコルのごとく動作し、R状態(R状態でな
い)のときには、アップデート型プロトコルのごとく動
作する。基準値(M)が“0”の場合は通常のインバリ
デート型プロトコルとなるし、基準値(M)が、無限大
(実際にはアクセス・カウント・フィールドのビット幅
の物理的制約より不可能)のときには、通常のアップデ
ート型プロトコルとして動作する。 基準値(M)が、いくつかのときに最適なキャッシュ性
能が得られるかは、キャッシュの構成(ブロック・サイ
ズ、プロセッサPのアクセス幅)、バス使用時のペナル
ティ(バスリードとバスライトのサイクル比)、システ
ムを構成するキャッシュの数などに依存する。これにつ
いては後に検討する。 E2.実施例の動作 第4図の状態遷移図を用いてこの実施例の動作を説明す
る。 キャッシュ制御部3はプロセッサPからのアクセスおよ
びバス1からのスヌープが発生するたびにキャッシュ・
タグを参照し、動作を決定する。それと同時に、アクセ
ス・カウント、フィールドの値と基準値レジスタ6の値
を比較器7によって比較し、R状態かどうかを判断す
る。 前述のようにデータ・ブロックは5つの状態で管理され
る。CH(Cache−Hit)信号線1CHはキャッ
シュ間のブロックの専有・共有の状態を示すために、バ
ス1上に設けられている特別の信号線である。バス1か
らキャッシュ制御部3にリードもしくはライトが入り、
自分のキャッシュC内にそのコピーを持っているときは
このCHをアサートし、要求元のキャッシュCに自分が
そのコピーを保持していることを知らせる。これら5つ
の状態自体は、特願平1−4799号で用いているアッ
プデート型プロトコルのそれらと基本的には同じであ
る。 この実施例にユニークな点は、これら5つの状態の間の
状態遷移の方法と、その状態遷移のために用いるキャッ
シュ・タグ中のアクセス・カウント・フィールドが付加
されていることである。第3図に示すように、この実施
例のキャッシュ・タグは通常のキャッシュCで用いられ
るアドレス情報の他に有効、共有、ダーティの3つのフ
ラグとアップダウン・カウンタとして動作するアクセス
・カウント・フィールドから構成される。 各遷移が生じる条件と、そのときに行なう動作は以下の
ようである。 ◆遷移1《無効→クリーン専有》 自プロセッサPがリード動作を行ない、自分のキャッシ
ュCの中にコピーがなく、キャッシュミスを起こした。
さらに、CH信号がアサートされないため他のキャッシ
ュCに同じコピーが存在せず、システム内で唯一自分だ
けがコピーを持っている。 ◆遷移2《無効→クリーン共有》 自プロセッサPがリード動作を行ない、自分のキャッシ
ュCの中にコピーがなくキャッシュミスを起こした。さ
らに、CH信号がアサートされたため他のキャッシュC
に同じコピーが存在している。 ◆遷移3《クリーン共有→クリーン専有》 自プロセッサPがライトを行ない、キャッシュヒットし
た。他のどのキャッシュCもCH信号をアサートしてい
ないので、このブロックを専有状態に変更する。 ◆遷移4《クリーン専有→ダーティ専有》 自プロセッサPがライトを行ない、キャッシュヒットし
た。システム内では自分だけそのコピーを持っているの
で、そのコピーを他のキャッシュCに伝えることなく書
き替えてよい。その結果、共有メモリ2と異なる内容を
保持するのでブロックの状態をダーティに変更する。 ◆遷移5《ダーティ専有→ダーティ専有》 自プロセッサPがライトを行ない、キャッシュヒットし
た。システム内では自分だけそのコピーを持っているの
で、そのコピーを書き替える。 ◆遷移6《クリーン専有→クリーン共有》 他プロセッサPがリードミスを起こし、共有バス1上に
リードが発生した。自分はそのコピーをシステム内でた
だひとり持っていたが、他のキャッシュCに同じコピー
が置かれることになったので、CH信号をアサートして
共有の状態に遷移する。 ◆遷移7《ダーティ専有→ダーティ共有》 他プロセッサPがリードミスを起こし、共有バス1上に
リードが発生し、自分はそのコピーをシステム内でただ
ひとり持っており、かつ共有メモリ2とは違った最新の
値を保持しているので、他のキャッシュCにその最新の
データを供給し、CH信号をアサートして共有の状態に
遷移する。 ◆遷移8《ダーティ共有→ダーティ共有》 他プロセッサPがリードミスを起し、共有バス1上にリ
ードが発生した。自分はそのコピーの最新値を保持して
いるので、要求元キャッシュCにそのデータを供給し、
CHをアサートする。 ◆遷移9《クリーン共有→無効》 バスライト要求がクリーン共有状態のブロックに対して
生じた。かつ、本ブロックはアクセス・カウント・フィ
ールドがR状態であるので、本ブロックをインバリデー
トし、CHのアサートは行なわない。 ◆遷移10《クリーン共有→クリーン専有》 自プロセッサPがライトヒットした。他のキャッシュC
にもコピーが存在する可能性があるので、共有バス1上
にライト要求を出力する。同時に共有メモリ2を更新す
る。結果として、他のどのキャッシュCもCHをアサー
トしなかったので、状態をクリーン専有に変更する。ア
クセス・カウント・フィールドを0に初期化する。 ◆遷移11《ダーティ共有→無効》 バスライト要求がダーティ共有状態のブロックに対して
生じた。かつ、本ブロックはR状態であるので、本ブロ
ックをインバリデートし、CHのアサートは行なわな
い。 ◆遷移12《ダーティ共有→クリーン共有》 本遷移は次の2つの条件で生じる。 (1)自プロセッサPがライトヒットした。他のキャッ
シュCにもコピーが存在する可能性があるので、共有バ
ス1上にライト要求を出力する。同時に共有メモリを更
新する。結果として、他のキャッシュCによってCHが
アサートされたので、状態をクリーン共有に変更する。
アクセス・カウント・フィールドを1だけ減少する。 (2)バスライト要求がダーティ共有状態のブロックに
対して生じた。かつ、本ブロックは、R状態であるの
で本ブロックの更新を行ない、状態をクリーン共有に変
更する。アクセス・カウント・フィールドを1だけ増加
する。 ◆遷移13《クリーン共有→クリーン共有》 本遷移は次の3つの条件で生じる。 (1)自プロセッサPがライトヒットした。他のキャッ
シュCにもコピーが存在する可能性があるので、共有バ
ス1にライト要求を出力する。同時に共有メモリに更新
する。結果として、他のキャッシュCによってCHがア
サートされたので、状態の変更は行なわない。アクセス
・カウント・フィールドを1だけ減少する。 (2)バスリード要求が生じた。 (3)バスライト要求が生じた。かつ、本ブロックは、
R状態であるので、本ブロックの更新を行ない、CH
をアサートする。アクセス・カウント・フィールドを1
だけ増加する。 上記状態遷移では、自プロセッサPよりのリードヒット
に関する記述は、説明の簡略化の目的より省略した。自
プロセッサPよりのリードヒットに対しては、何らの状
態遷移も生じないことは自明である。但し、共有状態の
ブロックに対するリードヒットの際には、アクセス・カ
ウント・フィールドが減少される。 E3.実施例の有効性 前述の様に、本発明の動作の特徴は共有データの取り扱
いにある。あるプロセッサPが共有データを書き替えよ
うとするとき、他のキャッシュCに存在するコピーをア
ップデートもしくはインバリデートして一貫性を保つ。 本発明の方式では、共有データはキャッシュC内にクリ
ーン共有,ダーティ共有のいずれかの状態で存在する。
その意味では、通常のスヌーププロトコルと同じである
が、共有データに対するオーバヘッドを最小化するため
に、アクセス・カウント・フィールドがキャッシュ・タ
グ中に付加され、共有状態のブロックはこのフィールド
がある基準値(M)に達しているか否かを示すR属性が
追加される。あるプロセッサPが共有データにキャッシ
ュヒットし、バスライト要求を発生した時、他のキャッ
シュC中の共有コピーは、R状態ならばアップデート
される。そして、アップデートが生じたことを記録する
為に、アクセス・カウントは1だけ増加される(第5
図)。一方、R状態の共有コピーはインバリデートされ
る(第6図)。また、共有コピーに対して自プロセッサ
Pよりアクセスが生じた時には、アクセス・カウントは
1だけ減少される(第7図)。即ち、キャッシュC内の
ある共有ブロックに対する他のプロセッサPよりのアッ
プデートの回数と、自プロセッサPよりのアクセスの回
数の差がある基準値(M)に達したかどうかによって、
当該ブロックをアップデートするのか、インバリデート
するのかが自動的に決定される。 基準値(M)が、“1”の場合、その動作により明確で
あり、次のようになる。即ち、キャッシュC内のある共
有ブロックが他のプロセッサPによってアップデートさ
れた後、一度も自分のプロセッサPからアクセスされる
ことなく再びアップデートされようとした場合に、その
ブロックはインバリデートされる。逆に、他のプロセッ
サPからのアップデート要求と次のアップデート要求の
間に一度でも自プロセッサPからアクセスされたならば
そのブロックはキャッシュC内に生き残る。 この実施例の動作および有効性をまとめると、つぎのよ
うになる。共有データであって、しかも複数台のプロセ
ッサPから頻繁に読み書きされるものに関しては、従来
のアップデート方式と同じく動作する。即ち、共有デー
タにライトアクセスが発生したときは、複数のキャッシ
ュCに保持されているコピーをインバリデートすること
なしに即座にアップデートする(第8図)。しかし、本
来共有データであっても、1台のプロセッサPからしか
頻繁にアクセスされないデータに対しては、その頻繁に
アクセスするプロセッサPのキャッシュCにだけそのコ
ピーを残し、他のキャッシュC内のコピーはインバリデ
ートしてしまう(第9図)。すると、インバリデートし
たあとは他のキャッシュCにコピーがないので、自分の
キャッシュC内だけで処理できる(第10図)。 以上説明の通り、この実施例のスヌープキャッシュC
は、ある時点で本当の共有データとして、複数のキャッ
シュC上にコピーが存在する方が望ましいときには、ア
ップデート方式と同じ動作をする。また、本来共有しな
くてもよいデータ、もしくは長い目で見れば共有データ
ではあるが、ある時点ではひとつのプロセッサPが専有
してリード・ライトした方が性能的に望ましい場合はイ
ンバリデート方式として動作する。 アップデート方式とインバリデート方式切り換えの境目
を決定するMの値の最適値は、プロセッサP、キャッシ
ュCのブロックサイズ、プログラムのリード・ライトの
パターンなどに依存し、一概には決められない。そこ
で、ここではキャッシュCのブロックサイズとプログラ
ムの性質を仮定し、Mの値のシステムに対する影響を明
らかにする。 以下に、例を挙げて考える。 (1)プログラムは生産者−消費者モデルを考える。生
産者はあるデータ構造を次々と作り出し、共有メモリ上
に実現されたデータバッファに書き込む。消費者はデー
タバッファからデータ構造を読み込んで何らかの処理を
する。生産者と消費者はそれぞれ別のプロセッサPに割
り付けられている。 (2)生産者、消費者のデータアクセスは1ワードずつ
行なわれる。 (3)キャッシュCのブロックサイズは8ワードとす
る。 (4)共有バス1はキャッシュCの1ブロック8ワード
を1サイクルで転送する。 (5)キャッシュCのインバリデートを行うときは共有
バス1を1サイクル使用する。 以上の仮定の下で2通りの状況を想定し、共有バス1の
使用サイクル数でシステムの性能を評価する。即ち、使
用サイクル数が少ないほど性能が良いものとする。
【状況1】まず、生産者が8ワード分のデータを作り出
し、キャッシュCに書き込み、消費者がその8ワードの
データを読み込んで処理する場合を考える(一つのデー
タ構造が8ワードから成っていると考えてもよい)。M
=0のときはインバリデート方式と同じように動作する
ので、生産者が8ワードの最初のワードを書き込んだと
きに消費者のもつキャッシュCのブロックがインバリデ
ートされる。このとき、バス1が1サイクル使われる。
残りの7ワードは生産者のキャッシュCのみに存在して
いるので、そのデータのみ書き替えればよく、バス1を
使う必要はない。続いて、消費者が8ワードの最初のワ
ードを読み込んだとき1ブロック8ワードが転送され、
バス1が1サイクル使われる。従って、バス1は合計2
サイクル使われる。次に、M=8のときはアップデート
方式と同じように動作するので、生産者が8ワード連続
して書き込むときに、1ワードごとに8回バス1を使
う。しかし、消費者の持つデータ・ブロックはアップデ
ートされてそのまま残っており、消費者がデータを読み
込むときはキャッシュCから読み込めばよいので、バス
1は使わない。結局、バス1は合計8サイクル使われる
ことになる。Mが0から8まで変化したときのバス使用
回数を表2に示す。この状況ではM=0、即ちインバリ
デート方式がバス1の使用回数が2回と、一番少なくて
済み、最大の性能が得られる。
【状況2】別の状況として、生産者が1ワードのデータ
を書き込む毎に消費者がその1ワードのデータを読み込
んで処理する場合を考えてみる。M=0のときは、生産
者が1ワード目のデータを書き込むときに、消費者のデ
ータ・ブロックをインバリデートするのでバス1を1回
使う。続いて、消費者が1ワード目のデータを読み込む
ときに、キャッシュC内のデータがインバリデートされ
てしまっているので、最新のデータを取り込むためにバ
ス1を1回使う。さらに、生産者が2ワード目のデータ
を書き込むときにインバリデートのため、バス1を1回
使う。消費者は2ワード目のデータを読み込むのに1回
バス1を使う。これをキャッシュCの1ブロック、即ち
8ワード分を行ったとすると、8ワードのデータを受け
渡すのに合計2×8=16回バス1を使うことになる。
つぎに、M=8のときは、生産者が1ワード書き込むご
とに消費者のデータ・ブロックをアップデートするの
で、バス1を1回使うが、消費者のキャッシュCはアッ
プデートされているので、消費者がデータを読み込むと
きにはバス1を使わなくてもよい。従って、バス1は1
×8=8回使われる。状況1と同様にMが0から8まで
変化したときのバス1の使用回数を表3に示す。この状
況では、Mが1から8のときバス1を8回使うが、0の
ときバス1を16回使うことがわかる。 実際には状況1だけが生じる処理や、逆に状況2だけが
生じる処理はまれで、通常のプログラムはいろいろな状
況を作り出している。今、簡単のために状況1と状況2
が、1対1の比率で、実際の処理上に出現したと仮定す
ると、バス1の使用回数は、表2と表3をさらに足し合
わせた値になり、表4に示すようになる。 以上の仮定の下では、表4から、M=1のときにバス使
用回数が11回と最小となる。これは、アップデート方
式と同じ動作をするM=8のときのバス使用回数16
回、インバリデート方式と同じ動作をするM=0のとき
のバス使用回数18回に比べ少なく、従って最良のシス
テム性能が得られることがわかる。 上記の仮定のように、状況1と状況2がいつも1対1の
頻度で出現するとは必ずしもいない。しかし、両極端の
2つの状況が発生しても、本発明のキャッシュ制御方式
を用いることによって、アップデート方式とインバリデ
ート方式それぞれの得意・不得意な状況に柔軟に対応で
きることがわかる。 F.発明の効果 以上説明したようにこの発明のキャッシュ制御部では、
共有データであって、しかも複数台のプロセッサPから
頻繁に読み書きされるものに関しては、従来のアップデ
ート方式と同じく動作する。すなわち共有データにライ
トアクセスが発生したときは、複数のキャッシュCに保
持されているコピーをインバリデートすることなしに即
座にアップデートする。他方本来共有データであって
も、1台のプロセッサPからしか頻繁にアクセスされな
いデータに対しては、従来のインバリデート型と同様に
動作する。すなわち頻繁にアクセスするプロセッサPの
キャッシュCにだけそのコピーを残し、他のキャッシュ
C内のコピーはインバリデートする。したがってキャッ
シュのバスの性能を最大限に引きだすことができる。 しかもキャッシュ・プロトコルの切り換えは状況の変化
に基づいて自動的に実行されるので常に最適化されたキ
ャッシュ制御が可能となる。またプロセッサごとにキャ
ッシュ・プロトコルが設定されるのでプロセッサごとに
最適な動作を実現できる。またキャッシュ制御が自動的
にプロトコルを切り換えるので従来のプロセッサやメモ
リ管理ユニットをそのまま用いることができ、さらにコ
ンパイラ、スケジューラ等のソフトウェアによりプロト
コルを切り換える必要がないのでこれらソフトウェアも
従来のものを用いることができる。
【図面の簡単な説明】
第1図はこの発明の1実施例の全体構成を示すブロック
図、第2図は第1図例のプライベート・キャッシュの構
成を示すブロック図、第3図は第2図のキャッシュ・タ
グ・メモリ5のキャッシュ・タグのフォーマットを示す
図、第4図は第2図のキャッシュ制御におけるデータ・
ブロックの状態遷移図、第5図、第6図、第7図、第8
図、第9図および第10図は上述実施例の動作を説明す
る図である。 P…プロセッサ、C…プライベート・キャッシュ、1…
共有バス、2…共有メモリ、3…キャッシュ制御部、4
…キャッシュ・データ・メモリ、5…キャッシュ・タグ
・メモリ、6…基準値レジスタ、7…比較器。

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】複数のプロセッサがそれぞれのプライベー
    ト・キャッシュを介して共有バスおよび共有メモリに接
    続され、かつ上記プライベート・キャッシュの各々に設
    けられた制御装置の各々が上記共有バス上の信号を監視
    して、当該プライベート・キャッシュを含む2以上のプ
    ライベート・キャッシュで共有される共有データについ
    て上記2以上のプライベート・キャッシュのいずれかで
    更新書込みがあったときにそれら共有データの間の不一
    致を解消するように当該プライベート・キャッシュの当
    該共有データに対してデータ一貫性維持手続きを実行す
    るマルチプロセッサ・システムにおいて、 上記プライベート・キャッシュのそれぞれに、 当該プライベート・キャッシュに記憶されているデータ
    ごとに、当該データのアドレス情報と、当該データの状
    態情報と、当該プライベート・キャッシュで当該共有デ
    ータにアクセスがあるたびに1だけ減少され、当該プラ
    イベート・キャッシュ以外のプライベート・キャッシュ
    で当該共有データに更新書込みがあったことを表示する
    信号が上記共有バス上を伝送されるたびに1だけ増加さ
    れる計数値とを記憶するデータ制御情報記憶手段と、 上記計数値に関連して所定の基準値を記憶する基準値記
    憶手段と、 上記計数値と上記基準値とを比較する比較手段と、 当該データに関する上記比較手段の比較結果および上記
    状態情報に基づいて当該データに対してデータ一貫性手
    続きを実行する一貫性手続き実行手段とを設けたことを
    特徴とするマルチプロセッサ・システム。
  2. 【請求項2】上記計数値は、所定の上限値および下限値
    を有する特許請求の範囲第1項記載のマルチプロセッサ
    ・システム。
  3. 【請求項3】上記計数値の上限値を上記基準値とした特
    許請求の範囲第2項記載のマルチプロセッサ・システ
    ム。
  4. 【請求項4】上記プライベート・キャッシュの各々に設
    けられた上記一貫性維持手続き実行手段の各々は、 当該プライベート・キャッシュを含む2以上のプライベ
    ート・キャッシュで共有される共有データについて当該
    プライベート・キャッシュ以外のプライベート・キャッ
    シュにおいて更新書込みがあったときに、対応する比較
    手段から出力される一致信号に応じて、当該共有データ
    を無効にし、かつ上記対応する比較手段から出力される
    不一致信号に応じて当該プライベート・キャッシュの当
    該共有データの内容を変更するとともにその状態表示を
    共有のままにするようにした特許請求の範囲第1項、第
    2項または第3項記載のマルチプロセッサ・システム。
  5. 【請求項5】複数のプロセッサがそれぞれのプライベー
    ト・キャッシュを介して共有バスおよび共有メモリに接
    続され、かつ上記プライベート・キャッシュの各々に設
    けられた制御装置が上記共有バス上の信号を監視して、
    当該プライベート・キャッシュを含む2以上のプライベ
    ート・キャッシュで共有される共有データについて上記
    2以上のプライベート・キャッシュのいずれかで更新書
    込みがあったときに共有データ間の不一致を解消するよ
    うにデータ一貫性維持手続きを実行するマルチプロセッ
    サ・システムにおいて、 上記プライベート・キャッシュのそれぞれに、 当該プライベート・キャッシュに記憶されているデータ
    ごとに、当該プライベート・キャッシュ以外のプライベ
    ート・キャッシュが当該データを記憶しているかどうか
    を表す共有状態表示を記憶する共有状態表示記憶手段
    と、 当該プライベート・キャッシュおよび当該プライベート
    ・キャッシュ以外のプライベート・キャッシュの双方に
    記憶されている上記データごとに、当該データについて
    採用するデータ一貫性維持手続きの種類を、当該プライ
    ベート・キャッシュに対応するプロセッサが当該データ
    をアクセスする尤度と、対応するプロセッサ以外のプロ
    セッサが当該データをアクセスする尤度とに基づいて決
    定するデータ一貫性維持手続き決定手段と、 少なくとも2種類のデータ一貫性維持手続きを選択的に
    実行でき、上記データ一貫性維持手続き決定手段により
    決定された種類の一貫性維持手続きを実行する一貫性維
    持手続き実行手段とを設けたことを特徴とするマルチプ
    ロセッサ・システム。
  6. 【請求項6】上記データ一貫性維持手続きは、1のプラ
    イベート・キャッシュで共有データに更新書込みがあっ
    たときに当該プライベート・キャッシュの当該共有デー
    タの状態表示を専有に変え、かつ他のプライベート・キ
    ャッシュの当該共有データを無効にする無効型のデータ
    一貫性維持手続きと、1のプライベート・キャッシュで
    共有データに更新書込みがあったときに他のプライベー
    ト・キャッシュに当該共有データがあればこれを変更す
    るとともに当該プライベート・キャッシュの当該共有デ
    ータ・データの状態表示を共有のままにし、他のプライ
    ベート・キャッシュに共有データがなければ当該プライ
    ベート・キャッシュの当該共有データの状態表示を専有
    に変える更新型のデータ一貫性維持手続きである特許請
    求の範囲第5項記載のマルチプロセッサ・システム。
JP2037536A 1990-02-20 1990-02-20 マルチプロセツサ・システム Expired - Lifetime JPH0625984B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2037536A JPH0625984B2 (ja) 1990-02-20 1990-02-20 マルチプロセツサ・システム
US07/637,902 US5241664A (en) 1990-02-20 1991-01-07 Multiprocessor system
DE69130583T DE69130583T2 (de) 1990-02-20 1991-02-11 Cache-Steuerungsanordnung
EP91301062A EP0443755B1 (en) 1990-02-20 1991-02-11 Cache control system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2037536A JPH0625984B2 (ja) 1990-02-20 1990-02-20 マルチプロセツサ・システム

Publications (2)

Publication Number Publication Date
JPH03253963A JPH03253963A (ja) 1991-11-13
JPH0625984B2 true JPH0625984B2 (ja) 1994-04-06

Family

ID=12500247

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2037536A Expired - Lifetime JPH0625984B2 (ja) 1990-02-20 1990-02-20 マルチプロセツサ・システム

Country Status (4)

Country Link
US (1) US5241664A (ja)
EP (1) EP0443755B1 (ja)
JP (1) JPH0625984B2 (ja)
DE (1) DE69130583T2 (ja)

Families Citing this family (80)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5553266A (en) * 1992-04-24 1996-09-03 Digital Equipment Corporation Update vs. invalidate policy for a snoopy bus protocol
GB2271201B (en) * 1992-10-01 1995-12-13 Digital Equipment Int Low-overhead,non-coherent cache refreshment mechanism
EP0624844A2 (en) * 1993-05-11 1994-11-17 International Business Machines Corporation Fully integrated cache architecture
TW234174B (en) * 1993-05-14 1994-11-11 Ibm System and method for maintaining memory coherency
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é.
FR2707778B1 (fr) * 1993-07-15 1995-08-18 Bull Sa NÓoeud de processeurs.
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.
FR2707777B1 (fr) * 1993-07-15 1995-08-18 Bull Sa Ensemble informatique à mémoire partagée.
US5442758A (en) * 1993-07-19 1995-08-15 Sequent Computer Systems, Inc. Apparatus and method for achieving reduced overhead mutual exclusion and maintaining coherency in a multiprocessor system utilizing execution history and thread monitoring
US5604882A (en) * 1993-08-27 1997-02-18 International Business Machines Corporation System and method for empty notification from peer cache units to global storage control unit in a multiprocessor data processing system
US5522057A (en) * 1993-10-25 1996-05-28 Intel Corporation Hybrid write back/write through cache having a streamlined four state cache coherency protocol for uniprocessor computer systems
JPH07129468A (ja) * 1993-11-04 1995-05-19 Matsushita Electric Ind Co Ltd 主記憶制御装置
US5829052A (en) * 1994-12-28 1998-10-27 Intel Corporation Method and apparatus for managing memory accesses in a multiple multiprocessor cluster system
JPH11508375A (ja) * 1995-06-26 1999-07-21 ラプラント、パトリック、アール. 流体圧による引っ張り及び同調システム
US5787477A (en) * 1996-06-18 1998-07-28 International Business Machines Corporation Multi-processor cache coherency protocol allowing asynchronous modification of cache data
US5734922A (en) * 1996-07-01 1998-03-31 Sun Microsystems, Inc. Multiprocessing system configured to detect and efficiently provide for migratory data access patterns
US6523095B1 (en) * 1996-07-22 2003-02-18 Motorola, Inc. Method and data processing system for using quick decode instructions
JP3068469B2 (ja) * 1996-08-28 2000-07-24 新潟日本電気株式会社 2次レベルキャッシュメモリシステム
JPH1173370A (ja) * 1997-08-29 1999-03-16 Fujitsu Ltd 情報処理装置
US6519686B2 (en) * 1998-01-05 2003-02-11 Intel Corporation Information streaming in a multi-process system using shared memory
JP3751741B2 (ja) 1998-02-02 2006-03-01 日本電気株式会社 マルチプロセッサシステム
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
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
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
US6978462B1 (en) 1999-01-28 2005-12-20 Ati International Srl Profiling execution of a sequence of events occuring during a profiled execution interval that matches time-independent selection criteria of events to be profiled
US6763452B1 (en) 1999-01-28 2004-07-13 Ati International Srl Modifying program execution based on profiling
US6954923B1 (en) 1999-01-28 2005-10-11 Ati International Srl Recording classification of instructions executed by a computer
US7941647B2 (en) 1999-01-28 2011-05-10 Ati Technologies Ulc Computer for executing two instruction sets and adds a macroinstruction end marker for performing iterations after loop termination
US7111290B1 (en) 1999-01-28 2006-09-19 Ati International Srl Profiling program execution to identify frequently-executed portions and to assist binary translation
US7013456B1 (en) 1999-01-28 2006-03-14 Ati International Srl Profiling execution of computer programs
US7065633B1 (en) 1999-01-28 2006-06-20 Ati International Srl System for delivering exception raised in first architecture to operating system coded in second architecture in dual architecture CPU
US8074055B1 (en) 1999-01-28 2011-12-06 Ati Technologies Ulc Altering data storage conventions of a processor when execution flows from first architecture code to second architecture code
US7275246B1 (en) 1999-01-28 2007-09-25 Ati International Srl Executing programs for a first computer architecture on a computer of a second architecture
US8127121B2 (en) 1999-01-28 2012-02-28 Ati Technologies Ulc Apparatus for executing programs for a first computer architechture on a computer of a second architechture
US8065504B2 (en) * 1999-01-28 2011-11-22 Ati International Srl Using on-chip and off-chip look-up tables indexed by instruction address to control instruction execution in a processor
US7013284B2 (en) * 1999-05-04 2006-03-14 Accenture Llp Component based interface to handle tasks during claim processing
US6574636B1 (en) 1999-05-04 2003-06-03 Accenture Llp Method and article of manufacture for isolating data within a computer program
US7617240B2 (en) 1999-05-04 2009-11-10 Accenture Llp Component based task handling during claim processing
US7979382B2 (en) 1999-05-04 2011-07-12 Accenture Global Services Limited Component based information linking during claim processing
US6779107B1 (en) 1999-05-28 2004-08-17 Ati International Srl Computer execution by opportunistic adaptation
US7100000B1 (en) * 1999-05-28 2006-08-29 International Business Machines Corporation System and methods for processing audio using multiple speech technologies
US6505475B1 (en) 1999-08-20 2003-01-14 Hudson Technologies Inc. Method and apparatus for measuring and improving efficiency in refrigeration systems
US6549959B1 (en) * 1999-08-30 2003-04-15 Ati International Srl Detecting modification to computer memory by a DMA device
US6532520B1 (en) 1999-09-10 2003-03-11 International Business Machines Corporation Method and apparatus for allocating data and instructions within a shared cache
US6934832B1 (en) 2000-01-18 2005-08-23 Ati International Srl Exception mechanism for a computer
US6438658B1 (en) * 2000-06-30 2002-08-20 Intel Corporation Fast invalidation scheme for caches
JP2002032265A (ja) * 2000-07-14 2002-01-31 Hitachi Ltd キャッシュ・アクセス制御方式およびデータ処理システム
US6651145B1 (en) * 2000-09-29 2003-11-18 Intel Corporation Method and apparatus for scalable disambiguated coherence in shared storage hierarchies
US6668240B2 (en) 2001-05-03 2003-12-23 Emerson Retail Services Inc. Food quality and safety model for refrigerated food
US6892546B2 (en) 2001-05-03 2005-05-17 Emerson Retail Services, Inc. System for remote refrigeration monitoring and diagnostics
TW591526B (en) * 2002-04-09 2004-06-11 Via Tech Inc Data maintenance method of DSM system
US6889173B2 (en) 2002-10-31 2005-05-03 Emerson Retail Services Inc. System for monitoring optimal equipment operating parameters
US8126742B2 (en) 2003-05-09 2012-02-28 Accenture Global Services Limited Automated assignment of insurable events
US7133977B2 (en) * 2003-06-13 2006-11-07 Microsoft Corporation Scalable rundown protection for object lifetime management
US7412842B2 (en) 2004-04-27 2008-08-19 Emerson Climate Technologies, Inc. Compressor diagnostic and protection system
US7275377B2 (en) 2004-08-11 2007-10-02 Lawrence Kates Method and apparatus for monitoring refrigerant-cycle systems
WO2006091521A2 (en) 2005-02-21 2006-08-31 Computer Process Controls, Inc. Enterprise control and monitoring system
US7933786B2 (en) 2005-11-01 2011-04-26 Accenture Global Services Limited Collaborative intelligent task processor for insurance claims
US8590325B2 (en) 2006-07-19 2013-11-26 Emerson Climate Technologies, Inc. Protection and diagnostic module for a refrigeration system
US7571285B2 (en) * 2006-07-21 2009-08-04 Intel Corporation Data classification in shared cache of multiple-core processor
US20080216494A1 (en) 2006-09-07 2008-09-11 Pham Hung M Compressor data module
US20090037142A1 (en) 2007-07-30 2009-02-05 Lawrence Kates Portable method and apparatus for monitoring refrigerant-cycle systems
US8209689B2 (en) * 2007-09-12 2012-06-26 Intel Corporation Live lock free priority scheme for memory transactions in transactional memory
US9140728B2 (en) 2007-11-02 2015-09-22 Emerson Climate Technologies, Inc. Compressor sensor module
US8478769B2 (en) 2008-02-22 2013-07-02 Accenture Global Services Limited Conversational question generation system adapted for an insurance claim processing system
US8515786B2 (en) 2008-02-22 2013-08-20 Accenture Global Services Gmbh Rule generation system adapted for an insurance claim processing system
US8103834B2 (en) * 2008-10-29 2012-01-24 Oracle America, Inc. Coherence protocol with dynamic privatization
JP2010128698A (ja) * 2008-11-26 2010-06-10 Toshiba Corp マルチプロセッサシステム
US8473106B2 (en) 2009-05-29 2013-06-25 Emerson Climate Technologies Retail Solutions, Inc. System and method for monitoring and evaluating equipment operating parameter modifications
EP2681497A4 (en) 2011-02-28 2017-05-31 Emerson Electric Co. Residential solutions hvac monitoring and diagnosis
US8964338B2 (en) 2012-01-11 2015-02-24 Emerson Climate Technologies, Inc. System and method for compressor motor protection
US9310439B2 (en) 2012-09-25 2016-04-12 Emerson Climate Technologies, Inc. Compressor having a control and diagnostic module
US9551504B2 (en) 2013-03-15 2017-01-24 Emerson Electric Co. HVAC system remote monitoring and diagnosis
US9803902B2 (en) 2013-03-15 2017-10-31 Emerson Climate Technologies, Inc. System for refrigerant charge verification using two condenser coil temperatures
CA2904734C (en) 2013-03-15 2018-01-02 Emerson Electric Co. Hvac system remote monitoring and diagnosis
AU2014248049B2 (en) 2013-04-05 2018-06-07 Emerson Climate Technologies, Inc. Heat-pump system with refrigerant charge diagnostics
JP5936152B2 (ja) 2014-05-17 2016-06-15 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation メモリアクセストレース方法
US11188471B2 (en) * 2020-04-03 2021-11-30 Alibaba Group Holding Limited Cache coherency for host-device systems
CN112100093B (zh) * 2020-08-18 2023-11-21 海光信息技术股份有限公司 保持多处理器共享内存数据一致性的方法和多处理器系统

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3938097A (en) * 1974-04-01 1976-02-10 Xerox Corporation Memory and buffer arrangement for digital computers
US4755930A (en) * 1985-06-27 1988-07-05 Encore Computer Corporation Hierarchical cache memory system and method
US4969088A (en) * 1988-04-26 1990-11-06 International Business Machines Corporation Hardware mechanism for automatically detecting hot-spot references and diverting same from memory traffic in a multiprocessor computer system
EP0343567A3 (en) * 1988-05-25 1991-01-09 Hitachi, Ltd. Multi-processing system and cache apparatus for use in the same

Also Published As

Publication number Publication date
EP0443755A2 (en) 1991-08-28
EP0443755A3 (en) 1992-08-19
US5241664A (en) 1993-08-31
JPH03253963A (ja) 1991-11-13
DE69130583T2 (de) 1999-07-15
EP0443755B1 (en) 1998-12-09
DE69130583D1 (de) 1999-01-21

Similar Documents

Publication Publication Date Title
JPH0625984B2 (ja) マルチプロセツサ・システム
US6678799B2 (en) Aggregation of cache-updates in a multi-processor, shared-memory system
US6704842B1 (en) Multi-processor system with proactive speculative data transfer
US6631447B1 (en) Multiprocessor system having controller for controlling the number of processors for which cache coherency must be guaranteed
EP0817071B9 (en) A multiprocessing system configured to detect and efficiently provide for migratory data access patterns
Cox et al. Adaptive cache coherency for detecting migratory shared data
US5895495A (en) Demand-based larx-reserve protocol for SMP system buses
US5987571A (en) Cache coherency control method and multi-processor system using the same
JP3309425B2 (ja) キャッシュ制御装置
CN101446923B (zh) 一种响应于指令而清洗高速缓冲存储器线的装置和方法
US20070136535A1 (en) System and Method for Reducing Unnecessary Cache Operations
US9372803B2 (en) Method and system for shutting down active core based caches
US7194586B2 (en) Method and apparatus for implementing cache state as history of read/write shared data
US20060248286A1 (en) Optimized high bandwidth cache coherence mechanism
JP2010507160A (ja) データ処理装置の共有メモリへの書込みアクセス要求の処理
US20090094418A1 (en) System and method for achieving cache coherency within multiprocessor computer system
JPH03217963A (ja) マルチプロセッサ・システムおよびそのプライベート・キャッシュ制御方法
JPH09223118A (ja) スヌープキャッシュメモリ制御システム
US6587922B2 (en) Multiprocessor system
US10540283B2 (en) Coherence de-coupling buffer
US7434007B2 (en) Management of cache memories in a data processing apparatus
US5761724A (en) Write-invalidate cache system for a split transaction bus based shared memory multiprocessor
US7464227B2 (en) Method and apparatus for supporting opportunistic sharing in coherent multiprocessors
EP0579418A2 (en) Computer system maintaining data consistency between the cache and the main memory
US20060294319A1 (en) Managing snoop operations in a data processing apparatus