KR100395768B1 - 멀티 레벨 캐쉬 시스템 - Google Patents

멀티 레벨 캐쉬 시스템 Download PDF

Info

Publication number
KR100395768B1
KR100395768B1 KR10-2001-0034187A KR20010034187A KR100395768B1 KR 100395768 B1 KR100395768 B1 KR 100395768B1 KR 20010034187 A KR20010034187 A KR 20010034187A KR 100395768 B1 KR100395768 B1 KR 100395768B1
Authority
KR
South Korea
Prior art keywords
memory
data
cache memory
stored
cache
Prior art date
Application number
KR10-2001-0034187A
Other languages
English (en)
Other versions
KR20020095875A (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-2001-0034187A priority Critical patent/KR100395768B1/ko
Priority to US10/094,261 priority patent/US7007135B2/en
Publication of KR20020095875A publication Critical patent/KR20020095875A/ko
Application granted granted Critical
Publication of KR100395768B1 publication Critical patent/KR100395768B1/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
    • 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
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels
    • 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

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

여기에 개시된 멀티 레벨 캐쉬 시스템은, 1 차 캐쉬 메모리와, 상기 1 차 캐쉬 메모리보다 프로세서에 의한 액세스 우선 순위가 낮은 2 차 캐쉬 메모리를 포함한다. 프로세서에 의한 1 차 및 2 차 캐쉬 메모리들의 액세스가 모두 미스되었을 때 2 차 캐쉬 메모리가 꽉 차 있으면, 새로운 데이터를 저장하기 위해서는 2 차 캐쉬 메모리에 저장된 데이터들 가운데 하나를 메인 메모리로 보내야 한다. 이 경우, 캐쉬의 포함 성질(inclusion property)을 만족시키기 위하여, 1 차 캐쉬 메모리에 존재하지 않고 2 차 캐쉬 메모리에만 존재하는 데이터를 메인 메모리로 보내야 한다. 본 발명의 멀티 레벨 캐쉬 시스템은 캐쉬 미스가 발생했을 때, 2 차 캐쉬 메모리에 저장된 데이터들 가운데 1 차 캐쉬 메모리에 저장되어 있지 않은 데이터를 선택하기 위해 1 차 캐쉬 메모리를 액세스하지 않아도 되므로 2차 캐쉬 메모리에 구비되는 캐쉬 제어 로직의 캐쉬 미스-교체 로직이 간소화될 뿐만 아니라, 캐쉬 미스-교체에 소요되는 시간이 단축된다.

Description

멀티 레벨 캐쉬 시스템{MULTI-LEVEL CACHE SYSTEM}
본 발명은 멀티 레벨 캐쉬 시스템에 관한 것으로, 좀 더 구체적으로는 세트어소시어티브 캐쉬 메모리를 2 차 캐쉬 메모리로 사용하는 멀티 레벨 캐쉬 시스템에 관한 것이다.
캐쉬 메모리(cache memory)는 고속 RAM(Random Access Memory)으로서, CPU(Central Processing Unit)는 통상의 메모리보다 캐쉬 메모리를 더 빠르게 억세스 할 수 있다. 일반적으로, 캐쉬 메모리는 CPU에 의해 빈번히 액세스 되는 데이터를 저장하는데 사용되는 메모리이다.
상기 캐쉬 메모리는 CPU에 의해 직접 액세스 되며(예컨대, 외부 메모리 관리 유닛(external memory management unit)을 거치지 않고), CPU와 캐쉬 메모리 사이의 신호 전달 시간을 줄이기 위해 물리적으로 CPU 가까운 곳에 위치한다. Alpha AXP 21064 마이크로프로세서 내의 데이터 램의 동작 설명은, 1996년, David A. Paterns과 John L. Hennessy에 의해 Morgan Kaufmann Publishers Inc.에서 출판된 "Computer Architecture A Quantitive Approach"의 380-383쪽에서 찾아볼 수 있다.
도 1은 전형적인 메모리 계층 구조를 보여주는 도면이다. 전형적인 메모리 계층 구조에서, 프로세서(예를 들면, CPU(central processing unit))(1)는 요구되는 데이터를 획득하기 위해 1 차 캐쉬 메모리(first level cache memory; L1 cache)(2)와, 2 차 캐쉬 메모리(second level cache memory; L2 cache)(3), 그리고 메인 메모리(main memory)(4)를 순차적으로 액세스(access)한다.
여기서, 2 차 캐쉬 메모리는 1 차 캐쉬 메모리에 비해 프로세서에 의한 액세스 우선 순위가 낮다. 이와 같은 메모리 계층 구조는 데이터 비트 수(data bandwidth) 및 레이턴시(latency) 면에서 불리하다.
도 2는 메인 메모리와 2 차 캐쉬를 동시에 액세스할 수 있는 또다른 메모리 계층 구조를 보여주는 도면이다. 도 2를 참조하면, CPU(20)는 시스템 버스(50)를 통해 메인 메모리(10)와 연결되고, 프로세서 버스(60)를 통해 캐쉬 메모리(40)와 연결된다. CPU(20)는 메인 메모리(10)와 2 차 캐쉬 메모리(30)를 동시에 액세스할 수 있으므로 도 1에 도시된 메모리 계층 구조에 비해 전송 데이터 비트 수에 있어서 유리하고, 2 차 캐쉬 메모리(30)를 1 차 캐쉬 메모리(30)에 대한 백업(backup) 메모리로 사용하므로 레이턴시면에 있어서도 유리하다.
그러나, 1 차 캐쉬 메모리(30)에 저장된 데이터가 항상 2 차 캐쉬 메모리(40)에 저장된 것은 아니므로, 2 차 캐쉬 메모리(40)에 저장된 데이터를 제거하기 전에는 1 차 캐쉬 메모리(30)에 해당하는 데이터가 저장되어 있는 지의 여부를 확인해야 하므로 CPU(20)의 데이터 교체 로직이 복잡해지는 단점을 가진다.
한편, 캐쉬 메모리에 대한 히트율을 증가시키기 위하여 캐쉬 메모리를 다수 개의 그룹들(groups) 또는 뱅크들(banks)로 나누는 특별한 구조의 세트-어소시어티브 캐쉬 메모리(set-associative cache memory)가 개발되었다. 이 구조에서, 그룹들 또는 뱅크들은 세트들(sets) 또는 웨이들(ways)로 불리운다.
최근 반도체 공정이 발전하면서 마이크로프로세서 칩에 1 차 캐쉬 메모리뿐만 아니라 2 차 캐쉬 메모리까지도 집적하는 경향을 보이고 있다. 2 차 캐쉬 메모리를 마이크로프로세서 칩에 내장하는 경우, 마이크로프로세서 칩과 2 차 캐쉬 캐쉬 메모리 간의 데이터 비트 수가 현저히 증가해 마이크로프로세서 칩의 전체 성능을 높일 수 있다.
그러나, 마이크로프로세서 칩과 분리된 2 차 캐쉬 메모리에 비해 내장된 2 차 캐쉬 메모리는 사이즈에 제한을 받기 때문에, 히트율이 감소한다. 따라서, 최근의 경향은 2 차 캐쉬 메모리를 온칩으로 집적할 경우 사이즈 감소로 인한 히트율 감소를 보상하기 위해 세트-어소시어티브 캐쉬 메모리의 세트(set) 개수를 증가시키고 있다. 그러나, 2 차 캐쉬 메모리의 세트 개수 증가는 2 차 캐쉬 메모리에 대한 제어를 복잡하게 하고, 회로 면적을 증가시키는 단점이 있었다.
따라서, 본 발명의 목적은 회로 면적의 증가를 최소화하면서 세트의 개수를 증가시킬 수 있는 세트-어소시어티브 메모리를 구비한 멀티 레벨 캐쉬 시스템을 제공하는데 있다.
본 발명의 다른 목적은 데이터 교체 로직이 간소화된 세트-어소시어티브 메모리를 구비한 멀티 레벨 캐쉬 시스템을 제공하는데 있다.
도 1은 전형적인 메모리 계층 구조를 보여주는 도면;
도 2는 메인 메모리와 2 차 캐쉬를 동시에 액세스할 수 있는 또다른 메모리 계층 구조를 보여주는 도면;
도 3은 본 발명에 따른 멀티 레벨(2 레벨) 캐쉬 시스템에 구비되는 2 차 캐쉬 메모리의 일 예를 보여주는 도면;
도 4a 내지 도 6c는 본 발명의 바람직한 실시예에 따른 2차 캐쉬 시스템의 동작을 설명하기 위해 1 차 캐쉬 메모리와 2 차 캐쉬 메모리 상태들을 각각 예시적으로 보여주는 도면들;
도 4a는 1 차 캐쉬 메모리에 저장된 태그 어드레스를 2 차 캐쉬 메모리로 전달하고자 할 때, 2 차 캐쉬 메모리에 태그 어드레스가 저장되어 있지 않은 경우의 1 차 및 2 차 캐쉬 메모리들을 보여주는 도면;
도 4a는 1 차 캐쉬 메모리에 저장된 태그 어드레스를 2 차 캐쉬 메모리로 전달하고자 할 때, 2 차 캐쉬 메모리에 태그 어드레스가 저장되어 있는 경우의 1 차 및 2 차 캐쉬 메모리들을 보여주는 도면;
도 5는 1 차 캐쉬 메모리와 2 차 캐쉬 메모리에 각각 저장된 태그 어드레스를 둘 다 제거하는 경우의 1 차 및 2 차 캐쉬 메모리들을 보여주는 도면;
도 6a는 프로세서가 캐쉬 메모리들로부터 소정 데이터를 독출하고자 할 때 2 차 캐쉬 메모리에서 히트되는 경우의 1 차 및 2 차 캐쉬 메모리들을 보여주는 도면;
도 6b는 프로세서가 캐쉬 메모리들로부터 소정 데이터를 독출하고자 할 때 2 차 캐쉬 메모리에서 단순 미스되는 경우의 1 차 및 2 차 캐쉬 메모리들을 보여주는 도면; 그리고
도 6c는 프로세서가 캐쉬 메모리들로부터 소정 데이터를 독출하고자 할 때 2 차 캐쉬 메모리에서 미스되어 캐쉬 미스-교체 동작이 수행되는 경우의 1 차 및 2 차 캐쉬 메모리들을 보여주는 도면이다.
*도면의 주요 부분에 대한 부호의 설명*
10 : 메인 메모리 20 : CPU
30 : 1 차 캐쉬 메모리 40 : 2 차 캐쉬 메모리
110 : 데이터 버스 120 : 선택기
130-133 : 데이터 램 140-143 : 태그 램
150 : 카운터 어레이 160 : 캐쉬 제어 로직
170 : 어드레스 버스
상술한 바와 같은 본 발명의 목적을 달성하기 위한 본 발명의 특징에 의하면, 멀티 레벨 캐쉬 시스템은: 태그 어드레스들과 데이터들을 저장하기 위한 1 차 캐쉬 메모리, 및 상기 1 차 캐쉬 메모리보다 프로세서에 의한 액세스 우선 순위가 낮은 2 차 캐쉬 메모리를 포함한다.
상기 2 차 캐쉬 메모리는, 복수의 세트들로 분할되는 그리고 태그들을 저장하는 태그 메모리와, 상기 태그 메모리 세트들에 각각 대응하는 복수의 세트들로 분할되는 그리고 데이터를 저장하는 데이터 메모리와, 상기 태그 메모리의 상기 각세트는 태그를 저장하는 영역들과, 대응하는 데이터 메모리에 저장된 데이터의 유효 여부를 나타내는 제 1 정보를 저장하는 영역, 및 대응하는 데이터 메모리에 저장된 데이터가 상기 1 차 캐쉬 메모리에 저장되었는 지의 여부를 나타내는 제 2 정보를 저장하는 영역을 포함하며, 상기 2 차 캐쉬 메모리에 대한 전반적인 제어를 수행하되, 상기 프로세서에 의한 상기 2 차 캐쉬 메모리의 액세스가 미스되었을 때 상기 제 1 및 제 2 정보들에 기초하여 캐쉬 미스에 따른 제어를 수행하는 제어 로직을 포함한다.
바람직한 실시예에 있어서, 상기 태그 메모리의 각 세트는 복수의 라인들을 가지며, 상기 데이터 메모리의 각 세트는 상기 태그 메모리의 라인들에 각각 대응하는 복수의 라인들을 갖되, 상기 태그 메모리의 세트들의 동일한 라인들과 상기 데이터 메모리의 세트들의 동일한 라인들은 동일한 인덱스 어드레스에 의해 동시에 액세스된다.
이 실시예에 있어서, 상기 태그 메모리의 각 세트은, 상기 인덱스 어드레스에 의해 액세스된 라인 저장되어 있는 태그와 상기 프로세서로부터 제공된 태그를 비교하여 히트/미스 신호를 출력한다.
이 실시예에 있어서, 상기 제어 로직은, 상기 태그 메모리의 상기 세트들로부터 출력되는 히트/미스 신호들이 모두 미스 상태에 있을 때 캐쉬 미스를 판정한다.
이 실시예에 있어서, 상기 2 차 캐쉬 메모리는, 상기 태그 메모리의 상기 세트들의 라인들에 각각 대응하며, 상기 데이터 메모리의 상기 세트들의 대응하는 라인들에 저장된 유효한 데이터의 개수를 카운트하는 카운터를 더 포함한다.
바람직한 실시예에 있어서, 상기 제어 로직은, 상기 캐쉬 미스가 판정되고 그리고 상기 카운터가 포화(saturation) 상태이면, 상기 제 2 정보에 기초하여 상기 데이터 메모리에 저장된 데이터 가운데 상기 1 차 캐쉬 메모리에 저장되어 있지 않은 데이터를 교체 데이터로 선택한다.
바람직한 실시예에 있어서, 상기 캐쉬 미스가 판정되고 그리고 상기 카운터가 포화 상태가 아니면, 상기 제 1 정보에 기초하여 대응하는 데이터 메모리에 저장된 데이터들 가운데 유효하지 않은 데이터가 저장된 라인에 새로운 데이터가 기입되도록 제어한다. 바람직한 실시예에 있어서, 상기 제 1 정보와 제 2 정보 각각은 1 비트 이진 데이터이다.
이 실시예에 있어서, 상기 제 1 정보는, 대응하는 데이터 메모리에 저장된 데이터가 유효한 경우 논리 '1'이고, 대응하는 데이터 메모리에 저장된 데이터가 유효하지 않은 경우 논리 '0'이다.
이 실시예에 있어서, 상기 제 2 정보는, 대응하는 데이터 메모리에 저장된 데이터가 상기 1 차 캐쉬 메모리에 저장된 경우 논리 '1'이고, 대응하는 데이터 메모리에 저장된 데이터가 상기 1 차 캐쉬 메모리에 저장되어 있지 않은 경우 논리 '0'이다.
바람직한 실시예에 있어서, 상기 2 차 캐쉬 메모리는 세트 어소시어티브 구조이다.
바람직한 실시예에 있어서, 상기 1 차 캐쉬 메모리는, 태그들을 저장하기 위한 태그 메모리, 및 상기 태그에 대응하는 데이터를 저장하기 위한 데이터 메모리를 포함한다. 상기 태그 메모리는, 상기 태그를 저장하기 위한 영역과 대응하는 데이터 메모리에 저장된 데이터의 유효 여부를 나타내는 정보를 저장하는 영역을 포함한다.
(작용)
이와 같은 장치에 의해서, 2 차 캐쉬 메모리를 마이크로프세서와 온칩으로 집적할 경우 사이즈 감소로 인한 히트율 감소를 보상하기 위해 세트-어소시어티브 캐쉬 메모리의 세트 개수를 증가시키더라도 2 차 캐쉬 메모리에 대한 제어가 간단한 멀티 레벨 캐쉬 시스템을 구현할 수 있다.
(실시예)
여기에 개시된 멀티 레벨 캐쉬 시스템은 1 차 캐쉬 메모리와, 상기 1 차 캐쉬 메모리보다 프로세서에 의한 액세스 우선 순위가 낮은 2 차 캐쉬 메모리를 포함한다. 상기 2 차 캐쉬 메모리는 복수의 세트들로 분할되는 그리고 태그들을 저장하는 태그 메모리와 상기 태그 메모리 세트들에 각각 대응하는 복수의 세트들로 분할되는 그리고 데이터를 저장하는 데이터 메모리를 포함한다. 상기 태그 메모리의 상기 각 세트는 태그를 저장하는 영역들과, 대응하는 데이터 메모리에 저장된 데이터의 유효 여부를 나타내는 제 1 정보를 저장하는 영역, 및 대응하는 데이터 메모리에 저장된 데이터가 상기 1 차 캐쉬 메모리에 저장되었는 지의 여부를 나타내는 제 2 정보를 저장하는 영역을 갖는다. 상기 2 차 캐쉬 메모리는, 상기 2 차 캐쉬 메모리에 대한 전반적인 제어를 수행하되, 상기 프로세서에 의한 상기 2 차 캐쉬메모리의 액세스가 미스되었을 때 상기 제 1 및 제 2 정보들에 기초하여 캐쉬 미스에 따른 제어를 수행하는 제어 로직을 더 포함한다. 상기 2 차 캐쉬 메모리가 꽉차 있는 상태에서 캐쉬 미스이면, 새로운 데이터를 저장하기 위해서는 2 차 캐쉬 메모리에 저장된 데이터들 가운데 하나를 메인 메모리로 보내야 한다.
이 경우, 캐쉬의 포함 성질(inclusion property)을 만족시키기 위하여 1 차 캐쉬 메모리에 존재하지 않고 2 차 캐쉬 메모리에만 존재하는 데이터를 메인 메모리로 보내야 한다. 본 발명에 의하면, 상기 제어 로직은 상기 제 2 정보에 기초하여 상기 데이터 메모리에 저장된 데이터 가운데 상기 1 차 캐쉬 메모리에 저장되어 있지 않은 데이터를 교체 데이터로 선택한다. 따라서, 캐쉬 미스가 발생했을 때, 2 차 캐쉬 메모리에 저장된 데이터들 가운데 1 차 캐쉬 메모리에 저장되어 있지 않은 데이터를 선택하기 위해 1 차 캐쉬 메모리를 액세스하지 않아도 되므로 2차 캐쉬 메모리에 구비되는 캐쉬 제어 로직의 캐쉬 미스-교체 로직이 간소화될 뿐만 아니라, 캐쉬 미스-교체에 소요되는 시간이 단축된다. 더욱이, 본 발명에 의하면, 2 차 캐쉬 메모리의 세트의 개수가 많더라도 캐쉬 제어 로직의 캐쉬 미스-교체 로직이 간단하게 구현되므로, 2 차 캐쉬 메모리의 세트의 개수를 증가시키는데 있어서의 제한 요소가 없어진다.
이하 본 발명에 따른 실시예를 첨부된 도면 도 3 내지 도 7을 참조하여 상세히 설명한다.
도 3은 본 발명에 따른 멀티 레벨(2 레벨) 캐쉬 시스템에 구비되는 2 차 캐쉬 메모리의 일 예를 보여주는 도면이다.
도 3을 참조하면, 세트 어소시어티브 구조의 2 차 캐쉬 메모리(40)는 N-웨이 세트 어소시어티브 캐쉬 메모리(N-way set associative cache memory)로 구성된다(N은 양의 정수). 구체적으로, 2 차 캐쉬 메모리(40)의 태그 램(TAG RAM(random access memory))은 N 개의 세트들(140-143)로 분할되고, 데이터 램(data RAM)은 상기 태그 메모리 세트들에 각각 대응하는 N 개의 세트들(130-133)로 분할된다. 설명의 편의를 위하여 태그 램의 각 셋을 태그 램이라 칭하고, 데이터 램의 각 셋을 데이터 램이라 칭한다.
상기 2 차 캐쉬 메모리(40)는 주변 회로로서 카운터 어레이(150), 캐쉬 제어 로직(160), 그리고 데이터 버스(110) 및 어드레스 버스(170)를 포함한다.
상기 태그 램의 각 세트(140-143)는 태그 어드레스를 저장하기 위한 복수의 라인들(또는 블럭들)을 가지며, 상기 데이터 램의 각 세트(130-133)는 라인들에 각각 대응하는 그리고 데이터를 저장하기 위한 복수의 라인들(또는 블럭들)을 갖는다. 상기 데이터 램들(130-133)의 동일한 라인들과 상기 데이터 메모리의 동일한 라인들은 프로세서(예를 들면, 중앙 처리 장치, 디지털 신호 프로세서, 마이크로 컨트롤러 유닛)로부터 제공되는 인덱스 어드레스(INDEX)에 의해 동시에 액세스(access)된다.
데이터 램들(130-133)의 라인들 각각은 유효 상태 비트(valid status bit; V)와 배타적 상태 비트(exclusive status bit; X)를 각각 갖는다. 유효 상태 비트(V)는 대응하는 데이터 메모리에 저장된 데이터가 현재 유효한 지의 여부를 나타낸다. 유효 상태 비트(V)가 논리 '1'이면 대응하는 데이터 메모리에 저장된 태그 어드레스가 현재 유효함(valid)을 나타내고, 유효 상태 비트(V)가 논리 '0'이면 대응하는 데이터 메모리에 저장된 데이터가 현재 유효하지 않음(invalid)을 나타낸다.
배타적 상태 비트(X)는 대응하는 데이터 메모리에 저장된 데이터가 현재 1 차 캐쉬 메모리(30)에 저장되어 있는 지의 여부를 나타낸다. 배타적 상태 비트(X)가 논리 '1'이면 대응하는 데이터 메모리에 저장된 데이터가 현재 1 차 캐쉬 메모리(30)에 저장되어 있지 않음을 나타내고, 배타적 상태 비트(X)가 논리 '0'이면 대응하는 데이터 메모리에 저장된 데이터가 현재 1 차 캐쉬 메모리(30)에 저장되어 있음을 나타낸다.
상기 태그 램들(140-143)의 태그 어드레스들을 저장하는 영역은 내용 주소화 메모리(contents addressable memory) 구조로 구현되며, CPU(20)로부터 제공되는 태그 어드레스(TAG)와 자신에 저장된 태그 어드레스가 일치하면 캐쉬 히트(cache hit)로 판정하고, 히트/미스 신호(H/M)를 하이 레벨(즉, 논리 '1')로서 출력한다. 반면, CPU(20)로부터 제공되는 태그 어드레스(TAG)와 자신에 저장된 태그 어드레스가 일치하지 않으면 캐쉬 미스(cache miss)로 판정하고, 히트/미스 신호(H/M)를 로우 레벨(즉, 논리 '0')로서 출력한다.
카운터 어레이(150)는 태그 램들(140-143)의 라인들에 각각 대응하는 복수의 카운터들로 구성된다. CPU(20)로부터 제공되는 인덱스 어드레스(INDEX)에 의해서 카운터 어레이(150)의 카운터들 가운데 하나가 선택되고, 선택된 카운터만이 카운트 동작을 수행한다. 선택된 카운터의 카운트 값은 캐쉬 제어 로직(160)으로 제공된다. 추후 상세히 설명되는 이 카운터들은 대응하는 데이터 메모리에 저장된 유효한 데이터의 개수를 각각 카운트한다.
캐쉬 제어 로직(160)은 2 차 캐쉬 메모리(40)에 대한 전반적인 제어를 수행한다. 상기 캐쉬 제어 로직(160)은 태그 램들(140-143)로부터 제공되는 상태 비트들(Vi, Xi; i=0, 1, …, N-1)과 히트 미스 신호들(H/M0-H/M(N-1)), 그리고 카운터 어레이(150)로부터의 카운트 값에 응답해서 N개의 데이터 램들(130-133) 가운데 하나를 선택하기 위한 선택 신호(SET_SELECT)를 출력한다.
선택기(120)는 캐쉬 제어 로직(160)으로부터 제공되는 선택 신호(SET_SELECT)에 대응하는 N개의 데이터 램들(130-133) 가운데 하나에 데이터가 저장되도록 제어하거나 또는 선택 신호(SET_SELECT)에 대응하는 N개의 데이터 램들(130-133) 가운데 하나로부터 데이터가 독출되도록 제어한다.
상술한 바와 같이 구성되는 세트 어소시어티브 구조의 2 차 캐쉬 메모리(40)의 동작은 이하 설명된다.
도 4a 내지 도 6c는 본 발명의 바람직한 실시예에 따른 2차 캐쉬 메모리의 동작을 설명하기 위해 1 차 캐쉬 메모리(30)와 2 차 캐쉬 메모리 상태들을 각각 예시적으로 보여주고 있다. 도 4a 내지 도 6c에서는 2 차 캐쉬 메모리의 상태를 용이하게 이해할 수 있도록 하나의 라인에 태그 램의 유효 상태 비트 및 배타적 상태 비트들과 대응하는 데이터 램에 저장된 데이터를 묶어서 표시하였다(즉, 태그 램에 저장된 태그 어드레스는 표시하지 않았다). 또 이 실시예에서, 1 차 캐쉬 메모리(30)는 태그 어드레스들을 저장하기 위한 태그 메모리와 상기 태그 어드레스에 대응하는 데이터를 저장하기 위한 데이터 메모리로 구성된다. 상기 1 차 캐쉬 메모리(30)의 태그 메모리는 유효 상태 비트(V)를 포함한다. 유효 상태 비트(V)는 대응하는 데이터 메모리에 저장된 데이터가 유효할 때 '1' 그리고 대응하는 라인에 저장된 태그 어드레스가 유효하지 않을 때 '0'으로 된다. 2 차 캐쉬 메모리와 마찬가지로, 1 차 캐쉬 메모리의 상태를 용이하게 이해할 수 있도록 하나의 라인에 태그 램의 유효 상태 비트(V)와 대응하는 데이터 램에 저장된 데이터를 묶어서 표시하였다(즉, 태그 램에 저장된 태그 어드레스는 표시하지 않았다)
도 4a 및 도 4b는 1 차 캐쉬 메모리에 저장된 특정 데이터를 제거하기 위해서 1 차 캐쉬 메모리에 데이터를 2 차 캐쉬 메모리로 전달하는 빅팀(victim) 동작에 따른 1 차 및 2 차 캐쉬 메모리들의 상태를 보여주고 있다. 1차 캐쉬 메모리에 대한 빅팀은 1차 캐쉬 메모리가 꽉 차있는 경우 또는 필요에 의해 1차 캐쉬 메모리에 저장된 데이터를 제거하고자 할 때 발생된다.
도 4a는 1 차 캐쉬 메모리에 저장된 데이터를 제거하기 위해서 1 차 캐쉬 메모리에 저장된 데이터(A)를 2 차 캐쉬 메모리로 전달하고자 할 때, 2 차 캐쉬 메모리에 데이터(A)가 저장되어 있지 않은 경우의 1 차 및 2 차 캐쉬 메모리들의 상태를 보여주고 있다. 도 4a를 참조하면, 유효한(V='1') 데이터(A)를 1 차 캐쉬 메모리로부터 2 차 캐쉬 메모리로 전달하고자 할 때 만일 2 차 캐쉬 메모리에 데이터(A)가 저장되어 있지 않으면, 인덱스 어드레스(INDEX=i)에 의해 액세스된 N개의 데이터 램들의 동일 번지 라인들 가운데 유효하지 않은 데이터를 저장하고 있는 라인에 데이터(A)가 저장된다. 처리가 완료된 후 1 차 캐쉬 메모리의 유효 상태 비트(V)는 '0'으로 되고, 2 차 캐쉬 메모리의 유효 상태 비트(V)는 '1'로 된다. 처리 결과, 데이터(A)는 현재 1 차 캐쉬 메모리에 저장되어 있지 않으므로 2 차 캐쉬 메모리의 배타적 상태 비트(X)는 '1'로 된다. 이 경우, 데이터(A)를 저장하고 있는 2 차 캐쉬 메모리의 라인(i)에 대응하는 카운터(CNTi)는 이전 값을 그대로 유지하는데, 이는 데이터(A)가 1 차 캐쉬 메모리에서 2 차 캐쉬 메모리로 백업된 것일 뿐, 메인 메모리(10)로부터 새로운 데이터가 입력된 것이 아니기 때문이다.
도 4b는 1 차 캐쉬 메모리에 저장된 데이터(A)를 제거하기 위해서 1 차 캐쉬 메모리에 저장된 데이터(A)를 2 차 캐쉬 메모리로 전달하고자 할 때, 2 차 캐쉬에 데이터(A)가 저장되어 있는 경우의 동작 상태를 보여주고 있다. 도 4b를 참조하면, 1 차 캐쉬 메모리에 저장된 데이터(A)를 2 차 캐쉬 메모리로 전달할 때 2 차 캐쉬 메모리에 데이터(A)가 저장되어 있으면, 데이터(A)를 저장하고 있는 세트의 라인에 중복하여 저장된다. 처리가 완료된 후, 1 차 캐쉬 메모리의 유효 상태 비트(V)는 '0'으로 된다. 2 차 캐쉬 메모리의 유효 상태 비트(V)는 '1'로 되고, 데이터(A)는 현재 1 차 캐쉬 메모리에 저장되어 있지 않으므로 2 차 캐쉬 메모리의 배타적 상태 비트(X)는 '1'로 된다. 이 경우, 데이터(A)를 저장하고 있는 라인(i)과 대응하는 카운터(CNTi)는 이전 값을 그대로 유지한다.
도 5는 1 차 캐쉬 메모리와 2 차 캐쉬 메모리에 각각 저장된 데이터(B)를 둘 다 제거하는 경우의 1 차 및 2 차 캐쉬 메모리들의 상태를 보여주고 있다. 도 5를 참조하면, 1 차 캐쉬 메모리의 유효 상태 비트(V)가 논리 '1'인 유효한 데이터(B)를 제거하면서 동시에 2 차 캐쉬 메모리의 유효 상태 비트(V)가 논리 '1'인 유효한데이터(B)를 제거하는 경우, 1 차 및 2 차 캐쉬 메모리들의 유효 비트들(V)은 둘 다 논리 '0'으로 된다. 2 차 캐쉬 메모리의 배타적 상태 비트(X) 역시 논리 '0'으로 된다. 2 차 캐쉬 메모리로부터 데이터(B)를 제거하는 경우, 데이터(B)가 저장되었던 라인(j)에 대응하는 카운터의 카운트 값은 1만큼 감소된다(CNTj=CNTj-1).
도 6a 내지 도 6c는 프로세서가 캐쉬 메모리들로부터 데이터를 독출하는 경우 1 차 및 2 차 캐쉬 메모리들의 상태 변화를 각각 보여주고 있다.
도 6a는 프로세서가 캐쉬 메모리들로부터 데이터(C)를 독출하고자 할 때 2 차 캐쉬 메모리에서 캐쉬 히트되는 경우의 1 차 및 2 차 캐쉬 메모리들의 상태 변화를 각각 보여주고 있다. CPU(20)에 의한 캐쉬 메모리들에 대한 액세스에 있어서, 데이터(C)가 1차 캐쉬 메모리에서 미스되고 2 차 캐쉬 메모리에서 히트되면, 2 차 캐쉬 메모리의 데이터(C)는 1 차 캐쉬 메모리로 전달되어 저장된다. 처리가 완료된 후, 1 차 캐쉬 메모리의 유효 비트(V)는 논리 '1'로 된다. 데이터(C)는 1 차 캐쉬 메모리와 2 차 캐쉬 메모리에 둘 다 저장되어 있으므로, 2 차 캐쉬 메모리의 배타적 상태 비트는 논리 '0'으로 된다. 이 경우, 2 차 캐쉬 메모리의 데이터(C)를 저장하고 있는 라인(k)에 대응하는 카운터의 카운트 값(CNTk)은 이전값을 그대로 유지한다.
도 6b는 프로세서가 캐쉬 메모리들로부터 데이터(C)를 독출하고자 할 때 1 차 캐쉬 메모리와 2 차 캐쉬 메모리에서 모두 미스되고(H/Mk='0'), CPU(20)로부터 제공되는 인덱스 어드레스(INDEX=k)에 대응하는 카운터가 포화(saturation)되지 않은(CNTk<N) 경우의 1 차 및 2 차 캐쉬 메모리들의 상태 변화를 각각 보여주고 있다. CPU(20)가 캐쉬 메모리들로부터 데이터(C)를 독출하고자 할 때 1 차 캐쉬 메모리와 2 차 캐쉬 메모리에서 모두 미스(H/Mk='0')이면, CPU(20)로부터 제공되는 데이터(C)가 1 차 캐쉬 메모리와 2 차 캐쉬 메모리에 순차적으로 기록된다. 다시 말하면, CPU(20)로부터 제공되는 데이터(C)는 먼저 1 차 캐쉬 메모리에 저장되고, 1 차 캐쉬 메모리에 저장된 데이터(C)는 2 차 캐쉬 메모리로 전달되어 저장된다. 마찬가지 방법으로, CPU(20)로부터 제공되는 인덱스 어드레스(INDEX=k)에 의해서 메인 메모리(10)로부터의 데이터(C)는 1 차 캐쉬 메모리의 데이터 램와 2 차 캐쉬 메모리의 데이터 램로 순차적으로 저장된다. 처리가 완료된 후, 1 차 캐쉬 메모리의 유효 상태 비트(V)는 논리 '1'이 되고, 2차 캐쉬 메모리의 유효 상태 비트(V)는 논리 '1'이 된다. 데이터(C)는 1 차 캐쉬 메모리와 2 차 캐쉬 메모리에 모두 저장되어 있으므로, 2 차 캐쉬 메모리의 배타적 상태 비트(X)는 논리 '0'이 된다. 메인 메모리(10)로부터 새로운 데이터가 캐쉬 메모리로 들어왔으므로 데이터(C)가 저장된 라인(k)에 대응하는 카운터의 카운트 값은 1만큼 증가된다(CNTk=CNTk+1).
도 6c는 프로세서가 캐쉬 메모리들로부터 데이터(C)를 독출하고자 할 때 1 차 캐쉬 메모리와 2 차 캐쉬 메모리에서 모두 미스되고(H/Mk='0'), 1 차 캐쉬 메모리에 데이터가 꽉 차 있으며, CPU(20)로부터 제공되는 인덱스 어드레스(INDEX=k)에 대응하는 카운터가 포화(saturation)된 (CNTk=N) 경우의 1 차 및 2 차 캐쉬 메모리들의 상태 변화를 각각 보여주고 있다. CPU(20)가 캐쉬 메모리들로부터 데이터(C)를 독출하고자 할 때 1 차 캐쉬 메모리와 2 차 캐쉬 메모리에서 모두 미스되고(H/Mk='0'), CPU(20)로부터 제공되는 인덱스 어드레스(INDEX=k)에 대응하는 카운터가 포화된 (CNTk=N) 경우, 캐쉬 미스-교체(cache miss-replacement) 동작이 수행된다. 먼저, 2 차 캐쉬 메모리에 저장된 데이터들 가운데 하나를 메인 메모리(10)로 보내서 빈 공간을 확보해야 한다. 이 때, CPU(20)로부터 제공되는 인덱스 어드레스(INDEX) k에 대응하는 각 세트들의 라인들에 저장되어 있는 유효한 데이터들 가운데 1 차 캐쉬 메모리에 저장되어 있지 않은(즉, 배타적 상태 비트(X)가 논리 '1'인) 데이터가 메인 메모리(10)로 전송된다. 배타적 상태 비트(X)가 논리 '1'인 데이터들 가운데 어느 것을 메인 메모리(10)로 보낼 것인가를 결정하는 것은 통상의 기술자들에게 잘 알려진 바와 같이, 최근 최소 사용(Least Recently Used; LRU) 기법 또는 랜덤(random) 기법 등의 기법들 가운데 하나를 이용하여 결정한다. 일반적으로, 세트의 개수와 캐쉬 사이즈가 작다면 LRU 기법을 쓰는 것이 효과적이고, 세트의 개수와 캐쉬 사이즈가 크다면 랜덤 기법이 더 효과적인 것으로 알려져 있다.
이 실시예에서는, 배타적 상태 비트(X)가 논리 '1'인 데이터들 가운데 세트 0에 저장되어 있는 데이터(B)를 메인 메모리(10)로 보낸다. 따라서, 2 차 캐쉬 메모리의 데이터(B)는 유효하지 않은 데이터가 됨으로써(즉, 유효 상태 비트(V)가 논리 '1'로 된다) 2 차 캐쉬 메모리에 빈 공간이 확보된다. 다음, 1 차 캐쉬 메모리에 저장된 데이터들 가운데 하나(A)를 2 차 캐쉬 메모리로 빅팀시킨다. 그 결과, 1 차 캐쉬 메모리에 저장되어 있는 데이터(A)는 유효하지 않은 데이터로 됨으로써 1 차 캐쉬 메모리에 빈 공간이 확보된다. 이 때, 2 차 캐쉬 메모리의 세트 1에 저장되어 있는 데이터(A)에 대응하는 배타적 상태 비트(X)는 '1'로 변경된다. 이와같은 수순에 의해 1 차 캐쉬 메모리와 2 차 캐쉬 메모리에는 각각 빈 공간이 확보된다. 인덱스 어드레스(k)에 대응하는 카운터의 카운트 값은 1 만큼 감소된다(CNTk=N-1).
계속해서, CPU(20)로부터 제공되는 데이터(C)가 1 차 캐쉬 메모리와 2 차 캐쉬 메모리에 순차적으로 옮겨진다. 다시 말하면, 메인 메모리(10)로부터 제공되는 데이터(C)는 먼저 1 차 캐쉬 메모리에 저장되고, 1 차 캐쉬 메모리에 저장된 데이터는 2 차 캐쉬 메모리로 전달되어 저장된다. 처리가 완료된 후, 1 차 캐쉬 메모리의 유효 상태 비트(V)는 논리 '1'이 되고, 2차 캐쉬 메모리의 유효 상태 비트(V)는 논리 '1'이 된다. 데이터(C)는 1 차 캐쉬 메모리와 2 차 캐쉬 메모리에 모두 저장되어 있으므로, 2 차 캐쉬 메모리의 배타적 상태 비트(X)는 논리 '0'이 된다. 메인 메모리(10)로부터 새로운 데이터가 캐쉬 메모리로 들어왔으므로 데이터(C)가 저장된 라인(k)에 대응하는 카운터의 카운트 값은 1만큼 증가된다(CNTk=N).
도 7은 프로세서가 1 차 및 2 차 캐쉬 메모리들로부터 데이터를 독출하고자 할 때, 도 3에 도시된 2 차 캐쉬 메모리의 캐쉬 제어 로직에서 수행되는 제어 수순을 보여주는 플로우차트이다.
CPU(20)는 먼저 1차 캐쉬 메모리(30)를 액세스한다. 만일 1차 캐쉬 메모리(30)에서 히트되면, 1차 캐쉬 메모리에 저장된 데이터는 독출되어 CPU(20)로 제공된다. 만일 1 차 캐쉬 메모리(30)가 미스되면, CPU(20)는 2 차 캐쉬 메모리(40)를 액세스한다.
단계 S200에서, 캐쉬 제어 로직(160)은 태그 램들(140-143)로부터 입력되는히트/미스 신호들(H/M0-H/M(N-1))을 검사해서 히트/미스 여부를 판정한다. 즉, 캐쉬 제어 로직(160)은 태그 램들(140-143)로부터 입력되는 히트/미스 신호들(H/M0-H/M(N-1)) 가운데 하나가 논리 '1'이면 캐쉬 히트로 판정하고, 모두 논리 '0'이면 캐쉬 미스로 판정한다. 캐쉬 히트가 판정되면, 캐쉬 히트에 대한 제어 즉, 히트/미스 신호들(H/M0-H/M(N-1)) 가운데 논리 '1'인 히트/미스 신호에 대응하는 데이터 램을 선택하기 위한 선택 신호(SET_SELECT)를 출력하는 제어를 수행한다(단계 S210).
캐쉬 미스가 판정되면, 카운터 어레이(150)의 카운터들 가운데 CPU(20)의 인덱스 어드레스(INDEX)에 대응하는 카운터의 카운트 값(CNT)이 포화되었는지의 여부를 검사한다(단계 S220). CPU(20)의 인덱스 어드레스(INDEX)에 대응하는 카운터의 카운트 값(CNT)이 포화되지 않은 경우에는 도 6b에 도시된 방법에 의해서 단순 캐쉬 미스(simple cache miss) 제어를 수행한다.
CPU(20)의 인덱스 어드레스(INDEX)에 대응하는 카운터의 카운트 값(CNT)이 포화되어 있는 경우에는 캐쉬 미스-교체(cache miss-replacement) 제어를 수행한다. 즉, 수도(pseudo)-LRU 기법을 이용하여 유효 상태 비트(V)가 논리 '1'이고, 배타적 상태 비트(X)가 논리 '1'인 데이터들 가운데 하나에 대한 캐쉬 미스-교체를 수행한다. 캐쉬 미스-교체 동작은 앞서 설명한 도 6c에 도시된 방법에 의해 수행된다.
상술한 바와 같은 본 발명의 캐쉬 제어 로직(160)은, 캐쉬 미스가 발생했을 때(즉, 태그 램들(140-143)로부터 제공되는 히트/미스 신호들(H/Mi, i=0,1,…, N-1)이 모두 논리 '0'일 때) 새로운 데이터를 저장할 수 있는 공간이 있는 지의 여부를 알기 위해 각 세트들의 유효 상태 비트들(V)을 검사하지 않고도 카운터의 카운트 값이 N이면 곧바로 캐쉬 미스-교체를 판정한다. 그러므로, 캐쉬 제어 로직(160)의 캐쉬 미스-교체 판정 로직을 간단하게 구현할 수 있다.
또, CPU(20)로부터 제공되는 인덱스 어드레스(k)에 의해 액세스된 2차 캐쉬 메모리의 N 개의 세트들의 라인들이 모두 유효한 데이터를 저장하고 있는 경우(즉, 카운터의 카운트 값이 N인 경우), 새로운 데이터를 저장하기 위해서는 2 차 캐쉬 메모리에 저장된 데이터들 가운데 하나를 메인 메모리(10)로 보내야 한다. 이 경우, 캐쉬의 포함 성질(inclusion property)을 만족시키기 위하여, 1 차 캐쉬 메모리에 존재하지 않고 2 차 캐쉬 메모리에만 존재하는 데이터를 메인 메모리(10)로 보내야 한다. 본 발명에 의하면, 유효 상태 비트(V)가 논리 '1'이고, 배타적 상태 비트(X)가 논리 '1'인 데이터를 메인 메모리(10)로 보낸다. 따라서, 캐쉬 미스가 발생했을 때, 2 차 캐쉬 메모리에 저장된 데이터들 가운데 1 차 캐쉬 메모리에 저장되어 있지 않은 데이터를 선택하기 위해 1 차 캐쉬 메모리를 액세스하지 않아도 되므로 2차 캐쉬 메모리에 구비되는 캐쉬 제어 로직(160)의 캐쉬 미스-교체 로직이 간소화될 뿐만 아니라, 캐쉬 미스-교체에 소요되는 시간이 단축된다.
더욱이, 캐쉬 제어 로직(160)은 1차 캐쉬 메모리와 독립적으로 동작하므로, 2 차 캐쉬 메모리의 세트의 갯수가 증가되더라도 캐쉬 미스-교체 기법을 수도-LRU 기법으로 구현이 가능해 성능면에서 유리하고, 최소의 하드웨어 면적으로 캐쉬 미스-교체 기법을 구현할 수 있다.
이상과 같은 본 발명에 의하면, 2 차 캐쉬 메모리를 마이크로프세서와 온칩으로 집적할 경우 사이즈 감소로 인한 히트율 감소를 보상하기 위해 세트-어소시어티브 캐쉬 메모리의 세트 개수를 증가시키더라도 2 차 캐쉬 메모리에 대한 제어를 간단하게 할 수 있다.

Claims (12)

  1. 멀티 레벨 캐쉬 시스템에 있어서:
    태그 어드레스들과 데이터들을 저장하기 위한 1 차 캐쉬 메모리; 및
    상기 1 차 캐쉬 메모리보다 프로세서에 의한 액세스 우선 순위가 낮은 2 차 캐쉬 메모리를 포함하되;
    상기 2 차 캐쉬 메모리는,
    복수의 세트들로 분할되는 그리고 태그들을 저장하는 태그 메모리와;
    상기 태그 메모리 세트들에 각각 대응하는 복수의 세트들로 분할되는 그리고 데이터를 저장하는 데이터 메모리와;
    상기 태그 메모리의 상기 각 세트는 태그를 저장하는 영역들과, 대응하는 데이터 메모리에 저장된 데이터의 유효 여부를 나타내는 제 1 정보를 저장하는 영역, 및 대응하는 데이터 메모리에 저장된 데이터가 상기 1 차 캐쉬 메모리에 저장되었는 지의 여부를 나타내는 제 2 정보를 저장하는 영역을 포함하며;
    상기 2 차 캐쉬 메모리에 대한 전반적인 제어를 수행하되, 상기 프로세서에 의한 상기 2 차 캐쉬 메모리의 액세스가 미스되었을 때 상기 제 1 및 제 2 정보들에 기초하여 캐쉬 미스에 따른 제어를 수행하는 제어 로직을 포함하는 것을 특징으로 하는 멀티 레벨 캐쉬 시스템.
  2. 제 1 항에 있어서,
    상기 태그 메모리의 각 세트는 복수의 라인들을 가지며;
    상기 데이터 메모리의 각 세트는 상기 태그 메모리의 라인들에 각각 대응하는 복수의 라인들을 갖되,
    상기 태그 메모리의 세트들의 동일한 라인들과 상기 데이터 메모리의 세트들의 동일한 라인들은 동일한 인덱스 어드레스에 의해 동시에 액세스되는 것을 특징으로 하는 멀티 레벨 캐쉬 시스템.
  3. 제 2 항에 있어서,
    상기 태그 메모리의 각 세트은, 상기 인덱스 어드레스에 의해 액세스된 라인 저장되어 있는 태그와 상기 프로세서로부터 제공된 태그를 비교하여 히트/미스 신호를 출력하는 것을 특징으로 하는 멀티 레벨 캐쉬 시스템.
  4. 제 3 항에 있어서,
    상기 제어 로직은,
    상기 태그 메모리의 상기 세트들로부터 출력되는 히트/미스 신호들이 모두 미스 상태에 있을 때 캐쉬 미스를 판정하는 것을 특징으로 하는 멀티 레벨 캐쉬 시스템.
  5. 제 2 항에 있어서,
    상기 2 차 캐쉬 메모리는,
    상기 태그 메모리의 상기 세트들의 라인들에 각각 대응하며, 상기 데이터 메모리의 상기 세트들의 대응하는 라인들에 저장된 유효한 데이터의 개수를 카운트하는 카운터를 더 포함하는 것을 특징으로 하는 멀티 레벨 캐쉬 시스템.
  6. 제 4 항 또는 제 5 항에 있어서,
    상기 제어 로직은,
    상기 캐쉬 미스가 판정되고 그리고 상기 카운터가 포화(saturation) 상태이면, 상기 제 2 정보에 기초하여 상기 데이터 메모리에 저장된 데이터 가운데 상기 1 차 캐쉬 메모리에 저장되어 있지 않은 데이터를 교체 데이터로 선택하는 것을 특징으로 하는 멀티 레벨 캐쉬 시스템.
  7. 제 6 항에 있어서,
    상기 캐쉬 미스가 판정되고 그리고 상기 카운터가 포화 상태가 아니면, 상기 제 1 정보에 기초하여 대응하는 데이터 메모리에 저장된 데이터들 가운데 유효하지 않은 데이터가 저장된 라인에 새로운 데이터가 기입되도록 제어하는 것을 특징으로 하는 멀티 레벨 캐쉬 시스템.
  8. 제 1 항에 있어서,
    상기 제 1 정보와 제 2 정보 각각은 1 비트 이진 데이터인 것을 특징으로 하는 멀티 레벨 캐쉬 시스템.
  9. 제 8 항에 있어서,
    상기 제 1 정보는,
    대응하는 데이터 메모리에 저장된 데이터가 유효한 경우 논리 '1'이고, 대응하는 데이터 메모리에 저장된 데이터가 유효하지 않은 경우 논리 '0'인 것을 특징으로 하는 멀티 레벨 캐쉬 시스템.
  10. 제 8 항에 있어서,
    상기 제 2 정보는,
    대응하는 데이터 메모리에 저장된 데이터가 상기 1 차 캐쉬 메모리에 저장된 경우 논리 '1'이고, 대응하는 데이터 메모리에 저장된 데이터가 상기 1 차 캐쉬 메모리에 저장되어 있지 않은 경우 논리 '0'인 것을 특징으로 하는 멀티 레벨 캐쉬 시스템.
  11. 제 1 항에 있어서,
    상기 2 차 캐쉬 메모리는 세트 어소시어티브 구조인 것을 특징으로 하는 멀티 레벨 캐쉬 시스템.
  12. 제 1 항에 있어서,
    상기 1 차 캐쉬 메모리는,
    태그들을 저장하기 위한 태그 메모리; 및
    상기 태그에 대응하는 데이터를 저장하기 위한 데이터 메모리를 포함하되,
    상기 태그 메모리는,
    상기 태그를 저장하기 위한 영역과 대응하는 데이터 메모리에 저장된 데이터의 유효 여부를 나타내는 정보를 저장하는 영역을 포함하는 것을 특징으로 하는 멀티 레벨 캐쉬 시스템.
KR10-2001-0034187A 2001-06-16 2001-06-16 멀티 레벨 캐쉬 시스템 KR100395768B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR10-2001-0034187A KR100395768B1 (ko) 2001-06-16 2001-06-16 멀티 레벨 캐쉬 시스템
US10/094,261 US7007135B2 (en) 2001-06-16 2002-03-08 Multi-level cache system with simplified miss/replacement control

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2001-0034187A KR100395768B1 (ko) 2001-06-16 2001-06-16 멀티 레벨 캐쉬 시스템

Publications (2)

Publication Number Publication Date
KR20020095875A KR20020095875A (ko) 2002-12-28
KR100395768B1 true KR100395768B1 (ko) 2003-08-21

Family

ID=19710949

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2001-0034187A KR100395768B1 (ko) 2001-06-16 2001-06-16 멀티 레벨 캐쉬 시스템

Country Status (2)

Country Link
US (1) US7007135B2 (ko)
KR (1) KR100395768B1 (ko)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002055879A (ja) * 2000-08-11 2002-02-20 Univ Hiroshima マルチポートキャッシュメモリ
KR100395758B1 (ko) * 2001-06-21 2003-08-21 삼성전자주식회사 새로운 블럭 교체 스킴을 채용한 캐쉬 메모리
US6901477B2 (en) * 2002-04-01 2005-05-31 Emc Corporation Provision of a victim cache within a storage cache hierarchy
US7761664B2 (en) * 2007-04-13 2010-07-20 International Business Machines Corporation Systems and methods for multi-level exclusive caching using hints
US8560792B2 (en) 2010-12-16 2013-10-15 International Business Machines Corporation Synchronous extent migration protocol for paired storage
US8583889B2 (en) 2010-12-16 2013-11-12 International Business Machines Corporation Synchronous extent migration protocol for paired storage
KR101358407B1 (ko) * 2012-01-10 2014-02-05 고려대학교 산학협력단 계층 캐시 시스템 및 방법
CN103034538B (zh) * 2012-12-24 2015-06-17 珠海拓普智能电气股份有限公司 一种嵌入式操作系统中驱动程序的多级缓存处理方法
US9514044B2 (en) * 2013-05-24 2016-12-06 Hewlett Packard Enterprise Development Lp Multi-level cache tracking table
US9702937B2 (en) * 2015-02-17 2017-07-11 Lg Chem, Ltd. Contactor control system
US10489305B1 (en) 2018-08-14 2019-11-26 Texas Instruments Incorporated Prefetch kill and revival in an instruction cache
CN112328632B (zh) * 2020-10-09 2022-06-14 福建亿榕信息技术有限公司 一种分布式两级缓存的方法和系统
US20240004792A1 (en) * 2022-06-29 2024-01-04 Ampere Computing Llc Data l2 cache with split access

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05324466A (ja) * 1992-05-20 1993-12-07 Agency Of Ind Science & Technol 階層キャッシュ・メモリ装置
US5581725A (en) * 1992-09-30 1996-12-03 Nec Corporation Cache memory system having first and second direct-mapped cache memories organized in hierarchical structure
JPH10307752A (ja) * 1996-08-28 1998-11-17 Nec Niigata Ltd 2次レベルキャッシュメモリシステム
KR20000020196A (ko) * 1998-09-18 2000-04-15 윤종용 다단계 캐쉬 메모리를 갖는 프로세싱 시스템 및그의 캐쉬 메모리 운용방법
KR20010011260A (ko) * 1999-07-27 2001-02-15 윤종용 데이타 전송 시간을 줄인 2-레벨 캐쉬 메모리 시스템

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5729712A (en) * 1996-01-26 1998-03-17 Unisys Corporation Smart fill system for multiple cache network
US6000015A (en) * 1997-09-16 1999-12-07 Unisys Corporation Processor bus traffic optimization system for multi-level cache utilizing reflection status bit to indicate data inclusion in a higher level cache

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05324466A (ja) * 1992-05-20 1993-12-07 Agency Of Ind Science & Technol 階層キャッシュ・メモリ装置
US5581725A (en) * 1992-09-30 1996-12-03 Nec Corporation Cache memory system having first and second direct-mapped cache memories organized in hierarchical structure
JPH10307752A (ja) * 1996-08-28 1998-11-17 Nec Niigata Ltd 2次レベルキャッシュメモリシステム
KR20000020196A (ko) * 1998-09-18 2000-04-15 윤종용 다단계 캐쉬 메모리를 갖는 프로세싱 시스템 및그의 캐쉬 메모리 운용방법
KR20010011260A (ko) * 1999-07-27 2001-02-15 윤종용 데이타 전송 시간을 줄인 2-레벨 캐쉬 메모리 시스템

Also Published As

Publication number Publication date
US7007135B2 (en) 2006-02-28
US20020194431A1 (en) 2002-12-19
KR20020095875A (ko) 2002-12-28

Similar Documents

Publication Publication Date Title
US6282617B1 (en) Multiple variable cache replacement policy
US7552286B2 (en) Performance of a cache by detecting cache lines that have been reused
US6058456A (en) Software-managed programmable unified/split caching mechanism for instructions and data
US5717890A (en) Method for processing data by utilizing hierarchical cache memories and processing system with the hierarchiacal cache memories
US5091851A (en) Fast multiple-word accesses from a multi-way set-associative cache memory
US6622219B2 (en) Shared write buffer for use by multiple processor units
US7844778B2 (en) Intelligent cache replacement mechanism with varying and adaptive temporal residency requirements
US7502887B2 (en) N-way set associative cache memory and control method thereof
US6877067B2 (en) Shared cache memory replacement control method and apparatus
US6704822B1 (en) Arbitration protocol for a shared data cache
JP4447580B2 (ja) 分散共有メモリマルチプロセッサシステムのための分割疎ディレクトリ
US20070094450A1 (en) Multi-level cache architecture having a selective victim cache
US5668972A (en) Method and system for efficient miss sequence cache line allocation utilizing an allocation control cell state to enable a selected match line
US8595443B2 (en) Varying a data prefetch size based upon data usage
US7809889B2 (en) High performance multilevel cache hierarchy
KR100395768B1 (ko) 멀티 레벨 캐쉬 시스템
US20140149685A1 (en) Memory management using dynamically allocated dirty mask space
US5829051A (en) Apparatus and method for intelligent multiple-probe cache allocation
EP0470739B1 (en) Method for managing a cache memory system
US20030084253A1 (en) Identification of stale entries in a computer cache
KR100326989B1 (ko) 스누핑 포트를 사용하는 프리페치 캐시 질의 방법 및 시스템
US6311253B1 (en) Methods for caching cache tags
JP4009304B2 (ja) キャッシュメモリおよびキャッシュメモリ制御方法
US6115794A (en) Method and system of providing a pseudo-precise inclusivity scheme in a sectored cache memory for maintaining cache coherency within a data-processing system
KR19990068873A (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: 20090714

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee