KR100314001B1 - 가변라인사이즈를가지는캐시메모리 - Google Patents

가변라인사이즈를가지는캐시메모리 Download PDF

Info

Publication number
KR100314001B1
KR100314001B1 KR1019980042761A KR19980042761A KR100314001B1 KR 100314001 B1 KR100314001 B1 KR 100314001B1 KR 1019980042761 A KR1019980042761 A KR 1019980042761A KR 19980042761 A KR19980042761 A KR 19980042761A KR 100314001 B1 KR100314001 B1 KR 100314001B1
Authority
KR
South Korea
Prior art keywords
cache
line size
memory
tag
register
Prior art date
Application number
KR1019980042761A
Other languages
English (en)
Other versions
KR20000025609A (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 KR1019980042761A priority Critical patent/KR100314001B1/ko
Publication of KR20000025609A publication Critical patent/KR20000025609A/ko
Application granted granted Critical
Publication of KR100314001B1 publication Critical patent/KR100314001B1/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/0877Cache access modes
    • G06F12/0886Variable-length word access
    • 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
    • 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/30098Register arrangements

Landscapes

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

Abstract

본 발명은 가변 라인사이즈를 가지는 캐시구조에 관한 것으로, 종래의 기술에 있어서는 캐시의 라인사이즈가 고정되어 있기 때문에 응용 프로그램의 특성에 따라 캐시의 힛트율이 변하게 되고, 특히 큰 공간특성을 가지는 응용 프로그램의 경우 빈번한 캐시미스를 유발하게 되는 문제점이 있었다. 따라서, 본 발명은 캐시 컨트롤러와 캐시 메모리 및 태그 메모리로 구성된 캐시 메모리에 있어서, 연속적인 캐시미스가 발생 되는지를 판단하여 캐시의 라인사이즈를 변경시키는 라인사이즈 제어부를 더 포함하여 구성함으로써, 연속적인 캐시미스가 발생하는지 여부를 검출하여 실행되는 응용 프로그램의 시간이나 공간적 특성에 따라 라인사이즈를 적절히 가변할 수 있게 하여 어떠한 응용 프로그램을 실행하더라도 최적의 힛트율을 얻을 수 있도록 하는 효과가 있다.

Description

가변 라인사이즈를 가지는 캐시 메모리{CHCHE MEMORY HAVING VARIABLE LINE SIZE}
본 발명은 가변 라인사이즈를 가지는 캐시 메모리에 관한 것으로, 특히 응용 프로그램의 시간적 공간적 특성에 따라 캐시 메모리의 유효 라인사이즈(effective line size)를 가변시켜 최적의 힛트율을 얻을 수 있도록 하는 가변 라인사이즈를 가지는 캐시 메모리에 관한 것이다.
종래 캐시 메모리의 구조는 태그(tag) 메모리, 캐시 메모리, 캐시 컨트롤러로 구성된다.
여기서, 태그 메모리는 씨피유가 주 메모리를 읽기위해 임의의 주소를 내보내면 주 메모리의 내용이 동시에 캐시에 복사되어 다음에 똑같은 주소를 호출하면 이에 해당하는 캐시가 읽어지고, 또 같은 주소가 참조되어 있는지를 알기 위해 상기 주소값을 저장하기 위한 메모리다.
또한, 캐시 컨트롤러는 요구된 메모리 주소의 태그 필드(tag_field)와 태그 메모리에서 출력되는 태그값을 비교하기 위한 로직을 구비하고, 캐시미스(cache miss) 발생시 기억장소(memory location)의 내용을 페치(fetch)하여 캐시 메모리에 저장하는 등의 동작을 제어하는 역할을 수행한다.
다음, 캐시 메모리는 주기억 장치로 사용되는 메모리(주메모리)보다 상대적으로 빠른 속도의 램을 이용하여 그곳에 씨피유가 처리한 명령을 저장했다가 다시 그 명령을 읽을 경우 주메모리가 아닌 캐시를 읽음으로서 처리 속도를 향상시킨다.
한편, 라인사이즈(line size)는 캐시미스 발생시 메모리로 부터 데이터를 읽어 들일 경우, 씨피유가 요구한 데이터 뿐만 아니라 그 데이터를 포함하는 일정한 크기의 메모리 블록을 함께 읽어올 때 그 크기를 의미하는 것으로, 이 라인사이즈가 클 경우 공간적인 액세스 특성(spatial locality, 이하 공간특성)이 큰 데이터 액세스시 높은 힛트율(hit ratio)을 나타내게 된다.
반면, 시간적인 액세스 특성(temporal locality, 이하 시간특성)이 큰 데이터 액세스의 경우는 캐시사이즈가 커짐에 따라 같은 라인사이즈에서 캐시미스가 빈번하게 발생할 가능성이 큰데 이를 보완하기 위해 세트-어소시어티브(set associative) 캐시 구조를 사용하게 된다.
한편, 라인사이즈와 힛트율과의 관계를 살펴보면 캐시사이즈가 일정하다고 할 때, 라인사이즈가 크면 공간특성이 큰 데이터 액세스에서 높은 힛트율을 나타내며, 라인사이즈가 작으면 시간특성이 큰 데이터 액세스에서 높은 힛트율을 나타낸다.
따라서, 캐시 메모리의 구조를 설계할 경우 그 시스템에서 나타나는 일반적인 데이터 액세스 패턴을 미리 관찰하여 최적의 라인사이즈를 결정해야 된다.
그러나, 실행되는 응용 프로그램의 데이터 액세스 패턴은 각 응용 프로그램마다 다르기 때문에 상기와 같이 관찰에 의해 라인사이즈를 결정하더라도 그 라인사이즈가 모든 응용 프로그램에서 최적의 값이 될 수는 없다.
이와 같이, 상기 종래의 기술에 있어서는 캐시의 라인사이즈가 고정되어 있기 때문에 응용 프로그램의 특성에 따라 캐시의 힛트율이 변하게 되고, 특히 큰 공간특성을 가지는 응용 프로그램의 경우 빈번한 캐시미스를 유발하게 되는 문제점이 있었다.
따라서, 본 발명은 상기와 같은 종래의 문제점을 해결하기 위하여 창출한 것으로, 실행되는 응용 프로그램의 시간특성이나 공간특성에 따라 라인사이즈를 가변할 수 있도록 함으로써, 어떠한 특성을 갖는 응용 프로그램을 실행하더라도 최적의 힛트율을 얻을 수 있도록 하는 가변 라인사이즈를 가지는 캐시 메모리를 제공 하는데 그 목적이 있다.
도1은 본 발명에 의한 가변 라인사이즈를 가지는 캐시 메모리의 구조를 보인 개략적인 블록도.
***도면의 주요 부분에 대한 부호의 설명***
100 : 라인사이즈 제어부 101,102 : 태그 레지스터
103 : 비교부 104 : 레지스터
105,106 : 시프트 레지스터 107 : 덧셈/뺄셈부
108 : 비교부 XOR1 : 배타적 오아 게이트
AND1 : 앤드 게이트 NAND1 : 낸드 게이트
이와 같은 목적을 달성하기 위한 본 발명의 구성은, 캐시 컨트롤러와 캐시 메모리 및 태그 메모리로 구성된 캐시 구조에 있어서, 연속적인 캐시미스가 발생 되는지를 판단하여 캐시의 라인사이즈를 변경시키는 라인사이즈 제어부를 더 포함하여 구성함으로써 달성되는 것으로, 본 발명에 따른 실시예를 첨부된 도면을 참조하여 상세히 설명하면 다음과 같다.
도1은 본 발명에 의한 가변 라인사이즈를 가지는 캐시구조를 보인 개략적인 블록도로서, 이에 도시한 바와 같이 캐시 컨트롤러(10)와 캐시 메모리(20) 및 태그 메모리(30)로 구성된 캐시 메모리에 있어서, 상기 태그 메모리로 부터 연속하여 액세스되는 캐시 주소의 태그를 기억하고 시프트시키기 위한 태그 레지스터(101,102)와; 상기 태그 레지스터(101,102)에 저장되어 있는 태그를 서로 비교하는 비교부(103) 및 배타적 오아 게이트(XOR1)와; 상기 비교부(103)와 배타적 오아 게이트(XOR1)의 출력을 앤드 조합하여 래치 인에이블 신호(LE)를 출력하는 앤드 게이트(AND1)와; 상기 래치 인에이블 신호에 동기하여 연속되는 캐시미스의 횟수를 저장하는 레지스터(104)와; 캐시 컨트롤러(10)에서 발생하는 캐시미스 신호(MISS)를 저장하기 위한 시프트 레지스터(105,106)와; 상기 시프트 레지스터(105,106)를 낸드 조합하여 덧셈/뺄셈 신호(A/S)를 출력하는 낸드 게이트(NAND1)와; 상기 낸드 게이트(NAND1)에서 출력하는 덧셈/뺄셈 신호(A/S)에 따라 레지스터(104)의 값에 1을 더하거나 빼는 덧셈/뺄셈부(107)와; 상기 레지스터(104)에 저장되어 있는 내용을 임의의 상위 기준값(UT : Upper Threshold)과 하위 기준값(LT : Lower Threshold)으로 비교하여 캐시 컨트롤러(10)에 라인사이즈 신호(LS)를 출력하는 비교부(108)로 구성된 것으로, 이와 같이 구성한 본 발명의 동작 및 작용을 설명한다.
일단, 씨피유(40)가 처리하고자 하는 메모리의 주소를 캐시 컨트롤러(10)에 요구하게 되면, 캐시 컨트롤러(10)는 이 요구에 의해 캐시 메모리(20)와 그에 해당하는 태그 메모리(30)를 액세스하기 위해 상기 주소를 어드레스 버스에 싣게 된다.
이에 따라, 태그 메모리(30)에서는 상기 캐시 컨트롤러(10)가 요청한 어드레스를 태그 버스로 출력하게 되며, 캐시 컨트롤러(10)는 이 태그 버스의 내용과 씨피유(40)가 요구한 메모리 번지의 태그 필드를 비교하여 캐시의 히트/미스를 결정하게 되고, 캐시미스가 되면 캐시미스 신호(MISS)를 출력한다.
또한, 태그 메모리(30)로 부터 출력된 태그는 태그 레지스터(101,102)에 차례로 래치 및 시프트되어 연속적으로 액세스되는 메모리 블록에 대한 태그를 저장하게 된다.
이에 따라 비교부(103)는 상기 태그 레지스터(101,102)의 최하위 비트를 제외한내용을 비교하여 같을 경우 1을 출력하며, 반대로 배타적 오아 게이트(XOR1)는 상기 태그 레지스터(101,102)의 최하위 비트만 비교하여 서로 다를 경우 1을 출력하게 된다.
이에 따라, 앤드 게이트(AND1)에서는 상기 출력을 앤드 조합하여 연속적으로 액세스되는 메모리 블록 어드레스의 태그 어드레스 부분이 상위 비트는 같고 최하위 비트만 다를 경우 1이 되어 래치 인에이블 신호(LE)를 출력하게 된다.
한편, 시프트 레지스터(105,106)는 캐시 컨트롤러(10)로 부터 캐시미스 신호(MISS)를 입력받아 래치 및 시프트하게 되는데, 이는 연속적인 캐시미스 이력(history)을 저장하는 것이 되며 상기 시프트 레지스터(105,106)의 내용이 모두 '1' 즉, 연속적인 캐시미스가 발생하였을 경우 낸드게이트(NAND1)의 출력은 0으로 덧셈신호가 되어 입력에 '1'을 더하여 출력한다.
그러나, 상기 시프트 레지스터(105,106)의 내용이 모두 '0' 즉, 연속이 아닌 캐시미스가 발생하였을 경우 낸드게이트(NAND1)의 출력은 1로 뺄셈신호가 되어 입력에서 '1'을 뺀 결과를 출력하게 된다.
이에 따라 덧셈/뺄셈부(107)의 출력은 래치 인에이블 신호(LE)가 출력되는 싯점에 맞춰 레지스터(104)에 저장된다.
즉, 레지스터(104)의 내용은 메모리 액세스가 인접한 메모리 블록에 대해서 이루어질 경우 연속된 캐시미스에 대해서는 1씩 증가되며 그 이외에는 1씩 감소하게 되어 캐시미스가 얼마만큼 연속적으로 발생하게 되는지를 표시하게 되는 것이다.
따라서, 비교부(108)는 상기 레지스터(104)의 값이 임의의 상위 기준값(UT)과하위 기준값(LT)의 범위를 벗어나는지를 비교하여, 상위 기준값보다 클 경우는 '1'의 라인사이즈 제어신호(LS)를 출력하고, 하위 기준값보다 작을 경우는 '0'의 라인사이즈 제어신호(LS)를 출력한다.
상기 라인사이즈 제어신호(LS)를 입력받은 캐시 컨트롤러(10)는 각각의 경우 서로 다른 라인사이즈로 동작을 하게 되며, 그 이외의 경우는 과거의 라인사이즈를 그대로 유지하게 한다.
이때, 상기에서 상위 기준값과 하위 기준값을 두어 범위를 설정하는 것은, 단지 하나의 기준값을 설정할 경우 기준값 근처에서 캐시미스 발생율이 높을 경우 라인사이즈가 수시로 가변되는 현상을 막기 위한 일종의 슈미트 트리거 역할을 수행하는 것이다.
즉, 캐시미스가 발생하였을 경우 캐시 컨트롤러(10)는 그 미스 메모리 블록을 주 메모리(미도시)로 부터 로드(Load)하게 되며, 이 전송 단위가 하나의 캐시 라인이 되어 라인사이즈 제어신호(LS)가 0일 경우, 캐시 컨트롤러(10)는 종래의 방식대로 하나의 캐시 라인만을 메모리로부터 로드하게 되며, 라인사이즈 제어신호(LS)가 1일 경우는 캐시미스된 해당 캐시 라인과 함께 연속적으로 다음 메모리 블록을 읽어와 저장하게 된다.
따라서, 캐시 자체의 구조는 변하지 않으면서 메모리로 부터 로드되는 블록의 크기는 두배로 증가하게 되므로 캐시의 라인사이즈가 증가된 효과를 낳게 되어 힛트율을 높일 수 있게 된다.
이상에서 설명한 바와 같이 본 발명 가변 라인사이즈를 가지는 캐시 메모리는 연속적인 캐시미스가 발생하는지 여부를 검출하여 실행되는 응용 프로그램의 시간이나 공간적 특성에 따라 라인사이즈를 적절히 가변시킴으로써, 어떠한 응용 프로그램을 실행하더라도 최적의 힛트율을 얻을 수 있도록 하는 효과가 있다.

Claims (1)

  1. 캐시 컨트롤러와 캐시 메모리 및 태그 메모리로 구성된 캐시 메모리에 있어서, 상기 태그 메모리로 부터 연속하여 액세스되는 캐시 주소의 태그를 기억하고 시프트시키기 위한 태그 레지스터(101,102)와; 상기 태그 레지스터에 저장되어 있는 태그를 서로 비교하는 비교부(103) 및 배타적 오아 게이트와; 상기 비교부(103)와 배타적 오아 게이트의 출력을 앤드 조합하여 래치 인에이블 신호(LE)를 출력하는 앤드 게이트와; 상기 래치 인에이블 신호에 동기하여 연속되는 캐시미스의 횟수를 저장하는 레지스터(104)와; 캐시 컨트롤러에서 발생하는 캐시미스 신호(MISS)를 저장하기 위한 시프트 레지스터(105,106)와; 상기 시프트 레지스터를 낸드 조합하여 덧셈/뺄셈 신호(A/S)를 출력하는 낸드 게이트와; 상기 낸드 게이트에서 출력하는 덧셈/뺄셈 신호(A/S)에 따라 레지스터(104)의 값에 1을 더하거나 빼는 덧셈/뺄셈부와; 상기 레지스터(104)에 저장되어 있는 내용을 임의의 상위 기준값과 하위 기준값으로 비교하여 캐시 컨트롤러에 라인사이즈 제어신호(LS)를 출력하는 비교부(108)로 구성하여, 연속적인 캐시미스가 발생 할 경우 캐시의 라인사이즈를 변경시키는 라인사이즈 제어부를 더 포함하여 구성한 것을 특징으로 하는 가변 라인사이즈를 가지는 캐시 메모리.
KR1019980042761A 1998-10-13 1998-10-13 가변라인사이즈를가지는캐시메모리 KR100314001B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019980042761A KR100314001B1 (ko) 1998-10-13 1998-10-13 가변라인사이즈를가지는캐시메모리

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019980042761A KR100314001B1 (ko) 1998-10-13 1998-10-13 가변라인사이즈를가지는캐시메모리

Publications (2)

Publication Number Publication Date
KR20000025609A KR20000025609A (ko) 2000-05-06
KR100314001B1 true KR100314001B1 (ko) 2001-12-12

Family

ID=19553866

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980042761A KR100314001B1 (ko) 1998-10-13 1998-10-13 가변라인사이즈를가지는캐시메모리

Country Status (1)

Country Link
KR (1) KR100314001B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101265295B1 (ko) 2009-09-29 2013-05-20 한국전자통신연구원 메모리정합부별로 가변할당 가능한 캐쉬 장치 및 방법

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100546298B1 (ko) * 1999-09-15 2006-01-26 삼성전자주식회사 Arm7t 프로세서를 이용한 마이크로 프로세서에서 명령어 모드에 따른 캐쉬 메모리의 라인 사이즈 제어 방법 및 그 장치
KR100723475B1 (ko) * 2004-03-30 2007-05-31 삼성전자주식회사 캐쉬 메모리 시스템과 버스의 버스 레이턴시 변화에 따라캐쉬 메모리의 라인 사이즈를 변경하는 방법
KR100648293B1 (ko) 2005-08-09 2006-11-23 삼성전자주식회사 그래픽 시스템 및 그것의 그래픽 처리 방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6055455A (ja) * 1983-09-06 1985-03-30 Mitsubishi Electric Corp 高速緩衝記憶装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6055455A (ja) * 1983-09-06 1985-03-30 Mitsubishi Electric Corp 高速緩衝記憶装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101265295B1 (ko) 2009-09-29 2013-05-20 한국전자통신연구원 메모리정합부별로 가변할당 가능한 캐쉬 장치 및 방법

Also Published As

Publication number Publication date
KR20000025609A (ko) 2000-05-06

Similar Documents

Publication Publication Date Title
CA1238984A (en) Cooperative memory hierarchy
KR100339904B1 (ko) 캐시 프로세스용 시스템 및 방법
US7958311B2 (en) Cache line replacement techniques allowing choice of LFU or MFU cache line replacement
US6425055B1 (en) Way-predicting cache memory
US9292447B2 (en) Data cache prefetch controller
US7047362B2 (en) Cache system and method for controlling the cache system comprising direct-mapped cache and fully-associative buffer
US20100217937A1 (en) Data processing apparatus and method
JPH07271672A (ja) マルチウェイセットアソシアティブキャッシュシステム
US20090177842A1 (en) Data processing system and method for prefetching data and/or instructions
US6334173B1 (en) Combined cache with main memory and a control method thereof
WO2010004497A1 (en) Cache management systems and methods
US20030131218A1 (en) Method and apparatus for mapping software prefetch instructions to hardware prefetch logic
JPWO2007099598A1 (ja) プリフェッチ機能を有するプロセッサ
US6560676B1 (en) Cache memory system having a replace way limitation circuit and a processor
KR20070040340A (ko) 소형 캐시 시스템에서 원자적 보존 라인에 라이트백하는것을 배제하는 방법 및 시스템
JP3590427B2 (ja) 先行読出機能付命令キャッシュメモリ
US6434670B1 (en) Method and apparatus for efficiently managing caches with non-power-of-two congruence classes
US20020116581A1 (en) Memory aliasing in a processor system
US20040059873A1 (en) Stream-down prefetching cache
KR100314001B1 (ko) 가변라인사이즈를가지는캐시메모리
US20150193348A1 (en) High-performance data cache system and method
US5787467A (en) Cache control apparatus
US7346735B2 (en) Virtualized load buffers
US11048637B2 (en) High-frequency and low-power L1 cache and associated access technique
EP1318450A2 (en) Address range checking circuit and method of operation

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee