KR970016951A - 디렉토리 기반의 캐시 코히어런스 프로토콜을 사용하는 멀티프로세서에서의 무효화 버스 최적화 - Google Patents
디렉토리 기반의 캐시 코히어런스 프로토콜을 사용하는 멀티프로세서에서의 무효화 버스 최적화 Download PDFInfo
- Publication number
- KR970016951A KR970016951A KR1019960032843A KR19960032843A KR970016951A KR 970016951 A KR970016951 A KR 970016951A KR 1019960032843 A KR1019960032843 A KR 1019960032843A KR 19960032843 A KR19960032843 A KR 19960032843A KR 970016951 A KR970016951 A KR 970016951A
- Authority
- KR
- South Korea
- Prior art keywords
- invalidation
- global directory
- cache
- processor
- copy
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
-
- 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/0826—Limited pointers directories; State-only directories without pointers
-
- 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/0813—Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
다단계 상호접속 네트워크 기반의 멀티프로세서에 대한 디렉토리 기반의 캐시 코히어런스 프로토콜을 위한 최적화 스킴은 네트워크 지연을 감소시킴으로써 시스템 성능을 향상시킨다. 적절한 수의 프로세서를 구비한 스케일러블 멀티프로세서 시스템에 최적화 스킴은 적용된다. 공유 데이타를 수정하는 것은 이러한 시스템의 성능 하락에 가장 중요한 인자이다. 디렉토리 기반의 캐시 코히어런스 스킴은 네트워크의 프로세서 측상에 있는 무효화 버스를 사용되다. 무효화 버스는 시스템 내의 모든 전용 캐시를 접속하여 무효화 요청을 처리함으로써 네트워크를 통해 무효 표시를 보내야 할 필요성을 제거한다.
Description
본 내용은 요부공개 건이므로 전문내용을 수록하지 않았음
제1A, 1B, 1C 및 1D도는 디렉토리 기반의 캐시 코히어런스 멀티프로세서 시스템에서의 종래의 무효화 프로토콜을 도시하는 기능 블럭도.
제2A, 2B 및 2C도는 최적화된 종래의 무효화 프로토콜을 도시하는 기능 블럭도.
제3도는 본 발명의 양호한 실시예에 따른 디렉토리 및 무효화 버스를 구비한 시스템의 기능 다이어그램.
Claims (7)
- 연관된 캐시 메모리를 각각 갖고 있는 다수의 프로세서; 각 프로세서의 캐시 메모리와 결합된 다단계 상호접속 네트워크; 상기 다단계 상호접속 네트워크와 결합된 다수의 인터리브형 메모리 모듈; 캐시 라인(cache line)의 전역 상태를 결정하기 위해 사용되는 정보를 포함하는 전역 디렉토리(global directory), 상기 전역 디렉토리는 분산형 전역 디렉토리를 구성하는 다수의 전역 디렉토리 모듈로 이루어지며, 각 메모리 모듈은 연관된 전역 디렉토리 모듈을 구비하며; 및 상기 각 캐시 메모리와 직접 결합된 무효화 버스(an invalidation bus)를 포함하며, 데이타를 수정하고자 하는 프로세서는 데이타 수정을 위한 스토어 요청(store request)을 상기 전역 디렉토리로 보냄과 동시에 수정될 데이타의 주소를 상기 무효화 버스 상에 올리며, 모든 캐시 메모리는 상기 무효화 버스 상의 주소에 의해 지정되는 캐시 라인의 복사본을 가지며, 상기 무효화 버스는 상기 캐시 라인의 각 복사본을 무효화시키며, 상기 전역 디렉토리는 데이타의 수정 허가를 요청하는 프로세서에 허가 신호를 보내는 것을 특징으로 하는 공유 메모리 멀티프로세서 시스템(a shared memory multiprocessor system).
- 제1항에 있어서, 상기 전역 디렉토리는 해당 라인의 복사본을 갖는 캐시 메모리의 개수에 대한 정보를 포함하는 것을 특징으로 하는 공유 메모리 멀티프로세서 시스템.
- 제1항에 있어서, 캐시 메모리는 상기 무효화 버스를 통해 상기 어드레스에 의해 지정되는 캐시 라인의 복사본을 무효화시키고자 할 때는 무효 승인 신호를 상기 전역 디렉토리로 보내고, 상기 무효 승인 신호를 수신함으로써 상기 전역 디렉토리는 상기 허가 신호를 데이타를 수정하려는 프로세서로 보내는 것을 특징으로 하는 공유 메모리 멀티프로세서 시스템.
- 제1항에 있어서, 캐시 메모리는 상기 무효화 버스를 통해 상기 어드레스에 의해 지정되는 캐시 라인의 복사본을 무효화시키고자 할 때는 무효 승인 신호를 데이타를 수정하려는 프로세서로 바로 보내며, 상기 전역 디렉토리는 상기 허가 신호에 더해 프로세서가 수신해야 하는 무효 승인의 횟수를 보내는 것을 특징으로 하는 공유 메모리 멀티프로세서 시스템.
- 다수의 인터리브형 메모리 모듈이 다단계 상호접속 네트워크를 경유하여 다수의 프로세서와 결합되는 공유 메모리 멀티프로세서 시스템에서 캐시 코히어런스(cache coherence)를 유지하기 위한 무효화 프로토콜에 있어서, 캐시 라인의 전역 상태를 결정하기 위해 사용되는 정보를 포함하는 전역 디렉토리를 제공하는 단계, 상기 전역 디렉토리는 분산형 전역 디렉토리를 구성하는 다수의 전역 디렉토리 모듈로 이루어지며, 각 메모리 모듈은 연관된 전역 디렉토리 모듈을 구비하며; 캐시 메모리의 각각에 직접 결합된 무효화 버스를 제공하는 단계; 데이타 수정을 위한 스토어 요청을 상기 전역 디렉토리로 보냄과 동시에 데이타를 수정하고자 하는 프로세서에 의해 수정될 데이타의 주소를 상기 무효화 버스 상에 올리는 단계; 상기 무효화 버스 상의 주소에 의해 지정되는 캐시 라인의 복사본을 갖는 모든 캐시 메모리에 의해 각 복사본을 무효화하는 단계; 및 상기 전역 디렉토리에 의해 허가 신호를 데이타의 수정 허가를 요청하는 프로세서에 보내는 단계를 포함하는 것을 특징으로 하는 무효화 프로토콜.
- 제5항에 있어서, 캐시 메모리가 상기 무효화 버스를 통해 상기 어드레스에 의해 지정되는 캐시 라인의 복사본을 무효화시키고자 할 때는 무효 승인 신호를 상기 전역 디렉토리로 보내는 단계; 및 상기 전역 디렉토리가 상기 무효 승인 신호를 수신할 때 상기 허가 신호를 데이타를 수정하려는 프로세서로 보내는 단계를 더 포함하는 것을 무효화 프로토콜.
- 제5항에 있어서, 캐시 메모리가 상기 무효화 버스를 통해 상기 어드레스에 의해 지정되는 캐시 라인의 복사본을 무효화시키고자 할 때 무효 승인 신호를 데이타를 수정하려는 프로세서로 바로 보내는 단계; 및 상기 전역 디렉토리가 상기 허가 신호에 더해 프로세서가 수신해야 하는 무효 승인의 횟수를 보내는 단계를 더 포함하는 것을 무효화 프로토콜.※ 참고사항 : 최초출원 내용에 의하여 공개하는 것임.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US8/533,044 | 1995-09-25 | ||
US08/533,044 US5778437A (en) | 1995-09-25 | 1995-09-25 | Invalidation bus optimization for multiprocessors using directory-based cache coherence protocols in which an address of a line to be modified is placed on the invalidation bus simultaneously with sending a modify request to the directory |
US08/533,044 | 1995-09-25 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR970016951A true KR970016951A (ko) | 1997-04-28 |
KR100234503B1 KR100234503B1 (ko) | 1999-12-15 |
Family
ID=24124228
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019960032843A KR100234503B1 (ko) | 1995-09-25 | 1996-08-07 | 디렉토리 기반의 캐시 코히어런스 프로토콜을 사용하는 멀티프로세서에서의 무효화 버스 최적화 |
Country Status (5)
Country | Link |
---|---|
US (1) | US5778437A (ko) |
EP (1) | EP0764905B1 (ko) |
JP (1) | JP3320312B2 (ko) |
KR (1) | KR100234503B1 (ko) |
DE (1) | DE69616226T2 (ko) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5950226A (en) * | 1996-07-01 | 1999-09-07 | Sun Microsystems, Inc. | Multiprocessing system employing a three-hop communication protocol |
US5900015A (en) * | 1996-08-09 | 1999-05-04 | International Business Machines Corporation | System and method for maintaining cache coherency using path directories |
US6094709A (en) * | 1997-07-01 | 2000-07-25 | International Business Machines Corporation | Cache coherence for lazy entry consistency in lockup-free caches |
US6295584B1 (en) * | 1997-08-29 | 2001-09-25 | International Business Machines Corporation | Multiprocessor computer system with memory map translation |
US6633958B1 (en) * | 1997-11-17 | 2003-10-14 | Silicon Graphics, Inc. | Multiprocessor computer system and method for maintaining cache coherence utilizing a multi-dimensional cache coherence directory structure |
US6108721A (en) * | 1998-06-29 | 2000-08-22 | Hewlett-Packard Company | Method and apparatus for ensuring data consistency between an i/o channel and a processor |
US6295598B1 (en) * | 1998-06-30 | 2001-09-25 | Src Computers, Inc. | Split directory-based cache coherency technique for a multi-processor computer system |
US6751698B1 (en) | 1999-09-29 | 2004-06-15 | Silicon Graphics, Inc. | Multiprocessor node controller circuit and method |
JP3571616B2 (ja) * | 2000-05-23 | 2004-09-29 | エヌ・ティ・ティ・コムウェア株式会社 | データの共有方法、端末装置および記録媒体 |
US6725334B2 (en) * | 2000-06-09 | 2004-04-20 | Hewlett-Packard Development Company, L.P. | Method and system for exclusive two-level caching in a chip-multiprocessor |
US6668308B2 (en) * | 2000-06-10 | 2003-12-23 | Hewlett-Packard Development Company, L.P. | Scalable architecture based on single-chip multiprocessing |
US6738836B1 (en) * | 2000-08-31 | 2004-05-18 | Hewlett-Packard Development Company, L.P. | Scalable efficient I/O port protocol |
US6633960B1 (en) * | 2000-08-31 | 2003-10-14 | Hewlett-Packard Development Company, L.P. | Scalable directory based cache coherence protocol |
US6763434B2 (en) * | 2000-12-30 | 2004-07-13 | International Business Machines Corporation | Data processing system and method for resolving a conflict between requests to modify a shared cache line |
US6801984B2 (en) * | 2001-06-29 | 2004-10-05 | International Business Machines Corporation | Imprecise snooping based invalidation mechanism |
US7003635B2 (en) * | 2002-10-03 | 2006-02-21 | Hewlett-Packard Development Company, L.P. | Generalized active inheritance consistency mechanism having linked writes |
US7082500B2 (en) * | 2003-02-18 | 2006-07-25 | Cray, Inc. | Optimized high bandwidth cache coherence mechanism |
KR100515059B1 (ko) * | 2003-07-22 | 2005-09-14 | 삼성전자주식회사 | 멀티프로세서 시스템 및 멀티프로세서 시스템의 캐쉬일관성 유지 방법 |
US7249224B2 (en) * | 2003-08-05 | 2007-07-24 | Newisys, Inc. | Methods and apparatus for providing early responses from a remote data cache |
US8205046B2 (en) * | 2005-01-31 | 2012-06-19 | Hewlett-Packard Development Company, L.P. | System and method for snooping cache information using a directory crossbar |
GB2538054B (en) * | 2015-04-28 | 2017-09-13 | Advanced Risc Mach Ltd | Data processing apparatus, controller, cache and method |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3845474A (en) * | 1973-11-05 | 1974-10-29 | Honeywell Inf Systems | Cache store clearing operation for multiprocessor mode |
US4142234A (en) * | 1977-11-28 | 1979-02-27 | International Business Machines Corporation | Bias filter memory for filtering out unnecessary interrogations of cache directories in a multiprocessor system |
US4648030A (en) * | 1983-09-22 | 1987-03-03 | Digital Equipment Corporation | Cache invalidation mechanism for multiprocessor systems |
US4959777A (en) * | 1987-07-27 | 1990-09-25 | Motorola Computer X | Write-shared cache circuit for multiprocessor system |
US5058006A (en) * | 1988-06-27 | 1991-10-15 | Digital Equipment Corporation | Method and apparatus for filtering invalidate requests |
US5025365A (en) * | 1988-11-14 | 1991-06-18 | Unisys Corporation | Hardware implemented cache coherency protocol with duplicated distributed directories for high-performance multiprocessors |
JPH0680499B2 (ja) * | 1989-01-13 | 1994-10-12 | インターナショナル・ビジネス・マシーンズ・コーポレーション | マルチプロセッサ・システムのキャッシュ制御システムおよび方法 |
US5345578A (en) * | 1989-06-30 | 1994-09-06 | Digital Equipment Corporation | Competitive snoopy caching for large-scale multiprocessors |
US5283886A (en) * | 1989-08-11 | 1994-02-01 | Hitachi, Ltd. | Multiprocessor cache system having three states for generating invalidating signals upon write accesses |
US5197139A (en) * | 1990-04-05 | 1993-03-23 | International Business Machines Corporation | Cache management for multi-processor systems utilizing bulk cross-invalidate |
CA2045756C (en) * | 1990-06-29 | 1996-08-20 | Gregg Bouchard | Combined queue for invalidates and return data in multiprocessor system |
US5276852A (en) * | 1990-10-01 | 1994-01-04 | Digital Equipment Corporation | Method and apparatus for controlling a processor bus used by multiple processor components during writeback cache transactions |
US5249283A (en) * | 1990-12-24 | 1993-09-28 | Ncr Corporation | Cache coherency method and apparatus for a multiple path interconnection network |
US5303362A (en) * | 1991-03-20 | 1994-04-12 | Digital Equipment Corporation | Coupled memory multiprocessor computer system including cache coherency management protocols |
US5313609A (en) * | 1991-05-23 | 1994-05-17 | International Business Machines Corporation | Optimum write-back strategy for directory-based cache coherence protocols |
US5428761A (en) * | 1992-03-12 | 1995-06-27 | Digital Equipment Corporation | System for achieving atomic non-sequential multi-word operations in shared memory |
US5398325A (en) * | 1992-05-07 | 1995-03-14 | Sun Microsystems, Inc. | Methods and apparatus for improving cache consistency using a single copy of a cache tag memory in multiple processor computer systems |
US5511224A (en) * | 1993-02-18 | 1996-04-23 | Unisys Corporation | Configurable network using dual system busses with common protocol compatible for store-through and non-store-through cache memories |
-
1995
- 1995-09-25 US US08/533,044 patent/US5778437A/en not_active Expired - Fee Related
-
1996
- 1996-07-22 JP JP19172496A patent/JP3320312B2/ja not_active Expired - Fee Related
- 1996-08-07 KR KR1019960032843A patent/KR100234503B1/ko not_active IP Right Cessation
- 1996-08-23 EP EP96306163A patent/EP0764905B1/en not_active Expired - Lifetime
- 1996-08-23 DE DE69616226T patent/DE69616226T2/de not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP3320312B2 (ja) | 2002-09-03 |
KR100234503B1 (ko) | 1999-12-15 |
EP0764905B1 (en) | 2001-10-24 |
EP0764905A1 (en) | 1997-03-26 |
JPH0991255A (ja) | 1997-04-04 |
DE69616226T2 (de) | 2002-06-27 |
DE69616226D1 (de) | 2001-11-29 |
US5778437A (en) | 1998-07-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR970016951A (ko) | 디렉토리 기반의 캐시 코히어런스 프로토콜을 사용하는 멀티프로세서에서의 무효화 버스 최적화 | |
US6636906B1 (en) | Apparatus and method for ensuring forward progress in coherent I/O systems | |
US5394555A (en) | Multi-node cluster computer system incorporating an external coherency unit at each node to insure integrity of information stored in a shared, distributed memory | |
US6615319B2 (en) | Distributed mechanism for resolving cache coherence conflicts in a multi-node computer architecture | |
US5623632A (en) | System and method for improving multilevel cache performance in a multiprocessing system | |
US5822763A (en) | Cache coherence protocol for reducing the effects of false sharing in non-bus-based shared-memory multiprocessors | |
US7310708B2 (en) | Cache system with groups of lines and with coherency for both single lines and groups of lines | |
US6088769A (en) | Multiprocessor cache coherence directed by combined local and global tables | |
US5829034A (en) | Method and apparatus for a coherence transformer with limited memory for connecting computer system coherence domains | |
US8806147B2 (en) | System and method for creating ordering points | |
CA2291401A1 (en) | Non-uniform memory access (numa) data processing system having shared intervention support | |
US20020129211A1 (en) | Data processing system and method for resolving a conflict between requests to modify a shared cache line | |
US6654858B1 (en) | Method for reducing directory writes and latency in a high performance, directory-based, coherency protocol | |
US20050228952A1 (en) | Cache coherency mechanism | |
US8533401B2 (en) | Implementing direct access caches in coherent multiprocessors | |
CA2062910A1 (en) | Optimum write-back strategy for directory-based cache coherence protocols | |
US7925838B2 (en) | Directory-based data transfer protocol for multiprocessor system | |
US5860109A (en) | Methods and apparatus for a coherence transformer for connecting computer system coherence domains | |
US7779210B2 (en) | Avoiding snoop response dependency | |
JP2000067024A (ja) | 分散共有メモリマルチプロセッサシステムのための分割疎ディレクトリ | |
US5713004A (en) | Cache control for use in a multiprocessor to prevent data from ping-ponging between caches | |
US6857051B2 (en) | Method and apparatus for maintaining cache coherence in a computer system | |
US5802563A (en) | Efficient storage of data in computer system with multiple cache levels | |
JP3919295B2 (ja) | コンピュータノードをコヒーレントドメインと接続するための実質的にメモリレスなコヒーレント変換方法、及びその装置 | |
WO2003042838A2 (en) | Victim invalidation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20070827 Year of fee payment: 9 |
|
LAPS | Lapse due to unpaid annual fee |