KR102025240B1 - 메모리 시스템 및 메모리 시스템의 동작 방법 - Google Patents

메모리 시스템 및 메모리 시스템의 동작 방법 Download PDF

Info

Publication number
KR102025240B1
KR102025240B1 KR1020130035283A KR20130035283A KR102025240B1 KR 102025240 B1 KR102025240 B1 KR 102025240B1 KR 1020130035283 A KR1020130035283 A KR 1020130035283A KR 20130035283 A KR20130035283 A KR 20130035283A KR 102025240 B1 KR102025240 B1 KR 102025240B1
Authority
KR
South Korea
Prior art keywords
memory
data
program
storage area
buffer memory
Prior art date
Application number
KR1020130035283A
Other languages
English (en)
Other versions
KR20140119510A (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 KR1020130035283A priority Critical patent/KR102025240B1/ko
Priority to US14/227,269 priority patent/US9640264B2/en
Publication of KR20140119510A publication Critical patent/KR20140119510A/ko
Application granted granted Critical
Publication of KR102025240B1 publication Critical patent/KR102025240B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents
    • 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/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5628Programming or writing circuits; Data input circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks

Abstract

본 발명은 메모리 시스템의 동작 방법에 관한 것이다. 본 발명의 동작 방법은, 외부 장치로부터 수신된 데이터를 버퍼 메모리에 저장하는 단계, 데이터 보장 모드일 때 버퍼 메모리에 저장된 데이터를 불휘발성 메모리의 제 1 영역에 프로그램하고, 데이터 보장 모드가 아닐 때 버퍼 메모리에 저장된 데이터를 불휘발성 메모리의 제 2 영역에 프로그램하는 단계, 버퍼 메모리에 저장된 데이터를 불휘발성 메모리의 제 2 영역에 프로그램하는 단계, 그리고 유휴 시간에 제 1 영역에 프로그램된 데이터를 제 2 영역에 프로그램하는 단계로 구성된다.

Description

메모리 시스템 및 메모리 시스템의 동작 방법{MEMORY SYSTEM AND OPERATING METHOD OF MEMORY SYSTEM}
본 발명은 반도체 메모리에 관한 것으로, 더 상세하게는 반도체 메모리를 포함하는 메모리 시스템 및 메모리 시스템의 동작 방법에 관한 것이다.
반도체 메모리(semiconductor memory)는 실리콘(Si, silicon), 게르마늄(Ge, Germanium), 비소 갈륨(GaAs, gallium arsenide), 인화인듐(InP, indium phospide) 등과 같은 반도체를 이용하여 구현되는 기억장치이다. 반도체 메모리는 크게 휘발성 메모리(Volatile memory)와 불휘발성 메모리(Nonvolatile memory)로 구분된다.
휘발성 메모리는 전원 공급이 차단되면 저장하고 있던 데이터를 소실하는 메모리 장치이다. 휘발성 메모리는 SRAM (Static RAM), DRAM (Dynamic RAM), SDRAM (Synchronous DRAM) 등을 포함한다. 불휘발성 메모리는 전원 공급이 차단되어도 저장하고 있던 데이터를 유지하는 메모리 장치이다. 불휘발성 메모리는 ROM (Read Only Memory), PROM (Programmable ROM), EPROM (Electrically Programmable ROM), EEPROM (Electrically Erasable and Programmable ROM), 플래시 메모리, PRAM (Phase-change RAM), MRAM (Magnetic RAM), RRAM (Resistive RAM), FRAM (Ferroelectric RAM) 등을 포함한다.
반도체 메모리는 반도체 메모리를 제어하도록 구성되는 메모리 컨트롤러와 함께 사용된다. 메모리 컨트롤러는 반도체 메모리의 읽기, 쓰기, 소거 또는 배경 동작을 제어하도록 구성된다. 반도체 메모리의 동작 성능을 향상시키기 위하여, 메모리 컨트롤러는 반도체 메모리를 제어하는 다양한 동작 방법들을 구비한다.
본 발명의 목적은 향상된 동작 성능을 갖는 메모리 시스템 및 메모리 시스템의 동작 방법을 제공하는 데에 있다.
버퍼 메모리, 불휘발성 메모리 및 상기 버퍼 메모리와 불휘발성 메모리를 제어하도록 구성되는 컨트롤러를 포함하는 본 발명의 실시 예에 따른 메모리 시스템의 동작 방법은, 외부 장치로부터 데이터를 수신하고, 상기 수신된 데이터를 상기 버퍼 메모리에 저장하는 단계; 데이터 보장 모드일 때 상기 버퍼 메모리에 저장된 데이터를 상기 불휘발성 메모리의 제 1 영역에 프로그램하고, 상기 데이터 보장 모드가 아닐 때 상기 버퍼 메모리에 저장된 데이터를 상기 불휘발성 메모리의 제 2 영역에 프로그램하는 단계; 상기 버퍼 메모리에 저장된 데이터를 상기 불휘발성 메모리의 제 2 영역에 프로그램하는 단계; 그리고 유휴 시간에, 상기 제 1 영역에 프로그램된 데이터를 상기 제 2 영역에 프로그램하는 단계를 포함한다. 상기 외부 장치로부터 플러시 커맨드가 전송되면, 상기 데이터 보장 모드로 설정된다.
실시 예로서, 상기 제 1 저장 영역은 단일 레벨 셀 메모리 영역이고, 상기 제 2 저장 영역은 멀티 레벨 셀 메모리 영역이다.
실시 예로서, 상기 제 1 저장 영역은 고속 저용량 메모리이고, 상기 제 2 저장 영역은 저속 대용량 메모리이다.
실시 예로서, 상기 버퍼 메모리에 저장된 데이터가 상기 제 1 영역에 프로그램될 때, 상기 데이터와 연관된 매핑 정보는 상기 제 1 영역의 주소를 가리키고, 상기 제 1 영역에 프로그램된 데이터가 상기 제 2 영역에 프로그램될 때, 상기 매핑 정보는 상기 제 2 영역의 주소를 가리키도록 갱신된다.
실시 예로서, 상기 플러시 커맨드에 응답하여 상기 버퍼 메모리에 저장된 데이터를 상기 제 1 영역에 프로그램하는 동작이 완료되면, 상기 데이터 보장 모드가 종료된다.
실시 예로서, 상기 외부 장치로부터 캐시 오프 신호가 전송되면, 상기 데이터 보장 모드로 설정된다.
실시 예로서, 상기 데이터 보장 모드일 때 상기 버퍼 메모리에 저장된 데이터가 상기 불휘발성 메모리의 제 1 영역에 프로그램된 후, 상기 제 2 영역에서 수행되는 프로그램과 연관된 데이터를 제외한 나머지 데이터는 상기 버퍼 메모리로부터 릴리즈된다.
실시 예로서, 상기 데이터 보장 모드일 때 상기 버퍼 메모리에 저장된 데이터가 상기 불휘발성 메모리의 제 1 영역에 프로그램된 후, 상기 버퍼 메모리에 저장된 데이터를 상기 불휘발성 메모리의 제 2 영역에 프로그램하는 단계에서, 상기 버퍼 메모리에 남겨진 상기 프로그램과 연관된 데이터에 기반하여 프로그램이 수행된다.
실시 예로서, 상기 데이터 보장 모드일 때 상기 버퍼 메모리에 저장된 데이터가 상기 불휘발성 메모리의 제 1 영역에 프로그램된 후, 상기 제 2 영역의 프로그램이 종료되고 상기 외부 장치로부터 수신되는 데이터가 존재하지 않을 때, 상기 제 1 영역에 프로그램된 데이터가 상기 버퍼 메모리에 로딩되고, 상기 로딩된 데이터에 기반하여 상기 제 2 영역의 프로그램이 수행된다.
실시 예로서, 상기 데이터 보장 모드일 때 상기 버퍼 메모리에 저장된 데이터가 상기 불휘발성 메모리의 제 1 영역에 프로그램될 때 상기 제 1 영역의 저장 공간이 부족하면, 상기 제 1 저장 영역에 대해 가비지 컬렉션이 수행된다.
실시 예로서, 상기 데이터 보장 모드일 때 상기 버퍼 메모리에 저장된 데이터가 상기 불휘발성 메모리의 제 1 영역에 프로그램될 때 상기 제 1 영역의 저장 공간이 부족하면, 상기 제 1 저장 영역에 프로그램된 데이터가 상기 제 2 저장 영역에 프로그램되고, 상기 프로그램된 데이터가 상기 제 1 저장 영역에서 무효화되고, 상기 제 1 저장 영역에서 가비지 컬렉션이 수행된다.
실시 예로서, 상기 데이터 보장 모드일 때 상기 버퍼 메모리에 저장된 데이터가 상기 불휘발성 메모리의 제 1 영역에 프로그램될 때 상기 제 1 영역의 저장 공간이 부족하면, 상기 버퍼 메모리에 저장된 데이터를 상기 불휘발성 메모리의 제 1 영역에 프로그램하는 것이 생략된다.
본 발명의 실시 예에 따른 메모리 시스템은, 외부 장치로부터 수신되는 데이터를 저장하도록 구성되는 버퍼 메모리; 제 1 저장 영역 및 제 2 저장 영역을 포함하는 불휘발성 메모리; 그리고 상기 버퍼 메모리에 저장된 데이터를 상기 제 2 저장 영역에 프로그램하도록 구성되는 메모리 컨트롤러를 포함하고, 상기 외부 장치로부터 플러시 커맨드가 수신될 때, 상기 메모리 컨트롤러는 상기 버퍼 메모리에 저장된 데이터를 상기 제 1 저장 영역에 프로그램하도록 더 구성되고, 상기 메모리 컨트롤러는 유휴 시간에 상기 제 1 저장 영역에 프로그램된 데이터를 상기 제 2 저장 영역에 프로그램하도록 더 구성된다.
실시 예로서, 상기 제 1 저장 영역은 단일 레벨 셀 메모리 영역이고, 상기 제 2 저장 영역은 멀티 레벨 셀 메모리 영역이다.
실시 예로서, 상기 버퍼 메모리, 상기 불휘발성 메모리, 그리고 상기 메모리 컨트롤러는 솔리드 스테이트 드라이브(SSD, Solid State Drive)를 형성한다.
본 발명의 실시 예들에 따르면, 메모리 시스템은 버퍼 메모리에 저장된 데이터를 대용량의 불휘발성 메모리에 직접 기입한다. 데이터 보장 모드에서, 메모리 시스템은 버퍼 메모리에 저장된 데이터를 고속의 불휘발성 메모리에 백업한다. 백업된 데이터는 유휴 시간에 대용량의 불휘발성 메모리로 복사된다. 불휘발성 메모리를 관리하는 매핑 테이블의 갱신 횟수가 감소되고, 고속의 불휘발성 메모리의 필요 용량이 감소하며, 데이터의 유효성이 보장되므로, 향상된 동작 성능을 갖는 메모리 시스템 및 메모리 시스템의 동작 방법이 제공된다.
도 1은 본 발명의 제 1 실시 예에 따른 메모리 시스템을 보여주는 블록도이다.
도 2는 본 발명의 실시 예에 따른 컨트롤러를 보여주는 블록도이다.
도 3은 본 발명의 실시 예에 따른 메모리 시스템의 동작 방법을 보여주는 순서도이다.
도 4는 도 3의 S110 단계를 더 상세하게 보여주는 순서도이다.
도 5는 도 3의 S120 단계의 제 1 예를 보여주는 순서도이다.
도 6은 도 3의 S120 단계의 제 2 예를 보여주는 순서도이다.
도 7은 본 발명의 실시 예에 따른 매핑 테이블을 보여준다.
도 8은 불휘발성 메모리의 제 2 타입 영역에서 프로그램이 수행되는 순서의 예를 보여주는 테이블이다.
도 9는 1-스텝 프로그램, 거친 프로그램 및 정교한 프로그램이 수행될 때, 메모리 셀들의 문턱 전압들의 변화를 보여주는 그래프이다.
도 10은 불휘발성 메모리의 제 1 타입 영역에서 프로그램이 수행되는 순서의 예를 보여주는 테이블이다.
도 11은 도 10의 프로그램이 수행될 때, 메모리 셀들의 문턱 전압들의 변화를 보여주는 그래프이다.
도 12는 도 1의 메모리 시스템에서 프로그램이 수행되는 과정의 제 1 예를 보여준다.
도 13은 제 1 타입 영역, 제 2 타입 영역 및 버퍼 메모리에서 도 12의 프로그램이 수행되는 과정을 보여준다.
도 14는 도 1의 메모리 시스템에서 프로그램이 수행되는 과정의 제 2 예를 보여준다.
도 15는 제 1 타입 영역, 제 2 타입 영역 및 버퍼 메모리에서 도 14의 프로그램이 수행되는 과정을 보여준다.
도 16은 도 14 및 도 15의 프로그램에 따라 갱신된 매핑 테이블을 보여준다.
도 17은 제 1 타입 영역, 제 2 타입 영역 및 버퍼 메모리에서, 도 14 및 도 15에 후속하는 프로그램이 수행되는 과정을 보여준다.
도 18은 도 1의 메모리 시스템에서 프로그램이 수행되는 과정의 제 3 예를 보여준다.
도 19는 제 1 타입 영역, 제 2 타입 영역 및 버퍼 메모리에서 도 18의 프로그램이 수행되는 과정을 보여준다.
도 20은 도 18 및 도 19의 프로그램에 따라 갱신된 매핑 테이블을 보여준다.
도 21은 도 1의 메모리 시스템에서 프로그램이 수행되는 과정의 제 4 예를 보여준다.
도 22는 제 1 타입 영역, 제 2 타입 영역 및 버퍼 메모리에서 도 21의 프로그램이 수행되는 과정을 보여준다.
도 23은 도 21 및 도 22의 프로그램에 따라 갱신된 매핑 테이블을 보여준다.
도 24는 도 1의 메모리 시스템에서 프로그램이 수행되는 과정의 제 5 예를 보여준다.
도 25는 제 1 타입 영역, 제 2 타입 영역 및 버퍼 메모리에서 도 24의 프로그램이 수행되는 과정을 보여준다.
도 26은 도 24 및 도 25의 프로그램에 따라 갱신된 매핑 테이블을 보여준다.
도 27은 플러시 동작이 수행된 후, 버퍼 메모리에 저장된 데이터를 처리하는 방법을 보여준다.
도 28은 메모리 컨트롤러가 불휘발성 메모리의 제 1 타입 영역을 관리하는 방법을 보여준다.
도 29는 메모리 컨트롤러가 매핑 테이블을 갱신하는 예를 보여주는 순서도이다.
도 30은 본 발명의 제 2 실시 예에 따른 메모리 시스템을 보여주는 블록도이다.
도 31은 본 발명의 제 3 실시 예에 따른 메모리 시스템을 보여주는 블록도이다.
도 32는 본 발명의 제 4 실시 예에 따른 메모리 시스템을 보여주는 블록도이다.
도 33은 본 발명의 제 5 실시 예에 따른 메모리 시스템을 보여주는 블록도이다.
도 34는 본 발명의 제 6 실시 예에 따른 메모리 시스템을 보여주는 블록도이다.
도 35는 본 발명의 실시 예에 따른 메모리 카드를 보여준다.
도 36은 본 발명의 실시 예에 따른 솔리드 스테이트 드라이브를 보여준다.
도 37은 본 발명의 실시 예에 따른 컴퓨팅 장치(3000)를 보여주는 블록도이다.
이하에서, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여, 본 발명의 실시 예를 첨부된 도면을 참조하여 설명하기로 한다.
도 1은 본 발명의 제 1 실시 예에 따른 메모리 시스템(100)을 보여주는 블록도이다. 도 1을 참조하면, 메모리 시스템(100)은 불휘발성 메모리(110), 컨트롤러(120) 및 버퍼 메모리(130)를 포함한다.
불휘발성 메모리(110)는 플래시 메모리, PRAM (Phase-change RAM), MRAM (Magnetic RAM), RRAM (Resistive RAM), FRAM (Ferroelectric RAM) 등을 포함할 수 있다. 본 발명의 기술적 사상을 간결하고 명확하게 설명하기 위하여, 불휘발성 메모리(110)는 낸드 플래시 메모리인 것으로 가정된다. 그러나, 불휘발성 메모리(110)는 낸드 플래시 메모리로 한정되지 않으며, 본 발명의 기술적 사상으로부터 괴리되지 않고 다양하게 적용 및 응용될 수 있다.
불휘발성 메모리(110)는 제 1 타입 영역(111) 및 제 2 타입 영역(113)을 포함한다. 제 1 타입 영역(111) 및 제 2 타입 영역(113) 각각은 복수의 메모리 블록들을 포함할 수 있다. 각 메모리 블록은 복수의 메모리 셀들을 포함할 수 있다. 각 메모리 블록의 복수의 메모리 셀들의 행들은 워드 라인들에 연결되고, 열들은 비트 라인들에 연결될 수 있다.
제 1 타입 영역(111)은 고속 영역일 수 있다. 제 2 타입 영역(113)은 대용량 영역일 수 있다. 예를 들어, 제 1 타입 영역(111)은 불휘발성 메모리(110)의 메모리 셀들 중 단일 레벨 셀(SLC)로 이용되는 메모리 셀들을 포함할 수 있다. 제 2 타입 영역(113)은 불휘발성 메모리(110)의 메모리 셀들 중 멀티 레벨 셀(MLC) 또는 삼중 레벨 셀(TLC)로 이용되는 메모리 셀들을 포함할 수 있다. 제 1 타입 영역(111) 및 제 2 타입 영역(113)은 동일한 반도체 칩에 형성될 수 있다.
단일 레벨 셀들(SLC)은 각 메모리 셀이 하나의 비트를 저장하는 메모리 셀들일 수 있다. 멀티 레벨 셀들(MLC)은 각 메모리 셀이 둘 이상의 비트들을 저장하는 메모리 셀들일 수 있다. 삼중 레벨 셀들(TLC)은 각 메모리 셀이 세 개의 비트들을 저장하는 메모리 셀들일 수 있다. 단일 레벨 셀들(SLC), 멀티 레벨 셀들(MLC) 및 삼중 레벨 셀들(TLC)은 동일한 구조를 가질 수 있다. 단일 레벨 셀들(SLC), 멀티 레벨 셀들(MLC) 및 삼중 레벨 셀들(TLC)은 사용되는 방법에 따라 분류될 수 있다.
하나의 워드 라인에 연결된 삼중 레벨 셀들(TLC)은 세 개의 페이지들을 형성할 수 있다. 삼중 레벨 셀들(TLC) 각각에 저장되는 첫 번째 비트는 최하위 비트(LSB)일 수 있다. 삼중 레벨 셀들(TLC)의 최하위 비트들은 최하위 페이지를 형성할 수 있다. 최하위 페이지에 저장되는 데이터는 최하위 페이지 데이터일 수 있다. 삼중 레벨 셀들(TLC) 각각에 저장되는 두 번째 비트는 중간 비트(CSB)일 수 있다. 삼중 레벨 셀들(TLC)의 중간 비트들은 중간 페이지를 형성할 수 있다. 중간 페이지에 저장되는 데이터는 중간 페이지 데이터일 수 있다. 삼중 레벨 셀들(TLC) 각각에 저장되는 세 번째 비트는 최상위 비트(MSB)일 수 있다. 삼중 레벨 셀들(TLC)의 최상위 비트들은 최상위 페이지를 형성할 수 있다. 최상위 페이지에 저장되는 데이터는 최상위 페이지 데이터일 수 있다.
컨트롤러(120)는 불휘발성 메모리(110) 및 버퍼 메모리(130)를 제어하도록 구성된다. 컨트롤러(120)는 불휘발성 메모리(110)를 관리하는 매핑 테이블(121)을 구동할 수 있다. 매핑 테이블(121)은 외부 장치(예를 들어, 호스트)에서 사용되는 논리 어드레스 및 불휘발성 메모리(110)에서 사용되는 물리 어드레스 사이의 연관성에 대한 정보를 저장할 수 있다. 예를 들어, 매핑 테이블(121)는 논리 어드레스 및 물리 어드레스 사이의 매핑 정보를 저장할 수 있다. 컨트롤러(120)는 매핑 테이블(121)을 이용하여, 외부 장치로부터 수신되는 논리 어드레스를 물리 어드레스로 변환할 수 있다.
매핑 테이블(121)은 제 1 타입 영역(111)에 보관될 수 있다. 컨트롤러(120)는 파워-온 시에 제 1 타입 영역(111)으로부터 매핑 테이블(121)을 읽어 버퍼 메모리(130) 또는 내부의 메모리에 로딩할 수 있다. 컨트롤러(120)는 로딩된 매핑 테이블(121)을 구동하고, 주기적으로 또는 매핑 테이블(121)의 갱신이 검출될 때, 매핑 테이블(121)을 제 1 타입 영역(111)에 백업할 수 있다.
버퍼 메모리(130)는 메모리 시스템(100)의 동작 메모리일 수 있다. 버퍼 메모리(130)는 외부 장치로부터 수신되는 데이터, 불휘발성 메모리(110)로부터 읽어지는 데이터, 그리고 메모리 시스템(100)의 구동을 위해 요구되는 다양한 데이터(예를 들어, 메타 데이터 또는 코드)를 저장할 수 있다. 버퍼 메모리(130)는 SRAM (Static RAM), DRAM (Dynamic RAM), SDRAM (Synchronous DRAM), PRAM (Phase-change RAM), MRAM (Magnetic RAM), RRAM (Resistive RAM), FRAM (Ferroelectric RAM) 등과 같은 다양한 랜덤 액세스 메모리들 중 적어도 하나를 포함할 수 있다. 본 발명의 기술적 사상을 간결하고 명확하게 설명하기 위하여, 불휘발성 메모리(110)는 DRAM인 것으로 가정된다. 그러나, 불휘발성 메모리(110)는 DRAM으로 한정되지 않으며, 본 발명의 기술적 사상으로부터 괴리되지 않고 다양하게 적용 및 응용될 수 있다.
예시적으로, 불휘발성 메모리(110), 컨트롤러(120) 및 버퍼 메모리(130)는 서로 다른 반도체 패키지로 형성될 수 있다. 불휘발성 메모리(110), 컨트롤러(120) 및 버퍼 메모리(130)는 서로 다른 반도체 칩으로 형성될 수 있다. 컨트롤러(120) 및 버퍼 메모리(130)는 하나의 반도체 패키지 내에 집적되어 멀티칩 패키지를 형성할 수 있다. 컨트롤러(120) 및 버퍼 메모리(130)는 패키지-온-패키지를 형성할 수 있다.
도 2는 본 발명의 실시 예에 따른 컨트롤러(120)를 보여주는 블록도이다. 도 1 및 도 2를 참조하면, 컨트롤러(120)는 버스(122), 호스트 프로세서(123), 메모리(124), 메모리 프로세서(125), 메모리(126), 버퍼 관리자(127) 및 메모리 관리자(128)를 포함한다.
버스(122)는 컨트롤러(120)의 구성 요소들 사이에 채널을 제공할 수 있다.
호스트 프로세서(123)는 외부 장치(예를 들어, 호스트)와 연관된 제어를 수행하도록 구성된다. 예를 들어, 호스트 프로세서(123)는 외부 장치와 통신할 수 있다. 호스트 프로세서(123)는 외부 장치로부터 수신되는 커맨드 또는 어드레스를 메모리 프로세서(125)로 전달할 수 있다. 호스트 프로세서(123)는 외부 장치로부터 수신되는 데이터를 버퍼 관리자(127)를 통해 버퍼 메모리(130)에 저장할 수 있다. 호스트 프로세서(123)는 외부 장치로부터 수신되는 특수 커맨드 또는 특수 상태 신호에 따라, 메모리 프로세서(125)로 인터럽트를 전송할 수 있다.
메모리(124)는 호스트 프로세서(123)의 동작 메모리일 수 있다. 호스트 프로세서(123)는 메모리(124)를 캐시 메모리, 버퍼 메모리, 임시 메모리 등으로 사용할 수 있다.
메모리 프로세서(125)는 불휘발성 메모리(125)와 연관된 제어를 수행하도록 구성된다. 예를 들어, 메모리 프로세서(125)는 호스트 프로세서(123)로부터 수신되는 커맨드를 순차적으로 처리할 수 있다. 메모리 프로세서(125)는 커맨드에 따라 불휘발성 메모리(110)로 읽기, 쓰기 또는 소거 커맨드를 전송하도록 메모리 관리자(128)를 제어할 수 있다. 메모리 프로세서(125)는 커맨드에 따라 불휘발성 메모리(110)로 데이터를 전송하도록 메모리 관리자(128)를 제어할 수 있다.
메모리 프로세서(125)는 불휘발성 메모리(110)를 관리하는 다양한 배경 동작들을 제어할 수 있다. 예를 들어, 메모리 프로세서(125)는 가비지 컬렉션, 상태 읽기, 읽기 리클레임 등과 같은 배경 동작들을 제어할 수 있다. 가비지 컬렉션은 불휘발성 메모리(110)의 유효한 데이터를 수집하여 새로운 메모리 블록에 저장하는 동작일 수 있다. 가비지 컬렉션은 무효 데이터를 저장하는 메모리 블록을 소거하는 동작을 더 포함할 수 있다. 상태 읽기는 불휘발성 메모리(110)의 메모리 셀들의 열화도 또는 마모도를 체크하는 동작일 수 있다. 읽기 리클레임은 데이터의 리텐션(retention) 특성이 저하된 메모리 셀들에 저장된 데이터를 다른 메모리 셀들로 옮기는 동작을 포함할 수 있다.
메모리 프로세서(125)는 매핑 테이블(121)을 구동할 수 있다. 메모리 프로세서(125)는 매핑 테이블(121)을 참조하여 논리 어드레스 및 물리 어드레스를 상호 변환할 수 있다.
메모리 프로세서(125)는 호스트 프로세서(123)로부터 전송되는 인터럽트를 처리할 수 있다. 예를 들어, 호스트 프로세서(123)로부터 인터럽트가 수신되면, 메모리 프로세서(125)는 다른 커맨드보다 인터럽트를 우선적으로 처리할 수 있다.
메모리(126)는 메모리 프로세서(125)의 동작 메모리일 수 있다. 메모리 프로세서(125)는 메모리(126)를 캐시 메모리, 버퍼 메모리, 임시 메모리 등으로 사용할 수 있다. 예를 들어, 메모리(126)는 호스트 프로세서(123)로부터 전달되는 커맨드를 저장하는 커맨드 큐로 사용될 수 있다.
버퍼 관리자(127)는 호스트 프로세서(123) 또는 메모리 프로세서(125)의 요청에 따라 버퍼 메모리(130)를 제어할 수 있다. 버퍼 관리자(127)는 버퍼 메모리(130)의 읽기 또는 쓰기를 제어할 수 있다.
메모리 관리자(128)는 메모리 프로세서(125)의 요청에 따라, 불휘발성 메모리(130)를 제어할 수 있다. 메모리 관리자(128)는 메모리 프로세서(125)로부터 커맨드를 수신하고, 수신된 커맨드에 따라 불휘발성 메모리(110)의 읽기, 쓰기 또는 소거를 제어할 수 있다. 메모리 관리자(128)는 메모리 프로세서(125)로부터 전송되는 커맨드를 저장하는 커맨드 큐를 구비할 수 있다.
예시적으로, 호스트 프로세서(123) 및 메모리 프로세서(125)는 서로 독립적으로 동작할 수 있다. 호스트 프로세서(123)는 외부 장치로부터 커맨드가 수신될 때마다, 수신된 커맨드를 메모리 프로세서(125)로 전달할 수 있다. 호스트 프로세서(123)는 외부 장치로부터 데이터가 수신될 때마다, 수신된 데이터를 버퍼 메모리(130)에 저장할 수 있다. 메모리 프로세서(125)는 호스트 프로세서(123)로부터 수신되는 커맨드를 커맨드 큐와 같은 저장소에 저장하고, 저장된 커맨드를 순차적으로 처리할 수 있다.
도 3은 본 발명의 실시 예에 따른 메모리 시스템(100)의 동작 방법을 보여주는 순서도이다. 예시적으로, 메모리 시스템(100)이 불휘발성 메모리(110)에 데이터를 기입하는 방법이 도 3에 도시된다.
도 1 내지 도 3을 참조하면, S110 단계에서, 외부 장치(예를 들어, 호스트)로부터 데이터가 수신되고, 수신된 데이터가 버퍼 메모리(130)에 저장된다. S110 단계는 컨트롤러(120)에 의해 수행될 수 있다. 예를 들어, S110 단계는 컨트롤러(120)의 호스트 프로세서(123)에 의해 수행될 수 있다.
S120 단계에서, 데이터 보장 모드인지 판별된다. 예를 들어, 외부 장치로부터 수신되는 커맨드 또는 상태 신호에 따라, 메모리 시스템(100)은 데이터 보장 모드 또는 정상 모드로 설정될 수 있다. 데이터 보장 모드로 판별되면, S130 단계가 수행된다. 데이터 보장 모드가 아닌 것으로 판별되면, S130 단계가 생략되고 S140 단계가 수행된다.
S130 단계에서, 버퍼 메모리(130)에 저장된 데이터가 제 1 타입 불휘발성 메모리에 쓰여진다. 제 1 타입 불휘발성 메모리는 고속 메모리일 수 있다. 제 1 타입 불휘발성 메모리는 불휘발성 메모리(110)의 제 1 타입 영역(111)일 수 있다.
S140 단계에서, 버퍼 메모리(130)에 저장된 데이터가 제 2 타입 불휘발성 메모리에 쓰여진다. 제 2 타입 불휘발성 메모리는 대용량 메모리일 수 있다. 제 2 타입 불휘발성 메모리는 불휘발성 메모리(110)의 제 2 타입 영역(113)일 수 있다.
S150 단계에서, 제 1 타입 불휘발성 메모리에 쓰여진 데이터가 유휴 시간에 제 2 타입 불휘발성 메모리로 복사된다.
예시적으로, S110 단계는 S120 단계 내지 S150 단계와 독립적으로 수행될 수 있다. S110 단계는 호스트 프로세서(123)에 의해 수행될 수 있다. S120 단계 내지 S150 단계는 메모리 프로세서(125)에 의해 수행될 수 있다. 외부 장치로부터 데이터가 수신될 때마다, 호스트 프로세서(123)는 S110 단계를 수행할 수 있다. 버퍼 메모리(130)에 저장된 데이터가 존재하면, 메모리 프로세서(125)는 S120 단계 내지 S150 단계를 반복적으로 수행할 수 있다. 제 1 타입 불휘발성 메모리에 쓰여진 데이터가 존재하지 않는 경우 S150 단계는 생략될 수 있다.
도 4는 도 3의 S110 단계를 더 상세하게 보여주는 순서도이다. 도 1 내지 도 4를 참조하면, S111 단계에서, 호스트 프로세서(123)는 프레임을 수신한다. 예를 들어, SATA 프로토콜에 기반한 프레임이 수신될 수 있다.
S112 단계에서, 수신된 프레임이 플러시 커맨드를 포함하는지 판별된다. 수신된 프레임이 플러시 커맨드를 포함하면, S113 단계에서, 호스트 프로세서(123)는 메모리 프로세서(125)로 플러시 인터럽트를 전송할 수 있다. 수신된 프레임이 플러시 커맨드를 포함하지 않으면, S114 단계가 수행된다.
S114 단계에서, 수신된 프레임이 쓰기 커맨드 및 데이터를 포함하는지 판별된다. 수신된 프레임이 쓰기 커맨드 및 데이터를 포함하지 않으면, 수신된 프레임은 읽기 또는 소거 커맨드를 포함할 수 있다. 따라서, S115 단계에서, 호스트 프로세서(123)는 메모리 프로세서(125)로 소거 또는 읽기 커맨드를 전송할 수 있다.
수신된 프레임이 쓰기 커맨드 및 데이터를 포함하면, S116 단계에서, 호스트 프로세서(123)는 수신된 데이터를 버퍼 메모리(130)에 저장한다. S117 단계에서, 호스트 프로세서(123)는 쓰기 커맨드를 메모리 프로세서(125)로 전송한다.
도 5는 도 3의 S120 단계의 제 1 예를 보여주는 순서도이다. 도 1 내지 도 3, 그리고 도 5를 참조하면, S121 단계에서, 메모리 프로세서(125)는 플러시 인터럽트가 수신되는지 판별한다. 플러시 인터럽트가 수신되지 않으면, S122 단계에서 정상 모드가 판별된다. 플러시 인터럽트가 수신되면, S123 단계에서 데이터 보장 모드가 판별된다.
도 6은 도 3의 S120 단계의 제 2 예를 보여주는 순서도이다. 도 1 내지 도 3, 그리고 도 5를 참조하면, S125 단계에서, 캐시 오프 상태인지 판별된다. 캐시 오프 상태는 데이터 보장을 위하여 캐시를 사용하지 않는 상태일 수 있다. 캐시 오프 상태는 외부 장치(예를 들어, 호스트)로부터 수신되는 상태 신호에 따라 설정될 수 있다. 캐시 오프 상태이면, S126 단계에서 정상 모드로 판별된다. 캐시 오프 상태가 아니면, S127 단계에서 데이터 보장 모드가 판별된다.
도 7은 본 발명의 실시 예에 따른 매핑 테이블(121)을 보여준다. 도 1 및 도 7을 참조하면, 매핑 테이블(121)은 논리 어드레스 필드 및 물리 어드레스 필드를 포함한다. 논리 어드레스 필드에 외부 장치(예를 들어, 호스트)로부터 수신되는 논리 어드레스가 등록될 수 있다. 불휘발성 메모리(110)의 물리 어드레스는 물리 어드레스 필드에 등록될 수 있다.
예를 들어, 불휘발성 메모리(110)에 대한 쓰기가 수행될 때, 외부 장치로부터 수신되는 논리 어드레스가 논리 어드레스 필드에 기입될 수 있다. 불휘발성 메모리(110)에서 데이터가 기입될 메모리 셀들이 선택되고, 선택된 메모리 셀들에서 프로그램이 수행될 수 있다. 프로그램이 완료되면, 선택된 메모리 셀들의 물리 어드레스가 물리 어드레스 필드에 기입될 수 있다.
불휘발성 메모리(110)에 대한 읽기가 수행될 때, 외부 장치로부터 논리 어드레스가 수신될 수 있다. 수신된 논리 어드레스는 매핑 테이블(121)에 따라 물리 어드레스로 변환될 수 있다. 변환된 물리 어드레스에 따라, 불휘발성 메모리(110)의 선택된 메모리 셀들에서 읽기가 수행될 수 있다.
도 8은 불휘발성 메모리(110)의 제 2 타입 영역(113)에서 프로그램이 수행되는 순서의 예를 보여주는 테이블이다. 예시적으로, 제 2 타입 영역(113)은 삼중 레벨 셀들(TLC)을 포함하는 것으로 가정된다. 그러나, 본 발명의 기술적 사상은 삼중 레벨 셀들(TLC)에 한정되지 않는다.
예시적으로, 제 2 타입 영역(113)은 복수의 메모리 블록들을 포함할 수 있다. 복수의 메모리 블록들 중 하나의 메모리 블록에서 수행되는 프로그램의 순서가 도 8에 도시된다.
도 1 및 도 8을 참조하면, 워드 라인(WL1)의 1-스텝 프로그램이 수행되고, 워드 라인(WL2)의 1-스텝 프로그램이 수행되고, 워드 라인(WL1)의 거친 프로그램이 행되고, 워드 라인(WL3)의 1-스텝 프로그램이 수행되고, 워드 라인(WL2)의 거친 프로그램이 수행되고, 그리고 워드 라인(WL1)의 정교한 프로그램이 수행된다.
특정한 워드 라인에서, 프로그램은 1-스텝 프로그램, 거친 프로그램, 그리고 정교한 프로그램의 순서로 수행된다. 특정한 워드 라인에서 거친 프로그램이 수행되기 전에, 특정한 워드 라인의 상위 워드 라인에서 1-스텝 프로그램이 수행된다. 특정한 워드 라인에서 정교한 프로그램이 수행되기 전에, 특정한 워드 라인의 상위 워드 라인에서 정교한 프로그램이 수행된다.
도 9는 1-스텝 프로그램, 거친 프로그램 및 정교한 프로그램이 수행될 때, 메모리 셀들의 문턱 전압들의 변화를 보여주는 그래프이다. 도 9에서, 가로 축은 메모리 셀들의 문턱 전압을 가리키고, 세로 축은 메모리 셀들의 갯수를 가리킨다. 즉, 도 9는 메모리 셀들의 문턱 전압 산포들을 보여준다.
도 8 및 도 9의 참조 번호 21을 참조하면, 워드 라인(WL1)에서 1-스텝 프로그램이 수행된다. 1-스텝 프로그램이 수행되면, 최하위 페이지 데이터와 중간 페이지 데이터에 따라 워드 라인(WL1)에 연결된 메모리 셀들이 프로그램된다. 메모리 셀들은 소거 상태(erased) 및 중간 프로그램 상태들(Q1, Q2, Q3)로 프로그램될 수 있다.
도 8 및 도 9의 참조 번호 22를 참조하면, 워드 라인(WL2)에서 1-스텝 프로그램이 수행된다. 이때, 워드 라인(WL1)에 연결된 메모리 셀들의 문턱 전압 산포들은 커플링의 영향으로 넓어질 수 있다.
도 8 및 도 9의 참조 번호 23을 참조하면, 워드 라인(WL1)에서 거친 프로그램이 수행된다. 거친 프로그램이 수행되면, 최하위 페이지 데이터, 중간 페이지 데이터, 그리고 최상위 페이지 데이터에 기반하여 워드 라인(WL1)에 연결된 메모리 셀들이 프로그램된다. 메모리 셀들은 소거 상태 및 중간 프로그램 상태들(P1', P2', P3', P4', P5', P6', P7')로 프로그램될 수 있다.
도 8 및 도 9의 참조 번호 24를 참조하면, 워드 라인(WL2)에서 거친 프로그램이 수행된다. 워드 라인(WL2)에서 거친 프로그램이 수행될 때, 워드 라인(WL1)에 연결된 메모리 셀들의 문턱 전압 산포들은 커플링의 영향으로 넓어질 수 있다.
도 8 및 도 9의 참조 번호 25를 참조하면, 워드 라인(WL1)에서 정교한 프로그램이 수행된다. 정교한 프로그램이 수행되면, 최하위 페이지 데이터(PD1), 중간 페이지 데이터(PD2), 그리고 최상위 페이지 데이터(PD3)에 기반하여 워드 라인(WL)에 연결된 메모리 셀들이 프로그램된다. 메모리 셀들은 소거 상태 및 프로그램 상태들(P1, P2, P3, P4, P5, P6, P7)로 프로그램될 수 있다.
도 8 및 도 9의 참조 번호 26을 참조하면, 워드 라인(WL2)에서 정교한 프로그램이 수행될 때, 워드 라인(WL1)에 연결된 메모리 셀들의 문턱 전압 산포들은 커플링의 영향으로 넓어질 수 있다.
도 8 및 도 9에 도시된 바와 같이, 삼중 레벨 셀들(TLC)의 프로그램은 1-스텝 프로그램, 거친 프로그램 및 정교한 프로그램의 순서로 수행된다. 1-스텝 프로그램, 거친 프로그램 및 정교한 프로그램은 인접한 워드 라인으로부터 전달되는 커플링을 고려하여, 점진적으로 향상되는 정밀도를 가질 수 있다.
예시적으로, 제 2 타입 영역(113)의 하나의 워드 라인은 하나의 물리 프로그램 주소 및 세 개의 물리 읽기 주소들을 가질 수 있다. 프로그램 시에, 하나의 물리 프로그램 주소 및 1-스텝 프로그램, 거친 프로그램 또는 정교한 프로그램을 가리키는 프로그램 커맨드가 불휘발성 메모리(110)로 전송될 수 있다. 읽기 시에, 세 개의 물리 읽기 주소들 중 하나와 읽기 커맨드가 불휘발성 메모리(110)로 전송될 수 있다. 세 개의 물리 읽기 주소들은 각각 최하위 페이지, 중간 페이지 및 최상위 페이지에 대응할 수 있다.
예시적으로, 제 2 타입 영역(113)의 하나의 워드 라인은 세 개의 물리 프로그램 주소 및 세 개의 물리 읽기 주소들을 가질 수 있다. 세 개의 물리 프로그램 주소들은 각각 1-스텝 프로그램, 거친 프로그램 및 정교한 프로그램에 대응할 수 있다. 프로그램 시에, 세 개의 물리 프로그램 주소들 중 하나와 하나의 프로그램 커맨드가 불휘발성 메모리(110)로 전송될 수 있다. 읽기 시에, 세 개의 물리 읽기 주소들 중 하나와 읽기 커맨드가 불휘발성 메모리(190)로 전송될 수 있다. 세 개의 물리 읽기 주소들은 각각 최하위 페이지, 중간 페이지 및 최상위 페이지에 대응할 수 있다.
예시적으로, 도 8 및 도 9를 참조하여 설명된 프로그램은 리프로그램(reprogram)일 수 있다. 그러나, 본 발명의 기술적 사상은 리프로그램에 한정되지 않는다. 본 발명의 기술적 사상은 쉐도우 프로그램(shadow program)에도 적용될 수 있다. 쉐도우 프로그램이 수행될 때, 프로그램 순서는 도 8에 도시된 순서와 동일할 수 있다. 특정한 워드 라인에서 첫 번째 프로그램이 수행될 때, 최하위 페이지 데이터가 프로그램될 수 있다. 특정한 워드 라인에서 두 번째 프로그램이 수행될 때, 중간 페이지 데이터가 프로그램될 수 있다. 특정한 워드 라인에서 세 번째 프로그램이 수행될 때, 최상위 페이지 데이터가 프로그램될 수 있다.
도 10은 불휘발성 메모리(110)의 제 1 타입 영역(111)에서 프로그램이 수행되는 순서의 예를 보여주는 테이블이다. 예시적으로, 제 1 타입 영역(111)은 단일 레벨 셀들(SLC)을 포함하는 것으로 가정된다. 그러나, 본 발명의 기술적 사상은 단일 레벨 셀들(SLC)에 한정되지 않는다.
예시적으로, 제 1 타입 영역(111)은 복수의 메모리 블록들을 포함할 수 있다. 복수의 메모리 블록들 중 하나의 메모리 블록에서 수행되는 프로그램의 순서가 도 10에 도시된다.
도 1 및 도 10을 참조하면, 워드 라인(WL1)의 프로그램이 수행되고, 워드 라인(WL2)의 프로그램이 수행되고, 워드 라인(WL3)의 프로그램이 수행된다. 각 워드 라인에서 프로그램은 한 번 수행될 수 있다. 특정한 워드 라인에서 프로그램이 수행된 후, 다음 워드 라인에서 프로그램이 수행될 수 있다.
도 11은 도 10의 프로그램이 수행될 때, 메모리 셀들의 문턱 전압들의 변화를 보여주는 그래프이다. 도 11에서, 가로 축은 메모리 셀들의 문턱 전압을 가리키고, 세로 축은 메모리 셀들의 갯수를 가리킨다. 즉, 도 11는 메모리 셀들의 문턱 전압 산포들을 보여준다.
도 10 및 도 11을 참조하면, 특정한 워드 라인에서 프로그램이 수행될 때, 소거 상ㅌ의 메모리 셀들 각각은 소거 상태 또는 프로그램 상태(P)를 갖도록 프로그램된다.
도 12는 도 1의 메모리 시스템(100)에서 프로그램이 수행되는 과정의 제 1 예를 보여준다. 도 13은 제 1 타입 영역(111), 제 2 타입 영역(113) 및 버퍼 메모리(130)에서 도 12의 프로그램이 수행되는 과정을 보여준다.
도 1, 도 2, 도 12 및 도 13을 참조하면, S211 단계에서, 호스트 프로세서(123)는 외부 장치(예를 들어, 호스트)로부터 데이터(PD1, PD2, PD3)를 수신한다. S213 단계에서, 호스트 프로세서(123)는 수신된 데이터(PD1, PD2, PD3)를 버퍼 메모리(130)에 저장한다. S215 단계에서, 호스트 프로세서(123)는 외부 장치로 응답을 전송한다. 응답은 수신된 데이터(PD1, PD2, PD3)의 쓰기가 완료되었음을 알리는 메시지일 수 있다. 즉, 메모리 시스템(100)은 수신된 데이터(PD1, PD2, PD3)가 불휘발성 메모리(110)에 프로그램되지 않더라고, 수신된 데이터(PD1, PD2, PD3)가 버퍼 메모리(130)에 저장되면 외부 장치로 데이터(PD1, PD2, PD3)의 쓰기가 완료되었음을 알릴 수 있다.
예시적으로, S211 단계 내지 S215 단계에서, 제 2 타입 영역(113)의 하나의 워드 라인에 프로그램되는 모든 데이터(PD1, PD2, PD3)가 버퍼 메모리(130)에 저장될 수 있다. 예를 들어, 최하위 페이지 데이터(PD1), 중간 페이지 데이터(PD2) 및 최상위 페이지 데이터(PD3)가 버퍼 메모리(130)에 저장될 수 있다. 간결한 설명을 위하여, 한 번의 데이터 전송을 통해 최하위 페이지 데이터(PD1), 중간 페이지 데이터(PD2) 및 최상위 페이지 데이터(PD3)가 버퍼 메모리(130)에 저장되는 것으로 설명된다. 그러나, 최하위 페이지 데이터(PD1), 중간 페이지 데이터(PD2) 및 최상위 페이지 데이터(PD3)는 복수회의 데이터 전송을 통해 버퍼 메모리(130)에 저장될 수 있다. 예를 들어, S211 단계 내지 S215 단계는 복수회의 데이터 전송, 복수회의 데이터 저장 및 복수회의 응답 전송을 포함할 수 있다.
S217, S219 단계 및 S221 단계에서, 호스트 프로세서(123)는 외부 장치로부터 수신되는 데이터(PD4, PD5, PD6)를 버퍼 메모리(130)에 저장할 수 있다. 예를 들어, 최하위 페이지 데이터(PD4), 중간 페이지 데이터(PD5) 및 최상위 페이지 데이터(PD6)가 버퍼 메모리(130)에 저장될 수 있다.
S223 단계, S225 단계 및 S227 단계에서, 호스트 프로세서(123)는 외부 장치로부터 수신된 데이터(PD7, PD8, PD9)를 버퍼 메모리(130)에 저장할 수 있다. 예를 들어, 최하위 페이지 데이터(PD7), 중간 페이지 데이터(PD8) 및 최상위 페이지 데이터(PD9)가 버퍼 메모리(130)에 저장될 수 있다.
S213 단계에서 데이터(PD1, PD2, PD3)가 버퍼 메모리(130)에 저장됨에 따라, S311 단계에서, 메모리 프로세서(125)는 불휘발성 메모리(110)의 제 2 타입 영역(113)에 데이터(PD1, PD2, PD3)를 프로그램할 수 있다. 데이터(PD1, PD2, PD3)에 기반하여, 제 2 타입 영역(113)의 워드 라인(WL1)에서 1-스텝 프로그램이 수행될 수 있다.
예시적으로, 제 2 타입 영역(113)의 프로그램 시간은 버퍼 메모리(130)의 저장 시간보다 길 수 있다. 제 2 타입 영역(113)의 프로그램은 S219 단계 이후에 종료될 수 있다.
S311 단계의 프로그램이 종료되면, 버퍼 메모리에 데이터(PD4, PD5, PD6)가 저장되어 있다. 따라서, S313 단계에서, 메모리 프로세서(125)는 제 2 타입 영역(113)에 데이터(PD4, PD5, PD6)를 프로그램할 수 있다. 데이터(PD4, PD5, PD6)에 기반하여, 제 2 타입 영역(113)의 워드 라인(WL2)에서 1-스텝 프로그램이 수행될 수 있다.
S313 단계의 프로그램이 종료되면, S315 단계에서, 메모리 프로세서(125)는 제 2 타입 영역(113)에 데이터(PD1, PD2, PD3)를 프로그램할 수 있다. 데이터(PD1, PD2, PD3)에 기반하여, 제 2 타입 영역(113)의 워드 라인(WL1)에서 거친 프로그램이 수행될 수 있다.
도 14는 도 1의 메모리 시스템(100)에서 프로그램이 수행되는 과정의 제 2 예를 보여준다. 도 15는 제 1 타입 영역(111), 제 2 타입 영역(113) 및 버퍼 메모리(130)에서 도 14의 프로그램이 수행되는 과정을 보여준다. 예시적으로, 도 12 및 도 13에 후속하는 과정이 도 14 및 도 15에 도시된다.
도 1, 도 2, 도 14 및 도 15를 참조하면, S229 단계, S231 단계 및 S233 단계에서, 호스트 프로세서(123)는 외부 장치로부터 수신된 데이터(PD10, PD11, PD12)를 버퍼 메모리(130)에 저장할 수 있다. 예를 들어, 최하위 페이지 데이터(PD10), 중간 페이지 데이터(PD11) 및 최상위 페이지 데이터(PD12)가 버퍼 메모리(130)에 저장될 수 있다.
S235 단계, S237 단계 및 S239 단계에서, 호스트 프로세서(123)는 외부 장치로부터 수신된 데이터(PD13, PD14, PD15)를 버퍼 메모리(130)에 저장할 수 있다. 예를 들어, 최하위 페이지 데이터(PD13), 중간 페이지 데이터(PD14) 및 최상위 페이지 데이터(PD15)가 버퍼 메모리(130)에 저장될 수 있다.
이후에, 외부 장치와 메모리 시스템(100) 사이의 데이터 전송은 유휴 상태로 진입할 수 있다. 예를 들어, 외부 장치가 메모리 시스템(100)에 쓰기 요청을 전송하지 않을 수 있다.
S315 단계의 프로그램이 종료되면, S317 단계에서, 메모리 프로세서(125)는 제 2 타입 영역(113)에 데이터(PD7, PD8, PD9)를 프로그램할 수 있다. 데이터(PD7, PD8, PD9)에 기반하여, 제 2 타입 영역(113)의 워드 라인(WL3)에서 1-스텝 프로그램이 수행될 수 있다.
S317 단계의 프로그램이 종료되면, S319 단계에서, 메모리 프로세서(125)는 제 2 타입 영역(113)에 데이터(PD4, PD5, PD6)를 프로그램할 수 있다. 데이터(PD4, PD5, PD6)에 기반하여, 제 2 타입 영역(113)의 워드 라인(WL2)에서 거친 프로그램이 수행될 수 있다.
S319 단계의 프로그램이 종료되면, S321 단계에서, 메모리 프로세서(125)는 제 2 타입 영역(113)에 데이터(PD1, PD2, PD3)를 프로그램할 수 있다. 데이터(PD1, PD2, PD3)에 기반하여, 제 2 타입 영역(113)의 워드 라인(WL1)에서 정교한 프로그램이 수행될 수 있다.
정교한 프로그램이 수행되면, 데이터(PD1, PD2, PD3)의 프로그램은 완료될 수 있다. 프로그램이 완료되면, 버퍼 메모리(130)에 저장된 데이터(PD1, PD2, PD3)는 릴리즈될 수 있다. 또한, 매핑 테이블(121)이 갱신될 수 있다.
도 16은 도 14 및 도 15의 프로그램에 따라 갱신된 매핑 테이블(121)을 보여준다. 도 14 내지 도 16을 참조하면, 논리 어드레스 필드에 데이터(PD1, PD2, PD3)에 대응하는 논리 어드레스(LA_1_3)가 등록된다. 논리 어드레스(LA_1_3)는 데이터(PD1, PD2, PD3)에 대응하는 어드레스 범위일 수 있다. 물리 어드레스 필드에 데이터(PD1, PD2, PD3)가 프로그램된 제 2 타입 영역(113)의 워드 라인(WL1)의 물리 어드레스(PA_113_1)가 등록된다.
도 14 및 도 15의 과정이 수행된 후, 메모리 프로세서(125)는 버퍼 메모리(130)에 저장된 데이터의 프로그램을 계속 수행할 수 있다. 도 17은 제 1 타입 영역(111), 제 2 타입 영역(113) 및 버퍼 메모리에서(130), 도 14 및 도 15에 후속하는 프로그램이 수행되는 과정을 보여준다. 도 14 내지 도 17을 참조하면, 메모리 프로세서(125)는 제 2 타입 영역(113)에 데이터(PD10, PD11, PD12)를 프로그램할 수 있다. 데이터(PD10, PD11, PD12)에 기반하여, 제 2 타입 영역(113)의 워드 라인(WL4)에서 1-스텝 프로그램이 수행될 수 있다.
이후에, 메모리 프로세서(125)는 제 2 타입 영역(113)에 데이터(PD7, PD8, PD9)를 프로그램할 수 있다. 데이터(PD7, PD8, PD9)에 기반하여, 제 2 타입 영역(113)의 워드 라인(WL3)에서 거친 프로그램이 수행될 수 있다.
도 18은 도 1의 메모리 시스템(100)에서 프로그램이 수행되는 과정의 제 3 예를 보여준다. 도 19는 제 1 타입 영역(111), 제 2 타입 영역(113) 및 버퍼 메모리(130)에서 도 18의 프로그램이 수행되는 과정을 보여준다. 예시적으로, 도 17에 후속하는 과정이 도 18 및 도 19에 도시된다.
도 1, 도 2, 도 18 및 도 19를 참조하면, S241 단계에서, 호스트 프로세서(123)는 외부 장치로부터 플러시 커맨드를 수신한다. 수신된 플러시 커맨드에 응답하여, S243 단계에서, 호스트 프로세서(123)는 메모리 프로세서(125)로 플러시 인터럽트를 전송한다. 메모리 프로세서(125)로부터 플러시가 완료되었음을 알리는 응답이 수신되면(S325 단계), S245 단계에서, 호스트 프로세서(123)는 외부 장치로 플러시가 완료되었음을 알리는 응답을 전송할 수 있다.
정상 모드에서, 호스트 프로세서(123)는 데이터가 버퍼 메모리(130)에 저장되면 외부 장치로 응답을 전송한다. 반면, 데이터의 보장을 요구하는 플러시 커맨드가 수신되면, 메모리 시스템(100)은 데이터 보장 모드로 진입한다. 호스트 프로세서(123)는 버퍼 메모리(130)에 저장된 데이터가 불휘발성 메모리(110)에 프로그램 왼료된 후, 플러시가 완료되었음을 알리는 응답을 전송할 수 있다.
호스트 프로세서(123)로부터 전송되는 플러시 인터럽트에 응답하여, S323 단계에서, 메모리 프로세서(125)는 버퍼 메모리(130)에 저장된 데이터(PD4, PD5, PD6, PD7, PD8, PD9, PD10, PD11, PD12, PD13, PD14, PD15)를 제 1 타입 영역(111)에 프로그램할 수 있다. 제 1 타입 영역(111)의 프로그램 시간은 제 2 타입 영역(113)의 프로그램 시간보다 짧을 수 있다. 따라서, 데이터 보장 모드에서, 버퍼 메모리(130)에 저장된 데이터(PD4, PD5, PD6, PD7, PD8, PD9, PD10, PD11, PD12, PD13, PD14, PD15)가 제 1 타입 영역(111)에 프로그램되면, 메모리 시스템(100)의 응답 시간이 단축된다. 예를 들어, 메모리 시스템(100)이 플러시 커맨드에 대한 응답을 전송하는 시간이 단축된다.
버퍼 메모리(130)에 저장된 데이터(PD4~PD15)를 제 1 타입 영역(111)에 프로그램하는 동작이 완료되면, 버퍼 메모리(130)에 저장된 데이터(PD4~PD15) 중 제 2 타입 영역(113)에서 프로그램 중이던 데이터(PD4~PD12) 데이터를 제외한 나머지 데이터(PD13~PD15)는 릴리즈될 수 있다. 예시적으로, 데이터(PD4~PD6)는 제 2 타입 영역(113)의 워드 라인(WL2)에 프로그램되는 중인 데이터이다. 데이터(PD7~PD9)는 제 2 타입 영역(113)의 워드 라인(WL3)에 프로그램되는 중인 데이터이다. 데이터(PD10~PD12)는 제 2 타입 영역(113)의 워드 라인(WL4)에 프로그램되는 중인 데이터이다. 따라서, 데이터(PD4~PD12)는 버퍼 메모리(130)에 유지되고, 데이터(PD13~PD15)는 버퍼 메모리(130)로부터 릴리즈될 수 있다.
도 20은 도 18 및 도 19의 프로그램에 따라 갱신된 매핑 테이블(121)을 보여준다. 도 18 내지 도 20을 참조하면, 논리 어드레스 필드에 데이터(PD4, PD5, PD6)에 대응하는 논리 어드레스(LA_4_6)가 등록된다. 논리 어드레스(LA_4_6)는 데이터(PD4, PD5, PD6)에 대응하는 어드레스 범위일 수 있다. 물리 어드레스 필드에 데이터(PD4, PD5, PD6)가 프로그램된 제 1 타입 영역(111)의 워드 라인들(WL1~WL3)의 물리 어드레스(PA_111_1_3)가 등록된다.
논리 어드레스 필드에 데이터(PD7, PD8, PD9)에 대응하는 논리 어드레스(LA_7_9)가 등록된다. 물리 어드레스 필드에 데이터(PD7, PD8, PD9)가 프로그램된 제 1 타입 영역(111)의 워드 라인들(WL4~WL6)의 물리 어드레스(PA_111_4_6)가 등록된다.
논리 어드레스 필드에 데이터(PD10, PD11, PD12)에 대응하는 논리 어드레스(LA_10_12)가 등록된다. 물리 어드레스 필드에 데이터(PD10, PD11, PD12)가 프로그램된 제 1 타입 영역(111)의 워드 라인들(WL7~WL9)의 물리 어드레스(PA_111_7_9)가 등록된다.
논리 어드레스 필드에 데이터(PD13, PD14, PD15)에 대응하는 논리 어드레스(LA_13_15)가 등록된다. 물리 어드레스 필드에 데이터(PD13, PD14, PD15)가 프로그램된 제 1 타입 영역(111)의 워드 라인들(WL10~WL12)의 물리 어드레스(PA_111_10_12)가 등록된다.
도 21은 도 1의 메모리 시스템(100)에서 프로그램이 수행되는 과정의 제 4 예를 보여준다. 도 22는 제 1 타입 영역(111), 제 2 타입 영역(113) 및 버퍼 메모리(130)에서 도 21의 프로그램이 수행되는 과정을 보여준다. 도 23은 도 21 및 도 22의 프로그램에 따라 갱신된 매핑 테이블(121)을 보여준다. 예시적으로, 도 18 및 도 19에 후속하는 과정이 도 21 내지 도 23에 도시된다.
도 1, 도 2, 도 21, 도 22 및 도 23을 참조하면, S247 단계, S249 단계 및 S251 단계에서, 호스트 프로세서(123)는 버퍼 메모리(130)에 데이터(PD16, PD17, PD18)를 저장한다. 호스트 프로세서(123)는 버퍼 메모리(130)에 최하위 페이지 데이터(PD16), 중간 페이지 데이터(PD17) 및 최상위 페이지 데이터(PD18)를 저장할 수 있다.
이후에, 메모리 시스템(100)과 외부 장치 사이의 데이터 전송은 유휴 상태로 진입할 수 있다.
플러시 동작이 완료됨에 따라, 메모리 프로세서(125)는 버퍼 메모리(130)에 저장된 데이터를 제 2 저장 영역(113)에 프로그램하는 동작을 재개할 수 있다. S325 단계에서, 메모리 프로세서(125)는 제 2 타입 영역(113)에 데이터(PD4, PD5, PD6)를 프로그램할 수 있다. 데이터(PD4, PD5, PD6)에 기반하여, 제 2 타입 영역(113)의 워드 라인(WL2)에서 정교한 프로그램이 수행될 수 있다.
정교한 프로그램이 수행되면, 제 2 타입 영역(113)의 워드 라인(WL2)의 프로그램은 완료될 수 있다. 따라서, 데이터(PD4, PD5, PD6)는 버퍼 메모리(130)로부터 릴리즈될 수 있다.
매핑 테이블(121)의 물리 어드레스 필드는 제 1 타입 영역(111)의 워드 라인들(WL1~WL3)을 가리키는 물리 주소(PA_111_1_3)로부터 제 2 타입 영역(113)의 워드 라인(WL2)을 가리키는 물리 주소(PA_113_2)로 갱신될 수 있다. 매핑 테이블(121)이 갱신됨에 따라, 제 1 타입 영역(111)의 워드 라인들(WL1~WL3)에 저장된 데이터(PD4, PD5, PD6)는 무효화될 수 있다.
S325 단계의 프로그램이 종료됨에 따라, S327 단계에서, 메모리 프로세서(125)는 제 2 타입 영역(113)에 데이터(PD16, PD17, PD18)를 프로그램할 수 있다. 데이터(PD16, PD17, PD18)에 기반하여, 제 2 타입 영역(113)의 워드 라인(WL5)에서 1-스텝 프로그램이 수행될 수 있다.
S327 단계의 프로그램이 종료됨에 따라, S329 단계에서, 메모리 프로세서(125)는 제 2 타입 영역(113)에 데이터(PD10, PD11, PD12)를 프로그램할 수 있다. 데이터(PD10, PD11, PD12)에 기반하여, 제 2 타입 영역(113)의 워드 라인(WL4)에서 거친 프로그램이 수행될 수 있다.
S329 단계의 프로그램이 종료됨에 따라, S331 단계에서, 메모리 프로세서(125)는 제 2 타입 영역(113)에 데이터(PD7, PD8, PD9)를 프로그램할 수 있다. 데이터(PD7, PD8, PD9)에 기반하여, 제 2 타입 영역(113)의 워드 라인(WL3)에서 정교한 프로그램이 수행될 수 있다.
정교한 프로그램이 수행되면, 제 2 타입 영역(113)의 워드 라인(WL3)의 프로그램은 완료될 수 있다. 따라서, 데이터(PD7, PD8, PD9)는 버퍼 메모리(130)로부터 릴리즈될 수 있다.
매핑 테이블(121)의 물리 어드레스 필드는 제 1 타입 영역(111)의 워드 라인들(WL4~WL6)을 가리키는 물리 주소(PA_111_4_6)로부터 제 2 타입 영역(113)의 워드 라인(WL3)을 가리키는 물리 주소(PA_113_3)로 갱신될 수 있다. 매핑 테이블(121)이 갱신됨에 따라, 제 1 타입 영역(111)의 워드 라인들(WL4~WL6)에 저장된 데이터(PD7, PD8, PD9)는 무효화될 수 있다.
도 24는 도 1의 메모리 시스템(100)에서 프로그램이 수행되는 과정의 제 5 예를 보여준다. 도 25는 제 1 타입 영역(111), 제 2 타입 영역(113) 및 버퍼 메모리(130)에서 도 24의 프로그램이 수행되는 과정을 보여준다. 도 26은 도 24 및 도 25의 프로그램에 따라 갱신된 매핑 테이블(121)을 보여준다. 예시적으로, 도 21 내지 도 23에 후속하는 과정이 도 24 내지 도 26에 도시된다.
도 1, 도 2, 도 24, 도 25 및 도 26을 참조하면, 메모리 시스템(100)과 외부 장치 사이의 데이터 전송은 유휴 상태를 유지할 수 있다.
메모리 프로세서(125)는 버퍼 메모리(130)에 저장된 데이터를 제 2 타입 영역(113)에 프로그램하는 동작을 지속한다. 도 8을 참조하여 설명된 바와 같이, 제 2 타입 영역(113)에서 프로그램이 수행되려면, 워드 라인(WL6)에 프로그램될 데이터가 요구된다. 버퍼 메모리(130)에 해당 데이터가 존재하지 않을 때, 즉 유휴 시간에, 메모리 프로세서(125)는 제 1 타입 영역(111)에 저장된 데이터를 제 2 타입 영역(113)에 프로그램할 수 있다.
S333 단계에서, 메모리 프로세서(125)는 제 1 타입 영역(111)에 프로그램된 데이터(PD13, PD14, PD15)를 읽는다. 읽어진 데이터는 버퍼 메모리(130)에 저장된다.
S335 단계에서, 메모리 프로세서(125)는 제 2 타입 영역(113)에 데이터(PD13, PD14, PD15)를 프로그램할 수 있다. 데이터(PD13, PD14, PD15)에 기반하여, 제 2 타입 영역(113)의 워드 라인(WL6)에서 1-스텝 프로그램이 수행될 수 있다.
S335 단계의 프로그램이 종료됨에 따라, S337 단계에서, 메모리 프로세서(125)는 제 2 타입 영역(113)에 데이터(PD16, PD17, PD18)를 프로그램할 수 있다. 데이터(PD16, PD17, PD18)에 기반하여, 제 2 타입 영역(113)의 워드 라인(WL5)에서 거친 프로그램이 수행될 수 있다.
S337 단계의 프로그램이 종료됨에 따라, S339 단계에서, 메모리 프로세서(125)는 제 2 타입 영역(113)에 데이터(PD10, PD11, PD12)를 프로그램할 수 있다. 데이터(PD10, PD11, PD12)에 기반하여, 제 2 타입 영역(113)의 워드 라인(WL5)에서 정교한 프로그램이 수행될 수 있다.
정교한 프로그램이 수행되면, 제 2 타입 영역(113)의 워드 라인(WL4)의 프로그램은 완료될 수 있다. 따라서, 데이터(PD10, PD11, PD12)는 버퍼 메모리(130)로부터 릴리즈될 수 있다.
매핑 테이블(121)의 물리 어드레스 필드는 제 1 타입 영역(111)의 워드 라인들(WL7~WL9)을 가리키는 물리 주소(PA_111_7_9)로부터 제 2 타입 영역(113)의 워드 라인(WL4)을 가리키는 물리 주소(PA_113_4)로 갱신될 수 있다. 매핑 테이블(121)이 갱신됨에 따라, 제 1 타입 영역(111)의 워드 라인들(WL7~WL9)에 저장된 데이터(PD10, PD11, PD12)는 무효화될 수 있다.
도 27은 플러시 동작이 수행된 후, 버퍼 메모리(130)에 저장된 데이터를 처리하는 방법을 보여준다. 도 1 및 도 27을 참조하면, 첫 번째 옵션으로, 플러시 동작이 수행된 후, 버퍼 메모리(130)에 저장된 데이터 중 리프로그램과 연관된 데이터를 제외한 데이터가 릴리즈될 수 있다. 이 옵션은 도 18 내지 도 20을 참조하여 설명된 실시 예에 대응한다.
두 번째 옵션으로, 버퍼 메모리(130)에 저장된 데이터 중 리프로그램과 연관된 데이터 및 추가 데이터를 제외한 데이터가 릴리즈될 수 있다. 예시적으로, 추가 데이터는 제 2 타입 영역(113)의 하나의 워드 라인에 프로그램되는 최하위 페이지 데이터, 중간 페이지 데이터 및 최상위 데이터 페이지를 포함할 수 있다. 이 옵션이 적용되면, 도 18 내지 도 20의 실시 예에서, 하나의 워드 라인에 대응하는 데이터(PD13, PD14, PD15)가 버퍼 메모리(130)에 유지될 수 있다. 버퍼 메모리(130)에 추가 데이터가 유지되면, 도 24의 S333 단계를 참조하여 설명된 바와 같이, 제 1 타입 영역(111)으로부터 데이터를 읽는 횟수가 감소될 수 있다.
세 번째 옵션으로, 버퍼 메모리(130)에 저장된 데이터는 릴리즈되지 않고, 제 1 타입 영역(111)에 저장된 데이터가 체크될 수 있다. 예를 들어, 제 1 타입 영역(111)에 백업된 데이터에 플래그 데이터가 추가될 수 있다. 버퍼 메모리(130)의 저장 공간이 부족할 때, 플래그 데이터를 갖고 리프로그램과 연관되지 않은 데이터가 버퍼 메모리(130)로부터 릴리즈될 수 있다.
도 28은 메모리 컨트롤러(120)가 불휘발성 메모리(110)의 제 1 타입 영역(111)을 관리하는 방법을 보여준다. 예시적으로, 플러시 동작이 수행될 때, 메모리 프로세서(123)가 제 1 타입 영역(111)을 관리하는 방법이 도 28에 도시된다.
도 1 및 도 28을 참조하면, S410 단계에서, 제 1 타입 영역(111)의 저장 공간이 충분한지 판별된다. 예를 들어, 버퍼 메모리(130)에 저장된 데이터가 제 1 타입 영역(111)에 모두 프로그램될 수 있는지 판별될 수 있다. 제 1 타입 영역(111)의 저장 공간이 충분하면, 추가 동작은 수행되지 않는다. 제 1 타입 영역(111)의 저장 공간이 충분하지 않으면, S420 단계가 수행된다.
S420 단계에서, 제 1 타입 영역(111)에서 가비지 컬렉션이 수행된다.
S430 단계에서, 제 1 타입 영역(111)의 저장 공간이 충분한지 다시 판별된다.
저장 공간이 충분하지 않으면, S440 단계에서, 제 1 타입 영역(111)에 저장된 데이터가 제 2 타입 영역(113)으로 복사된다. 그리고, 제 1 타입 영역(111)에서 가비지 컬렉션이 수행된다.
예시적으로, 도 28의 동작은 플러시 동작이 수행되기 전, 또는 플러시 동작이 수행되는 동안 수행될 수 있다.
다른 예로서, 제 1 타입 영역(111)의 저장 공간이 충분하지 않은 경우, 플러시 동작은 제 2 타입 영역(113)에 대해 수행될 수 있다. 예를 들어, 버퍼 메모리(130)에 저장된 데이터 중 일부는 제 1 타입 영역(111)에 프로그램될 수 있다. 버퍼 메모리(130)에 저장된 데이터 중 나머지는 제 2 타입 영역(113)에 직접 프로그램될 수 있다.
도 29는 메모리 컨트롤러(120)가 매핑 테이블(121)을 갱신하는 예를 보여주는 순서도이다. 도 1 및 도 29를 참조하면, S510 단계에서, 제 2 타입 영역(113)의 프로그램이 시작된다.
제 2 타입 영역(113)의 프로그램이 종료되기 전에, S520 단계에서, 플러시 커맨드가 수신될 수 있다.
S530 단계에서, 제 1 타입 영역(111)의 프로그램이 시작된다.
S540 단계에서, 제 1 타입 영역(111)의 프로그램이 먼저 종료되는지 판별된다. 제 1 타입 영역(111)의 프로그램이 먼저 종료되면, S550 단계에서, 제 1 및 제 2 타입 영역들(111, 113)의 프로그램들이 순차적으로 종료됨에 따라, 매핑 테이블(121)이 순차적으로 갱신된다. 예를 들어, 제 1 타입 영역(111)의 프로그램이 완료된 후, 매핑 테이블(121)은 제 1 타입 영역(111)의 물리 어드레스를 저장하도록 갱신될 수 있다. 이후에, 제 2 타입 영역(113)의 프로그램이 완료되면, 매핑 테이블(121)은 제 2 타입 영역(113)의 물리 어드레스를 저장하도록 갱신될 수 있다.
제 1 타입 영역(111)의 프로그램이 먼저 종료되지 않으면, S560 단계에서, 제 2 타입 영역(113)의 프로그램이 완료됨에 따라 매핑 테이블(121)이 갱신된다. 이후에, 제 1 타입 영역(111)의 프로그램이 완료될 때, 매핑 테이블(121)은 갱신되지 않을 수 있다.
도 30은 본 발명의 제 2 실시 예에 따른 메모리 시스템(100a)을 보여주는 블록도이다. 도 30을 참조하면, 메모리 시스템(100a)은 불휘발성 메모리(110a), 컨트롤러(120a) 및 버퍼 메모리(130)를 포함한다.
도 1의 메모리 시스템(100)과 비교하면, 불휘발성 메모리(110a)는 복수의 불휘발성 메모리 칩들을 포함한다. 복수의 불휘발성 메모리 칩들은 공통 채널을 통해 컨트롤러(120a)와 통신할 수 있다. 복수의 불휘발성 메모리 칩들 각각은 제 1 타입 영역(111) 및 제 2 타입 영역(113)을 포함할 수 있다.
도 31은 본 발명의 제 3 실시 예에 따른 메모리 시스템(100b)을 보여주는 블록도이다. 도 31을 참조하면, 메모리 시스템(100b)은 불휘발성 메모리들(110b_1, 110b_2), 컨트롤러(120b) 및 버퍼 메모리(130)를 포함한다.
도 1의 메모리 시스템(100)과 비교하면, 복수의 불휘발성 메모리들(110b_1, 110b_2)이 제공된다. 복수의 불휘발성 메모리들(110b_1, 110b_2)은 서로 다른 채널들을 통해 컨트롤러(120b)와 통신할 수 있다. 복수의 불휘발성 메모리들(110b_1, 110b_2) 각각은 제 1 타입 영역(111) 및 제 2 타입 영역(113)을 포함할 수 있다.
도 32는 본 발명의 제 4 실시 예에 따른 메모리 시스템(100c)을 보여주는 블록도이다. 도 32를 참조하면, 메모리 시스템(100c)은 불휘발성 메모리들(110c_1, 110c_2), 컨트롤러(120c) 및 버퍼 메모리(130)를 포함한다.
도 31의 메모리 시스템(100b)과 비교하면, 복수의 불휘발성 메모리들(110c_1, 110c_2) 각각은 복수의 불휘발성 메모리 칩들을 포함한다. 복수의 불휘발성 메모리 칩들 각각은 제 1 타입 영역(111) 및 제 2 타입 영역(113)을 포함할 수 있다.
도 33은 본 발명의 제 5 실시 예에 따른 메모리 시스템(100d)을 보여주는 블록도이다. 도 33을 참조하면, 메모리 시스템(100d)은 불휘발성 메모리들(113d, 111d), 컨트롤러(120d) 및 버퍼 메모리(130)를 포함한다.
도 1의 메모리 시스템(100b)과 비교하면, 불휘발성 메모리(111d)는 제 1 타입 불휘발성 메모리일 수 있다. 불휘발성 메모리(111d)는 고속 메모리일 수 있다. 불휘발성 메모리(113d)는 제 2 타입 불휘발성 메모리일 수 있다. 불휘발성 메모리(113d)는 대용량 메모리일 수 있다. 즉, 도 1을 참조하여 설명된 제 1 타입 영역(111) 및 제 2 타입 영역(113)은 별도의 분리된 불휘발성 메모리들로 제공될 수 있다.
불휘발성 메모리들(113d, 111d)은 공통 채널을 통해 컨트롤러(120d)와 통신할 수 있다. 불휘발성 메모리들(111d, 113d) 각각은 복수의 불휘발성 메모리 칩들을 포함할 수 있다.
도 34는 본 발명의 제 6 실시 예에 따른 메모리 시스템(100e)을 보여주는 블록도이다. 도 34를 참조하면, 메모리 시스템(100e)은 불휘발성 메모리들(113e, 111e), 컨트롤러(120e) 및 버퍼 메모리(130)를 포함한다.
도 33의 메모리 시스템(100d)과 비교하면, 불휘발성 메모리들(111e, 113e)은 별도의 분리된 채널들을 통해 컨트롤러(120e)와 통신할 수 있다. 불휘발성 메모리들(111e, 113e) 각각은 복수의 불휘발성 메모리 칩들을 포함할 수 있다.
도 35는 본 발명의 실시 예에 따른 메모리 카드(1000)를 보여준다. 도 35를 참조하면, 메모리 카드(1000)는 불휘발성 메모리(1100), 컨트롤러(1200), 버퍼 메모리(1300), 그리고 커넥터(1400)를 포함한다.
불휘발성 메모리(1100)는 고속의 제 1 타입 영역 및 대용량의 제 2 타입 영역을 포함할 수 있다. 메모리 카드(1000)는 본 발명의 실시 예에 따른 메모리 시스템을 포함할 수 있다.
메모리 카드(3000)는 PC 카드(PCMCIA, personal computer memory card international association), 컴팩트 플래시 카드(CF), 스마트 미디어 카드(SM, SMC), 메모리 스틱, 멀티미디어 카드(MMC, RS-MMC, MMCmicro), SD 카드(SD, miniSD, microSD, SDHC), 유니버설 플래시 기억장치(UFS) 등과 같은 메모리 카드들을 구성할 수 있다.
도 36은 본 발명의 실시 예에 따른 솔리드 스테이트 드라이브(2000, SSD, Solid State Drive)를 보여준다. 도 36을 참조하면, 솔리드 스테이트 드라이브(2000)는 복수의 불휘발성 메모리들(2100), 컨트롤러(2200), 버퍼 메모리(2300), 그리고 커넥터(2400)를 포함한다.
불휘발성 메모리(2100)는 고속의 제 1 타입 영역 및 대용량의 제 2 타입 영역을 포함할 수 있다. 솔리드 스테이트 드라이브(2000)는 본 발명의 실시 예에 따른 메모리 시스템을 포함할 수 있다.
도 37은 본 발명의 실시 예에 따른 컴퓨팅 장치(3000)를 보여주는 블록도이다. 도 37을 참조하면, 컴퓨팅 장치(3000)는 프로세서(3100), 메모리(3200), 스토리지(3300), 모뎀(3400), 그리고 사용자 인터페이스(3500)를 포함한다.
프로세서(3100)는 컴퓨팅 장치(3000)의 제반 동작을 제어하고, 논리 연산을 수행할 수 있다. 예를 들어, 프로세서(3100)는 시스템-온-칩(SoC, System-on-Chip)으로 구성될 수 있다. 프로세서(3100)는 범용 프로세서 또는 어플리케이션 프로세서일 수 있다.
메모리(3200)는 프로세서(3100)와 통신할 수 있다. 메모리(3200)는 프로세서(3100) 또는 컴퓨팅 장치(3000)의 동작 메모리(또는 메인 메모리)일 수 있다. 메모리(3200)는 SRAM (Static RAM), DRAM (Dynamic RAM), SDRAM (Synchronous DRAM) 등과 같은 휘발성 메모리, 또는 플래시 메모리, PRAM (Phase-change RAM), MRAM (Magnetic RAM), RRAM (Resistive RAM), FRAM (Ferroelectric RAM) 등과 같은 불휘발성 메모리를 포함할 수 있다.
스토리지(3300)는 컴퓨팅 장치(3000)에서 장기적으로 저장하고자 하는 데이터를 저장할 수 있다. 스토리지(3300)는 하드 디스크 드라이브(HDD, Hard Disk Drive) 또는 플래시 메모리, PRAM (Phase-change RAM), MRAM (Magnetic RAM), RRAM (Resistive RAM), FRAM (Ferroelectric RAM) 등과 같은 불휘발성 메모리를 포함할 수 있다. 스토리지(3300)는 본 발명의 실시 예에 따른 메모리 시스템을 포함할 수 있다.
예시적으로, 메모리(3200) 및 스토리지(3300)는 동일한 종류의 불휘발성 메모리로 구성될 수 있다. 이때, 메모리(3200) 및 스토리지(3300)는 하나의 반도체 집적 회로로 구성될 수 있다.
모뎀(3400)은 프로세서(3100)의 제어에 따라 외부 장치와 통신을 수행할 수 있다. 예를 들어, 모뎀(3400)은 외부 장치와 유선 또는 무선 통신을 수행할 수 있다. 모뎀(3400)은 LTE (Long Term Evolution), 와이맥스(WiMax), GSM (Global System for Mobile communication), CDMA (Code Division Multiple Access), 블루투스(Bluetooth), NFC (Near Field Communication), 와이파이(WiFi), RFID (Radio Frequency IDentification) 등과 같은 다양한 무선 통신 방식들, 또는 USB (Universal Serial Bus), SATA (Serial AT Attachment), SCSI (Small Computer Small Interface), 파이어와이어(Firewire), PCI (Peripheral Component Interconnection) 등과 같은 다양한 유선 통신 방식들 중 적어도 하나에 기반하여 통신을 수행할 수 있다.
사용자 인터페이스(3500)는 프로세서(3100)의 제어에 따라 사용자와 통신할 수 있다. 예를 들어, 사용자 인터페이스(3500)는 키보드, 키패드, 버튼, 터치 패널, 터치 스크린, 터치 패드, 터치 볼, 카메라, 마이크, 자이로스코프 센서, 진동 센서, 등과 같은 사용자 입력 인터페이스들을 포함할 수 있다. 사용자 인터페이스(3500)는 LCD (Liquid Crystal Display), OLED (Organic Light Emitting Diode) 표시 장치, AMOLED (Active Matrix OLED) 표시 장치, LED, 스피커, 모터 등과 같은 사용자 출력 인터페이스들을 포함할 수 있다.
본 발명의 상세한 설명에서는 구체적인 실시 예에 관하여 설명하였으나, 본 발명의 범위와 기술적 사상에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능하다. 그러므로 본 발명의 범위는 상술한 실시 예에 국한되어 정해져서는 안되며 후술하는 특허청구범위뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 한다.
100; 메모리 시스템
110; 불휘발성 메모리
120; 메모리 컨트롤러
130; 버퍼 메모리
121; 매핑 테이블
122; 버스
123; 호스트 프로세서
124; 메모리
125; 메모리 프로세서
126; 메모리
127; 버퍼 관리자
128; 메모리 관리자

Claims (20)

  1. 메모리 시스템의 동작 방법에 있어서:
    논리 어드레스를 갖는 제1 데이터를 외부 장치로부터 수신하는 단계;
    상기 외부 장치로부터 수신된 상기 제1 데이터를 상기 메모리 시스템의 버퍼 메모리에 저장하는 단계;
    상기 버퍼 메모리에 저장된 상기 제1 데이터의 상기 메모리 시스템의 불휘발성 메모리의 제2 저장 영역으로의 제1 프로그램을 시작하는 단계;
    상기 외부 장치로부터 플러시 커맨드를 수신하는 단계;
    상기 외부 장치로부터 상기 플러시 커맨드를 수신하는 것에 응답하여, 상기 버퍼 메모리에 저장된 상기 제1 데이터의 상기 불휘발성 메모리의 제1 저장 영역으로의 제2 프로그램을 시작하는 단계;
    상기 버퍼 메모리에 저장된 상기 제1 데이터의 상기 불휘발성 메모리의 상기 제1 저장 영역으로의 상기 제2 프로그램이 상기 버퍼 메모리에 저장된 상기 제1 데이터의 상기 제2 저장 영역으로의 상기 제1 프로그램보다 먼저 종료되는지 판단하는 단계;
    상기 버퍼 메모리에 저장된 상기 제1 데이터의 상기 불휘발성 메모리의 상기 제1 저장 영역으로의 상기 제2 프로그램이 상기 버퍼 메모리에 저장된 상기 제1 데이터의 상기 제2 저장 영역으로의 상기 제1 프로그램보다 먼저 종료되지 않음을 판단하는 것에 응답하여, 상기 제1 데이터의 상기 논리 어드레스가 상기 제2 저장 영역의 물리 어드레스와 연관되도록 매핑 테이블을 갱신하고 그리고 상기 버퍼 메모리에 저장된 상기 제1 데이터의 상기 제2 저장 영역으로의 상기 제1 프로그램에 응답하여 상기 매핑 테이블을 갱신하지 않는 단계; 그리고
    상기 버퍼 메모리에 저장된 상기 제1 데이터의 상기 불휘발성 메모리의 상기 제1 저장 영역으로의 상기 제2 프로그램이 상기 버퍼 메모리에 저장된 상기 제1 데이터의 상기 제2 저장 영역으로의 상기 제1 프로그램보다 먼저 종료됨을 판단하는 것에 응답하여, 상기 제1 데이터의 상기 논리 어드레스가 상기 제1 저장 영역의 물리 어드레스와 연관되도록 상기 매핑 테이블을 갱신하고 그리고 상기 버퍼 메모리에 저장된 상기 제1 데이터의 상기 제2 저장 영역으로의 상기 제1 프로그램에 응답하여 상기 제1 데이터의 상기 논리 어드레스가 상기 제2 저장 영역의 상기 물리 어드레스와 연관되도록 상기 상기 매핑 테이블을 갱신하는 단계를 더 포함하는 동작 방법.
  2. 제1항에 있어서,
    상기 제1 저장 영역은 단일 레벨 셀 메모리 영역으로 구성되고, 그리고 상기 제2 저장 영역은 멀티 레벨 셀 메모리 영역으로 구성되는 동작 방법.
  3. 제1항에 있어서,
    상기 제1 저장 영역의 프로그램 시간은 상기 제2 저장 영역의 프로그램 시간보다 빠른 동작 방법.
  4. 제1항에 있어서,
    상기 플러시 커맨드를 수신하는 것에 응답하여, 상기 메모리 시스템은 보장 모드로 진입하는 동작 방법.
  5. 제4항에 있어서,
    상기 버퍼 메모리에 저장된 상기 제1 데이터의 상기 제1 저장 영역으로의 상기 제2 프로그램의 종료에 응답하여, 상기 보장 모드는 종료하는 동작 방법.
  6. 제4항에 있어서,
    상기 메모리 시스템은 상기 외부 장치로부터 전송되는 캐시 오프 신호에 응답하여 상기 보장 모드로 진입하는 동작 방법.
  7. 제4항에 있어서,
    상기 보장 모드 동안에, 상기 버퍼 메모리에 저장된 상기 제1 데이터의 상기 제2 저장 영역으로의 상기 제1 프로그램과 연관된 데이터가 아닌 상기 버퍼 메모리에 남아있는 데이터는 상기 버퍼 메모리에 저장된 상기 제1 데이터의 상기 불휘발성 메모리의 상기 제1 저장 영역으로의 상기 제2 프로그램의 종료 후에 상기 버퍼 메모리로부터 릴리즈 되는 동작 방법.
  8. 메모리 시스템에 있어서:
    외부 장치로부터 수신되는 논리 어드레스를 갖는 제1 데이터를 저장하도록 구성되는 버퍼 메모리;
    제1 저장 영역 및 제2 저장 영역을 포함하는 불휘발성 메모리; 그리고
    제1 동작 모드 동안에 상기 버퍼 메모리에 저장된 상기 제1 데이터의 상기 제2 저장 영역으로의 제1 프로그램을 개시하도록 구성되고, 그리고 상기 외부 장치로부터 플러시 커맨드를 수신하는 것에 응답하여 제2 동작 모드에서 상기 버퍼 메모리에 저장된 상기 제1 데이터의 상기 제1 저장 영역으로의 제2 프로그램을 개시하도록 구성되는 메모리 컨트롤러를 포함하고,
    상기 메모리 컨트롤러는 상기 버퍼 메모리에 저장된 상기 제1 데이터의 상기 제1 저장 영역으로의 상기 제2 프로그램의 종료를 검출하고 그리고 상기 버퍼 메모리에 저장된 상기 제1 데이터의 상기 제2 저장 영역으로의 상기 제1 프로그램의 종료를 검출하도록 구성되고,
    상기 제1 데이터의 상기 제1 저장 영역으로의 상기 제2 프로그램이 상기 제1 데이터의 상기 제2 저장 영역으로의 상기 제1 프로그램보다 먼저 종료하는 것을 판단하는 것에 응답하여, 상기 메모리 컨트롤러는 상기 제1 데이터의 상기 제1 저장 영역으로의 상기 제2 프로그램의 종료에 따라 상기 제1 데이터의 상기 논리 어드레스가 상기 제1 저장 영역의 물리 어드레스와 연관되도록 매핑 테이블을 갱신하고, 그리고 상기 제1 데이터의 상기 제2 저장 영역으로의 상기 제1 프로그램의 종료에 따라 상기 제1 데이터의 논리 어드레스가 상기 제2 저장 영역의 물리 어드레스와 연관되도록 상기 매핑 테이블을 갱신하도록 구성되고, 그리고
    상기 제1 데이터의 상기 제1 저장 영역으로의 상기 제2 프로그램이 상기 제1 데이터의 상기 제2 저장 영역으로의 상기 제1 프로그램보다 먼저 종료하지 않는 것을 판단하는 것에 응답하여, 상기 메모리 컨트롤러는 상기 제1 데이터의 상기 제2 저장 영역으로의 상기 제1 프로그램의 종료에 따라 상기 제1 데이터의 상기 논리 어드레스가 상기 제2 저장 영역의 상기 물리 어드레스와 연관되도록 상기 매핑 테이블을 갱신하고, 그리고 상기 제1 데이터의 상기 제1 저장 영역으로의 상기 제2 프로그램의 종료에 따라 상기 제1 데이터의 상기 논리 어드레스가 상기 제1 저장 영역의 상기 물리 어드레스와 연관되도록 상기 매핑 테이블을 갱신하지 않도록 구성되는 메모리 시스템.
  9. 제8항에 있어서,
    상기 제1 저장 영역은 단일 레벨 셀 메모리 영역으로 구성되고, 그리고 상기 제2 저장 영역은 멀티 레벨 셀 메모리 영역으로 구성되는 메모리 시스템.
  10. 제8항에 있어서,
    상기 제1 저장 영역의 프로그램 시간은 상기 제2 저장 영역의 프로그램 시간보다 빠른 메모리 시스템.
  11. 제8항에 있어서,
    상기 버퍼 메모리, 상기 불휘발성 메모리, 그리고 상기 메모리 컨트롤러는 솔리드 스테이트 드라이브를 구성하는 메모리 시스템.
  12. 제8항에 있어서,
    상기 버퍼 메모리는 휘발성 메모리인 메모리 시스템.
  13. 제8항에 있어서,
    상기 제1 저장 영역 및 상기 제2 저장 영역은 동일한 구조를 갖는 메모리 셀들을 포함하는 메모리 시스템.
  14. 메모리 시스템에 있어서:
    외부 장치로부터 수신되는 논리 어드레스를 갖는 제1 데이터를 저장하도록 구성되는 버퍼 메모리;
    메모리 셀 당 하나의 비트를 저장하도록 구성되는 제1 저장 영역 및 메모리 셀 당 하나보다 많은 비트들을 저장하도록 구성되는 제2 저장 영역을 포함하는 불휘발성 메모리; 그리고
    상기 버퍼 메모리에 저장된 상기 제1 데이터의 상기 제2 저장 영역으로의 제1 프로그램을 개시하고, 이후에 상기 외부 장치로부터 플러시 커맨드를 수신하는 것에 응답하여 제2 동작 모드에서 상기 버퍼 메모리에 저장된 상기 제1 데이터의 상기 제1 저장 영역으로의 제2 프로그램을 개시하도록 구성되는 메모리 컨트롤러를 포함하고,
    상기 제1 데이터의 상기 제1 저장 영역으로의 상기 제2 프로그램이 상기 제1 데이터의 상기 제2 저장 영역으로의 상기 제1 프로그램보다 먼저 종료함을 판단하는 것에 응답하여, 상기 메모리 컨트롤러는 상기 제1 데이터의 상기 제1 저장 영역으로의 상기 제2 프로그램의 종료에 따라 상기 제1 데이터의 상기 논리 어드레스가 상기 제1 저장 영역의 물리 어드레스와 연관되도록 매핑 테이블을 갱신하고, 그리고 상기 제1 데이터의 상기 제2 저장 영역으로의 상기 제1 프로그램의 종료에 따라 상기 제1 데이터의 상기 논리 어드레스가 상기 제2 저장 영역의 물리 어드레스와 연관되도록 상기 매핑 테이블을 갱신하도록 구성되고, 그리고
    상기 제1 데이터의 상기 제1 저장 영역으로의 상기 제2 프로그램이 상기 제1 데이터의 상기 제2 저장 영역으로의 상기 제1 프로그램보다 먼저 종료하지 않는 것을 판단하는 것에 응답하여, 상기 메모리 컨트롤러는 상기 제1 데이터의 상기 제2 저장 영역으로의 상기 제1 프로그램의 종료에 따라 상기 제1 데이터의 상기 논리 어드레스가 상기 제2 저장 영역의 상기 물리 어드레스와 연관되도록 상기 매핑 테이블을 갱신하고, 그리고 상기 제1 데이터의 상기 제1 저장 영역으로의 상기 제2 프로그램의 종료에 따라 상기 제1 데이터의 상기 논리 어드레스가 상기 제1 저장 영역의 상기 물리 어드레스와 연관되도록 상기 매핑 테이블을 갱신하지 않도록 구성되는 메모리 시스템.
  15. 제14항에 있어서,
    상기 제1 저장 영역은 단일 레벨 셀 메모리 영역으로 구성되고, 그리고 상기 제2 저장 영역은 멀티 레벨 셀 메모리 영역으로 구성되는 메모리 시스템.
  16. 제14항에 있어서,
    상기 제1 저장 영역의 프로그램 시간은 상기 제2 저장 영역의 프로그램 시간보다 빠른 메모리 시스템.
  17. 제14항에 있어서,
    상기 버퍼 메모리, 상기 불휘발성 메모리, 그리고 상기 메모리 컨트롤러는 솔리드 스테이트 드라이브를 구성하는 메모리 시스템.
  18. 제14항에 있어서,
    상기 버퍼 메모리는 휘발성 메모리인 메모리 시스템.
  19. 제14항에 있어서,
    상기 제1 저장 영역 및 상기 제2 저장 영역은 동일한 반도체 칩에 집적되는 메모리 시스템.
  20. 제14항에 있어서,
    상기 제1 저장 영역 및 상기 제2 저장 영역은 동일한 구조를 갖는 메모리 셀들을 포함하는 메모리 시스템.
KR1020130035283A 2013-04-01 2013-04-01 메모리 시스템 및 메모리 시스템의 동작 방법 KR102025240B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020130035283A KR102025240B1 (ko) 2013-04-01 2013-04-01 메모리 시스템 및 메모리 시스템의 동작 방법
US14/227,269 US9640264B2 (en) 2013-04-01 2014-03-27 Memory system responsive to flush command to store data in fast memory and method of operating memory system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130035283A KR102025240B1 (ko) 2013-04-01 2013-04-01 메모리 시스템 및 메모리 시스템의 동작 방법

Publications (2)

Publication Number Publication Date
KR20140119510A KR20140119510A (ko) 2014-10-10
KR102025240B1 true KR102025240B1 (ko) 2019-11-04

Family

ID=51620729

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130035283A KR102025240B1 (ko) 2013-04-01 2013-04-01 메모리 시스템 및 메모리 시스템의 동작 방법

Country Status (2)

Country Link
US (1) US9640264B2 (ko)
KR (1) KR102025240B1 (ko)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102287760B1 (ko) * 2014-10-29 2021-08-09 삼성전자주식회사 메모리 시스템 및 상기 메모리 시스템의 동작 방법
US9836243B1 (en) * 2016-03-31 2017-12-05 EMC IP Holding Company LLC Cache management techniques
TWI607457B (zh) * 2016-06-28 2017-12-01 光寶電子(廣州)有限公司 固態儲存裝置及其資料寫入方法
TWI661352B (zh) * 2016-09-22 2019-06-01 慧榮科技股份有限公司 資料儲存裝置及其資料寫入方法
CN108121670B (zh) * 2017-08-07 2021-09-28 鸿秦(北京)科技有限公司 一种减少固态硬盘元数据回刷频率的映射方法
KR102549540B1 (ko) * 2017-09-22 2023-06-29 삼성전자주식회사 스토리지 장치 및 그 동작 방법
KR102536637B1 (ko) * 2018-03-29 2023-05-26 에스케이하이닉스 주식회사 메모리 컨트롤러 및 그 동작 방법
KR20200019513A (ko) * 2018-08-14 2020-02-24 에스케이하이닉스 주식회사 컨트롤러, 메모리 시스템 및 그 동작 방법
KR20200057866A (ko) 2018-11-16 2020-05-27 삼성전자주식회사 불휘발성 메모리 장치를 포함하는 스토리지 장치 및 이의 동작 방법
KR20210016188A (ko) * 2019-08-01 2021-02-15 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 동작 방법
KR20210016208A (ko) 2019-08-02 2021-02-15 삼성전자주식회사 스토리지 장치, 및 스토리지 장치 및 스토리지 장치를 제어하는 호스트 장치를 포함하는 스토리지 시스템의 동작 방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100809320B1 (ko) * 2006-09-27 2008-03-05 삼성전자주식회사 이종 셀 타입을 지원하는 비휘발성 메모리를 위한 맵핑정보 관리 장치 및 방법

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5671388A (en) * 1995-05-03 1997-09-23 Intel Corporation Method and apparatus for performing write operations in multi-level cell storage device
KR100330164B1 (ko) 1999-04-27 2002-03-28 윤종용 무효 블록들을 가지는 복수의 플래시 메모리들을 동시에 프로그램하는 방법
KR100673013B1 (ko) 2005-09-21 2007-01-24 삼성전자주식회사 메모리 컨트롤러 및 그것을 포함한 데이터 처리 시스템
KR20070060301A (ko) 2005-12-08 2007-06-13 삼성전자주식회사 불휘발성 메모리를 쓰기 캐시로 구비한 하드 디스크드라이버
US7395390B2 (en) 2006-07-12 2008-07-01 Inventec Corporation System for backing up cache memory in a double backup server structure
US7411757B2 (en) * 2006-07-27 2008-08-12 Hitachi Global Storage Technologies Netherlands B.V. Disk drive with nonvolatile memory having multiple modes of operation
JP2008152464A (ja) * 2006-12-15 2008-07-03 Toshiba Corp 記憶装置
KR100882740B1 (ko) 2007-02-22 2009-02-09 삼성전자주식회사 맵 히스토리 기반의 불휘발성 메모리의 매핑 방법 및 저장장치
US7873878B2 (en) 2007-09-24 2011-01-18 International Business Machines Corporation Data integrity validation in storage systems
KR20090078999A (ko) * 2008-01-16 2009-07-21 삼성전자주식회사 외란 상태에 따른 적응적 기록 방법 및 이를 이용한 저장장치
KR101464255B1 (ko) 2008-06-23 2014-11-25 삼성전자주식회사 플래시 메모리 장치 및 그것을 포함한 시스템
TWI385516B (zh) * 2008-08-12 2013-02-11 Phison Electronics Corp 快閃記憶體儲存系統及其資料寫入方法
US20100169540A1 (en) * 2008-12-30 2010-07-01 Sinclair Alan W Method and apparatus for relocating selected data between flash partitions in a memory device
JP4924645B2 (ja) 2009-03-31 2012-04-25 富士通株式会社 ストレージ制御装置、ストレージシステム及びコピー方法。
CN102696010B (zh) 2009-09-08 2016-03-23 才智知识产权控股公司(2) 用于将数据高速缓存在固态存储设备上的装置、系统和方法
TWI385523B (zh) 2009-11-06 2013-02-11 Phison Electronics Corp 用於快閃記憶體的資料備份方法及其控制器與儲存系統
KR101626084B1 (ko) 2009-11-25 2016-06-01 삼성전자주식회사 멀티 칩 메모리 시스템 및 그것의 데이터 전송 방법
JP2012068873A (ja) * 2010-09-22 2012-04-05 Toshiba Corp メモリシステムおよびdramコントローラ
KR101736384B1 (ko) * 2010-09-29 2017-05-16 삼성전자주식회사 비휘발성 메모리 시스템
KR101747791B1 (ko) 2010-10-29 2017-06-16 삼성전자주식회사 메모리 시스템 및 데이터 저장 장치 그리고 그것의 데이터 관리 방법
US20140143476A1 (en) * 2012-11-16 2014-05-22 Rotem Sela Usage of cache and write transaction information in a storage device

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100809320B1 (ko) * 2006-09-27 2008-03-05 삼성전자주식회사 이종 셀 타입을 지원하는 비휘발성 메모리를 위한 맵핑정보 관리 장치 및 방법

Also Published As

Publication number Publication date
US9640264B2 (en) 2017-05-02
KR20140119510A (ko) 2014-10-10
US20140293712A1 (en) 2014-10-02

Similar Documents

Publication Publication Date Title
KR102025240B1 (ko) 메모리 시스템 및 메모리 시스템의 동작 방법
KR102249810B1 (ko) 스토리지 장치 및 스토리지 장치의 동작 방법
KR102285462B1 (ko) 불휘발성 메모리 및 메모리 컨트롤러를 포함하는 메모리 시스템의 동작 방법
KR102291803B1 (ko) 불휘발성 메모리 시스템의 동작 방법, 및 그것을 포함하는 사용자 시스템의 동작 방법
US10223011B2 (en) Storage device including nonvolatile memory device and controller and operating method of the storage device
KR102403253B1 (ko) 불휘발성 메모리 장치를 포함하는 스토리지 장치
KR101699377B1 (ko) 불휘발성 메모리 및 메모리 컨트롤러를 포함하는 스토리지 장치 및 스토리지 장치의 동작 방법
KR102128406B1 (ko) 스토리지 장치 및 스토리지 장치의 동작 방법
US9727250B2 (en) Nonvolatile memory system and operation method of a memory controller that manages page serial numbers according to program elapsed times of pages
US9880781B2 (en) Storage device and operating method of storage device
US9672091B2 (en) Storage device and debugging method thereof
US9760308B2 (en) Nonvolatile memory system and operation method of the same
KR102094393B1 (ko) 불휘발성 메모리 시스템 및 그것의 동작 방법
KR102292183B1 (ko) 불휘발성 메모리의 동작 방법 및 불휘발성 메모리를 포함하는 스토리지 장치의 동작 방법
KR102187521B1 (ko) 불휘발성 메모리 및 메모리 컨트롤러를 포함하는 메모리 시스템 및 불휘발성 메모리에 데이터를 프로그램하는 프로그램 방법
US20160117119A1 (en) Storage device and operating method of the same
US20170092366A1 (en) Operating method of nonvolatile memory system
KR20150096220A (ko) 스토리지 장치 및 스토리지 장치의 동작 방법
US9892795B2 (en) Nonvolatile memory device and method of operating the nonvolatile memory device
KR20120109903A (ko) 불휘발성 메모리의 제어 방법 및 그것을 포함하는 메모리 시스템
KR102435863B1 (ko) 스토리지 장치 및 그것을 포함하는 서버 시스템의 매칭 키 검색 방법
KR101751952B1 (ko) 스토리지 장치의 동작 방법 및 스토리지 장치에 데이터를 기입하는 방법
KR20230026877A (ko) 컴퓨팅 시스템 및 그 동작 방법

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