[go: up one dir, main page]

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 PDF

Info

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
Application number
JP2007247897A
Other languages
Japanese (ja)
Other versions
JP2008097598A (en
Inventor
ガイ・リン・ガスリー
ウィリアム・ジョン・スターク
デレク・エドワード・ウィリアムス
フィリップ・ジー・ウィリアムス
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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 JP2008097598A publication Critical patent/JP2008097598A/en
Application granted granted Critical
Publication of JP5116418B2 publication Critical patent/JP5116418B2/en
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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0817Cache consistency protocols using directory methods

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) data processing system 100. As shown, the data processing system 100 includes a plurality of processing nodes 102a, 102b for processing data and instructions. The processing node 102 is connected to a system interconnection network 110 for communicating addresses, data, and control information. The system interconnection network 110 can be implemented as, for example, a bus type interconnection network, an exchange type interconnection network, or a hybrid interconnection network.

図示の実施例では、各処理ノード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 processing units 104a-104d. Each processing unit is preferably implemented as a respective integrated circuit. The processing units 104 at each processing node 102 are connected to communicate with each other and the system interconnect network 110 by a local interconnect network 114. The local interconnect network 114 may be implemented using, for example, one or more buses or switches, like the system interconnect network 110.

図2に示されるように、各処理ユニット104は、それぞれのシステム・メモリ108に接続された統合メモリ・コントローラ(IMC)206を含む。システム・メモリ108に存在するデータおよび命令は、一般に、データ処理システム100内の任意の処理ノード102の任意の処理ユニット104におけるプロセッサ・コアがアクセスおよび修正することも可能である。本発明の別の実施例では、1つまたは複数のメモリ・コントローラ206(およびシステム・メモリ108)をシステム相互接続網110またはローカル相互接続網114に接続することも可能である。   As shown in FIG. 2, each processing unit 104 includes an integrated memory controller (IMC) 206 connected to a respective system memory 108. Data and instructions residing in system memory 108 can generally be accessed and modified by a processor core in any processing unit 104 of any processing node 102 in data processing system 100. In another embodiment of the present invention, one or more memory controllers 206 (and system memory 108) may be connected to the system interconnect network 110 or the local interconnect network 114.

図1のSMPデータ処理システム100が、相互接続ブリッジ、不揮発性記憶装置、ネットワークまたは付属装置等への接続のためのポート、のような多くの追加の図示されてないコンポーネントを含み得るということは当業者には明らかであろう。そのような追加のコンポーネントは、本発明の理解にとっては必要のないものなので図1には示されず、これ以上説明されない。しかし、本発明によって提供される機能強化が様々なアーキテクチャのキャッシュ・コヒーレントなデータ処理システムに適用可能であって、図1に示された汎用データ処理システム・アーキテクチャにまったく限定されないということは当然である。 1 that the SMP data processing system 100 of FIG. 1 may include many additional non- illustrated components such as interconnect bridges, non-volatile storage devices, ports for connection to networks or accessory devices, and the like. It will be apparent to those skilled in the art. Such additional components are not shown in FIG. 1 and will not be described further as they are not necessary for an understanding of the present invention. However, it should be understood that the enhancements provided by the present invention are applicable to cache-coherent data processing systems of various architectures and are not limited to the general purpose data processing system architecture shown in FIG. is there.

図2を参照すると、本発明に従っ例示的な処理ユニット104の更に詳細なブロック図が示される。図示の実施例では、単一の集積回路として都合よく実装し得る各処理ユニット104は、互いに独立して命令およびデータを処理するための4つのプロセッサ・コア200a〜200dを含む。1つの好適な実施例では、各プロセッサ・コア200は、複数(例えば、2つ)の同時的なハードウェア・スレッドの実行を支援する。 Referring to FIG. 2, a more detailed block diagram of an exemplary processing unit 104 according to the present invention is shown. In the illustrated embodiment, each processing unit 104 that may be conveniently implemented as a single integrated circuit includes four processor cores 200a-200d for processing instructions and data independently of one another. In one preferred embodiment, each processor core 200 supports the execution of multiple (eg, two) simultaneous hardware threads.

各プロセッサ・コア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 processor core 200 is supported by a multi-level volatile memory subsystem that has a shared system memory 108 at the lowest level and data residing in cacheable addresses. And two or more levels of cache memory at the upper level for caching instructions. In the illustrated embodiment, a cache memory hierarchy exists within each processor core 200 for each store-through level 1 (L1) cache (not shown) dedicated to that processor core, each processor core. Each store in level 2 (L2) cache 230 dedicated to 200 and an L3 victim cache 232 for buffering L2 castouts. In the illustrated embodiment, processor cores 200a and 200d share their respective L3 cache 232a, and processor cores 200b and 200c share their L3 cache 232b. Of course, in alternative embodiments, each of the processor cores 200 may have its own L3 cache 232. In at least some embodiments, including those shown in FIG. 2, L3 caches 232a, 232b are further interconnected to allow data exchange. This data exchange is such that one L3 cache 232 holds one of its cache lines to the other L3 in order to store data likely to be accessed by the processor core 200 in the cache hierarchy of the processing unit 104 for as long as possible. Including allowing castout to cache 232.

各処理ユニット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 processing unit 104 includes an instance of response logic 210 that implements part of a distributed coherency signaling mechanism that maintains cache coherency within the data processing system 100. In addition, each processing unit 104 includes an instance of interconnect logic 212 for managing communication between the processing unit 104 and the local interconnect network 114 and the system interconnect network 110. Each of L2 cache 230 and L3 cache 232 is connected to interconnect logic 212 to allow participation in data and coherency communications via interconnect networks 110 and 114 of FIG. Finally, each processing unit 104 includes an integrated I / O controller 214 that supports connection of one or more I / O devices, such as I / O device 216. I / O controller 214 may issue operations on local interconnect network 114 and / or system interconnect network 110 in response to requests by I / O device 216.

次に図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 processor core 200 and L2 cache 230 in the processing unit 104 of FIG. 2 is shown. As shown, the processor core 200 includes an instruction sequence unit (ISU) 300 for fetching and ordering instructions for execution, one or more execution units 302 for executing instructions, and L1. A cache 306 is included.

実行ユニット302は、データをメモリからロードさせるためにおよびメモリにストアさせるためにメモリ・アクセス命令(例えば、ロードおよびストア命令)を実行するロード・ストア・ユニット(LSU)304を含む。メモリ・サブシステムによるコヒーレンシ・プロトコルの実を通してそのようなメモリ・アクセス・オペレーションを行うとき、メモリ内容のコヒーレントなビューが維持される。 Execution unit 302 includes a load store unit (LSU) 304 that executes memory access instructions (eg, load and store instructions) to cause data to be loaded from and stored in memory. When performing such memory access operations through the implementation of a coherency protocol by the memory subsystem, coherent view of memory contents is maintained.

本発明によれば、分離したL1データおよび命令キャッシュを含み得るL1キャッシュ306は、他のプロセッサ・コア200に関するキャッシュ・コヒーレンシのポイントがL1キャッシュ306の下に置かれ、図示の実施例では、L2キャッシュ230に置かれるということを意味するストア・スルー・キャッシュとして実装される。従って、L1キャッシュ306は、それのキャッシュ・ラインに関して真のキャッシュ・コヒーレンシ状態を維持するのではなく、有効/無効ビットを維持するだけである。 In accordance with the present invention, the L1 cache 306, which may include separate L1 data and instruction caches, has cache coherency points for other processor cores 200 placed under the L1 cache 306, in the illustrated embodiment, L2 It is implemented as a store-through cache, which means that it is placed in the cache 230. Thus, the L1 cache 306 only maintains a valid / invalid bit rather than maintaining true cache coherency state for its cache line.

L2キャッシュ230は、命令およびデータのキャッシュ・ラインをストアするデータ・アレイ310、およびデータ・アレイ310のキャッシュ・ディレクトリ312を含む。通常のセット・アソシアティブ・キャッシュにおけるように、システム・メモリ108におけるメモリ・ブロックは、システム・メモリ(実)アドレス内の所定のインデックス・ビットを利用してデータ・アレイ310内の特定の合同クラスにマップされる。一実施例では、コヒーレンシ・システムに対する標準のメモリ・ブロックは128バイトのキャッシュ・ラインにセットされる。データ・アレイ310内にストアされた特定のメモリ・ブロックまたはキャッシュ・ラインがキャッシュ・ディレクトリ312に記録される。なお、キャッシュ・ディレクトリ312は、データ・アレイ310における各キャッシュ・ラインに対して1つのディレクトリ・エントリを含む。当業者には明らかであるように、キャッシュ・ディレクトリ312における各ディレクトリ・エントリは、少なくとも、対応する実アドレスの一部分を利用してデータ・アレイ310にストアされた特定のキャッシュ・ラインを指定するタグ・フィールド314、キャッシュ・ラインのコヒーレンシ状態を表す状態フィールド316、および同じ合同クラスにおける他のキャッシュ・ラインに関してそのキャッシュ・ラインに対する置換順序を表すLRU(最低使用頻度)フィールド318を含む。 The L2 cache 230 includes a data array 310 that stores instruction and data cache lines, and a cache directory 312 of the data array 310. As in a normal set associative cache, a memory block in system memory 108 is assigned to a specific congruence class in data array 310 using a predetermined index bit in the system memory (real) address. Mapped. In one embodiment, the standard memory block for a coherency system is set to a 128 byte cache line. A particular memory block or cache line stored in the data array 310 is recorded in the cache directory 312. Note that cache directory 312 includes one directory entry for each cache line in data array 310. As will be apparent to those skilled in the art, each directory entry in the cache directory 312 is a tag that specifies a particular cache line stored in the data array 310 utilizing at least a portion of the corresponding real address. It includes a field 314, a state field 316 representing the coherency state of the cache line, and an LRU (least recently used) field 318 representing the replacement order for that cache line with respect to other cache lines in the same congruence class

更に図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 L2 cache 230 also includes a cache controller 330 that controls the data and coherency operations of the L2 cache 230. Cache controller 330, a plurality of read-claims to service and simultaneously independently load received from the processor core 200 (LD) request and store (ST) requests the related (Read-Claim: RC) machine 332, and is issued by the related to the processor core 200 other than the processor core and "snooped" from local interconnect network 114 remote memory access requests independently and simultaneously to service A plurality of snoop (SN) machines 334. As will be apparent, servicing memory access requests by the RC machine 332 may require replacement or invalidation of memory blocks in the data array 310. Accordingly, the cache controller 330 also includes a plurality of CO (castout) machines 336 that manage the removal or write-back of memory blocks from the data array 310.

次に図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 L3 cache 232 that acts as a victim cache for buffering L2 castouts is configured similarly to the L2 cache 230 of FIG. Accordingly, the L3 cache 232 includes a set associative data array 360, a cache directory 362 for the contents of the data array 360, and a cache controller 380.

キャッシュ・ディレクトリ362における各ディレクトリ・エントリは、対応する実アドレスの一部分を利用してデータ・アレイ360にストアされた特定のキャッシュ・ラインを指定するタグ・フィールド364、キャッシュ・ラインのコヒーレンシ状態を表す状態フィールド366、および同じ合同クラスにおける他のキャッシュ・ラインに関してそのキャッシュ・ラインに対する置換順序を表すLRU(最小使用頻度)フィールド368を含む。キャッシュ・コントローラ380は、図3を参照して説明したように、複数のスヌープ(SN)・マシン384および複数のキャストアウト(CO)・マシン386を含む。RCマシンの代わりに、キャッシュ・コントローラ380は、垂直方向に接続されたL2キャッシュ230のデータ要求をサービスする複数の読取り(RD)マシン382を含む。 Each directory entry in the cache directory 362 represents a tag field 364 that specifies a particular cache line stored in the data array 360 using a portion of the corresponding real address, representing the coherency state of the cache line. It includes a status field 366 and an LRU (minimum frequency of use) field 368 representing the replacement order for that cache line with respect to other cache lines in the same congruence class. The cache controller 380 includes a plurality of snoop (SN) machines 384 and a plurality of castout (CO) machines 386 as described with reference to FIG. Instead of the RC machine, the cache controller 380 includes a plurality of read (RD) machines 382 that service data requests for the vertically connected L2 cache 230.

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 local interconnect network 114 or system interconnect network 110 of the data processing system 100 of FIG. 1 is shown. Although the interconnect networks 110, 114 are not necessarily bus-type interconnect networks, operations transmitted over one or more local interconnect networks 114 and / or system interconnect networks 110 are referred to herein as "buses". A distinction is made between CPU requests, referred to as “operations”, which are transmitted between the processor core 200 and the cache memory in its own cache hierarchy.

図示のバス・オペレーションは、L2キャッシュ230のRCマシン332またはI/Oコントローラ214のようなマスタ(M)400がローカル相互接続網114および/またはシステム相互接続網110を介して要求402を発するときに開始する。要求402は、所望のアクセスのタイプを表すトランザクション・タイプおよびその要求によってアクセスすべきリソースを表すリソース識別子(例えば、実アドレス)を含むことが望ましい。要求の一般的なタイプは、下記の表1に示されるものを含むことが望ましい。

Figure 0005116418
Bus operations illustrated issues a request 402 via the RC machine 332 or I / O controller master (M) 400 is a local interconnection network 114, such as 214 and / or system interconnect network 110 of the L2 cache 230 To start when. Request 402 preferably includes a transaction type representing the type of access desired and a resource identifier (eg, real address) representing the resource to be accessed by the request. Desirable general types of requests include those shown in Table 1 below.
Figure 0005116418

要求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を決定することが可能である。 Request 402 is received by snoop machine 412, such as snoop machine 334 in L2 cache 230, snoop machine 384 in L3 cache 232, and memory controller 206 (FIG. 2). In general, a few exceptions, the snoop machine 384 snoop machine 334 and connected L3 cache 232 in the same L2 cache 230 and RC machines 332 making the request 402 does not snoop request 402 (i.e. In general, there is no self-snooping). Since the request 402, only if it can not be internally service by the processing unit 104, since transmitted over the local interconnect network 114 and / or system interconnect network 110. Each snooper 412 that receives the request 402 may provide a respective partial response 406 that represents at least that snooper's response to the request 402. Partial memory controller 206, for example, based on whether the memory controller 206 whether responsible for the request address, and it has the resources available for the requested service, to be supplied Determine the dynamic response 406. L2 or L3 cache, for example, potential uses of the L2 cache directory, the availability of a processing request to be snoop machine, and based on the associated coherency status and request address in the cache directory, parts thereof The dynamic response 406 can be determined.

スヌーパ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 snooper 412 are logically combined in stages or simultaneously with one or more instances of response logic 210 to determine a system-wide combined response (CR) 410 for request 402. Depending range limits described below (scope restriction), the response logic 210, the combined response 410, giving the master and snoopers of bus operation via a local interconnection network 114 and / or system interconnect network 110, request 402 System wide response to (eg, success, failure, retry, etc.). If CR 410 represents the success of request 402, CR 410 may include, for example, the data source of the requested memory block, the cache state to which the requested memory block is to be cached, and one or more. It may also indicate whether a “clean up” operation is required to invalidate the requested memory block in the current L2 cache 230 or L3 cache 232.

典型的には、結合応答410を受取ったことに応答して、1つまたは複数のマスタ400およびスヌーパ412は、要求402をサービスするために1つまたは複数のオペレーション実行する。これらのオペレーションは、データをマスタ400に供給すること、1つまたは複数のL2キャッシュまたはL3キャッシュにおいてキャッシュされたデータのコヒーレンシ状態を無効にするかまたは更新すること、キャストアウト・オペレーションを遂行すること、データをシステム・メモリ108に書き戻すこと等を含み得る。もし、要求402によって必要とされるのであれば、要求されたメモリ・ブロックまたはターゲット・メモリ・ブロックは、応答ロジック210による結合応答410の発生の前または後にマスタ400にまたはマスタ400から伝送され得る。 Typically, in response to receiving the combined response 410, one or more master 400 and snoopers 412 performs one or more operations to service the request 402. These operations provide data to the master 400, invalidate or update the coherency state of data cached in one or more L2 or L3 caches, and perform castout operations. , Writing the data back to the system memory 108, etc. If, if required by the request 402, the requested memory block or target memory block, before or after the occurrence of the combined response 410 by response logic 210, is transmitted to the master 400 or from the master 400 obtain.

以下の記述では、要求に対するスヌーパ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 response snooper 412 to the request, the snooper is directed to request the address specified by the request, the highest point of "coherency (Highest Point of Coherency: HPC) " or " Lowest Point of Coherency (HPC) " Coherency: whether it is LPC) ", or in connection with the one or not even, to be explain. An LPC is defined herein as a memory device or I / O device that acts as a repository for memory blocks. If HPC for the memory block is not present, LPC holds the true image of the memory block, the permission or deny permission requests for generating a copy of the additional cache for that memory block Have. With respect to the general requirements in the embodiment of the data processing system of FIGS. 1 and 2, the LPC will be the memory controller 206 for the system memory 108 that holds the reference memory block. HPC is used herein to cache and modify a memory block's true image (which may or may not be consistent with the corresponding memory block in the LPC). has the authority to the request enable or deny, it is defined as a uniquely identified device. Descriptively, the HPC may provide a copy of the memory block to the requestor in response to an operation that does not modify the memory block. Thus, for a general requirement in the embodiment of the data processing system of FIGS. 1 and 2 , the HPC would be the L2 cache 230, if it exists. We are also possible to use other labels in order to specify the HPC for a memory block, but preferred embodiments of the present invention, so that to be described later with reference to Table 2 below, the L2 cache 230 L2 using the selected cache coherency states in the L3 cache directory 362 of cache directory 312 or L3 cache 232, a HPC for the memory block, when present, designates.

図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 request 402, the HPC of the memory block in the absence of HPC or the HPC of the memory block in the absence of HPC is the duration of the protection window 404a. It is desirable to be responsible for preventing transfer of ownership of the memory block in response to request 402 during. In the illustrated exemplary scenario in Figure 5, the snooper 412 is HPC for a memory block designated by the request address of the request 402, time or lath Nupa 412 snooper 412 determines its partial response 406 during the protection window 404a which extends to receive a combined response 410, to prevent the transfer of ownership of the requested memory block to the master 400. During the protection window 404a, snooper 412, by supplying a partial response to other requests that specify the same request address, to prevent the transfer of ownership. Incidentally, the partial response prevents the ownership until it has transferred successfully to the master 400, another master to gain ownership. Master 400 similarly initiates protection window 404b to protect ownership of the memory block requested in request 402 following receipt of merge response 410.

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 data processing system 100 are "special" shared coherency states. Is allowed to keep a copy of the same memory block. In this way, these caches with data intervention between the cache (cache-to-cache data intervention ), it is possible to supply the memory block to the requesting L2 cache 230. In SMP data processing system, such as data processing system 100, in order to implement and distributed source over scan by multiple concurrent to the shared memory blocks, two problems must be addressed. First, the rules that govern the creation of a copy of the memory block must be implemented in a "special" shared coherency state of before mentioned. Second, if there is a snooping L2 cache 230, it manages which snooping L2 cache will supply a shared memory block to the requesting L2 cache 230 in response to, for example, a bus read operation or a bus RWITM operation. There must be a rule to do.

本明細書では、これらの問題点がいずれもデータ配信(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 data processing system 100 of FIG. 1, each processing node 102 (i.e., MCM) that viewed the data delivery domains strike a good convenience. Examples of such “special” shared coherency states (eg, Sl and Slg) are described below with reference to Table 2.

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 data processing system 100, in the following, these coherency domains, assumed to have a boundary defined by the processing node 102.

コヒーレンシ・ドメインの実は、すべてのコヒーレンシ・ドメインよりも少ないコヒーレンシ・ドメインによる参加によって要求がサービスされる場合、システム相互接続網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 system interconnect network 110, the system Reduce traffic. For example, if the processing unit 104a of processing node 102a has issued should do bus read operation, the processing unit 104a, first, the other coherency domain (e.g., processing node 102b) excluding participants in, its own coherency domain (e.g., processing node 102a) against the participants all in, may choose to broadcast the bus read operation. Broadcast operation in which participants in the same coherency domain as operations master only Ru is transmitted is herein defined as "local operation". If a local bus read operation can be serviced within the coherency domain of processing unit 104a, no further broadcast of the bus read operation is performed. However, if the partial and combined responses to the local bus read operation indicate that the local bus read operation cannot be serviced alone within the coherency domain of processing node 102a, the local coherency domain In addition , it is possible to extend the scope of the broadcast to include one or more additional coherency domains.

基本的な実装では、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 interconnect logic 212 in the processing unit 104 should forward the operations received via the local interconnect network 114 onto the system interconnect network 110 based on the local / global range indicator (signal) setting in that operation. It is desirable to determine whether or not

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, system memory 108 which is implemented in dynamic random access memory (DRAM), stores a plurality of memory blocks 500. System memory 108, associated with each memory block 500, stores the Rue error correction code (ECC) 502 and domain indicator 504 is utilized to correct possible errors in the memory block 500. In some embodiments of the present invention, domain indicator 504 identifies a particular coherency domain (i.e., specify the coherency domain or node ID) obtained, but in the following description, domain indicator 504, 1 bit It was assumed to be a label, and if the associated memory block 500 is cached only in the same coherency domain as the memory controller 206 that acts as the LPC, (for example, to represent the "local" ones and assumptions that are) set to "1". Otherwise, the domain indicator 504 is reset (eg, “0” to represent “global”). Setting the domain indicator 504 to represent “local” will not cause any coherency error if setting “global” incorrectly, but may cause unnecessary global broadcast of the operation , that could be incorrectly implemented.

オペレーションに応答してメモリ・ブロックを配信するメモリ・コントローラ206は、要求されたブロックと共に関連するドメイン標識504を伝送することが望ましい。 Memory controller 206 for delivering the memory blocks in response to the operation, it is desirable to transmit the domain indicator 504 associated with the requested block.

VI.例示的コヒーレンシ・プロトコル
好適な実施例では、L2キャッシュ230およびL3キャッシュ232は、周知のMESIプロトコルの変形を使用する。コヒーレンシ状態の集合体は、
(1)キャッシュがメモリ・ブロックに対するHPCであるかどうかの表示、
を提供することに加えて、次のような3つの属性を表示する。
(2)キャッシュされたコピーがそのメモリ階層レベルにおけるキャッシュ間でユニークである(即ち、唯一のキャッシュされたコピーである)かどうかの表示、
(3)キャッシュがメモリ・ブロックのコピーを要求のマスタに提供し得るかどうか、およびいつそれを提供し得るかの表示、
(4)メモリ・ブロックのキャッシュされたイメージがLPCにおける対応するブロックと整合しているかどうかの表示。
これらの4つの属性は、下記の表2において要約されるコヒーレンシ・プロトコル状態において表される。

Figure 0005116418

Figure 0005116418

Figure 0005116418

Figure 0005116418
VI. In an exemplary coherency protocol preferred embodiment, L2 cache 230 and L3 cache 232 uses a variation of the MESI protocol circumferential intelligence. A collection of coherency states is
(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.
Figure 0005116418

Figure 0005116418

Figure 0005116418

Figure 0005116418

図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 data processing system 100 described with reference to FIG. 1, domain indicator is received by L2 / L3 cache 230 along with the memory blocks associated, optionally, the data with its memory block Stored in arrays 310, 360. This configuration allows the simplified data flow for domain indicator Suruga, first L2 cache 230, the requested second L2 of the memory blocks in different coherency domain by supplying when responding to RWITM operation of the cache 230, any "global" indicator, has not been cached in the local coherency domain. Therefore, in order to determine whether or not the child only cached in memory block Gallo Karu is known, it shall access Shinano the LPC. As a result, if, HPC for the memory block, if receive remote coherency bus RWITM operation that the requesting of domains (or other storage modify operation), the system caches the requested memory block Retry including retry cast out and bus RWITM operation - responds with a push (retry-push). As will be apparent, it is desirable to eliminate the latency and bandwidth utilization associated with retry- push operations.

ドメイン標識に対するアクセス待ち時間を少なくするために、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 L3 cache controller 380. The process begins at block 600, then, seen block 602 binary, where, L3 cache 232 (e.g., L3 Cache 232a) L3 cache controller 380 of the cache line Ru is discharged from the L2 cache 230 of the source as a result, one of the L2 cache 230 its Re is connected (e.g., L2 cache 230a) takes receiving a cast out request from. The castout request includes the target address, the cast-in cache line, and the cache directory state of the cast-in cache line. L3 cache controller 380 determines whether the cast-in cache line is stored in the data array 360, and if so, to determine the appropriate coherency state for the cache line in the status field 366 It is programmed with a replacement policy for.

次に、ブロック604において、キャッシュ・コントローラ380は、ターゲット・アドレスに対するディレクトリ・エントリが既に存在するかどうかを決定するために、L3キャッシュ・ディレクトリ362のタグ・フィールド364を読取る。もし、そのターゲット・アドレスがタグ・フィールド364において見つからなければ、プロセスはブロック605に進み、そこで、キャッシュ・コントローラ380、システム・メモリにキャストアウトされ得る置換のためのビクティム・キャッシュ・ラインを、そのビクティム・キャッシュのコヒーレンシ状態(例えば、Xg、M、T、またはTn)に従って、選択する。次に、プロセスはブロック606に進み、そこで、キャッシュ・コントローラ380は、ソースのL2キャッシュ230から受取ったキャストイン・キャッシュ・ラインをL3データ・アレイ360にストアし、キャッシュ・ディレクトリ362内に対応するキャッシュ・ディレクトリ・エントリを作成する。キャッシュ・コントローラ380は、キャストアウト要求において指定された状態に従ってディレクトリ・エントリのコヒーレンシ状態フィールド366をセットする。しかる後、プロセスはブロック608において終了する。 Next, at block 604, the cache controller 380 reads the tag field 364 of the L3 cache directory 362 to determine if a directory entry already exists for the target address. If Kere such found its target address in the tag field 364, the process seen diblock 605 binary, where, cache controller 380, victim cache line for replacement of the system memory may be cast out and the victim cache coherency state (e.g., Xg, M, T or Tn,) accordingly select. Next, the process seen diblock 606 binary, where, cache controller 380, stores the cast-in cache line received from L2 cache 230 of the source to the L3 data array 360, corresponding to the cache directory 362 Create a cache directory entry for Cache controller 380, in accordance with the state specified in the cast-out request, to set the coherency state field 366 of the directory entry. Thereafter, the process ends at block 608.

ブロック604に説明を戻す。もし、キャッシュ・コントローラ380が、キャストイン・キャッシュ・ラインのターゲット・アドレスに対するディレクトリ・エントリが既にL3キャッシュ・ディレクトリ362内に存在するということを決すれば、プロセスはブロック610に進み、そこで、キャッシュ・コントローラ380は、表3および図8を参照して後述するように、キャストイン・ポリシに従ってキャストアウト要求を参照することにより、データ・アレイ360およびキャッシュ・ディレクトリ362を更新する。本発明の好適な実施例において実されるように、キャストインは、次の2つの事項を指定する。即ち、
(1)キャストイン・キャッシュ・ラインがL3データ・アレイ360内にストアされるのか或いは廃棄されるのか、
(2)キャッシュ・ディレクトリ366における対応するエントリのコヒーレンシ状態。
Return description to block 604 . If the cache controller 380, if decision that exists in the directory entry is already L3 cache directory 362 for the target address of the cast-in cache line, the process seen block 610 binary, where , cache controller 380, as will be described later with reference to Table 3 and FIG. 8, by referring to a cast out request according key Yasutoin policy, to update the data array 360 and cache directory 362. As implemented in the preferred embodiment of the present invention, the cast-in specifies the following two matters. That is,
(1) Whether the cast-in cache line is stored in the L3 data array 360 or discarded
(2) The coherency state of the corresponding entry in the cache directory 366.

好適な実施例では、キャッシュ・ディレクトリ362においてエントリを既に有しているキャッシュ・ラインに対してキャストインを行うとき、L3キャッシュ232によって実されるキャストイン・ポリシが下記の表3に要約される。表3は、L3キャッシュ・ディレクトリ362におけるキャッシュ・ラインの前の状態とキャストアウト要求において指定されたコヒーレンシ状態との関数として状態フィールド366におけるその結果のコヒーレンシ状態を識別する。

Figure 0005116418
In a preferred embodiment, when performing the casting-in to the cache line that already has an entry in cache directory 362, cast-policy is implemented by the L3 cache 232 is summarized in Table 3 below The Table 3, as a function of the previous state and the coherency state specified in the cast-out request of the cache line in L3 cache directory 362, which identifies the results of coherency states in the state field 366.
Figure 0005116418

このキャストイン・ポリシは、更に、L3データ・アレイ360内にストアされたメモリ・ブロックが維持されるべきかまたはソースのL2キャッシュ230から受けたキャストイン・キャッシュ・ラインによって上書きされるべきかを管理する。キャッシュ・ライン・データを上書きすべきかどうかの決定は、表3では下線付きの結果のコヒーレンシ状態によって示される。もし、結果のコヒーレンシ状態の遷移が下線付きであれば、キャストイン・キャッシュ・ラインは、前のキャッシュ・ライン・データに代わってL3キャッシュ・アレイ360にストアされる。もし、その結果のコヒーレンシ状態の遷移が下線付きでなければ、キャッシュ・アレイ360内のキャッシュ・ラインは維持され、状態フィールド366におけるコヒーレンシ状態が、表3において識別されるその結果のコヒーレンシ状態に更新される。 This cast-in policy further determines whether memory blocks stored in the L3 data array 360 should be maintained or overwritten by cast-in cache lines received from the source L2 cache 230. to manage. The decision whether to overwrite the cache line data is indicated in Table 3 by the resulting coherency state underlined. If the transition of the results of the coherency state if underlined, cast-cache line, instead of the front of the cache line data are stored in L3 cache array 360. If the if the transition of the results of coherency state is not underlined, the cache line of the cache array 360 is maintained, updated coherency state in the state field 366, the result of the coherency states identified in Table 3 Is done.

表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 L3 cache directory 362 is either In, Ig, or I coherency state, and the cast-in coherency state is Sg or Slg. The cast-in coherency state is used to update the state field 366. In addition, cache lines are replaced with cast-in data in the cache array 360, as represented by the underlined entries in Table 3. If, is the current state of Sg of the cache line in L3 cache directory 362, if the cast-in coherency state is Slg, cast-in coherency state, as is meant by "l" in the Slg, cache It is used to update the status field 366 so that the function for delivering data is maintained by intervening data intervention. However, if the current state of the cache line in the L3 cache directory 362 is the Sg state and the cast-in coherency state is Sg, coherency or data update to the L3 cache 232 is not performed. Similarly, the current state of the L3 cache directory 362 is Slg, if cast-in state is Sg or Slg, coherency update or data updates to the L3 cache 232 is not performed. If the current state of the cache line in L3 cache directory 362 is S or Slg, if cast-in coherency state is Sg or Slg, cache controller 380, should domain indicator 504 is updated In order to maintain a cache indication that there is , the status field 366 is updated from S to Sg or from Sl to Slg. In response to receiving the cast-in Slg coherency state, the cache controller 380 performs a similar coherency state update from the S state to the Slg state. As further shown in Table 3, the L2 and L3 caches both can not include a cache line in Slx state, it means that represents Sl-Slg case that an error has occurred . If the current state of the L3, as indicated in Tx and Mx column, if Tx or Mx, this information at the time of casting-in from L2 is always maintained in the L3 cache.

に表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, cache controller 380, updates the data update and Sg or Slg to the data array 360 of the coherency state of the Tx Do both. In another case where the previous coherency state recorded in cache directory 362 is Slg , no data update or coherency state update occurs in response to receiving a cast-in. For cache lines marked Sg in the cache directory 362, the cache controller 380 updates the coherency state from Sg to Slg in response to a cast-in cache line in the Sl or Slg coherency state. Do, but do not update data or update coherency state for cast-in cache lines in In, Ig, Sg, or S coherency states.

次に図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 block 604 of FIG. 7, begins at block 700 and thereafter, see block 704 binary, where, L3 cache controller 380, the victim cache line to determine the designated coherency state, Ru examined cast out request. Furthermore, at block 706, the L3 cache controller 380, in order to determine the coherency state exists for the cast-in cache line reads the status field 366 of the entry associated in the cache directory 362. Next, the process seen block 708 binary, where, L3 cache controller 380, according to the cast-in policy is summarized in Table 3, that determine the coherency state of the appropriate results in L3 cache directory 362. This determination can be made, for example, by referring to a state table in the nonvolatile memory in the L3 cache 232. In another embodiment, L3 cache controller 380, through calculations performed by or through an integrated circuit executing the software, it is possible to make a decision indicated by block 708.

次に、プロセスはブロック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 cache controller 380, based on the coherency state of the results determined at block 708, the existing coherency state for the victim cache line is updated To decide. If, as long as should the current state is updated, the process seen diblock 712 binary, where, cache controller 380 with a coherency state of the results determined at block 708, the coherency state of the cache directory 362 Is overwritten. The process from block 710. If it is not to the block 712, or updates to the coherency state is performed, see decision block 714 binary, where, cache controller 380, cast-cash received from L2 cache 230 Determine if the cast-in policy indicates that the line should be stored in the L3 data array 360. If so , the process proceeds to block 716 where the cache controller 380 was previously stored for the cast-in target address by storing the cast-in cache line in the L3 data array 360. Overwrite cache line. Following block 716, or following block 714 if no data update is to be made, the process ends at block 718.

表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 L2 cache 230. Such was depending on operating scenario (as shown in FIG. 10), in order to facilitate understanding of the exemplary method of processing in the L2 cache 230, first, with reference to FIG. 9, a conventional in L 2 Cache A processing method will be described.

図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 reference numeral 802, and its cache, as indicated by reference numeral 804. Start directory reading of the directory.

キャッシュ・ディレクトリに記録されたコヒーレンシ状態が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 reference numeral 806. Completion of RC and CO machine operations is asynchronous, meaning that these operations can be completed in any order. If completed its operation to the RC machine time t0, if CO machine completes its operations in time t1, the coherency resolution window 810 is formed. Until the time t0, RC machine, the directory to reflect the state of the newly acquired cache line (for example, in "shared"), but has been updated, CO machine, cast out until the time t1 Is still actively working on .

通常、相互接続網を介してスヌープされたオペレーションに対する部分的応答を決定するとき、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 coherency resolution window 800, special coherency resolution logic must be implemented in the L2 cache.

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 L2 cache 230 in accordance with the present invention is shown. As illustrated, the process begins at block 900 and thereafter, see block 902 binary, where, L2 cache 230, Ru receive a CPU read request or CPU update request from the processor core 200 its associated. Generally it includes a transaction type (TTYPE) and target address identifying the request type, in response to receiving the CPU request, at block 904, the L2 cache controller 330 of the L2 cache 230, the target to access the cache directory 312 using the target address in order to determine its coherency state with respect to the address, it dispatches the RC machine 332 in order to service the CPU request. As shown in block 906, if the cache controller 330 determines that the coherency state is Ig, the cache controller 330 services the CPU request as shown in block 920 and subsequent blocks. If the coherency state is different from Ig, the cache controller 330 uses other processing shown in block 910 to service the CPU request.

次にブロック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 RC machine 332 responds to the determination that the coherency state for the target memory block of the CPU request is Ig in the L2 cache directory 312 and TTYPE issues a CPU update request. And if so, at block 922, a global range bus RWITM operation on all local interconnect networks 114 and global interconnect networks 110 to obtain an exclusive copy of the target memory block. the you issue. RC machines 332, that updated copy of the memory block is in a remote coherency domain, based on inaccurate display supplied by the Ig coherency state to select the global operations range. When the RC machine 332 receives a copy of the target memory block, it places the target memory block in the data array 310 as shown in block 924 and the corresponding entry in the L2 cache directory 312. Update the coherency state from Ig to M. Thereafter, the RC machine 332 is deallocated and the process ends at block 940.

ブロック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, RC machines 332, the TTYPE the CPU requests, if decision that it is a CPU read request, the process seen diblock 930 binary, where, RC machine 332, a copy of the target memory block issue the bus READ operation of the global range in order to obtain. RC machine 332 is again updated copy of that memory block is based on an inaccurate indication provided by the Ig coherency state that a remote coherency domain, selects the global operations range. In response to receiving the requested memory block, the RC machine 332 places the memory block in the data array 310, as indicated by block 932, and the corresponding entry in the cache directory 312. Update the status field 316 from the Ig state to one of the Slg or Me states. In particular, RC machine 332, when the memory block is when and other caches are delivered by the memory controller 206 does not hold a copy of the memory block, updates the coherency state to Me, is not the case , Update the coherency state to Slg. Thereafter, the RC machine 332 is deallocated and the process ends at block 940.

明らかに、本発明に従っ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 CO machine 336 not assigned to cast out the Ig coherency state. Therefore, the utilization rate of the finite resource in the L2 cache controller 330 is reduced. Second, since any CO machine 336 not assigned to perform cast out in cases like its coherency resolution window 800 is not formed, therefore, the response logic 210, partial response to the snooped request Ru can be determined directly to the appropriate coherency state to be the foundation from the cache directory 312. As a result, the logic implemented in the response logic 210 is simplified.

述のように、本発明は、特定のメモリ・ブロックが複数のキャッシュに保持され得ることおよびそのメモリ・ブロックのコピーがキャッシュのローカル・コヒーレンシ・ドメインの外にあるという表示を行うために、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.

本発明に従ったキャッシュ・コヒーレントな対称マルチプロセッサ(SMP)データ処理システムの実施例の高レベル・ブロック図である。1 is a high level block diagram of an embodiment of a cache coherent symmetric multiprocessor (SMP) data processing system according to the present invention. FIG. 本発明の好適な実施例に従った例示的な処理ユニットのブロック図である。FIG. 3 is a block diagram of an exemplary processing unit in accordance with a preferred embodiment of the present invention. 本発明の好適な実施例に従ったプロセッサ・コアおよびL2キャッシュの実施例の更に詳細なブロック図である。FIG. 3 is a more detailed block diagram of an embodiment of a processor core and L2 cache in accordance with a preferred embodiment of the present invention. 本発明の好適な実施例に従ったL3キャッシュの実施例の更に詳細なブロック図である。FIG. 4 is a more detailed block diagram of an embodiment of an L3 cache according to a preferred embodiment of the present invention. 本発明の好適な実施例に従ったデータ処理システムのローカルまたはシステム相互接続網における例示的なオペレーションの時空間表示図である。FIG. 2 is a space-time representation of an exemplary operation in a local or system interconnect network of a data processing system in accordance with a preferred embodiment of the present invention. 本発明の好適な実施例に従ったドメイン標識を含むシステム・メモリを示す概略図である。FIG. 3 is a schematic diagram illustrating a system memory including a domain indicator according to a preferred embodiment of the present invention. 本発明の好適な実施例に従ったL3キャッシュ・メモリへのキャストインを行う例示的な方法の高レベルの論理的流れ図である。3 is a high level logical flow diagram of an exemplary method for performing a cast-in to L3 cache memory in accordance with a preferred embodiment of the present invention. 本発明の好適な実施例に従ったキャストインに応答してL3キャッシュ・メモリにおいてコヒーレンシ状態遷移方法を実する例示的な方法の高レベルの論理的流れ図である。Is a high level logic flow diagram of an exemplary method that implements a coherency state transition method in L3 cache memory in response to the cast-in in accordance with a preferred embodiment of the present invention. スヌープされた読取りタイプ・オペレーションに対する適切なコヒーレンシ応答を決定するためにキャッシュ・ディレクトリを調べなければならないコヒーレンシ解決ウィンドウを、Ig コヒーレンシ状態におけるキャストアウト・ヒットが作成する従来オペレーション・フローを示すタイミング図である。A timing diagram showing a conventional operation flow in which a castout hit in an Ig coherency state creates a coherency resolution window that must be consulted in the cache directory to determine an appropriate coherency response for a snooped read type operation. is there. 本発明の好適な実施例に従ったL2キャッシュ・メモリによって実されるコヒーレンシ状態遷移方法の例示的方法の高レベルの論理的流れ図である。Is a logical flow diagram of a high-level exemplary method of L2 coherency state transition method is implemented by the cache memory in accordance with a preferred embodiment of the present invention.

Claims (8)

少なくとも第1コヒーレンシ・ドメインおよび第2コヒーレンシ・ドメインを含み、該第1コヒーレンシ・ドメインが少なくとも1つの処理ユニット、システム・メモリ、およびキャッシュ・メモリを含む、マルチプロセッサ・データ処理システムにおいて、データを処理する方法であって、
前記キャッシュ・メモリのデータ・アレイにおいてキャッシュ・ラインをバッファするステップと、
前記キャッシュ・ラインが前記データ・アレイにおいて有効であること、前記キャッシュ・ラインが前記キャッシュ・メモリに非排他的に且つ前記システム・メモリにおける対応するメモリ・ブロックに関し修正されずに保持されること、前記第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コヒーレンシ・ドメインにおける別のキャッシュが前記キャッシュ・ラインのコピーを保持しているという前記表示を受取ったことに応答して、前記システム・メモリのメモリ・コントローラが、前記キャッシュ・ラインについての前記ドメイン標識を更新するステップを更に含む、請求項4に記載の方法。 In response to receiving the indication that another cache in the second coherency domain holds a copy of the cache line, the memory controller of the system memory is responsible for the cache line. further comprising the method of claim 4 updating the domain indicator. 前記コヒーレンシ状態は、更に、前記キャッシュ・メモリが、キャッシュ間データ介入によって前記キャッシュ・ラインのコピーを配信するための前記第1コヒーレンシ・ドメインにおける権限を有するということを表す、請求項1に記載の方法。 Said coherency state is further said cache memory indicates that they have the authority of the first coherency domain for delivering a copy of the cache line with data intervention between the cache, according to claim 1 the method of. 少なくとも第1コヒーレンシ・ドメインおよび第2コヒーレンシ・ドメインを含むマルチプロセッサ・データ処理システムのための処理ユニットであって、該第1コヒーレンシ・ドメインはシステム・メモリおよび該処理ユニットを含み、
プロセッサ・コアと、
前記プロセッサ・コアに接続されたキャッシュ・メモリとを備え、
前記キャッシュ・メモリは、
キャッシュ・ラインを保持するデータ・アレイと、
前記キャッシュ・ラインと関連付けられ且つ状態フィールドを含むエントリを保持するキャッシュ・ディレクトリと、
キャッシュ・コントローラとを有し、
前記キャッシュ・コントローラは、
前記キャッシュ・ラインが前記データ・アレイにおいて有効であること、前記キャッシュ・ラインが前記キャッシュ・メモリに非排他的に且つ前記システム・メモリにおける対応するメモリ・ブロックに関し修正されずに保持されること、前記第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コヒーレンシ・ドメインを少なくとも備え、該第1コヒーレンシ・ドメインは第1処理ユニットおよびドメイン標識を含み、該第2コヒーレンシ・ドメインは第2処理ユニットを含み、システム・メモリが前記第1コヒーレンシ・ドメインおよび前記第2コヒーレンシ・ドメインの少なくとも1つに配置されている、データ処理システムであって、
前記第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.
JP2007247897A 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 Expired - Fee Related JP5116418B2 (en)

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)

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

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

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