JP5583660B2 - データ処理システムにおけるキャッシュ・コヒーレンス・プロトコル - Google Patents
データ処理システムにおけるキャッシュ・コヒーレンス・プロトコル Download PDFInfo
- Publication number
- JP5583660B2 JP5583660B2 JP2011507496A JP2011507496A JP5583660B2 JP 5583660 B2 JP5583660 B2 JP 5583660B2 JP 2011507496 A JP2011507496 A JP 2011507496A JP 2011507496 A JP2011507496 A JP 2011507496A JP 5583660 B2 JP5583660 B2 JP 5583660B2
- Authority
- JP
- Japan
- Prior art keywords
- cache
- data
- state
- write
- coherent
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
キャッシュ(例えば、28)を備えた第1マスタ(例えば、14)と、
第2マスタ(例えば、16)と、
システム相互接続(例えば、12)を介して第1マスタおよび第2マスタに操作可能に結合されたメモリ(例えば、20)とを備え、
前記キャッシュは、キャッシュ・コントローラ(例えば、29)を備え、該キャッシュ・コントローラは、前記キャッシュのデータ・ユニット(例えば、キャッシュ・エントリまたはキャッシュ・ライン)に対する1組のキャッシュ・コヒーレント状態(例えば、I,N,C,M)を実行、
該キャッシュ・コヒーレント状態は、
無効状態(例えば、I)と、
前記キャッシュのデータ・ユニットにおけるデータが修正されておらず、前記データ処理システムのうちの少なくとも1つの他の記憶装置におけるデータとコヒーレントであると保証されないことを示す未修正非コヒーレント状態(例えば、N)と、
前記データ・ユニットのデータが修正されておらず、前記データ処理システムのうちの少なくとも1つの他の記憶装置におけるデータとコヒーレントであることを示す未修正コヒーレント状態(例えば、C)と
を含んでいるデータ処理システム。
前記キャッシュのデータ・ユニットの前記無効状態から前記未修正非コヒーレント状態への移行(例えば、移行110)は、ライト・スルーが前記データ・ユニットに書き込まれたデータのために必要でないことを示すライト・スルー要求属性に応じてなされ、
前記キャッシュのデータ・ユニットの前記無効状態から前記未修正コヒーレント状態への移行(例えば、移行128)は、ライト・スルーが前記キャッシュのデータ・ユニットに書き込まれた前記データのために必要であることを示すライト・スルー要求属性に応じてなされるアイテム1記載のデータ処理システム。
前記ライト・スルーが前記書込みミスのデータのために必要であることを前記ライト・スルー要求属性が示す場合、前記書込みミスのデータは、その後のコピーバック・バス・トランザクションで前記メモリに書き込まれないアイテム6記載のデータ処理システム。
前記未修正非コヒーレント状態にあるとき、前記キャッシュのデータ・ユニットの前記データへの書込みヒットは、前記データのライト・スルー動作を生成しないアイテム9記載のデータ処理システム。
前記データ・ユニットに対する無効キャッシュ動作命令なしの、前記データ・ユニットに対するフラッシュ・キャッシュ動作命令であって、前記データが、前記フラッシュ・キャッシュ動作命令に応じてコピーバック・バス・トランザクションで前記メモリに書き込まれるもの(例えば、移行124)、または
前記データ・ユニットに対する無効キャッシュ動作命令(例えば、移行122)
に応じてなされるアイテム8記載のデータ処理システム。
前記データ処理システムのキャッシュ(例えば、30)への書込みミスを生成する第1マスタ(例えば、16)によってデータの書込み処理を行なうことであって、前記第1マスタがシステム相互接続(例えば、12)に操作可能に結合され、前記データ処理システムが第2マスタ(例えば、14)と前記システム相互接続に操作可能に結合されたメモリ(例えば、20)とを備えること、
前記書込みミスに応じて、前記キャッシュに前記データを書きこむこと、
前記データのライト・スルーが要求されることを前記書込み処理の前記データに対するライト・スルー要求属性(例えば、W)が示す場合、前記メモリへの前記データのライト・スルーを行ない、前記データのライト・スルーが要求されないことを前記ライト・スルー要求属性が示す場合、前記データのライト・スルーが行なわれないこと、および
前記データのライト・スルーが要求されることを前記ライト・スルー要求属性が示す場合、少なくとも1つの他のキャッシュが前記書込み処理に対応したメモリ・アドレスを含むか否かを判断するために、前記データ処理システムのうちの前記少なくとも1つの他のキャッシュ(例えば、28)を探索することであって、前記データのライト・スルーが要求されないことを前記ライト・スルー要求属性が示す場合、前記少なくとも1つの他のキャッシュの探索を行なわないこと
を含む方法。
キャッシュ(例えば、28)を備えたプロセッサ(例えば、14)と、
第2マスタ(例えば、16)と、
前記プロセッサおよび前記第2マスタにシステム相互接続(例えば、12)を介して操作可能に結合されたメモリ(例えば、20)と、
該メモリの記憶位置に関連した複数の属性を提供するメモリ属性ロジック(例えば、MMU42内、またはプロセッサ14もしくはシステム10内のどこか他の場所)とを備え、前記複数の属性のうちの1つは、ライト・スルー要求属性(例えば、W)であり、
前記キャッシュは、キャッシュ・コントローラ(例えば、29)を備え、該キャッシュ・コントローラは、前記キャッシュのデータ・ユニットに対する1組のキャッシュ・コヒーレント状態を実行する回路を備え、前記キャッシュ・コントローラは、メモリ・コヒーレンスが前記メモリ内の一または複数の記憶位置に対して必要か否かを判断するために、前記ライト・スルー要求属性を利用するデータ処理システム。
さらに、本記述および特許請求の範囲における用語「前」、「後」、「上」「下」、「上側」「下側」など(もしあれば)、説明の目的のために使用されるものであって、必ずしも恒久的な相対的位置について記述するためのものではない。そのように使用される用語は、適切な状況下では置換可能であり、その結果、ここで記述される本発明の実施形態は、例えば、ここで例示されたものまたは記述されたもの以外の他の配置で実施されることができるものと理解される。
さらに、ここで使用される用語「a」または「an」は、1つまたは1以上として定義される。また、特許請求の範囲での「少なくとも1つ」および「一または複数」などの導入句の使用は、不定冠詞「a」または「an」による別の請求項要素の導入が、同一の請求項が導入句「一または複数」または「少なくとも1つ」および「a」または「an」などの不定冠詞を含む場合であっても、1つだけそのような要素を含んだ発明への導入請求項要素を含んだ任意の特定の請求項を限定することを意味するように解釈されるべきではない。同じことが定冠詞の使用にも該当する。
Claims (4)
- データ処理システムであって、
キャッシュを備えた第1マスタと、
第2マスタと、
システム相互接続を介して前記第1マスタおよび前記第2マスタに操作可能に結合されたメモリとを備え、
前記キャッシュは、キャッシュ・コントローラを備え、該キャッシュ・コントローラは、前記キャッシュのデータ・ユニットに対する1組のキャッシュ・コヒーレント状態を実行し、該キャッシュ・コヒーレント状態は、
無効状態と、
前記キャッシュのデータ・ユニットにおけるデータが修正されておらず、前記データ処理システムにおける他のキャッシュにおけるデータとコヒーレントであると保証されないことを示す未修正非コヒーレント状態と、
前記データ・ユニットのデータが修正されておらず、前記メモリ及び前記データ処理システムにおける他のキャッシュにおけるデータとコヒーレントであることを示す未修正コヒーレント状態と、
前記キャッシュのデータ・ユニットにおけるデータが修正されており、前記データ処理システムにおける他のキャッシュにおけるデータとコヒーレントであると保証されないことを示す修正済非コヒーレント状態と、を含み、
前記キャッシュのデータ・ユニットにおけるデータのためにライト・スルーが必要であることを示すライト・スルー要求属性に応じて、前記キャッシュ・コヒーレント状態が前記無効状態から前記未修正コヒーレント状態又は前記未修正非コヒーレント状態のいずれかに移行する、データ処理システム。 - 前記無効状態から前記キャッシュのデータ・ユニットの前記未修正非コヒーレント状態への移行は、前記キャッシュへの読み取りミスに応じてなされ、該読み取りミスのデータは、前記データ・ユニットに書き込まれ、キャッシュ・コヒーレンス動作は、前記読み取りミスに応じて前記データ処理システムにおける他のキャッシュ上では行なわれない請求項1記載のデータ処理システム。
- 書込みキャッシュ・ミスに応じて、該書込みミスのデータが書き込まれる、前記無効状態から前記キャッシュのデータ・ユニットの前記未修正非コヒーレント状態への移行は、前記データ処理システムにおける他のキャッシュにおけるキャッシュ・コヒーレンス動作を生成しない請求項1記載のデータ処理システム。
- 前記無効状態から前記キャッシュのデータ・ユニットの前記未修正非コヒーレント状態への移行は、前記データ処理システムにおける他のキャッシュが、前記データ・ユニットに書き込まれるデータに対応したメモリ・アドレスを含むか否かを判断するために、前記他のキャッシュへのルックアップ動作を生じさせない請求項1記載のデータ処理システム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/112,502 | 2008-04-30 | ||
US12/112,502 US8762652B2 (en) | 2008-04-30 | 2008-04-30 | Cache coherency protocol in a data processing system |
PCT/US2009/034866 WO2009134517A1 (en) | 2008-04-30 | 2009-02-23 | Cache coherency protocol in a data processing system |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2011519461A JP2011519461A (ja) | 2011-07-07 |
JP2011519461A5 JP2011519461A5 (ja) | 2012-03-22 |
JP5583660B2 true JP5583660B2 (ja) | 2014-09-03 |
Family
ID=41255347
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011507496A Expired - Fee Related JP5583660B2 (ja) | 2008-04-30 | 2009-02-23 | データ処理システムにおけるキャッシュ・コヒーレンス・プロトコル |
Country Status (5)
Country | Link |
---|---|
US (1) | US8762652B2 (ja) |
JP (1) | JP5583660B2 (ja) |
CN (1) | CN102016790B (ja) |
TW (1) | TW200945057A (ja) |
WO (1) | WO2009134517A1 (ja) |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8131941B2 (en) * | 2007-09-21 | 2012-03-06 | Mips Technologies, Inc. | Support for multiple coherence domains |
US20090089510A1 (en) * | 2007-09-28 | 2009-04-02 | Mips Technologies, Inc. | Speculative read in a cache coherent microprocessor |
US8392663B2 (en) * | 2007-12-12 | 2013-03-05 | Mips Technologies, Inc. | Coherent instruction cache utilizing cache-op execution resources |
US20090248988A1 (en) * | 2008-03-28 | 2009-10-01 | Mips Technologies, Inc. | Mechanism for maintaining consistency of data written by io devices |
US20120254541A1 (en) * | 2011-04-04 | 2012-10-04 | Advanced Micro Devices, Inc. | Methods and apparatus for updating data in passive variable resistive memory |
US9418035B2 (en) * | 2012-10-22 | 2016-08-16 | Intel Corporation | High performance interconnect physical layer |
US10509725B2 (en) * | 2013-03-08 | 2019-12-17 | Oracle International Corporation | Flushing by copying entries in a non-coherent cache to main memory |
US9575898B2 (en) | 2013-03-28 | 2017-02-21 | Hewlett Packard Enterprise Development Lp | Implementing coherency with reflective memory |
US9436972B2 (en) | 2014-03-27 | 2016-09-06 | Intel Corporation | System coherency in a distributed graphics processor hierarchy |
CN103984645B (zh) * | 2014-05-22 | 2018-03-02 | 浪潮电子信息产业股份有限公司 | 一种基于双控的缓存一致性数据刷写方法 |
US9720837B2 (en) * | 2014-06-27 | 2017-08-01 | International Business Machines Corporation | Allowing non-cacheable loads within a transaction |
GB2545897B (en) * | 2015-12-21 | 2018-02-07 | Advanced Risc Mach Ltd | Asymmetric coherency protocol |
US10810070B2 (en) | 2016-02-19 | 2020-10-20 | Hewlett Packard Enterprise Development Lp | Simulator based detection of a violation of a coherency protocol in an incoherent shared memory system |
KR101842764B1 (ko) * | 2016-03-18 | 2018-03-28 | 연세대학교 산학협력단 | 하드웨어 가속기와 호스트 시스템 사이의 데이터 일관성 유지 장치 및 방법 |
US9996471B2 (en) * | 2016-06-28 | 2018-06-12 | Arm Limited | Cache with compressed data and tag |
CN106371972B (zh) * | 2016-08-31 | 2019-04-05 | 天津国芯科技有限公司 | 用于解决主设备间数据一致性的总线监控方法及装置 |
US10282297B2 (en) * | 2017-02-08 | 2019-05-07 | Arm Limited | Read-with overridable-invalidate transaction |
US10599567B2 (en) | 2017-10-06 | 2020-03-24 | International Business Machines Corporation | Non-coherent read in a strongly consistent cache system for frequently read but rarely updated data |
US10776281B2 (en) | 2018-10-04 | 2020-09-15 | International Business Machines Corporation | Snoop invalidate filter for distributed memory management unit to reduce snoop invalidate latency |
US10776266B2 (en) * | 2018-11-07 | 2020-09-15 | Arm Limited | Apparatus and method of modification of stored data |
US11188471B2 (en) | 2020-04-03 | 2021-11-30 | Alibaba Group Holding Limited | Cache coherency for host-device systems |
CN112463650A (zh) * | 2020-11-27 | 2021-03-09 | 苏州浪潮智能科技有限公司 | 一种多核cpu下的l2p表的管理方法、设备以及介质 |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04137052A (ja) * | 1990-09-28 | 1992-05-12 | Fujitsu Ltd | キャッシュメモリ制御方式 |
US5301298A (en) * | 1991-10-11 | 1994-04-05 | Intel Corporation | Processor for multiple cache coherent protocols |
EP0559409B1 (en) | 1992-03-04 | 1998-07-22 | Motorola, Inc. | A method and apparatus for performing a bus arbitration protocol in a data processing system |
US5522057A (en) | 1993-10-25 | 1996-05-28 | Intel Corporation | Hybrid write back/write through cache having a streamlined four state cache coherency protocol for uniprocessor computer systems |
US5761725A (en) | 1994-01-31 | 1998-06-02 | Dell Usa, L.P. | Cache-based computer system employing a peripheral bus interface unit with cache write-back suppression and processor-peripheral communication suppression for data coherency |
AU5854796A (en) | 1995-05-10 | 1996-11-29 | 3Do Company, The | Method and apparatus for managing snoop requests using snoop advisory cells |
US5699548A (en) | 1995-06-01 | 1997-12-16 | Intel Corporation | Method and apparatus for selecting a mode for updating external memory |
US5920892A (en) | 1996-08-26 | 1999-07-06 | Unisys Corporation | Method and system for inhibiting transfer of duplicate write addresses in multi-domain processor systems with cross-bus architecture to reduce cross-invalidation requests |
US6374330B1 (en) | 1997-04-14 | 2002-04-16 | International Business Machines Corporation | Cache-coherency protocol with upstream undefined state |
US6292906B1 (en) | 1997-12-17 | 2001-09-18 | Intel Corporation | Method and apparatus for detecting and compensating for certain snoop errors in a system with multiple agents having cache memories |
US6601144B1 (en) | 2000-10-26 | 2003-07-29 | International Business Machines Corporation | Dynamic cache management in a symmetric multiprocessor system via snoop operation sequence analysis |
US7234029B2 (en) | 2000-12-28 | 2007-06-19 | Intel Corporation | Method and apparatus for reducing memory latency in a cache coherent multi-node architecture |
US6845432B2 (en) | 2000-12-28 | 2005-01-18 | Intel Corporation | Low power cache architecture |
US6801984B2 (en) | 2001-06-29 | 2004-10-05 | International Business Machines Corporation | Imprecise snooping based invalidation mechanism |
US20030195939A1 (en) | 2002-04-16 | 2003-10-16 | Edirisooriya Samatha J. | Conditional read and invalidate for use in coherent multiprocessor systems |
US6922756B2 (en) | 2002-12-19 | 2005-07-26 | Intel Corporation | Forward state for use in cache coherency in a multiprocessor system |
US7024521B2 (en) * | 2003-04-24 | 2006-04-04 | Newisys, Inc | Managing sparse directory evictions in multiprocessor systems via memory locking |
GB2403561A (en) * | 2003-07-02 | 2005-01-05 | Advanced Risc Mach Ltd | Power control within a coherent multi-processor system |
US7284097B2 (en) | 2003-09-30 | 2007-10-16 | International Business Machines Corporation | Modified-invalid cache state to reduce cache-to-cache data transfer operations for speculatively-issued full cache line writes |
US7421535B2 (en) | 2004-05-10 | 2008-09-02 | International Business Machines Corporation | Method for demoting tracks from cache |
US7373462B2 (en) | 2005-03-29 | 2008-05-13 | International Business Machines Corporation | Snoop filter for filtering snoop requests |
GB2442984B (en) * | 2006-10-17 | 2011-04-06 | Advanced Risc Mach Ltd | Handling of write access requests to shared memory in a data processing apparatus |
US20080183972A1 (en) | 2007-01-26 | 2008-07-31 | James Norris Dieffenderfer | Snoop Filtering Using a Snoop Request Cache |
-
2008
- 2008-04-30 US US12/112,502 patent/US8762652B2/en not_active Expired - Fee Related
-
2009
- 2009-02-23 CN CN200980115765.7A patent/CN102016790B/zh active Active
- 2009-02-23 JP JP2011507496A patent/JP5583660B2/ja not_active Expired - Fee Related
- 2009-02-23 WO PCT/US2009/034866 patent/WO2009134517A1/en active Application Filing
- 2009-03-11 TW TW098107920A patent/TW200945057A/zh unknown
Also Published As
Publication number | Publication date |
---|---|
US20090276578A1 (en) | 2009-11-05 |
TW200945057A (en) | 2009-11-01 |
US8762652B2 (en) | 2014-06-24 |
JP2011519461A (ja) | 2011-07-07 |
CN102016790B (zh) | 2014-08-06 |
WO2009134517A1 (en) | 2009-11-05 |
CN102016790A (zh) | 2011-04-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5583660B2 (ja) | データ処理システムにおけるキャッシュ・コヒーレンス・プロトコル | |
US8423721B2 (en) | Cache coherency protocol in a data processing system | |
US9792210B2 (en) | Region probe filter for distributed memory system | |
US6721848B2 (en) | Method and mechanism to use a cache to translate from a virtual bus to a physical bus | |
US9372808B2 (en) | Deadlock-avoiding coherent system on chip interconnect | |
US7360031B2 (en) | Method and apparatus to enable I/O agents to perform atomic operations in shared, coherent memory spaces | |
US8918591B2 (en) | Data processing system having selective invalidation of snoop requests and method therefor | |
US11789868B2 (en) | Hardware coherence signaling protocol | |
JP6009688B2 (ja) | 動的に割り振られたダーティマスク空間を用いるメモリ管理 | |
EP1611513B1 (en) | Multi-node system in which global address generated by processing subsystem includes global to local translation information | |
KR20010015008A (ko) | 멀티프로세서 시스템에서의 기록-통과 기억 동작동안 캐시코히어런스를 유지하는 방법 및 시스템 | |
JP5063059B2 (ja) | 方法、データ処理システム、メモリ・コントローラ(i/o書込みオペレーションのパイプライン化および多重オペレーション範囲を可能にするデータ処理システムおよび方法) |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120130 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20120130 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20120227 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20130823 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130910 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20131210 |
|
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: 20140617 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140716 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5583660 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |