KR100320974B1 - 수직 캐시 계층구조에서 의사 정밀 아이-캐시의 포함 방법 - Google Patents
수직 캐시 계층구조에서 의사 정밀 아이-캐시의 포함 방법 Download PDFInfo
- Publication number
- KR100320974B1 KR100320974B1 KR1019990004876A KR19990004876A KR100320974B1 KR 100320974 B1 KR100320974 B1 KR 100320974B1 KR 1019990004876 A KR1019990004876 A KR 1019990004876A KR 19990004876 A KR19990004876 A KR 19990004876A KR 100320974 B1 KR100320974 B1 KR 100320974B1
- Authority
- KR
- South Korea
- Prior art keywords
- cache
- state
- instruction
- item
- data
- Prior art date
Links
- 230000007704 transition Effects 0.000 claims abstract description 21
- 238000003860 storage Methods 0.000 claims description 32
- 238000000034 method Methods 0.000 claims description 27
- 238000012545 processing Methods 0.000 claims description 13
- 230000004044 response Effects 0.000 claims description 11
- 238000013500 data storage Methods 0.000 claims 1
- 238000001693 membrane extraction with a sorbent interface Methods 0.000 abstract description 19
- 230000001427 coherent effect Effects 0.000 abstract description 6
- 230000000717 retained effect Effects 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 241000699670 Mus sp. Species 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000009118 appropriate response Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000012432 intermediate storage Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
본 발명에서는 분기된 레벨 1(L1) 데이터 캐시 및 인스트럭션 캐시를 갖는 프로세서에 액세스 가능한 레벨 2(L2) 캐시 내에서 수정된 MESI 캐시 일관성 프로토콜이 구현된다. 수정된 MESI 프로토콜은 공유 상태의 두 가지 부상태(副狀態)(substate)를 갖는데, 이 부상태는 공유 상태와 동일한 일관성 정보와 대상 캐시 엔트리(subject cache entry)의 내용/일관성에 관한 추가적인 정보를 표시한다. 제1 부상태인 SICO는 인스트럭션 페치(fetch) 동작의 결과로 시스템 메모리로부터 내용이 검색되었기 때문에 캐시 엔트리가 인스트럭션을 포함하는 것으로 추정되는 상태를 표시한다. 제2 부상태인 SICI는 일관성이 제1 공유 부상태에 있는 동안, 제1상태의 정보와 스누핑된 플러시 동작(snooped flush operation)이 대상 캐시 엔트리를 히트하였다는 것을 표시한다. 하위 레벨(예를 들어 L3) 캐시 내에서 공유 일관성 상태의 제1 부상태에 있는 캐시 엔트리를 할당 해제하더라도, L2 캐시에 있는 동일한 캐시 엔트리의 내용이 무효화되지는 않는다. 일단 제1 부상태로 들어가면, 인스트럭션을 무효화시키도록 설계된 동작이 수신되지 않으면 일관성 상태는 무효 상태로 전이되지 않는다. 내용이 인스트럭션을 포함하고 있을 것이라는 추정에 반대되는 로컬 프로세서로부터의 동작은 일관성 상태를 보통의 공유 상태로 전이시킬 수 있다. 두 가지 일관성 부상태에 있는 캐시 엔트리의 내용은 데이터가 아니라 인스트럭션으로 추정되기 때문에, L2 캐시 내에 있는 인스트럭션이 스누핑된 플러시의 결과로서 버려지는 것이 아니라 로컬 프로세서에 의한 가능한 리로드(reload)용으로 보유된다.
Description
본 발명은 일반적으로 수직 캐시 계층 구조에서의 포함(inclusivity) 방법에 관한 것이고, 구체적으로는 캐싱된 인스트럭션에 대한 선택적인 포함 방법에 관한 것이다. 더욱 구체적으로 본 발명은 하위 캐시 레벨의 할당 해제로 인해 캐싱된 인스트럭션이 버려지는 것을 방지하는 선택적인 포함 방법에 관한 것이다.
슈퍼스칼라 축소 명령어 세트 컴퓨터(RISC) 프로세서는 통상 저장 계층 구조 중 적어도 레벨 1(L1)층에 분기된(bifurcated) 데이터 캐시와 인스트럭션 캐시를 포함하고 있다. 현재의 슈퍼스칼라 프로세서에서 요구하는 대역폭으로 인해 독립된 데이터 캐시와 인스트럭션 캐시가 필요하다. 현재의 슈퍼스칼라 프로세서에서는 인스트럭션을 페치하고 데이터를 참조하는데 프로세서 주기 당 하나 이상의 캐시 액세스를 쉽게 초과할 수 있다. 따라서 통상 프로세서 하드웨어 안에 내장되어 있고, 1 프로세서 주기 이하의 대기 시간(latency)을 가지도록 설계된 L1 캐시는 일반적으로 인스트럭션과 데이터 참조가 같은 프로세서 주기 동안에 개별 캐시에 발행될 수 있도록 분기되어 있다.
다수의 데이터 처리 시스템은 논리적으로 인라인 상태(logically in line)인 다층레벨 캐시 계층구조를 포함할 수 있는데, 이 다층레벨 캐시 계층구조에서는 상위 레벨의 캐시를 먼저 검사하면서, 상위 레벨에서 미스가 발생하면 하위 레벨의 캐시에 대한 액세스를 프롬프트한다. 액세스 대기 시간이 감소도록 데이터를 프로세서에 스테이징(staging)하는데 통상 다층레벨 캐시를 사용한다. 캐시 계층구조의 상위 레벨에서는 크기는 더 작고 속도는 더 빠른 캐시를 사용하는 반면, 하위 레벨에서는 크기는 더 크고 속도는 더 느린 캐시를 사용한다. 일반적으로 이러한 수직 캐시 구성은 포함적인(inclusive) 구조를 갖는 것으로 간주되는데, 다시 말하면 각 캐시의 내용은 캐시 계층 구조에서 자신의 바로 상위 캐시의 내용을 포함하고 있다.
시스템 메모리에서 판독된 새로운 데이터나 인스트럭션을 저장하기 위해서 캐시 내에 공간이 필요한 경우, 캐시는 자신을 위해 구현되는 특정한 교체 방식에 따라 제거할 데이터나 인스트럭션을 선택하고, 선택된 캐시의 위치를 할당 해제한다. 다중 캐시에 포함된 캐시의 위치가 어느 한 캐시에서 할당 해제되는 경우에, 다른 캐시에 있는 동일한 위치를 할당 해제하여 논리적으로 인라인 상태인 캐시의포함 관계를 유지한다. 그러나 상기 방법이 바람직하지 못한 결과를 낳을 수도 있다. 예를 들어 인스트럭션을 포함하는 캐시 위치가 레벨3 (L3) 캐시 내에서 할당 해제되는 경우, 일반적으로 동일한 공간이 레벨 2(L2) 캐시에서 할당 해제된다. 그 후에 프로세서/L1 캐시가 L2 캐시로부터 인스트럭션을 리로드하려고 시도하는 경우, L2 및 L3 캐시에서 미스(miss)가 발생할 수 있고, 캐시 계층구조에서 더 이상의 레벨이 없다고 가정하면 시스템 메모리로부터 원하는 인스트럭션에 대한 액세스가 요구될 수 있다. 예를 들어 잘못 예측된 분기를 실행했을 때, 인스트럭션 리로드가 필요할 수 있다. 시스템 메모리로부터의 판독과 관련된 대기 시간이 L2 및 L3 캐시와 관련된 대기 시간보다 일반적으로 훨씬 길기 때문에 상당한 성능 지연이 발생될 수 있다.
캐시 위치를 할당 해제할 때 인스트럭션이 버려지는 것을 방지할 경우 문제점의 하나는 캐시 내에서 인스트럭션을 데이터와 구별하는 명확한 메카니즘이 없다는 것이다. 시스템 메모리 내의 프로그램 소스 코드는 구별할 수 없도록 혼합된 인스트럭션과 데이터를 포함할 수 있다. 이러한 경우는 예를 들어, 코드를 시스템 메모리에 로드한 후 로더 프로그램(loader program)이 코드 연결을 해제할 때 발생할 수 있다. 따라서 교체 방식이 대체 제거 대상(victim)을 선택할 수 있게 설계 될 수 있도록 제거 대상이 선택될 때, 인스트럭션을 확실하게 인식할 수단이 없다. 또한, 모든 캐시 레벨이 L1 인스트럭션 캐시와 포함관계를 가질 필요가 없다. 인스트럭션 리로드의 대기 시간을 최소화하기 위해서는 L2 캐시만이 L1 인스트럭션 캐시의 현재 및 최근 내용을 포함하는 것이 바람직하다. 캐시 계층구조의 모든 레벨에서 유사한 포함관계를 가지도록 요구하는 것은 전체적인 캐시 효율을 떨어뜨리는 것이다.
따라서 캐시 계층 구조의 상위 레벨에 있는 인스트럭션에 대해 선택적인 포함 관계를 유지하는 메카니즘을 제공하는 것이 바람직하다. 하위 캐시 레벨에서의 할당 해제가 상기 메카니즘에 영향을 미치지 않음으로써 인스트럭션 캐시의 포함 관계가 모든 캐시 레벨에서 필요로 하지는 않도록 된다면 더욱 효과적이다.
본 발명의 목적은 수직 캐시 계층 구조에서 포함 관계에 관한 개선된 시스템을 제공하는 것이다.
본 발명의 다른 목적은 수직 캐시 계층 구조에서 캐싱된 인스트럭션에 대한 선택적인 포함 관계를 제공하는 방법 및 장치에 관한 것이다.
본 발명의 또 다른 목적은 하위 캐시 레벨에서의 할당 해제로 인하여 캐싱된 인스트럭션이 버려지는 것을 방지하는 선택적인 포함 관계를 제공하는 것이다.
도 1은 본 발명의 바람직한 실시예에 따른 멀티프로세서 데이터 처리 시스템을 도시한 것이다.
도 2는 본 발명의 바람직한 실시예에 따른 L2 캐시의 블럭도를 도시한다.
도 3은 본 발명의 바람직한 실시예에 따른 수정된 MESI 캐시 일관성 프로토콜의 상태도이다.
상기 목적은 이하에서 설명할 내용에 의해서 달성된다. 분기된 레벨 1(L1) 데이터 캐시 및 인스트럭션 캐시를 갖는 프로세서에 액세스 가능한 레벨 2(L2) 캐시 내에서 수정된 MESI 캐시 일관성 프로토콜이 구현된다. 수정된 MESI 프로토콜은 공유 상태의 두 가지 부상태(副狀態)(substate)를 갖는데, 이 부상태는 공유 상태와 동일한 일관성 정보와 대상 캐시 엔트리(subject cache entry)의 내용/일관성에 관한 추가적인 정보를 표시한다. 제1 부상태인 SICO는 인스트럭션 페치(fetch) 동작의 결과로 시스템 메모리로부터 내용이 검색되었기 때문에 캐시 엔트리가 인스트럭션을 포함하는 것으로 추정되는 상태를 표시한다. 제2 부상태인 SICI는 일관성이 제1 공유 부상태에 있는 동안, 제1상태의 정보와 스누핑된 플러시 동작이 대상 캐시 엔트리를 히트하였다는 것을 표시한다. 하위 레벨(예를 들어 L3) 캐시 내에서 공유 일관성 상태의 제1 부상태에 있는 캐시 엔트리를 할당 해제하더라도, L2 캐시에 있는 동일한 캐시 엔트리의 내용이 무효화되지는 않는다. 일단 제1 부상태로 들어가면, 인스트럭션을 무효화시키도록 설계된 동작이 수신되지 않으면 일관성 상태는 무효 상태로 전이되지 않는다. 내용이 인스트럭션을 포함하고 있을 것이라는 추정에 반대되는 로컬 프로세서로부터의 동작은 일관성 상태를 보통의 공유 상태로 전이시킬 수 있다. 두 가지 일관성 부상태에 있는 캐시 엔트리의 내용은 데이터가 아니라 인스트럭션으로 추정되기 때문에, L2 캐시 내에 있는 인스트럭션이 스누핑된 플러시의 결과로서 버려지는 것이 아니라 로컬 프로세서에 의한 가능한 리로드(reload)용으로 보유된다.
본 발명 및 본 발명의 추가적인 목적, 특징, 및 장점은 이하의 설명에서 명백히 이해될 것이다.
본 발명의 신규 특징이 특허청구범위에 제시되어 있다. 그러나 본 발명 자체는 물론 바람직한 사용 모드, 본 발명의 추가적인 목적과 장점은 후술하는 상세한 설명의 예시적인 실시예 및 첨부 도면을 참조하여 가장 잘 이해 될 수 있다.
도 1은 본 발명의 바람직한 실시예에 따른 멀티프로세서 데이터 처리 시스템을 도시한다. 데이터 처리 시스템(100)은 복수개의 프로세서(102, 104)를 포함하는 대칭형 멀티프로세서(SMP) 시스템으로, 복수개의 프로세서(102, 104)는 바람직하게는 뉴욕, 아몽크(Armonk)에 소재한 IBM사로부터 입수 가능한 Power PCTM패밀리 중 하나를 포함한다. 예시된 실시예에는 단지 2 개의 프로세서만 도시하였으나, 본 발명이 속한 기술 분야에서 통상의 지식을 가진 자라면 본 발명에 따른 멀티프로세서 처리 시스템에 별도의 프로세서가 추가로 사용될 수 있다는 것을 이해할 수 있을 것이다.
각 프로세서(102, 104)는 각각 레벨 1(L1) 데이터 캐시(106, 108)와 L1 인스트럭션 캐시(110, 112)를 포함한다. 예시된 실시예에서는 분기된 인스트럭션 캐시와 데이터 캐시로 설명되어 있으나, 본 발명이 속한 기술 분야에서 통상의 지식을 가진 자라면 단일의 통합된 L1 캐시를 구현할 수 있다는 것을 인식할 수 있다. 데이터 액세스 대기 시간을 최소화하기 위하여 하나 이상의 추가적인 캐시 메모리 레벨이 데이터 처리 시스템(100) 내에서 구현될 수 있는데, 그 예로 레벨 2(L2) 캐시(114, 116)와 레벨 3(L3) 캐시(118, 119)를 들 수 있다. 하위 캐시 레벨인 L2와 L3는 데이터를 L1 캐시로 스테이징하는데 사용되고, 통상 하위 레벨로 갈수록 더 큰 저장 용량을 가지나 액세스 대기 시간은 더 길어진다. 예를 들어 데이터 캐시(106, 108)와 인스트럭션 캐시(110, 112)는 각각 32 KB의 저장 용량과 약 1-2 프로세서 주기의 액세스 대기 시간을 가질 수 있다. L2 캐시(114, 116)는 512 KB의 저장 용량을 가지나 5 프로세서 주기의 액세스 대기 시간을 가지는 반면, L3 캐시(118, 119)는 4 MB의 저장 용량을 가지나 15 프로세서 주기 이상의 액세스 대기 시간을 가질 수 있다. 따라서 L2 캐시(114, 116)와 L3캐시 (118, 119)는 프로세서(102, 104)와 시스템 메모리(120) 사이에서 중간 저장 장치의 역할을 한다. 시스템 메모리(120)는 통상 매우 큰 저장 용량을 가지지만 그 액세스 대기 시간은 50 프로세서 주기 이상을 가질 수 있다.
데이터 처리 시스템(100)에 사용된 캐시 계층 구조의 레벨 수와 캐시 계층 구조 양자를 변화시킬 수 있다. 상기 실시예에서 보여진 L2 캐시(114, 116)는 (시스템 버스(122)를 통해) 각자의 프로세서(102, 104)와 시스템 메모리(120) 사이에 연결된 전용 캐시(dedicated cache)이다. L3 캐시(118, 119)는 L2 캐시(114, 116)와 논리적으로 수직인 룩어사이드 캐시(lookaside cache)로 도시되어 있다. 그 결과 L3 캐시(118, 119)가 히트를 발생하는 동안 L2 캐시(114, 116) 각각이 미스를 발생하여 데이터나 인스트럭션이 L3 캐시(118, 119)에서만 검색되더라도, 데이터나 인스트럭션은 L2 캐시(114, 116) 중 하나와 L3 캐시(118, 119) 중 하나에서 동시에 탐색(look up)될 수 있다. 본 발명이 속한 기술 분야에서 통상의 지식을 가진 자는 도시된 레벨과 구성이 다양하게 변경될 수 있다는 것을 이해할 것이다.
L2 캐시(114, 116)와 L3 캐시(118, 119)는 시스템 버스(122)를 통해 시스템 메모리(120)에 연결되어 있다. 디스플레이(도시되지 않음)용 연결을 제공하는 그래픽 어댑터와 같은 메모리 맵 장치(124)와 입출력(I/O) 버스 브리지(126)도 시스템 버스(122)에 연결될 수 있다. I/O 버스 브리지(126)는 시스템 버스(122)를 I/O 버스(128)에 결합시키고, I/O 버스(128)는 I/O 장치(130)와 불활성 메모리(132)용 연결을 제공할 수 있다. 따라서, 시스템 버스(122), I/O 버스 브리지(126), 및 I/O 버스 (128)는 부가 장치를 결합시키는 상호 연결을 형성하는데, 이들 부가 장치에 대한 대체 구현예는 잘 알려져 있다. I/O 장치(130)는 종래 어댑터를 통해 I/O 버스(128)로 인터페이스되는 키보드, 마우스나 트랙볼과 같은 그래픽 포인팅 장치, 디스플레이, 및 프린터를 포함하는 종래의 주변 장치를 포함한다. 불휘발성 메모리(132)는 하드 디스크 드라이브를 포함할 수 있으며, 운영 체제나 시스템(100)의 동작을 제어하는 기타 다른 소프트웨어를 저장한다. 이러한 운영 체제나 소프트웨어는 시스템(100)에 대한 전력 공급에 응답하여 휘발성 시스템 메모리(120)에 로드된다. 본 발명이 속한 기술분야에서 통상의 지식을 가진 자는 직렬 및 병렬 포트, 네트워크나 부가 장치에 대한 연결, 시스템 메모리(120)에 대한 액세스를 제어하는 메모리 제어기 등과 같은 도 1에 도시되지 않은 추가 구성 요소를 포함할 수 있다는 것을 인식할 수 있을 것이다. 이러한 수정과 변형은 본 발명의 정신과 범위 내에 있다.
시스템 버스(122) 상에서 통상적인 통신 트랜잭션은 해당 트랜잭션의 소스를 표시하는 소스 태그, 해당 트랜잭션이 목적하는 수신처를 특정하는 목적지 태그, 주소 및/또는 데이터를 포함한다. 시스템 버스(122)에 연결된 각 장치는 바람직하게는 시스템 버스(122) 상에서 모든 통신 트랜잭션을 스누핑하여, 필요한 경우 다른 수신처용으로 의도된 통신 트랜잭션에 개입하며, 실행가능하고 적절한 시점에 장치 내에서 복제된 시스템 메모리 데이터에 대한 변경을 재생시킨다.
도 2에는 본 발명의 바람직한 실시예에 따른 L2 캐시의 블록도가 도시되어 있다. 본 발명은 도 3에 도시된 상태도와 관련하여 기술된 바와 같이 수정된 형태의 MESI 캐시 일관성 프로토콜을 구현함으로써, 도 1에 도시된 L2 캐시(114, 116)와 같은 L2 캐시 내에서 의사-정밀 인스트럭션 캐시 포함 관계를 뒷받침하고 있다. L2 캐시(200)는 32 비트 어드레스를 사용하는 n 웨이(way) 세트의 연관 캐시(associate cache)일 수 있다. 따라서, L2 캐시 내에서 캐시 메모리 어레이 또는 데이터 어레이(202)는 복수개의 합동 클래스나 열(row)을 포함하는데, 여기서 각 클래스나 열은 n 개의 캐시 라인을 저장하기에 충분한 메모리를 포함한다. 캐시 블록으로도 불리우는 캐시 라인은 일관성 상태를 기술하는 캐시 메모리의 단위이다. 현재 데이터 처리 시스템에서 캐시 라인의 길이는 일반적으로 32, 64, 또는 128 바이트(B)이다.
캐시 디렉토리(204)도 각각 n 개의 디렉토리 엔트리를 포함하는 복수개의 열을 포함하고, 각 디렉토리 엔트리는 캐시 메모리(202)의 동일 열에 있는 대응되는 캐시 라인과 연관되어 있다. 각 디렉토리 엔트리는 태그 필드(206), 일관성 상태 필드(208), 최소최근사용(LRU) 필드(210), 및 포함(I) 필드(212)를 포함한다. 연관 캐시 라인에 저장된 데이터의 시스템 메모리 어드레스의 태그 필드(예를 들어 비트[0-19])를 저장하기 위하여 태그 필드(206)를 사용한다. 일관성 상태 필드(208)는 미리 정의된 비트 조합을 통해 연관 캐시 라인에 저장된 데이터의 일관성 상태를 저장한다. LRU 필드(210)는 합동 클래스에 있는 다른 캐시 라인과 비교하여 연관 캐시 라인이 얼마나 최근에 액세스 되었는지를 표시하고, 따라서 캐시라인을 교체할 필요가 있는 경우 합동 클래스에서 어떤 캐시 라인을 버려야하는지를 표시한다. 마지막으로 포함 필드(212)는 도 1에 도시된 L1 데이터 캐시(106, 108) 및 L1 인스트럭션 캐시(110, 112)와 같은 논리적으로 인라인 상태인 L1 캐시에 연관 캐시 라인도 저장되어야 하는지의 여부를 표시한다.
도 2를 계속 참조하면, L2 캐시(200)는 또한 캐시 제어기(214)를 포함하고 있는데, 이 캐시 제어기(214)는 캐시 메모리(202)에서 캐시 라인의 저장과 검색을 관리하고, 캐시 디렉토리(204)를 갱신한다. 캐시 제어기(214)는 도 1에서 도시된 프로세서(102, 104)와 같은 연관 프로세서로부터 수신된 신호, 또는 시스템 버스로부터 스누핑된 트랜잭션에 응답하여 동작한다. 따라서 캐시 제어기(214)는 판독 큐(216)와 기록 큐(218)를 포함하는 복수개의 큐를 포함하는데, 자원이 이용 가능해질 때까지 이들 큐 내에서 수행될 동작이 위치된다. 예를 들어 로컬 프로세서는 로드 인스트럭션을 수행한 결과 L2 캐시(200)에 판독 요구를 발행할 수 있다. 캐시 제어기(214)는 판독 요구를 판독 큐 내에 있는 엔트리에 배치하고, 요구된 데이터를 로컬 프로세서에 공급함으로써 요구를 서비스한 후, 판독 큐(216)로부터 판독 요구를 제거한다. 또한 캐시 제어기(214)는 기록 요구를 기록 큐(218)에 배치하여 LRU(210) 및 포함 필드(210, 212)를 각각 갱신하는데, 이들은 요구된 데이터를 포함하는 캐시 라인과 연관되어 있다. 또 다른 예로, 원격 프로세서는 로컬 캐시 내의 특정 캐시 라인을 수정하려는 의도를 표시하는 시스템 버스 트랜잭션을 초기화할 수 있다. 시스템 버스로부터 상기 트랜잭션에 대한 스누핑에 응답하여, 캐시 제어기(214)는 캐시 디렉토리(204)를 판독하기 위한 요구를 판독 큐(216)에 배치하여 특정 캐시 라인이 캐시 메모리(202) 내에 존재하는지의 여부를 결정한다. 만약 특정 캐시 라인이 캐시 메모리(202) 내에 존재한다면, 캐시 제어기(214)는 시스템 버스 상에 적절한 응답을 초기화하고, 필요한 경우 기록 큐(218)에 기록 요구를 배치한다. 이러한 기록 요구가 서비스될 때, 특정 캐시 라인과 연관된 캐시 디렉토리(204) 내에 있는 일관성 필드(208)가 갱신된다. 도 2의 예시적인 실시예에는 단지 하나의 판독 큐(216)와 하나의 기록 큐(218)만을 도시하였으나, 본 발명이 속한 기술분야에서 통상의 지식을 가진 자는 캐시 제어기(214)에 사용되는 큐의 수가 설계상의 선택 문제이고, 캐시 메모리 액세스와는 대립되는 캐시 디렉토리 액세스 또는 시스템 버스로부터 스누핑된 트랜잭션보다는 로컬 프로세서로부터 수신된 신호, 또는 상기 양자에 대한 별개의 큐를 구현할 수 있다는 것을 이해할 것이다.
바람직한 실시예에서, 캐시 디렉토리(204)에 있는 각 엔트리의 일관성 상태 필드(208)는 시스템에 전력이 공급될 때 무효(I) 상태로 초기화되어 태그 필드(206) 및 캐시 메모리(202) 내에 있는 연관 캐시 라인에 저장된 데이터가 모두 무효임을 표시한다. 그후 일관성 상태 필드(208)가 이하에서 자세히 기술되는 수정된 MESI 일관성 프로토콜 내에서 일관성 상태로 갱신될 수 있다. 일관성 상태 필드(208)의 전이 상태는 시스템에서 프로세서에 의해 이루어지는 메모리 액세스 형태와 이러한 액세스에 대한 저장 계층구조의 응답 양자에 좌우되는데, 이러한 내용도 이하에서 자세히 설명된다. 요구된 캐시 라인의 일관성 상태 필드(208)에 표시되는 일관성 상태에 기초하여, 캐시 제어기(214)는 도 1에 도시된 L3 캐시(118)와 같은 L3 캐시가 캐시 메모리 내에 있는 특정 캐시 라인을 할당 해제하는 것을표시하는 스누핑된 여러 시스템 버스 동작들에 대해 상이하게 응답한다.
본 발명의 바람직한 실시예에 따른 수정된 MESI 캐시 일관성 프로토콜의 상태도를 도 3에 도시하였다. 종래의 MESI 프로토콜은 하위 캐시 레벨에서 구현되었으나, 수정된 MESI 프로토콜은 L2 캐시 내에만 구현된다. 수정된 MESI 프로토콜은 종래의 MESI 프로토콜에서 사용된 것과 동일한 하기 네 가지 기본 상태, 즉 1)시스템 메모리 데이터를 수정하지 않고 시스템 메모리에 있는 대응되는 데이터에 대하여 캐시 라인을 수정하여 데이터의 유효 카피만이 수정 캐시 라인이나 섹터를 저장하는 캐시 엔트리 내에 존재하게 되는 상태를 표시하는 수정(M) 상태(302); 2)캐시 엔트리가 시스템 메모리와 일치하지만 저장 계층구조의 해당 레벨에 있는 모든 캐시 중에서 대상 캐시에서만 발견되는 것을 표시하는 배타적(E) 상태(304); 3)캐시 엔트리를 대상 캐시와 저장 계층구조에서 동일 레벨의 적어도 하나의 다른 캐시에서 발견할 수 있고, 데이터의 모든 카피가 시스템 메모리에 있는 대응되는 데이터와 일치하는 것을 표시하는 공유(S) 상태(306); 및 4)주어진 캐시 내에 있는 캐시 엔트리 데이터와 어드레스 태그 양자가 시스템 메모리 또는 저장 계층구조의 다른 캐시 중 어느 것과도 더 이상 일관성을 가지지 않는다는 것을 표시하는 무효(I) 상태를 표시한다. 수정 상태(302)와 배타적 상태(304)가 지원되는 경우, 본 발명은 데이터가 아닌 인스트럭션을 포함하는 것으로 추정되는 캐시 위치와 관계가 있다. 따라서 이들 상태는 관계되는 캐시 위치에 적용되지 않아야 하는 것으로 본 명세서에서는 상세히 설명하지 않기로 한다.
수정된 MESI 프로토콜은 또한 공유 상태(306)의 변형이거나 부상태인 두가지 추가적인 상태를 포함한다. SICO상태(310)는 대상 캐시와 저장 계층구조의 동일 레벨의 적어도 하나의 다른 캐시에서 캐시 엔트리의 모든 카피가 시스템 메모리와 일치하는 캐시 엔트리를 발견할 수 있다는 것을 표시하며, 또한 인스트럭션의 페치 결과로 대상 캐시 엔트리가 로드되었다는 것을 표시한다. SICI상태(312)는 대상 캐시와 저장 계층구조에서 동일 레벨의 적어도 하나의 다른 캐시에서 캐시 엔트리의 모든 카피가 시스템 메모리와 일치하는 캐시 엔트리를 발견할 수 있다는 것을 표시하며, 추가로 인스트럭션의 페치 결과로 대상 캐시 엔트리가 로드되었다는 것과, 저장 계층구조 중 하위 레벨에서 동일한 캐시 엔트리가 할당 해제되었다는 것 양자를 표시한다. 하위 캐시에 의한 할당 해제에도 불구하고, L2 캐시 엔트리 내에 있는 인스트럭션은 L1 캐시에 의한 액세스가 가능하도록 유지된다.
수정된 MESI 프로토콜 내에서 상태 전이는 캐시 엔트리를 로드하도록 프롬프트하는 메모리 액세스의 특성과 현재 메모리 액세스의 특성에 좌우된다. 로컬 프로세서의 데이터 판독의 결과로(즉, 로드 인스트럭션에 의해 프롬프트된 데이터 판독 동작결과) 캐시 위치에 데이터를 저장하는 경우, 캐시 라인의 내용은 데이터, 및 무효 상태(308)에서 공유 상태(306)로의 일관성 상태 변이를 포함하는 것으로 추정된다. 반면에, 캐시 블록의 내용이 인스트럭션 페치 결과로 검색된 것이라면, 상기 캐시 위치의 내용은 인스트럭션, 및 무효 상태(308)에서 SICO(310)로의 일관성 상태 전이를 포함하는 것으로 추정된다. SICO상태(310)에 있는 캐시 위치가 로컬 프로세서에 의해 초기화되고 계속되는 데이터 판독 동작의 대상라면, 인스트럭션을포함하는 캐시 내용에 관한 초기 추정은 부정되고, 일관성 상태가 SICO(310)에서 공유 상태(306)로 전이된다. 그러나, 그렇지 않으면 하위 레벨 캐시에 의해 할당 해제 결과로 발생할 수 있는 것과 같은 스누핑된 플러시 동작에 의해 SICO상태(310)에 있는 캐시 엔트리가 히트하는 경우, 일관성 상태가 SICO(310)에서 SICI(312)로 전이된다. 일단 일관성 상태가 SICI(312)로 전이되면, 동일 위치에 대한 스누핑된 후속 플러시 히트가 무시되고, 데이터 판독이나 로컬 프로세서로부터의 수정 의도를 갖는 판독(read with intent to modify : rwitm)이 미스된 것으로 처리된다. 일관성 상태는 인스트럭션 캐시 블록 무효(instruction cache block invalidate : icbi) 또는 이와 동등한 동작의 결과로서만 SICO상태(310) 또는 SICI상태(312)로부터 무효 상태(308)로 전이된다. 도 3에 도시된 수정 MESI 프로토콜에서 이루어 질 수 있는 상태 전이를 아래 표 1에 요약하였다.
상태 전이 | 원인 | 비고 |
I→S | 데이터 판독 또는 rwitm | 캐시 엔트리가 인스트럭션을 포함하지 않는 것으로 간주됨 |
I→SICO | 인스트럭션 페치 | 캐시 엔트리가 인스트럭션을 포함하는 것으로 추정됨 |
S→I | 스누핑된 플러시 | |
SICO→S | 데이터 판독 | 캐시 엔트리가 인스트럭션을 포함하지 않는 것으로 간주됨 |
SICO→I | 인스트럭션 캐시 블록 무효 | |
SICO→SICI | 스누핑된 플러시 | 하위 레벨 캐시에 의한 할당 해제 |
SICI→I | 인스트럭션 캐시 블록 무효 |
저장 계층구조에서 추가적인 하위 캐시 레벨을 갖는 데이터 처리 시스템의 L2 캐시 내에서만 일관성 상태 전이가 일어난다. 동일한 동작이라도 종래의 MESI 프로토콜을 따르는 하위 레벨의 캐시가 상이한 일관성 상태 전이를 하도록 한다. 특정 캐시 엔트리에 대한 다양한 공통 동작으로부터 발생되는 L2 및 L3 캐시에서의 상이한 일관성 상태 전이를 하기 표 2에서 비교하였다.
동작 | L2 | L3 |
I-페치 | I→SICO | I→S |
데이터 판독 | SICO→S | S→S |
스누핑된 플러시 | SICO→SICI | S→I |
표 2에서 보는 바와 같이 중요한 차이는 스누핑된 플러시의 결과로 발생하는 L2와 L3 캐시의 일관성 상태 전이 간의 차이이다. L3 캐시는 종래의 기술로부터 예상되는 바와 같이 캐시 엔트리를 할당 해제한다. 그러나 L2 캐시는 캐시 엔트리를 보유하고, 일관성 상태에 대한 전이는 캐시 엔트리가 인스트럭션을 포함하는 것으로 추정되고, 하위 레벨 캐시 내에 있는 동일한 캐시 엔트리가 할당 해제되었다는 것을 표시한다. 따라서, L2 캐시는 로컬 프로세서에 의한 가능한 후속 리로드를 위해 추정된 인스트럭션을 보유한다. L2 캐시는 로컬 프로세서의 L1 인스트럭션 캐시의 현재 및 최근 내용을 포함하나, L3 캐시는 상기와 동일한 내용을 포함할 필요가 없다. 따라서 인스트럭션에 대한 선택적인 포함관계가 캐시 계층 구조의 상위 레벨내에 유지되면서, 완전한 수직적 포함 관계를 요구함으로써 전체적인 캐시 효율은 감소되지 않는다. 따라서, 본 발명은 하위 레벨 캐시에서 할당 해제로 발생되는 역방향 플러시에 의한 L2 캐시에 있는 인스트럭션이 버려지는 것을 방지한다. 추가적인 일관성 상태는 오버헤드의 큰 증가를 요구하지 않으며, 수정은 다중레벨 캐시 계층 구조의 L2 캐시 내에서만 이루어지면 된다.
앞에서는 단지 종래의 MESI 프로토콜을 수정하는 것에 대해서만 기술하였지만, 본 발명은 R-MESI 프로토콜을 포함하는 다른 수정된 MESI 프로토콜과 관련하여 구현될 수 있는데, R-MESI 프로토콜에서는 본질적으로 다른 공유 상태의 변형인 최신 (R) 상태는 (1) 대상 캐시와 저장 계층구조의 동일 레벨에 있는 적어도 하나의 다른 캐시 양자에서 캐시 엔트리를 발견할 수 있고, 대상 캐시와 다른 캐시에 있는 데이터의 모든 카피가 시스템 메모리에 있는 대응되는 데이터와 일치한다는 것을 표시하고, (2) 공유 데이터를 포함하는 모든 캐시 중 대상 캐시가 시스템 메모리로부터의 판독과 같은 시스템 버스 트랜잭션에 있는 데이터를 가장 최근에 수신하였다는 것을 표시한다. R 상태는 미국 특허출원 제 08/839,557호에 자세히 기술되어 있으며, 이러한 특허출원의 전체 내용은 본 명세서에 참조되어 본 발명의 일부를 이룬다. 캐시 엔트리가 데이터가 아닌 인스트럭션을 포함하는 것으로 추정되고/추정되거나, 또는 하위 레벨의 캐시에서 동일한 캐시 엔트리가 할당 해제되었다는 것을 표시하는 최근 상태의 부상태가 SICO및 SICI상태와 동등한 방법으로 구현될 수 있다.
본 발명이 바람직한 실시예를 참조하여 구체적으로 기술되고 도시되었지만, 본 발명이 속한 기술 분야에서 통상의 지식을 가진 자는 본 발명의 정신과 범위를 벗어나지 않으면서 그 형태와 세부 사항을 다양하게 변화시킬 수 있다는 것을 이해할 것이다.
본 발명은 캐시 계층구조 상 상위 레벨에 있는 인스트럭션에 대해 선택적인 포함 관계를 유지하는 메카니즘을 제공하여 낮은 캐시 레벨에서의 할당 해제가 상기 선택적인 포함 관계에 영향을 미치지 않아 모든 캐시 레벨에서 인스트럭션이 포함될 필요는 없다.
Claims (20)
- 시스템 메모리와 복수개의 캐시를 포함하는 데이터 처리 시스템에서 캐시 일관성을 유지하는 방법에 있어서,a) 저장 항목을 검색하는 인스트럭션 페치 동작을, 인스트럭션 및 데이터를 포함하며 별도의 인스트럭션 및 데이터 캐시를 구비한 프로세서에 의해 접근될 수 있는 제1 캐시에 대해 수행하는 단계; 및b) 상기 저장 항목이 제1 캐시와 최소한 하나의 다른 캐시에서 발견될 수 있고, 상기 저장 항목을 포함하는 모든 캐시가 시스템 메모리와 일관성을 가지며, 상기 저장 항목이 인스트럭션 페치 동작에 의해 검색되었다는 것을 표시하는 제1 상태로 상기 저장 항목에 대한 일관성 표시기를 설정하는 단계를 포함하는 캐시 일관성 유지 방법.
- 제1항에 있어서,상기 제1 상태는 상기 저장 항목이 인스트럭션을 포함하는 것으로 취급되어야 함을 표시하는 캐시 일관성 유지 방법.
- 제1항에 있어서,상기 제1 상태는 인스트럭션 페치 동작으로부터 발생되는 공유 상태의 변형인 캐시 일관성 유지 방법.
- 제2항에 있어서,상기 일관성 표시기가 제1 상태에 있는 동안에 상기 저장 항목과 연관된 어드레스 태그를 포함하여 인스트럭션 캐시 위치를 무효화하는 동작의 감지에 응답하여, 상기 일관성 표시기를 상기 저장 항목이 무효임을 표시하는 제3 상태로 갱신하는 단계를 추가로 포함하는 캐시 일관성 유지 방법.
- 제4항에 있어서,상기 일관성 표시기가 제1 상태에 있는 동안에 상기 저장 항목과 연관된 어드레스 태그를 포함하는 데이터 판독 동작의 감지에 응답하여, 상기 저장 항목이 제1 캐시와 최소한 하나의 다른 캐시에서 발견될 수 있고, 상기 저장 항목을 포함하는 모든 캐시가 시스템 메모리와 일관성을 가지며, 상기 저장 항목이 인스트럭션을 포함하지 않는 것으로 취급되어야 함을 표시하는 제2 상태로 상기 일관성 표시기를 갱신하는 단계를 추가로 포함하는 캐시 일관성 유지 방법.
- 제5항에 있어서,제2 상태는 공유 상태인 캐시 일관성 유지 방법.
- 제1항에 있어서,상기 일관성 표시기가 제1 상태에 있는 동안에 상기 제1 캐시를 그 아래의 캐시와 연결시키는 버스를 통해 상기 저장 항목과 연관된 어드레스 태그를 포함하는 플러시 동작(flush operation)을 감지하는 것에 응답하여, 상기 저장 항목이 제1 캐시에서 발견될 수 있고, 상기 제1 캐시가 시스템 메모리와 일관성을 가지며, 상기 제1 캐시 아래에 있으며 제1 캐시와 논리적으로 인라인 상태인 다른 캐시들이 상기 저장 항목을 포함하지 않는다는 것을 표시하는 제2 상태로 상기 일관성 표시기를 갱신하는 단계를 추가로 포함하는 캐시 일관성 유지 방법.
- 제7항에 있어서,상기 제2 상태로의 전이는 상기 제1 캐시 아래에 있으며 제1 캐시와 논리적으로 인라인 상태인 제2 캐시 내에 있는 상기 저장 항목을 포함하는 캐시 위치의 할당을 해제하는 것으로부터 발생하는 캐시 일관성 유지 방법.
- 제7항에 있어서,상기 일관성 표시기가 상기 제2 상태에 있는 동안에 상기 저장 항목과 연관된 어드레스 태그를 포함하여 인스트럭션 캐시 위치를 무효화하는 동작의 감지에 응답하여, 상기 일관성 표시기를 상기 저장 항목이 무효임을 표시하는 제3 상태로 갱신하는 단계를 추가로 포함하는 캐시 일관성 유지 방법.
- a) 별도의 내부 데이터 및 인스트럭션 캐시를 구비한 프로세서;b) 상기 프로세서에 접속되어 데이터 및 인스트럭션을 포함하는 제2 캐시;c) 논리적으로 상기 제2 캐시 아래에서 상기 제2 캐시에 접속되어 데이터 및 인스트럭션을 포함하는 제3 캐시; 및d) 상기 제2 캐시 내에 있는 저장 항목과 연관되어 있으며, 상기 저장 항목이 상기 제2 캐시와 최소한 하나의 다른 캐시에서 발견될 수 있고, 상기 저장 항목을 포함하는 모든 캐시가 시스템 메모리와 일관성을 가지며, 상기 저장 항목이 인스트럭션 페치 동작에 의해 검색되었다는 것을 표시하는 제1 상태를 가지는 일관성 표시기를 포함하는 데이터 처리 시스템.
- 제10항에 있어서,상기 일관성 표시기는 상기 저장 항목이 상기 제2 캐시에서는 발견될 수 있으나 상기 제3 캐시에서는 발견될 수 없다는 것을 표시하는 제2 상태를 갖는 데이터 처리 시스템.
- 제11항에 있어서,상기 일관성 표시기는 상기 프로세서 인스트럭션 캐시에서 상기 저장 항목에 대응하는 캐시 위치를 무효화하는 동작에 응답하여 상기 제2 상태로부터 상기 저장 항목이 무효임을 표시하는 제3 상태로 전이하는 데이터 처리 시스템.
- 제10항에 있어서,상기 일관성 표시기는 상기 프로세서 인스트럭션 캐시에서 상기 저장 항목에 대응하는 캐시 위치를 무효화하는 동작에 응답하여 상기 제1 상태에서 상기 저장 항목이 무효임을 표시하는 제2 상태로 전이하는 데이터 처리 시스템.
- 제10항에 있어서,상기 제1 상태는 상기 저장 항목이 인스트럭션을 포함하는 것으로 취급되어야 함을 표시하는 데이터 처리 시스템.
- 제10항에 있어서,상기 일관성 표시기는 상기 저장 항목이 상기 제2 캐시와 최소한 하나의 다른 캐시에서 발견될 수 있고, 상기 저장 항목을 포함하는 모든 캐시가 시스템 메모리와 일관성을 가지며, 상기 저장 항목이 인스트럭션을 포함하지 않는 것으로 취급되어야 함을 표시하는 제2 상태를 가지는 데이터 처리 시스템.
- 제15항에 있어서,상기 일관성 표시기는 상기 프로세서 데이터 캐시에 대해 상기 저장 항목을 검색하는 동작에 응답하여 상기 제1 상태에서 제2 상태로 전이하는 데이터 처리 시스템.
- 데이터 처리 시스템에서 캐시 일관성 프로토콜을 지원하는 캐시에 있어서,a) 복수개의 캐시 위치를 포함하는 데이터 저장 장치;b) 복수개의 엔트리 ―여기서 각 엔트리는 상기 복수개의 캐시 위치 중 하나의 캐시 위치와 고유하게 연관되어 있음―를 포함하는 캐시 디렉토리; 및c) 적어도 하나의 디렉토리 엔트리 내에 있으며, 연관된 캐시 위치 내에 있는 내용이 시스템 메모리와 일관성을 가지며 인스트럭션 페치 동작에 의해 검색되었음을 표시하는 제1 상태를 가지는 일관성 표시기를 포함하는 캐시 일관성 프로토콜 지원 캐시.
- 제17항에 있어서,상기 제1 상태는 상기 캐시 위치가 인스트럭션을 포함하는 것으로 취급되어야 함을 표시하는 캐시 일관성 프로토콜 지원 캐시.
- 제17항에 있어서,상기 일관성 표시기는 상기 연관된 캐시 위치 내에 있는 내용이 상기 캐시 아래에 있으며 상기 캐시와 논리적으로 인라인 상태인 다른 캐시들에서 발견될 수 없다는 것을 표시하는 제2 상태를 가지는 캐시 일관성 프로토콜 지원 캐시.
- 제17항에 있어서,상기 일관성 표시기는 상기 내용이 인스트럭션을 포함하지 않는 것으로 취급되어야 함을 표시하는 제2 상태를 가지는 캐시 일관성 프로토콜 지원 캐시.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/024,321 | 1998-02-17 | ||
US9/024,321 | 1998-02-17 | ||
US09/024,321 US6345339B1 (en) | 1998-02-17 | 1998-02-17 | Pseudo precise I-cache inclusivity for vertical caches |
Publications (2)
Publication Number | Publication Date |
---|---|
KR19990072592A KR19990072592A (ko) | 1999-09-27 |
KR100320974B1 true KR100320974B1 (ko) | 2002-01-18 |
Family
ID=21819988
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019990004876A KR100320974B1 (ko) | 1998-02-17 | 1999-02-11 | 수직 캐시 계층구조에서 의사 정밀 아이-캐시의 포함 방법 |
Country Status (10)
Country | Link |
---|---|
US (1) | US6345339B1 (ko) |
EP (1) | EP0936552B1 (ko) |
JP (1) | JP3245125B2 (ko) |
KR (1) | KR100320974B1 (ko) |
CN (1) | CN1134735C (ko) |
CA (1) | CA2260285A1 (ko) |
DE (1) | DE69930983T2 (ko) |
MY (1) | MY119935A (ko) |
SG (1) | SG71192A1 (ko) |
TW (1) | TW428133B (ko) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6748490B1 (en) * | 2000-03-29 | 2004-06-08 | Ati International Srl | Method and apparatus for maintaining data coherency in a shared memory system |
US7117316B2 (en) * | 2002-08-05 | 2006-10-03 | Micron Technology, Inc. | Memory hub and access method having internal row caching |
US6996679B2 (en) * | 2003-04-28 | 2006-02-07 | International Business Machines Corporation | Cache allocation mechanism for saving multiple elected unworthy members via substitute victimization and imputed worthiness of multiple substitute victim members |
US6993628B2 (en) * | 2003-04-28 | 2006-01-31 | International Business Machines Corporation | Cache allocation mechanism for saving elected unworthy member via substitute victimization and imputed worthiness of substitute victim member |
US7484044B2 (en) | 2003-09-12 | 2009-01-27 | Intel Corporation | Method and apparatus for joint cache coherency states in multi-interface caches |
US7426612B2 (en) * | 2004-06-30 | 2008-09-16 | Intel Corporation | Methods and apparatus for enforcing instruction-cache coherence |
US20070094450A1 (en) * | 2005-10-26 | 2007-04-26 | International Business Machines Corporation | Multi-level cache architecture having a selective victim cache |
US7836257B2 (en) * | 2007-12-19 | 2010-11-16 | International Business Machines Corpation | System and method for cache line replacement selection in a multiprocessor environment |
US8055847B2 (en) * | 2008-07-07 | 2011-11-08 | International Business Machines Corporation | Efficient processing of data requests with the aid of a region cache |
DE112013007751B3 (de) * | 2012-10-22 | 2023-01-12 | Intel Corporation | Hochleistungs-Zusammenschaltungs-Bitübertragungsschicht |
US9563562B2 (en) | 2012-11-27 | 2017-02-07 | Nvidia Corporation | Page crossing prefetches |
US9639471B2 (en) | 2012-11-27 | 2017-05-02 | Nvidia Corporation | Prefetching according to attributes of access requests |
US9824009B2 (en) * | 2012-12-21 | 2017-11-21 | Nvidia Corporation | Information coherency maintenance systems and methods |
CN104978283B (zh) * | 2014-04-10 | 2018-06-05 | 华为技术有限公司 | 一种内存访问控制方法,及装置 |
US9852071B2 (en) | 2014-10-20 | 2017-12-26 | International Business Machines Corporation | Granting exclusive cache access using locality cache coherency state |
US10282296B2 (en) | 2016-12-12 | 2019-05-07 | Intel Corporation | Zeroing a cache line |
KR20190086669A (ko) * | 2016-12-12 | 2019-07-23 | 인텔 코포레이션 | 프로세서 아키텍처에 대한 장치들 및 방법들 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5553262B1 (en) * | 1988-01-21 | 1999-07-06 | Mitsubishi Electric Corp | Memory apparatus and method capable of setting attribute of information to be cached |
US5023776A (en) * | 1988-02-22 | 1991-06-11 | International Business Machines Corp. | Store queue for a tightly coupled multiple processor configuration with two-level cache buffer storage |
US5317716A (en) * | 1988-08-16 | 1994-05-31 | International Business Machines Corporation | Multiple caches using state information indicating if cache line was previously modified and type of access rights granted to assign access rights to cache line |
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 |
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 |
JP3132749B2 (ja) * | 1994-12-05 | 2001-02-05 | インターナショナル・ビジネス・マシーンズ・コーポレ−ション | マルチプロセッサ・データ処理システム |
US5809529A (en) * | 1995-08-23 | 1998-09-15 | International Business Machines Corporation | Prefetching of committed instructions from a memory to an instruction cache |
US6374330B1 (en) * | 1997-04-14 | 2002-04-16 | International Business Machines Corporation | Cache-coherency protocol with upstream undefined state |
US5996048A (en) * | 1997-06-20 | 1999-11-30 | Sun Microsystems, Inc. | Inclusion vector architecture for a level two cache |
US6199144B1 (en) * | 1997-12-31 | 2001-03-06 | Intel Corporation | Method and apparatus for transferring data in a computer system |
-
1998
- 1998-02-17 US US09/024,321 patent/US6345339B1/en not_active Expired - Fee Related
-
1999
- 1999-01-15 CN CNB991010981A patent/CN1134735C/zh not_active Expired - Fee Related
- 1999-01-15 MY MYPI99000183A patent/MY119935A/en unknown
- 1999-01-25 CA CA002260285A patent/CA2260285A1/en not_active Abandoned
- 1999-02-09 JP JP03158699A patent/JP3245125B2/ja not_active Expired - Fee Related
- 1999-02-10 TW TW088102029A patent/TW428133B/zh not_active IP Right Cessation
- 1999-02-11 KR KR1019990004876A patent/KR100320974B1/ko not_active IP Right Cessation
- 1999-02-13 SG SG1999000590A patent/SG71192A1/en unknown
- 1999-02-15 DE DE69930983T patent/DE69930983T2/de not_active Expired - Lifetime
- 1999-02-15 EP EP99301051A patent/EP0936552B1/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
EP0936552B1 (en) | 2006-04-26 |
TW428133B (en) | 2001-04-01 |
CA2260285A1 (en) | 1999-08-17 |
DE69930983T2 (de) | 2006-11-23 |
MY119935A (en) | 2005-08-30 |
JPH11328024A (ja) | 1999-11-30 |
KR19990072592A (ko) | 1999-09-27 |
SG71192A1 (en) | 2000-03-21 |
US6345339B1 (en) | 2002-02-05 |
EP0936552A2 (en) | 1999-08-18 |
JP3245125B2 (ja) | 2002-01-07 |
EP0936552A3 (en) | 1999-09-22 |
CN1231443A (zh) | 1999-10-13 |
CN1134735C (zh) | 2004-01-14 |
DE69930983D1 (de) | 2006-06-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6912623B2 (en) | Method and apparatus for multithreaded cache with simplified implementation of cache replacement policy | |
KR100389549B1 (ko) | 템포럴 및 넌템포럴 명령어에 대한 공유 캐시 구조 | |
KR100320974B1 (ko) | 수직 캐시 계층구조에서 의사 정밀 아이-캐시의 포함 방법 | |
US6990557B2 (en) | Method and apparatus for multithreaded cache with cache eviction based on thread identifier | |
US6957304B2 (en) | Runahead allocation protection (RAP) | |
US7685379B2 (en) | Cache memory to support a processor's power mode of operation | |
US7698508B2 (en) | System and method for reducing unnecessary cache operations | |
KR100318789B1 (ko) | 멀티프로세서 데이타 처리 시스템에서의 캐쉬를 관리하는시스템과 방법 | |
KR100326980B1 (ko) | 다중-레벨 메모리 계층 구조를 포함하는 데이터 처리 시스템용 캐시 일관성 프로토콜 | |
US6195729B1 (en) | Deallocation with cache update protocol (L2 evictions) | |
US7032074B2 (en) | Method and mechanism to use a cache to translate from a virtual bus to a physical bus | |
US6725341B1 (en) | Cache line pre-load and pre-own based on cache coherence speculation | |
US20100217937A1 (en) | Data processing apparatus and method | |
KR19980079433A (ko) | 비포함 캐쉬 메모리 계층 구조에서 사용하기 위한 캐쉬 일관성 메카니즘 구현 방법 및 시스템 | |
KR100322225B1 (ko) | 배회(h) 상태 및 최근(r) 상태를 갖는캐쉬 코히어런시 프로토콜 | |
EP0834129A1 (en) | Method and apparatus for reducing cache snooping overhead in a multilevel cache system | |
US6178484B1 (en) | DCBST with ICBI mechanism to maintain coherency of bifurcated data and instruction caches | |
US8473686B2 (en) | Computer cache system with stratified replacement | |
KR20060102565A (ko) | 라이트 백 캐시 내에서 동시 발생하는 스누프 푸시 또는스누프 킬 연산중에 라이트 백 연산을 취소하는 시스템 및방법 | |
US6347363B1 (en) | Merged vertical cache controller mechanism with combined cache controller and snoop queries for in-line caches | |
US7464227B2 (en) | Method and apparatus for supporting opportunistic sharing in coherent multiprocessors | |
US7779205B2 (en) | Coherent caching of local memory data | |
US6101582A (en) | Dcbst with icbi mechanism | |
GB2401227A (en) | Cache line flush instruction and method |
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: 20051213 Year of fee payment: 5 |
|
LAPS | Lapse due to unpaid annual fee |