KR20220057354A - 문턱 전압 산포 특성을 향상한 메모리 컨트롤러, 메모리 시스템 및 그 동작 방법 - Google Patents

문턱 전압 산포 특성을 향상한 메모리 컨트롤러, 메모리 시스템 및 그 동작 방법 Download PDF

Info

Publication number
KR20220057354A
KR20220057354A KR1020200142526A KR20200142526A KR20220057354A KR 20220057354 A KR20220057354 A KR 20220057354A KR 1020200142526 A KR1020200142526 A KR 1020200142526A KR 20200142526 A KR20200142526 A KR 20200142526A KR 20220057354 A KR20220057354 A KR 20220057354A
Authority
KR
South Korea
Prior art keywords
program
memory
cells
fast
threshold voltage
Prior art date
Application number
KR1020200142526A
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 KR1020200142526A priority Critical patent/KR20220057354A/ko
Priority to US17/384,219 priority patent/US11894079B2/en
Publication of KR20220057354A publication Critical patent/KR20220057354A/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/3436Arrangements for verifying correct programming or erasure
    • G11C16/3468Prevention of overerasure or overprogramming, e.g. by verifying whilst erasing or writing
    • G11C16/3486Circuits or methods to prevent overprogramming of nonvolatile memory cells, e.g. by detecting onset or cessation of current flow in cells and using the detector output to terminate programming
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/14Circuits for erasing electrically, e.g. erase voltage switching circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • 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
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/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/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/3436Arrangements for verifying correct programming or erasure
    • G11C16/344Arrangements for verifying correct erasure or for detecting overerased cells
    • G11C16/3445Circuits or methods to verify correct erasure 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/3436Arrangements for verifying correct programming or erasure
    • G11C16/344Arrangements for verifying correct erasure or for detecting overerased cells
    • G11C16/345Circuits or methods to detect overerased nonvolatile memory cells, usually during erasure verification
    • 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/3436Arrangements for verifying correct programming or erasure
    • G11C16/3454Arrangements for verifying correct programming or for detecting overprogrammed cells
    • G11C16/3463Circuits or methods to detect overprogrammed nonvolatile memory cells, usually during program verification
    • 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/3468Prevention of overerasure or overprogramming, e.g. by verifying whilst erasing or writing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7206Reconfiguration of flash memory system

Abstract

문턱 전압 산포 특성을 향상한 메모리 컨트롤러, 메모리 시스템 및 그 동작 방법이 개시된다. 본 개시의 기술적 사상의 일측면에 따른 복수의 메모리 셀들을 포함하는 메모리 시스템의 동작 방법은, 상기 메모리 셀들을 프리 프로그램하고, 제1 문턱 전압 레벨을 갖도록 이레이즈하는 단계와 상기 이레이즈의 결과로서, 상기 메모리 셀들 중 상기 제1 문턱 전압 레벨보다 낮은 제2 문턱 전압 레벨 이하의 문턱 전압을 갖는 적어도 하나 이상의 패스트 셀들을 검출하는 단계와 상기 패스트 셀들을 대상으로 오버 프로그램 동작을 수행하는 단계를 포함하고, 상기 오버 프로그램 동작은, 상기 패스트 셀들의 문턱 전압을 상기 제2 문턱 전압 레벨보다 높은 제3 문턱 전압 레벨로 설정하는 것을 특징으로 한다.

Description

문턱 전압 산포 특성을 향상한 메모리 컨트롤러, 메모리 시스템 및 그 동작 방법{MEMORY CONTROLLER AND MEMORY SYSTEM IMPROVING THRESHOLD VOLTAGE DISTRIBUTION CHARACTERISTIC AND OPERATING METHOD THEREOF}
본 발명의 기술적 사상은 메모리 시스템에 관한 것으로서, 상세하게는 문턱 전압 산포 특성을 향상한 메모리 컨트롤러, 메모리 시스템 및 그 동작 방법에 관한 것이다.
메모리 시스템은 메모리 컨트롤러와 메모리 장치를 포함할 수 있으며, 메모리 장치의 한 종류로서 비휘발성 메모리 장치는 데이터를 비휘발성하게 저장하는 다수의 메모리 셀들을 포함할 수 있다. 또한, 비휘발성 메모리로서 플래시 메모리는 메모리 셀들의 문턱 전압을 변화시킴으로써 데이터를 프로그램할 수 있고, 미리 정해진 독출 레벨을 이용하여 데이터를 독출할 수 있다.
그러나, 다양한 원인들에 기인하여 메모리 셀들에 열화가 발생할 수 있고, 각 메모리 셀들의 열화 정도는 메모리 셀의 구조적 특성 또는 환경적 특성에 따라 달라질 수 있다. 즉 모든 메모리 셀을 동일한 조건으로 프로그램하는 경우 각 메모리 셀의 열화 정도가 다름에 따라 데이터의 신뢰성이 저하될 수 있다.
본 개시의 기술적 사상이 해결하려는 과제는, 열화가 빠를 것으로 예상되는 패스트 셀을 검출하고, 패스트 셀에 대해 오버 프로그램을 수행하여 문턱 전압 산포 특성을 향상한 메모리 컨트롤러, 메모리 시스템 및 그 동작 방법을 제공하는 데 있다.
상기와 같은 목적을 달성하기 위하여, 본 개시의 기술적 사상의 일측면에 따른 복수의 메모리 셀들을 포함하는 메모리 시스템의 동작 방법은, 상기 메모리 셀들을 프리 프로그램하고, 제1 문턱 전압 레벨을 갖도록 이레이즈하는 단계와 상기 이레이즈의 결과로서, 상기 메모리 셀들 중 상기 제1 문턱 전압 레벨보다 낮은 제2 문턱 전압 레벨 이하의 문턱 전압을 갖는 적어도 하나 이상의 패스트 셀들을 검출하는 단계와 상기 패스트 셀들을 대상으로 오버 프로그램 동작을 수행하는 단계를 포함하고, 상기 오버 프로그램 동작은, 상기 패스트 셀들의 문턱 전압을 상기 제2 문턱 전압 레벨보다 높은 제3 문턱 전압 레벨로 설정하는 것을 특징으로 한다.
한편, 본 개시의 기술적 사상의 일측면에 따른 복수의 메모리 셀들을 포함하는 메모리 장치를 제어하는 메모리 컨트롤러는, 상기 복수의 메모리 셀들을 프리 프로그램하고, 제1 문턱 전압 레벨을 갖도록 이레이즈하고, 상기 이레이즈의 결과로 생성된 문턱 전압 분포를 기초로 적어도 하나 이상의 패스트 셀들을 검출하는 오버 프로그램 제어기와 검출된 상기 패스트 셀들의 정보를 저장하는 버퍼를 포함하고, 상기 오버 프로그램 제어기는, 상기 버퍼에 저장된 상기 패스트 셀들의 정보를 기초로, 상기 복수의 메모리 셀들의 프로그램이 수행되도록 상기 메모리 장치를 제어하는 것을 특징으로 한다.
한편, 본 개시의 기술적 사상의 일측면에 따른 복수의 블록들을 포함하는 메모리 장치는, 제1 블록 및 제2 블록을 포함하는 메모리 셀 어레이와 상기 제1 블록을 프리 프로그램하고, 제1 문턱 전압 레벨을 갖도록 이레이즈하고, 상기 이레이즈의 결과로 생성된 문턱 전압 분포를 기초로, 상기 제1 문턱 전압 레벨보다 낮은 문턱 전압을 갖는 적어도 하나 이상의 패스트 셀들을 검출하고, 상기 패스트 셀들의 정보를 상기 제2 블록에 저장하는 제어 로직을 포함하고, 상기 제어 로직은, 메모리 컨트롤러로부터 상기 제1 블록에 대한 프로그램 커맨드를 수신함에 따라, 상기 제2 블록에 저장된 상기 패스트 셀들의 정보를 기초로, 상기 제1 블록에 포함된 상기 패스트 셀들의 오버 프로그램 동작을 수행하는 것을 특징으로 한다.
본 개시의 기술적 사상의 메모리 컨트롤러, 메모리 시스템 및 그 동작 방법에 따르면, 열화가 빠를 것으로 판단된 메모리 셀들을 프로그램할 때, 노멀 셀들에 비해 문턱 전압 레벨을 우측으로 쉬프트하여 프로그램하므로, 추후 열화로 인해 문턱 전압 레벨이 좌측으로 쉬프트되더라도 산포들 간 윈도우 마진이 충분히 확보될 수 있고, 따라서 데이터 신뢰성을 향상시킬 수 있는 효과가 있다.
도 1은 본 개시의 예시적인 실시예에 따른 메모리 시스템을 나타내는 블록도이다.
도 2는 본 개시의 예시적인 실시예에 따른 메모리 장치를 나타내는 블록도이다.
도 3은 본 개시의 예시적인 실시예에 따른 메모리 컨트롤러를 나타내는 블록도이다.
도 4a 내지 도 4c는 본 개시의 예시적인 실시예에 따른 메모리 컨트롤러의 동작 방법을 나타내는 플로우차트이다.
도 5a 및 도 5b는 본 개시의 예시적인 실시예에 따른 패스트 셀 검출 동작을 나타내는 플로우차트이다.
도 6a 및 도 6b는 본 개시의 예시적인 실시예에 따른 패스트 셀 검출 방법을 나타내는 예시도이다.
도 7은 본 개시의 예시적인 실시예에 따른 프로그램 동작을 나타내는 플로우차트이다.
도 8a 및 도 8b는 본 개시의 예시적인 실시예에 따른 노멀 프로그램 동작을 나타내는 예시도이다.
도 9a 내지 도 9d는 본 개시의 예시적인 실시예에 따른 오버 프로그램 동작을 나타내는 예시도이다.
도 10a 내지 도 10c는 본 개시의 예시적인 실시예에 따른 메모리 셀들의 문턱 전압 산포도를 나타내는 그래프이다.
도 11은 본 개시의 예시적인 실시예에 따른 오버 프로그램 동작의 한 예를 나타내는 개념도이다.
도 12는 본 개시의 다른 예시적인 실시예에 따른 프로그램 동작을 나타내는 플로우차트이다.
도 13은 본 개시의 변형 가능한 실시예에 따른 메모리 시스템을 나타내는 블록도이다.
도 14는 본 개시의 실시예들에 따른 메모리 장치를 SSD 시스템에 적용한 예를 나타내는 블록도이다.
이하, 첨부한 도면을 참조하여 본 개시의 실시예에 대해 상세히 설명한다.
도 1은 본 개시의 예시적인 실시예에 따른 메모리 시스템을 나타내는 블록도이다.
도 1을 참조하면, 메모리 시스템(10)은 메모리 컨트롤러(100) 및 메모리 장치(200)를 포함할 수 있으며, 메모리 장치(200)는 메모리 셀 어레이(210), 전압 생성기(220) 및 제어 로직(230)를 포함할 수 있다.
일 실시예에 따라, 메모리 장치(200)는 불휘발성 메모리 장치를 포함할 수 있다. 일부 실시예들에서, 메모리 시스템(10)은 전자 장치에 내장되는 내부 메모리로 구현될 수 있고, 예를 들어, 임베디드 UFS(Universal Flash Storage) 메모리 장치, eMMC(embedded Multi-Media Card), 또는 SSD(Solid State Drive)일 수 있다. 일부 실시예들에서, 메모리 시스템(10)은 전자 장치에 착탈 가능한 외장 메모리로 구현될 수 있고, 예를 들어, UFS 메모리 카드, CF(Compact Flash), SD(Secure Digital), Micro-SD(Micro Secure Digital), Mini-SD(Mini Secure Digital), xD(extreme Digital) 또는 메모리 스틱(Memory Stick)일 수 있다.
메모리 컨트롤러(100)는 호스트(HOST)로부터의 프로그램(또는, 기입)/리드(또는, 독출) 요청에 응답하여 메모리 장치(200)에 저장된 데이터를 리드하거나 또는 메모리 장치(200)에 데이터를 프로그램하도록 메모리 장치(200)를 제어할 수 있다. 구체적으로, 메모리 컨트롤러(100)는 메모리 장치(200)에 어드레스(ADDR), 커맨드(CMD) 및 제어 신호(CTRL)를 제공함으로써, 메모리 장치(200)에 대한 프로그램, 리드 및 이레이즈(또는, 소거) 동작을 제어할 수 있다. 또한, 메모리 장치(200)에 프로그램될 데이터(DATA)와 메모리 장치(200)로부터 리드된 데이터(DATA)가 메모리 컨트롤러(100)와 메모리 장치(200) 사이에서 송수신될 수 있다.
메모리 셀 어레이(210)는 복수의 메모리 셀들을 포함할 수 있으며, 예를 들어, 복수의 메모리 셀들은 플래쉬 메모리 셀들일 수 있다. 그러나, 본 발명은 이에 한정되지 않으며, 일부 실시예들에서, 복수의 메모리 셀들은 ReRAM(resistive RAM), PRAM(phase change RAM) 또는 MRAM(magnetic RAM)과 같은 저항성 메모리 셀들일 수 있다.
메모리 셀 어레이(210)는 다수의 블록들을 포함할 수 있다. 또한, 다수의 블록들 각각은 다수의 페이지들을 포함할 수 있으며, 각각의 페이지는 다수의 메모리 셀들을 포함할 수 있다. 메모리 셀 어레이(210)에서, 데이터의 이레이즈 동작은 블록 단위로 수행될 수 있으며, 또한 데이터의 프로그램 및 리드 동작은 페이지 단위로 수행될 수 있다. 일 예로서, 메모리 장치(200)는 메모리 컨트롤러(100)로부터의 어드레스(ADDR)를 참조하여 블록 단위의 이레이즈 동작을 수행하고, 또한 페이지 단위의 프로그램 및 리드 동작을 수행할 수 있다.
전압 생성기(220)는 전술한 프로그램/리드 동작 및 이레이즈 동작을 수행하기 위한 다양한 종류의 전압을 생성할 수 있다. 일 예로서, 데이터 프로그램 동작은 ISPP(Incremental Step Pulse Program) 전압을 이용하여 수행될 수 있으며, 전압 생성기(220)는 다수의 전압 펄스들을 포함하는 ISPP 전압을 생성하여 메모리 셀 어레이(210)로 제공할 수 있다. 일 동작 예로서, 데이터의 프로그램 동작은 다수의 전압 펄스들을 이용하는 다수의 프로그램 동작에 의해 수행될 수 있다. 또한, 각각의 프로그램 동작이 수행된 후 프로그램의 패스 또는 페일을 판정하기 위하여 검증 동작이 수행될 수 있으며, 전압 생성기(220)는 검증 동작에 이용되는 검증 전압을 생성하여 메모리 셀 어레이(210)로 제공할 수 있다. 또한, 전압 생성기(220)는 데이터의 리드 동작에 이용되는 리드 전압을 생성하여 메모리 셀 어레이(210)로 제공할 수 있으며, 또한 이레이즈 동작에 이용되는 고전압 레벨을 갖는 이레이즈 전압을 생성하여 메모리 셀 어레이(210)로 제공할 수 있다.
제어 로직(230)은 메모리 동작과 관련하여 메모리 장치(200)의 전반적인 동작을 제어할 수 있다. 일 예로서, 제어 로직(230)은 전압 생성기(220)를 제어할 수 있으며, 제어 로직(230)의 제어에 기반하여 전압 생성기(220)에서 생성되는 각종 전압들의 레벨이 변동될 수 있다. 또한, 전압 생성기(220)로부터 생성되는 전압에 따라 메모리 셀 어레이(210)의 메모리 셀들의 문턱 전압 산포가 조절될 수 있다.
메모리 셀들의 문턱 전압 산포는 다양한 원인에 의해 열화될 수 있다. 문턱 전압 산포의 열화는 메모리 장치(200)의 신뢰성과 연결되는 문제이다. 따라서, 프로그램된 데이터를 오래 유지하고 프로그램된 데이터를 정확하게 리드하기 위해서는, 문턱 전압 산포의 열화를 방지하거나, 이미 열화가 진행된 메모리 셀들을 검출하여 조치할 필요가 있다. 또한 열화가 빠를 것으로 예상되는 메모리 셀들은 나머지 셀들과 구분하여 프로그램 또는 리드 동작을 수행할 수도 있다.
본 개시의 예시적인 실시예에 따르면, 문턱 전압 산포의 열화가 예상되는 메모리 셀들을 미리 파악하고, 해당 메모리 셀들에 대한 프로그램 동작시, 파악된 정보를 이용하여 메모리 셀들의 열화를 방지하기 위해 보완된 프로그램 동작을 수행할 수 있다. 이로써 데이터의 신뢰성을 개선할 수 있다.
본 명세서에서는, 설명의 편의상 문턱 전압 산포의 열화가 예상되는 셀들을 패스트 셀로 지칭하며, 메모리 셀들 중 패스트 셀을 제외한 나머지 셀을 슬로우 셀 또는 노멀 셀로 지칭할 수 있다.
본 실시예에서 패스트 셀을 검출하는 하나의 방법으로서, 메모리 셀들의 이레이즈 속도를 이용할 수 있다. 웨이퍼 공정 과정에서 다양한 변수들로 인해 메모리 셀 어레이(210)의 메모리 셀들의 특성은 달라질 수 있으며, 이로 인해 동일한 이레이즈 전압을 인가해도 더 빠르게 소거되는 메모리 셀 또는 더 느리게 소거되는 메모리 셀이 존재할 수 있다.
더 빠르게 소거되는 메모리 셀들은 추후 프로그램 된 오프 셀 상태에서, 다른 메모리 셀들에 비해 문턱 전압의 산포가 더 빠르게 열화될 수 있을 것이다.
따라서 본 실시예에서는, 동일한 이레이즈 전압을 인가했을 때 빠르게 소거되는 패스트 셀들이 검출되고, 패스트 셀들의 프로그램 동작과 노멀 셀들의 프로그램 동작이 상이하게 설정될 수 있다. 설명의 편의상, 패스트 셀들에 대해 수행되는 프로그램 동작을 오버 프로그램, 노멀 셀들에 대해 수행되는 프로그램 동작을 노멀 프로그램으로 지칭할 수 있다. 한 예로서 오버 프로그램은, 노멀 셀들의 문턱 전압 레벨보다, 패스트 셀이 더 큰 문턱 전압 레벨을 갖도록 하는 일련의 동작들을 포함할 수 있다. 오버 프로그램과 노멀 프로그램을 구분함에 따라, 메모리 셀의 열화 특성을 개선할 수 있고, 이에 따라 데이터의 신뢰성 저하를 방지할 수 있다.
한 실시예에 따르면, 메모리 컨트롤러(100)는 오버 프로그램 제어기(110)를 포함할 수 있으며, 오버 프로그램 제어기(110)는 복수의 메모리 셀들 중 문턱 전압 산포의 열화가 예상되는 패스트 셀들을 검출하고, 프로그램 동작시 패스트 셀과 노멀 셀을 구분할 수 있다. 예를 들어, 오버 프로그램 제어기(110)는 프로그램 동작을 수행하기 전, 선행되는 일련의 동작들을 수행하여 패스트 셀을 검출하고, 검출된 패스트 셀의 정보를 메모리 컨트롤러(100)에 저장할 수 있다.
이후 호스트로부터 임의의 메모리 셀로의 프로그램 요청을 수신하면, 메모리 컨트롤러(100)는 저장된 패스트 셀 정보를 이용하여 상기 임의의 메모리 셀의 프로그램 동작을 수행할 수 있다.
패스트 셀 검출을 위한 일련의 동작들은, 반드시 호스트로부터 프로그램 요청을 수신하기 전에 이루어질 필요는 없으며, 메모리 컨트롤러(100)는 호스트로부터 프로그램 요청을 수신한 후, 패스트 셀 검출 동작을 수행할 수도 있다.
오버 프로그램 제어기(110)는, 패스트 셀 검출 동작에 필요한 각종 정보들을 생성하여 패스트 셀 제어 신호(CTRL_fc)로써 메모리 장치(200)에 제공할 수 있다. 메모리 장치(200)에 제공하는 패스트 셀 제어 신호(CTRL_fc)는 패스트 셀들을 검출하기 위해 요구되는 전압 정보들을 포함한 제1 제어 신호 및 패스트 셀들을 오버 프로그램하기 위해 요구되는 전압 정보들을 포함한 제2 제어 신호를 포함할 수 있다. 이외에도 제1 제어 신호는 메모리 장치(200)로 하여금 패스트 셀들을 검출하기 위한 다양한 설정 정보들을 더 포함할 수 있을 것이다. 또한 제2 제어 신호는 패스트 셀들에 대한 오버 프로그램을 수행하기 위한 다양한 설정 정보들을 더 포함할 수 있을 것이다.
한 예로서, 본 명세서에서 프로그램 동작은 ISPP(Incremental Step Pulse Program) 방식으로 수행될 수 있다. 오버 프로그램 제어기(110)는, 오버 프로그램과 노멀 프로그램을 구분하기 위해 전압 펄스의 시작 레벨(또는 ISPP 시작 전압 레벨), 검증 전압의 레벨, 메모리 셀로 인가되는 복수의 ISPP 전압 펄스들의 개수 또는 전압 상승량 등을 변경할 수 있다. 이에 따라 제2 제어 신호는 변경된 정보를 더 포함할 수 있다.
한편, 도 1에서는 오버 프로그램 제어기(110)가 메모리 컨트롤러(100)에 포함되는 구성인 것으로 도시된다. 그러나, 본 발명의 실시예들은 이에 국한될 필요는 없으며, 오버 프로그램 제어기(110)가 메모리 컨트롤러(100) 외부, 예를 들어 메모리 장치(200)에 구비되도록 메모리 시스템(10)이 구현될 수도 있을 것이다. 오버 프로그램 제어기(110)가 메모리 장치(200)에 포함되는 경우는 도 13을 통해 설명한다.
도 2는 본 개시의 예시적인 실시예에 따른 메모리 장치를 나타내는 블록도이다.
도 1 및 도 2를 함께 참조하면, 메모리 장치(200)는 메모리 셀 어레이(210), 전압 생성기(220), 제어 로직(230), 로우 디코더(240) 및 입출력 회로(250)를 포함할 수 있다. 도 2에 도시되지는 않았으나, 메모리 장치(200)는 페이지 버퍼 또는 입출력 인터페이스 등 메모리 동작에 관련된 다른 다양한 구성 요소들을 더 포함할 수 있다.
메모리 셀 어레이(210)는 복수의 블록들(BLK1~BLKi)을 포함하고, 블록들(BLK1~BLKi)의 메모리 셀들은 워드라인들(WL), 스트링 선택 라인들(SSL), 접지 선택 라인들(GSL) 및 비트라인들(BL)에 연결될 수 있다. 메모리 셀 어레이(210)는 워드라인들(WL), 스트링 선택 라인들(SSL) 및 접지 선택 라인들(GSL)을 통해 로우 디코더(240)에 연결되고, 비트라인들(BL)을 통해 페이지 버퍼에 연결될 수 있다. 메모리 셀들 각각은 하나 또는 그 이상의 비트들을 저장할 수 있으며, 일 예로서 각 메모리 셀은 멀티 레벨 셀(Multi Level Cell, MLC), 트리플 레벨 셀(Triple Level Cell, TLC) 또는 쿼드 레벨 셀(Quad Level Cell, QLC)에 해당할 수 있다.
일 실시예에서, 메모리 셀 어레이(210)는 2차원 메모리 셀 어레이를 포함할 수 있고, 2차원 메모리 셀 어레이는 행 및 열 방향을 따라 배치된 복수의 셀 스트링들을 포함할 수 있다. 또한, 일 실시예에 따라, 메모리 셀 어레이(210)는 3차원 메모리 셀 어레이를 포함할 수 있고, 3차원 메모리 셀 어레이는 복수의 셀 스트링들을 포함할 수 있으며, 각 셀 스트링은 기판 위에 수직으로 적층된 워드라인들에 각각 연결된 메모리 셀들을 포함할 수 있다. 미국 특허공개공보 제7,679,133호, 미국 특허공개공보 제8,553,466호, 미국 특허공개공보 제8,654,587호, 미국 특허공개공보 제8,559,235호, 및 미국 특허출원공개공보 제2011/0233648호는 3차원 메모리 셀 어레이가 복수 레벨로 구성되고 워드 라인들 및/또는 비트 라인들이 레벨들 간에 공유되어 있는 3차원 메모리 셀 어레이에 대한 적절한 구성들을 상술하는 것들로서, 본 명세서에 인용 형식으로 결합된다.
한편, 오버 프로그램 제어기(110)가 열화가 예상되는 메모리 셀들을 파악하는 방법은 다양할 수 있으며, 프리 프로그램 및 이레이즈 동작을 포함한 패스트 셀 검출 동작으로 한정되는 것은 아니다. 한 예로서, 메모리 셀의 구조상 특징에 따라 열화가 예상되는 메모리 셀들이 파악될 수 있다.
3차원 메모리 셀 어레이에서, 채널 홀 배열의 중심부에 위치한 메모리 셀들과 채널 홀 배열의 바깥쪽에 위치한 메모리 셀들의 프로그램 속도 또는 이레이즈 속도가 다를 수 있다. 예를 들어, 채널 홀 배열의 바깥쪽에 위치한 메모리 셀들의 이레이즈 속도는, 채널 홀 배열의 중심부에 위치한 메모리 셀들의 이레이즈 속도에 비해 빠를 수 있다. 따라서 오버 프로그램 제어기(110)는, 채널 홀 배열의 바깥쪽에 위치한 메모리 셀들을 패스트 셀로 취급할 수 있다.
오버 프로그램 제어기(110)는, 전술한 실시예에 따라 메모리 셀의 위치를 기반으로 패스트 셀을 검출하기 위해, 채널 홀을 기준으로 한 메모리 셀 각각의 위치 정보를 더 포함할 수 있다. 즉 제어 로직(230)이 수신하는 패스트 셀 제어 신호(CTRL_fc), 구체적으로 제1 제어 신호에 각 메모리 셀의 위치 정보가 포함될 수 있다.
제어 로직(230)은 메모리 컨트롤러(100)로부터 수신한 커맨드(CMD), 어드레스(ADDR) 및 제어 신호(CTRL)를 기초로, 메모리 셀 어레이(210)에 데이터를 프로그램하거나 메모리 셀 어레이(210)로부터 데이터를 리드하기 위한 각종 내부 제어 신호를 출력할 수 있다. 일 예로서, 제어 로직(230)은 전압 생성기(220)에서 생성되는 각종 전압들의 레벨을 제어하기 위한 전압 제어신호(CTRL_vol)를 출력할 수 있으며, 로우 디코더(240)에 로우 어드레스(X-ADDR)를 제공할 수 있으며, 입출력 회로(250)에 칼럼 어드레스(Y-ADDR)를 제공할 수 있다. 또한, 전압 생성기(220)는 메모리 장치(200) 내에서 이용되는 각종 전압들을 생성할 수 있으며, 일 예로서 프로그램 동작에 이용되는 프로그램 전압(Vpgm), 검증 전압(Vvfy), 리드 동작에 이용되는 리드 전압(Vrd), 이레이즈 동작에 이용되는 이레이즈 전압(Vers)을 생성할 수 있다.
또한, 제어 로직(230)은 메모리 컨트롤러(100)로부터 패스트 셀과 관련된 패스트 셀 제어 신호(CTRL_fc)를 더 수신하고, 수신한 패스트 셀 제어 신호(CTRL_fc)에 따라 메모리 셀에 인가되는 ISPP 시작 전압 레벨 또는 ISPP 전압 펄스의 개수를 조절할 수 있다. 패스트 셀 제어 신호(CTRL_fc)는 리드, 이레이즈 또는 프로그램 동작을 수행하기 위한 다양한 다른 설정 정보들을 더 포함할 수도 있다.
제어 로직(230)은 패스트 셀 제어 신호(CTRL_fc)에 대한 응답으로써, 설정 정보들을 기초로 전압 제어신호(CTRL_vol)를 출력함으로써 각종 전압들의 레벨을 제어할 수 있다.
전압 생성기(220)는 제어 로직(230)으로부터 수신한 전압 제어신호(CTRL_vol)에 따라, 패스트 셀로 인가하는 다양한 전압들의 레벨과 노멀 셀로 인가하는 전압들의 레벨을 서로 다르게 설정할 수 있다.
예를 들어, 오버 프로그램에 사용되는 프로그램 전압(Vpgm), 검증 전압(Vvfy), 리드 전압(Vrd) 또는 이레이즈 전압(Vers) 중 적어도 하나의 전압 레벨을, 노멀 프로그램에 사용되는 전압 레벨과 구분할 수 있다. 한 예로서, 전압 생성기(220)는 오버 프로그램에서의 검증 전압을 노멀 프로그램에서의 검증 전압보다 높은 값으로 생성할 수 있다. 또 다른 예로서, 제2 제어 신호에 포함된 ISPP 전압 펄스의 개수 정보에 따라, 전압 생성기(220)는 노멀 프로그램시 생성하는 ISPP 전압 펄스에 비해 오버 프로그램시 ISPP 전압 펄스를 더 많이 생성할 수 있다.
한편, 오버 프로그램 제어기(110)는 제어 로직(230)에 구비될 수 있다. 이때 메모리 장치(200)는 온칩 버퍼 프로그램(on-chip buffered program) 알고리즘으로 프로그램될 수 있다. 즉 전술한 실시예들은 온칩 버퍼 프로그램으로 구현되어 메모리 장치에 저장될 수 있다. 온칩 버퍼 프로그램이란 메모리 장치(200)의 일부 공간을 버퍼 메모리로서 활용하는 방식을 지칭할 수 있다.
오버 프로그램 제어기(110)가 일련의 패스트 셀 검출 동작을 통해 획득한 패스트 셀 정보 역시 메모리 셀 어레이(210) 내의 미리 할당된 블록에 저장될 수 있을 것이다.
도 3은 본 개시의 예시적인 실시예에 따른 메모리 컨트롤러를 나타내는 블록도이다.
도 1 및 도 3을 함께 참조하면, 메모리 컨트롤러(100)는 오버 프로그램 제어기(110), 호스트 인터페이스(120), 버퍼(130), 프로세서(140) 및 메모리 인터페이스(150)를 포함할 수 있고, 버스를 통해 서로 통신할 수 있다. 또한, 도 3에는 도시되지 않았으나, 메모리 컨트롤러(100)는 각종 정보를 일시적으로 저장하기 위한 RAM 및 각종 정보를 불휘발성하게 저장하기 위한 ROM 등 다른 다양한 구성들을 더 포함할 수 있다.
RAM은 동작 메모리(Working memory)로서 이용될 수 있으며, 프로세서(140)는 RAM에 로딩된 펌웨어(firmware)를 구동함으로써 메모리 컨트롤러(100)의 전반적인 동작을 제어할 수 있다. RAM은 각종 메모리로 구현될 수 있으며, 예컨대 캐시(cache) 메모리, DRAM, SRAM, PRAM, 플래시 메모리 장치(200)들 중 적어도 하나로 구현될 수 있다. 또한, 펌웨어(firmware)의 일 예로서 플래시 변환 계층(FTL)이 RAM에 로딩될 수 있으며, 플래시 변환 계층(Flash Translation Layer, FTL)을 구동함에 의해 플래시 메모리 동작에 관련된 다양한 기능들이 수행될 수 있다.
호스트 인터페이스(120)는 호스트와 메모리 시스템(10)의 물리적 연결을 제공한다. 일 예로서, 호스트 인터페이스(120)는, ATA(advanced technology attachment), SATA(serial ATA), e-SATA(external SATA), SCSI(small computer small interface), SAS(serial attached SCSI), PCI(peripheral component interconnection), PCI-E(PCI express), IEEE 1394, USB(universal serial bus), SD(secure digital) 카드, MMC(multi media card), eMMC(embedded multi media card), CF(compact flash) 카드 인터페이스 등과 같은 다양한 인터페이스 방식들을 포함할 수 있다.
호스트 인터페이스(120)는 호스트로부터 리드/프로그램 요청을 수신할 수 있으며, 메모리 장치(200)로부터 리드된 데이터를 호스트로 전송할 수 있다.
버퍼(130)는 호스트로부터 프로그램 요청되는 데이터와 메모리 장치(200)로부터 리드된 데이터를 일시적으로 저장할 수 있다. 또한 버퍼(130)는 프로세서(140)의 동작 메모리 또는 캐시 메모리로 이용될 수 있다.
프로세서(140)는 중앙 처리 장치나 마이크로 프로세서 등을 포함할 수 있으며, 메모리에 저장된 명령어들(instructions)을 실행함으로써 메모리 컨트롤러(100)의 전반적인 동작을 제어할 수 있다.
한편, 메모리 인터페이스(150)는 메모리 컨트롤러(100)와 메모리 장치(200) 사이의 물리적 연결을 제공한다. 예컨대 커맨드(CMD), 어드레스(ADDR) 및 데이터 (DATA) 등이 메모리 인터페이스(150)를 통해 메모리 컨트롤러(100)와 메모리 장치(200) 사이에서 송수신될 수 있다.
전술한 실시예에 따라, 오버 프로그램 제어기(110)는 메모리 장치(200)에 포함된 메모리 셀들 중, 열화 가능성이 높다고 판단되는 패스트 셀들을 검출하는 동작 및 검출된 패스트 셀들을 프로그램하는 동작을 수행하기 위해, 관련된 정보들을 생성하여 버퍼(130)에 저장할 수 있다. 예를 들어, 버퍼(130)는 검출된 패스트 셀의 정보, 패스트 셀에 오버 프로그램을 수행하기 위해 인가하는 전압 레벨 정보 및 전압 펄스의 개수 등을 저장할 수 있다.
또한, 버퍼(130)는 채널 홀을 기준으로 한 각 메모리 셀의 위치 정보 또는 위치 정보를 기반으로 한 메모리 셀의 열화 가능성에 대한 정보를 더 포함할 수 있다. 메모리 컨트롤러(100)는 호스트로부터 프로그램 요청을 수신함에 따라, 버퍼(130)에 저장된 메모리 셀의 위치 정보를 인출하여, 프로그램 대상이 되는 메모리 셀들을 오버 프로그램할지 또는 노멀 프로그램할지 결정할 수 있다.
한편, 오버 프로그램 제어기(110)가 패스트 셀을 검출하는 동작은 호스트 인터페이스(120)가 호스트로부터 프로그램 커맨드를 수신함에 따라 시작될 수 있다. 구체적으로, 오버 프로그램 제어기(110)는 호스트 인터페이스(120)에서 수신한 프로그램 요청에 대해, 프로그램 대상 셀들의 정보를 획득할 수 있다. 프로그램 대상 셀들에 패스트 셀이 포함되어 있는지 확인하기 위해서, 패스트 셀 검출 동작을 수행할 수 있다. 예를 들어, 프로그램 대상 셀들에 프리 프로그램, 이레이즈 및 이레이즈 검증을 포함하는 일련의 동작들을 수행할 수 있다. 패스트 셀 검출 동작의 결과로서, 프로그램 대상 셀들에 포함된 패스트 셀들이 검출될 수 있다.
다양한 실시예들에 따라, 오버 프로그램 제어기(110)는 프로그램 커맨드를 수신한 시점에 패스트 셀 검출 정보가 이미 존재하는 경우, 패스트 셀 검출 정보를 참조하여 프로그램 대상 셀들 중 패스트 셀을 검출하고, 프리 프로그램, 이레이즈 및 이레이즈 검증을 포함하는 일련의 동작들을 바이패스(bypass)할 수도 있다.
패스트 셀들을 오버 프로그램하기 위해, 오버 프로그램 제어기(110)는 다양한 설정 정보들이 포함된 제2 제어 신호를 생성할 수 있다. 설정 정보는 예를 들어, ISPP 전압 레벨 정보, ISPP 전압 펄스의 개수 또는 전압 상승량 정보 중 적어도 어느 하나를 포함할 수 있으며, 이에 제한되지 않는다.
한편, 프로그램 대상 셀들 중 패스트 셀들을 제외한 나머지 셀들은 노멀 셀로 판단될 수 있으며, 노멀 셀들을 노멀 프로그램하기 위한 설정 정보들은 제어 신호(CTRL)에 포함될 수 있을 것이다.
오버 프로그램 제어기(110)는 메모리 인터페이스(150)를 통해 제어 신호(CTRL) 및 패스트 셀 패스트 셀 제어 신호(CTRL_fc)를 메모리 장치(200)에 제공할 수 있다.
오버 프로그램 제어기(110)는 펌웨어 또는 소프트웨어로 구현될 수 있으며, 이에 한정되지 않고, 하드웨어로 구현되거나 이들의 조합으로 구현될 수도 있다. 오버 프로그램 제어기(110)가 펌웨어 또는 소프트웨어로 구현되는 경우, 오버 프로그램 제어기(110)는 버퍼(130)에 로딩되고 프로세서(140)가 오버 프로그램 제어기(110)를 실행할 수 있다. 이로써 다양한 실시예에 따른 오버 프로그램 제어기(110)의 동작이 수행될 수 있다.
도 4a 내지 도 4c는 본 개시의 예시적인 실시예에 따른 메모리 컨트롤러의 동작 방법을 나타내는 플로우차트이다.
도 1을 함께 참조하여, 이하에서는 메모리 컨트롤러(100)에 의해 동작들이 수행되는 것으로 설명하나, 반드시 이에 제한되는 것은 아니며 메모리 장치(200)에 의해서도 수행될 수 있다.
도 4a를 참조하면, 메모리 컨트롤러(100)는 메모리 장치(200)에 포함된 복수의 메모리 셀들 중 패스트 셀을 검출할 수 있다(S110). 패스트 셀은 다른 셀들에 비해 열화가 빠르게 진행될 것으로 예상되는 셀로서, 패스트 셀 검출 동작 및 메모리 셀의 구조적 특징 중 적어도 하나에 기초하여 결정될 수 있다.
예를 들어, 메모리 컨트롤러(100)는 복수의 메모리 셀들에 프리 프로그램 전압을 인가하고, 이레이즈 전압을 인가하여 이레이즈 동작을 수행할 수 있다. 이후 이레이즈 검증 동작 또는 리드 동작을 통해서, 복수의 메모리 셀들 중 빠르게 소거된 셀들을 패스트 셀로 결정할 수 있다.
메모리 컨트롤러(100)는 메모리 셀 어레이(210)에 포함된 모든 메모리 셀들에 대해 패스트 셀 검출 동작을 수행할 수도 있고, 메모리 셀 어레이(210) 중 적어도 일부의 메모리 셀들 또는 적어도 일부의 블록들을 대상으로 할 수도 있다. 한편 패스트 셀을 검출하기 위한 일련의 동작들은 도 5a 및 도 5b를 통해 자세히 설명될 것이다.
다른 예로서, 메모리 셀 어레이(210)가 3차원 구조를 갖는 경우, 채널 홀 바깥쪽에 있는 메모리 셀들은 채널 홀 근처에 있는 메모리 셀들에 비해 빠른 프로그램 속도 또는 빠른 이레이즈 속도를 가질 수 있다. 따라서, 채널 홀 바깥쪽에 있는 메모리 셀들은 패스트 셀로 결정될 수 있다.
메모리 컨트롤러(100)는, 검출된 패스트 셀에 대한 정보를 저장할 수 있으며, 저장되는 위치는 어느 하나에 제한되지 않는다. 패스트 셀에 대한 정보는 메모리 컨트롤러(100) 내 버퍼(예를 들어 도 3의 130) 또는 메모리 셀 어레이(210)의 블록에 저장될 수 있다. 패스트 셀에 대한 정보는 노멀 셀과 패스트 셀을 구분하기 위한 정보 예를 들어 메모리 셀 어드레스를 포함할 수 있다. 패스트 셀에 대한 정보는 노멀 셀과 구분되어 프로그램되도록 프로그램 조건들을 더 포함할 수 있다.
메모리 컨트롤러(100)는 검출된 패스트 셀에 대한 정보를 기초로, 노멀 프로그램 및/또는 오버 프로그램을 수행할 수 있다(S120).
메모리 컨트롤러(100)는 저장된 패스트 셀에 대한 정보를 기초로, 프로그램 대상 셀들 중 노멀 셀들에 대한 노멀 프로그램, 프로그램 대상 셀들 중 패스트 셀들에 대한 오버 프로그램을 수행할 수 있다.
오버 프로그램은 임의의 메모리 셀에 대해, 노멀 프로그램으로써 생성되는 문턱 전압보다 높은 문턱 전압을 갖도록 하는 프로그램 동작을 의미할 수 있다. 예를 들어, 노멀 프로그램으로서 N개의 ISPP 전압 펄스들을 인가하는 경우, 오버 프로그램은 M(M은 N을 초과하는 자연수)개의 ISPP 전압 펄스들을 인가하는 것을 의미할 수 있다.
오버 프로그램의 결과로서 생성된 문턱 전압 산포는, 노멀 프로그램의 결과로서 생성된 문턱 전압 산포에 비해 오른쪽으로 쉬프트 된 형태일 수 있다. 오버 프로그램 된 패스트 셀들은 노멀 셀들에 비해 더 높은 문턱 전압을 갖음으로써, 노멀 셀들에 비해 더 빠르게 열화되어 문턱 전압 산포가 왼쪽으로 쉬프트 되더라도 노멀 셀들과 비슷한 문턱 전압 산포 형태를 가질 수 있다.
한편 다양한 실시예들에 따라, 메모리 셀 어레이(210)를 구성하는 메모리 셀들은, 싱글 레벨 셀(SLC) 뿐만 아니라, 멀티 레벨 셀(MLC)로 구현될 수도 있다. 예를 들어 메모리 셀이 트리플 레벨 셀(TLC)로 구현되는 경우, 메모리 셀들 각각의 상태는 이레이즈 상태(E) 및 제1 프로그램 상태(P1) 내지 제7 프로그램 상태(P7) 중 하나의 상태에 해당할 수 있다.
이때, 오버 프로그램의 결과로서 생성된 패스트 셀의 제7 프로그램 상태(P7)의 문턱 전압 산포는, 노멀 프로그램의 결과로서 생성된 노멀 셀의 제7 프로그램 상태(P7)의 문턱 전압 산포에 비해 오른쪽으로 쉬프트 된 형태일 수 있다. 따라서 제7 프로그램 상태(P7)의 패스트 셀에 열화가 발생하여 문턱 전압 산포가 왼쪽으로 쉬프트되어도, 노멀 셀의 제7 프로그램 상태(P7)의 문턱 전압 산포와 유사한 형태를 가질 수 있다.
한편, 메모리 컨트롤러(100)의 패스트 셀 검출 동작은 호스트로부터 프로그램 요청을 수신함에 따라 수행될 수도 있고, 프로그램 요청을 수신하기 전에 수행될 수도 있다. 이하에서는 도 4a를 통해 설명한 내용과 중복되는 내용의 설명은 생략한다.
도 4b를 참조하면, 메모리 컨트롤러(100)는 호스트로부터 프로그램 요청을 수신할 수 있다(S105). 메모리 컨트롤러(100)는 프로그램 요청을 통해, 프로그램 대상 셀들의 정보를 수신할 수 있다.
메모리 컨트롤러(100)는 패스트 셀 검출 동작을 수행할 수 있다(S110). 이때, 메모리 컨트롤러(100)는 프로그램 대상 셀들 중 패스트 셀이 존재하는지 확인하기 위해 패스트 셀을 검출할 수 있다. 즉, 메모리 컨트롤러(100)는 처리 속도 등의 리소스 상황을 고려하여, 메모리 셀들 중 일부의 메모리 셀, 예를 들어 프로그램 대상 셀들에 대해서만 패스트 셀 검출 동작을 수행할 수 있다. 그러나 이에 한정되지 않으며, 프로그램 요청을 수신한 후, 모든 메모리 셀들에 대해서 패스트 셀 검출 동작을 수행할 수도 있을 것이다.
패스트 셀 검출 동작의 결과로써, 프로그램 대상 셀들은 패스트 셀과 노멀 셀로 구분될 수 있다. 프로그램 대상 셀들 중 패스트 셀에 해당하는 메모리 셀들의 정보가 버퍼에 저장될 수 있다.
메모리 컨트롤러(100)는 노멀 프로그램 및/또는 오버 프로그램을 수행할 수 있다(S120). 메모리 컨트롤러(100)는, 버퍼에 저장된 정보를 기초로, 프로그램 대상 셀들 중 패스트 셀들에 오버 프로그램을 수행하고, 노멀 셀들에 노멀 프로그램을 수행할 수 있다.
도 4c를 참조하면, 메모리 컨트롤러(100)는 호스트로부터 프로그램 요청을 수신하기 이전에 패스트 셀 검출 동작을 먼저 수행할 수 있다(S110). 이 경우 메모리 컨트롤러(100)는 메모리 셀 어레이(210)에 포함된 모든 메모리 셀들에 대해 패스트 셀 검출 동작을 수행하고, 메모리 셀 각각이 패스트 셀인지 노멀 셀인지 결정할 수 있다. 결정된 결과는 버퍼에 저장될 수 있다. 다른 예로서, 메모리 컨트롤러(100)는 미리 설정된 특정 블록 또는 특정 메모리 셀들에 대해서 패스트 셀 검출 동작을 수행할 수도 있다.
이후 메모리 컨트롤러(100)는 호스트로부터 프로그램 요청을 수신할 수 있다(S115). 메모리 컨트롤러(100)는 버퍼에 저장된 정보를 기초로, 프로그램의 대상이 되는 프로그램 대상 셀들을 패스트 셀 또는 노멀 셀로 구분할 수 있다.
메모리 컨트롤러(100)는 버퍼에 저장된 정보를 기초로, 프로그램 대상 셀들에 대해 노멀 프로그램 및/또는 오버 프로그램을 수행할 수 있다(S120).
도 5a 및 도 5b는 본 개시의 예시적인 실시예에 따른 패스트 셀 검출 동작을 나타내는 플로우차트이다.
도 1을 함께 참조하여, 이하에서는 메모리 컨트롤러(100)에 의해 패스트 셀 검출 동작들이 수행되는 것으로 설명하나, 반드시 이에 제한되는 것은 아니며 메모리 장치(200)에 의해서도 수행될 수 있다. 또한 패스트 셀 검출 동작이 메모리 셀 어레이(210)의 모든 메모리 셀들을 대상으로 하는 것을 가정하여 설명하나, 반드시 모든 메모리 셀들에 수행될 필요는 없을 것이다.
도 5a를 참조하면, 메모리 컨트롤러(100)는 메모리 셀들을 프리 프로그램할 수 있다(S210). 프리 프로그램은 멀티 레벨 셀에 대해서, 이레이즈 동작 전 메모리 셀의 문턱 전압 분포를 하나의 프로그램 분포로 모으는 동작을 의미한다.
한 예로서, 메모리 셀들이 미리 설정된 제1 문턱 전압 레벨(예를 들어, 도 6a의 V1)을 갖도록, 메모리 셀들로 프로그램 전압이 인가될 수 있다.
한편 메모리 셀이 싱글 레벨 셀로 구현되는 경우, 프리 프로그램 단계는 수행될 수도 있고 생략될 수도 있을 것이다. 다른 예로서 메모리 셀이 트리플 레벨 셀로 구현되는 경우, 메모리 컨트롤러(100)는 8개의 상태로 분산되어 있는 메모리 셀들을 하나의 프로그램 분포, 예를 들어 제7 프로그램 상태(P7)로 모을 수 있다. 이를 위해 메모리 셀들로 높은 프로그램 전압이 인가될 수 있다.
메모리 컨트롤러(100)는 프리 프로그램 된 메모리 셀들에 대해 소프트 이레이즈를 수행할 수 있다(S220).
소프트 이레이즈란, 메모리 셀들을 소거하기 위해 통상적으로 인가되는 전압에 비해 낮은 전압을 인가하여 소거하는 동작을 의미할 수 있다. 메모리 컨트롤러(100)는 소프트 이레이즈 전압을 복수의 메모리 셀의 워드라인에 인가할 수 있다.
또한 메모리 컨트롤러(100)는 복수의 이레이즈 전압 펄스들을 인가하는 ISPE(Incremental Step Pulse Erase) 방식과 달리, 한번의 이레이즈 전압을 인가할 수 있다.
메모리 컨트롤러(100)는 이레이즈 검증을 수행할 수 있다(S230). 이레이즈 검증은, 메모리 셀들의 이레이즈 결과를 확인하기 위한 것으로 리드 동작으로 대체될 수 있을 것이다. 메모리 셀들이 미리 설정된 제3 문턱 전압 레벨(예를 들어 도 6b의 V3)을 갖는지 확인하기 위해, 메모리 셀들로 이레이즈 검증 전압이 인가될 수 있다.
메모리 컨트롤러(100)는 복수의 메모리 셀들에 대해서 패스트 셀에 해당하는지 여부를 판단할 수 있다(S240).
제3 문턱 전압 레벨(V3)의 이레이즈 검증 전압을 메모리 셀들로 인가하면, 검증 결과 온 셀 상태인 메모리 셀들(예를 들어, 도 6b의 C1)과 오프 셀 상태인 메모리 셀들(예를 들어, 도 6b의 C2)이 공존할 수 있다. 이 때 온 셀 상태인 메모리 셀들(C1)은, 오프 셀 상태인 메모리 셀들(C2)에 비해 더 빨리 이레이즈 된 것이며 따라서 온 셀 상태의 메모리 셀들(C1)은 패스트 셀로 판단될 수 있다.
메모리 컨트롤러(100)는 패스트 셀 정보를 버퍼에 저장할 수 있다(S250). 예를 들어 메모리 컨트롤러(100)는, 제3 문턱 전압 레벨(V3)보다 낮은 문턱 전압 레벨을 갖는 메모리 셀들(C1)의 어드레스를 버퍼에 저장할 수 있다.
도 5b를 참조하면, S310 내지 S340 단계는 도 5a의 S210 내지 S240 단계와 동일한 바, S350 이후의 단계부터 설명한다.
메모리 컨트롤러(100)는 판단한 패스트 셀의 개수가 기준치를 초과하는지 확인할 수 있다(S350). 기준치에 대한 정보는 메모리 컨트롤러(100) 내 버퍼에 저장된 것일 수 있다. 기준치는 메모리 시스템의 성능 및 특성에 따라 달라질 수 있다.
메모리 컨트롤러(100)는 패스트 셀의 개수가 기준치를 초과하는 경우, 패스트 셀 정보를 버퍼에 저장할 수 있다(S360). 즉, 메모리 컨트롤러(100)는 패스트 셀의 개수가 기준치 이하인 경우, S340 단계를 통해 검출한 패스트 셀에 대한 정보를 무시할 수 있다. 도 5a와 비교하면, 패스트 셀 정보는 메모리 시스템의 동작 속도 및 성능을 고려하여 사용될 수 있다.
도 6a 및 도 6b는 본 개시의 예시적인 실시예에 따른 패스트 셀 검출 방법을 나타내는 예시도이다.
도 1, 도 6a 및 도 6b를 함께 참조하면, 메모리 컨트롤러(100)는 메모리 셀들로 제1 문턱 전압 레벨(V1)을 갖도록 프로그램 전압을 인가할 수 있다. 이로서 메모리 셀들은 도 6a와 같은 문턱 전압 산포 형태를 가질 수 있다.
이후 메모리 컨트롤러(100)는 메모리 셀들로 이레이즈 전압을 인가할 수 있다. 예를 들어 메모리 컨트롤러(100)는 메모리 셀들이 제2 문턱 전압 레벨(V2)을 갖도록 이레이즈할 수 있다. 메모리 셀들로 이레이즈 전압이 인가되어, 메모리 셀들의 문턱 전압 산포의 형태는 도 6b와 같이 왼쪽으로 쉬프트될 수 있다.
메모리 컨트롤러(100)는 메모리 셀들로 제3 문턱 전압 레벨(V3)을 이레이즈 검증 전압으로써 인가하여, 이레이즈 결과를 확인할 수 있다. 이레이즈 검증의 기준으로 사용되는 제3 문턱 전압 레벨(V3)은 메모리 셀들의 특성 및 환경에 따라 변경될 수 있을 것이다. 예를 들어 제3 문턱 전압 레벨(V3)은 제2 문턱 전압 레벨(V2)보다 낮은 값일 수 있다.
메모리 컨트롤러(100)는 제3 문턱 전압 레벨(V3)보다 같거나 더 낮은(또는 미만인) 문턱 전압 레벨을 갖는 메모리 셀들(C1)을 패스트 셀로 결정할 수 있다. 이에 따라 문턱 전압 레벨이 제3 문턱 전압 레벨(V3)보다 큰(또는 이상인) 메모리 셀들(C2)을 노멀 셀로 결정할 수 있다.
도 7은 본 개시의 예시적인 실시예에 따른 프로그램 동작을 나타내는 플로우차트이다.
이하에서는, 도 1을 함께 참조하여 도 4c의 S120 단계에 대해 세부적으로 설명한다. 즉 메모리 컨트롤러(100)가 메모리 셀들 중 패스트 셀을 검출한 이후 호스트로부터 프로그램 요청을 수신하고, 프로그램 동작을 수행하는 방법에 대해 설명한다.
도 7을 참조하면, 메모리 컨트롤러(100)는 호스트로부터 프로그램 요청을 수신할 수 있다(S410). 프로그램 요청은 프로그램 대상 페이지에 대한 정보를 포함할 수 있다.
메모리 컨트롤러(100)는 프로그램 대상 페이지에, 패스트 셀이 존재하는지 판단할 수 있다(S420). 메모리 컨트롤러(100)는 버퍼에 저장된 패스트 셀 정보를 인출하고, 프로그램 대상 페이지에 패스트 셀이 포함되어 있는지를 확인할 수 있다.
프로그램 대상 페이지에 패스트 셀이 존재하는 경우, 메모리 컨트롤러(100)는 패스트 셀에 대해서는 오버 프로그램을 수행하고, 노멀 셀에 대해서는 노멀 프로그램을 수행할 수 있다(S430). 예를 들어, 메모리 컨트롤러(100)는 패스트 셀이 오버 프로그램 되도록 패스트 셀 제어 신호(CTRL_fc), 구체적으로 제2 제어 신호를 생성하고, 노멀 셀이 노멀 프로그램 되도록 제어 신호(CTRL)를 생성하여 메모리 장치(200)에 제공할 수 있다. 메모리 장치(200)는 패스트 셀 제어 신호(CTRL_fc) 및 제어 신호(CTRL)를 기초로 일련의 프로그램 동작들을 수행할 수 있다. 예를 들어, 오버 프로그램은 도 9a 내지 도 9d를 통해 설명되는 바와 같이 수행될 수 있다.
프로그램 대상 페이지에 패스트 셀이 존재하지 않는 경우, 메모리 컨트롤러(100)는 프로그램 대상 페이지에 노멀 프로그램을 수행할 수 있다(S440). 예를 들어, 노멀 프로그램은 도 8a 내지 도 8b를 통해 설명되는 바와 같이 수행될 수 있다.
도 8a 및 도 8b는 본 개시의 예시적인 실시예에 따른 노멀 프로그램 동작을 나타내는 예시도이다.
도 1, 도 8a 및 도 8b를 함께 참조하면, 본 실시예에 따른 메모리 셀들은 ISPP 방식으로 프로그램될 수 있다.
노멀 셀들에 대해 수행되는 노멀 프로그램은, 전압 레벨(V3)을 시작으로 하여 점차 레벨이 증가하는 다수의 전압 펄스들을 포함하는 ISPP 방식으로 수행될 수 있으며, 각각의 전압 펄스는 프로그램 전압(Vp)과 검증 전압(Vr1, Vr2, Vr3)을 포함할 수 있다.
도 9a 내지 도 9d는 본 개시의 예시적인 실시예에 따른 오버 프로그램 동작을 나타내는 예시도이다.
도 1, 도 8a, 도 8b 및 도 9a 내지 도 9d를 함께 참조하면, 오버 프로그램은 프로그램 대상 셀의 문턱 전압 레벨을 노멀 프로그램이 수행된 경우에 비해 높이는 것이 목적이므로, 오버 프로그램에서 사용되는 전압 펄스의 개수, 프로그램 전압의 레벨 또는 검증 전압의 레벨은 노멀 프로그램에서 사용된 전압 펄스의 개수, 프로그램 전압의 레벨 또는 검증 전압의 레벨 중 적어도 어느 하나와 다를 수 있다.
예를 들어, 오버 프로그램에서, ISPP 시작 전압 레벨(V3')은 노멀 프로그램에서의 ISPP 시작 전압 레벨(V3)에 비해 더 큰 값일 수 있다. 다른 예로서, ISPP 전압 펄스의 상승량(V4')은 노멀 프로그램에서의 상승량(V4)에 비해 더 큰 값일 수 있다. 또 다른 예로서, 메모리 셀들로 인가되는 ISPP 전압 펄스의 개수(M)는 노멀 프로그램에서 인가되는 펄스의 개수(N)에 비해 더 많을 수 있다. 또 다른 예로서, 프로그램 검증 전압의 레벨(V5')은 노멀 프로그램에서 인가되는 프로그램 검증 전압의 레벨(V5)에 비해 더 큰 값일 수 있다.
오버 프로그램은 전술한 실시예들 중 어느 하나를 포함하거나 또는 적어도 2개의 동작들을 포함할 수 있다. 예를 들어, 오버 프로그램은 노멀 프로그램에 비해 ISPP 전압 펄스의 개수가 많고 동시에 프로그램 검증 전압 레벨 역시 큰 값일 수 있다.
한편, 오버 프로그램은 메모리 셀의 문턱 전압 레벨을 상승시키기 위해 노멀 프로그램과 구별되어 수행되는 것이므로, 전술한 실시예로 한정되는 것은 아니며 문턱 전압 레벨을 상승시키기 위한 다양한 동작들로 구성될 수 있다.
도 10a 내지 도 10c는 본 개시의 예시적인 실시예에 따른 메모리 셀들의 문턱 전압 산포도를 나타내는 그래프이다.
도 10a을 참조하면, 메모리 셀은 트리플 레벨 셀(TLC)로 구현될 수 있으며 메모리 셀들 각각의 상태는 이레이즈 상태(E) 및 제1 프로그램 상태(P1) 내지 제7 프로그램 상태(P7) 중 하나의 상태에 해당할 수 있다. 노멀 셀의 경우, 제6 프로그램 상태(P6)와 제7 프로그램 상태(P7) 사이의 간격이 충분히 확보되어 있다.
도 10b를 참조하면, 패스트 셀은 노멀 셀에 비해 제7 프로그램 상태(P7')의 메모리 셀들이 빠르게 열화된 상태일 수 있다. 즉 실선으로 표시된 제7 프로그램 상태(P7')의 문턱 전압 산포는, 점선으로 표시된 노멀 셀의 제7 프로그램 상태(P7)의 문턱 전압 산포에 비해 왼쪽으로 쉬프트 된 형태일 수 있으며, 이에 따라 제6 프로그램 상태(P6)와 제7 프로그램 상태(P7') 간 간격이 좁아지거나 겹칠 수 있다. 문턱 전압 산포가 겹치는 경우, 겹치는 두 프로그램 상태를 정확하게 구별하기 어려워, 리드 동작 또는 검증 동작의 신뢰성이 저하될 수 있다.
도 10c를 참조하면, 본 개시에 따른 한 실시예에서는 전자가 더 빠르게 누설될 것으로 예상되는 메모리 셀들을 패스트 셀로 판단하고, 패스트 셀의 문턱 전압 레벨이 노멀 셀의 문턱 전압 레벨보다 오른쪽으로 쉬프트되도록 프로그램 전압을 인가할 수 있다. 즉, 실선으로 표시된 패스트 셀의 제7 프로그램 상태(P7″)의 문턱 전압 산포가 점선으로 표시된 노멀 셀의 제7 프로그램 상태(P7)에 비해 오른쪽으로 쉬프트되도록, 패스트 셀에 프로그램 전압을 인가할 수 있다. 이로써 다소 열화가 진행되어 제7 프로그램 상태(P7)의 문턱 전압 산포가 왼쪽으로 쉬프트되더라도, 제6 프로그램 상태(P6)의 문턱 전압 산포와 겹치는 것을 예방할 수 있다.
도 11은 본 개시의 예시적인 실시예에 따른 오버 프로그램 동작의 한 예를 나타내는 개념도이다.
이하에서는 설명의 편의상, 오버 프로그램이 수행될 메모리 셀을 타겟 셀로 지칭하여 설명한다. 또한 패스트 셀 검출 동작이 수행되어, 메모리 시스템이 패스트 셀 정보를 가지고 있는 것을 가정하여 설명한다.
도 1 및 도 11을 함께 참조하면, 오버 프로그램이 요구되는 메모리 셀은 패스트 셀로 한정되는 것은 아니다. 즉, 메모리 시스템(10)은 전술한 실시예를 통해 패스트 셀로 판단된 메모리 셀 뿐만 아니라, 다양한 메모리 셀들을 타겟 셀로 결정할 수 있다.
한 예로서, 메모리 시스템(10)은 메모리 셀들 중 구조적 특성 또는 환경적 특성에 기인하여 열화가 빠르게 진행될 것으로 예상되는 메모리 셀들을 제1 그룹으로 검출할 수 있다. 예를 들어, 메모리 셀 어레이(210)가 3차원으로 구현되는 경우, 구조적 특성에 따라 프로그램 및 이레이즈 속도가 빠른 셀들이 존재할 수 있다. 한 예로서, 채널 홀 배열의 바깥쪽에 위치한 메모리 셀들이 제1 그룹에 포함될 수 있다. 한편 제1 그룹으로 분류된 메모리 셀들의 정보는 버퍼에 저장될 수 있다.
다른 예로서, 메모리 시스템(10)은 임의의 프로그램 상태를 갖는 메모리 셀들을 제1 그룹으로 검출할 수 있다. 예를 들어 메모리 셀 어레이(210)의 메모리 셀들 중 제7 프로그램 상태(P7)인 메모리 셀들을 제1 그룹으로 검출할 수 있다.
또 다른 예로서, 메모리 시스템(10)이 호스트로부터 프로그램 요청을 수신한 경우, 프로그램 대상 셀들이 제1 그룹으로 검출될 수 있다. 메모리 시스템(10)이 제1 그룹을 검출하는 방법은 어느 하나로 제한되지 않는다.
메모리 시스템(10)은, 타겟 셀을 결정하기 위해 패스트 셀 집합과 제1 그룹에 대해 집합 연산을 수행할 수 있다. 예를 들어, 메모리 시스템(10)은 패스트 셀 집합과 제1 그룹의 합집합에 해당하는 메모리 셀들(P1, P2, P3)을 타겟 셀로 결정할 수 있다. 다른 예로서, 메모리 시스템(10)은 패스트 셀 집합과 제1 그룹의 차집합 또는 대칭 차집합에 해당하는 메모리 셀들을 타겟 셀로 결정할 수 있다. 차집합 연산에 따라 메모리 셀들(P1 또는 P3)이 타겟 셀로 결정될 수 있고, 대칭 차집합 연산에 따라 메모리 셀들(P1, P3)이 타겟 셀로 결정될 수 있다.
메모리 시스템(10)은 결정된 타겟 셀들에 대해 오버 프로그램을 수행할 수 있다. 한편, 집합 연산을 수행한 결과 타겟 셀이 공집합으로 계산될 수 있으며, 이 경우 메모리 셀 어레이(210) 내에 오버 프로그램이 수행될 메모리 셀이 존재하지 않음을 의미할 수 있다. 이때 메모리 시스템(10)이 임의의 메모리 셀들에 대해 프로그램 요청을 수신하면, 상기 메모리 셀들에 대해서 노멀 프로그램이 수행될 수 있다.
도 12는 본 개시의 다른 예시적인 실시예에 따른 프로그램 동작을 나타내는 플로우차트이다.
도 1 및 도 12를 함께 참조하면, 메모리 시스템은 호스트로부터 프로그램 요청을 수신할 수 있다(S510). 프로그램 요청은 프로그램 대상 셀들에 대한 정보를 포함할 수 있다.
메모리 시스템은 저장된 패스트 셀 정보 및 제1 그룹 정보를 기초로 타겟 셀을 결정할 수 있다(S520). 타겟 셀을 결정하기 위해 집합 연산이 수행될 수 있다. 메모리 시스템은 프로그램 대상 셀들 중 패스트 셀 또는 제1 그룹에 속하는 메모리 셀들만을 대상으로 집합 연산을 수행할 수 있다.
한편, S520 단계는 S510 단계 이전에 수행될 수도 있으며, 이 경우 메모리 시스템이 프로그램 대상 셀들에 대한 정보를 호스트로부터 수신하기 이전이므로 타겟 셀을 결정하기 위한 집합 연산은 모든 메모리 셀들을 대상으로 수행될 수 있다.
메모리 시스템은 결정된 타겟 셀에 대해 오버 프로그램을 수행하고, 타겟 셀이 아닌 나머지 노멀 셀에 대해 노멀 프로그램을 수행할 수 있다(S530). 오버 프로그램 및 노멀 프로그램의 자세한 동작은 도 1 내지 도 11을 통해 설명한 바와 같을 수 있다.
도 13은 본 개시의 변형 가능한 실시예에 따른 메모리 시스템을 나타내는 블록도이다.
도 13을 참조하면, 메모리 시스템(20)은 메모리 컨트롤러(300) 및 메모리 장치(400)를 포함하고, 메모리 장치(400)는 패스트 셀 정보를 포함하는 메모리 셀 어레이(410), 전압 생성기(420), 및 오버 프로그램 제어기(431)를 포함하는 제어 로직(430)을 포함할 수 있다. 또한, 메모리 컨트롤러(300)는 커맨드/어드레스(CMD/ADDR)를 메모리 장치(400)로 제공하고, 메모리 장치(400)와 데이터(DATA)를 송수신할 수 있으며, 메모리 동작을 제어하기 위한 제어 신호(CTRL)를 메모리 장치(400)로 제공할 수 있다.
오버 프로그램 제어기(431)는 메모리 셀 어레이(410)에 존재하는 패스트 셀을 검출하고, 패스트 셀을 오버 프로그램하기 위해 패스트 셀 제어 신호(CTRL_fc)를 생성할 수 있다. 패스트 셀 제어 신호(CTRL_fc)는 패스트 셀을 검출하기 위한 제1 제어 신호와 패스트 셀을 오버 프로그램하기 위한 제2 제어 신호를 포함할 수 있다.
오버 프로그램 제어기(431)는 제1 제어 신호를 생성하여 전압 생성기(420)에 제공할 수 있다. 전압 생성기(420)는 제1 제어 신호에 포함된 프로그램 전압, 이레이즈 전압 및 이레이즈 검증 전압을 메모리 셀에 인가할 수 있다. 예를 들어, 메모리 셀들로 프리 프로그램을 위한 전압, 소프트 이레이즈를 위한 전압, 이레이즈 검증을 위한 전압을 순서대로 인가할 수 있다.
오버 프로그램 제어기(431)는 이레이즈 검증 결과로 형성된 메모리 셀들의 문턱 전압 산포를 기초로, 도 6b의 제3 문턱 전압 레벨(V3)보다 낮은 문턱 전압을 갖는 패스트 셀을 검출할 수 있다. 검출된 패스트 셀 정보는 메모리 셀 어레이(410)의 특정 블록에 저장될 수 있다. 패스트 셀 정보는 패스트 셀의 어드레스를 포함할 수 있다.
한편, 메모리 장치(400)는 메모리 컨트롤러(300)로부터 프로그램 커맨드와 함께 제공된 어드레스(ADDR)에 기반하여 데이터가 기록될 프로그램 대상 셀들을 판단할 수 있다. 오버 프로그램 제어기(431)는, 어드레스를 기초로 프로그램 대상 셀들 중 패스트 셀이 포함되어 있는지 확인할 수 있다.
패스트 셀이 포함되어 있는 경우, 오버 프로그램 제어기(431)는 패스트 셀로 오버 프로그램을 수행하기 위한 제2 제어 신호를 생성할 수 있다. 제2 제어 신호는 ISPP 전압 레벨 또는 ISPP 전압 펄스의 개수 중 적어도 하나에 대한 정보를 포함할 수 있다. 예를 들어, 도 9a 내지 도 9d를 참조하면, 제2 제어 신호는 패스트 셀로 인가하는 ISPP 전압 펄스의 개수(M), ISPP 시작 전압 레벨(V3'), ISPP 전압 펄스의 상승량(V4') 및 프로그램 검증 전압의 레벨(V5') 중 적어도 하나를 포함할 수 있다.
전압 생성기(420)는 제2 제어 신호에 기초하여 패스트 셀을 오버 프로그램하기 위한 전압을 생성하여 패스트 셀로 인가할 수 있다. 전압 생성기(420)는, 프로그램 대상 셀들 중 패스트 셀이 아닌 노멀 셀들에 대해서는 노멀 프로그램을 위한 전압을 생성하여 노멀 셀들로 인가할 수 있다.
한편 메모리 장치(400)의 패스트 셀 검출 동작은 메모리 컨트롤러(300)로부터 프로그램 커맨드를 수신한 이후에 이루어질 수도 있다. 이 때, 오버 프로그램 제어기(431)는 메모리 셀 어레이(410)의 모든 메모리 셀 또는 프로그램 대상 셀들에 대하여 패스트 셀 검출 동작을 수행할 수 있다. 이에 따라 메모리 셀 어레이(410)의 패스트 셀 정보가 저장되는 특정 블록에는, 모든 메모리 셀들의 검출 결과 또는 프로그램 대상 셀들의 검출 결과가 저장될 수 있다.
도 14는 본 개시의 실시예들에 따른 메모리 장치를 SSD 시스템에 적용한 예를 나타내는 블록도이다.
도 14를 참조하면, SSD 시스템(30)은 호스트(310) 및 SSD(320)를 포함할 수 있다. SSD(320)는 신호 커넥터를 통해 호스트(310)와 신호를 주고 받으며, 전원 커넥터를 통해 전원을 입력받을 수 있다. SSD(320)는 SSD 컨트롤러(321), 보조 전원 장치(322) 및 메모리 장치들(323_1~323_n)을 포함할 수 있다. 이 때, SSD(320)는 도 1 내지 도 13을 참조하여 상술된 실시예들을 이용하여 구현될 수 있다. 일 실시예에 따라, SSD 컨트롤러(321)는 오버 프로그램 제어기(321_1)를 포함할 수 있다.
전술한 실시예들이 도 14에 도시된 SSD 시스템(30)에 적용될 수 있으며, SSD 컨트롤러(321)는 메모리 장치들(323_1~323_n)에 포함된 메모리 셀들이 열화 가능성이 높은 패스트 셀인지 검출하고, 패스트 셀에 대해서는 문턱 전압 레벨을 높이기 위한 오버 프로그램을 수행할 수 있다.
오버 프로그램 제어기(321_1)는 패스트 셀을 검출하기 위해 메모리 셀들로 인가하는 일련의 전압들에 대한 정보를 포함한 제어 신호를 생성하는 구성을 포함할 수 있다.
메모리 장치들(323_1~323_n) 각각은 제어 신호에 따라 메모리 셀들로 일련의 전압을 인가할 수 있고, 오버 프로그램 제어기(321_1)는 메모리 셀들의 문턱 전압 레벨을 기초로 패스트 셀을 검출할 수 있다.
패스트 셀은 문턱 전압 산포가 왼쪽으로 쉬프트될 것으로 예상되는 메모리 셀을 의미하므로, SSD 컨트롤러(321)는 오버 프로그램 동작을 통해 문턱 전압 산포를 오른쪽으로 쉬프트하여 프로그램함으로써, 데이터 신뢰도를 향상시킬 수 있다.
이상에서와 같이 도면과 명세서에서 예시적인 실시예들이 개시되었다. 본 명세서에서 특정한 용어를 사용하여 실시예들을 설명되었으나, 이는 단지 본 개시의 기술적 사상을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 청구범위에 기재된 본 개시의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호범위는 첨부된 청구범위의 기술적 사상에 의해 정해져야 할 것이다.

Claims (10)

  1. 복수의 메모리 셀들을 포함하는 메모리 시스템의 동작 방법에 있어서,
    상기 메모리 셀들을 프리 프로그램하고, 제1 문턱 전압 레벨을 갖도록 이레이즈하는 단계;
    상기 이레이즈의 결과로서, 상기 메모리 셀들 중 상기 제1 문턱 전압 레벨보다 낮은 제2 문턱 전압 레벨 이하의 문턱 전압을 갖는 적어도 하나 이상의 패스트 셀들을 검출하는 단계; 및
    상기 패스트 셀들을 대상으로 오버 프로그램 동작을 수행하는 단계를 포함하고,
    상기 오버 프로그램 동작은, 상기 패스트 셀들의 문턱 전압을 상기 제2 문턱 전압 레벨보다 높은 제3 문턱 전압 레벨로 설정하는 것을 특징으로 하는 동작 방법.
  2. 제1항에 있어서,
    호스트로부터 프로그램 대상 셀들의 정보가 포함된 프로그램 요청을 수신하는 단계를 더 포함하고,
    상기 오버 프로그램 동작을 수행하는 단계는,
    상기 프로그램 대상 셀들 중 상기 패스트 셀이 포함되었는지에 따라, 상기 프로그램 대상 셀들에 상기 오버 프로그램 동작 또는 노멀 프로그램 동작을 수행하는 것을 특징으로 하는 동작 방법.
  3. 제1항에 있어서,
    상기 패스트 셀들의 열화 속도는, 노멀 메모리 셀들의 열화 속도보다 빠른 것을 특징으로 하는 동작 방법.
  4. 복수의 메모리 셀들을 포함하는 메모리 장치를 제어하는 메모리 컨트롤러에 있어서,
    상기 복수의 메모리 셀들을 프리 프로그램하고, 제1 문턱 전압 레벨을 갖도록 이레이즈하고, 상기 이레이즈의 결과로 생성된 문턱 전압 분포를 기초로 적어도 하나 이상의 패스트 셀들을 검출하는 오버 프로그램 제어기; 및
    검출된 상기 패스트 셀들의 정보를 저장하는 버퍼를 포함하고,
    상기 오버 프로그램 제어기는,
    상기 버퍼에 저장된 상기 패스트 셀들의 정보를 기초로, 상기 복수의 메모리 셀들의 프로그램이 수행되도록 상기 메모리 장치를 제어하는 것을 특징으로 하는 메모리 컨트롤러.
  5. 제4항에 있어서,
    호스트로부터 프로그램 대상 셀들의 정보가 포함된 프로그램 요청을 수신하는 호스트 인터페이스를 더 포함하고,
    상기 오버 프로그램 제어기는,
    상기 패스트 셀들의 정보와 상기 프로그램 대상 셀들의 정보를 기초로 오버 프로그램을 수행할 제1 대상 셀들을 결정하는 것을 특징으로 하는 메모리 컨트롤러.
  6. 제5항에 있어서,
    상기 제1 대상 셀들은,
    상기 패스트 셀들 및 제2 대상 셀들의 교집합, 합집합, 차집합, 대칭차집합(Exclusive OR, XOR) 중 어느 하나에 해당하는 것을 특징으로 하는 메모리 컨트롤러.
  7. 제5항에 있어서,
    상기 오버 프로그램 제어기는,
    상기 제1 대상 셀들 중 제1 프로그램 상태(state)인 메모리 셀들의 문턱 전압 레벨이 상기 제1 문턱 전압 레벨보다 높은 값의 제2 문턱 전압 레벨로 설정되도록 상기 메모리 장치를 제어하는 것을 특징으로 하는 메모리 컨트롤러.
  8. 제7항에 있어서,
    상기 메모리 셀들은 TLC(Triple Level Cell)로 구성되고,
    상기 제1 프로그램 상태는 제7 프로그램 상태(P7)인 것을 특징으로 하는 메모리 컨트롤러.
  9. 제7항에 있어서,
    상기 메모리 장치는 ISPP 방식으로 프로그램되고,
    상기 오버 프로그램 제어기는,
    상기 제1 대상 셀들로 인가되는 전압 펄스들의 상승량, 전압 펄스의 시작 전압 레벨, 전압 펄스들의 개수 및 검증 전압의 레벨 중 적어도 어느 하나를 증가시키는 것을 특징으로 하는 메모리 컨트롤러.
  10. 제5항에 있어서,
    상기 버퍼는 복수의 채널 홀들을 기준으로 각 메모리 셀이 배치된 위치 정보를 더 저장하고,
    상기 오버 프로그램 제어기는 상기 위치 정보를 기초로 제1 대상 셀들을 결정하는 것을 특징으로 하는 메모리 컨트롤러.
KR1020200142526A 2020-10-29 2020-10-29 문턱 전압 산포 특성을 향상한 메모리 컨트롤러, 메모리 시스템 및 그 동작 방법 KR20220057354A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020200142526A KR20220057354A (ko) 2020-10-29 2020-10-29 문턱 전압 산포 특성을 향상한 메모리 컨트롤러, 메모리 시스템 및 그 동작 방법
US17/384,219 US11894079B2 (en) 2020-10-29 2021-07-23 Memory controller, memory system with improved threshold voltage distribution characteristics, and operation method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200142526A KR20220057354A (ko) 2020-10-29 2020-10-29 문턱 전압 산포 특성을 향상한 메모리 컨트롤러, 메모리 시스템 및 그 동작 방법

Publications (1)

Publication Number Publication Date
KR20220057354A true KR20220057354A (ko) 2022-05-09

Family

ID=81379125

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200142526A KR20220057354A (ko) 2020-10-29 2020-10-29 문턱 전압 산포 특성을 향상한 메모리 컨트롤러, 메모리 시스템 및 그 동작 방법

Country Status (2)

Country Link
US (1) US11894079B2 (ko)
KR (1) KR20220057354A (ko)

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9128822B2 (en) * 2012-06-22 2015-09-08 Winbond Electronics Corporation On-chip bad block management for NAND flash memory
KR102163872B1 (ko) 2013-08-09 2020-10-13 삼성전자 주식회사 멀티 비트 메모리 장치, 그것의 온칩 버퍼 프로그램 방법 및 멀티 비트 메모리 시스템
US10825529B2 (en) * 2014-08-08 2020-11-03 Macronix International Co., Ltd. Low latency memory erase suspend operation
KR20160047667A (ko) * 2014-10-22 2016-05-03 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 프로그램 방법
US9899102B2 (en) 2015-03-31 2018-02-20 SK Hynix Inc. Semiconductor device and operating method thereof
US20160314844A1 (en) * 2015-04-22 2016-10-27 Sandisk Technologies Inc. Natural threshold voltage compaction with dual pulse program for non-volatile memory
KR102341261B1 (ko) 2017-11-13 2021-12-20 삼성전자주식회사 매스비트 카운터를 포함하는 메모리 장치 및 그의 동작 방법
US10460816B2 (en) 2017-12-08 2019-10-29 Sandisk Technologies Llc Systems and methods for high-performance write operations
KR102564774B1 (ko) 2018-09-18 2023-08-09 에스케이하이닉스 주식회사 메모리 시스템 혹은 데이터 처리 시스템의 동작을 진단하는 장치 혹은 진단을 통해 신뢰성을 확보하는 방법
KR20200071605A (ko) 2018-12-11 2020-06-19 에스케이하이닉스 주식회사 반도체 메모리 장치 및 그 동작 방법
US10734071B2 (en) 2018-12-13 2020-08-04 Western Digital Technologies, Inc. Multi-level cell programming using optimized multiphase mapping with balanced Gray code
KR20200085519A (ko) 2019-01-07 2020-07-15 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법

Also Published As

Publication number Publication date
US20220139474A1 (en) 2022-05-05
US11894079B2 (en) 2024-02-06

Similar Documents

Publication Publication Date Title
KR102423291B1 (ko) 프로그램 전압을 보정하는 플래시 메모리 장치, 3차원 메모리 장치, 메모리 시스템 및 그의 프로그램 방법
US9281068B2 (en) Nonvolatile memory and related reprogramming method
CN111798901B (zh) 页缓冲器、具有页缓冲器的存储器装置及其操作方法
CN111916130B (zh) 擦除具有极少编程页面的区块的系统与方法
KR102491134B1 (ko) 메모리 시스템, 그것의 동작 방법 및 비휘발성 메모리 장치
KR102530500B1 (ko) 메모리 시스템 및 그것의 동작 방법
KR102267046B1 (ko) 스토리지 장치 및 배드 블록 지정 방법
KR20210027783A (ko) 저장 장치 및 그 동작 방법
KR20210020689A (ko) 추론에 기초하여 요청을 처리하는 메모리 시스템 및 이의 동작 방법
KR20210024269A (ko) 빠른 읽기 페이지를 포함하는 불휘발성 메모리 장치 및 이를 포함하는 스토리지 장치
US20230117364A1 (en) Sequential wordline erase verify schemes
CN111833949A (zh) 存储器控制器、存储器系统及其操作方法
CN112099730A (zh) 存储器件及其访问方法
KR20210125297A (ko) 메모리 장치 및 이의 동작 방법
US11842779B2 (en) Memory device and operating method for performing verify operation
US20230071618A1 (en) Memory device and operating method of the memory device
US11335421B2 (en) Memory device and method of operating the same
KR20230120930A (ko) 메모리 장치 및 그 동작 방법
KR20220057354A (ko) 문턱 전압 산포 특성을 향상한 메모리 컨트롤러, 메모리 시스템 및 그 동작 방법
US11961574B2 (en) Memory device and method of operating the same
US20230307055A1 (en) Concurrent slow-fast memory cell programming
US20240145009A1 (en) Electronic device and method of operating the same
KR20230153181A (ko) 메모리 장치 및 그 프로그래밍 속도 조절 방법
KR20220156397A (ko) 메모리 장치 및 그 동작 방법
KR20230018873A (ko) 메모리 시스템 및 그 동작 방법

Legal Events

Date Code Title Description
A201 Request for examination