KR970016951A - 디렉토리 기반의 캐시 코히어런스 프로토콜을 사용하는 멀티프로세서에서의 무효화 버스 최적화 - Google Patents

디렉토리 기반의 캐시 코히어런스 프로토콜을 사용하는 멀티프로세서에서의 무효화 버스 최적화 Download PDF

Info

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
Application number
KR1019960032843A
Other languages
English (en)
Other versions
KR100234503B1 (ko
Inventor
산드라 존슨 베일러
야순 후
Original Assignee
제프리 엘. 포맨
인터내셔널 비지네스 머신즈 코포레이션
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 제프리 엘. 포맨, 인터내셔널 비지네스 머신즈 코포레이션 filed Critical 제프리 엘. 포맨
Publication of KR970016951A publication Critical patent/KR970016951A/ko
Application granted granted Critical
Publication of KR100234503B1 publication Critical patent/KR100234503B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0817Cache consistency protocols using directory methods
    • G06F12/0826Limited pointers directories; State-only directories without pointers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0813Multiuser, 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)

  1. 연관된 캐시 메모리를 각각 갖고 있는 다수의 프로세서; 각 프로세서의 캐시 메모리와 결합된 다단계 상호접속 네트워크; 상기 다단계 상호접속 네트워크와 결합된 다수의 인터리브형 메모리 모듈; 캐시 라인(cache line)의 전역 상태를 결정하기 위해 사용되는 정보를 포함하는 전역 디렉토리(global directory), 상기 전역 디렉토리는 분산형 전역 디렉토리를 구성하는 다수의 전역 디렉토리 모듈로 이루어지며, 각 메모리 모듈은 연관된 전역 디렉토리 모듈을 구비하며; 및 상기 각 캐시 메모리와 직접 결합된 무효화 버스(an invalidation bus)를 포함하며, 데이타를 수정하고자 하는 프로세서는 데이타 수정을 위한 스토어 요청(store request)을 상기 전역 디렉토리로 보냄과 동시에 수정될 데이타의 주소를 상기 무효화 버스 상에 올리며, 모든 캐시 메모리는 상기 무효화 버스 상의 주소에 의해 지정되는 캐시 라인의 복사본을 가지며, 상기 무효화 버스는 상기 캐시 라인의 각 복사본을 무효화시키며, 상기 전역 디렉토리는 데이타의 수정 허가를 요청하는 프로세서에 허가 신호를 보내는 것을 특징으로 하는 공유 메모리 멀티프로세서 시스템(a shared memory multiprocessor system).
  2. 제1항에 있어서, 상기 전역 디렉토리는 해당 라인의 복사본을 갖는 캐시 메모리의 개수에 대한 정보를 포함하는 것을 특징으로 하는 공유 메모리 멀티프로세서 시스템.
  3. 제1항에 있어서, 캐시 메모리는 상기 무효화 버스를 통해 상기 어드레스에 의해 지정되는 캐시 라인의 복사본을 무효화시키고자 할 때는 무효 승인 신호를 상기 전역 디렉토리로 보내고, 상기 무효 승인 신호를 수신함으로써 상기 전역 디렉토리는 상기 허가 신호를 데이타를 수정하려는 프로세서로 보내는 것을 특징으로 하는 공유 메모리 멀티프로세서 시스템.
  4. 제1항에 있어서, 캐시 메모리는 상기 무효화 버스를 통해 상기 어드레스에 의해 지정되는 캐시 라인의 복사본을 무효화시키고자 할 때는 무효 승인 신호를 데이타를 수정하려는 프로세서로 바로 보내며, 상기 전역 디렉토리는 상기 허가 신호에 더해 프로세서가 수신해야 하는 무효 승인의 횟수를 보내는 것을 특징으로 하는 공유 메모리 멀티프로세서 시스템.
  5. 다수의 인터리브형 메모리 모듈이 다단계 상호접속 네트워크를 경유하여 다수의 프로세서와 결합되는 공유 메모리 멀티프로세서 시스템에서 캐시 코히어런스(cache coherence)를 유지하기 위한 무효화 프로토콜에 있어서, 캐시 라인의 전역 상태를 결정하기 위해 사용되는 정보를 포함하는 전역 디렉토리를 제공하는 단계, 상기 전역 디렉토리는 분산형 전역 디렉토리를 구성하는 다수의 전역 디렉토리 모듈로 이루어지며, 각 메모리 모듈은 연관된 전역 디렉토리 모듈을 구비하며; 캐시 메모리의 각각에 직접 결합된 무효화 버스를 제공하는 단계; 데이타 수정을 위한 스토어 요청을 상기 전역 디렉토리로 보냄과 동시에 데이타를 수정하고자 하는 프로세서에 의해 수정될 데이타의 주소를 상기 무효화 버스 상에 올리는 단계; 상기 무효화 버스 상의 주소에 의해 지정되는 캐시 라인의 복사본을 갖는 모든 캐시 메모리에 의해 각 복사본을 무효화하는 단계; 및 상기 전역 디렉토리에 의해 허가 신호를 데이타의 수정 허가를 요청하는 프로세서에 보내는 단계를 포함하는 것을 특징으로 하는 무효화 프로토콜.
  6. 제5항에 있어서, 캐시 메모리가 상기 무효화 버스를 통해 상기 어드레스에 의해 지정되는 캐시 라인의 복사본을 무효화시키고자 할 때는 무효 승인 신호를 상기 전역 디렉토리로 보내는 단계; 및 상기 전역 디렉토리가 상기 무효 승인 신호를 수신할 때 상기 허가 신호를 데이타를 수정하려는 프로세서로 보내는 단계를 더 포함하는 것을 무효화 프로토콜.
  7. 제5항에 있어서, 캐시 메모리가 상기 무효화 버스를 통해 상기 어드레스에 의해 지정되는 캐시 라인의 복사본을 무효화시키고자 할 때 무효 승인 신호를 데이타를 수정하려는 프로세서로 바로 보내는 단계; 및 상기 전역 디렉토리가 상기 허가 신호에 더해 프로세서가 수신해야 하는 무효 승인의 횟수를 보내는 단계를 더 포함하는 것을 무효화 프로토콜.
    ※ 참고사항 : 최초출원 내용에 의하여 공개하는 것임.
KR1019960032843A 1995-09-25 1996-08-07 디렉토리 기반의 캐시 코히어런스 프로토콜을 사용하는 멀티프로세서에서의 무효화 버스 최적화 KR100234503B1 (ko)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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