JP2007193784A - 同報通信範囲を示す無効な整合状態を正確に形成するためのデータ処理システム、キャッシュ・システム、および方法 - Google Patents

同報通信範囲を示す無効な整合状態を正確に形成するためのデータ処理システム、キャッシュ・システム、および方法 Download PDF

Info

Publication number
JP2007193784A
JP2007193784A JP2006341782A JP2006341782A JP2007193784A JP 2007193784 A JP2007193784 A JP 2007193784A JP 2006341782 A JP2006341782 A JP 2006341782A JP 2006341782 A JP2006341782 A JP 2006341782A JP 2007193784 A JP2007193784 A JP 2007193784A
Authority
JP
Japan
Prior art keywords
cache
memory
matching
domain
state
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.)
Granted
Application number
JP2006341782A
Other languages
English (en)
Other versions
JP5004571B2 (ja
Inventor
Lynn Guthrie Guy
ガイ・リン・ガスリー
William John Starke
ウィリアム・ジョン・スターク
J Clark Leo
レオ・ジェイ.・クラーク
Jeffrey A Stuecheli
ジェフリー・エイ.・ステューチェリ
Edward Williams Derek
デレク・エドワード・ウィリアムズ
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2007193784A publication Critical patent/JP2007193784A/ja
Application granted granted Critical
Publication of JP5004571B2 publication Critical patent/JP5004571B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means

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)

Abstract

【課題】改良されたキャッシュ整合データ処理システム、キャッシュ・システム、およびキャッシュ整合データ処理システムにおけるデータ処理の方法を提供する。
【解決手段】キャッシュ整合データ処理システムは、少なくとも第1および第2の整合ドメインを含む。データ処理システムの第1の整合ドメイン内の第1のキャッシュ・メモリ内において、アドレス・タグおよび整合状態フィールドに関連した記憶位置にメモリ・ブロックが保持される。メモリ・ブロックに関連したアドレスが割り当てられたホーム・システム・メモリが第1の整合ドメイン内にあるかどうかが判断される。もしなければ、整合状態フィールドは、アドレス・タグは有効であることと、記憶位置は有効なデータを含まないことと、第1の整合ドメインはホーム・システム・メモリを含まないことと、状態の形成に従ってメモリ・ブロックが第1の整合ドメインの外部にキャッシュされることとを示す整合状態に設定される。
【選択図】図1

Description

本発明は、一般的には、データ処理に関し、特にキャッシュ整合性データ処理システムにおけるデータ処理に関する。
サーバ・コンピュータ・システムのような従来の対称型マルチプロセッサ(SMP)コンピュータ・システムは、システム相互接続にすべてが結合された複数の処理部を含み、システム相互接続は、典型的には、1つ以上のアドレスと、データと、制御バスとを含む。システム相互接続に結合されるのは、システム・メモリであって、システム・メモリは、マルチプロセッサ・コンピュータ・システムにおける揮発性メモリの最下位レベルを表し、全ての処理部による読み出しおよび書き込みアクセスに対してアクセス可能である。システム・メモリ内にある命令およびデータに対するアクセス待ち時間を削減するためには、各処理部は、典型的には、各マルチレベルのキャッシュ階層によってさらにサポートされ、その(複数の)より下位レベルは、1つ以上のプロセッサ・コアによって共有されてもよい。
複数のプロセッサ・コアはデータの同一のキャッシュ・ラインに対する書き込みアクセスを要求してもよいこと、および、修正されたキャッシュ・ラインはシステム・メモリに即座に同期しないことから、マルチプロセッサ・コンピュータ・システムのキャッシュ階層は、典型的には、キャッシュ整合プロトコルを実施して、システム・メモリの内容に対する様々なプロセッサ・コアの「見方(views)」のうち、少なくとも整合性の最小レベルを確保する。特に、キャッシュ整合性は、処理部がメモリ・メモリブロックのコピーにアクセスした後にメモリ・ブロックの更新されたコピーをアクセスした後には、処理部はメモリ・ブロックの古いコピーには再びアクセスできないということを最低限要求する。
キャッシュ整合プロトコルは、典型的には、各キャッシュ階層のキャッシュ・ラインに関連して記憶された整合状態のセットを規定すると共に、キャッシュ階層間でキャッシュ状態情報を通信するために使用される整合性メッセージのセットを規定する。典型的な一実施において、整合状態情報は、周知のMESI(変更、排他、共有、無効(Modified,Exclusivve,Shared,Invalid))プロトコルまたはその変形の形態を取り、整合性メッセージは、メモリ・アクセス要求の要求者または受領者あるいはその両方のキャッシュ階層における、プロトコルが規定した整合状態遷移を示す。
あるキャッシュ整合プロトコルにおいては、1つ以上の整合状態が、後続の動作に応じて、不明確に形成または更新あるいはその両方が生じることがある。その結果、これらの整合状態は、関連メモリ・ブロックのシステム全体に渡る整合状態を正確に反映するものではない場合がある。本発明は、不明確または不正確な整合状態の存在により、たとえ整合エラーを生じなくても、不明確な整合状態が減少または除去されれば必要ないようなシステム動作が行われることになりうることを認識している。
上記に鑑み、本発明は、改良されたキャッシュ整合データ処理システム、キャッシュ・システム、およびキャッシュ整合データ処理システムにおけるデータ処理の方法を提供する。
一実施形態において、キャッシュ整合データ処理システムは、少なくとも第1および第2の整合ドメインを含む。データ処理システムの第1の整合ドメイン内の第1のキャッシュ・メモリ内において、アドレス・タグおよび整合状態フィールドに関連した記憶位置にメモリ・ブロックが保持される。メモリ・ブロックに関連したアドレスが割り当てられたホーム・システム・メモリが第1の整合ドメイン内にあるかどうかが判断される。もしなければ、整合状態フィールドは、アドレス・タグは有効であることと、記憶位置は有効なデータを含まないことと、第1の整合ドメインはホーム・システム・メモリを含まないことと、状態の形成に従ってメモリ・ブロックが第1の整合ドメインの外部にキャッシュされることとを示す整合状態に設定される。
本発明の全ての目的、特徴、および利点は、以下の詳細な説明書面において明らかになるだろう。
本発明の特徴的と思われる新規の特徴は、添付の請求項に記載されている。しかしながら、本発明および好ましい使用の形態は、例示の実施形態の以下の詳細な説明を参照して添付の図面と共に読む場合に、最もよく理解されるだろう。
I.データ処理システム例
図面を参照して、特に図1を参照すると、本発明に係るキャッシュ整合対称型マルチプロセッサ(SMP)データ処理システムの実施形態例の高レベルのブロック図が示されている。図示のように、データ処理システム100は、データおよび命令を処理するための複数の処理ノード102aおよび102bを含む。処理ノード102aおよび102bは、アドレス、データ、および制御情報を伝搬するためのシステム相互接続110に結合される。システム相互接続110は、例えば、バス相互接続、スイッチ相互接続、または混合相互接続として実施される。
図示の実施形態において、各処理ノード102は、4つの処理部104a〜104dを含むマルチチップ・モジュール(MCM)として実現され、それぞれは、好ましくは各集積回路として実現される。各処理ノード102内の処理部104a〜104dは、ローカル相互接続114によって通信用に結合され、システム相互接続110と同様に、1つ以上のバスまたはスイッチあるいはその両方で実施されてもよい。
各ローカル相互接続114に結合された装置は、処理部104だけではなく、1つ以上のシステム・メモリ108a〜108dをも含む。システム・メモリ108a〜108d内にあるデータおよび命令は、一般的に、データ処理システム100の任意の処理ノード102における任意の処理部104内のプロセッサ・コアによってアクセスおよび修正が可能である。本発明の代替実施形態において、1つ以上のシステム・メモリ108は、ローカル相互接続114よりもシステム相互接続110に結合されることができる。
SMPデータ処理システムは、相互接続ブリッジ、不揮発ストレージ、ネットワークまたは付属装置との接続のためのポートなどの数多くの追加の図示しない要素を含みうることを、当業者は理解するだろう。そのような追加の要素は本発明の理解のためには必要ないので、図1には示されておらず、本明細書においてさらに説明されてもいない。しかしながら、本発明によって提供される拡張が様々なアーキテクチャのキャッシュ整合データ処理システムに適用可能あり、図1に示す一般的なデータ処理システム・アーキテクチャに限定されるものではないことが理解されるべきである。
図2を参照すると、本発明に係る処理部104の例のより詳細なブロック図が示されている。図示の実施形態において、各処理部104は、命令およびデータを独立して処理するための2つのプロセッサ・コア200aおよび200bを含む。各プロセッサ・コア200は、命令を取り出しおよび依頼して実行する命令シーケンシング部(ISU)208と、命令を実行するための1つ以上の実行部224とを含む。以下に説明するように、実行部224は、好ましくは、メモリ・ブロックを参照するメモリ・アクセス命令を実行するためのロード‐記憶部(LSU)228を含むか、メモリ・ブロックを参照する動作の生成を行う。
各プロセッサ・コア200の動作は、マルチレベル揮発性メモリ階層によってサポートされ、当該階層は、その最下位レベルに共有システム・メモリ108a〜108dを有し、その上位レベルに1つ以上のレベルのキャッシュ・メモリを有する。図示の実施形態において、各処理部104は、集積メモリ・コントローラ(IMC)206を含む。IMC206は、プロセッサ・コア200a〜200dから受信した要求およびローカル相互接続114上でのスヌーパ(S)222によってスヌープされた動作に基づいて、処理ノード102内の各システム・メモリ108a〜108dに対する読み出しおよび書き込みアクセスを制御する。IMC206は、ベース・アドレス・レジスタ(BAR)論理240を含み、BAR論理240は、IMC206が担当するアドレス、および同一の処理ノード102内の他の(複数の)IMC206が担当するアドレスの両方を規定する範囲レジスタを含む。
図示の実施形態において、処理部104のキャッシュ・メモリ階層は、各プロセッサ・コア200内のストア‐スルー・レベル1(L1)キャッシュ226と、処理部104の全てのプロセッサ・コア200aおよび200bによって共有されるレベル2(L2)キャッシュ230を含む。L2キャッシュ230は、L2アレイおよび234と、マスタ232およびスヌーパ236を備えるキャッシュ・コントローラとを含む。マスタ232は、ローカル相互接続114およびシステム相互接続110上のトランザクションを開始して、関連プロセッサ・コア200aおよび200bから受信されたメモリ・アクセス(および他の)要求に応じて、L2アレイおよびディレクトリにアクセスする。スヌーパ236は、ローカル相互接続114に対する動作をスヌープし、適切な応答を提供し、動作に必要とされるL2アレイおよびディレクトリ234に対していずれかのアクセスを行う。スヌーパ236は、BAR論理240のように、ローカル処理ノード102におけるIMC206が担当するアドレスを示すBAR論理238を含む。
図示のキャッシュ階層は、2つのレベルのキャッシュしか含んでいないが、代替実施形態は、オンチップ、オフチップ、インライン、またはルックアサイド・キャッシュの追加のレベル(L3,L4,L5など)を含んでもよく、これらは、上位レベルのキャッシュの内容を完全に包含、部分的に包含、または非包含であってもよいことを当業者は理解するだろう。
各処理部104は、応答論理210をさらに含み、応答論理210は、データ処理システム100内のキャッシュ整合性を保持する分散整合性シグナリング機構の一部を実施する。加えて、各処理部104は、ローカル接続論理114とシステム接続論理110との間の通信を選択的に促進するための相互接続論理212のインスタンスを含む。最後に、各処理部104は、I/O装置216などの1つ以上のI/O装置の付属をサポートする統合I/O(入出力)コントローラ214を含む。I/Oコントローラ214は、I/O装置216による要求に応じて、ローカル接続論理114およびシステム接続論理110上の動作を発してもよい。
図3を参照すると、L2アレイおよびディレクトリ234の一実施形態例のより詳細なブロック図が示されている。図示のように、L2アレイおよびディレクトリ234は、セット・アソシアティブL2キャッシュ・アレイ300と、L2キャッシュ・アレイ300の内容のL2キャッシュ・ディレクトリ302とを含む。従来のセット・アソシアティブ・キャッシュと同様に、システム・メモリ108内のメモリ位置は、システム・メモリ(実)アドレス内の所定のインデックス・ビットを使用して、キャッシュ・アレイ300内の特定の合同のクラスにマッピングされる。キャッシュ・アレイ300内に記憶された特定のキャッシュ・ラインは、キャッシュ・ディレクトリ302に記録され、キャッシュ・ディレクトリ302は、キャッシュ・アレイ300内の各キャッシュ・ラインにつき1つのディレクトリ・エントリを含む。当業者が理解するように、キャッシュ・ディレクトリ302内の各ディレクトリ・エントリは、少なくとも、対応実アドレスのタグ部分を使用してキャッシュ・アレイ300内に記憶された特定のキャッシュ・ラインを特定するタグ・フィールド304と、キャッシュ・ラインの整合状態を示す状態フィールド306と、同一の合同のクラスにおける他のキャッシュ・ラインに関するキャッシュ・ラインの交換順序を示すLRU(最長時間未使用)フィールド308とを備える。
II.動作例
図4を参照すると、図1のデータ処理システム100のローカルまたはシステム相互接続110および114上の動作例の時空間図が示されている。動作は、L2キャッシュ230のマスタ232(またはI/Oコントローラ214などの他のマスタ)がローカル相互接続114またはシステム相互接続110あるいはその両方の上に要求402を発すると開始する。要求402は、好ましくは、所望のアクセスの種類および要求によってアクセスされるべきリソースを示すリソース識別子(例えば、実アドレス)を含む。通常の種類の要求は、好ましくは、以下の表1に示すものを含む。
Figure 2007193784
要求402は、L2キャッシュ230のスヌーパ236、およびメモリ・コントローラ206(図1)のスヌーパ222によって受信される。一般的に、例外はあるが、要求402のマスタ232と同一のL2キャッシュ230内のスヌーパ236は、要求402をスヌープしない(すなわち、一般的に自動スヌーピングでない)。なぜならば、要求402がローカル相互接続114またはシステム相互接続110あるいはその両方の上を送信されるのは、要求402が処理部104によって内部的に対応できない場合のみだからである。要求402を受信する各スヌーパ222および236は、要求402に対する少なくとも当該スヌーパの応答を表す各部分応答406を提供してもよい。メモリ・コントローラ206内のスヌーパ222は、例えば、スヌーパ222は要求アドレスを担当しているかどうか、および要求に対応するのに利用可能なリソースを有しているかどうかに基づいて、提供する部分応答406を判断する。L2キャッシュ230のスヌーパ236は、例えば、L2キャッシュ・ディレクトリ302の利用可能性、要求を処理するためのスヌーパ236内のスヌープ論理インスタンスの利用可能性、およびL2キャッシュ・ディレクトリ302内の要求アドレスに関連した整合状態に基づいて、部分応答406を判断してもよい。
スヌーパ222および236の部分応答は、応答論理210の1つ以上のインスタンスによって段階的または一度に論理的に結合されて、要求402に対するシステム全般の結合応答(CR)410を決定する。以下に説明する範囲の限定によって、応答論理210は、結合応答410をマスタ232およびスヌーパ222および236へローカル相互接続114またはシステム相互接続110あるいはその両方を介して提供して、要求402に対するシステム全般の応答(例えば、成功、失敗、再試行など)を示す。CR410が要求402の成功を示す場合、CR410は、例えば、要求されたメモリ・ブロックに対するデータ・ソースと、要求されたメモリ・ブロックがマスタ232によってキャッシュされるというキャッシュ状態と、1つ以上のL2キャッシュ230において要求されたメモリ・ブロックを無効化する「クリーンアップ」(例えば、KILL)動作が必要かどうかとを示してもよい。
結合応答410の受信に応じて、1つ以上のマスタ232およびスヌーパ222および236は、典型的には、要求402に対応するために、1つ以上の動作を行う。これらの動作は、データをマスタ232へ供給すること、1つ以上のL2キャッシュ230にキャッシュされたデータの整合状態を無効化するかまたはそうでなければ更新すること、キャストアウト動作を行うこと、システム・メモリ108にデータを書き戻すことなどを含んでもよい。要求402によって必要であれば、応答論理210による結合応答410の生成前または後に、要求されたまたは対象のメモリ・ブロックは、マスタ232へ、またはそこから送信されてもよい。
以下の説明において、要求に対するスヌーパ222および236の部分応答と、要求またはその結合応答あるいはその両方に応じてスヌーパによって行われる動作とについて、要求によって指定された要求アドレスに対してスヌーパが最高整合点(HPC)、最低整合点(LPC)またはそのどちらでもないのいずれかであるかを参照して説明する。LPCは、本明細書において、メモリ・ブロックのレポジトリについての制御点として機能するメモリ装置またはI/O装置として定義される。メモリ・ブロック内にHPCが存在しない場合には、LPCがメモリ・ブロックの真像を保持するストレージに対するアクセスを制御し、メモリ・ブロックの追加のキャッシュされたコピーを生成するための要求を承諾または拒否する権限を有する。図1および図2のデータ処理システムの実施形態における典型的な要求の場合、LPCは、参照されたメモリ・ブロックを保持するシステム・メモリ108についてのメモリ・コントローラ206である。HPCは、本明細書において、メモリ・ブロックの真像をキャッシュする固有に識別された装置(LPCにおける対応メモリ・ブロックと一致する場合もあるし、そうでない場合もある)として定義され、メモリ・ブロックを修正するための要求を承諾または拒否する権限を有する。記述的には、HPCは、メモリ・ブロックを修正しない動作に応じて、要求者に対してメモリ・ブロックのコピーを提供してもよい。よって、図1および図2のデータ処理システムの実施形態における典型的な要求の場合、HPCがもしあるとするならば、L2キャッシュ230ということになろう。メモリ・ブロックに関するHPCを指定するために使用される他のインジケータを使用してもよいが、本発明の好ましい一実施形態は、表2を参照して以下に説明するように、L2キャッシュ230のL2キャッシュ・ディレクトリ302ないの選択された(複数の)キャッシュ整合状態を使用するメモリ・ブロックに対するHPCをもしあれば指定する。
図4をさらに参照して、要求402内で参照されるメモリ・ブロックに対してもしあればHPC、またはHPCがない場合には、メモリ・ブロックのLPCは、好ましくは、保護ウィンドウ404aの間に要求402に応じてメモリ・ブロックの所有権が移転することを防止する役割を有する。図4に示す例の場合において、要求402の要求アドレスによって指定されたメモリ・ブロックについてのHPCであるスヌーパ236は、スヌーパ236がその部分応答406を決定するときから、スヌーパ236が結合応答410を受信するまでに渡る保護ウィンドウ404aの間に要求されたメモリ・ブロックの所有権がマスタ232へ移転することを防止する。保護ウィンドウ404aの間、スヌーパ236は、同一のアドレスを指定する他の要求に対して、所有権がマスタ232へうまく転送されるまで、他のマスタが所有権を取得するのを防止する部分応答406を提供することによって、所有権の移転を防止する。マスタ232は、同様に、結合要求410の受信に続く要求402で要求されたメモリ・ブロックの所有権を保護するための保護ウィンドウ404bを開始する。
スヌーパ222および236は全て、上述のCPUおよびI/O要求を処理するためのリソースが限られているので、互いに異なるレベルの部分応答および対応CRが可能である。例えば、要求されたメモリ・ブロックを担当するメモリ・コントローラ206内のスヌーパ222が要求を処理可能なキューを有する場合には、スヌーパ222は、当該要求に対するLPCとしての機能を果たすことができることを示す部分応答で応答してもよい。一方、スヌーパ222が、要求を処理可能なキューを有しない場合には、スヌーパ222は、メモリ・ブロックに対するLPCであるが、現在要求に対応することはできないことを示す部分応答で応答してもよい。
同様に、L2キャッシュ230内のスヌーパ236は、要求を処理するために、スヌープ論理の利用可能なインスタンスと、L2キャッシュ・ディレクトリ302に対するアクセスとを要求してもよい。これらのリソースのいずれか(または両方)に対するアクセスがない場合は、必要なリソースがないことにより、要求に対応することが現在できないことを信号で知らせる部分応答(および対応CR)という結果となる。
以後、要求に現在対応するのに必要な全ての内部リソースをスヌーパが利用可能にしていることを示す部分応答を提供するスヌーパ222および236は、必要があれば、要求を「肯定(affirm)」しているといえる。スヌーパ236については、スヌープされた処理を認める部分応答は、好ましくは、当該スヌーパ236における要求されたか、または対象であるメモリ・ブロックのキャッシュ状態を示す。要求に現在対応するのに必要な全ての内部リソースをスヌーパ236が利用可能にしていないことを示す部分応答を提供する222および236は、要求に対応するのに「隠れている可能性(possibly hidden)」または「不可能(unable)」であるといえる。そのようなスヌーパ236は、要求に対応するのに「possibly hidden」または「unable」であるのは、スヌーパ236は、スヌープ論理の利用可能なインスタンスおよびL2キャッシュ・ディレクトリ302に対する現在のアクセスがないので、上述に定義した意味で要求を「affirm」できず、他のマスタ232およびスヌーパ222および236の観点からは、不明の整合状態を有するからである。
III.データ配信ドメイン
従来の同報通信ベースのデータ処理システムは、キャッシュ整合性および同報通信を通じたデータ配信の両方を扱っており、従来のシステムにおいては、同報通信は、システム相互接続上で、少なくともシステムないの全てのメモリ・コントローラおよびキャッシュ階層へ送られる。代替アーキテクチャおよび同規模のシステムと比較すると、同報通信ベースのシステムは、少ないアクセス待ち時間、よりよいデータ処理、および共有メモリ・ブロックの整合性管理を提供する傾向がある。
同報通信ベースのシステムの大きさが拡大すると、システム相互接続上のトラフィック量が倍増する。これは、より多くの帯域がシステム相互接続上の通信に必要になるにつれて、システム拡大でシステムコストが急激に上昇することを意味する。すなわち、m個のプロセッサ・コアを有し、それぞれがn個のトランザクションという平均トラフィック量を有するシステムは、m×nというトラフィック量を有する。これは、同報通信ベースのシステムにおけるトラフィック量は、加法的ではなく、乗法的に拡大することを意味する。かなり大きな相互接続帯域幅の要求以上に、システム・サイズの増加は、アクセス待ち時間の増加という2次効果を有する。例えば、最悪の場合には、要求されたデータを提供できる共有整合状態で要求されたメモリ・ブロックを保持している最も離れた低レベルキャッシュの結合応答待ち時間によって、データ読み出しのアクセス待ち時間が限定される。
同報通信ベースのシステムの利点を維持しつつ、システム相互接続帯域幅の要請と、アクセス待ち時間を減らすためには、データ処理システム100全体に分配された複数のL2キャッシュ230が、キャッシュからキャッシュへの介入を使用して、要求L2キャッシュ230に対してメモリ・ブロックをキャッシュが供給することができるようにする「特別な」共有整合状態で、同一のメモリ・ブロックを保持することを許可される。共有メモリ・ブロックについての複数の同時かつ分散されたソースをデータ処理システム100などのSMPデータ処理システムにおいて実施するためには、2つの問題に対処しなければならない。第1に、上記の「特別な」共有整合状態でメモリ・ブロックのコピーを作成することを制御する何らかの規則を実施しなければならない。第2に、例えば、バス読み出し動作またはバスRWITM動作に応じて、もしあればどのスヌーピングL2キャッシュ230が共有メモリ・ブロックを要求L2キャッシュ230へ提供するかを制御する規則がなければならない。
本発明によれは、これらの問題は共に、データ提供ドメインを実施することによって対処される。特に、SMPデータ処理システム内の各ドメインは、データ要求に応じることに参加する1つ以上の低レベル(例えば、L2)キャッシュを含むと定義すると、「特別な」共有整合状態で特定のメモリ・ブロックに一度に保持する1つのキャッシュ階層のみを含むことが許容される。そのようなキャッシュ階層は、同一のドメイン内のより低レベルの要求キャッシュによってバス読み出し型(例えば、読み出しまたはRWITM)動作が開始される場合に存在すれば、要求されたメモリ・ブロックをより低レベルの要求キャッシュへ提供する役割を担う。数多くの互いに異なるドメイン・サイズを定義してもよいが、図1のデータ処理システム100において、各処理ノード1002(すなわち、MCM)がデータ提供ドメインを考慮すれば好都合である。そのような「特別な」共有状態(すなわち、Sr)の一例を、表2を参照して以下に説明する。
IV.整合ドメイン
上述のデータ配信ドメインの実施は、データ・アクセス待ち時間を改良するものの、この拡張は、システムの拡大が増加するにつれてトラフィック量がm×nで乗法的に増加することには対処していない。同報通信ベースの整合機構を維持しつつ、トラフィック量を削減するためには、本発明の好ましい実施形態は、整合ドメインを追加的に実施する。整合ドメインは、上述したデータ配送ドメインと同様に、各処理ノード102が別個の整合ドメインを形成することによって好都合に実施できる(しかし、実施する必要があるわけではない)。データ配送ドメインおよび整合ドメインは、同時に存在しうるが、同時に存在する必要性はない。以後、データ処理システム100の動作例を説明する目的で、これらのドメインは、処理ノード102によって規定される境界線を有するものとする。
整合ドメインの実施は、全整合ドメインより少ない数のドメインによる関与によって要求が対応できる場合に、システム相互接続110に渡って内部ドメイン同報通信を制限することによって、システム・トラフィックを削減する。例えば、処理ノード102aの処理部104aが発するべきバス読み出し動作を有する場合、処理部104aは、その自身の整合ドメイン内の全ての参加者に対して(例えば、処理ノード102a)、まず第1のバス読み出し動作を選択してもよいが、他の整合ドメインの参加者(例えば、処理ノード102b)には選択しない。動作のマスタとして同一の整合ドメイン内のそのような参加者にのみ送られた同報通信動作は、本明細書において「ローカル動作」として定義される。ローカル・バス読み出し動作が処理部104aの整合ドメイン内で対応できる場合には、さらなるバス読み出し動作の同報通信は行われない。しかしながら、バス読み出し動作は処理ノード102aの整合ドメイン内だけでは対応できないということをローカル・バス読み出し動作に対する部分応答および結合応答が示す場合には、同報通信の範囲を拡大して、ローカル整合ドメインに加えて、1つ以上の追加の整合ドメインを含めるようにしてもよい。
基本の実施において、ローカル整合ドメインのみを含む「ローカル」範囲と、SMPデータ処理システムにおける他の全ての整合ドメインを含む「グローバル」範囲という2つの同報通信範囲が使用される。よって、SMPデータ処理システムにおける全ての整合ドメインに送られる動作は、本明細書では「グローバル動作」として定義される。重要なのは、動作に対応するために使用されるのがローカル動作か、より拡大した範囲の動作(例えば、グローバル動作)かを問わず、キャッシュ整合性は、SMPデータ処理システムないの全ての整合ドメインに渡って維持される。ローカルおよびグローバル動作の例は、米国特許出願第11/055305号に詳細に記載されており、その全体を引用によって本明細書に含めるものとする。
好ましい一実施形態において、動作の範囲は、ローカル/バス範囲インジケータ(信号)によってバス動作中に指示される。一実施形態において、ローカル/バス範囲インジケータ(信号)は、1ビットのフラグを備えてもよい。処理部104内の進展論理212は、好ましくは、ローカル相互接続114を介して受信した動作をシステム相互接続110へ進めさせるかどうかを、当該動作のローカル/バス範囲インジケータ(信号)の設定に基づいて決定する。
本説明において、整合ドメイン(または処理ノード)がメモリ・ブロックのLPCを含む場合に、当該整合ドメインは、メモリブロックの「ホーム」整合ドメイン(または「ホーム」ノード)と称される。
V.ドメイン・インジケータ
不必要なローカル動作の発生を制限して、それによって動作待ち時間を削減してローカル相互接続上のさらなる帯域幅を保護するために、本発明は、好ましくは、関連メモリ・ブロックのコピーがローカル整合ドメイン外部にキャッシュされるかどうかを示すドメイン・インジケータをメモリ・ブロック毎に実施する。例えば、図5は、本発明に係るドメイン・インジケータの第1の実施例を示す。図5に示すように、システム・メモリ108は、ダイナミック・ランダム・アクセス・メモリ(DRAM)内に実施されてもよく、複数のメモリ・ブロックを記憶する。システム・メモリ108は、メモリ・ブロック500およびドメイン・インジケータ504内にエラーがもしあればそれを訂正するために使用される関連エラー訂正コード(ECC)502を、各メモリ・ブロック500に関連付けて記憶する。本発明の実施形態によっては、ドメイン・インジケータ504は、特定の整合ドメインを識別(すなわち、整合ドメインまたはノード番号を指定)してもよいが、以後、ドメイン・インジケータ504は、メモリ・ブロック500に対するLPCの役割を果たすメモリ・コントローラ206と同一の制御ドメイン内にのみ、可能であれば関連メモリ・ブロック500がキャッシュされる場合に(例えば、「ローカル」を示すための「1」に)設定される、1ビットのインジケータであるものとする。ドメイン・インジケータ504は、違ったように(例えば、「グローバル」を示すための「0」に)再設定される。ドメイン・インジケータ504を設定して「ローカル」を示すことは、「グローバル」に間違って設定しても整合エラーは生じないという点で、不明確に実施される場合もあるが、不必要なグローバル同報通信動作を引き起こす場合もある。
動作に応じてメモリ・ブロックを提供するメモリ・コントローラ206(およびL2キャッシュ230)は、好ましくは、要求されたメモリ・ブロックと共に、関連ドメイン・インジケータ504を送信する。
VI.整合プロトコル例
本発明は、好ましくは、上述のように、データ配信および整合ドメインの実施を活用するように設計されたキャッシュ整合プロトコルを実施する。好ましい一実施形態において、プロトコル内のキャッシュ整合状態は、(1)キャッシュがメモリ・ブロックに対するHPCであるかどうかの示唆を提供するのに加えて、(2)キャッシュされたコピーが、当該メモリ階層レベルでのキャッシュのうちで固有かどうか(すなわち、システム全般に渡る唯一のキャッシュされたコピーか)、(3)メモリ・ブロックのコピーをメモリ・ブロックに対する要求のマスタへ提供できるか、およびいつ提供できるか、(4)メモリ・ブロックのキャッシュされた像が、LPC(システム・メモリ)における対応メモリ・ブロックと一致するかどうか、および(5)遠隔整合ドメイン内の他のキャッシュが、一致するアドレスを有するキャッシュ・エントリを(おそらく)保持するかどうかをも示す。これらの5つの属性は、例えば、以下の表にまとめた周知のMESI(修正、排他、共有、無効)プロトコルの変形例において表現できる。
Figure 2007193784
A.Ig状態
LPCにアクセスしてメモリ・ブロックが可能であればローカルにだけキャッシュされたと知られているかどうかを判断する必要性を避けるために、Ig(無効グローバル)整合状態を使用して、整合ドメインにキャッシュされたメモリ・ブロックのコピーが残っていない場合のドメイン表示を維持する。Ig状態は、本明細書において、(1)キャッシュ・アレイ内の関連メモリ・ブロックが無効であること、(2)キャッシュ・ディレクトリ内のアドレス・タグが有効であること、および(3)アドレス・タグによって識別されたメモリ・ブロックのコピーは、ホーム整合ドメイン以外の整合ドメイン内にキャッシュされている可能性があることを示すキャッシュ整合状態として定義される。Igの表示は、不明確が好ましく、不明確とは、整合性違反のない不正確であってもよいことを意味する。
Ig状態は、排他的アクセス要求(例えば、バスRWITM動作)に応じて、要求されたメモリ・ブロックをキャッシュが他の整合ドメイン内の要求者に対して提供することに応じて、ホーム整合ドメイン内のより低レベルのキャッシュ内に形成される。
Ig状態を含むキャッシュ・ディレクトリ・エントリが有用な可能性のある情報を搬送するので、少なくとも何らかの実施において、I状態におけるエントリよりもIg状態におけるエントリを優先的に保持することが望ましい(例えば、使用される最長時間未使用(LRU)アルゴリズムを修正して、犠牲となるキャッシュ・エントリを選択して交換することによって行う)。Igディレクトリ・エントリはキャッシュに保持されるので、その排他的アクセス要求がIg状態を形成したキャッシュは、Ig状態でメモリ・ブロックのアドレス・タグを保持しているキャッシュに対して通知なく、メモリ・ブロックのコピーを解放またはライトバックする場合があるため、Igエントリの中には、時間と共に「古く(stale)」なるものもありうる。そのような場合には、「古い」Ig状態は、ローカル動作の代わりにグローバル動作を生じさせなければならないと誤って示しており、整合エラーを生じさせることはないが、そうでなければローカル動作を使用して対応されるはずの何らかの動作をグローバル動作として生じさせるに過ぎない。そのような非効率の発生は、「古い」Igキャッシュ・エントリを最終的に交換することによって、期間的に制限されることになる。
いくつかの規則が、Igキャッシュ・エントリの選択および交換を制御する。第1に、キャッシュがIgエントリを交換のための犠牲として選択した場合(I,In,またはIgpエントリが選択された場合と違って)、システム・メモリ108内の対応ドメイン・インジケータを更新するために、Igエントリのキャストアウトが行われる。第2に、メモリ・ブロックをキャッシュへロードさせた要求が同一のキャッシュ内にIgキャッシュ・エントリを見つけると、キャッシュは、見つけたIgをキャッシュ・ミスとして扱って、Igエントリを選択された犠牲として、キャストアウト動作を行う。よって、キャッシュは、キャッシュ・ディレクトリ内に同一のアドレス・タグの2つのコピーが置かれることを防止する。第3に、Ig状態のキャストアウトは、好ましくは、ローカル整合ドメインに範囲を限定したローカルのみの動作として行われる。第4に、Ig状態のキャストアウトは、好ましくは、ドメインの表示がLPC内のドメイン・インジケータ504に書き戻される、データのないアドレスのみの動作として行われる。
本発明に係るIg状態の実施により、メモリ・ブロックの有効なコピーがホーム整合ドメイン内にキャッシュされていないままであっても、メモリ・ブロックについてのキャッシュされたドメイン・インジケータをホーム整合ドメイン内に保持することによって、通信の効率性が改善される。後述するように、Ig状態によって与えられたキャッシュ・ドメイン表示を使用して、関連メモリ・ブロックを対象とする動作についての相互接続構造上のグローバル同報通信範囲を予測することができる。
B.Igp状態
Igp(無効グローバル予測のみ)整合状態は、非ホーム整合ドメインにメモリ・ブロックのコピーがホーム整合ドメイン内にキャッシュされていないままの場合にキャッシュされたドメイン表示を維持するために使用される。Igp状態は、本明細書において、(1)キャッシュ・アレイ内の関連メモリ・ブロックが無効であること、(2)キャッシュ・ディレクトリ内のアドレス・タグが有効であること、(3)現在の整合ドメインが、ホーム整合ドメインでないこと、および(4)アドレス・タグによって識別されたメモリ・ブロックのコピーは、現在の非ホーム整合ドメイン以外の整合ドメイン内にキャッシュされている可能性があることを示すキャッシュ整合状態として定義される。明確に形成されていたとしても、Igp表示は、不明確が好ましく、不明確とは、整合性違反のない不正確であってもよいことを意味する。
Igp状態は、排他的アクセス要求(例えば、RWITM,DClaim,DCBZ,Kill,または部分書き込み要求)に応じて要求されたメモリ・ブロックの整合所有権を他の整合ドメイン内の要求者にキャッシュが提供することに応じて、非ホーム整合ドメイン内のより低レベルのキャッシュに形成される。
Igp状態を含むキャッシュ・ディレクトリ・エントリが有用な可能性のある情報を搬送するので、少なくとも何らかの実施において、I状態におけるエントリがもしあればそれよりもIgp状態におけるエントリを優先的に保持することが望ましい(例えば、使用される最長時間未使用(LRU)アルゴリズムを修正して、犠牲となるキャッシュ・エントリを選択して交換することによって行う)。Igpディレクトリ・エントリはキャッシュに保持されるので、Igp状態でメモリ・ブロックのアドレス・タグを保持しているキャッシュによるスヌープなく、メモリ・ブロックのコピーは整合ドメインに戻る場合があるので、Igpエントリの中には、時間と共に「古く(stale)」なるものもありうる。そのような場合には、「古い」Igp状態は、ローカル動作の代わりにグローバル動作を生じさせなければならないことを誤って示しており、整合エラーを生じさせることはないが、そうでなければローカル動作を使用して対応されるはずの何らかの動作をグローバル動作として生じさせるに過ぎない。そのような非効率の発生は、「古い」Igpキャッシュ・エントリを最終的に交換することによって、期間的に制限されることになる。
Igエントリを処理するのとは対照的に、Igpエントリを高官アルゴリズム(例えば、RU)に従って交換するための犠牲として選択したことに応じて、またはメモリ・ブロックをキャッシュへロードさせた要求が同一のキャッシュ内にIgpキャッシュ・エントリを見つけたからといって、Igpエントリのキャストアウトは行われない。代わりに、Ipgエントリは、単に解放される。キャストアウトが行われないのは、Igpエントリは、ドメイン・インジケータ504の基礎となるキャッシュされ恐らく修正されたコピーを保持していないからである。
本発明に係るIgp状態の実施により、メモリ・ブロックの有効なコピーが非ホーム整合ドメイン内にキャッシュされていないままであっても、メモリ・ブロックについてのキャッシュされたドメイン・インジケータを範囲予測の目的で非ホーム整合ドメイン内に保持することによって、通信の効率性が改善される。
C.In状態
In状態は、本明細書において、(1)キャッシュ・アレイ内の関連メモリ・ブロックが無効であること、(2)キャッシュ・ディレクトリ内のアドレス・タグが有効であること、および(3)アドレス・タグによって識別されたメモリ・ブロックのコピーは、キャッシュされている可能性があるが、たとえそうであっても、ローカル整合ドメイン内の1つ以上の他のキャッシュ階層によるものに過ぎないことを示すキャッシュ整合状態として定義される。Inの表示は、不明確が好ましく、不明確とは、整合性違反のない不正確であってもよいことを意味する。In状態は、排他的アクセス要求(例えば、バスRWITM動作)に応じて、要求されたメモリ・ブロックをキャッシュが同一の整合ドメイン内の要求者に対して提供することに応じて、より低レベルのキャッシュ内に形成される。
In状態を含むキャッシュ・ディレクトリ・エントリが有用な可能性のある情報を搬送するので、少なくとも何らかの実施において、I状態におけるエントリよりもIn状態におけるエントリを優先的に保持することが望ましい(例えば、使用される最長時間未使用(LRU)アルゴリズムを修正して、犠牲となるキャッシュ・エントリを選択して交換することによって行う)。Inディレクトリ・エントリはキャッシュに保持されるので、その排他的アクセス要求がIn状態を形成したキャッシュは、In状態でメモリ・ブロックのアドレス・タグを保持しているキャッシュに対して通知なく、メモリ・ブロックのコピーを遠隔整合ドメインに供給している場合があるため、Inエントリの中には、時間と共に「古く(stale)」なるものもありうる。そのような場合には、「古い」In状態は、グローバル動作の代わりにローカル動作を生じさせなければならないと誤って示しており、整合エラーを生じさせることはないが、何らかの動作を、グローバル動作としてではなく、間違って最初にローカル動作として生じさせるに過ぎない。そのような非効率の発生は、「古い」Inキャッシュ・エントリを最終的に交換することによって、期間的に制限されることになる。好ましい一実施形態において、In整合状態のキャッシュ・エントリは、キャストアウトを施されることはないが、代わりに単に交換される。よって、Igキャッシュ・エントリとは異なり、Inエントリは、システム・メモリ108内のドメイン・インジケータ504を更新するためには使用されない。
本発明に係るIn状態の実施により、動作のうちの1つのローカル範囲を選択するためにマスタによって調査されてもよいメモリ・ブロックについてのキャッシュされたドメイン・インジケータを保持することによって、通信の効率性が改善される。その結果、他の整合ドメイン内のシステム相互接続110およびローカル相互接続114上の帯域幅が保護される。
D.Sr状態
以下に説明する動作において、共有された要求されたメモリ・ブロックをSr整合状態で保持する低レベルのキャッシュが同一のドメイン内に要求マスタとして存在するかどうかを判断できれば有用である。一実施形態において、「ローカル」Srスヌーパが同一のドメイン内に要求マスタとして存在することは、要求されたメモリ・ブロックをSr整合状態で保持する低レベルのキャッシュにおけるスヌーパの応答の振舞いによって示すことができる。例えば、各バス動作は、バス動作がドメイン境界を横断したかどうかを示す範囲インジケータを含むとする(例えば、マスタの明示的なドメイン・インジケータまたは単一のローカル/非ローカルの範囲ビット)と、共有されたメモリ・ブロックをSr整合状態で保持する低レベルのキャッシュは、同一のデータ提供ドメイン内のマスタによる要求についてのみSr状態で要求を肯定する部分応答を提供でき、また、他の全ての要求についてはS状態を示す部分応答を提供することができる。そのような実施形態において、応答の振舞いは、表3に示すようにまとめられる。ここで、プライム符号(’)の表示を使用して、メモリ・ブロックの実際のキャッシュ状態とは異なる場合もある部分応答を指定している。
Figure 2007193784
上記表3に記載の応答の振る舞いのセットを仮定すると、データ・ソースとしての役割を果たしてもよいSMPデータ処理システム内に分散されたメモリ・ブロックの共有コピーの数を増加させることによって、共有データの平均データ待ち時間を大幅に減少できる。
VII.排他的アクセス動作例
図6を参照すると、本発明に係るデータ処理システムにおけるプロセッサ(CPU)要求に対応する方法例の高レベルの論理フローチャートが示されている。本明細書に提示した他の論理フローチャートと同様に、図6に示すステップの少なくともいくつかは、図示とは異なる順序で行われてもよく、または同時に行われてもよい。
図6の処理は、ブロック600で開始する。ブロック600は、L2キャッシュ230内のマスタ232が、CPU要求(例えば、CPUデータ・ロード要求、CPUデータ記憶要求、CPUロード・リザーブ要求、CPU命令ロード要求など)を処理ユニット104内の関連プロセッサ・コアから受信することを表している。CPU要求に応じて、マスタ232は、ブロック602において、CPU要求内において対象アドレスによって識別された対象メモリブロックが、相互接続構造上にバス動作を生じさせることなくCPU要求が対応されることができる整合状態でL2キャッシュ・ディレクトリ302内に保持されているかどうかを判断する。例えば、対象メモリ・ブロックの整合状態がM,Me,Tx(例えば、T,Tn,Te,またはTen),Sr,S状態のいずれかであることをL2キャッシュ・ディレクトリ302が示していれば、CPU命令取り出し要求またはデータ・ロード要求に対して、相互接続構造上にバス動作を生じさせることなく対応することができる。対象メモリ・ブロックの整合状態がMまたはMe状態であることをL2キャッシュ・ディレクトリ302が示していれば、CPUデータ記憶要求に対して、相互接続構造上にバス動作を生じさせることなく対応することができる。ブロック602において、CPU要求に対して相互接続構造上にバス動作を生じさせることなく対応することができるとマスタ232が判断した場合には、ブロック624に示すように、マスタ232は、L2キャッシュ・アレイ330にアクセスして、CPU要求に対応する。例えば、マスタ232は、要求されたメモリ・ブロックを取得して、CPUデータ・ロード要求または命令取り出し要求に応じて、要求されたメモリ・ブロックを要求プロセッサ・コア200へ供給するか、CPUデータ記憶要求内に与えられたデータをL2キャッシュ・アレイ300に記憶してもよい。ブロック624に従って、処理はブロック626で終了する。
ブロック602へ戻って、対象メモリ・ブロックが、相互接続構造上にバス動作を生じさせることなくCPU要求が対応されることができる整合状態でL2キャッシュ・ディレクトリ302内に保持されていない場合には、ブロック604において、対象メモリ・ブロックをL2キャッシュ230内に入れるために、既存のキャッシュ・ラインをキャストアウトする必要があるかどうかの判断がなされる。一実施形態において、CPU要求に応じて、メモリ・ブロックが要求プロセッサのL2キャッシュ230から追い出されるために選択されて、L2キャッシュ・ディレクトリ302内においてM,T,Te,TnまたはIg整合状態のいずれかであると印付けされた場合には、キャストアウト動作がブロック604において必要となる。キャストアウトが必要であるというブロック604における判断に応じて、ブロック606に示すように、キャッシュのキャストアウト動作が行われる。同時に、マスタ232は、ブロック610において、CPU要求に対応するために生じさせるバス動作の範囲を判断する。例えば、一実施形態において、マスタ232は、ブロック610において、バス動作をローカル動作として同報通信させるか、またはグローバル動作として同報通信させるかを判断する。
各バス動作を最初にローカル動作として生じさせ、ローカル動作として生じさせるのは1回のみという第1の実施形態において、ブロック610に示す判断は、バス動作がかつてローカル・バス動作として生じたかどうかについてのマスタによる判断を簡易に表すことができる。ローカル・バス動作が再試行できる第2の代替実施形態において、ブロック610に示す判断は、バス動作が以前に閾値回数より多く生じたかどうかについてのマスタによる判断を表すことができる。第3の代替実施形態において、ブロック610に示す判断は、ローカル・バス動作が、他の整合ドメイン内の処理ノードと通信を行わずに、対象メモリ・ブロックの整合性の解決に成功しそうかどうかについて、マスタ232による予測に基づいて行うことができる。例えば、関連L2キャッシュ・ディレクトリ302が対象アドレスをIn整合状態に関連付ける場合に、マスタ323は、ローカル・バス動作を選択してもよく、関連L2キャッシュ・ディレクトリ302が対象アドレスをIgまたはIgp整合状態に関連付ける場合には、マスタ323は、グローバル・バス動作を選択してもよい。
ブロック610の判断に応じて、ローカル・バス動作ではなくグローバル・バス動作が生じた場合には、処理はブロック610から以下に説明するブロック620へと進む。一方、ローカル・バス動作を生じさせる判断がブロック610においてなされた場合には、ブロック612に示すように、マスタ232は、ローカル相互接続114上でローカル・バス動作を開始する。ローカル・バス動作は、マスタ232を含むローカル整合ドメイン(例えば、処理ノード102)内でのみ同報通信される。マスタ232が「成功」を示すCRを受信した場合(ブロック614)、処理は、ブロック623へ進み、マスタ232は、ブロック610に示す範囲選択を行うために使用されたプレディクタ(整合状態または履歴ベースのプレディクタ)を更新する。加えて、マスタ232は、ブロック624に示すように、CPU要求に対応する。その後、処理はブロック626において終了する。
ブロック614に戻って、ローカル・バス読み出し動作のためのCRが「成功」を示さない場合には、マスタ232は、ブロック616において、CRが「グローバル再試行」CRかどうかを判断する。「グローバル再試行」CRは、整合プロトコルがローカル整合ドメインの外部の1つ以上の処理ノードの参加を要求するためにバス動作がグローバル・バス動作として再び生じなければならないことを明確に示す。もしそうであれば、処理は以下に説明するブロック620へ進む。一方、CRがバス動作がローカル整合ドメイン内で対応できないことを明確には示していない「再試行」CRである場合には、処理はブロック616からブロック610へ進み、マスタ232は、CPU要求に対応するためにローカル・バス動作を生じさせるかどうかを再び判断する。この場合、マスタ232は、判断の際に、CRによって提供された任意の追加の情報を使用してもよい。ブロック610に続いて、処理は上述のブロック612か、ブロック620へ進む。
ブロック620は、マスタ232が、CPU要求に対応するために、データ処理システム内の全ての処理ノード102へグローバル・バス動作を生じさせることを示す。グローバル・バス読み出し動作のCRがブロック622において「成功」を示さない場合には、マスタ232は、ブロック620において、「成功」を示すCRを受信するまで、再びグローバル・バス動作を生じさせる。グローバル・バス読み出し動作のCRが「成功」を示す場合には、処理は上述のブロック623およびそれ以降のブロックへ進む。
よって、同一の整合ドメイン内の処理とそのデータとの間の親和性を想定すると、CPU要求は、要求マスタの整合ドメインの範囲に限定された、または完全にグローバルな範囲よりも少ない他の限定的な範囲の同報通信を使用して、しばしば対応可能である。上述のデータ配信ドメインと、整合ドメインとを組み合わせれば、データ・アクセス待ち時間が改善されるだけでなく、同報通信の範囲を限定することによってシステム相互接続(および他のローカル相互接続)上のトラフィックが削減される。
図7および図8を参照すると、本発明に係るL2キャッシュ・スヌーパ236のようなキャッシュ・スヌーパが排他的アクセス動作(ストレージ修正動作とも称される)を処理する際の方法例の高レベルの論理フローチャートが示されている。排他的アクセス要求は、上述のRWITM,DClaim,DCBZ,Kill,Write,およびPartial Write動作が含まれる。
図示のように、L2キャッシュ・スヌーパ236がそのローカル相互接続114上で要求を受信することに応じて、処理は図7のブロック700で開始する。要求の受信に応じて、スヌーパ236は、ブロック702において、要求が排他的アクセス動作であるかを要求内のトランザクション種類(Ttype)フィールドを参照して判断する。そうでなければ、スヌーパ236は、ブロック704に示すように、他の処理を行い、処理はブロック750で終了する。しかしながら、スヌーパ236がブロック702において要求が排他的アクセス動作であると判断した場合には、スヌーパ236は、ブロック710において、排他的アクセス動作に対して実体的に応答することが現在可能か(例えば、スヌープ論理の利用可能なインスタンスと、L2キャッシュ・ディレクトリ302に対する現在のアクセスとを有するかどうか)をさらに判断する。スヌーパ236がドメイン・クエリ要求に実体的に応答することが現在できない場合には、スヌーパ236は、ブロック712に示すように、「再試行」を示す部分応答(PR)を提供し、排他的アクセス動作の処理は、ブロック750において終了する。
スヌーパ236が排他的アクセス動作に実体的に応答可能であると仮定すると、スヌーパ236は、ブロック720において、関連L2キャッシュ・ディレクトリ302が対象アドレスを含むメモリ・ブロックに対してデータ‐有効整合状態(例えば、Mx,Tx,Sr,またはS)を示しているかどうかを判断する。そうでなければ、処理はブロック722へ進み、スヌーパ236は、対象アドレスを含むメモリ・ブロックに対する整合状態がIgかどうかを判断する。もしそうであれば、スヌーパ236は、対称アドレスについてのホーム整合ドメイン(例えば、処理ノード102)にあるので、グローバル動作が必要になるであろうことを示す「グローバルを再試行」部分応答を提供して、排他的アクセス動作に対応する(ブロック726)。一方、対象アドレスを含むメモリ・ブロックに対する整合状態がIgでない場合は、スヌーパ236は、「Null」部分応答を提供する。ブロック724または726に続いて、スヌーパ236による排他的アクセス動作の処理は、ブロック750で終了する。
ブロック720に戻って、関連L2キャッシュ・ディレクトリ302が排他的アクセス動作の対象アドレスを含むメモリ・ブロックに対してデータ‐有効整合状態を示しているというスヌーパ236による判断に応じて、処理は、スヌーパ236によって行われる整合状態更新を表すブロック730およびそれ以降のブロックと、スヌーパ236のデータ配信およびもしあれば保護活動を表すページ・コネクタAを介してブロック760(図8)およびそれ以降のブロックとに2つに分岐して、並行して進む。最初にブロック730を参照して、スヌーパ236は、同一の整合ドメイン内に排他的アクセス要求を元々発行した装置(例えばL2キャッシュ230)として存在するかを判断する。例えば、スヌーパ236は、ブロック730に示す判断を、排他的アクセス動作に含まれる範囲ビットを検査することによって行ってもよい。スヌーパ236がブロック730において同一の整合ドメイン内に排他的アクセス要求を元々発行した装置として存在していると判断した場合には、スヌーパ236は、排他的アクセス要求の対象アドレスを含むメモリ・ブロックに対する整合状態を、L2キャッシュ・ディレクトリ302内のIn整合状態に更新する。上記のように、In整合状態は、メモリ・ブロックについてのHPCはローカル(必ずしもホームではない)整合ドメインにあり、メモリ・ブロックを要求する後続のローカル動作は成功するだろうことを不明確に示す。
一方、スヌーパ236がブロック730において同一の整合ドメイン内に排他的アクセス要求を開始した装置として存在していると判断した場合には、スヌーパ236は、BAR論理238を参照して、対象メモリ・ブロックについてのホーム整合ドメイン内にあるかどうかを判断する(ブロック740)。スヌーパ236がブロック740において対象メモリ・ブロックのホーム整合ドメイン内にあると判断した場合には、スヌーパ236は、ブロック742に示すように、対象メモリ・アドレスの整合性状態をL2キャッシュ・ディレクトリ302内のIg状態に更新する。しかしながら、スヌーパ236が対象メモリ・ブロックのホーム整合ドメイン内にないと判断した場合には、スヌーパ236は、対象メモリ・ブロックの整合状態をIgp状態に更新する(ブロック744)、ブロック732,742,および744に従って、排他的アクセス動作に応じた整合状態に対する更新はブロック750において終了する。
図8を参照すると、スヌーパ236のデータ配信およびもしあれば保護活動を示す。図示のように、スヌーパ236は、ブロック760において、スヌープされた排他的アクセス動作がRWITM動作であるかどうかを、例えば、動作によって指定されたTtypeを検査することによって判断する。上記の表1に示したように、RWITM動作は、イニシエータが更新(修正)を意図してメモリ・ブロックの画像の固有のコピーを他の参加者から要求するという、排他的アクセス動作である。ブロック760において排他的アクセス動作がRWITM動作であると判断された場合には、処理は以下に説明するブロック770へ進む。もしそうでなければ、処理はブロック762へ進み、スヌーパ236は、対象メモリ・ブロックについてのHPCにあるかどうかを、例えば、関連L2キャッシュ・ディレクトリ302内の対象メモリ・ブロックの整合状態を参照して判断する。排他的アクセス動作の対象メモリ・ブロックについてのHPCにスヌーパ236がないというブロック762の判断に応じて、スヌーパ236は、「Null」部分応答(ブロック764)を生成またはそれが生成されるようにする(ブロック764)。しかしながら、HPCにスヌーパ236があるというブロック762の判断に応じて、スヌーパ236は、「HPC ack」部分応答を提供(またはそれが提供されるようにする)。「HPC ack」部分応答は、排他的アクセス動作のイニシエータが対象メモリ・ブロックについての新たなHPCとして選択されたことを認めるものである。スヌーパ236は、保護ウィンドウ404aを拡張して、メモリ・ブロックの整合性の所有権を他の要求者が取得するのを防止する(ブロック766)。
ブロック770およびそれ以降のブロックを参照して、スヌーパ236は、関連L2キャッシュ・ディレクトリ302内の対象メモリ・ブロックの整合状態に基づいて、RWITM動作に応じる。特に、L2キャッシュ・ディレクトリ302内の対象メモリ・ブロックの整合状態がMx(例えば、MまたはMe)である場合は、ブロック770および772に示すように、保護ウィンドウ404aを拡張して、対象メモリ・ブロックの整合性の所有権を他の要求者が取得するのを防止し、「HPC ack」部分応答を提供し、メモリ・ブロックのコピーを要求者に提供する。
代わりに、L2キャッシュ・ディレクトリ302内の対象メモリ・ブロックの整合状態がSrであって、スヌーパ236が要求者と同一のデータ提供ドメイン(例えば、処理ノード102)内にある場合は、ブロック774および776に示すように、スヌーパ236は、保護ウィンドウ404aを拡張して、「Ack」部分応答を提供し、メモリ・ブロックのコピーを要求者に提供する。代わりに、ブロック780に示すように、L2キャッシュ・ディレクトリ302内の対象メモリ・ブロックの整合状態がTx(例えば、T,Te,Tn,またはTen)である場合には、スヌーパ236は、ブロック782に示すように、保護ウィンドウ404aを拡張して、対象メモリ・ブロックの整合性の所有権を他の要求者が取得するのを防止し、「HPC ack」部分応答を提供する。加えて、ブロック784および786に示すように、スヌーパ236は、応答論理210から受信した結合応答に依存して、対象メモリ・ブロックのコピーを要求者に提供する。すなわち、このスヌーパ236は対象メモリ・ブロックのコピーを提供する役割を有することを結合応答が示す場合(例えば、要求者と同一の整合ドメイン内に、Sr状態で対象メモリ・ブロックを保持するスヌーパ236はない場合)には、スヌーパ236は、ブロック786に示すように、対象メモリ・ブロックのコピーを要求者に送信する。
ブロック780を再び参照して、否定決定に応じて、スヌーパ236は、ブロック790に示すように「Null」という部分応答を提供する。ブロック766,764,772,776,784,786および790に辿って、処理はブロック792において終了する。
上記のように、応答論理210(例えば、最初の処理部104内の応答論理210)の少なくとも1つのインスタンスが、排他的アクセス動作に応じて、スヌーパ236およびIMC206によって生成された部分応答を結合して、排他的アクセス動作のための結合応答を決定する。図7および図8に示すように、排他的アクセス動作の個別のスヌーパ236は、一般的には、その整合状態に対する更新と、結合応答は独立したデータ配信および保護の責任とについて判断する。この一般的な規則の注目すべき例外は、図8のブロック784〜786を参照して説明したように、対象メモリ・ブロックのTxコピーをローカルにキャッシュしたスヌーパ236が、RWITM動作に応じて、結合応答を参照して、対象メモリ・ブロックのコピーを提供する責任を判断することである。
排他的アクセス動作を開始するマスタ232の観点からすると、結合応答は、はるかに妥当性のある情報を提供する。例えば、結合応答は、好ましくは、(1)対照メモリ・ブックのマスタが整合性の所有権を取得したか、(2)対象メモリ・ブロックの整合性の所有権を取得するために、排他的アクセス動作を、増加した範囲内で再試行しなければならないかどうか、(3)排他的アクセス動作がRWITM動作である場合、対象メモリ・ブロックを提供する役割を担うのはどのスヌーパか、(4)残存すると思われる対象メモリ・ブックのHPCでないコピーを無効化するために、BACKGROUND KILL動作が必要かどうか、および(5)もしあれば、必要なBACKGROUND KILL動作の範囲、を示す。
上述したように、本発明は、改良されたデータ処理システム、処理部、キャッシュ階層、およびメモリブロックが整合ドメインの内部または外部にキャッシュされることになるかどうかの示唆を提供するデータ処理の方法を提供する。本発明に係るドメインの示唆は、関連メモリ・ブロックを対象とした同報通信動作の範囲を予測するために使用されてもよい。都合のよいことに、ドメインの示唆は、排他的アクセス動作に応じて、排他的アクセス動作に対する結合応答とは独立して、正確に形成することができ、これは、スヌーパ論理のインスタンスがアクティブでなければならない期間は、結合応答の受信以前に停止可能であることを意味する。また、Igpドメインの示唆は、解放されてもキャストアウトされる必要はなく、相互接続構造上の帯域幅を確保する。
本発明を好ましい実施形態を参照して説明したように特に示してきたが、本発明の精神および範囲から逸脱することなく、形式および詳細において様々な変更を行ってもよいことを当業者は理解するだろう。
本発明に係るデータ処理システム例の高レベルのブロック図である。 本発明に係る処理部のより詳細なブロック図である。 図2に示すL2キャッシュ・アレイおよびディレクトリのより詳細なブロック図である。 図1のデータ処理システムのシステム相互接続上のトランザクション例の時空間図である。 本発明の好ましい一実施形態に係るドメイン・インジケータを示す。 本発明に係るデータ処理システムにおけるプロセッサ・コアによって受信された動作に対してキャッシュ・メモリが対応する方法例の高レベルの論理フローチャートである。 図8と共に形成される、キャッシュ・スヌーパが本発明に係るストレージ修正動作を処理する方法例の高レベルの論理フローチャートである。 図7と共に形成される、キャッシュ・スヌーパが本発明に係るストレージ修正動作を処理する方法例の高レベルの論理フローチャートである。
符号の説明
102a,102b 処理ノード
104a,104b,104c,104d 処理部
108a,108b,108c,108d システム・メモリ

Claims (18)

  1. 少なくとも第1および第2の整合ドメインを含むキャッシュ整合データ処理システムにおけるデータ処理の方法であって、
    前記データ処理システムの前記第1の整合ドメイン内の第1のキャッシュ・メモリ内において、アドレス・タグおよび整合状態フィールドに関連した記憶位置にメモリ・ブロックを保持するステップと、
    前記メモリ・ブロックに関連したアドレスが割り当てられたホーム・システム・メモリが前記第1の整合ドメイン内にあるかどうかを判断するステップと、
    前記ホーム・システム・メモリが前記第1の整合ドメイン内にない場合には、前記アドレス・タグは有効であることと、前記記憶位置は有効なデータを含まないことと、前記第1の整合ドメインは前記ホーム・システム・メモリを含まないことと、前記整合状態の形成に従って前記メモリ・ブロックが前記第1の整合ドメインの外部にキャッシュされることとを示す整合状態に前記整合状態フィールドを設定するステップと
    を含む、方法。
  2. 前記設定ステップは、前記データ処理システムの前記第2の整合ドメイン内の第2のキャッシュ・メモリによる排他的アクセス要求に応じて、前記整合状態フィールドを前記整合状態に設定するステップを含む、請求項1に記載の方法。
  3. 前記排他的アクセス要求は、修正目的の読み出し(RWITM)動作を含み、
    前記方法は、前記第1のキャッシュ・メモリが、前記RWITM動作に応じて、前記第2の整合ドメイン内の前記第2のキャッシュ・メモリに前記メモリ・ブロックを提供するステップをさらに含む、請求項2に記載の方法。
  4. 前記設定ステップは、前記メモリ・ブロックの前記ホーム・システム・メモリへ前記メモリ・ブロックを最初にキャストアウトせずに、前記整合状態フィールドを前記整合状態に設定するステップを含む、請求項2に記載の方法。
  5. 前記整合状態は、第1の整合状態を含み、前記設定ステップは、前記メモリ・ブロックが有効であることと、前記ホーム・システム・メモリ内の対応メモリ・ブロックに対して修正されることとを示す第2の整合状態から、前記整合状態フィールドを前記第1の整合状態に更新するステップを含む、請求項2に記載の方法。
  6. 前記整合状態は、第1の整合状態を含み、前記方法は、
    前記ホーム・システム・メモリが前記第1の整合ドメイン内にあると判断することに応じて、前記アドレス・タグは有効であることと、前記記憶位置は有効なデータを含まないことと、前記第1の整合ドメインは前記ホーム・システム・メモリを含むことと、前記整合状態の形成に従って前記メモリ・ブロックが前記第1の整合ドメインの外部にキャッシュされることとを示す第2の整合状態に前記整合状態フィールドを設定するステップをさらに含む、請求項1に記載の方法。
  7. 前記第1のキャッシュ・メモリが、前記整合状態を参照して、前記第2の整合ドメインを含む同報通信送信の範囲を予測するステップと、
    前記第1のキャッシュ・メモリが、前記予測された範囲の同報通信動作を生じさせるステップとをさらに含む、請求項1に記載の方法。
  8. 前記第1のキャッシュ・メモリが、キャストアウト動作を行わずに、前記アドレス・タグを含むエントリを解除する、請求項1に記載の方法。
  9. 少なくとも1つの処理部をそれぞれ含む少なくとも第1および第2の整合ドメインを含むキャッシュ整合データ処理システムのためのキャッシュ・メモリであって、前記第1の整合ドメインは、前記キャッシュ・メモリを含み、前記第2の整合ドメインは、他の整合キャッシュ・メモリを含み、前記キャッシュ・メモリは、
    キャッシュ・コントローラと、
    メモリ・ブロックをキャッシュするためのキャッシュ・アレイと、
    キャッシュ・ディレクトリとを含み、前記キャッシュ・ディレクトリは、
    前記メモリ・ブロックに関連したアドレス・タグを記憶するためのタグ・フィールドと、
    前記タグ・フィールドおよび前記キャッシュ・アレイに関連した整合状態フィールドとを含み、前記整合状態フィールドは、複数の予想整合状態を含み、前記複数の予想整合状態は、前記アドレス・タグは有効であることと、前記記憶位置は有効なデータを含まないことと、前記第1の整合ドメインはホーム・システム・メモリを含まないことと、前記整合状態の形成に従って前記メモリ・ブロックが前記第1の整合ドメインの外部にキャッシュされることとを示す整合状態を含む、キャッシュ・メモリ。
  10. 前記キャッシュ・コントローラは、前記データ処理システムの前記第2の整合ドメイン内の前記他のキャッシュ・メモリによる排他的アクセス要求と、前記ホーム・システム・メモリは前記第1の整合ドメイン内にないという示唆とに応じて、前記整合状態フィールドを前記整合状態に設定する、請求項9に記載のキャッシュ・メモリ。
  11. 前記排他的アクセス要求は、修正目的の読み出し(RWITM)動作を含み、
    前記キャッシュ・メモリは、前記RWITM動作に応じて、前記第2の整合ドメイン内の前記他のキャッシュ・メモリに前記メモリ・ブロックを提供するステップをさらに含む、
    請求項10に記載のキャッシュ・メモリ。
  12. 前記キャッシュ・コントローラは、前記ホーム・システム・メモリへ前記メモリ・ブロックを最初にキャストアウトせずに、前記整合状態フィールドを前記整合状態に設定する、請求項10に記載のキャッシュ・メモリ。
  13. 前記整合状態は、前記複数の予想整合状態のうちの第1の整合状態を含み、
    前記複数の予想整合状態は、前記メモリ・ブロックが有効であることと、前記ホーム・システム・メモリ内の対応メモリ・ブロックに対して修正されることとを示す第2の整合状態を含み、
    前記キャッシュ・コントローラは、前記整合状態フィールドを、前記第2の整合状態から前記第1の整合状態へ更新する請求項10に記載のキャッシュ・メモリ。
  14. 前記整合状態は、第1の整合状態を含み、
    前記複数の予想整合状態は、前記アドレス・タグは有効であることと、前記記憶位置は有効なデータを含まないことと、前記第1の整合ドメインは前記ホーム・システム・メモリを含むことと、前記整合状態の形成に従って前記メモリ・ブロックが前記第1の整合ドメインの外部にキャッシュされることとを示す第2の整合状態を含み、
    前記キャッシュ・コントローラは、前記第1の整合ドメイン外部の要求者からの排他的アクセス動作の受信と、前記ホーム・システム・メモリは前記第1の整合ドメイン外部にあるという示唆とに応じて、前記整合状態フィールドを前記第2の整合状態に設定する、請求項9に記載のキャッシュ・メモリ。
  15. 前記第1のキャッシュ・メモリの前記キャッシュ・コントローラは、前記整合状態を参照して、前記第2の整合ドメインを含む同報通信送信の範囲を予測して、前記予測された範囲の同報通信動作を生じさせる、請求項9に記載のキャッシュ・メモリ。
  16. 前記第1のキャッシュ・メモリの前記キャッシュ・コントローラは、キャストアウト動作を行わずに、前記アドレス・タグを含むエントリを解除する、請求項9に記載のキャッシュ・メモリ。
  17. 少なくとも1つのプロセッサ・コアと、
    請求項9に記載のキャッシュ・メモリとを備える、データ処理システム。
  18. データ処理システムであって、
    少なくとも1つの処理部をそれぞれ含む第1および第2の整合ドメインを有し、前記第1の整合ドメインは、第1のキャッシュ・メモリを含み、前記第2の整合ドメインは、第2の整合キャッシュ・メモリを含み、
    前記データ処理システムの前記第1の整合ドメイン内の前記第1のキャッシュ・メモリは、アドレス・タグおよび整合状態フィールドに関連した記憶位置にメモリ・ブロックを保持し、
    前記整合状態フィールドは、複数の予想整合状態を有し、前記複数の予想整合状態は、前記アドレス・タグは有効であることと、前記記憶位置は有効なデータを含まないことと、前記第1の整合ドメインはホーム・システム・メモリを含まないことと、前記整合状態の形成に従って前記メモリ・ブロックが前記第1の整合ドメインの外部にキャッシュされることとを示す整合状態を含む、データ処理システム。
JP2006341782A 2006-01-17 2006-12-19 同報通信範囲を示す無効な整合状態を正確に形成するためのデータ処理システム、キャッシュ・システム、および方法 Expired - Fee Related JP5004571B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/333,615 US7512742B2 (en) 2006-01-17 2006-01-17 Data processing system, cache system and method for precisely forming an invalid coherency state indicating a broadcast scope
US11/333615 2006-01-17

Publications (2)

Publication Number Publication Date
JP2007193784A true JP2007193784A (ja) 2007-08-02
JP5004571B2 JP5004571B2 (ja) 2012-08-22

Family

ID=38264611

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006341782A Expired - Fee Related JP5004571B2 (ja) 2006-01-17 2006-12-19 同報通信範囲を示す無効な整合状態を正確に形成するためのデータ処理システム、キャッシュ・システム、および方法

Country Status (4)

Country Link
US (1) US7512742B2 (ja)
JP (1) JP5004571B2 (ja)
CN (1) CN100465923C (ja)
TW (1) TWI380173B (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7921179B1 (en) * 2008-01-15 2011-04-05 Net App, Inc. Reducing latency of access requests in distributed storage systems having a shared data set
US8874853B2 (en) 2010-06-04 2014-10-28 International Business Machines Corporation Local and global memory request predictor
US9703706B2 (en) * 2011-02-28 2017-07-11 Oracle International Corporation Universal cache management system
US8775904B2 (en) * 2011-12-07 2014-07-08 International Business Machines Corporation Efficient storage of meta-bits within a system memory
KR101511972B1 (ko) 2011-12-23 2015-04-15 인텔 코포레이션 계층적 캐싱 설계에서 캐시들 간 효율적 통신을 위한 방법 및 장치
WO2013101065A1 (en) * 2011-12-29 2013-07-04 Intel Corporation Domain state
US8793442B2 (en) * 2012-02-08 2014-07-29 International Business Machines Corporation Forward progress mechanism for stores in the presence of load contention in a system favoring loads
CN104331352B (zh) * 2014-11-19 2018-03-09 浪潮(北京)电子信息产业有限公司 cache一致性芯片地址带外读取检测方法及装置
US10776266B2 (en) * 2018-11-07 2020-09-15 Arm Limited Apparatus and method of modification of stored data

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11161619A (ja) * 1997-06-30 1999-06-18 Sun Microsyst Inc マルチプロセッサ・コンピュータ・システム用スヌープ・フィルタ
JP2002091824A (ja) * 2000-07-14 2002-03-29 Fujitsu Ltd 共有データ要求を操作するシステム及び方法
JP2003067357A (ja) * 2001-06-21 2003-03-07 Internatl Business Mach Corp <Ibm> 不均一メモリ・アクセス(numa)データ処理システムおよびその操作方法
US20030097529A1 (en) * 2001-10-16 2003-05-22 International Business Machines Corp. High performance symmetric multiprocessing systems via super-coherent data mechanisms
JP2003177962A (ja) * 2001-12-10 2003-06-27 Mitsubishi Electric Corp キャッシュ装置および方法
JP2005539282A (ja) * 2002-01-09 2005-12-22 インターナショナル・ビジネス・マシーンズ・コーポレーション 単一のコヒーレントなシステム内の分散コンピュータ・ノードにキャッシュ・コヒーレンスを提供するのにグローバル・スヌープを使用する方法および装置
US20060179252A1 (en) * 2005-02-10 2006-08-10 International Business Machines Corporation Data processing system and method for efficient communication utilizing an In coherency state
JP2006285992A (ja) * 2005-03-31 2006-10-19 Internatl Business Mach Corp <Ibm> タグ付きキャッシュ状態に基づいて下位レベル・キャッシュへの参照なしに相互接続ファブリック上にリクエストを送出するためのデータ処理システム、キャッシュ・システム、および方法
JP2006323845A (ja) * 2005-05-17 2006-11-30 Internatl Business Mach Corp <Ibm> メモリ・ブロックを初期設定するためのプロセッサ、データ処理システム、および方法
JP2007179528A (ja) * 2005-12-28 2007-07-12 Internatl Business Mach Corp <Ibm> 方法、コンピュータ・プログラム製品、コンピュータ・プログラム、情報ハンドリング・システム(デフォルト・データ転送コヒーレント・キャッシング・エージェントのシステムおよび方法)

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5852716A (en) 1996-07-02 1998-12-22 Sun Microsystems, Inc. Split-SMP computer system with local domains and a top repeater that distinguishes local and global transactions
US6374330B1 (en) * 1997-04-14 2002-04-16 International Business Machines Corporation Cache-coherency protocol with upstream undefined state
US6192451B1 (en) * 1998-02-17 2001-02-20 International Business Machines Corporation Cache coherency protocol for a data processing system including a multi-level memory hierarchy
US6606676B1 (en) 1999-11-08 2003-08-12 International Business Machines Corporation Method and apparatus to distribute interrupts to multiple interrupt handlers in a distributed symmetric multiprocessor system
US6754782B2 (en) 2001-06-21 2004-06-22 International Business Machines Corporation Decentralized global coherency management in a multi-node computer system
US7100001B2 (en) 2002-01-24 2006-08-29 Intel Corporation Methods and apparatus for cache intervention
US7096323B1 (en) 2002-09-27 2006-08-22 Advanced Micro Devices, Inc. Computer system with processor cache that stores remote cache presence information
GB2403560A (en) 2003-07-02 2005-01-05 Advanced Risc Mach Ltd Memory bus within a coherent multi-processing system
US8140770B2 (en) * 2005-02-10 2012-03-20 International Business Machines Corporation Data processing system and method for predictively selecting a scope of broadcast of an operation
US7454578B2 (en) * 2005-02-10 2008-11-18 International Business Machines Corporation Data processing system and method for predictively selecting a scope of broadcast of an operation utilizing a location of a memory

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11161619A (ja) * 1997-06-30 1999-06-18 Sun Microsyst Inc マルチプロセッサ・コンピュータ・システム用スヌープ・フィルタ
JP2002091824A (ja) * 2000-07-14 2002-03-29 Fujitsu Ltd 共有データ要求を操作するシステム及び方法
JP2003067357A (ja) * 2001-06-21 2003-03-07 Internatl Business Mach Corp <Ibm> 不均一メモリ・アクセス(numa)データ処理システムおよびその操作方法
US20030097529A1 (en) * 2001-10-16 2003-05-22 International Business Machines Corp. High performance symmetric multiprocessing systems via super-coherent data mechanisms
JP2003177962A (ja) * 2001-12-10 2003-06-27 Mitsubishi Electric Corp キャッシュ装置および方法
JP2005539282A (ja) * 2002-01-09 2005-12-22 インターナショナル・ビジネス・マシーンズ・コーポレーション 単一のコヒーレントなシステム内の分散コンピュータ・ノードにキャッシュ・コヒーレンスを提供するのにグローバル・スヌープを使用する方法および装置
US20060179252A1 (en) * 2005-02-10 2006-08-10 International Business Machines Corporation Data processing system and method for efficient communication utilizing an In coherency state
JP2006285992A (ja) * 2005-03-31 2006-10-19 Internatl Business Mach Corp <Ibm> タグ付きキャッシュ状態に基づいて下位レベル・キャッシュへの参照なしに相互接続ファブリック上にリクエストを送出するためのデータ処理システム、キャッシュ・システム、および方法
JP2006323845A (ja) * 2005-05-17 2006-11-30 Internatl Business Mach Corp <Ibm> メモリ・ブロックを初期設定するためのプロセッサ、データ処理システム、および方法
JP2007179528A (ja) * 2005-12-28 2007-07-12 Internatl Business Mach Corp <Ibm> 方法、コンピュータ・プログラム製品、コンピュータ・プログラム、情報ハンドリング・システム(デフォルト・データ転送コヒーレント・キャッシング・エージェントのシステムおよび方法)

Also Published As

Publication number Publication date
US7512742B2 (en) 2009-03-31
CN101004710A (zh) 2007-07-25
CN100465923C (zh) 2009-03-04
TW200813715A (en) 2008-03-16
TWI380173B (en) 2012-12-21
US20070168618A1 (en) 2007-07-19
JP5004571B2 (ja) 2012-08-22

Similar Documents

Publication Publication Date Title
JP5105863B2 (ja) 複数のコヒーレンシ・ドメインを有するデータ処理システムでフラッシュ動作を処理するデータ処理システム、方法、およびメモリ・コントローラ
US7404046B2 (en) Cache memory, processing unit, data processing system and method for filtering snooped operations
US7451277B2 (en) Data processing system, cache system and method for updating an invalid coherency state in response to snooping an operation
US7716428B2 (en) Data processing system, cache system and method for reducing imprecise invalid coherency states
US7389388B2 (en) Data processing system and method for efficient communication utilizing an in coherency state
US8140770B2 (en) Data processing system and method for predictively selecting a scope of broadcast of an operation
JP4928812B2 (ja) タグ付きキャッシュ状態に基づいて下位レベル・キャッシュへの参照なしに相互接続ファブリック上にリクエストを送出するためのデータ処理システム、キャッシュ・システム、および方法
JP5116418B2 (ja) マルチプロセッサ・データ処理システムにおいて、データを処理する方法、マルチプロセッサ・データ処理システムのための処理ユニット、およびデータ処理システム
US7584329B2 (en) Data processing system and method for efficient communication utilizing an Ig coherency state
US7467323B2 (en) Data processing system and method for efficient storage of metadata in a system memory
US7454577B2 (en) Data processing system and method for efficient communication utilizing an Tn and Ten coherency states
JP5004571B2 (ja) 同報通信範囲を示す無効な整合状態を正確に形成するためのデータ処理システム、キャッシュ・システム、および方法
US7577797B2 (en) Data processing system, cache system and method for precisely forming an invalid coherency state based upon a combined response
US7454578B2 (en) Data processing system and method for predictively selecting a scope of broadcast of an operation utilizing a location of a memory
US8230178B2 (en) Data processing system and method for efficient coherency communication utilizing coherency domain indicators
US7366844B2 (en) Data processing system and method for handling castout collisions
US7584331B2 (en) Data processing system and method for selectively updating an invalid coherency state in response to snooping a castout
US7725619B2 (en) Data processing system and method that permit pipelining of I/O write operations and multiple operation scopes

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090929

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120117

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120404

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120522

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150601

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees