KR20190131170A - 비휘발성 메모리 시스템 - Google Patents
비휘발성 메모리 시스템 Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
- G06F2212/1036—Life time enhancement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
- G06F2212/1044—Space efficiency improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7204—Capacity control, e.g. partitioning, end-of-life degradation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7205—Cleaning, 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
본 발명은 반도체 메모리 시스템에 관한 것이다. 보다 상세하게는, 본 발명은 호스트(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의 비휘발성 메모리 시스템에서 세이브 스토리지 매니저가 논리 어드레스 공간을 감소시키는 것을 결정하는 또 다른 예를 나타내는 순서도이다.
도 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: 더미 파일
122: 낸드 플래시 메모리 124: 메모리 컨트롤러
126: 플래시 변환 레이어 140: 호스트 장치
142: 파일 시스템 144: 호스트 컨트롤러
160: 세이브 스토리지 매니저 ORG: 제1 논리 어드레스 공간
LAS: 제2 논리 어드레스 공간 FLA: 제1 논리 어드레스들
SLA: 제2 논리 어드레스들 REA: 회수된 논리 어드레스들
DUM: 더미 파일
Claims (14)
- 적어도 하나의 낸드 플래시 메모리 및 상기 낸드 플래시 메모리를 제어하는 메모리 컨트롤러를 구비한 낸드 플래시 메모리 장치;
파일 시스템 및 상기 파일 시스템으로부터 커맨드를 입력받아 상기 낸드 플래시 메모리 장치에 제공하는 호스트 컨트롤러를 구비한 호스트 장치; 및
상기 낸드 플래시 메모리에 발생한 런-타임 배드 블록들의 개수와 위치를 모니터링하고, 상기 파일 시스템의 논리 어드레스 사용 현황을 모니터링하며, 상기 런-타임 배드 블록들의 상기 개수가 증가함에 따라 상기 파일 시스템이 사용 가능한 논리 어드레스 공간을 감소시키는 세이브 스토리지 매니저를 포함하는 비휘발성 메모리 시스템. - 제 1 항에 있어서, 상기 세이브 스토리지 매니저는 상기 호스트 컨트롤러 또는 상기 메모리 컨트롤러에 포함되고, 상기 파일 시스템 및 상기 메모리 컨트롤러에 포함된 플래시 변환 레이어와 인터액션(interaction)하는 것을 특징으로 하는 비휘발성 메모리 시스템.
- 제 1 항에 있어서, 상기 세이브 스토리지 매니저는 상기 파일 시스템으로 하여금 상기 파일 시스템이 사용하고 있지 않은 제1 논리 어드레스들 중 일부를 회수(recall)하도록 함으로써 상기 논리 어드레스 공간을 감소시키는 것을 특징으로 하는 비휘발성 메모리 시스템.
- 제 3 항에 있어서, 상기 세이브 스토리지 매니저는 상기 파일 시스템으로 하여금 상기 제1 논리 어드레스들 중 상기 일부를 회수하기 이전에 상기 파일 시스템이 사용하고 있는 제2 논리 어드레스들에 대해 단편화-제거(defragmentation) 동작을 수행하여 상기 제1 논리 어드레스들을 연속적으로 재배치하도록 하는 것을 특징으로 하는 비휘발성 메모리 시스템.
- 제 1 항에 있어서, 상기 세이브 스토리지 매니저는 상기 파일 시스템으로 하여금 상기 파일 시스템이 사용하고 있지 않은 제1 논리 어드레스들 중 일부를 차지(occupy)하는 더미 파일(dummy file)을 생성함으로써 상기 논리 어드레스 공간을 감소시키는 것을 특징으로 하는 비휘발성 메모리 시스템.
- 제 1 항에 있어서, 상기 세이브 스토리지 매니저는 상기 논리 어드레스 공간을 감소시킬 때 상기 메모리 컨트롤러로 하여금 상기 낸드 플래시 메모리 내에서 상기 런-타임 배드 블록들을 리저브드 블록들로 대체(replace)하도록 하는 것을 특징으로 하는 비휘발성 메모리 시스템.
- 제 6 항에 있어서, 상기 세이브 스토리지 매니저는 상기 런-타임 배드 블록들의 상기 개수가 기준 개수보다 클 때마다 상기 파일 시스템으로 하여금 상기 논리 어드레스 공간을 감소시키도록 하고, 상기 기준 개수는 상기 낸드 플래시 메모리 장치가 사용됨에 따라 증가하는 것을 특징으로 하는 비휘발성 메모리 시스템.
- 제 7 항에 있어서, 상기 리저브드 블록들은 상기 낸드 플래시 메모리 장치의 제조 시에 설정된 후 상기 낸드 플래시 메모리 장치가 사용됨에 따라 추가되지 않는 것을 특징으로 하는 비휘발성 메모리 시스템.
- 제 7 항에 있어서, 상기 리저브드 블록들은 상기 낸드 플래시 메모리 장치의 제조 시에 설정된 후 상기 낸드 플래시 메모리 장치가 사용됨에 따라 상기 낸드 플래시 메모리 내에서 프리 블록들 중 일부가 상기 리저브드 블록들로 전환됨으로써 추가되는 것을 특징으로 하는 비휘발성 메모리 시스템.
- 제 1 항에 있어서, 상기 세이브 스토리지 매니저는 상기 논리 어드레스 공간을 감소시킬 때 상기 메모리 컨트롤러로 하여금 상기 낸드 플래시 메모리 내에서 상기 런-타임 배드 블록들을 사용 불가 처리(retire)하도록 하는 것을 특징으로 하는 비휘발성 메모리 시스템.
- 제 10 항에 있어서, 상기 세이브 스토리지 매니저는 상기 메모리 컨트롤러로 하여금 상기 낸드 플래시 메모리 내에서 상기 런-타임 배드 블록들을 사용 불가 처리하기 이전에 상기 런-타임 배드 블록들의 유효한 데이터들을 프리 블록들로 이동시키도록 하는 것을 특징으로 하는 비휘발성 메모리 시스템.
- 제 11 항에 있어서, 상기 세이브 스토리지 매니저는 상기 런-타임 배드 블록들의 상기 개수가 기준 개수보다 클 때마다 상기 파일 시스템으로 하여금 상기 논리 어드레스 공간을 감소시키도록 하고, 상기 기준 개수는 상기 낸드 플래시 메모리 장치가 사용됨에 따라 증가하는 것을 특징으로 하는 비휘발성 메모리 시스템.
- 적어도 하나의 낸드 플래시 메모리; 및
상기 낸드 플래시 메모리를 제어하는 메모리 컨트롤러를 포함하고,
상기 메모리 컨트롤러는
상기 낸드 플래시 메모리에 발생한 런-타임 배드 블록들의 개수와 위치를 모니터링하고, 호스트 장치에 구비된 파일 시스템의 논리 어드레스 사용 현황을 모니터링하며, 상기 런-타임 배드 블록들의 상기 개수가 증가함에 따라 상기 파일 시스템이 사용 가능한 논리 어드레스 공간을 감소시키는 세이브 스토리지 매니저를 포함하는 것을 특징으로 하는 낸드 플래시 메모리 장치. - 파일 시스템; 및
상기 파일 시스템으로부터 커맨드를 입력받아 낸드 플래시 메모리 장치에 제공하는 호스트 컨트롤러를 포함하고,
상기 호스트 컨트롤러는
상기 낸드 플래시 메모리 장치에 구비된 적어도 하나의 낸드 플래시 메모리에 발생한 런-타임 배드 블록들의 개수와 위치를 모니터링하고, 상기 파일 시스템의 논리 어드레스 사용 현황을 모니터링하며, 상기 런-타임 배드 블록들의 상기 개수가 증가함에 따라 상기 파일 시스템이 사용 가능한 논리 어드레스 공간을 감소시키는 세이브 스토리지 매니저를 포함하는 것을 특징으로 하는 호스트 장치.
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20210080907A (ko) * | 2019-12-23 | 2021-07-01 | 주식회사 디에이아이오 | 비휘발성 메모리 시스템 |
Families Citing this family (3)
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)
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)
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 | 北京兆易创新科技股份有限公司 | 一种闪速存储器及其进行坏块管理的方法 |
-
2018
- 2018-05-16 KR KR1020180055712A patent/KR102098240B1/ko active IP Right Grant
- 2018-05-18 US US15/983,176 patent/US10613767B2/en active Active
- 2018-05-21 TW TW107117292A patent/TWI708262B/zh active
- 2018-05-21 CN CN201810491109.8A patent/CN110502448A/zh active Pending
Patent Citations (6)
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)
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 |