KR101371830B1 - 메모리 에러 정정 - Google Patents

메모리 에러 정정 Download PDF

Info

Publication number
KR101371830B1
KR101371830B1 KR1020107002788A KR20107002788A KR101371830B1 KR 101371830 B1 KR101371830 B1 KR 101371830B1 KR 1020107002788 A KR1020107002788 A KR 1020107002788A KR 20107002788 A KR20107002788 A KR 20107002788A KR 101371830 B1 KR101371830 B1 KR 101371830B1
Authority
KR
South Korea
Prior art keywords
page
data
error correction
memory
memory cells
Prior art date
Application number
KR1020107002788A
Other languages
English (en)
Other versions
KR20100046178A (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 KR20100046178A publication Critical patent/KR20100046178A/ko
Application granted granted Critical
Publication of KR101371830B1 publication Critical patent/KR101371830B1/ko

Links

Images

Classifications

    • 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/1072Adding 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 multilevel memories
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)

Abstract

방법들 및 장치들은 다중 레벨 비휘발성 메모리 내에서 상이한 레벨의 에러 정정을 적용하고 제공하도록 동작한다. 일례에서, 다중 레벨 셀들의 행의 한 페이지에서는, 동일한 다중 레벨 셀들의 행 내에 저장된 다른 페이지들과 다른 레벨의 에러 정정이 제공된다.

Description

메모리 에러 정정{ERROR CORRECTION FOR MEMORY}
관련 출원
본 특허 출원은 본 명세서에 참고 문헌으로 포함되는, 2007년 7월 9일자로 출원된 미국 출원 번호 11/774,825로부터 우선권의 이익을 주장한다.
기술 분야
본 발명의 실시예들은 일반적으로 비휘발성 메모리를 포함하는 메모리 장치들에 관한 것일 수 있다.
메모리 장치들은 컴퓨터 또는 다른 전자 장치들 내의 반도체 집적 회로들을 포함한다. 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM), 동적 랜덤 액세스 메모리(DRAM), 동기식 동적 랜덤 액세스 메모리(SDRAM), 비휘발성 메모리 및 플래시 메모리를 포함하는 많은 상이한 타입이 존재한다.
플래시 메모리 장치들은 높은 메모리 밀도, 높은 신뢰성 및 낮은 전력 소비를 허가하는 1 트랜지스터 메모리 셀들을 사용할 수 있다. 플래시 메모리 장치들은 두 가지 형태, 즉 NOR 플래시 및 NAND 플래시로 제조된다. NAND 플래시는 단일 레벨 셀(SLC) 또는 다중 레벨 셀(MLC)을 가질 수 있다. 메모리 장치들은 2개의 넓은 영역, 즉 휘발성 및 비휘발성으로 더 분류될 수 있다. 휘발성 메모리 장치들은 데이터를 유지하기 위해 전력을 필요로 하는 반면, 비휘발성 메모리들은 전력 공급 없이도 데이터를 유지할 수 있다. 비휘발성 메모리의 일례는 칩 내에 정보를 유지하기 위한 전력을 필요로 하지 않고 반도체 구조 상에 정보를 저장하는 플래시 메모리이다. MLC 비휘발성 메모리는 각각의 메모리 셀에 둘 이상의 데이터 비트의 저장을 허가하므로 더 높은 밀도의 메모리를 제공한다. 메모리 장치들은 섹터라고 하는 더 작은 세그먼트들을 갖는 페이지들로 분할되는 블록들로 구성될 수 있다. 각각의 섹터는 정보의 비트들을 포함하며, 비트들의 수는 메모리 장치의 밀도에 의해 결정된다. 메모리 장치들은 데이터 에러들을 정정하기 위한 에러 정정 코드들을 더 포함할 수 있다. 메모리 장치들에서의 에러 정정의 예는 본 발명의 양수인에게 양도되고 참고 문헌으로 포함되는 미국 특허 출원 공개 번호 2005/0172207 및 2005/0268203에서 발견할 수 있다.
도 1은 본 발명의 다양한 실시예에 따른 메모리 시스템의 블록도이다.
도 2는 본 발명의 다양한 실시예에 따른 NAND 플래시 메모리 내의 메모리 셀들의 어레이들의 구성을 나타내는 블록도이다.
도 3은 본 발명의 다양한 실시예에 따른 NAND 플래시 메모리 어레이의 개략도이다.
도 4는 본 발명의 다양한 실시예에 따른 도 3의 다중 레벨 셀 어레이의 임계 전압들의 분포를 나타내는 도면이다.
도 5는 본 발명의 다양한 실시예에 따른 비휘발성 메모리 내의 예시적인 데이터의 블록도이다.
도 6은 본 발명의 다양한 실시예에 따른 비휘발성 메모리에서 에러 정정을 결정하기 위한 방법의 흐름도이다.
도 7은 본 발명의 다양한 실시예에 따른 비휘발성 메모리에서 에러 정정을 저장하기 위한 방법의 흐름도이다.
도 8은 본 발명의 다양한 실시예에 따른 비휘발성 메모리에서 에러 정정을 판독하기 위한 방법의 흐름도이다.
도 9는 본 발명의 다양한 실시예에 따른 시스템의 블록도이다.
개시되는 실시예들의 일부는 메모리 장치들에서의 에러 분석을 위한 방법을 제공한다. 에러 분석은 검출 및 분석, 및 이들의 조합을 포함할 수 있다. 다른 실시예들은 에러 정정 기능을 갖는 메모리 구조, 장치 및/또는 시스템을 제공한다. 일 실시예에서, 에러 정정 데이터는 에러 정정 데이터와 관련된 특정 데이터 페이지와 연관된 메모리 영역에 저장된다. 그러나, 둘 이상의 데이터 비트를 저장할 수 있는 다중 레벨 셀들에서, 상이한 비트들은 에러가 발생할 동일한 가능성을 갖지 않을 수 있다. 따라서, 에러가 더 발생하기 쉬운 비트들에 대한 에러 정정 데이터에 전용화되는 셀들의 수는 증가할 수 있으며, 에러가 덜 걸리는 비트들의 에러 정정에 전용화되는 셀들의 수는 감소된다.
도 1은 본 발명의 다양한 실시예에 따른 메모리 시스템(100)의 단순화된 블록도이다. 다양한 실시예에서, 메모리 시스템(100)은 비휘발성 메모리 셀들의 어레이(104), 어드레스 회로(106), 탐색표(108) 및 입출력(I/O) 회로(110)를 구비하는 집적 회로(102)를 포함한다. 메모리 셀들(104)은 부동 게이트 메모리 셀들일 수 있다. 메모리 셀들(104)은 플래시 메모리로도 지칭될 수 있는데, 이는 메모리 셀들(104)의 블록들이 플래시 동작에서 동시에 소거될 수 있기 때문이다. 일 실시예에서, 메모리 셀들(104)은 다중 레벨 메모리 셀들이다. 다중 레벨 메모리 셀들은 셀당 둘 이상의 데이터 비트를 저장한다.
메모리 제어기(114)는 프로세서(116)를 포함한다. 프로세서(116)는 집적 회로(102)를 통해 메모리 어레이(104)와 통신하는 제어 라인들(112)에 접속된다. 메모리 어레이(104)에 대한 액세스는 제어 라인들(112)을 통한 어드레싱에 의해 링크되는 하나 이상의 목표화된 또는 지정된 메모리 셀들을 포함한다. 메모리 어레이(104) 내에 포함된 하나 이상의 메모리 셀에 대한 액세스가 프로세서(116)에 의해 설정될 때, 메모리 셀들로부터 데이터가 판독되거나 기입될 수 있다. 판독 요청과 연관된 할당 요청이 프로세서(116)에 의해 전송될 때, 그러한 동작은 메모리 어레이(104) 내에 포함된 관련 데이터의 식별을 허가하기 위한 데이터의 다수의 행 또는 페이지에 대한 액세스를 포함할 수 있다.
탐색표(108)는 논리 어드레스들을 물리 어드레스들로 변환할 수 있으며, 따라서 불량 셀들 또는 워드들이 다시 어드레싱될 수 있고, 메모리 어레이는 소정 양의 데이터를 저장할 것이다. 일례에서, 탐색표는 제어기(114) 내에 위치한다.
도 2는 본 발명의 다양한 실시예에 따른 NAND 플래시 메모리(200) 내의 메모리 셀들의 어레이들의 구성 아키텍처를 나타내는 개략도이다. 메모리(200)는 메모리 어레이(104)와 유사한 어레이 내의 메모리의 일부를 나타낼 수 있는 복수의 블록, 예컨대 블록(202)을 포함하도록 구성된다. 블록은 복수의 페이지를 포함한다. 메모리(200)는 데이터 레지스터(204), 캐시 레지스터(206), 데이터 영역(208), 스페어 영역(210), I/O 포트들(212) 및 평면(214)을 더 포함한다. 데이터는 데이터 레지스터(204) 및 캐시 레지스터(206)를 통해 NAND 플래시 메모리(200)로 그리고 그로부터 바이트 단위로 전송된다. 캐시 레지스터(206)는 도 1에 도시된 I/O 회로(110)와 같은 I/O 제어 회로에 가장 가까울 수 있으며, I/O 데이터에 대한 데이터 버퍼로서 작용할 수 있는 반면, 데이터 레지스터(204)는 메모리 어레이(104)와 같은 메모리 어레이에 가장 가까울 수 있으며, NAND 플래시 메모리 어레이 동작을 위한 데이터 버퍼로서 작용할 수 있다. 소정 예들에서, NAND 플래시 메모리는 페이지 기반 동작들에서 프로그래밍되고 판독되며, 블록 기반 동작들에서 소거된다. 소정 예들에서, 페이지 판독 및 기입 동작들 동안, 데이터 레지스터(204) 및 캐시 레지스터(206)는 함께 결합되어 단일 레지스터로서 동작한다. 소정 예들에서, 캐시 동작들 동안, 데이터 레지스터(204) 및 캐시 레지스터(206)는 데이터 처리량을 증가시키기 위해 독립적으로 동작한다.
도 2에 도시된 NAND 플래시 메모리는 페이지들의 블록들(202)을 포함한다. 각각의 블록(202)은 일반적으로 16, 32 또는 64개의 페이지를 포함한다. 일 실시예에서, NAND 플래시 블록은 128KB이다. 블록의 소거는 모든 비트를 "1"로 설정한다(그리고 모든 바이트를 FFh로 설정한다). 소거된 비트들을 "1"에서 "0"으로 변경하는 데에는 프로그래밍이 필요하다. 프로그래밍될 수 있는 가장 작은 엔티티는 페이지이다. 다양한 실시예에서, 각각의 페이지는 데이터 영역(208) 내에 512 바이트(256 워드) 및 스페어 영역(210) 내에 여분의 16 바이트(8 워드)를 포함할 수 있다. 다양한 실시예에서, 각각의 페이지는 데이터 영역(208) 내에 2048 바이트(1024 워드) 및 스페어 영역(210) 내에 64 바이트(32 워드)를 가질 수 있다. 스페어 영역(210)은 제조 프로세스 동안에 무효 블록들을 마킹하는 소거 블록 관리 기능들에 사용되는 비트들을 저장하거나, 다수의 전 페이지 블록과 연관된 부분 페이지 캐시 엔트리들을 참조하는 데 사용되는 논리 어드레스 정보를 저장하거나, 에러 정정 데이터를 저장할 수 있다. 도 2의 예는 I/O 포트들(212)을 비트 0 내지 7(또는 총 8비트)의 범위를 갖는 것으로 도시하지만, 이것은 위에서 페이지 크기들과 관련하여 설명된 바와 같이 바뀔 수 있다. 다양한 실시예에서, 데이터 영역(208) 및 스페어 영역(210)의 길이는 "페이지"로서 정의된다. 스페어 영역(210)은 데이터 영역(208)보다 훨씬 적은 메모리 셀들을 갖는다. 일례에서, 스페어 영역(208)은 64개의 바이트를 가지며, 데이터 영역은 2 킬로바이트의 데이터 영역을 갖는다. 즉, 스페어 영역은 데이터 영역의 크기의 약 3 퍼센트(3.125%)이다. 메모리 셀들의 각각의 행에 대한 데이터 영역은 4개의 섹터로 분할될 수 있으며, 스페어 영역은 각각의 데이터 섹터에 대해 하나씩, 4개의 개별 에러 정정 데이터 세그먼트를 포함한다. 따라서, 데이터 영역 내의 512 바이트 섹터마다 스페어 영역 내의 최대 16 바이트가 존재할 수 있다.
다중 레벨 셀 NAND 플래시 메모리의 다양한 실시예에서는, 전체 페이지가 동시에 프로그래밍된다. 일례에서, 페이지, 즉 제1 페이지의 제1 비트가 일련의 셀들에 프로그래밍된다. 이어서, 제2 페이지, 즉 제2 페이지의 제2 비트가 동일한 일련의 셀들에 프로그래밍된다. 결과적으로, 다중 레벨 셀 동작은 다중 레벨 셀을 프로그래밍하기 위해 2개의 패스를 포함할 수 있다. 정보를 전송하기 위한 판독 또는 기입 동작과 연관된 할당 요청은 페이지 단위로(예를 들어, NOR 플래시에서 수행되는 바이트 또는 워드 단위와 달리, 한꺼번에 528 바이트씩) 이루어진다. 또한, 소거 동작은 블록 단위로 이루어진다. 동작에 있어서, 다양한 실시예에서, 페이지 판독 동작 동안, 528 바이트의 페이지가 메모리에서 데이터 레지스터(204)로 전송된다. 페이지 기입 동작에서, 528 바이트의 페이지가 데이터 레지스터(204)에 기입된 후, 데이터 영역(208)을 포함하는 공간 내에서와 같이 메모리 어레이(104) 내에 프로그래밍된다. 또한, 블록 소거 동작에서, 연속 페이지들의 그룹이 단일 동작에서 소거된다.
도 3은 본 발명의 다양한 실시예에 따른 비휘발성 플래시 메모리 어레이(300)의 개략도이다. 비휘발성 메모리의 일례는 NAND 플래시 메모리이다. 메모리 어레이(300)는 블록 내의 비트 라인들(BL1, BL2-BLn)의 수가 페이지의 크기를 결정함을 보여준다. 메모리 칩의 크기는 각각의 비트 라인에 할당되는 스트링들의 수에 의해 결정되는데, 즉 블록들의 수는 메모리 칩의 크기를 결정한다. 메모리 어레이(300)는 직렬 스트링(320) 내에 배열된 부동 게이트 메모리 셀들(321-326)의 어레이를 포함한다. 각각의 부동 게이트 메모리 셀은 다중 레벨 셀 응용에 대해 둘 이상의 비트를 나타내는 에너지 레벨을 저장한다. 부동 게이트 메모리 셀들(321-326)의 각각은 직렬 스트링 내에서 드레인 대 소스 방식으로 접속되며, 따라서 제1 부동 게이트 메모리 셀(321)의 드레인은 제1 드레인 선택 게이트(327)를 통해 제1 비트 라인(BL1)에 접속된다. 제1 드레인 선택 게이트(327)의 상태는 드레인 선택 게이트 제어 라인 SG(D)(319)에 의해 제어된다. 직렬 스트링(320)의 배열은 제1 소스 선택 게이트(328)를 통해 제1 비트 라인(BL1)에 접속되고 소스 선택 게이트 제어 라인 SG(S)(329)에 의해 제어되는 최종 부동 게이트 메모리 셀(326)을 포함한다. 유사한 배열이 제2 직렬 스트링(330) 및 최종 직렬 스트링(340) 내에 존재하며, 따라서 최종 직렬 스트링(340)은 어레이의 메모리 밀도를 결정할 수 있다. 따라서, 유사한 요소들은 유사한 방식으로 라벨링된다. 제2 직렬 스트링(330)은 드레인 대 소스 방식으로 접속되는 부동 게이트 메모리 셀들(331-336)의 어레이를 포함하며, 제1 드레인 메모리 셀(331)은 제2 드레인 선택 게이트(337)를 통해 제2 비트 라인(BL2)에 접속되고, 드레인 선택 게이트 제어 라인 SG(D)(319)에 의해 제어된다. 제2 직렬 스트링(330)의 최종 메모리 셀(336)은 제2 소스 선택 게이트(338)를 통해 제2 비트 라인(BL2)에 접속되며, 소스 선택 게이트 제어 라인 SG(S)(329)에 의해 제어된다.
다수의 직렬 스트링(320, 330, 340)에 걸치는 워드 라인들(WL0-WL31)은 주어진 행 내의 모든 부동 게이트 메모리 셀의 제어 게이트들에 결합되어, 그들의 동작을 제어할 수 있다. 예를 들어, 제1 워드 라인 WL0(350)은 비트 라인들(BL1, BL2-BLn)의 각각의 제1 부동 게이트 메모리 셀(321, 331, 341)에 결합된다. 각각의 비트 라인(BL1-BLn)은 최종적으로 각각의 셀의 상태를 검출하는 감지 증폭기들(도시되지 않음)에 결합된다. 동작에 있어서, WL0-WL31은 기입되거나 판독될 직렬 스트링들(320, 330, 340) 내의 개별 부동 게이트 메모리 셀들을 선택하고, 각각의 직렬 스트링(320, 330, 340) 내의 나머지 부동 게이트 메모리 셀들을 통과 모드로 동작시킬 수 있다.
각각의 부동 게이트 메모리 셀은 셀당 단일 비트 또는 셀당 다수의 비트를 이용하여 프로그래밍될 수 있다. 단일 레벨 셀(SLC)들은 셀당 단일 비트의 프로그래밍을 허가한다. 다중 레벨 셀(MLC)들은 셀당 다수의 비트의 프로그래밍을 허가한다. 일례에서, 패스당 1 비트가 프로그래밍되며, 따라서 다중 레벨 셀들의 프로그래밍은 프로그래밍될 수 있는 비트들의 수와 동일한 수의 프로그래밍 패스들을 가질 수 있다. 각각의 부동 게이트 메모리 셀의 임계 전압(Vt)은 셀 내에 저장되는 데이터를 결정한다. 예를 들어, 셀당 단일 비트 아키텍처에서, 1V의 Vt는 프로그래밍된 셀을 지시하는 반면, -1V의 Vt는 소거된 셀을 지시할 수 있다. 다중 레벨 셀들은 상이한 상태를 각각 지시하는 둘보다 많은 Vt 값들을 갖는다. 그러나, Vt 값들은 다중 레벨 셀에 저장된 데이터를 나타낼 수 있는 값들의 분포 또는 범위의 중심이다. 일례에서, 이러한 분포는 Vt에 대해 +/-0.1V일 수 있다. 다중 레벨 부동 게이트 메모리 셀들은 셀에 저장된 특정 전압 범위에 비트 패턴을 할당함으로써 전통적인 플래시 셀의 아날로그 특성을 이용한다. 이러한 기술은 셀에 할당된 전압 범위들의 수에 따라 셀당 둘 또는 그 이상의 비트의 저장을 허가한다. 소정 예들에서, 부동 게이트 메모리 셀은 약 200 밀리볼트(mV)의 폭을 갖는 4개의 상이한 전압(Vt) 분포를 할당받을 수 있다. 다양한 실시예에서, 0.3V 내지 0.5V의 분리가 또한 각각의 Vt 분포 사이에 할당된다. 이러한 Vt 분포들 사이의 분리 구간은 논리 에러 및/또는 데이터 에러로 이어질 수 있는 다수의 Vt 분포들의 미중복의 기회를 줄일 수 있다.
선택된 WL 내의 선택된 부동 게이트 메모리 셀들의 프로그래밍은 BL을 0V로 낮춤으로써 달성될 수 있다. 이것은 채널을 가로질러 전위가 형성되게 하며, WL은 부동 게이트 메모리 셀이 프로그래밍되게 할 것이다. Vt는 더 높은 프로그래밍 펄스들이 인가됨에 따라 증가할 것이다. 각각의 프로그래밍 펄스 사이에는, 선택된 WL이 0V로 낮아지고, 선택되지 않는 WL들이 5V로 낮아지며, 선택된 WL의 상태가 검출되는 검증 단계가 수행된다. 부동 게이트 메모리 셀이 WL 상에서 0V를 갖는 장치의 전도를 방지하기에 충분한 Vt를 갖는 경우, 이 셀은 프로그래밍될 것으로 간주되며, 그렇지 않은 경우에는 여전히 소거된 것으로 간주되며, 프로그래밍 펄스 높이가 0.5V 증가되어, 선택된 WL에 다시 인가된다. 이러한 프로세스는 모든 선택된 WL이 프로그래밍되는 것으로 검출될 때까지 반복된다.
도 4는 본 발명의 다양한 실시예에 따른, 도 3의 다중 레벨 셀 어레이의 임계 전압들의 분포를 나타내는 도면이다. X축(404)은 최저 임계치(406)에서 중간 임계치(408, 410), 최고 임계치(412)까지의 임계 전압들(Vt)을 나타낸다. 소정 예들에서, 최저 임계치(406)가 소거 상태를 나타내므로, 프로그래밍은 관련 WL 상에서 최고 임계치(412)에서 먼저 시작하여 임계 전압들의 내림차순으로 수행된다. 소거 상태 또는 최저 임계치(406)는 논리 "11"을 나타내는데, 이는 소거시에 다중 레벨 셀의 양 비트가 "1" 상태에 있기 때문이다. 대안으로, 일부 메모리 장치들은 각각의 비트 상의 논리 "0"으로서 소거 상태를 지시할 수 있다는 점에 유의해야 한다. 일례에서, 최고 임계치(412)는 최초 프로그래밍되는 임계치이다. 이것은 모든 더 낮은 다중 레벨 분포들이 프로그래밍되기 전에 WL 상에 최고 전압을 인가하며, 이는 더 낮은 Vt 분포들에서 프로그래밍되도록 계획된 동일 WL 상의 다른 셀들과의 교란 상태의 기회를 줄인다. 일례에서, 본 발명의 일 실시예에 따르면, 최고 임계치(412)를 갖는 비트들로 프로그래밍되는 것이 필요할 수 있는 페이지 내의 모든 셀이 먼저 프로그래밍된다. 이어서, 다음 최고 임계치(410)가 프로그래밍될 수 있고, 이어서 다음으로 낮은 임계치(408), 이어서 최저 임계치(406)가 프로그래밍될 수 있다. 이러한 프로그래밍 동작들은 연속 프로그래밍 및 검증 펄스들을 이용하여 달성될 수 있는데, 2개의 상이한 레벨을 갖는 2개의 검증 펄스가 증가하는 프로그래밍 펄스마다의 사이에 인가된다(즉, "01"에 대해 2V 및 "00"에 대해 1.3V). 이러한 절차는 데이터 블록을 채우려고 시도할 때 페이지의 각각의 섹터 내의 각각의 데이터 비트에 대해 반복될 수 있다.
프로그래밍 동작의 추가 예에서, 블록 내의 비트들은 모두 최저 상태, 예를 들어 도 4에 도시된 바와 같은 상태(406) "11"로 소거된다. 프로그램 동작들은 셀들을 시프트하도록 수행되며, 최상위 비트, 즉 상위 페이지 비트가 0 - 도 4의 상태들(408, 410) -으로 시프트된다. 이제, 최하위 비트, 즉 하위 페이지 비트는 적절한 셀들 내에 프로그래밍될 수 있다. 여기서, 상위 페이지 비트가 "1"로 유지되는 경우에는 상태가 최저 상태(406)에서 최고 상태(412)로 변경되었거나, 상위 페이지 비트가 "0"인 경우에는 상태가 상태(408)에서 410으로 변경된다. 이러한 프로그래밍 동작은 적절한 셀에 어드레스되는 일련의 전하 펄스들에 이은 검증 동작들에 의해 수행된다.
일례에서, 다중 레벨 셀들에 저장된 데이터는 셀 단위로 순차적으로 판독되지 않는다. 대신에, 행 내의 셀들은 데이터의 페이지를 나타내는 디지트 배치를 이용하여 판독된다. 즉, 셀들의 행 내의 최상위 비트들은 데이터의 페이지를 나타내며, 셀들의 행 내의 최하위 비트들은 다른 데이터 페이지를 나타낸다. 다중 레벨 셀들이 둘보다 많은 비트를 저장하는 경우, 중간 디지트 위치들은 그들 자신의 데이터 페이지를 나타낼 것이다. 도 4를 다시 참조하면, 그리고 일련의 셀들이 도시된 바와 같은 임계치들을 저장하는 것으로 가정하면, 최상위 비트 페이지(상위 페이지)는 0110이고, 최하위 비트 페이지(하위 페이지)는 0011이다.
이 예에서, 최상위 비트(상위) 페이지는 최하위 비트(하위) 페이지보다 에러를 가질 확률이 크다. 상위 페이지 비트는 임계치들 406과 408 사이에서 상태를 전이한다. 상위 페이지 비트는 또한 임계치들 410과 412 사이에서 상태를 전이한다. 하위 페이지는 임계치들 408과 410 사이에서만 상태를 전이한다. 결과적으로, 상위 페이지에서 에러를 가질 확률은 아마도 2배이다. 더 가능한 에러에 대해 증가된 양의 에러 정정을 적용한 경우가 에러 정정에 더 효과적일 것이다.
도 5는 다중 레벨 메모리 셀 메모리의 행에 저장될 수 있는 데이터 구조(500)의 블록도이다. 일례에서, 데이터 구조(500)는 도 2에 도시된 데이터 영역(208)의 1 행이다. 데이터 구조(500)는 최상위 비트(MSB) 페이지(첨자 A) 및 최하위 비트(LSB) 페이지(첨자 B)의 각각에 대한 메모리 저장 영역(502A, 502B) 및 스페어 영역(504A, 504B)을 나타낸다. 메모리 저장 영역들(502A, 502B)은 애플리케이션에 대한 데이터를 저장한다. 이 데이터는 프로세서, 예를 들어 도 1의 프로세서(116)로부터의 이미지 감지 데이터와 같은 처리 또는 감지된 데이터일 수 있다. 저장 영역들(502A, 502B)은 비트들을 저장하기 위한 복수의 메모리 셀을 각각 포함하는 복수의 섹터(SEC0, SEC1, SEC2, SEC3)를 포함한다. 4개의 섹터가 도시되었지만, 다른 짝수 개의 섹터들이 사용될 수 있다는 것을 이해할 것이다. 개별 다중 레벨 메모리 셀 내에 저장된 에너지 레벨은 최상위 비트(MSB) 및 최하위 비트(LSB)를 나타낸다. 본 설명은 둘보다 많은 수의 비트들로 확장될 수 있다는 것을 인식할 것이다. 그러나, 본 설명은 설명 및 이해의 편의를 위해 2비트 다중 레벨 메모리를 설명한다. 섹터들은 메모리 영역에서 연속적이다. 섹터들(SEC0, SEC1, SEC2, SEC3)은 각각의 섹터에서 동일 수의 셀들로 형성된다. 따라서, 각각의 섹터는 데이터의 최상위 비트 및 최하위 비트 레벨들 양자에 대해 동일한 수의 메모리 셀들 및 비트들을 포함한다. 통상적으로, 섹터들은 행 내의 메모리 저장 셀들의 수의 균등한 분할이다. 섹터들의 크기의 일례는 512 킬로바이트이다.
스페어 영역들(504A, 504B)은 각각의 메모리 저장 영역(502A, 504B)에 부가되며, 메모리와 연관된 소위 하우스키핑 기능들을 위한 메모리 저장을 제공한다. 스페어 영역들(504A, 504B)은 행의 시작, 즉 "0"의 위치에 또는 행의 끝, 즉 "N"의 위치에 배치될 수 있다. 일부 하우스키핑 기능들은 에러 정정 및 블록 관리를 포함한다. 일 실시예에서, 스페어 영역들(504A, 504B)은 데이터 저장 영역들(502A, 502B)보다 작다. 일 실시예에서, 상위 페이지에 대응하는 스페어 영역(504A)은 4개의 세그먼트(5050, 5051, 5052, 5053)로 균등하게 분할된다. 이 세그먼트들은 각각 동일 수의 비트를 가질 수 있으며, 상위 페이지 상의 스페어 영역 내의 모든 이용 가능한 비트를 전부 사용할 수 있다. MSB 페이지는 MSB 페이지 내의 섹터들(SEC0, SEC1, SEC2, SEC3)에 각각 대응하는 에러 정정 데이터(ECC0, ECC1, ECC2, ECC3)를 포함한다. 하위(LSB) 페이지는 도시된 바와 같이 4개보다 많은 세그먼트(5060, 5061, 5062, 5063, 508)를 포함한다. LSB 페이지는 LSB 페이지 내의 각각의 섹터(SEC0, SEC1, SEC2, SEC3)에 각각 대응하는 세그먼트들(5060, 5061, 5062, 5063)의 각각 내에 에러 정정 데이터를 포함한다. 도 5에 도시된 바와 같이, MSB 페이지의 세그먼트들(505)의 각각에 대해 사용되는 메모리 셀들의 수는 LSB 페이지의 세그먼트들(506, 508)의 각각에 대해 사용되는 메모리 셀들의 수보다 많다. 따라서, 에러 정정 데이터 세그먼트들(5050, 5051, 5052, 5053)은 에러 정정 코드 세그먼트들(5060, 5061, 5062, 5063)보다 많은 비트를 포함한다. 일부 실시예들에서, 이것은 최상위 비트 페이지가 최하위 비트 페이지보다 에러를 가질 확률이 크다는 결정에 기초한다. MSB 페이지는 에러 정정 데이터(ECC0, ECC1, ECC2, ECC3)에서의 에러 정정을 위해, 대응하는 LSB 레벨에 대한 에러 정정 데이터(ECC0, ECC1, ECC2, ECC3)보다 많은 바이트를 포함한다.
LSB 페이지에 대한 스페어 영역(504B)은 블록 관리 데이터 세그먼트(508)를 더 포함한다. 이와 달리, 일 실시예에서, MSB 페이지 에러 정정은 에러 정정만을 위해 그의 스페어 영역의 전체를 사용한다. 세그먼트(508)는 소거 블록 관리 데이터, 웨어 레벨링 데이터(wear-leveling data) 및/또는 논리-물리 블록 맵핑 데이터와 같은 블록 관리 데이터를 저장할 수 있다.
일례에서, 메모리 어레이의 각각의 행은 스페어 영역에 64 바이트를 갖는다. 다중 레벨 메모리 셀들에 대해, 메모리 어레이의 각각 행 내에는 최상위 비트 페이지 및 최하위 비트 페이지가 저장된다. 에러 기회의 가능성이 가장 높은 것으로 결정된 페이지에 대해, 그의 스페어 영역은 완전히 에러 정정에 전용화된다. 다른 페이지에 대응하는 스페어 영역은 에러 정정 데이터 및 블록 관리 데이터 양자를 포함한다. 행의 스페어 영역의 각각 내에 64 바이트가 존재하는 경우에, 스페어 영역 내의 데이터는 다음과 같이 설정될 수 있다. 가장 에러에 걸리기 쉬운 페이지는 4개의 섹터를 갖도록 설정된다. 이어서, 이 페이지는 총 64 바이트의 4개 섹터 각각에 대해 16 바이트의 에러 정정 데이터를 포함한다. 덜 에러에 걸리기 쉬운 페이지는 또한 그의 스페어 영역에 블록 관리 데이터를 저장하며, 따라서 가장 에러에 걸리기 쉬운 페이지의 레이아웃을 미러링할 수 없다. 설정된 수의 바이트들이 블록 관리에 전용화된다. 나머지 바이트들은 섹터들의 수로 분할된다. 본 예에서, 양 페이지들에 대한 블록 관리는 16 바이트로 설정되고, 덜 에러에 걸리기 쉬운 페이지의 스페어 영역에 저장될 수 있으며, 나머지 48 바이트는 덜 에러에 걸리기 쉬운 페이지의 에러 정정을 위해 남겨질 수 있다. 따라서, 4개의 섹터의 각각은 스페어 영역 내의 에러 정정 데이터의 12 바이트와 연관된다. 본 설명으로부터 이해되듯이, 덜 에러에 걸리기 쉬운 페이지에만 블록 관리 데이터를 저장함으로써, 더 에러에 걸리기 쉬운 페이지를 위해 추가적인 에러 정정 데이터가 저장될 수 있다. 이것은 다중 레벨 메모리에 저장된 데이터의 신뢰성 및 에러 정정 중 적어도 하나를 향상시킬 수 있다.
스페어 영역은 또한 하나의 페이지에 대한 체크 데이터와 같은 소정의 에러 정정 데이터가 인접 페이지에 저장되도록 설정될 수 있다. 예를 들어, 덜 에러에 걸리기 쉬운 페이지는 그 자신 및 그의 더 에러에 걸리기 쉬운 대응 페이지 양자에 대한 에러 정정 데이터를 저장한다. 양 페이지는 더 에러에 걸리기 쉬운 페이지에 대한 에러 정정 코드와 같은 에러 정정 데이터를 취득하기 위해 판독될 것이다. 이러한 예에서, 더 에러에 걸리기 쉬운 페이지는 체크 데이터와 같은 에러 정정 데이터의 섹터당 16 바이트를 포함하는 반면, 덜 에러에 걸리기 쉬운 페이지는 에러 정정 데이터의 섹터마다 12 바이트를 갖는다. 예를 들어, 플래시 실패 메커니즘들의 분석이 이러한 할당이 적절하지 않다고 믿게 하는 경우, 덜 에러에 걸리기 쉬운 페이지 상의 48 바이트 중 일부는 더 에러에 걸리기 쉬운 페이지의 에러 정정 데이터를 위해 사용될 수 있다. 더 에러에 걸리기 쉬운 페이지 상의 각각의 섹터는 일례로서, 세그먼트들 중 하나를 제공하기 위해 덜 에러에 걸리기 쉬운 페이지에 대응하는 스페어 영역 내의 바이트들의 일부를 이용하여 섹터 에러 정정마다 18 바이트를 할당받을 수 있으며, 덜 에러에 걸리기 쉬운 페이지는 그의 에러 정정 데이터에 대한 섹터 세그먼트마다 10 바이트를 갖도록 남겨질 것이다.
스페어 영역의 ECC 내에 저장된 에러 정정 데이터는 "체크 바이트"로도 지칭될 수 있는 다양한 에러 정정 코드에 따라 코딩될 수 있다. 일례는 리드-솔로몬 코드 데이터이다. 다른 예는 BCH 코드 데이터이다. 다른 타입의 에러 정정 데이터는 해밍 코드, 리드-뮬러 코드 및 포워드 에러 정정 코드를 포함하지만, 이에 한정되지 않는다.
도 6은 비휘발성 메모리에 대한 에러 정정 배열을 설정하기 위한 방법(600)의 흐름도이다. 602에서, 다중 레벨 메모리 셀들의 단일 행 내에 저장된 데이터의 각 페이지에서 에러가 발생할 가능성에 대한 결정이 이루어진다. 이것은 각각의 임계 전압 범위에 대한 비트 패턴들의 할당에 적어도 부분적으로 기초할 수 있다. 비트 패턴은 최상위 비트가 최하위 비트보다 많이 상태를 변경할 것을 요구할 수 있다. 이러한 비트 패턴의 일례가 도 4에 도시되어 있다. 다른 실시예에서, 최하위 비트는 최상위 비트보다 많이 값을 변경할 수 있다. 덜 에러에 걸리기 쉬운 페이지가 결정되면, 덜 에러에 걸리기 쉬운 페이지는 블록 관리 데이터를 저장하도록 플래그된다(604). 606에서, 각각의 페이지에 대한 에러 정정 데이터 크기가 설정된다. 더 에러에 걸리기 쉬운 페이지에 대한 스페어 영역은 완전히 에러 정정 데이터에 전용화될 수 있다. 덜 에러에 걸리기 쉬운 페이지의 스페어 영역은 또한 에러 정정 데이터를 포함하지만, 더 에러에 걸리기 쉬운 페이지보다 이를 위해 할당된 더 적은 수의 비트를 갖는다. 덜 에러에 걸리기 쉬운 페이지의 스페어 영역은 블록 관리 데이터를 위해 예를 들어 스페어 영역의 끝에 설정된 수의 비트들을 예약한다(608). 이어서, 나머지 스페어 영역은 덜 에러에 걸리기 쉬운 페이지의 에러 정정에 사용된다.
도 7은 비휘발성 메모리를 프로그래밍하기 위한 방법(700)의 흐름도이다. 저장될 데이터가 수신된다(702). 프로그래밍 동작 동안, 제어기(114) 또는 프로세서(116)의 일부일 수 있는 ECC 유닛이 섹터에 저장될 수신 데이터에 기초하여 ECC 데이터를 계산한다(704). 에러 정정 데이터를 포함하는 데이터의 기입 가능한 블록들이 포맷팅되거나 구축된다(706). 더 에러에 걸리기 쉬운 페이지의 스페어 영역에는 에러 정정 데이터만이 기입된다. 덜 에러에 걸리기 쉬운 페이지의 스페어 영역에는 에러 정정 데이터 및 관리 데이터 양자가 기입된다. 이어서, 각각의 데이터 페이지에 대한 ECC 데이터는 데이터 영역에 기입되는 실제 데이터와 함께 대응 스페어 영역에 기입된다(708). 비휘발성 메모리에 기입할 데이터를 구축하는 예들이 미국 출원 번호 11/698,456, 11/698,455 및 11/672,076에 설명되어 있으며, 이들 출원 각각은 임의의 목적으로 본 명세서에 참고 문헌으로 포함된다.
도 8은 다중 레벨 메모리로부터 데이터를 판독하기 위한 방법(800)의 흐름도이다. 802에서, 다중 레벨 메모리로부터 데이터가 판독된다. 판독된 데이터는 다중 레벨 셀들의 행 내에 저장된 양 데이터 페이지, 즉 에러 정정 데이터 및 블록 관리 데이터를 포함한다. 상위 페이지 데이터 및 하위 페이지 데이터가 분리된다(804). 에러 정정 데이터가 하위 페이지 및 상위 페이지의 각각에 대해 판독되며(805), 이 데이터는 각각의 페이지에 대해 상이한 수의 비트들을 가질 것이다. 더 에러에 걸리기 쉬운 페이지는 더 많은 수의 에러 정정 비트들을 가질 것이다. 806에서, 블록 관리 데이터는 덜 에러에 걸리기 쉬운 페이지의 에러 정정 데이터로부터 분리된다. 데이터가 판독될 때, ECC 데이터도 판독되며, 따라서 데이터가 정확한지를 체크하기 위해 에러 정정 동작이 적용된다(808). 따라서, ECC 알고리즘이 데이터 에러들을 정정하고, 페이지들 사이의 상대적 에러 가능성에 기초하여 각각의 페이지에 상이한 에러 정정 강도들을 적용하는 것이 가능하다. 정정될 수 있는 데이터 에러들의 수는 사용되는 알고리즘의 정정 강도에 의존한다. ECC 알고리즘은 하드웨어 또는 소프트웨어로 구현될 수 있다. 간단한 해밍 코드들이 가장 쉬운 하드웨어 구현을 제공한다. 그러나, 이들은 단일 비트 에러들만을 정정할 수 있다. 해밍은 통상적으로 섹터당 13비트를 필요로 한다. 리드-솔로몬 코드들은 더 강건한 에러 정정 능력을 제공한다. 리드 솔로몬은 에러 정정을 수행하기 위해 섹터당 18비트의 배수를 필요로 한다. BCH 코드들은 리드 솔로몬 코드들보다 향상된 효율로 에러 정정을 제공할 수 있다. BCH는 에러 정정을 수행하기 위하여 13비트의 배수를 필요로 한다.
도 9는 본 발명의 다양한 실시예에 따른 시스템(900)의 블록도이다. 시스템(900)은 도 1의 메모리 시스템(100)과 유사하거나 동일할 수 있는 하나 이상의 장치를 포함한다. 일부 실시예들에서, 시스템(900)은 디스플레이(918) 및/또는 무선 송수신기(920)에 결합되는 프로세서(916)를 포함한다. 장치(900) 내에 포함되고, 복수의 메모리 셀들을 포함하는 메모리 시스템(100)도 프로세서(916)에 동작적으로 결합될 수 있다.
다양한 실시예에서, 시스템(900)은 렌즈(924) 및 프로세서(916)에 결합되는 이미징 평면(926)을 구비하는 카메라(922)를 포함한다. 이미징 평면(926)은 렌즈(924)에 의해 취득된 광선들(928)을 수신한다. 시스템(900)의 다양한 변형이 가능하다. 예를 들어, 다양한 실시예에서, 시스템(900)은 프로세서(916)에 결합되는, 한 세트의 매체 재생 제어들(932)을 포함하는 오디오 및/또는 비디오 매체 재생기(930)를 포함한다. 다양한 실시예에서, 시스템(900)은 모뎀(934), DRAM 장치(936) 및 비휘발성 플래시 메모리 장치(940)를 포함하며, 이들은 모두 프로세서(916)에 결합된다.
메모리 어레이, 페이지 블록, 페이지 및 섹터의 크기는 메모리 장치에 의해 정의되는 바와 따라 다양할 수 있다. 또한, 스페어 영역에서 이용 가능한 바이트들도 특정 메모리 장치에 따라 다양하다. 따라서, 본 발명은 그렇게 청구되지 않는 한, 특정 크기의 메모리로 한정되지 않는다.
본 명세서는 다중 레벨 셀 메모리들에서 상이한 레벨의 결함률을 보상하기 위한 구조들 및 방법들을 설명하였다. 더 에러에 걸리기 쉽거나 "위험한" 페이지는 더 많은 양의 에러 정정 데이터의 적용을 통해 더 강한 에러 정정을 받는다. 블록 관리 정보는 덜 에러에 걸리기 쉬운 페이지로 이동된다. 따라서, 페이지들 사이의 상대적인 에러율에 따라, 에러 정정 코드들이 잠재적으로 더 효과적이 되도록 변경될 수 있다.
특정 실시예들이 도시되고 설명되었지만, 이 분야의 통상의 기술자들은 동일 목적을 달성할 것으로 예측되는 임의의 배열이 설명된 특정 실시예들을 대체할 수 있다는 것을 알 것이다. 본 출원은 본 발명의 적응들 또는 변형들을 커버하는 것을 의도한다. 위의 설명은 한정이 아니라, 예시적인 것을 의도한다는 것을 이해해야 한다. 위의 실시예들의 조합들 및 다른 실시예들은 위의 설명의 검토시에 이 분야의 기술자들에게 명백할 것이다. 본 발명의 범위는 첨부된 청구항들 및 그러한 청구항들의 권리인 균등물들의 전체 범위를 함께 참조하여 결정되어야 한다.
위의 설명에서 설명된 예들은 이 분야의 기술자들이 본 발명을 실시하는 것을 가능하게 하기에 충분한 상세를 제공하며, 본 발명이 다양한 목적들 또는 실시예들에 어떻게 적용될 수 있는지를 설명하는 데 사용된다. 본 명세서에서 "일", "하나의" 또는 "다양한" 실시예는 반드시 동일한 실시예를 참조하는 것은 아니며, 그러한 참조들은 둘 이상의 실시예를 고려할 수 있다. 다른 실시예들도 이용될 수 있으며, 본 발명의 범위를 벗어나지 않고, 구조적, 논리적, 전기적 변경들이 이루어질 수 있다.
본 명세서에서, 그러한 본 발명의 실시예들은, 실제로 둘 이상의 발명이 개시되는 경우에 본 출원의 범위를 임의의 단일 발명 또는 발명 개념으로 자발적으로 한정하려는 것이 아니라 단지 편의를 위해, "발명"이라는 용어로 개별적으로 또는 집합적으로 참조될 수 있다. 따라서, 특정 실시예들이 도시되고 설명되었지만, 동일 목적을 달성할 것으로 예측되는 임의의 배열이 설명된 특정 실시예들을 대체할 수 있다. 본 발명은 다양한 실시예의 임의 및 모든 적응들 또는 변형들을 커버하는 것을 의도한다.
요약서는 독자들이 기술적 개시의 특성을 빠르게 확인하는 것을 가능하게 하는 요약서를 요구하는 37 C.F.R. §1.72(b)에 따라 제공된다. 요약서는 청구항들의 범위 또는 의미를 해석하거나 한정하는 데 사용되지 않을 것이라는 이해 속에서 제출된다. 또한, 전술한 상세한 설명에서는, 다양한 특징들이 개시를 간소화하기 위한 목적으로 단일 실시예 내에 함께 그룹화되어 있다는 것을 알 수 있다. 이러한 개시 방법은 각각의 청구항 내에 명시적으로 기재된 것보다 많은 특징을 필요로 하는 것으로 해석되지 않아야 한다. 오히려, 본 발명은 단일의 개시된 실시예의 모든 특징보다 적은 특징에서 발견될 수 있다. 따라서, 아래의 청구항들은 상세한 설명에 포함되며, 각각의 청구항은 개별 실시예로서 그 자신에 의거한다.

Claims (28)

  1. 메모리로서,
    페이지 및 적어도 하나의 다른 페이지의 데이터를 저장하기 위한 복수의 메모리 셀 - 상기 데이터의 페이지는 상기 데이터의 페이지와 연관된 에러의 정정 및 검출 중 적어도 하나에 사용될 데이터의 양과 연관되고, 상기 데이터의 양은 상기 데이터의 다른 페이지와 연관된 에러의 정정 및 검출 중 적어도 하나에 사용될 데이터의 양과 다르고, 상기 다른 페이지는 상기 데이터의 페이지의 블록 관리 데이터의 양과 다른 블록 관리 데이터의 양을 포함함 -
    을 포함하는 메모리.
  2. 제1항에 있어서, 상기 복수의 메모리 셀은 다중 레벨 셀들을 포함하는 메모리.
  3. 제1항에 있어서, 상기 데이터의 페이지와 연관된 에러의 정정 및 검출 중 적어도 하나에 사용될 데이터의 양은 상기 데이터의 다른 페이지와 연관된 에러의 정정 및 검출 중 적어도 하나에 사용될 데이터의 양보다 많은 메모리.
  4. 제1항에 있어서, 상기 데이터의 페이지는 리드-솔로몬(Reed-Solomon) 에러 정정 코드, 보스-추드리-호퀴헨(Bose-Chudry-Hocquehen) 에러 정정 코드, 또는 체크섬(check sum) 중 적어도 하나로 구성되는 에러 정정 데이터를 포함하는 메모리.
  5. 메모리로서,
    각각이 페이지 및 적어도 하나의 다른 페이지를 저장하도록 구성된 복수의 메모리 셀 - 상기 페이지는 제1 에러 정정 코드와 연관되고, 상기 다른 페이지는 상기 제1 에러 정정 코드와 다른 제2 에러 정정 코드와 연관되고, 상기 다른 페이지는 상기 페이지보다 더 많은 수의 블록 관리 데이터 저장 비트들을 포함함 -
    을 포함하는 메모리.
  6. 제5항에 있어서, 상기 복수의 메모리 셀에 결합된 제어 회로를 더 포함하는 메모리.
  7. 제5항에 있어서, 상기 제1 에러 정정 코드는 상기 제2 에러 정정 코드보다 에러 정정을 위한 더 많은 수의 비트를 요구하는 메모리.
  8. 제5항에 있어서, 상기 복수의 메모리 셀은 상기 페이지 및 상기 다른 페이지의 각각에 대해 동일한 수의 메모리 위치, 및 상기 페이지 및 상기 다른 페이지의 각각에 대해 에러 정정 코드 및 블록 관리를 위한 동일 수의 스페어 영역 메모리 위치들을 갖는 고정된 수의 셀들을 포함하는 메모리.
  9. 제5항에 있어서, 상기 페이지의 스페어 영역 메모리 위치들은 블록 관리 데이터가 없는 메모리.
  10. 삭제
  11. 삭제
  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
  16. 에러 정정 데이터, 블록 관리 데이터, 및 복수의 다중 레벨 메모리 셀들로부터의 복수의 데이터 페이지를 판독하는 단계;
    상기 복수의 다중 레벨 메모리 셀들의 행의 페이지에 대한 제1 에러 정정 데이터를 결정하는 단계;
    상기 복수의 다중 레벨 메모리 셀들의 상기 행의 다른 페이지에 대한 제2 에러 정정 데이터를 결정하는 단계; 및
    상기 다중 레벨 메모리 셀들의 상기 행의 상기 페이지에 상기 제1 에러 정정 데이터를 저장하고, 상기 다른 페이지에 상기 제2 에러 정정 데이터를 저장하는 단계 - 상기 페이지와 연관된 상기 블록 관리 데이터는 상기 다른 페이지와 연관된 상기 블록 관리 데이터보다 많음 -
    를 포함하는 방법.
  17. 제16항에 있어서, 상기 페이지에 대한 상기 제1 에러 정정 데이터를 결정하는 단계는 제1 수의 에러 정정 비트를 계산하는 단계를 포함하고,
    상기 다른 페이지에 대한 상기 제2 에러 정정 데이터를 결정하는 단계는 상기 제1 수의 에러 정정 비트와는 다른 제2 수의 에러 정정 비트를 계산하는 단계를 포함하는 방법.
  18. 제17항에 있어서, 상기 제1 수의 에러 정정 비트는 상기 다중 레벨 메모리 셀들의 스페어 영역의 저장 사이즈와 동일한 방법.
  19. 삭제
  20. 에러 정정 데이터, 블록 관리 데이터, 및 복수의 다중 레벨 메모리 셀들로부터의 복수의 데이터 페이지를 판독하는 단계;
    상기 복수의 다중 레벨 메모리 셀들의 행의 페이지에 대한 제1 에러 정정 데이터를 결정하는 단계;
    상기 복수의 다중 레벨 메모리 셀들의 상기 행의 다른 페이지에 대한 제2 에러 정정 데이터를 결정하는 단계;
    상기 다중 레벨 메모리 셀들의 상기 행의 상기 페이지에 상기 제1 에러 정정 데이터를 저장하고 상기 다른 페이지에 상기 제2 에러 정정 데이터를 저장하는 단계 - 상기 페이지와 연관된 상기 블록 관리 데이터는 상기 다른 페이지와 연관된 상기 블록 관리 데이터보다 많음 -; 및
    상기 복수의 데이터 페이지 상에서 에러 정정 동작들을 수행하는 단계
    를 포함하는 방법.
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
KR1020107002788A 2007-07-09 2008-07-09 메모리 에러 정정 KR101371830B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/774,825 2007-07-09
US11/774,825 US7747903B2 (en) 2007-07-09 2007-07-09 Error correction for memory
PCT/US2008/008436 WO2009009076A2 (en) 2007-07-09 2008-07-09 Error correction for memory

Publications (2)

Publication Number Publication Date
KR20100046178A KR20100046178A (ko) 2010-05-06
KR101371830B1 true KR101371830B1 (ko) 2014-03-07

Family

ID=40229346

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020107002788A KR101371830B1 (ko) 2007-07-09 2008-07-09 메모리 에러 정정

Country Status (5)

Country Link
US (2) US7747903B2 (ko)
KR (1) KR101371830B1 (ko)
CN (1) CN101779194B (ko)
TW (1) TWI394167B (ko)
WO (1) WO2009009076A2 (ko)

Families Citing this family (85)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101288056A (zh) * 2006-03-13 2008-10-15 松下电器产业株式会社 闪速存储器用的存储控制器
US8209580B1 (en) 2006-05-08 2012-06-26 Marvell International Ltd. Error correction coding for varying signal-to-noise ratio channels
US7685494B1 (en) 2006-05-08 2010-03-23 Marvell International, Ltd. Error correction coding for varying signal-to-noise ratio channels
US7966547B2 (en) * 2007-07-02 2011-06-21 International Business Machines Corporation Multi-bit error correction scheme in multi-level memory storage system
US7747903B2 (en) 2007-07-09 2010-06-29 Micron Technology, Inc. Error correction for memory
TWI382422B (zh) * 2008-07-11 2013-01-11 Genesys Logic Inc 根據錯誤更正碼更新快閃記憶體之資料頁面之儲存裝置與方法
KR20100012605A (ko) * 2008-07-29 2010-02-08 삼성전자주식회사 Ecc를 이용하여 프로그램하는 불휘발성 메모리 장치 및그 프로그램 방법
US8555143B2 (en) * 2008-12-22 2013-10-08 Industrial Technology Research Institute Flash memory controller and the method thereof
US8386883B2 (en) * 2009-02-24 2013-02-26 International Business Machines Corporation Lengthening life of a limited life memory
US20110035540A1 (en) * 2009-08-10 2011-02-10 Adtron, Inc. Flash blade system architecture and method
US8077515B2 (en) 2009-08-25 2011-12-13 Micron Technology, Inc. Methods, devices, and systems for dealing with threshold voltage change in memory devices
CN102034552A (zh) * 2009-09-25 2011-04-27 威刚科技(苏州)有限公司 存储装置与其资料处理方法
US8271697B2 (en) 2009-09-29 2012-09-18 Micron Technology, Inc. State change in systems having devices coupled in a chained configuration
US8589766B2 (en) * 2010-02-24 2013-11-19 Apple Inc. Codeword remapping schemes for non-volatile memories
JP5017407B2 (ja) * 2010-03-24 2012-09-05 株式会社東芝 半導体記憶装置
US8429391B2 (en) 2010-04-16 2013-04-23 Micron Technology, Inc. Boot partitions in memory devices and systems
US8451664B2 (en) 2010-05-12 2013-05-28 Micron Technology, Inc. Determining and using soft data in memory devices and systems
US8990660B2 (en) * 2010-09-13 2015-03-24 Freescale Semiconductor, Inc. Data processing system having end-to-end error correction and method therefor
CN102419734B (zh) * 2010-09-27 2016-05-11 北京中星微电子有限公司 一种数据存储的方法及装置
US8825945B2 (en) 2011-01-31 2014-09-02 Marvell World Trade Ltd. Mapping different portions of data to different pages of multi-level non-volatile memory
US8909851B2 (en) 2011-02-08 2014-12-09 SMART Storage Systems, Inc. Storage control system with change logging mechanism and method of operation thereof
US8484542B2 (en) * 2011-02-08 2013-07-09 Sandisk Technologies Inc. Data recovery using additional error correction coding data
US8935466B2 (en) * 2011-03-28 2015-01-13 SMART Storage Systems, Inc. Data storage system with non-volatile memory and method of operation thereof
CN102279803A (zh) * 2011-04-13 2011-12-14 西安交通大学 一种提高多层单元NAND-Flash存储可靠性的备用区分配方法
US8732557B2 (en) 2011-05-31 2014-05-20 Micron Technology, Inc. Data protection across multiple memory blocks
US8990657B2 (en) 2011-06-14 2015-03-24 Freescale Semiconductor, Inc. Selective masking for error correction
US9098399B2 (en) 2011-08-31 2015-08-04 SMART Storage Systems, Inc. Electronic system with storage management mechanism and method of operation thereof
US9021231B2 (en) 2011-09-02 2015-04-28 SMART Storage Systems, Inc. Storage control system with write amplification control mechanism and method of operation thereof
US9021319B2 (en) 2011-09-02 2015-04-28 SMART Storage Systems, Inc. Non-volatile memory management system with load leveling and method of operation thereof
US9063844B2 (en) 2011-09-02 2015-06-23 SMART Storage Systems, Inc. Non-volatile memory management system with time measure mechanism and method of operation thereof
US9588883B2 (en) * 2011-09-23 2017-03-07 Conversant Intellectual Property Management Inc. Flash memory system
US9239781B2 (en) 2012-02-07 2016-01-19 SMART Storage Systems, Inc. Storage control system with erase block mechanism and method of operation thereof
US8954825B2 (en) * 2012-03-06 2015-02-10 Micron Technology, Inc. Apparatuses and methods including error correction code organization
US9298252B2 (en) 2012-04-17 2016-03-29 SMART Storage Systems, Inc. Storage control system with power down mechanism and method of operation thereof
CN104246898B (zh) * 2012-05-31 2017-03-22 慧与发展有限责任合伙企业 局部错误检测和全局错误纠正
US8949689B2 (en) 2012-06-11 2015-02-03 SMART Storage Systems, Inc. Storage control system with data management mechanism and method of operation thereof
KR101979734B1 (ko) 2012-08-07 2019-05-17 삼성전자 주식회사 메모리 장치의 독출 전압 제어 방법 및 이를 이용한 데이터 독출 방법
KR101419335B1 (ko) * 2012-11-23 2014-07-16 한양대학교 산학협력단 멀티 레벨 셀 플래시 메모리의 페이지 단위 클러스터링 장치 및 방법
US9671962B2 (en) 2012-11-30 2017-06-06 Sandisk Technologies Llc Storage control system with data management mechanism of parity and method of operation thereof
US9059736B2 (en) * 2012-12-03 2015-06-16 Western Digital Technologies, Inc. Methods, solid state drive controllers and data storage devices having a runtime variable raid protection scheme
US9123445B2 (en) 2013-01-22 2015-09-01 SMART Storage Systems, Inc. Storage control system with data management mechanism and method of operation thereof
EP2951834A4 (en) 2013-01-31 2016-08-31 Hewlett Packard Entpr Dev Lp NON-VOLATILE MULTINIVE CELL MEMORY WITH DECOUPLED BITS FOR HIGHER PERFORMANCE AND ENERGY EFFICIENCY
US9329928B2 (en) 2013-02-20 2016-05-03 Sandisk Enterprise IP LLC. Bandwidth optimization in a non-volatile memory system
US9214965B2 (en) 2013-02-20 2015-12-15 Sandisk Enterprise Ip Llc Method and system for improving data integrity in non-volatile storage
US9183137B2 (en) 2013-02-27 2015-11-10 SMART Storage Systems, Inc. Storage control system with data management mechanism and method of operation thereof
US9470720B2 (en) 2013-03-08 2016-10-18 Sandisk Technologies Llc Test system with localized heating and method of manufacture thereof
US9043780B2 (en) 2013-03-27 2015-05-26 SMART Storage Systems, Inc. Electronic system with system modification control mechanism and method of operation thereof
US9170941B2 (en) 2013-04-05 2015-10-27 Sandisk Enterprises IP LLC Data hardening in a storage system
US10049037B2 (en) 2013-04-05 2018-08-14 Sandisk Enterprise Ip Llc Data management in a storage system
US9543025B2 (en) 2013-04-11 2017-01-10 Sandisk Technologies Llc Storage control system with power-off time estimation mechanism and method of operation thereof
US10546648B2 (en) 2013-04-12 2020-01-28 Sandisk Technologies Llc Storage control system with data management mechanism and method of operation thereof
TWI502601B (zh) * 2013-04-24 2015-10-01 Ind Tech Res Inst 混合式錯誤修復方法及其記憶體裝置
US9313874B2 (en) 2013-06-19 2016-04-12 SMART Storage Systems, Inc. Electronic system with heat extraction and method of manufacture thereof
US9898056B2 (en) 2013-06-19 2018-02-20 Sandisk Technologies Llc Electronic assembly with thermal channel and method of manufacture thereof
US9244519B1 (en) 2013-06-25 2016-01-26 Smart Storage Systems. Inc. Storage system with data transfer rate adjustment for power throttling
US9367353B1 (en) 2013-06-25 2016-06-14 Sandisk Technologies Inc. Storage control system with power throttling mechanism and method of operation thereof
US9146850B2 (en) 2013-08-01 2015-09-29 SMART Storage Systems, Inc. Data storage system with dynamic read threshold mechanism and method of operation thereof
US9361222B2 (en) 2013-08-07 2016-06-07 SMART Storage Systems, Inc. Electronic system with storage drive life estimation mechanism and method of operation thereof
US9448946B2 (en) 2013-08-07 2016-09-20 Sandisk Technologies Llc Data storage system with stale data mechanism and method of operation thereof
US9431113B2 (en) 2013-08-07 2016-08-30 Sandisk Technologies Llc Data storage system with dynamic erase block grouping mechanism and method of operation thereof
US9152555B2 (en) 2013-11-15 2015-10-06 Sandisk Enterprise IP LLC. Data management with modular erase in a data storage system
US20150161001A1 (en) * 2013-12-06 2015-06-11 Western Digital Technologies, Inc. Misprogramming prevention in solid-state memory
US10417090B2 (en) * 2013-12-23 2019-09-17 Cnex Labs, Inc. Computing system with data protection mechanism and method of operation thereof
WO2015134262A1 (en) * 2014-03-01 2015-09-11 CNEXLABS, Inc. Computing system with data protection mechanism and method of operation thereof
US9405624B2 (en) * 2014-06-19 2016-08-02 Seagate Technology Llc On-die error detection and correction during multi-step programming
US9213602B1 (en) 2014-06-23 2015-12-15 Seagate Technology Llc Write mapping to mitigate hard errors via soft-decision decoding
US9558066B2 (en) * 2014-09-26 2017-01-31 Intel Corporation Exchanging ECC metadata between memory and host system
TWI556254B (zh) * 2014-10-14 2016-11-01 慧榮科技股份有限公司 資料儲存裝置及其資料存取方法
TWI555028B (zh) * 2015-02-12 2016-10-21 慧榮科技股份有限公司 資料儲存裝置以及錯誤校正方法
US9786386B2 (en) * 2015-02-27 2017-10-10 Microsoft Technology Licensing, Llc Dynamic approximate storage for custom applications
US9690656B2 (en) * 2015-02-27 2017-06-27 Microsoft Technology Licensing, Llc Data encoding on single-level and variable multi-level cell storage
WO2016144291A1 (en) * 2015-03-06 2016-09-15 Hewlett Packard Enterprise Development Lp Data write to subset of memory devices
CN106297881B (zh) * 2015-05-27 2020-09-11 旺宏电子股份有限公司 非挥发性存储器的健康管理
US9679661B1 (en) 2016-06-28 2017-06-13 Sandisk Technologies Llc Non-volatile storage system with self-test for read performance enhancement feature setup
DE102016115272A1 (de) * 2016-08-17 2018-02-22 Infineon Technologies Ag Speicher mit unterschiedlichen zuverlässigkeiten
US9672940B1 (en) 2016-08-18 2017-06-06 Sandisk Technologies Llc Non-volatile memory with fast read process
US10613924B2 (en) 2017-05-17 2020-04-07 Rambus Inc. Energy-efficient error-correction-detection storage
GB201710839D0 (en) * 2017-07-05 2017-08-16 Irdeto Bv Data protection
US10719398B1 (en) * 2017-07-18 2020-07-21 EMC IP Holding Company LLC Resilience of data storage systems by managing partial failures of solid state drives
US10269422B2 (en) * 2017-09-08 2019-04-23 Cnex Labs, Inc. Storage system with data reliability mechanism and method of operation thereof
US11190217B2 (en) 2018-08-23 2021-11-30 Phison Electronics Corp. Data writing method, memory controlling circuit unit and memory storage device
TWI658463B (zh) * 2018-08-23 2019-05-01 群聯電子股份有限公司 資料存取方法、記憶體控制電路單元與記憶體儲存裝置
CN109446157B (zh) * 2018-10-18 2021-10-29 武汉虹旭信息技术有限责任公司 一种基于格式化数据的数据格式校查系统及其方法
DE102020120719A1 (de) * 2020-08-05 2022-02-10 Infineon Technologies Ag Zugriff auf einen speicher
US11798647B2 (en) * 2022-02-28 2023-10-24 Micron Technology, Inc. Apparatus and methods for determining memory cell data states

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7023735B2 (en) * 2003-06-17 2006-04-04 Ramot At Tel-Aviv University Ltd. Methods of increasing the reliability of a flash memory
WO2007043042A2 (en) 2005-10-13 2007-04-19 Ramot At Tel-Aviv University Ltd. Method of error correction in mbc flash memory

Family Cites Families (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6151253A (ja) * 1984-08-20 1986-03-13 Nec Corp 誤り訂正回路
US4701884A (en) * 1985-08-16 1987-10-20 Hitachi, Ltd. Semiconductor memory for serial data access
US5043940A (en) * 1988-06-08 1991-08-27 Eliyahou Harari Flash EEPROM memory systems having multistate storage cells
JPH0387000A (ja) * 1989-08-30 1991-04-11 Mitsubishi Electric Corp 半導体記憶装置
US5276834A (en) * 1990-12-04 1994-01-04 Micron Technology, Inc. Spare memory arrangement
US5218569A (en) * 1991-02-08 1993-06-08 Banks Gerald J Electrically alterable non-volatile memory with n-bits per memory cell
US5513192A (en) * 1992-08-28 1996-04-30 Sun Microsystems, Inc. Fault tolerant disk drive system with error detection and correction
US5450354A (en) * 1992-08-31 1995-09-12 Nippon Steel Corporation Non-volatile semiconductor memory device detachable deterioration of memory cells
JP3999822B2 (ja) * 1993-12-28 2007-10-31 株式会社東芝 記憶システム
US5452473A (en) 1994-02-28 1995-09-19 Qualcomm Incorporated Reverse link, transmit power correction and limitation in a radiotelephone system
US5450363A (en) * 1994-06-02 1995-09-12 Intel Corporation Gray coding for a multilevel cell memory system
US5475693A (en) * 1994-12-27 1995-12-12 Intel Corporation Error management processes for flash EEPROM memory arrays
US5559742A (en) * 1995-02-23 1996-09-24 Micron Technology, Inc. Flash memory having transistor redundancy
US5513137A (en) * 1995-02-23 1996-04-30 Micron Technology, Inc. Flash memory having transistor redundancy
US5524096A (en) * 1995-06-29 1996-06-04 Micron Quantum Devices, Inc. Circuit for generating a delayed standby signal in response to an external standby command
US5557576A (en) * 1995-07-28 1996-09-17 Micron Quantum Devices, Inc. Method and apparatus for monitoring illegal conditions in a nonvolatile memory circuit
US5729489A (en) * 1995-12-14 1998-03-17 Intel Corporation Programming flash memory using predictive learning methods
US5754567A (en) * 1996-10-15 1998-05-19 Micron Quantum Devices, Inc. Write reduction in flash memory systems through ECC usage
US5864569A (en) * 1996-10-18 1999-01-26 Micron Technology, Inc. Method and apparatus for performing error correction on data read from a multistate memory
EP1055969A4 (en) * 1998-12-10 2002-01-16 Clariant Finance Bvi Ltd PHOTOSENSITIVE RESIN COMPOSITION
JP4323707B2 (ja) * 2000-10-25 2009-09-02 富士通マイクロエレクトロニクス株式会社 フラッシュメモリの欠陥管理方法
US6784889B1 (en) * 2000-12-13 2004-08-31 Micron Technology, Inc. Memory system and method for improved utilization of read and write bandwidth of a graphics processing system
US6741253B2 (en) * 2001-10-09 2004-05-25 Micron Technology, Inc. Embedded memory system and method including data error correction
US8412879B2 (en) * 2002-10-28 2013-04-02 Sandisk Technologies Inc. Hybrid implementation for error correction codes within a non-volatile memory system
US7019998B2 (en) * 2003-09-09 2006-03-28 Silicon Storage Technology, Inc. Unified multilevel cell memory
US7389465B2 (en) * 2004-01-30 2008-06-17 Micron Technology, Inc. Error detection and correction scheme for a memory device
US7099221B2 (en) * 2004-05-06 2006-08-29 Micron Technology, Inc. Memory controller method and system compensating for memory cell data losses
US7322002B2 (en) * 2004-05-26 2008-01-22 Micron Technology, Inc. Erasure pointer error correction
EP1776699A1 (en) 2004-08-02 2007-04-25 Koninklijke Philips Electronics N.V. Data storage and replay apparatus
JP4457041B2 (ja) * 2005-05-20 2010-04-28 株式会社日立製作所 ベリファイ処理方法及び光ディスク装置
US8055833B2 (en) * 2006-10-05 2011-11-08 Google Inc. System and method for increasing capacity, performance, and flexibility of flash storage
US7502254B2 (en) * 2006-04-11 2009-03-10 Sandisk Il Ltd Method for generating soft bits in flash memories
US7904780B2 (en) * 2006-11-03 2011-03-08 Sandisk Corporation Methods of modulating error correction coding
US8055988B2 (en) * 2007-03-30 2011-11-08 International Business Machines Corporation Multi-bit memory error detection and correction system and method
US7747903B2 (en) 2007-07-09 2010-06-29 Micron Technology, Inc. Error correction for memory

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7023735B2 (en) * 2003-06-17 2006-04-04 Ramot At Tel-Aviv University Ltd. Methods of increasing the reliability of a flash memory
WO2007043042A2 (en) 2005-10-13 2007-04-19 Ramot At Tel-Aviv University Ltd. Method of error correction in mbc flash memory

Also Published As

Publication number Publication date
US20100262890A1 (en) 2010-10-14
CN101779194A (zh) 2010-07-14
TWI394167B (zh) 2013-04-21
KR20100046178A (ko) 2010-05-06
US7747903B2 (en) 2010-06-29
WO2009009076A9 (en) 2010-02-25
US20090019321A1 (en) 2009-01-15
TW200907989A (en) 2009-02-16
WO2009009076A2 (en) 2009-01-15
WO2009009076A3 (en) 2009-07-16
CN101779194B (zh) 2013-06-05
US7996727B2 (en) 2011-08-09

Similar Documents

Publication Publication Date Title
KR101371830B1 (ko) 메모리 에러 정정
US10891187B2 (en) Memory devices having differently configured blocks of memory cells
US8943387B2 (en) Programming management data for a memory
US7333364B2 (en) Cell-downgrading and reference-voltage adjustment for a multi-bit-cell flash memory
US8386861B2 (en) Non-volatile memory and method with post-write read and adaptive re-write to manage errors
US8578244B2 (en) Programming error correction code into a solid state memory device with varying bits per cell
US8713380B2 (en) Non-volatile memory and method having efficient on-chip block-copying with controlled error rate
KR101117331B1 (ko) 기준 셀들의 데이터 판독을 갖는 비휘발성 멀티레벨 메모리 셀들
KR101121610B1 (ko) 비휘발성 다중레벨 메모리 셀
US20080189473A1 (en) Mlc selected multi-program for system management
US20210005242A1 (en) Memory system, memory controller and method for operating memory system
US11817170B2 (en) Storage controller determining error count, method of operating the same, and method of operating storage device including the same

Legal Events

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

Payment date: 20170202

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180219

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190218

Year of fee payment: 6