KR19990077470A - 짝수/홀수캐시디렉토리메카니즘 - Google Patents
짝수/홀수캐시디렉토리메카니즘 Download PDFInfo
- Publication number
- KR19990077470A KR19990077470A KR1019990006232A KR19990006232A KR19990077470A KR 19990077470 A KR19990077470 A KR 19990077470A KR 1019990006232 A KR1019990006232 A KR 1019990006232A KR 19990006232 A KR19990006232 A KR 19990006232A KR 19990077470 A KR19990077470 A KR 19990077470A
- Authority
- KR
- South Korea
- Prior art keywords
- address
- parity
- cache directory
- cache
- address tag
- Prior art date
Links
- 230000004044 response Effects 0.000 claims description 11
- 238000012360 testing method Methods 0.000 abstract description 2
- 238000012545 processing Methods 0.000 description 15
- 238000003860 storage Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 241000699670 Mus sp. Species 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000001934 delay Effects 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/0893—Caches characterised by their organisation or structure
- G06F12/0895—Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
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)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
본 발명은 짝수/홀수 캐시 디렉토리 메카니즘에 관한 것이다. 어드레스의 인덱스 필드는 하위 캐시 디렉토리 어드레스 라인으로 맵핑(map)된다. 나머지 캐시 디렉토리 어드레스 라인, 즉 최상위 라인은 해당 캐시 디렉토리 엔트리에 저장되거나 해당 캐시 디렉토리 엔트리로부터 검색되는 캐시 엔트리에 대한 어드레스 태그의 패리티에 의해 인덱스된다. 따라서, 짝수 패리티 어드레스 태그는 그 태그의 최상위 인덱스/어드레스 비트가 0인 상태로 캐시 디렉토리 위치에 저장되고, 홀수 패리티 어드레스 태그는 그 태그의 최상위 인덱스/어드레스 비트가 1인 상태로 캐시 디렉토리 위치에 저장된다. 반대 배열(최상위 비트 1 = 짝수 패리티; 최상위 비트 0 = 홀수 패리티)도 또한 사용될 수 있으며, 패리티가 최상위 비트보다는 최하위 비트로 공급되도록 구성할 수 있다. 어느 경우나, 짝수/홀수 패리티가 캐시 디렉토리내 어드레스 태그의 위치에 기초하여 암시된다. 연관 캐시에서, 짝수 패리티 어드레스 태그가 캐시 디렉토리의 합동 부류(행) 또는 합동 부류 멤버(열)로 이루어진 하나의 집합 내에 저장되고, 홀수 패리티 어드레스 태그는 다른 집합 내에 저장되도록 메카니즘을 구성할 수 있다. 또한, 제공되는 어드레스내 어드레스 태그 필드의 패리티는 인덱스된 위치에 저장된 어드레스 태그의 패리티를 테스트하는데 사용되며, 어드레스 태그와 패리티 일치는 캐시 히트(cache hit)를 나타낸다. 기술된 예에서, 개시된 암시 패리티 메카니즘에 따르면 각 캐시 디렉토리 엔트리와 연관되는 저장된 패리티를 요구하는 구성에서 요구되는 캐시 디렉토리 어레이 공간의 약 1/12(대략 9%)이 절감된다. 또한, 이 메카니즘은 임계(critical) 캐시 디렉토리 액세스 경로내에서의 지연(delay)을 개선시킨다.
Description
본 발명은 데이터 처리 시스템의 캐시에 관한 것으로, 구체적으로는 캐시에 대한 캐시 디렉토리 어드레싱(cache directory addressing) 및 패리티 검사 방식(parity checking scheme)에 관한 것이다. 더욱 구체적으로, 본 발명은 데이터 처리 시스템에서 캐시에 대한 데이터 저장 장치 크기를 감소시키는 캐시 디렉토리 어드레싱 및 패리티 검사 방식에 관한 것이다.
최근의 데이터 처리 시스템은 공통적으로 시스템 메모리로부터 프로세서로 데이터를 스테이징(staging)하는, 액세스 대기 시간이 감소된 캐시를 사용한다. 이러한 캐시는 일반적으로 캐시 디렉토리내 패리티 검사 메카니즘을 사용한다. 도 3은 1MB를 사용하는 32비트 데이터 처리 시스템용 캐시 디렉토리 어드레싱 및 패리티 검사 메카니즘을 나타낸다. 1MB 캐시 디렉토리 어드레싱 구성(configuration)은 64 바이트 캐시 라인을 사용한다. 캐시 라인은 일관성 상태(coherency state)가 나타나는 메모리 블록으로, 캐시 블록이라고도 한다. 캐시를 어드레싱하는 경우에 어드레스의 26-31 비트(6비트)는 캐시 라인내 어드레스(intra-cache line address)를 지정하고, 어드레스의 12-25 비트(4비트)는 캐시 디렉토리와 캐시 메모리에서 캐시 라인에 대한 인덱스로 사용되고, 어드레스의 0-11 비트(12비트)는 캐시 라인 어드레스 태그(tag)로 사용된다. 캐시 라인내 어드레스 필드는 특정 바이트가 캐시 라인으로부터 선택되도록 한다. 인덱스 필드는 캐시 디렉토리와 메모리 내의 행(또는 합동 부류: congruence class)을 지정한다. 또한, 어드레스 태그 필드는 특정 캐시 라인을 식별한다. 어드레스 태그는 어드레스와 연관된 데이터를 포함하는 캐시 라인에 해당하는 캐시 디렉토리 엔트리(entry) 내에 저장된다. 어드레스의 어드레스 태그 필드와 캐시 디렉토리 엔트리의 내용이 일치하면 정확한 캐시 엔트리가 선택된 것임을 검증할 수 있다.
종래 기술에서는, 캐시 디렉토리(302)가 어드레스 인덱스 필드(어드레스 비트[12-25])를 사용하여 캐시 디렉토리(302) 내의 엔트리(302a)를 선택한다. 어드레스 인덱스 필드는 캐시 디렉토리(302)의 어드레스 라인(0-13)과 캐시 메모리(도시되지 않음)로 맵핑(map)된다. 선택된 캐시 디렉토리 엔트리(302a)는 하나의 12-비트 어드레스 태그(302b)와 하나의 패리티 비트(302c)를 포함한다. 캐시 디렉토리 엔트리(302a) 내의 패리티 비트(302c)는 어드레스 태그(302b)의 패리티를 포함한다. 어드레스 태그(302b)는 비교기(304)로 전달되어, 제공된 어드레스의 어드레스 태그 필드(어드레스 비트[0-11])와 비교된다. 어드레스 태그(302b)를 검증하기 위해 어드레스 태그(302b)와 패리티 비트(302c)가 함께 패리티 검사 로직(306)으로 전달된다. 패리티 검사 로직(306)은 어드레스 태그(302b)의 패리티를 계산하고, 그 결과를 패리티 비트(302c)와 비교하여, 일치하는지의 여부를 표시하는 신호(308)를 생성한다.
상기에 기술된 형태의 캐시 디렉토리 어드레싱 및 패리티 검사 시스템을 구현하는 접근 방법에 있어서의 문제점은 각 캐시 엔트리에서 패리티 비트를 어드레스 태그와 연관시키는데 추가적인 캐시 디렉토리 공간이 요구된다는 점이다. 그러므로, 캐시 디렉토리에 패리티 비트 저장을 요구하지 않는 캐시 디렉토리 어드레싱 및 패리티 검사 방식을 제공하는 것이 바람직하다. 사용되는 캐시 디렉토리 어드레싱 및 패리티 검사 방식이 새로운 패리티 생성 및/또는 검사 로직을 요구하지 않는다면 더욱 바람직하다. 메카니즘이 임계 캐시 디렉토리 액세스 경로 내에서의 지연(delay)을 개선할 수 있다면 더욱 바람직할 것이다.
따라서, 본 발명의 목적은 데이터 처리 시스템에 사용되는 개선된 캐시를 제공하기 위한 것이다.
본 발명의 다른 목적은 캐시에 대한 개선된 캐시 디렉토리 어드레싱 및 패리티 검사 방식을 제공하기 위한 것이다.
본 발명의 또 다른 목적은 데이터 처리 시스템에서 캐시에 대한 데이터 저장 장치 크기를 감소시키는 캐시 디렉토리 어드레싱 및 패리티 검사 방식을 제공하기 위한 것이다.
본 발명의 또 다른 목적은 임계 캐시 디렉토리 액세스 경로 내에서의 지연을 개선시키는 캐시 디렉토리 어드레싱 및 패리티 검사 방식을 제공하기 위한 것이다.
도 1은 본 발명의 바람직한 실시예에 따른 멀티프로세서 데이터 처리 시스템을 나타낸다.
도 2는 본 발명의 바람직한 실시예에 따른 캐시 디렉토리 어드레싱 및 패리티 검사 방식에 사용되는 캐시 구성의 블록도이다.
도 3은 종래의 캐시 디렉토리 어드레싱 및 패리티 검사 방식을 나타낸다.
상기 목적은 이하에 기술되는 바에 의하여 달성된다.
어드레스의 인덱스 필드는 하위 캐시 디렉토리 어드레스 라인으로 맵핑된다. 나머지 캐시 디렉토리 어드레스 라인, 즉 최상위 라인은 해당 캐시 디렉토리 엔트리로 저장되거나 해당 캐시 디렉토리 엔트리로부터 검색되는 캐시 엔트리에 대한 어드레스 태그의 패리티에 의하여 인덱스된다.
따라서, 짝수 패리티 어드레스 태그는 그 태그의 최상위 인덱스/어드레스 비트가 0인 상태로 캐시 디렉토리 위치에 저장되고, 홀수 패리티 어드레스 태그는 그 태그의 최상위 인덱스/어드레스 비트가 1인 상태로 캐시 디렉토리 위치에 저장된다. 반대 배열(최상위 비트 1= 짝수 패리티; 최상위 비트 0 = 홀수 패리티)도 또한 사용될 수 있으며, 패리티가 최상위 비트보다는 최하위 비트로 공급되는 구성일 수 있다. 어느 경우나, 짝수/홀수 패리티가 캐시 디렉토리내 어그레스 태그의 위치에 기초하여 암시된다. 연관 캐시에서, 짝수 패리티 어드레스 태그가 캐시 디렉토리의 합동 부류(행) 또는 합동 부류 멤버(열)로 이루어진 하나의 집합 내에 저장되고, 홀수 패리티 어드레스 태그는 다른 집합 내에 저장되도록 메카니즘을 구성할 수 있다. 또한, 제공되는 어드레스내 어드레스 태그 필드의 패리티는 인덱스된 위치에 저장된 어드레스 태그의 패리티를 테스트하는데 사용되며, 어드레스 태그와 패리티 일치는 캐시 히트를 나타낸다. 기술된 예에서, 개시된 암시 패리티 메카니즘에 따른면 각각의 캐시 디렉토리 엔트리와 연관되는 저장된 패리티를 요구하는 구성에서 요구되는 캐시 디렉토리 어레이 공간의 약 1/12(대략 9%)이 절감된다. 또한, 이 메카니즘은 임계 캐시 디렉토리 액세스 경로 내에서의 지연을 개선시킨다.
상기 본 발명의 목적 및 추가 목적, 특징 및 장점은 다음에 기술되는 설명에서 명확해질 것이다.
본 발명의 신규한 특징은 첨부된 특허 청구의 범위에 기술되어 있다. 첨부된 도면과 함께 예시된 실시예의 상세한 설명을 참조하면 본 발명의 바람직한 실시예, 추가적인 목적 및 장점이 보다 확실하게 이해될 수 있을 것이다.
도 1을 참조하면, 본 발명의 바람직한 실시예에 따른 멀티프로세서 데이터 처리 시스템이 도시되어 있다. 데이터 처리 시스템(100)은 다수의 프로세서(102,104)를 포함하는 대칭형 멀티프로세서 시스템(symetric multiprocessor system)이며, 이들 프로세서(102,104)는 바람직하게는 뉴욕 아몽크(Amornk)에 소재한 IBM(International Business machines)사에서 입수가능한 파워PCTM계열의 프로세서 중의 하나로 이루어진다. 예시된 실시예에서는 단지 두 개의 프로세서만 도시하였으나, 본 발명이 속한 기술 분야에서 통상의 지식을 가진 자라면 본 발명에 따른 멀티프로세서 데이터 처리 시스템에 별도의 프로세서가 추가로 사용될 수 있다는 것을 이해할 수 있을 것이다.
각 프로세서(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)는 각각 32KB의 저장 용량과 대략 프로세서 주기의 1배 내지 2배의 액세스 대기 시간을 가질 수 있다. L2 캐시(114,116)는 512KB의 저장 용량을 가지지만 프로세서 주기의 5배의 액세스 대기 시간을 가지는 반면, L3 캐시(118,119)는 4MB의 저장 용량을 가지지만 프로세서 주기의 15배 이상의 액세스 대기 시간을 가질 수 있다. 따라서 L2 캐시(114, 116)와 L3 캐시(118,119)는 프로세서(102,104)와 시스템 메모리(120) 사이에서 중간 저장 장치의 역할을 하고, 일반적으로 매우 큰 저장 용량을 가지지만 프로세서 주기의 50배 이상의 액세스 대기 시간을 가진다.
데이터 처리 시스템(100)에 사용되는 캐시 계층 구조(hierarchy)내의 레벨수와 캐시 계층 구조 구성은 모두 변화될 수 있다. 실시예에서 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(입/출력) 버스 브리지(bridge)(126)도 시스템 버스(122)에 연결될 수 있다. I/O 버스 브리지(126)는 시스템 버스(122)를 I/O 버스(128)에 연결시키고, I/O 버스(128)는 I/O 장치(130)와 비휘발성 메모리(132)에 대한 연결을 제공할 수 있다. 따라서, 시스템 버스(122), I/O 버스 브리지(126) 및 I/O 버스(128)는 부가 장치(attached device)를 결합시키는 상호 연결(interconnect)을 형성하는데, 이들 부가 장치에 대한 대체 구현예는 잘 알려져 있다. I/O 장치(130)는 키보드, 마우스 또는 트랙볼과 같은 그래픽 포인팅 장치(graphical pointing device), 디스플레이, 및 프린터를 포함하는 통상의 주변 장치를 포함하고, 이러한 주변 장치는 통상의 어뎁터를 통하여 I/O 버스(128)에 접속된다. 비휘발성 메모리(123)는 하드 디스크 드라이브를 포함할 수 있으며, 운영 체제(operating system)와 시스템(100)의 동작을 제어하는 기타 다른 소프트웨어를 저장한다. 이 운영 체제와 소프트웨어는 시스템(100)에 대한 전력 공급에 응답하여 휘발성 시스템 메모리(120)로 로드된다. 본 발명이 속한 기술 분야에서 통상의 지식을 가진 자는 직렬 및 병렬 포트, 네트워트 또는 부가 장치에 대한 연결 장치, 시스템 메모리(120)에 대한 액세스를 조절하는 메모리 컨트롤러 등과 같은 도 1에 도시되지 않는 다수의 추가 구성 요소가 데이터 처리 시스템(100)에 포함될 수 있다는 것을 인식할 수 있을 것이다. 이러한 수정과 변형은 본 발명의 특징과 범위내에서 이루어질 수 있다.
시스템 버스(122) 상의 통상적인 통신 트랜잭션(transaction)은 해당 트랜잭션의 소스를 나타내는 소스 태그와, 어드레스 및/또는 데이터를 포함한다. 시스템 버스(122)에 연결된 각각의 장치는 시스템 버스(122)상의 모든 통신 트랜잭션을 스누프(snoops)하고, 필요시에 다른 수신처(recipient)에 사용하도록 의도된 통신 트랜잭션에 개입하며, 실행 가능하고 적절한 때에 장치내에 복사된 시스템 메모리 데이터에 대한 변경을 복제한다.
도 2를 참조하면, 본 발명의 바람직한 실시예에 따른 공통 캐시 디렉토리 어드레싱 및 패리티 검사 방식의 캐시 구성의 다이어그램이 예시되어 있다. 도시된 캐`시 디렉토리 구성은 L2 캐시(114,116)와 L3 캐시(118,119)를 포함하는 도 1에 도시된 임의 캐시에 사용될 수 있다. 기술된 캐시 디렉토리 어드레싱 방식의 실시예는 L2 캐시(114 또는 116) 또는 L3 캐시(118 또는 119) 구현에 가장 적합한 사이즈인 1MB 캐시에 관한 것이다. 그러나, 본 발명의 캐시 디렉토리 어드레싱 및 패리티 검사 방식은 데이터 처리 시스템의 저장 계층 구조의 임의 레벨에서 임의 크기를 갖는 캐시에 대하여 구현될 수 있다.
도 2는 64 바이트 캐시 라인을 가지는 1MB 캐시를 사용하는 32 비트 데이터 처리 시스템용 캐시 디렉토리 어드레싱 및 패리티 검사 시스템을 도시한다. 어드레스의 26-31 비트(6비트)는 캐시 라인내 어드레스를 지정한다. 어드레스의 더 작은 인덱스 필드(13-25 비트(12비트))가 캐시 디렉토리의 엔트리와 캐시 메모리의 캐시 라인에 대한 인덱스로 사용된다. 어드레스의 0-11 비트(12비트)는 캐시 라인 어드레스 태그로 사용된다.
캐시 디렉토리(202)는 어드레스 인덱스 필드(어드레스 비트[13-25])를 사용하여 캐시 디렉토리(202) 내의 엔트리(202a)를 선택한다. 어드레스 인덱스 필드는 캐시 디렉토리(202)의 어드레스 라인(1-13)과 캐시 메모리(도시되지 않음)로 맵핑된다. 종래 기술과 같이, 선택된 캐시 디렉토리 엔트리(202a)는 비교기(204)와 패리티 검사 로직(206)으로 전달되는 12비트 어드레스 태그를 포함되는데, 여기서 비교기(24)는 제공된 어드레스의 어드레스 태그 필드(어드레스 비트[0-11])를 전달된 12비트 어드레스 태그와 비교하며, 패리티 검사 로직(206)은 캐시 디렉토리 엔트리(202a)로부터 전달된 어드레스 태그의 패리티가 적절한 패리티와 일치하는지 여부를 표시하는 신호(208)를 생성한다. 그러나, 종래 기술과는 달리, 캐시 디렉토리 엔트리(202b)와 연관되는 패리티 비트가 없으며, 그 대신에 일치 어드레스 태그를 포함하는 캐시 위치에 대한 캐시 디렉토리 인덱스가 패리티를 암시한다.
암시된 패리티를 획득하기 위하여, 패리티 생성기(210)가 어드레스 태그 필드(어드레스 비트[0-11])를 사용하여 어드레스 태그의 패리티를 계산한다. 그 결과는 해당 태그를 포함하는 캐시 디렉토리 엔트리(202a)의 나머지 어드레스 비트(어드레스 비트 0)로서 사용된다. 그 결과 +는 짝수/-는 홀수인 패리티 방식이 된다. 즉, 짝수 패리티를 가지는 어드레스 태그가 정(positive)의 어드레스(0X XXXX XXXX XXXX)를 가지는 캐시 디렉토리 엔트리에 저장되고, 홀수 패리티를 가지는 어드레스 태그는 부(negative)의 어드레스(1X XXXX XXXX XXXX)를 가지는 엔트리에 저장된다. 따라서, 캐시 디렉토리와 메모리는 효과적으로 분리되는데, 한 쪽은 짝수 패리티의 어드레스 태그를 가지며, 다른 한쪽은 홀수 패리티의 어드레스 태그를 가진다.
최상위 캐시 디렉토리 어드레스 비트가 예시된 실시예에 사용되었지만, 최하위 비트가 사용될 수도 있다. 이 경우, 캐시 디렉토리 내의 한라인씩 거른 라인(every other line)이 짝수 패리티를 가지는 어드레스 태그(예를 들면, 어드레스 XX XXXX XXXX XXX0을 가지는 위치)를 포함하고, 나머지 교변하는 라인(alternatively line)은 홀수 패리티를 가지는 어드레스 태그(어드레스 XX XXXX XXXX XXX1을 가지는 위치)를 포함한다.
패리티 생성기(210)에 의하여 계산된 패리티는 또한 패리티 검사 로직(206)으로 전달되고, 패리티 검사 로직(206)은 선택된 캐시 엔트리(202a)내 어드레스 태그의 패리티를 계산하여 일치를 검증한다. 패리티 생성기(210)와 패리티 검사 로직(206)은 종래 기술에 따라 형성될 수 있다. 따라서, 본 발명의 패리티 검사 메카니즘을 위한 특별한 패리티 로직이 요구되지 않는다. 패리티 검사 로직(206)이 캐시 디렉토리(202) 외부에서 사용된 것처럼 도시되었지만, 패리티 검사 로직(206)은 캐시 디렉토리(202)내 출력부의 저장 어레이와 선택 로직 사이에서 선택적으로 사용될 수 있다.
본 발명은 위에서 비연관 캐시(non-associative cache)의 관점에서 설명되고 있다. 그러나, 본 발명의 어드레싱 및 패리티 검사 메카니즘은 동일한 설비로 연관 캐시에서 사용될 수 있다. 연관 캐시에서, 본 발명의 패리티에 근거한 어드레싱 방식은 디렉토리 인덱스의 일부로서 합동 부류(행)를 선택하는데 사용될 수 있으므로, 짝수 패리티 어드레스 태그는 합동 부류로 이루어진 하나의 집합에 저장되고, 홀수 패리티 어드레스 태그는 다른 합동 부류로 이루어진 집합에 저장된다. 선택적으로, 패리티에 기초한 어드레싱 방식이 멀티플렉서 입력으로서 합동 부류의 멤버(열)를 선택하는데 사용될 수 있으므로, 짝수 패리티 어드레스 태그는 합동 부류 멤버로 이루어진 하나의 집합에 저장되고, 홀수 패리티 어드레스 태그는 합동 부류 멤버로 이루어진 다른 집합에 저장된다.
각각의 어드레스 태그에 연관되는 패리티가 필요하지 않으므로, 본 발명의 암시 패리티 메카니즘은 캐시 디렉토리의 어레이 공간에서 약 1/12(대략 9%)를 절감한다. 따라서, 동일한 면적에 보다 큰 캐시를 사용할 수 있으며, 또는 동일한 크기의 캐시를 패리티 비트의 저장을 요구하는 캐시 설계보다 작은 면적내에서 구현할 수 있다. 또한, 캐시 디렉토리는 적어도 일부분이 캐시에 저장된 어드레스 태그의 패리티에 기초하여 인덱스되기 때문에, 특정 어드레스 크기에 대해 보다 큰 캐시를 구현할 수 있다.
당업계에 알려진 바와 같이, 어드레스 비트 0은 캐시 디렉토리 어레이 내에서 "지연 선택(late select)"으로서 사용될 수 있다. 이것은 캐시 디렉토리 액세스(Add[1-13])가 패리티 생성 로직과 동시에 발생하도록 하여, 임계 캐시 디렉토리 액세스 경로에서의 추가적인 지연을 제거한다. 또한, 엔트리당 비트수(13에서 12로)가 감소되고 전체 캐시 디렉토리의 물리적인 크기가 감소됨에 따라 실제 캐시 디렉토리 액세스가 개선된다.
본 발명의 바람직한 실시예가 상세히 예시되었지만, 특허 청구 범위에 기재된 본 발명의 특징 및 범위를 벗어나지 않는 범위 내에서 이들 실시예에 대한 다양한 변경이 당업자에 의해 이루어질 수 있다.
본 발명에 따른 캐시 디렉토리 어드레싱 및 패리티 검사 방식에서는 디렉토리에 패리티 비트를 저장할 필요가 없다.
Claims (24)
- a) 제공되는 어드레스 내의 어드레스 태그 필드의 패리티를 계산하는 단계;b) 인덱스―여기서 인덱스는 i) 상기 인덱스 비트내의 계산된 패리티; 및 ii) 상기 인덱스의 나머지 비트내에 제공되는 어드레스 내의 인덱스 필드를 포함함―를 계산하는 단계; 및c) 상기 계산된 인덱스를 사용하여 캐시 디렉토리 엔트리를 선택하는 단계를 포함하는 캐시 디렉토리 어드레싱 방법.
- 제1항에 있어서,상기 인덱스를 계산하는 단계가 상기 계산된 패리티를 상기 인덱스 내의 최상위 비트로 사용하는 단계를 추가로 포함하는 캐시 디렉토리 어드레싱 방법.
- 제1항에 있어서,상기 인덱스를 계산하는 단계가 상기 계산된 패리티를 인덱스 내의 최하위 비트로 사용하는 단계를 추가로 포함하는 캐시 디렉토리 어드레싱 방법.
- 제1항에 있어서,상기 선택된 캐시 디렉토리 엔트리에 저장된 어드레스 태그의 패리티를 계산하는 단계; 및상기 선택된 캐시 디렉토리 엔트리에 저장된 어드레스 태그의 패리티를 상기 제공되는 어드레스 내의 어드레스 태그 필드의 패리티와 비교하는 단계를 추가로 포함하는 캐시 디렉토리 어드레싱 방법.
- 제4항에 있어서,상기 선택된 캐시 디렉토리 엔트리에 저장된 어드레스 태그를 상기 제공되는 어드레스 내의 어드레스 태그 필드와 비교하는 단계를 추가로 포함하는 캐시 디렉토리 어드레싱 방법.
- 제5항에 있어서,상기 선택된 캐시 디렉토리 엔트리에 저장된 어드레스 태그와 상기 제공되는 어드레스 내의 어드레스 태그 필드의 일치와, 상기 선택된 캐시 디렉토리 엔트리에 저장된 어드레스 태그의 패리티와 상기 제공되는 어드레스 내의 어드레스 태그 필드의 패리티의 일치에 응답하여, 캐시 히트를 표시하는 단계를 추가로 포함하는 캐시 디렉토리 어드레싱 방법.
- 제5항에 있어서,상기 선택된 캐시 디렉토리 엔트리에 저장된 어드레스 태그와 상기 제공되는 어드레스 내의 어드레스 태그 필드의 불일치에 응답하여, 캐시 미스를 표시하는 단계를 추가로 포함하는 캐시 디렉토리 어드레싱 방법.
- 제5항에 있어서,상기 선택된 캐시 디렉토리 엔트리에 저장된 어드레스 태그의 패리티와 상기 제공되는 어드레스 내의 어드레스 태그 필드의 패리티의 일치에 응답하여, 캐시 미스를 표시하는 단계를 추가로 포함하는 캐시 디렉토리 어드레싱 방법.
- 제1항에 있어서,상기 계산된 인덱스를 사용하여 캐시 디렉토리 엔트리를 선택하는 단계가 상기 계산된 인덱스를 사용하여 상기 캐시 디렉토리 엔트리를 포함하는 합동 부류를 선택하는 단계를 추가로 포함하는 캐시 디렉토리 어드레싱 방법.
- 제공되는 어드레스 내의 어드레스 태그 필드의 패리티를 계산하는 패리티 생성기; 및인덱스―여기서 인덱스는 i) 상기 인덱스 비트내의 계산된 패리티; 및 ii) 상기 인덱스의 나머지 비트내 제공되는 어드레스내의 인덱스 필드를 포함함― 를 계산하는 캐시 디렉토리를 포함하고,상기 캐시 디렉토리는 상기 계산된 인덱스를 사용하여 캐시 디렉토리 엔트리를 선택하는 캐시 디렉토리 어드레싱 메카니즘.
- 제10항에 있어서,상기 계산된 패리티가 인덱스 내의 최상위 비트로 사용되는 캐시 디렉토리 어드레싱 메카니즘.
- 제10항에 있어서,상기 계산된 패리티가 인덱스 내의 최하위 비트로 사용되는 캐시 디렉토리 어드레싱 메카니즘.
- 제10항에 있어서,상기 선택된 캐시 디렉토리 엔트리에 저장된 어드레스 태그의 패리티를 계산하고, 상기 선택된 상기 캐시 디렉토리 엔트리에 저장된 어드레스 태그의 패리티를 상기 제공되는 어드레스 내의 어드레스 태그 필드의 패리티와 비교하는 패리티 검사 로직을 추가로 포함하는 캐시 디렉토리 어드레싱 메카니즘.
- 제13항에 있어서,상기 선택된 캐시 디렉토리 엔트리에 저장된 어드레스 태그를 상기 제공되는 어드레스 내의 어드레스 태그 필드와 비교하는 비교기를 추가로 포함하는 캐시 디렉토리 어드레싱 메카니즘.
- 제14항에 있어서,상기 선택된 캐시 디렉토리 엔트리에 저장된 어드레스 태그와 상기 제공되는 어드레스 내의 어드레스 태그 필드의 일치와, 상기 선택된 캐시 디렉토리 엔트리에 저장된 어드레스 태그의 패리티와 상기 제공되는 어드레스 내의 어드레스 태그 필드의 패리티의 일치에 응답하여, 캐시 히트 신호를 발생하는 캐시 컨트롤러를 추가로 포함하는 캐시 디렉토리 어드레싱 메카니즘.
- 제14항에 있어서,상기 선택된 캐시 디렉토리 엔트리에 저장된 어드레스 태그와 상기 제공되는 어드레스 내의 어드레스 태그 필드의 불일치에 응답하여, 캐시 미스 신호를 발생하는 캐시 컨트롤러를 추가로 포함하는 캐시 디렉토리 어드레싱 메카니즘.
- 제14항에 있어서,상기 선택된 캐시 디렉토리 엔트리에 저장된 어드레스 태그의 패리티와 상기 제공되는 어드레스 내의 어드레스 태그 필드의 패리티의 일치에 응답하여, 캐시 미스 신호를 발생하는 캐시 컨트롤러를 추가로 포함하는 캐시 디렉토리 어드레싱 메카니즘.
- 제10항에 있어서,상기 캐시 디렉토리가 계산된 인덱스를 사용하여 상기 캐시 디렉토리 엔트리를 포함하는 합동 부류를 선택하는 캐시 디렉토리 어드레싱 메카니즘.
- 제공되는 어드레스 내의 어드레스 태그 필드의 패리티를 계산하는 단계; 및상기 계산된 패리티와 상기 제공되는 어드레스 내의 인덱스 필드를 캐시 디렉토리에 대한 인덱스로 사용하여 캐시 디렉토리 엔트리를 선택하는 단계를 포함하는 캐시 디렉토리 어드레싱 방법.
- 제19항에 있어서,상기 계산된 패리티와 상기 제공되는 어드레스 내의 인덱스 필드를 캐시 디렉토리에 대한 인덱스로 사용하여 캐시 디렉토리 엔트리를 선택하는 단계가 상기 계산된 패리티와 상기 인덱스 필드의 일부를 사용하여 상기 캐시 디렉토리 엔트리를 포함하는 합동 부류를 선택하는 단계를 추가로 포함하는 캐시 디렉토리 어드레싱 방법.
- 제19항에 있어서,상기 계산된 패리티와 상기 제공되는 어드레스 내의 인덱스 필드를 캐시 디렉토리에 대한 인덱스로 사용하여 캐시 디렉토리 엔트리를 선택하는 단계가상기 인덱스 필드의 일부를 사용하여 상기 캐시 디렉토리 엔트리를 포함하는 합동 부류를 선택하는 단계; 및상기 계산된 패리티와 상기 인덱스 필드의 나머지 일부를 사용하여 상기 선택된 합동 부류 내의 합동 부류 멤버를 선택하는 단계를 추가로 포함하는 캐시 디렉토리 어드레싱 방법.
- 제19항에 있어서,a) 상기 선택된 캐시 디렉토리 엔트리 내의 어드레스 태그를 상기 제공되는 어드레스 내의 어드레스 태그 필드와 비교하는 단계;b) 상기 선택된 캐시 디렉토리 엔트리 내의 어드레스 태그와 상기 제공되는 어드레스 내의 어드레스 태그 필드의 일치에 응답하여 캐시 히트 신호를 발생하는 단계; 및c) 상기 선택된 캐시 디렉토리 엔트리 내의 어드레스 태그와 상기 제공되는 어드레스 내의 어드레스 태그 필드의 불일치에 응답하여 캐시 미스 신호를 발생하는 단계를 추가로 포함하는 캐시 디렉토리 어드레싱 방법.
- 제19항에 있어서,a) 상기 선택된 캐시 디렉토리 엔트리 내의 어드레스 태그의 패리티를 계산하는 단계;b) 상기 선택된 캐시 디렉토리 엔트리 내의 어드레스 태그의 패리티를 상기 제공되는 어드레스 내의 어드레스 태그 필드의 계산된 패리티와 비교하는 단계;c) 상기 선택된 캐시 디렉토리 엔트리 내의 어드레스 태그의 패리티와 상기 제공되는 어드레스 내의 어드레스 태그 필드의 계산된 패리티의 일치에 응답하여 캐시 히트 신호를 발생하는 단계; 및d) 상기 선택된 캐시 디렉토리 엔트리 내의 어드레스 태그의 패리티와 상기 제공되는 어드레스 내의 어드레스 태그 필드의 패리티의 불일치에 응답하여 캐시 미스 신호를 발생하는 단계를 추가로 포함하는 캐시 디렉토리 어드레싱 방법.
- 제19항에 있어서,캐시 디렉토리의 제1 부분에 짝수 패리티를 가지는 모든 어드레스 태그를 저장하는 단계; 및상기 제1 부분과는 다른 캐시 디렉토리의 제2 부분에 홀수 패리티를 가지는 모든 어드레스 태그를 저장하는 단계를 추가로 포함하는 캐시 디렉토리 어드레싱 방법.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/046,009 US6212616B1 (en) | 1998-03-23 | 1998-03-23 | Even/odd cache directory mechanism |
US9/046,009 | 1998-03-23 | ||
US09/046,009 | 1998-03-23 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR19990077470A true KR19990077470A (ko) | 1999-10-25 |
KR100320977B1 KR100320977B1 (ko) | 2002-01-18 |
Family
ID=21941069
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019990006232A KR100320977B1 (ko) | 1998-03-23 | 1999-02-25 | 짝수/홀수 캐시 디렉토리 어드레싱 방법 및 장치 |
Country Status (3)
Country | Link |
---|---|
US (1) | US6212616B1 (ko) |
JP (1) | JPH11328017A (ko) |
KR (1) | KR100320977B1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107622022A (zh) * | 2016-07-13 | 2018-01-23 | 希捷科技有限公司 | 数据存储设备中的高速缓存超量配置 |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7065558B2 (en) * | 2002-02-22 | 2006-06-20 | Microsoft Corporation | Opportunistic directory cache and method of serving target directory information in a network environment |
US6920604B2 (en) * | 2002-04-08 | 2005-07-19 | Galazar Networks, Inc. | Systems and methods for high speed serial encoding and decoding for data and control interfaces |
US7167955B1 (en) | 2003-12-23 | 2007-01-23 | Unisys Corporation | System and method for testing and initializing directory store memory |
US8135910B2 (en) * | 2005-02-11 | 2012-03-13 | International Business Machines Corporation | Bandwidth of a cache directory by slicing the cache directory into two smaller cache directories and replicating snooping logic for each sliced cache directory |
JP2008090442A (ja) * | 2006-09-29 | 2008-04-17 | Fujitsu Ltd | メモリ制御装置 |
FR2951310B1 (fr) * | 2009-10-13 | 2011-11-18 | St Microelectronics Rousset | Dispositif de memoire a protocole serie et procede d'adressage correspondant |
US20150100733A1 (en) * | 2013-10-03 | 2015-04-09 | Synopsys, Inc. | Efficient Memory Organization |
GB2560336B (en) * | 2017-03-07 | 2020-05-06 | Imagination Tech Ltd | Address generators for verifying integrated circuit hardware designs for cache memory |
KR102579319B1 (ko) | 2023-04-19 | 2023-09-18 | 메티스엑스 주식회사 | 캐시 메모리 장치 및 이를 이용하는 캐시 스케줄링 구현 방법 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4055851A (en) * | 1976-02-13 | 1977-10-25 | Digital Equipment Corporation | Memory module with means for generating a control signal that inhibits a subsequent overlapped memory cycle during a reading operation portion of a reading memory cycle |
US4441155A (en) * | 1981-11-23 | 1984-04-03 | International Business Machines Corporation | Page controlled cache directory addressing |
US4768148A (en) * | 1986-06-27 | 1988-08-30 | Honeywell Bull Inc. | Read in process memory apparatus |
US4785395A (en) * | 1986-06-27 | 1988-11-15 | Honeywell Bull Inc. | Multiprocessor coherent cache system including two level shared cache with separately allocated processor storage locations and inter-level duplicate entry replacement |
JPH04205449A (ja) | 1990-11-30 | 1992-07-27 | Matsushita Electric Ind Co Ltd | キャッシュ装置 |
US5479641A (en) * | 1993-03-24 | 1995-12-26 | Intel Corporation | Method and apparatus for overlapped timing of cache operations including reading and writing with parity checking |
US5761714A (en) * | 1996-04-26 | 1998-06-02 | International Business Machines Corporation | Single-cycle multi-accessible interleaved cache |
-
1998
- 1998-03-23 US US09/046,009 patent/US6212616B1/en not_active Expired - Fee Related
-
1999
- 1999-02-25 KR KR1019990006232A patent/KR100320977B1/ko not_active IP Right Cessation
- 1999-03-08 JP JP11060382A patent/JPH11328017A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107622022A (zh) * | 2016-07-13 | 2018-01-23 | 希捷科技有限公司 | 数据存储设备中的高速缓存超量配置 |
Also Published As
Publication number | Publication date |
---|---|
KR100320977B1 (ko) | 2002-01-18 |
JPH11328017A (ja) | 1999-11-30 |
US6212616B1 (en) | 2001-04-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100327935B1 (ko) | 연관성을 이용한 가변 캐시 크기에 대한 고성능 캐시 디렉토리 어드레싱 스킴 | |
US5526509A (en) | Method and apparatus for controlling one or more hierarchical memories using a virtual storage scheme and physical to virtual address translation | |
JP3821644B2 (ja) | 旧キャッシュラインを無効化および除去する装置 | |
US5510934A (en) | Memory system including local and global caches for storing floating point and integer data | |
US5119290A (en) | Alias address support | |
US5787494A (en) | Software assisted hardware TLB miss handler | |
US6912623B2 (en) | Method and apparatus for multithreaded cache with simplified implementation of cache replacement policy | |
JP3666689B2 (ja) | 仮想アドレス変換方法 | |
US6480975B1 (en) | ECC mechanism for set associative cache array | |
KR100308682B1 (ko) | 다중방향연관외부마이크로프로세서캐쉬 | |
KR100327934B1 (ko) | 가변 캐시 크기를 위한 개선된 캐시 디렉토리 어드레싱 메카니즘 | |
US7447844B2 (en) | Data processing system, processor and method of data processing in which local memory access requests are serviced on a fixed schedule | |
JPH06110781A (ja) | キャッシュメモリ装置 | |
US6732238B1 (en) | Set-associative cache memory having variable time decay rewriting algorithm | |
KR19990072593A (ko) | 캐시갱신프로토콜을이용한캐시할당해제방법및데이터처리시스템 | |
US6473835B2 (en) | Partition of on-chip memory buffer for cache | |
JPH09288578A (ja) | 命令取り出し方法および装置 | |
KR100320977B1 (ko) | 짝수/홀수 캐시 디렉토리 어드레싱 방법 및 장치 | |
US20020156989A1 (en) | Method for sharing a translation lookaside buffer between CPUs | |
US6810473B2 (en) | Replacement algorithm for a replicated fully associative translation look-aside buffer | |
US6510493B1 (en) | Method and apparatus for managing cache line replacement within a computer system | |
US5732405A (en) | Method and apparatus for performing a cache operation in a data processing system | |
KR20020095875A (ko) | 멀티 레벨 캐쉬 시스템 | |
US6643742B1 (en) | Method and system for efficient cache memory updating with a least recently used (LRU) protocol | |
JPS623357A (ja) | Tlb制御方法 |
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: 20080103 Year of fee payment: 7 |
|
LAPS | Lapse due to unpaid annual fee |