JPH10289155A - Smpバスの共用状態でのキャッシュ・ラインの共用介入方法及びシステム - Google Patents

Smpバスの共用状態でのキャッシュ・ラインの共用介入方法及びシステム

Info

Publication number
JPH10289155A
JPH10289155A JP10078708A JP7870898A JPH10289155A JP H10289155 A JPH10289155 A JP H10289155A JP 10078708 A JP10078708 A JP 10078708A JP 7870898 A JP7870898 A JP 7870898A JP H10289155 A JPH10289155 A JP H10289155A
Authority
JP
Japan
Prior art keywords
cache
value
response
memory device
caches
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.)
Pending
Application number
JP10078708A
Other languages
English (en)
Inventor
Kumer Arimiri Ravi
ラヴィ・カマー・アライミリ
Stephen Doddson John
ジョン・スティーブン・ドッドソン
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 JPH10289155A publication Critical patent/JPH10289155A/ja
Pending 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Multi Processors (AREA)

Abstract

(57)【要約】 【課題】 マルチプロセッサ・コンピュータ・システム
での読取り型操作に伴うメモリ待ち時間を改良する方法
を提供する。 【解決手段】 システム・メモリから少なくとも2つの
キャッシュに値(データまたは命令)がロードされた
後、キャッシュは、値の未変更共用コピーを含むとマー
クされ、要求側処理装置が値を読取ろうとしていること
を示すメッセージを発行したとき、キャッシュのうち、
所与の1つが値を供給できることを示す応答を、所与の
キャッシュが転送する応答は、要求側処理装置に接続さ
れた相互接続部からメッセージをスヌープするキャッシ
ュに応答して転送される。応答はシステム・ロジックに
よって検出され、システム・ロジックから要求側処理装
置に転送される。次にキャッシュは、要求側処理装置に
接続された相互接続部に値を供給する。システム・メモ
リはメッセージを検出し、通常は値を供給するが、代わ
りにキャッシュによって値を供給することが、応答によ
りメモリ装置に通知される。

Description

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

Claims (18)

    【特許請求の範囲】
  1. 【請求項1】それぞれにキャッシュが関連付けられた複
    数の処理装置を含むマルチプロセッサ・コンピュータ・
    システムの要求側処理装置によって発行された読取り型
    操作に関連付けられたメモリ待ち時間を改良する方法で
    あって、 メモリ装置のアドレスから、少なくとも第1及び第2の
    キャッシュに値をロードするステップと、 前記第1及び第2のキャッシュを、前記値の未変更共用
    コピーを含むとマークするステップと、 要求側処理装置が前記メモリ装置のアドレスから値を読
    取ろうとしていることを示すメッセージを、前記要求側
    処理装置から発行するステップと、 前記第1及び第2のキャッシュのうち所与の1つから、
    前記所与のキャッシュが値を供給できることを示す応答
    を転送するステップと、 を含む、方法。
  2. 【請求項2】前記応答はシステム・ロジックによって検
    出され、さらに、前記システム・ロジックから前記要求
    側処理装置に前記応答を転送するステップを含む、請求
    項1記載の方法。
  3. 【請求項3】前記所与のキャッシュは前記要求側処理装
    置に接続された相互接続部に前記値を供給するステップ
    を含む、請求項1記載の方法。
  4. 【請求項4】前記所与のキャッシュは前記第1及び第2
    のキャッシュから任意に選択される、請求項1記載の方
    法。
  5. 【請求項5】前記応答は、前記所与のキャッシュが前記
    要求側処理装置に接続された相互接続部から前記メッセ
    ージをスヌープするステップに応答して転送される、請
    求項1記載の方法。
  6. 【請求項6】前記メッセージにリクエスト識別子のタグ
    を付けるステップを含む、請求項1記載の方法。
  7. 【請求項7】前記メモリ装置は前記メッセージを検出
    し、 前記応答は前記値が前記所与のキャッシュによって供給
    されることを前記メモリ装置に通知する、 請求項1記載の方法。
  8. 【請求項8】前記所与のキャッシュの他に、少なくとも
    もう1つのキャッシュが別の応答を転送し、 前記所与のキャッシュからの応答に第1優先度値が関連
    付けられ、 前記別の応答に、前記第1優先度値より優先度が低い第
    2優先度値が関連付けられる、 請求項1記載の方法。
  9. 【請求項9】前記所与のキャッシュが、前記リクエスト
    識別子のタグが付けられた応答として、前記要求側処理
    装置に接続された相互接続部へ、前記値を供給するステ
    ップを含む、請求項6記載の方法。
  10. 【請求項10】メモリ装置と、 前記メモリ装置に接続された相互接続部と、 前記相互接続部に接続され、それぞれが前記メモリ装置
    からの値を格納するキャッシュを有し、前記キャッシュ
    のうち所与の1つは、前記メモリ装置からロードされた
    値の未変更共用コピーを、前記所与のキャッシュがいつ
    含むかを示す手段を有し、前記値は前記キャッシュのう
    ち少なくとももう1つのキャッシュに未変更共用コピー
    として含まれている、複数の処理装置と、 前記メモリ装置からロードされた前記値を前記値の読取
    りを要求する処理装置に、前記所与のキャッシュが供給
    できることを示す応答を前記所与のキャッシュから転送
    する手段と、 を含む、コンピュータ・システム。
  11. 【請求項11】前記相互接続部に接続され、前記応答を
    検出し、前記要求側処理装置に前記応答を転送する手段
    を有するシステム制御点装置を含む、請求項10記載の
    コンピュータ・システム。
  12. 【請求項12】前記所与のキャッシュから前記要求側処
    理装置に前記値を供給する手段を含む、請求項10記載
    のコンピュータ・システム。
  13. 【請求項13】前記値の未変更共用コピーを含むキャッ
    シュから、前記所与のキャッシュを任意に選択する手段
    を含む、請求項10記載のコンピュータ・システム。
  14. 【請求項14】前記キャッシュはそれぞれ前記相互接続
    部で前記要求側処理装置からのメッセージをスヌープす
    る手段を含む、請求項10記載のコンピュータ・システ
    ム。
  15. 【請求項15】前記応答に関連付けられた優先度を確認
    する手段を含む、請求項10記載のコンピュータ・シス
    テム。
  16. 【請求項16】前記メッセージにリクエスト識別子のタ
    グを付ける手段を含む、請求項14記載のコンピュータ
    ・システム。
  17. 【請求項17】前記メモリ装置は前記メッセージを検出
    し、さらに、前記所与のキャッシュによって前記値が供
    給されることを前記メモリ装置に通知する手段を含む、
    請求項14記載のコンピュータ・システム。
  18. 【請求項18】前記リクエスト識別子、及び前記値は前
    記メモリ装置からではなくキャッシュから供給されると
    の追加信号とのタグが付けられた応答として前記値を供
    給する手段を含む、請求項16記載のコンピュータ・シ
    ステム。
JP10078708A 1997-04-14 1998-03-26 Smpバスの共用状態でのキャッシュ・ラインの共用介入方法及びシステム Pending JPH10289155A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/837516 1997-04-14
US08/837,516 US5940856A (en) 1997-04-14 1997-04-14 Cache intervention from only one of many cache lines sharing an unmodified value

Publications (1)

Publication Number Publication Date
JPH10289155A true JPH10289155A (ja) 1998-10-27

Family

ID=25274682

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10078708A Pending JPH10289155A (ja) 1997-04-14 1998-03-26 Smpバスの共用状態でのキャッシュ・ラインの共用介入方法及びシステム

Country Status (4)

Country Link
US (1) US5940856A (ja)
JP (1) JPH10289155A (ja)
KR (1) KR100274771B1 (ja)
TW (1) TW385395B (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009064471A (ja) * 2002-12-19 2009-03-26 Intel Corp マルチプロセッサ・システムにおけるキャッシュ・コヒーレンスにおいて用いるフォワード状態
US8051251B2 (en) 2006-02-24 2011-11-01 Fujitsu Limited Method and apparatus for setting status of cache memory
JP2012181863A (ja) * 2004-10-21 2012-09-20 Microsoft Corp システムパフォーマンスを改善するための外部メモリデバイスの使用
US8914557B2 (en) 2005-12-16 2014-12-16 Microsoft Corporation Optimizing write and wear performance for a memory
US9032151B2 (en) 2008-09-15 2015-05-12 Microsoft Technology Licensing, Llc Method and system for ensuring reliability of cache data and metadata subsequent to a reboot
US9361183B2 (en) 2008-09-19 2016-06-07 Microsoft Technology Licensing, Llc Aggregation of write traffic to a data store
US10216637B2 (en) 2004-05-03 2019-02-26 Microsoft Technology Licensing, Llc Non-volatile memory cache performance improvement

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6418537B1 (en) 1997-12-07 2002-07-09 Conexant Systems, Inc. Accurate timing calibration for each of multiple high-speed clocked receivers using a single DLL
US6292705B1 (en) 1998-09-29 2001-09-18 Conexant Systems, Inc. Method and apparatus for address transfers, system serialization, and centralized cache and transaction control, in a symetric multiprocessor system
US6633945B1 (en) 1997-12-07 2003-10-14 Conexant Systems, Inc. Fully connected cache coherent multiprocessing systems
US6065077A (en) * 1997-12-07 2000-05-16 Hotrail, Inc. Apparatus and method for a cache coherent shared memory multiprocessing system
US6516442B1 (en) 1997-12-07 2003-02-04 Conexant Systems, Inc. Channel interface and protocols for cache coherency in a scalable symmetric multiprocessor system
US6446220B1 (en) 1998-08-04 2002-09-03 International Business Machines Corporation Updating data and parity data with and without read caches
US6446237B1 (en) * 1998-08-04 2002-09-03 International Business Machines Corporation Updating and reading data and parity blocks in a shared disk system
US6108764A (en) * 1998-12-17 2000-08-22 International Business Machines Corporation Non-uniform memory access (NUMA) data processing system with multiple caches concurrently holding data in a recent state from which data can be sourced by shared intervention
US6115804A (en) * 1999-02-10 2000-09-05 International Business Machines Corporation Non-uniform memory access (NUMA) data processing system that permits multiple caches to concurrently hold data in a recent state from which data can be sourced by shared intervention
US6192452B1 (en) * 1999-02-26 2001-02-20 International Business Machines Corporation Method and system for avoiding data loss due to cancelled transactions within a non-uniform memory access system
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
US6434667B1 (en) 1999-06-25 2002-08-13 International Business Machines Corporation Layered local cache with imprecise reload mechanism
US6397300B1 (en) 1999-06-25 2002-05-28 International Business Machines Corporation High performance store instruction management via imprecise local cache update mechanism
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
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
US6418513B1 (en) 1999-06-25 2002-07-09 International Business Machines Corporation Queue-less and state-less layered local data cache mechanism
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
US6469988B1 (en) 1999-07-08 2002-10-22 Conexant Systems, Inc. Low-level circuit implementation of signal flow graphs for real-time signal processing of high-speed digital signals
US6874049B1 (en) 2001-02-02 2005-03-29 Cradle Technologies, Inc. Semaphores with interrupt mechanism
US6738837B1 (en) 2001-02-02 2004-05-18 Cradle Technologies, Inc. Digital system with split transaction memory access
EP1298506A1 (de) * 2001-09-27 2003-04-02 Siemens Aktiengesellschaft Dynamischer Zugriff auf Automatisierungsressourcen
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
US6839816B2 (en) * 2002-02-26 2005-01-04 International Business Machines Corporation Shared cache line update mechanism
US6976132B2 (en) * 2003-03-28 2005-12-13 International Business Machines Corporation Reducing latency of a snoop tenure
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
US8195890B1 (en) * 2006-08-22 2012-06-05 Sawyer Law Group, P.C. Method for maintaining cache coherence using a distributed directory with event driven updates
JP5273045B2 (ja) * 2007-06-20 2013-08-28 富士通株式会社 バリア同期方法、装置、及びプロセッサ
US9069684B2 (en) * 2012-07-16 2015-06-30 Nvidia Corporation System, method, and computer program product for invalidatng cache lines

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US5297269A (en) * 1990-04-26 1994-03-22 Digital Equipment Company Cache coherency protocol for multi processor computer system
US5210845A (en) * 1990-11-28 1993-05-11 Intel Corporation Controller for two-way set associative cache
JPH04353947A (ja) * 1991-02-13 1992-12-08 Hewlett Packard Co <Hp> メモリページ特性タグ付けシステム
US5319766A (en) * 1992-04-24 1994-06-07 Digital Equipment Corporation Duplicate tag store for a processor having primary and backup cache memories in a multiprocessor computer system
US5555382A (en) * 1992-04-24 1996-09-10 Digital Equipment Corporation Intelligent snoopy bus arbiter
US5553266A (en) * 1992-04-24 1996-09-03 Digital Equipment Corporation Update vs. invalidate policy for a snoopy bus protocol
US5528764A (en) * 1992-12-24 1996-06-18 Ncr Corporation Bus system with cache snooping signals having a turnaround time between agents driving the bus for keeping the bus from floating for an extended period
US5671391A (en) * 1994-01-10 1997-09-23 Ncr Corporation Coherent copyback protocol for multi-level cache memory systems
US5559987A (en) * 1994-06-30 1996-09-24 Digital Equipment Corporation Method and apparatus for updating a duplicate tag status in a snoop bus protocol based computer system
US5713004A (en) * 1995-05-18 1998-01-27 Data General Corporation Cache control for use in a multiprocessor to prevent data from ping-ponging between caches

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013058225A (ja) * 2002-12-19 2013-03-28 Intel Corp マルチプロセッサ・システムにおけるキャッシュ・コヒーレンスにおいて用いるフォワード状態
JP2009064471A (ja) * 2002-12-19 2009-03-26 Intel Corp マルチプロセッサ・システムにおけるキャッシュ・コヒーレンスにおいて用いるフォワード状態
US10216637B2 (en) 2004-05-03 2019-02-26 Microsoft Technology Licensing, Llc Non-volatile memory cache performance improvement
JP2012181863A (ja) * 2004-10-21 2012-09-20 Microsoft Corp システムパフォーマンスを改善するための外部メモリデバイスの使用
US8909861B2 (en) 2004-10-21 2014-12-09 Microsoft Corporation Using external memory devices to improve system performance
US9317209B2 (en) 2004-10-21 2016-04-19 Microsoft Technology Licensing, Llc Using external memory devices to improve system performance
US9690496B2 (en) 2004-10-21 2017-06-27 Microsoft Technology Licensing, Llc Using external memory devices to improve system performance
US9529716B2 (en) 2005-12-16 2016-12-27 Microsoft Technology Licensing, Llc Optimizing write and wear performance for a memory
US8914557B2 (en) 2005-12-16 2014-12-16 Microsoft Corporation Optimizing write and wear performance for a memory
US8051251B2 (en) 2006-02-24 2011-11-01 Fujitsu Limited Method and apparatus for setting status of cache memory
US9032151B2 (en) 2008-09-15 2015-05-12 Microsoft Technology Licensing, Llc Method and system for ensuring reliability of cache data and metadata subsequent to a reboot
US10387313B2 (en) 2008-09-15 2019-08-20 Microsoft Technology Licensing, Llc Method and system for ensuring reliability of cache data and metadata subsequent to a reboot
US9448890B2 (en) 2008-09-19 2016-09-20 Microsoft Technology Licensing, Llc Aggregation of write traffic to a data store
US9361183B2 (en) 2008-09-19 2016-06-07 Microsoft Technology Licensing, Llc Aggregation of write traffic to a data store
US10509730B2 (en) 2008-09-19 2019-12-17 Microsoft Technology Licensing, Llc Aggregation of write traffic to a data store

Also Published As

Publication number Publication date
KR19980079662A (ko) 1998-11-25
KR100274771B1 (ko) 2000-12-15
TW385395B (en) 2000-03-21
US5940856A (en) 1999-08-17

Similar Documents

Publication Publication Date Title
JP2982868B2 (ja) メモリ待ち時間を短縮する方法およびコンピュータ・システム
JPH10289155A (ja) Smpバスの共用状態でのキャッシュ・ラインの共用介入方法及びシステム
JPH10289156A (ja) Smpバスの最近読取り状態でのキャッシュ・ラインの共用介入方法及びシステム
JPH10289154A (ja) Smpバスの排他状態でのキャッシュ・ラインの共用を行う方法及び装置
JP3888769B2 (ja) データ供給方法及びコンピュータ・システム
US6571322B2 (en) Multiprocessor computer system with sectored cache line mechanism for cache intervention
JP3007872B2 (ja) マルチプロセッサ・データ処理システム内でキャッシュ・コヒーレンシを維持するキャッシュ・コヒーレンシ・プロトコルを提供する方法及び装置
KR100318789B1 (ko) 멀티프로세서 데이타 처리 시스템에서의 캐쉬를 관리하는시스템과 방법
US5652859A (en) Method and apparatus for handling snoops in multiprocessor caches having internal buffer queues
US7493446B2 (en) System and method for completing full updates to entire cache lines stores with address-only bus operations
CN101097545B (zh) 独占所有权探听过滤器
US5943685A (en) Method of shared intervention via a single data provider among shared caches for SMP bus
JP3714617B2 (ja) キャッシュ階層で首尾一貫性を維持する方法、コンピュータ・システム、及び処理ユニット
JPH10301849A (ja) キャッシュ・コヒーレンシを維持する方法及び装置
JPH11272557A (ja) キャッシュ・コヒ―レンシを維持する方法及びシステム
US6574714B2 (en) Efficient instruction cache coherency maintenance mechanism for scalable multiprocessor computer system with write-back data cache
EP0834129A1 (en) Method and apparatus for reducing cache snooping overhead in a multilevel cache system
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
JPH06318174A (ja) キャッシュ・メモリ・システム及び主メモリに記憶されているデータのサブセットをキャッシュする方法
EP0976047B1 (en) Read operations in multiprocessor computer system
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
JP3302905B2 (ja) バスインタフェースアダプタおよびコンピュータシステム
JPH11328027A (ja) キャッシュ・コヒ―レンスを維持する方法及びコンピュ―タ・システム