KR20160131900A - 비휘발성 메모리 관리 방법 및 이를 수행하는 장치 - Google Patents
비휘발성 메모리 관리 방법 및 이를 수행하는 장치 Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing 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/0871—Allocation or management of cache space
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0891—Addressing 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management 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
본 발명은 메모리 관리 기술에 관한 것으로, 더욱 상세하게는, 비휘발성 메모리의 데이터 보존 기간을 조절하여 빠른 쓰기 성능을 제공하는 비휘발성 메모리 관리 방법 및 이를 수행하는 장치에 관한 것이다.
최근 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는 본 발명의 실시예에 따른 비휘발성 메모리 관리 장치를 나타내는 블록도이다.
도 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: 저장 공간
120: 보존 기간 제어부 130: 보존 기간 전송부
200: 비휘발성 메모리 210: 프로세서
220: 저장 공간
Claims (13)
- 비휘발성 메모리를 관리하는 장치에 의해 수행되는 방법에 있어서,
상기 비휘발성 메모리에 대한 입출력(Input/Output) 연산을 모니터링하여 상기 비휘발성 메모리의 접근에 대한 패턴을 추출하는 단계; 및
상기 추출된 패턴에 기반하여 상기 비휘발성 메모리에 미리 설정된 데이터 보존 기간을 제어하는 단계를 포함하는 비휘발성 메모리 관리 방법. - 청구항 1에 있어서,
상기 패턴을 추출하는 단계는,
상기 비휘발성 메모리를 구성하는 다수의 데이터 블록이 상기 입출력 연산에 의해 접근되는 간격을 모니터링하는 것을 특징으로 하는 비휘발성 메모리 관리 방법. - 청구항 2에 있어서,
상기 패턴을 추출하는 단계는,
마르코브 체인(Markov Chain)을 기반으로 상기 비휘발성 메모리를 구성하는 다수의 데이터 블록이 상기 입출력 연산에 의해 접근되는 간격을 분석하여, 상기 다수의 데이터 블록이 상기 비휘발성 메모리에 저장을 유지해야 하는 데이터 저장 기간을 예측하는 것을 특징으로 하는 비휘발성 메모리 관리 방법. - 청구항 3에 있어서,
상기 비휘발성 메모리의 접근에 대한 패턴은,
상기 예측된 데이터 저장 기간을 포함하여 데이터 블록 단위로 추출되는 것을 특징으로 하는 비휘발성 메모리 관리 방법. - 청구항 4에 있어서,
상기 미리 설정된 데이터 보존 기간을 제어하는 단계는,
상기 데이터 저장 기간이 상기 미리 설정된 데이터 보존 기간보다 큰 경우, 상기 미리 설정된 데이터 보존 기간을 유지하고,
상기 데이터 저장 기간이 상기 미리 설정된 데이터 보존 기간보다 작은 경우, 상기 미리 설정된 데이터 보존 기간을 상기 데이터 저장 기간으로 조절하는 것을 특징으로 하는 비휘발성 메모리 관리 방법. - 청구항 5에 있어서,
상기 미리 설정된 데이터 보존 기간을 제어하는 단계 이후에,
상기 비휘발성 메모리가 상기 데이터 보존 기간이 지난 데이터 블록을 망각시키고 빈 비휘발성 메모리의 공간에 다른 데이터 블록의 쓰기를 수행할 수 있도록 상기 비휘발성 메모리에 상기 제어된 데이터 보존 기간을 전송하는 단계를 더 포함하는 것을 특징으로 하는 비휘발성 메모리 관리 방법. - 사용자 단말에서 구현되는 비휘발성 메모리를 관리하는 장치에 있어서,
상기 비휘발성 메모리에 대한 입출력(Input/Output) 연산을 모니터링하여 상기 비휘발성 메모리의 접근에 대한 패턴을 추출하는 패턴 추출부; 및
상기 추출된 패턴에 기반하여 상기 비휘발성 메모리에 미리 설정된 데이터 보존 기간을 제어하는 보존 기간 제어부를 포함하는 비휘발성 메모리 관리 장치. - 청구항 7에 있어서,
상기 비휘발성 메모리는,
STT-MRAM(Spin-Transfer Torque Magnetic RAM), ReRAM(Resistive RAM) 및 PCM(Phase Change Memory) 중 적어도 하나를 기반으로 하는 메모리인 것을 특징으로 하는 비휘발성 메모리 관리 장치. - 청구항 7에 있어서,
상기 패턴 추출부는,
상기 비휘발성 메모리를 구성하는 다수의 데이터 블록이 상기 입출력 연산에 의해 접근되는 간격을 모니터링하는 것을 특징으로 하는 비휘발성 메모리 관리 장치. - 청구항 9에 있어서,
상기 패턴 추출부는,
마르코브 체인(Markov Chain)을 기반으로 상기 비휘발성 메모리를 구성하는 다수의 데이터 블록이 상기 입출력 연산에 의해 접근되는 간격을 분석하여, 상기 다수의 데이터 블록이 상기 비휘발성 메모리에 저장을 유지해야 하는 데이터 저장 기간을 예측하는 것을 특징으로 하는 비휘발성 메모리 관리 장치. - 청구항 7에 있어서,
상기 비휘발성 메모리의 접근에 대한 패턴은,
상기 예측된 데이터 저장 기간을 포함하여 데이터 블록 단위로 추출되는 것을 특징으로 하는 비휘발성 메모리 관리 장치. - 청구항 11에 있어서,
상기 보존 기간 제어부는,
상기 데이터 저장 기간이 상기 미리 설정된 데이터 보존 기간보다 큰 경우, 상기 미리 설정된 데이터 보존 기간을 유지하고,
상기 데이터 저장 기간이 상기 미리 설정된 데이터 보존 기간보다 작은 경우, 상기 미리 설정된 데이터 보존 기간을 상기 데이터 저장 기간으로 조절하는 것을 특징으로 하는 비휘발성 메모리 관리 장치. - 청구항 12에 있어서,
상기 비휘발성 메모리 관리 장치는,
상기 비휘발성 메모리와 연동되며,
상기 비휘발성 메모리가 상기 데이터 보존 기간이 지난 데이터 블록을 망각시키고 빈 비휘발성 메모리의 공간에 다른 데이터 블록의 쓰기를 수행할 수 있도록 상기 비휘발성 메모리에 상기 제어된 데이터 보존 기간을 전송하는 보존 기간 전송부를 더 포함하는 것을 특징으로 하는 비휘발성 메모리 관리 장치.
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) |
-
2016
- 2016-04-28 KR KR1020160051895A patent/KR20160131900A/ko active Search and Examination
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 | |
KR102351660B1 (ko) | 전력 관리 메커니즘을 갖는 솔리드 스테이트 메모리 시스템 및 그것의 동작 방법 | |
US9208101B2 (en) | Virtual NAND capacity extension in a hybrid drive | |
US20140101374A1 (en) | Tracking a lifetime of write operations to a non-volatile memory storage | |
US11513723B2 (en) | Read handling in zoned namespace devices | |
US20120185638A1 (en) | Method and system for cache endurance management | |
JP2009099149A (ja) | 適応ハイブリッド密度メモリ記憶装置の制御方法、及び適応ハイブリッド密度メモリ記憶装置 | |
US20180158492A1 (en) | Storage device operating differently according to temperature of memory | |
US10416907B2 (en) | Storage system, storage control apparatus, and method of controlling a storage device | |
US10481014B2 (en) | Adaptive throttling | |
US11892928B2 (en) | Delayed thermal throttling and associated data routing techniques | |
US20190251035A1 (en) | Data storage device and operating method thereof | |
JP6961759B2 (ja) | メモリデバイスにおけるリフレッシュ管理を実行するための方法、関連するメモリデバイス及びそのコントローラ | |
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 | |
JP4988054B2 (ja) | メモリシステム | |
CN113467713A (zh) | 数据分离方法及固态硬盘 | |
US10719243B2 (en) | Techniques for preserving an expected lifespan of a non-volatile memory | |
KR102687098B1 (ko) | 데이터의 메모리로의 예측 기반 선택적 플러시 | |
KR20160131900A (ko) | 비휘발성 메모리 관리 방법 및 이를 수행하는 장치 | |
JP2009230205A (ja) | メモリシステム | |
US12067281B2 (en) | Modifying access operations based on temperature projections | |
US20240170036A1 (en) | Data storage device and data protection method thereof |
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 |