KR101351550B1 - 비휘발성 메인 메모리 기반을 위한 이중 버퍼 구조 및 데이터 운영 방식 - Google Patents

비휘발성 메인 메모리 기반을 위한 이중 버퍼 구조 및 데이터 운영 방식 Download PDF

Info

Publication number
KR101351550B1
KR101351550B1 KR1020120040291A KR20120040291A KR101351550B1 KR 101351550 B1 KR101351550 B1 KR 101351550B1 KR 1020120040291 A KR1020120040291 A KR 1020120040291A KR 20120040291 A KR20120040291 A KR 20120040291A KR 101351550 B1 KR101351550 B1 KR 101351550B1
Authority
KR
South Korea
Prior art keywords
data
buffer
memory device
nonvolatile memory
cache memory
Prior art date
Application number
KR1020120040291A
Other languages
English (en)
Other versions
KR20130117266A (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 KR1020120040291A priority Critical patent/KR101351550B1/ko
Publication of KR20130117266A publication Critical patent/KR20130117266A/ko
Application granted granted Critical
Publication of KR101351550B1 publication Critical patent/KR101351550B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • 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
    • 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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/02Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
    • G11C11/16Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using elements in which the storage effect is based on magnetic spin effect
    • G11C11/165Auxiliary circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/22Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using ferroelectric elements
    • G11C11/225Auxiliary circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0004Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements comprising amorphous/crystalline phase transition cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Chemical & Material Sciences (AREA)
  • Crystallography & Structural Chemistry (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

본 발명의 일 실시예에 따른 메모리 시스템은 불휘발성 메모리 디바이스, 및 호스트의 캐시 메모리로부터의 액세스 요청에 대응하여 상기 불휘발성 메모리 디바이스에 액세스하는 컨트롤러를 포함하고, 상기 컨트롤러는 상기 불휘발성 메모리 디바이스의 데이터 저장 단위보다 큰 단위로 데이터를 저장하는 제 1 버퍼, 및 상기 제 1 버퍼에 저장되는 상기 데이터 중 상기 캐시 메모리로부터의 액세스 요청이 있었던 데이터를 저장하는 제 2 버퍼를 포함한다.

Description

비휘발성 메인 메모리 기반을 위한 이중 버퍼 구조 및 데이터 운영 방식{Dual Buffer Architecture and Data Management for Non-Volatile based Main Memory}
본 발명은 메모리 분야에 관한 것으로, 더욱 상세하게는 메모리 시스템 및 그것의 동작 방법에 관한 것이다.
최근 반도체 기술의 발달로 인하여 DRAM(Dynamic Random Access Memory)과 같이 고속 동작할 수 있으며, 플래시 메모리와 같이 전원이 차단되더라도 데이터를 저장할 수 있는 불휘발성 램에 대한 연구가 활발히 진행되고 있다. 이러한 불휘발성 램에는 PRAM(Phase-change Random Access Memory), FeRAM(Ferroelectric Random Access Memory), MRAM(Magnetic Random Access Memory) 등이 있다.
이러한 차세대 불휘발성 메모리는 고성능, 고집적도, 저전력 등의 특징을 가짐으로써 일반적으로 메인 메모리로 사용되는 DRAM을 대체할 수 있을 것으로 기대되고 있다. 나아가, 일반적으로 캐시 메모리, 메인 메모리, 디스크 드라이브로 구성되는 메모리 계층이 캐시 메모리, 불휘발성 램의 구조로 변화될 것으로 기대되고 있다.
하지만, 캐시 메모리 및 불휘발성 램으로 구성되는 메모리 계층 구조의 경우 두 메모리 계층 간 읽기 및 쓰기 속도 차이로 인한 성능 격차가 심하고, 불휘발성 램의 짧은 수명이 문제가 된다.
이에, 본 발명의 일 실시예가 이루고자 하는 기술적 과제는 캐시 메모리와 불휘발성 메모리 간의 성능 차이를 보완할 수 있는 메모리 시스템 및 그것의 동작 방법을 제공하는 데 있다.
본 발명의 기술적 과제는 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
본 발명의 일 실시예에 따른 메모리 시스템은 불휘발성 메모리 디바이스, 및 호스트의 캐시 메모리로부터의 액세스 요청에 대응하여 상기 불휘발성 메모리 디바이스에 액세스하는 컨트롤러를 포함하고, 상기 컨트롤러는 상기 불휘발성 메모리 디바이스의 데이터 저장 단위보다 큰 단위로 데이터를 저장하는 제 1 버퍼, 및 상기 제 1 버퍼에 저장되는 상기 데이터 중 상기 캐시 메모리로부터의 액세스 요청이 있었던 데이터를 저장하는 제 2 버퍼를 포함한다.
일 실시예에서, 상기 캐시 메모리로부터의 상기 액세스 요청이 발생하는 경우, 상기 제 1 버퍼, 상기 제 2 버퍼 및 상기 불휘발성 메모리 디바이스 순서로 상기 액세스 요청에 대응하는 데이터 처리가 수행될 수 있다.
일 실시예에서, 상기 제 1 버퍼는 상기 캐시 메모리로부터의 상기 액세스 요청에 대응하는 데이터를 저장하고 있는 경우 상기 캐시 메모리로 상기 데이터를 전달하고, 상기 캐시 메모리로부터의 상기 액세스 요청에 대응하는 데이터를 저장하고 있지 않은 경우 상기 제 2 버퍼에 상기 액세스 요청에 대응하는 데이터를 요청하며, 상기 제 2 버퍼는 상기 제 1 버퍼로부터의 요청에 대응하는 데이터를 저장하고 있는 경우 상기 캐시 메모리로 상기 데이터를 전달하고, 상기 제 1 버퍼로부터의 요청에 대응하는 데이터를 저장하고 있지 않은 경우 상기 불휘발성 메모리 디바이스에 상기 요청에 대응하는 데이터를 요청할 수 있다.
일 실시예에서, 상기 불휘발성 메모리 디바이스는 페이지 단위로 데이터를 저장하고, 상기 제 1 버퍼는 복수의 상기 페이지로 구성되는 슈퍼 블록 단위로 데이터를 저장하고, 상기 제 2 버퍼는 상기 페이지를 구성하는 서브 블록 단위로 데이터를 저장할 수 있다.
일 실시예에서, 상기 제 1 버퍼에 저장된 상기 슈퍼 블록 단위의 데이터를 구성하는 상기 서브 블록 단위의 데이터에 대한 액세스 정보를 저장하는 히스토리 테이블을 포함할 수 있다.
일 실시예에서, 상기 제 1 버퍼는 LRU(Least Recently Used) 방법에 따라 상기 슈퍼 블록 단위의 데이터들 가운데 어느 하나를 선택하고, 선택된 상기 슈퍼 블록 단위의 데이터를 상기 히스토리 테이블을 참조하여 상기 서브 블록 단위로 상기 제 2 버퍼로 전달할 수 있다.
일 실시예에서, 상기 제 2 버퍼는 선입선출(First In First Out) 방법을 이용하여 상기 서브 블록 단위의 데이터를 상기 불휘발성 메모리 디바이스로 전달할 수 있다.
일 실시예에서, 상기 제 1 버퍼 및 상기 제 2 버퍼는 SRAM 또는 DRAM일 수 있다.
일 실시예에서, 상기 불휘발성 메모리 디바이스는 PRAM, MRAM 또는 FeRAM일 수 있다.
본 발명의 일 실시예에 따른 메모리 시스템의 동작 방법은 캐시 메모리와 불휘발성 메모리 디바이스를 포함하는 메모리 시스템의 동작 방법에 있어서, 상기 캐시 메모리로부터 발생된 액세스 요청에 대응하여 제 1 버퍼에 액세스하는 단계, 상기 제 1 버퍼에 상기 액세스 요청에 대응하는 데이터가 존재하지 않는 경우 제 2 버퍼에 상기 데이터를 요청하는 단계, 및 상기 제 2 버퍼에 상기 액세스 요청에 대응하는 데이터가 존재하지 않는 경우 상기 불휘발성 메모리 디바이스에 상기 데이터를 요청하는 단계를 포함하되, 상기 제 1 버퍼는 상기 불휘발성 메모리 디바이스의 데이터 저장 단위보다 큰 단위로 데이터를 저장하고, 상기 제 2 버퍼는 상기 불휘발성 메모리 디바이스의 데이터 저장 단위보다 작은 단위로 데이터를 저장한다.
일 실시예에서, 상기 불휘발성 메모리 디바이스는 페이지 단위로 데이터를 저장하고, 상기 제 1 버퍼는 복수의 상기 페이지로 구성되는 슈퍼 블록 단위로 데이터를 저장하고, 상기 제 2 버퍼는 상기 페이지를 구성하는 서브 블록 단위로 데이터를 저장할 수 있다.
일 실시예에서, 상기 제 2 버퍼는 상기 제 1 버퍼에 저장되는 상기 슈퍼 블록 단위의 데이터 중 상기 캐시 메모리로부터의 상기 액세스 요청이 있었던 상기 서브 블록 데이터를 저장할 수 있다.
일 실시예에서, 상기 제 1 버퍼에 저장된 상기 슈퍼 블록 단위의 데이터를 구성하는 상기 서브 블록 단위의 데이터에 대한 액세스 정보를 저장하는 단계를 포함할 수 있다.
일 실시예에서, 상기 제 1 버퍼에 저장된 상기 슈퍼 블록 단위의 데이터들 가운데 어느 하나를 LRU(Least Recently Used) 방법에 따라 선택하고, 선택된 상기 슈퍼 블록 단위의 데이터를 상기 액세스 정보를 참조하여 상기 서브 블록 단위로 상기 제 2 버퍼로 전달하는 단계를 포함할 수 있다.
일 실시예에서, 상기 제 1 버퍼에 저장된 상기 슈퍼 블록 단위의 데이터들 가운데 어느 하나를 LRU(Least Recently Used) 방법에 따라 선택하고, 선택된 상기 슈퍼 블록 단위의 데이터를 상기 액세스 정보를 참조하여 상기 서브 블록 단위로 상기 제 2 버퍼로 전달하는 단계는, 상기 선택된 슈퍼 블록 단위의 데이터에 포함된 상기 서브 블록 단위의 데이터들 가운데 상기 캐시 메모리로부터 액세스 요청이 없었던 서브 블록 단위의 데이터를 제거하는 단계를 포함할 수 있다.
일 실시예에서, 선입선출(First In First Out) 방법을 이용하여 상기 제 2 버퍼에 저장된 상기 서브 블록 단위의 데이터를 상기 불휘발성 메모리 디바이스로 전달하는 단계를 포함할 수 있다.
본 발명의 일 실시예에 따른 메모리 시스템 및 그것의 동작 방법은 캐시 메모리 및 불휘발성 메모리 간의 성능 격차를 보완하여, 메모리 시스템의 성능을 향상시킬 수 있다.
도 1은 본 발명의 일 실시예에 따른 메모리 시스템을 개략적으로 보여준다.
도 2는 도 1의 메모리 시스템을 더욱 구체적으로 보여준다.
도 3은 도 1의 메모리 시스템을 더욱 구체적으로 보여준다.
도 4 및 도 5는 본 발명의 일 실시예에 따른 메모리 시스템의 동작을 설명하기 위해 메모리 시스템을 더욱 구체적으로 나타낸 것이다.
도 6 및 도 7은 본 발명의 일 실시예에 따른 메모리 시스템의 동작 방법을 설명하기 위한 흐름도이다.
도 8은 본 발명의 일 실시예에 따른 메모리 시스템의 성능을 설명하기 위한 그래프이다.
도 9는 본 발명의 일 실시예에 따른 메모리 시스템을 포함하는 컴퓨팅 시스템을 보여준다.
본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 또는 기능적 설명들은 단지 본 발명의 개념에 따른 실시 예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시 예들은 다양한 형태들로 실시될 수 있으며 본 명세서에 설명된 실시 예들에 한정되지 않는다.
본 발명의 개념에 따른 실시 예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시 예들을 도면에 예시하고 본 명세서에 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시 예들을 특정한 개시 형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물, 또는 대체물을 포함한다.
제1 또는 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1구성요소는 제2구성요소로 명명될 수 있고, 유사하게 제2구성요소는 제1구성요소로도 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설명된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미가 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
본 발명의 일 실시예는 메모리 시스템 및 그것의 동작 방법에 관한 것이다. 이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여, 본 발명의 실시예를 첨부된 도면을 참조하여 설명하기로 한다.
도 1은 본 발명의 일 실시예에 따른 메모리 시스템을 개략적으로 보여준다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 메모리 시스템(100)은 호스트(110), 컨트롤러(120) 및 불휘발성 메모리 디바이스(130)를 포함한다.
호스트(110)는 캐시 메모리(111)를 포함한다. 캐시 메모리(111)는 예를 들어, 레벨 1 캐시 메모리(L1 Cache) 및 레벨 2 캐시 메모리(L2 Cache)로 구성될 수 있다. 호스트(110)는 캐시 메모리(111)에 필요한 데이터를 요청한다. 호스트(110)가 필요한 데이터가 캐시 메모리(111)에 존재하는 경우 호스트(110)는 캐시 메모리(111)로부터 데이터를 독출할 것이다. 호스트(110)가 필요한 데이터가 캐시 메모리(111)에 존재하지 않는 경우 캐시 메모리(111)는 컨트롤러(120)에 액세스 요청할 것이다. 캐시 메모리(111)에 호스트(110)가 필요한 데이터가 존재하지 않는 경우는 일반적으로 '캐시 미스(cache miss)'로 호칭되기도 한다. 이하에서는, 이러한 '캐시 미스' 상태를 전제로 설명될 것이다.
컨트롤러(120)는 불휘발성 메모리 디바이스(130)로부터 데이터를 전달받아 저장한다. 구체적으로, 컨트롤러(120)는 불휘발성 메모리 디바이스(130)의 데이터 저장 단위(ex. 페이지 단위)보다 더 큰 단위(ex.슈퍼 블록 단위)로 데이터를 저장할 수 있다. 또한, 컨트롤러(120)는 저장된 데이터들 가운데 캐시 메모리(111)로부터의 액세스 요청이 있었던 데이터들을 분류하여 저장할 수 있다. 컨트롤러(120)는 예를 들어, 복수의 SRAM 및/또는 DRAM으로 구성될 수 있다.
컨트롤러(120)는 캐시 메모리(111)로부터의 액세스 요청에 대응하는 데이터를 저장하고 있는 경우, 그 데이터를 캐시 메모리(111)로 전달한다. 컨트롤러(120)는 캐시 메모리(111)로부터의 액세스 요청에 대응하는 데이터를 저장하고 있지 않은 경우, 불휘발성 메모리 디바이스(130)에 대응하는 데이터를 요청한다.
불휘발성 메모리 디바이스(130)는 컨트롤러(120)로부터의 데이터 요청에 대응하는 데이터를 캐시 메모리(111)로 전달할 것이다. 또한, 불휘발성 메모리 디바이스(130)는 대응하는 데이터를 컨트롤러(120)로 전달할 것이다. 불휘발성 메모리 디바이스(130)는 데이터 저장을 위한 메모리 셀 어레이(미도시)와 메모리 셀 어레이를 제어하는 내부 컨트롤러(미도시)로 구성될 수 있다. 불휘발성 메모리 디바이스(130) 내부의 데이터 기입 및 독출 동작에 대해서는 본 발명이 속하는 기술분야에 정통한 사람들에게 자명한 사항이므로 생략된다.
불휘발성 메모리 디바이스(130)는 예를 들어, PRAM, MRAM 또는 FeRAM일 수 있으나, 이에 한정되는 것은 아니다. PRAM은 셀에 흐르는 전류에 기초하여 변화하는 상변화에 따른 저항값으로 하이 또는 로우를 판단함으로써 데이터를 저장하는 불휘발성 램이다. MRAM은 자기저항을 이용하여 데이터를 저장하는 불휘발성 램이다. FeRAM은 강유전체를 기억소자로 하는 불휘발성 램이다. 한편, 불휘발성 메모리 디바이스(130)는 예를 들어, 스핀 전달 MRAM(Spin-Transfer Torque MRAM), 저항 메모리(Resistive RAM), 나노튜브램(nanotube RAM) 또는 폴리머 램(polymer RAM)일 수 있다.
상술한 바와 같이, 본 발명의 일 실시예에 따른 메모리 시스템(100)의 컨트롤러(120)는 불휘발성 메모리 디바이스(130)로부터 데이터를 전달받아 저장하고, 캐시 메모리(111)로부터의 액세스 요청이 있는 경우, 대응하는 데이터를 캐시 메모리(111)에 전달한다. 따라서, 캐시 메모리(111)가 직접 불휘발성 메모리 디바이스(130)에 액세스함으로써 발생할 수 있는 레이턴시를 줄일 수 있다. 이는 메모리 시스템(100)의 성능 향상을 의미할 수 있다. 컨트롤러(120)가 캐시 메모리(111)와 불휘발성 메모리 디바이스(130)간의 성능 차이를 보완해주기 때문이다. 이하에서, 컨트롤러(120)의 이러한 기능이 더욱 상세하게 설명된다.
도 2는 도 1의 메모리 시스템을 더욱 구체적으로 보여준다. 동일한 참조부호는 동일한 구성을 의미한다. 또한, 도 1에서 설명된 구성과 동일한 구성에 대한 설명은 중복을 피하기 위해 생략된다. 이하에서는, '캐시 미스' 상태를 전제로 메모리 시스템(100)의 동작이 설명된다.
도 2를 참조하면, 본 발명의 일 실시예에 따른 메모리 시스템(100)은 호스트(110), 컨트롤러(120) 및 불휘발성 메모리 디바이스(130)를 포함한다.
호스트(110)는 캐시 메모리(111)를 포함한다. 캐시 메모리(111)는 서브 블록(Sub block) 단위로 데이터를 저장한다. 캐시 메모리(111)는 서브 블록 단위의 데이터에 대해 컨트롤러(120)에 액세스 요청한다. 서브 블록 단위는 캐쉬 라인 단위로 이해될 수 있으며, 예를 들어, 32 Byte, 64 Byte, 또는 128 Byte의 크기를 가질 수 있다.
컨트롤러(120)는 제 1 버퍼(121) 및 제 2 버퍼(122)를 포함한다.
제 1 버퍼(121)는 불휘발성 메모리 디바이스(130)로부터 불휘발성 메모리 디바이스(130)의 데이터 저장 단위(ex. 페이지)보다 큰 단위로 데이터를 전달받아 저장한다. 따라서, 하나의 단위 데이터에 캐시 메모리(111)로부터의 액세스 요청에 대응하는 서브 블록 데이터가 존재할 확률이 증가할 수 있다. 이는 공간적 지역성(spatial locality)의 향상으로도 이해될 수 있다.
제 2 버퍼(122)는 불휘발성 메모리 디바이스(130)의 데이터 저장 단위(ex. 페이지) 보다 작은 단위(ex. 서브 블록 단위)로 데이터를 저장한다. 제 2 버퍼(122)는 제 1 버퍼(121)에 저장된 데이터들 가운데 캐시 메모리(111)로부터 액세스 요청이 있었던 데이터를 저장한다. 따라서, 캐시 메모리(111)의 데이터 액세스 레이턴시(latency)를 줄일 수 있다. 이는 시간적 지역성(temporal locality)의 향상으로도 이해될 수 있다. 일반적으로, 액세스 요청이 있었던 데이터에 대해서는 반복적으로 액세스 요청이 발생할 가능성이 크기 때문이다.
한편, 제 1 버퍼(121) 및 제 2 버퍼(122) 각각은 예를 들어, SRAM 또는 DRAM일 수 있다. 제 1 버퍼(121) 및 제 2 버퍼(122) 각각은 데이터 저장을 위한 셀 어레이(미도시)와 셀 어레이를 제어하기 위한 내부 컨트롤러(미도시)를 포함할 수 있다. 셀 어레이 및 내부 컨트롤러에 대해서는 이 분야에 정통한 사람에게는 자명한 사항이므로 자세한 설명은 생략된다.
메모리 시스템(100)의 동작이 더욱 구체적으로 설명된다. 캐시 메모리(111)는 '캐시 미스' 발생 시에 제 1 버퍼(121)에 필요한 데이터에 대해 액세스 요청한다. 앞서 설명한 바와 같이, 캐시 메모리(111)는 서브 블록 단위로 필요한 데이터에 대해 제 1 버퍼(121)에 액세스 요청한다.
제 1 버퍼(121)에 필요한 데이터가 존재하는 경우, 제 1 버퍼(121)는 필요한 데이터를 캐시 메모리(111)로 전달한다. 제 1 버퍼(121)에 필요한 데이터가 존재하지 않는 경우, 제 1 버퍼(121)는 제 2 버퍼(122)에 필요한 데이터를 요청한다. 제 2 버퍼(122)에 필요한 데이터가 존재하는 경우, 제 2 버퍼(122)는 필요한 데이터를 캐시 메모리(111)로 전달한다. 제 2 버퍼(122)에 필요한 데이터가 존재하지 않는 경우, 제 2 버퍼(122)는 불휘발성 메모리 디바이스(130)에 필요한 데이터를 요청한다. 불휘발성 메모리 디바이스(130)는 필요한 데이터를 캐시 메모리(111)로 전달한다. 또한, 불휘발성 메모리 디바이스(130)는 필요한 데이터를 제 1 버퍼(121)로 전달한다.
따라서, 캐시 메모리(111)가 직접 불휘발성 메모리 디바이스(130)에 액세스함으로써 발생할 수 있는 레이턴시를 줄일 수 있다. 이는 메모리 시스템(100)의 성능 향상을 의미할 수 있다. 제 1 버퍼(121) 및 제 2 버퍼(122)가 캐시 메모리(111)와 불휘발성 메모리 디바이스(130)간의 성능 차이를 보완해주기 때문이다.
도 3은 도 2의 메모리 시스템을 더욱 구체적으로 보여준다. 동일한 참조부호는 동일한 구성을 의미한다. 또한, 도 1에서 설명된 구성과 동일한 구성에 대한 설명은 중복을 피하기 위해 생략된다. 이하에서는, '캐시 미스' 상태를 전제로 메모리 시스템(100)의 동작이 설명된다.
도 3을 참조하면, 본 발명의 일 실시예에 따른 메모리 시스템(100)은 호스트(110), 컨트롤러(120) 및 불휘발성 메모리 디바이스(130)를 포함한다. 호스트(110)는 캐시 메모리(111)를 포함한다. 컨트롤러(120)는 제 1 버퍼(121), 제 2 버퍼(122) 및 히스토리 테이블(123)을 포함한다. 즉, 도 3에 도시된 메모리 시스템(100)의 컨트롤러(120)는 도 2를 참조하여 설명된 메모리 시스템(100)의 컨트롤러(120)와 비교하여 히스토리 테이블(123)을 더 포함한다. 이하에서는 이를 중심으로 설명한다.
히스토리 테이블(123)은 서브 블록 단위의 데이터들에 대한 액세스 정보를 저장한다. 액세스 정보는 캐시 메모리(111)로부터 액세스 요청이 있었던 데이터인지 여부를 나타내는 히트 정보(H) 및 데이터의 변경 여부를 나타내는 더티 정보(D)를 포함할 수 있다. 히트 정보(H) 및 더티 정보(D)는 예를 들어, 1비트 데이터일 수 있다. 히스토리 테이블(123)은 예를 들어, SRAM 또는 DRAM으로 구성될 수 있다.
도 2를 참조하여 설명한 바와 같이, 메모리 시스템(100)은 각 구성들의 동작의 반복을 통해 동작한다. 이 경우, 제 1 버퍼(121) 및 제 2 버퍼(122)의 데이터 저장 공간이 풀(full)이 될 수 있다. 제 1 버퍼(121)의 경우, 불휘발성 메모리 디바이스(130)로부터 필요한 데이터를 전달받아 저장하고, 제 2 버퍼(122)의 경우, 제 1 버퍼(121)에 저장된 데이터들 가운데 캐시 메모리(111)로부터 액세스 요청이 있었던 데이터를 전달받아 저장하기 때문이다. 따라서, 제 1 버퍼(121) 및 제 2 버퍼(122)는 저장된 데이터를 삭제하는 동작이 수행될 수 있다.
제 1 버퍼(121)는 최근최저사용빈도(Least Recently Used, LRU) 방법을 이용하여 저장된 데이터들 가운데 하나를 선택한다. 제 1 버퍼(121)는 선택된 데이터를 히스토리 테이블(123)을 참조하여 서브 블록 단위로 제 2 버퍼(122)로 전달한다. 구체적으로, 제 1 버퍼(121)는 히스토리 테이블(123)을 참조하여, 선택된 데이터를 구성하는 서브 블록 단위의 데이터들 중 히트 정보(H)가 참(ex. 1)의 값을 가지는 데이터들을 제 2 버퍼(122)로 전달한다. 동시에, 선택된 데이터를 구성하는 서브 블록 단위의 데이터들 중 히트 정보(H)가 거짓(ex. 0)의 값을 가지는 데이터들을 삭제한다. 또한, 제 1 버퍼(121)는 더티 정보(D)를 서브 블록 데이터들과 함께 제 2 버퍼(122)로 전달한다.
제 2 버퍼(122)는 선입선출(First In First Out) 방법을 이용하여 저장된 서브 블록 단위의 데이터들을 불휘발성 메모리 디바이스(130)로 전달한다. 즉, 제 2 버퍼(122)는 제 1 버퍼(121)로부터 전달받은 데이터들을 순차적으로 불휘발성 메모리 디바이스(130)로 전달할 것이다. 구체적으로, 제 2 버퍼(122)는 더티 정보(D)의 값이 참(ex. 1)인 경우(데이터가 변경되었음을 의미) 서브 블록 데이터를 불휘발성 메모리 디바이스(130)로 전달할 수 있다. 반면에, 제 2 버퍼(122)는 더티 정보(D)의 값이 거짓(ex. 0)인 경우(데이터가 변경되지 않았음을 의미) 서브 블록 데이터를 삭제할 수 있다.
상술한 바와 같이, 제 1 버퍼(121)는 히스토리 테이블(123)을 참조하여 캐시 메모리(111)로부터 액세스 요청이 있었던 데이터만을 제 2 버퍼(122)로 전달할 수 있다. 따라서, 캐시 메모리(111)의 데이터 액세스 레이턴시(latency)를 줄일 수 있다.
도 4 및 도 5는 본 발명의 일 실시예에 따른 메모리 시스템의 동작을 설명하기 위해 메모리 시스템을 더욱 구체적으로 나타낸 것이다. 동일한 참조부호는 동일한 구성을 의미한다. 또한, 도 3에서 설명된 구성과 동일한 구성에 대한 설명은 중복을 피하기 위해 생략된다. 이하에서는, '캐시 미스' 상태를 전제로 메모리 시스템(100)의 동작이 설명된다.
먼저, 도 4를 참조하면, 캐시 메모리(111)는 서브 블록 단위로 데이터를 저장한다. 서브 블록 단위는 캐쉬 라인 단위로 이해될 수 있으며, 예를 들어, 32 Byte, 64 Byte, 또는 128 Byte의 크기를 가질 수 있다.
제 1 버퍼(121)는 슈퍼 블록(Super block) 단위로 데이터를 저장한다. 슈퍼 블록은 복수의 서브 블록으로 구성될 수 있으며, 후술되듯이 슈퍼 블록은 복수의 페이지로 구성되는 것으로도 이해될 수 있다. 제 2 버퍼(122)는 서브 블록 단위로 데이터를 저장한다. 불휘발성 메모리 디바이스(130)는 페이지 단위로 데이터를 저장한다. 페이지는 복수의 서브 블록으로 구성될 수 있다. 결론적으로, 제 1 버퍼(121)는 슈퍼 블록 단위, 불휘발성 메모리 디바이스(130)는 페이지 단위, 제 2 버퍼(122) 및 캐시 메모리(111)는 서브 블록 단위로 데이터를 저장한다.
메모리 시스템(100)의 동작이 설명된다. 캐시 메모리(111)는 '캐시 미스' 발생 시에 제 1 버퍼(121)에 필요한 데이터에 대해 액세스 요청한다. 구체적으로, 캐시 메모리(111)는 필요한 데이터를 서브 블록 단위로 제 1 버퍼(121)에 액세스 요청한다.
제 1 버퍼(121)에 필요한 데이터가 존재하는 경우, 제 1 버퍼(121)는 필요한 데이터를 캐시 메모리(111)로 전달한다. 구체적으로, 제 1 버퍼(121)는 슈퍼 블록 단위의 데이터를 구성하는 서브 블록 데이터들 중에서 캐시 메모리(111)로부터 액세스 요청받은 서브 블록 데이터를 캐시 메모리(111)로 전달한다. 즉, 제 1 버퍼(121)는 불휘발성 메모리 디바이스(130)로부터 슈퍼 블록 단위로 데이터를 전달받아 저장하고, 액세스 요청에 대응하여 캐시 메모리(111)에 서브 블록 단위로 데이터를 전달한다. 제 1 버퍼(121)에 필요한 데이터가 존재하지 않는 경우, 제 1 버퍼(121)는 제 2 버퍼(122)에 필요한 데이터를 요청한다.
제 2 버퍼(122)에 필요한 데이터가 존재하는 경우, 제 2 버퍼(122)는 필요한 데이터를 캐시 메모리(111)로 전달한다. 구체적으로, 제 2 버퍼(121)는 제 1 버퍼(121)로부터의 데이터 요청에 대응하는 서브 블록 데이터를 캐시 메모리(111)로 전달한다. 제 2 버퍼(122)에 필요한 데이터가 존재하지 않는 경우, 제 2 버퍼(122)는 불휘발성 메모리 디바이스(130)에 필요한 데이터를 요청한다.
불휘발성 메모리 디바이스(130)는 필요한 데이터를 서브 블록 단위로 캐시 메모리(111)로 전달한다. 또한, 불휘발성 메모리 디바이스(130)는 필요한 데이터를 슈퍼 블록 단위로 제 1 버퍼(121)로 전달한다.
한편, 불휘발성 메모리 디바이스(130)로부터 제 1 버퍼(121)로 슈퍼 블록 단위의 데이터가 전달됨에 따라 제 1 버퍼(121)의 저장 공간이 풀(full)이 될 수 있다. 이 경우, 제 1 버퍼(121)는 캐시 메모리(111)로부터 액세스 요청이 적어도 1회 있었던 서브 블록 단위의 데이터를 제 2 버퍼(122)로 전달한다.
도 5를 참조하면, 구체적으로, 제 1 버퍼(121)는 최근최저사용빈도(LRU) 방법을 이용하여 하나의 슈퍼 블록을 선택한다(예를 들어, Index값이 3인 슈퍼 블록). 제 1 버퍼(121)는 히스토리 테이블(123)을 참조하여, 선택된 슈퍼 블록 단위의 데이터를 구성하는 서브 블록 데이터들의 액세스 정보를 확인한다. 히스토리 테이블(123)은 서브 블록 데이터들의 히트 정보(H) 및 더티 정보(D)를 저장할 수 있다. offset은 서브 블록 데이터의 열 어드레스를 나타낸다. index는 서브 블록 데이터의 행 어드레스를 나타낸다.
즉, 제 1 버퍼(121)는 히스토리 테이블(123)을 참조하여, 선택된 슈퍼 블록 단위의 데이터를 구성하는 서브 블록 데이터들에 대한 히트 정보(H)를 확인하고, 히트 정보(H)가 참(ex. 1)인 서브 블록 데이터들(예를 들어, Sub block 1, Sub block 2, Sub block 3)만을 제 2 버퍼(122)로 전달한다. 동시에, 히트 정보(H)가 거짓(ex. 0)인 서브 블록 데이터들(예를 들어, Sub block 4, Sub block 5, Sub block 6)은 제거한다. 한편, 제 1 버퍼(121)는 더티 정보(D)를 제 2 버퍼(122)로 전달되는 서브 블록 데이터들과 함께 전달할 수 있다.
제 1 버퍼(121)로부터 서브 블록 데이터가 전달됨에 따라 제 2 버퍼(122)의 저장 공간 역시 풀(full)이 될 수 있다. 제 2 버퍼(122)는 선입선출(FIFO) 방법에 따라 먼저 전달된 서브 블록 데이터를 불휘발성 메모리 디바이스(130)로 먼저 전달한다. 한편, 제 2 버퍼(122)는 더티 정보(D)의 값이 참(ex. 1)인 경우(데이터가 변경되었음을 의미) 서브 블록 데이터를 불휘발성 메모리 디바이스(130)로 전달할 수 있다. 반면에, 제 2 버퍼(122)는 더티 정보(D)의 값이 거짓(ex. 0)인 경우(데이터가 변경되지 않았음을 의미) 서브 블록 데이터를 삭제할 수 있다.
상술한 바와 같이, 제 1 버퍼(121)는 불휘발성 메모리 디바이스(130)의 데이터 저장 단위보다 큰 슈퍼 블록 단위로 데이터를 저장한다. 제 2 버퍼(122)는 캐시 메모리(111)로부터 액세스 요청이 있었던 데이터들을 선별적으로 저장한다. 캐시 메모리(111)는 '캐시 미스' 발생 시에 제 1 버퍼(121), 제 2 버퍼(122) 및 불휘발성 메모리 디바이스(130)의 순서로 액세스한다. 따라서, 캐시 메모리(111)는 제 1 버퍼(121) 또는 제 2 버퍼(122)에 액세스하여 필요한 데이터를 독출할 가능성이 크다. 즉, 본 발명의 일 실시예에 따른 메모리 시스템(100)은 캐시 메모리(111)가 직접 불휘발성 메모리 디바이스(130)에 액세스함으로써 발생할 수 있는 레이턴시를 줄일 수 있다. 이는 메모리 시스템(100)의 성능 향상을 의미할 수 있다. 제 1 버퍼(121) 및 제 2 버퍼(122)가 캐시 메모리(111)와 불휘발성 메모리 디바이스(130)간의 성능 차이를 보완해주기 때문이다.
도 6 및 도 7은 본 발명의 일 실시예에 따른 메모리 시스템의 동작 방법을 설명하기 위한 흐름도이다. 구체적으로 도 7은 불휘발성 메모리 디바이스(130)가 액세스 요청에 대응하는 서브 블록 데이터를 포함하는 슈퍼 블록 데이터를 제 1 버퍼(121)로 전달한 이후의 과정을 보여준다. 이하에서는, '캐시 미스' 상태를 전제로 메모리 시스템(100)의 동작 방법이 설명된다.
도 6을 참조하면, 본 발명의 일 실시예에 따른 메모리 시스템의 동작 방법은 캐시 메모리(111)로부터 필요한 데이터에 대한 액세스 요청이 발생하는 단계(S110), 캐시 메모리(111)가 제 1 버퍼(121)에 액세스하는 단계(S120), 제 1 버퍼(121)에 액세스 요청에 대응하는 데이터가 존재하는 경우, 액세스 요청에 대응하는 서브 블록 데이터를 캐시 메모리(111)로 전달하는 단계(S170)를 포함한다.
또한, 제 1 버퍼(121)에 액세스 요청에 대응하는 데이터가 존재하지 않는 경우에는, 캐시 메모리(111)로부터 필요한 데이터에 대한 액세스 요청이 발생하는 단계(S110), 캐시 메모리(111)가 제 1 버퍼(121)에 액세스하는 단계(S120), 제 1 버퍼(121)가 제 2 버퍼(122)에 필요한 데이터를 요청하는 단계(S140), 제 2 버퍼(122)에 필요한 데이터가 존재하는 경우, 제 2 버퍼(122)가 액세스 요청에 대응하는 서브 블록 데이터를 캐시 메모리(111)로 전달하는 단계(S170)를 포함한다.
또한, 제 2 버퍼에 필요한 데이터가 존재하지 않는 경우, 캐시 메모리(111)로부터 필요한 데이터에 대한 액세스 요청이 발생하는 단계(S110), 캐시 메모리(111)가 제 1 버퍼(121)에 액세스하는 단계(S120), 제 1 버퍼(121)가 제 2 버퍼(122)에 필요한 데이터를 요청하는 단계(S140), 제 2 버퍼(122)가 불휘발성 메모리 디바이스(130)에 필요한 데이터를 요청하는 단계(S160) 및 불휘발성 메모리 디바이스(130)가 액세스 요청에 대응하는 서브 블록 데이터를 캐시 메모리(111)로 전달하는 단계(S170)를 포함한다. 한편, 이 경우 불휘발성 메모리 디바이스(130)가 액세스 요청에 대응하는 서브 블록 데이터를 포함하는 슈퍼 블록 데이터를 제 1 버퍼(121)로 전달하는 단계를 더 포함할 수 있다.
제 1 버퍼(121)는 불휘발성 메모리 디바이스(130)의 데이터 저장 단위(ex. 페이지 단위) 보다 큰 단위로 데이터를 저장할 수 있다. 제 2 버퍼(122)는 불휘발성 메모리 디바이스(130)의 데이터 저장 단위(ex. 페이지 단위) 보다 작은 단위로 데이터를 저장할 수 있다.
도 7을 참조하면, 본 발명의 일 실시예에 따른 메모리 시스템(100)의 동작 방법은 불휘발성 메모리 디바이스(130)로부터 제 1 버퍼(121)로 슈퍼 블록 단위의 데이터가 전달되는 단계(S210), 슈퍼 블록 단위의 데이터를 구성하는 서브 블록 단위의 데이터들에 대한 액세스 정보를 저장하는 단계(S220), 제 1 버퍼(121)가 최근최저사용빈도(LRU) 방법에 따라 슈퍼 블록 단위의 데이터들 중 하나를 선택하고, 액세스 정보를 참조하여 서브 블록 단위의 데이터를 제 2 버퍼(122)로 전달하고 삭제하는 단계(S230), 제 2 버퍼(122)가 선입선출(FIFO) 방법에 따라 불휘발성 메모리 디바이스(130)로 전달될 서브 블록 단위의 데이터를 선택하는 단계(S240), 선택된 서브 블록 단위의 데이터가 변경된 경우 선택된 서브 블록 단위의 데이터를 불휘발성 메모리 디바이스(130)에 전달하는 단계(S260)를 포함한다.
한편, 선택된 서브 블록 단위의 데이터가 변경되지 않은 경우 S260단계 대신에 선택된 서브 블록 단위의 데이터를 삭제하는 단계(S270)를 포함한다.
상술한 바와 같이, 제 1 버퍼(121)는 불휘발성 메모리 디바이스(130)의 데이터 저장 단위보다 큰 슈퍼 블록 단위로 데이터를 저장한다. 제 2 버퍼(122)는 캐시 메모리(111)로부터 액세스 요청이 있었던 데이터들을 선별적으로 저장한다. 캐시 메모리(111)는 '캐시 미스' 발생 시에 제 1 버퍼(121), 제 2 버퍼(122) 및 불휘발성 메모리 디바이스(130)의 순서로 액세스한다. 따라서, 캐시 메모리(111)는 제 1 버퍼(121) 또는 제 2 버퍼(122)에 액세스하여 필요한 데이터를 독출할 가능성이 크다. 즉, 본 발명의 일 실시예에 따른 메모리 시스템(100)은 캐시 메모리(111)가 직접 불휘발성 메모리 디바이스(130)에 액세스함으로써 발생할 수 있는 레이턴시를 줄일 수 있다. 이는 메모리 시스템(100)의 성능 향상을 의미할 수 있다. 제 1 버퍼(121) 및 제 2 버퍼(122)가 캐시 메모리(111)와 불휘발성 메모리 디바이스(130)간의 성능 차이를 보완해주기 때문이다.
도 8은 본 발명의 일 실시예에 따른 메모리 시스템의 성능을 설명하기 위한 그래프이다. 구체적으로, 도 8은 본 발명의 일 실시예에 따른 메모리 시스템(100)의 제 1 버퍼(121) 및 제 2 버퍼(122)에 대한 캐시 메모리(111)의 데이터 액세스 실패율을 보여준다. Unified 20MB 및 Unified 40MB는 단일의 버퍼를 사용한 경우를 나타낸다. 1MB(SLSB)-8M(TLAB)는 각각 제 1 버퍼(121) 1MB, 제 2 버퍼(122) 8MB를 사용한 경우를 나타낸다. 8M(SLSB)-1M(TLAB)는 각각 제 1 버퍼(121) 8MB, 제 2 버퍼(122) 1MB를 사용한 경우를 나타낸다. 4MB(SLSB)-16M(TLAB)는 각각 제 1 버퍼(121) 4MB, 제 2 버퍼(122) 16MB를 사용한 경우를 나타낸다.
도 8을 참조하면, 제 1 버퍼(121)를 4MB, 제 2 버퍼(122)를 16MB로 사용한 경우, 데이터 액세스 실패율이 평균 0.49%로 가장 낮게 나타났다. 제 1 버퍼(121)를 4MB, 제 2 버퍼(122)를 16MB로 사용한 경우, 40MB 단일 버퍼를 사용한 경우와 비교할 때, 약 7.5%의 성능 향상이 있는 것으로 볼 수 있다. 결과적으로, 제 1 버퍼(121) 및 제 2 버퍼(122)의 저장 용량의 합은 40MB 단일 버퍼를 사용한 경우의 절반이지만, 데이터 액세스 실패율은 향상되었음을 알 수 있다.
또한, 제 1 버퍼(121)를 1MB, 제 2 버퍼(122)를 8MB로 사용한 경우, 데이터 액세스 실패율이 평균 1.29%로 나타났다. 제 1 버퍼(121)를 8MB, 제 2 버퍼(122)를 1MB로 사용한 경우, 데이터 액세스 실패율이 평균 1.01%로 나타났다.
도 9는 본 발명의 일 실시예에 따른 메모리 시스템을 포함하는 컴퓨팅 시스템을 보여준다.
도 9를 참조하면, 본 발명의 일 실시예에 따른 컴퓨팅 시스템(1000)은 메모리 시스템(1100), 사용자 인터페이스(1200) 및 베이스밴드 칩셋(Baseband chipset)과 같은 모뎀(1300)을 포함한다.
본 발명의 일 실시예에 따른 컴퓨팅 시스템(1000)이 모바일 장치인 경우, 컴퓨팅 시스템(1000)의 동작 전압을 공급하기 위한 배터리(미도시됨)가 추가적으로 제공될 것이다. 비록 도면에는 도시되지 않았지만, 본 발명의 일 실시예에 따른 컴퓨팅 시스템(1000)에는 응용 칩세트(Application chipset), 카메라 이미지 프로세서(Camera Image Processor: CIP), 모바일 디램, 등이 더 제공될 수 있음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다.
상술한 바와 같이, 메모리 시스템(1100)은 호스트(1110), 컨트롤러(1120) 및 불휘발성 메모리 디바이스(1130)을 포함한다. 본 발명의 일 실시예에 따른 메모리 시스템(1100)의 컨트롤러(1120)는 불휘발성 메모리 디바이스(1130)로부터 데이터를 전달받아 저장하고, 캐시 메모리(1111)로부터의 액세스 요청이 있는 경우, 대응하는 데이터를 캐시 메모리(1111)에 전달한다. 따라서, 캐시 메모리(1111)가 직접 불휘발성 메모리 디바이스(1130)에 액세스함으로써 발생할 수 있는 레이턴시를 줄일 수 있다. 이는 메모리 시스템(1100)의 성능 향상을 의미하며, 나아가 컴퓨팅 시스템(1000)의 성능 향상을 의미할 수 있다. 컨트롤러(1120)가 캐시 메모리(1111)와 불휘발성 메모리 디바이스(1130)간의 성능 차이를 보완해주기 때문이다.
이상 실시 예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
100: 메모리 시스템 1000: 컴퓨팅 시스템
110: 호스트 1100: 메모리 시스템
111: 캐시 메모리 1110: 호스트
120: 컨트롤러 1111: 캐시 메모리
121: 제 1 버퍼 1120: 컨트롤러
122: 제 2 버퍼 1130: 불휘발성 메모리 디바이스
123: 히스토리 테이블 1200: 사용자 인터페이스
130: 불휘발성 메모리 디바이스 1300: 모뎀

Claims (16)

  1. 불휘발성 메모리 디바이스; 및
    호스트의 캐시 메모리로부터의 액세스 요청에 대응하여 상기 불휘발성 메모리 디바이스에 액세스하는 컨트롤러를 포함하고,
    상기 컨트롤러는 상기 불휘발성 메모리 디바이스의 데이터 저장 단위보다 큰 단위로 데이터를 저장하는 제 1 버퍼; 및
    상기 제 1 버퍼에 저장되는 상기 데이터 중 상기 캐시 메모리로부터의 액세스 요청이 있었던 데이터를 저장하는 제 2 버퍼를 포함하는 메모리 시스템.
  2. 제 1 항에 있어서,
    상기 캐시 메모리로부터의 상기 액세스 요청이 발생하는 경우, 상기 제 1 버퍼, 상기 제 2 버퍼 및 상기 불휘발성 메모리 디바이스 순서로 상기 액세스 요청에 대응하는 데이터 처리가 수행되는 것을 특징으로 하는 메모리 시스템.
  3. 제 1 항에 있어서,
    상기 제 1 버퍼는 상기 캐시 메모리로부터의 상기 액세스 요청에 대응하는 데이터를 저장하고 있는 경우 상기 캐시 메모리로 상기 데이터를 전달하고, 상기 캐시 메모리로부터의 상기 액세스 요청에 대응하는 데이터를 저장하고 있지 않은 경우 상기 제 2 버퍼에 상기 액세스 요청에 대응하는 데이터를 요청하며,
    상기 제 2 버퍼는 상기 제 1 버퍼로부터의 요청에 대응하는 데이터를 저장하고 있는 경우 상기 캐시 메모리로 상기 데이터를 전달하고, 상기 제 1 버퍼로부터의 요청에 대응하는 데이터를 저장하고 있지 않은 경우 상기 불휘발성 메모리 디바이스에 상기 요청에 대응하는 데이터를 요청하는 것을 특징으로 하는 메모리 시스템.
  4. 제 1 항에 있어서,
    상기 불휘발성 메모리 디바이스는 페이지 단위로 데이터를 저장하고,
    상기 제 1 버퍼는 복수의 상기 페이지로 구성되는 슈퍼 블록 단위로 데이터를 저장하고,
    상기 제 2 버퍼는 상기 페이지를 구성하는 서브 블록 단위로 데이터를 저장하는 것을 특징으로 하는 메모리 시스템.
  5. 제 4 항에 있어서,
    상기 제 1 버퍼에 저장된 상기 슈퍼 블록 단위의 데이터를 구성하는 상기 서브 블록 단위의 데이터에 대한 액세스 정보를 저장하는 히스토리 테이블을 포함하는 것을 특징으로 하는 메모리 시스템.
  6. 제 5 항에 있어서,
    상기 제 1 버퍼는 LRU(Least Recently Used) 방법에 따라 상기 슈퍼 블록 단위의 데이터들 가운데 어느 하나를 선택하고,
    선택된 상기 슈퍼 블록 단위의 데이터를 상기 히스토리 테이블을 참조하여 상기 서브 블록 단위로 상기 제 2 버퍼로 전달하는 것을 특징으로 하는 메모리 시스템.
  7. 제 6 항에 있어서,
    상기 제 2 버퍼는 선입선출(First In First Out) 방법을 이용하여 상기 서브 블록 단위의 데이터를 상기 불휘발성 메모리 디바이스로 전달하는 것을 특징으로 하는 메모리 시스템.
  8. 제 1 항에 있어서,
    상기 제 1 버퍼 및 상기 제 2 버퍼는 SRAM 또는 DRAM인 것을 특징으로 하는 메모리 시스템.
  9. 제 1 항에 있어서,
    상기 불휘발성 메모리 디바이스는 PRAM, MRAM 또는 FeRAM인 것을 특징으로 하는 메모리 시스템.
  10. 캐시 메모리와 불휘발성 메모리 디바이스를 포함하는 메모리 시스템의 동작 방법에 있어서:
    상기 캐시 메모리로부터 발생된 액세스 요청에 대응하여 제 1 버퍼에 액세스하는 단계;
    상기 제 1 버퍼에 상기 액세스 요청에 대응하는 데이터가 존재하지 않는 경우 제 2 버퍼에 상기 데이터를 요청하는 단계; 및
    상기 제 2 버퍼에 상기 액세스 요청에 대응하는 데이터가 존재하지 않는 경우 상기 불휘발성 메모리 디바이스에 상기 데이터를 요청하는 단계를 포함하되,
    상기 제 1 버퍼는 상기 불휘발성 메모리 디바이스의 데이터 저장 단위보다 큰 단위로 데이터를 저장하고,
    상기 제 2 버퍼는 상기 불휘발성 메모리 디바이스의 데이터 저장 단위보다 작은 단위로 데이터를 저장하는 메모리 시스템의 동작 방법.
  11. 제 10 항에 있어서,
    상기 불휘발성 메모리 디바이스는 페이지 단위로 데이터를 저장하고,
    상기 제 1 버퍼는 복수의 상기 페이지로 구성되는 슈퍼 블록 단위로 데이터를 저장하고,
    상기 제 2 버퍼는 상기 페이지를 구성하는 서브 블록 단위로 데이터를 저장하는 것을 특징으로 하는 메모리 시스템의 동작 방법.
  12. 제 11 항에 있어서,
    상기 제 2 버퍼는 상기 제 1 버퍼에 저장되는 상기 슈퍼 블록 단위의 데이터 중 상기 캐시 메모리로부터의 상기 액세스 요청이 있었던 상기 서브 블록 데이터를 저장하는 것을 특징으로 하는 메모리 시스템의 동작 방법.
  13. 제 11 항에 있어서,
    상기 제 1 버퍼에 저장된 상기 슈퍼 블록 단위의 데이터를 구성하는 상기 서브 블록 단위의 데이터에 대한 액세스 정보를 저장하는 단계를 포함하는 메모리 시스템의 동작 방법.
  14. 제 13 항에 있어서,
    상기 제 1 버퍼에 저장된 상기 슈퍼 블록 단위의 데이터들 가운데 어느 하나를 LRU(Least Recently Used) 방법에 따라 선택하고, 선택된 상기 슈퍼 블록 단위의 데이터를 상기 액세스 정보를 참조하여 상기 서브 블록 단위로 상기 제 2 버퍼로 전달하는 단계를 포함하는 것을 특징으로 하는 메모리 시스템의 동작 방법.
  15. 제 14 항에 있어서,
    상기 제 1 버퍼에 저장된 상기 슈퍼 블록 단위의 데이터들 가운데 어느 하나를 LRU(Least Recently Used) 방법에 따라 선택하고, 선택된 상기 슈퍼 블록 단위의 데이터를 상기 액세스 정보를 참조하여 상기 서브 블록 단위로 상기 제 2 버퍼로 전달하는 단계는,
    상기 선택된 슈퍼 블록 단위의 데이터에 포함된 상기 서브 블록 단위의 데이터들 가운데 상기 캐시 메모리로부터 액세스 요청이 없었던 서브 블록 단위의 데이터를 제거하는 단계를 포함하는 메모리 시스템의 동작 방법.
  16. 제 14 항에 있어서,
    선입선출(First In First Out) 방법을 이용하여 상기 제 2 버퍼에 저장된 상기 서브 블록 단위의 데이터를 상기 불휘발성 메모리 디바이스로 전달하는 단계를 포함하는 것을 특징으로 하는 메모리 시스템의 동작 방법.
KR1020120040291A 2012-04-18 2012-04-18 비휘발성 메인 메모리 기반을 위한 이중 버퍼 구조 및 데이터 운영 방식 KR101351550B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020120040291A KR101351550B1 (ko) 2012-04-18 2012-04-18 비휘발성 메인 메모리 기반을 위한 이중 버퍼 구조 및 데이터 운영 방식

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120040291A KR101351550B1 (ko) 2012-04-18 2012-04-18 비휘발성 메인 메모리 기반을 위한 이중 버퍼 구조 및 데이터 운영 방식

Publications (2)

Publication Number Publication Date
KR20130117266A KR20130117266A (ko) 2013-10-25
KR101351550B1 true KR101351550B1 (ko) 2014-01-22

Family

ID=49636082

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120040291A KR101351550B1 (ko) 2012-04-18 2012-04-18 비휘발성 메인 메모리 기반을 위한 이중 버퍼 구조 및 데이터 운영 방식

Country Status (1)

Country Link
KR (1) KR101351550B1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9886219B2 (en) 2014-11-26 2018-02-06 Samsung Electronics Co., Ltd. Storage device including nonvolatile memory device and method of programming the same
US11086561B2 (en) 2018-01-22 2021-08-10 Samsung Electronics Co., Ltd. Integrated circuit memory devices with enhanced buffer memory utilization during read and write operations and methods of operating same
US11119938B2 (en) 2019-03-18 2021-09-14 SK Hynix Inc. Apparatus and method to synchronize memory map between a storage device and host
US11210015B2 (en) 2018-11-13 2021-12-28 SK Hynix Inc. Data storage device, operation method thereof, and storage system having the same

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090117935A (ko) * 2008-03-01 2009-11-16 가부시끼가이샤 도시바 메모리 시스템

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090117935A (ko) * 2008-03-01 2009-11-16 가부시끼가이샤 도시바 메모리 시스템

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9886219B2 (en) 2014-11-26 2018-02-06 Samsung Electronics Co., Ltd. Storage device including nonvolatile memory device and method of programming the same
US11086561B2 (en) 2018-01-22 2021-08-10 Samsung Electronics Co., Ltd. Integrated circuit memory devices with enhanced buffer memory utilization during read and write operations and methods of operating same
US11210015B2 (en) 2018-11-13 2021-12-28 SK Hynix Inc. Data storage device, operation method thereof, and storage system having the same
US11119938B2 (en) 2019-03-18 2021-09-14 SK Hynix Inc. Apparatus and method to synchronize memory map between a storage device and host

Also Published As

Publication number Publication date
KR20130117266A (ko) 2013-10-25

Similar Documents

Publication Publication Date Title
US10860477B2 (en) Apparatus and method for low power low latency high capacity storage class memory
US9842059B2 (en) Wear leveling in storage devices
CN102760101B (zh) 一种基于ssd 的缓存管理方法及系统
US8966181B2 (en) Memory hierarchy with non-volatile filter and victim caches
JP2022031959A (ja) 不揮発性のメモリシステム又はサブシステム
US9489148B2 (en) Selecting between non-volatile memory units having different minimum addressable data unit sizes
US10558395B2 (en) Memory system including a nonvolatile memory and a volatile memory, and processing method using the memory system
Song et al. Improving phase change memory performance with data content aware access
US8954672B2 (en) System and method for cache organization in row-based memories
US11580029B2 (en) Memory system, computing system, and methods thereof for cache invalidation with dummy address space
EP3049938B1 (en) Data management on memory modules
CN109164976B (zh) 利用写缓存优化存储设备性能
US10761989B2 (en) Method of storage management, storage system and computer program product
KR101351550B1 (ko) 비휘발성 메인 메모리 기반을 위한 이중 버퍼 구조 및 데이터 운영 방식
KR20210088706A (ko) 온도에 기초한 상이한 전송 속도들에서의 메모리 내의 데이터의 재배치
CN105005510A (zh) 应用于固态硬盘阻变存储器缓存的纠错保护架构及方法
US11061598B2 (en) Optimized handling of multiple copies in storage management
US11188467B2 (en) Multi-level system memory with near memory capable of storing compressed cache lines
KR101546707B1 (ko) 하이브리드 메인 메모리 기반의 메모리 접근 관리방법
Jang et al. Data classification management with its interfacing structure for hybrid SLC/MLC PRAM main memory
Park et al. Efficient management of PCM-based swap systems with a small page size
KR101831226B1 (ko) 차세대 메모리로 구성된 캐시의 제어 장치 및 그 방법
KR102014723B1 (ko) 하이브리드 메모리 시스템의 버퍼 효율성을 위한 페이지 병합 방법
US11604592B2 (en) Data management for efficient low power mode handling in a storage device

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20170102

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180103

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190107

Year of fee payment: 6