KR100273303B1 - Cache hit distinction circuit for microprocessor - Google Patents

Cache hit distinction circuit for microprocessor Download PDF

Info

Publication number
KR100273303B1
KR100273303B1 KR1019980018801A KR19980018801A KR100273303B1 KR 100273303 B1 KR100273303 B1 KR 100273303B1 KR 1019980018801 A KR1019980018801 A KR 1019980018801A KR 19980018801 A KR19980018801 A KR 19980018801A KR 100273303 B1 KR100273303 B1 KR 100273303B1
Authority
KR
South Korea
Prior art keywords
cache
tag
virtual address
hit
signal
Prior art date
Application number
KR1019980018801A
Other languages
Korean (ko)
Other versions
KR19990086020A (en
Inventor
이용석
이용환
Original Assignee
김영환
현대반도체주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 김영환, 현대반도체주식회사 filed Critical 김영환
Priority to KR1019980018801A priority Critical patent/KR100273303B1/en
Publication of KR19990086020A publication Critical patent/KR19990086020A/en
Application granted granted Critical
Publication of KR100273303B1 publication Critical patent/KR100273303B1/en

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
    • 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/0891Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6024History based prefetching

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

PURPOSE: A circuit for discriminating a cache hit of a microprocessor is provided to reduce the size of a cache tag, and to perform a cache access at high speed by encoding a plurality of TLB hit signals generated from a virtual address tag, by comparing the signal encoded with an index of a TLB tag, and by discriminating whether a cache hit or not. CONSTITUTION: A virtual address tag(211) compares a virtual address with an address stored in the inside, and outputs a hit signal(AHIT) of 64 bits. A PPN(Physical Page Number) memory(212) receives the hit signal, and outputs a physical address(MPPN) of 51 bits from a relevant area. An OR gate(216) executes an OR for the hit signal of 64 bits and outputs a TLB(Translation Look-aside Buffer) hit signal. An encoder(217) encodes the hit signal, and converts the signal into index data(EIND). A cache index tag(213) outputs index data(CIND) of 6 bits from a space, which a virtual address designates. A comparator(214) outputs a cache hit signal or a comparison signal. A cache data memory(215) reads or writes cache data.

Description

마이크로 프로세서의 캐시 히트 판별 회로Cache Hit Determination Circuit of Microprocessor

본 발명은 마이크로 프로세서에 관한 것으로 특히, 기억관리장치(MMU ; Memory Management Unit)에 사용되는 전송 변환 버퍼(TLB ; Translation Look-aside Buffer)가 캐시(Cache) 메모리와 공통으로 태그를 사용할 수 하도록 함에 있어서, 캐시 히트 판별 회로에 관한 것이다.The present invention relates to a microprocessor, and more particularly, to enable a translation look-aside buffer (TLB) used in a memory management unit (MMU) to use a tag in common with a cache memory. The present invention relates to a cache hit determination circuit.

도1 은 종래 기술의 실시를 위한 회로의 블럭도로서 이에 도시된 바와 같이, 가상 어드레스(VA[63:13])를 내부에 저장된 어드레스와 비교하여 64비트의 히트 신호(AHIT)를 출력하는 가상 어드레스 태그(111)와, 이 가상 어드레스 태그(111)로부터의 64비트의 히트 신호(AHIT)가 지정하는 해당 영역에서 51비트의 물리적 어드레스(MPPN)를 출력하는 피피엔(PPN ; Physical Page Number = 물리적 페이지번호) 메모리(112)와, 가상 어드레스(VA[12:5])가 지정하는 영역에서 51비트의 물리적 어드레스(CPPN)를 출력하는 캐시 태그(113)와, 상기 메모리(112)의 출력 신호(MPPN)과 상기 캐시 태그(113)의 출력 신호(CPPN)을 비교하여 일치하면 캐시 히트(hit), 일치하지 않으면 캐시 미스(miss)를 나타내는 비교 신호(CHIT)를 출력하는 비교기(114)와, 가상 어드레스(VA[12:5])가 지정하는 영역의 캐시 데이터를 출력하는 캐시 데이터 메모리(115)로 구성된다.1 is a block diagram of a circuit for implementing the prior art, as shown therein, comparing a virtual address VA [63:13] with an address stored therein and outputting a 64-bit hit signal AHIT. PPI that outputs a 51-bit physical address (MPPN) in the address tag 111 and the corresponding region designated by the 64-bit hit signal AHIT from the virtual address tag 111. Physical page number) memory 112, a cache tag 113 for outputting a 51-bit physical address (CPPN) in a region designated by virtual address (VA [12: 5]), and an output of the memory 112 A comparator 114 for comparing the signal MPPN and the output signal CPPN of the cache tag 113 and outputting a comparison signal CHIT indicating a cache hit if it matches and a cache miss if it does not match. And cache data of the area designated by the virtual address VA [12: 5]. The cache data memory 115 outputs.

상기 가상 어드레스 태그(111)는 내용 주소화 기억장치(CAM : Content Addressable Memory, 이하 '캠(CAM)'이라 약칭함)로 구성되며 64개의 어드레스를 저장하여 가상 어드레스(VA[63:13])와 일치하는 영역에서만 '1'인 히트신호(AHIT)를 출력하도록 구성된다.The virtual address tag 111 is composed of a content addressable memory (CAM: CAM), and stores 64 addresses to store a virtual address (VA [63:13]). It is configured to output the hit signal AHIT, which is '1', only in the region corresponding to.

상기 피피엔(PPN) 메모리(112)는 어드레스 디코더가 없이 디코드된 신호들을 워드라인으로 직접 입력받는 특징을 갖는 정적 램(SRAM)으로 구성된다.The PPP memory 112 is composed of a static RAM (SRAM) having a feature of receiving decoded signals directly into a word line without an address decoder.

상기에서 가상 어드레스 태그(111)와 PPN 메모리(112)는 전송 변환 버퍼(TLB)를 구성하며 캐시 태그(113)와 캐시 데이터 메모리(115)는 고속 버퍼 메모리인 캐시(Cache)를 구성한다.The virtual address tag 111 and the PPN memory 112 form a transfer translation buffer (TLB), and the cache tag 113 and the cache data memory 115 form a cache, which is a fast buffer memory.

이와같은 종래 기술의 동작 과정을 설명하면 다음과 같다.Referring to the operation of the prior art as follows.

통상적으로 캐시 액세스시에는 캐시의 히트(hit) 또는 미스(miss)가 발생하게 된다.Typically cache hits or misses occur in the cache.

종래 기술에서 캐시 액세스시 캐시의 히트(hit) 또는 미스(miss) 동작은 다음과 같다.In the prior art, the hit or miss operation of a cache during cache access is as follows.

단, 64-비트 vitual address space(가상 어드레스 영역), 64-비트 physical address space(물리적 어드레스 영역), 8-Kbyte page size(페이지 크기), 64-entry fully-assiciative TLB(Translation Look-aside Buffer, 이하 '티엘비이'로 약칭함), 8-Kbyte direct-mapped virtually-indexed physically-tagged cache, 32-bytecache line size 라고 가정하여 설명하기로 한다.64-bit vitual address space, 64-bit physical address space, 8-Kbyte page size, 64-entry fully-assisted translation look-aside buffer, In the following description, it is assumed to be 'TBI'), 8-Kbyte direct-mapped virtually-indexed physically-tagged cache, and 32-bytecache line size.

먼저, 가상 어드레스(VA[63:13])의 입력으로 가상 어드레스 태그(111)가 액세스되고 동시에 가상 어드레스(VA[12:5])의 입력으로 캐시 태그(113)가 액세스된다.First, the virtual address tag 111 is accessed by the input of the virtual address VA [63:13], and the cache tag 113 is accessed by the input of the virtual address VA [12: 5] at the same time.

이때, 내용주소화 기억장치(CAM ; Content Addressable Memory)로 구성된 가상 어드레스 태그(111)는 64개의 영역중 가상 어드레스(VA[63:13])와 일치하는 어드레스를 저장하고 있는 영역에서만 '1'인 히트 신호(AHIT)가 발생한다.At this time, the virtual address tag 111 constituted by a content addressable memory (CAM) has a value of '1' only in an area storing an address matching the virtual address (VA [63:13]) among 64 areas. An in hit signal A HIT is generated.

이에 따라, 오아 게이트(116)는 가상 어드레스 태그(111)로부터의 64개의 히트 신호(AHIT)를 논리합하여 티엘비이(TLB) 히트신호(TLBhit)를 출력하게 된다.Accordingly, the OR gate 116 logically combines 64 hit signals AHIT from the virtual address tag 111 and outputs a TLB hit signal TLBhit.

만일, 오아 게이트(116)에서 출력되는 티엘비이 히트신호(TLBhit)가 '0'으로서 미스(miss)가 발생하면 마이크로 프로세서는 트랩(trap)을 일으켜 이를 처리하고 가상 어드레스(VA[63:13])(VA[12:5])를 재입력하여 상기 동작을 반복 수행시키게 된다.If a miss occurs as the TLB hit signal TLBhit output from the OR gate 116 is '0', the microprocessor generates a trap and processes the virtual address (VA [63:13]). ) (VA [12: 5]) is re-entered to repeat the operation.

반대로, 오아 게이트(116)에서 티엘비이 히트신호(TLBhit)가 '1'로 출력되어 히트(hit)가 되면 가상 어드레스 태그(111)로부터의 64개의 히트 신호(AHIT)를 직접 워드라인으로 입력받은 피피엔 메모리(112)는 해당 영역에서 51비트의 물리적 어드레스(MPPN)를 출력하게 된다.On the contrary, when the TBI hit signal TLBhit is output as '1' at the OR gate 116 and is hit, the 64 hit signals AHIT from the virtual address tag 111 are directly received as word lines. The PPI memory 112 outputs a 51-bit physical address MPPN in the corresponding area.

그리고, 캐시 태그(113)는 가상 어드레스(VA[12:5])가 지정하는 영역에 저장되어 있는 페이지 번호(CPPN)를 출력하게 된다.The cache tag 113 outputs the page number CPPN stored in the area designated by the virtual address VA [12: 5].

이때, 비교기(114)는 피피엔 메모리(112)에서의 물리적 어드레스(MPPN)와 캐시 태그(113)에서의 믈리적 어드레스(CPPN)가 일치하는지 비교하여 그 비교 결과에 따른 히트 신호(CHIT)를 출력하게 된다.At this time, the comparator 114 compares the physical address MPPN in the PPI memory 112 with the physical address CPPN in the cache tag 113 and compares the hit signal CHIT according to the comparison result. Will print.

이에 따라, 비교기(114)에서 히트 신호(CHIT)가 '0'으로 출력되어 캐시 미스(miss)가 발생하면 피피엔 메모리(112)에서 출력된 물리적 어드레스(MPPN)을 사용하여 외부 메모리로부터 캐시 라인을 가져온 후 가상 어드레스(VA[63:13]) (VA[12:5])를 재입력하여 상기 동작을 반복 수행시키게 된다.Accordingly, when the hit signal CHIT is output as '0' in the comparator 114 and a cache miss occurs, the cache line is output from the external memory using the physical address MPPN output from the PPI memory 112. After retrieving, the operation is repeated by re-inputting the virtual addresses VA [63:13] and VA [12: 5].

반대로, 비교기(114)에서 히트 신호(CHIT)가 '1'로 출력되어 캐시 히트(hit)가 발생하면 로드(load)인 경우 가상 어드레스(VA[12:5])에 의해 지정된 캐시 데이터 메모리(115)의 해당 영역에서 출력하는 캐시 데이터(CDATA)는 유효한 데이터로서 데이터를 요구한 곳으로 전송하게 되며 스토어(store)인 경우 외부로부터의 캐시 데이터(CDATA)를 가상 어드레스(VA[12:5])가 지정한 캐시 데이터 메모리(115)의 해당 영역에 저장하게 된다.On the contrary, when the hit signal CHIT is output as '1' in the comparator 114 and the cache hit occurs, the cache data memory designated by the virtual address VA [12: 5] in the case of the load is loaded. The cache data (CDATA) outputted in the corresponding area of 115 is transmitted as a valid data to the place where the data is requested. ) Is stored in the corresponding area of the designated cache data memory 115.

그러나, 종래의 기술은 가정된 조건에 따라 8-Kbyte의 캐시를 구현하기 위해서 51-비트*256 크기의 메모리를 필요로 하기 때문에 온-칩 구현시 차지하는 면적이 크게 되는 단점이 있다.However, the related art requires a 51-bit * 256 size memory to implement an 8-Kbyte cache according to the assumed conditions, so that the area occupied by the on-chip implementation becomes large.

특히, 더욱 큰 크기의 캐시 메모리를 사용하거나 물리적 어드레스 영역이 더욱 크다면 캐시 태그의 면적이 비례하여 커지게 되며 그만큼 전력 소모도 크게 되는 단점이 있다.In particular, if a larger cache memory is used or if the physical address area is larger, the area of the cache tag is increased in proportion and power consumption is increased.

또한, 종래에는 캐시 히트를 결정하기 위하여 가상 어드레스 태그(111), 피피엔 메모리(112) 및 비교기(14)를 순차적으로 액세스하여야 하는데 이 과정에서 액세스 시간이 오래 걸리는 단점이 있다.In addition, conventionally, in order to determine the cache hit, the virtual address tag 111, the PPI memory 112, and the comparator 14 must be sequentially accessed, which takes a long time in this process.

따라서, 본 발명은 종래의 문제점을 개선하기 위하여 가상 어드레스 태그에서 발생하는 복수개의 티엘비이(TLB) 히트신호를 인코딩하고 그 인코딩된 신호를 티엘비이 태그에 대한 인덱스와 비교하여 캐시 히트 여부를 판별하도록 함으로써 캐시 태그의 크기를 줄임과 동시에 캐시 액세스를 고속으로 수행할 수 있도록 창안한 마이크로 프로세서의 캐시 히트 판별 회로를 제공함에 목적이 있다.Accordingly, the present invention encodes a plurality of TLB hit signals occurring in a virtual address tag and compares the encoded signal with an index for the TLB tag to determine whether a cache hit occurs in order to improve the conventional problem. Accordingly, an object of the present invention is to provide a cache hit determination circuit of a microprocessor invented to reduce cache tag size and to perform cache access at high speed.

도 1은 종래 기술을 보인 회로의 블럭도.1 is a block diagram of a circuit of the prior art;

도 2는 본 발명의 실시를 위한 회로의 블럭도.2 is a block diagram of a circuit for practicing the present invention.

* 도면의 주요부분에 대한 부호 설명 *Explanation of symbols on the main parts of the drawings

211 : 가상 어드레스 태그 212 : 피피엔(PPN) 메모리211: virtual address tag 212: PPI memory

213 : 캐시 인덱스 태그 214 ; 비교기213: cache index tag 214; Comparator

215 : 캐시 데이터 메모리 216 : 오아 게이트215: cache data memory 216: ora gate

217 : 인코더217: Encoder

본 발명은 상기의 목적을 달성하기 위하여 캐시 메모리를 구비한 마이크로 프로세서의 캐시 히트 판별 회로에 있어서, 공유 티엘비이 태그(shared TLB Tag)인 가상 어드레스 태그에서의 복수개의 히트 신호를 인코딩하여 상기 가상 어드레스 태그에서 액세스된 영역의 인덱스 번호로 변환하는 인코더와, 공유 티엘비 태그의 저장 위치를 나타내는 인덱스 데이터를 저장하고 가상 어드레스에 의해 지정된 해당 영역에서의 인덱스 데이터를 출력하는 캐시 인덱스 태그와, 상기 인코더와 캐시 인덱스 태그의 출력 신호를 비교하여 캐시 히트 여부를 판단하기 위한 신호를 출력하는 비교기를 포함하여 구성함을 특징으로 한다.In accordance with another aspect of the present invention, there is provided a cache hit determination circuit of a microprocessor provided with a cache memory, wherein the plurality of hit signals are encoded by encoding a plurality of hit signals in a virtual address tag that is a shared TLB tag. An encoder for converting to an index number of an area accessed from a tag, a cache index tag for storing index data indicating a storage location of a shared TLB tag, and outputting index data in a corresponding area designated by a virtual address, and the encoder And a comparator configured to compare output signals of the cache index tag and output a signal for determining whether a cache hit occurs.

상기 캐시 인덱스 태그는 티엘비이 미스 발생시 교체되는 티엘비이 엔트리를 인덱스로 사용하는 캐시 라인들을 한 클럭 이내에 무효화하기 위하여 캠(CAM)으로 구성함을 특징으로 한다.The cache index tag may be configured as a CAM to invalidate cache lines using a TBI entry, which is replaced when a TBI miss occurs, within an clock.

이하, 본 발명을 도면에 의거 상세히 설명하면 다음과 같다.Hereinafter, the present invention will be described in detail with reference to the drawings.

도2 는 본 발명의 실시를 위한 회로의 블록도로서 이에 도시한 바와 같이, 가상 어드레스(VA[63:13])를 내부에 저장된 어드레스와 비교하여 64비트의 히트 신호(AHIT)를 출력하는 가상 어드레스 태그(211)와, 이 가상 어드레스 태그(211)로부터의 64비트의 히트 신호(AHIT)를 직접 워드라인으로 입력받아 지정된 해당 영역에서 51비트의 물리적 어드레스 (MPPN)를 출력하는 피피엔(PPN) 메모리(212)와, 상기 가상 어드레스 태그(211)로부터의 64비트의 히트 신호(AHIT)를 논리합하여 티엘비이 히트신호(TLBhit)를 출력하는 오아 게이트(216)와, 상기 가상 어드레스 태그(211)로부터의 64비트의 히트 신호(AHIT)를 인코딩하여 상기 가상 어드레스 태그(211)에서 액세스된 영역의 인덱스 데이터(EIND)로 변환하는 인코더(217)와, 상기 가상 어드레스 태그(211)의 저장 영역에 대한 인덱스 데이터를 저장하고 가상 어드레스(VA[12:5])가 지정하는 영역에서 6비트의 인덱스 데이터(CIND)를 출력하는 캐시 인덱스 태그(213)와, 상기 인코더(217)의 출력 신호(EIND)과 상기 캐시 인덱스 태그(213)의 출력 신호(CIND)을 비교하여 일치하면 캐시 히트(hit), 일치하지 않으면 캐시 미스(miss)를 나타내는 비교 신호(CHIT)를 출력하는 비교기(214)와, 가상 어드레스(VA[12:5])가 지정하는 영역에서 캐시 데이터를 읽거나 그 영역에 외부에서의 캐시 데이터를 쓰는 캐시 데이터 메모리(215)로 구성한다.Fig. 2 is a block diagram of a circuit for implementing the present invention. As shown therein, the virtual address VA [63:13] is compared with the address stored therein to output a 64-bit hit signal AHIT. The PPP (PPN) that receives the address tag 211 and the 64-bit hit signal AHIT from the virtual address tag 211 directly as a word line and outputs a 51-bit physical address (MPPN) in the designated area. Memory 212 and OR gate 216 for ORing the 64-bit hit signal AHIT from the virtual address tag 211 to output a TLB hit signal TLBhit, and the virtual address tag 211. An encoder 217 that encodes a 64-bit hit signal AHIT and converts it into index data EIND of an area accessed by the virtual address tag 211, and a storage area of the virtual address tag 211. Index Days for A cache index tag 213 for storing the data and outputting 6-bit index data CIND in an area designated by the virtual address VA [12: 5], and an output signal EIND of the encoder 217; A comparator 214 for comparing the output signal CIND of the cache index tag 213 and outputting a comparison signal CHIT indicating a cache hit if it does not match and a cache miss if it does not match, and a virtual address; The cache data memory 215 reads cache data in an area designated by (VA [12: 5]) or writes cache data externally to the area.

상기 가상 어드레스 태그(211)와 피피엔 메모리(212)는 종래와 동일하게 내용 주소화 기억장치(CAM : Content Addressable Memory)와 정적 램(SRAM)으로 구성한다.The virtual address tag 211 and the PPI memory 212 are composed of a content addressable memory (CAM) and a static RAM (SRAM) as in the related art.

상기 캐시 인덱스 태그(213)는 티엘비이 미스 발생시 교체되는 티엘비이 엔트리를 인덱스로 사용하는 캐시 라인들을 한 클럭에 모두 무효화하기 위하여 캠(CAM)으로 구성한다.The cache index tag 213 is configured as a cam CAM to invalidate all cache lines that use a TLB entry, which is replaced when a TLB miss occurs, as an index.

이와같이 구성한 본 발명의 실시예에 대한 동작 및 작용 효과를 설명하면 다음과 같다.Referring to the operation and effect of the embodiment of the present invention configured as described above are as follows.

본 발명에서도 종래 기술과 마찬가지로 64-비트 vitual address space(가상 어드레스 영역), 64-비트 physical address space(물리적 어드레스 영역), 8-Kbyte page size(페이지 크기), 64-entry assiciative TLB(Translation Look-aside Buffer), 8-Kbyte direct-mapped virtually-indexed physically-tagged cache, 32-bytecache line size 라고 가정하여 캐시 액세스시 캐시 히트(hit) 또는 캐시 미스(miss) 판별 동작을 설명하기로 한다.In the present invention, as in the prior art, a 64-bit vitual address space (virtual address area), a 64-bit physical address space (physical address area), an 8-Kbyte page size (page size), and a 64-entry assiciative translation look-up (TLB). Assuming a side buffer, an 8-Kbyte direct-mapped virtually-indexed physically-tagged cache, and a 32-bytecache line size, a cache hit or cache miss determination operation during cache access will be described.

먼저, 가상 어드레스(VA[63:13])의 입력으로 가상 어드레스 태그(211)가 액세스되고 동시에 가상 어드레스(VA[12:5])의 입력으로 캐시 태그(213)가 액세스된다.First, the virtual address tag 211 is accessed with the input of the virtual address VA [63:13] and the cache tag 213 is accessed with the input of the virtual address VA [12: 5] at the same time.

이때, 내용주소화 기억장치(CAM ; Content Addressable Memory)로 구성된 가상 어드레스 태그(211)는 64개의 영역중 가상 어드레스(VA[63:13])와 일치하는 어드레스가 있는 경우 해당 영역에 대해서만 '1'인 히트 신호(AHIT)가 발생한다.At this time, the virtual address tag 211 composed of the content addressable memory (CAM) has a value of '1' only for the corresponding area when there is an address matching the virtual address (VA [63:13]) among the 64 areas. A hit signal A HIT is generated.

이에 따라, 오아 게이트(216)는 가상 어드레스 태그(211)로부터의 64개의 히트 신호(AHIT)를 논리합하여 티엘비이(TLB) 히트신호(TLBhit)를 출력하게 된다.Accordingly, the OR gate 216 logically combines the 64 hit signals AHIT from the virtual address tag 211 to output the TLB hit signal TLBhit.

만일, 오아 게이트(216)에서 출력되는 티엘비이 히트신호(TLBhit)가 '0'으로서 티엘비이 미스(miss)가 발생하면 마이크로 프로세서는 트랩(trap)을 일으켜 유효한 페이지 변환 정보를 입력시키게 된다.If the TBI hit signal TLBhit outputted from the OR gate 216 is '0' and the TBI miss occurs, the microprocessor generates a trap and inputs valid page conversion information.

이때, 티엘비이 미스의 발생으로 교체되는 티엘비이 엔트리를 인덱스로 사용하는 캐시 라인들이 있을 수 있지만 캐시 인덱스 태그(213)가 캠(CAM)으로 구성되어 있으므로 한 클럭이내에 해당하는 캐시 라인들은 모두 무효화되어진다.At this time, there may be cache lines that use the TBI entry as an index that is replaced by the occurrence of the TBI miss, but since the cache index tag 213 is configured as the cam CAM, all cache lines corresponding to one clock are invalidated. Lose.

이 후, 상기와 같은 티엘비이 미스(TLB miss) 처리가 종료되면 재입력된 가상 어드레스(VA[63:13])(VA[12:5])에 대해 캐시 히트 판별을 위한 동작을 다시 수행하게 된다.Thereafter, when the TLB miss processing is completed, the operation for determining the cache hit for the re-entered virtual address VA [63:13] (VA [12: 5]) is performed again. do.

반대로, 오아 게이트(216)에서 티엘비이 히트신호(TLBhit)가 '1'로 출력되어 티엘비이 히트(hit)가 되면 가상 어드레스 태그(211)로부터의 64개의 히트 신호(AHIT)를 직접 워드라인으로 입력받은 피피엔 메모리(212)는 해당 영역에서 51비트의 물리적 어드레스(MPPN)를 출력하게 된다.On the contrary, when the TBI hit signal TLBhit is output as '1' at the OR gate 216 and becomes a TBI hit, the 64 hit signals AHIT from the virtual address tag 211 are directly transmitted to the word line. The received PPI memory 212 outputs a 51-bit physical address (MPPN) in the corresponding area.

그리고, 티엘비이 히트(hit)가 발생되면 인코더(217)는 가상 어드레스 태그(211)에서의 64개의 히트 신호(AHIT)를 인코딩하여 상기 가상 어드레스 태그(211)의 저장 위치를 나타내는 6비트의 인덱스 신호(EIND)로 변환하게 된다.When a TBI hit occurs, the encoder 217 encodes 64 hit signals AHIT in the virtual address tag 211 to indicate a 6-bit index indicating a storage location of the virtual address tag 211. The signal is converted to EIND.

이때, 캐시 인덱스 태그(213)는 이미 가상 어드레스(VA[12:5])가 지정하는 영역에서 가상 어드레스 태그(211)의 저장 위치를 나타내는 인덱스 신호(CIND)를 출력하였으므로 비교기(214)는 상기 인덱스 신호(CIND)와 인코더(217)에서의 인덱스 신호(EIND)가 일치하는지 비교하여 그 비교 결과에 따른 히트 신호(CHIT)를 출력하게 된다.At this time, since the cache index tag 213 has already output the index signal CIND indicating the storage location of the virtual address tag 211 in the region designated by the virtual address VA [12: 5], the comparator 214 may use the above. The index signal CIND and the index signal EIND of the encoder 217 are compared with each other, and the hit signal CHIT is output according to the comparison result.

이에 따라, 비교기(214)에서 히트 신호(CHIT)가 '0'으로 출력되어 캐시 미스(miss)가 발생하면 피피엔 메모리(212)에서 출력된 물리적 어드레스(MPPN)를 사용하여 외부 메모리로부터 캐시 라인을 가져온 후 가상 어드레스(VA[63:13])(VA[12:5])를 재입력하여 상기 동작을 반복 수행시키게 된다.Accordingly, when the hit signal CHIT is output as '0' in the comparator 214 and a cache miss occurs, the cache line is output from the external memory using the physical address MPPN output from the PPI memory 212. After retrieving, the operation is repeated by re-inputting the virtual addresses VA [63:13] and VA [12: 5].

반대로, 비교기(214)에서 히트 신호(CHIT)가 '1'로 출력되어 캐시 히트(hit)가 발생하면 로드(load)인 경우 가상 어드레스(VA[12:5])에 의해 지정된 캐시 데이터 메모리(215)의 해당 영역에서 출력되어 있는 캐시 데이터(CDATA)는 유효한 데이터로서 데이터를 요구한 곳으로 전송하게 되며 스토어(store)인 경우 외부로부터의 캐시 데이터(CDATA)를 가상 어드레스(VA[12:5])가 지정한 캐시 데이터 메모리(215)의 해당 영역에 저장하게 된다.On the contrary, when the hit signal CHIT is output as '1' in the comparator 214 and a cache hit occurs, the cache data memory designated by the virtual address VA [12: 5] when the load is a load ( The cache data (CDATA) output in the corresponding area of 215 is valid data and is transmitted to the place where the data is requested. ]) Is stored in the corresponding area of the cache data memory 215.

상기에서 상세히 설명한 바와 같이 가정된 조건에 따라 8K-바이트의 캐시를 만들기 위하여 종래에는 51비트*256 크기의 SRAM으로 만들어진 캐시 태그를 필요로 하지만As described in detail above, in order to make an 8K-byte cache under the assumed conditions, a cache tag made of SRAM having a size of 51 bits * 256 is conventionally required.

본 발명은 캐시 인덱스 태그에 가상 어드레스 태그의 저장 위치를 나타내는 인덱스 데이터를 저장함으로 6비트*256 크기의 캠(CAM)으로 구현할 수 있어 종래 기술보다 훨씬 작은 크기로 구현할 수 있는 효과가 있다.The present invention can be implemented by a cam (CAM) of 6 bits * 256 size by storing the index data indicating the storage location of the virtual address tag in the cache index tag has an effect that can be implemented in a much smaller size than the prior art.

그리고, 캠(CAM)이 정적 램(SRAM)보다 대략 2.5배정도 크기는 하지만 전체적으로 볼 때 캐시 인덱스 태그는 종래의 캐시 태그에 비해 1/3 이하의 크기를 가지므로 집적 면적의 감소로 인한 소비 전력 감소도 기대할 수 있는 효과가 있다.In addition, although the CAM is approximately 2.5 times larger than the static RAM, the overall cache index tag is 1/3 smaller than the conventional cache tag, thereby reducing power consumption due to the reduction of the integrated area. There is also an expected effect.

또한, 종래에는 캐시 히트를 결정하기 위하여 가상 어드레스 태그(111), 피피엔(PPN) 메모리(112), 51비트의 비교기(114)를 차례로 액세스하지만 본 발명은 공유 티엘비 태그인 가상 어드레스 태그(211), 인코더(217), 6비트의 비교기(214)가 차례로 액세스되며 인코더(217)의 동작은 피피엔(PPN) 메모리(112)를 액세스하는 것보다 빠르고 6비트 비교기(214)가 51비트 비교기(114)보다 빠르므로 본 발명은 전체적으로 종래 기술보다 빠른 처리 속도를 가지게 되는 효과가 있다.In addition, although the virtual address tag 111, the PPI memory 112, and the 51-bit comparator 114 are sequentially accessed in order to determine a cache hit, the present invention provides a virtual address tag (a shared TLB tag). 211), the encoder 217 and the 6 bit comparator 214 are accessed in turn, the operation of the encoder 217 is faster than accessing the PPI (PPN) memory 112 and the 6 bit comparator 214 is 51 bits. Since it is faster than the comparator 114, the present invention has the effect of having a faster processing speed than the prior art as a whole.

그리고, 본 발명은 티엘비이 미스의 발생으로 티엘비이 엔트리 교체시 이 엔트리가 나타내는 페이지 안의 캐시 라인들을 무효화시켜야 하기 때문에 종래 기술보다 캐시 미스율이 약간 높아지지만 그 차이는 0.1% 미만으로 무시할 수 있으며 캠(CAM)을 사용하여 한 클럭안에 캐시 라인을 무효화시킴으로써 성능 저하를 최대한 방지하는 효과가 있다.In the present invention, the cache miss rate is slightly higher than that of the prior art because the cache line in the page indicated by the entry is invalidated due to the occurrence of the TIB entry, but the difference is negligible to less than 0.1%. CAM) invalidates the cache lines within one clock, thereby minimizing performance degradation.

Claims (3)

티엘비이(TLB)의 가상 어드레스 태그가 캐시의 태그를 공유하도록 구성된 마이크로 프로세서에 있어서, 가상 어드레스(VA[63:13])를 내부에 저장된 어드레스와 비교하여 64비트의 히트 신호(AHIT)를 출력하는 가상 어드레스 태그와, 이 가상 어드레스 태그로부터의 64비트의 히트 신호(AHIT)를 직접 워드라인으로 입력받아 지정된 해당 영역에서 51비트의 물리적 어드레스(MPPN)를 출력하는 피피엔(PPN) 메모리와, 티엘비이 히트가 되면 상기 가상 어드레스 태그로부터의 64비트의 히트 신호(AHIT)를 인코딩하여 상기 가상 어드레스 태그에서 액세스된 영역을 나타내는 인덱스 데이터(EIND)로 변환하는 인코더와, 가상 어드레스(VA[12:5])가 지정하는 영역에서 상기 가상 어드레스 태그의 저장 영역에 대한 6비트의 인덱스 데이터(CIND)를 출력하는 캐시 인덱스 태그와, 상기 인코더의 출력 신호(EIND)과 상기 캐시 인덱스 태그의 출력 신호(CIND)을 비교하여 일치하면 캐시 히트(hit), 일치하지 않으면 캐시 미스(miss)를 나타내는 신호(CHIT)를 출력하는 비교기와, 캐시 히트가 되면 가상 어드레스(VA[12:5])가 지정하는 영역에서 캐시 데이터를 읽거나 그 영역에 외부에서의 캐시 데이터를 쓰는 캐시 데이터 메모리로 구성함을 특징으로 하는 마이크로 프로세서의 캐시 히트 판별 회로.A microprocessor configured to have a virtual address tag of TLB share a tag of a cache, and outputs a 64-bit hit signal AHIT by comparing the virtual address VA [63:13] with an address stored therein. A virtual address tag, a 64-bit hit signal (AHIT) directly from the virtual address tag, and a PPI memory for outputting a 51-bit physical address (MPPN) in the designated area; The encoder converts the 64-bit hit signal AHIT from the virtual address tag into index data EIND representing an area accessed from the virtual address tag when the TBI hit is made, and the virtual address VA [12: 5)) a cache index tag for outputting 6-bit index data (CIND) for the storage area of the virtual address tag in the area designated by the A comparator for comparing the output signal EIND of the coder with the output signal CIND of the cache index tag, and outputting a cache hit if it matches and a signal CHIT indicating a cache miss if it does not match; A cache hit determination circuit of a microprocessor, characterized in that the cache data memory is configured to read cache data in an area designated by a virtual address (VA [12: 5]) or write external cache data to the area when a hit occurs. . 제1항에 있어서, 캐시 인덱스 태그는 캠(CAM ; Content Addressable Memory)으로 구성하여 티엘비이(TLB) 미스 발생시 교체되는 티엘비이 엔트리를 인덱스로 사용하는 캐시 라인을 무효화함을 특징으로 하는 마이크로 프로세서의 캐시 히트 판별 회로.The microprocessor of claim 1, wherein the cache index tag is configured as a content addressable memory (CAM) to invalidate a cache line that uses a TLB entry that is replaced when a TLB miss occurs. Cache hit determination circuit. 제2항에 있어서, 캐시 라인의 무효화는 한 클럭 이내에 수행함을 특징으로 하는 마이크로 프로세서의 캐시 히트 판별 회로.3. The cache hit determination circuit of claim 2, wherein invalidating the cache line is performed within one clock.
KR1019980018801A 1998-05-25 1998-05-25 Cache hit distinction circuit for microprocessor KR100273303B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019980018801A KR100273303B1 (en) 1998-05-25 1998-05-25 Cache hit distinction circuit for microprocessor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019980018801A KR100273303B1 (en) 1998-05-25 1998-05-25 Cache hit distinction circuit for microprocessor

Publications (2)

Publication Number Publication Date
KR19990086020A KR19990086020A (en) 1999-12-15
KR100273303B1 true KR100273303B1 (en) 2000-12-15

Family

ID=19537699

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980018801A KR100273303B1 (en) 1998-05-25 1998-05-25 Cache hit distinction circuit for microprocessor

Country Status (1)

Country Link
KR (1) KR100273303B1 (en)

Also Published As

Publication number Publication date
KR19990086020A (en) 1999-12-15

Similar Documents

Publication Publication Date Title
US5265227A (en) Parallel protection checking in an address translation look-aside buffer
JP3740195B2 (en) Data processing device
US6014732A (en) Cache memory with reduced access time
KR920005280B1 (en) High speed cache system
US5581725A (en) Cache memory system having first and second direct-mapped cache memories organized in hierarchical structure
US6425055B1 (en) Way-predicting cache memory
US5067078A (en) Cache which provides status information
US5133058A (en) Page-tagging translation look-aside buffer for a computer memory system
EP1934753B1 (en) Tlb lock indicator
US4811209A (en) Cache memory with multiple valid bits for each data indication the validity within different contents
US6356990B1 (en) Set-associative cache memory having a built-in set prediction array
US5018061A (en) Microprocessor with on-chip cache memory with lower power consumption
US6874077B2 (en) Parallel distributed function translation lookaside buffer
JPH07200399A (en) Microprocessor and method for access to memory in microprocessor
JP2009512944A (en) Cache memory attribute indicator with cached memory data
US5530823A (en) Hit enhancement circuit for page-table-look-aside-buffer
US7472227B2 (en) Invalidating multiple address cache entries
CN109219804B (en) Nonvolatile memory access method apparatus and system
US9875191B2 (en) Electronic device having scratchpad memory and management method for scratchpad memory
KR100304779B1 (en) Multi-way associative storage type cache memory
US6385696B1 (en) Embedded cache with way size bigger than page size
JP2007280421A (en) Data processor
US20030225992A1 (en) Method and system for compression of address tags in memory structures
KR100273303B1 (en) Cache hit distinction circuit for microprocessor
KR100278895B1 (en) Data processor

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

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee