JP3784101B2 - キャッシュコヒーレンスを有するコンピューター・システムおよびキャッシュコヒーレンス方法 - Google Patents

キャッシュコヒーレンスを有するコンピューター・システムおよびキャッシュコヒーレンス方法 Download PDF

Info

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
Application number
JP09959496A
Other languages
English (en)
Other versions
JPH0922383A (ja
Inventor
ザヒール・イーブラヒム
サトヤナラヤナ・ニシュタラ
ウイリアム・ヴァン・ルー
ケヴィン・ノーモイル
レスリー・コーン
サード ルイス・エフ・コフィン,ザ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of JPH0922383A publication Critical patent/JPH0922383A/ja
Application granted granted Critical
Publication of JP3784101B2 publication Critical patent/JP3784101B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

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

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

【0001】
【発明の属する技術分野】
本発明は、コンピュータ・システムの分野に係り、特に、データ・コヒーレンスを維持するための無効化動作とコピーバック動作の発生を減少させるための機構を含んでいるマルチプロセッサ・コンピュータ・システムに関する。
【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)

  1. メモリ相互接続サブシステムと複数のプロセッサ・サブシステムとを有するコンピュータ・システムであり、それぞれの前記プロセッサ・サブシステムはキャッシュメモリとタグを有するものであり、前記メモリ相互接続サブシステムは前記プロセッサ・サブシステム内の前記タグに対応する複製タグを有するものであり、前記複製タグは、対応する前記プロセッサ・サブシステム内の前記タグが管理するデータブロックが、少なくとも専有状態と共有一致状態を含む複数の状態のうちのいずれであるかを示すものである、コンピュータ・システムであって、
    前記プロセッサ・サブシステムは、データブロックに対する前記キャッシュメモリにおけるミスヒットが発生したときに、当該データブロックの性質に応じて、当該データブロックを特定する共有読み出し要求、または、当該データブロックを特定する常時共有読み出し要求のいずれかを選択し、選択した要求を生成し前記メモリ相互接続サブシステムに発行するものであり、
    前記メモリ相互接続サブシステムは、前記共有読み出し要求を前記プロセッサ・サブシステムから受け取ったときに、前記複製タグを調査するものであり、調査の結果として、前記共有読み出し要求を発行した前記プロセッサ・サブシステム以外のいずれのプロセッサ・サブシステム内のキャッシュメモリも、前記共有読み出し要求が特定するデータブロックを保持していないことが判明した場合には、前記複製タグにおいて、前記共有読み出し要求により特定するデータブロックが前記専有状態であることを示すようにするものであり、
    前記メモリ相互接続サブシステムは、前記常時共有読み出し要求を前記プロセッサ・サブシステムから受け取ったときに、前記複製タグにおいて、前記常時共有読み出し要求により特定するデータブロックが前記共有一致状態であることを示すようにするものである、
    ことを特徴とするコンピュータ・システム。
  2. メモリ相互接続サブシステムと複数のプロセッサ・サブシステムとを有するコンピュータ・システムであり、それぞれの前記プロセッサ・サブシステムはキャッシュメモリとタグを有するものであり、前記メモリ相互接続サブシステムは前記プロセッサ・サブシステム内の前記タグに対応する複製タグを有するものであり、前記複製タグは、対応する前記プロセッサ・サブシステム内の前記タグが管理するデータブロックが、少なくとも専有状態と共有一致状態を含む複数の状態のうちのいずれであるかを示すものである、コンピュータ・システムにおけるキャッシュコヒーレンス方法であって、
    前記プロセッサ・サブシステムが、データブロックに対する前記キャッシュメモリにおけるミスヒットが発生したときに、当該データブロックの性質に応じて、当該データブロックを特定する共有読み出し要求、または、当該データブロックを特定する常時共有読み出し要求のいずれかを選択し、選択した要求を生成し前記メモリ相互接続サブシステムに発行するステップと、
    前記メモリ相互接続サブシステムが、前記共有読み出し要求を前記プロセッササブシステムから受け取ったときに、前記複製タグを調査し、調査の結果として、前記共有読み出し要求を発行した前記プロセッサ・サブシステム以外のいずれのプロセッサ・サブシステム内のキャッシュメモリも、前記共有読み出し要求が特定するデータブロックを保持していないことが判明した場合には、前記複製タグにおいて、前記共有読み出し要求により特定するデータブロックが前記専有状態であることを示すようにするステップと、
    前記メモリ相互接続サブシステムが、前記常時共有読み出し要求を前記プロセッサ・サブシステムから受け取ったときに、前記複製タグにおいて、前記常時共有読み出し要求により特定するデータブロックが前記共有一致状態であることを示すようにするステップと、
    を含むキャッシュコヒーレンス方法。
JP09959496A 1995-03-31 1996-03-29 キャッシュコヒーレンスを有するコンピューター・システムおよびキャッシュコヒーレンス方法 Expired - Lifetime JP3784101B2 (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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> 多重プロセッサ・コンピュータ・システム内で割込み情報を伝えるための方法および装置

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