KR100841129B1 - 멀티-인터페이스 캐시들 내의 조인트 캐시 일관성 상태들을 위한 방법 및 장치 - Google Patents

멀티-인터페이스 캐시들 내의 조인트 캐시 일관성 상태들을 위한 방법 및 장치 Download PDF

Info

Publication number
KR100841129B1
KR100841129B1 KR1020067005039A KR20067005039A KR100841129B1 KR 100841129 B1 KR100841129 B1 KR 100841129B1 KR 1020067005039 A KR1020067005039 A KR 1020067005039A KR 20067005039 A KR20067005039 A KR 20067005039A KR 100841129 B1 KR100841129 B1 KR 100841129B1
Authority
KR
South Korea
Prior art keywords
cache
state
cache coherency
coherency state
interface
Prior art date
Application number
KR1020067005039A
Other languages
English (en)
Other versions
KR20060087561A (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 KR20060087561A publication Critical patent/KR20060087561A/ko
Application granted granted Critical
Publication of KR100841129B1 publication Critical patent/KR100841129B1/ko

Links

Images

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
    • 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/0815Cache consistency protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/50Control mechanisms for virtual memory, cache or TLB
    • G06F2212/507Control mechanisms for virtual memory, cache or TLB using speculative control

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 상태를 가질 수 있으며, 제2 상태는 제1 상태보다 높은 특권을 갖는다. 일 실시예에서 이것은 불확실한 무효화를 장려할 수 있다. 다른 실시예들에서 이것은 내부 인터페이스 상의 스누프 트랜잭션(snoop transaction)들을 감소시킬 수 있다.
캐시 일관성(cache coherency), 스누프, MESI 프로토콜, 멀티프로세서, 멀티-인터페이스

Description

멀티-인터페이스 캐시들 내의 조인트 캐시 일관성 상태들을 위한 방법 및 장치{METHOD AND APPARATUS FOR JOINT CACHE COHERENCY STATES IN MULTI-INTERFACE CACHES}
본 명세서는 일반적으로 마이크로프로세서 시스템들에 관한 것이며, 더 자세하게는 다수의 인터페이스를 통해 캐시들에 액세스할 수 있는 마이크로프로세서 시스템들에 관련된다.
마이크로프로세서들의 프로세싱 처리량(processing throughput)을 높이기 위해, 프로세서들은 일련의 캐시에 데이터를 보유할 수 있다. 멀티-프로세서 환경에서 이러한 캐시들을 사용하기 위해, 다양한 캐시 일관성 프로토콜(cache-coherency protocol)들이 진화해왔다. 이러한 캐시 일관성 기법들은 캐시 일관성 상태(cache-coherency state)라고 불리는 속성을, 캐시들의 다양한 캐시 라인(cache line)과 연관시킬 수 있다. 보통의 캐시-일관성 프로토콜은 "일리노이 프로토콜(Illinois Protocol)"이라고 불릴 수 있고, 비공식적으로 MESI(modified/exclusive/shared/invalid) 프로토콜이라고도 불릴 수 있는 것인데, 각 캐시 라인이 네 개의 MESI 상태 중 하나와 연관될 수 있다. 다른 보통의 캐시 일관성 프로토콜들은 부가적인 상태들을 포함할 수 있다. 이런 식으로, 아마도 수 정된 소정의 캐시 라인의 다수의 복제본들이 예측가능하고 일관성 있는 방식으로 멀티-프로세서 시스템의 다양한 캐시 사이에서 존재할 수 있다.
기존의 MESI 상태들은 소정의 성능제한 속성들을 가질 수 있다. 한 상황에서, 내부 레벨 캐시(예를 들면 레벨 1 캐시)의 변경된 캐시 라인이 무효로 되고 그의 변경된 데이터를 외부 레벨 캐시(예를 들면 레벨 2 캐시)에 기록하기 원할 때, 외부 레벨 캐시는 차례로 무효가 되고 그의 변경된 데이터를 훨씬 많은 외부 레벨 캐시 또는 시스템 메모리에 기록할 수 있다. 이러한 것은, 만약 외부 레벨 인터페이스들 상에 상당한 트래픽이 있다면 유리하지 않을 수 있다. 또 다른 상황에서, 스누프 요청이 외부 레벨 캐시에 도착할 때, 임의의 내부 레벨 캐시로 보내져야 한다. 이러한 것은, 만약 내부 레벨 인터페이스들을 통해 내부 레벨 캐시들의 상당한 사용이 있다면 유리하지 않을 수 있다.
본 발명은, 유사한 참조번호들이 비슷한 요소들을 나타내는 첨부도면들에 한정이 아닌, 예로서 예시된다.
도 1은 일 실시예에 따른, 다수의 인터페이스를 통해 액세스가능한 캐시들의 개략도이다.
도 2는 일 실시예에 따른, 조인트 캐시 일관성 상태(joint cache coherency state)들을 도시하는 차트이다.
도 3A 및 3B는 본 발명의 일 실시예에 따른 배타-공유(exclusive-shared) 상태에 있는 캐시로 수행하는 동작들을 도시하는 도면들이다.
도 4는 본 발명의 일 실시예에 따른, 변경-무효(modified-invalid) 상태에 있는 캐시로 수행하는 동작들을 도시하는 도면이다.
도 5는 본 발명의 일 실시예에 따른, 변경-공유(modified-shared) 상태에 있는 캐시로 수행하는 동작들을 도시하는 도면이다.
도 6은 본 발명의 일 실시예에 따른, 배타-무효(exclusive-invalid) 상태에 있는 캐시로 수행하는 동작들을 도시하는 도면이다.
도 7은 본 발명의 일 실시예에 따른, 공유-무효(shared-invalid) 상태에 있는 캐시로 수행하는 동작들을 도시하는 도면이다.
도 8은 본 발명의 일 실시예에 따른 프로세서 시스템의 개략도이다.
다음의 설명은 멀티 프로세서 환경에서 캐시들 사이의 일관성을 진전시키기 위한 기술들을 설명한다. 다음의 설명에서, 논리 구현들, 소프트웨어 모듈 할당, 버스 신호 방식 기술들, 및 동작의 세부사항과 같은 수많은 특정한 세부사항들이 본 발명의 보다 완전한 이해를 제공하기 위해 개시된다. 그러나 본 기술분야의 당업자들은, 본 발명이 그러한 특정한 세부사항들 없이도 실시될 수 있다는 것을 이해할 것이다. 다른 예들에서, 제어 구조들, 게이트 레벨 회로들 및 전체 소프트웨어 명령 시퀀스들은 본 발명을 모호하게 하지 않기 위해 세부적으로 도시되지 않았다. 본 기술분야의 당업자들은 포함된 설명들을 가지고, 과도한 실험없이 적절한 기능을 구현할 수 있을 것이다. 본 발명은, 일리노이 또는 (비공식적 용어로) MESI(변경/배타/공유/무효) 캐시 일관성 프로토콜을 사용할 수 있는, Intel ® 주식회사에 의해 제작된 Pentium 4 ®급(class) 시스템(machine)과 같은 프로세서의 형태로 개시되었다. 그러나 본 발명은 캐시들을 사용하고 다른 형태들의 캐시 일관성 프로토콜들을 구현할 수 있는 다른 형태들의 프로세서에서 실시될 수 있다. 도면들에 도시된 소정의 실시예들에서, 프로세서들과 그 메모리들 및 캐시들 사이에 도시된 인터페이스들은 버스들 또는 지점 간 인터페이스들 중 하나로서 도시될 수 있다. 그러나 본 발명은 버스들이 지점 간 인터페이스들로 대체되고 지점 간 인터페이스들이 버스들로 대체된 때에도 실시될 수 있다.
이제 도 1을 참조하면, 일 실시예에 따른, 다수의 인터페이스를 통해 액세스가능한 캐시들의 개략도가 도시된다. 멀티 프로세서 시스템(100)은 프로세서들(130, 150) 및 시스템 메모리(110)를 포함할 수 있다. 일 실시예에서, 이들은 시스템 버스(140)인 인터페이스와 접속될 수 있다. 다른 실시예들에서, 프로세서들( 130, 150)과 시스템 메모리(110) 사이의 지점 간 인터페이스들을 포함하는 다른 인터페이스들이 사용될 수 있다. 일 실시예에서, L1 캐시들(132, 152)과 같은 내부 레벨 캐시들이 개별적인 프로세서들(130, 150)에 연결될 수 있다. 그러나 L2 캐시들(136, 156)과 같은 외부 레벨 캐시들은 하나의 인터페이스 및 프로세서에 연결되기보다는 오히려 두 개의 인터페이스에 연결될 수 있다. 도 1의 실시예에서, L2 캐시들 (136, 156)이 연결되는 인터페이스들은 각각 시스템 버스(140) 및 브리지 인터페이스(134, 154)이다.
L1 캐시(132)가 L2 캐시(136)로부터 캐시 라인을 로드(load)할 때, L1 캐시(132)의 캐시 라인의 복제본은 일반적으로 L2 캐시(136)의 캐시 라인과 연관되었던 캐시 일관성 상태를 취할 것이다. 예를 들면, 만약 L2 캐시(136)의 캐시 라인이 E라는 일관성 상태를 가진다면, L1 캐시(132)의 그 캐시 라인의 복제본도 E라는 일관성 상태를 가질 것이다. 캐시 라인을 변경하려는 의도가 없었다 하더라도 L1 캐시(132)의 캐시 라인의 복제본은 E 상태를 가질 것이다. 보다 제한적인 S 상태가 L1 캐시(132)에 의해 사용될 수 있지만, 그래도 E 상태가 전달된다.
또 다른 예에서, 만약 L2 캐시(136)의 캐시 라인 및 L1 캐시(132)의 그 캐시 라인의 복제본이 M 상태에 있다면, 그 후, 또 다른 캐시가 E 상태에 있는 그 캐시 라인을 얻고자 한다면 L2 캐시(136)의 캐시 라인과 L1 캐시(132)의 그 캐시 라인의 복제본 모두는 순차 방식으로 I 상태로 변경될 필요가 있다. 이것은 상대적으로 긴 시간을 필요로 할 것이고, L1 캐시(132)와 프로세서(130) 사이의 다른 교환들의 타이밍과 충돌할 수 있다.
앞의 두 단락에서 논의된 상황들을 보다 효율적으로 다루기 위해, 일 실시예에서 L2 캐시(136)는, 브리지 인터페이스(134)로부터 보았을 때 시스템 버스(140)로부터 본 때와 다른 캐시 일관성 상태를 보일 수 있다. 그러한 조인트 캐시 일관성 상태들은 분리된 인터페이스들 내에서 전통적인 캐시 일관성 상태들의 행동을 보일 수 있다. 조인트 캐시 일관성 상태를 "AB"라고 표시하면, 여기서 "A"는 (프로세서 코어로부터 보다 먼) 외부 인터페이스로부터 보여지는 캐시 일관성 상태이고 "B"는 (프로세서 코어에 보다 가까운) 내부 인터페이스로부터 보여지는 캐시 일관성 상태이다. 일 실시예에서, L2 캐시(136)가 ES 상태의 캐시 라인을 갖는다면, L1 캐시(132)는 S 상태의 그 캐시 라인의 복제본을 수신할 수 있다. S 상태의 이러한 복제본은 프로세서(130)에 의한 사용에 충분할 수 있다. 그리고 프로세서(150)와 같은, 시스템 버스(140) 상의 또 다른 에이전트가 S 상태의 그 캐시 라인을 갖기 원한다면, L1 캐시(132)의 캐시 라인의 복제본은 이미 S 상태에 있기 때문에 스누핑(snooping)이 L2 캐시(136)에서 멈출 수 있다. 이것은, 스누프 트랜잭션들의 감소된 숫자로 인해 브리지 인터페이스(134) 상의 전송들의 성능을 높일 수 있다.
또 다른 실시예에서, 각각 M 상태의 캐시 라인의 복제본들을 가지는 L2 캐시(136) 및 L1 캐시(132)를 고려해보자. 프로세서(130)가 캐시 라인에 임의의 추가 변경들을 이행하지 않을 그러한 경우들에서, 강제적인(또는 명시적, 즉 불확실하지 않은) 무효 상태가 나중에 발생할 때까지 기다리는 것과는 반대로, L1 캐시 (132)의 캐시 라인을 불확실하게 무효화하는 것이 유리할 수 있다. 그래서, 일 실시예에서 L1 캐시(132)의 캐시 라인은 I 상태로 불확실하게 무효화될 수 있지만 L2 캐시(136)의 캐시 라인의 복제본은 MI 상태로 진전될 수 있다. 이런 방식으로 L1 캐시(132)의 캐시 라인의 복제본은 무효화되지만 L2 캐시(136)의 캐시 라인의 복제본은 시스템 버스(140) 상의 에이전트의 관점에서 M 상태로 보존될 수 있다. L2 캐시(136)로부터의 시스템 메모리(110)에 대한 변경된 캐시 라인의 최후의 후기입(write-back)은 시스템 성능을 높이기 위해 지연될 수 있다. 다른 실시예들에서, MI 상태는 명시적 무효화의 경우들도 지원할 수 있다.
이제 도 2를 참조하면, 일 실시예에 따른, 조인트 캐시 일관성 상태들의 차트가 도시된다. 차트는 내부 인터페이스 및 외부 인터페이스에 의해 액세스가능한 캐시에 대한, 가능한 조인트 캐시 일관성 상태들을 도시하지만, 다양한 실시예들에서, 차트로부터의 상태들의 다양한 세트들이, 상태들의 다른 세트들이 구현되지 않으면서 구현될 수 있다. 일 실시예에서, 외부 인터페이스에 대한 캐시 일관성 상태가 내부 인터페이스에 대한 캐시 일관성 상태와 비교해서 같거나 그보다 덜 제한적인 특권(privilege)을 갖는 조인트 상태들이 캐시 라인에 대해 존재한다. 예를 들면, 두 개의 캐시 코히어런시 상태가 같아서, 차트의 대각선 방향으로 내려오는 단순한 MESI 캐시 상태들을 제공할 수 있다. 그러나 외부 인터페이스에 대한 캐시 라인의 캐시 일관성 상태가 내부 인터페이스에 대한 캐시 일관성 상태에 비해 덜 제한적인 특권을 갖는 조인트 상태들이 부가적으로 존재할 수 있다. 일 실시예에서, 내부 인터페이스에 대한 캐시 라인의 캐시 일관성 상태는 S일 수 있으나, 외부 인터페이스에 대한 그 캐시 라인의 캐시 일관성 상태는 E 또는 심지어 M일 수 있다. 유사하게, 또 다른 실시예에서 내부 인터페이스에 대한 캐시 라인의 캐시 일관성 상태는 I일 수 있으나, 외부 인터페이스에 대한 그 캐시 라인의 캐시 일관성 상태는 S, E 또는 심지어 M일 수 있다.
도 2의 차트에서의 하나의 특별한 경우는 캐시 라인의 캐시 일관성 상태가 외부 인터페이스에 대해서는 M이지만 내부 인터페이스에 대해서는 E일 때이다. 차트는 이러한 조인트 상태를 단순히 M 상태로 식별한다. 이것은 E로부터 M으로의 전환이 소정의 통지 없이도 현재 허용되기 때문으로 이해될 수 있다. 이러한 이유로 ME 상태는 필요하지 않고, 단순한 M 상태로 충분할 수 있다.
도 2의 조인트 캐시 일관성 상태들을 보는 하나의 방식은 캐싱 계층구조(caching hierarchy)의 내부 레벨에서 이용가능한 최대 캐시 라인 상태 권리들을 내부 인터페이스 상태가 보여주는 것이다. 바꾸어 말하면, 캐시 라인 상태는 말없이 또는 소정의 통지와 함께 해당 내부 레벨에서 강등될 수 있다. 주목할 것은, S로 가는 E, I로 가는 E, 또는 I로 가는 S와 같은 E 및 S 상태들로부터의 강등들이 캐싱 계층구조의 외부 레벨들로의 통지 또는 데이터 전송들을 요구하지 않을 수 있다는 것이다. 그러나 M 상태로부터의 강등들은, 때때로 후기입 동작이라고 불리는 프로세스에서 캐싱 계층구조의 외부 레벨들에 변경된 데이터가 제공될 것을 요구할 수도 있다.
이제 도 3A를 참조하면, 본 발명의 일 실시예에 따른, 배타-공유 상태인 ES 상태에서 동작할 수 있는 캐시로 수행하는 동작들의 도면이 도시된다. 처음에 L2 캐시(316)의 캐시 라인(322)은 E 상태에 있을 수 있다. 캐시 라인의 복제본이 L1 캐시(312)에 의해 요청될 때, 캐시 라인(322)의 상태는 ES로 진전(350)될 수 있다. 그 후 캐시 라인(320)의 복제본이 상태 S로 L1 캐시(312)에 전송될 수 있다.
상태 S를 갖는 캐시 라인(320)의 복제본은 또 다른 캐시가 그 캐시 라인을 원한다면 이점이 있다. 임의의 다른 캐시가 복제본을 갖는지를 판정하기 위해 스누핑하는 외부 인터페이스(336)의 원단(far end)에 있는 캐시(332)를 고려해보자. 스누프 트랜잭션(snoop transaction)(360)이 L2 캐시(316)에 문의할 때 L1 캐시(312)의 캐시 라인(320)의 복제본이 이미 S 상태에 있기 때문에, 캐시 라인(322)의 복제본을 직접 S 상태로 진전(362)시킬 수 있다. 이것은, 브리지 인터페이스(314) 상의 임의의 추가 스누핑 트랜잭션들을 불필요하게 한다. 그래서 이러한 실시예에서 내부 인터페이스 상의 스누프 트랜잭션들이 감소한다.
또 다른 실시예에서, ES 캐시 라인 상태는, ES 라인 상태에 있는 캐시에 의해 캐시 라인이 배타적으로 소유되었다(즉, 배타적인 상태 또는 E 상태이다)는 것을 피어(peer)들(및 외부 레벨 캐시들)이 인식한다는 것을 가리킬 수 있다. 캐싱 계층구조가 내부 레벨에서 ES 상태인 캐시 라인을 가질 때, 외부 레벨의 포괄적인 캐시들은 E 상태의 그 캐시 라인을 지녀야 한다.
일 실시예에서, 외부 레벨이 캐시 라인에 대해 배타적으로 액세스하지만 내부 레벨은 단지 공유된 액세스를 요청했을 때 캐시 라인은 ES 상태를 획득할 수 있다. 배타적인 권리들이 승인되었다는 지식을 보존하면서 공유된 캐시 라인 권리들을 내부 레벨로 전달하는 것은 성능 개선을 위해 이용될 수 있는 정보를 부가하는 것으로 간주될 수 있다.
일 실시예에서, ES 상태 캐시 라인은 그 캐시 라인에 대한 피어 액세스에 대한 S 상태 또는 I 상태 중 하나에 스누프되어야 한다. 전술된 바와 같이 내부 레벨들을 스누프할 필요 없이 ES에서 S로의 캐시 라인 상태에 있어서의 매우 신속한 감소를 유발하기 위해 ES 상태는 S 상태로의 변화를 요청하는 스누프를 허용할 수 있다. 이것은, 포함(inclusion) 및 일관성(coherence)을 유지하기 위해 S 상태로의 변화를 요청하는 내부 레벨 스누프를 발행하고 그 결과들을 기다려야 하는 E 상태 캐시 라인과는 대조를 이룰 수 있다. ES 상태는 I 상태로의 변화를 요청하는 스누프들을 도울 수도 있다. 이러한 스누프들은 일관성을 유지하기 위해 내부 레벨들을 스누프해야 하지만, 스누프 결과들을 기다릴 필요는 없다. 따라서, 캐시 라인 상태가 ES 상태에서 E 상태로 전환됨과 함께 ES 상태 캐시 라인에 대한 배타적인 액세스에 대한 내부 레벨 요청은 매우 신속하게 제공될 수 있다.
이제 도 3B를 참조하면, 본 발명의 또 다른 일 실시예에 따른, 배타-공유 상태인 ES 상태에서 동작할 수 있는 캐시로 수행하는 동작들의 도면이 도시된다. 처음에 L2 캐시(316)의 캐시 라인(366) 및 L1 캐시(312)의 캐시 라인(364)은 I 상태에 있을 수 있다(즉, 두 캐시 모두 유효한 상태에 있는 특별한 캐시 라인을 보유하지 않는다). 프로세서(310)가 캐시 라인의 복제본을 요청할 때, L1 캐시(312)에서 캐시 미스(cache miss)를 유발한다. 그래서 L1 캐시(312)는 캐시 라인에 대한 요청(370)을 L2 캐시(316)에 보내는데, 이것은 다시 캐시 미스를 유발시키나, 이번에는 L2 캐시(316)에서 유발시킨다. 만약 다른 캐시들(332)이 유효한 상태에 있는 캐시 라인을 갖지 않는다고 스누핑이 나타내면, 그 후 L2 캐시는 시스템 메모리에 추가 요청(373)을 보낼 수 있다.
메모리(340)가 요청된 캐시 라인을 L2 캐시(316)로 전송(374)할 때, 새롭게 상주하는 캐시 라인 복제본(366)은 I 상태에서 EI 상태로 진전(376)될 수 있다. 그 후 L2 캐시(316)가 캐시 라인을 L1 캐시(312)로 전송(378)할 때, 새롭게 상주하는 캐시 라인 복제본(364)은 I 상태에서 S 상태로 진전(380)될 수 있다. 이것이 일어날 때, L2 캐시(316)의 캐시 라인(366)은 EI 상태로부터 ES 상태로 더 진전(382)될 수 있다.
이제 도 4를 참조하면, 본 발명의 일 실시예에 따른, 변경-무효 상태인 MI 상태에서 동작할 수 있는 캐시로 수행하는 동작들의 도면이 도시된다. 처음에, L1 캐시(412)의 캐시 라인(420) 및 L2 캐시(416)의 캐시 라인(422)의 복제본들은 M 상태에 있을 수 있다. L1 캐시(412)가 후속 변경들 또는 캐시 라인(420)의 복제본의 다른 사용들이 발생하지 않을 것이라고 판정할 때, 캐시 라인(420)을 불확실하게 무효화하는 것을 선택할 수 있다. 일 실시예에서, 이것은 M 상태에서 I 상태로 전환(450)하고, 그 후 변경된 데이터(452)를 캐시 라인(422)으로 보내는 캐시 라인(420)에 의해 발생할 수 있다. 이때 캐시 라인(422)은 M 상태에서 MI 상태로 전환(454)할 수 있다. 다른 실시예들에서, MI 상태는 명시적 무효 상태의 경우들도 지원할 수 있다.
캐시 라인(422)이 MI 상태에 있을 때, 캐시 라인(422)의 변경된 데이터를 메모리(440)로 즉시 보낼 필요가 없을 수 있다. 대신, 최저 최근 사용(least-recently-used) 정책과 같은 캐시 라인 교체 정책에 기초하여 L2 캐시(416)로부터 라인이 무효화되었거나 축출될 때까지 대기하고, 변경된 데이터를 그때 보낼 수 있다. 다른 환경들에서, MI 상태에 있을 때 캐시 라인(422)은 I 상태로의 변화를 요청하는 스누프를 수신할 수 있다. 이것이 발생할 때, 캐시 라인(422)은 변경된 데이터를 메모리(440)로 신속하게 보내야 하나, L1 캐시(412)의 캐시 라인(420)은 이미 I 상태이기 때문에 L1 캐시(412)의 캐시 라인(420)까지 스누프해야 하는 것은 아니다.
일 실시예에서, MI 캐시 라인 상태는 (피어들 사이에서의 배타적인 소유권과 함께) L2 캐시의 변경된 데이터를 가리킬 수 있고 임의의 내부 레벨 캐시에서 캐시 라인이 유효한 상태로 존재하지 않는다는 것을 가리킬 수 있다. 캐시 라인은 내부 레벨 버스로부터 M 상태 데이터를 수신한 결과로 MI 상태에 이를 수 있고, 내부 레벨 캐시들에서 캐시 라인의 모든 복제본들이 무효화되었다는 통지가 그에 뒤따르거나 수반된다. 통지는 캐시 라인 교체의 자발적인 통지(종종 '용량 축출(capacity eviction)' 또는 명시적 후기입(writeback) 동작으로 언급되는)일 수 있고, 또는 무효화 트랜잭션의 주입 때문일 수 있다. MI 상태는 모든 내부 레벨 캐시들이 그들의 캐시 라인의 복제본들을 무효화시켰다는 통지를 수신하는 MS 상태 캐시 라인에서 기인할 수도 있다. 임의의 내부 레벨 캐시에서 캐시 라인이 유효한 상태로 존재하지 않는다는 정보를 보존하면 인입 외부 레벨 스누프들을 서비스하기 위해 내부 레벨 캐시들을 스누프할 필요가 없다. M 상태 데이터를 보유하는 것은 현재의 데이터를 가장 최근에 데이터를 변경한 캐싱 레벨들로 빨리 전달할 수 있게 한다(시간 집약성 최적화).
일 실시예에서, MI 상태 캐시 라인은 캐시 라인에 대한 피어 액세스에 대해 S 상태 또는 I 상태 중 하나로 스누프되어야 한다. 두 경우 모두 내부 레벨들을 스누프할 필요없이 즉각적인 '변경된 데이터' 응답이 그 변경된 데이터의 사실상 즉각적인 가용성(availability)을 가지고 발행될 수 있다. 이것은, 포함 및 일관성을 유지하면서 가능하다면 현재 데이터도 얻기 위해 내부 레벨 스누프를 발행하고 그 후 그 결과들을 기다려야 하는 M 상태의 캐시 라인과는 대조를 이룬다. 따라서, MI 상태 캐시 라인으로의 액세스에 대한 내부 레벨 요청은 신속하게 승인될 수 있다. 캐시 라인의 상태는 내부 레벨로부터의 배타적 액세스 요청에 대해 M으로 전환될 수 있거나 내부 레벨로부터의 공유된 액세스 요청에 대해 MS로 전환될 수 있다.
이제 도 5를 참조하면, 본 발명의 일 실시예에 따른, 변경-공유 상태인 MS 상태에서 동작할 수 있는 캐시로 수행하는 동작들의 도면이 도시된다. 도 5의 실시예에서, 처음에 L2 캐시(516)의 캐시 라인(522)이 MI 상태에 있을 수 있는 한편 L1 캐시(512)의 캐시 라인(520)은 I 상태에 있을 수 있다. 캐시 라인(520)은 캐시 라인(522)의 변경된 데이터를 재판독하고 싶어할 수 있다. 그래서, 변경된 데이터를 L1 캐시(512)로 전송(556)하게 하고 그 후 MI 상태에서 MS 상태로의 캐시 라인(522) 전환(554)을 갖는 요청(552)이 L2 캐시(516)로 보내질 수 있다. 그 후 캐시 라인(520)을 I 상태에서 S 상태로 취하는 또 다른 전환(550)이 발생할 수 있다.
일 실시예에서, MS 캐시 라인 상태는 (피어들 사이에서의 배타적인 소유권과 함께) L2 캐시에 있는 변경된 데이터를 가리킬 수 있고 캐시 라인이 내부 레벨 캐시에서 S 상태에 있을 수 있다는 것을 가리킬 수 있다. 전술된 바와 같이 캐시 라인은 MI 상태 라인을 히트하는 공유된 액세스에 대한 내부 레벨 요청의 결과로 MS 상태에 이를 수 있다. 또는, MS 상태는 내부 레벨 버스로부터 M 상태 데이터를 수신하는 것에 기인할 수 있고, 모든 내부 레벨 캐시들에서 캐시 라인의 모든 복제본이 S 상태(또는 무효 상태)로 강등되었다는 통지가 뒤따른다(또는 수반된다). 임의의 내부 레벨 캐시에서 캐시 라인이 변경되지 않았다는 정보를 보존하면 현재의 데이터에 대해 내부 레벨 캐시들을 스누프할 필요가 없다. M 상태 데이터를 보유하는 것은 그 데이터를 변경할 권리들과 함께 가장 최근에 데이터를 변경한 캐싱 레벨들로 현재 데이터를 빨리 전달할 수 있게 한다(또 다른 시간 집약성 최적화).
일 실시예에서, MS 상태 캐시 라인은 캐시 라인에 대한 피어 액세스에 대해 S 상태로 스누프될 수 있다. 이러한 경우에, 내부 레벨 스누프가 완료되기를 기다릴 필요 없이 같은 시기의 '변경된 데이터' 응답이 그 변경된 데이터의 빠른 가용성을 갖고 발행될 수 있다. 그래서 이러한 특별한 실시예에서 내부 인터페이스 상의 스누프 트랜잭션들이 감소한다. 이것은, 포함 및 일관성을 유지하면서, 가능하다면 현재 데이터도 얻기 위해 내부 레벨 스누프를 발행하고 그 후 그 결과들을 기다려야 하는 M 상태 캐시 라인과 대조를 이룬다. 따라서, MS 상태 캐시 라인으로의 액세스에 대한 내부 레벨 요청은 매우 신속하게 승인될 수 있다. 캐시 라인 상태는 내부 레벨로부터의 배타적인 액세스 요청에 대해 M 상태로 전환될 수 있거나, 캐시 라인 상태는 내부 레벨로부터의 공유된 액세스 요청에 대해 MS 상태에 머무를 수 있다.
이제 도 6을 참조하면, 본 발명의 일 실시예에 따른, 배타-무효 상태인 EI 상태에서 동작할 수 있는 캐시로 수행하는 동작들의 도면이 도시된다. 도 6의 실시예에서, 처음에, E 상태에 있는 L1 캐시(612)의 캐시 라인(620) 및 L2 캐시(616)의 캐시 라인(622)을 생각해보자. 만약 L1 캐시(612)가 캐시 라인(620)이 불확실하게 무효화되어야 한다고 판정하면, 그 후 요청(650)이 L2 캐시(616)로 보내질 수 있고, 전환(654)이 캐시 라인(622)을 E 상태에서 EI 상태로 취할 수 있다. 동시에, 전환(652)에 의해 캐시 라인(620)을 E 상태에서 I 상태로 취할 수 있다. 다른 실시예들에서, EI 상태는 명시적 무효화의 경우들도 지원할 수 있다.
만약 캐시(632)와 같은 또 다른 캐시가 E 상태의 캐시 라인(634)의 복제본을 원한다면, 캐시 라인(622)을 EI 상태에서 I 상태로 취하는 전환(662)을 개시할 수 있는 스누프(660)를 보낼 수 있다. 스누프(660)는 캐시 라인(620)의 복제본이 I 상태라는 것이 이미 알려져 있기 때문에 L1 캐시(612)로 보내질 필요가 없을 수 있다. 그래서 이러한 실시예에서 브리지 인터페이스 상(614)의 스누프 트랜잭션들이 감소한다.
일 실시예에서, EI 캐시 라인 상태는 L2 캐시의 캐시 라인의 배타적인 소유권을 가리킬 수 있고 그 캐시 라인이 임의의 내부 레벨 캐시에 있지 않음을 가리킬 수 있다. 캐시 라인은 내부 레벨 캐시들에서 캐시 라인의 모든 복제본들이 무효화되었다는 통지를 수신하는 E 상태 또는 ES 상태 캐시 라인의 결과로 EI 상태에 이를 수 있다. 임의의 내부 레벨 캐시에서 캐시 라인이 유효한 상태로 존재하지 않는다는 정보를 보존하면 내부 레벨 캐시들을 스누프할 필요가 없다. E 상태로의 유지는 내부 레벨로의 E 상태 또는 S 상태 액세스를 승인함과 함께 현재의 데이터를 빨리 전달할 수 있게 한다.
일 실시예에서, EI 상태 캐시 라인은 캐시 라인으로의 피어 액세스에 대한 SI 상태, S 상태, 또는 I 상태 중 하나로 스누프되어야 한다. 내부 레벨들을 스누프할 필요 없이 캐시 라인을 I 상태로 전환하는 한편, EI 상태 라인에 대한 배타적 액세스에 대한 인입 요청(incoming request)은 스누프에 대한 빠른 '클린(clean)' 응답을 가져온다. EI 상태 라인으로의 공유된 액세스에 대한 인입 요청의 경우는, 캐시 라인을 SI 상태 또는 S 상태로 전환하는 한편, 스누프에 대한 즉각적인 '히트(hit)' 응답을 나타냄으로써 라인을 보존하든지, EI 상태 라인을 축출함으로써 라인을 없애고 '클린' 스누프 결과를 신호하든지 중 어느 한쪽의(어느 정책도 내부 레벨들을 스누핑하는 것을 필요로 하지 않는다) 정책 결정을 요구한다. 이러한 순서들은 포함 및 일관성을 유지하면서, 가능하다면 현재 데이터도 얻기 위해 내부 레벨 스누프를 발행하고 그 결과들을 기다려야 하는 E 상태 캐시 라인과 대조를 이룬다. 따라서, EI 상태 캐시 라인으로의 액세스에 대한 내부 레벨 요청은 매우 신속하게 승인될 수 있다. 캐시 라인 상태는 내부 레벨로부터의 배타적 액세스 요청에 대해 E 상태로 전환될 수 있거나, 또는 내부 레벨로부터의 공유된 액세스 요청에 대해 ES로 전환될 수 있다.
이제 도 7을 참조하면, 본 발명의 일 실시예에 따른, 공유-무효 상태인 SI 상태에서 동작할 수 있는 캐시로 수행하는 동작들의 도면이 도시된다. 도 7의 실시예에서, 처음에, S 상태에 있는 L1 캐시(712)의 캐시 라인(720) 및 L2 캐시(716)의 캐시 라인(722)을 생각해보자. 만약 L1 캐시(712)가 캐시 라인(720)이 불확실하게 무효화되어야 한다고 판정하면, 그 후 요청(750)이 L2 캐시(716)로 보내질 수 있고, 전환(754)에 의해 캐시 라인(722)을 S 상태에서 SI 상태로 취할 수 있다. 거의 동시에, 전환(752)에 의해 캐시 라인(720)을 S 상태에서 I 상태로 취할 수 있다. 다른 실시예들에서, SI 상태는 명시적 무효화의 경우들도 지원할 수 있다.
만약 캐시(732)와 같은 또 다른 캐시가 E 상태의 캐시 라인(734)의 복제본을 원한다면, 캐시 라인(722)을 SI 상태에서 I 상태로 취하는 전환(762)을 개시할 수 있는 스누프(760)를 보낼 수 있다. 스누프(760)는 캐시 라인(720)의 복제본이 I 상태라는 것이 이미 알려져 있기 때문에 L1 캐시(712)로 보내질 필요가 없을 수 있다. 그래서 이러한 실시예에서 브리지 인터페이스(714) 상의 스누프 트랜잭션들이 감소한다.
일 실시예에서, SI 캐시 라인 상태는 L2 캐시의 공유된 데이터를 가리키거나, 그 캐시 라인이 임의의 내부 레벨 캐시의 임의의 유효한 상태에 있지 않음을 가리킬 수 있다. 캐시 라인은 내부 레벨 캐시들에서 캐시 라인의 모든 복제본들이 무효화되었다는 통지를 수신하는 S 상태 라인의 결과로 SI 상태에 이를 수 있다. 임의의 내부 레벨 캐시에 캐시 라인이 존재하지 않는다는 정보를 보존하면 인입 스누프들을 서비스할 때 내부 레벨 캐시들에 통지할 필요가 없다. S 상태로의 유지는 내부 레벨로의 S 상태 액세스를 승인함과 함께 현재 데이터를 빨리 전달할 수 있게 한다. 내부 레벨들을 스누프할 필요없이 캐시 라인을 I 상태로 전환하는 한편, SI 상태 라인에 대한 배타적 액세스에 대한 인입 요청은 스누프에 대한 빠른 '클린' 응답을 가져올 수 있다. 이러한 순서는 내부 레벨 스누프를 발행해야 하는 S 상태 캐시 라인과 대조를 이룬다. SI 상태에 대한 공유된 액세스에 대한 인입 요청은 S 상태와 동등하게 취급된다: 그것은 SI 캐시 라인 상태의 변화없이 빠른 '히트' 응답을 가져온다.
이제 도 8을 참조하면, 본 발명의 일 실시예에 따른 프로세서 시스템의 개략도가 도시된다. 명료함을 위해 두 개의 프로세서(40, 60)만이 도시된 도 8의 시스템은 수 개의 프로세서를 포함할 수 있다. 프로세서들(40, 60)은 도 1의 캐시 구성을 포함하는, 도 1의 프로세서(130)일 수 있다. 프로세서들(40, 60)은 L1 캐시들(46, 66) 및 L2 캐시들(42, 62)을 포함할 수 있다. 도 8의 멀티프로세서 시스템은 버스 인터페이스들(44, 64, 12, 8)을 경유하여 시스템 버스(6)와 접속된 수 개의 기능들을 가질 수 있다. 일 실시예에서, 시스템 버스(6)는 Intel® 주식회사에 의해 제조된 Pentium 4 ®급 마이크로프로세서들에 이용되는 전면 버스(front side bus)일 수 있다. 버스 인터페이스를 경유하여 시스템 버스와 접속된 기능에 대한 일반적인 이름은 "에이전트(agent)"이다. 에이전트의 예들은 프로세서들(40, 60), 버스 브리지(32), 및 메모리 컨트롤러(34)이다. 소정의 실시예들에서 메모리 컨트롤러(34) 및 버스 브리지(32)는 집합적으로 칩셋이라 불릴 수 있다. 소정의 실시예들에서, 칩셋의 기능들은 도 8의 실시예에서 보여진 것과는 다르게 물리적인 칩들 사이에서 나누어질 수 있다.
메모리 컨트롤러(34)는 프로세서들(40, 60)이 시스템 메모리(10)와 BIOS(basic input/output system) EPROM(erasable programmable read-only memory)(36)으로부터 판독하고 기록하도록 허용할 수 있다. 소정의 실시예들에서 BIOS EPROM(36)은 플래시 메모리를 이용할 수 있다. 메모리 컨트롤러(34)는 메모리가, 시스템 버스(6) 상의 버스 에이전트들로 및 버스 에이전트들로부터 전해질 데이터를 판독 및 기록하는 것을 허용하기 위해, 버스 인터페이스(8)를 포함할 수 있다. 메모리 컨트롤러(34)는 고성능 그래픽 인터페이스(39)를 통해 고성능 그래픽 회로(38)와 접속될 수도 있다. 소정의 실시예들에서 고성능 그래픽 인터페이스(39)는 AGP(advanced graphics port) 인터페이스, 또는 4X AGP 또는 8X AGP와 같은 배수가 되는 속도로 동작하는 AGP 인터페이스일 수 있다. 메모리 컨트롤러(34)는 시스템 메모리(10)로부터 고성능 그래픽 회로(38)로 고성능 그래픽 인터페이스(39)를 통해 데이터를 직접 판독할 수 있다.
버스 브리지(32)는, 소정의 실시예들에서 ISA(industry standard architecture) 버스 또는 PCI(peripheral component interconnect) 버스일 수 있는 시스템 버스(6)와 버스(16) 사이의 데이터 교환들을 허용할 수 있다. 소정의 실시예들에서 낮은 성능의 그래픽 컨트롤러들, 비디오 컨트롤러들, 및 네트워킹 컨트롤러들을 포함하는, 다양한 입력/출력 I/O 디바이스들(14)이 버스(16) 상에 있을 수 있다. 또 다른 버스 브리지(18)는 소정의 실시예들에서 버스(16)와 버스(20) 사이의 데이터 교환을 허용하는데 사용될 수 있다. 버스(20)는 소정의 실시예들에서 SCSI(small computer system interface) 버스, IDE(integrated drive electronics) 버스, 또는 USB(universal serial bus) 버스일 수 있다. 부가적인 I/O 디바이스들이 버스(20)와 접속될 수 있다. 이들은 마우스를 포함하는 커서 제어 디바이스들 및 키보드(22), 오디오 I/O(24), 모뎀들 및 네트워크 인터페이스들을 포함하는 통신 디바이스들(26), 및 데이터 저장 디바이스들(28)을 포함할 수 있다. 소프트웨어 코드(30)는 데이터 저장 디바이스(28)에 저장될 수 있다. 소정의 실시예들에서, 데이터 저장 디바이스(28)는 고정형 자기 디스크, 플로피 디스크 드라이브, 광 디스크 드라이브, 광자기 디스크 드라이브, 자기 테이프, 또는 플래시 메모리를 포함하는 불휘발성 메모리일 수 있다.
전술된 명세서에서, 본 발명은 특정한 예시적인 실시예들을 참조하여 기술되었다. 그러나 첨부된 청구항들에 개시된 본 발명의 보다 넓은 사상 및 범위로부터 떠나지 않고 다양한 수정들 및 변화들이 만들어질 수 있다는 것이 분명할 것이다. 따라서, 본 명세서 및 도면들은 제한적인 의미라기보다는 오히려 예시적인 의미로 여겨져야 한다.

Claims (33)

  1. 제1 인터페이스;
    상기 제1 인터페이스에 직접적으로 연결되지 않은 제2 인터페이스; 및
    상기 제1 인터페이스 및 상기 제2 인터페이스로부터 액세스가능하여, 상기 제1 인터페이스로부터 액세스될 때는 제1 캐시 일관성 상태이고, 상기 제2 인터페이스로부터 액세스될 때는 제2 캐시 일관성 상태인 2개의 캐시 일관성 상태를 갖는 캐시 라인을 포함하고,
    상기 제1 캐시 일관성 상태는 상기 제2 인터페이스가 프로세서에 연결될 때 상기 제2 캐시 일관성 상태보다 높은 특권(privilege)을 갖는 장치.
  2. 삭제
  3. 제1항에 있어서,
    상기 제2 캐시 일관성 상태는 상기 제2 인터페이스 상의 스누프 트랜잭션(snoop transaction)들을 감소시키는 장치.
  4. 제1항에 있어서,
    상기 제1 캐시 일관성 상태는 배타(exclusive) 상태이고 상기 제2 캐시 일관성 상태는 공유(shared) 상태인 장치.
  5. 제1항에 있어서,
    상기 제1 캐시 일관성 상태는 변경(modified) 상태이고 상기 제2 캐시 일관성 상태는 공유 상태인 장치.
  6. 제3항에 있어서,
    상기 제2 캐시 일관성 상태는 불확실한 무효 상태(speculative invalidation)를 지원하는 장치.
  7. 제6항에 있어서,
    상기 제1 캐시 일관성 상태는 변경 상태이고 상기 제2 캐시 일관성 상태는 무효(invalid) 상태인 장치.
  8. 제6항에 있어서,
    상기 제1 캐시 일관성 상태는 배타 상태이고 상기 제2 캐시 일관성 상태는 무효 상태인 장치.
  9. 제6항에 있어서,
    상기 제1 캐시 일관성 상태는 공유 상태이고 상기 제2 캐시 일관성 상태는 무효 상태인 장치.
  10. 제6항에 있어서,
    상기 제2 캐시 일관성 상태는 명시적 무효 상태(explicit invalidation)를 더 지원하는 장치.
  11. 제1 캐시의 제1 캐시 라인과 제1 캐시 일관성 상태를 연관시키는 단계- 상기 제1 캐시 일관성 상태는 싱글 캐시 일관성 상태이고, 상기 제1 캐시는 제1 인터페이스 및 제2 인터페이스에 연결됨 -;
    상기 제2 인터페이스를 통해 상기 제1 캐시에 연결된 제2 캐시의 제2 캐시 라인과 제2 캐시 일관성 상태를 연관시키는 단계;
    상기 제1 캐시 일관성 상태를, 상기 제1 인터페이스에 대한 상기 제1 캐시 일관성 상태 및 상기 제2 인터페이스에 대한 제3 캐시 일관성 상태를 포함하는 조인트 캐시 일관성 상태로 전환시키는 단계; 및
    상기 제2 캐시 일관성 상태를 상기 제3 캐시 일관성 상태로 전환시키는 단계
    를 포함하는 방법.
  12. 제11항에 있어서,
    상기 제1 캐시 일관성 상태는 배타 상태이고, 상기 제2 캐시 일관성 상태는 무효 상태이며, 상기 제3 캐시 일관성 상태는 공유 상태인 방법.
  13. 제11항에 있어서,
    상기 제1 캐시 일관성 상태는 변경 상태이고, 상기 제2 캐시 일관성 상태는 변경 상태이며, 상기 제3 캐시 일관성 상태는 무효 상태인 방법.
  14. 제1 캐시의 제1 캐시 라인과 제1 캐시 일관성 상태를 연관시키는 단계- 상기 제1 캐시 일관성 상태는 싱글 캐시 일관성 상태이고, 상기 제1 캐시는 제1 인터페이스 및 제2 인터페이스에 연결됨 -;
    상기 제2 인터페이스를 통해 상기 제1 캐시에 연결된 제2 캐시의 제2 캐시 라인과 제2 캐시 일관성 상태를 연관시키는 단계;
    상기 제2 캐시 일관성 상태를 무효 상태로 전환시키는 단계; 및
    상기 제1 캐시 일관성 상태를, 상기 제1 인터페이스에 대한 상기 제1 캐시 일관성 상태 및 상기 제2 인터페이스에 대한 무효 상태를 포함하는 조인트 캐시 일관성 상태로 전환시키는 단계
    를 포함하는 방법.
  15. 제14항에 있어서,
    상기 제1 캐시 일관성 상태는 변경 상태인 방법.
  16. 제14항에 있어서,
    상기 제1 캐시 일관성 상태는 배타 상태인 방법.
  17. 제14항에 있어서,
    상기 제1 캐시 일관성 상태는 공유 상태인 방법.
  18. 제1 캐시의 제1 캐시 라인과 제1 캐시 일관성 상태를 연관시키는 단계- 상기 제1 캐시 일관성 상태는 싱글 캐시 일관성 상태이고, 상기 제1 캐시는 제1 인터페이스 및 제2 인터페이스에 연결됨 -;
    상기 제2 인터페이스를 통해 상기 제1 캐시에 연결된 제2 캐시의 제2 캐시 라인과 무효 상태를 연관시키는 단계;
    상기 무효 상태를 공유 상태로 전환시키는 단계; 및
    상기 제1 캐시 일관성 상태를 상기 제2 인터페이스에 대한 공유 상태를 포함하는 조인트 캐시 일관성 상태로 전환시키는 단계
    를 포함하는 방법.
  19. 제18항에 있어서,
    상기 제1 캐시 일관성 상태는 무효 상태이고 상기 조인트 캐시 일관성 상태는 배타-공유 상태(exclusive-shared)인 방법.
  20. 제18항에 있어서,
    상기 제1 캐시 일관성 상태는 변경-무효 상태(modified-invalid)이고 상기 조인트 캐시 일관성 상태는 변경-공유 상태(modified-shared)인 방법.
  21. 제1 캐시의 제1 캐시 라인과 제1 캐시 일관성 상태를 연관시키는 수단- 상기 제1 캐시 일관성 상태는 싱글 캐시 일관성 상태이고, 상기 제1 캐시는 제1 인터페이스 및 제2 인터페이스에 연결됨 -;
    상기 제2 인터페이스를 통해 상기 제1 캐시에 연결된 제2 캐시의 제2 캐시 라인과 제2 캐시 일관성 상태를 연관시키는 수단;
    상기 제1 캐시 일관성 상태를, 상기 제1 인터페이스에 대한 상기 제1 캐시 일관성 상태 및 상기 제2 인터페이스에 대한 제3 캐시 일관성 상태를 포함하는 조인트 캐시 일관성 상태로 전환시키는 수단; 및
    상기 제2 캐시 일관성 상태를 상기 제3 캐시 일관성 상태로 전환시키는 수단
    을 포함하는 장치.
  22. 제21항에 있어서,
    상기 제1 캐시 일관성 상태는 배타 상태이고, 상기 제2 캐시 일관성 상태는 무효 상태이며, 상기 제3 캐시 일관성 상태는 공유 상태인 장치.
  23. 제21항에 있어서,
    상기 제1 캐시 일관성 상태는 변경 상태이고, 상기 제2 캐시 일관성 상태는 변경 상태이며, 상기 제3 캐시 일관성 상태는 무효 상태인 장치.
  24. 제1 캐시의 제1 캐시 라인과 제1 캐시 일관성 상태를 연관시키는 수단- 상기 제1 캐시 일관성 상태는 싱글 캐시 일관성 상태이고, 상기 제1 캐시는 제1 인터페이스 및 제2 인터페이스에 연결됨 -;
    상기 제2 인터페이스를 통해 상기 제1 캐시에 연결된 제2 캐시의 제2 캐시 라인과 제2 캐시 일관성 상태를 연관시키는 수단;
    상기 제2 캐시 일관성 상태를 무효 상태로 전환시키는 수단; 및
    상기 제1 캐시 일관성 상태를, 상기 제1 인터페이스에 대한 상기 제1 캐시 일관성 상태 및 상기 제2 인터페이스에 대한 무효 상태를 포함하는 조인트 캐시 일관성 상태로 전환시키는 수단
    을 포함하는 장치.
  25. 제24항에 있어서,
    상기 제1 캐시 일관성 상태는 변경 상태인 장치.
  26. 제24항에 있어서,
    상기 제1 캐시 일관성 상태는 배타 상태인 장치.
  27. 제24항에 있어서,
    상기 제1 캐시 일관성 상태는 공유 상태인 장치.
  28. 제1 캐시의 제1 캐시 라인과 제1 캐시 일관성 상태를 연관시키는 수단- 상기 제1 캐시 일관성 상태는 싱글 캐시 일관성 상태이고, 상기 제1 캐시는 제1 인터페이스 및 제2 인터페이스에 연결됨 -;
    상기 제2 인터페이스를 통해 상기 제1 캐시에 연결된 제2 캐시의 제2 캐시 라인과 무효 상태를 연관시키는 수단;
    상기 무효 상태를 공유 상태로 전환시키는 단계; 및
    상기 제1 캐시 일관성 상태를 상기 제2 인터페이스에 대한 공유 상태를 포함하는 조인트 캐시 일관성 상태로 전환시키는 수단
    을 포함하는 장치.
  29. 제28항에 있어서,
    상기 제1 캐시 일관성 상태는 무효 상태이고 상기 조인트 캐시 일관성 상태는 배타-공유 상태인 장치.
  30. 제28항에 있어서,
    상기 제1 캐시 일관성 상태는 변경-무효 상태이고 상기 조인트 캐시 일관성 상태는 변경-공유 상태인 장치.
  31. 제1 인터페이스 및 제2 인터페이스로부터 액세스가능하여, 상기 제1 인터페이스로부터 액세스될 때는 제1 캐시 일관성 상태이고, 상기 제2 인터페이스로부터 액세스될 때는 제2 캐시 일관성 상태인 2개의 캐시 일관성 상태를 갖는 캐시 라인을 포함하는 캐시- 상기 제1 캐시 일관성 상태는 상기 제2 인터페이스가 프로세서에 연결될 때 상기 제2 캐시 일관성 상태보다 높은 특권을 가짐 -;
    상기 제2 인터페이스에 연결된 제3 인터페이스로의 버스 브리지; 및
    상기 제3 인터페이스에 연결되고, 상기 제3 인터페이스를 통해 상기 캐시에 액세스하는 입력-출력 디바이스
    를 포함하는 시스템.
  32. 삭제
  33. 제31항에 있어서,
    상기 제2 캐시 일관성 상태는 상기 제2 인터페이스 상의 스누프 트랜잭션들을 감소시키는 시스템.
KR1020067005039A 2003-09-12 2004-09-10 멀티-인터페이스 캐시들 내의 조인트 캐시 일관성 상태들을 위한 방법 및 장치 KR100841129B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/662,093 2003-09-12
US10/662,093 US7484044B2 (en) 2003-09-12 2003-09-12 Method and apparatus for joint cache coherency states in multi-interface caches

Publications (2)

Publication Number Publication Date
KR20060087561A KR20060087561A (ko) 2006-08-02
KR100841129B1 true KR100841129B1 (ko) 2008-06-24

Family

ID=34274028

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020067005039A KR100841129B1 (ko) 2003-09-12 2004-09-10 멀티-인터페이스 캐시들 내의 조인트 캐시 일관성 상태들을 위한 방법 및 장치

Country Status (7)

Country Link
US (1) US7484044B2 (ko)
JP (1) JP4660479B2 (ko)
KR (1) KR100841129B1 (ko)
CN (1) CN100592268C (ko)
DE (1) DE112004001677T5 (ko)
GB (1) GB2420206B (ko)
WO (1) WO2005029335A2 (ko)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US7395376B2 (en) * 2005-07-19 2008-07-01 International Business Machines Corporation Method, apparatus, and computer program product for a cache coherency protocol state that predicts locations of shared memory blocks
US7360032B2 (en) * 2005-07-19 2008-04-15 International Business Machines Corporation Method, apparatus, and computer program product for a cache coherency protocol state that predicts locations of modified memory blocks
US20070150663A1 (en) * 2005-12-27 2007-06-28 Abraham Mendelson Device, system and method of multi-state cache coherence scheme
US7577795B2 (en) * 2006-01-25 2009-08-18 International Business Machines Corporation Disowning cache entries on aging out of the entry
US20080109624A1 (en) * 2006-11-03 2008-05-08 Gilbert Jeffrey D Multiprocessor system with private memory sections
KR101944329B1 (ko) 2012-04-17 2019-04-18 삼성전자주식회사 멀티프로세서 시스템 및 그것의 캐쉬 관리 방법
US9436972B2 (en) * 2014-03-27 2016-09-06 Intel Corporation System coherency in a distributed graphics processor hierarchy
CN106502920B (zh) * 2016-11-08 2019-09-24 郑州云海信息技术有限公司 一种基于mesi的缓存方法、装置和处理器
CN108667916B (zh) * 2018-04-24 2021-08-13 百度在线网络技术(北京)有限公司 一种Web应用的数据访问方法及系统
US10564972B1 (en) * 2018-09-28 2020-02-18 Intel Corporation Apparatus and method for efficiently reclaiming demoted cache lines

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000052582A1 (de) * 1999-02-26 2000-09-08 Fujitsu Siemens Computers Gmbh Einrichtung zur erhöhung der leistungsfähigkeit von prozessorsystemen
US20030084248A1 (en) * 2001-10-31 2003-05-01 Gaither Blaine D. Computer performance improvement by adjusting a count used for preemptive eviction of cache entries

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04174042A (ja) * 1990-06-07 1992-06-22 Fujitsu Ltd マルチプロセッサシステム
JP2746530B2 (ja) * 1993-01-30 1998-05-06 洲 植 全 共有メモリマルチプロセッサ
DE69705072T2 (de) * 1996-01-25 2002-03-21 Unisys Corp Verfahren zur ausführung von lese- und schreibbefehlen in einem mehrstufigen verteilten datenverarbeitungssystem
US5895487A (en) * 1996-11-13 1999-04-20 International Business Machines Corporation Integrated processing and L2 DRAM cache
JP3080030B2 (ja) * 1997-03-26 2000-08-21 三菱電機株式会社 階層型キャッシュ装置
JPH11102320A (ja) * 1997-09-29 1999-04-13 Mitsubishi Electric Corp キャッシュシステム
US6341336B1 (en) * 1998-02-17 2002-01-22 International Business Machines Corporation Cache coherency protocol having tagged state used with cross-bars
US6345339B1 (en) 1998-02-17 2002-02-05 International Business Machines Corporation Pseudo precise I-cache inclusivity for vertical caches
US6360301B1 (en) * 1999-04-13 2002-03-19 Hewlett-Packard Company Coherency protocol for computer cache
US6629268B1 (en) * 2000-01-25 2003-09-30 International Business Machines Corporation Method and apparatus for servicing a processing system through a test port
US6574710B1 (en) * 2000-07-31 2003-06-03 Hewlett-Packard Development Company, L.P. Computer cache system with deferred invalidation
JP2002055881A (ja) * 2000-08-08 2002-02-20 Hitachi Ltd キャッシュ一致制御の実現方法およびこれを用いたデータ処理装置
US6763434B2 (en) * 2000-12-30 2004-07-13 International Business Machines Corporation Data processing system and method for resolving a conflict between requests to modify a shared cache line
TWI227402B (en) 2002-06-18 2005-02-01 Ip First Llc Microprocessor and method for performing selective prefetch based on bus activity level

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000052582A1 (de) * 1999-02-26 2000-09-08 Fujitsu Siemens Computers Gmbh Einrichtung zur erhöhung der leistungsfähigkeit von prozessorsystemen
US20030084248A1 (en) * 2001-10-31 2003-05-01 Gaither Blaine D. Computer performance improvement by adjusting a count used for preemptive eviction of cache entries

Also Published As

Publication number Publication date
US7484044B2 (en) 2009-01-27
WO2005029335A3 (en) 2005-08-11
CN100592268C (zh) 2010-02-24
JP2007505407A (ja) 2007-03-08
GB0602497D0 (en) 2006-03-22
DE112004001677T5 (de) 2006-07-06
CN1849594A (zh) 2006-10-18
GB2420206B (en) 2007-03-21
WO2005029335A2 (en) 2005-03-31
US20050060499A1 (en) 2005-03-17
GB2420206A (en) 2006-05-17
KR20060087561A (ko) 2006-08-02
JP4660479B2 (ja) 2011-03-30

Similar Documents

Publication Publication Date Title
US6345342B1 (en) Cache coherency protocol employing a read operation including a programmable flag to indicate deallocation of an intervened cache line
US6721848B2 (en) Method and mechanism to use a cache to translate from a virtual bus to a physical bus
US6976131B2 (en) Method and apparatus for shared cache coherency for a chip multiprocessor or multiprocessor system
US6295582B1 (en) System and method for managing data in an asynchronous I/O cache memory to maintain a predetermined amount of storage space that is readily available
US7373457B2 (en) Cache coherence protocol for a multiple bus multiprocessor system
US5335335A (en) Multiprocessor cache snoop access protocol wherein snoop means performs snooping operations after host bus cycle completion and delays subsequent host bus cycles until snooping operations are completed
US7310708B2 (en) Cache system with groups of lines and with coherency for both single lines and groups of lines
US7308539B2 (en) Concurrent read access and exclusive write access to data in shared memory architecture
US7669009B2 (en) Method and apparatus for run-ahead victim selection to reduce undesirable replacement behavior in inclusive caches
JP3714617B2 (ja) キャッシュ階層で首尾一貫性を維持する方法、コンピュータ・システム、及び処理ユニット
US6321306B1 (en) High performance multiprocessor system with modified-unsolicited cache state
US20090006668A1 (en) Performing direct data transactions with a cache memory
KR100613817B1 (ko) 분산 캐시들을 이용하기 위한 방법 및 장치
US6615321B2 (en) Mechanism for collapsing store misses in an SMP computer system
KR100841129B1 (ko) 멀티-인터페이스 캐시들 내의 조인트 캐시 일관성 상태들을 위한 방법 및 장치
US8332592B2 (en) Graphics processor with snoop filter
US6345344B1 (en) Cache allocation mechanism for modified-unsolicited cache state that modifies victimization priority bits
CN115203071A (zh) 默认共享状态缓存一致性协议的应用
US6374333B1 (en) Cache coherency protocol in which a load instruction hint bit is employed to indicate deallocation of a modified cache line supplied by intervention
US6615320B2 (en) Store collapsing mechanism for SMP computer system
US7234028B2 (en) Power/performance optimized cache using memory write prevention through write snarfing
US6349369B1 (en) Protocol for transferring modified-unsolicited state during data intervention
JP2023509333A (ja) 特定の要求のコヒーレンス保護を延長するキャッシュ・スヌーピング・モード
US7035981B1 (en) Asynchronous input/output cache having reduced latency
US6345343B1 (en) Multiprocessor system bus protocol with command and snoop responses for modified-unsolicited cache state

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

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee