KR101515525B1 - 메모리 장치 및 메모리 장치의 동작 방법 - Google Patents

메모리 장치 및 메모리 장치의 동작 방법 Download PDF

Info

Publication number
KR101515525B1
KR101515525B1 KR1020080097061A KR20080097061A KR101515525B1 KR 101515525 B1 KR101515525 B1 KR 101515525B1 KR 1020080097061 A KR1020080097061 A KR 1020080097061A KR 20080097061 A KR20080097061 A KR 20080097061A KR 101515525 B1 KR101515525 B1 KR 101515525B1
Authority
KR
South Korea
Prior art keywords
data
stored
write
block
memory device
Prior art date
Application number
KR1020080097061A
Other languages
English (en)
Other versions
KR20100037789A (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 KR1020080097061A priority Critical patent/KR101515525B1/ko
Priority to US12/358,278 priority patent/US9852061B2/en
Publication of KR20100037789A publication Critical patent/KR20100037789A/ko
Application granted granted Critical
Publication of KR101515525B1 publication Critical patent/KR101515525B1/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/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
    • 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
    • G11C16/10Programming or data input circuits
    • 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
    • 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
    • G11C16/26Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7207Details relating to flash memory management management of metadata or control data

Abstract

메모리 장치 및 메모리 장치의 동작 방법이 제공된다. 본 발명의 메모리 장치는 비휘발성 메모리 및 비휘발성 램을 포함할 수 있다. 비휘발성 메모리는 데이터 블록 및 메타 데이터 블록을 포함할 수 있다. 데이터 블록에 대한 메타 데이터 정보는 메타 데이터 블록에 저장될 수 있다. 비휘발성 램에는 메타 데이터 블록에 대한 메타 데이터 또는 데이터 블록에 대한 메타 데이터의 일부가 저장될 수 있다.
Figure R1020080097061
비휘발성 램, NVRAM, 메타 데이터, FTL

Description

메모리 장치 및 메모리 장치의 동작 방법 {MEMORY DEVICE AND OPERATING METHOD OF MEMORY DEVICE}
본 발명은 메모리 장치 및 메모리 장치의 동작 방법에 관한 것으로서, 특히 비휘발성 메모리(non-volatile memory)에 기반한 메모리 장치 및 메모리 장치의 동작 방법에 관한 것이다.
데이터를 저장하는 스토리지 장치로는 자기 디스크(magnetic disk), 반도체 메모리 등이 있을 수 있다. 스토리지 장치는 종류 별로 서로 다른 물리적 특성을 가지기 때문에 물리적 특성에 상응하는 관리 방법이 필요하다.
종래의 스토리지 장치로는 자기 디스크가 널리 사용되어 왔다. 자기 디스크는 평균적으로 킬로바이트(kilobyte) 당 수 밀리초(millisecond)의 읽기/쓰기 시간을 특성으로 가진다. 또한, 자기 디스크는 데이터가 저장된 물리적 위치에 따라 암(arm)이 도달하는 시간이 다르기 때문에 읽기/쓰기 시간이 달라지는 특성을 가진다.
최근에는 자기 디스크에 비하여 읽기/쓰기 시간이 짧고 작은 전력을 소모하며 작은 부피를 차지하는 비휘발성 메모리 장치가 급속하게 자기 디스크를 대체하 고 있다. 이는 비휘발성 메모리 장치의 대용량화가 이루어졌기 때문에 가능한 결과이다.
비휘발성 메모리 장치는 전기적으로 읽기(read), 쓰기(write) 및 소거(erase)가 가능하며, 공급 전원이 없는 상태에서도 저장된 데이터를 유지할 수 있는 반도체 메모리 장치이다. 비휘발성 메모리 장치에 대한 데이터의 저장 과정은 쓰기 외에도 프로그래밍(programming)이라고 불리기도 한다.
비휘발성 메모리 장치에 대한 프로그래밍은 페이지 단위로 수행될 수 있고 소거는 블록 단위로 수행될 수 있다. 블록은 복수의 페이지들을 포함할 수 있다. 비휘발성 메모리 장치의 컨트롤러는 외부의 호스트(host) 또는 프로세서(processor)에 논리 주소 (logical address)를 제공하고, 비휘발성 메모리 장치에 대해서는 물리 주소 (physical address)를 제공할 수 있다. 컨트롤러는 물리 주소를 이용하여 비휘발성 메모리 장치를 관리하고, 물리 주소를 논리 주소로 변환할 수 있다. 이처럼 물리 주소 및 논리 주소의 변환이 수행되는 계층을 플래시 변환 계층 (Flash Translation Layer)라 하기도 한다.
본 발명의 일부 실시예들은, 페이지 레벨 매핑 정보를 저장하는 데 필요한 공간을 줄이기 위한 메모리 장치 및 동작 방법을 제공하기 위한 것이다.
본 발명의 다른 실시예들은, 주소 공간의 크기를 줄이고, 페이지 레벨 정보의 크기도 줄이기 위한 메모리 장치 및 동작 방법을 제공하기 위한 것이다.
본 발명의 일 실시예에 따른 메모리 장치는 복수의 데이터 블록들 및 하나 이상의 메타 데이터 블록을 포함하고, 상기 복수의 데이터 블록들에 대응하는 제1 메타 데이터를 상기 하나 이상의 메타 데이터 블록에 저장하는 비휘발성 메모리, 및 바이트 단위 또는 워드 단위로 읽기 및 쓰기가 가능하고, 제2 메타 데이터를 저장하는 비휘발성 램을 포함할 수 있다.
본 발명의 일 실시예에 따른 메모리 장치의 동작 방법은 비휘발성 메모리에 대한 쓰기 명령이 랜덤 쓰기인지 순차적 쓰기인지 판정하는 단계, 상기 쓰기 명령이 랜덤 쓰기이면 비휘발성 램에 상기 쓰기 명령에 대응하는 데이터를 저장하는 단계, 및 상기 쓰기 명령이 순차적 쓰기이면 상기 비휘발성 메모리에 상기 쓰기 명령에 대응하는 데이터를 프로그램하는 단계를 포함할 수 있다.
본 발명의 일 실시예에 따른 메모리 장치의 동작 방법은 비휘발성 메모리에 대한 접근 명령의 논리 블록 주소를 비휘발성 램에 저장된 맵 정보에 기초하여 물리 주소로 변환하는 단계, 상기 물리 주소에 기초하여 상기 비휘발성 메모리의 메 타 데이터 영역에 저장된 페이지 맵 정보에 접근하는 단계, 상기 접근된 페이지 맵 정보에 기초하여 상기 접근 명령의 논리 페이지 주소를 물리 페이지 주소로 변환하는 단계 및 상기 물리 페이지 주소에 기초하여 상기 비휘발성 메모리의 데이터 영역에 저장된 데이터에 접근하는 단계를 포함할 수 있다.
본 발명의 일 실시예에 따른 메모리 장치의 가비지 콜렉션 방법은 비휘발성 메모리의 가용 공간이 임계치 미만이면 비휘발성 램에 저장된 상기 비휘발성 메모리의 복수의 블록들 각각의 상태 정보에 기초하여 상기 복수의 블록들 중 제1 블록을 선택하는 단계, 상기 비휘발성 메모리의 하나 이상의 프리 (free) 블록 중 어느 하나를 제2 블록으로 선택하는 단계, 상기 제1 블록에 저장된 데이터 중 유효한 데이터를 상기 제2 블록에 프로그램하는 단계, 및 상기 제1 블록에 저장된 데이터 중 모든 유효한 데이터가 상기 제2 블록에 프로그램되었으면 상기 제1 블록을 소거하는 단계를 포함할 수 있다.
본 발명의 일 실시예에 따른 메모리 장치 또는 동작 방법은 페이지 레벨 매핑 정보를 2 레벨로 구분하여 비휘발성 램 (Non-volatile Random Access Memory, NVRAM) 및 비휘발성 메모리에 저장함으로써 페이지 레벨 매핑 정보를 저장하는 데 필요한 공간을 줄일 수 있다.
본 발명의 일 실시예에 따른 메모리 장치 또는 동작 방법은 멀티 채널 인터리빙 (multi-channel interleaving)과 결합되어 주소 공간 (address space)을 채널 별로 분리할 수 있다. 따라서 주소 공간의 크기가 줄어들고, 페이지 레벨 정보의 크기도 줄어들 수 있다.
본 발명의 일 실시예에 따른 메모리 장치 또는 가비지 콜렉션 방법은 비휘발성 메모리의 복수의 블록들 각각의 상태 정보를 NVRAM에 저장함으로써 상태 정보의 업데이트를 단순화할 수 있다. 이 때 메모리 장치 또는 가비지 콜렉션 방법은 가비지 콜렉션 수행 시간을 단축할 수 있다.
본 발명의 일 실시예에 따른 메모리 장치 또는 동작 방법은 쓰기 명령의 데이터를 NVRAM에 저장함으로써 비휘발성 메모리에 직접 접근하는 빈도를 줄일 수 있다. 이 때 메모리 장치 또는 동작 방법은 비휘발성 메모리의 복수의 블록들 각각의 소거 횟수 (erase count)를 줄일 수 있다.
이하에서, 본 발명의 일 실시예에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 본 발명이 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
도 1은 본 발명의 일 실시예에 따른 메모리 장치(100)를 도시하는 도면이다. 메모리 장치 (100)는 고체 상태 디스크 (Solid State Disk, SSD)일 수 있다. SSD는 다수의 플래시 메모리 칩들을 이용하여 대용량의 스토리지(storage)를 구현하는 장치이며 하드 디스크 등 기존의 스토리지를 대체해 가고 있다.
도 1에 포함되는 복수의 플래시 메모리들 (Flash 00, 01, 02, 03. 10, 11, 12, 13, 20, 21, 22, 23)은 낸드(NAND) 플래시 메모리일 수 있고 노어 (NOR) 플래 시 메모리일 수도 있다. 낸드 플래시 메모리는 최근 대용량의 스토리지를 구현하는 데 널리 사용되고 있다.
낸드 플래시 메모리는 킬로바이트 당 수십 마이크로초(microsecond)의 읽기 시간 및 수백 마이크로초의 쓰기 시간을 특성으로 가진다. 또한, 낸드 플래시 메모리는 쓰기 시간과 다른 소거 시간을 가지는 것이 일반적인데, 소거 시간은 수 밀리초에 이르기 때문에 전체 데이터에 대한 소거 시간을 단축하기 위해 복수의 메모리 셀들을 동시에 소거하는 방법이 널리 사용된다. 이 때, 동시에 소거되는 복수의 메모리 셀들의 단위를 소거 유닛(erase unit), 소거 블록 (erase block) 또는 블록이라 한다.
이처럼 낸드 플래시 메모리를 포함한 비휘발성 메모리는 읽기/쓰기/소거에 필요한 시간이 모두 다른 비대칭적 읽기/쓰기/소거 특성을 가지는 점이 종래의 자기 디스크와 크게 다른 점이다. 또한, 비휘발성 메모리는 전기적으로 데이터에 억세스하므로 데이터가 저장된 위치는 읽기/쓰기/소거 특성에 거의 영향을 미치지 않는 점도 종래의 자기 디스크와 크게 다른 점이다.
종래의 자기 디스크에서는 데이터를 소거하는 과정이 데이터 쓰기 과정에 포함되어 별도의 시간이 필요하지 않았으므로 데이터를 업데이트할 필요가 있으면 업데이트된 데이터를 이전의 데이터의 위치에 오버라이트(overwrite)하면 되었다.
그러나, 비휘발성 메모리에서는 데이터를 소거하는 과정과 데이터 쓰기 과정이 분리되어 데이터를 소거하는 과정에 별도의 긴 시간이 필요하므로, 종래의 자기 디스크에 적용되었던 방법을 비휘발성 메모리에 적용하면 데이터를 업데이트할 때 에 긴 시간이 소요된다. 특히, 랜덤하게 데이터에 억세스하고 랜덤하게 데이터를 업데이트하는 경우에는 더욱 업데이트 시간이 길어진다는 점이 알려져 있다.
따라서 채널 컨트롤러 0 내지 2 (121, 122, 123)는 호스트 (host) (160)로부터 수신된 논리 주소 (logical address)와는 다른 값을 가지는 물리 주소(physical address)를 이용하여 복수의 플래시 메모리들 (Flash 00, 01, 02, 03. 10, 11, 12, 13, 20, 21, 22, 23)을 관리할 수 있다. 호스트 (160)가 인식하는 논리 주소를 물리 주소로 매핑하는 기능은 비휘발성 램 (Non-Volatile Random Access Memory, NVRAM) (110) 또는 채널 컨트롤러 0 내지 2 (121, 122, 123)에서 수행될 수 있다.
NVRAM (110)은 바이트 단위 또는 워드 단위로 읽기 및 쓰기가 가능하다. NVRAM (110)은 낸드 플래시 메모리와 달리 별도의 소거 과정을 필요로 하지 않으며 DRAM (Dynamic Random Access Memory) 또는 SRAM (Static Random Access Memory) 과 유사한 레벨의 비용(cost)으로 읽기 및 쓰기 동작을 수행할 수 있다. NVRAM (110)의 예로는 FRAM(Ferro-electric RAM), MRAM(Magneto-resistive RAM), 및 PRAM(Phase-change RAM)등이 있다.
또한 NVRAM (110)은 SRAM 또는 DRAM과 유사하게 이미 저장된 데이터를 제자리에서 (in-place) 갱신 (update) 할 수 있다.
호스트 인터페이스 (140)는 호스트 (160) 및 CPU (Central Processor Unit) (150) 간의 통신을 매개할 수 있다. 버퍼 (130)는 호스트 (160) 및 메모리 장치 (100) 간에 송수신되는 데이터를 임시 저장할 수 있다. 버퍼 (130)는 DRAM일 수도 있고, SRAM일 수도 있으나, 도 1에서는 버퍼 (130)가 DRAM인 실시예가 도시된다.
호스트 (160)는 플래시 메모리에 저장된 데이터를 읽거나 플래시 메모리에 데이터를 저장하기 위하여 플래시 메모리에 접근(access)한다. 호스트 (160)가 플래시 메모리로부터 데이터를 읽어 들이는 시간은 호스트 (160)의 입장에서는 상대적으로 긴 시간이므로 호스트 (160)는 버퍼 (130)를 이용하여 플래시 메모리에 저장된 데이터의 일부를 저장할 수 있다.
호스트 (160)는 한번 읽은 데이터를 가까운 시간 내에 다시 한번 읽어 들이는 경향이 있다. 이러한 경향을 시간적 지역성(temporal locality)이라고 하기도 한다. 호스트 (160)가 플래시 메모리로부터 읽은 데이터는 버퍼 (130)에 저장될 수 있다. 이러한 버퍼 (130)의 기능을 읽기 캐시 (read cache)라 할 수 있으며, 시간적 지역성에 의하여 호스트 (160) 및 플래시 메모리 간의 데이터 전송을 줄일 수 있다.
또한, 호스트 (160)는 근접한 공간에 저장된 데이터를 함께 참조 (referring)하는 경향이 있다. 이러한 경향은 공간적 지역성(spatial locality)이라고 한다.
Flash 00, 01, 02, 03은 채널 0을 형성할 수 있다. 이 때 채널 컨트롤러 0 (121)는 NVRAM (110)으로부터 물리 주소를 수신하고, 물리 주소를 이용하여 채널 0을 형성하는 Flash 00, 01, 02, 03을 관리할 수 있다.
Flash 10, 11, 12, 13은 채널 1을 형성할 수 있다. 이 때 채널 컨트롤러 1 (122)는 NVRAM (110)으로부터 물리 주소를 수신하고, 물리 주소를 이용하여 채널 1을 형성하는 Flash 10, 11, 12, 13을 관리할 수 있다.
Flash 20, 21, 22, 23은 채널 2을 형성할 수 있다. 이 때 채널 컨트롤러 2(123)는 NVRAM (110)으로부터 물리 주소를 수신하고, 물리 주소를 이용하여 채널 2을 형성하는 Flash 20, 21, 22, 23을 관리할 수 있다.
도 1에서는 하나의 채널을 4개의 플래시 메모리 유닛들이 형성하는 실시예가 도시되었으나, 본 발명은 하나의 채널을 형성하는 플래시 메모리 유닛들의 개수에 국한되지 않음은 당업자 (skilled person)에게 자명하다.
도 1에서는 3개의 채널들을 포함하는 실시예가 도시되었으나 본 발명은 채널들의 개수에 국한되지 않음 역시 당업자에게 자명하다.
도 1의 NVRAM (110)의 저장 공간의 일 예가 도 2에 도시된다.
도 2의 NVRAM (210)은 맵 블록 정보 (211), 데이터 블록 정보 영역(212), 루트 맵 (213), 쓰기 맵 캐시 (214), 쓰기 데이터 버퍼 (215)를 포함한다.
도 1의 버퍼 (130)의 저장 공간의 일 예가 도 2에 도시된다.
도 2의 DRAM (220)은 읽기 맵 캐시 (221), 읽기 데이터 버퍼 (222), 활성화 영역 (223)을 포함한다.
도 1의 복수의 플래시 블록들 (Flash 00, 01, 02, 03, 10, 11, 12, 13, 20, 21, 22, 23) 의 저장 공간의 일 예가 도 2에 도시된다.
도 2의 플래시 메모리 (230)는 페이지 맵 영역 (231), 사용자 데이터 영역 (232)를 포함한다.
사용자 데이터 영역 (232)은 복수의 데이터 블록들을 포함할 수 있다. 하나의 데이터 블록은 동시에 소거(erase)되는 메모리 셀들의 집합 (set)일 수 있다. 하나의 데이터 블록은 복수의 페이지들을 포함할 수 있고, 하나의 페이지는 동시에 프로그램되는 메모리 셀들의 집합일 수 있다
페이지 맵 영역 (231)에는 사용자 데이터 영역 (232)에 대한 매핑 정보가 저장될 수 있다. 이러한 매핑 정보를 메타 데이터 (meta data)라 부르기도 한다. 페이지 맵 영역 (231)은 하나 이상의 메타 데이터 블록을 포함할 수 있다. 메타 데이터 블록은 복수의 페이지들을 포함할 수 있다. 메타 데이터 블록은 동시에 소거되는 메모리 셀들의 집합 (set)일 수 있고, 페이지는 동시에 프로그램되는 메모리 셀들의 집합일 수 있다. 페이지 맵 영역 (231)에는 사용자 데이터 영역 (232)의 각 페이지에 대응하는 물리 페이지 주소 (physical page address)가 저장될 수 있다. 이처럼 페이지 레벨에서 이루어지는 논리 주소 및 물리 주소 간의 변환을 페이지 레벨 매핑이라 한다.
NVRAM (210)에는 플래시 메모리 (230)의 블록들 각각의 상태 정보가 저장될 수 있다. 맵 블록 정보 (211)에는 페이지 맵 영역 (231)의 메타 데이터 블록 각각의 상태 정보가 저장될 수 있다. 데이터 블록 정보 (212)에는 사용자 데이터 영역 (232)의 데이터 블록 각각의 상태 정보가 저장될 수 있다.
NVRAM (210)에는 호스트 (160)가 인식하는 논리 블록 주소 레벨의 매핑 정보가 저장될 수 있다. 루트 맵 (213)에는 논리 블록 주소 및 물리 주소 간의 매핑 정보가 저장될 수 있다.
NVRAM (210) 에는 쓰기 명령의 데이터가 저장될 수 있다. 쓰기 데이터 버퍼 (215)에는 랜덤 쓰기 명령의 데이터가 저장될 수 있다. 쓰기 맵 캐시 (214)에는 쓰기 데이터 버퍼 (215)에 저장된 데이터에 대응하는 관리 정보가 저장될 수 있다.
DRAM (220)에는 읽기 명령에 의해 사용자 데이터 영역 (232)으로부터 읽은 데이터가 임시로 저장될 수 있다. 읽기 데이터 버퍼 (222) 에는 사용자 데이터 영역 (232)으로부터 읽은 데이터가 저장될 수 있다. 읽기 맵 캐시 (221)에는 읽기 데이터 버퍼 (222)에 저장된 데이터에 대응하는 관리 정보가 저장될 수 있다. 활성화 영역 (223)에는 CPU (150)의 프로세스에 이용되는 데이터가 저장될 수 있다.
도 3에서는 도 1의 메모리 장치 (100)의 일 예에 따른 4개의 채널들이 도시된다.
채널 컨트롤러 0 (121)는 Flash 00, 01, 02, 03으로 이루어진 채널 0을 제어할 수 있다. 채널 컨트롤러 1 (122)는 Flash 10, 11, 12, 13으로 이루어진 채널 1을 제어할 수 있다. 채널 컨트롤러 2 (123)는 Flash 20, 21, 22, 23으로 이루어진 채널 2을 제어할 수 있다. 채널 컨트롤러 3 (124)는 Flash 30, 31, 32, 33으로 이루어진 채널 3을 제어할 수 있다.
채널 컨트롤러 0 (121)는 호스트 (160)로부터 전송된 논리 주소를 4로 나눈 나머지가 0인 경우 논리 주소를 채널 0에 대응하는 물리 주소로 변환할 수 있다. 채널 컨트롤러 1 (122)는 논리 주소를 4로 나눈 나머지가 1인 경우 논리 주소를 채널 1에 대응하는 물리 주소로 변환할 수 있다. 채널 컨트롤러 2 (123)는 논리 주소를 4로 나눈 나머지가 2인 경우 논리 주소를 채널 2에 대응하는 물리 주소로 변환할 수 있다. 채널 컨트롤러 3 (124)는 논리 주소를 4로 나눈 나머지가 3인 경우 논리 주소를 채널 3에 대응하는 물리 주소로 변환할 수 있다.
이처럼 논리 주소를 복수의 채널들에 매핑하는 기법을 멀티 채널 인터리빙 (interleaving)이라 하기도 한다. 멀티 채널 인터리빙 기법은 페이지 레벨 매핑과 결합될 경우 각 채널에서 관리되는 매핑 정보의 양을 줄일 수 있다. 또한 순차적 (sequential) 접근 시 각 채널로 데이터 전송이 분산되고 하나의 채널에 데이터 전송이 집중되는 경우를 줄일 수 있다.
도 4는 도 2의 맵 블록 정보 (211) 및 데이터 블록 정보 (212)의 저장 공간의 일 예를 도시하는 도면이다.
저장 방법은 유사하나, 설명의 편의 상 데이터 블록 정보 (212)에 대하여 설명한다.
사용자 데이터 영역 (232)이 N개의 데이터 블록들로 이루어진다고 가정한다.
하나의 데이터 블록은 n개의 페이지들을 포함한다.
각각의 데이터 블록에 대한 정보는 블록 상태 및 n개의 페이지들 각각의 상태 정보를 포함할 수 있다.
페이지들 각각의 상태 정보는 페이지들 각각이 free한지, valid한지, invalid 한지를 가리킬 수 있다. 페이지에 데이터가 저장되어 있지 않은 경우에 페이지가 free하다고 한다. 페이지에 데이터가 저장되어 있고 저장된 데이터가 valid한 경우에 페이지가 valid하다고 할 수 있다. 페이지에 데이터가 저장되어 있으나 저장된 데이터가 valid하지 않은 경우에 페이지가 invalid하다고 할 수 있다.
예를 들어 페이지 상태 정보가 "00"이면 페이지가 free함을 나타내고 페이지 상태 정보가 "10"이면 페이지가 invalid 함을 나타내고 페이지 상태 정보가 "11"이면 페이지가 valid함을 나타낼 수 있다. 페이지에 저장된 데이터가 최근 버전이 아니고 obsolete한 버전인 경우 페이지가 invalid하다고 한다.
블록 상태 정보는 블록이 소거된 횟수 (erase count) 및 블록에 포함되는 페이지들 중 valid한 페이지의 개수를 포함할 수 있다.
도 5는 도 2의 루트 맵 (213)의 저장 공간의 일 예를 도시하는 도면이다.
루트 맵 (213)에는 논리 블록 주소에 대응하는 물리 주소가 저장될 수 있다. 물리 주소는, 논리 블록 주소에 대응하는 페이지 레벨 매핑 정보가 저장된 페이지 맵 영역 (231)의 페이지의 주소를 나타낼 수 있다. 채널 컨트롤러 0 내지 3 (121 내지 124)는 NVRAM (110)의 루트 맵 (213)으로부터 물리 주소를 획득하고, 물리 주소를 이용하여 Flash 00, 01, 02, 03, 10, 11, 12, 13, 20, 21, 22, 23, 30, 31, 32, 33의 페이지 맵 영역 (231)에 접근할 수 있다.
NVRAM (110)에 저장된 데이터는 in-place update가 가능하므로, 루트 맵 (213) 의 첫번째 엔트리에는 논리 블록 0에 매핑되는 물리 주소가 저장되고, 두번째 엔트리에는 논리 블록 1에 매핑되는 물리 주소가 저장될 수 있다. 루트 맵 (213)은 논리 블록의 수 M만큼의 엔트리를 가질 수 있다.
채널 컨트롤러 0 내지 3 (121 내지 124)는 물리 주소를 이용하여 페이지 맵 영역 (231)에 접근하고, 페이지 맵 영역 (231)으로부터 물리 페이지 주소를 획득할 수 있다. 블록 레벨의 매핑 정보는 NVRAM (110)에 저장되고 페이지 레벨의 매핑 정보는 페이지 맵 영역 (231)에 저장된다. 매핑 정보가 2 레벨로 관리되어 매핑 정보를 저장하기 위해 필요한 메모리 공간이 줄어들 수 있다.
도 6은 도 2의 쓰기 맵 캐시 (214)에 저장되는 정보의 일 예를 도시한다.
NVRAM (110)은 쓰기 명령이 랜덤 쓰기인지 순차적 (sequential) 쓰기인지 판정한 후 쓰기 명령이 랜덤 쓰기이면 쓰기 명령의 데이터를 쓰기 데이터 버퍼 (215)에 저장할 수 있다. 이 때 NVRAM(110)은 쓰기 명령의 데이터의 크기가 임계치보다 크면 순차적 쓰기, 임계치 이하이면 랜덤 쓰기로 판정할 수 있다.
공간적 지역성 때문에, 호스트 (160)는 인접한 논리 주소에 한꺼번에 데이터를 쓰거나 읽는 명령을 빈번하게 생성할 수 있다. 이러한 쓰기 명령을 순차적 쓰기라 하고, 순차적 쓰기가 아닌 쓰기 명령을 랜덤 쓰기라 할 수 있다.
쓰기 맵 캐시 (214)에는 순차적 쓰기에 대응하는 정보 및 랜덤 쓰기에 대응하는 정보가 구분되어 저장될 수 있다.
순차적 쓰기에 대응하는 정보는 논리 블록 번호 (logical block number, LBN) 를 포함하고, LBN에 포함되는 논리 페이지 각각에 매핑되는 물리 주소를 더 포함할 수 있다. 하나의 논리 블록에 포함되는 페이지가 n개이면, 순차적 쓰기에 대응하는 정보는 논리 블록 번호, 논리 페이지 0에 매핑되는 물리 주소, …. , 논리 페이지 n에 대응하는 물리 주소를 포함할 수 있다.
예를 들어 순차적 쓰기가 논리 블록 120h에 대응하는 경우, 논리 블록 120h에 포함되는 논리 페이지 각각은 채널 컨트롤러 0 내지 3 (121 내지 124)에 의하여 물리 주소로 매핑될 수 있다. NVRAM (110)은 논리 블록 120h의 논리 페이지 각각에 매핑된 물리 주소를 저장할 수 있다.
순차적 쓰기가 논리 블록 1F0h에 대응하는 경우, 논리 블록 1F0h에 포함되는 논리 페이지 각각은 채널 컨트롤러 0 내지 3 (121 내지 124)에 의하여 물리 주소로 매핑될 수 있다. NVRAM (110)은 논리 블록 1F0h의 논리 페이지 각각에 매핑된 물리 주소를 저장할 수 있다.
랜덤 쓰기에 대응하는 정보는 랜덤 쓰기 각각의 논리 주소 및 논리 주소에 매핑되는 물리 주소를 포함할 수 있다. 예를 들어, 논리 주소 10F0h에 대응하는 랜덤 쓰기가 요청(request)된 경우, 채널 컨트롤러 0 내지 3 (121 내지 124)는 논리 주소 10F0h에 물리 주소를 할당 (assign)할 수 있다. NVRAM (110)에는 논리 주소 10F0h에 매핑된 물리 주소가 저장될 수 있다. 마찬가지로, NVRAM (110)에는 랜덤 쓰기 요청에 대응하는 논리 주소 11CAh에 매핑된 물리 주소, 논리 주소 1FA0h에 매핑된 물리 주소가 저장될 수 있다.
쓰기 맵 캐시 (214)에는 순차적 쓰기에 대응하는 논리 블록을 구성하는 논리 페이지의 매핑 정보가 모여 저장될 수 있다. 순차적 쓰기가 수행되는 경우, 순차적 쓰기에 대응하는 데이터는 NVRAM (110)에 저장되지 않고 사용자 데이터 영역 (232)에 프로그램될 수 있다.
랜덤 쓰기가 요청되는 경우, 랜덤 쓰기에 대응하는 데이터는 사용자 데이터 영역 (232)에 프로그램되지 않고, NVRAM (110)의 쓰기 데이터 버퍼 (215)에 먼저 저장될 수 있다.
쓰기 데이터 버퍼 (215)의 가용 공간 (available space)의 크기가 임계치보다 작으면 (가용 공간이 부족하면) NVRAM (110)은 쓰기 데이터 버퍼 (215)의 랜덤 쓰기 데이터를 arrange하여 순차적 쓰기 데이터 포맷으로 재구성할 수 있다. 이 때 NVRAM (110)은 랜덤 쓰기 데이터에 대응하는 매핑 정보 또한 순차적 쓰기 데이터에 대응하는 매핑 정보의 포맷으로 재구성할 수 있다.
도 7은 도 2의 쓰기 데이터 버퍼 (215)에 저장되는 데이터의 일 예를 도시한다.
호스트 (160)는 섹터 단위로 쓰기 데이터를 전송할 수 있다. 섹터는 512 bytes일 수도 있고, 다른 크기를 가질 수도 있다. 페이지는 2 kilobytes 일 수도 있고, 16 kilobytes일 수도 있으나, 본 발명은 섹터의 크기 또는 페이지의 크기에 국한되지 않음은 당업자에게 자명하다.
NVRAM (110)은 호스트 (160)로부터 수신된 섹터 크기의 데이터를 페이지 크기로 arrange하여 저장할 수 있다.
쓰기 데이터 버퍼 (215)에는 논리 페이지 번호 (logical page number, LPN) 및 논리 페이지에 대응하는 섹터의 데이터가 저장될 수 있다. 예를 들어, LPN 1110h에 대응하는 쓰기 명령이 수신된 경우, LPN 1110h 의 상태, LPN 1110h 의 섹터 0 내지 3의 데이터가 쓰기 데이터 버퍼 (215)에 저장될 수 있다.
마찬가지로, LPN 1111h의 상태, LPN 1111h의 섹터 0 내지 3의 데이터 또한 쓰기 데이터 버퍼 (215)에 저장될 수 있다.
NVRAM (110)에 데이터를 저장하는 데 걸리는 시간은 플래시 메모리에 데이터를 프로그램하는 데 걸리는 시간보다 짧으므로, NVRAM (110)은 랜덤 쓰기의 데이터를 저장해 두었다가 한꺼번에 플래시 메모리에 프로그램함으로써 쓰기 동작의 수행 시간을 단축할 수 있다. 또한, NVRAM (110)은 호스트 (160)로부터 플래시 메모리로의 데이터 전송 횟수를 줄일 수 있다.
쓰기 데이터 버퍼 (215)의 가용 공간이 부족한 경우, NVRAM (110)은 랜덤 쓰기 데이터를 arrange하여 순차적 쓰기가 가능하도록 재구성할 수 있다. LPN 1110h의 상태 정보는 각각의 섹터의 데이터가 valid한지 여부를 나타낼 수 있다. 쓰기 데이터 버퍼 (215)에 저장된 섹터 데이터가 invalid한 경우, NVRAM (110)은 invalid한 섹터에 대응하는 valid 데이터를 플래시 메모리로부터 읽을 수 있다. NVRAM (110)은 valid 데이터를 invalid한 섹터에 overwrite하고, LPN 1110h의 상태 정보를 갱신할 수 있다.
도 6 및 도 7은 NVRAM (110)의 쓰기 맵 캐시 (214) 및 쓰기 데이터 버퍼 (215)을 도시하였으나, 버퍼 (130)의 읽기 맵 캐시 (221) 및 읽기 데이터 버퍼 (222)도 유사한 포맷을 가질 수 있다.
NVRAM (110)은 낸드 플래시 메모리보다 빠른 읽기 및 쓰기 속도를 가지는 등 이점이 많으나, 현재는 대용량의 NVRAM (110)이 제공되지 못하고 있어 NVRAM (110)에 저장되는 정보를 선택하는 기준이 필요하다. 메모리 장치 (100)는 블록 레벨 매핑 정보를 NVRAM (110)에 저장하고 페이지 레벨 매핑 정보를 페이지 맵 영역 (231)에 저장함으로써 NVRAM (110)에 저장되는 정보 및 플래시 메모리에 저장되는 정보의 양을 최적화할 수 있다. 또한 2 레벨 매핑 기법에 의하여 매핑 정보의 양이 줄어들 수 있다.
메모리 장치 (100)는 NVRAM (110)에 플래시 메모리의 각 블록의 상태 정보를 저장하고, 저장된 상태 정보를 in-place update함으로써 저장 공간을 최소화할 수 있다. 메모리 장치 (100)는 빈번하게 update되는 정보를 NVRAM (110)에 저장하고 상대적으로 가끔 update되는 정보를 플래시 메모리에 저장할 수 있다.
메모리 장치 (100)는 랜덤 쓰기의 데이터를 NVRAM (110)에 저장하고, 저장된 랜덤 쓰기의 데이터를 arrange하여 순차적 쓰기와 유사한 방법으로 플래시 메모리에 저장할 수 있다. 호스트 (160) 및 플래시 메모리 간의 데이터 전송 빈도가 줄어들기 때문에 호스트 (160)에서 인식하는 메모리 장치 (100)의 성능을 향상시킬 수 있다.
도 8은 도 1의 메모리 장치 (100)의 동작 방법의 일 예를 도시하는 동작 흐름도이다.
메모리 장치 (100)는 쓰기 명령이 순차적 쓰기인지 여부를 판정한다 (S810).
쓰기 명령이 순차적 쓰기가 아니면 메모리 장치 (100)는 쓰기 명령의 데이터를 NVRAM (110)의 쓰기 데이터 버퍼 (215)에 저장한다 (S820).
메모리 장치 (100)는 쓰기 명령의 데이터에 대응하는 맵 정보를 NVRAM (110)의 쓰기 맵 캐시 (214)에 저장한다 (S830).
메모리 장치 (100)는 쓰기 데이터 버퍼 (215)의 가용 공간의 크기가 임계치보다 작은지 여부를 판정한다 (S840).
가용 공간의 크기가 임계치보다 작으면 메모리 장치 (100)는 쓰기 데이터 버퍼 (215)의 데이터 중 축출(evict) 데이터를 선택한다 (S850).
메모리 장치 (100)는 Flash 00, 01, 02, 03, 10, 11, 12, 13, 20, 21, 22, 23 의 free 페이지 중 어느 하나를 선택한다 (S860).
메모리 장치 (100)는 축출 데이터를 선택된 free 페이지에 프로그램한다 (S870).
메모리 장치 (100)는 프로그램된 데이터에 대응하는 맵 정보를 업데이트한다 (S880). 이 때 메모리 장치 (100)는 맵 블록 정보 (211), 데이터 블록 정보 (212), 루트 맵 (213), 쓰기 맵 캐시 (214) 및 페이지 맵 영역 (231)을 업데이트할 수 있다.
쓰기 명령이 순차적 쓰기이면 메모리 장치 (100)는 단계 (S860)를 수행한다. 이 때 메모리 장치 (100)는 쓰기 명령의 데이터를 선택된 free 페이지에 프로그램한다 (S870).
NVRAM (110)의 가용 공간이 임계치 이상이면 메모리 장치 (100)는 해당 프로세스를 종료할 수 있다.
도 9는 도 1의 메모리 장치 (100)의 동작 방법의 일 예를 도시하는 동작 흐름도이다.
메모리 장치 (100)는 읽기 명령의 데이터가 NVRAM (110)에 저장되어 있는지 여부를 판정한다 (S910).
읽기 명령의 데이터가 NVRAM (110)에 저장되어 있으면 메모리 장치 (100)는 NVRAM (110)으로부터 데이터를 읽는다 (S911).
읽기 명령의 데이터가 NVRAM (110)에 저장되어 있지 않으면 메모리 장치 (100)는 읽기 명령의 데이터가 Read Cache / 버퍼 (130)에 저장되어 있는지 여부를 판정한다 (S920).
읽기 명령의 데이터가 Read Cache / 버퍼 (130)에 저장되어 있으면 메모리 장치 (100)는 Read Cache / 버퍼 (130)으로부터 데이터를 읽는다 (S921).
읽기 명령의 데이터가 Read Cache / 버퍼 (130)에 저장되어 있지 않으면 메모리 장치 (100)는 읽기 명령의 주소에 대응하는 맵 정보가 NVRAM (110)의 쓰기 맵 캐시 (214)에 저장되어 있는지 여부를 판정한다 (S930).
읽기 명령의 주소에 대응하는 맵 정보가 쓰기 맵 캐시 (214)에 저장되어 있으면 메모리 장치 (100)는 쓰기 맵 캐시 (214)로부터 물리 페이지 주소를 획득한다 (S931).
읽기 명령의 주소에 대응하는 맵 정보가 쓰기 맵 캐시 (214)에 저장되어 있지 않으면 메모리 장치 (100)는 읽기 명령의 주소에 대응하는 맵 정보가 읽기 맵 캐시 (221)에 저장되어 있는지 여부를 판정한다 (S940).
읽기 명령의 주소에 대응하는 맵 정보가 읽기 맵 캐시 (221)에 저장되어 있으면 메모리 장치 (100)는 읽기 맵 캐시 (221)로부터 물리 페이지 주소를 획득한다 (941).
단계 (S931) 또는 단계 (S941)에 의하여 획득된 물리 페이지 주소를 이용하여, 메모리 장치 (100)는 데이터 영역 (232)로부터 데이터를 읽는다 (S970).
읽기 명령의 주소에 대응하는 맵 정보가 읽기 맵 캐시 (221)에 저장되어 있지 않으면 메모리 장치 (100)는 NVRAM (110)의 루트 맵 (213)으로부터 맵 페이지 영역 (231)의 물리 주소를 획득한다 (S950).
메모리 장치 (100)는 맵 페이지 영역 (231) 내에서 물리 주소가 가리키는 페이지에 접근한다. 메모리 장치 (100)는 맵 페이지 영역 (231)로부터 데이터 영역 (232)의 물리 페이지 주소를 획득한다 (S960).
메모리 장치 (100)는 데이터 영역 (232) 내에서 물리 페이지 주소가 가리키는 페이지에 접근한다. 메모리 장치 (100)는 데이터 영역 (232)로부터 데이터를 읽는다 (S970).
도 10은 도 1의 메모리 장치 (100)의 가비지 콜렉션 (garbage collection) 방법의 일 예를 도시하는 동작 흐름도이다.
메모리 장치 (100)는 Flash 00, 01, 02, 03, 10, 11, 12, 13, 20, 21, 22, 23의 가용 공간의 크기가 임계치보다 작은지 여부를 판정한다 (S1010).
가용 공간의 크기가 임계치보다 작으면 메모리 장치 (100)는 NVRAM (100)에 저장된 블록 상태 정보에 기초하여 Flash 00, 01, 02, 03, 10, 11, 12, 13, 20, 21, 22, 23의 블록들 중 제1 블록을 선택한다 (S1020).
메모리 장치 (100)는 Flash 00, 01, 02, 03, 10, 11, 12, 13, 20, 21, 22, 23의 free 블록 중 제2 블록을 선택한다 (S1030).
메모리 장치 (100)는 제2 블록의 free 페이지 중 하나를 선택한다 (S1040).
메모리 장치 (100)는 제1 블록의 valid 페이지를 선택된 free 페이지에 프로그램한다 (S1050).
메모리 장치 (100)는 제1 블록의 모든 valid 데이터가 제2 블록에 저장되었는지 여부를 판정한다 (S1060).
제1 블록의 valid 데이터 중 일부가 제2 블록에 저장되지 않았으면 메모리 장치 (100)는 제2 블록의 free 페이지 중 하나를 새롭게 선택한다 (S1040).
제1 블록의 모든 valid 데이터가 제2 블록에 저장되었으면 메모리 장치 (100)는 제1 블록을 소거(erase)한다 (S1070).
본 발명의 일 실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
본 발명의 일 실시예에 따른 플래시 메모리 장치 그리고/또는 메모리 컨트롤 러는 다양한 형태들의 패키지를 이용하여 구현될 수 있다. 예를 들면, 본 발명의 일 실시예에 따른 플래시 메모리 장치 그리고/또는 메모리 컨트롤러는 PoP(Package on Package), Ball grid arrays(BGAs), Chip scale packages(CSPs), Plastic Leaded Chip Carrier(PLCC), Plastic Dual In-Line Package(PDIP), Die in Waffle Pack, Die in Wafer Form, Chip On Board(COB), Ceramic Dual In-Line Package(CERDIP), Plastic Metric Quad Flat Pack(MQFP), Thin Quad Flatpack(TQFP), Small Outline(SOIC), Shrink Small Outline Package(SSOP), Thin Small Outline(TSOP), Thin Quad Flatpack(TQFP), System In Package(SIP), Multi Chip Package(MCP), Wafer-level Fabricated Package(WFP), Wafer-Level Processed Stack Package(WSP), 등과 같은 패키지들을 이용하여 구현될 수 있다.
플래시 메모리 장치와 메모리 컨트롤러는 메모리 카드를 구성할 수 있다. 이러한 경우, 메모리 컨트롤러는 USB, MMC, PCI-E, SATA, PATA, SCSI, ESDI, 그리고 IDE 등과 같은 다양한 인터페이스 프로토콜들 중 하나를 통해 외부(예를 들면, 호스트)와 통신하도록 구성될 수 있다.
플래시 메모리 장치는 전력이 차단되어도 저장된 데이터를 유지할 수 있는 비휘발성 메모리 장치이다. 셀룰러 폰, PDA, 디지털 카메라, 포터블 게임 콘솔, 그리고 MP3P와 같은 모바일 장치들의 사용 증가에 따라, 플래시 메모리 장치는 데이터 스토리지 뿐만 아니라 코드 스토리지로서 보다 널리 사용될 수 있다. 플래시 메모리 장치는, 또한, HDTV, DVD, 라우터, 그리고 GPS와 같은 홈 어플리케이션에 사용될 수 있다.
본 발명의 일 실시예에 따른 컴퓨팅 시스템 또는 호스트는 버스에 전기적으로 연결된 마이크로프로세서, 사용자 인터페이스, 베이스밴드 칩셋(baseband chipset)과 같은 모뎀, 메모리 컨트롤러, 그리고 플래시 메모리 장치를 포함한다. 플래시 메모리 장치에는 마이크로프로세서에 의해서 처리된/처리될 N-비트 데이터(N은 1 또는 그 보다 큰 정수)가 메모리 컨트롤러를 통해 저장될 것이다. 본 발명의 일 실시예에 따른 컴퓨팅 시스템이 모바일 장치인 경우, 컴퓨팅 시스템의 동작 전압을 공급하기 위한 배터리가 추가적으로 제공될 것이다.
본 발명의 일 실시예에 따른 컴퓨팅 시스템에는 응용 칩셋(application chipset), 카메라 이미지 프로세서(Camera Image Processor: CIS), 모바일 디램, 등이 더 제공될 수 있음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다. 메모리 컨트롤러와 플래시 메모리 장치는, 예를 들면, 데이터를 저장하는 데 비휘발성 메모리를 사용하는 SSD(Solid State Drive/Disk)를 구성할 수 있다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
도 1은 본 발명의 일 실시예에 따른 메모리 장치(100)를 도시하는 도면이다.
도 2는 도 1의 NVRAM (110), 버퍼 (130), 복수의 플래시 블록들 (Flash 00, 01, 02, 03, 10, 11, 12, 13, 20, 21, 22, 23)의 저장 공간의 일 예를 도시한다.
도 3은 도 1의 메모리 장치 (100)의 일 예에 따른 4개의 채널들을 도시한다.
도 4는 도 2의 맵 블록 정보 (211) 및 데이터 블록 정보 (212)의 저장 공간의 일 예를 도시하는 도면이다.
도 5는 도 2의 루트 맵 (213)의 저장 공간의 일 예를 도시하는 도면이다.
도 6은 도 2의 쓰기 맵 캐시 (214)에 저장되는 정보의 일 예를 도시한다.
도 7은 도 2의 쓰기 데이터 버퍼 (215)에 저장되는 데이터의 일 예를 도시한다.
도 8은 도 1의 메모리 장치 (100)의 동작 방법의 일 예를 도시하는 동작 흐름도이다.
도 9는 도 1의 메모리 장치 (100)의 동작 방법의 일 예를 도시하는 동작 흐름도이다.
도 10은 도 1의 메모리 장치 (100)의 가비지 콜렉션 방법의 일 예를 도시하는 동작 흐름도이다.
<도면의 주요 부분에 대한 부호의 설명>
100: Solid State Disk
110: NVRAM
121 ~ 123 : 채널 컨트롤러 0 내지 2
130: 버퍼
140: 호스트 인터페이스
150: CPU
160: 호스트

Claims (20)

  1. 복수의 데이터 블록들 및 하나 이상의 메타 데이터 블록을 포함하고, 상기 복수의 데이터 블록들에 대응하는 제1 메타 데이터를 상기 하나 이상의 메타 데이터 블록에 저장하는 비휘발성 메모리; 및
    바이트 단위 또는 워드 단위로 읽기 및 쓰기가 가능하고, 제2 메타 데이터를 저장하는 비휘발성 램
    을 포함하며,
    상기 비휘발성 램은, 상기 비휘발성 메모리에 대한 쓰기 명령의 데이터의 크기가 임계치 이상이면 상기 쓰기 명령을 순차적 쓰기로 판정하고, 상기 데이터의 크기가 임계치 미만이면 상기 쓰기 명령을 랜덤 쓰기로 판정하는 메모리 장치.
  2. 제1항에 있어서,
    상기 제2 메타 데이터는 상기 복수의 데이터 블록들 각각의 소거 횟수를 포함하는 메모리 장치.
  3. 제1항에 있어서,
    상기 제2 메타 데이터는 상기 복수의 데이터 블록들 각각이 포함하는 복수의 페이지들 각각의 상태 정보를 포함하는 메모리 장치.
  4. 제1항에 있어서,
    상기 제2 메타 데이터는 상기 하나 이상의 메타 데이터 블록 각각의 소거 횟수를 포함하는 메모리 장치.
  5. 제1항에 있어서,
    상기 제2 메타 데이터는 상기 하나 이상의 메타 데이터 블록 각각이 포함하는 복수의 페이지들 각각의 상태 정보를 포함하는 메모리 장치.
  6. 제1항에 있어서,
    상기 제2 메타 데이터는 상기 복수의 데이터 블록들에 저장된 데이터 페이지의 논리 블록 주소 및 물리 주소 간의 매핑 관계를 포함하고,
    상기 제1 메타 데이터는 상기 복수의 데이터 블록들에 저장된 데이터 페이지의 상기 논리 블록 주소 내에서의 논리 페이지 주소 및 물리 페이지 주소 간의 매핑 관계를 포함하는 메모리 장치.
  7. 제1항에 있어서,
    상기 비휘발성 램은
    상기 비휘발성 메모리에 대한 쓰기 명령이 랜덤 쓰기이면 상기 쓰기 명령에 대응하는 데이터를 저장하고, 상기 저장된 데이터에 대응하는 맵 정보를 저장하는 메모리 장치.
  8. 제7항에 있어서,
    상기 비휘발성 램은
    가용 공간의 크기가 임계치 미만이면 상기 맵 정보에 기초하여 상기 저장된 데이터 중 축출 데이터를 선택하고, 상기 축출 데이터를 상기 비휘발성 메모리의 상기 복수의 데이터 블록들 중 하나 이상에 프로그램하는 메모리 장치.
  9. 제8항에 있어서,
    상기 비휘발성 램은
    상기 축출 데이터를 상기 복수의 데이터 블록들 중 하나 이상에 프로그램한 후 상기 맵 정보를 업데이트하는 메모리 장치.
  10. 제1항에 있어서,
    상기 비휘발성 램은
    상기 비휘발성 메모리에 대한 읽기 명령에 대응하는 데이터가 상기 비휘발성 램에 저장되어 있으면 상기 저장된 데이터를 상기 읽기 명령에 대응하는 데이터로서 출력하는 메모리 장치.
  11. 비휘발성 메모리 및 비휘발성 램을 포함하는 메모리 장치의 동작 방법에 있어서,
    상기 비휘발성 메모리에 대한 쓰기 명령이 랜덤 쓰기인지 순차적 쓰기인지 판정하는 단계;
    상기 쓰기 명령이 랜덤 쓰기이면 상기 비휘발성 램에 상기 쓰기 명령에 대응하는 데이터를 저장하는 단계; 및
    상기 쓰기 명령이 순차적 쓰기이면 상기 비휘발성 메모리에 상기 쓰기 명령에 대응하는 데이터를 프로그램하는 단계
    를 포함하며,
    상기 판정하는 단계는, 상기 쓰기 명령에 대응하는 데이터의 크기가 임계치 이상이면 상기 쓰기 명령을 순차적 쓰기로 판정하고, 상기 데이터의 크기가 임계치 미만이면 상기 쓰기 명령을 랜덤 쓰기로 판정하는 메모리 장치의 동작 방법.
  12. 삭제
  13. 제11항에 있어서,
    상기 비휘발성 램에 상기 쓰기 명령에 대응하는 데이터를 저장하는 단계는
    상기 저장된 데이터에 대응하는 맵 정보를 상기 비휘발성 램에 저장하는 단계
    를 포함하는 메모리 장치의 동작 방법.
  14. 제11항에 있어서,
    상기 비휘발성 램의 가용 공간의 크기가 임계치 미만인지 여부를 판정하는 단계;
    상기 가용 공간의 크기가 상기 임계치 미만이면 상기 비휘발성 램에 저장된 데이터 중 축출 데이터를 선택하는 단계; 및
    상기 축출 데이터를 상기 비휘발성 메모리에 프로그램하는 단계
    를 더 포함하는 메모리 장치의 동작 방법.
  15. 제11항에 있어서,
    상기 비휘발성 메모리에 대한 읽기 명령에 대응하는 데이터가 상기 비휘발성 램에 저장되어 있는지 여부를 판정하는 단계;
    상기 읽기 명령에 대응하는 데이터가 상기 비휘발성 램에 저장되어 있으면 상기 비휘발성 램으로부터 상기 읽기 명령에 대응하는 데이터를 읽는 단계;
    상기 비휘발성 램으로부터 읽은 데이터를 호스트 또는 컨트롤러로 전송하는 단계
    를 더 포함하는 메모리 장치의 동작 방법.
  16. 비휘발성 메모리 및 비휘발성 램을 포함하는 메모리 장치의 동작 방법에 있어서,
    상기 비휘발성 메모리에 대한 접근 명령의 논리 블록 주소를 상기 비휘발성 램에 저장된 맵 정보에 기초하여 물리 주소로 변환하는 단계;
    상기 물리 주소에 기초하여 상기 비휘발성 메모리의 메타 데이터 영역에 저장된 페이지 맵 정보에 접근하는 단계;
    상기 접근된 페이지 맵 정보에 기초하여 상기 접근 명령의 논리 페이지 주소를 물리 페이지 주소로 변환하는 단계;
    상기 물리 페이지 주소에 기초하여 상기 비휘발성 메모리의 데이터 영역에 저장된 데이터에 접근하는 단계; 및
    상기 접근 명령의 상기 논리 블록 주소 또는 상기 논리 페이지 주소를 채널의 수로 나눈 나머지에 기초하여 상기 접근 명령을 상기 비휘발성 메모리의 복수의 채널들 중 어느 하나에 할당하는 단계
    를 포함하는 메모리 장치의 동작 방법.
  17. 삭제
  18. 비휘발성 메모리 및 휘발성 램을 포함하는 메모리 장치의 가비지 콜렉션 방법에 있어서,
    상기 비휘발성 메모리의 가용 공간의 크기가 임계치 미만이면 상기 비휘발성 램에 저장된 상기 비휘발성 메모리의 복수의 블록들 각각의 상태 정보에 기초하여 상기 복수의 블록들 중 제1 블록을 선택하는 단계;
    상기 비휘발성 메모리의 하나 이상의 프리 블록 중 어느 하나를 제2 블록으로 선택하는 단계;
    상기 제1 블록에 저장된 데이터 중 유효한 데이터를 상기 제2 블록에 프로그램하는 단계; 및
    상기 제1 블록에 저장된 데이터 중 모든 유효한 데이터가 상기 제2 블록에 프로그램되었으면 상기 제1 블록을 소거하는 단계
    를 포함하는 메모리 장치의 가비지 콜렉션 방법.
  19. 제18항에 있어서,
    상기 제1 블록을 선택하는 단계는
    상기 복수의 블록들 중 유효한 페이지의 개수가 가장 작은 블록을 상기 제1 블록으로 선택하는 메모리 장치의 가비지 콜렉션 방법.
  20. 제11항, 제13항 내지 제16항, 제18항 및 제19항 중 어느 한 항의 방법을 실행하기 위한 프로그램이 기록되어 있는 것을 특징으로 하는 컴퓨터에서 판독 가능한 기록 매체.
KR1020080097061A 2008-10-02 2008-10-02 메모리 장치 및 메모리 장치의 동작 방법 KR101515525B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020080097061A KR101515525B1 (ko) 2008-10-02 2008-10-02 메모리 장치 및 메모리 장치의 동작 방법
US12/358,278 US9852061B2 (en) 2008-10-02 2009-01-23 Memory device and operating method of memory device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080097061A KR101515525B1 (ko) 2008-10-02 2008-10-02 메모리 장치 및 메모리 장치의 동작 방법

Publications (2)

Publication Number Publication Date
KR20100037789A KR20100037789A (ko) 2010-04-12
KR101515525B1 true KR101515525B1 (ko) 2015-04-28

Family

ID=42076707

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080097061A KR101515525B1 (ko) 2008-10-02 2008-10-02 메모리 장치 및 메모리 장치의 동작 방법

Country Status (2)

Country Link
US (1) US9852061B2 (ko)
KR (1) KR101515525B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10146474B2 (en) 2015-12-23 2018-12-04 SK Hynix Inc. Memory system and operating method of memory system

Families Citing this family (57)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4930556B2 (ja) * 2009-07-09 2012-05-16 富士通株式会社 退避処理装置、退避処理方法およびストレージシステム
EP2302636B1 (fr) 2009-09-21 2014-11-05 STMicroelectronics (Rousset) SAS Procédé de lecture d'une mémoire non volatile au moyen de métadonnées et d'une table de correspondance
US8234464B2 (en) * 2009-11-05 2012-07-31 International Business Machines Corporation Hybrid storage data migration by selective data removal
DE112011102487T5 (de) * 2010-07-27 2013-05-29 International Business Machines Corporation Zuordnen von logischen zu physischen Adressen in Halbleiterspeichereinheiten aufweisenden Speichersystemen
US8688926B2 (en) 2010-10-10 2014-04-01 Liqid Inc. Systems and methods for optimizing data storage among a plurality of solid state memory subsystems
US9684590B2 (en) 2010-10-25 2017-06-20 Seagate Technology Llc Storing corresponding data units in a common storage unit
US20120110239A1 (en) * 2010-10-27 2012-05-03 Seagate Technology Llc Causing Related Data to be Written Together to Non-Volatile, Solid State Memory
KR101717081B1 (ko) * 2011-03-23 2017-03-28 삼성전자주식회사 비휘발성 램과 휘발성 램을 버퍼 메모리로 사용하는 저장 장치
US9898402B2 (en) * 2011-07-01 2018-02-20 Micron Technology, Inc. Unaligned data coalescing
US8892828B2 (en) 2011-11-18 2014-11-18 Micron Technology, Inc. Apparatuses and methods for storing validity masks and operating apparatuses
KR101942275B1 (ko) 2012-04-18 2019-01-25 삼성전자주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
KR102107723B1 (ko) 2012-12-03 2020-05-07 삼성전자주식회사 메모리 컨트롤러 및 메모리 컨트롤러의 동작 방법
KR102060996B1 (ko) 2013-01-07 2020-02-11 삼성전자주식회사 단말기의 메모리 주소 및 데이터변환 장치 및 방법
US20140259023A1 (en) * 2013-03-07 2014-09-11 Seagate Technology Llc Adaptive vibration mitigation
CN104298606A (zh) * 2013-07-17 2015-01-21 光宝科技股份有限公司 固态存储装置中垃圾搜集动作的控制方法
KR102075358B1 (ko) 2013-11-11 2020-03-02 에스케이하이닉스 주식회사 데이터 저장 장치 및 그 동작 방법
US9678910B2 (en) 2014-04-25 2017-06-13 Liqid Inc. Power handling in a scalable storage system
US10467166B2 (en) 2014-04-25 2019-11-05 Liqid Inc. Stacked-device peripheral storage card
US9645902B2 (en) 2014-06-23 2017-05-09 Liqid Inc. Modular switched fabric for data storage systems
US10362107B2 (en) 2014-09-04 2019-07-23 Liqid Inc. Synchronization of storage transactions in clustered storage systems
US9653124B2 (en) 2014-09-04 2017-05-16 Liqid Inc. Dual-sided rackmount storage assembly
TWI519951B (zh) * 2014-11-03 2016-02-01 慧榮科技股份有限公司 資料儲存裝置以及快閃記憶體控制方法
US10949342B2 (en) 2015-01-09 2021-03-16 Hewlett Packard Enterprise Development Lp Persistent memory garbage collection
US10198183B2 (en) 2015-02-06 2019-02-05 Liqid Inc. Tunneling of storage operations between storage nodes
US10019388B2 (en) 2015-04-28 2018-07-10 Liqid Inc. Enhanced initialization for data storage assemblies
US10191691B2 (en) 2015-04-28 2019-01-29 Liqid Inc. Front-end quality of service differentiation in storage system operations
US10108422B2 (en) 2015-04-28 2018-10-23 Liqid Inc. Multi-thread network stack buffering of data frames
KR20170044780A (ko) * 2015-10-15 2017-04-26 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
WO2017088185A1 (zh) * 2015-11-27 2017-06-01 华为技术有限公司 一种存储设备存储数据的方法及存储设备
KR20170078315A (ko) 2015-12-29 2017-07-07 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
US10255215B2 (en) 2016-01-29 2019-04-09 Liqid Inc. Enhanced PCIe storage device form factors
US10545548B2 (en) * 2016-03-07 2020-01-28 Toshiba Memory Corporation Memory device and host device
KR102485397B1 (ko) 2016-03-17 2023-01-06 에스케이하이닉스 주식회사 메모리 시스템 및 그 동작 방법
KR102474937B1 (ko) * 2016-03-21 2022-12-07 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
CN109564558A (zh) 2016-06-10 2019-04-02 利奇得公司 数据存储系统中的多端口插入器架构
WO2018031939A1 (en) 2016-08-12 2018-02-15 Liqid Inc. Disaggregated fabric-switched computing units
US11294839B2 (en) 2016-08-12 2022-04-05 Liqid Inc. Emulated telemetry interfaces for fabric-coupled computing units
US11880326B2 (en) 2016-08-12 2024-01-23 Liqid Inc. Emulated telemetry interfaces for computing units
WO2018200761A1 (en) 2017-04-27 2018-11-01 Liqid Inc. Pcie fabric connectivity expansion card
US10795842B2 (en) 2017-05-08 2020-10-06 Liqid Inc. Fabric switched graphics modules within storage enclosures
KR20190116641A (ko) 2018-04-05 2019-10-15 성균관대학교산학협력단 가상화 시스템을 위한 저장 장치 및 그 동작 방법
US10660228B2 (en) 2018-08-03 2020-05-19 Liqid Inc. Peripheral storage card with offset slot alignment
EP3839954A4 (en) * 2018-10-16 2021-08-25 Huawei Technologies Co., Ltd. HYBRID STORAGE DEVICE AND ACCESS PROCESS
CN111125041A (zh) * 2018-10-31 2020-05-08 伊姆西Ip控股有限责任公司 数据读取方法、电子设备和计算机程序产品
US10585827B1 (en) 2019-02-05 2020-03-10 Liqid Inc. PCIe fabric enabled peer-to-peer communications
KR20210011216A (ko) 2019-07-22 2021-02-01 에스케이하이닉스 주식회사 메모리 시스템의 메타 데이터 관리 방법 및 장치
KR20200119059A (ko) * 2019-04-09 2020-10-19 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작방법
KR20210011176A (ko) 2019-07-22 2021-02-01 에스케이하이닉스 주식회사 메모리 시스템의 액세스 동작 방법 및 장치
KR20210011201A (ko) 2019-07-22 2021-02-01 에스케이하이닉스 주식회사 메모리 시스템 및 그의 온도 조절 방법
WO2020219807A1 (en) 2019-04-25 2020-10-29 Liqid Inc. Composed computing systems with converged and disaggregated component pool
US11256649B2 (en) 2019-04-25 2022-02-22 Liqid Inc. Machine templates for predetermined compute units
US11269716B2 (en) * 2019-05-13 2022-03-08 Microsoft Technology Licensing, Llc Self-healing operations for root corruption in a file system
CN110941580B (zh) * 2019-10-31 2021-07-27 苏州浪潮智能科技有限公司 读取信息的方法和串行小型计算机系统接口sas扩展器
US11288196B2 (en) * 2020-01-15 2022-03-29 EMC IP Holding Company LLC Efficient data read operation
CN113495681A (zh) * 2020-04-07 2021-10-12 杭州萤石软件有限公司 一种nand flash文件数据存取方法、装置及存储介质
JP2022038210A (ja) 2020-08-26 2022-03-10 キオクシア株式会社 メモリシステム及びメモリシステムの制御方法
US11442776B2 (en) 2020-12-11 2022-09-13 Liqid Inc. Execution job compute unit composition in computing clusters

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100771521B1 (ko) 2006-10-30 2007-10-30 삼성전자주식회사 멀티 레벨 셀을 포함하는 플래시 메모리 장치 및 그것의데이터 쓰기 방법
US7397686B2 (en) 2005-06-02 2008-07-08 Kabushiki Kaisha Toshiba Memory system combining flash EEPROM and FeRAM
US20080177937A1 (en) 2007-01-23 2008-07-24 Sony Corporation Storage apparatus, computer system, and method for managing storage apparatus

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5933847A (en) * 1995-09-28 1999-08-03 Canon Kabushiki Kaisha Selecting erase method based on type of power supply for flash EEPROM
KR100672996B1 (ko) 2005-02-07 2007-01-24 삼성전자주식회사 메타 데이터가 저장되는 에프램을 포함하는 메모리 장치
US20070033356A1 (en) * 2005-08-03 2007-02-08 Boris Erlikhman System for Enabling Secure and Automatic Data Backup and Instant Recovery
WO2007058617A1 (en) * 2005-11-17 2007-05-24 Chee Keng Chang A controller for non-volatile memories, and methods of operating the memory controller
JP2008040585A (ja) * 2006-08-02 2008-02-21 Renesas Technology Corp マイクロコンピュータ
US7660911B2 (en) * 2006-12-20 2010-02-09 Smart Modular Technologies, Inc. Block-based data striping to flash memory
US8296498B2 (en) * 2007-11-13 2012-10-23 Sandisk Technologies Inc. Method and system for virtual fast access non-volatile RAM
US7925822B2 (en) * 2008-01-31 2011-04-12 Sandisk Il Ltd Erase count recovery
JP2010026873A (ja) * 2008-07-22 2010-02-04 Hitachi Ltd ストレージ装置及びその制御方法
US7941591B2 (en) * 2008-07-28 2011-05-10 CacheIQ, Inc. Flash DIMM in a standalone cache appliance system and methodology
US8904083B2 (en) * 2008-07-30 2014-12-02 Infineon Technologies Ag Method and apparatus for storing data in solid state memory

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7397686B2 (en) 2005-06-02 2008-07-08 Kabushiki Kaisha Toshiba Memory system combining flash EEPROM and FeRAM
KR100771521B1 (ko) 2006-10-30 2007-10-30 삼성전자주식회사 멀티 레벨 셀을 포함하는 플래시 메모리 장치 및 그것의데이터 쓰기 방법
US20080177937A1 (en) 2007-01-23 2008-07-24 Sony Corporation Storage apparatus, computer system, and method for managing storage apparatus

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10146474B2 (en) 2015-12-23 2018-12-04 SK Hynix Inc. Memory system and operating method of memory system

Also Published As

Publication number Publication date
KR20100037789A (ko) 2010-04-12
US20100088467A1 (en) 2010-04-08
US9852061B2 (en) 2017-12-26

Similar Documents

Publication Publication Date Title
KR101515525B1 (ko) 메모리 장치 및 메모리 장치의 동작 방법
US11507500B2 (en) Storage system having a host directly manage physical data locations of storage device
KR100965051B1 (ko) 플래시 메모리 장치를 위한 가변 공간 페이지 사상 방법 및그 장치
KR101888074B1 (ko) 저장 장치 및 불휘발성 메모리 장치, 그리고 그것의 동작 방법
US9697116B2 (en) Storage system and writing method thereof
KR101717081B1 (ko) 비휘발성 램과 휘발성 램을 버퍼 메모리로 사용하는 저장 장치
KR20200064499A (ko) 메모리 시스템 및 메모리 시스템의 동작방법
KR101734200B1 (ko) 적응적 머지를 수행하는 메모리 시스템 및 그것의 데이터 쓰기 방법
US10503653B2 (en) Memory system
KR101466585B1 (ko) 메모리 장치 및 메모리 장치의 관리 방법
US20050174849A1 (en) Method of remapping flash memory
KR101581679B1 (ko) 저장 장치 및 저장 장치의 버퍼 메모리 관리 방법
EP2665065A2 (en) Electronic device employing flash memory
US20100125694A1 (en) Memory device and management method of memory device
KR102603070B1 (ko) 메모리 시스템, 메모리 시스템에 데이터를 기록하는 방법 및 메모리 시스템으로부터 데이터를 판독하는 방법
US20100211820A1 (en) Method of managing non-volatile memory device and memory system including the same
US9292435B2 (en) Memory device and method of operation
KR20100114381A (ko) 동작 수행 중 다른 요청을 우선 처리할 수 있는 비휘발성 메모리 컨트롤러, 이를 포함하는 시스템 및 그 관리 방법
KR20120128978A (ko) 데이터 저장 장치 및 그것의 데이터 관리 방법
KR20140099737A (ko) 존-기반 조각모음 방법 및 그것을 이용한 유저 장치
KR20170109133A (ko) 하이브리드 메모리 장치 및 그의 데이터 관리 방법
CN114442914B (zh) 存储器系统
KR20200019421A (ko) 메모리 시스템 내 대용량 데이터 저장이 가능한 블록에서의 유효 데이터 체크 방법 및 장치
KR101430637B1 (ko) 불휘발성 메모리 장치 및 그것의 데이터 관리 방법
KR20200132047A (ko) 메모리 시스템에서 맵 데이터를 전송하는 방법 및 장치

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20180321

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190319

Year of fee payment: 5