KR20160060917A - 비휘발성 메모리 소자 및 이의 프로그래밍 방법 - Google Patents
비휘발성 메모리 소자 및 이의 프로그래밍 방법 Download PDFInfo
- Publication number
- KR20160060917A KR20160060917A KR1020140163109A KR20140163109A KR20160060917A KR 20160060917 A KR20160060917 A KR 20160060917A KR 1020140163109 A KR1020140163109 A KR 1020140163109A KR 20140163109 A KR20140163109 A KR 20140163109A KR 20160060917 A KR20160060917 A KR 20160060917A
- Authority
- KR
- South Korea
- Prior art keywords
- memory cells
- value
- programmed
- program
- program loop
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
- G11C16/12—Programming voltage switching circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital 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/5621—Digital 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/5628—Programming or writing circuits; Data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3404—Convergence or correction of memory cell threshold voltages; Repair or recovery of overerased or overprogrammed cells
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3436—Arrangements for verifying correct programming or erasure
- G11C16/3454—Arrangements for verifying correct programming or for detecting overprogrammed cells
- G11C16/3459—Circuits or methods to verify correct programming of nonvolatile memory cells
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/52—Protection of memory contents; Detection of errors in memory contents
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0483—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0409—Online test
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2211/00—Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C2211/56—Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
- G11C2211/562—Multilevel memory programming aspects
- G11C2211/5621—Multilevel programming verification
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2211/00—Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C2211/56—Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
- G11C2211/564—Miscellaneous aspects
- G11C2211/5644—Multilevel memory comprising counting devices
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Read Only Memory (AREA)
Abstract
본 발명은 비휘발성 메모리 소자 및 이의 프로그래밍 방법에 관한 것이다. 본 발명의 일 실시예에 따르면, 선택된 메모리 셀들에 대하여 ISPP(Incremental Step Pulse Programming) 방식에 의해 프로그램 루프 순번 값을 증가시키면서 프로그래밍하는 단계; 상기 선택된 메모리 셀들 중 프로그램되지 않은 메모리 셀들의 수 또는 비가 제 1 설정 값 이하인 해당 프로그램 루프의 제 1 순번 값을 검출하는 단계; 상기 제 1 순번 값으로부터 상기 프로그램되지 않은 메모리 셀들의 수 또는 비가 상기 제 1 설정 값보다 작은 제 2 설정 값 이하가 될 것으로 예측되는 프로그램 루프의 순번 값의 기대 값인 제 2 순번 값을 산출하는 단계; 상기 제 1 순번 값을 갖는 프로그램 루프 이후, 프로그램되지 않은 메모리 셀들에 대하여 상기 제 2 순번 값을 갖는 프로그램 루프까지 프로그램 루프들을 실행하여 상기 프로그래밍되지 않은 메모리 셀들이 상기 적어도 1 개 이상의 데이터 상태를 갖도록 프로그래밍하는 단계; 상기 제 2 순번 값의 프로그램 루프에서 프로그래밍되지 않은 메모리 셀들의 수 또는 비를 검출하는 단계; 상기 검출된 제 2 순번 값의 프로그램 루프에서 프로그래밍되지 않은 메모리 셀들의 수 또는 비와 상기 제 2 설정값의 크기를 비교하는 단계; 상기 비교하는 단계에서, 상기 프로그래밍되지 않은 메모리 셀들의 상기 수 또는 비가 상기 제 2 설정값 이하인 경우 프로그래밍 패스로 판정하는 단계; 및 상기 비교하는 단계에서, 상기 프로그래밍되지 않은 메모리 셀들의 상기 수 또는 비가 상기 제 2 설정값을 초과하는 경우 프로그래밍 패일로 판정하는 단계를 포함할 수 있다.
Description
본 발명은 비휘발성 메모리 소자에 관한 것으로서, 더욱 상세하게는, 프로그래밍 속도 및 데이터 신뢰성이 향상된 비휘발성 메모리 소자 및 이의 프로그래밍 방법에 관한 것이다.
최근, 디지털 카메라, MP3 플레이어, 태블릿(tablet) 및 스마트폰과 같은 휴대용 디지털 응용 기기들의 수요와 함께 비휘발성 메모리 소자의 시장이 급속히 확대되고 있다. 상기 비휘발성 메모리 소자 중 대표적인 플래시 메모리 소자의 메모리 셀은, 일반적으로 반도체 기판의 채널 영역 위에 배치되고 상기 채널 영역으로부터 절연된 플로팅 게이트와 상기 플로팅 게이트 상에 제공되고 상기 플로팅 게이트로부터 절연된 제어 게이트를 갖는다.
상기 플래시 메모리 소자의 복수의 메모리 셀들을 프로그래밍하는 것은, 상기 복수의 메모리 셀들이 결합된 워드라인에 전압이 단계적으로 증가된 프로그램 펄스들을 각 트렌지스터의 제어 게이트에 인가하면서 해당 메모리 셀을 프로그래밍하는 증가형 스텝 펄스 프로그램(Incremental Step Pulse Program; ISPP) 알고리즘에 의해 일반적으로 수행된다. 또한, 프로그램 펄스 이후 해당 메모리 셀의 문턱 전압이 타겟 값 Vth의 레벨에 도달했는지를 체크하는 검증 알고리즘이 수행된다.
비휘발성 메모리 소자가 고집적화 및 고용량화됨에 따라 메모리 셀들 사이의 성능 편차가 더욱 발생하기 쉬우며, 상기 ISPP 알고리즘에 기초하는 종래의 프로그램 및 검증 알고리즘에 의하면 비정상적 느린 메모리 셀들(abnormal slow cells) 또는 비정상적 빠른 메모리 셀들(abnormal fast cells)과 같은 결함성 메모리 셀들은 검출되기 어렵다. 예를 들면, 종래의 ISPP 알고리즘에 의해서는 상기 비정상적 느린 메모리 셀은 허용 슬로우 비트와 중첩되어 제대로 검출되지 않으며, 상기 비정상적 빠른 메모리 셀들은 프로그램되어 해당 페이지의 프로그램이 잠정적으로 성공한 것으로 취급되기 때문에 논리적으로 그 검출이 어렵다.
이러한 결함성 메모리 셀들은, 해당 페이지의 프로그래밍된 메모리 셀들의 Vth 분포를 열화시켜 이후의 독출 동작(read operation)에서 칩 패일(chip fail)을 초래하는 요인이 된다. 특히, 상기 칩 패일은 플래시 메모리의 스케일링이 더욱 협소해짐에 따라, 메모리 셀들간 성능 편차에 의해 더욱 빈번하게 일어날 수 있으므로, 프로그램-검증 동작 동안 이를 시간-효율적으로 검출해 내는 것이 바람직하다.
따라서, 본 발명이 이루고자 하는 기술적 과제는, 비휘발성 메모리 소자의 프로그래밍 및 검증 동작 동안 에러 정정 코드에 의해 수정되지 못하고 칩 패일을 유도하는 상기 결함성 메모리 셀들 및 이를 포함하는 페이지를 시간-효율적으로 검출함으로써 프로그래밍 속도와 데이터의 신뢰성이 향상된 비휘발성 메모리 소자를 제공하는 것이다.
또한, 본 발명이 이루고자 하는 다른 기술적 과제는 전술한 이점을 갖는 비휘발성 메모리 소자의 프로그램을 제공하는 것이다.
상기 과제를 해결하고자 하는 본 발명의 일 실시예에 따르면, 적어도 1 개 이상의 데이터 상태를 갖도록 프로그래밍되는 복수의 메모리 셀들을 포함하는 메모리 셀 어레이; 워드라인을 통하여 상기 복수의 메모리 셀들 중 선택된 메모리 셀들에 대하여 ISPP 방식에 의한 프로그램 펄스 및 검증 펄스를 포함하는 복수의 프로그램 루프들을 인가하는 행 디코더; 비트라인을 통하여 상기 메모리 셀 어레이에 엑세스하여 상기 메모리 셀들 중 선택된 메모리 셀들의 상기 검증 펄스에 대한 온 또는 오프 상태를 검출하여 이를 기초로 프로그램된 메모리 셀들의 수 또는 프로그램되지 않은 메모리 셀들의 수를 카운팅하는 메모리 셀 카운팅 회로; 상기 메모리 셀 카운팅 회로로부터 생성된 카운트 결과를 수신하여, 해당 프로그램 루프의 순번을 검출하는 프로그램 루프 순번 검출기; 상기 메모리 셀 카운팅 회로로부터 생성된 카운트 결과를 수신하여 설정 값과 크기 비교하는 비교기; 및 상기 복수의 프로그램 루프에 의한 ISPP 방식에 따른 프로그램 및 검증을 수행하도록 행 디코더, 상기 메모리 셀 카운팅 회로 및 상기 비교기를 제어하는 제어 로직을 포함하는 비휘발성 메모리 소자가 제공된다. 상기 제어 로직은 상기 제어 로직은 프로그래밍된 메모리 셀의 수 또는 프로그래밍되지 않은 메모리 셀의 수를 상기 메모리 셀 카운팅 회로에 의해 독출하는 적어도 2 회 이상의 메모리 셀 카운팅 동작과 상기 프로그램 루프의 순번에 관한 기대 값을 이용하여, 상기 복수의 프로그램 루프들을 제어하고, 프로그래밍되지 않는 메모리 셀들 또는 프로그래밍되는 메모리 셀들의 수 또는 비율과 상기 설정 값을 상기 비교기를 통해 비교하여 비정상적으로 느린 메모리 셀 또는 비정상적 빠른 메모리 셀 및 이를 포함하는 페이지를 검출하여 프로그램 패스 또는 프로그램 패일을 처리할 수 있다.
일 실시예에서, 상기 메모리 셀 카운팅 회로는 페이지 버퍼의 전류 센싱 회로에 결합될 수 있다. 상기 비휘발성 메모리 소자는 플래시 메모리 소자를 포함할 수 있다.
상기 다른 과제를 해결하기 위한 본 발명의 일 실시예에 따르면, 복수의 메모리 셀들을 포함하고, 상기 복수의 메모리 셀들이 적어도 1 개 이상의 데이터 상태를 갖도록 프로그래밍되는 비휘발성 메모리 소자의 프로그래밍 방법으로서, 상기 복수의 메모리 셀들 중 선택된 메모리 셀들에 대하여 ISPP(Incremental Step Pulse Programming) 방식에 의해 프로그램 루프 순번 값을 증가시키면서 프로그래밍하는 단계; 상기 선택된 메모리 셀들 중 프로그램되지 않은 메모리 셀들의 수 또는 비가 제 1 설정 값 이하인 해당 프로그램 루프의 제 1 순번 값을 검출하는 단계; 상기 제 1 순번 값으로부터 상기 프로그램되지 않은 메모리 셀들의 수 또는 비가 상기 제 1 설정 값보다 작은 제 2 설정 값 이하가 될 것으로 예측되는 프로그램 루프의 순번 값의 기대 값인 제 2 순번 값을 산출하는 단계; 상기 제 1 순번 값을 갖는 프로그램 루프 이후, 프로그램되지 않은 메모리 셀들에 대하여 상기 제 2 순번 값을 갖는 프로그램 루프까지 프로그램 루프들을 실행하여 상기 프로그래밍되지 않은 메모리 셀들이 상기 적어도 1 개 이상의 데이터 상태를 갖도록 프로그래밍하는 단계; 상기 제 2 순번 값의 프로그램 루프에서 프로그래밍되지 않은 메모리 셀들의 수 또는 비를 검출하는 단계; 상기 검출된 제 2 순번 값의 프로그램 루프에서 프로그래밍되지 않은 메모리 셀들의 수 또는 비와 상기 제 2 설정값의 크기를 비교하는 단계; 상기 비교하는 단계에서, 상기 프로그래밍되지 않은 메모리 셀들의 상기 수 또는 비가 상기 제 2 설정값 이하인 경우 프로그래밍 패스로 판정하는 단계; 및 상기 비교하는 단계에서, 상기 프로그래밍되지 않은 메모리 셀들의 상기 수 또는 비가 상기 제 2 설정값을 초과하는 경우 프로그래밍 패일로 판정하는 단계를 포함하는 비휘발성 메모리 소자의 프로그래밍 방법이 제공될 수 있다. 일 실시예에서, 상기 제 1 설정 값은 프로그램되지 않은 메모리 셀들의 수(NUP), 프로그램될 메모리 셀들의 총 수(NTP) 대비 프로그램되지 않는 메모리 셀들의 수(NUP)의 비(NUP/NTP), 또는 페이지의 크기(NPG) 대비 프로그램되지 않은 메모리 셀들의 수(NUP)인 비(NUP/NPG)를 포함할 수 있다.
일 실시예에서, 상기 해당 프로그램 루프의 제 1 순번 값을 검출하는 단계는, 프로그램되지 않은 메모리 셀들의 수 또는 비가 상기 제 1 설정 값 이하가 될 것으로 예측되는 해당 프로그램 루프의 순번 값의 기대 값을 산출하는 단계; 및 상기 기대 값보다 작은 순번 값을 갖는 프로그램 루프에서부터 상기 프로그램되지 않은 메모리 셀들의 수를 카운팅하여, 상기 해당 프로그램 루프의 상기 제 1 순번 값을 검출하는 단계에 의해 달성될 수 있다. 상기 기대 값 보다 작은 순번 값을 갖는 프로그램 루프는 상기 기대 값보다 1 회 내지 5 회 이전의 프로그램 루프를 포함할 수 있다. 또한, 상기 기대 값은 상기 비휘발성 메모리 소자의 규격 및 요구 조건을 기초로, 타겟 값(Vth), △VISPP의 크기, △Vth 및 프로그램 펄스의 최대 값(Z) 중 적어도 어느 하나, 제품 테스트 단계에서 얻어지는 경험적, 통계적 및 산술적 요인들 중 적어도 어느 하나 또는 이의 조합을 고려하여 산출될 수 있다. 또한, 상기 제 2 순번 값은 정상적 메모리 셀들의 평균 프로그래밍 속도에 기초하여 산출될 수도 있다. 상기 제 2 설정값은, 프로그램되지 않은 메모리 셀들의 수(NUP), 프로그램될 메모리 셀들의 총 수(NTP) 대비 프로그램되지 않은 메모리 셀들의 수(NUP)의 비(NUP/NTP), 또는 페이지의 크기(NPG) 대비 프로그램되지 않은 메모리 셀들의 수(NUP)의 비(NUP/NPG)를 포함할 수 있다. 또한, 상기 제 2 설정 값은 에러 정정 코드에 의해 정정가능한 허용 한계 또는 오차 범위를 고려하여 산출될 수도 있다. 상기 제 2 순번 값은, 정상적 프로그램 속도를 갖는 메모리 셀의 규격 및 요구 조건을 기초로 상기 제 2 설정 값, 상기 제 1 순번 값, 타겟 값, △VISPP의 크기, △Vth 및 프로그램 펄스의 최대 값(Z) 중 적어도 어느 하나, 제품 테스트 단계에서 얻어지는 경험적, 통계적 및 산술적 값 중 적어도 어느 하나 또는 이의 조합을 기초로 결정될 수 있다.
상기 다른 과제를 해결하기 위한 본 발명의 다른 실시예에 따르면, 복수의 메모리 셀들을 포함하고, 상기 복수의 메모리 셀들이 적어도 1 개 이상의 데이터 상태를 갖도록 프로그래밍되는 비휘발성 메모리 소자의 프로그래밍 방법으로서, 상기 복수의 메모리 셀들 중 선택된 메모리 셀들에 대하여 ISPP 방식에 의해 프로그램 루프 순번 값을 증가시키면서 프로그래밍하는 단계; 상기 선택된 메모리 셀들 중 프로그램된 메모리 셀들의 수 또는 비가 제 3 설정 값 이상인 해당 프로그램 루프의 제 3 순번 값을 검출하는 단계; 상기 제 3 순번 값으로부터 상기 프로그램된 메모리 셀들의 수 또는 비가 상기 제 3 설정 값보다 큰 제 4 설정 값 이상일 것으로 예측되는 프로그램 루프의 순번 값의 기대 값인 제 4 순번 값을 산출하는 단계; 상기 제 3 순번 값을 갖는 프로그램 루프 이후, 프로그램되지 않은 메모리 셀들에 대하여 상기 제 4 순번 값을 갖는 프로그램 루프까지 프로그램 루프들을 실행하여 상기 프로그래밍되지 않은 메모리 셀들이 상기 적어도 1 개 이상의 데이터 상태를 갖도록 프로그래밍하는 단계; 상기 제 4 순번 값의 프로그램 루프에서 프로그래밍된 메모리 셀들의 수 또는 비를 검출하는 단계; 상기 검출된 제 4 순번 값의 프로그램 루프에서 프로그래밍된 메모리 셀들의 수 또는 비와 상기 제 4 설정값의 크기를 비교하는 단계; 상기 비교하는 단계에서, 상기 프로그래밍된 메모리 셀들의 상기 수 또는 비가 상기 제 4 설정값 이상인 경우 프로그래밍 패스로 판정하는 단계; 및 상기 비교하는 단계에서, 상기 프로그래밍된 메모리 셀들의 상기 수 또는 비가 상기 제 2 설정값 미만인 경우 프로그래밍 패일로 판정하는 단계를 포함하는 비휘발성 메모리 소자가 제공될 수 있다. 일 실시예에서, 상기 제 4 설정 값은 프로그램된 메모리 셀들의 수(NP), 프로그램될 메모리 셀들의 총 수(NTP) 대비 프로그램된 메모리 셀들의 수(NP)의 비(NP/NTP), 또는 페이지의 크기(NPG) 대비 프로그램된 메모리 셀들의 수(NP)인 비(NP/NPG)를 포함할 수 있다.
상기 해당 프로그램 루프의 제 3 순번 값을 검출하는 단계는, 프로그램된 메모리 셀들의 수 또는 비가 상기 제 3 설정 값 이상이 될 것으로 예측되는 해당 프로그램 루프의 순번 값의 기대 값을 산출하는 단계; 및 상기 기대 값보다 작은 순번 값을 갖는 프로그램 루프에서부터 상기 프로그램된 메모리 셀들의 수를 카운팅하여, 상기 해당 프로그램 루프의 상기 제 3 순번 값을 검출하는 단계에 의해 수행될 수 있다. 상기 기대 값보다 작은 순번 값을 갖는 프로그램 루프는 상기 기대 값보다 1 회 내지 5 회 이전의 프로그램 루프를 포함할 수 있다.
일 실시예에서, 상기 기대 값은 상기 비휘발성 메모리 소자의 규격 및 요구 조건을 기초로, 타겟 값(Vth), △VISPP의 크기, △Vth 및 프로그램 펄스의 최대 값(Z) 중 적어도 어느 하나, 제품 테스트 단계에서 얻어지는 경험적, 통계적 및 산술적 요인들 중 적어도 어느 하나 또는 이의 조합을 고려하여 산출될 수도 있다. 또한, 상기 제 4 순번 값은 정상적 메모리 셀들의 평균 프로그래밍 속도에 기초하여 산출될 수도 있다.
일 실시예에서, 상기 제 4 설정값은, 프로그램된 메모리 셀들의 수(NP), 프로그램될 메모리 셀들의 총 수(NTP) 대비 프로그램된 메모리 셀들의 수(NP)의 비(NP/NTP), 또는 페이지의 크기(NPG) 대비 프로그램된 메모리 셀들의 수(NP)의 비(NP/NPG)를 포함할 수 있다. 또한, 상기 제 4 설정 값은 에러 정정 코드에 의해 정정가능한 허용 한계 또는 오차 범위를 고려하여 산출될 수도 있다.
상기 제 4 순번 값은, 정상적 프로그램 속도를 갖는 메모리 셀의 규격 및 요구 조건을 기초로 상기 제 4 설정 값, 상기 제 3 순번 값, 타겟 값, △VISPP의 크기, △Vth 및 프로그램 펄스의 최대 값(Z) 중 적어도 어느 하나, 제품 테스트 단계에서 얻어지는 경험적, 통계적 및 산술적 값 중 적어도 어느 하나 또는 이의 조합을 기초로 결정될 수 있다. 상기 비휘발성 메모리 소자는 플래시 메모리 소자를 포함할 수 있다.
전술한 실시예들에서, 상기 비휘발성 메모리 소자는 단일 워드라인에 복수의 페이지들을 포함하며, 상기 복수의 페이지들 중 어느 하나의 페이지에 대하여 선택적으로 상기 단계들을 수행할 수 있다. 또한, 상기 비휘발성 메모리 소자는 풀-시퀀싱 멀티 비트 프로그래밍 또는 부분-시퀀싱 멀티 비트 프로그래밍에 의해 검증되는 멀티 레벨 셀들을 포함하며, 상기 단계들은 상기 풀-시퀀싱 멀티 비트 프로그래밍의 검증 단계 또는 상기 부분-시퀀싱 멀티 비트 프로그래밍의 검증 단계에서 수행될 수도 있다.
본 발명의 일 실시예에 따르면, 선택된 메모리 셀들에 대한 프로그램 및 검증 동작 중 해당 프로그램 루프의 온 또는 오프 셀의 카운팅과 이로부터 제 1 순번 값을 검출하는 제 1 메모리 셀 카운팅 단계와 기대 값을 이용한 제 2 메모리 셀 카운팅 단계에 의한 2 단계 카운팅을 이용하여 프로그래밍되지 않는 메모리 셀들 또는 프로그래밍되는 메모리 셀들의 문턱 전압의 거동을 모니터링함으로써, 비정상적 느린 메모리 셀들 또는 비정상적으로 빠른 메모리 셀들을 검출하여 칩 패일과 같은 프로그램 오류를 사전에 방지할 수 있는 비휘발성 메모리 소자가 제공될 수 있다.
또한, 본 발명의 다른 실시예에 따르면, 비휘발성 메모리 소자의 결함성 메모리 셀을 2 단계 카운팅에 의해 시간-효율적으로 검출함으로써 비휘발성 메모리 소자의 고집적화에 대응하여 프로그래밍 속도와 데이터의 신뢰성이 향상된 비휘발성 메모리 소자의 프로그램 방법이 제공될 수 있다.
도 1은 본 발명의 실시예에 따른 프로그래밍 방법에 의해 검출 가능한 비정상적 메모리 셀들에 의한 문턱 전압 분포의 열화 프로파일을 도시한다.
도 2는 본 발명의 일 실시예에 따른 비휘발성 메모리 소자의 구성을 나타내는 블록도이다.
도 3은 본 발명의 일 실시예에 따른 전류 센싱 회로이다.
도 4는 본 발명의 일 실시예에 따른 비정상적 느린 메모리 셀들의 검출 모드를 위한 프로그래밍 방법을 도시하는 순서도이다.
도 5는 도 4의 프로그래밍 방법에 따른 선택된 워드라인에 인가되는 일련의 프로그램 및 검증 펄스를 도시한다.
도 6은 본 발명의 일 실시예에 따른 비정상적 빠른 메모리 셀들의 검출 모드를 위한 프로그래밍 방법을 도시하는 순서도이다.
도 7은 도 6의 프로그래밍 방법에 따른 선택된 워드라인에 인가되는 일련의 프로그램 및 검증 펄스를 도시한다.
도 8a는 본 발명의 실시예에 따른 2 비트 멀티 레벨 셀을 갖는 비휘발성 메모리 소자의 2 라운드 프로그래밍 방법을 설명하기 위한 문턱 전압 분포들을 도시한다.
도 8b는 도 8a의 프로그래밍 방법에 따른 프로그래밍 동작 동안 선택된 워드라인에 인가되는 일련의 프로그램 및 검증 펄스를 도시한다.
도 9a는 본 발명의 실시예에 따른 2 비트 멀티 레벨 셀을 갖는 비휘발성 메모리 소자의 풀 시퀀스(full-sequence) 프로그래밍 방법을 설명하기 위한 문턱 전압 분포들을 도시하며, 도 9b는 도 9a의 프로그래밍 방법에 따른 프로그래밍 동작 동안 선택된 워드라인에 인가되는 일련의 프로그램 및 검증 펄스를 도시한다.
도 10은 본 발명의 일 실시예에 따른 메모리 시스템을 도시하는 블록도이다.
도 11은 본 발명의 일 실시예에 따른 고상 디스크(SSD)를 포함하는 저장 장치를 도시하는 블록도이다.
도 12는 본 발명의 다른 실시예에 따른 메모리 시스템을 도시하는 블록도이다.
도 13은 본 발명의 다른 실시예에 따른 데이터 저장 장치를 도시하는 블록도이다.
도 14는 본 발명의 일 실시예에 따른 플래시 메모리 소자 및 이를 포함하는 컴퓨팅 시스템을 도시하는 블록도이다.
도 2는 본 발명의 일 실시예에 따른 비휘발성 메모리 소자의 구성을 나타내는 블록도이다.
도 3은 본 발명의 일 실시예에 따른 전류 센싱 회로이다.
도 4는 본 발명의 일 실시예에 따른 비정상적 느린 메모리 셀들의 검출 모드를 위한 프로그래밍 방법을 도시하는 순서도이다.
도 5는 도 4의 프로그래밍 방법에 따른 선택된 워드라인에 인가되는 일련의 프로그램 및 검증 펄스를 도시한다.
도 6은 본 발명의 일 실시예에 따른 비정상적 빠른 메모리 셀들의 검출 모드를 위한 프로그래밍 방법을 도시하는 순서도이다.
도 7은 도 6의 프로그래밍 방법에 따른 선택된 워드라인에 인가되는 일련의 프로그램 및 검증 펄스를 도시한다.
도 8a는 본 발명의 실시예에 따른 2 비트 멀티 레벨 셀을 갖는 비휘발성 메모리 소자의 2 라운드 프로그래밍 방법을 설명하기 위한 문턱 전압 분포들을 도시한다.
도 8b는 도 8a의 프로그래밍 방법에 따른 프로그래밍 동작 동안 선택된 워드라인에 인가되는 일련의 프로그램 및 검증 펄스를 도시한다.
도 9a는 본 발명의 실시예에 따른 2 비트 멀티 레벨 셀을 갖는 비휘발성 메모리 소자의 풀 시퀀스(full-sequence) 프로그래밍 방법을 설명하기 위한 문턱 전압 분포들을 도시하며, 도 9b는 도 9a의 프로그래밍 방법에 따른 프로그래밍 동작 동안 선택된 워드라인에 인가되는 일련의 프로그램 및 검증 펄스를 도시한다.
도 10은 본 발명의 일 실시예에 따른 메모리 시스템을 도시하는 블록도이다.
도 11은 본 발명의 일 실시예에 따른 고상 디스크(SSD)를 포함하는 저장 장치를 도시하는 블록도이다.
도 12는 본 발명의 다른 실시예에 따른 메모리 시스템을 도시하는 블록도이다.
도 13은 본 발명의 다른 실시예에 따른 데이터 저장 장치를 도시하는 블록도이다.
도 14는 본 발명의 일 실시예에 따른 플래시 메모리 소자 및 이를 포함하는 컴퓨팅 시스템을 도시하는 블록도이다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명하기로 한다.
본 발명의 실시예들은 당해 기술 분야에서 통상의 지식을 가진 자에게 본 발명을 더욱 완전하게 설명하기 위하여 제공되는 것이며, 하기 실시예는 여러 가지 다른 형태로 변형될 수 있으며, 본 발명의 범위가 하기 실시예에 한정되는 것은 아니다. 오히려, 이들 실시예는 본 개시를 더욱 충실하고 완전하게 하고, 당업자에게 본 발명의 사상을 완전하게 전달하기 위하여 제공되는 것이다.
도면에서 동일 부호는 동일한 요소를 지칭한다. 또한, 본 명세서에서 사용된 바와 같이, 용어 "및/또는"은 해당 열거된 항목 중 어느 하나 및 하나 이상의 모든 조합을 포함한다.
본 명세서에서 사용된 용어는 실시예를 설명하기 위하여 사용되며, 본 발명의 범위를 제한하기 위한 것이 아니다. 또한, 본 명세서에서 단수로 기재되어 있다 하더라도, 문맥상 단수를 분명히 지적하는 것이 아니라면, 복수의 형태를 포함할 수 있다. 또한, 본 명세서에서 사용되는 "포함한다(comprise)" 및/또는 "포함하는(comprising)"이란 용어는 언급한 형상들, 숫자, 단계, 동작, 부재, 요소 및/또는 이들 그룹의 존재를 특정하는 것이며, 다른 형상, 숫자, 동작, 부재, 요소 및/또는 그룹들의 존재 또는 부가를 배제하는 것이 아니다.
본 명세서에서 기판 또는 다른 층 "상에(on)" 형성된 층에 대한 언급은 상기 기판 또는 다른 층의 바로 위에 형성된 층을 지칭하거나, 상기 기판 또는 다른 층 상에 형성된 중간 층 또는 중간 층들 상에 형성된 층을 지칭할 수도 있다. 또한, 당해 기술 분야에서 숙련된 자들에게 있어서, 다른 형상에 "인접하여(adjacent)" 배치된 구조 또는 형상은 상기 인접하는 형상에 중첩되거나 하부에 배치되는 부분을 가질 수도 있다.
본 명세서에서, "아래로(below)", "위로(above)", "상부의(upper)", "하부의(lower)", "수평의(horizontal)" 또는 "수직의(vertical)"와 같은 상대적 용어들은, 도면들 상에 도시된 바와 같이, 일 구성 부재, 층 또는 영역들이 다른 구성 부재, 층 또는 영역과 갖는 관계를 기술하기 위하여 사용될 수 있다. 이들 용어들은 도면들에 표시된 방향뿐만 아니라 소자의 다른 방향들도 포괄하는 것임을 이해하여야 한다.
이하에서, 본 발명의 실시예들은 본 발명의 이상적인 실시예들(및 중간 구조들)을 개략적으로 도시하는 단면도들을 참조하여 설명될 것이다. 이들 도면들에 있어서, 예를 들면, 부재들의 크기와 형상은 설명의 편의와 명확성을 위하여 과장될 수 있으며, 실제 구현시, 도시된 형상의 변형들이 예상될 수 있다. 따라서, 본 발명의 실시예는 본 명세서에 도시된 영역의 특정 형상에 제한된 것으로 해석되어서는 아니 된다. 또한, 도면의 부재들의 참조 부호는 도면 전체에 걸쳐 동일한 부재를 지칭한다.
본 명세서에서, 검증 단계에서 사용되는 '프로그래밍되지 않은 메모리 셀(들)' 또는 '프로그램된 메모리 셀(들)'이란 용어는, 프로그램 펄스가 인가되는 선택된 워드라인의 선택된 메모리 셀들로서 소거 상태의 메모리 셀과는 구별된다. 또한, 프로그래밍되지 않은 메모리 셀들은 비정상적 느린 메모리 셀들뿐만 아니라 정상적 메모리 셀들도 포함하는 개념이며, 유사하게, 프로그래밍된 메모리 셀들도 비정상적 빠른 메모리 셀들뿐만 아니라 정상적 메모리 셀들 또는 심지어 비정상적 느린 메모리 셀도 포함하는 개념임을 이해하여야 한다.
도 1은 본 발명의 실시예에 따른 프로그래밍 방법에 의해 검출 가능한 비정상적 메모리 셀들에 의한 문턱 전압 분포의 열화 프로파일을 도시한다.
도 1을 참조하면, 프로그램되지 않거나 소거 상태(E)의 메모리 셀들은 제 1 문턱 전압 분포(D1)를 가지며, ISPP 방식에 의해 특정 타겟 값 P을 갖도록 프로그래밍이 완료된 메모리 셀들은, 화살표 K로 나타낸 것과 같이 문턱 전압이 이동하여 제 2 문턱 전압 분포(D2)를 갖게 된다. 싱글 레벨 메모리 셀의 경우 타켓 값은 1 개여서 1 개의 문턱 전압 분포를 갖지만, 2 비트 이상의 멀티 레벨 메모리 셀의 경우 상기 타겟 값은 2 N-1 개(N은 비트수임)일 수 있으며, 그에 따른 2N-1개의 프로그램 상태의 문턱 전압 분포들을 갖게 된다.
통상적으로 메모리 셀들의 성능 편차로 인하여 해당 메모리 셀의 문턱 전압 Vth은 상기 프로그램 펄스의 전압 진폭에 완벽하게 대응되지 않기 때문에, 메모리 셀들에는 더 많은 회수의 프로그램 펄스에 의해서 원하는 분포에 도달하는 비정상적 느린 메모리 셀이 있는가 하면, 비교적 적은 회수의 프로그램 펄스만으로 원하는 분포에 도달하는 비정상적 빠른 메모리 셀이 있다. 상기 비정상적 느린 메모리 셀은 제 2 문턱 전압 분포(D2)을 낮은 전압 쪽으로 테일 분포(D3)를 갖도록 열화시키고, 상기 비정상적 빠른 메모리 셀은 제 2 문턱 전압 분포(D2)를 높은 전압 쪽으로 테일 분포(D4)를 갖도록 열화시킨다. 이러한 열화 현상은 추후 독출 동작에서 ECC에 의해 정정되지 않고 칩 패일을 발생시키지만, 본 발명의 실시예에 따른 프로그래밍 방법은, 프로그래밍된 메모리 셀의 수 또는 프로그래밍되지 않은 메모리 셀의 수를 상기 메모리 셀 카운팅 회로에 의해 독출하는 적어도 2 회 이상의 메모리 셀 카운팅 동작과 상기 프로그램 루프의 순번에 관한 기대 값을 이용하여, 상기 복수의 프로그램 루프들을 제어하고, 프로그래밍되지 않는 메모리 셀들 또는 프로그래밍되는 메모리 셀들의 수 또는 비율과 상기 설정 값을 비교함으로써, 프로그래밍되지 않는 메모리 셀들 또는 프로그래밍되는 메모리 셀들의 문턱 전압의 거동을 모니터링하여, 비정상적으로 느린 메모리 셀은 물론 비정상적으로 빠른 메모리 셀을 검출하여 문턱 전압 분포를 열화시키는 셀들을 검출할 수 있다.
도 2는 본 발명의 일 실시예에 따른 비휘발성 메모리 소자(100)의 구성을 나타내는 블록도이며, 도 3은 본 발명의 일 실시예에 따른 전류 센싱 회로이다.
도 2를 참조하면, 비휘발성 메모리 소자(100)는 복수의 메모리 셀들의 셀 어레이(110), 행 디코더(120), 판독/기입 회로(130), 및 열 디코더(140)를 포함할 수 있다. 셀 어레이(110)는 워드라인들(WL0, WL1, … , WLn-2, WLn-1) 또는 선택 라인들(SSL, GSL)을 통해 행 디코더(120)에 연결될 수 있다. 또한, 셀 어레이(110)는 비트라인들(BL0, BL1, … , BLn-2, BLn-1)을 통해 판독/기입 회로(130)에 연결될 수 있다.
비휘발성 메모리 소자(100)가 낸드 플래시 메모리 소자인 경우, 셀 어레이(110)는 복수의 셀 스트링들(160)을 포함할 수 있다. 각각의 셀 스트링들(160)은 서로 직렬 연결된 복수의 메모리 셀들을 포함한다. 셀 스트링들(160)의 일단에는 스트링 선택 트랜지스터(SST)가 연결되고, 이의 타단에는 접지 선택 트랜지스터(GST)가 연결될 수 있다. 공통 소스 라인(CSL)은 접지 선택 트랜지스터들(GST)의 일 단에 연결될 수 있다. 워드라인들(WL0, WL1, … , WLn-2, WLn-1)은 열 방향을 따라 배열된 메모리 셀들(MC0, MC1, … , MCm-1)의 제어 게이트들에 각각 연결될 수 있다. 비트라인들(BL0, BL1, … , BLn-2, BLn-1)은 스트링 선택 트랜지스터들(SST)의 일 단들에 연결될 수 있다.
각각의 워드라인(WL0, WL1, … , WLn-2, WLn-1)에 연결되는 행 방향의 복수의 메모리 셀들은 논리적 페이지를 구성하며, 워드라인(WL0, WL1, … , WLn-2, WLn-1)당 페이지들의 수는 메모리 셀의 저장 용량에 의해 결정될 수 있다. 예를 들면, 저장 레벨에 따라, 메모리 셀당 1 bit를 저장하는 싱글 레벨 셀 메모리, 메모리 셀당 2 bits를 저장하는 멀티 레벨 셀(MLC) 메모리 소자, 메모리 셀당 3 bits를 저장하는 8LC 메모리 소자, 그리고, 메모리 셀당 4 bits를 저장하는 16LC 메모리 소자가 제공될 수 있다. 메모리 셀 어레이(110)의 메모리 셀들은 반도체 기판의 주면에 평행한 2차원, 또는 상기 반도체 기판의 주면에 대해 수직한 채널을 갖거나 1 층 이상의 메모리 어레이층이 수직 방향으로 적층된 3차원 어레이 구조를 가질 수 있다.
상기 페이지를 구성하는 메모리 셀들은 동일한 프로그램 사이클에서 프로그래밍될 수 있다. 예를 들면, 제 1 워드라인(WL1)에 연결되는 각각의 메모리 셀들(MC0 ~ MCm-1)은 동일한 프로그램 사이클에서 같은 프로그램 상태(또는 타겟 값)로, 또는 서로 다른 프로그램 상태로 프로그래밍될 수 있다. 예를 들면, 하나의 프로그램 사이클에서 메모리 셀(MC0)은 프로그램 상태(P1)로, 메모리 셀(MC1)은 프로그램 상태(P2), 메모리 셀들(MC2, MCm-1)은 프로그램 상태(P3)로 프로그래밍될 수 있다. 그러나, 이는 예시적이며, 본 발명이 이에 한정되는 것은 아니다. 다른 실시예에서, 인터리브드 아키텍쳐(interleaved architecture)를 갖는 싱글 레벨 셀의 경우 짝수 및 홀수 셀들이 2 개의 서로 서로 다른 페이지들을 구성할 수 있다. 예를 들면, 4 kB의 SLC 소자는 65,536개의 메모리 셀들의 워드라인을 가질 수 있다. 또한, 멀티 레벨 셀의 경우에는 각 셀이 하나의 리스트 시그니피컨트 비트(Least Significant Bit; LBS)와 하나의 모스트 시그니피컨트 비트(Most Significant Bit; MSB)를 저장하므로 4 개의 페이지들을 갖게 된다. 예를 들면, 이 경우, 짝수 비트라인들 상의 MSB 및 LSB 페이지들과 홀수 비트라인 상의 MSB 및 LSB 페이지들이 제공될 수도 있다.
행 디코더(120)는 선택된 메모리 블록의 워드라인들 중 어느 하나를 선택할 수 있다. 행 디코더(120)는 선택된 메모리 블록의 워드라인에 전압 발생기(미도시)로부터의 워드라인 전압(VWL)을 인가한다. 프로그램 동작시 행 디코더(120)는 선택 워드라인(Selected WL)에 프로그램 전압(Vpgm)과 검증 전압(Vvfy)을, 비선택 워드라인(Unselected WL)에는 패스 전압(Vpass)을 인가할 수 있다.
메모리 셀 어레이(110)는 열 디코더(140)를 통해 비트라인들(BL0, BL1, … , BLn-2, BLn-1)에 의해 어드레싱될 수 있다. 독출/기록 회로(130)는 열 디코더(140)를 통해 외부로부터 전달되는 데이터를 수신하거나 외부로 데이터를 출력할 수 있다.
독출/기록 회로(130)는 페이지 버퍼를 포함할 수 있으며, 동작 모드에 따라 감지 증폭기로서 또는 기입 드라이버로서 동작할 수 있다. 본 명세서에서, 독출/기록 회로, 또는 페이지 버퍼는 등가적 의미로 사용될 수 있으며, 이 경우 상호 호환적으로 이해되어야 한다. 예를 들면, 프로그램 동작시, 독출/기록 회로(130)는 외부 회로로부터 데이터를 수신하여 셀 어레이(110)의 비트라인으로 프로그램될 데이터에 대응하는 비트라인 전압을 전달한다. 독출 동작시, 독출/기록 회로(130)는 선택된 메모리 셀에 저장된 데이터를 비트라인을 통해서 독출할 수 있으며, 상기 독출된 데이터를 래치하여 외부로 출력할 수 있다.
독출/기록 회로(130)는 제어 로직(180)으로부터 전송되는 전송 신호에 응답하여 메모리 셀의 프로그램 동작에 수반하는 검증 동작을 수행할 수 있으며, 상기 전송 신호에 응답하여 검증 읽기 결과를 복수 회에 걸쳐 페이지 버퍼 신호로서 출력할 수 있다.
일 실시예에서, 독출/기록 회로(130)의 상기 독출 동작은 비트라인 기생 캐패시터를 이용한 전하 적분(charge integration)을 이용할 수 있다. 예를 들면, 도 3에 도시된 전류 센싱 회로(130_CS)를 통하여 상기 전하 적분에 의해 비트라인 기생 캐패시터의 상태를 검출하여 상기 비트라인에 결합된 선택된 메모리 셀의 프로그램 상태를 검출할 수 있다.
도 3을 참조하면, CBL는 비트라인 기생 캐패시터를 가리킨다. 낸드 스트링은 전류 발생기로서 등가적으로 취급될 수 있다. 상기 비트라인의 차지 동안, PMOS 트랜지스터(MP)는 접지되고, NMOS 트랜지스터(MN)은 고정된 전압값 V1으로 유지될 수 있다. 상기 V1의 전형적인 값은 2 V이다. 차지 트랜지언트의 종료점에서 비트라인은 식 1의 전압 VBL을 가질 것이다.
[식 1]
VBL = V1 - VTHN, 여기서, VTHN은 NMOS (MN)의 문턱 전압임.
이 때, NMOS 트랜지스터(MN)고 PMOS 트랜지스터(MP)가 턴오프된다. 비트라인 기생 캐패시터 CBL는 자유롭게 방전될 수 있다. 일정 시간 TVAL 후에, NMOS 게이트는 V1보다 작은 V2 (예를 들면, 1.4 내지 1.6 V)로 바이어스될 수 있다. 식 2를 만족하도록 비트라인 전압의 VBL 방전이 충분히 이루어질 정도로 시간 TVAL 시간이 경과되면 NMOS(NM)은 턴온되고, 노드 전압 출력 (VOUT)은 비트라인의 전압과 동일해진다. 마지막으로, 아나로그 전압 VOUT은 간단한 래치들을 사용하여 디지털 포맷으로 변환될 수 있다.
[식 2]
VBL < V2 -VTHN
본 발명의 실시예에 따르면, 페이지 단위로 메모리 셀들을 프로그래밍하는 것은, ISPP 알고리듬에 의해 수행될 수 있으며, ISPP 알고리듬에 따른 프로그램 펄스 이후 해당 메모리 셀의 문턱 전압 VTHR이 타겟 전압 Vth 레벨에 도달했는지를 체크하는 검증 알고리즘은 전술한 비트라인에 결합되고, 전류 센싱 회로(130_CS)를 통해 달성될 수 있다. 전류 센싱 회로(130_CS)는 도시된 것과 같이, 독출/기록 회로(130) 내에 제공될 수 있다.
전류 센싱 회로(130_SC)는 검증 동작에서 선택된 메모리 셀의 온 또는 오프 상태를 검출하며, 이를 기초로 프로그램된 메모리 셀들의 수 또는 프로그램되지 않은 메모리 셀들의 수가 메모리 셀 카운팅 회로(130_CC)에 의해 카운트될 수 있다. 메모리 셀 카운팅 회로(130_CC)는, 예를 들면, 래치 회로와 같은 다른 컴포넌트들이 결합되어 프로그래밍 상태의 메모리 셀 및/또는 소거 상태의 메모리 셀의 수를 카운트할 수 있다. 또한, 메모리 셀 카운팅 회로(130_CC)는 프로그램 루프들이 실행되는 동안 프로그램된 메모리 셀의 수 또는 프로그램되지 않은 메모리 셀의 수를 누적하여 기억할 수 있는 용량을 가질 수도 있다. 메모리 셀 카운팅 회로(130_CC)는 전류 센싱 회로(130_SC)와 함께 독출/기록 회로(또는 페이지 버퍼; 130) 내에 제공될 수 있다.
다른 실시예에서, 메모리 셀 카운팅 회로는 전류 센싱 회로(130_SC)에 결합된 다른 적합한 아나로그 또는 디지털 비트 카운트를 수행할 수 있는 회로이거나 적합한 아나로그 또는 디지털 디코더가 상기 페이지 버퍼에 결합되어 전류 센싱 회로(130_SC)로부터 출력되는 결과에 기초에 프로그램밍 상태의 메모리 셀 및/또는 소거 상태의 메모리 셀의 수를 카운트하여 카운트 결과를 출력할 수도 있다. 이 경우, 메모리 셀 카운팅 회로(130_CC)는 독출/기록 회로(또는 페이지 버퍼; 130)와 별도의 외부 회로에 제공될 수도 있다.
메모리 셀 카운팅 회로(130_CC)로부터 출력된 카운트 결과(CR)는 프로그램 루프 순번 검출기(160)에 입력되고, 프로그램 루프 순번 검출기(160)는 비정상적 느린 메모리 셀들의 검출 모드에서는 선택된 메모리 셀들 중 프로그램되지 않은 메모리 셀들의 수 또는 비가 제 1 설정 값 이하인 프로그램 루프의 제 1 순번 값을 검출한다. 다른 예로서, 프로그램 루프 순번 검출기(160)는 비정상적 빠른 메모리 셀들의 검출 모드에서, 선택된 메모리 셀들 중 프로그램된 메모리 셀들의 수 또는 비가 제 1 설정 값 이상인 해당 프로그램 루프의 제 1 순번 값을 검출한다.
제어 로직(180)은 비정상적 느린 메모리 셀들의 검출 모드에서는 프로그램되지 않은 메모리 셀들에 대하여 상기 제 1 순번 값의 프로그램 루프 이후 상기 프로그램되지 않은 메모리 셀들의 수 또는 비가 제 2 설정 값 이하일 것으로 예측되는 제 2 순번 값을 갖는 프로그램 루프까지 프로그램 루프들을 실행하여 프로그래밍을 할 수 있다. 메모리 셀 카운팅 회로(130_CC)는 상기 제 2 순번 값의 프로그램 루프에서 프로그래밍되지 않은 메모리 셀들의 수를 검출한다.
메모리 셀 카운팅 회로(130_CC)로부터 생성된 카운트 결과(CR)는 비교기(170)로 전달되고, 비교기(170)는 상기 검출된 제 2 순번 값의 프로그램 루프에서 프로그래밍되지 않은 메모리 셀들의 수 또는 비와 상기 제 2 설정값의 크기를 비교하고 그 결과 값을 패스/패일 검증 회로(150)에 반환할 수 있다.
다른 실시예에서, 제어 로직(180)은 비정상적 빠른 메모리 셀들의 검출 모드에서는 프로그램된 메모리 셀들에 대하여 상기 제 1 순번 값의 프로그램 루프 이후 상기 프로그램된 메모리 셀들의 수 또는 비가 제 2 설정 값 이상일 것으로 예측되는 제 2 순번 값을 갖는 프로그램 루프까지 프로그램 루프들을 실행하여 프로그래밍을 할 수 있다. 메모리 셀 카운팅 회로(130_CC)는 상기 제 2 순번 값의 프로그램 루프에서 프로그래밍된 메모리 셀들의 수를 검출한다. 메모리 셀 카운팅 회로(130_CC)로부터 생성된 카운트 결과(CR)는 비교기(170)로 전달되고, 비교기(170)는 상기 검출된 제 2 순번 값의 프로그램 루프에서 프로그래밍되지 않은 메모리 셀들의 수 또는 비와 상기 제 2 설정값의 크기를 비교하고 그 결과 값을 패스/패일 검증 회로(150)에 반환할 수 있다.
패스/패일 검증 회로(150)는 프로그램 루프 카운트가 증가할 때마다 메모리 셀이 원하는 레벨에 도달하였는지 검증한다. 메모리 셀이 원하는 문턱 전압, 즉 타겟 값을 가지면 프로그램 패스로 판단하여 상기 메모리 셀에 대한 프로그램 및 프로그램 검증 동작이 종료되지만, 메모리 셀이 원하는 문턱 전압에 도달하지 못하면 프로그램 패일로 판단하여 패스/패일 검증 회로(150)는 카운트 신호(미도시)를 발생시킬 수 있다. 패스/ 패일 검증 회로(150)은 프로그램 성공 여부를 판단하여 그 결과를 제어 로직(180)에 전달할 수 있다.
제어 로직(180)은 명령어(CMD)에 응답하여, ISPP 방식에 따른 펄스 프로그램 및 검증 동작을 수행하도록 행 디코더(120), 독출/기록 회로(130), 열디코더(140), 패스/페일 검출기(150), 프로그램 루프 순번 검출기(160), 및/또는 비교기(170)를 제어할 수 있다. 제어 로직(180)은 패스/페일 검출기(150)로부터 전달되는 프로그램 성공 여부(Pass/Fail)를 참조하여 프로그램 동작의 종료 또는 계속 진행 여부를 결정할 수 있다. 패스/페일 검증 회로(150)로부터 프로그램 패일(Fail)의 결과를 수신하는 경우, 제어 로직(180)은 후속 프로그램 루프(Loop)를 진행하도록 Vpgm 및 Vvfy를 발생시키는 전압 발생기(미도시) 및 페이지 버퍼(130)를 제어할 것이다. 이처럼, 증가하는 프로그램 루프 수에 따라 프로그램을 진행하기 위하여 제어 로직(180)은 프로그램 루프의 순번을 수신할 수 있다. 반대로, 제어 로직(180)이 프로그램 패스(Pass)의 결과를 제공받으면, 선택된 메모리 셀들에 대한 프로그램 동작은 종료하게 될 것이다.
다양한 설계들에서, 제어 로직(180)은 메모리 셀 어레이(110)와 동일 칩 내에 집적되거나 다른 칩에 배치될 수 있으며, 본 발명이 이에 제한되는 것은 아니다. 예를 들면, SSD(솔리드 스테이트 드라이브)에서와 같이, 제어 로직(180)은 메모리 셀 어레이(110)와 분리된 별도의 칩에 제공되는 플래시 트랜스레이션 레이어(flash translation layer; FTL)에 마련될 수도 있다.
또한, 전술한 패스/페일 검증 회로(150), 프로그램 루프 순번 검출기(160) 및 비교기(170)는 제어 로직(180)과 별도로 형성된 것을 예시하고 있지만, 본 발명이 이에 한정된 것은 아니다. 예를 들면, 패스/페일 검증 회로(150), 프로그램 루프 순번 검출기(160) 및 비교기(170) 중 적어도 어느 하나는 제어 로직(180) 내에 소프트웨어 또는 하드웨어적으로 구현될 수도 있을 것이다.
도 4는 본 발명의 일 실시예에 따른 비정상적 느린 메모리 셀들의 검출 모드를 위한 프로그래밍 방법을 도시하는 순서도이며, 도 5는 도 4의 프로그래밍 방법에 따른 선택된 워드라인에 인가되는 일련의 프로그램 및 검증 펄스를 도시한다. 도 5에서, K, S, P, T, 및 Z는 프로그램 펄스의 해당 순번을 나타내는 정수이다.
도 4와 함께 도 5를 참조하면, 복수의 메모리 셀들이 적어도 1 개 이상의 데이터 상태를 갖도록, 상기 복수의 메모리 셀들 중 선택된 메모리 셀들에 대하여 ISPP 방식에 의해 프로그램 루프 순번을 증가시키면서 프로그래밍 동작이 개시된다(S10). 상기 선택된 메모리 셀들은 선택된 워드라인에 결합된 메모리 셀들이며 단일 페이지를 구성할 수 있다. 각각의 프로그램 루프(Loop1, Loop2, … , LoopZ)는 선택된 메모리 셀들을 프로그램하기 위하여 선택된 워드라인에 프로그램 전압(Vpgm1, Vpgm2, …, VpgmZ)을 인가하는 프로그램 동작 및 이에 후속하여 선택된 상기 워드라인에 검증 전압(Vvfy)을 인가하여 선택된 메모리 셀의 온/오프를 체크하는 검증 동작을 포함한다.
상기 검증 동작은 프로그램된 셀이 타겟 값인 문턱 전압에 도달했는지 여부로 판단되며, 페이지 버퍼(도 1의 130)는 선택된 메모리 셀의 비트라인을 통해서 해당 메모리 셀들의 온/오프 여부를 감지하고, 감지된 데이터는 패스/패일 검출기(150)에 제공될 수 있다.
상기 검증 전압은 NOR 메모리 셀 또는 NAND 메모리 셀 모두에서 게인 마진과 문턱 전압 분포의 적합한 할당을 위해 통상의 읽기 동작에서 사용되는 전압보다는 높을 수 있다. 상기 NOR 메모리 소자의 경우에는 검증 동작시, 레퍼런스 메모리 셀의 임계 전압과의 비교 동작이 수반될 수도 있다.
최초 프로그램 루프(Loop1)에서는 선택된 워드라인에 프로그램 펄스(Vpgm1)가 인가되고, 이후 검증 전압 Vvfy가 인가되어 검증 동작이 수행되며, 해당 메모리 셀이 타겟 전압 Vth에 도달한 것으로 판단되면, 해당 셀에 프로그램 금지(program inhibit)가 설정되고 다음 프로그램 루프들에서 제외된다. 그렇지 않은 경우에는 해당 메모리 셀에 대해 일정한 값, △VISPP 만큼 증가된 프로그램 전압이 인가되면서 두번째 프로그램 루프(Loop2)가 수행된다. 이러한 방식으로 선택된 메모리 셀들의 워드라인으로 △VISPP 만큼 배증되는 프로그램 전압과 일정한 크기의 검증 전압이 지속적으로 제공될 것이다. 프로그램 루프의 순번이 증가될수록 프로그램되지 않은 메모리 셀의 문턱 전압 Vth은 △VISPP과 동등하거나 더 작은 크기의 △Vth 만큼 도 1에 도시한 그래프에서 타겟 값을 향하여 이동할 수 있다.
△VISPP가 작을수록 프로그램된 셀의 문턱 전압의 본포의 폭이 작아져 바람직하지만 프로그램 펄스의 수가 더욱 증가되고, 더 많은 프로그램 시간을 필요로 하므로 △VISPP는 적절히 선택될 수 있다. 예를 들면, 싱글 레벨 메모리 셀에서, 프로그램 시간이 약 200 ㎲의 제약을 갖는다면, 비제한적 예로서, 전체 프로그램 루프의 수(도 5에서 LoopZ의 순번 값)은 6 내지 20의 범위 내에서 정해질 수 있으며, △VISPP는 0.2 V 내지 1 V의 범위 내의 전압을 가질 수 있으며, 최초 Vpgm1은 10 V 내지 14 V 정도로 정해질 수 있다. 또한, 검증 동작은, Coarse-Fine 센싱 또는 Fine 센싱이 결합되어 수행될 수 있으며, 본 발명이 이에 한정되는 것은 아니다.
상기 ISPP 방식에 의해 프로그램 루프 순번이 증가되면서 프로그램 및 검증 동작이 수행되는 동안, 상기 선택된 메모리 셀들 중 프로그램되지 않은 메모리 셀들의 수 또는 비(N1st_UP)이 제 1 설정 값(NREF1) 이하인 해당 프로그램 루프의 순번 값(이를 본 명세서에서는 제 1 순번 값이라 함, S)을 검출한다(S20). 상기 제 1 순번 값 (S)의 검출은, 검출 동작에서 프로그램되지 않은 메모리 셀들의 수를 카운팅하여, 이의 결과인 수 또는 비(N1st_UP)이 제 1 설정 값(NREF1) 이하인 루프의 순번을 식별함으로써 달성될 수 있다. 이와 같이, ISPP 방식의 검증 단계에서, 프로그램되지 않은 메모리 셀들의 수 또는 비(N1st_UP)이 제 1 설정 값(NREF1) 이하인지 판단하기 위해 프로그램되지 않은 메모리 셀들의 수를 카운팅하는 동작을 본 명세서에서는 '제 1 메모리 셀 카운팅'이라 한다. 상기 제 1 메모리 셀 카운팅 동작은 도 2 및 도 3을 참조하여 전술한 다양한 실시예에 따른 전류 센싱 회로(130_CS) 및 이에 결합된 메모리 셀 카운팅 회로(130_CC)을 통해서 달성될 수 있다.
일 실시예에서, 상기 제 1 설정 값(NREF1)은, 타겟 값인 Vvfy 미만의 문턱 전압 값을 갖는 프로그램되지 않은 메모리 셀들의 수(NUP)로 정의될 수 있다. 이 경우, 상기 제 1 설정 값(NREF1)은 정적 값이다. 다른 실시예에서, 상기 제 1 설정 값(NREF1)은 프로그램될 메모리 셀들의 총 수(NTP) 대비 프로그램되지 않은 메모리 셀들의 수(NUP)의 비(=NUP/NTP)로 정의될 수도 있다. 예를 들면, 상기 제 1 설정 값(NREF1)은 전체 프로그램될 메모리 셀들의 총 수(NTP)의 백분율로 정의될 수 있다. 이와 같은 정의에 따르면, 선택된 워드라인에서 프로그램될 메모리 셀들의 수(NTP)가 데이터 입출력부를 통하여 입력되는 데이터 값에 따라 달라질 수 있으므로, 상기 제 1 설정 값(NREF1)은 동적 값을 가질 수 있다.
또 다른 실시예에서, 상기 제 1 설정 값(NREF1)은 선택된 워드라인에 결합된 메모리 셀의 총 수(또는 페이지의 크기, NPG) 대비 프로그램되지 않은 메모리 셀들의 수(NUP)인 비(NUP/NPG)로 정의될 수 있다. 이 경우, 예를 들면, 상기 제 1 설정 값(NREF1)은 선택된 워드라인에 결합된 메모리 셀의 총 수의 백분율로 정의될 수 있다. 이와 같은 정의에 따르면 상기 제 1 설정 값(NREF1)은 정적 값을 가질 수 있다.
본 발명의 실시예에 따라 비정상적으로 느린 메모리 셀을 검출하고자 하는 경우, 상기 제 1 설정 값(NREF1)은 다음의 표 1과 같이 요약될 수 있을 것이다.
제 1 설정 값(NREF1) | 정의 | 타입 | 범위(단위) | 구체적 예 페이지 크기: 18048 Byte 데이터 크기:18016 Byte |
실시예 1 | NUP | 정적 값 | 약 102 ~ 105 bits | 1805*8 bits |
실시예 2 | NUP/NTP | 동적 값 | 약 10% 내지 30% | 18016*8*0.2 bits |
실시예 3 | NUP/NPG | 정적 값 | 약 10% 내지 30% | 18048*8*0.2 bits |
표 1을 참조하면, 제 1 설정 값(NREF1)은, 전술한 바와 같이, 값 NUP(실시예 1), 비 NUP/NTP(실시예 2) 또는 NUP/NPG(실시예 3)의 형태로 정의될 수 있다. 이와 같이 정의된 경우, 상기 제 1 설정 값(NREF1)은 각 실시예마다 표시된 범위 내에서 적절히 선택될 수 있다. 구체적으로는, 페이지 크기가 18048 Byte이고, 해당 페이지에 기록될 데이터의 크기가 18016 Byte임을 가정할 때, 비휘발성 메모리 소자의 경우, NUP는 1805×8이고, NUP/NTP(20% 가정)는 18016×8×0.2 bits 이며, NUP/NPG(20% 가정)는 18048×8×0.2 bits 일 수 있다.
표 1과 관련하여, 비휘발성 메모리 소자의 페이지의 크기는 4K Byte 내지 256 K Byte의 범위 내의 크기를 가질 수 있으며, 선택된 워드라인에 결합된 프로그래밍되어야 할 메모리 셀들의 수 또는 비는 상기 페이지의 크기(NPG) 범위 내에서 기록될 데이터 값에 의해 결정될 수 있다. 상기 페이지의 크기는 워드라인의 RC 딜레이 및 파울러-노드하임 프로그램과 같은 프로그램 메커니즘과 같은 물리적 및 전기적 특성에 의해 결정되는 것이기 때문에, 기술 세대가 진보될수록 상기 페이지의 크기(NPG)도 커질 것이며, 그에 따라 상기 제 1 설정 값(NREF1)도 커질 수 있을 것이므로 상기 제 1 설정 값(NREF1)을 비의 개념으로 정의하는 것은 스케일링 측면에서 바람직하다.
일 실시예에서, 상기 제 1 메모리 셀 카운팅 동작은 매 프로그램 루프의 검증 단계에서 수행될 수 있지만, 본 발명이 이에 한정되는 것은 아니다. 예를 들면, 다른 실시예에서, 상기 제 1 메모리 셀 카운팅 동작은 프로그램되지 않은 메모리 셀들의 수 또는 비가 상기 제 1 설정 값(NREF1) 이하가 될 것이라 예측되는 해당 프로그램 루프의 순번 값의 기대 값 P을 가정적으로 미리 정하고, 기대 값 P 보다 적어도 1회 내지 5회 이전의 프로그램 루프에서부터 상기 제 1 메모리 셀 카운팅 동작을 수행하여 상기 제 1 설정 값(NREF1) 이하가 되는 해당 프로그램 루프를 검출할 수 있다. 이 경우, 상기 예측된 해당 프로그램 루프의 순번 값의 기대 값 P은, 비휘발성 메모리 소자의 규격 및 요구 조건을 기초로, 타겟 값(Vth), △VISPP의 크기, △Vth 및 프로그램 펄스의 최대 값(Z) 중 적어도 어느 하나, 제품 테스트 단계에서 얻어지는 경험적, 통계적 및 산술적 요인들 중 적어도 어느 하나 또는 이의 조합을 고려하여 산출될 수 있다. 예를 들면, 정상적인 메모리 셀들의 평균 프로그래밍 속도에 기초하여 기대 값 P를 가정적으로 산출될 수 있다.
전술한 실시예에서와 같이, 한정된 수의 연속적 프로그램 루프들(LoopK, LoopK+1, LoopS)의 각 검증 단계 내에서만 상기 제 1 메모리 셀 카운팅 동작을 수행하는 경우, 상기 전류 센싱 회로 및 메모리 셀 카운팅 회로의 구동과 그에 따른 연산에 따른 리소스를 경감시켜 전체 프로그램 및 검증 동작에 요구되는 전력과 시간을 경감시킬 수 있다.
도 5는 프로그램되지 않은 메모리 셀들의 수 또는 비(N1st_UP)이 상기 제 1 설정 값 이하인 프로그램 루프가 LoopS이고, 프로그램 루프 LoopS의 순번 S의 검출을 위해 예측된 기대 값 P의 순번 값을 갖는 프로그램 루프 LoopP보다, 예를 들면, 4 단계 전인 프로그램 루프 LoopK의 검증 동작에서부터 상기 메모리 셀 카운팅 회로를 턴온시켜 상기 제 1 메모리 셀 카운팅 동작(S20)이 개시되는 것을 예시한다.
상기 전류 센싱 회로와 함께 메모리 셀 카운팅 회로를 턴온시켜 상기 제 1 메모리 셀 카운팅 동작(S20)이 시작되는 프로그램 루프(LoopK)의 순번 값 K는 오차 마진 또는 제품 테스트 단계에서 얻어지는 경험적, 통계적 및 산술적 계산에 의해 결정될 수 있으며, 전술한 바와 같이 예측된 순번 값 P로부터 적어도 1회 내지 5회 이전의 순번 값일 수 있다. 그러나, 이는 예시적이며, 상기 순번 값 K는 비휘발성 메모리의 성능 또는 용량에 따라 달라지는 실험적 상수로 여하의 값에서 최적화될 수 있다.
프로그램 루프 LoopK에서 시작된 상기 제 1 메모리 셀 카운팅 동작(S20)은, 프로그램 루프 LoopS에서 종료된다. 이때, 상기 제 1 메모리 셀 카운팅 동작은 프로그램 루프 LoopS의 순번 값 S(이때, 'S'는 제 1 순번 값이 됨)을 반환할 수 있다. 상기 제 1 메모리 셀 카운팅 동작에서 순번 값 S의 검출은 프로그램 루프 순번 검출기(도 2의 160 참조)에 의해 달성될 수 있다. 프로그램 루프 순번 검출기(160)는 순번 값 S를 제어 로직(180)으로 반환할 수 있다. 또한, 프로그램되지 않은 메모리 셀의 수 또는 비(N1st_UP)도 제어 로직(180)으로 반환될 수 있다.
상기 반환된 제 1 순번 값 S를 기초로, 이후 프로그램 루프들이 순차적으로 진행될 경우 상기 프로그램되지 않은 메모리 셀들의 수 또는 비(N2nd_UP)가 제 2 설정 값(NREF2) 이하가 될 것으로 예측되는 프로그램 루프의 순번 값의 기대값인 제 2 순번 값 T를 산출한다(S30). 상기 제 2 순번 값 T은 프로그램 루프의 최대 값 Z 와 동등하거나 그 미만일 수 있다. 제 2 순번 값 T의 산출은 별도의 연산 회로(미도시)에서 수행되거나 제어 로직(도 2의 180 참조)에서 수행될 수 있다.
상기 제 2 설정 값(NREF2)은 상기 제 1 설정 값(NREF1)보다 작은 값 또는 0일 수 있다. 또한, 상기 제 2 설정 값(NREF1)은 슬로우 비트와 같은 메모리 셀의 허용 한계 또는 오차 범위와 같은 설계적 사항을 고려하여 그 크기가 결정될 수도 있다. 이것은 에러 정정 능력 범위 이내의 오류로서 용인되고 추후 에러 정정을 통해서 복원될 수 있다.
상기 제 2 설정 값(NREF2)은, 전술한 제 1 설정 값과 유사하게 정의될 수 있다. 예를 들면, 상기 제 2 설정 값(NREF2)은, 타겟 값인 Vvfy 미만의 문턱 전압 값을 갖는 프로그램되지 않은 메모리 셀들의 수(NUP)일 수 있다. 예를 들면, 상기 제 2 설정 값(NREF2)은 0 bits 내지 100K bits의 범위 내의 수일 수 있다. 이 경우, 상기 제 2 설정 값(NREF2)은 정적 값이다.
다른 실시예에서, 상기 제 2 설정 값(NREF2)은 프로그램될 메모리 셀들의 총 수(NTP) 대비 프로그램되지 않은 메모리 셀들의 수(NUP)의 비(NUP/NTP)로 정의될 수도 있다. 예를 들면, 상기 제 2 설정 값(NREF2)은 전체 프로그램될 메모리 셀들의 총 수(NTP)의 0 % 내지 20 % 범위 내의 값으로 정해질 수 있다. 이와 같은 정의에 따르면, 선택된 워드라인에서 프로그램될 메모리 셀들의 수(NTP)가 데이터 입출력부를 통하여 입력되는 데이터 값에 따라 달라질 수 있으므로, 상기 제 2 설정 값(NREF2)은 동적 값을 가질 수 있다.
또 다른 실시예에서, 상기 제 2 설정 값(NREF2)은 선택된 워드라인에 결합된 메모리 셀의 총 수(또는 페이지의 크기, NPG) 대비 프로그램되지 않은 메모리 셀들의 수(NUP)의 비(NUP/NPG)로 정의될 수 있다. 이 경우, 예를 들면, 상기 제 2 설정 값(NREF2)은 선택된 워드라인에 결합된 메모리 셀의 총 수의 0 % 내지 20 % 범위 내의 값으로 정해질 수 있다. 이와 같은 정의에 따르면 상기 제 2 설정 값(NREF2)은 정적 값을 가질 수 있다.
상기 제 2 순번 값 T은 메모리 셀의 규격 및 요구 조건을 기초로 상기 제 2 설정 값(NREF2), 상기 제 1 순번 값, 타겟 값(Vth), △VISPP의 크기, △Vth 및 프로그램 펄스의 최대 값(Z) 중 적어도 어느 하나, 제품 테스트 단계에서 얻어지는 경험적, 통계적 및 산술적 값 중 적어도 어느 하나 또는 이의 조합을 고려하여 결정될 수 있다. 통상적으로, △Vth는 △VISPP의 크기와 동등하거나 작을 수 있으며, 이를 고려하여 정상적인 프로그래밍 속도를 갖는 메모리 셀이라면 제 2 설정 값(NREF2)을 만족할 것으로 예측되는 프로그램 펄스(T)가 프로그램 루프(LoopS)로부터 후속하여 몇 번째의 순번을 갖는지 계산할 수 있다.
다시, 도 4 및 도 5를 참조하면, 아직 프로그램되지 않은 메모리 셀들에 대하여 프로그램 루프 LoopS의 후속 프로그램 루프들을 실행하여 상기 제 2 순번 값(T)을 갖는 프로그램 루프(LoopT)까지 진행하여 상기 프로그램되지 않은 메모리 셀들이 해당 데이터 상태를 갖도록 프로그래밍될 수 있다(S40). 일 실시예에서, 프로그램 루프(LoopS)와 프로그램 루프(LoopT) 사이의 프로그램 루프들의 각 검증 단계의 일부가 생략되어, 프로그래밍에 소요되는 시간을 단축할 수도 있을 것이다.
이후, 상기 제 2 순번 값(T)의 프로그램 루프(LoopT)의 검증 단계에서, 아직 프로그램되지 않은 메모리 셀들의 수(NUP) 또는 프로그램된 메모리 셀들의 수(NP)를 카운팅하여, 아직 프로그램되지 않은 메모리 셀의 수(NUP) 또는 비(NUP/NTP 또는 NUP/NPG)을 검출할 수 있다(S50).
본 명세서에서는, 이 단계(S50)에서 수행되는 메모리 셀 카운팅 동작을 '제 2 메모리 셀 카운팅 동작'이라 한다. 또한, 상기 제 2 메모리 셀 카운팅 동작에 의해 검출된 프로그램되지 않은 메모리 셀들의 수 또는 비를 N2nd_UP로 통칭하도록 한다. 상기 제 2 메모리 셀 카운팅 동작은 상기 제 1 메모리 셀 카운팅 동작과 동일하게 전술한 비트라인 및/또는 페이지 버퍼에 결합된 다양한 전류 센싱 회로들 및 메모리 셀 카운팅 회로들에 의해 수행될 수 있다.
이후, 상기 검출된 제 2 순번 값(T)의 프로그램 루프(LoopT)에서 프로그램되지 않은 메모리 셀들의 수 또는 비(N2nd_UP)과 상기 제 2 설정 값(NREF2)을 비교한다(S60). 상기 단계(S60)에서, 프로그램되지 않은 메모리 셀들의 수 또는 비(N2nd_UP)이 상기 제 2 설정 값(NREF2) 이하인 경우, 프로그래밍 패스로 판정한다(S70). 반대로, 상기 단계(S60)에서, 프로그램되지 않은 메모리 셀들의 수 또는 비(NUP_2nd)이 상기 제 2 설정 값(NREF2)을 초과하는 경우, 프로그래밍 패일로 판정한다(S80). 상기 비교 단계(S60) 및 판정 단계(S70, S80)은 비휘발성 메모리 소자의 비교기(170) 및 패스/파일 검증 회로(150)에서 판단될 수 있다.
프로그래밍 패스로 판정되는 것(S70)은, 정상 프로그래밍 속도를 갖는 메모리 셀이라 가정하여 제 2 순번 값이 결정되었고, 제 2 순번 값의 프로그램 펄스에서 메모리 셀들이 예측한 거동대로 정상적으로 프로그래밍되었으므로, 제 1 메모리 셀 카운팅 동안의 프로그램 루프들에서 프로그램된 메모리 셀들과 그 이후의 프로그램된 메모리 셀들이 모두 정상적인 메모리 셀임을 의미할 수 있다. 이와 같이, 프로그래밍 패스로 판정되면, 해당 데이터에 대한 프로그래밍은 종료된다.
반대로, 프로그래밍 패일로 판정되는 것(S80)은 제 2 순번 값의 프로그램 펄스에서 메모리 셀들이 예측한 것에 비해 더 느리게 프로그래밍되는 것이므로, 이 경우, 해당 페이지 메모리 셀들은 셀 카운팅 동안의 프로그램 루프들에서 프로그램된 메모리 셀들 또는 그 이후의 프로그램된 메모리 셀들이 모두 비정상적 느린 메모리 셀들을 포함하는 것을 의미한다. 이와 같이, 프로그래밍 패일로 판정되면, 해당 페이지는 스테이터스가 제어로직에 반영될 수 있다. 예를 들면, 해당 페이지는 블록킹되거나 마킹되어 관리되고, 기록한 데이터는 다음 페이지에 기록될 수 있다. 일부 실시예에서는, 다음 페이지에 기록되기 이전에 해당 페이지를 독출하여 에러정정코드에 의한 데이터 정정이 수행될 수도 있다.
도 6은 본 발명의 일 실시예에 따른 비정상적 빠른 메모리 셀들의 검출 모드를 위한 프로그래밍 방법을 도시하는 순서도이며, 도 7은 도 6의 프로그래밍 방법에 따른 선택된 워드라인에 인가되는 일련의 프로그램 및 검증 펄스를 도시한다. 도 7에서, K', S', P', T', 및 Z는 프로그램 펄스의 해당 순번을 나타내는 정수이다. 또한, 동일 또는 유사한 참조 부호를 갖는 구성 부재에 관하여는 도 3 또는 도 4를 참조하여 전술한 개시 사항을 참조할 수 있으며, 중복되는 설명은 생략하기로 한다.
도 6과 함께 도 7을 참조하면, 전술한 바와 같이 복수의 메모리 셀들에 대하여 ISPP 방식에 의해 프로그램 루프 순번을 증가시키면서 프로그래밍 동작이 개시된다(S10'). 상기 선택된 메모리 셀들은 선택된 워드라인에 결합된 메모리 셀들이며 단일 페이지를 구성할 수 있다. 각각의 프로그램 루프(Loop1, Loop2, … , LoopZ)는 선택된 메모리 셀들을 프로그램하기 위하여 프로그램 전압(Vpgm1, Vpgm2, … , VpgmZ)을 인가하는 프로그램 동작 및 이에 후속하여 선택된 상기 워드라인에 검증 전압(Vvfy)을 인가하여 선택된 메모리 셀의 온/오프를 체크하는 검증 동작을 포함한다.
프로그램 루프의 순번이 증가될수록 프로그램되지 않은 메리 셀의 문턱 전압 Vth은 △VISPP과 통상적으로 동등하거나 더 작은 크기의 △Vth 만큼 도 1에 도시한 그래프에서 타겟 값을 향하여 이동할 수 있다. 상기 ISPP 방식에 의해 프로그램 루프 순번이 증가되면서 프로그램 및 검증 동작이 수행되는 동안, 상기 선택된 메모리 셀들 중 프로그램된 메모리 셀들의 수 또는 비(N1st_P)이 제 3 설정 값(NREF1') 이상인 해당 프로그램 루프의 순번 값(이를 본 명세서에서는 제 3 순번 값이라 함; S')을 검출한다(S20'). 상기 제 3 순번 값(S')의 검출은, 검출 동작에서 도 3을 참조하여 전술한 다양한 실시예에 따른 전류 센싱 회로들을 통해서 프로그램된 수를 카운팅하여, 이의 결과인 수 또는 비(N1st_P)이 제 3 설정 값(NREF1') 이상인 프로그램 루프의 순번을 식별함으로써 달성될 수 있다. 이와 같이, 프로그램된 메모리 셀들의 수 또는 비(N1st_P)이 제 3 설정 값(NREF1') 이상인지 판단하기 위해, 검증 단계에서 프로그램된 메모리 셀들의 수를 카운팅하는 동작을 제 3 메모리 셀 카운팅이라 한다. 상기 제 3 메모리 셀 카운팅 동작은 도 2 및 도 3을 참조하여 전술한 다양한 실시예에 따른 전류 센싱 회로(130_CS) 및 이에 결합된 메모리 셀 카운팅 회로(130_CC)을 통해서 달성될 수 있다.
일 실시예에서, 상기 제 3 설정 값(NREF1')은, 타겟 값인 Vvfy 이상의 문턱 전압 값을 갖는 프로그램된 메모리 셀들의 수(NP)로 정의될 수 있다. 이 경우, 상기 제 3 설정 값(NREF1')은 정적 값이다. 다른 실시예에서, 상기 제 3 설정 값(NREF1')은 프로그램될 메모리 셀들의 총 수(NTP) 대비 프로그래밍된 메모리 셀들의 수(NP)의 비(NP/NTP)로 정의될 수도 있다. 이와 같은 정의에 따르면, 선택된 워드라인에서 프로그램될 메모리 셀들의 수(NTP)가 데이터 입출력부를 통하여 입력되는 데이터 값에 따라 달라질 수 있으므로, 상기 제 3 설정 값(NREF1')은 동적 값을 가질 수 있다.
또 다른 실시예에서, 상기 제 3 설정 값(NREF1')은 선택된 워드라인에 결합된 메모리 셀의 총 수(또는 페이지의 크기, NPG) 대비 프로그램된 메모리 셀들의 수(NP)인 비(NP/NPG)로 정의될 수 있다. 이 경우, 예를 들면, 상기 제 3 설정 값(NREF1')은 선택된 워드라인에 결합된 메모리 셀의 총 수의 백분율로 정의될 수 있다. 이와 같은 정의에 따르면 상기 제 3 설정 값(NREF1')은 정적 값을 가질 수 있다.
본 발명의 실시예에 따라 비정상적 빠른 메모리 셀을 검출하고자 하는 경우, 상기 제 3 설정 값(NREF1')은 다음의 표 2와 같이 정의될 수 있을 것이다.
제 3 설정 값(NREF1') | 정의 | 타입 | 범위(단위) | 구체적 예 페이지 크기: 18048 Byte 데이터 크기: 18016 Byte |
실시예 1 | NP | 정적 값 | 102 ~ 105 bits | 1805*8 bits |
실시예 2 | NP/NTP | 동적 값 | 10% 내지 30% | 18016*8*0.2 bits |
실시예 3 | NUP/NPG | 정적 값 | 10% 내지 30% | 18048*8*0.2 bits |
표 2를 참조하면, 제 3 설정 값(NREF1')은, 비교적 느린 메모리 셀의 검출 모드와 유사하게, 값 NP(실시예 1) 또는 비 NP/NTP(실시예 2) 또는 NP/NPG(실시예 3)의 형태로 정의될 수 있다. 이와 같이 정의된 경우, 상기 제 3 설정 값(NREF1')은 각 실시예마다 표시된 범위 내에서 적절히 선택될 수 있다. 구체적으로는, 페이지 크기가 18048 Byte인 비휘발성 메모리 소자의 경우, NP는 1805*8 bits이고, NP/NTP(20% 가정)는 18016*8*0.2 bits 이며, NP/NPG(20% 가정)는 18048*8*0.2 bits 일 수 있다.
전술한 바와 같이, 선택된 워드라인에 결합된 프로그래밍되어야 할 메모리 셀들의 수 또는 비는 상기 페이지의 크기 범위 내에서 기록될 데이터 값에 의해 결정될 수 있다. 상기 페이지의 크기는 워드라인의 RC 딜레이 및 파울러-노드하임 프로그램과 같은 프로그램 메커니즘과 같은 물리적 및 전기적 특성에 의해 결정되는 것이기 때문에, 기술 세대가 진보될수록 상기 페이지의 크기도 커질 것이며, 그에 따라 상기 제 3 설정 값(NREF1')도 커질 수 있을 것이므로 상기 제 3 설정 값(NREF1')을 비의 개념으로 정의하는 것은 스케일링 측면에서 바람직하다.
일 실시예에서, 상기 제 3 메모리 셀 카운팅 동작은 매 프로그램 루프의 검증 단계에서 수행될 수 있지만, 본 발명이 이에 한정되는 것은 아니다. 예를 들면, 다른 실시예에서, 상기 제 3 메모리 셀 카운팅 동작은 프로그램된 메모리 셀들의 수 또는 비(N1st_P)이 상기 제 3 설정 값(NREF1') 이상이 될 것이라 예측되는 해당 프로그램 루프의 순번 값의 기대 값 P'을 가정적으로 미리 정하고, 기대 값 P' 보다 적어도 1회 내지 5회 이전의 프로그램 루프에서부터 상기 제 3 메모리 셀 카운팅 동작을 하여 상기 제 3 설정 값(NREF1') 이상이 되는 해당 프로그램 루프(LoopS')를 검출할 수 있다.
일 실시예에서, 상기 예측된 해당 프로그램 루프의 순번 값인 기대 값 P'은, 비휘발성 메모리 소자의 규격 및 요구 조건을 기초로, 타겟 값(Vth), △VISPP의 크기, △Vth 및 프로그램 펄스의 최대 값(Z) 중 적어도 어느 하나, 그리고, 제품 테스트 단계에서 얻어지는 경험적, 통계적 및 산술적 요인들 중 적어도 어느 하나 또는 이의 조합을 고려하여 결정될 수 있다. 예를 들면, 정상적인 메모리 셀들의 평균 프로그래밍 속도에 기초하여 기대 값 P'를 가정적으로 정할 수 있다. 다른 예로서, 실제 제품 테스트 과정에서 경험적 및 통계적으로 습득된 비정상적 빠른 메모리 셀들의 수가 페이지 크기의 10 % 정도 있을 것으로 가정하고, 10%의 비정상적 빠른 메모리 셀들이 모두 프로그램 패스 판정을 받았을 것으로 예측되는 기대 값 P'를 선택할 수 있을 것이다.
전술한 실시예에서와 같이, 한정된 수의 연속적 프로그램 루프들(LoopK', LoopK'+1, LoopS')의 각 검증 단계 내에서만 상기 제 3 메모리 셀 카운팅 동작을 수행하는 경우, 상기 전류 센싱 회로 및 메모리 셀 카운팅 회로의 구동과 그에 따른 연산에 따른 리소스를 경감시켜 전체 프로그램 및 검증 동작에 요구되는 전력과 시간을 경감시킬 수 있다.
도 7은 프로그램된 메모리 셀들의 수 또는 비(N1st_P)이 상기 제 3 설정 값(NREF1') 이상인 프로그램 루프가 LoopS'이고, 프로그램 루프 LoopS'의 순번 S의 검출을 위해 예측된 기대 값 P'의 순번 값을 갖는 프로그램 루프 LoopP'보다, 예를 들면, 4 단계 전인 프로그램 루프 LoopK'의 검증 동작에서부터 상기 메모리 셀 카운팅 회로를 턴온시켜 상기 제 3 메모리 셀 카운팅 동작이 개시되는 것을 예시한다.
상기 메모리 셀 카운팅 회로를 턴온시켜 상기 제 3 메모리 셀 카운팅 동작이 시작되는 프로그램 루프(LoopK')의 순번 값 K'는 제품 테스트 단계에서 얻어지는 경험적, 통계적 및 산술적 계산에 의해 결정될 수 있으며, 전술한 바와 같이 예측된 순번 값 P로부터 적어도 1회 내지 5회 이전의 순번 값일 수 있다. 그러나, 이는 예시적이며, 상기 순번 값 K는 비휘발성 메모리의 성능 또는 용량에 따라 달라지는 실험적 상수로 여하의 값에서 최적화될 수 있다.
프로그램 루프 LoopK'에서 시작된 상기 제 3 메모리 셀 카운팅 동작(S20')은, 프로그램 루프 LoopS'에서 종료된다. 이때, 상기 제 3 메모리 셀 카운팅 동작은 프로그램 루프 LoopS'의 순번 값 S' (이때, 'S''는 제 3 순번 값이 됨)을 반환할 수 있다. 상기 제 3 메모리 셀 카운팅 동작에서 순번 값 S'의 검출은 프로그램 루프 순번 검출기(도 2의 160 참조)에 의해 달성될 수 있다. 프로그램 루프 순번 검출기(160)는 순번 값 S'를 제어 로직(180)으로 반환할 수 있다. 또한, 프로그램된 메모리 셀의 수 또는 비(N1st_P)도 제어 로직(180)으로 반환될 수 있다.
상기 반환된 제 3 순번 값 S'를 기초로, 이후 프로그램 루프들이 순차적으로 진행될 경우 상기 프로그램된 메모리 셀들의 수 또는 비(N2nd_P)이 제 4 설정 값(NREF2')을 가질 것으로 예측되는 프로그램 루프의 순번 값의 기대값인 제 4 순번 값 T'을 산출한다(S30'). 상기 제 4 순번 값 T'은 프로그램 루프의 최대 값 Z와 동등하거나 그 미만일 수 있다.
상기 제 4 설정 값(NREF2')은 상기 제 3 설정 값(NREF1')보다 큰 값 또는 100%일 수 있다. 또한, 상기 제 4 설정 값(NREF1')은 하드 비트와 같은 메모리 셀의 허용 한계 또는 오차 범위와 같은 설계적 사항을 고려하여 그 크기가 결정될 수도 있다.
상기 제 4 설정 값(NREF2')은, 전술한 제 2 설정 값(NREF1')과 유사하게 정의될 수 있다. 예를 들면, 상기 제 4 설정 값(NREF2')은, 타겟 값인 Vvfy 이상의 문턱 전압 값을 갖는 프로그램된 메모리 셀들의 수(NP)일 수 있다. 예를 들면, 상기 제 4 설정 값(NREF2)은 페이지 크기 정도의 오더를 갖는 102 bits 내지 105 bits의 범위 내의 수일 수 있다. 이 경우, 상기 제 4 설정 값(NREF2')은 정적 값이다.
다른 실시예에서, 상기 제 4 설정 값(NREF2')은 프로그램될 메모리 셀들의 총 수(NTP) 대비 프로그램된 메모리 셀들의 수(NP)의 비(NP/NTP)로 정의될 수도 있다. 예를 들면, 상기 제 4 설정 값(NREF2')은 전체 프로그램될 메모리 셀들의 총 수(NTP)의 90 % 내지 100 % 범위 내의 값으로 정해질 수 있다. 이와 같은 정의에 따르면, 선택된 워드라인에서 프로그램될 메모리 셀들의 수(NTP)가 데이터 입출력부를 통하여 입력되는 데이터 값에 따라 달라질 수 있으므로, 상기 제 4 설정 값(NREF2')은 동적 값을 가질 수 있다.
또 다른 실시예에서, 상기 제 4 설정 값(NREF2')은 선택된 워드라인에 결합된 메모리 셀의 총 수(또는 페이지의 크기, NPG) 대비 프로그램된 메모리 셀들의 수(NP)의 비(NP/NPG)로 정의될 수 있다. 이 경우, 예를 들면, 상기 제 4 설정 값(NREF2')은 선택된 워드라인에 결합된 메모리 셀의 총 수의 90 % 내지 100 % 범위 내의 값으로 정해질 수 있다. 이와 같은 정의에 따르면 상기 제 4 설정 값(NRE2')은 정적 값을 가질 수 있다.
상기 제 4 순번 값 T은 '정상적 프로그램 속도'를 갖는 메모리 셀의 규격 및 요구 조건을 기초로 상기 제 4 설정 값(NREF2), 상기 제 3 순번 값, 타겟 값(Vth), △VISPP의 크기, △Vth 및 프로그램 펄스의 최대 값(Z) 중 적어도 어느 하나, 제품 테스트 단계에서 얻어지는 경험적, 통계적 및 산술적 값 중 적어도 어느 하나 또는 이의 조합을 고려하여 결정될 수 있다. 통상적으로, △Vth는 △VISPP의 크기와 동등하거나 작을 수 있으며, 이를 고려하여 정상적인 프로그래밍 속도를 갖는 메모리 셀이라면 상기 제 4 설정 값(NREF2')을 만족할 것으로 예측되는 프로그램 펄스(T)가 프로그램 루프(LoopS')로부터 후속하여 몇 번째의 순번을 갖는지 계산할 수 있다.
다시, 도 6 및 도 7을 참조하면, 아직 프로그램되지 않은 메모리 셀들에 대하여 프로그램 루프 LoopS'의 후속 프로그램 루프들을 실행하여 상기 제 4 순번 값(T')을 갖는 프로그램 루프(LoopT')까지 진행하여 상기 프로그램되지 않은 메모리 셀들이 해당 데이터 상태를 갖도록 프로그래밍될 수 있다(S40'). 일 실시예에서, 프로그램 루프(LoopS')와 프로그램 루프(LoopT') 사이의 프로그램 루프들에서, 각 검증 단계는 생략되어, 프로그래밍에 소요되는 시간을 단축할 수도 있을 것이다.
이후, 상기 제 4 순번 값(T')의 프로그램 루프(LoopT')의 검증 단계에서, 아직 프로그램되지 않는 메모리 셀들의 수(NUP) 또는 프로그램된 메모리 셀들의 수(NP)를 카운팅하여, 프로그램된 메모리 셀의 수(NP) 또는 비(NP/NTP 또는 NP/NPG)을 검출할 수 있다(S50').
본 명세서에서는, 이 단계(S50')에서 수행되는 메모리 셀 카운팅 동작을 전술한 것과 유사하게, '제 4 메모리 셀 카운팅 동작'이라 한다. 또한, 상기 제 4 메모리 셀 카운팅 동작에 의해 검출된 프로그램된 메모리 셀들의 수 또는 비를 N2nd_P 로 통칭하도록 한다. 상기 제 4 메모리 셀 카운팅 동작은 상기 제 3 메모리 셀 카운팅 동작과 동일하게 전술한 비트라인 및/또는 페이지 버퍼에 결합된 다양한 전류 센싱 회로들 및 메모리 셀 카운팅 회로들에 의해 수행될 수 있다.
이후, 상기 검출된 제 4 순번 값(T')의 프로그램 루프(LoopT')에서 프로그램된 메모리 셀들의 수 또는 비(N2nd_P)와 상기 제 4 설정 값(NREF2')을 비교한다(S60'). 상기 단계(S60')에서, 프로그램된 메모리 셀들의 수 또는 비(N2nd_P)이 상기 제 4 설정 값(NREF2') 이상인 경우, 프로그래밍 패스로 판정한다(S70'). 반대로, 상기 단계(S60)에서, 프로그램된 메모리 셀들의 수 또는 비(N2nd_P)가 상기 제 4 설정 값(NREF2')을 미만인 경우, 프로그래밍 패일로 판정한다(S80'). 상기 비교 단계(S60') 및 판정 단계(S70', S80')은 비휘발성 메모리 소자의 비교기(170) 및 패스/파일 검출기(150)에서 판단될 수 있다.
프로그래밍 패스로 판정되는 것(S70')은, 프로그램 루프(LoopS') 이후 프로그램되지 않은 셀이 정상 프로그래밍 속도를 갖는 메모리 셀이라 가정하여 제 4 순번 값(T')이 결정되었고, 상기 제 4 순번 값(T')의 프로그램 펄스에서 메모리 셀들이 예측한 거동대로 정상적으로 프로그래밍되었으므로, 상기 제 3 메모리 셀 카운팅 동안의 프로그램 루프들에서 프로그램된 메모리 셀들과 그 이후의 프로그램된 메모리 셀들이 모두 정상적인 메모리 셀임을 의미할 수 있다. 이와 같이, 프로그래밍 패스로 판정되면, 해당 데이터에 대한 프로그래밍은 종료된다.
반대로, 프로그래밍 패일로 판정되는 것(S80')은 플로그램 펄스(LooS')이후 정상 속도의 메모리 셀들임을 가정하여 예측한 적어도 1 이상의 회수만큼 프로그램 루프들을 수행하였음에도 불구하고 아직도 프로그래밍되지 않은 메모리 셀이 남아 있는 것이므로, 이 경우, 상기 제 2 순번 값(T')을 산출하는데 기초가 되는 상기 제 3 순번 값(S')은 비정상적 빠른 메모리 셀로부터 검출된 것임을 논리적으로 추론할 수 있다. 따라서, 프로그래밍 패일로 판정(S80')되면, 해당 페이지는 스테이터스가 제어 로직에 반영될 수 있다. 예를 들면, 해당 페이지는 블록킹되거나 마킹되어 관리되고, 기록한 데이터는 다음 페이지에 기록될 수 있다. 일부 실시예에서는, 다음 페이지에 기록되기 이전에 해당 페이지를 독출하여 에러정정코드에 의한 데이터 정정이 수행될 수도 있다.
도 4 내지 도 7을 참조하여 전술한 실시예들에서, 상기 제 1 메모리 셀 카운팅 단계(S20)와 제 3 메모리 셀 카운팅 단계(S20')에서 프로그램되지 않은 메모리 셀의 수 또는 비(N1st_UP)와 프로그램된 메모리 셀의 수 또는 비(N1st_P)는 다음의 표 3의 관계식에 의해 서로 환산되어 사용될 수 있다. 이것은 하나의 프로그램 루프에서 또는 전체 프로그램 루프들에서, 프로그램되지 않은 메모리 셀의 수와 프로그램된 메모리 셀의 수는 역의 관계를 갖기 때문에 간단한 관계식에 의해 쉽게 구해질 수 있다.
표 3은 실시예 1 내지 3의 값 N1st_UP 와 값 N1st_P의 정의에 따른 양 값 사이의 관계식을 나타낸다.
N1st_UP | N1st_P | 관계식 | |
실시예 1 | NUP | NP | NUP +NP= NTP |
실시예 2 | NUP/NTP | NP/NTP | NUP/NTP+NP/NTP= 1 |
실시예 3 | NUP/NPG | NP/NPG | NUP/NPG +NP/NPG = NPT/NPG |
따라서, 전술한 실시예들에서, 제 1 메모리 셀 카운팅 단계에서, '프로그램되지 않은 메모리 셀들의 수 또는 비'가 제 1 설정 값 이하인 프로그램 루프의 제 1 순번 값을 검출하는 단계는 '프로그램된 메모리 셀들의 수 또는 비'가 상기 제 1 설정 값을 초과하는 단계라는 호환적 의미를 가질 수 있음이 이해되어야 한다. 또한, 전술한 관계식은 예시적일 뿐 본 발명이 이에 한정되는 것은 아니다. 마찬가지로, 제 3 메모리 셀 카운팅 단계에서, '프로그램된 메모리 셀들의 수 또는 비'가 제 3 설정 값 이상인 프로그램 루프의 제 3 순번 값을 검출하는 단계는 '프로그램되지 않은 메모리 셀들의 수 또는 비'가 상기 제 3 설정 값 미만인 프로그램 루프의 제 3 순번 값을 검출하는 단계라는 호환적 의미를 가질 수 있음이 이해될 수 있다.
유사하게, 도 3 내지 도 6을 참조하여 전술한 실시예들에서, 상기 제 2 순번 값의 프로그램 루프에서 비교하는 단계(S60) 및 상기 제 4 순번 값의 프로그램 루프에서 비교하는 단계(S60')에서 프로그램되지 않은 메모리 셀의 수 또는 비(N2nd_UP)와 프로그램된 메모리 셀의 수 또는 비(N2nd_P)도 다음의 표 4의 관계식에 의해 서로 환산되어 사용될 수 있다. 표 4은 실시예 1 내지 3의 값 N2nd_UP 와 값 N2nd_P의 정의에 따른 양 값 사이의 관계식을 나타낸다.
N2nd_UP | N2nd_P | 관계식 | |
실시예 1 | NUP | NP | NUP +NP= NTP |
실시예 2 | NUP/NTP | NP/NTP | NUP/NTP+NP/NTP= 1 |
실시예 3 | NUP/NPG | NP/NPG | NUP/NPG +NP/NPG = NPT/NPG |
따라서, 전술한 실시예들에서, 단계들(S60 및 S60')에서, '프로그램되지 않은 메모리 셀들의 수 또는 비'와 제 2 설정 값의 크기를 비교하는 단계와 '프로그램된 메모리 셀들의 수 또는 비'가 상기 제 4 설정 값의 크기를 비교하는 단계는 예시적인 관계식에 따라 호환적으로 실시될 수 있음을 이해하여야 한다.
또한, 당업자라면, 도 4 및 도 5를 참조하여 개시된 비정상적 느린 메모리 셀들을 검출하기 위한 프로그래밍 방법과 도 6 및 도 7을 참조하여 개시된 비정상적 빠른 메모리 프로그래밍 방법은, 선택된 페이지에 대한 ISPP 방식에 의한 프로그램 동안, 동시에 병렬적으로 실시되는 것도 본 발명의 범위에 포함됨을 이해하여야 한다. 예를 들면. ISPP 방식에 따라 연속적인 프로그램 펄스 및 검증 펄스에 의한 프로그램이 진행되는 동안 비정상적 느린 메모리 셀을 검출하기 위한 제 1 메모리 셀 카운팅 단계(S20)와 비정상적 빠른 메모리 셀을 검출하기 위한 제 3 메모리 셀 카운팅 단계(S2')가 모두 해당 프로그램 펄스들에서 병렬적으로 또는 교차하여 실행되고, 마찬가지로, 비정상적 느린 메모리 셀을 검출하기 위한 제 2 메모리 셀 카운팅(S50) 및 비교 단계(S60)과 정상적 빠른 메모리 셀을 검출하기 위한 제 4 메모리 셀 카운팅(S50') 및 비교 단계(S60')도 프로그램이 진행되는 동안 병렬적으로 또는 교차하여 실행될 수 있다.
전술한 비정상적 느린 메모리 셀들을 검출하기 위한 본 발명의 실시예들은, ISPP 방식에, 제 1 메모리 셀 카운팅(S20)에 의해 검출된 제 1 순번 값으로부터, 예를 들면, 남은 메모리 셀들이 정상적 프로그래밍 속도를 갖는다고 가정하여 산출된 기대값인 제 2 순번 값에서 제 2 메모리 셀 카운팅(S50)을 수행하는 2 단계의 메모리 셀 카운팅 단계를 결합하여, 프로그래밍한다. 유사하게, 비정상적 빠른 메모리 셀을 검출하기 위한 본 발명의 실시예들은, 본 발명의 다른 마찬가지로, ISPP 방식에, 제 3 메모리 셀 카운팅(S20')에 의해 검출된 제 3 순번 값으로부터, 예를 들면, 남은 메모리 셀들이 정상적 프로그래밍 속도를 갖는다고 가정하여 산출된 기대값인 제 4 순번 값에서 제 4 메모리 셀 카운팅(S50')을 수행하는 2 단계의 메모리 셀 카운팅 단계를 결합하여, 프로그래밍한다. 따라서, 본 발명의 실시예에 따르면, 통상의 ISPP 방식에 의해 단순 프로그램 패일로 선언될 비정상적 느린 메모리 셀들이 결함성 메모리 셀로서 정확히 판정될 수 있고, 단순 프로그램 패스로 선언될 비정상적 빠른 메모리 셀들도 결함성 메모리 셀로서 정확히 판정될 수 있다. 이러한 본 발명의 이점은 비휘발성 메모리 소자의 용량이 증가함에 따라 나타날 수 있는 메모리 셀들간 성능 편차에 대응하여 신뢰성있는 프로그래밍을 가능하게 하고, 시간 효율적인 검증 단계를 수반함으로써 대용량 메모리 소자에 적합한 프로그래밍을 가능하게 한다.
또한, 전술한 제 1 내지 제 4 메모리 셀 카운팅 단계를 소정 프로그램 루프들에서만 선택적으로 실시함으로써, 비휘발성 메모리 소자의 고용량량화에 대응하여 상기 결함성 메모리 셀을 스크리닝하는 것을 더욱 시간 효율적으로 달성할 수 있다. 또한, 전술한 2 단계의 메모리 셀 카운팅 단계는 예시이며, 결함성 메모리 셀들 또는 이를 포함하는 페이지를 검출하기 위해 3 단계 이상의 메모리 셀 카운팅 단계들이 수행될 수도 있다.
도 8a는 본 발명의 실시예에 따른 2 비트 멀티 레벨 셀을 갖는 비휘발성 메모리 소자의 2 라운드 프로그래밍 방법을 설명하기 위한 문턱 전압 분포들을 도시하며, 도 8b는 도 8a의 프로그래밍 방법에 따른 프로그래밍 동작 동안 선택된 워드라인에 인가되는 일련의 프로그램 및 검증 펄스를 도시한다. 도 8b에서, K, S, P, T, 및 Z는 프로그램 펄스의 해당 순번을 나타내는 정수이다. 도시된 구성 요소의 도면 부호와 동일한 도면 부호를 갖는 구성 요소에 대한 전술한 설명이 참조될 수 있다.
도 8a를 참조하면, 실시예에 따른 비휘발성 메모리 소자는 1 개의 소거 상태(E)와 3 개의 타겟 상태들(P1, P2, P3)을 갖는 2 비트 멀티 레벨 셀의 문턱 전압 분포(D1, D2, D3, D4)를 갖는다. 상기 2 비트 멀티 레벨 프로그래밍은 2 개의 구분되는 제 1 및 제 2 라운드들(rounds)에서 달성될 수 있다. 소거 상태(E)와 타겟 상태들(P1, P2, P3)의 구현을 위한 상위 페이지(upper page) 및 하위 페이지(lower page)의 데이터 상태가 기재되어 있다.
상기 제 1 라운드에서, 리스트 시그니피컨트 비트(Least Significant Bit 또는 LSB)와 관련된 상기 하위 페이지가 프로그래밍된다. 만약 비트가 "1"이라면, 상기 메모리 셀은 소거 상태 E로 남아 있는다. 그러나, 비트가 "0"이라면 메모리 셀은 Vth가 문턱 전압 분포 D2를 갖도록 프로그램될 수 있다. 이때 ISPP의 검증 전압은 Vvfy1이 된다.
상기 제 2 라운드에서는, 모스트 시그니피컨트 비트(Most Significant Bit 또는 MSB)와 관련된 상기 상위 페이지가 프로그래밍될 수 있다. 만약 비트가 "1"이라면, 문턱 전압 값은 바뀌지 않고, 메모리 셀은 소거 상태(E)로 남아 있는다. 그러나, MSB가 "0"이라면, 제 1 라운드 동안 메모리 셀이 소거 상태(E)에 있었다면, 문턱 전압 분포 D4가 되도록 문턱 전압이 상승한다. 반대로 상기 제 1 라운드 동안, 상기 메모리 셀이 문턱 전압 분포(D2)로 프로그램되어 있는 경우에는, 프로그램될 메모리 셀은 문턱 전압 분포 D3로 프로그램될 것이다. 이 경우에 ISPP의 검증 전압은 각각 Vvfy2 및 Vvfy3 일 수 있다.
상기 2 비트 멀티 레벨 셀에서도 비정상적 느린 메모리 셀 또는 비정상적 빠른 메모리 셀에 의해 문턱 전압 분포가 열화될 수 있으며(D3', D4' 참조), 상기 열화에 의해 후속하는 독출 단계에서 칩 패일이 발생할 수 있다.
상기 제 1 라운드 및 제 2 라운드에서 각각 ISPP 알고리즘에 기초하는 프로그램 루프들의 실행시 검증 단계에서, 제 1 메모리 셀 카운팅(도 4의 S20 또는 도 6의 S20')에 의해 검출된 제 1 순번 값으로부터, 예를 들면, 정상적 메모리 속도를 가정하여 산출된 기대값인 제 2 순번 값에서 제 2 메모리 셀 카운팅(도 4의 S50 또는 도 6의 S50')을 수행하는 2 단계의 메모리 셀 카운팅 단계를 결합하여, 비정상적으로 느린 결함성 메모리 셀 및/또는 비정상적으로 빠른 결함성 메모리 셀을 갖는 페이지를 정확히 스크린할 수 있다. 상기 비정상적으로 늦은 결함성 메모리 셀을 검출하는 프로그래밍 방법과 상기 비정상적으로 빠른 결함성 메모리 셀을 검출하는 프로그래밍 방법은 동일한 ISPP 프로그래밍 내에서 병렬적으로 실행될 수 있음은 전술한 바와 같다.
도 8b에서는, 하위 페이지와 상위 페이지의 프로그램 중 상위 페이지에 대하여만 선택적으로 본 발명의 실시예에 따른 제 1 메모리 셀 카운팅 단계와 제 2 메모리 셀 카운팅 단계를 수행하는 프로그래밍 방법을 예시한다. 상위 페이지에만 메모리 셀 카운팅 단계들에 의한 결함성 메모리 셀들의 검출을 수행함으로써, 더욱 시간 효율적이면서 신뢰성 있는 프로그램 방법이 제공될 수 있다. 도 8a 및 도 8b에 도시된 실시예는 2 비트 멀티 레벨 셀에 관한 것이지만, 3 비트 이상의 멀티 레벨 셀에서 2 단계의 메모리 셀 카운팅에 의한 결함성 메모리 셀의 검출이 행하여 질 수 있으며, 멀티 레벨 셀의 페이지들 모두에 또는 어느 일부 페이지에만 선택적으로 본 발명의 실시예에 따른 2 단계 프로그래밍 방법이 적용될 수 있음을 이해하여야 한다.
도 9a는 본 발명의 실시예에 따른 2 비트 멀티 레벨 셀을 갖는 비휘발성 메모리 소자의 풀 시퀀스(full-sequence) 프로그래밍 방법을 설명하기 위한 문턱 전압 분포들을 도시하며, 도 9b는 도 9a의 프로그래밍 방법에 따른 프로그래밍 동작 동안 선택된 워드라인에 인가되는 일련의 프로그램 및 검증 펄스를 도시한다. 도 9b에서, K, S, P, T, 및 Z는 프로그램 펄스의 해당 순번을 나타내는 정수이다. 도시된 구성 요소의 도면 부호와 동일한 도면 부호를 갖는 구성 요소에 대한 전술한 설명이 참조될 수 있다.
도 9a를 참조하면, 본 발명의 실시예에 따르면, ISPP 프로그래밍 방법에 의해 동일한 셀의 LSB와 MSB가 동시에 프로그램될 수 있다. 이 경우, 동일한 프로그램 전압을 2 번 인가하는 필요성은 없지만, 각 프로그램 펄스마다 3 개의 검증 전압들(VVFY1, VVFY2, 및 VVFY3)이 요구된다. 소거 상태(E)와 타겟 상태들(P1, P2, P3)의 구현을 위한 상위 페이지(upper page) 및 하위 페이지(lower page)의 데이터 상태가 기재되어 있다.
도 9b를 참조하면, ISPP 알고리즘에 기초하는 프로그램 루프들의 실행시 검증 단계에서, 제 1 메모리 셀 카운팅(도 5의 S20 또는 도 7의 S20')에 의해 검출된 제 1 순번 값으로부터 정상적 메모리 속도를 가정하여 산출된 기대값인 제 2 순번 값에서 제 2 메모리 셀 카운팅(도 5의 S50 또는 도 7의 S50')을 수행하는 2 단계의 메모리 셀 카운팅 단계를 결합하여, 비정상적 느린 결함성 메모리 셀 및/또는 비정상적 빠른 결함성 메모리 셀을 갖는 페이지를 정확히 스크린할 수 있다. 또한, 상기 비정상적 느린 결함성 메모리 셀을 검출하는 프로그래밍 방법과 상기 비정상적 빠른 결함성 메모리 셀을 검출하는 프로그래밍 방법은 동일한 ISPP 프로그래밍 내에서 병렬적으로 실행될 수 있음은 전술한 바와 같다.
상기 풀 시퀀스(full-sequence) 프로그래밍 방법에서, 전체 검증 단계의 수를 감소시켜 프로그램 시간을 단축하는 바람직하다. 이를 위하여, 일 실시예에서, 초기에는 VVFY1의 검증 단계만 수행되고, 적어도 하나의 셀이 VVFY1에 도달하면 VVFY2의 검증 단계를 수행하고, 적어도 하나의 셀이 VVFY2에 도달하면 VVFY3의 검증 단계를 수행할 수도 있으며, 다시 모든 메모리 셀들이 P1에 도달하면 VVFY1의 검증 단계를 종료하고, 모든 메모리 셀들이 P2에 도달하면 VVFY2의 검증 단계를 종료하며, 이후에는 VVFY3의 검증 단계만을 수행함으로써 검증 단계의 수를 감소시킬 수 있다. 본 명세서에서는, 이러한 프로그램 방법을 부분 시퀀스(partial sequencing) 프로그래밍 방법이라 한다.
따라서, 상기 부분 시퀀스 프로그래밍 방법에 있어서, VVFY1의 검증 단계가 시작되는 프로그램 펄스와 상기 VVFY1의 검증 단계가 종료되는 프로그램 펄스의 사이, VVFY1의 검증 단계가 시작되는 프로그램 펄스와 상기 VVFY1의 검증 단계가 종료되는 프로그램 펄스의 사이, 또는 VVFY1의 검증 단계가 시작되는 프로그램 펄스와 상기 VVFY1의 검증 단계가 종료되는 프로그램 펄스의 사이에서만, 각 검증 전압들에 대하여 제 1 메모리 셀 카운팅(도 4의 S20 또는 도 6의 S20')에 의해 검출된 제 1 순번 값으로부터 정상적 메모리 속도를 가정하여 산출된 기대값인 제 2 순번 값에서 제 2 메모리 셀 카운팅(도 4의 S50 또는 도 6의 S50')을 수행하는 2 단계의 메모리 셀 카운팅 단계가 결합되어 프로그래밍이 실행될 수도 있다.
따라서, 본 발명의 실시예에 따르면 풀-시퀀싱 멀티 비트 프로그램 또는 부분-시퀀싱 멀티 비트 프로그래밍시 검증 단계에서, 비정상적 느린 결함성 메모리 셀 및/또는 비정상적 빠른 결함성 메모리 셀을 갖는 페이지를 정확히 스크린할 수 있다. 또한, 상기 비정상적 느린 결함성 메모리 셀을 검출하는 프로그래밍 방법과 상기 비정상적 빠른 결함성 메모리 셀을 검출하는 프로그래밍 방법은 동일한 ISPP 프로그래밍 내에서 병렬적으로 동시에 실행될 수 있음은 전술한 바와 같다.
도 10은 본 발명의 일 실시예에 따른 메모리 시스템(500)을 도시하는 블록도이다.
도 10을 참조하면, 메모리 시스템(500)은 메모리 컨트롤러(510) 및 비휘발성 메모리 소자(520)를 포함한다. 메모리 컨트롤러(510)는 비휘발성 메모리 소자(520)에 대해 에러정정코드를 수행할 수 있다. 메모리 컨트롤러(510)는 외부로부터의 명령어와 어드레스를 참조하여 비휘발성 메모리 소자(520)를 제어할 수 있다.
메모리 컨트롤러(510)는 호스트로부터 쓰기 요청을 수신하면, 쓰기 요청된 데이터에 대한 에러 정정 인코딩을 수행할 수 있다. 또한, 메모리 컨트롤러(510)는 상기 인코딩된 데이터를 제공된 어드레스에 대응하는 메모리 영역에 프로그램하도록 비휘발성 메모리 소자(520)를 제어할 수 있다. 또한, 메모리 컨트롤러(510)는 읽기 동작시 비휘발성 메모리 소자(520)로부터 출력된 데이터에 대한 에러 정정 디코딩을 수행할 수 있다. 상기 에러 정정 디코딩에 의해서 출력 데이터에 포함되는 에러가 정정될 수 있다. 상기 에러의 검출 및 정정을 수행하기 위하여 메모리 컨트롤러(510)는 에러 정정 블록(515)을 포함할 수 있다.
비휘발성 메모리 소자(520)는 셀 어레이(521) 및 페이지 버퍼(523)를 포함할 수 있다. 셀 어레이(521)는 싱글 레벨 메모리 셀 또는 2 이상의 비트의 멀티 레벨 메모리 셀의 어레이를 포함할 수 있다. 메모리 컨트롤러(510)는 쓰기 요청을 수신하면, 전술한 실시예들에 따라, 2 단계의 메모리 셀 카운팅과 정상적 메모리 셀들의 정상적 프로그래밍 속도를 기초로 얻어진 기대값을 이용해, 셀 어레이(521)의 프로그래밍되지 않는 메모리 셀들 또는 프로그래밍되는 메모리 셀들의 문턱 전압의 거동을 모니터링하고, 이를 검출하여 기록된 데이터의 신뢰성을 향상시킬 수 있다.
도 11은 본 발명의 일 실시예에 따른 고상 디스크(이하, SSD)를 포함하는 저장 장치(1000)를 도시하는 블록도이다.
도 111을 참조하면, 저장 장치(1000)는 호스트(1100)와 SSD(1200)를 포함한다. SSD(1200)는 SSD 컨트롤러(1210), 버퍼 메모리(1220), 그리고 비휘발성 메모리 소자(1230)를 포함할 수 있다. SSD 컨트롤러(1210)는 호스트(1100)와 SSD(1200) 사이의 전기적 및 물리적 연결을 제공한다. 일 실시예에서, SSD 컨트롤러(1210)는 호스트(1100)의 버스 포맷(Bus format)에 대응하여 SSD(1200)와의 인터페이싱을 제공한다. 또한, SSD 컨트롤러(1210)는, 호스트(1100)로부터 제공되는 명령어를 디코딩하고 디코딩된 결과에 따라, 비휘발성 메모리 소자(1230)를 액세스할 수 있다. 호스트(1100)의 버스 포맷(Bus format)의 비제한적 예로서, USB(Universal Serial Bus), SCSI(Small Computer System Interface), PCI express, ATA(Advanced Technology Attachment), PATA(Parallel ATA), SATA(Serial ATA), 및 SAS(Serial Attached SCSI)이 포함될 수 있다.
버퍼 메모리(1220)에는 호스트(1100)로부터 제공되는 쓰기 데이터 또는 비휘발성 메모리 소자(1230)로부터 독출된 데이터가 임시 저장될 수 있다. 호스트(1100)의 읽기 요청시에 비휘발성 메모리 소자(1230)에 존재하는 데이터가 캐시되어 있는 경우에는, 버퍼 메모리(1220)는 캐시된 데이터를 직접 호스트(1100)로 제공하는 캐시 기능이 제공될 수 있다. 일반적으로, 호스트(1100)의 버스 포맷(예를 들면, SATA 또는 SAS)에 의한 데이터 전송 속도는 SSD(1200)의 메모리 채널의 전송 속도보다 더 빠를 수 있다. 이 경우, 대용량의 버퍼 메모리(1220)가 제공되어 속도 차이로 발생하는 퍼포먼스 저하를 최소화할 수 있다. 이를 위한 버퍼 메모리(1220)는 충분한 버퍼링을 제공하기 위해 동기식 DRAM(Synchronous DRAM)일 수 있지만, 이에 한정되는 것은 아니다.
비휘발성 메모리 소자(1230)는 SSD(1200)의 저장 매체로서 제공될 수 있다. 예를 들면, 비휘발성 메모리 소자(1230)는 전술한 실시예에 따른 대용량의 저장 능력을 가지는 낸드 플래시 메모리(NAND-type Flash memory)일 수 있다. 또 다른 예에서, 비휘발성 메모리 소자(1230)로서 노어 플래시 메모리, 상변화 메모리, 자성 메모리, 저항 메모리, 강유전체 메모리 또는 이들 중 선택된 이종의 메모리 장치들이 혼용되는 메모리 시스템도 적용될 수 있다.
도 12는 본 발명의 다른 실시예에 따른 메모리 시스템(2000)을 도시하는 블록도이다.
도 12를 참조하면, 본 발명에 따른 메모리 시스템(2000)은 메모리 컨트롤러(2200) 및 플래시 메모리(2100)를 포함할 수 있다. 플래시 메모리(2100)는 도 1 내지 도 9b를 참조하여 개시한 비휘발성 메모리 소자(100)를 포함할 수 있다. 플래시 메모리(2100)는 타깃 상태들을 검증할 때 비정상 속도를 갖는 메모리 셀들을 검출할 수 있어 고속의 신뢰성 있는 프로그램 성능을 가질 수 있다.
메모리 컨트롤러(2200)는 플래시 메모리(2100)를 제어하도록 구성될 수 있다. SRAM(2230)은 CPU(2210)의 동작 메모리로서 사용될 수 있다. 호스트 인터페이스(2220)는 메모리 시스템(2000)과 접속되는 호스트의 데이터 교환 프로토콜을 구현할 수 있다. 메모리 컨트롤러(2200)에 구비된 에러 정정 회로(2240)는 플래시 메모리(2100)로부터 독출된 데이터에 포함된 에러를 검출 및 정정할 수 있다. 메모리 인터페이스(2260)는 본 발명의 플래시 메모리(2100)와 인터페이싱할 수 있다. CPU(2210)는 메모리 컨트롤러(2200)의 데이터 교환을 위한 제반 제어 동작을 수행할 수 있다. 본 발명에 따른 메모리 시스템(2000)은 호스트(Host)와의 인터페이싱을 위한 코드 데이터를 저장하는 ROM(미도시됨)을 더 포함할 수 있다.
메모리 컨트롤러(2100)는 USB, MMC, PCI-E, SAS, SATA, PATA, SCSI, ESDI, 또는 IDE과 같은 다양한 인터페이스 프로토콜들 중 어느 하나를 통해 외부 회로(예를 들면, 호스트)와 통신하도록 구성될 수 있다. 본 발명에 따른 메모리 시스템(2000)은, 컴퓨터, 휴대용 컴퓨터, UMPC (Ultra Mobile PC), 워크스테이션, 넷북(net-book), PDA, 포터블(portable) 컴퓨터, 웹 타블렛(web tablet), 무선 전화기(wireless phone), 모바일 폰(mobile phone), 스마트폰(smart phone), 디지털 카메라(digital camera), 디지털 음성 녹음기(digital audio recorder), 디지털 음성 재생기(digital audio player), 디지털 영상 녹화기(digital picture recorder), 디지털 영상 재생기(digital picture player), 디지털 동영상 녹화기(digital video recorder), 디지털 동영상 재생기(digital video player), 정보를 무선 환경에서 송수신할 수 있는 장치, 홈 네트워크와 같은 다양한 사용자 장치들에 적용될 수 있다.
도 13은 본 발명의 다른 실시예에 따른 데이터 저장 장치(3000)를 도시하는 블록도이다.
도 13을 참조하면, 본 발명에 따른 데이터 저장 장치(3000)는 플래시 메모리(3100) 및 플래시 컨트롤러(3200)를 포함할 수 있다. 플래시 컨트롤러(3200)는 데이터 저장 장치(3000)의 외부 회로로부터 수신된 제어 신호들에 기초하여 플래시 메모리(3100)를 제어할 수 있다. 플래시 메모리(3100)의 구성은 어레이들이 다층으로 적층된 스택 플래시 구조, 소스-드레인이 없는 플래시 구조, 핀-타입 플래시 구조, 3차원 플래시 구조 또는 이의 복합 구조를 가질 수 있다.
플래시 메모리(3100)는 2 단계의 메모리 셀 카운팅과 정상적 메모리 셀들의 정상적 프로그래밍 속도를 기초로 얻어진 기대값을 이용해, 셀 어레이의 프로그래밍되지 않는 메모리 셀들 또는 프로그래밍되는 메모리 셀들의 문턱 전압의 거동을 모니터링하고, 이를 검출하여 기록된 데이터의 신뢰성을 향상시킬 수 있다. 본 발명의 데이터 저장 장치(3000)는 메모리 카드 장치, SSD 장치, 멀티미디어 카드 장치, SD 카드, 메모리 스틱 장치, 하드 디스크 드라이브 장치, 하이브리드 드라이브 장치, 또는 범용 직렬 버스 플래시 장치를 구성할 수 있다. 예를 들면, 본 발명의 데이터 저장 장치(3000)는 디지털, 카메라, 또는 개인 컴퓨터와 같은 전자 장치를 사용하기 위한 표준 또는 규격을 만족하는 메모리 카드일 수 있다.
도 14는 본 발명의 일 실시예에 따른 플래시 메모리 소자(4100) 및 이를 포함하는 컴퓨팅 시스템(4000)을 도시하는 블록도이다.
도 14를 참조하면, 본 발명에 따른 컴퓨팅 시스템(4000)은 버스(4400)에 전기적으로 연결된 플래시 메모리 장치(4100), 메모리 컨트롤러(4200), 베이스밴드 칩셋(baseband chipset)과 같은 모뎀(4300), 마이크로프로세서(4500), 그리고 사용자 인터페이스(4600)를 포함할 수 있다.
도 14에 도시된 플래시 메모리 소자(4100)는 2 단계의 메모리 셀 카운팅과 정상적 메모리 셀들의 정상적 프로그래밍 속도를 기초로 얻어진 기대값을 이용해, 셀 어레이의 프로그래밍되지 않는 메모리 셀들 또는 프로그래밍되는 메모리 셀들의 문턱 전압의 거동을 모니터링하고, 이를 검출하여 기록된 데이터의 신뢰성을 향상시킬 수 있는 전술한 비휘발성 메모리 소자일 수 있다.
본 발명에 따른 컴퓨팅 시스템은 모바일 장치일 수 있으며, 이 경우, 컴퓨팅 시스템의 동작 전압을 공급하기 위한 배터리(4700)가 더 제공될 수 있다. 도시하지는 아니하였지만, 발명에 따른 컴퓨팅 시스템에는 응용 칩셋(application chipset), 카메라 이미지 프로세서(Camera Image Processor: CIS), 또는 모바일 디램이 더 제공될 수 있다. 메모리 컨트롤러(4200) 및 플래시 메모리 장치(4100)는, 예를 들면, 데이터를 저장하는 비휘발성 메모리 소자를 사용하는 SSD(Solid State Drive/Disk)를 구성할 수 있다.
본 발명에 따른 불휘발성 메모리 장치 그리고/또는 메모리 컨트롤러는 다양한 형태들의 패키지를 이용하여 실장될 수 있다. 예를 들면, 본 발명에 따른 플래시 메모리 장치 그리고/또는 메모리 컨트롤러는 PoP(Package on Package), Ball grid arrays(BGAs), Chip scale packages(CSPs), Plastic Leaded Chip Carrier(PLCC), Plastic Dual In-Line Package(PDIP), Die in Waffle Pack, Die in Wafer Form, Chip On Board(COB), Ceramic Dual In-Line Package(CERDIP), Plastic Metric Quad Flat Pack(MQFP), Thin Quad Flatpack(TQFP), Small Outline(SOIC), Shrink Small Outline Package(SSOP), Thin Small Outline(TSOP), System In Package(SIP), Multi Chip Package(MCP), Wafer-level Fabricated Package(WFP), 또는 Wafer-Level Processed Stack Package(WSP)와 같은 패키지들을 이용하여 실장될 수 있다.
이상에서 설명한 본 발명이 전술한 실시예 및 첨부된 도면에 한정되지 않으며, 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러가지 치환, 변형 및 변경이 가능하다는 것은, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 명백할 것이다.
Claims (28)
- 적어도 1 개 이상의 데이터 상태를 갖도록 프로그래밍되는 복수의 메모리 셀들을 포함하는 메모리 셀 어레이;
워드라인을 통하여 상기 복수의 메모리 셀들 중 선택된 메모리 셀들에 대하여 ISPP 방식에 의한 프로그램 펄스 및 검증 펄스를 포함하는 복수의 프로그램 루프들을 인가하는 행 디코더;
비트라인을 통하여 상기 메모리 셀 어레이에 엑세스하여 상기 메모리 셀들 중 선택된 메모리 셀들의 상기 검증 펄스에 대한 온 또는 오프 상태를 검출하여 이를 기초로 프로그램된 메모리 셀들의 수 또는 프로그램되지 않은 메모리 셀들의 수를 카운팅하는 메모리 셀 카운팅 회로;
상기 메모리 셀 카운팅 회로로부터 생성된 카운트 결과를 수신하여, 해당 프로그램 루프의 순번을 검출하는 프로그램 루프 순번 검출기;
상기 메모리 셀 카운팅 회로로부터 생성된 카운트 결과를 수신하여 설정 값과 크기 비교하는 비교기; 및
상기 복수의 프로그램 루프에 의한 ISPP 방식에 따른 프로그램 및 검증을 수행하도록 행 디코더, 상기 메모리 셀 카운팅 회로 및 상기 비교기를 제어하는 제어 로직을 포함하며,
상기 제어 로직은 프로그래밍된 메모리 셀의 수 또는 프로그래밍되지 않은 메모리 셀의 수를 상기 메모리 셀 카운팅 회로에 의해 독출하는 적어도 2 회 이상의 메모리 셀 카운팅 동작과 상기 프로그램 루프의 순번에 관한 기대 값을 이용하여, 상기 복수의 프로그램 루프들을 제어하고, 프로그래밍되지 않는 메모리 셀들 또는 프로그래밍되는 메모리 셀들의 수 또는 비율과 상기 설정 값을 상기 비교기를 통해 비교하여 비정상적으로 느린 메모리 셀 또는 비정상적 빠른 메모리 셀 및 이를 포함하는 페이지를 검출하여 프로그램 패스 또는 프로그램 패일을 처리하는 비휘발성 메모리 소자. - 제 1 항에 있어서,
상기 메모리 셀 카운팅 회로는 페이지 버퍼의 전류 센싱 회로에 결합되는 비휘발성 메모리 소자. - 제 1 항에 있어서,
상기 비휘발성 메모리 소자는 플래시 메모리 소자를 포함하는 비휘발성 메모리 소자. - 복수의 메모리 셀들을 포함하고, 상기 복수의 메모리 셀들이 적어도 1 개 이상의 데이터 상태를 갖도록 프로그래밍되는 비휘발성 메모리 소자의 프로그래밍 방법으로서,
상기 복수의 메모리 셀들 중 선택된 메모리 셀들에 대하여 ISPP(Incremental Step Pulse Programming) 방식에 의해 프로그램 루프 순번 값을 증가시키면서 프로그래밍하는 단계;
상기 선택된 메모리 셀들 중 프로그램되지 않은 메모리 셀들의 수 또는 비가 제 1 설정 값 이하인 해당 프로그램 루프의 제 1 순번 값을 검출하는 단계;
상기 제 1 순번 값으로부터 상기 프로그램되지 않은 메모리 셀들의 수 또는 비가 상기 제 1 설정 값보다 작은 제 2 설정 값 이하가 될 것으로 예측되는 프로그램 루프의 순번 값의 기대 값인 제 2 순번 값을 산출하는 단계;
상기 제 1 순번 값을 갖는 프로그램 루프 이후, 프로그램되지 않은 메모리 셀들에 대하여 상기 제 2 순번 값을 갖는 프로그램 루프까지 프로그램 루프들을 실행하여 상기 프로그래밍되지 않은 메모리 셀들이 상기 적어도 1 개 이상의 데이터 상태를 갖도록 프로그래밍하는 단계;
상기 제 2 순번 값의 프로그램 루프에서 프로그래밍되지 않은 메모리 셀들의 수 또는 비를 검출하는 단계;
상기 검출된 제 2 순번 값의 프로그램 루프에서 프로그래밍되지 않은 메모리 셀들의 수 또는 비와 상기 제 2 설정값의 크기를 비교하는 단계;
상기 비교하는 단계에서, 상기 프로그래밍되지 않은 메모리 셀들의 상기 수 또는 비가 상기 제 2 설정값 이하인 경우 프로그래밍 패스로 판정하는 단계; 및
상기 비교하는 단계에서, 상기 프로그래밍되지 않은 메모리 셀들의 상기 수 또는 비가 상기 제 2 설정값을 초과하는 경우 프로그래밍 패일로 판정하는 단계를 포함하는 비휘발성 메모리 소자의 프로그래밍 방법. - 제 4 항에 있어서,
상기 제 1 설정 값은 프로그램되지 않은 메모리 셀들의 수(NUP), 프로그램될 메모리 셀들의 총 수(NTP) 대비 프로그램되지 않는 메모리 셀들의 수(NUP)의 비(NUP/NTP), 또는 페이지의 크기(NPG) 대비 프로그램되지 않은 메모리 셀들의 수(NUP)인 비(NUP/NPG)를 포함하는 비휘발성 메모리 소자의 프로그래밍 방법. - 제 4 항에 있어서,
상기 해당 프로그램 루프의 제 1 순번 값을 검출하는 단계는,
프로그램되지 않은 메모리 셀들의 수 또는 비가 상기 제 1 설정 값 이하가 될 것으로 예측되는 해당 프로그램 루프의 순번 값의 기대 값을 산출하는 단계; 및
상기 기대 값보다 작은 순번 값을 갖는 프로그램 루프에서부터 상기 프로그램되지 않은 메모리 셀들의 수를 카운팅하여, 상기 해당 프로그램 루프의 상기 제 1 순번 값을 검출하는 단계를 포함하는 비휘발성 메모리 소자의 프로그래밍 방법. - 제 6 항에 있어서,
상기 기대 값 보다 작은 순번 값을 갖는 프로그램 루프는 상기 기대 값보다 1 회 내지 5 회 이전의 프로그램 루프를 포함하는 비휘발성 메모리 소자의 프로그래밍 방법. - 제 6 항에 있어서,
상기 기대 값은 상기 비휘발성 메모리 소자의 규격 및 요구 조건을 기초로, 타겟 값(Vth), △VISPP의 크기, △Vth 및 프로그램 펄스의 최대 값(Z) 중 적어도 어느 하나, 제품 테스트 단계에서 얻어지는 경험적, 통계적 및 산술적 요인들 중 적어도 어느 하나 또는 이의 조합을 고려하여 산출되는 비휘발성 메모리 소자의 프로그래밍 방법. - 제 4 항에 있어서,
상기 제 2 순번 값은 정상적 메모리 셀들의 평균 프로그래밍 속도에 기초하여 산출되는 비휘발성 메모리 소자의 프로그래밍 방법. - 제 4 항에 있어서,
상기 제 2 설정값은, 프로그램되지 않은 메모리 셀들의 수(NUP), 프로그램될 메모리 셀들의 총 수(NTP) 대비 프로그램되지 않은 메모리 셀들의 수(NUP)의 비(NUP/NTP), 또는 페이지의 크기(NPG) 대비 타겟 값인 Vvfy 미만의 문턱 전압 값을 갖는 프로그램되지 않은 메모리 셀들의 수(NUP)의 비(NUP/NPG)를 포함하는 비휘발성 메모리 소자의 프로그래밍 방법. - 제 4 항에 있어서,
상기 제 2 설정 값은 에러 정정 코드에 의해 정정가능한 허용 한계 또는 오차 범위를 고려하여 산출되는 비휘발성 메모리 소자의 프로그래밍 방법. - 제 4 항에 있어서,
상기 제 2 순번 값은, 정상적 프로그램 속도를 갖는 메모리 셀의 규격 및 요구 조건을 기초로 상기 제 2 설정 값, 상기 제 1 순번 값, 타겟 값, △VISPP의 크기, △Vth 및 프로그램 펄스의 최대 값(Z) 중 적어도 어느 하나, 제품 테스트 단계에서 얻어지는 경험적, 통계적 및 산술적 값 중 적어도 어느 하나 또는 이의 조합을 기초로 결정되는 비휘발성 메모리 소자의 프로그래밍 방법. - 제 4 항에 있어서,
상기 비휘발성 메모리 소자는 플래시 메모리를 포함하는 비휘발성 메모리 소자의 프로그래밍 방법. - 제 4 항에 있어서,
상기 비휘발성 메모리 소자는 단일 워드라인에 복수의 페이지들을 포함하며,
상기 복수의 페이지들 중 어느 하나의 페이지에 대하여 선택적으로 상기 단계들을 수행하는 비휘발성 메모리 소자의 프로그래밍 방법. - 제 4 항에 있어서,
상기 비휘발성 메모리 소자는 풀-시퀀싱 멀티 비트 프로그래밍 또는 부분-시퀀싱 멀티 비트 프로그래밍에 의해 검증되는 멀티 레벨 셀들을 포함하며,
상기 단계들은 상기 풀-시퀀싱 멀티 비트 프로그래밍의 검증 단계 또는 상기 부분-시퀀싱 멀티 비트 프로그래밍의 검증 단계에서 수행되는 비휘발성 메모리 소자의 프로그래밍 방법. - 제 4 항에 있어서,
상기 단계들은 비정상적 느린 메모리 셀들 및 이를 포함하는 페이지의 검출을 위해 수행되고, 상기 단계들과 병렬적으로 하기의 비정상적 빠른 메모리 셀들 및 이를 포함하는 페이지의 검출을 위한 추가적 단계들을 더 포함하며,
상기 추가적 단계들은,
상기 선택된 메모리 셀들 중 프로그램된 메모리 셀들의 수 또는 비가 제 3 설정 값 이상인 해당 프로그램 루프의 제 3 순번 값을 검출하는 단계;
상기 제 3 순번 값으로부터 상기 프로그램된 메모리 셀들의 수 또는 비가 제 4 설정 값 이상일 것으로 예측되는 프로그램 루프의 순번 값의 기대 값인 제 4 순번 값을 산출하는 단계;
상기 제 3 순번 값을 갖는 프로그램 루프 이후, 프로그램되지 않은 메모리 셀들에 대하여 상기 제 4 순번 값을 갖는 프로그램 루프까지 프로그램 루프들을 실행하여 상기 프로그래밍되지 않은 메모리 셀들이 상기 적어도 1 개 이상의 데이터 상태를 갖도록 프로그래밍하는 단계;
상기 제 4 순번 값의 프로그램 루프에서 프로그래밍된 메모리 셀들의 수 또는 비를 검출하는 단계;
상기 검출된 제 4 순번 값의 프로그램 루프에서 프로그래밍된 메모리 셀들의 수 또는 비와 상기 제 4 설정값의 크기를 비교하는 단계;
상기 비교하는 단계에서, 상기 프로그래밍된 메모리 셀들의 상기 수 또는 비가 상기 제 4 설정값 이상인 경우 프로그래밍 패스로 판정하는 단계; 및
상기 비교하는 단계에서, 상기 프로그래밍된 메모리 셀들의 상기 수 또는 비가 상기 제 4 설정값 미만인 경우 프로그래밍 패일로 판정하는 단계를 포함하는 비휘발성 메모리 소자의 프로그래밍 방법. - 복수의 메모리 셀들을 포함하고, 상기 복수의 메모리 셀들이 적어도 1 개 이상의 데이터 상태를 갖도록 프로그래밍되는 비휘발성 메모리 소자의 프로그래밍 방법으로서,
상기 복수의 메모리 셀들 중 선택된 메모리 셀들에 대하여 ISPP 방식에 의해 프로그램 루프 순번 값을 증가시키면서 프로그래밍하는 단계;
상기 선택된 메모리 셀들 중 프로그램된 메모리 셀들의 수 또는 비가 제 3 설정 값 이상인 해당 프로그램 루프의 제 3 순번 값을 검출하는 단계;
상기 제 3 순번 값으로부터 상기 프로그램된 메모리 셀들의 수 또는 비가 상기 제 3 설정 값보다 큰 제 4 설정 값 이상일 것으로 예측되는 프로그램 루프의 순번 값의 기대 값인 제 4 순번 값을 산출하는 단계;
상기 제 3 순번 값을 갖는 프로그램 루프 이후, 프로그램되지 않은 메모리 셀들에 대하여 상기 제 4 순번 값을 갖는 프로그램 루프까지 프로그램 루프들을 실행하여 상기 프로그래밍되지 않은 메모리 셀들이 상기 적어도 1 개 이상의 데이터 상태를 갖도록 프로그래밍하는 단계;
상기 제 4 순번 값의 프로그램 루프에서 프로그래밍된 메모리 셀들의 수 또는 비를 검출하는 단계;
상기 검출된 제 4 순번 값의 프로그램 루프에서 프로그래밍된 메모리 셀들의 수 또는 비와 상기 제 4 설정값의 크기를 비교하는 단계;
상기 비교하는 단계에서, 상기 프로그래밍된 메모리 셀들의 상기 수 또는 비가 상기 제 4 설정값 이상인 경우 프로그래밍 패스로 판정하는 단계; 및
상기 비교하는 단계에서, 상기 프로그래밍된 메모리 셀들의 상기 수 또는 비가 상기 제 4 설정값 미만인 경우 프로그래밍 패일로 판정하는 단계를 포함하는 비휘발성 메모리 소자의 프로그래밍 방법. - 제 17 항에 있어서,
상기 제 4 설정 값은 프로그램된 메모리 셀들의 수(NP), 프로그램될 메모리 셀들의 총 수(NTP) 대비 프로그램된 메모리 셀들의 수(NP)의 비(NP/NTP), 또는 페이지의 크기(NPG) 대비 프로그램된 메모리 셀들의 수(NP)인 비(NP/NPG)를 포함하는 비휘발성 메모리 소자의 프로그래밍 방법. - 제 17 항에 있어서,
상기 해당 프로그램 루프의 제 3 순번 값을 검출하는 단계는,
프로그램된 메모리 셀들의 수 또는 비가 상기 제 3 설정 값 이상이 될 것으로 예측되는 해당 프로그램 루프의 순번 값의 기대 값을 산출하는 단계; 및
상기 기대 값보다 작은 순번 값을 갖는 프로그램 루프에서부터 상기 프로그램된 메모리 셀들의 수를 카운팅하여, 상기 해당 프로그램 루프의 상기 제 3 순번 값을 검출하는 단계를 포함하는 비휘발성 메모리 소자의 프로그래밍 방법. - 제 19 항에 있어서,
상기 기대 값보다 작은 순번 값을 갖는 프로그램 루프는 상기 기대 값보다 1 회 내지 5 회 이전의 프로그램 루프를 포함하는 비휘발성 메모리 소자의 프로그래밍 방법. - 제 19 항에 있어서,
상기 기대 값은 상기 비휘발성 메모리 소자의 규격 및 요구 조건을 기초로, 타겟 값(Vth), △VISPP의 크기, △Vth 및 프로그램 펄스의 최대 값(Z) 중 적어도 어느 하나, 제품 테스트 단계에서 얻어지는 경험적, 통계적 및 산술적 요인들 중 적어도 어느 하나 또는 이의 조합을 고려하여 산출되는 비휘발성 메모리 소자의 프로그래밍 방법. - 제 17 항에 있어서,
상기 제 4 순번 값은 정상적 메모리 셀들의 평균 프로그래밍 속도에 기초하여 산출되는 비휘발성 메모리 소자의 프로그래밍 방법. - 제 17 항에 있어서,
상기 제 4 설정값은, 프로그램된 메모리 셀들의 수(NP), 프로그램될 메모리 셀들의 총 수(NTP) 대비 프로그램된 메모리 셀들의 수(NUP)의 비(NP/NTP), 또는 페이지의 크기(NPG) 대비 프로그램된 메모리 셀들의 수(NP)의 비(NP/NPG)를 포함하는 비휘발성 메모리 소자의 프로그래밍 방법. - 제 17 항에 있어서,
상기 제 4 설정 값은 에러 정정 코드에 의해 정정가능한 허용 한계 또는 오차 범위를 고려하여 산출되는 비휘발성 메모리 소자의 프로그래밍 방법. - 제 17 항에 있어서,
상기 제 4 순번 값은, 정상적 프로그램 속도를 갖는 메모리 셀의 규격 및 요구 조건을 기초로 상기 제 4 설정 값, 상기 제 3 순번 값, 타겟 값, △VISPP의 크기, △Vth 및 프로그램 펄스의 최대 값(Z) 중 적어도 어느 하나, 제품 테스트 단계에서 얻어지는 경험적, 통계적 및 산술적 값 중 적어도 어느 하나 또는 이의 조합을 기초로 결정되는 비휘발성 메모리 소자의 프로그래밍 방법. - 제 17 항에 있어서,
상기 비휘발성 메모리 소자는 플래시 메모리 소자를 포함하는 비휘발성 메모리 소자의 프로그래밍 방법. - 제 17 항에 있어서,
상기 비휘발성 메모리 소자는 단일 워드라인에 복수의 페이지들을 포함하며,
상기 복수의 페이지들 중 어느 하나의 페이지에 대하여 선택적으로 상기 단계들을 수행하는 비휘발성 메모리 소자의 프로그래밍 방법. - 제 17 항에 있어서,
상기 비휘발성 메모리 소자는 풀-시퀀싱 멀티 비트 프로그래밍 또는 부분-시퀀싱 멀티 비트 프로그래밍에 의해 검증되는 멀티 레벨 셀들을 포함하며,
상기 단계들은 상기 풀-시퀀싱 멀티 비트 프로그래밍의 검증 단계 또는 상기 부분-시퀀싱 멀티 비트 프로그래밍의 검증 단계에서 수행되는 비휘발성 메모리 소자의 프로그래밍 방법.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020140163109A KR20160060917A (ko) | 2014-11-21 | 2014-11-21 | 비휘발성 메모리 소자 및 이의 프로그래밍 방법 |
US14/947,567 US9691486B2 (en) | 2014-11-21 | 2015-11-20 | Data storage device and method of programming memory cells |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020140163109A KR20160060917A (ko) | 2014-11-21 | 2014-11-21 | 비휘발성 메모리 소자 및 이의 프로그래밍 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20160060917A true KR20160060917A (ko) | 2016-05-31 |
Family
ID=56010880
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020140163109A KR20160060917A (ko) | 2014-11-21 | 2014-11-21 | 비휘발성 메모리 소자 및 이의 프로그래밍 방법 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9691486B2 (ko) |
KR (1) | KR20160060917A (ko) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20190054451A (ko) * | 2017-11-13 | 2019-05-22 | 삼성전자주식회사 | 매스비트 카운터를 포함하는 메모리 장치 및 그의 동작 방법 |
US10790034B2 (en) | 2018-04-03 | 2020-09-29 | SK Hynix Inc. | Memory device generating status signal, memory system including the memory device, and method of operating memory device |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102397016B1 (ko) * | 2014-11-24 | 2022-05-13 | 삼성전자주식회사 | 불휘발성 메모리 시스템의 동작 방법 |
KR102314136B1 (ko) * | 2015-06-22 | 2021-10-18 | 삼성전자 주식회사 | 비휘발성 메모리 장치, 메모리 시스템 및 그것의 동작 방법 |
US10782153B2 (en) * | 2016-03-08 | 2020-09-22 | Analog Devices Global | Multiturn sensor arrangement and readout |
KR102519458B1 (ko) * | 2016-11-01 | 2023-04-11 | 삼성전자주식회사 | 비휘발성 메모리 장치 및 그것의 동작 방법 |
KR20180062158A (ko) | 2016-11-30 | 2018-06-08 | 삼성전자주식회사 | 루프 상태 정보를 생성하는 불휘발성 메모리 장치, 그것을 포함하는 저장 장치 및 그것의 동작 방법 |
KR102267046B1 (ko) | 2017-03-29 | 2021-06-22 | 삼성전자주식회사 | 스토리지 장치 및 배드 블록 지정 방법 |
US10354724B2 (en) * | 2017-09-15 | 2019-07-16 | Sandisk Technologies Llc | Methods and apparatus for programming barrier modulated memory cells |
US11501826B2 (en) | 2017-10-17 | 2022-11-15 | R&D3 Llc | Memory device having variable impedance memory cells and time-to-transition sensing of data stored therein |
US12014770B2 (en) | 2017-10-17 | 2024-06-18 | R&D3 Llc | Memory device having variable impedance memory cells and time-to-transition sensing of data stored therein |
US10269413B1 (en) | 2017-10-17 | 2019-04-23 | R&D 3 Llc | Memory device having variable impedance memory cells and time-to-transition sensing of data stored therein |
US11460521B2 (en) | 2019-03-18 | 2022-10-04 | Analog Devices International Unlimited Company | Multiturn sensor arrangement |
KR20200144000A (ko) * | 2019-06-17 | 2020-12-28 | 에스케이하이닉스 주식회사 | 메모리 장치 및 그것의 동작 방법 |
KR20210024269A (ko) | 2019-08-21 | 2021-03-05 | 삼성전자주식회사 | 빠른 읽기 페이지를 포함하는 불휘발성 메모리 장치 및 이를 포함하는 스토리지 장치 |
KR20210027783A (ko) * | 2019-09-03 | 2021-03-11 | 에스케이하이닉스 주식회사 | 저장 장치 및 그 동작 방법 |
JP2021101401A (ja) | 2019-12-24 | 2021-07-08 | キオクシア株式会社 | 半導体記憶装置 |
KR20210152673A (ko) * | 2020-06-09 | 2021-12-16 | 에스케이하이닉스 주식회사 | 저장 장치 및 그 동작 방법 |
KR20220023264A (ko) * | 2020-08-20 | 2022-03-02 | 에스케이하이닉스 주식회사 | 메모리 장치 및 그 동작 방법 |
KR20220043973A (ko) * | 2020-09-28 | 2022-04-06 | 삼성전자주식회사 | 불휘발성 메모리 장치 및 그것의 동작 방법 |
KR20220082473A (ko) * | 2020-12-10 | 2022-06-17 | 에스케이하이닉스 주식회사 | 메모리 장치 및 그 동작 방법 |
US11410739B1 (en) * | 2021-03-19 | 2022-08-09 | Sandisk Technologies Llc | Programming techniques with fewer verify pulses to improve performance |
US11942156B2 (en) * | 2021-06-01 | 2024-03-26 | SK Hynix Inc. | Memory device related to performing a program operation on memory cells |
US20230091724A1 (en) * | 2021-09-17 | 2023-03-23 | Samsung Electronics Co., Ltd. | Storage device, non-volatile memory, and method of operating program of non-volatile memory |
US20240038315A1 (en) * | 2022-07-26 | 2024-02-01 | Sandisk Technologies Llc | Early detection of programming failure for non-volatile memory |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100648290B1 (ko) * | 2005-07-26 | 2006-11-23 | 삼성전자주식회사 | 프로그램 속도를 향상시킬 수 있는 불 휘발성 메모리 장치및 그것의 프로그램 방법 |
US7900102B2 (en) * | 2006-12-17 | 2011-03-01 | Anobit Technologies Ltd. | High-speed programming of memory devices |
JP5032290B2 (ja) * | 2007-12-14 | 2012-09-26 | 株式会社東芝 | 不揮発性半導体記憶装置 |
KR101347287B1 (ko) | 2008-02-20 | 2014-01-03 | 삼성전자주식회사 | 프로그램 전압을 가변적으로 제어할 수 있는 플래쉬 메모리장치 및 그 프로그래밍 방법 |
KR20100012605A (ko) | 2008-07-29 | 2010-02-08 | 삼성전자주식회사 | Ecc를 이용하여 프로그램하는 불휘발성 메모리 장치 및그 프로그램 방법 |
KR101427896B1 (ko) * | 2008-08-06 | 2014-08-11 | 삼성전자주식회사 | 공통 소스 라인의 노이즈를 줄이는 플래시 메모리 장치 및그것을 포함하는 메모리 시스템 |
US8159881B2 (en) | 2009-06-03 | 2012-04-17 | Marvell World Trade Ltd. | Reference voltage optimization for flash memory |
KR101022882B1 (ko) | 2009-06-12 | 2011-03-16 | 주식회사 하이닉스반도체 | 불휘발성 메모리 장치의 동작 방법 |
US8400854B2 (en) * | 2009-09-11 | 2013-03-19 | Sandisk Technologies Inc. | Identifying at-risk data in non-volatile storage |
KR101653206B1 (ko) * | 2010-01-19 | 2016-09-02 | 삼성전자주식회사 | 프로그램 검증 회로 및 이를 포함하는 비휘발성 메모리 장치 |
US8767487B2 (en) * | 2010-03-02 | 2014-07-01 | Micron Technology, Inc. | Drain select gate voltage management |
KR20120009925A (ko) | 2010-07-22 | 2012-02-02 | 삼성전자주식회사 | 프로그램 에러를 줄일 수 있는 불휘발성 메모리 장치, 그것의 프로그램 방법 그리고 그것을 포함하는 메모리 시스템 |
KR20140001479A (ko) | 2012-06-27 | 2014-01-07 | 에스케이하이닉스 주식회사 | 불휘발성 메모리 장치, 그것의 동작 방법 및 그것을 포함하는 데이터 저장 장치 |
KR20140006460A (ko) | 2012-07-05 | 2014-01-16 | 에스케이하이닉스 주식회사 | 불휘발성 메모리 장치, 그것의 동작 방법 및 그것을 포함하는 데이터 저장 장치 |
-
2014
- 2014-11-21 KR KR1020140163109A patent/KR20160060917A/ko not_active Application Discontinuation
-
2015
- 2015-11-20 US US14/947,567 patent/US9691486B2/en active Active
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20190054451A (ko) * | 2017-11-13 | 2019-05-22 | 삼성전자주식회사 | 매스비트 카운터를 포함하는 메모리 장치 및 그의 동작 방법 |
US11594294B2 (en) | 2017-11-13 | 2023-02-28 | Samsung Electronics Co., Ltd. | Memory device including massbit counter and method of operating the same |
US11776642B2 (en) | 2017-11-13 | 2023-10-03 | Samsung Electronics Co., Ltd. | Memory device including massbit counter and method of operating the same |
US10790034B2 (en) | 2018-04-03 | 2020-09-29 | SK Hynix Inc. | Memory device generating status signal, memory system including the memory device, and method of operating memory device |
Also Published As
Publication number | Publication date |
---|---|
US20160148695A1 (en) | 2016-05-26 |
US9691486B2 (en) | 2017-06-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR20160060917A (ko) | 비휘발성 메모리 소자 및 이의 프로그래밍 방법 | |
CN109935267B (zh) | 半导体存储器装置及其操作方法 | |
US10529432B2 (en) | Data storage device including read voltage search unit | |
US8665649B2 (en) | Non-volatile memory device and ISPP programming method | |
US10153050B2 (en) | Non-volatile memory device and memory system including the same | |
US8689082B2 (en) | Method of operating memory controller, and memory system, memory card and portable electronic device including the memory controller | |
US10573378B2 (en) | Methods of programming memory devices | |
US7924624B2 (en) | Memory device and memory programming method | |
US8059467B2 (en) | Memory device and memory programming method | |
KR101662309B1 (ko) | 비휘발성 메모리 장치의 프로그램 방법 | |
US9177660B2 (en) | Method of operating memory device | |
KR101787612B1 (ko) | 비휘발성 메모리 장치의 데이터 저장 방법 및 구동 방법 | |
US9343158B2 (en) | Methods of programming multi-level cell nonvolatile memory devices and devices so operating | |
US10672476B2 (en) | Storage device using program speed and method of operating the same | |
JP5773367B2 (ja) | メモリ装置およびメモリプログラミング方法 | |
US9224494B2 (en) | Erase speed adjustment for endurance of non-volatile storage | |
KR20120076787A (ko) | 비휘발성 메모리 장치의 프로그램 방법 | |
US9147483B2 (en) | Apparatus and method of operating memory device | |
WO2014120943A1 (en) | Adaptive initial program voltage for non-volatile memory | |
KR20130099496A (ko) | 불 휘발성 메모리 장치 및 그것을 포함한 메모리 시스템 | |
KR20170065969A (ko) | 메모리 장치 및 그의 동작방법 | |
US9711197B1 (en) | Memory device and operating method thereof | |
US7764543B2 (en) | Memory device and method of reading memory data | |
US10084487B2 (en) | Apparatuses and methods for erasure-assisted ECC decoding | |
US10991437B2 (en) | Semiconductor memory device, method of operating the same, and memory system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WITN | Withdrawal due to no request for examination |