KR100326980B1 - 다중-레벨 메모리 계층 구조를 포함하는 데이터 처리 시스템용 캐시 일관성 프로토콜 - Google Patents

다중-레벨 메모리 계층 구조를 포함하는 데이터 처리 시스템용 캐시 일관성 프로토콜 Download PDF

Info

Publication number
KR100326980B1
KR100326980B1 KR1019990002801A KR19990002801A KR100326980B1 KR 100326980 B1 KR100326980 B1 KR 100326980B1 KR 1019990002801 A KR1019990002801 A KR 1019990002801A KR 19990002801 A KR19990002801 A KR 19990002801A KR 100326980 B1 KR100326980 B1 KR 100326980B1
Authority
KR
South Korea
Prior art keywords
cache
data
state
data item
level cache
Prior art date
Application number
KR1019990002801A
Other languages
English (en)
Other versions
KR19990072315A (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 KR19990072315A publication Critical patent/KR19990072315A/ko
Application granted granted Critical
Publication of KR100326980B1 publication Critical patent/KR100326980B1/ko

Links

Classifications

    • 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
    • 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/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • 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/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies

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)

Abstract

데이터 처리 시스템에서의 캐시 일관성(cache coherency)을 유지하기 위한 데이터 처리 시스템 및 방법을 개시하고 있다. 상기 데이터 처리 시스템은 다수의 캐시들 및 적어도 제1 및 제2 클러스터(cluster)들로 그룹화된 다수의 프로세서들을 포함한다. 상기에서의 제1, 제2 클러스터 각각은 적어도 하나의 상위 레벨 캐시 및 적어도 하나의 하위 레벨 캐시를 가진다. 상기 방법에 따르면, 제1 클러스터에서의 상위 레벨 캐시의 제1 데이터 항목은 특정한 주소를 지정하는 주소 태그(address tag)와 관련되어 저장된다. 제1 클러스터의 상위 레벨 캐시의 일관성 지시기(coherency indicator)는 주소 태그는 유효(valid)하고 제1 데이터 항목은 무효(invalid)임을 나타내는 제1 상태로 설정된다. 유사하게, 제2 클러스터의 상위 레벨 캐시에서는 제2 데이터 항목도 특정한 주소를 지정하는 주소 태그와 관련되어 저장된다. 더욱이, 제2 클러스터의 상위 레벨 캐시의 일관성 지시기도 제1 상태로 설정된다. 그래서, 데이터 처리 시스템은 제1 및 제2 클러스터 양자의 상위 레벨 캐시들의 일관성 지시기가 모두 제1 상태로 설정되도록 하는 일관성 프로토콜(coherency protocol)을 구현한다.

Description

다중-레벨 메모리 계층 구조를 포함하는 데이터 처리 시스템용 캐시 일관성 프로토콜{CACHE COHERENCY PROTOCOL FOR A DATA PROCESSING SYSTEM INCLUDING A MULTI-LEVEL MEMORY HIERARCHY}
본 발명은 데이터 처리용 방법 및 시스템에 관한 것으로, 특히 멀티 프로세서 데이터 처리 시스템에서의 캐시 일관성을 유지하기 위한 방법 및 장치에 관한 것이다. 더 상세히 말하면, 본 발명은 다중-레벨 메모리 계층 구조를 포함하는 데이터 처리 시스템용의 개량된 캐시 일관성 프로토콜에 관한 것이다.
종래의 대칭 멀티 프로세서(symmetric multiprocessor; SMP) 데이터 처리 시스템에서 모든 프로세서들은 일반적으로 서로 동일하고, 즉 모든 프로세서들이 공통의 명령 세트 및 통신 프로토콜을 사용하고, 유사한 하드웨어 구조를 가지며, 유사한 메모리 계층 구조를 제공하고 있다. 예를 들어, 종래의 SMP 데이터 처리 시스템은 하나의 시스템 메모리, 각각이 하나의 프로세서 및 하나 이상의 레벨의 캐시 메모리를 가지는 다수의 처리 소자들, 및 처리 소자들을 서로에 그리고 시스템 메모리에 결합시키는 시스템 버스(system bus)를 포함한다. 하나의 SMP 데이터 처리 시스템에서 유효한 실행 결과를 얻기 위해서, 일관성 있는 메모리 계층 구조를 유지하는 것, 즉 메모리 내용들에 대한 동일한 관점(view)을 모든 프로세서들에 제공하는 것이 중요하다.
일관성 있는 메모리 계층 구조는 MESI 프로토콜과 같은 하나의 선택된 메모리 일관성 프로토콜을 사용함으로써 유지된다. MESI 프로토콜에서는, 일관성 상태의 표시(indication)가 적어도 모든 상위 레벨 (캐시) 메모리들의 각각의 일관성 그래뉼(granule) (예를 들어, 캐시 라인이나 섹터)과 관련되어 저장된다. 각각의 일관성 그래뉼은 캐시 디렉토리에서 두 개의 비트로 표시되는 수정(modified; M) 상태, 배제(exclusive; E) 상태, 공유(shared; S) 상태, 또는 무효(invalid; I) 상태들중 하나의 상태를 가질 수 있다. 수정 상태(modified state)는 하나의 일관성 그래뉼이 수정된 일관성 그래뉼을 저장하는 캐시에서만 단지 유효하고 수정된 일관성 그래뉼의 값은 시스템 메모리에 기록되지 않았음을 나타낸다. 하나의 일관성 그래뉼이 배제 상태(exclusive state)를 나타낼 때는, 그 일관성 그래뉼이 메모리 계층 구조의 그 레벨에 있는 모든 캐시들중에서 배제 상태에서 일관성 그래뉼을 가지는 캐시에만 상주한다. 그러나, 배제 상태에서 데이터는 시스템 메모리와 일치한다. 만약, 하나의 일관성 그래뉼이 하나의 캐시 디렉토리에서 공유(shared)로 표시되어 있다면, 일관성 그래뉼은 관련 캐시 및 시스템 계층 구조의 동일한 레벨에 있는 적어도 하나의 다른 캐시에도 상주한다. 상기의 일관성 그래뉼의 모든 카피들은 시스템 메모리와 일치한다. 마지막으로, 무효 상태(invalid state)는 하나의 일관성 그래뉼과 관련되어 있는 데이터 및 주소 태그가 모두 무효임을 나타낸다.
각각의 일관성 그래뉼 (예를 들어, 캐시 라인)이 설정되어 있는 상태는 캐시 라인의 전 상태 및 요구하는 프로세서(requesting processor)에 의해 달성된 메모리 접근 타입(type of memory access) 모두에 따른다. 따라서, 멀티 프로세서 데이터 처리 시스템에서 메모리 일관성을 유지하는 것은 프로세서들이 기억 장소들을 판독하거나 기록하고자 하는 의도를 나타내면서 시스템 버스를 통해 메시지를 통신하는 것을 요구한다. 예를 들어, 프로세서가 기억 장소에 데이터를 기록하고자 할 때, 그 프로세서는 먼저 모든 다른 처리 소자들에게 그 기억 장소에 데이터를 기록한다는 것을 알리고, 모든 다른 처리 소자들로부터 허가를 받은 후에 기록 행위를 할 수 있다. 상기의 요구하는 프로세서가 수신한 허가 메시지들은 그 기억 장소 내용들의 다른 모든 저장된 카피들이 무효가 되었음을 나타내고, 그로 인해 다른 프로세서들이 실효한 국부 데이터(stale local data)에 접근하지 않을 것임을 보증한다. 이러한 메시지들의 교환은 교차-무효화(cross-invalidation; XI)라고 알려져 있다.
본 발명은 캐시 엔트리들의 교차-무효화가 SMP 테이타 처리 시스템에서 메모리 일관성을 유지하도록 하는 동안에, 반대로 원거리 프로세서들에 의한 캐시 엔트리(cache entry)들의 무효화가 국부 캐시들에서 히트 비(hit ratio)들을 감소 시킴으로써 데이터 처리 시스템의 성능에 영향을 미친다는 인식을 포함한다. 그러므로, 대용량 국부 캐시들을 구비하더라도, 하나의 처리 소자는 하나의 국부 캐시에 한번이라도 상주한 적이 있는 데이터를 또 다른 처리 소자에 있는 다른 하나의 원거리 캐시 또는 시스템 메모리로부터 검색할 때, 긴 접근 대기 시간(access latency)을 초래할 수 있다. 위에서 기술한 바와 같이, 캐시 엔트리들의 교차-무효화에 의해 초래된 성능상의 결점을 줄일 수 있는, 메모리 일관성을 유지하기 위한 방법과 시스템을 SMP 데이터 처리 시스템에 제공하는 것이 바람직하다.
본 발명은 종래의 MESI 프로토콜이 원거리 캐시들에 저장된 데이터의 효율적인 검색(retrieve)을 제공하지 않는다는 인식도 또한 포함한다. 만약, 일부의 이미 알려진 멀티 프로세서 데이터 처리 시스템들이 소위 수정 개입(modified intervention)을 제공하여, 수정 상태로 데이터를 저장하고 있는 원거리 캐시가 판독 요구에 응답해서 수정된 데이터 공급을 허락하더라도, MESI 프로토콜은 요구된 데이터가 공유 상태에 있을 때, 또 다른 처리 소자에 데이터를 공급하는 책임을 할당하지 않는다. 따라서, 만약 요구된 데이터가 상대적으로 낮은 접근 대기 시간에 있는 다중 원거리 캐시들에 저장되어 있을 지라도, 종래의 멀티 프로세서 데이터 처리 시스템에서는, 공유된 데이터가 시스템 메모리로부터 항상 검색되어야 한다. 결국, 공유 개입을 제공하는 개량된 캐시 일관성 프로토콜을 제공하는 것이 바람직하다.
수정 개입을 제공하는 종래의 멀티 프로세서 데이터 처리 시스템에서는, 수정된 데이터가 공유 버스를 통해 또 다른 캐시에 공급될 때마다 수정된 데이터가 시스템 메모리에 역 기록(back write)된다. 본 발명은 상기 과정이 시스템 메모리와 캐시 메모리 사이의 일관성을 유지하는 동안, 불필요한 기록 동작을 수행하기 위해서 시스템 메모리의 제한된 대역폭의 일부를 소비한다는 인식을 포함한다. 예를 들어, 만약 제1 캐시가 판독 요구에 응답해서 제2 캐시에 수정된 캐시 라인을 공급하면, 제2 캐시의 데이터는 다시 수정되기 쉽고, 결국 시스템 메모리에 또 다른 기록 요구를 하게 된다. 만약, 제2 캐시의 판독 요구와 뒤어어 일어나는 캐시 라인의 수정 사이의 기간 동안 캐시 라인에 대한 어떤 다른 요구도 제기되지 않는다면, 제1 캐시에 의한 수정 개입에 부수하는 시스템 메모리에의 기록은 불필요하다.
시스템 메모리에의 불필요한 역 기록을 줄이기 위한 하나의 가능한 방법은 요구하는 캐시가 단지 하나의 판독 요구만을 하더라도, 데이터를 공급하는 캐시에는 무효라고 요구하는 캐시에는 수정이라고 표시하는 것이다. 이런 방법으로, 요구된 데이터는 수정 개입과 동시에 시스템 메모리에 역 기록될 필요가 없게 된다. 그러나, 캐시 일관성을 유지하는 이런 방법은 프로세서들 사이에서 수정된 데이터의 공유를 허락하지 않고, 데이터가 캐시들 사이를 통과할 때 추가적인 버스 혼잡을 야기시킨다. 그러므로, 수정된 데이터가 캐시들 사이에 공유되도록 하는 동안에, 데이터를 시스템 메모리에 효율적으로 역 기록하는 것을 제공하는 개량된 캐시 일관성 프로토콜을 제공하는 것이 바람직하다.
본 발명의 하나의 목적은 데이터 처리를 위한 개량된 방법 및 시스템을 제공하는 것이다.
본 발명의 또 다른 목적은 캐시 일관성을 유지하기 위한 개량된 방법 및 시스템을 멀티 프로세서 데이터 처리 시스템에 제공하는 것이다.
본 발명의 또 다른 하나의 목적은 다중-레벨 메모리 계층 구조를 포함하는 데이터 처리 시스템용 개량된 캐시 일관성 프로토콜을 제공하는 것이다.
상기의 목적들은 이하에서 설명할 바에 의해 실현된다. 다수의 캐시들 및 적어도 제1 및 제2 클러스터들로 그룹화된 다수의 프로세서들을 포함하는 데이터 처리 시스템이 제공된다. 상기의 제1 및 제2 클러스터 각각은 적어도 하나의 상위 레벨 캐시 및 적어도 하나의 하위 레벨 캐시를 가진다. 본 발명의 상기 방법에 따르면, 제1 클러스터의 상위 레벨 캐시의 제1 데이터 항목은 특정한 주소를 지정하는 주소 태그와 관련되어 저장된다. 제1 클러스터의 상위 레벨 캐시의 일관성 지시기는 주소 태그는 유효하고 제1 데이터 항목은 무효임을 나타내는 제1 상태로 설정된다. 유사하게, 제2 클러스터의 상위 레벨 캐시에서는 제2 데이터 항목이 특정한 주소를 지정하는 주소 태그와 관련되어 저장된다. 더욱이, 제2 클러스터의 상위 레벨 캐시의 일관성 지시기도 상기 제1 상태로 설정된다. 따라서, 데이터 처리 시스템은 제1 및 제2 클러스터 양자의 상위 레벨 캐시들에서의 일관성 지시기가 모두 제1 상태로 설정되도록 하는 일관성 프로토콜을 구현한다.
본 발명의 상기의 목적 뿐만 아니라 추가적인 목적들, 특징들 및 효과들도 이하의 상세한 설명에서 명백해질 것이다.
도 1은 본 발명에 따른 멀티 프로세서 데이터 처리 시스템의 예시적 실시예를 도시한 도면.
도 2는 본 발명에 따른 하나의 캐시의 예시적 실시예를 도시한 블록도.
도 3은 HR-MESI 캐시 일관성 프로토콜의 예시적 실시예를 설명하는 상태도.
도 4는 HRT-MESI 캐시 일관성 프로토콜의 예시적 실시예를 설명하는 상태도.
도 5는 종래의 캐시 일관성 정보의 N 레벨들을 유지하기 위한 파생 H 상태들의 이용을 도시한 상태도.
도 6은 본 발명에 따른 캐시 일관성 프로토콜이 효과적으로 이용될 수 있도록 하는 다중-레벨 메모리 계층 구조를 포함하는 멀티 프로세서 데이터 처리 시스템의 예시적 실시예를 도시한 도면.
<도면의 주요 부분에 대한 부호의 설명>
10 : 프로세서
12 : L1 캐시
14 : L2 캐시
15 : L3 캐시
16 : 상호 접속망
18 : 시스템 메모리
도면들, 특히 도 1을 참조해 본 발명에 따른 멀티 프로세서 데이터 처리 시스템의 상위 레벨 블록도를 설명하겠다. 도시된 바와 같이, 데이터 처리 시스템(8)은 바람직하게는 각각이 IBM 사로부터 얻을 수 있는 프로세서들중 하나인PowerPCTM라인을 포함하는 수 많은 프로세서(10a-10n)를 포함한다. 종래의 레지스터들, 명령 흐름 로직, 및 프로그램 명령어들의 실행을 위해 사용되는 실행 유닛들에 부가해서, 각각의 프로세서(10a-10n)는 온-보드(on-board) 레벨의 L1 캐시들(12a-12n)들중 관련된 하나씩을 포함한다. 상기의 각각의 L1 캐시들(12a-12n)은 관련된 프로세서에 의해 접근되기 쉬운 명령어 및 데이터를 임시로 저장한다. L1 캐시들(12a-12n)이 도 1에서는 명령어 및 데이터 (이하에서는, 단순히 데이터로 언급함) 모두를 저장하는 단일화된 캐시들로 설명되어 있을 지라도, 당업자는 각각의 L1 캐시들(12a-12n)이 선택적으로 명령 캐시와 데이터 캐시로 분기되어 구현될 수 있음을 이해할 수 있다.
데이터 접근 대기 시간을 최소화하기 위해서, 데이터 처리 시스템(8)은 L1 캐시들(12a-12n)에 데이터를 올려 주기 위해 사용되는 제2 레벨(L2) 캐시들(14a-14n)과 같은 하나 이상의 추가적인 캐시 메모리 레벨도 역시 포함한다. 즉, L2 캐시들(14a-14n)은 시스템 메모리(18)와 L1 캐시들(12a-12n)들 사이에 중간 저장 수단(intermediate storage)으로 기능해서, L1 캐시들(12a-12n)보다는 훨씬 많은 양의 데이터를 저장할 수 있으나 더 긴 접근 대기 시간을 가진다. 예를 들면, L1 캐시들(12a-12n)이 64 내지 128 킬로바이트의 저장 용량을 가짐에 비해, L2 캐시들(14a-14n)은 256 내지 512 킬로바이트의 저장 용량을 가질 수 있다. 프로세서(10a)는 L2 캐시(14a)와 평행하게 상호 접속망(interconnect)에 연결되어 바람직하게는 L2 캐시(14a)와 같거나 또는 더 큰 저장 용량을 가지는 하나의 룩어사이드(lookaside) L3 캐시(15a)가 더 제공된다.
이상에서 설명한 바와 같이, 데이터 처리 시스템(8)은 각각이 상호 접속망에 결합되어 있는 입/출력 장치(20), 시스템 메모리(18) 및 불휘발성 저장 장치(non-volatile storage; 22)를 더 포함한다. 입/출력(I/O) 장치(20)는 각각이 기존의 어댑터들을 통해 상호 접속망(16)에 접속되는 표시 장치, 키보드 및 그래픽 포인터와 같은 기존의 주변 장치를 포함한다. 불휘발성 저장 장치(22)는 데이터 처리 시스템(8)에 전원이 켜질 때에 응답해서 휘발성 시스템 메모리(18)로 적재될 구동 시스템 및 기타 소프트웨어를 저장한다. 물론, 당업자는 도 1에는 나타나지 않았지만 데이터 처리 시스템(8)이 네트워크나 부가적인 시스템에 연결하기 위한 직렬/병렬 포트 및 시스템 메모리(18)에의 접근을 조정하는 메모리 제어기 등과 같은 많은 추가적인 구성 요소들을 포함할 수 있음을 이해하여야 할 것이다.
하나 이상의 버스들이나 교차점 스위치(cross-point switch)를 포함할 수 있는 상호 접속망(16)은 L2 캐시들(14a-14n), L3 캐시(15a), 시스템 메모리(18), 입/출력 장치(20) 및 불휘발성 저장 장치(22)들 상호간의 통신 트랜잭션(communication transaction)을 위한 연결 통로 역할을 한다. 상호 접속망(16)상의 전형적 통신 트랜잭션은 트랜잭션의 소스, 트랜잭션의 원하는 수취인을 지정하는 목적지 태그, 주소, 및/또는 데이터를 지시하는 소스 태그(source tag)를 포함한다. 상호 접속망(16)에 연결된 각각의 장치는 바람직하게는 상호 접속망(16)상의 모든 통신 트랜잭션들을 스누프(snoop)한다.
도 2를 참조하면, 본 발명에 따른 L2 캐시(14)의 예시적 실시예의 더 상세한블록도가 도시되어 있다. 상기의 예시적 실시예에서 L2 캐시(14)는 32 비트의 주소를 사용하는 8-경로 세트 어소시어티브 캐시(eight-way set associate cache)이다. 따라서, L2 캐시(14)의 데이터 어레이(34)는 각각이 캐시 라인들을 저장하기 위해 8개의 경로들을 포함하고 있는 다수의 상동 클래스(congruence class)들을 포함한다. 종래의 세트 어소시어티브 캐시들에서와 같이, 시스템 메모리(18)의 기억 장소들은 기억 장소의 주소내의 인덱스 비트 (예를 들어, 32 비트 주소중에서 20-26 비트임)를 이용해서 데이터 어레이(34)내의 특정한 상동 클래스들에 맵핑(mapping)된다.
데이터 어레이(34)내에 저장된 캐시 라인들은 데이터 어레이(34)에 각각의 경로를 위한 하나의 디렉토리 엔트리(directory entry)를 포함하고 있는 캐시 디렉토리(32)에 기록된다. 각각의 디렉토리 엔트리는 태그 필드(tag field; 40), 일관성 상태 필드(coherency status field; 42), 최저 사용 빈도 필드(least recently used field; LRU field; 44), 및 포함 필드(inclusion field; 46)를 포함한다. 태그 필드(40)는 캐시 라인의 시스템 메모리 주소의 태그 비트들 (예를 들어, 0-19 비트임)을 저장함으로써, 어떠한 캐시 라인이 데이터 어레이(34)의 해당 경로에 저장되는지를 특정한다. 도 3을 참조해 이하에서 더 상세히 설명하면, 일관성 상태 필드(42)는 데이터 어레이(34)의 해당 경로에 저장된 데이터 일관성 상태를 미리 정해진 비트 조합들을 사용하여 나타낸다. LRU 필드(44)는 데이터 어레이(34)의 해당 경로가 그것의 상동 클래스의 다른 경로들에 비하여 얼마나 최근에 접근되었는지 여부를 나타내고, 그에 의해서 어떤 캐시 라인이 캐시 미스(cache miss)에 응답해서 상동 클래스 밖으로 캐스트-아웃(cast-out)되는지 여부를 나타낸다. 마지막으로, 포함 필드(46)는 데이터 어레이(34)의 해당 경로에 저장된 캐시 라인이 관련 L1 캐시(12)에도 또한 저장되는지 여부를 나타낸다.
도 2를 계속해서 참조하면, L2 캐시(14)는 관련된 L1 캐시(12)로부터 수신된 신호들 및 상호 접속망(16)상에서 스누프된 트랜잭션들에 응답하여, 데이터 어레이(34)내의 데이터 저장과 검색을 관리하고, 캐시 디렉토리(32)를 갱신(update)하는 캐시 제어기(36)을 더 포함한다. 상기에서 설명한 것처럼, 캐시 제어기(36)는 그들로부터 캐시 디렉토리(32)를 갱신하고, 데이터 어레이(34)에 접근할 수 있도록 하는 판독 대기 행렬(50) 및 기록 대기 행렬(52)을 포함한다. 예를 들어, 만약 관련된 L1 캐시(12)로부터 판독 요구를 받으면, 이에 응답하여 캐시 제어기(36)는 판독 요구를 판독 대기 행렬(50)내의 하나의 엔트리내에 위치시킨다. 캐시 제어기(36)는 요구된 데이터를 관련된 L1 캐시(12)에 공급함으로써 판독 요구에 서비스를 제공하고, 이어서 상기 판독 요구를 판독 대기 행렬(50)에서 제거한다. 또 다른 예를 들면, 캐시 제어기(36)는 또 다른 L2 캐시들(14a-14n)에 의해 개시되어 원거리 프로세서(10)가 특정한 하나의 캐시 라인의 국부 카피를 수정하고자 함을 나타내는 하나의 트랜잭션을 스누프할 수 있다. 상기의 트랜잭션을 스누프하고, 이에 응답해서 캐시 제어기(36)는 상기의 특정한 캐시 라인이 데이터 어레이(34)에 상주하는지 여부를 결정하기 위해 캐시 디렉토리(32)를 판독하라는 요구를 판독 대기 행렬(50)에 위치시킨다. 만약 상주한다면, 캐시 제어기(36)는 상호 접속망(16)상에 적절한 응답을 위치시키고, 만약 필요하다면, 그것을 제공 받을 때 상기의 특정한 캐시 라인과 관련된 일관성 상태 필드를 갱신시키라는 디렉토리 기록 요구를 기록 대기 행렬(52)에 끼워넣는다. 도 2가 단지 하나의 판독 대기 행렬과 하나의 기록 대기 행렬만을 사용하는 실시예를 설명할지라도, 캐시 제어기(36)에 의해 제공된 대기 행렬의 수는 설계상 문제이고, 캐시 제어기(36)는 캐시 디렉토리 접근 및 데이터 어레이 접근을 위한 별도의 대기 행렬들도 제공할 수 있음을 이해해야 한다.
L3 캐시(15a)는 작은 차이점은 있지만 도 2에서 도시된 L2 캐시(14)와 유사하게 구성된다. 특히, L3 캐시(15a)의 캐시 제어기는 상호-캐시 연결들에 의해 L2 캐시(14a)에 연결되지 않지만, 대신에 L3 캐시(15a)의 캐시 제어기가 L2 캐시(14a)에 의해 상호 접속망(16)상에 보내진 모든 트랜잭션들을 스누프할 수 있도록, L2 캐시(14a)와 병렬로 상호 접속망(16)에 연결된다.
도 3을 참조하면, 본 발명에 따른 HR-MESI 캐시 일관성 프로토콜의 예시적 실시예를 도시하고 있다. 상기의 예시된 HR-MESI 프로토콜은 바람직하게는 메모리 계층 구조에서 가장 낮은 레벨의 인-라인(in-line) 캐시 (즉, L2 캐시들14a-14n 임)및 조금의 변화를 가진 다른 어떤 하위 레벨 캐시들 (즉, L3 캐시(15a) )에 의해 구현된다. 상위 레벨 캐시들은 바람직하게는 본 명세서에 참조된 미국 특허 출원 제 09/024,610호에 설명된 MESI 프로토콜, H-MESI 프로토콜, 또는 미국 특허 출원 제08/839,557호에 기술된 R-MESI 프로토콜과 같은 프로토콜 섭셋(protocol subset)들을 구현한다. 그러나, 데이터 처리 시스템(8)의 선택적 실시예들이 추가적인 상호-캐시 통신량(inter-cache communication traffic)을 대가로 해서 메모리 계층 구조에서 각각의 캐시 레벨에서도 HR-MESI 프로토콜을 구현할 수 있음을 이해해야 한다.
도 3에 나타난 바와 같이, HR-MESI 캐시 일관성 프로토콜은 참조 번호 80, 82, 84, 및 86으로 각각 식별되는 MESI 프로토콜의 종래의 수정(M), 배제(E), 공유(S), 및 무효(I) 상태들을 포함한다. 더욱이, 본 발명의 HR-MESI 캐시 일관성 프로토콜은 관련된 태그 필드(40)에 저장되어 있는 주소 태그는 유효하지만 데이터 어레이(34)의 해당 경로에 저장된 데이터 항목 (예를 들어, 캐시 라인, 또는 캐시 섹터)은 무효임을 나타내는 배회(hovering; H) 상태(90) 및 하나의 데이터 항목의 카피들을 저장하는 다중 캐시들중에서 어떠한 캐시가 상호 접속망(16)상의 하나의 트랜잭션을 통해 공유된 데이터 항목을 가장 최근에 수신했는지 여부를 나타내는 R 상태(92)를 포함한다.
바람직한 실시예에서, 각각의 L2 캐시 디렉토리(32)의 엔트리 각각의 일관성 상태 필드(42)는 전원이 켜질 때 태그 필드(40) 및 데이터 어레이(34)의 해당 경로에 저장된 데이터 모두가 무효임을 나타내는 I 상태(86)로 초기화된다. L1 및 L3 캐시 디렉토리 엔트리들이 무효 상태로 유사하게 초기화된다. 이어서, 무효 상태(86)에 있는 L2 캐시들(14a-14n)중 하나, 또는 L3 캐시(15a)에 저장되어 있는 하나의 캐시 라인 (혹은, 캐시 섹터)의 일관성 상태가 프로세서들(10a-10n)에 의해 만들어진 메모리 요구들의 타입들 및 이러한 요구들에 대한 메모리 계층 구조의 응답에 따라 M 상태(80), E 상태(82), 또는 R 상태(92)중 하나로 갱신될 수 있다.
예를 들어, 프로세서(10a)가 적재 명령에 응답해서 판독 요구를 한다면, L1 캐시(12a)는 요구된 데이터가 L1 캐시(12a)에 상주하는지 여부를 먼저 결정한다. L1 캐시(12a)에서의 히트(hit)에 응답해서, L1 캐시(12a)는 상기 요구된 데이터를 프로세서(10a)에 단순히 공급한다. 그러나, L1 캐시(12a)에서의 미스(miss)에 응답해서는, L1 캐시(12a)는 상호-캐시 연결을 통해 L2 캐시(14a)에 판독 요구를 내보낸다. L2 캐시(14a)에서의 히트에 응답해서는, 요구된 데이터가 L2 캐시(14a)에 의해 L1 캐시(12a)에 공급되고, L1 캐시(12a)는 적합한 일관성 상태와 관련해 요구된 데이터를 저장하고, 프로세서(10a)에 요구된 데이터를 보내준다.
그러나, 만약 판독 요구가 L1 캐시(12a) 및 L2 캐시(14a)에서 모두 미스된다면, L2 캐시(14a)의 캐시 제어기(36)는 판독 요구를 하나의 트랜잭션으로 상호 접속망(16)상에 내보내고, 이는 각각의 L2 캐시들(14b-14n) 뿐만아니라 L3 캐시(15a)에 의해서도 스누프된다. 상호 접속망(16)상의 판독 요구를 스누프하고, 이에 응답해서 L2 캐시들(14b-14n) 각각의 캐시 제어기(36)는 요구된 데이터가 자신들의 데이터 어레이(34), 또는 L1 캐시들(12b-12n)의 관련된 하나에 상주하는지 여부를 결정한다. 유사하게, L3 캐시(15a)의 캐시 제어기도 판독 요구가 L3 캐시 디렉토리에서 히트되는지 여부를 결정한다. L2 캐시들(14b-14n), L1 캐시들(12b-12n), 및 L3 캐시(15a)중 어떤 것도 요구된 데이터를 저장하고 있지않다면, L2 캐시들(14a-14n)과 L3 캐시(15a) 각각은 L2 캐시(14a)에 널 응답(null response)을 되돌려 보내고, 그 때 시스템 메모리(18)로부터 데이터를 요구한다. 요구된 데이터가 시스템 메모리(18)으로부터 L2 캐시(14a)로 되돌아왔을 때, 캐시 제어기(36)는 L1 캐시(12a)에 요구된 데이터를 내보내고, 요구된 데이터를 자신의 데이터 어레이(34)에 저장하며, 참조 번호 100으로 나타난 것처럼 I 상태(86)에서 E 상태(82)로 요구된 데이터를 저장하는 경로와 관련있는 일관성 상태 필드(42)를 갱신한다. 종래의 MESI 프로토콜에서처럼, E 상태(82)는 관련 캐시 라인은 유효하지만 메모리 계층 구조의 제2 레벨에 있는 다른 어떤 캐시에도 상주하지 않음을 나타낸다. L3 캐시(15a)는 요구된 데이터를 유사하게 샘플(sample)하고, 요구된 데이터를 E 상태(82)로 저장한다.
만약, 프로세서(10a)에 의해 요구된 데이터가 L1 캐시(12a), L2 캐시(14a), 또는 L3 캐시(15a)에 상주하지 않고, 예를 들어 M 상태(80)로 L1 캐시(12n)에 저장되어 있다면, L2 캐시(12n)의 캐시 제어기(36)은 수정 응답으로 판독 요구에 응답하고, 요구된 데이터를 L2 캐시(14n)에 보내라고 L1 캐시(12n)에 신호한다. 그 후 L2 캐시(14n)는 상호 접속망(16)상에 요구된 데이터를 공급한다. 판독 요구에 응답해서, L1 캐시(12n) 및 L2 캐시(14n)에 있는 요구된 데이터의 일관성 상태가 참조 번호 102에 나타난 것처럼 S 상태(84)로 갱신된다. 본 발명에 따르면, 요구된 데이터가 L2 캐시(14a)에 저장되는 경로의 일관성 상태는 참조 번호 104에 나타난 것처럼 I 상태(86)에서 R 상태(92)로 전이를 일으킨다. 상기에서 기술한 바와 같이, R 상태(92)는 관련 데이터가 L2 캐시(14a)에 의해 가장 최근에 인용되었고, L2 캐시(14a)가 상호 접속망(16)상에서 데이터 요구를 스누프하고 나서 데이터를 공급한다는 것을 나타낸다. L3 캐시(15a)가 시스템 메모리(18)로부터 요구된 데이터를 스누프할 때, L3 캐시(15a)는 요구된 데이터를 샘플하고, 그 데이터를 S 상태(84)로 저장한다. 참조 번호 105로 표시된 I 상태(86)와 S 상태(84)사이의 전이는 점선을 사용하여 표시되어, 이러한 전이는 단지 L3 캐시(15a)에만 적용된다는 것을 나타낸다. 당업자는 앞서의 예로부터 동일한 상태 전이들이 수정 개입을 제공하지 않는 본 발명의 선택적 실시예들에서 이루어질 수 있음을 이해할 수 있다. 그러나, 이러한 선택적 실시예에서도 추가적인 접근 대기 시간을 대가로 해서 요구된 데이터를 시스템 메모리(18)에서 얻을 수도 있다.
L2 캐시(14a)는 그의 판독 요구에 대한 공유 개입 응답, 또는 공유 응답을 수신하고, 이에 응답해서 I 상태(86)에서 R 상태(92)로 전이를 일으킨다. 만약, L2 캐시들(14b-14n)중 하나가, 예를 들어 L2 캐시(14n)가 요구된 데이터를 R 상태(92), 또는 E 상태(82)로 저장한다면, L2 캐시(14a)는 공유 개입 응답 (및 요구된 데이터)을 수신한다. 판독 요구에 응답해서, L2 캐시(14n)의 캐시 제어기(36)는 요구된 데이터의 카피의 일관성 상태를 참조 범호 106에 나타난 것처럼 R 상태(92)에서 S 상태(84)로 갱신한다. 만약, L2 캐시들(14b-14n)중 어떤 것도 요구된 데이터를 R 상태(92)로 저장하고 있지 않고 적어도 하나가 요구된 데이터를 S 상태(84)로 저장하고 있다면, 요구된 데이터를 S 상태(84)로 저장하고 있는 L2 캐시(14)는 판독 요구에 공유 응답으로 응답하고, 요구된 데이터의 카피를 S 상태(84)로 그대로 둔다. L2 캐시(14a)는 하나의 유일한 공유 응답을 수신하고, 이에 응답하여 요구된 데이터를 시스템 메모리(18)로부터 검색하고, 그 데이터를 R 상태(92)로 저장한다. 모든 경우에서, L3 캐시(15a)는 요구된 데이터를 샘플하고, 그 데이터를 S 상태(84)로 저장한다.
만약, L2 캐시(14a)가 프로세서(10a)가 수정할 목적으로 하나의 기억 장소를 배타적으로 사용하고자 함을 나타내는 '수정 목적 판독'이라는 요구를 상호 접속망(16)상에 내보내면, 상기에서 설명한 바와같이 그 요구된 데이터는 L3 캐시(15a), 원거리 L2 캐시(14), 또는 시스템 메모리(18)로부터 얻어진다. 그러나, 요구된 캐시 라인을 얻었을 때, L1 캐시(12a) 및 L2 캐시(14a)는 요구된 캐시 라인을 참조 번호 107에서 나타난 것처럼 M 상태(80)으로 저장한다. 더욱이, '수정 목적 판독' 트랜잭션은 요구된 캐시 라인의 다른 카피들은 실효(stale)됨을 나타내기 때문에, 원거리 L1 캐시들, 원거리 L2 캐시들, 및 L3 캐시(15a)는 요구된 캐시 라인의 그들의 카피들이 무효임을 나타내어야 한다. L1 캐시들(12b-12n)에서는 요구된 캐시 라인의 어떠한 카피들도 모두 단순히 무효라고 표시되어진다. 그러나, L3 캐시(15a) 및 L2 캐시들(14b-14n)에 저장되어 있는 요구된 캐시 라인의 카피들의 일관성 상태는 교차-무효화(XI)를 이용하는 종래의 멀티 프로세서 데이터 처리 시스템에서처럼 I 상태(86)로 갱신되지는 않는다. 대신, 본 발명의 중요한 특징에 따르면, 요구된 캐시 라인의 카피를 하나씩 저장하는 L2 캐시들(14b-14n) 및 L3 캐시(15a) 각각은 R 상태(92), S 상태(84), M 상태(80), 또는 E 상태(82)중 하나의 상태에서 H 상태(90)로 참조 번호 108, 110, 112, 및 114의 각각으로 나타난 것처럼 그것의 카피와 관련해서 일관성 상태 필드(42)를 갱신한다. 상기에서 언급된 바와 같이, H 상태(90)는 태그 필드(40)에 저장된 태그는 유효한 상태로 남아있지만 데이터 어레이(34)내에 있는 관련된 캐시 라인이 무효임을 나타낸다. L2 및 L3 디렉토리내의 엔트리들은 데이터의 무효화를 요구하는 다른 스누프된 트랜잭션들, 즉 특정한 데이터 블록을 확실히 무효화시키는 트랜잭션들인 킬(kill)들, 특정한 데이터 블록을 무효화시키고 어떠한 수정된 데이터를 시스템 메모리에 복사하는 트랜잭션들인 플러시(flush)들, 저장에 응답해서 캐시 라인의 국부 카피가 수정되고 이에 응답해서 원거리 캐시들에서 공유된다고 표시된 상기의 캐시 라인의 카피들을 무효화시키는 트랜잭션들인 디클래임(dclaim)들 등에 응답하여, H 상태(90)로 유사하게 갱신된다.
참조 번호 116 및 118에 의해 참조되는 것처럼, 하나의 캐시 디렉토리 엔트리는 상기의 캐시에 수신된 트랜잭션들의 타입에 따라 H 상태(90)에서 E 상태(82), 또는 M 상태(80)로 각각 전이할 수 있다. 예를 들면, 프로세서(10a)가 (L1 캐시(12a)와 L2 캐시(14a) 양자에서 모두 미스한 후)L3 캐시(15a) 및 L2 캐시들(14b-14n)로부터 널 응답을 수신하라는 판독 요구를 하면, 이에 응답하여 H 상태(90)의 L2 캐시(14a)의 디렉토리 엔트리는 E 상태(82)로 전이한다. E 상태(82)는 시스템 메모리(18)로부터 검색한 데이터가 모든 L2 캐시들(14a-14n)중에서 단지 L2 캐시(14a)에만 저장됨을 나타낸다. 한편, 만약 프로세서(10a)가 H 상태(90)의 L1 캐시(12a)의 하나의 경로에 데이터를 저장할 의도를 내비친다면, L1 캐시(12a)는 L2 캐시(14)에 상기의 의도를 알리고, 상호 접속망(16)상에 '수정 목적 판독' 트랜잭션을 내놓는다. 상기에서 언급한 대로, L3 캐시(15a) 및 L2 캐시들(14b-14n)에 저장되어 있는 요구된 캐시 라인의 카피들은 '수정 목적 판독' 트랜잭션을 스누프하고, 이에 응답해서 H 상태(90)로 갱신되며, L1 캐시들(12b-12n)에 저장되어 있는 요구된 캐시 라인의 카피들은 무효로 표시된다. 일단, 요구된 캐시 라인을 얻은 후, L2 캐시(14a) 및 L1 캐시(12a)내의 캐시 라인의 일관성 상태는 상기의 캐시 라인은 유효하지만 시스템 메모리(18)와는 코히어런트 하지 않음을 나타내는 M 상태(80)로 설정된다.
H 상태(90)의 하나의 캐시 디렉토리 엔트리는 참조 번호 120에 나타난 것처럼 S 상태(84)로 역시 갱신될 수 있다. 상기에서 설명된 대로, 각각의 L2 캐시들(14a-14n)은 상호 접속망(16)상의 모든 트랜잭션들을 스누프한다. 만약, L2 캐시들(14a-14n)중 하나가, 예를 들어 L2 캐시(14a)가 H 상태(90)의 L2 캐시(14a)에 저장되어 있는 데이터의 갱신된 (즉, 유효한)카피를 포함하는 L2 캐시들(14b-14n)의 또 다른 것에 의한 하나의 트랜잭션을 스누프 한다면, L2 캐시(14a)의 캐시 제어기(36)는 상호 접속망(16)으로부터 데이터를 샘플하고, 스누프된 데이터를 데이터 어레이(34)에 저장하며, 관련된 일관성 상태 필드(42)를 H 상태(90)에서 S 상태(84)로 갱신한다. 이런 방법으로 본 발명은 관련된 프로세서(10)가 데이터 요구를 하거나 캐시가 상호 접속망(16)상에 하나의 트랜잭션을 개시하지 않고도, H 상태(90)의 하나의 캐시 디렉토리 엔트리가 S 상태(84)로 갱신되도록 한다. 물론, 상기의 시나리오에서 L2 캐시(14a)는 일관성을 유지하기 위해서 응답이 필요하다면 스누프된 트랜잭션에 대한 응답을 역시 제공한다. 예를 들어, 만약 스누프된 트랜잭션이 판독 요구라면, 요구하는 L2 캐시가 요구된 데이터를 E 상태(82)보다는 R 상태(92)로 저장하도록 L2 캐시(14a)는 요구된 데이터를 샘플할 의도를 나타내는 공유 응답을 제공해야 한다. 유효의 주소 태그와 관련되어 무효 데이터를 갱신하는 이런 방법으로 스누프될 수 있는 상호 접속망(16)상의 트랜잭션들은 판독 트랜잭션들, 기록 트랜잭션들, 및 캐시 라인 캐시트아웃(cache line castout)들로 인한 시스템 메모리(18)에의 데이터의 역 기록들 등을 포함한다.
H 상태(90)의 하나의 캐시 디렉토리 엔트리는 다수의 다른 요구/응답 시나리오들에 응답해서 R 상태(92)로 역시 갱신될 수 있다. 예들 들면, 만약 프로세서(10a)가 L1 캐시(12a)에서는 미스하고 L2 캐시(14a)에서는 태그 히트를 일으키는 판독 요구를 한다면, 또한 매칭 태그(matching tag)와 관련있는 일관성 상태 필드(42)가 H 상태(90)에 있다면, L2 캐시(14a)의 캐시 제어기(36)는 상호 접속망(16)상에 판독 트랜잭션을 내보낸다. L3 캐시(15a) 및 L2 캐시들(14b-14n)로부터의 판독 트랜잭션에 대한 공유 개입 응답, 공유 응답, 또는 수정 응답을 수신하고, 이에 응답해 L2 캐시(14a)의 캐시 제어기(36)는 참조 번호 122에서 나타난 것처럼 H 상태(90)에서 R 상태(92)로 요구된 데이터와 관련된 일관성 상태 필드(42)를 갱신한다.
더욱 중요하게, H 상태(90)의 캐시 디렉토리 엔트리는 관련된 프로세서가 데이터를 요구하지 않고도 R 상태(92)로 갱신될 수 있다. 예를 들어, L1 캐시 (12a) 및 L2 캐시(14a)는 프로세서(10a)에 의한 '수정 목적 판독' 요구에 응답해서, 요구된 데이터를 M 상태(80)로 저장한다. 이에 반해, L3 캐시(15a) 및 L2 캐시들(14b-14n)의 캐시 라인의 모든 카피들의 일관성 상태는 H 상태(90)로 설정된다. 만약, 요구된 데이터가 예를 들어 판독 미스에 응답해서 L2 캐시(14a)로부터의 대체(replacement)를 위해 뒤이어 선택된다면, L2 캐시(14a)의 캐시 제어기(36)은 요구된 데이터를 시스템 메모리(18)에 저장하기 위해 상호 접속망(16)상에 할당 해제 기록 트랜잭션(deallocation write transaction)을 내보낸다. 이 기록 트랜잭션을 스누프하고, 이에 응답해서 L3 캐시(15a)의 캐시 제어기는 데이터를 샘플하고, 데이터를 그것의 L3 데이터 어레이에 저장하며, 관련된 일관성 상태 필드를 H 상태(90)에서 R 상태(92)로 갱신한다. 그래서, L3 캐시(15a)는 판독 요구, 또는 '수정 목적 판독' 요구를 수신하고, 이에 응답해 데이터를 뒤이어 공급한다.
도 3에서 도시된 HR-MESI 캐시 일관성 프로토콜의 예시적 실시예에서 일어날 수 있는 상태 전이들은 아래의 표 1에 요약되어 있다.
상태 전이 원인(causes) 주석(notes)
I → E 널 응답을 갖는 프로세서 판독 요구 '프로세서 판독 요구'는 관련(즉, 국부)프로세서에 의한 판독 요구를 의미한다.
I → R (1)공유 개입을 갖는 프로세서 판독 요구(2)공유 응답을 갖는 프로세서 판독 요구(3)수정 응답을 갖는 프로세서 판독 요구
I → S 널 응답을 제외한 다른 응답을 갖는 프로세서 판독 요구 L3 캐시만 해당함;L2는 상기에서 나타난대로 R 상태로 전이
I → M 프로세서 수정 목적 판독 요구(processor 'read with intent to modify; rwitm' )
E → S 판독 요구 스누프(snooped read) 개입 데이터를 공급
E → M 수정 목적 프로세서 판독 요구
E → H 데이터 무효화 요구 스누프 스누프된 데이터 무효화 요구들은 rwitm, dclaim, kill, flush 등을 포함
R → S 판독 요구 스누프 개입 데이터 공급
R → M 프로세서 rwitm 상호 접속망상에 dclaim을 내보냄
R → H 데이터 무효화 요구 스누프
S → M 프로세서 rwitm 상호 접속망상에 dclaim을 내보냄
S → H 데이터 무효화 요구 스누프
M → S 판독 요구 스누프 수정 개입이 제공된다면, 데이터 공급
M → H 데이터 무효화 요구 스누프 만약,스누프된 트랜잭션이 rwitm이라면, 수정 개입이 제공될 때 데이터 공급
H → E 널 응답을 갖는 프로세서 판독 요구
H → R (1)공유 개입을 갖는 프로세서 판독 요구(2)공유 응답을 갖는 프로세서 판독 요구(3)수정 응답을 갖는 프로세서 판독 요구(4)국부 캐시 제어기에 의해 내보내진 기록 요구 스누프
H → S 원거리 캐시 제어기에 의해 내보내진 판독요구, 또는 기록 요구 스누프
H → M 프로세서 rwitm
본 발명에 따르면, 상기에서 설명한 HR-MESI 캐시 일관성 프로토콜은 추가 기능을 제공하는 추가적인 상태들을 포함하도록 확장될 수 있다. 예를 들어, 도 4를 참조하면 HRT-MESI 캐시 일관성 프로토콜의 예시적 실시예의 상태도를 도시하고 있다. HRT-MESI 프로토콜이 구현된다면, 바람직하게는 도 1에서 설명한 실시예에서 L2 캐시들(14a-14n)을 포함하는 메모리 계층 구조에서 인-라인 캐시의 가장 하위 레벨이 이를 이용할 수 있다. L3 캐시(15a)와 같는 어떤 더 하위 레벨 룩어사이드 캐시들은 바람직하게는 HR-MESI 프로토콜을 구현하고, 반면에 더 상위 레벨 캐시들은 바람직하게는 HR-MESI 프로토콜의 하나의 섭셋 프로토콜을, 예를 들어 H-MESI, R-MESI, 또는 MESI 프로토콜 중의 하나를 구현한다. 상기에서 설명된 HR-MESI 프로토콜내의 상태들에 부가하여, 도 4에 나타난 HRT-MESI 캐시 일관성 프로토콜은 태그(tagged; T) 상태(94)를 포함한다. 본 명세서에서 참조된 미국 특허 출원 제09/024,393호에서 자세히 설명된 것처럼, T 상태(94)는 관련된 캐시 라인이 국부 프로세서가 아닌 다른 하나의 프로세서에 의해 수정되었으나, 시스템 메모리에 역 기록 되지는 않았음을 나타낸다. T 상태(94)는 국부 프로세서에 의해 많은 부분에 있어서 S 상태(84)처럼 취급되고, 상호 접속망상의 스누프들에 관해서는 M 상태(80)처럼 취급된다.
도 4에서 참조 번호 130 및 134로 나타난 것처럼, 하나의 판독 요구가 하나의 수정 응답을 받고, 하나의 캐시 라인은 이에 응답해서 I 상태(86), 또는 H 상태(90)에서 T 상태(94)로 전이한다. 예를 들어, 만약 L2 캐시(14a)가 M 상태(80)의 L2 캐시(14n)에 의해 저장된 하나의 캐시 라인에 대한 판독 요구를 한다면, L2 캐시(14n)는 상기에서 설명한 대로 수정 개입을 통해 요구된 캐시 라인을 L2 캐시(14a)에 공급한다. 상기에서 처럼, L2 캐시(14n)에 있는 요구된 캐시 라인의 카피는 참조 번호 131에 나타난 대로 S 상태(84)로 갱신된다. 한편, L2 캐시(14a)는 요구된 캐시 라인을 T 상태(94)로 저장한다. 그 후, 수정된 캐시 라인에 대한 L2 캐시(14b)에 의한 판독 요구에 응답하여 L2 캐시(14a)는 수정 개입에 의해 요구된 캐시 라인을 공급하고, 참조 번호 132에 나타난 것처럼 수정된 캐시 라인의 카피의 일관성 상태를 S 상태(84)로 갱신한다. 수정된 캐시 라인에 가장 최근에 접근한 L2 캐시(14)가 캐시 라인을 T 상태(94)로 저장하고, 반면에 L2 캐시들(14a-14n)의 다른 것들은 수정된 데이터 라인을 S 상태(84)로 저장하도록 하기 위해, 이런 과정은 추가적인 경우에 반복될 수 있다. 이런 방식으로, L2 캐시들(14a-14n)중 하나는 수정 개입에 의해 캐시 라인을 다른 캐시들에 공급하는 것과 상기의 캐시 라인을 시스템 메모리(18)에 역 기록하는 것을 임시로 책임지는 것을 나타내는 '태그' 상태가 된다.
중요하게, T 상태(94)로 캐시 라인을 저장하는 L2 캐시(14)가 수정 개입에 의해 상호 접속망(16)상에 데이터를 공급할 때, 시스템 메모리(18)의 스누프 메카니즘 (예를 들어, 메모리 제어기)은 수정된 데이터를 샘플하지도 저장하지도 않지만 대신에 트랜잭션을 무시하고 시스템 메모리 대역폭을 넓힌다. 그러므로, T 상태(94)의 수정된 캐시 라인들은 단지 요구되었을 때, 예를 들어 수정된 캐시 라인이 시스템 메모리(18)에 들어가도록 요구하는 L2 캐시 라인 캐스트아웃, 또는 스누프된 트랜잭션에 응답할 때, 시스템 메모리에 역 기록된다. 물론, T 상태(94)의 수정된 캐시 라인은 결코 시스템 메모리(18)에 역 기록되지 못할 수도 있다. 예를 들어, 프로세서(10a)가 T 상태(94)의 L2 캐시(14n)에 의해 하나의 캐시 라인이 저장되도록 특정하는 '수정 목적 판독'을 내놓는 시나리오를 고려하자. '수정 목적 판독' 요구에 응답해서, 특정된 캐시 라인을 S 상태(84)로 저장하고 있는 L2 캐시(14n) 및 다른 L2 캐시들(14) 모두는 참조 번호 136 및 110으로 각각 나타난 것처럼 상기 특정된 캐시 라인의 그들의 카피들을 갱신한다. 캐시 라인 데이터는 H 상태(90)로의 전이에 의해 무효가 되기 때문에, 시스템 메모리(18)에 상기 특정된 캐시 라인을 역 기록 할 필요가 없게 된다.
참조 번호 138에 나타난 것처럼, T 상태(94)의 하나의 캐시 라인은 국부 프로세서가 '수정 목적 판독' 요구를 함에 응답해서 M 상태(80)로 전이될 수 있다. 국부 L2 캐시(14)는 요구된 캐시 라인을 저장하기 때문에, 데이터에 대한 어떠한 요구 트랜잭션도 상호 접속망(16)상에 나오지 않는다. 대신, 국부 L2 캐시(14)는 다른 L2 캐시들(14)가 관련 일관성 상태를 H 상태(90)로 갱신함으로써 요구된 캐시 라인의 그들의 카피들을 무효시키도록 지시하는 디클래임 트랜잭션을 상호 접속망(16)상에 내놓는다.
도 4에 도시된 HRT-MESI 캐시 일관성 프로토콜의 예시적 실시예에서 행 상태 전이들이 아래의 표 2에 요약되어 있다.
상태 전이 원인(causes) 주석(notes)
I → E 널 응답을 갖는 CPU 판독 요구
I → R (1)공유 개입을 갖는 CPU 판독 요구(2)공유 응답을 갖는 CPU 판독 요구
I → T 수정 응답을 갖는 CPU 판독 요구
I → M CPU 수정 목적 판독 요구(CPU 'read with intent to modify; rwitm')
E → S 판독 요구 스누프 개입 데이터 공급한다.
E → M CPU rwitm
E → H 데이터 무효화 요구 스누프 스누프된 데이터 무효화 요구 는 rwitm, dclaim, kill, flush 등이다. 만약 스누프된 트랜잭션이 rwitm이라면, 공유 개입으로 응답하고 데이터를 공급한다.
R → S 판독 요구 스누프 개입 데이터를 공급한다.
R → M CPU rwitm 상호 접속망상에 dclaim을 내보낸다.
R → H 데이터 무효화 요구 스누프 만약, 스누프된 트랜잭션이 rwitm이라면, 공유 개입으로 응답하고 데이터를 공급한다.
S → M CPU rwitm 상호 접속망상에 dclaim을 내보낸다.
S → H 데이터 무효화 요구 스누프
M → S 판독 요구 스누프 만약, 수정 개입이 제공된다면 데이터를 공급한다.
M → H 데이터 무효화 요구 스누프 만약,스누프된 트랜잭션이 rwitm이라면, 수정 개입이 제공될 때 데이터를 공급한다.
T → S 판독 요구 스누프 수정으로 응답하고 개입 데이터를 공급한다.
T → M CPU rwitm 상호 접속망상에 dclaim을 내보낸다.
T → H 데이터 무효화 요구 스누프
H → E 널 응답을 갖는 CPU 판독 요구
H → R (1)공유 개입을 갖는 CPU 판독 요구(2)공유 응답을 갖는 CPU 판독 요구(3)국부 캐시 제어기에 의해 내놓아 진 기록 요구 스누프
H → S 원거리 캐시 제어기에 의해 내놓아진 판독 요구, 또는 기록 요구 스누프
H → T 수정 응답을 갖는 CPU 판독 요구
H → M CPU rwitm
H 상태(90)를 포함하는 캐시 일관성 프로토콜에서의 진보는 이력 일관성 상태 정보(historical coherency status information)를 나타내는 하나 이상의 파생된 H 상태들의 추가이다. 예를 들어, 상기에서 설명된 HRT-MESI 및 HR-MESI 캐시 일관성 프로토콜들이 HR상태를 포함하도록 수정될 수 있다. H 상태(90)와 같이, HR상태는 관련된 캐시 라인은 무효이고, 관련된 주소 태그는 유효함을 나타낸다. HR상태는 그것의 데이터를 무효화시키기에 앞서, 관련 캐시 라인은 배타적으로 (예를 들어, M 상태(80)나 E 상태(82)로), 또는 개입 데이터를 공급할 수 있는 일관성 상태로 (예를 들어, R 상태(92)나 T 상태(94)로)저장된다. 예를 들어, L2 캐시(14a)가 하나의 캐시 라인을 M 상태(80), E 상태(82), R 상태(92), 또는 T 상태(94)중 하나의 상태로 저장되는 시나리오를 고려하자. 만약, L2 캐시(14n)가 상호 접속망(16)상에 캐시 라인에 대한 '수정 목적 판독' 요구를 내놓는다면, L2 캐시(14a)는 적절한 응답을 내보내고, 캐시 라인의 일관성 상태를 (H 상태(90) 보다는)HR상태로 갱신한다. 이어서, L2 캐시(14n)가 캐시 라인을 시스템 메모리(18)에 저장하는 역 기록 트랜잭션 (예를 들어, 캐시 라인 할당 해제, 또는 스누프 푸시)을 내보내면, 이에 응답해서 L2 캐시(14a)는 캐시 라인 데이터를 샘플하고 저장하며, 상기의 캐시 라인의 일관성 상태를 R 상태(92)로 갱신한다. 그러므로, HR상태의 사용은 수정된 캐시 라인의 할당 해제에 이어서 공유 개입이 유지되도록 하고, 그로 인해 데이터 접근 대기 시간을 감소시킨다.
다음, L2 캐시(14a)가 하나의 캐시 라인의 카피를 HR상태로 저장하고, L2 캐시(14n)은 개입 데이터를 공급할 수 있는 상태로 동일한 캐시 라인의 카피를 저장한다고 가정하자. 만약, L2 캐시(14b)가 상호 접속망(16)상에 캐시 라인에 대한 '수정 목적 판독' 요구를 내놓는다면, L2 캐시(14n)는 적절한 응답을 내놓고 요구된 캐시 라인을 개입에 의해 공급하며, 그 후 요구된 캐시 라인의 그것의 카피의 일관성 상태를 HR상태로 갱신한다. 갱신된 캐시 라인을 포함하는 개입 응답을 스누프하고, 이에 응답하여 L2 캐시(14a)는 캐시 라인의 카피의 일관성 상태를 HR상태에서 H 상태로 갱신한다. 도 5에 설명된 대로, 선택적으로 이력 정보의 추가적 레벨들은 최상위 파생 레벨 HR1과 H 상태(90)사이에 하나 이상의 추가적인 파생 상태들(HR2,HR3등)을 끼워넣음으로써 유지될 수 있다. 그러므로, L2 캐시(14a)는 L2 캐시(14n)에 의한 개입 응답을 스누프하고, 이에 응답하여 H 상태(90)로 전이하는 대신에 HR1상태에서 HR2상태로 전이할 것이다. 이어서, 적합한 캐시 라인을 포함하는 역 기록 트랜잭션을 스누프하고, 이에 응답하여 L2 캐시(14a)는 캐시 라인의 그것의 카피의 일관성 상태를 HR1상태로 전이시킨다. 이런 방식으로, 이력 일관성 상태 정보의 N 레벨들은 적어도 하나의 캐시가 요구된 캐시 라인을 개입에 의해 공급할 가능성을 높히도록 구현될 수 있다.
도 5에서 점선으로 도시된 것처럼, 이력 캐시 상태 정보의 N 레벨을 포함하는 캐시 일관성 프로토콜에서 다른 변화들도 가능하다. 특히, 캐시 라인을 최상위 레벨 HR1상태로 저장하는 캐시가 캐시 라인을 R 상태(92)로부터 공유 개입에 의해 공급할 수 있기 때문에, 하위 레벨 이력 상태들 (HR2, HR3,...,HRN)의 선택된 일부, 또는 전부는 관련된 캐시 라인의 역 기록을 스누프하고, 이에 응답하여 S 상태(84)로 직접 갱신될 수 있다.
적어도 하나의 파생된 H 상태를 포함하는 캐시 일관성 프로토콜의 또 다른 진보는 하나의 특정한 캐시 라인을 위한 하나의 최상위 레벨 파생 H 상태 (즉, HR이나 HR1)를 다중-레벨 메모리 계층 구조내의 각각의 상호 접속망에 제공하는 것이다. 도 6을 참조하면, 상기 진보를 구현하는 멀티 프로세서 데이터 처리 시스템의 하나의 본보기가 되는 실시예가 도시되어 있다. 설명한 바와 같이, 데이터 처리 시스템(150)은 두 개의 대칭의 클러스터들(152, 154)을 포함한다. 클러스터(152)는 각각이 처리 회로에 추가해 온-보드 L1 캐시(162) 및 L2 캐시(164)를 포함하는 프로세서(160a, 160b)를 포함한다. L2 캐시들(164a, 164b) 각각은 상호 접속망(180)에 의해 시스템 메모리(182)에 교대로 결합된 공유 L3 캐시(170a)에 상호-캐시 연결(166a)를 통해 연결되어 있다. 유사하게도 클러스터(154)도 각각이 처리 회로에 추가해 L1 캐시(162) 및 L2 캐시(164)를 포함하는 프로세서(160c, 160d)를 포함한다. L2 캐시들(164c, 164d) 각각은 상호 접속망(180)에 의해 시스템 메모리(182)에 교대로 결합된 공유 L3 캐시(170b)에 상호-캐시 연결(166b)을 통해 연결되어 있다.
다중-레벨 메모리 계층 구조내에 파생 H 상태들을 사용하는 성능상의 이점을 설명하는 본보기가 되는 처리 시나리오는 아래의 표 3에 요약되어 있다. 표 3의 제1 행에서 보면, L2 캐시들(164a-164h) 및 L3 캐시들(170a, 170b)은 I 상태(86)로 설정된 특별한 캐시 라인을 위한 그들의 각각의 일관성 지시기들을 가지고 작동을 시작한다. 제2 행을 보면, 프로세서(160a)가 하나의 판독 요구를 하면, 이에 응답해서 L2 캐시(164a)가 상호-캐시 연결(166a)상에 판독 요구를 내놓는다. L2 캐시들(164b-164d)에 의한 하나의 널 응답에 응답해서, L3 캐시(170a)는 상호 접속망(180)상에 판독 요구를 위치시킨다. 시스템 메모리(182)는 요구된 캐시 라인을 공급함으로써 판독 요구에 응답하고, 이는 L3 캐시(170a) 및 L2 캐시(164a) 양자에 의해 E 상태(82)로 저장된다. 만약, 프로세서(160d)가 동일한 캐시 라인에 저장할 의도를 내비치면, L2 캐시(164d)는 상호-캐시 연결(166a)상에 '수정 목적 판독(RWITM)' 요구를 내보낸다. RWITM 요구를 스누프하고, 이에 응답하여 L2 캐시(164a)는 공유 개입 응답을 하고, 요구된 캐시 라인을 공급하며, 일관성 상태 지시기를 HR상태로 갱신한다. 표 3에 나타난 대로, L2 캐시(164d)는 요구된 캐시 라인을 M 상태(80)로 저장한다. 유사하게 L3 캐시(170a)는 상류 캐시(upstream cache)가 캐시 라인의 수정된 카피를 저장함을 나타내기 위해서 M 상태(80)로 전이한다. 중요하게, L3 캐시(170a)는 캐시 라인을 배타적으로 저장하기 때문에 상호 접속망(180)상에 RWITM 요구를 위치시킬 필요가 없다.
표 3의 제4 행에 나타난 대로, 프로세서(160f)가 캐시 라인에 저장할 의도를 내비치면, L2 캐시(164f)는 상호-캐시 연결(166b)상에 RWITM 요구를 내보낸다. L3 캐시(170b)는 그때 상호 접속망(180)상에 RWITM 요구를 위치시킨다. RWITM 요구를 스누프하고, 이에 응답하여 L3 캐시(170a)는 적어도 하나의 상류 캐시가 요구된 캐시 라인의 수정된 카피를 저장하고 있음을 알기 때문에 상호-캐시 연결(166a)상에 상기의 요구를 위치시킨다. RWITM 요구를 스누프하고, 이에 응답하여 L2 캐시(164b)는 수정으로 응답하고 요구된 데이터를 수정 개입에 의해 공급하며 캐시 라인의 그것의 카피의 일관성 상태를 HR상태로 갱신한다. L2 캐시(164a) 및 L3 캐시(170a)도 역시 캐시 라인의 그들의 카피들의 일관성 상태를 각각 H 상태(90) 와 HR상태로 갱신시킨다. L3 캐시(170b) 및 L2 캐시(164f) 양자 모두 요구된 캐시 라인을 M 상태(80)로 저장한다.
이어서, L2 캐시(164h)가 상호-캐시 연결(166b)상에 RWITM 요구를 내놓으면, 이에 응답해서 L2 캐시(164f)는 수정으로 응답하고 요구된 데이터를 공급하며 캐시 라인의 그것의 카피의 일관성 상태를 HR상태로 갱신한다. 요구된 캐시 라인를 받고, 이에 응답해서 L2 캐시(164h)는 캐시 라인을 M 상태(80)로 저장한다. 나머지 캐시들의 캐시 라인의 일관성 상태는 변화없이 유지된다. 따라서, 표 3의 제5 행에 나타난 것처럼, 하나의 캐시 그룹은 공유 상호 접속망 이나 상호-캐시 연결에 연결된 것과 메모리 계층 구조의 동일한 레벨에 캐시들을 포함하는 것으로 정의됨에 반해, 각각의 캐시 그룹의 하나의 캐시는 특정한 캐시 라인를 HR상태로 보유한다.
예를 들면, 만약 L2 캐시(164g)가 상호-캐시 연결(166b)상에 판독 요구를 내보내면, L2 캐시(164h)는 수정으로 응답하고, 캐시 라인을 수정 개입에 의해 공급하며, 캐시 라인의 그것의 카피의 일관성 상태를 S 상태(84)로 갱신한다. 요구된 캐시 라인를 스누프하는 즉시, L2 캐시(164g)는 상기의 캐시 라인을 T 상태(94)로 저장한다. L3 캐시(170b)가 캐시 라인을 M 상태(80)로 저장하고 있기 때문에, 상호 접속망(180)상에 어떤 트랜잭션도 내보낼 필요가 없다. 마지막으로, 표 3의 제7 행에 나타난 것처럼, L2 캐시(164g)가 캐시 라인을 할당 해제할 때, L2 캐시(164g)는 관련된 일관성 상태를 중간 상태('X'로 나타냄)로 갱신하고, L2 캐시(164f)는 캐시 라인을 샘플하며, 그의 일관성 상태를 HR상태에서 R 상태(92)로 갱신한다.
L3 캐시(170b)는 많은 경로로 L2 캐시(164g)에 의해 캐시 라인의 할당 해제에 응답하도록 구성될 수 있다. 우선, L3 캐시(170b)는 수정된 캐시 라인을 시스템 메모리(182)에 기록하지 않고도 캐시 라인의 그의 카피를 단순히 재생할 수 있다. 선택적으로, 표 3의 제7 행에서 나타난 것처럼, L3 캐시(170b)는 캐시 라인의 그의 카피를 수정된 데이터를 가지고 갱신하고, 상기 수정된 캐시 라인을 상호 접속망(180)을 통해 시스템 메모리(182)에 기록하며, 이로 인해 다른 L3 캐시들이 수정된 캐시 라인을 볼 수 있게 한다. 제2 구현에서는, L3 캐시(170a)은 캐시 라인 데이터를 샘플할 것임을 나타내기 위해서 공유 응답을 가지고 할당 해제 기록에 응답한다. 그 때, 캐시 라인 데이터를 샘플링 하는 즉시, L3 캐시(170a)는 캐시 라인의 카피의 일관성 상태를 HR상태에서 R 상태(92)로 갱신해서, 결과적으로 메모리 계층 구조의 상호 접속망 레벨에서 캐시 라인을 공유 개입에 의해 공급할 수 있는 능력을 유지한다. 지적한 바와 같이, L3 캐시(170b)는 캐시 라인의 그것의 카피의 일관성 상태를 S 상태(84)로 갱신한다.
동작 L2 캐시들(164) L3 캐시들(170)
a d f g h a b
초기 상태 I I I I I I I
L2(164a) 판독 요구 E I I I I E I
L2(164d) RWITM 요구 HR M I I I M I
L2(164f) RWITM 요구 H HR M I I HR M
L2(164h) RWITM 요구 H HR HR I M HR M
L2(164g) 판독 요구 H HR HR T S HR M
L2(164g) 할당 해제 H HR R X S R S
상기에서 설명한 바와 같이, 본 발명은 멀티 프로세서 데이터 처리 시스템에서의 캐시 일관성을 유지하기 위한 개량된 방법과 시스템을 제공하고 있다. 본 발명에 의해 제공된 개량된 캐시 일관성 프로토콜은 하나의 유효한 주소 태그와 관련되어 하나의 캐시에 의해 저장된 무효의 데이터 항목이 국부 프로세서가 명시적 판독, 또는 기록 요구를 내보내지 않고도 자동적으로 하나의 유효한 데이터 항목과 같이 갱신될 수 있도록 한다. 이런 방식으로, 원거리 프로세서들의 활동에 의해 무효가 된 데이터는 국부 프로세서가 데이터에 접근하기에 앞서 재생될 수 있기때문에, 이로 인해 데이터를 원거리 캐시나 시스템 메모리로부터 검색할 필요성을 제거함으로써 실질적으로 데이터 접근 대기 시간을 줄인다. 데이터 접근 대기 시간은 공유 상태로 저장된 데이터를 시스템 메모리가 아닌 원거리 캐시로부터 공급하는 공유 개입의 제공을 통해서, 본 발명의 캐시 일관성 프로토콜에 의해 또한 실질적으로 줄어든다.
본 발명의 또 다른 특징에 따르면, 캐시 일관성 프로토콜은 수정된 데이터를 역 기록하는 책임을 시스템 메모리에 할당함으로써 시스템 메모리 대역폭을 효율적으로 이용할 수 있도록 해주는 T 상태를 포함하도록 확장될 수 있다. 본 발명에 따른 캐시 일관성 프로토콜은 하나 이상의 파생 상태들의 포함을 통해서 이력 일관성 상태 정보를 또한 유지할 수 있다. 제1 캐시가 데이터를 포함하는 하나의 캐시 라인을 할당 해제하면, 이에 응답해서 상기의 파생 상태들은 데이터를 개입에 의해 공급하는 책임이 제1 캐시에서 제2 캐시로 전달되도록 한다. 각각의 상호 접속망이나 상호-캐시 연결에 접속된 하나의 캐시가 개입에 의해 데이터를 공급하는 책임을 맡도록하기 때문에 이런 파생 상태들은 다중-레벨 메모리 계층 구조에서 특별한 효용을 가진다.
예시적 실시예들과 관련해 본 발명을 설명했지만, 당업자는 본 발명의 정신과 범위에서 벗어남이 없이도 형식과 세부적으로는 다양한 변화가 가능하다는 점을 이해할 것이다. 예를 들면, HR-MESI 및 HRT-MESI 캐시 일관성 프로토콜은 I 상태(86)는 단지 전원이 들어올 때 디렉토리 엔트리들을 초기화하는데 이용하고 또 다른 상태로부터 재전이(re-enter) 되지않기 때문에, 상기 상태를 제거하는 방향으로도 수정될 수 있다. 만약, I 상태(86)가 제거된다면, 전원이 들어올 때는 각각의 디렉토리 엔트리의 일관성 상태 필드는 H 상태(90)로 초기화될 수 있고, 각각의 L2 디렉토리 엔트리의 태그 필드는 적어도 동일한 상동 클래스내에서는 유일한 하나의 태그값으로 초기화될 수 있다.

Claims (16)

  1. 상호 접속망(interconnect), 다수의 캐시(cache) 및 적어도 제1 및 제2 클러스터(cluster)로 그룹화된 다수의 프로세서들을 포함하고, 상기 제1 및 제2 클러스터 각각은 상기 상호 접속망에 결합되고, 상기 제1 및 제2 클러스터 각각은 적어도 하나의 상위 레벨 캐시 및 적어도 하나의 하위 레벨 캐시를 가지는 것인 데이터 처리 시스템에서 캐시 일관성(cache coherency)을 유지하기 위한 방법에 있어서,
    상기 제1 클러스터의 제1 상위 레벨 캐시에 주소를 지정하는 주소 태그(address tag)와 관련한 제1 데이터 항목을 저장하고, 제1 일관성 지시기(coherency indicator)를 상기 주소 태그는 유효(valid)하고 상기 제1 데이터 항목은 무효(invalid)임을 나타내는 제1 상태로 설정하는 단계와,
    상기 제1 상위 레벨 캐시가 상기 제1 상태에서 상기 제1 데이터 항목을 저장하는 동안, 상기 제2 클러스터의 제2 상위 레벨 캐시에 상기 주소를 지정하는 주소 태그와 관련한 제2 데이터 항목을 저장하는 단계와,
    제2 일관성 지시기를 상기 주소 태그가 유효하고 상기 제2 데이터 항목이 무효임을 나타내는 상기 제1 상태로 설정하는 단계와,
    상기 제1 및 제2 상위 레벨 캐시 중 어느 하나가 상기 데이터 처리 시스템 내의 다른 장치에 의해 개시되는, 상기 주소와 관련된 데이터 전송-상기 데이터 전송은 제3 데이터 항목을 포함하는 것임-을 감지하는 것에 응답하여 상기 제1 및 제2 상위 레벨 캐시 중 감지하는 캐시 내의 상기 제1 및 제2 데이터 항목 중 하나를 상기 제3 데이터 항목으로 대체하는 단계와,
    상기 제1 및 제2 일관성 지시자 중 하나를 제2 상태- 클러스터 내에서 요구에 응답하여 상기 제1 및 제2 상위 레벨 캐시 중 감지하는 캐시가 공유 개입에 의해 상기 제3 데이터 항목을 다른 캐시로 제공할 책임이 있는 상태임- 로 설정하는 단계포함하는 방법.
  2. 제1항에 있어서,
    상기 제1 및 제2 데이터 항목 중 하나를 대체하는 단계는 독출 요구에 의해 개시되는 데이터 전송의 감지에 응답하여 상기 제1 및 제2 데이터 중 하나를 대체하는 단계를 포함하는 것인 방법.
  3. 제1항에 있어서,
    상기 데이터 처리 시스템은 시스템 메모리를 더 포함하고
    상기 제1 및 제2 데이터 항목 중 하나를 대체하는 단계는 상기 제3 데이터 항목을 포함하는 데이터 전송의 검출에 응답하여 상기 제1 및 제2 데이터 항목을 대체하는 단계를 포함하고, 상기 제3 데이터 항목은 상기 시스템 메모리 내의 대응 데이터 항목에 대하여 수정되는 것인 방법.
  4. 제3항에 있어서, 상기 데이터 전송이 상기 제1 클러스터에 있는 제3 상위 레벨 캐시에 의해 상기 제3 데이터 항목을 상기 시스템 메모리로 역 기록(write-back)하는 것인 방법.
  5. 제2항에 있어서,
    상기 일관성 지시기가 상기 제2 상태로 설정되어 있는 동안 상기 제1 레벨 캐시가 상기 제3 데이터 항목에 대한 요구를 수신하고, 이에 응답하여 상기 제3 데이터 항목을 공급하는 단계와,
    상기 제1 상위 레벨 캐시의 상기 일관성 지시기를 제3 상태로 갱신하는 단계를 더 포함하는 것인 방법.
  6. 제1항에 있어서, 상기 제1 상위 레벨 캐시의 상기 일관성 지시기를 제1 상태로 설정하는 단계는, 상기 다수의 프로세서들중 하나가 상기 주소 태그가 지정하는 상기 주소에 저장할 의도를 내비치면, 이에 응답하여 상기 제1 상위 레벨 캐시의 상기 일관성 지시기를 상기 제1 상태로 설정하는 단계를 포함하는 방법.
  7. 제1항에 있어서, 상기 제1 클러스터의 상기 하위 레벨 캐시의 상기 주소를 지정하는 주소 태크와 관련되는 일관성 지시기를 상기 제1 상태로 설정하는 단계를 더 포함하는 것인 방법.
  8. 상호 접속망(interconnect)과, 상기의 상호 접속망에 결합되어 있는 시스템 메모리와, 상기의 상호 접속망에 결합되어 있는 제1 및 제2 클러스터를 포함하고, 상기 제1 및 상기 제2 클러스터 각각은 적어도 하나의 프로세서, 상위 레벨 캐시 및 하위 레벨 캐시를 포함하는 데이터 처리 시스템에 있어서,
    상기 제1 클러스터의 상기 제1 상위 레벨 캐시와 상기 제2 클러스터의 제2 상위 레벨 캐시 각각은,
    데이터 저장 장치와,
    상기의 데이터 저장 장치에 포함된 테이터 항목과 관련되는 특정한 주소를 지정하는 주소 태그를 저장하는 태그 저장 장치와,
    상기 주소 태그는 유효하고 상기 관련 데이터 항목은 무효임을 나타내는 제1 상태로 설정되는 일관성 지시기와,
    상기 데이터 처리 시스템의 다른 장치에 의해 개시되는 상기 특정 주소와 관련된 제2 데이터 항목을 포함하는 데이터 전송을 감지할 책임이 있는 캐시 제어기를 포함하고, 상기 캐시 제어기는 상기 데이터 항목을 상기 제2 데이터 항목으로 대체하고 상기 캐시 제어기를 포함하는 상기 상위 레벨 캐시가 클러스터 내에서 요청에 응답하여 공유 개입에 의해 상기 일관성 지시기를 상기 제2 데이터 항목을 공급할 책임이 있는 제2 상태로 설정하는 것인 시스템.
  9. 제8항에 있어서, 상기 데이터 전송은 판독 요구에 응답한 데이터 판독 전송인 것인 시스템.
  10. 제9항에 있어서, 상기 데이터 전송에서 상기 제 2 데이터 항목은 상기 시스템 메모리의 대응 데이터 항목에 대해 수정된 것인 시스템.
  11. 제10항에 있어서, 상기 데이터 전송은 제3 상위 레벨 캐시에 의해 상기 시스템 메모리로 상기 제2 데이터 항목을 역 기록(write-back)하는 것을 포함하는 것인 시스템.
  12. 제9항에 있어서, 상기 제1 상위 레벨 캐시의 상기 캐시 제어기는, 상기 일관성 지시기가 상기 제2 상태로 설정되는 동안, 상기 제1 상위 레벨 캐시에서의 상기 제2 데이터 항목에 대한 요구를 수신하고 이에 응답하여 상기 제2 데이터 항목을 공급하고 상기 제1 상위 레벨 캐쉬의 상기 일관성 지시기를 제3 상태로 갱신하는 것인 시스템.
  13. 제8항에 있어서, 상기 제1 상위 레벨 캐시의 상기 캐시 제어기는, 상기 데이터 처리 시스템의 프로세서가 상기 주소 태그가 지정하는 상기 주소에 저장할 의도를 내비치면 이에 응답하여 상기 일관성 지시기를 상기 제1 상태로 설정하는 것인 시스템.
  14. 제8항에 있어서, 상기 제1 상위 레벨의 상기 일관성 지시기가 상기 제1 상태로 설정되는 동안, 상기 제1 클러스터의 하부 레벨 캐시의 일관성 지시기는 상기 주소를 지시하는 주소 태그와 관련되는 상기 제1 상태로 설정되는 것인 시스템.
  15. 제8항에 있어서, 상기 제1 클러스터는 공통된 상호-캐시 연결(inter-cache connection)을 포함하고, 복수의 상위 레벨 캐시는 상기 제1 상위 레벨 캐시를 포함하며, 상기 복수의 상위 레벨 캐시는 각각 상기 상호-캐시 연결에 결합되는 것인 시스템.
  16. 제8 항에 있어서, 상기 제1 클러스터는 복수의 프로세서 및 복수의 상위 레벨 캐시를 포함하고, 상기 복수의 상위 레벨 캐시 각각은 상기 복수의 프로세서 각각에 의해 직접 액세스될 수 있는 것인 시스템.
KR1019990002801A 1998-02-17 1999-01-28 다중-레벨 메모리 계층 구조를 포함하는 데이터 처리 시스템용 캐시 일관성 프로토콜 KR100326980B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/024,318 US6192451B1 (en) 1998-02-17 1998-02-17 Cache coherency protocol for a data processing system including a multi-level memory hierarchy
US09/024,318 1998-02-17
US9/024,318 1998-02-17

Publications (2)

Publication Number Publication Date
KR19990072315A KR19990072315A (ko) 1999-09-27
KR100326980B1 true KR100326980B1 (ko) 2002-03-04

Family

ID=21819973

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019990002801A KR100326980B1 (ko) 1998-02-17 1999-01-28 다중-레벨 메모리 계층 구조를 포함하는 데이터 처리 시스템용 캐시 일관성 프로토콜

Country Status (8)

Country Link
US (1) US6192451B1 (ko)
EP (1) EP0936557B1 (ko)
JP (1) JPH11272559A (ko)
KR (1) KR100326980B1 (ko)
CN (1) CN1126046C (ko)
DE (1) DE69908204D1 (ko)
HK (1) HK1019800A1 (ko)
TW (1) TW439030B (ko)

Families Citing this family (62)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6275908B1 (en) * 1998-02-17 2001-08-14 International Business Machines Corporation Cache coherency protocol including an HR state
US6446237B1 (en) * 1998-08-04 2002-09-03 International Business Machines Corporation Updating and reading data and parity blocks in a shared disk system
US6578110B1 (en) * 1999-01-21 2003-06-10 Sony Computer Entertainment, Inc. High-speed processor system and cache memories with processing capabilities
US6405289B1 (en) * 1999-11-09 2002-06-11 International Business Machines Corporation Multiprocessor system in which a cache serving as a highest point of coherency is indicated by a snoop response
US6374333B1 (en) * 1999-11-09 2002-04-16 International Business Machines Corporation Cache coherency protocol in which a load instruction hint bit is employed to indicate deallocation of a modified cache line supplied by intervention
US6349369B1 (en) * 1999-11-09 2002-02-19 International Business Machines Corporation Protocol for transferring modified-unsolicited state during data intervention
US6345342B1 (en) * 1999-11-09 2002-02-05 International Business Machines Corporation Cache coherency protocol employing a read operation including a programmable flag to indicate deallocation of an intervened cache line
US6345343B1 (en) * 1999-11-09 2002-02-05 International Business Machines Corporation Multiprocessor system bus protocol with command and snoop responses for modified-unsolicited cache state
US6321306B1 (en) * 1999-11-09 2001-11-20 International Business Machines Corporation High performance multiprocessor system with modified-unsolicited cache state
US6345344B1 (en) * 1999-11-09 2002-02-05 International Business Machines Corporation Cache allocation mechanism for modified-unsolicited cache state that modifies victimization priority bits
US6519685B1 (en) * 1999-12-22 2003-02-11 Intel Corporation Cache states for multiprocessor cache coherency protocols
US6457104B1 (en) * 2000-03-20 2002-09-24 International Business Machines Corporation System and method for recycling stale memory content in compressed memory systems
US6904499B2 (en) * 2001-03-30 2005-06-07 Intel Corporation Controlling cache memory in external chipset using processor
TWI252406B (en) * 2001-11-06 2006-04-01 Mediatek Inc Memory access interface and access method for a microcontroller system
KR100434055B1 (ko) * 2002-04-27 2004-06-04 엘지전자 주식회사 이동통신 시스템의 캐시 일관성 유지 방법
US7073030B2 (en) 2002-05-22 2006-07-04 International Business Machines Corporation Method and apparatus providing non level one information caching using prefetch to increase a hit ratio
US7035979B2 (en) * 2002-05-22 2006-04-25 International Business Machines Corporation Method and apparatus for optimizing cache hit ratio in non L1 caches
US7281055B2 (en) * 2002-05-28 2007-10-09 Newisys, Inc. Routing mechanisms in systems having multiple multi-processor clusters
US7103636B2 (en) * 2002-05-28 2006-09-05 Newisys, Inc. Methods and apparatus for speculative probing of a remote cluster
US7296121B2 (en) * 2002-11-04 2007-11-13 Newisys, Inc. Reducing probe traffic in multiprocessor systems
US7346744B1 (en) 2002-11-04 2008-03-18 Newisys, Inc. Methods and apparatus for maintaining remote cluster state information
US7003633B2 (en) * 2002-11-04 2006-02-21 Newisys, Inc. Methods and apparatus for managing probe requests
US8185602B2 (en) 2002-11-05 2012-05-22 Newisys, Inc. Transaction processing using multiple protocol engines in systems having multiple multi-processor clusters
US7577755B2 (en) * 2002-11-19 2009-08-18 Newisys, Inc. Methods and apparatus for distributing system management signals
US20040117667A1 (en) * 2002-12-12 2004-06-17 Sun Microsystems, Inc. Synchronization facility for information domains employing replicas
US7334089B2 (en) * 2003-05-20 2008-02-19 Newisys, Inc. Methods and apparatus for providing cache state information
KR100531861B1 (ko) * 2003-05-31 2005-11-29 엘지전자 주식회사 무선 인터넷 환경에서의 캐쉬 일관성 유지 방법
US7386626B2 (en) * 2003-06-23 2008-06-10 Newisys, Inc. Bandwidth, framing and error detection in communications between multi-processor clusters of multi-cluster computer systems
US7337279B2 (en) * 2003-06-27 2008-02-26 Newisys, Inc. Methods and apparatus for sending targeted probes
US7395347B2 (en) * 2003-08-05 2008-07-01 Newisys, Inc, Communication between and within multi-processor clusters of multi-cluster computer systems
US7136967B2 (en) * 2003-12-09 2006-11-14 International Business Machinces Corporation Multi-level cache having overlapping congruence groups of associativity sets in different cache levels
US7395375B2 (en) * 2004-11-08 2008-07-01 International Business Machines Corporation Prefetch miss indicator for cache coherence directory misses on external caches
US7536513B2 (en) * 2005-03-31 2009-05-19 International Business Machines Corporation Data processing system, cache system and method for issuing a request on an interconnect fabric without reference to a lower level cache based upon a tagged cache state
CN100370440C (zh) * 2005-12-13 2008-02-20 华为技术有限公司 处理器系统及其数据操作方法
US20070150663A1 (en) * 2005-12-27 2007-06-28 Abraham Mendelson Device, system and method of multi-state cache coherence scheme
US7512742B2 (en) * 2006-01-17 2009-03-31 International Business Machines Corporation Data processing system, cache system and method for precisely forming an invalid coherency state indicating a broadcast scope
US7451277B2 (en) * 2006-03-23 2008-11-11 International Business Machines Corporation Data processing system, cache system and method for updating an invalid coherency state in response to snooping an operation
US7571286B2 (en) * 2006-08-24 2009-08-04 International Business Machines Corporation Reduced memory traffic via detection and tracking of temporally silent stores
CN101296176B (zh) 2007-04-25 2010-12-22 阿里巴巴集团控股有限公司 一种基于群集的数据处理方法和装置
US20080320233A1 (en) * 2007-06-22 2008-12-25 Mips Technologies Inc. Reduced Handling of Writeback Data
US7769957B2 (en) * 2007-06-22 2010-08-03 Mips Technologies, Inc. Preventing writeback race in multiple core processors
US9069489B1 (en) 2010-03-29 2015-06-30 Marvell Israel (M.I.S.L) Ltd. Dynamic random access memory front end
US9037810B2 (en) 2010-03-02 2015-05-19 Marvell Israel (M.I.S.L.) Ltd. Pre-fetching of data packets
US8874855B2 (en) * 2009-12-28 2014-10-28 Empire Technology Development Llc Directory-based coherence caching
US8327047B2 (en) 2010-03-18 2012-12-04 Marvell World Trade Ltd. Buffer manager and methods for managing memory
US9558119B2 (en) 2010-06-23 2017-01-31 International Business Machines Corporation Main memory operations in a symmetric multiprocessing computer
US20120166739A1 (en) * 2010-12-22 2012-06-28 Andes Technology Corporation Memory module and method for atomic operations in a multi-level memory structure
CN102004803A (zh) * 2010-12-30 2011-04-06 用友软件股份有限公司 数据库资源的调度方法和装置
US9098203B1 (en) 2011-03-01 2015-08-04 Marvell Israel (M.I.S.L) Ltd. Multi-input memory command prioritization
CN102571569B (zh) * 2011-12-28 2015-04-01 方正国际软件有限公司 一种报文预知方法及系统
US9767025B2 (en) 2012-04-18 2017-09-19 Qualcomm Incorporated Write-only dataless state for maintaining cache coherency
US9170955B2 (en) * 2012-11-27 2015-10-27 Intel Corporation Providing extended cache replacement state information
US9535832B2 (en) 2013-04-30 2017-01-03 Mediatek Singapore Pte. Ltd. Multi-hierarchy interconnect system and method for cache system
CN104951240B (zh) * 2014-03-26 2018-08-24 阿里巴巴集团控股有限公司 一种数据处理方法及处理器
JP6213366B2 (ja) * 2014-04-25 2017-10-18 富士通株式会社 演算処理装置とその制御方法
US9886382B2 (en) * 2014-11-20 2018-02-06 International Business Machines Corporation Configuration based cache coherency protocol selection
US10324861B2 (en) * 2015-02-05 2019-06-18 Eta Scale Ab Systems and methods for coherence in clustered cache hierarchies
US10142436B2 (en) * 2015-11-19 2018-11-27 Microsoft Technology Licensing, Llc Enhanced mode control of cached data
US10445094B2 (en) 2016-05-27 2019-10-15 Arm Limited Method and apparatus for reordering in a non-uniform compute device
US10795815B2 (en) * 2016-05-27 2020-10-06 Arm Limited Method and apparatus for maintaining data coherence in a non-uniform compute device
US10552152B2 (en) 2016-05-27 2020-02-04 Arm Limited Method and apparatus for scheduling in a non-uniform compute device
US10423538B2 (en) 2017-11-29 2019-09-24 International Business Machines Corporation Bandwidth efficient techniques for enabling tagged memories

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19990072596A (ko) * 1998-02-17 1999-09-27 포만 제프리 엘 에이치_알상태를포함하는캐시일관성프로토콜

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4755930A (en) 1985-06-27 1988-07-05 Encore Computer Corporation Hierarchical cache memory system and method
JPH0680499B2 (ja) 1989-01-13 1994-10-12 インターナショナル・ビジネス・マシーンズ・コーポレーション マルチプロセッサ・システムのキャッシュ制御システムおよび方法
US5287484A (en) * 1989-06-21 1994-02-15 Hitachi, Ltd. Multi-processor system for invalidating hierarchical cache
JP2820752B2 (ja) * 1990-01-19 1998-11-05 日本電信電話株式会社 密結合マルチプロセッサシステムにおけるキャッシュメモリ一致制御方法
CA2051209C (en) 1990-11-30 1996-05-07 Pradeep S. Sindhu Consistency protocols for shared memory multiprocessors
US5319766A (en) * 1992-04-24 1994-06-07 Digital Equipment Corporation Duplicate tag store for a processor having primary and backup cache memories in a multiprocessor computer system
JPH06110844A (ja) 1992-08-11 1994-04-22 Toshiba Corp 分散共有メモリ型マルチプロセッサシステム
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
US5671391A (en) 1994-01-10 1997-09-23 Ncr Corporation Coherent copyback protocol for multi-level cache memory systems
US5588131A (en) 1994-03-09 1996-12-24 Sun Microsystems, Inc. System and method for a snooping and snarfing cache in a multiprocessor computer system
CA2148186A1 (en) 1994-05-04 1995-11-05 Michael T. Jackson Processor board having a second level writeback cache system and a third level writethrough cache system which stores exclusive state information for use in a multiprocessor computer system
JPH1020205A (ja) 1996-07-09 1998-01-23 Yokogawa Electric Corp 共焦点用光スキャナ
US5900016A (en) * 1997-04-02 1999-05-04 Opti Inc. System for using a cache memory with a write-back architecture

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19990072596A (ko) * 1998-02-17 1999-09-27 포만 제프리 엘 에이치_알상태를포함하는캐시일관성프로토콜

Also Published As

Publication number Publication date
JPH11272559A (ja) 1999-10-08
TW439030B (en) 2001-06-07
HK1019800A1 (en) 2000-02-25
EP0936557A2 (en) 1999-08-18
US6192451B1 (en) 2001-02-20
CN1126046C (zh) 2003-10-29
DE69908204D1 (de) 2003-07-03
EP0936557B1 (en) 2003-05-28
CN1226704A (zh) 1999-08-25
KR19990072315A (ko) 1999-09-27
EP0936557A3 (en) 2000-01-12

Similar Documents

Publication Publication Date Title
KR100326980B1 (ko) 다중-레벨 메모리 계층 구조를 포함하는 데이터 처리 시스템용 캐시 일관성 프로토콜
US6721848B2 (en) Method and mechanism to use a cache to translate from a virtual bus to a physical bus
US5895495A (en) Demand-based larx-reserve protocol for SMP system buses
US6571322B2 (en) Multiprocessor computer system with sectored cache line mechanism for cache intervention
US7310708B2 (en) Cache system with groups of lines and with coherency for both single lines and groups of lines
US6408362B1 (en) Data processing system, cache, and method that select a castout victim in response to the latencies of memory copies of cached data
JP4594900B2 (ja) メモリ・ブロックを初期設定するためのプロセッサ、データ処理システム、および方法
US6405290B1 (en) Multiprocessor system bus protocol for O state memory-consistent data
US6321306B1 (en) High performance multiprocessor system with modified-unsolicited cache state
JPH09259036A (ja) ライトバックキャッシュおよびライトバックキャッシュ内で整合性を維持する方法
US6345341B1 (en) Method of cache management for dynamically disabling O state memory-consistent data
KR100330934B1 (ko) 정밀 모드 및 비정밀 모드를 갖는 호버링(h) 상태를 포함하는 캐시 일관성 프로토콜
KR100322225B1 (ko) 배회(h) 상태 및 최근(r) 상태를 갖는캐쉬 코히어런시 프로토콜
US7117312B1 (en) Mechanism and method employing a plurality of hash functions for cache snoop filtering
US8473686B2 (en) Computer cache system with stratified replacement
KR100326632B1 (ko) 에이치_알 상태를 포함하는 캐시 일관성 프로토콜
US6397303B1 (en) Data processing system, cache, and method of cache management including an O state for memory-consistent cache lines
US6279086B1 (en) Multiprocessor system bus with combined snoop responses implicitly updating snooper LRU position
US6338124B1 (en) Multiprocessor system bus with system controller explicitly updating snooper LRU information
US6415358B1 (en) Cache coherency protocol having an imprecise hovering (H) state for instructions and data
US6272603B1 (en) Cache coherency protocol having hovering (H), recent (R), and tagged (T) states
US6356982B1 (en) Dynamic mechanism to upgrade o state memory-consistent cache lines
US6349368B1 (en) High performance mechanism to support O state horizontal cache-to-cache transfers
US6553462B2 (en) Multiprocessor computer system with sectored cache line mechanism for load and store operations
KR19990072313A (ko) 명령어및데이터를위한배회상태를가지는캐시코히어런시프로토콜

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20080204

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee