KR101420754B1 - 비휘발성 메모리 시스템 및 이를 위한 맵핑 테이블 관리 방법 - Google Patents

비휘발성 메모리 시스템 및 이를 위한 맵핑 테이블 관리 방법 Download PDF

Info

Publication number
KR101420754B1
KR101420754B1 KR1020120132840A KR20120132840A KR101420754B1 KR 101420754 B1 KR101420754 B1 KR 101420754B1 KR 1020120132840 A KR1020120132840 A KR 1020120132840A KR 20120132840 A KR20120132840 A KR 20120132840A KR 101420754 B1 KR101420754 B1 KR 101420754B1
Authority
KR
South Korea
Prior art keywords
mapping table
host
flash memory
nand
nand flash
Prior art date
Application number
KR1020120132840A
Other languages
English (en)
Other versions
KR20140065856A (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 KR1020120132840A priority Critical patent/KR101420754B1/ko
Priority to PCT/KR2013/006611 priority patent/WO2014081100A1/ko
Publication of KR20140065856A publication Critical patent/KR20140065856A/ko
Application granted granted Critical
Publication of KR101420754B1 publication Critical patent/KR101420754B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • 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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • 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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories

Abstract

비휘발성 메모리 시스템은 낸드 플래시 메모리와 이를 제어하는 낸드 컨트롤러를 구비한 낸드 플래시 메모리 장치 및 파일 시스템과 이로부터 커맨드를 입력받아 낸드 플래시 메모리 장치에 제공하는 호스트 컨트롤러를 구비한 호스트 장치를 포함한다. 이 때, 낸드 플래시 메모리 장치에 낸드 맵핑 테이블이 구비되고, 호스트 장치에 호스트 맵핑 테이블이 구비되며, 낸드 맵핑 테이블과 호스트 맵핑 테이블이 동기화시킴으로써, 호스트 장치에서 우선적으로 어드레스 맵핑 동작이 수행된다.

Description

비휘발성 메모리 시스템 및 이를 위한 맵핑 테이블 관리 방법 {NON-VOLATILE MEMORY SYSTEM AND METHOD OF MANAGING A MAPPING TABLE FOR THE SAME}
본 발명은 반도체 메모리 시스템에 관한 것으로, 보다 상세하게는 낸드 플래시 메모리(NAND flash memory device) 장치를 구비한 비휘발성 메모리 시스템 및 이를 위한 맵핑 테이블 관리 방법에 관한 것이다.
반도체 메모리 장치는 전원이 공급되지 않는 상태에서 데이터를 보존할 수 있는지에 따라 휘발성 메모리 장치와 비휘발성 메모리 장치로 구분될 수 있다. 최근에는, 반도체 메모리 장치의 소형화, 대용량화 및 저비용화 추세에 따라, 비휘발성 메모리 장치 중에서 낸드 플래시 메모리 장치가 소형화, 대용량화 및 저비용화에 적합하여 널리 사용되고 있다. 일반적으로, 낸드 플래시 메모리 장치는 파일 시스템(file system)을 지원하기 위한 플래시 변환 레이어(flash translation layer; FTL)를 낸드 컨트롤러에 구비하고, 플래시 변환 레이어를 이용하여 읽기(read) 동작, 쓰기(write) 동작, 소거(erase) 동작, 병합(merge) 동작, 카피백(copyback) 동작, 컴팩션(compaction) 동작, 가비지 콜렉션(garbage collection) 동작(또는, 리클레임(reclaim) 동작), 웨어 레벨링(wear leveling) 동작 등을 수행한다.
한편, 플래시 변환 레이어가 파일 시스템을 지원하기 위해 논리적 어드레스(logical address)를 물리적 어드레스(physical address)로 변환하는 어드레스 맵핑(address mapping) 동작을 수행함에 있어서, 논리적 어드레스와 물리적 어드레스 사이의 맵핑 정보가 저장되어 있는 맵핑 테이블(mapping table)을 이용하게 된다. 일반적으로, 낸드 플래시 메모리 장치에서, 맵핑 테이블은 소정의 메모리 장치로 구현되고, 낸드 컨트롤러 내부에 위치하거나 또는 외부에 위치한다. 그러나, 낸드 플래시 메모리 장치가 대용량화되어 감에 따라, 맵핑 테이블의 사이즈도 커지기 때문에, 낸드 플래시 메모리 장치의 소형화, 대용량화 및 저비용화에 적합하지 않고, 맵핑 테이블을 검색하기 위한 시간이 증가하기 때문에, 낸드 플래시 메모리 장치의 동작 속도가 저하된다는 문제점이 있다.
본 발명의 일 목적은 호스트(host) 장치에서 파일 시스템으로부터 출력되는 커맨드가 지시하는 논리적 어드레스가 낸드 플래시 메모리 장치의 물리적 어드레스로 변환(즉, 호스트 장치에서 어드레스 맵핑 동작이 수행)되는 비휘발성 메모리 시스템을 제공하는 것이다.
본 발명의 다른 목적은 상기 비휘발성 메모리 시스템을 위한 맵핑 테이블 관리 방법을 제공하는 것이다.
다만, 본 발명의 해결하고자 하는 과제는 이에 한정되는 것이 아니며, 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위에서 다양하게 확장될 수 있을 것이다.
본 발명의 일 목적을 달성하기 위하여, 본 발명의 실시예들에 따른 비휘발성 메모리 시스템은 적어도 하나 이상의 낸드 플래시 메모리와 상기 낸드 플래시 메모리를 제어하는 낸드 컨트롤러를 구비한 낸드 플래시 메모리 장치, 및 파일 시스템과 상기 파일 시스템로부터 커맨드를 입력받아 상기 낸드 플래시 메모리 장치에 제공하는 호스트 컨트롤러를 구비한 호스트 장치를 포함할 수 있다. 이 때, 상기 비휘발성 메모리 시스템은 상기 낸드 플래시 메모리 장치에 낸드 맵핑 테이블을 구비하고, 상기 호스트 장치에 호스트 맵핑 테이블을 구비하며, 상기 낸드 맵핑 테이블과 상기 호스트 맵핑 테이블을 동기화시킴으로써, 상기 호스트 장치에서 우선적으로 어드레스 맵핑 동작을 수행할 수 있다.
일 실시예에 의하면, 상기 낸드 맵핑 테이블은 상기 낸드 컨트롤러 내부에 위치할 수 있고, 상기 호스트 맵핑 테이블은 상기 호스트 컨트롤러 내부에 위치할 수 있다.
일 실시예에 의하면, 상기 비휘발성 메모리 시스템은 상기 낸드 플래시 메모리 장치와 상기 호스트 장치가 부팅(booting)될 때, 상기 낸드 맵핑 테이블과 상기 호스트 맵핑 테이블을 동시에 동기화시키는 스트롱 동기화(strong sync) 방식으로 동작할 수 있다.
일 실시예에 의하면, 상기 비휘발성 메모리 시스템은 상기 낸드 플래시 메모리 장치에 대한 읽기 동작이 요구되면, 상기 호스트 장치에서 상기 호스트 맵핑 테이블에 기초하여 상기 어드레스 맵핑 동작을 수행할 수 있다.
일 실시예에 의하면, 상기 읽기 동작을 수행하기 위하여, 상기 호스트 장치는 상기 커맨드가 지시하는 논리적 어드레스에 관한 제 1 정보 및 상기 논리적 어드레스에 대응하는 물리적 어드레스에 관한 제 2 정보를 상기 낸드 플래시 메모리 장치에 전송할 수 있다.
일 실시예에 의하면, 상기 논리적 어드레스에 대응하는 상기 물리적 어드레스는 상기 호스트 맵핑 테이블에 암호화되어 저장될 수 있다.
일 실시예에 의하면, 상기 비휘발성 메모리 시스템은 상기 낸드 플래시 메모리 장치에 대한 쓰기 동작이 요구되면, 상기 쓰기 동작이 수행된 이후에 상기 호스트 맵핑 테이블을 갱신(update)할 수 있다.
일 실시예에 의하면, 상기 쓰기 동작이 수행된 이후에, 상기 낸드 플래시 메모리 장치는 상기 쓰기 동작이 수행된 물리적 어드레스에 관한 제 3 정보를 상기 호스트 장치에 전송할 수 있다.
일 실시예에 의하면, 상기 비휘발성 메모리 시스템은 상기 낸드 플래시 메모리 장치에서 백그라운드 동작이 수행되면, 상기 백그라운드 동작에 응답하여 상기 낸드 맵핑 테이블과 상기 호스트 맵핑 테이블을 동시에 동기화시킬 수 있다.
일 실시예에 의하면, 상기 백그라운드 동작은 가비지 콜렉션(garbage collection) 동작, 병합(merge) 동작, 카피백(copyback) 동작, 컴팩션(compaction) 동작 또는 웨어 레벨링(wear leveling) 동작 중에서 적어도 하나 이상을 포함할 수 있다.
일 실시예에 의하면, 상기 비휘발성 메모리 시스템은 상기 낸드 플래시 메모리 장치와 상기 호스트 장치가 부팅된 이후, 상기 낸드 맵핑 테이블과 상기 호스트 맵핑 테이블을 시간을 두어 동기화시키는 위크 동기화(weak sync) 방식으로 동작할 수 있다.
일 실시예에 의하면, 상기 비휘발성 메모리 시스템은, 상기 낸드 맵핑 테이블과 상기 호스트 맵핑 테이블의 동기화가 진행 중인 경우, 상기 호스트 맵핑 테이블을 무효인(invalid) 상태로 유지시킬 수 있고, 상기 낸드 맵핑 테이블과 상기 호스트 맵핑 테이블의 동기화가 완료된 경우, 상기 호스트 맵핑 테이블을 유효인(valid) 상태로 유지시킬 수 있다.
일 실시예에 의하면, 상기 비휘발성 메모리 시스템은, 상기 호스트 맵핑 테이블이 무효인 상태로 유지되는 경우, 상기 낸드 맵핑 테이블에 기초하여 상기 어드레스 맵핑 동작을 수행할 수 있고, 상기 호스트 맵핑 테이블이 유효인 상태로 유지되는 경우, 상기 호스트 맵핑 테이블에 기초하여 상기 어드레스 맵핑 동작을 수행할 수 있다.
일 실시예에 의하면, 상기 낸드 플래시 메모리 장치에 대한 읽기 동작이 요구되면, 상기 호스트 맵핑 테이블이 유효인 상태인 경우에, 상기 호스트 장치는 상기 커맨드가 지시하는 논리적 어드레스에 관한 제 1 정보 및 상기 논리적 어드레스에 대응하는 물리적 어드레스에 관한 제 2 정보를 상기 낸드 플래시 메모리 장치에 전송할 수 있다.
일 실시예에 의하면, 상기 낸드 플래시 메모리 장치에 대한 읽기 동작이 요구되면, 상기 호스트 맵핑 테이블이 무효인 상태인 경우에, 상기 호스트 장치는 상기 커맨드가 지시하는 논리적 어드레스에 관한 제 1 정보를 상기 낸드 플래시 메모리 장치에 전송할 수 있다.
일 실시예에 의하면, 상기 비휘발성 메모리 시스템은 상기 낸드 플래시 메모리 장치에 대한 쓰기 동작이 요구되면, 상기 쓰기 동작이 수행된 이후에 상기 호스트 맵핑 테이블을 갱신할 수 있다.
일 실시예에 의하면, 상기 쓰기 동작이 수행된 이후에, 상기 낸드 플래시 메모리 장치는 상기 쓰기 동작이 수행된 물리적 어드레스에 관한 제 3 정보를 상기 호스트 장치에 전송할 수 있다.
일 실시예에 의하면, 상기 비휘발성 메모리 시스템은 상기 낸드 플래시 메모리 장치에서 백그라운드 동작이 수행되면, 상기 백그라운드 동작에 응답하여 상기 낸드 맵핑 테이블과 상기 호스트 맵핑 테이블을 시간을 두어 동기화시킬 수 있다.
일 실시예에 의하면, 상기 백그라운드 동작은 가비지 콜렉션 동작, 병합 동작, 카피백 동작, 컴팩션 동작 또는 웨어 레벨링 동작 중에서 적어도 하나 이상을 포함할 수 있다.
본 발명의 다른 목적을 달성하기 위하여, 본 발명의 실시예들에 따른 비휘발성 메모리 시스템을 위한 맵핑 테이블 관리 방법은 호스트 장치 및 상기 호스트 장치와 인터액션(interaction)을 수행하는 낸드 플래시 메모리 장치를 포함하는 비휘발성 메모리 시스템에 있어서, 상기 호스트 장치에 구비된 호스트 맵핑 테이블과 상기 낸드 플래시 메모리 장치에 구비된 낸드 맵핑 테이블을 동기화(sync)시키는 단계, 상기 호스트 장치에서 우선적으로 어드레스 맵핑 동작을 수행하는 단계, 및 상기 낸드 맵핑 테이블이 변경되는 경우에 상기 호스트 맵핑 테이블을 갱신(update)하는 단계를 포함할 수 있다.
일 실시예에 의하면, 상기 낸드 플래시 메모리 장치에 대한 읽기 동작이 요구되면, 커맨드가 지시하는 논리적 어드레스에 관한 제 1 정보 및 상기 논리적 어드레스에 대응하는 물리적 어드레스에 관한 제 2 정보가 상기 호스트 장치에서 상기 낸드 플래시 메모리 장치로 전송될 수 있다.
본 발명의 실시예들에 따른 비휘발성 메모리 시스템은 호스트 장치로 하여금 파일 시스템에서 출력되는 커맨드가 지시하는 논리적 어드레스를 맵핑 테이블(이하, 호스트 맵핑 테이블로 명명)에 기초하여 낸드 플래시 메모리 장치의 물리적 어드레스로 변환하게 하고, 논리적 어드레스에 관한 정보와 물리적 어드레스에 관한 정보를 낸드 플래시 메모리 장치에 전송하게 함으로써, 낸드 플래시 메모리 장치로 하여금 맵핑 테이블(이하, 낸드 맵핑 테이블로 명명)을 검색하는 로드(load)(예를 들어, 횟수)를 감소시키게 할 수 있다. 그 결과, 비휘발성 메모리 시스템의 전체 성능(예를 들어, 읽기 동작 속도, 쓰기 동작 속도 등)은 크게 향상될 수 있다.
본 발명의 실시예들에 따른 맵핑 테이블 관리 방법은 상기 비휘발성 메모리 시스템을 위하여 호스트 장치에 구비된 호스트 맵핑 테이블과 낸드 플래시 메모리 장치에 구비된 낸드 맵핑 테이블을 효율적으로 동기화(sync)시킬 수 있다.
다만, 본 발명의 효과는 이에 한정되는 것이 아니며, 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위에서 다양하게 확장될 수 있을 것이다.
도 1은 본 발명의 실시예들에 따른 비휘발성 메모리 시스템을 나타내는 블록도이다.
도 2는 도 1의 비휘발성 메모리 시스템이 스트롱 동기화(strong sync) 방식으로 동작하는 일 예를 나타내는 순서도이다.
도 3a는 도 1의 비휘발성 메모리 시스템이 스트롱 동기화 방식으로 동작할 때 읽기 동작이 수행되는 일 예를 나타내는 도면이다.
도 3b는 도 1의 비휘발성 메모리 시스템이 스트롱 동기화 방식으로 동작할 때 읽기 동작이 수행되는 다른 예를 나타내는 도면이다.
도 4a는 도 1의 비휘발성 메모리 시스템이 스트롱 동기화 방식으로 동작할 때 쓰기 동작이 수행되는 일 예를 나타내는 도면이다.
도 4b는 도 1의 비휘발성 메모리 시스템이 스트롱 동기화 방식으로 동작할 때 쓰기 동작이 수행되는 다른 예를 나타내는 도면이다.
도 5는 도 1의 비휘발성 메모리 시스템이 스트롱 동기화 방식으로 동작할 때 초기화 동작이 수행되는 일 예를 나타내는 도면이다.
도 6은 도 1의 비휘발성 메모리 시스템이 스트롱 동기화 방식으로 동작할 때 백그라운드(background) 동작이 수행되는 일 예를 나타내는 도면이다.
도 7은 도 1의 비휘발성 메모리 시스템이 위크 동기화(weak sync) 방식으로 동작하는 일 예를 나타내는 순서도이다.
도 8a는 도 1의 비휘발성 메모리 시스템이 위크 동기화 방식으로 동작할 때, 호스트 맵핑 테이블이 유효인(valid) 상태에서 읽기 동작이 수행되는 일 예를 나타내는 도면이다.
도 8b는 도 1의 비휘발성 메모리 시스템이 위크 동기화 방식으로 동작할 때, 호스트 맵핑 테이블이 유효인 상태에서 읽기 동작이 수행되는 다른 예를 나타내는 도면이다.
도 9a는 도 1의 비휘발성 메모리 시스템이 위크 동기화 방식으로 동작할 때, 호스트 맵핑 테이블이 무효인 상태에서 읽기 동작이 수행되는 일 예를 나타내는 도면이다.
도 9b는 도 1의 비휘발성 메모리 시스템이 위크 동기화 방식으로 동작할 때, 호스트 맵핑 테이블이 무효인 상태에서 읽기 동작이 수행되는 다른 예를 나타내는 도면이다.
도 10a는 도 1의 비휘발성 메모리 시스템이 위크 동기화 방식으로 동작할 때 쓰기 동작이 수행되는 일 예를 나타내는 도면이다.
도 10b는 도 1의 비휘발성 메모리 시스템이 위크 동기화 방식으로 동작할 때 쓰기 동작이 수행되는 다른 예를 나타내는 도면이다.
도 11은 도 1의 비휘발성 메모리 시스템이 위크 동기화 방식으로 동작할 때 초기화 동작이 수행되는 일 예를 나타내는 순서도이다.
도 12는 도 1의 비휘발성 메모리 시스템이 위크 동기화 방식으로 동작할 때 백그라운드 동작이 수행되는 일 예를 나타내는 순서도이다.
도 13은 본 발명의 실시예들에 따른 맵핑 테이블 관리 방법을 나타내는 순서도이다.
도 14는 도 13의 맵핑 테이블 관리 방법을 채용한 비휘발성 메모리 시스템의 동작 상태를 나타내는 도면이다.
본문에 개시되어 있는 본 발명의 실시예들에 대해서, 특정한 구조적 내지 기능적 설명들은 단지 본 발명의 실시예를 설명하기 위한 목적으로 예시된 것으로, 본 발명의 실시예들은 다양한 형태로 실시될 수 있으며 본문에 설명된 실시예들에 한정되는 것으로 해석되어서는 아니 된다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는바, 특정 실시예들을 도면에 예시하고 본문에 상세하게 설명하고자 한다. 그러나 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제 1, 제 2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로 사용될 수 있다. 예를 들어, 본 발명의 권리 범위로부터 이탈되지 않은 채 제 1 구성요소는 제 2 구성요소로 명명될 수 있고, 유사하게 제 2 구성요소도 제 1 구성요소로 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미이다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미인 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1은 본 발명의 실시예들에 따른 비휘발성 메모리 시스템을 나타내는 블록도이다.
도 1을 참조하면, 비휘발성 메모리 시스템(100)은 낸드 플래시 메모리 장치(120) 및 호스트 장치(140)를 포함할 수 있다. 이 때, 낸드 플래시 메모리 장치(120)는 솔리드 스테이트 드라이브(solid state drive; SSD), 시큐어 디지털 카드(secure digital card; SDCARD), 유니버셜 플래시 스토리지(universal flash storage; UFS), 임베디드 멀티미디어 카드(embedded multi media card; EMMC), CF 카드(compact flash card), 메모리 스틱(memory stick), XD 픽쳐 카드(XD picture card) 등으로 구현될 수 있으나 그에 한정되는 것은 아니다.
낸드 플래시 메모리 장치(120)는 제 1 내지 제 n(단, n은 1이상의 정수) 낸드 플래시 메모리들(122_1, ..., 122_n) 및 제 1 내지 제 n 낸드 플래시 메모리들(122_1, ..., 122_n)을 제어하는 낸드 컨트롤러(124)를 구비할 수 있다. 호스트 장치(140)는 파일 시스템(142) 및 파일 시스템(142)로부터 커맨드(command)를 입력받아 낸드 플래시 메모리 장치(120)에 제공하는 호스트 컨트롤러(144)를 구비할 수 있다. 일반적으로, 낸드 플래시 메모리 장치(120)는 제 1 내지 제 n 낸드 플래시 메모리들(122_1, ..., 122_n)의 물리적인 구조에 의하여 쓰기(write) 동작과 읽기(read) 동작을 페이지(page) 단위로 수행하는 반면에, 소거(erase) 동작을 블록(block) 단위로 수행하게 된다. 따라서, 낸드 플래시 메모리 장치(120)는 랜덤 액세스 메모리 장치(예를 들어, 디램(dynamic random access memory; DRAM) 장치 등)에 비하여 쓰기 동작, 읽기 동작 및 소거 동작을 수행함에 있어서 많은 제약을 가지고 있다. 그러므로, 낸드 플래시 메모리 장치(120)는 파일 시스템을 지원하기 위하여 플래시 변환 레이어를 낸드 컨트롤러(124)에 구비하고, 플래시 변환 레이어를 이용하여 읽기 동작, 쓰기 동작, 소거 동작, 병합 동작, 카피백 동작, 컴팩션 동작, 가비지 콜렉션 동작(또는, 리클레임 동작), 웨어 레벨링 동작 등을 수행할 수 있다. 다시 말하면, 낸드 컨트롤러(124)는 소프트웨어적으로 구현된 플래시 변환 레이어를 실행함으로써 상기 동작들을 수행하는 것이다. 이 때, 상기 동작들은 플래시 변환 레이어가 호스트 장치(140)(구체적으로, 파일 시스템(142))에서 제공되는 논리적 어드레스를 낸드 플래시 메모리 장치(120)의 물리적 어드레스로 변환하는 어드레스 맵핑 동작을 수행함으로써 이루어진다.
그러나, 낸드 플래시 메모리 장치(120)가 플래시 변환 레이어를 이용하여 어드레스 맵핑 동작을 수행함에 있어서, 호스트 장치(140)에서 제공되는 논리적 어드레스와 낸드 플래시 메모지 장치(120)의 물리적 어드레스 사이의 맵핑 정보가 저장되어 있는 맵핑 테이블(이하, 낸드 맵핑 테이블로 명명)(125)을 이용하는데, 낸드 플래시 메모리 장치(120)가 대용량화되어 감에 따라 낸드 맵핑 테이블(125)의 사이즈가 커질 수밖에 없다. 그 결과, 낸드 플래시 메모리 장치(120)가 낸드 맵핑 테이블(125)을 검색하기 위한 시간이 증가하기 때문에, 낸드 플래시 메모리 장치(120)의 동작 속도가 저하될 수 있다. 이러한 문제점을 해결하기 위하여, 비휘발성 메모리 시스템(100)은 낸드 플래시 메모리 장치(120)에 낸드 맵핑 테이블(125)을 구비하고, 호스트 장치(140)에 호스트 맵핑 테이블(145)을 구비하며, 낸드 맵핑 테이블(125)과 호스트 맵핑 테이블(145)을 서로 동기화(sync)시킴으로써, 호스트 장치(140)에서 우선적으로 어드레스 맵핑 동작이 수행되도록 할 수 있다. 일 실시예에서, 도 1에 도시된 바와 같이, 낸드 맵핑 테이블(125)은 낸드 플래시 메모리 장치(120)의 낸드 컨트롤러(124) 내부에 위치하고, 호스트 맵핑 테이블(145)은 호스트 장치(140)의 호스트 컨트롤러(144) 내부에 위치할 수 있다. 다른 실시예에서, 낸드 맵핑 테이블(125)은 낸드 플래시 메모리 장치(120)의 낸드 컨트롤러(124) 외부에 위치하고, 호스트 맵핑 테이블(145)은 호스트 장치(140)의 호스트 컨트롤러(144) 외부에 위치할 수 있다. 다만, 이것은 예시적인 것에 불과한 것으로서, 낸드 맵핑 테이블(125)의 낸드 플래시 메모리 장치(120) 상에서의 위치와 호스트 맵핑 테이블(145)의 호스트 장치(140) 상에서의 위치는 다양하게 설계 변경될 수 있다.
구체적으로, 비휘발성 메모리 시스템(100)은 낸드 플래시 메모리 장치(120)에 구비된 낸드 맵핑 테이블(125)과 호스트 장치(140)에 구비된 호스트 맵핑 테이블(145)을 동기화시킨 후, 호스트 장치(140)가 호스트 맵핑 테이블(145)에 기초하여 어드레스 맵핑 동작을 수행하도록 할 수 있다. 즉, 호스트 장치(140)가 파일 시스템(142)에서 제공되는 논리적 어드레스를 낸드 플래시 메모리 장치(120)의 물리적 어드레스로 변환시키고, 논리적 어드레스에 대응하는 물리적 어드레스에 관한 정보를 낸드 플래시 메모리 장치(120)에 직접 제공하기 때문에, 낸드 플래시 메모리 장치(120)가 낸드 맵핑 테이블(125)을 검색하는 로드를 감소시킬 수 있다. 그 결과, 비휘발성 메모리 시스템(100)의 전체 성능(즉, 읽기 동작 속도, 쓰기 동작 속도 등)은 크게 향상될 수 있다. 특히, 호스트 장치(120)는 낸드 플래시 메모리 장치(140)에 비하여 상대적으로 사이즈(size)와 관련된 제약이 적을 뿐만 아니라 상대적으로 고성능으로 동작할 수 있기 때문에, 낸드 맵핑 테이블(125)과 동기화된 호스트 맵핑 테이블(145)에 기초하여 어드레스 맵핑 동작을 직접 수행하는 것은 확장성 및 성능 면에서 매우 효율적이다. 일 실시예에서, 호스트 맵핑 테이블(145)은 디램(DRAM) 장치로 구현될 수 있다. 다만, 이것은 하나의 예시에 불과한 것으로서, 호스트 맵핑 테이블(145)의 구현은 그에 한정되지 않는다. 한편, 도 1에 도시되지 않았지만, 낸드 플래시 메모리 장치(120)와 호스트 장치(140) 각각은 다른 하드웨어적 또는 소프트웨어적 구성 요소들을 더 포함할 수 있다.
비휘발성 메모리 시스템(100)은 낸드 플래시 메모리 장치(120)와 호스트 장치(140)가 부팅(booting)될 때, 낸드 플래시 메모리 장치(120)에 구비된 낸드 맵핑 테이블(125)과 호스트 장치(140)에 구비된 호스트 맵핑 테이블(145)을 동시에 동기화시키는 스트롱 동기화(strong sync) 방식으로 동작할 수도 있고, 낸드 플래시 메모리 장치(120)와 호스트 장치(140)가 부팅된 이후, 낸드 플래시 메모리 장치(120)에 구비된 낸드 맵핑 테이블(125)과 호스트 장치(140)에 구비된 호스트 맵핑 테이블(145)을 시간을 두어 동기화시키는 위크 동기화(weak sync) 방식으로 동작할 수 있다. 다시 말하면, 비휘발성 메모리 시스템(100)이 스트롱 동기화 방식으로 동작하는 경우에는, 낸드 맵핑 테이블(125)과 호스트 맵핑 테이블(145)이 동기화된 이후에, 낸드 플래시 메모리 장치(120)에 대한 읽기 동작, 쓰기 동작 등이 수행될 수 있다. 즉, 스트롱 동기화 방식으로 동작하는 비휘발성 메모리 시스템(100)에서는 호스트 장치(140)에서 어드레스 맵핑 동작이 항상 수행될 수 있다. 반면에, 비휘발성 메모리 시스템(100)이 위크 동기화 방식으로 동작하는 경우에는, 낸드 맵핑 테이블(125)과 호스트 맵핑 테이블(145)이 동기화되면서, 낸드 플래시 메모리 장치(120)에 대한 읽기 동작, 쓰기 동작 등이 수행될 수 있다. 즉, 위크 동기화 방식으로 동작하는 비휘발성 메모리 시스템(100)에서는 낸드 플래시 메모리 장치(120)와 호스트 장치(140)에서 어드레스 맵핑 동작이 선택적으로 수행될 수 있다. 구체적으로, 위크 동기화 방식으로 동작하는 비휘발성 메모리 시스템(100)에서는, 낸드 맵핑 테이블(125)과 호스트 맵핑 테이블(145)의 동기화가 완료되면, 호스트 장치(140)에서 어드레스 맵핑 동작이 수행될 수 있고, 낸드 맵핑 테이블(125)과 호스트 맵핑 테이블(145)의 동기화가 완료되지 않으면, 낸드 플래시 메모리 장치(120)에서 어드레스 맵핑 동작이 수행될 수 있다. 다만, 스트롱 동기화 방식에 대해서는 도 2 내지 도 6을 참조하여 자세하게 후술하기로 하고, 위크 동기화 방식에 대해서는 도 7 내지 도 12를 참조하여 자세하게 후술하기로 한다.
도 2는 도 1의 비휘발성 메모리 시스템이 스트롱 동기화(strong sync) 방식으로 동작하는 일 예를 나타내는 순서도이다.
도 2를 참조하면, 비휘발성 메모리 시스템(100)은 낸드 플래시 메모리 장치(120)와 호스트 장치(140)가 부팅될 때, 낸드 플래시 메모리 장치(120)에 구비된 낸드 맵핑 테이블(125)과 호스트 장치(140)에 구비된 호스트 맵핑 테이블(145)을 동시에 동기화시키는 스트롱 동기화 방식으로 동작할 수 있다. 구체적으로, 비휘발성 메모리 시스템(100)은 낸드 맵핑 테이블(125)과 호스트 맵핑 테이블(145)의 동기화를 완료(Step S110)한 이후에, 호스트 장치(140)에서 호스트 맵핑 테이블(145)에 기초하여 어드레스 맵핑 동작을 수행(Step S120)할 수 있다. 이후, 비휘발성 메모리 시스템(100)은 낸드 맵핑 테이블(125)이 변경되었는지 여부를 판단(Step S130)할 수 있다. 이 때, 낸드 맵핑 테이블(125)이 변경되지 않으면, 비휘발성 메모리 시스템(100)은 호스트 장치(140)에서 호스트 맵핑 테이블(145)에 기초하여 어드레스 맵핑 동작을 계속적으로 수행(Step S120)할 수 있고, 낸드 맵핑 테이블(125)이 변경되면, 낸드 맵핑 테이블(125)에 기초하여 호스트 맵핑 테이블(145)을 갱신(Step S140)할 수 있다.
상술한 바와 같이, 스트롱 동기화 방식으로 동작하는 비휘발성 메모리 시스템(100)에서는 호스트 장치(140)가 호스트 맵핑 테이블(145)에 기초하여 어드레스 맵핑 동작을 항상 수행할 수 있다. 이것은 비휘발성 메모리 시스템(100)이 스트롱 동기화 방식으로 동작하는 경우에, 낸드 맵핑 테이블(125)과 호스트 맵핑 테이블(145)의 동기화가 완료된 후, 낸드 플래시 메모리 장치(120)에 대한 읽기 동작, 쓰기 동작 등이 수행되기 때문이다. 따라서, 스트롱 동기화 방식으로 동작하는 비휘발성 메모리 시스템(100)에서는 낸드 플래시 메모리 장치(120)에 구비된 낸드 맵핑 테이블(125)과 호스트 장치(140)에 구비된 호스트 맵핑 테이블(145)이 항상 동일한 정보를 가질 수 있다. 이와 같이, 비휘발성 메모리 시스템(100)은 호스트 장치(140)로 하여금 파일 시스템(142)에서 제공되는 논리적 어드레스를 낸드 플래시 메모리 장치(120)의 물리적 어드레스로 변환시키게 하고, 논리적 어드레스에 대응하는 물리적 어드레스에 관한 정보를 낸드 플래시 메모리 장치(120)에 제공하도록 하기 때문에, 낸드 플래시 메모리 장치(120)로 하여금 낸드 맵핑 테이블(125)을 검색하는 로드를 감소시키게 할 수 있다. 그 결과, 비휘발성 메모리 시스템(100)의 전체 성능은 크게 향상될 수 있다. 한편, 비휘발성 메모리 시스템(100)은 종래의 비휘발성 메모리 시스템에 비하여 고속으로 동작할 수 있는데, 이러한 성능 향상은 낸드 플래시 메모리 장치(120)에 대한 쓰기 동작보다는 낸드 플래시 메모리 장치(120)에 대한 읽기 동작에서 더욱 두드러질 수 있다. 나아가, 호스트 장치(140)는 호스트 맵핑 테이블(145)을 직접적으로 참조할 수 있기 때문에, 낸드 플래시 메모리 장치(120)의 내부 정보(예를 들어, 블록(block) 당 유효 페이지(valid page)의 개수 등)를 쉽게 파악할 수 있다. 따라서, 호스트 장치(140)는 낸드 플래시 메모리 장치(120)에 대한 백그라운드 동작까지 제어할 수도 있다.
도 3a는 도 1의 비휘발성 메모리 시스템이 스트롱 동기화 방식으로 동작할 때 읽기 동작이 수행되는 일 예를 나타내는 도면이고, 도 3b는 도 1의 비휘발성 메모리 시스템이 스트롱 동기화 방식으로 동작할 때 읽기 동작이 수행되는 다른 예를 나타내는 도면이다.
도 3a 및 도 3b를 참조하면, 도 3a는 비휘발성 메모리 시스템(100)이 스트롱 동기화 방식으로 동작할 때, 파일 시스템(142)에서 출력되는 커맨드(READ_LBA)가 지시하는 논리적 어드레스(LBA)에 대응하는 낸드 플래시 메모리 장치(120)의 물리적 어드레스(PBA)가 호스트 장치(140)에 구비된 호스트 맵핑 테이블(145)에 존재하는 경우를 나타내고, 도 3b는 비휘발성 메모리 시스템(100)이 스트롱 동기화 방식으로 동작할 때, 파일 시스템(142)에서 출력되는 커맨드(READ_LBA)가 지시하는 논리적 어드레스(LBA)에 대응하는 낸드 플래시 메모리 장치(120)의 물리적 어드레스(PBA)가 호스트 장치(140)에 구비된 호스트 맵핑 테이블(145)에 존재하지 않는 경우를 나타낸다.
도 3a에 도시된 바와 같이, 비휘발성 메모리 시스템(100)이 스트롱 동기화 방식으로 동작할 때, 호스트 장치(140)는 낸드 플래시 메모리 장치(120)에 대한 읽기 동작이 요구(즉, 커맨드(READ_LBA)가 발생)되면, 호스트 맵핑 테이블(145)에 기초하여 어드레스 맵핑 동작을 수행(즉, MA로 표시)할 수 있다. 이후, 호스트 장치(140)는 커맨드(READ_LBA)가 지시하는 논리적 어드레스(LBA)에 관한 제 1 정보(INF_LBA) 및 논리적 어드레스(LBA)에 대응하는 물리적 어드레스(PBA)에 관한 제 2 정보(INF_PBA)를 낸드 플래시 메모리 장치(120)에 전송할 수 있다. 이에, 낸드 플래시 메모리 장치(120)는 논리적 어드레스(LBA)에 대응하는 물리적 어드레스(PBA)를 바로 파악할 수 있어, 낸드 맵핑 테이블(125)에 기초하여 어드레스 맵핑 동작을 수행할 필요 없이, 논리적 어드레스(LBA)에 대응하는 물리적 어드레스(PBA)에 위치한 데이터(DATA)를 호스트 컨트롤러(144)를 거쳐 파일 시스템(142)에 출력할 수 있다. 반면에, 도 3b에 도시된 바와 같이, 파일 시스템(142)에서 출력되는 커맨드(READ_LBA)가 지시하는 논리적 어드레스(LBA)에 대응하는 낸드 플래시 메모리 장치(120)의 물리적 어드레스(PBA)가 존재하지 않으면, 호스트 컨트롤러(144)는 해당 데이터가 없음을 표시하는 소정의 데이터(OxFF)를 파일 시스템(142)에 출력할 수 있다. 이것은 비휘발성 메모리 시스템(100)이 스트롱 동기화 방식으로 동작할 때, 낸드 맵핑 테이블(125)과 호스트 맵핑 테이블(145)은 항상 동일한 정보를 가지기 때문이다. 한편, 도 3a 및 도 3b에서는 호스트 장치(140)가 논리적 어드레스(LBA)에 관한 제 1 정보(INF_LBA) 및 물리적 어드레스(PBA)에 관한 제 2 정보(INF_PBA)를 낸드 플래시 메모리 장치(120)에 전송하는 것으로 도시되어 있으나, 실시예에 따라, 호스트 장치(140)는 물리적 어드레스(PBA)에 관한 제 2 정보(INF_PBA)만을 낸드 플래시 메모리 장치(120)에 전송할 수도 있다. 한편, 맵핑 정보 보안을 위하여, 논리적 어드레스(LBA)에 대응하는 물리적 어드레스(PBA)는 호스트 맵핑 테이블(145)에 암호화(예를 들어, 비트 쉬프트(bit-shift) 등)되어 저장될 수 있다.
도 4a는 도 1의 비휘발성 메모리 시스템이 스트롱 동기화 방식으로 동작할 때 쓰기 동작이 수행되는 일 예를 나타내는 도면이고, 도 4b는 도 1의 비휘발성 메모리 시스템이 스트롱 동기화 방식으로 동작할 때 쓰기 동작이 수행되는 다른 예를 나타내는 도면이다.
도 4a 및 도 4b를 참조하면, 도 4a는 비휘발성 메모리 시스템(100)이 스트롱 동기화 방식으로 동작할 때, 호스트 장치(140)가 파일 시스템(142)에서 출력되는 커맨드(WRITE_LBA)가 지시하는 논리적 어드레스(LBA)에 관한 제 1 정보(INF_LBA)만을 낸드 플래시 메모리 장치(120)에 전송하는 경우를 나타내고, 도 4b는 휘발성 메모리 시스템(100)이 스트롱 동기화 방식으로 동작할 때, 호스트 장치(140)가 파일 시스템(142)에서 출력되는 커맨드(WRITE_LBA)가 지시하는 논리적 어드레스(LBA)에 관한 제 1 정보(INF_LBA) 및 논리적 어드레스(LBA)에 대응하는 낸드 플래시 메모리 장치(120)의 물리적 어드레스(PBA)에 관한 제 2 정보(INF_PBA)까지 낸드 플래시 메모리 장치(120)에 전송하는 경우를 나타낸다. 즉, 도 4b에서는 호스트 장치(140)가 낸드 플래시 메모리 장치(120)에 낸드 맵핑 테이블(125)의 변경을 위한 저장 위치 정보(즉, 물리적 어드레스(PBA)에 관한 제 2 정보(INF_PBA))까지 제공할 수 있다.
도 4a에 도시된 바와 같이, 비휘발성 메모리 시스템(100)이 스트롱 동기화 방식으로 동작할 때, 호스트 장치(140)는 낸드 플래시 메모리 장치(120)에 대한 쓰기 동작이 요구(즉, 커맨드(WRITE_LBA)가 발생)되면, 파일 시스템(142)에서 출력되는 커맨드(WRITE_LBA)가 지시하는 논리적 어드레스(LBA)에 관한 제 1 정보(INF_LBA)만을 낸드 플래시 메모리 장치(120)에 전송할 수 있다. 이에, 낸드 플래시 메모리 장치(120)는 낸드 맵핑 테이블(125)에 기초하여 어드레스 맵핑 동작을 수행(즉, MB로 표시)함으로써 논리적 어드레스(LBA)에 대응하는 낸드 플래시 메모리 장치(120)의 물리적 어드레스(PBA)를 결정한 후, 쓰기 동작을 완료하여 쓰기 완료 결과(RESULT)를 호스트 컨트롤러(144)를 거쳐 파일 시스템(142)에 출력할 수 있다. 한편, 낸드 플래시 메모리 장치(120)에 대한 쓰기 동작이 수행되는 경우, 낸드 플래시 메모리 장치(120)에 구비된 낸드 맵핑 테이블(125)이 변경되기 때문에, 호스트 장치(140)에 구비된 호스트 맵핑 테이블(145)도 갱신(즉, MC로 표시)될 수 있다. 이를 위하여, 낸드 플래시 메모리 장치(120)는 쓰기 동작이 수행된 물리적 어드레스에 관한 제 3 정보를 호스트 장치(140)에 전송할 수 있다. 반면에, 도 4b에 도시된 바와 같이, 호스트 장치(140)는 낸드 플래시 메모리 장치(120)에 대한 쓰기 동작이 요구(즉, 커맨드(WRITE_LBA)가 발생)되면, 호스트 맵핑 테이블(145)에 기초하여 어드레스 맵핑 동작을 수행(즉, MA로 표시)함으로써 논리적 어드레스(LBA)에 대응하는 낸드 플래시 메모리 장치(120)의 물리적 어드레스(PBA)를 결정한 후, 파일 시스템(142)에서 출력되는 커맨드(WRITE_LBA)가 지시하는 논리적 어드레스(LBA)에 관한 제 1 정보(INF_LBA) 및 논리적 어드레스(LBA)에 대응하는 낸드 플래시 메모리 장치(120)의 물리적 어드레스(PBA)에 관한 제 2 정보(INF_PBA)까지 낸드 플래시 메모리 장치(120)에 전송할 수 있다. 이후, 낸드 플래시 메모리 장치(120)는 쓰기 동작을 완료하여 쓰기 완료 결과(RESULT)를 호스트 컨트롤러(144)를 거쳐 파일 시스템(142)에 출력할 수 있다. 마찬가지로, 낸드 플래시 메모리 장치(120)에 대한 쓰기 동작이 수행되는 경우, 낸드 플래시 메모리 장치(120)에 구비된 낸드 맵핑 테이블(125)이 변경되기 때문에, 호스트 장치(140)에 구비된 호스트 맵핑 테이블(145)도 갱신(즉, MC로 표시)될 수 있다. 이를 위하여, 낸드 플래시 메모리 장치(120)는 쓰기 동작이 수행된 물리적 어드레스에 관한 제 3 정보를 호스트 장치(140)에 전송할 수 있다. 한편, 쓰기 동작이 수행된 물리적 어드레스는 암호화(예를 들어, 비트 쉬프트 등)되어 호스트 장치(140)에 전송될 수 있다.
도 5는 도 1의 비휘발성 메모리 시스템이 스트롱 동기화 방식으로 동작할 때 초기화 동작이 수행되는 일 예를 나타내는 도면이다.
도 5를 참조하면, 비휘발성 메모리 시스템(100)은 낸드 플래시 메모리 장치(120)와 호스트 장치(140)를 부팅(Step S210)한 후, 낸드 맵핑 테이블(125)과 호스트 맵핑 테이블(145)의 동기화를 수행(Step S220)한 다음에, 낸드 맵핑 테이블(125)과 호스트 맵핑 테이블(145)의 동기화가 완료되었는지 여부를 판단(Step S230)할 수 있다. 이 때, 낸드 맵핑 테이블(125)과 호스트 맵핑 테이블(145)의 동기화가 완료되지 않은 경우, 비휘발성 메모리 시스템(100)은 낸드 맵핑 테이블(125)과 호스트 맵핑 테이블(145)의 동기화를 계속적으로 수행(Step S220)하고, 낸드 맵핑 테이블(125)과 호스트 맵핑 테이블(145)의 동기화가 완료된 경우에는, 비휘발성 메모리 시스템(100)은 호스트 맵핑 테이블(145)에 기초하여 어드레스 맵핑 동작을 수행(Step S240)할 수 있다. 이와 같이, 비휘발성 메모리 시스템(100)은 스트롱 동기화 방식으로 동작하는 경우에, 낸드 플래시 메모리 장치(120)와 호스트 장치(140)가 부팅되더라도, 낸드 맵핑 테이블(125)과 호스트 맵핑 테이블(145)의 동기화가 완료된 후에만, 낸드 플래시 메모리 장치(120)에 대한 읽기 동작, 쓰기 동작 등을 수행할 수 있다. 따라서, 비휘발성 메모리 시스템(100)에서는 낸드 플래시 메모리 장치(120)에 구비된 낸드 맵핑 테이블(125)과 호스트 장치(140)에 구비된 호스트 맵핑 테이블(145)은 항상 동일한 정보를 가질 수 있다. 그 결과, 비휘발성 메모리 시스템(100)에서는 호스트 장치(140)가 어드레스 맵핑 동작을 항상 수행할 수 있고, 낸드 플래시 메모리 장치(120)에 커맨드가 지시하는 논리적 어드레스에 관한 제 1 정보 및 논리적 어드레스에 대응하는 물리적 어드레스에 관한 제 2 정보를 제공할 수 있다.
도 6은 도 1의 비휘발성 메모리 시스템이 스트롱 동기화 방식으로 동작할 때 백그라운드(background) 동작이 수행되는 일 예를 나타내는 도면이다.
도 6을 참조하면, 비휘발성 메모리 시스템(100)은 낸드 플래시 메모리 장치(120)에 대한 백그라운드 동작(예를 들어, 가비지 콜렉션 동작, 병합 동작, 카피백 동작, 컴팩션 동작 또는 웨어 레벨링 동작 등)을 수행(Step S310)하면, 낸드 맵핑 테이블(125)과 호스트 맵핑 테이블(145)의 동기화를 수행(Step S320)한 다음에, 낸드 맵핑 테이블(125)과 호스트 맵핑 테이블(145)의 동기화가 완료되었는지 여부를 판단(Step S330)할 수 있다. 이 때, 낸드 맵핑 테이블(125)과 호스트 맵핑 테이블(145)의 동기화가 완료되지 않은 경우, 비휘발성 메모리 시스템(100)은 낸드 맵핑 테이블(125)과 호스트 맵핑 테이블(145)의 동기화를 계속적으로 수행(Step S320)할 수 있고, 낸드 맵핑 테이블(125)과 호스트 맵핑 테이블(145)의 동기화가 완료된 경우, 비휘발성 메모리 시스템(100)은 호스트 맵핑 테이블(145)에 기초하여 어드레스 맵핑 동작을 수행(Step S340)할 수 있다. 이와 같이, 비휘발성 메모리 시스템(100)은 스트롱 동기화 방식으로 동작하는 경우에, 낸드 플래시 메모리 장치(120)에 대한 백그라운드 동작이 수행(즉, 낸드 맵핑 테이블(125)이 변경)되더라도, 낸드 맵핑 테이블(125)과 호스트 맵핑 테이블(145)의 동기화가 완료된 후에만, 낸드 플래시 메모리 장치(120)에 대한 읽기 동작, 쓰기 동작 등을 수행할 수 있다. 따라서, 비휘발성 메모리 시스템(100)에서는 낸드 플래시 메모리 장치(120)에 구비된 낸드 맵핑 테이블(125)과 호스트 장치(140)에 구비된 호스트 맵핑 테이블(145)은 항상 동일한 정보를 가질 수 있다. 그 결과, 비휘발성 메모리 시스템(100)에서는 호스트 장치(140)가 어드레스 맵핑 동작을 항상 수행하고, 낸드 플래시 메모리 장치(120)에 커맨드가 지시하는 논리적 어드레스에 관한 제 1 정보 및 논리적 어드레스에 대응하는 물리적 어드레스에 관한 제 2 정보를 제공할 수 있다.
도 7은 도 1의 비휘발성 메모리 시스템이 위크 동기화(weak sync) 방식으로 동작하는 일 예를 나타내는 순서도이다.
도 7을 참조하면, 비휘발성 메모리 시스템(100)은 낸드 플래시 메모리 장치(120)와 호스트 장치(140)가 부팅될 때, 낸드 플래시 메모리 장치(120)에 구비된 낸드 맵핑 테이블(125)과 호스트 장치(140)에 구비된 호스트 맵핑 테이블(145)을 시간을 두어 동기화시키는 위크 동기화 방식으로 동작할 수 있다. 구체적으로, 비휘발성 메모리 시스템(100)은 낸드 맵핑 테이블(125)과 호스트 맵핑 테이블(145)을 비교(Step S410)하여, 낸드 맵핑 테이블(125)과 호스트 맵핑 테이블(145)이 서로 일치하는지 여부를 판단(Step S420)할 수 있다. 이 때, 낸드 맵핑 테이블(125)과 호스트 맵핑 테이블(145)이 서로 일치하면, 비휘발성 메모리 시스템(100)은 호스트 맵핑 테이블(145)에 기초하여 어드레스 맵핑 동작을 수행(Step S430)할 수 있다. 반면에, 낸드 맵핑 테이블(125)과 호스트 맵핑 테이블(145)이 서로 일치하지 않으면, 비휘발성 메모리 시스템(100)은 낸드 맵핑 테이블(125)에 기초하여 어드레스 맵핑 동작을 수행(Step S450)할 수 있다. 한편, 비휘발성 메모리 시스템(100)은 호스트 맵핑 테이블(145)에 기초하여 어드레스 맵핑 동작을 수행(Step S430)하는 동안에, 낸드 맵핑 테이블(125)이 변경되었는지 여부를 판단(Step S440)하고, 낸드 맵핑 테이블(125)이 변경되지 않았으면, 호스트 맵핑 테이블(145)에 기초하여 어드레스 맵핑 동작을 계속적으로 수행(Step S430)하고, 낸드 맵핑 테이블(125)이 변경되었으면, 낸드 맵핑 테이블(125)에 기초하여 어드레스 맵핑 동작을 수행(Step S450)할 수 있다. 나아가, 비휘발성 메모리 시스템(100)은 낸드 맵핑 테이블(125)에 기초하여 어드레스 맵핑 동작을 수행(Step S450)하는 동안에, 낸드 맵핑 테이블(125)과 호스트 맵핑 테이블(145)이 서로 일치하는지 여부를 판단(Step S460)하고, 낸드 맵핑 테이블(125)과 호스트 맵핑 테이블(145)이 서로 일치하면, 호스트 맵핑 테이블(145)에 기초하여 어드레스 맵핑 동작을 수행(Step S430)하고, 낸드 맵핑 테이블(125)과 호스트 맵핑 테이블(145)이 서로 일치하지 않으면, 낸드 맵핑 테이블(125)에 기초하여 어드레스 맵핑 동작을 계속적으로 수행(Step S450)할 수 있다.
상술한 바와 같이, 위크 동기화 방식으로 동작하는 비휘발성 메모리 시스템(100)에서는 낸드 플래시 메모리 장치(120)와 호스트 장치(140)가 어드레스 맵핑 동작을 선택적으로 수행할 수 있다. 다시 말하면, 스트롱 동기화 방식으로 동작하는 비휘발성 메모리 시스템(100)은 낸드 플래시 메모리 장치(120)와 호스트 장치(140)를 부팅한 이후, 낸드 맵핑 테이블(125)과 호스트 맵핑 테이블(145)의 동기화를 완료한 후, 낸드 플래시 메모리 장치(120)에 대한 읽기 동작, 쓰기 동작 등을 수행하는 반면에, 위크 동기화 방식으로 동작하는 비휘발성 메모리 시스템(100)은 낸드 플래시 메모리 장치(120)와 호스트 장치(140)를 부팅한 이후, 낸드 맵핑 테이블(125)과 호스트 맵핑 테이블(145)의 동기화가 진행 중인 경우에도, 낸드 플래시 메모리 장치(120)에 대한 읽기 동작, 쓰기 동작 등을 수행할 수 있다. 즉, 위크 동기화 방식으로 동작하는 비휘발성 메모리 시스템(100)은 낸드 플래시 메모리 장치(120)와 호스트 장치(140)를 부팅한 이후, 낸드 맵핑 테이블(125)과 호스트 맵핑 테이블(145)을 시간을 두어 동기화시키는 것이다. 구체적으로, 위크 동기화 방식으로 동작하는 비휘발성 메모리 시스템(100)은 낸드 맵핑 테이블(125)과 호스트 맵핑 테이블(145)의 동기화가 진행 중인 경우, 호스트 장비(140)에 구비된 호스트 맵핑 테이블(145)을 무효인(invalid) 상태로 유지시킬 수 있다. 반면에, 위크 동기화 방식으로 동작하는 비휘발성 메모리 시스템(100)은 낸드 맵핑 테이블(125)과 호스트 맵핑 테이블(145)의 동기화가 완료된 경우, 호스트 장치(140)에 구비된 호스트 맵핑 테이블(145)을 유효인(valid) 상태로 유지시킬 수 있다. 이 때, 호스트 장치(140)에 구비된 호스트 맵핑 테이블(145)이 무효인 상태로 유지되는 경우, 낸드 플래시 메모리 장치(120)에 구비된 낸드 맵핑 테이블(125)에 기초하여 어드레스 맵핑 동작이 수행되고, 호스트 장치(140)에 구비된 호스트 맵핑 테이블(145)이 유효인 상태로 유지되는 경우, 호스트 장치(140)에 구비된 호스트 맵핑 테이블(145)에 기초하여 어드레스 맵핑 동작이 수행될 수 있다. 한편, 위크 동기화 방식으로 동작하는 비휘발성 메모리 시스템(100)은 낸드 플래시 메모리 장치(120)의 아이들(idle) 타이밍 또는 다른 커맨드의 피기백(piggyback)을 이용하여 낸드 맵핑 테이블(125)과 호스트 맵핑 테이블(145)의 동기화를 수행할 수 있다. 다만, 이것은 예시적인 것에 불과한 것으로서, 낸드 맵핑 테이블(125)과 호스트 맵핑 테이블(145)의 동기화는 다양한 방식으로 수행될 수 있다. 이와 같이, 비휘발성 메모리 시스템(100)에서는 호스트 장치(140)에 구비된 호스트 맵핑 테이블(145)이 유효인 상태인 경우에, 호스트 장치(140)가 파일 시스템(142)에서 출력되는 논리적 어드레스를 낸드 플래시 메모리 장치(120)의 물리적 어드레스로 변환시키고, 논리적 어드레스에 대응하는 물리적 어드레스에 관한 정보를 낸드 플래시 메모리 장치(120)에 제공할 수 있다.
도 8a는 도 1의 비휘발성 메모리 시스템이 위크 동기화 방식으로 동작할 때, 호스트 맵핑 테이블이 유효인(valid) 상태에서 읽기 동작이 수행되는 일 예를 나타내는 도면이고, 도 8b는 도 1의 비휘발성 메모리 시스템이 위크 동기화 방식으로 동작할 때, 호스트 맵핑 테이블이 유효인 상태에서 읽기 동작이 수행되는 다른 예를 나타내는 도면이다.
도 8a 및 도 8b를 참조하면, 도 8a는 비휘발성 메모리 시스템(100)이 위크 동기화 방식으로 동작하고, 호스트 맵핑 테이블(145)이 유효인 상태일 때, 파일 시스템(142)에서 출력되는 커맨드(READ_LBA)가 지시하는 논리적 어드레스(LBA)에 대응하는 낸드 플래시 메모리 장치(120)의 물리적 어드레스(PBA)가 호스트 맵핑 테이블(145)에 존재하는 경우를 나타내고, 도 8b는 비휘발성 메모리 시스템(100)이 위크 동기화 방식으로 동작하고, 호스트 맵핑 테이블(145)이 유효인 상태일 때, 파일 시스템(142)에서 출력되는 커맨드(READ_LBA)가 지시하는 논리적 어드레스(LBA)에 대응하는 낸드 플래시 메모리 장치(120)의 물리적 어드레스(PBA)가 호스트 맵핑 테이블(145)에 존재하지 않는 경우를 나타낸다.
도 8a에 도시된 바와 같이, 비휘발성 메모리 시스템(100)이 위크 동기화 방식으로 동작하고, 호스트 맵핑 테이블(145)이 유효인 상태일 때, 호스트 장치(140)는 낸드 플래시 메모리 장치(120)에 대한 읽기 동작이 요구(즉, 커맨드(READ_LBA)가 발생)되면, 호스트 맵핑 테이블(145)에 기초하여 어드레스 맵핑 동작을 수행(즉, MA로 표시)할 수 있다. 이후, 호스트 장치(140)는 커맨드(READ_LBA)가 지시하는 논리적 어드레스(LBA)에 관한 제 1 정보(INF_LBA) 및 논리적 어드레스(LBA)에 대응하는 물리적 어드레스(PBA)에 관한 제 2 정보(INF_PBA)를 낸드 플래시 메모리 장치(120)에 전송할 수 있다. 이에, 낸드 플래시 메모리 장치(120)는 논리적 어드레스(LBA)에 대응하는 물리적 어드레스(PBA)를 바로 파악할 수 있어, 낸드 맵핑 테이블(125)에 기초하여 어드레스 맵핑 동작을 수행할 필요 없이, 논리적 어드레스(LBA)에 대응하는 물리적 어드레스(PBA)에 위치한 데이터(DATA)를 호스트 컨트롤러(144)를 거쳐 파일 시스템(142)에 출력할 수 있다. 반면에, 도 8b에 도시된 바와 같이, 파일 시스템(142)에서 출력되는 커맨드(READ_LBA)가 지시하는 논리적 어드레스(LBA)에 대응하는 낸드 플래시 메모리 장치(120)의 물리적 어드레스(PBA)가 존재하지 않으면, 호스트 컨트롤러(144)는 해당 데이터가 없음을 표시하는 소정의 데이터(OxFF)를 파일 시스템(142)에 출력할 수 있다. 이것은 비휘발성 메모리 시스템(100)이 위크 동기화 방식으로 동작하고, 호스트 맵핑 테이블(145)이 유효인 상태일 때, 낸드 플래시 메모리 장치(120)에 구비된 낸드 맵핑 테이블(125)과 호스트 장치(140)에 구비된 호스트 맵핑 테이블(145)은 항상 동일한 정보를 가지기 때문이다. 한편, 도 8a 및 도 8b에서는 호스트 장치(140)가 논리적 어드레스(LBA)에 관한 제 1 정보(INF_LBA) 및 물리적 어드레스(PBA)에 관한 제 2 정보(INF_PBA)를 낸드 플래시 메모리 장치(120)에 전송하는 것으로 도시되어 있으나, 실시예에 따라, 호스트 장치(140)는 물리적 어드레스(PBA)에 관한 제 2 정보(INF_PBA)만을 낸드 플래시 메모리 장치(120)에 전송할 수도 있다. 한편, 맵핑 정보 보안을 위하여, 논리적 어드레스(LBA)에 대응하는 물리적 어드레스(PBA)는 호스트 맵핑 테이블(145)에 암호화(예를 들어, 비트 쉬프트(bit-shift) 등)되어 저장될 수 있다.
도 9a는 도 1의 비휘발성 메모리 시스템이 위크 동기화 방식으로 동작할 때, 호스트 맵핑 테이블이 무효인 상태에서 읽기 동작이 수행되는 일 예를 나타내는 도면이고, 도 9b는 도 1의 비휘발성 메모리 시스템이 위크 동기화 방식으로 동작할 때, 호스트 맵핑 테이블이 무효인 상태에서 읽기 동작이 수행되는 다른 예를 나타내는 도면이다.
도 9a 및 도 9b를 참조하면, 도 9a는 비휘발성 메모리 시스템(100)이 위크 동기화 방식으로 동작하고, 호스트 맵핑 테이블(145)이 무효인 상태일 때, 파일 시스템(142)에서 출력되는 커맨드(READ_LBA)가 지시하는 논리적 어드레스(LBA)에 대응하는 낸드 플래시 메모리 장치(120)의 물리적 어드레스(PBA)가 낸드 맵핑 테이블(125)에 존재하는 경우를 나타내고, 도 9b는 비휘발성 메모리 시스템(100)이 위크 동기화 방식으로 동작하고, 호스트 맵핑 테이블(145)이 무효인 상태일 때, 파일 시스템(142)에서 출력되는 커맨드(READ_LBA)가 지시하는 논리적 어드레스(LBA)에 대응하는 낸드 플래시 메모리 장치(120)의 물리적 어드레스(PBA)가 낸드 맵핑 테이블(125)에 존재하지 않는 경우를 나타낸다. 도 9a에 도시된 바와 같이, 비휘발성 메모리 시스템(100)이 위크 동기화 방식으로 동작하고, 호스트 맵핑 테이블(145)이 무효인 상태일 때, 낸드 플래시 메모리 장치(120)에 대한 읽기 동작이 요구(즉, 커맨드(READ_LBA)가 발생)되면, 낸드 플래시 메모리 장치(120)는 낸드 맵핑 테이블(125)에 기초하여 어드레스 맵핑 동작을 수행(즉, MB로 표시)할 수 있다. 이에, 낸드 플래시 메모리 장치(120)는 논리적 어드레스(LBA)에 대응하는 물리적 어드레스(PBA)를 파악함으로써, 논리적 어드레스(LBA)에 대응하는 물리적 어드레스(PBA)에 위치한 데이터(DATA)를 호스트 컨트롤러(144)를 거쳐 파일 시스템(142)에 출력할 수 있다. 반면에, 도 9b에 도시된 바와 같이, 낸드 플래시 메모리 장치(120)가 낸드 맵핑 테이블(125)에 기초하여 어드레스 맵핑 동작을 수행(즉, MB로 표시)하였으나, 낸드 맵핑 테이블(125)에 파일 시스템(142)에서 출력되는 커맨드(READ_LBA)가 지시하는 논리적 어드레스(LBA)에 대응하는 낸드 플래시 메모리 장치(120)의 물리적 어드레스(PBA)가 존재하지 않으면, 낸드 플래시 메모리 장치(120)는 해당 데이터가 없음을 표시하는 소정의 데이터(OxFF)를 호스트 컨트롤러(144)를 거쳐 파일 시스템(142)에 출력할 수 있다. 이와 같이, 위크 동기화 방식으로 동작하는 비휘발성 메모리 시스템(100)에서는 호스트 맵핑 테이블(145)이 무효인 상태일 때에, 호스트 장치(140)가 커맨드(READ_LBA)가 지시하는 논리적 어드레스(LBA)에 관한 제 1 정보(INF_LBA)만을 낸드 플래시 메모리 장치(120)에 전송할 수 있고, 낸드 플래시 메모리 장치(120)가 낸드 맵핑 테이블(125)에 기초하여 어드레스 맵핑 동작을 수행할 수 있다.
도 10a는 도 1의 비휘발성 메모리 시스템이 위크 동기화 방식으로 동작할 때 쓰기 동작이 수행되는 일 예를 나타내는 도면이고, 도 10b는 도 1의 비휘발성 메모리 시스템이 위크 동기화 방식으로 동작할 때 쓰기 동작이 수행되는 다른 예를 나타내는 도면이다.
도 10a 및 도 10b를 참조하면, 도 10a는 비휘발성 메모리 시스템(100)이 위크 동기화 방식으로 동작하고, 호스트 맵핑 테이블(145)이 무효인 상태일 때, 호스트 장치(140)가 파일 시스템(142)에서 출력되는 커맨드(WRITE_LBA)가 지시하는 논리적 어드레스(LBA)에 관한 제 1 정보(INF_LBA)만을 낸드 플래시 메모리 장치(120)에 전송하는 경우를 나타내고, 도 10b는 휘발성 메모리 시스템(100)이 위크 동기화 방식으로 동작하고, 호스트 맵핑 테이블(145)이 유효인 상태일 때, 호스트 장치(140)가 파일 시스템(142)에서 출력되는 커맨드(WRITE_LBA)가 지시하는 논리적 어드레스(LBA)에 관한 제 1 정보(INF_LBA) 및 논리적 어드레스(LBA)에 대응하는 낸드 플래시 메모리 장치(120)의 물리적 어드레스(PBA)에 관한 제 2 정보(INF_PBA)까지 낸드 플래시 메모리 장치(120)에 전송하는 경우를 나타낸다. 즉, 도 10b에서는 호스트 장치(140)가 낸드 플래시 메모리 장치(120)에 낸드 맵핑 테이블(125)의 변경을 위한 저장 위치 정보(즉, 물리적 어드레스(PBA)에 관한 제 2 정보(INF_PBA))까지 제공할 수 있다.
도 10a에 도시된 바와 같이, 비휘발성 메모리 시스템(100)이 위크 동기화 방식으로 동작하고, 호스트 맵핑 테이블(145)이 무효인 상태일 때, 낸드 플래시 메모리 장치(120)에 대한 쓰기 동작이 요구(즉, 커맨드(WRITE_LBA)가 발생)되면, 호스트 장치(140)는 파일 시스템(142)에서 출력되는 커맨드(WRITE_LBA)가 지시하는 논리적 어드레스(LBA)에 관한 제 1 정보(INF_LBA)만을 낸드 플래시 메모리 장치(120)에 전송할 수 있다. 이에, 낸드 플래시 메모리 장치(120)는 낸드 맵핑 테이블(125)에 기초하여 어드레스 맵핑 동작을 수행(즉, MB로 표시)함으로써 논리적 어드레스(LBA)에 대응하는 낸드 플래시 메모리 장치(120)의 물리적 어드레스(PBA)를 결정한 후, 쓰기 동작을 완료하여 쓰기 완료 결과(RESULT)를 호스트 컨트롤러(144)를 거쳐 파일 시스템(142)에 출력할 수 있다. 한편, 낸드 플래시 메모리 장치(120)에 대한 쓰기 동작이 수행되면, 낸드 플래시 메모리 장치(120)에 구비된 낸드 맵핑 테이블(125)이 변경되기 때문에, 호스트 장치(140)에 구비된 호스트 맵핑 테이블(145)도 갱신(즉, MC로 표시)될 수 있다. 이를 위하여, 낸드 플래시 메모리 장치(120)는 쓰기 동작이 수행된 물리적 어드레스에 관한 제 3 정보를 호스트 장치(140)에 전송할 수 있다. 반면에, 도 10b에 도시된 바와 같이, 비휘발성 메모리 시스템(100)이 위크 동기화 방식으로 동작하고, 호스트 맵핑 테이블(145)이 유효인 상태일 때, 낸드 플래시 메모리 장치(120)에 대한 쓰기 동작이 요구(즉, 커맨드(WRITE_LBA)가 발생)되면, 호스트 장치(140)는 호스트 맵핑 테이블(145)에 기초하여 어드레스 맵핑 동작을 수행(즉, MA로 표시)함으로써 논리적 어드레스(LBA)에 대응하는 낸드 플래시 메모리 장치(120)의 물리적 어드레스(PBA)를 결정한 후, 파일 시스템(142)에서 출력되는 커맨드(WRITE_LBA)가 지시하는 논리적 어드레스(LBA)에 관한 제 1 정보(INF_LBA) 및 논리적 어드레스(LBA)에 대응하는 낸드 플래시 메모리 장치(120)의 물리적 어드레스(PBA)에 관한 제 2 정보(INF_PBA)까지 낸드 플래시 메모리 장치(120)에 전송할 수 있다. 이후, 낸드 플래시 메모리 장치(120)는 쓰기 동작을 완료하여 쓰기 완료 결과(RESULT)를 호스트 컨트롤러(144)를 거쳐 파일 시스템(142)에 출력할 수 있다. 마찬가지로, 낸드 플래시 메모리 장치(120)에 대한 쓰기 동작이 수행되면, 낸드 플래시 메모리 장치(120)에 구비된 낸드 맵핑 테이블(125)이 변경되기 때문에, 호스트 장치(140)에 구비된 호스트 맵핑 테이블(145)도 갱신(즉, MC로 표시)될 수 있다. 이를 위하여, 낸드 플래시 메모리 장치(120)는 쓰기 동작이 수행된 물리적 어드레스에 관한 제 3 정보를 호스트 장치(140)에 전송할 수 있다. 한편, 쓰기 동작이 수행된 물리적 어드레스는 암호화(예를 들어, 비트 쉬프트 등)되어 호스트 장치(140)에 전송될 수 있다.
도 11은 도 1의 비휘발성 메모리 시스템이 위크 동기화 방식으로 동작할 때 초기화 동작이 수행되는 일 예를 나타내는 순서도이다.
도 11을 참조하면, 비휘발성 메모리 시스템(100)은 낸드 플래시 메모리 장치(120)와 호스트 장치(140)를 부팅(Step S510)한 후, 낸드 맵핑 테이블(125)과 호스트 맵핑 테이블(145)의 동기화를 수행(Step S520)할 수 있다. 이 때, 낸드 맵핑 테이블(125)과 호스트 맵핑 테이블(145)의 동기화가 진행 중인 경우, 비휘발성 메모리 시스템(100)은 낸드 맵핑 테이블(125)에 기초하여 어드레스 맵핑 동작을 수행(Step S530)할 수 있다. 이후, 비휘발성 메모리 시스템(100)은 낸드 맵핑 테이블(125)과 호스트 맵핑 테이블(145)의 동기화가 완료되었는지 여부를 판단(Step S540)할 수 있다. 이 때, 낸드 맵핑 테이블(125)과 호스트 맵핑 테이블(145)의 동기화가 완료되지 않은 경우, 비휘발성 메모리 시스템(100)은 낸드 맵핑 테이블(125)과 호스트 맵핑 테이블(145)의 동기화를 계속적으로 수행(Step S520)하면서, 낸드 맵핑 테이블(125)에 기초하여 어드레스 맵핑 동작을 수행(Step S530)할 수 있다. 반면에, 낸드 맵핑 테이블(125)과 호스트 맵핑 테이블(145)의 동기화가 완료된 경우, 비휘발성 메모리 시스템(100)은 호스트 맵핑 테이블(145)에 기초하여 어드레스 맵핑 동작을 수행(Step S550)할 수 있다. 이와 같이, 비휘발성 메모리 시스템(100)은 위크 동기화 방식으로 동작하는 경우에, 낸드 플래시 메모리 장치(120)와 호스트 장치(140)가 부팅된 이후, 낸드 맵핑 테이블(125)과 호스트 맵핑 테이블(145)의 동기화를 수행하면서, 낸드 플래시 메모리 장치(120)에 대한 읽기 동작, 쓰기 동작 등을 수행할 수 있다. 한편, 비휘발성 메모리 시스템(100)은 낸드 플래시 메모리 장치(120)의 아이들 타이밍 또는 다른 커맨드의 피기백을 이용하여 낸드 맵핑 테이블(125)과 호스트 맵핑 테이블(145)의 동기화를 수행할 수 있다. 다만, 이것은 예시적인 것에 불과한 것으로서, 낸드 맵핑 테이블(125)과 호스트 맵핑 테이블(145)의 동기화는 다양한 방식으로 수행될 수 있다.
도 12는 도 1의 비휘발성 메모리 시스템이 위크 동기화 방식으로 동작할 때 백그라운드 동작이 수행되는 일 예를 나타내는 순서도이다.
도 12를 참조하면, 비휘발성 메모리 시스템(100)은 낸드 플래시 메모리 장치(120)에 대한 백그라운드 동작(예를 들어, 가비지 콜렉션 동작, 병합 동작, 카피백 동작, 컴팩션 동작 또는 웨어 레벨링 동작 등)을 수행(Step S610)하면, 낸드 맵핑 테이블(125)과 호스트 맵핑 테이블(145)의 동기화를 수행(Step S620)할 수 있다. 이 때, 낸드 맵핑 테이블(125)과 호스트 맵핑 테이블(145)의 동기화가 진행 중인 경우, 비휘발성 메모리 시스템(100)은 낸드 맵핑 테이블(125)에 기초하여 어드레스 맵핑 동작을 수행(Step S630)할 수 있다. 이후, 비휘발성 메모리 시스템(100)은 낸드 맵핑 테이블(125)과 호스트 맵핑 테이블(145)의 동기화가 완료되었는지 여부를 판단(Step S640)할 수 있다. 이 때, 낸드 맵핑 테이블(125)과 호스트 맵핑 테이블(145)의 동기화가 완료되지 않은 경우, 비휘발성 메모리 시스템(100)은 낸드 맵핑 테이블(125)과 호스트 맵핑 테이블(145)의 동기화를 계속적으로 수행(Step S620)하면서, 낸드 맵핑 테이블(125)에 기초하여 어드레스 맵핑 동작을 수행(Step S630)할 수 있다. 반면에, 낸드 맵핑 테이블(125)과 호스트 맵핑 테이블(145)의 동기화가 완료된 경우, 비휘발성 메모리 시스템(100)은 호스트 맵핑 테이블(145)에 기초하여 어드레스 맵핑 동작을 수행(Step S650)할 수 있다. 이와 같이, 비휘발성 메모리 시스템(100)은 위크 동기화 방식으로 동작하는 경우에, 낸드 플래시 메모리 장치(120)에 대한 백그라운드 동작이 수행(즉, 낸드 맵핑 테이블(125)이 변경)되면, 낸드 플래시 메모리 장치(120)에 구비된 낸드 맵핑 테이블(125)과 호스트 장치(140)에 구비된 호스트 맵핑 테이블(145)의 동기화를 수행하면서, 낸드 플래시 메모리 장치(120)에 대한 읽기 동작, 쓰기 동작 등을 수행할 수 있다.
도 13은 본 발명의 실시예들에 따른 맵핑 테이블 관리 방법을 나타내는 순서도이고, 도 14는 도 13의 맵핑 테이블 관리 방법을 채용한 비휘발성 메모리 시스템의 동작 상태를 나타내는 도면이다.
도 13 및 도 14를 참조하면, 호스트 장치 및 호스트 장치와 인터액션(interaction)을 수행하는 낸드 플래시 메모리 장치를 포함하는 비휘발성 메모리 시스템에 있어서, 도 1의 맵핑 테이블 관리 방법은 호스트 장치에 구비된 호스트 맵핑 테이블과 낸드 플래시 메모리 장치에 구비된 낸드 맵핑 테이블의 동기화를 수행(Step S710)하고, 호스트 장치에서 우선적으로 어드레스 맵핑 동작을 수행(Step S720)할 수 있다. 이후, 도 1의 맵핑 테이블 관리 방법은 낸드 플래시 메모리 장치에 구비된 낸드 맵핑 테이블이 변경되는 경우에 호스트 장치에 구비된 호스트 맵핑 테이블을 갱신(Step S730)할 수 있다. 이 때, 도 1의 맵핑 테이블 관리 방법은 낸드 플래시 메모리 장치에 대한 읽기 동작이 요구되면, 커맨드가 지시하는 논리적 어드레스에 관한 제 1 정보 및 논리적 어드레스에 대응하는 물리적 어드레스에 관한 제 2 정보가 호스트 장치에서 낸드 플래시 메모리 장치로 전송되게 할 수 있다. 상술한 바와 같이, 본 발명은 호스트 장치로 하여금 파일 시스템에서 출력되는 커맨드가 지시하는 논리적 어드레스를 호스트 맵핑 테이블에 기초하여 낸드 플래시 메모리 장치의 물리적 어드레스로 변환하게 하고, 커맨드가 지시하는 논리적 어드레스에 관한 제 1 정보 및 논리적 어드레스에 대응하는 물리적 어드레스에 관한 제 2 정보를 낸드 플래시 메모리 장치에 전송하게 함으로써, 낸드 플래시 메모리 장치로 하여금 낸드 맵핑 테이블을 검색하는 로드를 감소시킬 수 있다. 이와 같이, 도 1의 맵핑 테이블 관리 방법은 비휘발성 메모리 시스템을 위하여 호스트 장치에 구비된 호스트 맵핑 테이블과 낸드 플래시 메모리 장치에 구비된 낸드 맵핑 테이블을 효율적으로 동기화시킴으로써 비휘발성 메모리 시스템의 전체 성능을 크게 향상시킬 수 있다. 다만, 이에 대해서는 상술한 바 있으므로, 그에 대한 중복되는 설명은 생략하기로 한다. 이상, 본 발명의 실시예들에 따른 비휘발성 메모리 시스템 및 이를 위한 맵핑 테이블 관리 방법에 대해 도면을 참조하여 설명하였지만, 상기 설명은 예시적인 것으로서 본 발명의 기술적 사상을 벗어나지 않는 범위에서 해당 기술 분야에서 통상의 지식을 가진 자에 의하여 수정 및 변경될 수 있을 것이다. 예를 들어, 본 발명은 낸드 플래시 메모리 장치와 유사한 구조적 특성 및/또는 동작적 특성을 갖는 반도체 메모리 장치를 구비한 비휘발성 메모리 시스템에 다양하게 적용될 수 있다.
본 발명은 낸드 플래시 메모리 장치를 구비하는 비휘발성 메모리 시스템에 적용될 수 있다. 따라서, 본 발명은 솔리드 스테이트 드라이브(SSD), 시큐어 디지털 카드(SDCARD), 유니버셜 플래시 스토리지(UFS), 임베디드 멀티미디어 카드(EMMC), CF 카드, 메모리 스틱, XD 픽쳐 카드 등에 적용될 수 있다.
이상에서는 본 발명의 실시예들을 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
100: 비휘발성 메모리 시스템 120: 낸드 플래시 메모리 장치
122: 낸드 플래시 메모리 124: 낸드 컨트롤러
125: 낸드 맵핑 테이블 140: 호스트 장치
142: 파일 시스템 144: 호스트 컨트롤러
145: 호스트 맵핑 테이블

Claims (22)

  1. 적어도 하나 이상의 낸드 플래시 메모리와 상기 낸드 플래시 메모리를 제어하는 낸드 컨트롤러를 구비한 낸드 플래시 메모리 장치; 및
    파일 시스템과 상기 파일 시스템로부터 커맨드를 입력받아 상기 낸드 플래시 메모리 장치에 제공하는 호스트 컨트롤러를 구비한 호스트 장치를 포함하며,
    상기 낸드 플래시 메모리 장치에 낸드 맵핑 테이블을 구비하고, 상기 호스트 장치에 호스트 맵핑 테이블을 구비하며, 상기 낸드 맵핑 테이블과 상기 호스트 맵핑 테이블을 동기화시킴으로써, 상기 호스트 장치에서 우선적으로 어드레스 맵핑 동작을 수행하고,
    상기 낸드 맵핑 테이블이 변경되는 경우에 상기 호스트 맵핑 테이블을 갱신(update)하는 것을 특징으로 하는 비휘발성 메모리 시스템.
  2. 제 1 항에 있어서, 상기 낸드 맵핑 테이블은 상기 낸드 컨트롤러 내부에 위치하고, 상기 호스트 맵핑 테이블은 상기 호스트 컨트롤러 내부에 위치하는 것을 특징으로 하는 비휘발성 메모리 시스템.
  3. 제 1 항에 있어서, 상기 낸드 플래시 메모리 장치와 상기 호스트 장치가 부팅(booting)될 때, 상기 낸드 맵핑 테이블과 상기 호스트 맵핑 테이블을 동시에 동기화시키는 스트롱 동기화(strong sync) 방식으로 동작하는 것을 특징으로 하는 비휘발성 메모리 시스템.
  4. 제 3 항에 있어서, 상기 낸드 플래시 메모리 장치에 대한 읽기 동작이 요구되면, 상기 호스트 장치에서 상기 호스트 맵핑 테이블에 기초하여 상기 어드레스 맵핑 동작을 수행하는 것을 특징으로 하는 비휘발성 메모리 시스템.
  5. 제 4 항에 있어서, 상기 읽기 동작을 수행하기 위하여, 상기 호스트 장치는 상기 커맨드가 지시하는 논리적 어드레스에 관한 제 1 정보 및 상기 논리적 어드레스에 대응하는 물리적 어드레스에 관한 제 2 정보를 상기 낸드 플래시 메모리 장치에 전송하는 것을 특징으로 하는 비휘발성 메모리 시스템.
  6. 제 5 항에 있어서, 상기 논리적 어드레스에 대응하는 상기 물리적 어드레스는 상기 호스트 맵핑 테이블에 암호화되어 저장되는 것을 특징으로 하는 비휘발성 메모리 시스템.
  7. 제 3 항에 있어서, 상기 낸드 플래시 메모리 장치에 대한 쓰기 동작이 요구되면, 상기 쓰기 동작이 수행된 이후에 상기 호스트 맵핑 테이블을 갱신(update)하는 것을 특징으로 하는 비휘발성 메모리 시스템.
  8. 제 7 항에 있어서, 상기 쓰기 동작이 수행된 이후에, 상기 낸드 플래시 메모리 장치는 상기 쓰기 동작이 수행된 물리적 어드레스에 관한 제 3 정보를 상기 호스트 장치에 전송하는 것을 특징으로 하는 비휘발성 메모리 시스템.
  9. 제 3 항에 있어서, 상기 낸드 플래시 메모리 장치에서 백그라운드 동작이 수행되면, 상기 백그라운드 동작에 응답하여 상기 낸드 맵핑 테이블과 상기 호스트 맵핑 테이블을 동시에 동기화시키는 것을 특징으로 하는 비휘발성 메모리 시스템.
  10. 제 9 항에 있어서, 상기 백그라운드 동작은 가비지 콜렉션(garbage collection) 동작, 병합(merge) 동작, 카피백(copyback) 동작, 컴팩션(compaction) 동작 또는 웨어 레벨링(wear leveling) 동작 중에서 적어도 하나 이상을 포함하는 것을 특징으로 하는 비휘발성 메모리 시스템.
  11. 제 1 항에 있어서, 상기 낸드 플래시 메모리 장치와 상기 호스트 장치가 부팅된 이후, 상기 낸드 맵핑 테이블과 상기 호스트 맵핑 테이블을 시간을 두어 동기화시키는 위크 동기화(weak sync) 방식으로 동작하는 것을 특징으로 하는 비휘발성 메모리 시스템.
  12. 제 11 항에 있어서, 상기 낸드 맵핑 테이블과 상기 호스트 맵핑 테이블의 동기화가 진행 중인 경우, 상기 호스트 맵핑 테이블을 무효인(invalid) 상태로 유지시키고, 상기 낸드 맵핑 테이블과 상기 호스트 맵핑 테이블의 동기화가 완료된 경우, 상기 호스트 맵핑 테이블을 유효인(valid) 상태로 유지시키는 것을 특징으로 하는 비휘발성 메모리 시스템.
  13. 제 12 항에 있어서, 상기 호스트 맵핑 테이블이 무효인 상태로 유지되는 경우, 상기 낸드 맵핑 테이블에 기초하여 상기 어드레스 맵핑 동작을 수행하고, 상기 호스트 맵핑 테이블이 유효인 상태로 유지되는 경우, 상기 호스트 맵핑 테이블에 기초하여 상기 어드레스 맵핑 동작을 수행하는 것을 특징으로 하는 비휘발성 메모리 시스템.
  14. 제 13 항에 있어서, 상기 낸드 플래시 메모리 장치에 대한 읽기 동작이 요구되면, 상기 호스트 맵핑 테이블이 유효인 상태인 경우에, 상기 호스트 장치는 상기 커맨드가 지시하는 논리적 어드레스에 관한 제 1 정보 및 상기 논리적 어드레스에 대응하는 물리적 어드레스에 관한 제 2 정보를 상기 낸드 플래시 메모리 장치에 전송하는 것을 특징으로 하는 비휘발성 메모리 시스템.
  15. 제 14 항에 있어서, 상기 논리적 어드레스에 대응하는 상기 물리적 어드레스는 상기 호스트 맵핑 테이블에 암호화되어 저장되는 것을 특징으로 하는 비휘발성 메모리 시스템.
  16. 제 13 항에 있어서, 상기 낸드 플래시 메모리 장치에 대한 읽기 동작이 요구되면, 상기 호스트 맵핑 테이블이 무효인 상태인 경우에, 상기 호스트 장치는 상기 커맨드가 지시하는 논리적 어드레스에 관한 제 1 정보를 상기 낸드 플래시 메모리 장치에 전송하는 것을 특징으로 하는 비휘발성 메모리 시스템.
  17. 제 13 항에 있어서, 상기 낸드 플래시 메모리 장치에 대한 쓰기 동작이 요구되면, 상기 쓰기 동작이 수행된 이후에 상기 호스트 맵핑 테이블을 갱신하는 것을 특징으로 하는 비휘발성 메모리 시스템.
  18. 제 17 항에 있어서, 상기 쓰기 동작이 수행된 이후에, 상기 낸드 플래시 메모리 장치는 상기 쓰기 동작이 수행된 물리적 어드레스에 관한 제 3 정보를 상기 호스트 장치에 전송하는 것을 특징으로 하는 비휘발성 메모리 시스템.
  19. 제 13 항에 있어서, 상기 낸드 플래시 메모리 장치에서 백그라운드 동작이 수행되면, 상기 백그라운드 동작에 응답하여 상기 낸드 맵핑 테이블과 상기 호스트 맵핑 테이블을 시간을 두어 동기화시키는 것을 특징으로 하는 비휘발성 메모리 시스템.
  20. 제 19 항에 있어서, 상기 백그라운드 동작은 가비지 콜렉션 동작, 병합 동작, 카피백 동작, 컴팩션 동작 또는 웨어 레벨링 동작 중에서 적어도 하나 이상을 포함하는 것을 특징으로 하는 비휘발성 메모리 시스템.
  21. 호스트 장치 및 상기 호스트 장치와 인터액션(interaction)을 수행하는 낸드 플래시 메모리 장치를 포함하는 비휘발성 메모리 시스템에 있어서,
    상기 호스트 장치에 구비된 호스트 맵핑 테이블과 상기 낸드 플래시 메모리 장치에 구비된 낸드 맵핑 테이블의 동기화(sync)를 수행하는 단계;
    상기 호스트 장치에서 우선적으로 어드레스 맵핑 동작을 수행하는 단계; 및
    상기 낸드 맵핑 테이블이 변경되는 경우에 상기 호스트 맵핑 테이블을 갱신(update)하는 단계를 포함하는 것을 특징으로 하는 맵핑 테이블 관리 방법.
  22. 제 21 항에 있어서, 상기 낸드 플래시 메모리 장치에 대한 읽기 동작이 요구되면, 커맨드가 지시하는 논리적 어드레스에 관한 제 1 정보 및 상기 논리적 어드레스에 대응하는 물리적 어드레스에 관한 제 2 정보가 상기 호스트 장치에서 상기 낸드 플래시 메모리 장치로 전송되는 것을 특징으로 하는 맵핑 테이블 관리 방법.
KR1020120132840A 2012-11-22 2012-11-22 비휘발성 메모리 시스템 및 이를 위한 맵핑 테이블 관리 방법 KR101420754B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020120132840A KR101420754B1 (ko) 2012-11-22 2012-11-22 비휘발성 메모리 시스템 및 이를 위한 맵핑 테이블 관리 방법
PCT/KR2013/006611 WO2014081100A1 (ko) 2012-11-22 2013-07-24 비휘발성 메모리 시스템 및 이를 위한 맵핑 테이블 관리 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120132840A KR101420754B1 (ko) 2012-11-22 2012-11-22 비휘발성 메모리 시스템 및 이를 위한 맵핑 테이블 관리 방법

Publications (2)

Publication Number Publication Date
KR20140065856A KR20140065856A (ko) 2014-05-30
KR101420754B1 true KR101420754B1 (ko) 2014-07-17

Family

ID=50776247

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120132840A KR101420754B1 (ko) 2012-11-22 2012-11-22 비휘발성 메모리 시스템 및 이를 위한 맵핑 테이블 관리 방법

Country Status (2)

Country Link
KR (1) KR101420754B1 (ko)
WO (1) WO2014081100A1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11216384B2 (en) 2019-03-28 2022-01-04 SK Hynix Inc. Controller, memory system and operating method of the controller
US11216214B2 (en) 2019-01-15 2022-01-04 SK Hynix Inc. Memory system and operation method thereof
US11314450B2 (en) 2018-10-31 2022-04-26 Samsung Electronics Co., Ltd. Method of operating storage device, storage device performing the same and method of operating storage system using the same
US11693729B2 (en) 2020-04-16 2023-07-04 SK Hynix Inc. Controller and operating method thereof

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101718713B1 (ko) * 2015-05-29 2017-03-22 주식회사 이에프텍 비휘발성 메모리 시스템
KR20190067540A (ko) * 2017-12-07 2019-06-17 에스케이하이닉스 주식회사 스토리지 시스템 및 그것의 동작 방법
KR102529710B1 (ko) * 2018-02-19 2023-05-09 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
CN110262750B (zh) * 2018-03-12 2023-05-09 宏碁股份有限公司 储存系统及储存方法
KR20200100956A (ko) * 2019-02-19 2020-08-27 에스케이하이닉스 주식회사 메모리 시스템의 맵 데이터 관리 방법 및 장치
KR20210001546A (ko) 2019-06-28 2021-01-06 에스케이하이닉스 주식회사 슬립모드에서 메모리 시스템의 내부데이터를 전송하는 장치 및 방법
US11294825B2 (en) 2019-04-17 2022-04-05 SK Hynix Inc. Memory system for utilizing a memory included in an external device
KR20200122086A (ko) 2019-04-17 2020-10-27 에스케이하이닉스 주식회사 메모리 시스템에서 맵 세그먼트를 전송하는 방법 및 장치
KR20200139913A (ko) 2019-06-05 2020-12-15 에스케이하이닉스 주식회사 메모리 시스템, 메모리 컨트롤러 및 메타 정보 저장 장치
US11782837B2 (en) 2021-11-04 2023-10-10 Qualcomm Incorporated Systems and methods for fast memory access

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080015763A (ko) * 2006-08-15 2008-02-20 인텔 코오퍼레이션 변환 색인 버퍼의 확장 페이지 테이블에의 동기화
KR100823171B1 (ko) * 2007-02-01 2008-04-18 삼성전자주식회사 파티션된 플래시 변환 계층을 갖는 컴퓨터 시스템 및플래시 변환 계층의 파티션 방법

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8412880B2 (en) * 2009-01-08 2013-04-02 Micron Technology, Inc. Memory system controller to manage wear leveling across a plurality of storage nodes
TWI396090B (zh) * 2009-02-18 2013-05-11 Silicon Motion Inc 快閃記憶裝置、資料儲存系統、以及傳送特殊命令至快閃記憶裝置之方法
KR20120102923A (ko) * 2011-03-09 2012-09-19 (주)인디링스 복사 명령 및 이동 명령을 지원하는 스토리지 시스템 및 상기 스토리지 시스템의 동작 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080015763A (ko) * 2006-08-15 2008-02-20 인텔 코오퍼레이션 변환 색인 버퍼의 확장 페이지 테이블에의 동기화
KR100823171B1 (ko) * 2007-02-01 2008-04-18 삼성전자주식회사 파티션된 플래시 변환 계층을 갖는 컴퓨터 시스템 및플래시 변환 계층의 파티션 방법

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11314450B2 (en) 2018-10-31 2022-04-26 Samsung Electronics Co., Ltd. Method of operating storage device, storage device performing the same and method of operating storage system using the same
US11714578B2 (en) 2018-10-31 2023-08-01 Samsung Electronics Co., Ltd. Method of operating storage device, storage device performing the same and method of operating storage system using the same
US11216214B2 (en) 2019-01-15 2022-01-04 SK Hynix Inc. Memory system and operation method thereof
US11216384B2 (en) 2019-03-28 2022-01-04 SK Hynix Inc. Controller, memory system and operating method of the controller
US11693729B2 (en) 2020-04-16 2023-07-04 SK Hynix Inc. Controller and operating method thereof

Also Published As

Publication number Publication date
KR20140065856A (ko) 2014-05-30
WO2014081100A1 (ko) 2014-05-30

Similar Documents

Publication Publication Date Title
KR101420754B1 (ko) 비휘발성 메모리 시스템 및 이를 위한 맵핑 테이블 관리 방법
US9940261B2 (en) Zoning of logical to physical data address translation tables with parallelized log list replay
US10915475B2 (en) Methods and apparatus for variable size logical page management based on hot and cold data
US8935459B2 (en) Heuristics for programming data in a non-volatile memory
KR101303524B1 (ko) 불휘발성 메모리에 대한 메타데이터 리던던시 스킴
US9396107B2 (en) Memory system having memory controller with cache memory and NVRAM and method of operating same
EP2570927B1 (en) Handling unclean shutdowns for a system having non-volatile memory
CN102855193B (zh) 非易失性存储系统中未使用的逻辑地址的挂载时去映射
US9891825B2 (en) Memory system of increasing and decreasing first user capacity that is smaller than a second physical capacity
US20150127889A1 (en) Nonvolatile memory system
US9830257B1 (en) Fast saving of data during power interruption in data storage systems
KR20120066198A (ko) 휘발성 메모리를 포함하는 저장 장치의 데이터 저장 방법
TW201729107A (zh) 用於反及閘型快閃記憶體之邏輯至實體位址表之壓縮快取
US20100312955A1 (en) Memory system and method of managing the same
US20080201518A1 (en) Log-based ftl and operating method thereof
TW201245959A (en) Dynamic and static data for a system having non-volatile memory
CN101937319A (zh) 存储器系统及其映射方法
KR20130031046A (ko) 플래시 메모리 장치 및 플래시 메모리 장치의 데이터 관리 방법
KR20150083264A (ko) 플래시 메모리 장치를 위한 주소변환 시스템 및 그 방법
US10754785B2 (en) Checkpointing for DRAM-less SSD
US10732878B1 (en) Enabling secondary scratchpad cache with solid-state devices for low cost hosts
JP2009003934A (ja) データ管理システム及びデータ管理方法、並びにデータ管理方法を実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体
US10019326B2 (en) Memory system
TW201520764A (zh) 資料儲存設備及其操作方法
US8380920B2 (en) Flash storage device and data access method of flash memory

Legal Events

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

Payment date: 20170706

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180710

Year of fee payment: 5