KR101831226B1 - 차세대 메모리로 구성된 캐시의 제어 장치 및 그 방법 - Google Patents

차세대 메모리로 구성된 캐시의 제어 장치 및 그 방법 Download PDF

Info

Publication number
KR101831226B1
KR101831226B1 KR1020150156543A KR20150156543A KR101831226B1 KR 101831226 B1 KR101831226 B1 KR 101831226B1 KR 1020150156543 A KR1020150156543 A KR 1020150156543A KR 20150156543 A KR20150156543 A KR 20150156543A KR 101831226 B1 KR101831226 B1 KR 101831226B1
Authority
KR
South Korea
Prior art keywords
cache
write filter
data
write
processor
Prior art date
Application number
KR1020150156543A
Other languages
English (en)
Other versions
KR20170054609A (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 KR1020150156543A priority Critical patent/KR101831226B1/ko
Publication of KR20170054609A publication Critical patent/KR20170054609A/ko
Application granted granted Critical
Publication of KR101831226B1 publication Critical patent/KR101831226B1/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/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0871Allocation or management of cache space
    • 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
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

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

본 발명은 차세대 메모리로 구성된 캐시의 제어 장치 및 그 방법에 관한 것으로서, 메모리와 프로세서 사이에 설치된 L1 캐시를 이용하여 상기 프로세서에서 수행되는 상기 메모리의 읽기 및 쓰기와 관련한 메모리 연산을 수행하기 위해, 상기 L1 캐시는 STTRAM(Spin Transfer Torque Random Access Memory)으로 구성된 데이터 캐시(Data Cache)이고, 상기 프로세서와 L1 캐시 사이에 복수의 캐시 라인을 포함하는 쓰기 필터 캐시를 배치하는 단계; 상기 프로세서에서 데이터의 로드/스토어(load/store)가 이슈될 경우에 상기 쓰기 필터 캐시에 액세스하여 해당 데이터를 검색하는 단계; 상기 쓰기 필터 캐시에서 히트(hit)가 발생하면 해당 데이터를 상기 쓰기 필터 캐시로부터 읽기 또는 쓰기를 수행하는 단계; 및 상기 쓰기 필터 캐시에서 미스(miss)가 발생하면 상기 캐시 라인을 상기 L1 캐시에 할당하여 해당 데이터를 읽기 또는 쓰기를 수행하는 단계를 포함한다. 따라서, 본 발명은 프로세서의 로드-스토어 큐와 L1 캐시 사이에 쓰기 필터 캐시를 배치하고, 프로세서에서 수행되는 메모리의 읽기 및 쓰기 연산들이 L1 캐시에서 수행되기 이전에 쓰기 필터 캐시에서 수행되고, 프로세서에서 요구하는 데이터가 쓰기 필터 캐시에 없는 경우에만 L1 캐시에 접근하도록 함으로써 L1 캐시의 접근 횟수를 줄여 STTRAM 기반의 L1 데이터 캐시의 에너지 소모량을 낮출 수 있다.

Description

차세대 메모리로 구성된 캐시의 제어 장치 및 그 방법{ Apparatus for controlling cache using next-generation memory and method thereof }
본 발명은 차세대 메모리로 구성된 캐시의 제어 방법에 관한 것으로, 보다 상세하게는 프로세서에서 수행되는 메모리의 읽기 및 쓰기 연산들이 L1 캐시에서 수행되기 이전에 쓰기 필터 캐시를 통해 수행되도록 함으로써 L1 캐시의 쓰기 연산을 줄이기 위한 차세대 메모리로 구성된 캐시의 제어 장치 및 그 방법에 관한 것이다.
최근 프로세서의 성능이 향상됨에 따라 프로세서 코어와 메인 메모리 간의 병목 현상(bottleneck)을 줄이기 위한 캐시 메모리의 중요성은 날로 커지고 있다. 캐시 메모리에서 적중(hit) 실패율의 차이는 시스템 전체적인 성능에 상당한 영향을 미치기 때문에 캐시 메모리의 적중 성공률을 높이기 위한 다양한 연구가 진행되어 왔다. 이때, 캐시의 적중 성공률은 (캐시 적중수/메모리 요청수)×100이고, 캐시의 적중 실패율은 100-캐시의 적중 성공률이다.
캐시 메모리는 메인 메모리로부터 읽어들인 명령이나 프로그램들로 채워지는 버퍼 형태의 고속 기억 장치로서, 자주 액세스하는 데이터나 프로그램 명령을 반복해서 검색하지 않고도 즉각 사용할 수 있도록 저장해두는 영역이다. 이러한 캐시 메모리는 사용할 데이터 일부를 속도가 늦은 메인 메모리(DRAM)을 대신하여 속도가 빠른 SRAM을 사용한다.
최근 빠른 데이터 처리를 위해 프로세서와 메인 메모리 사이에 레벨(L1, L2, L3 등) 캐시를 중간에 삽입하고 있다. 캐시는 메인 메모리에 비해 액세스 속도가 빠르지만 크기가 너무 클 경우에 액세스 속도가 느려진다. 따라서, L1 캐시(또는 레벨 1)의 경우에는 크기를 줄여 액세스 속도를 빠르게 하고, L2 캐시(또는 레벨 2)의 경우에는 속도를 느리게 하는 대신에 크기를 크게 하여 프로세서가 원하는 데이터 대역폭을 만족시키는 방향으로 캐시 디자인이 이루어지고 있다.
이와 같이, 캐시 메모리의 활용도가 점점 높아지고, 캐시의 용량이 점점 커지고 구조가 갈수록 복잡해짐에 따라 캐시가 전체 칩의 전력 소모에 미치는 영향도 커지고 있다.
현재 L1 캐시는 SRAM으로 구현되는 것이 가장 일반적이다. SRAM으로 구성되는 L1 캐시는 읽기 동작과 쓰기 동작에서의 처리 속도가 거의 동일하여 읽기 동작과 쓰기 동작에서의 전력 소모량이 별 차이가 없다. 그러나, SRAM으로 구성되는 L1 캐시는 비교적 큰 온칩으로 구현되므로 누수 전력 소모가 많다는 문제점이 있다.
이에 고밀도, 낮은 에너지 특성을 가지면서도 SRAM에 필적하는 액세스 속도를 갖는 STTRAM과 같은 차세대 메모리가 SRAM으로 설계된 캐시를 대체하기 위한 대안으로 떠오르고 있다. 그러나, STTRAM으로 캐시를 설계할 경우에 누수 전력 소모가 적고, 읽기 연산이 빠른 장점이 있으나, 읽기/쓰기 동작 처리 속도가 거의 동일한 SRAM과 달리 쓰기 연산 수행시 SRAM에 비해 많은 에너지를 소모하고 쓰기 대기 시간도 오래 걸린다는 단점이 있습니다.
차세대 메모리에는 PRAM(Phase change RAM), ReRAM(Resistance RAM), STTRAM(Spin Transfer Torque RAM) 등이 있고, 특히 STTRAM은 전자의 회전 성질을 이용한 자기접합터널을 이용하여 전류의 흐름과 차단을 구현하는 것으로서, 박막 형성에 높은 정밀도가 요구되지만 구조가 매우 단순하고 30나노 이하의 초집적과 저전력의 구현이 가능하다.
따라서, STTRAM 등의 차세대 메모리에 기반하여 에너지 효율을 개선하기 위한 캐시를 구성하고, 이러한 캐시의 누수 에너지 소비를 감소시키면서 쓰기 연산시 에너지 소모량을 낮출 수 있는 연구가 필요하다.
한국공개특허 제2005-0116714호 " 저전력 캐시 장치 " 한국등록특허 제1442494호 " 워드 필터를 사용한 순차적 선택적 워드 접근 드라우지 캐시의 제어 방법 "
본 발명은 SRAM으로 구성되고, L1 캐시에 비해 작은 크기의 쓰기 필터 캐시를 사용하여 프로세서에서 수행되는 메모리의 읽기 및 쓰기 연산들이 쓰기 필터 캐시에서 이루어지도록 하고, 쓰기 필터 캐시에 없는 데이터의 경우에만 L1 캐시에 접근하도록 함으로써 STTRAM으로 구성된 L1 캐시의 쓰기 연산을 줄여 L1 캐시의 에너지 소모량을 낮출 수 있는 차세대 메모리로 구성된 캐시의 제어 장치 및 그 방법을 제공한다.
실시예들 중에서, 차세대 메모리로 구성된 캐시의 제어 방법은, 메인 메모리와 프로세서 사이에 설치된 L1 캐시를 이용하여 상기 프로세서에서 수행되는 상기 메인 메모리의 읽기 및 쓰기와 관련한 메모리 연산을 수행하는 방법에 있어서, 상기 L1 캐시는 STTRAM(Spin Transfer Torque Random Access Memory)으로 구성된 데이터 캐시(Data Cache)이고, 상기 프로세서와 L1 캐시 사이에 복수의 캐시 라인을 포함하는 쓰기 필터 캐시를 배치하는 단계; 상기 프로세서에서 데이터의 로드/스토어(load/store)가 이슈될 경우에 상기 쓰기 필터 캐시에 액세스하여 해당 데이터를 검색하는 단계; 상기 쓰기 필터 캐시에서 히트(hit)가 발생하면 해당 데이터를 상기 쓰기 필터 캐시로부터 읽기 또는 쓰기를 수행하는 단계; 및 상기 쓰기 필터 캐시에서 미스(miss)가 발생하면 상기 캐시 라인을 상기 L1 캐시에 할당하여 해당 데이터를 읽기 또는 쓰기를 수행하는 단계를 포함하는 것을 특징으로 한다.
이때, 상기 쓰기 필터 캐시는 SRAM(Static Random Access Memory)으로 구성된 것을 특징으로 한다.
상기 메인 메모리, L1 캐시 또는 쓰기 필터 캐시 간에 데이터 전송은 상기 캐시 라인 단위로 진행되고, 상기 캐시 라인은 기설정된 주소 공간을 갖는 태그 영역, 데이터 영역, 상태정보 영역을 포함하며, 상기 쓰기 필터 캐시는 상기 태그를 이용한 완전 연관(fully associative) 매핑 방식으로 구현되는 것을 특징으로 한다.
한편, 상기 쓰기 필터 캐시에서 히트(hit)가 발생하면 해당 데이터를 상기 쓰기 필터 캐시로부터 읽기 또는 쓰기를 수행하는 단계는, 상기 스토어 히트가 발생한 경우에 상기 쓰기 필터 캐시에 캐시 라인을 할당하고, 상기 쓰기 필터 캐시의 엔트리(entry)를 검색하는 단계; 및 상기 쓰기 필터 캐시의 엔트리 중 비어있는 엔트리에 해당 데이터의 쓰기를 수행하는 단계를 포함하는 것을 특징으로 한다.
상기 쓰기 필터 캐시의 엔트리 중 비어있는 엔트리가 없는 경우에 LRU(Least Recently Used) 교체 정책을 사용하여 최장 시간 동안 사용되지 않은 캐시 라인을 빅팀(victim)으로 선택하고, 상기 선택한 빅팀의 캐시 라인을 교체하는 에빅션(eviction)을 수행하는 것을 특징으로 한다.
상기 에빅션을 수행하기 위한 캐시 라인의 상태 정보 영역을 확인하고, 상기 상태 정보 영역의 더티 비트(dirty bit)가 '1'이면 해당 캐시 라인을 L1 캐시에 쓰고, 상기 더티 비트가 '0'이면 해당 캐시 라인을 사일런트 에빅션(Silent eviction)하는 것을 특징으로 한다.
상기 쓰기 필터 캐시에서 미스(miss)가 발생하면 상기 캐시 라인을 상기 L1 캐시에 할당하여 해당 데이터를 읽기 또는 쓰기를 수행하는 단계는, 상기 쓰기 필터 캐시는 해당 데이터를 상기 L1 캐시에서 검색하고, 상기 L1 캐시에서 해당 데이터가 존재하는 캐시 라인을 복사하여 로딩하는 것을 특징으로 한다.
실시예들 중에서, 차세대 메모리로 구성된 캐시의 제어 장치는, 메인 메모리와 프로세서 사이에 설치되고, STTRAM(Spin Transfer Torque Random Access Memory)으로 구성되는 L1 캐시; 및 상기 프로세서와 L1 캐시 사이에 설치되고, SRAM(Static Random Access Memory)으로 구성되며, 상기 프로세서가 상기 L1 캐시에 액세스하기 이전에 상기 프로세서에서 수행되는 상기 메인 메모리의 읽기 및 쓰기와 관련한 메모리 연산을 수행하는 쓰기 필터 캐시를 포함하는 것을 특징으로 한다.
상기 쓰기 필터 캐시는 복수 개의 캐시 라인을 포함하고, 상기 캐시 라인 단위로 데이터 전송을 수행하는 것을 특징으로 한다.
상기 캐시 라인은 기설정된 주소 공간을 갖는 태그 영역, 데이터 영역, 상태정보 영역을 포함하며, 상기 쓰기 필터 캐시는 상기 태그를 이용한 완전 연관(fully associative) 매핑 방식으로 구현되는 것을 특징으로 한다.
상기 쓰기 필터 캐시는, 상기 프로세서에서 데이터의 로드/스토어(load/store)가 이슈될 경우에 해당 데이터를 검색하여 히트(hit)가 발생하면 해당 데이터에 대한 읽기 또는 쓰기를 수행하고, 해당 데이터의 미스(miss)가 발생하면 상기 L1 캐시에 액세스하여 해당 데이터의 읽기 또는 쓰기를 수행하는 것을 특징으로 한다.
상기 쓰기 필터 캐시는 미스(miss)가 발생하면 해당 데이터를 상기 L1 캐시에서 검색하고, 상기 L1 캐시에서 해당 데이터가 존재하는 캐시 라인을 복사하여 자신의 비어있는 캐시라인에 로딩하는 것을 특징으로 한다.
상기 쓰기 필터 캐시에서 스토어 히트(hit)가 발생한 경우에, 상기 쓰기 필터 캐시에 캐시 라인을 할당하고, 상기 쓰기 필터 캐시의 엔트리(entry)를 검색한 후 비어있는 엔트리에 해당 데이터의 쓰기를 수행하는 것을 특징으로한다.
상기 쓰기 필터 캐시는 비어있는 엔트리가 없는 경우에 LRU(Least Recently Used) 교체 정책을 사용하여 최장 시간 동안 사용되지 않은 캐시 라인을 빅팀(victim)으로 선택하고, 상기 선택한 빅팀의 캐시 라인을 교체하는 에빅션(eviction)을 수행하는 것을 특징으로 한다.
본 발명의 차세대 메모리로 구성된 캐시의 제어 장치 및 그 방법은 프로세서의 로드-스토어 큐와 L1 캐시 사이에 쓰기 필터 캐시를 배치하고, 프로세서에서 수행되는 메모리의 읽기 및 쓰기 연산들이 L1 캐시에서 수행되기 이전에 쓰기 필터 캐시에서 수행되고, 프로세서에서 요구하는 데이터가 쓰기 필터 캐시에 없는 경우에만 L1 캐시에 접근하도록 함으로써 L1 캐시의 접근 횟수를 줄여 STTRAM 기반의 L1 데이터 캐시의 에너지 소모량을 낮출 수 있는 효과가 있다.
STTRAM과 같은 차세대 메모리 소자가 누수 전력 소모가 적고 읽기 연산이 빠르기 때문에 이러한 차세대 메모리를 사용하는 프로세서가 증가하고 있지만 쓰기 연산에 소요되는 에너지 소모량이 많은 단점이 있다. 본 발명은 쓰기 필터 캐시를 사용하여 차세대 메모리 소자의 쓰기 연산에 소요되는 에너지 소모량을 낮출 수 있기 때문에 향후 차세대 메모리 소자를 사용하는 프로세서의 설계 및 개발에 상당한 도움을 줄 수 있는 효과가 있다.
도 1은 본 발명의 일 실시예에 따른 차세대 메모리로 구성된 캐시의 제어 장치의 구성을 설명하는 도면이다.
도 2는 본 발명의 일 실시예에 다른 차세대 메모리로 구성된 캐시의 제어 방법 중 로드 과정을 설명하는 순서도이다.
도 3은 도 2의 로드 과정에서 사이클 처리 상태를 설명하는 도면이다.
도 4는 본 발명의 일 실시예에 다른 차세대 메모리로 구성된 캐시의 제어 방법 중 스토어 과정을 설명하는 순서도이다.
도 5는 도 4의 스토어 과정에서 사이클 처리 상태를 설명하는 도면이다.
본 발명에 관한 설명은 구조적 내지 기능적 설명을 위한 실시예에 불과하므로, 본 발명의 권리범위는 본문에 설명된 실시예에 의하여 제한되는 것으로 해석되어서는 아니 된다. 즉, 실시예는 다양한 변경이 가능하고 여러 가지 형태를 가질 수 있으므로 본 발명의 권리범위는 기술적 사상을 실현할 수 있는 균등물들을 포함하는 것으로 이해되어야 한다. 또한, 본 발명에서 제시된 목적 또는 효과는 특정 실시예가 이를 전부 포함하여야 한다거나 그러한 효과만을 포함하여야 한다는 의미는 아니므로, 본 발명의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다.
한편, 본 발명에서 서술되는 용어의 의미는 다음과 같이 이해되어야 할 것이다.
"제1", "제2" 등의 용어는 하나의 구성요소를 다른 구성요소로부터 구별하기 위한 것으로, 이들 용어들에 의해 권리범위가 한정되어서는 아니 된다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어"있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결될 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어"있다고 언급된 때에는 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 한편, 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한 복수의 표현을 포함하는 것으로 이해되어야 하고, "포함하다"또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이며, 하나 또는 그 이상의 다른 특징이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
각 단계들에 있어 식별부호(예를 들어, a, b, c 등)는 설명의 편의를 위하여 사용되는 것으로 식별부호는 각 단계들의 순서를 설명하는 것이 아니며, 각 단계들은 문맥상 명백하게 특정 순서를 기재하지 않는 이상 명기된 순서와 다르게 일어날 수 있다. 즉, 각 단계들은 명기된 순서와 동일하게 일어날 수도 있고 실질적으로 동시에 수행될 수도 있으며 반대의 순서대로 수행될 수도 있다.
여기서 사용되는 모든 용어들은 다르게 정의되지 않는 한, 본 발명이 속하는 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 것으로 해석되어야 하며, 본 발명에서 명백하게 정의하지 않는 한 이상적이거나 과도하게 형식적인 의미를 지니는 것으로 해석될 수 없다.
도 1은 본 발명의 일 실시예에 따른 차세대 메모리로 구성된 캐시의 제어 장치의 구성을 설명하는 도면이다.
도 1을 참고하면, 차세대 메모리로 구성된 캐시의 제어 장치는, 프로세서(10) 내에서 메모리 연산을 관리하는 자료 구조인 로드/스토어 큐(Load/Store Queue)(11)와 L1 캐시(20) 사이에 쓰기 필터 캐시(30)를 설치한다.
이때, L1 캐시(20)는 데이터 캐시(Data Cache)이고, STTRAM(Spin Transfer Torque Random Access Memory)으로 구성된다.
또한, 쓰기 필터 캐시(30)는 L0 캐시에 해당하는 저장 장치로서, L1 캐시(20)보다 상대적으로 크기가 작아서 쓰기 필터 캐시(30)에서 히트가 발생하게 되면 L1 캐시(20)의 에너지 소모량을 줄일 수 있다.
이러한 쓰기 필터 캐시(30)는 SRAM으로 구성된 4~8개의 엔트리를 가지도록 구성하고, 2~4개의 캐시 라인을 포함하며, 프로세서(10)에서 수행되는 메모리의 읽기 및 쓰기 연산들이 L1 캐시(20)에서 수행되기 전에 쓰기 필터 캐시(30)에서 수행되도록 한다.
이때, L1 캐시(20)와 쓰기 필터 캐시(30)는 캐시 라인 단위로 데이터 전송을 수행하고, 캐시 라인은 기설정된 주소 공간을 갖는 태그 영역, 데이터 영역, 상태정보 영역을 포함한다.
도 2는 본 발명의 일 실시예에 다른 차세대 메모리로 구성된 캐시의 제어 방법 중 로드 과정을 설명하는 순서도이고, 도 3은 도 2의 로드 과정에서 사이클 처리 상태를 설명하는 도면이다.
도 2를 참고하면, 차세대 메모리로 구성된 캐시의 제어 방법은, 프로세서(10) 내의 LSQ(11)에서 특정 데이터의 로드(load)가 이슈될 경우에 쓰기 필터 캐시(30)에 액세스하여 해당 데이터가 있는지 검색한다.(S11, S12)
쓰기 필터 캐시(30)에서 히트(hit)가 발생하면 해당 데이터를 쓰기 필터 캐시(30)로부터 읽기를 수행하지만, 쓰기 필터 캐시(30)에서 미스(miss)가 발생하면 L1 캐시(20)에 액세스한다.(S13, S14, S15) 쓰기 필터 캐시(30)에서 미스(miss)가 발생하면 해당 데이터가 있는 캐시 라인을 L1 캐시(20)에서 읽어와 비어 있는 캐시라인에 저장한다.(S16, S17)
일반적으로, 쓰기 필터 캐시(30)와 L1 캐시(20)는 메인 메모리에서 가져온 데이터를 저장하는 데이터 배열, 메모리에서 어느 주소에 위치한 데이터인지 등을 나타내는 태그 배열, 데이터 배열에 읽고 쓰거나 태그 배열의 내용을 제어하는 캐시 컨트롤러로 구성되어 있다.
도 3에 도시된 바와 같이, 쓰기 필터 캐시(30)는 프로세서(10)에서 특정 주소에 있는 데이터의 로드 요청을 받았을 경우에, 캐시 컨트롤러는 프로세서(10)에서 받은 주소와 태그가 일치하는 캐시라인이 있는지를 체크하고, 태그가 일치하는 캐시 라인이 있는 경우에 해당 데이터를 프로세스(10)로 전송한다. 따라서, 쓰기 필터 캐시(30)에서 히트가 발생하면 1 싸이클(cycle) 내에 로드 과정이 완료될 수 있다.
그러나, 쓰기 필터 캐시(30)는 태그가 일치하는 캐시 라인이 없을 경우에, 즉 미스가 발생하면 프로세스(10)로부터 요청받은 데이터가 쓰기 필터 캐시(30)에 없으므로 해당 주소를 포함하는 캐시 라인 전체 데이터를 L1 캐시(20)에서 검색하여 읽어오고, 태그를 붙여서 비어있는 캐시 라인에 저장한 후 쓰기 필터 캐시(30)는 캐시 라인 내의 요청받은 주소의 데이터를 프로세서(10)로 전송한다. 이때, 쓰기 필터 캐시(30)는 STTRAM 기반의 L1 캐시(20)의 특성에 따라 2 싸이클이 추가로 발생하여 전체 3 싸이클이 걸린다.
도 4는 본 발명의 일 실시예에 다른 차세대 메모리로 구성된 캐시의 제어 방법 중 스토어 과정을 설명하는 순서도이고, 도 5는 도 4의 스토어 과정에서 사이클 처리 상태를 설명하는 도면이다.
도 4를 참고하면, 프로세서(10)의 LSQ(11)에서 특정 데이터의 스토어(Store)가 이슈될 경우에, L1 캐시(20)에 스토어 히트가 발생된 것이므로 스토어 히트가 발생한 캐시 라인을 쓰기 필터 캐시(30)에 할당한다.(S21, S22, S23)
태그를 이용한 완전 연관(fully associative) 매핑 방식으로 사용하는 쓰기 필터 캐시(30)는 비어있는 엔트리(entry)가 있는지를 검색하고, 비어 있는 엔트리가 없는 경우에 미스(miss)가 발생한 것이므로 LRU(Least Recently Used) 교체 정책을 구현한다.(S24, S25) 따라서, 쓰기 필터 캐시(30)는 최장 시간 동안 사용되지 않은 캐시 라인을 빅팀(victim)으로 선택하고, 선택한 빅팀의 캐시 라인을 교체하는 에빅션(eviction)을 수행한다.(S26)
이때, 에빅션되는 캐시 라인의 상태 정보 영역을 확인하고, 상태 정보 영역의 더티 비트(dirty bit)가 '1'이면 데이터 변경이 있는 것이므로 해당 캐시 라인을 L1 캐시(20)에 쓴다. 그러나, 해당 캐시 라인의 더티 비트가 '0'이면 데이터 변경이 없다는 것이므로 캐시 라인을 사일런트 에빅션(Silent eviction)한다.
쓰기 필터 캐시(30)와 L1 캐시(20)는 포함 속성(Inclusion Property)이 적용된다. 즉, 쓰기 필터 캐시(30)는 L1 캐시(20)에 데이터를 그대로 두고 L1 캐시(20)에서 해당 데이터가 존재하는 캐시 라인을 복사하여 로딩한다.
한편, 쓰기 필터 캐시(30)의 엔트리 중 비어있는 엔트리가 있는 경우에 비어있는 엔트리에 태그를 붙여서 해당 데이터의 쓰기를 수행한다.(S27)
도 4에 도시된 바와 같이, 쓰기 필터 캐시(30)는 프로세서(10)에서 데이터의 스토어 요청을 받았을 경우에, 캐시 컨트롤러는 비어 있는 엔트리가 있다면 L1 캐시(20)에서 스토어 히트가 발생한 캐시 라인을 할당하여 해당 데이터의 쓰기를 수행하므로 1 싸이클(cycle) 내에 스토어 과정이 완료될 수 있다.
그러나, 쓰기 필터 캐시(30)는 비어 있는 엔트리가 없는 경우에 스토어 미스가 발생하여 기존의 캐시 라인을 교체하고, 포함 속성을 적용하여 L1 캐시(20)의 캐시라인을 복사하여 자신의 캐시 라인에 저장한다. 이때, 쓰기 필터 캐시(30)는 STTRAM 기반의 L1 캐시(20)의 특성에 따라 4 싸이클이 추가로 발생하여 전체 5 싸이클이 걸린다.
이와 같이, 본 발명의 일 실시예에 따른 차세대 메모리로 구성된 캐시의 제어 방법은 SRAM으로 구성된 4~8개의 엔트리를 갖는 쓰기 필터 캐시(30)를 사용하여 STTRAM 기반의 L1 캐시(20)의 쓰기 연산을 줄일 수 있다. 즉, 프로세서(10)에서 수행되는 메모리의 읽기 및 쓰기 연산들이 L1 캐시에서 수행되기 이전에 쓰기 필터 캐시(30)에서 수행됨으로써 L1 캐시(20)의 접근 횟수를 줄여 STTRAM으로 구성된 L1 캐시의 에너지 소모량을 줄일 수 있다. 실제로, STTRAM 기반의 L1 캐시(20)의 에너지 소모량을 SPEC 2006 벤치마크 프로그램 기준으로 약 43% 낮출 수 있다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
10 : 프로세서 11 : LSQ
20 : L1 캐시 30 : 쓰기 필터 캐시

Claims (14)

  1. 메인 메모리와 프로세서 사이에 설치된 L1 캐시를 이용하여 상기 프로세서에서 수행되는 상기 메인 메모리의 읽기 및 쓰기와 관련한 메모리 연산을 수행하는 방법에 있어서,
    상기 L1 캐시는 STTRAM(Spin Transfer Torque Random Access Memory)으로 구성된 데이터 캐시(Data Cache)이고, 상기 프로세서와 L1 캐시 사이에 SRAM(Static Random Access Memory)으로 구성되고 복수의 캐시 라인을 포함하는 쓰기 필터 캐시를 배치하는 단계;
    상기 프로세서에서 데이터의 로드/스토어(load/store)가 이슈될 경우에 상기 쓰기 필터 캐시에 액세스하여 해당 데이터를 검색하는 단계;
    상기 쓰기 필터 캐시에서 히트(hit)가 발생하면 해당 데이터를 상기 쓰기 필터 캐시로부터 읽기 또는 쓰기를 수행하는 단계; 및
    상기 쓰기 필터 캐시에서 미스(miss)가 발생하면 상기 캐시 라인을 상기 L1 캐시에 할당하여 해당 데이터를 읽기 또는 쓰기를 수행하는 단계를 포함하는 것을 특징으로 하는 차세대 메모리로 구성된 캐시의 제어 방법.
  2. 삭제
  3. 제1항에 있어서,
    상기 메모리, L1 캐시 또는 쓰기 필터 캐시 간에 데이터 전송은 상기 캐시 라인 단위로 진행되고,
    상기 캐시 라인은 기설정된 주소 공간을 갖는 태그 영역, 데이터 영역, 상태정보 영역을 포함하며,
    상기 쓰기 필터 캐시는 상기 태그를 이용한 완전 연관(fully associative) 매핑 방식으로 구현되는 것을 특징으로 하는 차세대 메모리로 구성된 캐시의 제어 방법.
  4. 제3항에 있어서,
    상기 쓰기 필터 캐시에서 히트(hit)가 발생하면 해당 데이터를 상기 쓰기 필터 캐시로부터 읽기 또는 쓰기를 수행하는 단계는,
    스토어 히트가 발생한 경우에 상기 쓰기 필터 캐시에 캐시 라인을 할당하고, 상기 쓰기 필터 캐시의 엔트리(entry)를 검색하는 단계;
    상기 쓰기 필터 캐시의 엔트리 중 비어있는 엔트리에 해당 데이터의 쓰기를 수행하는 단계를 포함하는 것을 특징으로 하는 차세대 메모리로 구성된 캐시의 제어 방법.
  5. 제4항에 있어서,
    상기 쓰기 필터 캐시의 엔트리 중 비어있는 엔트리가 없는 경우에 LRU(Least Recently Used) 교체 정책을 사용하여 최장 시간 동안 사용되지 않은 캐시 라인을 빅팀(victim)으로 선택하고, 상기 선택한 빅팀의 캐시 라인을 교체하는 에빅션(eviction)을 수행하는 것을 특징으로 하는 차세대 메모리로 구성된 캐시의 제어 방법.
  6. 제5항에 있어서,
    상기 에빅션을 수행하기 위한 캐시 라인의 상태 정보 영역을 확인하고, 상기 상태 정보 영역의 더티 비트(dirty bit)가 '1'이면 해당 캐시 라인을 L1 캐시에 쓰고,
    상기 더티 비트가 '0'이면 해당 캐시 라인을 사일런트 에빅션(Silent eviction)하는 것을 특징으로 하는 차세대 메모리로 구성된 캐시의 제어 방법.
  7. 제1항에 있어서,
    상기 쓰기 필터 캐시에서 미스(miss)가 발생하면 상기 캐시 라인을 상기 L1 캐시에 할당하여 해당 데이터를 읽기 또는 쓰기를 수행하는 단계는,
    상기 쓰기 필터 캐시는 해당 데이터를 상기 L1 캐시에서 검색하고, 상기 L1 캐시에서 해당 데이터가 존재하는 캐시 라인을 복사하여 로딩하는 것을 특징으로 하는 차세대 메모리로 구성된 캐시의 제어 방법.
  8. 메인 메모리와 프로세서 사이에 설치되고, STTRAM(Spin Transfer Torque Random Access Memory)으로 구성되는 L1 캐시; 및
    상기 프로세서와 L1 캐시 사이에 설치되고, SRAM(Static Random Access Memory)으로 구성되며, 상기 프로세서가 상기 L1 캐시에 액세스하기 이전에 상기 프로세서에서 수행되는 상기 메인 메모리의 읽기 및 쓰기와 관련한 메모리 연산을 수행하는 쓰기 필터 캐시를 포함하는 것을 특징으로 하는 차세대 메모리로 구성된 캐시의 제어 장치.
  9. 제8항에 있어서,
    상기 쓰기 필터 캐시는 복수 개의 캐시 라인을 포함하고, 상기 캐시 라인 단위로 데이터 전송을 수행하는 것을 특징으로 하는 차세대 메모리로 구성된 캐시의 제어 장치.
  10. 제9항에 있어서,
    상기 캐시 라인은 기설정된 주소 공간을 갖는 태그 영역, 데이터 영역, 상태정보 영역을 포함하며,
    상기 쓰기 필터 캐시는 상기 태그를 이용한 완전 연관(fully associative) 매핑 방식으로 구현되는 것을 특징으로 하는 차세대 메모리로 구성된 캐시의 제어 장치.
  11. 제8항에 있어서,
    상기 쓰기 필터 캐시는,
    상기 프로세서에서 데이터의 로드/스토어(load/store)가 이슈될 경우에 해당 데이터를 검색하여 히트(hit)가 발생하면 해당 데이터에 대한 읽기 또는 쓰기를 수행하고, 해당 데이터의 미스(miss)가 발생하면 상기 L1 캐시에 액세스하여 해당 데이터의 읽기 또는 쓰기를 수행하는 것을 특징으로 하는 차세대 메모리로 구성된 캐시의 제어 장치.
  12. 제10항 또는 제11항에 있어서,
    상기 쓰기 필터 캐시는 미스(miss)가 발생하면 해당 데이터를 상기 L1 캐시에서 검색하고, 상기 L1 캐시에서 해당 데이터가 존재하는 캐시 라인을 복사하여 자신의 비어있는 캐시라인에 로딩하는 것을 특징으로 하는 차세대 메모리로 구성된 캐시의 제어 장치.
  13. 제11항에 있어서,
    상기 쓰기 필터 캐시에서 스토어 히트(hit)가 발생한 경우에, 상기 쓰기 필터 캐시에 캐시 라인을 할당하고, 상기 쓰기 필터 캐시의 엔트리(entry)를 검색한 후 비어있는 엔트리에 해당 데이터의 쓰기를 수행하는 것을 특징으로 하는 차세대 메모리로 구성된 캐시의 제어 장치.
  14. 제13항에 있어서,
    상기 쓰기 필터 캐시는 비어있는 엔트리가 없는 경우에 LRU(Least Recently Used) 교체 정책을 사용하여 최장 시간 동안 사용되지 않은 캐시 라인을 빅팀(victim)으로 선택하고, 상기 선택한 빅팀의 캐시 라인을 교체하는 에빅션(eviction)을 수행하는 것을 특징으로 하는 차세대 메모리로 구성된 캐시의 제어 장치.
KR1020150156543A 2015-11-09 2015-11-09 차세대 메모리로 구성된 캐시의 제어 장치 및 그 방법 KR101831226B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150156543A KR101831226B1 (ko) 2015-11-09 2015-11-09 차세대 메모리로 구성된 캐시의 제어 장치 및 그 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150156543A KR101831226B1 (ko) 2015-11-09 2015-11-09 차세대 메모리로 구성된 캐시의 제어 장치 및 그 방법

Publications (2)

Publication Number Publication Date
KR20170054609A KR20170054609A (ko) 2017-05-18
KR101831226B1 true KR101831226B1 (ko) 2018-02-23

Family

ID=59049227

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150156543A KR101831226B1 (ko) 2015-11-09 2015-11-09 차세대 메모리로 구성된 캐시의 제어 장치 및 그 방법

Country Status (1)

Country Link
KR (1) KR101831226B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11327681B2 (en) 2020-02-25 2022-05-10 SK Hynix Inc. Memory system with a zoned namespace and an operating method thereof

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100552429B1 (ko) * 2004-02-11 2006-02-20 전주식 계층적 메모리 구조 프로세서 장치 및 그 프로세싱 방법
KR101442494B1 (ko) * 2013-05-23 2014-09-26 수원대학교산학협력단 워드 필터를 사용한 순차적 선택적 워드 접근 드라우지 캐시의 제어 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100552429B1 (ko) * 2004-02-11 2006-02-20 전주식 계층적 메모리 구조 프로세서 장치 및 그 프로세싱 방법
KR101442494B1 (ko) * 2013-05-23 2014-09-26 수원대학교산학협력단 워드 필터를 사용한 순차적 선택적 워드 접근 드라우지 캐시의 제어 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11327681B2 (en) 2020-02-25 2022-05-10 SK Hynix Inc. Memory system with a zoned namespace and an operating method thereof

Also Published As

Publication number Publication date
KR20170054609A (ko) 2017-05-18

Similar Documents

Publication Publication Date Title
US8966181B2 (en) Memory hierarchy with non-volatile filter and victim caches
US8954672B2 (en) System and method for cache organization in row-based memories
US9645938B2 (en) Cache operations for memory management
JP6088951B2 (ja) キャッシュメモリシステムおよびプロセッサシステム
US9990283B2 (en) Memory system
US9977606B2 (en) Memory system
US9977604B2 (en) Memory system
US10191664B2 (en) Memory system
US20170109277A1 (en) Memory system
US10445003B2 (en) Memory system for dualizing first memory based on operation mode
US10466909B2 (en) Memory system
US10970208B2 (en) Memory system and operating method thereof
US20170109043A1 (en) Memory system
US20170109066A1 (en) Memory system
US20140297961A1 (en) Selective cache fills in response to write misses
KR101351550B1 (ko) 비휘발성 메인 메모리 기반을 위한 이중 버퍼 구조 및 데이터 운영 방식
US20170109071A1 (en) Memory system
US20170109074A1 (en) Memory system
US20170109086A1 (en) Memory system
US20170109072A1 (en) Memory system
KR101831226B1 (ko) 차세대 메모리로 구성된 캐시의 제어 장치 및 그 방법
KR101546707B1 (ko) 하이브리드 메인 메모리 기반의 메모리 접근 관리방법
US20170109061A1 (en) Memory system
US10467137B2 (en) Apparatus, system, integrated circuit die, and method to determine when to bypass a second level cache when evicting modified data from a first level cache
Tsai et al. Leveraging data lifetime for energy-aware last level non-volatile sram caches using redundant store elimination

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right