KR100246468B1 - 자체 갱신 기능을 갖는 엘알유(lru) 메모리 - Google Patents

자체 갱신 기능을 갖는 엘알유(lru) 메모리 Download PDF

Info

Publication number
KR100246468B1
KR100246468B1 KR1019970029666A KR19970029666A KR100246468B1 KR 100246468 B1 KR100246468 B1 KR 100246468B1 KR 1019970029666 A KR1019970029666 A KR 1019970029666A KR 19970029666 A KR19970029666 A KR 19970029666A KR 100246468 B1 KR100246468 B1 KR 100246468B1
Authority
KR
South Korea
Prior art keywords
read
lru
output
input
inverter
Prior art date
Application number
KR1019970029666A
Other languages
English (en)
Other versions
KR19990005469A (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 김영환
Priority to KR1019970029666A priority Critical patent/KR100246468B1/ko
Priority to TW087110446A priority patent/TW374873B/zh
Priority to US09/107,418 priority patent/US6138211A/en
Priority to JP18542598A priority patent/JP3352947B2/ja
Publication of KR19990005469A publication Critical patent/KR19990005469A/ko
Application granted granted Critical
Publication of KR100246468B1 publication Critical patent/KR100246468B1/ko

Links

Images

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
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0853Cache with multiport tag or data arrays
    • 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/123Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • G06F13/4072Drivers or receivers
    • G06F13/4077Precharging or discharging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • G06F9/30196Instruction operation extension or modification using decoder, e.g. decoder per instruction set, adaptable or programmable decoders
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/22Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management 
    • G11C7/222Clock generating, synchronizing or distributing circuits within memory device

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

본 발명에 따르면, 캐시 메모리, TLB 및 BTB의 사용이 필수적이며 4웨이 세트 조합으로 구현되는 고성능 마이크로 프로세서에서 4웨이 세트 조합 캐시 메모리의 운용에 반드시 필요로하는 세트별 4웨이 억세스 히스토리 메모리가 의사 LRU 교체 정책을 지원할 수 있도록 구현한 것으로, 캐시 태그 블록으로부터 웨이 히트 정보를 제공받아 LRU 히스토리를 자체적으로 기록하고, LRU 히스토리를 분석하여 캐시 메모리가 4웨이에 기록할 때, 의사 LRU 교체 정책에 의한 기록 웨이를 자체적으로 제공하며, 이러한 기능들을 안정적으로 지원하기 위한 클럭로직을 포함하도록 하여, 마이크로 프로세에서의 캐시 메모리, TLB 블록, BTB 블록들의 제어 블록에 부담을 줄이고 인터페이스를 단순화시킴으로써, LRU 갱신과정을 빠르게 동작시켜 슈퍼스칼라 마이크로 프로세서의 성능을 향상시킬 수 있다.

Description

자체 갱신 기능을 갖는 엘알유(LRU) 메모리
본 발명은 4웨이 세트 조합을 지원하는 캐시 메모리의 교체(Replacement) 또는 갱신(Update)를 위한 캐시 메모리 억세스의 히스토리(History)를 저장하는 메모리에 관한 것으로, 더욱 상세하게는 의사 LRU(Least Recently Used) 교체 정책을 사용하는 캐시 메모리에 적용 가능하고, 엔트리 억세스 히스토리 수정(modify) 기능을 자체적으로 가지고 있으며, 교체 웨이 디코딩 기능을 지니고 있어 마이크로 프로세서의 캐시 메모리, TLB(Translation Lookaside Buffer), BTB(Branch Targat Buffer) 등의 LRU 메모리에 사용하기에 적합한 개선된 LRU 메모리에 관한 것이다.
잘 알려진 바와같이, 캐시 메모리를 4웨이 세트 조합으로 구현하면 한 어드레스가 억세스 가능한 장소는 4곳이 된다. 이와같은 구조에 데이터를 기록할 때 4곳중 어느곳에 데이터를 기록할 것인가를 결정해야 하는데, 이 결정을 위해 4곳의 억세스 히스토리를 의사 LRU 알로리즘에 의해 저장하는 구조를 갖는 것이 LRU 메모리인데, 이때 의사 LRU 에 의한 히스토리 비트는 3 비트, 즉 그룹 비트(Group Bit), 로그룹 비트(Low Group Bit), 하이그룹 비트(High Group Bit)로 구분되어 저장된다.
한편, 캐시 메모리를 억세스 할 때 4웨이중 히트되는 웨이의 정보를 반영하여, LRU 히스토리 비트를 갱신해야 하고, 다음에 기록할 웨이를 결정해 두어야 하는 데, 갱신할 정보를 만드는 것과 다음에 기록할 웨이를 결정하는 로직은 편의상 LRU 메모리 제어 블록에서 수행하고 있으며, 이러한 경우 LRU 비트가 갱신되는 과정을 보면 다음과 같다.
즉, LRU 메모리에서 판독된 LRU 비트와 웨이 히트 정보를 제어파트로 보내고, 제어파트에서 다음 LRU 비트를 결정하며, 수정된 LRU 비트를 LRU 메모리에 전달하여 갱신(기록)하는 데, 이와같은 기존의 방식은 LRU 갱신 비트를 만드는 경로가 길어 고성능 LRU 메모리를 구현하는 데 어려움이 있다.
도 1은 8엔트리 4웨이 세트 조합 LRU 메모리를 종래의 방식으로 구현한 예를 도시한 것으로, 어드레스 블록(102)과 LRU SRAM 블록(104)을 포함한다.
도 1을 참조하면, 어드레스 블록(102)에서는 8엔트리를 위한 3 비트 인덱스 어드레스를 클럭에 동기하여 래치하고, LRU 판독신호가 인에이블될 때 디코딩 결과를 판독 시간 신호에 동기시켜 워드[7:0]를 만들어 LRU SRAM 블록(104)에 전달하며, LRU 기록신호가 인에이블되면 디코딩 결과를 기록시간 신호에 동기하여 워드[7:0]로 만들어 LRU SRAM 블록(104)에 전달하게 된다.
따라서, LRU SRAM 블록(104)에서는 LRU 판독 신호가 인에이블인 경우 상기한 어드레스 블록(102)으로부터 워드[7:0]를 입력받은 다음 그중에서 인에이블된 엔트리만을 읽어서 판독 데이터 3 비트를 도시 생략된 제어 블록에 전달하고, 이와 반대로 LRU 기록 신호가 인에이블인 경우 어드레스 블록(102)으로부터 제공된 워드[7:0]중 인에이블인 엔트리에 기록 데이터 3 비트를 기록한다.
상기한 바와같이, 종래 방식에서는 LRU 메모리를 간단히 구현할 수는 있으나, 이를 운용하는 제어 블록에서는 실시간, 기록시간, 기록 데이터 등과 같은 신호와 데이터를 정확하게 제어해야만 하는 어려움이 있으며, 기록 데이터를 전달받아 웨이_히트 정보를 반영시킨 기록 데이터(LRU 갱신 데이터)를 만드는 과정을 빠르게 진행해야 하는 부담을 가지며, 또한 LRU 메모리에서 판독된 판독 데이터를 제어 블록이 전달받아 기록 데이터로 만들어 다시 LRU 메모리에 전달하여 다시 기록하는 과정이 연속되므로 이러한 과정으로 인해 고성능을 실현할 수 없다는 문제가 있다.
따라서, 본 발명은 상기한 종래기술의 문제점을 해결하기 위한 것으로, LRU 데이터 경로, 히트_웨이 디코딩 경로 및 기록_웨이 디코딩 경로를 분리하는 방식을 자체적으로 지원하고, 자체 수정 제어와 다음 기록_웨이 디코딩을 지원할 수 있는 자체 갱신 기능을 갖는 LRU 메모리를 제공하는 데 그 목적이 있다.
상기 목적을 달성하기 위하여 본 발명은, 4웨이 세트 조합을 지원하고, 의사 교체 정책을 지원하는 LRU 메모리에 있어서, 외부로부터 제공되는 LRU 판독 신호 및 LRU 기록 신호와 외부 클럭에 의거하여 LRU 메모리에서 필요로하는 다수의 각종 제어신호 및 제어 클럭을 발생하는 자체 시간 발생 블록; 상기 외부 클럭에 의거하여 엔트리 억세스 인덱스 어드레스 정보를 래치하고, 상기 자체 시간 발생 블록에서 제공되는 판독 시간 신호, 기록 시간 신호에 의거하여 상기 래치된 엔트리 억세스 인덱스 어드레스 정보를 디코딩하여 판독 워드 신호와 기록 워드신호를 생성하는 어드레스 디코더 블록; 상기 지원하는 엔트리수 만큼의 워드와 의사 LRU 교체 정책을 지원하기 위한 n 비트로 구현되며, 상기 판독 워드중 인에이블된 워드의 데이터를 판독하여 내보내고, 상기 기록 워드중 인에이블된 워드의 데이터를 해당 셀에 기록하는 LRU SRAM 블록; 외부로부터 웨이 히트 정보를 제공받으며, 상기 자체 시간 발생 블록에서 제공되는 LRU 수정 시간 신호에 의거하여, 웨이 히트를 상기 의사 LRU 교체 정책에 따라 분석하여 n 비트의 수정 제어신호를 생성하는 웨이 히트 디코더 블록; 상기 자체 시간 발생 블록으로 부터 제공되는 판독 래치 시간 신호, 판독 프리차지 시간 신호에 의거하여, 상기 판독 프리차지 시간 신호가 인에이블이면 판독 포트 라인을 프리차지시키며, 상기 LRU SRAM 블록으로부터 판독 데이터를 제공받아 상기 판독 래치 시간 신호에 동기하여 저장하며, 이 저장된 데이터를 이용하여 감지 데이터 및 LRU 데이터를 생성하고, 상기 웨이 히트 디코더 블록으로부터 전달받은 상기 수정 제어신호에 의거하여 상기 저장된 데이터를 기록 데이터로 변경하여 상기 LRU SRAM 블록으로 제공하는 데이터 감지/수정 블록; 및 상기 데이터 감지/수정 블록으로 부터 제공되는 상기 감지 데이터에 대해 상기 의사 LRU 교체 정책에 의한 엔트리 히스토리를 분석하여 해당 엔트리의 기록 웨이를 결정하며, 상기 자체 시간 발생 블록으로부터 제공되는 래치 시간 신호에 의거하여, 상기 결정된 기록 웨이를 저장하고 출력하는 기록 웨이 디코더 블록으로 이루어진 자체 갱신 기능을 갖는 LRU 메모리를 제공한다.
도 1은 8엔트리 4웨이 세트 조합 LRU 메모리를 종래의 방식으로 구현한 예를 도시한 도면,
도 2는 본 발명의 바람직한 실시예에 따른 자체 갱신 기능을 갖는 개선된 LRU 메모리의 블록구성도,
도 3은 도 2에 도시된 어드레스 디코더 블록의 상세 논리회로도,
도 4는 도 2에 도시된 LRU SRAM 블록의 메모리 셀의 구현예를 도시한 논리회로도,
도 5는 도 2에 도시된 자체 시간 발생 블록의 상세 논리회로도,
도 6는 도 5에 도시된 자체 시간 발생 블록에서의 신호 타이밍도,
도 7은 도 2에 도시된 웨이 히트 디코더 블록의 상세 논리회로도,
도 8는 도 2에 도시된 데이터 감지/수정 블록의 상세 논리회로도,
도 9는 도 2에 도시된 기록 웨이 디코더 블록의 상세 논리회로도.
* 도면의 주요부분에 대한 부호의 설명
202 : 어드레스 디코더 블록 204 : LRU SRAM 블록
206 : 자체 시간 발생 블록 208 : 웨이 히트 디코더 블록
210 : 데이터 감지/수정 블록 212 : 기록 웨이 디코더 블록
본 발명의 상기 및 기타 목적과 여러 가지 장점은 이 기술분야의 숙련된 사람들에 의해 첨부된 도면을 참조하여 하기에 기술되는 바람직한 실시예로부터 보다 명확하게 될 것이다.
이하, 본 발명의 바람직한 실시예에 대하여 첨부된 도면을 참조하여 상세히 설명한다.
먼저, 본 발명에서의 기술적인 특징은 LRU 메모리를 판독하여 판독된 데이터를 저장하고 외부에 전달하며, 웨이 히트 디코딩 정보에 의해 기록할 LRU 데이터를 만드는 일련의 과정인 웨이 히트 LRU 메모리 판독/수정 데이터 경로와, 웨이 히트 정보에 따라 새로이 기록할 LRU 비트를 만들기 위한 웨이 히트 정보를 분석하여 LRU 비트를 변경할 수 있는 제어신호를 만드는 과정인 웨이 히트 디코딩/LRU 수정 제어신호 발생 경로와, LRU 히스토리 비트를 디코딩하여 기록할 수 있는 웨이를 결정하여 주는 일련의 과정인 기록 웨이 디코딩 경로를 분리하여 이러한 기능들이 병렬로 수행되도록 한다는 것으로, 이러한 기술적인 특징에 의해 고성능화를 실현할 수 있으며, 또한 기존 방식의 LRU 메모리 제어 블록에서 수행되는 LRU 수정 제어와 기록 웨이 디코딩을 자체적으로 수행하여 기존 방식에서 발생하는 데이터 경로의 지연요소, 제어신호를 만드는 데 발생하는 지연요소, 많은 제어신호와 데이터 경로로 인한 인터페이스의 복잡성 등이 없는 고성능 LRU 메모리를 실현할 수 있다.
도 2는 본 발명의 바람직한 실시예에 따른 자체 갱신 기능을 갖는 개선된 LRU 메모리의 블록구성도로써, 8엔트리 4웨이 세트 조합으로 된 LRU 메모리의 구현 예를 도시한 것이다.
도 2에 도시된 바와같이, 본 발명의 LRU 메모리는 어드레스 디코더 블록(202), LRU SRAM 블록(204), 자체 시간 발생 블록(206), 기록 웨이 디코더 블록(208), 데이터 감지 블록(210) 및 웨이 히트 디코더 블록(212)을 포함한다.
도 2를 참조하면, 어드레스 디코더 블록(202)에서는 본 실시예가 8엔트리를 지원하므로 3 비트의 인덱스 어드레스를 입력받아 외부로부터의 클럭에 동기하여 래치한 다음 디코딩하며, 또한 후술하는 자체 시간 발생 블록(206)으로부터 제공되는 판독 시간 신호에 응답하여 8 비트의 판독 워드를 후술하는 LRU SRAM 블록(204)에 전달하고, 자체 시간 발생 블록(206)으로부터 제공되는 기록 시간 신호에 응답하여 8 비트의 기록 워드를 만들어 LRU SRAM 블록(204)에 전달한다. 여기에서, 판독 워드와 기록 워드는 같은 디코딩 결과를 사용하므로 같은 엔트리를 지정하지만, 이들을 분리하여 설계한 것은 판독 워드를 빨리 동작시키고 기록 시간에 판독 데이터 라인을 프리차지하여 다음 판독 시간에 빠르게 동작시키기 위해서이다. 이와 같은 기능을 지원하기 위해 LRU SRAM 블록내의 각 SRAM 셀은 판독 포트와 기록 포트가 분리되어야 한다.
이와 같이 본 발명의 LRU 메모리에 채용되는 어드레스 디코더 블록(202)은, 일 예로서 도 3에 도시된 바와같이 다수의 논리소자를 이용하여 구성할 수 있다.
즉, 본 발명의 바람직한 실시예에 따라 일 예로서 채용되는 어드레스 디코더 블록(202)은 3개의 래치(LH1, LH2, LH3)로 된 래치 블록(2021)과 다수의 논리소자로 된 판독/기록 워드 생성 블록을 포함한다.
도 3을 참조하면, 래치 블록(2021)의 각 래치(LH31, LH32, LH33)들은 클럭 및 인버터(I31)를 통해 반전된 클럭에 각각 동기되어 클럭이 하이인 동안 입력되는 3 비트의 인덱스 어드레스를 래치한 다음 다음단의 판독/기록 워드 생성 블록으로 전달한다.
다음에, 판독/기록 워드 생성 블록은, 세 개의 래치(LH31, LH32, LH33)의 각 출력과 각 인버터(I32, I33, I34)를 통해 이들 래치의 각 출력을 반전시킨 세 개의 각 반전출력을 각각의 3 입력으로 하는 8개의 낸드 게이트로 된 낸드 게이트군(2023)과, 이 낸드 게이트군(2023)내 각 낸드 게이트의 출력을 각각의 일측 입력으로 하고 도 1의 자체 시간 발생 블록(206)에서 제공되는 판독 시간 신호를 인버터(I35)를 통해 반전시킨 반전된 판독 시간 신호를 각각의 타측 입력으로 하는 8개의 노아 게이트로 구성되어 판독 워드[7:0]를 발생하는 제 1 노아 게이트 그룹(2025)과, 낸드 게이트군(2023)내 각 낸드 게이트의 출력을 각각의 일측 입력으로 하고 도 1의 자체 시간 발생 블록(206)에서 제공되는 기록 시간 신호를 인버터(I36)를 통해 반전시킨 반전된 기록 시간 신호를 각각의 타측 입력으로 하는 8개의 노아 게이트로 구성되어 A 기록 워드[7:0]를 발생하는 제 2 노아 게이트군(2027)으로 구성된다.
다시 도 2를 참조하면, LRU SRAM 블록(204)은 듀얼 포트(판독, 기록 포트) 8*3 SRAM 셀 어레이 블록으로, LRU 히스토리 비트를 엔트리별로 저장한다. 즉, 일 예로서 도 4에 도시된 바와같이 본 발명에 사용되는 SRAM 셀 각각은 판독 동작과 기록 동작이 분리되는 데이터 포트(판독 데이터 포트 및 기록 데이터 포트)로 분리되어 판독 동작후의 기록 시간에 판독 데이터 포트를 프리차지시킬 수 있어 고성능의 지원이 가능하다.
즉, 본 발명에 채용되는 LRU SRAM 블록을 구성하는 각 SRAM 셀은, 일 예로서 도 4에 도시된 바와같이, 3개의 트랜지스터(TR41-TR43)와 두 개의 인버터(I41,42)로 된 이중화 구조로 하여 판독동작과 기록동작이 분리되는 듀얼 포트(판독 데이터 포트와 기록 데이터 포트)를 구현함으로써, 판독동작후의 기록 시간에 판독 데이터 포트를 프리차지시켜 고성능을 실현한다.
즉, 각 SRAM 셀은 게이트가 기록 워드 라인에 연결되고 소오스가 기록 데이터 라인에 연결된 트랜지스터(TR41), 이 트랜지스터(TR41)의 드레인에 입력이 연결된 인버터(I41), 이 인버터(I41)의 출력에 입력이 연결되고 그 출력이 인버터(I41)의 입력에 연결된 인버터(I42), 게이트가 이 인버터(I42)의 출력에 연결되고 소오스가 접지에 연결된 트랜지스터(TR42), 게이트가 판독 워드 라인에 연결되고 소오스가 트랜지스터(TR42)의 드레인에 연결되며 드레인이 판독 데이터 라인에 연결된 트랜지스터(TR43)로 구성된다.
다시 도 2를 참조하면, 자체 시간 발생 블록(206)은, 본 발명에서 얻고자하는 고속동작을 실현하기 위하여 복잡하고 정확성이 요구되는 제어 클럭과 제어신호를 자체적으로 발생하는 블록인 것으로, 도시 생략된 외부 제어 블록에서 제공되는 클럭, LRU 판독 신호 및 LRU 기록 신호에 의거하여, 판독 시간 신호 및 기록 시간 신호를 발생하여 전술한 어드레스 디코더 블록(202)으로 제공하고, 래치 시간 신호를 발생하여 후술하는 기록 웨이 디코더 블록(208)에 제공하며, 판독 래치 시간 신호 및 판독 프리차지 시간 신호를 발생하여 데이터 감지/수정 블록(210)에 제공하며, LRU 수정 시간 신호를 발생하여 웨이 히트 디코더 블록(212)에 제공한다.
이와같이 자체 시간 발생 블록(206)에서 생성되는 각종 신호에 대한 타이밍이 도 6에 상세하게 도시되어 있는 데, 동도면을 참조하면, 판독 시간(액티브 하이)과 판독 프리차지 시간(액티브 로우)의 액티브 구간이 중복되지 않고, 판독 프리차지 시간(액티브 로우)과 판독 래치 시간(액티브 하이)의 액티브 구간이 중복되지 않으며, LRU 수정 시간(액티브 하이)이 인에이블된 후에 기록 시간(액티브 하이)이 인에이블되며, 판독 래치 시간(액티브 하이)과 웨이 디코더 래치 시간(액티브 하이)이 중복되지 않음을 알 수 있다. 따라서, 이와같은 인터벌 클럭 사이의 타이밍 관계는 본 발명에서 얻고자하는 고성능 멀티 포트 LRU 메모리를 구현하는 데 매우 중요한 기능을 한다.
이때, 자체 시간 발생 블록(206)에서 생성되는 신호들중 판독 시간 신호는 3 비트 인덱스 어드레스를 디코딩하여 8개의 디코딩된 라인이 유효할 때 인에이블되고 판독 워드가 충분히 수행되어 판독 데이터가 유효해지면 디스에이블되는 신호이고, 기록 시간 신호는 데이터 감지/수정 블록(210)에서 기록 데이터가 유효하면 인에이블되고 기록 워드가 충분히 수행되어 LRU SRAM 블록의 SRAM 셀이 갱신되면 디스에이블되는 신호이며, LRU 수정 시간 신호는 기록 데이터가 데이터 감지/수정 블록(210)에 래치되고 웨이 히트 정보가 웨이 히트 디코더 블록(212)에서 LRU 데이터 수정에 필요한 정보를 얻었을 때 인에이블되고 데이터 감지/수정 블록(210)에서 웨이 히트 디코딩 결과가 LRU 데이터에 충분히 반영되었을 때 디스에이블되는 신호이다.
또한, 자체 시간 발생 블록(206)에서 생성되는 신호들중 판독 프라차지 시간 신호는 판독 워드 신호가 디스에이블되면 인에이블되고 판독 워드가 인에이블되기 전에 디스에이블되는 신호이고, 판독 래치 시간 신호는 판독 워드가 인에이블되어 판독 데이터가 감지되고 유효해지면 래치하는 데 필요한 신호이며, 래치 시간 신호는 기록 웨이 디코더 블록(208)에서 디코딩된 기록 웨이 데이터를 래치하는 데 사용되는 신호이다.
상기한 바와같이 고속실행에 필요한 각종 신호를 생성하는 자체 시간 발생 블록은, 입력클럭의 주파수 변화에 영향을 받지 않도록, 일예로서 도 5에 도시된 바와같은, 2위상 넌오우버랩 클럭 드라이버를 이용하여 구성할 수 있다. 여기에서, 판독 프리차지 시간 신호는 액티브 로우이고, 기타 다른 신호는 액티브 하이이다.
즉, 도 5를 참조하면, 자체 시간 발생 블록(206)에서 생성되는 판독 프리차지 시간 신호는, 클럭을 입력하는 인버터(I51), 일측 입력이 인버터(I51)의 출력에 일측 입력이 연결되고 타측 입력이 인버터(I55)의 출력에 연결된 낸드 게이트(NAND51), 낸드 게이트(NAND51)의 출력에 직렬연결된 두 개의 인버터(I52,I53)로 구성된 논리회로 그룹을 통해 생성된다.
또한, 자체 시간 발생 블록(206)에서 생성되는 판독 시간 신호는, 일측 입력이 클럭에 연결되고 타측 입력이 인버터(I61)의 출력에 연결된 낸드 게이트(NAND52), 이 낸드 게이트(NAND52)의 출력에 직렬연결된 두 개의 인버터(I54,I55), 일측 입력이 인버터(I55)의 출력이 연결되고 타측 입력이 외부 제어 블록으로부터 제공되는 LRU 판독 신호에 연결된 노아 게이트(NOR51)로 구성된 논리회로 그룹을 통해 생성되며, 판독 래치 시간 신호는, 상기한 노아 게이트(NOR51)의 출력에 직렬연결된 두 개의 인버터(I56,I57)로 구성된 논리회로 그룹을 통해 생성된다.
한편, 자체 시간 발생 블록(206)에서 생성되는 LRU 수정 시간 신호는, 입력이 클럭에 연결된 인버터(I58), 일측 입력이 상기한 인버터(I55)의 출력에 연결되고 타측 입력이 인버터(I58)의 출력에 연결된 낸드 게이트(NAND53), 이 낸드 게이트(NAND53)의 출력에 직렬연결된 세 개의 인버터(I59, I60, I61)로 구성된 논리회로 그룹을 통해 생성된다.
다음에, 자체 시간 발생 블록(206)에서 생성되는 래치 시간 신호는, 일측 입력이 인버터(I61)의 출력에 연결되고 타측 입력이 인버터(I58)의 출력에 연결된 낸드 게이트(NAND54) 및 일측 입력이 외부 제어 블록으로부터 제공되는 LRU 판독 신호에 연결되고 타측 입력이 상기한 낸드 게이트(NAND54)의 출력에 연결된 노아 게이트(NOR52)로 구성된 논리회로 그룹을 통해 생성되고, 또한 기록 시간 신호는 일측 입력이 상기한 낸드 게이트(NAND54)의 출력에 연결되고 타측 입력이 외부 제어 블록으로부터 제공되는 LRU 판독 신호에 연결된 노아 게이트(NOR53)를 통해 생성된다.
다시 도 2를 참조하면, 웨이 히트 디코더 블록(208)에서는 외부 캐시의 태그 블록으로부터 4 비트의 웨이 히트 신호를 전달받아 의사 LRU 교체 정책에 의해 수정할 비트의 정보를 얻고, 상술한 자체 시간 발생 블록(206)에서 제공되는 LRU 수정 시간 신호에 의거하여 6 비트의 수정 제어 신호를 생성하여 데이터 감지/수정 블록(210)으로 제공한다.
이때, 수정 제어신호는 포트당 6 비트로 LRU 데이터 각 비트별로 2개의 신호, 즉 세트 인에이블과 리세트 인에이블 신호이며, 이것은 웨이 히트를 디코딩하여 변경하고자 하는 LRU 비트를 세트(논리“0”에서 논리“1”로 변경이 필요한 경우)시키거나 리세트(논리“1”에서 논리“0”으로 변경이 필요한 경우)시키는 방법을 사용하여 LRU 데이터의 수정을 보다 빠르게 수행함으로써 본 발명에서 얻고자하는 고성능 동작을 가능하게 해 주며, 이러한 기능을 지원하기 위해 후술하는 데이터 감지/수정 블록(210)내의 판독 데이터 래치회로에서는 세트, 리세트 기능을 지원한다.
도 7은 상기한 바와같은 기능을 갖는 본 발명에 따른 웨이 히트 디코더 블록의 세부적인 논리회로도를 나타낸다.
도 7을 참조하면, 웨이 히트 디코더 블록(208)은, 4개의 낸드 게이트로 구성되며 각 낸드 게이트가 외부의 캐시 태그 블록으로 부터 제공되는 웨이 히트[3:0]의 각 비트를 각각의 일측 입력으로 하고 도 1의 자체 시간 발생 블록(206)에서 제공되는 LRU 수정 시간 신호를 각각의 타측 입력으로 하는 제 1 낸드 게이트군(2081), 이 제 1 낸드 게이트군(2081)내 두 낸드 게이트의 각 출력을 일측 및 타측 입력으로 하는 하나의 낸드 게이트와 제 1 낸드 게이트군(2081)내 다른 두 낸드 게이트의 각 출력을 일측 및 타측 입력으로 하는 다른 하나의 낸드 게이트로 구성되어 6 비트 신호중 d0 의 클리어 비트 및 세트 비트를 발생하는 제 2 낸드 게이트군(2083) 및 제 1 낸드 게이트군(2081)내 각 낸드 게이트의 각 출력에 각각 연결되는 4개의 인버터로 구성되어 수정 제어신호의 6 비트 신호중 d1 및 d2 의 두 클리어 신호 및 d1 및 d2 의 두 세트 신호를 각각 발생하는 인버터군(2085)을 포함한다.
다시 도 2를 참조하면, 데이터 감지/수정 블록(210)은 전술한 LRU SRAM 블록(204)과 각 3 비트씩의 판독 데이터 라인 및 기록 데이터 라인으로 연결되는 데, 상술한 자체 시간 발생 블록(206)으로 부터 제공되는 판독 프리차지 시간 신호에 의거하여 판독 데이터 라인을 프리차지 시키고, 판독 데이터를 감지하여 판독 래치 시간에 동기시켜 저장하며, 이 저장 데이터를 감지 데이터로 만들어 기록 웨이 디코더 블록(208)으로 전달하고, 또한 LRU 데이터로 만들어 도시 생략된 외부 제어 블록으로 전달한다.
또한, 데이터 감지/수정 블록(210)은 웨이 히트 디코더 블록(212)으로부터 LRU 수정에 필요한 6 비트씩의 수정 제어신호를 제공받아 래치 데이터를 변경시키고, 이 변경된 수정 LRU 데이터를 기록 데이터로서 지원하는 기능을 수행한다.
도 8은 상기한 데이터 감지/수정 블록(210)의 3 비트중 일예로서 한 비트만을 구현한 것으로, 전술한 도 1의 LRU SRAM 블록(204)으로 부터 판독 데이터 라인이 연결되어 있으며, 이 판독 데이터 라인은 판독 프리차지 시간(액티브 로우) 신호에 의해 하이로 프리차지되고, 판독 워드가 인에이블되면 해당 워드의 데이터를 감지하게 된다. 이때, 판독 데이터를 감지하는 인버터(I81)는 필요에 따라 기존의 감지 증폭기로 대체할 수 있다.
도 8을 참조하면, 데이터 감지/수정 블록(210)은, 도 2의 자체 시간 발생 블록(206)에서 제공되는 판독 프리차지 시간 신호가 게이트에 연결된 P 형 트랜지스터(TR81), 판독 데이터 라인에 직렬연결된 두 개의 인버터(I81, I82) 및 판독 래치 시간 신호에 연결된 인버터(I83)를 포함한다. 여기에서, P 형 트랜지스터(TR81)의 소오스는 판독 데이터 라인에 연결되고 드레인은 전원전압에 연결된다.
또한, 데이터 감지/수정 블록(210)은, 판독 데이터가 감지될 때 판독 래치 시간 신호에 의해 데이터를 저장하는 두 개의 래치(LH81, LH82)를 포함하는 데, 래치(LH81)는 저장된 데이터를 감지 데이터 및 LRU 데이터로 만들어 출력하고, 래치(LH82)는 세트 신호 또는 클리어 신호가 인에이블될 때 래치된 데이터를 새트시키거나 클리어시켜 기록 데이터를 생성한다.
여기에서, 래치(LH82)는 판독 래치 시간 신호 및 인버터(I85)의 출력에 각 게이트가 각각 연결되고 각 소오스가 공통으로 인버터(I82)의 출력에 연결되며 각 드레인이 공통으로 연결된 두 개의 트랜지스터(TR82, TR83), 두 트랜지스터(TR82, TR83)의 공통출력에 입력이 연결된 인버터(I84), 입력이 인버터(I84)의 출력에 연결되고 출력이 두 트랜지스터(TR82, TR83)의 공통출력에 연결된 인버터(I85) 및 입력이 인버터(I84)의 출력에 연결되고 출력이 판독 데이터 라인에 연결된 인버터(I86), 게이트가 클리어 신호에 연결되고 소오스가 접지에 연결되며 드레인이 두 트랜지스터(TR82, TR83)의 공통출력에 연결된 트랜지스터(TR84), 게이트가 세트 신호에 연결되고 소오스가 접지에 연결되며 드레인이 인버터(I84)의 출력과 인버터(I86)의 입력 사이에 연결된 트랜지스터(TR85)로 구성된다.
따라서, 데이터 감지/수정 블록(210)에서는 판독 데이터가 감지될 때 판독 래치 시간 신호에 의거하여 각 래치(LH81, LH82)에 데이터를 저장하고, 이와같이 데이터가 저장된 상태에서 웨이 히트 디코더 블록(208)에서 제공되는 세트 신호 또는 클리어 신호가 인에이블될 때 래치된 데이터를 세트시키거나 클리어시켜 기록 데이터를 LRU SRAM 블록(204)에 전달한다.
다시 도 2를 참조하면, 기록 웨이 디코더 블록(212)에서는 데이터 감지/수정 블록(210)으로 부터 감지된 3 비트 데이터를 제공받아 의사 LRU 교체 정책에 의해 가장 오래 전에 사용된 웨이를 판별하며, 상술한 자체 시간 발생 블록(206)에서 제공되는 래치 시간 신호에 따라 판별결과를 래치하여 기록 웨이 신호를 생성한다. 이러한 기록 웨이 디코더 블록(212)의 일예가 도 9에 도시되어 있다.
도 9를 참조하면, 본 발명에 채용되는 기록 웨이 디코더 블록(212)은 감지된 3 비트 데이터를 각 입력으로 하는 세 개의 인버터(I91, I92, I93), 대응하는 각 인버터(I91, I92, I93)의 출력에 각각 연결된 세 개의 인버터(I94, I95, I96), 일측 입력이 인버터(I94)의 출력에 연결되고 타측 입력이 인버터(I95)의 출력에 연결된 낸드 게이트(NAND91), 일측 입력이 인버터(I91)의 출력에 연결되고 타측 입력이 인버터(I95)의 출력에 연결된 낸드 게이트(NAND92), 일측 입력이 인버터(I92)의 출력에 연결되고 타측 입력이 인버터(I96)의 출력에 연결된 낸드 게이트(NAND93), 일측 입력이 인버터(I92)의 출력에 연결되고 타측 입력이 인버터(I93)의 출력에 연결된 낸드 게이트(NAND94), 네 개의 낸드 게이트의 각 출력을 각각의 일측 입력으로 하고 도 1의 자체 시간 발생 블록(206)에서 제공되는 래치 시간 신호 및 인버터(I97)를 통해 반전된 래치 시간 신호를 각각의 두 다른 입력으로 하여 기록 웨이[3:0]를 발생하는 네 개의 래치(LH91, LH92, LH93, LH94)로 구성된다.
따라서, 기록 웨이 디코더 블록(212)에서는 판독된 LRU 3 비트를 디코딩하여, LRU[1:0]가 논리“11”이면 웨이_0 이 가장 오래전에 사용되었음을 알 수 있으므로 논리“0001”의 기록 웨이[3:0]를 생성하고, LRU[1:0]가 논리“01”이면 웨이_1 이 가장 오래전에 사용되었음을 알 수 있으므로 논리“0010”의 기록 웨이[3:0]를 생성하며, 마찬가지로 LRU{[2][0]}가 논리“10”이면 논리“0100”의 기록 웨이[3:0]를 생성하고, LRU{[2][0]}가 논리“00”이면 논리“1000”의 기록 웨이[3:0]를 생성한다.
이것은 본 발명에 따른 자체 갱신 LRU 메모리가 LRU[0]를 그룹 비트로 사용하며, 웨이 히트가 로우 그룹(웨이_0 이나 웨이_1 이 히트인 경우)이면 논리“0”으로, 하이 그룹(웨이_2 나 웨이_3 이 히트인 경우)이면 논리“1”로 갱신하고, LRU[1]는 로우 그룹 비트로 웨이 히트의 웨이_0 이 히트이면 논리“0”으로, 웨이_1 이 히트이면 논리“1”로 갱신하며, LRU[2]는 하이 그룹 비트로 웨이 히트의 웨이_2 가 히트인 경우 논리“0”으로, 웨이_3 이 히트인 경우 논리“1”로 갱신하여 의사 LRU 기록(history)을 저장하는 방식을 사용하기 때문이다.
한편, 본 발명에서는 의사 LRU 교체 정책의 LRU[2:0]의 기능을 필요에 따라 다르게(그룹 비트, 로그룹 비트, 하이그룹 비트를 서로 변경하여 사용하는 경우) 구현할 수 있는 데, 이 경우 기록 웨이 디코더 블록과 웨이 히트 디코더 블록을 변경된 LRU 비트의 기능에 맞게 변경함으로써 고성능의 자체 갱신 기능을 갖는 LRU 메모리를 구현할 수 있다.
또한, 본 발명의 바람직한 실시예에서는 8엔트리를 지원하는 LRU 메모리를 일예로 설명하였으나, 본 발명이 반드시 이에 국한되는 것은 아니며 16엔트리, 32엔트리, 64엔트리, - - - 등의 LRU 메모리에도 적용 가능하며, 이 경우 어드레스 디코더 블록과 LRU SRAM 블록이 확장된 자체 갱신 기능을 갖는 LRU 메모리를 구현할 수 있다.
이상 설명한 바와같이 본 발명에 따르면, 캐시 메모리, TLB 및 BTB의 사용이 필수적이며 4웨이 세트 조합으로 구현되는 고성능 마이크로 프로세서에서 4웨이 세트 조합 캐시 메모리의 운용에 반드시 필요로하는 세트별 4웨이 억세스 히스토리 메모리가 의사 LRU 교체 정책을 지원할 수 있도록 구현한 것으로, 캐시 태그 블록으로부터 웨이 히트 정보를 제공받아 LRU 히스토리를 자체적으로 기록하고, LRU 히스토리를 분석하여 캐시 메모리가 4웨이에 기록할 때, 의사 LRU 교체 정책에 의한 기록 웨이를 자체적으로 제공하며, 이러한 기능들을 안정적으로 지원하기 위한 클럭로직을 포함하도록 하여, 마이크로 프로세에서의 캐시 메모리, TLB 블록, BTB 블록들의 제어 블록에 부담을 줄이고 인터페이스를 단순화시킴으로써, LRU 갱신과정을 빠르게 동작시켜 슈퍼스칼라 마이크로 프로세서의 성능을 향상시킬 수 있다.

Claims (11)

  1. 4웨이 세트 조합을 지원하고, 의사 교체 정책을 지원하는 LRU 메모리에 있어서,
    외부로부터 제공되는 LRU 판독 신호 및 LRU 기록 신호와 외부 클럭에 의거하여 LRU 메모리에서 필요로하는 다수의 각종 제어신호 및 제어 클럭을 발생하는 자체 시간 발생 블록;
    상기 외부 클럭에 의거하여 엔트리 억세스 인덱스 어드레스 정보를 래치하고, 상기 자체 시간 발생 블록에서 제공되는 판독 시간 신호, 기록 시간 신호에 의거하여 상기 래치된 엔트리 억세스 인덱스 어드레스 정보를 디코딩하여 판독 워드 신호와 기록 워드신호를 생성하는 어드레스 디코더 블록;
    상기 지원하는 엔트리수 만큼의 워드와 의사 LRU 교체 정책을 지원하기 위한 n 비트로 구현되며, 상기 판독 워드중 인에이블된 워드의 데이터를 판독하여 내보내고, 상기 기록 워드중 인에이블된 워드의 데이터를 해당 셀에 기록하는 LRU SRAM 블록;
    외부로부터 웨이 히트 정보를 제공받으며, 상기 자체 시간 발생 블록에서 제공되는 LRU 수정 시간 신호에 의거하여, 웨이 히트를 상기 의사 LRU 교체 정책에 따라 분석하여 n 비트의 수정 제어신호를 생성하는 웨이 히트 디코더 블록;
    상기 자체 시간 발생 블록으로 부터 제공되는 판독 래치 시간 신호, 판독 프리차지 시간 신호에 의거하여, 상기 판독 프리차지 시간 신호가 인에이블이면 판독 포트 라인을 프리차지시키며, 상기 LRU SRAM 블록으로부터 판독 데이터를 제공받아 상기 판독 래치 시간 신호에 동기하여 저장하며, 이 저장된 데이터를 이용하여 감지 데이터 및 LRU 데이터를 생성하고, 상기 웨이 히트 디코더 블록으로부터 전달받은 상기 수정 제어신호에 의거하여 상기 저장된 데이터를 기록 데이터로 변경하여 상기 LRU SRAM 블록으로 제공하는 데이터 감지/수정 블록; 및
    상기 데이터 감지/수정 블록으로 부터 제공되는 상기 감지 데이터에 대해 상기 의사 LRU 교체 정책에 의한 엔트리 히스토리를 분석하여 해당 엔트리의 기록 웨이를 결정하며, 상기 자체 시간 발생 블록으로부터 제공되는 래치 시간 신호에 의거하여, 상기 결정된 기록 웨이를 저장하고 출력하는 기록 웨이 디코더 블록으로 이루어진 자체 갱신 기능을 갖는 LRU 메모리.
  2. 제 1 항에 있어서,
    상기 자체 시간 발생 블록은, 상기 LRU 판독 신호가 인에이블이면 상기 판독 프리차지 시간이 디스에이블인 동안에 생성되는 상기 판독 시간 신호, 판독 데이터가 유효해질 때 인에이블되고 상기 판독 프리차지 시간 신호가 인에이블되기 전에 디스에이블되는 상기 판독 래치 시간 신호, 상기 판독 래치 시간 신호가 디스에이블되면 인에이블되고 상기 판독 래치시간 신호가 인에이블되기 전에 디스에이블되는 상기 LRU 수정 시간 신호, LRU 기록 시간 신호가 인에이블이고 상기 LRU 수정 시간 신호가 인에이블되어 LRU 데이터가 변경되면 인에이블되며 상기 판독 래치 시간 신호가 인에이블되기 전에 디스에이블되는 상기 기록 시간 신호, 상기 LRU 판독 신호가 인에이블이고 상기 판독 래치 시간 신호가 디스에이블되면 인에이블되며 상기 판독 래치 시간 신호가 인에이블되기 전에 디스에이블되는 상기 래치 시간 신호, 상기 외부 클럭에 의해 동작하여 상기 판독 시간 신호가 디스에이블이면 인에이블되고 상기 판독 시간 신호가 인에이블되기 전에 디스에이블되는 상기 판독 프리차지 시간 신호를 발생하는 것을 특징으로 하는 자체 갱신 기능을 갖는 LRU 메모리.
  3. 제 1 항 또는 제 2 항에 있어서, 상기 자체 시간 발생 블록은:
    상기 외부클럭을 입력하는 인버터(I51), 일측 입력이 상기 인버터(I51)의 출력에 일측 입력이 연결되고 타측 입력이 인버터(I55)의 출력에 연결된 낸드 게이트(NAND51), 낸드 게이트(NAND51)의 출력에 직렬연결된 두 개의 인버터(I52,I53)로 구성되어 상기 프리차지 시간 신호를 생성하는 제 1 논리그룹;
    일측 입력이 상기 외부클럭에 연결되고 타측 입력이 인버터(I61)의 출력에 연결된 낸드 게이트(NAND52), 이 낸드 게이트(NAND52)의 출력에 직렬연결된 두 개의 인버터(I54,I55), 일측 입력이 상기 인버터(I55)의 출력이 연결되고 타측 입력이 상기 LRU 판독 신호에 연결된 노아 게이트(NOR51)로 구성되어 상기 판독 시간 신호를 생성하는 제 2 논리그룹;
    상기 노아 게이트(NOR51)의 출력에 직렬연결된 두 개의 인버터(I56,I57)로 구성되어 상기 판독 래치 시간 신호를 생성하는 제 3 논리그룹;
    입력이 상기 외부클럭에 연결된 인버터(I58), 일측 입력이 상기 인버터(I55)의 출력에 연결되고 타측 입력이 상기 인버터(I58)의 출력에 연결된 낸드 게이트(NAND53), 이 낸드 게이트(NAND53)의 출력에 직렬연결된 세 개의 인버터(I59, I60, I61)로 구성되어 상기 LRU 수정 시간 신호를 생성하는 제 4 논리그룹;
    일측 입력이 상기 인버터(I61)의 출력에 연결되고 타측 입력이 상기 인버터(I58)의 출력에 연결된 낸드 게이트(NAND54) 및 일측 입력이 상기 LRU 판독 신호에 연결되고 타측 입력이 상기 낸드 게이트(NAND54)의 출력에 연결된 노아 게이트(NOR52)로 구성되어 상기 래치 시간 신호를 생성하는 제 5 논리그룹; 및
    일측 입력이 상기 낸드 게이트(NAND54)의 출력에 연결되고 타측 입력이 상기 LRU 판독 신호에 연결된 노아 게이트(NOR53)로 구성되어 상기 기록 시간 신호를 생성하는 제 6 논리그룹으로 구성된 것을 특징으로 하는 자체 갱신 기능을 갖는 LRU 메모리.
  4. 제 1 항에 있어서, 상기 어드레스 디코더 블록은:
    상기 엔트리 억세스 인덱스 어드레스 정보 비트수에 상응하는 복수의 래치로 구성되어, 상기 외부클럭 및 반전된 외부클럭에 각각 동기되어 클럭이 하이인 동안 n 비트의 인덱스 어드레스를 래치하는 래치 블록;
    상기 래치 블록내 래치의 각 출력과 이 래치출력을 각각 반전시킨 세 개의 각 반전출력을 각각의 3 입력으로 하는 8개의 낸드 게이트로 된 낸드 게이트군;
    상기 낸드 게이트군내 각 낸드 게이트의 출력을 각각의 일측 입력으로 하고 상기 자체 시간 발생 블록에서 제공되는 판독 시간 신호를 반전시킨 반전된 판독 시간 신호를 각각의 타측 입력으로 하는 8개의 노아 게이트로 구성되어, 소정비트의 판독 워드를 생성하는 제 1 노아 게이트군;
    상기 낸드 게이트군내 각 낸드 게이트의 출력을 각각의 일측 입력으로 하고 상기 자체 시간 발생 블록에서 제공되는 기록 시간 신호를 반전시킨 반전된 기록 시간 신호를 각각의 타측 입력으로 하는 8개의 노아 게이트로 구성되어, 소정비트의 기록 워드를 생성하는 제 2 노아 게이트군으로 구성된 것을 특징으로 하는 자체 갱신 기능을 갖는 LRU 메모리.
  5. 제 4 항에 있어서, 상기 래치 블록은,
    세 개의 래치로 구성된 것을 특징으로 하는 자체 갱신 기능을 갖는 LRU 메모리.
  6. 제 1 항에 있어서, 상기 LRU SRAM 블록내의 각 SRAM 셀은:
    게이트가 상기 기록 워드 라인에 연결되고 소오스가 기록 데이터 라인에 연결된 트랜지스터(TR41);
    상기 트랜지스터(TR41)의 드레인에 입력이 연결된 인버터(I41);
    상기 인버터의 출력에 연결되고 그 출력이 상기 인버터의 입력에 연결된 인버터(I42);
    게이트가 상기 인버터(I41)의 출력에 연결되고 소오스가 접지에 연결된 트랜지스터(TR42);
    게이트가 상기 판독 워드 라인에 연결되고 소오스가 상기 트랜지스터(TR42)의 드레인에 연결되며 드레인이 상기 판독 데이터 라인에 연결된 트랜지스터(TR43)로 구성된 자체 갱신 기능을 갖는 LRU 메모리.
  7. 제 1 항에 있어서, 상기 웨이 히트 디코더 블록은:
    복수의 낸드 게이트로 구성되며 각 낸드 게이트가 외부의 캐시 태그 블록으로 부터 제공되는 웨이 히트 신호의 각 비트를 각각의 일측 입력으로 하고 상기 자체 시간 발생 블록에서 제공되는 상기 LRU 수정 시간 신호를 각각의 타측 입력으로 하는 제 1 낸드 게이트군;
    상기 제 1 낸드 게이트군내 두 낸드 게이트의 각 출력을 일측 및 타측 입력으로 하는 하나의 낸드 게이트와, 상기 제 1 낸드 게이트군내 다른 두 낸드 게이트의 각 출력을 일측 및 타측 입력으로 하는 다른 하나의 낸드 게이트로 구성되어, 상기 수정 제어신호의 6 비트 신호중 d0 의 클리어 신호 및 세트 신호를 발생하는 제 2 낸드 게이트군; 및
    상기 제 1 낸드 게이트군내 각 낸드 게이트의 각 출력에 각각 연결되는 복수의 인버터로 구성되어, 상기 수정 제어신호의 6 비트 신호중 d1 및 d2 의 두 클리어 신호 및 d1 및 d2 의 두 세트 신호를 각각 발생하는 인버터군으로 구성된 것을 특징으로 하는 자체 갱신 기능을 갖는 LRU 메모리.
  8. 제 1 항에 있어서, 상기 데이터 감지/수정 블록은:
    게이트가 상기 자체 시간 발생 블록에서 제공되는 판독 프리차지 시간 신호에 연결되고 드레인이 한 포트의 판독 데이터 라인에 연결된 P 형 트랜지스터(TR81);
    상기 판독 데이터 라인에 직렬연결된 두 개의 인버터(I81, I82);
    상기 자체 시간 발생 블록에서 제공되는 상기 판독 래치 시간 신호에 연결된 인버터(I83);
    판독 데이터가 감지될 때 상기 자체 시간 발생 블록에서 제공되는 판독 래치 시간 신호에 의해 데이터를 저장하고, 이 저장된 데이터를 상기 감지 데이터 및 LRU 데이터로 변환하여 발생하는 제 1 래치; 및
    상기 판독 래치 시간 신호에 의거하여 상기 판독 데이터 라인을 통해 입력되는 데이터를 저장하고, 상기 웨이 히트 디코더 블록으로부터 제공되는 상기 세트 신호 또는 클리어 신호가 인에이블될 때 상기 저장된 데이터를 세트시키거나 클리어시켜 기록 데이터를 생성하는 제 2 래치로 구성된 것을 특징으로 하는 자체 갱신 기능을 갖는 LRU 메모리.
  9. 제 8 항에 있어서, 상기 제 2 래치는:
    상기 판독 래치 시간 신호 및 인버터(I83)의 출력에 각 게이트가 각각 연결되고 각 소오스가 공통으로 인버터(I82)의 출력에 연결되며 각 드레인이 공통으로 연결된 제 1 및 제 2 트랜지스터;
    상기 제 1 및 제 2 트랜지스터의 공통출력에 입력이 연결된 제 1 인버터;
    입력이 상기 제 1 인버터의 출력에 연결되고 출력이 상기 제 1 및 제 2 트랜지스터의 공통출력에 연결된 제 2 인버터;
    입력이 제 1 인버터의 출력에 연결되고 출력이 상기 판독 데이터 라인에 연결된 제 3 인버터;
    게이트가 상기 클리어 신호에 연결되고 소오스가 접지에 연결되며 드레인이 상기 제 1 및 제 2 트랜지스터의 공통출력에 연결된 제 3 트랜지스터; 및
    게이트가 세트 신호에 연결되고 소오스가 접지에 연결되며 드레인이 상기 제 1 인버터의 출력과 제 3 인버터(I88)의 입력 사이에 연결된 제 4 트랜지스터로 구성된 것을 특징으로 하는 자체 갱신 기능을 갖는 LRU 메모리.
  10. 제 1 항에 있어서, 상기 기록 웨이 디코더 블록은:
    상기 LRU SRAM 블록에서 제공되는 감지된 n 비트 데이터의 각 비트를 각 입력으로 하는 세 개의 인버터(I91, I92, I93);
    상기 각 인버터(I91, I92, I93)의 출력에 각각 연결된 세 개의 인버터(I94, I95, I96),
    일측 입력이 상기 인버터(I94)의 출력에 연결되고 타측 입력이 상기 인버터(I95)의 출력에 연결된 낸드 게이트(NAND91);
    일측 입력이 상기 인버터(I91)의 출력에 연결되고 타측 입력이 상기 인버터(I95)의 출력에 연결된 낸드 게이트(NAND92);
    일측 입력이 인버터(I92)의 출력에 연결되고 타측 입력이 상기 인버터(I96)의 출력에 연결된 낸드 게이트(NAND93);
    일측 입력이 상기 인버터(I92)의 출력에 연결되고 타측 입력이 상기 인버터(I93)의 출력에 연결된 낸드 게이트(NAND94); 및
    상기 각 낸드 게이트의 출력을 각각의 일측 입력으로 하고 상기 자체 시간 발생 블록에서 제공되는 상기 래치 시간 신호 및 상기 인버터(I97)를 통해 반전된 래치 시간 신호를 각각의 두 다른 입력으로 하여 소정비트의 상기 기록 웨이를 발생하는 네 개의 래치(LH91, LH92, LH93, LH94)로 구성된 것을 특징으로 하는 자체 갱신 기능을 갖는 LRU 메모리.
  11. 제 1 항 또는 제 10 항에 있어서,
    상기 기록 웨이 디코더 블록은, 가장 오래전에 사용된 웨이를 상기 기록 웨이로 결정하는 것을 특징으로 하는 자체 갱신 기능을 갖는 LRU 메모리.
KR1019970029666A 1997-06-30 1997-06-30 자체 갱신 기능을 갖는 엘알유(lru) 메모리 KR100246468B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1019970029666A KR100246468B1 (ko) 1997-06-30 1997-06-30 자체 갱신 기능을 갖는 엘알유(lru) 메모리
TW087110446A TW374873B (en) 1997-06-30 1998-06-29 A high-performance LRU memory capable of supporting multiple ports
US09/107,418 US6138211A (en) 1997-06-30 1998-06-30 High-performance LRU memory capable of supporting multiple ports
JP18542598A JP3352947B2 (ja) 1997-06-30 1998-06-30 高性能マルチポート支援lruメモリ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019970029666A KR100246468B1 (ko) 1997-06-30 1997-06-30 자체 갱신 기능을 갖는 엘알유(lru) 메모리

Publications (2)

Publication Number Publication Date
KR19990005469A KR19990005469A (ko) 1999-01-25
KR100246468B1 true KR100246468B1 (ko) 2000-03-15

Family

ID=19512625

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970029666A KR100246468B1 (ko) 1997-06-30 1997-06-30 자체 갱신 기능을 갖는 엘알유(lru) 메모리

Country Status (1)

Country Link
KR (1) KR100246468B1 (ko)

Also Published As

Publication number Publication date
KR19990005469A (ko) 1999-01-25

Similar Documents

Publication Publication Date Title
US4567578A (en) Cache memory flush scheme
US5479641A (en) Method and apparatus for overlapped timing of cache operations including reading and writing with parity checking
KR101411140B1 (ko) 내장 메모리의 비경쟁 계층 비트 라인 및 그 방법
JPH08329687A (ja) 半導体集積回路
EP0690386A1 (en) Address translator and method of operation
JPH09128977A (ja) スタティック型ランダムアクセスメモリ
US7457917B2 (en) Reducing power consumption in a sequential cache
US5530824A (en) Address translation circuit
US5802594A (en) Single phase pseudo-static instruction translation look-aside buffer
JP2001273193A (ja) キャッシュメモリ
US5450565A (en) Circuit and method for selecting a set in a set associative cache
JP4031102B2 (ja) 同期式半導体メモリ装置のカラム選択ライン制御回路
US6054918A (en) Self-timed differential comparator
JP2001006366A (ja) 同期式メモリ装置及びこれのデ−タ書き込み方法
JP3259764B2 (ja) 半導体記憶装置
JPH11191078A (ja) 半導体装置
US6081136A (en) Dynamic NOR gates for NAND decode
KR20040019990A (ko) 반도체 메모리 장치
US6138211A (en) High-performance LRU memory capable of supporting multiple ports
US5530822A (en) Address translator and method of operation
US5893929A (en) Mutually controlled match-line-to-word-line transfer circuit
US6108255A (en) Conditional restore for RAM based on feedback from a RAM cell to precharge circuitry
KR100246468B1 (ko) 자체 갱신 기능을 갖는 엘알유(lru) 메모리
US6230237B1 (en) Content addressable memory with an internally-timed write operation
KR100246469B1 (ko) 고성능 멀티포트 지원 엘알유(lru) 메모리

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20051118

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee