KR20190131170A - 비휘발성 메모리 시스템 - Google Patents

비휘발성 메모리 시스템 Download PDF

Info

Publication number
KR20190131170A
KR20190131170A KR1020180055712A KR20180055712A KR20190131170A KR 20190131170 A KR20190131170 A KR 20190131170A KR 1020180055712 A KR1020180055712 A KR 1020180055712A KR 20180055712 A KR20180055712 A KR 20180055712A KR 20190131170 A KR20190131170 A KR 20190131170A
Authority
KR
South Korea
Prior art keywords
nand flash
flash memory
file system
logical address
run
Prior art date
Application number
KR1020180055712A
Other languages
English (en)
Other versions
KR102098240B1 (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 KR1020180055712A priority Critical patent/KR102098240B1/ko
Priority to US15/983,176 priority patent/US10613767B2/en
Priority to TW107117292A priority patent/TWI708262B/zh
Priority to CN201810491109.8A priority patent/CN110502448A/zh
Publication of KR20190131170A publication Critical patent/KR20190131170A/ko
Application granted granted Critical
Publication of KR102098240B1 publication Critical patent/KR102098240B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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/1016Performance improvement
    • 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/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • 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/7204Capacity control, e.g. partitioning, end-of-life degradation
    • 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

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 (AREA)

Abstract

비휘발성 메모리 시스템은 낸드 플래시 메모리 장치, 호스트 장치 및 세이브 스토리지 매니저를 포함한다. 낸드 플래시 메모리 장치는 낸드 플래시 메모리 및 낸드 플래시 메모리를 제어하는 메모리 컨트롤러를 포함한다. 호스트 장치는 파일 시스템 및 파일 시스템으로부터 커맨드를 입력받아 낸드 플래시 메모리 장치에 제공하는 호스트 컨트롤러를 포함한다. 세이브 스토리지 매니저는 낸드 플래시 메모리에 발생한 런-타임 배드 블록들의 개수와 위치를 모니터링하고, 파일 시스템의 논리 어드레스 사용 현황을 모니터링하며, 낸드 플래시 메모리 내 런-타임 배드 블록들의 개수가 증가함에 따라 파일 시스템이 사용 가능한 논리 어드레스 공간을 감소시킨다.

Description

비휘발성 메모리 시스템{NON-VOLATILE MEMORY SYSTEM}
본 발명은 반도체 메모리 시스템에 관한 것이다. 보다 상세하게는, 본 발명은 호스트(host) 장치와 낸드 플래시 메모리(NAND flash memory) 장치를 포함하는 비휘발성 메모리 시스템에 관한 것이다.
반도체 메모리 장치는 전원이 공급되지 않는 상태에서 데이터를 보존할 수 있는지에 따라 휘발성 메모리 장치와 비휘발성 메모리 장치로 구분될 수 있다. 최근에는, 반도체 메모리 장치의 소형화, 대용량화 및 저비용화 추세에 따라, 비휘발성 메모리 장치 중에서 낸드 플래시 메모리 장치가 소형화, 대용량화 및 저비용화에 적합하여 널리 사용되고 있다. 일반적으로, 낸드 플래시 메모리 장치는 페이지(page) 단위로 기입(write) 동작과 독출(read) 동작을 수행하고, 블록(block) 단위로 소거(erase) 동작을 수행하기 때문에, 호스트 장치의 파일 시스템(file system)을 지원하는 플래시 변환 레이어(flash translation layer; FTL)를 구비한 메모리 컨트롤러를 이용하여 낸드 플래시 메모리에 대해 기입 동작, 독출 동작, 소거 동작, 가비지 콜렉션(garbage collection)(또는, 리클레임(reclaim)) 동작, 웨어 레벨링(wear leveling) 동작 등을 수행한다. 이 때, 상기 플래시 변환 레이어는 논리 어드레스(logical address)들과 물리 어드레스(physical address)들 사이의 맵핑 정보가 저장된 맵핑 테이블(mapping table)을 이용하여 어드레스 맵핑(address mapping) 동작을 수행한다.
한편, 낸드 플래시 메모리의 블록들에 쓰기 동작과 소거 동작이 반복적으로 수행됨에 따라 상기 블록들이 열화되기 때문에, 상기 플래시 변환 레이어는 상기 열화에 의해 불량이 발생하거나 예상되는 블록 즉, 런-타임 배드 블록(run-time bad block)을 리저브드 블록(reserved block)으로 대체하거나 또는 런-타임 배드 블록의 유효한 데이터를 프리 블록(free block)으로 이동시키고, 해당 런-타임 배드 블록을 사용 불가 처리(retire)(즉, 사용에 있어 배제)함으로써 낸드 플래시 메모리 장치가 오동작하는 것을 방지하고 있다. 하지만, 낸드 플래시 메모리 내에 런-타임 배드 블록들이 계속적으로 증가함에 따라 사용 가능한 물리 어드레스 공간이 감소하게 되면, 낸드 플래시 메모리 장치는 호스트 장치에 충분한 논리 어드레스 공간을 제공하지 못하게 되고, 그에 따라, 해당 낸드 플래시 메모리 장치는 수명(end of life; EOL)이 다한 것으로 판정되어 폐기된다. 그러나, 낸드 플래시 메모리 장치가 호스트 장치에 충분한 논리 어드레스 공간을 제공하지 못한다고 하더라도, 호스트 장치가 낸드 플래시 메모리 장치에 의해 제공되는 논리 어드레스 공간을 모두 사용하고 있는 것은 아니므로, 낸드 플래시 메모리 내에 런-타임 배드 블록들의 개수가 일정 개수 이상으로 증가되었다는 이유로 상기 낸드 플래시 메모리를 포함하는 낸드 플래시 메모리 장치를 일괄적으로 폐기하는 것은 불필요한 자원 낭비를 초래할 수 있다.
본 발명의 일 목적은 낸드 플래시 메모리 내에 런-타임 배드 블록들이 증가됨에 따라 낸드 플래시 메모리 장치가 호스트 장치에 충분한 논리 어드레스 공간을 제공하지 못하는 경우(즉, 낸드 플래시 메모리 장치가 수명이 다한 것으로 판정되는 경우)에도 낸드 플래시 메모리 장치를 오동작 없이 계속적으로 사용할 수 있는 비휘발성 메모리 시스템을 제공하는 것이다. 다만, 본 발명의 목적은 상술한 목적으로 한정되는 것이 아니며, 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위에서 다양하게 확장될 수 있을 것이다.
본 발명의 일 목적을 달성하기 위하여, 본 발명의 실시예들에 따른 비휘발성 메모리 시스템은 적어도 하나의 낸드 플래시 메모리 및 상기 낸드 플래시 메모리를 제어하는 메모리 컨트롤러를 구비한 낸드 플래시 메모리 장치, 파일 시스템 및 상기 파일 시스템으로부터 커맨드를 입력받아 상기 낸드 플래시 메모리 장치에 제공하는 호스트 컨트롤러를 구비한 호스트 장치, 및 상기 낸드 플래시 메모리에 발생한 런-타임 배드 블록들의 개수와 위치를 모니터링하고, 상기 파일 시스템의 논리 어드레스 사용 현황을 모니터링하며, 상기 런-타임 배드 블록들의 상기 개수가 증가함에 따라 상기 파일 시스템이 사용 가능한 논리 어드레스 공간을 감소시키는 세이브 스토리지 매니저를 포함할 수 있다.
일 실시예에 의하면, 상기 세이브 스토리지 매니저는 상기 호스트 컨트롤러 또는 상기 메모리 컨트롤러에 포함되고, 상기 파일 시스템 및 상기 메모리 컨트롤러에 포함된 플래시 변환 레이어와 인터액션(interaction)할 수 있다.
일 실시예에 의하면, 상기 세이브 스토리지 매니저는 상기 파일 시스템으로 하여금 상기 파일 시스템이 사용하고 있지 않은 제1 논리 어드레스들의 일부를 회수(recall)하도록 함으로써 상기 논리 어드레스 공간을 감소시킬 수 있다.
일 실시예에 의하면, 상기 세이브 스토리지 매니저는 상기 파일 시스템으로 하여금 상기 제1 논리 어드레스들 중 상기 일부를 회수하기 이전에 상기 파일 시스템이 사용하고 있는 제2 논리 어드레스들에 대해 단편화-제거(defragmentation) 동작을 수행하여 상기 제1 논리 어드레스들을 연속적으로 재배치하도록 할 수 있다.
일 실시예에 의하면, 상기 세이브 스토리지 매니저는 상기 파일 시스템으로 하여금 상기 파일 시스템이 사용하고 있지 않은 제1 논리 어드레스들의 일부를 차지(occupy)하는 더미 파일(dummy file)을 생성함으로써 상기 논리 어드레스 공간을 감소시킬 수 있다.
일 실시예에 의하면, 상기 세이브 스토리지 매니저는 상기 논리 어드레스 공간을 감소시킬 때 상기 메모리 컨트롤러로 하여금 상기 낸드 플래시 메모리 내에서 상기 런-타임 배드 블록들을 리저브드 블록들로 대체(replace)하도록 할 수 있다.
일 실시예에 의하면, 상기 세이브 스토리지 매니저는 상기 런-타임 배드 블록들의 상기 개수가 기준 개수보다 클 때마다 상기 파일 시스템으로 하여금 상기 논리 어드레스 공간을 감소시키도록 하고, 상기 기준 개수는 상기 낸드 플래시 메모리 장치가 사용됨에 따라 증가할 수 있다.
일 실시예에 의하면, 상기 리저브드 블록들은 상기 낸드 플래시 메모리 장치의 제조 시에 설정된 후 상기 낸드 플래시 메모리 장치가 사용됨에 따라 추가되지 않을 수 있다.
일 실시예에 의하면, 상기 리저브드 블록들은 상기 낸드 플래시 메모리 장치의 제조 시에 설정된 후 상기 낸드 플래시 메모리 장치가 사용됨에 따라 상기 낸드 플래시 메모리 내에서 프리 블록들 중 일부가 상기 리저브드 블록들로 전환됨으로써 추가될 수 있다.
일 실시예에 의하면, 상기 세이브 스토리지 매니저는 상기 논리 어드레스 공간을 감소시킬 때 상기 메모리 컨트롤러로 하여금 상기 낸드 플래시 메모리 내에서 상기 런-타임 배드 블록들을 사용 불가 처리(retire)하도록 할 수 있다.
일 실시예에 의하면, 상기 세이브 스토리지 매니저는 상기 메모리 컨트롤러로 하여금 상기 낸드 플래시 메모리 내에서 상기 런-타임 배드 블록들을 사용 불가 처리하기 이전에 상기 런-타임 배드 블록들의 유효한 데이터들을 프리 블록들로 이동시키도록 할 수 있다.
일 실시예에 의하면, 상기 세이브 스토리지 매니저는 상기 런-타임 배드 블록들의 상기 개수가 기준 개수보다 클 때마다 상기 파일 시스템으로 하여금 상기 논리 어드레스 공간을 감소시키도록 하고, 상기 기준 개수는 상기 낸드 플래시 메모리 장치가 사용됨에 따라 증가할 수 있다.
본 발명의 일 목적을 달성하기 위하여, 본 발명의 실시예들에 따른 낸드 플래시 메모리 장치는 적어도 하나의 낸드 플래시 메모리 및 상기 낸드 플래시 메모리를 제어하는 메모리 컨트롤러를 포함할 수 있다. 이 때, 상기 메모리 컨트롤러는 상기 낸드 플래시 메모리에 발생한 런-타임 배드 블록들의 개수와 위치를 모니터링하고, 호스트 장치에 구비된 파일 시스템의 논리 어드레스 사용 현황을 모니터링하며, 상기 런-타임 배드 블록들의 상기 개수가 증가함에 따라 상기 파일 시스템이 사용 가능한 논리 어드레스 공간을 감소시키는 세이브 스토리지 매니저를 포함할 수 있다.
본 발명의 일 목적을 달성하기 위하여, 본 발명의 실시예들에 따른 호스트 장치는 파일 시스템 및 상기 파일 시스템으로부터 커맨드를 입력받아 낸드 플래시 메모리 장치에 제공하는 호스트 컨트롤러를 포함할 수 있다. 이 때, 상기 호스트 컨트롤러는 상기 낸드 플래시 메모리 장치에 구비된 적어도 하나의 낸드 플래시 메모리에 발생한 런-타임 배드 블록들의 개수와 위치를 모니터링하고, 상기 파일 시스템의 논리 어드레스 사용 현황을 모니터링하며, 상기 런-타임 배드 블록들의 상기 개수가 증가함에 따라 상기 파일 시스템이 사용 가능한 논리 어드레스 공간을 감소시키는 세이브 스토리지 매니저를 포함할 수 있다.
본 발명의 실시예들에 따른 비휘발성 메모리 시스템은 낸드 플래시 메모리 장치(이 때, 낸드 플래시 메모리 장치는 낸드 플래시 메모리 및 낸드 플래시 메모리를 제어하는 메모리 컨트롤러를 포함함) 및 호스트 장치(이 때, 호스트 장치는 파일 시스템 및 파일 시스템으로부터 커맨드를 입력받아 낸드 플래시 메모리 장치에 제공하는 호스트 컨트롤러를 포함함)를 포함함에 있어서, 호스트 장치 또는 낸드 플래시 메모리 장치에 낸드 플래시 메모리에 발생한 런-타임 배드 블록들의 개수와 위치를 모니터링하고, 파일 시스템의 논리 어드레스 사용 현황을 모니터링하며, 낸드 플래시 메모리에 발생한 런-타임 배드 블록들의 개수가 증가함에 따라 파일 시스템이 사용 가능한 논리 어드레스 공간을 감소시키는 세이브 스토리지 매니저를 포함시킴으로써, 낸드 플래시 메모리 내에 런-타임 배드 블록들이 증가됨에 따라 낸드 플래시 메모리 장치가 호스트 장치에 충분한 논리 어드레스 공간을 제공하지 못하는 경우(즉, 낸드 플래시 메모리 장치가 수명이 다한 것으로 판정되는 경우)에도 낸드 플래시 메모리 장치를 오동작 없이 계속적으로 사용할 수 있다. 다만, 본 발명의 효과는 상기 효과로 한정되는 것이 아니며, 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위에서 다양하게 확장될 수 있을 것이다.
도 1은 본 발명의 실시예들에 따른 비휘발성 메모리 시스템을 나타내는 블록도이다.
도 2a는 도 1의 비휘발성 메모리 시스템에서 세이브 스토리지 매니저가 호스트 장치에 포함되는 일 예를 나타내는 도면이다.
도 2b는 도 1의 비휘발성 메모리 시스템에서 세이브 스토리지 매니저가 낸드 플래시 메모리 장치에 포함되는 일 예를 나타내는 도면이다.
도 3은 도 1의 비휘발성 메모리 시스템에서 세이브 스토리지 매니저가 논리 어드레스 공간을 감소시키는 일 예를 나타내는 도면이다.
도 4는 도 1의 비휘발성 메모리 시스템에서 세이브 스토리지 매니저가 논리 어드레스 공간을 감소시키는 다른 예를 나타내는 도면이다.
도 5는 도 1의 비휘발성 메모리 시스템에서 세이브 스토리지 매니저가 논리 어드레스 공간을 감소시키는 또 다른 예를 나타내는 도면이다.
도 6은 도 1의 비휘발성 메모리 시스템에서 세이브 스토리지 매니저가 논리 어드레스 공간을 감소시키는 것을 결정하는 일 예를 나타내는 순서도이다.
도 7은 도 1의 비휘발성 메모리 시스템에서 세이브 스토리지 매니저가 논리 어드레스 공간을 감소시키는 것을 결정하는 다른 예를 나타내는 순서도이다.
도 8은 도 1의 비휘발성 메모리 시스템에서 세이브 스토리지 매니저가 논리 어드레스 공간을 감소시키는 것을 결정하는 또 다른 예를 나타내는 순서도이다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1은 본 발명의 실시예들에 따른 비휘발성 메모리 시스템을 나타내는 블록도이고, 도 2a는 도 1의 비휘발성 메모리 시스템에서 세이브 스토리지 매니저가 호스트 장치에 포함되는 일 예를 나타내는 도면이며, 도 2b는 도 1의 비휘발성 메모리 시스템에서 세이브 스토리지 매니저가 낸드 플래시 메모리 장치에 포함되는 일 예를 나타내는 도면이다.
도 1 내지 도 2b를 참조하면, 비휘발성 메모리 시스템(100)은 낸드 플래시 메모리 장치(120) 및 호스트 장치(140)를 포함할 수 있다. 이 때, 비휘발성 메모리 시스템(100)은 낸드 플래시 메모리 장치(120)에 포함되어 구현되거나 또는 호스트 장치(140)에 포함되어 구현되는 세이브 스토리지 매니저(160)를 더 포함할 수 있다.
낸드 플래시 메모리 장치(120)는 적어도 하나의 낸드 플래시 메모리(122) 및 낸드 플래시 메모리(122)를 제어하는 메모리 컨트롤러(124)를 포함할 수 있다. 설명의 편의를 위하여, 도 1에는 낸드 플래시 메모리 장치(120)가 하나의 낸드 플래시 메모리(122)를 포함하는 것으로 도시되어 있으나, 낸드 플래시 메모리 장치(120)는 복수의 낸드 플래시 메모리(122)들을 포함할 수 있다. 호스트 장치(140)는 파일 시스템(142) 및 파일 시스템(142)으로부터 커맨드를 입력받아 낸드 플래시 메모리 장치(120)에 제공하는 호스트 컨트롤러(144)를 구비할 수 있다. 일반적으로, 낸드 플래시 메모리 장치(120)는 낸드 플래시 메모리(122)의 물리적인 구조에 기인하여 낸드 플래시 메모리(122)에 포함된 메모리 셀들에 대해 기입 동작, 독출 동작 및 소거 동작을 수행함에 있어 랜덤 액세스 메모리 장치(예를 들어, 디램(dynamic random access memory; DRAM) 장치 등)에 비해 많은 제약을 가지고 있다. 구체적으로, 낸드 플래시 메모리 장치(120)는 낸드 플래시 메모리(122)의 물리적인 구조에 기인하여 낸드 플래시 메모리(122)에 포함된 메모리 셀들에 대해 독출 동작과 기입 동작은 페이지 단위로 수행하고 소거 동작은 블록 단위로 수행한다. 그러므로, 낸드 플래시 메모리 장치(120)는 파일 시스템(142)을 지원하기 위해 플래시 변환 레이어(126)를 메모리 컨트롤러(124)에 구비하고, 플래시 변환 레이어(126)를 이용하여 독출 동작, 기입 동작, 소거 동작, 병합(merge) 동작, 카피백(copyback) 동작, 컴팩션(compaction) 동작, 가비지 콜렉션 동작(또는, 리클레임 동작), 웨어 레벨링 동작 등을 수행한다. 다시 말하면, 메모리 컨트롤러(124)는 소프트웨어적으로 구현된 플래시 변환 레이어(126)를 실행함으로써 상기 동작들을 수행한다. 이 때, 플래시 변환 레이어(126)는 논리 어드레스들과 물리 어드레스들 사이의 맵핑 정보가 저장된 맵핑 테이블을 이용하여 호스트 장치(140)(즉, 파일 시스템(142))가 인식하는 논리 어드레스들을 낸드 플래시 메모리 장치(120)의 물리 어드레스들로 변환하는 어드레스 맵핑 동작을 수행한다.
일반적으로, 낸드 플래시 메모리 장치(120)에서 낸드 플래시 메모리(122)의 블록들에 쓰기 동작과 소거 동작이 반복적으로 수행되면, 상기 블록들은 열화(즉, 상기 블록들에 포함된 메모리 셀들이 열화)된다. 이 때, 낸드 플래시 메모리(122)를 구성하는 메모리 셀들의 수명에는 한계가 있기 때문에, 상기 블록들에 쓰기 동작과 소거 동작이 일정 횟수 이상으로 수행되면, 상기 블록들에 포함된 메모리 셀들의 수명이 다하여 상기 블록들은 정상적으로 동작할 수 없다. 따라서, 플래시 변환 레이어(126)는 상기 열화에 의해 불량이 발생하거나 예상되는 블록 즉, 런-타임 배드 블록을 리저브드 블록으로 대체하거나 또는 런-타임 배드 블록의 유효한 데이터를 프리 블록에 이동시키고 해당 런-타임 배드 블록을 사용 불가 처리함으로써 낸드 플래시 메모리 장치(120)가 오동작하는 것을 방지하고 있다. 하지만, 낸드 플래시 메모리(122) 내에 런-타임 배드 블록들이 계속적으로 증가함에 따라 사용 가능한 물리 어드레스 공간이 감소하게 되면, 낸드 플래시 메모리 장치(120)는 호스트 장치(140)에 충분한 논리 어드레스 공간을 제공하지 못하게 되고, 그에 따라, 낸드 플래시 메모리 장치(120)는 수명이 다한 것으로 판정되어 폐기된다. 그러나, 호스트 장치(140)가 낸드 플래시 메모리 장치(120)에 의해 제공되는 논리 어드레스 공간을 모두 사용하는 경우가 사실상 드문 상황에서, 호스트 장치(140)가 낸드 플래시 메모리 장치(120)에 의해 제공되는 논리 어드레스 공간을 모두 사용하고 있지 않음에도 불구하고, 낸드 플래시 메모리(122) 내에 런-타임 배드 블록들의 개수가 일정 개수 이상으로 증가되었다는 이유로 낸드 플래시 메모리 장치(120)를 일괄적으로 폐기하는 것은 바람직하지 못하다.
이러한 이유로, 비휘발성 메모리 시스템(100)은 낸드 플래시 메모리(122) 내에 런-타임 배드 블록들이 증가됨에 따라 낸드 플래시 메모리 장치(120)가 호스트 장치(140)에 충분한 논리 어드레스 공간을 제공하지 못하는 경우(즉, 낸드 플래시 메모리 장치(120)가 수명(EOL)이 다한 것으로 판정되는 경우)에, 호스트 장치(140)의 파일 시스템(142)이 사용 가능한 논리 어드레스 공간을 감소시켜 낸드 플래시 메모리 장치(120)를 오동작 없이 계속적으로 사용할 수 있다. 이를 위해, 비휘발성 메모리 시스템(100)은 낸드 플래시 메모리 장치(120)의 낸드 플래시 메모리(122)에 발생한 런-타임 배드 블록들의 개수와 위치를 모니터링하고, 호스트 장치(140)의 파일 시스템(142)의 논리 어드레스 사용 현황을 모니터링하며, 상기 런-타임 배드 블록들의 개수가 증가함에 따라 호스트 장치(140)의 파일 시스템(142)이 사용 가능한 논리 어드레스 공간을 감소시키는 세이브 스토리지 매니저(160)를 포함할 수 있다. 이 때, 세이브 스토리지 매니저(160)는 소프트웨어적으로 구현되고, 호스트 장치(140)의 파일 시스템(142) 및 낸드 플래시 메모리 장치(120)의 메모리 컨트롤러(124)에 포함된 플래시 변환 레이어(160)와 인터액션할 수 있다. 일 실시예에서, 도 2a에 도시된 바와 같이, 세이브 스토리지 매니저(160)는 호스트 장치(140)의 호스트 컨트롤러(144)에 포함되어 구현될 수 있다. 이 경우, 세이브 스토리지 매니저(160)는 파일 시스템(142)과 원활하게 인터액션할 수 있다. 다른 실시예에서, 도 2b에 도시된 바와 같이, 세이브 스토리지 매니저(160)는 낸드 플래시 메모리 장치(120)의 메모리 컨트롤러(124)에 포함되어 구현될 수 있다. 이 경우, 세이브 스토리지 매니저(160)는 메모리 컨트롤러(124)에 포함된 플래시 변환 레이어(126)와 원활하게 인터액션할 수 있다.
세이브 스토리지 매니저(160)는 낸드 플래시 메모리 장치(120)의 낸드 플래시 메모리(122)에 발생한 런-타임 배드 블록들의 개수와 위치를 모니터링할 수 있다. 일 실시예에서, 세이브 스토리지 매니저(160)는 상기 런-타임 배드 블록들의 개수와 위치에 관한 정보를 저장하기 위한 소정의 테이블을 포함할 수 있다. 이 때, 상기 테이블은 상기 런-타임 배드 블록들의 개수와 위치에 관한 정보뿐 만 아니라 프리 블록들의 개수와 위치에 관한 정보, 리저브드 블록들의 개수와 위치에 관한 정보 등을 더 포함할 수 있다. 또한, 세이브 스토리지 매니저(160)는 호스트 장치(140)의 파일 시스템(142)의 논리 어드레스 사용 현황을 모니터링(예를 들어, 논리 블록 어드레스(logical block address; LBA) 할당 내역을 추적(tracing))할 수 있다. 일 실시예에서, 세이브 스토리지 매니저(160)는 상기 논리 어드레스 사용 현황에 관한 정보를 저장하기 위한 소정의 테이블을 포함할 수 있다. 나아가, 세이브 스토리지 매니저(160)는 낸드 플래시 메모리 장치(120)의 낸드 플래시 메모리(122) 내에 런-타임 배드 블록들의 개수가 증가함에 따라 호스트 장치(140)의 파일 시스템(142)이 사용 가능한 논리 어드레스 공간을 감소시킬 수 있다. 다시 말하면, 세이브 스토리지 매니저(160)는 낸드 플래시 메모리(122) 내에 런-타임 배드 블록들의 개수가 증가함에 따라 낸드 플래시 메모리 장치(120)가 호스트 장치(140)에 제공해야 할 원래의 논리 어드레스 공간을 물리적으로 감당할 수 없는 경우, 호스트 장치(140)(즉, 파일 시스템(142))가 사용하고 있지 않는 비사용 논리 어드레스 공간을 회수하거나 또는 상기 비사용 논리 어드레스 공간을 차지하는 더미 파일을 생성함으로써, 호스트 장치(140)(즉, 파일 시스템(142))가 사용 가능한 논리 어드레스 공간을 감소시키고, 이를 낸드 플래시 메모리 장치(120)에게 알려 상기 런-타임 배드 블록들을 처리하도록 할 수 있다. 이와 같이, 세이브 스토리지 매니저(160)는 낸드 플래시 메모리 장치(120)가 물리적으로 감당해야 할 호스트 장치(140)를 위한 논리 어드레스 공간을 축소시키기 때문에, 상기 런-타임 배드 블록들이 리저브드 블록들로 대체되거나 또는 사용 불가 처리되더라도, 낸드 플래시 메모리 장치(120)가 정상적으로 동작하게 할 수 있다.
일 실시예에서, 세이브 스토리지 매니저(160)는 파일 시스템(142)으로 하여금 파일 시스템(142)이 사용하고 있지 않은 비사용 논리 어드레스 공간 즉, 제1 논리 어드레스들의 일부를 회수하도록 함으로써, 파일 시스템(142)이 사용 가능한 논리 어드레스 공간을 감소시킬 수 있다. 다시 말하면, 세이브 스토리지 매니저(160)는, 낸드 플래시 메모리(122) 내에 런-타임 배드 블록들의 개수가 증가함에 따라 낸드 플래시 메모리 장치(120)가 호스트 장치(140)에 제공해야 할 원래의 논리 어드레스 공간을 물리적으로 감당할 수 없는 경우, 파일 시스템(142)이 사용하고 있지 않은 제1 논리 어드레스들의 일부를 회수하는 방식으로 파일 시스템(142)이 사용 가능한 논리 어드레스 공간을 감소시키는 것이다. 다만, 이에 대해서는 도 3을 참조하여 자세하게 설명하기로 한다. 다른 실시예에서, 세이브 스토리지 매니저(160)는 파일 시스템(142)으로 하여금 파일 시스템(142)이 사용하고 있는 사용 논리 어드레스 공간 즉, 제2 논리 어드레스들에 대해 단편화-제거 동작을 수행하여 파일 시스템(142)이 사용하고 있지 않은 비사용 논리 어드레스 공간 즉, 제1 논리 어드레스들을 연속적으로 재배치(reallocation)한 후, 제1 논리 어드레스들의 일부를 회수하도록 함으로써, 파일 시스템(142)이 사용 가능한 논리 어드레스 공간을 감소시킬 수 있다. 다시 말하면, 세이브 스토리지 매니저(160)는, 낸드 플래시 메모리(122) 내에 런-타임 배드 블록들의 개수가 증가함에 따라 낸드 플래시 메모리 장치(120)가 호스트 장치(140)에 제공해야 할 원래의 논리 어드레스 공간을 물리적으로 감당할 수 없는 경우, 파일 시스템(142)이 사용하고 있는 제2 논리 어드레스들에 대해 단편화-제거 동작을 수행하여 파일 시스템(142)이 사용하고 있지 않은 제1 논리 어드레스들을 연속적으로 재배치한 후 제1 논리 어드레스들의 일부를 회수하는 방식으로 파일 시스템(142)이 사용 가능한 논리 어드레스 공간을 감소시키는 것이다. 다만, 이에 대해서는 도 4를 참조하여 자세하게 설명하기로 한다. 또 다른 실시예에서, 세이브 스토리지 매니저(160)는 파일 시스템(142)으로 하여금 파일 시스템(142)이 사용하고 있지 않은 비사용 논리 어드레스 공간 즉, 제1 논리 어드레스들의 일부를 차지하는 더미 파일을 생성함으로써, 파일 시스템(142)이 사용 가능한 논리 어드레스 공간을 감소시킬 수 있다. 다시 말하면, 세이브 스토리지 매니저(160)는, 낸드 플래시 메모리(122) 내에 런-타임 배드 블록들의 개수가 증가함에 따라 낸드 플래시 메모리 장치(120)가 호스트 장치(140)에 제공해야 할 원래의 논리 어드레스 공간을 물리적으로 감당할 수 없는 경우, 파일 시스템(142)이 사용하고 있지 않은 비사용 논리 어드레스 공간 즉, 제1 논리 어드레스들의 일부에 더미 파일을 할당하는 방식으로 파일 시스템(142)이 사용 가능한 논리 어드레스 공간을 감소시키는 것이다. 다만, 이에 대해서는 도 5를 참조하여 자세하게 설명하기로 한다.
한편, 세이브 스토리지 매니저(160)는 다양한 방식으로 파일 시스템(142)이 사용 가능한 논리 어드레스 공간을 감소시키는 동작의 수행 여부를 결정할 수 있다. 일 실시예에서, 리저브드 블록들이 낸드 플래시 메모리 장치(120)의 제조 시에 설정된 후 낸드 플래시 메모리 장치(120)가 사용됨에 따라 추가되지 않는 경우에, 세이브 스토리지 매니저(160)는 낸드 플래시 메모리(122) 내 런-타임 배드 블록들의 개수가 기준 개수보다 클 때마다 파일 시스템(142)으로 하여금 파일 시스템(142)이 사용 가능한 논리 어드레스 공간을 감소시키도록 할 수 있다. 이 때, 상기 기준 개수는 낸드 플래시 메모리 장치(120)가 사용됨에 따라 증가할 수 있다. 이 경우, 세이브 스토리지 매니저(160)는 메모리 컨트롤러(124)로 하여금 낸드 플래시 메모리(122) 내에서 런-타임 배드 블록들을 리저브드 블록들로 대체하도록 할 수 있다. 다만, 이에 대해서는 도 6을 참조하여 자세하게 설명하도록 한다. 다른 실시예에서, 리저브드 블록들이 낸드 플래시 메모리 장치(120)의 제조 시에 설정된 후 낸드 플래시 메모리 장치(120)가 사용됨에 따라 낸드 플래시 메모리(122) 내에서 프리 블록들 중 일부가 리저브드 블록들로 전환됨으로써 추가되는 경우에, 세이브 스토리지 매니저(160)는 낸드 플래시 메모리(122) 내 런-타임 배드 블록들의 개수가 기준 개수보다 클 때마다 파일 시스템(142)으로 하여금 파일 시스템(142)이 사용 가능한 논리 어드레스 공간을 감소시키도록 할 수 있다. 이 때, 상기 기준 개수는 낸드 플래시 메모리 장치(120)가 사용됨에 따라 증가할 수 있다. 이 경우, 세이브 스토리지 매니저(160)는 메모리 컨트롤러(124)로 하여금 낸드 플래시 메모리(122) 내에서 런-타임 배드 블록들을 리저브드 블록들로 대체하도록 할 수 있다. 다만, 이에 대해서는 도 7을 참조하여 자세하게 설명하도록 한다. 또 다른 실시예에서, 낸드 플래시 메모리(122)에서 리저브드 블록이 운용되지 않는 경우에, 세이브 스토리지 매니저(160)는 낸드 플래시 메모리(122) 내 런-타임 배드 블록들의 개수가 기준 개수보다 클 때마다 파일 시스템(142)으로 하여금 파일 시스템(142)이 사용 가능한 논리 어드레스 공간을 감소시키도록 할 수 있다. 이 때, 상기 기준 개수는 낸드 플래시 메모리 장치(120)가 사용됨에 따라 증가할 수 있다. 이 경우, 세이브 스토리지 매니저(160)는 메모리 컨트롤러(124)로 하여금 낸드 플래시 메모리(122) 내에서 런-타임 배드 블록들의 유효한 데이터들을 프리 블록들로 이동시키도록 하고, 상기 런-타임 배드 블록들을 사용 불가 처리하도록 할 수 있다. 다만, 이에 대해서는 도 8을 참조하여 자세하게 설명하도록 한다.
이와 같이, 비휘발성 메모리 시스템(100)은 낸드 플래시 메모리 장치(120)(이 때, 낸드 플래시 메모리 장치(120)는 낸드 플래시 메모리(122) 및 낸드 플래시 메모리(122)를 제어하는 메모리 컨트롤러(124)를 포함함) 및 호스트 장치(140)(이 때, 호스트 장치(140)는 파일 시스템(142) 및 파일 시스템(142)으로부터 커맨드를 입력받아 낸드 플래시 메모리 장치(120)에 제공하는 호스트 컨트롤러(144)를 포함함)를 포함함에 있어서, 호스트 장치(140) 또는 낸드 플래시 메모리 장치(120)에 낸드 플래시 메모리(122)에 발생한 런-타임 배드 블록들의 개수와 위치를 모니터링하고, 파일 시스템(142)의 논리 어드레스 사용 현황을 모니터링하며, 낸드 플래시 메모리(122)에 발생한 런-타임 배드 블록들의 개수가 증가함에 따라 파일 시스템(142)이 사용 가능한 논리 어드레스 공간을 감소시키는 세이브 스토리지 매니저(160)를 포함시킴으로써, 낸드 플래시 메모리(122) 내에 런-타임 배드 블록들이 증가됨에 따라 낸드 플래시 메모리 장치(120)가 호스트 장치(140)에 충분한 논리 어드레스 공간을 제공하지 못하는 경우(즉, 낸드 플래시 메모리 장치(120)가 수명이 다한 것으로 판정되는 경우)에도 낸드 플래시 메모리 장치(120)를 오동작 없이 계속적으로 사용할 수 있다. 일 실시예에서, 비휘발성 메모리 시스템(100)에 포함된 낸드 플래시 메모리 장치(120)는 임베디드 멀티미디어 카드(embedded multi media card; EMMC)로 구현될 수 있다. 이 경우, 파일 시스템(142)이 사용 가능한 논리 어드레스 공간을 감소시키는 세이브 스토리지 매니저(160)의 동작은 파티션 사이즈 조절 기능, 임베디드 멀티미디어 카드 동적 용량(eMMC dynamic capacity) 기능, 벤더 커맨드(vendor command) 기능 등과 연동될 수 있다. 다만, 이것은 예시적인 것으로서, 비휘발성 메모리 시스템(100)에 포함된 낸드 플래시 메모리 장치(120)는 솔리드 스테이트 드라이브(solid state drive; SSD), 시큐어 디지털 카드(secure digital card; SDCARD), 유니버셜 플래시 스토리지(universal flash storage; UFS), CF 카드(compact flash card), 메모리 스틱(memory stick), XD 픽쳐 카드(XD picture card) 등으로 구현될 수 있다.
도 3은 도 1의 비휘발성 메모리 시스템에서 세이브 스토리지 매니저가 논리 어드레스 공간을 감소시키는 일 예를 나타내는 도면이다.
도 3을 참조하면, 세이브 스토리지 매니저(160)는 낸드 플래시 메모리(122) 내에 런-타임 배드 블록들의 개수가 증가함에 따라 낸드 플래시 메모리 장치(120)가 호스트 장치(140)에 제공해야 할 원래의 논리 어드레스 공간 즉, 제1 논리 어드레스 공간(ORG)을 물리적으로 감당할 수 없는 경우, 파일 시스템(142)으로 하여금 파일 시스템(142)이 사용하고 있지 않은 비사용 논리 어드레스 공간 즉, 제1 논리 어드레스들(FLA)의 일부를 회수하도록 함으로써, 파일 시스템(142)이 사용 가능한 논리 어드레스 공간을 제1 논리 어드레스 공간(ORG)에서 제2 논리 어드레스 공간(LAS)으로 감소시킬 수 있다. 즉, 세이브 스토리지 매니저(160)는 제1 논리 어드레스 공간(ORG) 중에서 제1 논리 어드레스들(FLA)의 일부(즉, 회수된 논리 어드레스들(REA))를 호스트 장치(140)(즉, 파일 시스템(142))가 더 이상 사용하지 못하게 함으로써, 파일 시스템(142)이 사용 가능한 논리 어드레스 공간을 제1 논리 어드레스 공간(ORG)에서 제2 논리 어드레스 공간(LAS)으로 감소시킬 수 있다. 예를 들어, 파일 시스템(142)은 회수된 논리 어드레스들(REA)에 대해 무효 공간(invalid space)으로 마크(mark)하여 관리함으로써 회수된 논리 어드레스들(REA)로의 액세스(access)를 방지할 수 있다. 한편, 세이브 스토리지 매니저(160)는 호스트 장치(140)(즉, 파일 시스템(142))가 사용 가능한 논리 어드레스 공간이 제1 논리 어드레스 공간(ORG)에서 제2 논리 어드레스 공간(LAS)으로 감소되었음을 낸드 플래시 메모리 장치(120)에 알려 낸드 플래시 메모리 장치(120)로 하여금 낸드 플래시 메모리(122)에 발생한 런-타임 배드 블록들을 처리하도록 할 수 있다.
도 4는 도 1의 비휘발성 메모리 시스템에서 세이브 스토리지 매니저가 논리 어드레스 공간을 감소시키는 다른 예를 나타내는 도면이다.
도 4를 참조하면, 세이브 스토리지 매니저(160)는 낸드 플래시 메모리(122) 내에 런-타임 배드 블록들의 개수가 증가함에 따라 낸드 플래시 메모리 장치(120)가 호스트 장치(140)에 제공해야 할 원래의 논리 어드레스 공간 즉, 제1 논리 어드레스 공간(ORG)을 물리적으로 감당할 수 없는 경우, 파일 시스템(142)으로 하여금 파일 시스템(142)이 사용하고 있는 사용 논리 어드레스 공간 즉, 제2 논리 어드레스들(SLA)에 대해 단편화-제거 동작(즉, DEFRAGMENTATION으로 표시)을 수행하여 파일 시스템(142)이 사용하고 있지 않은 비사용 논리 어드레스 공간 즉, 제1 논리 어드레스들(FLA)을 연속적으로 재배치한 후, 제1 논리 어드레스들(FLA)의 일부를 회수하도록 함으로써, 파일 시스템(142)이 사용 가능한 논리 어드레스 공간을 제1 논리 어드레스 공간(ORG)에서 제2 논리 어드레스 공간(LAS)으로 감소시킬 수 있다. 즉, 세이브 스토리지 매니저(160)는 상기 단편화-제거 동작에 의해 제1 논리 어드레스들(FLA)이 연속적으로 재배치되면(즉, 제1 논리 어드레스들(FLA)이 모아지면), 제1 논리 어드레스 공간(ORG) 중에서 제1 논리 어드레스들(FLA)의 일부(즉, 회수된 논리 어드레스들(REA))를 호스트 장치(140)(즉, 파일 시스템(142))가 더 이상 사용하지 못하게 함으로써, 파일 시스템(142)이 사용 가능한 논리 어드레스 공간을 제1 논리 어드레스 공간(ORG)에서 제2 논리 어드레스 공간(LAS)으로 감소시킬 수 있다. 예를 들어, 파일 시스템(142)은 회수된 논리 어드레스들(REA)에 대해 무효 공간으로 마크하여 관리함으로써 회수된 논리 어드레스들(REA)로의 액세스를 방지할 수 있다. 한편, 세이브 스토리지 매니저(160)는 호스트 장치(140)(즉, 파일 시스템(142))가 사용 가능한 논리 어드레스 공간이 제1 논리 어드레스 공간(ORG)에서 제2 논리 어드레스 공간(LAS)으로 감소되었음을 낸드 플래시 메모리 장치(120)에 알려 낸드 플래시 메모리 장치(120)로 하여금 낸드 플래시 메모리(122)에 발생한 런-타임 배드 블록들을 처리하도록 할 수 있다.
도 5는 도 1의 비휘발성 메모리 시스템에서 세이브 스토리지 매니저가 논리 어드레스 공간을 감소시키는 또 다른 예를 나타내는 도면이다.
도 5를 참조하면, 세이브 스토리지 매니저(160)는 낸드 플래시 메모리(122) 내에 런-타임 배드 블록들의 개수가 증가함에 따라 낸드 플래시 메모리 장치(120)가 호스트 장치(140)에 제공해야 할 원래의 논리 어드레스 공간 즉, 제1 논리 어드레스 공간(ORG)을 물리적으로 감당할 수 없는 경우, 파일 시스템(142)으로 하여금 파일 시스템(142)이 사용하고 있지 않은 비사용 논리 어드레스 공간 즉, 제1 논리 어드레스들(FLA)의 일부를 차지하는 더미 파일(DUM)을 생성함으로써, 파일 시스템(142)이 사용 가능한 논리 어드레스 공간을 제1 논리 어드레스 공간(ORG)에서 제2 논리 어드레스 공간(LAS)으로 감소시킬 수 있다. 즉, 세이브 스토리지 매니저(160)는 제1 논리 어드레스 공간(ORG) 중에서 제1 논리 어드레스들(FLA)의 일부를 호스트 장치(140)(즉, 파일 시스템(142))가 더 이상 사용하지 못하게 함으로써, 파일 시스템(142)이 사용 가능한 논리 어드레스 공간을 제1 논리 어드레스 공간(ORG)에서 제2 논리 어드레스 공간(LAS)으로 감소시킬 수 있다. 이와 같이, 세이브 스토리지 매니저(160)는 파일 시스템(142)이 사용하고 있지 않은 비사용 논리 어드레스 공간 즉, 제1 논리 어드레스들(FLA)의 일부에 더미 파일을 할당하는 방식으로 파일 시스템(142)이 사용 가능한 논리 어드레스 공간을 실질적으로 축소시킬 수 있다. 한편, 세이브 스토리지 매니저(160)는 호스트 장치(140)(즉, 파일 시스템(142))가 사용 가능한 논리 어드레스 공간이 제1 논리 어드레스 공간(ORG)에서 제2 논리 어드레스 공간(LAS)으로 감소되었음을 낸드 플래시 메모리 장치(120)에 알려 낸드 플래시 메모리 장치(120)로 하여금 낸드 플래시 메모리(122)에 발생한 런-타임 배드 블록들을 처리하도록 할 수 있다.
도 6은 도 1의 비휘발성 메모리 시스템에서 세이브 스토리지 매니저가 논리 어드레스 공간을 감소시키는 것을 결정하는 일 예를 나타내는 순서도이다.
도 6을 참조하면, 도 6은 낸드 플래시 메모리(122) 내에서 런-타임 배드 블록들이 낸드 플래시 메모리 장치(120)의 제조 시에 설정된 리저브드 블록들과 일대로 교체되는 방식으로 동작하는 낸드 플래시 메모리 장치(120)를 포함하는 비휘발성 메모리 시스템(100)에서 세이브 스토리지 매니저(160)가 논리 어드레스 공간을 감소시키는 것을 보여주고 있다. 이 때, 리저브드 블록들은 낸드 플래시 메모리 장치(120)의 제조 시에 설정된 후 낸드 플래시 메모리 장치(120)가 사용됨에 따라 추가되지 않는다. 즉, 리저브드 블록들은 낸드 플래시 메모리 장치(120)의 제조 시에 예상 수명 동안에 필요한 개수(즉, 런-타임 배드 블록들의 발생 예상 개수)만큼 설정되고, 상기 리저브드 블록들이 모두 소진되면 해당 낸드 플래시 메모리 장치(120)는 폐기되는 것이다. 구체적으로, 세이브 스토리지 매니저(160)는 낸드 플래시 메모리(122)에 발생한 런-타임 배드 블록들의 개수를 확인(S110)하고, 낸드 플래시 메모리(122)에 발생한 런-타임 배드 블록들의 개수가 기준 개수보다 큰 지 여부를 확인(S120)할 수 있다. 이 때, 낸드 플래시 메모리(122)에 발생한 런-타임 배드 블록들의 개수가 기준 개수보다 크지 않으면, 세이브 스토리지 매니저(160)는 상기 단계들(S110, S120)을 계속 반복할 수 있다. 반면에, 낸드 플래시 메모리(122)에 발생한 런-타임 배드 블록들의 개수가 기준 개수보다 크면, 세이브 스토리지 매니저(160)는 파일 시스템(142)으로 하여금 파일 시스템(142)이 사용 가능한 논리 어드레스 공간을 감소(S130)시키도록 할 수 있다. 이 때, 세이브 스토리지 매니저(160)는 파일 시스템(142)이 사용 가능한 논리 어드레스 공간이 감소되었음을 낸드 플래시 메모리 장치(120)(즉, 메모리 컨트롤러(124))에 알림으로써, 메모리 컨트롤러(124)로 하여금 낸드 플래시 메모리(122) 내에서 런-타임 배드 블록들을 리저브드 블록들로 대체(S140)하도록 할 수 있다. 이후, 세이브 스토리지 매니저(160)는 런-타임 배드 블록들의 개수와 비교될 기준 개수를 증가(S150)시키고, 증가된 기준 개수에 기초하여 상기 단계들(S110, S120, S130, S140 및 S150)을 반복할 수 있다. 이와 같이, 세이브 스토리지 매니저(160)는 낸드 플래시 메모리 장치(120)의 제조 시에 설정된 리저브드 블록들이 모두 소진될 때까지 낸드 플래시 메모리(122) 내 런-타임 배드 블록들의 개수가 기준 개수보다 클 때마다 파일 시스템(142)으로 하여금 파일 시스템(142)이 사용 가능한 논리 어드레스 공간을 감소시키도록 함으로써, 낸드 플래시 메모리 장치(120)의 제조 시에 설정된 리저브드 블록들이 남아 있음에도 불구하고 낸드 플래시 메모리 장치(120)가 호스트 장치(140)에 충분한 논리 어드레스 공간을 제공하지 못한다는 이유로 일괄적으로 폐기되는 것을 방지할 수 있다. 다만, 도 6에 도시된 방식은 예시적인 것에 불과한 것으로서, 본 발명의 방식이 그에 한정되지 않음을 알아야 한다.
도 7은 도 1의 비휘발성 메모리 시스템에서 세이브 스토리지 매니저가 논리 어드레스 공간을 감소시키는 것을 결정하는 다른 예를 나타내는 순서도이다.
도 7을 참조하면, 도 7은 낸드 플래시 메모리(122) 내에서 런-타임 배드 블록들이 리저브드 블록들과 일대일로 교체되는 방식으로 동작하는 낸드 플래시 메모리 장치(120)를 포함하는 비휘발성 메모리 시스템(100)에서 세이브 스토리지 매니저(160)가 논리 어드레스 공간을 감소시키는 것을 보여주고 있다. 이 때, 리저브드 블록들은 낸드 플래시 메모리 장치(120)의 제조 시에 설정된 후 낸드 플래시 메모리 장치(120)가 사용됨에 따라 낸드 플래시 메모리(122) 내에서 프리 블록들 중 일부가 리저브드 블록들로 전환됨으로써 추가(즉, 낸드 플래시 메모리 장치(120)의 동작 중에 추가적으로 확보)된다. 즉, 낸드 플래시 메모리 장치(120)의 제조 시에는 소량의 리저브드 블록들이 설정되고, 낸드 플래시 메모리 장치(120)의 동작 중에 리저브르 블록들의 개수가 감소(즉, 런-타임 배드 블록들을 대체)하면, 프리 블록들 중 일부가 리저브드 블록들로 새로이 등록(즉, 전환)되는 것이다. 구체적으로, 세이브 스토리지 매니저(160)는 낸드 플래시 메모리(122)에 발생한 런-타임 배드 블록들의 개수를 확인(S210)하고, 낸드 플래시 메모리(122)에 발생한 런-타임 배드 블록들의 개수가 기준 개수보다 큰 지 여부를 확인(S220)할 수 있다. 이 때, 낸드 플래시 메모리(122)에 발생한 런-타임 배드 블록들의 개수가 기준 개수보다 크지 않으면, 세이브 스토리지 매니저(160)는 상기 단계들(S210, S220)을 계속 반복할 수 있다. 반면에, 낸드 플래시 메모리(122)에 발생한 런-타임 배드 블록들의 개수가 기준 개수보다 크면, 세이브 스토리지 매니저(160)는 파일 시스템(142)으로 하여금 파일 시스템(142)이 사용 가능한 논리 어드레스 공간을 감소(S230)시키도록 할 수 있다. 이 때, 세이브 스토리지 매니저(160)는 파일 시스템(142)이 사용 가능한 논리 어드레스 공간이 감소되었음을 낸드 플래시 메모리 장치(120)(즉, 메모리 컨트롤러(124))에 알림으로써, 메모리 컨트롤러(124)로 하여금 프리 블록들 중 일부를 리저브드 블록들로 전환(S240)하도록 하고, 낸드 플래시 메모리(122) 내에서 런-타임 배드 블록들을 리저브드 블록들로 대체(S250)하도록 할 수 있다. 이후, 세이브 스토리지 매니저(160)는 런-타임 배드 블록들의 개수와 비교될 기준 개수를 증가(S260)시키고, 증가된 기준 개수에 기초하여 상기 단계들(S210, S220, S230, S240, S250 및 S260)을 반복할 수 있다. 이와 같이, 세이브 스토리지 매니저(160)는 낸드 플래시 메모리(122) 내 런-타임 배드 블록들의 개수가 기준 개수보다 클 때마다 파일 시스템(142)으로 하여금 파일 시스템(142)이 사용 가능한 논리 어드레스 공간을 감소시키도록 함으로써, 리저브드 블록들로 새로이 등록될 프리 블록들이 남아 있음에도 불구하고 낸드 플래시 메모리 장치(120)가 호스트 장치(140)에 충분한 논리 어드레스 공간을 제공하지 못한다는 이유로 일괄적으로 폐기되는 것을 방지할 수 있다. 다만, 도 7에 도시된 방식은 예시적인 것에 불과한 것으로서, 본 발명의 방식이 그에 한정되지 않음을 알아야 한다.
도 8은 도 1의 비휘발성 메모리 시스템에서 세이브 스토리지 매니저가 논리 어드레스 공간을 감소시키는 것을 결정하는 또 다른 예를 나타내는 순서도이다.
도 8을 참조하면, 도 8은 낸드 플래시 메모리(122) 내에서 런-타임 배드 블록들을 대체할 리저브드 블록들을 따로 운용하지 않고, 런-타임 배드 블록들의 유효한 데이터들을 프리 블록들로 이동시킨 후 런-타임 배드 블록들을 사용 불가 처리하는 방식으로 동작하는 낸드 플래시 메모리 장치(120)를 포함하는 비휘발성 메모리 시스템(100)에서 세이브 스토리지 매니저(160)가 논리 어드레스 공간을 감소시키는 것을 보여주고 있다. 구체적으로, 세이브 스토리지 매니저(160)는 낸드 플래시 메모리(122)에 발생한 런-타임 배드 블록들의 개수를 확인(S310)하고, 낸드 플래시 메모리(122)에 발생한 런-타임 배드 블록들의 개수가 기준 개수보다 큰 지 여부를 확인(S320)할 수 있다. 이 때, 낸드 플래시 메모리(122)에 발생한 런-타임 배드 블록들의 개수가 기준 개수보다 크지 않으면, 세이브 스토리지 매니저(160)는 상기 단계들(S310, S320)을 계속 반복할 수 있다. 반면에, 낸드 플래시 메모리(122)에 발생한 런-타임 배드 블록들의 개수가 기준 개수보다 크면, 세이브 스토리지 매니저(160)는 파일 시스템(142)으로 하여금 파일 시스템(142)이 사용 가능한 논리 어드레스 공간을 감소(S330)시키도록 할 수 있다. 이 때, 세이브 스토리지 매니저(160)는 파일 시스템(142)이 사용 가능한 논리 어드레스 공간이 감소되었음을 낸드 플래시 메모리 장치(120)(즉, 메모리 컨트롤러(124))에 알림으로써, 메모리 컨트롤러(124)로 하여금 낸드 플래시 메모리(122) 내에서 런-타임 배드 블록들의 유효한 데이터들을 프리 블록들로 이동(S340)시키도록 하고, 상기 런-타임 배드 블록들을 사용 불가 처리(S350)하도록 할 수 있다. 이후, 세이브 스토리지 매니저(160)는 런-타임 배드 블록들의 개수와 비교될 기준 개수를 증가(S360)시키고, 증가된 기준 개수에 기초하여 상기 단계들(S310, S320, S330, S340, S350 및 S360)을 반복할 수 있다. 이와 같이, 세이브 스토리지 매니저(160)는 낸드 플래시 메모리(122) 내 런-타임 배드 블록들의 개수가 기준 개수보다 클 때마다 파일 시스템(142)으로 하여금 파일 시스템(142)이 사용 가능한 논리 어드레스 공간을 감소시키도록 함으로써, 런-타임 배드 블록들의 유효한 데이터들이 이동 가능한 프리 블록들이 남아 있음에도 불구하고 낸드 플래시 메모리 장치(120)가 호스트 장치(140)에 충분한 논리 어드레스 공간을 제공하지 못한다는 이유로 일괄적으로 폐기되는 것을 방지할 수 있다. 다만, 도 8에 도시된 방식은 예시적인 것에 불과한 것으로서, 본 발명의 방식이 그에 한정되지 않음을 알아야 한다.
본 발명은 호스트 장치와 낸드 플래시 메모리 장치를 포함하는 비휘발성 메모리 시스템에 적용될 수 있다. 예를 들어, 본 발명은 임베디드 멀티미디어 카드(EMMC), 솔리드 스테이트 드라이브(SSD), 시큐어 디지털 카드(SDCARD), 유니버셜 플래시 스토리지(UFS), CF 카드, 메모리 스틱, XD 픽쳐 카드 등에 적용될 수 있다.
이상에서는 본 발명의 실시예들을 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
100: 비휘발성 메모리 시스템 120: 낸드 플래시 메모리 장치
122: 낸드 플래시 메모리 124: 메모리 컨트롤러
126: 플래시 변환 레이어 140: 호스트 장치
142: 파일 시스템 144: 호스트 컨트롤러
160: 세이브 스토리지 매니저 ORG: 제1 논리 어드레스 공간
LAS: 제2 논리 어드레스 공간 FLA: 제1 논리 어드레스들
SLA: 제2 논리 어드레스들 REA: 회수된 논리 어드레스들
DUM: 더미 파일

Claims (14)

  1. 적어도 하나의 낸드 플래시 메모리 및 상기 낸드 플래시 메모리를 제어하는 메모리 컨트롤러를 구비한 낸드 플래시 메모리 장치;
    파일 시스템 및 상기 파일 시스템으로부터 커맨드를 입력받아 상기 낸드 플래시 메모리 장치에 제공하는 호스트 컨트롤러를 구비한 호스트 장치; 및
    상기 낸드 플래시 메모리에 발생한 런-타임 배드 블록들의 개수와 위치를 모니터링하고, 상기 파일 시스템의 논리 어드레스 사용 현황을 모니터링하며, 상기 런-타임 배드 블록들의 상기 개수가 증가함에 따라 상기 파일 시스템이 사용 가능한 논리 어드레스 공간을 감소시키는 세이브 스토리지 매니저를 포함하는 비휘발성 메모리 시스템.
  2. 제 1 항에 있어서, 상기 세이브 스토리지 매니저는 상기 호스트 컨트롤러 또는 상기 메모리 컨트롤러에 포함되고, 상기 파일 시스템 및 상기 메모리 컨트롤러에 포함된 플래시 변환 레이어와 인터액션(interaction)하는 것을 특징으로 하는 비휘발성 메모리 시스템.
  3. 제 1 항에 있어서, 상기 세이브 스토리지 매니저는 상기 파일 시스템으로 하여금 상기 파일 시스템이 사용하고 있지 않은 제1 논리 어드레스들 중 일부를 회수(recall)하도록 함으로써 상기 논리 어드레스 공간을 감소시키는 것을 특징으로 하는 비휘발성 메모리 시스템.
  4. 제 3 항에 있어서, 상기 세이브 스토리지 매니저는 상기 파일 시스템으로 하여금 상기 제1 논리 어드레스들 중 상기 일부를 회수하기 이전에 상기 파일 시스템이 사용하고 있는 제2 논리 어드레스들에 대해 단편화-제거(defragmentation) 동작을 수행하여 상기 제1 논리 어드레스들을 연속적으로 재배치하도록 하는 것을 특징으로 하는 비휘발성 메모리 시스템.
  5. 제 1 항에 있어서, 상기 세이브 스토리지 매니저는 상기 파일 시스템으로 하여금 상기 파일 시스템이 사용하고 있지 않은 제1 논리 어드레스들 중 일부를 차지(occupy)하는 더미 파일(dummy file)을 생성함으로써 상기 논리 어드레스 공간을 감소시키는 것을 특징으로 하는 비휘발성 메모리 시스템.
  6. 제 1 항에 있어서, 상기 세이브 스토리지 매니저는 상기 논리 어드레스 공간을 감소시킬 때 상기 메모리 컨트롤러로 하여금 상기 낸드 플래시 메모리 내에서 상기 런-타임 배드 블록들을 리저브드 블록들로 대체(replace)하도록 하는 것을 특징으로 하는 비휘발성 메모리 시스템.
  7. 제 6 항에 있어서, 상기 세이브 스토리지 매니저는 상기 런-타임 배드 블록들의 상기 개수가 기준 개수보다 클 때마다 상기 파일 시스템으로 하여금 상기 논리 어드레스 공간을 감소시키도록 하고, 상기 기준 개수는 상기 낸드 플래시 메모리 장치가 사용됨에 따라 증가하는 것을 특징으로 하는 비휘발성 메모리 시스템.
  8. 제 7 항에 있어서, 상기 리저브드 블록들은 상기 낸드 플래시 메모리 장치의 제조 시에 설정된 후 상기 낸드 플래시 메모리 장치가 사용됨에 따라 추가되지 않는 것을 특징으로 하는 비휘발성 메모리 시스템.
  9. 제 7 항에 있어서, 상기 리저브드 블록들은 상기 낸드 플래시 메모리 장치의 제조 시에 설정된 후 상기 낸드 플래시 메모리 장치가 사용됨에 따라 상기 낸드 플래시 메모리 내에서 프리 블록들 중 일부가 상기 리저브드 블록들로 전환됨으로써 추가되는 것을 특징으로 하는 비휘발성 메모리 시스템.
  10. 제 1 항에 있어서, 상기 세이브 스토리지 매니저는 상기 논리 어드레스 공간을 감소시킬 때 상기 메모리 컨트롤러로 하여금 상기 낸드 플래시 메모리 내에서 상기 런-타임 배드 블록들을 사용 불가 처리(retire)하도록 하는 것을 특징으로 하는 비휘발성 메모리 시스템.
  11. 제 10 항에 있어서, 상기 세이브 스토리지 매니저는 상기 메모리 컨트롤러로 하여금 상기 낸드 플래시 메모리 내에서 상기 런-타임 배드 블록들을 사용 불가 처리하기 이전에 상기 런-타임 배드 블록들의 유효한 데이터들을 프리 블록들로 이동시키도록 하는 것을 특징으로 하는 비휘발성 메모리 시스템.
  12. 제 11 항에 있어서, 상기 세이브 스토리지 매니저는 상기 런-타임 배드 블록들의 상기 개수가 기준 개수보다 클 때마다 상기 파일 시스템으로 하여금 상기 논리 어드레스 공간을 감소시키도록 하고, 상기 기준 개수는 상기 낸드 플래시 메모리 장치가 사용됨에 따라 증가하는 것을 특징으로 하는 비휘발성 메모리 시스템.
  13. 적어도 하나의 낸드 플래시 메모리; 및
    상기 낸드 플래시 메모리를 제어하는 메모리 컨트롤러를 포함하고,
    상기 메모리 컨트롤러는
    상기 낸드 플래시 메모리에 발생한 런-타임 배드 블록들의 개수와 위치를 모니터링하고, 호스트 장치에 구비된 파일 시스템의 논리 어드레스 사용 현황을 모니터링하며, 상기 런-타임 배드 블록들의 상기 개수가 증가함에 따라 상기 파일 시스템이 사용 가능한 논리 어드레스 공간을 감소시키는 세이브 스토리지 매니저를 포함하는 것을 특징으로 하는 낸드 플래시 메모리 장치.
  14. 파일 시스템; 및
    상기 파일 시스템으로부터 커맨드를 입력받아 낸드 플래시 메모리 장치에 제공하는 호스트 컨트롤러를 포함하고,
    상기 호스트 컨트롤러는
    상기 낸드 플래시 메모리 장치에 구비된 적어도 하나의 낸드 플래시 메모리에 발생한 런-타임 배드 블록들의 개수와 위치를 모니터링하고, 상기 파일 시스템의 논리 어드레스 사용 현황을 모니터링하며, 상기 런-타임 배드 블록들의 상기 개수가 증가함에 따라 상기 파일 시스템이 사용 가능한 논리 어드레스 공간을 감소시키는 세이브 스토리지 매니저를 포함하는 것을 특징으로 하는 호스트 장치.
KR1020180055712A 2018-05-16 2018-05-16 비휘발성 메모리 시스템 KR102098240B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020180055712A KR102098240B1 (ko) 2018-05-16 2018-05-16 비휘발성 메모리 시스템
US15/983,176 US10613767B2 (en) 2018-05-16 2018-05-18 Non-volatile memory system
TW107117292A TWI708262B (zh) 2018-05-16 2018-05-21 非揮發性記憶體系統、nand快閃記憶體裝置及主機裝置
CN201810491109.8A CN110502448A (zh) 2018-05-16 2018-05-21 非易失性存储器系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180055712A KR102098240B1 (ko) 2018-05-16 2018-05-16 비휘발성 메모리 시스템

Publications (2)

Publication Number Publication Date
KR20190131170A true KR20190131170A (ko) 2019-11-26
KR102098240B1 KR102098240B1 (ko) 2020-04-08

Family

ID=68532568

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180055712A KR102098240B1 (ko) 2018-05-16 2018-05-16 비휘발성 메모리 시스템

Country Status (4)

Country Link
US (1) US10613767B2 (ko)
KR (1) KR102098240B1 (ko)
CN (1) CN110502448A (ko)
TW (1) TWI708262B (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210080907A (ko) * 2019-12-23 2021-07-01 주식회사 디에이아이오 비휘발성 메모리 시스템

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111933199B (zh) * 2020-08-07 2021-03-30 深圳市纵维立方科技有限公司 基于存储器的数据读写方法、装置及存储介质
US11698854B2 (en) * 2021-08-25 2023-07-11 Western Digital Technologies, Inc. Global extension of a logical-to-physical region of a data storage device
US20240338313A1 (en) * 2023-04-10 2024-10-10 Essencore Limited Method for processing memory device

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120003283A (ko) * 2010-07-02 2012-01-10 삼성전자주식회사 데이터 저장 장치 및 그것의 배드 블록 관리 방법
KR20120109244A (ko) * 2011-03-28 2012-10-08 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 배드 영역 관리 방법
KR20130115603A (ko) * 2012-04-12 2013-10-22 주식회사 유니테크반도체 플래시 메모리를 포함하는 메모리 장치 및 예비 블록 관리 방법
KR20140006945A (ko) * 2011-03-11 2014-01-16 마이크로소프트 코포레이션 데이터 중복제거를 위한 백업 및 복원 전략
KR20140104189A (ko) * 2013-02-20 2014-08-28 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 데이터 처리 방법
KR20140113211A (ko) * 2013-03-15 2014-09-24 삼성전자주식회사 비휘발성 메모리 시스템, 이를 포함하는 시스템 및 상기 비휘발성 메모리 시스템의 적응적 사용자 저장 영역 조절 방법

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999031592A1 (fr) * 1997-12-16 1999-06-24 Tdk Corporation Systeme de memoire flash
US7991942B2 (en) * 2007-05-09 2011-08-02 Stmicroelectronics S.R.L. Memory block compaction method, circuit, and system in storage devices based on flash memories
JP2009003783A (ja) * 2007-06-22 2009-01-08 Toshiba Corp 不揮発性メモリの制御装置及び制御方法及び記憶装置
US20100235605A1 (en) 2009-02-13 2010-09-16 Nir Perry Enhancement of storage life expectancy by bad block management
WO2011044154A1 (en) * 2009-10-05 2011-04-14 Marvell Semiconductor, Inc. Data caching in non-volatile memory
KR101638061B1 (ko) 2009-10-27 2016-07-08 삼성전자주식회사 플래시 메모리 시스템 및 그것의 플래시 조각 모음 방법
KR20130044657A (ko) * 2011-10-24 2013-05-03 삼성전자주식회사 파일 시스템 및 그 제어 방법
CN103778065B (zh) * 2012-10-25 2016-12-21 北京兆易创新科技股份有限公司 一种闪速存储器及其进行坏块管理的方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120003283A (ko) * 2010-07-02 2012-01-10 삼성전자주식회사 데이터 저장 장치 및 그것의 배드 블록 관리 방법
KR20140006945A (ko) * 2011-03-11 2014-01-16 마이크로소프트 코포레이션 데이터 중복제거를 위한 백업 및 복원 전략
KR20120109244A (ko) * 2011-03-28 2012-10-08 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 배드 영역 관리 방법
KR20130115603A (ko) * 2012-04-12 2013-10-22 주식회사 유니테크반도체 플래시 메모리를 포함하는 메모리 장치 및 예비 블록 관리 방법
KR20140104189A (ko) * 2013-02-20 2014-08-28 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 데이터 처리 방법
KR20140113211A (ko) * 2013-03-15 2014-09-24 삼성전자주식회사 비휘발성 메모리 시스템, 이를 포함하는 시스템 및 상기 비휘발성 메모리 시스템의 적응적 사용자 저장 영역 조절 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210080907A (ko) * 2019-12-23 2021-07-01 주식회사 디에이아이오 비휘발성 메모리 시스템

Also Published As

Publication number Publication date
US20190354293A1 (en) 2019-11-21
TWI708262B (zh) 2020-10-21
CN110502448A (zh) 2019-11-26
KR102098240B1 (ko) 2020-04-08
US10613767B2 (en) 2020-04-07
TW201947585A (zh) 2019-12-16

Similar Documents

Publication Publication Date Title
TWI700586B (zh) 計算機系統及儲存裝置之控制方法
CN109725847B (zh) 存储器系统及控制方法
US10459636B2 (en) System and method for managing data in non-volatile memory systems having multiple mapping layers
KR102098240B1 (ko) 비휘발성 메모리 시스템
TWI674502B (zh) 記憶體系統及控制方法
US8560770B2 (en) Non-volatile write cache for a data storage system
JP5192352B2 (ja) 記憶装置及びデータ格納領域管理方法
KR101324688B1 (ko) 영구 가비지 컬렉션을 갖는 메모리 시스템
JP5031849B2 (ja) フラッシュメモリのブロック管理方法
JP4844639B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
US7797481B2 (en) Method and apparatus for flash memory wear-leveling using logical groups
JP2019057172A (ja) メモリシステムおよび制御方法
JP2018120439A (ja) メモリシステムおよび制御方法
JP2019057178A (ja) メモリシステムおよび制御方法
KR20070046864A (ko) 플래쉬 화일 시스템에서 가상-물리 주소 변환 방법 및시스템
CN114372007A (zh) 存储器系统及控制非易失性存储器的控制方法
CN107817945B (zh) 一种混合内存结构的数据读取方法和系统
JP2011070365A (ja) メモリシステム
US20150074333A1 (en) Memory controller and memory system
US20190026027A1 (en) Data backup method, data recovery method and storage controller
KR101083683B1 (ko) 플래쉬 메모리 장치 및 및 이를 위한 리드동작 제어 방법
KR102335004B1 (ko) 비휘발성 메모리 시스템
TWI808011B (zh) 資料處理方法及對應之資料儲存裝置
CN110888591A (zh) 数据储存装置以及非挥发式存储器控制方法
JP2024043007A (ja) メモリシステムおよび制御方法

Legal Events

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