JP4577729B2 - ライトバックキャッシュにおいてスヌーププッシュ処理やスヌープキル処理が同時発生しているときのライトバック処理をキャンセルするためのシステムおよび方法 - Google Patents
ライトバックキャッシュにおいてスヌーププッシュ処理やスヌープキル処理が同時発生しているときのライトバック処理をキャンセルするためのシステムおよび方法 Download PDFInfo
- Publication number
- JP4577729B2 JP4577729B2 JP2007507582A JP2007507582A JP4577729B2 JP 4577729 B2 JP4577729 B2 JP 4577729B2 JP 2007507582 A JP2007507582 A JP 2007507582A JP 2007507582 A JP2007507582 A JP 2007507582A JP 4577729 B2 JP4577729 B2 JP 4577729B2
- Authority
- JP
- Japan
- Prior art keywords
- snoop
- cache
- write
- line
- processing
- 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/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/126—Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
- G06F12/127—Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning using additional replacement algorithms
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- 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/12—Replacement control
-
- 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/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
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)
- Storage Device Security (AREA)
Description
キャッシュ142は、データ保持のためのデータ配列回路(CDA:Data Array Circuitry)CDA146とその制御論理を備える。制御論理は、ディレクトリとしてのDIR147、プロセッサコアによるキャッシュ可能型ストレージアクセスを取り扱うための「読み出しと要求(RC:Read and Claim)」に関する有限ステートマシンRC143、データのメモリへのライトバックを担当するライトバックステートマシンWB148、スヌープステートマシンであるSNOOP145を備える。DIR147は、キャッシュデータのタグと、キャッシュデータの状態(ステート)を保持する。
このフローチャートは、要不要はともかくとして、ライトバックに関する判定処理を示している。一般的には、この例はキャッシュ142が唯一のWB148マシンを備えるという実装に関する。キャッシュ可能型ストレージアクセス命令が実行され、RC143マシンがDIR147を検索してもミスヒットとなり、キャッシュ142に空きもないときには、RC143マシンはライトバック要求を発行する。RC143は、DIR147をディレクトリ検索して(S301)、CDA146に空きがないことがわかると(ディレクトリ検索失敗S302と空きエントリS303)、WB148に権限を渡す。指定されたLRUの犠牲エントリ304が更新済であれば、キャッシュ142に空きを作るためにWB148はエントリ更新済ライン(S305)をメモリに書き出す。
図4は、キャッシュミスが発生して犠牲ラインがライトバックされるときの、ライトバックに関するキャッシュ管理を示す。キャッシュ142の最初の処理は、キャッシュ400の初期状態である欄「A」にて始まる。
ライトバック処理とスヌーププッシュ処理またはスヌープキル処理が、CDA400のキャッシュデータ配列における別々のエントリで同時発生すると、スヌーププッシュやスヌープキルは無効エントリを生成するのでライトバックは必要ではなくなる。これは、CDA400においてとても重要な点である。なぜならば、CDA400は、キャッシュ可能型ストレージアクセス処理のために利用可能なエントリを(図4に関連して先述したように)5つしか持たないからである。もし、ライトバックとスヌーププッシュの同時実行が可能であれば、5つのエントリのうちの2つが無効化され、深刻なパフォーマンス低下を招く。
WB148による動的キャンセルにより、ライトバックが発生しないのでキャッシュデータ配列400においては4ラインが有効なままとなる。それから、スヌーププッシュやスヌープキルの対象となったエントリにデータがリロードされるのを待つ。WB148のステートマシンの最終段階において、5つのエントリのうちの4つが有効なままであり、これは予定通りで好ましい結果である。
Claims (4)
- プロセッサからのアクセスに対してキャッシュメモリにおいてヒット判定を行う手段と、
ヒット判定の結果がミスヒットである場合にリロード処理を行えるようにするためのキャッシュメモリの犠牲ラインを特定する手段と、
特定された犠牲ラインが有効かつ更新済である場合に特定された犠牲ラインのライトバック処理を行おうとする手段と、
ライトバック処理を行おうとする際に、キャッシュメモリにおいてスヌーププッシュ処理またはスヌープキル処理も実行しようとしており、かつ、このスヌーププッシュ処理またはスヌープキル処理を実行した結果として、前記したミスヒットに伴うリロード処理を行えるようにするためのキャッシュメモリのラインを確保できるのであれば、ライトバック処理をキャンセルし、特定された犠牲ラインを有効かつ更新済のままで保持する手段と、
を備えることを特徴とするシステム。 - 前記犠牲ラインを特定する手段は、プロセッサによる過去のアクセス履歴に基づいて、ライトバック対象となる犠牲ラインを選ぶことを特徴とする請求項1に記載のシステム。
- プロセッサからのアクセスに対してキャッシュメモリにおいてヒット判定を行うステップと、
ヒット判定の結果がミスヒットである場合にリロード処理を行えるようにするためのキャッシュメモリの犠牲ラインを特定するステップと、
特定された犠牲ラインが有効かつ更新済である場合に特定された犠牲ラインのライトバック処理を行おうとするステップと、
ライトバック処理を行おうとする際に、キャッシュメモリにおいてスヌーププッシュ処理またはスヌープキル処理も実行しようとしており、かつ、このスヌーププッシュ処理またはスヌープキル処理を実行した結果として、前記したミスヒットに伴うリロード処理を行えるようにするためのキャッシュメモリのラインを確保できるのであれば、ライトバック処理をキャンセルし、特定された犠牲ラインを有効かつ更新済のままで保持するステップと、
を備えることを特徴とする方法。 - コンピュータシステムに、
プロセッサからのアクセスに対してキャッシュメモリにおいてヒット判定を行うステップと、
ヒット判定の結果がミスヒットである場合にリロード処理を行えるようにするためのキャッシュメモリの犠牲ラインを特定するステップと、
特定された犠牲ラインが有効かつ更新済である場合に特定された犠牲ラインのライトバック処理を行おうとするステップと、
ライトバック処理を行おうとする際に、キャッシュメモリにおいてスヌーププッシュ処理またはスヌープキル処理も実行しようとしており、かつ、このスヌーププッシュ処理またはスヌープキル処理を実行した結果として、前記したミスヒットに伴うリロード処理を行えるようにするためのキャッシュメモリのラインを確保できるのであれば、ライトバック処理をキャンセルし、特定された犠牲ラインを有効かつ更新済のままで保持するステップと、
を実行させるためのプログラム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/860,426 US7353341B2 (en) | 2004-06-03 | 2004-06-03 | System and method for canceling write back operation during simultaneous snoop push or snoop kill operation in write back caches |
PCT/US2005/019104 WO2005121970A1 (en) | 2004-06-03 | 2005-06-01 | Title: system and method for canceling write back operation during simultaneous snoop push or snoop kill operation in write back caches |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2007533014A JP2007533014A (ja) | 2007-11-15 |
JP4577729B2 true JP4577729B2 (ja) | 2010-11-10 |
Family
ID=35094384
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007507582A Expired - Fee Related JP4577729B2 (ja) | 2004-06-03 | 2005-06-01 | ライトバックキャッシュにおいてスヌーププッシュ処理やスヌープキル処理が同時発生しているときのライトバック処理をキャンセルするためのシステムおよび方法 |
Country Status (7)
Country | Link |
---|---|
US (1) | US7353341B2 (ja) |
EP (1) | EP1725938A1 (ja) |
JP (1) | JP4577729B2 (ja) |
KR (1) | KR20060102565A (ja) |
CN (1) | CN1910560A (ja) |
TW (1) | TW200619938A (ja) |
WO (1) | WO2005121970A1 (ja) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8214601B2 (en) * | 2004-07-30 | 2012-07-03 | Hewlett-Packard Development Company, L.P. | Purging without write-back of cache lines containing spent data |
US7941585B2 (en) * | 2004-09-10 | 2011-05-10 | Cavium Networks, Inc. | Local scratchpad and data caching system |
KR100668326B1 (ko) * | 2005-02-01 | 2007-01-12 | 삼성전자주식회사 | 3차원 그래픽스 데이터를 랜더링하는 방법 및 장치 |
GB2484088B (en) * | 2010-09-28 | 2019-08-07 | Advanced Risc Mach Ltd | Coherency control with writeback ordering |
JP2013069139A (ja) * | 2011-09-22 | 2013-04-18 | Fujitsu Ltd | 演算処理装置及び演算処理装置の制御方法 |
CN102902631B (zh) * | 2012-09-18 | 2015-04-15 | 杭州中天微系统有限公司 | 一种避免读缺失时数据回写的多处理器核间传输方法 |
US9489305B2 (en) * | 2014-12-16 | 2016-11-08 | Qualcomm Incorporated | System and method for managing bandwidth and power consumption through data filtering |
US10073776B2 (en) * | 2016-06-23 | 2018-09-11 | Advanced Micro Device, Inc. | Shadow tag memory to monitor state of cachelines at different cache level |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5829027A (en) * | 1994-05-04 | 1998-10-27 | Compaq Computer Corporation | Removable processor board having first, second and third level cache system for use in a multiprocessor computer system |
US5684977A (en) * | 1995-03-31 | 1997-11-04 | Sun Microsystems, Inc. | Writeback cancellation processing system for use in a packet switched cache coherent multiprocessor system |
US5655100A (en) * | 1995-03-31 | 1997-08-05 | Sun Microsystems, Inc. | Transaction activation processor for controlling memory transaction execution in a packet switched cache coherent multiprocessor system |
US5829033A (en) * | 1996-07-01 | 1998-10-27 | Sun Microsystems, Inc. | Optimizing responses in a coherent distributed electronic system including a computer system |
US6275907B1 (en) * | 1998-11-02 | 2001-08-14 | International Business Machines Corporation | Reservation management in a non-uniform memory access (NUMA) data processing system |
US6349367B1 (en) * | 1999-08-04 | 2002-02-19 | International Business Machines Corporation | Method and system for communication in which a castout operation is cancelled in response to snoop responses |
US6502171B1 (en) * | 1999-08-04 | 2002-12-31 | International Business Machines Corporation | Multiprocessor system bus with combined snoop responses explicitly informing snoopers to scarf data |
-
2004
- 2004-06-03 US US10/860,426 patent/US7353341B2/en not_active Expired - Fee Related
-
2005
- 2005-06-01 WO PCT/US2005/019104 patent/WO2005121970A1/en not_active Application Discontinuation
- 2005-06-01 EP EP05774572A patent/EP1725938A1/en not_active Withdrawn
- 2005-06-01 KR KR1020067013231A patent/KR20060102565A/ko not_active Application Discontinuation
- 2005-06-01 CN CNA2005800023549A patent/CN1910560A/zh active Pending
- 2005-06-01 JP JP2007507582A patent/JP4577729B2/ja not_active Expired - Fee Related
- 2005-06-02 TW TW094118179A patent/TW200619938A/zh unknown
Also Published As
Publication number | Publication date |
---|---|
EP1725938A1 (en) | 2006-11-29 |
WO2005121970A1 (en) | 2005-12-22 |
CN1910560A (zh) | 2007-02-07 |
US7353341B2 (en) | 2008-04-01 |
US20050273563A1 (en) | 2005-12-08 |
KR20060102565A (ko) | 2006-09-27 |
TW200619938A (en) | 2006-06-16 |
JP2007533014A (ja) | 2007-11-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11803486B2 (en) | Write merging on stores with different privilege levels | |
US9513904B2 (en) | Computer processor employing cache memory with per-byte valid bits | |
US7657710B2 (en) | Cache coherence protocol with write-only permission | |
JP3737834B2 (ja) | 2重化キャッシュ・スヌープ機構 | |
TWI432963B (zh) | 加速器之低成本快取一致 | |
US7698508B2 (en) | System and method for reducing unnecessary cache operations | |
US6272602B1 (en) | Multiprocessing system employing pending tags to maintain cache coherence | |
US7032074B2 (en) | Method and mechanism to use a cache to translate from a virtual bus to a physical bus | |
US7305522B2 (en) | Victim cache using direct intervention | |
JP3269967B2 (ja) | キャッシュコヒーレンシ制御方法、および、これを用いたマルチプロセッサシステム | |
US7305523B2 (en) | Cache memory direct intervention | |
KR101497002B1 (ko) | 스누프 필터링 메커니즘 | |
US6625698B2 (en) | Method and apparatus for controlling memory storage locks based on cache line ownership | |
JP4577729B2 (ja) | ライトバックキャッシュにおいてスヌーププッシュ処理やスヌープキル処理が同時発生しているときのライトバック処理をキャンセルするためのシステムおよび方法 | |
JP2010507160A (ja) | データ処理装置の共有メモリへの書込みアクセス要求の処理 | |
US20070005906A1 (en) | Information processing apparatus and cache memory control method | |
US6202126B1 (en) | Victimization of clean data blocks | |
US8332592B2 (en) | Graphics processor with snoop filter | |
EP2339472B1 (en) | Arithmetic processing unit, information processing device, and cache memory control method | |
JP3550092B2 (ja) | キャッシュ装置及び制御方法 | |
JPH04230549A (ja) | 多重レベル・キャッシュ | |
US6477622B1 (en) | Simplified writeback handling | |
JP3732397B2 (ja) | キャッシュシステム | |
US5907853A (en) | Method and apparatus for maintaining duplicate cache tags with selectable width | |
US11599469B1 (en) | System and methods for cache coherent system using ownership-based scheme |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100223 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100518 |
|
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: 20100727 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20100727 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20100818 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130903 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130903 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130903 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130903 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |