JP3784101B2 - キャッシュコヒーレンスを有するコンピューター・システムおよびキャッシュコヒーレンス方法 - Google Patents
キャッシュコヒーレンスを有するコンピューター・システムおよびキャッシュコヒーレンス方法 Download PDFInfo
- Publication number
- JP3784101B2 JP3784101B2 JP09959496A JP9959496A JP3784101B2 JP 3784101 B2 JP3784101 B2 JP 3784101B2 JP 09959496 A JP09959496 A JP 09959496A JP 9959496 A JP9959496 A JP 9959496A JP 3784101 B2 JP3784101 B2 JP 3784101B2
- Authority
- JP
- Japan
- Prior art keywords
- subsystem
- tag
- processor
- data block
- memory
- 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 - Lifetime
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0817—Cache consistency protocols using directory methods
- G06F12/0822—Copy directories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
【発明の属する技術分野】
本発明は、コンピュータ・システムの分野に係り、特に、データ・コヒーレンスを維持するための無効化動作とコピーバック動作の発生を減少させるための機構を含んでいるマルチプロセッサ・コンピュータ・システムに関する。
【0002】
【従来の技術】
従来のマルチプロセッサ・コンピュータ・システムは、典型的には、一つの主メモリ・サブシステムに接続されたプロセッサ・サブシステムのセットを含む。そのような主メモリ・サブシステムにより、典型的には、システム内のプロセッサ用の命令とデータの蓄積領域とともに、システムのプロセッサの間で共有されるデータ構造のための蓄積領域とが提供される。そのような共有されるデータ構造によって、プロセッサ間通信と、プロセッサ間でのデータとコードの共有が可能になる。
【0003】
典型的には、プロセッサ・サブシステムは、共通バス或いは交換型相互接続データパス(switched interconnect data path) のような物理的な相互接続によって主メモリ・サブシステムに接続される。そのような相互接続は、単純な回路交換型相互接続(circuti switched interconnction) 、或いは、アウト-オブ-オーダー・トランザクションを可能にする複雑なパケット交換型相互接続のいずれかの機能を果たすことができる。
【0004】
それに加えて、各々のプロセッサ・サブシステムは、典型的には、付随の外部キャッシュメモリを含む。そのような外部キャッシュメモリは、通常、主メモリ・サブシステムから選択されたデータブロックを格納する。典型的には、そのような外部キャッシュメモリは、キャッシュ内に格納されたデータブロックについて、主メモリ・サブシステムへのフェッチを避けることにより、キャッシュされたデータブロックへの高速プロセッサアクセスを提供する。
【0005】
そのようなマルチプロセッサ・コンピュータシステムは、パケット交換型或いは回路交換型のいずれであっても、典型的には、主メモリとキャッシュメモリ内に格納された対応しているデータブロックとの間のデータコヒーレンスを維持するためのプロトコルを実行する。各々のキャッシュメモリは、典型的には、キャッシュされたデータブロックのステータスを示すタグのセットを含む。例えば、MOESIプロトコルとして参照されるキャッシュ・コヒーレンス・プロトコルの一つのタイプは、キャッシュメモリ内に格納されたデータブロックについて五つの状態のセットを維持する。この五つの状態には、「無効(invalid)」状態、「共有(shared)」状態、「専有(exclusive)」状態、「修正(modified)」状態が含まれる。
【0006】
そのようなシステムにおいては、第1のプロセッサが、第1のプロセッサ用の外部キャッシュ内に無いデータブロックが目標とされるロードメモリ命令を実行する場合には、外部から適切なデータブロックがフェッチされる。典型的には、第1のプロセッサがミスしているデータブロックを特定するread_to_share(共有読み出し)(RDS)トランザクションをメモリ相互接続に発行する。そのようなread_to_share(RDS)トランザクションは、通常、ミスしているデータブロックを第1のプロセッサの外部キャッシュに返し、第1のプロセッサの外部キャッシュ内のそのデータブロックに付随したタグを修正して、データブロックが「共有」状態でキャッシュされていることを示す。
【0007】
マルチプロセッサ・コンピュータ・システムは、そのようなMOESIプロトコルへの最初の書き込み最適化を実行することができる。そのような最適化により、第1のプロセッサからのread_to_share(RDS)トランザクションは、ミスしているデータブロックを返し、他のキャッシュメモリがそのデータブロックを所有していない場合には、ミスしているデータブロックに付随のタグを修正して「専有」状態にあることを示す。それ以後、第1のプロセッサがその専有データブロックへのストア命令を実行する場合には、他のキャッシュコヒーレンスメッセージは、メモリ相互接続を通して転送されない。ミスしたデータブロックが「共有」状態でキャッシュされていた場合には、そのような最適化は、そうでなければ発生したであろうメモリ相互接続を通しての無効化或いはコピーバック動作を除去する。
【0008】
MOESIプロトコルに対するそのような書き込み最適化は、通常、第1のプロセッサからのいずれの他のプロセッサによっても所有されなかったデータブロックを目標としたread_to_share(RDS)トランザクションが、第1のプロセッサについてのプライベートなデータブロックに対応するという推定に基づく。そのような推定が誤っており、ミスしているデータブロックがプライベートデータでない場合には、第2のプロセッサは、そのデータブロックについて、メモリの相互接続を通してread_to_share(RDS)トランザクションを後で発行することができる。そのような場合には、たとえ第1のプロセッサがデータブロックを修正しなかったとしても、そして、たとえミスしているデータブロックが主メモリから利用できるとしても、第1のプロセッサは、通常、ミスしているデータブロックをコピーバック動作で第2のプロセッサに供給しなければならない。
【0009】
【発明が解決しようとする課題】
残念ながら、第1のプロセッサキャッシュの外部キャッシュメモリがデータソースとなるような動作は、そのような外部競合が第1のプロセッサにより実行された命令と干渉するので、第1のプロセッサの動作に干渉するかもしれない。それに加えて、メモリ相互接続を通してのそのような不必要な無効化或いはコピーバック動作は、そうでなければ避けることができた相互接続における余分なトラフィックを生み出す。さらに、主メモリは、通常、高バンド幅アクセスのために最適化されるので、データが、主メモリからではなく、read_to_share(RDS)トランザクションでキャッシュメモリから供給される場合には、そのようなシステムのスループットは典型的には減少する。
【0010】
【課題を解決するための手段】
要求プロセッサによって書き込まれそうもないデータについてのキャッシュコヒーレンスプロトコルの最初の書き込み最適化を、選択的に可能或いは不可能にするコンピュータシステムが開示される。最初の書き込み最適化を不可能にすることにより、読み出し専用メモリページに対するキャッシュミス、或いは、命令フェッチの間の、マルチプロセッサ・システムにおけるコピーバックと無効化メッセージが減少する。ダイナミック・リンク・ライブラリで見い出されるように、読み出し専用コードセグメントにおけるプロセッサ間での命令を共有するコンピュータ・システムにおいても利点が認められる。共有された読み出し専用定数データについて、また、プロセッサからプロセッサへのプロセスの移動についての利点も理解される。
【0011】
コンピュータ・システムは、プロセッサ・サブシステムのセットと一つのメモリ相互接続を含む。各々のプロセッサ・サブシステムは、外部タグを有する外部キャッシュメモリを含み、このメモリ相互接続は、外部タグに対応する複製されたタグのセットを維持する。プロセッサ・サブシステムは、読み出し専用データブロックに対してキャッシュミスしたときに、read_to_share_always(常時共有読み出し)(RDSA)要求を生成し、そうでないときには、read_to_share(RDS)要求を生成する。メモリ相互接続が、共有メモリへのアクセスを可能にし、外部タグと複製タグのキャッシュ状態の遷移を制御し、最初の書き込み最適化を選択的に可能にするか不可能にする。
本発明の他の特徴と利点は添付の図面や以下の詳細な説明から明らかになる。
【0012】
【発明の実施の形態】
図において同様な要素には同一の参照番号を付してあり、図示されているのは例示であり、本発明は図示のものに限定されるものではない。
図1は、一実施形態としてのコンピュータシステム10を示す。コンピュータ・システム10は、プロセッサ・サブシステム20−22のセットと、一つのメモリ相互接続サブシステム18を含む。プロセッサ・サブシステム20−22の各々は、L2キャッシュメモリを含む。
【0013】
メモリ相互接続サブシステム18は、プロセッサ・サブシステム20−22に主メモリ14への共有アクセスを提供する。プロセッサ・サブシステム20−22は、メモリポート1−Nのセットを介してメモリ相互接続サブシステム18と通信する。例えば、プロセッサ・サブシステム20のためのポート1は、データパス40とアドレスパス42と制御パス44を含み、プロセッサ・サブシステム22のためのポートNは、データパス46とアドレスパス48と制御パス50を含む。
【0014】
メモリ相互接続サブシステム18は、主メモリ14へのデータパス・スイッチ12とシステム・コントローラ16と複製されたタグ30−32のセットを含む。一つの実施形態では、データパス・スイッチ12は、制御信号54のセットを介してシステム・コントローラ16によって制御されるクロスバースイッチである。データパス・スイッチ12は、データパス40とデータパス46を含む各々のポート1−Nのデータパスを介して主メモリ14へのデータパスアクセスを可能にする。
【0015】
システム・コントローラ16は、プロセッサ・サブシステム20−22から受け取ったアドレスをデコードすることにより、また、メモリ制御バス56を介して主メモリ14への、ローアドレス選択(RAS)とカラムアドレス選択(CAS)信号を含んでいるメモリ制御信号を生成することにより、メモリコントローラとして機能する。
【0016】
システム・コントローラ16は、コンピュータ・システム10に対するキャッシュコヒーレンス機構も実行する。システム・コントローラ16は、複製タグ30−32のセットを維持する。複製タグ30−32は、プロセッサ・サブシステム20−22の外部キャッシュに対応しているタグを反映する。例えば、複製タグ30は、プロセッサ・サブシステム20の中の外部キャッシュメモリのタグに対応し、複製タグ32は、プロセッサ・サブシステム22の中の外部キャッシュメモリのタグに格納された情報を反映する。システム・コントローラ16は、スヌープバス58を介して、複製タグ30−32に対するタグ・ルックアップ動作及びタグ修正動作を実行する。
【0017】
システム・コントローラ16は、アドレスパス42とアドレスパス48を含んでいる各々のポート1−Nのアドレスパスを介してプロセッサ・サブシステム20−22からメモリアクセス要求を受け取る。システム・コントローラ16は、プロセッサ・サブシステム20−22からの要求を仲裁して、データパス・スイッチ12を構成(コンフィグ)し、メモリデータバス52を介しての主メモリ14へのアクセス用の、或いは、プロセッサ・サブシステムからプロセッサ・サブシステムへのデータ転送用の必要な接続を提供する。システム・コントローラ16は、適切な制御パスを介してキャッシュ状態遷移制御メッセージ及び他の情報に応答する。
【0018】
メモリアクセス要求は、例えば、read_to_share(RDS)要求と、read_to_share_always(RDSA)要求を含む。ロードが読み出し・書き込みデータを目標としている場合には、対応する外部キャッシュメモリに対するロードミスの後で、プロセッササブシステム20−22は、システムコントローラ16に対してread_to_share(RDS)要求を用い、ミスしているキャッシュブロックをリトリーブする。一方、ロードが命令コード或いは書き込まれそうもない他の形式のデータのような読み出し専用データを目標とする場合には、対応する外部キャッシュメモリに対するロードミスの後で、プロセッササブシステム20−22は、システムコントローラ16に対してread_to_share_always(RDSA)要求を使用し、ミスしているキャッシュブロックをリトリーブする。そのような読み出し専用のミスは、メモリ管理機構によって読み出し専用のものとしてマークを付けられた命令キャッシュミス或いはデータキャッシュミスデータに対応させ得る。
【0019】
システム・コントローラ16は、スヌープバス58を介して特定されたデータブロックについてタグ・ルックアップを実行することにより、read_to_share(RDS)要求又はread_to_share_always(RDSA)要求を行う。システム・コントローラ16は、スヌープバス58を介して複製タグ30−32を読み出し、特定されたデータブロックのキャッシュ状態を決定する。システム・コントローラ16は、データパス・スイッチ12を構成し、read_to_share(RDS)或いはread_to_share_always(RDSA)トランザクションについて、特定されたデータブロックに関する適当なソースを提供する。適切なソースには、例えば、複製タグ30−32の状態に従って、主メモリ14或いはプロセッサ・サブシステム20−22の外部キャッシュの一つを含んでもよい。
【0020】
システム・コントローラ16は、ポート1−Nの制御パスを介してメッセージを転送し、read_to_share(RDS)或いはread_to_share_always(RDSA)トランザクションに関与するプロセッササブシステム20−22におけるキャッシュ状態遷移を制御する。また、システム・コントローラ16は、read_to_share(RDS)或いはread_to_share_always(RDSA)トランザクションに関与する複製タグ30−32について、スヌープバス58を介してキャッシュ状態の更新も行う。
【0021】
図2は、一つの実施形態としての、複製タグ30−32のキャッシュ・コヒーレンス・プロトコルを示す。システム・コントローラ16は、「無効(invalid)」(I)状態、「共有一致(shared clean)」(S)状態、「共有修正(shared modified)」(O)状態、「専有・潜在的修正(exclusive and potentially modified)」(M)状態を含むMOSIキャッシュコヒーレンスプロトコルに従って、複製タグ30−32を維持する。
【0022】
図3は、一つの実施形態としての、プロセッサ・サブシステム20を示す。プロセッサ・サブシステム20は、プロセッサ70、外部キャッシュ74、外部タグ76の関連したセット、及び、ポート・インタフェース72を含む。プロセッサ・サブシステム22のような、コンピュータ・システム10の中の他のプロセッサ・サブシステムは、プロセッサ・サブシステム20について示されたものと同様な方法で実施することができる。
【0023】
プロセッサ70は、メモリロードとメモリストア動作を外部キャッシュ74に発行する。外部キャッシュ74へのキャッシュ「ミス」は、ポート・インタフェース72に、アドレスパス42を介して転送されたメッセージパケットを使用してシステム・コントローラに対してキャッシュ要求を発行させる。発行された要求は、例えば、read_to_share_always(RDSA)要求及びread_to_share(RDS)要求を含む。アドレスパス42を介して転送されたメッセージパケットは、要求タイプ(形式)を特定するヘッダと、キャッシュ要求のデータブロックを特定するアドレスを含む。
【0024】
システム・コントローラ16が、データパス・スイッチ12を、複製タグ30−32の状態に従って、ミスしているデータブロックについての適切なデータをソースとして選択するように構成した後に、ポート・インタフェース72は、データパス40を介してミスしているデータブロックを受け取る。ポート・インタフェース72は、制御パス44を介してシステム・コントローラ16からキャッシュ状態制御メッセージを受け取る。キャッシュ状態制御メッセージは、外部キャッシュ74の中に格納された新しくフェッチされたミスしているデータブロックについて、キャッシュ状態の遷移を決定する。
【0025】
図4は、外部タグ76のキャッシュコヒーレンスプロトコルの一実施態様を示す。外部キャッシュ74は、「無効」(I)状態、「共有一致」(S)状態、「専有一致」(E)状態、「共有且つ修正」(O)状態、及び、「専有且つ修正」(M)状態を含むMOESIキャッシュコヒーレンス・プロトコルに従って外部タグ76を維持する。
【0026】
他の実施形態では、システム・コントローラ16がMSIキャッシュコヒーレンス・プロトコルに従って、複製タグ30−32を維持する一方、外部キャッシュ74は、MESIキャッシュコヒーレンス・プロトコルに従って外部タグ76を維持する。そのような実施形態は、メモリ相互接続サブシステム18を、反映メモリとして機能させることができ、反映メモリでは、「修正」データブロックへのロードミス時のコピーバック動作により、データブロックが主メモリ14にライトバックされ、要求プロセッサが「共有」状態に遷移される。
【0027】
図5は、システム・コントローラ16により書き込み最適化されたread_to_share(RDS)トランザクションの取り扱いを示す。例示された書き込み最適化は、コンピュータ・システム10のキャッシュコヒーレンス・プロトコルへの最初の書き込み最適化として参照することができる。
【0028】
ブロック100において、システム・コントローラ16が、以降はメモリポートAとして参照されるメモリポート1−Nの一つに接続されたプロセッサ・サブシステム20−22の一つからのread_to_share(RDS)トランザクションを受け取る。
【0029】
ブロック102において、システム・コントローラ16は、read_to_share(RDS)トランザクションの特定されたデータブロックについてスヌープバス58を介してメモリポートAに対応する複製タグを読み取る。決定ブロック104において特定されたデータブロックが他のメモリポート1−Nによって所有されていない場合には、制御はブロック108に進む。
【0030】
そうでない場合には、制御はブロック106に進み、書き込み最適化なしに共有データブロックを処理する。ブロック108において、複製タグが「共有一致」(S)状態を示す場合には、read_to_share(RDS)のためのデータブロックが、主メモリ14からポートAに供給される。複製タグが、修正状態M或いはOの一つを示す場合には、システム・コントローラ16は、適切なポートへコピーバック要求を発行し、要求ポートに対して「共有一致」(S)状態を示すように複製タグを設定し、また、要求ポートに対する外部タグが「共有一致」(S)状態を示すようにする。
【0031】
ブロック108において、コントローラ16は、特定されたデータブロックについての読み出しデータを供給するようにデータパス・スイッチ12を構成し、read_to_share(RDS)トランザクションを履行する。特定されたデータブロックについての読み出しデータが、主メモリ14からポートAに供給される。
【0032】
ブロック110において、システム・コントローラ16は、ポートA制御パスを介して、特定されたデータブロックについてのポートA外部タグを「無効」(I)状態から「専有一致」(E)状態に遷移させるメッセージを転送する。
【0033】
ブロック112において、システム・コントローラ16は、ポートAについての複製タグを、データブロックについて「無効」(I)から「専有及び潜在的修正」状態へスヌープバス58を介して設定する。
【0034】
ポートAについての複製タグは、データブロックについて「専有及び潜在的修正」状態を示すので、その後、他のメモリポートから発行され、上記read_to_share(RDS)トランザクションと同じデータブロックが目標とされた読み出し処理は、システムコントローラ16に、コピーバック要求をメモリポートAに対して発行させる。そのようなコピーバック動作は、ポートAのプロセッサが、修正されたそのデータブロックを有しているか否かにかかわらず発生する。従って、そのようなコピーバック動作は、コンピュータシステム10においてデータコヒーレンスを維持するためには不必要かもしれない。
【0035】
図6は、システム・コントローラ16によるポートAからのread_to_share_always(RDSA)トランザクションの取り扱いを示す。ブロック118において、システム・コントローラ16は、read_to_share_always(RDSA)要求をメモリポートAから受け取る。
【0036】
ブロック119において、システム・コントローラ16は、スヌープバス58を介して、read_to_share_always(RDSA)トランザクションの特定されたデータブロックについてのメモリポートAに対応する複製タグを読み取る。決定ブロック120において、特定されたデータブロックが、他のメモリポート1−Nによって所有されていない場合には、制御はブロック122に進む。そうでない場合には、制御は決定ブロック128に進む。
【0037】
ブロック122において、システム・コントローラ16は、特定されたデータブロックについての読み出しデータが供給されるように、データパス・スイッチ12を構成し、read_to_share_always(RDSA)トランザクションを履行する。特定されたデータブロックについての読み出しデータが、主メモリ14からポートAに供給される。
ブロック124において、システム・コントローラ16は、特定されたデータブロックについての外部タグを「無効」(I)状態から「共有一致」(S)状態に遷移させるメッセージを、ポートA制御パスを介してメモリポートAに転送する。
【0038】
ブロック126において、システム・コントローラ16は、スヌープバス58を介して特定されたデータブロックについて、ポートA複製タグを「共有一致」(S)状態に設定する。
【0039】
決定ブロック128において、特定されたデータブロックが「共有一致」(S)で他のポートにより保持されている場合には、制御はブロック122に進む。特定されたデータブロックが、修正された状態M或いはOの一つで他のポートにより保持されている場合には、システム・コントローラは、ブロック130において適切なポートへコピーバック要求を発行し、データブロックをポートAに供給し、次いで、制御はブロック124に進んで、上述したように、外部及び複製タグを更新する。
【0040】
ポートAについての複製タグは、そのデータブロックについて「共有一致」(S)状態を示すので、それ以降は、他のメモリポートから発行され上記read_to_share_always(RDSA)トランザクションと同じデータブロックが目標とされた読み出し処理が、システム・コントローラ16に、コピーバック要求をメモリポートAに対して発行させることはない。read_to_share_always(RDSA)トランザクションは、読み出し専用データについてのみ発行されるので、ポートA外部キャッシュの中の対応しているデータブロックは、「共有一致」(S)状態に維持されることになる。従って、コンピュータシステム10におけるデータコヒーレンスが維持される一方、不必要なコピーバック動作が避けられる。
【0041】
明細書において、本発明は特定の例示された実施形態を参照して説明された。しかしながら、特許請求の範囲に述べられた本発明の広範な精神及び範囲から逸脱することなく、各種の修正や変更を加えることができることは明らかである。従って、明細書及び図面は、制限的な意味を持つものではなく、例示として見做されるべきである。
【図面の簡単な説明】
【図1】 プロセッサ・サブシステムの各々がキャッシュメモリを含む、プロセッサ・サブシステムのセットとメモリ相互接続サブシステムを含むコンピュータ・システムと示す。
【図2】 メモリ相互接続サブシステムにおける、複製タグのキャッシュコヒーレンス・プロトコルの一実施形態を示す。
【図3】 一つのプロセッサと、一つの外部キャッシュと外部タグの関連したセットと、メモリ相互接続ポート・インタフェースとを含むプロセッサ・サブシステムを示す。
【図4】 プロセッサ・サブシステムの外部タグのキャッシュコヒーレンス・プロトコルの一実施態様を示す。
【図5】 システム・コントローラによる書き込み最適化を行ったread_to_share(RDS)トランザクションの取り扱いを示す。
【図6】 システム・コントローラによるread_to_share_always(RDSA)トランザクションの取り扱いを示す。
【符号の説明】
10 コンピュータ・システム、 12 データパス・スイッチ、
14 主メモリ、 16 システム・コントローラ、
18 メモリ相互接続サブシステム、
20−22 プロセッサ・サブシステム、
30−32 複製タグ、 40 データパス、
42 アドレスパス、 44 制御パス、
46 データパス、 48 アドレスパス、
50 制御パス、 54 制御信号、
56 メモリ制御バス、 58 スヌープバス、
70 プロセッサ、 72 ポート・インタフェース、
74 外部キャッシュ、 76 外部タグ。
Claims (2)
- メモリ相互接続サブシステムと複数のプロセッサ・サブシステムとを有するコンピュータ・システムであり、それぞれの前記プロセッサ・サブシステムはキャッシュメモリとタグを有するものであり、前記メモリ相互接続サブシステムは前記プロセッサ・サブシステム内の前記タグに対応する複製タグを有するものであり、前記複製タグは、対応する前記プロセッサ・サブシステム内の前記タグが管理するデータブロックが、少なくとも専有状態と共有一致状態を含む複数の状態のうちのいずれであるかを示すものである、コンピュータ・システムであって、
前記プロセッサ・サブシステムは、データブロックに対する前記キャッシュメモリにおけるミスヒットが発生したときに、当該データブロックの性質に応じて、当該データブロックを特定する共有読み出し要求、または、当該データブロックを特定する常時共有読み出し要求のいずれかを選択し、選択した要求を生成し前記メモリ相互接続サブシステムに発行するものであり、
前記メモリ相互接続サブシステムは、前記共有読み出し要求を前記プロセッサ・サブシステムから受け取ったときに、前記複製タグを調査するものであり、調査の結果として、前記共有読み出し要求を発行した前記プロセッサ・サブシステム以外のいずれのプロセッサ・サブシステム内のキャッシュメモリも、前記共有読み出し要求が特定するデータブロックを保持していないことが判明した場合には、前記複製タグにおいて、前記共有読み出し要求により特定するデータブロックが前記専有状態であることを示すようにするものであり、
前記メモリ相互接続サブシステムは、前記常時共有読み出し要求を前記プロセッサ・サブシステムから受け取ったときに、前記複製タグにおいて、前記常時共有読み出し要求により特定するデータブロックが前記共有一致状態であることを示すようにするものである、
ことを特徴とするコンピュータ・システム。 - メモリ相互接続サブシステムと複数のプロセッサ・サブシステムとを有するコンピュータ・システムであり、それぞれの前記プロセッサ・サブシステムはキャッシュメモリとタグを有するものであり、前記メモリ相互接続サブシステムは前記プロセッサ・サブシステム内の前記タグに対応する複製タグを有するものであり、前記複製タグは、対応する前記プロセッサ・サブシステム内の前記タグが管理するデータブロックが、少なくとも専有状態と共有一致状態を含む複数の状態のうちのいずれであるかを示すものである、コンピュータ・システムにおけるキャッシュコヒーレンス方法であって、
前記プロセッサ・サブシステムが、データブロックに対する前記キャッシュメモリにおけるミスヒットが発生したときに、当該データブロックの性質に応じて、当該データブロックを特定する共有読み出し要求、または、当該データブロックを特定する常時共有読み出し要求のいずれかを選択し、選択した要求を生成し前記メモリ相互接続サブシステムに発行するステップと、
前記メモリ相互接続サブシステムが、前記共有読み出し要求を前記プロセッササブシステムから受け取ったときに、前記複製タグを調査し、調査の結果として、前記共有読み出し要求を発行した前記プロセッサ・サブシステム以外のいずれのプロセッサ・サブシステム内のキャッシュメモリも、前記共有読み出し要求が特定するデータブロックを保持していないことが判明した場合には、前記複製タグにおいて、前記共有読み出し要求により特定するデータブロックが前記専有状態であることを示すようにするステップと、
前記メモリ相互接続サブシステムが、前記常時共有読み出し要求を前記プロセッサ・サブシステムから受け取ったときに、前記複製タグにおいて、前記常時共有読み出し要求により特定するデータブロックが前記共有一致状態であることを示すようにするステップと、
を含むキャッシュコヒーレンス方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US42301695A | 1995-03-31 | 1995-03-31 | |
US08/423016 | 1995-03-31 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0922383A JPH0922383A (ja) | 1997-01-21 |
JP3784101B2 true JP3784101B2 (ja) | 2006-06-07 |
Family
ID=23677349
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP09959496A Expired - Lifetime JP3784101B2 (ja) | 1995-03-31 | 1996-03-29 | キャッシュコヒーレンスを有するコンピューター・システムおよびキャッシュコヒーレンス方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US5706463A (ja) |
EP (1) | EP0735480B1 (ja) |
JP (1) | JP3784101B2 (ja) |
DE (1) | DE69628493T2 (ja) |
SG (1) | SG45415A1 (ja) |
Families Citing this family (40)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09204403A (ja) * | 1996-01-26 | 1997-08-05 | Hitachi Ltd | 並列計算機 |
US6098152A (en) * | 1997-10-17 | 2000-08-01 | International Business Machines Corporation | Method and apparatus for miss sequence cache block replacement utilizing a most recently used state |
US6341337B1 (en) * | 1998-01-30 | 2002-01-22 | Sun Microsystems, Inc. | Apparatus and method for implementing a snoop bus protocol without snoop-in and snoop-out logic |
US6397302B1 (en) * | 1998-06-18 | 2002-05-28 | Compaq Information Technologies Group, L.P. | Method and apparatus for developing multiprocessor cache control protocols by presenting a clean victim signal to an external system |
US6378048B1 (en) * | 1998-11-12 | 2002-04-23 | Intel Corporation | “SLIME” cache coherency system for agents with multi-layer caches |
US6857051B2 (en) * | 1998-12-23 | 2005-02-15 | Intel Corporation | Method and apparatus for maintaining cache coherence in a computer system |
US6374333B1 (en) * | 1999-11-09 | 2002-04-16 | International Business Machines Corporation | Cache coherency protocol in which a load instruction hint bit is employed to indicate deallocation of a modified cache line supplied by intervention |
US6349369B1 (en) * | 1999-11-09 | 2002-02-19 | International Business Machines Corporation | Protocol for transferring modified-unsolicited state during data intervention |
US6345344B1 (en) * | 1999-11-09 | 2002-02-05 | International Business Machines Corporation | Cache allocation mechanism for modified-unsolicited cache state that modifies victimization priority bits |
US6345343B1 (en) * | 1999-11-09 | 2002-02-05 | International Business Machines Corporation | Multiprocessor system bus protocol with command and snoop responses for modified-unsolicited cache state |
US6345342B1 (en) * | 1999-11-09 | 2002-02-05 | International Business Machines Corporation | Cache coherency protocol employing a read operation including a programmable flag to indicate deallocation of an intervened cache line |
US6519685B1 (en) * | 1999-12-22 | 2003-02-11 | Intel Corporation | Cache states for multiprocessor cache coherency protocols |
US6745297B2 (en) * | 2000-10-06 | 2004-06-01 | Broadcom Corporation | Cache coherent protocol in which exclusive and modified data is transferred to requesting agent from snooping agent |
US20030115402A1 (en) * | 2001-11-16 | 2003-06-19 | Fredrik Dahlgren | Multiprocessor system |
US20040117669A1 (en) * | 2002-12-12 | 2004-06-17 | Wilson Peter A. | Method for controlling heat dissipation of a microprocessor |
US20040199727A1 (en) * | 2003-04-02 | 2004-10-07 | Narad Charles E. | Cache allocation |
US7284097B2 (en) * | 2003-09-30 | 2007-10-16 | International Business Machines Corporation | Modified-invalid cache state to reduce cache-to-cache data transfer operations for speculatively-issued full cache line writes |
US8145847B2 (en) * | 2004-01-20 | 2012-03-27 | Hewlett-Packard Development Company, L.P. | Cache coherency protocol with ordering points |
US7395374B2 (en) * | 2004-01-20 | 2008-07-01 | Hewlett-Packard Company, L.P. | System and method for conflict responses in a cache coherency protocol with ordering point migration |
US8090914B2 (en) * | 2004-01-20 | 2012-01-03 | Hewlett-Packard Development Company, L.P. | System and method for creating ordering points |
US7769959B2 (en) | 2004-01-20 | 2010-08-03 | Hewlett-Packard Development Company, L.P. | System and method to facilitate ordering point migration to memory |
US7818391B2 (en) | 2004-01-20 | 2010-10-19 | Hewlett-Packard Development Company, L.P. | System and method to facilitate ordering point migration |
US20050160238A1 (en) * | 2004-01-20 | 2005-07-21 | Steely Simon C.Jr. | System and method for conflict responses in a cache coherency protocol with ordering point migration |
US7620696B2 (en) * | 2004-01-20 | 2009-11-17 | Hewlett-Packard Development Company, L.P. | System and method for conflict responses in a cache coherency protocol |
US8176259B2 (en) | 2004-01-20 | 2012-05-08 | Hewlett-Packard Development Company, L.P. | System and method for resolving transactions in a cache coherency protocol |
US8468308B2 (en) * | 2004-01-20 | 2013-06-18 | Hewlett-Packard Development Company, L.P. | System and method for non-migratory requests in a cache coherency protocol |
US8332592B2 (en) * | 2004-10-08 | 2012-12-11 | International Business Machines Corporation | Graphics processor with snoop filter |
WO2007094038A1 (ja) * | 2006-02-13 | 2007-08-23 | Fujitsu Limited | システム制御装置、キャッシュ制御装置およびキャッシュ状態遷移制御方法 |
WO2007099583A1 (ja) | 2006-02-28 | 2007-09-07 | Fujitsu Limited | システムコントローラおよびキャッシュ制御方法 |
US20070283095A1 (en) * | 2006-06-06 | 2007-12-06 | Alcor Micro, Corp. | Method to access storage device through universal serial bus |
JP4912790B2 (ja) * | 2006-08-18 | 2012-04-11 | 富士通株式会社 | システムコントローラ,スヌープタグ更新方法および情報処理装置 |
US7613882B1 (en) | 2007-01-29 | 2009-11-03 | 3 Leaf Systems | Fast invalidation for cache coherency in distributed shared memory system |
JP5393964B2 (ja) * | 2007-09-11 | 2014-01-22 | 中菱エンジニアリング株式会社 | 車両試験装置 |
JP5568939B2 (ja) | 2009-10-08 | 2014-08-13 | 富士通株式会社 | 演算処理装置及び制御方法 |
US8904115B2 (en) * | 2010-09-28 | 2014-12-02 | Texas Instruments Incorporated | Cache with multiple access pipelines |
JP5974720B2 (ja) * | 2012-08-09 | 2016-08-23 | 富士通株式会社 | 演算処理装置、情報処理装置および情報処理装置の制御方法 |
JP5971036B2 (ja) * | 2012-08-30 | 2016-08-17 | 富士通株式会社 | 演算処理装置及び演算処理装置の制御方法 |
US9418035B2 (en) * | 2012-10-22 | 2016-08-16 | Intel Corporation | High performance interconnect physical layer |
US9584617B2 (en) * | 2013-12-31 | 2017-02-28 | Successfactors, Inc. | Allocating cache request in distributed cache system based upon cache object and marker identifying mission critical data |
US9823730B2 (en) * | 2015-07-08 | 2017-11-21 | Apple Inc. | Power management of cache duplicate tags |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4228503A (en) * | 1978-10-02 | 1980-10-14 | Sperry Corporation | Multiplexed directory for dedicated cache memory system |
JPH065524B2 (ja) * | 1987-11-18 | 1994-01-19 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 記憶装置管理方法 |
US4977498A (en) * | 1988-04-01 | 1990-12-11 | Digital Equipment Corporation | Data processing system having a data memory interlock coherency scheme |
US5043886A (en) * | 1988-09-16 | 1991-08-27 | Digital Equipment Corporation | Load/store with write-intent for write-back caches |
EP0380842A3 (en) * | 1989-02-03 | 1991-06-12 | Digital Equipment Corporation | Method and apparatus for interfacing a system control unit for a multiprocessor system with the central processing units |
US5036459A (en) * | 1989-03-09 | 1991-07-30 | U.S. Philips Corporation | Multi-processor computer system with distributed memory and an interprocessor communication mechanism, and method for operating such mechanism |
US5297269A (en) * | 1990-04-26 | 1994-03-22 | Digital Equipment Company | Cache coherency protocol for multi processor computer system |
DE69127936T2 (de) * | 1990-06-29 | 1998-05-07 | Digital Equipment Corp | Busprotokoll für Prozessor mit write-back cache |
JPH04318654A (ja) * | 1991-02-13 | 1992-11-10 | Hewlett Packard Co <Hp> | マイクロプロセッサへの割り込みのリダイレクションシステム |
US5303362A (en) * | 1991-03-20 | 1994-04-12 | Digital Equipment Corporation | Coupled memory multiprocessor computer system including cache coherency management protocols |
US5265232A (en) * | 1991-04-03 | 1993-11-23 | International Business Machines Corporation | Coherence control by data invalidation in selected processor caches without broadcasting to processor caches not having the data |
JP2703417B2 (ja) * | 1991-04-05 | 1998-01-26 | 富士通株式会社 | 受信バッファ |
WO1993000638A1 (en) * | 1991-06-26 | 1993-01-07 | Ast Research, Inc. | Automatic distribution of interrupts controller for a multiple processor computer system |
DE69230428T2 (de) * | 1991-09-27 | 2000-08-03 | Sun Microsystems Inc | Verklemmungserkennung und Maskierung enthaltende Busarbitrierungsarchitektur |
US5319753A (en) * | 1992-09-29 | 1994-06-07 | Zilog, Inc. | Queued interrupt mechanism with supplementary command/status/message information |
US5434993A (en) * | 1992-11-09 | 1995-07-18 | Sun Microsystems, Inc. | Methods and apparatus for creating a pending write-back controller for a cache controller on a packet switched memory bus employing dual directories |
JPH07105031A (ja) * | 1993-09-20 | 1995-04-21 | Internatl Business Mach Corp <Ibm> | 多重プロセッサ・コンピュータ・システム内で割込み情報を伝えるための方法および装置 |
-
1996
- 1996-03-15 EP EP96301803A patent/EP0735480B1/en not_active Expired - Lifetime
- 1996-03-15 DE DE69628493T patent/DE69628493T2/de not_active Expired - Fee Related
- 1996-03-29 SG SG1996006609A patent/SG45415A1/en unknown
- 1996-03-29 JP JP09959496A patent/JP3784101B2/ja not_active Expired - Lifetime
-
1997
- 1997-05-12 US US08/854,418 patent/US5706463A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
DE69628493T2 (de) | 2004-05-19 |
DE69628493D1 (de) | 2003-07-10 |
US5706463A (en) | 1998-01-06 |
JPH0922383A (ja) | 1997-01-21 |
EP0735480B1 (en) | 2003-06-04 |
EP0735480A1 (en) | 1996-10-02 |
SG45415A1 (en) | 1998-01-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3784101B2 (ja) | キャッシュコヒーレンスを有するコンピューター・システムおよびキャッシュコヒーレンス方法 | |
US6631448B2 (en) | Cache coherence unit for interconnecting multiprocessor nodes having pipelined snoopy protocol | |
EP1311955B1 (en) | Method and apparatus for centralized snoop filtering | |
US8140770B2 (en) | Data processing system and method for predictively selecting a scope of broadcast of an operation | |
JP3644587B2 (ja) | 共用介入サポートを有する不均等メモリ・アクセス(numa)・データ処理システム | |
JP4572169B2 (ja) | マルチプロセッサシステム及びその動作方法 | |
TWI391821B (zh) | 在互連結構上發佈請求而無參照基於標籤快取狀態的低階快取之處理單元及資料處理系統與方法 | |
US7747826B2 (en) | Data processing system and method for efficient communication utilizing an in coherency state | |
JP5105863B2 (ja) | 複数のコヒーレンシ・ドメインを有するデータ処理システムでフラッシュ動作を処理するデータ処理システム、方法、およびメモリ・コントローラ | |
US6859864B2 (en) | Mechanism for initiating an implicit write-back in response to a read or snoop of a modified cache line | |
US20020112132A1 (en) | Coherence controller for a multiprocessor system, module, and multiprocessor system wtih a multimodule architecture incorporating such a controller | |
KR20010101193A (ko) | 판독 요청을 원격 처리 노드에 추론적으로 전송하는비정형 메모리 액세스 데이터 처리 시스템 | |
JPH0680499B2 (ja) | マルチプロセッサ・システムのキャッシュ制御システムおよび方法 | |
JPH07253928A (ja) | 2重化キャッシュ・スヌープ機構 | |
CA2300005A1 (en) | Multiprocessing system employing pending tags to maintain cache coherence | |
US6874065B1 (en) | Cache-flushing engine for distributed shared memory multi-processor computer systems | |
US7454578B2 (en) | Data processing system and method for predictively selecting a scope of broadcast of an operation utilizing a location of a memory | |
US7685373B2 (en) | Selective snooping by snoop masters to locate updated data | |
US7210006B2 (en) | Computer system supporting read-to-write-back transactions for I/O devices | |
EP0817064B1 (en) | Methods and apparatus for a directory less memory access protocol in a distributed shared memory computer system | |
US7165146B2 (en) | Multiprocessing computer system employing capacity prefetching | |
US7159079B2 (en) | Multiprocessor system | |
KR20090079964A (ko) | 능동적 프리페치들로 향상된 호버 상태를 실시하는 시스템 및 방법 | |
US6678800B1 (en) | Cache apparatus and control method having writable modified state | |
US20070073919A1 (en) | Data processing system and method that permit pipelining of I/O write operations and multiple operation scopes |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050927 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20051101 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060131 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20060214 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060314 |
|
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: 20100324 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110324 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110324 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120324 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130324 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130324 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140324 Year of fee payment: 8 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
EXPY | Cancellation because of completion of term |