KR19990072593A - 캐시갱신프로토콜을이용한캐시할당해제방법및데이터처리시스템 - Google Patents

캐시갱신프로토콜을이용한캐시할당해제방법및데이터처리시스템 Download PDF

Info

Publication number
KR19990072593A
KR19990072593A KR1019990004877A KR19990004877A KR19990072593A KR 19990072593 A KR19990072593 A KR 19990072593A KR 1019990004877 A KR1019990004877 A KR 1019990004877A KR 19990004877 A KR19990004877 A KR 19990004877A KR 19990072593 A KR19990072593 A KR 19990072593A
Authority
KR
South Korea
Prior art keywords
cache
data
location
level
system bus
Prior art date
Application number
KR1019990004877A
Other languages
English (en)
Other versions
KR100320978B1 (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 KR19990072593A publication Critical patent/KR19990072593A/ko
Application granted granted Critical
Publication of KR100320978B1 publication Critical patent/KR100320978B1/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
    • 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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/128Replacement control using replacement algorithms adapted to multidimensional cache systems, e.g. set-associative, multicache, multiset or multilevel
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1056Simplification

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

본 발명의 캐시 업데이트 프로토콜을 이용한 캐시 할당 해제 방법 및 이를 이용한 데이터 처리 시스템에 따르면, 멀티레벨 캐시 계층에서 최하위 레벨을 제외한 다른 레벨에서 제1캐시로부터 데이터를 퇴거할 때, 데이터는 시스템 버스에 기록되고 상기 캐시 계층 내의 더 낮은 레벨의 제2캐시에 다시 스누프된다. 두 개의 캐시 사이의 전용 데이터 경로는 필요없게 되고, 제2캐시 메모리는 듀얼 포트일 필요가 없다. 제2캐시를 갱신하는데 사용되는 리로드(reload) 경로는 시스템 버스를 벗어나 버려진(cast-out) 데이터를 스누프하는데 재사용된다. 제1캐시가 시스템 버스를 통해 데이터를 내보내기 때문에 제2캐시는 시스템 메모리와 관련해 수정된 데이터를 더 이상 가지고 있지 않고, 멀티 프로세서 시스템의 다른 장치들은 보다 일찍 갱신된다. 추가로 요구되던 비트와 오류 정정 코드(Error Correction Code) 검사가 필요없게 되고, 단순히 패러티 검사로 대체될 수 있다. 제2캐시에 연결된 버스는 보다 적은 비트가 소요되고, 적은 영역을 차지하며, 보다 높은 주파수 영역에서 동작할 수 있다. H-MESI 캐시 일관성 프로토콜과 함께 사용되는 경우, 수평장치는 호버링(hovering) 상태(H)에서 공유 상태(S)로 보다 신속하게 전환된다.

Description

캐시 갱신 프로토콜을 이용한 캐시 할당 해제 방법 및 데이터 처리 시스템{DEALLOCATION WITH CACHE UPDATE PROTOCOL (L2 EVICTIONS)}
본 발명은 데이터 처리(processing) 시스템에서 캐시(caches)로부터 데이터를 퇴거시키는(eviction) 방법 및 데이터 처리 시스템에 관한 것으로서, 구체적으로는, 다중 레벨(multi level) 캐시 계층 구조(hierarchy)를 가진 데이터 처리 시스템에서 캐시로부터 데이터를 내보내는 방법 및 데이터 처리 시스템에 관한 것이며, 더욱 구체적으로는, 다중 레벨 캐시 계층을 가진 데이터 처리 시스템에서 하나의 캐시로부터 논리적 인라인(in-line) 형태로 형성된 캐시로 데이터를 내보내는 방법 및 데이터 처리 시스템에 관한 것이다.
최근 대부분의 데이터 처리 시스템 구조는 기억 장치(storage) 계층 구조 내에 다중 레벨의 캐시 메모리를 포함하고 있다. 캐시는 데이터 처리 시스템 내에서 시스템 메모리와 관련된 액세스 시간 동안 자주 사용되는 데이터에 보다 빨리 액세스하기 위해 사용되고, 이로 인해 전체적인 시스템 동작을 향상시킨다. 비록, 전형적인 경우에 프로세서에 가까운 레벨에 있는 캐시는 로컬 프로세서(local processor) 전용(private)으로 유보되어 있지만, 기억 장치 계층 내에서 임의의 레벨의 캐시들은 로컬 프로세서 전용일수도 있고, 다수의 프로세서가 액세스가능한 공유(shared)일 수도 있다. 논리적으로 프로세서에 가장 가까이에 있는 캐시, 즉 레벨 1 캐시(L1)는 통상적으로 프로세서에서 데이터 캐시와 인스트럭션 캐시가 통합된 형태를 취하지만, 데이터 캐시와 인스트럭션 캐시로 나누어 질 수도 있다. 비록 레벨 2 캐시(L2)는 프로세서로서 하나의 실리콘 다이(die)에서 형성되지만, 일반적으로 낮은 레벨의 캐시는 개별 장치로서 구현된다.
다수의 캐시 레벨을 갖는 캐시를 사용하면, 캐시의 크기가 커지면서 그에 비례하여 액세스 대기시간이 더 길어진다. 작고 빠른 캐시는 기억 계층내에서 프로세서에 보다 가까운 레벨에 사용되고, 크고 느린 캐시는 시스템 메모리에 보다 가까운 레벨에 사용된다. 논리적으로 다중 레벨 캐시 계층내 인라인(in line) 캐시들은 기억 장치 계층 내에서 높은 레벨의 캐시로 또는 캐시로부터 데이터를 스테이징(stage)하는데 사용된다. 데이터가 시스템 메모리나 기억 장치 계층 구조내의 낮은 레벨의 캐시로부터 기억 장치 계층의 높은 레벨의 캐시로 스테이징(stage) 또는 전송되기 때문에, 새로운 데이터를 저장하는데 어느 캐시 위치가 사용되어야 할지를 결정하기 위해 교체 기법―통상적으로, 최근에 최소 사용된 데이터를 교체(replacement)하는 기법―이 이용된다. 흔히 캐시를 "갱신(updating)"한다고 불리워지는 상기 프로세스에 의하면, 상기 교체 기법에 의해 교체되도록 선택된 캐시 위치와 관련되어 수정된 데이터(victim, 이하 "제거 대상"이라 부른다.)는 기억 장치 계층 구조의 낮은 레벨에 다시 기록된다. 수정된 데이터를 제거 대상으로부터 시스템 메모리나 낮은 캐시 레벨로 쓰는 프로세스를 캐스트 아웃(cast out, 이하 "버리기"라 함) 또는 퇴거(eviction)라 부른다.
일반적으로 시스템 메모리에 액세스하는 것은 기억 장치 계층 구조 내의 어떤 캐시로 액세스하는 것에 비하여 대기시간이 오래 걸린다. 예를 들면, 시스템 메모리에 액세스하는 데에는 레벨 3 캐시(L3)에 액세스하는 시간의 4배 정도의 시간이 요구되고, 레벨 2 캐시(L2)에 액세스하는 시간의 10-15배 정도의 시간이 요구된다. 따라서, 기억 장치 계층 구조내에서 최하위 캐시 레벨이 아니 임의의 레벨의 캐시로부터 퇴거된 데이터는 일반적으로 시스템 메모리가 아니라 한 단계 낮은 레벨의 캐시 계층에 기록된다. 예를 들면, 레벨 2 캐시(L2)로부터 버려진 데이터는 시스템 메모리에 기록되는 것이 아니라 레벨 2 캐시와 레벨 3 캐시 사이의 전용 버스를 통해 레벨 3 캐시(L3)에 기록된다. 비록 특정 동작을 위한 대기 시간이 이러한 방법으로 최소화되기는 하지만, 이러한 퇴거 동작은 다중 프로세서 시스템의 다른 장치들은 액세스할 수 없는 기억 장치 계층 구조내의 협소한 부분에 수정된 데이터를 유지하도록 한다.
데이터가 레벨 2 캐시(L2)로부터 레벨 3 캐시(L3)로 레벨 2 캐시(L2)와 레벨 3 캐시(L3) 사이의 전용버스를 통해 내보내어지는 시스템에서, 데이터의 완전성(integrity)을 유지하기 위해서는 오류 정정 코드(error correction code: ECC) 검사(checking)가 필요하다. 이러한 오류 정정 코드 검사는 상기 두개의 캐시 사이를 연결하는 버스에 필요한 비트수를 증가시키는 문제점을 일으킨다. 예를 들면, 64비트 데이터 버스가 레벨 2 캐시와 레벨 3 캐시 사이에 데이터를 전송하는데 사용된다면, 추가로 오류 정정 코드 검사를 하는데 8비트가 필요하게 되어 총 72비트가 필요하게 된다. 이러한 비트수가 많은 버스는 반도체 내의 추가적인 영역을 차지하게 되고, 64비트 버스보다 낮은 주파수에서 동작될 것이 요구될 수 있다.
따라서, 두 개 캐시 사이의 데이터 전송에 대한 오류 정정 코드 검사 또는 두 개의 캐시 사이의 전용 버스를 필요로 함이 없이, 소정의 캐시 레벨로부터 낮은 캐시 레벨로 데이터를 내보낼 수 있도록 하는 것이 필요하다. 또한, 상기 데이터 퇴거 동작이 다중 프로세서 시스템 내의 다른 장치의 스누프(snoop) 로직이 감지할 수 있는 데이터 퇴거 메커니즘을 제공한다면 더욱 바람직 할 것이다.
본 발명의 목적은 데이터 처리 시스템 내의 캐시로부터 데이터를 퇴거하는 개선된 방법 및 장치를 제공하는 것이다.
본 발명의 다른 목적은 다중 레벨의 캐시 계층 구조를 가진 데이터 처리 시스템의 캐시로부터 데이터를 퇴거하는 개선된 방법 및 장치를 제공하는 것이다.
본 발명의 또 다른 목적은 다중 레벨 캐시 계층 구조를 가진 데이터 처리 시스템의 하나의 캐시로부터 논리적으로 인라인 연결된 캐시로 데이터를 내보내기 위한 방법 및 장치를 제공하는 것이다.
도 1은 본 발명의 바람직한 일 실시예에 따른 멀티프로세서 데이터 처리 시스템을 도시한 것이다.
도 2는 본 발명의 바람직한 일 실시예에 따른 캐시 엔트리를 퇴거시키는 매커니즘의 논리 블록도이다.
도 3은 본 발명의 바람직한 일 실시예에 따른 멀티레벨 캐시 계층의 상위 레벨내의 캐시로부터 데이터를 버리는 과정을 나타낸 상위 레벨의 순서도이다.
본 발명의 목적은 이하에서 설명하는 바에 의하여 달성된다. 다중 레벨 캐시 계층 내의 최하위 레벨을 제외한 임의의 레벨의 제1 캐시로부터 데이터를 내보낼 때, 데이터는 시스템 버스에 기록되고 캐시 계층 내에서 더 낮은 레벨 상태를 갖는 제2 캐시로 다시 스누프된다. 두 캐시 사이의 전용 데이터 경로(private data path)는 필요없게 되고, 제2 캐시 메모리는 듀얼 포트일 필요가 없게 된다. 두 번째 캐시를 갱신하는데 사용되는 리로드(reload) 경로는 시스템 버스를 벗어나 버려진(cast-out) 데이터를 스누프하는데 재사용된다. 제1 캐시가 시스템 버스를 통해 데이터를 내보내기 때문에, 제2 캐시는 이전에 갱신된 시스템 메모리 및 다중프로세서 시스템 내의 다른 장치와 관련해 수정된(M) 데이터를 더 이상 가지고 있지 않다. 오류 정정 코드 검사는 더 이상 필요하지 않고, 이와 관련된 추가적인 비트도 필요하지 않으며, 단순한 패러티(parity) 검사로 대체될 수 있다. 제2 캐시를 향하는 버스는 적은 수의 비트로 가능하고, 차지하는 영역도 작아지며, 보다 빠른 주파수에서 동작이 가능하다. H-MESI 캐시 일관성(coherency) 프로토콜(protocol)과 관련해 사용될 때, 수평 장치는 호버링(hovering: H) 상태로부터 공유(shared: S) 상태로 보다 빨리 전환된다.
이하에서는 도 1을 참조하여, 본 발명의 바람직한 일 실시예에 따른 다중프로세서 데이터 처리 시스템에 대해 상세히 설명한다.
데이터 처리 시스템(100)은 다수의 프로세서(102, 104)를 포함하고 있고, 바람직하기로는 미국 뉴욕주 아몬크에 소재하는 IBM사로부터 제공되는 파워패밀리 프로세서중 하나를 포함하고 있는, 대칭형 다중 프로세서(symmetric multiprocessor: SMP) 시스템이다. 비록 예시된 실시예에서는 단지 두 개의 프로세서가 나타나 있지만, 당업자라면 추가 다중 프로세서가 본 발명을 따른 다중프로세서 데이터 처리 시스템에 추가로 사용될 수 있다는 것을 생각할 수 있다.
프로세서(102)와 프로세서(104)는 각각 레벨 1 데이터 캐시(106, 108)와 레벨 1 인스트럭션 캐시(110, 112)를 각각 포함한다. 예시된 실시예에는 양분된 인스트럭션 캐시와 데이터 캐시가 도시되어 있지만, 당업자라면 하나의 일체화된 캐시(L1)가 사용될 수 있다는 것을 인식할 수 있다. 데이터 액세스 대기시간을 최소화하기 위해서, 레벨 2 캐시(114, 116)와 레벨 3 캐시(118, 119)와 같은 데이터 처리 시스템(100) 내에서 하나 이상의 추가 레벨의 캐시 메모리가 사용될 수 있다. 보다 낮은 캐시 레벨(L2, L3)는 데이터를 캐시(L1)로 스테이징하는 데 사용되며, 일반적으로 저장 능력은 더 크지만, 액세스 대기시간은 더 길어진다. 예를 들면, 데이터 캐시(106, 108)와 인스트럭션 캐시(110, 112)는 32KB의 저장 능력과 프로세서 주기의 1 내지 2배의 액세스 대기시간을 가질 수 있다. 레벨 2 캐시(114, 116)은 512KB의 저장능력과 프로세서 주기의 5배의 액세스 대기 시간을 가질 수 있는 반면, 레벨 3 캐시(118, 119)는 4MB의 저장능력과 프로세서 주기의 15배 이상의 액세스 대기시간을 가진다. 레벨 2 캐시(114, 116)와 레벨 3 캐시(118, 119)는 프로세서(102, 104)와 시스템 메모리(120) 사이에 중간 저장영역으로서의 역할을 수행하고, 보다 많은 저장 능력을 가지고 있으며, 프로세서 주기의 50배 이상의 액세스 대기시간을 가진다.
데이터 처리 시스템(100)에 사용되는 캐시 계층 구조 내의 레벨의 수와 캐시 계층 구조의 구성은 가변적이다. 예시된 레벨 2 캐시(114)와 레벨 2 캐시(116)는 시스템 버스(122)를 통해 그 각각의 프로세서(102, 104)와 시스템 메모리(120)에 연결된 전용 캐시이다. 레벨 3 캐시(118, 119)는 레벨 2 캐시(114, 116)와 논리적으로 수직인 룩어사이드(look aside) 캐시로 도시되어 있다. 그 결과, 레벨 2 캐시(114) 또는 레벨 2 캐시(106)가 미스(miss)되고, 레벨 3 캐시(118) 또는 레벨 3 캐시(119)가 히트(hit)되는 경우, 데이터 또는 인스트럭션이 레벨 3 캐시(118) 또는 레벨 3 캐시(119)에서 검색되더라도, 데이터 또는 인스트럭션은 레벨 2 캐시(114, 116) 중 어느 하나와 레벨 3 캐시(118, 119) 중 어느 하나에서 동시에 검색될 수 있다. 당업자라면 도 1에 도시된 레벨과 구성의 다양한 변화가 가능하다는 것을 인식할 수 있다.
레벨 2 캐시(114, 116)와 레벨 3 캐시(118, 119)는 시스템 버스(122)를 통해 시스템 메모리(120)에 연결된다. 또한, 디스플레이와의 연결을 제공하는 그래픽 어댑터와 같은 메모리 맵 장치(memory mapped device: 124) 및 입/출력(I/O), 버스 브리지(126)는 시스템 버스(122)에 연결될 수 있다. 입/출력 버스 브리지(126)는 시스템 버스(122)를 입/출력 버스(128)에 연결시키고, 입/출력 버스(128)는 입/출력 장치(130)와 비휘발성 메모리(132)를 연결시킬수 있다. 시스템 버스(122), 입/출력 버스 브리지(126) 및 입/출력 버스(128)는 부착된 장치와 커플링시키는 연결부를 형성하는데, 이러한 부착장치에 대한 대안적인 실시예는 당업계에 잘 알려져 있다. 입/출력장치(130)는 키보드, 마우스 또는 트랙볼(trackball)과 같은 그래픽 포인팅 장치, 디스플레이 및 프린터를 포함한 통상의 주변장치를 포함하는데, 이러한 주변장치들은 통상의 어댑터를 통해 입출력 버스(128)와 인터페이스한다. 비휘발성 메모리(132)는 하드 디스크 드라이브를 포함하고, 운영 체제와 시스템(100)의 동작을 제어하는 기타 소프트웨어를 저장하는데, 이들은 시스템(100)의 전원의 인가에 응답하여 비휘발성 메모리(120)로 로드된다. 데이터 처리 시스템(100)은 직병렬 포트, 네트워크 또는 주변장치와의 연결장치, 시스템 메모리(120)로의 액세스를 조절하는 메모리 컨트롤러 등과 같이 도 1에는 도시되어 있지 않은 많은 구성요소들을 포함할 수 있다는 것은 당업자라면 인식할 수 있을 것이다. 이러한 변경과 변형은 본 발명의 본직과 범위 내에서 이루어진다.
시스템 버스(122)에 대한 전형적인 통신 트랜잭션(transaction)은 트랜잭션의 소스(source)를 나타내는 소스 태그(tag), 트랜잭션의 목적지 수령처를 특정하는 목적지 태그(tag), 어드레스 및/또는 데이터를 포함한다. 시스템 버스(122)에 연결된 각각의 장치는 바람직하기로는 시스템 버스(122)상의 모든 통신 트랜잭션을 스누프(snoop)하고, 필요할 때에는 다른 수령처를 예정한 통신 트랜잭션을 중재하며, 장치내에 복사된 시스템 메모리를 적절히 변경시켜야 할 때 이를 변경시킨다.
도 2는 본 발명의 바람직한 일 실시예에 따른 캐시 엔트리 퇴거 매커니즘의 논리 블록도이다. 본 발명을 설명하기 위해 도시된 메커니즘은 도1의 레벨 2 캐시(114, 116), 레벨 2 캐시(114, 116)와 각각 관련된 레벨 3 캐시(118, 119), 및 시스템 버스(122)와 관련하여 도시되어 있다. 하지만, 본 발명은 레벨 1 데이터 캐시(106, 108) 및/또는 레벨 1 인스트럭션 캐시(110, 112)와 같은 다중 레벨 캐시 계층 구조 내에서 다른 캐시와 함께 구현될 수 있다. 본 발명은 예를 들어 데이터를 레벨 2 캐시(114)로 스테이징시키는데 사용되는 레벨 2 캐시(114)와 레벨 3 캐시(118) 사이에 전용 버스(200)를 사용하지 않는다. 본 발명에서는, 레벨 2 캐시(114)로부터 퇴거된 데이터는 시스템 버스(122)로의 정상적인 데이터 경로(202)를 통해 시스템 메모리(120)에 기록된다. 퇴거된 데이터는 스누프 로직 경로(204)를 통해 시스템 버스(122)로부터 레벨 3 캐시(118)로 스누프된다. 또한, 퇴거된 데이터는 시스템 버스(122)로부터 스누프 로직 경로(206)을 통해 레벨 2 캐시(116)으로 스누프되고, 스누프 로직 경로(208)을 통해 데이터를 레벨 2 캐시(116)으로 스테이징하는데 사용되는 레벨 3 캐시(119)로 스누프된다. 레벨 2 캐시로부터 데이터를 퇴거하는 상기 메커니즘은 1997년에 출원되고 발명의 명칭이 "Merged Vertical Cache Controller Mechanism"인 본 출원의 관련 미국 특허(제 08/_____)에서 기술된 머지된(merged) 수직 캐시 컨트롤러 메커니즘과 관련해 실시될 수 있다.
레벨 2 캐시(114)로부터 시스템 버스(122)로 내보내진 데이터를 기록하고 레벨 3 캐시(118)로 데이터를 다시 스누프함으로써, 레밸 2 캐시(114)와 레벨 3 캐시(118) 사이의 전용 또는 백도어(back door) 데이터 경로(200)는 필요하지 않게 된다. 레벨 2 캐시(114)는 단지 하나의 데이터 경로를 가지는데, 이 경로는 레벨 2 캐시(114)를 시스템 버스(122)에 연결한다. 레벨 3 캐시(118)를 갱신하는데 사용되는 리로드 경로(204)는 레벨 2 캐시(114)로부터 버려진 데이터(cast outs)를 스누프하는데 재사용된다. 따라서, 레벨 3 캐시(118)용 캐시 메모리는 듀얼 포트일 필요가 없다. 레벨 3 캐시(118)용 캐시 또는 디렉토리에 대한 오류 정정 코드 검사는 불필요하고, 레벨 3 캐시(118)로의 데이터 경로와 관련된 다수의 오류 정정 코드 비트도 필요하지 않게 된다. 이러한 오류 정정 코드 비트들은 레벨 3 캐시(118)로의 데이터 경로 내의 모든 비트들에 대한 하나의 패러티 비트로 교체되어, 레벨 3 캐시(118)로의 버스를 작게 하고, 반도체 영역을 보다 적게 차지하고, 보다 높은 주파수 영역에서 동작하게 한다. 레벨 3 캐시(118)가 시스템 메모리(120)로부터 데이터를 순차로 검색함으로써, 시스템 버스(122)로부터 퇴거된 데이터를 스누프하는 과정에서의 패러티 오류는 미스(miss)로 처리된다.
레벨 2 캐시(114)로부터의 모든 버려진 데이터들은 시스템 버스(122)에 기록되기 때문에, 퇴거된 데이터는 시스템 메모리(120)와 메모리 컨트롤러에 도달한다. 시스템 버스(122)를 통해 데이터를 퇴거하는 것은 레벨 2 캐시(116) 및 관련된 레벨 3 캐시(119)와 같은 다른 수평 버스 장치가 캐시 데이터를 퇴거하기 위한 종래 기술의 구조보다는, 조기에 갱신되도록 한다. 레벨 2 캐시(114)에 시스템 버스만을 통해 연결되고, 캐시 계층 내의 어느 레벨에도 위치할 수 있는 수평 장치는 시스템 버스(122)로부터 퇴거된 데이터를 스누프할 수 있고, 데이터를 레벨 2 캐시(114)로 스테이징하거나 또는 레벨 2 캐시(114)로부터 스테이징하는데 사용되는 레벨 3 캐시(118)와 동시에 시스템 메모리(120)와 일관성을 갖게 된다.
레벨 2 캐시(114)가 시스템 버스(122)를 통해 데이터를 퇴거한 결과, 레벨 3 캐시(118)은 MESI 캐시 일관성 프로토콜하에서 시스템 메모리(120)와 관련하여 수정된 데이터를 더 이상 가지고 있지 않는다. 레벨 2 캐시(114)로부터 시스템 버스(122)로 내보내진 데이터는 레벨 3 캐시(118) 및 다른 수평 장치로 스누프될 H-MESI 캐시 일관성 프로토콜을 사용하는 시스템에서 추가적인 이점을 갖는다. 본 명세서에 참조되어 본 발명의 일부를 이루는 미국 특허 출원에 자세히 기술된 바와 같이, H-MESI 캐시 일관성 프로토콜의 호버링 상태(H)는 캐시 엔트리의 태그 필드에 저장된 어드레스 태그가 유효하나 관련 데이터 항목(예를 들어 캐시라인 또는 캐시섹터)은 무효임을 나타낸다. 데이터는 자신이 스누프될 수 있는 시스템 버스로 퇴거되기 때문에, 호버링 상태(H)에 있는 캐시 엔트리는 갱신될 수 있고, 공유 상태(S)로 보다 신속하게 전환될 수 있다. 따라서, 요구에 따라 데이터는 수평장치에 의해 검색되고, 이러한 수평장치 내에서 훨씬 더 짧은 시간 동안 머무르게 된다.
도 3은 본 발명의 바람직한 일 실시예에 따른 다중 레벨 캐시 계층의 상위 레벨 내의 캐시로부터 데이터를 버리는 과정을 나타낸 상위 레벨의 순서도를 도시한 것이다. 도3에 도시된 프로세스는 도1과 도2에 도시된 다중 레벨 캐시 계층을 포함한 데이터 처리 시스템 내에서 수행될 수 있다.
본 발명의 프로세스는 캐시 계층 구조의 최하위 레벨을 제외한 임의의 레벨의 캐시에서 적용가능한 캐시 교체 기법에 따라 제거 대상을 선택하는 단계(302)에서 시작한다. 그런 다음, 선택된 제거 대상으로부터 시스템 버스로 데이터를 기록하는 단계(304)로 진행한다. 다음, 캐시 계층의 더 낮은 레벨의 캐시에 선택된 제거 대상으로부터의 데이터를 기록하는 버스 동작을 스누프하는 단계(306)로 진행한다.
다음으로, 내보내진 데이터에 대응하는 캐시 엔트리가 더 낮은 캐시내에서 갱신이 필요한지를 결정하는 단계(308)로 진행한다. 더 낮은 캐시가 갱신이 필요 없다면, 단계(316)으로 진행하여 다음 캐시의 데이터가 내보내질 때까지 아이들링상태(idle)가 된다. 그러나, 더 낮은 캐시가 갱신될 필요가 있으면, 시스템 버스로부터 캐시 퇴거를 스누프하는 과정에서 패러티 에러가 발생했는지를 결정하는 단계(310)으로 진행한다. 패러티 에러가 발생한 경우, 스누프 동작을 미스(miss)로 취급하고, 시스템 메모리로부터 더 낮은 레벨의 캐시를 갱신하는 단계(316)을 수행한다. 패러티 에러가 발생하지 않은 경우, 스누프된 버스의 동작으로부터 낮은 레벨의 캐시를 갱신하는 단계(314)로 진행하고, 다음으로 다음번 퇴거(eviction)동작 때까지 대기하는 단계(316)을 수행한다.
비록 시스템 버스의 동작의 대기시간은 길어지지만, 레벨 2 캐시로부터 내보내진 데이터는 시스템 버스에 기록되고 레벨 3 캐시로 다시 스누프된다. 이것은 레벨 2 캐시와 레벨 3 캐시 사이에 전용버스 또는 백도어(backdoor) 데이터 버스는 불필요하다. 시스템 버스와 연결되는 레벨 2 캐시로부터의 단일 데이터 경로만 필요하고, 레벨 3 캐시는 듀얼 포트일 필요가 없다. 레벨 3 캐시를 갱신하는데 사용되는 리로드 경로는 레벨 2 캐시로부터 시스템 버스를 벗어나 버려진 데이터들을 스누프하는데 재사용된다. 또한, 레벨 3 디렉토리와 캐시에서의 오류 정정 코드 검사와 이와 관련되는 오버헤드(overhead)가 불필요하다. 데이터의 완전성은 간단한 패러티 검사에 의해 확인될 수 있는데, 이 경우 하나의 비트에 해당하는 오버헤드가 필요하며 패러티 에러는 스누프 미스로 취급되고 레벨 3 캐시는 시스템 메모리로부터 갱신된다.
시스템 버스에 기록됨으로써 레벨 2 캐시 제거대상으로부터의 데이터가 버려지기 때문에, 레벨 3 캐시는 항상 시스템 메모리와 일관성을 가지며, 시스템 메모리와 관련해 수정된 데이터를 포함하지 않는다. 다중 프로세서 시스템내의 다른 장치들은 시스템 버스로부터 버려진 데이터들을 스누프함으로써 보다 조기에 갱신된다. H-MESI 캐시 일관성 프로토콜이 사용되면, 수평 장치는 호버링 상태에서 공유상태로 보다 신속하게 전환된다.
본 발명이 바람직한 실시예를 참조하여 상세히 설명되었으나, 본 발명의 본질과 범위를 벗어나지 않는 범위 내에서 다양한 변화가 가능하다.
본 발명의 데이터 처리 시스템 및 캐시 할당 해제 방법은 사용 비트수가 감소되고, 보다 적은 영역을 차지하게 되고, 보다 높은 주파수 영역에서 동작할 수 있다.

Claims (20)

  1. 시스템 버스에 의해 시스템 메모리와 연결된 제1 및 제2 논리적 인라인 캐시(in line cache)를 포함하는 데이터 처리 시스템의 제1캐시 내에서 캐시의 위치를 할당 해제하는 방법에서,
    a) 상기 제1캐시 내에서 제거 대상을 선택하는 단계;
    b) 상기 선택된 제거 대상으로부터의 데이터 항목을 상기 시스템 버스 동작을 사용하는 시스템 메모리에 기록하는 단계;
    c) 상기 제2캐시용 스누프 로직에서 시스템 버스 동작을 스누프하는 단계; 및
    d) 스누프된 시스템 버스 동작으로부터 상기 제1캐시 내에서 선택된 제거 대상에 대응하는 상기 제2캐시 내의 캐시의 위치가 데이터 항목을 포함하고 있는지를 결정하는 단계
    를 포함하는 캐시 위치 할당 해제 방법.
  2. 제1항에서,
    상기 결정하는 단계는,
    상기 캐시의 위치와 관련된 일관성(coherency) 상태를 검사하는 단계
    를 추가로 포함하는 캐시 위치 할당 해제 방법.
  3. 제1항에서,
    상기 제1캐시 내의 선택된 제거 대상에 대응하는 상기 제2캐시 내의 캐시의 위치가 데이터 항목을 포함하고 있지 않는 결정에 응답하여, 상기 스누프된 시스템 버스 동작으로부터의 데이터 항목으로 제2캐시내의 캐시의 위치를 갱신하는 단계
    를 추가로 포함하는 캐시 위치 할당 해제 방법.
  4. 제1항에서,
    상기 제1캐시 내에서 선택된 제거 대상에 대응하는 상기 제2캐시 내의 캐시의 위치에 데이터 항목이 있지 않으면, 패러티 에러를 찾기 위해 상기 스누프된 시스템 버스의 동작을 검사하는 단계
    를 추가로 포함하는 캐시 위치 할당 해제 방법.
  5. 제4항에서,
    상기 스누프된 시스템 버스 동작시 패러티 에러의 검출에 응답하여, 스누프된 시스템 버스의 동작을 미스로 취급하는 단계
    를 추가로 포함하는 캐시 위치 할당 해제 방법.
  6. 제4항에서,
    상기 스누프된 시스템 버스 동작시 패러티 에러의 검출에 응답하여, 시스템 메모리로부터 상기 데이터 항목을 검색하기 위한 동작을 대기시키는 단계(queing)
    를 추가로 포함하는 캐시 위치 할당 해제 방법.
  7. 제4항에서,
    상기 스누프된 시스템 버스 동작시 패러티 에러의 미검출에 응답하여, 상기 스누프된 시스템 버스의 동작으로부터의 데이터 항목으로 제2캐시 내의 캐시의 위치를 갱신하는 단계
    를 추가로 포함하는 캐시 위치 할당 해제 방법.
  8. 데이터 처리 시스템 기억 장치 계층 구조를 갖는 장치에서,
    a) 기억 장치 계층 구조 내의 상위 캐시;
    b) 상기 상위 캐시와 기억 장치 계층 구조 내의 다른 부분과의 사이에 논리적으로 인라인(in-line)형태로 형성된 하위 캐시;
    c) 상기 상위 캐시와 하위 캐시에 연결되고, 상기 상위 캐시와 하위 캐시를 기억 장치 계층 구조 내의 다른 부분과 연결시키는 버스;
    d) 데이터 항목을 포함하고 있는 상기 상위 캐시 내의 캐시의 위치를 할당 해제함에 따라 상기 상위 캐시로부터 상기 버스로 데이터 항목을 기록하는 캐시 제어 로직; 및
    e) 상기 버스로부터의 데이터 항목을 스누프하는 하위 캐시용 스누프 로직
    을 포함하는 데이터 처리 시스템 기억 장치 계층 구조를 갖는 장치.
  9. 제8항에서,
    상기 상위 캐시 내의 할당 해제된 캐시의 위치에 대응하는 하위 캐시 내의 캐시 위치의 일관성 상태를 검사하는 일관성 로직
    을 추가로 포함하는 데이터 처리 시스템 기억 장치 계층 구조를 갖는 장치.
  10. 제8항에서,
    상기 버스로부터 스누프된 데이터 항목의 패러티를 검사하는 패러티 검사 로직
    을 추가로 포함하는 데이터 처리 시스템 기억 장치 계층 구조를 갖는 장치.
  11. 제10항에서,
    상기 스누프 로직은 스누프된 데이터 항목의 패러티에 오류가 있는 경우, 상기 기억 장치 계층 구조 내의 다른 부분으로부터 상위 캐시 내의 할당 해제된 캐시위치에 대응하는 하위 캐시 내의 캐시 위치를 갱신하는 동작을 대기시키는 데이터 처리 시스템 기억 장치 계층 구조를 갖는 장치.
  12. 제10항에서,
    상기 스누프 로직은 스누프된 데이터 항목이 오류가 없는 경우, 상기 데이터 항목으로 상위 캐시 내의 할당 해제된 캐시 위치에 대응하는 하위 캐시 내의 캐시 위치를 갱신하는 것을 특징으로 하는 데이터 처리 시스템 기억 장치 계층 구조를 갖는 장치.
  13. 제8항에서,
    상기 캐시 제어 로직은 데이터 항목이 수정되는 경우, 캐시 위치의 할당 해제에 따라 상위 캐시로부터의 데이터 항목을 버스로 기록하는 데이터 처리 시스템 기억 장치 계층 구조를 갖는 장치.
  14. 데이터 처리 시스템에서,
    a) 시스템 메모리;
    b) 상기 시스템 메모리에 연결된 시스템 버스;
    c) 상기 시스템 버스에 연결된 제1캐시;
    d) 상기 데이터 처리 시스템 내의 제1캐시와 논리적 인라인(in-line)형태로 형성된 제2캐시;
    e) 상기 시스템 버스 상의 시스템 버스의 동작을 통해 제1캐시 내의 할당 해제된 캐시 위치로부터의 데이터 항목을 시스템 메모리로 기록하는 캐시 제어 로직; 및
    f) 상기 제1캐시 내의 할당 해제된 캐시 위치에 대응하는 제2캐시 내의 대응 캐시 위치를 갱신이 필요한지를 결정하기 위해 시스템 버스로부터 시스템 버스 동작을 스누프하기 위한 제2캐시용 스누프 로직
    을 포함하는 데이터 처리 시스템.
  15. 제14항에서,
    상기 제1캐시가 레벨 2 캐시를 포함하는 데이터 처리 시스템.
  16. 제14항에서,
    상기 제2캐시가 레벨 3 캐시를 포함하는 데이터 처리 시스템.
  17. 제14항에서,
    상기 제1캐시가 레벨 1 캐시를 포함하고, 상기 제2캐시는 레벨 2 캐시를 포함하는 데이터 처리 시스템.
  18. 제14항에서,
    상기 제2캐시 내의 대응 캐시 위치의 일관성 상태를 검사하는 일관성 로직
    을 추가로 포함하는 데이터 처리 시스템.
  19. 제14항에서,
    상기 시스템 버스로부터 스누프된 데이터 항목의 패러티를 검사하는 패러티 검사로직
    을 추가로 포함하는 데이터 처리 시스템.
  20. 제19항에서,
    상기 스누프 로직은,
    상기 스누프된 데이터 항목의 패러티가 오류가 없는 경우 시스템 버스로부터 스누프된 데이터 항목으로 상기 제2캐시 내의 대응 캐시 위치를 갱신하고,
    상기 스누프된 데이터 항목이 오류가 있는 경우 시스템 메모리로부터 상기 제2캐시내의 대응 캐시 위치를 갱신 하는 동작을 대기시키는
    데이터 처리 시스템.
KR1019990004877A 1998-02-17 1999-02-11 캐시 갱신 프로토콜을 이용한 캐시 할당 해제 방법 및 데이터 처리 시스템 KR100320978B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US9/024,317 1998-02-17
US09/024,317 US6195729B1 (en) 1998-02-17 1998-02-17 Deallocation with cache update protocol (L2 evictions)
US09/024,317 1998-02-17

Publications (2)

Publication Number Publication Date
KR19990072593A true KR19990072593A (ko) 1999-09-27
KR100320978B1 KR100320978B1 (ko) 2002-01-18

Family

ID=21819971

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019990004877A KR100320978B1 (ko) 1998-02-17 1999-02-11 캐시 갱신 프로토콜을 이용한 캐시 할당 해제 방법 및 데이터 처리 시스템

Country Status (5)

Country Link
US (1) US6195729B1 (ko)
JP (1) JP3434462B2 (ko)
KR (1) KR100320978B1 (ko)
CZ (1) CZ46499A3 (ko)
PL (1) PL331475A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101319670B1 (ko) * 2010-11-09 2013-10-17 후지쯔 가부시끼가이샤 캐시 메모리 시스템 및 캐시 메모리 시스템의 제어 방법
US10853247B2 (en) 2016-03-18 2020-12-01 Industry-Academic Cooperation Foundation, Yonsei University Device for maintaining data consistency between hardware accelerator and host system and method thereof

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6535958B1 (en) * 1999-07-15 2003-03-18 Texas Instruments Incorporated Multilevel cache system coherence with memory selectively configured as cache or direct access memory and direct memory access
US6460114B1 (en) * 1999-07-29 2002-10-01 Micron Technology, Inc. Storing a flushed cache line in a memory buffer of a controller
US6275909B1 (en) * 1999-08-04 2001-08-14 International Business Machines Corporation Multiprocessor system bus with system controller explicitly updating snooper cache state information
US6338124B1 (en) 1999-08-04 2002-01-08 International Business Machines Corporation Multiprocessor system bus with system controller explicitly updating snooper LRU information
US6321305B1 (en) 1999-08-04 2001-11-20 International Business Machines Corporation Multiprocessor system bus with combined snoop responses explicitly cancelling master allocation of read data
US6343344B1 (en) 1999-08-04 2002-01-29 International Business Machines Corporation System bus directory snooping mechanism for read/castout (RCO) address transaction
US6353875B1 (en) 1999-08-04 2002-03-05 International Business Machines Corporation Upgrading of snooper cache state mechanism for system bus with read/castout (RCO) address transactions
US6324617B1 (en) 1999-08-04 2001-11-27 International Business Machines Corporation Method and system for communicating tags of data access target and castout victim in a single data transfer
US6343347B1 (en) 1999-08-04 2002-01-29 International Business Machines Corporation Multiprocessor system bus with cache state and LRU snoop responses for read/castout (RCO) address transaction
US6502171B1 (en) 1999-08-04 2002-12-31 International Business Machines Corporation Multiprocessor system bus with combined snoop responses explicitly informing snoopers to scarf data
US6349367B1 (en) 1999-08-04 2002-02-19 International Business Machines Corporation Method and system for communication in which a castout operation is cancelled in response to snoop responses
US6446169B1 (en) * 1999-08-31 2002-09-03 Micron Technology, Inc. SRAM with tag and data arrays for private external microprocessor bus
US6789168B2 (en) * 2001-07-13 2004-09-07 Micron Technology, Inc. Embedded DRAM cache
US6901532B2 (en) * 2002-03-28 2005-05-31 Honeywell International Inc. System and method for recovering from radiation induced memory errors
US7734582B2 (en) * 2004-11-16 2010-06-08 International Business Machines Corporation Apparatus, system, and method for cache synchronization
US20060195662A1 (en) * 2005-02-28 2006-08-31 Honeywell International, Inc. Method for deterministic cache partitioning
US7277992B2 (en) * 2005-03-22 2007-10-02 Intel Corporation Cache eviction technique for reducing cache eviction traffic
US7437597B1 (en) 2005-05-18 2008-10-14 Azul Systems, Inc. Write-back cache with different ECC codings for clean and dirty lines with refetching of uncorrectable clean lines
JP4791525B2 (ja) * 2006-02-14 2011-10-12 富士通株式会社 読み出し処理装置および読み出し方法
JP2008046685A (ja) * 2006-08-10 2008-02-28 Fujitsu Ltd 二重化システム及び系切り換え方法
US7739570B2 (en) * 2007-07-18 2010-06-15 International Business Machines Corporation System and method for increasing error checking performance by calculating CRC calculations after multiple test patterns for processor design verification and validation
US8127192B2 (en) * 2007-07-18 2012-02-28 International Business Machines Corporation Predicting lwarx and stwcx instructions in test pattern generation and simulation for processor design verification/validation in interrupt mode
US7661023B2 (en) * 2007-07-18 2010-02-09 International Business Machines Corporation System and method for verification of cache snoop logic and coherency between instruction & data caches for processor design verification and validation
US7647539B2 (en) * 2007-07-18 2010-01-12 International Business Machines Corporation System and method of testing using test pattern re-execution in varying timing scenarios for processor design verification and validation
US7747908B2 (en) * 2007-07-18 2010-06-29 International Business Machines Corporation System and method for creating different start cache and bus states using multiple test patterns for processor design verification and validation
US7689886B2 (en) * 2007-07-18 2010-03-30 International Business Machines Corporation System and method for predicting lwarx and stwcx instructions in test pattern generation and simulation for processor design verification and validation
US8185694B2 (en) * 2008-07-25 2012-05-22 International Business Machines Corporation Testing real page number bits in a cache directory
US9727475B2 (en) * 2014-09-26 2017-08-08 Intel Corporation Method and apparatus for distributed snoop filtering
US11275692B2 (en) * 2019-05-24 2022-03-15 Texas Instruments Incorporated Methods and apparatus for multi-banked victim cache with dual datapath

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0602805B1 (en) * 1992-12-18 2000-01-19 Advanced Micro Devices, Inc. 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
US5537575A (en) * 1994-06-30 1996-07-16 Foley; Denis System for handling cache memory victim data which transfers data from cache to the interface while CPU performs a cache lookup using cache status information
US5651137A (en) * 1995-04-12 1997-07-22 Intel Corporation Scalable cache attributes for an input/output bus
US5832250A (en) * 1996-01-26 1998-11-03 Unisys Corporation Multi set cache structure having parity RAMs holding parity bits for tag data and for status data utilizing prediction circuitry that predicts and generates the needed parity bits
JPH09237223A (ja) * 1996-03-02 1997-09-09 Toshiba Corp バスブリッジを用いたコンピュータシステム
US5860117A (en) * 1996-05-31 1999-01-12 Sun Microsystems, Inc. Apparatus and method to improve primary memory latencies using an eviction buffer to store write requests
US5900011A (en) * 1996-07-01 1999-05-04 Sun Microsystems, Inc. Integrated processor/memory device with victim data cache
US5875201A (en) * 1996-12-30 1999-02-23 Unisys Corporation Second level cache having instruction cache parity error control

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101319670B1 (ko) * 2010-11-09 2013-10-17 후지쯔 가부시끼가이샤 캐시 메모리 시스템 및 캐시 메모리 시스템의 제어 방법
US10853247B2 (en) 2016-03-18 2020-12-01 Industry-Academic Cooperation Foundation, Yonsei University Device for maintaining data consistency between hardware accelerator and host system and method thereof

Also Published As

Publication number Publication date
PL331475A1 (en) 1999-08-30
CZ46499A3 (cs) 1999-09-15
JPH11328015A (ja) 1999-11-30
US6195729B1 (en) 2001-02-27
JP3434462B2 (ja) 2003-08-11
KR100320978B1 (ko) 2002-01-18

Similar Documents

Publication Publication Date Title
KR100320978B1 (ko) 캐시 갱신 프로토콜을 이용한 캐시 할당 해제 방법 및 데이터 처리 시스템
US6018791A (en) Apparatus and method of maintaining cache coherency in a multi-processor computer system with global and local recently read states
US5325504A (en) Method and apparatus for incorporating cache line replacement and cache write policy information into tag directories in a cache system
US6374330B1 (en) Cache-coherency protocol with upstream undefined state
US6192458B1 (en) High performance cache directory addressing scheme for variable cache sizes utilizing associativity
US5878268A (en) Multiprocessing system configured to store coherency state within multiple subnodes of a processing node
US5892970A (en) Multiprocessing system configured to perform efficient block copy operations
US7032074B2 (en) Method and mechanism to use a cache to translate from a virtual bus to a physical bus
US6289420B1 (en) System and method for increasing the snoop bandwidth to cache tags in a multiport cache memory subsystem
US6345342B1 (en) Cache coherency protocol employing a read operation including a programmable flag to indicate deallocation of an intervened cache line
JP3067112B2 (ja) 遅延プッシュをコピー・バック・データ・キャッシュに再ロードする方法
US5848254A (en) Multiprocessing system using an access to a second memory space to initiate software controlled data prefetch into a first address space
US6272602B1 (en) Multiprocessing system employing pending tags to maintain cache coherence
US6662275B2 (en) Efficient instruction cache coherency maintenance mechanism for scalable multiprocessor computer system with store-through data cache
US6321306B1 (en) High performance multiprocessor system with modified-unsolicited cache state
US7287122B2 (en) Data replication in multiprocessor NUCA systems to reduce horizontal cache thrashing
KR19990072600A (ko) 재실행스누프히트시의순방향진행수행방법및시스템
JPH10254773A (ja) アクセス方法、処理装置およびコンピュータ・システム
KR19980079662A (ko) Smp 버스의 공유 상태에서의 캐시 라인들의 공유 개입 방법
US6574714B2 (en) Efficient instruction cache coherency maintenance mechanism for scalable multiprocessor computer system with write-back data cache
JPH10320283A (ja) マルチプロセッサ・データ処理システム内でキャッシュ・コヒーレンシを維持するキャッシュ・コヒーレンシ・プロトコルを提供する方法及び装置
US5551000A (en) I/O cache with dual tag arrays
US6665767B1 (en) Programmer initiated cache block operations
US6615321B2 (en) Mechanism for collapsing store misses in an SMP computer system
US6347363B1 (en) Merged vertical cache controller mechanism with combined cache controller and snoop queries for in-line caches

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

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee