JP3974983B2 - マルチプロセッサ・コンピュータ・システムにおけるデータ整合方法 - Google Patents

マルチプロセッサ・コンピュータ・システムにおけるデータ整合方法 Download PDF

Info

Publication number
JP3974983B2
JP3974983B2 JP32604997A JP32604997A JP3974983B2 JP 3974983 B2 JP3974983 B2 JP 3974983B2 JP 32604997 A JP32604997 A JP 32604997A JP 32604997 A JP32604997 A JP 32604997A JP 3974983 B2 JP3974983 B2 JP 3974983B2
Authority
JP
Japan
Prior art keywords
memory
cache
state
line
data
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 - Fee Related
Application number
JP32604997A
Other languages
English (en)
Other versions
JPH10260898A (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.)
Intel Corp
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Publication of JPH10260898A publication Critical patent/JPH10260898A/ja
Application granted granted Critical
Publication of JP3974983B2 publication Critical patent/JP3974983B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0817Cache consistency protocols using directory methods
    • G06F12/082Associative directories

Description

【0001】
【発明の属する技術分野】
本発明は、複数のデータ・キャッシュ・メモリおよび共有メモリを含むマルチプロセッサ・コンピュータ・システム、特にキャッシュとの整合を維持するために、ディレクトリをベースとするプロトコルを使用するマルチプロセッサ・コンピュータ・システムに関する。
【0002】
【従来の技術、及び、発明が解決しようとする課題】
ここ数年間の間に、コンピュータ・システムの性能、速度、集積度および容量はほぼ指数的に進歩している。このような進歩は、コンピュータ・システムのコストの低下とあいまって、コンピュータ・システムの利用のさらなる拡大をもたらし、より進歩したリソースが豊富なコンピュータのアプリケーションが開発された。最近の歴史的傾向により、アプリケーションのメモリに対する要件は、毎年二倍に増大している。コンピュータ・システムおよび部材のコストは、ここ数年確実に下がってきているが、システムの主メモリで使用される高速RAMメモリおよびキャッシュ・メモリのコストは、ほとんどのコンピュータ・システムにおいて最も高い状態のまま安くならない。
【0003】
主に、データ、アプリケーション・ソフトウェアおよびオペレーティング・システム・ソフトウェアの一時的な記憶装置として使用されるシステム・メモリおよびキャッシュ・メモリは、またパリテイ・ビット、キャッシュ整合状態情報およびエラー検出および/または修正シンドローム・ビットを記憶するために、より進歩したマルチプロセッサ・システムでも使用されている。マルチプロセッサ・システムの追加メモリ要件、および高度のオペレーティング・システムおよびアプリケーションに対するより高度のメモリ要求により、高速RAMに対する要求およびコストが増大している。
【0004】
高速システムおよびキャッシュ・メモリを使用し、システムおよびキャッシュ・メモリ要件を低減するための、もっと効率的な方法が待望されている。
【0005】
それ故、本発明の一つの目的は、ディレクトリをベースとするキャッシュ整合を使用する、コンピュータ・システムでのメモリの使用を改善する新しく、有益な方法を提供することである。
【0006】
【課題を解決するための手段】
このため、本発明は、その一態様として、共有されるシステム・メモリ(105A、105B)と、当該システム・メモリとバスシステム(103A、103B)を介して相互接続された複数のデータ・キャッシュ・メモリ(121A、121B)と、状態キャッシュ・メモリ(203A、203B)と、を有し、キャッシュ整合スキームを備えたディレクトリベースのマルチプロセッサ・コンピュータ・システムにおいて、前記システム・メモリと前記複数のデータ・キャッシュ・メモリの各ライン間におけるデータの一貫性を維持するためのデータ整合方法であって、前記状態キャッシュ・メモリは、前記システム・メモリにセーブされているメモリの予め設定されたライン数に対するシステム・メモリ・ライン状態を含み、前記システム・メモリのあるラインに関する情報が、前記状態キャッシュ・メモリのいずれのエントリにも登録されていない場合には、当該あるラインの前記システム・メモリ・ライン状態を、当該あるラインが複数のデータ・キャッシュ・メモリ間において「共有」されている状態であるとして取り扱うようにし、前記状態キャッシュ・メモリのあるエントリにおいて置き換えを行う前に、当該置き換えを行うエントリから前記システム・メモリ・ライン状態を読み取り、この読み取った前記システム・メモリ・ライン状態が「占有」を示す場合には、この「占有」に係るラインを該当するデータ・キャッシュ・メモリから前記システム・メモリに書き戻すことにより、この「占有」に係るラインの前記システム・メモリ・ライン状態を前記「共有」として扱えるようにする、ことを特徴とするデータ整合方法を提供するものである。
【0007】
メモリのラインの状態に関する情報は、状態キャッシュ・メモリおよびデータ・キャッシュ・メモリに維持される。各データ・キャッシュ・メモリは、データ・キャッシュ・メモリにセーブされたメモリの各ラインと共に、データ・キャッシュ・メモリ・ライン状態を含み、データ・キャッシュ・メモリ・ライン状態は、MESI(修正−排他−共有−無効)状態、すなわち、修正、排他、共有または無効の中の任意の一つである。状態キャッシュ・メモリは、システム・メモリにセーブされているメモリの、予め定めた数のラインに対する、システム・メモリ・ライン状態を含む。システム・メモリ・ライン状態は、下記の状態、すなわち、共有バスA、共有バスB、両者共有、占有バスAおよび占有バスBの中の任意の一つである。
【0008】
状態キャッシュ・ライン置換動作を行う方法は、下記のステップを含む。すなわち、上記状態キャッシュ・メモリに表示されるメモリのラインに対して、デフォールト・システム・メモリ状態を「共有」状態にするステップと;上記共有メモリ、および少なくとも一つのデータ・キャッシュ・メモリに記憶されているメモリのラインに関連する、予め記憶した状態キャッシュ入力の置き換えを行う前に、予め記憶した状態キャッシュ入力に対するシステム・メモリ・ライン状態を読み取るステップと;上記共有メモリのメモリのラインを更新するために放出動作を行い、上記予め記憶した状態キャッシュ入力に対する上記システム・メモリ・ライン状態が、「占有」(占有バスAまたは占有バスB)である場合には、「共有」のデータ・キャッシュ・メモリ・ライン状態を、メモリの上記ラインを含む各データ・キャッシュ・メモリのメモリの上記ラインに割り当てるステップとを含む。
【0009】
上記方法は、状態キャッシュ・メモリで置き換えを行うことにより生じる整合動作の回数を低減する。メモリの大部分のラインは共有状態にあるので、デフォールト状態をキャッシュに記憶していない状態にセットするのではなく、共有状態にセットすると、状態キャッシュ・ライン置換中に行わなければならない無効な整合動作の回数が減少る。
【0010】
添付の図面を参照しながら以下に本発明を説明するが、これは単に例示としてのものに過ぎない。
【0011】
【発明の実施の形態】
NCR社は、自らが開発したシステム技術を使用する、高度マルチプロセッサ・アーキテクチャを開発し、一方、インテル・ペンティアム・プロ・プロセッサ、PCI I/Oチップセット、ペンティアム・プロ・チップセット、ペンティアム・プロ・バス・トポロジィ(P6)のような標準大容量(SHV)構成部材および標準メモリ・モジュール(SIMMおよびDIMM)を巧みに利用している。NCRシステム技術と標準SHV構成部材とを注意深く融合することにより、NCRは世界的規模の拡張性と機能を供給することができ、一方、全面的なカスタム開発に関連する不利益を避け、SHVに資本を投入している。図1はこのアーキテクチャの実施形態である。
【0012】
<システムの概略>
図1について説明すると、この図は参照記号AおよびBで示す、二組の四つのプロセッサからなる構築ブロック、すなわち、複合体で形成されている8プロセッサSMPシステムである。各複合体は、それぞれ複合体「A]および複合体「B」のように、AまたはBで終わる参照番号がついている、同一の構造体および構成部品を含む。
【0013】
複合体Aに設置されているシステムのこの部分は、高帯域幅、分割処理プロセッサ・バス103Aに接続している、1−4のプロセッサ101Aを含む。各プロセッサ301Aは、キャッシュ・メモリ321Aと関連している。システム・メモリ105Aは、高度二重ポート付きメモリ・コントローラ107Aを通して、バス103Aに接続している。プロセッサ・バス103Aは、メモリ・コントローラ107A第一のポートに接続している。第二のメモリ・コントローラ・ポートは、本明細書では拡張バスと呼ぶ、高帯域幅 I/Oバス115に接続している。この拡張バスは、多重PCI I/Oインターフェース109Aへの接続に使用されている。これらの構成部材すべては、高度メモリ・コントローラ107Aを除いて、現在入手可能な市販の構成部材である。例えば、プロセッサ101Aとしては、インテル・ペンティアム・プロ・プロセッサを使用できるし、バス103Aとしては、ペンティアム・プロ(P6)バス・トポロジィを使用することができる。
【0014】
高度メモリ・コントローラ(AMC)107Aは、プロセッサ・バス103AとI/Oバス115との間のすべての方向の制御およびデータの流れを管理する。上記I/Oバスは、後で説明するように、PCI I/OブリッジへのP6、および他のプロセッサへ接続するための、他のAMC ASICを含むことができる。AMC107Aは、また整合DRAMメモリ・アレイへのアクセスを制御する。このAMCは、制御およびデータ・スライスASICペアからなる。
【0015】
すでに説明したように、複合体Bは複合体Aと同じ構造をしている。二つの複合体は、拡張バス115により相互に接続していて、プロセッサ101Aおよび101B、システム・メモリ105Aおよび105B、ならびに共有I/O装置、キャッシュ・メモリおよび他の構成部材との間で通信を行うことができる。
【0016】
各複合体において、プロセッサは、プロセッサ・バス上で、バス監視プロトコルを使用する。バス監視プロトコルは、プロセッサとメモリとの間のデータの移動を絶えず追跡する方法である。少数の緊密に結合したプロセッサを含むこのシステムは、優れた性能を持つ。プロセッサが、同じバス上の他のプロセッサのデータ・キャッシュで使用することができるデータを必要とする場合には、そのデータを両方のプロセッサで共有することができる。そうでない場合には、そのデータは、主メモリ105Aまたは105Bから検索しなければならないが、これはシステム・バス・トラフィックを必要とする時間の掛かる動作である。この方法は、システム・バスの取り合いを少なくすることにより、システムの性能を向上させる。
【0017】
図1のNCRアーキテクチャの特徴は下記の通りである。
【0018】
o 工業SHVアーキテクチャおよびサポートする物資チップ(IOB等)への投資。
【0019】
o 二重ポート付きメモリ・コントローラ107Aおよび107Bによる、それぞれが、64ビットの帯域幅で66MHzで動作し、533MB/sの持続データ転送速度で動作する複数の二重バスの接続と利用の実現。
【0020】
o 二重バス方式による、バス・ローディングの低減と、IOBトラフィックへのIOBから独立して動作することができる、メモリ・パスへの私的プロセッサの設置による、拡張性の増進。
【0021】
o 拡張バス115への追加プロセッサおよびI/O装置への接続が可能。
【0022】
上記システムは、コンピュータ工業のSHVの動きに焦点を合わせながら、高利用度取引処理(HATP)および拡張可能なデータ・ウェアハウス(SDW)サーバのニーズを満足させることができる。
【0023】
<メモリをベースとする整合>
データ・キャッシュ・メモリを使用するすべての装置、特に多重データ・キャッシュ・メモリおよび多重レベルのデータ・キャッシュ・メモリを使用するシステムの場合には、特定のメモリ位置からのデータは、主メモリおよび一つまたはそれ以上のデータ・キャッシュ・メモリに同時に常駐することができる。しかし、主メモリおよびデータ・キャッシュ・メモリのデータは、何時でも同じではない。このようなことは、マイクロプロセッサが、主メモリおよび他のデータ・キャッシュ・メモリを更新しないで、関連データ・キャッシュ・メモリに含まれているデータを更新した場合、または他のバス・マスタが、マイクロプロセッサのデータ・キャッシュ・メモリのそのコピーを更新しないで、主メモリのデータを変更した場合に起こる。
【0024】
プロセッサ、システム・メモリ・モジュール105Aおよび105B、および種々のデータ・キャッシュ・メモリ間を移動するデータを追跡するために、システムは、メモリとキャッシュをベースにする整合のハイブリッドを使用する。システム・メモリとキャッシュイング・エージェント、すなわち、第一および恐らく第二のレベルのデータ・キャッシュを含む、システム・バス・プロセッサとの間の整合は、集中/分散型のディレクトリをベースとするキャッシュの整合の組み合わせを通して維持される。
【0025】
ディレクトリをベースとするキャッシュ整合スキームは、プロセッサとメモリとの間のデータの動きを絶えず追跡する方法である。データの整合に対するこの方法により、メモリ状態表は、どのプロセッサが、その関連データ・キャッシュ・メモリに、メモリのどのラインを持っているのかを識別する。プロセッサがデータを要求した場合には、状態表は、主メモリまたはプロセッサ・データ・キャッシュの、そのデータの最も新しいコピーが常駐している場所を識別する。この方法の利点は、プロセッサが監視によりアクセスすることができないデータ・キャッシュに常駐するデータを必要とするまで、追加の作業をする必要がないということである。ディレクトリをベースとするキャッシュの整合は、システム・バス上で多数の緊密に結合しているプロセッサを使用した場合に、最も効果がある。
【0026】
図1のシステムで使用される、集中/分散型のディレクトリをベースとする、キャッシュ整合スキームは、二つのディレクトリ素子からなる。ディレクトリ・スキームの中央素子は、それぞれシステム・メモリ・モジュール105Aおよび105Bに関連する、状態キャッシュ・メモリ203Aおよび203Bに常駐する。この素子は、メモリ・ライン状態表(MLST)と呼ばれる。システム・メモリのそれぞれのアクティブな(キャッシュ・メモリに記憶された)メモリ・ラインは、MLSTに対応する入力を含む。この対応する入力は、メモリ・ラインがキャッシュ・メモリに記憶されているかどうかを示す情報を含み、もし記憶されている場合には、一つのプロセッサ(またはバス)または共有アクロスマルチプロセッサ(またはバス)により、排他的に占有されているかどうかを示す情報を含む。ディレクトリ・スキームおよびMLSTは、システム・バスまたはプロセッサによるメモリ・ラインの占有権を識別するように設定することができる。「ビット・パア・バス」MLSTは、バスに基づいて占有権を識別し、一方、もっと粗い「ビット・パア・プロセッサ」MLSTは、プロセッサに基づいて占有権を識別する。この識別はメモリ設計の際に行うべきものなので、システム・バス上のすべての他の装置には何の影響も与えない。
【0027】
分散型のディレクトリ素子は、各プロセッサのデータ・キャッシュ・ディレクトリに局部的に常駐している。特定のプロセッサに関連するこの素子は、そのプロセッサのライン状態表(PLST)と呼ばれる。各キャッシュ・ラインは、PLSTに対応する入力を持つ。局部的プロセッサから見た場合、この入力は、ラインが主メモリ・ラインの有効なコピーを含んでいるかどうかを示す情報を含み、含んでいる場合には、そのラインを修正すべきかどうかをシステムの残りの部分に報告しなければならない。システムから見た場合、各プロセッサのPLSTは、メモリ介入コマンド(MIC)と呼ばれる特殊なシステム・バス・サイクルに対するスレーブである。これらサイクルは、特定の隣接するのローカル状態についてPLSTに問い合わせを行い、および/またはPLSTにそのローカル状態を変更するように命令する。
【0028】
<メモリおよびキャッシュ状態の定義>
修正−排他−共有−無効(MESI)キャッシュ整合プロトコルは、主メモリの内容とデータ・キャッシュ・メモリの内容とを同じ状態に維持するための、ハードウェア実行プロトコルである。MESIハードウェア・キャッシュ整合プロトコルの通常の実行の際には、下記の機能を持つキャッシュ・コントローラを使用する必要がある。
【0029】
1.メモリ・バス上の、すべてのキャッシュ・メモリに対して、同じライン・サイズを使用することができること。
【0030】
2.メモリ・バス上のすべての活動を、観察することができること。
【0031】
3.キャッシュ・メモリの、すべての各ラインに対する状態情報を、維持することができること。
【0032】
4.キャッシュ・メモリと、主メモリの内容を同じ状態に維持するために、適当な行動をとることができること。
【0033】
MESIは、ラインが有効であるかどうか、他のキャッシュで使用することができるかどうか、修正済みであるかどうかを定義する四つの状態を表す。データ・キャッシュのデータの各ラインは、データのラインが修正済みか、排他的か、共有か、または無効かを示す関連フィールドを含む。プロセッサ・ライン状態表の各ラインは、四つの可能なMESI状態の中の一つにマークがつけられている。
【0034】
o 修正済み−この状態は、このキャッシュだけで排他的に使用することができ、修正されるデータのラインを示す。修正済みのラインは、共有メモリ・バスを獲得しなくても、キャッシュで局部的に更新することができる。システムの他の装置が、このラインを必要とする場合には、占有中のキャッシュがデータを供給しなければならない。
【0035】
o 排他(PE)−この状態は、このキャッシュだけで排他的に使用できるデータのラインが修正されていないこと(主メモリも有効なコピーを持つ。)、ローカル・プロセッサが、システムに通知しないで、このラインを自由に修正できることを示す。排他的データは、ある種の方法で働きかけられるまで、他のいかなるプロセッサも使用することはできない。排他的ラインに書き込みを行うと、他のキャッシュに通知しなくても、状態が修正された状態に変化する。そのため、メモリ・バスの活動は発生しない。以下に説明するように、(PE)状態にあるラインには、MLSTで(MO)のマークがつけられることに留意されたい。
o 共有(PS)−この状態は、他のキャッシュと潜在的に共有しているデータのライン(同じラインが、一つまたはそれ以上のキャッシュに存在する。)を示す。共有データは、複数のプロセッサの間で共有することができ、複数のキャッシュに記憶することができる。ローカル・プロセッサは、主メモリにアクセスしないで、共有ラインを読むことができる。プロセッサが、局部的に共有とマークされているラインに書き込みを行った場合には、そのプロセッサは、システムにも、その書き込みを放送しなければならない。
【0036】
o 無効(PI)−この状態は、キャッシュで使用することができないデータのラインを示す。特定のキャッシュの無効データは、診断または類似の用途以外には、将来の処理用に使用することはできない。このラインを読出すと、「ミス」(使用不能)となる。このラインに書き込みを行うと、メモリ・バスへのライト・スルー・サイクルとなる。すべてのキャッシュ・ラインは、システムが初期化された時、(PI)状態になる。
【0037】
MESIプロトコルによれば、プロセッサがメモリのラインを占有すると、修正であろうと、排他であろうと、主メモリのメモリの占有ラインへ書き込みを行った場合には、その書き込みが何であろうとも、プロセッサのデータ・キャッシュ・メモリに含まれている同じデータは直ちに更新される。
【0038】
メモリ・ライン状態表は、三つの可能な状態、すなわち、「キャッシュに記憶されていない(MNC)」、共有(MS)および占有(MO)の一つの状態になっているメモリ・ラインをマークする。文字Mは、文字Pで識別されるPLST状態から、これらの状態を区別するためのものである。さらに、バスまたはプロセッサをベースとする共有または占有を示すバスおよび/またはプロセッサ状態ビットも使用される。
【0039】
o キャッシュに記憶されていない(MNC):この状態は、キャッシュがそのラインのコピーを持っていないことを示す。システムが初期化された時には、すべてのメモリ・ラインを(MNC)状態にリセットしなければならない。
【0040】
o 共有状態(MS):この状態は、一つまたはそれ以上のキャッシュが、潜在的にそのラインのコピーを持っていることを示す。
【0041】
o 占有状態(MO):この状態は、一つそして唯一のキャッシュが、潜在的にそのラインのコピーを持っていて、メモリのデータが潜在的にそれと一致していないことをしめす。(メモリ・データは、失効したと呼ばれる。)
共有および占有状態の定義に使用された「潜在的」という用語に留意されたい。MLSTが、特定のメモリ・ラインについての最新の情報を持っていない状況がいくつかある。例えば、MLSTは、一本のラインを、二つの特定のプロセッサにより共有されているとマークする場合がある。何故なら、MLSTが二つの特定プロセッサがそのラインを読んだと見なしたからである。しかし、両方のプロセッサが、(「無言の置換」と呼ばれる)MLSTに通知しないで、新しいデータのために空きを作るために、そのラインをずっと前から放棄している場合がある。MLSTは、当然、あるマスタの力、MICがそのラインにアクセスする度に、特定のラインの最新の状態に「追いつこう(catch up)」とする。この例の場合、第三のプロセッサがこのラインに書き込みを行うと、他のキャッシュに記憶されていコピーを無効にするために、(現在不必要な)MICを初期化し、MLSTを更新する。しかし、MLSTは、何時でも、キャッシュ・ラインの状態を前の状態に保持しようとすることに留意されたい。すなわち、プロセッサが占有または共有しているラインは、何時でも、MLSTに正確にマークされている。MLSTの「失効した」情報は、もはやどのプロセッサのデータ・キャッシュにも存在しない占有または共有とマークされたラインの形をとる。
【0042】
システム・メモリの内容とデータ・キャッシュ・メモリの内容を同じに維持するために、上記システムで使用される三つの異なるMIC動作がある。
【0043】
o 無効(MBI) このサイクルがスタートすると、アドレスされたラインを持つすべてのデータ・キャッシュは無効状態(PI)になる。このサイクルは、通常、MLSTの共有とマークされた(MS)ラインにアクセスする、ある種のメモリ動作に応えて発生する。他のMIC動作とは異なり、MBIは、ローカル・キャッシュのアドレスされたラインの現在の状態に関して、PLSTからのフィ−ドバックを要求しない。それどころか、MBIは、単に、そのラインがキャッシュに存在する場合には、その無効化を要求する。MBIは、論理的フィ−ドバックは要求しないが、そのサイクルを終了するために、目標プロセッサから積極的な承認を要求する。MBIは、単に、プロセッサが無効なアドレスを受け入れ、他のアドレスを受け入れることができることを表示する。
【0044】
o 放棄無効(MBCOI) このサイクルがスタートすると、アドレスされたラインの潜在的に修正されたコピーを持つキャッシュは、システム・メモリに送られ、無効状態(PI)になる。このサイクルは、MLSTで占有とマークされた(MO)メモリ・ラインにアクセスする、ある種のメモリ動作に応えて発生する。占有キャッシュが修正(PM)状態のラインを持っている場合には、そのキャッシュは、データを供給し、無効になる。占有キャッシュが排他(PE)状態のラインを持っている場合には、そのキャッシュは、MBCOIに通知し、無効になるが、データの供給は行わない。占有キャッシュがもはやラインを持っていない場合には、このキャッシュは、単に、サイクルが終了したことをMBCOI通知するだけである。
【0045】
o 放棄共有(MBCOS) このサイクルは、アドレスされたラインの潜在的に修正されたコピーを持つキャッシュをシステム・メモリに送り、共有状態(PS)になる。このサイクルは、MLSTの占有とマークされた(MO)、メモリ・ラインにアクセスする、ある種のメモリ動作に応えて発生する。占有キャッシュが修正された状態(PM)のラインを持っている場合には、そのキャッシュはデータを供給し、共有になる。占有キャッシュが排他状態(PE)のラインを持っている場合には、そのキャッシュはMBCOSに通知して、共有状態になるが、データの供給は行わない。占有キャッシュが、もはやラインを持っていない場合には、このキャッシュは、サイクルが終了したことをMBCOI通知する。最後の場合には、ラインがキャッシュに記憶されていなくても、MLSTは共有状態(MS)になる。何故なら、MLSTは、無効状態(PI)のラインと、占有者のキャッシュの排他状態(PE)のラインとを区別することができないからである。
【0046】
すでに説明したように、MLSTは、バスまたはプロセッサを基準とする共有または占有を示す、追加のバスおよび/またはプロセッサ状態ビットを含む。
【0047】
ビット・パア・バス・プロトコルは、ラインの現在の状態を表示するために、一つのライン語との三つのメモリ状態ビットを使用する。一つのビットは共有または占有を示し、他の二つのビットはどのバス(AまたはB)またはバス(AおよびB)が、共有または占有ラインを持っているのかを示す。バスの占有権は、そのバス上のプロセッサの中の一つが、そのラインを占有していることを示す。六つの状態、すなわち、「キャッシュに記憶されていない」、「共有バスA」、「共有バスB」、「両者共有」、「占有バスA」および「占有バスB」が可能である。一本のラインを占有できるのは一台のプロセッサだけ、すなわち、一本のバスだけであることに留意されたい。共有ラインは、各バス上の一台またはそれ以上のプロセッサにより共有することができる。
【0048】
Figure 0003974983
ビット・パー・プロセッサ・プロトコルは、そのラインの現在の状態を表示するための一本のラインに対して、n+1個のビット(nはプロセッサの数に等しい)からなるMLSTを持つ。一つのビットは、そのラインが共有(MS)または占有(MO)かを示し、他のn個のビットは、どの一台のプロセッサまたは複数のプロセッサが、キャッシュに記憶されているラインを持っているかを示す。特定のプロセッサにはPiの番号がつけられるが、この場合iは0からn−1の数字である。iが偶数であるすべてのPiはバスA上に存在し、iが奇数であるすべてのPiはバスB上に存在する。プロセッサの占有権は、どのプロセッサ(一台だけ)がそのラインを占有しているかを示す。共有ラインは、どちらか一方または両方のバスにより共有することができる。
【0049】
Figure 0003974983
<メモリ状態キャッシュ>
すでに説明したように、システム・メモリ105Aおよび105Bに関連する状態情報を含むMLSTは、それぞれ状態キャッシュ・メモリ203Aおよび203Bに維持されている。状態キャッシュ・メモリは、どのような場合でも、一度にすべてのシステム・メモリが使用(キャッシュに記憶される)ことは滅多にないことを考慮して、システム・メモリに含まれているメモリ・ラインの一部だけに対する状態情報を記憶することができるだけの容量を持っている。例示としての状態キャッシュ・メモリ203Aの構造および動作を、図2および図3に示す。
【0050】
図2は、例えば、各ラインが32バイトの大きさを持つ、33兆5544億3200万(225)のメモリ・ブロック、すなわち、ラインに分割された1ギガバイト(229)の容量を持つシステム・メモリ105Aである。メモリ105Aに記憶されているデータには、29ビットのアドレス201によりアクセスする。「X」ビットと呼ばれる、このアドレスの25の最上位のビットは、メモリ・ブロック番号、すなわち、ライン番号を示す。「W」ビットと呼ばれる、次の四つのアドレス・ビットは、メモリ・ブロックの語を示し、最下位のアドレス・ビット「B」は、語の中のバイトを示す。
【0051】
状態情報を記憶するためのキャッシュ・メモリ203Aは、「キャッシュ・タグRAM」205A、および「キャッシュ・データRAM」207Aと呼ばれる二つのセクションを含む。状態キャッシュ・メモリ203Aの各ライン入力は、キャッシュ・データRAMにセーブされた状態情報、およびキャッシュ・タグRAMに記憶された四つのビット・タグを含む。
【0052】
状態キャッシュ・メモリ203Aは、全部の数のメモリ・アドレス・ビットのサブセットにより索引される。アドレス・ビットまたはタグ・ビットの残りは、記憶装置の各入力に対する内容の一部である。索引ビットは、状態キャッシュの入力の数を指定し、タグ・ビットは状態キャッシュの同じ入力を取り合うことができるメモリ・ラインの数を決定する。索引ビットにタグ・ビットを加えたものは、サポートすることができるメモリ・ラインの全数を指定する。本質的には、状態記憶装置の低減は、タグ・ビットの数により決まる。例えば、タグ・ビットの数が4である場合には、このコンセプトに対する状態記憶装置の要件は、従来のアーキテクチャの1/16である。
【0053】
図3は、状態キャッシュ203Aの構造および動作に関するもっと詳細な情報である。状態キャッシュの入力には、主メモリ105Aにアクセスした時に使用したのと同じアドレス201によりアクセスできる。このアドレスの四つの最上位のビットは、タグ・ビットと呼ばれ、次の21のアドレス・ビットは、索引ビットと呼ばれる。これら25のアドレス・ビットは、図4のXビットと同じビットであり、主メモリ105Aのメモリ・ブロックを識別するのに使用される。
【0054】
状態キャッシュの読出し動作中、上記アドレスの索引フィールドは、チェックするキャッシュの特定の入力またはラインを指定するのに使用される。次に、上記アドレスのタグ・ビットは、選択したキャッシュ・ラインのタグと比較される。一致する場合には、キャッシュ的中が起こり、選択したキャッシュ・ラインに関連する状態ビットが検索される。
【0055】
状態キャッシュ・メモリの状態情報を記憶する際には、タグおよび状態情報記憶装置に対する特定の入力、またはキャッシュ・ラインを識別するために、アドレスの索引フィールドが使用される。最初の四つのアドレス・ビットは、キャッシュ・タグRAMにセーブされ、そのアドレスに関連する状態情報は、キャッシュ・データRAMにセーブされる。オプションとして、エラー検出および/または修正シンドローム・ビット、またはパリテイ・ビットを、状態キャッシュ・メモリに内蔵させることができる。
【0056】
上記状態キャッシュは、直接マップされたキャッシュである。しかし、状態キャッシュは、データ・キャッシュに従って、結合型、セクタ型、または直接マップ型にすることができることに留意されたい。
【0057】
メモリ・システムの動作を以下に説明する。システム・メモリの読み出しまたは書き込み動作が要求されると、プロトコルに従って、必要な整合サイクルを決定するために、状態キャッシュがアクセスされる。状態キャッシュのタグ情報が、メモリ・アドレスの対応するビットと一致する場合には、対応する整合サイクルが実行され、状態が更新される。タグが一致しない場合には、デフォールト状態に対する整合動作が実行され(恐らく、実行されることはないが)、新しいライン・アドレスおよび状態が、状態キャッシュに割り当てられる。恐らく、現存する入力は新しいラインにより置き換えられることになる。整合動作は、置き換えられたライン状態を、デフォールト状態にするために必要になる場合がある。これらの置換整合動作は、状態記憶装置の容量を少なくするためのパーフォーマンス費用であるが、すでに説明したように、妥当な状態キャッシュ容量および通常の作業量の場合には、無視することができる。状態キャッシュは、結合型、セクタ型、またはデータ・キャッシュの場合と同じように直接マップ型にすることができることに留意されたい。
【0058】
下記の例を使用して、状態キャッシュ・メモリの使用によるメモリ・スペースの節約を説明する。上記の、1ギガバイトのメモリと、メモリの一つのラインに対して必要な、4ビットの整合状態フィールドを持つシステムについて考えてみよう。メモリの基本的な整合ブロック、すなわち、ラインは32バイトである。すべてのメモリに対する4ビット状態を記憶するためには、16MBの状態メモリ(一つのラインにつき、3200万のライン × 4ビット)が必要になる。状態メモリの各入力が、4ビットのタグを含んでいる場合には、状態メモリは一本のライン当たり8ビットの情報を含んでいて、これは従来の量の二倍である。しかし、4ビット・タグのおかげで、ラインの数は1/16ですむ。それ故、必要な全状態メモリは2MBで、これは従来の容量の1/8である。折り合いは、比較的少ない状態キャッシュ入力の可能な置き換えにより行われる。この例の場合には、状態キャッシュは、64MBデータ・キャッシュ(それぞれが32バイトのラインを表す200万の入力)に等しい。
【0059】
上記プロセスのように、メモリ状態キャッシュを使用する際の不利な点は、キャッシュに記憶されている、状態入力の置き換えにより生じる追加の整合動作が、通常の転送と干渉することである。本発明は、ディレクトリをベースとするメモリ状態キャッシュの置き換えにより生じる整合動作の数を減らすための方法を提供する。
【0060】
<置換動作の低減>
すでに説明したように、状態キャッシュに記憶されていないアドレスに関する情報が必要な場合に、新しいアドレスの割当ができるようにするために、前の記憶している状態キャッシュ入力を置き換えなければならない。アート・プロトコルの現在の状態は、メモリ・ライン(基本的な整合素子)のシステム状態を、キャッシュに記憶されていない(共有または占有)状態に復帰させる。この動作は、プロセッサ・データ・キャッシュに対する無効化動作および放棄動作を含む。
【0061】
今まで説明してきた、ディレクトリをベースとするキャッシュ整合システム、および多くの類似のシステムにおいては、大部分の状態キャッシュ・ラインは、ウオームアップ期間を過ぎると、共有としてマークされることを認識しておく必要がある。そのため、共有のデフォールト・メモリ状態を指定することにより、置き換えの結果生じる整合動作の数を低減することができる。それ故、キャッシュ状態入力の置き換えの結果生じる動作を処理するために使用する置換アルゴリズムは、共有状態を単に確実に生じさせるためのものでなければならない。キャッシュの大部分のラインは、共有状態にあるので、このことは無効を意味しない。また、データ・キャッシュは、共有状態でメモリ情報を継続して保持している。置換したラインが占有状態である場合には、放棄動作が発生するが、そのラインはデータ・キャッシュで、共有状態に遷移することができる。
【0062】
この方法に対する折り合いは、ラインが、(書き込みミスにより生じた)占有状態にある、状態キャッシュ・メモリに割り当てられた場合、すべてのデータ・キャッシュのそのラインのすべての可能な共有者に、無効が必要になる。しかし、書き込みミスおよび読取りミスは、割当を生じさせ、割当は置換を生じさせる。ミスの数の半分以下が書き込みサイクルである場合には、書き込みサイクルにより生じた無効より、セーブされた置換無効のほうが多い。何故なら、読取りサイクルが、キャッシュの共有入力を割り当てるからである。
【0063】
一つの例として、二つのキャシング・エーゲントに対して、メモリ・ライン(整合素子)当たり、3ビットの状態情報を持つディレクトリをベースとするメモリ・システムを考えてみよう。通常使用される八つの可能な状態の中の六つは、キャッシュに記憶されていない、共有エージェントA、共有エージェンントB、両者共有、占有エージェントA、および占有エージェントBである。図4は、従来のアルゴリズムに対する置換されたライン動作、および「両者共有」または「共有だけ」デフォールト状態を持つ本発明の方法を示す表である。一方のエージェントがメモリに対してより高速でより高い優先権アクセスを持っている場合には、共有エージェントAまたは共有エージェントBデフォールトはメリットがあることに留意されたい。それ故、無効は、状態キャッシュに対する割当に対してはより迅速である。
【0064】
両者共有デフォールト状態プロトコルの場合には、入力が占有者状態である場合に限って、置換動作が必要になり、エージェントは、局部的にラインを共有状態に維持することができる。「共有A」デフォールト状態プロトコルの場合には、ラインが「エージェントAによって共有」または「両者によって共有」の場合に、無効が必要になる。しかし、このケースに対する状態キャッシュへの割当の間、余計な無効は少なくてすむ。図5の表は、キャッシュに記憶していないデフォールト状態を持つ、3ビットのディレクトリをベースとするメモリに対する整合状態表である。図6および図7の表は、「両者共有」および「共有エージェントA」デフォールト状態に対する整合状態である。ある種の追加無効を起こす状態は、太字で示してある。「両者共有」デフォールトの場合には、書き込みミスにより対向するエージェントを無効にし、DMA書き込みを行うと両方のエージェントを無効にする。「共有A」デフォールトの場合には、エージェントAが書き込みミスを起こすと、局部的な整合サイクルを起こし、DMA書き込みはエージェントAだけを無効にするだけである。それ故、このケースの場合には、より少ない無効しか生じない。(注:I/Oインターフェースが、どちらかのエージェントだけのものである場合には、そのエージェント、すなわち、ローカル監視プロトコルに対して無効は局部的に処理され、この場合、メモリは対向するエージェントを無効にする。)
それ故、本発明は、集中/分散型のディレクトリをベースとするキャッシュ整合および状態キャッシュ・メモリを使用するコンピュータ・システムでのメモリ使用を改善するための新しい有用な方法を提供する。上記方法は、状態キャッシュ・メモリでの置換により生じる整合(無効)動作の数を減少する。
【図面の簡単な説明】
【図1】現在入手可能な市販構成部材を使用する、8プロセッサ超大容量(SHV)対称多重処理(SMP)コンピュータ・システムの簡単なブロック図である。
【図2】状態情報を記憶するためのシステム・メモリ105Aとキャッシュ・メモリのブロック図である。
【図3】状態キャッシュ203の構造および動作をさらに詳細に示す、図2の状態キャッシュ・メモリ203のブロック図である。
【図4】本発明の三つの可能なデフォールト・メモリ・ライン状態に対する、置換メモリ・ライン整合動作の低減を示す表である。
【図5】従来の置換手順による「キャッシュに記憶していない」デフォールト状態を含む、3ビットのディレクトリをベースとするメモリに対する整合状態表である。
【図6】本発明の第一の実施形態による、「両方共有」デフォールト状態を含む、3ビットのディレクトリをベースとするメモリに対する整合状態表である。
【図7】本発明の第二の実施形態による、「共有エージェントA」デフォールト状態を含む、3ビットのディレクトリをベースとするメモリに対する整合状態表である。

Claims (1)

  1. 共有されるシステム・メモリ(105A、105B)と、当該システム・メモリとバスシステム(103A、103B)を介して相互接続された複数のデータ・キャッシュ・メモリ(121A、121B)と、状態キャッシュ・メモリ(203A、203B)と、を有し、キャッシュ整合スキームを備えたディレクトリベースのマルチプロセッサ・コンピュータ・システムにおいて、前記システム・メモリと前記複数のデータ・キャッシュ・メモリの各ライン間におけるデータの一貫性を維持するためのデータ整合方法であって、前記状態キャッシュ・メモリは、前記システム・メモリにセーブされているメモリの予め設定されたライン数に対するシステム・メモリ・ライン状態を含み、
    前記システム・メモリのあるラインに関する情報が、前記状態キャッシュ・メモリのいずれのエントリにも登録されていない場合には、当該あるラインの前記システム・メモリ・ライン状態を、当該あるラインが複数のデータ・キャッシュ・メモリ間において「共有」されている状態であるとして取り扱うようにし、
    前記状態キャッシュ・メモリのあるエントリにおいて置き換えを行う前に、当該置き換えを行うエントリから前記システム・メモリ・ライン状態を読み取り、この読み取った前記システム・メモリ・ライン状態が「占有」を示す場合には、この「占有」に係るラインを該当するデータ・キャッシュ・メモリから前記システム・メモリに書き戻すことにより、この「占有」に係るラインの前記システム・メモリ・ライン状態を前記「共有」として扱えるようにする、ことを特徴とするデータ整合方法。
JP32604997A 1996-12-09 1997-11-27 マルチプロセッサ・コンピュータ・システムにおけるデータ整合方法 Expired - Fee Related JP3974983B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/763,703 1996-12-09
US08/763,703 US5809536A (en) 1996-12-09 1996-12-09 Method for reducing the number of coherency cycles within a directory-based cache coherency memory system uitilizing a memory state cache

Publications (2)

Publication Number Publication Date
JPH10260898A JPH10260898A (ja) 1998-09-29
JP3974983B2 true JP3974983B2 (ja) 2007-09-12

Family

ID=25068574

Family Applications (1)

Application Number Title Priority Date Filing Date
JP32604997A Expired - Fee Related JP3974983B2 (ja) 1996-12-09 1997-11-27 マルチプロセッサ・コンピュータ・システムにおけるデータ整合方法

Country Status (4)

Country Link
US (1) US5809536A (ja)
EP (1) EP0847011B1 (ja)
JP (1) JP3974983B2 (ja)
DE (1) DE69736544T2 (ja)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5835941A (en) * 1995-11-17 1998-11-10 Micron Technology Inc. Internally cached static random access memory architecture
US5940864A (en) * 1997-04-14 1999-08-17 International Business Machines Corporation Shared memory-access priorization method for multiprocessors using caches and snoop responses
US6055373A (en) * 1997-04-28 2000-04-25 Ncr Corporation Computer system including a digital signal processor and conventional central processing unit having equal and uniform access to computer system resources
US6378047B1 (en) * 1997-07-07 2002-04-23 Micron Technology, Inc. System and method for invalidating set-associative cache memory with simultaneous set validity determination
US6055610A (en) * 1997-08-25 2000-04-25 Hewlett-Packard Company Distributed memory multiprocessor computer system with directory based cache coherency with ambiguous mapping of cached data to main-memory locations
US6052760A (en) * 1997-11-05 2000-04-18 Unisys Corporation Computer system including plural caches and utilizing access history or patterns to determine data ownership for efficient handling of software locks
US6032228A (en) * 1997-11-26 2000-02-29 International Business Machines Corporation Flexible cache-coherency mechanism
US6587931B1 (en) * 1997-12-31 2003-07-01 Unisys Corporation Directory-based cache coherency system supporting multiple instruction processor and input/output caches
US6343359B1 (en) * 1999-05-18 2002-01-29 Ip-First, L.L.C. Result forwarding cache
US6519685B1 (en) * 1999-12-22 2003-02-11 Intel Corporation Cache states for multiprocessor cache coherency protocols
US6405292B1 (en) * 2000-01-04 2002-06-11 International Business Machines Corp. Split pending buffer with concurrent access of requests and responses to fully associative and indexed components
US7124252B1 (en) * 2000-08-21 2006-10-17 Intel Corporation Method and apparatus for pipelining ordered input/output transactions to coherent memory in a distributed memory, cache coherent, multi-processor system
US6868481B1 (en) * 2000-10-31 2005-03-15 Hewlett-Packard Development Company, L.P. Cache coherence protocol for a multiple bus multiprocessor system
US20040260887A1 (en) * 2003-04-11 2004-12-23 Sun Microsystems, Inc. Multi-node computer system implementing speculative proxy transactions
US7127562B2 (en) * 2003-06-11 2006-10-24 International Business Machines Corporation Ensuring orderly forward progress in granting snoop castout requests
US7200718B2 (en) 2004-04-26 2007-04-03 Broadband Royalty Corporation Cache memory for a scalable information distribution system
JP4370327B2 (ja) * 2005-03-14 2009-11-25 パナソニック株式会社 バスコントローラ
US7581068B2 (en) * 2006-06-29 2009-08-25 Intel Corporation Exclusive ownership snoop filter
US7827425B2 (en) * 2006-06-29 2010-11-02 Intel Corporation Method and apparatus to dynamically adjust resource power usage in a distributed system
US7644293B2 (en) * 2006-06-29 2010-01-05 Intel Corporation Method and apparatus for dynamically controlling power management in a distributed system
US20080065837A1 (en) * 2006-09-07 2008-03-13 Sodick Co., Ltd. Computerized numerical control system with human interface using low cost shared memory
US8151059B2 (en) * 2006-11-29 2012-04-03 Intel Corporation Conflict detection and resolution in a multi core-cache domain for a chip multi-processor employing scalability agent architecture
US8028131B2 (en) * 2006-11-29 2011-09-27 Intel Corporation System and method for aggregating core-cache clusters in order to produce multi-core processors
US8994533B2 (en) * 2006-11-30 2015-03-31 Patent Navigation, Inc. Conditional RFID
EP2405361A4 (en) 2009-03-06 2012-12-19 Fujitsu Ltd COMPUTER SYSTEM, CONTROL METHOD, RECORDING MEDIUM, AND CONTROL PROGRAM
US8782323B2 (en) * 2009-10-30 2014-07-15 International Business Machines Corporation Data storage management using a distributed cache scheme
US9477600B2 (en) 2011-08-08 2016-10-25 Arm Limited Apparatus and method for shared cache control including cache lines selectively operable in inclusive or non-inclusive mode
US11687459B2 (en) * 2021-04-14 2023-06-27 Hewlett Packard Enterprise Development Lp Application of a default shared state cache coherency protocol

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4394731A (en) * 1980-11-10 1983-07-19 International Business Machines Corporation Cache storage line shareability control for a multiprocessor system
US4410944A (en) * 1981-03-24 1983-10-18 Burroughs Corporation Apparatus and method for maintaining cache memory integrity in a shared memory environment
US4775955A (en) * 1985-10-30 1988-10-04 International Business Machines Corporation Cache coherence mechanism based on locking
US5097409A (en) * 1988-06-30 1992-03-17 Wang Laboratories, Inc. Multi-processor system with cache memories
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
US4928225A (en) * 1988-08-25 1990-05-22 Edgcore Technology, Inc. Coherent cache structures and methods
JPH0680499B2 (ja) * 1989-01-13 1994-10-12 インターナショナル・ビジネス・マシーンズ・コーポレーション マルチプロセッサ・システムのキャッシュ制御システムおよび方法
JP2825906B2 (ja) * 1990-02-01 1998-11-18 株式会社日立製作所 計算機システム
US5291442A (en) * 1990-10-31 1994-03-01 International Business Machines Corporation Method and apparatus for dynamic cache line sectoring in multiprocessor systems
US5191649A (en) * 1990-12-21 1993-03-02 Intel Corporation Multiprocessor computer system with data bus and ordered and out-of-order split data transactions
US5313609A (en) * 1991-05-23 1994-05-17 International Business Machines Corporation Optimum write-back strategy for directory-based cache coherence protocols
JPH06103477B2 (ja) * 1991-12-05 1994-12-14 工業技術院長 並列キャッシュメモリ
US5524212A (en) * 1992-04-27 1996-06-04 University Of Washington Multiprocessor system with write generate method for updating cache
US5398325A (en) * 1992-05-07 1995-03-14 Sun Microsystems, Inc. Methods and apparatus for improving cache consistency using a single copy of a cache tag memory in multiple processor computer systems
US5450563A (en) * 1992-10-30 1995-09-12 International Business Machines Corporation Storage protection keys in two level cache system
JPH06208507A (ja) * 1993-01-11 1994-07-26 Casio Comput Co Ltd キャッシュメモリシステム
JPH06274416A (ja) * 1993-03-23 1994-09-30 Matsushita Electric Ind Co Ltd キャッシュメモリ装置
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
JP3410535B2 (ja) * 1994-01-20 2003-05-26 株式会社日立製作所 並列計算機
DE69519816T2 (de) * 1994-05-03 2001-09-20 Hewlett Packard Co Anordnung mit Duplikat des Cache-Etikettenspeichers

Also Published As

Publication number Publication date
JPH10260898A (ja) 1998-09-29
EP0847011A2 (en) 1998-06-10
US5809536A (en) 1998-09-15
EP0847011B1 (en) 2006-08-23
DE69736544D1 (de) 2006-10-05
EP0847011A3 (en) 1999-12-29
DE69736544T2 (de) 2007-08-23

Similar Documents

Publication Publication Date Title
JP3974983B2 (ja) マルチプロセッサ・コンピュータ・システムにおけるデータ整合方法
US5848434A (en) Method and apparatus for caching state information within a directory-based coherency memory system
US6629205B2 (en) System and method for increasing the snoop bandwidth to cache tags in a cache memory subsystem
US7669018B2 (en) Method and apparatus for filtering memory write snoop activity in a distributed shared memory computer
US6959364B2 (en) Partially inclusive snoop filter
US5671391A (en) Coherent copyback protocol for multi-level cache memory systems
JP4230998B2 (ja) リモートキャッシュプレゼンス情報を記録するプロセッサキャッシュを備えたコンピュータシステム
US7373457B2 (en) Cache coherence protocol for a multiple bus multiprocessor system
JP5201514B2 (ja) チップマルチプロセッサおよび方法
US6088769A (en) Multiprocessor cache coherence directed by combined local and global tables
US6826651B2 (en) State-based allocation and replacement for improved hit ratio in directory caches
US7774551B2 (en) Hierarchical cache coherence directory structure
US7310708B2 (en) Cache system with groups of lines and with coherency for both single lines and groups of lines
US8037252B2 (en) Method for reducing coherence enforcement by selective directory update on replacement of unmodified cache blocks in a directory-based coherent multiprocessor
US6078997A (en) Directory-based coherency system for maintaining coherency in a dual-ported memory system
JP2006277762A (ja) 分散共有メモリマルチプロセッサシステムのための分割疎ディレクトリ
US7925857B2 (en) Method for increasing cache directory associativity classes via efficient tag bit reclaimation
US7117312B1 (en) Mechanism and method employing a plurality of hash functions for cache snoop filtering
US7325102B1 (en) Mechanism and method for cache snoop filtering
US7143245B2 (en) System and method for read migratory optimization in a cache coherency protocol
US6148375A (en) Hierarchical bus simple COMA architecture for shared memory multiprocessors having a bus directly interconnecting caches between nodes
US5860120A (en) Directory-based coherency system using two bits to maintain coherency on a dual ported memory system
KR19990026501A (ko) 분산 공유 메모리의 캐시 일관성 제어방법 및 장치
KR20010083446A (ko) 다단계 캐시 구조의 공유 메모리 다중 프로세서 장치

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040831

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060726

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060809

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20061108

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20061113

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070209

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070226

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070511

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20070522

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070618

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: 20100622

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees