KR20160131900A - 비휘발성 메모리 관리 방법 및 이를 수행하는 장치 - Google Patents

비휘발성 메모리 관리 방법 및 이를 수행하는 장치 Download PDF

Info

Publication number
KR20160131900A
KR20160131900A KR1020160051895A KR20160051895A KR20160131900A KR 20160131900 A KR20160131900 A KR 20160131900A KR 1020160051895 A KR1020160051895 A KR 1020160051895A KR 20160051895 A KR20160051895 A KR 20160051895A KR 20160131900 A KR20160131900 A KR 20160131900A
Authority
KR
South Korea
Prior art keywords
data
storage period
volatile memory
data storage
nonvolatile memory
Prior art date
Application number
KR1020160051895A
Other languages
English (en)
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 단국대학교 산학협력단
Publication of KR20160131900A publication Critical patent/KR20160131900A/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/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
    • 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/0891Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

비휘발성 메모리 관리 방법 및 이를 수행하는 장치에 관한 기술이 개시된다. 본 발명의 일 실시예에 따른 비휘발성 메모리 관리 방법은 비휘발성 메모리에 대한 입출력 연산을 모니터링하여 비휘발성 메모리의 접근에 대한 패턴을 추출하는 단계 및 추출된 패턴에 기반하여 비휘발성 메모리에 미리 설정된 데이터 보존 기간을 제어하는 단계를 포함한다. 따라서, 비휘발성 메모리에 설정된 데이터 보존 기간을 제어하여 빠른 쓰기 성능을 제공함으로써 비휘발성 메모리를 캐시 메모리로써 활용할 수 있으며, 빠른 쓰기 성능으로 인해 비휘발성 메모리의 공간을 효율적으로 활용할 수 있으므로, 데이터 평균 지연 시간을 감소시키고 시스템 전체적인 성능을 향상시킬 수 있다

Description

비휘발성 메모리 관리 방법 및 이를 수행하는 장치{METHOD FOR MANAGING NON-VOLATILE MEMORY AND APPARATUS FOR PERFORMING THE METHOD}
본 발명은 메모리 관리 기술에 관한 것으로, 더욱 상세하게는, 비휘발성 메모리의 데이터 보존 기간을 조절하여 빠른 쓰기 성능을 제공하는 비휘발성 메모리 관리 방법 및 이를 수행하는 장치에 관한 것이다.
최근 STT-MRAM(Spin-Transfer Torque Magnetic RAM), ReRAM(Resistive RAM), PCM(Phase Change Memory)과 같은 비휘발성 메모리(Non-Volatile Memory)가 급속도로 발전됨에 따라 비휘발성 메모리를 활용하기 위한 연구가 활발히 진행되고 있다.
일반적으로, 비휘발성 메모리는 전원이 공급되지 않아도 입력된 데이터가 지워지지 않고 자유롭게 읽기와 쓰기가 가능한 메모리를 의미하며, 데이터에 대한 접근 및 덮어쓰기(overwrite)를 바이트(byte) 단위로 수행하기 때문에 접근 지연 시간이 빠르고 저전력으로 동작한다는 특성을 가진다.
특히, 비휘발성 메모리는 다음과 같은 두 가지 특성을 가진다.
첫째, 실제로 비휘발성 메모리는 데이터를 데이터 보존 기간만큼만 메모리 상에 유지한 후 데이터 보존 기간이 지난 데이터는 삭제하는 휘발성의 특성을 가진다. 예를 들어, NAND 플래시 메모리의 경우, 최소 1년의 데이터 보존 기간(JEDEC 표준 JESD47G. 01)을 보장하고, STT-MRAM의 경우 10년의 데이터 보존 기간을 보장한다. 그리하여, 데이터 보존 기간이 지난 데이터는 다른 데이터를 쓸 수 있도록 삭제된다.
다만, 비휘발성 메모리에서 데이터 보존 기간은 다른 메모리들에 비해 굉장히 길기 때문에 일반적인 경우 사용자는 비휘발성 메모리의 휘발성을 인지하지 못한다.
둘째, 비휘발성 메모리는 데이터의 보존력을 향상시키기 위해 데이터 보존 기간을 증가시키므로 쓰기 성능이 저하되는 특성을 가진다.
비휘발성 메모리가 상술한 특성을 가진다는 점에서, 비휘발성 메모리를 관리하여 CPU 또는 이기종 저장 장치의 캐시로 활용하기 위한 기술의 연구가 활발하게 진행되고 있다.
종래에는 비휘발성 메모리에 저장된 많은 데이터들의 데이터 보존 기간을 불필요하게 보장하고 있어 쓰기 성능이 저하되는 문제가 있다.
또한, 쓰기 성능의 저하로 인해 비휘발성 메모리 공간을 효율적으로 사용할 수 없어 데이터에 대한 평균 지연 시간이 증가하게 되고 이에 따라 시스템 전체적인 성능이 저하된다는 문제가 있다.
상기와 같은 문제점을 해결하기 위한 본 발명의 목적은, 비휘발성 메모리에 설정된 데이터 보존 기간을 제어하여 빠른 쓰기 성능을 제공할 수 있는 비휘발성 메모리 관리 방법을 제공하는 데 있다.
또한, 본 발명의 다른 목적은, 빠른 쓰기 성능으로 인해 비휘발성 메모리의 공간을 효율적으로 활용할 수 있으므로, 데이터 평균 지연 시간을 감소시키고 시스템 전체적인 성능을 향상시킬 수 있는 비휘발성 메모리 관리 장치를 제공하는데 있다.
상기 목적을 달성하기 위한 본 발명의 일 측면에 따른 비휘발성 메모리 관리 방법은, 비휘발성 메모리를 관리하는 장치에 의해 수행되며 비휘발성 메모리에 대한 입출력(Input/Output) 연산을 모니터링하여 비휘발성 메모리의 접근에 대한 패턴을 추출하는 단계 및 추출된 패턴에 기반하여 비휘발성 메모리에 미리 설정된 데이터 보존 기간을 제어하는 단계를 포함한다.
여기에서, 패턴을 추출하는 단계는, 비휘발성 메모리를 구성하는 다수의 데이터 블록이 입출력 연산에 의해 접근되는 간격을 모니터링할 수 있다.
여기에서, 패턴을 추출하는 단계는, 마르코브 체인(Markov Chain)을 기반으로 비휘발성 메모리를 구성하는 다수의 데이터 블록이 입출력 연산에 의해 접근되는 간격을 분석하여, 다수의 데이터 블록이 비휘발성 메모리에 저장을 유지해야 하는 데이터 저장 기간을 예측할 수 있다.
여기에서, 비휘발성 메모리의 접근에 대한 패턴은, 예측된 데이터 저장 기간을 포함하여 데이터 블록 단위로 추출될 수 있다.
여기에서, 미리 설정된 데이터 보존 기간을 제어하는 단계는, 데이터 저장 기간이 미리 설정된 데이터 보존 기간보다 큰 경우 미리 설정된 데이터 보존 기간을 유지하고, 데이터 저장 기간이 미리 설정된 데이터 보존 기간보다 작은 경우, 미리 설정된 데이터 보존 기간을 데이터 저장 기간으로 조절할 수 있다.
여기에서, 미리 설정된 데이터 보존 기간을 제어하는 단계 이후에, 비휘발성 메모리가 데이터 보존 기간이 지난 데이터 블록을 망각시키고 빈 비휘발성 메모리의 공간에 다른 데이터 블록의 쓰기를 수행할 수 있도록 비휘발성 메모리에 제어된 데이터 보존 기간을 전송하는 단계를 더 포함할 수 있다.
또한, 상기 목적을 달성하기 위한 본 발명의 다른 측면에 따른 비휘발성 메모리 관리 장치는, 사용자 단말에서 구현되며 비휘발성 메모리에 대한 입출력(Input/Output) 연산을 모니터링하여 비휘발성 메모리의 접근에 대한 패턴을 추출하는 패턴 추출부 및 추출된 패턴에 기반하여 비휘발성 메모리에 미리 설정된 데이터 보존 기간을 제어하는 보존 기간 제어부를 포함한다.
여기에서, 비휘발성 메모리는, STT-MRAM(Spin-Transfer Torque Magnetic RAM), ReRAM(Resistive RAM) 및 PCM(Phase Change Memory) 중 적어도 하나를 기반으로 하는 메모리를 의미할 수 있다.
여기에서, 비휘발성 메모리 관리 장치는, 비휘발성 메모리와 연동되며, 비휘발성 메모리가 데이터 보존 기간이 지난 데이터 블록을 망각시키고 빈 비휘발성 메모리의 공간에 다른 데이터 블록의 쓰기를 수행할 수 있도록 제어된 데이터 보존 기간을 비휘발성 메모리에 전송하는 보존 기간 전송부를 더 포함할 수 있다.
상술한 바와 같은 본 발명의 실시예에 따른 비휘발성 메모리 관리 방법 및 이를 수행하는 장치에 따르면, 비휘발성 메모리에 설정된 데이터 보존 기간을 제어하여 빠른 쓰기 성능을 제공할 수 있다.
또한, 비휘발성 메모리에 설정된 데이터 보존 기간을 제어하여 빠른 쓰기 성능을 제공할 수 있으므로 비휘발성 메모리를 캐시 메모리로써 활용할 수 있다.
또한, 빠른 쓰기 성능으로 인해 비휘발성 메모리의 공간을 효율적으로 활용할 수 있으므로, 데이터 평균 지연 시간을 감소시키고 시스템 전체적인 성능을 향상시킬 수 있다.
도 1은 본 발명의 실시예에 따른 비휘발성 메모리 관리 방법을 설명하는 흐름도이다.
도 2는 본 발명의 실시예에 따른 비휘발성 메모리의 접근에 대한 패턴을 추출하는 것을 설명하는 예시도이다.
도 3은 본 발명의 실시예에 따른 PCM(Phase Change Memory)를 예로 들어 데이터 보존 기간의 제어를 설명하는 예시도이다.
도 4는 본 발명의 실시예에 따른 캐시로 활용되는 비휘발성 메모리에 대한 상태 다이어그램을 설명하는 예시도이다.
도 5는 본 발명의 실시예에 따른 비휘발성 메모리 관리 장치를 나타내는 블록도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 본 발명의 실시예에 따른 비휘발성 메모리 관리 방법을 설명하는 흐름도이고, 도 2는 본 발명의 실시예에 따른 비휘발성 메모리의 접근에 대한 패턴을 추출하는 것을 설명하는 예시도이다.
또한, 도 3은 본 발명의 실시예에 따른 PCM(Phase Change Memory)를 예로 들어 데이터 보존 기간의 제어를 설명하는 예시도이다.
도 1을 참조하면, 비휘발성 메모리 관리 방법은 비휘발성 메모리를 관리하는 장치에 의해 수행될 수 있다.
비휘발성 메모리를 관리하는 장치(이하 '비휘발성 메모리 관리 장치')는 스마트폰, 태블릿 PC, PDA(Personal Digital Assistant), 컴퓨터, 노트북과 같은 사용자 단말에 의해 구현될 수 있으나, 이에 한정되지 않고 중앙 처리 장치(CPU, Central Processing Unit), 운영체제(OS, Operating System), 입출력 장치(Input/Output Device) 및 저장 장치가 탑재된 다양한 종류의 장치에서 구현될 수 있다.
특히, 사용자 단말에 탑재된 저장 장치는 RAM(Random Access Memory)와 ROM(Read Only Memory)를 포함하는 주기억 장치(Main Memory) 및 주기억 장치의 저장 용량의 한계를 보조하는 보조 기억 장치(Secondary Memory)로 구분된다.
여기에서, RAM은 사용자 단말에 전원의 인가가 중단되면 저장된 데이터가 모두 지워지는 휘발성을 가지고, ROM은 사용자 단말에 전원이 인가되지 않아도 저장된 데이터를 유지하는 비휘발성을 가진다.
최근 STT-MRAM(Spin-Transfer Torque Magnetic RAM), ReRAM(Resistive RAM), PCM(Phase Change Memory)과 같은 비휘발성 메모리(Non-Volatile Memory)가 급속도로 발전됨에 따라 데이터의 입출력이 자유로운 RAM의 장점과 전원이 공급되지 않아도 입력된 데이터가 지워지지 않는 ROM의 장점을 모두 가진 비휘발성 메모리를 주기억 장치 또는 캐시 메모리(cache memory)로 활용하기 위한 연구가 활발히 진행되고 있다.
상술한 비휘발성 메모리는 데이터를 데이터 보존 기간만큼만 메모리 상에 유지한 후 데이터 보존 기간이 지난 데이터는 삭제하는 휘발성의 특성을 가진다. 일반적으로, 비휘발성 메모리를 장기간의 영구적 저장 공간 즉, 2차 저장 장치로 사용함에 따라 데이터 보존 기간이 비교적 길게 설정된다.
그리하여, 종래에는 비휘발성 메모리에 저장된 많은 데이터들의 데이터 보존 기간을 불필요하게 보장함에 따라 쓰기 성능이 저하되는 문제가 있다. 특히, 쓰기 성능의 저하로 인해 비휘발성 메모리 공간을 효율적으로 사용할 수 없어 데이터에 대한 평균 지연 시간이 증가하게 되고 시스템 전체적인 성능이 저하된다.
즉, 종래와 같은 방식으로 비휘발성 메모리를 관리하면, 비휘발성 메모리를 주기억 장치 또는 캐시 메모리로 활용하는 것에 한계가 있다.
따라서, 본 발명에서는 비휘발성 메모리를 주기억 장치 또는 캐시 메모리 등에 활용할 수 있도록 비휘발성 메모리의 데이터 보존 기간을 조절하여 빠른 쓰기 성능을 제공하는 비휘발성 메모리 관리 방법을 제안한다.
본 발명의 실시예에 따른 비휘발성 메모리 관리 방법은 비휘발성 메모리의 접근에 대한 패턴을 추출하는 단계(S100) 및 추출된 패턴에 기반하여 비휘발성 메모리에 미리 설정된 데이터 보존 기간을 제어하는 단계(S200)를 포함하고, 제어된 데이터 보존 기간을 비휘발성 메모리에 전송하는 단계(S300)를 더 포함할 수 있다.
비휘발성 메모리에 대한 입출력(Input/Output) 연산을 모니터링하여 비휘발성 메모리의 접근에 대한 패턴을 추출할 수 있다(S100).
여기에서, 비휘발성 메모리의 접근에 대한 패턴은 데이터 블록 단위로 추출될 수 있다. 이는 비휘발성 메모리가 다수의 데이터를 문자(charactor), 단어(word), 레코드(record)의 집합인 데이터 블록 단위로 저장하여, 입출력 장치와 비휘발성 메모리 간의 접근이 데이터 블록 단위로 수행되기 때문이다.
비휘발성 메모리의 접근에 대한 패턴을 추출하기 위해서는 먼저, 비휘발성 메모리를 구성하는 다수의 데이터 블록이 입출력 연산에 의해 접근되는 간격을 모니터링할 수 있다.
이 때, 데이터 블록에 포함된 데이터의 속성에 따라 데이터 블록이 입출력 연산에 의해 접근되는 간격이 상이하다.
예를 들어, A, B, C, D, E, F의 데이터 블록으로 구성된 비휘발성 메모리에 대한 입출력 연산을 모니터링하면, 도 2에 도시된 바와 같이 데이터 블록마다 입출력 연산에 따른 접근 간격의 비율이 서로 상이한 것을 알 수 있다.
보다 구체적으로, 데이터 블록 A 내지 F 각각에 대한 막대 그래프를 살펴보면, 데이터 블록 A의 경우 데이터 블록 A에 포함된 데이터의 약 90%가 105초 이내에 접근되는 것을 알 수 있다. 또한, 데이터 블록 B의 경우 데이터 블록 B에 포함된 데이터의 약 60% 이상이 102초 이내에 접근되는 것을 알 수 있다.
이와 같이, 비휘발성 메모리를 구성하는 데이터 블록마다 비휘발성 메모리에 저장이 유지되어야 할 기간이 서로 상이하게 나타나지만, 종래에는 JEDEC(Joint Electron Device Engineering Council)와 같은 국제 표준 기구에서 비휘발성 메모리에 일관적으로 설정한 데이터 보존 기간을 데이터 블록들에게 동일하게 보장함으로써 비휘발성 메모리에 대한 쓰기 성능 및 공간 활용도가 떨어진다는 문제가 있었다.
따라서, 비휘발성 메모리를 구성하는 다수의 데이터 블록마다 상이한 데이터 보존 기간을 보장하여 비휘발성 메모리의 쓰기 성능과 공간 활용도를 향상시키기 위해서는, 비휘발성 메모리에 저장된 다수의 데이터 블록 각각에 대한 데이터 저장 기간을 예측할 수 있다.
여기에서, 다수의 데이터 블록 각각에 대한 데이터 저장 기간 예측에는 마르코브 체인(Markov Chain)이 이용될 수 있으나, 이에 한정되지 않고 다양한 예측 모델이 활용될 수 있다.
예를 들어, 도 2에 도시된 데이터 블록 A의 경우 105초의 데이터 저장 기간이 예측되고, 데이터 블록 B의 경우 102초의 데이터 저장 기간이 예측될 수 있다.
데이터 블록 각각에 대한 데이터 저장 기간은 비휘발성 메모리의 접근에 대한 패턴에 포함되어, 비휘발성 메모리의 데이터 보존 기간 제어에 활용될 수 있다.
비휘발성 메모리의 접근에 대한 패턴이 추출되면, 추출된 패턴에 기반하여 비휘발성 메모리에 미리 설정된 데이터 보존 기간을 제어할 수 있다(S200).
위에서 언급한 바와 같이 비휘발성 메모리는 JEDEC(Joint Electron Device Engineering Council)와 같은 국제 표준 기구에서 일관적으로 데이터 보존 기간이 설정됨에 따라 데이터 블록 또는 데이터 블록에 포함된 데이터의 속성이 데이터 보존 기간에 반영되지 못한다는 문제가 있었다.
따라서, 데이터 블록 별로 예측된 데이터 저장 기간을 이용하여 미리 설정된 데이터 보존 기간을 제어할 수 있다.
보다 구체적으로, 추출된 패턴에 포함된 데이터 블록의 데이터 저장 기간과 미리 설정된 데이터 보존 기간을 비교하여, 데이터 저장 기간이 미리 설정된 데이터 보존 기간보다 큰 경우 미리 설정된 데이터 보존 기간을 유지할 수 있다.
반면, 데이터 저장 기간이 미리 설정된 데이터 보존 기간보다 작은 경우, 미리 설정된 데이터 보존 기간을 데이터 저장 기간으로 조절할 수 있다.
데이터 보존 기간이 제어되면, 제어된 데이터 보존 기간을 비휘발성 메모리에 적용할 수 있도록 전송할 수 있다(S300).
이 때, 제어된 데이터 보존 기간을 수신한 비휘발성 메모리는 데이터 보존 기간이 지난 데이터 블록을 망각시키고 빈 비휘발성 메모리의 공간에 다른 데이터 블록의 쓰기를 수행할 수 있다.
이와 같이 비휘발성 메모리의 데이터 보존 기간을 줄여 빠른 쓰기 성능을 얻는 것을 완화쓰기(Relaxed write)라 칭한다. 완화쓰기를 제공하지 않는 경우 비휘발성 메모리에 데이터가 보존되는 기간이 길기 때문에 비휘발성 메모리에 보존되는 데이터의 보존력과 그 신뢰성은 높으나 쓰기 성능이 저하된다.
따라서, 본 발명에서는 상술한 방법을 통해 완화쓰기를 제공함으로써 비휘발성 메모리의 쓰기 성능을 향상시킬 수 있다. 완화쓰기를 제공하면 비휘발성 메모리의 데이터 보존 시간이 줄기 때문에 데이터가 비휘발성 메모리에 보존되는 보존력과 그 신뢰성은 다소 하락할 수 있으나, 완화쓰기를 제공하지 않는 경우와 대비하여 데이터의 보존력과 신뢰성의 큰 하락 없이 일정 수준 이상의 데이터 보존력과 신뢰성을 보장하면서 빠른 쓰기 성능을 제공할 수 있을 것으로 기대된다.
다양한 비휘발성 메모리 중에서 PCM(Phase Change Memory)의 경우를 예로 들어 데이터 보존 기간을 제어하여 완화쓰기를 제공하는 것을 설명하도록 한다.
PCM(Phase Change Memory)은 상 변화를 이용하여 데이터를 저장하는 비휘발성 메모리로, 내부에서 가해지는 열에 따라 셀의 상태의 변화를 발생시킴으로써 비트 단위의 데이터를 저장할 수 있다.
PCM은 일반적으로 SET 동작과 RESET 동작을 기반으로 데이터를 저장한다. 여기에서, SET 동작은 PCM의 셀에 전압을 인가하여 가열시키고 이에 따른 결정화 상태를 만듬으로써 셀의 데이터를 비트 1로 표현한다. 반면, RESET 동작은 높은 전압을 인가하여 셀의 상태를 비정질 상태로 돌려 셀의 데이터를 0으로 변환한다.
상술한 내용을 기반으로 PCM이 State '11', State '10', State '01', State '00'와 같이 3개의 값을 나타내는 상태로 이루어진 경우, 도 3에 도시된 바와 같이 각 상태에는 타겟 밴드(Target band)가 존재한다. 타겟 밴드는 해당 셀이 유효한 비트인지를 나타내는 저항들의 범위로써, 타겟 밴드 내에서 각 상태에 해당되는 셀의 데이터를 읽게 된다.
PCM은 시간이 지남에 따라 셀들의 저항 값이 이동하는 저항 이동 현상이 발생한다. 예를 들어, State '01'의 타겟 밴드에 저항 이동이 발생하여 State '01'이 아닌 State '00'의 셀에서 데이터를 읽게됨에 따라 타겟 밴드에서 읽은 셀의 데이터가 유효하지 않게 된다.
이를 방지하기 위해 PCM은 타겟 밴드와 다른 상태에 대한 경계선 사이에 마진(Margin)이 존재한다. 이 때, 마진만큼의 기간은 데이터 보존 기간을 의미할 수 있으며, JEDEC의 권고에 따라 PCM은 107초의 데이터 보존 기간을 유지한다.
다만, PCM에 저장된 데이터의 접근 패턴과 관계 없이 모든 데이터에서 107초의 데이터 보존 기간이 불필요하게 보장되어 쓰기 성능이 저하된다는 문제가 있다. 따라서, 완화쓰기를 통해 PCM의 쓰기 성능을 향상시킬 수 있다.
PCM에 대한 완화쓰기는 문턱전압의 증가량을 높여 타겟 밴드의 개수를 늘리고 마진을 좁힘으로써 이루어질 수 있다. 마진을 좁히므로 데이터 보존 기간이 줄고 문턱전압의 증가로 인해 전압 인가 횟수가 줄어 쓰기 성능이 향상될 수 있다. PCM의 완화쓰기를 통해 데이터 보존 기간을 107초에서 106, 105, 104, 103, 102초로 줄이게되면, 쓰기 성능이 각각 1.2배, 1.5배, 1.7배, 1.9배, 2.1배까지 향상될 수 있다.
본 발명의 비휘발성 메모리 관리 방법에 따르면 일정 수준 이상의 데이터 보존력을 지원하면서 빠른 쓰기 성능을 제공할 수 있으므로, 비휘발성 메모리를 주기억장치 또는 캐시 메모리로 활용할 수 있을 것이다.
이하에서, 본 발명의 실시예에 따라 비휘발성 메모리를 캐시 메모리로 활용하는 것을 보다 구체적으로 설명하도록 한다.
도 4는 본 발명의 실시예에 따른 캐시로 활용되는 비휘발성 메모리에 대한 상태 다이어그램을 설명하는 예시도이다.
도 4를 참조하면, 비휘발성 메모리 관리 방법을 적용하여 비휘발성 메모리를 캐시 메모리로 활용함에 있어 비휘발성 메모리를 구성하는 데이터 블록을 관리하기 위한 상태 다이어그램을 설명할 수 있다.
비휘발성 메모리를 캐시 메모리로 활용함에 있어, 가용 상태(Free state), 임시 상태(Tentative state), 그리고 모니터링 상태(Monitoring state)로 비휘발성 메모리를 구성하는 데이터 블록을 관리할 수 있다.
보다 구체적으로, 비휘발성 메모리에 대한 쓰기 요청이 발생했을 때 데이터 블록을 할당할 수 있는 가용 상태의 비휘발성 메모리 공간에 데이터 블록을 쓰면, 데이터 블록을 쓰여진 비휘발성 메모리 공간을 가용 상태에서 임시 상태로 변경한다. 이 때, 해당 데이터 블록에 대한 데이터 저장 기간에 맞도록 데이터 보존 기간을 제어하여 완화쓰기(Relaxed write)를 수행할 수 있다.
만약, 107초로 미리 설정된 데이터 보존 기간을 완화쓰기를 통해 105초로 줄였다고 가정할 수 있다. 임시 상태에 쓰여진 데이터 블록에 105초가 지나도 접근이 이루어지지 않으면 해당 데이터 블록을 비휘발성 메모리 공간에서 망각(Forget)시키고 해당 데이터 블록에 할당되었던 비휘발성 메모리의 공간을 가용 상태로 변경한다.
다만, 임시 상태에 머물러 있는 데이터 블록에 대한 접근이 105초 내에 이루어진 경우, 해당 데이터 블록을 쓰여진 비휘발성 메모리 공간을 임시 상태에서 모니터링 상태로 변경한다. 그 이후, 모니터링 상태에 있는 데이터 블록이 입출력 연산에 의해 접근되는 간격을 모니터링하여 데이터 블록에 대한 데이터 저장 기간을 예측함으로써 데이터 보존 기간을 재차 제어할 수 있다.
모니터링 상태에서 제어된 데이터 보존 기간이 지났음에도 데이터 블록에 대한 접근이 없을 경우, 데이터 블록을 비휘발성 메모리 공간에서 망각(Forget)시키고 해당 데이터 블록에 할당되었던 비휘발성 메모리의 공간을 다른 데이터 블록이 사용할 수 있도록 가용 상태로 변경한다.
상술한 바와 같이 비휘발성 메모리 관리 방법을 이용하면, 비휘발성 메모리를 캐시 메모리의 공간으로써 효율적으로 활용할 수 있으므로, 데이터 평균 지연 시간을 감소시키고 시스템 전체적인 성능을 향상시킬 수 있다.
도 5는 본 발명의 실시예에 따른 비휘발성 메모리 관리 장치를 나타내는 블록도이다.
도 5를 참조하면, 비휘발성 메모리 관리 장치(100)는 스마트폰, 태블릿 PC, PDA(Personal Digital Assistant), 컴퓨터, 노트북과 같은 사용자 단말에 의해 구현될 수 있으나, 이에 한정되지 않고 중앙 처리 장치(CPU, Central Processing Unit), 운영체제(OS, Operating System), 입출력 장치(Input/Output Device) 및 저장 장치가 탑재된 다양한 종류의 장치에서 구현될 수 있다.
비휘발성 메모리 관리 장치(100)는 패턴 추출부(110) 및 보존 기간 제어부(120)를 포함하고, 보존 기간 전송부(130)를 더 포함할 수 있다.
패턴 추출부(110)는 비휘발성 메모리에 대한 입출력(Input/Output) 연산을 모니터링하여 비휘발성 메모리의 접근에 대한 패턴을 추출할 수 있다. 여기에서, 비휘발성 메모리의 접근에 대한 패턴은 데이터 블록 단위로 추출될 수 있다. 이는 비휘발성 메모리가 다수의 데이터를 문자(charactor), 단어(word), 레코드(record)의 집합인 데이터 블록 단위로 저장하여, 입출력 장치와 비휘발성 메모리 간의 접근이 데이터 블록 단위로 수행되기 때문이다.
비휘발성 메모리의 접근에 대한 패턴을 추출하기 위해서는 먼저, 비휘발성 메모리를 구성하는 다수의 데이터 블록이 입출력 연산에 의해 접근되는 간격을 모니터링할 수 있다.
이 때, 데이터 블록에 포함된 데이터의 속성에 따라 데이터 블록이 입출력 연산에 의해 접근되는 간격이 상이하다. 따라서, 비휘발성 메모리를 구성하는 다수의 데이터 블록마다 상이한 데이터 보존 기간을 보장하여 비휘발성 메모리의 쓰기 성능과 공간 활용도를 향상시키기 위해서는, 다수의 데이터 블록 각각에 대한 데이터 저장 기간을 예측한다.
여기에서, 다수의 데이터 블록 각각에 대한 데이터 저장 기간 예측에는 마르코브 체인(Markov Chain)이 이용될 수 있으나, 이에 한정되지 않고 다양한 예측 모델이 활용될 수 있다.
이와 같이, 예측된 데이터 블록 각각에 대한 데이터 저장 기간은 비휘발성 메모리의 접근에 대한 패턴에 포함되어, 비휘발성 메모리의 데이터 보존 기간 제어에 활용될 수 있다.
보존 기간 제어부(120)는 비휘발성 메모리의 접근에 대한 패턴이 추출됨에 따라 추출된 패턴에 기반하여 비휘발성 메모리에 미리 설정된 데이터 보존 기간을 제어할 수 있다.
보다 구체적으로, 보존 기간 제어부(120)는 데이터 블록에 따라 데이터 보존 기간이 상이하게 설정되도록 미리 설정된 데이터 보존 기간을 제어할 수 있다. 만약, 추출된 패턴에 포함된 데이터 블록의 데이터 저장 기간과 미리 설정된 데이터 보존 기간을 비교하여, 데이터 저장 기간이 미리 설정된 데이터 보존 기간보다 큰 경우 미리 설정된 데이터 보존 기간을 유지할 수 있고, 데이터 저장 기간이 미리 설정된 데이터 보존 기간보다 작은 경우, 미리 설정된 데이터 보존 기간을 데이터 저장 기간으로 조절할 수 있다.
보존 기간 전송부(130)는 제어된 데이터 보존 기간을 비휘발성 메모리(200)에 적용할 수 있도록 전송할 수 있다.
보다 구체적으로, 보존 기간 전송부(130)는 제어된 데이터 보존 기간을 비휘발성 메모리(200)의 내부에 위치하는 프로세서(210)에 전송할 수 있다. 제어된 데이터 보존 기간을 수신한 프로세서(210)는 이를 저장 공간(220)에 반영한다.
즉, 데이터 보존 기간이 지난 데이터 블록을 망각시키고 빈 비휘발성 메모리의 공간에 다른 데이터 블록의 쓰기를 수행할 수 있다.
여기에서는, 비휘발성 메모리 관리 장치(100)와 비휘발성 메모리(200)가 독립적으로 구현되는 것을 설명하였으나, 이에 한정되지 않고 저장 공간(220)에 기록된 데이터 블록에 대한 데이터 보존 기간을 조절하여 빠른 쓰기 성능을 제공할 수 있도록 비휘발성 메모리(200)의 내부에 비휘발성 메모리 관리 장치(100)가 위치할 수도 있다.
상술한 본 발명의 실시예에 따른 비휘발성 메모리 관리 장치(100)의 구성을 설명의 편의상 패턴 추출부(110), 보존 기간 제어부(120) 및 보존 기간 전송부(130)로 나열하여 설명하였으나, 각 구성부 중 적어도 두 개가 합쳐져 하나의 구성부로 이루어지거나, 하나의 구성부가 복수개의 구성부로 나뉘어져 기능을 수행할 수 있고 이러한 각 구성부의 통합 및 분리된 실시예의 경우도 본 발명의 본질에서 벗어나지 않는 한 본 발명의 권리범위에 포함된다.
또한, 본 발명의 실시예에 따른 비휘발성 메모리 관리 장치(100)의 동작은 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 프로그램 또는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의해 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산방식으로 컴퓨터로 읽을 수 있는 프로그램 또는 코드가 저장되고 실행될 수 있다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
100: 비휘발성 메모리 관리 장치 110: 패턴 추출부
120: 보존 기간 제어부 130: 보존 기간 전송부
200: 비휘발성 메모리 210: 프로세서
220: 저장 공간

Claims (13)

  1. 비휘발성 메모리를 관리하는 장치에 의해 수행되는 방법에 있어서,
    상기 비휘발성 메모리에 대한 입출력(Input/Output) 연산을 모니터링하여 상기 비휘발성 메모리의 접근에 대한 패턴을 추출하는 단계; 및
    상기 추출된 패턴에 기반하여 상기 비휘발성 메모리에 미리 설정된 데이터 보존 기간을 제어하는 단계를 포함하는 비휘발성 메모리 관리 방법.
  2. 청구항 1에 있어서,
    상기 패턴을 추출하는 단계는,
    상기 비휘발성 메모리를 구성하는 다수의 데이터 블록이 상기 입출력 연산에 의해 접근되는 간격을 모니터링하는 것을 특징으로 하는 비휘발성 메모리 관리 방법.
  3. 청구항 2에 있어서,
    상기 패턴을 추출하는 단계는,
    마르코브 체인(Markov Chain)을 기반으로 상기 비휘발성 메모리를 구성하는 다수의 데이터 블록이 상기 입출력 연산에 의해 접근되는 간격을 분석하여, 상기 다수의 데이터 블록이 상기 비휘발성 메모리에 저장을 유지해야 하는 데이터 저장 기간을 예측하는 것을 특징으로 하는 비휘발성 메모리 관리 방법.
  4. 청구항 3에 있어서,
    상기 비휘발성 메모리의 접근에 대한 패턴은,
    상기 예측된 데이터 저장 기간을 포함하여 데이터 블록 단위로 추출되는 것을 특징으로 하는 비휘발성 메모리 관리 방법.
  5. 청구항 4에 있어서,
    상기 미리 설정된 데이터 보존 기간을 제어하는 단계는,
    상기 데이터 저장 기간이 상기 미리 설정된 데이터 보존 기간보다 큰 경우, 상기 미리 설정된 데이터 보존 기간을 유지하고,
    상기 데이터 저장 기간이 상기 미리 설정된 데이터 보존 기간보다 작은 경우, 상기 미리 설정된 데이터 보존 기간을 상기 데이터 저장 기간으로 조절하는 것을 특징으로 하는 비휘발성 메모리 관리 방법.
  6. 청구항 5에 있어서,
    상기 미리 설정된 데이터 보존 기간을 제어하는 단계 이후에,
    상기 비휘발성 메모리가 상기 데이터 보존 기간이 지난 데이터 블록을 망각시키고 빈 비휘발성 메모리의 공간에 다른 데이터 블록의 쓰기를 수행할 수 있도록 상기 비휘발성 메모리에 상기 제어된 데이터 보존 기간을 전송하는 단계를 더 포함하는 것을 특징으로 하는 비휘발성 메모리 관리 방법.
  7. 사용자 단말에서 구현되는 비휘발성 메모리를 관리하는 장치에 있어서,
    상기 비휘발성 메모리에 대한 입출력(Input/Output) 연산을 모니터링하여 상기 비휘발성 메모리의 접근에 대한 패턴을 추출하는 패턴 추출부; 및
    상기 추출된 패턴에 기반하여 상기 비휘발성 메모리에 미리 설정된 데이터 보존 기간을 제어하는 보존 기간 제어부를 포함하는 비휘발성 메모리 관리 장치.
  8. 청구항 7에 있어서,
    상기 비휘발성 메모리는,
    STT-MRAM(Spin-Transfer Torque Magnetic RAM), ReRAM(Resistive RAM) 및 PCM(Phase Change Memory) 중 적어도 하나를 기반으로 하는 메모리인 것을 특징으로 하는 비휘발성 메모리 관리 장치.
  9. 청구항 7에 있어서,
    상기 패턴 추출부는,
    상기 비휘발성 메모리를 구성하는 다수의 데이터 블록이 상기 입출력 연산에 의해 접근되는 간격을 모니터링하는 것을 특징으로 하는 비휘발성 메모리 관리 장치.
  10. 청구항 9에 있어서,
    상기 패턴 추출부는,
    마르코브 체인(Markov Chain)을 기반으로 상기 비휘발성 메모리를 구성하는 다수의 데이터 블록이 상기 입출력 연산에 의해 접근되는 간격을 분석하여, 상기 다수의 데이터 블록이 상기 비휘발성 메모리에 저장을 유지해야 하는 데이터 저장 기간을 예측하는 것을 특징으로 하는 비휘발성 메모리 관리 장치.
  11. 청구항 7에 있어서,
    상기 비휘발성 메모리의 접근에 대한 패턴은,
    상기 예측된 데이터 저장 기간을 포함하여 데이터 블록 단위로 추출되는 것을 특징으로 하는 비휘발성 메모리 관리 장치.
  12. 청구항 11에 있어서,
    상기 보존 기간 제어부는,
    상기 데이터 저장 기간이 상기 미리 설정된 데이터 보존 기간보다 큰 경우, 상기 미리 설정된 데이터 보존 기간을 유지하고,
    상기 데이터 저장 기간이 상기 미리 설정된 데이터 보존 기간보다 작은 경우, 상기 미리 설정된 데이터 보존 기간을 상기 데이터 저장 기간으로 조절하는 것을 특징으로 하는 비휘발성 메모리 관리 장치.
  13. 청구항 12에 있어서,
    상기 비휘발성 메모리 관리 장치는,
    상기 비휘발성 메모리와 연동되며,
    상기 비휘발성 메모리가 상기 데이터 보존 기간이 지난 데이터 블록을 망각시키고 빈 비휘발성 메모리의 공간에 다른 데이터 블록의 쓰기를 수행할 수 있도록 상기 비휘발성 메모리에 상기 제어된 데이터 보존 기간을 전송하는 보존 기간 전송부를 더 포함하는 것을 특징으로 하는 비휘발성 메모리 관리 장치.
KR1020160051895A 2015-05-07 2016-04-28 비휘발성 메모리 관리 방법 및 이를 수행하는 장치 KR20160131900A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020150063907 2015-05-07
KR20150063907 2015-05-07

Publications (1)

Publication Number Publication Date
KR20160131900A true KR20160131900A (ko) 2016-11-16

Family

ID=57541010

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160051895A KR20160131900A (ko) 2015-05-07 2016-04-28 비휘발성 메모리 관리 방법 및 이를 수행하는 장치

Country Status (1)

Country Link
KR (1) KR20160131900A (ko)

Similar Documents

Publication Publication Date Title
US8463826B2 (en) Incremental garbage collection for non-volatile memories
US9916087B2 (en) Method and system for throttling bandwidth based on temperature
US9384089B2 (en) Systems and methods for proactively refreshing nonvolatile memory
US8566506B2 (en) Tracking a lifetime of write operations to a non-volatile memory storage
KR102351660B1 (ko) 전력 관리 메커니즘을 갖는 솔리드 스테이트 메모리 시스템 및 그것의 동작 방법
US9208101B2 (en) Virtual NAND capacity extension in a hybrid drive
US9990964B1 (en) Storage device operating differently according to temperature of memory
US20120185638A1 (en) Method and system for cache endurance management
JP2009099149A (ja) 適応ハイブリッド密度メモリ記憶装置の制御方法、及び適応ハイブリッド密度メモリ記憶装置
US11513723B2 (en) Read handling in zoned namespace devices
US10416907B2 (en) Storage system, storage control apparatus, and method of controlling a storage device
US20230236986A1 (en) Cache block budgeting techniques
US10156997B2 (en) Data storage device and operating method to perform wear leveling based on elapsed time and write count
US10481014B2 (en) Adaptive throttling
CN115705872A (zh) 触发对非易失性存储器的刷新
JP4988054B2 (ja) メモリシステム
US20190251035A1 (en) Data storage device and operating method thereof
US11892928B2 (en) Delayed thermal throttling and associated data routing techniques
CN113467713A (zh) 数据分离方法及固态硬盘
US10719243B2 (en) Techniques for preserving an expected lifespan of a non-volatile memory
KR20160131900A (ko) 비휘발성 메모리 관리 방법 및 이를 수행하는 장치
JP2009230205A (ja) メモリシステム
US20230214149A1 (en) Modifying access operations based on temperature projections
US20240170036A1 (en) Data storage device and data protection method thereof
US11829218B1 (en) Solid-state device with multiple thermal power states

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment