JP2018152054A - スヌープ要求への対応 - Google Patents
スヌープ要求への対応 Download PDFInfo
- Publication number
- JP2018152054A JP2018152054A JP2018014913A JP2018014913A JP2018152054A JP 2018152054 A JP2018152054 A JP 2018152054A JP 2018014913 A JP2018014913 A JP 2018014913A JP 2018014913 A JP2018014913 A JP 2018014913A JP 2018152054 A JP2018152054 A JP 2018152054A
- Authority
- JP
- Japan
- Prior art keywords
- data
- node
- requested data
- data processing
- snoop request
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
- G06F12/0833—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means in combination with broadcast means (e.g. for invalidation or updating)
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/167—Interprocessor communication using a common memory, e.g. mailbox
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0817—Cache consistency protocols using directory methods
- G06F12/0822—Copy directories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/161—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
- G06F13/1615—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement using a concurrent pipeline structrure
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/62—Details of cache specific to multiprocessor cache arrangements
- G06F2212/621—Coherency control relating to peripheral accessing, e.g. from DMA or I/O device
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
【解決手段】データ処理装置130は、要求されたデータに関してソースノード160から送られたスヌープ要求を受信する受信回路220と、送信回路230とを備えている。キャッシュ回路240は、少なくとも一つのデータ値をキャッシュする。上記スヌープ要求は、その要求されたデータをソースノードに返送するかどうかの指示を含み、上記少なくとも一つのデータ値がその要求されたデータを含む場合、上記送信回路は、上記指示に応じて、その要求されたデータを有するソースノードに応答を送信する。
【選択図】図3
Description
110・・・ホームノード
120、130、140、150・・・ノード
160・・・ソースノード
170・・・システムキャッシュ
180、230・・・送信回路
190、220・・・受信回路
195・・・参加回路
200、240・・・キャッシュ回路
250・・・モード切替回路
Claims (19)
- 要求されたデータに関してソースノードにより送られたスヌープ要求を受信する受信回路と、
送信回路と、
少なくとも一つのデータ値をキャッシュするキャッシュ回路と、を具備し、
前記スヌープ要求は、前記要求されたデータをソースノードに返送するかどうかの指示を含み、
前記少なくとも一つのデータ値が前記要求されたデータを含む場合、前記送信回路は、前記指示に応じて、当該要求されたデータを有する前記ソースノードに応答を送信する、データ処理装置。 - 前記要求されたデータは、当該要求されたデータが共有されていることを示すキャッシュ状態で前記キャッシュ回路に保存される、請求項1に記載のデータ処理装置。
- 前記少なくとも一つのデータ値は、前記要求されたデータを含み、前記送信回路は、前記ホームノードで前記要求されたデータに対する要求を行った要求ノードに対して、前記要求されたデータを含んださらなる応答を送信する、請求項1又は2に記載のデータ処理装置。
- 前記要求されたデータを前記ソースノードに返送するかどうかの指示は、前記スヌープ要求の一つのタイプとして暗号化されている、請求項1〜3のいずれか一項に記載のデータ処理装置。
- 前記要求されたデータを前記ソースノードに返送するかどうかの指示は、前記スヌープ要求の一つのビットとして暗号化されている、請求項1〜3のいずれか一項に記載のデータ処理装置。
- 前記送信回路は、追加条件に応じて、前記応答を送信する、請求項1〜5のいずれか一項に記載のデータ処理装置。
- 返送許可モードから返送禁止モードに前記データ処理装置を切り替えるモード切替回路を具備し、
前記追加条件は、前記データ処理装置が返送許可モードにあることである、請求項6に記載のデータ処理装置。 - 前記データ処理装置が返送禁止モードにあり、前記少なくとも一つのデータ値が前記要求されたデータを含み、当該要求されたデータを前記ソースノードに返送すべきであることを前記指示が示している場合、前記送信回路は、前記要求されたデータがない場合は、前記ソースノードに別の応答を送信する、請求項7に記載のデータ処理装置。
- 前記返送許可モードと前記返送禁止モードとに切り替わる場合、前記データ処理装置の現在のモードを含む通知を前記送信回路から前記ソースノードに送信させるよう構成されている、請求項7に記載のデータ処理装置。
- 前記スヌープ要求は、無効化スヌープ要求である、請求項1〜9のいずれか一項に記載のデータ処理装置。
- 要求されたデータに関するデータ要求を受信する受信回路と、
少なくとも一つの他のノードに少なくとも一つのスヌープ要求を送信する送信回路と、を具備し、
各スヌープ要求は、その他のノードが前記要求されたデータを有することに応じて、前記要求されたデータを前記データ処理装置に転送し戻すべきかどうかを示す指示を含む、データ処理装置。 - 前記少なくとも一つの他のノードのどのノードが、前記スヌープ要求及び前記要求されたデータを有していることに応じて、前記要求されたデータを転送可能であるかのリストを保存する参加回路を具備し、
前記少なくとも一つの他のノードのうちの一つが前記要求されたデータを転送可能であるかどうかに関する通知を前記受信回路が受信した場合、前記リストが更新され、
前記送信回路は、前記参加回路からの結果に基づき、前記指示が要求されたデータを前記データ処理装置に転送し戻すべきであることを示す場合、前記スヌープ要求の送信を禁止するよう構成されている、請求項11に記載のデータ処理装置。 - 前記受信回路が、前記要求されたデータを含まない前記スヌープ要求への応答を受信した場合、前記送信回路は、前記要求されたデータにアクセスするためのメモリアクセス要求をメインメモリに送信する、請求項11又は12に記載のデータ処理装置。
- 前記少なくとも一つの他のノードの各ノードについて、少なくとも一つのヒューリスティックを保存し、当該少なくとも一つのヒューリスティックに基づき、前記少なくとも一つの他のノードから選択されたノードを提供するヒューリスティック回路を具備し、
前記送信回路は、前記選択されたノードに前記スヌープ要求を送信するよう構成されている、請求項11〜13のいずれか一項に記載のデータ処理装置。 - 前記ヒューリスティックは、レイテンシを示すものである、請求項14に記載のデータ処理装置。
- 前記少なくとも一つのデータ値をキャッシュするキャッシュ回路をさらに具備し、
前記受信回路が、前記要求されたデータを含む前記スヌープ要求への応答を受信した場合、前記要求されたデータは前記キャッシュに保存される、
ことを特徴とする請求項11〜15のいずれか一項に記載のデータ処理装置。 - 前記キャッシュはシステムキャッシュである、請求項16に記載のデータ処理装置。
- 少なくとも一つのデータ値をキャッシュする工程と、
要求ノードからの要求されたデータに関してソースノードにより送られたスヌープ要求を受信する工程と、
前記スヌープ要求に対する応答を送信する工程と、を具備し、
前記スヌープ要求は、前記要求されたデータを前記ソースノードに返送するかどうかの指示を含み、
前記少なくとも一つのデータ値が前記要求されたデータを含む場合、前記送信回路は、前記指示に応じて、前記要求されたデータを、前記ソースノードに送信する、データ処理方法。 - 要求されたデータに関するデータ要求を受信する工程と、
少なくとも一つの他のノードに少なくとも一つのスヌープ要求を送信する工程と、を具備し、
各スヌープ要求は、前記他のノードが前記要求されたデータを有することに応じて、前記要求されたデータを転送し戻すべきかどうかを示す指示を含む、データ処理方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/427,410 | 2017-02-08 | ||
US15/427,410 US10579526B2 (en) | 2017-02-08 | 2017-02-08 | Responding to snoop requests |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2018152054A true JP2018152054A (ja) | 2018-09-27 |
JP7328742B2 JP7328742B2 (ja) | 2023-08-17 |
Family
ID=61283483
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018014913A Active JP7328742B2 (ja) | 2017-02-08 | 2018-01-31 | スヌープ要求への対応 |
Country Status (5)
Country | Link |
---|---|
US (1) | US10579526B2 (ja) |
JP (1) | JP7328742B2 (ja) |
CN (1) | CN108491351B (ja) |
GB (1) | GB2566564B (ja) |
TW (1) | TWI762565B (ja) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070174557A1 (en) * | 2006-01-26 | 2007-07-26 | Nec Corporation | Multiprocessor system and its operational method |
JP2009169877A (ja) * | 2008-01-21 | 2009-07-30 | Hitachi Ltd | スヌープフィルタ内蔵アドレスデコーダ |
WO2012035605A1 (ja) * | 2010-09-13 | 2012-03-22 | 富士通株式会社 | 情報処理装置および情報処理装置の制御方法 |
US20140095807A1 (en) * | 2012-09-28 | 2014-04-03 | Qualcomm Technologies, Inc. | Adaptive tuning of snoops |
US20140281059A1 (en) * | 2013-03-18 | 2014-09-18 | Fujitsu Limited | Arithmetic processing apparatus and control method of arithmetic processing apparatus |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6490661B1 (en) | 1998-12-21 | 2002-12-03 | Advanced Micro Devices, Inc. | Maintaining cache coherency during a memory read operation in a multiprocessing computer system |
US6772298B2 (en) | 2000-12-20 | 2004-08-03 | Intel Corporation | Method and apparatus for invalidating a cache line without data return in a multi-node architecture |
US7886112B2 (en) * | 2006-05-24 | 2011-02-08 | Sony Computer Entertainment Inc. | Methods and apparatus for providing simultaneous software/hardware cache fill |
US7555597B2 (en) * | 2006-09-08 | 2009-06-30 | Intel Corporation | Direct cache access in multiple core processors |
US8375227B2 (en) * | 2009-02-02 | 2013-02-12 | Microsoft Corporation | Abstracting programmatic representation of data storage systems |
US8868847B2 (en) * | 2009-03-11 | 2014-10-21 | Apple Inc. | Multi-core processor snoop filtering |
US8934462B2 (en) * | 2009-10-07 | 2015-01-13 | Qualcomm Incorporated | Methods and systems for exploitation of well-connected nodes in peer-to-peer wireless networks |
JP5514364B2 (ja) * | 2010-08-27 | 2014-06-04 | 株式会社日立製作所 | 記憶制御装置及び記憶制御装置の動作モード制御方法 |
US9235519B2 (en) * | 2012-07-30 | 2016-01-12 | Futurewei Technologies, Inc. | Method for peer to peer cache forwarding |
US9218286B2 (en) * | 2012-09-27 | 2015-12-22 | Apple Inc. | System cache with partial write valid states |
GB2539382B (en) * | 2015-06-01 | 2017-05-24 | Advanced Risc Mach Ltd | Cache coherency |
GB2539641B (en) * | 2015-06-11 | 2019-04-03 | Advanced Risc Mach Ltd | Coherency between a data processing device and interconnect |
-
2017
- 2017-02-08 US US15/427,410 patent/US10579526B2/en active Active
-
2018
- 2018-01-19 GB GB1800880.5A patent/GB2566564B/en active Active
- 2018-01-31 TW TW107103400A patent/TWI762565B/zh active
- 2018-01-31 CN CN201810095375.9A patent/CN108491351B/zh active Active
- 2018-01-31 JP JP2018014913A patent/JP7328742B2/ja active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070174557A1 (en) * | 2006-01-26 | 2007-07-26 | Nec Corporation | Multiprocessor system and its operational method |
JP2007199999A (ja) * | 2006-01-26 | 2007-08-09 | Nec Computertechno Ltd | マルチプロセッサシステム及びその動作方法 |
JP2009169877A (ja) * | 2008-01-21 | 2009-07-30 | Hitachi Ltd | スヌープフィルタ内蔵アドレスデコーダ |
WO2012035605A1 (ja) * | 2010-09-13 | 2012-03-22 | 富士通株式会社 | 情報処理装置および情報処理装置の制御方法 |
US20130159636A1 (en) * | 2010-09-13 | 2013-06-20 | Fujitsu Limited | Information processing apparatus and control method of information processing apparatus |
US20140095807A1 (en) * | 2012-09-28 | 2014-04-03 | Qualcomm Technologies, Inc. | Adaptive tuning of snoops |
US20140281059A1 (en) * | 2013-03-18 | 2014-09-18 | Fujitsu Limited | Arithmetic processing apparatus and control method of arithmetic processing apparatus |
JP2014182488A (ja) * | 2013-03-18 | 2014-09-29 | Fujitsu Ltd | 演算処理装置、及び演算処理装置の制御方法 |
Also Published As
Publication number | Publication date |
---|---|
TWI762565B (zh) | 2022-05-01 |
JP7328742B2 (ja) | 2023-08-17 |
US20180225210A1 (en) | 2018-08-09 |
CN108491351A (zh) | 2018-09-04 |
US10579526B2 (en) | 2020-03-03 |
GB2566564B (en) | 2020-12-02 |
GB2566564A (en) | 2019-03-20 |
CN108491351B (zh) | 2024-03-22 |
TW201830254A (zh) | 2018-08-16 |
GB201800880D0 (en) | 2018-03-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9235519B2 (en) | Method for peer to peer cache forwarding | |
US7234029B2 (en) | Method and apparatus for reducing memory latency in a cache coherent multi-node architecture | |
JP4928812B2 (ja) | タグ付きキャッシュ状態に基づいて下位レベル・キャッシュへの参照なしに相互接続ファブリック上にリクエストを送出するためのデータ処理システム、キャッシュ・システム、および方法 | |
US7389388B2 (en) | Data processing system and method for efficient communication utilizing an in coherency state | |
US10402327B2 (en) | Network-aware cache coherence protocol enhancement | |
US7032078B2 (en) | Shared memory multiprocessing system employing mixed broadcast snooping and directory based coherency protocols | |
US8799588B2 (en) | Forward progress mechanism for stores in the presence of load contention in a system favoring loads by state alteration | |
TWI463318B (zh) | 快取一致性處理系統、快取記憶體,及其方法 | |
US7386680B2 (en) | Apparatus and method of controlling data sharing on a shared memory computer system | |
US8793442B2 (en) | Forward progress mechanism for stores in the presence of load contention in a system favoring loads | |
US6269428B1 (en) | Method and system for avoiding livelocks due to colliding invalidating transactions within a non-uniform memory access system | |
JP5004571B2 (ja) | 同報通信範囲を示す無効な整合状態を正確に形成するためのデータ処理システム、キャッシュ・システム、および方法 | |
WO2019051105A1 (en) | COUNTING A CACHED MEMORY MONITORING FILTER BASED ON A BLOCK FILTER | |
JP7277075B2 (ja) | スヌープリクエストに対する応答の転送 | |
US10942865B2 (en) | Snooping with access permissions | |
JP7328742B2 (ja) | スヌープ要求への対応 | |
KR20110070772A (ko) | 분산 메모리를 가지는 다중 프로세서 시스템을 위한 네트워크 부하 감소 방법 및 노드의 구조 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20210122 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20220128 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20220218 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20220518 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20221004 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20230104 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20230306 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20230403 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20230713 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20230804 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7328742 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |