KR19980080925A - 선택가능한 캐시 라인 대체 방안을 구비한 캐시 메모리 및 그구성 방법 - Google Patents

선택가능한 캐시 라인 대체 방안을 구비한 캐시 메모리 및 그구성 방법 Download PDF

Info

Publication number
KR19980080925A
KR19980080925A KR1019980011191A KR19980011191A KR19980080925A KR 19980080925 A KR19980080925 A KR 19980080925A KR 1019980011191 A KR1019980011191 A KR 1019980011191A KR 19980011191 A KR19980011191 A KR 19980011191A KR 19980080925 A KR19980080925 A KR 19980080925A
Authority
KR
South Korea
Prior art keywords
token
cache
cache line
line replacement
selectable
Prior art date
Application number
KR1019980011191A
Other languages
English (en)
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 KR19980080925A publication Critical patent/KR19980080925A/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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/126Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
    • G06F12/127Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning using additional replacement algorithms

Abstract

본 발명에서는 선택가능한 캐시 라인 대체 방안(a selectable cache-line replacement scheme)을 구비하는 캐시 메모리(cache memory)에 대해 기술한다. 본 발명의 바람직한 실시예에 따르면, 이 캐시 메모리는 다수의 캐시 라인(cache line), 토큰 레지스터(token register), 토큰 및 선택 회로(selection circuit)를 구비하고 있다. 토큰 레지스터들은 서로 접속되어 링을 구성한다. 캐시 메모리에는 동일한 수의 토큰 레지스터 및 캐시 라인이 있으며, 각각의 토큰 레지스터들은 캐시 라인들 중 하나와 관련되어 있다. 토큰이 사용되어, 캐시 라인들 중 하나가 토큰이 위치하고 있는 관련된 토큰 레지스터에 의해 대체(replacement)되는 후보임을 나타낸다. 선택 회로는 모든 토큰 레지스터들과 관련되어 있다. 이 선택 회로는 실행 시간 동안에 선택가능한 토큰 레지스터 링내에서 토큰의 이동을 제어하는 적어도 2 가지의 방법을 제공한다. 각각의 토큰 이동 방법은 캐시 라인 대체 방안을 나타낸다.

Description

선택가능한 캐시 라인 대체 방안을 구비한 캐시 메모리 및 그 구성 방법
본 발명은 전반적으로 데이터를 저장하는 캐시 메모리(cache memory)에 관한 것으로서, 특히, 복수의 캐시 라인 대체 방안(multiple cache-line replacement scheme)을 구비하는 캐시 메모리에 관한 것이다. 특히, 본 발명은 선택가능한 캐시 라인 대체 방안(a selectable cache-line replacement scheme)을 구비하는 캐시 메모리에 관한 것이다.
시스템 메모리와 관련하여, 전형적으로 고성능 데이터 처리 시스템(data-processing system)은 캐시 메모리를 포함한다. 캐시 메모리는 데이터 처리 시스템의 프로세서와 시스템 메모리 사이에 위치하는 소형의 고속 메모리이다. 시스템 메모리에 저장된 데이터 또는 인스트럭션(instruction)과 같은 정보의 일부는 캐시 메모리로 복사되며, 이렇게 함으로써 이 정보가 시스템 메모리로부터 얻을 수 있는 시간보다 짧은 시간에 프로세서가 이용할 수 있도록 한다.
프로세서에 의해 요청된 정보를 캐시 메모리에서 발견할 수 없을 때, 즉, 캐시 미스(cache miss)의 경우, 필요한 정보는 시스템 메모리로부터 획득해야 한다. 이러한 정보는 프로세서에 의한 즉각적인 사용을 위해서 뿐만 아니라, 프로세서가 장래에 사용할 수 있도록 복사되어 캐시 메모리내에 위치할 것이다. 이와 같이, 요청된 정보를 시스템 메모리로부터 캐시 메모리로 로딩(loading)하는 과정을 라인필(linefill)이라고 한다. 이 때, 만약 캐시 메모리가 가득차 있다면, 새로운 정보를 위한 공간을 마련하기 위해 캐시 메모리에 이미 저장되어 있는 정보의 일부가 버려지거나 무효화될 것이다. 따라서, 캐시 메모리의 히트(hit)율에 악영향을 미치지 않도록 캐시 메모리내에 이미 저장되어 있는 정보 중 어느 것을 버릴 것인가를 결정하는 것은 중요한 일이다.
캐시 라인 대체 방안에 있어서, 일반적으로 사용할 수 있는 방안에는 적어도 2 가지가 있다. 즉, 랜덤(Random) 및 LRU(Least Recently Used) 대체 방안이 그것이다. 랜덤 대체 방안(random replacement scheme)은 정보가 캐시 메모리내에 균일하게 할당되는 반면, LRU 대체 방안은 정상 과정(due course) 중 프로세서가 다시 요구할 수도 있는 정보를 버리는(throwing out) 경우를 감소시킨다. 이것은 일시적 국부성(temporal locality)의 추론을 이용한다. 즉, 만약 최근에 사용된 캐시 라인이 다시 사용될 가능성이 높다면, 버리기 위한 최선의 후보는 LRU 캐시 라인이라는 것이다.
전형적으로 캐시 라인 대체 방안의 효율성은 프로세서내에서 실행되는 응용 소프트웨어의 유형에 따라 다르다. 다시 말하면, 하나의 캐시 라인 대체 방안이 한 특정한 응용 소프트웨어와는 매우 잘 동작할 수도 있지만, 다른 응용 소프트웨어와는 단지 평범한 결과만을 만들 수도 있다. 그러므로, 프로세서내에서 실행되는 응용 소프트웨어의 형태와는 관계없이 일관되게 높은 히트(hit)율을 나타내는 단지 하나의 내장 캐시 라인 대체 방안을 구비한 종래 기술의 캐시 메모리는 문제점이 있다. 결국, 여러 형태의 응용 소프트웨어를 지원하는 선택가능한 캐시 라인 대체 방안을 구비하는 캐시 메모리를 제공함으로써 다양한 유형의 응용 소프트웨어를 수용하기 위해 상이한 캐시 라인 대체 방안을 선택할 수 있도록 하는 것이 바람직하다.
전술한 바와 같이, 본 발명의 목적은 데이터를 저장하는 개선된 캐시 메모리를 제공하는 것이다.
본 발명의 다른 목적은 복수의 캐시 라인 대체 방안을 구비하는 개선된 캐시 메모리를 제공하는 것이다.
본 발명의 또 다른 목적은 선택가능한 캐시 라인 대체 방안을 구비하는 개선된 캐시 메모리를 제공하는 것이다.
본 발명의 바람직한 실시예에 따르면, 캐시 메모리는 다수의 캐시 라인, 토큰 레지스터, 토큰, 및 선택 회로를 구비하고 있다. 토큰 레지스터들은 서로 접속되어 링을 구성한다. 캐시 메모리에는 동일한 수의 토큰 레지스터 및 캐시 라인이 있으며, 각각의 토큰 레지스터들은 캐시 라인들 중 하나와 관련되어 있다. 토큰은 캐시 라인들 중 하나가 토큰이 위치하고 있는 관련된 토큰 레지스터에 의해 대체되는 후보임을 나타내는데 이용된다. 선택 회로는 각각의 토큰 레지스터들과 관련되어 있다. 이 선택 회로는 실행 시간 동안에 선택가능한 토큰 레지스터 링내에서 토큰의 이동을 제어하는 적어도 2 가지의 방법을 제공한다. 각각의 토큰 이동 방법은 캐시 라인 대체 방안을 나타낸다.
본 발명의 모든 목적, 특징, 및 이점들은 다음의 상세한 기술 내용으로부터 명백해질 것이다.
도 1은 본 발명의 바람직한 실시예가 구현된 캐시 메모리의 블럭도.
도 2는 도 1의 캐시 메모리내 서브어레이의 상세도.
도 3은 본 발명의 바람직한 실시예에 따른 선택가능한 캐시 라인 대체 방안을 제시하는 상세 회로도.
도 4는 도 3의 선택가능한 캐시 라인 대체 방안을 제시하는 회로의 타이밍도.
도면의 주요 부분에 대한 부호의 설명
10 : 캐시 메모리 11, 12 : 서브어레이
13 : 할당 버퍼 14 : 기록 드라이버
15, 20 : 데이터 필드 16 : ECAM 필드
17 : 워드 라인 필드 18 : MESI 필드
19 : RCAM 필드 21, 25 : 센스 증폭기
22 : MRU 비트 필드 23 : 판독 제어 및 중재 회로
24 : 출력 버퍼 26 : 기록 제어 회로
27 : 기록 드라이버 28 : 2 : 1 MUX
29 : 논리 회로 30 : 캐시 라인
31, 41 : 토큰 레지스터 50 : 캐시 라인 대체 방안 회로
56, 57, 58 : NAND 게이트
본 발명은 캐시 메모리를 구비한 소정의 데이터 처리 시스템에서 구현될 수 있다. 또한, 본 발명의 특징은 1차 캐시 및 2차 캐시를 구비한 여러 데이터 처리 시스템에 응용할 수 있다는 것을 이해할 수 있다.
도 1에는 본 발명의 바람직한 실시예가 구현될 수 있는 캐시 메모리의 블럭도가 도시되어 있다. 캐시 메모리(10)는 바람직하게 2개의 서브어레이(subarray)(11 및 12)를 포함한다. 그러나, 당업자라면 본 명세서를 참조함으로써 더 많은 수의 서브어레이가 제공될 수 있음을 이해할 수 있을 것이다. 서브어레이(11 및 12)는 본질적으로 동일하며, 서브어레이(11)에 대해서만 좀 더 상세히 기술할 것이다.
서브어레이(11)는 바람직하게 128개의 캐시 라인을 포함한다. 각각의 캐시 라인은 512비트의 데이터 필드를 포함하며, 데이터 필드는 서브어레이(11)내의 (15 및 20)으로 도시된 바와 같이 2개의 세그먼트로 분할되어 있다. 또한, 각각의 캐시 라인은 바람직하게 64비트의 패리티 필드(parity field)(도시되지 않음), 9비트의 ECAM 필드(16), 28비트의 RCAM 필드(19), 워드 라인 필드(17) 및 3비트의 MESI 필드(18)를 포함한다. 당업자라면 이해할 수 있듯이, 소위 MESI는 수정(Modified), 배제(Exclusive), 공유(Shared) 및 무효(Invalid)를 나타내는 약어(acronym)이다. 소정의 캐시 라인의 상태(status)는 MESI 필드(18)내의 비트의 상태를 조회(interrogating)함으로써 효율적으로 결정될 수 있다. 또한, 소정의 캐시 라인의 상태는 상이한 비트를 MESI 필드(18)로 기록함으로써 변경될 수 있다.
또한, 서브어레이(11)는 관련된 할당 버퍼(allocate buffer)(13) 및 데이터를 특정 캐시 라인으로 구동하는데 이용되는 관련된 기록 드라이버(write driver)(14)를 포함한다. 마찬가지로, 특정 캐시 라인으로부터의 출력 신호를 증폭하기 위해 센스 증폭기(sense amplifier)(21)가 제공된다.
도 2를 참조하면, 도 1의 캐시 메모리내의 서브어레이(11)가 상세하게 도시되어 있다. 도시된 바와 같이, 서브어레이(11)내의 각각의 캐시 라인(30)은 데이터 필드(15 및 20)로 분할되는 512비트의 데이터를 포함한다. ECAM 필드(16)는 바람직하게 9비트의 유효 어드레스 내용 번지 지정 필드(effective-address content-addressable field)이며, RCAM 필드(19)는 바람직하게 28비트의 실제 어드레스 내용 번지 지정 필드(real-address content-addressable field)이다. 각각의 캐시 라인에 2개의 별도의 분리된 내용 번지 지정 필드(ECAM 필드(16) 및 RCAM 필드(19))를 제공함으로써, 해당 캐시 라인내의 데이터는 다수의 효율적인 시퀀스로 액세스될 수 있다. 그 외에도, MRU(Most Recently Utilized) 비트 필드(22)가 ECAM 필드(16)와 함께 사용되어 오프셋(offset) 및 앨리어싱(aliasing) 상태를 해결한다. 또한, MESI 필드(18)내의 비트가 보다 상세하게 도시되어 있다.
캐시 라인으로부터 통상적인 방법으로 데이터를 판독하기 위해 판독 제어 및 중재 회로(read control and arbitration circuit)(23), 출력 버퍼(output buffer)(24), 센스 증폭기(25)가 사용된다. 마지막으로, 기록 제어 회로(write control circuit)(26)가 (27) 및 (28)로 도시된 기록 드라이버(write driver) 및 관련된 멀티플렉서와 함께 사용되어 서브어레이(11)내에 데이터가 기록되도록 한다.
본 발명의 바람직한 실시예로서, 서브어레이(11)의 논리 회로(logic circuit)(29)내에는 2개의 캐시 라인 대체 논리 방안이 제공된다. 각각의 캐시 라인 대체 논리 방안은 캐시 미스(catch miss)의 경우에 서브어레이(11)내의 128개의 캐시 라인중 하나를 할당하는데 사용되어 제거(removal) 또는 버림(cast-out) 및 차후의 대체를 수행한다. 2개의 캐시 라인 대체 방안 각각은 도 1의 캐시 메모리와 관련된 프로세서에 의해 선택가능하다.
도 3을 참조하면, 본 발명의 바람직한 실시예에 따른 선택가능한 캐시 라인 대체 방안을 제공하는 회로가 상세히 도시되어 있다. 전술한 바와 같이, 도 2의 서브어레이에는 모두 128개의 캐시 라인(캐시 라인 0 내지 캐시 라인 127)이 있다. 128개 각각의 캐시 라인과 관련된 각각의 토큰 레지스터들이 있다. 128개의 모든 레지스터는 토큰 링(token-ring) 형태로 서로 접속되어 토큰이 하나의 레지스터로부터 다음 레지스터로 링처럼 전달되도록 한다. 도 3에는 캐시 라인 0에 대한 토큰 레지스터(31) 및 캐시 라인 1에 대한 토큰 레지스터(41)만이 도시되어 있지만, 토큰 링내의 각각의 차후의 캐시 라인에 대한 모든 토큰 레지스터들이 캐시 라인 1에 대한 토큰 레지스터(41)와 동일하다는 것을 본 기술 분야의 당업자라면 이해할 수 있을 것이다.
캐시 라인 0에 대한 토큰 레지스터(31)는 마스터(master)로서 플립 플롭(32)에 의해, 슬레이브(slave)로서 플립 플롭(33)에 의해 구현된다. 플립 플롭(32)은 바람직하게 L1 클럭에 의해 클럭킹되며, 플립 플롭(33)은 L2 클럭에 의해 클럭킹된다. L1 클럭은 캐시 라인 대체 방안 회로(50)에 의해 생성된다. L2 클럭은 프로세서의 제 2 클럭 C2와 동일하다. 토큰 레지스터(31)와 마찬가지로, 캐시 라인 1에 대한 토큰 레지스터(41)가 마스터로서의 플립 플롭(42)과 슬레이브로서의 플립 플롭(43)에 의해 구현된다. 또한, 플립 플롭(42)은 바람직하게 L1 클럭에 의해 클럭킹되며, 플립 플롭(43)은 L2 클럭에 의해 클럭킹된다. 토큰 레지스터(31)와 토큰 레지스터(41)간의 유일한 차이는 파워 온 리세트(power-on reset)(33 및 44)에 있다. 본 발명의 바람직한 실시예로서, 토큰 레지스터(31)는 파워 온 리세트를 논리 1로 유지하며, 토큰 레지스터(41)(및 차후의 캐시 라인에 대한 각각의 토큰 레지스터)는 파워 온 리세트를 논리 0으로 유지한다. 토큰 레지스터가 논리 1이라는 것은 토큰이 그 토큰 레지스터내에 위치하고 있으므로 이 토큰 레지스터와 관련된 캐시 라인은 대체를 위한 후보라는 것을 의미한다.
캐시 라인이 대체될 때, 대체되기 위해 선택된 캐시 라인은 토큰이 저장되어 있는 토큰 레지스터와 관련된 캐시 라인이다. 또한, 토큰 레지스터(31)는 선택 라인(35)을 가지며, 토큰 레지스터(41)는 선택 라인(45)을 갖는다. 토큰이 위치하고 있는 관련된 토큰 레지스터의 캐시 라인은 라인 대체를 위해서 대응되는 선택 라인을 통해 선택될 것이다. 예를 들어, 만약 토큰이 캐시 라인 1의 토큰 레지스터(41)내에 위치하고 있다면, 선택 라인(45)은 활성화되어 대체 후보로서 캐시 라인 1을 선택한다.
대체 방안 선택 회로(50)는 토큰이 하나의 토큰 레지스터로부터 다음 토큰 레지스터로의 이동하도록 지시한다. 선택 회로(50)에는 바람직하게 4개의 입력(51, 52, 53, 54) 및 하나의 출력(59)이 있다. 입력(51)은 캐시 라인 대체 주기 신호를 위한 것이다. 인스트럭션 캐시 메모리의 경우, 캐시 라인 대체 주기 신호가 일반적으로 리필(refill)이라고 알려진 신호에 의해 표현된다. 데이터 캐시 메모리의 경우, 캐시 라인 대체 주기 신호는 일반적으로 할당(allocation)이라고 알려진 신호에 의해 표현된다. 이러한 2개의 신호는 캐시 라인 대체가 다음의 프로세서 주기에서 발생된다는 것을 의미한다.
입력(52)은 제 1 프로세서 클럭 C1을 위한 것이며, 입력(53)은 제 2 프로세서 클럭 C2을 위한 것이다. 입력(54)은 바람직하게 캐시 메모리와 관련된 프로세서로부터 입력되는 모드 선택 신호(mode select signal)를 위한 것이다. 본 발명의 바람직한 실시예로서, 캐시 메모리에는 2가지의 모드가 제공된다. 각각의 모드는 토큰 레지스터 링내의 소정의 길로 토큰이 이동하도록 한다. 입력(54)을 통해 선택될 2가지 모드 중 하나는 모드 선택 신호에 의한 것이다. 본 발명의 바람직한 실시예로서, 만약 입력(54)에 대한 모드 선택 신호가 논리 0이면, 토큰은 각각 제 1 프로세서 클럭 C1의 주기로 하나의 토큰 레지스터로부터 다른 하나의 토큰 레지스터로 이동할 것이다. 즉, 제 1 프로세서 클럭 C1에 응답하여 토큰은 토큰 레지스터 0으로부터 토큰 레지스터 1, 토큰 레지스터 2, 등등으로 이동할 것이다. 그렇지 않고, 만약 입력(54)에 대한 모드 선택 신호가 논리 1이면, 토큰은 제 1 토큰 레지스터와 관련된 캐시 라인에서 캐시 라인 대체에 응답하여 단지 제 1 토큰 레지스터로부터 다른 하나의 토큰 레지스터로만 이동할 것이다. 즉, 토큰이 토큰 레지스터 0에 있을 때 캐시 라인 0의 대체에 응답하여 토큰은 토큰 레지스터 1로 이동할 것이다. 캐시 라인 1의 대체에 응답하여, 토큰은 토큰 레지스터 2, 등등으로 이동할 것이다. 토큰 이동에 대한 전자의 모드는 캐시 라인 대체가 요구될 때 128개의 캐시 라인 중 소정의 하나에 토큰이 위치할 수 있기 때문에 의사 랜덤(pseudo-random) 캐시 라인 대체 방안이라고 지칭될 수 있다. 한편, 토큰 이동에 대한 후자의 모드는, 먼저 대체된 캐시 라인은 다른 127개의 캐시 라인 모두가 대체된 후에 다시 대체될 수 있기 때문에 선입선출(first-in-first-out) 또는 라운드 로빈(round-robin) 캐시 라인 대체 방안이라고 지칭될 수 있다. 전술한 바와 같이, 이러한 2개의 캐시 라인 대체 방안의 각각은 프로세서내에서 실행되는 응용 소프트웨어에 따라 자신의 이점을 갖고 있다.
선택 회로(50)내에는 플립 플롭(55), 3입력 NAND 게이트(56), 2입력 NAND 게이트(57), 및 2입력 NAND 게이트(58)가 있다. 입력(51)은 플립 플롭(55)의 데이터 입력에 접속된다. 입력(53)은 플립 플롭(55)의 클럭 입력에 접속된다. 입력(52)과 함께, 입력(54) 또한 NAND 게이트(56)의 입력 및 NAND 게이트(57)의 입력에 접속된다. NAND 게이트(56) 및 NAND 게이트(57)로부터의 각각의 출력은 NAND 게이트(58)의 입력에 접속된다. NAND 게이트(58)로부터의 출력(59)은 토큰 레지스터 링내의 각각의 토큰 레지스터의 제 1 플립 플롭의 클럭 입력을 공급하는데 사용된다. 도 3에 도시된 바와 같이, 출력(59)은 토큰 레지스터(31)의 플립 플롭(32)의 클럭 입력 및 토큰 레지스터(41)의 플립 플롭(42)의 클럭 입력에 공급된다.
도 4를 참조하면, 도 3의 선택가능한 캐시 라인 대체 방안을 제공하는 회로의 타이밍도가 도시되어 있다. 파형(61) 및 파형(62)은 각각 프로세서 클럭 C1및 프로세서 클럭 C2로부터의 정규 클럭 주기(regular clock cycles)이다. 모드 선택 입력(54)을 통해 의사 랜덤 모드가 선택될 때 선택 회로(50)는 파형(63)을 출력한다. 한편, 만약 라운드 로빈 모드가 선택되면, 출력(59)은 단지 출력(51)이 인가된 경우에만 인가된다. 이것은 파형(64) 및 파형(65)으로 도시된다. 여기서는 파형(65)이 논리 1로 되는 단지 2개의 예만이 있으며, 두 가지 예는 파형(64)내의 논리 1이 발생된 후에 이어서 발생된다. 전술한 바와 같이, 대체 주기 파형(64)은 그것이 나타내는 캐시의 형태에 따라 리필 또는 할당을 나타낼 수 있다.
전술한 바와 같이, 본 발명은 선택가능한 캐시 라인 대체 방안을 구비한 개선된 캐시 메모리를 제공한다. 이러한 선택은 캐시 메모리 또는 적절한 소정의 다른 장치와 관련된 프로세서에 의해 결정될 수 있다. 비록 본 명세서에서는 단지 2개의 캐시 라인 대체 방안만을 기술하였지만, 응용에 따라서는 캐시 메모리에 보다 많은 캐시 라인 대체 방안이 추가될 수 있다.
본 발명이 바람직한 실시예와 관련하여 도시되고 기술되었지만, 본 발명의 정신 및 영역을 벗어나지 않고서도 형태 및 상세 내용에서의 여러 변형이 가능하다는 것을 당업자라면 이해할 수 있을 것이다.
본 발명에 의한 선택가능한 캐시 라인 대체 방안을 구비한 캐시 메모리에 따르면, 이 캐시 메모리는 다수의 캐시 라인, 토큰 레지스터, 토큰 및 선택 회로를 구비하고 있으며, 토큰 레지스터들은 서로 접속되어 링을 구성한다. 캐시 메모리에는 동일한 수의 토큰 레지스터 및 캐시 라인이 있으며, 각각의 토큰 레지스터들은 캐시 라인들 중 하나와 관련되어 있다. 토큰이 사용되어, 캐시 라인들 중 하나가 토큰이 위치하고 있는 관련된 토큰 레지스터에 의해 대체되는 후보임을 나타낸다. 선택 회로는 모든 토큰 레지스터들과 관련되어 있으며, 실행 시간 동안에 선택가능한 토큰 레지스터 링내에서 토큰의 이동을 제어하는 적어도 2 가지의 방법을 제공한다.

Claims (15)

  1. 선택가능한 캐시 라인 대체 방안(a selectable cache-line replacement scheme)을 구비하는 캐시 메모리에 있어서,
    복수의 캐시 라인과,
    상기 복수의 캐시 라인 중 하나와 각각 관련된 복수의 토큰 레지스터(token register)와,
    대체를 위해 상기 복수의 캐시 라인 중 하나를 나타내는 토큰(token)과,
    대체 방안 선택 신호에 응답하여 상기 복수의 토큰 레지스터들 사이에서 상기 토큰의 이동을 제어하는, 상기 복수의 토큰과 관련된 선택 회로(selection circuit)
    를 포함하는 선택가능한 캐시 라인 대체 방안을 구비하는 캐시 메모리.
  2. 제 1 항에 있어서,
    상기 토큰 레지스터는 2개의 플립 플롭(flip-flop)을 포함하는 선택가능한 캐시 라인 대체 방안을 구비하는 캐시 메모리.
  3. 제 1 항에 있어서,
    상기 토큰은 상기 토큰 레지스터들 중 하나에서 논리 1로 표현되는 선택가능한 캐시 라인 대체 방안을 구비하는 캐시 메모리.
  4. 제 1 항에 있어서,
    상기 선택 회로는 플립 플롭 및 3개의 NAND 게이트를 포함하는 선택가능한 캐시 라인 대체 방안을 구비하는 캐시 메모리.
  5. 제 1 항에 있어서,
    상기 토큰 레지스터는 선택 라인을 통해 상기 캐시 라인들 중 하나와 관련되는 선택가능한 캐시 라인 대체 방안을 구비하는 캐시 메모리.
  6. 제 1 항에 있어서,
    토큰의 이동을 제어하는 상기 적어도 2가지의 방법은 의사 랜덤 방법(pseudo-random method) 및 라운드 로빈 방법(round-robin method)을 포함하는 선택가능한 캐시 라인 대체 방안을 구비하는 캐시 메모리.
  7. 제 1 항에 있어서,
    상기 복수의 토큰 레지스터는 서로 접속되어 링을 방안하는 선택가능한 캐시 라인 대체 방안을 구비하는 캐시 메모리.
  8. 제 1 항에 있어서,
    상기 대체 캐시 라인은 상기 토큰 레지스터가 위치하고 있는 관련된 토큰 레지스터에 의해 표시되는 선택가능한 캐시 라인 대체 방안을 구비하는 캐시 메모리.
  9. 선택가능한 캐시 라인 대체 방안을 구비하는 캐시 메모리를 제공하는 방법에 있어서, 상기 캐시 메모리는 복수의 캐시 라인을 포함하며, 상기 방법은,
    ① 토큰 레지스터를 상기 캐시 라인들 중 하나와 관련시키는 단계와,
    ② 대체를 위해 상기 복수의 캐시 라인들 중 하나를 나타내는데 사용되는, 상기 토큰 레지스터들 중 한 토큰 레지스터내의 토큰을 개시하는 단계와,
    ③ 대체 방안 선택 신호에 응답하여 상기 토큰 레지스터내의 상기 토큰의 이동을 제어하는 적어도 2가지의 방법을 제공하는 선택 회로를 상기 토큰 레지스터들 중 하나와 관련시키는 단계
    를 포함하는 선택가능한 캐시 라인 대체 방안에 의한 캐시 메모리 제공 방법.
  10. 제 9항의 복수의 캐시 라인 대체 방안을 구비하는 캐시 메모리내의 캐시 라인 대체 방안 선택 방법에 있어서,
    상기 토큰 레지스터는 2개의 플립 플롭을 더 포함하는 캐시 라인 대체 방안 선택 방법.
  11. 제 9항의 복수의 캐시 라인 대체 방안을 구비하는 캐시 메모리내의 캐시 라인 대체 방안 선택 방법에 있어서,
    상기 토큰 레지스터내의 토큰을 개시하는 단계는 상기 토큰 레지스터들 중 하나에서 논리 1을 개시하는 단계를 더 포함하는 캐시 라인 대체 방안 선택 방법.
  12. 제 9항의 복수의 캐시 라인 대체 방안을 구비하는 캐시 메모리내의 캐시 라인 대체 방안 선택 방법에 있어서,
    상기 선택 회로는 플립 플롭 및 3개의 NAND 게이트를 더 포함하는 캐시 라인 대체 방안 선택 방법.
  13. 제 9항의 복수의 캐시 라인 대체 방안을 구비하는 캐시 메모리내의 캐시 라인 대체 방안 선택 방법에 있어서,
    토큰의 이동을 제어하는 상기 적어도 2가지의 방법은 의사 랜덤(pseudo-random) 방법 및 라운드 로빈(round-robin) 방법을 더 포함하는 캐시 라인 대체 방안 선택 방법.
  14. 제 9항의 복수의 캐시 라인 대체 방안을 구비하는 캐시 메모리내의 캐시 라인 대체 방안 선택 방법에 있어서,
    상기 방법은 상기 모든 토큰 레지스터를 링으로 서로 접속하는 단계를 더 포함하는 캐시 라인 대체 방안 선택 방법.
  15. 제 9항의 복수의 캐시 라인 대체 방안을 구비하는 캐시 메모리내의 캐시 라인 대체 방안 선택 방법에 있어서,
    상기 대체 캐시 라인은 상기 토큰 레지스터가 위치하고 있는 토큰 레지스터에 의해 나타내어지는 캐시 라인 대체 방안 선택 방법.
KR1019980011191A 1997-04-21 1998-03-31 선택가능한 캐시 라인 대체 방안을 구비한 캐시 메모리 및 그구성 방법 KR19980080925A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US8/844,550 1997-04-21
US08/844,550 US5937429A (en) 1997-04-21 1997-04-21 Cache memory having a selectable cache-line replacement scheme using cache-line registers in a ring configuration with a token indicator

Publications (1)

Publication Number Publication Date
KR19980080925A true KR19980080925A (ko) 1998-11-25

Family

ID=25293035

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980011191A KR19980080925A (ko) 1997-04-21 1998-03-31 선택가능한 캐시 라인 대체 방안을 구비한 캐시 메모리 및 그구성 방법

Country Status (2)

Country Link
US (1) US5937429A (ko)
KR (1) KR19980080925A (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6272598B1 (en) * 1999-03-22 2001-08-07 Hewlett-Packard Company Web cache performance by applying different replacement policies to the web cache
US6516384B1 (en) * 1999-12-30 2003-02-04 Intel Corporation Method and apparatus to perform a round robin and locking cache replacement scheme
US6668307B1 (en) 2000-09-29 2003-12-23 Sun Microsystems, Inc. System and method for a software controlled cache
US6598124B1 (en) 2000-09-29 2003-07-22 Sun Microsystems, Inc. System and method for identifying streaming-data
US6578111B1 (en) 2000-09-29 2003-06-10 Sun Microsystems, Inc. Cache memory system and method for managing streaming-data
US6711646B1 (en) * 2000-10-20 2004-03-23 Sun Microsystems, Inc. Dual mode (registered/unbuffered) memory interface
US7133971B2 (en) * 2003-11-21 2006-11-07 International Business Machines Corporation Cache with selective least frequently used or most frequently used cache line replacement
US7310706B1 (en) * 2001-06-01 2007-12-18 Mips Technologies, Inc. Random cache line refill
US9058272B1 (en) 2008-04-25 2015-06-16 Marvell International Ltd. Method and apparatus having a snoop filter decoupled from an associated cache and a buffer for replacement line addresses

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3905141A (en) * 1972-07-26 1975-09-16 Jr Sidnor Tebbs Chichester Light fixture with luminous signs
US4774654A (en) * 1984-12-24 1988-09-27 International Business Machines Corporation Apparatus and method for prefetching subblocks from a low speed memory to a high speed memory of a memory hierarchy depending upon state of replacing bit in the low speed memory
US4928239A (en) * 1986-06-27 1990-05-22 Hewlett-Packard Company Cache memory with variable fetch and replacement schemes
US5218567A (en) * 1989-09-14 1993-06-08 Hitachi, Ltd. Match detection circuit for cache memory apparatus
US5155825A (en) * 1989-12-27 1992-10-13 Motorola, Inc. Page address translation cache replacement algorithm with improved testability
GB9307359D0 (en) * 1993-04-08 1993-06-02 Int Computers Ltd Cache replacement mechanism
US5619675A (en) * 1994-06-14 1997-04-08 Storage Technology Corporation Method and apparatus for cache memory management using a two level scheme including a bit mapped cache buffer history table and circular cache buffer list
US5754791A (en) * 1996-03-25 1998-05-19 I-Cube, Inc. Hierarchical address translation system for a network switch
US5778432A (en) * 1996-07-01 1998-07-07 Motorola, Inc. Method and apparatus for performing different cache replacement algorithms for flush and non-flush operations in response to a cache flush control bit register

Also Published As

Publication number Publication date
US5937429A (en) 1999-08-10

Similar Documents

Publication Publication Date Title
KR100282751B1 (ko) 완전 연관 다-방향 캐쉬 메모리에서의 최소 최근 사용 교체 메카니즘 및 무효화 주소 처리용 방법 및 회로
US9575901B2 (en) Programmable address-based write-through cache control
US6848024B1 (en) Programmably disabling one or more cache entries
US6405287B1 (en) Cache line replacement using cache status to bias way selection
EP1221095B1 (en) An arbitration protocol for a shared data cache
KR100634187B1 (ko) 데이터 처리 시스템의 메모리 서브시스템에서 공급자 기반메모리 예측 방법 및 시스템
US5940856A (en) Cache intervention from only one of many cache lines sharing an unmodified value
JP4298800B2 (ja) キャッシュメモリにおけるプリフェッチ管理
EP0706133A2 (en) Method and system for concurrent access in a data cache array utilizing multiple match line selection paths
US5778432A (en) Method and apparatus for performing different cache replacement algorithms for flush and non-flush operations in response to a cache flush control bit register
JPS624745B2 (ko)
EP2926257B1 (en) Memory management using dynamically allocated dirty mask space
US5497458A (en) Cache testability circuit for embedded diagnostics
EP0706131A2 (en) Method and system for efficient miss sequence cache line allocation
EP0708404A2 (en) Interleaved data cache array having multiple content addressable fields per cache line
US5802567A (en) Mechanism for managing offset and aliasing conditions within a content-addressable memory-based cache memory
US20050188158A1 (en) Cache memory with improved replacement policy
KR19980080925A (ko) 선택가능한 캐시 라인 대체 방안을 구비한 캐시 메모리 및 그구성 방법
KR100395768B1 (ko) 멀티 레벨 캐쉬 시스템
KR100379993B1 (ko) 컴퓨터 시스템에서 캐시 라인 교체를 관리하기 위한 방법및 장치
EP0706132A2 (en) Method and system for miss sequence handling in a data cache array having multiple content addressable fields per cache line
JP2006099770A (ja) シングルポートメモリを使用した命令キャッシュ
US5669014A (en) System and method having processor with selectable burst or no-burst write back mode depending upon signal indicating the system is configured to accept bit width larger than the bus width
WO1997011464A1 (en) Pipelined burst multi-way associative cache memory device
US6658536B1 (en) Cache-coherency protocol with recently read state for extending cache horizontally

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
NORF Unpaid initial registration fee