JPH10333985A - データ供給方法及びコンピュータ・システム - Google Patents

データ供給方法及びコンピュータ・システム

Info

Publication number
JPH10333985A
JPH10333985A JP10091839A JP9183998A JPH10333985A JP H10333985 A JPH10333985 A JP H10333985A JP 10091839 A JP10091839 A JP 10091839A JP 9183998 A JP9183998 A JP 9183998A JP H10333985 A JPH10333985 A JP H10333985A
Authority
JP
Japan
Prior art keywords
cache
data value
copy
data
recently accessed
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
JP10091839A
Other languages
English (en)
Other versions
JP3888769B2 (ja
Inventor
Kumar Arimiri Ravi
ラヴィ・カマー・アライミリ
John Steven Dodson
ジョン・スティーブン・ドッドソン
John Michael Kaiser
ジョン・マイケル・カイザー
Don Lewis Jerry
ジェリー・ドン・リュイス
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH10333985A publication Critical patent/JPH10333985A/ja
Application granted granted Critical
Publication of JP3888769B2 publication Critical patent/JP3888769B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/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)
  • Multi Processors (AREA)

Abstract

(57)【要約】 【課題】 マルチプロセッサ・コンピュータ・システム
でキャッシュ・コヒーレンシを維持するための改良され
た方法の提供。 【解決手段】 処理装置のキャッシュはそれぞれ、デー
タ値を格納するブロックを有するキャッシュ・ラインを
有し、データ値を含むブロックを有するキャッシュ・ラ
インが"最近読取り"状態にあることが表示される。キャ
ッシュ・エントリはそれぞれ、その現在状態(可能な5
つの状態の1つ)を示す3つのビットを有する。共用デ
ータ値にアクセスしようとする処理装置は、最も最近ア
クセスされたコピーを有するキャッシュからの指示の転
送を検出し、データが供給される。最も最近アクセスさ
れたデータのコピーを最初に有していたキャッシュは、
データを供給した際に、そのコピーが現在は共用されて
いることを示し、データ値をアクセスした処理装置はそ
の後、最も最近アクセスされたデータ値のコピーを含む
キャッシュを有すると表示される。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、一般的にはコンピ
ュータ・システムに関し、特に最も最近(most recentl
y)参照された状態を考慮し、データのキャッシュ介入
を改良できるようにしたキャッシュ・コヒーレンシ・プ
ロトコルに関する。
【0002】
【従来の技術】従来のマルチプロセッサ・コンピュータ
・システム10の基本的構造を図1に示す。コンピュー
タ・システム10にはいくつかの処理装置があるが、そ
のうちの2つ、12a及び12bが示してある。これら
は、さまざまな周辺装置に接続される。周辺装置は、入
出力(I/O)装置14(ディスプレイ・モニタ、キー
ボード、グラフィカル・ポインタ(マウス)、不揮発性
の永続記憶装置(ハード・ディスク)等)、プログラム
命令を実行するため処理装置によって用いられるメモリ
装置16(RAM、すなわちランダム・アクセス・メモ
リ等)、及び基本的にはコンピュータの電源が最初に入
ったときに周辺装置のひとつ(通常は永続メモリ装置)
からオペレーティング・システムを探し出してロードす
るためのファームウェア(ROS)18を含む。処理装
置12a及び12bは、汎用相互接続部、すなわちバス
20、直接メモリ・アクセス・チャネル(図示なし)
等、さまざまな手段により周辺装置と通信する。コンピ
ュータ・システム10には、図示していないが、モデム
またはプリンタ等に接続するためのシリアル・ポート及
びパラレル・ポート等、さまざまなコンポーネントを追
加することができる。また当業者には明らかなように、
図1のブロック図に示したものと共に使用できるコンポ
ーネントは他にもある。例えば、ビデオ・ディスプレイ
・モニタを制御するディスプレイ・アダプタ、メモリ装
置16にアクセスするメモリ・コントローラ等を使用で
きる。コンピュータの処理装置は2つ以上あってもよ
い。
【0003】対称型マルチプロセッサ(SMP)・コン
ピュータでは、処理装置はすべてほぼ同一である。つま
り、すべて、操作するための命令及びプロトコルの共通
セットまたはサブセットを使用し、一般的には同じアー
キテクチャを有する。代表的なアーキテクチャを図1に
示している。処理装置は、コンピュータを操作するため
にプログラム命令を実行する複数のレジスタ及び実行装
置を有するプロセッサ・コア22を含む。代表的な処理
装置はInternational Business Machines Corporation
のPowerPC(TM)プロセッサを含む。また処理装
置には、命令キャッシュ24及びデータ・キャッシュ2
6等の1つ以上のキャッシュを置くことができる。これ
らは高速メモリ装置を使用して実現される。キャッシュ
は、メモリ装置16から値をロードするという長いステ
ップを避けることによって処理を高速化するために、プ
ロセッサによって繰り返しアクセスされる値を一時的に
保存するため、広く用いられる。これらのキャッシュ
は、プロセッサ・コアと一体化した1つの集積チップ2
8上にパッケージ化されるときは、"オンボード"・キャ
ッシュと呼ばれる。キャッシュはそれぞれ、プロセッサ
・コアとキャッシュ・メモリとの間のデータの転送を管
理するキャッシュ・コントローラ(図示なし)に関連付
けられる。
【0004】処理装置には、キャッシュ30等のキャッ
シュを追加することができる。キャッシュ30はレベル
2(L2)キャッシュと呼ばれるが、これはオンボード
(レベル1)・キャッシュ24及び26をサポートする
からである。言い換えると、キャッシュ30はメモリ装
置16とオンボードキャッシュの仲介役になり、オンボ
ード・キャッシュよりもかなり多くの情報(命令及びデ
ータ)を格納できるが、それだけアクセス時間がかか
る。例えばキャッシュ30は、記憶容量が256または
512キロバイトのチップでよく、プロセッサは、総記
憶域64キロバイトのオンボード・キャッシュを有する
IBM PowerPC(TM)604シリーズ・プロセ
ッサでもよい。キャッシュ30はバス20に接続され、
メモリ装置16からプロセッサ・コア22への情報のロ
ードは、すべてキャッシュ30を経由する。図1は2レ
ベルのキャッシュ階層のみ示しているが、多くのレベル
(L3、L4等)の直列接続キャッシュを有するマルチ
レベルのキャッシュ階層も可能である。
【0005】対称型マルチプロセッサ(SMP)コンピ
ュータで重要なことは、コヒーレントなメモリ・システ
ム、つまり個々のメモリ位置への書込みをすべてのプロ
セッサについてある順序で直列化することである。例え
ば、メモリ内のある位置が、書込み操作のシーケンスに
より変更されて、1、2、3、4という値が取られると
する。キャッシュ・コヒーレントなシステムの場合、す
べてのプロセッサが、所与の位置への書込みを表示され
た順序で行うのを監視する。しかしながら、ある処理要
素がメモリ位置への書込みをミスする可能性はある。所
与の処理要素がメモリ位置を読取るとき、1、3、4と
いうシーケンスを検出し、値2への更新をミスする可能
性がある。これらの性質を実現したシステムは"コヒー
レント"と呼ばれる。コヒーレンシ・プロトコルは、実
質的にすべてキャッシュ・ブロックのサイズの粒度まで
しか動作しない。すなわちコヒーレンシ・プロトコルは
データの移動及びデータの書込み許可をキャッシュ・ブ
ロック単位で制御し、個々のメモリ位置について個別に
制御することはない。
【0006】当業者には知られいるキャッシュ・コヒー
レンシを実現するプロトコルや手法はいくつかある。コ
ヒーレンシを維持するこれらのすべてのメカニズムの核
心は、プロトコルによってただ1つのプロセッサが、所
与の時点で所与のメモリ位置(キャッシュ・ブロック)
への書込みを行う"許可"を得るという要件である。この
要件により、処理要素がメモリ位置への書込みを行おう
としたときに、処理要素は最初に他のすべての処理要素
に、メモリ位置への書込みの意図を通知し、書込みを行
うために他のすべての処理要素から許可を受けなければ
ならない。ここで主として問題になるのは、システムの
他のすべてのプロセッサが、書込みが生じる前に開始側
プロセッサから書込みの通知を受けなければならないと
いうことである。さらに所与の処理装置のL1キャッシ
ュにブロックが存在する場合、そのブロックは処理装置
のL2、L3のキャッシュにも存在する。この性質は包
含(inclusion)として知られ、当業者には周知のとお
りである。以降、包含の原理は、本発明に関係したキャ
ッシュにあてはまると仮定する。
【0007】システムでキャッシュ・コヒーレンシを実
現するため、プロセッサは共通の汎用相互接続部(すな
わちバス20)を通して通信する。プロセッサは相互接
続部を通してメッセージを受け渡し、メモリ位置を読取
るまたは書込む意図を示す。操作が相互接続部上にセッ
トされると、他のすべてのプロセッサがこの操作を"ス
ヌープ"(監視)し、それらのキャッシュの状態によっ
て、要求された操作を進めることができるかどうかを判
断し、またできる場合はその条件を判断する。バス・ト
ランザクションに対応し、メモリのコヒーレンシを維持
するために、スヌープ及びフォローアップの動作を要す
るバス・トランザクションはいくつかある。スヌープ操
作は、あるバス信号のアサートにより生成された有効な
スヌープ・リクエストの受信によってトリガされる。
【0008】この通信が必要なのは、キャッシュを有す
るシステムでは、メモリの所与のブロックの最も最近
(most recent)の有効なコピーが、システム・メモリ
装置16からシステム内のキャッシュに移動している可
能性があるからである。プロセッサ(例えば12a)
が、そのキャッシュ階層内に存在しないメモリ位置にア
クセスしようとした場合、そのメモリ位置の実際の(現
在の)値を含むブロックの正しいバージョンは、システ
ム・メモリ装置16内か、(上述したように)他の処理
装置(例えば処理装置12b)のキャッシュ内かいずれ
かにある可能性がある。正しいバージョンがシステムの
他のキャッシュにある場合は、システム・メモリではな
く、システム内のキャッシュから正しい値を取得する必
要がある。
【0009】例えば、プロセッサ12aがメモリ内のあ
る位置を読取ろうとしているとする。最初にそれ自体の
L1キャッシュ(24または26)をポーリングする。
L1キャッシュにブロックが存在しない場合、リクエス
トはL2キャッシュ(30)に転送される。L2キャッ
シュにブロックが存在しない場合は、リクエストはより
下位のレベルのキャッシュ、例えばL3キャッシュに転
送される。ブロックが下位レベル・キャッシュに存在し
ない場合、リクエストは汎用相互接続部(20)に置か
れ、サービスを待機する。操作が汎用相互接続部上にセ
ットされると、他の下位レベルのキャッシュはすべて操
作をスヌープし、ブロックがそれらのキャッシュに存在
するかどうか確認する。所与の処理装置が、ある処理装
置によって要求されたデータのブロックをそのL1キャ
ッシュに有し、そのデータが変更されている場合、包含
の原理により、L2キャッシュ及び任意の下位レベル・
キャッシュもブロックのコピーを有する(ただしプロセ
ッサのキャッシュ内のコピーは変更されているので、そ
れらのコピーは古くなっている)。従って、処理装置の
下位レベル・キャッシュ(L3等)は、読取り操作をス
ヌープするとき、要求されたブロックが上位レベル・キ
ャッシュに存在し、変更されていることを確認する。こ
れが起きるとき、メモリ位置の実際の値はメモリ階層の
トップのL1キャッシュにあり、開始側処理装置の読取
りリクエストに応えるためには取得しなければならない
ので、L3キャッシュはメッセージを汎用相互接続部に
セットすることにより、その操作を後でもう1度"再試
行"しなければならないことを処理装置に通知する。
【0010】開始側処理装置からのリクエストが再試行
されれば、L3キャッシュはプロセスを開始して、L1
キャッシュから変更されたデータを取得し、本発明には
特別には関係しない実施の詳細によるが、L3キャッシ
ュ、メイン・メモリ、または両方で利用できるようにす
る。上位レベル・キャッシュからブロックを取得するた
め、L3キャッシュはキャッシュ間接続を通して上位レ
ベル・キャッシュにメッセージを送り、ブロックを取得
することを要求する。L1キャッシュに届き、ブロック
は階層を下へ移動し、下位レベル(L3またはメイン・
メモリ)に届き、ここで開始側処理装置からのリクエス
トに応えることができるようになるまで、これらのメッ
セージは処理装置の階層を上へ伝播する。
【0011】開始側処理装置は結局、汎用相互接続部上
で読取りリクエストを再試行する。しかしながらこの時
点で、変更されたデータは処理装置のL1キャッシュか
ら取得され、開始側プロセッサからの読取りリクエスト
は満足される。ここに示したシナリオは一般的には"ス
ヌープ・プッシュ"と呼ばれる。読取りリクエストは汎
用相互接続部上でスヌープされ、これにより処理装置が
ブロックを階層の下に"プッシュ"し、開始側処理装置に
よって出された読取りリクエストを満足する。
【0012】ここで注目すべき重要なことは、プロセッ
サは、ブロックの読取りまたは書込みを行うときは、キ
ャッシュのコヒーレンシを維持するために、その意図を
システムの他の処理装置に通信しなければならないとい
うことである。これを達成するために、キャッシュ・コ
ヒーレンシ・プロトコルにより、キャッシュ階層の各レ
ベルの各ブロックに、ブロックの現在の"状態"を示すス
テータス・インジケータが関連付けられる。この状態情
報は、汎用相互接続部及びキャッシュ間接続上のメッセ
ージ・トラフィックを減らす、ある最適化をコヒーレン
シ・プロトコルで実現するために用いられる。このメカ
ニズムの1つの例として、処理装置は、読取りを行うと
きに、読取りが後で再試行されなければならないかどう
かを示すメッセージを受け取る。読取り操作が再試行さ
れない場合は、普通は、他の処理装置にもまだアクティ
ブなブロックのコピーがあるかどうか処理装置が確認で
きるようにする情報も、メッセージに含まれる(これ
は、他の下位レベル・キャッシュが再試行しない読取り
について"共用"または"非共用"の表示をそれら下位レベ
ル・キャッシュによって供給することによって実現され
る)。従って、処理装置は、システム内の他の任意のプ
ロセッサがブロックのコピーを有するかどうかを確認す
ることができる。他の処理装置がブロックのアクティブ
なコピーを有さない場合は、読取り側処理装置はブロッ
クの状態を"排他"とマークする。ブロックが排他とマー
クされた場合は、処理装置が、最初にシステム内の他の
処理装置と通信することなく、そのブロックを後で書込
むことは許可できる。なぜなら、他の処理装置はブロッ
クのコピーを有さないからである。従って、プロセッサ
が最初にこの意図を相互接続部に通信することなく位置
の読取りまたは書込みを行うことは可能であるが、これ
は、他のプロセッサがブロックに関心を持たないことが
コヒーレンシ・プロトコルによって保証された場合に限
られる。
【0013】上述のキャッシュ・コヒーレンシ方法
は、"MESI"と呼ばれる特定のプロトコルで実現され
る。これを図2に示す。このプロトコルのキャッシュ・
ブロックは、"M"(変更、Modified)、"E"(排他、Ex
clusive)、"S"(共用、Shared)、または"I"(無
効、Invalid)の4つの状態のいずれかになる。MES
Iプロトコルでは、各キャッシュ・エントリ(例えば3
2バイト・セクタ)が、4つの可能な状態の中からエン
トリの状態を示す2つの追加ビットを有する。状態は、
エントリの初期状態、及び要求側プロセッサによってシ
ークされるアクセスのタイプに応じて変化し得、要求側
プロセッサのキャッシュのエントリに特定の状態がセッ
トされる。例えば、あるセクタが変更状態のとき、アド
レスされたセクタは、変更されたセクタを有するキャッ
シュでのみ有効であり、変更されたデータはシステム・
メモリに書戻されていない。セクタが排他のとき、その
セクタは表示されたセクタにしか存在せず、システム・
メモリと一貫性を有する。セクタが共用なら、そのセク
タはそのキャッシュ、及び少なくとも他の1つのキャッ
シュ内で有効であり、共用されるセクタはすべてシステ
ム・メモリと矛盾がない。最後に、セクタが無効なと
き、これはアドレスされたセクタがキャッシュに存在し
ないことを示す。図2に示すように、セクタが変更、共
用、または無効の状態にある場合は、特定のバス・トラ
ンザクションに応じて、状態から状態へ移動することが
できる。排他状態のセクタは、他の任意の状態に移るこ
とができるが、最初に無効である場合は排他になること
しかできない。
【0014】キャッシュ・ブロックへのアクセスをさら
に改良することは、上述のキャッシュ・コヒーレンシ・
プロトコルを使用することによって可能である。"介入"
と呼ばれるこの改良法では、メモリ・ブロックに対して
制御権を有するキャッシュは、データを要求する他のキ
ャッシュに、そのブロックのデータを、直接提供するこ
とができる(読取り型操作(read-type operation)の
とき)。言い換えると、データをシステム・メモリに書
込み、次に要求側プロセッサにメモリから再び読戻させ
る必要性を回避する。介入は、状態が変更または排他で
あるブロックにデータを有するキャッシュによってのみ
実行できる。これら両方の状態では、データの有効なコ
ピーを有するキャッシュ・ブロックは1つしかないの
で、バス20を通して、最初にシステム・メモリに書込
む必要なくデータを供給することは簡単なことである。
従って、介入手順は、システム・メモリに書込み、及び
そこから読取るという長いプロセス(これは実際にバス
操作3回とメモリ操作2回を伴う)を避けることによっ
て、処理を高速化する。この手順により、待ち時間が改
良されるだけでなく、使用可能なバス帯域幅が増加す
る。
【0015】従来技術のプロトコルは、データが2つ以
上のキャッシュによって共用状態に保たれているときに
は介入に対応しないが、これは一般的には、どのキャッ
シュがデータを供給するか確認するのが難しいからであ
る。システムが共用応答をすべて集め、次にデータを供
給するキャッシュを(例えば任意に)選択する場合は、
共用キャッシュ状態での介入を行えるが、一般にこのア
プローチは、データをメモリから取得するより高速では
なく、利点はほとんどない。従って、共用状態でのデー
タの効率的介入を考慮したキャッシュ・コヒーレンシを
維持する方法を考案することが望ましい。
【0016】
【発明が解決しようとする課題】本発明の目的は、マル
チプロセッサ・コンピュータ・システムでキャッシュ・
コヒーレンシを維持するための改良された方法を提供す
ることである。
【0017】本発明の他の目的は、改良された介入応答
を考慮した方法を提供することである。
【0018】本発明の他の目的は、2つ以上のキャッシ
ュが関連データを共用(つまり有効)状態に保つとき
に、介入を追加処理として可能にする方法を提供するこ
とである。
【0019】
【課題を解決するための手段】前記の目的は、マルチプ
ロセッサ・コンピュータ・システムの処理装置にデータ
を供給する方法によって達成される。この方法は、一般
的には、それぞれがコンピュータ・システムの複数の処
理装置の1つに関連付けられた複数のキャッシュに、デ
ータ値をロードするステップ、どのキャッシュが、最も
最近(most recently)アクセスされたデータ値のコピ
ーを含むかの表示を供給するステップ、及びデータ値を
アクセスしようとする処理装置からの照会に対して表示
を転送することによって応答するステップを含む。デー
タ値を格納するブロックを有する少なくとも1つのキャ
ッシュ・ラインが各キャッシュにあり、表示を供給する
ステップは、データ値を含むブロックを有するキャッシ
ュ・ラインが"最近読取り"状態にあることを示す。デー
タ値を格納する複数の第1ビットが各キャッシュにあ
り、表示を供給するステップはさらに、最も最近(most
recently)アクセスされたデータ値のコピーを含むキ
ャッシュの複数の第2ビットに状態値を割当てるステッ
プを含む。データ値をアクセスしようとする処理装置は
表示の転送を検出し、最も最近(most recently)アク
セスされたデータのコピーを含むキャッシュからデータ
が供給される。最も最近(most recently)アクセスさ
れたデータのコピーを最初に持っていたキャッシュは、
データを供給した際に、その表示を変えて、そのコピー
がそこで共用されたことを示し、データ値をアクセスし
た処理装置はその後、最も最近(most recently)アク
セスされたデータ値のコピーを含むキャッシュを有する
と表示される。また、データ値をアクセスしようとする
処理装置からの照会により、処理装置がデータ値を書込
もうとしていることが示される場合は、最も最近(most
recently)アクセスされたデータ値のコピーを最初に
持っていたキャッシュが、現在はデータ値の無効なコピ
ーを有するというの表示が出される。上述のプロトコル
では、いくつかのキャッシュに共用されたデータ、つま
りこれらのキャッシュで有効なデータを、システム・メ
モリ(RAM)からデータを取得することなく、最も最
近(most recently)アクセスされたコピーを有するキ
ャッシュによって直接供給(介入)できる。このアプロ
ーチはコンピュータ・システムの処理速度を大幅に改良
する。
【0020】上述の、並びに本発明の更なる目的、機
構、及び利点が、以下の詳細な説明で明らかになろう。
【0021】
【発明の実施の形態】本発明は、図1の装置のようなマ
ルチプロセッサ装置でキャッシュ・コヒーレンシを維持
する方法を対象とするが、必ずしも従来型ではない、つ
まり図1には示していない新しいハードウェア・コンポ
ーネントを追加でき、または既存のコンポーネントのた
めの新規な相互接続アーキテクチャを有するコンピュー
タ・システムにも適用できる。従って、当業者には明ら
かなように、本発明は、図に示した一般化された装置に
限定されるものではない。
【0022】図3を参照する。本発明のキャッシュ・コ
ヒーレンシ・プロトコルの1実施例の状態図が示してあ
る。このプロトコルは、同じ4つの状態(変更、排他、
共用、無効)を含む点で、従来技術のMESIプロトコ
ル(図2)と似ているが、この他、他の場合は共用表示
を有する、最も最近(most recently)参照されたブロ
ックの表示を供給するため新しい"R"(Recent)状態を
含む。言い換えると2つ以上のキャッシュが有効なデー
タのコピーを有するとき、それらはデータに最も最近
(most recently)アクセスしたキャッシュを除いて、
すべて共用状態にあり、アクセスしたそのキャッシュは
「最近」状態にある。これで状態は合計5つになるの
で、エントリの状態を識別するためには、(従来技術の
ように2ビット・フィールドではなく)3ビット・フィ
ールドが各キャッシュ・エントリに必要である。
【0023】この新しいプロトコルはここでは"R−M
ESI"プロトコルと呼ぶ。このプロトコルでは新しい
コヒーレンシ応答、つまり共用介入の応答も与えられる
(後述)。従来技術のMESIプロトコルと同様、M−
E−S−Iの4つの状態は、エントリの初期状態、及び
要求側プロセッサによってシークされたアクセスのタイ
プをもとに変化し得る。これら4つの状態が変化する様
子は、一般的には従来技術のMESIプロトコルと同一
である。次に例外を示す。
【0024】表1に、"ミス"が生じる場合について、読
取り型操作のマスタ・キャッシュの状態遷移を示す。
【表1】
【0025】最近状態は、コヒーレンシ応答が変更(M
od)、共用(Shr)、または共用介入(ShrI)
の場合に、"読取りミス"・バス操作(表1の1行目)で
生じる。応答が"読取りミス"操作で変更であれば、変更
されたキャッシュは、データをメモリにも送るので「変
更」ではなくなる。"読取りミス"操作でコヒーレンシ応
答がない(Null)場合(表1の3行目)は、従来技
術のMESIプロトコルのように排他状態が生じる。"
RWITMミス"操作(RWITMは「変更予定読取
り:Read With Intent To Modify」の略)では、コヒー
レンシ応答がNull、Shr、またはShrI(表1
の2行目)の場合は排他状態が生じ、コヒーレンシ応答
がMod(表1の4行目)なら変更状態が生じる。RW
ITMの場合は、まだ実行準備中のデータまたは命令に
のみあてはまる。通常、1度実行が準備された命令は変
更されないからである。
【0026】表2に、読取り型操作(読取りヒット)に
ついて、スヌーパとして働くときに、バス・トランザク
ションがキャッシュに供給する影響の1つの例を示す。
【表2】
【0027】排他(Exclusive)または最近(Recent)
の開始状態(表2の1、2、及び4行目)については、
キャッシュは共用介入コヒーレンシ応答を転送する。こ
れはつまり、キャッシュがそのデータのコピーを、シス
テム・メモリからの関与なく、要求側プロセッサに介入
を通して直接供給することを意味する。データがこのよ
うに供給されるときは、次の状態は"読取りヒット"操作
で共用になるか(表2の1及び2行目)、"RWITM
ヒット"操作で無効になる(表2の4行目)。開始状態
が変更(表2の3及び5行目)の場合には、コヒーレン
シ応答は変更であり、それでも介入は生じる。バス操作
が"RWITM"だった場合、データはキャッシュからキ
ャッシュに転送されるだけであるが、バス操作が読取り
あった場合、データはキャッシュ及びメモリの両方に送
られる。
【0028】先に述べたように、表1及び表2に示して
いない状態と操作については、遷移とコヒーレンシ応答
は従来技術のMESIプロトコルに従って実行される
が、1つ資格がある。すなわちキャッシュ・エントリ
は、書込み操作の影響を受ける"R"状態になり得り、そ
のエントリは、共用エントリが書込み操作の影響を受け
るときと同様に変更状態への遷移を経る。R−MESI
プロトコルについては、さらに次の点を指摘できよう。
つまり、エントリは決して無効から共用に移ることはな
い(代わりに「最近」に移る)。エントリは決して排他
から最近に移ることはない(共用に移る)。エントリは
決して最近から排他に移ることはない(共用エントリが
排他に移行しないのと同じ)。そしてエントリは決して
変更から最近に移ることはない(共用に移る。そのとき
要求側プロセッサのキャッシュ内のエントリは最近に移
る)。
【0029】この新しいR−MESIプロトコルでは、
ブロックの所有権は、データを読取る最後のキャッシュ
に移行する。これにより最も最近(most recently)用
いられた状態にとどまり、従って、キャッシュ置き換え
機構のLRU(least recently used)法が採用された
場合に割当て解除される機会が少ないという利点が加わ
る。"R"キャッシュ状態にはまた、キャッシュされたI
/Oステータス位置を最も最近(most recently)読取
ったプロセッサ/キャッシュに割込む高性能入出力(I
/O)コントローラ等、他のアプリケーションに用いら
れるという利点もある。なぜなら、このプロセッサ/キ
ャッシュはI/Oデバイス・ドライバ・コードをキャッ
シュした可能性が最大で、従って、コードをそのキャッ
シュにフェッチする必要のある他のプロセッサよりも高
速にコードを実行できるからである。
【0030】共用されたデータ(つまり2つ以上のキャ
ッシュに有効に存在するデータ)に介入を供給すること
により、メモリ待ち時間が大きく改良される。R−ME
SIプロトコルのある評価では、業界標準のベンチマー
クによると従来技術のMESIプロトコルと比較したと
き、性能が5300TPMc(毎分トランザクション
数)から7500TPMcに向上した。一般的に、本発
明によればメモリ・コントローラが操作から解放され、
メモリ帯域幅に対する需要は減少する。
【0031】本発明が特定の実施例を参照して述べられ
たが、この説明は、制限を意味するものではない。当業
者には、本発明の説明の参照に際し、開示された実施例
の様々な変更が、本発明の代替実施例と同様に明らかに
なろう。従って、このような変更は、本発明の趣旨また
は範囲を逸脱することなく実施され得ることが考慮され
る。
【0032】まとめとして、本発明の構成に関して以下
の事項を開示する。
【0033】(1)マルチプロセッサ・コンピュータ・
システムの処理装置にデータを供給する方法であって、
それぞれが前記コンピュータ・システムの複数の処理装
置の1つに関連付けられた複数のキャッシュにデータ値
をロードするステップと、前記キャッシュのうちどのキ
ャッシュが最も最近アクセスされたデータ値のコピーを
含むかの表示を供給するステップと、前記データ値をア
クセスしようとする処理装置からの照会に対して前記表
示を転送することによって応答するステップと、を含
む、前記方法。 (2)前記キャッシュはそれぞれ、前記データ値を格納
するブロックを有する少なくとも1つのキャッシュ・ラ
インを有し、表示を供給する前記ステップは、前記デー
タ値を含むブロックを有するキャッシュ・ラインが、"
最近読取り"状態にあることを示す、前記(1)記載の
方法。 (3)前記データ値を格納する複数の第1ビットが各キ
ャッシュにあり、表示を供給する前記ステップは、最も
最近アクセスされたデータ値のコピーを含むキャッシュ
の複数の第2ビットに状態値を割当てるステップを含
む、前記(1)記載の方法。 (4)前記データ値をアクセスしようとする処理装置が
前記表示の転送を検出するステップを含む、前記(1)
記載の方法。 (5)最も最近アクセスされた前記データ値のコピーを
含むキャッシュを有する処理装置が、前記データ値をア
クセスしようとする処理装置に前記データ値を供給する
ステップを含む、前記(1)記載の方法。 (6)前記データ値にアクセスしようとする処理装置か
らの照会は、前記処理装置が前記データ値を読取ろうと
していることを示し、前記表示を変更して、前記データ
値をアクセスしようとする処理装置のキャッシュが、現
在は、最も最近アクセスされたデータ値のコピーを含む
キャッシュであることを示すステップを含む、前記
(1)記載の方法。 (7)前記データ値にアクセスしようとする処理装置か
らの照会は、前記処理装置が前記データ値を書込もうと
していることを示し、前記表示を変更して、最も最近ア
クセスされたデータ値のコピーを有していたキャッシュ
が現在は前記データ値の無効なコピーを有することを示
すステップを含む、前記(1)記載の方法。 (8)最も最近アクセスされた前記データ値のコピーを
含むキャッシュの前記データ値を変更するステップと、
前記データ値が変更されていることの新しい表示を供給
するステップと、を含む、前記(1)記載の方法。 (9)前記データ値を含む、最も最近アクセスされたデ
ータ値のコピーを含むキャッシュ以外の、任意のキャッ
シュに前記データ値の共用コピーがあることの追加表示
を供給するステップを含む、前記(2)記載の方法。 (10)最も最近アクセスされた前記データ値のコピー
を先に有していたキャッシュが、現在は前記データ値の
共用コピーを有することの追加表示を供給する、前記
(6)記載の方法。 (11)メモリ装置と、前記メモリ装置に接続されるバ
スと、前記バスに接続され、それぞれが前記メモリ装置
からのデータ値を格納するキャッシュを有し、さらに、
最も最近アクセスされたデータ値のコピーが、どのキャ
ッシュに含まれるかを表示する手段を各キャッシュが有
する複数の処理装置と、を含む、コンピュータ・システ
ム。 (12)前記キャッシュはそれぞれ、前記データ値を格
納する複数の第1ビットと、所与のキャッシュ・エント
リの状態を識別する複数の第2ビットとを有するキャッ
シュ・エントリを含み、前記状態は、最も最近アクセス
された前記データ値のコピーがどのキャッシュに含まれ
るかの前記表示を供給する、前記(11)記載のコンピ
ュータ・システム。 (13)最も最近アクセスされたデータ値のコピーを含
むキャッシュから前記データ値を読取ろうとする処理装
置に、前記データ値を供給する手段を含む、前記(1
1)記載のコンピュータ・システム。 (14)前記キャッシュはそれぞれ、前記データ値を読
取ろうとする処理装置からの照会に応答して、最も最近
アクセスされたデータ値のコピーを含むことの表示を変
更する手段を含む、前記(11)記載のコンピュータ・
システム。 (15)前記キャッシュはそれぞれ、前記データ値を変
更しようとする処理装置からの照会に応答して、前記デ
ータ値のコピーは無効であることを示す手段を含む、前
記(11)記載のコンピュータ・システム。 (16)前記キャッシュはそれぞれ、最近アクセスされ
たデータ値のコピーを有する場合は、前記データ値の共
用コピーを有することを示す手段を含む、前記(11)
記載のコンピュータ・システム。 (17)前記複数の第2ビットは、所与のキャッシュ・
エントリの状態を最も最近アクセスされたコピーとして
識別する他に、所与のキャッシュ・エントリを変更状
態、排他状態、共用状態、または無効状態にあると識別
するよう適合化される、前記(12)記載のコンピュー
タ・システム。 (18)前記キャッシュはそれぞれ、前記データ値を読
取ろうとする処理装置が、現在は最も最近アクセスされ
たデータ値のコピーを含むキャッシュを有することを示
す手段を含む、前記(14)記載のコンピュータ・シス
テム。
【図面の簡単な説明】
【図1】従来技術のマルチプロセッサ・コンピュータ・
システムのブロック図である。
【図2】従来技術のキャッシュ・コヒーレンシ・プロト
コル(MESI)を示す状態図である。
【図3】本発明のキャッシュ・コヒーレンシ・プロトコ
ルを示す状態図である。
【符号の説明】
10 コンピュータ・システム 12a、12b 処理装置 14 入出力(I/O)装置 16 メモリ装置 18 ファームウェア(ROS) 20 汎用相互接続部 22 プロセッサ・コア 24 命令キャッシュ 26 データ・キャッシュ 28 集積チップ 30 キャッシュ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ジョン・スティーブン・ドッドソン アメリカ合衆国78660、テキサス州フェラ ガービル、ベル・ロック・サークル 1205 (72)発明者 ジョン・マイケル・カイザー アメリカ合衆国78613、テキサス州シダ ー・パーク、カプリン・マウント 204 (72)発明者 ジェリー・ドン・リュイス アメリカ合衆国78681、テキサス州ラウン ド・ロック、アローヘッド・サークル 3409

Claims (18)

    【特許請求の範囲】
  1. 【請求項1】マルチプロセッサ・コンピュータ・システ
    ムの処理装置にデータを供給する方法であって、 それぞれが前記コンピュータ・システムの複数の処理装
    置の1つに関連付けられた複数のキャッシュにデータ値
    をロードするステップと、 前記キャッシュのうちどのキャッシュが最も最近アクセ
    スされたデータ値のコピーを含むかの表示を供給するス
    テップと、 前記データ値をアクセスしようとする処理装置からの照
    会に対して前記表示を転送することによって応答するス
    テップと、 を含む、前記方法。
  2. 【請求項2】前記キャッシュはそれぞれ、前記データ値
    を格納するブロックを有する少なくとも1つのキャッシ
    ュ・ラインを有し、表示を供給する前記ステップは、前
    記データ値を含むブロックを有するキャッシュ・ライン
    が、"最近読取り"状態にあることを示す、請求項1記載
    の方法。
  3. 【請求項3】前記データ値を格納する複数の第1ビット
    が各キャッシュにあり、 表示を供給する前記ステップは、最も最近アクセスされ
    たデータ値のコピーを含むキャッシュの複数の第2ビッ
    トに状態値を割当てるステップを含む、請求項1記載の
    方法。
  4. 【請求項4】前記データ値をアクセスしようとする処理
    装置が前記表示の転送を検出するステップを含む、請求
    項1記載の方法。
  5. 【請求項5】最も最近アクセスされた前記データ値のコ
    ピーを含むキャッシュを有する処理装置が、前記データ
    値をアクセスしようとする処理装置に前記データ値を供
    給するステップを含む、請求項1記載の方法。
  6. 【請求項6】前記データ値にアクセスしようとする処理
    装置からの照会は、前記処理装置が前記データ値を読取
    ろうとしていることを示し、 前記表示を変更して、前記データ値をアクセスしようと
    する処理装置のキャッシュが、現在は、最も最近アクセ
    スされたデータ値のコピーを含むキャッシュであること
    を示すステップを含む、 請求項1記載の方法。
  7. 【請求項7】前記データ値にアクセスしようとする処理
    装置からの照会は、前記処理装置が前記データ値を書込
    もうとしていることを示し、 前記表示を変更して、最も最近アクセスされたデータ値
    のコピーを有していたキャッシュが現在は前記データ値
    の無効なコピーを有することを示すステップを含む、 請求項1記載の方法。
  8. 【請求項8】最も最近アクセスされた前記データ値のコ
    ピーを含むキャッシュの前記データ値を変更するステッ
    プと、 前記データ値が変更されていることの新しい表示を供給
    するステップと、 を含む、請求項1記載の方法。
  9. 【請求項9】前記データ値を含む、最も最近アクセスさ
    れたデータ値のコピーを含むキャッシュ以外の、任意の
    キャッシュに前記データ値の共用コピーがあることの追
    加表示を供給するステップを含む、請求項2記載の方
    法。
  10. 【請求項10】最も最近アクセスされた前記データ値の
    コピーを先に有していたキャッシュが、現在は前記デー
    タ値の共用コピーを有することの追加表示を供給する、
    請求項6記載の方法。
  11. 【請求項11】メモリ装置と、 前記メモリ装置に接続されるバスと、 前記バスに接続され、それぞれが前記メモリ装置からの
    データ値を格納するキャッシュを有し、さらに、最も最
    近アクセスされたデータ値のコピーが、どのキャッシュ
    に含まれるかを表示する手段を各キャッシュが有する複
    数の処理装置と、 を含む、コンピュータ・システム。
  12. 【請求項12】前記キャッシュはそれぞれ、前記データ
    値を格納する複数の第1ビットと、所与のキャッシュ・
    エントリの状態を識別する複数の第2ビットとを有する
    キャッシュ・エントリを含み、前記状態は、最も最近ア
    クセスされた前記データ値のコピーがどのキャッシュに
    含まれるかの前記表示を供給する、請求項11記載のコ
    ンピュータ・システム。
  13. 【請求項13】最も最近アクセスされたデータ値のコピ
    ーを含むキャッシュから前記データ値を読取ろうとする
    処理装置に、前記データ値を供給する手段を含む、請求
    項11記載のコンピュータ・システム。
  14. 【請求項14】前記キャッシュはそれぞれ、前記データ
    値を読取ろうとする処理装置からの照会に応答して、最
    も最近アクセスされたデータ値のコピーを含むことの表
    示を変更する手段を含む、請求項11記載のコンピュー
    タ・システム。
  15. 【請求項15】前記キャッシュはそれぞれ、前記データ
    値を変更しようとする処理装置からの照会に応答して、
    前記データ値のコピーは無効であることを示す手段を含
    む、請求項11記載のコンピュータ・システム。
  16. 【請求項16】前記キャッシュはそれぞれ、最近アクセ
    スされたデータ値のコピーを有する場合は、前記データ
    値の共用コピーを有することを示す手段を含む、請求項
    11記載のコンピュータ・システム。
  17. 【請求項17】前記複数の第2ビットは、所与のキャッ
    シュ・エントリの状態を最も最近アクセスされたコピー
    として識別する他に、所与のキャッシュ・エントリを変
    更状態、排他状態、共用状態、または無効状態にあると
    識別するよう適合化される、請求項12記載のコンピュ
    ータ・システム。
  18. 【請求項18】前記キャッシュはそれぞれ、前記データ
    値を読取ろうとする処理装置が、現在は最も最近アクセ
    スされたデータ値のコピーを含むキャッシュを有するこ
    とを示す手段を含む、請求項14記載のコンピュータ・
    システム。
JP09183998A 1997-04-14 1998-04-03 データ供給方法及びコンピュータ・システム Expired - Fee Related JP3888769B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US83955797A 1997-04-14 1997-04-14
US08/839557 1997-04-14

Publications (2)

Publication Number Publication Date
JPH10333985A true JPH10333985A (ja) 1998-12-18
JP3888769B2 JP3888769B2 (ja) 2007-03-07

Family

ID=25280056

Family Applications (1)

Application Number Title Priority Date Filing Date
JP09183998A Expired - Fee Related JP3888769B2 (ja) 1997-04-14 1998-04-03 データ供給方法及びコンピュータ・システム

Country Status (2)

Country Link
US (1) US6018791A (ja)
JP (1) JP3888769B2 (ja)

Families Citing this family (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9092595B2 (en) 1997-10-08 2015-07-28 Pact Xpp Technologies Ag Multiprocessor having associated RAM units
US6286081B1 (en) * 1998-05-19 2001-09-04 Advanced Micro Devices, Inc. Mechanism for ensuring data coherency during sequential readings of portions of data that changes with time
US6240490B1 (en) * 1998-07-20 2001-05-29 International Business Machines Corporation Comprehensive multilevel cache preloading mechanism in a multiprocessing simulation environment
US6324622B1 (en) * 1998-08-24 2001-11-27 International Business Machines Corporation 6XX bus with exclusive intervention
US6370621B1 (en) 1998-12-21 2002-04-09 Advanced Micro Devices, Inc. Memory cancel response optionally cancelling memory controller's providing of data in response to a read operation
US6393529B1 (en) 1998-12-21 2002-05-21 Advanced Micro Devices, Inc. Conversation of distributed memory bandwidth in multiprocessor system with cache coherency by transmitting cancel subsequent to victim write
US6631401B1 (en) 1998-12-21 2003-10-07 Advanced Micro Devices, Inc. Flexible probe/probe response routing for maintaining coherency
US6490661B1 (en) 1998-12-21 2002-12-03 Advanced Micro Devices, Inc. Maintaining cache coherency during a memory read operation in a multiprocessing computer system
US6385694B1 (en) 1999-06-25 2002-05-07 International Business Machines Corporation High performance load instruction management via system bus with explicit register load and/or cache reload protocols
US6446166B1 (en) 1999-06-25 2002-09-03 International Business Machines Corporation Method for upper level cache victim selection management by a lower level cache
US6463507B1 (en) * 1999-06-25 2002-10-08 International Business Machines Corporation Layered local cache with lower level cache updating upper and lower level cache directories
US6405285B1 (en) 1999-06-25 2002-06-11 International Business Machines Corporation Layered local cache mechanism with split register load bus and cache load bus
US6434667B1 (en) 1999-06-25 2002-08-13 International Business Machines Corporation Layered local cache with imprecise reload mechanism
US6418513B1 (en) 1999-06-25 2002-07-09 International Business Machines Corporation Queue-less and state-less layered local data cache mechanism
US6397300B1 (en) 1999-06-25 2002-05-28 International Business Machines Corporation High performance store instruction management via imprecise local cache update mechanism
US6502171B1 (en) * 1999-08-04 2002-12-31 International Business Machines Corporation Multiprocessor system bus with combined snoop responses explicitly informing snoopers to scarf data
US6343344B1 (en) 1999-08-04 2002-01-29 International Business Machines Corporation System bus directory snooping mechanism for read/castout (RCO) address transaction
US6321305B1 (en) 1999-08-04 2001-11-20 International Business Machines Corporation Multiprocessor system bus with combined snoop responses explicitly cancelling master allocation of read data
US6324617B1 (en) 1999-08-04 2001-11-27 International Business Machines Corporation Method and system for communicating tags of data access target and castout victim in a single data transfer
US6338124B1 (en) 1999-08-04 2002-01-08 International Business Machines Corporation Multiprocessor system bus with system controller explicitly updating snooper LRU information
US6353875B1 (en) 1999-08-04 2002-03-05 International Business Machines Corporation Upgrading of snooper cache state mechanism for system bus with read/castout (RCO) address transactions
US6349367B1 (en) 1999-08-04 2002-02-19 International Business Machines Corporation Method and system for communication in which a castout operation is cancelled in response to snoop responses
US6343347B1 (en) 1999-08-04 2002-01-29 International Business Machines Corporation Multiprocessor system bus with cache state and LRU snoop responses for read/castout (RCO) address transaction
US6349369B1 (en) * 1999-11-09 2002-02-19 International Business Machines Corporation Protocol for transferring modified-unsolicited state during data intervention
US6345343B1 (en) * 1999-11-09 2002-02-05 International Business Machines Corporation Multiprocessor system bus protocol with command and snoop responses for modified-unsolicited cache state
US6345342B1 (en) * 1999-11-09 2002-02-05 International Business Machines Corporation Cache coherency protocol employing a read operation including a programmable flag to indicate deallocation of an intervened cache line
US6321306B1 (en) * 1999-11-09 2001-11-20 International Business Machines Corporation High performance multiprocessor system with modified-unsolicited cache state
US6345344B1 (en) * 1999-11-09 2002-02-05 International Business Machines Corporation Cache allocation mechanism for modified-unsolicited cache state that modifies victimization priority bits
US6374333B1 (en) * 1999-11-09 2002-04-16 International Business Machines Corporation Cache coherency protocol in which a load instruction hint bit is employed to indicate deallocation of a modified cache line supplied by intervention
US6865645B1 (en) 2000-10-02 2005-03-08 International Business Machines Corporation Program store compare handling between instruction and operand caches
FR2832859B1 (fr) * 2001-11-28 2004-01-09 Commissariat Energie Atomique Generateur electrochimique au lithium comprenant au moins une electrode bipolaire avec substrats conducteurs en aluminium ou alliage d'aluminium
GB2389207B (en) * 2002-04-09 2004-05-12 Via Tech Inc Remote node accessing local memory by using distributed shared memory
CN1152330C (zh) * 2002-04-09 2004-06-02 威盛电子股份有限公司 远程节点读取本地内存维护方法及其应用装置
US7281055B2 (en) * 2002-05-28 2007-10-09 Newisys, Inc. Routing mechanisms in systems having multiple multi-processor clusters
US7103636B2 (en) * 2002-05-28 2006-09-05 Newisys, Inc. Methods and apparatus for speculative probing of a remote cluster
US7296121B2 (en) * 2002-11-04 2007-11-13 Newisys, Inc. Reducing probe traffic in multiprocessor systems
US7346744B1 (en) 2002-11-04 2008-03-18 Newisys, Inc. Methods and apparatus for maintaining remote cluster state information
US7003633B2 (en) * 2002-11-04 2006-02-21 Newisys, Inc. Methods and apparatus for managing probe requests
US7577755B2 (en) * 2002-11-19 2009-08-18 Newisys, Inc. Methods and apparatus for distributing system management signals
US6988173B2 (en) 2003-05-12 2006-01-17 International Business Machines Corporation Bus protocol for a switchless distributed shared memory computer system
US7085898B2 (en) * 2003-05-12 2006-08-01 International Business Machines Corporation Coherency management for a “switchless” distributed shared memory computer system
US7334089B2 (en) * 2003-05-20 2008-02-19 Newisys, Inc. Methods and apparatus for providing cache state information
US7386626B2 (en) * 2003-06-23 2008-06-10 Newisys, Inc. Bandwidth, framing and error detection in communications between multi-processor clusters of multi-cluster computer systems
US7337279B2 (en) * 2003-06-27 2008-02-26 Newisys, Inc. Methods and apparatus for sending targeted probes
US7395347B2 (en) * 2003-08-05 2008-07-01 Newisys, Inc, Communication between and within multi-processor clusters of multi-cluster computer systems
WO2005072307A2 (en) * 2004-01-22 2005-08-11 University Of Washington Wavescalar architecture having a wave order memory
US7469267B2 (en) * 2004-06-28 2008-12-23 Qlogic, Corporation Method and system for host device event synchronization
US7543115B1 (en) * 2006-01-11 2009-06-02 Intel Corporation Two-hop source snoop based cache coherence protocol
US7512741B1 (en) * 2006-01-11 2009-03-31 Intel Corporation Two-hop source snoop based messaging protocol
CN103365656B (zh) * 2013-06-28 2016-10-19 华为技术有限公司 保证缓存一致性的方法和终端
US9646012B1 (en) * 2014-03-06 2017-05-09 Veritas Technologies Llc Caching temporary data in solid state storage devices
US10747298B2 (en) 2017-11-29 2020-08-18 Advanced Micro Devices, Inc. Dynamic interrupt rate control in computing system
US10503648B2 (en) 2017-12-12 2019-12-10 Advanced Micro Devices, Inc. Cache to cache data transfer acceleration techniques
US11210246B2 (en) 2018-08-24 2021-12-28 Advanced Micro Devices, Inc. Probe interrupt delivery

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4141067A (en) * 1977-06-13 1979-02-20 General Automation Multiprocessor system with cache memory
US4695951A (en) * 1983-07-07 1987-09-22 Honeywell Bull Inc. Computer hierarchy control
US5317716A (en) * 1988-08-16 1994-05-31 International Business Machines Corporation Multiple caches using state information indicating if cache line was previously modified and type of access rights granted to assign access rights to cache line
US5832534A (en) * 1994-01-04 1998-11-03 Intel Corporation Method and apparatus for maintaining cache coherency using a single controller for multiple cache memories
US5671391A (en) * 1994-01-10 1997-09-23 Ncr Corporation Coherent copyback protocol for multi-level cache memory systems
KR960009659B1 (ko) * 1994-04-11 1996-07-23 김광호 멀티프로세서 시스템의 스누프회로
EP0707269A1 (en) * 1994-10-11 1996-04-17 International Business Machines Corporation Cache coherence network for a multiprocessor data processing system
US5845327A (en) * 1995-05-03 1998-12-01 Apple Computer, Inc. Cache coherency where multiple processors may access the same data over independent access paths

Also Published As

Publication number Publication date
JP3888769B2 (ja) 2007-03-07
US6018791A (en) 2000-01-25

Similar Documents

Publication Publication Date Title
JP3888769B2 (ja) データ供給方法及びコンピュータ・システム
KR100274771B1 (ko) Smp 버스의 공유 상태에서의 캐시 라인들의 공유 개입 방법
JP2982868B2 (ja) メモリ待ち時間を短縮する方法およびコンピュータ・システム
KR100293136B1 (ko) Smp버스의최근판독상태에서의캐시라인들의공유개입방법
US6571322B2 (en) Multiprocessor computer system with sectored cache line mechanism for cache intervention
JP3007872B2 (ja) マルチプロセッサ・データ処理システム内でキャッシュ・コヒーレンシを維持するキャッシュ・コヒーレンシ・プロトコルを提供する方法及び装置
US5652859A (en) Method and apparatus for handling snoops in multiprocessor caches having internal buffer queues
KR100318789B1 (ko) 멀티프로세서 데이타 처리 시스템에서의 캐쉬를 관리하는시스템과 방법
US6021468A (en) Cache coherency protocol with efficient write-through aliasing
US5963974A (en) Cache intervention from a cache line exclusively holding an unmodified value
US5325504A (en) Method and apparatus for incorporating cache line replacement and cache write policy information into tag directories in a cache system
US6345342B1 (en) Cache coherency protocol employing a read operation including a programmable flag to indicate deallocation of an intervened cache line
JP3714617B2 (ja) キャッシュ階層で首尾一貫性を維持する方法、コンピュータ・システム、及び処理ユニット
US6321306B1 (en) High performance multiprocessor system with modified-unsolicited cache state
US5943685A (en) Method of shared intervention via a single data provider among shared caches for SMP bus
JPH11328015A (ja) 割振り解除方法およびデ―タ処理システム
US5996049A (en) Cache-coherency protocol with recently read state for data and instructions
US6336169B1 (en) Background kill system bus transaction to optimize coherency transactions on a multiprocessor system bus
US7464227B2 (en) Method and apparatus for supporting opportunistic sharing in coherent multiprocessors
EP0976047B1 (en) Read operations in multiprocessor computer system
US6658536B1 (en) Cache-coherency protocol with recently read state for extending cache horizontally
US6374333B1 (en) Cache coherency protocol in which a load instruction hint bit is employed to indicate deallocation of a modified cache line supplied by intervention
US6484241B2 (en) Multiprocessor computer system with sectored cache line system bus protocol mechanism
US6553462B2 (en) Multiprocessor computer system with sectored cache line mechanism for load and store operations
US6345343B1 (en) Multiprocessor system bus protocol with command and snoop responses for modified-unsolicited cache state

Legal Events

Date Code Title Description
A912 Removal of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20040604

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20040615

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20060306

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061101

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20061101

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20061127

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20061127

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20061128

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20091208

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20101208

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees