KR102102224B1 - 저장 장치 및 그것의 프로그램 방법 - Google Patents

저장 장치 및 그것의 프로그램 방법 Download PDF

Info

Publication number
KR102102224B1
KR102102224B1 KR1020130117467A KR20130117467A KR102102224B1 KR 102102224 B1 KR102102224 B1 KR 102102224B1 KR 1020130117467 A KR1020130117467 A KR 1020130117467A KR 20130117467 A KR20130117467 A KR 20130117467A KR 102102224 B1 KR102102224 B1 KR 102102224B1
Authority
KR
South Korea
Prior art keywords
page
program operation
dummy
program
boundary
Prior art date
Application number
KR1020130117467A
Other languages
English (en)
Other versions
KR20150039000A (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 KR1020130117467A priority Critical patent/KR102102224B1/ko
Priority to US14/461,581 priority patent/US9378137B2/en
Publication of KR20150039000A publication Critical patent/KR20150039000A/ko
Priority to US15/176,964 priority patent/US9875793B2/en
Application granted granted Critical
Publication of KR102102224B1 publication Critical patent/KR102102224B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/54Link editing before load time
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • 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/5642Sensing or reading circuits; Data output circuits
    • 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
    • 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
    • G11C16/14Circuits for erasing electrically, e.g. erase voltage switching circuits
    • G11C16/16Circuits for erasing electrically, e.g. erase voltage switching circuits for erasing blocks, e.g. arrays, words, groups
    • 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/30Power supply 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages

Abstract

본 발명에 따른 적어도 하나의 비휘발성 메모리 장치 및 상기 적어도 하나의 비휘발성 메모리 장치를 제어하는 메모리 제어기를 포함하는 저장 장치의 프로그램 방법은, 메모리 블록에 제 1 사용자 데이터를 저장하도록 제 1 노멀 프로그램 동작을 수행하는 단계, 더미 데이터를 상기 메모리 블록의 적어도 하나의 페이지에 저장하도록 더미 프로그램 동작을 수행하는 단계, 및 상기 더미 프로그램 동작 이후에 상기 메모리 블록에 제 2 사용자 데이터를 저장하도록 제 2 노멀 프로그램 동작을 수행하는 단계를 포함한다.

Description

저장 장치 및 그것의 프로그램 방법{STORAGE AND PROGRAMMING METHOD THEREOF}
본 발명은 저장 장치 및 그것의 프로그램 방법에 관한 것이다.
반도체 메모리 장치는 일반적으로 DRAM, SRAM 등과 같은 휘발성 메모리 장치와 EEPROM, FRAM, PRAM, MRAM, 플래시 메모리 등과 같은 비휘발성 메모리 장치로 구분할 수 있다. 휘발성 메모리 장치는 전원이 차단될 때 저장된 데이터를 잃지만, 비휘발성 메모리는 전원이 차단되더라도 저장된 데이터를 보존한다. 특히, 플래시 메모리는 높은 프로그래밍 속도, 낮은 전력 소비, 대용량 데이터 저장 등의 장점을 갖는다. 따라서 플래시 메모리를 기반으로 하는 데이터 저장 장치가 광범위하게 사용되고 있다. 플래시 메모리를 기반으로 하는 데이터 저장 장치에는 기존의 하드 디스크를 대체하고 있는 솔리드 스테이트 드라이브(SSD), SD 카드나 MMC 등과 같은 메모리 카드 등이 있다.
본 발명의 목적은 데이터 신뢰성 향상시키고 수명을 연장시키는 저장 장치 및 그것의 프로그램 방법을 제공하는 데 있다.
본 발명의 실시 예에 따른 적어도 하나의 비휘발성 메모리 장치 및 상기 적어도 하나의 비휘발성 메모리 장치를 제어하는 메모리 제어기를 포함하는 저장 장치의 프로그램 방법은: 메모리 블록에 제 1 사용자 데이터를 저장하도록 제 1 노멀 프로그램 동작을 수행하는 단계; 더미 데이터를 상기 메모리 블록의 적어도 하나의 페이지에 저장하도록 더미 프로그램 동작을 수행하는 단계; 및 상기 더미 프로그램 동작 이후에 상기 메모리 블록에 제 2 사용자 데이터를 저장하도록 제 2 노멀 프로그램 동작을 수행하는 단계를 포함한다.
실시 예에 있어서, 상기 제 1 및 제 2 노멀 프로그램 동작들 각각은 멀티-비트 프로그램 동작이다.
실시 예에 있어서, 상기 멀티-비트 프로그램 동작은 재프로그래밍 방식에 의해 수행된다.
실시 예에 있어서, 상기 더미 프로그램 동작은 호스트의 요청에 따라 수행된다.
실시 예에 있어서, 상기 더미 프로그램 동작은 서든 파워 오프 정보에 따라 수행된다.
실시 예에 있어서, 상기 서든 파워 오프 정보는 호스트에 의해 정상적으로 전원이 차단되었음을 알리는 노멀 파워 오프 정보로부터 얻어진다.
실시 예에 있어서, 상기 적어도 하나의 페이지는 서든 파워 오프시 프로그램 동작 중이었던 바운더리 페이지이다.
실시 예에 있어서, 상기 더미 프로그램 동작을 수행하는 단계는, 상기 바운더리 페이지를 검색하는 단계를 더 포함한다.
실시 예에 있어서, 상기 더미 프로그램 동작을 수행하는 단계는, 상기 바운더리 페이지로부터 적어도 하나의 하부 페이지에 프로그램 뎁쓰를 판별하는 단계; 및 상기 프로그램 뎁쓰가 소정의 값 아래이면, 상기 적어도 하나의 하부 페이지에 더미 프로그램 동작을 수행하는 단계를 더 포함한다.
실시 예에 있어서, 상기 제 1 노멀 프로그램 동작은 재프로그래밍 방식으로 수행되고, 상기 프로그램 뎁쓰가 상기 소정의 값 이상이면, 상기 적어도 하나의 하부 페이지에 대한 재프로그램 동작을 완료시키는 단계를 더 포함한다.
실시 예에 있어서, 상기 더미 프로그램 동작을 수행하는 단계는, 상기 바운더리 페이지로부터 적어도 하나의 상부 페이지가 클린 페이지인 지를 판별하는 단계; 및 상기 적어도 하나의 상부 페이지가 상기 클린 페이지가 아닐 때, 상기 적어도 하나의 상부 페이지에 더미 프로그램 동작을 수행하는 단계를 더 포함한다.
실시 예에 있어서, 상기 제 2 노멀 프로그램 동작 이후에 상기 메모리 블록에 다른 더미 프로그램 동작을 수행하는 단계; 및 상기 다른 더미 프로그램 동작 이후에 제 3 사용자 데이터를 저장하도록 제 3 노멀 프로그램 동작을 수행하는 단계를 더 포함한다.
실시 예에 있어서, 상기 더미 데이터는 씨드 값에 의해 발생되는 랜덤 데이터이다.
실시 예에 있어서, 상기 메모리 블록은 복수의 페이지들로 구성되고, 상기 복수의 페이지들 각각은 사용자 데이터를 저장하는 메인 영역과 상기 사용자 데이터를 관리하는 메타 정보를 저장하는 스페어 영역을 포함하고, 상기 스페어 영역은 상기 페이지들 각각에 상기 더미 프로그램 동작이 수행되었는지 여부를 지시하는 정보를 저장한다.
실시 예에 있어서, 상기 더미 프로그램 동작의 프로그램 속도는 상기 제 1 및 제 2 노멀 프로그램 동작들 각각의 프로그램 속도보다 빠르다.
실시 예에 있어서, 패스 전압 디스터번스를 줄이도록, 상기 더미 프로그램 동작의 패스전압은 상기 제 1 및 제 2 노멀 프로그램 동작의 패스전압보다 낮다.
실시 예에 있어서, 상기 제 1 및 제 2 노멀 프로그램 동작들은 상기 제 1 및 제 2 사용자 데이터를 3-비트 메모리 셀들에 저장하고, 상기 더미 프로그램 동작은 상기 더미 데이터를 싱글-비트 메모리 셀들에 저장한다.
본 발명의 실시 예에 따른 비휘발성 메모리 장치의 프로그램 방법은: 서든 파워 오프 발생 이후에 메모리 블록에 최초 클린 워드라인을 검색하는 단계; 상기 최초 클린 워드라인으로부터 하부 워드라인에 관련된 프로그램 뎁쓰를 판별하는 단계; 상기 프로그램 뎁쓰가 소정 값 아래이면, 상기 하부 워드라인에 연결된 메모리 셀들에 더미 프로그램 동작을 수행하는 단계; 상기 최초 클린 워드라인에 연결된 메모리 셀들에 더미 프로그램 동작을 수행하는 단계; 및 상기 최초 클린 워드라인으로부터 적어도 하나의 상부 워드라인에 연결된 메모리 셀들에 이어 쓰기를 진행하는 단계를 포함한다.
실시 예에 있어서, 상기 최초 클린 워드라인을 검색하는 단계는, 복수의 페이지들에 대하여 읽기 전압으로 클린 페이지 읽기 동작을 순차적으로 수행하는 단계; 및 상기 클린 페이지 읽기 전압 보다 높은 문턱전압을 갖는 메모리 셀들의 개수가 소정의 값 아래인 페이지를 클린 페이지로 판별하는 단계를 더 포함한다.
실시 예에 있어서, 상기 더미 프로그램 동작에서 사용되는 더미 데이터를 발생할 때, 상기 최초 클린 워드라인에 대응하는 어드레스를 씨드값으로 이용하는 단계를 더 포함한다.
실시 예에 있어서, 상기 최초 클린 워드라인을 검색하는 단계는, 바이너리 서치를 이용하여 상기 최초 클린 워드라인을 검색하는 단계를 포함한다.
실시 예에 있어서, 상기 최초 클린 워드라인으로부터 적어도 하나의 상부 워드라인에 관련된 페이지가 클린 페이지인 지를 체크하는 단계를 더 포함한다.
실시 예에 있어서, 상기 페이지가 상기 클린 페이지가 아닐 때, 상기 페이지에 더미 프로그램 동작을 수행하는 단계를 더 포함한다.
본 발명의 실시 예에 따른 비휘발성 메모리 장치의 프로그램 방법은: 메모리 블록의 제 1 멀티-레벨 셀들에 제 1 사용자 데이터를 재프로그램 하는 단계; 상기 메모리 블록의 싱글-레벨 셀들에 더미 데이터를 프로그램 하는 단계; 및 상기 메모리 블록의 제 2 멀티-레벨 셀들에 제 2 사용자 데이터를 재프로그램하는 단계를 포함한다.
실시 예에 있어서, 상기 제 1 및 제 2 멀티-레벨 셀들 각각은 3-레벨 셀이다.
실시 예에 있어서, 상기 더미 데이터는 서든 파워 오프 발생 이후 전원 공급시 프로그램된다.
실시 예에 있어서, 상기 더미 데이터를 프로그램 하는 단계는, 상기 메모리 블록으로부터 상기 서든 파워 오프 시 프로그램 진행 중이었던 바운더리 페이지를 검색하는 단계; 및 상기 바운더리 페이지에 상기 더미 데이터를 프로그램 하는 단계를 더 포함한다.
본 발명의 실시 예에 따른 저장 장치는, 복수의 페이지들을 구비한 복수의 메모리 블록을 포함하는 적어도 하나의 비휘발성 메모리 장치; 및 상기 적어도 하나의 비휘발성 메모리 장치를 제어하는 메모리 제어기를 포함하고, 상기 메모리 제어기는, 호스트의 요청 혹은 서든 파워 오프 정보에 따라 바운더리 페이지를 검색하고, 상기 바운더리 페이지에 더미 프로그램 동작을 수행할 지 여부를 결정하는 더미 프로그램 동작 판별기; 및 상기 더미 프로그램 동작이 수행될 때, 더미 데이터를 발생하는 더미 데이터 발생기를 포함한다.
실시 예에 있어서, 상기 더미 프로그램 동작 판별기는 상기 바운더리 페이지로부터 적어도 하나의 하부 페이지의 프로그램 뎁쓰를 체크하거나 상기 바운더리 페이지로부터 적어도 하나의 상부 페이지가 클린 페이지인 지를 체크하고, 상기 프로그램 뎁쓰가 소정의 값 아래이거나 상기 적어도 하나의 페이지가 상기 클린 페이지가 아닐 때, 상기 적어도 하나의 하부 페이지 혹은 상기 적어도 하나의 상부 페이지에 더미 프로그램 동작을 수행하도록 결정한다.
실시 예에 있어서, 상기 저장 장치는 eMMC이다.
본 발명의 다른 실시 예에 따른 비휘발성 메모리 장치의 프로그램 방법은: 제 1 사용자 데이터를 메모리 블록의 적어도 하나의 제 1 페이지에 프로그램하는 단계; 서든 파워 오프 이후에 상기 메모리 블록의 적어도 하나의 페이지에 무의미한 데이터를 프로그램하는 단계; 및 상기 무의미한 데이터를 프로그램 한 뒤에 제 2 사용자 데이터를 상기 메모리 블록의 적어도 하나의 제 2 페이지에 프로그램하는 단계를 포함한다.
상술한 바와 같이 본 발명의 실시 예에 따른 저장 장치 및 그것의 프로그램 방법은 더미 프로그램 동작을 수행한 뒤에 이어 쓰기를 진행할 수 있으므로써, 블록의 소거 동작을 줄이며, 그에 따라 수명을 연장하거나 데이터의 신뢰성을 향상시킬 수 있다.
도 1은 본 발명의 개념을 설명하기 위한 도면이다.
도 2는 본 발명의 실시 예에 따른 저장 장치를 예시적으로 보여주는 도면이다.
도 3은 도 2에 도시된 메모리 블록을 예시적으로 보여주는 도면이다.
도 4는 본 발명의 실시 예에 따른 메모리 블록에 대한 프로그램 동작에 대한 제 1 실시 예를 보여주는 도면이다.
도 5는 본 발명의 실시 예에 따른 메모리 블록에 대한 프로그램 동작에 대한 제 2 실시 예를 보여주는 도면이다.
도 6은 본 발명의 실시 예에 따른 프로그램 뎁쓰를 설명하기 위한 도면이다.
도 7은 본 발명의 실시 예에 따른 메모리 블록에 대한 프로그램 동작에 대한 제 3 실시 예를 보여주는 도면이다.
도 8은 본 발명의 실시 예에 따른 메모리 블록에 대한 프로그램 동작에 대한 제 4 실시 예를 보여주는 도면이다.
도 9는 본 발명의 실시 예에 따른 바운더리 페이지 탐색 및 클린 페이지 탐색을 예시적으로 설명하기 위한 도면이다.
도 10은 본 발명의 실시 예에 따른 페이지 구조를 예시적으로 보여주는 도면이다.
도 11은 본 발명의 실시 예에 따른 저장 장치의 프로그램 방법에 대한 제 1 실시 예를 보여주는 흐름도이다.
도 12는 본 발명의 실시 예에 따른 저장 장치의 프로그램 방법에 대한 제 2 실시 예를 보여주는 흐름도이다.
도 13은 본 발명의 실시 예에 따른 더미 프로그램 동작을 예시적으로 보여주는 흐름도이다.
도 14는 본 발명의 실시 예에 따른 저장 장치의 프로그램 방법에 대한 제 3 실시 예를 보여주는 흐름도이다.
도 15는 본 발명의 실시 예에 따른 저장 장치의 프로그램 방법에 대한 제 4 실시 예를 보여주는 흐름도이다.
도 16은 본 발명의 실시 예에 따른 저장 장치의 프로그램 방법에 대한 제 5 실시 예를 보여주는 흐름도이다.
도 17은 본 발명의 실시 예에 따른 저장 장치에 대한 다른 실시 예를 보여주는 블록도이다.
도 18은 본 발명의 실시 예에 따른 VNAND 블록을 예시적으로 보여주는 도면이다.
도 19 내지 도 22는 본 발명의 응용 예를 예시적으로 설명하는 도면들이다.
아래에서는 도면들을 이용하여 본 발명의 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있을 정도로 본 발명의 내용을 명확하고 상세하게 기재할 것이다.
본 발명의 실시 예에 따른 비휘발성 메모리 장치를 구비한 저장 장치는 더미 프로그램 동작(dummy program operation)을 수행한 뒤에 계속해서 메모리 블록을 사용하는 이어 쓰기(아래에서는 "continuous use"로 설명,혹은 다른 의미에서 "subsequent write" "continuous write")를 제공할 수 있다.
본 발명의 비휘발성 메모리 장치는 낸드 플래시 메모리(NAND Flash Memory), 수직형 낸드 플래시 메모리(Vertical NAND; VNAND), 노아 플래시 메모리(NOR Flash Memory), 저항성 램(Resistive Random Access Memory: RRAM), 상변화 메모리(Phase-Change Memory: PRAM), 자기저항 메모리(Magnetoresistive Random Access Memory: MRAM), 강유전체 메모리(Ferroelectric Random Access Memory: FRAM), 스핀주입 자화반전 메모리(Spin Transfer Torque Random Access Memory: STT-RAM) 등이 될 수 있다. 또한, 비휘발성 메모리 장치는 3차원 어레이 구조(three-dimensional array structure)로 구현될 수 있다. 본 발명은 전하 저장층이 전도성 부유 게이트로 구성된 플래시 메모리 장치는 물론, 전하 저장층이 절연막으로 구성된 차지 트랩형 플래시(charge trap flash; CTF)에도 모두 적용 가능하다. 아래에서는 설명의 편의를 위하여 비휘발성 메모리 장치가 낸드 플래시 메모리 장치라고 하겠다.
도 1은 본 발명의 개념을 설명하기 위한 도면이다. 도 1을 참조하면, 메모리 블록에 노멀 프로그램 동작(Normal PGM)을 수행하다가 특정 이벤트 발생시 더미 프로그램 동작(Dummy PGM)이 수행된다. 더미 프로그램 동작 이후에 메모 블록에 노멀 프로그램 동작을 위한 이어 쓰기(continuous use)가 진행될 수 있다. 여기서 특정 이벤트는 호스트의 요청이거나, 비휘발성 메모리 장치의 서든 파워 오프(sudden power-off; SPO)이거나, 비휘발성 메모리 장치의 관리에 따른 요청일 수 있다.
예를 들어, 본 발명은 메모리 블록에 제 1 사용자 데이터를 저장하도록 제 1 노멀 프로그램 동작을 수행하고, 이후에 더미 데이터를 메모리 블록의 적어도 하나의 페이지에 저장하도록 더미 프로그램 동작을 수행하고, 이후에 메모리 블록에 제 2 사용자 데이터를 저장하도록 제 2 노멀 프로그램 동작을 수행할 수 있다.
여기서 더미 데이터는 무의미한 데이터(meaningless data)일 수 있다. 이런 관점에서, 본 발명은 다음과 같이 해석될 수 있다. 본 발명은 제 1 사용자 데이터를 메모리 블록의 적어도 하나의 제 1 페이지에 프로그램하고, 서든 파워 오프 이후에 메모리 블록의 적어도 하나의 페이지에 무의미한 데이터를 프로그램하고, 무의미한 데이터를 프로그램한 뒤에 제 2 사용자 데이터를 메모리 블록의 적어도 하나의 제 2 페이지에 프로그램할 수 있다.
일반적인 저장 장치는 프로그램 동작 중에 특정 이벤트 발생시 해당 메모리 블록을 더 이상 사용하지 않고 새로운 메모리 블록을 할당하고, 새롭게 할당된 메모리 블록에 사용자 데이터를 저장시키고, 이전 메모리 블록에 소거 동작을 수행한다. 이로 인하여 특정 이벤트 발생에 따른 불필요한 소거 회수가 증가되고 있다.
반면에, 본 발명의 실시 예에 따른 저장 장치는 프로그램 동작에 중에 특정 이벤트가 발생하더라도 새로운 메모리 블록을 할당하지 않고, 더미 프로그램 동작을 수행한 뒤 현재의 메모리 블록을 계속해서 사용할 수 있다. 즉, 이벤트 발생 이전에서 수행되던 프로그램 동작이 이벤트 발생 이후에도 해당 메모리 블록에 이어 쓰기가 진행될 수 있다. 본 발명은 이러한 이어 쓰기를 통하여 불필요한 소거 회수를 줄임으로써, 비휘발성 메모리 장치의 수명(life time)을 연장할 수 있다.
아래에서는 설명의 편의를 위하여 비휘발성 메모리 장치는 낸드 플래시 메모리 장치이고, 특정 이벤트는 서든 파워 오프(sudden power off, 아래에서는 "SPO")라고 가정하겠다.
도 2는 본 발명의 실시 예에 따른 저장 장치를 예시적으로 보여주는 도면이다. 도 2를 참조하면, 저장 장치(10)는 적어도 하나의 비휘발성 메모리 장치(100) 및 그것을 제어하는 메모리 제어기(200)를 포함한다.
비휘발성 메모리 장치(100)는 비휘발성 메모리 장치를 관리하기 위한 관리 정보를 저장하는 메타 영역(111) 및 사용자 데이터를 저장하는 사용자 데이터 영역(112)을 포함한다. 사용자 데이터 영역(112)은 복수의 메모리 블록들(MB1 ~ MBi,i는 2 이상의 정수)를 포함한다.
메타 영역(111)은 사용자 데이터 영역(112)의 메모리 블록들(MB1 ~ MBi) 각각과 동일한 구조의 적어도 하나의 메모리 블록들로 구현될 수 있다. 메타 영역(111)은 노멀 파워 오프(normal power off, "NPO")를 지시하는 전원 정보를 저장할 수 있다. 여기서 전원 정보는 호스트로부터 발행되는 파워 오프 공지(power off notification)에 응답하여 메타 영역(111)의 특정 위치에 저장될 수 있다.
실시 예에 있어서, 저장된 전원 정보를 근거로 하여 비휘발성 메모리 장치(100)의 부팅(booting)이 수행될 수 있다.
실시 예에 있어서, 저장된 전원 정보를 근거로 하여 SPO 정보가 얻어질 수 있다. 예를 들어, 비휘발성 메모리 장치(100)가 파워 오프되었는데, 저장된 전원 정보가 노멀 파워 오프를 지시하지 않을 때, 비휘발성 메모리 장치(100)가 SPO 되었다고 처리할 수 있다.
메모리 제어기(200)는 전원 정보를 근거로 하여 더미 프로그램 동작의 여부를 결정하고, 비휘발성 메모리 장치(100)의 대응하는 적어도 하나의 페이지에 더미 프로그램 동작을 수행시킨다. 메모리 제어기(200)는 더미 프로그램 판별기(220) 및 더미 데이터 발생기(240)를 포함한다.
더미 프로그램 판별기(220)는 메타 영역(111)으로부터 읽혀진 전원 정보를 근거로 하여 SPO인 지를 판별한다. 만일, 비휘발성 메모리 장치(100)가 SPO 되었다면, 더미 프로그램 판별기(220)는 SPO시 프로그램 동작을 수행 중이던 바운더리(boundary) 페이지를 검색한다. 만일, 더미 프로그램 판별기(220)는 바운더리 페이지가 검색 되었다면, 바운더리 페이지에 더미 프로그램 동작이 필요한지를 판별한다.
실시 예에 있어서, 더미 프로그램 동작은, 바운더리 페이지가 검색되더라도 클린 페이지(clean page)의 개수에 따라 수행 여부가 결정될 수 있다. 여기서 클린 페이지는 데이터가 쓰여지지 않은 페이지를 의미한다.
더미 데이터 발생기(240)는 바운더리 페이지에 더미 프로그램 동작이 필요하다고 결정될 때 랜덤 데이터(random data 혹은 meaningless data)를 발생시킨다. 실시 예에 있어서, 랜덤 데이터는 바운더리 페이지에 대응하는 어드레스(물리 어드레스 혹은 물리 어드레스)를 씨드 값으로 이용하여 발생될 수 있다.
메모리 제어기(200)는 더미 프로그램 동작이 결정될 때 프로그램 명령, 바운더리 페이지에 대응하는 어드레스 및 더미 데이터를 비휘발성 메모리 장치(100)로 전송할 것이다.
일반적인 저장 장치는 SPO시 프로그램 동작 중이던 메모리 블록은 더 이상 사용하지 않고 새로운 메모리 블록을 할당하여 이전 프로그램 동작을 진행하였다. 이로 인하여, 메모리 블록에 클린 페이지들이 많이 존재하더라도, 소거 동작이 수행되어야 했다. 그 결과 메모리 블록의 수명이 단축되는 문제점이 야기된다.
반면에, 본 발명의 실시 예에 따른 저장 장치(10)는 SPO시 메모리 블록의 바운더리 페이지를 찾고, 바운더리 페이지에 더미 프로그램 동작을 수행함으로써, 메모리 블록의 존재하는 클린 페이지들에 이어 쓰기를 진행할 수 있다. 이에, 메모리 블록에 프로그램된 기존 데이터를 보장하면서, 불필요한 소거 동작을 방지함으로써, 메모리 블록의 수명이 개선될 수 있다.
도 3은 도 2에 도시된 메모리 블록을 예시적으로 보여주는 도면이다. 도 3를 참조하면, 메모리 블록(MB)은 복수의 비트라인들(BL1 ~ BLn, n는 2 이상의 정수)에 연결된 스트링들을 포함한다. 여기서 스트링들 각각은 비트라인과 공통 소스 라인(common source line; CSL) 사이에 직렬 연결된 적어도 하나의 스트링 선택 트랜지스터(SST), 복수의 메모리 셀들(MC1 ~ MCm, m은 2 이상의 정수), 적어도 하나의 접지 선택 트랜지스터(GST)를 포함한다. 메모리 셀들(MC1 ~ MCm) 각각은 적어도 하나의 비트 이상의 데이터를 저장할 수 있다.
워드라인들(WL1 ~ WLm) 각각에는 복수의 메모리 셀들이 연결될 수 있다. 워드라인들(WL1 ~ WLm) 각각에 연결된 복수의 메모리 셀들을 통칭하여 페이지라 부른다. 워드라인들(WL1 ~ WLm) 각각에는 구동에 필요한 워드라인 전압들(프로그램 전압, 패스 전압, 읽기 전압, 읽기 패스 전압, 등)이 인가될 수 있다. 스트링 선택 라인(SSL)에는 스트링 선택 트랜지스터(SST)를 제어하기 위한 스트링 선택 전압이 인가될 수 있다. 접지 선택 라인(GSL)에는 접지 선택 트랜지스터(GST)를 제어하기 위한 접지 선택 전압이 인가될 수 있다.
본 발명은 WLm-3에 연결된 페이지(바운더리 페이지)에 대한 프로그램 동작 중에 SPO가 발생 될 때, 바운더리 페이지로부터 상부 워드라인들(WLm-2, WLm-1, WLm)에 연결된 페이지들에 이어 쓰기를 진행할 수 있다.
도 4는 본 발명의 실시 예에 따른 메모리 블록에 대한 프로그램 동작에 대한 제 1 실시 예를 보여주는 도면이다. 설명의 편의를 위하여 SPO에 의하여 바운더리 페이지가 야기된다고 가정하겠다. 도 4를 참조하면, 바운더리 페이지 아래에는 노멀 프로그램 동작을 수행한 노멀 데이터 페이지들 배치된다. 바운더리 페이지에 더미 프로그램 동작이 수행됨으로써, 더미 데이터 페이지가 발생될 것이다. 바운더리 페이지 상부에는 데이터가 쓰여지지 않은 클린 페이지들이 배치될 것이다. 클린 페이지들에는 노멀 프로그램 동작을 위한 이어 쓰기가 진행될 수 있다.
실시 예에 있어서, 노멀 프로그램 동작은 멀티-비트 프로그램 동작일 수 있다. 여기서 멀티-비트 프로그램 동작은 재프로그래밍 방식에 의해 수행될 수 있다.
실시 예에 있어서, 더미 프로그램 동작은 싱글-비트 프로그램 동작이거나 멀티-비트 프로그램 동작일 수 있다. 실시 예에 있어서, 더미 프로그램 동작의 프로그램 속도는 노멀 프로그램 동작의 그것보다 빠를 수 있다.
본 발명은 바운더리 페이지에 더미 프로그램 동작을 수행한 뒤에, 바운더리 페이지 상부에 위치한 클린 페이지들에 계속적으로 노멀 프로그램 동작을 수행할 수 있다.
한편, 도 4에서 바운더리 페이지에 더미 프로그램 동작이 수행되었다. 본 발명은 여기에 제한되지 않을 것이다. 바운더리 페이지 아래의 하부 페이지에도 더미 프로그램 동작이 수행될 수 있다.
도 5는 본 발명의 실시 예에 따른 메모리 블록에 대한 프로그램 동작에 대한 제 2 실시 예를 보여주는 도면이다. 도 5를 참조하면, 바운더리 페이지 및 바운더리 페이지로부터 하부 페이지에 더미 프로그램 동작이 수행될 것이다. 이후 클린 페이지들에는 노멀 프로그램 동작을 위한 이어 쓰기가 진행될 수 있다.
실시 예에 있어서, 바운더리 페이지 아래의 페이지에 대한 더미 프로그램 동작 여부는, 프로그램 뎁쓰(program depth)에 따라 결정될 수 있다. 여기서 프로그램 뎁쓰는 재프로그래밍(reprograming) 혹은 새도우(shadow) 방식에서(1st Step ==> 2nd Step ==> 3rd PGM) 워드라인에 연결된 메모리 셀들에 프로그램된 정도를 지시할 수 있다.
도 5에서는 바운더리 페이지 아래의 하나의 페이지에만 더미 프로그램 동작을 수행하였다. 하지만 본 발명이 여기에 제한되지 않을 것이다. 본 발명은 바운더리 페이지 아래에 복수의 하부 페이지들에 더미 프로그램 동작을 수행할 수 있다.
본 발명은 바운더리 페이지로부터 적어도 하나의 하부 페이지에 더미 프로그램 동작을 수행할 수 있다.
도 6은 본 발명의 실시 예에 따른 프로그램 뎁쓰를 설명하기 위한 도면이다. 본 발명은 제 1 단계 프로그램 동작(1st Step)에서 제 2 단계 프로그램 동작(2nd Step)으로, 제 2 단계 프로그램 동작(2nd Step)에서 제 3 단계 프로그램 동작(3nd Step)으로 진행되는 재프로그래밍 방식에 따라 프로그램 동작이 수행된다고 가정하겠다. 도 6을 참조하면, 제 5 워드라인(WL5)에 대한 제 1 단계 프로그램 동작(1st Step) 중에 SPO가 발생 되었다고 가정하겠다. 이때 제 5 워드라인(WL5)에 연결된 메모리 셀들에 약하게 프로그램 동작이 진행되었을 것이다.
한편, 본 발명의 프로그램 동작이 반드시 재프로그램 방식으로 수행된다고 제한될 필요는 없다. 본 발명의 프로그램 동작은 새도우(shadow) 프로그램 방식으로 수행될 수 있다. 이때, 제 1 단계 프로그램 동작(1st Step)은 싱글 레벨 셀 프로그램 동작이고, 제 2 단계 프로그램 동작(2nd Step)은 투 레벨 셀 프로그램 동작이고, 제 3 단계 프로그램 동작(3nd Step)은 쓰리 레벨 셀 프로그램 동작일 수 있다.
한편, 프로그램 뎁쓰는 프로그램 동작의 단계가 높아질수록 깊어진다. 제 1 및 제 2 워드라인들(WL1, WL3)의 프로그램 뎁쓰들은, 도 6에 도시된 바와 같이, 제 3 단계 프로그램 동작(3rd Step)까지 모두 진행된 상태로서 상대적으로 깊다.
제 3 워드라인(WL3)의 프로그램 뎁쓰는, 도 6에 도시된 바와 같이, 제 2 단계 프로그램 동작(2nd Step)까지 모두 진행된 상태로서 상대적으로 양호한 편이다. 실시 예에 있어서, 더미 프로그램 동작 전에 제 3 워드라인(WL3)의 제 3 단계 프로그램 동작(3rd Step), 즉 파인 프로그램 동작(fine program)이 수행될 수 있다.
제 4 워드라인(WL4)의 프로그램 뎁쓰는, 도 6에 도시된 바와 같이, 제 1 단계 프로그램 동작(1st step)만 진행된 상태로서 상대적으로 얇다. 실시 예에 있어서, 제 4 워드라인(WL4)에 대응하는 페이지에 더미 프로그램 동작이 수행될 수 있다.
SPO 발생으로 제 5 워드라인(WL5)에 대응하는 페이지는 바운더리 페이지가 될 것이다. 바운더리 페이지에는 이어 쓰기를 위한 더미 프로그램 동작이 수행될 것이다. 이후, 제 5 워드라인(WL5)의 상부 워드라인, 즉 제 6 워드라인(WL6)부터는 클린 페이지로써, 이어 쓰기가 진행될 수 있다.
실시 예에 있어서, 워드라인들에 대한 프로그램 뎁쓰는 메타 영역(111)에 저장된 맵테이블 정보로부터 알 수 있다.
본 발명은 프로그램 뎁쓰에 따라 더미 프로그램 동작 여부를 결정할 수 있다.
한편, 도 5 및 도 6에서는 바운더리 페이지 아래의 하부 페이지에 대한 더미 프로그램 동작을 수행하였다. 하지만 본 발명이 여기에 제한되지 않으며, 본 발명은 바운더리 페이지로부터 적어도 하나의 상부 페이지에도 더미 프로그램 동작을 수행할 수 있다.
도 7은 본 발명의 실시 예에 따른 메모리 블록에 대한 프로그램 동작에 대한 제 3 실시 예를 보여주는 도면이다. 도 7을 참조하면, 바운더리 페이지 및 바운더리 페이지로부터 상부 페이지에 더미 프로그램 동작이 수행될 것이다. 이후 클린 페이지들에는 노멀 프로그램 동작을 위한 이어 쓰기가 진행될 수 있다.
실시 예에 있어서, 바운더리 페이지로부터 소정 개수의 상부 페이지들에 조건없이 더미 프로그램 동작이 수행될 수 있다.
다른 실시 예에 있어서, 바운더리 페이지로부터 적어도 하나의 상부 페이지가 클린 페이지인 지 체크를 한 뒤, 상부 페이지가 클린 페이지가 아니라면 더미 프로그램 동작이 수행될 수 있다.
도 7에서는 바운더리 페이지로부터 하나의 상부 페이지만 더미 프로그램 동작이 수행되었다. 하지만 본 발명은 여기에 제한되지 않을 것이다. 본 발명은 바운더리 페이지로부터 복수의 상부 페이지들에 더미 프로그램 동작을 수행할 수 있다.
한편, 도 5 내지 도 7에서는 하나의 블록에 하나의 이어 쓰기만을 기술하였다. 하지만, 본 발명이 여기에 제한되지 않을 것이다. 본 발명은 하나의 블록에 복수의 이어 쓰기를 진행할 수 있다.
도 8은 본 발명의 실시 예에 따른 메모리 블록에 대한 프로그램 동작에 대한 제 4 실시 예를 보여주는 도면이다. 도 8을 참조하면, 제 1 서든 파워 오프(SPO1)에 의해 야기되는 제 1 바운더리 페이지에 더미 프로그램 동작이 수행된 후, 1차적인 이어 쓰기가 진행될 수 있다. 이후, 제 2 서든 파워 오프(SPO2)에 의해 야기되는 제 2 바운더리 페이지에 더미 프로그램 동작이 수행된 후, 2차적인 이어 쓰기가 진행될 수 있다.
본 발명은 하나의 메모리 블록에서 여러 번의 이어 쓰기를 진행할 수 있다.
도 9는 본 발명의 실시 예에 따른 바운더리 페이지 탐색 및 클린 페이지 탐색을 예시적으로 설명하기 위한 도면이다. 설명의 편의를 위하여 본 발명은 3-비트 메모리 셀에 프로그램된다고 가정하겠다. 즉, 도 9에 도시된 바와 같이, 프로그램 동작에 따라 데이터를 저장하기 위하여 소거 상태(E) 및 프로그램 상태들(P1 ~ P7) 중 어느 하나로 메모리 셀의 문턱전압이 변경될 것이다.
메모리 블록에 바운더리 페이지를 검색하기 위하여 바운더리 페이지 읽기 전압(R_BP)이 이용될 수 있다. 즉, 메모리 블록의 워드라인들로 바운더리 페이지 읽기 전압(R_BP)을 인가하여 읽기 동작들을 순차적으로 수행함으로써, 바운더리 페이지가 검색될 수 있다. 예를 들어, 바운더리 페이지 읽기 동작시 바운더리 페이지 읽기 전압(R_BP) 보다 문턱전압이 높은 메모리 셀들의 개수가 소정의 값 아래인 워드라인에 대응하는 페이지는 바운더리 페이지로 판별될 수 있다.
메모리 블록에 클린 페이지를 검색하기 위하여 클린 페이지 읽기 전압(R_CP)이 이용될 수 있다. 즉, 바운더리 페이지 위의 워드라인들 중 소정의 개수에 대하여 클린 페이지 읽기 전압(R_CP)을 인가하여 읽기 동작들을 순차적으로 수행함으로써, 클린 페이지가 검색될 수 있다. 예를 들어, 읽기 동작시 클린 페이지 읽기 전압(R_CP) 보다 문턱전압이 높은 메모리 셀들의 개수가 소정의 값 아래인 워드라인에 대응하는 페이지는 클린 페이지로 판별될 수 있다.
실시 예에 있어서, 클린 페이지 읽기 전압(R_CP)은 바운더리 페이지 읽기 전압(R_BP)보다 낮을 것이다.
도 10은 본 발명의 실시 예에 따른 페이지 구조를 예시적으로 보여주는 도면이다. 도 10을 참조하면, 페이지는 사용자 데이터를 저장하는 메인 영역과 사용자 데이터를 관리하기 위한 관리 정보를 저장하는 스페어 영역으로 구분될 수 있다. 여기서 스페어 영역은 페이지에 더미 프로그램 동작이 수행되었는 지 여부를 알려주는 정보를 저장할 수 있다. 따라서, 어느 하나의 페이지가 더미 데이터 페이지인지에 대한 판별은 읽기 동작에 의해 결정될 수 있다.
한편, 본 발명의 스페어 영역에는 반드시 더미 프로그램 동작 수행 여부를 저장할 필요는 없다. 본 발명의 더미 데이터는 읽기 동작이 필요하지 않은 무의미한 데이터이기 때문에 스페어 영역의 데이터 역시 무의미한 데이터로 구성될 수도 있다.
도 11은 본 발명의 실시 예에 따른 저장 장치(10)의 프로그램 방법에 대한 제 1 실시 예를 보여주는 흐름도이다. 도 2 내지 도 10, 및 도 11을 참조하면, 프로그램 방법은 다음과 같다.
저장 장치(10)가 전원 공급시 이전에 SPO가 발생되었다는 것을 인지하면, 프로그램 동작이 진행 중이었던 메모리 블록에서 바운더리 페이지를 검색하기 위한 바운더리 검색 동작이 수행될 수 있다. 여기서 바운더리 페이지 검색 동작은 도 9에 설명된 바와 같이 진행될 수 있다(S110). 바운더리 페이지가 검색된 후, 바운더리 페이지 상부의 적어도 하나의 클린 페이지 상태를 체크하기 위한 클린 페이지 검색 동작이 수행될 수 있다. 여기서 클린 페이지 검색 동작은 도 9에서 설명된 바와 같이 진행될 수 있다(S120).
바운더리 페이지에 더미 프로그램 동작이 수행될 수 있다(S130). 이때, 프로그램 뎁쓰에 따라 바운더리 페이지 아래의 페이지에 더미 프로그램 동작이 수행되거나, 클린 페이지의 상태에 따라 바운더리 페이지 위의 페이지에 더미 프로그램 동작이 수행될 수도 있다. 실시 예에 있어서, 클린 페이지 검색 동작에서 클린 페이지의 상태가 좋지 않다면 더미 프로그램 동작이 수행되지 않을 수 있다. 더미 프로그램 동작이 수행된 후, 클린 페이지에 대한 이어 쓰기가 진행될 것이다(S140).
본 발명의 실시 예에 따른 프로그램 방법은 바운더리 페이지에 더미 프로그램 동작을 수행한 뒤에 클린 페이지들에 이어 쓰기를 진행할 수 있다.
한편, 도 11에서는 더미 프로그램 동작을 수행하기 전에 바운더리 페이지를 검색하였다. 그러나 본 발명이 반드시 바운더리 페이지를 검색할 필요는 없다. 본 발명은 최초 클린 페이지(initial clean page)를 검색한 뒤에 더미 프로그램 동작을 수행할 수도 있다. 이는 최초 클린 페이지의 이전 페이지가 바운더리 페이지로 결정될 수 있기 때문이다.
도 12는 본 발명의 실시 예에 따른 저장 장치(10)의 프로그램 방법에 대한 제 2 실시 예를 보여주는 흐름도이다. 도 2 내지 도 10 및 도 12를 참조하면, 프로그램 방법은 다음과 같다.
타겟 메모리 블록에 대한 바이너리 검색(binary searching)에 의하여 최초 클린 워드라인이 결정될 수 있다(S210). 예를 들어, 최초 클린 워드라인은, 도 9에 설명된 바와 같은 워드라인들에 대한 클린 페이지 검색 동작으로 결정될 수 있다(S210). 이때 바운더리 페이지는 최초 클린 워드라인로부터 아래 워드라인에 대응하는 페이지일 가능성이 높다. 아래 워드라인의 프로그램 뎁쓰가 제 1 단계 프로그램 동작의 그것보다 큰 것인지 판별될 수 있다(S220).
만일, 최초 클린 워드라인로부터 아래 워드라인의 프로그램 뎁쓰가 제 1 단계 프로그램 동작의 그것보다 크지 않다면, 아래 워드라인에 대한 더미 프로그램 동작이 수행될 것이다(S230).이후, 최초 클린 워드라인에 대한 더미 프로그램 동작이 수행될 것이다(S240). 반면에, 최초 클린 워드라인로부터 아래 워드라인의 프로그램 뎁쓰가 제 1 단계 프로그램 동작의 그것보다 크다면, 아래 워드라인에 대한 더미 프로그램 동작은 수행되지 않고, S240 단계가 진행될 것이다. 이후, 최초 클린 페이지 상부의 클린 페이지들에 대한 이어 쓰기가 진행될 것이다(S250).
본 발명의 실시 예에 따른 프로그램 방법은 검색된 최초 클린 워드라인에 대한 더미 프로그램 동작을 수행한 뒤에 클린 페이지들에 이어 쓰기를 진행할 수 있다.
도 13은 본 발명의 실시 예에 따른 더미 프로그램 동작을 예시적으로 보여주는 흐름도이다. 도 13을 참조하면, 더미 프로그램 동작은 다음과 같다.
메모리 제어기(도 1 참조, 200)는 더미 프로그램 동작이 필요한 지를 판별한다. 만일 더미 프로그램 동작이 필요하다면, 더미 프로그램 명령이 발행되고, 더미 데이터가 발생될 수 있다(S310). 실시 예에 있어서, 더미 프로그램 명령은 특정한 프로그램 명령일 수 있다. 다른 실시 예에 있어서, 더미 프로그램 명령은 노멀 프로그램 명령일 수 있다. 실시 예에 있어서, 더미 데이터는 바운더리 페이지에 대응하는 어드레스를 씨드 값으로 이용하는 랜덤 데이터일 수 있다.
비휘발성 메모리 장치(100, 도 1 참조)는 더미 프로그램 명령, 바운더리 페이지에 대응하는 어드레스, 더미 데이터를 입력 받고, 바운더리 페이지(들)에 더미 프로그램 동작을 수행한다.
본 발명의 실시 예에 따른 더미 프로그램 동작은 더미 데이터를 발생하고, 발생된 더미 데이터를 바운더리 페이지에 프로그램시킨다.
한편, 본 발명은 노멀 프로그램 동작의 프로그램 속도보다 빠르게 더미 데이터를 프로그램 시킬 수 있다.
도 14는 본 발명의 실시 예에 따른 저장 장치(10)의 프로그램 방법에 대한 제 3 실시 예를 보여주는 흐름도이다. 도 2 내지 도 10 및 도 14를 참조하면, 프로그램 방법은 다음과 같다.
노멀 프로그램 모드로 제 1 워드라인에 연결된 메모리 셀들에 노멀 데이터가 프로그램될 것이다(S410). 이후, 제 1 워드라인 위에 위치한 제 2 워드라인에 대한 프로그램 동작 중 SPO가 발생될 때, 스피드 프로그램 모드로 제 2 워드라인에 연결된 메모리 셀들(예를 들어, 바운더리 페이지)에 더미 데이터가 프로그램될 수 있다(S420). 여기서 스피드 프로그램 모드는 노멀 프로그램 모드보다 프로그램 속도가 빠르다.
실시 예에 있어서, 스피드 프로그램 모드는 SLC(single level cell) 프로그램 동작 모드이고, 노멀 프로그램 모드는 MLC(multi level cell) 프로그램 동작 모드일 수 있다. 다른 실시 예에 있어서, 스피드 프로그램 모드는 검증 동작이 스킵된 SLC/MLC 프로그램 동작 모드일 수 있다. 이후, 제 2 워드라인 위에 위치한 제 3 워드라인에 연결된 메모리 셀들(예를 들어, 클린 페이지)에 노멀 데이터가 프로그램 될 것이다(S430).
본 발명의 실시 예에 따른 프로그램 방법은 프로그램 속도가 빠른 스피드 프로그램 모드로 더미 프로그램 동작을 수행할 수 있다.
한편, 본 발명은 더미 프로그램 동작 시 더미 데이터에 대한 신뢰성을 확보할 필요가 없다. 따라서 본 발명은 더미 데이터의 신뢰성이 낮아지더라도 비선택 워드라인에 대응하는 패스 전압 디스터번스를 줄이도록 더미 프로그램 동작을 수행할 수 있다.
도 15는 본 발명의 실시 예에 따른 저장 장치(10)의 프로그램 방법에 대한 제 4 실시 예를 보여주는 흐름도이다. 도 2 내지 도 10 및 도 15를 참조하면, 프로그램 방법은 다음과 같다.
제 1 워드라인에 연결된 메모리 셀들에 노멀 데이터가 프로그램될 수 있다(S510). 이후, 제 1 워드라인 위에 위치한 제 2 워드라인에 대한 프로그램 동작 중 SPO가 발생될 때, 제 2 워드라인에 연결된 메모리 셀들(예를 들어, 바운더리 페이지)에 더미 데이터가 프로그램될 수 있다. 이때, 패스 전압 디스터번스를 줄이도록 하기 위하여 비선택 워드라인들에 노멀 프로그램 동작보다 낮은 패스 전압이 인가될 수 있다(S520). 이후, 제 2 워드라인 위에 위치한 제 3 워드라인에 연결된 메모리 셀들(예를 들어, 클린 페이지)에 노멀 데이터가 프로그램 될 수 있다(S530).
본 발명의 실시 예에 따른 프로그램 방법은 패스 전압 디스터번스를 줄이도록 더미 프로그램 동작을 수행할 수 있다.
한편, 본 발명은 재프로그램 동작에 적용 가능하다.
도 16은 본 발명의 실시 예에 따른 저장 장치(10)의 프로그램 방법에 대한 제 5 실시 예를 보여주는 흐름도이다. 도 2 내지 도 10 및 도 16를 참조하면, 프로그램 방법은 다음과 같다.
TLCs(triple level cells)에 노멀 데이터가 재프로그램 될 수 있다(S610). SPO 발생 이후에, SLCs(single level cells)에 더미 데이터가 프로그램 될 수 있다(S620). 여기서 SLCs는 바운더리 페이지에 포함된 메모리 셀들일 수 있다. 더미 데이터 프로그램 동작 이후에, TLCs에 노멀 데이터가 재프로그램될 수 있다(S630).
본 발명의 실시 예에 따른 프로그램 방법은 TLC 재프로그램 동작으로 노멀 데이터를 프로그램하면서 SLC 프로그램 동작으로 더미 데이터를 프로그램할 수 있다.
도 2 내지 도 16에서는 서든 파워 오프 발생시 프로그램 동작에 대하여 설명하였다. 그러나 본 발명이 반드시 서든 파워 오프 발생시에만 제한되지 않을 것이다. 본 발명은 다양한 조건들 중 어느 하나에 의거하여 더미 프로그램 동작 여부를 결정할 수 있다.
도 17은 본 발명의 실시 예에 따른 저장 장치에 대한 다른 실시 예를 보여주는 블록도이다. 도 17를 참조하면 저장 장치(20)는 적어도 하나의 비휘발성 메모리 장치(100a) 및 그것을 제어하는 메모리 제어기(200a)를 포함한다.
메모리 제어기(200a)는 더미 프로그램 판별기(220a) 및 더미 데이터 발생기(240)를 포함한다. 더미 프로그램 판별기(220a)는 호스트의 요청 혹은 프로그램 동작시 부스팅 효율을 높일 필요성이 있다면 해당 페이지에 대한 더미 프로그램 동작을 결정할 수 있다. 더미 데이터 발생기(240)는 랜덤 데이터 발생기일 수 있다.
본 발명의 실시 예에 따른 저장 장치(20)는 외부의 요청 혹은 내부적인 결정에 의하여 더미 프로그램 동작의 수행 여부를 결정할 수 있다.
본 발명은 VNAND에 적용 가능하다.
도 18은 본 발명의 실시 예에 따른 VNAND 블록을 예시적으로 보여주는 도면이다. 도 18을 참조하면, 기판(111) 위에 4개의 서브 블록들이 형성된다. 각각의 서브 블록들은 기판 위에 워드라인 컷들 사이에 적어도 하나의 접지 선택 라인(GSL), 복수의 워드라인들(WLs), 적어도 하나의 스트링 선택 라인(SSL)이 판 형태로 적층됨으로써 형성된다. 여기서 적어도 하나의 스트링 선택 라인(SSL)은 스트링 선택 라인 컷으로 분리된다. 여기서 각각의 워드라인 컷들은, 도시되지 않았지만 공통 소스 라인(Common Source Line: CSL)을 포함한다. 실시 예에 있어서, 각각의 워드라인 컷에 포함된 공통 소스 라인(CSL)은 공통으로 연결된다. 비트라인에 연결된 필라(113)가 적어도 하나의 접지 선택 라인(GSL), 복수의 워드라인들(WLs), 적어도 하나의 스트링 선택 라인(SSL)을 관통함으로써, 스트링이 형성된다.
도 18에서는 워드라인 컷들 사이의 대상을 서브 블록으로 도시하였는데, 본 발명이 반드시 여기에 제한되지 않는다. 본 발명의 서브 블록은 워드라인 컷과 스트링 선택 라인 컷 사이의 대상을 서브 블록으로 명명할 수 있다.
본 발명의 실시 예에 따른 블록(MBi)은 두 개의 워드라인들이 하나로 병합된 구조, 다른 말로 워드라인 병합 구조(merged wordline structure)로 구현될 수 있다.
본 발명은 SSD(solid state drive)에 적용 가능하다.
도 19는 본 발명의 실시 예에 따른 SSD를 예시적으로 보여주는 메모리 블록도이다. 도 19를 참조하면, SSD(1000)는 복수의 비휘발성 메모리 장치들(1100) 및 SSD 제어기(1200)를 포함한다.
비휘발성 메모리 장치들(1100)은 옵션적으로 외부 고전압(Vpp)을 제공받도록 구현될 수 있다.
SSD 제어기(1200)는 복수의 채널들(CH1 ~ CHi, i는 2 이상의 정수)을 통하여 비휘발성 메모리 장치들(1100)에 연결된다. SSD 제어기(1200)는 적어도 하나의 프로세서(1210), 버퍼 메모리(1220), 에러 정정 회로(1230), 랜덤 데이터 발생기(1240), 호스트 인터페이스(1250) 및 비휘발성 메모리 인터페이스(1260)를 포함한다. SSD 제어기(1200)는 메모리 블록에 대한 더미 프로그램 동작 여부를 결정하고, 더미 프로그램 동작 이후 이어 쓰기를 하도록 구현될 수 있다.
버퍼 메모리(1220)는 메모리 제어기(1200)의 구동에 필요한 데이터를 임시로 저장할 것이다. 버퍼 메모리(1220)는 데이터 혹은 명령을 저장하는 복수의 메모리 라인들을 포함할 수 있다. 또한, 도 19에서 버퍼 메모리(1220)는 SSD 제어기(1200) 내부에 존재하지만, 반드시 여기에 제한되지 않을 것이다. 버퍼 메모리는 SSD 제어기(1200)의 외부에 별도로 존재할 수도 있다.
에러 정정 회로(1230)는 쓰기 동작에서 프로그램될 데이터의 에러 정정 코드 값을 계산하고, 읽기 동작에서 읽혀진 데이터를 에러 정정 코드 값에 근거로 하여 에러 정정하고, 데이터 복구 동작에서 비휘발성 메모리 장치(1100)로부터 복구된 데이터의 에러를 정정할 수 있다. 도시되지 않았지만, 메모리 제어기(1200)를 구동하는 데 필요한 코드 데이터를 저장하는 코드 메모리가 더 포함될 수 있다. 코드 메모리는 비휘발성 메모리 장치로 구현될 수 있다.
랜덤 데이터 발생기(1240)는 씨드 값을 이용하여 랜덤 데이터를 발생할 숭 있다. 특히, 랜덤 데이터 발생기(1240)는 더미 프로그램 동작이 수행되는 어드레스를 씨드 값으로 이용하여 더미 데이터를 발생할 수 있다.
호스트 인터페이스(1250)는 외부의 장치와 인터페이스 기능을 제공할 수 있다. 비휘발성 메모리 인터페이스(1260)는 비휘발성 메모리 장치(1100)와 인터페이스 기능을 제공할 수 있다.
본 발명의 실시 예에 따른 SSD(1000)는 어드레스에 따라 SI 라인들(SIs)의 자유도를 증가시킴으로써, 인터페이스 레이아웃의 면적을 크게 줄일 수 있다.
본 발명은 eMMC(embedded multimedia card, moviNAND, iNAND)에도 적용 가능하다.
도 20은 본 발명의 실시 예에 따른 eMMC를 예시적으로 보여주는 메모리 블록도이다. 도 20을 참조하면, eMMC(2000)는 적어도 하나의 낸드 플래시 메모리 장치(2100) 및 제어기(2200)를 포함할 수 있다.
낸드 플래시 메모리 장치(2100)는 도 1에 도시된 바와 같이 이어 쓰기가 가능한 메모리 블록들을 구비할 수 있다.
메모리 제어기(2200)는 복수의 채널들을 통하여 낸드 플래시 메모리 장치(2100)에 연결된다. 메모리 제어기(2200)는 적어도 하나의 제어기 코어(2210), 호스트 인터페이스(2250) 및 낸드 인터페이스(2260)를 포함한다. 적어도 하나의 제어기 코어(2210)는 eMMC(2000)의 전반적인 동작을 제어한다. 호스트 인터페이스(2250)는 제어기(2210)와 호스트의 인터페이싱을 수행한다. 낸드 인터페이스(2260)는 낸드 플래시 메모리 장치(2100)와 제어기(2200)의 인터페이싱을 수행한다. 실시 예에 있어서, 호스트 인터페이스(2250)는 병렬 인터페이스(예를 들어, MMC 인터페이스)일 수 있다. 다른 실시 예에 있어서, eMMC(2000)의 호스트 인터페이스(2250)는 직렬 인터페이스(예를 들어, UHS-II, UFS 인터페이스)일 수 있다.
메모리 제어기(2200)는 이어 쓰기를 할 수 있도록 바운더리 페이지를 검색하고, 검색된 바운더리 페이지에 더미 프로그램 동작을 수행하도록 구현될 수 있다.
eMMC(2000)는 호스트로부터 전원 전압들(Vcc, Vccq)을 제공받는다. 여기서, 제 1 전원 전압(Vcc, 예를 들어 3.3V)은 낸드 플래시 메모리 장치(2100) 및 낸드 인터페이스(2260)에 제공되고, 제 2 전원 전압(Vccq, 예를 들어 1.8V/3.3V)은 제어기(2200)에 제공된다. 실시 예에 있어서, eMMC(2000)는 외부 고전압(Vpp)을 옵션적으로 제공받을 수 있다.
본 발명의 실시 예에 따른 eMMC(2000)는 이어 쓰기가 가능함으로써 데이터의 신뢰성 및 수명 향상을 꾀할 수 있다.
본 발명은 UFS(uiversal flash storage)에도 적용 가능하다.
도 21은 본 발명의 실시 예에 따른 UFS 시스템을 예시적으로 보여주는 메모리 블록도이다. 도 21을 참조하면, UFS 시스템(3000)은 UFS 호스트(3100), UFS 장치들(3200, 3300), 임베디드 UFS 장치(3300), 착탈형 UFS 카드(3400)를 포함할 수 있다. UFS 호스트(3100)는 모바일 장치의 어플리케이션 프로세서일 수 있다. UFS 호스트(3100), UFS 장치들(3200, 3300), 임베디드 UFS 장치(3300), 및 착탈형 UFS 카드(3400) 각각은 UFS 프로토콜에 의하여 외부의 장치들과 통신할 수 있다. UFS 장치들(3200, 3300), 임베디드 UFS 장치(3300), 및 착탈형 UFS 카드(3400) 중 적어도 하나는 도 2에 도시된 저장 장치(10) 및 도 17에 도시된 저장 장치(20) 중 어느 하나를 포함할 수 있다.
한편, 임베디드 UFS 장치(3300)와 착탈형 UFS 카드(3400)는 UFS 프로토콜이 아닌 다른 프로토콜에 의해 통신할 수 있다. UFS 호스트(3100)와 착탈형 UFS 카드(3400)는 다양한 카드 프로토콜(예를 들어, UFDs, MMC,SD(secure digital), mini SD, Micro SD 등)에 의해 통신할 수 있다.
본 발명은 모바일 장치에도 적용 가능하다.
도 22는 본 발명의 실시 예에 따른 모바일 장치(4000)를 예시적으로 보여주는 메모리 블록도이다. 도 22를 참조하면, 모바일 장치(4000)는 어플리케이션 프로세서(4100), 통신 모듈(4200), 디스플레이/터치 모듈(4300), 저장 장치(4400), 및 모바일 램(4500)를 포함한다.
어플리케이션 프로세서(4100)는 모바일 장치(4000)의 전반적인 동작을 제어한다. 통신 모듈(4200)은 외부와의 유선/무선 통신을 제어하도록 구현될 것이다. 디스플레이/터치 모듈(4300)은 어플리케이션 프로세서(4100)에서 처리된 데이터를 디스플레이 하거나, 터치 패널로부터 데이터를 입력 받도록 구현될 것이다. 저장 장치(4400)는 사용자의 데이터를 저장하도록 구현될 것이다. 저장 장치(4400)는 eMMC, SSD, UFS 장치일 수 있다. 저장 장치(4400)는 도 2에 도시된 저장 장치(10) 및 도 17에 도시된 저장 장치(20) 중 어느 하나를 포함할 수 있다.
모바일 램(4500)은 모바일 장치(4000)의 처리 동작 시 필요한 데이터를 임시로 저장하도록 구현될 수 있다.
본 발명의 실시 예에 따른 모바일 장치(4000)는 주기적인 서든 파워 오프에 대응하여 효율적으로 메모리 블록들을 관리함으로써 시스템 성능 향상을 꾀할 수 있다.
본 발명의 실시 예에 따른 메모리 시스템 혹은 저장 장치는 다양한 형태들의 패키지를 이용하여 실장 될 수 있다. 실시 예에 있어서, 본 발명의 실시 예에 따른 메모리 시스템 혹은 저장 장치는 PoP(Package on Package), Ball grid arrays(BGAs), Chip scale packages(CSPs), Plastic Leaded Chip Carrier(PLCC), Plastic Dual In-Line Package(PDIP), Die in Waffle Pack, Die in Wafer Form, Chip On Board(COB), Ceramic Dual In-Line Package(CERDIP), Plastic Metric Quad Flat Pack(MQFP), Thin Quad Flatpack(TQFP), Small Outline(SOIC), Shrink Small Outline Package(SSOP), Thin Small Outline(TSOP), Thin Quad Flatpack(TQFP), System In Package(SIP), Multi Chip Package(MCP), Wafer-level Fabricated Package(WFP), Wafer-Level Processed Stack Package(WSP), 등과 같은 패키지들을 이용하여 실장 될 수 있다.
한편, 상술 된 본 발명의 내용은 발명을 실시하기 위한 구체적인 실시 예들에 불과하다. 본 발명은 구체적이고 실제로 이용할 수 있는 수단 자체뿐 아니라, 장차 기술로 활용할 수 있는 추상적이고 개념적인 아이디어인 기술적 사상을 포함할 것이다.
10, 20: 저장 장치
100, 100a: 비휘발성 메모리 장치
200, 200a: 메모리 제어기
111: 메타 영역
112: 사용자 데이터 영역
MB1 ~ MBi: 메모리 블록
220: 더미 프로그램 판별기
240: 더미 데이터 발생기
SPO: 서든 파워 오프
NPO: 노멀 파워 오프

Claims (31)

  1. 적어도 하나의 비휘발성 메모리 장치 및 상기 적어도 하나의 비휘발성 메모리 장치를 제어하는 메모리 제어기를 포함하는 저장 장치의 프로그램 방법에 있어서:
    메모리 블록에 제 1 사용자 데이터를 저장하도록 제 1 노멀 프로그램 동작을 수행하는 단계;
    더미 데이터를 상기 메모리 블록의 적어도 하나의 페이지에 저장하도록 더미 프로그램 동작을 수행하는 단계; 및
    상기 더미 프로그램 동작 이후에 상기 메모리 블록에 제 2 사용자 데이터를 저장하도록 제 2 노멀 프로그램 동작을 수행하는 단계를 포함하는 프로그램 방법.
  2. 제 1 항에 있어서,
    상기 제 1 및 제 2 노멀 프로그램 동작들 각각은 멀티-비트 프로그램 동작인 프로그램 방법.
  3. 제 1 항에 있어서,
    상기 더미 프로그램 동작은 호스트의 요청에 따라 수행되는 프로그램 방법.
  4. 제 1 항에 있어서,
    상기 더미 프로그램 동작은 서든 파워 오프 정보에 따라 수행되는 프로그램 방법.
  5. 제 4 항에 있어서,
    상기 적어도 하나의 페이지는 서든 파워 오프시 프로그램 동작 중이었던 바운더리 페이지인 프로그램 방법.
  6. 제 5 항에 있어서,
    상기 더미 프로그램 동작을 수행하는 단계는,
    상기 바운더리 페이지로부터 적어도 하나의 하부 페이지에 프로그램 뎁쓰를 판별하는 단계; 및
    상기 프로그램 뎁쓰가 소정의 값 아래이면, 상기 바운더리 페이지와 함께 상기 적어도 하나의 하부 페이지에 더미 프로그램 동작을 수행하는 단계를 더 포함하되,
    상기 제 1 노멀 프로그램 동작 시에, 상기 제 1 사용자 데이터의 적어도 일부를 저장하기 위한 복수의 프로그램 동작들이 상기 메모리 블록의 메모리 셀들에서 수행되고,
    상기 프로그램 뎁쓰는 상기 복수의 프로그램 동작들 중 상기 더미 프로그램 동작 전에 수행된 프로그램 동작의 개수에 의존하는 프로그램 방법.
  7. 제 6 항에 있어서,
    상기 제 1 노멀 프로그램 동작은 재프로그래밍 방식으로 수행되고,
    상기 프로그램 뎁쓰가 상기 소정의 값 이상이면, 상기 적어도 하나의 하부 페이지에 대한 재프로그램 동작을 완료시키는 단계를 더 포함하는 프로그램 방법.
  8. 제 5 항에 있어서,
    상기 더미 프로그램 동작을 수행하는 단계는,
    상기 바운더리 페이지로부터 적어도 하나의 상부 페이지가 클린 페이지인 지를 판별하는 단계; 및
    상기 적어도 하나의 상부 페이지가 상기 클린 페이지가 아닐 때, 상기 적어도 하나의 상부 페이지에 더미 프로그램 동작을 수행하는 단계를 더 포함하는 프로그램 방법.
  9. 제 1 항에 있어서,
    상기 제 2 노멀 프로그램 동작 이후에 상기 메모리 블록에 다른 더미 프로그램 동작을 수행하는 단계; 및
    상기 다른 더미 프로그램 동작 이후에 제 3 사용자 데이터를 저장하도록 제 3 노멀 프로그램 동작을 수행하는 단계를 더 포함하는 프로그램 방법.
  10. 제 1 항에 있어서,
    상기 메모리 블록은 복수의 페이지들로 구성되고,
    상기 복수의 페이지들 각각은 사용자 데이터를 저장하는 메인 영역과 상기 사용자 데이터를 관리하는 메타 정보를 저장하는 스페어 영역을 포함하고,
    상기 스페어 영역은 상기 페이지들 각각에 상기 더미 프로그램 동작이 수행되었는지 여부를 지시하는 정보를 저장하는 프로그램 방법.
  11. 저장 장치의 프로그램 방법에 있어서,
    상기 저장 장치의 전원 공급 이후에 메타 영역에 저장된, 노멀 파워 오프 및 서든 파워 오프 중 하나를 지시하는 전원 정보를 읽는 단계;
    상기 전원 정보가 상기 서든 파워 오프를 지시하는 경우, 복수의 메모리 블록들에서, 상기 서든 파워 오프 전에 가장 마지막으로 프로그램된 페이지인 바운더리 페이지를 검색하는 단계;
    상기 바운더리 페이지에 대한 더미 프로그램 동작을 수행하는 단계; 및
    상기 바운더리 페이지에 인접한 클린 페이지인 최초 클린 페이지에 대한 노멀 프로그램 동작을 수행하는 단계를 포함하되,
    상기 저장 장치는 비휘발성 메모리 장치 및 메모리 컨트롤러를 포함하고, 상기 비휘발성 메모리 장치는 사용자 데이터 영역 및 상기 메타 영역을 포함하고, 상기 사용자 데이터 영역은 상기 복수의 메모리 블록들을 포함하고, 상기 복수의 메모리 블록들 각각은 복수의 페이지들을 포함하고, 상기 복수의 페이지들 각각은 순차적으로 프로그램되는 방법.
  12. 제 11 항에 있어서,
    상기 저장 장치의 파워 오프 이전에 호스트로부터 발행되는 파워 오프 공지에 응답하여 상기 전원 정보를 상기 노멀 파워 오프로 설정하는 단계를 더 포함하는 방법.
  13. 제 12 항에 있어서,
    상기 파워 오프 공지는 전원이 오프될 때 상기 호스트에 의하여 발행되는 방법.
  14. 제 12 항에 있어서,
    상기 파워 오프 공지가 발행되지 않는 경우, 상기 전원 정보는 상기 서든 파워 오프를 유지하는 방법.
  15. 제 11 항에 있어서,
    상기 바운더리 페이지를 검색하는 단계는,
    상기 바운더리 페이지에 관련된 정보가 저장된 상기 메타 영역을 읽는 단계를 포함하는 방법.
  16. 제 11 항에 있어서,
    상기 바운더리 페이지를 검색하는 단계는,
    바이너리 검색에 기초하여 상기 바운더리 페이지를 찾기 위한 상기 사용자 데이터 영역을 읽는 단계를 포함하는 방법.
  17. 제 11 항에 있어서,
    상기 바운더리 페이지를 검색하는 단계의 완료 시에, 상기 메모리 컨트롤러가 더미 데이터를 생성하는 단계를 더 포함하고,
    상기 더미 데이터는 상기 바운더리 페이지에 대응되는 어드레스를 씨드 값으로 이용하는 랜덤 데이터인 방법.
  18. 제 17 항에 있어서,
    상기 더미 프로그램 동작은 상기 메모리 컨트롤러에 의하여 전송된 더미 프로그램 명령에 의하여 수행되고, 상기 더미 프로그램 명령은 상기 더미 데이터, 및 상기 바운더리 페이지에 대응되는 상기 어드레스를 포함하고, 상기 더미 데이터 및 상기 어드레스는 호스트의 요청에 무관하게 생성되는 방법.
  19. 제 17 항에 있어서,
    상기 노멀 프로그램 동작은 상기 더미 데이터의 소거 이전에 수행되는 방법.
  20. 저장 장치의 프로그램 방법에 있어서,
    상기 저장 장치의 전원 공급 이후에 메타 영역에 저장된, 노멀 파워 오프 및 서든 파워 오프 중 하나를 지시하는 전원 정보를 읽는 단계;
    상기 전원 정보가 상기 서든 파워 오프를 지시하는 경우, 복수의 메모리 블록들에서, 상기 서든 파워 오프 전에 가장 마지막으로 프로그램된 페이지인 바운더리 페이지를 검색하는 단계;
    상기 바운더리 페이지에 연결된 워드라인인 바운더리 워드 라인에 대한 더미 프로그램 동작을 수행하는 단계; 및
    상기 바운더리 워드라인에 인접한 클린 워드라인인 최초 클린 워드라인에 대한 노멀 프로그램 동작을 수행하는 단계를 포함하되,
    상기 저장 장치는 비휘발성 메모리 장치 및 메모리 컨트롤러를 포함하고, 상기 비휘발성 메모리 장치는 사용자 데이터 영역 및 상기 메타 영역을 포함하고, 상기 사용자 데이터 영역은 상기 복수의 메모리 블록들을 포함하고, 상기 복수의 메모리 블록들 각각은 복수의 페이지들을 포함하고, 상기 복수의 페이지들 각각은 순차적으로 프로그램되는 방법.




  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
  31. 삭제
KR1020130117467A 2013-10-01 2013-10-01 저장 장치 및 그것의 프로그램 방법 KR102102224B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020130117467A KR102102224B1 (ko) 2013-10-01 2013-10-01 저장 장치 및 그것의 프로그램 방법
US14/461,581 US9378137B2 (en) 2013-10-01 2014-08-18 Storage and programming method thereof
US15/176,964 US9875793B2 (en) 2013-10-01 2016-06-08 Storage and programming method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130117467A KR102102224B1 (ko) 2013-10-01 2013-10-01 저장 장치 및 그것의 프로그램 방법

Publications (2)

Publication Number Publication Date
KR20150039000A KR20150039000A (ko) 2015-04-09
KR102102224B1 true KR102102224B1 (ko) 2020-04-20

Family

ID=52741299

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130117467A KR102102224B1 (ko) 2013-10-01 2013-10-01 저장 장치 및 그것의 프로그램 방법

Country Status (2)

Country Link
US (2) US9378137B2 (ko)
KR (1) KR102102224B1 (ko)

Families Citing this family (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102117919B1 (ko) * 2013-10-24 2020-06-02 삼성전자주식회사 저장 장치 및 그것의 프로그램 방법
US9652415B2 (en) 2014-07-09 2017-05-16 Sandisk Technologies Llc Atomic non-volatile memory data transfer
US9904621B2 (en) 2014-07-15 2018-02-27 Sandisk Technologies Llc Methods and systems for flash buffer sizing
US9645744B2 (en) 2014-07-22 2017-05-09 Sandisk Technologies Llc Suspending and resuming non-volatile memory operations
US9952978B2 (en) 2014-10-27 2018-04-24 Sandisk Technologies, Llc Method for improving mixed random performance in low queue depth workloads
US9753649B2 (en) 2014-10-27 2017-09-05 Sandisk Technologies Llc Tracking intermix of writes and un-map commands across power cycles
US9817752B2 (en) 2014-11-21 2017-11-14 Sandisk Technologies Llc Data integrity enhancement to protect against returning old versions of data
US9824007B2 (en) 2014-11-21 2017-11-21 Sandisk Technologies Llc Data integrity enhancement to protect against returning old versions of data
TWI569144B (zh) * 2015-02-02 2017-02-01 慧榮科技股份有限公司 資料儲存裝置及其斷電事件判斷方法
US9647697B2 (en) 2015-03-16 2017-05-09 Sandisk Technologies Llc Method and system for determining soft information offsets
US9652175B2 (en) 2015-04-09 2017-05-16 Sandisk Technologies Llc Locally generating and storing RAID stripe parity with single relative memory address for storing data segments and parity in multiple non-volatile memory portions
US9864545B2 (en) 2015-04-14 2018-01-09 Sandisk Technologies Llc Open erase block read automation
US9753653B2 (en) 2015-04-14 2017-09-05 Sandisk Technologies Llc High-priority NAND operations management
US10372529B2 (en) 2015-04-20 2019-08-06 Sandisk Technologies Llc Iterative soft information correction and decoding
US9778878B2 (en) 2015-04-22 2017-10-03 Sandisk Technologies Llc Method and system for limiting write command execution
US9870149B2 (en) 2015-07-08 2018-01-16 Sandisk Technologies Llc Scheduling operations in non-volatile memory devices using preference values
US9715939B2 (en) * 2015-08-10 2017-07-25 Sandisk Technologies Llc Low read data storage management
US10228990B2 (en) 2015-11-12 2019-03-12 Sandisk Technologies Llc Variable-term error metrics adjustment
US10126970B2 (en) 2015-12-11 2018-11-13 Sandisk Technologies Llc Paired metablocks in non-volatile storage device
KR102435026B1 (ko) * 2015-12-15 2022-08-22 삼성전자주식회사 저장 장치의 동작 방법
KR20170076878A (ko) * 2015-12-24 2017-07-05 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
US9837146B2 (en) 2016-01-08 2017-12-05 Sandisk Technologies Llc Memory system temperature management
US10732856B2 (en) 2016-03-03 2020-08-04 Sandisk Technologies Llc Erase health metric to rank memory portions
KR102452993B1 (ko) * 2016-03-25 2022-10-12 에스케이하이닉스 주식회사 반도체 메모리 장치 및 이의 동작 방법
KR102515137B1 (ko) * 2016-03-28 2023-03-29 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
KR102547642B1 (ko) * 2016-05-18 2023-06-28 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
KR102529696B1 (ko) 2016-07-14 2023-05-10 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
US10481830B2 (en) 2016-07-25 2019-11-19 Sandisk Technologies Llc Selectively throttling host reads for read disturbs in non-volatile memory system
KR20180092422A (ko) 2017-02-09 2018-08-20 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US11169871B2 (en) * 2017-02-23 2021-11-09 SK Hynix Inc. Data storage device and operating method thereof
US10541032B2 (en) 2017-05-10 2020-01-21 Micron Technology, Inc. Responding to power loss
KR102351649B1 (ko) 2017-06-07 2022-01-17 삼성전자주식회사 저장 장치 및 그것의 동작 방법
US10795607B2 (en) * 2017-08-17 2020-10-06 SK Hynix Inc. Memory device, a memory controller, a storage device including the memory device and the memory controller and operating method thereof
TWI668700B (zh) * 2017-12-22 2019-08-11 慧榮科技股份有限公司 資料儲存裝置與記憶體裝置之資料處理方法
TWI649755B (zh) 2017-12-22 2019-02-01 慧榮科技股份有限公司 資料儲存裝置與記憶體裝置之資料處理方法
TWI655640B (zh) * 2018-01-24 2019-04-01 慧榮科技股份有限公司 資料儲存裝置與資料處理方法
KR20190100782A (ko) * 2018-02-21 2019-08-29 에스케이하이닉스 주식회사 스토리지 장치 및 그 동작 방법
KR102579824B1 (ko) 2018-02-27 2023-09-19 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
KR102532547B1 (ko) 2018-04-20 2023-05-17 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
KR102592796B1 (ko) 2018-04-27 2023-10-25 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US10607693B2 (en) 2018-06-29 2020-03-31 Micron Technology, Inc. Misplacement mitigation algorithm
KR102516121B1 (ko) 2018-10-22 2023-03-31 에스케이하이닉스 주식회사 반도체 장치 및 그 동작 방법
KR102590886B1 (ko) * 2018-10-30 2023-10-19 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
KR102626054B1 (ko) * 2018-11-05 2024-01-18 에스케이하이닉스 주식회사 메모리 컨트롤러 및 이를 포함하는 메모리 시스템
KR20200053018A (ko) 2018-11-07 2020-05-18 삼성전자주식회사 불휘발성 메모리 장치, 불휘발성 메모리 장치를 포함하는 스토리지 장치, 그리고 불휘발성 메모리 장치를 액세스하는 방법
KR102637478B1 (ko) 2018-12-05 2024-02-15 삼성전자주식회사 오픈 채널 솔리드 스테이트 드라이브, 이를 포함하는 비휘발성 메모리 시스템 및 오픈 채널 솔리드 스테이트 드라이브의 파워 로스 프로텍션 방법
KR102610395B1 (ko) * 2019-01-22 2023-12-05 삼성전자주식회사 비휘발성 메모리 장치를 포함하는 메모리 시스템
KR20200113992A (ko) 2019-03-27 2020-10-07 에스케이하이닉스 주식회사 메모리 시스템의 복구 동작 중 비휘발성 메모리 오픈 블록의 셀 디스터브를 줄이는 방법 및 장치
US11315649B2 (en) 2019-04-16 2022-04-26 Samsung Electronics Co., Ltd. Memory controller, memory device and memory system having improved threshold voltage distribution characteristics and related operating methods
KR20200121654A (ko) 2019-04-16 2020-10-26 삼성전자주식회사 문턱전압 산포 특성을 향상한 메모리 컨트롤러, 메모리 시스템 및 그 동작방법
KR20200122522A (ko) * 2019-04-18 2020-10-28 에스케이하이닉스 주식회사 컨트롤러 및 그 동작 방법
KR20200136183A (ko) * 2019-05-27 2020-12-07 에스케이하이닉스 주식회사 스토리지 장치 및 그것의 동작 방법
US11069417B2 (en) 2019-08-27 2021-07-20 Samsung Electronics Co., Ltd. Memory system and method of operating the same
KR20210025249A (ko) 2019-08-27 2021-03-09 삼성전자주식회사 메모리 시스템 및 그 동작 방법
KR20210081641A (ko) * 2019-12-24 2021-07-02 에스케이하이닉스 주식회사 스토리지 장치 및 그 동작 방법
TWI780003B (zh) * 2022-02-15 2022-10-01 群聯電子股份有限公司 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100714873B1 (ko) 2005-09-06 2007-05-07 삼성전자주식회사 비휘발성 메모리에서 데이터 갱신 방법 및 이를 위한 장치
KR100739946B1 (ko) 2004-12-27 2007-07-16 주식회사 하이닉스반도체 더미 워드라인을 구비한 낸드 플래시 메모리 장치
JP2007200531A (ja) 2006-01-24 2007-08-09 Samsung Electronics Co Ltd メモリシステム
US7545673B2 (en) 2007-09-25 2009-06-09 Sandisk Il Ltd. Using MLC flash as SLC by writing dummy data

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090129624A (ko) * 2008-06-13 2009-12-17 삼성전자주식회사 메모리 시스템 및 그것의 읽기 페일 방지 방법
JP2008204581A (ja) 2007-02-22 2008-09-04 Elpida Memory Inc 不揮発性ram
KR101423052B1 (ko) 2008-06-12 2014-07-25 삼성전자주식회사 메모리 장치 및 읽기 레벨 제어 방법
US8130567B2 (en) 2008-12-24 2012-03-06 Stmicroelectronics Pvt. Ltd. Write circuitry for hierarchical memory architecture
KR20110001102A (ko) 2009-06-29 2011-01-06 주식회사 하이닉스반도체 불휘발성 메모리 소자의 프로그램 동작 방법
KR20120066347A (ko) 2010-12-14 2012-06-22 삼성전자주식회사 비휘발성 메모리 장치 및 그 구동 방법
KR101717081B1 (ko) 2011-03-23 2017-03-28 삼성전자주식회사 비휘발성 램과 휘발성 램을 버퍼 메모리로 사용하는 저장 장치
KR101301828B1 (ko) * 2011-09-29 2013-08-29 한양대학교 산학협력단 플래시 메모리에 기반한 ssd에서의 전원-손실 복구 방법 및 장치
KR102127284B1 (ko) 2013-07-01 2020-06-26 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 관리 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100739946B1 (ko) 2004-12-27 2007-07-16 주식회사 하이닉스반도체 더미 워드라인을 구비한 낸드 플래시 메모리 장치
KR100714873B1 (ko) 2005-09-06 2007-05-07 삼성전자주식회사 비휘발성 메모리에서 데이터 갱신 방법 및 이를 위한 장치
JP2007200531A (ja) 2006-01-24 2007-08-09 Samsung Electronics Co Ltd メモリシステム
US7545673B2 (en) 2007-09-25 2009-06-09 Sandisk Il Ltd. Using MLC flash as SLC by writing dummy data

Also Published As

Publication number Publication date
US20160284397A1 (en) 2016-09-29
US20150095558A1 (en) 2015-04-02
US9875793B2 (en) 2018-01-23
KR20150039000A (ko) 2015-04-09
US9378137B2 (en) 2016-06-28

Similar Documents

Publication Publication Date Title
KR102102224B1 (ko) 저장 장치 및 그것의 프로그램 방법
KR102117919B1 (ko) 저장 장치 및 그것의 프로그램 방법
CN107015917B (zh) 储存装置和其读取回收方法
US9837164B2 (en) Nonvolatile memory device, storage device having the same, and operation and read methods thereof
KR102272228B1 (ko) 불휘발성 메모리 장치, 그것을 포함하는 저장 장치 및 그것의 동작 방법
KR102015906B1 (ko) 불휘발성 메모리 장치를 포함하는 메모리 시스템 및 그것의 읽기 방법
US20200050362A1 (en) Storage device and method of operating the same
US8621266B2 (en) Nonvolatile memory system and related method of performing erase refresh operation
KR102226367B1 (ko) 불휘발성 메모리 장치 및 그것을 포함하는 불휘발성 메모리 시스템
US9715344B2 (en) Memory device and controlling method of the same
US9443603B2 (en) Storage device and related methods using timer setting
KR102154620B1 (ko) 비휘발성 메모리 장치의 소거 방법 및 그것을 포함하는 저장 장치
KR101891164B1 (ko) 프로그램 스케줄러를 포함하는 플래시 메모리 장치
KR20150129941A (ko) 메모리 컨트롤러의 동작 방법 및 불휘발성 메모리 장치 및 메모리 컨트롤러를 포함하는 불휘발성 메모리 시스템
JP2014022031A (ja) 不揮発性メモリ装置とそれを含むメモリシステム及びそれらのメモリブロック管理、消去、及びプログラム方法
KR20130087230A (ko) 비휘발성 메모리 장치, 그것을 포함하는 메모리 시스템, 그것의 블록 관리 방법, 프로그램 방법 및 소거 방법
KR102452994B1 (ko) 반도체 메모리 장치 및 그 동작 방법
KR102050729B1 (ko) 메모리 시스템
CN111128280B (zh) 存储装置及其操作方法
KR102106959B1 (ko) 멀티 레벨 셀 비휘발성 메모리 시스템
US20210132804A1 (en) Storage device and method of operating the storage device
KR20130027153A (ko) 불휘발성 메모리 장치의 제어 방법
KR20230071013A (ko) 데이터 신뢰성을 향상한 메모리 컨트롤러 및 이를 포함하는 메모리 시스템
CN116126583A (zh) 用于控制存储器装置的存储器控制器及其操作方法
CN114296631A (zh) 存储器系统及其操作方法

Legal Events

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