KR102565913B1 - 저장 장치 및 메모리 컨트롤러를 포함하는 메모리 시스템 및 이의 동작 방법 - Google Patents

저장 장치 및 메모리 컨트롤러를 포함하는 메모리 시스템 및 이의 동작 방법 Download PDF

Info

Publication number
KR102565913B1
KR102565913B1 KR1020180067726A KR20180067726A KR102565913B1 KR 102565913 B1 KR102565913 B1 KR 102565913B1 KR 1020180067726 A KR1020180067726 A KR 1020180067726A KR 20180067726 A KR20180067726 A KR 20180067726A KR 102565913 B1 KR102565913 B1 KR 102565913B1
Authority
KR
South Korea
Prior art keywords
overwrite
page
pages
memory
program
Prior art date
Application number
KR1020180067726A
Other languages
English (en)
Other versions
KR20190140779A (ko
Inventor
홍지만
Original Assignee
에스케이하이닉스 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 에스케이하이닉스 주식회사 filed Critical 에스케이하이닉스 주식회사
Priority to KR1020180067726A priority Critical patent/KR102565913B1/ko
Priority to US16/238,083 priority patent/US10936421B2/en
Priority to CN201910081188.XA priority patent/CN110600069B/zh
Publication of KR20190140779A publication Critical patent/KR20190140779A/ko
Application granted granted Critical
Publication of KR102565913B1 publication Critical patent/KR102565913B1/ko

Links

Images

Classifications

    • 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/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3418Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1405Saving, restoring, recovering or retrying at machine instruction level
    • G06F11/141Saving, restoring, recovering or retrying at machine instruction level for bus or memory accesses
    • 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/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3418Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • G11C16/3431Circuits or methods to detect disturbed nonvolatile memory cells, e.g. which still read as programmed but with threshold less than the program verify threshold or read as erased but with threshold greater than the erase verify threshold, and to reverse the disturbance via a refreshing programming or erasing step
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/008Reliability or availability analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1417Boot up procedures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1441Resetting or repowering
    • 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/26Sensing 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/30Power supply 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/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3436Arrangements for verifying correct programming or erasure
    • G11C16/3454Arrangements for verifying correct programming or for detecting overprogrammed cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/81Threshold
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • 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/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3418Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • G11C16/3427Circuits or methods to prevent or reduce disturbance of the state of a memory cell when neighbouring cells are read or written
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0409Online test
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0411Online error correction

Abstract

본 기술은 데이터가 저장되는 다수의 페이지들이 포함된 저장 장치; 및 서든 파워 오프(sudden power off)가 발생하면, 재 부팅 시 상기 페이지들 중 선택된 페이지에 연결된 워드라인을 공유하는 비선택된 페이지들의 프로그램 디스터브(disturb) 여부를 판단하고, 상기 판단 결과에 따라 상기 선택된 페이지에 데이터를 프로그램하기 위한 오버 라이트(over write) 동작을 수행하거나 또는 상기 오버 라이트 동작을 스킵(skip)하도록 커맨드를 출력하는 메모리 컨트롤러를 포함하는 메모리 시스템 및 이의 동작 방법을 포함한다.

Description

저장 장치 및 메모리 컨트롤러를 포함하는 메모리 시스템 및 이의 동작 방법{Memory system having storage device and memory controller and operating method thereof}
본 발명은 저장 장치 및 메모리 컨트롤러를 포함하는 메모리 시스템 및 이의 동작 방법에 관한 것으로, 보다 구체적으로는 비휘발성 메모리 장치들을 포함하는 메모리 시스템에 관한 것이다.
메모리 시스템(memory system)은 저장 장치(storage device) 및 메모리 컨트롤러(memory controller)를 포함할 수 있다.
저장 장치는 다수의 메모리 장치들을 포함할 수 있으며, 메모리 장치들은 데이터를 저장하거나, 저장된 데이터를 출력할 수 있다. 예를 들면, 메모리 장치들은 전원 공급이 차단되면 저장된 데이터가 소멸되는 휘발성 메모리 장치들로 이루어지거나, 전원 공급이 차단되더라도 저장된 데이터가 유지되는 비휘발성 메모리 장치들로 이루어질 수 있다.
메모리 컨트롤러는 호스트(host)와 저장 장치 사이에서 데이터 통신을 제어할 수 있다.
호스트는 PCI-E(Peripheral Component Interconnect - Express), ATA(Advanced Technology Attachment), SATA(Serial ATA), PATA(Parallel ATA), 또는 SAS(serial attached SCSI)와 같은 인터페이스 프로토콜을 사용하여 메모리 컨트롤러를 통해 메모리 장치와 통신할 수 있다. 호스트와 메모리 시스템 간의 인터페이스 프로토콜들은 상술한 예에 한정되지 않으며, USB(Universal Serial Bus), MMC(Multi-Media Card), ESDI(Enhanced Small Disk Interface), 또는 IDE(Integrated Drive Electronics) 등과 같은 다양한 인터페이스들이 포함될 수 있다.
본 발명의 실시예는 서든 파워 오프(sudden power off) 이후의 오버 라이트(over write) 동작을 메모리 셀들의 프로그램 디스터브 가능성에 따라 수행하거나 생략할 수 있는 저장 장치 및 메모리 컨트롤러를 포함하는 메모리 시스템 및 이의 동작 방법을 제공한다.
본 발명의 실시예에 따른 메모리 시스템은, 데이터가 저장되는 다수의 페이지들이 포함된 저장 장치; 및 서든 파워 오프(sudden power off)가 발생하면, 재 부팅 시 상기 페이지들 중 선택된 페이지에 연결된 워드라인을 공유하는 비선택된 페이지들의 프로그램 디스터브(disturb) 여부를 판단하고, 상기 판단 결과에 따라 상기 선택된 페이지에 데이터를 프로그램하기 위한 오버 라이트(over write) 동작을 수행하거나 또는 상기 오버 라이트 동작을 스킵(skip)하도록 커맨드를 출력하는 메모리 컨트롤러를 포함한다.
본 발명의 실시예에 따른 메모리 시스템의 동작 방법은, 서든 파워 오프 이후에 재 부팅이 수행되는 단계; 상기 재 부팅 시, 데이터가 저장되는 선택된 페이지와 동일한 워드라인에 연결된 비선택된 페이지들의 프로그램 디스터브 여부를 판단하는 단계; 상기 프로그램 디스터브가 발생하지 않은 것으로 판단되면, 상기 선택된 페이지에 데이터를 라이트(write)하는 오버 라이트 동작을 수행하는 단계; 및 상기 프로그램 디스터브가 발생한 것으로 판단되면, 상기 선택된 페이지의 상기 오버 라이트 동작을 스킵(skip)하는 단계를 포함하는 단계를 포함한다.
본 발명의 실시예에 따른 메모리 시스템의 동작 방법은, 서든 파워 오프 이후에 재 부팅이 수행되는 단계; 상기 재 부팅 시, 데이터가 저장되는 선택된 페이지에서 수행된 오버 라이트(over write) 동작의 횟수에 따라, 상시 선택된 페이지와 동일한 워드라인에 연결된 비선택된 페이지들의 프로그램 디스터브 여부를 판단하는 단계; 상기 프로그램 디스터브가 발생하지 않은 것으로 판단되면, 상기 선택된 페이지에 상기 오버 라이트 동작을 수행하는 단계; 및 상기 프로그램 디스터브가 발생한 것으로 판단되면, 상기 선택된 페이지와 다른 페이지가 새로 선택되고, 상기 새로 선택된 페이지에 상기 오버 라이트 동작을 수행하는 단계를 포함한다.
본 기술은 메모리 셀들의 프로그램 디스터브(disturb)를 억제할 수 있으며, 이로 인해 저장 장치의 신뢰도와, 저장 장치를 포함하는 메모리 시스템의 신뢰도를 개선할 수 있다.
도 1은 본 발명의 실시예에 따른 메모리 시스템을 설명하기 위한 도면이다.
도 2는 본 발명의 실시예에 따른 중앙 처리 장치의 실시예를 설명하기 위한 도면이다.
도 3은 도 1의 메모리 장치를 구체적으로 설명하기 위한 도면이다.
도 4는 본 발명의 실시예에 따른 제어 로직의 실시예를 설명하기 위한 도면이다.
도 5는 3차원으로 구성된 메모리 블록들을 설명하기 위한 도면이다.
도 6은 도 5에 도시된 어느 하나의 메모리 블록을 구체적으로 설명하기 위한 회로도이다.
도 7은 오버 라이트(over write) 동작을 설명하기 위한 도면이다.
도 8은 오버 라이트 동작으로 인한 메모리 셀들의 문턱전압 변화를 설명하기 위한 도면이다.
도 9는 본 발명의 실시예에 따른 메모리 시스템의 동작 방법을 설명하기 위한 순서도이다.
도 10은 비선택된 메모리 셀들의 상태를 판단하는 단계를 설명하기 위한 도면이다.
도 11 내지 도 13은 비선택된 페이지들의 리드 동작의 실시예들을 설명하기 위한 도면들이다.
도 14는 가장 높은 문턱전압을 가지는 메모리 셀들의 상태를 판단하는 실시예를 구체적으로 설명하기 위한 도면이다.
도 15는 본 발명의 실시예에 따른 저장 장치 및 메모리 컨트롤러를 포함하는 메모리 시스템의 다른 실시 예를 설명하기 위한 도면이다.
도 16은 본 발명의 실시예에 따른 저장 장치 및 메모리 컨트롤러를 포함하는 메모리 시스템의 다른 실시 예를 설명하기 위한 도면이다.
도 17은 본 발명의 실시예에 따른 저장 장치 및 메모리 컨트롤러를 포함하는 메모리 시스템의 다른 실시 예를 설명하기 위한 도면이다.
도 18은 본 발명의 실시예에 따른 저장 장치 및 메모리 컨트롤러를 포함하는 메모리 시스템의 다른 실시 예를 설명하기 위한 도면이다.
본 발명의 이점 및 특징, 그리고 그것을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 통해 설명될 것이다. 그러나 본 발명은 여기에서 설명되는 실시 예들에 한정되지 않고 다른 형태로 구체화될 수도 있다. 단지, 본 실시 예들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여 제공되는 것이다.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "간접적으로 연결"되어 있는 경우도 포함한다. 명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
도 1은 본 발명의 실시예에 따른 메모리 시스템을 설명하기 위한 도면이다.
도 1을 참조하면, 메모리 시스템(1000)은 데이터가 저장되는 저장 장치(1100)와, 상기 저장 장치(1100)와 호스트(2000) 사이에서 통신하는 메모리 컨트롤러(1200)를 포함할 수 있다.
저장 장치(1100)는 다수의 메모리 장치들(MD1~MDi; i는 양의 정수)을 포함할 수 있다. 예를 들면, 메모리 장치들(MD1~MDi)은 전원 공급이 차단되면 저장된 데이터가 소멸되는 휘발성 메모리 장치(volatile memory device) 또는 전원 공급이 차단되더라도 저장된 데이터가 유지되는 비휘발성 메모리 장치(non-volatile memory device)로 구현될 수 있다. 도 1에는 비휘발성 메모리 장치로 구현된 메모리 장치들(MD1~MDi)이 실시예로써 도시되었다. 예를 들면, 비휘발성 메모리 장치는 낸드 플래시 메모리 장치(NAND flash memory device)일 수 있다.
메모리 장치들(MD1~MDi)은 다수의 채널들(channels; CH1~CHk)을 통해 메모리 컨트롤러(1200)에 연결될 수 있다. 예를 들면, 메모리 컨트롤러(1200)에는 제1 내지 제k 채널들(CH1~CHk)이 연결될 수 있고, 제1 채널(CH1)에는 제1 내지 제i 메모리 장치들(MD1~MDi)이 연결될 수 있고, 제2 채널(CH2)에는 제1 내지 제i 메모리 장치들(MD1~MDi)이 연결될 수 있고, 제k 채널(CHk)에는 제1 내지 제i 메모리 장치들(MD1~MDi)이 연결될 수 있다. 서로 다른 채널들(CH1~CHk)에 연결된 제1 내지 제i 메모리 장치들(MD1~MDi)은 물리적으로(physically) 서로 다른 메모리 장치들로 구성된다. 예를 들면, 제1 채널(CH1)에 연결된 제1 메모리 장치(MD1)는 제2 채널(CH2)에 연결된 제1 메모리 장치(MD1)와 다르다.
메모리 컨트롤러(1200)는 중앙 처리 장치(Central Processor Unit; 200), 에러 정정 회로(Error Correction Circuit; ECC; 210), 내부 메모리(Internal Memory; 220), 메모리 인터페이스(Memory Interface; 230), 버퍼 메모리(Buffer Memory; 240) 및 호스트 인터페이스(Host Interface; 250)를 포함할 수 있다.
중앙 처리 장치(200)는 저장 장치(1100)를 제어하기 위한 각종 연산을 수행하거나, 커맨드(command) 및 어드레스(address)를 생성할 수 있다. 본 실시예에 따르면, 중앙 처리 장치(200)는 서든 파워 오프(sudden power off) 이후에 메모리 시스템(1000)이 재 부팅(booting)되면, 서든 파워 오프 리커버리(recovery) 동작을 수행할 수 있다. 서든 파워 오프는 메모리 시스템(1000)이 갑자기 다운(down)되거나, 오프(off)되거나 전원 공급이 중단되는 것을 의미한다. 서든 파워 오프 리커버리 동작은 서든 파워 오프가 발생한 메모리 시스템(1000)이 재 부팅될 때 메모리 시스템(1000)을 오프(off)되기 이전 상태로 되돌리거나 서든 파워 오프로 인한 에러를 방지하기 위한 동작일 수 있다. 서든 파워 오프 리커버리 동작에서는 다양한 동작들이 수행될 수 있다. 예를 들면, 어드레스 맵 관리(address map management) 동작, 오버 라이트(over write) 동작 및 다양한 디버깅(debugging) 동작 등이 수행될 수 있다. 이 중에서, 오버 라이트 동작은 서든 파워 오프로 인해 프로그램 동작이 중단된 페이지 대신 다른 페이지에 데이터를 다시 프로그램하는 동작을 의미한다.
선택된 페이지에 오버 라이트 동작이 반복되면, 선택된 페이지와 워드 라인들을 공유하는 비선택된 페이지들의 메모리 셀들은 프로그램 전압의 영향을 반복하여 받을 수 있다. 특히, 비선택된 메모리 셀들이 프로그램 완료된 페이지들인 경우, 비선택된 페이지들에 포함된 메모리 셀들의 문턱전압이 변할 수 있다. 예를 들면, 고전압을 가지는 프로그램 전압에 의해 메모리 셀들의 문턱전압이 목표레벨보다 높아질 수 있다. 즉, 프로그램 디스터브 현상이 발생할 수 있다.
본 실시예에서, 중앙 처리 장치(200)는 상술한 프로그램 디스터브 현상을 억제하기 위하여, 비선택된 페이지들에 포함된 메모리 셀들의 상태를 판단하고, 프로그램 디스터브가 발생할 수 있다고 판단되면 선택된 페이지의 오버 라이트 동작을 생략하도록 커맨드를 출력할 수 있다. 이 경우, 선택된 페이지 대신 다른 워드라인에 연결된 페이지가 새로 선택될 수 있고, 새로 선택된 페이지에 오버 라이트 동작이 수행될 수 있다. 다만, 중앙 처리 장치(200)는 서든 파워 오프(SPO)가 발생할 때 프로그램 동작이 수행 중이던 페이지가 있는지를 판단하고, 프로그램 동작이 수행 중이던 페이지가 있으면 비선택된 페이지들의 프로그램 디스터브(disturb) 여부를 판단하기 위한 커맨드를 출력할 수 있다.
에러 정정 회로(210)는 저장 장치(1100)로부터 수신된 리드된 데이터의 에러를 검출하고, 검출된 에러를 정정할 수 있다. 또한, 에러 정정 회로(210)는 리드된 데이터의 에러를 검출하여 에러 비트 수를 카운트할 수 있다.
내부 메모리(220)는 메모리 컨트롤러(1200)의 동작에 필요한 다양한 정보들을 저장할 수 있다. 예를 들면, 내부 메모리(220)는 논리적, 물리적(logical, physical) 어드레스 맵 테이블들(address map tables)을 포함할 수 있다. 어드레스 맵 테이블들은 메모리 장치들(MD1~MDi)에도 저장될 수 있다. 메모리 장치들(MD1~MDi)에 저장된 어드레스 맵 테이블은 메모리 시스템(1000)이 부팅될 때 다시 내부 메모리(220)로 로드(load)될 수 있다. 내부 메모리(220)는 RAM(random access memory), DRAM(dynamic RAM), SRAM(static RAM), 캐시(cache) 및 강하게 결합된 메모리(tightly coupled memory; TCM) 중 적어도 하나 이상으로 구성될 수 있다.
메모리 인터페이스(230)는 메모리 컨트롤러(1200)와 저장 장치(1100) 사이에서 커맨드, 어드레스 및 데이터 등을 주고받을 수 있다. 예를 들면, 메모리 인터페이스(230)는 제1 내지 제k 채널들(CH1~CHk)을 통해 메모리 장치들(MD1~MDi)에 커맨드, 어드레스 및 데이터 등을 전송할 수 있고, 메모리 장치들(MD1~MDi)로부터 데이터 등을 수신할 수 있다.
버퍼 메모리(240)는 메모리 시스템(1000)의 프로그램 또는 리드 동작 수행 시, 데이터를 임시로 저장할 수 있다. 예를 들면, 버퍼 메모리(240)는 프로그램 동작 시, 선택된 메모리 장치의 프로그램 동작이 패스(pass)될 때까지 원본 프로그램 데이터를 임시로 저장할 수 있다. 또한, 버퍼 메모리(240)는 리드 동작 시, 메모리 장치로부터 리드된 데이터를 임시로 저장한 후, 호스트 인터페이스(250)에 데이터를 순차적으로 전송할 수 있다. 상술한 데이터 외에도 어드레스 맵 테이블들 등 시스템 데이터가 버퍼 메모리(240)에도 저장될 수 있다. 버퍼 메모리(240)는 DRAM으로 구성될 수 있다.
호스트 인터페이스(250)는 메모리 컨트롤러(1200)와 호스트(2000) 사이에서 커맨드, 어드레스 및 데이터 등을 주고받을 수 있다. 예를 들면, 호스트 인터페이스(250)는 호스트(2000)로부터 요청(request), 어드레스 및 데이터 등을 수신할 수 있고, 호스트(2000)에 데이터 등을 전송할 수 있다. 중앙 처리 장치(200), 호스트 프로세서(210), 내부 메모리(220), 메모리 인터페이스(230), 버퍼 메모리(240) 및 호스트 인터페이스(250)는 버스(bus; 260)를 통해 서로 통신할 수 있다.
호스트(2000)는 호스트 프로세서(Host Processor; 2100) 및 저장 인터페이스(Storage Interface; 2200)를 포함할 수 있다. 호스트 프로세서(2100)와 저장 인터페이스(2200)는 버스(bus; 2300)를 통해 서로 통신할 수 있다.
호스트 프로세서(2100)는 메모리 시스템(1000)의 프로그램 동작(program operation)을 제어할 수 있는 프로그램 요청(program request), 또는 리드 동작(read operation)을 제어할 수 있는 리드 요청(read request)을 생성할 수 있으며, 이 외에도 소거 요청 등의 다양한 동작 요청들을 생성할 수 있다.
저장 인터페이스(2200)는 PCIe(Peripheral Component Interconnect Express), ATA(Advanced Technology Attachment), SATA(Serial ATA), PATA(Parallel ATA), SAS(serial attached SCSI) 또는 NVMe(Non-Volatile Memory Express)와 같은 인터페이스 프로토콜을 사용하여 메모리 시스템(1000)과 통신할 수 있다. 저장 인터페이스(2200)는 상술한 예에 한정되지 않으며, USB(Universal Serial Bus), MMC(Multi-Media Card), ESDI(Enhanced Small Disk Interface), 또는 IDE(Integrated Drive Electronics) 등과 같은 다양한 인터페이스들을 포함할 수 있다.
도 2는 본 발명의 실시예에 따른 중앙 처리 장치의 실시예를 설명하기 위한 도면이다.
도 2를 참조하면, 중앙 처리 장치(200)는 동작 판단부(Operation Detector; 201) 및 커맨드 생성부(CMD Generator; 202)를 포함할 수 있다.
동작 판단부(201)는 리커버리 신호(SIG_rc) 또는 판단 신호(SIG_det)를 출력할 수 있다. 리커버리 신호(SIG_rc)는 서든 파워 오프(sudden power off) 이후 재 부팅 동작 시 리커버리 동작을 수행하기 위해 출력되는 신호일 수 있다. 판단 신호(SIG_det)는 저장 장치(1100)로부터 수신된 상태 결과 값(status result value; RES)에 따라 비선택된 페이지들의 프로그램 디스터브 가능성의 판단 결과에 따라 출력되는 신호일 수 있다.
예를 들면, 동작 판단부(201)는 서든 파워 오프 이후에 재 부팅 동작이 시작되면, 리커버리 신호(SIG_rc)를 먼저 출력할 수 있고, 리커버리 동작 시 저장 장치(1100)로부터 상태 결과 값(RES)을 수신 받으면, 상태 결과 값(RES)의 판단 결과에 따라 판단 신호(SIG_det)를 출력할 수 있다. 동작 판단부(201)는 상태 결과 값(RES)을 토대로 프로그램 디스터브 가능성이 있다고 판단되면 하이(high)의 판단 신호(SIG_det)를 출력할 수 있고, 프로그램 디스터브 가능성이 없다고 판단되면 로우(low)의 판단 신호(SIG_det)를 출력할 수 있다. 동작 판단부(201)의 설정에 따라 판단 신호(SIG_det)의 출력 값은 서로 다르게 변경될 수 있다.
커맨드 생성부(202)는 리커버리 신호(SIG_rc)가 수신되면 리드 커맨드(CMD_re)를 생성할 수 있고, 판단 신호(SIG_det)가 수신되면 오버 라이트 커맨드(CMD_ow) 또는 오버 라이트 스킵 커맨드(CMD_ows)를 생성하고 출력할 수 있다. 이 외에도 커맨드 생성부(202)는 호스트(도 1의 2000)의 요청(request)에 따라 다양한 커맨드들을 생성하고 출력할 수 있다.
커맨드 생성부(202)에서 출력된 커맨드들(CMD_re, CMD_ow 또는 CMD_ows)은 선택된 채널을 통해 선택된 메모리 장치로 전송될 수 있다. 이때, 선택된 메모리 장치, 선택된 블록 등에 대한 어드레스 및 데이터도 전송될 수 있다.
도 3은 도 1의 메모리 장치를 구체적으로 설명하기 위한 도면이며, 도 1에 도시된 메모리 장치들(MD1~MDi)이 서로 동일하게 구성될 수 있으므로, 도 3에서는 이 중에서 어느 하나의 메모리 장치(MD1)를 예를 들어 구체적으로 설명하도록 한다.
도 3을 참조하면, 메모리 장치(MD1)는 데이터가 저장되는 메모리 셀 어레이(Memory Cell Array; 110)와 프로그램, 리드 또는 소거 등의 동작을 수행하도록 구성된 주변 회로들, 및 커맨드에 응답하여 주변 회로들을 제어하는 제어 로직(Control Logic; 170)을 포함할 수 있다. 예를 들면, 주변 회로들은 전압 생성부(Voltage Generator; 120), 로우 디코더(Row Decoder; 130), 페이지 버퍼 그룹(Page Buffer Group; 140), 컬럼 디코더(Column Decoder; 150) 및 입출력 회로(Input-output Circuit; 160)를 포함할 수 있다.
메모리 셀 어레이(110)는 다수의 메모리 블록들(B1~Bk; k는 양의 정수)을 포함할 수 있다. 메모리 블록들(B1~Bk)은 다수의 메모리 셀들을 포함하며, 2차원 또는 3차원 구조로 구현될 수 있다. 예를 들면, 2차원 구조의 메모리 블록들(B1~Bk)에서는 메모리 셀들이 기판(substrate)에 수평방향으로 배열될 수 있다. 3차원 구조의 메모리 블록들(B1~Bk)에서는 메모리 셀들이 기판에 대하여 수직방향으로 적층될 수 있다.
전압 생성부(120)는 동작 신호들(OP_SIG)에 응답하여 각 동작에 필요한 동작 전압들(Vop)을 생성하고 출력할 수 있다. 예를 들면, 동작 신호들(OP_SIG)이 프로그램 동작에 대한 신호인 경우, 전압 생성부(120)는 프로그램 전압, 패스 전압 및 프로그램 검증 전압 등을 생성할 수 있다. 동작 신호들(OP_SIG)이 리드 동작에 대한 신호인 경우, 전압 생성부(120)는 리드 전압 및 패스 전압 등을 생성할 수 있다. 동작 신호들(OP_SIG)이 소거 동작에 대한 신호인 경우, 전압 생성부(120)는 소거 전압, 패스 전압 및 소거 검증 전압 등을 생성할 수 있다.
로우 디코더(130)는 로컬 라인들(local lines; LL)을 통해 동작 전압들(Vop)을 로우 어드레스(RADD)에 따라 선택된 메모리 블록에 전달할 수 있다.
페이지 버퍼 그룹(140)은 비트 라인들(bit lines; BL)을 통해 메모리 블록들(B1~Bk)에 연결될 수 있으며, 비트 라인들(BL) 각각에 연결된 페이지 버퍼들을 포함할 수 있다. 비트라인들(BL)은 제1 방향(X)으로 서로 이격되어 배열될 수 있고, 제2 방향(Y)을 따라 연장될 수 있다. 페이지 버퍼 그룹(140)은 페이지 버퍼 제어 신호들(PBSIG)에 응답하여 비트 라인들(BL)의 전압을 제어하거나, 비트 라인들(BL)의 전압 또는 전류를 센싱할 수 있다.
컬럼 디코더(150)는 컬럼 어드레스(CADD)에 응답하여 페이지 버퍼 그룹(140)과 데이터를 주고 받거나, 입출력 회로(160)와 데이터를 주고받을 수 있다. 예를 들면, 컬럼 디코더(150)는 컬럼 라인들(CL)을 통해 페이지 버퍼 그룹(140)과 데이터를 주고받을 수 있고, 데이터 라인들(DL)을 통해 입출력 회로(160)와 데이터를 주고받을 수 있다.
입출력 회로(160)는 입출력 라인들(IO)을 통해 메모리 컨트롤러(1200)와 통신할 수 있다. 예를 들면, 입출력 회로(160)는 입출력 라인들(IO)을 통해 수신된 커맨드(CMD) 및 어드레스(ADD)를 제어 로직(170)으로 전달할 수 있고, 데이터(DATA)를 컬럼 디코더(150)로 전송할 수 있다. 또한, 입출력 회로(160)는 메모리 블록들(B1~Bk)로부터 리드된 데이터(DATA)를 입출력 라인들(IO)을 통해 메모리 컨트롤러(1200)로 출력할 수 있다.
제어 로직(170)은 커맨드(CMD)에 응답하여 주변 회로들을 제어하기 위한 제어 신호들을 출력할 수 있다. 여기서, 제어 신호들은 동작 신호들(OP_SIG) 및 페이지 버퍼 제어 신호들(PBSIG)을 포함할 수 있다. 또한, 제어 로직(170)은 어드레스(ADD)에 응답하여 로우 어드레스(RADD) 및 컬럼 어드레스(CADD)를 출력할 수 있다. 본 실시예에 따른 제어 로직(170)은 커맨드(CMD)에 응답하여 선택된 메모리 블록의 선택된 페이지에 대한 오버 라이트(over write) 동작을 수행하기 이전에, 선택된 페이지에 연결된 워드라인을 공유하는 비선택된 페이지들의 상태를 확인할 수 있다. 또한, 본 실시예에 따른 제어 로직(170)은 커맨드(CMD)에 응답하여 선택된 페이지의 오버 라이트(over write) 동작을 생략할 수도 있다. 오버 라이트 동작이 생략되는 경우, 제어 로직(170)은 선택된 페이지의 오버 라이트 동작을 생략하는 대신, 선택된 페이지 대신 다른 페이지에 오버 라이트 동작을 수행할 수도 있다. 또한, 제어 로직(170)은 선택된 페이지에 대한 오버 라이트 동작을 수행하지 않고, 다른 선택된 페이지에 대한 오버 라이트 동작을 수행할 수도 있다.
상술한 제어 로직(170)을 보다 구체적으로 설명하면 다음과 같다.
도 4는 본 발명의 실시예에 따른 제어 로직의 실시예를 설명하기 위한 도면이다.
도 4를 참조하면, 제어 로직(170)은 커맨드 판단부(CMD Detector; 171), 리드 동작 관리부(Read Operation Manager; 172), 오버 라이트 동작 관리부(Over write Operation Manager; 173) 및 오버 라이트 스킵 동작 관리부(Over write skip Operation Manager; 174)를 포함할 수 있다.
커맨드 판단부(171)는 메모리 컨트롤러(도 1의 1200)로부터 수신된 커맨드(CMD_re, CMD_ow 또는 CMD_ows)에 응답하여, 수신된 커맨드에 대한 동작이 수행되도록 신호(S_re, S_ow 또는 S_ows)를 출력할 수 있다. 예를 들면, 커맨드 판단부(171)는 리드 커맨드(CMD_re)가 수신되면 리드 신호(S_re)를 출력할 수 있고, 오버 라이트 커맨드(CMD_ow)가 수신되면 오버 라이트 신호(S_ow)를 출력할 수 있으며, 오버 라이트 스킵 커맨드(CMD_ows)가 수신되면 오버 라이트 스킵 신호(S_ows)를 출력할 수 있다.
리드 동작 관리부(172)는 리드 신호(S_re)에 응답하여 리드 동작을 수행하기 위한 동작 신호들(OP_SIG) 및 페이지 버퍼 제어 신호들(PBSIG)을 출력할 수 있다. 예를 들면, 리드 동작 관리부(172)에서 출력된 동작 신호들(OP_SIG) 및 페이지 버퍼 제어 신호들(PBSIG)에 응답하여, 메모리 장치는 선택된 페이지에 연결된 워드라인을 공유하는 비선택된 페이지들의 리드 동작을 수행하고, 리드 결과를 메모리 컨트롤러로 출력할 수 있다.
오버 라이트 동작 관리부(173)는 오버 라이트 신호(S_ow)에 응답하여 오버 라이트 동작을 수행하기 위한 동작 신호들(OP_SIG) 및 페이지 버퍼 제어 신호들(PBSIG)을 출력할 수 있다. 예를 들면, 오버 라이트 동작 관리부(173)에서 출력된 동작 신호들(OP_SIG) 및 페이지 버퍼 제어 신호들(PBSIG)에 응답하여, 메모리 장치는 선택된 페이지의 오버 라이트 동작을 수행할 수 있다.
오버 라이트 스킵 동작 관리부(174)는 오버 라이트 스킵 신호(S_ows)에 응답하여 오버 라이트 스킵 동작을 수행하기 위한 동작 신호들(OP_SIG) 및 페이지 버퍼 제어 신호들(PBSIG)을 출력할 수 있다. 예를 들면, 오버 라이트 스킵 동작 관리부(174)에서 출력된 동작 신호들(OP_SIG) 및 페이지 버퍼 제어 신호들(PBSIG)에 응답하여, 메모리 장치는 선택된 페이지의 오버 라이트 동작을 생략하고, 다른 선택된 페이지의 오버 프로그램 동작을 수행할 수 있다. 예를 들면, 다른 페이지를 선택하기 이전에 리드 동작 관리부(172)에서 동작 신호들(OP_SIG) 및 페이지 버퍼 제어 신호들(PBSIG)이 출력되어 선택 대상 페이지에 연결된 워드라인을 공유하는 비선택된 페이지들의 리드 동작이 먼저 수행될 수 있고, 리드 결과에 따라 오버 라이트 동작이 가능하다고 판단되면 해당 페이지가 선택되고 선택된 페이지에 오버 라이트 동작이 수행될 수 있다.
도 5는 3차원으로 구성된 메모리 블록들을 설명하기 위한 도면이다.
도 5를 참조하면, 3차원으로 구성된 메모리 블록들(B1~Bk)은 비트라인들(BL1~BLj)이 연장된 방향(Y)을 따라 서로 이격되어 배열될 수 있다. 예를 들면, 제1 내지 제k 메모리 블록들(B1~Bk)은 제2 방향(Y)을 따라 서로 이격되어 배열될 수 있으며, 제3 방향(Z)을 따라 적층된 다수의 메모리 셀들을 포함할 수 있다. 제1 내지 제k 메모리 블록들(B1~Bk) 중 어느 하나의 메모리 블록의 구성을 구체적을 설명하면 다음과 같다.
도 6은 도 5에 도시된 어느 하나의 메모리 블록을 구체적으로 설명하기 위한 회로도이다.
도 6을 참조하면, 메모리 블록은 메모리 셀들이 포함된 다수의 스트링들(strings; ST)을 포함할 수 있다. 각 스트링(ST)은 비트라인과 소스 라인(source line; SL) 사이에 연결될 수 있다. 제1 비트라인(BL1)과 소스 라인(SL) 사이에 연결된 스트링(ST)을 예를 들어 설명하면 다음과 같다.
스트링(ST)은 소스 라인(SL)과 제1 비트라인(SL1) 사이에서 서로 직렬로 연결된 소스 셀렉트 트랜지스터(source select transistor; SST), 메모리 셀들(F1~Fn; n은 양의 정수) 및 드레인 셀렉트 트랜지스터(drain select transistor; DST)를 포함할 수 있다. 서로 다른 비트라인들(BL1~BLj)에 연결된 서로 다른 스트링들(ST)에 포함된 소스 셀렉트 트랜지스터들(SST)의 게이트들은 소스 셀렉트 라인(source select line; SSL)에 연결될 수 있고, 메모리 셀들(F1~Fn)의 게이트들은 워드라인들(WL1~WLn)에 연결될 수 있으며, 드레인 셀렉트 트랜지스터들(DST)의 게이트들은 드레인 셀렉트 라인들(drain select lines; DSL1~DSL4)에 연결될 수 있다.
드레인 셀렉트 트랜지스터들(DST) 중에서 제1 방향(X)으로 배열된 트랜지스터들의 게이트들은 동일한 드레인 셀렉트 라인에 공통으로 연결되지만, 제2 방향(Y)으로 배열된 트랜지스터들은 서로 다른 드레인 셀렉트 라인들(DSL2~DSL4)에 연결될 수 있다. 예를 들면, 제2 방향(Y)을 따라 드레인 셀렉트 트랜지스터들(DST)이 순차적으로 배열된다고 가정하면, 첫 번째 드레인 셀렉트 트랜지스터(DST)로부터 제1 방향(X)으로 배열되고 다른 스트링들(ST)에 포함된 드레인 셀렉트 트랜지스터들(DST)의 게이트들은 제1 드레인 셀렉트 라인(DSL1)에 연결될 수 있다. 제1 드레인 셀렉트 라인(DSL1)에 연결된 드레인 셀렉트 트랜지스터들(DST)로부터 제2 방향(Y)으로 배열된 드레인 셀렉트 트랜지스터들(DST)은 제2 내지 제4 드레인 셀렉트 라인들(DSL2~DSL4)에 순차적으로 연결될 수 있다. 따라서, 선택된 메모리 블록 내에서는 선택된 드레인 셀렉트 라인에 연결된 스트링들(ST)이 선택될 수 있고, 나머지 비선택된 드레인 셀렉트 라인들에 연결된 스트링들(ST)은 비선택될 수 있다.
동일한 워드라인에 연결된 메모리 셀들은 하나의 페이지(page; PG)를 이룰 수 있다. 여기서, 페이지는 물리적인(physical) 페이지를 의미한다. 예를 들면, 제1 비트라인(BL1) 내지 제j 비트라인(BLj)에 연결된 스트링들(ST) 중, 서로 동일한 워드라인에서 제1 방향(X)으로 연결된 메모리 셀들(51)의 그룹을 페이지(PG)라 한다. 예를 들면, 제1 워드라인(WL1)에 연결된 제1 메모리 셀들(F1) 중에서 제1 방향(X)을 따라 배열된 메모리 셀들이 하나의 페이지(PG)를 이룰 수 있다. 제1 워드라인(WL1)에 공통으로 연결된 제1 메모리 셀들(F1) 중에서 제2 방향(Y)으로 배열된 셀들은 서로 다른 페이지로 구분될 수 있다. 따라서, 제1 드레인 셀렉트 라인(DSL1)이 선택된 드레인 셀렉트 라인이고 제1 워드라인(WL1)이 선택된 워드라인인 경우, 제1 워드라인(WL1)에 연결된 다수의 페이지들(PG) 중에서 제1 드레인 셀렉트 라인(DSL1)에 연결된 페이지가 선택된 페이지가 된다. 제1 워드라인(WL1)에 공통으로 연결되지만, 비선택된 제2 내지 제4 드레인 셀렉트 라인들(DSL2~DSL4)에 연결된 페이지들은 비선택된 페이지들이 된다.
도면에서는 하나의 스트링(ST) 내에 소스 셀렉트 트랜지스터(SST)와 드레인 셀렉트 트랜지스터(DST)가 각각 하나씩 포함되는 것으로 도시되었으나, 메모리 장치에 따라 하나의 스트링(ST) 내에 다수의 소스 셀렉트 트랜지스터들(SST) 및 드레인 셀렉트 트랜지스터들(DST)이 포함될 수 있다. 또한, 메모리 장치에 따라 소스 셀렉트 트랜지스터(SST), 메모리 셀들(F1~Fn) 및 드레인 셀렉트 트랜지스터(DST) 사이에 더미 셀들(dummy cells)이 포함될 수도 있다. 더미 셀들은 일반 메모리 셀들(F1~Fn) 처럼 사용자 데이터를 저장하지 않으나, 각 스트링(ST)의 전기적 특성을 개선하기 위해 사용될 수 있다. 다만, 더미 셀들은 본 실시예에서는 중요한 구성이 아니므로 구체적인 설명은 생략하도록 한다.
도 7은 오버 라이트(over write) 동작을 설명하기 위한 도면이다.
도 7을 참조하면, 선택된 페이지의 프로그램 동작 도중에 서든 파워 오프(SPO)가 발생하면 재 부팅 시 다른 페이지가 선택되고, 새로 선택된 페이지에 데이터를 다시 라이트(write) 하기 위한 오버 라이트(Over Write) 동작이 수행될 수 있다.
예를 들어, 제11 내지 제61 페이지들(PG11~PG61)이 제1 드레인 셀렉트 라인에 연결된 페이지들이고, 제12 내지 제62 페이지들(PG12~PG62)이 제2 드레인 셀렉트 라인에 연결된 페이지들이고, 제13 내지 제63 페이지들(PG13~63)이 제3 드레인 셀렉트 라인에 연결된 페이지들이라고 가정한다. 이 중에서 제11 페이지(PG11)의 프로그램 동작 도중에 서든 파워 오프(SPO)가 발생하면, 재 부팅 시 제31 페이지(PG31)가 제11 페이지(PG11) 대신 선택될 수 있고, 제31 페이지(PG31)에 제11 페이지(PG11)에 프로그램 하려는 데이터가 다시 라이트(write)될 수 있다. 여기서 제11 페이지(PG11)를 대체하는 제31 페이지(PG31) 대신 다른 페이지가 선택될 수도 있다.
제31 페이지(PG31)에 오버 라이트(Over Write) 동작이 수행될 때, 제31 페이지(PG31)에 연결된 제3 워드라인(WL3)에 프로그램 전압(Vpgm)이 인가되고, 나머지 워드라인들(WL1, WL2, WL4~WL6)에는 패스전압이 인가될 수 있다. 프로그램 전압(Vpgm)이 인가되는 제3 워드라인(WL3)에는 제31 페이지(PG31)뿐만 아니라 비선택된 제32 및 제33 페이지들(PG32, PG33)이 공통으로 연결되어 있으므로, 비선택된 제32 및 제33 페이지들(PG32, PG33)에 포함된 메모리 셀들은 프로그램 전압(Vpgm)의 영향을 받을 수 있다. 이때, 비선택된 제32 및 제33 페이지들(PG32, PG33)이 포함된 스트링들의 채널 전압이 높게 부스팅(boosting)되어 있으므로 비선택된 제32 및 제33 페이지들(PG32, PG33)에 포함된 메모리 셀들의 문턱전압이 높아지는 현상이 억제되지만, 오버 라이트 동작이 반복되면 비선택된 제32 및 제33 페이지들(PG32, PG33)에 포함된 메모리 셀들의 문턱전압은 프로그램 전압(Vpgm)의 영향으로 인해 조금씩 높아질 수 있다. 특히, 프로그램 동작이 완료된 메모리 셀들의 문턱전압이 지속적으로 높아지면, 프로그램 디스터브(disturb)가 발생할 수 있고, 이로 인해 리드 동작 시 에러 비트의 개수가 증가하여 에러 정정(error correction)이 불가능해질 수 있다. 비선택된 페이지들에 포함된 메모리 셀들의 문턱전압이 높아지는 현상을 보다 구체적으로 설명하면 다음과 같다.
도 8은 오버 라이트 동작으로 인한 메모리 셀들의 문턱전압 변화를 설명하기 위한 도면으로써, 도 7에 도시된 페이지들 중 선택된 워드라인(WL3)에 연결된 페이지들만 발췌하여 도시한 도면이다.
도 8을 참조하면, 제3 워드라인(WL3)에 연결된 비선택된 페이지들(81), 예를 들면 제32 및 제33 페이지들(PG32, PG33)은 제3 워드라인(WL3)에 인가되는 프로그램 전압(Vpgm)의 영향을 받을 수 있다. 예를 들면, 제32 및 제33 페이지들(PG32, PG33)에 포함된 메모리 셀들의 문턱전압(Vth1)은 제31 페이지(PG31)의 오버 라이트 동작이 반복될수록 조금씩 높아질 수 있다(Vth1’). 이처럼 프로그램된 메모리 셀들의 문턱전압이 높아지면, 멀티 레벨 셀(multi level cell; MLC)과 같이 다수의 문턱전압 분포들을 가지는 메모리 장치에서 서로 다른 문턱전압 분포들 사이의 간격이 좁아지면서 에러가 발생할 수 있다.
이에 따라, 본 실시예에서는 비선택된 페이지들의 프로그램 디스터브 가능성을 판단하고, 판단 결과에 따라 선택된 페이지의 오버 라이트 수행 여부가 결정될 수 있다.
도 9는 본 발명의 실시예에 따른 메모리 시스템의 동작 방법을 설명하기 위한 순서도이다.
도 9를 참조하면, 메모리 시스템이 동작하는 도중에 서든 파워 오프(sudden power off; SPO)가 발생하면(S91), 메모리 시스템은 재 부팅될 수 있다(Boot; S92).
메모리 시스템이 재 부팅되면, 메모리 시스템에 포함된 메모리 컨트롤러는 선택된 페이지의 오버 라이트(Over write) 동작을 수행하기 이전에, 비선택된 페이지들의 상태를 판단할 수 있다(S93). 예를 들면, 메모리 컨트롤러는 비선택된 페이지들에 포함된 비선택된 메모리 셀들(Unsel. Cells)의 상태(status)를 판단하기 위한 커맨드를 생성하고, 생성된 커맨드를 선택된 메모리 장치로 전송할 수 있다. 선택된 메모리 장치는 수신받은 커맨드에 응답하여 메모리 셀들의 상태를 판단하기 위한 동작을 수행할 수 있고, 상태 결과 값을 메모리 컨트롤러로 출력할 수 있다.
메모리 컨트롤러는 메모리 장치로부터 수신된 상태 결과 값에 따라 비선택된 메모리 셀들의 프로그램 디스터브(PGM disturb) 가능성을 판단할 수 있다(S94).
‘S94’ 단계에서, 비선택된 메모리 셀들의 프로그램 디스터브 가능성이 없다고 판단되면(no), 메모리 컨트롤러는 선택된 페이지의 오버 라이트(over write) 동작이 수행되도록 커맨드를 출력할 수 있다(S95).
‘S94’ 단계에서, 비선택된 메모리 셀들의 프로그램 디스터브 가능성이 있다고 판단되면(yes), 메모리 컨트롤러는 선택된 페이지의 오버 라이트(over write) 동작을 스킵하는 커맨드를 출력할 수 있다(S96).
상술한 단계들 중에서, 비선택된 메모리 셀들(Unsel. Cells)의 상태를 판단하는 단계(S93)를 구체적으로 설명하면 다음과 같다.
도 10은 비선택된 메모리 셀들의 상태를 판단하는 단계를 설명하기 위한 도면이다.
도 10을 참조하면, 비선택된 메모리 셀들의 상태를 판단하는 단계(S93)는 다양한 방법으로 수행될 수 있다. 예를 들면, 메모리 컨트롤러는 비선택된 메모리 셀들(Unsel. Cells)을 리드(read)하여 문턱전압이 변한 메모리 셀들의 개수를 판단할 수 있다(S93_1). 즉, 선택된 페이지의 오버 라이트 동작으로 인해, 비선택된 페이지들에 포함된 메모리 셀들의 문턱전압이 기준전압보다 높아진 셀들의 개수가 설정된 개수보다 많거나 같으면, 메모리 컨트롤러는 선택된 워드라인에 연결된 비선택된 페이지들에서 프로그램 디스터브가 발생할 수 있는 것으로 판단할 수 있다. 이러한 경우에는 도 9의 ‘S96’ 단계가 수행될 수 있다. 만약, 기준전압보다 문턱전압이 높아진 셀들의 개수가 설정된 개수보다 적으면, 메모리 컨트롤러는 해당 페이지들에서 프로그램 디스터브가 발생하지 않을 것으로 판단할 수 있다. 이러한 경우에는 도 9의 ‘S95’ 단계가 수행될 수 있다.
다른 실시예로써, 메모리 컨트롤러는 선택된 페이지에서 수행된 오버 라이트 동작의 횟수를 체크(check)하여 프로그램 디스터브의 가능성을 판단할 수도 있다(S93_2). 예를 들면, 선택된 페이지에서 수행된 오버 라이트 동작의 횟수가 기준 횟수보다 많거나 같으면, 메모리 컨트롤러는 선택된 워드라인에 연결된 비선택된 페이지들에서 프로그램 디스터브가 발생할 수 있은 것으로 판단할 수 있다. 이러한 경우에는 도 9의 ‘S96’ 단계가 수행될 수 있다. 만약, 오버 라이트 동작의 횟수가 기준 횟수보다 적으면, 메모리 컨트롤러는 해당 페이지들에서 프로그램 디스터브가 발생하지 않을 것으로 판단할 수 있다. 이러한 경우에는 도 9의 ‘S95’ 단계가 수행될 수 있다.
상술한 방법들 중에서, 비선택된 셀들을 리드하는 방법(S93_1)은 다음과 같이 다양한 실시예들로 수행될 수 있다.
도 11 내지 도 13은 비선택된 페이지들의 리드 동작의 실시예들을 설명하기 위한 도면들이다. 제31 페이지(PG31)가 선택된 페이지이고, 제32 및 제33 페이지들(PG32, PG33)이 비선택된 페이지들인 경우를 가정하여 각 실시예들을 설명하도록 한다.
도 11을 참조하면, 비선택된 페이지들의 프로그램 디스터브를 판단하기 위한 리드 동작은 비선택된 페이지들에 포함된 모든 메모리 셀들에 대하여 수행될 수 있다(READ all cells). 다시 말하면, 리드 동작은 모든 메모리 셀들이 가질 수 있는 모든 문턱전압 분포 구간들에 대하여 수행될 수 있다. 예를 들면, 하나의 메모리 셀에 두 개의 비트들이 저장될 수 있는 멀티 레벨 셀(multi level cell; MLC)에서 메모리 셀들은 소거 상태, 제1 프로그램 상태, 제2 프로그램 상태 또는 제3 프로그램 상태로 문턱전압 분포가 구분될 수 있다. 이러한 경우, 프로그램 디스터브를 판단하기 위한 리드 동작은 제1 내지 제3 프로그램 상태들 각각에 대하여 수행될 수 있다. 예를 들면, 리드 동작은 제1 프로그램 상태로 프로그램된 메모리 셀들에 대하여 수행되고, 제2 프로그램 상태로 프로그램된 메모리 셀들에 대해서도 수행되며, 제3 프로그램 상태로 프로그램된 메모리 셀들에 대해서도 수행될 수 있다. 이러한 리드 동작은 멀티 레벨 셀(MLC) 외에도 트리플 레벨 셀(triple level cell; TLC)이나 쿼드러플 레벨 셀(quadruple level cell; QLC)과 같이 하나의 메모리 셀에 세 개 이상의 비트들이 저장되는 방식에도 적용될 수 있다.
메모리 컨트롤러는 리드된 데이터를 상태 결과 값으로써 수신받고, 상태 결과 값에서 에러 비트 수를 카운트하여 프로그램 디스터브 가능성을 판단할 수 있다. 에러 비트 수는 메모리 컨트롤러의 에러 정정 회로(도 1의 210)를 통해 카운트 될 수 있다.
리드 동작은 각각의 문턱전압 분포의 최대 레벨보다 약간 높은 전압을 리드 전압으로 사용하여 수행될 수 있다.
도 12를 참조하면, 비선택된 페이지들의 프로그램 디스터브를 판단하기 위한 리드 동작은 일부 메모리 셀들에 대하여 수행될 수 있다(READ a portion of cells). 다시 말하면, 리드 동작은 일부 메모리 셀들이 가질 수 있는 일부 문턱전압 분포 구간들에 대하여 수행될 수 있다. 예를 들면, 멀티 레벨 셀(MLC)의 경우, 리드 동작은 제1 및 제2 프로그램 상태들에 대하여 수행되거나, 제2 및 제3 프로그램 상태들에 대하여 수행되거나, 제1 및 제3 프로그램 상태들에 대하여 수행될 수 있다. 즉, 모든 프로그램 상태들에 대응되는 모든 리드 전압들을 사용하지 않고, 일부 리드 전압들만 사용하여 리드 동작이 수행될 수 있다. 도 11에서 상술한 바와 같이 모든 프로그램 상태들에 대하여 리드 동작이 수행되는 경우 동작 시간이 길어질 수 있으므로, 도 12의 실시예에서는 모든 프로그램 상태들보다는 적고 두 개 이상의 프로그램 상태들에 대하여 리드 동작이 수행될 수 있다.
도 13을 참조하면, 비선택된 페이지들의 프로그램 디스터브를 판단하기 위한 리드 동작은 가장 높은 프로그램 상태로 프로그램된 메모리 셀들에 대하여 수행될 수 있다(READ PVMAX cells). 다시 말하면, 리드 동작은 가장 높은 프로그램 상태에 대응되는 리드 전압만 사용하여 수행될 수 있다. 예를 들면, 멀티 레벨 셀(MLC)의 경우, 리드 동작은 제3 프로그램 상태에 대하여 수행될 수 있다. 즉, 도 11 또는 도 12에서 상술한 바와 같이 모든 프로그램 상태들 또는 일부 프로그램 상태들에 대하여 리드 동작이 수행되는 경우 동작 시간이 길어질 수 있으므로, 도 13의 실시예에서는 가장 높은 프로그램 상태에 대하여 리드 동작이 수행될 수 있다.
도 14는 가장 높은 문턱전압을 가지는 메모리 셀들의 상태를 판단하는 실시예를 구체적으로 설명하기 위한 도면이다.
도 14에서는 트리플 레벨 셀(TLC)을 예를 들어 설명하도록 한다.
트리플 레벨 셀(TLC)에서 메모리 셀들은 소거 상태(ER)이거나 일곱 개의 프로그램 상태들(PV1~PV7) 중 어느 하나로 프로그램될 수 있다. 예를 들면, 프로그램된 메모리 셀들은 제1 내지 제7 프로그램 상태들(PV1~PV7) 중 어느 하나의 상태가 될 수 있다. 제1 내지 제7 프로그램 상태들(PV1~PV7) 중 제1 프로그램 상태(PV1)가 문턱전압이 가장 낮게 프로그램된 상태이고, 제7 프로그램 상태(PV7)가 문턱전압이 가장 높게 프로그램된 상태일 수 있다. 따라서, 상술한 도 13의 실시예와 같이 가장 높은 프로그램 상태로 프로그램된 메모리 셀들은 제7 프로그램 상태(PV7)로 프로그램된 셀들일 수 있다.
프로그램 디스터브를 판단하기 위한 리드 동작은 문턱전압이 높아진 셀들을 찾기 위하여 수행되므로, 리드 전압(Vmax)은 선택된 프로그램 상태의 문턱전압 분포에서 가장 높은 전압을 기준으로 설정될 수 있다. 예를 들면, 설정된 리드 전압(Vmax)을 사용한 리드 동작을 수행한 결과, 문턱전압이 리드 전압(Vmax)보다 모두 낮은 것으로 판단되면 해당 페이지에서는 프로그램 디스터브가 발생하지 않은 것으로 판단될 수 있다. 이와 달리, 문턱전압이 리드 전압(Vmax)보다 높은 메모리 셀들이 검출되면, 해당 페이지에서는 프로그램 디스터브가 발생한 것으로 판단될 수 있다.
메모리 컨트롤러는 상술한 실시예들 중 어느 하나의 방식으로 리드된 데이터를 상태 결과 값으로 입력받고, 입력된 상태 결과 값을 토대로 비선택된 페이지들의 프로그램 디스터브 발생 여부를 판단할 수 있다.
도 15는 본 발명의 실시예에 따른 저장 장치 및 메모리 컨트롤러를 포함하는 메모리 시스템의 다른 실시 예를 설명하기 위한 도면이다.
도 15를 참조하면, 메모리 시스템(Memory System; 30000)은 이동 전화기(cellular phone), 스마트폰(smart phone), 태블릿(tablet) PC, PDA(personal digital assistant) 또는 무선 통신 장치로 구현될 수 있다. 메모리 시스템(30000)은 저장 장치(1100)와 상기 저장 장치(1100)의 동작을 제어할 수 있는 메모리 컨트롤러(1200)를 포함할 수 있다. 메모리 컨트롤러(1200)는 프로세서(Processor; 3100)의 제어에 따라 저장 장치(1100)의 데이터 액세스 동작, 예컨대 프로그램(program) 동작, 소거(erase) 동작 또는 리드(read) 동작 등을 제어할 수 있다.
저장 장치(1100)에 프로그램된 데이터는 메모리 컨트롤러(1200)의 제어에 따라 디스플레이(Display; 3200)를 통하여 출력될 수 있다.
무선 송수신기(RADIO TRANSCEIVER; 3300)는 안테나(ANT)를 통하여 무선 신호를 주고받을 수 있다. 예컨대, 무선 송수신기(3300)는 안테나(ANT)를 통하여 수신된 무선 신호를 프로세서(3100)에서 처리(process)될 수 있는 신호로 변경할 수 있다. 따라서, 프로세서(3100)는 무선 송수신기(3300)로부터 출력된 신호를 처리(process)하고 처리(process)된 신호를 메모리 컨트롤러(1200) 또는 디스플레이(3200)로 전송할 수 있다. 메모리 컨트롤러(1200)는 프로세서(3100)에 의하여 처리(process)된 신호를 저장 장치(1100)에 전송할 수 있다. 또한, 무선 송수신기(3300)는 프로세서(3100)로부터 출력된 신호를 무선 신호로 변경하고 변경된 무선 신호를 안테나(ANT)를 통하여 외부 장치로 출력할 수 있다. 입력 장치(Input Device; 3400)는 프로세서(3100)의 동작을 제어하기 위한 제어 신호 또는 프로세서(3100)에 의하여 처리(process)될 데이터를 입력할 수 있는 장치로서, 터치 패드(touch pad)와 컴퓨터 마우스(computer mouse)와 같은 포인팅 장치(pointing device), 키패드(keypad) 또는 키보드로 구현될 수 있다. 프로세서(3100)는 메모리 컨트롤러(1200)로부터 출력된 데이터, 무선 송수신기(3300)로부터 출력된 데이터, 또는 입력 장치(3400)로부터 출력된 데이터가 디스플레이(3200)를 통하여 출력될 수 있도록 디스플레이(3200)의 동작을 제어할 수 있다.
실시 예에 따라, 저장 장치(1100)의 동작을 제어할 수 있는 메모리 컨트롤러(1200)는 프로세서(3100)의 일부로서 구현될 수 있고 또한 프로세서(3100)와 별도의 칩으로 구현될 수 있다.
도 16은 본 발명의 실시예에 따른 저장 장치 및 메모리 컨트롤러를 포함하는 메모리 시스템의 다른 실시 예를 설명하기 위한 도면이다.
도 16을 참조하면, 메모리 시스템(Memory System; 40000)은 PC(personal computer), 태블릿(tablet) PC, 넷-북(net-book), e-리더(e-reader), PDA(personal digital assistant), PMP(portable multimedia player), MP3 플레이어, 또는 MP4 플레이어로 구현될 수 있다.
메모리 시스템(40000)은 저장 장치(1100)와 상기 저장 장치(1100)의 데이터 처리 동작을 제어할 수 있는 메모리 컨트롤러(1200)를 포함할 수 있다.
프로세서(Processor; 4100)는 입력 장치(Input Device; 4200)를 통하여 입력된 데이터에 따라 저장 장치(1100)에 저장된 데이터를 디스플레이(Display; 4300)를 통하여 출력할 수 있다. 예컨대, 입력 장치(4200)는 터치 패드 또는 컴퓨터 마우스와 같은 포인팅 장치, 키패드, 또는 키보드로 구현될 수 있다.
프로세서(4100)는 메모리 시스템(40000)의 전반적인 동작을 제어할 수 있고 메모리 컨트롤러(1200)의 동작을 제어할 수 있다. 실시 예에 따라 저장 장치(1100)의 동작을 제어할 수 있는 메모리 컨트롤러(1200)는 프로세서(4100)의 일부로서 구현되거나, 프로세서(4100)와 별도의 칩으로 구현될 수 있다.
도 17은 본 발명의 실시예에 따른 저장 장치 및 메모리 컨트롤러를 포함하는 메모리 시스템의 다른 실시 예를 설명하기 위한 도면이다.
도 17을 참조하면, 메모리 시스템(50000)은 이미지 처리 장치, 예컨대 디지털 카메라, 디지털 카메라가 부착된 스마트 폰, 또는 디지털 카메라가 부착된 태블릿 PC로 구현될 수 있다.
메모리 시스템(50000)은 저장 장치(1100)와 상기 저장 장치(1100)의 데이터 처리 동작, 예컨대 프로그램 동작, 소거 동작 또는 리드 동작을 제어할 수 있는 메모리 컨트롤러(1200)를 포함한다.
메모리 시스템(50000)의 이미지 센서(Image Sensor; 5200)는 광학 이미지를 디지털 신호들로 변환할 수 있고, 변환된 디지털 신호들은 프로세서(Processor; 5100) 또는 메모리 컨트롤러(1200)로 전송될 수 있다. 프로세서(5100)의 제어에 따라, 상기 변환된 디지털 신호들은 디스플레이(Display; 5300)를 통하여 출력되거나 메모리 컨트롤러(1200)를 통하여 저장 장치(1100)에 저장될 수 있다. 또한, 저장 장치(1100)에 저장된 데이터는 프로세서(5100) 또는 메모리 컨트롤러(1200)의 제어에 따라 디스플레이(5300)를 통하여 출력될 수 있다.
실시 예에 따라 저장 장치(1100)의 동작을 제어할 수 있는 메모리 컨트롤러(1200)는 프로세서(5100)의 일부로서 구현되거나 프로세서(5100)와 별개의 칩으로 구현될 수 있다.
도 18은 본 발명의 실시예에 따른 저장 장치 및 메모리 컨트롤러를 포함하는 메모리 시스템의 다른 실시 예를 설명하기 위한 도면이다.
도 18을 참조하면, 메모리 시스템(Memory System; 70000)은 메모리 카드(memory card) 또는 스마트 카드(smart card)로 구현될 수 있다. 메모리 시스템(70000)은 저장 장치(1100), 메모리 컨트롤러(1200) 및 카드 인터페이스(Card Interface; 7100)를 포함할 수 있다.
메모리 컨트롤러(1200)는 저장 장치(1100)와 카드 인터페이스(7100) 사이에서 데이터의 교환을 제어할 수 있다. 실시 예에 따라, 카드 인터페이스(7100)는 SD(secure digital) 카드 인터페이스 또는 MMC(multi-media card) 인터페이스일 수 있으나 이에 한정되는 것은 아니다.
카드 인터페이스(7100)는 호스트(HOST; 60000)의 프로토콜에 따라 호스트(60000)와 메모리 컨트롤러(1200) 사이에서 데이터 교환을 인터페이스할 수 있다. 실시 예에 따라 카드 인터페이스(7100)는 USB(Universal Serial Bus) 프로토콜, IC(InterChip)-USB 프로토콜을 지원할 수 있다. 여기서, 카드 인터페이스(7100)는 호스트(60000)가 사용하는 프로토콜을 지원할 수 있는 하드웨어, 상기 하드웨어에 탑재된 소프트웨어 또는 신호 전송 방식을 의미할 수 있다.
메모리 시스템(70000)이 PC, 태블릿 PC, 디지털 카메라, 디지털 오디오 플레이어, 이동 전화기, 콘솔 비디오 게임 하드웨어, 또는 디지털 셋-탑 박스와 같은 호스트(60000)의 호스트 인터페이스(6200)와 접속될 때, 호스트 인터페이스(6200)는 마이크로프로세서(Microprocessor; μP; 6100)의 제어에 따라 카드 인터페이스(7100)와 메모리 컨트롤러(1200)를 통하여 저장 장치(1100)와 데이터 통신을 수행할 수 있다.
본 발명의 상세한 설명에서는 구체적인 실시 예에 관하여 설명하였으나, 본 발명의 범위와 기술적 사상에서 벗어나지 않는 한도 내에서 다양한 변경이 가능하다. 그러므로 본 발명의 범위는 상술한 실시 예에 국한되어 정해져서는 안되며 후술하는 특허청구범위뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 한다.
1000: 메모리 시스템 1100: 저장 장치
1200: 메모리 컨트롤러 200: 중앙 처리 장치
210: 에러 정정 회로 220: 내부 메모리
230: 메모리 인터페이스 240: 버퍼 메모리
250: 호스트 인터페이스 201: 동작 판단부
202: 커맨드 생성부 170: 제어 로직
171: 커맨드 판단부 172: 리드 동작 관리부
173: 오버 라이트 동작 관리부
174: 오버 라이트 스킵 동작 관리부

Claims (21)

  1. 데이터가 저장되는 다수의 페이지들이 포함된 저장 장치; 및
    서든 파워 오프(sudden power off)가 발생하면, 재 부팅 시 상기 페이지들 중 선택된 페이지에 연결된 워드라인을 공유하는 비선택된 페이지들의 프로그램 디스터브(disturb) 여부를 판단하고, 상기 판단 결과에 따라 상기 선택된 페이지에 데이터를 프로그램하기 위한 오버 라이트(over write) 동작을 수행하거나 또는 상기 오버 라이트 동작을 스킵(skip)하도록 커맨드를 출력하는 메모리 컨트롤러를 포함하는 메모리 시스템.
  2. ◈청구항 2은(는) 설정등록료 납부시 포기되었습니다.◈
    제1항에 있어서, 상기 메모리 컨트롤러는,
    상기 서든 파워 오프가 발생할 때, 상기 페이지들 중 프로그램 동작이 수행 중인 페이지가 있는지를 판단하고,
    상기 프로그램 동작이 수행 중이던 페이지가 있으면, 상기 비선택된 페이지들의 프로그램 디스터브(disturb) 여부를 판단하는 메모리 시스템.
  3. ◈청구항 3은(는) 설정등록료 납부시 포기되었습니다.◈
    제1항에 있어서, 상기 메모리 컨트롤러는,
    상기 비선택된 페이지들의 프로그램 디스터브 여부를 판단하고, 상기 판단 결과에 따라 상기 커맨드를 출력하는 중앙 처리 장치;
    상기 저장 장치로부터 리드된 데이터의 에러를 검출하여 에러 비트 수를 카운트하는 에러 정정 회로를 포함하는 메모리 시스템.
  4. ◈청구항 4은(는) 설정등록료 납부시 포기되었습니다.◈
    제3항에 있어서, 상기 중앙 처리 장치는,
    상기 비선택된 페이지들의 프로그램 디스터브 여부를 판단하고, 상기 판단 결과에 따라 신호를 출력하는 동작 판단부; 및
    상기 신호에 따라 상기 커맨드를 출력하는 커맨드 생성부를 포함하는 메모리 시스템.
  5. ◈청구항 5은(는) 설정등록료 납부시 포기되었습니다.◈
    제4항에 있어서, 상기 동작 판단부는,
    상기 서든 파워 오프 이후에 재 부팅 동작이 시작되면, 리커버리 신호를 우선적으로 출력하고,
    상기 저장 장치로부터 상태 결과 값을 수신 받으면, 상기 상태 결과 값의판단 결과에 따라 판단 신호를 출력하는 메모리 시스템.
  6. ◈청구항 6은(는) 설정등록료 납부시 포기되었습니다.◈
    제5항에 있어서,
    상기 동작 판단부는 상기 리커버리 신호 및 상기 판단 신호 중에서 어느 하나의 신호를 출력하는 메모리 시스템.
  7. ◈청구항 7은(는) 설정등록료 납부시 포기되었습니다.◈
    제4항에 있어서,
    상기 커맨드 생성부는 상기 동작 판단부에서 출력되는 신호에 따라,
    상기 비선택된 페이지들의 리드 동작을 수행하기 위한 리드 커맨드를 출력하거나,
    상기 선택된 페이지의 상기 오버 라이트 동작을 수행하기 위한 오버 라이트 커맨드를 출력하거나,
    상기 오버 라이트 동작을 스킵(skip)하기 위한 오버 라이트 스킵 커맨드를 출력하는 메모리 시스템.
  8. ◈청구항 8은(는) 설정등록료 납부시 포기되었습니다.◈
    제7항에 있어서,
    상기 저장 장치는,
    상기 리드 커맨드, 상기 오버 라이트 커맨드 또는 상기 오버 라이트 스킵 커맨드에 응답하여 리드 신호, 오버 라이트 신호 또는 오버 라이트 스킵 신호를 출력하는 커맨드 판단부;
    상기 리드 신호에 응답하여 상기 리드 동작을 수행하기 위한 제어 신호들을 출력하는 리드 동작 관리부;
    상기 오버 라이트 신호에 응답하여 상기 오버 라이트 동작을 수행하기 위한 상기 제어 신호들을 출력하는 오버 라이트 동작 관리부; 및
    상기 오버 라이트 스킵 신호에 응답하여 상기 오버 라이트 동작을 스킵하기 위한 상기 제어 신호들을 출력하는 오버 라이트 스킵 동작 관리부를 포함하는 메모리 시스템.
  9. ◈청구항 9은(는) 설정등록료 납부시 포기되었습니다.◈
    제8항에 있어서,
    상기 저장 장치는 상기 오버 라이트 스킵 커맨드가 입력되면, 상기 선택된 페이지와 다른 페이지를 선택하고, 새로 선택된 페이지에 상기 오버 라이트 동작이 수행되도록 상기 제어 신호들을 출력하는 메모리 시스템.
  10. 서든 파워 오프 이후에 재 부팅이 수행되는 단계;
    상기 재 부팅 시, 데이터가 저장되는 선택된 페이지와 동일한 워드라인에 연결된 비선택된 페이지들의 프로그램 디스터브 여부를 판단하는 단계;
    상기 프로그램 디스터브가 발생하지 않은 것으로 판단되면, 상기 선택된 페이지에 데이터를 라이트(write)하는 오버 라이트 동작을 수행하는 단계; 및
    상기 프로그램 디스터브가 발생한 것으로 판단되면, 상기 선택된 페이지의 상기 오버 라이트 동작을 스킵(skip)하는 단계를 포함하는 단계를 포함하는 메모리 시스템의 동작 방법.
  11. ◈청구항 11은(는) 설정등록료 납부시 포기되었습니다.◈
    제10항에 있어서,
    상기 비선택된 페이지들의 프로그램 디스터브 여부를 판단하는 단계는,
    상기 비선택된 페이지들에 포함된 메모리 셀들의 리드 동작시 리드된 데이터를 토대로 판단하거나,
    상기 선택된 페이지에서 수행된 오버 라이트 동작의 횟수에 따라 판단하는 메모리 시스템의 동작 방법.
  12. ◈청구항 12은(는) 설정등록료 납부시 포기되었습니다.◈
    제11항에 있어서, 상기 리드 동작은,
    상기 메모리 셀들 모두에 대하여 수행되거나,
    상기 메모리 셀들 중 일부에 대하여 수행되거나,
    상기 메모리 셀들 중 가장 높은 프로그램 상태로 프로그램된 메모리 셀들에 대하여 수행되는 메모리 시스템의 동작 방법.
  13. ◈청구항 13은(는) 설정등록료 납부시 포기되었습니다.◈
    제12항에 있어서,
    상기 메모리 셀들 모두에 상기 리드 동작이 수행되는 경우,
    상기 리드 동작은,
    상기 메모리 셀들이 가질 수 있는 모든 프로그램 상태들에 대하여 수행되는 메모리 시스템의 동작 방법.
  14. ◈청구항 14은(는) 설정등록료 납부시 포기되었습니다.◈
    제12항에 있어서,
    상기 메모리 셀들 중 일부에 대하여 상기 리드 동작이 수행되는 경우,
    상기 리드 동작은,
    상기 메모리 셀들이 가질 수 있는 일부 문턱전압 분포 구간들에 대하여 수행되는 메모리 시스템의 동작 방법.
  15. ◈청구항 15은(는) 설정등록료 납부시 포기되었습니다.◈
    제11항에 있어서,
    상기 리드 동작은,
    상기 비선택된 페이지들에 포함된 메모리 셀들이 가질 수 있는 문턱전압 분포 중에서, 선택된 문턱전압 분포의 가장 높은 전압보다 높은 전압을 리드 전압으로 사용하는 메모리 시스템의 동작 방법.
  16. ◈청구항 16은(는) 설정등록료 납부시 포기되었습니다.◈
    제10항에 있어서,
    상기 오버 라이트 동작이 스킵될 때, 상기 선택된 페이지에 대한 상기 오버 라이트 동작이 스킵되는 대신, 상기 선택된 페이지와 다른 페이지가 새로 선택되고, 상기 새로 선택된 페이지에 상기 오버 라이트 동작이 수행되는 메모리 시스템의 동작 방법.
  17. ◈청구항 17은(는) 설정등록료 납부시 포기되었습니다.◈
    제11항에 있어서,
    상기 오버 라이트 동작의 횟수에 따라 상기 프로그램 디스터브 여부를 판단할 때,
    상기 선택된 페이지에서 수행된 상기 오버 라이트 동작의 횟수가 기준 횟수보다 많거나 같으면, 상기 비선택된 페이지들에서 상기 프로그램 디스터브가 발생한 것으로 판단하고,
    상기 선택된 페이지에서 수행된 상기 오버 라이트 동작의 횟수가 기준 횟수보다 적으면, 상기 비선택된 페이지들에서 상기 프로그램 디스터브가 발생하지 않은 것으로 판단하는 메모리 시스템의 동작 방법.
  18. 서든 파워 오프 이후에 재 부팅이 수행되는 단계;
    상기 재 부팅 시, 데이터가 저장되는 선택된 페이지에서 수행된 오버 라이트(over write) 동작의 횟수에 따라, 상시 선택된 페이지와 동일한 워드라인에 연결된 비선택된 페이지들의 프로그램 디스터브 여부를 판단하는 단계;
    상기 프로그램 디스터브가 발생하지 않은 것으로 판단되면, 상기 선택된 페이지에 상기 오버 라이트 동작을 수행하는 단계; 및
    상기 프로그램 디스터브가 발생한 것으로 판단되면, 상기 선택된 페이지와 다른 페이지가 새로 선택되고, 상기 새로 선택된 페이지에 상기 오버 라이트 동작을 수행하는 단계를 포함하는 메모리 시스템의 동작 방법.
  19. ◈청구항 19은(는) 설정등록료 납부시 포기되었습니다.◈
    제18항에 있어서,
    상기 선택된 페이지에서 수행된 상기 오버 라이트 동작의 횟수가 기준 횟수보다 많거나 같으면, 상기 비선택된 페이지들에서 상기 프로그램 디스터브가 발생할 수 있을 것으로 판단하는 메모리 시스템의 동작 방법.
  20. ◈청구항 20은(는) 설정등록료 납부시 포기되었습니다.◈
    제19항에 있어서,
    상기 선택된 페이지에서 수행된 상기 오버 라이트 동작의 횟수가 상기 기준 횟수보다 적으면, 상기 비선택된 페이지들에서 상기 프로그램 디스터브가 발생하지 않을 것으로 판단하는 메모리 시스템의 동작 방법.
  21. 복수의 페이지들을 포함하는 메모리 장치; 및
    서든 파워 오프(sudden power off)로 인해 상기 복수의 페이지들 중에서 제1 페이지의 라이트 동작이 중단되면, 제2 페이지에 오버 라이트 동작이 수행되도록 상기 메모리 장치를 제어하도록 구성된 메모리 컨트롤러를 포함하고,
    상기 제2 페이지는 워드라인을 공유하는 이웃 페이지들을 포함하고,
    상기 이웃 페이지들은 프로그램 디스터브가 발생할 가능성이 낮은 페이지들이고,
    상기 메모리 컨트롤러는 특정 페이지에 인접한 페이지들의 리드 동작의 결과 또는 상기 특정 페이지에서 이전에 수행된 오버 라이트 동작의 횟수에 따라 상기 제2 페이지를 선택하는 것을 특징으로 하는 메모리 시스템.
KR1020180067726A 2018-06-12 2018-06-12 저장 장치 및 메모리 컨트롤러를 포함하는 메모리 시스템 및 이의 동작 방법 KR102565913B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020180067726A KR102565913B1 (ko) 2018-06-12 2018-06-12 저장 장치 및 메모리 컨트롤러를 포함하는 메모리 시스템 및 이의 동작 방법
US16/238,083 US10936421B2 (en) 2018-06-12 2019-01-02 Memory system having storage device and memory controller and operating method thereof
CN201910081188.XA CN110600069B (zh) 2018-06-12 2019-01-28 具有存储装置和存储器控制器的存储器系统及其操作方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180067726A KR102565913B1 (ko) 2018-06-12 2018-06-12 저장 장치 및 메모리 컨트롤러를 포함하는 메모리 시스템 및 이의 동작 방법

Publications (2)

Publication Number Publication Date
KR20190140779A KR20190140779A (ko) 2019-12-20
KR102565913B1 true KR102565913B1 (ko) 2023-08-11

Family

ID=68763827

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180067726A KR102565913B1 (ko) 2018-06-12 2018-06-12 저장 장치 및 메모리 컨트롤러를 포함하는 메모리 시스템 및 이의 동작 방법

Country Status (3)

Country Link
US (1) US10936421B2 (ko)
KR (1) KR102565913B1 (ko)
CN (1) CN110600069B (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019185350A (ja) * 2018-04-09 2019-10-24 東芝メモリ株式会社 メモリシステム及びメモリシステムの制御方法
KR102565913B1 (ko) * 2018-06-12 2023-08-11 에스케이하이닉스 주식회사 저장 장치 및 메모리 컨트롤러를 포함하는 메모리 시스템 및 이의 동작 방법
KR20210117609A (ko) * 2020-03-19 2021-09-29 에스케이하이닉스 주식회사 반도체 메모리 장치, 컨트롤러 및 이들을 포함하는 메모리 시스템

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100329002A1 (en) 2009-06-24 2010-12-30 Yingda Dong Forecasting program disturb in memory by detecting natural threshold voltage distribution
US20110145487A1 (en) 2008-07-01 2011-06-16 Lsi Corporation Methods and Apparatus for Soft Demapping and Intercell Interference Mitigation in Flash Memories
US20160103730A1 (en) 2014-10-13 2016-04-14 Silicon Motion, Inc. Non-volatile memory devices and controllers

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7170788B1 (en) * 2005-09-09 2007-01-30 Sandisk Corporation Last-first mode and apparatus for programming of non-volatile memory with reduced program disturb
US7808831B2 (en) * 2008-06-30 2010-10-05 Sandisk Corporation Read disturb mitigation in non-volatile memory
US9588883B2 (en) * 2011-09-23 2017-03-07 Conversant Intellectual Property Management Inc. Flash memory system
KR20140025164A (ko) * 2012-08-21 2014-03-04 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 데이터 처리 방법
KR102031661B1 (ko) * 2012-10-23 2019-10-14 삼성전자주식회사 데이터 저장 장치 및 컨트롤러, 그리고 데이터 저장 장치의 동작 방법
KR20140072276A (ko) * 2012-11-29 2014-06-13 삼성전자주식회사 불휘발성 메모리 및 불휘발성 메모리의 동작 방법
US9171636B2 (en) * 2013-01-29 2015-10-27 Macronix International Co. Ltd. Hot carrier generation and programming in NAND flash
KR102242022B1 (ko) * 2013-09-16 2021-04-21 삼성전자주식회사 불휘발성 메모리 및 그것의 프로그램 방법
US9478292B2 (en) * 2013-10-27 2016-10-25 Sandisk Technologies Llc Read operation for a non-volatile memory
KR102272228B1 (ko) 2014-05-13 2021-07-06 삼성전자주식회사 불휘발성 메모리 장치, 그것을 포함하는 저장 장치 및 그것의 동작 방법
KR102148389B1 (ko) * 2014-06-11 2020-08-27 삼성전자주식회사 오버 라이트 동작을 갖는 메모리 시스템 및 그에 따른 동작 제어방법
US9437318B2 (en) * 2014-10-24 2016-09-06 Sandisk Technologies Llc Adaptive program pulse duration based on temperature
TWI625729B (zh) * 2015-11-25 2018-06-01 旺宏電子股份有限公司 資料配置方法及應用其之電子系統
KR102435026B1 (ko) 2015-12-15 2022-08-22 삼성전자주식회사 저장 장치의 동작 방법
KR102609130B1 (ko) * 2016-02-17 2023-12-05 삼성전자주식회사 읽기 전압 서치 유닛을 포함하는 데이터 저장 장치
US9792998B1 (en) * 2016-03-29 2017-10-17 Sandisk Technologies Llc System and method for erase detection before programming of a storage device
KR102469549B1 (ko) * 2016-04-11 2022-11-22 에스케이하이닉스 주식회사 메모리 장치 및 이의 동작 방법
US10074438B2 (en) * 2016-06-10 2018-09-11 Cypress Semiconductor Corporation Methods and devices for reducing program disturb in non-volatile memory cell arrays
KR102565913B1 (ko) * 2018-06-12 2023-08-11 에스케이하이닉스 주식회사 저장 장치 및 메모리 컨트롤러를 포함하는 메모리 시스템 및 이의 동작 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110145487A1 (en) 2008-07-01 2011-06-16 Lsi Corporation Methods and Apparatus for Soft Demapping and Intercell Interference Mitigation in Flash Memories
US20100329002A1 (en) 2009-06-24 2010-12-30 Yingda Dong Forecasting program disturb in memory by detecting natural threshold voltage distribution
US20160103730A1 (en) 2014-10-13 2016-04-14 Silicon Motion, Inc. Non-volatile memory devices and controllers

Also Published As

Publication number Publication date
US10936421B2 (en) 2021-03-02
CN110600069A (zh) 2019-12-20
KR20190140779A (ko) 2019-12-20
CN110600069B (zh) 2023-10-10
US20190377641A1 (en) 2019-12-12

Similar Documents

Publication Publication Date Title
TWI787388B (zh) 記憶體裝置以及記憶體裝置的操作方法
KR101913291B1 (ko) 비휘발성 메모리 장치, 그 데이터 판독 방법 및 기록 매체
KR101600539B1 (ko) 불휘발성 메모리 장치의 프로그램 방법
US20120066438A1 (en) Non-volatile memory device, operation method thereof, and device having the same
KR102409799B1 (ko) 메모리 시스템 및 그것의 동작 방법
KR102567373B1 (ko) 메모리 장치 및 이를 포함하는 메모리 시스템
KR20170051841A (ko) 불휘발성 메모리 장치, 불휘발성 메모리 장치를 포함하는 스토리지 장치 및 불휘발성 메모리 장치의 동작 방법
US20190304557A1 (en) Memory device, memory system including the memory device, and method of operating memory device
US20200365227A1 (en) Memory device and method of operating the memory device
US10748626B2 (en) Data storage device and operating method thereof
KR102565913B1 (ko) 저장 장치 및 메모리 컨트롤러를 포함하는 메모리 시스템 및 이의 동작 방법
US10803956B2 (en) Memory device, memory system having memory device, and method of operating memory device
CN110045917B (zh) 存储器系统及其操作方法
US9728264B2 (en) Nonvolatile memory device, operating method thereof, and data storage device including the same
CN111341370B (zh) 半导体存储器装置、控制器、存储装置及其操作方法
KR20190094964A (ko) 메모리 시스템 및 그것의 동작 방법
US11127475B2 (en) Memory device controlling operating voltage of select transistor and method of operating the same
US20200176065A1 (en) Memory controller, memory system including memory controller, method of operating memory controller
KR102409798B1 (ko) 메모리 시스템 및 그것의 동작 방법
US11526288B2 (en) Memory system including a plurality of memory blocks
KR20200051387A (ko) 메모리 컨트롤러 및 이를 포함하는 메모리 시스템
US11482291B2 (en) Memory device and method of operating the same
US20210118517A1 (en) Memory device
US11508439B2 (en) Memory device having a control logic to control program operations and method of operating the same
US20240118813A1 (en) Semiconductor memory device and operating method of the semiconductor memory device

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