JP3678620B2 - Data consistency maintenance control method in multiprocessor system - Google Patents
Data consistency maintenance control method in multiprocessor system Download PDFInfo
- Publication number
- JP3678620B2 JP3678620B2 JP2000009808A JP2000009808A JP3678620B2 JP 3678620 B2 JP3678620 B2 JP 3678620B2 JP 2000009808 A JP2000009808 A JP 2000009808A JP 2000009808 A JP2000009808 A JP 2000009808A JP 3678620 B2 JP3678620 B2 JP 3678620B2
- Authority
- JP
- Japan
- Prior art keywords
- cache
- message
- memory
- block
- control unit
- 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
- 238000012423 maintenance Methods 0.000 title claims description 236
- 238000000034 method Methods 0.000 title claims description 68
- 230000015654 memory Effects 0.000 claims description 376
- 230000005540 biological transmission Effects 0.000 description 72
- 238000007726 management method Methods 0.000 description 28
- 230000004044 response Effects 0.000 description 11
- 230000000694 effects Effects 0.000 description 10
- 230000006870 function Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 101000986989 Naja kaouthia Acidic phospholipase A2 CM-II Proteins 0.000 description 3
- 238000013523 data management Methods 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Description
【0001】
【発明の属する技術分野】
本発明は、各プロセッサがキャッシュを備えたマルチプロセッサシステムにおける、データ一貫性維持制御方法に関する。
【0002】
【従来の技術】
マルチプロセッサシステムでは、システムに複数存在するキャッシュ上に、同一のアドレスのデータが存在し得る。そのため、同一アドレスのデータを保持するキャッシュ間でデータの一貫性を維持するための制御、データの一貫性維持制御が必要である。
【0003】
このデータ一貫性維持制御は、各プロセッサがあるブロックに対して書き込みを行ったときにはそれを排他的に行うことができ、読み出し時には最新の値が得られる、ということを保証するための制御である。従って、まず、書き込みの対象となっているブロックがどのキャッシュに存在しているかを特定することができなければならない。そして、読み出し時のミスの際に、どこに最新のブロックが存在するかを特定できなければならない。ここで、ブロックとはデータ管理の最小単位であり、大きさは例えば64バイトになる。
【0004】
例えば、文献(「A New Solution to CoherencyProblems in Multicache Systems」LUCIEN M.CENSIER and PAUL FEAUTRIER,IEEETransactions on Computers,p1112−1118,December 1978)に開示されている方法は、次の3つの特徴を持つ。まず第1の特徴は、キャッシュにおいてブロック単位にそのブロックが共有されているかどうかの情報を保持することにある。また第2の特徴は、メモリにおいてブロック単位にそのブロックを保持しているキャッシュを特定する情報、およびメモリに最新のブロックが存在するかどうかの情報、を保持することにある。また第3の特徴は、プロセッサが共有しているブロックに対して書き込みを行ったときに、他キャッシュのブロックを無効化して共有状態を解消し、当該キャッシュにのみ最新のブロックが存在する状態とすることにある。
【0005】
以降、この方法の動作を説明する。
【0006】
図1を参照すると、従来および本発明に係わるマルチプロセッサシステムは、命令を実行しメモリアクセスを行うプロセッサPRi、各プロセッサPRiに接続されプロセッサPRiがアクセスしたデータを一時的に保持するキャッシュCMi、データを保持するメモリMMi、キャッシュCMiおよびメモリMMiを接続する相互結合網12からなる。図1に示したシステムでは、相互結合網12は8つのポートを有しており、ポート0にはキャッシュCM1が、ポート1にはキャッシュCM2が、ポート2にはキャッシュCM3が、ポート3にはキャッシュCM4が、ポート4にはメモリMM1が、ポート5にはメモリMM2が、ポート6にはメモリMM3が、ポート7にはメモリMM4が、それぞれ接続されている。
【0007】
以降、プロセッサPR1がメモリMM2のデータをアクセスした場合を例にとり、そのアクセスによって行われるデータ一貫性維持のための一連の動作を説明する。
【0008】
プロセッサPR1があるブロックのデータに対してアクセスを行ったが、そのブロックがキャッシュCM1に存在しなかった場合(以降この場合をキャッシュミスと記す)の動作を説明する。この場合、まずキャッシュCM1からメモリMM2に読み出し要求メッセージが発行される。読み出し要求を受けたメモリMM2は、最新のブロックが当該メモリに存在するかどうかを検査し、存在すれば当該ブロックを、キャッシュCM1に送信する。存在しなければ、最新のブロックを保持するキャッシュが唯一存在するので、そのキャッシュ、例えばキャッシュCM3に書き戻し要求メッセージを発行する。書き戻し要求を受けたキャッシュCM3は、メモリMM2に対して当該ブロックの書き戻しを行う。メモリMM2は、キャッシュCM3から書き戻されたブロックをキャッシュCM1に送信する。ブロックを受けたキャッシュCM1は、再度、プロセッサPR1が行ったメモリアクセスを評価し、データ一貫性維持のために必要な処理を行う。
【0009】
上記の処理の結果、以前ブロックを保持していたキャッシュに加えて、新たにキャッシュCM1も最新のブロックを保持することになる。また、メモリMM2にも最新のブロックが存在する状態となる。
【0010】
次に、プロセッサPR1があるブロックのデータに対して読み出しを行い、そのブロックがキャッシュCM1に存在した場合(以降この場合をリードヒットと記す)の動作を説明する。この場合、キャッシュCM1はそのブロックのデータをプロセッサPR1に渡すことで、処理は完了する。
【0011】
次に、プロセッサPR1があるブロックのデータに対して書き込みを行い、そのブロックがキャッシュCM1に存在しかつ共有状態にない場合(以降この場合をライトヒットと記す)の動作を説明する。この場合、キャッシュCM1にプロセッサPR1が行った書き込みをキャッシュCM1が保持するブロックに反映し、書き込みが完了したことをプロセッサPR1に通知することで、処理は完了する。
【0012】
次に、プロセッサPR1があるブロックのデータに対して書き込みを行い、そのブロックがキャッシュCM1に存在しかつ共有状態にある場合(以降この場合をライトシェアードと記す)の動作を説明する。この場合、キャッシュCM1にプロセッサPR1が行った書き込みを反映し、またメモリMM2に対して書き込み要求メッセージが発行される。書き込み要求を受けたメモリMM2は、例えばキャッシュCM1以外にキャッシュCM3およびキャッシュCM4がブロックを保持していたとすると、キャッシュCM3およびキャッシュCM4に対して無効化要求メッセージを発行する。無効化要求を受けたキャッシュCM3およびキャッシュCM4はそれぞれ当該ブロックを無効化し無効化完了メッセージをメモリMM2に対して送信する。メモリMM2は、キャッシュCM3およびキャッシュCM4の両方から無効化完了メッセージを受け取ると、完了応答メッセージをキャッシュCM1に対して送信する。キャッシュCM1は、完了応答メッセージを受け取ると、プロセッサPR1に対して書き込みが完了したことを通知し、処理を完了する。上記の処理の結果、書き込みを行ったキャッシュにのみが最新のブロックを保持しており、メモリには最新のブロックが存在していない状態となる。
【0013】
上記の処理の結果、キャッシュCM1にのみ最新のブロックが存在することになり、他のキャッシュCMiおよびメモリMM2には最新のブロックが存在しない状態となる。
【0014】
以上の、データ一貫性維持のための動作の説明では、例えばメモリMM2が、キャッシュCM1からの読み出し要求を受けキャッシュCM3に対して書き戻し要求を発行し、ブロックが書き戻されるのを待っている状態で、キャッシュCM2から読み出し要求があった場合の動作などが省略されている。
【0015】
【発明が解決しようとする課題】
第1の問題点は、プロセッサの読み出しによりキャッシュミスが発生した場合に、キャッシュからプロセッサにデータが応答されるまでにかかる時間が長いということである。
【0016】
例えば、キャッシュCM1とキャッシュCM3にメモリMM2のブロックが存在し共有されている状態で、プロセッサPR1が書き込みを行い、次いでプロセッサPR4が読み出しを行った場合の動作を考える。プロセッサPR1が書き込みを行うことで、キャッシュCM1にのみ最新のブロックが存在する状態となり、メモリMM2にも最新のデータは存在しなくなる。次いでプロセッサPR4が読み出しを行うと、キャッシュCM4にブロックが存在しないのでキャッシュミスとなる。これにより、メモリMM2に対して読み出し要求メッセージが送信されるが、メモリMM2にも最新のデータは存在しないので、最新のデータを保持するキャッシュCM1に対して書き戻しを要求することとなる。メモリMM2はキャッシュCM1からのブロックの書き戻しを受け、その後ブロックをキャッシュCM4に送信する。ブロックを受けたキャッシュCM4は、再度、プロセッサPR4が行った読み出しを評価し、ブロックが存在するのでプロセッサPR4にデータを渡し、処理を完了する。
【0017】
このように、上記問題の理由は、プロセッサが書き込みを行った後に、メモリに最新のブロックが存在しなくなることにある。
【0018】
第2の問題点は、データ一貫性維持制御のためにキャッシュおよびメモリ間でやり取りされるメッセージが多いということである。
【0019】
その理由は、プロセッサが書き込みを行った後に、メモリに最新のブロックが存在しなくなることにある。即ち、あるプロセッサが書き込みを行った後、別のキャッシュにおいてキャッシュミスが発生した場合に、メモリへの読み出し要求メッセージおよびキャッシュへのブロック転送の他に、最新のデータを保持するキャッシュに対する書き戻し要求メッセージおよびそのキャッシュからのブロックの書き戻しが必要となるためである。
【0020】
本発明の目的は、読み出しによるキャッシュミスが発生した場合のデータ一貫性維持制御に要する時間を短縮した、データ一貫性維持制御方法を提供することにある。
【0021】
本発明の他の目的は、データ一貫性維持制御によって生成されるメッセージの数の増加を防ぐデータ一貫性一方制御方法を提供することにある。
【0022】
【課題を解決するための手段】
本発明の第1のデータ一貫性維持制御方法は、プロセッサが共有しているブロックに対して書き込みを行ったときに、当該キャッシュおよびメモリのブロックに対して書き込みを反映し、他キャッシュのブロックに関しては無効化を行い、書き込みが行われたキャッシュのブロックの状態を共有状態のままとする、データ一貫性維持制御をキャッシュおよびメモリにおいて行う手段(図2の23と図3の44)を有する。
【0023】
本発明の第2のデータ一貫性維持制御方法は、プロセッサが共有しているブロックに対して書き込みを行ったときに、当該キャッシュおよびメモリにのみ最新のブロックが存在する状態であり他のキャッシュが最新のブロックを保持していなければ、当該キャッシュおよびメモリのブロックに対して書き込みを反映するが、書き込みが行われたキャッシュのブロックの状態を共有状態から非共有状態に遷移させる、データ一貫性維持制御をキャッシュおよびメモリにおいて行う手段(図2の23と図3の44)を有する。
【0024】
本発明の第3のデータ一貫性維持制御方法は、メモリにおいてブロック単位にカウンタを設け、ブロックが新たにキャッシュに取り込まれたときはカウンタの値を0に初期化し、プロセッサが共有しているブロックに対して書き込みを行ったときはそのブロックのカウンタの値をインクリメントし、またプロセッサが共有しているブロックに対して書き込みを行ったときに、当該キャッシュおよびメモリにのみ最新のブロックが存在する状態であり他のキャッシュが最新のブロックを保持しておらずまたカウンタの値がある値になっていれば、当該キャッシュおよびメモリのブロックに対して書き込みを反映するが、書き込みが行われたキャッシュのブロックの状態を共有状態から非共有状態に遷移させる、データ一貫性維持制御をキャッシュおよびメモリにおいて行う手段(図2の23と図3の44)を有する。
【0025】
本発明の第1のデータ一貫性維持制御方法におけるデータ一貫性維持制御手段は、プロセッサが共有しているブロックに対して書き込みを行ったときに、書き込みが行われたキャッシュおよびメモリに、最新のブロックが存在する状態とする。
【0026】
本発明の第2のデータ一貫性維持制御方法におけるデータ一貫性維持制御手段は、プロセッサが実際に複数のキャッシュで共有されているブロックに対して連続して書き込みを行い、またその間他キャッシュがアクセスを行わなかった場合に、最初の2回の書き込みはメモリにも反映するが、2回目の書き込み後からブロックの共有状態は解消され、3回目の書き込み以降は当該キャッシュに対してのみ行われる。
【0027】
本発明の第3のデータ一貫性維持制御方法におけるデータ一貫性維持制御手段は、プロセッサが実際に複数のキャッシュで共有されているブロックに対して連続して書き込みを行い、またその間他のキャッシュがアクセスを行わなかった場合に、一定回数の書き込みはメモリにも反映するが、それ以降の書き込みは当該キャッシュに対してのみ行われる。
【0028】
【発明の実施の形態】
次に、本発明について図面を用いて説明する。
【0029】
再び、図1を参照すると、本発明に関わるマルチプロセッサシステムは、命令を実行しメモリアクセスを行うプロセッサPRi、各プロセッサPRiに接続されプロセッサPRiがアクセスしたデータを一時的に保持するキャッシュCMi、データを保持するメモリMMi、キャッシュCMiおよびメモリMMiを接続する相互結合網12からなる。図1に示したシステムでは、相互結合網12は8つのポートを有しており、ポート0にはキャッシュCM1が、ポート1にはキャッシュCM2が、ポート2にはキャッシュCM3が、ポート3にはキャッシュCM4が、ポート4にはメモリMM1が、ポート5にはメモリMM2が、ポート6にはメモリMM3が、ポート7にはメモリMM4が、それぞれ接続されている。
【0030】
ここで、各キャッシュCMiおよびメモリMMiには相互結合網12に接続されたポート番号に対応して3ビットの装置番号が付けられており、キャッシュCM1は‘000’、キャッシュCM2は‘001’、キャッシュCM3は‘010’、キャッシュCM4は‘011’、メモリMM1は‘100’、メモリMM2は‘101’、メモリMM3は‘110’、メモリMM4は‘111’となっている。また、各メモリMMiは、アドレスの上位2ビットが自装置番号の下位2ビットと一致する領域を管理している。例えばメモリMM2はアドレスの上位2ビットが‘01’の領域を管理している。
【0031】
次に、図2を参照すると、本発明に関わるキャッシュCMiは、タグステート等のブロックに関する情報を保持するタグメモリ22と、データをブロック単位で保持するキャッシュメモリ25と、プロセッサPRiからのメモリアクセスを保持、管理するメモリアクセス管理部21と、相互結合網12によって配送されたメッセージを受信する第1メッセージ受信部26と、相互結合網12へのメッセージの送信を行う第1メッセージ送信部27と、キャッシュメモリ25のアクセスを行う第1データ制御部24と、メモリアクセス管理部21で保持しているメモリアクセスおよび第1メッセージ受信部26で保持しているメッセージに関してデータ一貫性維持制御のための処理を行うために、タグメモリ22に格納されている情報の読み出しおよび書き込みを行う機能と、制御機能として、第1データ制御部24に対してキャッシュメモリ25のアクセスを指示する機能と、第1メッセージ送信部27にメッセージの送信を指示する機能とを有する第1一貫性維持制御部23とから構成される。
【0032】
次に、図3を参照すると、本発明に関わるメモリMMiは、ディレクトリステートおよびディレクトリマップ等のブロックに関する情報を保持するディレクトリメモリ43と、データを保持するメインメモリ46と、相互結合網12によって配送されたメッセージを受信する第2メッセージ受信部41と、相互結合網12へのメッセージの送信を行う第2メッセージ送信部42と、メインメモリ46のアクセスを行う第1データ制御部24と、第2メッセージ受信部41で保持しているメッセージに関してデータ一貫性維持制御のための処理を行うために、ディレクトリメモリ43に格納されている情報の読み出しおよび書き込みを行う機能と、制御機能として、第2データ制御部45に対してメインメモリ46のアクセスを指示する機能と、第2メッセージ送信部42にメッセージの送信を指示する機能とを有する第2一貫性維持制御部44とから構成される。
【0033】
次に、第1の実施の形態におけるデータ一貫性維持制御方法では、タグメモリ22に保持されるタグステートは、キャッシュメモリ25に格納されているブロックの状態を表すもので、I,S,E,Dの4つの状態からなり、それぞれ次のような意味を持つ。I状態は、最新のブロックが当該キャッシュメモリ25に存在しないことを表す。S状態は、最新のブロックが当該キャッシュメモリ25に存在し、また他のキャッシュメモリ25にも存在する可能性、即ちブロックが共有されている可能性を示唆する。E状態は、最新のブロックが当該キャッシュメモリ25に存在し、メインメモリ46にも最新のブロックが存在するが、他のキャッシュメモリ25には存在しないことを表す。D状態は、最新のブロックが当該キャッシュメモリ25に存在し、他のキャッシュメモリ25にもメインメモリ46にも最新のブロックは存在しないことを表す。また、キャッシュメモリ25においてタグステートの初期値はIとなり、キャッシュメモリ25に最新のブロックが存在しない状態となる。
【0034】
また、第1の実施の形態におけるデータ一貫性維持制御方法では、ディレクトリメモリ43に保持されるディレクトリマップは、メインメモリ46の該当するブロックを保持しているキャッシュCMiを表すもので、例えば文献(「A New Solution to Coherency Problems inMulticache Systems」LUCIEN M.CENSIERand PAUL FEAUTRIER,IEEE Transactions on Computers,p1112−1118,December 1978)に開示されている、フルマップ方式で構成される。フルマップ方式は、各キャッシュCMiに対応するビットを設け、そのビットによりキャッシュCMiがブロックを保持しているか保持していないかを示すものであり、図1のシステムでは、ディレクトリマップは4ビットで構成される。図4にディレクトリマップの値と、どのキャッシュCMiがブロックを保持しているかの関係を示す。図4において、○は保持していることを示し、×は保持していないことを示す。図より明らかなように、ディレクトリマップの第0ビットが1の場合キャッシュCM1がブロックを保持していることを示し、第1ビットが1の場合キャッシュCM2が、第2ビットが1の場合キャッシュCM3が、第3ビットが1の場合キャッシュCM4がそれぞれブロックを保持していることを示す。また、ディレクトリメモリ43において、ディレクトリマップの初期値は‘0000’となり、どのキャッシュCMiもブロックを保持していない状態となる。
【0035】
また、第1の実施の形態におけるデータ一貫性維持制御方法では、ディレクトリメモリ43に格納されるディレクトリステートは、メインメモリ46に格納されている該当するブロックの状態を表すもので、C,M,RMP,WSPの4つの状態からなり、それぞれ次のような意味を持つ。C状態は、メインメモリ46に最新のブロックが存在し、ディレクトリマップで示されるキャッシュCMiがデータを保持している可能性を示唆する。この状態の時、ディレクトリマップは図4に示した16種全ての値を取り得る。M状態は、メインメモリ46に最新のブロックが存在しない可能性を示唆し、ディレクトリマップで示されるただ1つのキャッシュCMiが最新のブロックを保持している可能性を示唆する。この状態の時、ディレクトリマップは‘0001’,‘0010’,‘0100’,‘1000’の4種の値しか取り得ない。RMP状態は、M状態の時に後述するRMメッセージを受け取り、ディレクトリマップで示されたただ1つのキャッシュCMiにFRメッセージを発行して、そのキャッシュCMiからのFDまたはACKメッセージが到着するのを待っていることを表す。この状態の時、ディレクトリマップは‘0001’,‘0010’,‘0100’,‘1000’の4種の値しか取り得ない。WSP状態は、C状態の時に後述するWSメッセージを受け取り、WSメッセージを発行したキャッシュCMiを除く、ディレクトリマップで示されたデータを保持している可能性のあるキャッシュCMi全てに対してIVメッセージを発行して、それらキャッシュCMi全てからのACKメッセージが到着するのを待っていることを表す。この状態の時、ディレクトリマップは‘0011’または‘0010’または‘0001’の3種類の値のみを取り得る。また、この値は保持するキャッシュCMiを表すものではなく、‘0011’は3個のACKの到着を待っていることを表し、‘0010’は2個のACKの到着を待っていることを表し、‘0001’は1個のACKの到着を待っていることを表す。また、ディレクトリメモリ43においてディレクトリステートの初期値はCとなり、メインメモリ46に最新のブロックが存在する状態となる。
【0036】
また、第1の実施の形態におけるデータ一貫性維持制御方法では、キャッシュCMiとメモリMMiの間でやり取りされるメッセージには、RM,WS,WB,FR,IV,FD,ACK,SDR,EDR,CR,NCRの11種類のメッセージが存在し、それぞれ次のような意味を持つ。
【0037】
RMメッセージは、キャッシュミスが発生した場合に、キャッシュCMiからメモリMMiに対して発行される読み出し要求メッセージである。WSメッセージは、ライトシェアードが発生した場合に、キャッシュCMiからメモリMMiに対して発行される書き込み要求メッセージである。このWSメッセージには、プロセッサが行った書き込みのデータが付加される。WBメッセージは、置き換え対象となったブロックを書き戻す場合に発せられる書き戻しメッセージである。このWBメッセージには、置き換え対象となったブロックが付加される。FRメッセージは、RMメッセージを受信したメモリMMiが、最新のブロックを保持するキャッシュCMiに対して発行する、書き戻し要求メッセージである。IVメッセージは、WSメッセージを受信したメモリMMiが、ブロックを保持するキャッシュCMiに対して発行する、無効化要求メッセージである。FDメッセージは、FRメッセージを受信したキャッシュCMiが、メモリMMiに対して発行する、書き戻しメッセージである。このFDメッセージには、キャッシュCMiが保持していた最新のブロックが付加される。ACKメッセージは、FRまたはIVメッセージを受信したキャッシュCMiが、メモリMMiに対して発行する応答メッセージである。SDRおよびEDRメッセージは、メモリMMiが、RMメッセージを発行したキャッシュCMiに対して、RMメッセージのためのデータ一貫性維持制御のための処理がメモリMMiで完了したことを通知する応答メッセージである。このSDRおよびEDRメッセージには、最新のブロックが付加される。CRメッセージは、メモリMMiが、WSメッセージを発行したキャッシュCMiに対して、WSメッセージのための処理がメモリMMiで完了したことを通知する応答メッセージである。NCRメッセージは、メモリMMiにおいて、RMまたはWSメッセージを処理できなかった場合に、RMまたはWSメッセージを発行したキャッシュCMiに対してその旨を通知するメッセージである。
【0038】
また、メッセージはヘッダ部とデータ部とで構成され、RM,FR,IV,ACK,CR,NCRの6種類のメッセージはヘッダ部のみで構成される。また、WSメッセージは、ヘッダ部と、プロセッサが行った書き込みのデータからなるデータ部とで構成される。また、WB,FD,SDR,EDRの4種類のメッセージは、ヘッダ部とブロック単位のデータからなるデータ部とで構成される。
【0039】
図5を参照しながら、メッセージヘッダ部の構成を説明する。
【0040】
メッセージヘッダは、宛先装置番号、メッセージ識別子、アドレス、要求元装置番号の5つのフィールドから構成される。宛先装置番号フィールドは、相互結合網12のどのポートに接続されたキャッシュCMiまたはメモリMMiに配送するメッセージであるかを示すもので、例えば‘101’の場合、ポート5に接続されたメモリMM2宛にメッセージが配送される。メッセージ識別子フィールドは、当該メッセージが11種類のメッセージの内どのメッセージであるかを示すものである。11種類のメッセージを識別する。アドレスフィールドは、各メッセージがどのアドレスに対するメッセージであるかを示すものである。要求元装置番号フィールドは、各メッセージがどのプロセッサPRiで行われたメモリアクセスに起源するものかを、そのプロセッサPRiに接続されているキャッシュCMiの装置番号で示すものである。例えば、プロセッサPR1で行われたメモリアクセスを起源とするメッセージであれば、そのメッセージの要求元装置番号は‘000’となる。
【0041】
次に、第1の実施の形態におけるデータ一貫性維持制御方法で、プロセッサPR1がメモリMM2のデータをアクセスした場合を例にとり、そのアクセスによって行われるデータ一貫性維持制御のための一連の動作を図を参照しながら説明する。
【0042】
まず、プロセッサPR1がメモリアクセスを発行すると、メモリアクセス管理部21はそのメモリアクセスを内部に取り込む。取り込まれるのは、読み出しアクセスか書き込みアクセスかを識別するメモリアクセスコマンド、アクセス対象を示すアドレス、書き込みアクセスの場合はデータ、である。コマンドおよびアドレスは第1一貫性維持制御部23に供給され、データは第1データ制御部24に供給されている。
【0043】
第1一貫性維持制御部23は、メモリアクセス管理部21にメモリアクセスが取り込まれたのを検知し、メモリアクセス管理部21に格納されているメモリアドレスから、対応するブロックのタグステートをタグメモリ22から読み出し、その値によりどのような処理をするかを判断する。
【0044】
まず、タグステートが‘I’であった場合、即ちキャッシュミスの場合の動作を説明する。
【0045】
この場合に、キャッシュメモリ25にメモリアクセスのあったアドレスのブロックを取り込むための空きスペースが無かった場合、既にキャッシュメモリ25に存在する他のブロックと置き換える必要が生じる。置き換えの必要がなかった場合は、第1一貫性維持制御部23はアドレスから特定されるメモリMMi(ここではメモリMM2である)に対してRMメッセージを送信する処理から開始する。
【0046】
置き換えが必要であり、置き換えの対象となったブロックのタグステートが‘D’であった場合、このブロックがシステムで唯一最新のブロックであるので、そのブロックを管理するメモリMMiに対して書き戻しの処理をまず行う必要がある。図6および図7にこの場合のシーケンスフローを示す。図は、置き換え対象となったブロックがメモリMM3で管理されているブロックの場合を示している。
【0047】
第1一貫性維持制御部23は、まずWBメッセージのヘッダ部を生成し第1メッセージ送信部27に供給する。この時生成されるメッセージヘッダの宛先装置番号はメモリMM3を表す‘110’となり、メッセージ識別子はWBを表す識別子に、アドレスは置き換えの対象となったブロックのアドレスに、要求元装置番号は当該キャッシュCM1の装置番号を表す‘000’になる。また、第1一貫性維持制御部23は、第1データ制御部24に対してキャッシュメモリ25から置き換えの対象となったブロックを読み出すように指示し、読み出されたブロックは第1メッセージ送信部27にWBメッセージのデータ部として供給される。第1メッセージ送信部27は、第1一貫性維持制御部23から供給されるヘッダ部と第1データ制御部24から供給されるデータ部をあわせて、相互結合網12にメッセージを送出する。また、第1一貫性維持制御部23は、タグメモリ22の書き込みを行い、置き換えの対象となったブロックのタグステートを‘I’に更新する。
【0048】
送出されたWBメッセージは、相互結合網12によって配送され、メモリMM3の第2メッセージ受信部41に取り込まれる。取り込まれたメッセージのヘッダ部は第2一貫性維持制御部44に供給され、データ部が第2データ制御部45に供給されている。
【0049】
メモリMM3の第2一貫性維持制御部44は、第2メッセージ受信部41にWBメッセージが取り込まれたのを検出し、第2メッセージ受信部41に格納されたヘッダ部のアドレスから、対応するブロックのディレクトリステートおよびディレクトリマップをディレクトリメモリ43から読み出し、その値によりどのような処理をするかを判断する。この時、ディレクトリステートが取り得る値は、方法上‘M’または‘RMP’に限定される。
【0050】
ディレクトリステートがMであった場合、図6に示すシーケンスとなる。第2一貫性維持制御部44はディレクトリメモリ43の書き込みを行い、ディレクトリステートをCに、ディレクトリマップをどのキャッシュCMiもブロックを保持していないことを表す‘0000’に更新する。また、第2一貫性維持制御部44は、第2データ制御部45にWBメッセージに付加されていたブロックをメインメモリ46の対応するブロックへ書き込ませる。
【0051】
ディレクトリステートがRMPであった場合、図7に示すシーケンスとなる。第2一貫性維持制御部44は、第2データ制御部45にWBメッセージに付加されていたブロックをメインメモリ46の対応するブロックへ書き込ませるのみとし、ディレクトリメモリ43の更新は行わない。
【0052】
以上が、置き換えが必要であり、置き換えの対象となったブロックのタグステートが‘D’であった場合のシーケンスである。
【0053】
次に、置き換えが必要であり、置き換えの対象となったブロックのタグステートが‘D’以外であった場合、第1一貫性維持制御部23はタグメモリ22の書き込みを行い、書き換えの対象となったブロックのタグステートを‘I’に更新する。
【0054】
第1一貫性維持制御部23において、上記置き換えのための処理が完了すると、第1一貫性維持制御部23はRMメッセージのヘッダ部を生成し第1メッセージ送信部27に供給する。この時生成されるメッセージヘッダの宛先装置番号はメモリMM2を表す‘101’となり、メッセージ長はRMメッセージの長さに、メッセージ識別子はRMを表す識別子に、アドレスはメモリアクセス管理部21に格納されているアドレスに、要求元装置番号は当該キャッシュCM1の装置番号を表す‘000’になる。第1メッセージ送信部27は、第1一貫性維持制御部23から供給されるヘッダ部をメッセージとして相互結合網12に送出する(図8,図9,図10,図11,図12に共通のシーケンス)。
【0055】
送出されたRMメッセージは、相互結合網12によって配送され、メモリMM2の第2メッセージ受信部41に取り込まれる。取り込まれたメッセージのヘッダ部は第2一貫性維持制御部44に供給されている。
【0056】
メモリMM2の第2一貫性維持制御部44は、第2メッセージ受信部41にRMメッセージが取り込まれたのを検出し、第2メッセージ受信部41に格納されたヘッダ部のアドレスから、対応するブロックのディレクトリステートおよびディレクトリマップをディレクトリメモリ43から読み出し、その値によりどのような処理をするかを判断する。
【0057】
ディレクトリステートがCで、かつディレクトリマップの値がRMメッセージを発行したキャッシュCMi(メッセージに付加されていた要求元装置番号から特定され、この場合はキャッシュCMiとなる)以外にブロックを保持するキャッシュCMiが存在しないことを表す場合(ここでは、ディレクトリマップが‘0000’または‘0001’の場合である)図8に示すシーケンスとなる。
【0058】
第2一貫性維持制御部44は、まずEDRメッセージのヘッダ部を生成し第2メッセージ送信部42に供給する。この時生成されるメッセージヘッダの宛先装置番号は、第2メッセージ受信部41に格納されていうメッセージヘッダ部の要求元装置番号となり(この場合は‘000’である)、メッセージ識別子はEDRを表す識別子に、アドレスおよび要求元装置番号は第2メッセージ受信部41に格納されているメッセージヘッダ部のアドレスおよび要求元装置番号(ここでは‘000’である)となる。また、第2一貫性維持制御部44は、第2データ制御部45に対して、メインメモリ46から第2メッセージ受信部41に格納されているメッセージヘッダ部のアドレスで特定されるブロックの読み出しを指示する。第2データ制御部45は読み出したブロックをEDRメッセージのデータ部として第2メッセージ送信部42に供給する。第2メッセージ送信部42は、第2一貫性維持制御部44から供給されるヘッダ部と第2データ制御部45から供給されるデータ部をあわせて、相互結合網12にメッセージを送出する。また、第2一貫性維持制御部44は、ディレクトリメモリ43の書き込みを行い、ディレクトリステートをMに、またディレクトリマップを‘0001’に遷移させる。このディレクトリマップの値は、RMメッセージを発行したキャッシュCM1に対応するビットを‘1’とし、他のビットを‘0’とする操作を行った結果得られる値である。
【0059】
送出されたEDRメッセージは相互結合網12によって配送され、キャッシュCM1の第1メッセージ受信部26に取り込まれる。取り込まれたメッセージのヘッダ部は第2一貫性維持制御部44に供給され、データ部は第1データ制御部24に供給されている。
【0060】
キャッシュCM1の第1一貫性維持制御部23は、第1メッセージ受信部26にEDRメッセージが取り込まれたのを検出し、第1データ制御部24に対してキャッシュメモリ25へのEDRメッセージに付加されていたブロックデータの取り込みを指示する。また、第1一貫性維持制御部23は、タグメモリ22の書き込みを行い、対応するブロックのタグステートを‘E’に更新する。
【0061】
第1一貫性維持制御部23はその後、再度メモリアクセス管理部21に格納されているメモリアクセスを評価し、データ一貫性維持のために必要な処理を行う。
【0062】
次に、RMメッセージを受け取ったメモリMM2の第2一貫性維持制御部44が、ディレクトリメモリ43の対応するブロックのディレクトリステートおよびディレクトリマップを読み出した結果、ディレクトリステートがCで、かつディレクトリマップの値がRMメッセージを発行したキャッシュCMi(ここではキャッシュCM1である)以外にブロックを保持するキャッシュCMiが存在することを表す場合(ここでは、キャッシュCM1がRMメッセージを発行しているので、ディレクトリマップが‘0000’または‘0001’以外の場合である)、図9に示すシーケンスとなる。
【0063】
第2一貫性維持制御部44は、まずSDRメッセージのヘッダ部を生成し第2メッセージ送信部42に供給する。この時生成されるメッセージヘッダの宛先装置番号は、第2メッセージ受信部41に格納されているメッセージヘッダ部の要求元装置番号となり(この場合は‘000’である)、メッセージ識別子はSDRを表す識別子に、アドレスおよび要求元装置番号は第2メッセージ受信部41に格納されているメッセージヘッダ部のアドレスおよび要求元装置番号(ここでは‘000’である)となる。また、第2一貫性維持制御部44は、第2データ制御部45に対して、メインメモリ46から第2メッセージ受信部41に格納されているメッセージヘッダ部のアドレスで特定されるブロックの読み出しを指示する。第2データ制御部45は読み出したブロックをSDRメッセージのデータ部として第2メッセージ送信部42に供給する。第2メッセージ送信部42は、第2一貫性維持制御部44から供給されるヘッダ部と第2データ制御部45から供給されるデータ部をあわせて、相互結合網12にメッセージを送出する。また、第2一貫性維持制御部44は、ディレクトリメモリ43の書き込みを行い、ディレクトリステートをCに、ディレクトリマップの値を‘1101’に遷移させる。このディレクトリマップの値は、RMメッセージを受け取る直前のディレクトリマップの値に対して、第2メッセージ受信部41に格納されている要求元装置番号から特定されるキャッシュCM1に対応するビットを‘1’にする操作を行った結果得られる値である。
【0064】
送出されたSDRメッセージは相互結合網12によって配送され、キャッシュCM1の第1メッセージ受信部26に取り込まれる。取り込まれたメッセージのヘッダ部は第2一貫性維持制御部44に供給され、データ部は第1データ制御部24に供給されている。
【0065】
キャッシュCM1の第1一貫性維持制御部23は、第1メッセージ受信部26にSDRメッセージが取り込まれたのを検出し、第1データ制御部24に対してキャッシュメモリ25へのSDRメッセージに付加されていたブロックデータの取り込みを指示する。また、第1一貫性維持制御部23は、タグメモリ22の書き込みを行い、対応するブロックのタグステートを‘S’に更新する。
【0066】
第1一貫性維持制御部23はその後、再度メモリアクセス管理部21に格納されているメモリアクセスを評価し、データ一貫性維持のために必要な処理を行う。
【0067】
次に、RMメッセージを受け取ったメモリMM2の第2一貫性維持制御部44が、ディレクトリメモリ43の対応するブロックのディレクトリステートおよびディレクトリマップを読み出した結果、ディレクトリステートがMであった場合、図10または図11に示すシーケンスとなる。この場合、ディレクトリマップにより、最新のブロックを保持するキャッシュCMiが唯一定まる。図10および図11に示した例では、ディレクトリマップの値は‘0100’であるので、キャッシュCM3が唯一最新のデータを保持していることが確認できる。
【0068】
第2一貫性維持制御部44は、まずFRメッセージのヘッダ部を生成し第2メッセージ送信部42に供給する。この時生成されるメッセージヘッダの宛先装置番号は、最新のブロックを保持するキャッシュCM3を表す‘010’となり、メッセージ識別子はFRを表す識別子に、アドレスおよび要求元装置番号は第2メッセージ受信部41に格納されているメッセージヘッダ部のアドレスおよび要求元装置番号(ここでは‘000’である)となる。第2メッセージ送信部42は、第2一貫性維持制御部44から供給されるヘッダ部をメッセージとして、相互結合網12に送出する。また、第2一貫性維持制御部44は、ディレクトリメモリ43の書き込みを行い、ディレクトリステートをRMPに更新するが、ディレクトリマップはそのままとする。
【0069】
送出されたFRメッセージは相互結合網12によって配送され、キャッシュCM3の第1メッセージ受信部26に取り込まれる。取り込まれたメッセージのヘッダ部は第2一貫性維持制御部44に供給されている。
【0070】
キャッシュCM3の第1一貫性維持制御部23は、第1メッセージ受信部26にFRメッセージが取り込まれたのを検出し、第1メッセージ受信部26に格納されているヘッダ部のアドレスから、対応するブロックのタグステートをタグメモリ22から読み出し、その値によりどのような処理をするかを判断する。この時、タグステートが取り得る値は、‘I’または‘E’または‘D’であり、‘S’であることはあり得ない。
【0071】
タグステートが‘E’または‘D’で最新のブロックが存在した場合、図10に示すシーケンスとなる。
【0072】
第1一貫性維持制御部23は、まずFDメッセージのヘッダ部を生成し第1メッセージ送信部27に供給する。この時生成されるメッセージヘッダの宛先装置番号は第1メッセージ受信部26に格納されているヘッダ部のアドレスから特定されるメモリMMiを表す装置番号となり(ここではアドレスからメモリMM2が特定され宛先装置番号は‘101’となる)、メッセージ識別子はFDを表す識別子に、アドレスおよび要求元装置番号は第2メッセージ受信部41に格納されているメッセージヘッダ部のアドレスおよび要求元装置番号(ここでは‘000’である)になる。また、第1一貫性維持制御部23は、第1データ制御部24に対してキャッシュメモリ25から第1メッセージ受信部26に格納されているアドレスから特定されるブロックを読み出すように指示し、読み出されたブロックは第1メッセージ送信部27にFDメッセージのデータ部として供給される。第1メッセージ送信部27は、第1一貫性維持制御部23から供給されるヘッダ部と第1データ制御部24から供給されるデータ部をあわせて、相互結合網12にメッセージを送出する。また、第1一貫性維持制御部23は、タグメモリ22の書き込みを行い、対応するブロックのタグステートを‘S’に更新する。
【0073】
送出されたFDメッセージは相互結合網12によって配送され、メモリMM2の第2メッセージ受信部41に取り込まれる。取り込まれたメッセージのヘッダ部は第2一貫性維持制御部44に供給され、データ部は第2データ制御部45に供給される。
【0074】
メモリMM2の第2一貫性維持制御部44は、第2メッセージ受信部41にFDメッセージが取り込まれたのを検出し、第2メッセージ受信部41に格納されたヘッダ部のアドレスから、対応するブロックのディレクトリステートおよびディレクトリマップをディレクトリメモリ43から読み出す。この時、ディレクトリステートが取り得る値は、方法上‘RMP’に限定される。
【0075】
第2一貫性維持制御部44は、まずSDRメッセージのヘッダ部を生成し第2メッセージ送信部42に供給する。この時生成されるメッセージヘッダの宛先装置番号は、第2メッセージ受信部41に格納されているメッセージヘッダ部の要求元装置番号となり(この場合は‘000’である)、メッセージ識別子はSDRを表す識別子に、アドレスおよび要求元装置番号は第2メッセージ受信部41に格納されているメッセージヘッダ部のアドレスおよび要求元装置番号(ここでは‘000’である)となる。また、第2一貫性維持制御部44は、第2データ制御部45に対して、FDメッセージに付加されていたブロックをメインメモリ46の対応するブロックへ書き込ませる。第2データ制御部45はメインメモリ46への書き込みを行うと同時に、FDメッセージに付加されていたブロックをSDRメッセージのデータ部として第2メッセージ送信部42にも供給する。第2メッセージ送信部42は、第2一貫性維持制御部44から供給されるヘッダ部と第2データ制御部45から供給されるデータ部をあわせて、相互結合網12にメッセージを送出する。また、第2一貫性維持制御部44は、ディレクトリメモリ43の書き込みを行い、ディレクトリステートをCに、ディレクトリマップの値を‘1101’に遷移させる。このディレクトリマップの値は、FDメッセージを受け取る直前のディレクトリマップの値に対して、第2メッセージ受信部41に格納されている要求元装置番号から特定されるキャッシュCM1に対応するビットを‘1’にする操作を行った結果得られる値である。
【0076】
送出されたSDRメッセージは相互結合網12によって配送され、キャッシュCM1の第1メッセージ受信部26に取り込まれる。取り込まれたメッセージのヘッダ部は第1一貫性維持制御部23に供給され、データ部は第1データ制御部24に供給される。
【0077】
キャッシュCM1の第1一貫性維持制御部23が、第1メッセージ受信部26にSDRメッセージが取り込まれたのを検出した場合の動作は、図9に示すシーケンスでキャッシュCM1がSDRメッセージを受け取った場合と同一である。
【0078】
次に、FRメッセージを受け取ったキャッシュCM3の第1一貫性維持制御部23が、タグメモリ22の対応するブロックのタグステートを読み出した結果、タグステートが‘I’であった場合、図11に示すシーケンスとなる。
【0079】
第1一貫性維持制御部23は、まずACKメッセージのヘッダ部を生成し第1メッセージ送信部27に供給する。この時生成されるメッセージヘッダの宛先装置番号は第1メッセージ受信部26に格納されているヘッダ部のアドレスから特定されるメモリMMiを表す装置番号となり(ここではアドレスからメモリMM2が特定される宛先装置番号は‘101’となる)、メッセージ識別子はACKを表す識別子に、アドレスおよび要求元装置番号は第2メッセージ受信部41に格納されているメッセージヘッダ部のアドレスおよび要求元装置番号(ここでは‘000’である)になる。第1メッセージ送信部27は、第1一貫性維持制御部23から供給されるヘッダ部をメッセージとして相互結合網12に送出する。
【0080】
送出されたACKメッセージは相互結合網12によって配送され、メモリMM2の第2メッセージ受信部41に取り込まれる。取り込まれたメッセージのヘッダ部は第2一貫性維持制御部44に供給される。
【0081】
メモリMM2の第2一貫性維持制御部44は、第2メッセージ受信部41にACKメッセージが取り込まれたのを検出し、第2メッセージ受信部41に格納されたヘッダ部のアドレスから、対応するブロックのディレクトリステートおよびディレクトリマップをディレクトリメモリ43から読み出す。この時、ディレクトリステートが取り得る値は、方法上‘WSP’と‘RMP’に限定されるが、ここでは図11に示すシーケンスでディレクトリステートが‘RMP’の場合を記す。
【0082】
第2一貫性維持制御部44は、まずEDRメッセージのヘッダ部を生成し第2メッセージ送信部42に供給する。この時生成されるメッセージヘッダの宛先装置番号は、第2メッセージ受信部41に格納されているメッセージヘッダ部の要求元装置番号となり(この場合は‘000’である)、メッセージ識別子はEDRを表す識別子に、アドレスおよび要求元装置番号は第2メッセージ受信部41に格納されているメッセージヘッダ部のアドレスおよび要求元装置番号(ここでは‘000’である)となる。また、第2一貫性維持制御部44は、第2データ制御部45に対して、メインメモリ46から第2メッセージ受信部41に格納されているメッセージヘッダ部のアドレスで特定されるブロックの読み出しを指示する。第2データ制御部45は読み出したブロックをEDRメッセージのデータ部として第2メッセージ送信部42に供給する。第2メッセージ送信部42は、第2一貫性維持制御部44から供給されるヘッダ部と第2データ制御部45から供給されるデータ部をあわせて、相互結合網12にメッセージを送出する。また、第2一貫性維持制御部44は、ディレクトリメモリ43の書き込みを行い、ディレクトリステートをMに、またディレクトリマップを‘0001’に遷移させる。このディレクトリマップの値は、第2メッセージ受信部41に格納されているメッセージヘッダ部の要求元装置番号で特定されるキャッシュCMi(ここではキャッシュCM1である)に対応するビットを‘1’とし、他のビットを‘0’とする操作を行った結果得られる値である。
【0083】
送出されたEDRメッセージは相互結合網12によって配送され、キャッシュCM1の第1メッセージ受信部26に取り込まれる。取り込まれたメッセージのヘッダ部は第2一貫性維持制御部44に供給され、データ部は第1データ制御部24に供給されている。
【0084】
キャッシュCM1の第1一貫性維持制御部23が、第1メッセージ受信部26にEDRメッセージが取り込まれたのを検出した場合の動作は、図8に示すシーケンスでキャッシュCM1がEDRメッセージを受け取った場合と同一である。
【0085】
次に、RMメッセージを受け取ったメモリMM2の第2一貫性維持制御部44が、ディレクトリメモリ43の対応するブロックのディレクトリステートおよびディレクトリマップを読み出した結果、ディレクトリステートが‘RMP’または‘WSP’であった場合、図12に示すシーケンスとなる。
【0086】
第2一貫性維持制御部44は、まずNCRメッセージのヘッダ部を生成し第2メッセージ送信部42に供給する。この時生成されるメッセージヘッダの宛先装置番号は、第2メッセージ受信部41に格納されているメッセージヘッダ部の要求元装置番号となり(この場合は‘000’である)、メッセージ識別子はNCRを表す識別子に、アドレスおよび要求元装置番号は第2メッセージ受信部41に供給されているメッセージヘッダ部のアドレスおよび要求元装置番号(ここでは‘000’である)となる。第2メッセージ送信部42は、第2一貫性維持制御部44から供給されるヘッダ部をメッセージとして相互結合網12に送出する。
【0087】
送出されたNCRメッセージは相互結合網12によって配送され、キャッシュCM1の第1メッセージ受信部26に取り込まれる。取り込まれたメッセージのヘッダ部は第1一貫性維持制御部23に供給される。
【0088】
キャッシュCM1の第1一貫性維持制御部23は、第1メッセージ受信部26にNCRメッセージが取り込まれたのを検出し、再度メモリアクセス管理部21に格納されているメモリアクセスを評価し、データ一貫性維持のために必要な処理を行う。
【0089】
以上が、キャッシュミスの場合のデータ一貫性維持のための動作である。
【0090】
次に、メモリアクセス管理部21にメモリアクセスが取り込まれたのを検知し、メモリアクセス管理部21に格納されているアクセスから、対応するブロックのタグステートをタグメモリ22から読み出した結果、メモリアクセス管理部21に取り込まれたメモリアクセスが読み出しで、タグステートが‘S’または‘E’または‘D’であった場合(リードヒットの場合)の動作を説明する。
【0091】
第1一貫性維持制御部23は、第1データ制御部24に対してキャッシュメモリ25からメモリアクセス管理部21に格納されているアドレスで特定されるデータを読み出せる。読み出されたデータはメモリアクセス管理部21に供給され、取り込まれる。メモリアクセス管理部21に取り込まれたデータはプロセッサPR1に供給される。また、第1一貫性維持制御部23はプロセッサPR1に対してメモリアクセスの完了応答を行い、プロセッサPR1にメモリアクセス管理部21が供給するデータの取り込みを行わせ、読み出しアクセスを完了させる。
【0092】
次に、メモリアクセス管理部21にメモリアクセスが取り込まれたのを検知し、メモリアクセス管理部21に格納されているアドレスから、対応するブロックのタグステートをタグメモリ22から読み出した結果、メモリアクセス管理部21に取り込まれたメモリアクセスが書き込みで、タグステートが‘E’または‘D’であった場合の動作を説明する(ライトヒットの場合)。
【0093】
第1一貫性維持制御部23は、第1データ制御部23に、キャッシュメモリ25のメモリアクセス管理部21が出力するアドレスから特定されるデータを、メモリアクセス管理部21が供給するデータに書き換えさせる。また、第1一貫性維持制御部23は、タグメモリ22の書き込みを行い、タグステートを‘D’に更新する。また、第1一貫性維持制御部23はプロセッサPR1に対してメモリアクセスの完了応答を行い、書き込みアクセスを完了させる。
【0094】
次に、メモリアクセス管理部21にメモリアクセスが取り込まれたのを検知し、メモリアクセス管理部21に格納されているアドレスから、対応するブロックのタグステートをタグメモリ22から読み出した結果、メモリアドレス管理部21に取り込まれたメモリアクセスが書き込みで、タグステートが‘S’であった場合の動作を説明する(ライトシェアードの場合)。
【0095】
第1一貫性維持制御部23は、まずWSメッセージのヘッダ部を生成し第1メッセージ送信部27に供給する。この時生成されるメッセージヘッダの宛先装置番号はメモリMM2を表す‘101’となり、メッセージ識別子はWSを表す識別子に、アドレスはメモリアクセス管理部21に格納されているアドレスに、要求元装置番号は当該キャッシュCM1の装置番号を表す‘000’になる。また、第1一貫性維持制御部23は、第1データ制御部24に、キャッシュメモリ25のメモリアクセス管理部21が出力するアドレスから特定されるデータを、メモリアクセス管理部21が供給するデータに書き換えさせる。この時、第1データ制御部24はメモリアクセス管理部21が供給するデータをキャッシュメモリ25に書き込むと同時に、第1メッセージ送信部27にも供給する。第1メッセージ送信部27は、第1一貫性維持制御部23から供給されるヘッダ部と第1データ制御部24から供給されるデータ部を合わせて、相互結合網12にメッセージを送出する。
【0096】
送出されたWSメッセージは相互結合網12によって配送され、メモリMM2の第2メッセージ受信部41に取り込まれる。取り込まれたメッセージのヘッダ部は第2一貫性維持制御部44に供給され、データ部は第2データ制御部45に供給される。
【0097】
メモリMM2の第2一貫性維持制御部44は、第2メッセージ受信部41にWSメッセージが取り込まれたのを検出し、第2メッセージ受信部41に格納されたヘッダ部のアドレスから、対応するブロックのディレクトリステートおよびディレクトリマップをディレクトリメモリ43から読み出す。この時、ディレクトリステートが取り得る値は、方法上‘C’または‘WSP’に限定される。また、ディレクトリステートがCの場合は、WSメッセージを発行したキャッシュCM1に対応するディレクトリマップのビットは必ず‘1’である。
【0098】
ディレクトリステートが‘C’で、かつディレクトリマップの値がWSメッセージを発行したキャッシュCMi以外にブロックを保持するキャッシュCMiが存在しないことを表す場合(ここでは、キャッシュCM1がWSメッセージを発行しているので、ディレクトリマップが‘0001’の場合である)図13に示すシーケンスとなる。
【0099】
第2一貫性維持制御部44は、まずCRメッセージのヘッダ部を生成し第2メッセージ送信部42に供給する。この時生成されるメッセージヘッダの宛先装置番号は、第2メッセージ受信部41に格納されているメッセージヘッダ部の要求元装置番号となり(この場合は‘000’である)、メッセージ識別子はCRを表す識別子に、アドレスおよび要求元装置番号は第2メッセージ受信部41に格納されているメッセージヘッダ部のアドレスおよび要求元装置番号(ここでは‘000’である)となる。第2メッセージ送信部42は、第2一貫性維持制御部44から供給されるヘッダ部をメッセージとして相互結合網12に送出する。また、第2一貫性維持制御部44は、第2データ制御部45に、メインメモリ46の第2メッセージ受信部41が出力するアドレスから特定されるデータを、第2メッセージ受信部41が供給するデータに書き換えさせる。
【0100】
送出されたCRメッセージは相互結合網12によって配送され、キャッシュCM1の第1メッセージ受信部26に取り込まれる。取り込まれたメッセージのヘッダ部は第1一貫性維持制御部23に供給される。
【0101】
キャッシュCM1の第1一貫性維持制御部23は、第1メッセージ受信部26にCRメッセージが取り込まれたのを検出し、プロセッサPR1に対してメモリアクセスの完了応答を行い、書き込みアクセスを完了させる。
【0102】
次に、WSメッセージを受け取ったメモリMM2の第2一貫性維持制御部44が、ディレクトリメモリ43の対応するブロックのディレクトリステートおよびディレクトリマップを読み出した結果、ディレクトリステートがCであり、かつディレクトリマップの値がWSメッセージを発行したキャッシュCMi以外にブロックを保持するキャッシュのCMiが存在することを表す場合(ここでは、キャッシュCM1がWSメッセージを発行しているので、ディレクトリマップの値が‘0001’以外の場合である)図14に示すシーケンスとなる。以降では、また図14に示した例では、WSメッセージを受け取ったときのディレクトリマップの値が例えば‘1101’であった場合を説明する。
【0103】
第2一貫性維持制御部44はまず、キャッシュCM1が最新のブロックを保持しておりかつWSメッセージを発行したキャッシュCMiではないかどうかを検査する。この時、キャッシュCM1は、第2メッセージ受信部41に格納された要求元装置番号よりWSメッセージを発行したキャッシュCMiであるのでこの場合は何も行わない。
【0104】
次に、第2一貫性維持制御部44は、キャッシュCM2が最新のブロックを保持しておりかつWSメッセージを発行したキャッシュCMiではないかどうかを検査する。この時、ディレクトリマップの値‘1101’より、キャッシュCM2は最新のデータを保持していないのでこの場合も何も行わない。
【0105】
次に、第2一貫性維持制御部44は、キャッシュCM3が最新のブロックを保持しておりかつWSメッセージを発行したキャッシュCMiではないかどうかを検査する。この時、キャッシュCM3は最新のブロックを保持しておりまたWSメッセージを発行したキャッシュCMiではないので、次のような処理をする。第2一貫性維持制御部44は、IVメッセージのヘッダ部を生成し第2メッセージ送信部42に供給する。この時生成されるメッセージヘッダの宛先装置番号は、キャッシュCM3を表す‘010’となり、メッセージ識別子はIVを表す識別子に、アドレスおよび要求元装置番号は第2メッセージ受信部41に格納されているメッセージヘッダ部のアドレスおよび要求元装置番号(ここでは‘000’である)となる。第2メッセージ送信部42は、第2一貫性維持制御部44から供給されるヘッダ部をメッセージとして、相互結合網12に送出する。
【0106】
次に、第2一貫性維持制御部44は、キャッシュCM4が最新のブロックを保持しておりかつWSメッセージを発行したキャッシュCMiではないかどうかを検査する。この時、キャッシュCM4は最新のブロックを保持しておりまたWSメッセージを発行したキャッシュCMiではないので、前記したキャッシュCM3の場合と同じくIVメッセージのヘッダ部を生成する。ただし、宛先装置番号はキャッシュCM4を表す‘011’となる。
【0107】
最後に、第2一貫性維持制御部44は、第2データ制御部45に、メインメモリ46の第2メッセージ受信部41が出力するアドレスから特定されるデータを、第2メッセージ受信部41が供給するデータに書き換えさせる。また、第2一貫性維持制御部44は、ディレクトリメモリ43の書き込みを行い、ディレクトリステートを‘WSP’に、またディレクトリマップを‘0010’に遷移させる。このディレクトリマップの値は、送信したIVメッセージの数を表すものである。
【0108】
送出された2つのIVメッセージは相互結合網12によって配送され、それぞれキャッシュCM3およびキャッシュCM4の第1メッセージ受信部26に取り込まれる。取り込まれたメッセージのヘッダ部は第2一貫性維持制御部44に供給され、データ部は第1データ制御部24に供給されている。
【0109】
キャッシュCM3の第1一貫性維持制御部23は、第1メッセージ受信部26にIVメッセージが取り込まれたのを検出し、第1メッセージ受信部26に格納されているヘッダ部のアドレスから、対応するブロックのタグステートをタグメモリ22から読み出し、その値によりどのような処理をするかを判断する。この時、タグステートが取り得る値は、‘I’または‘S’に限定される。
【0110】
タグステートが‘I’であった場合、第1一貫性維持制御部23は、まずACKメッセージのヘッダ部を生成し第1メッセージ送信部27に供給する。この時生成されるメッセージヘッダの宛先装置番号は第1メッセージ受信部26に格納されているヘッダ部のアドレスから特定されるメモリMMiを表す装置番号となり(ここではアドレスからメモリMM2が特定され宛先装置番号は‘101’となる)、メッセージ識別子はACKを表す識別子に、アドレスおよび要求元装置番号は第2メッセージ受信部41に格納されているメッセージヘッダ部のアドレスおよび要求元装置番号(ここでは‘000’である)になる。第1メッセージ送信部27は、第1一貫性維持制御部23から供給されるヘッダ部をメッセージとして相互結合網12に送出する。
【0111】
また、タグステートが‘S’であった場合、第1一貫性維持制御部23は、まずACKメッセージのヘッダ部を生成し第1メッセージ送信部27に供給する。この時生成されるメッセージヘッダの宛先装置番号は第1メッセージ受信部26に格納されているヘッダ部のアドレスから特定されるメモリMMiを表す装置番号となり(ここではアドレスからメモリMM2が特定され宛先装置番号は‘101’となる)、メッセージ識別子はACKを表す識別子に、アドレスおよび要求元装置番号は第2メッセージ受信部41に格納されているメッセージヘッダ部のアドレスおよび要求元装置番号(ここでは‘000’である)になる。第1メッセージ送信部27は、第1一貫性維持制御部23から供給されるヘッダ部をメッセージとして相互結合網12に送出する。また、第1一貫性維持制御部23は、タグメモリ22の書き込みを行い、対応するブロックのタグステートを‘I’に更新する。
【0112】
送出されたACKメッセージは相互結合網12によって配送され、メモリMM2の第2メッセージ受信部41に取り込まれる。取り込まれたメッセージのヘッダ部は第2一貫性維持制御部44に供給される。
【0113】
メモリMM2の第2一貫性維持制御部44は、第2メッセージ受信部41にACKメッセージが取り込まれたのを検出し、第2メッセージ受信部41に格納されたヘッダ部のアドレスから、対応するブロックのディレクトリステートおよびディレクトリマップをディレクトリメモリ43から読み出す。この時、ディレクトリステートが取り得る値は、方法上‘WSP’と‘RMP’に限定されるが、ここでは図14に示すシーケンスでディレクトリステートが‘WSP’の場合を記す。また、この時、ディレクトリマップの値が‘0001’であるかそうでないかにより異なる処理をする。
【0114】
ディレクトリステートが‘WSP’で、ディレクトリマップが‘0001’でない場合(ここでは‘0010’とする。この場合は図14に示すシーケンスでキャッシュCM3が発行したACKメッセージを受け取った場合である)、第2一貫性維持制御部44は、ディレクトリメモリ43の書き込みを行い、ディレクトリステートはそのまま‘WSP’とするが、ディレクトリマップは、全ディレクトリマップの値をデクリメントした値(ここでは‘0001’である)に更新する。
【0115】
次にディレクトリステートが‘WSP’で、ディレクトリマップの値が‘0001’であった場合(図14に示すシーケンスでキャッシュCM4が発行したACKメッセージを受け取った場合である)、第2一貫性維持制御部44はまず、CRメッセージのヘッダ部を生成し第2メッセージ送信部42に供給する。この時生成されるメッセージヘッダの宛先装置番号は、第2メッセージ受信部41に格納されているメッセージヘッダ部の要求元装置番号となり(この場合は‘000’である)、メッセージ識別子はCRを表す識別子に、アドレスおよび要求元装置番号は第2メッセージ受信部41に格納されているメッセージヘッダ部のアドレスおよび要求元装置番号(ここでは‘000’である)となる。第2メッセージ送信部42は、第2一貫性維持制御部44から供給されるヘッダ部をメッセージとして相互結合網12に送出する。また、第2一貫性維持制御部44は、ディレクトリメモリ43の書き込みを行い、ディレクトリステートをMに、またディレクトリマップを‘0001’に遷移させる。このディレクトリマップの値は、第2メッセージ受信部41に格納されたヘッダ部の要求元装置番号から特定されるキャッシュCMi(ここではキャッシュCM1である)に対応するビットを‘1’とし、他のビットを‘0’とする操作を行った結果得られる値である。
【0116】
送出されたCRメッセージは相互結合網12によって配送され、キャッシュCM1の第1メッセージ受信部26に取り込まれる。取り込まれたメッセージのヘッダ部は第2一貫性維持制御部44に供給され、データ部は第1データ制御部24に供給されている。
【0117】
キャッシュCM1の第1一貫性維持制御部23が、第1メッセージ受信部26にCRメッセージが取り込まれたのを検出した場合の動作は、図13に示すシーケンスでキャッシュCM1がCRメッセージを受け取った場合と同一である。
【0118】
次に、WSメッセージを受け取ったメモリMM2の第2一貫性維持制御部44が、ディレクトリメモリ43の対応するブロックのディレクトリステートおよびディレクトリマップを読み出した結果、ディレクトリステートが‘WSP’であった場合、図15に示すシーケンスとなる。この時、同ブロックにおいて既に他のキャッシュCMiからのWSメッセージを受付け処理している最中であり、そのWSメッセージを処理したときに、メモリMM2はキャッシュCM1に対してIVメッセージを送信している。これにより、キャッシュCM1においてタグメモリ22に格納されている当該ブロックのタグステートは‘S’から‘I’に更新されている。
【0119】
第2一貫性維持制御部44は、まずNCRメッセージのヘッダ部を生成し第2メッセージ送信部42に供給する。この時生成されるメッセージヘッダの宛先装置番号は、第2メッセージ受信部41に格納されているメッセージヘッダ部の要求元装置番号となり(この場合は‘000’である)、メッセージ識別子はNCRを表す識別子に、アドレスおよび要求元装置番号は第2メッセージ受信部41に格納されているメッセージヘッダ部のアドレスおよび要求元装置番号(ここでは‘000’である)となる。第2メッセージ送信部42は、第2一貫性維持制御部44から供給されるヘッダ部をメッセージとして相互結合網12に送出する。
【0120】
送出されたNCRメッセージは相互結合網12によって配送され、キャッシュCM1の第1メッセージ受信部26に取り込まれる。取り込まれたメッセージのヘッダ部は第1一貫性維持制御部23に供給される。
【0121】
キャッシュCM1の第1一貫性維持制御部23が、第1メッセージ受信部26にNCRメッセージが取り込まれたのを検出した場合の動作は、図12に示すシーケンスでキャッシュCM1がNCRメッセージを受け取った場合と同一である。
【0122】
次に、本発明の第1の実施の形態の効果について説明する。
【0123】
例えば、キャッシュCM1とキャッシュCM3にメモリMM2のブロックが存在し共有されている状態で、プロセッサPR1が書き込みを行い、次いでプロセッサPR4が読み出しを行った場合の動作を考える。プロセッサPR1が行った書き込みは、キャッシュCM1およびメモリMM2に反映されるので、キャッシュCM1およびメモリMM2に最新のデータが存在する状態となる。
【0124】
そのため、次いでプロセッサPR4が読み出しを行った場合、メモリMM2に対して読み出し要求メッセージが送信されるが、メモリMM2に最新のデータが存在するため、メモリMM2はすぐさまキャッシュCM1に対して最新のブロックを付加したメッセージを送信することができる。このため、メモリMM2において最新のブロックを唯一保持するキャッシュCMiに対して書き戻しを要求してその応答を受け取る処理がなくなり、プロセッサPR4の読み出しに対してデータを応答するまでの時間を短縮することができる。また、書き戻しを要求する必要がなくなることから、データ一貫性維持のためにキャッシュおよびメモリ間でやり取りされるメッセージ数を少なくすることができる。
【0125】
次に第2の実施の形態におけるデータ一貫性維持制御方法では、第1の実施の形態におけるデータ一貫性維持制御方法と同様に、タグメモリ22に格納されるタグステートはI,S,E,Dの4状態からなる。また、ディレクトリメモリ43に格納されるディレクトリマップも4ビットからなるフルマップ方式で構成される。またディレクトリステートもC,M,RMP,WSPの4状態からなる。
【0126】
第2の実施の形態におけるデータ一貫性維持制御方法で、キャッシュCMiとメモリMMiの間でやり取りされるメッセージには、第1の実施の形態におけるデータ一貫性維持制御方法での、RM,WS,WB,FR,IV,FD,ACK,SDR,EDR,CR,NCRの11種類のメッセージに、新たにECRメッセージが加えられ、12種類のメッセージが存在する。ECRメッセージは、CRメッセージ同様、メモリMMiがWSメッセージを発行したキャッシュCMiに対して、WSメッセージのための処理がメモリMMiで完了したことを通知する応答メッセージである。
【0127】
次に、第2の実施の形態におけるデータ一貫性維持制御方法で、プロセッサPR1がメモリMM2のデータをアクセスした場合を例にとり、そのアクセスによって行われるデータ一貫性維持のための一連の動作を、第1の実施の形態におけるデータ一貫性維持制御方法と異なる点のみを示す。
【0128】
第2の実施の形態におけるデータ一貫性維持制御方法で、第1の実施の形態におけるデータ一貫性維持制御方法と動作を異にするのは、WSメッセージを受け取ったメモリMM2の第2一貫性維持制御部44が、ディレクトリメモリ43の対応するブロックのディレクトリステートおよびディレクトリマップを読み出した結果、ディレクトリステートがCであり、かつディレクトリマップの値がWSメッセージを発行したキャッシュCMi以外にブロックを保持するキャッシュCMiが存在しないことを表す場合(ここでは、キャッシュCM1がWSメッセージを発行しているので、ディレクトリマップの値が‘0001’の場合である)である。即ち、第1の実施の形態におけるデータ一貫性維持制御方法では、図13に示すシーケンスとなる場合である。
【0129】
この場合、第2の実施の形態におけるデータ一貫性維持制御方法では図16に示すシーケンスをとる。
【0130】
第2一貫性維持制御部44は、まずECRメッセージのヘッダ部を生成し第2メッセージ送信部42に供給する。この時生成されるメッセージヘッダの宛先装置番号は、第2メッセージ受信部41に格納されているメッセージヘッダ部の要求元装置番号となり(この場合は‘000’である)、メッセージ識別子はECRを表す識別子に、アドレスおよび要求元装置番号は第2メッセージ受信部41に格納されているメッセージヘッダ部のアドレスおよび要求元装置番号(ここでは‘000’である)となる。第2メッセージ送信部42は、第2一貫性維持制御部44から供給されるヘッダ部をメッセージとして相互結合網12に送出する。また、第2一貫性維持制御部44は、第2データ制御部45に、メインメモリ46の第2メッセージ受信部41が出力するアドレスから特定されるデータを、第2メッセージ受信部41が供給するデータに書き換えさせる。また、第2一貫性維持制御部44は、ディレクトリメモリ43の書き込みを行い、ディレクトリステートをMに、またディレクトリマップを‘0001’に遷移させる。このディレクトリマップの値は、RMメッセージを発行したキャッシュCM1に対応するビットを‘1’とし、他のビットを‘0’とする操作を行った結果得られる値である。
【0131】
送出されたECRメッセージは相互結合網12によって配送され、キャッシュCM1の第1メッセージ受信部26に取り込まれる。取り込まれたメッセージのヘッダ部は第2一貫性維持制御部44に供給され、データ部は第1データ制御部24に供給されている。
【0132】
キャッシュCM1の第1一貫性維持制御部23は、タグメモリ22の書き込みを行い、対応するブロックのタグステートを‘S’から‘E’に更新する。また、第1一貫性維持制御部23は、プロセッサPR1に対してメモリアクセスの完了応答を行い、書き込みアクセスを完了させる。
【0133】
次に、本発明の第2の実施の形態の効果について説明する。
【0134】
例えば、キャッシュCM1のブロックの状態が共有状態でありキャッシュCM1とメモリMM2にのみ最新のブロックが存在する状態で、プロセッサPR1が連続して書き込みを行い、その間他のプロセッサPRiがアクセスを行わなかった場合を考える。この場合、第1の実施の形態におけるデータ一貫性維持制御方法では、書き込みの度に書き込み要求メッセージがキャッシュCM1からメモリMM2に発行され、この場合のデータ一貫性維持制御のためのメッセージ数が増加するという問題がある。
【0135】
第2の実施の形態におけるデータ一貫性維持制御方法では、上記のような場合に、最初の2回の書き込みに関してはキャッシュCM1からメモリMM2に対して書き込み要求メッセージが発行されるが、続く3回目からの書き込みに関してはデータ一貫性維持制御のためのメッセージは発行されず、この場合のメッセージの増加を防ぐことができる。
【0136】
次に第3の実施の形態におけるデータ一貫性維持制御方法では、第2の実施の形態におけるデータ一貫性維持制御方法と同様に、タグメモリ22に格納されるタグステートはI,S,E,Dの4状態からなる。また、ディレクトリメモリ43に格納されるディレクトリマップも4ビットからなるフルマップ方式で構成される。またディレクトリステートもC,M,RMP,WSPの4状態からなる。
【0137】
第3の実施の形態におけるデータ一貫性維持制御方法では、ディレクトリステートおよびディレクトリマップに加えて、更新頻度値がブロックに関する情報としてディレクトリメモリ43に保持される。更新頻度値は、ある1つのキャッシュCMiとメモリMMiが最新のブロックを保持している状態で、メモリMMiが、他のキャッシュCMiからのRMメッセージを受け取るまでに、何回最新のブロックを保持するキャッシュCMiからWSメッセージを受け取ったかをカウントした値である。
【0138】
また、第3の実施の形態におけるデータ一貫性維持制御方法では、新たにパラメータとして更新頻度上限値が定義される。
【0139】
また、第3の実施の形態におけるデータ一貫性維持制御方法で、キャッシュCMiとメモリMMiの間でやり取りされるメッセージには、第2の実施の形態におけるデータ一貫性維持制御方法でのメッセージ同様、RM,WS,WB,FR,IV,FD,ACK,SDR,EDR,CR,NCR,ECRの12種類のメッセージが存在する。
【0140】
次に、第3の実施の形態におけるデータ一貫性維持制御方法で、プロセッサPR1がメモリMM2のデータをアクセスした場合を例にとり、そのアクセスによって行われるデータ一貫性維持のための一連の動作を説明する。
【0141】
第3の実施の形態におけるデータ一貫性維持制御方法でのキャッシュCMiの動作は、第2の実施の形態におけるデータ一貫性維持制御方法でのキャッシュCMiの動作と同一であるので、ここではその説明を省略する。以降第3の実施の形態におけるデータ一貫性維持制御方法でのメモリMMiの動作を、RM,WS,WB,FD,ACKの5種類のメッセージを受け取った場合の順に説明する。
【0142】
メモリMM2の第2一貫性維持制御部44は、第2メッセージ受信部41にRMメッセージが取り込まれたのを検出すると、第2メッセージ受信部41に格納されたヘッダ部のアドレスから、対応するブロックのディレクトリステートおよびディレクトリマップおよび更新頻度値をディレクトリメモリ43から読み出し、その値によりどのような処理をするかを判断する。
【0143】
ディレクトリステートがCで、かつディレクトリマップの値がRMメッセージを発行したキャッシュCMi(メッセージに付加されていた要求元装置番号から特定され、この場合はキャッシュCM1となる)以外にブロックを保持するキャッシュCMiが存在しないことを表す場合(ここでは、ディレクトリマップが‘0000’または‘0001’の場合である)、更新頻度値の値に関わらず、図17に示すシーケンスで、メモリMM2がキャッシュCM1からのRMメッセージを受け取った場合の処理をする。
【0144】
第2一貫性維持制御部44は、まずEDRメッセージのヘッダ部を生成し第2メッセージ送信部42に供給する。この時生成されるメッセージヘッダの宛先装置番号は、第2メッセージ受信部41に格納されているメッセージヘッダ部の要求元装置番号となり(この場合は‘000’である)、メッセージ識別子はEDRを表す識別子に、アドレスおよび要求元装置番号は第2メッセージ受信部41に格納されているメッセージヘッダ部のアドレスおよび要求元装置番号(ここでは‘000’である)となる。また、第2一貫性維持制御部44は、第2データ制御部45に対して、メインメモリ46から第2メッセージ受信部41に格納されているメッセージヘッダ部のアドレスで特定されるブロックの読み出しを指示する。第2データ制御部45は読み出したブロックをEDRメッセージのデータ部として第2メッセージ送信部42に供給する。第2メッセージ送信部42は、第2一貫性維持制御部44から供給されるヘッダ部と第2データ制御部45から供給されるデータ部をあわせて、相互結合網12にメッセージを送出する。また、第2一貫性維持制御部44は、ディレクトリメモリ43の書き込みを行い、ディレクトリステートをMに、またディレクトリマップを‘0001’に、更新頻度値を‘0’に更新する。このディレクトリマップの値は、RMメッセージを発行したキャッシュCM1に対応するビットを‘1’とし、他のビットを‘0’とする操作を行った結果得られる値である。
【0145】
ディレクトリステートがCで、かつディレクトリマップの値がRMメッセージを発行したキャッシュCMi(ここではキャッシュCM1である)以外にブロックを保持するキャッシュCMiが存在することを表す場合(ここでは、キャッシュCM1がRMメッセージを発行しているので、ディレクトリマップが‘0000’または‘0001’以外の場合である)、更新頻度値の値に関わらず、図18に示すシーケンスで、メモリMM2がキャッシュCM1からのRMメッセージを受け取った場合の処理をする。
【0146】
第2一貫性維持制御部44は、まずSDRメッセージのヘッダ部を生成し第2メッセージ送信部42に供給する。この時生成されるメッセージヘッダの宛先装置番号は、第2メッセージ受信部41に格納されているメッセージヘッダ部の要求元装置番号となり(この場合は‘000’である)、メッセージ識別子はSDRを表す識別子に、アドレスおよび要求元装置番号は第2メッセージ受信部41に格納されているメッセージヘッダ部のアドレスおよび要求元装置番号(ここでは‘000’である)となる。また、第2一貫性維持制御部44は、第2データ制御部45に対して、メインメモリ46から第2メッセージ受信部41に格納されているメッセージヘッダ部のアドレスで特定されるブロックの読み出しを指示する。第2データ制御部45は読み出したブロックをSDRメッセージのデータ部として第2メッセージ送信部42に供給する。第2メッセージ送信部42は、第2一貫性維持制御部44から供給されるヘッダ部と第2データ制御部45から供給されるデータ部をあわせて、相互結合網12にメッセージを送出する。また、第2一貫性維持制御部44は、ディレクトリメモリ43の書き込みを行い、ディレクトリステートをCに、ディレクトリマップの値を‘1101’に、更新頻度値を‘0’に更新する。このディレクトリマップの値は、RMメッセージを受け取る直前のディレクトリマップの値に対して、第2メッセージ受信部41に格納されている要求元装置番号から特定されるキャッシュCM1に対応するビットを‘1’にする操作を行った結果得られる値である。
【0147】
ディレクトリステートがMであった場合、更新頻度値の値に関わらず、図19および図20に示すシーケンスで、メモリMM2がキャッシュCM1からのRMメッセージを受け取った場合の処理をする。この場合、ディレクトリマップより、最新のブロックを保持するキャッシュCMiが唯一定まる。図19および図20に示した例では、ディレクトリマップの値は‘0100’であるので、キャッシュCM3が唯一最新のデータを保持していることが確認できる。
【0148】
第2一貫性維持制御部44は、まずFRメッセージのヘッダ部を生成し第2メッセージ送信部42に供給する。この時生成されるメッセージヘッダの宛先装置番号は、最新のブロックを保持するキャッシュCM3を表す‘010’となり、メッセージ識別子はFRを表す識別子に、アドレスおよび要求元装置番号は第2メッセージ受信部41に格納されているメッセージヘッダ部のアドレスおよび要求元装置番号(ここでは‘000’である)となる。第2メッセージ送信部42は、第2一貫性維持制御部44から供給されるヘッダ部をメッセージとして、相互結合網12に送出する。また、第2一貫性維持制御部44は、ディレクトリメモリ43の書き込みを行い、ディレクトリステートをRMPに、更新頻度値を‘0’に更新するが、ディレクトリマップはそのままとする。
【0149】
ディレクトリステートが‘RMP’または‘WSP’であった場合、ディレクトリマップおよび更新頻度値の値に関わらず、図21に示すシーケンスで、メモリMM2がキャッシュCM1からのRMメッセージを受け取った場合の処理をする。
【0150】
第2一貫性維持制御部44は、まずNCRメッセージのヘッダ部を生成し第2メッセージ送信部42に供給する。この時生成されるメッセージヘッダの宛先装置番号は、第2メッセージ受信部41に格納されているメッセージヘッダ部の要求元装置番号となり(この場合は‘000’である)、メッセージ識別子はNCRを表す識別子に、アドレスおよび要求元装置番号は第2メッセージ受信部41に格納されているメッセージヘッダ部のアドレスおよび要求元装置番号(ここでは‘000’である)となる。第2メッセージ送信部42は、第2一貫性維持制御部44から供給されるヘッダ部をメッセージとして相互結合網12に送出する。
【0151】
次に、メモリMM2の第2一貫性維持制御部44が、第2メッセージ受信部41にWSメッセージが取り込まれたのを検出した場合、第2メッセージ受信部41に格納されたヘッダ部のアドレスから、対応するブロックのディレクトリステートおよびディレクトリマップおよび更新頻度値をディレクトリメモリ43から読み出し、その値によりどのような処理をするかを判断する。
【0152】
ディレクトリステートが‘C’で、かつディレクトリマップの値がWSメッセージを発行したキャッシュCMi以外にブロックを保持するキャッシュCMiが存在しないことを表し(ここでは、キャッシュCM1がWSメッセージを発行しているので、ディレクトリマップが‘0001’の場合である)、更新頻度値が更新頻度上限値と一致しなかった場合、図22に示すシーケンスで、メモリMM2がキャッシュCM1からのWSメッセージを受け取った場合の処理をする。
【0153】
第2一貫性維持制御部44は、まずCRメッセージのヘッダ部を生成し第2メッセージ送信部42に供給する。この時生成されるメッセージヘッダの宛先装置番号は、第2メッセージ受信部41に格納されているメッセージヘッダ部の要求元装置番号となり(この場合は‘000’である)。メッセージ識別子はCRを表す識別子に、アドレスおよび要求元装置番号は第2メッセージ受信部41に格納されているメッセージヘッダ部のアドレスおよび要求元装置番号(ここでは‘000’である)となる。第2メッセージ送信部42は、第2一貫性維持制御部44から供給されるヘッダ部をメッセージとして相互結合網12に送出する。また、第2一貫性維持制御部44は、第2データ制御部45に、メインメモリ46の第2メッセージ受信部41が出力するアドレスから特定されるデータを、第2メッセージ受信部41が供給するデータに書き換えさせる。また、第2一貫性維持制御部44は、ディレクトリメモリ43の書き込みを行い、ディレクトリステートおよびディレクトリマップはそのままとし、更新頻度値は1足した値に更新する。図22に示すシーケンスでは、更新頻度値は‘0’から‘1’に更新されている。
【0154】
ディレクトリステートが‘C’で、かつディレクトリマップの値がWSメッセージを発行したキャッシュCMi以外にブロックを保持するキャッシュCMiが存在しないことを表し(ここでは、キャッシュCM1がWSメッセージを発行しているので、ディレクトリマップが‘0001’の場合である)、更新頻度値が更新頻度上限値と一致した場合、図23に示すシーケンスで、メモリMM2がキャッシュCM1からのWSメッセージを受け取った場合の処理をする。図23に示したシーケンスは、更新頻度上限値を‘2’に設定した場合である。
【0155】
第2一貫性維持制御部44は、まずECRメッセージのヘッダ部を生成し第2メッセージ送信部42に供給する。この時生成されるメッセージヘッダの宛先装置番号は、第2メッセージ受信部41に格納されているメッセージヘッダ部の要求元装置番号となり(この場合は‘000’である)、メッセージ識別子はECRを表す識別子に、アドレスおよび要求元装置番号は第2メッセージ受信部41に格納されているメッセージヘッダ部のアドレスおよび要求元装置番号(ここでは‘000’である)となる。第2メッセージ送信部42は、第2一貫性維持制御部44から供給されるヘッダ部をメッセージとして相互結合網12に送出する。また、第2一貫性維持制御部44は、第2データ制御部45に、メインメモリ46の第2メッセージ受信部41が出力するアドレスから特定されるデータを、第2メッセージ受信部41が供給するデータに書き換えさせる。また、第2一貫性維持制御部44は、ディレクトリメモリ43の書き込みを行い、ディレクトリステートをMに、またディレクトリマップを‘0001’に、更新頻度値を‘0’に更新する。このディレクトリマップの値は、RMメッセージを発行したキャッシュCM1に対応するビットを‘1’とし、他のビットを‘0’とする操作を行った結果得られる値である。
【0156】
ディレクトリステートがCであり、かつディレクトリマップの値がWSメッセージを発行したキャッシュCMi以外にブロックを保持するキャッシュCMiが存在することを表す場合(ここでは、キャッシュCM1がWSメッセージを発行しているので、ディレクトリマップの値が‘0001’以外の場合である)、更新頻度値に関わらず、図24に示すシーケンスで、メモリMM2がキャッシュCM1からのWSメッセージを受け取った場合の処理をする。以降では、また図24に示した例では、WSメッセージを受け取ったときのディレクトリマップの値が例えば‘1101’であった場合を説明する。
【0157】
第2一貫性維持制御部44はまず、キャッシュCM1が最新のブロックを保持しておりかつWSメッセージを発行したキャッシュCMiではないかどうかを検査する。この時、キャッシュCM1は、第2メッセージ受信部41に格納された要求元装置番号よりWSメッセージを発行したキャッシュCMiであるのでこの場合は何も行わない。
【0158】
次に、第2一貫性維持制御部44は、キャッシュCM2が最新のブロックを保持しておりかつWSメッセージを発行したキャッシュCMiではないかどうかを検査する。この時、ディレクトリマップの値‘1101’より、キャッシュCM2は最新のデータを保持していないのでこの場合も何も行わない。
【0159】
次に、第2一貫性維持制御部44は、キャッシュCM3が最新のブロックを保持しておりかつWSメッセージを発行したキャッシュCMiではないかどうかを検査する。この時、キャッシュCM3は最新のブロックを保持しておりまたWSメッセージを発行したキャッシュCMiではないので、次のような処理をする。第2一貫性維持制御部44は、IVメッセージのヘッダ部を生成し第2メッセージ送信部42に供給する。この時生成されるメッセージヘッダの宛先装置番号は、キャッシュCM3を表す‘010’となり、メッセージ識別子はIVを表す識別子に、アドレスおよび要求元装置番号は第2メッセージ受信部41に格納されているメッセージヘッダ部のアドレスおよび要求元装置番号(ここでは‘000’である)となる。第2メッセージ送信部42は、第2一貫性維持制御部44から供給されるヘッダ部をメッセージとして、相互結合網12に送出する。
【0160】
次に、第2一貫性維持制御部44は、キャッシュCM4が最新のブロックを保持しておりかつWSメッセージを発行したキャッシュCMiではないかどうかを検査する。この時、キャッシュCM4は最新のブロックを保持しておりまたWSメッセージを発行したキャッシュCMiではないので、前記したキャッシュCM3の場合と同じくIVメッセージのヘッダ部を生成する。ただし、宛先装置番号はキャッシュCM4を表す‘011’となる。
【0161】
最後に、第2一貫性維持制御部44は、第2データ制御部45に、メインメモリ46の第2メッセージ受信部41が出力するアドレスから特定されるデータを、第2メッセージ受信部41が供給するデータに書き換えさせる。また、第2一貫性維持制御部44は、ディレクトリメモリ43の書き込みを行い、ディレクトリステートを‘WSP’に、またディレクトリマップを‘0010’に、更新頻度値を‘0’に更新する。このディレクトリマップの値は、送信したIVメッセージの数を表すものである。
【0162】
ディレクトリステートが‘WSP’であった場合、ディレクトリマップおよび更新頻度値に関わらず、図25に示すシーケンスで、メモリMM2がキャッシュCM1からのWSメッセージを受け取った場合の処理をする。
【0163】
第2一貫性維持制御部44は、まずNCRメッセージのヘッダ部を生成し第2メッセージ送信部42に供給する。この時生成されるメッセージヘッダの宛先装置番号は、第2メッセージ受信部41に格納されているメッセージヘッダ部の要求元装置番号となり(この場合は‘000’である)、メッセージ識別子はNCRを表す識別子に、アドレスおよび要求元装置番号は第2メッセージ受信部41に格納されているメッセージヘッダ部のアドレスおよび要求元装置番号(ここでは‘000’である)となる。第2メッセージ送信部42は、第2一貫性維持制御部44から供給されるヘッダ部をメッセージとして相互結合網12に送出する。
【0164】
次に、メモリMM2の第2一貫性維持制御部44が、第2メッセージ受信部41にWBメッセージが取り込まれたのを検出した場合、第2メッセージ受信部41に格納されたヘッダ部のアドレスから、対応するブロックのディレクトリステートおよびディレクトリマップおよび更新頻度値をディレクトリメモリ43から読み出し、その値によりどのような処理をするかを判断する。この時、ディレクトリステートが取り得る値は、方法上‘M’または‘RMP’に限定される。
【0165】
ディレクトリステートが‘M’の場合、更新頻度値の値に関わらず、図26に示すシーケンスで、メモリMM3がキャッシュCM1からのWBメッセージを受け取った場合の処理をする。第2一貫性維持制御部44はディレクトリメモリ43の書き込みを行い、ディレクトリステートをCに、ディレクトリマップをどのキャッシュCMiもブロックを保持していないことを表す‘0000’に、更新頻度値を‘0’に更新する。また、第2一貫性維持制御部44は、第2データ制御部45にWBメッセージに付加されていたブロックをメインメモリ46の対応するブロックへ書き込ませる。
【0166】
ディレクトリステートがRMPであった場合、ディレクトリマップおよび更新頻度値の値に関わらず、図27に示すシーケンスで、メモリMM3がキャッシュCM1からのWBメッセージを受け取った場合の処理をする。第2一貫性維持制御部44は、第2データ制御部45にWBメッセージに付加されていたブロックをメインメモリ46の対応するブロックへ書き込ませるのみとし、ディレクトリメモリ43の更新は行わない。
【0167】
次に、メモリMM2の第2一貫性維持制御部44が、第2メッセージ受信部41にFDメッセージが取り込まれたのを検出した場合、第2メッセージ受信部41に格納されたヘッダ部のアドレスから、対応するブロックのディレクトリステートおよびディレクトリマップおよび更新頻度値をディレクトリメモリ43から読み出し、更新頻度値に関わらず、図19に示すシーケンスで、メモリMM2がキャッシュCM3からのFDメッセージを受け取った場合の処理をする。この時、ディレクトリステートが取り得る値は、方法上‘RMP’に限定される。
【0168】
第2一貫性維持制御部44は、まずSDRメッセージのヘッダ部を生成し第2メッセージ送信部42に供給する。この時生成されるメッセージヘッダの宛先装置番号は、第2メッセージ受信部41に格納されているメッセージヘッダ部の要求元装置番号となり(この場合は‘000’である)、メッセージ識別子はSDRを表す識別子に、アドレスおよび要求元装置番号は第2メッセージ受信部41に格納されているメッセージヘッダ部のアドレスおよび要求元装置番号(ここでは‘000’である)となる。また、第2一貫性維持制御部44は、第2データ制御部45に対して、FDメッセージに付加されていたブロックをメインメモリ46の対応するブロックへ書き込ませる。第2データ制御部45はメインメモリ46への書き込みを行うと同時に、FDメッセージに付加されていたブロックをSDRメッセージのデータ部として第2メッセージ送信部42にも供給する。第2メッセージ送信部42は、第2一貫性維持制御部44から供給されるヘッダ部と第2データ制御部45から供給されるデータ部をあわせて、相互結合網12にメッセージを送出する。また、第2一貫性維持制御部44は、ディレクトリメモリ43の書き込みを行い、ディレクトリステートをCに、ディレクトリマップの値を‘1101’に、更新頻度値を‘0’に更新する。このディレクトリマップの値は、FDメッセージを受け取る直前のディレクトリマップの値に対して、第2メッセージ受信部41に格納されている要求元装置番号から特定されるキャッシュCM1に対応するビットを‘1’にする操作を行った結果得られる値である。
【0169】
次に、メモリMM2の第2一貫性維持制御部44が、第2メッセージ受信部41にACKメッセージが取り込まれたのを検出した場合、第2メッセージ受信部41に格納されたヘッダ部のアドレスから、対応するブロックのディレクトリステートおよびディレクトリマップおよび更新頻度値をディレクトリメモリ43から読み出し、その値によりどのような処理をするかを判断する。この時、ディレクトリステートが取り得る値は、方法上‘WSP’または‘RMP’に限定される。
【0170】
ディレクトリステートが‘RMP’の場合、更新頻度値に関わらず、図20に示すシーケンスで、メモリMM2がキャッシュCM3からのACKメッセージを受け取った場合の処理をする。
【0171】
第2一貫性維持制御部44は、まずEDRメッセージのヘッダ部を生成し第2メッセージ送信部42に供給する。この時生成されるメッセージヘッダの宛先装置番号は、第2メッセージ受信部41に格納されているメッセージヘッダ部の要求元装置番号となり(この場合は‘000’である)、メッセージ識別子はEDRを表す識別子に、アドレスおよび要求元装置番号は第2メッセージ受信部41に格納されているメッセージヘッダ部のアドレスおよび要求元装置番号(ここでは‘000’である)となる。また、第2一貫性維持制御部44は、第2データ制御部45に対して、メインメモリ46から第2メッセージ受信部41に格納されているメッセージヘッダ部のアドレスで特定されるブロックの読み出しを指示する。第2データ制御部45は読み出したブロックをEDRメッセージのデータ部として第2メッセージ送信部42に供給する。第2メッセージ送信部42は、第2一貫性維持制御部44から供給されるヘッダ部と第2データ制御部45から供給されるデータ部をあわせて、相互結合網12にメッセージを送出する。また、第2一貫性維持制御部44は、ディレクトリメモリ43の書き込みを行い、ディレクトリステートをMに、またディレクトリマップを‘0001’に、更新頻度値を‘0’に更新する。このディレクトリマップの値は、第2メッセージ受信部41に格納されているメッセージヘッダ部の要求元装置番号で特定されるキャッシュCMi(ここではキャッシュCM1である)に対応するビットを‘1’とし、他のビットを‘0’とする操作を行った結果得られる値である。
【0172】
ディレクトリステートが‘WSP’で、ディレクトリマップが‘0001’でない場合、更新頻度値の値に関わらず、図24に示すシーケンスでメモリMM2がキャッシュCM3が発行したACKメッセージを受け取った場合の処理をする。
【0173】
第2一貫性維持制御部44は、ディレクトリメモリ43の書き込みを行い、ディレクトリステートはそのままの‘WSP’とするが、ディレクトリマップは前ディレクトリマップの値をデクリメントした値(ここでは‘0001’である)に、更新頻度値は‘0’に更新する。
【0174】
次にディレクトリステートが‘WSP’で、ディレクトリマップの値が‘0001’であった場合、更新頻度値の値に関わらず、図24に示すシーケンスでメモリMM2がキャッシュCM4が発行したACKメッセージを受け取った場合の処理をする。
【0175】
第2一貫性維持制御部44はまず、CRメッセージのヘッダ部を生成し第2メッセージ送信部42に供給する。この時生成されるメッセージヘッダの宛先装置番号は、第2メッセージ受信部41に格納されているメッセージヘッダ部の要求元装置番号となり(この場合は‘000’である)、メッセージ識別子はCRを表す識別子に、アドレスおよび要求元装置番号は第2メッセージ受信部41に格納されているメッセージヘッダ部のアドレスおよび要求元装置番号(ここでは‘000’である)となる。第2メッセージ送信部42、第2一貫性維持制御部44から供給されるヘッダ部をメッセージとして相互結合網12に送出する。また、第2一貫性維持制御部44は、ディレクトリメモリ43の書き込みを行い、ディレクトリステートをMに、またディレクトリマップを‘0001’に、更新頻度値は‘0’に更新する。このディレクトリマップの値は、第2メッセージ受信部1に格納されたヘッダ部の要求元装置番号から特定されるキャッシュCMi(ここではキャッシュCM1である)に対応するビットを‘1’とし、他のビットを‘0’とする操作を行った結果得られる値である。
【0176】
次に、本発明の第3の実施の形態の効果について説明する。
【0177】
例えば、キャッシュCM1のブロックの状態が共有状態でありキャッシュCM1とメモリMM2にのみ最新のブロックが存在する状態で、プロセッサPR1が連続して書き込みを行い、その間他のプロセッサPRiがアクセスを行わなかった場合を考える。この場合、第1の実施の形態におけるデータ一貫性維持制御方法では、書き込みの度に書き込み要求メッセージがキャッシュCM1からメモリMM2に発行される。そのため、この場合のデータ一貫性維持制御のためのメッセージ数が増加するという問題がある。また、第2の実施の形態におけるデータ一貫性維持制御方式では、最初の2回の書き込みはメモリにも反映されるが、3回目以降の書き込みはメモリに反映されない。そのため実質上2回目の書き込み以降はメモリMM2に最新のブロックが存在しない状態となる。そのため、その後に他のプロセッサPRiがアクセスを行った場合に、メモリMM2に最新のブロックが存在しないので、この場合、キャッシュミスが発生してからプロセッサにデータが応答されるまでにかかる時間が長くなる。
【0178】
第3の実施の形態におけるデータ一貫性維持制御方法では、パラメータである更新頻度上限値をNに設定した場合、最初のN+1回の書き込みはメモリMM2にも反映される。そのためN+1回の書き込みが行われるまで、最新のブロックがメモリMM2に存在する状態となる。そのため、その間に他のプロセッサPRiがアクセスを行った場合、最新のブロックがメモリMM2に存在するので、キャッシュミスが発生してからプロセッサにデータが応答されるまでにかかる時間を短縮できる。また、その間アクセスがなかった場合、N+2回目からは書き込みはメモリMM2に反映されない。そのため、この場合のメッセージの増加を防ぐことができる。
【0179】
【発明の効果】
第1の効果は、プロセッサの読み出しによりキャッシュミスが発生した場合に、キャッシュからプロセッサにデータが応答されるまでにかかる時間を短縮できることにある。
【0180】
その理由は、プロセッサが共有しているブロックに対して書き込みを行ったときに、メモリにも書き込みを反映し最新のブロックが存在する状態としているためである。
【0181】
第2の効果は、プロセッサの読み出しによりキャッシュミスが発生した場合に生成されるデータ一貫性維持制御のためのメッセージを削減できることにある。
【0182】
その理由は、プロセッサが共有しているブロックに対して書き込みを行ったときに、メモリにも書き込みを反映し最新のブロックが存在する状態としているためである。
【0183】
第3の効果は、プロセッサの書き込みにより発生するメッセージの数の増加を抑えることができることにある。
【0184】
その理由は、プロセッサが実際に複数のキャッシュで共有されているブロックに対して連続して書き込みを行い、またその間他のキャッシュがアクセスを行わなかった場合に、書き込みをメモリに反映するのを途中で打ち切るためである。
【0185】
第4の効果は、第1および第2の効果を強くするか、第3の効果を強くするかを調整できることにある。
【0186】
その理由は、プロセッサが実際に複数のキャッシュで共有されているブロックに対して連続して書き込みを行い、またその間他キャッシュがアクセスを行わなかった場合に、書き込みをメモリに反映するのを何回で打ち切るかパラメータで設定できるためである。
【図面の簡単な説明】
【図1】従来および本発明に関わるマルチプロセッサシステムの構成説明図である。
【図2】本発明に関わるキャッシュの構成説明図である。
【図3】本発明に関わるメモリの構成説明図である。
【図4】ディレクトリマップの値と保持しているキャッシュの関係を表す図。
【図5】第1の実施の形態におけるデータ一貫性維持制御方法のメッセージヘッダの構成を説明する図。
【図6】第1の実施の形態におけるデータ一貫性維持制御方法でキャッシュミスの場合に置き換えの対象となったブロックをメモリに書き戻す場合のシーケンスフローである。
【図7】第1の実施の形態におけるデータ一貫性維持制御方法でキャッシュミスの場合に置き換えの対象となったブロックをメモリに書き戻す場合のシーケンスフローである。
【図8】第1の実施の形態におけるキャッシュミスの場合にキャッシュとメモリの間でやり取りされるメッセージのシーケンスフローである。
【図9】第1の実施の形態におけるキャッシュミスの場合にキャッシュとメモリの間でやり取りされるメッセージのシーケンスフローである。
【図10】第1の実施の形態におけるキャッシュミスの場合にキャッシュとメモリの間でやり取りされるメッセージのシーケンスフローである。
【図11】第1の実施の形態におけるキャッシュミスの場合にキャッシュとメモリの間でやり取りされるメッセージのシーケンスフローである。
【図12】第1の実施の形態におけるキャッシュミスの場合にキャッシュとメモリの間でやり取りされるメッセージのシーケンスフローである。
【図13】第1の実施の形態におけるライトシェアードの場合にキャッシュとメモリの間でやり取りされるメッセージのシーケンスフローである。
【図14】第1の実施の形態におけるライトシェアードの場合にキャッシュとメモリの間でやり取りされるメッセージのシーケンスフローである。
【図15】第1の実施の形態におけるライトシェアードの場合にキャッシュとメモリの間でやり取りされるメッセージのシーケンスフローである。
【図16】第2の実施の形態におけるデータ一貫性維持制御方法の動作を説明する図。
【図17】第3の実施の形態におけるキャッシュミスの場合にキャッシュとメモリの間でやり取りされるメッセージのシーケンスフローである。
【図18】第3の実施の形態におけるキャッシュミスの場合にキャッシュとメモリの間でやり取りされるメッセージのシーケンスフローである。
【図19】第3の実施の形態におけるキャッシュミスの場合にキャッシュとメモリの間でやり取りされるメッセージのシーケンスフローである。
【図20】第3の実施の形態におけるキャッシュミスの場合にキャッシュとメモリの間でやり取りされるメッセージのシーケンスフローである。
【図21】第3の実施の形態におけるキャッシュミスの場合にキャッシュとメモリの間でやり取りされるメッセージのシーケンスフローである。
【図22】第3の実施の形態におけるライトシェアードの場合にキャッシュとメモリの間でやり取りされるメッセージのシーケンスフローである。
【図23】第3の実施の形態におけるライトシェアードの場合にキャッシュとメモリの間でやり取りされるメッセージのシーケンスフローである。
【図24】第3の実施の形態におけるライトシェアードの場合にキャッシュとメモリの間でやり取りされるメッセージのシーケンスフローである。
【図25】第3の実施の形態におけるライトシェアードの場合にキャッシュとメモリの間でやり取りされるメッセージのシーケンスフローである。
【図26】第3の実施の形態におけるデータ一貫性維持方法でキャッシュミスの場合に置き換えの対象となったブロックをメモリに書き戻す場合のシーケンスフローである。
【図27】第3の実施の形態におけるデータ一貫性維持方法でキャッシュミスの場合に置き換えの対象となったブロックをメモリに書き戻す場合のシーケンスフローである。
【符号の説明】
PRi プロセッサ
CMi キャッシュ
MMi メモリ
12 相互結合網
21 メモリアクセス管理部
22 タグメモリ
23 第1一貫性維持制御部
24 第1データ制御部
25 キャッシュメモリ
26 第1メッセージ受信部
27 第1メッセージ送信部
41 第2メッセージ受信部
42 第2メッセージ送信部
43 ディレクトリメモリ
44 第2一貫性維持制御部
45 第2データ制御部
46 メインメモリ[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a data consistency maintenance control method in a multiprocessor system in which each processor includes a cache.
[0002]
[Prior art]
In a multiprocessor system, data having the same address may exist on a plurality of caches in the system. Therefore, it is necessary to perform control for maintaining data consistency between caches holding data at the same address and data consistency maintenance control.
[0003]
This data consistency maintenance control is a control for guaranteeing that when a processor writes to a certain block, it can be performed exclusively, and the latest value is obtained at the time of reading. . Therefore, first, it must be possible to identify in which cache the block to be written exists. Then, it is necessary to be able to specify where the latest block exists in the case of a reading mistake. Here, the block is a minimum unit of data management, and the size is, for example, 64 bytes.
[0004]
For example, in the literature (“A New Solution to CoherencyProblems in Multisystem Systems” LUCIEN M. CENSIER and PAUL FEAUTRIER, IEEE Transactions on Computers, 78113D, e. First, the first feature is to hold information on whether or not the block is shared in units of blocks in the cache. The second feature is that information for specifying a cache holding the block in the memory unit and information indicating whether or not the latest block exists in the memory are held. The third feature is that when writing to a block shared by a processor, the block of another cache is invalidated to cancel the shared state, and the latest block exists only in the cache. There is to do.
[0005]
Hereinafter, the operation of this method will be described.
[0006]
Referring to FIG. 1, a multiprocessor system according to the related art and the present invention includes a processor PRi that executes an instruction and accesses a memory, a cache CMi that is connected to each processor PRi and temporarily holds data accessed by the processor PRi, and data Memory MMi, a cache CMi, and an
[0007]
Hereinafter, taking a case where the processor PR1 accesses data in the memory MM2 as an example, a series of operations for maintaining data consistency performed by the access will be described.
[0008]
An operation when the processor PR1 accesses data of a certain block but the block does not exist in the cache CM1 (hereinafter, this case is referred to as a cache miss) will be described. In this case, a read request message is first issued from the cache CM1 to the memory MM2. The memory MM2 that has received the read request checks whether or not the latest block exists in the memory, and if it exists, transmits the block to the cache CM1. If it does not exist, there is only one cache that holds the latest block, so a write-back request message is issued to that cache, for example, the cache CM 3. The cache CM 3 that has received the write-back request writes the block back to the memory MM2. The memory MM2 transmits the block written back from the cache CM3 to the cache CM1. The cache CM1 that received the block again evaluates the memory access performed by the processor PR1 and performs processing necessary for maintaining data consistency.
[0009]
As a result of the above processing, in addition to the cache that previously held the block, the cache CM1 also newly holds the latest block. Also, the latest block exists in the memory MM2.
[0010]
Next, the operation when the processor PR1 reads data of a certain block and the block exists in the cache CM1 (hereinafter this case is referred to as a read hit) will be described. In this case, the cache CM1 passes the block data to the processor PR1 to complete the process.
[0011]
Next, the operation when the processor PR1 writes data to a certain block and the block exists in the cache CM1 and is not in a shared state (hereinafter this case is referred to as a write hit) will be described. In this case, the processing is completed by reflecting the writing performed by the processor PR1 to the cache CM1 in the block held by the cache CM1 and notifying the processor PR1 that the writing has been completed.
[0012]
Next, the operation when the processor PR1 writes data to a certain block and the block exists in the cache CM1 and is in a shared state (hereinafter this case is referred to as write shared) will be described. In this case, the write performed by the processor PR1 is reflected in the cache CM1, and a write request message is issued to the memory MM2. The memory MM2 that has received the write request issues an invalidation request message to the cache CM3 and the cache CM4 if, for example, the cache CM3 and the cache CM4 other than the cache CM1 hold a block. Receiving the invalidation request, the cache CM3 and the cache CM4 invalidate the block and transmit an invalidation completion message to the memory MM2. When the memory MM2 receives the invalidation completion message from both the cache CM3 and the cache CM4, the memory MM2 transmits a completion response message to the cache CM1. When the cache CM1 receives the completion response message, the cache CM1 notifies the processor PR1 that the writing has been completed and completes the processing. As a result of the above processing, only the cache in which writing has been performed holds the latest block, and the memory does not have the latest block.
[0013]
As a result of the above processing, the latest block exists only in the cache CM1, and the latest block does not exist in the other cache CMi and the memory MM2.
[0014]
In the above description of the operation for maintaining data consistency, for example, the memory MM2 receives a read request from the cache CM1, issues a writeback request to the cache CM3, and waits for a block to be written back. In this state, the operation when there is a read request from the cache CM 2 is omitted.
[0015]
[Problems to be solved by the invention]
The first problem is that it takes a long time for data to be returned from the cache to the processor when a cache miss occurs due to reading by the processor.
[0016]
For example, consider an operation when the processor PR1 performs writing and then the processor PR4 performs reading in a state where the blocks of the memory MM2 exist and are shared in the cache CM1 and the cache CM3. When the processor PR1 performs writing, the latest block exists only in the cache CM1, and the latest data does not exist in the memory MM2. Next, when the processor PR4 performs reading, a cache miss occurs because no block exists in the cache CM4. As a result, a read request message is transmitted to the memory MM2, but since there is no latest data in the memory MM2, a write-back is requested to the cache CM1 holding the latest data. The memory MM2 receives the block write-back from the cache CM1, and then transmits the block to the cache CM4. The cache CM 4 that has received the block again evaluates the read performed by the processor PR 4, and since the block exists, passes the data to the processor PR 4 and completes the processing.
[0017]
As described above, the reason for the above problem is that the latest block does not exist in the memory after the processor performs writing.
[0018]
The second problem is that many messages are exchanged between the cache and the memory for data consistency maintenance control.
[0019]
The reason is that after the processor writes, the latest block no longer exists in the memory. That is, when a cache miss occurs in another cache after a certain processor writes, a write-back request to the cache holding the latest data in addition to a read request message to the memory and block transfer to the cache This is because it is necessary to write back the message and the block from its cache.
[0020]
An object of the present invention is to provide a data consistency maintenance control method in which the time required for data consistency maintenance control when a cache miss due to reading occurs is shortened.
[0021]
Another object of the present invention is to provide a data consistency control method that prevents an increase in the number of messages generated by data consistency maintenance control.
[0022]
[Means for Solving the Problems]
In the first data consistency maintenance control method of the present invention, when a write is performed on a block shared by a processor, the write is reflected on the cache and memory blocks, and the other cache blocks are related. Has a means (23 in FIG. 2 and 44 in FIG. 3) for performing data consistency maintenance control in the cache and the memory, which invalidates and keeps the state of the block of the cache where writing has been performed.
[0023]
According to the second data consistency maintenance control method of the present invention, when writing to a block shared by a processor, the latest block exists only in the cache and the memory, and other caches If the latest block is not held, the data is reflected to the cache and memory blocks, but the state of the cache block where the data was written is changed from the shared state to the non-shared state. Means (23 in FIG. 2 and 44 in FIG. 3) for controlling in the cache and memory.
[0024]
The third data consistency maintenance control method of the present invention provides a counter for each block in the memory, initializes the counter value to 0 when a block is newly fetched into the cache, and blocks shared by the processor When a write is performed to the block, the counter value of the block is incremented. When a write is performed to a block shared by the processor, the latest block exists only in the cache and memory. If the other cache does not hold the latest block and the counter value is a certain value, the write is reflected to the cache and the memory block. Cache data consistency maintenance control that changes the block state from shared state to non-shared state. And means for performing the memory (44 of 23 and 3 in Figure 2).
[0025]
The data consistency maintenance control means in the first data consistency maintenance control method of the present invention, when writing to the block shared by the processor, updates the cache and memory in which the writing is performed to the latest Assume that a block exists.
[0026]
In the second data consistency maintenance control method of the present invention, the data consistency maintenance control means continuously writes to a block that is actually shared by a plurality of caches while the other cache accesses When the first write is not performed, the first two writes are reflected in the memory, but the block sharing state is canceled after the second write, and the third write and subsequent steps are performed only for the cache.
[0027]
The data consistency maintenance control means in the third data consistency maintenance control method of the present invention is such that the processor continuously writes to a block that is actually shared by a plurality of caches, while other caches When access is not performed, a certain number of writes are reflected in the memory, but subsequent writes are performed only on the cache.
[0028]
DETAILED DESCRIPTION OF THE INVENTION
Next, the present invention will be described with reference to the drawings.
[0029]
Referring to FIG. 1 again, the multiprocessor system according to the present invention includes a processor PRi that executes an instruction and performs memory access, a cache CMi that is connected to each processor PRi and temporarily holds data accessed by the processor PRi, data Memory MMi, a cache CMi, and an
[0030]
Here, each cache CMi and memory MMi is assigned a 3-bit device number corresponding to the port number connected to the
[0031]
Next, referring to FIG. 2, the cache CMi according to the present invention includes a
[0032]
Next, referring to FIG. 3, the memory MMi according to the present invention is delivered by the
[0033]
Next, in the data consistency maintenance control method according to the first embodiment, the tag state held in the
[0034]
In the data consistency maintenance control method according to the first embodiment, the directory map held in the
[0035]
In the data consistency maintenance control method according to the first embodiment, the directory state stored in the
[0036]
In the data consistency maintenance control method according to the first embodiment, messages exchanged between the cache CMi and the memory MMi include RM, WS, WB, FR, IV, FD, ACK, SDR, EDR, There are 11 types of messages, CR and NCR, each having the following meaning.
[0037]
The RM message is a read request message issued from the cache CMi to the memory MMi when a cache miss occurs. The WS message is a write request message issued from the cache CMi to the memory MMi when write sharing occurs. Data written by the processor is added to the WS message. The WB message is a write-back message that is issued when writing back a block to be replaced. A block to be replaced is added to this WB message. The FR message is a write-back request message issued by the memory MMi that has received the RM message to the cache CMi that holds the latest block. The IV message is an invalidation request message issued from the memory MMi that has received the WS message to the cache CMi that holds the block. The FD message is a write-back message issued to the memory MMi by the cache CMi that has received the FR message. The latest block held by the cache CMi is added to the FD message. The ACK message is a response message issued to the memory MMi by the cache CMi that has received the FR or IV message. The SDR and EDR messages are response messages that notify the memory MMi that the processing for maintaining data consistency for the RM message has been completed in the memory MMi to the cache CMi that issued the RM message. The latest block is added to the SDR and EDR messages. The CR message is a response message in which the memory MMi notifies the cache CMi that issued the WS message that processing for the WS message has been completed in the memory MMi. The NCR message is a message notifying the cache CMi that has issued the RM or WS message when the RM or WS message cannot be processed in the memory MMi.
[0038]
A message is composed of a header part and a data part, and six types of messages such as RM, FR, IV, ACK, CR, and NCR are composed only of the header part. The WS message is composed of a header part and a data part composed of data written by the processor. The four types of messages WB, FD, SDR, and EDR are composed of a header part and a data part composed of block unit data.
[0039]
The configuration of the message header portion will be described with reference to FIG.
[0040]
The message header is composed of five fields: a destination device number, a message identifier, an address, and a request source device number. The destination device number field indicates which port of the
[0041]
Next, in the data consistency maintenance control method according to the first embodiment, a case where the processor PR1 accesses data in the memory MM2 is taken as an example, and a series of operations for data consistency maintenance control performed by the access is performed. This will be described with reference to the drawings.
[0042]
First, when the processor PR1 issues a memory access, the memory
[0043]
The first consistency
[0044]
First, the operation when the tag state is “I”, that is, when there is a cache miss will be described.
[0045]
In this case, if there is no free space in the
[0046]
When replacement is necessary and the tag state of the block to be replaced is “D”, this block is the only latest block in the system, so write back to the memory MMi that manages the block. It is necessary to perform the process first. 6 and 7 show a sequence flow in this case. The figure shows a case where the block to be replaced is a block managed by the memory MM3.
[0047]
The first consistency
[0048]
The transmitted WB message is delivered by the
[0049]
The second consistency maintenance control unit 44 of the memory MM3 detects that the WB message has been taken into the second
[0050]
When the directory state is M, the sequence shown in FIG. The second consistency maintenance control unit 44 writes in the
[0051]
When the directory state is RMP, the sequence shown in FIG. The second consistency maintenance control unit 44 only causes the second
[0052]
The above is the sequence when replacement is necessary and the tag state of the block to be replaced is “D”.
[0053]
Next, when replacement is necessary and the tag state of the block to be replaced is other than 'D', the first consistency
[0054]
When the replacement process is completed in the first consistency
[0055]
The sent RM message is delivered by the
[0056]
The second consistency maintenance control unit 44 of the memory MM2 detects that the RM message has been taken into the second
[0057]
A cache CMi that holds a block other than the cache CMi that has the directory state C and the value of the directory map has been issued from the RM message (identified from the request source device number added to the message, and in this case, the cache CMi). (In this case, the directory map is “0000” or “0001”), the sequence shown in FIG.
[0058]
The second consistency maintenance control unit 44 first generates a header part of the EDR message and supplies it to the second message transmission unit 42. The destination device number of the message header generated at this time is the request source device number of the message header stored in the second message receiving unit 41 (in this case, “000”), and the message identifier is an identifier representing EDR. The address and the request source apparatus number are the address and request source apparatus number (here, “000”) of the message header stored in the second
[0059]
The sent EDR message is delivered by the
[0060]
The first consistency
[0061]
Thereafter, the first consistency
[0062]
Next, as a result of the second consistency maintenance control unit 44 of the memory MM2 receiving the RM message reading the directory state and directory map of the corresponding block of the
[0063]
The second consistency maintenance control unit 44 first generates a header part of the SDR message and supplies it to the second message transmission unit 42. The destination device number of the message header generated at this time is the request source device number of the message header stored in the second message receiving unit 41 (in this case, “000”), and the message identifier represents SDR. In the identifier, the address and the request source apparatus number are the address of the message header part stored in the second
[0064]
The sent SDR message is delivered by the
[0065]
The first consistency
[0066]
Thereafter, the first consistency
[0067]
Next, when the second consistency maintenance control unit 44 of the memory MM2 that has received the RM message reads the directory state and directory map of the corresponding block of the
[0068]
The second consistency maintenance control unit 44 first generates a header part of the FR message and supplies it to the second message transmission unit 42. The destination device number of the message header generated at this time is “010” representing the cache CM 3 holding the latest block, the message identifier is an identifier representing FR, the address and the request source device number are the second
[0069]
The sent FR message is delivered by the
[0070]
The first consistency
[0071]
When the tag state is 'E' or 'D' and the latest block exists, the sequence shown in FIG. 10 is obtained.
[0072]
The first consistency
[0073]
The sent FD message is delivered by the
[0074]
The second consistency maintenance control unit 44 of the memory MM2 detects that the FD message has been taken into the second
[0075]
The second consistency maintenance control unit 44 first generates a header part of the SDR message and supplies it to the second message transmission unit 42. The destination device number of the message header generated at this time is the request source device number of the message header stored in the second message receiving unit 41 (in this case, “000”), and the message identifier represents SDR. In the identifier, the address and the request source apparatus number are the address of the message header part stored in the second
[0076]
The sent SDR message is delivered by the
[0077]
The operation when the first consistency
[0078]
Next, when the first consistency
[0079]
The first consistency
[0080]
The transmitted ACK message is delivered by the
[0081]
The second consistency maintenance control unit 44 of the memory MM2 detects that the ACK message has been taken into the second
[0082]
The second consistency maintenance control unit 44 first generates a header part of the EDR message and supplies it to the second message transmission unit 42. The destination device number of the message header generated at this time is the request source device number of the message header stored in the second message receiving unit 41 (in this case, “000”), and the message identifier represents EDR. In the identifier, the address and the request source apparatus number are the address of the message header part stored in the second
[0083]
The sent EDR message is delivered by the
[0084]
The operation when the first consistency maintaining
[0085]
Next, as a result of the second consistency maintenance control unit 44 of the memory MM2 receiving the RM message reading the directory state and directory map of the corresponding block of the
[0086]
The second consistency maintenance control unit 44 first generates a header portion of the NCR message and supplies it to the second message transmission unit 42. The destination device number of the message header generated at this time is the request source device number of the message header stored in the second message receiver 41 (in this case, “000”), and the message identifier represents NCR. In the identifier, the address and the request source apparatus number are the address of the message header part supplied to the second
[0087]
The sent NCR message is delivered by the
[0088]
The first consistency
[0089]
The above is the operation for maintaining data consistency in the case of a cache miss.
[0090]
Next, it is detected that the memory access has been taken into the memory
[0091]
The first consistency
[0092]
Next, it is detected that the memory access is taken into the memory
[0093]
The first consistency
[0094]
Next, it is detected that the memory access is taken into the memory
[0095]
The first consistency
[0096]
The sent WS message is delivered by the
[0097]
The second consistency maintaining control unit 44 of the memory MM2 detects that the WS message has been taken into the second
[0098]
When the directory state is “C” and the value of the directory map indicates that there is no cache CMi that holds a block other than the cache CMi that issued the WS message (here, the cache CM1 is issuing the WS message) (This is the case where the directory map is “0001”).
[0099]
The second consistency maintenance control unit 44 first generates a header part of the CR message and supplies it to the second message transmission unit 42. The destination device number of the message header generated at this time is the request source device number of the message header stored in the second message receiving unit 41 (in this case, “000”), and the message identifier represents CR. In the identifier, the address and the request source apparatus number are the address of the message header part stored in the second
[0100]
The sent CR message is delivered by the
[0101]
The first consistency
[0102]
Next, as a result of the second consistency maintenance control unit 44 of the memory MM2 receiving the WS message reading the directory state and directory map of the corresponding block of the
[0103]
The second consistency maintenance control unit 44 first checks whether the cache CM1 holds the latest block and is not the cache CMi that issued the WS message. At this time, since the cache CM1 is a cache CMi that has issued a WS message from the request source device number stored in the second
[0104]
Next, the second consistency maintenance control unit 44 checks whether the cache CM2 holds the latest block and is not the cache CMi that issued the WS message. At this time, from the directory map value “1101”, the cache CM 2 does not hold the latest data, so nothing is done in this case.
[0105]
Next, the second consistency maintenance control unit 44 checks whether or not the cache CM 3 holds the latest block and is not the cache CMi that has issued the WS message. At this time, since the cache CM 3 holds the latest block and is not the cache CMi that issued the WS message, the following processing is performed. The second consistency maintenance control unit 44 generates a header part of the IV message and supplies it to the second message transmission unit 42. The destination device number of the message header generated at this time is “010” representing the cache CM 3, the message identifier is the identifier representing IV, the address and the request source device number are the messages stored in the second
[0106]
Next, the second consistency maintenance control unit 44 checks whether the cache CM 4 holds the latest block and is not the cache CMi that has issued the WS message. At this time, since the cache CM 4 holds the latest block and is not the cache CM i that issued the WS message, the header part of the IV message is generated as in the case of the cache CM 3 described above. However, the destination device number is “011” representing the cache CM4.
[0107]
Finally, the second consistency maintenance control unit 44 supplies the data specified from the address output from the second
[0108]
The two transmitted IV messages are delivered by the
[0109]
The first consistency
[0110]
When the tag state is “I”, the first consistency
[0111]
If the tag state is 'S', the first consistency
[0112]
The transmitted ACK message is delivered by the
[0113]
The second consistency maintenance control unit 44 of the memory MM2 detects that the ACK message has been taken into the second
[0114]
When the directory state is 'WSP' and the directory map is not '0001' (here, '0010'. In this case, an ACK message issued by the cache CM 3 in the sequence shown in FIG. 14 is received) 2 The consistency maintaining control unit 44 writes in the
[0115]
Next, when the directory state is “WSP” and the value of the directory map is “0001” (when the ACK message issued by the cache CM 4 is received in the sequence shown in FIG. 14), the second consistency maintenance control First, the unit 44 generates a header part of the CR message and supplies it to the second message transmission unit 42. The destination device number of the message header generated at this time is the request source device number of the message header stored in the second message receiver 41 (in this case, “000”), and the message identifier represents CR. In the identifier, the address and the request source apparatus number are the address of the message header part stored in the second
[0116]
The sent CR message is delivered by the
[0117]
The operation when the first consistency maintaining
[0118]
Next, when the second consistency maintenance control unit 44 of the memory MM2 that has received the WS message reads the directory state and the directory map of the corresponding block of the
[0119]
The second consistency maintenance control unit 44 first generates a header portion of the NCR message and supplies it to the second message transmission unit 42. The destination device number of the message header generated at this time is the request source device number of the message header stored in the second message receiver 41 (in this case, “000”), and the message identifier represents NCR. In the identifier, the address and the request source apparatus number are the address of the message header part stored in the second
[0120]
The sent NCR message is delivered by the
[0121]
The operation when the first consistency
[0122]
Next, effects of the first exemplary embodiment of the present invention will be described.
[0123]
For example, consider an operation when the processor PR1 performs writing and then the processor PR4 performs reading in a state where the blocks of the memory MM2 exist and are shared in the cache CM1 and the cache CM3. Since the write performed by the processor PR1 is reflected in the cache CM1 and the memory MM2, the latest data exists in the cache CM1 and the memory MM2.
[0124]
Therefore, when the processor PR4 next reads, a read request message is transmitted to the memory MM2, but since the latest data exists in the memory MM2, the memory MM2 immediately stores the latest block in the cache CM1. An attached message can be transmitted. For this reason, there is no processing for requesting write-back to the cache CMi that only holds the latest block in the memory MM2, and receiving the response, thereby shortening the time required for responding to the data read by the processor PR4. Can do. Further, since it is not necessary to request write back, the number of messages exchanged between the cache and the memory can be reduced in order to maintain data consistency.
[0125]
Next, in the data consistency maintenance control method in the second embodiment, the tag states stored in the
[0126]
The messages exchanged between the cache CMi and the memory MMi in the data consistency maintenance control method in the second embodiment include RM, WS, and the like in the data consistency maintenance control method in the first embodiment. An ECR message is newly added to 11 types of messages such as WB, FR, IV, FD, ACK, SDR, EDR, CR, and NCR, and there are 12 types of messages. Like the CR message, the ECR message is a response message for notifying the cache CMi from which the memory MMi has issued the WS message that processing for the WS message has been completed in the memory MMi.
[0127]
Next, in the data consistency maintenance control method according to the second embodiment, a case where the processor PR1 accesses data in the memory MM2 is taken as an example, and a series of operations for maintaining data consistency performed by the access are performed. Only the differences from the data consistency maintenance control method in the first embodiment are shown.
[0128]
The operation of the data consistency maintenance control method in the second embodiment is different from the operation of the data consistency maintenance control method in the first embodiment in that the second consistency maintenance of the memory MM2 that has received the WS message is different. As a result of the control unit 44 reading the directory state and directory map of the corresponding block in the
[0129]
In this case, the data consistency maintenance control method according to the second embodiment takes the sequence shown in FIG.
[0130]
The second consistency maintenance control unit 44 first generates a header part of the ECR message and supplies it to the second message transmission unit 42. The destination device number of the message header generated at this time is the request source device number of the message header stored in the second message receiver 41 (in this case, “000”), and the message identifier represents ECR. In the identifier, the address and the request source apparatus number are the address of the message header part stored in the second
[0131]
The sent ECR message is delivered by the
[0132]
The first consistency
[0133]
Next, effects of the second exemplary embodiment of the present invention will be described.
[0134]
For example, in a state where the block state of the cache CM1 is a shared state and the latest block exists only in the cache CM1 and the memory MM2, the processor PR1 writes continuously, and no other processor PRi accesses during that time. Think about the case. In this case, in the data consistency maintenance control method according to the first embodiment, a write request message is issued from the cache CM1 to the memory MM2 for each write, and the number of messages for data consistency maintenance control in this case increases. There is a problem of doing.
[0135]
In the data consistency maintenance control method according to the second embodiment, in the above case, the write request message is issued from the cache CM1 to the memory MM2 for the first two writes, but the subsequent third time. No message for data consistency maintenance control is issued with respect to writing from, and an increase in the number of messages in this case can be prevented.
[0136]
Next, in the data consistency maintenance control method in the third embodiment, the tag states stored in the
[0137]
In the data consistency maintenance control method according to the third embodiment, in addition to the directory state and the directory map, the update frequency value is held in the
[0138]
In the data consistency maintenance control method according to the third embodiment, an update frequency upper limit value is newly defined as a parameter.
[0139]
Further, in the data consistency maintenance control method in the third embodiment, the message exchanged between the cache CMi and the memory MMi is similar to the message in the data consistency maintenance control method in the second embodiment. There are 12 types of messages: RM, WS, WB, FR, IV, FD, ACK, SDR, EDR, CR, NCR, and ECR.
[0140]
Next, in the data consistency maintenance control method according to the third embodiment, a case where the processor PR1 accesses data in the memory MM2 will be described as an example, and a series of operations for maintaining data consistency performed by the access will be described. To do.
[0141]
The operation of the cache CMi in the data consistency maintenance control method in the third embodiment is the same as the operation of the cache CMi in the data consistency maintenance control method in the second embodiment. Is omitted. Hereinafter, the operation of the memory MMi in the data consistency maintenance control method according to the third embodiment will be described in the order in which five types of messages of RM, WS, WB, FD, and ACK are received.
[0142]
When the second consistency maintenance control unit 44 of the memory MM2 detects that the RM message has been taken into the second
[0143]
Cache CMi that holds a block other than the cache CMi that has a directory state of C and the directory map value has issued an RM message (identified from the request source device number added to the message and in this case is cache CM1) (In this case, the directory map is “0000” or “0001”), regardless of the value of the update frequency value, in the sequence shown in FIG. Processing when an RM message is received.
[0144]
The second consistency maintenance control unit 44 first generates a header part of the EDR message and supplies it to the second message transmission unit 42. The destination device number of the message header generated at this time is the request source device number of the message header stored in the second message receiving unit 41 (in this case, “000”), and the message identifier represents EDR. In the identifier, the address and the request source apparatus number are the address of the message header part stored in the second
[0145]
When the directory state is C and the value of the directory map indicates that there is a cache CMi that holds a block other than the cache CMi that issued the RM message (here, the cache CM1) (here, the cache CM1 is RM) (This is a case where the directory map is other than “0000” or “0001” since the message is issued), and the memory MM2 receives the RM message from the cache CM1 in the sequence shown in FIG. 18 regardless of the value of the update frequency value. Process if received.
[0146]
The second consistency maintenance control unit 44 first generates a header part of the SDR message and supplies it to the second message transmission unit 42. The destination device number of the message header generated at this time is the request source device number of the message header stored in the second message receiving unit 41 (in this case, “000”), and the message identifier represents SDR. In the identifier, the address and the request source apparatus number are the address of the message header part stored in the second
[0147]
When the directory state is M, processing is performed when the memory MM2 receives the RM message from the cache CM1 in the sequence shown in FIGS. 19 and 20 regardless of the value of the update frequency value. In this case, the cache CMi holding the latest block is uniquely determined from the directory map. In the example shown in FIGS. 19 and 20, since the value of the directory map is “0100”, it can be confirmed that the cache CM 3 holds only the latest data.
[0148]
The second consistency maintenance control unit 44 first generates a header part of the FR message and supplies it to the second message transmission unit 42. The destination device number of the message header generated at this time is “010” representing the cache CM 3 holding the latest block, the message identifier is an identifier representing FR, the address and the request source device number are the second
[0149]
When the directory state is 'RMP' or 'WSP', the process when the memory MM2 receives the RM message from the cache CM1 in the sequence shown in FIG. 21 regardless of the value of the directory map and the update frequency value. To do.
[0150]
The second consistency maintenance control unit 44 first generates a header portion of the NCR message and supplies it to the second message transmission unit 42. The destination device number of the message header generated at this time is the request source device number of the message header stored in the second message receiver 41 (in this case, “000”), and the message identifier represents NCR. In the identifier, the address and the request source apparatus number are the address of the message header part stored in the second
[0151]
Next, when the second consistency maintenance control unit 44 of the memory MM2 detects that the WS message has been taken into the second
[0152]
The directory state is “C” and the value of the directory map indicates that there is no cache CMi that holds a block other than the cache CMi that issued the WS message (in this case, the cache CM1 has issued the WS message). If the update frequency value does not match the update frequency upper limit value, the process when the memory MM2 receives the WS message from the cache CM1 in the sequence shown in FIG. do.
[0153]
The second consistency maintenance control unit 44 first generates a header part of the CR message and supplies it to the second message transmission unit 42. The destination device number of the message header generated at this time is the request source device number of the message header part stored in the second message receiving unit 41 (in this case, “000”). The message identifier is an identifier representing CR, and the address and the request source device number are the address of the message header part stored in the second
[0154]
The directory state is “C” and the value of the directory map indicates that there is no cache CMi that holds a block other than the cache CMi that issued the WS message (in this case, the cache CM1 has issued the WS message). If the update frequency value matches the update frequency upper limit value, the processing when the memory MM2 receives the WS message from the cache CM1 is performed in the sequence shown in FIG. . The sequence shown in FIG. 23 is a case where the update frequency upper limit value is set to “2”.
[0155]
The second consistency maintenance control unit 44 first generates a header part of the ECR message and supplies it to the second message transmission unit 42. The destination device number of the message header generated at this time is the request source device number of the message header stored in the second message receiver 41 (in this case, “000”), and the message identifier represents ECR. In the identifier, the address and the request source apparatus number are the address of the message header part stored in the second
[0156]
When the directory state is C and the value of the directory map indicates that there is a cache CMi that holds a block other than the cache CMi that issued the WS message (in this case, the cache CM1 has issued the WS message) This is the case when the memory MM2 receives a WS message from the cache CM1 in the sequence shown in FIG. 24, regardless of the update frequency value. Hereinafter, in the example shown in FIG. 24, a case where the value of the directory map when the WS message is received is, for example, “1101” will be described.
[0157]
The second consistency maintenance control unit 44 first checks whether the cache CM1 holds the latest block and is not the cache CMi that issued the WS message. At this time, since the cache CM1 is a cache CMi that has issued a WS message from the request source device number stored in the second
[0158]
Next, the second consistency maintenance control unit 44 checks whether the cache CM2 holds the latest block and is not the cache CMi that issued the WS message. At this time, from the directory map value “1101”, the cache CM 2 does not hold the latest data, so nothing is done in this case.
[0159]
Next, the second consistency maintenance control unit 44 checks whether or not the cache CM 3 holds the latest block and is not the cache CMi that has issued the WS message. At this time, since the cache CM 3 holds the latest block and is not the cache CMi that issued the WS message, the following processing is performed. The second consistency maintenance control unit 44 generates a header part of the IV message and supplies it to the second message transmission unit 42. The destination device number of the message header generated at this time is “010” representing the cache CM 3, the message identifier is the identifier representing IV, the address and the request source device number are the messages stored in the second
[0160]
Next, the second consistency maintenance control unit 44 checks whether the cache CM 4 holds the latest block and is not the cache CMi that has issued the WS message. At this time, since the cache CM 4 holds the latest block and is not the cache CM i that issued the WS message, the header part of the IV message is generated as in the case of the cache CM 3 described above. However, the destination device number is “011” representing the cache CM4.
[0161]
Finally, the second consistency maintenance control unit 44 supplies the data specified from the address output from the second
[0162]
When the directory state is “WSP”, the processing when the memory MM2 receives the WS message from the cache CM1 is performed in the sequence shown in FIG. 25 regardless of the directory map and the update frequency value.
[0163]
The second consistency maintenance control unit 44 first generates a header portion of the NCR message and supplies it to the second message transmission unit 42. The destination device number of the message header generated at this time is the request source device number of the message header stored in the second message receiver 41 (in this case, “000”), and the message identifier represents NCR. In the identifier, the address and the request source apparatus number are the address of the message header part stored in the second
[0164]
Next, when the second consistency maintenance control unit 44 of the memory MM2 detects that the WB message has been taken into the second
[0165]
When the directory state is “M”, the processing when the memory MM3 receives the WB message from the cache CM1 is performed in the sequence shown in FIG. 26 regardless of the value of the update frequency value. The second consistency maintenance control unit 44 writes the
[0166]
When the directory state is RMP, the processing when the memory MM3 receives the WB message from the cache CM1 is performed in the sequence shown in FIG. 27 regardless of the values of the directory map and the update frequency value. The second consistency maintenance control unit 44 only causes the second
[0167]
Next, when the second consistency maintenance control unit 44 of the memory MM2 detects that the FD message is taken into the second
[0168]
The second consistency maintenance control unit 44 first generates a header part of the SDR message and supplies it to the second message transmission unit 42. The destination device number of the message header generated at this time is the request source device number of the message header stored in the second message receiving unit 41 (in this case, “000”), and the message identifier represents SDR. In the identifier, the address and the request source apparatus number are the address of the message header part stored in the second
[0169]
Next, when the second consistency maintaining control unit 44 of the memory MM2 detects that the ACK message has been taken into the second
[0170]
When the directory state is “RMP”, processing is performed when the memory MM2 receives an ACK message from the cache CM3 in the sequence shown in FIG. 20 regardless of the update frequency value.
[0171]
The second consistency maintenance control unit 44 first generates a header part of the EDR message and supplies it to the second message transmission unit 42. The destination device number of the message header generated at this time is the request source device number of the message header stored in the second message receiving unit 41 (in this case, “000”), and the message identifier represents EDR. In the identifier, the address and the request source apparatus number are the address of the message header part stored in the second
[0172]
When the directory state is “WSP” and the directory map is not “0001”, the processing when the memory MM2 receives the ACK message issued by the cache CM3 in the sequence shown in FIG. 24 is performed regardless of the value of the update frequency value. .
[0173]
The second consistency maintenance control unit 44 writes in the
[0174]
Next, when the directory state is “WSP” and the value of the directory map is “0001”, the memory MM2 receives the ACK message issued by the cache CM4 in the sequence shown in FIG. 24 regardless of the value of the update frequency value. Process if
[0175]
First, the second consistency maintenance control unit 44 generates a header part of the CR message and supplies it to the second message transmission unit 42. The destination device number of the message header generated at this time is the request source device number of the message header stored in the second message receiving unit 41 (in this case, “000”), and the message identifier represents CR. In the identifier, the address and the request source apparatus number are the address of the message header part stored in the second
[0176]
Next, effects of the third exemplary embodiment of the present invention will be described.
[0177]
For example, in a state where the block state of the cache CM1 is a shared state and the latest block exists only in the cache CM1 and the memory MM2, the processor PR1 writes continuously, and no other processor PRi accesses during that time. Think about the case. In this case, in the data consistency maintenance control method according to the first embodiment, a write request message is issued from the cache CM1 to the memory MM2 for each write. Therefore, there is a problem that the number of messages for data consistency maintenance control in this case increases. In the data consistency maintenance control method in the second embodiment, the first two writes are reflected in the memory, but the third and subsequent writes are not reflected in the memory. Therefore, after the second writing, the latest block does not exist in the memory MM2. Therefore, when another processor PRi accesses thereafter, the latest block does not exist in the memory MM2, and in this case, it takes a long time until the data is responded to the processor after a cache miss occurs. Become.
[0178]
In the data consistency maintenance control method according to the third embodiment, when the update frequency upper limit value that is a parameter is set to N, the first N + 1 writes are also reflected in the memory MM2. Therefore, the latest block exists in the memory MM2 until N + 1 writing is performed. For this reason, when another processor PRi accesses during that time, the latest block exists in the memory MM2, and therefore it is possible to reduce the time required until data is returned to the processor after a cache miss occurs. If there is no access during that time, the writing is not reflected in the memory MM2 from the (N + 2) th time. Therefore, an increase in messages in this case can be prevented.
[0179]
【The invention's effect】
The first effect is that, when a cache miss occurs due to reading by the processor, it is possible to shorten the time required until data is returned from the cache to the processor.
[0180]
The reason is that when writing is performed on a block shared by the processors, the memory also reflects the writing and the latest block exists.
[0181]
The second effect is that it is possible to reduce messages for data consistency maintenance control generated when a cache miss occurs due to reading by the processor.
[0182]
The reason is that when writing is performed on a block shared by the processors, the memory also reflects the writing and the latest block exists.
[0183]
A third effect is that an increase in the number of messages generated by processor writing can be suppressed.
[0184]
The reason is that if the processor writes continuously to the block that is actually shared by multiple caches, and the other cache does not access during that time, the write is not reflected in the memory. This is because it is cut off.
[0185]
The fourth effect is that it is possible to adjust whether the first and second effects are strengthened or the third effect is strengthened.
[0186]
The reason is that the number of times the processor continuously writes to a block that is shared by multiple caches and when the other cache does not access during that time, the write is reflected in memory. This is because it can be set with a parameter.
[Brief description of the drawings]
FIG. 1 is a diagram illustrating a configuration of a conventional multiprocessor system according to the present invention.
FIG. 2 is a configuration explanatory diagram of a cache according to the present invention.
FIG. 3 is a diagram illustrating the configuration of a memory according to the present invention.
FIG. 4 is a diagram illustrating a relationship between a directory map value and a cache held therein;
FIG. 5 is a view for explaining the structure of a message header in the data consistency maintenance control method according to the first embodiment.
FIG. 6 is a sequence flow in the case where a block to be replaced is written back to the memory in the case of a cache miss in the data consistency maintenance control method according to the first embodiment.
FIG. 7 is a sequence flow for writing back a block that is a replacement target in the case of a cache miss in the data consistency maintenance control method according to the first embodiment to a memory;
FIG. 8 is a sequence flow of messages exchanged between the cache and the memory in the case of a cache miss in the first embodiment.
FIG. 9 is a sequence flow of messages exchanged between the cache and the memory in the case of a cache miss in the first embodiment.
FIG. 10 is a sequence flow of messages exchanged between the cache and the memory in the case of a cache miss in the first embodiment.
FIG. 11 is a sequence flow of messages exchanged between the cache and the memory in the case of a cache miss in the first embodiment.
FIG. 12 is a sequence flow of messages exchanged between the cache and the memory in the case of a cache miss in the first embodiment.
FIG. 13 is a sequence flow of messages exchanged between a cache and a memory in the case of write sharing in the first embodiment.
FIG. 14 is a sequence flow of messages exchanged between a cache and a memory in the case of write sharing in the first embodiment.
FIG. 15 is a sequence flow of messages exchanged between a cache and a memory in the case of write sharing in the first embodiment.
FIG. 16 is a diagram for explaining the operation of the data consistency maintenance control method according to the second embodiment;
FIG. 17 is a sequence flow of messages exchanged between a cache and a memory in the case of a cache miss in the third embodiment.
FIG. 18 is a sequence flow of messages exchanged between the cache and the memory in the case of a cache miss in the third embodiment.
FIG. 19 is a sequence flow of messages exchanged between the cache and the memory in the case of a cache miss in the third embodiment.
FIG. 20 is a sequence flow of messages exchanged between the cache and the memory in the case of a cache miss in the third embodiment.
FIG. 21 is a sequence flow of messages exchanged between the cache and the memory in the case of a cache miss in the third embodiment.
FIG. 22 is a sequence flow of messages exchanged between a cache and a memory in the case of write sharing in the third embodiment.
FIG. 23 is a sequence flow of messages exchanged between a cache and a memory in the case of write sharing in the third embodiment.
FIG. 24 is a sequence flow of messages exchanged between a cache and a memory in the case of write sharing in the third embodiment.
FIG. 25 is a sequence flow of messages exchanged between a cache and a memory in the case of write sharing in the third embodiment.
FIG. 26 is a sequence flow for writing back a block that is a replacement target in the case of a cache miss in the data consistency maintaining method according to the third embodiment to a memory;
FIG. 27 is a sequence flow in the case where a block to be replaced is written back to the memory in the case of a cache miss in the data consistency maintaining method according to the third embodiment.
[Explanation of symbols]
PRi processor
CMi cache
MMi memory
12 Interconnection network
21 Memory Access Manager
22 Tag memory
23 First Consistency Maintenance Control Unit
24 First data control unit
25 Cache memory
26 First message receiver
27 First message transmitter
41 Second message receiver
42 Second message transmitter
43 Directory memory
44 Second consistency maintenance control unit
45 Second data control unit
46 Main memory
Claims (2)
キャッシュにおいて、保持しているブロックが複数のプロセッサのキャッシュに保持されている共有状態にあるのか当該プロセッサのキャッシュにのみ存在する非共有状態にあるのかブロック毎に管理し、 In the cache, manage whether for each block whether the block being held is in a shared state held in the cache of multiple processors or in a non-shared state that exists only in the cache of the processor,
メモリにおいて、どのプロセッサがブロックを保持しているか、最新のデータがメモリに存在するかどうかブロック毎に管理し、 In the memory, which processor holds the block, manages whether the latest data exists in the memory, for each block,
プロセッサがキャッシュのあるブロックに対して書き込みを行った際に、当該キャッシュのブロックの状態が非共有状態の場合は当該キャッシュのブロックに書き込みを反映し、当該キャッシュのブロックの状態が共有状態にあり、メモリで管理している情報が他のプロセッサのキャッシュがブロックを保持していることを示している場合、当該キャッシュおよびメモリのブロックに書き込みを反映し、他のプロセッサのキャッシュがブロックを保持していた場合、当該ブロックを無効化し、書き込みが行われたキャッシュのブロックの状態を共有状態のままとし、 When the processor writes to a block in the cache, if the cache block status is unshared, the cache is reflected in the cache block, and the cache block status is in the shared status. If the information managed in the memory indicates that the cache of another processor holds the block, the write is reflected in the cache and the memory block, and the cache of the other processor holds the block. If so, invalidate the block, leave the state of the cache block in which the write was performed, as shared,
当該キャッシュのブロックの状態が共有状態にあり、メモリで管理している情報が他のプロセッサのキャッシュがブロックを保持していないことを示している場合、当該キャッシュおよびメモリのブロックに書き込みを反映し、書き込みが行われたキャッシュのブロックの状態を非共有状態に遷移させることを特徴とするデータ一貫性維持制御方法。 If the cache block status is shared and the information managed in the memory indicates that the cache of another processor does not hold the block, the write is reflected in the cache and memory block. A data consistency maintenance control method, wherein the state of a cache block in which writing has been performed is transitioned to a non-shared state.
キャッシュにおいて、保持しているブロックが複数のプロセッサのキャッシュに保持されている共有状態にあるのか当該プロセッサのキャッシュにのみ存在す In a cache, whether the block being held is in a shared state held in the cache of multiple processors or exists only in the cache of that processor る非共有状態にあるのかブロック毎に管理し、To manage whether it is in a non-shared state
メモリにおいて、どのプロセッサがブロックを保持しているか、最新のデータがメモリに存在するかどうか、更新頻度値、をブロック毎に管理し、 In the memory, which processor holds the block, whether the latest data exists in the memory, and the update frequency value are managed for each block,
前記更新頻度値は、メモリで管理している情報がある1プロセッサのキャッシュがブロックを保持し最新のデータがメモリに存在することを示している場合にブロックをキャッシュに保持する当該プロセッサから書き込みの反映が行われた回数を記録し、他のプロセッサからアクセスがあった場合は回数を0に戻し、The update frequency value indicates that the cache of one processor having the information managed in the memory holds the block and the latest data exists in the memory, and the update frequency value is written from the processor holding the block in the cache. Record the number of reflections and if there is an access from another processor, return the number to 0,
当該キャッシュのブロックの状態が非共有状態の場合は当該キャッシュのブロックに書き込みを反映し、 If the cache block is in a non-shared state, write is reflected in the cache block,
当該キャッシュのブロックの状態が共有状態にあり、メモリで管理している情報が他のプロセッサのキャッシュがブロックを保持していることを示している場合は、当該キャッシュおよびメモリのブロックに書き込みを反映し、他のプロセッサのキャッシュがブロックを保持していた場合、当該ブロックを無効化し、書き込みが行われたキャッシュのブロックの状態を共有状態のままとし、 If the cache block is in the shared state and the information managed in the memory indicates that the other processor's cache holds the block, the write is reflected in the cache and memory block. However, if the cache of another processor holds the block, the block is invalidated, and the state of the block of the cache in which the writing is performed remains the shared state.
当該キャッシュのブロックの状態が共有状態にあり、メモリで管理している情報が他のプロセッサのキャッシュがブロックを保持していないことを示し、更新頻度値がある一定値より小さい場合は、当該キャッシュおよびメモリのブロックに書き込みを反映し、更新頻度値をインクリメントし、書き込みが行われたキャッシュのブロックの状態を共有状態のままとし、 If the cache block status is shared, the information managed in the memory indicates that the cache of another processor does not hold the block, and the update frequency value is smaller than a certain value, the cache And the write is reflected in the memory block, the update frequency value is incremented, the state of the cache block in which the write was performed remains in the shared state,
当該キャッシュのブロックの状態が共有状態にあり、メモリで管理している情報が他のプロセッサのキャッシュがブロックを保持していないことを示し、更新頻度値がある一定値と一致する場合は、当該キャッシュおよびメモリのブロックに書き込みを反映し、書き込みが行われたキャッシュのブロックの状態を非共有状態に遷移させる、ことを特徴とするデータ一貫性維持制御方法。 If the cache block status is shared, the information managed in the memory indicates that the cache of another processor does not hold the block, and the update frequency value matches a certain value, A data consistency maintenance control method characterized by reflecting a write in a cache and memory block, and transitioning the state of the cache block in which the write has been performed to a non-shared state.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2000009808A JP3678620B2 (en) | 1996-03-01 | 2000-01-19 | Data consistency maintenance control method in multiprocessor system |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP8043924A JPH09237259A (en) | 1996-03-01 | 1996-03-01 | Method for controlling maintenance of data consistency in multi processor system |
| JP2000009808A JP3678620B2 (en) | 1996-03-01 | 2000-01-19 | Data consistency maintenance control method in multiprocessor system |
Related Parent Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP8043924A Division JPH09237259A (en) | 1996-03-01 | 1996-03-01 | Method for controlling maintenance of data consistency in multi processor system |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2000172656A JP2000172656A (en) | 2000-06-23 |
| JP3678620B2 true JP3678620B2 (en) | 2005-08-03 |
Family
ID=34913724
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2000009808A Expired - Fee Related JP3678620B2 (en) | 1996-03-01 | 2000-01-19 | Data consistency maintenance control method in multiprocessor system |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP3678620B2 (en) |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP3791433B2 (en) | 2002-02-27 | 2006-06-28 | 日本電気株式会社 | System, control processing apparatus, and system control method |
| WO2007096980A1 (en) * | 2006-02-24 | 2007-08-30 | Fujitsu Limited | Record control device and record control method |
-
2000
- 2000-01-19 JP JP2000009808A patent/JP3678620B2/en not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| JP2000172656A (en) | 2000-06-23 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| KR100308323B1 (en) | Non-uniform memory access (numa) data processing system having shared intervention support | |
| US6631448B2 (en) | Cache coherence unit for interconnecting multiprocessor nodes having pipelined snoopy protocol | |
| US8103835B2 (en) | Low-cost cache coherency for accelerators | |
| EP0735480B1 (en) | Cache coherent computer system that minimizes invalidation and copyback operations | |
| TWI391821B (en) | Processor unit, data processing system and method for issuing a request on an interconnect fabric without reference to a lower level cache based upon a tagged cache state | |
| KR100548908B1 (en) | Centralized snoop filtering method and device | |
| US6343347B1 (en) | Multiprocessor system bus with cache state and LRU snoop responses for read/castout (RCO) address transaction | |
| JP3007872B2 (en) | Method and apparatus for providing a cache coherency protocol for maintaining cache coherency in a multiprocessor data processing system | |
| US6353875B1 (en) | Upgrading of snooper cache state mechanism for system bus with read/castout (RCO) address transactions | |
| US6343344B1 (en) | System bus directory snooping mechanism for read/castout (RCO) address transaction | |
| JPH09223118A (en) | Snoop cache memory control system | |
| US6922755B1 (en) | Directory tree multinode computer system | |
| US6587922B2 (en) | Multiprocessor system | |
| US20020078305A1 (en) | Method and apparatus for invalidating a cache line without data return in a multi-node architecture | |
| US6647469B1 (en) | Using read current transactions for improved performance in directory-based coherent I/O systems | |
| JP3009430B2 (en) | Processor and cache memory control method thereof | |
| US6651157B1 (en) | Multi-processor system and method of accessing data therein | |
| US6349367B1 (en) | Method and system for communication in which a castout operation is cancelled in response to snoop responses | |
| JP3678620B2 (en) | Data consistency maintenance control method in multiprocessor system | |
| US6944721B2 (en) | Asynchronous non-blocking snoop invalidation | |
| JP3714235B2 (en) | Multiprocessor system | |
| JPH09237259A (en) | Method for controlling maintenance of data consistency in multi processor system | |
| US6324617B1 (en) | Method and system for communicating tags of data access target and castout victim in a single data transfer | |
| JP2689899B2 (en) | Information processing device | |
| JPH11212868A (en) | Snoop cash memory control system |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20001226 |
|
| RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20050311 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050510 |
|
| 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: 20090520 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100520 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110520 Year of fee payment: 6 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110520 Year of fee payment: 6 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120520 Year of fee payment: 7 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120520 Year of fee payment: 7 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130520 Year of fee payment: 8 |
|
| LAPS | Cancellation because of no payment of annual fees |