JP2006323845A - メモリ・ブロックを初期設定するためのプロセッサ、データ処理システム、および方法 - Google Patents

メモリ・ブロックを初期設定するためのプロセッサ、データ処理システム、および方法 Download PDF

Info

Publication number
JP2006323845A
JP2006323845A JP2006135600A JP2006135600A JP2006323845A JP 2006323845 A JP2006323845 A JP 2006323845A JP 2006135600 A JP2006135600 A JP 2006135600A JP 2006135600 A JP2006135600 A JP 2006135600A JP 2006323845 A JP2006323845 A JP 2006323845A
Authority
JP
Japan
Prior art keywords
memory
memory block
cache
block
response
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
JP2006135600A
Other languages
English (en)
Other versions
JP4594900B2 (ja
Inventor
Ravi K Arimilli
ラヴィ・ケー・アリミリ
Derek E Williams
デリク・イー・ウイリアムズ
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 JP2006323845A publication Critical patent/JP2006323845A/ja
Application granted granted Critical
Publication of JP4594900B2 publication Critical patent/JP4594900B2/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)
  • Memory System (AREA)

Abstract

【課題】 データ処理システム内のメモリ・ブロックを初期設定するプロセッサ、データ処理システム、および方法を提供することにある。
【解決手段】 初期設定すべきターゲット・メモリ・ブロックを示す関連プロセッサ・コアからの初期設定動作を受信したことに応答して、キャッシュ・メモリはターゲット・メモリ・ブロックのコヒーレンス状態を決定する。ターゲット・メモリ・ブロックがキャッシュ・メモリに対するデータ無効コヒーレンス状態を有するという判断に応答して、キャッシュ・メモリは、ターゲット・メモリ・ブロックを示す対応する初期設定要求を相互接続上で発行する。初期設定要求に応答して、ターゲット・メモリ・ブロックはデータ処理システムのメモリ内で初期設定値に初期設定される。したがって、ターゲット・メモリ・ブロックは、キャッシュ・メモリによりターゲット・メモリ・ブロックの有効なコピーを保持せずに初期設定することができる。
【選択図】 図1

Description

本発明は、一般に、データ処理に関し、特に、データ処理システム内のメモリ・ブロックの初期設定に関する。
本発明は、米国特許出願第11/055305号の発明に関連している。
サーバ・コンピュータ・システムなどの従来の対称型マルチプロセッサ(SMP)コンピュータ・システムは、すべてがシステム相互接続に結合された複数の処理装置を含み、そのシステム相互接続は概して1つまたは複数のアドレス・バス、データ・バス、および制御バスを有する。システム・メモリはシステム相互接続に結合されているが、これはマルチプロセッサ・コンピュータ・システム内の最低レベルの揮発性メモリを表し、一般にすべての処理装置による読取りおよび書込みアクセスのためにアクセス可能である。システム・メモリ内にある命令およびデータに対するアクセス待ち時間を削減するために、各処理装置は概して、それぞれのマルチレベル・キャッシュ階層によってさらにサポートされ、その階層の下位レベル(複数も可)は1つまたは複数のプロセッサ・コアによって共用することができる。
複数のプロセッサ・コアが同じキャッシュ・ラインのデータへの書込みアクセスを要求する可能性があり、変更されたキャッシュ・ラインは直ちにシステム・メモリと同期するわけではないので、マルチプロセッサ・コンピュータ・システムのキャッシュ階層は概して、システム・メモリの内容に関する様々なプロセッサ・コアの「ビュー」間で少なくとも最低レベルのコヒーレンシを保証するために、キャッシュ・コヒーレンシ・プロトコルを実装する。特に、キャッシュ・コヒーレンシは最低でも、処理装置があるメモリ・ブロックのコピーにアクセスし、その後、そのメモリ・ブロックの更新済みコピーにアクセスした後に、処理装置がそのメモリ・ブロックの古いコピーにもう一度アクセスできないことを要求する。
キャッシュ・コヒーレンシ・プロトコルは概して、各キャッシュ階層のキャッシュ・ラインに関連して保管された1組のコヒーレンシ状態ならびにキャッシュ階層間でキャッシュ状態情報を通信するために使用される1組のコヒーレンシ・メッセージを定義する。典型的な実装例では、コヒーレンシ状態情報は周知のMESI(変更、排他、共用、無効)プロトコルまたはその変種の形を取り、コヒーレンシ・メッセージはメモリ・アクセス要求の要求元または受信側あるいはその両方のキャッシュ階層内のプロトコル定義のコヒーレンシ状態遷移を示す。
本発明では、命令の実行によりSMPコンピュータ・システム内のメモリ・ブロックを初期設定することが有用であり望ましいであろうと認識している。本発明ではさらに、メモリ・ブロックをキャッシュすることを必要とせずに初期設定を実行することにより、コンピュータ・システムのキャッシュ階層の汚染を回避することが望ましいであろうと認識している。
米国特許出願第11/055305号
したがって、本発明は、データ処理システム内のメモリ・ブロックを初期設定するプロセッサ、データ処理システム、および方法を提供する。
一実施形態では、初期設定すべきターゲット・メモリ・ブロックを示す関連プロセッサ・コアからの初期設定動作を受信したことに応答して、キャッシュ・メモリはターゲット・メモリ・ブロックのコヒーレンシ状態を決定する。ターゲット・メモリ・ブロックがキャッシュ・メモリに対するデータ無効コヒーレンシ状態を有するという判断に応答して、キャッシュ・メモリは、ターゲット・メモリ・ブロックを示す対応する初期設定要求を相互接続上で発行する。初期設定要求に応答して、ターゲット・メモリ・ブロックはデータ処理システムのメモリ内で初期設定値に初期設定される。したがって、ターゲット・メモリ・ブロックは、キャッシュ・メモリによりターゲット・メモリ・ブロックのコピーを保持せずに初期設定することができる。
本発明のすべての目的、特徴、および利点は、以下の詳細な説明で明らかになるであろう。
本発明に特有と思われる新規の特徴は特許請求の範囲に示されている。しかし、本発明ならびに好ましい使用態様は、添付図面に併せて読んだときに、例示的な一実施形態に関する以下の詳細な説明を参照することにより、最も良く理解されるであろう。
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も含む。システム・メモリ108内にあるデータおよび命令は一般に、データ処理システム100の任意の処理ノード102の任意の処理装置104内のプロセッサ・コアによってアクセスし変更することができる。本発明の代替諸実施形態では、1つまたは複数のシステム・メモリ108は、ローカル相互接続114ではなくシステム相互接続110に結合することができる。
当業者であれば、SMPデータ処理システム100が、相互接続ブリッジ、不揮発性ストレージ、ネットワークまたは付加デバイスへの接続のためのポートなど、多くの追加の図示していないコンポーネントを含むことができることを認識するであろう。このような追加のコンポーネントは本発明の理解のためには不要であるので、図1には図示されておらず、本明細書ではこれ以上論じない。しかし、本発明によって提供される機能強化は、多様なアーキテクチャのキャッシュ・コヒーレント・データ処理システムに適用可能であり、決して図1に図示されている汎用データ処理システム・アーキテクチャに限定されないことも理解されたい。
次に図2を参照すると、本発明による例示的な処理装置104のより詳細なブロック図が示されている。図示された実施形態では、各処理装置104は、命令およびデータを独立して処理するための2つのプロセッサ・コア200a、200bを含む。各プロセッサ・コア200は、実行のために命令を取り出して順序付けるための少なくとも1つの命令順序付けユニット(ISU)208と、命令を実行するための1つまたは複数の実行ユニット224とを含む。以下にさらに論じる通り、実行ユニット224によって実行される命令は、メモリ・ブロックへのアクセスを要求するかまたはメモリ・ブロックへのアクセスを要求する動作を生成させるメモリ・アクセス命令を含む。
各プロセッサ・コア200の動作は、その最低レベルに共用システム・メモリ108a〜108dを有し、その上位レベルに1つまたは複数レベルのキャッシュ・メモリを有する、マルチレベル揮発性メモリ階層によってサポートされる。図示された実施形態では、各処理装置104は、プロセッサ・コア200a〜200bから受信された要求およびローカル相互接続14上のスヌーパ(S)222によってスヌープされた動作に応答して、その処理ノード102内のシステム・メモリ108a〜108dのうちのそれぞれ1つへの読取りおよび書込みアクセスを制御する統合メモリ・コントローラ(IMC)206を含む。IMC206は、基底アドレス・レジスタ(BAR)ロジック240への参照により、それが担当するアドレスを決定する。
この例示的な実施形態では、処理装置104のキャッシュ・メモリ階層は、各プロセッサ・コア200内のストアスルー・レベル1(L1)キャッシュ226と、処理装置104のすべてのプロセッサ・コア200a、200bによって共用されるレベル2(L2)キャッシュ230とを含む。L2キャッシュ230は、L2アレイおよびディレクトリ234と、マスタ232およびスヌーパ236を有するキャッシュ・コントローラとを含む。マスタ232は、ローカル相互接続114およびシステム相互接続110上でのトランザクションを開始し、関連のプロセッサ・コア200a〜200bから受信されたメモリ・アクセス(およびその他の)要求に応答して、L2アレイおよびディレクトリ234にアクセスする。スヌーパ236は、ローカル相互接続114上の動作をスヌープし、適切な応答を提供し、その動作によって要求されたL2アレイおよびディレクトリ234への任意のアクセスを実行する。
図示されたキャッシュ階層は2つのレベルのキャッシュのみを含むが、当業者であれば、代替諸実施形態が追加レベル(L3、L4、L5など)のオンチップまたはオフチップのインラインまたはルックアサイド・キャッシュを含むことができ、そのキャッシュは上位レベルのキャッシュの内容について完全包含、部分包含、または非包含である可能性があることを認識するであろう。
各処理装置104は応答ロジック210のインスタンスをさらに含み、そのロジックは、データ処理システム100内のキャッシュ・コヒーレンシを維持する分散コヒーレンシ・シグナリング・メカニズムの一部分を実現する。加えて、各処理装置104は、そのローカル相互接続114とシステム相互接続110との間で通信を選択的に転送するための相互接続ロジック212のインスタンスを含む。最後に、各処理装置104は、入出力装置216などの1つまたは複数の入出力装置の接続をサポートする統合入出力コントローラ214を含む。入出力コントローラ214は、入出力装置216による要求に応答して、ローカル相互接続114またはシステム相互接続110あるいはその両方で動作を発行することができる。
次に図3に関して説明すると、L2アレイおよびディレクトリ234の例示的な一実施形態のより詳細なブロック図が示されている。図示した通り、L2アレイおよびディレクトリ234は、セット・アソシエイティブL2キャッシュ・アレイ300と、L2キャッシュ・アレイ300の内容のL2キャッシュ・ディレクトリ302とを含む。従来のセット・アソシエイティブ・キャッシュと同様に、システム・メモリ108内の記憶場所は、システム・メモリ(実)アドレス内の所定のインデックス・ビットを使用して、キャッシュ・アレイ300内の特定の合同クラスにマッピングされる。キャッシュ・アレイ300内に保管された特定のキャッシュ・ラインはキャッシュ・ディレクトリ302内に記録される。キャッシュ・ディレクトリ300は、キャッシュ・アレイ300内の各キャッシュ・ラインごとに1つのディレクトリ項目を含む。当業者によって理解される通り、キャッシュ・ディレクトリ302内の各ディレクトリ項目は、少なくとも、対応する実アドレスのタグ部分を使用してキャッシュ・アレイ300内に保管された特定のキャッシュ・ラインを指定するタグ・フィールド304と、キャッシュ・ラインのコヒーレンシ状態を示す状態フィールド306と、同じ合同クラス内の他のキャッシュ・ラインに対する当該キャッシュ・ラインの置換順序を示すLRU(最長未使用時間)フィールド308とを有する。
II.例示的な動作
次に図4を参照すると、図1のデータ処理システム100のローカルまたはシステム相互接続110、114上の例示的な動作の時間空間図が示されている。この動作は、L2キャッシュ230のマスタ232(または入出力コントローラ214などの他のマスタ)がローカル相互接続114またはシステム相互接続110あるいはその両方で要求402を発行したときに始まる。要求402は好ましくは、所望のアクセスのタイプを示すトランザクション・タイプと、その要求によってアクセスすべきリソースを示すリソースID(たとえば、実アドレス)とを含む。一般的なタイプの要求としては好ましくは以下の表Iに示すものを含む。
Figure 2006323845
要求402は、図2に示すL2キャッシュ230のスヌーパ236ならびにメモリ・コントローラ206のスヌーパ222によって受信される。一般に、いくつかの例外を除いて、要求402を出したマスタ232と同じL2キャッシュ230内のスヌーパ236は要求402をスヌープしない(すなわち、一般に自己スヌープは行われない)。というのは、要求402がローカル相互接続114またはシステム相互接続110あるいはその両方で伝送されるのは、処理装置104によって内部で要求402を処理できない場合のみだからである。要求402を受信した各スヌーパ222、236は、要求402に対する少なくとも当該スヌーパの応答を表すそれぞれの部分応答406を提供する。メモリ・コントローラ206内のスヌーパ222は、たとえば、スヌーパ222が要求アドレスを担当するかどうかならびにそれが要求を処理するために使用可能なリソースを有するかどうかに基づいて、提供すべき部分応答406を決定する。L2キャッシュ230のスヌーパ236は、たとえば、そのL2キャッシュ・ディレクトリ302の可用性、要求を処理するためのスヌーパ236内のスヌープ・ロジック・インスタンスの可用性、ならびにL2キャッシュ・ディレクトリ302内の要求アドレスに関連するコヒーレンシ状態に基づいて、その部分応答406を決定することができる。
スヌーパ222および236の部分応答406は、要求402に対するシステム全体に及ぶ結合応答(CR)410を決定するために、応答ロジック210の1つまたは複数のインスタンスにより、段階的にまたはすべて同時に、論理的に結合される。以下に論じる範囲制限を条件として、応答ロジック210は、要求402に対するシステム全体に及ぶ応答(たとえば、成功、失敗、再試行など)を示すために、そのローカル相互接続114またはシステム相互接続110あるいはその両方を介してマスタ232およびスヌーパ222、236に結合応答410を提供する。CR410が要求402の成功を示す場合、CR410は、たとえば、要求されたメモリ・ブロックに関するデータ・ソース、要求されたメモリ・ブロックがマスタ232によってキャッシュされる場合のキャッシュ状態、ならびに1つまたは複数のL2キャッシュ230内の要求されたメモリ・ブロックを無効にする「クリーンアップ」動作が必要であるかどうかを示すことができる。
結合応答410の受信に応答して、マスタ232およびスヌーパ222、236のうちの1つまたは複数は概して、要求402を処理するために1つまたは複数の動作を実行する。これらの動作としては、マスタ232にデータを供給すること、1つまたは複数のL2キャッシュ230内にキャッシュされたデータのコヒーレンシ状態を無効にするかまたはその他の更新を行うこと、キャストアウト動作を実行すること、システム・メモリ108にデータをライトバックすることなどを含むことができる。以下にさらに論じる通り、要求402によって必要とされる場合、要求されたメモリ・ブロックまたはターゲット・メモリ・ブロックは、応答ロジック210による結合応答410の生成前または生成後に、マスタ232にまたはマスタ232から伝送することができる。
次に、要求によって指定された要求アドレスに対してそのスヌーパが最高コヒーレンシ点(HPC)であるか、最低コヒーレンシ点(LPC)であるか、またはいずれでもないかに関して、要求に対するスヌーパ222、236の部分応答ならびに要求またはその結合応答あるいはその両方に応答してスヌーパによって実行される動作について説明する。LPCは本明細書では、メモリ・ブロック用のリポジトリとして働くメモリ・デバイスまたは入出力装置として定義される。メモリ・ブロックに関するHPCがない場合、LPCは、そのメモリ・ブロックの真のイメージを保持し、そのメモリ・ブロックの追加のキャッシュ・コピーを生成するための要求を承諾または拒否するための権限を有する。図1および図2のデータ処理システム実施形態における典型的な要求の場合、LPCは、参照されたメモリ・ブロックを保持するシステム・メモリ108用のメモリ・コントローラ206になる。HPCは本明細書では、メモリ・ブロックの真のイメージ(LPCにおける対応するメモリ・ブロックと一致する場合もあれば、一致しない場合もある)をキャッシュする一意的に識別されたデバイスとして定義され、メモリ・ブロックを変更するための要求を承諾または拒否するための権限を有する。HPCは、メモリ・ブロックを変更しない動作に応答して要求元にメモリ・ブロックのコピーを提供することもできる。したがって、図1および図2のデータ処理システム実施形態における典型的な要求の場合、HPCがあれば、それはL2キャッシュ230になる。あるメモリ・ブロックに関するHPCを指定するために他のインジケータを使用することもできるが、本発明の好ましい一実施形態では、表IIに関連して以下に詳述する通り、メモリ・ブロックに関するHPCがある場合、L2キャッシュ230のL2キャッシュ・ディレクトリ302内の選択されたキャッシュ・コヒーレンシ状態(複数も可)を使用して、そのHPCを指定する。
図4をさらに参照すると、要求402で参照されたメモリ・ブロックに関するHPCがある場合はその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および入出力要求を処理するためのリソースが限られているので、数通りのレベルの部分応答および対応するCRが可能である。たとえば、要求されたメモリ・ブロックを担当するメモリ・コントローラ206内のスヌーパ222が要求を処理するために使用可能なキューを有する場合、スヌーパ222は、それがその要求に関するLPCとして働くことができることを示す部分応答で応答することができる。これに反して、スヌーパ222が要求を処理するために使用可能なキューをまったく持たない場合、スヌーパ222は、それがメモリ・ブロックに関するLPCであるが、現在、その要求を処理することができないことを示す部分応答で応答することができる。
同様に、L2キャッシュ230内のスヌーパ236は、要求を処理するために、スヌープ・ロジックの使用可能なインスタンスおよびL2キャッシュ・ディレクトリ302へのアクセスを必要とする可能性がある。これらのリソースのいずれか一方(または両方)へのアクセスがない場合、部分応答(および対応するCR)は、必要なリソースがないために要求を処理できないことを通知することになる。
この後、要求を処理するために必要なすべての使用可能な内部リソースをスヌーパが備えていることを示す部分応答を提供するスヌーパ222、236は、その要求を「肯定」したことになる。スヌーパ236の場合、スヌープされた動作を肯定する部分応答は好ましくは、そのスヌーパ236における要求されたメモリ・ブロックまたはターゲット・メモリ・ブロックのキャッシュ状態を示す。要求を処理するために必要なすべての使用可能な内部リソースをスヌーパ236が備えていないことを示す部分応答を提供するスヌーパ222、236は、「隠蔽可能」と言うことができる。このようなスヌーパ236は、使用可能なスヌープ・ロジックのインスタンスまたはL2キャッシュ・ディレクトリ302へのアクセスがないために、上記で定義された意味で要求を「肯定」することができず、他のマスタ232およびスヌーパ222、236の見地から見て、未知のコヒーレンシ状態を有するので、スヌーパ236は「隠蔽可能」である。
III.データ送達ドメイン
従来のブロードキャストベースのデータ処理システムは、ブロードキャスト通信によりキャッシュ・コヒーレンシとデータ送達の両方を処理し、そのブロードキャスト通信は従来のシステムではシステム相互接続上で少なくともシステム内のすべてのメモリ・コントローラおよびキャッシュ階層に伝送される。代替アーキテクチャおよび同様の規模のシステムと比べて、ブロードキャストベースのシステムは、アクセス待ち時間の減少をもたらし、共用メモリ・ブロックのデータ処理およびコヒーレンシ管理を改善する傾向がある。
ブロードキャストベースのシステムの規模が拡大すると、システム相互接続上のトラフィック量が増加し、これは、システム相互接続による通信に必要な帯域幅が大きくなるにつれてシステムの規模とともにシステム・コストが急激に上昇することを意味する。すなわち、それぞれがn回のトランザクションという平均トラフィック量を有するm個のプロセッサ・コアを備えたシステムは、m×nというトラフィック量を有し、ブロードキャストベースのシステム内のトラフィック量が加法的ではなく乗法的に拡大することを意味する。実質的により大きい相互接続帯域幅に関する要件を超えて、システム・サイズが増加することは、何らかのアクセス待ち時間を増加するという2次的効果を有する。たとえば、読取りデータのアクセス待ち時間は、最悪の場合、要求されたメモリ・ブロックを共用コヒーレンシ状態で保持する最も遠く離れた下位レベルのキャッシュ(ここから要求されたデータを調達できる)の結合応答待ち時間によって制限される。
依然としてブロードキャストベースのシステムの利点を保持しながらシステム相互接続の帯域幅要件およびアクセス待ち時間を低減するために、本発明は、要求元のL2キャッシュ230とデータ・ソースとの平均距離を減少させることにより、データ・アクセス待ち時間を低減する。これを行うための1つの技法は、要求元のL2キャッシュ230とデータ・ソースとの平均距離を低減するために、データ処理システム100全体にわたって分散された複数のL2キャッシュ230が同じメモリ・ブロックのコピーを「特殊」共用コヒーレンシ状態で保持できるようにすることであり、これにより、これらのキャッシュは、キャッシュ間介入を使用して要求元のL2キャッシュ230にそのメモリ・ブロックを供給することができる。
データ処理システム100などのSMPデータ処理システムにおいて共用メモリ・ブロックについて複数の同並行分散ソースを実装するために、2つの問題に対処しなければならない。第1に、上記で言及した「特殊」共用コヒーレンシ状態のメモリ・ブロックのコピーの作成を支配する何らかのルールを実装しなければならない。第2に、たとえば、バス読取り動作またはバスRWITM動作に応答して、スヌープするL2キャッシュ230がある場合にどのキャッシュが要求元のL2キャッシュ230に共用メモリ・ブロックを提供するかを支配するルールが存在しなければならない。
本発明によれば、これらの問題はいずれも、データ・ソーシング・ドメインの実装により対処される。特に、ドメインがデータ要求への応答に参加する1つまたは複数の下位レベルの(たとえば、L2)キャッシュを含むものと定義される場合に、SMPデータ処理システム内の各ドメインは、特定のメモリ・ブロックを「特殊」共用コヒーレンシ状態で保持するキャッシュ階層を一度に1つだけ含むことができる。そのキャッシュ階層は、同じドメイン内の要求元の下位レベルのキャッシュによってバス読取りタイプ(たとえば、読取りまたはRWITM)動作が開始されたときに存在する場合、要求元の下位レベルのキャッシュに対し要求されたメモリ・ブロックを調達することを担当する。多くの異なるドメイン・サイズを定義することができるが、図1のデータ処理システム100では、各処理ノード102(すなわち、MCM)をデータ・ソーシング・ドメインと見なすことができれば都合が良い。このような「特殊」共用状態(すなわち、Sr)の一例については、表IIに関連して以下に説明する。
IV.コヒーレンシ・ドメイン
上述したデータ送達ドメインの実装はデータ・アクセス待ち時間を改善するが、この機能強化は、システムの規模が増大したときのトラフィック量のm×nという増加に対処するものではない。依然としてブロードキャストベースのコヒーレンシ・メカニズムを維持しながらトラフィック量を低減するために、本発明の好ましい諸実施形態ではコヒーレンシ・ドメインをさらに実装する。コヒーレンシ・ドメインは、本明細書で上述したデータ送達ドメインのように、個別のコヒーレンシ・ドメインを形成する各処理ノード102で都合よく実装することができる(しかし、実装しなければならないわけではない)。データ送達ドメインとコヒーレンシ・ドメインは、同一の広がりを持つものにすることができるが、そうでなければならないわけではなく、データ処理システム100の例示的な動作を説明するために、以下では、処理ノード102によって定義された境界を有するものとする。
コヒーレンシ・ドメインの実装は、すべてより少ないコヒーレンシ・ドメインによる参加によって要求を処理できる場合にシステム相互接続110によるドメイン間ブロードキャスト通信を制限することにより、システム・トラフィックを低減する。たとえば、処理ノード102aの処理装置104aが発行すべきバス読取り動作を有する場合、処理装置104aは、他のコヒーレンシ・ドメイン(たとえば、処理ノード102b)内の参加者ではなく、それ自体のコヒーレンシ・ドメイン(たとえば、処理ノード102a)内のすべての参加者にバス読取り動作をまずブロードキャストすることを選ぶことができる。動作のマスタと同じコヒーレンシ・ドメイン内の参加者のみに伝送されたブロードキャスト動作は本明細書では「ローカル動作」として定義される。処理装置104aのコヒーレンシ・ドメイン内でローカル・バス読取り動作を処理できる場合、バス読取り動作のそれ以上のブロードキャストはまったく実行されない。しかし、処理ノード102aのコヒーレンシ・ドメイン内のみでバス読取り動作を処理できないことをローカル・バス読取り動作に対する部分応答および結合応答が示す場合、ローカル・コヒーレンシ・ドメインに加えて、1つまたは複数の追加のコヒーレンシ・ドメインを含むように、ブロードキャストの範囲を拡張することができる。
基本的な実装では、ローカル・コヒーレンシ・ドメインのみを含む「ローカル」範囲と、SMPデータ処理システム内の他のコヒーレンシ・ドメインのすべてを含む「グローバル」範囲という2つのブロードキャスト範囲が使用される。したがって、SMPデータ処理システム内のすべてのコヒーレンシ・ドメインに伝送される動作は本明細書では「グローバル動作」として定義される。重要なのは、動作を処理するためにローカル動作を使用するか、より広範囲の動作(たとえば、グローバル動作)を使用するかにかかわらず、SMPデータ処理システム内のすべてのコヒーレンシ・ドメインにわたってキャッシュ・コヒーレンシが維持されるということである。
好ましい一実施形態では、動作の範囲はローカル/グローバル・インジケータ(信号)によってバス動作で示される。このインジケータは一実施形態では1ビット・フラグでよい。処理装置104内の転送ロジック212は好ましくは、動作のローカル/グローバル・インジケータ(信号)の設定に基づいて、ローカル相互接続114を介して受信した動作をシステム相互接続110上に転送するかどうかを決定する。
V.ドメイン・インジケータ
不必要なローカル動作の発行を制限し、それにより、動作待ち時間を低減し、ローカル相互接続上の追加の帯域幅を温存するために、本発明は好ましくは、関連メモリ・ブロックのコピーがローカル・コヒーレンシ・ドメインの外側にキャッシュされるかどうかを示す、メモリ・ブロック当たりのドメイン・インジケータを実現する。たとえば、図5は、本発明によるドメイン・インジケータの第1の例示的な実現例を示している。図5に図示されている通り、システム・メモリ108は、ダイナミック・ランダム・アクセス・メモリ(DRAM)で実現可能であり、複数のメモリ・ブロック500を保管する。システム・メモリ108は、各メモリ・ブロック500に関連して、エラーがある場合にそのエラーを訂正するために使用される関連のエラー訂正コード(ECC:error correcting code)502をメモリ・ブロック500およびドメイン・インジケータ504に保管する。本発明のいくつかの諸実施形態では、ドメイン・インジケータ504は特定のコヒーレンシ・ドメインを識別する(すなわち、コヒーレンシ・ドメインまたはノードIDを指定する)ことができるが、以後、ドメイン・インジケータ504は、関連メモリ・ブロック500がそのメモリ・ブロック500に関するLPCとして働くメモリ・コントローラ206と同じコヒーレンシ・ドメイン内のみにキャッシュされる場合に(たとえば、「ローカル」を示すために「1」に)設定される1ビット・インジケータであるものと想定される。そうではない場合、ドメイン・インジケータ504は(たとえば、「グローバル」を示すために「0」に)リセットされる。「ローカル」を示すためのドメイン・インジケータ504の設定は、「グローバル」の設定が間違っていてもコヒーレンシ・エラーを誘発しないが、動作の不必要なグローバル・ブロードキャストを引き起こす可能性があるという点で、不正確に実現される可能性がある。
ある動作に応答してメモリ・ブロックを調達するメモリ・コントローラ206(およびL2キャッシュ230)は、要求されたメモリ・ブロックに併せて関連のドメイン・インジケータ504を伝送する。
VI.例示的なコヒーレンシ・プロトコル
本発明は好ましくは、上述のデータ送達およびコヒーレンシ・ドメインの実装を可能にするように設計されたキャッシュ・コヒーレンシ・プロトコルを実現する。好ましい一実施形態では、プロトコル内のキャッシュ・コヒーレンシ状態は、(1)キャッシュがメモリ・ブロックに関するHPCであるかどうかの表示を提供することに加えて、(2)キャッシュ・コピーがそのメモリ階層レベルのキャッシュ間で固有のものである(すなわち、システム全体で唯一のキャッシュ・コピーである)かどうか、(3)キャッシュがメモリ・ブロックに関する要求のマスタに対してメモリ・ブロックのコピーを提供できるかどうか、また、いつ提供できるか、(4)メモリ・ブロックのキャッシュ・イメージがLPC(システム・メモリ)において対応するメモリ・ブロックと整合しているかどうか、(5)リモート・コヒーレンシ・ドメイン内の他のキャッシュが(おそらく)一致アドレスを有するキャッシュ項目を保持するかどうかも示す。これらの5つの属性は、たとえば、以下の表IIに要約した周知のMESI(変更、排他、共用、無効)プロトコルの変形例で表すことができる。
Figure 2006323845
A.Ig状態
メモリ・ブロックがローカルのみでキャッシュされたかどうかを判定するためにLPCにアクセスしなければならないことを回避するために、メモリ・ブロックのいかなるコピーもコヒーレンシ・ドメイン内にキャッシュされた状態で存続していない場合にドメイン表示を維持するために、Ig(無効グローバル)コヒーレンシ状態が使用される。Ig状態は本明細書では、(1)キャッシュ・アレイ内の関連メモリ・ブロックが無効であることと、(2)キャッシュ・ディレクトリ内のアドレス・タグが有効であることと、(3)アドレス・タグによって識別されたメモリ・ブロックのコピーが他のコヒーレンシ・ドメイン内にキャッシュされるかもしれないことを示すキャッシュ・コヒーレンシ状態として定義される。このIg表示が不正確であっても、コヒーレンシの違反が生じることはない。
このIg状態は、排他アクセス要求(たとえば、バスRWITM動作)に応答して下位レベルのキャッシュが要求されたメモリ・ブロックを他のコヒーレンシ・ドメイン内の要求元に提供することに応答してそのキャッシュ内に形成される。本発明のいくつかの実施形態では、そのメモリ・ブロックに関するLPCを含むコヒーレンシ・ドメイン内にのみIg状態を形成することが好ましい。このような実施形態では、要求されたメモリ・ブロックを調達するキャッシュに対して、LPCがそのローカル・コヒーレンシ・ドメイン内にあることを示すために、何らかのメカニズム(たとえば、LPCによる部分応答およびその後の結合応答)を実装しなければならない。LPCがローカルであるという表示の通信をサポートしない他の実施形態では、排他アクセス要求に応答してキャッシュがリモート・コヒーレンシ・ドメインに対してメモリ・ブロックを調達するときはいつでもIg状態を形成することができる。
Ig状態を含むキャッシュ・ディレクトリ項目は潜在的に有用な情報を担持するので、少なくともいくつかの実装例では、(たとえば、置換のために犠牲キャッシュ項目を選択するために使用される最長未使用時間(LRU)アルゴリズムを変更することにより)I状態の項目よりIg状態の項目を優先的に保持することが望ましい。Igディレクトリ項目はキャッシュ内に保持されるので、排他アクセス要求によってIg状態の形成が引き起こされたキャッシュが、Ig状態のメモリ・ブロックのアドレス・タグを保持するキャッシュへの通知なしにメモリ・ブロックのそのコピーを割振り解除またはライトバックする可能性があるという点で、いくつかのIg項目が時間の経過につれて「失効」になる可能性がある。このような場合、ローカル動作の代わりにグローバル動作を発行しなければならないことを誤って示す「失効」Ig状態は、コヒーレンシ・エラーを引き起こさないが、ローカル動作を使用して処理できるはずの動作がグローバル動作として発行されることになる。このような非能率の発生は、「失効」Igキャッシュ項目の置換によって期間が制限される。
Igキャッシュ項目の選択および置換は、いくつかのルールによって支配される。第1に、キャッシュが置換のための犠牲としてIg項目を選択した場合、(I項目が選択された場合と異なり)そのIg項目のキャストアウトが実行される。第2に、メモリ・ブロックをキャッシュ内にロードさせる要求が同じキャッシュ内のIgキャッシュ項目にヒットした場合、キャッシュはそのIgヒットをキャッシュ・ミスとして扱い、そのIg項目を選択された犠牲として使用してキャストアウト動作を実行する。したがって、キャッシュは同じアドレス・タグの2つのコピーをキャッシュ・ディレクトリに入れることを回避する。第3に、Ig状態のキャストアウトは好ましくは、ローカル動作として実行され、グローバル動作として実行される場合は非ローカル・コヒーレンシ・ドメインのメモリ・コントローラによって無視される。メモリ・ブロックに関するLPCと同じコヒーレンシ・ドメイン内にないキャッシュにIg項目を形成できる場合、LPC内のドメイン・インジケータに対する更新はまったく不要である。第4に、Ig状態のキャストアウトは好ましくは、(キャストアウトを実行するキャッシュに対してローカルである場合に)ドメイン・インジケータがLPCにライトバックされるデータレス・アドレス専用動作として実行される。
本発明によるIg状態の実装は、メモリ・ブロックのいかなる有効なコピーもコヒーレンシ・ドメイン内にキャッシュされた状態で存続していない場合でも、メモリ・ブロックに関するキャッシュ・ドメイン・インジケータをそのコヒーレンシ・ドメイン内に維持することにより、通信効率を改善する。その結果として、メモリ・ブロックに関するHPCは、リモート・コヒーレンシ・ドメインからの排他アクセス要求(たとえば、バスRWITM動作)を再試行することなく、かつ要求されたメモリ・ブロックのLPCへのプッシュを実行することなく、その要求を処理することができる。
B.In状態
In状態は本明細書では、(1)キャッシュ・アレイ内の関連メモリ・ブロックが無効であることと、(2)キャッシュ・ディレクトリ内のアドレス・タグが有効であることと、(3)アドレス・タグによって識別されたメモリ・ブロックのコピーがキャッシュされる場合に、ローカル・コヒーレンシ・ドメイン内の1つまたは複数の他のキャッシュ階層のみによってキャッシュされる可能性があることを示すキャッシュ・コヒーレンシ状態として定義される。このIn表示が不正確であっても、コヒーレンシの違反が生じることはない。このIn状態は、排他アクセス要求(たとえば、バスRWITM動作)に応答して下位レベルのキャッシュが要求されたメモリ・ブロックを同じコヒーレンシ・ドメイン内の要求元に提供することに応答して、そのキャッシュ内に形成される。
In状態を含むキャッシュ・ディレクトリ項目は潜在的に有用な情報を担持するので、少なくともいくつかの実現例では、(たとえば、置換のために犠牲キャッシュ項目を選択するために使用される最長未使用時間(LRU)アルゴリズムを変更することにより)I状態の項目よりIn状態の項目を優先的に保持することが望ましい。Inディレクトリ項目はキャッシュ内に保持されるので、排他アクセス要求によってIn状態の形成が引き起こされたキャッシュが、In状態のメモリ・ブロックのアドレス・タグを保持するキャッシュへの通知なしにメモリ・ブロックの共用コピーをリモート・コヒーレンシ・ドメインに供給する可能性があるという点で、いくつかのIn項目が時間の経過につれて「失効」になる可能性がある。このような場合、グローバル動作の代わりにローカル動作を発行しなければならないことを誤って示す「失効」In状態は、コヒーレンシ・エラーを引き起こさないが、何らかの動作が最初はグローバル動作としてではなくローカル動作として誤って発行されることになる。このような非能率の発生は、「失効」Inキャッシュ項目の置換によって期間が制限される。好ましい一実施形態では、Inコヒーレンシ状態のキャッシュ項目はキャストアウトの対象にならないが、その代わりに単純に置換される。したがって、Igキャッシュ項目とは異なり、Inキャッシュ項目はシステム・メモリ108内のドメイン・インジケータ504を更新するために使用されない。
本発明によるIn状態の実装は、マスタがその動作の1つについてローカル範囲を選択するために調べる可能性のあるメモリ・ブロックに関するキャッシュ・ドメイン・インジケータを維持することにより、通信効率を改善する。その結果として、他のコヒーレンシ・ドメイン内のシステム相互接続110およびローカル相互接続114上の帯域幅が維持される。
C.Sr状態
以下に記載する動作では、要求された共用メモリ・ブロックをSrコヒーレンシ状態で保持する下位レベルのキャッシュが要求元のマスタと同じドメイン内に位置するかどうかを判定できることは有用である。一実施形態では、要求元のマスタと同じドメイン内の「ローカル」Srスヌーパの存在は、要求されたメモリ・ブロックをSrコヒーレンシ状態で保持する下位レベルのキャッシュにあるスヌーパの応答動作によって示すことができる。たとえば、バス動作がドメイン境界を横切ったかどうかを示す範囲インジケータ(たとえば、マスタの明示ドメインIDまたは単一ローカル/非ローカル・ビット)を各バス動作が含むと想定すると、共用メモリ・ブロックをSrコヒーレンシ状態で保持する下位レベルのキャッシュは、同じデータ・ソーシング・ドメイン内のマスタによる要求のみについてSr状態の要求を肯定する部分応答を提供し、他のすべての要求についてはS状態を示す部分応答を提供することができる。このような実施形態では、表IIIに示されているように応答動作を要約することができる。表IIIでは、メモリ・ブロックの実際のキャッシュ状態とは異なる可能性のある部分応答を示すために、プライム符号(’)表記が使用されている。
Figure 2006323845
上記の表IIIに示されている応答動作を想定すると、共用データに関する平均データ待ち時間は、調達元のデータ・ソースとして働くことができる、SMPデータ処理システム内に分散されたメモリ・ブロックの共用コピーの数を増加することにより、著しく減少させることができる。
VII.メモリ・ブロックの初期設定
図6〜8には、マルチプロセッサ・データ処理システム内のメモリ初期設定動作を処理する例示的な方法を示すハイレベル論理流れ図が示されている。当業者であれば、図示されている諸ステップの順序付けが論理シーケンスを表し、本発明の特定の実装例では図示されている諸ステップのうちのいくつかを同時にまたは代替順序で実行できることを認識するであろう。
図6には、本発明によりキャッシュ・メモリが関連プロセッサ・コアから受信したメモリ初期設定動作を処理する方法の例示的な一実施形態のハイレベル論理流れ図が示されている。図示されているプロセスは、処理装置104内の関連プロセッサ・コア200のうちの1つからのCPU動作をL2キャッシュ230のマスタ232が受信したことに応答して、ブロック600から始まる。次にプロセスはブロック602に移行し、その動作がたとえばソース・プロセッサ・コア200による対応するDCBN命令の実行に応答して受信されたCPU DCBN(データ・キャッシュ・ブロック初期設定)動作であるかどうかをマスタ232が判定する。
図9は、システム・メモリ108内に少なくとも部分的に記憶され、プロセッサ・コア200による実行または処理の対象となるコンピュータ使用可能プログラム・コード900の一部分を形成する例示的なDCBN命令902を示している。例示的なDCBN命令は好ましくは、その命令をDCBN命令として識別する命令コード(ニーモニック「dcbn」によって図9に表されている)と、初期設定すべきターゲット・メモリ・ブロックのターゲット実アドレスの表示とを含む。ターゲット実アドレスは好ましくは、従来通り、命令入力オペランドop1、op2、およびop3のうちの1つまたは複数によって示される。入力オペランドは任意選択で、追加の情報、たとえば、初期設定すべきターゲット・メモリ・ブロックのアドレス範囲の表示、ターゲット・メモリ・ブロックが初期設定される初期設定値の表示(たとえば、すべて0、すべて1、またはレジスタ指定値)などを示すことができる。いかなる初期設定値も明示的に示されない場合、DCBN命令の命令コードでデフォルト値(たとえば、すべて0またはすべて1)を暗黙指定してもよい。
好ましい一実施形態では、DCBN命令の実行に応答してプロセッサ・コア200によってマスタ232に送信されたCPU DCBN動作は同様に、少なくとも、メモリ・アクセス動作をCPU DCBN動作として識別する命令コードと、初期設定すべきターゲット・メモリ・ブロックのターゲット実アドレスの表示とを含む。CPU DCBN動作は任意選択で、追加の情報、たとえば、初期設定すべきターゲット・メモリ・ブロックのアドレス範囲の表示、ターゲット・メモリ・ブロックが初期設定される初期設定値の表示(たとえば、すべて0、すべて1、またはレジスタ指定値)などを示すことができる。いかなる初期設定値も明示的に示されない場合、CPU DCBN動作の命令コードでデフォルト値(たとえば、すべて0またはすべて1)を暗黙指定してもよい。
マスタ232によって受信されたCPU動作がCPU DCBN動作ではないというブロック602の判断に応答して、プロセスはブロック604に移行し、受信したCPU動作の動作タイプに応じてマスタ232が他の処理を実行する。次にプロセスはブロック630で終了する。
ブロック602に戻ると、受信された動作がCPU DCBN動作であるという判断に応答して、マスタ232は、CPU DCBN動作によって指定されたターゲット・アドレスに関してL2キャッシュ・ディレクトリ302内に記録されたコヒーレンシ状態がある場合にそのコヒーレンシ状態を決定するために、ブロック606でL2キャッシュ・ディレクトリ302のルックアップを開始する。ターゲット・アドレスがどのデータ有効コヒーレンシ状態(たとえば、M、Me、T、Tn、Te、Ten、Sr、またはS)にも関連していないが、データ無効コヒーレンシ状態(たとえば、I、Ig、またはIn)に関連していることをL2キャッシュ・ディレクトリ302が示している場合、プロセスはブロック622に移行し、マスタ232がそのローカル相互接続114およびシステム相互接続110上でグローバル範囲のDCBN要求を発行する。相互接続114、110は必ずしもバス状相互接続でなくてもよいが、このような要求は本明細書では、プロセッサ・コア200からマスタ232が受信したCPU DCBN動作およびプロセッサ実行DCBN命令と区別するために、バスDCBN要求として示される。
好ましい一実施形態では、相互接続110、114上で発行されたバスDCBN要求は、少なくとも、要求をバスDCBN要求として識別する要求ベクトルと、ターゲット・メモリ・ブロックのターゲット実アドレスの表示とを含む。上述のCPU DCBN動作のように、バスDCBN要求は任意選択で、追加の情報、たとえば、初期設定すべきターゲット・メモリ・ブロックのアドレス範囲の表示、ターゲット・メモリ・ブロックが初期設定される初期設定値の表示(たとえば、すべて0、すべて1、または指定値)などを示すことができる。いかなる初期設定値も明示的に示されない場合、バスDCBN要求の要求ベクトルでデフォルト値(たとえば、すべて0またはすべて1)を暗黙指定してもよい。
ブロック622後に、マスタ232はCPU DCBN要求の結合応答を待つ。結合応答(CR)が「再試行」を示している場合、すなわち少なくとも1つのスヌーパ236、222が「再試行」を示す部分応答を提供した場合、マスタ232は、ブロック624からブロック622に戻るプロセスによって示される通り、CPU DCBN要求を再発行する。これに反して、結合応答が「再試行」以外のものである場合、ターゲット・メモリ・ブロックの初期設定が成功しており、プロセスはブロック630で終了する。要求元のL2キャッシュ230がCPU DCBN動作のターゲット・メモリ・ブロックのコピーを保持していないときに、要求元のL2キャッシュ230は、CPU DCBN動作を処理するためにターゲット・メモリ・ブロックのコピーをロードすることによりそのL2キャッシュ・アレイ300を「汚染する」必要がないことに留意されたい。その代わりに、要求元のL2キャッシュ230は、「再試行」以外の結合応答が受信されるまで、単に1つまたは複数の対応するバスDCBN要求を発行することにより、CPU DCBN動作を処理する。
ブロック608に戻ると、ターゲット・アドレスがデータ有効コヒーレンシ状態でL2キャッシュ・ディレクトリ302でヒットしたとマスタ232が判断したことに応答して、マスタ232はターゲット・メモリ・ブロックのコヒーレンシ状態に応じてCPU DCBN動作を処理する。ターゲット・メモリ・ブロックのコヒーレンシ状態がMx(たとえば、MまたはMe)である場合、マスタ232は、ブロック618に図示されている通り、適切な初期設定値をターゲット・メモリ・ブロックに書き込むことにより、ターゲット・メモリ・ブロックを初期設定する。まだMに設定されていない場合、ターゲット・メモリ・ブロックがその時点でシステム・メモリ108内の対応するメモリ・ブロックに整合していないことを示すために、ターゲット・メモリ・ブロックのコヒーレンシ状態がMに更新される。その後、プロセスはブロック630で終了する。
次にブロック612を参照すると、ターゲット・メモリ・ブロックのコヒーレンシ状態がMxまたはTxではない(たとえば、SまたはSr)とマスタ232が判断した場合、マスタ232は、ブロック620に図示されている通り、そのL2キャッシュ・ディレクトリ302内のターゲット・キャッシュ・ブロックのコヒーレンシ状態をIコヒーレンシ状態に更新する。その後、プロセスは、すでに説明したブロック622およびそれ以降のブロックに移行する。したがって、要求元のL2キャッシュ230がターゲット・メモリ・ブロックを非HPCデータ有効コヒーレンシ状態で保持する場合、要求元のL2キャッシュ230は好ましくは、CPU DCBN動作を処理するために、ターゲット・メモリ・ブロックのそのコピーを変更するための許可を取得して、そのリソースおよび相互接続帯域幅を消費しない。その代わりに、要求元のL2キャッシュ230は好ましくは、「再試行」以外の結合応答が受信されるまで、単にターゲット・メモリ・ブロックのそのコピーを無効にし、1つまたは複数の対応するバスDCBN要求を発行することにより、CPU DCBN動作を処理する。
もう一度、ブロック612を参照すると、マスタ232がそのL2キャッシュ・ディレクトリ302内のターゲット・メモリ・ブロックのコヒーレンシ状態がTx(たとえば、T、Tn、Te、またはTen)であると判断した場合、マスタ232は、ブロック614に図示されている通り、そのローカル相互接続114およびシステム相互接続110上でグローバル範囲のバスDCBN要求を発行する。ブロック614後に、マスタ232はそのCPU DCBN要求の結合応答を待つ。結合応答(CR)の受信に応答して、マスタ232はブロック616で、結合応答(CR)が「再試行」を示しているかどうかを判定する。そうである場合、マスタ232は、ブロック616からブロック614に戻るプロセスが示す通り、CPU DCBN要求を再発行する。このようにバスDCBN要求を再発行すると、要求元のL2キャッシュ230によるターゲット・メモリ・ブロックの初期設定の前に、ターゲット・メモリ・ブロックのコピーを保持する他のL2キャッシュ230のそれぞれがターゲット・メモリ・ブロックのそれぞれのコピーをデータ無効状態に更新することをコミットすることが保証される。これに反して、結合応答が「再試行」を示していないとマスタ232がブロック616で判断した場合、マスタ232は、ブロック618に図示されている通り、適切な初期設定値をターゲット・メモリ・ブロックに書き込むことにより、ターゲット・メモリ・ブロックを初期設定する。また、マスタ232は、そのL2キャッシュ・ディレクトリ302内のターゲット・キャッシュ・ラインのコヒーレンシ状態をMに更新する(ただし、この更新は、ターゲット・メモリ・ブロックに関するコヒーレンシをTまたはTnコヒーレンシ状態に維持するためには不要であり、したがって、このようなメモリ・ブロックについては省略することができる)。その後、プロセスはブロック630で終了する。
次に図7に関して説明すると、本発明により統合メモリ・コントローラ206などのメモリ・コントローラがメモリ初期設定要求を処理する方法の例示的な一実施形態のハイレベル論理流れ図が示されている。図示されているプロセスは、IMC206内のスヌーパ222によるメモリ・アクセス要求の受信に応答して、ブロック700から始まる。次にプロセスはブロック702に移行し、メモリ・アクセス要求がバスDCBN要求であるかどうかをスヌーパ222が判定する。そうである場合、プロセスは後述するブロック710に移行する。そうではない場合、プロセスはブロック704に移行し、スヌーパ222がその要求タイプに応じて要求を処理する。その後、プロセスはブロック730で終了する。
次にブロック710を参照すると、受信した要求がバスDCBN要求である場合、スヌーパ222は、それがバスDCBN要求を処理するために使用可能なリソースを十分備えているかどうかを判定する。そうではない場合、スヌーパ222は、ブロック712に図示されている通り、「再試行」を示す部分応答(PR)を提供する。その後、処理はブロック730で終了する。しかし、バスDCBN要求を処理するために使用可能なリソースを十分備えているとスヌーパ222がブロック710で判断した場合、スヌーパ222は、それがBARロジック240への参照によりバスDCBN要求によって指定されたターゲット・アドレスに関するLPCであるかどうかを判定する(ブロック714)。スヌーパ222が指定ターゲット・メモリ・ブロックに関するLPCでなければ、処理はブロック730で終了する。しかし、スヌーパ222がそのターゲット・メモリ・ブロックに関するLPCであれば、スヌーパ222は、ブロック722に図示されている通り、バスDCBN要求に関する結合応答(CR)を受信するのを待つ。結合応答が「再試行」を示している場合、処理はブロック730で終了する。しかし、結合応答が「再試行」を示していない場合、スヌーパ222は、ブロック726に示されている通り、システム・メモリ108内のターゲット・メモリ・ブロックを適切な初期設定値に更新する。次にプロセスはブロック730で終了する。
本発明の代替実施形態では、スヌーパ222は、「再試行」結合応答を受信しない各バスDCBN動作に応答してシステム・メモリ108内のメモリ・ブロックのコピーを初期設定する必要がないことが認識されるであろう。特に、スヌーパ236によって生成された部分応答および応答ロジック210によって生成された結合応答が、バスDCBN動作に応答してターゲット・メモリ・ブロックの自身のコピーを初期設定するHPCの存在を示している場合、ターゲット・メモリ・ブロックのシステム・メモリ・コピーの初期設定は、リソースの可用性に基づいて省略するかまたは選択的に実行することができる。
次に図8を参照すると、本発明によりキャッシュ・メモリが相互接続上でスヌープされたメモリ初期設定要求を処理する方法の例示的な一実施形態のハイレベル論理流れ図が示されている。図示されているプロセスは、L2キャッシュ230のスヌーパ236によるそのローカル相互接続114上の要求の受信に応答して、ブロック800から始まる。次にプロセスはブロック802に移行し、受信した動作がバスDCBN要求であるかどうかをスヌーパ236が判定する。そうではない場合、プロセスはブロック804に移行し、スヌーパ236が受信した要求の要求タイプに応じて他の処理を実行する。次にプロセスはブロック850で終了する。
ブロック802に戻ると、受信した動作がバスDCBN要求であるという判断に応答して、スヌーパ236は、それがバスDCBN要求を処理するために使用可能なリソースを十分備えているかどうかを判定する。そうではない場合、スヌーパ236は、ブロック812に図示されている通り、「再試行」を示す部分応答(PR)を提供する。その後、処理はブロック850で終了する。しかし、バスDCBN要求を処理するために使用可能なリソースを十分備えているとスヌーパ236がブロック810で判断した場合、スヌーパ236は、バスDCBN要求によって指定されたターゲット・アドレスについて記録されたコヒーレンシ状態がある場合にそのコヒーレンシ状態を決定するために、ブロック812でL2キャッシュ・ディレクトリ302のルックアップを開始する。ターゲット・アドレスがMxコヒーレンシ状態(たとえば、MまたはMe)に関連していることをL2キャッシュ・ディレクトリ302が示している場合、スヌーパ236は、ブロック816に図示されている通り、そのL2キャッシュ・アレイ230内のターゲット・メモリ・ブロックを初期設定する。その後、処理はブロック850で終了する。ターゲット・メモリ・ブロックのコヒーレンシ状態がMxではなく、Txである場合(ブロック820)、プロセスはブロック822に移行する。
ブロック822は、スヌーパ236がバスDCBN要求の結合応答(CR)の受信を待っていることを示している。ブロック824に示されている通り、結合応答が「再試行」を示していない場合、ターゲット・メモリ・ブロックの他のキャッシュ・コピーがある場合にそのそれぞれが無効にされていることを意味し、スヌーパ236は、ブロック826に示されている通り、ターゲット・メモリ・ブロックを適切な初期設定値に初期設定する。その後、プロセスはブロック850で終了する。しかし、スヌーパ236がブロック824で「再試行」を示す結合応答を受信した場合、バスDCBN要求が再発行されるまで、スヌーパ236はターゲット・メモリ・ブロックを初期設定せず、処理はブロック850で終了する。
もう一度、ブロック820を参照すると、ターゲット・メモリ・ブロックがL2キャッシュ・ディレクトリ302内のTxコヒーレンシ状態に関連していないとスヌーパ236が判断した場合、スヌーパ236は、ターゲット・メモリ・ブロックのコヒーレンシ状態がSx(たとえば、SまたはSr)であるかどうかを判定する。そうではない場合、プロセスはブロック850で終了する。しかし、ターゲット・メモリ・ブロックがL2キャッシュ・ディレクトリ302内のSxコヒーレンシ状態に関連している場合、スヌーパ236はターゲット・メモリ・ブロックのSxコピーを無効にする(ブロック842)。その後、プロセスはブロック850で終了する。
これまでに述べた通り、本発明は、ターゲット・メモリ・ブロックを初期設定する処理装置、データ処理システム、および方法を提供する。有利には、本発明により、初期設定前または初期設定後に要求元のキャッシュ・メモリがターゲット・メモリ・ブロックの有効なコピーを保持することを必要とせずに、メモリ・ブロックを初期設定することができる。さらに、選択された動作シナリオでは、システム・メモリ内に保持されたターゲット・メモリ・ブロックのコピーを更新せずに、ターゲット・メモリ・ブロックを初期設定することができる。
好ましい実施形態に関して述べたように本発明を詳しく示してきたが、当業者であれば、本発明の精神および範囲を逸脱せずに、形式および詳細について様々な変更が可能であることを理解するであろう。たとえば、本発明の諸機能を指図するプログラム・コードを実行するコンピュータ・システムに関して本発明の諸態様を説明してきたが、代わって本発明はデータ処理システムとともに使用するためのプログラムとして実装可能であることを理解されたい。本発明の諸機能を定義するプログラム・コードは、書換え不能記憶媒体(たとえば、CD−ROM)、書換え可能記憶媒体(たとえば、フレキシブル・ディスクまたはハード・ディスク・ドライブ)、ならびにディジタルおよびアナログ・ネットワークなどの通信媒体を含む、様々な信号担持媒体を介してデータ処理システムに送達することができる。したがって、このような信号担持媒体は、本発明の諸機能を指図するコンピュータ可読命令を担持またはエンコードするときに、本発明の代替実施形態を表すものであることを理解されたい。
本発明による例示的なデータ処理システムのハイレベル・ブロック図である。 本発明による処理装置のより詳細なブロック図である。 図2に示されているL2キャッシュ・アレイおよびディレクトリのより詳細なブロック図である。 図1のデータ処理システムのシステム相互接続上の例示的なトランザクションの時間空間図である。 本発明の好ましい一実施形態によるドメイン・インジケータを示す図である。 本発明によりキャッシュ・メモリが関連プロセッサ・コアのメモリ初期設定動作を処理する方法の例示的な一実施形態のハイレベル論理流れ図である。 本発明によりスヌープ・メモリ・コントローラによりメモリ初期設定要求を処理する方法の例示的な一実施形態のハイレベル論理流れ図である。 本発明によりスヌープ・キャッシュ・メモリによりメモリ初期設定要求を処理する方法の例示的な一実施形態のハイレベル論理流れ図である。 本発明によるプログラム・コードのブロック図である。
符号の説明
100:データ処理システム
102a:処理ノード
102b:処理ノード
104a:処理装置(PU)
104b:処理装置(PU)
104c:処理装置(PU)
104d:処理装置(PU)
108a:システム・メモリ
108b:システム・メモリ
108c:システム・メモリ
108d:システム・メモリ
110:システム相互接続
114:ローカル相互接続

Claims (11)

  1. データ処理システム内のデータ処理の方法であって、
    初期設定すべきターゲット・メモリ・ブロックを示す関連プロセッサ・コアからの初期設定動作をキャッシュ・メモリが受信したことに応答して、前記キャッシュ・メモリが前記キャッシュ・メモリに対する前記ターゲット・メモリ・ブロックのコヒーレンシ状態を決定するステップと、
    前記ターゲット・メモリ・ブロックが前記キャッシュ・メモリに対するデータ無効コヒーレンシ状態を有するという判断に応答して、前記キャッシュ・メモリが前記ターゲット・メモリ・ブロックを示す対応する初期設定要求を発行するステップと、
    前記初期設定要求に応答して、前記キャッシュ・メモリにより前記ターゲット・メモリ・ブロックの有効なコピーを保持せずに、前記データ処理システムのメモリ内の前記ターゲット・メモリ・ブロックを初期設定値に初期設定するステップと、
    を有する方法。
  2. 前記初期設定するステップが、システム・メモリのメモリ・コントローラが前記システム・メモリ内の前記ターゲット・メモリ・ブロックを前記初期設定値に初期設定するステップを有する、請求項1に記載の方法。
  3. 前記初期設定するステップが、他のキャッシュ・メモリが前記初期設定要求をスヌープし、それに応答して、前記ターゲット・メモリ・ブロックのそのコピーを前記初期設定値に初期設定するステップをさらに有する、請求項2に記載の方法。
  4. 他のキャッシュ・メモリが前記初期設定要求をスヌープし、それに応答して、前記ターゲット・メモリ・ブロックのそのコピーをデータ無効コヒーレンシ状態に更新するステップをさらに有する、請求項1に記載の方法。
  5. 前記ターゲット・メモリ・ブロックが他のプロセッサ・コアに関連する他のキャッシュ・メモリによってキャッシュされないことを示す変更コヒーレンシ状態を前記ターゲット・メモリ・ブロックが有するという判断に応答して、前記キャッシュ・メモリが対応する初期設定要求を発行せずに前記メモリ・ブロックを前記キャッシュ・メモリのデータ・アレイ内で前記初期設定値に初期設定するステップをさらに有する、請求項1に記載の方法。
  6. 前記キャッシュ・メモリが前記ターゲット・メモリ・ブロックに関する最高コヒーレンシ点であることを示すコヒーレンシ状態を前記ターゲット・メモリ・ブロックが有し、他のプロセッサ・コアに関連する他のキャッシュ・メモリによって前記ターゲット・メモリ・ブロックをキャッシュすることができるという判断に応答して、前記キャッシュ・メモリが、
    初期設定要求を発行するステップと、
    他のプロセッサ・コアに関連する他のキャッシュ・メモリのいずれも前記ターゲット・メモリ・ブロックの有効なコピーを保持しないことを示す前記初期設定要求に対する応答の受信に応答して、前記ターゲット・メモリ・ブロックをそのデータ・アレイ内で前記初期設定値に初期設定するステップと、
    をさらに有する、請求項1に記載の方法。
  7. 相互接続と、システム・メモリと、前記相互接続に結合されたメモリ・コントローラとを含むデータ処理システム用の処理装置であって、
    プロセッサ・コアと、
    前記相互接続および前記プロセッサ・コアに結合されたキャッシュ・メモリであって、初期設定すべきターゲット・メモリ・ブロックを示す初期設定動作を前記プロセッサ・コアから受信したことに応答して、前記キャッシュ・メモリに対する前記ターゲット・メモリ・ブロックのコヒーレンシ状態を決定し、前記ターゲット・メモリ・ブロックが前記キャッシュ・メモリに対するデータ無効コヒーレンシ状態を有するという判断に応答して、前記ターゲット・メモリ・ブロックのそのコピーを初期設定値に初期設定するように他のキャッシュ・メモリおよび前記メモリ・コントローラのうちの少なくとも一方に要求する対応する初期設定要求を前記相互接続上で発行し、前記キャッシュ・メモリにより前記ターゲット・メモリ・ブロックの有効なコピーを保持せずに前記ターゲット・メモリ・ブロックが初期設定されるようにするキャッシュ・メモリと、
    を有する処理装置。
  8. 請求項7に記載の処理装置と、
    前記相互接続と、
    前記相互接続に結合された前記システム・メモリおよび前記メモリ・コントローラと、
    前記他のキャッシュ・メモリと、
    を有し、
    前記初期設定要求に応答して、前記他のキャッシュ・メモリと前記メモリ・コントローラを含む組のうちの少なくとも一つが、前記ターゲット・メモリ・ブロックを前記初期設定値に初期設定する、データ処理システム。
  9. 前記他のキャッシュ・メモリおよび前記メモリ・コントローラのそれぞれが、前記相互接続上で前記初期設定要求をスヌープしたことに応答して、前記ターゲット・メモリ・ブロックのそれぞれのコピーを前記初期設定値に初期設定する、請求項8に記載のデータ処理システム。
  10. 前記他のキャッシュ・メモリが、前記相互接続上で前記初期設定要求をスヌープしたことに応答して、前記ターゲット・メモリ・ブロックのそのコピーをデータ無効コヒーレンシ状態に更新する、請求項8に記載のデータ処理システム。
  11. 初期設定すべきターゲット・メモリ・ブロックを示す初期設定動作をプロセッサ・コアが関連キャッシュ・メモリに伝送するステップと、
    前記初期設定動作を前記キャッシュ・メモリが受信したことに応答して、前記キャッシュ・メモリが前記キャッシュ・メモリに対する前記ターゲット・メモリ・ブロックのコヒーレンシ状態を決定するステップと、
    前記ターゲット・メモリ・ブロックが前記キャッシュ・メモリに対するデータ無効コヒーレンシ状態を有するという判断に応答して、前記キャッシュ・メモリが前記ターゲット・メモリ・ブロックを示す対応する初期設定要求を発行するステップと、
    前記初期設定要求に応答して、前記キャッシュ・メモリにより前記ターゲット・メモリ・ブロックの有効なコピーを保持せずに、データ処理システムのメモリ内の前記ターゲット・メモリ・ブロックを初期設定値に初期設定するステップと、
    をコンピュータに実行させるためのプログラム。
JP2006135600A 2005-05-17 2006-05-15 メモリ・ブロックを初期設定するためのプロセッサ、データ処理システム、および方法 Expired - Fee Related JP4594900B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11/130,907 US7290094B2 (en) 2005-05-17 2005-05-17 Processor, data processing system, and method for initializing a memory block to an initialization value without a cache first obtaining a data valid copy

Publications (2)

Publication Number Publication Date
JP2006323845A true JP2006323845A (ja) 2006-11-30
JP4594900B2 JP4594900B2 (ja) 2010-12-08

Family

ID=37425247

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006135600A Expired - Fee Related JP4594900B2 (ja) 2005-05-17 2006-05-15 メモリ・ブロックを初期設定するためのプロセッサ、データ処理システム、および方法

Country Status (4)

Country Link
US (1) US7290094B2 (ja)
JP (1) JP4594900B2 (ja)
CN (1) CN100397366C (ja)
TW (1) TW200710674A (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007080266A (ja) * 2005-09-15 2007-03-29 Internatl Business Mach Corp <Ibm> 方法、データ処理システム、メモリ・コントローラ(i/o書込みオペレーションのパイプライン化および多重オペレーション範囲を可能にするデータ処理システムおよび方法)
JP2007193784A (ja) * 2006-01-17 2007-08-02 Internatl Business Mach Corp <Ibm> 同報通信範囲を示す無効な整合状態を正確に形成するためのデータ処理システム、キャッシュ・システム、および方法
JP2009169706A (ja) * 2008-01-17 2009-07-30 Nec Corp メモリ制御装置
JP2020513605A (ja) * 2016-12-12 2020-05-14 インテル・コーポレーション プロセッサアーキテクチャのための装置および方法
US11294809B2 (en) 2016-12-12 2022-04-05 Intel Corporation Apparatuses and methods for a processor architecture
JP7460743B1 (ja) 2022-12-27 2024-04-02 Necプラットフォームズ株式会社 メモリコントローラ及びメモリコントローラ制御方法

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8281222B2 (en) * 2009-08-07 2012-10-02 Via Technologies, Inc. Detection and correction of fuse re-growth in a microprocessor
US8635411B2 (en) 2011-07-18 2014-01-21 Arm Limited Data processing apparatus and method for managing coherency of cached data
CN102521265B (zh) * 2011-11-21 2013-10-30 华中科技大学 一种海量数据管理中动态一致性控制方法
US8984183B2 (en) * 2011-12-16 2015-03-17 Nvidia Corporation Signaling, ordering, and execution of dynamically generated tasks in a processing system
US10229043B2 (en) 2013-07-23 2019-03-12 Intel Business Machines Corporation Requesting memory spaces and resources using a memory controller
US9372800B2 (en) 2014-03-07 2016-06-21 Cavium, Inc. Inter-chip interconnect protocol for a multi-chip system
US9411644B2 (en) 2014-03-07 2016-08-09 Cavium, Inc. Method and system for work scheduling in a multi-chip system
US10592459B2 (en) 2014-03-07 2020-03-17 Cavium, Llc Method and system for ordering I/O access in a multi-node environment
US9529532B2 (en) 2014-03-07 2016-12-27 Cavium, Inc. Method and apparatus for memory allocation in a multi-node system
US9710381B2 (en) 2014-06-18 2017-07-18 International Business Machines Corporation Method and apparatus for cache memory data processing
KR20160120004A (ko) * 2015-04-07 2016-10-17 삼성전자주식회사 시스템 온-칩 및 이를 포함하는 전자 기기
GB2540940B (en) * 2015-07-31 2018-01-03 Advanced Risc Mach Ltd An apparatus and method for transferring a plurality of data structures between memory and one or more vectors of data elements stored in a register bank
CN107018170B (zh) * 2016-10-27 2020-09-08 阿里巴巴集团控股有限公司 一种数据同步方法和设备
US10838753B2 (en) * 2018-02-21 2020-11-17 Red Hat, Inc. Efficient memory deduplication by hypervisor initialization

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5764384A (en) * 1980-10-06 1982-04-19 Ibm Main memory clearing system
JPH03231345A (ja) * 1990-02-06 1991-10-15 Fujitsu Ltd キャッシュ装置
JPH05225058A (ja) * 1992-02-12 1993-09-03 Hitachi Ltd 記憶制御装置
US20060179241A1 (en) * 2005-02-10 2006-08-10 International Business Machines Corporation Data processing system and method for predictively selecting a scope of broadcast of an operation
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

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5113508A (en) * 1988-03-08 1992-05-12 International Business Machines Corporation Data cache initialization
JP3849951B2 (ja) * 1997-02-27 2006-11-22 株式会社日立製作所 主記憶共有型マルチプロセッサ
US6763434B2 (en) * 2000-12-30 2004-07-13 International Business Machines Corporation Data processing system and method for resolving a conflict between requests to modify a shared cache line
US6760819B2 (en) * 2001-06-29 2004-07-06 International Business Machines Corporation Symmetric multiprocessor coherence mechanism
CN1279455C (zh) * 2003-11-14 2006-10-11 清华大学 光纤通道-存储区域网络系统的逻辑单元号高速缓存方法
US8301844B2 (en) * 2004-01-13 2012-10-30 Hewlett-Packard Development Company, L.P. Consistency evaluation of program execution across at least one memory barrier

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5764384A (en) * 1980-10-06 1982-04-19 Ibm Main memory clearing system
JPH03231345A (ja) * 1990-02-06 1991-10-15 Fujitsu Ltd キャッシュ装置
JPH05225058A (ja) * 1992-02-12 1993-09-03 Hitachi Ltd 記憶制御装置
US20060179241A1 (en) * 2005-02-10 2006-08-10 International Business Machines Corporation Data processing system and method for predictively selecting a scope of broadcast of an operation
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

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007080266A (ja) * 2005-09-15 2007-03-29 Internatl Business Mach Corp <Ibm> 方法、データ処理システム、メモリ・コントローラ(i/o書込みオペレーションのパイプライン化および多重オペレーション範囲を可能にするデータ処理システムおよび方法)
JP2007193784A (ja) * 2006-01-17 2007-08-02 Internatl Business Mach Corp <Ibm> 同報通信範囲を示す無効な整合状態を正確に形成するためのデータ処理システム、キャッシュ・システム、および方法
JP2009169706A (ja) * 2008-01-17 2009-07-30 Nec Corp メモリ制御装置
JP2020513605A (ja) * 2016-12-12 2020-05-14 インテル・コーポレーション プロセッサアーキテクチャのための装置および方法
US11294809B2 (en) 2016-12-12 2022-04-05 Intel Corporation Apparatuses and methods for a processor architecture
JP7095208B2 (ja) 2016-12-12 2022-07-05 インテル・コーポレーション プロセッサアーキテクチャのための装置および方法
JP7460743B1 (ja) 2022-12-27 2024-04-02 Necプラットフォームズ株式会社 メモリコントローラ及びメモリコントローラ制御方法

Also Published As

Publication number Publication date
US7290094B2 (en) 2007-10-30
TW200710674A (en) 2007-03-16
US20060265553A1 (en) 2006-11-23
CN1866222A (zh) 2006-11-22
CN100397366C (zh) 2008-06-25
JP4594900B2 (ja) 2010-12-08

Similar Documents

Publication Publication Date Title
JP4594900B2 (ja) メモリ・ブロックを初期設定するためのプロセッサ、データ処理システム、および方法
JP5078396B2 (ja) 動作のスヌーピングに応答して無効コヒーレンシー状態を更新するデータ処理システム、キャッシュ・システム、および方法
JP4928812B2 (ja) タグ付きキャッシュ状態に基づいて下位レベル・キャッシュへの参照なしに相互接続ファブリック上にリクエストを送出するためのデータ処理システム、キャッシュ・システム、および方法
US8140770B2 (en) Data processing system and method for predictively selecting a scope of broadcast of an operation
US7716428B2 (en) Data processing system, cache system and method for reducing imprecise invalid coherency states
JP5105863B2 (ja) 複数のコヒーレンシ・ドメインを有するデータ処理システムでフラッシュ動作を処理するデータ処理システム、方法、およびメモリ・コントローラ
US7747826B2 (en) Data processing system and method for efficient communication utilizing an in coherency state
US7475196B2 (en) Processor, data processing system, and method for initializing a memory block in a data processing system having multiple coherency domains
US20080016284A1 (en) Data processing system and method for predictively selecting a scope of broadcast of an operation utilizing a history-based prediction
US20060179245A1 (en) Data processing system and method for efficient communication utilizing an Tn and Ten coherency states
US7454578B2 (en) Data processing system and method for predictively selecting a scope of broadcast of an operation utilizing a location of a memory
US7478201B2 (en) Data processing system, cache system and method for passively scrubbing a domain indication
JP5004571B2 (ja) 同報通信範囲を示す無効な整合状態を正確に形成するためのデータ処理システム、キャッシュ・システム、および方法
US7467262B2 (en) Data processing system, cache system and method for scrubbing a domain indication in response to execution of program code
US7475195B2 (en) Data processing system, cache system and method for actively scrubbing a domain indication
US7584331B2 (en) Data processing system and method for selectively updating an invalid coherency state in response to snooping a castout
JP5063059B2 (ja) 方法、データ処理システム、メモリ・コントローラ(i/o書込みオペレーションのパイプライン化および多重オペレーション範囲を可能にするデータ処理システムおよび方法)

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090206

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090226

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20090424

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20090501

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090728

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091028

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100119

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100519

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20100526

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

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

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

Free format text: PAYMENT UNTIL: 20130924

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