KR101343698B1 - 아날로그 메모리 셀들의 스파스 프로그래밍 - Google Patents

아날로그 메모리 셀들의 스파스 프로그래밍 Download PDF

Info

Publication number
KR101343698B1
KR101343698B1 KR1020120051390A KR20120051390A KR101343698B1 KR 101343698 B1 KR101343698 B1 KR 101343698B1 KR 1020120051390 A KR1020120051390 A KR 1020120051390A KR 20120051390 A KR20120051390 A KR 20120051390A KR 101343698 B1 KR101343698 B1 KR 101343698B1
Authority
KR
South Korea
Prior art keywords
memory cells
data
group
memory
programming
Prior art date
Application number
KR1020120051390A
Other languages
English (en)
Other versions
KR20120128103A (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 KR20120128103A publication Critical patent/KR20120128103A/ko
Application granted granted Critical
Publication of KR101343698B1 publication Critical patent/KR101343698B1/ko

Links

Images

Classifications

    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5628Programming or writing circuits; Data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3418Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3418Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • G11C16/3427Circuits or methods to prevent or reduce disturbance of the state of a memory cell when neighbouring cells are read or written
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C27/00Electric analogue stores, e.g. for storing instantaneous values
    • G11C27/005Electric analogue stores, e.g. for storing instantaneous values with non-volatile charge storage, e.g. on floating gate or MNOS
    • 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
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/564Miscellaneous aspects
    • G11C2211/5641Multilevel memory having cells with different number of storage levels
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/564Miscellaneous aspects
    • G11C2211/5648Multilevel memory programming, reading or erasing operations wherein the order or sequence of the operations is relevant

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)
  • Error Detection And Correction (AREA)
  • Oscillators With Electromechanical Resonators (AREA)

Abstract

아날로그 메모리 셀들(32)의 어레이(28)를 포함하는 메모리(24)에 데이터 저장을 위한 방법은, 상기 메모리 셀들의 그룹을 선택하여, 상기 그룹 내의 각각의 메모리 셀이 상기 그룹으로부터 제외되는 상기 어레이 내의 하나 이상의 이웃 메모리 셀들을 갖도록 하는 단계를 포함한다. 상기 메모리 셀들의 상기 그룹에 데이터가 저장되는 한 프로그래밍으로부터 상기 이웃 메모리 셀들을 제외시키면서 상기 메모리 셀들의 상기 그룹에 데이터가 저장된다.

Description

아날로그 메모리 셀들의 스파스 프로그래밍{SPARSE PROGRAMMING OF ANALOG MEMORY CELLS}
관련 출원들에 대한 교차 참조
이 출원은 2011년 5월 16일자 출원된 미국 가특허 출원 61/486,330호의 이득을 주장하고, 그 개시는 본원에서 참고로 포함된다.
발명의 분야
본 발명은 일반적으로 메모리 디바이스들에 관한 것이고, 특히 아날로그 메모리 셀들에서의 데이터 저장을 위한 방법들 및 시스템들에 관한 것이다.
플래시 디바이스들과 같은 일부 메모리 디바이스들은 아날로그 메모리 셀들의 어레이들을 포함한다. 일부 경우들에서, 어레이에서의 이웃 메모리 셀들은 서로 크로스 커플링 간섭(cross-coupling interference)을 일으킬 수 있다. 메모리 디바이스들에서의 간섭을 줄이기 위한 다양한 기법들이 이 기술분야에 알려져 있다. 예시적인 기법들은 미국 특허 출원 공개 번호 2008/0198650, 2009/0024905, 2009/0158126, 2010/0131826에 설명되고, 그 개시들은 본원에 참고로 포함된다.
일부 메모리 시스템들은 크리티컬 정보를 보호하기 위한 수단을 이용한다. 예를 들어, 그 개시가 본원에 참고로 포함되는 미국 특허 출원 공개 번호 2009/0193184는 멀티 레벨 셀(Multi-Level-Cell; MLC) 또는 싱글 레벨 셀(Single-Level-Cell; SLC) 플래시 메모리, 또는 둘다를 갖는 하이브리드 고체 상태 디스크(Solid-State Disk; SSD)를 설명한다. SLC 플래시는 더 적은 셀 상태들을 이용하는 MLC에 의해 에뮬레이트될 수 있다. 더 적은 MLC 상태들이 이용되기 때문에 데이터 신뢰성은 향상되고, 노이즈 마진은 완화될 수 있다.
본원에 설명되는 본 발명의 실시예는 아날로그 메모리 셀들의 어레이를 포함하는 메모리에 데이터를 저장하기 위한 방법을 제공한다. 그룹 내의 각각의 메모리 셀이 상기 그룹으로부터 제외되는 상기 어레이 내의 하나 이상의 이웃 메모리 셀들을 갖도록, 상기 메모리 셀들의 그룹이 선택된다. 상기 메모리 셀들의 상기 그룹에 데이터가 저장되는 한 프로그래밍으로부터 상기 이웃 메모리 셀들을 제외시키면서 상기 메모리 셀들의 상기 그룹에 상기 데이터가 저장된다.
일부 실시예들에서, 상기 그룹을 선택하는 단계는, 상기 그룹 내의 각각의 메모리 셀의 모든 바로 옆의 이웃 메모리 셀들을 상기 그룹으로부터 제외시키는 단계를 포함한다. 상기 그룹을 선택하는 단계는, 상기 어레이의 적어도 일부에 대해, 홀수번째 워드 라인들에 속하는 모든 메모리 셀들 또는 짝수번째 워드 라인들에 속하는 모든 메모리 셀들을 상기 그룹으로부터 제외시키는 단계를 포함할 수 있다. 다른 실시예에서, 상기 그룹을 선택하는 단계는, 상기 어레이의 적어도 일부에 대해, 홀수번째 비트 라인들에 속하는 모든 메모리 셀들 또는 짝수번째 비트 라인들에 속하는 모든 메모리 셀들을 상기 그룹으로부터 제외시키는 단계를 포함한다.
개시된 실시예에서, 상기 그룹을 선택하는 단계는, 상기 그룹 내의 각각의 메모리 셀에 대해, 상기 메모리 셀에 인접하고 상기 메모리 셀과 동일한 워드 라인 또는 비트 라인에 속하는 임의의 이웃 메모리 셀들을 상기 그룹으로부터 제외시키는 단계를 포함한다. 또 다른 실시예에서, 상기 어레이 내의 상기 메모리 셀들은 셀당 n 비트들을 유지하도록 할당되고, 상기 데이터를 저장하는 단계는 셀당 k 비트들만을 사용하여 상기 그룹 내의 상기 메모리 셀들을 프로그래밍하는 단계를 포함하고, k<n이다.
일부 실시예들에서, 상기 데이터를 저장하는 단계는 각각의 워드 라인의 모든 메모리 셀들에 주어진 데이터 페이지를 저장하는 프로그래밍 커맨드들을 이용하여 상기 데이터를 기입하는 단계를 포함한다. 대안적인 실시예들에서, 상기 데이터를 저장하는 단계는 각각의 워드 라인의 홀수번째 또는 짝수번째 메모리 셀들에 주어진 데이터 페이지를 저장하는 프로그래밍 커맨드들을 이용하여 상기 데이터를 기입하는 단계를 포함한다.
일부 실시예들에서, 상기 데이터를 저장하는 단계는 상기 메모리 셀들의 상기 그룹에 민감한 정보를 저장하는 단계를 포함한다. 실시예에서, 상기 민감한 정보는 관리 정보 및/또는 파워 다운 정보를 포함한다. 개시된 실시예에서, 상기 데이터를 저장하는 단계는 상기 그룹 외부에 저장된 다른 데이터에 적용되지 않은 부가적인 보호 메커니즘을 상기 데이터에 적용하는 단계를 포함한다. 상기 부가적인 보호 메커니즘을 적용하는 단계는, 상기 다른 데이터에 비해 더 낮은 저장 밀도로 상기 데이터를 저장하는 단계; 상기 다른 데이터에 비해 더 강한 에러 정정 코드(Error Correction Code; ECC)로 상기 데이터를 인코딩하는 단계; 및/또는 상기 그룹 외부에 이용된 증분들에 비해 더 작은 증분만큼 증가시키는 프로그래밍 펄스들의 시퀀스를 이용하여 상기 그룹 내의 상기 메모리 셀들을 프로그래밍하는 단계를 포함할 수 있다.
본 발명의 실시예에 따라 부가적으로 인터페이스 및 저장 회로를 포함하는 데이터 저장 장치가 제공된다. 인터페이스는 아날로그 메모리 셀들의 어레이를 포함하는 메모리와 통신하도록 구성된다. 저장 회로는, 상기 메모리 셀들의 그룹을, 상기 그룹 내의 각각의 메모리 셀이 상기 그룹으로부터 제외되는 상기 어레이 내의 하나 이상의 이웃 메모리 셀들을 갖도록 선택하고, 데이터가 상기 메모리 셀들의 상기 그룹에 저장되는 한 프로그래밍으로부터 상기 이웃 메모리 셀들을 제외시키면서 상기 메모리 셀들의 상기 그룹에 상기 데이터를 저장하도록 구성된다.
또한, 본 발명의 실시예에 따라 메모리 및 저장 회로를 포함하는 데이터 저장 장치가 제공된다. 메모리는 아날로그 메모리 셀들의 어레이를 포함한다. 저장 회로는 상기 메모리 셀들의 그룹을, 상기 그룹 내의 각각의 메모리 셀이 상기 그룹으로부터 제외되는 상기 어레이 내의 하나 이상의 이웃 메모리 셀들을 갖도록 선택하고, 데이터가 상기 메모리 셀들의 상기 그룹에 저장되는 한 프로그래밍으로부터 상기 이웃 메모리 셀들을 제외시키면서 상기 메모리 셀들의 상기 그룹에 상기 데이터를 저장하도록 구성된다.
본 발명은 도면들과 함께 취할 때, 그의 실시예들에 대한 다음의 상세한 설명으로부터 더욱 완전히 이해될 것이다.
도 1은 본 발명의 실시예에 따른, 메모리 시스템을 개략적으로 예시하는 블록도.
도 2는 본 발명의 실시예에 따른, 데이터 저장을 위한 방법을 개략적으로 예시하는 플로우챠트.
개요
데이터는 통상적으로 전기 전하 레벨들 또는 전압들과 같은, 특정 아날로그 값들로 메모리 셀들을 프로그래밍함으로써 아날로그 메모리 셀들에 저장된다. 데이터는 아날로그 값들을 감지함으로써 메모리 셀들로부터 검색된다. 일부 경우들에서, 메모리 셀들은 서로에 대해 크로스 커플링 간섭을 가할 수 있다. 이 간섭은 메모리 셀들로부터 판독되는 아날로그 값들을 왜곡시키고 판독 에러들을 일으킬 수 있다.
본원에 설명되는 본 발명의 실시예들은 아날로그 메모리 셀들에 데이터를 저장하기 위한 향상된 방법들 및 시스템들을 제공한다. 개시된 기법들은 각각의 메모리 셀이 데이터로 프로그래밍되지 않은 채로 유지하는 하나 이상의 이웃 셀들을 갖도록, 메모리 셀들의 그룹을 성기게(sparsely) 프로그래밍함으로써 데이터를 저장한다. 이러한 종류의 프로그래밍은 메모리 셀의 간섭의 레벨이 통상적으로 그의 이웃들의 아날로그 값들의 크기들에 따라 증가하기 때문에, 크로스 커플링 간섭을 줄이는 데 도움이 된다.
몇몇 예들의 스파스 저장 스킴들(sparse storage schemes)이 이하에 설명된다. 개시된 스킴들은 예를 들어, 판독 시간에 크로스 커플링 간섭을 상쇄하는 스킴들과 비교하여, 구현이 간단하고 상당한 계산 부하를 초래하지 않는다. 본원에 설명된 스파스 저장 스킴들은 메모리 셀당 프로그래밍되지 않은 이웃들의 수에 있어 서로 상이하고, 따라서 데이터 신뢰성과 저장 밀도 사이에 상이한 트레이드 오프(trade-off)를 제공한다.
본원에 설명된 방법들 및 시스템들은, 워드 라인 내의 메모리 셀들의 상이한 서브세트들에 상이한 페이지들(예를 들어, 홀수번째 및 짝수번째 셀들에 상이한 페이지들)을 저장하는 메모리 디바이스들, 및 워드 라인의 모든 메모리 셀들에 페이지를 저장하는 모든 비트 라인(All Bit Line; ABL) 메모리 디바이스들에서 둘다 이용될 수 있다. 개시된 기법들은 특히 그의 손상이 대량의 저장된 데이터에 영향을 미칠 수 있는 관리 정보와 같은 민감한 정보를 저장하는 데 적합하다.
시스템 설명
도 1은 본 발명의 실시예에 따른, 메모리 시스템(20)을 개략적으로 예시하는 블록도이다. 시스템(20)은 컴퓨팅 디바이스들, 셀룰러 전화기들 또는 다른 통신 단말기들, 제거가능 메모리 모듈들(때때로 "USB 플래시 드라이브들"이라고 함), 고체 상태 디스크들(Solid State Disks; SSD), 디지털 카메라들, 음악 및 다른 미디어 플레이어들 및/또는 데이터가 저장되고 검색되는 임의의 다른 시스템 또는 디바이스와 같은, 다양한 호스트 시스템들 및 디바이스들에서 이용될 수 있다.
시스템(20)은 메모리 셀 어레이(28)에 데이터를 저장하는 메모리 디바이스(24)를 포함한다. 메모리 어레이는 복수의 메모리 블록들(34)을 포함한다. 각각의 메모리 블록(34)은 복수의 아날로그 메모리 셀들(32)을 포함한다. 본 특허 출원의 문맥에서 그리고 청구항들에서, "아날로그 메모리 셀"이라는 용어는 전기 전압 또는 전하와 같은 물리적 파라미터의 연속적인, 아날로그 값을 유지하는 임의의 메모리 셀을 설명하는 데 이용된다. 어레이(28)는 예를 들어, NAND, NOR 및 CTF(Charge Trap Flash) 플래시 셀들, 상 변화 RAM(PRAM, 상 변화 메모리 - PCM이라고도 함), 질화물 리드 온리 메모리(Nitride Read Only Memory; NROM), FRAM(Ferroelectric RAM), MRAM(magnetic RAM) 및/또는 DRAM(Dynamic RAM) 셀들과 같은 임의의 종류의 아날로그 메모리 셀들을 포함할 수 있다.
셀들에 저장된 전하 레벨들 및/또는 셀들에 기입되고 그로부터 판독된 아날로그 전압들 또는 전류들은 본원에서 집합적으로 아날로그 값들, 아날로그 저장 값들 또는 저장 값들이라고 한다. 저장 값들은 예를 들어, 임계 전압들 또는 임의의 다른 적합한 종류의 저장 값들을 포함할 수 있다. 시스템(20)은 프로그래밍 레벨들이라고도 하는 각각의 프로그래밍 상태들을 취하도록 셀들을 프로그래밍함으로써 아날로그 메모리 셀들에 데이터를 저장한다. 프로그래밍 상태들은 유한한 세트의 가능한 상태들로부터 선택되고, 각각의 프로그래밍 상태는 특정 공칭 저장 값에 대응한다. 예를 들어, 3 비트/셀 MLC는 8개의 가능한 공칭 저장 값들 중 하나를 셀 내로 기입함으로써 8개의 가능한 프로그래밍 상태들 중 하나를 취하도록 프로그래밍될 수 있다.
메모리 디바이스(24)는 판독/기입(R/W) 유닛(36)을 포함하고, 유닛(36)은 메모리 디바이스 내의 저장을 위한 데이터를 아날로그 저장 값들로 변환하고 그것들을 메모리 셀들(32) 내로 기입한다. 대안적인 실시예들에서, R/W 유닛은 변환을 수행하지 않지만, 전압 샘플들, 즉, 셀들에 저장을 위한 저장 값들을 제공받는다. 어레이(28)로부터 데이터를 판독할 때, R/W 유닛(36)은 메모리 셀들(32)의 저장 값들을 하나 이상의 비트들의 해상도를 갖는 디지털 샘플들로 변환한다. 데이터는 통상적으로 페이지라고 하는 그룹들 내의 메모리 셀들에 기입되고 그로부터 판독된다. 일부 실시예들에서, R/W 유닛은 셀들에 하나 이상의 네거티브 소거 펄스들(negative erasure pulses)을 인가함으로써 셀들(32)의 그룹을 소거할 수 있다. 소거는 통상적으로 전체 메모리 블록들에서 수행된다.
메모리 디바이스(24)에의 데이터의 저장 및 그로부터의 검색은 메모리 컨트롤러(40)에 의해 수행된다. 메모리 컨트롤러는 메모리 디바이스(24)와 통신하기 위한 인터페이스(44), 및 다양한 메모리 관리 기능들을 수행하는 프로세서(48)를 포함한다. 특히, 프로세서(48)는 아래에 상세히 설명되는 스파스, 고신뢰성 저장 스킴들(sparse, high-reliability storage schemes)을 이용하여 데이터의 적어도 일부를 저장한다.
메모리 컨트롤러(40)는 메모리 디바이스에의 저장을 위한 데이터를 받아들이고 메모리 디바이스로부터 검색된 데이터를 출력하기 위해, 호스트(52)와 통신한다. 메모리 컨트롤러(40), 특히 프로세서(48)는 하드웨어로 구현될 수 있다. 대안적으로, 메모리 컨트롤러는 적절한 소프트웨어, 또는 하드웨어와 소프트웨어 요소들의 결합을 가동하는(run) 마이크로프로세서를 포함할 수 있다.
도 1의 구성은 오로지 개념의 명확함을 위해 도시되는 예시적인 시스템 구성이다. 임의의 다른 적절한 메모리 시스템 구성이 또한 이용될 수 있다. 다양한 인터페이스들, 어드레싱 회로들(addressing circuits), 타이밍 및 시퀀싱 회로들(timing and sequencing circuits) 및 디버깅 회로들과 같은, 본 발명의 원리들을 이해하는 데 필요하지 않은 요소들은 명확함을 위해 도면에서 생략하였다.
도 1의 예는 단일 메모리 디바이스(24)를 도시하지만, 시스템(20)은 메모리 컨트롤러(40)에 의해 제어되는 복수의 메모리 디바이스들을 포함할 수 있다. 도 1에 도시된 예시적인 시스템 구성에서, 메모리 디바이스(24) 및 메모리 컨트롤러(40)는 2개의 개별 집적 회로(IC)로서 구현된다. 그러나, 대안적인 실시예들에서, 메모리 디바이스 및 메모리 컨트롤러는 싱글 멀티 칩 패키지(Multi-Chip Package; MCP) 또는 시스템 온 칩(System on Chip) 내의 개별 반도체 다이들 상에 집적될 수 있고, 내부 버스에 의해 상호접속될 수 있다. 또한 대안적으로, 메모리 컨트롤러 회로의 일부 또는 전부는 메모리 어레이가 배치되는 동일한 다이 상에 상주할 수 있다. 또한 대안적으로, 메모리 컨트롤러(40)의 기능의 일부 또는 전부는 소프트웨어로 구현될 수 있고 호스트 시스템의 프로세서 또는 다른 요소에 의해 실행될 수 있다. 일부 실시예들에서, 호스트(44) 및 메모리 컨트롤러(40)는 동일한 다이 상에, 또는 동일한 디바이스 패키지 내의 개별 다이들 상에 제조될 수 있다.
일부 실시예들에서, 메모리 컨트롤러(40)는 본원에 설명된 기능들을 실행하기 위해 소프트웨어로 프로그래밍되는, 범용 프로세서를 포함한다. 소프트웨어는 예를 들어 네트워크를 통해 전자 형태로 프로세서에 다운로드될 수 있거나, 또는 그것은 대안적으로 또는 부가적으로, 자기, 광학, 또는 전자 메모리와 같은, 비-일시적 유형의 매체에 저장 및/또는 제공될 수 있다.
어레이(28)의 예시적인 구성에서, 메모리 셀들(32)은 복수의 로우들 및 컬럼들로 배열되고, 각각의 메모리 셀은 부동 게이트 트랜지스터를 포함한다. 각각의 로우의 트랜지스터들의 게이트들은 워드 라인들에 의해 접속되고, 각각의 컬럼의 트랜지스터들의 소스들은 비트 라인들에 의해 접속된다. 메모리 어레이는 통상적으로 복수의 페이지, 즉, 동시에 프로그래밍되고 판독되는 메모리 셀들의 그룹들로 분할된다. 페이지들은 때때로 섹터들로 더 분할된다. 일부 실시예들에서, 각각의 페이지는 어레이의 전체 로우를 포함한다. 대안적인 실시예들에서, 각각의 로우(워드 라인)는 2개 이상의 페이지로 분할될 수 있다. 예를 들어, 일부 디바이스들에서 각각의 로우는 2개의 페이지로 분할되는데, 하나는 홀수번째(odd-order) 셀들을 포함하고, 다른 것은 짝수번째(even-order) 셀들을 포함한다.
통상적으로, 메모리 컨트롤러(40)는 페이지 단위들로 데이터를 프로그래밍하지만, 전체 메모리 블록들(34)을 소거한다. 통상적으로 반드시 그러한 것은 아니지만, 메모리 블록은 106 메모리 셀들 정도이고, 페이지는 103-104 메모리 셀들 정도이다.
스파스 프로그래밍을 이용한 고신뢰성 저장
메모리 어레이(28)에서의 주어진 메모리 셀(32)은 어레이 내의 이웃 메모리 셀들로부터 크로스 커플링 간섭을 받을 수 있다. 본 문맥에서, "이웃 메모리 셀"이라는 용어는 널리 이용되고 문제의 메모리 셀에 크로스 커플링 간섭을 잠재적으로 가하는 임의의 메모리 셀을 가리킨다. 이웃 메모리 셀들은 간섭된 메모리 셀(예를 들어, 동일한 비트 라인 상의 수직 이웃들, 동일한 워드 라인 상의 수평 이웃들 또는 대각선 이웃들), 또는 그럼에도 잠재적으로 간섭을 일으키는 비-인접 메모리 셀들에 바로 인접할 수 있다.
통상적으로, 특정 이웃 셀에 의해 야기되는 간섭의 레벨은 간섭하는 셀의 아날로그 값의 크기에 따라 증가한다. 따라서, 데이터로 프로그래밍되는 이웃 셀(및 특히 높은 아날로그 값에 대응하는 데이터로 프로그래밍되는 이웃 셀)은 통상적으로 프로그래밍되지 않은 메모리 셀보다 더 강한 간섭을 일으킬 것이다. 프로그래밍되지 않은 메모리 셀들은 보통 간섭을 거의 또는 전혀 일으키지 않는데, 그 이유는 그것들이 비교적 작은 네거티브 아날로그 값에 의해 표현되는 소거된 상태로 설정되기 때문이다.
본원에 설명되는 일부 실시예들에서, 프로세서(48)는 각각의 프로그램된 메모리 셀에 대해, 데이터로 프로그래밍되지 않은 하나 이상의 이웃 메모리 셀들을 유지하는 저장 스킴을 이용하여 특정 데이터를 저장한다. 다시 말해, 프로세서(48)는 데이터로 프로그래밍되는 각각의 메모리 셀이 저장되는 데이터가 프로그래밍 셀들에 유지되는 한 프로그래밍되지 않은 채로 유지되는 하나 이상의 이웃 셀들을 갖도록 데이터를 저장한다. 이러한 저장 스킴들은 본원에서 스파스 저장 스킴들이라고 한다. 다음의 설명에서, 스파스 저장 스킴은 메모리 컨트롤러 내의 프로세서(48)에 의해 정의되고 적용된다. 그러나, 대안적인 실시예들에서, 저장 스킴은 메모리 디바이스에서 R/W 유닛(36)에 의해 적용될 수 있다. 따라서, 프로세서(48) 및/또는 유닛(36)은 개시된 저장 기법들을 실행하는 저장 회로로서 본원에서 집합적으로 지칭된다.
일부 실시예들에서, 프로세서(48)는 메모리 셀들의 선택된 그룹, 예를 들어, 워드 라인들의 세트 또는 메모리 블록에 스파스 저장 스킴을 적용한다. 이 메모리 셀들의 그룹 내에서, 프로세서(48)는 프로그래밍을 위한 메모리 셀들의 부분적인 서브세트를, 서브세트의 각각의 메모리 셀이 서브세트로부터 제외되는 적어도 하나의 이웃 셀을 갖도록, 선택한다. 프로세서(48)는 데이터로 프로그래밍되지 않은 제외된 메모리 셀들을 유지하면서 부분적인 서브세트 내의 메모리 셀들을 프로그래밍함으로써 그룹에 데이터를 저장한다. 스파스 프로그래밍의 결과로서, 각각의 프로그래밍된 메모리 셀은 비교적 낮은 크로스 커플링 간섭을 겪고, 따라서 판독 에러 확률이 감소된다.
다양한 실시예들에서, 프로세서(48)는 다양한 종류의 스파스 프로그래밍 스킴들을 이용할 수 있다. 아래 주어진 예들에서, 메모리 셀들(32)은 4 레벨 메모리 셀들을 포함하고, 각각은 2 비트의 데이터를 저장한다. 각각의 메모리 셀에서, 하나의 비트는 최하위 비트(Least Significant Bit; LSB)라고 하고 하나의 비트는 최상위 비트(Most Significant Bit; MSB)라고 한다. 각각의 워드 라인을 따르는 메모리 셀들은 짝수번째 및 홀수번째 셀들(즉, 짝수 및 홀수번째 비트 라인들에 각각 속하는 메모리 셀들)로 분할된다. 메모리 컨트롤러는 짝수번째 셀들에 2개의 메모리 페이지(LSB 및 MSB 페이지라고 함), 및 홀수번째 셀들에 2개의 부가적인 메모리 페이지(LSB 및 MSB)를 저장한다. 그러나, 이 구성은 오로지 예로서 선택된 것이다. 대안적인 실시예들에서, 임의의 다른 적절한 메모리 구성이 이용될 수 있다.
일 실시예에서, 프로세서(48)는 다음의 표에 정의되는 스파스 저장 스킴을 적용한다:
Figure 112012038698067-pat00001
이 스킴에서, 페이지가 먼저 워드 라인 0 상의 짝수번째 비트 라인들의 LSB 페이지에 기입되고 나서, 워드 라인 0 상의 짝수번째 비트 라인들의 MSB 페이지에 기입되고, 그 다음에 워드 라인 2 상의 짝수번째 비트 라인들의 LSB 페이지에 기입되고 나서, 워드 라인 2 상의 짝수번째 비트 라인들의 MSB 페이지에 기입되는 등등 된다. 홀수번째 워드 라인들 및 홀수번째 비트 라인들은 전혀 프로그래밍되지 않는다.
표에서 알 수 있는 바와 같이, (짝수번째 워드 라인들 및 짝수번째 비트 라인들의 교차점들 상의) 프로그래밍된 메모리 셀들은 데이터로 프로그래밍되는 바로 옆의 이웃들(즉, 대각선으로, 수직으로 또는 수평으로, 메모리 셀에 직접 인접하는 셀들)을 갖지 않는다. 따라서, 메모리 셀들은 거의 또는 전혀 크로스 커플링 간섭을 경험하지 않는다. 다른 한편으로, 이 스킴은 메모리의 용량의 25%에만 데이터를 저장한다 - 메모리 셀들의 1/4만이 실제로 프로그래밍되기 때문이다.
다른 실시예에서, 프로세서(48)는 다음의 표에 정의되는 스파스 저장 스킴을 적용한다:
Figure 112012038698067-pat00002
이 스킴에서, 데이터는 짝수번째 워드 라인들 상의 짝수번째 비트 라인들의 LSB 페이지들에만 프로그래밍된다. 이전 스킴에서와 같이, 본 스킴에서의 프로그래밍된 메모리 셀들은 데이터로 프로그래밍되는 인접하는 이웃들을 갖지 않는다. 따라서, 메모리 셀들은 거의 또는 전혀 크로스 커플링 간섭을 경험하지 않는다. 또한, 본 스킴은 (LSB 페이지만을 저장하고 MSB 페이지는 저장하지 않는 것에 의해) 2 비트들/셀 대신에 1 비트/셀의 감소된 밀도로 데이터를 저장하고, 따라서 판독 에러들에 대해 더욱 회복력이 있다. 높은 회복력은 감소된 용량의 희생으로 생긴다 - 본 스킴은 메모리 용량의 12.5%를 이용한다.
또 다른 실시예에서, 프로세서(48)는 다음의 표에 정의되는 스파스 저장 스킴을 적용한다:
Figure 112012038698067-pat00003
이 스킴에서도, 짝수번째 워드 라인들만이 프로그래밍된다. 메모리 페이지들은 워드 라인이 완전히 프로그래밍될 때까지 짝수번째 및 홀수번째 비트 라인들에 교대로 기입되며, 그 후 프로그래밍은 다음 워드 라인으로 진행된다. 본 예에서, 워드 라인 0은 먼저 4개의 페이지로 프로그래밍된다: 짝수번째 비트 라인들의 LSB 페이지에 페이지가 기입되고, 홀수번째 비트 라인들의 LSB 페이지에 제2 페이지가 기입되고 나서, 짝수번째 비트 라인들의 MSB 페이지에 페이지가 기입되고, 홀수번째 비트 라인들의 MSB 페이지에 제4 페이지가 기입된다. 프로세스는 (워드 라인 1을 스킵하고) 워드 라인 2에 대해 반복되며, 이후 계속된다.
이 스파스 저장 스킴에서, 메모리 셀들은 일부 수평 크로스 커플링 간섭을 겪을 수 있는데, 그 이유는 각각의 프로그래밍된 메모리 셀의 수평 이웃들도 프로그래밍되기 때문이다. 그러나, 수직 및 대각선 간섭은 제거된다. 이 스킴은 메모리 용량의 50%를 이용한다.
다른 대안적인 실시예에서, 프로세서(48)는 다음의 표에 정의되는 스파스 저장 스킴을 적용한다:
Figure 112012038698067-pat00004
이 스킴에서, 프로세서(48)는 짝수번째 워드 라인들 상에 짝수번째 비트 라인들, 및 홀수번째 워드 라인들 상에 홀수번째 비트 라인들을 프로그래밍한다. LSB 및 MSB 페이지들 둘다가 프로그래밍된다. 이 스파스 저장 스킴에서, 수직 및 수평 이웃 셀들은 프로그래밍되지 않지만, 대각선 이웃들은 프로그래밍된다. 이 스킴은 메모리 용량의 50%를 이용한다. (대안적이지만 등가의 실시예에서, 프로세서(48)는 홀수번째 워드 라인들 상에 짝수번째 비트 라인들, 및 짝수번째 워드 라인들 상에 홀수번째 비트 라인들을 프로그래밍할 수 있다.)
또 다른 실시예에서, 프로세서(48)는 다음의 표에 정의되는 스파스 저장 스킴을 적용한다:
Figure 112012038698067-pat00005
이 스킴은 LSB 페이지들만이 프로그래밍된다는 것 이외에, 이전 예와 유사하다. 이 스파스 저장 스킴은 메모리 용량의 25%만을 이용하는 것을 희생하여, 간섭에 대해 향상된 회복력을 갖는다. 이전 스킴에서와 같이, 대안적인 실시예에서, 프로세서(48)는 홀수번째 워드 라인들 상에 짝수번째 비트 라인들, 및 짝수번째 워드 라인들 상에 홀수번째 비트 라인들을 프로그래밍할 수 있다.
전술한 예시적인 스파스 프로그래밍 스킴들은 오로지 개념의 명확함을 위해 선택된다. 대안적인 실시예들에서, 각각의 프로그래밍된 메모리 셀에 대해 적어도 하나의 프로그래밍되지 않은 이웃 셀을 유지하는, 임의의 다른 적절한 프로그래밍 스킴이 이용될 수 있다. 예를 들어, 전술한 스킴들은 주어진 워드 라인에서 짝수 및 홀수번째 메모리 셀들을 프로그래밍하기 위한 개별 페이지 기입 커맨드들을 지원하는 메모리에 적용된다.
일부 실시예들에서, 개시된 기법들은 예를 들어, 하나 걸러 메모리 셀을 프로그래밍함으로써, 동일한 커맨드 내의 주어진 워드 라인의 모든 메모리 셀들을 프로그래밍하는 메모리 디바이스들(때때로 모든 비트 라인들 - ABL - 디바이스들이라고 함)에서 이용된다. 이 기법은 수평 크로스 커플링 간섭, 즉, 간섭된 셀과 동일한 워드 라인 상의 수평 이웃들로부터의 간섭을 줄이는 데 도움이 된다.
일부 실시예들에서, 프로세서(48)는 민감하지 않은 정보와 달리, 민감한 정보의 저장 신뢰성을 증가시키기 위해 본원에 설명된 스파스 프로그래밍 스킴들을 이용한다. 이들 실시예들에서, 이들 기법들은 보통 메모리 용량의 희생으로 생기기 때문에, 스파스 프로그래밍의 이용은 민감한 정보로 한정된다. 이와 같이, 개시된 기법들은 어레이(28)의 특정 영역들에서, 예를 들어, 각각의 블록(34) 내의 워드 라인들의 특정 세트들에서 이용될 수 있다. 메모리의 다른 영역들에서, 프로세서(48)는 모든 메모리 셀을 이용하면서 민감하지 않은 데이터를 저장할 수 있다. 그럼에도, 대안적인 실시예들에서, 개시된 기법들은 원하는 경우, 일부 또는 심지어 모든 민감하지 않은 데이터를 저장하기 위해 이용될 수 있다.
개시된 기법들은 프로세서(48)로 하여금 높은 신뢰성을 갖지만, 에러 정정 코드(Error Correction Code; ECC) 리던던시(redundancy)를 거의 또는 전혀 갖지 않는 데이터를 저장할 수 있게 한다. 예를 들어, 97% 정도의 ECC 레이트를 이용하는 개시된 기법들은 25% 레이트를 갖는 ECC의 유효 세기 및 종래의 프로그래밍 스킴들을 실현할 수 있다. 이러한 종류의 구성은 프로그래밍 중에(적은 데이터가 프로그래밍될수록, 적은 리소스들 및 레이턴시가 ECC 인코딩에 소비됨) 그리고 판독 중에(적은 데이터가 판독될수록, 적은 리소스들 및 레이턴시가 ECC 디코딩에 소비됨) 둘다 성능 이득들을 갖는다.
민감한 정보는, 그것의 손실 또는 손상이 대량의 저장된 데이터에 영향을 주거나, 또는 그것의 손실 또는 손상이 그 특정 정보의 손실을 넘어 부가적인 손상 또는 성능 저하를 일으킬 수 있는 임의의 정보를 포함할 수 있다. 민감한 정보의 특정 예들은 (특히 부트 시간이 제한되는 경우, 부트 코드 판독 시간을 제한하기 위해서) 부트 코드와 같은 관리 데이터, 또는 통상적으로 신뢰성이 높아야 하고 프로그램 시간이 중요한 파워 다운 데이터를 포함할 수 있다. 민감하지 않은 정보는 예를 들어, 호스트로부터 수신되는 사용자 데이터를 포함할 수 있다. 대안적으로, 프로세서(48)는 임의의 다른 적절한 타입의 정보를 저장하기 위한 스파스 프로그래밍을 이용할 수 있다.
일부 실시예들에서, 프로세서(48)는 저장 신뢰성을 증가시키는 하나 이상의 부가적인 보호 메커니즘들과 스파스 프로그래밍 스킴을 결합한다. 통상적으로, 부가적인 보호 메커니즘은 스파스 저장용 이외로 이용되지 않는다. 예를 들어, 프로세서(48)는 데이터를 스파스하게(sparsely), 또한 메모리 셀들(32)에 지정된 셀당 비트들의 수보다 적은 셀당 비트들을 이용하여 저장할 수 있다. 예를 들어, 프로세서(48)가 n 비트들/셀을 이용하여, 예를 들어, 2n개의 프로그래밍 레벨들을 이용하여, 메모리 셀들(32)에 사용자 데이터를 저장하는 시스템을 고려한다. 일부 실시예들에서, 프로세서(48)는 스파스 프로그래밍을 이용하여, 또한 오직 k 비트들/셀(2k개의 프로그래밍 레벨들)을 이용하여 민감한 정보를 저장할 수 있고, k<n이다.
다른 예로서, 프로세서(48)가 특정 리던던시 레벨(예를 들어, 특정 코드 레이트)을 갖는 ECC로 사용자 데이터를 인코딩하는 시스템을 고려한다. 일부 실시예들에서, 프로세서(48)는 스파스 프로그래밍을 이용하여 민감한 정보를 저장하고 또한 더 높은 리던던시 레벨(예를 들어, 더 낮은 코드 레이트)을 갖는 ECC를 사용하여 민감한 정보를 인코딩할 수 있다.
또 다른 예로서, R/W 유닛(36)이 반복 프로그래밍 및 검증(Programming and Verification; P&V) 프로세스에서 메모리 셀들(32)을 프로그래밍하는 시스템을 고려한다. 이러한 프로세스에서, R/W 유닛은 크기 및/또는 지속기간(duration)이 점진적으로 증가하는 프로그래밍 펄스들의 시퀀스를 메모리 셀들의 그룹에 적용한다. 메모리 셀들의 아날로그 값들은 프로그래밍 시퀀스 동안 검증되고, 후속 펄스들은 그것들의 의도된 아날로그 값들에 아직 도달하지 않은 메모리 셀들에만 적용된다.
일부 실시예들에서, 프로세서(48)는 펄스마다 특정 크기 및/또는 지속기간 증분(increment)만큼 증가되는 펄스 시퀀스를 이용하여 메모리 셀들을 프로그래밍함으로써 사용자 데이터를 저장하고, 펄스마다 더 작은 증분만큼 증가되는 펄스 시퀀스를 이용하여 메모리 셀들을 프로그래밍함으로써 민감한 정보를 저장할 수 있다. 통상적으로, 더 작은 증분은 프로그래밍 속도를 희생하여, 저장 정확성을 증가시킨다.
일부 실시예들에서, 프로세서(48)는 전술한 보호 메커니즘들의 임의의 적절한 결합, 또는 스파스 프로그래밍과 함께 저장 신뢰성을 증가시키기 위한 임의의 다른 적절한 보호 메커니즘을 적용할 수 있다.
도 2는 본 발명의 실시예에 따른, 데이터 저장을 위한 방법을 개략적으로 예시하는 플로우챠트이다. 방법은 정보 발생 단계(60)에서, 메모리 컨트롤러(40)의 프로세서(48)가 메모리 디바이스(24)에 저장될 민감한 정보를 생성하는 단계로 시작된다.
프로세서(48)는 선택 단계(64)에서, 민감한 정보를 저장하기 위한 메모리 셀들의 스파스 서브세트를 선택한다. 실시예에서, 프로세서(48)는 민감한 정보를 저장하기 위한, 특정 그룹의 메모리 셀들, 예를 들어, 워드 라인들의 세트를 할당한다. 이 그룹 내에서, 프로세서(48)는 실제로 프로그램될 메모리 셀들의 부분적인 서브세트를 선택한다. 그룹 내의 다른 메모리 셀들은 민감한 정보가 부분적인 서브세트에 저장되는 한 프로그래밍으로부터 제외될 것이다.
부분적인 서브세트는 (프로그래밍될) 서브세트 내의 각각의 셀이 프로그래밍으로부터 제외될 그룹 내의 적어도 하나의 이웃 셀을 갖도록 선택된다. 프로세서(48)는 전술한 예시적인 스킴들과 같은, 임의의 적절한 스파스 프로그래밍 스킴에 따라 부분적인 서브세트를 선택할 수 있다. 프로세서(48)는 스파스 프로그래밍 단계(68)에서, 메모리 셀들의 선택된 서브세트에 민감한 정보를 저장한다.
본원에 설명된 실시예들은 플래시 메모리와 같은 아날로그 메모리 셀들의 디바이스들을 주로 다루지만, 본원에 설명된 방법들 및 시스템들은 또한 3차원 메모리 디바이스들과 같은, 다른 응용들에 이용될 수 있다.
따라서 전술한 실시예들은 예시에 의해 인용되고, 본 발명은 앞에 구체적으로 설명되고 도시된 것으로 한정되지 않는다는 것을 알 것이다. 오히려, 본 발명의 범위는 전술한 설명을 읽으면 이 기술분야의 통상의 기술자들에게 일어날 수 있고, 종래 기술에 개시되지 않은 그의 변형들 및 수정들뿐만 아니라, 앞에 설명된 다양한 특징들의 결합들 및 서브 결합들을 둘다 포함한다. 임의의 용어들이 본 명세서에서 명백히 또는 함축적으로 행해진 정의들과 충돌하는 방식으로 이들 포함된 문서들에 정의되는 정도까지 본 명세서의 정의들만이 고려되어야 한다는 것을 제외하고, 본 특허 출원에 참고로 포함되는 문서들은 출원의 필수 부분으로서 고려된다.
20: 메모리 시스템
24: 메모리 디바이스
28: 메모리 어레이
32: 메모리 셀들
34: 메모리 블록들
36: R/W 유닛
40: 메모리 컨트롤러
44: 인터페이스
48: 프로세서
52: 호스트

Claims (25)

  1. 데이터 저장을 위한 방법으로서,
    아날로그 메모리 셀들의 어레이를 포함하는 메모리에서, 상기 메모리 셀들의 그룹을 선택하는 단계 - 상기 그룹 내의 각각의 메모리 셀은 상기 그룹으로부터 제외되는 상기 어레이 내의 하나 이상의 이웃 메모리 셀들을 가짐 - ;
    상기 메모리 셀들의 상기 그룹에 데이터가 저장되는 한, 상기 이웃 메모리 셀들을 프로그래밍으로부터 제외시키면서 상기 메모리 셀들의 상기 그룹에 데이터를 저장하는 단계;
    상기 메모리 셀들의 또 다른 그룹을 선택하는 단계; 및
    상기 메모리 셀들의 상기 또 다른 그룹에 데이터를 저장하는 단계를 포함하고,
    상기 메모리 셀들의 상기 그룹에 데이터를 저장하는 것은 제1 증분(increment) 씩 증가하는 프로그래밍 펄스들의 시퀀스를 이용하여 상기 그룹 내의 상기 메모리 셀들을 프로그래밍하는 것을 포함하고,
    상기 메모리 셀들의 상기 또 다른 그룹에 데이터를 저장하는 것은 제2 증분 씩 증가하는 프로그래밍 펄스들의 시퀀스를 이용하여 상기 또 다른 그룹 내의 상기 메모리 셀들을 프로그래밍하는 것을 포함하고,
    상기 제1 증분은 상기 제2 증분보다 작은, 데이터 저장 방법.
  2. 제1항에 있어서, 상기 그룹을 선택하는 단계는, 상기 그룹 내의 각각의 메모리 셀의 모든 바로 옆의 이웃 메모리 셀들을 상기 그룹으로부터 제외시키는 단계를 포함하는 데이터 저장 방법.
  3. 제1항에 있어서, 상기 그룹을 선택하는 단계는, 상기 어레이의 적어도 일부에 대해, 홀수번째(odd-order) 워드 라인들에 속하는 모든 메모리 셀들 또는 짝수번째(even-order) 워드 라인들에 속하는 모든 메모리 셀들을 상기 그룹으로부터 제외시키는 단계를 포함하는 데이터 저장 방법.
  4. 제1항에 있어서, 상기 그룹을 선택하는 단계는, 상기 어레이의 적어도 일부에 대해, 홀수번째 비트 라인들에 속하는 모든 메모리 셀들 또는 짝수번째 비트 라인들에 속하는 모든 메모리 셀들을 상기 그룹으로부터 제외시키는 단계를 포함하는 데이터 저장 방법.
  5. 제1항에 있어서, 상기 그룹을 선택하는 단계는, 상기 그룹 내의 각각의 메모리 셀에 대해, 상기 메모리 셀에 인접하고 상기 메모리 셀과 동일한 워드 라인 또는 비트 라인에 속하는 임의의 이웃 메모리 셀들을 상기 그룹으로부터 제외시키는 단계를 포함하는 데이터 저장 방법.
  6. 제1항 내지 제5항 중 어느 한 항에 있어서, 상기 어레이 내의 상기 메모리 셀들은 셀당 n 비트들을 유지하도록 할당되고, 상기 데이터를 저장하는 단계는 셀당 k 비트들만을 이용하여 상기 그룹 내의 상기 메모리 셀들을 프로그래밍하는 단계를 포함하고, k<n인 데이터 저장 방법.
  7. 제1항 내지 제5항 중 어느 한 항에 있어서, 상기 데이터를 저장하는 단계는 각각의 워드 라인의 모든 메모리 셀들에 주어진 데이터 페이지를 저장하는 프로그래밍 커맨드들을 이용하여 상기 데이터를 기입하는 단계를 포함하는 데이터 저장 방법.
  8. 제1항 내지 제5항 중 어느 한 항에 있어서, 상기 데이터를 저장하는 단계는 각각의 워드 라인의 홀수번째 또는 짝수번째 메모리 셀들에 주어진 데이터 페이지를 저장하는 프로그래밍 커맨드들을 이용하여 상기 데이터를 기입하는 단계를 포함하는 데이터 저장 방법.
  9. 제1항 내지 제5항 중 어느 한 항에 있어서, 상기 데이터를 저장하는 단계는 상기 메모리 셀들의 상기 그룹에 민감한 정보를 저장하는 단계를 포함하는 데이터 저장 방법.
  10. 제9항에 있어서, 상기 민감한 정보는 관리 정보 및 파워 다운 정보로 이루어지는 타입들의 그룹으로부터 선택된 적어도 하나의 정보 타입을 포함하는 데이터 저장 방법.
  11. 제1항 내지 제5항 중 어느 한 항에 있어서, 상기 데이터를 저장하는 단계는 상기 그룹 외부에 저장된 다른 데이터에 적용되지 않은 부가적인 보호 메커니즘을 상기 데이터에 적용하는 단계를 포함하는 데이터 저장 방법.
  12. 제11항에 있어서, 상기 부가적인 보호 메커니즘을 적용하는 단계는,
    상기 다른 데이터에 비해 더 낮은 저장 밀도로 상기 데이터를 저장하는 동작; 및
    상기 다른 데이터에 비해 더 강한 에러 정정 코드(Error Correction Code; ECC)를 사용하여 상기 데이터를 인코딩하는 동작을 포함하는 동작들의 그룹으로부터 선택된 적어도 하나의 동작을 수행하는 단계를 포함하는 데이터 저장 방법.
  13. 데이터 저장 장치로서,
    아날로그 메모리 셀들의 어레이를 포함하는 메모리와 통신하도록 구성되는 인터페이스; 및
    저장 회로를 포함하고, 상기 저장 회로는,
    상기 메모리 셀들의 그룹을 선택하도록 구성되고 - 상기 그룹 내의 각각의 메모리 셀은 상기 그룹으로부터 제외되는 상기 어레이 내의 하나 이상의 이웃 메모리 셀들을 가짐 -,
    상기 메모리 셀들의 또 다른 그룹을 선택하도록 구성되고,
    상기 메모리 셀들의 상기 그룹에 데이터를 저장하도록 구성되고 - 상기 데이터가 상기 메모리 셀들의 상기 그룹에 저장되는 한, 상기 이웃 메모리 셀들을 프로그래밍으로부터 제외시킴 -,
    상기 메모리 셀들의 상기 또 다른 그룹에 데이터를 저장하도록 구성되고,
    상기 메모리 셀들의 상기 그룹에 데이터를 저장하기 위해, 상기 저장 회로는 제1 증분(increment) 씩 증가하는 프로그래밍 펄스들의 시퀀스를 이용하여 상기 그룹 내의 상기 메모리 셀들을 프로그래밍하도록 더 구성되고,
    상기 메모리 셀들의 상기 또 다른 그룹에 데이터를 저장하기 위해, 상기 저장 회로는 제2 증분 씩 증가하는 프로그래밍 펄스들의 시퀀스를 이용하여 상기 또 다른 그룹 내의 상기 메모리 셀들을 프로그래밍하도록 더 구성되고,
    상기 제1 증분은 상기 제2 증분보다 작은, 데이터 저장 장치.
  14. 제13항에 있어서, 상기 저장 회로는 상기 그룹 내의 각각의 메모리 셀의 모든 바로 옆의 이웃 메모리 셀들을 상기 그룹으로부터 제외시키도록 구성되는 데이터 저장 장치.
  15. 제13항에 있어서, 상기 어레이의 적어도 일부에 대해, 상기 저장 회로는 홀수번째 워드 라인들에 속하는 모든 메모리 셀들 또는 짝수번째 워드 라인들에 속하는 모든 메모리 셀들을 상기 그룹으로부터 제외시키도록 구성되는 데이터 저장 장치.
  16. 제13항에 있어서, 상기 어레이의 적어도 일부에 대해, 상기 저장 회로는 홀수번째 비트 라인들에 속하는 모든 메모리 셀들 또는 짝수번째 비트 라인들에 속하는 모든 메모리 셀들을 상기 그룹으로부터 제외시키도록 구성되는 데이터 저장 장치.
  17. 제13항에 있어서, 상기 저장 회로는, 상기 그룹 내의 각각의 메모리 셀에 대해, 상기 메모리 셀에 인접하고 상기 메모리 셀과 동일한 워드 라인 또는 비트 라인에 속하는 임의의 이웃 메모리 셀들을 상기 그룹으로부터 제외시키도록 구성되는 데이터 저장 장치.
  18. 제13항 내지 제17항 중 어느 한 항에 있어서, 상기 어레이 내의 상기 메모리 셀들은 셀당 n 비트들을 유지하도록 할당되고, 상기 저장 회로는 셀당 k 비트들만을 이용하여 상기 그룹 내의 상기 메모리 셀들을 프로그래밍함으로써 상기 데이터를 저장하도록 구성되고, k<n인 데이터 저장 장치.
  19. 제13항 내지 제17항 중 어느 한 항에 있어서, 상기 저장 회로는 각각의 워드 라인의 모든 상기 메모리 셀들에 주어진 데이터 페이지를 저장하는 프로그래밍 커맨드들을 이용하여 상기 데이터를 저장하도록 구성되는 데이터 저장 장치.
  20. 제13항 내지 제17항 중 어느 한 항에 있어서, 상기 저장 회로는 각각의 워드 라인의 홀수번째 또는 짝수번째 메모리 셀들에 주어진 데이터 페이지를 저장하는 프로그래밍 커맨드들을 이용하여 상기 데이터를 저장하도록 구성되는 데이터 저장 장치.
  21. 제13항 내지 제17항 중 어느 한 항에 있어서, 상기 저장 회로는 상기 이웃 메모리 셀들을 제외시키면서 상기 메모리 셀들의 상기 그룹에 민감한 정보를 저장하도록 구성되는 데이터 저장 장치.
  22. 제21항에 있어서, 상기 민감한 정보는 관리 정보 및 파워 다운 정보로 이루어지는 타입들의 그룹으로부터 선택된 적어도 하나의 정보 타입을 포함하는 데이터 저장 장치.
  23. 제13항 내지 제17항 중 어느 한 항에 있어서, 상기 저장 회로는 상기 그룹 외부에 저장된 다른 데이터에 적용되지 않은 부가적인 보호 메커니즘을 상기 데이터에 적용하도록 구성되는 데이터 저장 장치.
  24. 제23항에 있어서, 상기 저장 회로는,
    상기 다른 데이터에 비해 더 낮은 저장 밀도로 상기 데이터를 저장하는 동작; 및
    상기 다른 데이터에 비해 더 강한 에러 정정 코드(ECC)를 이용하여 상기 데이터를 인코딩하는 동작을 포함하는 동작들의 그룹으로부터 선택된 적어도 하나의 동작을 수행함으로써 상기 부가적인 보호 메커니즘을 적용하도록 구성되는 데이터 저장 장치.
  25. 삭제
KR1020120051390A 2011-05-16 2012-05-15 아날로그 메모리 셀들의 스파스 프로그래밍 KR101343698B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201161486330P 2011-05-16 2011-05-16
US61/486,330 2011-05-16
US13/338,335 US20120297116A1 (en) 2011-05-16 2011-12-28 Sparse programming of analog memory cells
US13/338,335 2011-12-28

Publications (2)

Publication Number Publication Date
KR20120128103A KR20120128103A (ko) 2012-11-26
KR101343698B1 true KR101343698B1 (ko) 2013-12-20

Family

ID=46245823

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120051390A KR101343698B1 (ko) 2011-05-16 2012-05-15 아날로그 메모리 셀들의 스파스 프로그래밍

Country Status (5)

Country Link
US (1) US20120297116A1 (ko)
EP (1) EP2525360B1 (ko)
KR (1) KR101343698B1 (ko)
TW (1) TWI505273B (ko)
WO (1) WO2012156889A1 (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8649200B2 (en) * 2011-01-27 2014-02-11 Apple Inc. Enhanced programming and erasure schemes for analog memory cells
CN104115231B (zh) * 2011-12-23 2017-12-26 英特尔公司 用于确定对存储器阵列的访问的方法、装置和系统
US9696918B2 (en) 2014-07-13 2017-07-04 Apple Inc. Protection and recovery from sudden power failure in non-volatile memory devices
US10734084B2 (en) 2018-05-31 2020-08-04 Western Digital Technologies, Inc. Scheme to reduce read disturb for high read intensive blocks in non-volatile memory
US11373714B2 (en) * 2018-08-21 2022-06-28 Micron Technology, Inc. Reduced proximity disturb management via media provisioning and write tracking
US11556416B2 (en) 2021-05-05 2023-01-17 Apple Inc. Controlling memory readout reliability and throughput by adjusting distance between read thresholds
US11847342B2 (en) 2021-07-28 2023-12-19 Apple Inc. Efficient transfer of hard data and confidence levels in reading a nonvolatile memory

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1892720A1 (en) 2006-08-24 2008-02-27 STMicroelectronics S.r.l. A non-volatile, electrically-programmable memory with a plurality of storage densities and data transfer speeds
US20110044102A1 (en) 2009-08-19 2011-02-24 Yingda Dong Selective memory cell program and erase

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7333364B2 (en) * 2000-01-06 2008-02-19 Super Talent Electronics, Inc. Cell-downgrading and reference-voltage adjustment for a multi-bit-cell flash memory
US20090193184A1 (en) 2003-12-02 2009-07-30 Super Talent Electronics Inc. Hybrid 2-Level Mapping Tables for Hybrid Block- and Page-Mode Flash-Memory System
WO2007132457A2 (en) 2006-05-12 2007-11-22 Anobit Technologies Ltd. Combined distortion estimation and error correction coding for memory devices
CN103280239B (zh) 2006-05-12 2016-04-06 苹果公司 存储设备中的失真估计和消除
WO2008026203A2 (en) 2006-08-27 2008-03-06 Anobit Technologies Estimation of non-linear distortion in memory devices
US7706182B2 (en) * 2006-12-03 2010-04-27 Anobit Technologies Ltd. Adaptive programming of analog memory cells using statistical characteristics
US8259497B2 (en) * 2007-08-06 2012-09-04 Apple Inc. Programming schemes for multi-level analog memory cells
US8174905B2 (en) * 2007-09-19 2012-05-08 Anobit Technologies Ltd. Programming orders for reducing distortion in arrays of multi-level analog memory cells
US8209588B2 (en) 2007-12-12 2012-06-26 Anobit Technologies Ltd. Efficient interference cancellation in analog memory cell arrays
US7924587B2 (en) * 2008-02-21 2011-04-12 Anobit Technologies Ltd. Programming of analog memory cells using a single programming pulse per state transition

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1892720A1 (en) 2006-08-24 2008-02-27 STMicroelectronics S.r.l. A non-volatile, electrically-programmable memory with a plurality of storage densities and data transfer speeds
US20110044102A1 (en) 2009-08-19 2011-02-24 Yingda Dong Selective memory cell program and erase

Also Published As

Publication number Publication date
WO2012156889A1 (en) 2012-11-22
TW201248633A (en) 2012-12-01
EP2525360B1 (en) 2021-03-10
US20120297116A1 (en) 2012-11-22
TWI505273B (zh) 2015-10-21
EP2525360A3 (en) 2013-04-03
EP2525360A2 (en) 2012-11-21
KR20120128103A (ko) 2012-11-26

Similar Documents

Publication Publication Date Title
US8914670B2 (en) Redundancy schemes for non-volatile memory using parity zones having new and old parity blocks
US8174905B2 (en) Programming orders for reducing distortion in arrays of multi-level analog memory cells
US8964466B2 (en) Storage at M bits/cell density in N bits/cell analog memory cell devices, M&gt;N
KR101792868B1 (ko) 플래시 메모리 장치 및 그것의 읽기 방법
KR101343698B1 (ko) 아날로그 메모리 셀들의 스파스 프로그래밍
US20120262971A1 (en) Selective Activation of Programming Schemes in Analog Memory Cell Arrays
US8493781B1 (en) Interference mitigation using individual word line erasure operations
WO2009037691A2 (en) Programming orders for reducing distortion in arrays of multi-level analog memory cells
US8300478B2 (en) Reducing distortion using joint storage
US9811284B2 (en) One-pass programming in a multi-level nonvolatile memory device with improved write amplification
US9105311B2 (en) Inter-word-line programming in arrays of analog memory cells
WO2023028846A1 (zh) 存储器、存储器的编程方法及编程验证方法、存储器系统
US9230680B2 (en) Applications for inter-word-line programming
US11935599B2 (en) Burst programming of a NAND flash cell
US20230402113A1 (en) Data latch programming algorithm for multi-bit-per-cell memory devices
US11955182B2 (en) Adaptive pre-programming
US9263135B2 (en) Programming schemes for 3-D non-volatile memory
US20230260560A1 (en) Method of reducing program disturbance in memory device and memory device utilizing same
CN116547758A (zh) 存储器器件、存储器系统及其读取操作方法

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
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: 20161123

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20171117

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20181115

Year of fee payment: 6