KR20220075571A - 비휘발성 메모리 장치의 데이터 기입 방법, 이를 수행하는 비휘발성 메모리 장치 및 이를 이용한 메모리 시스템의 구동 방법 - Google Patents

비휘발성 메모리 장치의 데이터 기입 방법, 이를 수행하는 비휘발성 메모리 장치 및 이를 이용한 메모리 시스템의 구동 방법 Download PDF

Info

Publication number
KR20220075571A
KR20220075571A KR1020200163790A KR20200163790A KR20220075571A KR 20220075571 A KR20220075571 A KR 20220075571A KR 1020200163790 A KR1020200163790 A KR 1020200163790A KR 20200163790 A KR20200163790 A KR 20200163790A KR 20220075571 A KR20220075571 A KR 20220075571A
Authority
KR
South Korea
Prior art keywords
data
write data
state
offset information
write
Prior art date
Application number
KR1020200163790A
Other languages
English (en)
Inventor
이광우
김찬하
이희원
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020200163790A priority Critical patent/KR20220075571A/ko
Priority to DE102021119963.8A priority patent/DE102021119963A1/de
Priority to US17/393,797 priority patent/US11862261B2/en
Priority to CN202111228000.3A priority patent/CN114582401A/zh
Publication of KR20220075571A publication Critical patent/KR20220075571A/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/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/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • G11C16/3495Circuits or methods to detect or delay wearout of nonvolatile EPROM or EEPROM memory devices, e.g. by counting numbers of erase or reprogram cycles, by using multiple memory areas serially or cyclically
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5628Programming or writing circuits; Data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5671Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge trapping in an insulator
    • 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/08Address circuits; Decoders; Word-line control circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/102External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators
    • 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/3404Convergence or correction of memory cell threshold voltages; Repair or recovery of overerased or overprogrammed cells
    • 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
    • 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
    • G11C16/3459Circuits or methods to verify correct programming of nonvolatile memory cells
    • 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/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Read Only Memory (AREA)

Abstract

비휘발성 메모리 장치의 데이터 기입 방법에서, 기입 커맨드, 기입 어드레스 및 프로그램하고자 하는 기입 데이터를 수신한다. 기입 데이터의 입출력 패턴을 판단하여 기입 데이터가 미리 정해진 산포 열화 패턴에 대응하는 경우에 제공되고 검증 레벨을 나타내는 오프셋 정보를 수신한다. 오프셋 정보가 수신된 경우에, 기입 데이터가 저장되는 메모리 셀들의 문턱 전압 산포에 포함되는 복수의 상태들 중 일부 상태가 변화하도록 오프셋 정보에 기초하여 기입 데이터를 프로그램한다.

Description

비휘발성 메모리 장치의 데이터 기입 방법, 이를 수행하는 비휘발성 메모리 장치 및 이를 이용한 메모리 시스템의 구동 방법{METHOD OF WRITING DATA IN NONVOLATILE MEMORY DEVICE, NONVOLATILE MEMORY DEVICE PERFORMING THE SAME AND METHOD OF OPERATING MEMORY SYSTEM USING THE SAME}
본 발명은 반도체 집적 회로에 관한 것으로서, 더욱 상세하게는 비휘발성 메모리 장치의 데이터 기입 방법, 상기 데이터 기입 방법을 수행하는 비휘발성 메모리 장치 및 상기 데이터 기입 방법을 이용한 메모리 시스템의 구동 방법에 관한 것이다.
반도체 메모리 장치는 전원 공급이 중단될 때 저장된 데이터를 상실하는지 여부에 따라 휘발성 메모리 장치(volatile memory device)와 비휘발성 메모리 장치(nonvolatile memory device)로 구분될 수 있다. 휘발성 메모리 장치는 읽고 쓰는 속도가 빠르지만 전원 공급이 끊기면 저장된 내용이 사라져 버리는 단점이 있다. 반면에, 비휘발성 메모리 장치는 전원 공급이 중단되더라도 그 내용을 보존한다. 그러므로, 비휘발성 메모리 장치는 전원이 공급되었는지의 여부에 관계없이 보존되어야 할 내용을 기억시키는 데 쓰인다.
최근에는 비휘발성 메모리 장치의 집적도가 향상됨에 따라, 비휘발성 메모리 장치에 저장된 데이터의 열화에 대한 신뢰성이 점점 하락하고 있다. 따라서, 이러한 신뢰성을 하락시키는 열화 문제를 해결하기 위한 다양한 방식들이 연구되고 있다.
본 발명의 일 목적은 저장하고자 하는 데이터의 신뢰성을 향상시킬 수 있는 비휘발성 메모리 장치의 데이터 기입 방법을 제공하는 것이다.
본 발명의 다른 목적은 상기 데이터 기입 방법을 수행하는 비휘발성 메모리 장치를 제공하는 것이다.
본 발명의 또 다른 목적은 상기 데이터 기입 방법을 이용한 메모리 시스템의 구동 방법을 제공하는 것이다.
상기 일 목적을 달성하기 위해, 본 발명의 실시예들에 따른 비휘발성 메모리 장치의 데이터 기입 방법에서, 기입 커맨드, 기입 어드레스 및 프로그램하고자 하는 기입 데이터를 수신한다. 상기 기입 데이터의 입출력 패턴을 판단하여 상기 기입 데이터가 미리 정해진 산포 열화 패턴에 대응하는 경우에 제공되고 검증 레벨을 나타내는 오프셋 정보를 수신한다. 상기 오프셋 정보가 수신된 경우에, 상기 기입 데이터가 저장되는 메모리 셀들의 문턱 전압 산포에 포함되는 복수의 상태들 중 일부 상태가 변화하도록 상기 오프셋 정보에 기초하여 상기 기입 데이터를 프로그램한다.
상기 다른 목적을 달성하기 위해, 본 발명의 실시예들에 따른 비휘발성 메모리 장치는 메모리 셀 어레이 및 제어 회로를 포함한다. 상기 메모리 셀 어레이는 복수의 메모리 셀들을 포함한다. 상기 제어 회로는 기입 커맨드, 기입 어드레스 및 프로그램하고자 하는 기입 데이터를 수신하고, 상기 기입 데이터의 입출력 패턴을 판단하여 상기 기입 데이터가 미리 정해진 산포 열화 패턴에 대응하는 경우에 제공되고 검증 레벨을 나타내는 오프셋 정보를 수신하며, 상기 오프셋 정보가 수신된 경우에 상기 기입 데이터가 저장되는 메모리 셀들의 문턱 전압 산포에 포함되는 복수의 상태들 중 일부 상태가 변화하도록 상기 오프셋 정보에 기초하여 상기 기입 데이터를 프로그램한다.
상기 또 다른 목적을 달성하기 위해, 본 발명의 실시예들에 따른 메모리 컨트롤러 및 비휘발성 메모리 장치를 포함하는 메모리 시스템의 구동 방법에서, 상기 메모리 컨트롤러가 기입 커맨드, 기입 어드레스 및 프로그램하고자 하는 기입 데이터를 상기 비휘발성 메모리 장치로 전송한다. 상기 메모리 컨트롤러가 상기 기입 데이터의 입출력 패턴을 검출한다. 상기 기입 데이터가 미리 정해진 제1 횟수보다 적게 기입되는 기입 콜드(cold) 데이터 또는 미리 정해진 제2 횟수보다 많이 독출되는 독출 핫(hot) 데이터로 판단된 경우에, 상기 메모리 컨트롤러가 최적 검증 레벨을 선택한다. 상기 메모리 컨트롤러가 상기 최적 검증 레벨을 포함하는 오프셋 정보를 생성하여 상기 비휘발성 메모리 장치로 전송한다. 상기 비휘발성 메모리 장치가 상기 오프셋 정보에 기초하여 문턱 전압 산포에 포함되는 제1 상태 내지 제N(N은 2 이상의 자연수) 상태에 대응하는 제1 검증 레벨 내지 제N 검증 레벨 중 적어도 하나를 변경한다. 상기 비휘발성 메모리 장치가 상기 제1 검증 레벨 내지 상기 제N 검증 레벨에 기초하여 상기 제1 상태 내지 제N 상태 중 일부 상태가 변화하도록 상기 기입 데이터에 대한 프로그램 루프(loop)를 1회 이상 수행한다. 상기 제1 상태는 가장 낮은 전압 레벨에 대응하고, 상기 제N 상태는 가장 높은 전압 레벨에 대응한다. 상기 기입 데이터가 상기 기입 콜드 데이터인 경우에 제(N-1) 상태 및 상기 제N 상태 사이의 간격이 증가하도록 변화하고, 상기 기입 데이터가 독출 핫 데이터인 경우에 상기 제1 상태 및 제2 상태 사이의 간격이 증가하도록 변화한다.
상기와 같은 본 발명의 실시예들에 따른 데이터 기입 방법, 비휘발성 메모리 장치 및 메모리 시스템의 구동 방법에서는, 프로그램하고자 하는 기입 데이터의 입출력 패턴을 실시간으로 파악하고, 특정 패턴이 검출된 경우에 해당 패턴에 취약한 열화에 대응하는 상태의 마진을 확보하는 방향으로(즉, 인접한 상태들 사이의 간격을 넓히는 방향으로) 검증 레벨을 조절할 수 있다. 조절된 검증 레벨에 대한 정보는 오프셋 정보로서 기입 데이터와 함께 제공될 수 있다. 따라서, 기입 데이터의 열화를 효과적으로 방지하고 신뢰성을 향상시킬 수 있다.
도 1은 본 발명의 실시예들에 따른 비휘발성 메모리 장치의 데이터 기입 방법을 나타내는 블록도이다.
도 2는 본 발명의 실시예들에 따른 비휘발성 메모리 장치 및 이를 포함하는 메모리 시스템을 나타내는 블록도이다.
도 3은 본 발명의 실시예들에 따른 비휘발성 메모리 장치를 나타내는 블록도이다.
도 4는 도 3의 비휘발성 메모리 장치의 메모리 셀 어레이에 포함되는 메모리 블록의 일 예를 나타내는 사시도이다.
도 5는 도 4를 참조하여 설명된 메모리 블록의 등가 회로를 나타내는 회로도이다.
도 6은 본 발명의 실시예들에 따른 메모리 시스템에 포함되는 메모리 컨트롤러의 일 예를 나타내는 블록도이다.
도 7은 본 발명의 실시예들에 따른 메모리 시스템을 나타내는 블록도이다.
도 8은 도 1의 오프셋 정보를 수신하는 단계의 일 예를 나타내는 순서도이다.
도 9는 도 1의 오프셋 정보에 기초하여 기입 데이터를 프로그램하는 단계의 일 예를 나타내는 순서도이다.
도 10은 도 9의 프로그램 동작의 일 예를 나타내는 순서도이다.
도 11 및 12는 도 10의 동작을 설명하기 위한 도면들이다.
도 13은 도 9의 프로그램 동작의 다른 예를 나타내는 순서도이다.
도 14 및 15는 도 13의 동작을 설명하기 위한 도면들이다.
도 16은 도 9의 프로그램 동작의 또 다른 예를 나타내는 순서도이다.
도 17은 도 16의 동작을 설명하기 위한 도면이다.
도 18은 도 9의 프로그램 동작의 또 다른 예를 나타내는 순서도이다.
도 19 및 20은 도 18의 동작을 설명하기 위한 도면들이다.
도 21 및 22는 본 발명의 실시예들에 따른 비휘발성 메모리 장치의 데이터 기입 방법을 나타내는 블록도이다.
도 23은 본 발명의 실시예들에 따른 스토리지 장치 및 이를 포함하는 스토리지 시스템을 나타내는 블록도이다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1은 본 발명의 실시예들에 따른 비휘발성 메모리 장치의 데이터 기입 방법을 나타내는 블록도이다.
도 1을 참조하면, 본 발명의 실시예들에 따른 데이터 기입 방법은 복수의 메모리 셀들을 포함하는 비휘발성 메모리 장치에 의해 수행된다. 상기 비휘발성 메모리 장치 및 이를 포함하는 메모리 시스템의 구조는 도 2 내지 7을 참조하여 상세하게 후술하도록 한다.
본 발명의 실시예들에 따른 비휘발성 메모리 장치의 데이터 기입 방법에서, 기입 커맨드, 기입 어드레스 및 프로그램하고자 하는 기입 데이터를 수신한다(단계 S100). 예를 들어, 상기 기입 커맨드, 상기 기입 어드레스 및 상기 기입 데이터는 상기 메모리 시스템에 포함되는 메모리 컨트롤러로부터 상기 비휘발성 메모리 장치로 전송될 수 있다.
상기 기입 데이터의 입출력(Input/Output, I/O) 패턴을 판단하여 상기 기입 데이터가 미리 정해진 산포 열화 패턴에 대응하는 경우에 제공되고 검증 레벨(verify level 또는 verification level)을 나타내는 오프셋 정보를 수신한다(단계 S200). 예를 들어, 상기 메모리 컨트롤러는 상기 기입 데이터의 입출력 패턴을 판단하며, 상기 판단 결과로서 생성된 상기 오프셋 정보는 상기 메모리 컨트롤러로부터 상기 비휘발성 메모리 장치로 전송될 수 있다.
일 실시예에서, 상기 산포 열화 패턴은 데이터 리텐션(retention) 특성에 대한 제1 열화 패턴 및 독출 디스터브(read disturb) 특성에 대한 제2 열화 패턴을 포함할 수 있다. 상기 기입 데이터가 미리 정해진 제1 횟수보다 적게 기입되는 기입 콜드(cold) 데이터인 경우에, 상기 기입 데이터가 상기 제1 열화 패턴에 대응하는 것으로 판단하고, 상기 기입 데이터가 미리 정해진 제2 횟수보다 많이 독출되는 독출 핫(hot) 데이터인 경우에, 상기 기입 데이터가 상기 제2 열화 패턴에 대응하는 것으로 판단할 수 있다. 단계 S200에 대해서는 도 8을 참조하여 상세하게 후술하도록 한다.
도 1에서는 단계 S100이 수행되고 이후에 단계 S200이 수행되는 것으로 도시하였으나, 실시예에 따라서 단계 S100 및 S200은 실질적으로 동시에 수행될 수도 있다.
상기 오프셋 정보가 수신된 경우에, 상기 기입 데이터가 저장되는 메모리 셀들의 문턱 전압 산포에 포함되는 복수의 상태들 중 일부 상태가 변화하도록 상기 오프셋 정보에 기초하여 상기 기입 데이터를 프로그램한다(단계 S300). 예를 들어, 상기 복수의 상태들은 복수의 프로그램 상태들을 포함하며, 상기 복수의 프로그램 상태들 중 일부만이 변화하도록 상기 기입 데이터를 프로그램할 수 있다.
일 실시예에서, 상기 복수의 상태들은 제1 상태 내지 제N(N은 2 이상의 자연수) 상태를 포함하고, 상기 제1 상태는 가장 낮은 전압 레벨에 대응하고 상기 제N 상태는 가장 높은 전압 레벨에 대응할 수 있다. 상기 기입 데이터가 상기 제1 열화 패턴에 대응하는 경우에, 제(N-1) 상태 및 상기 제N 상태 사이의 간격이 증가하도록 상기 기입 데이터를 프로그램하며, 상기 기입 데이터가 상기 제2 열화 패턴에 대응하는 경우에, 상기 제1 상태 및 제2 상태 사이의 간격이 증가하도록 상기 기입 데이터를 프로그램할 수 있다. 단계 S300에 대해서는 도 9 내지 20을 참조하여 상세하게 후술하도록 한다.
NAND 플래시 메모리 장치와 같은 비휘발성 메모리 장치에서, 데이터를 프로그램하면 산포(Cell Distribution) 형태로 유지된다. 이러한 산포는 열화에 따라 움직이게 되는데, 이를 극복하기 위해 프로그램 파라미터(Program Parameter)들을 설정하게 된다. 여러 종류의 프로그램 파라미터들 중 검증 레벨은 산포의 각 상태(State) 별 시작 위치를 지정하게 된다. 만약 인접한 2개의 상태들의 검증 레벨들 사이의 간격이 넓다면, 인접한 2개의 상태들 간에 산포의 마진(margin)이 넓은 것을 나타내고, 이는 산포의 움직임을 유발하는 열화에서 좀 더 강하다고 볼 수 있다. 모든 검증 레벨들이 고정되어 있는 경우에는 기입 데이터에 대해 발생할 수 있는 모든 종류의 열화들을 효과적으로 극복하기 어려울 수 있다.
본 발명의 실시예들에 따른 비휘발성 메모리 장치의 데이터 기입 방법에서는, 프로그램하고자 하는 상기 기입 데이터의 입출력 패턴을 실시간으로(Runtime) 파악하고, 특정 패턴이 검출된 경우에 해당 패턴에 취약한 열화에 대응하는 상태의 마진을 확보하는 방향으로(즉, 인접한 상태들 사이의 간격을 넓히는 방향으로) 검증 레벨을 조절할 수 있다. 상기 조절된 검증 레벨에 대한 정보는 상기 오프셋 정보로서 상기 기입 데이터와 함께 제공될 수 있다. 따라서, 상기 기입 데이터의 열화를 효과적으로 방지하고 신뢰성을 향상시킬 수 있다.
도 2는 본 발명의 실시예들에 따른 비휘발성 메모리 장치 및 이를 포함하는 메모리 시스템을 나타내는 블록도이다.
도 2를 참조하면, 메모리 시스템(10)은 메모리 컨트롤러(20) 및 비휘발성 메모리 장치(40)를 포함한다. 메모리 시스템(10)은 메모리 컨트롤러(20)와 비휘발성 메모리 장치(40)를 전기적으로 연결하는 복수의 신호 라인들(30)을 더 포함할 수 있다.
비휘발성 메모리 장치(40)는 메모리 컨트롤러(20)에 의해 제어된다. 예를 들어, 메모리 컨트롤러(20)는 호스트 장치(예를 들어, 도 23의 1100)의 요청에 기초하여 비휘발성 메모리 장치(40)에 데이터를 기입(즉, 프로그램)하거나 비휘발성 메모리 장치(40)로부터 데이터를 독출할 수 있다.
복수의 신호 라인들(30)은 제어 라인, 커맨드 라인, 어드레스 라인, 데이터 라인 및 전원 라인을 포함할 수 있다. 메모리 컨트롤러(20)는 상기 커맨드 라인, 상기 어드레스 라인 및 상기 제어 라인을 통해 비휘발성 메모리 장치(40)에 커맨드(CMD), 어드레스(ADDR) 및 제어 신호(CTRL)를 전송하고, 상기 데이터 라인을 통해 비휘발성 메모리 장치(40)와 데이터 신호(DAT)를 주고 받으며, 상기 전원 라인을 통해 비휘발성 메모리 장치(40)에 전원 전압(PWR)을 제공할 수 있다. 도시하지는 않았으나, 복수의 신호 라인들(30)은 데이터 스트로브 신호(즉, DQS 신호)를 전송하는 DQS 라인을 더 포함할 수 있다. 복수의 신호 라인들(30)의 일부 또는 전부를 채널이라 부를 수 있다.
도 3은 본 발명의 실시예들에 따른 비휘발성 메모리 장치를 나타내는 블록도이다.
도 3을 참조하면, 비휘발성 메모리 장치(100)는 메모리 셀 어레이(110), 어드레스 디코더(120), 페이지 버퍼 회로(130), 데이터 입출력 회로(140), 전압 생성기(150) 및 제어 회로(160)를 포함한다.
메모리 셀 어레이(110)는 복수의 스트링 선택 라인들(SSL), 복수의 워드 라인들(WL) 및 복수의 접지 선택 라인들(GSL)을 통해 어드레스 디코더(120)와 연결된다. 또한, 메모리 셀 어레이(110)는 복수의 비트 라인들(BL)을 통해 페이지 버퍼 회로(130)와 연결된다. 메모리 셀 어레이(110)는 복수의 워드 라인들(WL) 및 복수의 비트 라인들(BL)에 연결되는 복수의 메모리 셀들을 포함할 수 있다. 메모리 셀 어레이(110)는 각각 메모리 셀들을 포함하는 복수의 메모리 블록들(BLK1, BLK2, ..., BLKz)로 구분될 수 있다. 또한, 메모리 블록들(BLK1~BLKz) 각각은 복수의 페이지들로 구분될 수 있다.
일 실시예에서, 도 4 및 5를 참조하여 후술하는 것처럼, 메모리 셀 어레이(110)는 기판 상에 삼차원 구조(또는 수직 구조)로 형성되는 삼차원(three dimensional) 메모리 셀 어레이일 수 있다. 이 경우, 메모리 셀 어레이(110)는 서로 적층되어 형성되는 복수의 메모리 셀들을 포함하는 셀 스트링들, 예를 들어 수직 메모리 낸드 스트링들을 포함할 수 있다.
제어 회로(160)는 메모리 컨트롤러(예를 들어, 도 2의 20)로부터 커맨드(CMD) 및 어드레스(ADDR)를 수신하고, 커맨드(CMD) 및 어드레스(ADDR)에 기초하여 비휘발성 메모리 장치(100)의 소거 루프, 프로그램 루프 및 독출 동작을 제어한다. 여기서 프로그램 루프는 프로그램 동작과 프로그램 검증 동작을 포함하고, 소거 루프는 소거 동작과 소거 검증 동작을 포함할 수 있다. 여기서 독출 동작은 노멀 독출 동작과 데이터 리커버리 독출 동작을 포함할 수 있다.
예를 들어, 제어 회로(160)는 커맨드(CMD)에 기초하여 전압 생성기(150)를 제어하기 위한 제어 신호들(CON) 및 페이지 버퍼 회로(130)를 제어하기 위한 제어 신호들(PBC)을 생성하고, 어드레스(ADDR)에 기초하여 로우 어드레스(R_ADDR) 및 컬럼 어드레스(C_ADDR)를 생성할 수 있다. 제어 회로(160)는 로우 어드레스(R_ADDR)를 어드레스 디코더(120)에 제공하고, 컬럼 어드레스(C_ADDR)를 데이터 입출력 회로(140)에 제공할 수 있다.
제어 회로(160)는 도 1을 참조하여 상술한 본 발명의 실시예들에 따른 데이터 기입 방법을 수행한다. 예를 들어, 제어 회로(160)는 기입 데이터가 미리 정해진 산포 열화 패턴에 대응하는 경우에 제공되고 검증 레벨을 나타내는 오프셋 정보(OFS)를 수신하고, 오프셋 정보(OFS)에 기초하여 비휘발성 메모리 장치(100)의 상기 프로그램 루프를 제어한다. 또한, 제어 회로(160)는 도 21 및 22를 참조하여 후술하는 본 발명의 실시예들에 따른 데이터 기입 방법을 수행할 수도 있다.
어드레스 디코더(120)는 복수의 스트링 선택 라인들(SSL), 복수의 워드 라인들(WL) 및 복수의 접지 선택 라인들(GSL)을 통해 메모리 셀 어레이(110)와 연결된다. 예를 들어, 소거/프로그램/독출 동작 시에, 어드레스 디코더(120)는 로우 어드레스(R_ADDR)에 응답하여, 복수의 워드 라인들(WL) 중 적어도 하나, 복수의 스트링 선택 라인들(SSL) 중 적어도 하나 및 복수의 접지 선택 라인들(GSL) 중 적어도 하나를 선택 워드 라인, 선택 스트링 선택 라인 및 선택 접지 선택 라인으로 각각 결정할 수 있다.
전압 생성기(150)는 전원 전압(PWR) 및 제어 신호들(CON)에 기초하여 비휘발성 메모리 장치(100)의 동작에 필요한 전압들(VS)을 생성할 수 있다. 전압들(VS)은 어드레스 디코더(120)를 통해 복수의 워드 라인들(WL)에 인가될 수 있다. 또한, 전압 생성기(150)는 전원 전압(PWR) 및 제어 신호들(CON)에 기초하여 소거 동작에 필요한 소거 전압(VERS)을 생성할 수 있다.
예를 들어, 소거 동작 시에, 전압 생성기(150)는 메모리 블록들(BLK1~BLKz)의 공통 소스 라인 및/또는 비트 라인(BL)에 소거 전압(VERS)을 인가하고, 어드레스 디코더(120)를 통해 하나의 메모리 블록의 모든 워드 라인들에 소거 허용 전압(예를 들어, 접지 전압)을 인가할 수 있다. 소거 검증 동작 시에, 전압 생성기(150)는 어드레스 디코더(120)를 통해 하나의 메모리 블록의 모든 워드 라인들에 소거 검증 전압을 동시에 인가하거나 워드 라인 단위로 순차적으로 인가할 수 있다.
예를 들어, 프로그램 동작 시에, 전압 생성기(150)는 어드레스 디코더(120)를 통해 상기 선택 워드 라인에 프로그램 전압을 인가하고, 상기 비선택 워드 라인들에는 프로그램 금지 전압을 인가할 수 있다. 프로그램 검증 동작 시에, 전압 생성기(150)는 어드레스 디코더(120)를 통해 상기 선택 워드 라인에 프로그램 검증 전압을 인가하고, 상기 비선택 워드 라인들에는 검증 패스 전압을 인가할 수 있다.
또한, 노멀 독출 동작 시에, 전압 생성기(150)는 어드레스 디코더(120)를 통해 상기 선택 워드 라인에 독출 전압을 인가하고, 상기 비선택 워드 라인들에는 독출 패스 전압을 인가할 수 있다. 또한 데이터 리커버리 독출 동작 시에, 전압 생성기(150)는 어드레스 디코더(120)를 통해 상기 선택 워드 라인에 인접한 워드 라인에 독출 전압을 인가하고, 상기 선택 워드 라인에는 리커버리 독출 전압을 인가할 수 있다.
페이지 버퍼 회로(130)는 복수의 비트 라인들(BL)을 통해 메모리 셀 어레이(110)와 연결될 수 있다. 페이지 버퍼 회로(130)는 복수의 페이지 버퍼들을 포함할 수 있다. 페이지 버퍼 회로(130)는 메모리 셀 어레이(110)에 프로그램 될 기입 데이터(DAT)를 저장하거나 혹은 메모리 셀 어레이(110)로부터 감지된 독출 데이터(DAT)를 저장할 수 있다. 즉, 페이지 버퍼 회로(130)는 비휘발성 메모리 장치(100)의 동작 모드에 따라 기입 드라이버로서 또는 감지 증폭기로서 동작할 수 있다.
데이터 입출력 회로(140)는 데이터 라인들(DL)을 통해 페이지 버퍼 회로(130)와 연결될 수 있다. 데이터 입출력 회로(140)는 컬럼 어드레스(C_ADDR)에 응답하여, 기입 데이터(DAT)를 페이지 버퍼 회로(130)를 거쳐서 메모리 셀 어레이(110)에 제공하거나 혹은 메모리 셀 어레이(110)로부터 페이지 버퍼 회로(130)를 거쳐서 출력되는 독출 데이터(DAT)를 외부에 제공할 수 있다.
도 4는 도 3의 비휘발성 메모리 장치의 메모리 셀 어레이에 포함되는 메모리 블록의 일 예를 나타내는 사시도이다.
도 4를 참조하면, 메모리 블록(BLKi)은 3차원 구조 또는 수직 구조로 형성되는 낸드 스트링들을 포함한다. 메모리 블록(BLKi)은 복수의 방향들(D1, D2, D3)을 따라 신장된 구조물들을 포함한다.
메모리 블록(BLKi)을 형성하기 위해서는, 우선 기판(111)이 제공된다. 예를 들어, 기판(111)은 붕소(B, boron)와 같은 5족 원소가 주입되어 형성된 P-웰로 형성될 수 있다. 또는, 기판(111)은 N-웰 내에 제공되는 포켓 P-웰로 형성될 수 있다. 이하에서, 기판(111)은 P-웰인 것으로 가정한다. 그러나 기판(111)은 P-웰에만 한정되지 않는다.
기판(111) 상에, 제2 방향(D2)을 따라 복수의 도핑 영역들(311, 312, 313, 314)이 형성된다. 예를 들어, 복수의 도핑 영역들(311~314)은 기판(111)과 상이한 N-타입의 도전체로 형성될 수 있다. 이하에서, 복수의 도핑 영역들(311~314)은 N-타입을 갖는 것으로 가정한다. 그러나 복수의 도핑 영역들(311~314)은 N-타입을 갖는 것으로만 한정되지 않는다.
도핑 영역들(311, 312) 사이의 기판(111) 상에, 제1 방향(D1)을 따라 신장되는 복수의 절연 물질들(112)이 제3 방향(D3)을 따라 순차적으로 제공된다. 예를 들어, 복수의 절연 물질들(112)은 제3 방향(D3)을 따라 특정 거리만큼 이격되어 형성될 수 있다. 예를 들어, 복수의 절연 물질들(112)은 실리콘 산화물(silicon oxide)과 같은 절연 물질을 포함할 수 있다.
도핑 영역들(311, 312) 사이의 기판(111) 상에, 제1 방향(D1)을 따라 순차적으로 배치되며 제3 방향(D3)을 따라 복수의 절연 물질들(112)을 관통하는 복수의 필라들(113)이 형성된다. 예를 들어, 복수의 필라들(113)은 복수의 절연 물질들(112)을 관통하여 기판(111)과 연결될 수 있다. 또한, 복수의 필라들(113)은 도핑 영역들(312, 313) 사이의 기판 상에, 및 도핑 영역들(313, 314) 사이의 기판 상에도 형성된다.
일 실시예에서, 각 필라(113)는 복수의 물질들로 구성될 수 있다. 예를 들어, 각 필라(113)의 표면층(114)은 제1 타입을 갖는 실리콘 물질을 포함할 수 있고, 낸드 스트링의 채널이 형성되는 영역으로 기능할 수 있다. 예를 들어, 각 필라(113)의 표면층(114)은 기판(111)과 동일한 타입을 갖는 실리콘 물질을 포함할 수 있다. 이하에서, 각 필라(113)의 표면층(114)은 P-타입 실리콘을 포함하는 것으로 가정한다. 그러나 각 필라(113)의 표면층(114)은 P-타입 실리콘을 포함하는 것으로 한정되지 않는다.
각 필라(113)의 내부층(115)은 절연 물질로 구성된다. 예를 들어, 각 필라(113)의 내부층(115)은 실리콘 산화물(silicon oxide)과 같은 절연 물질을 포함할 수 있다. 예를 들어, 각 필라(113)의 내부층(115)은 에어 갭(air gap)을 포함할 수 있다.
도핑 영역들(311, 312) 사이의 영역에서, 복수의 절연 물질들(112), 복수의 필라들(113), 그리고 기판(111)의 노출된 표면을 따라 절연막(116)이 제공된다. 예를 들어, 제3 방향(D3)을 따라 제공되는 마지막 절연 물질(112)의 제3 방향(D3) 쪽의 노출면에 제공되는 절연막(116)은 제거될 수 있다.
도핑 영역들(311, 312) 사이의 영역에서, 절연막(116)의 노출된 표면상에 복수의 제1 도전 물질들(211, 221, 231, 241, 251, 261, 271, 281, 291)이 제공된다. 예를 들어, 기판(111)에 인접한 절연 물질(112) 및 기판(111) 사이에 제1 방향(D1)을 따라 신장되는 제1 도전 물질(211)이 제공될 수 있다. 구체적으로, 기판(111)에 인접한 절연 물질(112)의 하부면의 절연막(116) 및 기판(111) 사이에, 제1 방향(D1)으로 신장되는 제1 도전 물질(211)이 제공될 수 있다.
절연 물질들(112) 중 특정 절연 물질 상부면의 절연막(116) 및 특정 절연 물질 상부에 배치된 절연 물질의 하부면의 절연막(116) 사이에, 제1 방향(D1)을 따라 신장되는 제1 도전 물질이 제공된다. 예를 들어, 절연 물질들(112) 사이에, 제1 방향(D1)으로 신장되는 제1 도전 물질들(221~281)이 제공될 수 있다. 예를 들어, 제1 도전 물질들(211~291)은 금속 물질일 수 있다. 예를 들어, 제1 도전 물질들(211~291)은 폴리 실리콘 등과 같은 도전 물질들일 수 있다.
도핑 영역들(312, 313) 사이의 영역에서, 그리고 도핑 영역들(313, 314) 사이의 영역에서, 도핑 영역들(311, 312) 사이의 영역 상의 구조물과 동일한 구조물이 제공될 수 있다.
복수의 필라들(113) 상에 복수의 드레인들(320)이 각각 제공된다. 드레인들(320) 상에, 제2 방향(D2)으로 신장된 복수의 제2 도전 물질들(331, 332, 333)이 제공된다. 제2 도전 물질들(331~333)은 제1 방향(D1)을 따라 순차적으로 배치된다. 제2 도전 물질들(331~333) 각각은 대응하는 영역의 드레인(320)과 연결된다. 예를 들어, 드레인들(320) 및 제2 방향(D2)으로 신장된 제2 도전 물질들(331~333)은 각각 콘택 플러그들(contact plug)을 통해 연결될 수 있다. 예를 들어, 제2 도전 물질들(331~333)은 금속 물질들일 수 있다. 예를 들어, 제2 도전 물질들(331~333)은 폴리 실리콘 등과 같은 도전 물질들일 수 있다.
도 4의 예에서, 제1 도전 물질들(211~291)은 워드 라인들(WL), 스트링 선택 라인들(SSL) 및 접지 선택 라인들(GSL)을 형성할 수 있다. 제2 도전 물질들(331~333)은 비트 라인들(BL)을 형성할 수 있다. 또한, 도 4의 예에서, 제1 도전 물질들(211~291)의 층수는 예시적인 것에 불과하다.
도 5는 도 4를 참조하여 설명된 메모리 블록의 등가 회로를 나타내는 회로도이다.
도 5에 도시된 메모리 블록(BLKi)은 기판 상에 삼차원 구조로 형성되는 삼차원 메모리 블록을 나타낸다. 예를 들어, 메모리 블록(BLKi)에 포함되는 복수의 메모리 낸드 스트링들은 상기 기판과 수직한 방향으로 형성될 수 있다.
도 5를 참조하면, 메모리 블록(BLKi)은 비트 라인들(BL1, BL2, BL3)과 공통 소스 라인(CSL) 사이에 연결되는 복수의 메모리 낸드 스트링들(NS11, NS12, NS13, NS21, NS22, NS23, NS31, NS32, NS33)을 포함할 수 있다. 복수의 메모리 낸드 스트링들(NS11~NS33) 각각은 스트링 선택 트랜지스터(SST), 복수의 메모리 셀들(MC1, MC2, MC3, MC4, MC5, MC6, MC7, MC8) 및 접지 선택 트랜지스터(GST)를 포함할 수 있다. 비트 라인들(BL1~BL3)은 도 3의 제2 도전 물질들(331~333)에 대응할 수 있고, 도 3의 도핑 영역들(311~314)이 서로 연결되어 공통 소스 라인(CSL)을 형성할 수 있다.
스트링 선택 트랜지스터(SST)는 상응하는 스트링 선택 라인(SSL1, SSL2, SSL3)에 연결될 수 있다. 복수의 메모리 셀들(MC1~MC8)은 각각 상응하는 워드 라인(WL1, WL2, WL3, WL4, WL5, WL6, WL7, WL8)에 연결될 수 있다. 접지 선택 트랜지스터(GST)는 상응하는 접지 선택 라인(GSL1, GSL2, GSL3)에 연결될 수 있다. 스트링 선택 트랜지스터(SST)는 상응하는 비트 라인(BL1, BL2, BL3)에 연결되고, 접지 선택 트랜지스터(GST)는 공통 소스 라인(CSL)에 연결될 수 있다.
하나의 비트 라인에 공통으로 연결된 셀 스트링들은 하나의 열을 형성하고, 하나의 스트링 선택 라인에 연결되는 셀 스트링들은 하나의 행을 형성한다. 예를 들어, 제1 비트 라인(BL1)에 연결된 셀 스트링들(NS11, NS21, NS31)은 제1 열을 형성하고, 제1 스트링 선택 라인(SSL1)에 연결된 셀 스트링들(NS11, NS12, NS13)은 제1 행을 형성할 수 있다.
동일한 층의 워드 라인(예를 들면, WL1)은 공통으로 연결되고, 접지 선택 라인(GSL1~GSL3) 및 스트링 선택 라인(SSL1~SSL3)은 각각 분리될 수 있다. 동일한 반도체 층의 메모리 셀들은 워드 라인을 공유하고, 동일한 행의 셀 스트링들은 스트링 선택 라인을 공유하며, 공통 소스 라인(CSL)은 모든 셀 스트링들에 공통으로 연결될 수 있다.
도 5의 예에서, 워드 라인들(WL1~WL8), 비트 라인들(BL1~BL3) 및 메모리 셀들(MC1~MC8)의 개수는 예시적인 것에 불과하다.
수직형(또는 3차원) 메모리 셀 어레이에 대한 자세한 설명은 본 명세서에 참고 문헌으로 결합된 미국 등록 번호 7,679,133; 8,553,466; 8,654,587; 8,559,235 및 미국 공개 번호 2011/0233648에 기술되어 있다.
한편, NAND 플래시 메모리 장치에 기초하여 본 발명의 실시예들에 따른 비휘발성 메모리 장치에 포함되는 메모리 셀 어레이 및 메모리 블록을 설명하였으나, 본 발명의 실시예들에 따른 비휘발성 메모리 장치는 PRAM(Phase Change Random Access Memory), RRAM(Resistance Random Access Memory), NFGM(Nano Floating Gate Memory), PoRAM(Polymer Random Access Memory), MRAM(Magnetic Random Access Memory), FRAM(Ferroelectric Random Access Memory) 등과 같은 임의의 비휘발성 메모리 장치일 수 있다.
도 6은 본 발명의 실시예들에 따른 메모리 시스템에 포함되는 메모리 컨트롤러의 일 예를 나타내는 블록도이다.
도 6을 참조하면, 메모리 컨트롤러(400)는 프로세서(410), 메모리(420), 파라미터 관리자(430), 호스트 인터페이스(440), ECC(Error Correction Code) 엔진(450), 메모리 인터페이스(460) 및 AES(Advanced Encryption Standard) 엔진(470)을 포함할 수 있다.
프로세서(410)는 호스트 장치(예를 들어, 도 23의 1100)로부터 호스트 인터페이스(440)를 통하여 수신된 커맨드에 응답하여 메모리 컨트롤러(400)의 동작을 제어할 수 있다. 예를 들어, 프로세서(410)는 메모리 시스템(예를 들어, 도 2의 10)의 동작을 제어하며, 메모리 시스템(10)을 구동하기 위한 펌웨어(Firmware)를 채용하여 각각의 구성들을 제어할 수 있다.
메모리(420)는 프로세서(410)에 의해 실행 및 처리되는 명령어 및 데이터를 저장할 수 있다. 예를 들어, 메모리(420)는 DRAM(Dynamic Random Access Memory), SRAM(Static Random Access Memory) 등과 같은 휘발성 메모리로 구현될 수 있다.
파라미터 관리자(430)는 도 1을 참조하여 상술한 본 발명의 실시예들에 따른 데이터 기입 방법을 수행하기 위한 구성일 수 있다. 예를 들어, 파라미터 관리자(430)는 도 1의 단계 S200을 수행할 수 있다. 파라미터 관리자(430)는 기입 데이터의 입출력 패턴을 검출하는 입출력 패턴 검출부(I/O pattern detection unit, IPDU)(432) 및 검증 레벨을 조절하는 검증 레벨 제어부(verification level control unit, VLCU)(434)를 포함하며, 검증 레벨 제어부(434)는 상기 검증 레벨을 조절하기 위한 미리 설정된 룩업 테이블(Look-Up Table; LUT)(436)을 포함할 수 있다. 예를 들어, 룩업 테이블(436)은 상기 기입 데이터의 입출력 패턴과 이에 대한 최적 검증 레벨의 관계를 포함할 수 있다. 실시예에 따라서, 파라미터 관리자(430)의 일부 또는 전부는 하드웨어의 형태로 구현될 수도 있고 소프트웨어(즉, 프로그램)의 형태로 구현될 수도 있다.
에러 정정을 위한 ECC 엔진(450)은 BCH(Bose-Chaudhuri-Hocquenghem) 코드, LDPC(Low Density Parity Check) 코드, 터보 코드(Turbo Code), 리드-솔로몬 코드(Reed-Solomon Code), 콘볼루션 코드(Convolution Code), RSC(Recursive Systematic Code), TCM(Trellis-Coded Modulation), BCM(Block Coded Modulation) 등의 부호화된 변조(Coded Modulation), 또는 다른 에러 정정 코드를 이용하여 ECC 인코딩 및 ECC 디코딩을 수행할 수 있다.
호스트 인터페이스(440)는 호스트 장치(1100)와 메모리 시스템(10) 사이의 물리적 연결을 제공할 수 있다. 즉, 호스트 인터페이스(440)는 호스트 장치(1100)의 버스 포맷(bus format)에 대응하여 메모리 시스템(10)과의 인터페이싱을 제공할 수 있다. 일 실시예에서, 호스트 장치(1100)의 버스 포맷은 SCSI 또는 SAS일 수 있다. 다른 실시예에서, 호스트 장치(1100)의 버스 포맷은 USB, PCIe(peripheral component interconnect express), ATA, PATA, SATA, NVMe 등일 수 있다.
메모리 인터페이스(460)는 비휘발성 메모리 장치(도 2의 40)와 데이터를 교환할 수 있다. 메모리 인터페이스(460)는 데이터를 비휘발성 메모리 장치(40)에 전송할 수 있고, 비휘발성 메모리 장치(40)로부터 독출된 데이터를 수신할 수 있다. 예를 들어, 메모리 인터페이스(460)는 토글(Toggle) 혹은 온파이(ONFI)와 같은 표준 규약을 준수하도록 구현될 수 있다.
AES 엔진(470)은 메모리 컨트롤러(20)로 입력되는 데이터에 대한 암호화(encryption) 동작과 복호화(decryption) 동작 중 적어도 하나를, 대칭 키 알고리즘(symmetric-key algorithm)을 이용하여 수행할 수 있다. 상세하게 도시하지는 않았으나, AES 엔진(470)은 암호화 모듈 및 복호화 모듈을 포함할 수 있다. 실시예에 따라서, 상기 암호화 모듈 및 상기 복호화 모듈은 서로 별개의 모듈로 구현될 수도 있고 하나의 모듈로 구현될 수도 있다.
도 7은 본 발명의 실시예들에 따른 메모리 시스템을 나타내는 블록도이다.
도 7을 참조하면, 메모리 시스템(50)은 메모리 장치(500) 및 메모리 컨트롤러(600)를 포함할 수 있다. 도 7은 메모리 장치(500)와 메모리 컨트롤러(600) 사이의 인터페이스를 구체적으로 나타내고 있다.
메모리 장치(500)는 제1 내지 제8 핀들(P11, P12, P13, P14, P15, P16, P17, P18), 메모리 인터페이스 회로(510), 제어 로직 회로(520) 및 메모리 셀 어레이(530)를 포함할 수 있다.
메모리 인터페이스 회로(510)는 제1 핀(P11)을 통해 메모리 컨트롤러(600)로부터 칩 인에이블 신호(nCE)를 수신할 수 있다. 메모리 인터페이스 회로(510)는 칩 인에이블 신호(nCE)에 따라 제2 내지 제8 핀들(P12~P18)을 통해 메모리 컨트롤러(600)와 신호들을 송수신할 수 있다. 예를 들어, 칩 인에이블 신호(nCE)가 인에이블 상태(예를 들어, 로우 레벨)인 경우, 메모리 인터페이스 회로(510)는 제2 내지 제8 핀들(P12~P18)을 통해 메모리 컨트롤러(600)와 신호들을 송수신할 수 있다.
메모리 인터페이스 회로(510)는 제2 내지 제4 핀들(P12~P14)을 통해 메모리 컨트롤러(600)로부터 커맨드 래치 인에이블 신호(CLE), 어드레스 래치 인에이블 신호(ALE) 및 쓰기 인에이블 신호(nWE)를 수신할 수 있다. 메모리 인터페이스 회로(510)는 제7 핀(P17)을 통해 메모리 컨트롤러(600)로부터 데이터 신호(DQ)를 수신하거나, 메모리 컨트롤러(600)로 데이터 신호(DQ)를 전송할 수 있다. 데이터 신호(DQ)를 통해 커맨드(CMD), 어드레스(ADDR) 및 데이터(DATA)가 전달될 수 있다. 예를 들어, 데이터 신호(DQ)는 복수의 데이터 신호 라인들을 통해 전달될 수 있다. 이 경우, 제7 핀(P17)은 복수의 데이터 신호들에 대응하는 복수 개의 핀들을 포함할 수 있다.
메모리 인터페이스 회로(510)는 쓰기 인에이블 신호(nWE)의 토글 타이밍들에 기초하여 커맨드 래치 인에이블 신호(CLE)의 인에이블 구간(예를 들어, 하이 레벨 상태)에서 수신되는 데이터 신호(DQ)로부터 커맨드(CMD)를 획득할 수 있다. 메모리 인터페이스 회로(510)는 쓰기 인에이블 신호(nWE)의 토글 타이밍들에 기초하여 어드레스 래치 인에이블 신호(ALE)의 인에이블 구간(예를 들어, 하이 레벨 상태)에서 수신되는 데이터 신호(DQ)로부터 어드레스(ADDR)를 획득할 수 있다.
일 실시예에서, 쓰기 인에이블 신호(nWE)는 고정된(static) 상태(예를 들어, 하이(high) 레벨 또는 로우(low) 레벨)를 유지하다가 하이 레벨과 로우 레벨 사이에서 토글할 수 있다. 예를 들어, 쓰기 인에이블 신호(nWE)는 커맨드(CMD) 또는 어드레스(ADDR)가 전송되는 구간에서 토글할 수 있다. 이에 따라, 메모리 인터페이스 회로(510)는 쓰기 인에이블 신호(nWE)의 토글 타이밍들에 기초하여 커맨드(CMD) 또는 어드레스(ADDR)를 획득할 수 있다.
메모리 인터페이스 회로(510)는 제5 핀(P15)을 통해 메모리 컨트롤러(600)로부터 읽기 인에이블 신호(nRE)를 수신할 수 있다. 메모리 인터페이스 회로(510)는 제6 핀(P16)을 통해 메모리 컨트롤러(600)로부터 데이터 스트로브 신호(DQS)를 수신하거나, 메모리 컨트롤러(600)로 데이터 스트로브 신호(DQS)를 전송할 수 있다.
메모리 장치(500)의 데이터(DATA) 출력 동작에서, 메모리 인터페이스 회로(510)는 데이터(DATA)를 출력하기 전에 제5 핀(P15)을 통해 토글하는 읽기 인에이블 신호(nRE)를 수신할 수 있다. 메모리 인터페이스 회로(510)는 읽기 인에이블 신호(nRE)의 토글링에 기초하여 토글하는 데이터 스트로브 신호(DQS)를 생성할 수 있다. 예를 들어, 메모리 인터페이스 회로(510)는 읽기 인에이블 신호(nRE)의 토글링 시작 시간을 기준으로 미리 정해진 딜레이(예를 들어, tDQSRE) 이후에 토글하기 시작하는 데이터 스트로브 신호(DQS)를 생성할 수 있다. 메모리 인터페이스 회로(510)는 데이터 스트로브 신호(DQS)의 토글 타이밍에 기초하여 데이터(DATA)를 포함하는 데이터 신호(DQ)를 전송할 수 있다. 이에 따라, 데이터(DATA)는 데이터 스트로브 신호(DQS)의 토글 타이밍에 정렬되어 메모리 컨트롤러(600)로 전송될 수 있다.
메모리 장치(500)의 데이터(DATA) 입력 동작에서, 메모리 컨트롤러(600)로부터 데이터(DATA)를 포함하는 데이터 신호(DQ)가 수신되는 경우, 메모리 인터페이스 회로(510)는 메모리 컨트롤러(600)로부터 데이터(DATA)와 함께 토글하는 데이터 스트로브 신호(DQS)를 수신할 수 있다. 메모리 인터페이스 회로(510)는 데이터 스트로브 신호(DQS)의 토글 타이밍에 기초하여 데이터 신호(DQ)로부터 데이터(DATA)를 획득할 수 있다. 예를 들어, 메모리 인터페이스 회로(510)는 데이터 스트로브 신호(DQS)의 상승 에지 및 하강 에지에서 데이터 신호(DQ)를 샘플링함으로써 데이터(DATA)를 획득할 수 있다.
일 실시예에서, 쓰기 인에이블 신호(nWE) 및 데이터 스트로브 신호(DQS)에 기초하여 획득되는 커맨드(CMD), 어드레스(ADDR) 및 데이터(DATA)가 본 발명의 실시예들에 따른 데이터 기입 동작을 수행하는데 이용되는 커맨드, 어드레스 및 데이터에 대응할 수 있다.
메모리 인터페이스 회로(510)는 제8 핀(P18)을 통해 레디/비지 출력 신호(nR/B)를 메모리 컨트롤러(600)로 전송할 수 있다. 메모리 인터페이스 회로(510)는 레디/비지 출력 신호(nR/B)를 통해 메모리 장치(500)의 상태 정보를 메모리 컨트롤러(600)로 전송할 수 있다. 메모리 장치(500)가 비지 상태인 경우(즉, 메모리 장치(500) 내부 동작들이 수행 중인 경우), 메모리 인터페이스 회로(510)는 비지 상태를 나타내는 레디/비지 출력 신호(nR/B)를 메모리 컨트롤러(600)로 전송할 수 있다. 메모리 장치(500)가 레디 상태인 경우(즉, 메모리 장치(500) 내부 동작들이 수행되지 않거나 완료된 경우), 메모리 인터페이스 회로(510)는 레디 상태를 나타내는 레디/비지 출력 신호(nR/B)를 메모리 컨트롤러(600)로 전송할 수 있다. 예를 들어, 메모리 장치(500)가 페이지 독출 명령에 응답하여 메모리 셀 어레이(530)로부터 데이터(DATA)를 독출하는 동안, 메모리 인터페이스 회로(510)는 비지 상태(예를 들어, 로우 레벨)를 나타내는 레디/비지 출력 신호(nR/B)를 메모리 컨트롤러(600)로 전송할 수 있다. 예를 들어, 메모리 장치(500)가 프로그램 명령에 응답하여 메모리 셀 어레이(530)로 데이터(DATA)를 프로그램하는 동안, 메모리 인터페이스 회로(510)는 비지 상태를 나타내는 레디/비지 출력 신호(nR/B)를 메모리 컨트롤러(600)로 전송할 수 있다.
제어 로직 회로(520)는 메모리 장치(500)의 각종 동작을 전반적으로 제어할 수 있다. 제어 로직 회로(520)는 메모리 인터페이스 회로(510)로부터 획득된 커맨드/어드레스(CMD/ADDR)를 수신할 수 있다. 제어 로직 회로(520)는 수신된 커맨드/어드레스(CMD/ADDR)에 따라 메모리 장치(500)의 다른 구성 요소들을 제어하기 위한 제어 신호들을 생성할 수 있다. 예를 들어, 제어 로직 회로(520)는 메모리 셀 어레이(530)에 데이터(DATA)를 프로그램하거나, 또는 메모리 셀 어레이(530)로부터 데이터(DATA)를 독출하기 위한 각종 제어 신호들을 생성할 수 있다.
메모리 셀 어레이(530)는 제어 로직 회로(520)의 제어에 따라 메모리 인터페이스 회로(510)로부터 획득된 데이터(DATA)를 저장할 수 있다. 메모리 셀 어레이(530)는 제어 로직 회로(520)의 제어에 따라 저장된 데이터(DATA)를 메모리 인터페이스 회로(510)로 출력할 수 있다.
메모리 셀 어레이(530)는 복수의 메모리 셀들을 포함할 수 있다. 예를 들어, 복수의 메모리 셀들은 플래시 메모리 셀들일 수 있다. 다만, 본 발명은 이에 한정되지 않을 수 있다.
메모리 컨트롤러(600)는 제1 내지 제8 핀들(P21, P22, P23, P24, P25, P26, P27, P28) 및 컨트롤러 인터페이스 회로(610)를 포함할 수 있다. 제1 내지 제8 핀들(P21~P28)은 메모리 장치(500)의 제1 내지 제8 핀들(P11~P18)에 대응할 수 있다.
컨트롤러 인터페이스 회로(610)는 제1 핀(P21)을 통해 메모리 장치(500)로 칩 인에이블 신호(nCE)를 전송할 수 있다. 컨트롤러 인터페이스 회로(610)는 칩 인에이블 신호(nCE)를 통해 선택한 메모리 장치(500)와 제2 내지 제8 핀들(P22~P28)을 통해 신호들을 송수신할 수 있다.
컨트롤러 인터페이스 회로(610)는 제2 내지 제4 핀들(P22~P24)을 통해 커맨드 래치 인에이블 신호(CLE), 어드레스 래치 인에이블 신호(ALE) 및 쓰기 인에이블 신호(nWE)를 메모리 장치(500)로 전송할 수 있다. 컨트롤러 인터페이스 회로(610)는 제7 핀(P27)을 통해 메모리 장치(500)로 데이터 신호(DQ)를 전송하거나, 메모리 장치(500)로부터 데이터 신호(DQ)를 수신할 수 있다.
컨트롤러 인터페이스 회로(610)는 토글하는 쓰기 인에이블 신호(nWE)와 함께 커맨드(CMD) 또는 어드레스(ADDR)를 포함하는 데이터 신호(DQ)를 메모리 장치(500)로 전송할 수 있다. 컨트롤러 인터페이스 회로(610)는 인에이블 상태를 가지는 커맨드 래치 인에이블 신호(CLE)를 전송함에 따라 커맨드(CMD)를 포함하는 데이터 신호(DQ)를 메모리 장치(500)로 전송하고, 인에이블 상태를 가지는 어드레스 래치 인에이블 신호(ALE)를 전송함에 따라 어드레스(ADDR)를 포함하는 데이터 신호(DQ)를 메모리 장치(500)로 전송할 수 있다.
컨트롤러 인터페이스 회로(610)는 제5 핀(P25)을 통해 메모리 장치(500)로 읽기 인에이블 신호(nRE)를 전송할 수 있다. 컨트롤러 인터페이스 회로(610)는 제6 핀(P26)을 통해 메모리 장치(500)로부터 데이터 스트로브 신호(DQS)를 수신하거나, 메모리 장치(500)로 데이터 스트로브 신호(DQS)를 전송할 수 있다.
메모리 장치(500)의 데이터(DATA) 출력 동작에서, 컨트롤러 인터페이스 회로(610)는 토글하는 읽기 인에이블 신호(nRE)를 생성하고, 읽기 인에이블 신호(nRE)를 메모리 장치(500)로 전송할 수 있다. 예를 들어, 컨트롤러 인터페이스 회로(610)는 데이터(DATA)가 출력되기 전에 고정된 상태(예를 들어, 하이 레벨 또는 로우 레벨)에서 토글 상태로 변경되는 읽기 인에이블 신호(nRE)를 생성할 수 있다. 이에 따라, 메모리 장치(500)에서 읽기 인에이블 신호(nRE)에 기초하여 토글하는 데이터 스트로브 신호(DQS)가 생성될 수 있다. 컨트롤러 인터페이스 회로(610)는 메모리 장치(500)로부터 토글하는 데이터 스트로브 신호(DQS)와 함께 데이터(DATA)를 포함하는 데이터 신호(DQ)를 수신할 수 있다. 컨트롤러 인터페이스 회로(610)는 데이터 스트로브 신호(DQS)의 토글 타이밍에 기초하여 데이터 신호(DQ)로부터 데이터(DATA)를 획득할 수 있다.
메모리 장치(500)의 데이터(DATA) 입력 동작에서, 컨트롤러 인터페이스 회로(610)는 토글하는 데이터 스트로브 신호(DQS)를 생성할 수 있다. 예를 들어, 컨트롤러 인터페이스 회로(610)는 데이터(DATA)를 전송하기 전에 고정된 상태(예를 들어, 하이 레벨 또는 로우 레벨)에서 토글 상태로 변경되는 데이터 스트로브 신호(DQS)를 생성할 수 있다. 컨트롤러 인터페이스 회로(610)는 데이터 스트로브 신호(DQS)의 토글 타이밍들에 기초하여 데이터(DATA)를 포함하는 데이터 신호(DQ)를 메모리 장치(500)로 전송할 수 있다.
컨트롤러 인터페이스 회로(610)는 제8 핀(P28)을 통해 메모리 장치(500)로부터 레디/비지 출력 신호(nR/B)를 수신할 수 있다. 컨트롤러 인터페이스 회로(610)는 레디/비지 출력 신호(nR/B)에 기초하여 메모리 장치(500)의 상태 정보를 판별할 수 있다.
도 8은 도 1의 오프셋 정보를 수신하는 단계의 일 예를 나타내는 순서도이다.
도 1 및 8을 참조하면, 단계 S200에서, 상기 기입 데이터의 입출력 패턴을 검출할 수 있다(단계 S210). 예를 들어, 단계 S210은 도 6의 입출력 패턴 검출부(432)에 의해 수행될 수 있다.
일 실시예에서, 상기 기입 어드레스에 기초하여 상기 기입 데이터의 입출력 패턴이 검출될 수 있다. 예를 들어, 실시간으로 추적된 상기 기입 어드레스의 로컬리티(locality)(또는 hotness)에 따라 상기 기입 데이터의 입출력 패턴을 파악할 수 있다. 예를 들어, 카운터를 이용하여 상기 기입 어드레스의 로컬리티를 확인할 수 있다. 다른 예에서, 다양한 머신 러닝(machine learning) 방식을 이용하여 상기 기입 어드레스의 로컬리티를 추적/예측할 수 있다. 이 경우, 도 23을 참조하여 후술하는 것처럼 상기 머신 러닝을 수행하기 위한 NPU(neural processing unit)를 포함하여 구현될 수 있다.
다른 실시예에서, 상기 기입 데이터의 액세스 횟수에 기초하여 상기 기입 데이터의 입출력 패턴이 검출될 수 있다. 예를 들어, 실시간으로 추적된 액세스 패턴(access pattern)에 따라 상기 기입 데이터의 입출력 패턴을 파악할 수 있다. 예를 들어, 액세스 빈도가 상대적으로 높은 경우에(예를 들어, 기준 빈도보다 높은 경우에) 핫 데이터로 분류되고, 액세스 빈도가 상대적으로 낮은 경우에(예를 들어, 기준 빈도보다 낮은 경우에) 콜드 데이터로 분류될 수 있다.
상기 기입 데이터가 상기 산포 열화 패턴에 대응하여 상기 검증 레벨의 변경이 필요한 경우에(단계 S220: 예), 최적 검증 레벨을 선택하고(단계 S230), 상기 최적 검증 레벨을 포함하는 상기 오프셋 정보를 생성하여 제공할 수 있다(단계 S230). 예를 들어, 단계 S220, S230 및 S240은 도 6의 검증 레벨 제어부(434) 및 룩업 테이블(436)에 의해 수행될 수 있다.
일 실시예에서, 상기 기입 데이터의 입출력 패턴은 어드레스 및/또는 데이터의 로컬리티 및/또는 액세스 횟수에 따라 구분되는 기입 핫 데이터, 기입 콜드 데이터, 독출 핫 데이터 및 독출 콜드 데이터를 포함할 수 있다.
일 실시예에서, 산포의 열화는 복수의 상태들 중 상위 상태에 영향을 주는 데이터 리텐션 열화 및 하위 상태에 영향을 주는 독출 디스터브 열화를 포함할 수 있다. 이 경우, 상기 산포 열화 패턴은 상기 데이터 리텐션 열화에 취약한 상기 제1 열화 패턴 및 상기 독출 디스터브 열화에 취약한 상기 제2 열화 패턴을 포함할 수 있다.
일 실시예에서, 상기 기입 데이터가 상기 기입 콜드 데이터인 경우에, 즉 상기 기입 어드레스에 대한 기입 동작이 상대적으로 적은 횟수만큼 수행되는 경우에, 상기 기입 데이터가 상기 제1 열화 패턴에 대응하는 것으로 판단하고, 신뢰성 향상을 위해 특정 검증 레벨을 변경(즉, 최적 검증 레벨을 선택)할 수 있다. 상기 기입 콜드 데이터는 저장 공간에 상대적으로 오랜 시간 방치되어 상기 데이터 리텐션 열화에 노출될 확률이 높을 수 있다. 따라서, 상기 기입 콜드 데이터는 상기 데이터 리텐션 열화에 강할수록 신뢰성이 향상될 수 있다. 상술한 것처럼, 상기 데이터 리텐션 열화는 상기 상위 상태에 영향을 주며, 따라서 상기 기입 콜드 데이터에 대해서는 상기 상위 상태에 대한 마진이 증가하도록 검증 레벨을 조절할 수 있다. 상기 기입 콜드 데이터인 경우에 검증 레벨을 조절하는 구체적인 동작에 대해서는 도 10 내지 15를 참조하여 후술하도록 한다.
일 실시예에서, 상기 기입 데이터가 상기 독출 핫 데이터인 경우에, 즉 상기 기입 어드레스 및/또는 상기 기입 데이터에 대한 독출 동작이 상대적으로 많은 횟수만큼 수행되는 경우에, 상기 기입 데이터가 상기 제2 열화 패턴에 대응하는 것으로 판단하고, 신뢰성 향상을 위해 특정 검증 레벨을 변경(즉, 최적 검증 레벨을 선택)할 수 있다. 상기 독출 핫 데이터는 상대적으로 자주 독출되어 상기 독출 디스터브 열화에 노출될 확률이 높을 수 있다. 따라서, 상기 독출 핫 데이터는 상기 독출 디스터브 열화에 강할수록 신뢰성이 향상될 수 있다. 상술한 것처럼, 상기 독출 디스터브 열화는 상기 하위 상태에 영향을 주며, 따라서 상기 독출 디스터브 열화에 대해서는 상기 하위 상태에 대한 마진이 증가하도록 검증 레벨을 조절할 수 있다. 상기 독출 핫 데이터인 경우에 검증 레벨을 조절하는 구체적인 동작에 대해서는 도 16 내지 20을 참조하여 후술하도록 한다.
일 실시예에서, 단계 S230에서 상기 최적 검증 레벨을 선택하는데 있어서, 각 페이지의 에러 비트(error bit)에 영향을 주는 상태를 함께 고려할 수 있다. 독출 동작의 단위는 페이지(page)이고, 각 페이지의 복수의 상태들이 신뢰성(즉, 에러 비트)에 영향을 미치는 정도가 다르게 된다. 예를 들어, 특정 페이지의 특정 상태가 독출 시의 에러 비트에 보다 큰 영향을 줄 수 있고, 반대의 경우도 가능할 수 있다. 이에 따라, 특정 페이지의 에러 비트가 많아지는 경우에 해당 페이지의 에러 비트에 영향을 끼치는 상태에 대한 마진을 변경하도록 검증 레벨을 추가적으로 조절할 수 있다.
단계 S230 및 S240이 수행된 이후에, 상기 최적 검증 레벨 및/또는 이를 나타내는 상기 오프셋 정보를 저장할 수 있다(단계 S250). 예를 들어, 메모리 컨트롤러(400)에 포함되는 파라미터 저장부(예를 들어, 메모리(420))에 상기 최적 검증 레벨 및/또는 상기 오프셋 정보가 저장될 수 있다.
한편, 상기 기입 데이터가 상기 산포 열화 패턴에 대응하지 않아 상기 검증 레벨의 변경이 불필요한 경우에(단계 S220: 아니오), 프로세스가 종료될 수 있다.
일 실시예에서, 상기 기입 데이터가 상기 기입 핫 데이터인 경우에, 즉 상기 기입 어드레스에 대한 기입 동작이 상대적으로 많은 횟수만큼 수행되는 경우에, 상기 기입 데이터가 상기 제1 및 제2 열화 패턴들에 대응하지 않는 것으로 판단할 수 있다. 상기 기입 핫 데이터는 상대적으로 자주 기입되어 무효 데이터(invalid data)가 될 가능성이 높아, 상기 데이터 리텐션 열화에 노출될 확률이 적을 수 있다. 따라서, 상기 기입 핫 데이터는 검증 레벨의 조절 없이 프로그램될 수 있다.
일 실시예에서, 상기 기입 데이터가 상기 독출 콜드 데이터인 경우에, 즉 상기 기입 어드레스 및/또는 상기 기입 데이터에 대한 독출 동작이 상대적으로 적은 횟수만큼 수행되는 경우에, 상기 기입 데이터가 상기 제1 및 제2 열화 패턴들에 대응하지 않는 것으로 판단할 수 있다. 상기 독출 콜드 데이터는 상대적으로 적게 독출되어 상기 독출 디스터브 열화에 노출될 확률이 낮을 수 있다. 따라서, 상기 독출 콜드 데이터는 검증 레벨의 조절 없이 프로그램될 수 있다.
도 9는 도 1의 오프셋 정보에 기초하여 기입 데이터를 프로그램하는 단계의 일 예를 나타내는 순서도이다.
도 1 및 9를 참조하면, 단계 S300에서, 상기 오프셋 정보를 수신하고(단계 S310), 상기 오프셋 정보에 기초하여 상기 기입 데이터가 저장되는 상기 메모리 셀들의 상기 문턱 전압 산포에 포함되는 제1 내지 제N 상태들에 대응하는 제1 내지 제N 검증 레벨들 중 적어도 하나를 변경하며(단계 S320), 상기 변경된 검증 레벨을 포함하는 상기 제1 내지 제N 검증 레벨들에 기초하여 상기 제1 내지 제N 상태들 중 일부 상태가 변화하도록 상기 기입 데이터에 대한 프로그램 루프(loop)를 1회 이상 수행할 수 있다(단계 S330). 상기 기입 데이터의 입출력 패턴에 따라 상기 최적 검증 레벨이 달라질 수 있으며, 구체적인 동작에 대해서는 후술하도록 한다.
도 10은 도 9의 프로그램 동작의 일 예를 나타내는 순서도이다. 도 11 및 12는 도 10의 동작을 설명하기 위한 도면들이다.
도 9, 10, 11 및 12를 참조하면, 단계 S310에서, 제1 오프셋 정보를 수신할 수 있다(단계 S312). 예를 들어, 상기 제1 오프셋 정보는 상기 기입 데이터가 상기 기입 콜드 데이터이고 상기 제1 열화 패턴에 대응함을 나타내며, 상기 기입 콜드 데이터의 신뢰성 향상을 위한 최적 검증 레벨을 포함할 수 있다.
단계 S320에서, 상기 제1 오프셋 정보에 기초하여, 상기 제1 내지 제N 상태들 중 상기 제N 상태가 변화하도록 상기 제1 내지 제N 검증 레벨들 중 상기 제N 검증 레벨을 변경할 수 있다(단계 S322). 상기 복수의 상태들 중에서, 상기 제1 상태 및 상기 제1 검증 레벨은 가장 낮은 전압 레벨에 대응하고 상기 제N 상태 및 상기 제N 검증 레벨은 가장 높은 전압 레벨에 대응할 수 있다. 상술한 것처럼, 상기 기입 콜드 데이터에 대해서는 가장 상위 상태인 상기 제N 상태에 대한 마진이 증가하도록 상기 제N 검증 레벨을 조절할 수 있다.
일 실시예에서, 도 11에 도시된 것처럼 검증 레벨이 조절될 수 있다. 도 11의 문턱 전압(VTH) 산포에서, 상부에 도시된 제1 내지 제N 상태들(E, P1, P2, ..., P(N-3), P(N-2), P(N-1)) 및 제1 내지 제N 검증 레벨들(VL1, VL2, VL3, ..., VL(N-2), VL(N-1), VLN)은 단계 S322가 수행되기 이전의 경우, 즉 초기 설정 값을 나타내며, 하부에 도시된 제1 내지 제N 상태들(E, P1, P2, ..., P(N-3), P(N-2), P(N-1)') 및 제1 내지 제N 검증 레벨들(VL1, VL2, VL3, ..., VL(N-2), VL(N-1), VLN')은 단계 S322가 수행되어 검증 레벨이 조절된 경우를 나타낸다. 예를 들어, 제1 상태(E) 및 제1 검증 레벨(VL1)은 소거 상태 및 소거 검증 레벨을 나타내고, 제2 내지 제N 상태들(P1~P(N-1)) 및 제2 내지 제N 검증 레벨들(VL2~VLN)은 프로그램 상태들 및 프로그램 검증 레벨들을 나타낼 수 있다. 예를 들어, TLC(triple level cell)의 경우에 N=8일 수 있다.
구체적으로, 단계 S322가 수행됨에 따라, 가장 상위의 상기 제N 검증 레벨이 VLN에서 VLN'로 증가하며, 가장 상위의 상기 제N 상태가 P(N-1)에서 P(N-1)'로 변화할 수 있다. 즉, 일부 프로그램 상태 및 일부 프로그램 검증 레벨만이 변화할 수 있다. 따라서, 상기 제(N-1) 상태 및 상기 제N 상태 사이의 간격이 VD1에서 VD1'로 증가하며(즉, 상기 제(N-1) 검증 레벨 및 상기 제N 검증 레벨 사이의 간격이 증가하며), 상기 제N 상태에 대한 마진이 증가하여 상기 데이터 리텐션 열화에 대한 신뢰성이 향상될 수 있다. 한편, 나머지 상태들 및 나머지 검증 레벨들은 유지될 수 있다.
단계 S330에서, 상기 변경된 제N 검증 레벨을 포함하는 상기 제1 내지 제N 검증 레벨들에 기초하여 상기 기입 데이터에 대한 프로그램 루프를 1회 이상 수행할 수 있다(단계 S332). 예를 들어, 상기 프로그램 루프는 프로그램 동작 및 프로그램 검증 동작을 포함할 수 있다. 예를 들어, 도 11의 하부에 도시된 문턱 전압 산포를 가지도록 상기 프로그램 루프가 반복될 수 있다.
일 실시예에서, 증가형 스텝 펄스 프로그램(Incremental Step Pulse Program; ISPP) 방식에 기초하여 단계 S332가 수행될 수 있다.
구체적으로, 도 12에 도시된 것처럼, 복수의 프로그램 루프들(PLOOP1, PLOOP2, PLOOP3, ..., PLOOPK)(K는 2 이상의 자연수)이 순차적으로 수행되며, 각 프로그램 루프마다 프로그램 전압(VPGM)을 이용한 프로그램 동작들(PO1, PO2, PO3, ..., POK) 중 하나 및 프로그램 검증 전압(VPV)을 이용한 프로그램 검증 동작들(PV1, PV2, PV3, ..., PVK) 중 하나가 순차적으로 수행될 수 있다. 현재 프로그램 루프의 프로그램 전압(VPGM)의 레벨은 이전 프로그램 루프의 프로그램 전압(VPGM)의 레벨보다 증가하며, 프로그램 검증 전압(VPV)은 일정한 검증 레벨(VPVL)을 유지할 수 있다. 예를 들어, 검증 레벨(VPVL)은 도 11의 검증 레벨들(VL2~VLN) 중 하나에 대응할 수 있다.
예를 들어, 프로그램 전압(VPGM)은 제1 프로그램 루프(PLOOP1)에서 초기 프로그램 레벨(VPLI)을 가지고, 제2 프로그램 루프(PLOOP2)에서 초기 프로그램 레벨(VPLI)보다 스텝 레벨(ΔVP)만큼 증가된 레벨을 가지고, 제3 프로그램 루프(PLOOP3)에서 제2 프로그램 루프(9LOOP2)의 레벨보다 스텝 레벨(ΔVP)만큼 증가된 레벨을 가지며, 마지막 제K 프로그램 루프(PLOOPK)에서 최종 프로그램 레벨(VPLF)을 가질 수 있다.
도 12에서는 프로그램 루프가 반복됨에 따라 프로그램 전압(VPGM)의 레벨만이 증가하는 것으로 도시하였으나, 본 발명은 이에 한정되지 않으며, 프로그램 검증 전압(VPV)의 레벨이 함께 증가할 수도 있다. 또한, 실시예에 따라서 프로그램 루프가 반복됨에 따라 프로그램 전압(VPGM)의 레벨이 감소하거나 및/또는 프로그램 검증 전압(VPV)의 레벨이 감소할 수도 있다. 한편, 도 12에서는 프로그램 루프가 반복됨에 따라 프로그램 전압(VPGM)의 레벨이 일정한 스텝 레벨(ΔVP)만큼 증가하는 것으로 도시하였으나, 본 발명은 이에 한정되지 않으며, 프로그램 전압(VPGM)의 변화량은 매 프로그램 루프마다 달라질 수도 있다.
도 13은 도 9의 프로그램 동작의 다른 예를 나타내는 순서도이다. 도 14 및 15는 도 13의 동작을 설명하기 위한 도면들이다. 이하 도 10, 11 및 12와 중복되는 설명은 생략한다.
도 9, 13, 14 및 15를 참조하면, 단계 S310에서, 제1 오프셋 정보를 수신할 수 있다(단계 S314). 상기 제1 오프셋 정보는 도 10의 단계 S312의 상기 제1 오프셋 정보와 유사하며, 다만 상기 최적 검증 레벨의 구성이 달라질 수 있다.
단계 S320에서, 단계 S322는 도 10의 단계 S322와 실질적으로 동일할 수 있다. 또한, 상기 제1 오프셋 정보에 기초하여, 상기 제1 내지 제N 검증 레벨들 중 단계 S322에서 변경된 상기 제N 검증 레벨을 제외한 상기 제1 내지 제(N-1) 검증 레벨들 중 적어도 하나를 추가적으로 변경할 수 있다(단계 S324). 단계 S322를 통해 상기 제N 상태에 대한 마진이 증가하도록 상기 제N 검증 레벨을 조절하더라도, 상기 문턱 전압 산포의 전체 폭은 일정하게 유지될 수 있으며, 이를 위해 단계 S324를 추가적으로 수행할 수 있다.
일 실시예에서, 도 14에 도시된 것처럼 검증 레벨이 조절될 수 있다. 도 14의 문턱 전압(VTH) 산포에서, 하부에 도시된 제1 내지 제N 상태들(E', P1, P2, ..., P(N-3), P(N-2), P(N-1)') 및 제1 내지 제N 검증 레벨들(VL1', VL2, VL3, ..., VL(N-2), VL(N-1), VLN')은 단계 S322 및 S324가 수행되어 검증 레벨이 조절된 경우를 나타낸다. 구체적으로, 단계 S322가 수행됨에 따라, 상기 제N 검증 레벨이 VLN에서 VLN'로 증가하며, 상기 제N 상태가 P(N-1)에서 P(N-1)'로 변화할 수 있다. 또한, 단계 S324가 수행됨에 따라, 상기 제1 검증 레벨이 VL1에서 VL1'로 증가하며, 상기 제1 상태가 E에서 E'로 변화할 수 있다.
다른 실시예에서, 도 15에 도시된 것처럼 검증 레벨이 조절될 수 있다. 도 15의 문턱 전압(VTH) 산포에서, 하부에 도시된 제1 내지 제N 상태들(E', P1', P2', ..., P(N-3)', P(N-2), P(N-1)') 및 제1 내지 제N 검증 레벨들(VL1', VL2', VL3', ..., VL(N-2)', VL(N-1), VLN')은 단계 S322 및 S324가 수행되어 검증 레벨이 조절된 경우를 나타낸다. 구체적으로, 단계 S322가 수행됨에 따라, 상기 제N 검증 레벨이 VLN에서 VLN'로 증가하며, 상기 제N 상태가 P(N-1)에서 P(N-1)'로 변화할 수 있다. 또한, 단계 S324가 수행됨에 따라, 상기 제1 내지 제(N-2) 검증 레벨들이 각각 VL1, VL2, VL3, ..., VL(N-2)에서 VL1', VL2', VL3', ..., VL(N-2)'로 증가하며, 상기 제1 내지 제(N-2) 상태들이 각각 E, P1, P2, ..., P(N-3)에서 E', P1', P2', ..., P(N-3)'으로 변화할 수 있다.
도 14 및 15에 도시된 것처럼 검증 레벨이 조절되는 경우에, 상기 제N 상태에 대한 마진이 증가하면서 동시에 문턱 전압(VTH) 산포의 전체 폭은 VDT로 일정하게 유지될 수 있다.
한편, 실시예에 따라서, 단계 S324가 추가적으로 수행되더라도 모든 프로그램 검증 레벨들 및 모든 프로그램 상태들이 변경되지는 않으며, 적어도 하나의 프로그램 검증 레벨 및 적어도 하나의 프로그램 상태는 유지될 수 있다. 예를 들어, 도 14에서는 프로그램 검증 레벨들(VL2~VL(N-1)) 및 프로그램 상태들(P1~P(N-2))이 변경되지 않고 유지되며, 도 15에서는 프로그램 검증 레벨(VL(N-1)) 및 프로그램 상태(P(N-2))가 변경되지 않고 유지될 수 있다.
단계 S330에서, 상기 변경된 검증 레벨들을 포함하는 상기 제1 내지 제N 검증 레벨들에 기초하여 상기 기입 데이터에 대한 프로그램 루프를 1회 이상 수행할 수 있다(단계 S334). 단계 S334는 도 10의 단계 S332와 실질적으로 동일할 수 있다. 예를 들어, 도 14 또는 도 15의 하부에 도시된 문턱 전압(VTH) 산포를 가지도록 상기 프로그램 루프가 반복될 수 있다.
도 16은 도 9의 프로그램 동작의 또 다른 예를 나타내는 순서도이다. 도 17은 도 16의 동작을 설명하기 위한 도면이다. 이하 도 10, 11 및 12와 중복되는 설명은 생략한다.
도 9, 16 및 17을 참조하면, 단계 S310에서, 제2 오프셋 정보를 수신할 수 있다(단계 S316). 예를 들어, 상기 제2 오프셋 정보는 상기 기입 데이터가 상기 독출 핫 데이터이고 상기 제2 열화 패턴에 대응함을 나타내며, 상기 독출 핫 데이터의 신뢰성 향상을 위한 최적 검증 레벨을 포함할 수 있다.
단계 S320에서, 상기 제2 오프셋 정보에 기초하여, 상기 제1 내지 제N 상태들 중 상기 제1 상태가 변화하도록 상기 제1 내지 제N 검증 레벨들 중 상기 제1 검증 레벨을 변경할 수 있다(단계 S326). 상술한 것처럼, 상기 독출 핫 데이터에 대해서는 가장 하위 상태인 상기 제1 상태에 대한 마진이 증가하도록 상기 제1 검증 레벨을 조절할 수 있다.
일 실시예에서, 도 17에 도시된 것처럼 검증 레벨이 조절될 수 있다. 도 17의 문턱 전압(VTH) 산포에서, 하부에 도시된 제1 내지 제N 상태들(E", P1, P2, ..., P(N-3), P(N-2), P(N-1)) 및 제1 내지 제N 검증 레벨들(VL1", VL2, VL3, ..., VL(N-2), VL(N-1), VLN)은 단계 S326이 수행되어 검증 레벨이 조절된 경우를 나타낸다.
구체적으로, 단계 S326이 수행됨에 따라, 가장 하위의 상기 제1 검증 레벨이 VL1에서 VL1"로 감소하며, 가장 하위의 상기 제1 상태가 E에서 E"로 변화할 수 있다. 따라서, 상기 제1 상태 및 상기 제2 상태 사이의 간격이 VD2에서 VD2'로 증가하며(즉, 상기 제1 검증 레벨 및 상기 제2 검증 레벨 사이의 간격이 증가하며), 상기 제1 상태에 대한 마진이 증가하여 상기 독출 디스터브 열화에 대한 신뢰성이 향상될 수 있다. 한편, 나머지 상태들 및 나머지 검증 레벨들은 유지될 수 있다.
단계 S330에서, 상기 변경된 제1 검증 레벨을 포함하는 상기 제1 내지 제N 검증 레벨들에 기초하여 상기 기입 데이터에 대한 프로그램 루프를 1회 이상 수행할 수 있다(단계 S336). 단계 S336은 도 10의 단계 S332와 실질적으로 동일할 수 있다. 예를 들어, 도 17의 하부에 도시된 문턱 전압(VTH) 산포를 가지도록 상기 프로그램 루프가 반복될 수 있다.
도 18은 도 9의 프로그램 동작의 또 다른 예를 나타내는 순서도이다. 도 19 및 20은 도 18의 동작을 설명하기 위한 도면들이다. 이하 도 10, 11, 12, 16 및 17과 중복되는 설명은 생략한다.
도 9, 18, 19 및 20을 참조하면, 단계 S310에서, 제2 오프셋 정보를 수신할 수 있다(단계 S318). 상기 제2 오프셋 정보는 도 16의 단계 S316의 상기 제2 오프셋 정보와 유사하며, 다만 상기 최적 검증 레벨의 구성이 달라질 수 있다.
단계 S320에서, 단계 S326은 도 16의 단계 S326과 실질적으로 동일할 수 있다. 또한, 상기 제2 오프셋 정보에 기초하여, 상기 제1 내지 제N 검증 레벨들 중 단계 S326에서 변경된 상기 제1 검증 레벨을 제외한 상기 제2 내지 제N 검증 레벨들 중 적어도 하나를 추가적으로 변경할 수 있다(단계 S328). 단계 S326을 통해 상기 제1 상태에 대한 마진이 증가하도록 상기 제1 검증 레벨을 조절하더라도, 상기 문턱 전압 산포의 전체 폭은 일정하게 유지될 수 있으며, 이를 위해 단계 S328을 추가적으로 수행할 수 있다.
일 실시예에서, 도 19에 도시된 것처럼 검증 레벨이 조절될 수 있다. 도 19의 문턱 전압(VTH) 산포에서, 하부에 도시된 제1 내지 제N 상태들(E", P1, P2, ..., P(N-3), P(N-2), P(N-1)") 및 제1 내지 제N 검증 레벨들(VL1", VL2, VL3, ..., VL(N-2), VL(N-1), VLN")은 단계 S326 및 S328이 수행되어 검증 레벨이 조절된 경우를 나타낸다. 구체적으로, 단계 S326이 수행됨에 따라, 상기 제1 검증 레벨이 VL1에서 VL1"로 감소하며, 상기 제1 상태가 E에서 E"로 변화할 수 있다. 또한, 단계 S328이 수행됨에 따라, 상기 제N 검증 레벨이 VLN에서 VLN"로 감소하며, 상기 제N 상태가 P(N-1)에서 P(N-1)"로 변화할 수 있다.
다른 실시예에서, 도 20에 도시된 것처럼 검증 레벨이 조절될 수 있다. 도 20의 문턱 전압(VTH) 산포에서, 하부에 도시된 제1 내지 제N 상태들(E", P1, P2", ..., P(N-3)", P(N-2)", P(N-1)") 및 제1 내지 제N 검증 레벨들(VL1", VL2, VL3", ..., VL(N-2)", VL(N-1)", VLN")은 단계 S326 및 S328이 수행되어 검증 레벨이 조절된 경우를 나타낸다. 구체적으로, 단계 S326이 수행됨에 따라, 상기 제1 검증 레벨이 VL1에서 VL1"로 감소하며, 상기 제1 상태가 E에서 E"로 변화할 수 있다. 또한, 단계 S328이 수행됨에 따라, 상기 제3 내지 제N 검증 레벨들이 각각 VL3, ..., VL(N-2), VL(N-1), VLN에서 VL3", ..., VL(N-2)", VL(N-1)", VLN"로 감소하며, 상기 제3 내지 제N 상태들이 각각 P2, ..., P(N-3), P(N-2), P(N-1)에서 P2", ..., P(N-3)", P(N-2)", P(N-1)"으로 변화할 수 있다.
도 19 및 20에 도시된 것처럼 검증 레벨이 조절되는 경우에, 상기 제1 상태에 대한 마진이 증가하면서 동시에 문턱 전압(VTH) 산포의 전체 폭은 VDT로 일정하게 유지될 수 있다.
한편, 실시예에 따라서, 단계 S328이 추가적으로 수행되더라도 모든 프로그램 검증 레벨들 및 모든 프로그램 상태들이 변경되지는 않으며, 적어도 하나의 프로그램 검증 레벨 및 적어도 하나의 프로그램 상태는 유지될 수 있다. 예를 들어, 도 19에서는 프로그램 검증 레벨들(VL2~VL(N-1)) 및 프로그램 상태들(P1~P(N-2))이 변경되지 않고 유지되며, 도 20에서는 프로그램 검증 레벨(VL2) 및 프로그램 상태(P1)가 변경되지 않고 유지될 수 있다.
단계 S330에서, 상기 변경된 검증 레벨들을 포함하는 상기 제1 내지 제N 검증 레벨들에 기초하여 상기 기입 데이터에 대한 프로그램 루프를 1회 이상 수행할 수 있다(단계 S338). 단계 S338은 도 16의 단계 S336과 실질적으로 동일할 수 있다. 예를 들어, 도 19 또는 도 20의 하부에 도시된 문턱 전압(VTH) 산포를 가지도록 상기 프로그램 루프가 반복될 수 있다.
한편, 도 10 내지 15를 참조하여 상기 제N 상태에 대한 마진만 증가하는 것으로(즉, 상기 제(N-1) 상태 및 상기 제N 상태 사이의 간격만이 VD1에서 VD1'로 증가하는 것으로) 설명하였고, 도 16 내지 20을 참조하여 상기 제1 상태에 대한 마진만 증가하는 것으로(즉, 상기 제1 상태 및 상기 제2 상태 사이의 간격만이 VD2에서 VD2'로 증가하는 것으로) 설명하였으나, 본 발명은 이에 한정되지 않으며, 적어도 하나의 다른 상태에 대한 마진이 추가적으로 변경될 수도 있다. 예를 들어, 도 8을 참조하여 상술한 것처럼 각 페이지의 에러 비트에 영향을 주는 적어도 하나의 다른 상태에 대한 마진이 추가적으로 변경될 수도 있다.
한편, 도 8 내지 20을 참조하여 상기 기입 데이터의 특정 입출력 패턴, 특정 열화 패턴, 특정 문턱 전압 산포, 특정 검증 레벨에 기초하여 본 발명의 실시예들을 설명하였으나, 본 발명은 이에 한정되지 않으며, 상기 기입 데이터의 입출력 패턴이 산포 열화를 유발하는 임의의 열화 패턴에 대응하는 경우에, 신뢰성 향상을 위해 임의의 문턱 전압 산포의 임의의 검증 레벨을 조절하는 것으로 확대 적용될 수 있다.
도 21 및 22는 본 발명의 실시예들에 따른 비휘발성 메모리 장치의 데이터 기입 방법을 나타내는 블록도이다. 이하 도 1과 중복되는 설명은 생략한다.
도 21을 참조하면, 본 발명의 실시예들에 따른 비휘발성 메모리 장치의 데이터 기입 방법에서, 단계 S100은 도 1의 단계 S100과 실질적으로 동일할 수 있다.
상기 기입 데이터의 입출력 패턴을 판단하여 상기 기입 데이터가 상기 산포 열화 패턴에 대응하는지 판단한다(단계 S410).
상기 기입 데이터가 상기 산포 열화 패턴에 대응하는 경우에(단계 S410: 예), 상기 오프셋 정보를 수신한다(단계 S420). 단계 S410 및 S420은 도 1의 단계 S200에 대응할 수 있다. 상기 오프셋 정보가 수신된 경우에 수행되는 단계 S300은 도 1의 단계 S300과 실질적으로 동일할 수 있다.
상기 기입 데이터가 상기 산포 열화 패턴에 대응하지 않는 경우에(단계 S410: 아니오), 상기 오프셋 정보를 미수신하고(단계 S430), 상기 오프셋 정보가 미수신된 경우에, 상기 기입 데이터가 저장되는 상기 메모리 셀들의 상기 문턱 전압 산포에 포함되는 상기 복수의 상태들 모두가 유지되도록 상기 기입 데이터를 프로그램한다(단계 S500). 예를 들어, 도 11 등의 상부에 도시된 문턱 전압 산포를 가지도록 프로그램 루프가 반복될 수 있다.
도 22를 참조하면, 본 발명의 실시예들에 따른 비휘발성 메모리 장치의 데이터 기입 방법에서, 단계 S100, S200 및 S300은 각각 도 1의 단계 S100, S200 및 S300과 실질적으로 동일할 수 있다.
상기 최적 검증 레벨을 선택하는데 이용되는 상기 룩업 테이블을 실시간으로 업데이트한다(단계 S600). 상기 룩업 테이블은 단계 S200에서 상기 오프셋 정보를 생성하는데 이용되며, 도 8의 단계 S230을 수행하는데 이용될 수 있다. 예를 들어, 도 6의 룩업 테이블(436)이 상기 룩업 테이블에 대응할 수 있다.
일 실시예에서, 프로그램/소거 사이클(P/E cycle) 정보에 기초하여 상기 룩업 테이블이 실시간으로 업데이트될 수 있다. 다른 실시예에서, 상기 비휘발성 메모리 장치의 동작/특성과 관련된 그 밖에 적어도 하나의 다른 정보에 기초하여 상기 룩업 테이블이 실시간으로 업데이트될 수 있다.
한편, 본 발명의 실시예들은 컴퓨터로 판독 가능한 매체에 저장된 컴퓨터로 판독 가능한 프로그램 코드를 포함하는 제품 등의 형태로 구현될 수도 있다. 상기 컴퓨터로 판독 가능한 프로그램 코드는 다양한 컴퓨터 또는 다른 데이터 처리 장치의 프로세서로 제공될 수 있다. 상기 컴퓨터로 판독 가능한 매체는 컴퓨터로 판독 가능한 신호 매체 또는 컴퓨터로 판독 가능한 기록 매체일 수 있다. 상기 컴퓨터로 판독 가능한 기록 매체는 명령어 실행 시스템, 장비 또는 장치 내에 또는 이들과 접속되어 프로그램을 저장하거나 포함할 수 있는 임의의 유형적인 매체일 수 있다. 예를 들어, 상기 컴퓨터로 판독 가능한 매체는 비일시적(non-transitory) 저장 매체의 형태로 제공될 수 있다. 여기서, 비일시적은 저장 매체가 신호(signal)를 포함하지 않으며 실재(tangible)한다는 것을 의미할 뿐 데이터가 저장 매체에 반영구적 또는 임시적으로 저장됨을 구분하지 않는다.
도 23은 본 발명의 실시예들에 따른 스토리지 장치 및 이를 포함하는 스토리지 시스템을 나타내는 블록도이다.
도 23을 참조하면, 스토리지 시스템(1000)은 호스트 장치(1100) 및 스토리지 장치(1200)를 포함한다.
호스트 장치(1100)는 스토리지 시스템(1000)의 전반적인 동작을 제어한다. 예를 들어, 호스트 장치(1100)는 호스트 장치(1100)의 동작을 제어하고 운영 체제(Operating System; OS)를 실행하는 호스트 프로세서, 및 상기 호스트 프로세서에 의해 실행 및 처리되는 명령어(instruction) 및 데이터를 저장하는 호스트 메모리를 포함할 수 있다.
스토리지 장치(1200)는 호스트 장치(1100)에 의해 액세스되고, 스토리지 컨트롤러(1210), 복수의 비휘발성 메모리들(1220a, 1220b, 1220c) 및 버퍼 메모리(1230)를 포함한다.
스토리지 컨트롤러(1210)는 스토리지 장치(1200)의 동작을 제어할 수 있다. 복수의 비휘발성 메모리들(1220a, 1220b, 1220c)은 복수의 데이터들을 저장할 수 있다. 버퍼 메모리(1230)는 스토리지 컨트롤러(1210)에 의해 실행 및 처리되는 명령어 및 데이터를 저장할 수 있고, 복수의 비휘발성 메모리들(1220a, 1220b, 1220c)에 저장되어 있거나 저장하고자 하는 데이터를 임시로 저장할 수 있다. 도 2 및 7의 메모리 시스템(10, 50)이 스토리지 장치(1200)의 형태로 구현될 수 있으며, 스토리지 컨트롤러(1210) 및 비휘발성 메모리들(1220a, 1220b, 1220c)이 각각 도 2 및 7의 메모리 컨트롤러(20, 600) 및 메모리 장치(40, 500)에 대응할 수 있다.
스토리지 컨트롤러(1210)에 포함되는 파라미터 관리자(PM)(1212)는 도 6의 파라미터 관리자(430)에 대응할 수 있다. 실시예에 따라서, 스토리지 컨트롤러(1210)는 기입 데이터의 입출력 패턴 검출을 위한 NPU(neural processing unit)(1214)를 더 포함할 수 있다.
일 실시예에서, 스토리지 장치(1200)는 SSD(Solid State Drive), UFS(Universal Flash Storage), MMC(Multi Media Card) 또는 eMMC(embedded MMC)일 수 있다. 다른 실시예에서, 스토리지 장치(1200)는 SD(Secure Digital) 카드, 마이크로 SD 카드, 메모리 스틱(memory stick), 칩 카드(chip card), USB(Universal Serial Bus) 카드, 스마트 카드(smart card), CF(Compact Flash) 카드 또는 이와 유사한 형태로 구현될 수 있다.
본 발명의 실시예들은 비휘발성 메모리 장치 및 스토리지 장치를 포함하는 임의의 전자 장치 및 시스템에 유용하게 이용될 수 있다. 예를 들어, 본 발명의 실시예들은 PC(Personal Computer), 서버 컴퓨터(server computer), 데이터 센터(data center), 워크스테이션(workstation), 노트북(laptop), 핸드폰(cellular), 스마트 폰(smart phone), MP3 플레이어, PDA(Personal Digital Assistant), PMP(Portable Multimedia Player), 디지털 TV, 디지털 카메라, 포터블 게임 콘솔(portable game console), 네비게이션(navigation) 기기, 웨어러블(wearable) 기기, IoT(Internet of Things) 기기, IoE(Internet of Everything) 기기, e-북(e-book), VR(Virtual Reality) 기기, AR(Augmented Reality) 기기, 드론(drone) 등과 같은 전자 시스템에 더욱 유용하게 적용될 수 있다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술분야의 숙련된 당업자는 하기의 특허청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 것이다.

Claims (20)

  1. 기입 커맨드, 기입 어드레스 및 프로그램하고자 하는 기입 데이터를 수신하는 단계;
    상기 기입 데이터의 입출력 패턴을 판단하여 상기 기입 데이터가 미리 정해진 산포 열화 패턴에 대응하는 경우에 제공되고 검증 레벨을 나타내는 오프셋 정보를 수신하는 단계; 및
    상기 오프셋 정보가 수신된 경우에, 상기 기입 데이터가 저장되는 메모리 셀들의 문턱 전압 산포에 포함되는 복수의 상태들 중 일부 상태가 변화하도록 상기 오프셋 정보에 기초하여 상기 기입 데이터를 프로그램하는 단계를 포함하는 비휘발성 메모리 장치의 데이터 기입 방법.
  2. 제 1 항에 있어서,
    상기 산포 열화 패턴은 데이터 리텐션(retention) 특성에 대한 제1 열화 패턴 및 독출 디스터브(read disturb) 특성에 대한 제2 열화 패턴을 포함하는 것을 특징으로 하는 비휘발성 메모리 장치의 데이터 기입 방법.
  3. 제 2 항에 있어서,
    상기 기입 데이터가 미리 정해진 제1 횟수보다 적게 기입되는 기입 콜드(cold) 데이터인 경우에, 상기 기입 데이터가 상기 제1 열화 패턴에 대응하는 것으로 판단하고,
    상기 기입 데이터가 미리 정해진 제2 횟수보다 많이 독출되는 독출 핫(hot) 데이터인 경우에, 상기 기입 데이터가 상기 제2 열화 패턴에 대응하는 것으로 판단하는 것을 특징으로 하는 비휘발성 메모리 장치의 데이터 기입 방법.
  4. 제 2 항에 있어서,
    상기 복수의 상태들은 제1 상태 내지 제N(N은 2 이상의 자연수) 상태를 포함하고, 상기 제1 상태는 가장 낮은 전압 레벨에 대응하고 상기 제N 상태는 가장 높은 전압 레벨에 대응하며,
    상기 기입 데이터가 상기 제1 열화 패턴에 대응하는 경우에, 제(N-1) 상태 및 상기 제N 상태 사이의 간격이 증가하도록 상기 기입 데이터를 프로그램하며,
    상기 기입 데이터가 상기 제2 열화 패턴에 대응하는 경우에, 상기 제1 상태 및 제2 상태 사이의 간격이 증가하도록 상기 기입 데이터를 프로그램하는 것을 특징으로 하는 비휘발성 메모리 장치의 데이터 기입 방법.
  5. 제 1 항에 있어서, 상기 오프셋 정보를 수신하는 단계는,
    상기 기입 데이터의 입출력 패턴을 검출하는 단계;
    상기 기입 데이터가 상기 산포 열화 패턴에 대응하여 상기 검증 레벨의 변경이 필요한 경우에, 최적 검증 레벨을 선택하는 단계; 및
    상기 최적 검증 레벨을 포함하는 상기 오프셋 정보를 생성하여 제공하는 단계를 포함하는 것을 특징으로 하는 비휘발성 메모리 장치의 데이터 기입 방법.
  6. 제 5 항에 있어서,
    상기 기입 어드레스에 기초하여 상기 기입 데이터의 입출력 패턴이 검출되는 것을 특징으로 하는 비휘발성 메모리 장치의 데이터 기입 방법.
  7. 제 5 항에 있어서,
    상기 기입 데이터의 액세스 횟수에 기초하여 상기 기입 데이터의 입출력 패턴이 검출되는 것을 특징으로 하는 비휘발성 메모리 장치의 데이터 기입 방법.
  8. 제 5 항에 있어서,
    미리 설정된 룩업 테이블(Look-Up Table; LUT)에 기초하여 상기 최적 검증 레벨이 선택되는 것을 특징으로 하는 비휘발성 메모리 장치의 데이터 기입 방법.
  9. 제 8 항에 있어서,
    상기 최적 검증 레벨을 선택하는데 이용되는 상기 룩업 테이블을 실시간으로 업데이트하는 단계를 더 포함하는 것을 특징으로 하는 비휘발성 메모리 장치의 데이터 기입 방법.
  10. 제 5 항에 있어서, 상기 오프셋 정보를 수신하는 단계는,
    상기 최적 검증 레벨을 저장하는 단계를 더 포함하는 것을 특징으로 하는 비휘발성 메모리 장치의 데이터 기입 방법.
  11. 제 1 항에 있어서,
    상기 복수의 상태들은 제1 상태 내지 제N(N은 2 이상의 자연수) 상태를 포함하고, 상기 제1 상태는 가장 낮은 전압 레벨에 대응하고 상기 제N 상태는 가장 높은 전압 레벨에 대응하며,
    상기 오프셋 정보에 기초하여 상기 기입 데이터를 프로그램하는 단계는,
    상기 오프셋 정보에 기초하여, 상기 제N 상태가 변화하도록 상기 제1 상태 내지 상기 제N 상태에 대응하는 제1 검증 레벨 내지 제N 검증 레벨 중 상기 제N 검증 레벨을 변경하는 단계; 및
    상기 변경된 제N 검증 레벨을 포함하는 상기 제1 검증 레벨 내지 상기 제N 검증 레벨에 기초하여 상기 기입 데이터에 대한 프로그램 루프(loop)를 1회 이상 수행하는 단계를 포함하는 것을 특징으로 하는 비휘발성 메모리 장치의 데이터 기입 방법.
  12. 제 11 항에 있어서,
    상기 제N 검증 레벨은 증가하며, 제(N-1) 상태 및 상기 제N 상태 사이의 간격은 증가하는 것을 특징으로 하는 비휘발성 메모리 장치의 데이터 기입 방법.
  13. 제 11 항에 있어서, 상기 오프셋 정보에 기초하여 상기 기입 데이터를 프로그램하는 단계는,
    상기 오프셋 정보에 기초하여, 상기 제1 검증 레벨 내지 제(N-1) 검증 레벨 중 적어도 하나를 추가적으로 변경하는 단계를 더 포함하는 것을 특징으로 하는 비휘발성 메모리 장치의 데이터 기입 방법.
  14. 제 13 항에 있어서,
    상기 제1 검증 레벨 내지 상기 제N 검증 레벨 중 적어도 하나가 변경되더라도, 상기 문턱 전압 산포의 전체 폭은 일정하게 유지되는 것을 특징으로 하는 비휘발성 메모리 장치의 데이터 기입 방법.
  15. 제 1 항에 있어서,
    상기 복수의 상태들은 제1 상태 내지 제N(N은 2 이상의 자연수) 상태를 포함하고, 상기 제1 상태는 가장 낮은 전압 레벨에 대응하고 상기 제N 상태는 가장 높은 전압 레벨에 대응하며,
    상기 오프셋 정보에 기초하여 상기 기입 데이터를 프로그램하는 단계는,
    상기 오프셋 정보에 기초하여, 상기 제1 상태가 변화하도록 상기 제1 상태 내지 상기 제N 상태에 대응하는 제1 검증 레벨 내지 제N 검증 레벨 중 상기 제1 검증 레벨을 변경하는 단계; 및
    상기 변경된 제1 검증 레벨을 포함하는 상기 제1 검증 레벨 내지 상기 제N 검증 레벨에 기초하여 상기 기입 데이터에 대한 프로그램 루프를 1회 이상 수행하는 단계를 포함하는 것을 특징으로 하는 비휘발성 메모리 장치의 데이터 기입 방법.
  16. 제 15 항에 있어서,
    상기 제1 검증 레벨은 감소하며, 상기 제1 상태 및 제2 상태 사이의 간격은 증가하는 것을 특징으로 하는 비휘발성 메모리 장치의 데이터 기입 방법.
  17. 제 15 항에 있어서, 상기 오프셋 정보에 기초하여 상기 기입 데이터를 프로그램하는 단계는,
    상기 오프셋 정보에 기초하여, 제2 검증 레벨 내지 상기 제N 검증 레벨 중 적어도 하나를 추가적으로 변경하는 단계를 더 포함하는 것을 특징으로 하는 비휘발성 메모리 장치의 데이터 기입 방법.
  18. 제 1 항에 있어서,
    상기 기입 데이터가 상기 산포 열화 패턴에 대응하지 않는 경우에 상기 오프셋 정보를 미수신하는 단계; 및
    상기 오프셋 정보가 미수신된 경우에, 상기 복수의 상태들 모두가 유지되도록 상기 기입 데이터를 프로그램하는 단계를 포함하는 것을 특징으로 하는 비휘발성 메모리 장치의 데이터 기입 방법.
  19. 복수의 메모리 셀들을 포함하는 메모리 셀 어레이; 및
    기입 커맨드, 기입 어드레스 및 프로그램하고자 하는 기입 데이터를 수신하고, 상기 기입 데이터의 입출력 패턴을 판단하여 상기 기입 데이터가 미리 정해진 산포 열화 패턴에 대응하는 경우에 제공되고 검증 레벨을 나타내는 오프셋 정보를 수신하며, 상기 오프셋 정보가 수신된 경우에 상기 기입 데이터가 저장되는 메모리 셀들의 문턱 전압 산포에 포함되는 복수의 상태들 중 일부 상태가 변화하도록 상기 오프셋 정보에 기초하여 상기 기입 데이터를 프로그램하는 제어 회로를 포함하는 비휘발성 메모리 장치.
  20. 메모리 컨트롤러 및 비휘발성 메모리 장치를 포함하는 메모리 시스템의 구동 방법으로서,
    상기 메모리 컨트롤러가 기입 커맨드, 기입 어드레스 및 프로그램하고자 하는 기입 데이터를 상기 비휘발성 메모리 장치로 전송하는 단계;
    상기 메모리 컨트롤러가 상기 기입 데이터의 입출력 패턴을 검출하는 단계;
    상기 기입 데이터가 미리 정해진 제1 횟수보다 적게 기입되는 기입 콜드(cold) 데이터 또는 미리 정해진 제2 횟수보다 많이 독출되는 독출 핫(hot) 데이터로 판단된 경우에, 상기 메모리 컨트롤러가 최적 검증 레벨을 선택하는 단계;
    상기 메모리 컨트롤러가 상기 최적 검증 레벨을 포함하는 오프셋 정보를 생성하여 상기 비휘발성 메모리 장치로 전송하는 단계;
    상기 비휘발성 메모리 장치가 상기 오프셋 정보에 기초하여 문턱 전압 산포에 포함되는 제1 상태 내지 제N(N은 2 이상의 자연수) 상태에 대응하는 제1 검증 레벨 내지 제N 검증 레벨 중 적어도 하나를 변경하는 단계; 및
    상기 비휘발성 메모리 장치가 상기 제1 검증 레벨 내지 상기 제N 검증 레벨에 기초하여 상기 제1 상태 내지 제N 상태 중 일부 상태가 변화하도록 상기 기입 데이터에 대한 프로그램 루프(loop)를 1회 이상 수행하는 단계를 포함하고,
    상기 제1 상태는 가장 낮은 전압 레벨에 대응하고, 상기 제N 상태는 가장 높은 전압 레벨에 대응하며,
    상기 기입 데이터가 상기 기입 콜드 데이터인 경우에 제(N-1) 상태 및 상기 제N 상태 사이의 간격이 증가하도록 변화하고, 상기 기입 데이터가 독출 핫 데이터인 경우에 상기 제1 상태 및 제2 상태 사이의 간격이 증가하도록 변화하는 메모리 시스템의 구동 방법.
KR1020200163790A 2020-11-30 2020-11-30 비휘발성 메모리 장치의 데이터 기입 방법, 이를 수행하는 비휘발성 메모리 장치 및 이를 이용한 메모리 시스템의 구동 방법 KR20220075571A (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020200163790A KR20220075571A (ko) 2020-11-30 2020-11-30 비휘발성 메모리 장치의 데이터 기입 방법, 이를 수행하는 비휘발성 메모리 장치 및 이를 이용한 메모리 시스템의 구동 방법
DE102021119963.8A DE102021119963A1 (de) 2020-11-30 2021-08-02 Verfahren zum schreiben von daten in eine nichtflüchtigespeichervorrichtung, nichtflüchtige speichervorrichtung, die dieses verfahren durchführt und verfahren zum betrieb eines speichersystems, das dieses verfahren verwendet
US17/393,797 US11862261B2 (en) 2020-11-30 2021-08-04 Method of writing data in nonvolatile memory device, nonvolatile memory device performing the same and method of operating memory system using the same
CN202111228000.3A CN114582401A (zh) 2020-11-30 2021-10-21 在非易失性存储器件中写入数据的方法、非易失性存储器件和操作存储系统的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200163790A KR20220075571A (ko) 2020-11-30 2020-11-30 비휘발성 메모리 장치의 데이터 기입 방법, 이를 수행하는 비휘발성 메모리 장치 및 이를 이용한 메모리 시스템의 구동 방법

Publications (1)

Publication Number Publication Date
KR20220075571A true KR20220075571A (ko) 2022-06-08

Family

ID=81586179

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200163790A KR20220075571A (ko) 2020-11-30 2020-11-30 비휘발성 메모리 장치의 데이터 기입 방법, 이를 수행하는 비휘발성 메모리 장치 및 이를 이용한 메모리 시스템의 구동 방법

Country Status (4)

Country Link
US (1) US11862261B2 (ko)
KR (1) KR20220075571A (ko)
CN (1) CN114582401A (ko)
DE (1) DE102021119963A1 (ko)

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100732631B1 (ko) 2006-02-01 2007-06-27 삼성전자주식회사 전하 손실로 인해 감소된 읽기 마진을 보상할 수 있는플래시 메모리 장치의 프로그램 방법
KR101226685B1 (ko) 2007-11-08 2013-01-25 삼성전자주식회사 수직형 반도체 소자 및 그 제조 방법.
KR101691092B1 (ko) 2010-08-26 2016-12-30 삼성전자주식회사 불휘발성 메모리 장치, 그것의 동작 방법, 그리고 그것을 포함하는 메모리 시스템
US8553466B2 (en) 2010-03-04 2013-10-08 Samsung Electronics Co., Ltd. Non-volatile memory device, erasing method thereof, and memory system including the same
US9536970B2 (en) 2010-03-26 2017-01-03 Samsung Electronics Co., Ltd. Three-dimensional semiconductor memory devices and methods of fabricating the same
KR101682666B1 (ko) 2010-08-11 2016-12-07 삼성전자주식회사 비휘발성 메모리 장치, 그것의 채널 부스팅 방법, 그것의 프로그램 방법 및 그것을 포함하는 메모리 시스템
KR101942863B1 (ko) 2012-06-19 2019-01-28 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 프로그램 방법
US9025374B2 (en) * 2012-12-13 2015-05-05 Sandisk Technologies Inc. System and method to update read voltages in a non-volatile memory in response to tracking data
US9431125B2 (en) * 2013-03-15 2016-08-30 Sandisk Technologies Llc Method and system for adaptive setting of verify levels in flash memory
US10096355B2 (en) 2015-09-01 2018-10-09 Sandisk Technologies Llc Dynamic management of programming states to improve endurance
KR102456118B1 (ko) 2016-02-24 2022-10-19 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
JP2018005961A (ja) * 2016-07-01 2018-01-11 東芝メモリ株式会社 記憶装置
KR102395196B1 (ko) 2017-10-17 2022-05-06 삼성전자주식회사 파라미터 교정 기능을 갖는 스토리지 장치 및 상기 스토리지 장치의 동작 방법
KR102421103B1 (ko) 2018-01-04 2022-07-14 에스케이하이닉스 주식회사 컨트롤러, 이를 포함하는 메모리 시스템 및 그것들의 동작 방법
KR102070307B1 (ko) * 2018-05-28 2020-01-23 에센코어 리미티드 저장 장치의 구동 방법

Also Published As

Publication number Publication date
DE102021119963A1 (de) 2022-06-02
CN114582401A (zh) 2022-06-03
US20220172794A1 (en) 2022-06-02
US11862261B2 (en) 2024-01-02

Similar Documents

Publication Publication Date Title
KR102302187B1 (ko) 비휘발성 메모리 장치의 동작 방법 및 비휘발성 메모리 장치
KR102609130B1 (ko) 읽기 전압 서치 유닛을 포함하는 데이터 저장 장치
KR102290974B1 (ko) 불휘발성 메모리 장치, 메모리 컨트롤러 및 그것들을 포함하는 불휘발성 메모리 시스템의 동작 방법
KR102190241B1 (ko) 메모리 컨트롤러의 동작 방법 및 불휘발성 메모리 시스템
KR102154620B1 (ko) 비휘발성 메모리 장치의 소거 방법 및 그것을 포함하는 저장 장치
KR102648785B1 (ko) 반도체 메모리 장치 및 그 동작 방법
KR101891164B1 (ko) 프로그램 스케줄러를 포함하는 플래시 메모리 장치
CN107403636B (zh) 读取非易失性存储设备的方法
KR102452994B1 (ko) 반도체 메모리 장치 및 그 동작 방법
KR102360211B1 (ko) 메모리 시스템의 동작 방법
KR20180023190A (ko) 메모리 시스템 및 메모리 시스템의 동작 방법
KR102375751B1 (ko) 반도체 메모리 장치 및 그 동작 방법
KR20220006467A (ko) 기계 학습에 기반한 오류 정정을 수행하는 메모리 장치 및 이의 동작 방법
KR20180073885A (ko) 반도체 메모리 장치 및 이의 동작 방법
KR20180065268A (ko) 반도체 메모리 장치 및 그 동작 방법
KR20230025273A (ko) 반도체 메모리 장치 및 그 동작 방법
KR20140026117A (ko) 반도체 메모리 장치
KR102475445B1 (ko) 메모리 장치 및 이의 동작 방법
KR102460717B1 (ko) 최적 독출 레벨을 산출하는 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 메모리 컨트롤러의 동작방법
US10679705B2 (en) Controller and operating method thereof
KR20100045739A (ko) 불휘발성 메모리 장치, 그것의 프로그램 방법, 그리고 그것을 포함하는 메모리 시스템
KR20220090885A (ko) 비휘발성 메모리 장치의 잔여 수명 예측 방법 및 이를 수행하는 스토리지 장치
US11869598B2 (en) Nonvolatile memory devices having adaptive write/read control to improve read reliability and methods of operating the same
CN115206397A (zh) 存储器系统及操作存储器系统的方法
KR20220075571A (ko) 비휘발성 메모리 장치의 데이터 기입 방법, 이를 수행하는 비휘발성 메모리 장치 및 이를 이용한 메모리 시스템의 구동 방법