KR102143325B1 - 에러 정정 코드(ecc)를 가진 비-휘발성 메모리(nvm) 시스템을 프로그래밍하는 방법 - Google Patents

에러 정정 코드(ecc)를 가진 비-휘발성 메모리(nvm) 시스템을 프로그래밍하는 방법 Download PDF

Info

Publication number
KR102143325B1
KR102143325B1 KR1020130136426A KR20130136426A KR102143325B1 KR 102143325 B1 KR102143325 B1 KR 102143325B1 KR 1020130136426 A KR1020130136426 A KR 1020130136426A KR 20130136426 A KR20130136426 A KR 20130136426A KR 102143325 B1 KR102143325 B1 KR 102143325B1
Authority
KR
South Korea
Prior art keywords
program
bit cells
ecc
voltage level
verify
Prior art date
Application number
KR1020130136426A
Other languages
English (en)
Other versions
KR20140061265A (ko
Inventor
푸천 무
첸 헤
Original Assignee
엔엑스피 유에스에이, 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 엔엑스피 유에스에이, 인코포레이티드 filed Critical 엔엑스피 유에스에이, 인코포레이티드
Publication of KR20140061265A publication Critical patent/KR20140061265A/ko
Application granted granted Critical
Publication of KR102143325B1 publication Critical patent/KR102143325B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0064Verifying circuits or methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0069Writing or programming circuits or methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/50Marginal testing, e.g. race, voltage or current testing
    • G11C29/50008Marginal testing, e.g. race, voltage or current testing of impedance
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0409Online test
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0411Online error correction

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Read Only Memory (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)

Abstract

비-휘발성 반도체 메모리 디바이스(50)를 프로그래밍하는 방법은 프로그램 동작(60) 동안 프로그램 검증에 실패했던 복수의 비트 셀들을 결정하는 단계를 포함한다. 비트 셀들은 비트 셀들의 어레이의 비트 셀들의 서브세트에 포함된다. 방법은 에러 정정 코드(ECC) 정정이 비트 셀들(74)의 서브세트에 대해 사전에 실행되었는지를 또한 결정한다. 프로그램 동작은 프로그램 펄스들의 사전결정된 수 이후에 프로그램 검증에 실패했던 비트 셀들의 수가 임계치 수 아래에 있고 ECC 정정이 비트 셀들(78)의 서브세트에 대해 실행되지 않았다면 성공한 것으로 간주된다.

Description

에러 정정 코드(ECC)를 가진 비-휘발성 메모리(NVM) 시스템을 프로그래밍하는 방법{PROGRAMMING A NON-VOLATILE MEMORY(NVM) SYSTEM HAVING ERROR CORRECTION CODE(ECC)}
본 발명은 일반적으로 비-휘발성 메모리들(NVM들)에 관한 것이고, 더 구체적으로, 에러 정정 코드(ECC)를 가진 NVM 시스템들에 관한 것이다.
비-휘발성 메모리들(NVM들)은 일반적으로 프로그램과 소거에 대한 특별한 동작들을 필요로 하고 이러한 동작들이 몇 번 수행될 수 있는지에 대한 제한이 있다. 공통의 메모리 유형, 플래시에서, 메모리가 블록들에서 소거되는 반면에, 세그먼트들에서 프로그래밍(programmed)된다. 하나 이상의 세그먼트가 동시에 프로그래밍될 수 있지만, 프로그래밍된 부분은 전체 블록보다 작다. 그렇지만, 다른 비트들의 압도적인 다수보다 상당히 많은 프로그래밍 펄스들을 필요로 했던 비트들이 여전히 있을 수 있다. 프로그래밍하는 데 느린 이러한 비트들은 슬로우 대 프로그램 비트(slow to program bit)로서 지칭될 수 있다.
다른 문제는 시간 및 아마도 수만 사이클들 동안, 몇몇의 메모리 셀들이 프로그래밍하는 데 약해지거나 또는 느려질 수 있다는 것이다. 이 잠재하는 약한 메모리 셀들은 사실상 프로그래밍하는 데 약해지거나 또는 느려질 때까지 검출하기가 매우 어렵다. 따라서, 잠재하는 약한 메모리 셀들이 디바이스가 제품 실패를 야기할 수 있는 제품에 배치된 후에 잘 발생한다는 것은 드물지 않다. 제품 실패는 임의의 환경들 하에서 특히 집적 회로의 실패를 회피하도록 하는 것이 매우 바람직하다. 이는 일반적으로 제품의 사용자가 수리할 수 있는 것이 아니지만, 제품은 회수되어야하고 특별한 훈련과 값비싼 장비를 가진 누군가가 수리가 제품의 비용에 비해 수리의 비용이 저렴하다는 점에서 행해질 가치가 있다고 가정하면 수리를 해야만 한다.
따라서, NVM 시스템들이 상기에 제기된 하나 이상의 문제들을 개선할 필요가 있다.
본 발명은 예로써 도시되고 수반된 도면들에 의해 제한되지 않고, 유사한 참조 부호들은 유사한 요소들을 나타낸다. 도면들에서 요소들은 간단함과 명확함을 위해 도시되어 있고 반드시 크기를 조정하여 도시될 필요가 없다.
도 1은 실시예에 따라 NVM 시스템을 도시한 도면.
도 2는 도 1의 NVM 시스템의 이해에 도움이 되는 도면.
도 3은 도 1의 NVM 시스템의 이해에 도움이 되는 도면.
도 4는 도 1의 NVM 시스템의 이해에 도움이 되는 흐름도.
하나의 양태에서, 에러 정정 코드(ECC)는 프로그램 동작을 최적화하도록 비-휘발성 메모리(NVM)와 함께 사용된다. 특히 몇몇의 프로그램/소거 사이클들에 대한 사용 후에, 프로그램 동작은 프로그래밍하는 데 느린 단일 비트에 의해 방해될 수 있다. 단일 비트가 프로그래밍되는 것으로부터 상당히 거리가 있을 때, 성공적으로 프로그래밍되는 것이 한번이라도 있을 것 같지 않다는 것이 예측될 수 있다. 이러한 경우에, ECC는 다음의 판독 동작들 동안 비트를 프로그램하도록 이 느림을 정정하기 위해 의존할 수 있다. 반면에, 신호 비트가 성공적으로 프로그램된 것에 비교적 가깝다면, 프로그램 프로세스는 성공적으로 프로그래밍될 높은 신뢰의 정도로 계속될 수 있다. 이는 도면들과 다음에 쓰여진 설명을 참조로 하여 더 잘 이해된다.
NVM 어레이(12), 에러 정정 코드(ECC) 유닛(14), ECC 레코드(16) 및 메모리 제어기(18)를 가진 비-휘발성 메모리(NVM) 시스템(10)이 도 1에 도시되어 있다. NVM 어레이(12)는 블록 0으로서 도시되는 블록(20), 블록 1로서 도시되는 블록(22), 블록 2로서 도시되는 블록(24) 및 블록 3으로서 도시되는 블록(26)을 포함한 복수의 블록들을 포함한다. 메모리 제어기(18)는 NVM 어레이(12)와 ECC 레코드(16)에 연결된다. ECC 유닛(14)은 NVM 어레이(12)와 ECC 레코드(16)에 연결된다. 블록들(20, 22, 24 및 26) 각각은 복수의 ECC 세그먼트들 내에 배열된 복수의 메모리 셀들을 갖는다. 블록(20)은 데이터 비트들과 ECC 비트들을 각각 가진 복수의 ECC 세그먼트들(25)을 가진 예시적인 블록이다. 예시적인 데이터 비트들(27) 및 예시적인 ECC 비트들(28)은 단일의 ECC 세그먼트를 형성한다. ECC 세그먼트는 에러 정정 또는 검출이 ECC 세그먼트 내의 데이터에 대해 발생하는 블록의 서브 세트 또는 유닛이다. 예를 들어, 전형적인 ECC 방법은 단일-비트 에러를 정정할 수 있고 ECC 세그먼트 내에서 더블-비트 에러(double-bit error)를 검출할 수 있다. 블록들(20, 22, 24 및 26)의 주어진 블록에 대해, 모든 메모리 셀들은 동시에 소거되지만 ECC 세그먼트들에서 프로그램되고, 이는 전체 블록보다 적지만 한 번에 2개의 세그먼트들이 될 수 있다. ECC 비트들(28)은 데이터 비트들(27)에 대응하고 데이터 비트들(27)에 대한 정보를 저장하고 데이터 비트들의 세트에 대한 방법으로 그 대응하는 데이터 비트들에 대한 정보를 저장하는 ECC 비트들의 대응하는 세트가 있다. 소거 동작이 블록에 의해 행해지지만 프로그램이 세그먼트들에 의해 행해지는 플래시 메모리들인 전형적인 NVM들이 있다.
메모리 제어기(18)는 블록 소거 동작들을 제어하는 것, 판독하는 것 및 세그먼트 프로그래밍과 같이 NVM 어레이(12)의 동작을 제어한다. ECC 유닛(14)은 NVM 어레이(12)의 출력을 수신하고, 에러들을 정정하고 정정된 출력을 제공한다. ECC 유닛(14)은 또한 NVM 어레이 내의 어느 위치들이 정정과 이러한 정정들에 대한 정보를 필요로 하는 지에 관한 정보를 ECC 레코드(16)에 제공한다. ECC 레코드(16)는 비-휘발성 메모리에 바람직하게 저장되고 NVM 어레이(12)의 보존 부분에 있을 수 있다. 일반적으로 프로그래밍 동작 중, 사용자들만이 프로그램될 데이터 비트들(27)을 명시할 필요가 있고, 대응하는 ECC 비트들(28)은 ECC 유닛에 의해 계산될 것이고 따라서 데이터 비트들과 함께 프로그램될 것이다. 메모리 제어기(18)는 ECC 레코드(16)에 저장된 정보에 액세스(access)한다.
블록들(20, 22, 24 및 26) 중 하나의 프로그램 동작 전의 비트들의 게이트 전압 분포(32)와 프로그램 동작의 일부 후의 비트들의 분포(30)가 도 2에 도시되어 있다. 분포(32)는 모든 세그먼트의 비트들이 소거 상태에 있는 프로그램될 ECC 세그먼트들의 초기 상태를 도시한다. 분포는 바람직하게 빽빽하다. 프로그램 동작은 충분하게 높은 임계치 전압으로 프로그램될 블록의 ECC 세그먼트들의 비트들의 임계치 전압을 상승시키도록 복수의 프로그램 펄스들로서 실행되어 명시된 전류를 전하는 게이트 전압(Vg)이 정상 프로그램 검증으로서 언급되는 정상 프로그램 검증 레벨(Vgp) 위에 있도록 한다. 따라서 제 1 단계는 2개의 ECC 세그먼트들일 수 있는 블록의 일부에 연속적인 프로그램 펄스들의 제 1 그룹을 적용시키는 것이다. 제 1 단계 후에, 세그먼트들의 비트 셀들은 명시된 전류를 전하기 위한 게이트 전압(Vg)이 정상 프로그램 검증(Vgp) 위에 있음으로써 적절히 프로그램되었던 것을 검증하도록 테스트된다. 비트 셀들을 테스트하는 것은 프로그램 검증으로서 언급될 수 있다. 더 많은 프로그래밍이 요구된다면, 펄스들을 적용하는 것의 차후의 단계들이 실행된다. 차후의 단계들은 동일한 기간 동안 동일한 전압으로 펄스들의 동일한 수를 가질 수 있다. 반면에, 차후의 프로그램 단계들은 펄스들의 수, 시간 기간 및 전압에 관해 동일하거나 또는 다를 수 있다. 분포(30)는 분포(30)의 모든 비트들이 인가된 게이트 전압으로 정상 프로그램 검증(Vgp)에서, 전해진 명시된 전류 이하의 전류를 초래하는 임계치 전압을 갖기 때문에 프로그램되게 고려된다. 따라서 분포(30)의 비트들은 정상 프로그램 검증 전압(Vgp) 위에 있는 것으로서 언급될 수 있다. NVM 시스템(10)의 정상 판독 동작 중 비트 셀들에 인가되는 게이트 전압(Vg)은 소거 검증 전압(Vge)과 프로그램 검증 전압(Vgp) 사이에 있고 비트들의 프로그램된 상태와 소거된 상태 사이를 구별할 뿐만 아니라 데이터 보유에 대한 충분한 마진(margin)을 보장하는 판독을 실행하기 위해 최적 값에 기초하여 선택된다. 다시 말해서, 소거된 비트들은 전류가 게이트 전압(Vg)이 정상 판독 동작 중 판독 전압으로서 인가될 때 몇몇의 마진에 의해 사전 결정된 전류 위에 있어야하는 상태에 있어야하고 프로그램된 비트들은 게이트 전압(Vg)이 정상 판독 동작 중 판독 전압으로서 인가될 때 몇몇의 마진에 의해 사전결정된 전류 이하의 전류를 제공해야한다.
도 2에 도시된 바와 같이, 프로그램 동작에서 제 1 단계에서 발생하는 전압(Vgp) 위에 있지 않은 비트(34)가 또한 있고 따라서 검증 게이트 전압(Vg)으로서 정상 프로그램 검증 전압(Vgp)을 인가하는 것에 기초하여 테스트를 위해 충분히 프로그램되지 않는다. 다른 프로그램 검증은 500 mV일 수 있는 사전결정된 차이에 의한 프로그램 검증 전압(Vgp)보다 낮은 Vgr의 감소된 전압의 인가된 게이트 전압으로 실행된다. 완화된 프로그램 검증 전압(Vgr)은 정상 판독 게이트 전압보다 높아야한다. 완화된 프로그램 검증은 보다 낮은 임계치 전압을 가진 비트들이 게이트 전압(Vg)으로서 인가된 낮춰진 전압(Vgr) 때문에 명시된 전류를 전할 수 있다는 점에서 정상 프로그램 검증보다 용이한 테스트이다. 검증 게이트 전압(Vg)으로서 낮춰진 전압(Vgr)을 사용하는 것은 완화된 프로그램 검증으로서 언급될 수 있다. 도 2에 도시된 바와 같이, 비트(34)는 완화된 프로그램 검증을 패스(pass)한다.
정상 프로그램 전압(Vgp)에 기초하여 정상 프로그램 검증을 패스하지 못할 뿐만 아니라 완화된 프로그램 전압(Vgr)에 기초하여 완화된 프로그램 검증을 패스하지 못하는 비트(38)가 있는 결과로, 분포(36)가 도 2의 분포(32)와 동일한 소거된 분포(32)로부터 시작한 프로그램 동작 후의 ECC 세그먼트들의 분포에 대응하는 경우에 대해 도 3에 도시된다. 따라서 도 2와 도 3 사이의 차이는 도 3의 정상 프로그램 검증을 패스하지 못한 단일 비트(38)가 또한 완화된 프로그램 검증을 패스하지 못한다는 것이다. 따라서, 이 경우에, 제 1 프로그램 단계들 후의 완화된 검증을 패스하지 못하는 비트, 즉 비트(38)만이 도 2의 비트(34)를 충분히 프로그램하도록 요구될 것보다 더 많은 프로그래밍을 요구하도록 예상될 수 있다. 그러므로, 도 3의 비트(38)에 대해, 그렇지 않으면 프로그램 동작을 상당히 늦출 수 있기 때문에 정상 판독 동작들 동안 그것을 정정하도록 ECC에 의존한다기보다는 추가의 프로그램 펄스들을 적용하지 않는 것이 유익하다. 도 2의 비트(34) 동안, 정상 프로그램 검증을 패스하는 것에 접근해 있다. 따라서 도 2의 경우에, 비트(34)가 정상 프로그램 검증 레벨 위에서 이동될 수 있는 지를 보기 위해 추가의 프로그램 펄스들을 적용하는 것, 및 최대 프로그램 펄스 카운트(count)가 도달될 수 있을 때 이러한 비트에 대해 ECC에 의존하는 것이 유리하다.
도 2 및 도 3의 단일 비트 슬로우-대-프로그램 상황들(single bit slow-to-program situation)을 다루는 방법을 도시한 흐름도(50)가 도 4에 도시되어 있다. 흐름도(50)는 단계들(52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 78, 80, 82, 84, 86, 88 및 89)을 포함한다. 단계 52에서, 어드레스(address) 및 프로그램 펄스 카운트를 초기화하는 프로그램 동작이 시작된다. 펄스 카운트는 보통 0으로 초기화될 것이고, 어드레스는 프로그램될 제 1 ECC 세그먼트로 초기화될 것이다. 이 시스템에서 ECC 세그먼트들의 쌍은 동시에 프로그램될 수 있지만, 2개의 ECC 세그먼트들은 이것들 각각이 데이터 비트들의 세트와 ECC 비트들의 대응하는 세트를 갖는다는 점에서 각각 처리된다. 따라서 데이터 비트들(27)과 ECC 비트들(28)에 대한 프로그래밍은 다른 ECC 세그먼트들에 대해 예시적이고, 따라서, 이 예에서, 데이터 비트들(27)과 ECC 비트들(28)은 선택된 세그먼트로 간주된다. 단계 54는 Vgp인 정상 프로그램 검증 레벨에서 전류 세그먼트의 프로그램 검증을 실행한다. 검증을 패스했던 단계 56에서, 대답이 "예"라면, 프로세스는 프로그램되는 다른 ECC 세그먼트가 있다면 단계 78에서 결정을 계속한다. 단계 78에서 대답이 "아니오"라면, 프로그램은 단계 82에서 행해져서 프로세스는 종료한다. 단계 78에서 대답이 "예"라면, 프로세스는 프로그래밍이 다음의 ECC 세그먼트로 진행하는 단계 80으로 계속된다. 단계 56에서 검증을 패스 못 해서 대답이 "아니오"라면, 프로그래밍 펄스는 적용되고 펄스 카운트는 단계 58에서 증가된다. 단계 78이 다음의 단계인 결과에서, 그 세그먼트의 프로그래밍은 성공한 것으로 간주된다.
따라서 프로그램 검증은 검증이 Vgp의 정상 검증 레벨에서 발생하는 단계 60에서 실행된다. 이 단계는 정상 검증에 대해 실패한 비트들(A)의 수를 식별한다. 단계 62에서, 전류 ECC 세그먼트가 성공적으로 프로그램되었던 것을 의미하는, 실패한 비트들의 수가 0이라면, 프로세스는 단계 78로 계속되고 이어서 프로그램되는 ECC 세그먼트들이 더 없다면 단계 82로 계속되고 프로그램되는 ECC 세그먼트들이 더 있다면 단계 78 및 단계 80으로 진행한다. 단계 60에서 정상 프로그램 검증으로부터 적어도 하나의 실패한 비트가 있다면, 프로세스는 펄스들의 사전결정된 수가 도달되었는지를 완화된 프로그램 검증을 실행하기 시작하기 전에, 결정하도록 단계 64로 계속된다. 만약 그렇지 않다면, 프로세스는 다른 프로그램 펄스의 적용으로 단계 58로 계속된다. 펄스들의 사전결정된 수에 도달했다면, 다음 단계는 단계 66이다. 단계 66이 단계 60에서의 정상 프로그램 검증으로부터 A=1인, 하나의 실패한 비트만이 있다는 것을 결정한다면, 다음의 단계는 프로그램 검증 레벨이 감소된 레벨(Vgr)로 완화되고, 프로그램 검증이 완화된 프로그램 검증 레벨에서 실행되는 단계 84이다. 단계 66에서 결정된 바와 같이 정상 프로그램 검증으로부터 하나 이상의 실패한 비트들이 있다면, 단계 68에서 최대 펄스 카운트가 도달했는지를 결정한다. 사전결정된 펄스 카운트는 최대 펄스 카운트보다 작다. 최대 펄스 카운트가 도달 못 했다면 프로세스는 다른 프로그래밍 펄스를 적용하여 단계 58에서 계속된다. 최대 펄스 카운트에 도달했다면 프로그래밍은 단계 72에서 실패했다.
프로세스가 정상 검증 레벨(Vgp)에서 실패했던 전류 세그먼트의 하나의 비트가 있는 단계 66에서의 대답 "예" 때문에 단계 84로 계속되는 경우에 대해, 검증 레벨은 레벨(Vgr)로 감소된다. 비트가 완화된 프로그램 검증으로부터 실패한 비트들(B)의 수를 얻음으로써 완화된 검증 레벨(Vgr)에서 여전히 실패하는지의 여부를 결정한다. 그러하다면, 단계 86에서 B=1인 것이 참이고, 이는 정상 프로그램 검증과 완화된 프로그램 검증 둘 다의 아래에 있는 단일 비트가 있음을 의미한다. 이 상황의 예는 도 3의 비트(38)이다. 프로세스는 ECC 정정이 ECC 레코드(16)를 검사하여 이 세그먼트 상에서 발생했는지를 단계 88에서 결정하여 계속된다. 그렇지 않다면, 세그먼트는 ECC가 정상 판독 동작들 동안 단일 실패 비트를 정정하도록 의존할 수 있기 때문에 가능한, 패스로서 간주되고, 프로세스는 단계 78 및 이어서 단계 80 또는 단계 82 중 하나로 계속된다. 단계 88에서의 결정이 ECC 정정이 현재의 ECC 세그먼트에서 발생했다는 것이라면, 다음의 단계는 단계 89에서의 최대 펄스 카운트가 도달했는지에 대한 결정이다. 그렇지 않다면, 프로세스는 단계 58에서 다른 프로그래밍 펄스를 적용하여 계속된다. 이것은 ECC 회로들이 다른 단일-비트 문제를 정정하도록 이미 사용되었기 때문에 ECC가 더 이상 현재의 ECC 세그먼트 상의 단일 슬로우-대-프로그램 실패 비트(single slow-to-program failing bit)를 정정하도록 의존할 수 없는 경우이다. 따라서 정상 프로그램 검증 레벨 이상에서 단일 실패 비트를 이동시키도록 프로그램 펄스들을 유지시키는 것은 필수적이다. 단계 86에서 B=0이라면, 프로세스는 최대 펄스 카운트가 발생했는지에 대한 결정과 함께 단계 89로 또한 계속된다. 그렇지 않다면, 다른 프로그래밍 펄스가 단계 58에서 적용된다. 최대 펄스가 단계 89에서 도달되는 경우에, 단계 62에서 A=1이고 단계 86에서 B=0이면, 이는 정상 프로그램 검증 아래이지만 완화된 프로그램 검증 위에 단일 비트, 예를 들어, 도 2의 비트(34)가 있다는 것을 의미하고, ECC 정정이 현재의 세그먼트 상에 발생했는지에 대한 추가의 결정이 단계 74에서 행해진다. 그러하다면, 도면 부호 72에서의 단계에서 프로그래밍은 실패했다. ECC 정정이 현재의 ECC 세그먼트 상에서 발생하지 않았다면, 그 세그먼트는 패스(pass)이고 단계 78은 단계 80 또는 단계 82로 후속되었다.
이용할 수 있는 ECC 정정 능력을 이용하는 것은 실제의 정정에 대해 세그먼트 레벨에 있음에도 불구하고 세그먼트 레벨 대신에 블록 레벨에서 있을 수 있다. 예를 들어, 블록에서 발생한 ECC 정정들의 전체 수가 중요할 수 있다는 경우들이 있을 수 있다. 따라서, 어떠한 ECC 정정도 행해지지 않았다는 것에 대한 간단한 결정 대신에, 전체 블록 상에서 행해진 ECC 정정들의 전체 수를 결정하는 것이 또한 유익할 수 있다.
따라서, 메모리 블록은 단일의 실패한 비트의 가장 있음직한 상황을 아는 것을 이용하고 이용할 수 있는 ECC를 이용하는 프로그램 동작을 통해 있었다. 이것은 세그먼트 레벨에서 특히 참이다. 예를 들어, 세그먼트는 대응하는 ECC의 8 비트들과 함께 데이터의 64 비트들을 가질 수 있다. ECC가 달리 요구되지 않고 단일 슬로우 비트가 프로그램 동안 있다면, ECC는 상황을 다루도록 의존할 수 있다. 단일 슬로우 비트가 패스하는 것에 가깝다면, 프로그래밍은 결국 패스할 것이라는 기대로 계속된다. 단일 슬로우 비트가 패스하는 것과 거리가 멀다면, 프로그램 프로세스를 계속하는 데에 있어서 성공일 것 같지 않고 따라서 다음의 프로그램 단계들은 ECC가 에러를 정정하도록 매우 높은 정도의 믿음에 의존될 수 있다면 실행될 필요가 없다.
다른 방법은 프로그램 검증 동안 ECC 체크를 실행하지 않지만, 하나의 비트만이 정상 프로그램 검증 레벨에서 실패하고 하나의 비트만이 완화된 프로그램 검증 레벨에서 실패하거나 또는 하나의 비트만이 정상 프로그램 검증 레벨에서 실패하지만 프로그램 펄스 카운트의 수는 최대 프로그램 펄스 카운트 한계에 도달한다면 성공한 것으로 간주한다. ECC는 실패한 비트를 정정하도록 정상 판독 동작 중 여전히 실행될 것이다. 정정은 프로그램하는 데 실패하는 하나의 비트만이 있고 그 세그먼트에 대한 ECC 비트들이 달리 요구되지 않는 임의의 세그먼트에 대한 임의의 프로그래밍 동작에 대해 가능할 수 있다.
이제 비-휘발성 메모리(NVM) 비트 셀들의 어레이를 포함하는 반도체 메모리 저장 디바이스가 제공되었다는 것이 이해되어야하고, NVM 비트 셀들의 어레이는 하나 이상의 블록들로 분할된다. 반도체 메모리 저장 디바이스는 NVM 비트 셀들의 어레이에 연결된 메모리 제어기를 추가로 포함한다. 반도체 메모리 저장 디바이스는 어레이와 메모리 제어기에 연결된 에러 정정 코드(ECC) 유닛을 추가로 포함한다. 메모리 제어기는 블록들 중 하나의 서브세트의 프로그램 동작 중, 제 1 프로그램 검증 동작이 상기 NVM 비트 셀들 중 하나만이 정상 프로그램 검증 전압 레벨에서 프로그램 검증에 실패한다는 것을 검출할 때와, 제 2 프로그램 검증 동작이 상기 NVM 비트 셀들 중 하나가 완화된 프로그램 검증 전압 레벨에서 프로그램 검증에 실패한다는 것을 검출할 때, 프로그램 동작을 성공한 것으로서 간주하도록 구성되고, 상기 완화된 프로그램 검증 전압 레벨은 상기 정상 프로그램 검증 전압 레벨보다 낮고 정상 판독 전압 레벨보다 높다. 반도체 메모리 저장 디바이스는 ECC 유닛이 프로그램될 서브세트에 대해 정정을 사전에 실행하지 않는다면 프로그램 동작이 성공한 것으로 간주되는 추가의 특성을 가질 수 있다. 반도체 메모리 저장 디바이스는 프로그램 펄스들을 포함하는 프로그램 동작 중 추가의 특성을 가질 수 있고, 제 1 및 제 2 프로그램 검증 동작들은 각각의 프로그램 펄스 또는 프로그램 펄스들의 그룹 후에 실행된다. 반도체 메모리 저장 디바이스는 사전결정된 수의 프로그램 펄스들이 제 1 프로그램 검증 동작에 실패했던 NVM 비트 셀들의 수를 카운트(count)하기 전에 메모리 제어기에 의해 실행되는 추가의 특성을 가질 수 있다. 반도체 메모리 저장 디바이스는 프로그램 펄스들의 사전결정된 수가 2와 10 프로그램 펄스들 사이에 있는 추가의 특성을 가질 수 있다. 반도체 메모리 저장 디바이스는 제 1 프로그램 검증 동작이 NVM 셀들 중 하나만이 정상 프로그램 검증 전압 레벨에서 프로그램 검증에 실패한 것을 검출할 때 제 2 프로그램 검증 동작이 실행되는 추가의 특성을 가질 수 있다. 반도체 메모리 저장 디바이스는 ECC 유닛이 완화된 프로그램 검증 전압 레벨에서 프로그램 검증에 실패했던 NVM 비트 셀들 중 하나를 포함하는 블록들 중 하나에 대해 정정을 사전에 실행하지 않았다면 프로그램 동작이 성공한 것으로 간주되는 추가의 특성을 가질 수 있다. 반도체 메모리 저장 디바이스는 메모리 제어기가 블록들 중 하나 상의 프로그램 동작 중, 제 1 프로그램 검증 동작이 NVM 비트 셀들 중 하나만이 정상 프로그램 검증 전압 레벨에서 프로그램 검증에 실패한다는 것을 검출할 때 및 제 2 프로그램 검증 동작이 완화된 프로그램 검증 전압 레벨에서 성공적으로 프로그램된 모든 NVM 비트 셀들을 검출할 때, 프로그램 펄스들의 최대 수에 도달한다면 프로그램 동작을 성공한 것으로 간주하도록 고려되는 추가의 특성을 가질 수 있다. 반도체 메모리 저장 디바이스는 ECC 유닛이 정상 프로그램 검증 전압 레벨에서 프로그램 검증에 실패했던 NVM 비트 셀들 중 하나를 포함하는 서브세트에 대해 정정을 사전에 실행하지 않았다면 프로그램 동작이 메모리 제어기에 의해 성공하도록 고려되는 추가의 특성을 가질 수 있다. 반도체 메모리 저장 디바이스는 ECC 유닛이 정상 프로그램 검증 전압 레벨에서 프로그램 검증에 실패했던 NVM 비트 셀들 중 하나를 포함하는 블록들 중 하나에 대해 정정을 사전에 실행했다면 프로그램 동작이 성공하지 못한 것으로 고려되는 추가의 특성을 가질 수 있다. 반도체 메모리 저장 디바이스는 비-휘발성 메모리에 저장된 하나 이상의 ECC 표시자들을 포함한 ECC 레코드를 추가로 포함할 수 있고, ECC 표시자들 중 하나는 서브세트에 할당되고 ECC 정정이 서브세트에 대해 실행되는지의 여부를 나타낸다.
또한 반도체 메모리 디바이스를 프로그래밍하는 방법이 개시되어 있다. 방법은 비-휘발성 비트 셀들의 어레이의 서브세트에 대해 프로그램 동작을 실행하는 단계와 프로그램 동작 중, 제 1 프로그램 검증 동작이 비-휘발성 비트 셀들 중 하나만이 정상 프로그램 검증 전압 레벨에서 프로그램 검증에 실패한다는 것을 검출하고 제 2 프로그램 검증 동작이 완화된 프로그램 검증 전압 레벨에서 성공적으로 프로그램된 모든 비-휘발성 비트 셀들을 검출한다면, 프로그램 펄스들의 최대 수에 도달할 때, 프로그램 동작을 성공한 것으로 지정하는 단계를 추가로 포함하고, 상기 완화된 프로그램 검증 전압 레벨은 상기 정상 프로그램 검증 전압 레벨보다 낮다. 방법은 제 1 프로그램 검증 동작이 비-휘발성 비트 셀들 중 하나만이 정상 프로그램 검증 전압 레벨에서 프로그램 검증에 실패한다는 것을 검출할 때 및 제 2 프로그램 검증 동작이 비-휘발성 비트 셀들 중 하나가 완화된 프로그램 검증 전압 레벨에서 프로그램 검증에 실패한다는 것을 검출할 때 프로그램 동작 중 성공한 것으로서 프로그램 동작을 지정하는 단계를 추가로 포함할 수 있다. 방법은 에러 정정 코드(ECC) 정정이 프로그램되는 비-휘발성 비트 셀들의 서브세트에 대해 사전에 실행되지 않았다면 프로그램 동작을 성공한 것으로서 지정하는 단계를 추가로 포함할 수 있다. 방법은 ECC 유닛이 프로그램 동작 중, 완화된 프로그램 검증 전압 레벨에서 프로그램 검증에 실패했던 비-휘발성 비트 셀들 중 하나를 포함하는 서브세트에 대해 정정을 사전에 실행하지 않았다면 프로그램 동작이 성공한 것으로서 고려되는 추가의 특성을 가질 수 있고, 제 1 및 제 2 검증 동작들은 각각의 프로그램 펄스 또는 프로그램 펄스들의 그룹 후에 실행된다. 방법은 그것에 의해 추가의 특성을 가질 수 있다. 방법은 에러 정정 코드(ECC) 정정이 정상 프로그램 검증 전압 레벨과 완화된 프로그램 검증 전압 레벨에서 프로그램 검증에 실패했던 비트 셀을 포함하는 비-휘발성 비트 셀들의 서브세트에 대해 사전에 실행되지 않았다면 프로그램 동작을 성공한 것으로서 지정하는 단계를 추가로 포함할 수 있다. 방법은 에러 정정 코드(ECC) 유닛이 정상 프로그램 검증 전압 레벨과 완화된 프로그램 검증 전압 레벨에서 프로그램 검증에 실패했던 비-휘발성 비트 셀들 중 하나를 포함하는 서브세트 상에서 정정을 사전에 실행하지 않았다면 프로그램 동작을 성공한 것으로서 지정하는 단계를 추가로 포함할 수 있다.
비-휘발성 반도체 메모리 디바이스를 프로그래밍하는 방법이 또한 개시되어 있다. 방법은 프로그램 동작 중 프로그램 검증에 실패했던 복수의 비트 셀들을 결정하는 단계를 포함하고, 비트 셀들은 비트 셀들의 어레이의 비트 셀들의 서브세트에 포함된다. 방법은 에러 정정 코드(ECC) 정정이 비트 셀들의 서브세트에 대해 사전에 실행되었는지의 여부를 결정하는 단계를 추가로 포함한다. 방법은 프로그램 펄스들의 사전결정된 수 이후에 프로그램 검증에 실패했던 비트 셀들의 수가 임계치 아래에 있고 ECC 정정이 비트 셀들의 서브세트에 대해 실행되지 않았다면 프로그램 동작이 성공한 것으로 간주되도록 허용하는 단계를 추가로 포함한다. 방법은 비트 셀들의 서브세트 상의 프로그램 동작 중, 제 1 프로그램 검증 동작이 비트 셀들의 사전결정된 수가 정상 프로그램 검증 전압 레벨에서 프로그램 검증에 실패한다는 것을 검출할 때 및 제 2 프로그램 검증 동작이 상기 비트 셀들의 다른 사전결정된 수가 완화된 프로그램 검증 전압 레벨에서 프로그램 검증에 실패한다는 것을 검출할 때 프로그램 동작을 성공한 것으로서 지정하는 단계를 추가로 포함할 수 있다.
본 발명이 특정한 실시예들을 참조로 하여 여기에 개시되어 있더라도, 다양한 변경들 및 변화들은 아래의 청구항들에서 상세히 언급된 바와 같이 본 발명의 범주로부터 벗어나는 일 없이 행해질 수 있다. 예를 들어, 동시에 프로그램된 세그먼트들의 수는 변할 수 있다. 따라서, 설명서와 도면들은 제한적인 의미라기보다는 예시적인 것으로 간주되고, 모든 이러한 수정들은 본 발명의 범주 내에 포함되도록 의도된다. 임의의 이익들, 이점들 또는 특정한 실시예들에 관해 여기서 설명되는 문제들에 대한 해결책들은 임의의 또는 모든 청구항들의 중요한, 요구되는 또는 필수적인 특징 또는 요소로서 해석되도록 의도되지 않는다.
용어 "연결된(coupled)"은 여기에 사용된 바와 같이, 직접적인 연결 또는 기계적인 연결로 제한하도록 의도되지 않는다.
게다가, 용어들 "a" 또는 "an"은 여기에 사용된 바와 같이, 하나 또는 하나 이상으로서 규정된다. 또한, 청구항들에서 "적어도 하나" 및 "하나 이상"과 같은 도입구들의 사용은 부정 관사들 "a" 또는 "an"에 의한 다른 청구항 요소의 도입이 동일한 청구항이 도입구들 "하나 이상" 또는 "적어도 하나" 및 "a" 또는 "an"과 같은 부정 관사들을 포함할지라도, 이러한 하나의 요소만을 포함한 발명들에 대해 이러한 도입된 청구항 요소를 포함한 임의의 특정한 청구항을 제한한다는 것을 의미하도록 해석되어서는 안 된다. 동일한 것은 정관사들의 사용에 대해 유효하다.
달리 언급되지 않는다면, "제 1" 및 "제 2"와 같은 용어들은 이러한 용어들이 설명하는 요소들 사이를 임의로 구별하도록 사용된다. 따라서, 이 용어들은 이러한 요소들의 시간적 또는 다른 우선 순위 매김을 나타내도록 반드시 의도되진 않는다.

Claims (20)

  1. 반도체 메모리 저장 디바이스에 있어서,
    비-휘발성 메모리(NVM) 비트 셀들의 어레이로서, 상기 NVM 비트 셀들의 어레이는 하나 이상의 블록들로 분할되는, 상기 어레이와;
    상기 NVM 비트 셀들의 어레이에 연결된 메모리 제어기와;
    상기 어레이와 상기 메모리 제어기에 연결된 에러 정정 코드(ECC) 유닛을 포함하고,
    상기 메모리 제어기는:
    상기 블록들 중 하나의 서브세트의 프로그램 동작 중,
    제 1 프로그램 검증 동작이, 상기 NVM 비트 셀들 중 하나만이 정상 프로그램 검증 전압 레벨에서 프로그램 검증에 실패한다는 것을 검출할 때,
    제 2 프로그램 검증 동작이, 상기 NVM 비트 셀들 중 하나만이 완화된 프로그램 검증 전압 레벨에서 프로그램 검증에 실패한다는 것을 검출할 때, 프로그램 동작이 성공한 것으로서 간주하도록 구성되고,
    상기 완화된 프로그램 검증 전압 레벨은 상기 정상 프로그램 검증 전압 레벨보다 낮고 정상 판독 전압 레벨보다 높고,
    상기 프로그램 동작은 상기 ECC 유닛이 프로그램되고 있는 서브세트에 대해 정정을 사전에 실행하지 않았다면 성공한 것으로 간주되는, 반도체 메모리 저장 디바이스.
  2. 삭제
  3. 제 1 항에 있어서,
    프로그램 펄스들을 포함하는 프로그램 동작 중, 상기 제 1 및 제 2 프로그램 검증 동작들은 각각의 프로그램 펄스 또는 프로그램 펄스들의 그룹 후에 실행되는, 반도체 메모리 저장 디바이스.
  4. 제 1 항에 있어서,
    프로그램 펄스들의 사전결정된 수는 제 1 프로그램 검증 동작에 실패했던 NVM 비트 셀들의 수를 카운트(count)하기 전에 상기 메모리 제어기에 의해 실행되는, 반도체 메모리 저장 디바이스.
  5. 제 1 항에 있어서,
    상기 제 2 프로그램 검증 동작은 상기 제 1 프로그램 검증 동작이 상기 NVM 비트 셀들 중 하나만이 상기 정상 프로그램 검증 전압 레벨에서 프로그램 검증에 실패한다는 것을 검출할 때 실행되는, 반도체 메모리 저장 디바이스.
  6. 제 4 항에 있어서,
    상기 프로그램 펄스들의 사전결정된 수는 2와 10 프로그램 펄스들 사이에 있는, 반도체 메모리 저장 디바이스.
  7. 제 1 항에 있어서,
    상기 프로그램 동작은 상기 ECC 유닛이 상기 완화된 프로그램 검증 전압 레벨에서 프로그램 검증에 실패했던 상기 NVM 비트 셀들 중 하나를 포함하는 블록들 중 하나에 대해 정정을 사전에 실행하지 않았다면 성공한 것으로 간주되는, 반도체 메모리 저장 디바이스.
  8. 제 1 항에 있어서,
    상기 메모리 제어기는 블록들 중 하나 상의 프로그램 동작 중, 상기 제 1 프로그램 검증 동작이 상기 NVM 비트 셀들 중 하나만이 상기 정상 프로그램 검증 전압 레벨에서 프로그램 검증에 실패한다는 것을 검출하고 제 2 프로그램 검증 동작이 상기 완화된 프로그램 검증 전압 레벨에서 성공적으로 프로그램된 모든 NVM 비트 셀들을 검출할 때, 프로그램 펄스들의 최대 수에 도달한다면, 상기 프로그램 동작을 성공한 것으로서 간주하도록 구성되는, 반도체 메모리 저장 디바이스.
  9. 제 8 항에 있어서,
    상기 프로그램 동작은 상기 ECC 유닛이 상기 정상 프로그램 검증 전압 레벨에서 프로그램 검증에 실패했던 상기 NVM 비트 셀들 중 하나를 포함하는 상기 서브세트에 대해 정정을 사전에 실행하지 않았다면 상기 메모리 제어기에 의해 성공한 것으로 간주되는, 반도체 메모리 저장 디바이스.
  10. 제 8 항에 있어서,
    상기 프로그램 동작은 상기 ECC 유닛이 상기 정상 프로그램 검증 전압 레벨에서 프로그램 검증에 실패했던 상기 NVM 비트 셀들 중 하나를 포함하는 블록들 중 하나에 대해 정정을 사전에 실행했다면 성공하지 못한 것으로 간주되는, 반도체 메모리 저장 디바이스.
  11. 제 1 항에 있어서,
    비-휘발성 메모리에 저장된 하나 이상의 ECC 표시자들을 포함한 ECC 레코드를 더 포함하고, 상기 ECC 표시자들 중 하나는 상기 서브세트에 할당되고 ECC 정정이 상기 서브세트에 대해 실행되었는지를 나타내는, 반도체 메모리 저장 디바이스.
  12. 반도체 메모리 디바이스를 프로그래밍하는 방법에 있어서,
    비-휘발성 비트 셀들의 어레이의 서브세트에 대해 프로그램 동작을 실행하는 단계와;
    프로그램 동작 중, 제 1 프로그램 검증 동작이 상기 비-휘발성 비트 셀들 중 하나만이 정상 프로그램 검증 전압 레벨에서 프로그램 검증에 실패한다는 것을 검출하고 제 2 프로그램 검증 동작이 완화된 프로그램 검증 전압 레벨에서 성공적으로 프로그램된 모든 비-휘발성 비트 셀들을 검출한다면, 프로그램 펄스들의 최대 수에 도달할 때, 상기 프로그램 동작을 성공한 것으로 지정하는 단계로서, 상기 완화된 프로그램 검증 전압 레벨은 상기 정상 프로그램 검증 전압 레벨보다 낮은, 상기 지정 단계를 포함하고,
    에러 정정 코드(ECC) 정정이 프로그램되고 있는 상기 비-휘발성 비트 셀들의 서브세트에 대해 사전에 실행되지 않았다면 상기 프로그램 동작을 성공한 것으로서 지정하는 단계를 추가로 포함하는, 반도체 메모리 디바이스 프로그래밍 방법.
  13. 제 12 항에 있어서,
    상기 제 1 프로그램 검증 동작이 상기 비-휘발성 비트 셀들 중 하나만이 상기 정상 프로그램 검증 전압 레벨에서 프로그램 검증에 실패한다는 것을 검출할 때,
    상기 제 2 프로그램 검증 동작이 상기 비-휘발성 비트 셀들 중 하나만이 상기 완화된 프로그램 검증 전압 레벨에서 프로그램 검증에 실패한다는 것을 검출할 때,
    상기 프로그램 동작 중 상기 프로그램 동작을 성공한 것으로서 지정하는 단계를 추가로 포함하는, 반도체 메모리 디바이스 프로그래밍 방법.
  14. 삭제
  15. 제 12 항에 있어서,
    상기 프로그램 동작은 ECC 유닛이 상기 완화된 프로그램 검증 전압 레벨에서 프로그램 검증에 실패했던 상기 비-휘발성 비트 셀들 중 하나를 포함하는 서브세트에 대해 정정을 사전에 실행하지 않았다면 성공한 것으로서 간주되는, 반도체 메모리 디바이스 프로그래밍 방법.
  16. 제 13 항에 있어서,
    상기 프로그램 동작 중, 상기 제 1 및 제 2 검증 동작들은 각각의 프로그램 펄스 또는 프로그램 펄스들의 그룹 후에 실행되는, 반도체 메모리 디바이스 프로그래밍 방법.
  17. 제 13 항에 있어서,
    에러 정정 코드(ECC) 정정이 상기 정상 프로그램 검증 전압 레벨 및 상기 완화된 프로그램 검증 전압 레벨에서 프로그램 검증에 실패했던 비트 셀을 포함하는 상기 비-휘발성 비트 셀들의 상기 서브세트에 대해 사전에 실행되지 않았다면 상기 프로그램 동작을 성공한 것으로서 지정하는 단계를 추가로 포함하는, 반도체 메모리 디바이스 프로그래밍 방법.
  18. 제 13 항에 있어서,
    에러 정정 코드(ECC) 유닛이 상기 정상 프로그램 검증 전압 레벨 및 상기 완화된 프로그램 검증 전압 레벨에서 프로그램 검증에 실패했던 상기 비-휘발성 비트 셀들 중 하나를 포함하는 상기 서브세트에 대해 정정을 사전에 실행하지 않았다면 상기 프로그램 동작을 성공한 것으로서 지정하는 단계를 추가로 포함하는, 반도체 메모리 디바이스 프로그래밍 방법.
  19. 비-휘발성 반도체 메모리 디바이스를 프로그래밍하는 방법에 있어서,
    프로그램 동작 중 프로그램 검증에 실패했던 복수의 비트 셀들을 결정하는 단계로서, 상기 비트 셀들은 비트 셀들의 어레이의 비트 셀들의 서브세트에 포함되는, 상기 결정 단계와;
    에러 정정 코드(ECC) 정정이 상기 비트 셀들의 서브세트에 대해 사전에 실행되었는지를 결정하는 단계와;
    프로그램 펄스들의 사전결정된 수 이후에 상기 프로그램 검증에 실패했던 비트 셀들의 수가 임계치 수 아래에 있고 상기 ECC 정정이 비트 셀들의 서브세트에 관해 실행되지 않았다면 상기 프로그램 동작을 성공한 것으로 간주되도록 하는 단계를 포함하는, 비-휘발성 반도체 메모리 디바이스 프로그래밍 방법.
  20. 제 19 항에 있어서,
    비트 셀들의 서브세트 상의 소거 동작 중,
    제 1 검증 동작이 상기 비트 셀들의 서브세트의 사전결정된 수가 정상 소거 검증 전압 레벨에서 소거 검증에 실패한다는 것을 검출할 때,
    제 2 검증 동작이 상기 비트 셀들의 서브세트의 사전결정된 수가 완화된 소거 검증 전압 레벨에서 소거 검증에 실패한다는 것을 검출할 때,
    상기 소거 동작을 성공한 것으로서 지정하는 단계를 추가로 포함하는, 비-휘발성 반도체 메모리 디바이스 프로그래밍 방법.
KR1020130136426A 2012-11-12 2013-11-11 에러 정정 코드(ecc)를 가진 비-휘발성 메모리(nvm) 시스템을 프로그래밍하는 방법 KR102143325B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/674,367 2012-11-12
US13/674,367 US9225356B2 (en) 2012-11-12 2012-11-12 Programming a non-volatile memory (NVM) system having error correction code (ECC)

Publications (2)

Publication Number Publication Date
KR20140061265A KR20140061265A (ko) 2014-05-21
KR102143325B1 true KR102143325B1 (ko) 2020-08-12

Family

ID=50682944

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130136426A KR102143325B1 (ko) 2012-11-12 2013-11-11 에러 정정 코드(ecc)를 가진 비-휘발성 메모리(nvm) 시스템을 프로그래밍하는 방법

Country Status (5)

Country Link
US (1) US9225356B2 (ko)
JP (1) JP2014096196A (ko)
KR (1) KR102143325B1 (ko)
CN (1) CN103810055B (ko)
TW (1) TW201432705A (ko)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10216571B2 (en) 2016-11-10 2019-02-26 Western Digital Technologies, Inc. System and methodology for error management within a shared non-volatile memory architecture using bloom filters
US10254982B2 (en) 2016-11-10 2019-04-09 Western Digital Technologies, Inc. System and methodology for low latency error management within a shared non-volatile memory architecture
US10514867B2 (en) 2016-11-10 2019-12-24 Western Digital Technologies, Inc. System and methodology that facilitates error management within a shared non-volatile memory architecture
KR20180062158A (ko) 2016-11-30 2018-06-08 삼성전자주식회사 루프 상태 정보를 생성하는 불휘발성 메모리 장치, 그것을 포함하는 저장 장치 및 그것의 동작 방법
CN108255633B (zh) * 2016-12-28 2021-07-30 旺宏电子股份有限公司 存储控制方法、存储装置
EP3388979B1 (en) 2017-04-14 2020-07-22 Nxp B.V. Rfid integrated circuit
US10140040B1 (en) 2017-05-25 2018-11-27 Micron Technology, Inc. Memory device with dynamic program-verify voltage calibration
US10402272B2 (en) * 2017-05-25 2019-09-03 Micron Technology, Inc. Memory device with dynamic programming calibration
US10452480B2 (en) 2017-05-25 2019-10-22 Micron Technology, Inc. Memory device with dynamic processing level calibration
KR102429458B1 (ko) * 2018-04-03 2022-08-05 에스케이하이닉스 주식회사 메모리 장치, 이를 포함하는 메모리 시스템 및 메모리 장치의 동작 방법
US10566063B2 (en) 2018-05-16 2020-02-18 Micron Technology, Inc. Memory system with dynamic calibration using a trim management mechanism
US10664194B2 (en) 2018-05-16 2020-05-26 Micron Technology, Inc. Memory system with dynamic calibration using a variable adjustment mechanism
US10990466B2 (en) 2018-06-20 2021-04-27 Micron Technology, Inc. Memory sub-system with dynamic calibration using component-based function(s)
US11188416B2 (en) 2018-07-12 2021-11-30 Micron Technology, Inc. Enhanced block management for a memory sub-system
US11113129B2 (en) 2018-07-13 2021-09-07 Micron Technology, Inc. Real time block failure analysis for a memory sub-system
US10936246B2 (en) 2018-10-10 2021-03-02 Micron Technology, Inc. Dynamic background scan optimization in a memory sub-system
US11475170B2 (en) * 2019-05-28 2022-10-18 Nuvoton Technology Corporation System and method for correction of memory errors
CN113764026A (zh) * 2020-04-08 2021-12-07 长江存储科技有限责任公司 一种三维存储器的编程操作方法、存储器装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011258260A (ja) 2010-06-07 2011-12-22 Toshiba Corp 不揮発性半導体記憶装置

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5579262A (en) 1996-02-05 1996-11-26 Integrated Silicon Solution, Inc. Program verify and erase verify control circuit for EPROM/flash
US5995417A (en) 1998-10-20 1999-11-30 Advanced Micro Devices, Inc. Scheme for page erase and erase verify in a non-volatile memory array
JP4220319B2 (ja) * 2003-07-04 2009-02-04 株式会社東芝 不揮発性半導体記憶装置およびそのサブブロック消去方法
US6917542B2 (en) * 2003-07-29 2005-07-12 Sandisk Corporation Detecting over programmed memory
US6967873B2 (en) 2003-10-02 2005-11-22 Advanced Micro Devices, Inc. Memory device and method using positive gate stress to recover overerased cell
US7177199B2 (en) 2003-10-20 2007-02-13 Sandisk Corporation Behavior based programming of non-volatile memory
US7092290B2 (en) 2004-11-16 2006-08-15 Sandisk Corporation High speed programming system with reduced over programming
US7437653B2 (en) 2004-12-22 2008-10-14 Sandisk Corporation Erased sector detection mechanisms
US7158416B2 (en) 2005-03-15 2007-01-02 Infineon Technologies Flash Gmbh & Co. Kg Method for operating a flash memory device
US7486564B2 (en) 2005-03-31 2009-02-03 Sandisk Corporation Soft programming non-volatile memory utilizing individual verification and additional soft programming of subsets of memory cells
US7954037B2 (en) * 2005-10-25 2011-05-31 Sandisk Il Ltd Method for recovering from errors in flash memory
US7236402B2 (en) * 2005-11-30 2007-06-26 Freescale Semiconductor, Inc. Method and apparatus for programming/erasing a non-volatile memory
US7403425B2 (en) * 2006-03-07 2008-07-22 Micron Technology, Inc. Programming a flash memory device
US7499317B2 (en) 2006-10-13 2009-03-03 Sandisk Corporation System for partitioned erase and erase verification in a non-volatile memory to compensate for capacitive coupling
US7904788B2 (en) * 2006-11-03 2011-03-08 Sandisk Corporation Methods of varying read threshold voltage in nonvolatile memory
US7616500B2 (en) 2007-02-20 2009-11-10 Sandisk Corporation Non-volatile storage apparatus with multiple pass write sequence
KR100875538B1 (ko) * 2007-02-27 2008-12-26 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 프로그램 및 소거 방법
KR100843037B1 (ko) 2007-03-27 2008-07-01 주식회사 하이닉스반도체 플래시 메모리 장치 및 이의 소거 방법
KR100898039B1 (ko) * 2007-05-21 2009-05-19 삼성전자주식회사 불휘발성 반도체 메모리 장치 및 그것의 프로그램 방법
KR101321472B1 (ko) * 2007-07-23 2013-10-25 삼성전자주식회사 비휘발성 메모리 장치 및 그것의 프로그램 방법
KR100936879B1 (ko) 2007-12-28 2010-01-14 주식회사 하이닉스반도체 불휘발성 메모리 장치의 소거 방법 및 소프트 프로그램방법
KR20110086725A (ko) * 2008-11-10 2011-07-29 퓨전-아이오, 인크. 솔리드-스테이트 저장장치의 고장을 예측하는 장치, 시스템 및 방법
US8064267B2 (en) 2008-11-14 2011-11-22 Micron Technology, Inc. Erase voltage reduction in a non-volatile memory device
US8077513B2 (en) * 2009-09-24 2011-12-13 Macronix International Co., Ltd. Method and apparatus for programming a multi-level memory
JP2012069180A (ja) * 2010-09-21 2012-04-05 Toshiba Corp 半導体記憶装置
US8493792B2 (en) * 2010-12-02 2013-07-23 Hynix Semiconductor Inc. Programming method of non-volatile memory device
US8345485B2 (en) 2011-02-09 2013-01-01 Freescale Semiconductor, Inc. Erase ramp pulse width control for non-volatile memory
US8713406B2 (en) * 2012-04-30 2014-04-29 Freescale Semiconductor, Inc. Erasing a non-volatile memory (NVM) system having error correction code (ECC)

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011258260A (ja) 2010-06-07 2011-12-22 Toshiba Corp 不揮発性半導体記憶装置

Also Published As

Publication number Publication date
US9225356B2 (en) 2015-12-29
KR20140061265A (ko) 2014-05-21
JP2014096196A (ja) 2014-05-22
CN103810055B (zh) 2018-06-26
US20140136928A1 (en) 2014-05-15
TW201432705A (zh) 2014-08-16
CN103810055A (zh) 2014-05-21

Similar Documents

Publication Publication Date Title
KR102143325B1 (ko) 에러 정정 코드(ecc)를 가진 비-휘발성 메모리(nvm) 시스템을 프로그래밍하는 방법
US9081708B2 (en) Dynamic read scheme for high reliability high performance flash memory
US9922706B2 (en) Solid state storage device using state prediction method
TWI574277B (zh) 記憶體裝置中之錯誤校正操作
EP2368186B1 (en) Data error recovery in non-volatile memory
US8243511B2 (en) Reuse of information from memory read operations
US9330783B1 (en) Identifying word-line-to-substrate and word-line-to-word-line short-circuit events in a memory block
US9595343B1 (en) Early prediction of failure in programming a nonvolatile memory
KR20100012605A (ko) Ecc를 이용하여 프로그램하는 불휘발성 메모리 장치 및그 프로그램 방법
US8995202B2 (en) Test flow to detect a latent leaky bit of a non-volatile memory
US10658065B2 (en) Failure mode detection method and error correction method for solid state storage device
US8977914B2 (en) Stress-based techniques for detecting an imminent read failure in a non-volatile memory array
US9343172B2 (en) Extended protection for embedded erase of non-volatile memory cells
US20160092284A1 (en) Estimating flash quality using selective error emphasis
US9490024B1 (en) Solid state storage device and reading control method thereof
JP6288812B2 (ja) 誤り訂正符号を有する不揮発性メモリシステムの消去
US9378829B2 (en) Non-volatile memory device with an EPLI comparator
US9378809B1 (en) Relaxing verification conditions in memory programming and erasure operations
CN109215716B (zh) 提高nand型浮栅存储器可靠性的方法及装置

Legal Events

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