KR100456215B1 - 블럭 버퍼링을 사용하는 캐쉬 메모리 장치 및 그 제어방법 - Google Patents

블럭 버퍼링을 사용하는 캐쉬 메모리 장치 및 그 제어방법 Download PDF

Info

Publication number
KR100456215B1
KR100456215B1 KR10-2002-0069521A KR20020069521A KR100456215B1 KR 100456215 B1 KR100456215 B1 KR 100456215B1 KR 20020069521 A KR20020069521 A KR 20020069521A KR 100456215 B1 KR100456215 B1 KR 100456215B1
Authority
KR
South Korea
Prior art keywords
data
block
tag
signal
buffer
Prior art date
Application number
KR10-2002-0069521A
Other languages
English (en)
Other versions
KR20040041316A (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 KR10-2002-0069521A priority Critical patent/KR100456215B1/ko
Publication of KR20040041316A publication Critical patent/KR20040041316A/ko
Application granted granted Critical
Publication of KR100456215B1 publication Critical patent/KR100456215B1/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
    • 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/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • 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/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3808Instruction prefetching for instruction reuse, e.g. trace cache, branch target cache
    • 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1021Hit rate improvement

Landscapes

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

Abstract

본 발명의 블럭버퍼링을 사용하는 캐쉬 메모리 장치(100)는 다수의 블럭데이터들(BD1∼BDn)을 저장하는 데이터 저장부(110), 태그(Ti)를 저장하는 태그 저장부(120), 유효 상태를 나타내는 유효비트(Vi)가 저장된 유효비트 저장부(130), 이전의 메모리 접근에 의해 데이터 저장부(110)의 다수의 블럭데이터들(BD1∼BDn) 중 하나의 블럭데이터(BDi)와 그 블럭데이터(BDi)에 대한 블럭인덱스신호(BIDi), 블럭유효비트(BVi) 및 블럭태그신호(Ti)들이 저장된 버퍼(200), 중앙처리장치의 프리인덱스신호(PINDEX) 및 프리태그신호(PTAG)들과 버퍼(200)에 저장된 블럭인덱스신호(BIDi) 및 블럭태그신호(BTi)를 비교하고, 블럭유효비트(BVi)의 활성화유무를 판단하여 중앙처리장치의 메모리 접근이 수행되기 전에 중앙처리장치로부터 요구되는 데이터가 버퍼(200)의 블럭데이터(BDi) 내에 있는지를 검사하여 중앙처리장치로부터 요구되는 데이터가 버퍼(200)의 블럭데이터(BDi) 내에 있으면 프리버퍼 히트신호(pre buffer hit)를 출력하고 그렇지 않으면 프리버퍼 미스신호(pre buffer miss)를 출력하는 버퍼비교부(300) 및 캐쉬히트 유무를 검사하는 캐쉬비교부(400)로 구성된다.

Description

블럭 버퍼링을 사용하는 캐쉬 메모리 장치 및 그 제어방법{cache system using the block buffering and the method}
본 발명은 캐쉬 메모리 장치 및 그 제어방법에 관한 것으로, 특히 저전력의 블럭 버퍼링 방식을 사용하여 캐쉬 동작 이전에 중앙처리장치가 요구하는 데이터가 버퍼의 블럭데이터에 존재하는지를 검사하여 중앙처리장치의 성능을 향상시키는 블럭 버퍼링을 사용하는 캐쉬 메모리 장치 및 그 제어방법에 관한 것이다.
도 1은 중앙처리장치와의 접근 순서에 따른 메모리 접근 계층을 나타내는 블럭도를 도시한 도면으로, 도 1에 도시된 바와 같이 중앙처리장치(1)에 입력되는 명령어 또는 데이터의 전달 과정은 접근 속도가 가장 늦은 하드디스크 등의 보조 기억 장치(4)의 데이터가 주메모리(main memory)(3)로 적재 된 후 다시 캐쉬 메모리 장치(2) 내의 데이터 저장부로 옮겨져 중앙 처리 장치(1)로 전달되는 계층적 구조를 통해 수행된다.
중앙처리장치(1)와 인접한 계층일수록 고비용 저용량의 고속동작의 메모리가 사용되며, 중앙처리장치(1)로부터 멀리 떨어진 메모리 계층일수록 저비용 고용량의 저속동작 메모리가 사용된다. 이는 고속으로 동작하는 중앙처리장치(1)가 저속의 저장장치인 보조기억장치(4) 혹은 주메모리(3)를 효과적으로 빠르게 접근하기 위한 경제적인 방법이다. 이러한 계층 구조중 캐쉬 메모리 장치(2)는 일반적으로 고속의 중앙처리장치(1)와 저속의 주메모리(3) 사이에 위치하여 고속의 메모리와 이를 제어하는 캐쉬제어부로 구성되어 중앙처리장치(1)가 접근하는 데이터 또는 명령어의 시간적/공간적 지역성을 이용하여 중앙처리장치(1)가 고속으로 데이터를 접근 할 수 있도록 해준다.
시간적 지역성(temporal locality)은 중앙처리장치(1)가 접근하였던 데이터는 단시간 내에 다시 접근될 가능성이 많은 성향을 의미하며, 공간적 지역성(spatial locality)은 중앙처리장치(1)가 이전에 접근되었던 데이터와 인접한 어드레스에 위치한 다른 데이터들이 단시간 내에 다시 접근될 가능성이 많다는 성향을 의미한다.
캐쉬제어부는 중앙처리장치(1)에서 요구되는 데이터가 캐쉬 메모리 장치(2)의 데이터 저장부에 없을 경우 주메모리(3)로부터 데이터를 가져오는데 공간적 지역성을 이용하기 위하여 요구된 데이터보다 더 많은 양의 연속된 데이터 단위인 블럭데이터를 캐쉬 메모리 장치(2)의 데이터 저장부로 가져온다. 캐쉬 메모리 장치(2) 내의 데이터 저장부는 그 크기가 한정되어 있으므로 데이터 저장부에 중앙처리장치(1)가 요구한 데이터가 없는 경우에는 데이터 저장부의 데이터들이 기저장된 블럭을 중앙처리장치(1)가 현재 요구하는 데이터가 포함된 블럭으로 교체하여야 하는 과정을 수행하여야 한다. 이때 캐쉬제어부는 시간적 지역성을 이용하기 위해 최근까지 가장 접근이 덜 되었던 데이터가 포함된 블럭을 현재 중앙처리장치(1)가 요구한 데이터가 포함된 블럭으로 교체한다.
이러한 캐쉬 메모리 장치(2)는 공간적 지역성과 시간적 지역성에 의해 그 성능과 전력 소모에 큰 영향을 준다.
캐쉬 메모리 장치(2)에서 태그나 데이터를 저장하는 메모리 소자들에 의해 대부분의 전력이 소모되므로 이들에 의한 전력 소모를 줄이기 위해 캐쉬 메모리 장치는 서브 뱅크(sub banking) 방식이나 블럭 버퍼링(block buffering) 방식을 사용하였다.
서브 뱅크를 사용하는 캐쉬 메모리 장치는 데이터를 저장하는 메모리를 작은 뱅크 단위로 분할하여 접근되는 뱅크에 대해서만 전력소모가 발생되며, 블럭 버퍼링을 사용하는 캐쉬시스템은 시간적/공간적 지역성을 이용하는 방식으로 버퍼에 이전에 접근되었던 블럭데이터를 저장한 후 다음의 데이터 접근이 발생한 경우 해당 데이터가 버퍼의 블럭데이터 내에 존재하는 경우 즉, 버퍼 히트(buffer hit)가 이루어지면 태그(TAG) 검색 및 데이터 저장부의 접근 동작을 수행하지 않고 버퍼의 블럭데이터들 중 중앙처리장치가 요구한 데이터를 중앙처리장치로 출력한다. 따라서 태그 검색 및 메모리의 접근 동작을 수행하지 않아도 되므로 전력소모를 줄일 수 있는 이점이 있다.
도 2는 상기 블럭 버퍼링을 사용하는 종래의 캐쉬 메모리 장치의 구성도로, 도 2의 종래의 캐쉬 메모리 장치는 중앙처리장치로부터 어드레스 버스를 통해 입력되는 인덱스(INDEX)에 따라 다수의 블럭데이터들(BD1∼BDn)을 저장하는 데이터 저장부(11), 중앙처리장치로부터 어드레스 버스를 통해 입력되는 태그(TAG)와 비교되는 각 블럭데이터(BDi)에 대한 태그(Ti)를 저장하는 태그 저장부(12), 각 블럭데이터(BDi)에 대한 유효(valid) 상태를 나타내는 유효비트(Vi)가 저장된 유효비트 저장부(13), 이전의 접근에 의해 데이터 저장부(11)의 다수의 블럭데이터들(BD1∼BDn) 중 하나의 블럭데이터(BDi)와 그 블럭데이터(BDi)에 대한 블럭인덱스신호(BIDi), 블럭유효비트(BVi) 및 블럭태그(BTi)들이 저장된 버퍼(20), 중앙처리장치로부터 어드레스 버스를 통해 입력되는 새로운 어드레스에 의해 다음의 데이터 접근이 발생할 경우 중앙처리장치로부터 요구되는 데이터가 버퍼(20)의 블럭데이터(BDi) 내에 있는지를 검사하여 중앙처리장치로부터 요구되는 데이터가 버퍼(20)의 블럭데이터(BDi) 내에 있으면 버퍼 히트신호(buffer hit)를 출력하고 그렇지 않으면 버퍼미스신호(buffer miss)를 출력하는 버퍼비교부(30) 및 버퍼비교부(30)에서 버퍼미스신호가 출력되면 중앙처리장치로부터 입력되는 새로운 어드레스의 태그가 태그 저장부(12) 내에 있는지를 검사하여 새로운 어드레스의 태그가태그 저장부(12) 내에 있으면 캐쉬히트신호(cache hit)를 출력하고 그렇지 않으면 캐쉬미스신호(cache miss)를 출력하는 캐쉬비교부(40)로 구성된다.
버퍼비교부(30)는 버퍼(20)에 저장된 블럭인덱스신호(BIDi)와 중앙처리장치로부터 어드레스 버스를 통해 입력되는 새로운 어드레스의 인덱스(INDEX)가 동일한지를 비교하는 제1비교부(CP1), 버퍼(20)에 저장된 블럭태그신호(BTi)와 중앙처리장치로부터 어드레스 버스를 통해 입력되는 새로운 어드레스의 태그(TAG)가 동일한지를 비교하는 제2비교부(CP2) 및 제1비교부(CP1)의 출력, 제2비교부(CP2)의 출력 및 버퍼(20)에 저장된 블럭유효비트(BVi)를 논리곱하는 제1앤드게이트(AND1)로 구성된다. 캐쉬비교부(40)는 중앙처리장치로부터 어드레스 버스를 통해 입력되는 새로운 어드레스의 인덱스(INDEX)에 따라 태그 저장부(12)에 저장된 태그(Ti)와 중앙처리장치로부터 어드레스 버스를 통해 입력되는 새로운 어드레스의 태그(TAG)가 동일한 지를 비교하는 제3비교부(CP3) 및 제3비교부(CP3)의 출력과 유효비트 저장부(13)에 저장된 유효비트(Vi)를 논리곱하는 제2앤드게이트(AND2)로 구성된다.
상기 구성에 따른 종래의 블럭 버퍼링을 사용하는 캐쉬 메모리 장치의 동작은 다음과 같다.
버퍼(20)에 저장된 블럭인덱스신호(BIDi)와 중앙처리장치로부터 어드레스 버스를 통해 입력되는 새로운 어드레스의 인덱스(INDEX)가 동일하고, 버퍼(20)에 저장된 블럭태그(BTi)와 중앙처리장치로부터 어드레스 버스를 통해 입력되는 새로운 어드레스의 태그(TAG)가 동일하고, 블럭유효비트(BVi)가 활성화된 값인 하이논리값을 가지면 버퍼비교부(30)는 도 5a의 타이밍도에 도시된 바와 같이 T1시간에서 T2시간에 버퍼히트신호(buffer hit)를 출력하며, 버퍼히트신호(buffer hit)에 의해 버퍼(20)에 저장된 블럭데이터(BDi) 내에는 중앙처리장치가 새로이 요구하는 데이터가 존재한다는 것으로 캐쉬 메모리 장치는 데이터 저장부(11) 및 태그 저장부(12)를 검색하지 않고 바로 선택부(MUX)를 통해 버퍼(20)에 저장된 블럭데이터(BDi) 내의 데이터(DO)를 출력하여 캐쉬 사이클을 종료한다. 만약 상기의 과정에서 버퍼비교부(30)가 버퍼미스신호(buffer miss)를 출력하면, 즉 버퍼(20)에 저장된 블럭데이터(BDi)에 중앙처리장치가 새로이 요구하는 데이터가 존재하지 않으면 캐쉬비교부(40)는 중앙처리장치로부터 어드레스 버스를 통해 입력되는 새로운 어드레스의 인덱스에 의해 출력되는 태그 저장부(12)에 저장된 태그(Ti)와 중앙처리장치로부터 어드레스 버스를 통해 입력되는 새로운 어드레스의 태그(TAG)가 동일한지를 비교하고, 이때 새로운 어드레스의 인덱스에 의해 출력되는 유효비트 저장부(13)의 유효비트(Vi)가 활성화된 값인 하이논리값을 가지면 캐쉬히트신호(cache hit)를 출력한다. 즉, 캐쉬비교부(40)가 T2시간에 캐쉬히트신호(cache hit)를 출력하면 중앙처리장지에서 새로이 요구하는 데이터는 데이터 저장부(12)에 존재한다는 것으로 이 경우에는 버퍼(20)에 기저장하고 있는 블럭인덱스신호(BIDi), 블럭유효비트(BVi), 블럭태그(BTi) 및 블럭데이터(BDi)는 각각 중앙처리장치의 어드레스버스를 통해 입력되는 새로운 인덱스(INDEX)와 새로운 인덱스(INDEX)에 의한 유효비트 저장부(13), 태그 저장부(12) 및 데이터 저장부(11)에서 출력되는 새로운 블럭유효비트, 블럭태그 및 블럭데이터로 갱신되고, 동시에 갱신된 블럭데이터 내의 중앙처리장치로부터 요구된 데이터(DO)는 선택부(MUX)를 통해 출력하고 캐쉬사이클을 종료한다. 만약에 상기의 과정에서 캐쉬비교부(40)가 캐쉬미스신호(cache miss)를 출력하면 중앙처리장치로부터 요구된 데이터는 데이터 저장부(11)에는 없으므로 중앙처리장치로부터 요구된 데이터가 위치하는 블럭데이터를 주메모리로부터 데이터 저장부(11)로 가져오는 캐쉬갱신 사이클을 수행한다.
종래의 블럭 버퍼링을 사용하는 캐쉬 메모리 장치는 버퍼히트신호가 출력되면 캐쉬 메모리 장치 내의 태그 저장부 및 데이터 저장부의 접근 동작을 수행하지 않아도 되므로 전력소모를 줄일 수 있는 장점은 있으나 버퍼미스신호가 출력되면 캐쉬 히트/미스 판단을 수행하고 태그 저장부 및 데이터 저장부의 접근을 위해 한 사이클이 필요하다. 즉, 버퍼의 블럭데이터에 중앙처리장치가 요구하는 데이터가 없을 경우 메모리 접근 단계인 캐쉬 동작을 위해 두 사이클이 소요되므로 한 사이클의 낭비가 발생되어 중앙처리장치의 성능을 떨어뜨리는 문제점을 가지고 있으며, 특히 데이터의 지역성이 낮을 경우 중앙처리장치의 성능 저하가 더 심화되는 문제점을 가지고 있다.
본 발명의 목적은 캐쉬 동작에 따른 메모리 접근 이전에 중앙처리장치가 요구하는 데이터가 버퍼의 블럭데이터에 존재하는지를 미리 검사하여 버퍼의 블럭데이터에 중앙처리장치가 요구하는 데이터가 없더라도 캐쉬 동작을 위해 한 사이클만을 사용하므로 중앙처리장치의 성능을 향상시키는 블럭 버퍼링을 사용하는 캐쉬 메모리 장치 및 그 제어방법을 제공하는데 있다.
도 1은 중앙처리장치와의 접근 순서에 따른 메모리 접근 계층을 나타내는 블럭도,
도 2는 종래의 블럭 버퍼링을 사용하는 캐쉬 메모리 장치의 구성도,
도 3은 본 발명의 블럭 버퍼링을 사용하는 캐쉬 메모리 장치의 구성도,
도 4는 파이프라인 구조를 갖는 중앙처리장치의 블럭도,
도 5는 도 2 및 도 3의 동작 타이밍도,
도 6은 본 발명의 캐쉬메모리 제어방법의 흐름도이다.
상기의 목적을 달성하기 위하여 본 발명의 블럭 버퍼링을 사용하는 캐쉬 메모리 장치는 파이프라인(pipeline) 구조를 갖는 중앙처리장치와 저속의 주메모리 사이에 위치하여 클럭신호에 동기되어 중앙처리장치의 어드레스를 래치하는 어드레스 래치로부터 출력되어 어드레스 버스를 통해 입력되는 인덱스 및 태그에 따라 중앙처리장치로부터 요구되는 데이터와 인접한 데이터들인 블럭데이터를 주메모리로부터 전송받아 저장하거나 중앙처리장치가 요구한 데이터를 중앙처리장치로 출력하여 중앙처리장치가 고속으로 데이터를 접근하도록 하는 캐쉬 메모리 장치에 있어서, 중앙처리장치의 어드레스 래치로부터 출력되어 어드레스 버스를 통해 입력되는 인덱스에 따라 다수의 블럭데이터들을 저장하는 데이터 저장부; 중앙처리장치의 어드레스 래치로부터 출력되어 어드레스 버스를 통해 입력되는 태그와 비교되는 각 블럭데이터에 대한 태그를 저장하는 태그 저장부; 각 블럭데이터에 대한 유효 상태를 나타내는 유효비트가 저장된 유효비트 저장부; 중앙처리장치의 이전의 데이터 요구에 따른 이전의 메모리 접근에 의해 데이터 저장부의 다수의 블럭데이터들 중 하나의 블럭데이터와 그 블럭데이터에 대한 블럭인덱스신호, 블럭유효비트 및 블럭태그신호들이 저장된 버퍼; 중앙처리장치의 어드레스 래치의 입력인 프리인덱스신호 및 프리태그신호를 수신하여 수신된 프리인덱스신호 및 프리태그신호들과 버퍼에 저장된 블럭인덱스신호 및 블럭태그신호를 비교하고, 블럭유효비트의 활성화유무를 판단하여 어드레스 버스를 통해 입력되는 어드레스 래치의 출력인 새로운 메모리 접근을 위한 어드레스에 따라 중앙처리장치의 데이터 접근이 수행되기전에 중앙처리장치로부터 요구되는 데이터가 버퍼의 블럭데이터 내에 있는지를 검사하여 중앙처리장치로부터 요구되는 데이터가 버퍼의 블럭데이터 내에 있으면 프리버퍼 히트신호를 출력하고 그렇지 않으면 프리버퍼 미스신호를 출력하는 버퍼비교부; 및 버퍼비교부에서 프리버퍼 미스신호가 출력되면 중앙처리장치로부터 입력되는 새로운 어드레스의 태그가 태그 저장부 내에 있는지를 검사하여 새로운 어드레스의 태그가 태그 저장부 내에 있으면 캐쉬히트신호를 출력하고 그렇지 않으면 캐쉬미스신호를 출력하는 캐쉬비교부를 구비한 것을 특징으로 한다.
상기의 목적을 달성하기 위한 본 발명의 블럭 버퍼링을 사용하는 캐쉬메모리 제어방법은 파이프라인 구조를 갖는 중앙처리장치와 저속의 주메모리 사이에 위치하여 클럭신호에 동기되어 중앙처리장치의 어드레스를 래치하는 어드레스 래치로부터 출력되어 어드레스 버스를 통해 입력되는 인덱스 및 태그를 저장하는 인덱스 저장부, 태그 저장부, 중앙처리장치로부터 요구되는 데이터를 포함하여 요구된 데이터의 인접한 데이터들을 블럭단위로 하는 블럭데이터를 주메모리로부터 전송받아 저장하는 데이터 저장부 및 중앙처리장치의 데이터 요구에 의해 요구된 데이터와 관련된 인덱스, 태그, 블럭데이터를 저장하는 버퍼로 구성되어 중앙처리장치가 고속으로 데이터를 접근하도록 하는 캐쉬 메모리 제어방법에 있어서, 중앙처리장치의 어드레스 래치의 입력인 프리인덱스신호 및 프리태그신호들과 버퍼에 저장된 블럭인덱스신호 및 블럭태그신호들이 동일한지를 비교하고, 블럭유효비트의 활성화유무를 판단하는 버퍼비교단계; 버퍼비교단계에서 블럭유효비트가 활성화되고, 프리인덱스신호와 블럭인덱스신호가 동일하고, 프리태그신호와 블럭태그신호가 동일하면 버퍼의 블럭데이터들 중 중앙처리장치가 새롭게 요구한 데이터를 중앙처리장치로 출력하고 캐쉬 동작을 종료하는 블럭데이터 출력단계; 버퍼비교단계에서 블럭유효비트가 비활성화되거나, 프리인덱스신호와 블럭인덱스신호가 동일하지 않거나, 프리태그신호와 블럭태그신호가 동일하지 않으면 중앙처리장치로부터 입력되는 새로운 어드레스의 태그가 태그 저장부 내에 있는지를 검사하는 캐쉬비교단계; 캐쉬비교단계에서 중앙처리장치로부터 입력되는 새로운 어드레스의 태그가 태그 저장부 내에 있으면 검출된 태그에 해당하는 데이터 저장부에 저장된 블럭데이터로 버퍼의 블럭데이터를 갱신하고 해당 블럭데이터들 중 중앙처리장치가 요구한 데이터를 중앙처리장치로 출력하고 캐쉬 동작을 종료하는 버퍼갱신단계; 및 캐쉬비교단계에서 중앙처리장치로부터 입력되는 새로운 어드레스의 태그가 태그 저장부 내에 없으면 중앙처리장치로부터 요구되는 데이터를 포함하여 요구된 데이터의 인접한 데이터들을 블럭단위로 하는 블럭데이터를 주메모리로부터 전송받아 데이터 저장부 및 버퍼에 저장하고, 중앙처리장치가 요구한 데이터를 출력하는 캐쉬미스단계를 구비한 것을 특징으로 한다.
이하, 첨부된 도면을 참조하여 본 발명의 블럭 버퍼링을 사용하는 캐쉬 메모리 장치 및 그 제어방법을 상세히 설명하고자 한다.
도 3은 본 발명의 블럭 버퍼링을 사용하는 캐쉬 메모리 장치의 구성도이다..
도 3에 도시된 바와 같이 본 발명의 캐쉬 메모리 장치(100)는 중앙처리장치의 어드레스 래치(520,580)로부터 출력(LO1,LO2)되어 어드레스 버스를 통해 입력되는 인덱스(INDEX)에 따라 다수의 블럭데이터들(BD1∼BDn)을 저장하는 데이터 저장부(110), 중앙처리장치의 어드레스 래치(520,580)로부터 출력(LO1,LO2)되어 어드레스 버스를 통해 입력되는 태그(TAG)와 비교되는 각 블럭데이터(BDi)에 대한 태그(Ti)를 저장하는 태그 저장부(120), 각 블럭데이터(BDi)에 대한 유효 상태를 나타내는 유효비트(Vi)가 저장된 유효비트 저장부(130), 중앙처리장치의 이전의 데이터 요구에 의한 이전의 메모리 접근에 의해 데이터 저장부(110)의 다수의 블럭데이터들(BD1∼BDn) 중 하나의 블럭데이터(BDi)와 그 블럭데이터(BDi)에 대한 블럭인덱스신호(BIDi), 블럭유효비트(BVi) 및 블럭태그신호(Ti)들이 저장된 버퍼(200), 중앙처리장치의 어드레스 래치(520,580)의 입력(LI1,LI2)인 프리인덱스신호(PINDEX) 및 프리태그신호(PTAG)를 수신하여 수신된 프리인덱스신호(PINDEX) 및 프리태그신호(PTAG)들과 버퍼(200)에 저장된 블럭인덱스신호(BIDi) 및 블럭태그신호(BTi)를 비교하고, 블럭유효비트(BVi)의 활성화유무를 판단하여 어드레스 버스를 통해 입력되는 어드레스 래치(520,580)의 출력(LO1,LO2)인 새로운 어드레스에 따라 중앙처리장치의 데이터 접근이 수행되기 전에 중앙처리장치로부터 요구되는 데이터가 버퍼(200)의 블럭데이터(BDi) 내에 있는지를 검사하여 중앙처리장치로부터 요구되는 데이터가 버퍼(200)의 블럭데이터(BDi) 내에 있으면 프리버퍼 히트신호(pre buffer hit)를 출력하고 그렇지 않으면 프리버퍼 미스신호(pre buffer miss)를 출력하는 버퍼비교부(300) 및 버퍼비교부(300)에서 프리버퍼 미스신호(pre buffer miss)가 출력되면 중앙처리장치로부터 입력되는 새로운 어드레스의 태그(TAG)가 태그 저장부(120) 내에 있는지를검사하여 새로운 어드레스의 태그(TAG)가 태그 저장부(120) 내에 있으면 캐쉬히트신호(cache hit)를 출력하고 그렇지 않으면 캐쉬미스신호(cache miss)를 출력하는 캐쉬비교부(400)로 구성된다.
버퍼비교부(300)는 버퍼(200)에 저장된 블럭인덱스신호(BIDi)와 어드레스 래치의 입력인 프리인덱스신호(PINDEX)를 수신하여 이들 신호가 동일한지를 비교하는 제1비교부(CP1), 버퍼(200)에 저장된 블럭태그신호(BTi)와 어드레스 래치의 입력인 프리태그신호를 수신하여 이들 신호가 동일한지를 비교하는 제2비교부(CP2), 제1비교부(CP1)의 출력과 제2비교부(CP2)의 출력 및 버퍼(200)에 저장된 블럭유효비트(BVi)를 수신하여 이들을 논리곱하는 제1논리곱(AND1) 및 제1논리곱(AND1)의 출력을 수신하여 어드레스 래치에 입력되는 클럭과 동일한 클럭신호(CLK)를 수신하여 클럭신호(CLK)에 동기되어 제1논리곱(AND1)의 출력을 저장하는 플립플롭(FF)으로 구성된다.
캐쉬비교부(400)는 중앙처리장치로부터 어드레스 버스를 통해 입력되는 새로운 어드레스의 인덱스(INDEX)에 따라 태그 저장부(120)에 저장된 태그(Ti)와 중앙처리장치로부터 어드레스 버스를 통해 입력되는 새로운 어드레스의 태그(TAG)가 동일한 지를 비교하는 제3비교부(CP3) 및 제3비교부(CP3)의 출력과 유효비트 저장부(130)에 저장된 유효비트(Vi)를 논리곱하는 제2논리곱(AND2)으로 구성된다.
상기 어드레스 래치는 중앙처리장치의 실행단계와 메모리 접근단계에서 주메모리에 저장된 데이터의 주소를 저장하는 래치이거나 중앙처리장치의 명령어 패치시 주메모리에 저장된 명령어의 주소를 저장하는 래치이다.
도 6은 본 발명의 블럭 버퍼링을 사용하는 캐쉬메모리 제어방법의 순서도이다. 도 6에 도시된 바와 같이 본 발명의 캐쉬메모리 제어방법은 중앙처리장치의 어드레스 래치(520,580)의 입력(LI1,LI2)인 프리인덱스신호(PINDEX) 및 프리태그신호(PTAG)들과 버퍼(200)에 저장된 블럭인덱스신호(BIDi) 및 블럭태그신호(BTi)들이 동일한지를 비교하고, 블럭유효비트(BVi)의 활성화유무를 판단하는 버퍼비교단계(S10), 버퍼비교단계(S10)에서 블럭유효비트(BVi)가 활성화되고, 프리인덱스신호(PINDEX)와 블럭인덱스신호(BIDi)가 동일하고, 프리태그신호(PTAG)와 블럭태그신호(BTi)가 동일하면 버퍼(200)의 블럭데이터들(BDi) 중 중앙처리장치가 새롭게 요구한 데이터를 중앙처리장치로 출력하고 캐쉬 동작을 종료하는 블럭데이터 출력단계(S20), 버퍼비교단계(S10)에서 블럭유효비트(BVi)가 비활성화되거나, 프리인덱스신호(PINDEX)와 블럭인덱스신호(BIDi)가 동일하지 않거나, 프리태그신호(PTAG)와 블럭태그신호(BTi)가 동일하지 않으면 중앙처리장치로부터 입력되는 새로운 어드레스의 태그(TAG)가 태그 저장부(120) 내에 있는지를 검사하는 캐쉬비교단계(S30), 캐쉬비교단계(S30)에서 중앙처리장치로부터 입력되는 새로운 어드레스의 태그(TAG)가 태그 저장부(120) 내에 있으면 검출된 태그에 해당하는 데이터 저장부(110)에 저장된 블럭데이터로 버퍼(200)의 블럭데이터를 갱신하고 해당 블럭데이터들 중 중앙처리장치가 새롭게 요구한 데이터를 중앙처리장치로 출력하고 캐쉬 동작을 종료하는 버퍼갱신단계(S40) 및 캐쉬비교단계(S30)에서 중앙처리장치로부터 입력되는 새로운 어드레스의 태그(TAG)가 태그 저장부(120) 내에 없으면 중앙처리장치로부터 요구되는 데이터를 포함하여 요구된 데이터의 인접한 데이터들을 블럭단위로 하는 블럭데이터를 주메모리로부터 전송받아 데이터 저장부(110) 및 버퍼(200)에 저장하고, 중앙처리장치가 요구한 데이터를 출력하는 캐쉬미스단계(S50)로 구성된다.
상기의 구성에 따른 본 발명의 블럭 버퍼링을 사용하는 캐쉬 메모리 장치 및 캐쉬메모리 제어방법의 동작은 다음과 같다.
본 발명의 캐쉬 메모리 장치(100)는 반드시 파이프라인 구조를 갖는 중앙처리장치에만 사용될 수 있는 것으로 도 4는 5단계의 파이프라인 구조를 갖는 일반적인 중앙처리장치의 구성도를 보여주고 있다.
도 4에 도시된 파이프라인 구조를 갖는 중앙처리장치는 명령어 패치단계(Instruction Fetch:IF), 명령어 해석단계(Instruction Decode:ID), 실행단계(Execution:EXE), 메모리 접근단계(Memeory access:MEM) 및 레지스터에 저장하는 저장 단계(Write Back:WB)의 각 동작을 수행하는 데이터 패스 블럭과 각 단계를 구분 짓는 래치들(520,530,560.580,590)로 구성된다.
명령어 패치단계(IF)에서 패치될 명령어의 어드레스는 명령어 어드레스 생성기(510)를 통하여 생성된 후 명령어 어드레스 래치(520)에 저장되고, 명령어 어드레스 래치(520)에 저장된 명령어 어드레스(LO1)를 캐쉬 메모리 장치(100)로 출력하여 명령어 메모리 접근 동작을 수행하며, 이와 동시에 명령어 어드레스 생성기(510)는 다음에 패치될 명령어 어드레스를 계산한다. 명령어 메모리 접근에 의해 패치된 명령어는 명령어 디코더(540)에 의한 명령어 해석단계(ID)를 거쳐 현재 수행중인 명령어가 메모리 접근 명령어이면 실행단계(EXE)에서 연산기(570)는 데이터 메모리 어드레스를 생성한 후 생성된 데이터 메모리 어드레스를 데이터 어드레스 래치(580)에 저장한다. 메모리 접근단계(MEM)는 데이터 어드레스 래치(580)에 저장된 데이터 메모리 어드레스를 캐쉬 메모리 장치(100)로 출력하여 데이터 메모리를 접근한다.
상기와 같이 파이프라인 구조를 갖는 중앙처리장치의 경우 명령어 어드레스 래치(520)와 데이터 어드레스 래치(580)에 의해 메모리 어드레스 생성과 메모리 접근이 구분되므로 현재 메모리에 접근하기 위한 메모리 어드레스(LI1,LI2)와 다음에 접근 할 메모리의 어드레스(LO1, LO2))를 알 수 있다. 즉, 본 발명의 캐쉬 메모리 장치(100)는 명령어 어드레스 래치(520)의 입력(LI1) 또는 데이터 어드레스 래치(580)의 입력(LI2)을 수신하여 이들에 의해 다음의 사이클인 메모리 접근 동작을 수행하기 위한 캐쉬 동작이 이루어지기 전에 버퍼(200)에 저장된 블럭데이터에 캐쉬동작시 중앙처리장치가 요구하는 데이터가 있는지를 검사하여 버퍼비교부(300)에서 프리버퍼 미스신호가 출력되더라도 캐쉬 동작을 수행하기 위한 메모리 접근시 캐쉬비교부(400)는 메모리 접근 후 오직 한 사이클 동안에 캐쉬 히트 유무를 판별할 수 있다.
도 3에 도시된 바와 같이 본 발명의 캐쉬 메모리 장치(100)의 데이터 저장부(110), 태그 저장부(120), 유효비트 저장부(130), 버퍼(200) 및 캐쉬비교부(400)의 구성은 동일하고, 이에 따른 동작도 동일하나 본 발명의 캐쉬 메모리 장치(100)의 버퍼비교부(300)는 종래와는 달리 중앙처리장치의 명령어 어드레스 래치(520) 또는 데이터 어드레스 래치(580)의 입력(LI1,LI2)인 프리인덱스신호(PINDEX) 및 프리태그신호(PTAG)를 수신하여 수신된 프리인덱스신호(PINDEX) 및 프리태그신호(PTAG)들과 버퍼(200)에 저장된 블럭인덱스신호(BIDi) 및 블럭태그신호(BTi)를 비교한다. 즉, 제1비교부(CP1)는 버퍼(200)에 저장된 블럭인덱스신호(BIDi)와 어드레스 래치(520,580)의 입력(LI1,LI2)인 프리인덱스신호(PINDEX)를 수신하여 이들 신호가 동일한지를 비교하고, 제2비교부(CP2)는 버퍼(200)에 저장된 블럭태그신호(BTi)와 어드레스 래치(520,580)의 입력(LI1,LI2)인 프리태그신호(PTAG)를 수신하여 이들 신호가 동일한지를 비교한다(버퍼비교단계(S10)). 제1논리곱(AND1) 및 플립플롭(FF)에 의해 프리인덱스신호(PINDEX)와 블럭인덱스신호(BIDi)가 동일하고, 프리태그신호(PTAG)와 블럭태그신호(BTi)가 동일하고, 블럭유효비트(BVi)가 활성화되어 있으면 버퍼비교부(300)는 도 5(b)의 타이밍도 도시된 바와 같이 캐쉬 동작에 따른 메모리 접근이 시작되기 전의 T0에서 T1시간에 프리버퍼 히트 유무를 판단하여 프리버퍼 히트신호(pre buffer hit)를 출력하고, 버퍼(200)의 블럭데이터들(BDi) 중 중앙처리장치가 새롭게 요구한 데이터를 중앙처리장치로 출력하고 캐쉬 동작을 종료한다(블럭데이터 출력단계(S20)).
만약에 T0에서 T1시간에 프리인덱스신호(PINDEX)와 블럭인덱스신호(BIDi)가 동일하지 않거나, 프리태그신호(PTAG)와 블럭태그신호(BTi)가 동일하지 않거나, 블럭유효비트(BVi)가 비활성화되어 있으면 버퍼비교부(300)는 프리버퍼 미스신호(pre buffer miss)를 출력한다.
버퍼비교부(300)에서 프리버퍼 미스신호(pre buffer miss)가 출력되면 캐쉬비교부(400)는 중앙처리장치의 요구에 의한 메모리 접근시, 즉 T1에서 T2시간에 캐쉬히트 또는 캐쉬미스를 판별한다(캐쉬비교단계(S30)). 이때 캐쉬히트신호(cache hit)에 의해 캐쉬히트가 발생되면 중앙처리장치가 요구하는 데이터는 데이터 저장부(110)에 위치하고 있으므로 중앙처리장치로부터 입력되는 메모리 접근을 위한 새로운 어드레스의 태그(TAG)에 해당하는 데이터 저장부(110)에 저장된 블럭데이터로 버퍼(200)의 블럭데이터를 갱신하고 해당 블럭데이터들 중 중앙처리장치가 새롭게 요구한 데이터를 중앙처리장치로 출력하여 캐쉬 동작을 종료한다( 버퍼갱신단계(S40)).
따라서 본 발명의 캐쉬 메모리 장치(100)는 종래와는 달리 중앙처리장치의 요구에 의한 메모리 접근이 수행되기 이전에 버퍼비교부(300)에 의해 버퍼(200)의 블럭데이터(BDi)에 다음의 메모리 접근에 따라 중앙처리장치가 요구하는 데이터가 있는지의 유무인 버퍼히트 유무를 판단하므로써 버퍼비교부(300)에서 버퍼미스가 발생하더라도 캐쉬 동작을 수행하기 위한 T1에서 T2시간에 캐쉬히트 유무를 판단하여 메모리 접근을 위해 종래의 두개의 사이클이 요구되었으나 본 발명의 경우 한 개의 사이클로 종료되므로 중앙처리장치의 성능을 향상시킬 수 있다.
만약에 캐쉬비교부(400)에서 캐쉬미스가 판단되면 중앙처리장치로부터 요구되는 데이터를 포함하여 요구된 데이터의 인접한 데이터들을 블럭단위로 하는 블럭데이터를 주메모리로부터 전송받아 데이터 저장부(110) 및 버퍼에 저장하고, 중앙처리장치가 요구한 데이터를 출력하는 캐쉬미스 사이클을수행한다(캐쉬미스단계(S50)).
캐쉬 메모리 장치의 성능을 측정하기 위하여 반복수행횟수를 50으로 하여 성능측정용 프로그램인 드라이스톤(dhrystone) 벤치마크 프로그램의 수행결과를 비교하면 종래의 블럭버퍼링을 사용한 캐쉬 메모리 장치는 수행시간인 106,615클럭이 소요되나 본 발명의 캐쉬 메모리 장치의 경우 수행시간이 102,537클럭이 소요되므로 본 발명의 캐쉬 메모리 장치는 종래에 비해 약 3.98% 속도 향상이 이루어졌다.
본 발명의 블럭버퍼링을 사용한 캐쉬 메모리 장치 및 그 제어방법은 캐쉬 동작에 따른 메모리 접근 이전에 중앙처리장치가 요구하는 데이터가 버퍼의 블럭데이터에 존재하는지를 미리 검사하여 버퍼의 블럭데이터에 중앙처리장치가 요구하는 데이터가 없더라도 캐쉬 동작을 위한 메모리 접근시 한 사이클만이 소요되므로 중앙처리장치의 성능을 향상시킬 수 있다.

Claims (8)

  1. 파이프라인 구조를 갖는 중앙처리장치와 저속의 주메모리 사이에 위치하여 클럭신호에 동기되어 상기 중앙처리장치의 어드레스를 래치하는 어드레스 래치로부터 출력되어 어드레스 버스를 통해 입력되는 인덱스 및 태그에 따라 상기 중앙처리장치로부터 요구되는 데이터를 포함하여 그와 인접한 데이터들인 블럭데이터를 상기 주메모리로부터 전송받아 저장하거나 상기 중앙처리장치가 요구한 데이터를 중앙처리장치로 출력하여 상기 중앙처리장치가 고속으로 데이터를 접근하도록 하는 캐쉬 메모리 장치에 있어서,
    상기 중앙처리장치의 어드레스 래치로부터 출력되어 어드레스 버스를 통해 입력되는 인덱스에 따라 다수의 블럭데이터들을 저장하는 데이터 저장수단;
    상기 중앙처리장치의 어드레스 래치로부터 출력되어 어드레스 버스를 통해 입력되는 태그와 비교되는 각 블럭데이터에 대한 태그를 저장하는 태그 저장수단;
    각 블럭데이터에 대한 유효 상태를 나타내는 유효비트가 저장된 유효비트 저장수단;
    중앙처리장치의 이전의 데이터 요구에 따른 이전의 메모리 접근에 의해 상기 데이터 저장수단의 다수의 블럭데이터들 중 하나의 블럭데이터와 그 블럭데이터에 대한 블럭인덱스신호, 블럭유효비트 및 블럭태그신호들이 저장된 버퍼;
    상기 중앙처리장치의 어드레스 래치의 입력인 프리인덱스신호 및 프리태그신호를 수신하여 수신된 프리인덱스신호 및 프리태그신호들과 상기 버퍼에 저장된 블럭인덱스신호 및 블럭태그신호를 비교하고, 상기 블럭유효비트의 활성화유무를 판단하여 상기 어드레스 버스를 통해 입력되는 새로운 메모리 접근을 위한 어드레스에 따라 상기 중앙처리장치로부터 데이터 접근 요구전에 중앙처리장치로부터 요구되는 데이터가 버퍼의 블럭데이터 내에 있는지를 검사하여 중앙처리장치로부터 요구되는 데이터가 버퍼의 블럭데이터 내에 있으면 프리버퍼 히트신호를 출력하고 그렇지 않으면 프리버퍼 미스신호를 출력하는 버퍼비교수단; 및
    상기 버퍼비교수단에서 프리버퍼 미스신호가 출력되면 중앙처리장치로부터 입력되는 새로운 어드레스의 태그가 상기 태그 저장수단 내에 있는지를 검사하여 새로운 어드레스의 태그가 상기 태그 저장수단 내에 있으면 캐쉬히트신호를 출력하고 그렇지 않으면 캐쉬미스신호를 출력하는 캐쉬비교수단을 구비한 것을 특징으로 하는 캐쉬 메모리 장치.
  2. 제 1 항에 있어서, 상기 버퍼비교수단은
    상기 버퍼에 저장된 블럭인덱스신호와 상기 어드레스 래치의 입력인 프리인덱스신호를 수신하여 이들 신호가 동일한지를 비교하는 제1비교수단;
    상기 버퍼에 저장된 블럭태그신호와 상기 어드레스 래치의 입력인 프리태그신호를 수신하여 이들 신호가 동일한지를 비교하는 제2비교수단;
    상기 제1비교수단의 출력과 상기 제2비교수단의 출력 및 상기 버퍼에 저장된 블럭유효비트를 수신하여 이들을 논리곱하는 제1논리곱수단; 및
    상기 제1논리곱수단의 출력을 수신하여 상기 클럭신호를 수신하여 상기 클럭신호에 동기되어 상기 제1논리곱수단의 출력을 저장하는 플립플롭을 구비한 것을 특징으로 하는 캐쉬 메모리 장치.
  3. 제 1 항에 있어서, 상기 캐쉬비교수단은
    상기 중앙처리장치로부터 어드레스 버스를 통해 입력되는 새로운 어드레스의 인덱스에 따라 상기 태그 저장수단에 저장된 태그와 상기 중앙처리장치로부터 어드레스 버스를 통해 입력되는 새로운 어드레스의 태그가 동일한지를 비교하는 제3비교수단; 및
    상기 제3비교수단의 출력과 상기 유효비트 저장수단에 저장된 유효비트(Vi)를 논리곱하는 제2논리곱수단을 구비한 것을 특징으로 하는 캐쉬 메모리 장치.
  4. 제 1 항에 있어서, 상기 어드레스 래치는 상기 중앙처리장치의 실행단계와 메모리 접근단계에서 주메모리에 저장된 데이터의 주소를 저장하는 래치인 것을 특징으로 하는 캐쉬 메모리 장치.
  5. 제 1 항에 있어서, 상기 어드레스 래치는 상기 중앙처리장치의 명령어 패치시 주메모리에 저장된 명령어의 주소를 저장하는 래치인 것을 특징으로 하는 캐쉬 메모리 장치.
  6. 파이프라인 구조를 갖는 중앙처리장치와 저속의 주메모리 사이에 위치하여 클럭신호에 동기되어 상기 중앙처리장치의 어드레스를 래치하는 어드레스 래치로부터 출력되어 어드레스 버스를 통해 입력되는 인덱스 및 태그를 저장하는 인덱스 저장부, 태그 저장부, 상기 중앙처리장치로부터 요구되는 데이터를 포함하여 요구된 데이터의 인접한 데이터들을 블럭단위로 하는 블럭데이터를 상기 주메모리로부터 전송받아 저장하는 데이터 저장부, 중앙처리장치의 데이터 요구에 의해 요구된 데이터와 관련된 인덱스, 태그, 블럭데이터를 저장하는 버퍼로 구성되어 상기 중앙처리장치가 고속으로 데이터를 접근하도록 하는 캐쉬메모리 제어방법에 있어서,
    상기 중앙처리장치의 어드레스 래치의 입력인 프리인덱스신호 및 프리태그신호들과 상기 버퍼에 저장된 블럭인덱스신호 및 블럭태그신호들이 동일한지를 비교하고, 상기 블럭유효비트의 활성화유무를 판단하는 버퍼비교단계;
    상기 버퍼비교단계에서 상기 블럭유효비트가 활성화되고, 상기 프리인덱스신호와 상기 블럭인덱스신호가 동일하고, 상기 프리태그신호와 상기 블럭태그신호가 동일하면 상기 버퍼의 블럭데이터들 중 상기 중앙처리장치가 요구한 데이터를 중앙처리장치로 출력하고 캐쉬 동작을 종료하는 블럭데이터 출력단계;
    상기 버퍼비교단계에서 상기 블럭유효비트가 비활성화되거나, 상기 프리인덱스신호와 상기 블럭인덱스신호가 동일하지 않거나, 상기 프리태그신호와 상기 블럭태그신호가 동일하지 않으면 상기 중앙처리장치로부터 입력되는 어드레스의 태그가 상기 태그 저장부 내에 있는지를 검사하는 캐쉬비교단계;
    상기 캐쉬비교단계에서 상기 중앙처리장치로부터 입력되는 어드레스의 태그가 상기 태그 저장부 내에 있으면 검출된 태그에 해당하는 데이터 저장부에 저장된 블럭데이터로 버퍼의 블럭데이터를 갱신하고 해당 블럭데이터들 중 상기 중앙처리장치가 요구한 데이터를 중앙처리장치로 출력하고 캐쉬 동작을 종료하는 버퍼갱신단계; 및
    상기 캐쉬비교단계에서 상기 중앙처리장치로부터 입력되는 새로운 어드레스의 태그가 상기 태그 저장부 내에 없으면 상기 중앙처리장치로부터 요구되는 데이터를 포함하여 요구된 데이터의 인접한 데이터들을 블럭단위로 하는 블럭데이터를 상기 주메모리로부터 전송받아 데이터 저장부 및 버퍼에 저장하고, 중앙처리장치가 요구한 데이터를 출력하는 캐쉬미스단계를 구비한 것을 특징으로 하는 캐쉬메모리 제어방법.
  7. 제 6 항에 있어서, 상기 어드레스 래치는 상기 중앙처리장치의 실행단계와 메모리 접근단계에서 주메모리에 저장된 데이터의 주소를 저장하는 래치인 것을 특징으로 하는 캐쉬메모리 제어방법.
  8. 제 6 항에 있어서, 상기 어드레스 래치는 상기 중앙처리장치의 실행단계와 메모리 접근단계에서 주메모리에 저장된 데이터의 주소를 저장하는 래치인 것을 특징으로 하는 캐쉬메모리 제어방법.
KR10-2002-0069521A 2002-11-11 2002-11-11 블럭 버퍼링을 사용하는 캐쉬 메모리 장치 및 그 제어방법 KR100456215B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2002-0069521A KR100456215B1 (ko) 2002-11-11 2002-11-11 블럭 버퍼링을 사용하는 캐쉬 메모리 장치 및 그 제어방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2002-0069521A KR100456215B1 (ko) 2002-11-11 2002-11-11 블럭 버퍼링을 사용하는 캐쉬 메모리 장치 및 그 제어방법

Publications (2)

Publication Number Publication Date
KR20040041316A KR20040041316A (ko) 2004-05-17
KR100456215B1 true KR100456215B1 (ko) 2004-11-06

Family

ID=37338415

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2002-0069521A KR100456215B1 (ko) 2002-11-11 2002-11-11 블럭 버퍼링을 사용하는 캐쉬 메모리 장치 및 그 제어방법

Country Status (1)

Country Link
KR (1) KR100456215B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100698310B1 (ko) 2005-06-03 2007-03-23 엘지전자 주식회사 데이터 억세스 제어 장치 및 데이터 호출 방법

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0612326A (ja) * 1992-06-25 1994-01-21 Hitachi Ltd キャッシュ制御方式
KR950010939A (ko) * 1993-10-18 1995-05-15 프랑스와 앙드레프 공기중에 함유된 탄화수소를 흡착에 의해 제거하는 방법
US5479636A (en) * 1992-11-16 1995-12-26 Intel Corporation Concurrent cache line replacement method and apparatus in microprocessor system with write-back cache memory
JPH0816467A (ja) * 1994-06-27 1996-01-19 Nec Niigata Ltd ライトバック・キャッシュ・メモリを有する演算処理装 置
KR19990068873A (ko) * 1998-02-02 1999-09-06 구본준 캐쉬 메모리
KR100278328B1 (ko) * 1992-04-29 2001-01-15 리패치 캐시 미스 버퍼

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100278328B1 (ko) * 1992-04-29 2001-01-15 리패치 캐시 미스 버퍼
JPH0612326A (ja) * 1992-06-25 1994-01-21 Hitachi Ltd キャッシュ制御方式
US5479636A (en) * 1992-11-16 1995-12-26 Intel Corporation Concurrent cache line replacement method and apparatus in microprocessor system with write-back cache memory
KR950010939A (ko) * 1993-10-18 1995-05-15 프랑스와 앙드레프 공기중에 함유된 탄화수소를 흡착에 의해 제거하는 방법
JPH0816467A (ja) * 1994-06-27 1996-01-19 Nec Niigata Ltd ライトバック・キャッシュ・メモリを有する演算処理装 置
KR19990068873A (ko) * 1998-02-02 1999-09-06 구본준 캐쉬 메모리

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100698310B1 (ko) 2005-06-03 2007-03-23 엘지전자 주식회사 데이터 억세스 제어 장치 및 데이터 호출 방법

Also Published As

Publication number Publication date
KR20040041316A (ko) 2004-05-17

Similar Documents

Publication Publication Date Title
US6978350B2 (en) Methods and apparatus for improving throughput of cache-based embedded processors
US5828860A (en) Data processing device equipped with cache memory and a storage unit for storing data between a main storage or CPU cache memory
KR100747127B1 (ko) 경로 예측 실패시 조회를 지시하도록 비예측 경로들로부터부분적인 태그들을 제공하는 캐쉬
US6138212A (en) Apparatus and method for generating a stride used to derive a prefetch address
US9396117B2 (en) Instruction cache power reduction
US8499123B1 (en) Multi-stage pipeline for cache access
US7047362B2 (en) Cache system and method for controlling the cache system comprising direct-mapped cache and fully-associative buffer
US7631149B2 (en) Systems and methods for providing fixed-latency data access in a memory system having multi-level caches
JPH1074166A (ja) 多重レベル・ダイナミック・セット予測方法および装置
US6560679B2 (en) Method and apparatus for reducing power consumption by skipping second accesses to previously accessed cache lines
US6237064B1 (en) Cache memory with reduced latency
US7313655B2 (en) Method of prefetching using a incrementing/decrementing counter
US6938126B2 (en) Cache-line reuse-buffer
US20030037217A1 (en) Accessing memory units in a data processing apparatus
US8271732B2 (en) System and method to reduce power consumption by partially disabling cache memory
US7346741B1 (en) Memory latency of processors with configurable stride based pre-fetching technique
JP3590427B2 (ja) 先行読出機能付命令キャッシュメモリ
US7577791B2 (en) Virtualized load buffers
US10310735B2 (en) Data storage
US6434670B1 (en) Method and apparatus for efficiently managing caches with non-power-of-two congruence classes
MX2009001747A (es) Metodos y aparatos para reducir las busquedas en una memoria cache de direccion destino de saltos.
US6823430B2 (en) Directoryless L0 cache for stall reduction
US7346737B2 (en) Cache system having branch target address cache
US11327768B2 (en) Arithmetic processing apparatus and memory apparatus
KR100456215B1 (ko) 블럭 버퍼링을 사용하는 캐쉬 메모리 장치 및 그 제어방법

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

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20131023

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20141027

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20151023

Year of fee payment: 12

LAPS Lapse due to unpaid annual fee