JP4335298B2 - スヌープ制御方法および情報処理装置 - Google Patents
スヌープ制御方法および情報処理装置 Download PDFInfo
- Publication number
- JP4335298B2 JP4335298B2 JP2008501535A JP2008501535A JP4335298B2 JP 4335298 B2 JP4335298 B2 JP 4335298B2 JP 2008501535 A JP2008501535 A JP 2008501535A JP 2008501535 A JP2008501535 A JP 2008501535A JP 4335298 B2 JP4335298 B2 JP 4335298B2
- Authority
- JP
- Japan
- Prior art keywords
- access request
- memory access
- memory
- target data
- cache
- 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
Description
2a,2b,2c,2d IO装置
3a,3b,3c,3d メインメモリ
4a,4c メモリアクセス要求受信部
5a,5c ブロードキャスト送受信部
6a,6c スヌープ制御部
7a,7c CPUリクエスト発行部
8a,8c MSアクセス発行部
9a,9c キャッシュ管理テーブル
11a,11b,11c,11d キャッシュメモリ
SB0,SB1 システムボード
SC0,SC1 システムコントローラ
Claims (4)
- キャッシュメモリを有する複数のCPUと、共有メモリを構成する複数のメインメモリとをグループ分けし、グループ毎にCPUとメインメモリとを管理し前記キャッシュメモリ間または前記キャッシュメモリとメインメモリとの間のデータ転送を制御するシステムコントローラを備える情報処理装置に適用されるスヌープ制御方法であって、
前記システムコントローラは、
自身が管理するCPUからのメモリアクセス要求を受けて他のシステムコントローラに通知するメモリアクセス要求通知ステップと、
自身が管理するCPUからのメモリアクセス要求、または前記メモリアクセス要求通知ステップによって他のシステムコントローラからメモリアクセス要求を受けると、前記メモリアクセス要求の要求する対象データが前記メモリアクセス要求よりも先に受けた先行メモリアクセス要求の要求する対象データと競合するか否か、前記メモリアクセス要求の要求する対象データが自身が管理するキャッシュメモリ内に存在するか否か、前記メモリアクセス要求の要求する対象データを転送するための資源が枯渇しているか否かを自身が管理するCPU内のキャッシュメモリ毎に判定する判定ステップと、
前記判定ステップによって、前記メモリアクセス要求の要求する対象データが前記先行メモリアクセス要求の要求する対象データと競合すると判定した場合には、当該キャッシュメモリのステータスとして「BUSY」を選択し、前記メモリアクセス要求の要求する対象データが前記先行メモリアクセス要求の要求する対象データと競合しておらず、前記メモリアクセス要求の要求する対象データが自身が管理するキャッシュメモリ内に存在し、かつ前記メモリアクセス要求の要求する対象データを転送するための資源が枯渇していないと判定した場合には、当該キャッシュメモリのステータスとして「HIT」を選択し、前記メモリアクセス要求の要求する対象データが前記先行メモリアクセス要求の要求する対象データと競合しておらず、前記メモリアクセス要求の要求する対象データが自身が管理するキャッシュメモリ内に存在し、かつ前記メモリアクセス要求の要求する対象データを転送するための資源が枯渇していると判定した場合には、当該キャッシュメモリのステータスとして「HIT&BUSY」を選択し、前記メモリアクセス要求の要求する対象データが前記先行メモリアクセス要求の要求する対象データと競合しておらず、かつ前記メモリアクセス要求の要求する対象データが自身が管理するキャッシュメモリ内に存在しない場合には、当該キャッシュメモリのステータスとして「MISS」を選択するステータス選択ステップと、
前記ステータス選択ステップによって選択したステータスとキャッシュメモリとを対応付けたスヌープ処理結果を他のシステムコントローラに通知するスヌープ処理結果通知ステップと、
前記スヌープ処理結果通知ステップによって通知されたスヌープ処理結果および自身のスヌープ処理結果に含まれるすべてのステータスの中に「BUSY」が存在する場合には最終ステータスを「BUSY」とし、すべてのステータスの中に「BUSY」が存在せず、かつ「HIT」が存在する場合には最終ステータスを「HIT」とし、すべてのステータスの中に「BUSY」および「HIT」が存在せず、かつ「HIT&BUSY」が存在する場合には最終ステータスを「HIT&BUSY」とし、すべてのステータスが「MISS」の場合には最終ステータスを「MISS」とする最終ステータス決定ステップと、
前記最終ステータス選択ステップによって、最終ステータスが「BUSY」または「HIT&BUSY」と決定された場合には、前記判定ステップ、前記ステータス選択ステップ、前記スヌープ処理結果通知ステップ、および最終ステータス決定ステップを繰り返し、最終ステータスが「HIT」と決定された場合には、ステータスが「HIT」であるキャッシュメモリを有するCPUと、メモリアクセス要求を発行したCPUとの物理的な距離に基づいて1つのCPUを選択し、選択したCPUが自身が管理するCPUの場合には選択したCPUのキャッシュメモリへのメモリアクセス処理を起動してデータ転送を実行させ、前記最終ステータスが「MISS」の場合には、前記メモリアクセス要求の対象データを有するメインメモリが自身が管理するメインメモリであるか否かを判定し、判定の結果自身が管理するメインメモリである場合当該メインメモリへのアクセス処理を起動してデータ転送を実行させるメモリアクセス処理起動ステップと、
を実行することを特徴とするスヌープ制御方法。 - 前記キャッシュメモリ間のデータ転送の単位であるキャッシュラインのバイト数よりも、前記メインメモリから前記キャッシュメモリへのデータ転送の単位であるエントリーのバイト数が大きい場合であって、かつ前記メモリアクセス要求が対象データの読み出しを要求するフェッチ要求の場合、
前記判定ステップは、
前記メモリアクセス要求の要求する対象データと、前記先行メモリアクセス要求の対象データとが同一エントリー内のデータであるか否かの判定をさらに含み、
前記ステータス選択ステップは、
前記メモリアクセス要求の要求する対象データが前記先行メモリアクセス要求の要求する対象データと競合しておらず、前記メモリアクセス要求の要求する対象データが自身が管理するキャッシュメモリ内に存在しておらず、かつメモリアクセス要求の要求する対象データが前記先行メモリアクセス要求の対象データと同一エントリー内のデータである場合には、当該キャッシュメモリのステータスとして「MISS&BUSY」を選択し、
前記最終ステータス選択ステップは、
「BUSY」、「HIT」&「HIT&BUSY」が存在せず、かつ「MISS&BUSY」が存在する場合には最終ステータスを「MISS&BUSY」とし、
前記メモリアクセス処理起動ステップは、
前記最終ステータスが「MISS&BUSY」の場合も、前記判定ステップ、前記ステータス選択ステップ、前記スヌープ処理結果通知ステップ、および最終ステータス決定ステップを繰り返すこと、
を特徴とする請求項1に記載のスヌープ制御方法。 - キャッシュメモリを有する複数のCPUと、共有メモリを構成する複数のメインメモリとをグループ分けし、グループ毎にCPUとメインメモリとを管理し前記キャッシュメモリ間または前記キャッシュメモリとメインメモリとの間のデータ転送を制御するシステムコントローラを備える情報処理装置において、
前記各システムコントローラは、
自身が管理するCPUからのメモリアクセス要求を受けて他のシステムコントローラに通知するブロードキャスト送受信部と、
自身が管理するCPUからのメモリアクセス要求、または前記ブロードキャスト送受信部を介した他のシステムコントローラからのメモリアクセス要求を受けると、前記メモリアクセス要求の要求する対象データが前記メモリアクセス要求よりも先に受けた先行メモリアクセス要求の要求する対象データと競合するか否か、前記メモリアクセス要求の要求する対象データが自身が管理するキャッシュメモリ内に存在するか否か、前記メモリアクセス要求の要求する対象データを転送するための資源が枯渇しているか否かを自身が管理するCPU内のキャッシュメモリ毎に判定し、前記メモリアクセス要求の要求する対象データが前記先行メモリアクセス要求の要求する対象データと競合すると判定した場合には、当該キャッシュメモリのステータスとして「BUSY」を選択し、前記メモリアクセス要求の要求する対象データが前記先行メモリアクセス要求の要求する対象データと競合しておらず、前記メモリアクセス要求の要求する対象データが自身が管理するキャッシュメモリ内に存在し、かつ前記メモリアクセス要求の要求する対象データを転送するための資源が枯渇していないと判定した場合には、当該キャッシュメモリのステータスとして「HIT」を選択し、前記メモリアクセス要求の要求する対象データが前記先行メモリアクセス要求の要求する対象データと競合しておらず、前記メモリアクセス要求の要求する対象データが自身が管理するキャッシュメモリ内に存在し、かつ前記メモリアクセス要求の要求する対象データを転送するための資源が枯渇していると判定した場合には、当該キャッシュメモリのステータスとして「HIT&BUSY」を選択し、前記メモリアクセス要求の要求する対象データが前記先行メモリアクセス要求の要求する対象データと競合しておらず、かつ前記メモリアクセス要求の要求する対象データが自身が管理するキャッシュメモリ内に存在しない場合には、当該キャッシュメモリのステータスとして「MISS」を選択し、選択したステータスとキャッシュメモリとを対応付けたスヌープ処理結果を他のシステムコントローラに通知するスヌープ処理を実行し、このスヌープ処理によって通知されたスヌープ処理結果および自身のスヌープ処理結果に含まれるすべてのステータスの中に「BUSY」が存在する場合には最終ステータスを「BUSY」とし、すべてのステータスの中に「BUSY」が存在せず、かつ「HIT」が存在する場合には最終ステータスを「HIT」とし、すべてのステータスの中に「BUSY」および「HIT」が存在せず、かつ「HIT&BUSY」が存在する場合には最終ステータスを「HIT&BUSY」とし、すべてのステータスが「MISS」の場合には最終ステータスを「MISS」とし、最終ステータスが「BUSY」または「HIT&BUSY」と決定された場合には前記スヌープ処理をリトライし、最終ステータスが「HIT」と決定された場合には、ステータスが「HIT」であるキャッシュメモリを有するCPUと、メモリアクセス要求を発行したCPUとの物理的な距離に基づいて1つのCPUを選択し、選択したCPUが自身が管理するCPUの場合には選択したCPUのキャッシュメモリへのメモリアクセス処理を起動してデータ転送を実行させ、前記最終ステータスが「MISS」の場合には、前記メモリアクセス要求の対象データを有するメインメモリが自身が管理するメインメモリであるか否かを判定し、判定の結果自身が管理するメインメモリである場合当該メインメモリへのアクセス処理を起動してデータ転送を実行させるスヌープ制御部と、
を備えることを特徴とする情報処理装置。 - 前記キャッシュメモリ間のデータ転送の単位であるキャッシュラインのバイト数よりも、前記メインメモリから前記キャッシュメモリへのデータ転送の単位であるエントリーのバイト数が大きい場合であって、かつ前記メモリアクセス要求が対象データの読み出しを要求するフェッチ要求の場合、
前記スヌープ制御部は、
メモリアクセス要求の要求する対象データと、前記先行メモリアクセス要求の対象データとが同一エントリー内のデータであるか否かを判定し、前記メモリアクセス要求の要求する対象データが前記先行メモリアクセス要求の要求する対象データと競合しておらず、前記メモリアクセス要求の要求する対象データが自身が管理するキャッシュメモリ内に存在しておらず、かつ前記メモリアクセス要求の要求する対象データが前記先行メモリアクセス要求の対象データと同一エントリー内のデータである場合には、当該キャッシュメモリのステータスとして「MISS&BUSY」を選択し、「BUSY」、「HIT」&「HIT&BUSY」が存在せず、かつ「MISS&BUSY」が存在する場合には最終ステータスを「MISS&BUSY」として前記スヌープ処理をリトライすること、
を特徴とする請求項3に記載の情報処理装置。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2006/303436 WO2007096978A1 (ja) | 2006-02-24 | 2006-02-24 | スヌープ制御方法および情報処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2007096978A1 JPWO2007096978A1 (ja) | 2009-07-09 |
JP4335298B2 true JP4335298B2 (ja) | 2009-09-30 |
Family
ID=38437040
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008501535A Expired - Fee Related JP4335298B2 (ja) | 2006-02-24 | 2006-02-24 | スヌープ制御方法および情報処理装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8051251B2 (ja) |
EP (1) | EP1988464B1 (ja) |
JP (1) | JP4335298B2 (ja) |
WO (1) | WO2007096978A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011148482A1 (ja) * | 2010-05-27 | 2011-12-01 | 富士通株式会社 | 情報処理システム及びシステムコントローラ |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009223759A (ja) * | 2008-03-18 | 2009-10-01 | Fujitsu Ltd | 情報処理装置,メモリ制御方法およびメモリ制御装置 |
JP5440067B2 (ja) * | 2009-09-18 | 2014-03-12 | 富士通株式会社 | キャッシュメモリ制御装置およびキャッシュメモリ制御方法 |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5522058A (en) * | 1992-08-11 | 1996-05-28 | Kabushiki Kaisha Toshiba | Distributed shared-memory multiprocessor system with reduced traffic on shared bus |
JP2809961B2 (ja) * | 1993-03-02 | 1998-10-15 | 株式会社東芝 | マルチプロセッサ |
US5673413A (en) | 1995-12-15 | 1997-09-30 | International Business Machines Corporation | Method and apparatus for coherency reporting in a multiprocessing system |
JPH09221381A (ja) | 1996-02-08 | 1997-08-26 | Komatsu Electron Metals Co Ltd | 単結晶引上装置の真空排気装置 |
US5924121A (en) * | 1996-12-23 | 1999-07-13 | International Business Machines Corporation | Adaptive writeback of cache line data in a computer operated with burst mode transfer cycles |
US5940864A (en) * | 1997-04-14 | 1999-08-17 | International Business Machines Corporation | Shared memory-access priorization method for multiprocessors using caches and snoop responses |
US5940856A (en) | 1997-04-14 | 1999-08-17 | International Business Machines Corporation | Cache intervention from only one of many cache lines sharing an unmodified value |
US5963974A (en) | 1997-04-14 | 1999-10-05 | International Business Machines Corporation | Cache intervention from a cache line exclusively holding an unmodified value |
US5946709A (en) | 1997-04-14 | 1999-08-31 | International Business Machines Corporation | Shared intervention protocol for SMP bus using caches, snooping, tags and prioritizing |
US6138218A (en) * | 1998-02-17 | 2000-10-24 | International Business Machines Corporation | Forward progress on retried snoop hits by altering the coherency state of a local cache |
US6141733A (en) | 1998-02-17 | 2000-10-31 | International Business Machines Corporation | Cache coherency protocol with independent implementation of optimized cache operations |
US6292872B1 (en) | 1998-02-17 | 2001-09-18 | International Business Machines Corporation | Cache coherency protocol having hovering (H) and recent (R) states |
JPH11328027A (ja) | 1998-02-17 | 1999-11-30 | Internatl Business Mach Corp <Ibm> | キャッシュ・コヒ―レンスを維持する方法及びコンピュ―タ・システム |
US6108764A (en) | 1998-12-17 | 2000-08-22 | International Business Machines Corporation | Non-uniform memory access (NUMA) data processing system with multiple caches concurrently holding data in a recent state from which data can be sourced by shared intervention |
US6115804A (en) | 1999-02-10 | 2000-09-05 | International Business Machines Corporation | Non-uniform memory access (NUMA) data processing system that permits multiple caches to concurrently hold data in a recent state from which data can be sourced by shared intervention |
US6266743B1 (en) | 1999-02-26 | 2001-07-24 | International Business Machines Corporation | Method and system for providing an eviction protocol within a non-uniform memory access system |
US6275909B1 (en) * | 1999-08-04 | 2001-08-14 | International Business Machines Corporation | Multiprocessor system bus with system controller explicitly updating snooper cache state information |
US6457100B1 (en) * | 1999-09-15 | 2002-09-24 | International Business Machines Corporation | Scaleable shared-memory multi-processor computer system having repetitive chip structure with efficient busing and coherence controls |
US6356983B1 (en) | 2000-07-25 | 2002-03-12 | Src Computers, Inc. | System and method providing cache coherency and atomic memory operations in a multiprocessor computer architecture |
US6751705B1 (en) * | 2000-08-25 | 2004-06-15 | Silicon Graphics, Inc. | Cache line converter |
US6976131B2 (en) * | 2002-08-23 | 2005-12-13 | Intel Corporation | Method and apparatus for shared cache coherency for a chip multiprocessor or multiprocessor system |
-
2006
- 2006-02-24 WO PCT/JP2006/303436 patent/WO2007096978A1/ja active Application Filing
- 2006-02-24 EP EP06714575.5A patent/EP1988464B1/en not_active Expired - Fee Related
- 2006-02-24 JP JP2008501535A patent/JP4335298B2/ja not_active Expired - Fee Related
-
2008
- 2008-08-25 US US12/230,178 patent/US8051251B2/en not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011148482A1 (ja) * | 2010-05-27 | 2011-12-01 | 富士通株式会社 | 情報処理システム及びシステムコントローラ |
Also Published As
Publication number | Publication date |
---|---|
EP1988464A4 (en) | 2009-12-02 |
US20080320238A1 (en) | 2008-12-25 |
EP1988464A1 (en) | 2008-11-05 |
EP1988464B1 (en) | 2018-11-21 |
US8051251B2 (en) | 2011-11-01 |
WO2007096978A1 (ja) | 2007-08-30 |
JPWO2007096978A1 (ja) | 2009-07-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108885583B (zh) | 高速缓存存储器访问 | |
KR101639672B1 (ko) | 무한 트랜잭션 메모리 시스템 및 그 동작 방법 | |
US7234029B2 (en) | Method and apparatus for reducing memory latency in a cache coherent multi-node architecture | |
US8806148B2 (en) | Forward progress mechanism for stores in the presence of load contention in a system favoring loads by state alteration | |
JP3924203B2 (ja) | マルチノード・コンピュータ・システムにおける非集中グローバル・コヒーレンス管理 | |
KR100318789B1 (ko) | 멀티프로세서 데이타 처리 시스템에서의 캐쉬를 관리하는시스템과 방법 | |
JP3900478B2 (ja) | 不均等メモリ・アクセス(numa)コンピュータ・システム及び該コンピュータ・システムを操作する方法 | |
JP3900479B2 (ja) | システム・メモリに組み込まれるリモート・メモリ・キャッシュを有する不均等メモリ・アクセス(numa)データ処理システム | |
US8015365B2 (en) | Reducing back invalidation transactions from a snoop filter | |
US8131935B2 (en) | Virtual barrier synchronization cache | |
US8095733B2 (en) | Virtual barrier synchronization cache castout election | |
US8799589B2 (en) | Forward progress mechanism for stores in the presence of load contention in a system favoring loads | |
JP4474570B2 (ja) | キャッシュコヒーレンシ制御方法 | |
US8176261B2 (en) | Information processing apparatus and data transfer method | |
JPH11272557A (ja) | キャッシュ・コヒ―レンシを維持する方法及びシステム | |
US8266386B2 (en) | Structure for maintaining memory data integrity in a processor integrated circuit using cache coherency protocols | |
JP3550092B2 (ja) | キャッシュ装置及び制御方法 | |
JP4335298B2 (ja) | スヌープ制御方法および情報処理装置 | |
US8108618B2 (en) | Method and apparatus for maintaining memory data integrity in an information handling system using cache coherency protocols | |
US8972663B2 (en) | Broadcast cache coherence on partially-ordered network | |
JP6631317B2 (ja) | 演算処理装置、情報処理装置および情報処理装置の制御方法 | |
CN112955877A (zh) | 修改存储数据的装置和方法 | |
KR19980079625A (ko) | 데이타 처리 시스템 내의 캐쉬 메모리 데이타를 추론적으로 공급하기 위한 방법 및 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090407 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090605 |
|
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: 20090623 |
|
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: 20090624 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120703 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4335298 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120703 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130703 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |