KR102116983B1 - 메모리 장치 및 메모리 시스템의 동작 방법. - Google Patents

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

Info

Publication number
KR102116983B1
KR102116983B1 KR1020130096894A KR20130096894A KR102116983B1 KR 102116983 B1 KR102116983 B1 KR 102116983B1 KR 1020130096894 A KR1020130096894 A KR 1020130096894A KR 20130096894 A KR20130096894 A KR 20130096894A KR 102116983 B1 KR102116983 B1 KR 102116983B1
Authority
KR
South Korea
Prior art keywords
memory
cells
state
read voltage
read
Prior art date
Application number
KR1020130096894A
Other languages
English (en)
Other versions
KR20150019722A (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 KR1020130096894A priority Critical patent/KR102116983B1/ko
Priority to US14/456,572 priority patent/US9728279B2/en
Publication of KR20150019722A publication Critical patent/KR20150019722A/ko
Priority to US15/639,234 priority patent/US10217517B2/en
Priority to US16/248,568 priority patent/US10714194B2/en
Application granted granted Critical
Publication of KR102116983B1 publication Critical patent/KR102116983B1/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
    • G11C16/3422Circuits or methods to evaluate read or write disturbance in nonvolatile memory, without steps to mitigate the problem
    • 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
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis
    • 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/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
    • 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

Abstract

메모리 장치 및 메모리 시스템의 동작 방법이 개시된다. 본 발명의 실시예에 따른 메모리 장치의 동작 방법은, 메모리 셀들 중, 제1 독출전압 및 제2 독출 전압에 대한 오프셀의 개수를 각각 카운트하는 단계, 카운트된 상기 제1 독출전압에 대한 오프셀 개수와 상기 제2 독출전압에 대한 오프셀 개수를 비교하는 단계, 및 상기 비교 결과를 기초로 상기 메모리 셀들이 포함된 저장 영역에 대한 프로그램 오류를 판단하는 단계를 포함한다.

Description

메모리 장치 및 메모리 시스템의 동작 방법. {Operating method for memory device and memory system}
본 개시는 메모리 장치의 동작 방법 및 메모리 시스템의 동작 방법에 관한 것으로, 특히 메모리 장치의 프로그램 오류를 검출할 수 있는 메모리 장치의 동작 방법 및 이를 이용한 메모리 시스템의 동작 방법에 관한 것이다.
메모리 장치는 저장된 데이터에 대한 신뢰성을 보장하여야 한다. 이를 위해, 메모리 셀에 대한 데이터의 기입을 수행한 후, 정확하게 데이터가 기입되었는지 확인하는 과정을 수행할 수 있다. 또한 데이터 독출 시 ECC 등과 같이 에러가 발생한 데이터에 대한 에러 보정 작업이 수행될 수 있다.
본 발명의 목적은 메모리 셀의 프로그램이 정상적으로 수행되었는지 여부를 판단할 수 있는 메모리 장치의 동작 방법을 제공하고, 이를 기초로 메모리 장치가 안정적으로 동작할 수 있도록 하는 메모리 시스템의 동작 방법을 제공하는데 있다.
상기 기술적 과제를 달성하기 위한 본 발명의 실시 예에 따른 메모리 장치의 동작 방법은 메모리 셀들 중, 제1 독출전압 및 제2 독출 전압에 대한 오프셀의 개수를 각각 카운트하는 단계, 카운트된 상기 제1 독출전압에 대한 오프셀 개수와 상기 제2 독출전압에 대한 오프셀 개수를 비교하는 단계 및 상기 비교 결과를 기초로 상기 메모리 셀들이 포함된 저장 영역에 대한 프로그램 오류를 판단하는 단계를 포함한다.
일 실시예에 있어서, 상기 제1 독출전압의 전압 레벨은 상기 제2 독출전압의 전압 레벨보다 높을 수 있다.
일 실시예에 있어서, 상기 제1 독출전압은, 상기 메모리 셀들이 프로그램되는 복수의 상태들 중 최상위 상태에 대응하는 독출전압일 수 있다.
일 실시예에 있어서, 상기 제2 독출 전압은, 상기 메모리 셀들이 프로그램되는 복수의 상태들 중 차상위 상태에 대응하는 독출 전압일 수 있다.
일 실시예에 있어서, 상기 제1 독출전압 및 제2 독출전압은 상기 메모리 셀들이 프로그램되는 복수의 상태들 중 제1 상태 및 제2 상태에 각각 대응하고, 상기 제1 상태는, 상기 메모리 셀들이 프로그램되는 복수의 상태들 중 마지막으로 프로그램되는 상태이고, 상기 제2 상태는 상기 제1 상태가 프로그램되기 이전에 프로그램되는 상태일 수 있다.
일 실시예에 있어서, 프로그램 오류가 발생하였다고 판단될 경우, 데이터를 재 기입하는 단계를 더 포함할 수 있다.
일 실시예에 있어서, 상기 오프셀 개수를 비교하는 단계는, 상기 제 1 독출전압에 대한 오프셀 개수에 대한 상기 제2 독출 전압에 대한 오프셀 개수의 비를 비교 결과로 산출할 수 있다.
일 실시예에 있어서, 상기 오프셀 개수를 비교하는 단계는, 상기 제1 독출 전압에 대한 오프셀 개수와 상기 제2 독출 전압에 대한 오프셀 개수를 기초로, 상기 제1 독출 전압에 대응하는 제1 상태 및 상기 제2 독출 전압에 대응하는 제2 상태에 대하여 독출 에러가 발생한 메모리 셀의 개수를 각각 산출하고, 상기 제1 상태 및 상기 제2 상태간의 독출 에러 발생량을 비교할 수 있다.
일 실시예에 있어서, 상기 프로그램 오류 판단 단계는, 프로그램 오류가 검출되면, 상기 메모리 셀들에 대한 프로그램 동작 수행 중에 서든 파워 오프가 발생되었다고 판단할 수 있다.
일 실시예에 있어서, 상기 메모리 셀을 포함하는 메모리 장치는, 멀티-비트의 메모리 셀을 포함할 수 있다.
상기 기술적 과제를 달성하기 위한 본 발명의 실시 예에 따른 메모리 시스템의 동작 방법은, 메모리 장치에 전원이 인가되는 단계, 저장 영역에 대하여 프로그램 오류를 검출하는 단계 및 프로그램 오류가 검출되면, 상기 프로그램된 데이터를 재 프로그램하는 단계를 포함하고, 상기 프로그램 오류를 검출하는 단계는, 메모리 셀이 프로그램되는 복수의 상태들 중 두 상태에 포함되는 메모리 셀들의 개수를 각각 카운트한 값을 비교한 결과에 기초하여 판단할 수 있다.
일 실시예에 있어서, 상기 재 프로그램하는 단계에서는, 상기 저장 영역이외의 영역에 데이터가 재 프로그램될 수 있다.
일 실시예에 있어서, 상기 프로그램 오류가 검출되면, 상기 저장 영역을 페일 영역으로 처리하는 단계를 더 포함할 수 있다.
일 실시예에 있어서, 상기 저장영역은, 상기 메모리 장치에 전원이 차단되기 전 마지막으로 엑세스되어 프로그램이 수행된 영역일 수 있다.
일 실시예에 있어서,, 상기 메모리 장치는, 플래시 메모리를 포함할 수 있다.
본 발명의 기술적 사상에 따른 메모리 장치의 동작 방법 및 이를 이용하는 메모리 시스템의 동작 방법에 의하면 메모리 셀에 대한 프로그램 동작이 정상적으로 수행되었는지 정확하게 판단할 수 있으며, 저장된 데이터에 대한 신뢰도를 높일 수 있다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 간단한 설명이 제공된다.
도 1은 본 발명의 실시예에 따른 메모리 장치의 동작 방법을 나타내는 흐름도이다.
도 2a는 정상적으로 프로그램된 메모리 셀의 문턱 전압 산포를 나타내는 도면이다.
도 2b는 열화가 진행 된 메모리 셀의 문턱 전압 산포를 나타내는 도면이다.
도 2c는 프로그램 동작 수행 중 서든 파워 오프가 발생되었을 때 메모리 셀의 문턱 전압 산포를 나타내는 도면이다.
도 3은 본 발명의 실시예에 따른 메모리 시스템을 개략적으로 나타내는 블록도이다.
도 4는 도 3의 메모리 시스템에 포함된 메모리 장치를 나타내는 블록도이다.
도 5a 내지 도 5c는 도 3의 메모리 장치에 포함되는 메모리 셀 어레이의 예들을 나타내는 도면이다.
도 6은 도 5a 내지 도 5c의 메모리 셀의 일 예를 나타내는 도면이다.
도 7a는 도 3의 메모리 시스템의 프로그램 오류 검출부의 일 구현예를 나타낸 블록도이다.
도 7b는 도 3의 메모리 시스템의 프로그램 오류 검출부의 다른 구현예를 나타낸 블록도이다.
도 8은 도 1의 메모리 장치의 동작 방법의 일 예를 나타내는 순서도이다.
도 9는 도 1의 메모리 장치의 동작 방법의 다른 예를 나타내는 순서도이다.
도 10은 본 발명의 실시예에 따른 메모리 시스템의 동작 방법을 나타내는 흐름도이다.
도 11은 본 발명의 실시예에 따른 메모리 시스템의 다른 예를 개략적으로 나타내는 블록도이다.
도 12는 도 1의 메모리 컨트롤러의 예를 나타내는 도면이다.
도 13은 본 발명의 실시예들에 따른 메모리 시스템이 SSD(Solid State Drive)에 적용된 예를 나타내는 도면이다.
도 14는 도 13의 SSD를 포함하는 서버 시스템 및 네트워크 시스템을 나타내는 도면이다.
도 15는 본 발명의 실시예들에 따른 메모리 시스템이 포함되는 컴퓨터 장치를 나타내는 도면이다.
이하, 첨부한 도면을 참조하여 본 발명의 실시 예에 대해 상세히 설명한다. 본 발명의 실시 예는 당 업계에서 평균적인 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위하여 제공되는 것이다. 본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는 바, 특정 실시 예들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용한다. 첨부된 도면에 있어서, 구조물들의 치수는 본 발명의 명확성을 기하기 위하여 실제보다 확대하거나 축소하여 도시한 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 갖는다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
플래시 메모리에 데이터를 저장하기 위하여, 메모리 셀에 대하여 프로그램 동작을 수행하면, 각 메모리 셀은 특정한 프로그램 상태를 갖게 된다. 메모리 셀의 상태는 임의의 비트 또는 데이터를 나타낼 수 있고, 각 상태에 대응되도록 문턱전압 산포가 형성된다. 메모리 셀이 정상적으로 프로그램 되었을 경우, 메모리 셀의 문턱전압 산포는 가우시안 분포를 갖을 수 있다. 그런데, 프로그램 동작 수행 시 서든 파워 오프와 같이 정상적인 프로그램 동작의 수행을 방해하는 상황이 발생하면, 메모리 셀은 목표한 상태로 프로그램되지 못하고, 메모리 셀들의 문턱전압 산포가 비정상적으로 형성될 수 있다. 이에 따라, 메모리 셀의 상태 독출 시, 다수의 메모리 셀에서 프로그램 수행 시 목표로 했던 상태가 아닌, 다른 상태가 독출되는 독출 에러가 발생할 수 있다. 또한, 시간이 지날수록 메모리 셀들의 문턱전압 산포가 더 나빠져, 독출 에러가 발생하는 메모리 셀의 개수가 증가할 수 있다. 따라서, 메모리 장치에 있어서 프로그램된 메모리 셀들이 정상적으로 프로그램 되었는지 확인하고, 비정상적으로 프로그램 된 경우에 데이터가 안정적으로 저장될 수 있도록, 데이터를 재 프로그램 하는 등의 보완 동작이 요구된다.
도 1 및 도 2a내지 도 2c를 참조하여 본 발명의 실시예에 따른 메모리 장치의 동작 방법에 대하여 설명하기로 한다. 도 1은 본 발명의 실시예에 따른 메모리 장치의 동작 방법을 나타내는 흐름도이고, 도 2a 내지 도 2c는 메모리 셀의 문턱전압 산포를 나타내는 도면이다. 도 2a는 정상적으로 프로그램된 메모리 셀의 문턱전압 산포를 나타내고, 도 2b는 정상적으로 프로그램된 이후, 열화가 발생한 메모리 셀의 문턱전압 산포를 나타내고, 도 2c는 비정상적으로 프로그램된 메모리 셀의 문턱전압 산포를 나타낸다.
도 1에 도시된 메모리 장치의 동작 방법은, 비휘발성 메모리 장치에서 이용될 수 있으며, 예를 들어, 플래시 메모리 장치, 상변화 물질을 이용하는 PRAM(Phase Change Random Access Memory), 전이 금속 산화물 등의 가변저항 특성을 갖는 물질을 이용한 RRAM(Resistance Random Access Memory)과 강자성 물질을 이용한 MRAM(Magnetic Random Access Memory) 등과 같은 임의의 비휘발성 메모리 장치에도 이용될 수 있다. 이하, 하나의 메모리 셀마다 두 비트 이상의 데이터를 저장하는, 멀티-레벨 셀을 포함하는 플래시 메모리 장치를 중심으로 본 발명의 실시예에 대하여 설명하기로 한다. 플래시 메모리 장치에 포함되는 메모리 셀 어레이의 구처적인 구성 및 메모리 셀의 구조에 대해서는 도 4a 내지 4b 및 도 5를 참조하여 후술하도록 한다.
우선, 도 1을 참조하면, 본 발명의 실시예에 따른 메모리 장치의 동작 방법은 메모리 셀들 중, 제1 독출전압 및 제2 독출전압에 대한 오프셀 개수를 각각 카운트하는 단계(S110), 제1 독출전압에 대한 오프셀 개수와 제2 독출전압에 대한 오프셀 개수를 비교하는 단계(S210) 및 비교 결과를 기초로 메모리 셀들이 포함된 저장 영역에 대한 프로그램 동작이 정상적으로 수행되었는지 또는 비정상적으로 수행되었는지 판단하는 프로그램 오류 판단 단계(S130)를 포함한다. 여기서, 독출전압에 대한 오프셀 개수란, 문턱전압이 상기 독출전압보다 높은 메모리 셀의 개수를 의미한다. 본 발명의 실시예에 따른 메모리 장치의 동작 방법은 구체적으로는 메모리 셀들에 대한 프로그램 동작이 비정상적으로 수행된 경우를 검출하는 프로그램 오류 검출 방법에 대한 것이다.
도 2a 내지 도 2c를 참조하면, 정상적으로 프로그램된 메모리 셀의 문턱전압 산포와, 정상적으로 프로그램된 후 열화가 발생한 메모리 셀의 문턱전압 산포 및 비정상적으로 프로그램된 메모리 셀의 문턱전압 산포는 서로 다른 양상을 보인다. 특히, 비정상적으로 프로그램된 메모리 셀의 문턱전압 산포(도 2c)는 정상적으로 프로그램된 경우(도 2a) 및 정상적으로 프로그램되고 열화가 진행된 경우(도 2c)의 메모리 셀의 문턱전압 산포와 확연히 다름을 알 수 있다.
우선, 도 2a 내지 도 2c를 참조하면, 메모리 셀은 복수의 상태 중 하나로 프로그램될 수 있다. 예를 들어, 메모리 셀이 2-비트 멀티 레벨 메모리 셀인 경우, 도시된 바와 같이 E, P1, P2, P3 상태 중 하나로 프로그램될 수 있다. 각 상태는 메모리 셀에 저장된 데이터의 논리값을 나타낼 수 있다. 예컨대, E 상태는 논리 데이터 '11'을, P1 상태는 논리 데이터 '10'을 P2 상태는 논리 데이터 '00'을, P3 상태는 논리 데이터 '01'을 나타낼 수 있다. 한편, 메모리 셀들의 각각의 상태는 독출전압(VRD1, VRD2, VRD3)으로 구분될 수 있다. 예컨대, 메모리 셀의 문턱전압이 VRD3 이상이면 P3 상태로 독출되고, 문턱전압이 VRD3 보다 낮고 VRD2 이상이면 P2 상태로 독출되고, VRD2 보다 낮고 VRD1 이상이면 P1 상태로 독출되고, VRD1 보다 낮으면 E 상태로 독출될 수 있다. 한편, 독출 전압에 대한 오프셀은 문턱전압이 독출 전압보다 높은 메모리 셀을 의미한다. 예를 들어, 도 2a에서 VRD3 문턱전압에 대한 오프셀은 P3 상태의 메모리 셀이고, VRD2 문턱전압에 대한 오프셀은 P2 상태 및 P3 상태의 메모리 셀이다. 동일하게, VRD1 문턱전압에 대한 오프셀은 P1 상태, P2 상태 및 P3 상태의 메모리 셀들이다. 메모리 셀의 문턱전압이 메모리 셀이 프로그램된 상태에 대응하는 독출전압보다 낮아지는 경우, 독출전압에 대한 오프셀 개수의 수가 감소될 수 있다. 그리고, 이러한 경우, 독출 동작 수행시 독출 에러를 발생할 수 있다.
계속하여 도 2a를 참조하면, 정상적으로 프로그램된 메모리 셀의 경우, 문턱전압 산포는 각 상태(E, P1, P2, P3)별로 가우시안 곡선을 형성하고, 각 상태는 복수의 독출 전압(VRD1, VRD2, VRD3)으로 구분될 수 있다.
정상적으로 프로그램된 이후, 열화가 발생한 메모리 셀의 경우, 도 2b에 도시된 바와 같이, 각 상태마다 문턱전압 산포의 폭이 넓어진다. 이에 따라 각 상태별 일부 메모리 셀의 문턱전압이 독출전압(VRD1, VRD2, VRD3)보다 낮아지기는 하나 각 상태별 문턱전압 산포가 가우시안 분포를 형성하며, 산포의 폭이 서로 유사하다.
그런데, 비정상적으로 프로그램된 경우의 메모리 셀의 문턱전압 산포는, 정상적으로 프로그램된 경우 및 정상적으로 프로그램된 이후 열화가 발생한 메모리 셀의 문턱전압 산포와는 다른 양상을 보인다. 비정상적으로 프로그램된 경우, 특정 상태에서의 문턱전압의 산포의 폭이 다른 상태들의 문턱전압 산포의 폭보다 현저하게 넓어질 수 있다. 도 2c를 참조하면, E, P1, P2 상태의 경우, 정상적으로 프로그램된 경우의 문턱전압 산포와 유사한 반면, P3 상태의 경우, 문턱전압 산포의 폭이 정상적으로 프로그램 된 경우보다 증가되었으며, 이에 따라, P3 상태의 문턱전압 산포의 폭이 E, P1, P2 상태의 문턱전압 산포의 폭보다 증가되었음을 알 수 있다. 이는 P3 상태를 프로그램할 때 서든 파워 오프와 같은 예상치 못한 상황이 발생하여 P3 상태의 프로그램이 정상적으로 수행될 수 없었기 때문이다. 이와 같이, 비정상적으로 프로그램이 수행되는 경우, 메모리 셀이 프로그램될 수 있는 복수의 상태들 중 특정 상태로 프로그램된 메모리 셀들의 문턱전압 산포가 다른 상태로 프로그램된 메모리 셀들의 문턱전압 산포보다 나빠질 수 있다.
이에 따라, 독출전압에 대한 오프셀의 개수를 카운트하고, 상기 독출전압에 대한 오프셀의 개수의 예상값과 비교하여 오프셀 개수의 감소량을 산출하면(이하, 오프셀 개수의 예상값과 카운트 값이 차이를 오프셀 개수의 변화량 또는 감소량이라고 하기로 한다), 특정 독출전압에 대한 오프셀 개수의 감소량이 다른 독출전압들에 대한 오프셀 개수 감소량보다 현저히 클 것이다. 이때 오프셀 개수의 예상값은 메모리 셀들의 개수에 대한 프로그램 상태의 개수이거나 또는 메모리 셀에 프로그램이 수행될 때, 각각의 상태로 프로그램되는 메모리 셀들의 개수에 대한 정보로부터 산출된 값이다.
도 2a 및 도 2b를 참조하면, 각각의 상태의 산포 특성이 유사한바, VRD3 독츨 전압에 대한 오프셀 개수의 감소량은 VRD2 독출 전압 및 VRD1 독출 전압에 대한 오프셀 개수의 감소량과 큰 차이가 없음을 짐작할 수 있다. 그러나, 도 2c를 참조하면, VRD3 독출 전압에 대한 오프셀 개수의 감소량은 VRD2 독출 전압에 대한 오프셀 개수의 감소량과 큰 차이가 있음을 짐작할 수 있다.
이와 같이, 메모리 셀이 비정상적으로 프로그램된 경우에는 정상적으로 수행된 경우와 달리, 특정 문턱전압에 대한 오프셀 개수의 감소량이 다른 문턱전압들에 대한 경우보다 크므로 이러한 특성을 반영하여 문턱전압들에 대한 오프셀 개수를 카운트하고, 이를 비교하여 프로그램이 비정상적으로 수행되었는지, 다시 말해 프로그램 오류가 있는지 검출할 수 있다.
다시 도 1 및 도 2a 내지 도 2c를 참조하면, 본 발명의 실시예에 따른 프로그램 오류 검출 방법을 상세히 설명하기로 한다.
우선, 메모리 셀들 중 제1 독출전압 및 제2 독출전압에 대한 오프셀 개수를 각각 카운트한다(S110). 제1 독출전압 및 제2 독출전압은 프로그램된 메모리 셀들을 독출하는데 이용하는 복수의 전압들 중 하나로서, 제1 독출 전압은 독출 전압들 중 전압 레벨이 가장 높고, 제2 독출 전압은 제1 독출 전압보다 전압 레벨이 낮고 다른 독출 전압보다 전압 레벨이 낮은 독출 전압일 수 있다. 제1 독출전압에 대한 오프셀은 문턱전압이 제1 독출전압보다 높은 메모리 셀을, 제2 독출 전압에 대한 오프셀은 문턱전압이 제2 독출 전압보다 높은 메모리 셀을 의미한다. 제1 독출 전압은 메모리 셀들이 프로그램되는 상태들 중 제1 상태에 대응하는 독출 전압이고, 제2 독출 전압은 제2 상태에 대응하는 독출 전압일 수 있다. 예로서, 제1 상태는 메모리 셀에 대한 프로그램 동작이 수행될 때 마지막으로 프로그램되는 상태이고, 제2 상태는 제1 상태 이전에 프로그램되는 상태일 수 있다. 메모리 셀의 문턱전압을 높이는 방향으로 단계적으로 메모리 셀을 프로그램할 경우, 제1 상태는 메모리 셀의 문턱전압이 가장 높아진 상태, 즉 최상위 상태일 수 있고, 제2 상태는 메모리 셀의 문턱전압이 두번째로 높아진 상태, 즉 차상위 상태일 수 있다. 그러나, 이는 일 예일 뿐 이에 제한되는 것은 아니다. 제1 상태 및 제2 상태는 이와는 다른 상태로, 각각의 상태가 프로그램되는 순서, 메모리 셀의 종류 등에 따라 다양하게 결정될 수 있으며, 이에 대응하여 제1 독출 전압과 제2 독출 전압의 관계도 달라질 수 있다.
도 2a 내지 도 2c를 예를 들어 설명하면, 제1 독출 전압은 VRD3 독출 전압이고, 제2 독출 전압은, VRD2 독출 전압이다. 이때, 제1 독출 전압에 대응하는 제1 상태는 P3 상태이고, 제2 독출 전압에 대응하는 제2 상태는 P2 상태일 수 있다. 제1 독출 전압에 대한 오프셀은 제1 독출 전압 VRD3 보다 문턱전압이 높은 P3 상태의 메모리 셀들을 의미하고, 제2 독출 전압에 대한 오프셀은 제2 독출 전압인 VRD1 보다 문턱전압이 높은 P3 상태 및 P2 상태의 메모리 셀들을 의미한다.
다음으로, 제1 독출전압에 대한 오프셀 개수(이하, 제1 오프셀 개수라고 한다)와 제2 독출 전압에 대한 오프셀 개수(이하 제2 오프셀 개수라고 한다)를 비교한다(S120). 이때, 제1 오프셀 개수와 제2 오프셀 개수를 직접 비교할 수 있다. 또는, 제1 오프셀 개수와 제2 오프셀 개수를 기초로 제1 상태 및 제2 상태에 대하여 독출 오류가 발생하는 메모리 셀의 개수를 산출하고, 산출된 독출 오류가 발생한 메모리 셀들의 개수를 비교할 수도 있다. 제1 상태에 대하여 독출 오류가 발생한 메모리 셀의 개수란 제1 상태로 프로그램 되었으나 제1 상태로 독출되지 못한 메모리 셀의 개수를 의미한다. 각각의 메모리 셀에 대한 에러 체크를 통해 독출 오류가 발생하였는지 여부를 확인하는 단계를 거치지 않아도, 오프셀 개수를 카운트하고 카운트된 값에 기초하여 독출 오류가 발생한 메모리 셀의 개수를 산출할 수 있다. 이때, 각각의 상태에 대하여 독출 오류가 발생하는 메모리 셀의 개수는 오프셀 개수의 변화량과 동일한 의미일 수 있다.
도 2b를 참조하면, 제1 상태, 예컨대 P3 상태 및 제2 상태, 예컨대 P2 상태에 대하여 독출 에러가 발생한 메모리 셀은 각각 c 구간 및 d 구간에 속하는 메모리 셀이며, 각각의 메모리 셀의 개수가 비슷한바, 제1 상태와 제2 상태의 독출 에러 발생량이 유사하다. 이에 따라, 제1 독출 전압, 예컨대 VRD3 전압에 대한 오프셀 개수, 즉 P3 상태의 메모리 셀들의 개수를 카운트하고, 제2 독출 전압, 예컨대 VRD2 전압에 대한 오프셀 개수, 즉 P2 및 P3 상태의 메모리 셀들의 개수를 카운트한 값 각각은, 메모리 셀들의 개수에 대한 예상값 보다 감소되며, 감소량은 서로 유사할 것이다. 그러나, 도 2c의 경우, 독출 에러가 발생하는 메모리 셀은 제1 상태, 예컨대 P3 상태를 목표로 프로그램된 d 구간에 속하는 메모리 셀 뿐이다. 따라서, P3 상태의 메모리 셀들의 개수를 카운트하고, P2 및 P3 상태의 메모리 셀들의 개수를 카운트하여 예상값과 비교하면, P3 상태의 메모리 셀들의 개수의 감소가 큰 반면, P2 및 P3 상태의 메모리 셀들의 개수의 감소가 없거나 매우 적을 것이다.
이상에서와 같이 제1 독출 전압에 대한 오프셀 개수와 제2 독출 전압에 대한 오프셀 개수를 비교하고, 비교 결과를 기초로 메모리 셀들이 포함된 저장 영역에 대한 프로그램 오류를 판단한다(S130). 상술한 바와 같이, 프로그램이 정상적으로 수행되지 못한 경우로서, 즉 프로그램 오류가 발생하면, 특정 독출 전압에 대한 오프셀의 개수의 감소폭이 다른 독출 전압에 대한 오프셀의 감소폭보다 크다. 따라서, 제1 독출 전압에 대한 오프셀 개수와 제2 독출 전압에 대한 오프셀 개수를 비교함으로써, 프로그램 오류를 판단할 수 있다.
한편, S120 단계에서 제1 오프셀 개수와 제2 오프셀 개수를 기초로 제1 상태 및 제2 상태에 대하여 독출 오류가 발생하는 메모리 셀의 개수를 산출하고, 산출된 독출 오류가 발생한 메모리 셀들의 개수를 비교하는 경우에는, 제1 상태와 제2 상태간의 독출 에러 발생량의 차이가 클 경우 메모리 셀들이 비정상적으로 프로그램되었다고 판단하고, 제1 상태와 제2 상태간의 독출 에러 발생량의 차이가 작을 경우 메모리 셀들이 정상적으로 프로그램되었다고 판단할 수 있다. 예를 들어, 상기 S120 단계에서 산출한 제1 상태와 제2 상태간의 독출 에러 발생 비가 소정의 기준값보다 클 경우, 메모리 셀들이 비정상적으로 프로그램되었다고 판단하고, 소정의 기준값보다 작을 경우, 메모리 셀들이 정상적으로 프로그램되었다고 판단할 수 있다. 상기 기준값은 상기 비교하는 메모리 셀들의 용량 등에 기초하여 미리 정해질 수 있다.
도 2c의 경우, P3 상태의 독출 에러 발생량이 P2 상태의 독출 에러 발생량보다 현저하게 크다. 따라서, 본 발명의 실시예에 따른 프로그램 오류 판단 방법에 따라 메모리 셀들이 비정상적으로 프로그램되었다고 판단될 수 있다. 그러나, 도 2a 의 경우, 독출 에러가 발생하지 않으며, 도 2b의 경우, P3 상태와 P2 상태간의 독출 에러 발생량이 비슷하다. 따라서, 도 2a와 도 2b의 경우에는 메모리 셀이 정상적으로 프로그램되었다고 판단될 수 있다. 이에 따라, 도 2c에 도시된 바와 같이 메모리 셀들에 대한 프로그램 수행 중 서든 파워 오프가 발생한 경우에는 프로그램 오류가 검출되었다고 판단하고, 도 2a 및 도 2c에 도시된 바와 같이, 정상적으로 프로그램 된 경우에는 프로그램 오류가 검출되지 않았다고 판단한다.
상술한 바와 같이, 본 발명의 실시예에 따른 메모리 장치의 동작 방법은 메모리 셀들에 대한 프로그램이 정상적으로 수행되지 않았을 경우의 메모리 셀들의 문턱전압 산포 특성을 반영하여, 프로그램 오류를 판단하므로, 프로그램 오류 검출의 정확도를 높일 수 있다. 또한, 에러 비트 발생 여부 등을 판단하는 것이 아니라 단순히 문턱전압들에 대한 오프셀 개수를 카운트하고, 그 카운트된 값을 이용하여 프로그램 오류를 판단하므로 프로그램 오류 검출 과정을 간략화하고 검출 속도를 증가시킬 수 있다.
종래에는, ECC(Error Check and Correction) 가능 수준을 계산하고, 독출 에러 발생 비트의 수, 예컨대 페일 비트(fail bit) 수가 ECC 가능 수준 이상일 경우에는 비정상적으로 프로그램되었다고 판단하고, ECC 가능 수준 이하일 경우에는 정상적으로 프로그램되었다고 판단하였다. 그러나, 비정상적으로 프로그램된 경우의 독출 에러 발생 비트 수가 정상적으로 프로그램된 경우의 독출 에러 발생 비트 수와 유사하거나 그 이하일 수도 있다. 도 2b 및 도 2c에 도시된 바에 따르면, 메모리 셀이 정상적으로 프로그램되었으나 열화가 발생한 경우, 독출 에러가 발생하는 메모리 셀은 도 2b의 a, b, c 구간에 포함되는 메모리 셀이고, 메모리 셀이 비정상적으로 프로그램된 경우, 독출 에러가 발생하는 메모리 셀들은 도 2c의 d 구간에 포함되는 메모리 셀이다. 이때, a, b, c 구간에 포함되는 메모리 셀의 수는 d 구간에 포함되는 메모리 셀의 수와 유사하거나 크다는 것을 짐작할 수 있다. 그러므로, 독출 에러 발생 비트 수가 도2c에서보다 도 2b에서 더 클 수 있다. 따라서, 종래와 같이 단순히 ECC 가능 수준을 기준으로 독출 에러 발생 비트의 절대 수치를 기준으로 프로그램 오류를 판단할 경우, 메모리 셀이 정상적으로 프로그램된 이후 열화된 경우와 메모리 셀이 비정상적으로 프로그램된 경우를 구분하지 못할 수 있다.
그러나, 본 발명의 실시예에 따른 프로그램 오류 판단 방법은 특정 상태의 산포 특성에 대한 다른 상태의 산포 특성의 상대성을 기준으로 프로그램 오류 발생 여부를 판단하므로, 메모리 셀이 정상적으로 프로그램된 이후 열화된 경우와 메모리 셀이 비정상적으로 프로그램된 경우를 구분하고, 메모리 셀의 프로그램 오류를 보다 정확하게 판단할 수 있다.
도 3은 본 발명의 실시예에 따른 메모리 시스템을 개략적으로 나타내는 블록도이다.
도 3을 참조하면, 메모리 시스템(100)은 메모리 장치(10) 및 메모리 컨트롤러(20)를 포함할 수 있다. 메모리 컨트롤러(20)는 메모리 장치(10)에 대한 제어 동작을 수행할 수 있는데, 구체적으로, 메모리 컨트롤러(20)는 메모리 장치(10)에 어드레스(ADDR), 커맨드(CMD) 및 제어 신호(CTRL)를 제공함으로써, 메모리 장치(20)에 대한 프로그램(또는 쓰기), 독출 및 소거 동작을 제어할 수 있다. 이하에서는, 메모리 컨트롤러(20) 및 메모리 장치(10)에 포함된 구성 요소들에 대하여 상술하기로 한다.
메모리 장치(10)는 메모리 셀 어레이(11)를 포함할 수 있는데, 메모리 셀 어레이(11)는 복수의 워드 라인과 복수의 비트 라인들이 교차하는 영역들에 배치되는 복수의 메모리 셀들을 포함할 수 있다. 일 실시 예에서, 복수의 메모리 셀들은 플래시 메모리 셀들일 수 있고, 메모리 셀 어레이(11)는 낸드(NAND) 플래시 메모리 셀 어레이 또는 노아(NOR) 플래시 메모리 셀 어레이일 수 있다. 이하에서는, 복수의 메모리 셀들이 플래시 메모리 셀들인 경우를 예로 하여 본 발명의 실시 예들을 상술하기로 한다. 그러나, 본 발명은 이에 한정되지 아니하고, 복수의 메모리 셀들은 RRAM(resistive RAM), PRAM(phase change RAM) 또는 MRAM(magnetic RAM)과 같은 저항형 메모리 셀들 중 하나일 수 있다.
메모리 장치(10)의 메모리 셀 어레이(11) 중 선택된 워드라인에 포함된 메모리 셀들에 대한 프로그램 동작 수행 중, 서든 파워 오프, 프로그램 전압 강하 등과 같은 예상치 못한 에러 상황이 발생할 경우, 메모리 셀들에 대한 프로그램 동작이 정상적으로 수행되지 못할 수 있다. 그러므로, 메모리 장치(10)가 다시 정상 상태로 돌아온 이후에는, 그 이전에 마지막으로 엑세스되어 프로그램되었던 메모리 셀들에 대한 프로그램 동작이 비정상적으로 수행되었는지 여부, 즉 프로그램 오류가 존재하는지를 검출하고, 프로그램 오류가 검출 될 경우, 추가적인 보완 동작을 수행하여야 한다. 이를 위해, 메모리 컨트롤러(20)는 프로그램 오류 검출부(PED)를 구비할 수 있다.
메모리 컨트롤러(20)가 마지막으로 프로그램된 메모리 셀들에 대한 어드레스를 메모리 장치(10)로 제공하고, 메모리 장치(10)가 상기 어드레스에 해당하는 메모리 셀들로부터 데이터(DATA)를 독출하여 메모리 컨트롤러(20)로 제공하면, 프로그램 오류 검출부(PED)는 상기 데이터(DATA)를 기초로 메모리 셀들에 대한 프로그램 동작에 오류가 존재하는지 여부를 판단할 수 있다. 프로그램 오류 검출부(PED)는 도 1을 참조하여 설명한 메모리 장치의 동작 방법, 즉 프로그램 오류 검출 방법에 따라 동작할 수 있다. 그리고, 프로그램 오류 검출부(PED)가 프로그램이 정상적으로 수행되지 않았다고 판단할 경우, 즉 프로그램동작에 오류가 있다고 판단하면, 메모리 컨트롤러(20)는 비정상적으로 프로그램이 수행된 메모리 셀의 영역을 배드 영역으로 처리하고, 다른 영역의 메모리 셀에 데이터를 재 프로그램 하는 등의 보완 동작이 수행될 수 있도록 하는 제어신호(CTRL) 및 명령(CMD)을 메모리 장치(10)로 제공할 수 있다.
도 4는 도 3의 메모리 시스템에 포함된 메모리 장치를 나타내는 블록도이다.
도 4를 참조하면, 메모리 장치(10)는 플래시 메모리 장치일 수 잇으며, 메모리 셀 어레이(11), 로우 디코더(12), 입출력 회로(13), 전압 발생부(14) 및 제어 로직(15)을 포함할 수 있다.
메모리 셀 어레이(11)는 복수의 워드 라인들(WL)과 복수의 비트 라인들(BL)에 각각 연결되는 복수의 메모리 셀들을 포함한다. 도 5a 내지 도 5b를 참조하여 후술하는 바와 같이, 상기 복수의 메모리 셀들은 각각 낸드 플래시 메모리 셀들일 수 있으며, 2차원 어레이 구조 또는 3차원 수직 어레이 구조로 배열될 수 있다. 복수의 메모리 셀들은 멀티-레벨 셀들일 수 있으며, 쉐도우 프로그램 방식, 리프로그램 방식 또는 온칩 버퍼드 프로그램 방식과 같은 다양한 프로그램 방식을 이용하여 프로그램될 수 있다.
로우 디코더(12)는 로우 어드레스(XADD)에 기초하여 하나의 워드 라인을 선택하는 방식으로 선택 워드 라인에 연결된 복수의 메모리 셀들을 선택한다. 예를 들어, 기입 모드에서 프로그램 전압 및 검증 전압이 상기 선택 워드 라인에 인가되고, 독출 모드에서 독출 전압이 상기 선택 워드 라인에 인가되며, 소거 모드에서 소거 전압이 워드라인에 인가될 수 있다. 워드 라인에 인가되는 전압(VWL)은 제어 로직(15)으로부터 제공되는 전압 제어신호(VCTRL)에 기초하여 전압 발생부(14)로부터 공급된다.
입출력 회로(13)는 복수의 비트 라인들(BL)에 연결되고, 메모리 셀 어레이(11)에 프로그램될 기입 데이터를 저장하거나 혹은 메모리 셀 어레이(11)로부터 감지된 독출 데이터를 저장한다. 입출력 회로(13)는 복수의 비트 라인들(BL)에 상응하는 복수의 페이지 버퍼(PB)를 포함할 수 잇으며, 컬럼 어드레스(YADD)에 기초하여 비트라인들을 선택하는 컬럼 디코더를 포함할 수 있다. 페이지 버퍼(PB)는 복수의 데이터 래치들을 각각 포함할 수 있으며, 메모리 장치(10)의 동작 모드에 따라 기입 드라이버 또는 감지 증폭기로서 동작할 수 있다. 입출력 회로(13)는 기입 모드의 프로그램 동작에서 외부로부터 제공되는 기입 데이터를 로딩하고, 기입 데이터에 따라서 프로그램 허용 전압 또는 프로그램 금지 전압을 각각의 비트 라인에 인가하며, 독출 모드에서 각 비트 라인의 전압을 감지하여 독출 데이터를 출력할 수 있다.
제어 로직(15)은 메모리 장치(11)의 전반적인 동작을 제어하기 위한 제어 신호 및 전압 발생부(14)의 동작을 제어하기 위한 전압 제어신호(VCTRL)를 발생한다. 실시 예에 따라서, 제어 로직(15)는 메모리 장치(11)의 내부 또는 외부에 위치할 수 있다.
전압 발생부(14)는 전압 제어 신호(VCTRL)에 응답하여 워드 라인 전압(VWL) 및 비트라인 전압(VBL)을 발생한다. 로우 디코더(12)에 제공되는 워드 라인 전압(VWL)은 각 동작 모드에 따른 프로그램 전압, 독출 전압 및 소거 전압 등을 포함할 수 있다. 입출력 회로(13)에 제공되는 비트라인 전압(VBL)은 프로그램 허용 전압, 프로그램 금지전압 및 프리차지 전압 등을 포함할 수 있다.
도 5a 및 도 5b는 도 2의 메모리 장치에 포함되는 셀 어레이의 예들을 나타내는 도면이다.
도 5a를 참조하면, 메모리 셀 어레이(11a)는 복수의 비트 라인들(BL(1),..., BL(m)), 복수의 워드 라인들(WL(1), ..., WL(n)) 및 복수의 비트 라인들(BL(1), ..., BL(m))과 복수의 워드 라인들(WL(1), ..., WL(n))이 교차하는 영역들에 배치되는 복수의 메모리 셀들(MC1)을 포함할 수 있다. 또한, 메모리 셀 어레이(11a)는 스트링 선택 트랜지스터(SST), 접지 선택 트랜지스터(GST)들을 더 포함할 수 있다. 스트링 선택 트랜지스터(SST)들은 비트 라인들(BL(1),..., BL(m))에 연결되고, 접지 선택 트랜지스터(GST)들은 공통 소스 라인(CSL)에 연결될 수 있다. 동일한 열에 배열된 메모리 셀(MC1)들은 비트 라인들(BL(1),..., BL(m)) 중 하나와 공통 소스 라인(CSL) 사이에 직렬로 배치될 수 있으며, 동일한 행에 배열된 메모리 셀(MC)들은 워드 라인들(WL(1), WL(2), WL(3), ..., WL(n-1), WL(n)) 중 하나에 공통으로 연결될 수 있다. 즉, 스트링 선택 트랜지스터(SST)들과 접지 선택 트랜지스터(GST)들 사이에 메모리 셀(MC1)들이 직렬로 연결될 수 있으며, 스트링 선택 라인(SSL)과 접지 선택 라인(GSL) 사이에는 16개, 32개 또는 64개의 복수의 워드 라인들이 배열될 수 있다.
스트링 선택 트랜지스터(SST)들은 스트링 선택 라인(SSL)에 연결되어, 스트링 선택 라인(SSL)으로부터 인가되는 전압의 레벨에 따라 제어될 수 있고, 접지 선택 트랜지스터(GST)들은 접지 선택 라인(GSL)에 연결되어, 접지 선택 라인(GSL)으로부터 인가되는 전압의 레벨에 따라 제어될 수 있다. 메모리 셀(MC1)들은 워드 라인들(WL(1),..., WL(n))에 인가되는 전압의 레벨에 따라 제어될 수 있다. 각각의 워드 라인(WL(1),..., WL(n))에 접속된 메모리 셀들(MC1)은 한 페이지 또는 복수 개의 페이지 분량에 해당하는 데이터를 저장할 수 있다.
낸드 플래시 메모리 장치는 페이지(PG) 단위로 기입 동작(또는 프로그램 동작) 및 독출 동작을 수행하며, 블록(BLK) 단위로 소거동작을 수행할 수 있다. 각각의 페이지에 대한 프로그램 동작 또는 소거 동작과 관련된 정보는 스페어 영역(또는 메인 영역의 일부 영역)에 할당된 메모리 셀에 저장된다. 이를 플래그 정보(FL)라 하고, 플래그 정보를 저장하는 메모리 셀을 플래그 셀(MF)이라 한다.
셀 당 N 비트의 데이터가 저장되는 멀티 레벨 셀의 경우, 각각의 비트에 대한 프로그램 동작이 최대 N회까지 각각 독립적으로 수행될 수 있다. 그리고, 각각의 프로그램 동작은 복수 개의 프로그램 루프들로 구성될 수 있다. 멀티 레벨 셀의 각 비트(예를 들면, LBB 비트, MSB 비트)에 대한 프로그램 동작은 워드 라인들(WL(1),..., WL(n)) 중 동일한 워드 라인에 접속된 셀들에서 페이지 단위로 수행될 수 있다. 프로그램 동작시 할당되는 페이지 어드레스는 워드라인 방향으로 연속적으로 할당될 수도 있고, 비연속적으로 할당될 수 있다. 내부적으로 할당되는 페이지 어드레스는 선택된 메모리 셀의 사용 빈도 등을 고려하여 내부적으로 결정될 수 있다.
도 5b를 참조하면, 메모리 셀 어레이(11b)는 수직 구조를 가지는 복수의 스트링(STR)들을 포함할 수 있다. 스트링(STR)은 제2 방향을 따라 복수 개로 형성되어 스트링 열을 형성할 수 있으며, 상기 스트링 열은 제3 방향을 따라 복수 개로 형성되어 스트링 어레이를 형성할 수 있다. 복수의 스트링(STR)들은 비트 라인들(BL(1),..., BL(m))과 공통 소스 라인(CSL) 사이에 제1 방향을 따라 직렬로 배치되는 접지 선택 트랜지스터(GSTV)들, 메모리 셀(MC2)들 및 스트링 선택 트랜지스터(SSTV)들을 각각 포함할 수 있다.
접지 선택 트랜지스터(GSTV)들은 접지 선택 라인들(GSL11, GSL12, ..., GSLi1, GSLi2)에 각각 연결되고, 스트링 선택 트랜지스터(SSTV)들은 스트링 선택 라인들(SSL11, SSL12, ..., SSLi1, SSLi2)에 각각 연결될 수 있다. 동일한 층에 배열되는 메모리 셀(MC2)들은 워드 라인들(WL(1), WL(2), ..., WL(n-1), WL(n)) 중 하나에 공통으로 연결될 수 있다. 접지 선택 라인들(GSL11, ..., GSLi2) 및 스트링 선택 라인들(SSL11, ..., SSLi2)은 상기 제2 방향으로 연장되며 상기 제3 방향을 따라 복수 개로 형성될 수 있다. 워드 라인들(WL(1), ..., WL(n))은 상기 제2 방향으로 연장되며 상기 제1 방향 및 상기 제3 방향을 따라 복수 개로 형성될 수 있다. 비트 라인들
(BL(1), ..., BL(m))은 상기 제3 방향으로 연장되며 상기 제2 방향을 따라 복수 개로 형성될 수 있다. 메모리셀(MC2)들은 워드 라인들(WL(1), ..., WL(n))에 인가되는 전압의 레벨에 따라 제어될 수 있다.
메모리 셀 어레이(11b)를 포함하는 수직형 플래시 메모리 장치는 낸드 플래시 메모리 셀들을 포함하므로, 일반적인 낸드 플래시 메모리 장치와 마찬가지로 페이지 단위로 기입 동작 및 독출 동작을 수행하며, 블록단위로 소거 동작을 수행할 수 있다.
실시예에 따라서, 하나의 스트링(STR)에 포함되는 두 개의 스트링 선택 트랜지스터들은 하나의 스트링 선택 라인에 연결되고 하나의 스트링에 포함되는 두 개의 접지 선택 트랜지스터들은 하나의 접지 선택 라인에 연결되도록 구현될 수도 있다. 또한, 실시예에 따라서, 하나의 스트링은 하나의 스트링 선택 트랜지스터 및 하나의 접지 선택 트랜지스터를 포함하여 구현될 수도 있다.
도 6은 도 5a 및 도 5b의 메모리 셀(MC1, MC2)의 일 예를 나타내는 도면이다.
도 6을 참조하면, 기판(SUB) 상에 소스(S) 및 드레인(D)이 형성되고, 소스(S)와 드레인(D)의 사이에는 채널 영역이 형성될 수 있다. 채널 영역의 상부에는 플로팅 게이트(FG)가 형성되는데, 채널 영역과 플로팅 게이트(FG)의 사이에는 터널링(tunneling) 절연층과 같은 절연층이 배치될 수 있다. 플로팅 게이트(FG)의 상부에는 컨트롤 게이트(CG)가 형성되는데, 플로팅 게이트(FG)와 컨트롤 게이트(CG)의 사이에는 블로킹(blocking) 절연층과 같은 절연층이 배치될 수 있다. 기판(SUB), 소스(S), 드레인(D) 및 컨트롤 게이트(CG)에는 메모리 셀(MCEL)에 대한 프로그램, 소거 및 독출 동작에 필요한 전압들이 인가될 수 있다.
플래시 메모리 장치에서는 메모리 셀(MCEL)의 문턱 전압(threshold voltage, Vth)의 구별에 의해 메모리 셀(MCEL)에 저장된 데이터가 독출될 수 있다. 이때, 메모리 셀(MCEL)의 문턱 전압(Vth)은 플로팅 게이트(FG)에 저장된 전자(electron)의 양에 따라 결정될 수 있다. 구체적으로, 플로팅 게이트(FG)에 저장된 전자가 많을수록 메모리 셀(MCEL)의 문턱 전압은 높아질 수 있다.
메모리 셀(MCEL)의 플로팅 게이트(FG)에 저장된 전자는 다양한 원인들에 의해 화살표 방향으로 누설(leakage)될 수 있고, 이에 따라, 메모리 셀(MCEL)의 문턱 전압이 변경될 수 있다. 예를 들어, 플로팅 게이트(FG)에 저장된 전자는 메모리 셀의 마모에 의해 누설될 수 있다. 구체적으로, 메모리 셀(MCEL)에 대한 프로그램, 소거 또는 독출과 같은 액세스 동작을 반복하면 채널 영역과 플로팅 게이트(FG) 사이의 절연막은 마모될 수 있고, 이에 따라, 플로팅 게이트(FG)에 저장된 전자가 누설될 수 있다. 또 다른 예로, 플로팅 게이트(FG)에 저장된 전자는 고온 스트레스 또는 프로그램/독출 시의 온도 차이 등에 의해 누설될 수도 있다. 이와 같은 누설 현상은 메모리 장치를 열화시키는 요인이 된다.
한편, 프로그램 동작이 비정상적으로 수행될 경우, 플로팅 게이트(FG)에 저장된 전자가 정상보다 적을 수 있다. 이에 따라, 메모리 셀(MCEL)의 문턱 전압이 낮아질 수 있으며, 시간이 흐를수록 프로팅 게이트(FG)에 저장된 전자가 누설되는 양이 커질 수 있다.
도 7a 및 도 7b는 도 3의 메모리 시스템의 제어부의 일 구현예를 나타낸 블록도이다.
도 7a를 참조하면, 프로그램 오류 검출부(PED)는 오프셀 카운터(CNT), 비교부(CMP) 및 프로그램 오류 판단부(DET)를 포함할 수 있다.
오프셀 카운터(CNT)는 제1 데이터(DATA 1) 및 제2 데이터(DATA2)를 수신하고, 제 1 독출전압에 대한 오프셀 및 제2 독출 전압에 대한 오프셀의 개수를 카운트한다. 이때, 제1 데이터(DATA1)는 제1 상태에 대응하는 제1 독출 전압을 기초로 메모리 셀들 각각의 상태를 독출한 데이터이고, 제2 데이터(DATA 2)는 제2 상태에 대응하는 제2 독출 전압을 기초로 메모리 셀들 각각의 상태를 독출한 데이터이다. 예를 들어, 제1 상태가 도 2c의 P3 상태이고, 제2 상태가 P2 상태일 경우, 제1 데이터(DATA 1)는 VRD3 독출전압을 기초로 메모리 셀들을 독출하였을 때 독출된, 메모리 셀들 각각에 대한 상태 정보이고, 제2 데이터(DATA 2)는 VRD2 독출 전압을 기초로 메모리 셀들을 독출하였을 때 독출된, 메모리 셀들 각각에 대한 상태 정보를 포함한다. 이때, 제1 데이터(DATA 1)에서 논리값 '1'은 대응하는 메모리 셀이 VRD3 독출 전압에 대한 오프셀임을 의미하며, 제2 데이터(DATA 1)에서 논리값 '0'은 대응하는 메모리 셀이 VRD2 독출 전압에 대한 오프셀임을 의미한다. 오프셀 카운터(CNT)는 제1 데이터(DATA 1)의 논리값 '1'의 개수를 카운트함으로써 제1 독출 전압에 대한 오프셀 개수, 즉 제1 상태로 독출되는 메모리 셀의 개수를 카운트할 수 있다. 카운트된 값은 제1 오프셀 개수(OFF1)로서 출력될 수 있다. 그리고, 제2 데이터(DATA 2)의 논리값 '0'의 개수를 카운트함으로써 제2 독출 전압에 대한 오프셀 개수, 즉 제1 상태 및 제2 상태로 독출되는 메모리 셀의 개수를 카운트할 수 있다. 카운트된 값은 제2 오프셀 개수(OFF2)로서 출력될 수 있다.
비교부(CMP)는 제1 오프셀 개수(OFF1) 및 제2 오프셀 개수(OFF2)를 비교하고 비교 결과(RCMP)를 출력한다. 제1 오프셀 개수(OFF1)에 대한 제2 오프셀 개수(OFF2)의 비가 비교 결과(RCMP)로 출력될 수 있다. 또는 제1 오프셀 개수(OFF1) 및 제2 오프셀 개수(OFF2)의 변화량을 산출하고, 그 차이의 비를 비교 결과(RCMP)로서 출력할 수도 있다. 이외에도 다양한 비교 방법이 적용될 수 있다.
프로그램 오류 판단부(DET)는 상기 비교 결과(RCMP)를 기초로 메모리 셀들이 포함된 저장 영역에 대한 프로그램 오류가 있는지를 판단한다. 프로그램 오류 판단부(DET)는 비교 결과(RCMP)가 소정의 판단 기준값보다 큰 경우, 또는 소정의 판단 기준값보다 작은 경우 프로그램 오류가 있다고 판단할 수 있다. 예를 들어, 독출 에러 비교 결과(RCMP)가 제1 오프셀 개수(OFF1)에 대한 제2 오프셀 개수(OFF2)의 비를 포함할 경우, 상기 비교 결과(RCMP)가 소정의 판단 기준값 보다 작으면 프로그램 오류가 있다고 판단할 수 있다. 또는 독출 에러 비교 결과(RCMP)가 제1 오프셀 개수(OFF1)의 변화량에 대한 제2 오프셀 개수(OFF2)의 변화량의 비를 포함할 경우, 상기 비교 결과(RCMP)가 소정의 판단 기준값 보다 크면 프로그램 오류가 있다고 판단할 수 있다. 프로그램 오류가 있다고 판단되면, 즉, 프로그램이 비정상적으로 수행되었다고 판단되면, 메모리 셀에 대한 프로그램 동작 수행 시 서든 파워 오프 등과 같은 상황이 발생하였다고 추정할 수 있다.
도 7b를 참조하면, 프로그램 오류 검출부(PED)는 오프셀 카운터(CNT), 에러셀 산출부(CAU), 비교부(CMP) 및 프로그램 오류 판단부(DET)를 포함할 수 있다. 도 7a와 비교하면, 도 7b의 프로그램 오류 검출부(PED)는 에러 셀 산출부(CAU)를 더 포함할 수 있다.
에러 셀 산출부(CAU)는 오프셀 카운터(CNT)로부터 제공되는 제1 오프셀 개수(OFF1) 및 제2 오프셀 개수(OFF2)를 기초로 제1 상태 및 제2 상태에 대한 에러 셀의 개수(ER1, ER2)를 산출할 수 있다.
비교부(CMP)는 제1 상태에 대한 에러 셀의 개수(ER1; 이하 제1 에러 셀 개수라고 한다) 및 제2 상태에 대한 에러 셀의 개수(ER2; 이하 제2 에러 셀 개수라고 한다)를 비교한다. 이때, 에러셀의 개수는 오프셀의 변화량과 동일하므로, 결국 에러 셀의 개수를 비교한다는 것은 오프셀의 개수를 비교하는 것과 동일한 의미일 수 있다.
프로그램 오류 판단부(DET)는 상기 비교 결과(RCMP)를 기초로 메모리 셀들이 포함된 저장 영역에 대한 프로그램 오류가 있는지를 판단한다. 예를 들어, 프로그램 오류 판단부(DET)는 비교 결과(RCMP)가 소정의 판단 기준값보다 큰 경우, 프로그램 오류가 있다고 판단할 수 있다.
도 8은 도 1의 메모리 장치의 동작 방법의 일 예를 나타내는 흐름도이다. 도 8의 흐름도는 도 1의 메모리 장치의 동작 방법의 각 단계를 보다 상세하게 나타낸다.
도 8을 참조하면, 제1 오프셀(OFF1)을 카운트하고(S111), 제2 오프셀(OFF2)를 카운트한다. 이때 상술한 바와 같이, 제1 오프셀(OFF1)은 제1 독출 전압에 대한 오프셀이고 제2 오프셀(OFF2)은 제2 독출 전압에 대한 오프셀로서, 제1 독출 전압이 제2 독출 전압보다 전압 레벨이 높을 경우, 제1 오프셀(OFF1)은 제1 상태의 메모리 셀이고, 제2 오프셀(OFF2)는 제1 상태 및 제2 상태의 메모리 셀이다.
도 7a 를 참조하여 설명한 바와 같이, 제1 독출전압으로 메모리 셀들의 상태를 독출한 결과 데이터(도 7a의 DATA 1)에 기초하여 제1 오프셀(OFF1)을 카운트할 수 있다. 또한, 제2 독출전압으로 메모리 셀들의 상태를 독출한 결과 데이터 (DATA 2)에 기초하여 제2 오프셀(OFF2)을 카운트할 수 있다.
그리고, 제1 오프셀 개수(OFF1)와 제2 오프셀 개수(OFF2)를 비교한다(S120a). 본 실시예에서는 비교 결과(RCMP)가 제1 오프셀 개수(OFF1)에 대한 제2 오프셀 개수(OFF2)로 산출될 수 있다.
이후, 비교 결과(RCMP)에 기초하여 프로그램 오류를 판단한다(S130a). 비교 결과(RCMP)가 소정의 기준값(PREF1; 이하 제1 판단 기준값이라고 한다)보다 작으면, 프로그램 오류라고 판단(S132)하고, 제1 판단 기준값(PREF1)보다 크거나 같으면 프로그램이 정상(S133)이라고 판단할 수 있다. 이때, 제1 판단 기준값(PREF1)은 프로그램되는 메모리 셀의 용량, 프로그램 상태의 문턱전압 산포, 및 독출 전압의 전압 레벨, 연산 방법 등을 고려하여 설정될 수 있다.
도 9는 도 1의 메모리 장치의 동작 방법의 일 예를 나타내는 흐름도이다. 도 9의 흐름도는 도 1의 메모리 장치의 동작 방법의 각 단계를 보다 상세하게 나타낸다.
도 9에서, 제1 오프셀 개수(OFF1) 및 제2 오프셀 개수(OFF2)를 카운트하는 단계(S110a)는 도 8과 동일하다. 따라서 중복되는 설명은 생략하기로 한다.
제1 오프셀 개수(OFF1) 및 제 2 오프셀 개수(OFF2)를 카운트(S110a)한 후, 제1 오프셀 개수(OFF1)와 제2 오프셀 개수(OFF2)를 비교한다(S120b). 본 실시예에서는 제1 오프셀 개수(OFF1)과 제2 오프셀 개수(OFF2)를 직접적으로 비교하지 않고, 상기 제1 오프셀 개수(OFF1)과 제2 오프셀 개수(OFF2)를 기초로 제1 상태 및 제2 상태에 대한 에러 셀의 개수(ER1, ER2)를 산출하고 이를 비교할 수 있다.
우선, 제1 기준값(REF1)에서 제1 오프셀 개수(OFF1)을 뺀 값을 제1 상태에 대한 에러 셀의 개수(ER1)로서 산출하고(S121), 제2 기준값(REF2)에서 제2 오프셀 개수(OFF2)를 뺀 값을 제2 상태에 대한 에러 셀의 개수(ER2)로서 산출한다(S122). 이때, 제1 기준값(REF1) 및 제2 기준값(REF2)은 제1 오프셀 개수(OFF1) 및 제2 오프셀 개수(OFF2) 각각에 대한 예상값일 수 있다. 즉, 정상적으로 프로그램이 수행되었을 때의 제1 오프셀 개수 및 제2 오프셀 개수일 수 있다. 이때, 제1 상태 및 제2 상태에 대한 에러 셀의 개수(ER1, ER2)는 제1 및 제2 오프셀 개수(OFF1, OFF2)의 변화량과 동일할 수 있다.
다음으로, 제1 상태에 대한 에러 셀의 개수(ER1)와 제2 상태에 대한 에러 셀의 개수(ER2)의 비를 비교 결과(RCMP)로서 산출한다(S123).
프로그램 에러 판단 단계(S130b)에서는 상기 비교 결과(RCMP)를 소정의 기준값(PREF2; 이하 제2 판단 기준값이라고 한다)과 비교하여 (S131a) 프로그램 에러를 판단할 수 있다. 비교 결과(RCMP)가 제2 판단 기준값(PREF2)보다 크면, 프로그램 오류(S132)라고 판단하고, 비교 결과(RCMP)가 제2 판단 기준값(PREF2)보다 작거나 같으면, 프로그램 정상(133)이라고 판단할 수 있다. 이때, 제2 판단 기준값(PREF2)은 프로그램되는 메모리 셀의 용량, 프로그램 상태의 문턱전압 산포, 및 독출 전압의 전압 레벨, 연산 방법 등을 고려하여 설정될 수 있다.
이상, 도 8 및 도 9를 참조하여, 본 발명의 실시예에 따른 메모리 장치의 동작 방법을 상세하게 설명하였다. 그러나 이는 실시예들일 뿐이며, 본 발명의 기술적 사상의 범위 내라면 이외에도 다양한 산출 방법, 비교 방법등이 적용될 수 있다.
도 10은 본 발명의 실시예에 따른 메모리 시스템의 동작 방법을 나타내는 흐름도이다.
도 10을 참조하면, 메모리 장치에 전원이 인가되면(S1100), 저장 영역의 프로그램 오류를 검출한다(S1200). 이때, 도 1, 도 8 및 도 9를 참조하여 설명한 프로그램 오류 검출 방법이 적용될 수 있다. 메모리 셀이 프로그램되는 복수의 상태들 중 두 상태에 포함되는 메모리 셀들의 개수를 각각 카운트한 값을 비교한 결과에 기초하여 프로그램 오류를 판단할 수 있다. 이때, 상기 두 상태는 메모리 셀이 프로그램되는 복수의 상태들 중 최상위 상태 및 차상위 상태일 수 있다. 또는 상기 두 상태는 메모리 셀을 프로그램할 때 마지막으로 프로그램되는 상태와 그 이전에 프로그램되는 상태일 수 있다. 또한, 일 예로서, 저장 영역은 메모리 장치에 전원이 차단되기 전 마지막으로 프로그램된 저장 영역일 수 있다.
프로그램 오류가 검출되면, 프로그램된 데이터를 재 프로그램한다(S1300). 예를 들어, 프로그램 오류가 검출되면, 상기 마지막으로 프로그램된 저장 영역에 대하여 프로그램 동작이 수행될 때, 서든 파워 오프가 발생되었다고 판단할 수 있다. 저장 영역이 비정상적으로 프로그램 될 경우, 독출 에러 발생율이 높고 열화가 진행되는 속도가 빨라져 ECC 등과 같은 에러 보정 작업으로도 에러가 보정되기 어려울 수 있다. 따라서, 상기 프로그램된 데이터를 다시 프로그램하여 데이터를 안정적으로 저장한다. 이때, 데이터가 재 프로그램되는 저장 영역은 상기 마지막으로 프로그램된 저장 영역 이외의 영역일 수 있다.
한편, 데이터를 재 프로그램한 후(S1300), 상기 저장 영역에 대하여 페일 영역으로 처리할 수도 있다.
이와 같이, 프로그램 에러가 검출된 경우, 보완 동작이 수행된 이후에, 일반적인 데이터 기입/독출 동작이 수행될 수 있다(S1400).
도 11은 본 발명의 실시예에 따른 메모리 시스템의 다른 예를 개략적으로 나타내는 블록도이다.
도 11을 참조하면, 메모리 시스템(100a)은 메모리 장치(10a) 및 메모리 컨트롤러(20a)를 포함할 수 있다. 메모리 장치(10a)와 메모리 컨트롤러(20a)의 동작은 도 3의 메모리 장치(10) 및 메모리 컨트롤러(20)의 동작과 유사하다. 다만, 도 11의 메모리 시스템(100a)에서는 프로그램 오류 검출부(PED)가 메모리 장치(10a)에 위치할 수 있다. 메모리 장치(10a)는 온-칩 컨트롤러를 포함할 수 있으며, 일 예로서 프로그램 오류 검출부(PED)가 메모리 장치(10a)에 포함될 수 있다. 프로그램 오류 검출부(PED)는 도 3의 프로그램 오류 검출부(PED)와 동일하게 동작할 수 있다. 메모리 컨트롤러(20a)가 마지막으로 엑세스되어 프로그램된 메모리 셀들에 대한 어드레스를 메모리 장치(10a)로 제공하고, 메모리 장치(10a)가 어드레스에 해당하는 메모리 셀들로부터 데이터(DATA)를 독출하면, 프로그램 오류 검출부(PED)가 제1 상태에 대응하는 제1 데이터(DATA 1)와 제2 상태에 대응하는 제2 데이터(DATA 2)를 수신하고, 도 1, 도 8 및 도 9를 참조하여 설명한 프로그램 오류 검출 방법에 기초하여 프로그램 오류를 검출할 수 있다. 프로그램 오류가 검출되면, 프로그램 오류 검출 신호(Dec_err)을 메모리 컨트롤러(20a)로 제공할 수 있다. 메모리 컨트롤러(20a)는 프로그램 오류 검출 신호(Dec_err)에 응답하여, 비정상적으로 프로그램이 수행된 메모리 셀의 영역을 배드 영역으로 처리하고, 다른 영역의 메모리 셀에 재 프로그램 하는 등의 보완 동작이 수행될 수 있도록 하는 제어신호(CTRL) 및 명령(CMD)을 메모리 장치(10)로 제공할 수 있다.
도 12는 도 1의 메모리 컨트롤러의 예를 나타내는 도면이다.
도 12를 참조하면, 도 12의 메모리 컨트롤러(MCtrl)는 호스트 인터페이스부(HIF), 메모리 인터페이스부(MIF), 로컬 메모리(LMEM), 버퍼(BUF), 프로세서(PRO) 및 프로그램 오류 검출부(DEC)가 버스(BUS)로 연결될 수 있다.
호스트 인터페이스부(HIF)는 외부의 호스트 장치(HOST)와의 인터페이스를 제공한다. 예를 들어, 호스트 인터페이스부(HIF)는 SATA(Serial Advanced Technology Attachment) 또는 SAS(Serial Attached SCSI) 프로토콜의 인터페이스를 제공할 수 있다. 다만, 이에 한정되는 것은 아니다. 호스트 인터페이스부(HIF)는 SATA 또는 SAS 프로토콜 이외에, USB(Universal Serial Bus), MMC(Man Machine Communication), PCI-E(Peripheral Component Interconnect-Express), PATA(Parallel Advanced Technology Attachment), SCSI(Small Computer System Interface), ESDI(Enhanced Small Device Interface), 그리고 IDE(Intelligent Drive Electronics) 등과 같은 다양한 인터페이스 프로토콜로, 호스트 장치(HOST)와의 인터페이스를 제공할 수 있다.
메모리 인터페이스부(MIF)는 호스트 장치(HOST)로부터의 요청에 응답하여, 메모리 장치(MDEV)에 데이터를 프로그램 하거나 리드 하기 위해, 메모리 장치(MDEV)와의 인터페이스를 제공할 수 있다. 예를 들어, 호스트 장치(HOST)로부터 전송되는 논리 블록 어드레스(Logical Block Address)에서 메모리 장치(MDEV)의 페이지에 대한 물리 어드레스로 변환된 결과를, 메모리 인터페이스부(MIF)는 메모리 장치(MDEV)에 제공할 수 있다.
버퍼(BUF)는 호스트 장치(HOST)와 메모리 장치(MDEV) 사이의 원활한 데이터 전송을 위해 사용될 수 있다. 예를 들어, 버퍼(BUF)는 호스트 장치(HOST)의 요청에 따라 메모리 장치(MDEV)에 프로그램 될 데이터를 임시적으로 저장할 수 있다. 또는 버퍼(BUF)는 호스트 장치(HOST)의 요청에 따라 메모리 장치(MDEV)로부터 리드 되는 데이터를 임시적으로 저장할 수 있다. 버퍼(BUF)는 DRAM 또는 SRAM과 같은 휘발성 메모리, 또는 MRAM, PRAM, FRAM 또는 플래시 메모리와 같은 비휘발성 메모리로 구현될 수 있다.
로컬 메모리(LMEM)는 메모리 컨트롤러(MCtrl)가 호스트 장치(HOST)의 요청이 메모리 장치(MDEV)에서 처리될 수 있도록 제어하는데 데이터 및 제어 모듈 또는 제어 프로그램이 로딩(loading)되거나 저장될 수 있다. 예를 들어, 로컬 메모리(LMEM)에는 펌웨어(firmware)가 저장될 수 있다. 그 메모리 시스템(MSYS)을 구동하는 명령 및 데이터를 포함하는 소프트웨어(software)가 특정 저장 수단에 저장되어 하드웨어화 된 것으로, 메모리 시스템(MSYS)에 대한 호스트 장치의 요청을 수행하기 위해 호스트 장치의 요청에 대한 기계어 처리, 데이터 전송, 리스트 처리, 부동 소수점 연산 및 채널 제어 등 적어도 하나 이상의 처리를 수행한다. 펌웨어는, 전술된 본 발명의 실시예에 따른 노말 리드 명령(RCMD_N) 및 소프트 디시젼 명령(RCMD_S)과, 그에 대응되는 리드 전압 레벨들의 설정을 제어할 수 있다.
그 밖에, 로컬 메모리(LMEM)는 운영 체제 및 어드레스 맵핑(address mapping)에 참조되는 맵핑 테이블(mapping table) 등이 저장되거나 로딩될 수 있다. 로컬 메모리(LMEM)는 버퍼와 마찬가지로, DRAM 또는 SRAM과 같은 휘발성 메모리, 또는 MRAM, PRAM, FRAM 또는 플래시 메모리와 같은 비휘발성 메모리로 구현될 수 있다. 다만, 펌웨어를 형성하는 로컬 메모리는 비휘발성 메모리로 구현될 수 있다. 로컬 메모리(LMEM)는 적어도 하나 이상의 동종 또는 이종의 메모리로 구현될 수 있다.
프로세서(PRO)는 메모리 컨트롤러(MCtrl)의 각 구성 요소의 동작을 제어하고, 로컬 메모리(LMEM)에 저장되거나 로딩되는 제어 모듈 또는 제어 프로그램을 해석하고 실행시켜, 호스트 장치(HOST)로부터의 요청을 처리한다.
프로그램 에러 검출부(PED)는 메모리 장치(MDEV)로부터 독출되는 데이터에 기초하여, 제1 독출 전압에 대한 오프셀값 및 제2 독출 전압에 대한 오프셀 개수를 카운트하고, 그 카운트된 값을 비교하여 프로그램 오류를 검출할 수 있다. 프로그램 오류가 검출되면, 메모리 셀들에 대하여 수행된 프로그램 동작이 정상적으로 수행되지 못했다고 판단한다. 이에 따라 메모리 컨트롤러(MCtrl)는 메모리 장치(MDEV)가 데이터를 재 프로그램하도록 제어할 수 있다.
본 발명의 실시예들에 따른 메모리 시스템(MSYS)이 솔리드 스테이트 드라이브(Solid State Drive, 이하 SSD)를 포함하거나 SSD에 포함되는 경우, 도 12의 메모리 컨트롤러(MCtrl)는 도 13의 SSD 컨트롤러(SCtrl)에 포함될 수 있다.
도 13은 본 발명의 실시예들에 따른 메모리 시스템이 SSD(Solid State Drive)에 적용된 예를 나타내는 도면이다.
도 13을 참조하면, SSD(MSYS)는 SSD 컨트롤러(SCtrl) 및 메모리 장치(MDEV)를 포함한다. SSD 컨트롤러(SCtrl)는 SSD(MSYS)의 제1 포트(PT1)를 통해 호스트 장치(HOST)로부터 수신되는 신호(SIG)에 응답하여 메모리 장치(MDEV)를 제어한다. SSD 컨트롤러(SCtrl)는 다수의 채널(Ch1~CHn)을 통해 메모리 장치(MDEV)와 연결될 수 있다. 메모리 장치(MDEV)는 다수의 비휘발성 메모리(NVM1, NVM2, NVMn)들을 포함할 수 있다. 다수의 비휘발성 메모리들은 전술된 본 발명의 실시예에 따른 플래시 메모리(MEM)들 일 수 있다. 다만, 이에 한정되는 것은 아니고, 다른 플래시 메모리 또는 다른 비휘발성 메모리들을 포함할 수 있다.
SSD(MSYS)는 보조 전원 장치(DSP)를 더 구비하여 제2 포트(PT2)를 통해 호스트 장치(HOST)로부터 전원(PWR)을 입력 받을 수 있다. 다만, 이에 한정되는 것은 아니고, SSD(MSYS)는 호스트 장치(HOST) 이외의 외부 장치로부터 전원을 공급받을 수 있다.
SSD(MSYS)는 제1 포트(PT1)를 통해 호스트 장치(HOST)의 요청을 처리한 결과(SIG)를 출력할 수 있다. SSD(MSYS)로부터 출력되는 신호(SIG)는 전술된 메인 응답(MRSP)일 수 있다.
도 14는 도 13의 SSD를 포함하는 서버 시스템 및 네트워크 시스템을 나타내는 도면이다.
도 14를 참조하면, 일 실시예에 따른 네트워크 시스템(NSYS)은 네트워크를 통해 연결되는 서버 시스템(SVSYS) 및 다수의 단말들(TEM1~TEMn)을 포함할 수 있다. 일 실시예에 따른 서버 시스템(SVSYS)은 네트워크에 연결되는 다수의 단말들(TEM1~TEMn)로부터 수신되는 요청을 처리하는 서버(SERVER) 및 단말들(TEM1~TEMn)로부터 수신되는 요청에 대응되는 데이터를 저장하는 SSD를 포함하는 구비할 수 있다. 이때, 도 14의 SSD는 도 13의 SSD일 수 있다.
도 15는 본 발명의 실시예들에 따른 메모리 시스템이 포함되는 컴퓨터 장치를 나타내는 도면이다.
도 15를 참조하면, 일 실시예에 따른 컴퓨터 시스템(CSYS)은 버스(BUS)에 전기적으로 연결된 프로세서(CPU), 사용자 인터페이스(UI) 및 메모리 시스템(MSYS)을 구비한다. 메모리 시스템(MSYS)은 본 발명의 실시예들에 따른 메모리 시스템(MSYS)일 수 있다. 일 실시예에 따른 컴퓨터 시스템(CSYS)는 파워 공급 장치(PS)를 더 구비할 수 있다. 또한, 일 실시예에 따른 컴퓨터 시스템(CSYS)은 프로세서(CPU)와 메모리 시스템(MSYS) 사이의 데이터 송수신을 위한 휘발성 메모리 장치(예를 들어, RAM)를 더 구비할 수 있다.
일 실시예에 따른 컴퓨터 시스템(CSYS)이 모바일 장치인 경우, 컴퓨터 시스템의 동작 전압을 공급하기 위한 배터리 및 베이스밴드 칩셋(baseband chipset)과 같은 모뎀이 추가적으로 제공될 수 있다. 또한, 본 발명의 실시예에 따른 컴퓨터 시스템(CSYS)에는 응용 칩셋(application chipset), 카메라 이미지 프로세서(Camera Image Processor: CIS), 모바일 디램, 등이 더 제공될 수 있음은 이 분야의 통상적인 지식을 습득한 자들에게 자명한 사항인 바, 더 자세한 설명은 생략한다.
이상에서와 같이 도면과 명세서에서 최적 실시 예가 개시되었다. 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
10, 10a: 메모리 장치 20, 20a: 메모리 컨트롤러
100, 100a: 메모리 시스템
21, 12a: 프로그램 오류 검출부

Claims (10)

  1. 메모리 셀들 중, 제1 독출전압에 대한 제1 오프셀들의 개수 및 제2 독출전압에 대한 제2 오프셀들의 개수를 각각 카운트하는 단계;
    카운트된 상기 제1 오프셀들의 개수와 상기 제2 오프셀들의 개수를 비교하는 단계; 및
    상기 비교 결과를 기초로 상기 메모리 셀들이 포함된 저장 영역에 대한 프로그램 오류를 판단하는 단계를 포함하고,
    상기 제1 독출전압은, 상기 메모리 셀들이 프로그램되는 복수의 상태들 중 최상위 상태에 대응하는 독출전압인 것을 특징으로 하는 메모리 장치의 동작 방법.
  2. 제1 항에 있어서,
    상기 제1 독출전압의 전압 레벨은 상기 제2 독출전압의 전압 레벨보다 높은 것을 특징으로 하는 메모리 장치의 동작 방법.
  3. 삭제
  4. 제1 항에 있어서, 상기 제2 독출전압은,
    상기 메모리 셀들이 프로그램되는 복수의 상태들 중 차상위 상태에 대응하는 독출전압인 것을 특징으로 하는 메모리 장치의 동작 방법.
  5. 제1 항에 있어서,
    상기 제1 독출전압 및 제2 독출전압은 상기 메모리 셀들이 프로그램되는 복수의 상태들 중 제1 상태 및 제2 상태에 각각 대응하고,
    상기 제1 상태는, 상기 메모리 셀들이 프로그램되는 복수의 상태들 중 마지막으로 프로그램되는 상태이고, 상기 제2 상태는 상기 제1 상태가 프로그램되기 이전에 프로그램되는 상태인 것을 특징으로 하는 메모리 장치의 동작 방법.
  6. 제1 항에 있어서,
    프로그램 오류가 발생하였다고 판단될 경우, 데이터를 재 기입하는 단계를 더 포함하는 것을 특징으로 하는 메모리 장치의 동작 방법.
  7. 제1 항에 있어서, 상기 제1 오프셀들의 개수와 상기 제2 오프셀들의 개수를 비교하는 단계는,
    상기 제2 오프셀들의 개수에 대한 상기 제1 오프셀들의 개수의 비를 비교 결과로 산출하는 것을 특징으로 하는 메모리 장치의 동작 방법.
  8. 제1 항에 있어서, 상기 제1 오프셀들의 개수와 상기 제2 오프셀들의 개수를 비교하는 단계는,
    상기 제1 오프셀들의 개수와 상기 제2 오프셀들의 개수를 기초로, 상기 제1 독출전압에 대응하는 제1 상태 및 상기 제2 독출전압에 대응하는 제2 상태에 대하여 독출 에러가 발생한 메모리 셀들의 개수를 각각 산출하는 단계; 및
    상기 제1 상태 및 상기 제2 상태 간의 독출 에러 발생량을 비교하는 단계를 포함하는 것을 특징으로 메모리 장치의 동작 방법.
  9. 제1 항에 있어서, 상기 프로그램 오류 판단 단계는,
    프로그램 오류가 검출되면, 상기 메모리 셀들에 대한 프로그램 동작 수행 중에 서든 파워 오프가 발생되었다고 판단하는 것을 특징으로 하는 메모리 장치의 동작 방법.
  10. 제1 항에 있어서, 상기 메모리 셀을 포함하는 메모리 장치는,
    멀티-비트의 메모리 셀을 포함하는 것을 특징으로 하는 메모리 장치의 동작 방법.
KR1020130096894A 2013-08-14 2013-08-14 메모리 장치 및 메모리 시스템의 동작 방법. KR102116983B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020130096894A KR102116983B1 (ko) 2013-08-14 2013-08-14 메모리 장치 및 메모리 시스템의 동작 방법.
US14/456,572 US9728279B2 (en) 2013-08-14 2014-08-11 Memory system including a memory device, and methods of operating the memory system and the memory device
US15/639,234 US10217517B2 (en) 2013-08-14 2017-06-30 Memory system including a memory device, and methods of operating the memory system and the memory device
US16/248,568 US10714194B2 (en) 2013-08-14 2019-01-15 Memory system including a memory device, and methods of operating the memory system and memory device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130096894A KR102116983B1 (ko) 2013-08-14 2013-08-14 메모리 장치 및 메모리 시스템의 동작 방법.

Publications (2)

Publication Number Publication Date
KR20150019722A KR20150019722A (ko) 2015-02-25
KR102116983B1 true KR102116983B1 (ko) 2020-05-29

Family

ID=52466734

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130096894A KR102116983B1 (ko) 2013-08-14 2013-08-14 메모리 장치 및 메모리 시스템의 동작 방법.

Country Status (2)

Country Link
US (3) US9728279B2 (ko)
KR (1) KR102116983B1 (ko)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102116983B1 (ko) 2013-08-14 2020-05-29 삼성전자 주식회사 메모리 장치 및 메모리 시스템의 동작 방법.
KR102381218B1 (ko) * 2015-09-25 2022-04-01 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
KR102391514B1 (ko) 2015-11-04 2022-04-27 삼성전자주식회사 메모리 장치 및 메모리 장치의 동작 방법
KR102435026B1 (ko) * 2015-12-15 2022-08-22 삼성전자주식회사 저장 장치의 동작 방법
CN107045890B (zh) * 2016-02-05 2020-02-07 群联电子股份有限公司 数据保护方法、存储器控制电路单元及存储器存储装置
KR102224564B1 (ko) * 2017-03-29 2021-03-09 에스케이하이닉스 주식회사 컨트롤러, 메모리 시스템 및 그것의 동작 방법
KR20180114746A (ko) * 2017-04-11 2018-10-19 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법
US10497447B2 (en) * 2017-06-29 2019-12-03 SK Hynix Inc. Memory device capable of supporting multiple read operations
WO2019036684A1 (en) * 2017-08-17 2019-02-21 Syntiant REFRESHMENT OF DIGITAL SAVED FLASH MEMORY
KR102341261B1 (ko) * 2017-11-13 2021-12-20 삼성전자주식회사 매스비트 카운터를 포함하는 메모리 장치 및 그의 동작 방법
KR102470726B1 (ko) 2018-03-14 2022-11-25 삼성전자주식회사 비휘발성 메모리 장치
KR20200113867A (ko) 2019-03-26 2020-10-07 에스케이하이닉스 주식회사 컨트롤러, 이를 포함하는 메모리 시스템 및 메모리 시스템의 동작 방법
CN110134616B (zh) * 2019-04-12 2021-05-14 深圳市金泰克半导体有限公司 Nand闪存的垃圾回收方法及nand闪存
KR20220010210A (ko) * 2020-07-17 2022-01-25 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 읽기 동작 방법
KR20220076974A (ko) * 2020-12-01 2022-06-08 삼성전자주식회사 비휘발성 메모리 장치 및 이의 프로그램 방법

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4942576A (en) 1988-10-24 1990-07-17 Micron Technology, Inc. Badbit counter for memory testing
US6067262A (en) 1998-12-11 2000-05-23 Lsi Logic Corporation Redundancy analysis for embedded memories with built-in self test and built-in self repair
US20010052093A1 (en) 2000-05-02 2001-12-13 Japan Aviation Electronics Industry Limited Memory testing method and memory testing apparatus
US8027194B2 (en) 1988-06-13 2011-09-27 Samsung Electronics Co., Ltd. Memory system and method of accessing a semiconductor memory device
KR101821604B1 (ko) 2011-07-25 2018-01-24 삼성전자주식회사 비휘발성 메모리 장치의 프로그램 방법

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000173279A (ja) * 1998-12-02 2000-06-23 Nec Corp 不揮発性半導体記憶装置とその消去検証方法
JP3653449B2 (ja) 2000-06-15 2005-05-25 シャープ株式会社 不揮発性半導体記憶装置
US6549457B1 (en) 2002-02-15 2003-04-15 Intel Corporation Using multiple status bits per cell for handling power failures during write operations
WO2004079575A1 (fr) 2003-03-04 2004-09-16 Netac Technology Co., Ltd. Procede de gestion de donnees pour support a memoire flash
US7299314B2 (en) 2003-12-31 2007-11-20 Sandisk Corporation Flash storage system with write/erase abort detection mechanism
KR100888842B1 (ko) 2007-06-28 2009-03-17 삼성전자주식회사 읽기 전압을 최적화할 수 있는 플래시 메모리 장치 및그것의 독출 전압 설정 방법
US7971123B2 (en) * 2007-07-02 2011-06-28 International Business Machines Corporation Multi-bit error correction scheme in multi-level memory storage system
KR101456592B1 (ko) 2008-06-17 2014-10-31 삼성전자주식회사 멀티-비트 플래시 메모리 장치 및 그것의 플래그 셀 분석방법
KR101005155B1 (ko) 2009-05-13 2011-01-04 주식회사 하이닉스반도체 불휘발성 메모리 소자 및 그 테스트 방법
KR101578511B1 (ko) * 2009-05-20 2015-12-18 삼성전자주식회사 리드 전압 설정 방법
US20120008414A1 (en) 2010-07-06 2012-01-12 Michael Katz Systems and methods for storing, retrieving, and adjusting read thresholds in flash memory storage system
US8638602B1 (en) * 2010-09-10 2014-01-28 Western Digital Technologies, Inc. Background selection of voltage reference values for performing memory read operations
DE102011056141A1 (de) 2010-12-20 2012-06-21 Samsung Electronics Co., Ltd. Negativspannungsgenerator, Dekoder, nicht-flüchtige Speichervorrichtung und Speichersystem, das eine negative Spannung verwendet
KR20120138566A (ko) 2011-06-15 2012-12-26 엘지전자 주식회사 다층 셀 플래시 메모리의 버퍼 관리 방법 및 장치
KR101301828B1 (ko) 2011-09-29 2013-08-29 한양대학교 산학협력단 플래시 메모리에 기반한 ssd에서의 전원-손실 복구 방법 및 장치
KR102116983B1 (ko) 2013-08-14 2020-05-29 삼성전자 주식회사 메모리 장치 및 메모리 시스템의 동작 방법.
KR102235516B1 (ko) * 2014-09-30 2021-04-05 삼성전자주식회사 이레이즈 컨트롤 유닛을 포함하는 메모리 시스템 및 동작 방법
US9638602B2 (en) 2015-04-09 2017-05-02 Raytheon Company Vibration test methodology using an electromagnet and related apparatus and automated testing system with material handling robot
KR20190092937A (ko) * 2018-01-31 2019-08-08 에스케이하이닉스 주식회사 메모리 컨트롤러 및 그 동작 방법
JP2019164858A (ja) * 2018-03-19 2019-09-26 東芝メモリ株式会社 メモリシステム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8027194B2 (en) 1988-06-13 2011-09-27 Samsung Electronics Co., Ltd. Memory system and method of accessing a semiconductor memory device
US4942576A (en) 1988-10-24 1990-07-17 Micron Technology, Inc. Badbit counter for memory testing
US6067262A (en) 1998-12-11 2000-05-23 Lsi Logic Corporation Redundancy analysis for embedded memories with built-in self test and built-in self repair
US20010052093A1 (en) 2000-05-02 2001-12-13 Japan Aviation Electronics Industry Limited Memory testing method and memory testing apparatus
KR101821604B1 (ko) 2011-07-25 2018-01-24 삼성전자주식회사 비휘발성 메모리 장치의 프로그램 방법

Also Published As

Publication number Publication date
KR20150019722A (ko) 2015-02-25
US10714194B2 (en) 2020-07-14
US20190147965A1 (en) 2019-05-16
US20170301404A1 (en) 2017-10-19
US20150049554A1 (en) 2015-02-19
US9728279B2 (en) 2017-08-08
US10217517B2 (en) 2019-02-26

Similar Documents

Publication Publication Date Title
KR102116983B1 (ko) 메모리 장치 및 메모리 시스템의 동작 방법.
US11004520B2 (en) Nonvolatile semiconductor memory device including a memory cell array and a control circuit applying a reading voltage
US8508996B2 (en) Method of programming non-volatile memory device and non-volatile memory device using the same
US8254181B2 (en) Nonvolatile memory device and programming method
KR100799018B1 (ko) 불휘발성 메모리 소자 및 자기 보상 방법
JP2008047273A (ja) 半導体記憶装置およびその制御方法
US20130016558A1 (en) Method of storing data in nonvolatile memory device and method of operating nonvolatile memory device
US11231982B2 (en) Read window size
KR101464256B1 (ko) 온도 센서를 포함하는 메모리 시스템
KR20140103755A (ko) 메모리 컨트롤러 및 그것의 동작 방법, 메모리 컨트롤러를 포함하는 메모리 시스템
KR20110097446A (ko) 메모리 시스템 및 그것의 데이터 처리 방법
KR20150000572A (ko) 불휘발성 메모리 장치의 데이터 기입 방법
KR20120125791A (ko) 플래시 메모리 장치 및 이를 포함하는 메모리 시스템
US11145357B2 (en) Memory system, memory controller and method for operating memory system
US11581047B2 (en) Iterative read calibration enhanced according to patterns of shifts in read voltages
EP3176790A2 (en) Non-volatile memory (nvm) with endurance control
US20230037884A1 (en) Tracking rc time constant by wordline in memory devices
US20230195355A1 (en) Dynamic prioritization of selector vt scans
US11756631B2 (en) Adjusting read voltage levels based on a programmed bit count in a memory sub-system
KR20130027153A (ko) 불휘발성 메모리 장치의 제어 방법
US20240055050A1 (en) Managing compensation for cell-to-cell coupling and lateral migration in memory devices based on a sensitivity metric
US11127481B1 (en) Managing execution of scrub operations in a memory sub-system
US20230367680A1 (en) Multiple plane programming with quick plane programming termination and lagging plane boosting
US20230062445A1 (en) Integrated command to calibrate read voltage level
US20230393755A1 (en) Managing error compensation using charge coupling and lateral migration sensitivity

Legal Events

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