JP3974983B2 - マルチプロセッサ・コンピュータ・システムにおけるデータ整合方法 - Google Patents
マルチプロセッサ・コンピュータ・システムにおけるデータ整合方法 Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0817—Cache consistency protocols using directory methods
- G06F12/082—Associative directories
Description
【発明の属する技術分野】
本発明は、複数のデータ・キャッシュ・メモリおよび共有メモリを含むマルチプロセッサ・コンピュータ・システム、特にキャッシュとの整合を維持するために、ディレクトリをベースとするプロトコルを使用するマルチプロセッサ・コンピュータ・システムに関する。
【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】
ビット・パー・プロセッサ・プロトコルは、そのラインの現在の状態を表示するための一本のラインに対して、n+1個のビット(nはプロセッサの数に等しい)からなるMLSTを持つ。一つのビットは、そのラインが共有(MS)または占有(MO)かを示し、他のn個のビットは、どの一台のプロセッサまたは複数のプロセッサが、キャッシュに記憶されているラインを持っているかを示す。特定のプロセッサにはPiの番号がつけられるが、この場合iは0からn−1の数字である。iが偶数であるすべてのPiはバスA上に存在し、iが奇数であるすべてのPiはバスB上に存在する。プロセッサの占有権は、どのプロセッサ(一台だけ)がそのラインを占有しているかを示す。共有ラインは、どちらか一方または両方のバスにより共有することができる。
【0049】
<メモリ状態キャッシュ>
すでに説明したように、システム・メモリ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)
- 共有されるシステム・メモリ(105A、105B)と、当該システム・メモリとバスシステム(103A、103B)を介して相互接続された複数のデータ・キャッシュ・メモリ(121A、121B)と、状態キャッシュ・メモリ(203A、203B)と、を有し、キャッシュ整合スキームを備えたディレクトリベースのマルチプロセッサ・コンピュータ・システムにおいて、前記システム・メモリと前記複数のデータ・キャッシュ・メモリの各ライン間におけるデータの一貫性を維持するためのデータ整合方法であって、前記状態キャッシュ・メモリは、前記システム・メモリにセーブされているメモリの予め設定されたライン数に対するシステム・メモリ・ライン状態を含み、
前記システム・メモリのあるラインに関する情報が、前記状態キャッシュ・メモリのいずれのエントリにも登録されていない場合には、当該あるラインの前記システム・メモリ・ライン状態を、当該あるラインが複数のデータ・キャッシュ・メモリ間において「共有」されている状態であるとして取り扱うようにし、
前記状態キャッシュ・メモリのあるエントリにおいて置き換えを行う前に、当該置き換えを行うエントリから前記システム・メモリ・ライン状態を読み取り、この読み取った前記システム・メモリ・ライン状態が「占有」を示す場合には、この「占有」に係るラインを該当するデータ・キャッシュ・メモリから前記システム・メモリに書き戻すことにより、この「占有」に係るラインの前記システム・メモリ・ライン状態を前記「共有」として扱えるようにする、ことを特徴とするデータ整合方法。
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)
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)
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 |
-
1996
- 1996-12-09 US US08/763,703 patent/US5809536A/en not_active Expired - Lifetime
-
1997
- 1997-10-13 EP EP97308075A patent/EP0847011B1/en not_active Expired - Lifetime
- 1997-10-13 DE DE69736544T patent/DE69736544T2/de not_active Expired - Lifetime
- 1997-11-27 JP JP32604997A patent/JP3974983B2/ja not_active Expired - Fee Related
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 |