KR100194253B1 - 메시 데이터 코히어런시 프로토콜 이용 방법 및 멀티프로세서 시스템 - Google Patents

메시 데이터 코히어런시 프로토콜 이용 방법 및 멀티프로세서 시스템 Download PDF

Info

Publication number
KR100194253B1
KR100194253B1 KR1019960013804A KR19960013804A KR100194253B1 KR 100194253 B1 KR100194253 B1 KR 100194253B1 KR 1019960013804 A KR1019960013804 A KR 1019960013804A KR 19960013804 A KR19960013804 A KR 19960013804A KR 100194253 B1 KR100194253 B1 KR 100194253B1
Authority
KR
South Korea
Prior art keywords
cache
state
data portion
snoop
bus devices
Prior art date
Application number
KR1019960013804A
Other languages
English (en)
Other versions
KR960042440A (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 KR960042440A publication Critical patent/KR960042440A/ko
Application granted granted Critical
Publication of KR100194253B1 publication Critical patent/KR100194253B1/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/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

버스(bus)를 통해 저장 장치에 접속된 다수의 버스 장치(a plurality of bus devices)를 갖는 멀티프로세서 시스템(multiprocessor system)에서, 다수의 버스 장치는 스누프 능력(snoop capability)을 갖고, 다수의 버스 장치는 제1 및 제2캐쉬(first and second caches)를 가지며, 다수의 버스 장치는 MESI 데이터 코히어런시 프로토콜(MESI data coherency protocol)을 이용하되, 본 시스템은 저장 장치로부터 다수의 버스 장치중 하나로 데이터 부분(data portion)을 판독하는 단계로서, 다수의 버스 장치중 하나에 연관된 제1캐쉬는 데이터 부분을 갖는 특수 배타적 상태(special exclusive state)에 연관되고, 다수의 버스 장치중 하나에 연관된 제2캐쉬는 다수의 버스 장치중 하나에 의해 개시하는 데이터 부분을 갖는 배타 상태에 연관하는 상기 판독 단계와, 상기 버스 장치중 하나에 의해, 데이터 부분에 대해 라이트 백 동작(write-back operation)을 개시하는 단계와, 제2캐쉬내에 미정의 스누프가 존재하는지의 여부를 판정하는 단계와, 제2캐쉬내에 미정의 스누프가 존재하지 않는 경우 특수 배타 상태를 변경된 상태로 변화시키는 단계를 제공한다. 제2캐쉬내에 미정의 스누프가 존재하는 경우, 미정의 스누프와 데이터 부분의 어드레스의 비교가 수행된다. 특수 배타 상태는 어드레스가 상이한 경우 변경된 상태로 변화된다.

Description

메시 데이터 코히어런시 프로토콜 이용 방법 및 멀티프로세서 시스템
제1도는 본 발명을 구현하기 위해 동작가능한 멀티프로세서 시스템을 도시한 도면.
제2도는 L1 및 L2 캐쉬 제어기를 도시한 도면.
제3도는 본 발명의 흐름도를 도시한 도면.
* 도면의 주요부분에 대한 부호의 설명
100 : 멀티프로세서 시스템 102 : 시스템 메모리
104 : 메모리 제어기 106, 108, 110 : 프로세싱 유닛
112, 114, 116 : L1 캐쉬 118, 120, 122 : L2 캐쉬
124 : 시스템 버스 126 : I/O 제어기
128 : I/O 장치
본 발명은 일반적인 데이터 프로세싱 시스템에 관한 것으로, 특히 멀티프로세서 시스템내에서 흐름 제어(flow control) 및 코히어런시(coherency)를 제공하는 시스템 및 방법에 관한 것이다.
공유 메모리를 이용하는 멀티프로세서 시스템에서, 데이터 일관성을 보장하기 위해 캐쉬 프로토콜(cache protocol)이 요구되지만, 그러나, 캐쉬의 존재는 투명(transparent)해야 한다. 이러한 시스템 내에서 다양한 프로토콜이 구현되어, 여기에는 라이트-스루 액션(write-through actions)(저장내용(stores)은 캐쉬 및 저장장치에 동시에 기록된다)과 라이트-백 액션(write-back actions)(저장 내용은 캐쉬에 기록되어, 캐쉬내의 라인이 보다 최근의 요구자를 위해 교체될 필요가 있거나 또는 다른 프로세서가 캐쉬된 라인을 요구하는 경우이면 스토어는 단지 저장장치에 기록된다)을 포함한다.
라이트 백 액션 프로토콜에서, 기록은 캐쉬에 대해 배타적으로 이루어질 수 있다. 그 다음에 캐쉬 제어 로직이 시스템 메모리에 라인을 라이트 백하거나 또는 라인을 폐기해야 하는지의 여부를 알 수 있도록 이들 라인은 변화되거나 또는 변경된 것으로서 표시되어야 한다. 변경된 상태는 M 비트로서 표시되며, 이것이 성능을 향상시키는데 그 이유는 변경되지 않은 라인은 시스템 메모리에 라이트 백될 필요가 없기 때문이다. 잘 알려진 프로토콜(MESI)은 이전에 개시된 바와 같은 M 비트, 라인이 단지 이러한 캐쉬내에 존재함을 표시하는 배타적(Exculsive)(E)비트, 라인이 다수의 사용자에 의해 한꺼번에 공유될 수 있음을 표시하는 공유(Shared)(S) 비트, 및 라인이 캐쉬내에서 이용불가능함을 표시하는 무효(Invalid) 비트(I)가 존재하는 경우에 통상 이용된다.
어떤 시스템에서는, 둘이상의 직렬 캐쉬가 이용될 수 있다.
예를 들면, (관통기록 캐쉬로서 구현된) 각 프로세서와 연관된 레벨1(L1) 캐쉬가 존재할 수 있다. L1 캐쉬는 액세스 시간 효율성(performance)을 최적화할 수 있도록 프로세서와 같은 칩상에 들어갈 수 있도록 한다. 프로세서 칩으로부터 떨어진 곳에 크고 느리지만, 주 시스템 메모리 저장 장치보다 빠른 레벨 2(L2) 캐쉬가 유지될 수 있다. 이러한 L2 캐쉬는 라이트 백 캐쉬로서 구현되고, L1 캐쉬내에 데이터의 수퍼세트(super-set)를 포함할 수 있다. L2 캐쉬는 L1 캐쉬보다 통상적으로 훨씬 크고, 각 캐쉬는 연관된 프로세서에 의해 가장 최근에 액세스되었던 라인 세트를 유지하고, 각 캐쉬에 대한 세트는 그의 크기에 비례한다.
L2 및 L1 캐쉬는 메시(MESI) 프로토콜을 이용하므로 각 캐쉬라인에 대해, 시스템내의 캐쉬 라인의 현재 상태를 표시하는 M, E, S, 또는 I 상태가 존재한다. L1 캐쉬는 시스템내에서 배타적 비트를 요구하지 않으며, 이 경우 MESI 상태를 변화시킴으로써 라인을 관리하는 것은 L2 캐쉬의 책임이다. 이들 시스템에 있어서, L2 에서 배타적으로 표시된 라인은 L1 에서 공유로 표시될 수 있다. 다른 프로세서가 이 라인의 복제본을 공유하도록 원하는 경우, L2 는 자신의 스누프응답을 통해 라인이 공유됨을 표시할 수 있고, 라인의 L2 복제본 상태를 공유로 변화시킨다. L1 라인 상태는 변화될 필요가 없으므로, L1 캐쉬는 라인 상태 변화에 간여될 필요가 없으며, 따라서 효율성이 증가된다.
스누피 버스 장치를 채용하는 시스템에서, 공유 버스에 접속된 각각의 버스 장치는 판독(read) 동작과 같은 동작을 모니터하여 요구된 데이터의 보다 최근의(통상 변경된) 복제본이 그 버스 장치의 캐쉬내에 포함되는지의 여부를 결정하고 이에 따라, 요구된 데이터의 변경된 복제본를 가장 최근의 버전으로 한다. 이것은 흔히 코이어런시 체킹(checking)으로서 칭해지며, 시스템은 시스템 메모리 또는 버스 장치중 하나가 가장 최근 버전의 복제본을 유지하는지의 여부에 관계없이, 요구된 데이터의 가장 최근의 유효한 버전이 요구 장치에 전송되도록 보장한다.
멀티프로세서 환경에서, 스누프 지연(latency)은 고정될 수 있는데, 이것은 프로세서가 시스템 버스상에 저장 요구를 하는 경우, 다른 모든 프로세서, 또는 버스 장치가 고정된 시간 주기내에 응답해야 함을 의미한다. 저장 요구가 라인 판독일 경우, 라인의 복제본을 갖는 다른 프로세서 또는 장치는 공유 또는 변경으로만 응답하도록 허용된다.(이 경우 프로세서는 라인의 배타적인 소유권을 유지하도록 허용되지 않는다.) 스누프 응답이 변경인 경우, 라인의 현재 상태를 소유하는 프로세서는 현재의 복제본을 요구자에 제공해야 하고, 스누피 버스 프로토콜에 따라, 자신의 라인 복제본의 상태를 공유 또는 무효로 변화시켜야 한다. L1 캐쉬가 스누프될 수 없거나, 또는 L1 캐쉬 스누프 응답이 스누피 버스의 고정된 응답 시간 요건을 충족시킬 수 없는 시스템에서, L2 캐쉬는 그 라인에 대해 임의의 프로세서가 저장(store)하기 전에 변경으로서 라인을 표시해야 한다.
본 방법에 의한 문제점을 프로세서가 L2 캐쉬내에서 배타적인 캐쉬 라인에 대해 저장을 행할 것인지를 결정하는 경우 도입되는 지연이 존재한다는 점이다. 보통, 프로세서는 L2 캐쉬가 데이터를 저장하기 전에 캐쉬 라인에 대해 변경으로 상태 변화를 개시(initiate)하는 것을 요구하도록 요구될 수 있다. 이것은 몇몇 사이클을 필요로 하는데 그 이유는 각 라인에 대한 MESI 상태는 비교적 느린 캐쉬 태그 어레이(cache tag array)내에 존재하기 때문이다. MESI 상태를 변화시키기 위해서, L2 캐쉬는 그의 상태를 결정하기 위해 판독되어야 하고 그다음에 변경된 상태를 반영하도록 갱신되어야 한다. 또한, 동작은 통상적으로 파이프라인(pipeline)되며, 이것이 지연을 증가시킨다. 전술한 내용의 결과로, 종래의 멀티프로세서 시스템내의 캐쉬 코히어런시의 성능에 있어 개선이 필요하다.
전술한 필요성은 멀티프로세서 시스템에서 프로세서에 연관된 L1 및 L2 캐쉬사이에 스누프 능력이 존재하는 고유 프로토콜(unique protocol)을 구현하는 본 발명에 의해 충족된다.
본 발명은 다수의 프로세서, 또는 입력/출력 장치등의 다른 버스 장치를 포함하는 멀티프로세서 데이터 프로세싱 시스템에서 구현될 수 있다. 각 버스 장치는 L1 및 L2 캐쉬에 연관되어 있다. 각 버스 장치는 시스템 버스 및 메모리 제어기를 통해 공통 시스템 메모리에 접속된다.
L2 캐쉬 제어기는 MESI 프로토콜을 사용하는 반면, L1 제어기는 배타적인 상태를 특수 배타적(Special Exclusive)(P) 상태로 교체한 변경된 MESI 프로토콜을 사용한다. 이러한 P 상태는 L1 캐쉬가 공유 상태에서 캐쉬 라인을 유지하고 라인이 L2 캐쉬내에서 배타적 상태에 있음을 L1 캐쉬에 표시한다.
본 발명의 동작은 다음과 같이 개시될 수 있다. 프로세서중의 하나는 시스템 메모리로부터 데이터 부분을 검색한다. 이 프로세서에 연관된 L2 캐쉬는 캐쉬 라인을 저장하고 L2 캐쉬내에서 한 비트를 세트시킴으로써 검색된 캐쉬 라인이 배타적 상태에 있음을 표시한다. L1 캐쉬는 캐쉬 라인을 또한 저장하고 검색된 캐쉬 라인에 대해 특수 배타적 상태를 세트시킬 것이다. 그후, 프로세서가 특수 배타로 표시된 라인에 대해 기록을 시도하는 경우, L1 캐쉬는 라인이 특수 배타로 표시되어 있다는 정보와 함께 라인 상태를 변경 (데이타 캐쉬 라인 요구 요청, 또는 DCLAIM)으로 변화시키도록 L2 에 대해 요구를 개시할 것이다. 본 발명의 일실시예에서, L2 캐쉬내에서 임의의 스누프 동작이 계속중인지의 여부에 대한 결정이 L2 캐쉬 제어기에서 이루어진다. 계속중인 스누프 동작이 없는 경우, DCLAIM 요구가 승인되고 L1, L2 캐쉬는 변경된 캐쉬 라인에 대해 변경 상태를 세트시킬 것이다. 그러나, L2 캐쉬내에 계속중인 스누프가 존재하는 경우, L2 캐쉬 제어기에 의해 수신된 하나 이상의 스누프 동작에 연관된 어드레스 비트와 변경된 캐쉬 라인의 어드레스간의 비교가 이루어질 것이다. 어드레스중 어느것도 동일하지 않으면, DCLAIM 요구가 승인되고, 변경 상태 비트는 변경된 캐쉬 라인에 대해 L1 및 L2 캐쉬내에서 세트된다. 그러나, L2 캐쉬 제어기내의 스누프 동작이 변경된 캐쉬라인의 어드레스와 매치(match)되는 경우, DCLAIM 요구는 거절되고 L1 캐쉬는 그리고나서 다른 수단을 통해 캐쉬 라인의 소유권을 얻도록 요구된다.
전술한 내용은 다음의 본 발명의 상세한 설명이 보다 잘 이해될 수 있도록 본 발명의 특성 및 기술적인 장점을 대강 나타내었다. 본 발명의 청구 범위의 주제를 형성하는 본 발명의 부가적인 특성 및 장점이 기술될 것이다.
본 발명과, 본 발명의 장점의 보다 완전한 이해를 위해, 다음의 설명에 대한 참조는 첨부되는 도면과 함께 가능해질 것이다.
다음의 설명에서, 본 발명의 완전한 이해를 제공하기 위해서 특징의 워드 또는 바이트 길이와 같은 다수의 특정 세부사항이 개시된다. 그러나, 당 분야에서 통상의 지식을 가진자라면 이러한 특정의 세부사항 없이도 본 발명이 실행될 수 있음이 명백하다. 다른 사례에서, 잘 알려진 회로는 불필요한 세부사항으로 본 발명이 불명료하지 않도록 블록도의 형태로 도시되었다. 대부분의 경우, 타이밍 조건등에 대한 세부사항등은 본 발명의 완전한 이해를 얻는 데에는 불필요할 뿐 아니라 당 분야에서 통상의 지식을 가진자의 기술범위내에 있으므로 생략되었다.
이제 도면을 참조하면 도시된 구성요소는 스케일 단위까지 도시되어 있지는 않으며 동일한 또는 유사한 성분은 몇가지 도면을 통해 동일한 참조부호로 도시되어 있다.
이제 제1도를 참조하면, 본 발명을 유용하게 구체화하는 데이터 프로세싱 시스템이 기술될 것이다. 멀티프로세서 시스템(100)은 동작상 시스템 버스(124)에 접속된 다수의 프로세싱 유닛(106, 108, 110)을 포함한다. 임의의 수의 프로세싱 유닛이 시스템(100)내에서 이용될 수 있음에 주의해야 한다. 시스템 버스(124)에, 시스템 메모리(102)에 대해 액세스를 제어하는 메모리 제어기(104)가 또한 접속된다. 메모리 제어기(104)는 I/O 장치(128)에 접속되는 I/O 제어기(126)에 또한 접속된다. 프로세싱 유닛(106,108,110), I/O 제어기(126), 및 I/O 장치(128)는 본 명세서에서 모두 버스 장치로서 칭해질 것이다. 도시된 바와 같이, 각 프로세서 유닛(106, 108, 110)은 각각 프로세서와 L1 캐쉬(112, 114, 116)를 포함할 수 있다. L1 캐쉬는 각각의 프로세서와 동일한 칩상에 위치될 수 있다. L2 캐쉬(118, 120, 122)는 프로세싱 유닛(106, 108, 110)에 각각 접속된다. 이들 L2 캐쉬는 자신이 부착되는 프로세서를 통해 시스템 버스(12)에 접속된다.
앞서 언급한 바와 같이, 각 L1 및 L2 캐쉬쌍은 직렬로 관계된다. 각 L1 캐쉬는 라이트 스루 캐쉬(write-through cache)로서 구현되는 반면, 크고 느린 L2 캐쉬는 라이트 백 캐쉬(write-back cache)로서 구현된다. L1 및 L2 캐쉬 제어기는 프로세싱 유닛의 일부로서 물리적으로 구현되고, 프로세싱 유닛에 대해 내부적인 버스를 통해 접속된다. L2 제어기는 칩에서 분리되어 있을 수 있으며, 본 발명에서도 역시 적용될 수 있다.
제2도를 참조하면, 임의의 L2 캐쉬(118, 120, 122)에 대한 제어기(20)와 임의의 L1 캐쉬(112, 114, 116)에 대한 제어기(21)가 도시되어 있다. L2 캐쉬 제어기(20)는 MESI 상태 프로토콜(22)을 사용하는 반면, L1 캐쉬 제어기(21)는 변경된 MESI 상태 프로토콜(23)을 이용한다. L1 및 L2 캐쉬 제어기는 제각기의 캐쉬 디렉토리 라인 엔트리내에 라인 MESI 상태 정보를 저장한다. 앞서 기술된 바와 같이, L2 캐쉬 제어기(20)는 표준 4 상태 MESI 프로토콜을 사용한다. L1 캐쉬제어기(21)는 MESI 상태에 대한 표준 의미를 또한 구현한다. 배타적 또는 특수 배타적 상태는 L1 캐쉬에 의해 공유 상태와 동일하게 처리되나, 이 상태 정보는 L1 DCLAIM 요구상에서 성능을 향상시키기 위해 L2 캐쉬 제어기(20)에 의해 이용된다.
또한, L2 캐쉬 제어기(20)는 다른 버스 장치로부터 수신된 스누프를 보관하기 위한 스누프 계속중인 어드레스 레지스터(snoop pending address register)(24)를 포함한다. 스누핑은 당 분야에서 잘 알려져 있으므로 본 명세서에서 더 기술될 필요가 없다.
L1 캐쉬 제어기(21)내에서, 특수 배타적 상태(P)가 구현되는데, 이것은 연관된 L1 캐쉬가 공유 상태에서 캐쉬 라인을 유지하나, 연관된 L2 캐쉬내에서 라인이 배타적 상태로 존재함을 표시한다. 이 특수 배타적 상태는 프로세서에 의해 개시된 저장 동작을 요구하는 동작이, 변경된 상태에 대해 L1 요구가 승인될 것임을 본질적으로 표시한다. 이러한 이유는 캐쉬 라인이 L2 캐쉬내에서 배타적 상태로 유지되는데, 즉, 다른 버스 장치로부터 계속중인 스누프에 의해 지연되지 않는 경우에 저장이 허용될 것이기 때문이다.
종래 기술에서, 라인이 공유로서 표시되는, 자신의 연관된 L1 캐쉬내에서 프로세서가 라인을 저장하기를 원하는 경우, 프로세서는 먼저 L2 캐쉬로부터 변경된 상태로 캐쉬 라인 상태의 변화를 요구해야 한다. 이 동작은 DCLAIM 요구로서 알려져 있다. DCLAIM 요구는 L2 캐쉬 제어기로 전송되어, 이 L2 캐쉬 제어기는 자신의 연관된 디렉토리를 질의(intorrogate)하고, 배타적 상태를 변경된 상태로 변화시킬 것이다. DCLAIM 요구에 대한 응답은 라인의 소유권(ownership)을 L1 캐쉬에 대해 긍정응답할 것이고, 이 L1 캐쉬는 자신의 상태를 변경으로 또한 세트시킬 것이다. (예를 들면 스누프로 인해) L1 캐쉬의 소유권에 대해 라인이 이용가능하지 않은 경우, DCLAIM 요구는 거절될 것이고, L1 캐쉬는 저장 동작이 종료하도록 허용되기 전에 라인의 소유권을 재획득(regain) 해야 한다.
본 발명에서, 구현된 특수 배타적 상태는 성능면에서 중대한 장점을 제공하는데 그 이유는 DCLAIM 동작이 종래 기술에 대해 앞서 언급한 느린 디렉토리 질의 절차에서 L2 캐쉬 MESI 상태를 체크할 필요가 없기 때문이다. 대신에, DCLAIM 요구는 단지 L2 캐쉬내에서 캐쉬라인에 대해 임의의 계속중인 스누프가 존재하지 않음을 자신에게 확인할 필요가 있다.
제3도를 참조하면, 본 발명의 구현을 예시하는 흐름도가 도시되어 있다. 제3도에서의 흐름도는 시스템(100)에서 동작하는 전체 데이터 코히어런시 흐름의 일부가 될 수 있다. 단계(301)에서, 프로세서(106)는 메모리 제어기(104) 및 시스템 버스(124)를 통해 시스템 메모리(102)로부터, 데이터 부분, 즉, 캐쉬 라인을 검색할 수 있다. 그후, 단계(302)에서, L2 캐쉬(118)는 캐쉬 라인을 저장하고 배타적 상태 비트를 캐쉬 라인에 연관시킬 것이다. 이 배타적 상태 비트가 세트되는데 그 이유는 프로세서(106)가 요구된 캐쉬 라인의 유일한 소유자이기 때문이다.
단계(303)에서, L1 캐쉬(112)는 캐쉬 라인을 또한 저장할 것이고 저장된 캐쉬 라인과 함께 특수 배타적(P) 상태를 세트시킬 것이다.
그후, 프로세서(106)는 이 캐쉬 라인에 저장하도록 시도할 수 있다(단계(304)). 단계(306)에서, L1 캐쉬(112)는 응답으로 L2 캐쉬(118)에 DCLAIM 요구를 개시할 것이다. 단계(307)에서, L2 제어기 로직(20)은 L2 캐쉬 제어기(20)의 레지스터(24)에 계속중인 스누프 동작이 존재하는지의 여부를 판정할 것이다. 계속중인 스누프가 존재하지 않는 경우, 프로세스는 단계(311)로 진행하여 DCLAIM 요구를 승인할 것이다. 그러나, 계속중인 스누프가 존재하는 경우, 프로세스는 단계(308)로 진행하여 하나 이상의 스누프 동작중 임의의 하나에 연관된 어드레스 비트와 변경된 캐쉬 라인의 어드레스를 비교할 것이다. 스누프의 임의의 어드레스가 변경된 캐쉬 라인의 어드레스와 매치되는 경우, 프로세스는 단계(309)로 진행하여 DCLAIM 요구를 거절할 것이다. 그후, 단계(310)에서, L1 캐쉬는 저장 동작을 종료하도록 허용되기 전에 캐쉬의 소유권을 재획득하도록 요구된다.
단계(308)에서, 캐쉬 라인 어드레스가 임의의 스누프 어드레스도 비교하지 않는 것으로 판정되면, 프로세스는 DCLAIM 요구가 승인되는 단계(311)로 진행할 것이다. 그후, 단계(312)에서, 변경된 상태 비트가 변경된 캐쉬 라인에 대한 L1 및 L2 캐쉬내에서 개시된다. 이 지점에서, 프로세서는 캐쉬 라인에 대한 저장을 종료할 것이다(단계(313)).
상기한 절차에 있어서, 단계(307)를 구현하는 것이 반드시 필요하지는 않다는 점에 주의해야 한다. 따라서, 선택사양적으로, 단지 단계(308)만이 단계(306)후에 구현될 수 있다.
전술한 하드웨어를 염두하면, 본 발명의 프로세스 관련 특성을 설명하는 것이 가능하다. 본 발명의 이들 특성을 보다 명확하게 설명하기 위해서, 다른 종래의 특성의 설명은 당 분야에서 통상의 지식을 가진자에게 명백할 것이므로 생략된다. 당 분야에서 통상의 지식을 가진자라면 멀티유저, 멀티프로세서 운영 체제에 익숙할 것이고, 특히 가상 메모리, 프로세서 스케줄링, 프로세스 및 프로세서를 위한 동기화 설비, 메시지 전송, 통상의 장치 드라이버, 터미널 및 네트워크 지원, 시스템 초기화, 인터럽트 관리, 시스템 호출 설비, 및 행정 설비를 포함하는 메모리 관리를 위한 이러한 운영 체제의 요건에 익숙할 것이다.
비록 본 발명 및 그의 장점이 상세하게 기술되었다 하더라도, 첨부되는 청구 범위에 의해 한정되는 바와 같이 본 발명의 정신 및 범위로부터 벗어나지 않고 각종 변화, 대체 및 변경이 가능함을 이해할 것이다.

Claims (14)

  1. 버스(a bus)를 통해 저장 장치에 접속된 다수의 버스 장치(a plurality of bus devices)를 갖는 멀티프로세서 시스템(multiprocessor system)에서, 상기 다수의 버스 장치는 스누프 능력(snoop capability)을 갖고, 상기 다수의 버스 장치는 제1 및 제2캐쉬(first and second caches)를 가지며, 상기 다수의 버스 장치는 메시 데이터 코히어런시 프로토콜(MESI data coherency protocol)을 이용하는 방법에 있어서, 상기 저장 장치로부터 상기 다수의 버스 장치중 하나로 데이터 부분(a data portion)을 판독하는 단계로서, 상기 다수의 버스 장치중 하나에 연관된 상기 제1캐쉬는 제1상태(a first state)를 상기 데이터 부분에 연관시키고, 상기 다수의 버스 장치중 하나에 연관된 상기 제2캐쉬는 제2상태(a second state)를 상기 데이터 부분에 연관 시키는 상기 판독 단계와; 상기 다수의 버스 장치중 하나에 의해, 상기 데이터 부분에 대해 라이트 백 동작(a write-back operation)을 개시(initiate)하는 단계와; 상기 제2캐쉬내에 임의의 계속중인 스누프 요구(pending snoop request)가 존재하는지의 여부를 판정하는 단계와; 상기 제2캐쉬내에 계속중인 스누프가 존재하지 않는 경우 상기 제1상태를 제3상태(a third state)로 변화시키는 단계를 포함하는 MESI 데이터 코히어런시 프로토콜 이용 방법.
  2. 제1항에 있어서, 상기 제2캐쉬내에 계속중인 스누프 요구가 존재하는 경우, 상기 계속중인 스누프 요구 및 상기 데이터 부분의 어드레스를 비교하는 단계와; 상기 어드레스가 상이한 경우 상기 특수 제1상태를 상기 제3상태로 변화시키는 단계를 더 포함하는 MESI 데이터 코히어런시 프로토콜 이용 방법.
  3. 제1항에 있어서, 상기 제1상태는 특수 배타적 상태(a special exclusive state)이고 상기 제3상태는 변경된 상태(a modified state)인 MESI 데이터 코히어런시 프로토콜 이용 방법.
  4. 제1항에 있어서, 상기 제2캐쉬에 연관된 상기 제2상태를 상기 제3상태로 변화시키는 단계를 더 포함하는 MESI 데이터 코히어런시 프로토콜 이용 방법.
  5. 제1항에 있어서, 상기 다수의 버스 장치중 하나에 의해, 상기 라이트 백 동작전에 상기 데이터 부분을 변경시키는 단계를 더 포함하는 MESI 데이터 코히어런시 프로토콜 이용 방법.
  6. 제2항에 있어서, 상기 다수의 버스 장치중 하나에 의해, 상기 데이터 부분에 대해 라이트 백 동작을 개시하는 상기 개시 단계에 응답하여, 상기 제1캐쉬로부터 상기 제2캐쉬로 DCLAIM 요구(a DCLIAM request)를 개시하는 단계를 더 포함하는 MESI 데이터 코히어런시 프로토콜 이용 방법.
  7. 제6항에 있어서, 상기 변화시키는 단계는 상기 DCLAIM 요구를 승인(approve)하는 단계를 더 포함하는 MESI 데이터 코히어런시 프로토콜 이용 방법.
  8. 제6항에 있어서, 상기 미정의 스누프 요구의 어드레스가 상기 데이터 부분의 어드레스와 매치되는 경우 상기 DCLAIM 요구를 거절(reject)하는 단계와; 상기 제1캐쉬에 의해, 상기 데이터 부분의 소유권 획득(a gaining of ownership)을 개시하는 단계를 더 포함하는 MESI 데이터 코히어런시 프로토콜 이용 방법.
  9. 시스템 메모리(system memory)와; 상기 시스템 메모리에 접속된 메모리 제어기(a memory controller)와; 다수의 프로세서(a plurality of processors)와 상기 다수의 프로세서와 상기 메모리 제어기를 결합하는 시스템 버스(a system bus)와; 상기 다수의 프로세서중 하나에 연관된 제1 및 제2캐쉬(first and second caches)로서, 상기 제1캐쉬는 라이트 백 캐쉬(a write-back cache)이고, 상기 제2캐쉬는 라이트 스루 캐쉬(a write-through cache)이며, 상기 제2캐쉬는 MESI 프로토콜을 구현하고, 상기 제1캐쉬는 특수 배타적 상태를 구비하는 변경된 MESI 프로토콜을 구현하는 상기 제1 및 제2캐쉬와; 상기 다수의 프로세서중 하나에 의해, 상기 데이터 부분에 대해 라이트 백 동작을 개시하기 위한 수단과, 상기 제1캐쉬내에 임의의 계속중인 스누프 요구가 존재하는지의 여부를 판정하기 위한 캐쉬 제어 로직 회로(cache control logic circuitry)와; 상기 제2캐쉬내에 상기 계속중인 스누프 요구가 존재하지 않는 경우 상기 제1캐쉬내의 상기 특수 배타적 상태를 변경된 상태로 변경시키기 위한 캐쉬 제어 로직 회로를 포함하는 멀티프로세서 시스템.
  10. 제9항에 있어서, 상기 제2캐쉬내에 계속중인 스누프 요구가 존재하는 경우 상기 계속중인 스누프의 어드레스와 상기 데이터 부분을 비교하기 위한 캐쉬 제어 로직 회로와; 상기 어드레스가 상이한 경우 상기 특수 배타적 상태를 변경된 상태로 변화시키기 위한 캐쉬 제어 로직 회로를 더 포함하는 멀티프로세서 시스템.
  11. 제9항에 있어서, 상기 제2캐쉬에 연관된 상기 배타적 상태를 변경된 상태로 변화시키기 위한 캐쉬 제어 로직 회로를 더 포함하는 멀티프로세서 시스템.
  12. 제9항에 있어서, 상기 다수의 프로세서중 하나에 의해, 상기 라이트 백 동작전에 상기 데이터 부분을 변경시키기 위한 수단을 더 포함하는 멀티프로세서 시스템.
  13. 제10항에 있어서, 상기 다수의 프로세서중 하나에 의해, 상기 데이터 부분에 대해 라이트 백 동작을 개시하는 상기 개시 단계에 응답하여, 상기 제1캐쉬로부터 상기 제2캐쉬로 DCLAIM 요구를 개시하기 위한 캐쉬 제어 로직 회로를 더 포함하는 멀티프로세서 시스템.
  14. 제9항에 있어서, 상기 계속중인 스누프 요구의 어드레스가 상기 데이터 부분의 어드레스와 매치되는 경우 상기 DCLAIM 요구를 거절하기 위한 캐쉬 제어 로직 회로와; 상기 제1캐쉬에 의해, 상기 데이터 부분의 소유권 획득을 개시하기 위한 수단을 더 포함하는 멀티프로세서 시스템.
KR1019960013804A 1995-05-17 1996-04-30 메시 데이터 코히어런시 프로토콜 이용 방법 및 멀티프로세서 시스템 KR100194253B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/442,740 US5623632A (en) 1995-05-17 1995-05-17 System and method for improving multilevel cache performance in a multiprocessing system
US08/442,740 1995-05-17
US8/442,740 1995-05-17

Publications (2)

Publication Number Publication Date
KR960042440A KR960042440A (ko) 1996-12-21
KR100194253B1 true KR100194253B1 (ko) 1999-06-15

Family

ID=23757963

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019960013804A KR100194253B1 (ko) 1995-05-17 1996-04-30 메시 데이터 코히어런시 프로토콜 이용 방법 및 멀티프로세서 시스템

Country Status (4)

Country Link
US (1) US5623632A (ko)
EP (1) EP0743601A3 (ko)
JP (1) JPH08328957A (ko)
KR (1) KR100194253B1 (ko)

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5740399A (en) * 1995-08-23 1998-04-14 International Business Machines Corporation Modified L1/L2 cache inclusion for aggressive prefetch
US5778438A (en) * 1995-12-06 1998-07-07 Intel Corporation Method and apparatus for maintaining cache coherency in a computer system with a highly pipelined bus and multiple conflicting snoop requests
DE69705072T2 (de) * 1996-01-25 2002-03-21 Unisys Corp Verfahren zur ausführung von lese- und schreibbefehlen in einem mehrstufigen verteilten datenverarbeitungssystem
US6223260B1 (en) * 1996-01-25 2001-04-24 Unisys Corporation Multi-bus data processing system in which all data words in high level cache memories have any one of four states and all data words in low level cache memories have any one of three states
US5752265A (en) * 1996-06-13 1998-05-12 Compaq Computer Corporation Memory accessing in a multi-processor system using snooping
US5926830A (en) * 1996-10-07 1999-07-20 International Business Machines Corporation Data processing system and method for maintaining coherency between high and low level caches using inclusive states
US6052762A (en) * 1996-12-02 2000-04-18 International Business Machines Corp. Method and apparatus for reducing system snoop latency
US6658536B1 (en) * 1997-04-14 2003-12-02 International Business Machines Corporation Cache-coherency protocol with recently read state for extending cache horizontally
US6374330B1 (en) * 1997-04-14 2002-04-16 International Business Machines Corporation Cache-coherency protocol with upstream undefined state
US6026470A (en) * 1997-04-14 2000-02-15 International Business Machines Corporation Software-managed programmable associativity caching mechanism monitoring cache misses to selectively implement multiple associativity levels
US5943685A (en) * 1997-04-14 1999-08-24 International Business Machines Corporation Method of shared intervention via a single data provider among shared caches for SMP bus
US5996049A (en) * 1997-04-14 1999-11-30 International Business Machines Corporation Cache-coherency protocol with recently read state for data and instructions
US6061755A (en) * 1997-04-14 2000-05-09 International Business Machines Corporation Method of layering cache and architectural specific functions to promote operation symmetry
US6112282A (en) * 1997-06-24 2000-08-29 Sun Microsystems, Inc. Apparatus for atomic locking-accessing-unlocking of a shared resource
US6115795A (en) * 1997-08-06 2000-09-05 International Business Machines Corporation Method and apparatus for configurable multiple level cache with coherency in a multiprocessor system
US6199143B1 (en) * 1997-11-26 2001-03-06 International Business Machines Corporation Computing system with fast data transfer of CPU state related information
US6237064B1 (en) * 1998-02-23 2001-05-22 Intel Corporation Cache memory with reduced latency
US6526480B1 (en) 1998-12-10 2003-02-25 Fujitsu Limited Cache apparatus and control method allowing speculative processing of data
JP3506024B2 (ja) * 1998-12-10 2004-03-15 日本電気株式会社 情報処理装置
US6405322B1 (en) 1999-04-13 2002-06-11 Hewlett-Packard Company System and method for recovery from address errors
US6408362B1 (en) 1999-06-24 2002-06-18 International Business Machines Corporation Data processing system, cache, and method that select a castout victim in response to the latencies of memory copies of cached data
JP2001297035A (ja) * 2000-04-11 2001-10-26 Hitachi Ltd 情報処理装置
US6745297B2 (en) 2000-10-06 2004-06-01 Broadcom Corporation Cache coherent protocol in which exclusive and modified data is transferred to requesting agent from snooping agent
US6848071B2 (en) 2001-04-23 2005-01-25 Sun Microsystems, Inc. Method and apparatus for updating an error-correcting code during a partial line store
US6918012B2 (en) * 2001-08-28 2005-07-12 Hewlett-Packard Development Company, L.P. Streamlined cache coherency protocol system and method for a multiple processor single chip device
US6976132B2 (en) * 2003-03-28 2005-12-13 International Business Machines Corporation Reducing latency of a snoop tenure
US7383388B2 (en) 2004-06-17 2008-06-03 International Business Machines Corporation Method for storing data
US9727468B2 (en) * 2004-09-09 2017-08-08 Intel Corporation Resolving multi-core shared cache access conflicts
US7356650B1 (en) * 2005-06-17 2008-04-08 Unisys Corporation Cache apparatus and method for accesses lacking locality
US20070113031A1 (en) * 2005-11-16 2007-05-17 International Business Machines Corporation Memory management system and method for storing and retrieving messages
US7338135B1 (en) * 2006-08-11 2008-03-04 Hall David R Holder for a degradation assembly
US8122195B2 (en) 2007-12-12 2012-02-21 International Business Machines Corporation Instruction for pre-fetching data and releasing cache lines
US9477600B2 (en) 2011-08-08 2016-10-25 Arm Limited Apparatus and method for shared cache control including cache lines selectively operable in inclusive or non-inclusive mode
US20130179642A1 (en) * 2012-01-10 2013-07-11 Qualcomm Incorporated Non-Allocating Memory Access with Physical Address
GB2503437A (en) * 2012-06-26 2014-01-01 Ibm Fetching cache lines into a plurality of caches with different states
GB2539429B (en) 2015-06-16 2017-09-06 Advanced Risc Mach Ltd Address translation
GB2539435B8 (en) 2015-06-16 2018-02-21 Advanced Risc Mach Ltd Data processing memory access control, in which an owning process for a region of memory is specified independently of privilege level
GB2539436B (en) 2015-06-16 2019-02-06 Advanced Risc Mach Ltd Secure initialisation
GB2539428B (en) 2015-06-16 2020-09-09 Advanced Risc Mach Ltd Data processing apparatus and method with ownership table
GB2539433B8 (en) 2015-06-16 2018-02-21 Advanced Risc Mach Ltd Protected exception handling
CN105488012B (zh) * 2015-12-09 2021-05-18 浪潮电子信息产业股份有限公司 一种基于独占数据的一致性协议设计方法
US10621090B2 (en) * 2017-01-12 2020-04-14 International Business Machines Corporation Facility for extending exclusive hold of a cache line in private cache
US10521351B2 (en) 2017-01-12 2019-12-31 International Business Machines Corporation Temporarily suppressing processing of a restrained storage operand request

Family Cites Families (10)

* 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
JPH02253356A (ja) * 1989-03-28 1990-10-12 Toshiba Corp 階層キャッシュメモリ装置とその制御方式
US5113514A (en) * 1989-08-22 1992-05-12 Prime Computer, Inc. System bus for multiprocessor computer system
US5297269A (en) * 1990-04-26 1994-03-22 Digital Equipment Company Cache coherency protocol for multi processor computer system
ATE170642T1 (de) * 1990-06-15 1998-09-15 Compaq Computer Corp Mehrstufeneinschluss in mehrstufigen cache- speicherhierarchien
US5325503A (en) * 1992-02-21 1994-06-28 Compaq Computer Corporation Cache memory system which snoops an operation to a first location in a cache line and does not snoop further operations to locations in the same line
US5394555A (en) * 1992-12-23 1995-02-28 Bull Hn Information Systems Inc. Multi-node cluster computer system incorporating an external coherency unit at each node to insure integrity of information stored in a shared, distributed memory
US5524233A (en) * 1993-03-31 1996-06-04 Intel Corporation Method and apparatus for controlling an external cache memory wherein the cache controller is responsive to an interagent communication for performing cache control operations
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
US5526510A (en) * 1994-02-28 1996-06-11 Intel Corporation Method and apparatus for implementing a single clock cycle line replacement in a data cache unit

Also Published As

Publication number Publication date
KR960042440A (ko) 1996-12-21
JPH08328957A (ja) 1996-12-13
US5623632A (en) 1997-04-22
EP0743601A2 (en) 1996-11-20
EP0743601A3 (en) 1997-09-24

Similar Documents

Publication Publication Date Title
KR100194253B1 (ko) 메시 데이터 코히어런시 프로토콜 이용 방법 및 멀티프로세서 시스템
US7032074B2 (en) Method and mechanism to use a cache to translate from a virtual bus to a physical bus
JP3533355B2 (ja) キャッシュ・メモリ・システム
US7814279B2 (en) Low-cost cache coherency for accelerators
EP0817073B1 (en) A multiprocessing system configured to perform efficient write operations
US6615319B2 (en) Distributed mechanism for resolving cache coherence conflicts in a multi-node computer architecture
US5822763A (en) Cache coherence protocol for reducing the effects of false sharing in non-bus-based shared-memory multiprocessors
US6324622B1 (en) 6XX bus with exclusive intervention
US7305522B2 (en) Victim cache using direct intervention
US7305523B2 (en) Cache memory direct intervention
US5848254A (en) Multiprocessing system using an access to a second memory space to initiate software controlled data prefetch into a first address space
US6321296B1 (en) SDRAM L3 cache using speculative loads with command aborts to lower latency
US7991928B2 (en) Retry mechanism
US7549025B2 (en) Efficient marking of shared cache lines
US20030005237A1 (en) Symmetric multiprocessor coherence mechanism
US20020099913A1 (en) Method and apparatus for adaptively bypassing one or more levels of a cache hierarchy
JPH0247756A (ja) 多重プロセツサ・システム用書込み共用キヤツシユ回路
US6574710B1 (en) Computer cache system with deferred invalidation
US5559987A (en) Method and apparatus for updating a duplicate tag status in a snoop bus protocol based computer system
US20060277366A1 (en) System and method of managing cache hierarchies with adaptive mechanisms
JPH11272559A (ja) マルチレベル・メモリ・ハイアラ―キを含むデ―タ処理システムのためのキャッシュ・コヒ―レンシ・プロトコル
JPH11506852A (ja) 多数のバスマスタと共用レベル2キャッシュとを備える多レベルキャッシュシステムでのキャッシュスヌーピングオーバーヘッドの低減
US6502168B1 (en) Cache having virtual cache controller queues
US5713004A (en) Cache control for use in a multiprocessor to prevent data from ping-ponging between caches
JP2000067024A (ja) 分散共有メモリマルチプロセッサシステムのための分割疎ディレクトリ

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: 20080204

Year of fee payment: 10

LAPS Lapse due to unpaid annual fee