KR102147359B1 - 비휘발성 메모리 장치의 관리 방법 및 비휘발성 메모리 장치 - Google Patents

비휘발성 메모리 장치의 관리 방법 및 비휘발성 메모리 장치 Download PDF

Info

Publication number
KR102147359B1
KR102147359B1 KR1020120071372A KR20120071372A KR102147359B1 KR 102147359 B1 KR102147359 B1 KR 102147359B1 KR 1020120071372 A KR1020120071372 A KR 1020120071372A KR 20120071372 A KR20120071372 A KR 20120071372A KR 102147359 B1 KR102147359 B1 KR 102147359B1
Authority
KR
South Korea
Prior art keywords
block
data
free
blocks
area
Prior art date
Application number
KR1020120071372A
Other languages
English (en)
Other versions
KR20140003892A (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 KR1020120071372A priority Critical patent/KR102147359B1/ko
Priority to US13/786,501 priority patent/US9805799B2/en
Publication of KR20140003892A publication Critical patent/KR20140003892A/ko
Application granted granted Critical
Publication of KR102147359B1 publication Critical patent/KR102147359B1/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
    • G11C16/10Programming or data input circuits
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • 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/0253Garbage collection, i.e. reclamation of unreferenced memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • G06F2212/1036Life time enhancement
    • 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/7208Multiple device management, e.g. distributing data over multiple flash devices
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2207/00Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
    • G11C2207/22Control and timing of internal memory operations
    • G11C2207/2236Copy
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/564Miscellaneous aspects
    • G11C2211/5641Multilevel memory having cells with different number of storage levels

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)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)

Abstract

비활성 메모리 장치를 관리하는 방법 및 상기 방법을 수행하는 프로세서를 구비하는 비휘발성 메모리 장치가 개시된다. 본 발명에 따른 비휘발성 메모리 장치를 관리하는 방법은 1개 비트의 데이터를 저장하는 셀을 포함하는 제1 영역 및 2개 이상의 비트의 데이터를 저장하는 셀을 포함하는 제2 영역을 구비하는 비휘발성 메모리에서 데이터가 기록되어 있지 않은 프리 블록을 생성하는 방법에 관한 것이다. 본 발명의 일실시예에 따른 비휘발성 메모리 관리 방법은, 제1 영역의 블록들 사이에 데이터를 복사하여 프리 블록을 생성할 수 없는지를 판단하고, 제1 영역의 블록들에 저장된 데이터의 상태에 기초하여 제1 영역에 속하는 적어도 하나의 블록을 선택하고, 선택된 블록으로부터 제2 영역으로 데이터를 복사하여 프리 블록을 할당할 수 있다.

Description

비휘발성 메모리 장치의 관리 방법 및 비휘발성 메모리 장치{Method for managing non-volatile memory device, and non-volatile memory device}
본 발명은 비휘발성(non-volatile) 메모리 장치의 관리 방법에 관한 것으로, 자세하게는 비휘발성 메모리에서 가비지 수집(Garbage Collection)을 수행하는 방법 및 가비지 수집을 수행하는 비휘발성 메모리 장치에 관한 것이다.
비휘발성 메모리 장치는 전원이 차단되어도 저장하고 있는 데이터를 유지하는 메모리 장치의 종류를 말한다. 비휘발성 메모리 장치로서 플래시(flash) 메모리는 전기적으로 데이터를 기록하거나 삭제가 가능한 메모리이고, NAND 플래시 메모리는 플래시 메모리의 일예이다.
외부로부터 데이터 기록 요청이 수신되면, 플래시 메모리는 기존에 저장되어 있는 데이터를 새로운 데이터로 변경하는 것이 아니라, 비어있는 저장공간에 새로운 데이터를 저장한다. 이에 따라, 플래시 메모리 자원을 효율적으로 관리할 수 있는 방법이 필요로 된다.
본 발명은 비휘발성 메모리 장치 및 그 관리 방법에 관한 것으로서, 복수 비트의 데이터를 저장할 수 있는 셀을 포함하는 비휘발성 메모리에 대하여 새로운 데이터를 저장할 수 있는 영역을 효율적으로 확보하기 위한 장치 및 방법을 제공하는 것을 목적으로 한다.
상기와 같은 목적을 달성하기 위하여, 본 발명의 일실시예에 따라 비휘발성 메모리를 관리하는 방법에 있어서, 상기 비휘발성 메모리는 셀당 1비트의 데이터를 저장하는 제1 영역과 셀당 2비트 이상의 데이터를 저장하는 제2 영역을 포함하고, 상기 제1 영역에 속하는 블록들 사이에 데이터를 복사하여 프리(free) 블록을 생성하는 단계, 상기 제1 영역의 블록들의 데이터 저장 상태에 기초하여 상기 제1 영역의 블록들 중 적어도 하나의 블록을 선택하는 단계 및 상기 제1 영역의 선택된 블록에 저장된 데이터를 상기 제2 영역으로 복사하여 상기 선택된 블록을 프리블록으로 할당하는 단계를 포함하는 비휘발성 메모리 관리 방법이 개시된다.
한편, 본 발명의 일실시예에 따른 비휘발성 메모리 장치는, 셀당 1비트의 데이터를 저장하는 제1 영역과 셀당 제2비트 이상의 데이터를 저장하는 제2 영역을 구비하는 비휘발성 메모리 및 상기 제1 영역의 블록들 사이의 데이터 복사에 의하여 프리 블록을 생성하고, 상기 제1 영역의 블록들의 데이터 자장 상태에 기초하여 선택된 적어도 하나의 블록을 프리 블록으로 할당하는 동작을 관리하는 프로세서를 구비하는 것을 특징으로 한다.
상기와 같은 비휘발성 메모리 장치 및 그 관리 방법에 따르면, 프리블록 생성시 복수 비트의 데이터를 저장하는 셀을 포함하는 블록에 대하여 데이터를 기록하거나 소거하는 동작 횟수를 감소시킬 수 있으므로, 비휘발성 메모리 장치의 성능을 향상시킬 수 있다.
도 1은 플래시 메모리가 포함하는 셀의 종류에 따른 문턱 전압(threshold voltage)의 분포를 나타낸다.
도 2는 플래시 메모리 장치가 포함하는 셀 어레이의 일예를 나타낸다.
도 3은 SLC 블록의 일예를 나타낸다.
도 4는 본 발명의 일실시예에 따른 플래시 메모리 장치의 관리 방법을 나타내는 플로우 차트이다.
도 5는 본 발명의 일실시예에 따라 SLC 블록들 사이에 데이터를 복사하여 프리 블록을 생성하는 동작의 예를 나타내는 도면이다.
도 6은 본 발명의 다른 실시예에 따라 SLC 블록들 사이에 데이터를 복사하여 프리 블록을 생성하는 동작의 예들을 나타내는 도면이다.
도 7은 본 발명의 일실시예에 따라 SLC 블록 및 TLC 블록을 사용하여 프리 블록을 할당하는 동작을 나타낸다.
도 8은 본 발명의 일 실시예에 따라 TLC 블록으로 복사할 데이터를 저장하는 SLC 블록을 선정하는 동작을 나타낸다.
도 9는 본 발명의 일실시예에 따른 비휘발성 메모리 장치를 나타내는 블록도이다.
도 10은 본 발명의 일실시예에 따라 플래시 메모리 장치를 관리하는 FTL(flash translation layer)의 구조를 나타내는 블록도이다.
도 11은 본 발명의 일실시예에 따른 비휘발성 메모리 장치를 장착하는 컴퓨팅 시스템을 나타내는 블록도이다.
도 12는 본 발명의 일실시예에 따른 메모리 카드를 나타내는 도면이다.
도 13은 본 발명의 일실시예에 따른 비휘발성 메모리 장치를 나타내는 구조도이다.
이하에서는 본 발명의 바람직한 실시예가, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 본 발명의 철저한 이해를 제공할 의도 외에는 다른 의도 없이, 첨부한 도면들을 참조로 하여 상세히 설명될 것이다.
비휘발성 메모리(NVM, Non-Volatile Memory)로서 플래시 메모리는 셀(cell)의 물리적인 특성으로 인하여 덮어쓰기(overwrite) 동작이 불가능하다. 따라서 플래시 메모리가 외부로부터 새로운 데이터를 기록하는 명령을 받는 경우, 효율적으로 플래시 메모리를 활용하기 위해서 기존 데이터를 소거 후 새로운 데이터를 기록하는 대신에 비어있는 저장 공간에 새로운 데이터를 기록하는 동작을 수행할 수 있다. 이러한 동작은 플래시 메모리를 관리하는 컨트롤러가 수행할 수 있으며, 더 구체적으로 FTL(Flash Translation Layer)이라고 하는 소프트웨어 상에서 구현될 수 있다. FTL은 앞서 설명한 동작 외에도 ECC(Error Correction Code)와 같은 동작을 더 포함할 수 있다.
또한, 컨트롤러는 반도체 공정 기술의 발달로 인하여 플래시 메모리의 집적도가 증가함에 따라 발생하는 셀 커플링(cell coupling) 현상 등의 문제를 해소하기 위한 동작을 수행할 수 있다. 즉, 컨트롤러는 기록할 데이터를 별도의 저장 공간에 임시로 저장하고 데이터를 수집한 이후에 원래 저장될 위치로 복사하는 동작을 수행할 수 있고, 이를 재기록 방식(reprogram scheme)이라고 한다. 이와 같은 동작은 SD 카드와 같은 플래시 메모리 제품에서 내장형(embedded) 소프트웨어로서 존재하는 FTL 상에서 수행될 수 있다.
도 1은 플래시 메모리가 포함하는 셀의 종류에 따른 문턱 전압(threshold voltage)의 분포를 나타낸다. 플래시 메모리의 셀은 트랜지스터를 포함하고, 트랜지스터의 플로팅 게이트(floating gate)에 전자를 투입시키거나 제거시킴으로써 문턱 전압을 변경할 수 있다. 셀에 저장되는 데이터에 대응하여 문턱 전압이 변경되거나 유지되고, 상기 문턱 전압으로부터 셀에 저장된 데이터를 읽을 수 있다.
일반적으로 SLC(single level cell)는 1 비트의 데이터를 저장할 수 있는 반면에, 트랜지스터의 서로 다른 값을 갖는 문턱 전압의 수를 증가시킴으로써 하나의 셀에 복수 비트의 데이터를 저장할 수 있다. 예컨대, 2 비트의 데이터를 저장할 수 있는 MLC(multi level cell), 3 비트의 데이터를 저장할 수 있는 TLC(triple level cell) 및 4 비트의 데이터를 저장할 수 있는 QLC(quadruple level cell) 등이 있고, 이외에도 반도체 공정 기술의 발달에 따라 더 많은 비트의 데이터를 저장하는 셀이 플래시 메모리에 사용될 수 있다. 이처럼 2개 이상의 비트의 데이터를 저장할 수 있는 셀을 가리켜 NSLC(non-single level cell)라고 정의할 수 있으며, NSLC로 인하여 플래시 메모리의 저장용량은 증가할 수 있다.
NSLC를 포함하는 플래시 메모리의 장점은 반도체 공정의 복잡도를 증가시키지 않으면서 저장용량을 증가시킬 수 있는 데 있다. 다만, 이를 위해서는 전하의 분포가 겹치지 않으면서 서로 다른 전하 레벨을 검출할 수 있도록 문턱 전압을 정확한 값으로 설정하는 것이 필요할 뿐만 아니라 정확하게 데이터를 기록하고 독출하는데 보다 긴 시간이 소요될 수 있다.
도 1은 SLC, MLC, TLC 및 QLC에서 문턱전압의 분포를 나타낸다. 도 1의 (a)에 도시된 바와 같이 SLC는 2개의 문턱전압의 분포를 가질 수 있으며, 이에 따라“0” 또는 “1”을 저장하여 1 비트의 데이터를 저장할 수 있다. 도 1의 (b)에 도시된 바와 같이 MLC는 4개의 서로 다른 문턱전압에 의해서 4가지 상태로 존재할 수 있고, 이에 대응하여 “00” 내지 “11”을 저장함으로써 2 비트의 데이터를 저장할 수 있다. 마찬가지로 도 1의 (c) 및 (d)에 도시된 바와 같이 TLC 및 QLC는 서로 다른 문턱전압을 각각 8개 및 16개를 가질 수 있고, 이에 대응하여 각각 3 및 4 비트의 데이터를 저장할 수 있다. 이하의 설명에서는, NSLC가 TLC인 것으로 가정하지만, TLC 외 복수의 비트의 데이터를 저장하는 셀을 포함하는 플래시 메모리에 대하여 본 발명이 적용될 수 있음은 자명하다.
도 2는 플래시 메모리 장치가 포함하는 셀 어레이의 일예를 나타낸다. 앞에서 언급한 바와 같이, 컨트롤러는 비어있는 저장 공간에 데이터를 기록, 복사 및 소거함으로써 플래시 메모리 장치를 관리할 수 있다. 상기 셀 어레이는 다양한 형태로 구현될 수 있으며, 예컨대 셀 어레이는 플래시 타입의 셀 어레이 이외에도 DRAM 또는 SRAM 등의 메모리를 더 포함할 수 있다. 상기 셀 어레이가 플래시 타입의 셀 어레이로 구현되는 경우, 셀 어레이는 셀당 1 비트의 데이터를 저장하는 제1 영역(110)과 셀당 2 비트 이상의 데이터를 저장하는 제2 영역(120)을 포함할 수 있다. 예컨대, 도 2는 제1 영역(110)이 SLC를 포함하고, 제2 영역(120)이 셀 당 3 비트의 데이터를 저장하는 TLC를 포함하는 셀 어레이(100)의 예를 나타낸다. 제1 영역(110) 및 제2 영역(120)은 모두 플래시 타입의 셀 어레이로서, 기록 및 독출 등 엑세스 동작은 페이지 단위로 수행되는 반면, 데이터의 소거는 블록 단위로 수행된다. 제1 영역(110)과 제2 영역(120)이 포함하는 블록을 각각 SLC 블록 및 TLC 블록이라고 한다. 도 1에서 언급한 바와 같이, TLC는 3개의 비트의 데이터를 저장할 수 있으므로, 3개의 SLC에 저장된 데이터가 하나의 TLC에 복사될 수 있다.
도 3은 SLC 블록의 일예를 나타낸다. 플래시 메모리 장치가 외부로부터 같은 주소에 대하여 반복적으로 새로운 데이터를 기록하는 요청을 받는 경우, 컨트롤러는 비어있는 페이지에 새로운 데이터를 기록하는 동시에 상기 페이지에 대한 위치정보를 상기 주소에 대응하도록 하고, 종래의 데이터를 저장하고 있던 페이지는 더 이상 유효하지 않은 페이지로서 관리할 수 있다. 상기에서 새로운 데이터를 유효 데이터(valid data) 및 유효 데이터를 저장하는 페이지를 유효 페이지(valid page)라고 하고, 종래의 데이터를 무효 데이터(invalid data) 및 무효 데이터를 저장하고 있는 페이지를 무효 페이지(invalid page)라고 한다. 또한, 데이터가 저장되어 있지 않아서 새로운 데이터의 기록이 가능한 페이지를 프리 페이지(free page)라고 한다.
도 3에 도시된 바와 같이, 하나의 SLC 블록(1000)은 복수의 페이지를 포함할 수 있고, 각각의 페이지는 유효 페이지, 무효 페이지 및 프리 페이지 중 어느 하나일 수 있다. 또한, 도 2의 제1 영역(110)은 도 3에 도시된 바와 같은 SLC 블록(1000)을 적어도 하나 포함할 수 있다. 같은 위치의 페이지에 대하여 새로운 데이터를 기록하는 동작이 빈번하게 발생할 수록 무효 페이지의 수는 증가하고 프리 페이지의 수는 감소할 수 있다. 또한, 컨트롤러는 SLC 블록(1000)에 포함된 프리 페이지가 부족한 경우, 프리 페이지가 존재하는 다른 SLC 블록에 데이터를 저장하는 동작을 수행할 수 있다. 특히, SLC 블록 가운데 프리 페이지만을 포함하는 블록을 프리 블록(free block)이라고 하고, 컨트롤러는 프리 블록에 대하여 데이터를 저장할 수 있다.
호스트가 플래시 메모리 장치에 데이터를 기록할 수록 프리 블록이 소모되고, 플래시 메모리 장치의 저장공간은 유한하므로, 하나 이상의 블록이 포함하는 유효 페이지에 저장된 유효 데이터를 다른 블록으로 복사한 후, 원래의 데이터를 저장하는 블록을 소거시키는 동작을 통해서 프리 블록을 생성하거나 할당하는 동작이 필요하다. 이러한 동작을 가비지 수집(garbage collection)이라고 하며, 컨트롤러가 수행하는 여러 동작 중 하나이다.
도 4는 본 발명의 일실시예에 따른 플래시 메모리 장치의 관리 방법을 나타내는 플로우 차트이다. 상기 플래시 메모리 장치는, 플래시 메모리 셀을 포함하는 셀 어레이, 플래시 메모리 장치 및 플래시 메모리 시스템 등을 포함하는 개념일 수 있다.
플래시 메모리 장치에서 프리 블록이 필요한 상황이 발생하면, 컨트롤러는 먼저 SLC 블록들 사이에 데이터를 복사하여 프리 블록의 생성을 시도한다(S11). 프리 블록이 필요한 경우는 미리 정해진 조건에 따라 결정될 수 있다. 예컨대, 프리 블록이 일정한 개수 이하로 감소하는 경우 또는 더 이상 프리 블록이 존재하지 않는 경우에 프리 블록이 필요할 수 있다. 이외에도, 컨트롤러는 외부로부터 플래시 메모리 장치에 대한 엑세스가 없는 IDLE 상태인 경우에 프리 블록을 미리 할당할 수 있다. SLC 블록들 사이에 데이터를 복사하여 프리 블록을 생성하는 구체적인 방법은 후술한다.
컨트롤러는 SLC 블록들 사이에 데이터를 복사하여 프리 블록을 생성할 수 없는지를 판단한다(S12). 예컨대, 컨트롤러는 유효 페이지를 포함하는 제1 SLC 블록 및 프리 페이지를 포함하는 제2 SLC 블록을 선정할 수 있다. 컨트롤러는 제1 SLC 블록의 유효 페이지들에 저장된 전체 유효 데이터를 제2 SLC 블록의 프리 페이지들로 복사할 수 있다. 이때, 상기 제1 SLC 블록 또는 제2 SLC 블록을 선정할 수 없는 경우가 발생할 수 있다. 예를 들면, 상기 제1 SLC 블록의 유효 페이지 개수 이상의 프리 페이지를 가지는 SLC 블록이 존재하지 않는다면 컨트롤러는 제2 SLC 블록을 선정할 수 없다.
이와 같이 제1 SLC 블록 또는 제2 SLC 블록을 선정할 수 없는 경우, 컨트롤러는 SLC 블록에 저장된 유효 데이터를 TLC 블록으로 복사하는 동작을 수행하도록 결정할 수 있다. 즉, 컨트롤러는 SLC 블록들 사이에서 유효 데이터의 복사를 통해 프리 블록을 할당할 수 없는 경우에만 SLC 블록에서 TLC 블록으로 유효 데이터를 복사하는 동작을 수행함으로써, SLC 블록에서 TLC 블록으로 데이터를 복사하는 동작보다 SLC 블록들 사이에 유효 데이터를 복사하는 동작에 대하여 우선순위를 둘 수 있다.
만약 SLC 블록들 사이에서 데이터를 복사하여 프리 블록을 생성하는 것이 가능함에도 불구하고 SLC 블록에서 TLC 블록으로 유효 데이터를 복사하는 경우(예를 들면, SLC 블록들 중에서 최소의 유효 페이지를 포함하는 SLC 블록에 대하여 상기 SLC 블록이 저장하고 있는 유효 데이터를 TLC 블록으로 복사하는 경우), TLC 블록이 빠른 속도로 소진될 수 있고, 그 결과 TLC 블록들 사이에 가비지 수집(garbage collection) 동작을 유발시킬 수 있다. TLC 블록들 사이에 유효 데이터를 복사하는 동작은 SLC 블록들 사이의 동작보다 긴 시간이 소요되어 플래시 메모리 장치의 전체 성능에 영향을 미칠 수 있다. 따라서 본 발명의 실시예와 같이, SLC 블록들 사이에 유효 데이터를 이동시키는 동작에 우선순위를 두어 SLC 블록과 TLC 블록 사이의 유효 데이터 복사 동작, 그리고 TLC 블록들 사이에 가비지 수집 동작을 최소화 시킴으로써 플래시 메모리 장치의 전체 성능 향상을 도모할 수 있다.
SLC 블록들 사이에 데이터를 복사하여 프리 블록의 생성이 불가능한 경우, 컨트롤러는 SLC 블록들의 데이터 저장 상태에 기초하여 TLC 블록으로 복사할 데이터를 저장하는 적어도 하나의 SLC 블록을 선택할 수 있다(S13). 본 발명의 일실시예에 따라서, 컨트롤러는 SLC 블록 중 최소의 프리 페이지를 갖는 SLC 블록을 선택할 수 있다. SLC 블록을 선택하는 동작에 대한 구체적인 내용은 후술한다.
SLC 블록이 저장하고 있는 유효 데이터가 TLC 블록으로 복사되면, 상기 SLC 블록이 저장하고 있는 유효 데이터는 중복되는 데이터로서 불필요하게 된다. 이에 따라 상기 SLC 블록은 무효 페이지 및/또는 중복된 유효 페이지만을 포함하게 되어, 컨트롤러는 상기 SLC 블록을 소거할 수 있다. SLC 블록은 소거된 후에 프리 페이지만을 포함하게 되고, 그 결과 프리 블록으로 할당될 수 있다(S14).
도 5 및 6은 본 발명의 각 실시예에 따라 SLC 블록들 사이에 데이터를 복사하여 프리 블록을 생성하는 동작의 예들을 나타내는 도면이다. 하나 또는 복수의 SLC 블록에 저장된 유효 데이터가 다른 SLC 블록으로 복사될 수 있으며, 또한 다른 SLC 블록으로부터 유효 데이터를 받아 저장하는 SLC 블록은 하나 이상의 프리 페이지를 포함할 수 있으며, 또는 프리 페이지만을 포함하는 프리 블록일 수 있다. 도 5 및 6에서는 셀 어레이가 TLC 블록 및 SLC 블록을 포함하는 예가 도시되며, 플래시 메모리 장치의 외부에서 호스트가 인식하는 데이터의 저장 단위가 유닛(101)으로 정의될 수 있다. 도 5 에 도시된 바와 같이 1개의 유닛(101)은 TLC 블록 및 SLC 블록을 포함할 수 있다.
도 5는 본 발명의 일실시예에 따라 SLC 블록들 사이에 데이터를 복사하여 프리 블록을 생성하는 동작의 예를 나타내는 도면이다. 도 5에 도시된 바와 같이 제1 SLC 블록(1010)은 2개의 유효 페이지를 포함하고, 제2 SLC 블록(1020)은 3개의 유효 페이지 및 3개의 프리 페이지를 포함한다. 컨트롤러는 상기 제1 SLC 블록(1010)에서 2개의 유효 페이지에 저장된 유효 데이터를 제2 SLC 블록(1020)의 프리 페이지에 복사할 수 있다. 그 결과 제2 SLC 블록(1020)은 총 5개의 유효 페이지 및 1개의 프리 페이지를 포함하고, 제1 SLC 블록(1010)은 소거 동작을 거쳐 프리 블록이 될 수 있다. 컨트롤러는 제1 SLC 블록(1010) 및 제2 SLC 블록(1020)을 선정할 때, 프리 페이지 및 유효 페이지 수를 비교할 수 있고, 본 실시예에서 제2 SLC 블록(1020)의 프리 페이지 수는 제1 SLC 블록(1010)의 유효 페이지 수 이상이다. 컨트롤러는 제2 SLC 블록(1020)의 선정 확률을 높이고 유효 데이터를 복사하는 동작을 최소화하기 위해서, 유닛(101)에 포함된 다수의 SLC 블록들 중 유효 페이지의 수가 최소인 블록을 제1 SLC 블록(1010)으로 선정할 수 있다.
도 6은 본 발명의 다른 실시예에 따라 SLC 블록들 사이에 데이터를 복사하여 프리 블록을 생성하는 동작의 예들을 나타내는 도면이다. 도 6에 도시된 바와 같이, 3개의 SLC 블록들 가운데 제1 SLC 블록(1110) 및 제2 SLC 블록(1120)이 저장하고 있는 유효 데이터가 제3 SLC 블록(1130)으로 복사될 수 있다. 제1 SLC 블록(1110) 및 제2 SLC 블록(1120)은 총 7개의 유효 페이지를 포함하고 있으며, 제3 SLC 블록(1130)은 프리 페이지만을 포함하는 프리 블록이다. 도 6에 도시되지 않았지만 제3 SLC 블록(1130)은 유효 페이지 또는 무효 페이지를 포함할 수 있다.
컨트롤러는 제1 SLC 블록(1110) 및 제2 SLC 블록(1120)에서 7개의 유효 페이지에 저장된 유효 데이터를 제3 SLC 블록(1130)이 포함하는 프리 페이지에 복사할 수 있다. 이후 제3 SLC 블록(1130)은 총 7개의 유효 페이지 및 3개의 프리 페이지를 포함하고, 제1 SLC 블록(1110) 및 제2 SLC 블록(1120)은 소거 동작을 거쳐 각각 프리 블록이 될 수 있다. 즉, 본 실시예에서 컨트롤러는 1개의 프리 블록을 소비하여 2개의 프리 블록들을 생성할 수 있다. 이 때, 컨트롤러는 제1 SLC 블록(1110), 제2 SLC 블록(1120) 및 제3 SLC 블록(1130)을 선정할 때 유효 페이지 및 프리 페이지를 비교할 수 있고, 본 실시예에서 제1 SLC 블록(1110) 및 제2 SLC 블록(1120)이 포함하는 유효 페이지의 수는 제3 SLC 블록(1130)이 포함하는 프리 페이지의 수 이하이다. 컨트롤러는 SLC 블록 가운데 유효 페이지의 수가 최소인 것을 제1 SLC 블록으로 설정하고, 제1 SLC 블록을 제외한 SLC 블록 가운데 유효 페이지의 수가 최소인 것을 제2 SLC 블록으로 설정할 수 있다. 도 6에 도시되지 않았지만, 실시예에 따라서 복사되는 유효 데이터를 저장하는 SLC 블록은 3개 이상일 수 있다.
도 7은 본 발명의 일실시예에 따라 SLC 블록 및 TLC 블록을 사용하여 프리 블록을 할당하는 동작을 나타낸다. 컨트롤러는 SLC 블록들 사이에 유효 데이터를 복사하여 프리 블록을 선정할 수 없는 경우, SLC 블록에서 TLC 블록으로 유효 데이터를 복사함으로써 적어도 하나의 SLC 블록을 프리 블록으로 할당할 수 있다. 이 때, 컨트롤러는 TLC 블록으로 복사할 유효 데이터를 저장하는 SLC 블록을 선정할 수 있다. 도 7에 도시된 바와 같이 SLC 블록은 유닛에 속해있고, 같은 유닛에 속한 TLC 블록 및 SLC 블록 사이에 유효 데이터를 복사하는 동작이 수행될 수 있다. 따라서 SLC 블록을 선정하는 것은 SLC 블록이 속하는 유닛을 선정하는 것을 의미할 수 있고, 이 때 선정된 유닛을 희생(victim) 유닛이라고 한다.
도 7에 도시된 바와 같이 3개의 유닛이 플래시 메모리 장치에 존재하는 경우, 프리 블록이 필요한 조건이 충족되어 컨트롤러에 의해서 희생 유닛이 선정될 수 있다. 본 발명의 일실시예에 따라서 컨트롤러는 각 유닛이 포함하는 SLC 블록의 프리 페이지 수가 최소인 것을 희생 유닛으로 선정할 수 있다. 예컨대, 도 7에서 제1 유닛(103), 제2 유닛(104) 및 제3 유닛(105)의 SLC 블록들은 각각 2개, 9개 및 7개의 프리 페이지를 포함하고, 이 때 최소의 프리 페이지를 포함하는 SLC 블록이 속한 제1 유닛(103)이 희생 유닛으로 선정될 수 있다.
컨트롤러가 유효 데이터를 복사하는 동작을 최소화하기 위하여 유효 페이지의 수가 최소인 블록인 제2 유닛(104)을 선정하는 것 보다, 본 발명의 실시예와 같이 제1 유닛(103)을 선정하는 것이 효율적일 수 있다. 왜냐하면, 제2 유닛(104)과 같이 SLC 블록이 유효 페이지 수가 최소이면서 동시에 프리 페이지 수가 많다면 새로운 데이터를 저장할 공간이 충분함에도 불구하고 미리 프리 블록으로 할당되기 때문이다. 즉, 유효 페이지가 최소인 유닛을 선정하기 보다 본 발명의 실시예와 같이 프리 페이지가 부족하여 추후에 프리 블록이 필요할 수 있는 확률이 높은 제1 유닛(103)을 선정하여 제1 유닛(103)에 포함된 SLC 블록들을 프리 블록으로 할당하는 것이 효율적일 수 있다.
본 발명의 일실시예에 따라서 도 7에 도시된 제1 유닛(103)이 희생 유닛으로 선정된 경우, 도 7에 도시된 바와 같이 컨트롤러는 제1 유닛(103)에 속하는 SLC 블록들에서 유효 페이지에 저장된 유효 데이터를 TLC 블록으로 복사할 수 있고, 제1 유닛(103)에 속하는 SLC 블록들은 소거 후에 프리 블록들로 할당된다. 상기 프리 블록들은 플래시 메모리 장치가 포함하는 모든 유닛들을 위하여 사용될 수 있다.
도 8은 본 발명의 일 실시예에 따라 TLC 블록으로 복사할 데이터를 저장하는 SLC 블록을 선정하는 동작을 나타낸다. 앞서 설명한 SLC 블록사이에 데이터를 복사하여 프리 블록을 생성하는 동작이 희생 유닛을 선정하는 동작에 영향을 줄 수 있다. 예컨대, 도 8에서 제1 유닛(106), 제2 유닛(107) 및 제3 유닛(108)의 SLC 블록들은 각각 2개, 1개 및 7개의 프리 페이지를 포함한다. 도 7에서 설명한 실시예에 따르면 최소의 프리 페이지를 포함하는 SLC 블록들 사이에 데이터를 복사하여 프리 블록을 생성하는 동작을 고려할 때, 제2 유닛(107)은 1개의 SLC 블록만을 포함하고 있기 때문에, 제2 유닛(107)은 SLC 블록의 데이터 저장상태를 고러할 필요 없이 SLC 블록 사이에 데이터를 복사하여 프리 블록을 생성할 수 없다. 본 발명의 일실시예에 따라서, 제2 유닛(107)은 최소 개수의 프리 페이지를 포함하는 SLC 블록을 포함함에도 불구하고, 컨트롤러는 제1 유닛(106) 및 제3 유닛(108) 중에서 희생 유닛을 선정할 수 있다. 이에 따라, 제1 유닛(106) 및 제3 유닛(108) 중에서 프리 페이지의 수가 적은 제1 유닛(106)이 희생 유닛으로 선정될 수 있고, 도 7에서 도시된 바와 같은 방식으로, 컨트롤러는 제1 유닛(106)의 SLC 블록들에 저장된 유효 데이터를 TLC 블록으로 복사한 다음 소거 동작을 거쳐 SLC 블록들을 프리 블록으로 할당할 수 있다.
도 9는 본 발명의 일실시예에 따른 비휘발성 메모리 장치를 나타내는 블록도이다. 비휘발성 메모리 장치(3000)는 외부 호스트와 통신하여 데이터를 기록, 저장 및 독출하는 기능을 수행한다. 앞에서 설명되었던 비휘발성 메모리 장치를 관리하는 방법들에 대한 다수의 실시예들 중 적어도 하나의 방법이 비휘발성 메모리 장치(3000)에서 수행될 수 있다. 본 발명의 일실시예에 따른 비휘발성 메모리 장치(3000)는 데이터를 저장하는 비휘발성 셀 어레이(3100), 프로그램이 저장되어 있는 ROM(3220), 상기 프로그램을 수행하여 비휘발성 메모리 장치를 관리하는 프로세서(3210) 및 외부 호스트와 신호를 송수신하는 호스트 인터페이스(3230)을 포함할 수 있다. 비휘발성 셀 어레이(3100)를 관리하는 컨트롤러(3200)는 프로세서(3210), ROM(3220) 및 호스트 인터페이스(3230)를 포함할 수 있다.
본 발명의 실시예들에 따른 플래시 메모리 장치(3000)의 관리 방법은 소프트웨어로서 ROM(3220)에 저장될 수 있다. 프로세서(3210)는 ROM(3220)에 저장된 상기 프로그램을 수행하여 플래시 메모리 장치(3000)의 관리 방법을 구현할 수 있으며, 상기 프로그램은 FTL을 포함할 수 있다. 호스트 인터페이스(3230)은 호스트로부터 명령 및 어드레스를 수신하여 비휘발성 메모리 장치(3000)의 다른 구성요소에 전달할 수 있고, 다른 구성요소로부터 신호를 수신하여 호스트로 전달할 수 있다.
비휘발성 셀 어레이(3100)는 NAND 플래시 메모리, NOR 플래시 메모리 등의 셀 어레이를 포함할 수 있다. 본 발명의 일실시예에 따라 비휘발성 셀 어레이(3100)는 도 2에서 도시된 바와 같이 SLC 영역 및 TLC 영역을 포함할 수 있으며, 프로세서(3210)에 의해서 제어된다. TLC 뿐만 아니라 2개 이상의 비트들을 저장하는 셀(예를 들면, MLC 또는 QLC 등)이 비휘발성 셀 어레이(3100)에 포함될 수 있다.
도 10은 본 발명의 일실시예에 따라 플래시 메모리 장치를 관리하는 FTL(flash translation layer)의 구조를 나타내는 블록도이다. 플래시 메모리 장치를 관리하는 FTL(4000)은 플래시 메모리 장치에 내장형 소프트웨어(embedded software)일 수 있다. FTL(4000)은 앞에서 설명한 실시예들에 따른 가비지 수집(garbage collection)을 포함할 수 있다. 또한, FTL(4000)은 ECC(error correction code), 논리적-물리적 어드레스 변환(logical-physical address translation) 및 불량 블록 관리(bad block management)등을 더 포함할 수 있다.
도 11은 본 발명의 일실시예에 따른 비휘발성 메모리 장치를 장착하는 컴퓨팅 시스템을 나타내는 블록도이다. 모바일 기기나 데스크 탑 컴퓨터와 같은 컴퓨팅 시스템(5000)에 본 발명의 비휘발성 메모리 장치가 비휘발성 저장장치(5400)로 장착될 수 있다. 비휘발성 저장장치(5400)로 장착되는 비휘발성 메모리 장치는 앞서 설명되었던 다수의 실시예들 중 어느 하나가 적용될 수 있다.
본 발명의 일실시예에 따른 컴퓨팅 시스템(5000)은 중앙처리 장치(5100), 램(5200), 유저 인터페이스(5300)와 비휘발성 저장장치(5400)를 포함하며, 이들 구성요소는 각각 버스(5500)에 전기적으로 연결되어 있다. 상기 컴퓨팅 시스템(5000)에서, 앞선 실시예들에서와 같이 비휘발성 저장장치(5400)는, 데이터를 저장하기 위한 비휘발성 메모리 장치(미도시)를 포함할 수 있고, 비휘발성 메모리 장치는 비휘발성 셀 어레이(미도시)를 포함할 수 있고, 상기 비휘발성 셀 어레이를 관리하는 컨트롤러(미도시)를 포함할 수 있다. 상기 컨트롤러는 본 발명의 일실시예에 따른 비휘발성 메모리 장치의 관리 방법을 수행할 수 있다. 비휘발성 저장장치(5400)에 포함된 비휘발성 셀 어레이는 NAND 플래시 메모리, NOR 플래시 메모리 등의 셀 어레이를 포함할 수 있다.
도 12는 본 발명의 일실시예에 따른 메모리 카드를 나타내는 도면이다. 메모리 카드(6000)는 모바일 기기나 데스크 탑 컴퓨터와 같은 전자기기에 연결하여 사용할 수 있는 휴대용 저장장치가 될 수 있다. 도 12에 도시된 바와 같이, 상기 메모리 카드(6000)는 컨트롤러(6100), 비휘발성 셀 어레이(6200) 및 포트 영역(6300)을 구비할 수 있다.
메모리 카드는 포트 영역(6300)을 통해서 외부의 호스트(미도시)와 통신할 수 있고, 컨트롤러(6100)는 비휘발성 셀 어레이(6200)를 제어할 수 있다. 컨트롤러(6100)는 프로그램을 저장하는 ROM(미도시)으로부터 프로그램을 읽어서 수행할 수 있다. 본 발명의 실시예들에 따른 비휘발성 메모리 장치의 관리 방법은 컨트롤러(6100)에 의해서 수행될 수 있다. 비휘발성 셀 어레이(6200)는 NAND 플래시 메모리, NOR 플래시 메모리 등의 셀 어레이를 포함할 수 있다.
도 13은 본 발명의 일실시예에 따른 비휘발성 메모리 장치를 나타내는 구조도이다. 도 13에 도시된 바와 같이, 비휘발성 메모리 장치는 반도체 장치(7000)로 구현될 수 있고, 반도체 장치(7000)는 다수의 반도체 레이어들(LA1 내지 LAn)을 구비할 수 있다. 반도체 레이어들(LA1 내지 LAn) 각각은 비휘발성 메모리 칩(예를 들면, NAND 플래시 메모리 칩)일 수 있으며, 또는 반도체 레이어들(LA1 내지 LAn) 중 일부는 외부의 호스트와 인터페이싱을 수행하는 마스터(master) 칩이고 나머지는 데이터를 저장하는 슬레이브(slave) 칩일 수 있다. 도 13의 예에서는, 가장 아래에 위치하는 반도체 레이어(LA1)는 마스터 칩인 것으로 가정하며 또한 나머지 반도체 레이어들(LA2 내지 LAn)은 슬레이브 칩인 것으로 가정한다.
도 13에서는 다수의 반도체 레이어들(LA1 내지 LAn)이 관통 실리콘 비아(TSV, through silicon via)를 통해 신호를 서로 송수신하는 것으로 도시되었으나, 다른 수단(예를 들면, 와이어 등)을 통해서 신호를 서로 송수신할 수 있다. 마스터 칩으로서 제1 반도체 레이어(7100)와 슬레이브 칩으로서 제n 반도체 레이어(7200)를 중심으로 하여 반도체 메모리 장치(7000)의 구성 및 동작을 설명하면 다음과 같다.
제1 반도체 레이어(7100)는 슬레이브 칩들에 구비되는 SLC 블록들(7210) 및 TLC 블록들(7220)을 구동하기 위한 각종 회로들을 포함한다. 예컨대, 제1 본도체 레이어(7100)는 프로그램이 저장되어 있는 ROM(7120), 상기 프로그램을 수행하여 비휘발성 메모리 장치를 관리하는 프로세서(7110) 및 외부 호스트와 신호를 송수신하는 호스트 인터페이스(7130)를 포함할 수 있다.
본 발명의 실시예들에 따른 플래시 메모리 장치(7000)의 관리 방법은 소프트웨어로서 ROM(7120)에 저장될 수 있다. 프로세서(7110)는 ROM(7120)에 저장된 상기 프로그램을 수행하여 플래시 메모리 장치(7000)의 관리 방법을 구현할 수 있으며, 상기 프로그램은 FTL을 포함할 수 있다. 호스트 인터페이스(7130)는 호스트로부터 명령 및 어드레스를 수신하여 비휘발성 메모리 장치(7000)의 다른 구성요소에 전달할 수 있고, 다른 구성요소로부터 신호를 수신하여 호스트로 전달할 수 있다.
한편, 제n 반도체 레이어(7200)는 비휘발성 셀 어레이를 구비할 수 있고, 비휘발성 셀 어레이는 SLC 및 TLC를 포함할 수 있다. 도 13에는 TLC 블록들(7220)이 도시되었으나 이는 예시적이며, 제n 반도체 레이어(7200)는 하나의 셀에 2 이상의 비트의 데이터를 저장할 수 있는 NSLC 블록들을 구비할 수 있다.
전술한 실시예에서는, 비휘발성 메모리로서 플래시 메모리가 언급되었으나, 본 발명의 실시예는 반드시 이에 국한될 필요는 없다. 일예로서, 본 발명의 실시예로서 비휘발성 메모리는 MRAM(Magnetic Random Access Memory), RRAM(Resistance RAM), FRAM(Ferroelectric RAM) 또는 PCM(Phase Change Memory) 등일 수 있으며, 각각의 메모리에서 SLC 블록들 사이, 그리고 SLC 블록과 NSLC 블록들 사이의 데이터 복사 동작에 의하여 프리 블록이 생성 또는 할당될 수 있다.
상기한 실시예의 설명은 본 발명의 더욱 철저한 이해를 위하여 도면을 참조로 예를 든 것에 불과하므로, 본 발명을 한정하는 의미로 해석되어서는 안될 것이다. 또한, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 있어 본 발명의 기본적 원리를 벗어나지 않는 범위 내에서 다양한 변화와 변경이 가능함은 명백하다 할 것이다.

Claims (10)

  1. 비휘발성 메모리 장치를 관리하는 방법에 있어서,
    상기 비휘발성 메모리 장치는 셀당 1비트의 데이터를 저장하는 제1 영역과 셀당 2비트 이상의 데이터를 저장하는 제2 영역을 포함하고,
    상기 제1 영역에 속하는 블록들 사이에 데이터를 복사하여 프리(free) 블록을 생성할 수 있는지 여부를 판단하는 단계;
    상기 프리 블록을 생성할 수 있는 경우, 상기 제1 영역에 속하는 블록들 사이에 데이터를 복사함으로써 상기 프리 블록을 생성하는 단계;
    상기 프리 블록을 생성할 수 없는 경우, 상기 제1 영역의 블록들의 데이터 저장 상태에 기초하여, 상기 제1 영역의 블록들 중 적어도 하나의 블록을 선택하는 단계; 및
    상기 제1 영역의 선택된 블록에 저장된 데이터를 상기 제2 영역으로 복사하여, 상기 선택된 블록을 프리 블록으로 할당하는 단계를 포함하는 비휘발성 메모리 장치의 관리 방법.
  2. 삭제
  3. 제1항에 있어서,
    상기 제1 영역의 블록들 각각은 복수의 페이지(page)들을 포함하고,
    상기 복수의 페이지들 각각은 유효 데이터가 저장된 유효 페이지, 무효 데이터가 저장된 무효 페이지 또는 데이터가 기록되어 있지 않은 프리 페이지 중 어느 하나인 것을 특징으로 하는 비휘발성 메모리 장치의 관리 방법.
  4. 제3항에 있어서, 상기 블록을 선택하는 단계는
    상기 제1 영역의 블록들 중에서 상기 프리 페이지의 수가 최소인 제1 블록을 선택하는 것을 특징으로 하는 비휘발성 메모리 장치의 관리 방법.
  5. 제4항에 있어서, 상기 프리 블록으로 할당하는 단계는
    상기 제1 블록이 포함하는 유효 페이지의 데이터를 상기 제2 영역으로 복사하여 상기 제1 블록을 프리 블록으로 할당하는 것을 특징으로 하는 비휘발성 메모리 장치의 관리 방법.
  6. 제1항에 있어서, 상기 비휘발성 메모리는
    낸드(NAND) 플래시 메모리인 것을 특징으로 하는 비휘발성 메모리 장치의 관리 방법.
  7. 제1항에 있어서, 상기 제2 영역은
    MLC(multi level cell) 또는 TLC(triple level cell)를 구비하는 것을 특징으로 하는 비휘발성 메모리 장치의 관리 방법.
  8. 셀당 1비트의 데이터를 저장하는 제1 영역과 셀당 2비트 이상의 데이터를 저장하는 제2 영역을 구비하는 비휘발성 메모리; 및
    상기 제1 영역에 속하는 블록들 사이에 데이터를 복사하여 프리(free) 블록을 생성할 수 있는지 여부를 판단하고, 상기 프리 블록을 생성할 수 있는 경우, 상기 제1 영역에 속하는 블록들 사이에 데이터를 복사함으로써 프리 블록을 생성하고, 상기 프리 블록을 생성할 수 없는 경우, 상기 제1 영역의 블록들의 데이터 저장 상태에 기초하여 선택된 적어도 하나의 블록의 데이터를 상기 제2 영역으로 복사하여, 상기 선택된 적어도 하나의 블록을 프리 블록으로 할당하는 동작을 관리하는 프로세서를 구비하는 것을 특징으로 하는 비휘발성 메모리 장치.
  9. 삭제
  10. 제8항에 있어서, 상기 프로세서는
    상기 프리 블록을 생성할 수 없는 경우, 상기 제1 영역의 블록들 중에서 데이터가 저장되지 않은 프리 공간이 가장 작은 제1 블록에 저장된 데이터를 상기 제2 영역으로 복사하여 프리 블록을 할당하는 것을 특징으로 하는 비휘발성 메모리 장치.
KR1020120071372A 2012-06-29 2012-06-29 비휘발성 메모리 장치의 관리 방법 및 비휘발성 메모리 장치 KR102147359B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020120071372A KR102147359B1 (ko) 2012-06-29 2012-06-29 비휘발성 메모리 장치의 관리 방법 및 비휘발성 메모리 장치
US13/786,501 US9805799B2 (en) 2012-06-29 2013-03-06 Devices and methods of managing nonvolatile memory device having single-level cell and multi-level cell areas

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120071372A KR102147359B1 (ko) 2012-06-29 2012-06-29 비휘발성 메모리 장치의 관리 방법 및 비휘발성 메모리 장치

Publications (2)

Publication Number Publication Date
KR20140003892A KR20140003892A (ko) 2014-01-10
KR102147359B1 true KR102147359B1 (ko) 2020-08-24

Family

ID=49777991

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120071372A KR102147359B1 (ko) 2012-06-29 2012-06-29 비휘발성 메모리 장치의 관리 방법 및 비휘발성 메모리 장치

Country Status (2)

Country Link
US (1) US9805799B2 (ko)
KR (1) KR102147359B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11557349B2 (en) 2021-01-06 2023-01-17 SK Hynix Inc. Memory device and method of operating the memory device

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104425019B (zh) 2013-08-23 2018-07-06 慧荣科技股份有限公司 存取快闪存储器中存储单元的方法以及使用该方法的装置
CN107193684B (zh) 2013-08-23 2020-10-16 慧荣科技股份有限公司 存取快闪存储器中储存单元的方法以及使用该方法的装置
CN110175088B (zh) 2013-08-23 2022-11-11 慧荣科技股份有限公司 存取快闪存储器中储存单元的方法以及使用该方法的装置
CN104424127A (zh) * 2013-08-23 2015-03-18 慧荣科技股份有限公司 存取快闪存储器中储存单元的方法以及使用该方法的装置
US10365858B2 (en) 2013-11-06 2019-07-30 Pure Storage, Inc. Thin provisioning in a storage device
KR20160068108A (ko) * 2014-12-04 2016-06-15 에스케이하이닉스 주식회사 반도체 메모리 장치를 포함하는 메모리 시스템 및 그것의 관리 방법
CN105843748B (zh) 2015-01-15 2019-06-11 华为技术有限公司 一种对内存中内存页的处理方法及装置
US10008250B2 (en) * 2015-03-27 2018-06-26 Intel Corporation Single level cell write buffering for multiple level cell non-volatile memory
IN2015CH04361A (ko) * 2015-08-20 2015-09-04 Wipro Ltd
US10353814B2 (en) * 2016-02-08 2019-07-16 Wipro Limited Method and system for optimized garbage collection in a storage device
TWI596614B (zh) * 2016-09-02 2017-08-21 Memory writing method
JP6765321B2 (ja) * 2017-02-28 2020-10-07 キオクシア株式会社 メモリシステムおよび制御方法
US10049047B1 (en) 2017-03-10 2018-08-14 Toshiba Memory Corporation Multibit NAND media using pseudo-SLC caching technique
US10095626B2 (en) 2017-03-10 2018-10-09 Toshiba Memory Corporation Multibit NAND media using pseudo-SLC caching technique
US10380018B2 (en) 2017-04-04 2019-08-13 Micron Technology, Inc. Garbage collection
KR102544162B1 (ko) * 2017-07-11 2023-06-16 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
JP6517385B1 (ja) * 2018-02-07 2019-05-22 ウィンボンド エレクトロニクス コーポレーション 半導体記憶装置
US11354058B2 (en) 2018-09-06 2022-06-07 Pure Storage, Inc. Local relocation of data stored at a storage device of a storage system
US10891063B2 (en) * 2018-11-28 2021-01-12 Micron Technology, Inc. Apparatus and methods for managing data storage among groups of memory cells of multiple reliability ranks
KR102210536B1 (ko) * 2019-01-24 2021-02-02 성균관대학교산학협력단 비휘발성 메모리 장치의 데이터 관리 시스템 및 그 방법
KR20210045029A (ko) * 2019-10-16 2021-04-26 에스케이하이닉스 주식회사 메모리 시스템, 메모리 컨트롤러 및 동작 방법
US11379231B2 (en) * 2019-10-25 2022-07-05 Semiconductor Energy Laboratory Co., Ltd. Data processing system and operation method of data processing system

Family Cites Families (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5404485A (en) 1993-03-08 1995-04-04 M-Systems Flash Disk Pioneers Ltd. Flash file system
EP1400053A2 (en) 2001-02-27 2004-03-24 Visa International Service Association Distributed quantum encrypted pattern generation and scoring
KR100389867B1 (ko) * 2001-06-04 2003-07-04 삼성전자주식회사 플래시 메모리 관리방법
JP4812192B2 (ja) 2001-07-27 2011-11-09 パナソニック株式会社 フラッシュメモリ装置、及び、それに記憶されたデータのマージ方法
US20050251617A1 (en) * 2004-05-07 2005-11-10 Sinclair Alan W Hybrid non-volatile memory system
US7752382B2 (en) * 2005-09-09 2010-07-06 Sandisk Il Ltd Flash memory storage system and method
KR101362561B1 (ko) 2006-05-03 2014-02-13 드로보, 인크. 파일 시스템 인식 블록 저장 시스템, 장치 및 방법
US7711890B2 (en) * 2006-06-06 2010-05-04 Sandisk Il Ltd Cache control in a non-volatile memory device
KR100849221B1 (ko) * 2006-10-19 2008-07-31 삼성전자주식회사 비휘발성 메모리의 관리 방법 및 비휘발성 메모리 기반의장치
KR100885181B1 (ko) * 2007-02-06 2009-02-23 삼성전자주식회사 그룹 맵핑 동작을 수행하는 메모리 시스템 및 그것의어드레스 맵핑 방법
KR101477047B1 (ko) * 2008-02-29 2014-12-30 삼성전자주식회사 메모리 시스템 및 그것의 블록 병합 방법
US8040744B2 (en) * 2009-01-05 2011-10-18 Sandisk Technologies Inc. Spare block management of non-volatile memories
KR100994052B1 (ko) 2009-05-06 2010-11-11 성균관대학교산학협력단 플래시 변환 계층에서 수행되는 데이터 관리 방법 및 이를 수행하는 플래시 메모리 장치
KR101143397B1 (ko) 2009-07-29 2012-05-23 에스케이하이닉스 주식회사 페이지 복사 발생 빈도를 줄이는 반도체 스토리지 시스템 및 그 제어 방법
US8402242B2 (en) * 2009-07-29 2013-03-19 International Business Machines Corporation Write-erase endurance lifetime of memory storage devices
US8285946B2 (en) * 2009-12-15 2012-10-09 International Business Machines Corporation Reducing access contention in flash-based memory systems
KR101081948B1 (ko) 2009-12-22 2011-11-10 연세대학교 산학협력단 불휘발성 메모리 장치 및 그것의 데이터 저장 방법
JP5521542B2 (ja) * 2009-12-25 2014-06-18 ブラザー工業株式会社 情報処理装置
JP2011145838A (ja) * 2010-01-13 2011-07-28 Toshiba Corp 記憶装置管理装置および記憶装置の管理方法
KR101635446B1 (ko) * 2010-05-25 2016-07-04 삼성전자주식회사 반도체 메모리 장치의 블록 병합 방법
JP5066241B2 (ja) * 2010-09-24 2012-11-07 株式会社東芝 メモリシステム
US8886990B2 (en) * 2011-01-27 2014-11-11 Apple Inc. Block management schemes in hybrid SLC/MLC memory
US8537613B2 (en) * 2011-03-31 2013-09-17 Sandisk Technologies Inc. Multi-layer memory system
US9176864B2 (en) * 2011-05-17 2015-11-03 SanDisk Technologies, Inc. Non-volatile memory and method having block management with hot/cold data sorting
US8886911B2 (en) * 2011-05-31 2014-11-11 Micron Technology, Inc. Dynamic memory cache size adjustment in a memory device
US20130019057A1 (en) * 2011-07-15 2013-01-17 Violin Memory, Inc. Flash disk array and controller
US9298603B2 (en) * 2011-09-09 2016-03-29 OCZ Storage Solutions Inc. NAND flash-based storage device and methods of using
US8694754B2 (en) * 2011-09-09 2014-04-08 Ocz Technology Group, Inc. Non-volatile memory-based mass storage devices and methods for writing data thereto
US9176862B2 (en) * 2011-12-29 2015-11-03 Sandisk Technologies Inc. SLC-MLC wear balancing
US9323667B2 (en) * 2012-04-12 2016-04-26 Violin Memory Inc. System and method for managing trim operations in a flash memory system using mapping tables and block status tables
US8990477B2 (en) * 2012-04-19 2015-03-24 Sandisk Technologies Inc. System and method for limiting fragmentation
US8966205B1 (en) * 2012-05-10 2015-02-24 Western Digital Technologies, Inc. System data management using garbage collection and hybrid self mapping
US8788778B1 (en) * 2012-06-04 2014-07-22 Western Digital Technologies, Inc. Garbage collection based on the inactivity level of stored data
US8990458B2 (en) * 2013-02-28 2015-03-24 Kabushiki Kaisha Toshiba Controller, semiconductor storage device and method of controlling data writing
US8886877B1 (en) * 2014-05-15 2014-11-11 Sandisk Technologies Inc. In-situ block folding for nonvolatile memory

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11557349B2 (en) 2021-01-06 2023-01-17 SK Hynix Inc. Memory device and method of operating the memory device

Also Published As

Publication number Publication date
KR20140003892A (ko) 2014-01-10
US20140003142A1 (en) 2014-01-02
US9805799B2 (en) 2017-10-31

Similar Documents

Publication Publication Date Title
KR102147359B1 (ko) 비휘발성 메모리 장치의 관리 방법 및 비휘발성 메모리 장치
US11507500B2 (en) Storage system having a host directly manage physical data locations of storage device
US10229049B2 (en) Storage system that performs host-initiated garbage collection
US20160062885A1 (en) Garbage collection method for nonvolatile memory device
EP2565792B1 (en) Block management schemes in hybrid SLC/MLC memory
US10466908B2 (en) Memory system that buffers data before writing to nonvolatile memory
US11709632B2 (en) Input/output size control between a host system and a memory sub-system
US10635326B2 (en) Method and apparatus for wear-levelling non-volatile memory
US20200243157A1 (en) Storage system having a host that manages physical data locations of storage device
US20150347291A1 (en) Flash memory based storage system and operating method
KR20200076886A (ko) 저장 장치 및 그 동작 방법
CN111373383A (zh) 存储器高速缓存管理
KR20210026431A (ko) 메모리 시스템, 메모리 컨트롤러 및 동작 방법
CN112015329A (zh) 存储系统及其操作方法
US11728006B2 (en) Grown bad block management in a memory sub-system
CN113946283B (zh) 存储器装置的分区命名空间中的部分区存储器单元处置
KR20200076923A (ko) 저장 장치, 컨트롤러 및 저장 장치의 동작 방법
JP2023510764A (ja) キャッシュ内のデータブロックの書き込みモードの変更に基づくメディア管理動作の実施
US20200327069A1 (en) Data storage device and operation method thereof, controller using the same
US11822800B2 (en) Storage system including host and storage device and operation method thereof
US20220254432A1 (en) Memory system and operating method of memory system
KR20230097866A (ko) 메모리 컨트롤러를 포함하는 스토리지 장치 및 스토리지 장치의 동작 방법
CN117999547A (zh) 用于存储器子系统中的两遍次编程的虚拟管理单元方案
CN113253917A (zh) 用于存储器子系统的媒体管理的多状态炼狱

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
J201 Request for trial against refusal decision
J301 Trial decision

Free format text: TRIAL NUMBER: 2019101002311; TRIAL DECISION FOR APPEAL AGAINST DECISION TO DECLINE REFUSAL REQUESTED 20190710

Effective date: 20200511

GRNO Decision to grant (after opposition)
GRNT Written decision to grant