KR100257750B1 - 메모리 겸용 캐시 - Google Patents

메모리 겸용 캐시 Download PDF

Info

Publication number
KR100257750B1
KR100257750B1 KR1019970060520A KR19970060520A KR100257750B1 KR 100257750 B1 KR100257750 B1 KR 100257750B1 KR 1019970060520 A KR1019970060520 A KR 1019970060520A KR 19970060520 A KR19970060520 A KR 19970060520A KR 100257750 B1 KR100257750 B1 KR 100257750B1
Authority
KR
South Korea
Prior art keywords
cache
way
tag
memory
data
Prior art date
Application number
KR1019970060520A
Other languages
English (en)
Other versions
KR19990040197A (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 KR1019970060520A priority Critical patent/KR100257750B1/ko
Priority to US09/192,541 priority patent/US6334173B1/en
Priority to TW087119393A priority patent/TW420870B/zh
Publication of KR19990040197A publication Critical patent/KR19990040197A/ko
Application granted granted Critical
Publication of KR100257750B1 publication Critical patent/KR100257750B1/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/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
    • 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/0875Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
    • 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/0893Caches characterised by their organisation or structure
    • 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/30098Register arrangements
    • G06F9/30101Special purpose registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/25Using a specific main memory architecture
    • G06F2212/251Local memory within processor subsystem
    • G06F2212/2515Local memory within processor subsystem being configurable for different purposes, e.g. as cache or non-cache memory

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

본 발명은 n-way 캐시 구조에서 최소한의 제어 회로만을 추가하여 캐시를 메인 메모리로도 이용할 수 있어, 캐시의 활용을 극대화할 수 있는 n-way 캐시 구조의 메모리 겸용 캐시를 제공하기 위한 것으로, 이를 위해 본 발명은 종래의 n-way 캐시 구조에 마이크로프로세서 자체 하드웨어를 제어하기 위한 시스템 플래그의 저장수단에 저장되어 있는 상기 마이크로프로세서의 캐시 수행 동작을 나타내는 캐시/메모리 비트에 응답하여, 상기 캐시가 메인 메모리로서 동작할때는 상기 각 웨이의 해당 번호를 선택하여 상기 각 웨이의 태그 레지스터에 세팅하고, 상기 캐시가 캐시 자체로서 동작할 때는 상기 주소 버스의 태그 필드를 선택하여 상기 태그 레지스터에 세팅하는 선택 수단을 더 포함하여 구성되며, 상기 캐시가 메인 메모리로서 동작할 때 상기 각 웨이의 유효 비트 레지스터를 모두 유효한 것으로 세팅하는 내부 캐시를 메인 메모리로 활용할 수 있도록 한다.

Description

메모리 겸용 캐시
본 발명은 마이크로프로세서의 내부 캐시(internal cache)를 메인 메모리(main memory)로 활용할 수 있도록 고안한 장치로서, 특히 다수개의 웨이 구조(n-way,이하 n-way라 함.)로된 메모리 겸용 캐시에 관한 것이다.
고성능 마이크로프로세서(Microprocessor)의 경우, 프로세서의 성능 향상을 위해 프로세서 내부에 대용량의 캐시(cache)를 포함하고 있다. 캐시란 억세스(access) 속도가 느린 저장 매체(즉, 메인 메모리)에 존재하는 데이터들 중 자주 쓰는 데이터를 억세스 속도가 보다 빠른 저장 매체인 캐시에 저장해 놓고 필요한 데이터를 보다 빠르게 마이크로프로세서로 전달하여 시스템의 성능 향상을 꾀한 것으로서, 대부분의 컴퓨터 시스템에서 메인 메모리는 값이 싸면서도 대용량으로 구현하기 용이한 디램(Dynamic Random Access Memory, DRAM)을 사용하고, 캐시 메모리로는 값은 비싸지만 억세스 속도가 빠른 에스램(Static Random Access Memory,SRAM)을 사용한다. 퍼스널컴퓨터(Personal Computer, 이하 PC라 함)의 경우 성능 발달로 펜티엄(Pentium) 등의 고성능 PC는 대용량의 캐시 메모리를 마이크로프로세서 내부에 탑재하고 있으며, 펜티엄의 경우 16K바이트, 펜티엄-프로(Pentium-pro)의 경우는 16K바이트 내부 캐시 외에도 512K바이트의 에스램 캐시까지 내장하고 있다.
메모리에서 어떤 데이터를 가져올 때, 그 데이터가 캐시에 올라와 있어 메인 메모리의 억세스 없이 그 데이터를 이용할 수 있을 때 이것을 캐시 히트(cache hit)라 하고, 캐시에서 바로 데이터를 가져온다. 캐시 미스(cache miss, 어떤 데이터가 캐시에 올라와 있지 않은 경우)인 경우에는 메인 메모리(외부 메모리 모듈)를 억세스하여 데이터를 가져온다. 이때, 캐시에 빈자리가 있으면 현재 억세스한 데이터 근처의 데이터를 적당한 양만큼 읽어와 캐시에 저장한다.(프로세스의 지역성을 고려하여) 그때, 캐시에 빈자리가 없으면 교체 알고리듬(새로운 블록이 메인 메모리로부터 복사되어 캐시 메모리로 올라오는 경우 그 위치에 원래 있던 내용은 없어지는 데 이때 어떤 블록이 없어지는 것이 가장 좋은 지 선택하는 것, 예를 들면, random, LRU-Least Recently Used-, FIFO-First In First Out- 등과 같은)에 의해 필요 없다고 생각되는 데이터 블록을 교체하여 해당 블록에 로딩한다.
n-way 캐시 구조는 캐시 히트 비율(cache hit rate)을 높이기 위해 데이터 저장 장소를 n만큼 늘린 캐시 구조로서, 도1과 같이 주소 버스를 적당한 크기로 나눈 태그 필드(Tag field)와 옵셋 필드(Offset field)로 분리해 캐시의 제어에 이용한다. n-way 캐시는, 캐시에 데이터를 로딩할 때 주소의 태그 필드를 태그 레지스터에 저장하고, 옵셋 필드는 캐시 내의 데이터를 가져올 때 1 웨이 요소 안에서 어떤 데이터를 가져올 지를 정하는 데 사용한다. 설명의 편리함을 위해 주소는 16비트, 옵셋 필드는 2비트, 태그 필드는 14비트, 데이터 버스는 8비트라고 가정한다. 그리고 웨이는 4웨이로 가정한다.
도2는 캐시 기능으로서만 사용되는 종래의 4웨이 캐시 구조를 도시한 것으로서, 주소 버스의 태그 필드와 옵셋 필드가 4개의 웨이, 웨이 0(way 0), 웨이 1(way 1), 웨이2(way 2), 웨이3(way 3) 각각에 입력되고, 4개의 웨이로부터 출력되는 각 웨이 히트 신호를 논리합하여 4개의 웨이 중 하나라도 웨이 히트(way hit)가 발생하면 캐시 히트를 발생하는 논리합 게이트(10)와, 각 웨이 히트 신호를 제어신호로 입력받아 4개의 웨이 중 하나를 선택하여 데이터 버스에 실리거나, 웨이 히트가 발생한 웨이로 데이터를 보내주는 제1 멀티플렉서(11)를 포함한다.
도3은 각 웨이의 내부 구조를 도시한 것으로서, 먼저 캐시에 데이터를 로딩할 때 주소 버스를 통해 입력된 14비트의 태그 필드가 저장되는 태그 레지스터(30), 이 태그 레지스터(30)에 저장된 태그 값과 캐시로부터 데이터를 읽기 위해 입력된 주소 버스의 태그 필드를 비교하는 제1 비교기(31), 이 제1 비교기(31)를 통해 비교된 후 그 결과에 응답하여 태그 히트를 나타내는 태그 히트 래치(32), 입력된 주소 버스의 2비트 옵셋 필드를 제어신호로 받아 4개의 8비트 데이터 레지스터(33) 중 해당 데이터 레지스터를 선택해 그 내용을 데이터 버스로 출력하는 제2 멀티플렉서(34), 입력된 주소 버스의 2비트 옵셋 필드를 제어신호로 받아 4개의 1비트 유효 비트(Valid bit) 레지스터(35,4개의 데이터 레지스터(33) 각각의 값이 유효한 값임을 나타내는) 중 해당 유효 비트 레지스터의 내용을 출력하는 제3 멀티플렉서(36), 및 태그 히트 래치(32)와 제3 멀티플렉서(36)로부터의 출력값을 논리곱하여 캐시 히트 신호를 발행하는 논리곱게이트(37)로 이루어진다. 입력된 주소 태그 필드는 태그 레지스터(30)에 저장된 값과 비교된 후 이 값들이 서로 같을 때 태그 히트 래치(32)가 "1"로 세팅된다. 그리고, 입력된 주소의 2비트 옵셋 필드는 캐시 내에 있는 4개의 데이터 레지스터(33) 중에서 하나를 선택해 그 값을 데이터 버스에 싣고, 각 레지스터에 대하여 한 비트씩 존재하는 유효 비트들 중에서 옵셋이 가리키는 유효 비트를 선택하는 역할을 한다. 태그 히트 래치(32)가 "1"이고, 선택된 유효 비트가 "1"이면 캐시 히트는 "1"로 세팅된다.
상기와 같은 구조의 n-way 캐시를, 캐시의 용량이 점차 커지고 있고, 마이크로프로세서 및 마이크로컨트롤러의 동작에는 반드시 데이터 저장을 위한 램, 즉 읽고 쓰는 것이 가능한 메모리 모듈이 필요하다는 점에서, 대용량의 캐시를 내장한 마이크로프로세서가 컴퓨터 시스템에서(즉, 매우 큰 메모리 용량을 필요로하는 시스템) 범용 중앙처리장치(Central Process Unit,CPU)로 사용될 때는 캐시를 캐시 고유의 용도로 사용하고, 작은 메모리 용량과 고속처리를 요하는 시스템 제어용으로 사용될 때는 대용량의 캐시를 메모리로 할당하여 사용함으로써, 시스템의 처리 속도를 개선하고, 캐시의 활용을 극대화하고자 한다.
본 발명은 상기와 같은 문제점을 해결하기 위하여 안출된 것으로서, n-way 캐시 구조에서 최소한의 제어 회로만을 추가하여 캐시를 메인 메모리로도 이용할 수 있어, 캐시의 활용을 극대화할 수 있는 n-way 캐시 구조의 메모리 겸용 캐시를 제공하는데 그 목적이 있다.
도1은 캐시(cache)에 입력되는 주소 버스의 필드(field)를 개념적으로 도시한 도면.
도2는 캐시 기능으로서만 사용되는 종래의 4웨이(way) 캐시 구조를 도시한 블록도.
도3은 종래의 각 웨이의 내부 구조를 도시한 블록도.
도4는 메모리 겸용 캐시의 개념도.
도5는 본 발명의 개념이 되는 알고리듬을 도시한 도면.
도6은 본 발명의 일실시예로서, 4-way 캐시 구조를 도시한 블록도.
도7은 본 발명의 4-way 캐시 구조 중 임의의 한 웨이에 대한 일실시예를 도시한 블록도.
상기 목적을 달성하기 위한 본 발명은 주소 버스의 태그 필드와 옵셋 필드가 다수개의 웨이에 각각 입력되고, 상기 각 웨이로부터 출력되는 웨이 히트 신호를 논리합하여 상기 각 웨이 중 하나라도 웨이 히트 신호가 발생하면 캐시 히트를 발생하는 논리합 게이트, 및 상기 각 웨이 히트 신호를 제어신호로 입력받아 상기 각 웨이 중 하나를 선택하여 데이터 버스에 실리거나, 상기 웨이 히트가 발생한 웨이로 데이터를 보내주는 제1 멀티플렉서를 포함하고, 상기 각 웨이는 캐시에 데이터를 로딩할 때 주소 버스를 통해 입력되는 태그 필드를 저장하는 태그 레지스터, 상기 태그 레지스터에 저장된 태그 값과 캐시로부터 데이터를 읽기 위해 입력된 주소 버스의 태그 필드를 비교하는 제1 비교기, 상기 제1 비교기를 통해 비교된 후 그 결과에 응답하여 태그 히트를 나타내는 태그 히트 래치, 상기 캐시 내부에 데이터를 저장하고 있는 다수개의 데이터 레지스터, 상기 입력된 주소 버스의 옵셋 필드를 제어신호로 받아 상기 다수개의 데이터 레지스터 중 해당 데이터 레지스터를 선택해 그 내용을 데이터 버스로 출력하는 제2 멀티플렉서, 상기 다수개의 데이터 레지스터 내용의 유효함을 각각 나타내는 다수개의 유효 비트 레지스터, 상기 옵셋 필드를 제어신호로 받아 상기 유효 비트 레지스터 중 해당 유효 비트 레지스터의 내용을 출력하는 제3 멀티플렉서, 및 상기 태그 히트 래치와 상기 제3 멀티플렉서로부터의 출력값을 논리곱하여 캐시 히트 신호를 발생하는 논리곱게이트를 포함하는 다수개 웨이의 캐시에 있어서, 상기 각 웨이는 마이크로프로세서 자체 하드웨어를 제어하기 위한 시스템 플래그의 저장수단에 저장되어 있는 상기 마이크로프로세서의 캐시 수행 동작을 나타내는 캐시/메모리 비트에 응답하여, 상기 캐시가 메인 메모리로서 동작할때는 상기 각 웨이의 해당 번호를 선택하여 상기 각 웨이의 태그 레지스터에 세팅하고, 상기 캐시가 캐시 자체로서 동작할 때는 상기 주소 버스의 태그 필드를 선택하여 상기 태그 레지스터에 세팅하는 선택 수단을 더 포함하여 이루어지고, 상기 캐시가 메인 메모리로서 동작할 때 상기 각 웨이의 유효 비트 레지스터를 모두 유효한 것으로 세팅하는 메모리를 겸용하는 다수개 웨이의 캐시를 포함하여 이루어진다.
이하, 첨부된 도면을 참조하여 본 발명을 상세히 살펴본다.
도4는 메모리 겸용 캐시를 개념적으로 도시한 것으로서, X바이트 크기의 내부 캐시(40) 및 마이크로프로세서 자체 하드웨어를 제어하기 위한 시스템 제어 레지스터(41)를 포함하는 마이크로프로세서(42)와, S바이트 크기의 마이크로프로세서가 억세스할 수 있는 메모리 영역(44)으로 구성된다. 종래의 시스템 제어 레지스터(41)의 각 비트는 마이크로프로세서를 구성하는 하드웨어 중 해당 비트로 제어가능한 부분을 제어하도록 설계되어 있는데, 본 발명에서 이러한 시스템 제어 레지스터 중 사용되지 않던 비트(reserved bit) 중에 적당한 비트를 하나 골라 캐시/메모리 비트(43)로 설정한다. 이 캐시/메모리 비트(43)에 셋팅(setting)된 값에 따라 캐시 메모리를 캐시로 쓸 것인지 메인 메모리로 쓸 것인지를 결정한다. 그 값이 "1"이면 메인 메모리로 사용하고, "0"이면 캐시로 사용한다고 가정한다. 그리고, 캐시 메모리(40)의 크기 X바이트의 X값은 마이크로프로세서 설계시 마이크로프로세서가 가장 효율적으로 동작할 수 있다고 판단되는 값으로 결정되고, 억세스할 수 있는 메모리 영역의 크기 S바이트의 값은 마이크로프로세서의 주소 버스의 비트 수로 결정된다. 가령 주소 비트 수가 10비트라면 S의 값은 2의 10승 즉 1024가 된다.
빗금친 캐시 메모리 영역이 캐시가 메모리로 사용될 때 억세스 가능한 주소 영역 중에서 캐시 메모리가 존재하는 영역을 말하며, 도면에서 도시된 것과 같이 캐시 메모리 영역은 캐시 메모리 매핑 시작점으로부터 캐시 메모리 크기만큼이 된다. 즉, 캐시 메모리 매핑 시작점이 "0"일 때 0번지부터 (X-1)번지까지가 캐시 매핑 영역이 된다.
또한, 마이크로프로세서가 시스템 제어용으로 사용될 경우 마이크로프로세서 내부 캐시를 메인 메모리로 활용할 수 있기 위해서는 메모리 컨트롤러의 동작 알고리듬이 도5에 도시된 알고리듬과 같이 변화되는데, 도5는 메모리로부터 데이터를 가져오는 알고리듬을 도시한 것으로서, 블록(BL) 내에 도시한 것이 본 발명의 개념이 되는 알고리듬이다. 도5를 참조하여 구체적으로 살펴보면, 마이크로프로세서 내 시스템 제어 레지스터(41)의 캐시/메모리 비트(43)를 확인하는 제1 단계(51), 캐시/메모리 비트(43)가 "1"인 경우 즉 캐시를 메모리로 사용하는 경우 주소가 캐시 메모리 영역 내에 존재하는지를 확인하는 제2 단계(52), 메모리 영역 내에 존재하지 않는 경우에는 외부 메모리 모듈에서 데이터를 가져오고(54), 주소가 캐시 메모리 영역 내에 존재하는 경우에는 캐시 메모리에서 데이터를 가져오는(53) 제3 단계로 이루어진다. 제1 단계에서, 캐시/메모리 비트(43)가 "0"인 경우 즉 캐시 메모리를 캐시로 사용하는 경우는 캐시의 히트 발생여부를 확인하는(55) 통상의 캐시 메모리가 캐시로서 사용되어지는 알고리듬으로 이어지고, 캐시/메모리 비트(43)의 값이 "0"인 경우는 캐시 메모리를 캐시로 사용하는 종래 기술로서 널리 알려져 있기에 여기서는 상세한 설명을 생략한다.
본 발명은 전술한 알고리듬을 기초로하여, 마이크로프로세서가 시스템 제어용으로 사용될 경우 마이크로프로세서 내부 캐시를 메인 메모리로 활용할 수 있기 위해서, 캐시 메모리 매핑 영역 내에 존재하는 데이터를 억세스할 때는 캐시 메모리에서 데이터를 억세스하도록 하고, 캐시 메모리 매핑 영역밖에 있는 데이터를 억세스할 때는 외부 메인 메모리에서 데이터를 억세스하도록 종래의 n-way 캐시 하드웨어에 약간의 제어 회로만 덧붙여서 n-way의 메인 메모리 겸용 캐시 구조를 구현한다.
도6은 본 발명의 4-way 캐시 구조에 대한 일실시예를 도시한 것으로서, 종래의 n-way 캐시 구조에서 메모리로 사용될 경우에 각 웨이의 태그 레지스터를 각 웨이의 번호와 같은 값으로 셋팅한다. 즉, 웨이 0(60)의 태그 레지스터(64)에는 "0"을, 두 번째 웨이 1(61)의 태그 레지스터(65)에는 "1"을, 세 번째 웨이2(62)의 태그 레지스터(66)에는 "2"를, 네 번째 웨이3(63)의 태그 레지스터(67)에는 "3"을 각각 셋팅한다. 그리고, 각 웨이의 유효 비트 레지스터들(68,69,70,71)을 "1"로 셋한다. 이렇게 함으로써 4-way 캐시 메모리를 메인 메모리 0번지부터 15번지까지로 매핑된 메인 메모리로 동작하게 된다. 여기서 매핑 주소 시작점을 0번지가 아닌 다른 번지로 하고 싶다면 태그 레지스터 값들을 적당히 바꾸어 주면 된다. 예를 들어 16진수 1000H번지부터 100FH까지 매핑하고 싶다면 각 웨이의 태그 레지스터 값을 차례로 "400H","401H","402H","403H"로 세팅하면 된다.
도7은 본 발명의 4-way 캐시 구조 중 임의의 한 웨이에 대한 일실시예를 도시한 것으로서, 종래의 웨이 구조에 태그 레지스터를 셋팅하기 위해, 제4 멀티플렉서(72)를 추가로 구성한다. 제4 멀티플렉서(72)는, 캐시/메모리 비트를 제어 신호로 받아 캐시로 동작하는 캐시로 동작하는 경우(캐시/메모리 비트가 "0"인 경우)에는 종래와 마찬가지로 주소 버스를 통해 입력된 주소의 태그 필드를 선택하여 태그 레지스터(73)로 입력하고, 메인 메모리로 동작하는 경우(캐시/메모리 비트가 "1"인 경우)에는 해당 웨이 번호로 셋팅된 값(Way Num)을 선택하여 태그 레지스터(73)에 입력한다.
그리고, 캐시/메모리 비트를 참조하여 캐시/메모리 비트가 "1"인 경우(메인 메모리로서 동작하는 경우)에 항상 4개의 1비트 유효 비트 레지스터들(74)을 "1"로 셋하도록 한다. "1"의 값을 갖도록 레지스터를 세팅하는 회로는 공지의 기술로서 쉽게 구현 가능하므로 여기서의 설명은 생략한다.
도면을 참조하여 본 발명의 캐시 메모리가 메인 메모리로서 동작할 경우 일실시예의 동작을 설명한다.
캐시 메모리 매핑 영역 내의 7번지에 존재하는 데이터를 억세스할 경우를 살펴보면, 먼저 캐시/메모리 비트는 "1"이고 16비트 주소 값에서 하위 2비트의 옵셋 필드를 제외한 7번지의 태그 필드 값 "1"이다. 각 웨이별로 태그 레지스터의 저장된 내용과 7번지의 태그 필드 값 "1"을 각 웨이의 비교기를 통해 비교한다. 이 태그 값은 웨이 1(61)의 태그 레지스터에 저장해놓은 태그 값과 일치하여 웨이 1의 태그 히트 래치를 "1"로 셋한다. 그리고 4개의 유효 비트 레지스터를 "유효함"을 셋팅하였기 때문에 캐시 히트가 발생하고, 입력된 7번지 주소의 옵셋 필드 값(이진수 "11")을 입력받아 4개의 데이터 레지스터들 중 해당하는 데이터 레지스터의 내용이 데이터 버스로 출력된다.
캐시 메모리 매핑 영역 밖의 100H번지에 존재하는 데이터를 억세스할 경우를 살펴보면, 주소 100H의 태그 필드는 40H로 이 값은 각 웨이의 태그 레지스터에 저장된 어느 값과도 일치하지 않는다. 따라서 캐시 히트는 발생하지 않고 마이크로프로세서는 외부 메모리 모듈로부터 데이터를 읽거나 쓰게 된다.
본 발명은 일실시예로 든 16비트 주소 버스, 8비트 데이터 버스, 2비트 옵셋 구조에 한정되지 않고, n비트 주소 버스, m비트 데이터 버스, k비트 옵셋 구조로 확장가능하다.
이상에서 설명한 본 발명은 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니고, 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하다는 것이 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 명백할 것이다.
상기와 같이 이루어지는 본 발명은 종래의 n-way 캐시에 최소한의 제어 회로를 추가함으로써 대용량의 직접 사상 캐시를 탑재한 마이크로프로세서가 컴퓨터 시스템에서 범용 중앙처리장치로 사용될 때는 캐시를 캐시 고유의 용도로 사용하고, 시스템 제어용으로 사용될 때는 대용량의 캐시를 메모리로 할당하여 사용하게 함으로써 캐시의 활용도를 극대화하고 시스템 제어보드 구성시 가격을 낮출 수 있는 효과가 있으며, 또한 마이크로프로세서 내부에 탑재된 캐시 용량이 충분히 크면 별도의 메모리 모듈없이 시스템 제어 보드를 구성할 수 있을 것이며, 캐시의 용량이 필요한 메모리 크기보다 작다고 하더라도 별도로 구성해야 할 메모리의 크기를 크게 줄일 수 있기 때문에 비용면에서 큰 효과를 얻을 수 있다.

Claims (3)

  1. 주소 버스의 태그 필드와 옵셋 필드가 다수개의 웨이에 각각 입력되고, 상기 각 웨이로부터 출력되는 웨이 히트 신호를 논리합하여 상기 각 웨이 중 하나라도 웨이 히트 신호가 발생하면 캐시 히트를 발생하는 논리합 게이트, 및 상기 각 웨이 히트 신호를 제어신호로 입력받아 상기 각 웨이 중 하나를 선택하여 데이터 버스에 실리거나, 상기 웨이 히트가 발생한 웨이로 데이터를 보내주는 제1 멀티플렉서를 포함하고,
    상기 각 웨이는 캐시에 데이터를 로딩할 때 주소 버스를 통해 입력되는 태그 필드를 저장하는 태그 레지스터, 상기 태그 레지스터에 저장된 태그 값과 캐시로부터 데이터를 읽기 위해 입력된 주소 버스의 태그 필드를 비교하는 제1 비교기, 상기 제1 비교기를 통해 비교된 후 그 결과에 응답하여 태그 히트를 나타내는 태그 히트 래치, 상기 캐시 내부에 데이터를 저장하고 있는 다수개의 데이터 레지스터, 상기 입력된 주소 버스의 옵셋 필드를 제어신호로 받아 상기 다수개의 데이터 레지스터 중 해당 데이터 레지스터를 선택해 그 내용을 데이터 버스로 출력하는 제2 멀티플렉서, 상기 다수개의 데이터 레지스터 내용의 유효함을 각각 나타내는 다수개의 유효 비트 레지스터, 상기 옵셋 필드를 제어신호로 받아 상기 유효 비트 레지스터 중 해당 유효 비트 레지스터의 내용을 출력하는 제3 멀티플렉서, 및 상기 태그 히트 래치와 상기 제3 멀티플렉서로부터의 출력값을 이용하여 캐시 히트 신호를 발생하는 출력수단을 포함하는 다수개 웨이의 캐시에 있어서,
    상기 각 웨이는 마이크로프로세서 자체 하드웨어를 제어하기 위한 시스템 플래그의 저장수단에 저장되어 있는 상기 마이크로프로세서의 캐시 수행 동작을 나타내는 캐시/메모리 비트에 응답하여, 상기 캐시가 메인 메모리로서 동작할때는 상기 각 웨이의 해당 번호를 선택하여 상기 각 웨이의 태그 레지스터에 세팅하고, 상기 캐시가 캐시 자체로서 동작할 때는 상기 주소 버스의 태그 필드를 선택하여 상기 태그 레지스터에 세팅하는 선택 수단을 더 포함하여 이루어지고,
    상기 캐시가 메인 메모리로서 동작할 때 상기 각 웨이의 유효 비트 레지스터를 모두 유효한 것으로 세팅하는 메모리를 겸용하는 다수개 웨이의 캐시.
  2. 제 1 항에 있어서,
    상기 각 태그 레지스터를 셋팅하는 상기 각 웨이의 해당 번호를 임의로 변경할 수 있는 메모리를 겸용하는 다수개 웨이의 캐시.
  3. 제 2 항에 있어서,
    최소한의 하드웨어 추가를 위하여 제1 웨이의 웨이 번호를 "0"으로 하는 메모리를 겸용하는 다수개 웨이의 캐시.
KR1019970060520A 1997-11-17 1997-11-17 메모리 겸용 캐시 KR100257750B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1019970060520A KR100257750B1 (ko) 1997-11-17 1997-11-17 메모리 겸용 캐시
US09/192,541 US6334173B1 (en) 1997-11-17 1998-11-17 Combined cache with main memory and a control method thereof
TW087119393A TW420870B (en) 1997-11-17 1998-11-23 A combined cache with main memory and a control method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019970060520A KR100257750B1 (ko) 1997-11-17 1997-11-17 메모리 겸용 캐시

Publications (2)

Publication Number Publication Date
KR19990040197A KR19990040197A (ko) 1999-06-05
KR100257750B1 true KR100257750B1 (ko) 2000-06-01

Family

ID=19524865

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970060520A KR100257750B1 (ko) 1997-11-17 1997-11-17 메모리 겸용 캐시

Country Status (1)

Country Link
KR (1) KR100257750B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100654462B1 (ko) 2005-08-24 2006-12-06 삼성전자주식회사 캐쉬 메모리를 메모리 블록으로 나누어 파일의 데이터를저장하는 캐쉬 방법 및 캐쉬 시스템

Also Published As

Publication number Publication date
KR19990040197A (ko) 1999-06-05

Similar Documents

Publication Publication Date Title
US9384134B2 (en) Persistent memory for processor main memory
US5640534A (en) Method and system for concurrent access in a data cache array utilizing multiple match line selection paths
US5694567A (en) Direct-mapped cache with cache locking allowing expanded contiguous memory storage by swapping one or more tag bits with one or more index bits
US4426682A (en) Fast cache flush mechanism
US4724518A (en) Odd/even storage in cache memory
US5555528A (en) Dynamic random access memory persistent page implemented as processor register sets
US5913223A (en) Low power set associative cache memory
US6334173B1 (en) Combined cache with main memory and a control method thereof
US6151658A (en) Write-buffer FIFO architecture with random access snooping capability
US5668972A (en) Method and system for efficient miss sequence cache line allocation utilizing an allocation control cell state to enable a selected match line
US5805855A (en) Data cache array having multiple content addressable fields per cache line
JPH1091525A (ja) 変換索引バッファ及びメモリ管理システム
US5682515A (en) Low power set associative cache memory with status inhibit of cache data output
EP1605360A1 (en) Cache coherency maintenance for DMA, task termination and synchronisation operations
US11188467B2 (en) Multi-level system memory with near memory capable of storing compressed cache lines
US6202128B1 (en) Method and system for pre-fetch cache interrogation using snoop port
US5890221A (en) Method and system for offset miss sequence handling in a data cache array having multiple content addressable field per cache line utilizing an MRU bit
US6006310A (en) Single memory device that functions as a multi-way set associative cache memory
JP5745200B2 (ja) キャッシュメモリに保存されるブロック数を制御できるキャッシュメモリシステム及び動作方法
JPH1165925A (ja) 情報処理装置
KR100257750B1 (ko) 메모리 겸용 캐시
US20070294504A1 (en) Virtual Address Cache And Method For Sharing Data Using A Unique Task Identifier
EP0474356A1 (en) Cache memory and operating method
KR200182184Y1 (ko) 메모리 겸용 캐시
KR200190099Y1 (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: 20050221

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee