JP2001043133A - Method and system for maintaining cache coherency for write-through-store operation in multiprocessor system - Google Patents

Method and system for maintaining cache coherency for write-through-store operation in multiprocessor system

Info

Publication number
JP2001043133A
JP2001043133A JP2000180625A JP2000180625A JP2001043133A JP 2001043133 A JP2001043133 A JP 2001043133A JP 2000180625 A JP2000180625 A JP 2000180625A JP 2000180625 A JP2000180625 A JP 2000180625A JP 2001043133 A JP2001043133 A JP 2001043133A
Authority
JP
Japan
Prior art keywords
write
cache
store operation
system bus
processor
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.)
Pending
Application number
JP2000180625A
Other languages
Japanese (ja)
Inventor
Meranio Nunetsu Jose
ホセ・メラニオ・ヌネツ
Albert Petersen Thomas
トーマス・アルバート・ピーターセン
Janette Sullivan Marie
マリー・ジャネット・サリバン
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
Priority to US33651699A priority Critical
Priority to US09/336516 priority
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2001043133A publication Critical patent/JP2001043133A/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING; 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/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING; 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/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • G06F13/4072Drivers or receivers

Abstract

PROBLEM TO BE SOLVED: To provide an improved method for maintaining cache coherency by snooping a cache, which is not interposed between a processor and a system bus, while using the data address of write-through-store operation. SOLUTION: A processor core performs the bus arbitration of a local bus for transmitting the address of write-through-store operation to the cache of a low-order level (152). The address is compared with the tag arrangement in the cache of the low-order level (154). From the compared result, the presence/absence of hit in the cache of the low-order level is investigated (156). The write-through-store operation is dispatched to the system bus (160). The address is snooped in a non-passing cache (164). The presence/absence of a retry response from the snoop is investigated (168) and when the snoop does not return retry, the system bus is released (172).

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【発明の属する技術分野】本発明は、概してデータ処理
のための改良された方法およびシステムに関し、特に、
マルチプロセッサ・データ処理システムにおいてキャッ
シュ・コヒーレンシを維持するための改良された方法お
よびシステムに関する。より詳細に述べれば、本発明
は、マルチプロセッサ・システムにおいてライトスルー
・ストア・オペレーションでキャッシュ・コヒーレンシ
を維持するための方法およびシステムに関する。
FIELD OF THE INVENTION The present invention relates generally to improved methods and systems for data processing, and more particularly to:
An improved method and system for maintaining cache coherency in a multiprocessor data processing system. More particularly, the present invention relates to a method and system for maintaining cache coherency for write-through store operations in a multiprocessor system.

【0002】[0002]

【従来の技術】現在の高性能データ処理システム・アー
キテクチャの殆どは、メモリ階層内のキャッシュ・メモ
リのレベルが複数レベルに設定されている。キャッシュ
は、データ処理システムにおいて使用され、頻繁に使用
するデータに対するアクセスについて、システム・メモ
リに関連するアクセス時間より高速なアクセスを提供
し、もって全体的なパフォーマンスを向上させる。キャ
ッシュ・レベルは、一般に、アクセスの待ち時間が漸進
的に長くなる形で用いられる。すなわち、より小さく、
より高速なキャッシュが記憶階層内のプロセッサ(1な
いしは複数)により近いレベルで使用され、より大き
く、より遅いキャッシュがシステム・メモリにより近い
レベルで使用される。
BACKGROUND OF THE INVENTION Most modern high performance data processing system architectures have multiple levels of cache memory in a memory hierarchy. Caches are used in data processing systems to provide faster access to frequently used data than access time associated with system memory, thereby improving overall performance. The cache level is generally used in such a way that the latency of access becomes progressively longer. That is, smaller,
Faster caches are used at a level closer to the processor (s) in the storage hierarchy, and larger, slower caches are used at a level closer to system memory.

【0003】従来の対称マルチプロセッサ(SMP)デ
ータ処理システムにおいては、各プロセッサがすべて共
通の命令セットおよび通信プロトコルを使用し、類似の
ハードウェア・アーキテクチャを有し、かつ、おおむね
類似のメモリ階層構造が与えられるという点を見る限
り、概してすべてのプロセッサが同一であると言える。
たとえば、従来のSMPデータ処理システムとして、シ
ステム・メモリ、それぞれがプロセッサおよび1ないし
は複数のレベルのキャッシュ・メモリを含む複数の処理
エレメント、および処理エレメントを互いに、かつシス
テム・メモリに接続するシステム・バスを含むシステム
が考えられる。この種のシステムの多くは、2ないしは
それ以上のプロセッサの間で共有されるキャッシュ・メ
モリのレベルを少なくとも1つ有している。SMPデー
タ処理システムにおいて有効な実行結果を得るために
は、コヒーレントなメモリ階層構造を維持すること、す
なわち、いずれのプロセッサから見てもメモリの内容が
同一になることが重要である。
In conventional symmetric multiprocessor (SMP) data processing systems, each processor all uses a common instruction set and communication protocol, has a similar hardware architecture, and generally has a similar memory hierarchy. Is generally given that all processors are identical.
For example, a conventional SMP data processing system includes a system memory, a plurality of processing elements, each including a processor and one or more levels of cache memory, and a system bus connecting the processing elements to each other and to the system memory. A system including Many such systems have at least one level of cache memory that is shared between two or more processors. In order to obtain an effective execution result in the SMP data processing system, it is important to maintain a coherent memory hierarchical structure, that is, to have the same memory contents from any processor.

【0004】キャッシュ・コヒーレンシは、スヌーピン
グを介して維持されるべく設計されているが、「リトラ
イ」応答がプロセッサのオペレーションにエラーを導く
可能性を否定できない。具体的に述べれば、ライトスル
ー・ストアのための書き込み更新が実行され、それに続
いて新しいデータを読み出すロードが許可された場合、
同じライトスルー・ストアがリトライされると問題を生
じる。
[0004] Although cache coherency is designed to be maintained through snooping, it cannot be ruled out that a "retry" response could lead to errors in the operation of the processor. Specifically, if a write update for a write-through store is performed, and subsequently a load to read new data is allowed,
A problem arises when the same write-through store is retried.

【0005】このため、マルチプロセッサ・システムに
おいてキャッシュ・コヒーレンシを維持する方法、特
に、リトライの可能性があるライトスルー・ストアにつ
いて、キャッシュ・コヒーレンシを維持し得る方法を提
供することが望まれている。
[0005] Therefore, it is desired to provide a method for maintaining cache coherency in a multiprocessor system, particularly for a write-through store that may possibly be retried, capable of maintaining cache coherency. .

【0006】[0006]

【発明が解決しようとする課題】以上を鑑み本発明は、
データ処理のための改良された方法およびシステムを提
供することを1つの目的とする。
In view of the above, the present invention provides
It is an object to provide an improved method and system for data processing.

【0007】本発明の別の目的は、マルチプロセッサ・
データ処理システムにおいてキャッシュ・コヒーレンシ
を維持するための改良された方法およびシステムを提供
することである。
Another object of the present invention is to provide a multiprocessor system.
It is an object of the present invention to provide an improved method and system for maintaining cache coherency in a data processing system.

【0008】本発明のさらに別の目的は、マルチプロセ
ッサ・システムにおけるライトスルー・ストア・オペレ
ーションに関してキャッシュ・コヒーレンシを維持する
ための改良された方法およびシステムを提供することで
ある。
It is yet another object of the present invention to provide an improved method and system for maintaining cache coherency for write-through store operations in a multiprocessor system.

【課題を解決するための手段】[Means for Solving the Problems]

【0009】これらの目的は、以下説明するようにして
達成される。本発明の方法およびシステムは、データ処
理システムにおけるライトスルー・ストア・オペレーシ
ョンでキャッシュ・コヒーレンシを維持するために使用
可能であり、それにおいてデータ処理システムは、メモ
リ階層構造を介してメモリ・バスに接続される複数のプ
ロセッサを備え、メモリ階層構造は複数のキャッシュ・
レベルを含む。
[0009] These objects are achieved as described below. The method and system of the present invention can be used to maintain cache coherency in a write-through store operation in a data processing system, wherein the data processing system connects to a memory bus via a memory hierarchy. With multiple processors and a memory hierarchy with multiple caches
Including levels.

【0010】ライトスルー・ストア・オペレーション
は、個々のプロセッサからシステム・バスに渡される
が、そのとき前記複数のキャッシュ・レベルのキャッシ
ュであって、当該プロセッサとシステム・バスの間に介
挿されているキャッシュを通過する。このライトスルー
・ストア・オペレーションは、介挿されたキャッシュに
含まれ、ライトスルー・ストア・オペレーションに関し
てキャッシュのヒットが得られたいずれかのキャッシュ
において実行される。前記複数のキャッシュ・レベルの
キャッシュのうち、当該プロセッサとシステム・バスの
間に介挿されていないすべてのキャッシュは、このライ
トスルー・ストア・オペレーションと同一のデータ・ア
ドレスに対する他のあらゆる命令の完了前にこのライト
スルー・ストア・オペレーションが異常なく完了される
べく、このライトスルー・ストア・オペレーションが成
功するまで、すなわち、このライトスルー・ストア・オ
ペレーションについて、システム・バスにメモリ階層構
造のためのキャッシュ・コヒーレンシ・ポイントがセッ
トされるまで、このライトスルー・ストア・オペレーシ
ョンのアドレスを用いたシステム・バスの外部スヌープ
・パスからのスヌープが行われる。
[0010] Write-through store operations are passed from individual processors to the system bus, when the caches at the plurality of cache levels are interposed between the processors and the system bus. Pass through the cache. This write-through store operation is included in the interposed cache and is executed in any cache that has a cache hit for the write-through store operation. Of the caches of the plurality of cache levels, all caches not interposed between the processor and the system bus perform completion of any other instruction to the same data address as the write-through store operation. Before the write-through store operation is successfully completed, ie, until the write-through store operation is successful, i.e., for the write-through store operation, the system bus is used for the memory hierarchy. Until the cache coherency point is set, a snoop from the external snoop path of the system bus using the address of this write-through store operation is performed.

【0011】上記をはじめその他の本発明の目的、特徴
ならびに利点は、以下の詳細な説明から明らかになろ
う。
[0011] These and other objects, features and advantages of the present invention will become apparent from the following detailed description.

【0012】新規性があると考えられる本発明の特徴
は、特許請求の範囲に述べたとおりである。しかしなが
ら、本発明そのもの、その好ましい実施態様をはじめそ
のさらなる目的ならびに利点に対するより良い理解に資
するため、以下、添付図面を参照して実施例を詳細に説
明する。
The features of the invention which are believed to be novel are as set forth in the appended claims. However, in order to contribute to a better understanding of the present invention itself, its preferred embodiments, as well as further objects and advantages thereof, examples will now be described in detail with reference to the accompanying drawings.

【0013】[0013]

【発明の実施の形態】ここで図面、特に本発明に従った
マルチプロセッサ・データ処理システムを表すハイレベ
ル・ブロック図を示した図2を参照する。これに示され
ているように、データ処理システム8は、多数のプロセ
ッサ・コア10a〜10nおよびそれと対をなす同数の
プロセッサ・コア11a〜11nを備えているが、好ま
しくはそのそれぞれをInternational B
usiness Machines Corporat
ion(インターナショナル・ビジネス・マシンズ・コ
ーポレーション)から入手可能なPowerPC系プロ
セッサの1つとする。プログラム命令を実行するために
使用される従来のレジスタ、命令フロー・ロジックおよ
び実行ユニットに加えて、各プロセッサ・コア10a〜
10nおよび11a〜11nは、それぞれに関連付けら
れたオンボード・レベル1(L1)キャッシュ12a〜
12nおよび13a〜13nを含んでおり、そのそれぞ
れは、それぞれに関連付けられたプロセッサによってア
クセスされる可能性の高い命令およびデータを一時的に
ストアする。図2においては、L1キャッシュ12a〜
12nおよび13a〜13nを、命令およびデータ(以
下これらを併せて単にデータと呼ぶ)をともにストアす
る一体化されたキャッシュとして示したが、当業者であ
れば、L1キャッシュ12a〜12nおよび13a〜1
3nのそれぞれが命令用キャッシュおよびデータ用キャ
ッシュに2分されたものとして実装可能であることを理
解されよう。
DETAILED DESCRIPTION OF THE INVENTION Reference is now made to the drawings, and more particularly to FIG. 2, which shows a high-level block diagram representing a multiprocessor data processing system according to the present invention. As shown therein, the data processing system 8 includes a number of processor cores 10a to 10n and an equal number of processor cores 11a to 11n, which are preferably paired with each other.
usiness Machines Corporation
ion (International Business Machines Corporation). In addition to conventional registers, instruction flow logic and execution units used to execute program instructions, each processor core 10a-
10n and 11a-11n have on-board level 1 (L1) caches 12a-12 associated therewith, respectively.
12n and 13a to 13n, each of which temporarily stores instructions and data likely to be accessed by their associated processors. In FIG. 2, the L1 caches 12a to
Although 12n and 13a-13n have been shown as an integrated cache that stores both instructions and data (hereinafter collectively simply referred to as data), those skilled in the art will appreciate that L1 caches 12a-12n and 13a-1
It will be appreciated that each of the 3n can be implemented as a bisection into an instruction cache and a data cache.

【0014】待ち時間を最小に抑えるためにデータ処理
システム8は、さらに1ないしは複数に及ぶキャッシュ
・メモリのレベルを有しており、図においてはそれをレ
ベル2(L2)キャッシュ14a〜14nとして示した
が、これらのキャッシュは、データをL1キャッシュ1
2a〜12nおよび13a〜13nにステージするため
に使用される。言いかえると、L2キャッシュ14a〜
14nは、システム・メモリ18とL1キャッシュ12
a〜12nおよび13a〜13nの間の中間記憶装置と
して機能し、一般にL1キャッシュ12a〜12nおよ
び13a〜13nよりはるかに多くのデータをストアで
きるが、アクセスの待ち時間が長い。たとえば、L2キ
ャッシュ14a〜14nの記憶容量が256ないしは5
12キロバイト、L1キャッシュ12a〜12nおよび
13a〜13nの記憶容量が64ないしは128キロバ
イトとなるケースが考えられる。前述と同様、図2に示
されたキャッシュ・レベルは2つだけであるが、データ
処理システム8のメモリ階層構造は、シリアルに接続さ
れるキャッシュまたはルックアサイド・キャッシュの追
加のレベル(L3、L4等)を含むように拡張可能であ
る。
In order to minimize latency, the data processing system 8 has one or more levels of cache memory, which are shown as level 2 (L2) caches 14a-14n in the figure. However, these caches store data in the L1 cache 1
Used to stage 2a-12n and 13a-13n. In other words, the L2 cache 14a ~
14n is the system memory 18 and the L1 cache 12
It functions as an intermediate storage device between a.about.12n and 13a.about.13n, and generally can store much more data than the L1 caches 12a.about.12n and 13a.about.13n, but has a long access latency. For example, the storage capacity of the L2 caches 14a to 14n is 256 or 5
There may be a case where the storage capacity of the L1 caches 12a to 12n and 13a to 13n is 64 to 128 kilobytes. As before, only two cache levels are shown in FIG. 2, but the memory hierarchy of the data processing system 8 is based on additional levels of serially connected caches or look-aside caches (L3, L4). Etc.).

【0015】図示したとおりデータ処理システム8は、
さらに入力/出力(I/O)デバイス20、システム・
メモリ18、および不揮発性記憶装置22を備え、それ
ぞれは相互接続路16に接続されている。I/Oデバイ
ス20は、ディスプレイ・デバイス、キーボード、およ
びグラフィック・ポインタといった従来同様の周辺デバ
イスを含み、従来同様のアダプタを介して相互接続路1
6に接続される。不揮発性記憶装置22は、オペレーテ
ィング・システムおよびその他のソフトウェアをストア
しており、これらは、電源投入時にデータ処理システム
8に応答して揮発性のシステム・メモリ18にロードさ
れる。当業者であれば明らかであろうが、データ処理シ
ステム8には、当然のことながら、ネットワークまたは
アタッチされるデバイスを接続するためのシリアルおよ
びパラレル・ポート、システム・メモリ18へのアクセ
スを規制するメモリ・コントローラ等の図2に示してい
ない多くの追加コンポーネントを含ませることができ
る。
As shown, the data processing system 8 comprises:
Input / output (I / O) device 20, system
A memory 18 and a non-volatile storage device 22 are provided, each of which is connected to the interconnect 16. I / O devices 20 include conventional peripheral devices such as display devices, keyboards, and graphic pointers, and interconnect paths 1 through conventional adapters.
6 is connected. Non-volatile storage 22 stores an operating system and other software, which are loaded into volatile system memory 18 in response to data processing system 8 at power up. As will be apparent to those skilled in the art, data processing system 8 will, of course, regulate access to system memory 18, serial and parallel ports for connecting networks or attached devices. Many additional components not shown in FIG. 2, such as a memory controller, can be included.

【0016】相互接続路16は、システム・バスを含め
た1ないしは複数のバスから構成可能であり、L2キャ
ッシュ14a〜14n、システム・メモリ18、I/O
デバイス20、および不揮発性記憶装置22の間におけ
る通信トランザクションのためのコンジットとして機能
する。相互接続路16上の一般的な通信トランザクショ
ンには、トランザクションの送信元を示す送信元タグ、
トランザクションの意図された宛先を指定する宛先タ
グ、アドレス、データなどが含まれる。相互接続路16
に接続された各デバイスは、好ましくは、相互接続路1
6上のすべての通信トランザクションをスヌープし、当
該トランザクションについてデバイスのコヒーレンシを
更新すべきか否かを判断する。好ましくは、各キャッシ
ュから相互接続路16のシステム・バスに向かう外部ス
ヌープ・パスが備えられるものとする。
The interconnection path 16 can be composed of one or more buses including a system bus, and includes L2 caches 14a to 14n, system memory 18, I / O
It functions as a conduit for communication transactions between device 20 and non-volatile storage 22. A typical communication transaction on the interconnect 16 includes a source tag indicating the source of the transaction,
Includes destination tags, addresses, data, etc. that specify the intended destination of the transaction. Interconnect path 16
Each device connected to the
Snoop all communication transactions on 6 and determine whether to update the device coherency for the transaction. Preferably, an external snoop path is provided from each cache to the system bus on interconnect 16.

【0017】コヒーレントなメモリ階層構造は、MES
Iプロトコル等の選択されたメモリ・コヒーレンシ・プ
ロトコルの使用を通じて維持される。MESIプロトコ
ルにおいては、コヒーレンシ状態の表示が、少なくとも
すべての上位レベルの(キャッシュ)メモリの各コヒー
レンシ単位(たとえばキャッシュ・ラインまたはセク
タ)に関連してストアされる。各コヒーレンシ単位は、
4つの状態すなわち、変更(M)、排他(E)、共有
(S)および無効(I)のうちのいずれか1つの状態を
持つことができ、その状態はキャッシュ・ディレクトリ
内の2ビットを使用してエンコードされる。変更状態
は、変更されたコヒーレンシ単位をストアしているキャ
ッシュ内でのみコヒーレンシ単位が有効であり、かつ変
更されたコヒーレンシ単位の値がまだシステム・メモリ
に書き込まれていないことを示す。コヒーレンシ単位が
排他を示しているときは、メモリ階層構造内のそのレベ
ルにおけるすべてのキャッシュの中で、排他状態にある
当該コヒーレンシ単位を所有しているキャッシュ内にの
み当該コヒーレンシ単位が存在する。しかしながら、排
他状態にあるデータは、システム・メモリとの一貫性を
有する。コヒーレンシ単位が共有としてキャッシュ・デ
ィレクトリ内にマークされていれば、当該コヒーレンシ
単位は、関連付けられているキャッシュ内だけでなく、
可能性としてはメモリ階層構造内の同じレベルにある別
のキャッシュにも存在し、当該コヒーレンシ単位のすべ
てのコピーはシステム・メモリとの一貫性を有する。最
後の無効状態は、コヒーレンシ単位に関連付けられてい
るデータおよびアドレス・タグのいずれもがキャッシュ
内に存在しないことを示す。
The coherent memory hierarchy is MES
Maintained through the use of a selected memory coherency protocol, such as the I protocol. In the MESI protocol, an indication of the coherency state is stored in association with each coherency unit (eg, cache line or sector) of at least all higher-level (cache) memories. Each coherency unit is
It can have one of four states: modified (M), exclusive (E), shared (S), and invalid (I), which use two bits in the cache directory. Encoded. The modified state indicates that the coherency unit is valid only in the cache storing the modified coherency unit, and that the value of the modified coherency unit has not yet been written to system memory. When the coherency unit indicates exclusion, the coherency unit exists only in the cache that owns the coherency unit in the exclusive state among all caches at that level in the memory hierarchy. However, data in the exclusive state is consistent with system memory. If a coherency unit is marked in the cache directory as shared, then the coherency unit will not only be in the associated cache,
Possibly also in another cache at the same level in the memory hierarchy, and all copies of the coherency unit are consistent with system memory. The last invalid state indicates that neither the data nor the address tag associated with the coherency unit is present in the cache.

【0018】SMPシステムにおけるデータの各キャッ
シュ・ライン(ブロック)は、好ましくはアドレス・タ
グ・フィールド、状態ビット・フィールド、包含ビット
・フィールド、および実際の命令もしくはデータをスト
アするための値フィールドからなる。状態ビット・フィ
ールドおよび包含ビット・フィールドは、マルチプロセ
ッシング・コンピュータ・システムにおいてキャッシュ
・コヒーレンシを維持するために使用される(キャッシ
ュ内にストアされている値の有効性を示す)。アドレス
・タグは、対応メモリ・ブロックの完全なアドレスのサ
ブセットである。到来アドレスとアドレス・タグ・フィ
ールド内にある1つのタグの一致は、エントリが有効状
態にあれば、キャッシュの「ヒット」を表す。
Each cache line (block) of data in an SMP system preferably comprises an address tag field, a status bit field, an inclusion bit field, and a value field for storing the actual instruction or data. . The status bit field and the inclusion bit field are used to maintain cache coherency in multi-processing computer systems (indicating the validity of the value stored in the cache). An address tag is a subset of the complete address of the corresponding memory block. A match between the incoming address and one tag in the address tag field indicates a cache "hit" if the entry is valid.

【0019】キャッシュ・コヒーレンシの維持におい
て、ライトスルー・キャッシュ・ストアは、キャッシュ
内へのストアを実行するまで、キャッシュ・ラインの割
り当て、または所有権(MESIプロトコルのEまたは
M状態)の獲得を行わない。より詳しく述べれば、ライ
トスルーまたはストアスルー・キャッシュ・オペレーシ
ョンは、プロセッサの書き込みオペレーションの間、キ
ャッシュ・メモリおよびメイン・メモリの両方に対する
書き込みオペレーションを提供し、それによりキャッシ
ュ・メモリおよびメイン・メモリ内のデータ間の一貫性
を保証する。キャッシュ・コヒーレンシを維持するた
め、コヒーレントなライトスルー・ストアにおいては、
要求元のプロセッサ以外のプロセッサ上に有効なキャッ
シュ・ラインがあれば、それらを特定のキャッシュ・コ
ヒーレンシ・ポイントから無効化し、続くすべてのプロ
セッサからのロードが新しく更新されたデータを獲得す
るようにしなければならない。
In maintaining cache coherency, a write-through cache store allocates a cache line or acquires ownership (E or M state in the MESI protocol) until a store into the cache is performed. Absent. More specifically, a write-through or store-through cache operation provides a write operation to both the cache memory and the main memory during a write operation of the processor, whereby the cache memory and the main memory. Ensure consistency between data. To maintain cache coherency, in a coherent write-through store,
If there are valid cache lines on a processor other than the requesting processor, they must be invalidated from a particular cache coherency point so that loads from all subsequent processors get the newly updated data. Must.

【0020】通常、バス「スヌーピング」テクニックを
用いて、キャッシュ・コヒーレンシ・ポイントからキャ
ッシュ・ラインが無効化される。各キャッシュは、好ま
しくはスヌープを実行するスヌーピング・ロジックを含
む。読み出しまたは書き込みの実行時には、必ずそのデ
ータのアドレスが、要求元プロセッサ・コアから共通バ
スを共有している他のすべてのキャッシュに対してブロ
ードキャストされる。各スヌーピング・ロジック・ユニ
ットは、当該バスからのアドレスをスヌープし、当該ア
ドレスとキャッシュ用のアドレス・タグ配列を比較す
る。ヒットがあった場合はスヌープ応答が返され、それ
によりヒットしたキャッシュ・ラインを無効化するとい
ったキャッシュ・コヒーレンシを維持するための更なる
オペレーションを実行する。あるいは、キャッシュがア
ドレスされたデータの変更コピーを有し、まずそのデー
タを当該キャッシュの外にプッシュしなければならない
場合、または適切なスヌープを阻害する問題が存在する
場合に、キャッシュのバス・スヌーピング・ロジックか
ら「リトライ」のスヌープ応答を出すようにしてもよ
い。リトライの場合、当該データ・アドレスを発信した
プロセッサ・コアが、読み出しまたは書き込みオペレー
ションをリトライすることになる。
Typically, cache lines are invalidated from a cache coherency point using a bus "snooping" technique. Each cache preferably includes snooping logic that performs snooping. Whenever a read or write is performed, the address of that data is broadcast from the requesting processor core to all other caches sharing the common bus. Each snooping logic unit snoops the address from the bus and compares the address with the address tag array for the cache. If there is a hit, a snoop response is returned, thereby performing further operations to maintain cache coherency, such as invalidating the hit cache line. Alternatively, bus snooping of the cache when the cache has a modified copy of the addressed data and that data must first be pushed out of the cache, or if there is a problem that prevents proper snooping A snoop response of “retry” may be issued from the logic. In the case of a retry, the processor core that issued the data address will retry the read or write operation.

【0021】好ましい実施例とは異なる「スヌーピン
グ」テクニックにより、ライトスルー・ストア命令がリ
トライされたときに生じるエラーを図1のタイミング図
を参照して説明する。この例においては、SMPアーキ
テクチャが、プロセッサ・コア0、プロセッサ・コア
1、各コアに関連付けられたL1キャッシュ、および2
つのプロセッサ・コアによって共有されるL2キャッシ
ュを備えることを前提としている。またこの例において
は、プロセッサのためにキャッシュ・コヒーレンシの維
持が行われるポイントをL2キャッシュに設定してい
る。追加のプロセッサ・コアおよびキャッシュ・レベル
を設けることは可能であるが、例示を目的とする図1に
おいては以上のとおりとする。
The error that occurs when a write-through-store instruction is retried using a different "snooping" technique than the preferred embodiment is described with reference to the timing diagram of FIG. In this example, the SMP architecture includes processor core 0, processor core 1, the L1 cache associated with each core, and 2
It is assumed to have an L2 cache shared by one processor core. In this example, the point at which cache coherency is maintained for the processor is set in the L2 cache. It is possible to provide additional processor cores and cache levels, but this is illustrated in FIG. 1 for purposes of illustration.

【0022】一例として、次に示す擬似コードを考え
る: プロセッサ・コア0 store 2 to A プロセッサ・コア1 loop: load A loop if A ≠ 2 store 3 to A
As an example, consider the following pseudo code: Processor core 0 store 2 to A Processor core 1 loop: load A loop if A ≠ 2 store 3 to A

【0023】プロセッサ・コア0のストアが実行された
が、リトライがある場合、プロセッサ・コア0のストア
が再度実行される前にプロセッサ・コア1のロードおよ
びストアが許可されると、結果として得られるアドレス
Aのコヒーレントなメモリ状態は2となり正しい結果が
得られない。
If the store of processor core 0 has been performed, but there is a retry, the result is that if the load and store of processor core 1 is permitted before the store of processor core 0 is performed again, The coherent memory state of the address A obtained is 2, and a correct result cannot be obtained.

【0024】タイミング図を参照すると、最初のクロッ
ク・サイクル60において、コア0によってバス・アー
ビトレーションが行われ、ライトスルー・ストア・オペ
レーション(WT ST)のためのアドレスおよびデー
タ(RA)がL2キャッシュに渡される。次に、参照番
号62において、要求元コア以外の全コア(コア1)に
対してシステム・バス上でライトスルー・ストアのデー
タ・アドレスがブロードキャストされ、要求元コア以外
のコアによる当該データ・アドレスのスヌープを可能に
する。これに加えて、同一のサイクルである参照番号6
4において、当該データ・アドレスとL2タグ配列が比
較され、そのデータの以前のバージョンがL2キャッシ
ュ内にあるか否かが判断される。3番目のサイクル、す
なわち参照番号66においては、スヌープされたアドレ
スと、コア1に関連付けられているL1キャッシュ内の
L1タグ配列が比較される。更に、図示したように参照
番号68においてL2キャッシュでのL2ヒットが返さ
れる。その後、参照番号70に示すように、L2キャッ
シュを「A=2」に更新するための書き込み命令をパイ
プライン内に置くことによってL2データ書き込みがコ
ミットされる。次に参照番号72として示した4番目の
クロック・サイクルの間に、コア1のL1キャッシュに
関するスヌープ応答がリトライとして返される。
Referring to the timing diagram, in the first clock cycle 60, bus arbitration is performed by core 0, and the address and data (RA) for a write-through store operation (WT ST) are stored in the L2 cache. Passed. Next, at reference numeral 62, the data address of the write-through store is broadcast on the system bus to all the cores (core 1) other than the requesting core, and the data address of the core other than the requesting core is broadcasted. Enable snooping. In addition, the same cycle, reference number 6
At 4, the data address is compared to the L2 tag array to determine if a previous version of the data is in the L2 cache. In the third cycle, reference numeral 66, the snooped address is compared with the L1 tag array in the L1 cache associated with Core1. In addition, an L2 hit in the L2 cache is returned at reference numeral 68 as shown. Thereafter, as indicated by reference numeral 70, the L2 data write is committed by placing a write instruction for updating the L2 cache to "A = 2" in the pipeline. Next, during the fourth clock cycle, indicated by reference numeral 72, a snoop response for core 1's L1 cache is returned as a retry.

【0025】ここで、特にこの好ましくないスヌーピン
グ・テクニックにおいては、リトライを示すスヌープ応
答が返される前に、ライトスルー・ストアがL2キャッ
シュの更新をコミットすることに注意が必要である。リ
トライが返される理由は各様であり、M状態にあるセク
タに対するスヌープ・ヒット、キューされている有効な
オペレーションにおけるスヌープ・ヒット等が挙げられ
る。コア1のL1キャッシュによってリトライが返され
ると、コア0がライトスルー・ストア・オペレーション
をリトライすべくセットされる。キャッシュ・コヒーレ
ンシは、L2キャッシュにおいて維持されることになっ
ているため、リトライにより、L2キャッシュ内でライ
トスルー・ストアが実行され、ライトスルー・オペレー
ションをバスに送信する前に、上位レベルのすべてのキ
ャッシュが更新される。
It should be noted that, particularly in this undesirable snooping technique, the write-through store commits the update of the L2 cache before a snoop response indicating a retry is returned. Retries can be returned for a variety of reasons, including a snoop hit for a sector in the M state, a snoop hit for a queued valid operation, and the like. When a retry is returned by the L1 cache of core 1, core 0 is set to retry the write-through store operation. Because cache coherency is to be maintained in the L2 cache, a retry causes a write-through store to be performed in the L2 cache, and all higher-level stores be sent before the write-through operation is sent to the bus. The cache is updated.

【0026】プロセッサ・コア1は、「A≠2」の場合
はループで待機している。コア0からのストア・オペレ
ーションがL2キャッシュへの書き込みを行うと、コア
0においてリトライがセットされている場合であって
も、図示したように参照番号74においてコア1がロー
ドのためにバス・アービトレーションを行い、データの
アドレスをブロードキャストする。次に参照番号76に
示すように、このアドレスとL2キャッシュのL2タグ
配列が比較される。その後、参照番号78に示されるよ
うに、L2キャッシュ内のヒットが受信される。この結
果、図示の参照番号80においてL2キャッシュ内のデ
ータの読み取りが実行されるが、それは「A=2」とな
る。データは遅延81の間に読み取られ、それが経過す
ると、コア1がループを終了(ブレーク)し、先に進ん
でストア・オペレーション「store 3 to
A」(Aに3をストア)を実行する。
The processor core 1 stands by in a loop when “A ≠ 2”. When a store operation from core 0 writes to the L2 cache, core 1 is bus arbitrated for reference at load 74 as shown, even if retry is set at core 0. And broadcast the data address. Next, as indicated by reference numeral 76, this address is compared with the L2 tag array of the L2 cache. Thereafter, as indicated by reference numeral 78, a hit in the L2 cache is received. As a result, the reading of the data in the L2 cache is performed at reference numeral 80 shown in the figure, which is “A = 2”. The data is read during the delay 81, at which time core 1 terminates (breaks) the loop and proceeds to the store operation "store 3 to".
A "(store 3 in A).

【0027】コア1は、図示したように参照番号82に
おいてバス・アービトレーションを行ってライトスルー
・ストア・オペレーションを渡し、ライトスルー・スト
アのデータ・アドレスをブロードキャストする。次に参
照番号84に示すように、L2タグの比較が行われる。
その後、参照番号86に示されるように、L2キャッシ
ュにおけるキャッシュ・ヒットが受信される。この結
果、図示した参照番号88において、書き込み「A=
3」としてL2キャッシュのパイプラインにこのデータ
が引き渡される。
The core 1 performs a bus arbitration at reference numeral 82 as shown to pass a write-through store operation, and broadcasts the data address of the write-through store. Next, as indicated by reference numeral 84, an L2 tag comparison is performed.
Thereafter, as indicated by reference numeral 86, a cache hit in the L2 cache is received. As a result, in the illustrated reference numeral 88, the write “A =
This data is delivered to the pipeline of the L2 cache as "3".

【0028】コア1からのロード・アンド・ストア・オ
ペレーションがローカル・バスのバス・アービトレーシ
ョンを行っていることから、コア0の「store 2
to A」(Aに2をストア)オペレーションのリト
ライは、バスが次に使用可能になるまで遅延される。コ
ア0は、ライトスルー・ストア・オペレーションを再発
行するが、それがL2キャッシュに受信されるのは、参
照番号90として示されるサイクルである。データ・ア
ドレスは、図示したように参照番号92においてローカ
ルに送信され、それによってコア1がスヌープされる。
その後、参照番号94として示すように、コア1のL1
キャッシュ内においてL1タグの比較が行われる。さら
にそれに続いて、参照番号96として示すように、L2
キャッシュ内においてL2タグの比較が行われる。この
結果、参照番号98で示すように、L2キャッシュから
キャッシュ・ヒットが返される。最後に、図示した参照
番号100において、L2キャッシュに対して「A=
2」とするデータの再書き込みが行われる。
Since the load and store operation from the core 1 performs bus arbitration of the local bus, the “store 2” of the core 0
Retries for "to A" (store 2 in A) operations are delayed until the bus is next available. Core 0 reissues the write-through store operation, but it is received in the L2 cache at the cycle indicated by reference numeral 90. The data address is transmitted locally at reference numeral 92 as shown, thereby snooping core 1.
Thereafter, as indicated by reference numeral 94, the L1
An L1 tag comparison is performed in the cache. Further following, as indicated by reference numeral 96, L2
An L2 tag comparison is performed in the cache. As a result, as indicated by reference numeral 98, a cache hit is returned from the L2 cache. Finally, at reference numeral 100 shown, "A =
2 "is rewritten.

【0029】以上説明したように、ライトスルー・スト
アがローカルにスヌープされ、ストアがリトライされる
とき、そのストアが再実行を求めるアービトレーション
を受け取る前に、別のプロセッサ・コアがバスの使用権
を獲得してロードを行い、L2キャッシュ内に更新済み
のデータを見つけて、ライトスルー・ストアを実行する
かも知れない。その場合、最初のライトスルー・ストア
は、最初の結果に依存するはずの2番目のストアからの
データを上書きしてしまう。
As described above, when a write-through store is snooped locally and the store is retried, another processor core may take over the right to use the bus before the store receives arbitration for re-execution. It may acquire and load, find updated data in the L2 cache, and perform a write-through store. In that case, the first write-through store will overwrite data from the second store that would depend on the first result.

【0030】図1に示したこの問題に対する可能性のあ
る解決策の1つに、リトライの後でデータの引き渡しが
行われるように、L2のデータおよびアドレスのパイプ
ラインを遅延させる方法がある。この解決策を実行する
ためには、L2の読み出しをL2の書き込みから分離す
るか、あるいはL2の読み出しを遅延させる。前者の場
合は、L2のアービトレーションの複雑性が劇的に増
す。後者の場合は、すべてのL2キャッシュ・ヒット条
件に余分な2サイクルが追加されることになり、望まし
くないパフォーマンス低下が招かれる。
One possible solution to this problem shown in FIG. 1 is to delay the L2 data and address pipeline so that the data is passed after a retry. To implement this solution, the L2 read is separated from the L2 write or the L2 read is delayed. In the former case, the complexity of L2 arbitration increases dramatically. In the latter case, an extra two cycles will be added to every L2 cache hit condition, causing undesirable performance degradation.

【0031】これとは別に、当業者の間で周知のレジス
タ・リネームと同様の方法を用いて、ライトスルー・オ
ペレーションの以前の状態をストアすることにより、コ
ミット済みのL2更新をパイプラインからフラッシュす
る解決策がある。キャッシュについて見れば、この解決
策は、望ましくない複雑性の追加を招き、キャッシュの
速度を低下させることになる。
Alternatively, the committed L2 updates are flushed from the pipeline by storing the previous state of the write-through operation using a method similar to register renaming well known to those skilled in the art. There is a solution to do that. When it comes to caching, this solution adds undesirable complexity and slows down the cache.

【0032】図3は、本発明の好ましい実施例に従って
自己スヌーピング・テクニックを伴なうライトスルー・
ストア命令の実行を表すタイミング図を示している。こ
の図3には、図1に示したプロセッサ・オペレーション
も示されているが、図3においては、自己スヌーピング
が使用されてリトライに起因するエラーが解決されてい
る。図示した参照番号110においては、コア0が、L
2キャッシュに受信されるライトスルー・ストア・オペ
レーション(WT ST)を発行し、それによってL2
キャッシュのアービトレーションが実行される。次に、
図示の参照番号112において、L2タグとL2タグ配
列の比較が実行される。続いて、参照番号114に示さ
れるように、L2タグの一致によるキャッシュ・ヒット
が受け取られる。これにより参照番号116に示すよう
に、L2キャッシュに対するデータ書き込みがパイプラ
イン内に置かれる。遅延117においては、メイン・メ
モリに書き込むために、システム・バスに対してライト
スルー・ストア・オペレーションのアービトレーション
が行われ、この遅延の後、図示したように参照番号11
8において、システム・バスに沿った自己スヌープのア
ービトレーションが行われる。図1においては、キャッ
シュ・コヒーレンシ・ポイントがライトスルー・ストア
・オペレーションに用いるL2キャッシュであったが、
この実施例においては、キャッシュ・コヒーレンシ・ポ
イントがライトスルー・ストア・オペレーションに用い
るシステム・バス上にある。キャッシュ・コヒーレンシ
・ポイントをライトスルー・ストア・オペレーションに
用いるシステム・バス上に置くことにより、自己スヌー
プの間にリトライが表明(アサート)されても、リトラ
イ信号が返されなくなるまで、待機中の他の命令の有無
とは無関係に、必要な回数にわたってライトスルー・オ
ペレーションがシステム・バス上でスヌープされる。詳
細に述べれば、システム・バスがバス・アービトレーシ
ョン・ロジックを含み、それが、当該ライトスルー・ス
トアに関するメモリ・コヒーレンシがすべてのキャッシ
ュで達成され、その結果、メイン・メモリに対するデー
タの書き込みが可能になるまで、スヌーピング・デバイ
スによるバスに対する継続的なアクセスを保証する。
FIG. 3 illustrates a write-through with self-snooping technique in accordance with a preferred embodiment of the present invention.
FIG. 4 shows a timing diagram illustrating execution of a store instruction. FIG. 3 also shows the processor operation shown in FIG. 1, where self-snooping is used to resolve errors due to retries. In the illustrated reference number 110, core 0 is
2 issues a write-through store operation (WT ST) received in the cache, thereby causing L2
Arbitration of the cache is performed. next,
At reference numeral 112 shown, a comparison between the L2 tag and the L2 tag sequence is performed. Subsequently, as indicated by reference numeral 114, a cache hit due to an L2 tag match is received. This places the data write to the L2 cache in the pipeline, as indicated by reference numeral 116. At delay 117, a write-through store operation arbitration is performed on the system bus to write to main memory, and after this delay, reference numeral 11 as shown.
At 8, self-snoop arbitration along the system bus occurs. In FIG. 1, the cache coherency point is the L2 cache used for the write-through store operation.
In this embodiment, the cache coherency point is on the system bus used for write-through store operations. By placing the cache coherency point on the system bus used for write-through store operations, even if a retry is asserted during a self-snoop, the other waits until the retry signal is no longer returned. The write-through operation is snooped on the system bus as many times as necessary, with or without the instruction. Specifically, the system bus includes bus arbitration logic, which ensures that memory coherency for the write-through store is achieved in all caches, thereby enabling data to be written to main memory. Until then, ensure continuous access to the bus by the snooping device.

【0033】自己スヌープに加えて、参照番号120に
示すように、要求元コア以外のコアに対し、外部スヌー
プ・パスに沿ってライトスルー・ストア・オペレーショ
ンのローカル・データ・アドレスがブロードキャストさ
れる。その後、図示した参照番号122においてL1タ
グとL1タグ配列の比較が行われる。次のサイクル、す
なわち参照番号124で示されるサイクルにおいては、
L1タグの比較に関する応答が返される。この応答がリ
トライの場合、L1キャッシュからリトライ以外の応答
が返されるまで、ライトスルー・ストアのアドレスが自
己スヌープのためにシステム・バスのアービトレーショ
ンを継続的に行う。
In addition to the self-snoop, as indicated by reference numeral 120, the local data address of the write-through store operation is broadcast to the cores other than the requesting core along the external snoop path. Thereafter, a comparison between the L1 tag and the L1 tag sequence is performed at reference numeral 122 shown in the figure. In the next cycle, the cycle indicated by reference numeral 124,
A response is returned regarding the L1 tag comparison. If this response is a retry, the address of the write-through store continuously arbitrates the system bus for its own snoop until a response other than the retry is returned from the L1 cache.

【0034】リトライ以外の応答が返されると、図示し
た参照番号126において、コア1がローカル・バスの
アービトレーションを行ってロードを実行する。しかし
ながら、別の実施態様においては、リトライなしにシス
テム・バスに対してストアがコミットされるまで、必ず
しもコア1によるロードを待たなくてもよい。たとえ
ば、ロードがL2キャッシュでヒットし、それがコミッ
トされると、参照番号116に示されるL2データ書き
込みの後にコア1のロードを開始してもデータのコヒー
レンシが損なわれることはない。その後、図示したよう
に参照番号128においてL2タグとL2タグ配列の比
較が実行される。次に、参照番号130に示すように、
L2タグの一致によるL2ヒットが返される。さらにそ
の後、参照番号132に示すように、データがL2から
読み出される。遅延133が経過すると、参照番号13
4に示すように、コア1がライトスルー・ストアのため
にローカル・バスのバス・アービトレーションを実行す
る。その後、参照番号136に示されるように、L2タ
グとL2タグ配列が比較される。それに続き、参照番号
138として示したように、L2タグの一致によりL2
ヒットが返される。さらにその後、図示した参照番号1
40においてL2データ書き込みがコミットされる。コ
ア1のライトスルー・ストアに関して示したように、参
照番号140として示したL2データ書き込みに続き、
メイン・メモリの更新のために、ライトスルー・ストア
・オペレーションがシステム・バスに対して続行され、
それにより、システム・バスから自己スヌープを実行す
ることによってキャッシュ・コヒーレンシが維持され
る。
When a response other than a retry is returned, the core 1 performs arbitration of the local bus and executes loading at reference numeral 126 shown in the figure. However, in another embodiment, it is not necessary to wait for the load by core 1 until the store is committed to the system bus without retry. For example, if the load hits in the L2 cache and is committed, then starting the load of core 1 after the L2 data write indicated by reference numeral 116 does not impair the data coherency. Thereafter, a comparison between the L2 tag and the L2 tag sequence is performed at reference numeral 128 as shown. Next, as indicated by reference numeral 130,
An L2 hit due to the L2 tag match is returned. Thereafter, as indicated by reference numeral 132, the data is read from L2. When the delay 133 elapses, the reference numeral 13
As shown at 4, core 1 performs bus arbitration of the local bus for a write-through store. Thereafter, as indicated by reference numeral 136, the L2 tag and the L2 tag sequence are compared. Subsequently, as indicated by reference numeral 138, the L2 tag match
A hit is returned. Further thereafter, reference numeral 1 shown
At 40, the L2 data write is committed. As indicated for the write-through store of core 1, following the L2 data write indicated by reference numeral 140,
A write-through store operation continues to the system bus for updating main memory,
Thereby, cache coherency is maintained by performing a self-snoop from the system bus.

【0035】図4は、ライトスルー・ストア・オペレー
ションの実行に関するプロセスを表したハイレベルの論
理フローチャートを示している。このプロセスはブロッ
ク150から開始され、続いてブロック152に進む。
ブロック152は、プロセッサ・コアがライトスルー・
ストア・オペレーションのアドレスを下位レベルのキャ
ッシュに送信するために、ローカル・バスのバス・アー
ビトレーションを行うことを示している。これに続くブ
ロック154は、当該アドレスと、下位レベル・キャッ
シュにあるタグ配列の比較を表す。次のブロック156
は判断を表し、タグの比較結果により、下位レベル・キ
ャッシュでのヒットの有無を調べる。もしヒットがあれ
ば、ブロック158に進む。ブロック158は、下位レ
ベル・キャッシュに対する書き込みデータの引き渡しを
表す。その後、プロセスはブロック160に進む。ブロ
ック156でヒットがなかった場合もブロック160に
進む。ここには図示していないが、ブロック154、1
56および158に示したプロセスは、複数レベルで構
成される下位レベル・キャッシュで実行可能である。。
FIG. 4 shows a high-level logic flow chart illustrating the process involved in performing a write-through store operation. The process begins at block 150 and continues to block 152.
Block 152 indicates that the processor core is write-through.
It shows that bus arbitration of the local bus is performed to transmit the address of the store operation to the lower-level cache. Subsequent block 154 represents the comparison of the address with the tag array in the lower level cache. Next block 156
Indicates a judgment, and checks the presence or absence of a hit in the lower-level cache based on the comparison result of the tags. If there is a hit, proceed to block 158. Block 158 represents the passing of write data to the lower level cache. Thereafter, the process proceeds to block 160. If there is no hit in block 156, the process also proceeds to block 160. Although not shown here, blocks 154, 1
The processes shown at 56 and 158 can be performed on a lower level cache composed of multiple levels. .

【0036】ブロック160は、ライトスルー・ストア
・オペレーションをシステム・バスに渡す処理を表す。
次のブロック162は、ライトスルー・ストア・オペレ
ーションのアドレスをメモリに送るため、かつシステム
・バスの自己スヌープを実行するために行うシステム・
バスのバス・アービトレーションを表している。続くブ
ロック164は、外部スヌープ・パスを通じて、未通過
キャッシュでアドレスをスヌープする処理を表す。たと
えば、ライトスルー・ストア・オペレーションの要求元
であるプロセッサからシステム・バスまでのパスを提供
しないキャッシュは、すべて未通過キャッシュである。
次のブロック166は、スヌープされたアドレスと未通
過キャッシュ内のタグ配列の比較を表す。それに続くブ
ロック168は判断を表し、スヌープからのリトライ応
答の有無を調べる。スヌープがリトライを返したとき
は、プロセスはブロック162に戻る。スヌープがリト
ライを返さなければ、プロセスはブロック170に進
む。ブロック170は、メイン・メモリに対するライト
スルー・ストアのコミットを表す。次のブロック172
は、次のオペレーションのためにシステム・バスを解放
することを表し、その後このプロセスは終了する。
Block 160 represents the process of passing a write-through store operation to the system bus.
The next block 162 is a system block that performs the address of the write-through store operation to memory and performs a self-snoop on the system bus.
Represents the bus arbitration of the bus. Subsequent block 164 represents the process of snooping the address in the non-transit cache through an external snoop path. For example, caches that do not provide a path from the processor that requested a write-through store operation to the system bus are all non-passing caches.
The next block 166 represents the comparison of the snooped address with the tag array in the unpassed cache. Subsequent block 168 represents the decision and checks for a retry response from the snoop. If the snoop returns a retry, the process returns to block 162. If the snoop does not return a retry, the process proceeds to block 170. Block 170 represents a write-through store commit to main memory. Next block 172
Represents releasing the system bus for the next operation, after which the process ends.

【0037】以上、好ましい実施例を参照し、本発明を
詳細に示しかつ、説明してきたが、当業者であれば、本
発明の真意ならびに範囲から逸脱することなく、形状お
よび詳細において各種の変更が可能であることは理解さ
れよう。たとえば、変形実施例においては、システム・
バスに要求が現れる順序と同一の順序で要求がコミット
される限り、保留されている要求の後の要求であって、
当該保留されている要求と同一のアドレスに対する要求
が、保留されている要求のコミット(リトライ以外の応
答の獲得)または完了(関連データの読み出しまたは書
き込み)の前にアービトレーションを行えるように、シ
ステム・バスに対する要求をパイプライン制御すること
ができる。
While the present invention has been shown and described in detail with reference to preferred embodiments, workers skilled in the art will recognize that various changes may be made in form and detail without departing from the spirit and scope of the invention. It will be appreciated that is possible. For example, in a variant embodiment, the system
A request after a pending request, as long as the requests are committed in the same order as the requests appear on the bus,
The system must ensure that requests for the same address as the pending request can be arbitrated before committing (obtaining a response other than a retry) or completing (reading or writing related data) the pending request. Requests for the bus can be pipelined.

【図面の簡単な説明】[Brief description of the drawings]

【図1】現行のスヌープ・テクニックによって、ライト
スルー・ストア命令がリトライされたときに生じるエラ
ーを表すタイミング図である。
FIG. 1 is a timing diagram illustrating an error that occurs when a write-through-store instruction is retried according to current snoop techniques.

【図2】本発明に従ったマルチプロセッサ・データ処理
システムを表すハイレベル・ブロック図である。
FIG. 2 is a high-level block diagram illustrating a multiprocessor data processing system according to the present invention.

【図3】自己スヌーピング・テクニックを伴なうライト
スルー・ストア命令の実行を表したタイミング図であ
る。
FIG. 3 is a timing diagram illustrating execution of a write-through store instruction with a self-snooping technique.

【図4】ライトスルー・ストア・オペレーションの実行
に関するハイレベル論理フローチャートである。
FIG. 4 is a high-level logic flowchart for performing a write-through store operation.

───────────────────────────────────────────────────── フロントページの続き (72)発明者 ホセ・メラニオ・ヌネツ アメリカ合衆国78727、テキサス州オース ティン、ブラック・アンガス・ドライブ 12107 (72)発明者 トーマス・アルバート・ピーターセン アメリカ合衆国78759、テキサス州オース ティン、スパイスウッド・スプリングス・ コーブ8302 (72)発明者 マリー・ジャネット・サリバン アメリカ合衆国78641、テキサス州リーン ダー、イングリッシュ・リバー・ループ 15315 ────────────────────────────────────────────────── ─── Continuing on the front page (72) Inventor Jose Melanio Nunez, United States 78727, Austin, TX, Black Angus Drive 12107 (72) Inventor Thomas Albert Petersen, United States 78759, Austin, Texas, Spicewood Springs Cove 8302 (72) Inventor Marie Janet Sullivan United States 78641, Leander, Texas, English River Loop 15315

Claims (8)

【特許請求の範囲】[Claims] 【請求項1】 システム・バスおよびメモリ階層構造に
接続される複数のプロセッサを備え、前記メモリ階層構
造が複数のキャッシュ・レベルを含むデータ処理システ
ムにおいてライトスルー・ストア・オペレーションでキ
ャッシュ・コヒーレンシを維持する方法であって、 1つのプロセッサからライトスルー・ストア・オペレー
ションを、該プロセッサと前記システム・バスの間に介
挿された複数のキャッシュを介して前記システム・バス
に渡すステップと、 前記介挿された複数のキャッシュのうち、前記ライトス
ルー・ストア・オペレーションに関してキャッシュ・ヒ
ットが得られたキャッシュにおいて前記ライトスルー・
ストア・オペレーションを実行するステップと、 前記ライトスルー・ストア・オペレーションが成功する
まで、前記システム・バスの外部スヌープ・パスから、
前記ライトスルー・ストア・オペレーションのデータ・
アドレスを用いて、前記プロセッサと前記システム・バ
スの間に介挿されていないキャッシュをスヌープするス
テップと、 を含む方法。
1. A system bus and a plurality of processors connected to a memory hierarchy, wherein the memory hierarchy maintains cache coherency in a write-through store operation in a data processing system including a plurality of cache levels. Passing a write-through store operation from one processor to the system bus via a plurality of caches interposed between the processor and the system bus; Out of the plurality of caches that have obtained a cache hit for the write-through store operation,
Performing a store operation; and from an external snoop path on the system bus until the write-through store operation is successful.
The data of the write-through store operation
Using an address to snoop a cache that is not interposed between the processor and the system bus.
【請求項2】 前記1つのプロセッサからライトスルー
・ストア・オペレーションを、該プロセッサと前記シス
テム・バスの間に介挿された複数のキャッシュを介して
前記システム・バスに渡すステップは、さらに、 前記プロセッサが前記ライトスルー・ストア・オペレー
ションの前記データ・アドレスを前記介挿された複数の
キャッシュに渡すためにローカル・バスのアービトレー
ションを行うステップを含む、請求項1記載の方法。
2. Passing a write-through store operation from said one processor to said system bus via a plurality of caches interposed between said processor and said system bus, 2. The method of claim 1 including the step of a processor arbitrating a local bus to pass the data address of the write-through store operation to the interposed caches.
【請求項3】 前記介挿された複数のキャッシュのう
ち、前記ライトスルー・ストア・オペレーションに関し
てキャッシュ・ヒットが得られたキャッシュにおいて前
記ライトスルー・ストア・オペレーションを実行するス
テップは、さらに、 前記ライトスルー・ストア・オペレーションの前記デー
タ・アドレスと、前記介挿されたキャッシュ内のそれぞ
れのアドレス・タグ配列を比較するステップと、 前記データ・アドレスが前記アドレス・タグ配列内のい
ずれかのタグに一致するとキャッシュ・ヒットを返すス
テップと、 を含む、請求項1記載の方法。
3. The step of executing the write-through store operation in a cache in which a cache hit is obtained for the write-through store operation among the plurality of interposed caches, further comprising: Comparing the data address of the through store operation with a respective address tag array in the interposed cache; and wherein the data address matches any tag in the address tag array. 2. The method of claim 1, further comprising: returning a cache hit.
【請求項4】 前記ライトスルー・ストア・オペレーシ
ョンが成功するまで、前記システム・バスの外部スヌー
プ・パスから、前記ライトスルー・ストア・オペレーシ
ョンのデータ・アドレスを用いて、前記プロセッサと前
記システム・バスの間に介挿されていないキャッシュを
スヌープするステップは、さらに、 前記ライトスルー・ストア・オペレーションのために前
記システム・バスのアービトレーションを行うステップ
と、 前記ライトスルー・ストア・オペレーションの前記デー
タ・アドレスを前記システム・バスの前記外部スヌープ
・パスに渡すステップと、 前記データ・アドレスと、前記プロセッサと前記システ
ム・バスの間に介挿されていないキャッシュ内のそれぞ
れのアドレス・タグ配列を比較するステップ;前記シス
テム・バスに返されるリトライ応答があればそれに応答
して、前記外部スヌープ・パスに沿って前記データ・ア
ドレスを維持するステップと、 前記スヌープがリトライ条件を伴なわずに前記システム
・バスに返ると、それに応答して前記メモリ階層構造の
システム・メモリ内において前記ライトスルー・ストア
・オペレーションを完了するステップと、 を含む、請求項1記載の方法。
4. The processor and the system bus using the data address of the write-through store operation from an external snoop path of the system bus until the write-through store operation is successful. Snooping a cache that is not interposed between: further arbitrating the system bus for the write-through store operation; and the data address of the write-through store operation. To the external snoop path of the system bus; and comparing the data addresses with respective address tag arrays in a cache not interposed between the processor and the system bus. The system; Maintaining the data address along the external snoop path in response to a retry response, if any, returned to the bus; and when the snoop returns to the system bus without a retry condition, Responsively completing the write-through store operation in the system memory of the memory hierarchy.
【請求項5】 システム・バスおよびメモリ階層構造に
接続される複数のプロセッサを備え、前記メモリ階層構
造が複数のキャッシュ・レベルを含むデータ処理システ
ムにおいてライトスルー・ストア・オペレーションでキ
ャッシュ・コヒーレンシを維持するシステムであって、 1つのプロセッサからライトスルー・ストア・オペレー
ションを、該プロセッサと前記システム・バスの間に介
挿された複数のキャッシュを介して前記システム・バス
に渡す手段と、 前記介挿された複数のキャッシュのうち、前記ライトス
ルー・ストア・オペレーションに関してキャッシュ・ヒ
ットが得られたキャッシュにおいて前記ライトスルー・
ストア・オペレーションを実行する手段と、 前記ライトスルー・ストア・オペレーションが成功する
まで、前記システム・バスの外部スヌープ・パスから、
前記ライトスルー・ストア・オペレーションのデータ・
アドレスを用いて、前記プロセッサと前記システム・バ
スの間に介挿されていないキャッシュをスヌープする手
段と、 を含むシステム。
5. A system, comprising: a plurality of processors connected to a system bus and a memory hierarchy, wherein the memory hierarchy maintains cache coherency in a write-through store operation in a data processing system including a plurality of cache levels. Means for passing a write-through store operation from one processor to the system bus via a plurality of caches interposed between the processor and the system bus; Out of the plurality of caches that have obtained a cache hit for the write-through store operation,
Means for performing a store operation; and from an external snoop path on the system bus until the write-through store operation is successful.
The data of the write-through store operation
Means for snooping a cache that is not interposed between the processor and the system bus using an address.
【請求項6】 前記1つのプロセッサからライトスルー
・ストア・オペレーションを、該プロセッサと前記シス
テム・バスの間に介挿された複数のキャッシュを介して
前記システム・バスに渡す手段は、さらに、 前記プロセッサが前記ライトスルー・ストア・オペレー
ションの前記データ・アドレスを前記介挿された複数の
キャッシュに渡すためにローカル・バスのバス・アービ
トレーションを行う手段を含む、請求項5記載のシステ
ム。
6. A means for passing a write-through store operation from said one processor to said system bus via a plurality of caches interposed between said processor and said system bus, 6. The system of claim 5, further comprising means for a processor to perform bus arbitration of a local bus to pass the data address of the write-through store operation to the interposed caches.
【請求項7】 前記介挿された複数のキャッシュのう
ち、前記ライトスルー・ストア・オペレーションに関し
てキャッシュ・ヒットが得られたキャッシュにおいて前
記ライトスルー・ストア・オペレーションを実行する手
段は、さらに、 前記ライトスルー・ストア・オペレーションの前記デー
タ・アドレスと、前記介挿されたキャッシュ内のそれぞ
れのアドレス・タグ配列を比較する手段と、 前記データ・アドレスが前記アドレス・タグ配列内のい
ずれかのタグに一致するとキャッシュ・ヒットを返す手
段と、 を含む、請求項5記載のシステム。
7. The means for executing the write-through store operation in a cache in which a cache hit is obtained for the write-through store operation among the plurality of interposed caches, further comprising: Means for comparing the data address of the through store operation with respective address tag arrays in the interposed cache; and wherein the data address matches any tag in the address tag array. 6. The system of claim 5, further comprising: means for returning a cache hit.
【請求項8】 前記ライトスルー・ストア・オペレーシ
ョンが成功するまで、前記システム・バスの外部スヌー
プ・パスから、前記ライトスルー・ストア・オペレーシ
ョンのデータ・アドレスを用いて、前記プロセッサと前
記システム・バスの間に介挿されていないキャッシュを
スヌープする手段は、さらに、 前記ライトスルー・ストア・オペレーションのために前
記システム・バスのアービトレーションを行う手段と、 前記ライトスルー・ストア・オペレーションの前記デー
タ・アドレスを前記システム・バスの前記外部スヌープ
・パスに渡す手段と、 前記データ・アドレスと、前記プロセッサと前記システ
ム・バスの間に介挿されていないキャッシュ内のそれぞ
れのアドレス・タグ配列を比較する手段と、 前記システム・バスに返されるリトライ応答があればそ
れに応答して、前記外部スヌープ・パスに沿って前記デ
ータ・アドレスを維持する手段と、 前記スヌープがリトライ条件を伴なわずに前記システム
・バスに返ると、それに応答して前記メモリ階層構造の
システム・メモリ内において前記ライトスルー・ストア
・オペレーションを完了する手段と、 を含む、請求項5記載のシステム。
8. The processor and the system bus using a data address of the write-through store operation from an external snoop path of the system bus until the write-through store operation succeeds. Means for snooping a cache not interposed between: further means for arbitrating the system bus for the write-through store operation; and the data address of the write-through store operation. Means for passing the data address to the external snoop path of the system bus; and means for comparing the data address with respective address tag arrays in a cache not interposed between the processor and the system bus. And returned to the system bus Means for maintaining the data address along the external snoop path in response to a retry response, if any; and in response to the snoop returning to the system bus without a retry condition. Means for completing the write-through store operation in the system memory of the memory hierarchy.
JP2000180625A 1999-06-18 2000-06-15 Method and system for maintaining cache coherency for write-through-store operation in multiprocessor system Pending JP2001043133A (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US33651699A true 1999-06-18 1999-06-18
US09/336516 1999-06-18

Publications (1)

Publication Number Publication Date
JP2001043133A true JP2001043133A (en) 2001-02-16

Family

ID=23316452

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000180625A Pending JP2001043133A (en) 1999-06-18 2000-06-15 Method and system for maintaining cache coherency for write-through-store operation in multiprocessor system

Country Status (4)

Country Link
JP (1) JP2001043133A (en)
KR (1) KR100380674B1 (en)
CN (1) CN1149494C (en)
TW (1) TW548547B (en)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1320464C (en) * 2003-10-23 2007-06-06 英特尔公司 Method and equipment for maintenance of sharing consistency of cache memory
US7788451B2 (en) 2004-02-05 2010-08-31 Micron Technology, Inc. Apparatus and method for data bypass for a bi-directional data bus in a hub-based memory sub-system
US7257683B2 (en) 2004-03-24 2007-08-14 Micron Technology, Inc. Memory arbitration system and method having an arbitration packet protocol
US7725619B2 (en) * 2005-09-15 2010-05-25 International Business Machines Corporation Data processing system and method that permit pipelining of I/O write operations and multiple operation scopes
US7568073B2 (en) * 2006-11-06 2009-07-28 International Business Machines Corporation Mechanisms and methods of cache coherence in network-based multiprocessor systems with ring-based snoop response collection
GB0623276D0 (en) * 2006-11-22 2007-01-03 Transitive Ltd Memory consistency protection in a multiprocessor computing system
US20120254541A1 (en) * 2011-04-04 2012-10-04 Advanced Micro Devices, Inc. Methods and apparatus for updating data in passive variable resistive memory
US10970225B1 (en) * 2019-10-03 2021-04-06 Arm Limited Apparatus and method for handling cache maintenance operations

Also Published As

Publication number Publication date
TW548547B (en) 2003-08-21
CN1149494C (en) 2004-05-12
KR20010015008A (en) 2001-02-26
CN1278625A (en) 2001-01-03
KR100380674B1 (en) 2003-04-18

Similar Documents

Publication Publication Date Title
US9513904B2 (en) Computer processor employing cache memory with per-byte valid bits
US8180981B2 (en) Cache coherent support for flash in a memory hierarchy
US8706973B2 (en) Unbounded transactional memory system and method
US7305522B2 (en) Victim cache using direct intervention
US7305523B2 (en) Cache memory direct intervention
US6272602B1 (en) Multiprocessing system employing pending tags to maintain cache coherence
US20130080709A1 (en) System and Method for Performing Memory Operations In A Computing System
JPH10254773A (en) Accessing method, processor and computer system
EP1311956B1 (en) Method and apparatus for pipelining ordered input/output transactions in a cache coherent, multi-processor system
JPH09138779A (en) Snoop processing method
JP2022534892A (en) Victim cache that supports draining write-miss entries
JP2004199677A (en) System for and method of operating cache
JP2000250883A (en) Method and system for avoiding loss of data caused by cancel of transaction in unequal memory access system
JPH0619786A (en) Method and apparatus for maintenance of cache coference
US7051163B2 (en) Directory structure permitting efficient write-backs in a shared memory computer system
JP2000250881A (en) Method and system for avoiding lie block caused by collision of write back in unequal memory access system
US8856478B2 (en) Arithmetic processing unit, information processing device, and cache memory control method
US20050273563A1 (en) System and method for canceling write back operation during simultaneous snoop push or snoop kill operation in write back caches
US7000080B2 (en) Channel-based late race resolution mechanism for a computer system
US10031848B2 (en) Method and apparatus for improving snooping performance in a multi-core multi-processor
JP2001043133A (en) Method and system for maintaining cache coherency for write-through-store operation in multiprocessor system
US20050120183A1 (en) Local region table for storage of information regarding memory access by other nodes
US8108621B2 (en) Data cache with modified bit array
US5895486A (en) Method and system for selectively invalidating cache lines during multiple word store operations for memory coherence
US8108624B2 (en) Data cache with modified bit array

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20040629