JP2003524248A - Method and apparatus for preventing cache data eviction during atomic operations and maintaining high snoop traffic performance - Google Patents

Method and apparatus for preventing cache data eviction during atomic operations and maintaining high snoop traffic performance

Info

Publication number
JP2003524248A
JP2003524248A JP2001562159A JP2001562159A JP2003524248A JP 2003524248 A JP2003524248 A JP 2003524248A JP 2001562159 A JP2001562159 A JP 2001562159A JP 2001562159 A JP2001562159 A JP 2001562159A JP 2003524248 A JP2003524248 A JP 2003524248A
Authority
JP
Japan
Prior art keywords
cache
address
atomic
request
entry
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
JP2001562159A
Other languages
Japanese (ja)
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.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
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 claimed from US09/513,034 external-priority patent/US6389517B1/en
Priority claimed from US09/513,033 external-priority patent/US6347360B1/en
Application filed by Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of JP2003524248A publication Critical patent/JP2003524248A/en
Pending legal-status Critical Current

Links

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
    • 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/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • 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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/126Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning

Abstract

(57)【要約】 【課題】 アトミック操作が未了の間、スヌープ・フィルタリングを行なうことのできる装置及び方法を提供する。 【解決手段】 本発明の装置は、第1及び第2要求待ち行列とキャッシュを有する。第1要求待ち行列はキャッシュ・アクセス要求を追跡し、第2要求待ち行列はフィルタされるべきスヌープを追跡する。キャッシュは各要求待ち行列について専用ポートを有し、第1要求待ち行列専用の第1ポートは、キャッシュ線のデータ及びタグの両方の修正が可能なデータ及びタグ読書きポートであり、第2要求待ち行列専用な第2ポートは、タグのみポートである。第2ポートはタグのみポートのため、アトミック・アドレスと関連したデータの修正のおそれなくキャッシュ線がロックしている間、スヌープ・フィルタリンクを続けられる。アトミック操作中にキャッシュ・アドレスの追出しを防ぐアトミック・アドレス・ブロックも含む。 (57) [Problem] To provide an apparatus and a method capable of performing snoop filtering while an atomic operation is not completed. An apparatus of the present invention has first and second request queues and a cache. The first request queue tracks cache access requests, and the second request queue tracks snoops to be filtered. The cache has a dedicated port for each request queue, the first port dedicated to the first request queue is a data and tag read / write port that can modify both data and tags on the cache line, and a second request port. The second port dedicated to the queue is a tag only port. Since the second port is a tag-only port, the snoop filter link can be continued while the cache line is locked without fear of modification of the data associated with the atomic address. Also includes an atomic address block that prevents eviction of cache addresses during atomic operations.

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【発明の属する技術分野】TECHNICAL FIELD OF THE INVENTION

本発明は、アトミック操作中のキャッシュ・データ追出し防止及び高スヌープ
・トラフイック処理能力を維持する方法およびその装置に関する。
The present invention relates to a method and apparatus for maintaining cache data eviction and maintaining high snoop traffic throughput during atomic operations.

【0002】[0002]

【従来の技術】[Prior art]

図1は、典型的な従来のマルチプロセッサ・システム30をブロック図形式で
示す。システム30は、システム30は、メインメモリ36に共有バス35を介
して結合されたいくつかのプロセッサ32a、32b、32cを含む。各プロセ
ッサ32は、N重化セット連想である、それ自身の非ブロッキング・キャッシャ
34を有する。各キャッシュ索引はデータ及びそのデータと関連したメモリアド
レスを識別するためのタグを含む。これに加えて、一貫性(コヒーレンシー)ビ
ットが、データ・エントリイのキャッシュ一貫性状態を示すためにキャッシュ内
のデータの各項目と関連している。MOSIキャッシュ一貫性プロトコルによる
と、各キャッシュ・データ・エントリイは、4つの状態:M、O、S、又はIの
内の1つである。I状態は、無効状態を示す。所有状態、O、は、キャッシュ索
引と関連したデータは有効で、メモリ内のバージョンからは修正されており、特
定のキャッシュにより所有されており、そして別のキャッシュはそのデータの共
有コピーを持っているであろうことを示す。O状態の要求線を持つプロセッサは
他のプロセッサからの要求に対してデータでもって応答する。共有状態、S、は
、キャッシュ索引と関連するデータは有効であり、そして、1つ又は複数のプロ
セッサがデータのコピーを共有することを示す。修正状態、M、は、有効なデー
タがそれがキャッシュ内に読み込まれてから修正されており、そして他のプロセ
ッサはそのコピーを持たないことを示す。
FIG. 1 illustrates in block diagram form a typical conventional multiprocessor system 30. The system 30 includes a number of processors 32a, 32b, 32c coupled to a main memory 36 via a shared bus 35. Each processor 32 has its own non-blocking cache 34, which is N-fold set-associative. Each cache index includes a tag to identify the data and the memory address associated with that data. In addition to this, a coherency bit is associated with each item of data in the cache to indicate the cache coherency state of the data entry. According to the MOSI cache coherency protocol, each cache data entry is one of four states: M, O, S, or I. The I state indicates an invalid state. Owned state, O, indicates that the data associated with the cache index is valid, has been modified from the in-memory version, is owned by a particular cache, and another cache has a shared copy of that data. Indicate that you will. A processor having a request line in the O state responds to a request from another processor with data. The shared state, S, indicates that the data associated with the cache index is valid and one or more processors share a copy of the data. The modified state, M, indicates that valid data has been modified since it was read into the cache and the other processor does not have a copy of it.

【0003】 キャッシュ一貫性状態は、キャッシュ・アクセス要求がミス又はヒットかどう
かを判断するのに役立つ。キャッシュ索引の状態の1つが、要求されたアドレス
と一致するタグ及び無効データを示していない状態のキャッシュ一貫性状態を含
む時に、キャッシュ・ヒットが発生する。索引組のタグのいずれもが要求された
アドレスのそれと一致していないか、又は、一致したタグが無効データを含む状
態の時に、キャッシュ・ミスが発生する。図2は、MOSIキャッシュ一貫性状
態がさまざまなタイプのミスに応答してどのように遷移するかを示す。MOSI
状態間の遷移を発生するイベントは、頭文字のIST、ILD、FST及びFL
Dを使用して示されている。ここで使用されている「ILD」は、内部ロード、
すなわち、キャッシュと関連したプロセッサからのロード要求を示す。同じく、
「IST」は、内部記憶を示す。「FLD」は、遷移を生じた他所ロード、すな
わち、キャッシュと関連していないプロセッサから来るキャッシュへのロード要
求、を示す。「FST」は他所記憶を示す。
The cache coherency state helps determine if a cache access request is a miss or a hit. A cache hit occurs when one of the states in the cache index contains a tag that matches the requested address and a cache coherency state that does not indicate invalid data. A cache miss occurs when none of the tags in the index set match that of the requested address, or the matching tag is in a state that contains invalid data. FIG. 2 illustrates how the MOSI cache coherency state transitions in response to various types of misses. MOSI
The events that cause transitions between states are IST, ILD, FST, and FL, which are initials.
It is shown using D. "ILD" used here is an internal load,
That is, it indicates a load request from the processor associated with the cache. Similarly,
“IST” indicates internal storage. "FLD" indicates an elsewhere load that caused a transition, ie, a load request to the cache coming from a processor that is not associated with the cache. “FST” indicates the memory of another place.

【0004】 「スヌーピング(監視)」とは、マルチプロセッサ・システム内の1つのプロ
セッサが、データの所望の項目を他所キャッシュが記憶しているかどうかを判断
するプロセスをいう。ここで使用されるように、スヌープは、特定のアドレス上
の追出し、例えば、FLD又はFST、についての潜在的な将来の要求を表す。
各スヌープは、所望のアドレス及び操作を示す。各スヌープは、システム30内
の各プロセッサ32への放送(ブロードキャスト)であるが、たった1つのプロ
セッサ32のみが各スヌープに応答する。応答するプロセッサ32は、所望のア
ドレスと関連したデータを記憶しているキャッシュ34と関連しているものであ
る。システム30内の各プロセッサ32は、スヌープ応答を取扱う外部インター
フェイス・ユニット(EIU)を含む。
“Snooping” refers to the process by which one processor in a multiprocessor system determines if a cache elsewhere stores a desired item of data. As used herein, snoop represents a potential future request for eviction on a particular address, eg FLD or FST.
Each snoop indicates the desired address and operation. Each snoop is a broadcast to each processor 32 in the system 30, but only one processor 32 responds to each snoop. Responsive processor 32 is associated with cache 34 which stores data associated with the desired address. Each processor 32 in system 30 includes an external interface unit (EIU) that handles snoop responses.

【0005】 図3は、ブロック図形式で、EIU40及びそれのバス35及びキャッシュ3
4への結合を示す。EIU40は、バス35からスヌープを受取る。EIU40
は、各スヌープをキャッシュ・コントローラ42へ転送して、スヌープをそれが
フィルターできるまで要求待ち行列46内に記憶する。スヌープ・フィルタリン
グは、スヌープがキャッシュ34内でスヌープ・ヒット又はミスしたかどうかを
判断して、それをEIU40に指示することを含む。図3の構成では、最良の環
境下で、EIU40によるスヌープの受取りとそれへの応答の間の待ち時間は大
変長くなる。スヌープ待ち時間は、普通、例えば、未了のアトミック操作など、
他の未了のキャッシュ・アクセス要求に応答して、その理論的な最小値から増加
する。アトミック操作とは、中断無しに完了されなければならない計算タスクを
いう。プロセッサ32は、典型的に、単一のアドレスについて2つのサブ操作と
してアトミック操作を実行する。中断無しに他の操作に続くアドレス上の1つの
サブ操作である。1つのアトミック操作は、例えば、アトミック・ロードである
。これは、中断無しに直ちに同じアドレスに記憶することが続く、ロードである
。アトミック操作が未了中にアトミック操作と関連したデータを保護するために
、大部分のスヌープは未了のアトミック操作と関連するもの以外のアドレスにつ
いてであるけれども、いくつかのプロセッサはスヌープのフィルタリングを中止
する。2つの要素がこの手法に必要である。第1に、キャッシュは、単一のデー
タ及びタグ読書きポートを含み、これはヒットに応答して、キャッシュ線のデー
タ及びタグの両方の修正を可能にする。第2に、大部分のプロセッサはスヌープ
・ヒットに直ちにデータ追出しを開始することにより応答する。これは、アトミ
ック操作中には許されず、従って、アトミック操作が未了中はキャッシュ37へ
の全てのアクセスは停止される。しかし、アトミック操作の待ち時間は大変長い
ため、EIU40がスヌープをバック・スロットルすることを強いられる。他の
操作もまた、プロセッサがスヌープされれべきアドレスに関係無く、スヌープ・
フィルタリングを中止するだろう。従って、他の未了のアクセス要求とは独立し
て、スヌープをフィルタリングするための改良された方法及び装置への必要性が
存在する。
FIG. 3 is a block diagram form of the EIU 40 and its bus 35 and cache 3.
Binding to 4 is shown. The EIU 40 receives the snoop from the bus 35. EIU40
Transfers each snoop to the cache controller 42 and stores the snoop in the request queue 46 until it can be filtered. Snoop filtering involves determining if a snoop hits or misses in cache 34 and directs it to EIU 40. In the configuration of FIG. 3, under the best of circumstances, the latency between receiving and responding to the snoop by the EIU 40 is very long. Snoop wait times are usually, for example, unfinished atomic operations,
In response to another outstanding cache access request, increase from its theoretical minimum. Atomic operations are computational tasks that must be completed without interruption. Processor 32 typically performs atomic operations as two sub-operations on a single address. A sub-operation on an address that follows another operation without interruption. One atomic operation is, for example, an atomic load. This is a load followed by immediate storage at the same address without interruption. To protect the data associated with an atomic operation while the atomic operation is pending, most snoops are for addresses other than those associated with the pending atomic operation, but some processors do snoop filtering. Abort. Two elements are needed for this approach. First, the cache contains a single data and tag read / write port, which allows modification of both the cache line data and the tag in response to a hit. Second, most processors respond to snoop hits by immediately initiating data eviction. This is not allowed during an atomic operation, so all access to cache 37 is suspended while the atomic operation is incomplete. However, the latency of atomic operations is so long that the EIU 40 is forced to back throttle the snoop. Other operations will also snoop, regardless of the address at which the processor should be snooped.
Will stop filtering. Therefore, there is a need for improved methods and apparatus for filtering snoops independently of other outstanding access requests.

【0006】[0006]

【発明の開示】DISCLOSURE OF THE INVENTION

本発明の1つの実施の形態は、アトミック操作が実行されている間に、スヌー
プ・フィルタリングを許容する装置を提供する。この装置は、第1及び第2の要
求待ち行列及びキャッシュを含む。第1待ち行列は、キャッシュ・アクセス要求
を追跡し、一方、第2待ち行列は、まだフィルタされなければならないスヌープ
を追跡する。キャッシュは、各要求待ち行列についての専用ポートを含む。第1
ポートは、第1要求待ち行列に専用であって、データ及びタグ・ポートであり、
キャッシュの内容の修正を許容する。これとは対照的に、第2ポートは第2要求
待ち行列に専用であり、タグのみのポートである。第2ポートは、タグのみポー
トであるため、スヌープ・フィルタリングは、アトミック・アドレスと関連した
データを修正するどんなおそれなく、スヌープ・フィルタリングをアトミック操
作中に続けることができる。
One embodiment of the present invention provides an apparatus that allows snoop filtering while atomic operations are being performed. The device includes first and second request queues and a cache. The first queue keeps track of cache access requests, while the second queue keeps track of snoops that still have to be filtered. The cache contains a dedicated port for each request queue. First
The port is dedicated to the first request queue and is a data and tag port,
Allow modification of cache contents. In contrast, the second port is dedicated to the second request queue and is a tag-only port. Since the second port is a tag only port, snoop filtering can continue snoop filtering during atomic operations without any fear of modifying the data associated with the atomic address.

【0007】 本発明の別の実施の形態は、アトミック操作中にキャッシュ・データを追出す
ことを防止する方法及び装置を提供する。この装置は、第1要求待ち行列、第2
要求待ち行列、及びアトミック・アドレス・ブロックを含む。第1要求待ち行列
は、各キャッシュ・アクセス要求についてのエントリイを記憶する。各エントリ
イは、アドレス・ビットの第1組及びアトミック・ビットを含む。アドレス・ビ
ットの第1組は、キャッシュ・アクセス要求に関連した第1キャッシュ・アドレ
スを表し、そしてアトミック・ビットはキャッシュ・アクセス要求がアトミック
操作と関連しているかどうかを指示する。第2要求待ち行列は、各キャッシュ追
出し要求についてのエントリイを記憶する。第2要求待ち行列の各エントリイは
、キャッシュ追出し要求に関連した第2キャッシュ・アドレスを指示するアドレ
ス・ビットの第2組を含む。アトミック・アドレス・ブロックは、第3キャッシ
ュ・アドレス上のアトミック操作中に第3キャッシュ・アドレスの追出しを防止
する。最初のクロックサイクル中に、アトミック・アドレス・ブロックは、それ
らがアトミック操作を表すかどうか判断するために、第1待ち行列の第1エント
リイを表す信号の第1組を受け取りそして解析する。もし、そうならば、アトミ
ック・アドレス・ブロックはアドレス・ビットの第3組を第1キャッシュ・アド
レスを表す値に設定する。アトミック操作が実行されている第2クロック・サイ
クル中、アトミック・アドレス・ブロックは、アドレスビットの第2組がアドレ
ス・ビットの第3組と同じキャッシュ・アドレスを表しているかどうかを判断す
るために、アドレスビットの第2組を表す信号の第2組を受取り、解析する。も
し、そうならば、アトミック・アドレス・ブロックは第2要求待ち行列のサービ
スを停止し、よって、アトミック操作が実行されているキャッシュからのデータ
の追出しを防止する。 添付図面を参照して、以下の発明の詳細な説明を読むことにより本発明の追加
の特徴が明らかとなる。
Another embodiment of the present invention provides a method and apparatus for preventing flushing cached data during atomic operations. This device includes a first request queue, a second request queue, and a second request queue.
Includes request queue and atomic address block. The first request queue stores an entry for each cache access request. Each entry includes a first set of address bits and an atomic bit. The first set of address bits represents the first cache address associated with the cache access request, and the atomic bits indicate whether the cache access request is associated with an atomic operation. The second request queue stores an entry for each cache eviction request. Each entry in the second request queue includes a second set of address bits indicating a second cache address associated with the cache eviction request. The atomic address block prevents eviction of the third cache address during atomic operations on the third cache address. During the first clock cycle, the atomic address blocks receive and parse a first set of signals representing the first entry in the first queue to determine if they represent an atomic operation. If so, the atomic address block sets the third set of address bits to a value representing the first cache address. During the second clock cycle in which the atomic operation is being performed, the atomic address block determines if the second set of address bits represents the same cache address as the third set of address bits. , Receiving and analyzing a second set of signals representative of the second set of address bits. If so, the atomic address block stops servicing the second request queue, thus preventing eviction of data from the cache where the atomic operation is being performed. Additional features of the present invention will become apparent upon reading the following detailed description of the invention with reference to the accompanying drawings.

【0008】[0008]

【詳細な説明】[Detailed description]

A.スヌープ・フィルタリング回路の概観 図4は、マルチプロセッサ・システム50のプロセッサ33の一部をブロック
図形式で示す。プロセッサ33は、アトミック操作の未了中にスヌープをフィル
タすることを続けることにより、スヌープ待ち時間を改良する。プロセッサ33
は、この改良をキャッシュ37、キャッシュ・アクセス要求待ち行列52、及び
スヌープ・フィルタリング要求待ち行列54を使用することで達成する。キャッ
シュ・コントローラ43は、ネイティブ、又は内部のキャッシュ・アクセス要求
を追跡するためにキャッシュ・アクセス待ち行列52を使用し、及びスヌープを
フィルタするためにスヌープ・フィルタリング要求待ち行列54を使用する。ア
トミック操作の実行中にでさえ、各クロック・サイクルで、キャッシュ・アクセ
ス要求待ち行列52及びスヌープ・フィルタリング要求待ち行列54は要求をキ
ャッシュ37の専用ポートに結合する。スヌープ・フィルタリング要求待ち行列
54のポートは読出し専用ポートであるため、アトミック操作中に、アトミック
操作が読出し−書込みポートを介して実行されているアドレス(アトミック・ア
ドレス)と関連したデータを修正する危険無くして、スヌープのフィルタリング
を続けることができる。スヌープがヒットした時、キャッシュ37は、外部イン
ターフェイス・ユニット40に通知して、それが追出し待ち行列58へ追出し要
求を発することができるようにする。これに加えて、プロセッサ33は、アトミ
ック操作中にアトミック・アドレスを追出しから保護するアトミック・アドレス
・ブロック56を含む。アトミック・アドレス・ブロック56は、キャッシュ・
アクセス要求待ち行列52からのキャッシュ・アクセス要求を監視することによ
り、アトミック操作の開始を検出する。そして、アトミック・アドレス・ブロッ
ク56は、アトミック・アドレスの追出しが要求された時を検出するために、追
出し待ち行列58を監視する。アトミック・アドレス・ブロック56は、キャッ
シュ・コントローラ43が追出し待ち行列58からの追出し要求の選択を阻止す
る阻止信号を出力することにより、アトミック・アドレスの追出しを防止する。
A. Snoop Filtering Circuit Overview FIG. 4 illustrates, in block diagram form, a portion of processor 33 of multiprocessor system 50. Processor 33 improves snoop latency by continuing to filter snoops during incomplete atomic operations. Processor 33
Achieves this improvement by using cache 37, cache access request queue 52, and snoop filtering request queue 54. The cache controller 43 uses the cache access queue 52 to keep track of native or internal cache access requests and the snoop filtering request queue 54 to filter snoops. At each clock cycle, even during execution of atomic operations, cache access request queue 52 and snoop filtering request queue 54 couple requests to a dedicated port of cache 37. Since the port of the snoop filtering request queue 54 is a read-only port, there is a danger during an atomic operation that the atomic operation modifies the data associated with the address (atomic address) being executed through the read-write port. You can keep it off and continue snoop filtering. When a snoop is hit, the cache 37 notifies the external interface unit 40 so that it can issue a eviction request to the eviction queue 58. In addition to this, the processor 33 includes an atomic address block 56 that protects the atomic address from eviction during atomic operations. The atomic address block 56 is a cache
The start of an atomic operation is detected by monitoring the cache access request from the access request queue 52. The atomic address block 56 then monitors the eviction queue 58 to detect when an atomic address eviction is requested. The atomic address block 56 prevents the atomic address from being flushed by outputting a blocking signal that blocks the cache controller 43 from selecting the flush request from the flush queue 58.

【0009】 B.スヌープ・フィルタリング回路の待ち行列 キャッシュ・アクセス要求待ち行列52は、好ましくは、キャッシュ37への
未解決の各アクセス要求についてのエントリイを記憶するメモリ装置として実現
される。図5は、キャッシュ・アクセス要求待ち行列52のエントリイ60を示
す。キャッシュ・アクセス要求待ち行列52が支援できるエントリイの最大数は
設計上の選択である。エントリイ60は、単一の未解決のキャッシュ・アクセス
要求に関する情報を含み、そして、アドレス・ビット63、タグ・ビット63、
アトミック・ビット64、Ld/記憶ビット65及び有効ビット66を含む。ア
ドレス・ビット62及びタグ・ビット63は、要求がアクセスを求めるメモリ・
アドレスを指示する。アトミック・ビット64は、キャッシュ・アクセス要求が
アトミック操作のサブ操作であるかどうかを指示する。Ld/記憶ビット65は
、キャッシュ・アクセス要求がロード又は記憶操作のためかどうかを指示する。
有効ビット66は、関連するエントリイが有効かどうかを指示する。キャッシャ
・コントローラ43は、キャッシュ・アクセス要求待ち行列52の内容を制御す
る。
B. Snoop Filtering Circuit Queue Cache access request queue 52 is preferably implemented as a memory device that stores an entry for each outstanding access request to cache 37. FIG. 5 shows the entry 60 of the cache access request queue 52. The maximum number of entries that the cache access request queue 52 can support is a design choice. Entry 60 contains information about a single outstanding cache access request, and includes address bit 63, tag bit 63,
Includes atomic bit 64, Ld / store bit 65 and valid bit 66. Address bit 62 and tag bit 63 are the memory bits that the request seeks to access.
Specify the address. Atomic bit 64 indicates whether the cache access request is a sub-operation of the atomic operation. Ld / store bit 65 indicates whether the cache access request is for a load or store operation.
Valid bit 66 indicates whether the associated entry is valid. The cashier controller 43 controls the contents of the cache access request queue 52.

【0010】 キャッシュ・コントローラ43はまた、スヌープ・フィルタリング要求待ち行
列54の内容を制御する。好ましくは、スヌープ・フィルタリング要求待ち行列
54は、未解決の各スヌープについてのエントリイを記憶するメモリ装置として
実現される。図6は、スヌープ・フィルタリング要求待ち行列54のエントリイ
70を示す。要求待ち行列54が支援できるエントリイの最大数は設計上の選択
である。エントリイ70は、単一の未解決のスヌープに関する情報を含み、そし
て、アドレス・ビット72、タグ・ビット73、FLD/FSTビット74及び
有効ビット76を含む。アドレス・ビット72及びタグ・ビット73は、スヌー
プがアクセスを求めるメモリ・アドレスを指示する。FLD/FSTビット74
は、スヌープが他所ロード又は他所記憶に関連するかどうかを指示する。有効ビ
ット76は、関連するエントリイが有効かどうかを指示する。
Cache controller 43 also controls the contents of snoop filtering request queue 54. Preferably, snoop filtering request queue 54 is implemented as a memory device that stores an entry for each outstanding snoop. FIG. 6 shows an entry 70 of the snoop filtering request queue 54. The maximum number of entries that the request queue 54 can support is a design choice. Entry 70 contains information about a single outstanding snoop, and includes address bit 72, tag bit 73, FLD / FST bit 74 and valid bit 76. Address bit 72 and tag bit 73 indicate the memory address the snoop seeks for access. FLD / FST bit 74
Indicates whether the snoop is associated with out-of-place load or out-of-place memory. Valid bit 76 indicates whether the associated entry is valid.

【0011】 図11は、追出し待ち行列58のエントリイ55を示す。追出し待ち行列58
が支援できるエントリイの最大数は設計上の選択である。エントリイ55は、単
一の未解決の追出し要求に関する情報を含み、そして、アドレス・ビット57、
及び有効ビット59を含む。アドレス・ビット57は、追出しが実行されるメモ
リ・アドレスを指示する。有効ビット59は、関連するエントリイが有効かどう
かを指示する。キャッシュ・コントローラ43は、スヌープ・フィルタリング回
路51からの停止信号に応答して追出し待ち行列58のサービスを停止する。
FIG. 11 shows the entry 55 of the eviction queue 58. Ejection queue 58
The maximum number of entries that can be supported by is a design choice. Entry 55 contains information about a single outstanding eviction request, and address bit 57,
And a valid bit 59. Address bit 57 points to the memory address where the eviction is performed. Valid bit 59 indicates whether the associated entry is valid. The cache controller 43 stops the service of the eviction queue 58 in response to the stop signal from the snoop filtering circuit 51.

【0012】 C.アトミック・アドレス・ブロック 図7は、ブロック図形式で、アトミック・アドレス・ブロック56及びそれが
結合するキャッシュ・アクセス要求待ち行列52、スヌープ・フィルタリング要
求待ち行列54及び追出し待ち行列58を示す。アトミック・アドレス・ブロッ
ク56は、アトミック・アドレス・レジスタ80、アドレス書込み回路100、
ロック・ビット制御回路110及びアトミック・ヒット決定回路130を含む。
アドレス書込み回路100及びロック・ビット制御回路110は、キャッシュ・
アクセス要求待ち行列52によりキャッシュ37に結合されたキャッシュ・アク
セス要求を監視する。キャッシュ・アクセス要求がアトミック操作の第1の操作
を含む時、アドレス書込み回路100は、アトミック・アドレスをアトミック・
アドレス・レジスタ80内に記憶する。ロック・ビット制御回路110は、同じ
環境に対して、アトミック・アドレスをロッキングすることよりアトミック操作
中の未了中のデータへのアクセスを防止して応答する。アトミック操作の未了中
、アトミック・ヒット検出回路130は、追出し待ち行列58からの追出し要求
を監視する。アトミック操作中、追出し要求のサービスはアトミック・アドレス
についての追出し要求を除いて許容される。アトミック操作中に追出し要求がア
トミック・アドレスにヒットする時、アトミック・ヒット検出回路130はその
停止信号を出力して、キャッシュ・コントローラ43が追出し待ち行列58をサ
ービスするのを中止させる。
C. Atomic Address Block FIG. 7 shows, in block diagram form, an atomic address block 56 and its associated cache access request queue 52, snoop filtering request queue 54 and eviction queue 58. The atomic address block 56 includes an atomic address register 80, an address write circuit 100,
It includes a lock bit control circuit 110 and an atomic hit decision circuit 130.
The address write circuit 100 and the lock bit control circuit 110 are
The access request queue 52 monitors cache access requests bound to the cache 37. When the cache access request includes the first operation of the atomic operation, the address write circuit 100 makes the atomic address atomic.
Stored in address register 80. The lock bit control circuit 110 responds to the same environment by locking the atomic address to prevent access to outstanding data during atomic operations. During the unsuccessful atomic operation, the atomic hit detection circuit 130 monitors the eviction request from the eviction queue 58. During atomic operations, servicing of eviction requests is allowed except for eviction requests for atomic addresses. When a eviction request hits an atomic address during an atomic operation, the atomic hit detect circuit 130 outputs its stop signal to stop the cache controller 43 from servicing the eviction queue 58.

【0013】 アトミック・アドレス・レジスタ80は、好ましくは、プロセッサ33が同時
に未了とすることを許容する各アトミック操作についてのエントリイ90を記憶
するメモリ装置として実現される。好適な実施の形態では、プロセッサ33は、
一時にたった1つのアトミック操作を未了とすることを許容する。図8は、アト
ミック・アドレス・レジスタ80のエントリイ90を示す。エントリイ90は、
アドレス&タグ・ビット92、及びロック・ビット94を含む。アドレス&タグ
・ビット92は、アトミック操作が現在未了であるキャッシュ37内の位置を識
別する。ロック・ビット94は、アトミック・アドレスがアクセスできるかどう
かを示す。ロック・ビット94は、アトミック操作の第1サブ操作と関連したキ
ャッシュ・アクセス要求がキャッシュ・アクセス要求待ち行列52からキャッシ
ュ37へ結合される時に出力される。ロック・ビット94は、アトミック操作の
第2サブ操作の完了時に出力されなくなる。従って、ロック・ビット94はまた
、アトミック・アドレス・レジスタ80の有効性も指示する。
Atomic address register 80 is preferably implemented as a memory device that stores an entry 90 for each atomic operation that allows processor 33 to be outstanding at the same time. In the preferred embodiment, the processor 33 is
Allow only one atomic operation to be outstanding at a time. FIG. 8 shows an entry 90 of the atomic address register 80. The entry 90 is
Includes address & tag bit 92 and lock bit 94. Address & tag bit 92 identifies the location in cache 37 at which the atomic operation is currently outstanding. Lock bit 94 indicates whether the atomic address is accessible. Lock bit 94 is output when a cache access request associated with the first sub-operation of an atomic operation is bound from cache access request queue 52 to cache 37. The lock bit 94 will not be output at the completion of the second sub-operation of the atomic operation. Therefore, lock bit 94 also indicates the validity of atomic address register 80.

【0014】 図7をもう一度参照すると、ロック・ビット制御回路110は、アトミック・
アドレス・レジスタ80のロック・ビット94の状態を制御する。ロック・ビッ
ト制御回路110は、キャッシュ・アクセス要求待ち行列52により線112上
でキャッシュ37に結合された信号を監視する。線112上の信号は、キャッシ
ュ・アクセス要求待ち行列52の単一のエントリイ60を表す。もし、線112
上の信号が、キャッシュ・アクセス要求がアトミック操作の第1サブ操作を表す
ことを示すならば、ロック・ビット制御回路110はアトミック・アドレスが利
用不可能であることを示すためにロック・ビット94を修正する。一方、もし、
線112上の信号がキャッシュ・アクセス要求がアトミック操作の第2サブ操作
の完了を表すことを示すならば、ロック・ビット制御回路はアトミック・アドレ
スが利用可能であること、すなわち、エントリイ90はもはや有効でないこと、
を示すためにロック・ビット94を修正する。
Referring again to FIG. 7, the lock bit control circuit 110 includes an atomic
Controls the state of lock bit 94 of address register 80. Lock bit control circuit 110 monitors the signal coupled to cache 37 on line 112 by cache access request queue 52. The signal on line 112 represents a single entry 60 of the cache access request queue 52. If line 112
If the above signal indicates that the cache access request represents the first sub-operation of the atomic operation, lock bit control circuit 110 indicates lock bit 94 to indicate that the atomic address is unavailable. To fix. On the other hand, if
If the signal on line 112 indicates that the cache access request represents the completion of the second sub-operation of the atomic operation, the lock bit control circuit indicates that the atomic address is available, i.e. the entry key 90 is no longer present. Not valid,
Modify lock bit 94 to indicate

【0015】 アトミック・ヒット検出回路130は、アトミック操作中に、アトミック・ア
ドレスと関連したデータが追出されることを防ぐ。アトミック・ヒット検出回路
130は、アトミック・アドレス・レジスタ80内に記憶されているアトミック
・アドレスを追出し待ち行列58(図11参照)の単一のエントリイ55のアド
レス・ビット57を表す線53上の信号と比較することにより、アトミック・ア
ドレスに対する追出し要求を識別する。もし、アトミック・アドレスがロックさ
れている間に2つのアドレスが一致するならば、アトミック・ヒット検出回路1
30は線138上でキャッシュ・コントローラ43に結合される停止信号を出力
する。キャッシュ・コントローラ43は、追出し待ち行列58内の追出し要求の
選択を停止することにより、停止信号の出力に対して応答する。キャッシュ・コ
ントローラ43は、停止信号が出力されなくなる時、追出し要求のサービスを再
開する。アトミック・ヒット検出回路130はアトミック操作が完了した時に停
止信号を出力しなくなる。
Atomic hit detection circuit 130 prevents the data associated with an atomic address from being evicted during an atomic operation. Atomic hit detect circuit 130 extracts the atomic address stored in atomic address register 80 on line 53 representing address bit 57 of a single entry 55 of eviction queue 58 (see FIG. 11). Identify the eviction request for the atomic address by comparing with the signal. If the two addresses match while the atomic address is locked, the atomic hit detection circuit 1
30 outputs a stop signal coupled to cache controller 43 on line 138. The cache controller 43 responds to the output of the stop signal by stopping the selection of the eviction request in the eviction queue 58. The cache controller 43 restarts the servicing request service when the stop signal is no longer output. The atomic hit detection circuit 130 does not output the stop signal when the atomic operation is completed.

【0016】 D.アドレス書込み回路 図9は、ブロック図形式でアドレス書込み回路100を示す。アドレス書込み
回路100は、好ましくは、各々について1つしか示されていないが、各々が関
連した論理ANDゲート103を持つ一連の平行ラッチ104として実現される
。各ラッチ104は、アドレス及びタグ対の単一ビットを記憶する。各ラッチ1
04のD入力は、キャッシュ・アクセス要求待ち行列52のアドレス及びタグ・
ビットのビットを表す、線102bの1つの線と結合される。ラッチ104の可
能化入力は、論理ANDゲート103の出力により制御される。論理ANDゲー
ト103は、キャッシュ・アクセス要求待ち行列52からの現在のキャッシュ・
アクセス要求がアトミック操作について有効な要求を表す時はつねにラッチ10
4を可能にする。換言すれば、論理ANDゲート103は、有効ビット66を表
す線102c上の信号及びアトミック・ビット64を表す線102a上の信号(
図5参照)がアクティブな時は常に、その出力をアクティブにする。従って、線
102a及び線102c上の信号がサービスされているアトミック操作に対する
有効な要求を示す時、線102b上の信号はラッチ104によりラッチされる。
D. Address Write Circuit FIG. 9 shows the address write circuit 100 in block diagram form. Address write circuit 100 is preferably implemented as a series of parallel latches 104, each having only one associated logical AND gate 103, although only one is shown for each. Each latch 104 stores a single bit of an address and tag pair. Each latch 1
The D input of 04 is the address and tag of the cache access request queue 52.
Combined with one of the lines 102b, which represents a bit of a bit. The enabling input of latch 104 is controlled by the output of logical AND gate 103. The logical AND gate 103 is for the current cache cache from the cache access request queue 52.
Latch 10 whenever the access request represents a valid request for an atomic operation.
4 is possible. In other words, the logical AND gate 103 causes the signal on line 102c representing the valid bit 66 and the signal on line 102a representing the atomic bit 64 (
Whenever (see FIG. 5) is active, its output is activated. Thus, the signal on line 102b is latched by latch 104 when the signals on lines 102a and 102c indicate a valid request for the atomic operation being serviced.

【0017】 E.ロックビット制御回路 図10は、ブロック図形式でロック・ビット制御回路110を示す。ロック・
ビット制御回路110は、論理マルチプレクサ(MUX)150及び選択制御回
路152を含む。線114上のMUX150の出力は、アトミック・アドレス・
レジスタ80内に書込まれるべきロック・ビット94の状態を決定する。入力I
1が選択されたとき、MUX150はロック・ビット94がロックされるべきこ
とを指示する。一方、入力I0が選択されたとき、MUX150は、ロック・ビ
ット94がロック解除されるべき線114上に信号を駆動する。選択制御回路1
52は、第1選択制御回路151及びゼロ選択制御回路156を使用して、入力
I1及びI0間を選択する。I1入力が線155上のS1信号を制御することに
より選択された時、第1選択制御回路151が制御する。第1選択制御回路15
1は、一対の論理ANDゲート153及び154として実現される。論理AND
ゲート153は、線112a及び112d上のその入力信号がキャッシュ・アク
セス要求がサービスを受けていることを示す時、その出力信号を出力して、アト
ミック操作の第1サブ操作を表す。アトミック・アドレスのキャッシュ一貫性状
態がMであり且つ現在の操作がアトミック操作の第1サブ操作である時、論理A
NDゲート154はその出力信号S1を出力する。それ以外は、第1選択制御回
路154は、S1信号を出力しない。MUX150の入力I0が線157上のS
0信号を制御することにより選択される時、ゼロ選択制御回路156が制御する
。ゼロ選択制御回路156は、キャッシュ・アクセス要求待ち行列の各エントリ
イに対して1つのゼロ選択回路156aを含む。図10は、ゼロ選択制御回路1
56aの1つの例を示す。キャッシュ・アクセスが完了した時、関連したキャッ
シュ・アクセス要求がちょうど完了したかどうかを判断するためにゼロ選択回路
156aはその関連エントリイを検査する。比較器158は、この仕事を実行す
る。もし、アドレスが一致し、そして、キャッシュ・アクセス要求エントリイ6
0のアトミック・ビット64及びLd/記憶ビット65を表す信号により表され
るように、キャッシュ・アクセス要求エントリイがアトミック操作の第2サブ操
作と関連するならば、論理AND160は線157上にS0信号を出力し、これ
により、アトミック・アドレス・レジスタ80のロック・ビット94をロック解
除する。
E. Lock Bit Control Circuit FIG. 10 shows the lock bit control circuit 110 in block diagram form. Lock·
The bit control circuit 110 includes a logic multiplexer (MUX) 150 and a selection control circuit 152. The output of MUX 150 on line 114 is the atomic address
Determines the state of lock bit 94 to be written into register 80. Input I
When 1 is selected, MUX 150 indicates that lock bit 94 should be locked. On the other hand, when input I0 is selected, MUX 150 drives a signal on line 114 where lock bit 94 is to be unlocked. Selection control circuit 1
52 uses the first selection control circuit 151 and the zero selection control circuit 156 to select between the inputs I1 and I0. The first selection control circuit 151 controls when the I1 input is selected by controlling the S1 signal on line 155. First selection control circuit 15
1 is implemented as a pair of logical AND gates 153 and 154. Logical AND
Gate 153 outputs its output signal to represent the first sub-operation of an atomic operation when its input signal on lines 112a and 112d indicates that the cache access request is being serviced. Logical A when the cache coherency state of the atomic address is M and the current operation is the first sub-operation of the atomic operation
The ND gate 154 outputs the output signal S1. Otherwise, the first selection control circuit 154 does not output the S1 signal. Input I0 of MUX 150 is S on line 157
Zero selection control circuit 156 controls when selected by controlling the 0 signal. Zero selection control circuit 156 includes one zero selection circuit 156a for each entry in the cache access request queue. FIG. 10 shows a zero selection control circuit 1
One example of 56a is shown. When a cache access is complete, the zero select circuit 156a examines its associated entry to determine if the associated cache access request has just completed. Comparator 158 performs this task. If the addresses match, then the cache access request entry 6
If the cache access request entry is associated with the second sub-operation of the atomic operation, as represented by the signal representing the atomic bit 64 of 0 and the Ld / store bit 65, the logical AND 160 outputs the SO signal on line 157. , Which unlocks the lock bit 94 of the atomic address register 80.

【0018】 F.アトミック・ヒット検出回路 図12は、ブロック図形式でアトミック・ヒット検出回路130を示す。アト
ミック・ヒット検出回路130は、線138上の停止信号を介して、キャッシュ
・コントローラ43に追出し要求キャッシュ・ヒットを信号する。アトミック・
ヒット検出回路130は、比較器170及び論理ANDゲート172を含む。比
較器170は、線53上の信号により表される追出し要求のアドレスを、線92
上の信号により表されるアトミック・アドレスと比較する。追出しアドレスとア
トミック・アドレスが単に一致しただけでは必ずしも追出し待ち行列58が停止
すべきことを意味しない。追出しは、アトミック操作がまだ未了である場合にの
み、停止される。論理ANDゲート172は、この場合かどうかを、ロック・ビ
ット94が出力された場合のみ、線138上にその出力、停止信号、を出力する
ことにより判断する。
F. Atomic Hit Detection Circuit FIG. 12 shows the atomic hit detection circuit 130 in block diagram form. The atomic hit detect circuit 130 signals the eviction request cache hit to the cache controller 43 via the stop signal on line 138. atomic·
The hit detection circuit 130 includes a comparator 170 and a logical AND gate 172. Comparator 170 outputs the address of the eviction request represented by the signal on line 53 to line 92.
Compare with the atomic address represented by the signal above. A mere match between the eviction address and the atomic address does not necessarily mean that the eviction queue 58 should stop. Ejection is stopped only if the atomic operation is still outstanding. The logical AND gate 172 determines if this is the case by outputting its output on line 138, the stop signal, only when the lock bit 94 is output.

【0019】 代替的な実施の形態 本発明が、アトミック操作が未了の間にはアトミック・アドレスを保護するこ
とに関連して説明されたが、本発明の説明は例示であり、本発明を限定するもの
と解すべきでない。例えば、本発明は、ロックされることが望まれるアドレスを
保護するために修正できる。特許請求の範囲により定義される本発明の範囲及び
精神から逸脱することなく、当業者にはさまざまな修正が可能であることが理解
される。
Alternative Embodiments Although the present invention has been described in the context of protecting atomic addresses while an atomic operation is incomplete, the description of the present invention is illustrative and not essential to the invention. It should not be understood as limiting. For example, the present invention can be modified to protect addresses that are desired to be locked. It will be appreciated that various modifications may be made by those skilled in the art without departing from the scope and spirit of the invention as defined by the claims.

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

【図1】 従来のマルチプロセッサ・システムを示す図。[Figure 1]   The figure which shows the conventional multiprocessor system.

【図2】 従来のMOSIキャッシュ一貫性プロトコルの状態を示す図。[Fig. 2]   The figure which shows the state of the conventional MOSI cache coherency protocol.

【図3】 従来の外部インターフェイス・ユニット及びそれたキャッシュとの関係を示す
図。
FIG. 3 is a diagram showing a relationship between a conventional external interface unit and its cache.

【図4】 本発明の実施の形態によるスヌープ・フィルタリング回路を示す図。[Figure 4]   FIG. 3 is a diagram showing a snoop filtering circuit according to an embodiment of the present invention.

【図5】 図4のスヌープ・フィルタリング回路のキャッシュ・アクセス要求待ち行列を
示す図。
5 illustrates a cache access request queue of the snoop filtering circuit of FIG.

【図6】 図4のスヌープ・フィルタリング回路のスヌープ・フィルタリング要求待ち行
列を示す図。
6 shows a snoop filtering request queue of the snoop filtering circuit of FIG.

【図7】 図4のスヌープ・フィルタリング回路のアトミック・アドレス・レジスタ及び
コントロール回路を示す図。
7 is a diagram showing an atomic address register and control circuit of the snoop filtering circuit of FIG. 4;

【図8】 本発明の実施の形態により使用されたアトミック・アドレス・レジスタのエン
トリイを示す図。
FIG. 8 is a diagram showing an entry address of an atomic address register used according to an embodiment of the present invention.

【図9】 図7のコントロール回路のアドレス書込み回路のブロック図。[Figure 9]   FIG. 8 is a block diagram of an address write circuit of the control circuit of FIG. 7.

【図10】 図7のコントロール回路のロック・ビット・コントロール回路のブロック図。[Figure 10]   The block diagram of the lock bit control circuit of the control circuit of FIG.

【図11】 図4のスヌープ・フィルタリング回路の追出し待ち行列を示す図。FIG. 11   FIG. 5 is a diagram showing a queuing queue of the snoop filtering circuit of FIG. 4.

【図12】 図7のコントロール回路のアトミック・ヒット検出回路のブロック図。[Fig. 12]   FIG. 8 is a block diagram of an atomic hit detection circuit of the control circuit of FIG. 7.

───────────────────────────────────────────────────── フロントページの続き (81)指定国 EP(AT,BE,CH,CY, DE,DK,ES,FI,FR,GB,GR,IE,I T,LU,MC,NL,PT,SE,TR),OA(BF ,BJ,CF,CG,CI,CM,GA,GN,GW, ML,MR,NE,SN,TD,TG),AP(GH,G M,KE,LS,MW,MZ,SD,SL,SZ,TZ ,UG,ZW),EA(AM,AZ,BY,KG,KZ, MD,RU,TJ,TM),AE,AG,AL,AM, AT,AU,AZ,BA,BB,BG,BR,BY,B Z,CA,CH,CN,CR,CU,CZ,DE,DK ,DM,DZ,EE,ES,FI,GB,GD,GE, GH,GM,HR,HU,ID,IL,IN,IS,J P,KE,KG,KP,KR,KZ,LC,LK,LR ,LS,LT,LU,LV,MA,MD,MG,MK, MN,MW,MX,MZ,NO,NZ,PL,PT,R O,RU,SD,SE,SG,SI,SK,SL,TJ ,TM,TR,TT,TZ,UA,UG,UZ,VN, YU,ZA,ZW (72)発明者 クッタンナ ベリアッパ エム アメリカ合衆国 テキサス州 78749 オ ースティン サウス モパック 5417 #224 (72)発明者 ツェン アラン アメリカ合衆国 カリフォルニア州 95135 サン ホセ シルヴァーランド ドライヴ 3083 Fターム(参考) 5B005 JJ11 KK14 MM01 NN74 PP22 PP26 ─────────────────────────────────────────────────── ─── Continued front page    (81) Designated countries EP (AT, BE, CH, CY, DE, DK, ES, FI, FR, GB, GR, IE, I T, LU, MC, NL, PT, SE, TR), OA (BF , BJ, CF, CG, CI, CM, GA, GN, GW, ML, MR, NE, SN, TD, TG), AP (GH, G M, KE, LS, MW, MZ, SD, SL, SZ, TZ , UG, ZW), EA (AM, AZ, BY, KG, KZ, MD, RU, TJ, TM), AE, AG, AL, AM, AT, AU, AZ, BA, BB, BG, BR, BY, B Z, CA, CH, CN, CR, CU, CZ, DE, DK , DM, DZ, EE, ES, FI, GB, GD, GE, GH, GM, HR, HU, ID, IL, IN, IS, J P, KE, KG, KP, KR, KZ, LC, LK, LR , LS, LT, LU, LV, MA, MD, MG, MK, MN, MW, MX, MZ, NO, NZ, PL, PT, R O, RU, SD, SE, SG, SI, SK, SL, TJ , TM, TR, TT, TZ, UA, UG, UZ, VN, YU, ZA, ZW (72) Inventor Kuttanna Belliapa M             United States Texas 78749 Oh             Austin South Mopac 5417             # 224 (72) Inventor Zen Alan             United States California             95135 San Jose Silverland             Drive 3083 F term (reference) 5B005 JJ11 KK14 MM01 NN74 PP22                       PP26

Claims (13)

【特許請求の範囲】[Claims] 【請求項1】 アトミック操作中に停止することなくスヌープをフィルタリ
ングするための装置であって、 各キャッシュ・アクセス要求についてのエントリイを記憶する第1要求待ち行
列を有し、第1要求待ち行列の各エントリイはアトミック・ビット及びアドレス
・ビットの第1組を含み、アドレス・ビットの第1組はキャッシュ・アクセス要
求と関連した第1キャッシュ・アドレスを示し、アトミック・ビットはキャッシ
ュ・アクセス要求がアトミック操作と関連しているかどうかを示し、 フィルタされるべき各スヌープについてのエントリイを記憶する第2要求待ち
行列を有し、第2要求待ち行列の各エントリイはアドレス・ビットの第2組を含
み、アドレス・ビットの第2組はスヌープと関連した第2キャッシュ・アドレス
を示し、 第1ポート及び第2ポートを持ったキャッシュを有し、第1ポートは第1要求
待ち行列に専用のデータ及びタグ・ポートであり、第2ポートは第2要求待ち行
列に専用のタグのみポートであり、同じクロック・サイクル中に第1及び第2ポ
ートによる同じアドレスへの同時的なアクセスをキャッシュが許容すること、 を特徴とする装置。
1. A device for filtering snoops during an atomic operation without stopping, comprising a first request queue storing an entry for each cache access request, the first request queue comprising: Each entry includes an atomic bit and a first set of address bits, the first set of address bits indicating a first cache address associated with the cache access request, and the atomic bit indicating that the cache access request is atomic. A second request queue for indicating whether it is associated with an operation and storing an entry for each snoop to be filtered, each entry of the second request queue including a second set of address bits; The second set of address bits indicates the second cache address associated with the snoop, It has a cache with a first port and a second port, the first port is a dedicated data and tag port for the first request queue, and the second port is a dedicated tag-only port for the second request queue. And the cache allows simultaneous access to the same address by the first and second ports during the same clock cycle.
【請求項2】 キャッシュの第1ポートが、読み書きポートである請求項1
に記載の装置。
2. The first port of the cache is a read / write port.
The device according to.
【請求項3】 キャッシュの第2ポートが、読み書きポートである請求項1
に記載の装置。
3. The second port of the cache is a read / write port.
The device according to.
【請求項4】 アトミック操作を実行しているプロセッサのキャッシュへの
アクセスを停止することなく、スヌープをフィルタリングする方法であって、 第1クロック・サイクル中に、第1キャッシュ・アドレスに関連した第1キャ
ッシュ・アクセス要求及び第2キャッシュ・アドレスに関連した第1スヌープを
受取り、 第1キャッシュ・アクセス要求がアトミック操作と関連するかどうかを判断し
、 もし、第1キャッシュ・アクセス要求がアトミック操作と関連するならば、ア
トミック・アドレス・レジスタのアドレス・ビットの第1組を第1キャッシュ・
アドレスを示す値に設定し、 アトミック操作が実行されている第2クロック・サイクル中に、第1スヌープ
をフィルタリングする、 ことを含むことを特徴とする方法。
4. A method for filtering snoops without stopping access to a cache of a processor performing an atomic operation, the method including a first cache address associated with a first cache address during a first clock cycle. Receiving a first cache access request and a first snoop associated with a second cache address, and determining whether the first cache access request is associated with an atomic operation, and if the first cache access request is an atomic operation If relevant, set the first set of address bits of the atomic address register to the first cache
Setting to a value indicative of an address and filtering the first snoop during a second clock cycle during which the atomic operation is being performed.
【請求項5】 第1スヌープの第2キャッシュ・アドレスが第1キャッシュ
・アドレスと同じである請求項4に記載の方法。
5. The method of claim 4, wherein the second cache address of the first snoop is the same as the first cache address.
【請求項6】 アトミック操作中に追出しからキャッシュ・データを保護す
るための装置であって、 各キャッシュ・アクセス要求についてのエントリイを記憶する第1要求待ち行
列を有し、第1要求待ち行列の各エントリイはアトミック・ビット及びアドレス
・ビットの第1組を含み、アドレス・ビットの第1組はキャッシュ・アクセス要
求と関連した第1キャッシュ・アドレスを示し、アトミック・ビットはキャッシ
ュ・アクセス要求がアトミック操作と関連しているかどうかを示し、 各キャッシュ追出し要求についてのエントリイを記憶する第2要求待ち行列を
有し、第2要求待ち行列の各エントリイはキャッシュ追出し要求と関連した第2
キャッシュ・アドレスを示すアドレス・ビットの第2組を含み、 第3キャッシュ・アドレス上のアトミック中に第3キャッシュ・アドレスの追
出しを防止するアトミック・アドレス・ブロックを有し、第1クロック・サイク
ル中、アトミック・アドレス・ブロックは第1要求待ち行列の第1エントリイを
表す信号の第1組を受け取り、コントロール回路は信号の第1組を解析してそれ
らがアトミック操作を表すかどうかを判断し、もし、そうならば、アドレス・ビ
ットの第3組を第1キャッシュ・アドレスを表す値に設定し、アトミック操作が
実行されている第2クロック・サイクル中、アトミック・アドレス・ブロックは
アドレス・ビットの第2組を表す信号の第2組を受取って解析してアドレス・ビ
ットの第2組がアドレス・ビットの第3組と同じキャッシュ・アドレスを表すか
どうかを判断し、もし、そうならば、第2要求待ち行列のサービスを停止するこ
と、 を特徴とする装置。
6. An apparatus for protecting cache data from eviction during atomic operations, the apparatus having a first request queue storing an entry for each cache access request, the first request queue of the first request queue comprising: Each entry includes an atomic bit and a first set of address bits, the first set of address bits indicating a first cache address associated with the cache access request, and the atomic bit indicating that the cache access request is atomic. It has a second request queue that indicates whether it is associated with an operation and stores an entry for each cache eviction request, with each entry in the second request queue being associated with a second cache eviction request.
During the first clock cycle, having an atomic address block that includes a second set of address bits to indicate a cache address and prevents eviction of the third cache address during an atomic on the third cache address. , The atomic address block receives a first set of signals representing a first entry in a first request queue, and a control circuit analyzes the first set of signals to determine whether they represent an atomic operation, If so, the third set of address bits is set to a value representing the first cache address, and during the second clock cycle during which the atomic operation is being performed, the atomic address block is The second set of signals representing the second set is received and analyzed to determine that the second set of address bits is the first set of address bits. Determining if it represents the same cache address as the three sets, and if so, stopping the service of the second request queue.
【請求項7】 アトミック・アドレス・ブロックが、 アドレス・ビットの第3組を含んだアトミック・アドレス・レジスタと、 アトミック・アドレス・レジスタを制御するコントロール回路とを有し、第1
クロック・サイクル中、コントロール回路は信号の第1組を受け取って解析して
それらがアトミック操作を表すかどうかを判断し、もし、そうならば、アドレス
・ビットの第3組を第1キャッシュ・アドレスを表す値に設定し、アトミック操
作が実行されている第2サイクル中、コントロール回路は信号の第2組を受取っ
て解析してアドレス・ビットの第3組がアドレス・ビットの第3組と同じキャッ
シュ・アドレスを表すかどうかを判断すること、 を特徴とする請求項6に記載の装置。
7. The atomic address block comprises an atomic address register including a third set of address bits and a control circuit for controlling the atomic address register, the first address register comprising:
During a clock cycle, the control circuit receives and analyzes the first set of signals to determine if they represent an atomic operation, and if so, the third set of address bits to the first cache address. And a control circuit receives and analyzes the second set of signals during the second cycle during which the atomic operation is being performed such that the third set of address bits is the same as the third set of address bits. 7. The apparatus of claim 6, determining whether to represent a cache address.
【請求項8】 アトミック操作が、第1サブ操作の後に第2サブ操作が続く
ものとして実行され、 第1要求待ち行列の各エントリイは、キャッシュ・アクセス要求が第1サブ操
作又は第2サブ操作と関連するかどうかを示すサブ操作ビットを含む請求項7に
記載の装置。
8. An atomic operation is performed as a first sub-operation followed by a second sub-operation, wherein each entry in the first request queue has a cache access request as a first sub-operation or a second sub-operation. 8. The apparatus of claim 7, including a sub-operation bit that indicates whether it is associated with.
【請求項9】 アトミック・アドレス・レジスタがロック・ビットを含み、
ロック・ビットはロック状態及びロック解除状態を有し、ロック・ビットのロッ
ク状態はアドレス・ビットの第3組により表されるアドレスへのアクセスを防止
し、 コントロール回路は、信号の第1組の解析がアトミック操作の第1サブ操作を
表す時、ロック・ビットをロック状態に設定するように構成されていて、 コントロール回路は、第1要求待ち行列の第1エントリイのアドレス・ビット
の第2組がアドレス・ビットの第3組と同じキャッシュ・アドレスを表す時、ア
ドレス・ビットの第3組により表されるキャッシュ・アドレスへのアクセスを防
止するように構成されている請求項8に記載の装置。
9. The atomic address register includes a lock bit,
The lock bit has a locked state and an unlocked state, the locked state of the lock bit prevents access to the address represented by the third set of address bits, and the control circuit controls the first set of signals. The control circuit is configured to set the lock bit to the locked state when the parse represents the first sub-operation of the atomic operation, and the control circuit includes a second set of address bits of the first entry of the first request queue. 9. The apparatus of claim 8 configured to prevent access to the cache address represented by the third set of address bits when represents a same cache address as the third set of address bits. .
【請求項10】 コントロール回路がさらに、 ロック・ビット状態を制御するロック・ビット制御回路を有し、ロック・ビッ
ト制御回路は信号の第1組を解析して、もし、第1要求待ち行列の第1エントリ
イがアトミック操作の第1サブ操作を表すならば、ロック・ビットをロック状態
に設定し、そして、もし、第1要求待ち行列の第1エントリイがアトミック操作
の第2サブ操作を表すならば、ロック・ビットをロック解除状態に設定する請求
項9に記載の装置。
10. The control circuit further comprises a lock bit control circuit for controlling a lock bit state, the lock bit control circuit analyzing a first set of signals to determine if the first request queue is Set the lock bit to the locked state if the first entry represents the first sub-operation of the atomic operation, and if the first entry of the first request queue represents the second sub-operation of the atomic operation. 10. The device of claim 9 wherein the lock bit is set to an unlocked state.
【請求項11】 コントロール回路がさらに、 書込み回路を有し、信号の第1組を解析し、もし、アトミック・ビット及び第
1要求待ち行列の第1エントリイの第1サブ操作ビットがアトミック操作の第1
サブ操作を表すならば、アドレス・ビットの第3組を第1要求待ち行列の第1エ
ントリイのアドレス・ビットの第1組を表すために設定する請求項10に記載の
装置。
11. The control circuit further comprises a write circuit for analyzing the first set of signals, wherein the atomic bit and the first sub-operation bit of the first entry queue of the first request queue are of atomic operation. First
11. The apparatus of claim 10, wherein the third set of address bits is set to represent the first set of address bits for the first entry of the first request queue if it represents a sub-operation.
【請求項12】 アトミック操作中に追出しからキャッシュ・データを保護
する方法であって、 第1要求待ち行列内に各キャッシュ・アクセス要求についてのエントリイを記
憶し、第1要求待ち行列の各エントリイはアトミック・ビット及びアドレス・ビ
ットの第1組を含み、アドレス・ビットの第1組はキャッシュ・アクセス要求に
関連した第1キャッシュ・アドレスを示し、アトミック・ビットはキャッシュ・
アクセス要求がアトミック操作と関連しているかどうかを示し、 第2要求待ち行列内に各キャッシュ追出し要求についてのエントリイを記憶し
、第2要求待ち行列の各エントリイはキャッシュ追出し要求に関連した第2キャ
ッシュ・アドレスを示すアドレス・ビットの第2組を含み、 第1クロック・サイクル中、第1要求待ち行列の第1エントリイを表す信号の
第1組を信号の第1組を解析して、それらがアトミック操作を表すかどうかを判
断し、 もし、信号の第1組がアトミック操作を表すならば、アドレス・ビットの第3
組を第1キャッシュ・アドレスを表す値に設定し、 アドレス・ビットの第2組を表す信号の第2組を解析して、アトミック操作が
実行されている第2クロック・サイクル中、アドレス・ビットの第2組がアドレ
ス・ビットの第3組と同じキャッシュ・アドレスを表すかどうかを判断し、 もし、アドレス・ビットの第2組がアドレス・ビットの第3組と同じアドレス
を表すならば、第2要求待ち行列のサービスを停止すること、 を含む方法。
12. A method of protecting cached data from eviction during atomic operations, wherein an entry for each cache access request is stored in a first request queue, each entry in the first request queue being An atomic bit and a first set of address bits, the first set of address bits indicating a first cache address associated with the cache access request, and the atomic bits indicating a cache bit
Indicates whether the access request is associated with an atomic operation, stores an entry for each cache eviction request in a second request queue, each entry in the second request queue is a second cache associated with the cache eviction request. Analyzing a first set of signals that includes a second set of address bits indicating an address and represents a first entry in the first request queue during a first clock cycle Determine if it represents an atomic operation, and if the first set of signals represents an atomic operation, the third of the address bits
Setting the set to a value representative of the first cache address and parsing the second set of signals representative of the second set of address bits to determine the address bits during the second clock cycle during which the atomic operation is being performed. A second set of address bits represents the same cache address as the third set of address bits, and if the second set of address bits represents the same address as the third set of address bits, then Stopping the service of the second request queue.
【請求項13】 第1要求待ち行列内に各キャッシュ・アクセス要求につい
てのエントリイを記憶することが、さらに、 アトミック操作に関連した各キャッシュ・アクセス要求についてロック・ビッ
トをロック状態に設定し、ロック・ビットのロック状態がアドレス・ビットの第
3組により表されるアドレスへのアクセスを防止することを含む請求項12に記
載の方法。
13. Saving an entry for each cache access request in a first request queue further comprises setting a lock bit in a locked state for each cache access request associated with an atomic operation to lock the cache access request. 13. The method of claim 12, wherein the locked state of the bits comprises preventing access to the address represented by the third set of address bits.
JP2001562159A 2000-02-25 2001-02-09 Method and apparatus for preventing cache data eviction during atomic operations and maintaining high snoop traffic performance Pending JP2003524248A (en)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US09/513,033 2000-02-25
US09/513,034 US6389517B1 (en) 2000-02-25 2000-02-25 Maintaining snoop traffic throughput in presence of an atomic operation a first port for a first queue tracks cache requests and a second port for a second queue snoops that have yet to be filtered
US09/513,033 US6347360B1 (en) 2000-02-25 2000-02-25 Apparatus and method for preventing cache data eviction during an atomic operation
US09/513,034 2000-02-25
PCT/US2001/004147 WO2001063240A2 (en) 2000-02-25 2001-02-09 Maintaining high snoop traffic throughput and preventing cache data eviction during an atomic operation

Publications (1)

Publication Number Publication Date
JP2003524248A true JP2003524248A (en) 2003-08-12

Family

ID=27057731

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001562159A Pending JP2003524248A (en) 2000-02-25 2001-02-09 Method and apparatus for preventing cache data eviction during atomic operations and maintaining high snoop traffic performance

Country Status (4)

Country Link
EP (1) EP1275045A4 (en)
JP (1) JP2003524248A (en)
AU (1) AU2001236793A1 (en)
WO (1) WO2001063240A2 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006155080A (en) * 2004-11-26 2006-06-15 Fujitsu Ltd Memory controller and memory control method
JP2015072684A (en) * 2013-10-03 2015-04-16 インテル・コーポレーション Short loop atomic access
JP2015102973A (en) * 2013-11-22 2015-06-04 富士通株式会社 Arithmetic processing apparatus and control method of arithmetic processing unit
JP2019533239A (en) * 2016-09-28 2019-11-14 エイアールエム リミテッド Apparatus and method for providing atomic set data access

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104823168B (en) 2012-06-15 2018-11-09 英特尔公司 The method and system restored in prediction/mistake is omitted in predictive forwarding caused by for realizing from being resequenced by load store and optimizing
EP2862062B1 (en) 2012-06-15 2024-03-06 Intel Corporation A virtual load store queue having a dynamic dispatch window with a distributed structure
EP2862068B1 (en) 2012-06-15 2022-07-06 Intel Corporation Reordered speculative instruction sequences with a disambiguation-free out of order load store queue
CN107220032B (en) 2012-06-15 2020-12-15 英特尔公司 Disambiguation-free out-of-order load store queue
KR101826080B1 (en) 2012-06-15 2018-02-06 인텔 코포레이션 A virtual load store queue having a dynamic dispatch window with a unified structure
EP2862069A4 (en) 2012-06-15 2016-12-28 Soft Machines Inc An instruction definition to implement load store reordering and optimization
KR101832574B1 (en) 2012-06-15 2018-02-26 인텔 코포레이션 A method and system for filtering the stores to prevent all stores from having to snoop check against all words of a cache
GB2516092A (en) * 2013-07-11 2015-01-14 Ibm Method and system for implementing a bit array in a cache line
FR3048526B1 (en) * 2016-03-07 2023-01-06 Kalray ATOMIC INSTRUCTION LIMITED IN RANGE AT AN INTERMEDIATE CACHE LEVEL

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4783736A (en) * 1985-07-22 1988-11-08 Alliant Computer Systems Corporation Digital computer with multisection cache
TW243509B (en) * 1994-01-31 1995-03-21 Ibm Data processor with memory cache and method of operation
US6049851A (en) * 1994-02-14 2000-04-11 Hewlett-Packard Company Method and apparatus for checking cache coherency in a computer architecture
US5966729A (en) * 1997-06-30 1999-10-12 Sun Microsystems, Inc. Snoop filter for use in multiprocessor computer systems
US6098156A (en) * 1997-07-22 2000-08-01 International Business Machines Corporation Method and system for rapid line ownership transfer for multiprocessor updates
US6145059A (en) * 1998-02-17 2000-11-07 International Business Machines Corporation Cache coherency protocols with posted operations and tagged coherency states

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006155080A (en) * 2004-11-26 2006-06-15 Fujitsu Ltd Memory controller and memory control method
JP2015072684A (en) * 2013-10-03 2015-04-16 インテル・コーポレーション Short loop atomic access
US9471323B2 (en) 2013-10-03 2016-10-18 Intel Corporation System and method of using an atomic data buffer to bypass a memory location
JP2015102973A (en) * 2013-11-22 2015-06-04 富士通株式会社 Arithmetic processing apparatus and control method of arithmetic processing unit
JP2019533239A (en) * 2016-09-28 2019-11-14 エイアールエム リミテッド Apparatus and method for providing atomic set data access
US11182294B2 (en) 2016-09-28 2021-11-23 Arm Limited Apparatus and method for providing an atomic set of data accesses
JP7022120B2 (en) 2016-09-28 2022-02-17 アーム・リミテッド Devices and methods for providing atomic set data access

Also Published As

Publication number Publication date
AU2001236793A1 (en) 2001-09-03
EP1275045A2 (en) 2003-01-15
EP1275045A4 (en) 2005-12-21
WO2001063240A2 (en) 2001-08-30
WO2001063240A3 (en) 2002-01-17

Similar Documents

Publication Publication Date Title
JP3999821B2 (en) Method and apparatus for performing a bus arbitration protocol in a data processing system
US5426765A (en) Multiprocessor cache abitration
EP0667578B1 (en) Apparatus and method for checking cache coherency with double snoop mechanism
US6625698B2 (en) Method and apparatus for controlling memory storage locks based on cache line ownership
US6460119B1 (en) Snoop blocking for cache coherency
JP3533355B2 (en) Cache memory system
EP1399823B1 (en) Using an l2 directory to facilitate speculative loads in a multiprocessor system
US6718839B2 (en) Method and apparatus for facilitating speculative loads in a multiprocessor system
US20080091884A1 (en) Handling of write access requests to shared memory in a data processing apparatus
JPH11502345A (en) Multiple processing cache coherency protocol on local bus
US6374332B1 (en) Cache control system for performing multiple outstanding ownership requests
JP2001522091A (en) Memory optimization state
EP1311956B1 (en) Method and apparatus for pipelining ordered input/output transactions in a cache coherent, multi-processor system
US6219745B1 (en) System and method for entering a stream read buffer mode to store non-cacheable or block data
US6553442B1 (en) Bus master for SMP execution of global operations utilizing a single token with implied release
JPH0561770A (en) Coherent means of data processing system
WO2003001369A2 (en) Method and apparatus for facilitating speculative stores in a multiprocessor system
US6347360B1 (en) Apparatus and method for preventing cache data eviction during an atomic operation
JP2003524248A (en) Method and apparatus for preventing cache data eviction during atomic operations and maintaining high snoop traffic performance
US6389517B1 (en) Maintaining snoop traffic throughput in presence of an atomic operation a first port for a first queue tracks cache requests and a second port for a second queue snoops that have yet to be filtered
US6408363B1 (en) Speculative pre-flush of data in an out-of-order execution processor system
US6480915B1 (en) Bus protocol and token manager for SMP execution of global operations utilizing a single token with implied release
US6643766B1 (en) Speculative pre-fetching additional line on cache miss if no request pending in out-of-order processor
JPH11328106A (en) Computer system equipped with arbitration mechanism enabling multiple bus masters for access to graphic bus
US6477622B1 (en) Simplified writeback handling