KR102102224B1 - Storage and programming method thereof - Google Patents

Storage and programming method thereof 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
Korean (ko)
Other versions
KR20150039000A (en
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/en
Priority to US14/461,581 priority patent/US9378137B2/en
Publication of KR20150039000A publication Critical patent/KR20150039000A/en
Priority to US15/176,964 priority patent/US9875793B2/en
Application granted granted Critical
Publication of KR102102224B1 publication Critical patent/KR102102224B1/en

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

본 발명에 따른 적어도 하나의 비휘발성 메모리 장치 및 상기 적어도 하나의 비휘발성 메모리 장치를 제어하는 메모리 제어기를 포함하는 저장 장치의 프로그램 방법은, 메모리 블록에 제 1 사용자 데이터를 저장하도록 제 1 노멀 프로그램 동작을 수행하는 단계, 더미 데이터를 상기 메모리 블록의 적어도 하나의 페이지에 저장하도록 더미 프로그램 동작을 수행하는 단계, 및 상기 더미 프로그램 동작 이후에 상기 메모리 블록에 제 2 사용자 데이터를 저장하도록 제 2 노멀 프로그램 동작을 수행하는 단계를 포함한다.A method of programming a storage device including at least one nonvolatile memory device and a memory controller for controlling the at least one nonvolatile memory device according to the present invention includes a first normal program operation to store first user data in a memory block Performing a dummy program operation to store dummy data in at least one page of the memory block, and a second normal program operation to store second user data in the memory block after the dummy program operation It includes the steps of performing.

Description

저장 장치 및 그것의 프로그램 방법{STORAGE AND PROGRAMMING METHOD THEREOF}Storage device and its programming method {STORAGE AND PROGRAMMING METHOD THEREOF}

본 발명은 저장 장치 및 그것의 프로그램 방법에 관한 것이다.The present invention relates to a storage device and its programming method.

반도체 메모리 장치는 일반적으로 DRAM, SRAM 등과 같은 휘발성 메모리 장치와 EEPROM, FRAM, PRAM, MRAM, 플래시 메모리 등과 같은 비휘발성 메모리 장치로 구분할 수 있다. 휘발성 메모리 장치는 전원이 차단될 때 저장된 데이터를 잃지만, 비휘발성 메모리는 전원이 차단되더라도 저장된 데이터를 보존한다. 특히, 플래시 메모리는 높은 프로그래밍 속도, 낮은 전력 소비, 대용량 데이터 저장 등의 장점을 갖는다. 따라서 플래시 메모리를 기반으로 하는 데이터 저장 장치가 광범위하게 사용되고 있다. 플래시 메모리를 기반으로 하는 데이터 저장 장치에는 기존의 하드 디스크를 대체하고 있는 솔리드 스테이트 드라이브(SSD), SD 카드나 MMC 등과 같은 메모리 카드 등이 있다.Semiconductor memory devices can be generally classified into volatile memory devices such as DRAM and SRAM and non-volatile memory devices such as EEPROM, FRAM, PRAM, MRAM, and flash memory. Volatile memory devices lose stored data when power is cut off, while non-volatile memory retains stored data even when power is cut off. In particular, flash memory has advantages such as high programming speed, low power consumption, and large data storage. Therefore, data storage devices based on flash memory have been widely used. Data storage devices based on flash memory include solid state drives (SSDs) that replace conventional hard disks, and memory cards such as SD cards or MMCs.

본 발명의 목적은 데이터 신뢰성 향상시키고 수명을 연장시키는 저장 장치 및 그것의 프로그램 방법을 제공하는 데 있다.SUMMARY OF THE INVENTION It is an object of the present invention to provide a storage device and a program method for improving data reliability and prolonging life.

본 발명의 실시 예에 따른 적어도 하나의 비휘발성 메모리 장치 및 상기 적어도 하나의 비휘발성 메모리 장치를 제어하는 메모리 제어기를 포함하는 저장 장치의 프로그램 방법은: 메모리 블록에 제 1 사용자 데이터를 저장하도록 제 1 노멀 프로그램 동작을 수행하는 단계; 더미 데이터를 상기 메모리 블록의 적어도 하나의 페이지에 저장하도록 더미 프로그램 동작을 수행하는 단계; 및 상기 더미 프로그램 동작 이후에 상기 메모리 블록에 제 2 사용자 데이터를 저장하도록 제 2 노멀 프로그램 동작을 수행하는 단계를 포함한다.A method of programming a storage device including at least one nonvolatile memory device and a memory controller controlling the at least one nonvolatile memory device according to an embodiment of the present invention includes: a first method for storing first user data in a memory block Performing a normal program operation; Performing a dummy program operation to store dummy data in at least one page of the memory block; And performing a second normal program operation to store second user data in the memory block after the dummy program operation.

실시 예에 있어서, 상기 제 1 및 제 2 노멀 프로그램 동작들 각각은 멀티-비트 프로그램 동작이다.In an embodiment, each of the first and second normal program operations is a multi-bit program operation.

실시 예에 있어서, 상기 멀티-비트 프로그램 동작은 재프로그래밍 방식에 의해 수행된다.In an embodiment, the multi-bit program operation is performed by a reprogramming method.

실시 예에 있어서, 상기 더미 프로그램 동작은 호스트의 요청에 따라 수행된다.In an embodiment, the dummy program operation is performed at the request of the host.

실시 예에 있어서, 상기 더미 프로그램 동작은 서든 파워 오프 정보에 따라 수행된다.In an embodiment, the dummy program operation is performed according to sudden power-off information.

실시 예에 있어서, 상기 서든 파워 오프 정보는 호스트에 의해 정상적으로 전원이 차단되었음을 알리는 노멀 파워 오프 정보로부터 얻어진다.In an embodiment, the sudden power-off information is obtained from normal power-off information indicating that power has been normally cut off by the host.

실시 예에 있어서, 상기 적어도 하나의 페이지는 서든 파워 오프시 프로그램 동작 중이었던 바운더리 페이지이다.In an embodiment, the at least one page is a boundary page that was in operation during a sudden power off.

실시 예에 있어서, 상기 더미 프로그램 동작을 수행하는 단계는, 상기 바운더리 페이지를 검색하는 단계를 더 포함한다.In an embodiment, the step of performing the dummy program operation further includes retrieving the boundary page.

실시 예에 있어서, 상기 더미 프로그램 동작을 수행하는 단계는, 상기 바운더리 페이지로부터 적어도 하나의 하부 페이지에 프로그램 뎁쓰를 판별하는 단계; 및 상기 프로그램 뎁쓰가 소정의 값 아래이면, 상기 적어도 하나의 하부 페이지에 더미 프로그램 동작을 수행하는 단계를 더 포함한다.In an embodiment, the step of performing the dummy program operation may include determining a program depth from the boundary page to at least one lower page; And if the program depth is below a predetermined value, performing a dummy program operation on the at least one lower page.

실시 예에 있어서, 상기 제 1 노멀 프로그램 동작은 재프로그래밍 방식으로 수행되고, 상기 프로그램 뎁쓰가 상기 소정의 값 이상이면, 상기 적어도 하나의 하부 페이지에 대한 재프로그램 동작을 완료시키는 단계를 더 포함한다.In an embodiment, the first normal program operation is performed in a reprogramming manner, and if the program depth is greater than or equal to the predetermined value, further comprising completing a reprogram operation for the at least one lower page.

실시 예에 있어서, 상기 더미 프로그램 동작을 수행하는 단계는, 상기 바운더리 페이지로부터 적어도 하나의 상부 페이지가 클린 페이지인 지를 판별하는 단계; 및 상기 적어도 하나의 상부 페이지가 상기 클린 페이지가 아닐 때, 상기 적어도 하나의 상부 페이지에 더미 프로그램 동작을 수행하는 단계를 더 포함한다.In an embodiment, the step of performing the dummy program operation may include determining whether at least one upper page is a clean page from the boundary page; And when the at least one upper page is not the clean page, performing a dummy program operation on the at least one upper page.

실시 예에 있어서, 상기 제 2 노멀 프로그램 동작 이후에 상기 메모리 블록에 다른 더미 프로그램 동작을 수행하는 단계; 및 상기 다른 더미 프로그램 동작 이후에 제 3 사용자 데이터를 저장하도록 제 3 노멀 프로그램 동작을 수행하는 단계를 더 포함한다.In an embodiment, performing another dummy program operation on the memory block after the second normal program operation; And performing a third normal program operation to store third user data after the other dummy program operation.

실시 예에 있어서, 상기 더미 데이터는 씨드 값에 의해 발생되는 랜덤 데이터이다.In an embodiment, the dummy data is random data generated by a seed value.

실시 예에 있어서, 상기 메모리 블록은 복수의 페이지들로 구성되고, 상기 복수의 페이지들 각각은 사용자 데이터를 저장하는 메인 영역과 상기 사용자 데이터를 관리하는 메타 정보를 저장하는 스페어 영역을 포함하고, 상기 스페어 영역은 상기 페이지들 각각에 상기 더미 프로그램 동작이 수행되었는지 여부를 지시하는 정보를 저장한다.In an embodiment, the memory block is composed of a plurality of pages, each of the plurality of pages includes a main area storing user data and a spare area storing meta information managing the user data, and The spare area stores information indicating whether the dummy program operation has been performed on each of the pages.

실시 예에 있어서, 상기 더미 프로그램 동작의 프로그램 속도는 상기 제 1 및 제 2 노멀 프로그램 동작들 각각의 프로그램 속도보다 빠르다.In an embodiment, the program speed of the dummy program operation is faster than the program speed of each of the first and second normal program operations.

실시 예에 있어서, 패스 전압 디스터번스를 줄이도록, 상기 더미 프로그램 동작의 패스전압은 상기 제 1 및 제 2 노멀 프로그램 동작의 패스전압보다 낮다.In an embodiment, to reduce pass voltage disturbance, the pass voltage of the dummy program operation is lower than the pass voltage of the first and second normal program operations.

실시 예에 있어서, 상기 제 1 및 제 2 노멀 프로그램 동작들은 상기 제 1 및 제 2 사용자 데이터를 3-비트 메모리 셀들에 저장하고, 상기 더미 프로그램 동작은 상기 더미 데이터를 싱글-비트 메모리 셀들에 저장한다.In an embodiment, the first and second normal program operations store the first and second user data in 3-bit memory cells, and the dummy program operation stores the dummy data in single-bit memory cells. .

본 발명의 실시 예에 따른 비휘발성 메모리 장치의 프로그램 방법은: 서든 파워 오프 발생 이후에 메모리 블록에 최초 클린 워드라인을 검색하는 단계; 상기 최초 클린 워드라인으로부터 하부 워드라인에 관련된 프로그램 뎁쓰를 판별하는 단계; 상기 프로그램 뎁쓰가 소정 값 아래이면, 상기 하부 워드라인에 연결된 메모리 셀들에 더미 프로그램 동작을 수행하는 단계; 상기 최초 클린 워드라인에 연결된 메모리 셀들에 더미 프로그램 동작을 수행하는 단계; 및 상기 최초 클린 워드라인으로부터 적어도 하나의 상부 워드라인에 연결된 메모리 셀들에 이어 쓰기를 진행하는 단계를 포함한다.A method of programming a nonvolatile memory device according to an embodiment of the present invention includes: searching for a first clean word line in a memory block after a sudden power off occurs; Determining a program depth related to a lower word line from the first clean word line; If the program depth is below a predetermined value, performing a dummy program operation on memory cells connected to the lower word line; Performing a dummy program operation on memory cells connected to the first clean word line; And writing from the initial clean word line to memory cells connected to at least one upper word line.

실시 예에 있어서, 상기 최초 클린 워드라인을 검색하는 단계는, 복수의 페이지들에 대하여 읽기 전압으로 클린 페이지 읽기 동작을 순차적으로 수행하는 단계; 및 상기 클린 페이지 읽기 전압 보다 높은 문턱전압을 갖는 메모리 셀들의 개수가 소정의 값 아래인 페이지를 클린 페이지로 판별하는 단계를 더 포함한다.In an embodiment, the searching for the first clean word line may include: sequentially performing a clean page read operation with a read voltage on a plurality of pages; And determining a page in which the number of memory cells having a threshold voltage higher than the clean page read voltage is below a predetermined value as a clean page.

실시 예에 있어서, 상기 더미 프로그램 동작에서 사용되는 더미 데이터를 발생할 때, 상기 최초 클린 워드라인에 대응하는 어드레스를 씨드값으로 이용하는 단계를 더 포함한다.In an embodiment, when generating dummy data used in the dummy program operation, the method further includes using an address corresponding to the initial clean word line as a seed value.

실시 예에 있어서, 상기 최초 클린 워드라인을 검색하는 단계는, 바이너리 서치를 이용하여 상기 최초 클린 워드라인을 검색하는 단계를 포함한다.In an embodiment, searching for the first clean word line includes searching for the first clean word line using binary search.

실시 예에 있어서, 상기 최초 클린 워드라인으로부터 적어도 하나의 상부 워드라인에 관련된 페이지가 클린 페이지인 지를 체크하는 단계를 더 포함한다.In an embodiment, the method further includes checking whether a page related to at least one upper word line is a clean page from the initial clean word line.

실시 예에 있어서, 상기 페이지가 상기 클린 페이지가 아닐 때, 상기 페이지에 더미 프로그램 동작을 수행하는 단계를 더 포함한다.In an embodiment, when the page is not the clean page, the method further includes performing a dummy program operation on the page.

본 발명의 실시 예에 따른 비휘발성 메모리 장치의 프로그램 방법은: 메모리 블록의 제 1 멀티-레벨 셀들에 제 1 사용자 데이터를 재프로그램 하는 단계; 상기 메모리 블록의 싱글-레벨 셀들에 더미 데이터를 프로그램 하는 단계; 및 상기 메모리 블록의 제 2 멀티-레벨 셀들에 제 2 사용자 데이터를 재프로그램하는 단계를 포함한다.A method of programming a nonvolatile memory device according to an embodiment of the present invention includes: reprogramming first user data in first multi-level cells of a memory block; Programming dummy data in single-level cells of the memory block; And reprogramming second user data into second multi-level cells of the memory block.

실시 예에 있어서, 상기 제 1 및 제 2 멀티-레벨 셀들 각각은 3-레벨 셀이다.In an embodiment, each of the first and second multi-level cells is a 3-level cell.

실시 예에 있어서, 상기 더미 데이터는 서든 파워 오프 발생 이후 전원 공급시 프로그램된다.In an embodiment, the dummy data is programmed when power is supplied after a sudden power off.

실시 예에 있어서, 상기 더미 데이터를 프로그램 하는 단계는, 상기 메모리 블록으로부터 상기 서든 파워 오프 시 프로그램 진행 중이었던 바운더리 페이지를 검색하는 단계; 및 상기 바운더리 페이지에 상기 더미 데이터를 프로그램 하는 단계를 더 포함한다.In an embodiment, the step of programming the dummy data may include retrieving a boundary page that was in progress during the sudden power-off from the memory block; And programming the dummy data on the boundary page.

본 발명의 실시 예에 따른 저장 장치는, 복수의 페이지들을 구비한 복수의 메모리 블록을 포함하는 적어도 하나의 비휘발성 메모리 장치; 및 상기 적어도 하나의 비휘발성 메모리 장치를 제어하는 메모리 제어기를 포함하고, 상기 메모리 제어기는, 호스트의 요청 혹은 서든 파워 오프 정보에 따라 바운더리 페이지를 검색하고, 상기 바운더리 페이지에 더미 프로그램 동작을 수행할 지 여부를 결정하는 더미 프로그램 동작 판별기; 및 상기 더미 프로그램 동작이 수행될 때, 더미 데이터를 발생하는 더미 데이터 발생기를 포함한다.A storage device according to an embodiment of the present invention includes at least one nonvolatile memory device including a plurality of memory blocks having a plurality of pages; And a memory controller controlling the at least one nonvolatile memory device, wherein the memory controller retrieves a boundary page according to a request from the host or sudden power-off information, and performs a dummy program operation on the boundary page. A dummy program operation discriminator to determine whether or not; And a dummy data generator that generates dummy data when the dummy program operation is performed.

실시 예에 있어서, 상기 더미 프로그램 동작 판별기는 상기 바운더리 페이지로부터 적어도 하나의 하부 페이지의 프로그램 뎁쓰를 체크하거나 상기 바운더리 페이지로부터 적어도 하나의 상부 페이지가 클린 페이지인 지를 체크하고, 상기 프로그램 뎁쓰가 소정의 값 아래이거나 상기 적어도 하나의 페이지가 상기 클린 페이지가 아닐 때, 상기 적어도 하나의 하부 페이지 혹은 상기 적어도 하나의 상부 페이지에 더미 프로그램 동작을 수행하도록 결정한다.In an embodiment, the dummy program operation discriminator checks the program depth of at least one lower page from the boundary page or checks whether the at least one upper page is a clean page from the boundary page, and the program depth is a predetermined value. When it is below or when the at least one page is not the clean page, it is determined to perform a dummy program operation on the at least one lower page or the at least one upper page.

실시 예에 있어서, 상기 저장 장치는 eMMC이다.In an embodiment, the storage device is eMMC.

본 발명의 다른 실시 예에 따른 비휘발성 메모리 장치의 프로그램 방법은: 제 1 사용자 데이터를 메모리 블록의 적어도 하나의 제 1 페이지에 프로그램하는 단계; 서든 파워 오프 이후에 상기 메모리 블록의 적어도 하나의 페이지에 무의미한 데이터를 프로그램하는 단계; 및 상기 무의미한 데이터를 프로그램 한 뒤에 제 2 사용자 데이터를 상기 메모리 블록의 적어도 하나의 제 2 페이지에 프로그램하는 단계를 포함한다.A method of programming a nonvolatile memory device according to another embodiment of the present invention includes: programming first user data in at least one first page of a memory block; Programming meaningless data on at least one page of the memory block after a sudden power off; And after programming the meaningless data, programming second user data on at least one second page of the memory block.

상술한 바와 같이 본 발명의 실시 예에 따른 저장 장치 및 그것의 프로그램 방법은 더미 프로그램 동작을 수행한 뒤에 이어 쓰기를 진행할 수 있으므로써, 블록의 소거 동작을 줄이며, 그에 따라 수명을 연장하거나 데이터의 신뢰성을 향상시킬 수 있다.As described above, the storage device and its programming method according to an embodiment of the present invention can perform subsequent writing after performing a dummy program operation, thereby reducing an erase operation of a block, thereby extending life or reliability of data. Improve it.

도 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는 본 발명의 응용 예를 예시적으로 설명하는 도면들이다.
1 is a view for explaining the concept of the present invention.
2 is a view exemplarily showing a storage device according to an embodiment of the present invention.
FIG. 3 is a diagram exemplarily showing a memory block illustrated in FIG. 2.
4 is a diagram illustrating a first embodiment of a program operation for a memory block according to an embodiment of the present invention.
5 is a diagram illustrating a second embodiment of a program operation for a memory block according to an embodiment of the present invention.
6 is a view for explaining a program depth according to an embodiment of the present invention.
7 is a view showing a third embodiment of a program operation for a memory block according to an embodiment of the present invention.
8 is a diagram illustrating a fourth embodiment of a program operation for a memory block according to an embodiment of the present invention.
9 is a diagram for illustratively explaining a boundary page search and a clean page search according to an embodiment of the present invention.
10 is a diagram showing a page structure according to an embodiment of the present invention by way of example.
11 is a flowchart illustrating a first embodiment of a program method of a storage device according to an embodiment of the present invention.
12 is a flowchart illustrating a second embodiment of a program method of a storage device according to an embodiment of the present invention.
13 is a flowchart exemplarily showing a dummy program operation according to an embodiment of the present invention.
14 is a flowchart illustrating a third embodiment of a program method of a storage device according to an embodiment of the present invention.
15 is a flowchart illustrating a fourth embodiment of a program method of a storage device according to an embodiment of the present invention.
16 is a flowchart illustrating a fifth embodiment of a program method of a storage device according to an embodiment of the present invention.
17 is a block diagram showing another embodiment of a storage device according to an embodiment of the present invention.
18 is a view exemplarily showing a VNAND block according to an embodiment of the present invention.
19 to 22 are diagrams exemplarily illustrating an application example of the present invention.

아래에서는 도면들을 이용하여 본 발명의 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있을 정도로 본 발명의 내용을 명확하고 상세하게 기재할 것이다.Hereinafter, the contents of the present invention will be described clearly and in detail so that those skilled in the art of the present invention can easily implement the drawings using the drawings.

본 발명의 실시 예에 따른 비휘발성 메모리 장치를 구비한 저장 장치는 더미 프로그램 동작(dummy program operation)을 수행한 뒤에 계속해서 메모리 블록을 사용하는 이어 쓰기(아래에서는 "continuous use"로 설명,혹은 다른 의미에서 "subsequent write" "continuous write")를 제공할 수 있다.A storage device having a nonvolatile memory device according to an embodiment of the present invention continues to use a memory block after performing a dummy program operation (hereinafter referred to as "continuous use", or other In a sense, "subsequent write" and "continuous write") can be provided.

본 발명의 비휘발성 메모리 장치는 낸드 플래시 메모리(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)에도 모두 적용 가능하다. 아래에서는 설명의 편의를 위하여 비휘발성 메모리 장치가 낸드 플래시 메모리 장치라고 하겠다.The non-volatile memory device of the present invention includes a NAND flash memory, a vertical NAND flash (VNAND), a NOR flash memory, a resistive random access memory (RRAM), and a phase. Phase-Change Memory (PRAM), Magnetoresistive Random Access Memory (MRAM), Ferroelectric Random Access Memory (FRAM), Spin Transfer Torque Random Access Memory (STT-RAM) ). Also, the nonvolatile memory device may be implemented in a three-dimensional array structure. The present invention is applicable both to a flash memory device in which the charge storage layer is made of a conductive floating gate, and also to a charge trap flash (CTF) in which the charge storage layer is made of an insulating film. In the following, for convenience of description, the nonvolatile memory device will be referred to as a NAND flash memory device.

도 1은 본 발명의 개념을 설명하기 위한 도면이다. 도 1을 참조하면, 메모리 블록에 노멀 프로그램 동작(Normal PGM)을 수행하다가 특정 이벤트 발생시 더미 프로그램 동작(Dummy PGM)이 수행된다. 더미 프로그램 동작 이후에 메모 블록에 노멀 프로그램 동작을 위한 이어 쓰기(continuous use)가 진행될 수 있다. 여기서 특정 이벤트는 호스트의 요청이거나, 비휘발성 메모리 장치의 서든 파워 오프(sudden power-off; SPO)이거나, 비휘발성 메모리 장치의 관리에 따른 요청일 수 있다.1 is a view for explaining the concept of the present invention. Referring to FIG. 1, a normal program operation (Normal PGM) is performed on a memory block and a dummy PGM operation is performed when a specific event occurs. After the dummy program operation, continuous use for normal program operation may be performed on the memo block. Here, the specific event may be a request of the host, a sudden power-off (SPO) of the nonvolatile memory device, or a request according to management of the nonvolatile memory device.

예를 들어, 본 발명은 메모리 블록에 제 1 사용자 데이터를 저장하도록 제 1 노멀 프로그램 동작을 수행하고, 이후에 더미 데이터를 메모리 블록의 적어도 하나의 페이지에 저장하도록 더미 프로그램 동작을 수행하고, 이후에 메모리 블록에 제 2 사용자 데이터를 저장하도록 제 2 노멀 프로그램 동작을 수행할 수 있다.For example, the present invention performs a first normal program operation to store first user data in a memory block, and then performs a dummy program operation to store dummy data in at least one page of the memory block, and then The second normal program operation may be performed to store the second user data in the memory block.

여기서 더미 데이터는 무의미한 데이터(meaningless data)일 수 있다. 이런 관점에서, 본 발명은 다음과 같이 해석될 수 있다. 본 발명은 제 1 사용자 데이터를 메모리 블록의 적어도 하나의 제 1 페이지에 프로그램하고, 서든 파워 오프 이후에 메모리 블록의 적어도 하나의 페이지에 무의미한 데이터를 프로그램하고, 무의미한 데이터를 프로그램한 뒤에 제 2 사용자 데이터를 메모리 블록의 적어도 하나의 제 2 페이지에 프로그램할 수 있다.Here, the dummy data may be meaningless data. In this regard, the present invention can be interpreted as follows. The present invention is to program the first user data to at least one first page of the memory block, program the meaningless data to at least one page of the memory block after a sudden power off, program the meaningless data, and then the second user data Can be programmed to at least one second page of the memory block.

일반적인 저장 장치는 프로그램 동작 중에 특정 이벤트 발생시 해당 메모리 블록을 더 이상 사용하지 않고 새로운 메모리 블록을 할당하고, 새롭게 할당된 메모리 블록에 사용자 데이터를 저장시키고, 이전 메모리 블록에 소거 동작을 수행한다. 이로 인하여 특정 이벤트 발생에 따른 불필요한 소거 회수가 증가되고 있다.In a general storage device, when a specific event occurs during a program operation, a new memory block is allocated without using the corresponding memory block any more, user data is stored in the newly allocated memory block, and an erase operation is performed in the previous memory block. Due to this, the number of unnecessary erasures due to the occurrence of a specific event is increasing.

반면에, 본 발명의 실시 예에 따른 저장 장치는 프로그램 동작에 중에 특정 이벤트가 발생하더라도 새로운 메모리 블록을 할당하지 않고, 더미 프로그램 동작을 수행한 뒤 현재의 메모리 블록을 계속해서 사용할 수 있다. 즉, 이벤트 발생 이전에서 수행되던 프로그램 동작이 이벤트 발생 이후에도 해당 메모리 블록에 이어 쓰기가 진행될 수 있다. 본 발명은 이러한 이어 쓰기를 통하여 불필요한 소거 회수를 줄임으로써, 비휘발성 메모리 장치의 수명(life time)을 연장할 수 있다.On the other hand, the storage device according to an embodiment of the present invention may continue to use the current memory block after performing a dummy program operation without allocating a new memory block even if a specific event occurs during the program operation. That is, the program operation performed before the occurrence of the event may continue writing after the corresponding memory block even after the event occurs. The present invention can extend the life time of the nonvolatile memory device by reducing the number of unnecessary erasing through such rewriting.

아래에서는 설명의 편의를 위하여 비휘발성 메모리 장치는 낸드 플래시 메모리 장치이고, 특정 이벤트는 서든 파워 오프(sudden power off, 아래에서는 "SPO")라고 가정하겠다.In the following, for convenience of description, it is assumed that the nonvolatile memory device is a NAND flash memory device, and a specific event is sudden power off ("SPO" below).

도 2는 본 발명의 실시 예에 따른 저장 장치를 예시적으로 보여주는 도면이다. 도 2를 참조하면, 저장 장치(10)는 적어도 하나의 비휘발성 메모리 장치(100) 및 그것을 제어하는 메모리 제어기(200)를 포함한다.2 is a view exemplarily showing a storage device according to an embodiment of the present invention. Referring to FIG. 2, the storage device 10 includes at least one nonvolatile memory device 100 and a memory controller 200 that controls it.

비휘발성 메모리 장치(100)는 비휘발성 메모리 장치를 관리하기 위한 관리 정보를 저장하는 메타 영역(111) 및 사용자 데이터를 저장하는 사용자 데이터 영역(112)을 포함한다. 사용자 데이터 영역(112)은 복수의 메모리 블록들(MB1 ~ MBi,i는 2 이상의 정수)를 포함한다.The nonvolatile memory device 100 includes a meta area 111 for storing management information for managing the nonvolatile memory device and a user data area 112 for storing user data. The user data area 112 includes a plurality of memory blocks (MB1 to MBi, i are integers of 2 or more).

메타 영역(111)은 사용자 데이터 영역(112)의 메모리 블록들(MB1 ~ MBi) 각각과 동일한 구조의 적어도 하나의 메모리 블록들로 구현될 수 있다. 메타 영역(111)은 노멀 파워 오프(normal power off, "NPO")를 지시하는 전원 정보를 저장할 수 있다. 여기서 전원 정보는 호스트로부터 발행되는 파워 오프 공지(power off notification)에 응답하여 메타 영역(111)의 특정 위치에 저장될 수 있다.The meta area 111 may be implemented with at least one memory block having the same structure as each of the memory blocks MB1 to MBi of the user data area 112. The meta area 111 may store power information indicating normal power off ("NPO"). Here, the power information may be stored in a specific location of the meta area 111 in response to a power off notification issued from the host.

실시 예에 있어서, 저장된 전원 정보를 근거로 하여 비휘발성 메모리 장치(100)의 부팅(booting)이 수행될 수 있다.In an embodiment, booting of the nonvolatile memory device 100 may be performed based on stored power information.

실시 예에 있어서, 저장된 전원 정보를 근거로 하여 SPO 정보가 얻어질 수 있다. 예를 들어, 비휘발성 메모리 장치(100)가 파워 오프되었는데, 저장된 전원 정보가 노멀 파워 오프를 지시하지 않을 때, 비휘발성 메모리 장치(100)가 SPO 되었다고 처리할 수 있다.In an embodiment, SPO information may be obtained based on stored power information. For example, when the nonvolatile memory device 100 is powered off, and the stored power information does not indicate normal power off, the nonvolatile memory device 100 may be processed as an SPO.

메모리 제어기(200)는 전원 정보를 근거로 하여 더미 프로그램 동작의 여부를 결정하고, 비휘발성 메모리 장치(100)의 대응하는 적어도 하나의 페이지에 더미 프로그램 동작을 수행시킨다. 메모리 제어기(200)는 더미 프로그램 판별기(220) 및 더미 데이터 발생기(240)를 포함한다.The memory controller 200 determines whether the dummy program operation is based on the power information and performs a dummy program operation on at least one page corresponding to the nonvolatile memory device 100. The memory controller 200 includes a dummy program discriminator 220 and a dummy data generator 240.

더미 프로그램 판별기(220)는 메타 영역(111)으로부터 읽혀진 전원 정보를 근거로 하여 SPO인 지를 판별한다. 만일, 비휘발성 메모리 장치(100)가 SPO 되었다면, 더미 프로그램 판별기(220)는 SPO시 프로그램 동작을 수행 중이던 바운더리(boundary) 페이지를 검색한다. 만일, 더미 프로그램 판별기(220)는 바운더리 페이지가 검색 되었다면, 바운더리 페이지에 더미 프로그램 동작이 필요한지를 판별한다.The dummy program discriminator 220 determines whether it is an SPO based on the power information read from the meta area 111. If the nonvolatile memory device 100 is SPO, the dummy program discriminator 220 searches for a boundary page that was performing a program operation during SPO. If the dummy program discriminator 220 detects a boundary page, it determines whether a dummy program operation is required on the boundary page.

실시 예에 있어서, 더미 프로그램 동작은, 바운더리 페이지가 검색되더라도 클린 페이지(clean page)의 개수에 따라 수행 여부가 결정될 수 있다. 여기서 클린 페이지는 데이터가 쓰여지지 않은 페이지를 의미한다.In an embodiment, whether or not the dummy program operation is performed may be determined according to the number of clean pages even when a boundary page is searched. Here, a clean page means a page in which data is not written.

더미 데이터 발생기(240)는 바운더리 페이지에 더미 프로그램 동작이 필요하다고 결정될 때 랜덤 데이터(random data 혹은 meaningless data)를 발생시킨다. 실시 예에 있어서, 랜덤 데이터는 바운더리 페이지에 대응하는 어드레스(물리 어드레스 혹은 물리 어드레스)를 씨드 값으로 이용하여 발생될 수 있다.The dummy data generator 240 generates random data or meaningless data when it is determined that a dummy program operation is required on the boundary page. In an embodiment, random data may be generated using an address (physical address or physical address) corresponding to a boundary page as a seed value.

메모리 제어기(200)는 더미 프로그램 동작이 결정될 때 프로그램 명령, 바운더리 페이지에 대응하는 어드레스 및 더미 데이터를 비휘발성 메모리 장치(100)로 전송할 것이다.When the dummy program operation is determined, the memory controller 200 transmits a program command, an address corresponding to a boundary page, and dummy data to the nonvolatile memory device 100.

일반적인 저장 장치는 SPO시 프로그램 동작 중이던 메모리 블록은 더 이상 사용하지 않고 새로운 메모리 블록을 할당하여 이전 프로그램 동작을 진행하였다. 이로 인하여, 메모리 블록에 클린 페이지들이 많이 존재하더라도, 소거 동작이 수행되어야 했다. 그 결과 메모리 블록의 수명이 단축되는 문제점이 야기된다.In the general storage device, a memory block that was being operated during SPO is no longer used, and a new memory block is allocated and the previous program is performed. For this reason, even if there are many clean pages in the memory block, an erase operation has to be performed. As a result, a problem occurs in that the life of the memory block is shortened.

반면에, 본 발명의 실시 예에 따른 저장 장치(10)는 SPO시 메모리 블록의 바운더리 페이지를 찾고, 바운더리 페이지에 더미 프로그램 동작을 수행함으로써, 메모리 블록의 존재하는 클린 페이지들에 이어 쓰기를 진행할 수 있다. 이에, 메모리 블록에 프로그램된 기존 데이터를 보장하면서, 불필요한 소거 동작을 방지함으로써, 메모리 블록의 수명이 개선될 수 있다.On the other hand, the storage device 10 according to an embodiment of the present invention can perform a subsequent write to clean pages of the memory block by finding a boundary page of the memory block and performing a dummy program operation on the boundary page during SPO. have. Accordingly, by guaranteeing existing data programmed in the memory block, and preventing unnecessary erase operations, the life of the memory block can be improved.

도 3은 도 2에 도시된 메모리 블록을 예시적으로 보여주는 도면이다. 도 3를 참조하면, 메모리 블록(MB)은 복수의 비트라인들(BL1 ~ BLn, n는 2 이상의 정수)에 연결된 스트링들을 포함한다. 여기서 스트링들 각각은 비트라인과 공통 소스 라인(common source line; CSL) 사이에 직렬 연결된 적어도 하나의 스트링 선택 트랜지스터(SST), 복수의 메모리 셀들(MC1 ~ MCm, m은 2 이상의 정수), 적어도 하나의 접지 선택 트랜지스터(GST)를 포함한다. 메모리 셀들(MC1 ~ MCm) 각각은 적어도 하나의 비트 이상의 데이터를 저장할 수 있다.FIG. 3 is a diagram exemplarily showing a memory block illustrated in FIG. 2. Referring to FIG. 3, the memory block MB includes strings connected to a plurality of bit lines BL1 to BLn, where n is an integer of 2 or more. Here, each of the strings is at least one string select transistor (SST) connected in series between a bit line and a common source line (CSL), a plurality of memory cells (MC1 to MCm, m is an integer of 2 or more), at least one It includes a ground selection transistor (GST). Each of the memory cells MC1 to MCm may store data of at least one bit or more.

워드라인들(WL1 ~ WLm) 각각에는 복수의 메모리 셀들이 연결될 수 있다. 워드라인들(WL1 ~ WLm) 각각에 연결된 복수의 메모리 셀들을 통칭하여 페이지라 부른다. 워드라인들(WL1 ~ WLm) 각각에는 구동에 필요한 워드라인 전압들(프로그램 전압, 패스 전압, 읽기 전압, 읽기 패스 전압, 등)이 인가될 수 있다. 스트링 선택 라인(SSL)에는 스트링 선택 트랜지스터(SST)를 제어하기 위한 스트링 선택 전압이 인가될 수 있다. 접지 선택 라인(GSL)에는 접지 선택 트랜지스터(GST)를 제어하기 위한 접지 선택 전압이 인가될 수 있다.A plurality of memory cells may be connected to each of the word lines WL1 to WLm. A plurality of memory cells connected to each of the word lines WL1 to WLm is collectively called a page. The word line voltages (program voltage, pass voltage, read voltage, read pass voltage, etc.) required for driving may be applied to each of the word lines WL1 to WLm. A string select voltage for controlling the string select transistor SST may be applied to the string select line SSL. A ground selection voltage for controlling the ground selection transistor GST may be applied to the ground selection line GSL.

본 발명은 WLm-3에 연결된 페이지(바운더리 페이지)에 대한 프로그램 동작 중에 SPO가 발생 될 때, 바운더리 페이지로부터 상부 워드라인들(WLm-2, WLm-1, WLm)에 연결된 페이지들에 이어 쓰기를 진행할 수 있다.In the present invention, when an SPO occurs during a program operation for a page (boundary page) connected to WLm-3, writing from the boundary page to pages connected to upper word lines WLm-2, WLm-1, and WLm is continued. You can proceed.

도 4는 본 발명의 실시 예에 따른 메모리 블록에 대한 프로그램 동작에 대한 제 1 실시 예를 보여주는 도면이다. 설명의 편의를 위하여 SPO에 의하여 바운더리 페이지가 야기된다고 가정하겠다. 도 4를 참조하면, 바운더리 페이지 아래에는 노멀 프로그램 동작을 수행한 노멀 데이터 페이지들 배치된다. 바운더리 페이지에 더미 프로그램 동작이 수행됨으로써, 더미 데이터 페이지가 발생될 것이다. 바운더리 페이지 상부에는 데이터가 쓰여지지 않은 클린 페이지들이 배치될 것이다. 클린 페이지들에는 노멀 프로그램 동작을 위한 이어 쓰기가 진행될 수 있다.4 is a diagram illustrating a first embodiment of a program operation for a memory block according to an embodiment of the present invention. For convenience of explanation, it is assumed that the boundary page is caused by the SPO. Referring to FIG. 4, normal data pages on which a normal program operation is performed are disposed below the boundary page. By performing a dummy program operation on the boundary page, a dummy data page will be generated. At the top of the boundary page, clean pages without data will be arranged. The clean pages may be rewritten for normal program operation.

실시 예에 있어서, 노멀 프로그램 동작은 멀티-비트 프로그램 동작일 수 있다. 여기서 멀티-비트 프로그램 동작은 재프로그래밍 방식에 의해 수행될 수 있다.In an embodiment, the normal program operation may be a multi-bit program operation. Here, the multi-bit program operation may be performed by a reprogramming method.

실시 예에 있어서, 더미 프로그램 동작은 싱글-비트 프로그램 동작이거나 멀티-비트 프로그램 동작일 수 있다. 실시 예에 있어서, 더미 프로그램 동작의 프로그램 속도는 노멀 프로그램 동작의 그것보다 빠를 수 있다.In an embodiment, the dummy program operation may be a single-bit program operation or a multi-bit program operation. In an embodiment, the program speed of the dummy program operation may be faster than that of the normal program operation.

본 발명은 바운더리 페이지에 더미 프로그램 동작을 수행한 뒤에, 바운더리 페이지 상부에 위치한 클린 페이지들에 계속적으로 노멀 프로그램 동작을 수행할 수 있다.According to the present invention, after performing a dummy program operation on a boundary page, a normal program operation may be continuously performed on clean pages located above the boundary page.

한편, 도 4에서 바운더리 페이지에 더미 프로그램 동작이 수행되었다. 본 발명은 여기에 제한되지 않을 것이다. 바운더리 페이지 아래의 하부 페이지에도 더미 프로그램 동작이 수행될 수 있다.Meanwhile, in FIG. 4, a dummy program operation is performed on the boundary page. The present invention will not be limited to this. A dummy program operation may be performed on a lower page below the boundary page.

도 5는 본 발명의 실시 예에 따른 메모리 블록에 대한 프로그램 동작에 대한 제 2 실시 예를 보여주는 도면이다. 도 5를 참조하면, 바운더리 페이지 및 바운더리 페이지로부터 하부 페이지에 더미 프로그램 동작이 수행될 것이다. 이후 클린 페이지들에는 노멀 프로그램 동작을 위한 이어 쓰기가 진행될 수 있다.5 is a diagram illustrating a second embodiment of a program operation for a memory block according to an embodiment of the present invention. Referring to FIG. 5, a dummy program operation will be performed on the boundary page and the lower page from the boundary page. Subsequently, subsequent writing for normal program operation may be performed on clean pages.

실시 예에 있어서, 바운더리 페이지 아래의 페이지에 대한 더미 프로그램 동작 여부는, 프로그램 뎁쓰(program depth)에 따라 결정될 수 있다. 여기서 프로그램 뎁쓰는 재프로그래밍(reprograming) 혹은 새도우(shadow) 방식에서(1st Step ==> 2nd Step ==> 3rd PGM) 워드라인에 연결된 메모리 셀들에 프로그램된 정도를 지시할 수 있다.In an embodiment, whether to operate a dummy program for a page below the boundary page may be determined according to a program depth. Here, the program depth may indicate a degree programmed in memory cells connected to a word line in a reprogramming or shadow method (1st Step ==> 2nd Step ==> 3rd PGM).

도 5에서는 바운더리 페이지 아래의 하나의 페이지에만 더미 프로그램 동작을 수행하였다. 하지만 본 발명이 여기에 제한되지 않을 것이다. 본 발명은 바운더리 페이지 아래에 복수의 하부 페이지들에 더미 프로그램 동작을 수행할 수 있다.In FIG. 5, a dummy program operation is performed on only one page below the boundary page. However, the present invention will not be limited to this. The present invention can perform a dummy program operation on a plurality of lower pages under the boundary page.

본 발명은 바운더리 페이지로부터 적어도 하나의 하부 페이지에 더미 프로그램 동작을 수행할 수 있다.The present invention can perform a dummy program operation from a boundary page to at least one lower page.

도 6은 본 발명의 실시 예에 따른 프로그램 뎁쓰를 설명하기 위한 도면이다. 본 발명은 제 1 단계 프로그램 동작(1st Step)에서 제 2 단계 프로그램 동작(2nd Step)으로, 제 2 단계 프로그램 동작(2nd Step)에서 제 3 단계 프로그램 동작(3nd Step)으로 진행되는 재프로그래밍 방식에 따라 프로그램 동작이 수행된다고 가정하겠다. 도 6을 참조하면, 제 5 워드라인(WL5)에 대한 제 1 단계 프로그램 동작(1st Step) 중에 SPO가 발생 되었다고 가정하겠다. 이때 제 5 워드라인(WL5)에 연결된 메모리 셀들에 약하게 프로그램 동작이 진행되었을 것이다.6 is a view for explaining a program depth according to an embodiment of the present invention. The present invention relates to a reprogramming method that proceeds from a first step program operation (1st Step) to a second step program operation (2nd Step), and from a second step program operation (2nd Step) to a third step program operation (3nd Step). Therefore, it is assumed that the program operation is performed. Referring to FIG. 6, it is assumed that an SPO is generated during a first step program operation (1st Step) for a fifth word line WL5. At this time, the program operation may be weakly performed on the memory cells connected to the fifth word line WL5.

한편, 본 발명의 프로그램 동작이 반드시 재프로그램 방식으로 수행된다고 제한될 필요는 없다. 본 발명의 프로그램 동작은 새도우(shadow) 프로그램 방식으로 수행될 수 있다. 이때, 제 1 단계 프로그램 동작(1st Step)은 싱글 레벨 셀 프로그램 동작이고, 제 2 단계 프로그램 동작(2nd Step)은 투 레벨 셀 프로그램 동작이고, 제 3 단계 프로그램 동작(3nd Step)은 쓰리 레벨 셀 프로그램 동작일 수 있다.Meanwhile, the program operation of the present invention is not necessarily limited to being performed in a reprogrammed manner. The program operation of the present invention may be performed using a shadow program method. At this time, the first step program operation (1st Step) is a single level cell program operation, the second step program operation (2nd Step) is a two level cell program operation, and the third step program operation (3nd Step) is a three level cell program operation. It can be an action.

한편, 프로그램 뎁쓰는 프로그램 동작의 단계가 높아질수록 깊어진다. 제 1 및 제 2 워드라인들(WL1, WL3)의 프로그램 뎁쓰들은, 도 6에 도시된 바와 같이, 제 3 단계 프로그램 동작(3rd Step)까지 모두 진행된 상태로서 상대적으로 깊다.On the other hand, the program depth becomes deeper as the level of the program operation increases. The program depths of the first and second word lines WL1 and WL3 are relatively deep as they are all progressed to the third step program operation (3rd Step) as illustrated in FIG. 6.

제 3 워드라인(WL3)의 프로그램 뎁쓰는, 도 6에 도시된 바와 같이, 제 2 단계 프로그램 동작(2nd Step)까지 모두 진행된 상태로서 상대적으로 양호한 편이다. 실시 예에 있어서, 더미 프로그램 동작 전에 제 3 워드라인(WL3)의 제 3 단계 프로그램 동작(3rd Step), 즉 파인 프로그램 동작(fine program)이 수행될 수 있다.As illustrated in FIG. 6, the program depth of the third word line WL3 is relatively good as it progresses to the second step program operation (2nd Step). In an embodiment, a third program operation (3rd step) of the third word line WL3, that is, a fine program operation may be performed before the dummy program operation.

제 4 워드라인(WL4)의 프로그램 뎁쓰는, 도 6에 도시된 바와 같이, 제 1 단계 프로그램 동작(1st step)만 진행된 상태로서 상대적으로 얇다. 실시 예에 있어서, 제 4 워드라인(WL4)에 대응하는 페이지에 더미 프로그램 동작이 수행될 수 있다.As illustrated in FIG. 6, the program depth of the fourth word line WL4 is relatively thin as only the first step program operation (1st step) is in progress. In an embodiment, a dummy program operation may be performed on a page corresponding to the fourth word line WL4.

SPO 발생으로 제 5 워드라인(WL5)에 대응하는 페이지는 바운더리 페이지가 될 것이다. 바운더리 페이지에는 이어 쓰기를 위한 더미 프로그램 동작이 수행될 것이다. 이후, 제 5 워드라인(WL5)의 상부 워드라인, 즉 제 6 워드라인(WL6)부터는 클린 페이지로써, 이어 쓰기가 진행될 수 있다.The page corresponding to the fifth word line WL5 due to the occurrence of SPO will be a boundary page. A dummy program operation for subsequent writing will be performed on the boundary page. Thereafter, the upper word line of the fifth word line WL5, that is, the sixth word line WL6, is a clean page, and subsequent writing may be performed.

실시 예에 있어서, 워드라인들에 대한 프로그램 뎁쓰는 메타 영역(111)에 저장된 맵테이블 정보로부터 알 수 있다.In an embodiment, the program depth for word lines can be known from map table information stored in the meta area 111.

본 발명은 프로그램 뎁쓰에 따라 더미 프로그램 동작 여부를 결정할 수 있다.The present invention can determine whether to operate the dummy program according to the program depth.

한편, 도 5 및 도 6에서는 바운더리 페이지 아래의 하부 페이지에 대한 더미 프로그램 동작을 수행하였다. 하지만 본 발명이 여기에 제한되지 않으며, 본 발명은 바운더리 페이지로부터 적어도 하나의 상부 페이지에도 더미 프로그램 동작을 수행할 수 있다.Meanwhile, in FIGS. 5 and 6, a dummy program operation is performed on a lower page below the boundary page. However, the present invention is not limited to this, and the present invention can perform a dummy program operation on at least one upper page from a boundary page.

도 7은 본 발명의 실시 예에 따른 메모리 블록에 대한 프로그램 동작에 대한 제 3 실시 예를 보여주는 도면이다. 도 7을 참조하면, 바운더리 페이지 및 바운더리 페이지로부터 상부 페이지에 더미 프로그램 동작이 수행될 것이다. 이후 클린 페이지들에는 노멀 프로그램 동작을 위한 이어 쓰기가 진행될 수 있다.7 is a view showing a third embodiment of a program operation for a memory block according to an embodiment of the present invention. Referring to FIG. 7, a dummy program operation will be performed on a boundary page and an upper page from a boundary page. Subsequently, subsequent writing for normal program operation may be performed on clean pages.

실시 예에 있어서, 바운더리 페이지로부터 소정 개수의 상부 페이지들에 조건없이 더미 프로그램 동작이 수행될 수 있다.In an embodiment, a dummy program operation may be performed without condition on a predetermined number of upper pages from a boundary page.

다른 실시 예에 있어서, 바운더리 페이지로부터 적어도 하나의 상부 페이지가 클린 페이지인 지 체크를 한 뒤, 상부 페이지가 클린 페이지가 아니라면 더미 프로그램 동작이 수행될 수 있다.In another embodiment, after checking whether at least one upper page is a clean page from the boundary page, a dummy program operation may be performed if the upper page is not a clean page.

도 7에서는 바운더리 페이지로부터 하나의 상부 페이지만 더미 프로그램 동작이 수행되었다. 하지만 본 발명은 여기에 제한되지 않을 것이다. 본 발명은 바운더리 페이지로부터 복수의 상부 페이지들에 더미 프로그램 동작을 수행할 수 있다.In FIG. 7, a dummy program operation is performed for only one upper page from a boundary page. However, the present invention will not be limited to this. The present invention can perform a dummy program operation on a plurality of upper pages from a boundary page.

한편, 도 5 내지 도 7에서는 하나의 블록에 하나의 이어 쓰기만을 기술하였다. 하지만, 본 발명이 여기에 제한되지 않을 것이다. 본 발명은 하나의 블록에 복수의 이어 쓰기를 진행할 수 있다.Meanwhile, in FIGS. 5 to 7, only one ear write is described in one block. However, the present invention will not be limited to this. According to the present invention, a plurality of ear writes can be performed in one block.

도 8은 본 발명의 실시 예에 따른 메모리 블록에 대한 프로그램 동작에 대한 제 4 실시 예를 보여주는 도면이다. 도 8을 참조하면, 제 1 서든 파워 오프(SPO1)에 의해 야기되는 제 1 바운더리 페이지에 더미 프로그램 동작이 수행된 후, 1차적인 이어 쓰기가 진행될 수 있다. 이후, 제 2 서든 파워 오프(SPO2)에 의해 야기되는 제 2 바운더리 페이지에 더미 프로그램 동작이 수행된 후, 2차적인 이어 쓰기가 진행될 수 있다.8 is a diagram illustrating a fourth embodiment of a program operation for a memory block according to an embodiment of the present invention. Referring to FIG. 8, after the dummy program operation is performed on the first boundary page caused by the first sudden power off (SPO1), primary earwriting may be performed. Thereafter, after the dummy program operation is performed on the second boundary page caused by the second sudden power off (SPO2), secondary earwriting may proceed.

본 발명은 하나의 메모리 블록에서 여러 번의 이어 쓰기를 진행할 수 있다.The present invention can perform multiple ear writes in one memory block.

도 9는 본 발명의 실시 예에 따른 바운더리 페이지 탐색 및 클린 페이지 탐색을 예시적으로 설명하기 위한 도면이다. 설명의 편의를 위하여 본 발명은 3-비트 메모리 셀에 프로그램된다고 가정하겠다. 즉, 도 9에 도시된 바와 같이, 프로그램 동작에 따라 데이터를 저장하기 위하여 소거 상태(E) 및 프로그램 상태들(P1 ~ P7) 중 어느 하나로 메모리 셀의 문턱전압이 변경될 것이다.9 is a diagram for illustratively explaining a boundary page search and a clean page search according to an embodiment of the present invention. For convenience of description, it is assumed that the present invention is programmed in a 3-bit memory cell. That is, as illustrated in FIG. 9, in order to store data according to the program operation, the threshold voltage of the memory cell may be changed to one of the erase state E and the program states P1 to P7.

메모리 블록에 바운더리 페이지를 검색하기 위하여 바운더리 페이지 읽기 전압(R_BP)이 이용될 수 있다. 즉, 메모리 블록의 워드라인들로 바운더리 페이지 읽기 전압(R_BP)을 인가하여 읽기 동작들을 순차적으로 수행함으로써, 바운더리 페이지가 검색될 수 있다. 예를 들어, 바운더리 페이지 읽기 동작시 바운더리 페이지 읽기 전압(R_BP) 보다 문턱전압이 높은 메모리 셀들의 개수가 소정의 값 아래인 워드라인에 대응하는 페이지는 바운더리 페이지로 판별될 수 있다.The boundary page read voltage R_BP may be used to search for a boundary page in the memory block. That is, the boundary pages may be searched by sequentially applying read operations by applying the boundary page read voltage R_BP to word lines of the memory block. For example, a page corresponding to a word line in which the number of memory cells having a threshold voltage higher than a boundary page read voltage R_BP during a boundary page read operation is below a predetermined value may be determined as a boundary page.

메모리 블록에 클린 페이지를 검색하기 위하여 클린 페이지 읽기 전압(R_CP)이 이용될 수 있다. 즉, 바운더리 페이지 위의 워드라인들 중 소정의 개수에 대하여 클린 페이지 읽기 전압(R_CP)을 인가하여 읽기 동작들을 순차적으로 수행함으로써, 클린 페이지가 검색될 수 있다. 예를 들어, 읽기 동작시 클린 페이지 읽기 전압(R_CP) 보다 문턱전압이 높은 메모리 셀들의 개수가 소정의 값 아래인 워드라인에 대응하는 페이지는 클린 페이지로 판별될 수 있다.The clean page read voltage R_CP may be used to search for a clean page in the memory block. That is, a clean page can be searched by sequentially performing read operations by applying a clean page read voltage R_CP to a predetermined number of word lines on the boundary page. For example, a page corresponding to a word line in which the number of memory cells having a threshold voltage higher than a clean page read voltage R_CP during a read operation is below a predetermined value may be determined as a clean page.

실시 예에 있어서, 클린 페이지 읽기 전압(R_CP)은 바운더리 페이지 읽기 전압(R_BP)보다 낮을 것이다.In an embodiment, the clean page read voltage R_CP will be lower than the boundary page read voltage R_BP.

도 10은 본 발명의 실시 예에 따른 페이지 구조를 예시적으로 보여주는 도면이다. 도 10을 참조하면, 페이지는 사용자 데이터를 저장하는 메인 영역과 사용자 데이터를 관리하기 위한 관리 정보를 저장하는 스페어 영역으로 구분될 수 있다. 여기서 스페어 영역은 페이지에 더미 프로그램 동작이 수행되었는 지 여부를 알려주는 정보를 저장할 수 있다. 따라서, 어느 하나의 페이지가 더미 데이터 페이지인지에 대한 판별은 읽기 동작에 의해 결정될 수 있다.10 is a diagram showing a page structure according to an embodiment of the present invention by way of example. Referring to FIG. 10, the page may be divided into a main area storing user data and a spare area storing management information for managing user data. Here, the spare area may store information indicating whether a dummy program operation has been performed on the page. Therefore, the determination as to which one page is the dummy data page can be determined by a read operation.

한편, 본 발명의 스페어 영역에는 반드시 더미 프로그램 동작 수행 여부를 저장할 필요는 없다. 본 발명의 더미 데이터는 읽기 동작이 필요하지 않은 무의미한 데이터이기 때문에 스페어 영역의 데이터 역시 무의미한 데이터로 구성될 수도 있다.Meanwhile, it is not necessary to store whether or not a dummy program operation is performed in the spare area of the present invention. Since the dummy data of the present invention is meaningless data that does not require a read operation, data in the spare area may also be configured as meaningless data.

도 11은 본 발명의 실시 예에 따른 저장 장치(10)의 프로그램 방법에 대한 제 1 실시 예를 보여주는 흐름도이다. 도 2 내지 도 10, 및 도 11을 참조하면, 프로그램 방법은 다음과 같다.11 is a flowchart illustrating a first embodiment of a program method of a storage device 10 according to an embodiment of the present invention. 2 to 10, and 11, the program method is as follows.

저장 장치(10)가 전원 공급시 이전에 SPO가 발생되었다는 것을 인지하면, 프로그램 동작이 진행 중이었던 메모리 블록에서 바운더리 페이지를 검색하기 위한 바운더리 검색 동작이 수행될 수 있다. 여기서 바운더리 페이지 검색 동작은 도 9에 설명된 바와 같이 진행될 수 있다(S110). 바운더리 페이지가 검색된 후, 바운더리 페이지 상부의 적어도 하나의 클린 페이지 상태를 체크하기 위한 클린 페이지 검색 동작이 수행될 수 있다. 여기서 클린 페이지 검색 동작은 도 9에서 설명된 바와 같이 진행될 수 있다(S120).When the storage device 10 recognizes that an SPO has occurred before the power is supplied, a boundary search operation for searching a boundary page in a memory block in which a program operation was in progress may be performed. Here, the boundary page search operation may be performed as described in FIG. 9 (S110). After the boundary page is searched, a clean page search operation may be performed to check the state of at least one clean page at the top of the boundary page. Here, the clean page search operation may be performed as described in FIG. 9 (S120).

바운더리 페이지에 더미 프로그램 동작이 수행될 수 있다(S130). 이때, 프로그램 뎁쓰에 따라 바운더리 페이지 아래의 페이지에 더미 프로그램 동작이 수행되거나, 클린 페이지의 상태에 따라 바운더리 페이지 위의 페이지에 더미 프로그램 동작이 수행될 수도 있다. 실시 예에 있어서, 클린 페이지 검색 동작에서 클린 페이지의 상태가 좋지 않다면 더미 프로그램 동작이 수행되지 않을 수 있다. 더미 프로그램 동작이 수행된 후, 클린 페이지에 대한 이어 쓰기가 진행될 것이다(S140).A dummy program operation may be performed on the boundary page (S130). In this case, a dummy program operation may be performed on a page under the boundary page according to a program depth, or a dummy program operation may be performed on a page above the boundary page according to a state of a clean page. In an embodiment, if the state of the clean page is not good in the clean page search operation, the dummy program operation may not be performed. After the dummy program operation is performed, subsequent writing to the clean page will proceed (S140).

본 발명의 실시 예에 따른 프로그램 방법은 바운더리 페이지에 더미 프로그램 동작을 수행한 뒤에 클린 페이지들에 이어 쓰기를 진행할 수 있다.In the program method according to an embodiment of the present invention, after performing a dummy program operation on a boundary page, writing may be performed following clean pages.

한편, 도 11에서는 더미 프로그램 동작을 수행하기 전에 바운더리 페이지를 검색하였다. 그러나 본 발명이 반드시 바운더리 페이지를 검색할 필요는 없다. 본 발명은 최초 클린 페이지(initial clean page)를 검색한 뒤에 더미 프로그램 동작을 수행할 수도 있다. 이는 최초 클린 페이지의 이전 페이지가 바운더리 페이지로 결정될 수 있기 때문이다.On the other hand, in FIG. 11, before performing the dummy program operation, the boundary page was searched. However, the present invention does not necessarily have to search for a boundary page. The present invention may perform a dummy program operation after searching for an initial clean page. This is because the previous page of the first clean page can be determined as a boundary page.

도 12는 본 발명의 실시 예에 따른 저장 장치(10)의 프로그램 방법에 대한 제 2 실시 예를 보여주는 흐름도이다. 도 2 내지 도 10 및 도 12를 참조하면, 프로그램 방법은 다음과 같다.12 is a flowchart illustrating a second embodiment of a program method of a storage device 10 according to an embodiment of the present invention. 2 to 10 and 12, the program method is as follows.

타겟 메모리 블록에 대한 바이너리 검색(binary searching)에 의하여 최초 클린 워드라인이 결정될 수 있다(S210). 예를 들어, 최초 클린 워드라인은, 도 9에 설명된 바와 같은 워드라인들에 대한 클린 페이지 검색 동작으로 결정될 수 있다(S210). 이때 바운더리 페이지는 최초 클린 워드라인로부터 아래 워드라인에 대응하는 페이지일 가능성이 높다. 아래 워드라인의 프로그램 뎁쓰가 제 1 단계 프로그램 동작의 그것보다 큰 것인지 판별될 수 있다(S220).The first clean word line may be determined by binary searching for the target memory block (S210). For example, the first clean word line may be determined as a clean page search operation for word lines as described in FIG. 9 (S210). At this time, the boundary page is likely to be a page corresponding to the word line below from the first clean word line. It may be determined whether the program depth of the word line below is greater than that of the first step program operation (S220).

만일, 최초 클린 워드라인로부터 아래 워드라인의 프로그램 뎁쓰가 제 1 단계 프로그램 동작의 그것보다 크지 않다면, 아래 워드라인에 대한 더미 프로그램 동작이 수행될 것이다(S230).이후, 최초 클린 워드라인에 대한 더미 프로그램 동작이 수행될 것이다(S240). 반면에, 최초 클린 워드라인로부터 아래 워드라인의 프로그램 뎁쓰가 제 1 단계 프로그램 동작의 그것보다 크다면, 아래 워드라인에 대한 더미 프로그램 동작은 수행되지 않고, S240 단계가 진행될 것이다. 이후, 최초 클린 페이지 상부의 클린 페이지들에 대한 이어 쓰기가 진행될 것이다(S250).If the program depth of the lower word line from the first clean word line is not greater than that of the first stage program operation, a dummy program operation for the lower word line will be performed (S230). Subsequently, the dummy for the first clean word line. The program operation will be performed (S240). On the other hand, if the program depth of the lower word line from the first clean word line is greater than that of the first step program operation, the dummy program operation for the lower word line is not performed, and step S240 will proceed. Thereafter, subsequent writing to the clean pages above the first clean page will be performed (S250).

본 발명의 실시 예에 따른 프로그램 방법은 검색된 최초 클린 워드라인에 대한 더미 프로그램 동작을 수행한 뒤에 클린 페이지들에 이어 쓰기를 진행할 수 있다.In the program method according to an embodiment of the present invention, after performing a dummy program operation on the first searched clean word line, subsequent writing to clean pages may be performed.

도 13은 본 발명의 실시 예에 따른 더미 프로그램 동작을 예시적으로 보여주는 흐름도이다. 도 13을 참조하면, 더미 프로그램 동작은 다음과 같다.13 is a flowchart exemplarily showing a dummy program operation according to an embodiment of the present invention. Referring to FIG. 13, the dummy program operation is as follows.

메모리 제어기(도 1 참조, 200)는 더미 프로그램 동작이 필요한 지를 판별한다. 만일 더미 프로그램 동작이 필요하다면, 더미 프로그램 명령이 발행되고, 더미 데이터가 발생될 수 있다(S310). 실시 예에 있어서, 더미 프로그램 명령은 특정한 프로그램 명령일 수 있다. 다른 실시 예에 있어서, 더미 프로그램 명령은 노멀 프로그램 명령일 수 있다. 실시 예에 있어서, 더미 데이터는 바운더리 페이지에 대응하는 어드레스를 씨드 값으로 이용하는 랜덤 데이터일 수 있다.The memory controller (see FIG. 1, 200) determines whether dummy program operation is required. If a dummy program operation is necessary, a dummy program command is issued and dummy data may be generated (S310). In an embodiment, the dummy program command may be a specific program command. In another embodiment, the dummy program command may be a normal program command. In an embodiment, the dummy data may be random data using an address corresponding to a boundary page as a seed value.

비휘발성 메모리 장치(100, 도 1 참조)는 더미 프로그램 명령, 바운더리 페이지에 대응하는 어드레스, 더미 데이터를 입력 받고, 바운더리 페이지(들)에 더미 프로그램 동작을 수행한다.The nonvolatile memory device 100 (refer to FIG. 1) receives a dummy program command, an address corresponding to a boundary page, and dummy data, and performs a dummy program operation on the boundary page (s).

본 발명의 실시 예에 따른 더미 프로그램 동작은 더미 데이터를 발생하고, 발생된 더미 데이터를 바운더리 페이지에 프로그램시킨다.The dummy program operation according to an embodiment of the present invention generates dummy data and programs the generated dummy data on a boundary page.

한편, 본 발명은 노멀 프로그램 동작의 프로그램 속도보다 빠르게 더미 데이터를 프로그램 시킬 수 있다.On the other hand, the present invention can program dummy data faster than the program speed of the normal program operation.

도 14는 본 발명의 실시 예에 따른 저장 장치(10)의 프로그램 방법에 대한 제 3 실시 예를 보여주는 흐름도이다. 도 2 내지 도 10 및 도 14를 참조하면, 프로그램 방법은 다음과 같다.14 is a flowchart illustrating a third embodiment of a program method of a storage device 10 according to an embodiment of the present invention. 2 to 10 and 14, the program method is as follows.

노멀 프로그램 모드로 제 1 워드라인에 연결된 메모리 셀들에 노멀 데이터가 프로그램될 것이다(S410). 이후, 제 1 워드라인 위에 위치한 제 2 워드라인에 대한 프로그램 동작 중 SPO가 발생될 때, 스피드 프로그램 모드로 제 2 워드라인에 연결된 메모리 셀들(예를 들어, 바운더리 페이지)에 더미 데이터가 프로그램될 수 있다(S420). 여기서 스피드 프로그램 모드는 노멀 프로그램 모드보다 프로그램 속도가 빠르다.In the normal program mode, normal data is programmed in memory cells connected to the first word line (S410). Thereafter, when an SPO occurs during a program operation for the second word line located above the first word line, dummy data may be programmed in memory cells (eg, a boundary page) connected to the second word line in the speed program mode. Yes (S420). Here, the speed program mode has a faster program speed than the normal program mode.

실시 예에 있어서, 스피드 프로그램 모드는 SLC(single level cell) 프로그램 동작 모드이고, 노멀 프로그램 모드는 MLC(multi level cell) 프로그램 동작 모드일 수 있다. 다른 실시 예에 있어서, 스피드 프로그램 모드는 검증 동작이 스킵된 SLC/MLC 프로그램 동작 모드일 수 있다. 이후, 제 2 워드라인 위에 위치한 제 3 워드라인에 연결된 메모리 셀들(예를 들어, 클린 페이지)에 노멀 데이터가 프로그램 될 것이다(S430).In an embodiment, the speed program mode may be a single level cell (SLC) program operation mode, and the normal program mode may be a multi level cell (MLC) program operation mode. In another embodiment, the speed program mode may be an SLC / MLC program operation mode in which the verification operation is skipped. Thereafter, normal data will be programmed in memory cells (eg, a clean page) connected to the third word line located above the second word line (S430).

본 발명의 실시 예에 따른 프로그램 방법은 프로그램 속도가 빠른 스피드 프로그램 모드로 더미 프로그램 동작을 수행할 수 있다.The program method according to an embodiment of the present invention may perform a dummy program operation in a speed program mode having a high program speed.

한편, 본 발명은 더미 프로그램 동작 시 더미 데이터에 대한 신뢰성을 확보할 필요가 없다. 따라서 본 발명은 더미 데이터의 신뢰성이 낮아지더라도 비선택 워드라인에 대응하는 패스 전압 디스터번스를 줄이도록 더미 프로그램 동작을 수행할 수 있다.On the other hand, the present invention does not need to secure reliability of the dummy data during the dummy program operation. Therefore, the present invention can perform the dummy program operation to reduce the pass voltage disturbance corresponding to the unselected word line even if the reliability of the dummy data decreases.

도 15는 본 발명의 실시 예에 따른 저장 장치(10)의 프로그램 방법에 대한 제 4 실시 예를 보여주는 흐름도이다. 도 2 내지 도 10 및 도 15를 참조하면, 프로그램 방법은 다음과 같다.15 is a flowchart illustrating a fourth embodiment of a program method of a storage device 10 according to an embodiment of the present invention. 2 to 10 and 15, the program method is as follows.

제 1 워드라인에 연결된 메모리 셀들에 노멀 데이터가 프로그램될 수 있다(S510). 이후, 제 1 워드라인 위에 위치한 제 2 워드라인에 대한 프로그램 동작 중 SPO가 발생될 때, 제 2 워드라인에 연결된 메모리 셀들(예를 들어, 바운더리 페이지)에 더미 데이터가 프로그램될 수 있다. 이때, 패스 전압 디스터번스를 줄이도록 하기 위하여 비선택 워드라인들에 노멀 프로그램 동작보다 낮은 패스 전압이 인가될 수 있다(S520). 이후, 제 2 워드라인 위에 위치한 제 3 워드라인에 연결된 메모리 셀들(예를 들어, 클린 페이지)에 노멀 데이터가 프로그램 될 수 있다(S530).Normal data may be programmed in memory cells connected to the first word line (S510). Thereafter, when an SPO occurs during a program operation on the second word line positioned above the first word line, dummy data may be programmed in memory cells (eg, a boundary page) connected to the second word line. At this time, a pass voltage lower than the normal program operation may be applied to the non-selected word lines in order to reduce the pass voltage disturbance (S520). Thereafter, normal data may be programmed in memory cells (eg, a clean page) connected to the third word line positioned above the second word line (S530).

본 발명의 실시 예에 따른 프로그램 방법은 패스 전압 디스터번스를 줄이도록 더미 프로그램 동작을 수행할 수 있다.The program method according to an embodiment of the present invention may perform a dummy program operation to reduce pass voltage disturbance.

한편, 본 발명은 재프로그램 동작에 적용 가능하다. Meanwhile, the present invention is applicable to a reprogram operation.

도 16은 본 발명의 실시 예에 따른 저장 장치(10)의 프로그램 방법에 대한 제 5 실시 예를 보여주는 흐름도이다. 도 2 내지 도 10 및 도 16를 참조하면, 프로그램 방법은 다음과 같다.16 is a flowchart illustrating a fifth embodiment of a program method of a storage device 10 according to an embodiment of the present invention. 2 to 10 and 16, the programming method is as follows.

TLCs(triple level cells)에 노멀 데이터가 재프로그램 될 수 있다(S610). SPO 발생 이후에, SLCs(single level cells)에 더미 데이터가 프로그램 될 수 있다(S620). 여기서 SLCs는 바운더리 페이지에 포함된 메모리 셀들일 수 있다. 더미 데이터 프로그램 동작 이후에, TLCs에 노멀 데이터가 재프로그램될 수 있다(S630).Normal data may be reprogrammed in triple level cells (TLCs) (S610). After the occurrence of SPO, dummy data may be programmed into single level cells (SLCs) (S620). Here, the SLCs may be memory cells included in the boundary page. After the dummy data program operation, normal data may be reprogrammed in the TLCs (S630).

본 발명의 실시 예에 따른 프로그램 방법은 TLC 재프로그램 동작으로 노멀 데이터를 프로그램하면서 SLC 프로그램 동작으로 더미 데이터를 프로그램할 수 있다.The program method according to an exemplary embodiment of the present invention may program dummy data through an SLC program operation while programming normal data through a TLC reprogram operation.

도 2 내지 도 16에서는 서든 파워 오프 발생시 프로그램 동작에 대하여 설명하였다. 그러나 본 발명이 반드시 서든 파워 오프 발생시에만 제한되지 않을 것이다. 본 발명은 다양한 조건들 중 어느 하나에 의거하여 더미 프로그램 동작 여부를 결정할 수 있다.2 to 16, the program operation in case of sudden power-off has been described. However, the present invention will not necessarily be limited only when a sudden power off occurs. The present invention can determine whether to operate the dummy program based on any one of various conditions.

도 17은 본 발명의 실시 예에 따른 저장 장치에 대한 다른 실시 예를 보여주는 블록도이다. 도 17를 참조하면 저장 장치(20)는 적어도 하나의 비휘발성 메모리 장치(100a) 및 그것을 제어하는 메모리 제어기(200a)를 포함한다.17 is a block diagram showing another embodiment of a storage device according to an embodiment of the present invention. Referring to FIG. 17, the storage device 20 includes at least one nonvolatile memory device 100a and a memory controller 200a that controls it.

메모리 제어기(200a)는 더미 프로그램 판별기(220a) 및 더미 데이터 발생기(240)를 포함한다. 더미 프로그램 판별기(220a)는 호스트의 요청 혹은 프로그램 동작시 부스팅 효율을 높일 필요성이 있다면 해당 페이지에 대한 더미 프로그램 동작을 결정할 수 있다. 더미 데이터 발생기(240)는 랜덤 데이터 발생기일 수 있다.The memory controller 200a includes a dummy program discriminator 220a and a dummy data generator 240. The dummy program determiner 220a may determine a dummy program operation for a corresponding page if there is a need to increase boosting efficiency when a host requests or operates the program. The dummy data generator 240 may be a random data generator.

본 발명의 실시 예에 따른 저장 장치(20)는 외부의 요청 혹은 내부적인 결정에 의하여 더미 프로그램 동작의 수행 여부를 결정할 수 있다.The storage device 20 according to an embodiment of the present invention may determine whether to perform a dummy program operation by an external request or an internal decision.

본 발명은 VNAND에 적용 가능하다.The present invention is applicable to VNAND.

도 18은 본 발명의 실시 예에 따른 VNAND 블록을 예시적으로 보여주는 도면이다. 도 18을 참조하면, 기판(111) 위에 4개의 서브 블록들이 형성된다. 각각의 서브 블록들은 기판 위에 워드라인 컷들 사이에 적어도 하나의 접지 선택 라인(GSL), 복수의 워드라인들(WLs), 적어도 하나의 스트링 선택 라인(SSL)이 판 형태로 적층됨으로써 형성된다. 여기서 적어도 하나의 스트링 선택 라인(SSL)은 스트링 선택 라인 컷으로 분리된다. 여기서 각각의 워드라인 컷들은, 도시되지 않았지만 공통 소스 라인(Common Source Line: CSL)을 포함한다. 실시 예에 있어서, 각각의 워드라인 컷에 포함된 공통 소스 라인(CSL)은 공통으로 연결된다. 비트라인에 연결된 필라(113)가 적어도 하나의 접지 선택 라인(GSL), 복수의 워드라인들(WLs), 적어도 하나의 스트링 선택 라인(SSL)을 관통함으로써, 스트링이 형성된다.18 is a view exemplarily showing a VNAND block according to an embodiment of the present invention. Referring to FIG. 18, four sub-blocks are formed on the substrate 111. Each sub-block is formed by stacking at least one ground selection line GSL, a plurality of word lines WLs, and at least one string selection line SSL between the word line cuts on the substrate. Here, at least one string selection line SSL is separated into a string selection line cut. Here, each word line cut includes a common source line (CSL), although not shown. In an embodiment, the common source line CSL included in each word line cut is commonly connected. A string is formed by the pillar 113 connected to the bit line passing through at least one ground selection line GSL, a plurality of word lines WLs, and at least one string selection line SSL.

도 18에서는 워드라인 컷들 사이의 대상을 서브 블록으로 도시하였는데, 본 발명이 반드시 여기에 제한되지 않는다. 본 발명의 서브 블록은 워드라인 컷과 스트링 선택 라인 컷 사이의 대상을 서브 블록으로 명명할 수 있다.In FIG. 18, objects between word line cuts are shown as sub-blocks, but the present invention is not limited thereto. In the sub-block of the present invention, an object between a word line cut and a string selection line cut may be referred to as a sub-block.

본 발명의 실시 예에 따른 블록(MBi)은 두 개의 워드라인들이 하나로 병합된 구조, 다른 말로 워드라인 병합 구조(merged wordline structure)로 구현될 수 있다.The block MBi according to an embodiment of the present invention may be implemented as a structure in which two word lines are merged into one, in other words, a merged word line structure.

본 발명은 SSD(solid state drive)에 적용 가능하다.The present invention is applicable to a solid state drive (SSD).

도 19는 본 발명의 실시 예에 따른 SSD를 예시적으로 보여주는 메모리 블록도이다. 도 19를 참조하면, SSD(1000)는 복수의 비휘발성 메모리 장치들(1100) 및 SSD 제어기(1200)를 포함한다. 19 is a memory block diagram exemplarily showing an SSD according to an embodiment of the present invention. Referring to FIG. 19, the SSD 1000 includes a plurality of nonvolatile memory devices 1100 and an SSD controller 1200.

비휘발성 메모리 장치들(1100)은 옵션적으로 외부 고전압(Vpp)을 제공받도록 구현될 수 있다.The nonvolatile memory devices 1100 may be implemented to receive an external high voltage (Vpp) as an option.

SSD 제어기(1200)는 복수의 채널들(CH1 ~ CHi, i는 2 이상의 정수)을 통하여 비휘발성 메모리 장치들(1100)에 연결된다. SSD 제어기(1200)는 적어도 하나의 프로세서(1210), 버퍼 메모리(1220), 에러 정정 회로(1230), 랜덤 데이터 발생기(1240), 호스트 인터페이스(1250) 및 비휘발성 메모리 인터페이스(1260)를 포함한다. SSD 제어기(1200)는 메모리 블록에 대한 더미 프로그램 동작 여부를 결정하고, 더미 프로그램 동작 이후 이어 쓰기를 하도록 구현될 수 있다. The SSD controller 1200 is connected to the nonvolatile memory devices 1100 through a plurality of channels (CH1 to CHi, i being an integer of 2 or more). SSD controller 1200 includes at least one processor 1210, buffer memory 1220, error correction circuit 1230, random data generator 1240, host interface 1250, and nonvolatile memory interface 1260. . The SSD controller 1200 may be implemented to determine whether to operate a dummy program for a memory block, and to continue writing after the dummy program operation.

버퍼 메모리(1220)는 메모리 제어기(1200)의 구동에 필요한 데이터를 임시로 저장할 것이다. 버퍼 메모리(1220)는 데이터 혹은 명령을 저장하는 복수의 메모리 라인들을 포함할 수 있다. 또한, 도 19에서 버퍼 메모리(1220)는 SSD 제어기(1200) 내부에 존재하지만, 반드시 여기에 제한되지 않을 것이다. 버퍼 메모리는 SSD 제어기(1200)의 외부에 별도로 존재할 수도 있다.The buffer memory 1220 will temporarily store data required for driving the memory controller 1200. The buffer memory 1220 may include a plurality of memory lines that store data or instructions. In addition, the buffer memory 1220 in FIG. 19 exists inside the SSD controller 1200, but will not necessarily be limited thereto. The buffer memory may exist separately from the SSD controller 1200.

에러 정정 회로(1230)는 쓰기 동작에서 프로그램될 데이터의 에러 정정 코드 값을 계산하고, 읽기 동작에서 읽혀진 데이터를 에러 정정 코드 값에 근거로 하여 에러 정정하고, 데이터 복구 동작에서 비휘발성 메모리 장치(1100)로부터 복구된 데이터의 에러를 정정할 수 있다. 도시되지 않았지만, 메모리 제어기(1200)를 구동하는 데 필요한 코드 데이터를 저장하는 코드 메모리가 더 포함될 수 있다. 코드 메모리는 비휘발성 메모리 장치로 구현될 수 있다.The error correction circuit 1230 calculates an error correction code value of data to be programmed in the write operation, and corrects the data read in the read operation based on the error correction code value, and the nonvolatile memory device 1100 in the data recovery operation ) Can correct errors in the recovered data. Although not shown, a code memory for storing code data required to drive the memory controller 1200 may be further included. The code memory may be implemented as a nonvolatile memory device.

랜덤 데이터 발생기(1240)는 씨드 값을 이용하여 랜덤 데이터를 발생할 숭 있다. 특히, 랜덤 데이터 발생기(1240)는 더미 프로그램 동작이 수행되는 어드레스를 씨드 값으로 이용하여 더미 데이터를 발생할 수 있다.The random data generator 1240 may generate random data using a seed value. In particular, the random data generator 1240 may generate dummy data by using an address where a dummy program operation is performed as a seed value.

호스트 인터페이스(1250)는 외부의 장치와 인터페이스 기능을 제공할 수 있다. 비휘발성 메모리 인터페이스(1260)는 비휘발성 메모리 장치(1100)와 인터페이스 기능을 제공할 수 있다.The host interface 1250 may provide an interface function with an external device. The nonvolatile memory interface 1260 may provide an interface function with the nonvolatile memory device 1100.

본 발명의 실시 예에 따른 SSD(1000)는 어드레스에 따라 SI 라인들(SIs)의 자유도를 증가시킴으로써, 인터페이스 레이아웃의 면적을 크게 줄일 수 있다.The SSD 1000 according to an embodiment of the present invention can greatly reduce the area of the interface layout by increasing the degree of freedom of SI lines SIs according to the address.

본 발명은 eMMC(embedded multimedia card, moviNAND, iNAND)에도 적용 가능하다.The present invention is also applicable to an embedded multimedia card (eMMC, moviNAND, iNAND).

도 20은 본 발명의 실시 예에 따른 eMMC를 예시적으로 보여주는 메모리 블록도이다. 도 20을 참조하면, eMMC(2000)는 적어도 하나의 낸드 플래시 메모리 장치(2100) 및 제어기(2200)를 포함할 수 있다.20 is a memory block diagram exemplarily showing an eMMC according to an embodiment of the present invention. Referring to FIG. 20, the eMMC 2000 may include at least one NAND flash memory device 2100 and a controller 2200.

낸드 플래시 메모리 장치(2100)는 도 1에 도시된 바와 같이 이어 쓰기가 가능한 메모리 블록들을 구비할 수 있다.As shown in FIG. 1, the NAND flash memory device 2100 may include memory blocks that can be rewritten.

메모리 제어기(2200)는 복수의 채널들을 통하여 낸드 플래시 메모리 장치(2100)에 연결된다. 메모리 제어기(2200)는 적어도 하나의 제어기 코어(2210), 호스트 인터페이스(2250) 및 낸드 인터페이스(2260)를 포함한다. 적어도 하나의 제어기 코어(2210)는 eMMC(2000)의 전반적인 동작을 제어한다. 호스트 인터페이스(2250)는 제어기(2210)와 호스트의 인터페이싱을 수행한다. 낸드 인터페이스(2260)는 낸드 플래시 메모리 장치(2100)와 제어기(2200)의 인터페이싱을 수행한다. 실시 예에 있어서, 호스트 인터페이스(2250)는 병렬 인터페이스(예를 들어, MMC 인터페이스)일 수 있다. 다른 실시 예에 있어서, eMMC(2000)의 호스트 인터페이스(2250)는 직렬 인터페이스(예를 들어, UHS-II, UFS 인터페이스)일 수 있다.The memory controller 2200 is connected to the NAND flash memory device 2100 through a plurality of channels. The memory controller 2200 includes at least one controller core 2210, a host interface 2250, and a NAND interface 2260. At least one controller core 2210 controls the overall operation of the eMMC 2000. The host interface 2250 interfaces the controller 2210 with the host. The NAND interface 2260 interfaces the NAND flash memory device 2100 and the controller 2200. In an embodiment, the host interface 2250 may be a parallel interface (eg, MMC interface). In another embodiment, the host interface 2250 of the eMMC 2000 may be a serial interface (eg, UHS-II, UFS interface).

메모리 제어기(2200)는 이어 쓰기를 할 수 있도록 바운더리 페이지를 검색하고, 검색된 바운더리 페이지에 더미 프로그램 동작을 수행하도록 구현될 수 있다.The memory controller 2200 may be implemented to search for a boundary page to perform subsequent writing, and to perform a dummy program operation on the found boundary page.

eMMC(2000)는 호스트로부터 전원 전압들(Vcc, Vccq)을 제공받는다. 여기서, 제 1 전원 전압(Vcc, 예를 들어 3.3V)은 낸드 플래시 메모리 장치(2100) 및 낸드 인터페이스(2260)에 제공되고, 제 2 전원 전압(Vccq, 예를 들어 1.8V/3.3V)은 제어기(2200)에 제공된다. 실시 예에 있어서, eMMC(2000)는 외부 고전압(Vpp)을 옵션적으로 제공받을 수 있다.The eMMC 2000 receives power voltages Vcc and Vccq from the host. Here, the first power supply voltage (Vcc, for example, 3.3V) is provided to the NAND flash memory device 2100 and the NAND interface 2260, and the second power supply voltage (Vccq, for example, 1.8V / 3.3V) is It is provided to the controller 2200. In an embodiment, the eMMC 2000 may be selectively provided with an external high voltage (Vpp).

본 발명의 실시 예에 따른 eMMC(2000)는 이어 쓰기가 가능함으로써 데이터의 신뢰성 및 수명 향상을 꾀할 수 있다.The eMMC 2000 according to an embodiment of the present invention can be rewritten so that reliability and life of the data can be improved.

본 발명은 UFS(uiversal flash storage)에도 적용 가능하다.The present invention is applicable to universal flash storage (UFS).

도 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) 중 어느 하나를 포함할 수 있다.21 is a memory block diagram exemplarily showing a UFS system according to an embodiment of the present invention. Referring to FIG. 21, the UFS system 3000 may include a UFS host 3100, UFS devices 3200 and 3300, an embedded UFS device 3300, and a removable UFS card 3400. The UFS host 3100 may be an application processor of a mobile device. Each of the UFS host 3100, UFS devices 3200, 3300, embedded UFS device 3300, and removable UFS card 3400 can communicate with external devices by UFS protocol. At least one of the UFS devices 3200, 3300, the embedded UFS device 3300, and the removable UFS card 3400 may be any one of the storage device 10 shown in FIG. 2 and the storage device 20 shown in FIG. It can contain one.

한편, 임베디드 UFS 장치(3300)와 착탈형 UFS 카드(3400)는 UFS 프로토콜이 아닌 다른 프로토콜에 의해 통신할 수 있다. UFS 호스트(3100)와 착탈형 UFS 카드(3400)는 다양한 카드 프로토콜(예를 들어, UFDs, MMC,SD(secure digital), mini SD, Micro SD 등)에 의해 통신할 수 있다.Meanwhile, the embedded UFS device 3300 and the removable UFS card 3400 may communicate by a protocol other than the UFS protocol. The UFS host 3100 and the removable UFS card 3400 can communicate by various card protocols (eg, UFDs, MMC, Secure Digital (SD), mini SD, Micro SD, etc.).

본 발명은 모바일 장치에도 적용 가능하다.The present invention is also applicable to mobile devices.

도 22는 본 발명의 실시 예에 따른 모바일 장치(4000)를 예시적으로 보여주는 메모리 블록도이다. 도 22를 참조하면, 모바일 장치(4000)는 어플리케이션 프로세서(4100), 통신 모듈(4200), 디스플레이/터치 모듈(4300), 저장 장치(4400), 및 모바일 램(4500)를 포함한다.22 is a memory block diagram exemplarily showing a mobile device 4000 according to an embodiment of the present invention. Referring to FIG. 22, the mobile device 4000 includes an application processor 4100, a communication module 4200, a display / touch module 4300, a storage device 4400, and a mobile RAM 4500.

어플리케이션 프로세서(4100)는 모바일 장치(4000)의 전반적인 동작을 제어한다. 통신 모듈(4200)은 외부와의 유선/무선 통신을 제어하도록 구현될 것이다. 디스플레이/터치 모듈(4300)은 어플리케이션 프로세서(4100)에서 처리된 데이터를 디스플레이 하거나, 터치 패널로부터 데이터를 입력 받도록 구현될 것이다. 저장 장치(4400)는 사용자의 데이터를 저장하도록 구현될 것이다. 저장 장치(4400)는 eMMC, SSD, UFS 장치일 수 있다. 저장 장치(4400)는 도 2에 도시된 저장 장치(10) 및 도 17에 도시된 저장 장치(20) 중 어느 하나를 포함할 수 있다.The application processor 4100 controls the overall operation of the mobile device 4000. The communication module 4200 will be implemented to control wired / wireless communication with the outside. The display / touch module 4300 may be implemented to display data processed by the application processor 4100 or receive data from a touch panel. The storage device 4400 will be implemented to store user data. The storage device 4400 may be an eMMC, SSD, or UFS device. The storage device 4400 may include any one of the storage device 10 shown in FIG. 2 and the storage device 20 shown in FIG. 17.

모바일 램(4500)은 모바일 장치(4000)의 처리 동작 시 필요한 데이터를 임시로 저장하도록 구현될 수 있다.The mobile RAM 4500 may be implemented to temporarily store data required during the processing operation of the mobile device 4000.

본 발명의 실시 예에 따른 모바일 장치(4000)는 주기적인 서든 파워 오프에 대응하여 효율적으로 메모리 블록들을 관리함으로써 시스템 성능 향상을 꾀할 수 있다. The mobile device 4000 according to an embodiment of the present invention may seek to improve system performance by efficiently managing memory blocks in response to periodic sudden power-off.

본 발명의 실시 예에 따른 메모리 시스템 혹은 저장 장치는 다양한 형태들의 패키지를 이용하여 실장 될 수 있다. 실시 예에 있어서, 본 발명의 실시 예에 따른 메모리 시스템 혹은 저장 장치는 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), 등과 같은 패키지들을 이용하여 실장 될 수 있다.A memory system or storage device according to an embodiment of the present invention may be mounted using various types of packages. In an embodiment, the memory system or storage device according to an embodiment of the present invention includes 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), etc.

한편, 상술 된 본 발명의 내용은 발명을 실시하기 위한 구체적인 실시 예들에 불과하다. 본 발명은 구체적이고 실제로 이용할 수 있는 수단 자체뿐 아니라, 장차 기술로 활용할 수 있는 추상적이고 개념적인 아이디어인 기술적 사상을 포함할 것이다.Meanwhile, the above-described contents of the present invention are only specific embodiments for carrying out the invention. The present invention will include technical ideas that are abstract and conceptual ideas that can be utilized as future technologies as well as specific and practical means that can be used.

10, 20: 저장 장치
100, 100a: 비휘발성 메모리 장치
200, 200a: 메모리 제어기
111: 메타 영역
112: 사용자 데이터 영역
MB1 ~ MBi: 메모리 블록
220: 더미 프로그램 판별기
240: 더미 데이터 발생기
SPO: 서든 파워 오프
NPO: 노멀 파워 오프
10, 20: storage device
100, 100a: Non-volatile memory device
200, 200a: Memory controller
111: meta area
112: user data area
MB1 to MBi: Memory blocks
220: dummy program discriminator
240: dummy data generator
SPO: Sudden Power Off
NPO: Normal power off

Claims (31)

적어도 하나의 비휘발성 메모리 장치 및 상기 적어도 하나의 비휘발성 메모리 장치를 제어하는 메모리 제어기를 포함하는 저장 장치의 프로그램 방법에 있어서:
메모리 블록에 제 1 사용자 데이터를 저장하도록 제 1 노멀 프로그램 동작을 수행하는 단계;
더미 데이터를 상기 메모리 블록의 적어도 하나의 페이지에 저장하도록 더미 프로그램 동작을 수행하는 단계; 및
상기 더미 프로그램 동작 이후에 상기 메모리 블록에 제 2 사용자 데이터를 저장하도록 제 2 노멀 프로그램 동작을 수행하는 단계를 포함하는 프로그램 방법.
A program method of a storage device comprising at least one nonvolatile memory device and a memory controller controlling the at least one nonvolatile memory device:
Performing a first normal program operation to store the first user data in a memory block;
Performing a dummy program operation to store dummy data in at least one page of the memory block; And
And performing a second normal program operation to store second user data in the memory block after the dummy program operation.
제 1 항에 있어서,
상기 제 1 및 제 2 노멀 프로그램 동작들 각각은 멀티-비트 프로그램 동작인 프로그램 방법.
According to claim 1,
Each of the first and second normal program operations is a multi-bit program operation.
제 1 항에 있어서,
상기 더미 프로그램 동작은 호스트의 요청에 따라 수행되는 프로그램 방법.
According to claim 1,
The dummy program operation is performed according to a host request.
제 1 항에 있어서,
상기 더미 프로그램 동작은 서든 파워 오프 정보에 따라 수행되는 프로그램 방법.
According to claim 1,
The dummy program operation is performed according to sudden power-off information.
제 4 항에 있어서,
상기 적어도 하나의 페이지는 서든 파워 오프시 프로그램 동작 중이었던 바운더리 페이지인 프로그램 방법.
The method of claim 4,
The at least one page is a boundary page that was in operation during a sudden power off.
제 5 항에 있어서,
상기 더미 프로그램 동작을 수행하는 단계는,
상기 바운더리 페이지로부터 적어도 하나의 하부 페이지에 프로그램 뎁쓰를 판별하는 단계; 및
상기 프로그램 뎁쓰가 소정의 값 아래이면, 상기 바운더리 페이지와 함께 상기 적어도 하나의 하부 페이지에 더미 프로그램 동작을 수행하는 단계를 더 포함하되,
상기 제 1 노멀 프로그램 동작 시에, 상기 제 1 사용자 데이터의 적어도 일부를 저장하기 위한 복수의 프로그램 동작들이 상기 메모리 블록의 메모리 셀들에서 수행되고,
상기 프로그램 뎁쓰는 상기 복수의 프로그램 동작들 중 상기 더미 프로그램 동작 전에 수행된 프로그램 동작의 개수에 의존하는 프로그램 방법.
The method of claim 5,
In the step of performing the dummy program operation,
Determining a program depth in at least one lower page from the boundary page; And
If the program depth is below a predetermined value, further comprising performing a dummy program operation on the at least one lower page together with the boundary page,
In the first normal program operation, a plurality of program operations for storing at least a portion of the first user data are performed in memory cells of the memory block,
The program depth depends on the number of program operations performed before the dummy program operation among the plurality of program operations.
제 6 항에 있어서,
상기 제 1 노멀 프로그램 동작은 재프로그래밍 방식으로 수행되고,
상기 프로그램 뎁쓰가 상기 소정의 값 이상이면, 상기 적어도 하나의 하부 페이지에 대한 재프로그램 동작을 완료시키는 단계를 더 포함하는 프로그램 방법.
The method of claim 6,
The first normal program operation is performed in a reprogramming manner,
And when the program depth is greater than or equal to the predetermined value, completing the reprogram operation for the at least one lower page.
제 5 항에 있어서,
상기 더미 프로그램 동작을 수행하는 단계는,
상기 바운더리 페이지로부터 적어도 하나의 상부 페이지가 클린 페이지인 지를 판별하는 단계; 및
상기 적어도 하나의 상부 페이지가 상기 클린 페이지가 아닐 때, 상기 적어도 하나의 상부 페이지에 더미 프로그램 동작을 수행하는 단계를 더 포함하는 프로그램 방법.
The method of claim 5,
In the step of performing the dummy program operation,
Determining whether at least one upper page is a clean page from the boundary page; And
And when the at least one upper page is not the clean page, performing a dummy program operation on the at least one upper page.
제 1 항에 있어서,
상기 제 2 노멀 프로그램 동작 이후에 상기 메모리 블록에 다른 더미 프로그램 동작을 수행하는 단계; 및
상기 다른 더미 프로그램 동작 이후에 제 3 사용자 데이터를 저장하도록 제 3 노멀 프로그램 동작을 수행하는 단계를 더 포함하는 프로그램 방법.
According to claim 1,
Performing another dummy program operation on the memory block after the second normal program operation; And
And performing a third normal program operation to store third user data after the other dummy program operation.
제 1 항에 있어서,
상기 메모리 블록은 복수의 페이지들로 구성되고,
상기 복수의 페이지들 각각은 사용자 데이터를 저장하는 메인 영역과 상기 사용자 데이터를 관리하는 메타 정보를 저장하는 스페어 영역을 포함하고,
상기 스페어 영역은 상기 페이지들 각각에 상기 더미 프로그램 동작이 수행되었는지 여부를 지시하는 정보를 저장하는 프로그램 방법.
According to claim 1,
The memory block is composed of a plurality of pages,
Each of the plurality of pages includes a main area storing user data and a spare area storing meta information managing the user data,
The spare area is a program method for storing information indicating whether the dummy program operation has been performed on each of the pages.
저장 장치의 프로그램 방법에 있어서,
상기 저장 장치의 전원 공급 이후에 메타 영역에 저장된, 노멀 파워 오프 및 서든 파워 오프 중 하나를 지시하는 전원 정보를 읽는 단계;
상기 전원 정보가 상기 서든 파워 오프를 지시하는 경우, 복수의 메모리 블록들에서, 상기 서든 파워 오프 전에 가장 마지막으로 프로그램된 페이지인 바운더리 페이지를 검색하는 단계;
상기 바운더리 페이지에 대한 더미 프로그램 동작을 수행하는 단계; 및
상기 바운더리 페이지에 인접한 클린 페이지인 최초 클린 페이지에 대한 노멀 프로그램 동작을 수행하는 단계를 포함하되,
상기 저장 장치는 비휘발성 메모리 장치 및 메모리 컨트롤러를 포함하고, 상기 비휘발성 메모리 장치는 사용자 데이터 영역 및 상기 메타 영역을 포함하고, 상기 사용자 데이터 영역은 상기 복수의 메모리 블록들을 포함하고, 상기 복수의 메모리 블록들 각각은 복수의 페이지들을 포함하고, 상기 복수의 페이지들 각각은 순차적으로 프로그램되는 방법.
In the programming method of the storage device,
Reading power information indicating one of normal power off and sudden power off, which is stored in the meta area after the storage device is powered on;
When the power information indicates the sudden power off, searching a boundary page, which is the last programmed page before the sudden power off, in a plurality of memory blocks;
Performing a dummy program operation on the boundary page; And
Comprising the steps of performing a normal program operation for the first clean page that is a clean page adjacent to the boundary page,
The storage device includes a nonvolatile memory device and a memory controller, the nonvolatile memory device includes a user data area and the meta area, and the user data area includes the plurality of memory blocks, and the plurality of memories Each of the blocks includes a plurality of pages, and each of the plurality of pages is sequentially programmed.
제 11 항에 있어서,
상기 저장 장치의 파워 오프 이전에 호스트로부터 발행되는 파워 오프 공지에 응답하여 상기 전원 정보를 상기 노멀 파워 오프로 설정하는 단계를 더 포함하는 방법.
The method of claim 11,
And setting the power information to the normal power off in response to a power off announcement issued from a host prior to power off of the storage device.
제 12 항에 있어서,
상기 파워 오프 공지는 전원이 오프될 때 상기 호스트에 의하여 발행되는 방법.
The method of claim 12,
The power off notification is issued by the host when the power is off.
제 12 항에 있어서,
상기 파워 오프 공지가 발행되지 않는 경우, 상기 전원 정보는 상기 서든 파워 오프를 유지하는 방법.
The method of claim 12,
If the power off notice is not issued, the power information maintains the sudden power off.
제 11 항에 있어서,
상기 바운더리 페이지를 검색하는 단계는,
상기 바운더리 페이지에 관련된 정보가 저장된 상기 메타 영역을 읽는 단계를 포함하는 방법.
The method of claim 11,
Searching the boundary page,
And reading the meta area in which information related to the boundary page is stored.
제 11 항에 있어서,
상기 바운더리 페이지를 검색하는 단계는,
바이너리 검색에 기초하여 상기 바운더리 페이지를 찾기 위한 상기 사용자 데이터 영역을 읽는 단계를 포함하는 방법.
The method of claim 11,
Searching the boundary page,
And reading the user data area to find the boundary page based on a binary search.
제 11 항에 있어서,
상기 바운더리 페이지를 검색하는 단계의 완료 시에, 상기 메모리 컨트롤러가 더미 데이터를 생성하는 단계를 더 포함하고,
상기 더미 데이터는 상기 바운더리 페이지에 대응되는 어드레스를 씨드 값으로 이용하는 랜덤 데이터인 방법.
The method of claim 11,
Upon completion of the step of retrieving the boundary page, the memory controller further includes generating dummy data,
The dummy data is random data using an address corresponding to the boundary page as a seed value.
제 17 항에 있어서,
상기 더미 프로그램 동작은 상기 메모리 컨트롤러에 의하여 전송된 더미 프로그램 명령에 의하여 수행되고, 상기 더미 프로그램 명령은 상기 더미 데이터, 및 상기 바운더리 페이지에 대응되는 상기 어드레스를 포함하고, 상기 더미 데이터 및 상기 어드레스는 호스트의 요청에 무관하게 생성되는 방법.
The method of claim 17,
The dummy program operation is performed by a dummy program instruction transmitted by the memory controller, and the dummy program instruction includes the dummy data and the address corresponding to the boundary page, and the dummy data and the address are the host. How it is generated regardless of your request.
제 17 항에 있어서,
상기 노멀 프로그램 동작은 상기 더미 데이터의 소거 이전에 수행되는 방법.
The method of claim 17,
The normal program operation is performed before erasing the dummy data.
저장 장치의 프로그램 방법에 있어서,
상기 저장 장치의 전원 공급 이후에 메타 영역에 저장된, 노멀 파워 오프 및 서든 파워 오프 중 하나를 지시하는 전원 정보를 읽는 단계;
상기 전원 정보가 상기 서든 파워 오프를 지시하는 경우, 복수의 메모리 블록들에서, 상기 서든 파워 오프 전에 가장 마지막으로 프로그램된 페이지인 바운더리 페이지를 검색하는 단계;
상기 바운더리 페이지에 연결된 워드라인인 바운더리 워드 라인에 대한 더미 프로그램 동작을 수행하는 단계; 및
상기 바운더리 워드라인에 인접한 클린 워드라인인 최초 클린 워드라인에 대한 노멀 프로그램 동작을 수행하는 단계를 포함하되,
상기 저장 장치는 비휘발성 메모리 장치 및 메모리 컨트롤러를 포함하고, 상기 비휘발성 메모리 장치는 사용자 데이터 영역 및 상기 메타 영역을 포함하고, 상기 사용자 데이터 영역은 상기 복수의 메모리 블록들을 포함하고, 상기 복수의 메모리 블록들 각각은 복수의 페이지들을 포함하고, 상기 복수의 페이지들 각각은 순차적으로 프로그램되는 방법.




In the programming method of the storage device,
Reading power information indicating one of normal power off and sudden power off, which is stored in the meta area after the storage device is powered on;
If the power information indicates the sudden power off, searching a boundary page, which is the last programmed page before the sudden power off, in a plurality of memory blocks;
Performing a dummy program operation on a boundary word line that is a word line connected to the boundary page; And
And performing a normal program operation on an initial clean word line that is a clean word line adjacent to the boundary word line.
The storage device includes a nonvolatile memory device and a memory controller, the nonvolatile memory device includes a user data area and the meta area, and the user data area includes the plurality of memory blocks, and the plurality of memories Each of the blocks includes a plurality of pages, and each of the plurality of pages is sequentially programmed.




삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete
KR1020130117467A 2013-10-01 2013-10-01 Storage and programming method thereof KR102102224B1 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020130117467A KR102102224B1 (en) 2013-10-01 2013-10-01 Storage and programming method thereof
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 (en) 2013-10-01 2013-10-01 Storage and programming method thereof

Publications (2)

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

Family

ID=52741299

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130117467A KR102102224B1 (en) 2013-10-01 2013-10-01 Storage and programming method thereof

Country Status (2)

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

Families Citing this family (57)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102117919B1 (en) * 2013-10-24 2020-06-02 삼성전자주식회사 Storage device and programming method thereof
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
US9824007B2 (en) 2014-11-21 2017-11-21 Sandisk Technologies Llc Data integrity enhancement to protect against returning old versions of data
US9817752B2 (en) 2014-11-21 2017-11-14 Sandisk Technologies Llc Data integrity enhancement to protect against returning old versions of data
TWI569144B (en) * 2015-02-02 2017-02-01 慧榮科技股份有限公司 Data storage device and power-interruption detection method thereof
US9647697B2 (en) 2015-03-16 2017-05-09 Sandisk Technologies Llc Method and system for determining soft information offsets
US9645765B2 (en) 2015-04-09 2017-05-09 Sandisk Technologies Llc Reading and writing data at multiple, individual non-volatile memory portions in response to data transfer sent to single relative memory address
US9753653B2 (en) 2015-04-14 2017-09-05 Sandisk Technologies Llc High-priority NAND operations management
US9864545B2 (en) 2015-04-14 2018-01-09 Sandisk Technologies Llc Open erase block read automation
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 (en) * 2015-12-15 2022-08-22 삼성전자주식회사 Method of operating storage device
KR20170076878A (en) * 2015-12-24 2017-07-05 에스케이하이닉스 주식회사 Memory system and operating method of memory system
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 (en) * 2016-03-25 2022-10-12 에스케이하이닉스 주식회사 Semiconductor memory device and operating method thereof
KR102515137B1 (en) * 2016-03-28 2023-03-29 에스케이하이닉스 주식회사 Data storage device and operating method thereof
KR102547642B1 (en) * 2016-05-18 2023-06-28 에스케이하이닉스 주식회사 Memory system and operating method for the same
KR102529696B1 (en) 2016-07-14 2023-05-10 에스케이하이닉스 주식회사 Memory system and operating method of memory system
US10481830B2 (en) 2016-07-25 2019-11-19 Sandisk Technologies Llc Selectively throttling host reads for read disturbs in non-volatile memory system
KR20180092422A (en) 2017-02-09 2018-08-20 에스케이하이닉스 주식회사 Data storage device and operating method thereof
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 (en) 2017-06-07 2022-01-17 삼성전자주식회사 Storage device and operation method thereof
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
TWI649755B (en) * 2017-12-22 2019-02-01 慧榮科技股份有限公司 Data storage device and data processing method of memory device
TWI668700B (en) * 2017-12-22 2019-08-11 慧榮科技股份有限公司 Data storage device and methods for processing data in the data storage device
TWI655640B (en) * 2018-01-24 2019-04-01 慧榮科技股份有限公司 Data storage device and data processing method
KR20190100782A (en) * 2018-02-21 2019-08-29 에스케이하이닉스 주식회사 Storage device and operating method thereof
KR102579824B1 (en) 2018-02-27 2023-09-19 에스케이하이닉스 주식회사 Memory system and operation method thereof
KR102532547B1 (en) 2018-04-20 2023-05-17 에스케이하이닉스 주식회사 Memory system and operating method of memory system
KR102592796B1 (en) 2018-04-27 2023-10-25 에스케이하이닉스 주식회사 Data storage device and operating method thereof
US10607693B2 (en) 2018-06-29 2020-03-31 Micron Technology, Inc. Misplacement mitigation algorithm
KR102516121B1 (en) 2018-10-22 2023-03-31 에스케이하이닉스 주식회사 Semiconductor device and operating method thereof
KR102590886B1 (en) * 2018-10-30 2023-10-19 에스케이하이닉스 주식회사 Memory system and operating method thereof
KR102626054B1 (en) * 2018-11-05 2024-01-18 에스케이하이닉스 주식회사 Memory controller and memory system having the same
KR20200053018A (en) 2018-11-07 2020-05-18 삼성전자주식회사 Nonvolatile memory device, storage device including nonvolatile memory device, and method of accessing nonvolatile memory device
KR102637478B1 (en) 2018-12-05 2024-02-15 삼성전자주식회사 open channel solid state drive, nonvolatile memory system including the same and Method of power loss protection of open channel solid state drive
KR102610395B1 (en) * 2019-01-22 2023-12-05 삼성전자주식회사 Memory system comprising non-volatile memory device
KR20200113992A (en) 2019-03-27 2020-10-07 에스케이하이닉스 주식회사 Apparatus and method for reducing cell disturb in open block of the memory system during receovery procedure
KR102671402B1 (en) 2019-04-16 2024-05-31 삼성전자주식회사 Memory controller and memory system improving threshold voltage distribution characteristic and operating method of memory system
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
KR20200122522A (en) * 2019-04-18 2020-10-28 에스케이하이닉스 주식회사 Controller and operation method thereof
KR20200136183A (en) * 2019-05-27 2020-12-07 에스케이하이닉스 주식회사 Storage device and operating method thereof
KR20210025249A (en) 2019-08-27 2021-03-09 삼성전자주식회사 Memory system, and operating method of the memory system
US11069417B2 (en) 2019-08-27 2021-07-20 Samsung Electronics Co., Ltd. Memory system and method of operating the same
KR20210081641A (en) * 2019-12-24 2021-07-02 에스케이하이닉스 주식회사 Storage device and operating method threrof
US12014772B2 (en) 2021-11-17 2024-06-18 Samsung Electronics Co., Ltd. Storage controller and storage device including the same
TWI780003B (en) * 2022-02-15 2022-10-01 群聯電子股份有限公司 Memory control method, memory storage device and memory control circuit unit

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100714873B1 (en) 2005-09-06 2007-05-07 삼성전자주식회사 Method of and apparatus for updating data in non-volatile memory
KR100739946B1 (en) 2004-12-27 2007-07-16 주식회사 하이닉스반도체 NAND flash memory apparatus having dummy word lines
JP2007200531A (en) 2006-01-24 2007-08-09 Samsung Electronics Co Ltd Memory system
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 (en) * 2008-06-13 2009-12-17 삼성전자주식회사 Semiconductor memory device and method preventing read-fail thereof
JP2008204581A (en) 2007-02-22 2008-09-04 Elpida Memory Inc Nonvolatile ram
KR101423052B1 (en) 2008-06-12 2014-07-25 삼성전자주식회사 Memory device and method of controlling read level
US8130567B2 (en) 2008-12-24 2012-03-06 Stmicroelectronics Pvt. Ltd. Write circuitry for hierarchical memory architecture
KR20110001102A (en) 2009-06-29 2011-01-06 주식회사 하이닉스반도체 Program operation method of non-volatile memory device
KR20120066347A (en) 2010-12-14 2012-06-22 삼성전자주식회사 Non-volatile memory device and method for operating the device
KR101717081B1 (en) 2011-03-23 2017-03-28 삼성전자주식회사 Storage device comprising a buffer memory by using a nonvolatile-ram and volatile-ram
KR101301828B1 (en) * 2011-09-29 2013-08-29 한양대학교 산학협력단 Method and apparatus for power-off recovery in flash memory-based solid state drive
KR102127284B1 (en) 2013-07-01 2020-06-26 삼성전자주식회사 Nonvolatile memory device and managing method thereof

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100739946B1 (en) 2004-12-27 2007-07-16 주식회사 하이닉스반도체 NAND flash memory apparatus having dummy word lines
KR100714873B1 (en) 2005-09-06 2007-05-07 삼성전자주식회사 Method of and apparatus for updating data in non-volatile memory
JP2007200531A (en) 2006-01-24 2007-08-09 Samsung Electronics Co Ltd Memory system
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
US9378137B2 (en) 2016-06-28
US9875793B2 (en) 2018-01-23
US20150095558A1 (en) 2015-04-02
US20160284397A1 (en) 2016-09-29
KR20150039000A (en) 2015-04-09

Similar Documents

Publication Publication Date Title
KR102102224B1 (en) Storage and programming method thereof
KR102117919B1 (en) Storage device and programming method thereof
CN107015917B (en) Storage device and reading and recycling method thereof
US9837164B2 (en) Nonvolatile memory device, storage device having the same, and operation and read methods thereof
KR102272228B1 (en) Nonvolatile memory device, storage device having the same, and operation method therof
KR102015906B1 (en) Memory system comprising nonvolatile memory device and read method tererof
US20200050362A1 (en) Storage device and method of operating the same
US8621266B2 (en) Nonvolatile memory system and related method of performing erase refresh operation
KR102226367B1 (en) Nonvolatile memory device and nonvolatile memory system including the same
US9715344B2 (en) Memory device and controlling method of the same
US9443603B2 (en) Storage device and related methods using timer setting
KR102154620B1 (en) Erase methof of nonvolatile memory device and storage device having the same
KR101891164B1 (en) Flash memory device including program scheduler
KR102452994B1 (en) Semiconductor memory device and method for operating the same
KR20150129941A (en) Operating method of memory controller and nonvolatile memory system including nonvolatile memory device and memory controller
KR102287760B1 (en) Memory System, and Methods of Operating the Memory System
JP2014022031A (en) Nonvolatile memory device, memory system including the same, memory block managing, deleting, and programming method for them
KR20130087230A (en) Nonvolatile memory device, memory system having the same and block management method, programming method and erasing method thereof
KR102050729B1 (en) Memory System
CN111128280B (en) Memory device and method of operating the same
KR102106959B1 (en) Multi level cell nonvolatile memory system
US20210132804A1 (en) Storage device and method of operating the storage device
KR20130027153A (en) Control method of nonvolitile memory device
CN116126583A (en) Memory controller for controlling memory device and method of operating the same
CN114296631A (en) Memory system and operating method thereof

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