KR19980063500A - 완전 연관 다-방향 캐쉬 메모리에서의 최소 최근 사용 교체 메카니즘 및 무효화 주소 처리용 방법 및 회로 - Google Patents

완전 연관 다-방향 캐쉬 메모리에서의 최소 최근 사용 교체 메카니즘 및 무효화 주소 처리용 방법 및 회로 Download PDF

Info

Publication number
KR19980063500A
KR19980063500A KR1019970050206A KR19970050206A KR19980063500A KR 19980063500 A KR19980063500 A KR 19980063500A KR 1019970050206 A KR1019970050206 A KR 1019970050206A KR 19970050206 A KR19970050206 A KR 19970050206A KR 19980063500 A KR19980063500 A KR 19980063500A
Authority
KR
South Korea
Prior art keywords
entry
address
circuit
register
stack
Prior art date
Application number
KR1019970050206A
Other languages
English (en)
Other versions
KR100282751B1 (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 KR19980063500A publication Critical patent/KR19980063500A/ko
Application granted granted Critical
Publication of KR100282751B1 publication Critical patent/KR100282751B1/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures

Abstract

캐쉬 메모리 시스템 내의 무효화 데이터를 처리하는 최소 최근 사용 교체 메카니즘을 구현하는 아키텍처 및 방법이 제공되며, 본 아키텍처는 제1 레지스터 스택, 제2 레지스터 스택, 및 스택 제어 논리 회로를 포함한다. 제1 레지스터 스택은 엔트리 주소 정보를 보유하기 위한 레지스터를 포함한다. 스택 제어 논리 회로는 무효화 엔트리 주소가 제1 레지스터 스택 내의 최다 최근 사용(Most Recently Used) 레지스터에 배치되는 것을 억제하기 위한 논리 회로를 포함하고, 이러한 무효화 엔트리 주소가 제2 레지스터로 입력되도록 한다. 스택 제어 논리 회로는 또한 임의의 새로운 엔트리 주소가 제1 레지스터 스택 내에 무효화 엔트리 주소가 있던 위치에 배치되도록 한다. 카운터는 제2 레지스터 스택으로 입력된 무효화 엔트리 주소의 개수를 계수하고, 제1 레지스터 스택의 최소 최근 사용(Least Recently Used) 엔트리 출력단에서의 다중화기가 그 출력으로서 제2 레지스터 스택의 출력단을 선택하도록 설정한다. 이와 같은 방법으로, 유효 최소 최근 사용 엔트리 주소는 제1 레지스터 스택 내에 보유된 채 무효화 엔트리 주소가 제2 레지스터 스택을 통해 캐쉬로부터 출력된다.

Description

완전 연관 다-방향 캐쉬 메모리에서의 최소 최근 사용 교체 메카니즘 및 무효화 주소 처리용 방법 및 회로
본 발명은 일반적으로 캐쉬 메모리(cache memory) 장치에 관한 것으로서, 특히 최소 최근 사용 교체 메카니즘(least recently used replacement mechanisms)을 갖는 캐쉬 메모리 장치에 관한 것이다. 본 발명은 또한 캐쉬 메모리 시스템에서의 무효 데이터(invalid data) 취급 방법에 관한 것이다.
개인용 컴퓨터 시스템은 관련 분야에서 공지되어 있다. 일반적인 개인용 컴퓨터 시스템, 특히 IBM 개인용 컴퓨터는 현대 사회의 많은 분야에 컴퓨터의 위력을 제공하는데 널리 사용되고 있다. 개인용 컴퓨터는 중앙 처리 장치 (CPU) 또는 마이크로프로세서 및 모든 RAM과 BIOS RAM을 포함하는 통합된 휘발성 및 불휘발성 메모리를 구비한 시스템 장치, 시스템 모니터, 키보드, 한 개 또는 그 이상의 탄력적인 디스켓 드라이브, (하드 드라이브로도 알려진) 고정 디스크 기억 드라이브, 소위 마우스 포인팅(pointing) 장치, 및 선택적인 프린터로 구성된 데스크탑(desktop), 플로어 스탠딩(floor standing), 또는 휴대용 마이크로컴퓨터로 통상 정의될 수 있다. 이러한 시스템의 한가지 구별되는 특성은 상술한 부속 장치들을 서로 전기적으로 접속하기 위한 머더보드 또는 시스템 플라나(planar)를 사용한다는 것이다. 이러한 시스템은 주로 단일의 사용자에게 독립적인 컴퓨팅(computing) 능력을 주도록 설계되어 있고 개인 또는 소기업이 구입할 수 있도록 저렴하다. 이러한 개인용 컴퓨터 시스템의 예로서 IBM의 퍼스널 컴퓨터 AT (IBM PC/AT), IBM의 APTIVA, 퍼스널 시스템/1 (IBM PS/1), 및 퍼스널 시스템/2 (IBM PS/2)가 있다.
이러한 시스템의 심장부에는 (총괄하여 프로세서라고 하는) 마이크로프로세서 또는 중앙 처리 장치 (CPU)가 있다. 프로세서는 응용 프로그램이 기능하도록 할 책임이 있는 대부분의 작동을 수행한다. 시스템의 실행 성능은 CPU와 밀접한 관련이 있다: CPU가 프로그램 명령어를 더욱 빨리 실행할수록 시스템이 전체적으로 더욱 빨리 실행할 것이다.
초기의 프로세서는 비교적 저속인 시스템 메모리로부터 명령어를 실행하였으며, 딘일 명령어를 실행하는데 수개의 클럭 사이클(clock cycle)이 소요되었다. 초기 프로세서는 메모리로부터 명령어를 읽어들이고, 명령어를 디코딩하며, 필요한 기능을 수행하고, 결과를 메모리에 다시 기록하는데, 그 모든 과정을 완수하는데 한 개 또는 그 이상의 클럭 사이클이 필요했다.
응용 프로그램이 프로세서로부터 더욱 많은 능력을 요구함에 따라, 내부 및 외부 캐쉬 메모리가 프로세서에 부가되었다. 캐쉬 메모리 (이하 캐쉬라 함)는 프로세서 내부에 위치하거나 또는 프로세서 외부에 프로세서와 인접하여 연결된 고속 메모리 섹션이다. 명령어 또는 데이터의 블록이 비교적 저속인 시스템 메모리 (DRAM)로부터 프로세서에 의해서 신속하게 액세스될 수 있는 곳에 위치한 고속의 캐쉬 메모리로 복사된다.
캐쉬 메모리는 직접 사상 캐쉬(direct mapping caches) 및 연관 캐쉬(associative caches)의 두가지 일반적인 군으로 분류된다. 직접 사상 캐쉬에서의 캐쉬는 시스템 메모리 내의 데이터 주소 위치에 직접 대응되는 데이터를 포함한다. 직접 사상 캐쉬의 단점은 시스템 메모리보다 작기 때문에 캐쉬 데이터가 주 메모리의 한 섹션 또는 여러 섹션에 대응되고 주 메모리의 다른 섹션에 대응되는 새로운 데이터로 자주 교체된다는 것이다. 따라서 직접 사상 캐쉬는 주 메모리의 섹션을 연관 메모리만큼 효율적으로 유지하기 위해 연관 캐쉬보다 통상적으로 더 커야 한다. 직접 사상 캐쉬를 더크게 만들게 되면 캐쉬 성능을 저하시키게 된다는 악효과가 있다. 직접 사상 캐쉬는 이러한 이유로 통상 사용되지 않고 있다.
연관 캐쉬가 직접 사상 캐쉬와 다른 점은 연관 캐쉬는 데이터를 그 레지스터에 동적으로 할당한다는 것이다. 즉, 연관 캐쉬 내의 데이터는 주 메모리 내에서의 물리적인 주소와 동일한 주소를 갖지 않는다. 그 대신에 연관 캐쉬는 전형적으로 데이터에 캐쉬 메모리 내에 기억된 데이터의 위치에 따라 결정되는 캐쉬 주소를 할당한다. 따라서, 연관 캐쉬는 일반적으로 직접 사상 캐쉬보다 느리며 그 이유는 요청된 정보가 존재하지 않음 (즉, 미스(miss))을 캐쉬가 보고하기 이전에 캐쉬 메모리를 검색해야 하기 때문이다.
그러나, 직접 사상 및 연관 캐쉬 기술을 통합한 n-방향 집합-연관(n-way set-associative) 캐쉬가 개발되었다. n-방향 집합-연관 캐쉬에서의 캐쉬 메모리는 n개의 블록으로 분리되고, 각각의 블록은 시스템 메모리 내에 위치한 절대 주소에 대응된다. 각각의 n 블록 내에서 데이터는 블록 내의 메모리 위치에 기초하여 동적으로 할당될 수 있다. 이와 같은 방법으로 n-방향 집합-연관 캐쉬는 직접 사상 캐쉬의 신속성과 연관 캐쉬의 동적 주소 할당의 융통성(flexiblity)을 보인다. 엔트리(entry)는 방향(way)과 유사한 말이며 이하에서 서로 교대로 사용될 것이다.
캐쉬의 성능에 영향을 미치는 다른 중요한 특성은 새로운 데이터를 위한 장소를 작성할 때 데이터가 교체되거나 폐기되는 방식이다. 데이터는 선입선출 (FIFO)방식, 최소 최근 사용 (LRU)방식, 최소 사용 빈도(least frequently used) (LFU)방식 등에 기초하여 교체되도록 선택될 수 있다. 최적의 교체 방식이 유일하게 존재하지는 않지만, 많은 연구를 통해 소정의 방식이 특정한 유형의 문제에는 가장 적당하지만 다른 유형의 문제에는 열악하다는 것이 알려져 있다. 그 결과 많은 디스크/주 메모리 시스템은 순(true) LRU 방식을 근사화한 최근 비사용(not recently used) 방식을 사용한다. 최근에 참조된 데이터는 캐쉬에 남아 있고, 많은 캐쉬 판독 동작 이후에 참조되지 않은 데이터는 남아 있지 않으려고 하기 때문에 이러한 방식을 사용함으로써 히트(hit)가 판독 동작 이후에 더욱 일어날 가능성이 커진다는 것을 예상할 수 있다. (2, 4, 또는 8 방향의) 작은 정도의 연관성 에 대해서 비-연관 함수가 LRU 교체를 적절하게 제공할 수 있다. 그러나 (32 방향, 64 방향, 및 더 큰) 많은 정도의 연관성을 갖는 캐쉬에 대해서 이러한 방식은 큰 논리 입력수(logic fan-in)와 비트쌍의 개수가 많은 기억 장치를 필요로 한다. 연관성의 정도가 큰 경우에는, 순 LRU 교체가 주소의 연관 정렬을 사용함으로써 달성될 수 있다. 매틱, 리차드 이(Matick, Richard E.)에 의한컴퓨터 기억 시스템 및 기술(Computer Storage Systems and Technology)(John Wily Sons 1977) 페이지 591-597을 참조하라. 이러한 LRU 교체 방식은 다-방향 캐쉬 메모리에 사용되는 때에 더욱 빠르고 효율적일 수 있다.
이러한 시스템에서, LRU 교체 메카니즘은 정보를 레지스터 스택(stack)에 최상위로부터 최하위로 또는 그 반대로 기억시킨다. 최상위 레지스터는 통상적으로 가장 최근에 사용된 (이하에서 MRU라 함) 정보를 보유하고 최하위 레지스터는 통상적으로 LRU 정보를 보유하거나 또는 그 반대이다. 레지스터 스택은 일반적으로 스택의 최상위 또는 최하위에 있는 정보가 캐쉬 내에 히트가 있는지 여부에 기초하여 하향으로 또는 상향으로 이동하는 후입선출, 또는 선입선출 스택이다. 히트는 캐쉬 메모리가 요구되는 정보를 포함하는 것을 나타낸다. 캐쉬 내에 히트가 발생할 때, 요구되는 정보를 보유한 방향 또는 엔트리 주소는 MRU 레지스터에 위치되고 더욱 최근에 사용된 모든 방향 또는 엔트리 주소는 스택의 LRU 종단을 향하여 하향 이동되거나 또는 상향 이동된다. 이러한 방법으로 방향 또는 엔트리 주소가 재정렬되고 레지스터 스택 내의 임의의 방향 주소의 위치는 다른 방향 또는 엔트리 주소에 대하여 상대적으로 최근에 일어난 정도를 나타낸다. LRU 교체 메카니즘에 관한 더욱 상세한 설명을 위해서는 매틱, 리차드 이(Matick, Richard E.)에 의한컴퓨터 기억 시스템 및 기술(Computer Storage Systems and Technology)(John Wily Sons 1977) 페이지 591-597을 참조하라. 이에 따라, 방향 또는 엔트리 사용 정보를 유지함으로써 캐쉬 내의 데이터를 교체할 때 순수히 최근에 사용된 방향 주소가 선택될 수 있다.
LRU 및 MRU 계산을 위해서 연관 정렬을 채용하는 캐쉬 메모리는 또한 무효화된 데이터의 주소를 처리할 수 있어야 한다. 캐쉬 메모리 정보는 메모리의 소정 영역에서 변경되고 다른 곳에서는 변경되지 않은 때에 무효화되거나 진부화되거나 또는 노화된다. 이러한 상황을 검출하기 위해서 많은 메모리 시스템은 스누피(snoopy) 사이클이라 불리는 것을 시작한다. 스누피 사이클은 비-통용 정보를 찾기 위해서 캐쉬 메모리와 마찬가지로 시스템 메모리를 검색하고, 메모리 장치에 상기 정보가 더 이상 통용되지 않으며 사용되어서는 안된다는 것을 알려준다. 그러나 이것은 엔트리가 더 이상 프로세서에 의해서 사용될 수 없기 때문에 캐쉬 메모리 내에 무효화된 엔트리를 생성하게 된다. 상기 정보가 더 이상 프로세서에 의해서 사용될 수 없기 때문에 캐쉬 메모리는 무효화 엔트리가 교체 가능한 주소로서 LRU 교체 회로 밖으로 이동될 때까지 사용가능한 메모리 위치를 빼앗기게 된다. 상기 과정에는 수 사이클이 소요될 수 있다. 또한, 캐쉬 메모리 내에 무효화 엔트리의 수가 많을수록 더욱 적은 수의 캐쉬 메모리가 프로세서에 나타날 것이며 결국 캐쉬 메모리의 히트 수가 더욱 적아지게 된다. 최종적인 결과는 무효화된 주소 정보가 가능한 한 신속하게 교체 가능한 주소로 변환되지 않는 때에는 캐쉬 메모리가 덜 효과적이라는 것이다. 따라서, 캐쉬 메모리가 이러한 비-통용의, 진부한 또는 무효화 데이터를 처리할 수 있을 필요가 있다.
본 발명에 따르면, 최소 최근 사용 교체 과정을 이용한 다-방향 캐쉬 메모리 시스템의 성능 및 효율을 향상시키기 위한 방법 및 회로가 제공된다. 본 발명은 또한 컴퓨터 시스템 내에서 최소 최근 사용 교체 메카니즘을 수행하기 위한 방법을 제공한다. 본 컴퓨터 시스템은 주소 목록 주소 지정 가능한 메모리 및 한 개 이상의 최근 사용된 N 엔트리 레지스터, 다음으로 최근 사용된 N + 1 엔트리 레지스터 및 최저 최근 사용된 N + Z 엔트리 레지스터를 포함하는 레지스터 스택을 포함하며, 여기서 N은 0보다 크거나 같은 임의의 정수이고, Z는 2보다 크거나 같은 임의의 정수이다. 각각의 레지스터는 엔트리 주소를 표시할 수 있는 이진수를 포함한 목록을 포함한다. 최소 최근 사용 교체 메카니즘을 수행하기 위한 방법은 주소 목록 주소 지정 가능한 메모리 내의 캐쉬 메모리 액세스 동작이 수행되고 있는지를 결정하는 단계, 비교 동작에서 주소 목록 주소 지정 가능 메모리 내에 양의 정합이 있는 것으로 나타나면 새로운 엔트리 주소를 발생시키는 단계, 새로운 엔트리 주소를 레지스터 스택 내의 복수의 엔트리 주소 비교기로 전달하는 단계, 새로운 엔트리 주소를 MRU 또는 N 레지스터를 제외한 레지스터 스택의 각각의 레지스터 내에 기억된 엔트리 주소와 비교하는 단계, M이 1 내지 Z의 범위 내에 있을 때 엔트리 주소를 포함하는 레지스터 스택 내에서 유일한 N + M 레지스터를 식별하는 단계, 및 N 내지 N + M - 1의 레지스터 내용을 N + 1 내지 N + M의 레지스터로 이동하고 새로운 엔트리 주소를 N 또는 MRU 레지스터로 이동하는 단계를 포함한다. 본 방법은 또한 주소 목록 주소 지정 가능 메모리 내의 캐쉬 메모리 액세스 동작이 수행되고 있는지를 결정하는 단계를 주소 목록 주소 지정 가능 메모리 내에서 비교 동작이나 또는 주소 기록 동작이 수행되고 있는지를 결정하는 단계를 포함하도록 정의한다.
본 발명은 또한 스누프 사이클로 인한 스누프 비교 동작 동안 다-방향 캐쉬 메모리 내의 LRU 레지스터 스택의 갱신을 금지하는 방법을 제공한다. 본 시스템은 주소 목록 주소 지정 가능 메모리, 동적 엔트리 주소 버스(bus), LRU 레지스터 스택, 및 스택 제어 논리 회로를 포함하는데, 제1 레지스터 스택은 엔트리 주소를 포함하기 위한 한 개 이상의 N 및 N + 1 다음 엔트리 레지스터를 포함하고, 여기서 N 및 N + 1 다음 엔트리 레지스터는 엔트리 주소를 포함한다. 스누프 사이클로 인한 캐쉬 스누프 동작 동안 LRU 레지스터 스택의 갱신을 금지하는 방법은 주소 목록 주소 지정 가능 메모리 내에서 캐쉬 메모리 액세스 동작을 감지하는 단계, 주소 목록 주소 지정 가능 메모리 내에서 스누프 사이클을 감지하는 단계, 및 주소 목록 주소 지정 가능 메모리 내에서 수행되는 캐쉬 메모리 동작 및 주소 목록 주소 지정 가능 메모리 내에서 수행되는 스누프 사이클에 따라 금지 신호를 생성하는 단계를 포함한다. 또한, 금지 신호를 생성하는 단계는 주소 목록 주소 지정 가능 메모리 내에서 주소 비교 동작을 감지하는 단계 또는 주소 목록 주소 지정 가능 메모리 내에서 주소 기록 동작을 감지하는 단계를 포함한다.
본 발명은 또한 최소 최근 사용 교체 메카니즘을 사용하는 캐쉬 메모리 시스템에서 무효화 데이터를 처리하기 위한 시스템 및 방법을 제공한다. 본 방법은
주소 목록 주소 지정 가능 메모리, 동적 엔트리 주소 버스, 제1 레지스터 스택, 제2 레지스터 스택, 스택 제어 논리 회로, 카운터, 상기 제1 레지스터 스택 및 상기 제2 레지스터 스택과 회로적으로 통신하고 있는 다중화기, 및 LRU 출력단을 구비한 다-방향(multi-way) 캐쉬 메모리 시스템으로 구현된다. 상기 제1 레지스터 스택은 엔트리 주소를 기억하기 위한 한 개 이상의 N 및 N + 1 다음 엔트리 레지스터를 포함하고, N은 0보다 크거나 같은 임의의 정수이고 N 및 N + 1 다음 엔트리 레지스터는 엔트리 주소를 포함한다. 상기 제2 레지스터 스택은 무효화 엔트리 주소를 기억하기 위한 한 개 이상의 M 무효화 엔트리 레지스터로서, M은 0보다 크거나 같은 임의의 정수인 M 무효화 엔트리 레지스터, 및 상기 카운터 값을 디코딩하고 상기 동적 엔트리 주소 버스를 M 레지스터 입력단 중 하나로 조정하며, M 레지스터 출력단 중 하나를 스택 출력단으로 조정하는 M 대 1 입력/출력 다중화기를 포함한다. 다-방향 캐쉬 메모리용 최소 최근 사용 교체 알고리즘을 구현하는데 사용된 레지스터 스택 내의 무효화 엔트리 또는 방향 주소를 처리하는 방법은 스택 제어 논리 회로 내의 주소 무효화 동작을 감지하는 단계, 상기 동적 참 및 보수 엔트리 주소 버스 상의 시스템 주소에 대응되는 엔트리 주소를 출력하는 단계, 상기 스택 제어 논리 회로로부터 무효화 엔트리 주소 신호를 출력하는 단계, 상기 엔트리 주소를 카운터 값(counter value)에 따라 상기 다중화기를 통하여 상기 M 레지스터로 향하게 하는 단계, 상기 제2 레지스터 스택이 한 개 이상의 엔트리 주소를 포함하는 것을 인식하는 단계, 및 상기 제2 레지스터 스택 내에 기억된 엔트리 주소의 개수를 나타내는 카운터를 증가시키는 단계를 포함한다. 본 방법은 또한 상기 제1 레지스터 스택 내의 갱신 동작을 억제하는 단계 및 상기 M 레지스터의 출력을 상기 M 대 1 다중화기를 통하여 카운터 값의 함수로 향하게 하여 상기 엔트리 주소를 LRU 정보로서 출력하는 단계를 더 포함한다. 상기 제2 레지스터 스택은 한 개 이상의 M + 1 무효화 엔트리 레지스터를 더 포함한다. 상기 제2 레지스터 스택으로부터의 무효화 엔트리가 새로운 데이터를 기억하는데 사용될때마다, 카운터는 감소되고 무효화 엔트리 주소는 제2 레지스터로부터 제거된다. 더욱이, 제2 레지스터 스택이 한 개 이상의 엔트리 주소를 포함하는 것을 인식하는 단계는 제2 레지스터스택 내에 한 개 이상의 엔트리 주소가 있음을 알리는 플래그를 셋팅하는 단계, 또는 다른 방도로서 카운터 값을 검사하여 0과 같은 선정된 값보다 큰지 여부를 결정하는 단계를 포함한다.
스택 제어 논리 회로 내에서 주소 무효화 동작을 감지하는 단계는 주소 기록 동작을 감지하는 단계, 및 스누프 사이클을 감지하는 단계를 포함한다. 또는, 스택 제어 논리 회로 내에서 주소 무효화 동작을 감지하는 단계는 주소 기록 동작을 감지하는 단계, 및 유효 비트 상태 정보를 감지하는 단계를 포함한다.
또한, 스누프 사이클을 감지하는 단계는 캐쉬 데이터 출력 제어부를 감지하여 캐쉬 데이터 출력이 인에이블되었는지 여부를 결정하고 주소 목록 주소 지정 가능 메모리 내의 비교 동작을 감지하는 단계를 포함한다. 캐쉬 데이터 출력 기능이 억제된 채로 비교 동작을 수행하는 것은 본 발명에서는 스누프 동작이라 칭한다. 다른 방도로서, 스누프 동작의 수행을 알리기 위해서 서로 다른 스누프 입력이 제공될 수 있다.
본 발명은 또한 다-방향 캐쉬 메모리 시스템용 최소 최근 사용 교체 알고리즘을 구현하는데 사용된 레지스터 스택 내의 무효화 엔트리 또는 방향 주소를 처리하는 방법을 제공한다. 본 시스템은 주소 목록 주소 지정 가능 메모리, 동적 엔트리 주소 버스, 제1 레지스터 스택, 제2 레지스터 스택, 스택 제어 논리 회로, 카운터, 상기 제1 레지스터 스택 및 상기 제2 레지스터 스택과 회로적으로 통신하고 있는 다중화기를 구비한다. 상기 제1 레지스터 스택은 엔트리 주소를 기억하기 위한 한 개 이상의 N 및 N + 1 다음 엔트리 레지스터를 포함하고, N은 0보다 크거나 같은 임의의 정수이고 N 및 N + 1 다음 엔트리 레지스터는 엔트리 주소를 포함한다. 상기 제2 레지스터 스택은 무효화 엔트리 주소를 기억하기 위한 한 개 이상의 M 무효화 엔트리 레지스터를 포함하고, M은 0보다 크거나 같은 임의의 정수이다. 다-방향 캐쉬 메모리 시스템용 최소 최근 사용 교체 알고리즘을 구현하는데 사용된 레지스터 스택 내의 무효화 엔트리 또는 방향 주소를 처리하는 방법은 상기 주소 목록 주소 지정 가능 메모리 내에 기억된 시스템 주소를 무효화시키는 단계, 상기 주소 목록 주소 지정 가능 메모리로부터 상기 동적 엔트리 주소 버스로 무효화 엔트리 주소를 출력하는 단계, 상기 무효화 엔트리 주소를 상기 동적 엔트리 주소 버스로부터 상기 제2 레지스터 스택의 M 무효화 엔트리 레지스터로 입력하는 단계, 상기 제2 레지스터 스택이 한 개 이상의 엔트리 주소를 포함한다는 것을 나타내는 플래그(flag)를 셋팅하는 단계, 상기 제2 레지스터 스택 내에 기억된 엔트리 주소의 개수를 나타내는 카운터를 증가시키는 단계, 상기 N 엔트리 레지스터 내의 주소 정보를 상기 제1 레지스터 스택 내의 N + 1 다음 엔트리 레지스터로 이동시키는 단계, 및 후속하는 엔트리 주소를 상기 제1 레지스터 스택의 N 엔트리 레지스터 내에 기억시키는 단계를 포함한다.
본 방법은 또한 무효화 엔트리가 새로운 정보를 기억하는데 사용된 때에 상기 제2 레지스터 스택 내에 기억된 엔트리 주소 정보를 출력하는 단계, 및 상기 제2 레지스터 스택 내에 기억된 엔트리 주소의 개수를 나타내는 카운터를 감소시키는 단계를 더 포함한다. 더욱이, 상기 제1 레지스터 스택의 N + 1 다음 엔트리 레지스터 내에 스누프 사이클에 의해서 기억된 엔트리 주소로 표시되는 시스템 주소를 무효화시키는 단계는 주소 기록 동작을 감지하는 단계, 및 유효 비트 상태 정보를 감지하는 단계를 포함한다.
상술한 방법과 관련하여, 본 발명은 또한 캐쉬 메모리용 최소 최근 사용 교체 알고리즘 아키텍처를 제공한다. 본 아키텍처는 시스템 주소와 방향 주소간의 대응 관계를 유지하기 위한 N-방향 주소 지정 가능 목록 주소 지정 가능 메모리, 상기 N-방향 주소 지정 가능 목록 주소 지정 가능 메모리와 회로적으로 통신하며 데이터를 기억하기 위한 N-방향 데이터 어레이(array), 엔트리 주소를 기억하기 위한 N-엔트리 레지스터 스택으로서, 상기 N-엔트리 레지스터 스택은 한 개 이상의 제1 레지스터, 중간(intermediate) 레지스터, 및 최종 레지스터를 포함한다. 각각의 레지스터는 목수의 비트를 포함하며, 상기 복수의 비트는 상기 주소 지정 가능 목록 주소 지정 가능 메모리 내에 기억된 각 엔트리의 이진 주소와 연관된 수개의 비트를 포함한다. 상기 중간 레지스터 및 최종 레지스터 내에 새로운 엔트리 주소를 상기 기억된 엔트리 주소와 비교하기 위한 비교기를 더 포함한다. 상기 제1 레지스터는 가장 최근에 사용된 엔트리의 주소를 더 포함한다. 상기 중간 레지스터는 다음으로 최근에 사용된 엔트리의 주소를 더 포함하고, 상기 최종 레지스터는 가장 오래 전에 사용된 엔트리의 주소를 더 포함한다. 본 아키텍처는 또한 가장 최근에 사용된 엔트리의 주소를 기억하기 위한 제2 레지스터,N 인코더를 포함하는 복수의 엔트리 주소 인코더를 더 포함한다. 각각의 인코더는 상기 ACAM과 회로적으로 통신하며 상기 ACAM으로부터 방향 선택 신호를 입력받기 위한 입력단, 및 엔트리 주소 버스와 회로적으로 통신하며 엔트리 주소 정보를 출력하기 위한 출력단을 포함한다. 본 아키텍처는 또한 상기 주소 지정 가능 목록 주소 지정 가능 메모리와 회로적으로 통신하는 엔트리 주소 기록 인코더 회로, 및 입력된 엔트리 주소를 이중 동적 참 및 보수 엔트리 주소 버스로 기록 동작동안 인가하는 복수의 비트 입력 회로를 포함한다.
본 아키텍처는 또한 상기 N-엔트리 레지스터 스택과 회로적으로 통신하며 상기 N-엔트리 레지스터 스택을 제어하기 위한 레지스터 스택 제어 논리 회로 및 사전-충전 회로를 포함한다. 또한, 워드선(wordline) NOR 회로는 상기 ACAM과 회로적으로 통신하며, 상기 데이터 어레이가 정보의 소정 데이터를 포함하는지 여부를 나타내기 위한 것이다. 워드선(wordline) NOR 회로는 ACAM으로부터의 복수의 워드선 출력단과 회로적으로 통신하는 복수의 워드선 입력단을 포함한다.
레지스터 스택 궤환 회로가 또한 포함되며, 레지스터 스택 궤환 회로는 상기 레지스터 스택 제어 논리 회로 및 N-엔트리 레지스터 스택과 회로적으로 통신하며, 상기 N-엔트리 레지스터 스택에서 수행되는 비교 동작의 진행을 상기 레지스터 스택 제어 논리 회로로 피드백(feed back)시키기 위한 것이다. 레지스터 스택 궤환 회로는 참 및 보수 엔트리 비트 입력 회로, 스택 궤환 출력 회로, 및 상기 스택 궤환 출력 회로와 회로적으로 통신하며 적당한 회로 지연을 제공하기 위한 복수의 인버터 게이트를 포함하는 리셋 회로를 포함한다.
상기 엔트리 주소 인코더 및 N-엔트리 레지스터 스택과 회로적으로 통신하며, 자가-타이밍된 RTZ 참 및 보수 엔트리 주소를 RTZ 참 엔트리 주소 버스 및 RTZ 보수 엔트리 주소 버스로 발생시키기 위한 복수의 자가 타이밍된 엔트리 주소 반전 드라이버(driver) 회로가 또한 포함된다. 각각의 자가-타이밍된 반전 동적 엔트리 주소 인버터 회로는 엔트리 주소를 입력하기 위한 RTZ 엔트리 주소 비트 회로, RTZ 엔트리 주소 비트를 출력하기 위한 출력단, 및 상기 출력을 RTZ 참 및 보수 엔트리 주소 버스로부터 샘플링된 한 쌍의 RTZ 참/보수 엔트리 주소 비트의 함수로 리셋하도록 구성된 자가-타이밍된(self-timed) 리셋 입력단을 포함한다.
본 아키텍처는 또한 상기 N-엔트리 레지스터 스택 및 엔트리 주소 드라이버 회로와 회로적으로 통신하며 영 복귀(return-to-zero) 엔트리 주소를 상기 N-엔트리 레지스터 스택으로 전달하기 위한 엔트리 주소 버스를 더 포함한다.
본 발명은 또한 최소 최근 사용 교체 알고리즘으로 무효 엔트리 또는 방향 데이터를 처리하기 위한 캐쉬 메모리 장치를 제공한다. 본 캐쉬 메모리 장치는 한 개 이상의 N 및 N + 1 다음 레지스터를 포함하며, 여기서 N은 0보다 크거나 같은 임의의 정수이고, 주소 정보를 기억하기 위한 제1 레지스터 스택을 포함한다. 제1 레지스터 스택은 비트 레지스터를 더 포함하고, 상기 비트 레지스터는 참 및 보수 엔트리 주소 비트를 기억하기 위한 제1 래칭(latching) 회로, 상기 제1 래칭 회로와 회로적으로 통신하며, 입력단 및 출력단을 포함하는 참 및 보수 엔트리 주소 비트를 기억하기 위한 제2 래칭 회로, 및 상기 제2 래칭 회로의 출력을 RTZ (영 복귀)참 및 보수 주소 버스 상의 참 및 보수 엔트리 주소 비트와 비교하기 위한 비교 회로를 포함한다.
본 캐쉬 메모리 장치는 선택된 엔트리 주소를 참 및 보수 엔트리 주소 버스 상으로 인코딩(encoding)하기 위한 각 방향 또는 각 엔트리용 동적 엔트리 주소 인코더를 포함한다. 각각의 동적 엔트리 주소 인코더는 사전-충전된 주소 버스선의 유일한 조합을 방전하기 위한 방전 회로로서, 워드선 또는 방향 입력단을 포함하는 방전 회로를 포함한다. 워드선 또는 방향 입력단은 워드선 또는 방향 선택 신호를 입력받는데 사용된다. 일반적으로, 방향 선택 신호는 데이터 어레이 내의 방향 또는 엔트리의 활성을 알리는 임의의 워드선 신호이거나 또는 임의의 다른 신호이다. 또한, 본 캐쉬 메모리 시스템은 주소 목록 주소 지정 가능 메모리 및 이중 동적 참 및 보수 엔트리 주소 버스와 회로적으로 통신하며 복수의 엔트리 주소 비트 입력단을 포함하는 동적 엔트리 주소 기록 인코더 회로를 더 포함한다.
본 캐쉬 메모리 장치는 또한 자가-타이밍된 RTZ 참 엔트리 주소를 RTZ 참 엔트리 주소 버스 및 RTZ 보수 엔트리 주소 버스로 생성하기 위한 복수의 자가-타이밍된 반전 동적 엔트리 주소 인버터 드라이버 회로를 포함한다. 이중 상보 신호 (즉, 참 및 보수)는 소정의 회로는 보수 입력을 사용하고 다른 회로는 참 입력을 사용하기 때문에 입력을 반전시킴으로써 반전 주소 드라이브가 논리적으로 정확한 출력을 제공하도록 한다. 보수 입력은 참 출력을 생성하고 참 입력은 보수 출력을 생성한다. 자가-타이밍된 반전 동적 엔트리 주소 인버터 회로는 엔트리 주소를 입력하기 위한 엔트리 주소 비트 회로, RTZ 엔트리 주소 비트를 출력하기 위한 출력단, 및 상기 출력을 RTZ 참 및 보수 엔트리 버스로부터 샘플링된 한 쌍의 RTZ 참/보수 주소 비트의 함수로 리셋하도록 구성된 자가-타이밍된 리셋 회로를 포함한다. 본 캐쉬 메모리 장치는 또한 상기 동적 엔트리 주소 인코더, 사전-충전 회로, 및 상기 자가-타이밍된 반전 동적 엔트리 주소 인버터 회로와 회로적으로 통신하며 참 및 보수 엔트리 주소를 전달하기 위한 동적 엔트리 주소 버스를 포함한다. RTZ 참/보수 엔트리 주소 버스는 자가-타이밍된 반전 동적 엔트리 주소 인버터 회로를 LRU 레지스터 스택으로 접속시킨다.
RTZ 참/보수 엔트리 주소 버스와 회로적으로 통신하며 제1 레지스터 스택 비교 동작의 진행을 측정하기 위한 자가-타이밍된 제1 레지스터 스택 궤환 회로가 캐쉬 메모리 시스템에 포함된다. 자가-타이밍된 제1 레지스터 스택 궤환 회로는 RTZ 참 및 보수 엔트리 비트 입력 회로, 스택 궤환 출력 회로, 및 상기 스택 궤환 출력 회로와 회로적으로 통신하며 적당한 회로 지연을 발생시키기 위한 복수의 인버터 게이트를 포함하는 리셋 회로를 포함한다.
본 캐쉬 메모리 장치는 또한 상기 자가-타이밍된 레지스터 스택 궤환 회로, 동적 엔트리 주소 인코더, 제1 레지스터 스택, 및 사전-충전 회로와 회로적으로 통신하며, 상기 제1 레지스터 스택 입력단 및 출력단을 제어하기 위한 스택 제어 논리 회로를 더 포함한다. 스택 제어 논리 회로는 상기 제1 레지스터 스택의 갱신 동작을 억제하기 위한 스택 억제 갱신 논리 회로를 포함하는 스택 갱신 회로, 무효화 엔트리 주소 상태 신호를 발생하기 위한 무효화 엔트리 주소 상태 회로를 포함한다. 스택 갱신 회로는 비교 엔트리 주소 상태 신호의 상태를 감지하기 위한 비교 엔트리 주소 동작 입력 회로, 스누프 동작 상태 신호의 상태를 감지하기 위한 스누프 동작 입력 회로, 주소 기록 신호의 상태를 감지하기 위한 주소 기록 인에이블 입력 회로, 및 스택 갱신 출력 신호를 발생하기 위한 스택 갱신 출력단을 포함하는 스택 갱신 회로를 포함한다. 스택 갱신 신호는 소정 조건에서는 생성되지 않으며, 이에 따라 제1 레지스터 스택의 갱신을 억제하게 된다. 스택 제어 논리 회로는 또한 무효화 엔트리 주소 상태 신호를 발생하기 위한 무효화 엔트리 주소 상태 출력단을 포함한다. 무효화 엔트리 주소 상태 회로는 엔트리 주소 유효 상태 비트의 상태를 입력하기 위한 유효 비트 상태 입력 회로, 및 무효화 엔트리 주소 상태 신호를 발생하기 위한 무효화 엔트리 주소 상태 출력 회로를 포함한다. 다른 방도로는, 주소 목록 주소 지정 가능 메모리 내의 스누프 동작의 존재를 감지하기 위해서 스누프 입력 회로가 직접 제공될 수 있다.
본 캐쉬 메모리 장치는 상기 스택 제어 논리 회로 및 자가-타이밍된 반전 동적 엔트리 주소 인버터 드라이버 회로와 회로적으로 통신하며 가장 최근에 사용된 엔트리 주소를 기억하기 위한 MRU 레지스터를 더 포함한다. MRU 출력 레지스터는 참 엔트리 주소 비트를 입력받기 위한 참 엔트리 주소 비트 입력 회로, 보수 엔트리 주소 비트를 입력받기 위한 보수 엔트리 주소 비트 입력 회로, MRU 엔트리 비트(MRU ENTRY BIT)를 출력하기 위한 MRU 엔트리 비트 출력단, 및 상기 MRU 엔트리 비트(MRU ENTRY BIT) 출력을 리셋하기 위한 리셋회로를 포함한다. MRU 출력 레지스터는 또한 SNOOP 주소 비교 동작동안 엔트리 주소 정보를 캐쉬 제어 논리 회로에 제공한다. 본 정보는 제1 레지스터 스택 갱신이 억제되더라도 얻을 수 있으며, 후속하는 주소 무효화 동작이 지정하는 엔트리 주소를 제공한다. 리셋 회로는 상기 MRU 엔트리 비트(MRU ENTRY BIT)를 논리 로우 레벨(low level)로 리셋하기 위한 리셋 로우 회로, 및 상기 MRU 엔트리 비트(MRU ENTRY BIT)를 논리 하이 레벨(low level)로 리셋하기 위한 리셋 하이 회로를 포함한다.
특히, 본 캐쉬 메모리 장치는 상기 자가-타이밍된 반전 동적 엔트리 주소 인버터 회로와 회로적으로 통신하며 주소 정보를 기억하기 위한 제2 레지스터 스택을 포함한다. 제2 레지스터는 한 개 이상의 M 레지스터를 포함하고, 여기서 M은 0보다 크거나 같은 임의의 정수이며, 상기 M 레지스터는 엔트리 주소 비트를 기억하기 위한 비트 레지스터 회로를 포함한다. 비트 레지스터 회로는 입력단과 출력단을 포함한다.
본 캐쉬 메모리 장치는 또한 상기 스택 제어 논리 회로 및 LRU 출력 다중화기와 회로적으로 통신하며 상기 LRU 출력 및 제2 레지스터 내에 기억된 엔트리 주소의 개수를 계수하기 위한 카운터 회로를 제어하기 위한 커운터 제어 회로를 포함한다.
본 발명의 목적은 무효화된 정보가 배치되고 캐쉬 메모리 회로로부터 방출되어 이동될 수 있는 제2 레지스터 스택을 제공함으로써 최소 최근 사용 교체 메카니즘에서 무효화 정보를 처리하는 방법을 제공하는 것이다.
본 발명의 다른 목적은 최소로 최근에 사용된 레지스터 스택을 변경함이 없이 최소 최근 사용 교체 메카니즘에서 무효화 정보를 처리하기 위한 방법 및 아키텍처를 제공하는 것이다.
본 발명의 또 다른 목적은 다-방향 캐쉬 메모리 칩(chip) 내에 효율적인 LRU 교체 메카니즘을 구현하기 위한 방법 및 아키텍처를 제공하는 것이다.
따라서 본 발명에 따른 방법 및 장치는 전체적인 LRU 스택 성능과 기능을 유지하면서, 참 LRU 교체 방식을 완전 연관 다-방향 캐쉬 메모리 내에 유지하고 LRU 레지스터 스택 내의 무효화 정보를 감소 및/또는 제거함으로써 캐쉬 메모리 성능을 향상시키기 위한 방법 및 아키텍처를 제공한다.
도 1은 다양한 구성 요소와 각 구성 요소간의 상호 접속 관계를 도시한 본 발명에 따른 캐쉬 메모리 시스템의 블록도.
도 2a는 이중 상보 주소 버스 아키텍처를 사용하는 LRU 교체 메카니즘의 블록도.
도 2b는 제1 및 제2 레지스터 스택을 사용하는 LRU 교체 메카니즘의 제2 실시예의 블록도.
도 3a는 이중 동적 참/보수 주소 버스를 생성하기 위한 엔트리 주소 인코더 회로의 회로도.
도 3b는 개별적으로 주소 비트 입력단을 구비한 인코더의 회로도.
도 4a 및 도 4b는 영 복귀 (RTZ) 참/보수 자가-타이밍된 반전 회로의 다른 실시예를 도시한 회로도.
도 5는 스택 궤환 회로를 도시한 회로도.
도 6은 제1 레지스터 스택 내에 엔트리 주소 정보의 한 비트를 기억시키기 위한 메모리 회로를 도시한 회로도.
도 7은 제1 레지스터 스택의 소정 구성 요소를 도시한 블록도.
도 8a는 제2 클럭 발생 회로를 도시한 회로도.
도 8b는 스누프 기능 입력단을 구비한 제2 클럭 발생 회로를 도시한 회로도.
도 9는 주소의 단일 비트에 대한 제2 MRU 레지스터 회로를 도시한 회로도.
도 10a 및 10b는 스누프 사이클동안 LRU 스택 갱신을 억제하기 위한 논리 회로를 포함하는 LRU 스택 갱신 회로를 도시한 회로도.
도 10c는 도 10a 및 도 10b에 도시된 회로의 다른 실시예를 도시한 회로도.
도 11a 및 도 11b는 무효화 엔트리 상태 또는 플래그 신호를 생성하기 위한 회로를 도시한 회로도.
도 11c는 무효화 엔트리 상태 또는 플래그 신호를 생성하기 위한 회로를 도시한 도 11a 및 도 11b 회로의 다른 실시예를 도시한 회로도.
도 12는 본 발명에 따른 증가 및 감소 제어 회로를 도시한 회로도.
도면의 주요 부분에 대한 부호의 설명
100 : 좌측 데이터 어레이
102 : 동적 엔트리 주소 인코더
104 : 주소 비교기 (ACAM)
106 : 32의 위드선 NOR 구조
108 : 우측 데이터 어레이
110 : 32 레지스터 LRU 스택
112 : RTZ T/C 엔트리 주소 인버터/드라이버
114 : LRU 스택 제어 논리 회로
116 : 이중 동적 참/보수 (T/C) 엔트리 주소 버스
117 : 엔트리 주소 버스 사전-차아지(pre-charge) 회로
118 : 영 복귀 (RTZ) T/C 엔트리 주소 비교 버스
120 : 우측 워드선 버스
122 : 좌측 워드선 버스
123 : 엔트리 주소 인코더
본 발명은 32개의 방향을 포함하는 다-방향 캐쉬에 관한 것이다. 각각의 방향은 32개의 엔트리 주소 (또는 방향 주소)중 하나로 명문화된다(codified). 일반적으로 엔트리 주소는 LRU 스택 내에 기억된다. 새로운 데이터가 데이터 캐쉬 내에 위치하면, LRU 스택이 최근에 최저로 사용된 엔트리 또는 방향 (즉 LRU 스택의 LRU 출력)임을 나타내는 엔트리 (또는 방향)으로 할당되어 동일한 엔트리 (또는 방향)에 이전에 기억된 이전 데이터 위에 덮어쓰게 된다.
(캐쉬의 데이터 부분에 기억된) 데이터의 시스템 주소는 주소 CAM (content addressable memory)에 기억된다. 주소 CAM (ACAM)은 시스템 주소와 엔트리 주소간의 대응을 유지한다. 데이터가 데이터 캐쉬 엔트리 내에 위치하게 되면, ACAM 내의 대응 엔트리 위치가 시스템 주소로 갱신되고 이에 따라 시스템 주소의 엔트리 주소에 대한 관계가 ACAM 내에 유지된다.
일반적으로 사용되는 데이터의 크기는 4개의 L1 데이터 선 (즉 256 바이트) 까지가 가능한데, 이것은 모든 32 엔트리 (또는 방향)에 걸친 4KB의 총 데이터 기억 크기에 해당하는 것이다. 본 발명의 캐쉬 메모리는 L1 선 버퍼로 사용되기 때문에 L1 선 주위로 배치된다.
캐쉬 메모리가 시스템에 필요한 데이터를 보유하고 있는지 질의를 받으면, 시스템 주소가 ACAM에 부여되고 비교 동작을 위해서 기억된 시스템 주소의 32개의 모두에 전달된다. 임의의 엔트리가 부여된 시스템 주소와의 정합을 생성하면, 대응 데이터 캐쉬 엔트리 내의 데이터가 데이터 캐쉬 출력이 인에이블될 때 시스템에 주어진다. 그러나, ACAM 질의는 데이터 캐쉬 출력을 인에이블시키지 않고 질의를 수행함으로써 시스템 주소가 ACAM 내의 소정 장소에 존재하는지의 여부를 알아내는 기능을 수행할 수 있다. 이러한 종류의 동작을 SNOOP라 한다.
다른 방도로써, 시스템은 전용 SNOOP가 캐쉬 메모리로 입력되면서 스누프 사이클을 수행하고 있다는 것을 캐쉬 메모리에 통지할 수 있다. 더욱이, 스누프 동작은 또한 메모리 장치에 질의하도록 수행되어 메모리 장치가 무효화 데이터를 보유하고 있는지를 결정할 수 있다. 표 1에는 이하의 상세한 설명에서 참조될 다양한 입력 신호와 그 공급원이 기재되어 있다. 본 발명에 따른 다-방향 캐쉬용 순 LRU 교체 알고리즘을 구현한 레지스터 스택 내의 무효화 엔트리 또는 방향 주소를 처리하기 위한 아키텍처 및 처리 방법의 세부적인 사항이 기술될 것이다.
입력 신호 신호 공급원
WORDLINE[0:31] (도 2a)RESET (도 2b)WORDLINE 3번 (도 3)ENTADTC (도 4a 및 4b)RESET (도 4a)CMPADENN (도 4b)MATRES (도 5)T C (도 5)RESET LOW HIGH (도 6)제1 클럭 (도 6)게이트로 연결된 2D 클럭 (도 6)IN1 RTZ 참 엔트리 BIT (도 6)RTZ 상보 엔트리BIT (도 6)BIT0 - BIT4 (도 7)제2 클럭 (도 7)스택 궤환 단일(도 8a 및 도 8b)SNOOPN (도 8b)리셋 로우 리셋 하이(도 9)RTZ 주소 참 (도 9)RTZ 주소 상보(도 9)리셋 (도 10a)FEGCLK2 (도 10a)CMPD (도 10a)SNOOPN (도 10a)AWED (도 10b)AWED (도 11b)LBVALID1 (도 11b)LBVALID0 (도 11a)PHI2 (도 11a)AWED (도 11c)INVALID (도 12)AWDCLK (도 12 도 10c)카운터 제어 (도 12) ACAM 104메모리 제어기ACAM 104동적 엔트리 주소 버스 116리셋 인에이블 203LRU 스택 제어 논리 회로 114LRU 스택 제어 논리 회로 114RTZ 참 및 여 (T/C) 엔트리 주소버스 (220 218)LRU 스택 제어 논리 회로 114LRU 스택 제어 논리 회로 114LRU 스택 110LRU 스택 110 (이전 레지스터)RTZ 참 및 여 (T/C) 엔트리 주소버스 (220 218)RTZ 참 및 여 (T/C) 엔트리 주소버스 (220 218)RTZ 참 및 여 (T/C) 엔트리 주소버스 (220 218)LRU 스택 제어 논리 회로 114스택 궤환 회로 202메모리 제어기LRU 스택 제어 논리 회로 114RTZ 참 및 여 (T/C) 엔트리 주소버스 (220 218)RTZ 참 및 여 (T/C) 엔트리 주소버스 (220 218)LRU 스택 제어 논리 회로 114LRU 스택 제어 논리 회로 114ACAM 104메모리 제어기ACAM 104ACAM 104메모리 제어기메모리 제어기메모리 제어기ACAM 104LRU 스택 제어 논리 회로 114ACAM 104메모리 제어기
LRU 교체 메카니즘 아키텍처
도면, 특히 도 1을 참조하면, 다양한 구성 요소와 그들간의 상호 접속 관계가 표시된 본 발명에 따른 캐쉬 메모리 시스템의 블록도가 도시되어 있다. 본 아키텍처는 좌측 데이터 어레이(100) 및 우측 데이터 어레이(108), 중앙에 위치한 주소 비교기 (ACAM)(104), 32 레지스터 LRU 스택(110), LRU 스택 제어 논리 회로(114), 이중 동적 참/보수 (T/C) 엔트리 주소 버스(116), 동적 엔트리 주소 인코더(102), 영 복귀 (RTZ) T/C 엔트리 주소 비교 버스(118), RTZ T/C 엔트리 주소 인버터/드라이버(112), 엔트리 주소 버스 사전-차아지(pre-charge) 회로(117), 개별적인 주소 비트 입력을 구비한 엔트리 주소 인코더(123), 좌측 워드선 버스(122)와 우측 워드선 버스(120)에 의해서 표시되는 것과 같은 32의 위드선 NOR 구조(106)를 사용한다. 좌측 워드선 버스(122) 및 우측 워드선 버스(120)는 ACAM(104)에 의해서 동시에 활성화되고 동일한 정보를 포함한다. 32 레지스터 LRU 스택(110)은 최근에 사용된 것 (MRU)으로부터 가장 먼저 사용된 것(LRU)의 순서로 정렬된 32개의 5-비트 인코딩된 엔트리를 포함하는 레지스터 스택 아키텍처를 유지한다. 레지스터 스택 내의 마지막 엔트리는 LRU 엔트리를 보유하며 LRU 레지스터라 불린다.
ACAM(104)은 각각이 27비트인 32 태그를 포함하는 완전 연관 캐쉬-태그 구조로 기능한다. 비교 동작중에는 25비트 어드레스가 유효성을 검사하기 위해 모든 ACAM(104) 엔트리 및 2 상태 비트와 비교된다. ACAM(104) 내의 히트는 ACAM(104) 내에 위치한 클럭에 맞추어진 워드수 드라이버 회로를 활성화시킨다. 히트 중에는 엔트리 주소 값이 동적 엔트리 주소 인코더(102)에 의해서 인코딩된다. 동적 엔트리 주소 인코더(102)는 엔트리 주소 값 (즉, 주소)를 이중 동적 T/C 엔트리 주소 버스(116)를 거쳐서 RTZ/ T/C 엔트리 인버터 드라이버 회로(112)로 전달한다. 그러나, 주소 기록중에는 ACAM(104)은 주소를 주소 기록 버스(121)를 거쳐서 단일 어드레스 비트 입력을 포함하는 엔트리 주소 인코더(123)로 전달하고 그로부터 버스(125) 상에 이중 동적 엔트리 주소를 생성한다.
RTZ T/C 엔트리 인버터 드라이버(112)는 참 엔트리 주소와 보수 엔트리 주소를 생성하고, 참 엔트리 주소와 보수 엔트리 주소는 RTZ T/C 엔트리 주소 비교 버스(118)를 거쳐서 32 레지스터 LRU 스택(110)으로 보내진다. RTZ T/C 엔트리 주소 비교 버스(118)는 RTZ 인코딩된 T/C 엔트리 주소를 RTZ T/C 엔트리 주소 드라이버(112) 내에 포함된 고속 자가-타이밍된 회로로부터 LRU 스택으로 공급한다. RTZ 인토딩된 T/C 엔트리 주소는 MRU 레지스터를 갱신하고 32 레지스터 LRU 스택 내의 모든 레지스터 스택 비교기에 엔트리 새 주소를 알린다. 레지스터 비교기는 현재의 히트 엔트리가 이전에 32 레지스터 LRU 스택 내의 어디에 있었는지를 결정하고 더욱 최근의 엔트리를 스택 내에서 한 레지스터 위치 아래로 이동시키기 위한 이동 펄스를 생성한다. 워드선 NOR 회로(106)는 ACAM(104)으로의 소정 액세스가 히트인지 또는 미스인지를 캐쉬 히트 출력 신호가 하기 전에 결정한다. 히트 또는 미스는 워드수 NOR 출력 신호(128)를 거쳐서 LRU 스택 제어 논리 회로(114)로 보고된다.
도 2a를 참조하면 향상된 스택 동작 용의 이중 상보성 주소 버스를 설명하기 위한 본 발명의 한 실시예가 도시되어 있다. 도 2a의 실시예는 도 1의 전 시스템 아키텍처를 사용하며 본 실시예의 독특한 사항에 초점을 맞추고 있다. 특히, 본 아키텍처는 스택 제어 논리 회로(114), 스택 궤환 회로(202), 32 레지스터 LRU 스택(110), 리셋 인에이블 회로(203), RTZ 인버터/드라이버 회로(112 및 112a), 및 엔트리 주소 인코더(102 및 123)을 포함한다. 스택 제어 논리 회로(114)는 제어 버스(115)를 거쳐서 레지스터 스택(212) 및 리셋 인에이블 회로(203)와 회로적으로 통신하고 있으며, 로딩, 이동, 및 엔트리 주소 비교와 같은 스택 동작을 제어하기 위한 것이다. 스택 제어 논리 회로(114)는 타이밍 버스(119)를 통해 사전-차아지 회로(117)의 타이밍을 제어하기 위해 버스(113)로부터 입력된 참 및 보수 엔트리 주소 비트쌍 버스를 더 포함한다. RTZ 인버터/드라이버 회로(112 및 112a)는 RTZ 참 및 보수 (T/C) 엔트리 주소 버스(220 및 218)을 거쳐 레지스터 스택(212)과 회로적으로 통신하고, 참 및 보수 엔트리 주소 버스(205a 및 205b) (도 1에 버스(116)으로 공동으로 도시됨)를 거쳐 엔트리 주소 인코더(102)와 회로적으로 통신한다. RTZ 인버터/드라이버 회로(112 및 112a)는 또한 버스(201a 및 201b) (도 1에 버스(125)로 공동으로 도시됨)를 거쳐 개별적인 엔트리 어드레스 비트 입력을 포함하는 엔트리 주소 인코더(123)와 회로적으로 통신한다. 스택 궤환 회로는 레지스터 스택(212), 리셋 인에이블 회로(203), 및 스택 제어 논리 회로(114)와 회로적으로 통신하며 스택 동작의 진행을 측정하기 위한 것이다. 엔트리 주소 인코더(102 및 123)는 (도 2a에 워드선[0] 등으로 도시된) 워드선 버스(122) 및 (도 1에 버스(121)로 도시된) T/C 엔트리 주소 입력을 통해 (도 1에 도시된) ACAM(104)와 회로적으로 통신한다.
레지스터 스택(212)은 32 레지스터를 포함하며, 각각의 레지스터는 5비트 크기이고 스택 아키텍처로 배열되어 있다. 최상위 레지스터 REG.0은 MRU 엔트리를 보유한다. 최하위 레지스터 REG.31은 LRU 엔트리를 보유한다. 제1 레지스터 스택(212)은 레지스터 간의 이동 동작을 지원하는 스택 아키텍처를 포함한다. 예를 들면, REG.0의 내용은 REG.1로 이동되고 REG.1의 내용은 REG.2로 이동되는 등의 동작이 가능하다.
RTZ 인버터/드라이버 회로(112 및 112a)는 도 4a 및 도 4b에 도시되어 있으며 도면과 관련하여 이하에서 설명될 것이다. 마찬가지로 엔트리 주소 인코더(102)의 엔트리 주소 인코더는 도 3a에, 개별적인 입력을 구비한 엔트리 주소 인코더(123)는 도 3b에, 스택 궤환 회로(202)는 도 5에, 32 레지스터 LRU 스택(110)은 도 6 및 도 7에 도시되어 있으며 각각의 도면과 관련하여 이하에서 설명될 것이다. 이하의 설명에서 상술한 회로의 설명을 이용하지 않더라도 적당한 도면과 설명을 참조할 수 있다. 따라서, 본 명세서는 이하에서 본 실시예의 동작에 초점을 맞출 것이다.
간략하게 정리하면, 본 발명의 LRU 교체 메카니즘은 엔트리 주소와 엔트리 주소 사용 정보를 레지스터 스택에 최상위로부터 최하위로, 또는 그 반대로 기억시킨다. 최상위 레지스터는 전형적으로 MRU 정보를 보유하고, 최하위 레지스터는 LRU 정보를 보유한다. 레지스터 스택은 전형적으로 MRU 정보가 레지스터 스택의 최상위에 기억되고 결국 레지스터 스택의 바로 최하위, 또는 LRU 레지스터로 하향 이동되는 후입선출 아키텍처를 사용한다. 따라서, MRU 정보를 유지하고 LRU 정보를 이동시켜 방출함으로써, 캐쉬 내에 기억된 새로운 정보가 많은 판독 동작 이후에 계속해서 요구되지 않았던 위치 (즉, 엔트리)에 배치되고 빈번하게 참조되어 온 정보 (즉, 주소)는 캐쉬 내의 현재 위치에 남아 있으려 하기 때문에 캐쉬 메모리에서 히트가 일어날 가능성이 더욱 높아진다.
도 1 및 도 2b를 참조하면, 비교 동작이나 주소 기록 동작이 ACAM(102) 내에서 수행되면 본 실시예는 시작된다. 비교 동작 결과 ACAM(102) 내에 히트가 일어나면, 엔트리 주소 인코더(102) 내의 엔트리 주소 인코더는 엔트리 주소를 생성하고 그것은 참/보수 엔트리 주소 버스(205a 및 205b)로 인가된다. 엔트리 주소는 활성화된 엔트리 워드선의 주소를 나타내는 이진 주소이다. 새로이 발생된 엔트리 주소는 RTZ 인버터/드라이버 회로(112 및 112a)로 전달되고, RTZ 인버터/드라이버 회로(112 및 112a)는 이어서 엔트리 주소를 32 레지스터 LRU 스택(110)으로 전달한다.
엔트리 주소는 이어서 최다 최근 사용 (MRU) 레지스터 (REG.0)로 로딩된다. 레지스터 스택(212)의 다른 모든 엔트리 레지스터 (REG.1 내지 REG.31)은 엔트리 레지스터의 내용을 RTZ 엔트리 주소 버스(218 및 220) 상의 엔트리 주소와 비교하는 비교 회로 (도 2a에 도시되지 않음)를 포함한다. 임의의 엔트리 레지스터(REG.1 내지 REG.31)가 RTZ T/C 엔트리 주소 버스(220 및 218)과 동일한 엔트리 주소를 포함하여 정합 조건을 나타내면, 그 레지스터 위치는 그 레지스터를 정합 엔트리 레지스터로 식별하기 위해 식별 정합 신호에 의해서 플래깅(flagging)된다.
정합 엔트리 레지스터가 식별되면, 더욱 최근의 엔트리 레지스터의 내용이 정합 레지스터로 하향 이동되며, 최종적으로는 정합 레지스터의 내용 위에 다음의 가장 최근에 사용된 엔트리 레지스터의 내용을 덮어쓰는 효과가 된다. 예를 들면, REG.5가 정합 엔트리 레지스터로 식별되면 (즉, RTZ 엔트리 주소 버스(218 및 220)에 있는 것과 동일한 엔트리 주소를 포함하면), 엔트리 주소 정합 REG.5는 REG.0에 배치되고 엔트리 레지스터 REG.1 내지 REG.4의 내용은 REG.0의 이전 내용이 REG.1에 기억되고 REG.2의 내용은 REG.3에 기억되는 등으로 되도록 REG.4의 내용이 정합 엔트리 레지스터 REG.5에 기억될 때까지 이동될 것이다. 이와 같은 방법으로, 스택 내의 모든 레지스터의 갱신이 스택 내의 모든 더욱 최근의 레지스터에서 동시에 일어나는 단일의 이동 동작으로 수행된다.
MRU 레지스터보다 덜 최근인 모든 스택 레지스터에서 동시에 일어나는 엔트리 주소 비교 동작과 그 다음의 모든 더욱 최근의 스택 레지스터에서 동시에 일어나는 단일 이동 동작에 의해서 새로운 LRU 주소 계산이 일어나기 때문에, 방향 또는 엔트리의 수가 증가함에따라 LRU 주소 계산 시간이 기하학적으로 증가하지 않지만, 비-연관 수단을 이용하여 수행되는 LRU 주소 계산은 캐쉬 내의 방향 또는 엔트리의 수가 증가함에따라 회로의 수나 지연은 기하학적으로 증가한다. 연관 정렬을 이용한 LRU 주소 계산은 많은 수의 방향 또는 엔트리를 구비한 캐쉬 또는 다른 메모리 시스템용의 더욱 신속하고 효율적인 계산 수단을 제공한다.
무효화 데이터 처리 LRU 교체 메카니즘
도 2b를 참조하면, 제1 레지스터 스택(212) 및 제2 레지스터 스택(210)을 사용하는 LRU 교체 메카니즘의 제2 실시예의 블록도가 도시되어 있다. 제1 레지스터 스택(212)은 32 레지스터를 포함하며 각각의 레지스터는 5비트 크기이고 스택 아키텍처로 배열되어 있다. 최상위 레지스터 REG.0은 MRU 엔트리이다. 최하위 레지스터 REG.31은 LRU 엔트리이다. 제1 레지스터 스택(212)은 레지스터 간의 이동 동작을 지원하는 스택 아키텍처를 포함한다. 예를 들면, REG.0의 내용은 REG.1로 이동되고 REG.1의 내용은 REG.2로 이동되는 등의 동작이 가능하다.
제2 레지스터 스택(210)은 N 레지스터를 포함하며, 여기서 N은 0보다 큰 제1 레지스터 스택(212)의 크기까지의 임의의 값일 수 있다. 도시된 실시예에서 제1 레지스터 스택(212)은 32 레지스터를 포함한다. 따라서, 제2 레지스터 스택(210)은 32 레지스터까지 포함할 수 있다. 그러나, 예시적인 목적을 위해서 제2 레지스터 스택(210)은 4개의 레지스터 (즉, N = 4)를 포함하는 것으로 가정할 것이다. 제2 레지스터 스택(210)은 또한 레지스터 I/O 다중화기(242)를 포함하며, 그 동작은 이하에서 더욱 상세히 설명될 것이다.
도 2b를 계속 참조하면, LRU 교체 메카니즘은 LRU 스택 제어 논리 회로(114), 스택 궤환 회로(202), 카운터 회로(204), 무효화 엔트리 주소 카운터(206), 디코더(208), 제2 MRU 레지스터(214), 및 LRU 출력 다중화기(216)을 더 사용한다. (도 1에 도시된) RTZ T/C 엔트리 드라이버(112)는 이하에서 RTZ 엔트리 주소 버스(218 및 220)로 함께 참조되는 RTZ 참 엔트리 주소 비교 주소 버스(218)와 RTZ 보수 엔트리 주소 비교 버스(220)를 구동한다. RTZ 엔트리 주소 버스(218 및 220)는 참 및 보수 엔트리 주소를 제1 레지스터 스택(212)의 레지스터 각각과, 레지스터 I/O 다중화기(242)와 제2 제2 MRU 레지스터(214), 및 스택 궤환 회로(202)에 입력한다.
LRU 스택 제어 논리 회로(114)는 제1 클럭(222) 및 제2 클럭(224)를 제1 레지스터 스택(212)에 제공한다. LRU 스택 제어 논리 회로(114)는 또한 MRU 레지스터 제어(226)을 제2 MRU 레지스터(214)에 제공한다. LRU 스택 제어 논리 회로(114)는 또한 무효화 엔트리 주소 상태 신호(228)를 카운터 제어부(204)에 제공한다.
카운터 제어부(204)는 출력으로서 증가 신호(230) 및 감소 신호(232)를 가지며, 그 두 신호는 무효화 엔트리 주소 카운터(206)로 인가된다. 카운터 제어부(204)는 LRU 출력 다중화기(216)로 인가되는 제어 출력(234)를 더 포함한다. 무효화 엔트리 주소 카운터(206)는 디코더(208)로 인가되고 카운터 제어부(204)로 궤환되는 카운터 출력 버스(236)를 갖는다. 디코더(208)는 카운터 출력 버스(236)에 의해서 공급된 카운터 값을 디코더 출력 버스(240)를 거쳐 레지스터 I/O 다중화기(242)로 인가되는 다중화기 선택 신호로 디코딩한다.
다시 정리하면, 본 발명의 LRU 교체 메카니즘은 엔트리 주소와 엔트리 주소 사용 정보를 레지스터 스택에 최상위로부터 최하위로, 또는 그 반대로 기억시킨다. 최상위 레지스터는 전형적으로 MRU 정보를 보유하고, 최하위 레지스터는 LRU 정보를 보유한다. 레지스터 스택은 전형적으로 MRU 정보가 레지스터 스택의 최상위에 기억되고 결국 레지스터 스택의 바로 최하위, 또는 LRU 레지스터로 하향 이동되는 후입선출 아키텍처를 사용한다. 따라서, MRU 정보를 유지하고 LRU 정보를 이동시켜 방출함으로써, 캐쉬 내에 기억된 새로운 정보가 많은 판독 동작 이후에 계속해서 요구되지 않았던 위치 (즉, 엔트리)에 배치되고 빈번하게 참조되어 온 정보 (즉, 주소)는 캐쉬 내의 현재 위치에 남아 있으려 하기 때문에 캐쉬 메모리에서 히트가 일어날 가능성이 더욱 높아진다.
그러나, 레지스터 스택은 무효화되어 더 이상 사용 정보를 나타내지 않는 (즉, 무효화 정보) 엔트리 주소를 보유할 수 있다. 다시 정리하면, 캐쉬 메모리 내의 정보는 메모리의 소정 영역에서 변형되고 다른 영역에서는 변형되지 않게 되면 진부해지고, 노화되거나 또는 무효화된다. 따라서, 캐쉬 메모리와 같은 다른 시스템 메모리 내에 있을 수 있는 진부한, 노화된, 또는 무효화된 데이터를 부효화하기 위해서 스누프 동작이 일어난다. 캐쉬 (및 레지스터 스택) 내의 정보는 현재 무효화되었고 레지스터 스택 내의 엔트리를 점유하고 있기 때문에, 레지스터 스택은 현재 거품으로 알려진 것을 포함한다. 거품은 부효화된 정보를 보유하기 때문에 캐쉬 메모리에 의해서 더 이상 사용될 수 없는 레지스터 엔트리이다. 따라서, 32 엔트리 레지스터 스택은 무효화 엔트리가 LRU 엔트리를 거쳐 스택을 빠져나갈때까지 사실상 31 엔트리 레지스터 스택일 것이다. 따라서, 레지스터 스택 내의 무효화 엔트리의 수가 증가함에 따라, 레지스터 스택도 더욱 작아 보이는 것이다.
전력이 공급되고 시스템이 리셋되면 캐쉬와 LRU 논리 회로는 시작되어야 한다. LRU 교체 메카니즘용 제1 레지스터 스택(212)은 전력이 공급될 당시 기준으로 사전의 엔트리 주소 사용이 없었기 때문에 초기화 중에는 레지스터 스택이 가장 최근으로부터 가장 오래된 엔트리 주소까지 임의로 정렬되어 있다. 이것은 스택 내의 모든 레지스터가 유일한 엔트리 주소를 보유하고 있도록 한다.
도 1, 2a, 및 2b를 참조하면, 초기에 ACAM(104)은 유효 주소를 전혀 보유하고 있지 않으며 모든 유효 상태 비트는 무효 상태로 초기화되어 있다. ACAM(104) 내에 유효 주소가 전혀 없기 때문에, ACAM(104) 내의 주소 비교 동작은 캐쉬 메모리 내에 미스를 일으킬 것이다. 이 미스의 결과로서, 요청된 데이터는 데이터 어레이 내에 배치될 것이고, 대응 시스템 주소는 한 개 또는 그 이상의 유효 상태 비트를 유효 상태로 셋팅하면서 ACAM(104) 내에 비치될 것이다. ACAM(104)이 상기 새로운 시스템 주소로 로딩되면, 대응 ACAM(104) 엔트리 주소는 제1 레지스터 스택(212)의 최상위에 새로운 MRU 엔트리 주소로서 배치될 것이다. 역시 미스를 일으킨 ACAM(104) 내의 다음 주소 비교 동작은 제1 레지스터 스택(212)의 MRU 엔트리에 배치되는 다른 엔트리 주소를 야기할 것이다. MRU 엔트리 레지스터(REG.0)에 사전에 있던 정보는 다음의 엔트리 레지스터, 즉 REG.1로 하향 이동된다.
그러나, 소정 시간 이후 캐쉬가 채워지면, ACAM(104) 내의 주소 비교 동작은 또한 히트를 생성할 수 있다. 이러한 경우, 히트는 캐쉬 메모리가 부여된 시스템 주소에 대응됨을 데이터를 포함함을 나타낸다. 레지스터 스택(212) 내의 대응 엔트리 주소는 다음의 가장 최근의 레지스터의 엔트리 주소로 교체될 것이고, 동시에 MRU 엔트리, 또는 REG.0에 비채될 것이다. 예를 들면, 레지스터 스택(212) 내의 대응 엔트리 주소가 REG.10에 위치한다면, REG.10에 선행하는 레지스터 (즉, REG.0부터 REG.9) 에 있는 모든 엔트리 주소는 레지스터 스택을 하향 이동하여 REG.9에 있던 엔트리 정보는 REG.10에 있게 될 때까지 REG.0에 있던 엔트리 정보는 이제 REG.1에 있게 되는 등이 된다. RTZ T/C 엔트리 버스(218 및 220)는 엔트리 정보를 제1 레지스터 스택(212)의 MRU 엔트리로 전달하고, 이에 따라 REG.10에 있던 엔트리 정보는 REG.0의 MRU 엔트리에 있게 될 것이다.
스누프/비교 동작이 수행되고 히트가 일어나면, 주소 무효화 동작이 따르게 된다. 주소 무효화 동작이 일어나서 ACAM(104) 내의 엔트리를 무효화할 때에는, 무효 엔트리 플래그가 셋팅되어 현재의 엔트리 주소가 무효임을 알린다. 또한, LRU 스택 제어 논리 회로(114)는 무효화된 엔트리 정보가 제1 스택 레지스터(212)의 MRU 엔트리 레지스터에 배치되고 제1 레지스터 스택(212)의 스택이 이동되는 것을 금지한다. 무효화 엔트리 주소는 RTZ T/C 엔트리 버스(220 및 218)를 거쳐 레지스터 I/O 다중화기(242)에 기록되고, LRU 출력 다중화기(216)는 제2 레지스터 스택(210)으로부터의 출력을 LRU 엔트리 출력으로 향하게 할 것이다. 후속하여 새로운 정보가 캐쉬에 기록되면, LRU 엔트리 출력은 새로운 엔트리 정보가 LRU 엔트리 출력에 의해서 표시되는 엔트리로 기록되도록 할 것이다. 이러한 방법에 의해서 캐쉬 내에 배치된 새로운 정보는 유효 정보를 보유한 엔트리 이전의 무효화된 엔트리에 기록된다.
새로운 정보가 캐쉬 내에 기록되는 때에는, 스택 제어 논리 회로(114)는 주소 기록 동작을 현재의 LRU 엔트리 출력에 의해서 새로운 정보가 주어진 대응 엔트리 주소 및 ACAM(104) 내에 히트로 번역한다. 새로운 정보가 캐쉬 내에 기록되는 때에는, 새로운 정보는 캐쉬 메모리 제어기에 의해서 현재의 LRU 엔트리 출력에 대응되는 캐쉬 엔트리로 향하게 되고, 캐쉬는 주소 비교 동작 중의 히트와 유사한 방식으로 연관된 주소 기록 동작에 응답한다. 그 결과, 주소 기록 동작에 의해서 생성된 새로운 엔트리 주소는 또한 현재의 LRU 엔트리 엔트리 출력에 대응되고 이중 동적 T/C 엔트리 주소 버스에 의해서 제1 레지스터 스택(212)으로 전달된다. 스택 제어 논리 회로(114)는 이어서 제1 레지스터 스택(212) 상에 비교 및 이동 시퀀스를 수행한다. 따라서, 연관된 주소 기록 동작이 일어날 때 LRU 엔트리 출력이 무효화된 주소를 제2 레지스터 스택(210)으로부터 출력하고 있으면, 새로운 정보가 무효화된 주소에 기록되고 무효화 주소 카운터(206)는 감소되며 제1 레지스터 스택(212) 내에서 수행되는 이동 동작은 제1 레지스터 스택(212) 내에서 무효화 엔트리 주소 거품을 제거하게 된다. 무효화 주소 카운터(206)가 초기 상태까지 감소하면, 카운터 제어 논리 회로(114)는 LRU 출력 다중화기(216)를 제1 레지스터 스택(212)의 출력으로 스위칭한다. 이리하여 무효화된 엔트리 주소는 유효 엔트리 주소를 보유한 엔트리 이전에 새로운 정보를 기억시키는데 사용된다. 예를 들면, 제2 레지스터 스택(210)이 제1 레지스터 스택(212)의 REG.10의 내용에 대응되는 주소를 보유하면, 새로운 시스템 주소와 연관 데이터가 제2 레지스터 스택(210)내에 보유된 엔트리 주소에 대응되는 엔트리 및 제1 레지스터 스택(212)의 REG.10에 기록될 것이다. 새로운 시스템 주소가 ACAM(104)에 기록되는 때에는, 엔트리 주소는 제1 레지스터 스택(212)으로 전달된다. 엔트리 주소는 제2 MRU 레지스터(214) 및 제1 레지스터 스택(212)의 REG.0에 기록되고, 동시에 REG.1 내지 REG.31의 내용과 비교된다. 상기 엔트리 주소가 REG.10의 내용과 정합되기 때문에, REG.0 내지 REG.9의 내용은 REG.1 내지 REG.10 으로 이동되고 제1 레지스터 스택(212) 내의 거품을 제거한다. 동시에 카운터 제어 논리 회로(204)는 무효화 엔트리 주소 카운터(206)를 감소시킨다. 제2 레지스터 스택(210)이 오직 한 개의 무효 엔트리만을 포함했다면, 무효화 엔트리 주소 카운터(206)는 초기 카운트 값으로 되돌아 갈 것이고, 이 값은 카운터 제어 논리 회로(204)에서 디코딩되어 무효 엔트리 주소 플래그를 리셋할 수 있다. 이러한 조건 하에서, 제어 신호(234) 또는 플래그는 리셋되어 LRU 출력 다중화기(216)로 하여금 LRU 엔트리 출력을 제1 레지스터 스택(212)으로부터 내보낸다.
또한, 엔트리 주소가 무효화될 때마다 LRU 스택 제어 논리 회로(114)는 무효 엔트리 주소 상태 신호(228)를 생성하며 그 신호는 카운터 제어부(204)로 인가된다. 카운터 제어부(204)는 제1 레지스터 스택(212) 내의 엔트리가 무효화될 때마다 증가 신호(232)를 생성한다. 무효화 엔트리 주소 카운터(206)는 전형적으로 0 값으로 초기화되고 각각의 무효화 동작에 대하여 카운터 제어부(204)에 의해서 증가된다. 카운터 값이 0보다 큰 때에는, LRU 출력 다중화기(216)의 출력을 제어하는 제어 신호(234)를 생성할 것이다. 제어 신호(234)는 카운터 값이 0보다 큰때마다 활성화되어 제2 레지스터 스택(210)이 그 레지스터 내에 무효화 엔트리 정보를 포함하고 있음을 알리게 된다. 제어 신호(234)가 활성화되면, LRU 출력 다중화기(216)는 제2 레지스터(210) 내에 있는 무효화 엔트리 주소 정보를 레지스터 I/O 다중화기(242)를 거쳐 출력한다. 레지스터 I/O 다중화기(242)는 제2 레지스터 스택(210) 내의 N 레지스터 중의 한 개로부터 출력을 선택하는데, 그 출력은 디코더(208) 및 무효화 엔트리 주소 카운터(206)에 의해서 결정된다. 현재 무효화된 엔트리인 캐쉬 엔트리 내에 새로운 데이터가 기억되는 때마다, 카운터 제어부(204)는 무효화 엔트리 주소 카운터(206)를 감소시키는 감소 신호(232)를 생성한다. 이와 같은 방법으로, 무효화 엔트리 주소 카운터(206)는 무효화 엔트리 주소 정보의 배치에 기초하여 0값으로부터 증가하고 무효화 엔트리 주소에 새로운 데이터를 기록하는 것이 기초하여 감소한다.
도 12는 카운터 제어 회로(204) 내에서 사용되는 증가 제어 회로(1200) 및 감소 제어 회로(1230)을 도시한 것이다. 증가 제어 회로(1200)는 인버터 게이트(1202-1210), PFET 소자(1212-1216), NFET 소자(1218-1222), 및 NOR 게이트(1224)를 포함한다. 증가 제어 회로(1200)는 또한 입력 INVALID 및 출력 INC를 포함한다. 입력 INVALID 상의 상승 에지(edge)는 한 개의 논리 HI 펄스가 출력 INC에 나타나게 할 것이다. 인버터 게이트(1204-1210), PFET 소자(1212-1216), 및 NFET 소자(1218-1222)는 회로 지연 부가 기능을 하며 출력 펄스의 폭을 결정한다. 감소 제어 회로(1230)는 NAND 게이트(1232) 및 인버터 게이트(1233)를 포함한다. 입력 AWECLK는 매 클럭 펄스마다 NAND 게이트(1232)를 인에이블시키고, NAND 게이트(1232)가 인에이블되었을 때 입력 COUNTER CONTROL이 하이(HI)가 되면 출력 DEC는 AWECLK와 COUNTER CONTROL 모두가 HI인 한 HI가 될 것이다.
무효화 엔트리 주소 카운터(206) 카운트 값은 카운터 출력 버스(236)를 거쳐 카운터 제어부(204)로 인가된다. 무효화 엔트리 주소 카운터(206) 카운터 값이 0보다 큰 동안에는, 카운터 제어부(204)는 제어 신호(234)를 활성화된 상태로 유지할 것이어서 LRU 출력 다중화기(216)는 LRU 엔트리 정보로서 제2 레지스터 스택(210)으로부터 무효화 엔트리 주소를 계속해서 출력할 것이다. 무효화 엔트리 주소 카운터(206) 카운트 값이 0과 같은 때에는, 카운터 제어부(204)는 제어 신호(234)를 비활성화시켜서 제2 레지스터 스택이 어떤 무효화 엔트리 주소도 보유하고 있지 않음을 나타낼 것이다. LRU 출력 다중화기(216)는 이어서 제1 레지스터 스택(212)의 LRU 엔트리 레지스터로부터 엔트리 정보를 출력할 것이다.
도 3a를 참조하면, 이중 동적 참/보수 (T/C) 주소 버스를 방전(discharging)하기 위한 엔트리 주소 인코더의 회로도가 도시되어 있다. 본 회로는 소정 엔트리 버스선을 선택된 원드선과 소자(304-312)의 드레인 접속의 하드웨어 프로그래밍의 함수로 방전하는 NFET 풀-다운(pull-down) 소자(304-312)를 포함한다. 예를 들면, 회로(300)는 워드선 #3을 위해 프로그래밍된 인코드를 보이고 있다. NFET 풀-다운 소자(304 내지 308)는 게이트 단자가 워드선 #3 입력(302)에 접속되어 있고 소오스 단자는 접지되어 있다. 더욱이, NFET 풀-다운 소자(304 내지 308)은 드레인 단자가 엔트리 주소 참 버스선(EA4T, EA3T, 및 EA2T)로 접속된다. NFET 풀-다운 소자(310 및 312)는 또한 그 단자가 워드선 #3 입력(302)로 접속되고 소오스 단자는 접지된다. 그러나, NFET 풀-다운 소자(310 및 312)는 드레인 단자가 엔트리 주소 상보 버스선(EA1C 및 EA0C)로 접속된다. 따라서, 워드선 #3 입력(302)이 활성화되면, NFET 풀-다운 소자(304 내지 308)는 엔트리 주소 참 버스선(EA4T, EA3T, 및 EA2T)를 방전하고 NFET 풀-다운 소자(310 및 312)는 엔트리 주소 상보 버스선(EA1C 및 EA0C)를 방전할 것이다. 32 워드선 버스의 워드선 각각은 회로(300)과 유사한 방전 회로와 회로적으로 통신하고 있으나 선택된 특정 워드선에 사용하기 위해 프로그래밍된 유일한 이중 동적 T/C 엔트리 주소 인코더로 입력된다. 예를 들면, 워드선 #1용의 방전 회로는 NFET 풀-다운 소자(304 내지 310)의 드레인 단자가 엔트리 주소 참 버스선(EA4T - EA1T)로 접속됨을 당업자라면 알 수 있을 것이다. 특히, NFET 풀-다운 소자(310)는 드레인 단자가 엔트리 주소 참 버스선(EA1T)으로 접속되고, NFET 풀-다운 소자(304 내지 308 및 312)는 도 3에 도시된 것과 같이 접속될 것이다. 사전-충전된 상보 동적 버스를 구비한 회로(300)의 주요 효과는 별도의 부하 소자를 포함하지 않고 엔트리 프로그래밍에 무관하게 일정한 워드선 부하를 제공할 수 있는 능력을 갖는다는 점이다.
도 3b는 개별적으로 주소 비트 입력을 구비한 엔트리 주소 인코더(123) 회로를 도시한 것이다. 엔트리 주소 인코더(123)는 복수의 NFET 소자(320-338)를 포함한다. 각각의 NFET 소자는 게이트 단자가 ACAM(104)으로부터의 이중 동적 엔트리 주소 버스(121)에 포함되는 버스선(IN4T-IN0C)로 접속되어 엔트리 주소 인코더(123)로의 개별적인 비트 입력을 형성한다. NFET 소자(320-338)는 또한 드레인 단자가 이중 동적 상보 주소 버스선(EA4C-EA0C) (도 1에 버스(125)로 도시됨)으로 접속된다. 동작중에는 ACAM(104) 내에서 주소 기록이 시작되면, ACAM(104)은 버스선(IN4T-IN0C) 상에 5 비트 참 및 보수 엔트리 주소를 배치할 것이다. 엔트리 주소 인코더(123)는 이어서 적절하게 NFET 소자(320-338)를 거쳐서 소정의 이중 동적 상보 주소 버스선(EA4C-EA0T)을 방전할 것이다.
도 4a 및 4b를 참조하면, 영 복귀 (RTZ) 참/보수 (T/C) 자가-타이밍된 반전 회로(400a 및 400b)의 다른 실시예의 회로도가 도시되어 있다. 특히 도4a를 참조하면, RTZ T/C 엔트리 주소선은 이중 동적 T/C 엔트리 주소 버스(218 및 220) (도 1에 도시됨)의 사전-충전의 함수로 자동적으로 리셋될 수 있다. 회로(400a)는 참 또는 보수 단일 주소 비트용의 반전 드라이버 회로로서 도시되어 있다. 회로(400a)는 NFET 소자(404a) 및 PFET 소자(402a)를 포함한다. PFET 소자(402a)는 게이트 단자가 이중 동적 T/C 엔트리 버스(116)의 버스선 ENTADTC로 접속되고 NFET 소자(404a)는 게이트 단자가 RESET선으로 접속된다. 사전-충전된 주소 버스선 ENTADTC의 방전은 자가-타이밍된 전이 내에 PFET 소자(402a)를 통한 출력 CMPAD에서 반전된다. 출력 CMPAD는 NFET 소자(404a)의 게이트 단자로 접속된 RESET선이 하이임이 인정되는때에 리셋된다. 도시된 바와 같이, RESET 신호는 도시된 병렬 접속(406a)을 거쳐서 사전-충전 주소 버스선 ENTADTC의 함수가 될 수 있다. 이러한 경우에 출력 CMPAD의 리셋은 엔트리 주소 버스 복귀과 함께 자가-타이밍된 방식으로 수행된다.
도 4b를 참조하면, 자가-타이밍 반전 드라이버 회로의 다른 실시예가 도시되어 있다. 도 4b의 회로(400b)는 CMPADENN에 인에이블 입력, ENTADTC에 비트 입력, CMPAD에 출력을 갖는 고이득 궤환 래치이다. 회로(400b)는 PFET 소자(402b, 404b, 406b, 및 408b)를 포함하고, NFET 소자(410b, 412b, 414b, 및 416b)를 포함한다. 회로(400b)는 또한 인버터(418b 및 420b)를 더 포함한다. PFET 소자(402b 및 408b)와 NFET 소자(414b 및 412b)의 게이트 단자는 인에이블/리셋 신호 CMPADENN으로 접속된다. PFET 소자(404b) 및 NFET 소자(410b)의 게이트 단자는 이중 동적 T/C 엔트리 주소 버스(116)의 버스선 ENTADTC로 접속된다. 인버터(418b)는 그 입력이 PFET 소자(404b 및 408b) 및 NFET 소자(414b, 412b, 및 410b)의 소오스 단자로 접속된다. 인버터(418b)의 출력은 인버터(420b)의 입력 및 PFET 소자(406b) 및 NFET 소자(416b)의 게이트 단자로 접속된다. 인버터(418b)의 입력 노드는 A로 표시되고 인버터(418b)의 출력 노드는 B로 표시된다. 인버터(420b)의 출력은 자가-타이밍 반전 드라이버 회로(400b)의 출력 CMPAD이다.
도 4b의 회로(400b)는 엔트리 버스선의 방전이 자가-타이밍되어 활성화되도록 하지만, 또한 이중 동적 T/C 엔트리 주소 버스(116)에 독립적으로 출력 CMPAD가 리셋되도록 한다. 본 회로는 또한 구동 능력을 더욱 높게 제공한다. 이것은 출력 CMPAD가 이중 동적 T/C 엔트리 주소 버스(116)의 리셋 이후가 아닌 리셋 중에 또는 그 이전에 리셋되도록 함으로써 사이클 시간을 더욱 빠르게 한다. 버스선 ENTADTC는 정상적으로는 사전-충전된 선이며 회로(400b)는 입력 CMPADENN이 로우일 때 인에이블된다. 따라서, ENTADTC가 방전하기 시작할 때, PFET 소자(404b)는 턴온(turn on)되고 노드 A를 논리적 고레벨로 끌어올릴 것이다. 노드 A의 레벨이 상승함에 따라, 인버터(418b)는 노드 B에 있는 출력을 논리적 저레벨로 만들 것이다. 노드 B의 낮은 입력은 인버터(420b)로 하여금 그 출력 CMPAD를 논리적 고레벨로 구동하게 할 것이다. 그러나, CMPADENN이 높게 구동되면, NFET 소자(414b)는 노드 A를 논리 저레벨로 만들고 인버터(418b)의 출력인 노드 B를 논리 고레벨로 상승하도록 할 것이다. 따라서, 인버터(420b)의 출력 CMPAD는 논리 저레벨로 될 것이다. 이와 같이, 도 4b의 회로(400b)는 리셋된다.
도 5를 참조하면, 스택 궤환 회로(524)의 회로도가 도시되어 있다. 스택 궤환 회로(524)는 제1 레지스터 스택(212) (도 2에 도시됨) 내에서 수행되는 비교 동작을 반영하기 위해서 사용된다. 궤환 회로(524)는 제1 레지스터 스택 내의 이동 동작을 인에이블하고 제1 레지스터 스택(212) 내의 비교 동작이 완료되면 도 4a 및 4b의 자가-타이밍 반전 회로를 리셋시키는데 사용될 수 있다. 회로(524)는 복수의 인버터 게이트(504-516), NFET 소자(518 및 520), PFET 소자(522 및 526), 및 NOR 게이트(502)를 포함한다. 스택 궤환 회로(524)는 MATRES, 참 (T) 및 보수 (C) 신호를 입력으로 하고, STKFB 및 LRUTCFB를 출력으로 한다. 스택 궤환 신호 STKFB는 스택 비교 동작의 진행을 측정하고 RTZ T/C 엔트리 주소 버스(220 및 218)이 얼마나 신속히 리셋될 수 있는지를 결정하는데 사용된다. 스택 궤환 회로(524) 입력 신호 T 및 C는 인가되는 근원인 제1 레지스터 스택(212) (도 2에 도시됨)의 반대쪽 끝에 도달하는 참 및 보수 비트 주소 버스선일 수 있으며, 또는 제1 레지스터 스택(212)을 따라 임의의 다른 점으로부터의 참 및 보수 주소 비트선일 수 있다. MATRES가 방전되면, PFET 소자(526)는 턴온되고 노드 A5의 전압 레벨이 상승되도록 할 것이다. 인버터 게이트(510 및 512)는 노드 A5가 상승함에 따라 출력 STKFB가 상승되도록 할 것이다. STKFB가 HI로 사전-충전된 이후에, 스택 궤환 회로(524)는 인에이블되고 T 또는 C의 상승 입력은 NFET 소자(520)를 턴온시켜 노드 A5가 논리 저레벨로 떨어지도록 할 것이다. 노드 A5가 논리 저레벨로 떨어지면, 인버터 게이트(510 및 512)는 출력 STKFB도 또한 논리 저레벨로 떨어지도록 한다. 이와 같은 방식으로, 스택 궤환 회로(524)로 인한 T 및 C 입력으로부터 STKFB 출력으로의 회로 지연은 제1 레지스터 스택(212) (도 2에 도시됨)의 반대쪽 끝에서 일어나는 비교 동작을 반영하도록 구성되어 얼마나 신속히 레지스터 이동 동작이 시작되고 RTZ T/C 엔트리 주소 버스(220 및 218)이 리셋될 수 있는지 결정할 수 있게 할 것이다. LRUTCFB 출력 신호는 제1 레지스터 스택(212) 내의 참 및 보수 비트 엔트리 상태의 표시를 제공한다.
도 6 및 7을 참조하면, 엔트리 주소 정보의 비트를 제1 레지스터 스택(212) 내에 기억시키기 위한 메모리 회로의 회로도가 도 6에 도시되어 있고, 제1 레지스터 스택(212)의 전체적인 스택 아키텍처의 블록도가 도 7에 도시되어 있다. 특히 도 6을 참조하면, 각 스택 레지스터의 각각의 비트는 주-종 배치(master-slave arrangement)로 된 이중 D-형 레치 및 비교기로 구성된다. 제1 래치(646)는 IN1, , 및 제1 클럭(FIRST CLOCK)을 입력으로 하고, OUT1 및 를 출력으로 한다. 제2 래치(648)는 NFET 소자(604-607) 및 인버터 게이트(624-640)을 갖는다. 제2 래치(648)는 IN1, , 및 제2 클럭(SECOND CLOCK)을 입력으로 하고, OUT2 및 를 출력으로 한다. 제1 래치(646)의 출력 IN1, 은 제2 래치(648)의 입력 IN2, 으로 접속된다. 출력 OUT2 및 는 비교기(644)의 입력으로 접속된다. 비교기(644)는 NFET 소자(610, 612, 및 615), 및 PFET 소자(611, 613, 및 614)를 갖는다. 도 6의 회로에는 NFET 소자(608 및 609)가 더 포함되어 있다. NFET 소자(608 및 609)는 게이트 단자가 리셋 하이(RESET HI) 및 리셋 로우(RESET HI) 신호로 접속되어 있고 전력이 공급될 때 또는 플러시(flush) 동작 이후에 제2 래치 전체를 프로그래밍된 상태로 셋팅하는데 사용된다.
제1 래치(646) 및 제2 래치(648)가 클러킹(clocking)된 D-형 래치이기 때문에, 제1 클럭(FIRST CLOCK) 신호와 제2 클럭(SECOND CLOCK) 신호가 각각의 래치로 인가될 때 IN1, 및 IN2, 에 나타난 입력 신호가 OUT1, 및 OUT2, 에 나타날 것이다. 비교기(644)는 제2 래치(648)의 출력 OUT2, 의 상태를 RTZ T/C 엔트리 주소 버스(218 및 220) (RTZ 참 엔트리 BIT 및 RTZ 보수 엔트리 BIT로 도시됨) 상의 할당된 비트와 비교한다. 비교기(644) 출력 정합(MATCH)은 HI로 사전-충전되어 있고 OUT2 및 가 RTZ 참 엔트리 BIT 및 RTZ 보수 엔트리 BIT의 활성화 상태와 정합되지 않은 모든 때에 논리 LOW로 될 것이다. 정합 복귀(MATCH RESORE) 입력은 PFET 소자(614)를 턴온하고 정합 출력을 논리 HI로 사전-충전하며, 동일한 정합선과 통신하고 있는 모든 공통의 비교기에 의해서 공유될 수 있다.
도 7을 참조하면 제1 레지스터 스택(212) 아키텍처의 소정 구성부의 블록도가 도시되어 있다. 비트 레지스터(700-710)는 도 6의 회로에 관한 블록도이다. 제1 래치 입력 IN1 T 및 C는 스택 내의 선행하는 레지스터의 출력 OUT2 T 및 C로 접속된다. 예를 들면, 비트 레지스터(702)의 IN1 T 및 C는 비트 레지스터(700)의 출력 OUT2 T 및 C로 접속된다. 각 비트 레지스터의 정합은 제2 클럭으로 연결되는 다중-입력 NOR 구조로 접속되어 각 비트 레지스터(700, 704, 708, 및 702, 706, 및 710)의 제2 래치가 임의의 비트 레지스터 자신의 정합선 또는 임의의 덜 최근인 레지스터의 정합선이 양의 정합 조건을 나타낼 때 제2 클럭에 의해서 갱신된다. 예를 들면, 비트 레지스터(700, 704, 및 708) 각각은 그 정합(MATCH) 출력이 NOR 게이트(712 및 714) 및 인버터(716)를 포함하는 NOR 구조로 접속된다. 따라서, 각각의 비트 레지스터(700-708)의 정합(MATCH) 출력이 HI로 유지되어 정합 조건을 나타내면, 제2 클럭(SECOND CLOCK)이 HI로 될 때 NOR 게이트(712)는 출력이 논리 LOW가 되고 NOR 게이트(714)의 출력이 HI가 되도록 한다. 비트 레지스터(700-708)의 정합(MATCH) 출력이 정합 조건을 나타내지 않고 NOR 게이트(712)로의 모든 다른 입력도 또한 정합 조건을 나타내지 않는 때에는, NOR 게이트(712)의 출력은 HI로 되어 NOR 게이트(714)의 기능을 억제할 것이다. NOR 게이트(714)의 출력은 LOW로 될 것이다. 이와 같은 방식으로 다중-입력 NOR 구조는 제2 클럭을 출력하는데, 비트 레지스터(700-708)의 제2 래치가 자신의 정합선 또는 임의의 덜 최근의 5-비트 레지스터의 정합선이 양의 정합 조건을 나타낼 때 제2 클럭에 의해서 갱신되도록 할 것이다.
도 8a는 제2 클럭 발생 회로(800)의 회로도이다. 제2 클럭 발생 회로(800)는 도 5의 스택 궤환 회로의 스택 궤환 신호와, 레지스터 부하를 정합시키는 궤환 신호에 부하를 제공하는 다중-입력 NOR 구조, 및 추적(tracking) 신호 지연을 사용하는데, 추적 신호 지연은 제1 레지스터 스택(212) 내에 최악의 경우인 다중-입력 NOR 이 정착된 이후까지 제2 클럭 신호의 발생을 지연시키는 레지스터 비교 동작의 진행을 반영하는데 사용된다. 제2 클럭 발생 회로(800)는 32-입력 NOR 게이트(802) 및 인버터 게이트(804 및 806)를 포함한다. 제1 레지스터 스택(212)의 스택 궤환 신호가 LOW가 되어 각각의 레지스터가 RTZ T/C 엔트리 주소 버스(220 및 218) (도 2에 도시됨) 상에 엔트리 주소를 입력받았음을 알리면, NOR 게이트(802)는 출력 HI로 되게 하여 인버터 게이트(806)의 출력이 HI로 되도록 한다. 따라서, 제2 클럭 발생 회로(800)의 제2 클럭(SECOND CLOCK) 출력은 32-레지스터 스택 (즉 제1 레지스터 스택(212)) 내의 각각의 레지스터가 RTZ T/C 엔트리 주소 버스(220 및 218) 상에 엔트리 주소를 입력받고 비교 동작을 수행한 이후에 설정될 것이며, 최악의 레지스터에 대한 비교 동작이 완료된다. 궤환 신호는 제1 레지스터 스택 내의 가장 느린 정합선 신호를 자극하여 상기 최악의 시나리오가 만족되는 것이 보장되도록 설계된다. 최악의 레지스터는 비교 동작을 수행하는 스택 내의 최후 레지스터이다. 도 8b는 본질적으로는 도 8a의 회로와 동일한 것이지만, 인버터(808)에 SNOOPN 입력이 부가되어 있을 뿐이다. 회로는 또한 스누프 동작의 성능을 고려한다는 점만 빼고는 도 8a의 회로와 동일한 기능을 수행하며 도 8a 회로를 대체할 수 있도록 도시되어 있다.
도 9에는 5-비트 레지스터 엔트리 주소의 단일 비트용의 제2 MRU 레지스터(214)의 회로도가 도시되어 있다. 제2 MRU 레지스터(214)는 인버터 게이트(902-914), PFET 소자(916 및 922), 및 NFET 소자(918 및 920)를 포함한다. 제2 MRU 레지스터(214)는 단일 RS 플립-플롭(flip-flop)을 포함하도록 구성되어 있다. 제2 MRU 레지스터(214)는 RTZ 보수 주소 비트 (RTZ ADDRESS COMP), RTZ 참 주소 비트 (RTZ ADDRESS TRUE), 및 리셋 로우(RESET LOW)와 리셋 하이(RESET HI)를 입력으로 한다. 리셋 로우(RESET LOW) 입력단 및 리셋 하이(RESET HI) 입력단은 제2 MRU 레지스터(214) 출력 MRU 엔트리 비트를 논리 LOW 또는 논리 HI 레벨로 리셋시키는 기능을 한다. 제2 MRU 레지스터(214)는 버스(218 및 220) (도 2에 도시됨) 상에 RTZ T/C 엔트리 주소가 발생되면 자동적으로 갱신하고, 제2 클럭 신호의 발생이 갱신될 때까지 기다릴 필요가 없기 때문에 제1 레지스터 스택(212) (도 2에 도시됨) 내의 MRU 레지스터보다 신속하게 갱신된 MRU 엔트리를 제공한다. 제2 MRU 레지스터(214)는 또한 스누프 비교 동작에 대해서도 갱신할 것이다.
도 10a 및 10b를 참조하면, 스투프 사이클 동안 LRU 스택 갱신을 억제하기 위한 논리 회로를 포함하는 LRU 스택 갱신 회로(1000)의 회로도가 도시되어 있다. 정상 동작의 일부로서, 제1 레지스터 스택(212)은 비교 및 주소 기록 동작을 위해서 그 레지스터를 갱신할 것이다. 더욱이, 스누프 주소 비교 동작 중에는 캐쉬 메모리의 데이터 출력이 억제된다. 회로(1000)는 스택 제어 논리 회로(114) 내에 배치되고, 비교 입력단 (CMPD), 스누프 상태 입력단 (SNOOPN), 주소 기록 억제 입력단 (AWENB), 리셋 입력단 (RESET), 및 클럭 입력단 (REGCLK2)을 포함한다. 회로(1000)는 인버터 게이트(1002-1024 및 1028-1032), PFET 소자(1034-1040, 1043, 1044, 1050, 및 1052), NFET 소자(1042, 1046, 1048, 1054-1058), NAND 게이트(1024, 1026, 1060, 및 1062), NOR 게이트(1064 및 1066)를 포함한다. 회로(1000)는 주소 기록 동작이 캐쉬 메모리 내에서 억제되거나 또는 주소 비교 동작이 수행되고 있을 때 STKUPDATN 출력을 생성한다. 그러나 SNOOPN 입력단이 상기 동작이 스누프 사이클 동안 일어나고 있음을 알리면 출력을 억제한다.
출력 STKUPDATN은 입력 전이 (이 경우에는 CMPD의 상승 에지)로부터 시작된 단일 펄스에 의해서 활성화된다. 입력 전이는 SNOOPN이 HI일 때 두 개의 서로 다른 가지 아래로 NOR 게이트(1064)까지 전달되어 내려간다. 특히, 제1 가지는 NAND 게이트(1062)를 포함하고, 제2 가지는 NAND 게이트(1060) 및 인버터(1018-1022)를 포함한다. 상기 두 개의 가지 간 전달 시간의 차이는 STKUPDATN을 활성화하는 단일 펄스 출력의 폭을 결정한다. 마찬가지로, SNOOPN이 HI인 동안의 입력단 AWENB 상의 상승 에지는 단일 펄스 출력이 출력 STKUPDATN을 활성화하도록 할 것이다. PFET 및 NFET 소자(1043-1056)는 인버터(1018-1022 및 1028-1032)를 통한 회로 지연을 더욱 지연시켜서 펄스 폭을 증가시키는 기능을 한다. 따라서, 본 회로(1000)는 상승 에지가 AWENB 또는 CMPD 입력단 상에서 검출되면 출력 STKUPDATN을 활성화하여 스택 제어 논리 회로(114)가 제1 레지스터 스택(212)를 갱신하도록 할 것이다. 출력 STKUPDATN은 제2 레지스터 클럭에 의해서 리셋된다.
도 10c는 도 10a 및 도 10b 회로의 다른 실시예를 도시한 것이다. 특히, 도 10c에 도시된 회로(1099)는 비교 동작의 수행 및 출력 인에이블(OE) 입력과 주소 기록 동작의 수행 및 시스템 주소 유효 비트의 상태에 기초하여 제1 레지스터 스택(212) (도 2a 및 도2b에 도시됨)의 갱신을 억제하기 위한 논리 회로를 포함한다. 회로(1099)는 인버터 게이트(1082-1098), NAND 게이트(1079 및 1080), NOR 게이트(1075-1078), NFET 소자(1071-1074), 및 PFET 소자(1067-1070)를 포함한다. 회로(1099)는 또한 리셋 미스 MISSRST 입력단, 리셋 RESET 입력단, LRU 참 및 보수 궤환 LRUTCFB 입력단, 비교 CMPD 입력단, 출력 인에이블(OE) 입력단, 유효 비트 상태 LBVALID0 입력단 및 LBVALID1 입력단, 및 주소 기록 인에이블 클럭 AWECLK 입력단과 출력 STKUPDATN을 포함한다. 출력 STKUPDATN은 MISSRST 또는 RESET가 HI 인 때에는 언제나 NOR 게이트(1076) 및 PFET 소자(1067)를 통하여 논리 HI 레벨로 리셋된다. 출력 STKUPDATN은 또한 입력단 LRUTCFB가 인버터 게이트(1086) 및 PFET 소자(1068)를 통해 HI일 때면 언제나 리셋된다.
출력 STKUPDATN은 회로(1099)의 두가지 시나리오 하에서 LOW로 정해질 수 있다. 제1 시나리오는 도 10a 및 도 10b 회로의 동작과 유사하며, 출력 인에이블(OE) 입력 신호가 HI인 동안 입력 전이, 이 경우에는 CMPD의 상승 에지로부터 시작된 단일 펄스에 의해서 활성화된다. 출력 인에이블(OE) 신호는 캐쉬 제어기에 의해서 발생된다. 캐쉬 내에서 스누프 비교 동작이 수행되면, 스누프 비교 동작 동안 아무런 데이터도 참조되지 않기 때문에 (OE)를 사용하여 캐쉬 데이터 출력을 억제한다. 또한, CMPD 신호가 CTKUPDATN 신호를 활성화하는 펄스를 생성하는 것을 막을 것이다. 입력 전이는 두 개의 서로 다른 가지를 따라서 NOR 게이트(1075)로 전달되어 내려갈 것이다. 제1 가지는 NAND 게이트(1079)를 포함하고, 제2 가지는 NAND 게이트(1080), 인버터 게이트(1088-1092), PFET 소자(1069 및 1070), 및 NFET 소자(1073 및 1074)를 포함한다. NOR 게이트(1075)의 출력은 NFET 소자(1072)로 단일 펄스를 입력하고, NFET 소자(1072)는 출력 STKUPDATN을 LOW 상태로 만들 것이다. 상기 두 가지 간의 전달 시간 차는 STKUPDATN을 활성화시키는 단일 펄스 출력의 폭을 결정한다. 제2 시나리오에서는, 유효 비트 상태 입력단 LBVALID0 및 LBVALID1이 HI 동안의 입력단 AWECLK 상의 상승 에지는 NOR 게이트(1077)로부터 NFET 소자(1071)로의 단일 펄스 출력을 생성할 것이다. 따라서, 회로(1099)는 CMPD 또는 AWECLK 입력단 상에서 상승 에지가 검출될 때 STKUPDATN을 LOW로 함으로써 활성화시킬 것이고, 스택 제어 논리 회로(114)가 제1 레지스터 스택(212)를 갱신하도록 할 것이다. 따라서, 출력 인에이블(OE) 입력 신호가 LOW이거나, 또는 유효 비트 상태 입력단 LBVALID0 및 LBVALID1이 모두 LOW인 동안 제1 레지스터 스택의 갱신이 억제될 것이다.
도 11a 및 도 11b를 참조하면, 무효 엔트리 상태 또는 플래그 신호를 생성하기 위한 회로(1000)의 회로도가 도시되어 있다. 회로(1100)는 스택 제어 논리 회로(114) 내에 배치되어 있으며, 이중 인에이블된 인버터 회로(1156-1162), NAND 게이트(1150-1154), 및 인버터 게이트(1133)를 포함한다. 이중 인에이블된 인버터 회로(1156)는 인버터 게이트(1179 및 1180), PFET 소자(1163 및 1164), 및 NFET 소자(1171 및 1172)를 포함한다. 이중 인에이블된 인버터 회로(1158-1162)는 이중 인에이블된 인버터 회로(1156)과 동일한 구성이다. 이중 인에이블된 회로(1156)는 인버터 게이트(1187 및 1188)를 통하여 LBVALID0 및 PHI2 입력단을 갖는다.
동작중에는, 회로(1100)는 주소 기록 사이클 동안에 유효 비트 정보를 사용하여 주소 무효화 동작을 식별하고 제1 레지스터 스택(212) (도 2에 도시됨)의 갱신을 억제한다. 특히, 인에이블 신호 PHI2 및 AWED가 나타나면, 유효 상태 비트 LBVALID1 및 LBVALID1이 비교된다. 이러한 조건 하에서는, LBVALID0 및 LBVALID1이 논리 레벨 HI일 때, INVALNB는 LOW로 될 것이다. 이것은 제1 레지스터 스택(212)가 MRU 엔트리 레지스터 REG.0로 무효화 엔트리를 입력하는 것을 억제한다. INVALNB 출력은 도 2b의 카운터 제어부(204)로 입력되며, 제2 레지스터 스택이 무효화 엔트리 주소 정보를 포함하고 있음을 알리는 플래그 역할을 한다. INVALINB 신호는 레지스터 I/O 다중화기(242)가 RTZ T/C 엔트리 주소 버스(220 및 218)로부터 제2 레지스터 스택(210)으로 엔트리 주소 정보를 입력하도록 할 것이다.
도 11c에는 주소 기록(AWED) 입력단 및 유효 비트 입력단(LBVALID0 및 LBVALID1)에 기초하여 주소 무효 사이클을 결정하는 도 11a 및 도 11b 회로이 일부에 관한 다른 실시예가 도시되어 있다. 도 11c의 회로(1199)는 주소 기록 인에이블 AWED 입력단 및 스누프 입력단 SNOOPN에 기초하여 주소 무효화 사이클이 수행되고 있는지 여부를 결정한다. 본 회로는 인버터 게이트(1160) 및 NAND 게이트(1162)를 포함한다. AWED 입력단이 HI이고 SNOOPN 입력단이 LOW일 때 출력단 INVALNB는 활성 LOW이며, 이에 따라 캐쉬 내의 주소 기록 동작이 스누프 동작이 캐쉬 내에서 일어나는 것과 동일한 시간 동안에 발생함을 알린다.
본 발명이 그 실시예의 설명에 의해 기술되었으며, 본 실시예는 상세하게 설명되었지만, 첨부된 청구범위의 범위를 그러한 기술된 내용으로 제한하거나 한정하려는 것은 아니다. 부가적인 효과와 변형이 당업자에게 자명할 것이다. 예를 들면, 제2 레지스터 스택은 무효화 엔트리 주소를 보유하기 위해서 임의의 개수의 레지스터를 포함할 수 있고, 제1 레지스터 스택은 32 레지스터보다 크거나 작을 수 있다. 따라서, 본 발명은 특정한 내용, 표현상의 장치, 및 도시되고 설명된 예시에 넓은 관점에서 국한되지 않는다. 따라서, 출원인의 일반적인 발명의 사상의 본질과 범위를 벗어나지 않고 상술된 상세한 내용의 변경이 가능할 것이다.

Claims (29)

  1. 컴퓨터 내에서 최저 최근 사용(Least Recently Used) 교체 메카니즘을 수행하는 방법으로서, 상기 컴퓨터는 주소 목록 주소 지정 가능(address content addressable) 메모리, 및 한 개 이상의 N 가장 최근 사용된 엔트리 레지스터, N + 1 다음으로 최근 사용된 엔트리 레지스터, 및 N + Z 최소 최근 사용된 엔트리 레지스터를 포함하는 레지스터 스택을 포함하고, 여기서 N은 0보다 크거나 같은 임의의 정수이며, Z는 2보다 크거나 같은 임의의 정수이고, 각각의 레지스터는 엔트리 주소를 표시할 수 있는 이진수를 포함하는 목록을 포함하는 교체 메카니즘을 수행하는 방법에 있어서,
    (a) 주소 목록 주소 지정 가능 메모리 내에서 캐쉬 메모리 액세스 동작이 수행되고 있는지를 결정하는 단계,
    (b) 비교 동작이 주소 목록 주소 지정 가능 메모리 내에 양의 정합(match)이 있음을 알리면, 새로운 엔트리 주소를 생성하는 단계,
    (c) 상기 새로운 엔트리 주소를 레지스터 스택 내의 복수의 엔트리 주소 비교기로 전달하는 단계,
    (d) 상기 새로운 엔트리 주소를 N번째 레지스터를 제외한 레지스터 스택의 레지스터 각각에 기억된 엔트리 주소와 비교하는 단계,
    (f) 상기 엔트리 주소를 포함하는 레지스터 스택 내의 N + M 레지스터를 식별하는 단계로서, M은 1 내지 Z의 범위 내에 있는 단계, 및
    (g) 레지스터 N 내지 N + M - 1의 내용을 레지스터 N + 1 내지 N + M으로 이동시키면서, 상기 새로운 엔트리 주소는 N번째 레지스터로 이동시키는 단계
    를 포함하는 방법.
  2. 제1항에 있어서,
    주소 목록 주소 지정 가능 메모리 내에서 캐쉬 메모리 액세스 동작이 수행되고 있는지를 결정하는 상기 단계는 비교 동작이 주소 목록 주소 지정 가능 메모리 내에서 수행되고 있는지를 결정하는 단계를 포함하는 방법.
  3. 제1항에 있어서,
    주소 목록 주소 지정 가능 메모리 내에서 캐쉬 메모리 액세스 동작이 수행되고 있는지를 결정하는 상기 단계는 주소 기록 동작이 주소 목록 주소 지정 가능 메모리 내에서 수행되고 있는지를 결정하는 단계를 포함하는 방법.
  4. 주소 목록 주소 지정 가능 메모리, 동적 엔트리 주소 버스, LRU 레지스터 스택, 스택 제어 논리 회로를 구비하며, 제1 레지스터 스택은 엔트리 주소를 기억하기 위한 한 개 이상의 N 및 N + 1 다음 엔트리 레지스터를 포함하고, N은 0보다 크거나 같은 임의의 정수이고 N 및 N + 1 다음 엔트리 레지스터는 엔트리 주소를 포함하는 다-방향(multi-way) 캐쉬 메모리 시스템에서, 다-방향 캐쉬 메모리용 최소 최근 사용 교체 알고리즘을 구현하는데 사용된 레지스터 스택 내의 무효화 엔트리 또는 방향 주소(way address)를 처리하는 방법에 있어서, 상기 방법은 스누프(snoop) 사이클로 인한 스누프 비교 동작 동안 LRU 레지스터 스택의 갱신을 억제하는 단계를 포함하며, 상기 단계는
    (a) 상기 주소 목록 주소 지정 가능 메모리 내의 캐쉬 메모리 액세스 동작을 감지하는 단계,
    (b) 상기 주소 목록 주소 지정 가능 메모리 내의 스누프 사이클을 감지하는 단계, 및
    (c) 상기 주소 목록 주소 지정 가능 메모리 내에서 수행되고 있는 캐쉬 메모리 동작 및 상기 주소 목록 주소 지정 가능 메모리 내에서 수행되고 있는 스누프 사이클에 응답하는 억제(inhibit) 신호를 생성하는 단계를 포함하며,
    상기 억제 신호를 생성하는 단계는
    (1) 상기 주소 목록 주소 지정 가능 메모리 내의 주소 비교 동작을 감지하는 단계 또는
    (2) 상기 주소 목록 주소 지정 가능 메모리 내의 주소 기록 동작을 감지하는 단계
    를 포함하는 방법.
  5. 제4항에 있어서,
    상기 억제 신호를 생성하는 단계는 엔트리 주소 무효화 동작이 시작되는지 여부를 결정하기 위한 주소 기록 인에이블(enable) 신호를 감지하는 단계를 더 포함하는 방법.
  6. 주소 목록 주소 지정 가능 메모리, 동적 엔트리 주소 버스, 제1 레지스터 스택, 제2 레지스터 스택, 스택 제어 논리 회로, 카운터, 상기 제1 레지스터 스택 및 상기 제2 레지스터 스택과 회로적으로 통신하고 있는 다중화기를 구비하며, 상기 제1 레지스터 스택은 엔트리 주소를 기억하기 위한 한 개 이상의 N 및 N + 1 다음 엔트리 레지스터를 포함하고, N은 0보다 크거나 같은 임의의 정수이고 N 및 N + 1 다음 엔트리 레지스터는 엔트리 주소를 포함하며, 상기 제2 레지스터 스택은 무효화 엔트리 주소를 기억하기 위한 한 개 이상의 M 무효화 엔트리 레지스터를 포함하고, M은 0보다 크거나 같은 임의의 정수인 다-방향(multi-way) 캐쉬 메모리 시스템에서, 다-방향 캐쉬 메모리용 최소 최근 사용 교체 알고리즘을 구현하는데 사용된 레지스터 스택 내의 무효화 엔트리 또는 방향 주소를 처리하는 방법에 있어서,
    (a) 스택 제어 논리 회로 내의 주소 무효화 동작을 감지하는 단계로서, 상기 스택 제어 논리 회로 내의 주소 무효화 동작을 감지하는 단계는
    (1) 주소 기록 동작을 감지하는 단계, 및
    (2) 스누프 사이클을 감지하는 단계
    를 포함하는 단계,
    (b) 상기 동적 엔트리 주소 버스 상의 시스템 주소에 대응되는 엔트리 주소를 출력하는 단계,
    (c) 상기 스택 제어 논리 회로로부터 무효화 엔트리 주소 신호를 출력하는 단계,
    (d) 상기 엔트리 주소를 카운터 값(counter value)에 따라 상기 다중화기를 통하여 상기 M 레지스터로 향하게 하는 단계,
    (e) 상기 제2 레지스터 스택이 한 개 이상의 엔트리 주소를 포함하는 것을 인식하는 단계, 및
    (f) 상기 제2 레지스터 스택 내에 기억된 엔트리 주소의 개수를 나타내는 카운터를 증가시키는 단계
    를 포함하는 방법.
  7. 제6항에 있어서,
    상기 제2 레지스터 스택은 한 개 이상의 M + 1 무효화 엔트리 레지스터를 더 포함하고
    상기 방법은 상기 제2 레지스터 스택이 한 개 이상의 엔트리 주소를 포함하면 상기 M 무효화 엔트리 레지스터의 내용을 상기 M + 1 무효화 엔트리 레지스터로 이동시키는 단계를 더 포함하는 방법.
  8. 제6항에 있어서,
    상기 주소 무효화 동작을 감지하는 단계는
    (a) 주소 기록 동작을 감지하는 단계, 및
    (b) 유효 비트 상태 정보를 감지하는 단계
    를 더 포함하는 방법.
  9. 제6항에 있어서,
    상기 제1 레지스터 스택내의 갱신 동작을 억제하는 단계를 더 포함하는 방법.
  10. 제6항에 있어서,
    상기 제2 레지스터 스택으로부터 엔트리 주소를 출력하는 단계를 더 포함하는 방법.
  11. 제6항에 있어서,
    새로운 엔트리 주소 정보를 기억하기 위해서 무효화 엔트리 주소를 사용함에 따라 카운터를 감소시키는 단계를 더 포함하는 방법.
  12. 주소 목록 주소 지정 가능 메모리, 동적 엔트리 주소 버스, 제1 레지스터 스택, 제2 레지스터 스택, 스택 제어 논리 회로, 카운터, 상기 제1 레지스터 스택 및 상기 제2 레지스터 스택과 회로적으로 통신하고 있는 다중화기를 구비하며, 상기 제1 레지스터 스택은 엔트리 주소를 기억하기 위한 한 개 이상의 N 및 N + 1 다음 엔트리 레지스터를 포함하고, N은 0보다 크거나 같은 임의의 정수이고 N 및 N + 1 다음 엔트리 레지스터는 엔트리 주소를 포함하며, 상기 제2 레지스터 스택은 무효화 엔트리 주소를 기억하기 위한 한 개 이상의 M 무효화 엔트리 레지스터를 포함하고, M은 0보다 크거나 같은 임의의 정수인 다-방향(multi-way) 캐쉬 메모리 시스템에서, 다-방향 캐쉬 메모리용 최소 최근 사용 교체 알고리즘을 구현하는데 사용된 레지스터 스택 내의 무효화 엔트리 또는 방향 주소를 처리하는 방법에 있어서,
    (a) 상기 주소 목록 주소 지정 가능 메모리 내에 기억된 시스템 주소를 무효화시키는 단계,
    (b) 상기 주소 목록 주소 지정 가능 메모리로부터 상기 동적 엔트리 주소 버스로 무효화 엔트리 주소를 출력하는 단계,
    (c) 상기 무효화 엔트리 주소를 상기 동적 엔트리 주소 버스로부터 상기 제2 레지스터 스택의 M 무효화 엔트리 레지스터로 입력하는 단계,
    (d) 상기 제2 레지스터 스택이 한 개 이상의 엔트리 주소를 포함한다는 것을 나타내는 플래그(flag)를 셋팅하는 단계,
    (e) 상기 제2 레지스터 스택 내에 기억된 엔트리 주소의 개수를 나타내는 카운터를 증가시키는 단계,
    (f) 상기 N 엔트리 레지스터 내의 주소 정보를 상기 제1 레지스터 스택 내의 N + 1 다음 엔트리 레지스터로 이동시키는 단계, 및
    (g) 후속하는 엔트리 주소를 상기 제1 레지스터 스택의 N 엔트리 레지스터 내에 기억시키는 단계
    를 포함하는 방법.
  13. 제12항에 있어서,
    상기 제2 레지스터 스택 내에 기억된 엔트리 주소 정보를 출력하는 단계를 더 포함하는 방법.
  14. 제13항에 있어서,
    상기 제2 레지스터 스택 내에 기억된 엔트리 주소의 개수를 나타내는 카운터를 감소시키는 단계를 더 포함하는 방법.
  15. 제12항에 있어서,
    상기 제1 레지스터 스택의 N + 1 다음 엔트리 레지스터 내에 스누프 사이클에 의해서 기억된 엔트리 주소로 표시되는 시스템 주소를 무효화시키는 단계는
    (a) 상기 주소 목록 주소 지정 가능 메모리 내의 주소 기록 동작을 감지하는 단계, 및
    (b) 상기 시스템 주소와 연관된 유효 비트 상태 정보를 감지하는 단계
    를 포함하는 방법.
  16. 캐쉬 메모리용 최소 최근 사용 교체 알고리즘 아키텍처에 있어서,
    (a) 시스템 주소와 방향 주소간의 대응 관계를 유지하기 위한 N-방향 주소 지정 가능 목록 주소 지정 가능 메모리,
    (b) 상기 N-방향 주소 지정 가능 목록 주소 지정 가능 메모리와 회로적으로 통신하며 데이터를 기억하기 위한 N-방향 데이터 어레이(array),
    (c) 엔트리 주소를 기억하기 위한 N-엔트리 레지스터 스택으로서, 상기 N-엔트리 레지스터 스택은 한 개 이상의 제1 레지스터, 중간(intermediate) 레지스터, 및 최종 레지스터를 포함하고, 각각의 레지스터는 목수의 비트를 포함하며, 상기 복수의 비트는 상기 주소 지정 가능 목록 주소 지정 가능 메모리 내에 기억된 각 엔트리의 이진 주소와 연관된 수개의 비트를 포함하고,
    상기 중간 레지스터 및 최종 레지스터 내에 새로운 엔트리 주소를 상기 기억된 엔트리 주소와 비교하기 위한 비교기를 더 포함하며,
    상기 제1 레지스터는 가장 최근에 사용된 엔트리의 주소를 포함하고,
    상기 중간 레지스터는 다음으로 최근에 사용된 엔트리의 주소를 포함하며,
    상기 최종 레지스터는 가장 오래 전에 사용된 엔트리의 주소
    를 포함하는 N-엔트리 레지스터 스택,
    (d) 가장 최근에 사용된 엔트리의 주소를 기억하기 위한 제2 레지스터,
    (e) N 인코더를 포함하는 복수의 엔트리 주소 인코더로서, 각각의 인코더는
    (1) 상기 데이터 어레이와 회로적으로 통신하며 상기 데이터 어레이로부터 방향 선택 신호를 입력받기 위한 제1 입력단,
    (2) 상기 주소 지정 가능 목록 주소 지정 가능 메모리와 회로적으로 통신하며 상기 주소 지정 가능 목록 주소 지정 가능 메모리로부터 기록 방향 선택 신호를 입력받기 위한 제2 입력단, 및
    (3) 엔트리 주소 버스와 회로적으로 통신하며 엔트리 주소 정보를 출력하기 위한 출력단
    을 포함하는 복수의 엔트리 주소 인코더,
    (f) 상기 N-엔트리 레지스터 스택과 회로적으로 통신하며 상기 N-엔트리 레지스터 스택을 제어하기 위한 레지스터 스택 제어 논리 회로,
    (g) 상기 데이터 어레이와 회로적으로 통신하며, 상기 데이터 어레이가 정보의 소정 데이터를 포함하는지 여부를 나타내기 위한 것으로서, 상기 주소 목록 주소 지정 가능 메모리로부터의 복수의 워드선 출력단과 회로적으로 통신하는 복수의 워드선 입력단을 포함하는 워드선(wordline) NOR 회로,
    (h) 상기 레지스터 스택 제어 논리 회로 및 N-엔트리 레지스터 스택과 회로적으로 통신하며, 상기 N-엔트리 레지스터 스택에서 수행되는 비교 동작의 진행을 상기 레지스터 스택 제어 논리 회로로 피드백(feed back)시키기 위한 레지스터 스택 궤환 회로,
    (i) 상기 엔트리 주소 인코더 및 N-엔트리 레지스터 스택과 회로적으로 통신하며, 상기 엔트리 주소 인코더를 N-엔트리 레지스터 스택과 통신시키기 위한 엔트리 주소 드라이버(driver) 회로, 및
    (j) 상기 N-엔트리 레지스터 스택 및 엔트리 주소 드라이버 회로와 회로적으로 통신하며 영 복귀(return-to-zero) 엔트리 주소를 상기 N-엔트리 레지스터 스택으로 전달하기 위한 엔트리 주소 버스
    를 포함하는 최소 최근 사용 교체 아키텍처.
  17. 제16항에 있어서,
    각각의 레지스터는 비트 레지스터를 더 포함하고, 상기 비트 레지스터는
    (a) 참 및 보수 엔트리 주소 비트를 기억하기 위한 제1 래칭(latching) 회로,
    (b) 상기 제1 래칭 회로와 회로적으로 통신하며, 입력단 및 출력단을 포함하는 참 및 보수 엔트리 주소 비트를 기억하기 위한 제2 래칭 회로, 및
    (c) 상기 제2 래칭 회로의 출력을 상기 엔트리 주소 버스 상의 참 및 보수 엔트리 주소와 비교하기 위한 비교 회로
    를 구비하는 아키텍처.
  18. 제16항에 있어서,
    상기 엔트리 주소 드라이버 회로는
    (a) 엔트리 주소를 입력하기 위한 엔트리 주소 비트 회로,
    (b) 엔트리 주소 비트를 출력하기 위한 출력단, 및
    (c) 상기 출력을 엔트리 주소 비트 회로의 함수로 리셋하도록 구성된 자가-타이밍된(self-timed) 리셋 회로
    를 포함하는 아키텍처.
  19. 제16항에 있어서,
    상기 레지스터 스택 궤환 회로는
    (a) 참 및 보수 엔트리 비트 입력 회로,
    (b) 스택 궤환 출력 회로, 및
    (c) 상기 스택 궤환 출력 회로와 회로적으로 통신하며 전달 지연을 발생시키기 위한 복수의 인버터 게이트를 포함하는 리셋 회로
    를 포함하는 아키텍처.
  20. 최소 최근 사용 교체 알고리즘으로 무효 엔트리 또는 방향 데이터를 처리하기 위한 캐쉬 메모리 장치에 있어서,
    (a) 한 개 이상의 N 및 N + 1 다음 레지스터를 포함하며, 여기서 N은 0보다 크거나 같은 임의의 정수이고, 주소 정보를 기억하기 위한 제1 레지스터,
    (b) 엔트리 주소를 참 및 보수 엔트리 주소로 인코딩(encoding)하기 위한 동적 엔트리 주소 인코더,
    (c) 자가-타이밍된 참 엔트리 버스 및 자가-타이밍된 보수 엔트리 주소 버스를 생성하기 위한 자가-타이밍된 반전 동적 엔트리 주소 인버터 드라이버 회로,
    (d) 상기 동적 엔트리 주소 인코더 및 상기 자가-타이밍된 반전 동적 엔트리 주소 인버터 회로와 회로적으로 통신하며 참 및 보수 엔트리 주소를 전달하기 위한 동적 엔트리 주소 버스,
    (e) 상기 자가-타이밍된 반전 동적 엔트리 주소 인버터 드라이버 회로와 회로적으로 통신하며 제1 레지스터 스택 비교 동작의 진행을 측정하기 위한 자가-타이밍된 제1 레지스터 스택 궤환 회로,
    (f) 상기 자가-타이밍된 제1 레지스터 스택 궤환 회로, 동적 엔트리 주소 인코더, 및 상기 제1 레지스터 스택과 회로적으로 통신하며, 상기 제1 레지스터 스택 입력단 및 출력단을 제어하기 위한 스택 제어 논리 회로,
    (g) 상기 스택 제어 논리 회로 및 자가-타이밍된 반전 동적 엔트리 주소 인버터 회로와 회로적으로 통신하며 가장 최근에 사용된 엔트리 주소를 기억하기 위한 MRU 레지스터,
    (h) 상기 자가-타이밍된 반전 동적 엔트리 주소 인버터 회로와 회로적으로 통신하며 주소 정보를 기억하기 위한 제2 레지스터 스택, 및
    (i) 상기 스택 제어 논리 회로와 회로적으로 통신하며 상기 LRU 다중화기를 제어하기 위한 카운터 제어 회로
    를 포함하는 캐쉬 메모리 장치.
  21. 제20항에 있어서,
    상기 제1 레지스터 스택은 비트 레지스터를 더 포함하고, 상기 비트 레지스터는
    (a) 참 및 보수 엔트리 주소 비트를 기억하기 위한 제1 래칭(latching) 회로,
    (b) 상기 제1 래칭 회로와 회로적으로 통신하며, 입력단 및 출력단을 포함하는 참 및 보수 엔트리 주소 비트를 기억하기 위한 제2 래칭 회로, 및
    (c) 상기 제2 래칭 회로의 출력을 참 및 보수 엔트리 주소 비트와 비교하기 위한 비교 회로
    를 구비하는 캐쉬 메모리 장치.
  22. 제20항에 있어서,
    상기 동적 엔트리 주소 인코더는 상기 동적 엔트리 주소 버스를 방전하기 위한 방전 회로로서, 워드선 입력단을 포함하는 방전 회로를 포함하는 캐쉬 메모리 장치.
  23. 제20항에 있어서,
    상기 자가-타이밍된 반전 동적 엔트리 주소 인버터 드라이버 회로는
    (a) 엔트리 주소를 입력하기 위한 엔트리 주소 비트 회로,
    (b) 엔트리 주소 비트를 출력하기 위한 출력단, 및
    (c) 상기 출력을 상기 스택 궤환의 함수로 리셋하도록 구성된 자가-타이밍된 리셋 회로
    를 포함하는 캐쉬 메모리 장치.
  24. 제20항에 있어서,
    상기 자가-타이밍된 제1 레지스터 스택 궤환 회로는
    (a) 참 및 보수 엔트리 비트 입력 회로,
    (b) 스택 궤환 출력 회로, 및
    (c) 상기 스택 궤환 출력 회로와 회로적으로 통신하며 전달 지연을 발생시키기 위한 복수의 인버터 게이트를 포함하는 리셋 회로
    를 포함하는 캐쉬 메모리 장치.
  25. 제20항에 있어서,
    상기 스택 제어 논리 회로는
    (a)상기 제1 레지스터 스택의 갱신 동작을 억제하기 위한 스택 갱신 회로로서, 상기 스택 갱신 회로는
    (1) 비교 엔트리 주소 상태 신호의 상태를 감지하기 위한 비교 엔트리 주소 동작 입력 회로,
    (2) 스누프 동작 상태 신호의 상태를 감지하기 위한 스누프 동작 입력 회로,
    (3) 주소 기록 신호의 상태를 감지하기 위한 주소 기록 인에이블 입력 회로, 및
    (4) 스택 갱신 출력 신호를 발생하기 위한 스택 갱신 출력단을 포함하는 스택 갱신 회로,
    (b) 무효화 엔트리 주소 상태 신호를 발생하기 위한 주소 기록 동작 입력 회로로서, 상기 무효화 엔트리 주소 상태 회로는
    (1) 엔트리 주소 유효 상태 비트의 상태를 입력하기 위한 유효 비트 상태 입력 회로, 및
    (2) 무효화 엔트리 주소 상태 신호를 발생하기 위한 무효화 엔트리 주소 상태 출력 회로
    를 포함하는 캐쉬 메모리 장치.
  26. 제20항에 있어서,
    상기 MRU 레지스터는
    (a) 참 엔트리 주소 비트를 입력받기 위한 참 엔트리 주소 비트 입력 회로,
    (b) 보수 엔트리 주소 비트를 입력받기 위한 보수 엔트리 주소 비트 입력 회로,
    (c) MRU 엔트리 비트를 출력하기 위한 MRU 엔트리 비트 출력단, 및
    (d) 상기 MRU 엔트리 비트 출력을 리셋하기 위한 리셋회로로서, 상기 리셋 회로는
    (1) 상기 MRU 엔트리 비트를 논리 로우 레벨(low level)로 리셋하기 위한 리셋 로우 회로, 및
    (2) 상기 MRU 엔트리 비트를 논리 하이 레벨(low level)로 리셋하기 위한 리셋 하이 회로
    를 포함하는 캐쉬 메모리 시스템.
  27. 제20항에 있어서,
    상기 제2 레지스터는 한 개 이상의 M 레지스터를 포함하고, 여기서 M은 0보다 크거나 같은 임의의 정수이며, 상기 M 레지스터는 엔트리 주소 비트를 기억하기 위한 비트 레지스터 회로를 포함하고, 상기 비트 레지스터 회로는 입력단과 출력단을 포함하는 캐쉬 메모리 장치.
  28. 제20항에 있어서,
    상기 제2 레지스터에 기억된 엔트리 주소의 수를 계수하기 위한 카운터 회로를 더 포함하는 캐쉬 메모리 장치.
  29. 제20항에 있어서,
    상기 자가-타이밍된 동적 엔트리 주소 인버터 드라이버 회로는
    (a) 엔트리 주소를 입력하기 위한 엔트리 주소 비트 회로,
    (b) 엔트리 주소 비트를 출력하기 위한 출력단, 및
    (c) 상기 출력을 엔트리 주소 비트 회로의 함수로 리셋하도록 구성된 자가-타이밍된 리셋 회로
    를 포함하는 캐쉬 메모리 장치.
KR1019970050206A 1996-12-24 1997-09-30 완전 연관 다-방향 캐쉬 메모리에서의 최소 최근 사용 교체 메카니즘 및 무효화 주소 처리용 방법 및 회로 KR100282751B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US8/772,819 1996-12-24
US08/772,819 US5809528A (en) 1996-12-24 1996-12-24 Method and circuit for a least recently used replacement mechanism and invalidated address handling in a fully associative many-way cache memory

Publications (2)

Publication Number Publication Date
KR19980063500A true KR19980063500A (ko) 1998-10-07
KR100282751B1 KR100282751B1 (ko) 2001-02-15

Family

ID=25096342

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970050206A KR100282751B1 (ko) 1996-12-24 1997-09-30 완전 연관 다-방향 캐쉬 메모리에서의 최소 최근 사용 교체 메카니즘 및 무효화 주소 처리용 방법 및 회로

Country Status (4)

Country Link
US (1) US5809528A (ko)
KR (1) KR100282751B1 (ko)
CN (1) CN1093962C (ko)
TW (1) TW374132B (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100617875B1 (ko) * 2004-10-28 2006-09-13 장성태 다중 캐쉬 구조의 다중 프로세서 시스템 및 그 원격캐쉬의 교체 방법

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6161167A (en) * 1997-06-27 2000-12-12 Advanced Micro Devices, Inc. Fully associate cache employing LRU groups for cache replacement and mechanism for selecting an LRU group
US6378047B1 (en) * 1997-07-07 2002-04-23 Micron Technology, Inc. System and method for invalidating set-associative cache memory with simultaneous set validity determination
US6105115A (en) * 1997-12-31 2000-08-15 Intel Corporation Method and apparatus for managing a memory array
US6321375B1 (en) * 1998-05-14 2001-11-20 International Business Machines Corporation Method and apparatus for determining most recently used method
US6389527B1 (en) * 1999-02-08 2002-05-14 Kabushiki Kaisha Toshiba Microprocessor allowing simultaneous instruction execution and DMA transfer
US6338120B1 (en) * 1999-02-26 2002-01-08 International Business Machines Corporation Apparatus for cache use history encoding and decoding including next lru and next mru and method therefor
US6952741B1 (en) * 1999-06-30 2005-10-04 Computer Sciences Corporation System and method for synchronizing copies of data in a computer system
US6496907B1 (en) * 1999-10-22 2002-12-17 Apple Computer, Inc. System and method for updating from a read-only to a read-write entry and concurrently invalidating stale cache copies from head-to-tail and tail-to-head directions
EP1107123B1 (en) * 1999-12-06 2007-11-21 Texas Instruments France Smart cache
EP1124199A1 (en) * 2000-02-08 2001-08-16 STMicroelectronics S.r.l. A method for processing fuzzy inferences and corresponding processing structure
US6823434B1 (en) * 2000-02-21 2004-11-23 Hewlett-Packard Development Company, L.P. System and method for resetting and initializing a fully associative array to a known state at power on or through machine specific state
US6408364B1 (en) * 2000-03-17 2002-06-18 Advanced Micro Devices, Inc. Apparatus and method for implementing a least recently used cache replacement algorithm
US6598123B1 (en) * 2000-06-28 2003-07-22 Intel Corporation Snoop filter line replacement for reduction of back invalidates in multi-node architectures
US6748492B1 (en) * 2000-08-07 2004-06-08 Broadcom Corporation Deterministic setting of replacement policy in a cache through way selection
US6732234B1 (en) 2000-08-07 2004-05-04 Broadcom Corporation Direct access mode for a cache
US6848024B1 (en) 2000-08-07 2005-01-25 Broadcom Corporation Programmably disabling one or more cache entries
US6574718B2 (en) 2001-02-28 2003-06-03 International Business Machines Corporation Excessive spin detection and avoidance for systems using a least recently used page replacement algorithm
US6748495B2 (en) 2001-05-15 2004-06-08 Broadcom Corporation Random generator
US6823427B1 (en) * 2001-05-16 2004-11-23 Advanced Micro Devices, Inc. Sectored least-recently-used cache replacement
US6801980B2 (en) 2002-04-25 2004-10-05 International Business Machines Corporation Destructive-read random access memory system buffered with destructive-read memory cache
US7266587B2 (en) * 2002-05-15 2007-09-04 Broadcom Corporation System having interfaces, switch, and memory bridge for CC-NUMA operation
US6996678B1 (en) * 2002-07-31 2006-02-07 Cisco Technology, Inc. Method and apparatus for randomized cache entry replacement
US7437532B1 (en) * 2003-05-07 2008-10-14 Marvell International Ltd. Memory mapped register file
US6973540B2 (en) * 2003-07-25 2005-12-06 Freescale Semiconductor, Inc. Method and apparatus for selecting cache ways available for replacement
KR20060063804A (ko) * 2003-09-19 2006-06-12 마쯔시다덴기산교 가부시키가이샤 캐시 메모리 및 캐시 메모리 제어 방법
CN100407168C (zh) * 2003-09-29 2008-07-30 刘志明 层次化视频点播中的磁盘缓存替换算法
US6961280B1 (en) 2003-12-08 2005-11-01 Altera Corporation Techniques for implementing address recycling in memory circuits
JP2007535058A (ja) * 2004-04-27 2007-11-29 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ キャッシュマネージメントポリシーを用いてパワー消費を低減する装置
US7321954B2 (en) * 2004-08-11 2008-01-22 International Business Machines Corporation Method for software controllable dynamically lockable cache line replacement system
US7334107B2 (en) * 2004-09-30 2008-02-19 Intel Corporation Caching support for direct memory access address translation
US20060179191A1 (en) * 2005-02-10 2006-08-10 Young David W Covert channel firewall
US7386669B2 (en) * 2005-03-31 2008-06-10 International Business Machines Corporation System and method of improving task switching and page translation performance utilizing a multilevel translation lookaside buffer
US8842127B1 (en) * 2005-04-25 2014-09-23 Apple Inc. Text rendering with improved glyph cache management
US20070223339A1 (en) * 2006-03-19 2007-09-27 Li-Lien Lin Method and apparatus for adjusting buffering of data read from optical storage medium by comparing actual position information with expected position information
CN101059775B (zh) * 2006-04-19 2010-07-14 深圳市朗科科技股份有限公司 降低便携式设备功耗的方法
CN100428200C (zh) * 2006-12-28 2008-10-22 北京时代民芯科技有限公司 一种片上指令cache的实现方法
US8788758B1 (en) * 2008-11-04 2014-07-22 Violin Memory Inc Least profitability used caching scheme
US8392661B1 (en) * 2009-09-21 2013-03-05 Tilera Corporation Managing cache coherence
CN103870204B (zh) * 2012-12-11 2018-01-09 华为技术有限公司 一种cache中数据写入和读取方法、cache控制器
US9378789B2 (en) 2014-09-26 2016-06-28 Qualcomm Incorporated Voltage level shifted self-clocked write assistance
GB2537357A (en) * 2015-04-09 2016-10-19 Imagination Tech Ltd Cache operation in a multi-threaded processor

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4361878A (en) * 1980-10-27 1982-11-30 Control Data Corporation Degradable LRU circuit
US4463424A (en) * 1981-02-19 1984-07-31 International Business Machines Corporation Method for dynamically allocating LRU/MRU managed memory among concurrent sequential processes
US4513367A (en) * 1981-03-23 1985-04-23 International Business Machines Corporation Cache locking controls in a multiprocessor
US4422145A (en) * 1981-10-26 1983-12-20 International Business Machines Corporation Thrashing reduction in demand accessing of a data base through an LRU paging buffer pool
US4783735A (en) * 1985-12-19 1988-11-08 Honeywell Bull Inc. Least recently used replacement level generating apparatus
US4843542A (en) * 1986-11-12 1989-06-27 Xerox Corporation Virtual memory cache for use in multi-processing systems
EP0309668A3 (de) * 1987-09-30 1990-02-28 Siemens Aktiengesellschaft Schaltungsanordnung zur Realisierung eines LRU (Least Recently Used)-ähnlichen Mechanismus für viele Elemente, insbesondere für Datenverarbeitungssysteme
US5055999A (en) * 1987-12-22 1991-10-08 Kendall Square Research Corporation Multiprocessor digital data processing system
JPH0786848B2 (ja) * 1989-11-01 1995-09-20 三菱電機株式会社 キャッシュメモリ
JPH03216744A (ja) * 1990-01-22 1991-09-24 Fujitsu Ltd 内蔵キャッシュ・メモリ制御方式
JPH03219326A (ja) * 1990-01-24 1991-09-26 Mitsubishi Electric Corp データ比較回路
US5163140A (en) * 1990-02-26 1992-11-10 Nexgen Microsystems Two-level branch prediction cache
DE69130233T2 (de) * 1990-03-15 1999-05-20 Sun Microsystems Inc Verfahren und gerät um ein sperrungscache einzusetzen
US5261066A (en) * 1990-03-27 1993-11-09 Digital Equipment Corporation Data processing system and method with small fully-associative cache and prefetch buffers
US5317718A (en) * 1990-03-27 1994-05-31 Digital Equipment Corporation Data processing system and method with prefetch buffers
US5031141A (en) * 1990-04-06 1991-07-09 Intel Corporation Apparatus for generating self-timing for on-chip cache
US5014195A (en) * 1990-05-10 1991-05-07 Digital Equipment Corporation, Inc. Configurable set associative cache with decoded data element enable lines
DE69130086T2 (de) * 1990-06-15 1999-01-21 Compaq Computer Corp Mehrstufeneinschluss in mehrstufigen Cache-Speicherhierarchien
ATE158882T1 (de) * 1990-06-15 1997-10-15 Compaq Computer Corp Vorrichtung zur echten lru-ersetzung
US5594885A (en) * 1991-03-05 1997-01-14 Zitel Corporation Method for operating a cache memory system using a recycled register for identifying a reuse status of a corresponding cache entry
US5339399A (en) * 1991-04-12 1994-08-16 Intel Corporation Cache controller that alternately selects for presentation to a tag RAM a current address latch and a next address latch which hold addresses captured on an input bus
GB2256512B (en) * 1991-06-04 1995-03-15 Intel Corp Second level cache controller unit and system
US5353424A (en) * 1991-11-19 1994-10-04 Digital Equipment Corporation Fast tag compare and bank select in set associative cache
US5325503A (en) * 1992-02-21 1994-06-28 Compaq Computer Corporation Cache memory system which snoops an operation to a first location in a cache line and does not snoop further operations to locations in the same line
US5493667A (en) * 1993-02-09 1996-02-20 Intel Corporation Apparatus and method for an instruction cache locking scheme
US5452440A (en) * 1993-07-16 1995-09-19 Zitel Corporation Method and structure for evaluating and enhancing the performance of cache memory systems
US5590308A (en) * 1993-09-01 1996-12-31 International Business Machines Corporation Method and apparatus for reducing false invalidations in distributed systems
US5526512A (en) * 1993-09-20 1996-06-11 International Business Machines Corporation Dynamic management of snoop granularity for a coherent asynchronous DMA cache
US5551001A (en) * 1994-06-29 1996-08-27 Exponential Technology, Inc. Master-slave cache system for instruction and data cache memories

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100617875B1 (ko) * 2004-10-28 2006-09-13 장성태 다중 캐쉬 구조의 다중 프로세서 시스템 및 그 원격캐쉬의 교체 방법

Also Published As

Publication number Publication date
CN1206150A (zh) 1999-01-27
TW374132B (en) 1999-11-11
US5809528A (en) 1998-09-15
KR100282751B1 (ko) 2001-02-15
CN1093962C (zh) 2002-11-06

Similar Documents

Publication Publication Date Title
KR100282751B1 (ko) 완전 연관 다-방향 캐쉬 메모리에서의 최소 최근 사용 교체 메카니즘 및 무효화 주소 처리용 방법 및 회로
US5717885A (en) TLB organization with variable page size mapping and victim-caching
KR100262906B1 (ko) 데이터 선인출 방법 및 시스템
US6192458B1 (en) High performance cache directory addressing scheme for variable cache sizes utilizing associativity
US5510934A (en) Memory system including local and global caches for storing floating point and integer data
US5014195A (en) Configurable set associative cache with decoded data element enable lines
US5617348A (en) Low power data translation circuit and method of operation
US5568415A (en) Content addressable memory having a pair of memory cells storing don't care states for address translation
US5845325A (en) Virtual address write back cache with address reassignment and cache block flush
US5822755A (en) Dual usage memory selectively behaving as a victim cache for L1 cache or as a tag array for L2 cache
US8156309B2 (en) Translation look-aside buffer with variable page sizes
US6425055B1 (en) Way-predicting cache memory
US6021471A (en) Multiple level cache control system with address and data pipelines
JP4065660B2 (ja) 機能が並列に分散された変換索引バッファ
US5649154A (en) Cache memory system having secondary cache integrated with primary cache for use with VLSI circuits
EP1278125A2 (en) Indexing and multiplexing of interleaved cache memory arrays
US6356990B1 (en) Set-associative cache memory having a built-in set prediction array
US6151658A (en) Write-buffer FIFO architecture with random access snooping capability
US5715427A (en) Semi-associative cache with MRU/LRU replacement
US6157980A (en) Cache directory addressing scheme for variable cache sizes
JP2001184263A (ja) 旧キャッシュラインを無効化および除去する装置
WO1991014224A1 (en) Integrated instruction queue and branch target cache
JP4445081B2 (ja) キャッシュ・メモリ
TWI308755B (en) Circuit and method for subdividing a camram bank by controlling a virtual ground
US20030163643A1 (en) Bank conflict determination

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

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee