KR100330934B1 - 정밀 모드 및 비정밀 모드를 갖는 호버링(h) 상태를 포함하는 캐시 일관성 프로토콜 - Google Patents

정밀 모드 및 비정밀 모드를 갖는 호버링(h) 상태를 포함하는 캐시 일관성 프로토콜 Download PDF

Info

Publication number
KR100330934B1
KR100330934B1 KR1019990004879A KR19990004879A KR100330934B1 KR 100330934 B1 KR100330934 B1 KR 100330934B1 KR 1019990004879 A KR1019990004879 A KR 1019990004879A KR 19990004879 A KR19990004879 A KR 19990004879A KR 100330934 B1 KR100330934 B1 KR 100330934B1
Authority
KR
South Korea
Prior art keywords
cache
data
update
mode
state
Prior art date
Application number
KR1019990004879A
Other languages
English (en)
Other versions
KR19990072595A (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 KR19990072595A publication Critical patent/KR19990072595A/ko
Application granted granted Critical
Publication of KR100330934B1 publication Critical patent/KR100330934B1/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
    • G06F12/0833Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means in combination with broadcast means (e.g. for invalidation or updating)

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

본 발명은 정밀 모드 및 비정밀 모드를 갖는 호버링(Hovering: H) 상태를 포함하는 캐시 일관성 프로토콜에 관한 것이다. 제1 데이터 항목은 그 데이터 항목의 어드레스를 표시하는 어드레스 태그(address tag)와 관련해서 제1 캐시에 기억된다. 제1 캐시의 일관성 표시자는 제1 데이터 항목이 유효함을 표시하는 제1 상태로 설정된다. 일관성 표시자가 제1 상태로 설정되어 있는 동안 다른 캐시가 상기 어드레스 태그에 의해서 표시되는 어드레스로 저장 의사(intent)를 표시하는 것에 응답하여, 제1 캐시의 일관성 표시자는 그 어드레스 태그가 유효하고 제1 데이터 항목이 무효한 것을 표시하는 제2 상태로 갱신된다. 이후에 그 어드레스 태그에 의해 표시되는 어드레스와 관련되며 제2 데이터 항목을 포함하는 원격 발신된 데이터 전송의 검출에 응답하여, 제1 캐시를 갱신할지 여부의 결정이 제1 캐시의 동작 모드에 따라서 행해진다. 제1 캐시를 갱신하는 결정에 응답하여, 어드레스 태그와 관련해서 제2 데이터 항목을 기억하여 제1 데이터 항목을 대체하며, 일관성 표시자는 제2 데이터 항목이 유효임을 표시하는 제3 상태로 갱신된다. 일 실시예에 있어서, 제1 캐시의 동작 모드는 캐시의 갱신이 항상 수행되는 정밀 모드(precise mode)와 캐시의 갱신이 선택적으로 수행되는 비정밀 모드(imprecise mode)를 포함한다. 상기 제1 캐시의 동작 모드는 하드웨어나 소프트웨어 중 어느 하나에 의해 설정될 수 있다.

Description

정밀 모드 및 비정밀 모드를 갖는 호버링(H) 상태를 포함하는 캐시 일관성 프로토콜{CACHE COHERENCY PROTOCOL INCLUDING A HOVERING(H) STATE HAVING A PRECISE MODE AND AN IMPRECISE MODE}
본 발명은 일반적으로 데이터 처리 방법 및 시스템에 관한 것으로, 특히 멀티프로세서 데이터 처리 시스템에서 캐시의 일관성(cache coherency)을 유지하기 위한 방법 및 시스템에 관한 것이다. 보다 구체적으로 본 발명은 제1 캐시 및 제2 캐시를 연결하는 상호 접속망(interconnect)을 통하여 제2 캐시가 유효 데이터를 독립적으로 전송하는 것에 응답하여 제1 캐시가 그 유효 데이터로 갱신되는 것을 가능하게 하는 호버링(Hovering: H) 상태를 포함하는 멀티프로세서 데이터 처리 시스템용 캐시 일관성 프로토콜에 관한 것이다.
종래의 대칭형 멀티프로세서(SMP) 데이터 처리 시스템에서는, 모든 프로세서가 일반적으로 동일하다. 즉 공통된 명령 세트 및 통신 프로토콜을 이용하는 모든 프로세서는 동일한 하드웨어 구조를 가지며, 일반적으로 동일한 메모리 계층을 가지고 있다. 예를 들어, 종래의 SMP 데이터 처리 시스템은 시스템 메모리와, 각각이 하나의 프로세서 및 하나 이상의 레벨의 캐시 메모리를 구비한 복수 개의 처리 소자와, 이들 처리 소자를 상호 연결 및 시스템 메모리에 연결하는 시스템 버스를 포함한다. SMP 데이터 처리 시스템에서 유효한 실행 결과를 얻기 위해서는, 일관성 있는 메모리 계층을 유지하는 것, 즉 모든 프로세서에 메모리의 내용에 대하여 하나의 관점으로 볼 수 있도록 제공하는 것이 중요하다.
일관성 있는 메모리 계층이 MESI 프로토콜과 같은 선택된 메모리 일관성 프로토콜의 사용을 통하여 유지된다. MESI 프로토콜에서는 일관성 상태의 표시가 적어도 모든 상위 레벨(캐시) 메모리의 각 일관성 그래뉼(coherency granule)(예를 들어, 캐시 라인 또는 섹터)과 관련해서 저장된다. 각 일관성 그래뉼은 변경 상태(M; Modified), 배타적 상태(E; Exclusive), 공유 상태(S; Shared), 또는 무효 상태(I; Invalid)의 4 가지 상태 중 하나의 상태를 가질 수 있는데, 이 상태는 캐시 디렉토리에서 2 비트로 표시된다. 변경 상태(M)는 일관성 그래뉼이 그 변경된 일관성 그래뉼을 기억하고 있는 캐시에서만 유효하고, 또한 그 변경된 일관성 그래뉼의 값이 시스템 메모리에 기록되지 않은 것을 표시한다. 일관성 그래뉼이 배타적 상태(E)로서 표시되면, 그 일관성 그래뉼은 메모리 계층의 해당 레벨의 모든 캐시 중에서 배타적 상태에 있는 일관성 그래뉼을 갖는 캐시에만 존재한다. 그러나, 배타적 상태에 있는 데이터는 시스템 메모리와 일치하고 있다. 일관성 그래뉼이 캐시 디렉토리에서 공유 상태(S)로 표시되는 경우에, 그 일관성 그래뉼은 관련된 캐시 및 동일 레벨의 메모리 계층에서 적어도 하나의 다른 캐시에 존재한다. 그 일관성 그래뉼의 모든 카피(copy)는 시스템 메모리와 일치한다. 마지막으로, 무효 상태(I)는 일관성 그래뉼과 관련된 데이터 및 어드레스 태그(address tag) 모두가 무효임을 표시한다.
각 일관성 그래뉼(예를 들어, 캐시 라인)이 설정되는 상태는 캐시 라인의 이전 상태와 요구 프로세서(requesting processor)에 의해 요구된 메모리 액세스 타입의 모두에 의존한다. 따라서, 멀티프로세서 데이터 처리 시스템에서 메모리 일관성을 유지하기 위해서는, 프로세서가 메모리 위치를 판독하거나 기록하려는 의도를 표시하는 메시지를 그 시스템 버스를 통하여 상호 통신하는 것이 필요하다. 예를 들어, 프로세서가 메모리 위치에 데이터를 기록하는 것을 원하면, 그 프로세서는 먼저 메모리 위치에 데이터를 기록하려는 자신의 의도를 다른 모든 처리 소자에 알리고, 그 기록 동작의 수행을 위한 허가를 다른 모든 처리 소자로부터 수신해야만 한다. 요구 프로세서가 수신된 허가 메시지는 상기 메모리 위치의 내용의 다른 모든 캐시된 카피는 무효화 된 것을 표시하고, 그에 따라서 다른 프로세서가 진부한 로컬 데이터(stale local data)를 액세스하지 않는 것을 보장한다. 이러한 메시지 교환은 상호 무효화(cross-invalidation: XI)로서 알려져 있다.
본 발명은 캐시 엔트리의 상호 무효화가 SMP 데이터 처리 시스템에서 메모리 일관성을 유지하도록 동작하는 동안, 원격 프로세서에 의한 캐시 엔트리의 무효화가 로컬 캐시에서 적중율(hit ratio)을 감소시킴으로써 데이터 처리 시스템의 성능에 악영향을 제공한다고 하는 인식을 포함하고 있다. 따라서, 대규모 로컬 캐시를 구비하더라도 처리 소자는 일단 로컬 캐시에 존재했던 데이터를 다른 처리 소자에서 원격 캐시로부터 또는 시스템 메모리로부터 검색할 때, 액세스 대기 시간이 길어질 수 있다. 따라서, 캐시 엔트리의 상호 무효화의 결과로서 초래되는 성능 저하를 감소시킴과 동시에, SMP 데이터 처리 시스템에서의 메모리 일관성을 유지하기 위한 방법 및 시스템을 제공하는 것이 바람직하다.
따라서, 본 발명의 목적은 데이터를 처리하기 위한 개량된 방법 및 시스템을 제공하는 데에 있다.
본 발명의 다른 목적은 멀티프로세서 데이터 처리 시스템에 있어서 캐시 일관성을 유지하기 위한 개량된 방법 및 시스템을 제공하는 데에 있다.
본 발명의 또 다른 목적은 제1 캐시 및 제2 캐시를 연결하는 상호 접속망을 통해 제2 캐시가 유효 데이터를 독립적으로 전송하는 것에 응답하여 제1 캐시가 상기 유효 데이터로 갱신되는 것을 가능하게 하는 호버링(H) 상태를 포함하는 멀티프로세서 데이터 처리 시스템용 캐시 일관성 프로토콜을 제공하는 데에 있다.
상기 목적은 이하에 설명하는 바에 의하여 달성된다. 각각이 복수의 캐시 중 각각의 캐시와 관련된 복수의 프로세서를 포함하는 데이터 처리 시스템이 설치된다. 본 발명의 방법에 따르면, 제1 데이터 항목은 그 데이터 항목의 어드레스를 표시하는 어드레스 태그와 관련해서 제1 캐시에 기억된다. 제1 캐시의 일관성 표시자(coherency indicator)는 그 제1 데이터 항목이 유효함을 표시하는 제1 상태로 설정된다. 일관성 표시자가 제1 상태로 설정되어 있는 동안 다른 캐시가 상기 어드레스 태그에 의해 표시되는 어드레스로 저장 의사(intent)를 표시하는 것에 응답하여, 제1 캐시의 일관성 표시자는 그 어드레스 태그는 유효하고 제1 데이터 항목이 무효임을 표시하는 제2 상태로 갱신된다. 이후에, 그 어드레스 태그에 의해 표시되는 어드레스와 관련되며 제2 데이터 항목을 포함하는 원격 발신된 데이터 전송(remotely-sourced data transfer)의 검출에 응답하고, 제1 캐시를 갱신할지의 여부의 결정이 제1 캐시의 동작 모드에 따라서 행해진다. 제1 캐시에 대한 갱신을 행하는 결정에 응답하여, 어드레스 태그와 관련해서 제2 데이터 항목을 기억하여 제1 데이터 항목을 대체하며, 일관성 표시자는 제2 데이터 항목이 유효임을 표시하는 제3 상태로 갱신된다. 일 실시예에 있어서, 제1 캐시의 동작 모드는 캐시의 갱신이 항상 수행되는 정밀 모드(precise mode)와 캐시의 갱신이 선택적으로 수행되는 비정밀 모드(imprecise mode)를 포함한다. 상기 제1 캐시의 동작 모드는 하드웨어나 소프트웨어 중 어느 하나에 의해 설정될 수 있다.
본 발명의 상기 및 부가적인 목적, 특징 및 이점은 이하의 상세한 설명에 의하여 명확히 이해할 수 있을 것이다.
도 1은 본 발명에 따른 멀티프로세서 데이터 처리 시스템의 실시예를 도시하는 도면.
도 2는 본 발명에 따른 캐시의 실시예를 설명하는 블록도.
도 3은 본 발명의 H-MESI 메모리 일관성 프로토콜의 실시예를 설명하는 상태도.
본 발명의 신규한 특징은 특허청구의 범위에 기재되어 있다. 본 발명의 바람직한 실시예, 추가의 목적 및 이점 뿐만 아니라 본 발명 자체는 첨부된 도면을 참조하여 이하의 바람직한 실시예의 상세한 설명을 참조하면 보다 명확히 이해될 수 있다.
이하, 도 1에는 본 발명에 따른 멀티프로세서 데이터 처리 시스템의 고레벨 블록도가 도시되어 있다. 도시된 바와 같이, 데이터 처리 시스템(8)은 복수 개의 프로세서(10a∼10n)를 포함하며, 이들 프로세서의 각각은 IBM사(International Business Machines Corporation)로부터 입수 가능한 PowerPCTM(등록 상표)중 하나를 포함하는 것이 바람직하다. 각각의 프로세서(10a∼10n)는 프로그램 명령을 실행하기 위하여 이용되는 종래의 레지스터, 명령 흐름 논리 회로 및 실행 유닛(execution unit) 뿐만 아니라 탑재(on-board) 레벨 1(L1) 캐시(12a∼12n)중 관련된 캐시를 포함하고 있다. 상기 캐시는 관련되어 있는 프로세서에 의하여 액세스되는 명령 및 데이터를 일시적으로 기억한다. 비록 L1 캐시(12a∼12n)가 도 1에서는 명령 및 데이터의 양쪽(이하에서는 양쪽을 단순히 데이터라 칭함)을 저장하는 일원화된(unified) 캐시로서 도시되고 있지만, L1 캐시(12a∼12n)의 각각은 명령 및 데이터 캐시로 분할되어 실시될 수 있음을 당업자라면 이해할 수 있을 것이다.
액세스 대기 시간을 최소화하기 위해서, 데이터 처리 시스템(8)은 레벨 2(L2) 캐시(14a∼14n)와 같은 하나 이상의 부가적인 레벨의 캐시 메모리도 포함하고 있다. 이들 캐시(14a∼14n)는 L1 캐시(12a∼12n)에 대한 데이터를 스테이지화하기 위해 이용된다. 환언하면, L2 캐시(14a∼14n)는 시스템 메모리(18)와 L1 캐시(12a∼12n) 사이의 중간 기억 장치(intermediate storage)로서 기능하며, 일반적으로는 L1 캐시(12a∼12n) 보다도 많은 양의 데이터를 저장할 수 있지만, 액세스 대기 시간이 길게 된다. 예를 들어, L2 캐시(14a∼14n)는 256 또는 512 킬로바이트의 기억 용량을 가질 수 있는 반면, L1 캐시(12a∼12n)는 64 또는 128 킬로바이트의 기억 용량을 가질 수 있다. 상기한 바와 같이, 도 1은 오직 2 레벨의 캐시만을 도시하고 있지만, 데이터 처리 시스템(8)의 메모리 계층은 부가적인 레벨(L3, L4 등)의 직렬 접속된 캐시 또는 우선 참조(lookaside) 캐시를 포함하도록 확장될 수 있다.
또한, 데이터 처리 시스템(8)은 도 1에 도시된 바와 같이 상호 접속망(16)에 각각 연결된 I/O(입/출력) 장치(20), 시스템 메모리(18) 및 비휘발성 기억 장치(22)를 포함한다. I/O 장치(20)는 통상의 어댑터를 통하여 상호 접속망(16)에 인터페이스되는 디스플레이 장치, 키보드 및 그래픽 포인터와 같은 종래의 주변 장치를 포함한다. 비휘발성 기억 장치(22)는 데이터 처리 시스템(8)이 전원 공급되는 것에 응답하여 휘발성 시스템 메모리(18)로 로드(load)되는 운영 체제(O/S) 및 다른 소프트웨어를 기억한다. 물론, 데이터 처리 시스템(8)이 네트워크 또는 부가 장치에 접속하기 위한 직렬 및 병렬 포트, 시스템 메모리(18)로의 액세스를 조정하는 메모리 컨트롤러 등과 같은 도 1에 도시되지 않은 많은 부가적인 소자를 포함할 수 있는 것은 당업자라면 이해할 수 있을 것이다.
하나 이상의 버스 또는 교차점 스위치(cross-point switch)를 포함하는 상호 접속망(16)은 L2 캐시(14a∼14n), 시스템 메모리(18), I/O 장치(20) 및 비휘발성 기억 장치(22)의 상호간의 통신 트랜잭션(communication transaction)용 도관(conduit)으로서 기능한다. 상호 접속망(16)에 대한 대표적인 통신 트랜잭션은 그 트랜잭션의 소스를 표시하는 소스 태그(source tag), 상기 트랜잭션의 의도된 수신측을 지정하는 목적지 태그(destination tag), 어드레스 및/또는 데이터를 포함한다. 상호 접속망(16)에 연결된 각 장치는 상호 접속망(16)상의 모든 통신 트랜잭션을 스누프(snoop)하는 것이다.
다음에, 도 2를 참조하면, 본 발명에 따른 L2 캐시(14)(도 1의 14a∼14n중 하나임)의 실시예 보다 상세한 블록도가 도시되고 있다. 그 실시예에서, L2 캐시(14)는 32 비트 어드레스를 이용하는 4-가지 세트 연상 캐시(four-way set associative cache)이다. 따라서, L2 캐시(14)의 데이터 어레이(34)는 각각이 캐시 라인을 기억하기 위한 4-가지(4-ways)를 포함한 다수의 적합 부류(congruence classes)를 포함한다. 종래의 세트 연상 캐시에 있어서, 시스템 메모리(18)의 메모리 위치는 상기 메모리 위치의 어드레스내의 인덱스 비트(index bit)(예를 들어, 32 비트 어드레스중 20∼26 비트)를 이용하여 데이터 어레이(34)내의 특정의 적합 부류로 맵핑(mapping)되고 있다.
데이터 어레이(34)내에 기억된 캐시 라인은 캐시 디렉토리(32)에 기록된다. 캐시 디렉토리(32)는 데이터 어레이(34)내의 각 가지(way)에 대하여 하나의 디렉토리 엔트리를 포함한다. 각 디렉토리 엔트리는 태그 필드(40), 일관성 상태 필드(42), 최저 사용 빈도(least recently used: LRU) 필드(44) 및 함유 필드(inclusion field)(46)를 포함한다. 태그 필드(40)는 캐시 라인의 시스템 메모리 어드레스의 태그 비트(예컨대, 0∼19 비트)를 기억함으로써 어떤 캐시 라인이 데이터 어레이(34)의 대응하는 가지에 기억되는지를 지정한다. 도 3을 참조하여 이하에서 상세히 설명하는 바와 같이, 일관성 상태 필드(42)는 사전 정의된 비트의 조합을 이용하여 데이터 어레이(34)의 대응하는 가지에 기억된 데이터의 일관성 상태를 표시한다. LRU 필드(44)는 데이터 어레이(34)의 대응하는 가지가 그것의 적합 부류의 다른 가지에 대하여 얼마나 최근에 액세스되었는지를 표시하며, 그것에 의하여 어떤 캐시 라인이 캐시 미스(cache miss: 캐시 적중 실패)에 응답하여 적합 부류로부터 방출될 수 있는지를 표시한다. 마지막으로, 함유 필드(46)는 데이터 어레이(34)의 대응하는 가지에 저장된 캐시 라인이 관련된 L1 캐시(12)에도 기억되어 있는지의 여부를 표시한다.
또한, 도 2를 다시 참조하면, L2 캐시(14)는 캐시 컨트롤러(36)를 포함한다. 이 캐시 컨트롤러(36)는 데이터 어레이(34)에서 데이터의 기억 및 검색을 관리하고, 관련된 L1 캐시(12)로부터 수신된 신호 및 상호 접속망(16)을 통해서 스누프된 트랜잭션에 응답하여 캐시 디렉토리(32)에 대한 갱신을 관리한다. 또한, 도 2에 도시된 바와 같이, 캐시 컨트롤러(36)는 판독 큐(read queue)(50) 및 기록 큐(write queue)(52)를 포함하는데, 상기 캐시 컨트롤러(36)는 캐시 디렉토리(32)에 대한 갱신 및 데이터 어레이(34)에 대한 액세스를 수행한다. 예컨대, 관련된 L1 캐시(12)로부터 판독 요구를 수신하는 것에 응답하여, 캐시 컨트롤러(36)는 판독 큐(50)내의 엔트리에 판독 요구를 위치시킨다. 캐시 컨트롤러(36)는 요구된 데이터를 관련된 L1 캐시(12)로 제공함으로써 판독 요구를 서비스하며, 그후 판독 요구를 판독 큐(50)로부터 제거한다. 다른 예로서, 캐시 컨트롤러(36)는 원격 프로세서(10)가 하나의 지정된 캐시 라인의 자신의 로컬 카피(local copy)를 수정하고자 의도하는 것을 L2 캐시(14a∼14n)중 다른 하나의 캐시가 표시하는 것에 의하여 개시된 트랜잭션을 스누프할 수 있다. 이 트랜잭션을 스누프하는 것에 응답하여, 캐시 컨트롤러(36)는 지정된 캐시 라인이 데이터 어레이(34)내에 존재하는지의 여부를 결정하기 위해 캐시 디렉토리(32)를 판독하고자 하는 요구를 판독 큐(50)에 위치시킨다. 만일 지정된 캐시 라인이 데이터 어레이 내에 존재하는 경우, 캐시 컨트롤러(36)는 적절한 응답을 상호 접속망(16)상에 위치시키고, 필요하다면 디렉토리 기록 요구를 기록 큐(52)에 삽입하며, 상기 디렉토리 기록 요구가 서비스되었을 때, 지정된 캐시 라인과 관련된 일관성 상태 필드를 갱신한다. 도 2에는 단지 하나의 판독 큐 및 기록 큐가 이용되는 실시예가 예시되어 있지만, 캐시 컨트롤러(36)에 의하여 사용되는 큐의 숫자는 디자인 선택의 문제이며, 캐시 컨트롤러(36)는 캐시 디렉토리 액세스 및 데이터 어레이 액세스에 대하여 별도의 큐를 사용할 수도 있다.
또한, 캐시 컨트롤러(36)는 모드 레지스터(60)를 추가로 포함하는데, 상기 모드 레지스터는 이하에서 상세히 설명하는 바와 같이 하나 이상의 비트를 포함하며, 그 비트의 설정에 의해 캐시 컨트롤러(36)의 동작을 제어한다. 또한, 캐시 컨트롤러(36)는 성능 모니터(performance monitor)(70)를 포함한다. 성능 모니터(70)는 다수의 성능 모니터 카운터(PMC0∼PMCn: PMC)(72)를 구비하고 있다. 상기 성능 모니터 카운터(72)는 인에이블되었을 때, 하나 이상의 컨트롤 레지스터(CR0∼CRm: CR)(74)에 의하여 지정되는 이벤트 또는 그 이벤트의 조합의 각각의 발생에 응답하여 증가한다. 컨트롤 레지스터(CR)(74)의 설정에 응답하여 PMC(72)에 의해 카운트되는 이벤트에는 캐시 적중(cache hit), 캐시 적중 실패(cache miss), 지정된 큐에서 엔트리의 수, L2 캐시 적중에 대한 액세스 대기 시간, L2 캐시 적중 실패에 대한 액세스 대기 시간 등을 포함한다. 각각의 PMC(72) 및 CR(74)은 로드 및 기억 명령를 통하여 관련된 프로세서(10)에 의해 판독 및 기록할 수 있는 메모리 맵형 레지스터인 것이 바람직하다.
다음에, 도 3을 참조하면, 본 발명의 H-MESI 메모리 일관성 프로토콜의 실시예가 도시되어 있다. H-MESI 프로토콜은 메모리 계층의 최하위 레벨의 캐시(예를 들어, 도 1에 예시된 데이터 처리 시스템(8)의 L2 캐시(14a∼14n))만으로 실시되는 것이 바람직한 반면, 상위 레벨의 캐시는 종래의 MESI 프로토콜을 실시하는 것이 바람직하다. 그러나, 데이터 처리 시스템(18)의 다른 실시예에서, H-MESI 프로토콜은 부가적인 캐시 상호간의 통신 트래픽의 증가를 감수하여 메모리 계층의 각 레벨의 캐시에서 실시될 수 있다.
도 3에 도시된 바와 같이, H-MESI 메모리 일관성 프로토콜은 MESI 프로토콜의 통상의 변경(M) 상태, 배타적(E) 상태, 공유(S) 상태 및 무효(I) 상태를 포함한다. 이들 상태는 각각 참조 번호 80, 82, 84 및 86으로 식별된다. 또한, 본 발명의 H-MESI 메모리 일관성 프로토콜은 호버링(H) 상태(90)를 포함한다. 그 호버링 상태(90)에서는 관련된 태그 필드(40)에 기억된 어드레스 태그는 유효하지만, 데이터 어레이(34)의 대응하는 가지에 기억된 데이터 항목(예를 들어, 캐시 라인 또는 캐시 섹터)은 무효임이 표시된다.
본 발명의 바람직한 실시예에 있어서, 각 L2 캐시 디렉토리(32)의 각 엔트리의 일관성 상태 필드(42)는 전원이 인가되었을 때 I 상태(86)로 초기 설정되고, 태그 필드(40)와 데이터 어레이(34)의 대응하는 가지에 기억된 데이터의 양쪽 모두 무효임을 표시한다. L1 캐시 디렉토리 엔트리도 종래의 MESI 프로토콜에 따라서 상기와 유사하게 무효 상태로 초기 설정된다. 그후, 무효 상태(86)에서 L2 캐시(14a∼14n)중 하나에 기억된 캐시 라인(또는 캐시 섹터)의 일관성 상태는, 프로세서(10a∼10n)에 의해 행해진 메모리 요구의 타입과 이들 요구에 대한 메모리 계층의 응답에 따라서 M 상태(80), E 상태(82) 또는 S 상태(84)중 하나의 상태로 갱신될 수 있다.
예를 들어, 만일 프로세서(10a)가 로드 명령에 응답하여 판독 요구를 행하는 경우, L1 캐시(12a)는 그 요구된 데이터가 L1 캐시(12a)내에 존재하는지의 여부를 판단한다. L1 캐시(12a)에서의 캐시 히트에 응답하여, L1 캐시(12a)는 단순히 그 요구된 데이터를 프로세서(10a)로 제공한다. 그러나, L1 캐시(12a)에서의 캐시 미스에 응답하여, L1 캐시(12a)는 캐시 상호간 접속을 통하여 L2 캐시(14a)로 판독 요구를 전달한다. L2 캐시(14a)에서의 캐시 히트에 응답하여, 그 요구된 데이터는 L2 캐시(14a)에 의해 L1 캐시(12a)로 제공하며, L1 캐시(12a)에는 적절한 MESI 일관성 상태와 관련해서 그 요구된 데이터를 기억하며, 또한 그 요구된 데이터를 프로세서(10a)로 전달한다. 그러나, 만일 판독 요구가 L1 캐시(12a) 및 L2 캐시(14a)의 양쪽 모두에서 캐시 미스되면, L2 캐시(14a)의 캐시 컨트롤러(36)는 상호 접속망(16)상에 트랜잭션으로서 판독 요구를 공급하는데, 그것은 L2 캐시(14b∼14n)의 각각에 의하여 스누프된다.
상호 접속망(16)상의 판독 요구를 스누핑(snooping)하는 것에 응답하여, L2 캐시(14b∼14n)의 각 캐시 컨트롤러(36)는 요구된 데이터가 각각의 데이터 어레이(34)에 존재하거나 또는 L1 캐시(12b∼12n)중의 관련된 캐시에 존재하는지의 여부를 판정한다. L2 캐시(14b∼14n) 또는 L1 캐시(12b∼12n)중의 어느 것도 요구된 데이터를 기억하고 있지 않으면, L2 캐시(14b∼14n)의 각각은 널 응답(null response)을 L2 캐시(14a)로 복귀시키고, 그 후, L2 캐시(14a)는 시스템 메모리(18)로부터 상기 데이터를 요구한다. 요구된 데이터가 시스템 메모리(18)로부터 L2 캐시(14a)로 복귀되면, 캐시 컨트롤러(36)는 요구된 데이터를 L1 캐시(12a)로 전달하고, 요구된 데이터를 데이터 어레이(34)에 저장하며, 그 요구된 데이터를 저장하는 가지와 관련된 일관성 상태 필드(42)를 참조 번호 100에 의해 표시되도록 I 상태(86)로부터 E 상태(82)로 갱신한다. 종래의 MESI 프로토콜과 같이, E 상태(82)는 관련된 캐시 라인이 유효하며, 또한 이 캐시 라인은 메모리 계층의 제2 레벨에서 다른 어느 캐시에도 존재하지 않는 것을 표시한다.
이와 유사하게, L1 캐시(12b∼12n) 또는 L2 캐시(14b∼14n) 중의 임의의 캐시가 요구된 데이터를 E 상태(82) 또는 S 상태(84)로 기억하고, 그에 따라서, L2 캐시(14a)에 의하여 상호 접속망(16) 상에 제공된 판독 요구에 대한 '공유' 응답(shared response)을 표시하는 경우, L2 캐시(14a)는 그 요구된 데이터를 시스템 메모리(18)로부터 검색한다. 그러나, 이 경우, 요구된 데이터를 기억하는 L2 캐시(14a)내의 가지(way)의 일관성 상태는 참조 번호 102에 의해 표시되는 바와 같이 I 상태(86)로부터 S 상태(84)로의 천이를 행한다. 요구된 데이터를 E 상태(82)로 기억하고 있는 L2 캐시(14)의 다른 캐시도 참조 번호 104에 의해 표시되는 바와 같이 S 상태(84)로 갱신된다.
만일 프로세서(10a)에 의하여 요구된 데이터가 L1 캐시(12a) 및 L2 캐시(14a)에 존재하지 않고, 예를 들어, L1 캐시(12n)에 M 상태(80)로 저장되어 있는 경우, L2 캐시(14n)의 캐시 컨트롤러(36)는 그 판독 요구에 응답하여 재시행되고, 그 요구된 데이터를 메모리로 밀어내도록 상기 L1 캐시(12n)로 신호를 제공한다. L1 캐시(12n) 및 L2 캐시(14n)내에 존재하는 요구된 데이터의 일관성 상태는 참조 번호 106에 의해 표시되는 바와 같이 S 상태(84)로 갱신된다. 그후, L2 캐시(14a)가 상호 접속망(16) 상에서 판독 요구를 재시행하면, L2 캐시(14n)는 공유 응답에 반응하여, L2 캐시(14a)는 상기한 바와 같이 시스템 메모리(18)로부터 요구된 데이터를 얻는다. 소위 변경된 개입(modified intervention)을 지원하는 다른 실시예에서는, 요구된 데이터를 시스템 메모리(18)보다 L2 캐시(14n)의 캐시 컨트롤러(36)에 의하여 공급되고, 그에 따라서 액세스 대기 시간을 감소시킨다.
만일 판독 요구 대신에, 프로세서(10a)가 변경할 목적으로 메모리 위치의 배타적 사용을 얻기를 원하고 있음을 표시하는 '변경할 의도를 갖는 판독(read with intent to modify: RWITM)' 요구를 L1 캐시(12a)가 발행하는 경우, 지정된 메모리 위치를 포함하는 캐시 라인을 얻는 전술한 절차가 진행된다. 그러나, 요구된 캐시 라인을 얻은 경우, L1 캐시(12a)는 그 요구된 캐시 라인을 변경 상태로 기억하고 있다. 또한, 요구된 캐시 라인의 다른 카피는 진부하게 될 것임을 RWITM 트랜잭션이 표시하기 때문에, 다른 L1 및 L2 캐시는 그들이 소유하고 있는 그 요구된 캐시 라인의 카피가 무효임을 표시해야만 한다. L1 캐시(12b∼12n)내에서 그 요구된 캐시 라인의 어떠한 카피도 단순히 무효로서 표시된다. 그러나, L2 캐시(14b∼14n)에 기억되어 있는 그 요구된 캐시 라인의 카피의 일관성 상태는 상호 무효화(XI)를 이용하는 종래의 멀티프로세서 데이터 처리 시스템에서와 같이 I 상태(86)로 갱신되지 않는다. 그 대신에, 본 발명의 중요한 일 태양에 따르면, 요구된 캐시 라인의 카피를 기억하고 있는 L2 캐시(14b∼14n)의 각각은 참조 번호 110, 112 및 114로 표시되는 바와 같이 그 카피와 관련된 일관성 상태 필드(42)를 각각 S 상태(84), M 상태(80) 또는 E 상태(82)중 하나의 상태로부터 H 상태(90)로 갱신한다. 상기한 바와 같이, H 상태(90)에서는 태그 필드(40)에 기억된 태그는 유효하지만, 데이터 어레이(34)내의 관련된 캐시 라인은 무효임을 표시한다. 캐시 디렉토리(32)에서의 엔트리는 데이터가 무효가 되는 것을 필요로 하는 다른 스누프된 트랜잭션에 응답하여 유사하게 H 상태(90)로 갱신된다. 그 스누프된 트랜잭션은 킬(kill)(즉, 지정된 데이터 블록을 명시적으로 무효화시키는 트랜잭션), 플러쉬(flush)(즉, 지정된 데이터 블록을 무효화시키고 임의의 변경된 데이터를 시스템 메모리로 카피하는 트랜잭션), 디클레임(dclaim)(즉, 원격 캐시에서 공유로서 표시된 캐시 라인의 카피를, 캐시 라인의 로컬 카피가 저장되는 것에 응답하여 변경된 것에 응답해서 무효화하는 트랜잭션) 등을 포함한다.
참조 번호 116, 118 및 120으로 표시된 바와 같이, 캐시 디렉토리 엔트리는 캐시가 어떠한 타입의 트랜잭션을 수신하였는지에 따라서 H 상태(90)로부터 E 상태(82), M 상태(80) 또는 S 상태(84)로 천이할 수 있다. 예를 들어, H 상태(90)에 있는 L2 캐시(14a)의 디렉토리 엔트리는 시스템 메모리(18)로부터 검색된 데이터가 모든 L2 캐시(14a∼14n)중 오직 L2 캐시(14a)에만 기억될 수 있기 때문에, L1 캐시(12a) 및 L2 캐시(14a)의 양쪽 모두에서 캐시 미스된 후 L2 캐시(14b∼14n)로부터 널응답을 수신한 판독 요구를 프로세서(10a)가 행하는 것에 응답하여 참조 번호 116으로 표시된 바와 같이 E 상태(82)로 천이할 수 있다. 한편, 만일 프로세서(10a)가 H 상태(90)에 있는 L1 캐시(12a)의 가지에 대하여 데이터를 기억하려는 의도를 표시하는 경우, L1 캐시(12a)는 L2 캐시(14a)에 대하여 그 의도를 표시하고, 다음에, L2 캐시(14a)는 상호 접속망(16)을 통해 RWITM 트랜잭션을 발생한다. 상기 논의된 바와 같이, L2 캐시(14b∼14n)에 기억된 그 요구된 캐시 라인의 카피는 상기 RWITM 트랜잭션을 스누핑 하는 것에 응답하여 H 상태(90)로 갱신되고, L1 캐시(12b∼12n)에 기억되어 있는 요구된 캐시 라인의 카피는 무효로서 표시된다. 일단 그 요구된 캐시 라인이 L1 캐시(12a)로 복귀되고, 프로세서(10a)가 캐시 라인을 갱신하면, 캐시 라인은 그것이 유효인 시스템 메모리(18)와 일관되지 않는 것을 의미하도록 L1 캐시(12a)에서 변경된 것으로서 표시된다. 실현 방법에 따라서는, 상기 변경된 캐시 라인은 그후 그 변경된 캐시 라인이 시스템 메모리(18)로 재기록됨이 없이, (예를 들어 L1 캐스트아웃(castout)에 응답하여) 즉시 L2 캐시(14a)에 기억될 수 있다. 그와 같은 경우, 변경된 캐시 라인과 관련된 L2 캐시(14a)에서 일관성 상태 필드(42)는 참조 번호 118로 표시된 바와 같이 M 상태(80)로 갱신된다. 마지막으로, H 상태(90)에서 L2 캐시 디렉토리 엔트리는 다수의 여러 가지 요구/응답 시나리오에 응답하여 S 상태(84)로 갱신된다.
먼저, H 상태(90)에서 L2 디렉토리 엔트리는 관련된 프로세서(10a)가 태그 필드(40)에서 (유효한) 어드레스 태그에 의해 표시된 어드레스로 판독 요구를 발행하고, 적어도 하나의 L2 캐시(14)가 공유 응답에 대해 응답할 때, S 상태(80)로 천이한다. 더욱 중요하게는, H 상태(90)에서 L2 디렉토리 엔트리는 관련된 프로세서(10)가 데이터 요구를 발행하지 않고 또는 L2 캐시(14)가 상호 접속망(16)을 통해 트랜잭션을 개시함이 없이 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)로 갱신한다. 물론, L2 캐시(14a)는 응답이 일관성을 유지하도록 요구되는 경우, 스누프된 트랜잭션에 대한 응답도 제공한다. 예컨대, 만일 스누프된 트랜잭션이 판독 요구되는 경우, L2 캐시(14a)는 요구하는 L2 캐시가 그 요구된 데이터를 E 상태(82)보다 S 상태(84)로 기억하도록 요구된 데이터를 샘플링 하려는 의도를 표시하는 공유 응답을 제공해야만 한다. 유효 어드레스 태그와 관련된 무효 데이터를 리프레쉬(refresh)하기 위하여 이와 같은 방법으로 스누핑 가능한 상호 접속망(16)을 통한 트랜잭션은 판독 트랜잭션, 기록 트랜잭션, 캐시 라인의 캐스트아웃에 의한 시스템 메모리(18)로의 데이터 라이트백(writeback) 등을 포함한다.
도 3에 도시된 H-MESI 메모리 일관성 프로토콜의 실시예에서 발생할 수 있는 상태 천이는 아래의 표 1에 요약되어 있다.
상태 천이 원인 비고
I →E 널응답을 수반하는 CPU의 판독
I →S 공유 또는 변경 응답을 수반하는 CPU의 판독
I →M CPU RWITM
E →S 스누프된 판독
E →M CPU RWITM
E →H 스누프된 데이터 무효화 스누프된 데이터 무효화 = RWITM, dclaim, kill, flush 등
S →M CPU RWITM 상호 접속망상에 dclaim을 발행
S →H 스누프된 데이터 무효화
M →S 스누프된 판독 변경된 개입이 지원되면 데이터를 제공
M →H 스누프된 데이터 무효화 만일 스누프된 트랜잭션이 RWITM이고, 변경된 개입이 지원되면 데이터를 제공
H →E 널응답을 수반하는 CPU의 판독
H →S 공유 또는 변경 응답을 수반하는 CPU의 판독;스누프된 판독 또는 기록
H →M CPU RWITM
본 발명의 중요한 일 태양에 의하면, H-MESI 프로토콜은 정밀하게 또는 비정밀하게 어느 방식으로도 실현될 수 있다. H-MESI 프로토콜의 정밀한 실시 방법에는, L2 캐시(14a∼14n)가 H 상태(90)에서 무효인 캐시 라인을 리프레쉬하기 위해서 상호 접속망(16)을 통해 입수 가능한 데이터를 항상 샘플링하는 것을 필요로 한다. 반면에 비정밀한 실시 방법에는, L2 캐시(14a∼14n)가 H 상태(90)에서 캐시 라인을 리프레쉬하기 위하여 상호 접속망(16)을 통해서 데이터를 선택적으로 샘플링하는 것을 가능하게 한다. 도 2에 도시된 실시예에 있어서, 각 L2 캐시(14)는 다른 L2 캐시와는 독립적으로 모드 레지스터(60)에서 모드 비트(62)의 상태에 기초하여 정밀 모드 또는 비정밀 모드로 동작할 수 있다.
정밀 모드의 동작이 예측 가능한 소프트웨어 동작 및 일관성이 있는 소프트웨어 타이밍을 촉진시키기 때문에, L2 캐시(14a∼14n)를 정밀 모드로 동작시키면, 소프트웨어의 디버깅 또는 성능 튜닝(tuning)시에 특별한 이점이 있다. 또한, 정밀 모드로 동작하는 경우에는, 로컬 캐시의 양쪽 모두의 레벨에서 캐시 미스가 발생하는(및 로컬 L2 캐시(14)가 상호 접속망(16)을 통해서 트랜잭션을 발행하는 것을 필요로 하는) 데이터 요구는 일반적으로 매우 드물고, 따라서 소프트웨어에서 존재 가능한 '버그(bug)'의 표시로서 기능할 수 있다. 또한, 변경된 개입을 지원하는 본 발명의 실시예에서, 정밀한 H-MESI 프로토콜은, 프로세서(10)에 의하여 요구되고, H 상태(90)에서 로컬 L2 캐시(14)에 기억된 데이터가 항상 변경된(즉, 신속한) 개입에 의하여 제공되는 것을 보장한다. 정밀 모드에서 L2 캐시(14)를 조작하는 주요한 단점은 예를 들어, L2 캐시(14)의 기록 큐(52)가 풀(즉, 사용중)이기 때문에, 갱신이 수행될 수 없는 경우, H 상태(90)에서 L2 캐시 라인을 갱신할 수 있는 스누프된 트랜잭션이 반드시 재시행되어야 한다는 점이다.
H 상태(90)에서 캐시 라인의 임의의 선택적인 갱신(optional update)을 수행하기 위해서는, 필요한 동작, 예컨대 판독 요구를 재시행하지 않는 것이 바람직하기 때문에, L2 캐시(14a∼14n)가 일반적으로 정상 동작 중에 비정밀 모드로 동작하는 것이 바람직하다. 전술한 바와 같이, 비정밀 모드의 동작에서는 H 상태(90)에 있는 캐시 라인에 대하여 갱신이 선택적으로 수행될 수 있다. 바람직한 실시예에 있어서, L2 캐시(14)가 비정밀 모드에 있으면, H 상태(90)에 있는 캐시 라인에 대한 갱신은 오직 기록 큐(52)(또는 실시되는 경우의 전용 디렉토리 기록 큐)가 엔트리의 임계치의 수보다도 작은 경우에만 수행된다. 따라서, L2 캐시(14) 내에서 하드웨어 또는 관련된 프로세서(10)에 의하여 실행되는 소프트웨어는 기록 큐(52) 내의 엔트리의 수가 소정의 임계값을 초과하는 것에 응답하여 비정밀 모드에 대응하는 상태로 모드 비트(62)를 설정하도록 사용될 수 있다. 그러나, 본 발명의 다른 실시예는 이하에서 설명하는 바와 같이 H 상태(90)에 있는 L2 캐시 라인에 대한 갱신을 다른 기준에 기초하여 선택적으로 수행할 수도 있다.
도 2에 도시된 데이터 처리 시스템(8)의 실시예에 있어서, L2 캐시(14a∼14n)의 각각은 독립적으로 소프트웨어 또는 하드웨어 또는 양자 모두에 의하여 정밀 모드 또는 비정밀 모드로 설정될 수 있다. 예를 들어, L2 캐시(14a)가 동작하는 모드의 소프트웨어 제어가 바람직한 경우, 프로세서(10a)는 모드 레지스터(60)를 대상으로 하는 기억 명령을 실행하여 모드 비트(62)를 간단히 설정할 수 있다. 다른 방법으로서, 소프트웨어는 기록 큐(52)내의 엔트리의 삽입 및 제거, L2 액세스, L2 캐시 미스, L2 캐시 미스시의 액세스 대기 시간 등과 같은 관심있는 이벤트의 발생을 PMC(72)로 하여금 카운트시키는 CR(74)에 대한 값을 기억시킬 수 있다. 이후 소프트웨어는 로드 명령을 실행하여 관심있는 PMC(72)내의 값을 액세스할 수 있다. 소프트웨어 결정된 임계값을 PMC(72)의 값의 하나 또는 이들의 조합이 초과하는 것에 응답하여, 소프트웨어는 정밀 모드 또는 비정밀 모드중 적절한 모드를 선택하기 위해서 모드 비트(62)를 설정할 수 있다. 예를 들어서, L2 캐시(14a)가 비정밀 모드로 동작하고, L2 캐시 미스의 수가 L2 액세스의 총수의 소정 비율 이상인 경우, 소프트웨어는 정밀 모드에 대응하는 상태로 모드 비트(62)를 설정할 수 있다.
L2 캐시(14a∼14n)의 동작 모드의 하드웨어 제어가 성능 모니터(70)에 의하여 동일하게 실행될 수 있다. 일실시예에 있어서, 각 성능 모니터(70)는 선택된 이벤트 또는 하나 이상의 PMC(72)에서 누적된 이벤트 조합의 발생 수가 소정의 임계값을 초과하는 것에 응답하여 모드 비트(62)를 지정된 상태로 설정하는 신호를 생성하는 논리 회로를 포함한다. 관심있는 이벤트(또는 이벤트들)의 선택과 PMC(72)의 사용 가능성은 성능 모니터(70)의 기본 설정(default setting) 또는 관련된 프로세서(10)에 의하여 실행되는 소프트웨어에 의해 결정할 수 있다. 또 다른 실시예에 있어서, 성능 모니터(70)는 선택된 이벤트 또는 이벤트의 조합의 발생 수가 소정의 임계값을 초과하는 것에 응답하여 성능 모니터 인터럽트(performance monitor interrupt: 이하 PMI)를 생성하도록 설정될 수 있다. PMI는 관련된 프로세서(10)에 의해 서비스되고, 그 프로세서는 모드 비트(62)의 상태를 변화시키는 인터럽트 핸들러(interrupt handler)를 실행한다.
상기한 바와 같이, 본 발명은 멀티프로세서 데이터 처리 시스템에서 메모리 일관성을 유지하는 개선된 방법 및 시스템을 제공한다. 본 발명에 의해 제공되는 개선된 메모리 일관성 프로토콜은 관련이 있는 프로세서가 명시적인 판독 또는 기록 요구를 발행함이 없이, 유효한 어드레스 태그와 관련해서 캐시내에 기억된 무효 데이터 항목이, 유효 데이터로서 자동적으로 갱신될 수 있도록 한다. 이러한 방법으로, 원격 프로세서의 작용에 의하여 무효화된 데이터는 로컬 프로세서에 의해 액세스하기 전에 리프레쉬되고, 그것에 의해 원격 캐시 또는 시스템 메모리로부터 데이터를 검색할 필요가 없으므로 액세스 대기 시간을 실질적으로 감소시킬 수 있다. 캐시 라인이 메모리를 액세스하지 않고 또는 로크(lock)를 요구하지 않고 갱신할 수 있기 때문에, 메모리 액세스 및 시스템 와이드 로크(system-wide lock)에 대한 경쟁(contention)도 실질적으로 감소된다.
본 발명은 실시예를 참조하여 상세히 도시되고 기술되고 있지만, 당업자라면 본 발명의 기술적 사상 및 요지를 일탈하지 않고도 형식 및 내용면에서 다양한 변화가 가능함을 이해할 수 있을 것이다. 예를 들어, 도 3에 도시된 메모리 일관성 프로토콜의 실시예는 I 상태가 전원 온시에 디렉토리 엔트리를 초기 설정하기 위해 이용될 뿐이고 다른 상태로부터 I 상태로 다시 입력되지 않기 때문에, 그 I 상태(86)를 제거하는 것에 의해 변경될 수 있다. 만일 I 상태(86)가 제거된 경우, 전원 온시에 L2 디렉토리 엔트리의 각각의 일관성 상태 필드는 H 상태(90)로 초기 설정되며, L2 디렉토리 엔트리의 각각의 태그 필드는 적어도 동일한 적합 부류 내에서는 독특한 태그값으로 초기 설정된다. 또한, 도 2의 성능 모니터(70)는 다른 방법으로서 각 L2 캐시(14) 내의 다수의 개별 성능 모니터보다는 상호 접속망(16)에 연결된 단일의 시스템 광역 성능 모니터(system-wide performance monitor)로서 실현될 수 있다.
본 발명에 따르면, 상기와 같은 구성에 의하여 멀티프로세서 데이터 처리 시스템에 있어서 캐시 일관성을 효과적으로 달성할 수 있다.

Claims (15)

  1. 다중 동작 모드를 갖는 캐시를 포함하는 데이터 처리 시스템에서 캐시 일관성을 유지하기 위한 방법에 있어서,
    캐시 내에서 제1 데이터 항목의 어드레스를 표시하는 어드레스 태그와 관련해서 이 제1 데이터 항목을 저장하고, 상기 어드레스 태그가 유효하며 상기 제1 데이터 항목이 무효임을 표시하는 데이터 무효 상태로 상기 캐시 내의 일관성 표시자를 설정하는 단계와;
    상기 캐시에 응답하여, 상기 데이터 처리 시스템에서 다른 장치의 판독 요구에 의하여 개시되는 상호 접속망을 통하여 제2 데이터 항목을 포함하는 데이터 전송을 검출하고, (1)상기 캐시의 동작 모드, (2)상기 일관성 표시자가 상기 데이터 무효 상태를 표시하는지의 여부, (3)상기 어드레스 태그가 상기 데이터 전송과 관련된 어드레스와 정합하는지의 여부에 따라서, 상기 캐시를 갱신할지의 여부를 결정하는 단계와;
    상기 캐시를 갱신하기 위한 결정에 응답하여, 상기 어드레스 태그와 관련해서 상기 제2 데이터 항목을 상기 캐시에 저장하고, 상기 캐시 내에서 상기 제2 데이터 항목이 유효한 것을 표시하는 상태로 상기 일관성 표시자를 갱신하는 단계
    를 포함하는 캐시 일관성 유지 방법.
  2. 제1항에 있어서,
    상기 캐시를 갱신할지의 여부를 결정하는 단계는,
    상기 캐시가 제1 모드로 동작하는 것에 응답하여, 상기 일관성 표시자가 상기 데이터 무효 상태를 표시하며 상기 어드레스 태그가 상기 데이터 전송과 관련된 어드레스와 정합하는 경우에, 상기 캐시를 갱신하는 것을 항상 결정하는 단계와;
    상기 캐시가 제2 모드로 동작하는 것에 응답하여, 상기 캐시가 사용중이지 않은 경우에만 상기 캐시를 갱신하는 것을 결정하는 단계를 포함하는 캐시 일관성 유지 방법.
  3. 제2항에 있어서,
    상기 캐시는 갱신이 행해지는 큐를 포함하고,
    상기 캐시가 사용중이지 않은 경우에만 상기 캐시를 갱신하는 것을 결정하는 단계는 상기 큐가 임계치보다 작은 엔트리를 포함하는 경우에만 상기 캐시를 갱신하는 것을 결정하는 단계를 포함하는 캐시 일관성 유지 방법.
  4. 제1항에 있어서,
    상기 데이터 처리 시스템의 프로세서에 의하여 실행되는 명령에 응답하여 상기 캐시의 동작 모드를 제1 모드와 제2 모드중 하나로 설정하는 단계를 더 포함하는 캐시 일관성 유지 방법.
  5. 제1항에 있어서,
    상기 데이터 처리 시스템은 하나 이상의 선택된 이벤트를 모니터하는 성능 모니터 하드웨어(performance monitor hardware)를 포함하며,
    상기 방법은 상기 성능 모니터 하드웨어를 이용하여 상기 캐시의 동작 모드를 설정하는 단계를 더 포함하는 캐시 일관성 유지 방법.
  6. 제1항에 있어서,
    상기 일관성 표시자를 갱신하는 단계는, 상기 제2 데이터 항목이 상기 캐시 및 상기 데이터 처리 시스템 내의 다른 캐시의 양쪽 모두에 저장되어 있음을 표시하는 공유 상태로 상기 일관성 표시자를 갱신하는 단계를 포함하는 캐시 일관성 유지 방법.
  7. 삭제
  8. 상호 접속망을 포함하는 데이터 처리 시스템에서 캐시 일관성을 지원하는 캐시에 있어서,
    데이터 기억 장치와;
    상기 데이터 기억 장치에 포함된 데이터 항목의 어드레스를 표시하는 어드레스 태그를 저장하는 태그 기억 장치와;
    상기 데이터 항목이 유효함을 표시하는 유효 상태와, 상기 어드레스 태그가 유효하고 상기 데이터 기억 장치의 데이터 항목이 무효임을 표시하는 데이터 무효 상태 중 적어도 하나의 상태를 갖는 일관성 표시자와;
    상기 일관성 표시자, 상기 태그 기억 장치 및 상기 데이터 기억 장치에 접속된 캐시 컨트롤러를 포함하고,
    상기 캐시 컨트롤러는,
    상기 데이터 처리 시스템에서 다른 장치의 판독 요구에 의하여 개시되는 상기 상호 접속망을 통하여 제2 데이터 항목을 포함하는 데이터 전송의 검출에 응답하여, (1)상기 캐시의 동작 모드, (2)상기 일관성 표시자가 상기 데이터 무효 상태를 표시하는지의 여부, (3)상기 어드레스 태그가 상기 데이터 전송과 관련된 어드레스와 정합하는지의 여부에 따라서, 상기 데이터 기억 장치를 갱신할지의 여부를 결정하며, 상기 데이터 기억 장치를 갱신하기 위한 결정에 응답하여, 상기 어드레스 태그와 관련해서 상기 제2 데이터 항목을 상기 데이터 기억 장치에 저장함과 동시에, 상기 일관성 표시자를 상기 유효 상태로 갱신하는 캐시 일관성을 지원하는 캐시.
  9. 제8항에 있어서,
    상기 캐시 컨트롤러는,
    상기 캐시가 제1 모드로 동작하는 것에 응답하여, 상기 일관성 표시자가 상기 데이터 무효 상태를 표시하며 상기 어드레스 태그가 상기 데이터 전송과 관련된 어드레스와 정합하는 경우에, 상기 데이터 기억 장치를 갱신하는 것을 항상 결정하는 수단과;
    상기 캐시가 제2 모드로 동작하는 것에 응답하여, 상기 캐시가 사용중이지 않은 경우에만 상기 데이터 기억 장치를 갱신하는 것을 결정하는 수단을 포함하는 캐시 일관성을 지원하는 캐시.
  10. 제9항에 있어서,
    상기 캐시는 그 캐시에 대한 갱신이 행해지는 큐를 포함하고,
    상기 데이터 기억 장치를 갱신하는 것을 결정하는 수단은 상기 큐가 임계치보다 작은 엔트리를 포함하는 경우에만 상기 데이터 기억 장치를 갱신하는 것을 결정하는 수단을 포함하는 캐시 일관성을 지원하는 캐시.
  11. 제8항에 있어서,
    상기 데이터 처리 시스템의 프로세서에 의하여 실행되는 명령에 응답하여 상기 캐시의 동작 모드를 제1 모드와 제2 모드 중 하나로 설정하는 수단을 더 포함하는 캐시 일관성을 지원하는 캐시.
  12. 제8항에 있어서,
    상기 유효 상태는 공유 상태인 캐시 일관성을 지원하는 캐시.
  13. 삭제
  14. 삭제
  15. 상호 접속망 및 이 상호 접속망에 결합된 복수의 프로세서와;
    각각이 상기 복수의 프로세서의 각각의 하나와 관련된 복수의 캐시를 포함하고,
    상기 복수의 캐시 중 하나의 캐시는,
    데이터 기억 장치와;
    상기 데이터 기억 장치에 포함된 데이터 항목의 어드레스를 표시하는 어드레스 태그를 저장하는 태그 기억 장치와;
    상기 데이터 항목이 유효함을 표시하는 유효 상태와, 상기 어드레스 태그가 유효하고 상기 데이터 기억 장치의 데이터 항목이 무효임을 표시하는 데이터 무효 상태 중 적어도 하나의 상태를 갖는 일관성 표시자와;
    상기 일관성 표시자, 상기 태그 기억 장치 및 상기 데이터 기억 장치에 접속된 캐시 컨트롤러를 포함하며,
    상기 캐시 컨트롤러는, 상기 데이터 처리 시스템에서 다른 장치의 판독 요구에 의하여 개시되는 상기 상호 접속망을 통하여 제2 데이터 항목을 포함하는 데이터 전송의 검출에 응답하여, (1)상기 캐시의 동작 모드, (2)상기 일관성 표시자가 상기 데이터 무효 상태를 표시하는지의 여부, (3)상기 어드레스 태그가 상기 데이터 전송과 관련된 어드레스와 정합하는지의 여부에 따라서, 상기 데이터 기억 장치를 갱신할지의 여부를 결정하며, 상기 데이터 기억 장치를 갱신하기 위한 결정에 응답하여, 상기 어드레스 태그와 관련해서 상기 제2 데이터 항목을 상기 데이터 기억 장치에 저장함과 동시에, 상기 일관성 표시자를 상기 유효 상태로 갱신하는 것인 데이터 처리 시스템.
KR1019990004879A 1998-02-17 1999-02-11 정밀 모드 및 비정밀 모드를 갖는 호버링(h) 상태를 포함하는 캐시 일관성 프로토콜 KR100330934B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/024,612 1998-02-17
US09/024,612 US6263407B1 (en) 1998-02-17 1998-02-17 Cache coherency protocol including a hovering (H) state having a precise mode and an imprecise mode
US9/024,612 1998-02-17

Publications (2)

Publication Number Publication Date
KR19990072595A KR19990072595A (ko) 1999-09-27
KR100330934B1 true KR100330934B1 (ko) 2002-04-01

Family

ID=21821494

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019990004879A KR100330934B1 (ko) 1998-02-17 1999-02-11 정밀 모드 및 비정밀 모드를 갖는 호버링(h) 상태를 포함하는 캐시 일관성 프로토콜

Country Status (10)

Country Link
US (1) US6263407B1 (ko)
EP (1) EP0936554B1 (ko)
JP (1) JP3277171B2 (ko)
KR (1) KR100330934B1 (ko)
CN (1) CN1131481C (ko)
DE (1) DE69900611T2 (ko)
HK (1) HK1022970A1 (ko)
ID (1) ID22046A (ko)
MY (1) MY122483A (ko)
TW (1) TW426824B (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7418555B2 (en) 2003-07-22 2008-08-26 Samsung Electronics Co., Ltd Multiprocessor system and method to maintain cache coherence

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000330965A (ja) * 1999-03-17 2000-11-30 Hitachi Ltd マルチプロセッサシステム及びそのメモリアクセストランザクションの転送方法
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
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
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
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
US6925634B2 (en) * 2001-01-24 2005-08-02 Texas Instruments Incorporated Method for maintaining cache coherency in software in a shared memory system
US7194586B2 (en) * 2002-09-20 2007-03-20 International Business Machines Corporation Method and apparatus for implementing cache state as history of read/write shared data
US7225299B1 (en) 2003-07-16 2007-05-29 Transmeta Corporation Supporting speculative modification in a data cache
US7496715B1 (en) * 2003-07-16 2009-02-24 Unisys Corporation Programmable cache management system and method
US9727468B2 (en) 2004-09-09 2017-08-08 Intel Corporation Resolving multi-core shared cache access conflicts
US7376798B1 (en) 2005-04-07 2008-05-20 Transmeta Corporation Memory management methods and systems that support cache consistency
JP4784928B2 (ja) * 2005-08-24 2011-10-05 株式会社リコー 情報処理装置、情報処理システム、情報処理方法、及び、情報処理プログラムとその記録媒体
US8327075B2 (en) * 2005-12-08 2012-12-04 International Business Machines Corporation Methods and apparatus for handling a cache miss
US7571286B2 (en) * 2006-08-24 2009-08-04 International Business Machines Corporation Reduced memory traffic via detection and tracking of temporally silent stores
US8874855B2 (en) 2009-12-28 2014-10-28 Empire Technology Development Llc Directory-based coherence caching
CN102122256B (zh) * 2011-03-28 2013-01-09 中国人民解放军国防科学技术大学 一种用于进程间通信的管道式通信方法及系统
US20170255569A1 (en) * 2016-03-01 2017-09-07 Qualcomm Incorporated Write-allocation for a cache based on execute permissions
CN108805276B (zh) * 2017-06-16 2020-09-22 上海兆芯集成电路有限公司 处理器、用于操作处理器的方法和计算机可用介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0378399A2 (en) * 1989-01-13 1990-07-18 International Business Machines Corporation Cache content control in multi-processor networks

Family Cites Families (23)

* 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
DE68917326T2 (de) 1988-01-20 1995-03-02 Advanced Micro Devices Inc Organisation eines integrierten Cachespeichers zur flexiblen Anwendung zur Unterstützung von Multiprozessor-Operationen.
US5119485A (en) * 1989-05-15 1992-06-02 Motorola, Inc. Method for data bus snooping in a data processing system by selective concurrent read and invalidate cache operation
US5287484A (en) 1989-06-21 1994-02-15 Hitachi, Ltd. Multi-processor system for invalidating hierarchical cache
JPH061463B2 (ja) 1990-01-16 1994-01-05 インターナショナル・ビジネス・マシーンズ・コーポレーション マルチプロセッサ・システムおよびそのプライベート・キャッシュ制御方法
JP2820752B2 (ja) 1990-01-19 1998-11-05 日本電信電話株式会社 密結合マルチプロセッサシステムにおけるキャッシュメモリ一致制御方法
JPH0625984B2 (ja) 1990-02-20 1994-04-06 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン マルチプロセツサ・システム
CA2051209C (en) 1990-11-30 1996-05-07 Pradeep S. Sindhu Consistency protocols for shared memory multiprocessors
US5282272A (en) 1990-12-21 1994-01-25 Intel Corporation Interrupt distribution scheme for a computer bus
EP0553743A1 (en) 1992-01-31 1993-08-04 Motorola, Inc. A cache controller
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 分散共有メモリ型マルチプロセッサシステム
JP3013631B2 (ja) 1992-09-28 2000-02-28 日本電気株式会社 キャッシュメモリ同期方法
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
US5666509A (en) 1994-03-24 1997-09-09 Motorola, Inc. Data processing system for performing either a precise memory access or an imprecise memory access based upon a logical address value and method thereof
EP0681240B1 (en) 1994-05-03 2001-01-10 Hewlett-Packard Company Duplicate cache tag memory 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
US5551001A (en) * 1994-06-29 1996-08-27 Exponential Technology, Inc. Master-slave cache system for instruction and data cache memories
US6038644A (en) 1996-03-19 2000-03-14 Hitachi, Ltd. Multiprocessor system with partial broadcast capability of a cache coherent processing request
US5900016A (en) 1997-04-02 1999-05-04 Opti Inc. System for using a cache memory with a write-back architecture
US6049849A (en) * 1997-04-14 2000-04-11 International Business Machines Corporation Imprecise method and system for selecting an alternative cache entry for replacement in response to a conflict between cache operation requests

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0378399A2 (en) * 1989-01-13 1990-07-18 International Business Machines Corporation Cache content control in multi-processor networks

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7418555B2 (en) 2003-07-22 2008-08-26 Samsung Electronics Co., Ltd Multiprocessor system and method to maintain cache coherence

Also Published As

Publication number Publication date
US6263407B1 (en) 2001-07-17
EP0936554B1 (en) 2001-12-19
CN1231444A (zh) 1999-10-13
JP3277171B2 (ja) 2002-04-22
DE69900611T2 (de) 2002-08-22
HK1022970A1 (en) 2000-08-25
JPH11328025A (ja) 1999-11-30
CN1131481C (zh) 2003-12-17
EP0936554A3 (en) 2000-01-26
EP0936554A2 (en) 1999-08-18
DE69900611D1 (de) 2002-01-31
ID22046A (id) 1999-08-26
MY122483A (en) 2006-04-29
KR19990072595A (ko) 1999-09-27
TW426824B (en) 2001-03-21

Similar Documents

Publication Publication Date Title
KR100330934B1 (ko) 정밀 모드 및 비정밀 모드를 갖는 호버링(h) 상태를 포함하는 캐시 일관성 프로토콜
KR100326980B1 (ko) 다중-레벨 메모리 계층 구조를 포함하는 데이터 처리 시스템용 캐시 일관성 프로토콜
US8495308B2 (en) Processor, data processing system and method supporting a shared global coherency state
US7032074B2 (en) Method and mechanism to use a cache to translate from a virtual bus to a physical bus
US6571322B2 (en) Multiprocessor computer system with sectored cache line mechanism for cache intervention
US6266743B1 (en) Method and system for providing an eviction protocol within a non-uniform memory access system
KR100322225B1 (ko) 배회(h) 상태 및 최근(r) 상태를 갖는캐쉬 코히어런시 프로토콜
KR101072174B1 (ko) 능동적 프리페치들로 향상된 호버 상태를 실시하는 시스템 및 방법
US6615321B2 (en) Mechanism for collapsing store misses in an SMP computer system
KR100326632B1 (ko) 에이치_알 상태를 포함하는 캐시 일관성 프로토콜
US6415358B1 (en) Cache coherency protocol having an imprecise hovering (H) state for instructions and data
US6687795B2 (en) Data processing system and method of communication that reduce latency of write transactions subject to retry
US6272603B1 (en) Cache coherency protocol having hovering (H), recent (R), and tagged (T) states
US6484241B2 (en) Multiprocessor computer system with sectored cache line system bus protocol mechanism
KR19990072313A (ko) 명령어및데이터를위한배회상태를가지는캐시코히어런시프로토콜
US6553462B2 (en) Multiprocessor computer system with sectored cache line mechanism for load and store operations
US20020112130A1 (en) Store collapsing mechanism for SMP computer system
US6826655B2 (en) Apparatus for imprecisely tracking cache line inclusivity of a higher level cache
US6324617B1 (en) Method and system for communicating tags of data access target and castout victim in a single data transfer

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

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee