JP5116418B2 - Method for processing data in a multiprocessor data processing system, processing unit for multiprocessor data processing system, and data processing system - Google Patents
Method for processing data in a multiprocessor data processing system, processing unit for multiprocessor data processing system, and data processing system Download PDFInfo
- Publication number
- JP5116418B2 JP5116418B2 JP2007247897A JP2007247897A JP5116418B2 JP 5116418 B2 JP5116418 B2 JP 5116418B2 JP 2007247897 A JP2007247897 A JP 2007247897A JP 2007247897 A JP2007247897 A JP 2007247897A JP 5116418 B2 JP5116418 B2 JP 5116418B2
- Authority
- JP
- Japan
- Prior art keywords
- cache
- coherency
- state
- memory
- domain
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0817—Cache consistency protocols using directory methods
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
本発明は、マルチプロセッサ・データ処理システムの改良に係り、更に詳しく云えば、マルチプロセッサ・データ処理システムにおける階層キャッシュ・システムのコヒーレンシ管理の改良に係る。 The present invention relates to improved multiprocessor data processing systems and, more particularly, to an improved coherency management hierarchy cache system in multiprocessor data processing system.
サーバ・コンピュータ・システムのような通常の対称マルチプロセッサ(SMP)コンピュータ・システムは、典型的には1つまたは複数のアドレス・バス、データ・バス、および制御バスを含むシステム相互接続バスにすべて接続された複数の処理ユニットを含む。システム相互接続バスに接続されるシステム・メモリは、マルチプロセッサ・コンピュータ・システムにおける最低レベルの揮発性メモリを表し、一般に、すべての処理ユニットによる読取りおよび書込みアクセスのためにアクセス可能である。システム・メモリに存在する命令およびデータに対するアクセス待ち時間を少なくするために、各処理ユニットは、典型的には、それぞれのマルチレベル・キャッシュ階層によって更に支援され、その階層の下位レベルのものが1つまたは複数のプロセッサ・コアによって共用される。 Conventional symmetric multiprocessor (SMP) computer systems, such as server computer systems, typically all connect to a system interconnect bus that includes one or more address, data, and control buses A plurality of processing units. System memory connected to the system interconnect bus represents the lowest level of volatile memory in a multiprocessor computer system and is generally accessible for read and write access by all processing units. In order to reduce the access latency for instructions and data residing in system memory, each processing unit is typically further assisted by its respective multi-level cache hierarchy, with one at the lower level of that hierarchy being one. Shared by one or more processor cores.
複数のプロセッサ・コアがデータの同じキャッシュ・ラインへの書込みアクセスを要求し得るし、修正されたキャッシュ・ラインがシステム・メモリと直接的には同期しないので、マルチプロセッサ・コンピュータ・システムのキャッシュ階層は、システム・メモリの内容に関して種々のプロセッサ・コアの「ビュー(view)」間での少なくとも最低レベルのコヒーレンシを保証するようにキャッシュ・コヒーレンシ・プロトコルを実装する。詳しく云えば、キャッシュ・コヒーレンシは、少なくとも、処理ユニットがメモリ・ブロックのコピーをアクセスし、その後、そのメモリ・ブロックの更新されたコピーをアクセスした後、処理ユニットがそのメモリ・ブロックの古いコピーを再びアクセスすることができないことを必要とする。 Multiple processor cores can request write access to the same cache line of data, and the modified cache line is not directly synchronized with system memory, so the cache hierarchy of a multiprocessor computer system It will implement a cache coherency protocol to ensure at least a minimum level of coherency between "view (view)" of the various processor cores for the content of system memory. Specifically, cache coherency is at least when a processing unit accesses a copy of a memory block and then an updated copy of that memory block, after which the processing unit retrieves an old copy of that memory block. Need to be inaccessible again.
キャッシュ・コヒーレンシ・プロトコルは、一般に、キャッシュ階層の各レベルにストアされたキャッシュ・ラインと関連してストアされた一組のキャッシュ状態、およびキャッシュ階層間でキャッシュ状態の情報を通信するために利用される一組のコヒーレンシ・メッセージを定義する。典型的な実装では、キャッシュ状態の情報は、周知のMESI(Modified, Exclusive, Shared, Invalid)プロトコルまたはその変形という形態をとり、コヒーレンシ・メッセージは、メモリ・アクセス要求の要求元および/または宛先のキャッシュ階層におけるプロトコルで定義されたコヒーレンシ状態の遷移を表す。MESIプロトコルは、データのキャッシュ・ラインが4つの状態、即ち、M(Modified ‐ 修正済み)、E(Exclusive ‐ 排他的)、S(Shared ‐ 共用)、またはI(Invalid ‐ 無効)、の1つによってタグ付けされることを可能にする。「修正済み」状態は、コヒーレンシ・グラニュールが、修正されたコヒーレンシ・グラニュールをストアしているキャッシュにおいてのみ有効であるということ、および修正されたコヒーレンシ・グラニュールの値がシステム・メモリに書込まれていないということを表す。メモリ階層におけるすべてのキャッシュのうち、その時点でコヒーレンシ・グラニュールが「排他的」として表されているとき、そのキャッシュだけがコヒーレンシ・グラニュールを保持する。しかし、「排他的」状態におけるデータは、システム・メモリと整合している。もし、或るコヒーレンシ・グラニュールがキャッシュ・ディレクトリにおいて「共用」としてマークされるならば、そのコヒーレンシ・グラニュールは、関連するキャッシュに、および、恐らくはメモリ階層内の1つまたは複数の他のキャッシュに存在し、そのコヒーレンシ・グラニュールのすべてのコピーがシステム・メモリと整合している。最後に、「無効」状態は、コヒーレンシ・グラニュールと関連するデータおよびアドレスが共に無効であるということを表す。 Cache coherency protocols are commonly used to communicate a set of cache states stored in association with cache lines stored at each level of the cache hierarchy, and cache state information between cache hierarchies. Define a set of coherency messages. In a typical implementation , the cache state information takes the form of the well-known MESI (Modified, Exclusive, Shared, Invalid) protocol or a variant thereof, and the coherency message is the source and / or destination of the memory access request. It represents the transition of coherency state defined by the protocol in the cache hierarchy. The MESI protocol is one of four states of data cache lines: M (Modified), E (Exclusive), S (Shared), or I (Invalid). Allows to be tagged by. The “modified” state means that the coherency granule is only valid in the cache that stores the modified coherency granule, and that the modified coherency granule value is written to system memory. Indicates that it is not included. Of all the caches in the memory hierarchy, when the coherency granule is currently represented as “exclusive”, only that cache holds the coherency granule. However, the data in the “exclusive” state is consistent with the system memory. If a coherency granule is marked as “shared” in the cache directory , the coherency granule is associated with the associated cache and possibly one or more other caches in the memory hierarchy. All copies of that coherency granule are consistent with system memory. Finally, the “invalid” state represents that both the data and address associated with the coherency granule are invalid.
各コヒーレンシ・グラニュール(例えば、キャッシュ・ライン)がセットされる状態は、そのキャッシュ・ライン内のデータの前の状態と、要求元の装置(例えば、プロセッサ)から受けたメモリ・アクセス要求のタイプとの両方に依存する。従って、システムにおいてメモリ階層を維持するということは、メモリ・ロケーションから読取るまたはメモリ・ロケーションに書込むという意図を表すメッセージをプロセッサがシステム全体にわたって通信することを必要とする。例えば、プロセッサが或るメモリ・ロケーションにデータを書込みたいとき、プロセッサは、先ず、そのメモリ・ロケーションにデータを書込むという意図を他のすべての処理要素に知らせなければならず、書込みオペレーションを実行するための許可を他のすべての処理要素から受けなければならない。要求元のプロセッサが受けた許可メッセージは、そのメモリ・ロケーションの内容のすべての他のキャッシュされたコピーが無効にされたということ或いは無効にされるであろうということを表し、それによって、他のプロセッサがそれらの失効したローカル・データを間違ってアクセスしないということを保証する。 The state in which each coherency granule (eg, cache line) is set includes the previous state of the data in that cache line and the type of memory access request received from the requesting device (eg, processor). And depends on both. Thus, maintaining a memory hierarchy in the system requires the processor to communicate messages throughout the system that represent the intent to read from or write to the memory location. For example, when a processor wants to write data to a memory location, the processor must first inform all other processing elements that it intends to write data to that memory location and perform the write operation Permission to do so must be obtained from all other processing elements. Grant message requesting processor has received represents that would be in or disable that copies all of the other caches of the contents of the memory location is invalidated, whereby the other Guarantees that these processors will not accidentally access their stale local data.
或るシステムでは、キャッシュ階層は、少なくとも2つのレベルのキャッシュ、即ち、レベル1(L1)または上位レベルのキャッシュと、レベル2(L2)キャッシュおよびレベル3(L3)キャッシュのような1つまたは複数のレベルの下位レベルのキャッシュを含む(L2キャッシュはL3キャッシュに関して上位レベルのキャッシュである)。L1キャッシュは、通常、MPシステムにおける特定のプロセッサ・コアに関連する専用キャッシュである。プロセッサ・コアは、先ず、そのL1キャッシュにおけるデータをアクセスしようとする。もし、要求されたデータがL1キャッシュにおいて見つからなければ、プロセッサ・コアは、要求されたデータに関して1つまたは複数の下位レベルのキャッシュ(例えば、レベル2(L2)またはレベル3(L3)キャッシュ)をアクセスする。多くの場合、最低レベルのキャッシュ(例えば、L3キャッシュ)は幾つかのプロセッサ・コアの間で共用される。 In some systems, the cache hierarchy includes at least two levels of cache, one or more such as a level 1 (L1) or higher level cache, and a level 2 (L2) cache and a level 3 (L3) cache. (The L2 cache is a higher level cache with respect to the L3 cache). The L1 cache is usually a dedicated cache associated with a specific processor core in the MP system. The processor core first tries to access data in its L1 cache. If not found the requested data is in the L1 cache, the processor core, one or more lower-level cache for the requested data (e.g., level 2 (L2) or level 3 (L3) cache) the to access. In many cases, the lowest level cache (eg, L3 cache) is shared among several processor cores.
典型的には、上位レベルのキャッシュの合同クラスが満杯になるとき、データ・ラインが、記憶のために下位レベルのキャッシュにまたはシステム・メモリに「排出(evict)」または書き出される。しかし、いずれのメモリ階層の場合も、メモリ階層にある同じデータの複数のコピーが同時に存在し得る。より多くのスペースを上位レベルのキャッシュに与えるためにラインを排出するというポリシは、その結果として、下位レベルのキャッシュに対する更新を生じさせ、それは下位レベルのキャッシュ・ディレクトリにおけるコヒーレンシ状態情報の更新も含む。 Typically, when the combined class of higher level caches is full, data lines are "evicted" or written out to lower level caches or to system memory for storage. However, in any memory hierarchy, multiple copies of the same data in the memory hierarchy can exist simultaneously. The policy of draining the line to give more space to the higher level cache results in an update to the lower level cache, which also includes an update of coherency state information in the lower level cache directory. .
従来は、キャッシュ・コヒーレンシ・プロトコルは、一般に、キャッシュ・コヒーレンシを維持するために、上位レベルのキャッシュからのキャッシュ・ラインの排出時に、上位レベルのキャッシュからのコヒーレンシ状態が下位レベルのキャッシュにコピーされるものと仮定していた。本発明は、キャストアウトが行われるときおよび他のデータ処理シナリオのために、キャッシュ階層におけるコヒーレンシ状態とコヒーレンシ状態遷移とを適切に定義することによって、データ処理システムに対するパフォーマンスの強化を達成することが可能であると認識するものである。 Traditionally, the cache coherency protocol generally copies the coherency state from the higher level cache to the lower level cache when the cache line is drained from the higher level cache to maintain cache coherency. Was assumed. The present invention, in case, and other data processing scenarios cast out takes place, by appropriately defining the coherency status and coherency state transitions in the cache hierarchy, to achieve enhanced performance with respect to the data processing system Is recognized as being possible.
本発明の目的は、マルチプロセッサ・データ処理システムにおいてコヒーレンシ管理を行うための改良された処理ユニット、データ処理システム、および方法を提供することにある。 It is an object of the present invention to provide an improved processing unit, data processing system, and method for performing coherency management in a multiprocessor data processing system.
本発明の一実施例によれば、データ処理システムは、少なくとも第1コヒーレンシ・ドメインおよび第2コヒーレンシ・ドメインを含み、第1コヒーレンシ・ドメインはシステム・メモリおよびキャッシュ・メモリを含む。本発明のデータを処理する方法は、キャッシュ・メモリのデータ・アレイにキャッシュ・ラインをバッファするステップと、キャッシュ・ラインがデータ・アレイにおいて有効であること、キャッシュ・ラインがキャッシュ・メモリに非排他的に保持されること、および第2コヒーレンシ・ドメインにおける別のキャッシュがそのキャッシュ・ラインのコピーを保持し得ること、を表すためにキャッシュ・メモリのキャッシュ・ディレクトリにおける状態フィールドをコヒーレンシ状態にセットするステップと、を有する。 According to one embodiment of the present invention, a data processing system includes at least a first coherency domain and a second coherency domain, and the first coherency domain includes system memory and cache memory. The method of processing data of the present invention includes the steps of buffering a cache line in a data array of cache memory, the cache line being valid in the data array, and the cache line being non-exclusive to the cache memory. Set the state field in the cache directory of the cache memory to a coherency state to indicate that it is kept and that another cache in the second coherency domain may hold a copy of that cache line Steps.
本発明のすべての目的、特徴、および利点が以下の詳細な説明において明らかになるであろう。 All objects, features and advantages of the present invention will become apparent in the following detailed description.
I.例示的アーキテクチャの概要
図面全体を通して、同じ参照番号は同じ部分または対応する部分を指す。図1を参照すると、本発明を実装し得る例示的なデータ処理システムを表す高レベルのブロック図が示される。データ処理システムは、キャッシュ・コヒーレントな対称マルチプロセッサ(SMP)・データ処理システム100として示される。図示のように、データ処理システム100は、データおよび命令を処理するための複数の処理ノード102a、102bを含む。処理ノード102は、アドレス、データ、および制御情報を通信するためのシステム相互接続網110に接続される。システム相互接続網110は、例えば、バス型の相互接続網、交換型の相互接続網、またはハイブリッド相互接続網として実装することが可能である。
I. Exemplary Architecture Overview Throughout the drawings, the same reference numbers refer to the same or corresponding parts. Referring to FIG. 1, a high level block diagram representing an exemplary data processing system in which the present invention may be implemented is shown. The data processing system is shown as a cache coherent symmetric multiprocessor (SMP)
図示の実施例では、各処理ノード102は、4つの処理ユニット104a〜104dを含むマルチチップ・モジュール(MCM)として実装される。各処理ユニットは、それぞれの集積回路として実装されることが望ましい。各処理ノード102における処理ユニット104は、ローカル相互接続網114によって相互におよびシステム相互接続網110に通信を行うために接続される。ローカル相互接続網114は、システム相互接続網110のように、例えば、1つまたは複数のバスまたはスイッチを用いて実装することも可能である。
In the illustrated embodiment, each processing node 102 is implemented as a multi-chip module (MCM) that includes four
図2に示されるように、各処理ユニット104は、それぞれのシステム・メモリ108に接続された統合メモリ・コントローラ(IMC)206を含む。システム・メモリ108に存在するデータおよび命令は、一般に、データ処理システム100内の任意の処理ノード102の任意の処理ユニット104におけるプロセッサ・コアがアクセスおよび修正することも可能である。本発明の別の実施例では、1つまたは複数のメモリ・コントローラ206(およびシステム・メモリ108)をシステム相互接続網110またはローカル相互接続網114に接続することも可能である。
As shown in FIG. 2, each
図1のSMPデータ処理システム100が、相互接続ブリッジ、不揮発性記憶装置、ネットワークまたは付属装置等への接続のためのポート、のような多くの追加の図示されてないコンポーネントを含み得るということは当業者には明らかであろう。そのような追加のコンポーネントは、本発明の理解にとっては必要のないものなので図1には示されず、これ以上説明されない。しかし、本発明によって提供される機能強化が様々なアーキテクチャのキャッシュ・コヒーレントなデータ処理システムに適用可能であって、図1に示された汎用データ処理システム・アーキテクチャにまったく限定されないということは当然である。
1 that the SMP
図2を参照すると、本発明に従った例示的な処理ユニット104の更に詳細なブロック図が示される。図示の実施例では、単一の集積回路として都合よく実装し得る各処理ユニット104は、互いに独立して命令およびデータを処理するための4つのプロセッサ・コア200a〜200dを含む。1つの好適な実施例では、各プロセッサ・コア200は、複数(例えば、2つ)の同時的なハードウェア・スレッドの実行を支援する。
Referring to FIG. 2, a more detailed block diagram of an
各プロセッサ・コア200のオペレーションはマルチ・レベルの揮発性メモリ・サブシステムによって支援され、そのメモリ・サブシステムは、共用システム・メモリ108を最低レベルで有し、キャッシュ可能なアドレス内に存在するデータおよび命令をキャッシュするための2つまたはそれ以上のレベルのキャッシュ・メモリを上位レベルで有する。図示の実施例では、キャッシュ・メモリ階層は、各プロセッサ・コア200内にあってそのプロセッサ・コア専用のそれぞれのストア・スルー・レベル1(L1)キャッシュ(図示されてない)、各プロセッサ・コア200に専用のそれぞれのストア・イン・レベル2(L2)キャッシュ230、およびL2キャストアウト(castout)をバッファするためのL3ビクティム(victim)・キャッシュ232を含む。図示の実施例では、プロセッサ・コア200aおよび200dがそれぞれのL3キャッシュ232aを共用し、プロセッサ・コア200bおよび200cがL3キャッシュ232bを共用する。もちろん、別の実施例では、プロセッサ・コア200の各々がそれ自身のL3キャッシュ232を有することも可能である。図2に示されたものを含む少なくともいくつかの実施例では、L3キャッシュ232a、232bがデータ交換を可能にするために更に相互に接続される。このデータ交換は、プロセッサ・コア200によってアクセスされそうなデータを処理ユニット104のキャッシュ階層内にできるだけ長い期間保存するために、一方のL3キャッシュ232がそれのキャッシュ・ラインの1つを他方のL3キャッシュ232にキャストアウトすることを可能にすることを含む。
The operation of each
各処理ユニット104は応答ロジック210のインスタンスを含み、その応答ロジックは、データ処理システム100内のキャッシュ・コヒーレンシを維持する分散型のコヒーレンシ信号機構の一部を実装する。更に、各処理ユニット104は、処理ユニット104と、ローカル相互接続網114およびシステム相互接続網110との間の通信を管理するための相互接続ロジック212のインスタンスを含む。L2キャッシュ230およびL3キャッシュ232の各々は、図1の相互接続網110および114を介したデータおよびコヒーレンシ通信における参加を可能にするために相互接続ロジック212に接続される。最後に、各処理ユニット104は、I/O装置216のような1つまたは複数のI/O装置の接続を支援する統合I/Oコントローラ214を含む。I/Oコントローラ214は、I/O装置216による要求に応答してローカル相互接続網114および/またはシステム相互接続網110上のオペレーションを発行させることが可能である。
Each
次に図3を参照すると、図2の処理ユニット104におけるプロセッサ・コア200およびL2キャッシュ230の更に詳細なブロック図が示される。図示のように、プロセッサ・コア200は、実行のために命令をフェッチして順序付けるための命令シーケンス・ユニット(ISU)300、命令を実行するための1つまたは複数の実行ユニット302、およびL1キャッシュ306を含む。
Referring now to FIG. 3, a more detailed block diagram of the
実行ユニット302は、データをメモリからロードさせるためにおよびメモリにストアさせるためにメモリ・アクセス命令(例えば、ロードおよびストア命令)を実行するロード・ストア・ユニット(LSU)304を含む。メモリ・サブシステムによるコヒーレンシ・プロトコルの実装を通してそのようなメモリ・アクセス・オペレーションを行うとき、メモリ内容のコヒーレントなビューが維持される。
本発明によれば、分離したL1データおよび命令キャッシュを含み得るL1キャッシュ306は、他のプロセッサ・コア200に関するキャッシュ・コヒーレンシのポイントがL1キャッシュ306の下に置かれ、図示の実施例では、L2キャッシュ230に置かれるということを意味するストア・スルー・キャッシュとして実装される。従って、L1キャッシュ306は、それのキャッシュ・ラインに関して真のキャッシュ・コヒーレンシ状態を維持するのではなく、有効/無効ビットを維持するだけである。
In accordance with the present invention, the
L2キャッシュ230は、命令およびデータのキャッシュ・ラインをストアするデータ・アレイ310、およびデータ・アレイ310のキャッシュ・ディレクトリ312を含む。通常のセット・アソシアティブ・キャッシュにおけるように、システム・メモリ108におけるメモリ・ブロックは、システム・メモリ(実)アドレス内の所定のインデックス・ビットを利用してデータ・アレイ310内の特定の合同クラスにマップされる。一実施例では、コヒーレンシ・システムに対する標準のメモリ・ブロックは128バイトのキャッシュ・ラインにセットされる。データ・アレイ310内にストアされた特定のメモリ・ブロックまたはキャッシュ・ラインがキャッシュ・ディレクトリ312に記録される。なお、キャッシュ・ディレクトリ312は、データ・アレイ310における各キャッシュ・ラインに対して1つのディレクトリ・エントリを含む。当業者には明らかであるように、キャッシュ・ディレクトリ312における各ディレクトリ・エントリは、少なくとも、対応する実アドレスの一部分を利用してデータ・アレイ310にストアされた特定のキャッシュ・ラインを指定するタグ・フィールド314、キャッシュ・ラインのコヒーレンシ状態を表す状態フィールド316、および同じ合同クラスにおける他のキャッシュ・ラインに関してそのキャッシュ・ラインに対する置換順序を表すLRU(最低使用頻度)フィールド318を含む。
The
更に図3に示されるように、L2キャッシュ230は、L2キャッシュ230のデータおよびコヒーレンシ・オペレーションを制御するキャッシュ・コントローラ330も含む。キャッシュ・コントローラ330は、関連するプロセッサ・コア200から受けたロード(LD)要求およびストア(ST)要求を独立して且つ同時にサービスするための複数の読取り・クレーム(Read-Claim : RC)・マシン332、並びに、関連するプロセッサ・コア200以外のプロセッサ・コアによって発行され且つローカル相互接続網114から「スヌープされた」リモート・メモリ・アクセス要求を独立して且つ同時にサービスするための複数のスヌープ(SN)・マシン334を含む。明らかなように、RCマシン332によるメモリ・アクセス要求のサービスは、データ・アレイ310内のメモリ・ブロックの置換または無効化を必要とすることがある。従って、キャッシュ・コントローラ330は、データ・アレイ310からのメモリ・ブロックの除去または書き戻しを管理する複数のCO(キャストアウト)マシン336も含む。
As further shown in FIG. 3, the
次に図4を参照すると、本発明に従ったL3キャッシュの実施例の更に詳細なブロック図が示される。図3および図4を比較するとわかるように、L2キャストアウトをバッファするためのビクティム・キャッシュとして働くL3キャッシュ232は、図3のL2キャッシュ230と同様に構成される。従って、L3キャッシュ232は、セット・アソシアティブ・データ・アレイ360、データ・アレイ360の内容のキャッシュ・ディレクトリ362、およびキャッシュ・コントローラ380を含む。
Referring now to FIG. 4, a more detailed block diagram of an embodiment of an L3 cache according to the present invention is shown. As can be seen by comparing FIGS. 3 and 4, the
キャッシュ・ディレクトリ362における各ディレクトリ・エントリは、対応する実アドレスの一部分を利用してデータ・アレイ360にストアされた特定のキャッシュ・ラインを指定するタグ・フィールド364、キャッシュ・ラインのコヒーレンシ状態を表す状態フィールド366、および同じ合同クラスにおける他のキャッシュ・ラインに関してそのキャッシュ・ラインに対する置換順序を表すLRU(最小使用頻度)フィールド368を含む。キャッシュ・コントローラ380は、図3を参照して説明したように、複数のスヌープ(SN)・マシン384および複数のキャストアウト(CO)・マシン386を含む。RCマシンの代わりに、キャッシュ・コントローラ380は、垂直方向に接続されたL2キャッシュ230のデータ要求をサービスする複数の読取り(RD)マシン382を含む。
Each directory entry in the
II.例示的オペレーション
次に図5を参照すると、図1のデータ処理システム100のローカル相互接続網114またはシステム相互接続網110を介した例示的オペレーションの時空線図が示される。相互接続網110、114は必ずしもバス型の相互接続網ではないが、1つまたは複数のローカル相互接続網114および/またはシステム相互接続網110を介して伝送されるオペレーションは本明細書では「バス・オペレーション」と呼ばれ、プロセッサ・コア200とそれ自身のキャッシュ階層内にあるキャッシュ・メモリとの間で伝送されるCPU要求とは区別される。
II. Exemplary Operation Referring now to FIG. 5, a space-time diagram of an exemplary operation through the
図示のバス・オペレーションは、L2キャッシュ230のRCマシン332またはI/Oコントローラ214のようなマスタ(M)400がローカル相互接続網114および/またはシステム相互接続網110を介して要求402を発行するときに開始する。要求402は、所望のアクセスのタイプを表すトランザクション・タイプおよびその要求によってアクセスすべきリソースを表すリソース識別子(例えば、実アドレス)を含むことが望ましい。要求の一般的なタイプは、下記の表1に示されるものを含むことが望ましい。
要求402は、L2キャッシュ230のスヌープ・マシン334、L3キャッシュ232のスヌープ・マシン384のようなスヌーパ412、およびメモリ・コントローラ206(図2)によって受取られる。一般に、若干の例外はあるものの、要求402を発行したRCマシン332と同じL2キャッシュ230におけるスヌープ・マシン334および接続されたL3キャッシュ232のスヌープ・マシン384は、要求402をスヌープしない(即ち、一般に、自己スヌーピングは存在しない)。というのは、要求402は、それが処理ユニット104によって内部的にサービスされ得ない場合にだけ、ローカル相互接続網114および/またはシステム相互接続網110を介して伝送されるからである。要求402を受取る各スヌーパ412は、少なくとも要求402に対するそのスヌーパの応答を表すそれぞれの部分的応答406を供給し得る。メモリ・コントローラ206は、例えば、そのメモリ・コントローラ206が要求アドレスに対して責任を負うのかどうか、およびそれが要求のサービスのために使用可能なリソースを有するかどうかに基づいて、供給すべき部分的応答406を決定する。L2またはL3キャッシュは、例えば、L2キャッシュ・ディレクトリの使用可能性、要求を処理すべきスヌープ・マシンの使用可能性、およびキャッシュ・ディレクトリにおける要求アドレスと関連するコヒーレンシ状態に基づいて、その部分的応答406を決定することが可能である。
スヌーパ412の部分的応答が、1つまたは複数の応答ロジック210のインスタンスによって段階的にまたは同時に論理的に結合され、要求402に対するシステム・ワイドの結合応答(CR)410を決定する。後述の範囲制限(scope restriction)次第で、応答ロジック210は、結合応答410を、ローカル相互接続網114および/またはシステム相互接続網110を介してバス・オペレーションのマスタおよびスヌーパに与えて、要求402に対するシステム・ワイドの応答(例えば、成功、失敗、再試行等)を表示させる。もし、CR410が要求402の成功を表すのであれば、CR410は、例えば、要求されたメモリ・ブロックのデータ・ソース、その要求されたメモリ・ブロックがキャッシュされるべきキャッシュ状態、および1つまたは複数のL2キャッシュ230またはL3キャッシュ232におけるその要求されたメモリ・ブロックを無効にする「クリーンアップ」オペレーションが必要であるかどうかを表すことも可能である。
The partial responses of
典型的には、結合応答410を受取ったことに応答して、1つまたは複数のマスタ400およびスヌーパ412は、要求402をサービスするために1つまたは複数のオペレーション実行する。これらのオペレーションは、データをマスタ400に供給すること、1つまたは複数のL2キャッシュまたはL3キャッシュにおいてキャッシュされたデータのコヒーレンシ状態を無効にするかまたは更新すること、キャストアウト・オペレーションを遂行すること、データをシステム・メモリ108に書き戻すこと等を含み得る。もし、要求402によって必要とされるのであれば、要求されたメモリ・ブロックまたはターゲット・メモリ・ブロックは、応答ロジック210による結合応答410の発生の前または後に、マスタ400にまたはマスタ400から伝送され得る。
Typically, in response to receiving the combined
以下の記述では、要求に対するスヌーパ412の部分的応答並びにその要求および/またはその結合応答に応答してスヌーパによって行われるオペレーションを、スヌーパが、要求によって指定された要求アドレスに関し、「コヒーレンシの最高ポイント(Highest Point of Coherency : HPC)」であるか、「コヒーレンシの最低ポイント(Lowest Point of Coherency : LPC)」であるか、またはそのいずれでもないかに関連して、説明することにする。LPCは、本明細書では、メモリ・ブロックに対するリポジトリとして作用するメモリ装置またはI/O装置として定義される。メモリ・ブロックに対するHPCが存在しない場合、LPCは、そのメモリ・ブロックの真のイメージを保持し、そのメモリ・ブロックの追加のキャッシュされたコピーを発生するための要求を許可または拒否する権限を有する。図1および図2のデータ処理システムの実施例における一般的な要求に関して、LPCは、参照メモリ・ブロックを保持するシステム・メモリ108のためのメモリ・コントローラ206であろう。HPCは、本明細書では、メモリ・ブロックの真のイメージ(LPCにおける対応するメモリ・ブロックと整合していてもよく或いは整合していなくてもよい)をキャッシュし且つメモリ・ブロックを修正するための要求を許可または拒否する権限を有する、一意的に識別された装置として定義される。記述的には、HPCは、メモリ・ブロックを修正しないオペレーションに応答して、要求元にメモリ・ブロックのコピーを供給することも可能である。従って、図1および図2のデータ処理システムの実施例における一般的な要求に対して、HPCは、存在するとすれば、L2キャッシュ230であろう。メモリ・ブロックに対するHPCを指定するために他の標識を利用することも可能であるが、本発明の好適な実施例は、下記の表2を参照して後述するように、L2キャッシュ230のL2キャッシュ・ディレクトリ312またはL3キャッシュ232のL3キャッシュ・ディレクトリ362における選択されたキャッシュ・コヒーレンシ状態を利用して、メモリ・ブロックに対するHPCを、それが存在する場合、指定する。
In the following description, the operations performed by the snooper in response to partial response, as well as the request and / or its combined
図5を更に参照すると、要求402において参照されたメモリ・ブロックに対するHPCが存在する場合にはそのHPCが、またはHPCの不存在の場合にはそのメモリ・ブロックのLPCが、保護ウィンドウ404aの期間中に要求402に応答して、メモリ・ブロックの所有権の移動を防止する責任を有することが望ましい。図5に示された例示的なシナリオでは、要求402の要求アドレスによって指定されたメモリ・ブロックに対するHPCであるスヌーパ412は、スヌーパ412がその部分的応答406を決定する時間からスヌーパ412が結合応答410を受取るまで延びている保護ウィンドウ404aの期間中に、マスタ400へのその要求されたメモリ・ブロックの所有権の移転を防止する。保護ウィンドウ404aの期間中、スヌーパ412は、同じ要求アドレスを指定する他の要求に対する部分的応答を供給することによって、所有権の移転を防止する。なお、その部分的応答は、所有権がマスタ400に成功裏に移転してしまうまで、他のマスタが所有権を得ることを防止する。マスタ400は、同様に、結合応答410の受け取りに続いて要求402において要求されたメモリ・ブロックの所有権を保護するために、保護ウィンドウ404bを開始する。
With further reference to FIG. 5, if there is an HPC for the memory block referenced in
III.データ配信ドメイン
通常のブロードキャスト・ベースのデータ処理システムは、ブロードキャスト通信を通してキャッシュ・コヒーレンシおよびデータ配信の両方を処理する。ブロードキャスト通信は、通常のシステムでは、システム相互接続網を通して少なくともそのシステムにおけるすべてのメモリ・コントローラおよびキャッシュ階層に伝送される。別のアーキテクチャおよび同様の規模のシステムと比べると、ブロードキャスト・ベースのシステムは、少ないアクセス待ち時間、並びに、共用メモリ・ブロックの良好なデータ処理およびコヒーレンシ管理の提供に有用である。
III. Data delivery domains normal broadcast-based data processing systems handle both cache coherency and data delivery through broadcast communication. Broadcast communications are transmitted in a typical system through the system interconnect network to at least all memory controllers and cache hierarchies in the system. Compared to other architectures and similar scale systems, broadcast-based system is less access latency, and are useful in providing good data processing and coherency management of the shared memory block.
ブロードキャスト・ベースのシステムは大きさが増大するので、システム相互接続網におけるトラフィック量は増加し、それは、システム相互接続網を介した通信のために更なる帯域幅を必要とするので、システムのコストがシステムの規模と共に急激に上昇することを意味する。即ち、m個のプロセッサ・コアを有し、各プロセッサ・コアの平均トラフィック量がn個のトランザクションであるシステムは、m*nのトラフィック量を有することになり、それは、ブロードキャスト・ベースのシステムにおけるトラフィック量が加算的ではなく乗算的に増加することを意味する。かなり大きな相互接続網の帯域幅を必要とするほかに、システム・サイズの増加は、アクセス待ち時間の増加という二次的効果を有する。例えば、データ読取りのアクセス待ち時間は、最悪の場合、要求されたメモリ・ブロックを共用コヒーレンシ状態(この状態から要求されたデータが配信され得る)で保持する最も遠い低レベル・キャッシュの結合応答待ち時間によって制限される。 As broadcast-based systems grow in size, the amount of traffic in the system interconnect network increases, which requires additional bandwidth for communication over the system interconnect network, thus reducing the cost of the system. Means that it will rise rapidly with the scale of the system. That is, a system with m processor cores and an average traffic volume of each processor core is n transactions will have m * n traffic volume, which is the same in a broadcast-based system. This means that the traffic volume increases in a multiply rather than additive manner. In addition to requiring significantly greater interconnect network bandwidth, increasing system size has the secondary effect of increasing access latency. For example, the access latency of the data read, the worst case, the combined response of the farthest lower level cache that holds at request has been shared memory block coherency state (data requested from this condition can be delivered) Limited by waiting time.
ブロードキャスト・ベースのシステムの利点を保持しながら、システム相互接続網の帯域幅要件およびアクセス待ち時間を少なくするために、データ処理システム100全体にわたって分散した複数のL2キャッシュは、「特別」共用コヒーレンシ状態で同じメモリ・ブロックのコピーを保持することを許容される。このようにすると、これらのキャッシュは、キャッシュ間のデータ介入(cache-to-cache data intervention)を使って、要求元のL2キャッシュ230にメモリ・ブロックを供給することが可能になる。データ処理システム100のようなSMPデータ処理システムにおいて、共用メモリ・ブロックに対する複数の並行で且つ分散されたソースを実装するためには、2つの問題点が扱われなければならない。第1に、前述の「特別」共用コヒーレンシ状態におけるメモリ・ブロックのコピーの作成を管理するルールが実装されなければならない。第2に、スヌーピングL2キャッシュ230が存在する場合、どのスヌーピングL2キャッシュが、例えば、バス読取りオペレーションまたはバスRWITMオペレーションに応答して、共用メモリ・ブロックを要求元のL2キャッシュ230に供給するのかを管理するルールがなければならない。
In order to reduce the bandwidth requirements and access latency of the system interconnect network while retaining the benefits of broadcast-based systems, multiple L2 caches distributed throughout the
本明細書では、これらの問題点が、いずれもデータ配信(sourcing)ドメインの実装を通して扱われる。詳しく云えば、SMPデータ処理システム内の各ドメイン(なお、ドメインは、データ要求に対する応答に参加する1つまたは複数の下位レベルの(例えば、L2またはL3)キャッシュを含むように定義される)は、特定のメモリ・ブロックを「特別」共用コヒーレンシ状態で保持する唯一のキャッシュを含むことを許容される。そのキャッシュが存在する場合、そのキャッシュは、バス読取りタイプ(例えば、READまたはRWITM)オペレーションが同じドメインにおける要求元のキャッシュによって開始されるとき、要求元のキャッシュに対してその要求されたメモリ・ブロックを配信する責任を負う。多くの異なるドメイン・サイズを定義することが可能であるが、図1のデータ処理システム100において、各処理ノード102(即ち、MCM)をデータ配信ドメインと見なすと、好都合である。表2を参照して、そのような「特別」共用コヒーレンシ状態(例えば、Sl およびSlg)の例を後述する。
In this specification , all of these issues are addressed through the implementation of the data sourcing domain. As far detail, each domain in the SMP data processing system (Note that domain, one or more lower level to participate in the response to the data request (e.g., is defined to include L2 or L3) cache) is is permissible to include only the cache that holds a particular memory block in the "special" shared coherency state. If the cache exists, the cache will request that the requested memory block for the requesting cache when a bus read type (eg, READ or RWITM) operation is initiated by the requesting cache in the same domain. Responsible for delivering . Although many it is possible to define different domain sizes, in a
IV.コヒーレンシ・ドメイン
前述のデータ配信ドメインの実装は、データ・アクセス待ち時間を改良するが、この機能強化は、システムの規模が増大するとき、m*nの乗算的なトラフィック量に対処しない。ブロードキャスト・ベースのコヒーレンシ機構を維持しながらトラフィック量を減らすために、本発明の好適な実施例は、前述のデータ配信ドメインのように、別々のコヒーレンシ・ドメインを形成する各処理ノード102によって複数のコヒーレンシ・ドメインを都合よく(しかし必要なことではないが)追加的に実装することが可能である。データ配信ドメインおよびコヒーレンシ・ドメインは、共存することが可能であるが、必ずしもそうである必要はない。データ処理システム100の例示的オペレーションを説明する便宜上、以下では、これらのコヒーレンシ・ドメインが、処理ノード102によって定義された境界を有するものと仮定する。
IV. Coherency domain
The implementation of the data delivery domains before mentioned, although improved data access latency, this enhancement is can the size of the system increases, does not address the multiplicative traffic volume of m * n. To reduce the amount of traffic while maintaining broadcast-based coherency mechanism, preferred embodiments of the present invention, prior to the data delivery domains mentioned, each processing node forming a separate coherency domain 10 2 the result (Although it is not however necessary) conveniently a multiple of coherency domain it is possible to implement additionally. Data delivery domains and coherency domains, it is possible to co-exist, need not name necessarily be the case. For convenience in describing the exemplary operation of the
コヒーレンシ・ドメインの実装は、すべてのコヒーレンシ・ドメインよりも少ないコヒーレンシ・ドメインによる参加によって要求がサービスされる場合、システム相互接続網110を介したドメイン間のブロードキャスト通信を制限することによって、システム・トラフィックを減少させる。例えば、処理ノード102aの処理ユニット104aが発行すべきバス読取りオペレーションを有するのであれば、処理ユニット104aは、最初に、他のコヒーレンシ・ドメイン(例えば、処理ノード102b)における参加者を除く、それ自身のコヒーレンシ・ドメイン(例えば、処理ノード102a)内の参加者全部に対し、バス読取りオペレーションをブロードキャストすることを選択し得る。オペレーションのマスタと同じコヒーレンシ・ドメイン内の参加者のみに伝送されるブロードキャスト・オペレーションは、本明細書では、「ローカル・オペレーション」として定義される。もし、ローカル・バス読取りオペレーションが処理ユニット104aのコヒーレンシ・ドメイン内でサービスされ得るならば、バス読取りオペレーションの更なるブロードキャストは行われない。しかし、ローカル・バス読取りオペレーションが処理ノード102aのコヒーレンシ・ドメイン内で単独ではサービスされ得ないということを、そのローカル・バス読取りオペレーションに対する部分的応答および結合応答が表すならば、ローカル・コヒーレンシ・ドメインに加えて、1つまたは複数の追加のコヒーレンシ・ドメインを含むようにブロードキャストの範囲を拡張することも可能である。
Implementation of coherency domain, if the request is serviced by the participation of low coherency domain than any coherency domain, by limiting the broadcast communication between domains via a
基本的な実装では、2つのブロードキャスト範囲、即ち、ローカル・コヒーレンシ・ドメインのみを含む「ローカル」範囲およびSMPデータ処理システムにおける他のすべてのコヒーレンシ・ドメインを含む「グローバル」範囲、が使用される。従って、本明細書では、SMPデータ処理システムにおけるすべてのコヒーレンシ・ドメインに伝送されるオペレーションは「グローバル・オペレーション」として定義される。重要な点として、ローカル・オペレーションまたはそれよりも更に拡張的な範囲のオペレーション(例えば、グローバル・オペレーション)がオペレーションのサービスのために使用されるかどうかに関係なく、キャッシュ・コヒーレンシは、SMPデータ処理システムにおけるすべてのコヒーレンシ・ドメインにわたって維持される。ローカル・オペレーションおよびグローバル・オペレーションの例は、米国特許出願番号11/055,697号の明細書に詳細に説明されている。 In a basic implementation , two broadcast ranges are used: a “local” range that includes only local coherency domains and a “global” range that includes all other coherency domains in the SMP data processing system. Accordingly, in this specification, all the operations that will be transmitted to a coherency domains in SMP data processing system is defined as a "Global Operations". Importantly, local operation or than more extensive range of the Operation (e.g., global operations) regardless of whether is used for operation of the service, the cache coherency, SMP Maintained across all coherency domains in the data processing system. Examples of local and global operations are described in detail in the specification of US patent application Ser. No. 11 / 055,697.
好適な実施例では、オペレーションの範囲は、一実施例では、1ビット・フラッグから構成し得るローカル/グローバル範囲標識(信号)により、バス・オペレーションにおいて表される。処理ユニット104における相互接続ロジック212は、ローカル相互接続網114を介して受取られたオペレーションを、そのオペレーションにおけるローカル/グローバル範囲標識(信号)の設定に基づいて、システム相互接続網110上に転送すべきかどうかを決定することが望ましい。
In a preferred embodiment, the range of operations, in one embodiment, the local / global scope indicator which may consist of 1-bit flag (signal), is represented in bus operation. The
V.ドメイン標識
不要なローカル・オペレーションの発行を制限することによって、操作待ち時間を減少させ且つローカル相互接続網上の追加の帯域幅を浪費しないようにするために、本発明は、関連するメモリ・ブロックのコピーがローカル・コヒーレンシ・ドメインの外でキャッシュされるかどうかを表す、メモリ・ブロックごとのドメイン標識を実装することが望ましい。図6は、本発明に従ったドメイン標識の第1実装例を示す。図6に示されるように、ダイナミック・ランダム・アクセス・メモリ(DRAM)において実装されるシステム・メモリ108は、複数のメモリ・ブロック500をストアする。システム・メモリ108は、各メモリ・ブロック500と関連して、そのメモリ・ブロック500における可能なエラーを訂正するために利用されるエラー訂正コード(ECC)502およびドメイン標識504をストアする。本発明の或る実施例では、ドメイン標識504は、特定のコヒーレンシ・ドメインを識別し(即ち、コヒーレンシ・ドメインまたはノードIDを指定し)得るが、以後の説明では、ドメイン標識504は、1ビットの標識であるものと仮定し、そして関連するメモリ・ブロック500がLPCとして作用するメモリ・コントローラ206と同じコヒーレンシ・ドメイン内にのみキャッシュされる場合は、(例えば、「ローカル」を表すために「1」に)セットされるものと仮定する。さもなければ、ドメイン標識504は(例えば、「グローバル」を表すために「0」に)リセットされる。「ローカル」を表すようにドメイン標識504を設定することは、「グローバル」を誤って設定しても如何なるコヒーレンシ・エラーも生じさせないが、オペレーションの不要なグローバル・ブロードキャストを生じさせ得るという点で、不正確に実装され得る。
V. Therefore to limit the issue of domain indicator unwanted local operation, in order not to waste additional bandwidth on the cause and local interconnect network reducing operation latency, the present invention is related to memory It is desirable to implement a per- memory block domain indicator that indicates whether a copy of the block is cached outside the local coherency domain. Figure 6 shows a first implementation example of a domain indicator in accordance with the present invention. As shown in FIG. 6,
オペレーションに応答してメモリ・ブロックを配信するメモリ・コントローラ206は、要求されたブロックと共に関連するドメイン標識504を伝送することが望ましい。
VI.例示的コヒーレンシ・プロトコル
好適な実施例では、L2キャッシュ230およびL3キャッシュ232は、周知のMESIプロトコルの変形を使用する。コヒーレンシ状態の集合体は、
(1)キャッシュがメモリ・ブロックに対するHPCであるかどうかの表示、
を提供することに加えて、次のような3つの属性を表示する。
(2)キャッシュされたコピーが、そのメモリ階層レベルにおけるキャッシュ間でユニークである(即ち、唯一のキャッシュされたコピーである)かどうかの表示、
(3)キャッシュが、メモリ・ブロックのコピーを要求のマスタに提供し得るかどうか、およびいつそれを提供し得るかの表示、
(4)メモリ・ブロックのキャッシュされたイメージが、LPCにおける対応するブロックと整合しているかどうかの表示。
これらの4つの属性は、下記の表2において要約されるコヒーレンシ・プロトコル状態において表される。
VI. In an exemplary coherency protocol preferred embodiment,
(1) an indication of whether the cache is an HPC for a memory block;
In addition , the following three attributes are displayed.
(2) the cached copy, its is unique among the cache in the memory hierarchy level (i.e., only a cached copy) whether display,
(3) cache, whether to provide a copy of the memory block to the master's request, and when the or may provide it display,
(4) An indication of whether the cached image of the memory block is consistent with the corresponding block in the LPC.
These four attributes are represented in the coherency protocol state summarized in Table 2 below.
図1を参照して説明したデータ処理システム100の実施例において、ドメイン標識は、関連するメモリ・ブロックと共にL2/L3キャッシュ230、232によって受取られ、任意選択的に、そのメモリ・ブロックと共にデータ・アレイ310、360にストアされ得る。この構成は、ドメイン標識のための単純化されたデータ・フローを許容するが、第1のL2キャッシュ230が、要求されたメモリ・ブロックを供給することによって異なるコヒーレンシ・ドメインにある第2のL2キャッシュ230のRWITMオペレーションに応答するとき、如何なる「グローバル」標識も、ローカル・コヒーレンシ・ドメインにおいてキャッシュされていない。従って、メモリ・ブロックがローカルにのみキャッシュされていることが知られているかどうかを決定するために、LPCをアクセスしなければならない。その結果、もし、メモリ・ブロックに対するHPCが、リモート・コヒーレンシ・ドメインにおける要求元からバスRWITMオペレーション(または、他のストレージ修正オペレーション)を受取るならば、システムは、要求されたメモリ・ブロックのキャッシュ・キャストアウトおよびバスRWITMオペレーションの再試行を含む再試行−プッシュ(retry-push)でもって応答する。明らかなように、再試行−プッシュ・オペレーションと関連する待ち時間および帯域幅利用を排除することが望ましい。
In an embodiment of a
ドメイン標識に対するアクセス待ち時間を少なくするために、Ig(Invalid Global : 無効グローバル)、Sg(Shared Global:共用グローバル)および Slg(Shared Local Global : 共用ローカル・グローバル)コヒーレンシ状態が提供される。Ig状態は、本明細書では、次の3つの状態を表すキャッシュ・コヒーレンシ状態として定義される。
(1)キャッシュ・アレイにおける関連するメモリ・ブロックが無効である、
(2)キャッシュ・ディレクトリにおけるアドレス・タグが有効である、
(3)アドレス・タグにより識別されたメモリ・ブロックの修正コピーが、リモート・コヒーレンシ・ドメインにおけるキャッシュに対して配信された。
Sg状態は、本明細書では、次の4つの状態を表すキャッシュ・コヒーレンシ状態として定義される。
(1)キャッシュ・アレイにおける関連するメモリ・ブロックが有効である、
(2)キャッシュ・ディレクトリにおけるアドレス・タグが有効である、
(3)アドレス・タグにより識別されたメモリ・ブロックの修正コピーが、リモート・コヒーレンシ・ドメインにおけるキャッシュに対して配信された。
(4)メモリ・ブロックのコピーが他のキャッシュに保持されていたし、依然として当該他のキャッシュに保持されていることも可能である。
Slg状態は、本明細書では、次の5つの状態を表すキャッシュ・コヒーレンシ状態として同様に定義される。
(1)キャッシュ・アレイにおける関連するメモリ・ブロックが有効である、
(2)キャッシュ・ディレクトリにおけるアドレス・タグが有効である、
(3)アドレス・タグにより識別されたメモリ・ブロックの修正コピーが、リモート・コヒーレンシ・ドメインにおけるキャッシュに対して配信された。
(4)メモリ・ブロックのコピーが他のキャッシュに保持されていたし、依然として当該他のキャッシュに保持されていることも可能である。
(5)キャッシュは、キャッシュ間のデータ介入によって、メモリ・ブロックのコピーをそのコヒーレンシ・ドメインにおけるマスタに対して配信する権限を有する。
Ig (Invalid Global) , Sg (Shared Global), and Slg (Shared Local Global) coherency states are provided to reduce access latency for domain indicators. The Ig state is defined herein as a cache coherency state that represents the following three states:
(1) it is invalid the associated memory block in the cache array,
(2) The address tag in the cache directory is valid.
(3) Address modified copy of the memory block identified by the tag, which is delivered to the cache at the remote coherency domain.
The Sg state is defined herein as a cache coherency state that represents the following four states.
(1) memory blocks associated in the cache array is valid,
(2) The address tag in the cache directory is valid.
(3) A modified copy of the memory block identified by the address tag was delivered to the cache in the remote coherency domain.
(4) a copy of the memory block plus Tei held in other cache, it is still held in the other cache Tei Rukoto are possible.
The Slg state is similarly defined herein as a cache coherency state that represents the following five states.
(1) memory blocks associated in the cache array is valid,
(2) The address tag in the cache directory is valid.
(3) A modified copy of the memory block identified by the address tag was delivered to the cache in the remote coherency domain.
(4) a copy of the memory block plus Tei held in other cache, it is still held in the other cache Tei Rukoto are possible.
(5) cache, the data intervention between the cache has the authority to distribute a copy of the memory block to the master at the coherency domain.
所与のメモリ・ブロックに対する Ig、Sg、および Slg を、そのメモリ・ブロックに対するLPCを含むコヒーレンシ・ドメイン内においてのみ、形成することが望ましいことがある。このような実施例では、或る機構(例えば、LPCによる部分的応答、およびその後の結合応答)は、要求されたメモリ・ブロックを配信するキャッシュに対し、LPCがそのローカル・コヒーレンシ・ドメイン内にあるということを表示するように実装されなければならない。LPCがローカルであるという表示の通信を支援しない他の実施例では、メモリ・ブロックがリモート・コヒーレンシ・ドメインに対して配信されるときに、Ig、Sg、およびSlg 状態が形成され、従って、Ig、Sg、および Slg が不正確に形成されることがある。 It may be desirable to form Ig, Sg, and Slg for a given memory block only within the coherency domain that contains the LPC for that memory block. In such an embodiment, one mechanism (e.g., partial response by LPC, and subsequent formation Go応 answer), compared caches to deliver the requested memory block, LPC its local coherency domain It must be implemented to indicate that it is within. In other embodiments not support the communication of the display that LPC is local, when the memory block is delivered to the remote coherency domain, Ig, Sg, and Slg state is made form, therefore, Ig, Sg, and Slg can be formed incorrectly.
幾つかのルールがIg、Sg、および Slg(「Xg」と総称)キャッシュ・エントリの選択および置換を管理する。第1に、キャッシュが Xg エントリを置換のためのビクティムとして選択すれば、Xgエントリのキャストアウトが(I または S エントリが選択されるときの場合とは異なって)行われる。第2に、Xg 状態のキャストアウトは、ローカル・オペレーションとして行われることが望ましく、或いは、グローバル・オペレーションとして行われるのであれば、キャストアウト・アドレスのリモートLPGによって無視される。もし、Xgエントリが、メモリ・ブロックに対するLPCと同じコヒーレンシ・ドメイン内にないキャッシュにおいて形成することを許容されるならば、LPCにおけるドメイン標識に対する更新は必要ない。第4に、Xg状態のキャストアウトは、ドメイン標識が(そのキャストアウト行うキャッシュにとってはローカルである場合)LPCに書き戻されるという、データレス・アドレス・オンリ・オペレーションとして行われることが望ましい。 Several rules govern the selection and replacement of Ig, Sg, and Slg ( collectively “X g ” ) cache entries. First, if selected as the victim for cache replacement and Xg entry, (unlike the case of when the I or S entries is selected) castout Xg entry is performed. Second, the castout in the Xg state is preferably done as a local operation or, if done as a global operation , is ignored by the remote LPG at the castout address. If, Xg entry, if is permissible to form in the cache is not in the same coherency domain as LPC for the memory block is not necessary update to the domain indicator in LPC. Fourth, cast out of Xg state, the domain indicator that (for the cache to perform the cast-out if a local) is written back to the LPC, it is preferably performed as a dataless address-only operation.
Xg状態を含むキャッシュ・ディレクトリ・エントリは潜在的に有用な情報を保有しているので、少なくとも幾つかの実装では、例えば、置換のためのビクティム・キャッシュ・エントリを選択するようにLRUフィールド318、368を評価するために利用される最低使用頻度(LRU)アルゴリズムを修正することによって、同じベース状態(例えば、SまたはI)を有する他のエントリよりもXg状態にあるエントリを優先的に維持することが望ましい。Xg ディレクトリ・エントリはキャッシュ内に維持されるので、そのようなエントリは、時間とともに「失効」することがあり得る。というのは、排他的アクセス要求の結果としてXg 状態の形成を生じさせたキャッシュが、メモリ・ブロックのアドレス・タグをXg状態で保持するキャッシュに通知することなく、そのメモリ・ブロックのコピーを割当て解除しまたは書き戻し得るからである。そのようなケースでは、ローカル・オペレーションの代わりにグローバル・オペレーションが発行されなければならないということを間違って表す「失効」したXg状態は、如何なるコヒーレンシ・エラーも生じさせないであろうが、そうでない場合にローカル・オペレーションを利用してサービスされ得る幾つかのオペレーションをグローバル・オペレーションとして発行させるだけであろう。そのような非効率の発生は、「失効」のサブgキャッシュ・エントリの最終的な置換によって期間を制限されるであろう。 Because cache directory entries including an Xg state owns potentially useful information, it is at least some implementations, for example, LRU field to select the victim cache entry for replacement by the least-recently-used (LRU) algorithm utilized for positive Osamu to assess 318,368, same base state (e.g., S, or I) an entry in the X g state than other entries having excellent It is desirable to maintain it in advance. Since Xg directory entries are maintained in the cache , such entries can "stale" over time. Because, as a result of the exclusive access request caused the formation of Xg state cache, without notifying the cache that holds the address tag of the memory block in Xg state, a copy of that memory block This is because it can be deallocated or written back . In such a case, Xg state was "stale" global operations represents the wrong that must be issued in place of the local operation, but will not cause any coherency errors, so It would only be issued a number of operations that may be served by using a local operation as a global operation when not. The occurrence of such inefficiencies will be limited in duration by the final replacement of the “stale” sub-g cache entry.
Xgコヒーレンシ状態の実装は、(Ig のケースのように)コヒーレンシ・ドメインにおいてキャッシュされているメモリ・ブロックの有効コピーがないときでも、コヒーレンシ・ドメインにおけるメモリ・ブロックに対するキャッシュされたドメイン標識を維持することによって通信効率を改良する。その結果、メモリ・ブロックに対するHPCは、リモート・コヒーレンシ・ドメインからの排他的アクセス要求(例えば、バスRWITMオペレーションまたはバスDClaimオペレーション)を再試行することなくおよびLPCへの要求されたメモリ・ブロックのプッシュを行うことなく、そのような要求をサービスすることができる。 Implementation of Xg coherency states, even when there is no valid copy of Tei Ru memory block is cached in the coherency domain (such as the case of Ig), maintaining the cached domain indicator for the memory block in the coherency domain the communication efficiency modifier for good by. As a result, the HPC for the memory block pushes the requested memory block to the LPC without retrying the exclusive access request (eg, bus RWITM operation or bus DClaim operation) from the remote coherency domain. Such requests can be serviced without having to
VII.例示的L2/L3コヒーレンシ状態遷移
次に図7を参照すると、本発明の好適な実施例に従ったL3キャッシュへのキャストインを行う例示的な方法の高レベルの論理的流れ図が示される。図7に示されたプロセスは、L3キャッシュ・コントローラ380によるオペレーションを含む。プロセスはブロック600で開始し、次に、ブロック602に進み、そこで、L3キャッシュ232(例えば、L3キャッシュ232a)のL3キャッシュ・コントローラ380は、ソースのL2キャッシュ230からキャッシュ・ラインが排出される結果として、それが接続されているL2キャッシュ230の1つ(例えば、L2キャッシュ230a)からキャストアウト要求を受取る。キャストアウト要求は、ターゲット・アドレス、キャストイン・キャッシュ・ライン、およびキャストイン・キャッシュ・ラインのキャッシュ・ディレクトリ状態を含む。L3キャッシュ・コントローラ380は、キャストイン・キャッシュ・ラインがそのデータ・アレイ360に保存されるかどうかを決定し、そうであれば、状態フィールド366におけるそのキャッシュ・ラインに対する適切なコヒーレンシ状態を決定するための置換ポリシでもってプログラムされる。
VII. Exemplary L2 / L3 Coherency State Transition Referring now to FIG. 7, a high level logical flow diagram of an exemplary method for performing a cast-in to an L3 cache in accordance with a preferred embodiment of the present invention is shown. The process illustrated in Figure 7, includes an operation by the
次に、ブロック604において、キャッシュ・コントローラ380は、ターゲット・アドレスに対するディレクトリ・エントリが既に存在するかどうかを決定するために、L3キャッシュ・ディレクトリ362のタグ・フィールド364を読取る。もし、そのターゲット・アドレスがタグ・フィールド364において見つからなければ、プロセスはブロック605に進み、そこで、キャッシュ・コントローラ380は、システム・メモリにキャストアウトされ得る置換のためのビクティム・キャッシュ・ラインを、そのビクティム・キャッシュのコヒーレンシ状態(例えば、Xg、M、T、またはTn)に従って、選択する。次に、プロセスはブロック606に進み、そこで、キャッシュ・コントローラ380は、ソースのL2キャッシュ230から受取ったキャストイン・キャッシュ・ラインをL3データ・アレイ360にストアし、キャッシュ・ディレクトリ362内に対応するキャッシュ・ディレクトリ・エントリを作成する。キャッシュ・コントローラ380は、キャストアウト要求において指定された状態に従って、ディレクトリ・エントリのコヒーレンシ状態フィールド366をセットする。しかる後、プロセスはブロック608において終了する。
Next, at
ブロック604に説明を戻す。もし、キャッシュ・コントローラ380が、キャストイン・キャッシュ・ラインのターゲット・アドレスに対するディレクトリ・エントリが既にL3キャッシュ・ディレクトリ362内に存在するということを決定すれば、プロセスはブロック610に進み、そこで、キャッシュ・コントローラ380は、表3および図8を参照して後述するように、キャストイン・ポリシに従ってキャストアウト要求を参照することにより、データ・アレイ360およびキャッシュ・ディレクトリ362を更新する。本発明の好適な実施例において実装されるように、キャストインは、次の2つの事項を指定する。即ち、
(1)キャストイン・キャッシュ・ラインがL3データ・アレイ360内にストアされるのか或いは廃棄されるのか、
(2)キャッシュ・ディレクトリ366における対応するエントリのコヒーレンシ状態。
Return description to block 604 . If the
(1) Whether the cast-in cache line is stored in the
(2) The coherency state of the corresponding entry in the
好適な実施例では、キャッシュ・ディレクトリ362においてエントリを既に有しているキャッシュ・ラインに対してキャストインを行うとき、L3キャッシュ232によって実装されるキャストイン・ポリシが下記の表3に要約される。表3は、L3キャッシュ・ディレクトリ362におけるキャッシュ・ラインの前の状態とキャストアウト要求において指定されたコヒーレンシ状態との関数として、状態フィールド366におけるその結果のコヒーレンシ状態を識別する。
このキャストイン・ポリシは、更に、L3データ・アレイ360内にストアされたメモリ・ブロックが維持されるべきかまたはソースのL2キャッシュ230から受けたキャストイン・キャッシュ・ラインによって上書きされるべきかを管理する。キャッシュ・ライン・データを上書きすべきかどうかの決定は、表3では下線付きの結果のコヒーレンシ状態によって示される。もし、結果のコヒーレンシ状態の遷移が下線付きであれば、キャストイン・キャッシュ・ラインは、前のキャッシュ・ライン・データに代わって、L3キャッシュ・アレイ360にストアされる。もし、その結果のコヒーレンシ状態の遷移が下線付きでなければ、キャッシュ・アレイ360内のキャッシュ・ラインは維持され、状態フィールド366におけるコヒーレンシ状態が、表3において識別されるその結果のコヒーレンシ状態に更新される。
This cast-in policy further determines whether memory blocks stored in the
表3のSg またはSlg 行を詳細に参照すると、L3キャッシュ・ディレクトリ362におけるキャッシュ・ラインの現在の状態がIn、Ig、またはIコヒーレンシ状態のいずれかであり、キャストイン・コヒーレンシ状態がSgまたはSlg である場合、そのキャストイン・コヒーレンシ状態は、状態フィールド366を更新するために利用される。更に、表3における下線付きのエントリによって表されるように、キャッシュ・ラインはキャッシュ・アレイ360内でキャストイン・データと置換される。もし、L3キャッシュ・ディレクトリ362におけるキャッシュ・ラインの現在の状態がSgであり、キャストイン・コヒーレンシ状態がSlg であれば、キャストイン・コヒーレンシ状態は、Slg における「l」が意味するように、キャッシュ間のデータ介入によりデータを配信するための機能が維持されるように、状態フィールド366を更新するために利用される。しかし、L3キャッシュ・ディレクトリ362におけるキャッシュ・ラインの現在の状態がSg状態であり、キャストイン・コヒーレンシ状態がSg であれば、L3キャッシュ232に対するコヒーレンシまたはデータ更新は行われない。同様に、L3キャッシュ・ディレクトリ362における現在の状態がSlgであり、キャストイン状態がSg またはSlg であれば、L3キャッシュ232に対するコヒーレンシ更新またはデータ更新は行われない。もし、L3キャッシュ・ディレクトリ362におけるキャッシュ・ラインの現在の状態がSまたはSlgであり、キャストイン・コヒーレンシ状態がSg またはSlg であれば、キャッシュ・コントローラ380は、ドメイン標識504が更新されるべきであるというキャッシュ表示を維持するために、状態フィールド366をSからSgに、またはSl からSlg に更新する。キャッシュ・コントローラ380は、キャストインSlg コヒーレンシ状態を受取ったことに応答して、S状態からSlg 状態への同様のコヒーレンシ状態の更新を行う。更に表3に示されるように、L2およびL3キャッシュの両者は、キャッシュ・ラインをSlx状態で含むことができず、それは、エラーが生じたことをSl-Slg ケースが表すということを意味する。もし、L3の現在の状態が、Tx およびMx 列に示されるように、TxまたはMx であれば、この情報は、L2からのキャストイン時にはいつもL3キャッシュ内に維持される。
Referring in detail to the Sg or Slg line in Table 3, the current state of the cache line in the
次に表3のSg およびSlg 列を参照すると、Tx コヒーレンシ状態のキャストインのケースでは、キャッシュ・コントローラ380は、データ・アレイ360へのデータ更新およびSgまたはSlg からTx へのコヒーレンシ状態の更新の両方を行う。キャッシュ・ディレクトリ362内に記録された前のコヒーレンシ状態がSlg である別のケースでは、キャストインを受けたことに応答して、データ更新またはコヒーレンシ状態の更新は行われない。キャッシュ・ディレクトリ362においてSgとマークされたキャッシュ・ラインに対して、キャッシュ・コントローラ380は、Sl またはSlg コヒーレンシ状態におけるキャストイン・キャッシュ・ラインに応答して、SgからSlg へのコヒーレンシ状態の更新を行うが、In、Ig、Sg、またはSコヒーレンシ状態におけるキャストイン・キャッシュ・ラインに対するデータの更新またはコヒーレンシ状態の更新を行わない。
When the next For Sg and Slg row of Table 3, the cast-in case of Tx coherency state,
次に図8を参照すると、本発明の好適な実施例に従ったキャストアウト要求を受けたことに応答して、L3キャッシュにおいてキャストイン・ポリシを実装する例示的方法の高レベルの論理的流れ図が示される。プロセスは、例えば、図7のブロック604における肯定的な決定に応答して、ブロック700において開始し、しかる後、ブロック704に進み、そこで、L3キャッシュ・コントローラ380は、ビクティム・キャッシュ・ラインの指定されたコヒーレンシ状態を決定するために、キャストアウト要求を調べる。更に、ブロック706において、L3キャッシュ・コントローラ380は、キャストイン・キャッシュ・ラインに対する存在するコヒーレンシ状態を決定するために、キャッシュ・ディレクトリ362における関連するエントリの状態フィールド366を読取る。次に、プロセスはブロック708に進み、そこで、L3キャッシュ・コントローラ380は、表3に要約されたキャストイン・ポリシに従って、L3キャッシュ・ディレクトリ362における適切な結果のコヒーレンシ状態を決定する。この決定は、例えば、L3キャッシュ232内の不揮発性メモリにおける状態テーブルを参照することによって行うことが可能である。別の実施例では、L3キャッシュ・コントローラ380は、ソフトウェアの実行を通してまたは集積回路により行われる計算を通して、ブロック708に示された決定を行うことが可能である。
Referring now to FIG. 8, in response to receiving a cast out request in accordance with a preferred embodiment of the present invention, the high-level logic of the L3 exemplary method that implements a cast-in policy in the cache A flow diagram is shown. The process, for example, in response to a positive determination at
次に、プロセスはブロック710に進み、そこで、キャッシュ・コントローラ380は、ブロック708で決定された結果のコヒーレンシ状態に基づいて、ビクティム・キャッシュ・ラインに対する既存のコヒーレンシ状態が更新されるかどうかを決定する。もし、現在の状態が更新されるべきものであれば、プロセスはブロック712に進み、そこで、キャッシュ・コントローラ380は、ブロック708で決定された結果のコヒーレンシ状態でもって、キャッシュディレクトリ362におけるコヒーレンシ状態を上書きする。プロセスは、ブロック712から、またはコヒーレンシ状態に対する更新が行われるべきでない場合にはブロック710から、判断ブロック714に進み、そこで、キャッシュ・コントローラ380は、L2キャッシュ230から受取ったキャストイン・キャッシュ・ラインがL3データ・アレイ360にストアされるべきであるということをキャストイン・ポリシが表すかどうかを決定する。そうであれば、プロセスはブロック716に進み、そこで、キャッシュ・コントローラ380は、キャストイン・キャッシュ・ラインをL3データ・アレイ360にストアすることによって、キャストイン・ターゲット・アドレスに対する前にストアされたキャッシュ・ラインを上書きする。ブロック716に続いて、またはデータ更新が行われるべきでない場合にはブロック714に続いて、プロセスはブロック718において終了する。
Next, the process seen diblock 710 binary, where, if a
表3並びに図7および図8を参照して説明したように、本発明に従ったSg およびSlg コヒーレンシ状態の実装は、L3キャストイン・オペレーションが行われる態様に影響を与えることに加えて、L2キャッシュによってL2コヒーレンシ状態で保持されたキャッシュ・ラインに関してヒットするCPU読取り要求またはCPU更新要求の受け取りに応答して、L2キャッシュ230のような上位レベルのキャッシュによって行われるオペレーションを単純化する。そのような動作シナリオ(図10に示される)に応じた、L2キャッシュ230における処理の例示的方法の理解を容易にするために、先ず、図9を参照して、L2キャッシュにおける従来の処理方法を説明することにする。
As described with reference to Table 3 and FIGS. 7 and 8 , the implementation of Sg and Slg coherency states in accordance with the present invention affects the manner in which L3 cast-in operations are performed in addition to L In response to receiving a CPU read request or CPU update request that hits for a cache line held in L2 coherency state by two caches, it simplifies operations performed by higher level caches such as
図9を参照すると、Ig コヒーレンシ状態でL2キャッシュに保持されたキャッシュ・ラインにおいてヒットするCPU読取り要求を受取ったことに応答して、従来のL2キャッシュにより行われるオペレーションを表すタイミング図が示される。図示のように、プロセスは、従来のL2キャッシュがその関連するプロセッサ・コアからCPU読取り要求を受取るときに開始する。CPU読取り要求を受取ったことに応答して、L2キャッシュは、参照番号802で示されるように、その要求をサービスするようにRCマシンを割り当て、参照番号804で示されるように、それのキャッシュ・ディレクトリのディレクトリ読取りを開始する。
Referring to FIG. 9, a timing diagram is shown representing operations performed by a conventional L2 cache in response to receiving a CPU read request that hits a cache line held in the L2 cache in an Ig coherency state. As illustrated, the process begins when a conventional L2 cache receives a CPU read request from its associated processor core. In response to receiving the CPU read request, the L2 cache assigns an RC machine to service the request, as indicated by
キャッシュ・ディレクトリに記録されたコヒーレンシ状態がIg であるという決定に応答して、従来のL2キャッシュは、コヒーレンシ状態が維持されるようにシステム・メモリにおけるドメイン標識を「グローバル」状態に更新するために、参照番号806で示されるようにCOマシンを割り当てる。RCおよびCOマシンのオペレーションの完了は非同期的であり、それは、これらのオペレーションが任意の順序で完了し得ることを意味する。もし、RCマシンが時間t0にそのオペレーションを完了し、COマシンが時間t1にそのオペレーションを完了すれば、コヒーレンシ解決ウィンドウ810が形成される。時間t0までに、RCマシンは、新たに獲得されたキャッシュ・ラインの状態を反映するようにディレクトリを(例えば、「共用」に)更新しているが、COマシンは、時間t1までキャストアウトに関して依然としてアクティブに作業を行っている。
In response to the determination that the coherency state recorded in the cache directory is Ig, the conventional L2 cache updates the domain indicator in system memory to a “global” state so that the coherency state is maintained. Assign a CO machine as indicated by
通常、相互接続網を介してスヌープされたオペレーションに対する部分的応答を決定するとき、L2キャッシュにおいてアクティブなマシンにより反映されたコヒーレンシ状態だけが考察される。しかし、COマシンにより処理中のものと同じキャッシュ・ラインをターゲットとするコヒーレンシ解決ウィンドウ期間中にスヌープされたオペレーションにとって、このポリシは不十分である。そのため、ディレクトリ状態およびアクティブなキャッシュアウト・マシンによって反映されたコヒーレンシ状態の両方とも、そのスヌープされたオペレーションに与えられるべき部分的応答を決定する場合に考慮されなければならない。そのように行うことができないと、要求元のL2キャッシュにおいて不正確なコヒーレンシ状態が形成され得ることになり、ひいてはコヒーレンシの喪失につながることにある。従って、コヒーレンシ解決ウィンドウ800の期間中にCOマシンによる処理中のものと同じキャッシュ・ラインに対するスヌープを処理するために、特別のコヒーレンシ解決ロジックがL2キャッシュ内に実装されなければならない。
Normally, when determining the partial response to the snooped operation through the interconnection network, only separated mirrored coherency state by the active machine is discussed in the L2 cache. However , this policy is inadequate for operations snooped during a coherency resolution window that targets the same cache line that is being processed by the CO machine . Therefore, both coherency state of being reflected by the directory state and active cash out machines, must be considered when determining the snooped partial response should be given to the operation. Failure to do so can result in an inaccurate coherency state in the requesting L2 cache, which in turn leads to loss of coherency. Therefore, in order to process a snoop to pair those with the same cache line being processed by the C O machines during the
L2キャッシュの設計、特に、図9に示された動作シナリオの下でのそのコヒーレンシ処理は、本発明に従ったSl およびSlg コヒーレンシ状態の実装によって簡易化される。次に、図10を参照すると、本発明に従ったL2キャッシュ230のような上位レベルのキャッシュにおけるコヒーレンシ処理の例示的方法の高レベルの論理的フローチャートが示される。図示のように、プロセスはブロック900で開始し、しかる後、ブロック902に進み、そこで、L2キャッシュ230は、その関連するプロセッサ・コア200からのCPU読取り要求またはCPU更新要求を受け取る。一般に要求のタイプを識別するトランザクション・タイプ(TTYPE)およびターゲット・アドレスを含む、CPU要求を受取ったことに応答して、ブロック904において、L2キャッシュ230のL2キャッシュ・コントローラ330は、ターゲット・アドレスに関してそのコヒーレンシ状態を決定するためにターゲット・アドレスを利用してそのキャッシュ・ディレクトリ312をアクセスし、CPU要求をサービスするためにRCマシン332をディスパッチする。ブロック906に示されるように、コヒーレンシ状態がIgであることをキャッシュ・コントローラ330が決定すれば、キャッシュ・コントローラ330は、ブロック920およびそれに続くブロックに示されるようにCPU要求をサービスする。もし、コヒーレンシ状態がIgとは異なるものであれば、キャッシュ・コントローラ330は、ブロック910に示された他の処理を利用してCPU要求をサービスする。
L2 cache design, in particular, the coherency process under the operating scenario shown in Figure 9, is mounted on the thus simplified Sl and Slg coherency state in accordance with the present invention. Referring now to FIG. 10, a logical flow chart of a high-level exemplary method coherency process in the higher level cache, such as
次にブロック920を参照すると、ディスパッチされたRCマシン332は、CPU要求のターゲット・メモリ・ブロックに対するコヒーレンシ状態がL2キャッシュ・ディレクトリ312においてIg であるという決定に応答して、TTYPEがCPU更新要求を表すかどうかを決定し、そうであれば、ブロック922において、ターゲット・メモリ・ブロックの排他的コピーを得るためにすべてのローカル相互接続網114およびグローバル相互接続網110上にグローバル範囲のバスRWITMオペレーションを発行する。RCマシン332は、メモリ・ブロックの更新されたコピーがリモート・コヒーレンシ・ドメイン内にあるという、Igコヒーレンシ状態により供給された不正確な表示に基づいて、グローバル・オペレーション範囲を選択する。RCマシン332は、ターゲット・メモリ・ブロックのコピーを受取ると、ブロック924に示されるように、そのターゲット・メモリ・ブロックをデータ・アレイ310内に配置し、L2キャッシュ・ディレクトリ312における対応するエントリのコヒーレンシ状態をIgからMに更新する。しかる後、RCマシン332は割当て解除され、プロセスはブロック940において終了する。
Referring now to block 920, the dispatched
ブロック920を再び参照する。もし、RCマシン332が、CPU要求のTTYPEから、それがCPU読取り要求であるということを決定すれば、プロセスはブロック930に進み、そこで、RCマシン332は、ターゲット・メモリ・ブロックのコピーを得るためにグローバル範囲のバスREADオペレーションを発行する。RCマシン332は、再び、そのメモリ・ブロックの更新されたコピーがリモート・コヒーレンシ・ドメインにあるというIg コヒーレンシ状態によって提供される不正確な表示に基づいて、グローバル・オペレーション範囲を選択する。要求されたメモリ・ブロックを受取ったことに応答して、RCマシン332は、ブロック932に示されるように、データ・アレイ310にそのメモリ・ブロックを配置し、キャッシュ・ディレクトリ312における対応するエントリの状態フィールド316をIg状態からSlg またはMe 状態の一方に更新する。特に、RCマシン332は、メモリ・ブロックがメモリ・コントローラ206によって配信され且つ他のキャッシュがメモリ・ブロックのコピーを保持していない場合には、コヒーレンシ状態をMeに更新し、そうでない場合には、コヒーレンシ状態をSlg に更新する。しかる後、RCマシン332は割当て解除され、プロセスはブロック940において終了する。
Reference is again made to block 920 . If,
明らかに、本発明に従ったSg およびSlg コヒーレンシ状態の実装は、少なくとも次の2つの点でコヒーレンシ処理を簡単にする。第1に、Ig 状態によって表されたドメイン標識のグローバル状態のキャッシュされた表示は、SgまたはSlg コヒーレンシ状態のいずれかによってキャッシュ・ディレクトリにおいて維持されることが可能であるので、CPU読取り要求に対するIgヒットの場合に、Ig コヒーレンシ状態をキャストアウトするためにどのCOマシン336も割り当てられない。従って、L2キャッシュ・コントローラ330内の有限なリソースの利用率が減少する。第2に、そのようなケースにおいてキャストアウトを行うためにどのCOマシン336も割り当てられないので、コヒーレンシ解決ウィンドウ800は形成されず、そのため、応答ロジック210は、スヌープされた要求に対する部分的応答の基礎となる適切なコヒーレンシ状態をキャッシュ・ディレクトリ312から直接的に決定することができる。その結果、応答ロジック210に実装されるロジックが単純化される。
Obviously, the implementation of Sg and Slg coherency state in accordance with the present invention, to simplify the least coherency process in two ways. First, since the display cached the global state of the domain indicator represented by Ig state, either by Sg or Slg coherency state can be maintained in the cache directory, C PU read request in the case of Ig hits to which
前述のように、本発明は、特定のメモリ・ブロックが複数のキャッシュに保持され得ることおよびそのメモリ・ブロックのコピーがキャッシュのローカル・コヒーレンシ・ドメインの外にあるという表示を行うために、Sg またはSlg のようなコヒーレンシ状態が利用される、データ処理のための改良された方法、装置、およびシステムを提供する。1つまたは複数のそのようなコヒーレンシ状態の実装は、共用の低レベル(例えば、L3)のキャッシュが、メモリ・ブロックのIgコピーにおけるキャストアウト・ヒットの場合にそのメモリ・ブロックのコピーを維持することを許容するという点で有利である。更に、1つまたは複数のそのようなコヒーレンシ状態の実装は、上位レベル(例えば、L2)のキャッシュの設計を簡素化し、コヒーレンシ処理を効率的にする。 As before mentioned, the present invention is, in order to perform an indication that a copy of it and that memory block specific memory block can be retained in the plurality of caches are outside the local coherency domain of the cache, Improved methods, apparatus, and systems for data processing are provided in which coherency states such as Sg or Slg are utilized. Implementation of one or more of such coherency state maintained cache low-level shared (e.g., L3) is a copy of the memory block in the case of a cast-out hit in Ig copy of memory block It is advantageous in that it is allowed to do. Furthermore, the implementation of one or more of such coherency state, the higher level (e.g., L2) simplifies cache design, the coherency process efficient.
好適な実施例を参照して本発明を詳細に開示および説明したが、本発明の真意および範囲から逸脱することなく、形態および細部における種々の変更を行い得ることは当業者には明らかであろう。 Although the invention has been disclosed and described in detail with reference to preferred embodiments, it will be apparent to those skilled in the art that various changes in form and detail can be made without departing from the spirit and scope of the invention. Let's go.
Claims (8)
前記キャッシュ・メモリのデータ・アレイにおいてキャッシュ・ラインをバッファするステップと、
前記キャッシュ・ラインが前記データ・アレイにおいて有効であること、前記キャッシュ・ラインが前記キャッシュ・メモリに非排他的に且つ前記システム・メモリにおける対応するメモリ・ブロックに関し修正されずに保持されること、前記第2コヒーレンシ・ドメインにおける別のキャッシュが前記キャッシュ・ラインのコピーを保持し得ること、そして前記第2コヒーレンシ・ドメインを含まない前記キャッシュ・ラインについての第1コヒーレンシ通信範囲を表す第1状態および前記第2コヒーレンシ・ドメインを含む前記キャッシュ・ラインについての第2コヒーレンシ通信範囲を表す第2状態を有する、前記第1コヒーレンシ・ドメインにおける前記ドメイン標識が前記第2状態に更新されなければならないこと、を表すために前記キャッシュ・メモリのキャッシュ・ディレクトリにおける状態フィールドをコヒーレンシ状態にセットするステップと、
を有する、方法。 Processing data in a multiprocessor data processing system including at least a first coherency domain and a second coherency domain, wherein the first coherency domain includes at least one processing unit, system memory, and cache memory A way to
Buffering cache lines in the data array of the cache memory;
The cache line is valid in the data array; the cache line is held non-exclusively in the cache memory and unmodified with respect to a corresponding memory block in the system memory ; it another cache before Symbol second coherency domain may retain a copy of the cache line, and a first state representative of a first coherency communication range for the cache line that does not contain the second coherency domain And the domain indicator in the first coherency domain has to be updated to the second state with a second state representing a second coherency communication range for the cache line including the second coherency domain. , to represent the And the step of setting the coherency state of the state field in the serial cache memory of the cache directory,
Having a method.
前記データ処理システムは前記下位レベルのキャッシュ・メモリに接続された複数の上位レベルのキャッシュ・メモリを含み、
前記コヒーレンシ状態は第1コヒーレンシ状態であり、
前記セットするステップは、前記複数の上位レベルのキャッシュ・メモリの1つから前記データ・アレイへの前記キャッシュ・ラインのキャストインに応答して、前記キャッシュ・ラインが無効であることを表す第2コヒーレンシ状態から前記第1コヒーレンシ状態に前記状態フィールドを更新するステップを有する、
請求項1に記載の方法。 The cache memory is a lower level cache memory;
The data processing system includes a plurality of upper level cache memories coupled to the lower level cache memory;
The coherency state is a first coherency state;
The setting step is responsive to a cache line cast-in from one of the plurality of higher level cache memories to the data array indicating a second invalid cache line. Updating the state field from a coherency state to the first coherency state;
The method of claim 1.
前記コヒーレンシ状態は第1コヒーレンシ状態であり、
前記キャッシュ・メモリは、前記相互接続網上に前記キャッシュ・ラインについての要求を発行するステップを更に有し、
前記セットするステップは、前記要求に対する応答として前記キャッシュ・ラインを受取ったことに応答して、前記キャッシュ・ラインが無効であること、および前記第2コヒーレンシ・ドメインにおける別のキャッシュが前記キャッシュ・ラインのコピーを保持していること、を表す第2コヒーレンシ状態から、前記第1コヒーレンシ状態に前記状態フィールドを更新するステップを有する、
請求項1に記載の方法。 The cache memory is connected to an interconnection network of the data processing system;
The coherency state is a first coherency state;
It said cache memory further comprises the step of issuing a request for said cache line on the interconnection network,
The setting step is responsive to receiving the cache line in response to the request, wherein the cache line is invalid, and another cache in the second coherency domain is the cache line. Updating the state field from a second coherency state that represents holding a copy of the state to the first coherency state;
The method of claim 1.
前記キャッシュ・ラインを前記データ・アレイから排出するために選択したことに応答して、前記第2コヒーレンシ・ドメインにおける別のキャッシュが前記キャッシュ・ラインのコピーを保持しているという表示のデータレス・キャストアウトを、前記キャッシュ・メモリが行うステップと、
を更に有する、請求項1に記載の方法。 Selecting the cache line to drain from the data array;
In response to selecting the cache line to drain from the data array, a dataless indication of an indication that another cache in the second coherency domain holds a copy of the cache line. A castout is performed by the cache memory; and
The method of claim 1, further comprising:
プロセッサ・コアと、
前記プロセッサ・コアに接続されたキャッシュ・メモリとを備え、
前記キャッシュ・メモリは、
キャッシュ・ラインを保持するデータ・アレイと、
前記キャッシュ・ラインと関連付けられ且つ状態フィールドを含むエントリを保持するキャッシュ・ディレクトリと、
キャッシュ・コントローラとを有し、
前記キャッシュ・コントローラは、
前記キャッシュ・ラインが前記データ・アレイにおいて有効であること、前記キャッシュ・ラインが前記キャッシュ・メモリに非排他的に且つ前記システム・メモリにおける対応するメモリ・ブロックに関し修正されずに保持されること、前記第2コヒーレンシ・ドメインにおける別のキャッシュが前記キャッシュ・ラインのコピーを保持し得ること、そして前記第2コヒーレンシ・ドメインを含まない前記キャッシュ・ラインについての第1コヒーレンシ通信範囲を表す第1状態および前記第2コヒーレンシ・ドメインを含む前記キャッシュ・ラインについての第2コヒーレンシ通信範囲を表す第2状態を有する、前記第1コヒーレンシ・ドメインにおける前記ドメイン標識が前記第2状態に更新されなければならないこと、を表すために前記状態フィールドをコヒーレンシ状態にセットする、
処理ユニット。 A processing unit for a multiprocessor data processing system including at least a first coherency domain and a second coherency domain, the first coherency domain comprising system memory and the processing unit;
A processor core;
A cache memory connected to the processor core ,
The cache memory is
A data array that holds cache lines; and
And cache directory containing an entry containing and status field associated with said cache line,
A cache controller,
The cache controller is
The cache line is valid in the data array; the cache line is held non-exclusively in the cache memory and unmodified with respect to a corresponding memory block in the system memory ; it another cache before Symbol second coherency domain may retain a copy of the cache line, and a first state representative of a first coherency communication range for the cache line that does not contain the second coherency domain And the domain indicator in the first coherency domain has to be updated to the second state with a second state representing a second coherency communication range for the cache line including the second coherency domain. , to represent the You set the serial state field to the coherency state,
Processing unit.
前記第1処理ユニットは、
プロセッサ・コアと、
前記プロセッサ・コアに接続されたキャッシュ・メモリとを備え、
前記キャッシュ・メモリは、
キャッシュ・ラインを保持するデータ・アレイと、
前記キャッシュ・ラインと関連付けられ且つ状態フィールドを含むエントリを保持するキャッシュ・ディレクトリと、
キャッシュ・コントローラとを有し、
前記キャッシュ・コントローラは、
前記キャッシュ・ラインが前記データ・アレイにおいて有効であること、前記キャッシュ・ラインが前記キャッシュ・メモリに非排他的に且つ前記システム・メモリにおける対応するメモリ・ブロックに関し修正されずに保持されること、前記第2コヒーレンシ・ドメインにおける別のキャッシュが前記キャッシュ・ラインのコピーを保持し得ること、そして前記第2コヒーレンシ・ドメインを含まない前記キャッシュ・ラインについての第1コヒーレンシ通信範囲を表す第1状態および前記第2コヒーレンシ・ドメインを含む前記キャッシュ・ラインについての第2コヒーレンシ通信範囲を表す第2状態を有する、前記第1コヒーレンシ・ドメインにおける前記ドメイン標識が前記第2状態に更新されなければならないこと、を表すために前記状態フィールドをコヒーレンシ状態にセットする、
データ処理システム。 Comprising at least interconnected cash coherent first coherency domain and a second coherency domain, said first coherency domain includes a first processing unit and domain indicator, said second coherency domain first A data processing system comprising two processing units, wherein a system memory is located in at least one of the first coherency domain and the second coherency domain ,
The first processing unit includes :
A processor core;
A cache memory connected to the processor core ,
The cache memory is
A data array that holds cache lines; and
And cache directory containing an entry containing and status field associated with said cache line,
A cache controller,
The cache controller is
The cache line is valid in the data array; the cache line is held non-exclusively in the cache memory and unmodified with respect to a corresponding memory block in the system memory ; it another cache before Symbol second coherency domain may retain a copy of the cache line, and a first state representative of a first coherency communication range for the cache line that does not contain the second coherency domain And the domain indicator in the first coherency domain has to be updated to the second state with a second state representing a second coherency communication range for the cache line including the second coherency domain. , to represent the You set the serial state field to the coherency state,
Data processing system.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/539,694 US8495308B2 (en) | 2006-10-09 | 2006-10-09 | Processor, data processing system and method supporting a shared global coherency state |
US11/539694 | 2006-10-09 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2008097598A JP2008097598A (en) | 2008-04-24 |
JP5116418B2 true JP5116418B2 (en) | 2013-01-09 |
Family
ID=39275855
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007247897A Expired - Fee Related JP5116418B2 (en) | 2006-10-09 | 2007-09-25 | Method for processing data in a multiprocessor data processing system, processing unit for multiprocessor data processing system, and data processing system |
Country Status (3)
Country | Link |
---|---|
US (1) | US8495308B2 (en) |
JP (1) | JP5116418B2 (en) |
CN (1) | CN101162442A (en) |
Families Citing this family (43)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8244983B2 (en) * | 2006-10-30 | 2012-08-14 | Hewlett-Packard Development Company, L.P. | Memory control systems with directory caches and methods for operation thereof |
US8266381B2 (en) | 2008-02-01 | 2012-09-11 | International Business Machines Corporation | Varying an amount of data retrieved from memory based upon an instruction hint |
US8255635B2 (en) * | 2008-02-01 | 2012-08-28 | International Business Machines Corporation | Claiming coherency ownership of a partial cache line of data |
US8108619B2 (en) | 2008-02-01 | 2012-01-31 | International Business Machines Corporation | Cache management for partial cache line operations |
US8140771B2 (en) * | 2008-02-01 | 2012-03-20 | International Business Machines Corporation | Partial cache line storage-modifying operation based upon a hint |
US8250307B2 (en) * | 2008-02-01 | 2012-08-21 | International Business Machines Corporation | Sourcing differing amounts of prefetch data in response to data prefetch requests |
US8117401B2 (en) * | 2008-02-01 | 2012-02-14 | International Business Machines Corporation | Interconnect operation indicating acceptability of partial data delivery |
US9035959B2 (en) | 2008-03-28 | 2015-05-19 | Intel Corporation | Technique to share information among different cache coherency domains |
US8327072B2 (en) | 2008-07-23 | 2012-12-04 | International Business Machines Corporation | Victim cache replacement |
US8209489B2 (en) * | 2008-10-22 | 2012-06-26 | International Business Machines Corporation | Victim cache prefetching |
US8347037B2 (en) * | 2008-10-22 | 2013-01-01 | International Business Machines Corporation | Victim cache replacement |
US8499124B2 (en) * | 2008-12-16 | 2013-07-30 | International Business Machines Corporation | Handling castout cache lines in a victim cache |
US8117397B2 (en) * | 2008-12-16 | 2012-02-14 | International Business Machines Corporation | Victim cache line selection |
US8225045B2 (en) * | 2008-12-16 | 2012-07-17 | International Business Machines Corporation | Lateral cache-to-cache cast-in |
US8489819B2 (en) | 2008-12-19 | 2013-07-16 | International Business Machines Corporation | Victim cache lateral castout targeting |
US8799587B2 (en) * | 2009-01-26 | 2014-08-05 | International Business Machines Corporation | Region coherence array for a mult-processor system having subregions and subregion prefetching |
US8949540B2 (en) | 2009-03-11 | 2015-02-03 | International Business Machines Corporation | Lateral castout (LCO) of victim cache line in data-invalid state |
US8285939B2 (en) * | 2009-04-08 | 2012-10-09 | International Business Machines Corporation | Lateral castout target selection |
US8347036B2 (en) * | 2009-04-09 | 2013-01-01 | International Business Machines Corporation | Empirically based dynamic control of transmission of victim cache lateral castouts |
US8327073B2 (en) * | 2009-04-09 | 2012-12-04 | International Business Machines Corporation | Empirically based dynamic control of acceptance of victim cache lateral castouts |
US8312220B2 (en) * | 2009-04-09 | 2012-11-13 | International Business Machines Corporation | Mode-based castout destination selection |
US8117390B2 (en) | 2009-04-15 | 2012-02-14 | International Business Machines Corporation | Updating partial cache lines in a data processing system |
US8140759B2 (en) | 2009-04-16 | 2012-03-20 | International Business Machines Corporation | Specifying an access hint for prefetching partial cache block data in a cache hierarchy |
US9189403B2 (en) * | 2009-12-30 | 2015-11-17 | International Business Machines Corporation | Selective cache-to-cache lateral castouts |
US20120297011A1 (en) * | 2009-12-30 | 2012-11-22 | Nokia Corporation | Intelligent Reception of Broadcasted Information Items |
US9767025B2 (en) | 2012-04-18 | 2017-09-19 | Qualcomm Incorporated | Write-only dataless state for maintaining cache coherency |
US9411595B2 (en) * | 2012-05-31 | 2016-08-09 | Nvidia Corporation | Multi-threaded transactional memory coherence |
CN102866923B (en) * | 2012-09-07 | 2015-01-28 | 杭州中天微系统有限公司 | High-efficiency consistency detection and filtration device for multiple symmetric cores |
CN103049422B (en) * | 2012-12-17 | 2013-11-27 | 浪潮电子信息产业股份有限公司 | Method for building multi-processor node system with multiple cache consistency domains |
US9208091B2 (en) * | 2013-06-19 | 2015-12-08 | Globalfoundries Inc. | Coherent attached processor proxy having hybrid directory |
CN103955435B (en) * | 2014-04-09 | 2017-01-11 | 上海理工大学 | Method for establishing access by fusing multiple levels of cache directories |
KR20170033407A (en) * | 2014-09-25 | 2017-03-24 | 인텔 코포레이션 | Reducing interconnect traffics of multi-processor system with extended mesi protocol |
US9740617B2 (en) * | 2014-12-23 | 2017-08-22 | Intel Corporation | Hardware apparatuses and methods to control cache line coherence |
US9639276B2 (en) * | 2015-03-27 | 2017-05-02 | Intel Corporation | Implied directory state updates |
US9619396B2 (en) * | 2015-03-27 | 2017-04-11 | Intel Corporation | Two level memory full line writes |
US10255184B2 (en) * | 2016-11-07 | 2019-04-09 | International Business Machines Corporation | Memory access architecture with coherence |
US10705957B1 (en) | 2018-12-19 | 2020-07-07 | International Business Machines Corporation | Selectively updating a coherence state in response to a storage update |
US10733102B2 (en) | 2018-12-19 | 2020-08-04 | International Business Machines Corporation | Selectively updating a coherence state in response to a storage update |
US10691599B1 (en) | 2018-12-19 | 2020-06-23 | International Business Machines Corporation | Selectively updating a coherence state in response to a storage update |
US11360906B2 (en) * | 2020-08-14 | 2022-06-14 | Alibaba Group Holding Limited | Inter-device processing system with cache coherency |
US11354239B2 (en) | 2020-09-18 | 2022-06-07 | Microsoft Technology Licensing, Llc | Maintaining domain coherence states including domain state no-owned (DSN) in processor-based devices |
CN112612727B (en) * | 2020-12-08 | 2023-07-07 | 成都海光微电子技术有限公司 | Cache line replacement method and device and electronic equipment |
US11599467B2 (en) * | 2021-05-27 | 2023-03-07 | Arm Limited | Cache for storing coherent and non-coherent data |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01175660A (en) | 1987-12-29 | 1989-07-12 | Matsushita Electric Ind Co Ltd | Multiprocessor system |
US6038644A (en) | 1996-03-19 | 2000-03-14 | Hitachi, Ltd. | Multiprocessor system with partial broadcast capability of a cache coherent processing request |
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 |
US6038651A (en) | 1998-03-23 | 2000-03-14 | International Business Machines Corporation | SMP clusters with remote resource managers for distributing work to other clusters while reducing bus traffic to a minimum |
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 |
JP3709322B2 (en) | 2000-03-10 | 2005-10-26 | 株式会社日立製作所 | Multidimensional crossbar network and parallel computer system |
US6754782B2 (en) | 2001-06-21 | 2004-06-22 | International Business Machines Corporation | Decentralized global coherency management in a multi-node computer system |
US6785774B2 (en) | 2001-10-16 | 2004-08-31 | International Business Machines Corporation | High performance symmetric multiprocessing systems via super-coherent data mechanisms |
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 |
US7702717B2 (en) | 2003-03-27 | 2010-04-20 | Oracle America, Inc. | Method and apparatus for controlling management agents in a computer system on a packet-switched input/output network |
US7526631B2 (en) | 2003-04-28 | 2009-04-28 | International Business Machines Corporation | Data processing system with backplane and processor books configurable to support both technical and commercial workloads |
GB2403560A (en) | 2003-07-02 | 2005-01-05 | Advanced Risc Mach Ltd | Memory bus within a coherent multi-processing system |
US7366844B2 (en) * | 2005-02-10 | 2008-04-29 | International Business Machines Corporation | Data processing system and method for handling castout collisions |
US7337280B2 (en) * | 2005-02-10 | 2008-02-26 | International Business Machines Corporation | Data processing system and method for efficient L3 cache directory management |
US7536513B2 (en) | 2005-03-31 | 2009-05-19 | International Business Machines Corporation | Data processing system, cache system and method for issuing a request on an interconnect fabric without reference to a lower level cache based upon a tagged cache state |
-
2006
- 2006-10-09 US US11/539,694 patent/US8495308B2/en not_active Expired - Fee Related
-
2007
- 2007-09-12 CN CNA2007101544154A patent/CN101162442A/en active Pending
- 2007-09-25 JP JP2007247897A patent/JP5116418B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN101162442A (en) | 2008-04-16 |
JP2008097598A (en) | 2008-04-24 |
US8495308B2 (en) | 2013-07-23 |
US20080086602A1 (en) | 2008-04-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5116418B2 (en) | Method for processing data in a multiprocessor data processing system, processing unit for multiprocessor data processing system, and data processing system | |
US7536513B2 (en) | Data processing system, cache system and method for issuing a request on an interconnect fabric without reference to a lower level cache based upon a tagged cache state | |
US7941611B2 (en) | Filtering snooped operations | |
US7747826B2 (en) | Data processing system and method for efficient communication utilizing an in coherency state | |
US7716428B2 (en) | Data processing system, cache system and method for reducing imprecise invalid coherency states | |
US7543116B2 (en) | Data processing system, cache system and method for handling a flush operation in a data processing system having multiple coherency domains | |
US8140770B2 (en) | Data processing system and method for predictively selecting a scope of broadcast of an operation | |
US7451277B2 (en) | Data processing system, cache system and method for updating an invalid coherency state in response to snooping an operation | |
US7290094B2 (en) | Processor, data processing system, and method for initializing a memory block to an initialization value without a cache first obtaining a data valid copy | |
US20070226426A1 (en) | Data processing system, cache system and method for precisely forming an invalid coherency state based upon a combined response | |
JP5004571B2 (en) | Data processing system, cache system, and method for accurately forming an invalid alignment state indicating broadcast coverage | |
US7237070B2 (en) | Cache memory, processing unit, data processing system and method for assuming a selected invalid coherency state based upon a request source | |
US7478201B2 (en) | Data processing system, cache system and method for passively scrubbing a domain indication | |
US7467262B2 (en) | Data processing system, cache system and method for scrubbing a domain indication in response to execution of program code | |
US7454578B2 (en) | Data processing system and method for predictively selecting a scope of broadcast of an operation utilizing a location of a memory | |
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 | |
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: 20100525 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120724 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120831 |
|
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: 20120925 |
|
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: 20121016 |
|
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: 20151026 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |