KR101381005B1 - 다중 감지 시간을 이용하는 메모리 디바이스 판독 - Google Patents

다중 감지 시간을 이용하는 메모리 디바이스 판독 Download PDF

Info

Publication number
KR101381005B1
KR101381005B1 KR1020120092004A KR20120092004A KR101381005B1 KR 101381005 B1 KR101381005 B1 KR 101381005B1 KR 1020120092004 A KR1020120092004 A KR 1020120092004A KR 20120092004 A KR20120092004 A KR 20120092004A KR 101381005 B1 KR101381005 B1 KR 101381005B1
Authority
KR
South Korea
Prior art keywords
read
memory cells
read operation
group
memory
Prior art date
Application number
KR1020120092004A
Other languages
English (en)
Other versions
KR20130023107A (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
Priority claimed from US13/214,257 external-priority patent/US8400858B2/en
Application filed by 애플 인크. filed Critical 애플 인크.
Publication of KR20130023107A publication Critical patent/KR20130023107A/ko
Application granted granted Critical
Publication of KR101381005B1 publication Critical patent/KR101381005B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C27/00Electric analogue stores, e.g. for storing instantaneous values
    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/409Read-write [R-W] circuits 
    • G11C11/4091Sense or sense/refresh amplifiers, or associated sense circuitry, e.g. for coupled bit-line precharging, equalising or isolating
    • 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/5642Sensing or reading circuits; Data output circuits
    • 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/004Reading or sensing 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/0061Timing 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/26Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/08Word line control circuits, e.g. drivers, boosters, pull-up circuits, pull-down circuits, precharging circuits, for word lines
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/12Group selection circuits, e.g. for memory block selection, chip selection, array selection
    • 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
    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/021Detection or location of defective auxiliary circuits, e.g. defective refresh counters in voltage or current generators
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/028Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/06Sense amplifiers; Associated circuits, e.g. timing or triggering circuits

Landscapes

  • Engineering & Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Read Only Memory (AREA)

Abstract

데이터 저장 방법은 아날로그 메모리 셀들의 그룹 내의 메모리 셀들에 각각의 저장 값들을 기록함으로써 그룹 내에 데이터를 저장하는 단계를 포함한다. 그룹 내의 하나 이상의 메모리 셀은 제1 감지 시간으로 메모리 셀들을 감지하는 제1 판독 동작을 이용하여 판독된다. 그룹 내의 메모리 셀들 중 적어도 하나는 제1 감지 시간보다 긴 제2 감지 시간으로 메모리 셀들을 감지하는 제2 판독 동작을 이용하여 판독된다. 메모리 셀들의 그룹 내에 저장된 데이터 제1 판독 동작 및 제2 판독 동작의 판독 결과에 기초하여 재구성된다.

Description

다중 감지 시간을 이용하는 메모리 디바이스 판독{MEMORY DEVICE READOUT USING MULTIPLE SENSE TIMES}
본 발명은 일반적으로 메모리 디바이스에 관한 것이며, 특히 아날로그 메모리 셀들로부터 데이터를 판독하는 방법 및 시스템에 관한 것이다.
플래시 메모리 등의 일부 타입의 메모리 디바이스는 데이터를 저장하기 위해 아날로그 메모리 셀들의 어레이들을 이용한다. 각각의 아날로그 메모리 셀은, 셀 내에 저장된 데이터를 나타내는 전기 전하 또는 전압과 같은 소정의 물리량의 특정 레벨을 유지한다. 이러한 물리량의 레벨들은 저장 값 또는 아날로그 값으로도 지칭된다. 플래시 메모리에서, 예를 들어, 각각의 아날로그 메모리 셀은 특정량의 전기 전하를 보유한다. 가능한 아날로그 값의 범위는 일반적으로 영역들로 분할되며, 각각의 영역은 하나 이상의 데이터 비트 값들을 나타내는 프로그래밍 상태에 대응한다. 원하는 비트 또는 비트들에 대응하는 공칭 아날로그 값을 기록함으로써, 데이터가 아날로그 메모리 셀에 기록된다.
통상적으로 SLC(Single-Level Cell) 디바이스로 지칭되는 일부 메모리 디바이스는 각각의 메모리 셀 내에 단일 비트의 정보를 저장한다, 즉, 각각의 메모리 셀은 2개의 가능한 메모리 상태를 가정하도록 프로그래밍될 수 있다. 주로 MLC(Multi-Level Cell) 디바이스로 지칭되는 고밀도 디바이스는 메모리 셀당 2개 이상의 비트를 저장한다, 즉, 2개보다 많은 가능한 메모리 상태를 가정하도록 프로그래밍될 수 있다.
예를 들어, Bez 등의 2003년 4월자 IEEE 논문 "Introduction to Flash Memory", 볼륨 91, 넘버 4, 페이지 489-502에는 플래시 메모리 디바이스에 대해 개시되어 있으며, 이는 본 명세서에 참조 문헌으로서 포함된다. 예를 들어, Eitan 등의 1996년 IEEE IEDM(International Electron Devices Meeting, 뉴욕 소재)의 논문 "Multilevel Flash Cells and their Trade-Offs", 페이지 169-172에는 멀티-레벨 플래시 셀들 및 디바이스에 대해 개시되어 있으며, 이는 본 명세서에 참조 문헌으로서 포함된다. 이 논문은 몇몇 종류의 멀티 레벨 플래시 셀들, 예컨대 공통 접지, DINOR, AND, NOR 및 NAND 셀들 등을 비교한다.
Eitan 등은 1999년 9월 21-24일 일본 동경에서의 SSDM(Solid State Devices and Materials에 대한 1999 International Conference의 논문 "Can NROM, a 2-bit, Trapping Storage NVM Cell, Give a Real Challenge to Floating Gate Cells?", 페이지 522-524의 NROM(Nitride Read Only Memory)로 명명되는 또 다른 타입의 아날로그 메모리 셀에 대해 개시하고 있으며, 이는 본 명세서에 참조 문헌으로서 포함된다. NROM 셀들은 2002년 2월 3-7일 캘리포니아 샌프란시스코의 2002 IEEE International Solid-State Circuits Conference (ISSCC 2002)의 Maayan 등의 논문 "A 512 Mb NROM Flash Data Storage Memory with 8 MB/s Data Rate"의 페이지 100-101에도 기술되어 있으며, 이는 본 명세서에 참조 문헌으로서 포함된다. 아날로그 메모리 셀들의 다른 예시적인 타입들은 FG(Floating Gate) 셀, FRAM(Ferroelectric RAM) 셀, MRAM(magnetic RAM) 셀, CTF(Charge Trap Flash) 및 PRAM(phase change RAM, PCM(Phase Change Memory)으로도 명명됨) 셀이다. FRAM, MRAM 및 PRAM 셀들은, 예를 들어, 2004년 5월 16-19일, Nis, Serbia 및 Montenegro에서의 MIEL(Microelectronics)에 대한 24차 International Conference의 Kim and Koh의 논문 "Future Memory Technology including Emerging New Memories"의 volume 1, 페이지 377-384에 기술되어 있으며, 이는 본 명세서에 참조 문헌으로서 포함된다.
데이터 저장을 위한 방법은 각각의 저장 값들을 그룹 내의 메모리 셀들에 기록함으로써 아날로그 메모리 셀들의 그룹 내에 데이터를 저장하는 단계를 포함한다. 그룹 내의 하나 이상의 메모리 셀들은 메모리 셀들을 제1 감지 시간으로 감지하는 제1 판독 동작을 이용하여 판독된다. 그룹 내의 메모리 셀들의 적어도 하나는 메모리 셀들을 제1 감지 시간보다 긴 제2 감지 시간으로 감지하는 제2 판독 동작을 이용하여 판독된다. 메모리 셀들의 그룹 내에 저장된 데이터는 제1 판독 동작 및 제2 판독 동작의 판독 결과들에 기초하여 재구성된다.
일부 실시예에서, 그룹 내의 메모리 셀들은 각각의 비트 라인들에 결합되며, 제1 판독 동작을 이용하여 판독하는 단계는 비트 라인들을 충전시키고 비트 라인들의 방전을 제1 감지 시간으로 측정하는 단계를 포함하고, 제2 판독 동작을 이용하여 판독하는 단계는 비트 라인들을 재충전하지 않고 비트 라인들의 방전을 제2 감지 시간으로 측정하는 단계를 포함한다. 일 실시예에서, 그룹 내의 메모리 셀들은 단일 워드 라인과 연관되어 있다.
개시된 실시예에서, 제2 판독 동작을 이용하여 판독하는 단계는 제1 판독 동작의 성공을 표명하고, 제1 판독 동작이 실패한 것으로 표명되는 경우에만 제2 판독 동작을 수행하는 단계를 포함한다. 일 실시예에서, 표명하는 단계는 그룹 내의 메모리 셀들에서의 주어진 데이터 값의 발생 빈도를 추정하고, 추정된 발생 빈도를 예상 값과 비교하는 단계를 포함한다. 다른 실시예에서, 본 방법은 제1 판독 동작의 판독 결과들의 적어도 일부를 출력하고, 동시에 제2 판독 동작을 수행하는 단계를 포함한다.
본 발명의 일 실시예에 따르면, ECC(Error correction Code) 코드 워드의 다수의 부분들을 아날로그 메모리 셀들의 다수의 각 그룹에 저장하는 단계를 포함하는 데이터 저장을 위한 방법이 추가적으로 제공된다. 아날로그 메모리 셀들을 제1 감지 시간으로 판독하는 제1 판독 구성을 이용하여 상기 부분들의 제1 서브 세트가 판독된다. 아날로그 메모리 셀들을 제1 감지 시간보다 긴 제2 감지 시간으로 판독하는 제2 판독 구성을 이용하여 상기 제1 서브 세트와는 상이한 상기 부분들의 제2 서브 세트가 판독된다. ECC 코드 워드는 제1 서브 세트 및 제2 서브 세트의 판독을 이용하여 디코딩된다.
일부 실시예에서, 다수의 부분들을 저장하는 단계는 상기 부분들을 각각의 서로 다른 메모리 디바이스에 저장하는 단계를 포함하고, 제1 서브 세트 및 제2 서브 세트를 판독하는 단계는 각각의 메모리 디바이스들로부터 다수의 부분들을 동시에 판독하는 단계를 포함한다. 일 실시예에서, 본 방법은, 부가의 코드 워드의 부분들을 판독에 이용되는 제1 서브 세트 및 제2 서브 세트가 상기 코드 워드의 부분들의 판독에 이용되는 제1 서브 세트 및 제2 서브 세트와는 상이하도록, 다수의 각 메모리 디바이스로부터 부가의 ECC 코드 워드의 다수의 부분들을 판독하는 단계를 포함한다.
개시된 실시예에서, 아날로그 메모리 셀들의 각각은 적어도 제1 및 제2 비트들을 보유하고, 상기 부분들을 저장하는 단계는 제1 비트들의 제1 판독 구성을 이용하여 판독되는 부분들을 저장하고, 제2 비트들의 제2 판독 구성을 이용하여 판독되는 부분들을 저장하는 단계를 포함한다.
또한, 본 발명의 일 실시예에 따르면, 다수의 아날로그 메모리 셀들 및 회로를 포함하는 데이터 저장 장치가 제공된다. 상기 회로는, 그룹 내의 메모리 셀들에 각각의 저장 값을 기록함으로써 아날로그 메모리 셀들의 그룹 내에 데이터를 저장하고, 메모리 셀들을 제1 감지 시간으로 감지하는 제1 판독 동작을 이용하여 그룹 내의 메모리 셀들 중 하나 이상의 메모리 셀을 판독하고, 메모리 셀들을 제1 감지 시간보다 긴 제2 감지 시간으로 감지하는 제2 판독 동작을 이용하여 그룹 내의 메모리 셀들 중 적어도 하나를 판독하고, 제1 및 제2 판독 동작들의 판독 결과들에 기초하여 메모리 셀들의 그룹 내에 저장된 데이터를 재구성하도록 구성된다.
본 발명의 일 실시예에 따르면, 다수의 아날로그 메로리 셀들 및 회로를 포함하는 데이터 저장 장치가 더 제공된다. 상기 회로는, 아날로그 메모리 셀들의 다수의 각 그룹들에 ECC(Error Correction Code) 코드 워드의 다수의 부분들을 저장하고, 아날로그 메모리 셀들을 제1 감지 시간으로 판독하는 제1 판독 구성을 이용하여 상기 부분들의 제1 서브 세트를 판독하고, 아날로그 메모리 셀들을 제1 감지 시간보다 긴 제2 감지 시간으로 판독하는 제2 판독 구성을 이용하여, 제1 서브 세트와는 상이한 상기 부분들의 제2 서브 세트를 판독하고, 제1 및 제2 서브 세트들의 판독을 이용하여 ECC 코드 워드를 디코딩하도록 구성된다.
본 발명은 도면과 함께 이하 실시예들의 상세한 설명으로부터 보다 완전히 이해될 것이다.
도 1은 본 발명의 일 실시예에 따른, 메모리 시스템을 개략적으로 도시하는 블록도.
도 2 및 도 3은 본 발명의 실시예들에 따른, 서로 다른 정확도 레벨을 갖는 판독 커맨드들을 이용하여 아날로그 메모리 셀들로부터 데이터를 검색하는 방법을 개략적으로 도시하는 흐름도.
도 4는 본 발명의 일 실시예에 따라 감지 시간이 감소된, 아날로그 메모리 셀들로부터 데이터를 검색하는 방법을 개략적으로 도시하는 흐름도.
도 5는 본 발명의 일 실시예에 따른, 아날로그 메모리 셀 그룹의 프로그래밍 레벨들 및 연관된 정상 판독 임계값 및 감소된 감지 시간의 판독 임계값을 나타내는 그래프.
도 6은 본 발명의 일 실시예에 따른, 단일 비트 라인의 방전 사이클 동안 다중 감지 시간의 이용을 나타내는 그래프.
도 7-9는 본 발명의 실시예들에 따른, 단일 비트 라인의 방전 사이클 동안 다중 감지 시간을 이용한 판독 스킴을 개략적으로 도시하는 흐름도.
도 10은 본 발명의 일 실시예에 따른, 서로 다른 감지 시간을 갖는 복수의 판독 동작들을 결합하는 판독 프로세스를 개략적으로 도시하는 다이어그램.
개요
일반적으로, 데이터를 나타내는 특정 저장 값들(예컨대, 임계 전압들)을 갖는 셀들을 프로그래밍함으로써 아날로그 메모리 셀들 내에 데이터가 저장된다. 상기 데이터는 셀들로부터 저장 값들을 판독함으로써 검색된다. 대개는, 저장 값들이 판독되는 정확도와 이들의 판독에 필요한 시간 간에는 트레이드-오프(trade-off)가 존재한다. 높은 정확도의 판독 동작들은 상대적으로 긴 시간이 소요되는 경향이 있으며, 전체적인 데이터 검색 속도를 제한할 수 있다.
그러나, 실제로, 높은 정확도의 판독은 항상 강제되는 것은 아니다. 일부 판독 작업은 감소된 정확도에 의해, 이에 따라 고속으로 성공적으로 수행될 수 있다. 예를 들어, 메모리 셀들이 라이프 사이클의 초기에 있어 수 회의 프로그래밍 및 소거 사이클만을 겪은 경우에는 감소된 정확도가 충분할 수 있다. 다른 예로서, 인접 셀들의 저장 값들에 기초하여 주어진 메모리 셀들의 간섭을 소거하는 경우, 주어진 셀들은 일반적으로 높은 정확도로 판독된다. 그러나, 인접 셀들은 주로 소거 성능에 열화가 없거나 거의 없이 낮은 정확도로 판독될 수 있다.
또 다른 예로서, 셀들을 P&V(Program and Verify) 프로세스를 이용하여 프로그래밍하는 경우, 프로그래밍된 저장 값들은 데이터 검색에 이용되는 정확도보다 낮은 정확도로 검증될 수 있다. 저장 값들의 통계 분포의 추정(예컨대, 판독 임계값의 조정)을 위한 판독 동작들은 마찬가지로 낮은 정확도로 주로 수행될 수 있다.
이하 기술되는 본 발명의 실시예들은 아날로그 메모리 셀들로부터 데이터를 판독하는 개선된 방법 및 시스템을 제공한다. 이들 방법 및 시스템은 서로 다른 감지 시간을 갖는 복수 타입의 판독 동작들을 결합한다. 특정 비트 라인에 속하는 메모리 셀에서, 메모리 셀을 판독하는 데 이용되는 감지 시간은 비트 라인 전압 또는 전류가 통합되는 시간 구간으로서 정의된다.
일부 메모리 디바이스에서, 선택된 워드 라인에 따른 메모리 셀들의 그룹은 메모리 셀들의 비트 라인들을 충전하고, 비트 라인들이 방전되게 하고, 방전 사이클 동안 비트 라인 전류 또는 전압을 감지함으로써 판독된다. 본 명세서에 기술된 일부 실시예들에서, 메모리 셀들의 그룹은, 모두 동일한 비트 라인 방전 사이클 동안에 서로 다른 감지 시간을 갖는 비트 라인들을 감지하는 복수의 판독 동작을 이용하여 판독된다. 즉, 판독 동작들 간에 비트 라인을 재충전하지 않고 다중 감지 시간으로 소정의 비트 라인이 감지된다.
이들 일부 실시예에서, 메모리 디바이스 회로는 특정 감지 시간으로 비트 라인들(이에 따라 메모리 셀들)을 감지하고, 그 후 제1 판독 동작이 성공하였을 가능성이 있는지의 여부를 표명하는 고속의 검증 프로세스를 수행한다. 예를 들어, 상기 회로는 특정 데이터 값의 발생 빈도를 추정하고, 이를 예상 값과 비교할 수 있다. 검증 프로세스가 (초기 감지 시간이 너무 짧다는 것을 내포하는) 가능한 판독 실패를 나타내는 경우, 상기 회로는 비트 라인들을 보다 긴 감지 시간으로 재감지한다.
판독 성공을 검증하고, 감지 시간을 조건적으로 증가시키는 프로세스는, 예컨대 검증이 성공적인 판독을 나타낼 때까지 반복될 수 있다. 전체 프로세스는 일반적으로 단일 비트 라인 방전 사이클 동안 수행된다. 이러한 기법은 메모리 셀들의 각 그룹에 대해 지연 대 판독 신뢰성 트레이드-오프를 최적화하여, 메모리 셀들의 실제 조건들을 매칭시킨다.
다른 실시예에서, 그룹 내의 메모리 셀들의 제1 서브 세트는 특정 감지 시간으로 판독되고, 제2 서브 세트 보다 긴 감지 시간으로 판독된다. 제1 서브 세트의 판독 결과들은 (보다 긴 감지 시간을 갖는) 제2 서브 세트의 판독이 여전히 진행 중인 동안에 메모리로부터 메모리 컨트롤러로 전송된다. 이러한 기법 역시 지연과 판독 정확도 간의 양호한 트레이드-오프를 제공한다: 제1 서브 세트가 보다 짧은 감지 시간으로 판독된 후 데이터 전송이 개시되므로 지연이 낮게 유지된다. 동일한 시간에서, 평균 판독 정확도는 보다 긴 감지 시간으로 (데이터 전송이 후에 개시되는) 제2 서브 세트를 판독함으로써 높게 유지된다.
다른 개시된 실시예들에서, 전체 메모리 셀들의 그룹은 서로 다른 2개의 감지 시간을 이용하여 2회 감지된다. 짧은 감지 시간에 대응하는 판독 결과들이 우선적으로 이용가능하다. 만약 이 판독 결과들에 오류가 있으면, 더 긴 감지 시간에 대응하는 판독 결과들은 그들이 이용가능하게 되었을 때 사용된다.
여기에 기술되는 다른 실시예들에서, ECC(Error Correcting Code)로 인코딩된 데이터는 다수의 상이한 감지 시간들을 이용하여 판독된다. 이 실시예들에서, 각 ECC 코드 워드는 다수의 부분들로 분할되며, 각 부분은 메모리 셀들의 상이한 그룹(가령, 상이한 페이지 또는 상이한 메모리 다이(die)) 내에 저장된다. 메모리로부터 ECC 코드 워드를 검색할 때, 부분들 중 하나 이상이 제1 감지 시간을 이용하여 판독되며, 하나 이상의 다른 부분들은 상이한 감지 시간을 이용하여 판독된다. 이 기술은, 예를 들어, 더 짧은 감지 시간에 대응하는 에러 레이트가 ECC 디코더에 의해 수정되기에는 너무 높은 경우에 유용하다. 더 긴 감지 시간(및 그에 따른 더 낮은 에러 레이트)을 이용하여 ECC 코드 워드의 부분을 판독함으로써, 코드 워드 당 에러들의 평균 수가 디코더의 에러 정정 능력에 매칭하도록 감소된다.
시스템 설명
도 1은 본 발명의 실시예에 따른 메모리 시스템(20)을 도식적으로 나타낸 블록도이다. 시스템(20)은, 컴퓨팅 디바이스들, 셀룰러 폰들 또는 다른 통신 단말들, 탈착가능한 메모리 모듈들("디스크-온-키" 디바이스들), SSD(Solid State Disks), 디지털 카메라들, 음악 및 다른 미디어 플레이어들과 같은 다양한 호스트 시스템들 및 디바이스들, 및/또는 데이터가 저장되고 검색되는 임의의 다른 시스템 또는 다바이스 내에서 사용될 수 있다.
시스템(20)은 메모리 셀 어레이(28) 내에 데이터를 저장하는 메모리 디바이스(24)를 포함한다. 메모리 셀 어레이는 다수의 아날로그 메모리 셀들(32)을 포함한다. 메모리 디바이스(24) 및 메모리 컨트롤러(52)는 메모리 셀들(32)을 다른 정확도 레벨들에서 판독하고 다른 실행 시간들을 갖는 다수의 판독 커맨드들을 지원할 수 있다. 이러한 다수의 판독 커맨드들의 사용은 이하에서 상세히 설명된다. 부가적으로 또는 대안적으로, 메모리 디바이스(24) 및 메모리 컨트롤러(52)는 상이한 감지 시간들을 갖는 다수의 판독 구성들을 지원할 수 있다. 일부 실시예들에서, 메모리 디바이스 및 메모리 컨트롤러는 다수의 판독 커맨드들 또는 그 안에서 정의된 구성들을 실행하기 위해 전용 커맨드 인터페이스를 이용하여 서로 통신한다.
본 특허 출원의 내용 및 특허청구범위에서, "아날로그 메모리 셀"이라는 용어는, 전기 전압 또는 전하와 같은 물리량의 연속적인 아날로그 레벨을 유지하는 임의의 메모리 셀을 기술하기 위해 사용된다. 어레이(28)는, 예를 들어, NAND, NOR 및 CTF 플래시 셀들, PCM, NROM, FRAM, MRAM 및 DRAM 셀들과 같은, 임의의 종류의 아날로그 메모리 셀들을 포함한다. 메모리 셀들(32)은 단일 레벨 셀(SLC: Single-Level Cell)들 또는 다중 레벨 셀(MLC: Multi-Level Cell)(또는 다중 비트 셀로도 지칭됨)들을 포함할 수 있다.
전형적으로, 어레이(28)의 메모리 셀들(32)은 통상적으로 워드 라인들 또는 비트 라인들로 각각 지칭되는 다수의 행들 및 열들을 갖는 그리드(grid)로 배열된다. 셀들은 전형적으로 소거 블럭으로 지칭되는 워드 라인들의 그룹들로 소거된다. 일부 실시예에서, 주어진 메모리 디바이스는 개별 다이들 상에서 제조될 수 있는 다수의 메모리 셀 어레이들을 포함한다.
셀들 내에 저장된 전하 레벨들 및/또는 셀들에 기록되거나 그들로부터 판독되는 아날로그 전압들 또는 전류들은 여기에서 총체적으로 아날로그 값들 또는 저장 값들로서 지칭된다. 비록 여기서 주로 기술되는 실시예들이 임계 전압들을 언급하고 있지만, 여기서 기술되는 방법들 및 시스템들은 임의의 다른 적절한 종류의 저장 값들을 이용하여 사용될 수 있다.
시스템(20)은, 프로그래밍 레벨들로 지칭되는 각각의 메모리 상태들을 추정하도록 셀들을 프로그래밍함으로써, 아닐로그 메모리 셀들 내에 데이터를 저장한다. 프로그래밍 상태들은 가능한 상태들의 한정된 세트로부터 선택되며, 각 상태는 소정의 정규 저장 값에 대응한다. 예를 들어, 2비트/셀 MLC는 4개의 가능한 정규 저장 값들 중 하나를 셀에 기록함으로써 4개의 가능한 프로그래밍 상태들 중 하나를 추정하도록 프로그래밍될 수 있다.
메모리 디바이스(24)는 메모리 디바이스 내의 저장을 위한 데이터를 저장 값들로 변환하고 그들을 메모리 셀들(32) 내에 기록하는 판독/기록(R/W: Reading/Writing) 회로를 포함한다. 대안적인 실시예들에서, R/W 회로는 변환을 수행하지 않지만, 전압 샘플들, 즉, 셀들 내의 저장을 위한 저장 값들을 제공받는다. 어레이(28)에서 데이터를 판독할 때, R/W 회로는 메모리 셀들(32)의 저장 값들을, 하나 이상의 비트들의 해상도를 갖는 디지털 샘플들로 변환한다. R/W 회로는 전형적으로 셀들의 저장 값들을 하나 이상의 판독 임계값들과 비교함으로써 셀들(32)로부터 데이터를 판독한다. 데이터는 전형적으로 페이지로 지칭되는 그룹내의 메모리셀들로 기록되고, 이 메모리 셀들로부터 판독된다. 일부 실시예들에서, R/W 회로는 하나 이상의 네가티브의 소거 펄스들을 셀들에 인가함으로써 셀들(32)의 그룹을 소거할 수 있다.
본 예에서, R/W 회로는 워드 라인(WL: Word Line) 회로(36) 및 감지 회로(40)를 포함한다. WL 회로는 어레이(28)의 워드 라인들에 연결되고, 감지 회로는 어레이의 비트 라인들에 연결된다. 여러 작업들 중에서, WL 회로(36)는 판독 동작들 동안 적절한 바이어스 전압들을 상이한 워드 라인들에 인가하고, 프로그래밍 동작들 동안 적절한 프로그래밍 펄스들을 워드 라인들에 인가한다. 감지 회로(40)는 다른 여러 기능들 중에서, 판독 동작들 동안 비트 라인들의 전압들 또는 전류들을 감지한다.
R/W 회로는 전형적으로 소정의 워드 라인을 따르는 메모리 셀들(32)의 그룹을 동시에 판독한다. 전형적인 판독 동작에서, WL 회로(36)는 적절한 바이어스 전압들을 판독 워드 라인에 인가하고 동일한 소거 블럭 내의 다른 라인들에 인가한다. 감지 회로(40)는 각 비트 라인의 전압 또는 전류를 감지한다. 주어진 비트 라인의 감지된 전압 또는 전류는 이 비트 라인과 판독 워드 라인에 속하는 메모리셀의 저장 값을 나타낸다. 감지 회로는 전형적으로 감지된 비트 라인 전압들 또는 전류들을 하나 이상의 판독 임계값들과 비교하고, 비교 결과들을 출력한다.
일부 실시예들에서, 메모리 디바이스(24)는, 다양한 신호 처리 메카니즘들을 판독 및/또는 프로그래밍된 데이터 또는 저장 값들에 적용하는 신호 처리 유닛(44)을 포함한다. 특히, 유닛(44)은, 간섭 제거 또는 판독 임계값 적응(adaptation)과 같은, 메모리 셀들(32)로부터 저장 값들을 판독하는 정확도를 향상시키는 신호 저리 메카니즘들을 적용할 수 있다. 이러한 메카니즘들의 사용은 이하에서 더 상세히 설명된다. 신호 처리 유닛(44)은 WL 회로(36) 및 감지 회로(40)와 통신한다. 또한, 신호 처리 회로는 인터페이스(48)를 통해 디바이스(24) 외부의 요소들과 통신한다.
메모리 디바이스(24) 내로의 데이터의 저장 및 그로부터의 데이터의 검색이 메모리 컨트롤러(52)에 의해 수행된다. 컨트롤러(52)는 디바이스(24)와 통신하기 위한 인터페이스(60)와, 여기서 기술된 메모리 제어 기능들을 수행하는 프로세서(64)를 포함한다. 일부 실시예들에서, 메모리 컨트롤러(52)는 ECC(Error Correction Code) 유닛(68)을 포함하는데, 이는 적절한 ECC를 이용하여 저장을 위해 데이터를 인코딩하며 메모리 디바이스로부터 판독된 데이터의 ECC를 디코딩한다. 일부 실시예에서, 컨트롤러(52)는 메모리 셀들 내에 저장하기 위한 저장 값들을 생성하고, 이 값들을 디바이스(24)에 제공한다. 대안적으로, 컨트롤러(52)는 저장을 위해 데이터를 제공하고, 저장 값들로의 변환이 메모리 디바이스 내에서 수행된다.
메모리 컨트롤러(52)는 호스트(56)와 통신하여, 메모리 디바이스 내의 저장을 위해 데이터를 수신하고 메모리 디바이스로부터 검색된 데이터를 출력한다. 일부 실시예에서, 컨트롤러(52)의 기능들의 일부 또는 심지어 전부가 하드웨어로 구현된다. 대안적으로, 컨트롤러(52)는 적절한 소프트웨어, 또는 하드웨어 및 소프트웨어 요소들의 조합을 구동하는 마이크로프로세서를 포함할 수 있다.
도 1의 구성은 전적으로 개념적 명확성을 위해 도시된, 예시적인 시스템 구성이다. 임의의 다른 적절한 메모리 시스템 구성도 또한 사용될 수도 있다. 예를 들어, 일부 실시에들에서, 신호 처리 유닛(44)은 생략될 수 있고, 그 기능들은 메모리 컨트롤러에 의해 수행될 수 있다. 본 발명의 원리들을 이해하는데 필요하지 않은 요소들, 가령, 다양한 인터페이스들, 어드레싱 회로들, 타이밍 및 시퀀싱 회로들 및 디버깅 회로들은 명료성을 위해 도면에서 생략되었다.
도 1에 도시된 예시적인 시스템 구성에서, 메모리 디바이스(24) 및 메모리 컨트롤러(52)는 2개의 개별 IC(Integrated Circuit)들로서 구현된다. 대안적인 실시예들에서, 메모리 디바이스 및 메모리 컨트롤러는 하나의 다중 칩 패키지(MCP: Multi-Chip Package) 또는 시스템 온 칩(SoC: System on Chip) 내의 개별 반도체 다이들 상에서 집적될 수 있다. 또한, 대안적으로, 메모리 컨트롤러의 회로의 일부 또는 전부는 메모리 어레이가 배치되는 동일한 다이 상에 존재할 수 있다. 또한 대안적으로, 컨트롤러(52)의 기능의 일부 또는 전부는 소프트웨어로 구현될 수 있으며, 프로세서 또는 호스트 시스템의 다른 요소에 의해 수행될 수 있다. 일부 실시예들에서, 단일 메모리 컨트롤러는 다수의 메모리 디바이스들(24)에 연결될 수 있다. 또 다른 실시예에서, 메모리 컨트롤러 기능의 일부 또는 전부는, 메모리 디바이스(24)의 슬레이브로서 기능하는, 메모리 확장으로 지칭되는 개별 유닛에 의해 수행될 수 있다. 전형적으로, 컨트롤러(52) 내의 프로세서(64)는 여기서 기술되는 기능들을 수행하도록 소프트웨어로 프로그래밍된 범용 프로세서를 포함한다. 소프트웨어는 예를 들어, 네트워크를 통해 전자적 형태로 프로세서에 다운로드되거나, 또는 대안적으로 또는 부가적으로, 그것은 마그네틱, 광학 또는 전자 메모리와 같은 비일시적인 유형의 미디어(non-transitory tangible media) 상에 제공 및/또는 저장될 수 있다.
판독 정확도와 속도 사이의 트레이드 오프
전형적으로, 메모리 디바이스(24)가 메모리 셀들(32)로부터 저장 값들을 판독하는 정확도와 저장 값들이 판독되는 속도 사이에는 트레이드 오프가 존재한다. 매우 정확한 판독은 상대적으로 느린 경향이 있는 반면, 빠른 판독은 종종 정확도가 떨어진다. 본 내용에서, "정확도"라는 용어는 메모리 디바이스(24)의 회로에 의해 판독되는 저장 값들이 메모리 셀들 내에 저장된 실제 저장 값들을 나타내는 임의의 확실성 또는 신뢰성 측정치를 의미한다. 정확한 판독 동작에서는, 메모리 셀들의 판독 저장 값들과 각각의 실질적인 저장 값들 사이의 차이들은 작으며, 그 역의 경우도 그러하다. 임의의 판독 동작은 어느 정도 내재하는 불확실성을 가지므로, 상이한 판독 동작들은 그들의 판독 정확도들에 의해 특징지어질 수 있다. 상이한 정확도들을 갖는 판독 커맨드들의 몇몇 예들은 이하에서 더 설명된다. "높은 정확도" 및 "우수한 정확도"라는 용어는 여기서 상호교환적으로 사용된다.
많은 실제 경우들에서 있어서, 매우 정확한 판독이 항상 필요한 것은 아니다. 일부 판독 작업들은 감소된 판독 정확도로, 또한 그에 따른 더 빠른 속도로 성공적으로 수행될 수 있다. 일부 실시예들에서, 메모리 디바이스(24) 및 메모리 컨트롤러(52)는 메모리 셀들(32)로부터 저장 값들을 판독하기 위한 판독 커맨드들의 다수의 미리 결정된 유형들을 지원한다. 상이한 커맨드들은 상이한 정확도들로 저장 값들을 판독한다. 각각의 커맨드는 각각의 실행 시간을 가지는데, 이는 전형적으로 더 높은 정확도 커맨드들에 대해서는 더 길고 더 낮은 정확도 커맨드들에 대해서는 더 짧다.
전형적으로, 메모리 컨트롤러(52)가 메모리 셀들의 소정의 그룹(가령, 메모리 페이지)으로부터 저장 값들을 판독하는 것을 준비할 때, 컨트롤러는 수행될 판독 동작에 관한 조건을 평가한다. 평가된 조건에 기초하여, 메모리 컨트롤러는 미리결정된 판독 커맨드들 중 하나를 선택하고, 메모리 디바이스에 선택된 커맨드를 이용하여 당해 저장 값들을 판독할 것을 지시한다. 상이한 정확도 레벨에서 수행될 수 있는 판독 작업들, 적절한 판독 커맨드를 선택하도록 평가될 수 있는 조건들, 및 상이한 정확도들 및 실행 시간들을 갖는 판독 커맨드들의 몇몇 예들이 이하에서 상세히 기술된다.
도 2는 본 발명의 일 실시예에 따른, 상이한 정확도 레벨들을 갖는 판독 커맨드들을 이용하여 아날로그 메모리 셀들(32)로부터 데이터를 검색하기 위한 방법을 도식적으로 나타낸 흐름도이다. 상기 방법은, 시작 단계(70)에서, 메모리 컨트롤러(52)가 메모리 셀들(32)의 그룹 내에 저장된 소정의 메모리 페이지의 판독을 개시하는 것에서 시작한다. 메모리 컨트롤러는 정확도 표명 단계(74)에서, 수행될 판독 동작에 관련된 조건들을 평가함으로써, 원하는 판독 정확도를 표명한다. 메모리 컨트롤러는, 판독 단계(78)에서, 원하는 정확도를 갖는 미리 결정된 판독 커맨드들 중 하나를 선택하고, 선택된 커맨드을 이용하여 페이지에 대응하는 저장 값들을 판독한다. 메모리 컨트롤러는 전형적으로 판독 저장 값들로부터 저장된 데이터를 재구성하고, 재구성된 데이터를 호스트(56)에 출력한다.
예시적인 판독 작업들, 선택 기준 및 판독 커맨드들
메모리 디바이스(24) 및 메모리 컨트롤러(52)에 의해 지원된 상이한 판독 커맨드들은 상이한 정확도/속도 트레이드 오프를 제공하기 위해, 다양한 방식으로 서로 상이할 수 있다. 예를 들어, 상이한 판독 커맨드들은 상이한 감지 시간을 가질 수 있다. 감지 시간은 감지 회로(40)가 판독 동작 동안 비트 라인 전압들 또는 전류들을 측정하는 기간으로 정의된다. 이해할 수 있는 바와 같이, 더 긴 기간 동안 비트 라인 전류 또는 전압을 통합하는 것은 판독 노이즈를 평균화시키고 판독 정확도를 향상시킨다. 한편, 더 긴 감지 시간은 판독 커맨드의 실행 시간을 증가시킨다. 따라서, 디바이스(24) 및 컨트롤러(52)는, 긴 감지 시간을 갖는, 정확도가 높지만 상대적으로 느린 판독 커맨드와, 짧은 감지 시간을 갖는, 정확도가 낮지만 상대적으로 빠른 판독 커맨드를 지원할 수 있다. 소정의 NAND 플래시 메모리 디바이스에서, 예를 들어, 긴 감지 시간은 25㎲ 정도일 수 있으며, 짧은 감지 시간은 10㎲ 정도일 수 있지만, 임의의 다른 적절한 값들이 사용될 수도 있다. 일부 실시예에서, 긴 감지 시간은 대략 짧은 감지 시간의 2배일수 있지만, 임의의 다른 적절한 비율(ratio)도 사용될 수 있다.
다른 예에서, 상이한 판독 커맨드들은 상이한 수의 판독 임계값들을 이용하여 저장 값들을 판독할 수 있다. 위에서 언급된 바와 같이, R/W 회로는 전형적으로 메모리 셀들(32)로부터 저장값들을, 그들을 하나 이상의 판독 임계값들과 비교함으로써, 판독한다. 일부 실시예들에서, 신호 처리 유닛(44)은 상이한 판독 임계값들을 이용하여 저장값들의 소정의 세트를 다중 시간(multiple times) 재판독함으로써 판독 정확도를 향상시킬 수 있다. 예를 들어, 다수의 판독 결과들은 판독 저장값들의 소프트 메트릭들을 형성하도록 결합될 수 있으며, 이 메트릭들은 메모리 컨트롤러 내의 ECC 유닛(68)에 의해 ECC를 디코딩하는데 사용될 수 있다. 다중 판독 임계값들을 사용하는 데이터 판독의 일부 측면들이 PCT 국제공개공보 WO 2007/132457, WO 2008/053472, WO 2008/111058 및 WO 2008/139441에서 제시되며, 이들의 개시들은 참조에 의해 포함된다.
통상적으로, 판독 임계값들의 수가 증가할 때 판독 정확도는 향상된다. 반면에, 많은 수의 판독 임계값을 사용하는 메모리 셀들의 그룹을 재판독하는 것은 실행 시간을 증가시킨다. 따라서, 상이한 수의 판독 임계값들을 사용하는 판독 커맨드들은 통상적으로 상이한 판독 정확도들 및 실행 시간들을 가진다. 일 실시예에서, 메모리 디바이스 및 메모리 컨트롤러는 적은 수의 판독 임계값들(예를 들어 하나의 판독 임계값)을 이용하여 저장 값들을 판독하는 판독 커맨드와, 더 높은 수의 판독 임계값들(예를 들어, 2개와 5개 사이의 판독 임계값들)을 이용하여 저장 값들을 판독하는 다른 판독 커맨드를 지원할 수 있다.
정해진 판독 커맨드가 하나의 판독 임계값을 이용하는 경우, 판독 결과들은 저장 값들의 하드 메트릭스(hard metrics)로 보여질 수 있다. 정해진 판독 커맨드가 다수의 판독 임계값들을 이용하는 경우, 판독 결과들은 결합되거나 또는 그렇지 않으면 저장 값들의 소프트 메트릭스(soft metrics)를 생성하도록 처리될 수 있다. ECC 유닛(68)은 이러한 하드 또는 소프트 메트릭스에 기초하여 ECC를 디코딩할 수 있다. 따라서, 상대적으로 빠른 커맨드가 하드 메트릭스를 생성하기 위해 명시될 수 있다. 더 느린 커맨드는 소프트 메트릭스를 생성하기 위해 명시될 수 있고, 이는 일반적으로 ECC를 디코딩하는 경우 더 높은 정확도를 가능하게 한다. 대안적으로, 상이한 수의 판독 임계값들을 이용하는 상이한 커맨드들은 상이한 정확도들을 갖는 소프트 메트릭스를 생성하는 것으로 보여질 수 있다.
통상적으로, 다중 임계값 판독은 메모리 디바이스 내부로 유닛(44)에 의해 실행된다. 통상적인 프로세스에서, 메모리 컨트롤러는 적절한 판독 커맨드를 선택하고 메모리 디바이스로 송신하고, 메모리 디바이스는 적절한 수의 판독 임계값들을 이용하여 저장 값들을 판독함으로써 그 커맨드를 실행한다.
일부 실시예들에서, 신호 처리 유닛(44)은 소정의 신호 처리 메커니즘들을 판독 저장 값들에 적용하여 그들의 정확도를 증가시킨다. 예를 들어, 유닛(44)은 판독 저장 값들을 왜곡시키는 간섭을 취소시키기 위해 간섭 취소 프로세스를 적용시킬 수 있다. 메모리 셀들에서 왜곡을 측정하고 취소하기 위한 기술들이, 예를 들어, PCT 국제공개공보 WO 2007/132452, WO 2007/132453, 및 WO 2008/026203에서 설명되며, 이들의 개시는 여기서 참조에 의해 포함되고, 앞서 인용된 PCT 국제공개공보 WO 2007/132457에서 설명된다. 다른 예시로서, 신호 처리 유닛(44)은 저장 값들을 판독하기 위해 사용되는 판독 임계값들의 위치들을 적응적으로 적용하는 메커니즘을 적용할 수 있다. 판독 임계 값들을 적응적으로 조정하기 위한 기술들이, 예를 들어, 앞서 인용된 PCT 국제공개공보 WO 2008/053472 및 WO 2008/111058에서 설명된다.
간섭 취소 또는 적응적 임계값 조정과 같은 신호 처리 메커니즘들은 판독 정확도를 향상시킨다. 반면에, 이러한 메커니즘들은 통상적으로 컴퓨터 집중적(computationally intensive)이고, 따라서 실행 시간 및 판독 속도를 증가시킨다. 따라서, 일부 실시예들에서, 상이한 판독 커맨드들은 상이한 실행 시간들을 가지는 신호 처리 메커니즘들을 적용할 수 있거나, 또는 그러한 메커니즘들을 적용하는 것을 억제할 수 있고, 결과로서 상이한 정확도/속도 트레이드 오프(trade-offs)들을 제공할 수 있다.
예를 들어, 정해진 판독 커맨드는 판독 저장 값들에 간섭 취소를 적용할 수 있고, 다른 판독 커맨드는 간섭 취소를 적용하지 않고 저장 값들을 판독할 수 있다. 다른 예시로서, 저장 값들을 판독하기 전에, 정해진 판독 커맨드가 판독 임계값들을 조정할 수 있고, 다른 판독 커맨드는 그 판독 임계값들을 조정하지 않고 저장 값들을 판독할 수 있다.
일부 실시예들에서, 유닛(44) 및 메모리 컨트롤러(52) 양쪽 모두는 신호 처리 능력들을 가진다. 예를 들어, 간섭 취소 프로세스 또는 임계값 조정 프로세스는 유닛(44) 및 프로세서(52) 사이에서 분리되어, 각각의 엔티티는 신호 처리 태스크(task)들의 서브 세트를 실행한다. 메모리 컨트롤러(52)는 보통, 유닛(44)보다 더 높은 처리 능력을 가지기 때문에, 복잡한 신호 처리 태스크(task)들을 실행할 수 있다. 따라서, 유닛(44)으로부터 컨트롤러(52)로 신호 처리 기능들을 이동시키는 것은 판독 정확도를 향상시킬 수 있다. 반면에, 메모리 컨트롤러에 의해 신호 처리 태스크들을 수행하는 것은 보통, 메모리 디바이스로부터 메모리 컨트롤러로 더 많은 양의 데이터를 전달하는 것을 포함하며, 이는 실행 시간을 증가시킨다. 따라서, 메모리 컨트롤러와 메모리 디바이스 사이의 신호 처리 태스크들의 구분은 상이한 속도/속도 교환들을 제공할 수 있다. 따라서, 상이한 판독 커맨드들은 메모리 컨트롤러와 메모리 디바이스 사이에서 신호 처리 태스크들을 상이하게 분리시킬 수 있다.
예를 들어, 소정의 판독 커맨드는 메모리 디바이스 내부로 빠르지만 제한된 정확도의 임계값 적응 프로세스를 적용할 수 있다. 다른 판독 커맨드는 메모리 컨트롤러에 의해 더 복잡하고 더 높은 정확도의 임계값 적응 프로세스를 적용할 수 있다. 후자의 커맨드가 메모리 디바이스로부터 메모리 컨트롤러로 더 많은 양의 데이터(재판독 동작들의 결과들)를 전달하는 것을 포함하기 때문에, 후자의 커맨드가 통상적으로 더 느리다.
다른 예시로서, 메모리 디바이스의 유닛(44)은 메모리 셀들로부터 판독된 데이터 상에서 제한된 성능의 간섭 취소 프로세스를 수행하도록 구성가능할 수 있다. 메모리 컨트롤러(52)는 고성능 간섭 취소 프로세스를 수행하도록 구성가능할 수 있고, 이는 메모리 디바이스 내부로 적용된 프로세스보다 더 느릴 수 있다. 소정의 판독 커맨드들은 메모리 디바이스에서 적용된 간섭 취소 프로세스만을 사용할 수 있다. 다른 판독 커맨드는 컨트롤러의 간섭 취소 프로세스만을 사용할 수 있다. 또 다른 판독 커맨드는 판독 데이터에 양쪽 모두의 프로세스들을 적용할 수 있다.
상술한 판독 커맨드들은 전적으로 예시로 선택된다. 대안적인 실시예들에서, 메모리 디바이스(24) 및 메모리 컨트롤러(52)는 두 개 이상의 미리정의된 판독 커맨드들의 임의의 다른 적합한 세트를 사용할 수 있고, 이는 상이한 판독 정확도들 및 실행 시간들을 가진다. 상세하게는, 상술한 예시적인 기술들이 다양한 정확도/속도 트레이드 오프들을 가지는 커맨드들을 생성하기 위해 결합될 수 있다. 예를 들어, 매우 정확한 판독 커맨드는 긴 감지 시간(long sense time)을 사용할 수 있고, 간섭 취소를 적용할 수 있고, 적응적으로 조정된 다수의 임계값들을 사용하여 저장 값들을 판독할 수 있다. 낮은 정확도이지만 고속의 판독 커맨드는 짧은 감지 시간을 사용할 수 있고, 하나의 고정된 판독 임계값을 사용하여 저장 값들을 판독할 수 있다.
메모리 컨트롤러(52)는 상이한 조건들을 평가하여, 정해진 판독 태스크를 수행하기 위해 미리 정해진 판독 커맨드들 중 하나를 선택할 수 있다. 예를 들어, 많은 양의 마모(wear)(예를 들어, 많은 수의 프로그래밍 및 삭제 사이클 및/또는 긴 보유 기간들)를 겪은 메모리 셀들의 그룹은 고레벨의 왜곡을 겪을 수 있고, 따라서 높은 정확도로 판독되어야만 한다. 적은 양의 마모를 겪은 메모리 셀들의 그룹은 더 낮은 정확도 및 더 높은 속도로 성공적으로 판독될 수 있다. 따라서, 일부 실시예들에서, 메모리 컨트롤러는 판독될 메모리 셀들의 마모 레벨에 기초하여 판독 커맨드를 선택한다. 셀들에 적용된 프로그래밍 및 삭제 사이클들의 실제 또는 추정된 수, 및/또는 마지막 프로그래밍 동작 이후로 경과된 시간과 같이, 마모 레벨의 임의의 적합한 측정 또는 추정이 사용될 수 있다.
마모 레벨 정보가 셀 그룹 마다 이용가능하다고 가정하고, 이러한 종류의 조건은 각각의 개별적인 그룹의 셀들에 적용될 수 있다. 대안적으로, 메모리 컨트롤러는 전체 블록에 대해 공동으로 또는 심지어 전체 메모리 디바이스에 선택을 적용할 수 있다. 예를 들어, 메모리 컨트롤러는 메모리 디바이스의 수명의 시작에서 빠르지만 낮은 정확도의 판독 커맨드를 사용할 수 있고, 메모리 디바이스의 수명에 따라 이후의 시점에서 더 높은 정확도이지만 더 느린 판독 커맨드로 스위칭할 수 있다.
다른 예시로서, 메모리 컨트롤러는 기본적으로 고속 판독 커맨드를 처음에 선택할 수 있다. 데이터가 이러한 커맨드를 사용하여 성공적으로 재구성될 수 없는 경우(예를 들어, ECC 디코딩이 실패한 경우), 메모리 컨트롤러는 더 느리지만 더 높은 정확도의 커맨드를 사용하여 저장 값들을 판독하는 것을 다시 시도할 수 있다.
일부 실시예들에서, 판독 커맨드는 처음에, 예를 들어 신호 처리 유닛(44)에 의해 또는 R/W 회로에 의해, 메모리 디바이스에서 선택된다. 예를 들어, 소정 그룹의 메모리 셀들에 간섭 취소를 적용하는 것은 통상적으로 간섭된 메모리 셀들 및 간섭을 잠재적으로 유발하는 다른 메모리 셀들(통상적으로 이웃하는 셀들) 양쪽 모두로부터 저장 값들을 판독하는 것을 포함한다. 다수의 실제 경우들에서, 비록 간섭하는 메모리 셀들의 저장 값들이 낮은 정확도에서 알려지지만, 그 간섭은 성공적으로 취소될 수 있다. 따라서, 간섭 취소를 적용하는 경우, 메모리 디바이스는 빠르지만 낮은 정확도의 커맨드를 사용하여 잠재적으로 간섭하는 셀들의 저장 값들을 판독할 수 있다.
일부 실시예들에서, 메모리 셀들(32)은 다중 레벨 셀들을 포함하고, 그 각각은 다수의 데이터 비트들을 저장한다. 다수의 데이터 스토리지 스킴들에서, 메모리 셀들의 그룹에서의 상이한 비트들은 상이한 메모리 페이지들을 저장하기 위해 사용된다. 예를 들어, 3비트/셀 메모리 셀들의 그룹을 고려한다. 각각의 메모리 셀은 3개의 비트들을 저장하고, 이는 LSB(Least Significant Bit), CSB(Center Significant Bit) 및 MSB(Most Significant Bit)로 칭해진다. 그 그룹의 셀들의 LSB들은 소정의 페이지를 저장하기 위해 사용되고, CSB들은 상이한 페이지를 저장하고, 또 다른 페이지는 MSB들에 저장된다. 이러한 실시예들에서, 상이한 유효 비트들(significance bits)은 보통 상이한 에러 가능성들을 가진다. 따라서, 상이한 유효 비트들은 상이한 판독 커맨트들을 사용하여 판독될 수 있다. 이러한 선택은 메모리 컨트롤러에 의해 또는 메모리 디바이스에 의해, 적절하게 수행될 수 있다.
또 다른 예로서, R/W 회로는 반복적인 P&V(Program and Verify) 프로세스를 사용하여 메모리 셀들을 프로그램할 수 있다. 통상적인 P&V 프로세스에서, 전체 메모리 페이지는, 이러한 페이지에 매핑되는 메모리 셀들의 그룹에 프로그래밍 펄스들의 순서를 적용함으로써 기록된다. 프로그래밍 펄스들의 진폭은 펄스로부터 펄스로 점차로 증가한다. 셀들로 프로그래밍되는 저장 값들은 각각의 펄스 이우에 판독되고("검증되고"), 그 반복들은 원하는 레벨들이 도달될 때까지 계속된다. 비록 저장 값들이 낮은 정확도에서 판독되지만, 통상적으로 프로그래밍 검증은 성공적으로 수행될 수 있다. 따라서, R/W 회로는 빠르지만 낮은 정확도의 커맨드를 사용하여 태스크들을 판독하는 검증 동안 저장 값들을 판독할 수 있다.
다른 예시로서, 일부 실시예들에서, 메모리 디바이스 또는 메모리 컨트롤러는, 메모리 셀들에 저장된 저장 값들의 통계적 분포에 기초하여, 판독 동작들에서 사용되는 판독 임계값들을 조정한다. 예를 들어, 디바이스(24) 또는 컨트롤러(52)는 셀 저장 값들의 CDF(Cumulative Distribution Function)을 추정하기 위해 하나 이상의 판독 동작들을 수행할 수 있고, 그 추정된 CDF에 기초하여 판독 임계값들을 조정할 수 있다. 이러한 종류의 기술들은, 예를 들어, 앞서 인용된 PCT 국제공개공보 WO 2008/111058에 설명된다. 통상적으로, 저장 값 분포를 추정하기 위해 수행되는 판독 동작들은 낮은 정확도로 수행될 수 있다.
또한 대안적으로, 소정의 판독 태스크를 수행하기 위한 적절한 미리 정의된 판독 커맨드는 임의의 다른 적합한 조건에 기초하여 선택될 수 있다. 예를 들어, 상술한 조건들 중 둘 이상이 결합될 수 있다. 소정의 조건들이 위에서 메모리 컨트롤러에 의해 평가되는 것으로 해석되지만, 조건 평가 및/또는 커맨드 선택은 메모리 컨트롤러에 의해 또는 메모리 디바이스 내부의 회로에 의해, 원하는 만큼, 수행될 수 있다.
일부 실시예들에서, 메모리 컨트롤러는 메모리 디바이스를 설정하여 판독 커맨드들의 다양한 속성들을 설정한다. 메모리 컨트롤러는, 예를 들어 판독 임계값들, 감지 시간들 및/또는 간섭 취소 파라미터들의 수 및 값들과 같은 임의의 판독 커맨드 속성을 설정할 수 있다. 컨트롤러는 하나의 판독 커맨드, 모든 커맨드들 또는 커맨드들의 서브 세트의 속성들을 설정할 수 있다. 일부 실시예들에서, 메모리 컨트롤러는 메모리 디바이스의 라이프 사이클을 따라 메모리 셀들에서 장애를 추정할 수 있고, 따라서 판독 커맨드 속성들을 적응시킬 수 있다.
판독 커맨드들의 점진적인 선택
일부 실시예들에서, 메모리 컨트롤러(52)는 처음에, 빠르고 제한된 정확도의 판독 커맨드들을 사용하여 메모리 디바이스(24)로부터 데이터를 판독한다. 메모리 컨트롤러는, 데이터 판독이 실패하는 경우에만, 더 높은 정확도이지만 더 느린 판독 커맨드들로 되돌아간다.
도 3은, 본 발명의 실시예에 따라, 상이한 정확도 레벨들을 가지는 판독 커맨드들을 사용하여 아날로그 메모리 셀들(32)로부터 데이터를 검색하는 방법을 개략적으로 도시하는 순서도이다. 상기 방법은, 정의 단계(80)에서, 각각의 상이한 정확도 레벨들을 가지는 다수의 판독 커맨드들을 정의함으로써 시작한다. 이러한 커맨드들은 메모리 디바이스(24) 및 메모리 컨트롤러(52) 양쪽 모두에 의해 지원된다.
메모리 셀들의 소정의 그룹으로부터 저장 값들을 판독(예를 들어, 소정의 메모리 페이지를 판독)할 준비를 하는 경우, 초기 선택 단계(84)에서, 메모리 컨트롤러는 처음에 가장 낮은 정확도를 가지는 판독 커맨드를 선택한다. 이러한 커맨드는 통상적으로 가장 짧은 실행 시간을 가진다.
판독 단계(88)에서, 메모리 컨트롤러는 현재 선택된 판독 커맨드를 사용하여 소정의 페이지를 판독하도록 메모리 디바이스를 지시한다. 메모리 디바이스는 이러한 커맨드를 사용하여 요청된 페이지를 판독하고 그 판독 결과들을 메모리 컨트롤러에 제공한다.
ECC 디코딩 단계(92)에서, 메모리 컨트롤러는 메모리 디바이스에 의해 제공된 판독 결과들에 기초하여 ECC를 디코딩하는 것을 시도하여, 데이터를 재구성한다. 디코딩 체크 단계(96)에서, 메모리 컨트롤러는 ECC 디코딩이 성공적인지 여부를 체크한다. 성공한 경우, 출력 단계(100)에서, 메모리 컨트롤러는 재구성된 데이터를 호스트(56)로 출력하고, 상기 방법은 종료한다.
반면에, ECC 디코딩이 실패한 경우, 정확도 체크 단계(104)에서, 메모리 컨트롤러는 현재 선택된 판독 커맨드가 가장 높은 정확도를 가지는 커맨드인지 여부를 체크한다. 현재 선택된 판독 커맨드가 가장 높은 정확도 커맨드인 경우, 실패 단계(108)에서, 메모리 컨트롤러는 페이지 판독 동작이 실패하였음을 나타내고, 상기 방법은 종료한다.
그렇지 않다면, 선택 업데이트 단계(112)에서, 메모리 컨트롤러는 상이한 판독 커맨드를 선택하고, 그것의 정확도는 현재 선택된 커맨드의 정확도보다 높다. 그리고 나서 상기 방법은 상술한 단계(88)로 되돌아가고, 여기서 메모리 컨트롤러는 새롭게 선택된 판독 커맨드를 사용하여 요청된 페이지를 판독한다. 메모리 컨트롤러는, ECC 디코딩이 성공할 때까지 또는 모든 미리 정의된 커맨드들이 소모될 때까지, 점진적으로 정확도가 증가하는 판독 커맨드들을 사용하여 요청된 페이지를 계속 판독한다.
도 3의 프로그레시브 방법을 이용할 때, 판독 정확도는 문제의 페이지의 실제 특성들에 매칭된다. 메모리 컨트롤러는 먼저 고속 판독 커맨드를 이용하여 데이터를 판독하려고 시도하고, 더 높은 정확도가 필요하다면 더 늦은 커맨드들로 복귀한다.
메모리 컨트롤러가 더 낮은 정확도 커맨드의 실패 후에 높은 정확도 커맨드를 이용하여 어떤 페이지를 재판독할 때, 메모리 컨트롤러는 실패된 더 낮은 정확도 커맨드의 결과들을 여전히 이용할 수 있다. 예컨대, 더 낮은 정확도 커맨드의 결과들은 더 높은 정확도 커맨드의 판독 결과들과 결합될 수 있다(또는 더 높은 정확도 커맨드의 판독 결과들을 개선하는데 이용될 수 있다). 예를 들어, 컨트롤러와 메모리 디바이스 모두가 간섭 취소를 수행할 수 있는 전술한 구성을 고려해 보자. 이 구성에서, 컨트롤러는 어떠한 간섭 취소도 수행하지 않는 고속 판독 커맨드에 의해 페이지를 초기에 판독할 수 있다. ECC가 실패하면, 컨트롤러는 메모리 디바이스의 간섭 취소 메커니즘을 활성화하는 커맨드에 의해 페이지를 재판독한다. ECC가 다시 실패하면, 메모리 컨트롤러는 메모리 디바이스의 간섭 취소 메커니즘과 메모리 컨트롤러의 간섭 취소 메커니즘 모두를 적용할 수 있다.
몇몇 실시예들에서, 메모리 디바이스 및 메모리 컨트롤러는 커맨드 인터페이스를 지원하는데, 이를 이용하여 메모리 컨트롤러는 메모리 디바이스에 지시하여 적합한 판독 커맨드들을 실행시킨다. 이러한 커맨드들은 메모리 컨트롤러에게 지시하여 어떠한 미리 정의된 판독 커맨드(예를 들면, 일정한 감지 시간을 갖는 커맨드)를 적용하게 하고, 메모리 디바이스에 내부적으로 구현된 어떠한 신호 프로세싱 메커니즘을 활성화 또는 비활성화하게 하고, 판독 임계값들 또는 간섭 취소 파라미터들과 같은 속성값들을 설정하게 하고, 및/또는 메모리 디바이스에게 지시하여 임의의 적합한 액션을 수행하게 하거나 또는 본 명세서에서 설명된 판독 커맨드들을 실행시키기 위해 임의의 적합한 속성을 구성하게 한다.
감소된 감지 시간을 갖는 판독 구성들
몇몇 실시예들에서, 시스템(20)은 상이한 감지 시간들, 즉 감지 회로(40)가 판독 동작 동안에 비트 라인 전압들 또는 전류들을 측정하는 상이한 지속 시간을 갖는 다수의 판독 구성을 채택한다. 메모리 셀들의 어떤 그룹으로부터 데이터 검색을 준비할 때, 시스템은 어떤 조건을 평가하고, 이 조건에 기반하여 적합한 판독 구성을 선택한다. 이러한 판독 구성들의 몇몇 예들이 이하에서 설명된다.
이하에서 설명되는 실시예들이 2개의 판독 구성(통상적인 구성 및 감소된-감지-시간 구성)에 관련되어 있지만, 개시된 기법들은 상이한 감지 시간들을 갖는 판독 구성들의 임의의 다른 적합한 수와 함께 이용될 수 있다. 몇몇 실시예들에서, 메모리 컨트롤러(52) 및 메모리 디바이스(24)는 하나 이상의 판독 커맨드를 지원하는데, 이를 이용하여 메모리 컨트롤러는 어떤 데이터를 검색하는데 이용될 판독 구성을 지정한다. 대안적인 실시예들에서, 메모리 디바이스는 조건을 평가하고, 메모리 컨트롤러에 관계없이 적합한 판독 구성을 선택한다.
도 4는 본 발명의 일 실시예에 따라 감소된 감지 시간을 갖는 아날로그 메모리 셀들(32)로부터 데이터를 검색하기 위한 방법을 개략적으로 도시하는 순서도이다. 이 방법은 요청 단계(120)에서 호스트(56)로부터 어떤 데이터를 검색하기 위한 요청을 수신하는 메모리 컨트롤러(52)에 의해 시작한다. 문제의 데이터는 메모리 셀들(32)의 어떤 그룹, 예를 들면 어떤 워드 라인에 속하는 어떤 페이지에 저장된다.
메모리 컨트롤러는 감지 시간에서 서로 상이한 둘 이상의 판독 구성의 정의를 보유한다. 현재 예는 2개의 판독 구성(통상적인 구성 및 감소된-감지-시간 구성)에 관련된다. 메모리 컨트롤러는 문제의 메모리 셀 그룹이 조건 평가 단계(124)에서 통상적인 또는 감소된-감지-시간 판독 구성을 이용하여 판독될지 여부를 나타내는 조건을 평가한다. 이를 위해 임의의 적합한 조건이 이용될 수 있다. 예컨대, 메모리 컨트롤러는 판독 커맨드들을 선택하는데 이용되는 전술한 조건들 중 임의의 조건을 이용할 수 있다.
메모리 셀 그룹이 통상적인 감지 시간을 이용하여 판독될 것이라면, 메모리 컨트롤러는 통상적인 설정 단계(128)에서 메모리 디바이스(24)를 통상적인 판독 구성으로 설정한다. 한편, 메모리 셀 그룹이 감소된 감지 시간을 이용하여 판독될 것이라면, 메모리 컨트롤러는 감소된-시간 설정 단계(132)에서 메모리 디바이스를 감소된-감지-시간 판독 구성으로 설정한다. 그 후, 메모리 디바이스는 판독 단계(136)에서 선택된 판독 구성을 이용하여 그룹에서의 메모리 셀들을 판독한다. 메모리 컨트롤러는 출력 단계(140)에서 판독 데이터를 출력한다.
본 명세서에서 설명된 실시예들은 메모리 디바이스와 메모리 컨트롤러 간에 작업들의 어떤 분배에 관련된다. 그러나, 이 선택은 오로지 예로서 행해진다. 대안적인 실시예들에서, 조건을 평가하고, 적합한 판독 구성을 선택 및 설정하고, 메모리 셀들을 판독하는 작업들은 메모리 디바이스와 메모리 컨트롤러 간에 임의의 원하는 방식으로 나누어지거나 또는 이들 중 하나에 의해서만 독점적으로 수행될 수 있다.
전형적으로, 메모리 셀들 각각은 각각의 비트 라인에 속한다. 판독은 비트 라인들을 사전 충전하고, 이들이 방전되게 하며, 일정한 방전 기간 후에 비트 라인 전류들 또는 전압들을 감지함으로써 수행된다. 따라서, 감지된 저장값들은 비트 라인 도전성에 의존한다. 개시된 기법들 중 몇몇에서, 판독 구성의 선택은 그룹에서의 메모리 셀들이 속하는 비트 라인들의 전기 도전성들에 영향을 준다. 그 결과, 더 길거나 또는 더 짧은 감지 시간들이 설정될 수 있다.
비트 라인 도전성이 더 좋을 때(즉, 더 높을 때 - 더 작은 비트 라인 저항을 의미함), 비트 라인은 더 빠른 속도로 방전하며, 이에 따라 더 짧은 감지 시간에 감지될 수 있다. 비트 라인 도전성이 더 나쁠 때, 비트 라인은 더 느린 속도로 방전하며, 이에 따라 더 긴 감지 시간이 필요할 수 있다. 더 낮은 비트 라인 도전성은, 비트 라인 도전성을 개선하는 것이 다른 시스템 성능 측정들을 저하시킬 수 있기 때문에, 가능할 때 또는 필요한 때에 통상 선택적으로만 설정된다.
판독 동안에 비트 라인 도전성을 선택적으로 증가시키기 위한 다양한 기법들이 이용될 수 있다. 몇몇 실시예들에서, 판독 구성들은 판독 동안에 메모리 블록에서 선택되지 않은 워드 라인들, 즉 판독되는 워드 라인 이외의 워드 라인들에 인가되는 패스 전압(VPASS)에서 서로 상이하다. 일 실시예에서, 통상적인 판독 구성은 패스 전압들의 어떤 디폴트 세트를 설정한다. 감소된-감지-시간 판독 구성은 패스 전압들의 다른 세트를 설정하는데, 이들 중 적어도 하나는 통상적인 판독 구성에서의 대응하는 패스 전압보다 높다.
더 높은 패스 전압을 설정하는 것은 비트 라인 도전성을 개선하는데 도움을 주며, 이에 따라 더 짧은 감지 시간을 가능하게 한다. 한편, 패스 전압을 증가시키는 것은 오버-프로그래밍, 판독 방해 또는 다른 장애들의 가능성을 증가시킬 수 있다. 따라서, 이 기법은 예를 들어 조건들이 허용할 때, 다른 장애들이 허용가능할 때, 또는 짧은 감지 시간이 특히 중요할 때 통상 선택적으로만 이용된다.
대안적인 실시예들에서, 판독 구성들은 메모리 셀들의 그룹을 판독하는데 이용되는 판독 임계값들에서 서로 상이하다. 일 실시예에서, 통상적인 판독 구성은 (하나 이상의) 판독 임계값들의 어떤 디폴트 세트를 설정한다. 감소된-감지-시간 판독 구성은 판독 임계값들의 다른 세트를 설정하는데, 이들 중 적어도 하나는 통상적인 판독 구성에서의 대응하는 판독 임계값보다 높다.
도 5는 본 발명의 일 실시예에 따라 아날로그 메모리 셀들의 그룹에서의 프로그래밍 레벨들 및 연관된 통상적인 및 감소된-감지-시간 판독 임계값들을 보여주는 그래프이다. 도 5의 예는 4-레벨, 2 비트/셀 메모리 셀들의 그룹에 관련된다. 프로그래밍 후에, 메모리 셀들의 (현재 예의 임계 전압들에서의) 저장값들은 4개의 가능한 2-비트 조합들에 대응하는 4 프로그래밍 레벨 분포들 150A...150D로 분포된다. 디바이스(24)는 일반적으로 프로그래밍 레벨 분포들 간에 3개의 판독 임계값을 위치시키고, 셀 저장값들을 판독 임계값들에 비교함으로써 이러한 메모리 셀들에 저장되어 있는 데이터를 검색한다.
몇몇 실시예들에서, 통상적인 판독 임계값들(154)은 도면에서 실선으로 마킹된다. 감소된-감지-시간 판독 임계값들(158)은 도면에서 파선으로 마킹된다. 도면에서 볼 수 있는 바와 같이, 감소된-감지-시간 판독 임계값들은 각각의 통상적인 판독 임계값들보다 높다.
주어진 판독 임계값을 증가시키는 것은 비트 라인 도전성을 개선시키는데 도움을 주며, 이에 따라 더 짧은 감지 시간의 이용을 가능하게 한다. 한편, 감소된-감지-시간 판독 임계값들은, 이들이 대응하는 통상적인 판독 임계값들에 비해 프로그래밍 레벨 분포들에 통상 더 가깝기 대문에, 판독 에러들의 가능성을 증가시킬 수 있다.
도 5의 예에서, 통상적인 판독 임계값들은 인접하는 프로그래밍 레벨 분포들 간의 중간 지점들에 거의 위치한다. 이러한 설정은 일반적으로 낮은 에러 가능성을 낳는다. 한편, 감소된-감지-시간 판독 임계값들은 인접하는 프로그래밍 레벨 분포들을 분리시키는 경계 지역들의 상부 에지들에 위치한다. 이러한 설정은 일반적으로 에러 가능성 면에서 차선이지만, 몇몇 경우들에서는 비트 라인 도전성을 개선하고 짧은 감지 시간을 가능하게 하기 위해 바람직할 수 있다. 몇몇 실시예들에서, 감소된-감지-시간 판독 임계값들은 프로그래밍 레벨 분포들 내에서 균일하고, 더 높게 위치할 수 있다. 이러한 설정은 (예를 들어, 에러 정정 코드를 이용하여 정정될 수 있는) 판독 에러들의 희생으로 감지 시간을 추가로 단축한다.
몇몇 실시예들에서, 메모리 컨트롤러(52)는 데이터에 의해 프로그래밍되는 동일한 블록에서의 다른 워드 라인들의 수에 의존하여 어떤 워드 라인을 판독하기 위한 감지 시간을 설정한다. 이 기법의 근거는 소거된(논-프로그래밍된) 메모리 셀들이 비트 라인 도전성을 개선하는 반면에, 프로그래밍된 메모리 셀들이 비트 라인 도전성을 저하시킨다는 점에 있다. 메모리 블록이 프로그래밍된 워드 라인들의 작은 수만을 가질 때, 이 블록에서의 비트 라인들의 도전성은 일반적으로 좋으며, 이것은 일반적으로 짧은 감지 시간으로 원하는 워드 라인을 판독하는 것을 가능하게 한다. 한편, 블록이 많은 프로그래밍된 워드 라인들(즉, 비트 라인 당 적은 소거된 셀들)을 갖는다면, 비트 라인 도전성들은 더 나빠질 수 있으며, 더 긴 감지 시간이 필요할 수 있다.
동일한 비트 라인 충전/방전 주기 동안에 다중의 감지 시간을 이용한 판독
몇몇 실시예들에서, 시스템(20)은 비트 라인들의 단일 방전 주기 동안에 다중의 감지 시간을 이용하여 메모리 셀들의 어떤 그룹(일반적으로는 페이지)을 판독한다. 후술하는 실시예들이 상이한 감지 시간들을 갖는 판독 동작들의 두 가지 타입들에 관련되지만, 개시된 기법들은 감지 시간에서 서로 상이한 판독 동작들의 임의의 다른 적합한 수에 의해 이용될 수 있다.
전술한 바와 같이, 선택된 워드 라인을 따른 메모리 셀들은 판독에 이용되는 각각의 비트 라인들에 연결된다. 메모리 디바이스(24)는 비트 라인들을 사전 충전하고, 비트 라인들이 방전되게 하며, 일정한 감지 시간으로 비트 라인 전류 또는 전압을 감지함으로써 주어진 페이지를 판독한다. 주어진 비트 라인의 감지된 전류 또는 전압은 그 비트 라인에 연결된 메모리 셀의 임계 전압을 나타내며, 이에 따라 메모리 셀에 저장된 데이터를 나타낸다.
도 6은 본 발명의 일 실시예에 따라 단일 비트 라인 방전 주기 동안에 다중의 감지 시간을 이용하는 것을 보여주는 그래프이다. 플롯(160)은 주어진 비트 라인에 흐르는 전류를 시간의 함수로서 보여주고 있다. 이 도면은 명확성을 위해 단일 비트 라인에 관련된다. 일반적으로, 다중의 각각의 비트 라인에 연결된 다중의 메모리 셀들은 유사한 방식으로 병렬로 판독된다. 본 명세서에서 설명된 실시예들이 비트 라인 전류의 감지에 관련되지만, 개시된 기법들은 또한 비트 라인 전압을 감지함으로써 구현될 수 있다.
선택된 워드 라인(예를 들면, 페이지)을 따라 메모리 셀들의 그룹의 판독을 준비할 때, 메모리 디바이스는 문제의 메모리 블록의 비트 라인들을 일정한 초기 전압으로 사전 충전한다. 시간(164)에서, 비트 라인들은 방전되게 된다. 비트 라인의 방전 곡선은 비트 라인 도전성을 나타내며, 이에 따라 선택된 워드 라인에서의 메모리 셀의 임계 전압을 나타낸다.
몇몇 실시예들에서, 메모리 디바이스의 감지 회로(40)는 동일한 방전 주기 동안에, 즉 판독 동작들 사이에 비트 라인들을 재충전하지 않고 비트 라인 전류를 다중 시간 감지한다. 도 6의 예에서, 제1 판독 동작은 (도면에서 "제1 감지 시간"으로 표시된) 시간들 164와 168 사이의 간격에 걸쳐 비트 라인 전류를 감지하고, 제2 판독 동작은 (도면에서 "제2 감지 시간"으로 표시된) 시간들 164와 172 사이의 간격에 걸쳐 비트 라인 전류를 감지한다.
일 실시예에서, 비트 라인 충전 간격은 15μS 정도이며, 비트 라인 방전 간격은 25-35μS 정도이다. 다른 실시예에서, 비트 라인 충전 간격은 1μS 정도이며, 비트 라인 방전 간격은 40-50μS 정도이다. 그러나, 이러한 도면들은 오로지 예로서 주어진 것이며, 임의의 다른 적합한 값들이 대안적인 실시예들에서 이용될 수 있다.
제2 판독 동작은 제1 판독 동작보다 더 긴 시간 간격에 걸쳐 비트 라인 전류를 감지(예를 들면, 통합)하며, 이에 따라 일반적으로 더 정확하다. 한편, 제2 판독 동작은 일반적으로 더 긴 감지 시간으로 인해 제1 판독 동작보다 더 긴 레이턴시를 갖는다. 후술하는 실시예들은 판독 동작들의 두 가지 타입을 여러 방식으로 조합하여 효율적인 판독 해결 방안들을 제공한다.
도 1에 도시된 감지 시간들의 길이 및 타이밍은 오로지 예로서 도시되어 있다. 대안적인 실시예들에서, 메모리 디바이스(24)는 감지 시간에서 서로 상이한 판독 동작들의 임의의 다른 적합한 타입들을 적용할 수 있다.
도 7은 본 발명의 일 실시예에 따라 단일 비트 라인 방전 주기 동안에 다중의 감지 시간을 이용한 판독 방안을 개략적으로 도시하는 순서도이다. 이 실시예에서, 메모리 디바이스는 제1 (더 짧은) 감지 시간으로 메모리 셀들을 초기에 판독한다. 초기 감지 후에, 메모리 디바이스는 초기 판독이 성공적이었는지 여부(즉, 제1 감지 시간이 성공적인 판독에 충분한지 여부)를 표명하는 고속 검증 프로세스를 실행한다. 만약 고속 검증이 판독이 실패하였을 수 있다고 표시한다면, 메모리 디바이스는 제2 (긴) 감지 시간으로 메모리 셀들을 다시 감지한다.
본 예시에서, 전체 프로세스는 동일한 비트 라인 방전 사이클, 즉, 제1 판독 동작과 제2 판독 동작 간의 비트 라인들을 재-충전하지 않고 수행될 수 있다. 그러나, 대안적 실시예들에서, 두 개의 감지 동작은 상이한 방전 사이클들에서 수행될 수 있다.
고속 검증 프로세스는 메모리 디바이스에서 신호 처리 유닛(44)에 의해 전형적으로 수행된다. 일 실시예에서, 감지 회로(40)는 제1 감지 시간으로 비트 라인들을 감지하고 판독 버퍼에 판독 결과들(각각의 메모리 셀에 대해 이진 "1" 또는 "0")을 저장한다. 단일 처리 회로(44)는 판독 버퍼의 부분 또는 전부에서 주어진 데이터 값의 발생 빈도(예를 들어, "1" 발생의 수 또는 "0" 발생의 수)를 표명한다. 신호 처리 회로는 발생의 수를 예상되는 값과 비교하고, 판독이 비교에 기초하여 성공적일 것 같은 지를 표시한다.
예를 들어, 저장된 데이터가 스크램블링되는 경우에, "1"과 "0"의 가능성은 유사하고, 따라서 각각의 데이터 값은 판독 결과의 약 50% 가량 발생할 것이다. 이런 경우에, 회로(44)는 "1" 또는 "0" 발생의 수가 50%에 가까운지, 예를 들어, 45%와 55% 사이에 있는 지를 검증할 수 있다. 대안적으로, 임의의 다른 적절한 예상되는 값들이 이용될 수 있다.
회로(44)는 여러 방식으로, 예를 들어 단일 사이클에서의 발생을 카운트하는 병렬 하드웨어를 이용하거나, 워드-바이-워드(word-by-word)로 버퍼 내의 데이터를 스캐닝하는 직렬 하드웨어를 이용하여, "1" 또는 "0" 발생의 수를 카운트할 수 있다. 대안적 실시예에서, 회로(44)는 발생의 수를 대응하는 아날로그 값(예를 들어, 전압 레벨)으로 변환하고, 이 아날로그 값을 예상되는 값을 나타내는 아날로그 임계값과 비교한다. 또한, 대안적으로, 메모리 디바이스와 메모리 컨트롤러 사이의 인터페이스가 비트 라인 방전 사이클 동안에 프로세스를 완료할 정도로 고속이라면, 카운팅하는 것과 비교하는 것은 메모리 컨트롤러(52)에 의해 수행될 수 있다. (앞서 기술된 바와 같이, 대안적 실시예에서, 프로세스는 반드시 단일 방전 사이클 동안 구현되는 것은 아니고, 예를 들어 두 개의 감지 동작이 상이한 방전 사이클들에서 수행될 수 있다.)
도 7의 방법은 충전 단계(176)에서, 메모리 디바이스(24)가 문제가 되고 있는 메모리 블록의 비트 라인들을 충전하고, 그 다음 비트 라인들이 방전되는 것을 허용하는 것으로 시작한다. 감지 회로(40)는 제1 감지 단계(180)에서 제1 감지 시간으로 (각각의 비트 라인들을 감지함으로써) 선택된 워드를 따라 메모리 셀들을 감지한다. 회로(40)는 판독 버퍼에 판독 결과들을 저장한다.
그 다음, 신호 처리 회로(44)는 제1 판독 동작의 결과에 고속 검증 프로세스를 수행한다. 본 예시에서, 회로(44)는 카운팅 단계(184)에서 판독 버퍼의 부분 또는 전부 내의 "1" 데이터 값들의 발생의 수를 카운트한다. 회로(44)는 발생의 수를 예상되는 값과 비교한다. 회로(44)는 성공 확인 단계(188)에서 비교가, 판독이 성공적이었다고 표시하는지를 확인한다. 성공적이라면, 메모리 디바이스(24)는 출력 단계(192)에서 판독 결과들을 출력하고, 방법은 종료된다.
다른 경우에, 즉, 비교가, 제1 판독 동작이 실패한 것 같다고 표시한다면, 감지 회로(40)는 재-감지 단계(196)에서 제2 (긴) 감지 시간으로 비트 라인들을 재-감지한다. 회로(40)는 단계(192)에서 판독 버퍼에 판독 결과들을 저장하고, 판독 결과들을 출력한다. 앞서 설명된 바와 같이, 제1 감지, 고속 검증 및 제2 감지의 모든 프로세스는 동일한 비트 라인 방전 사이클 동안에 완료된다.
대안적 실시예에서, 긴 감지 시간의 고속 검증 및 재-감지의 프로세스는 임의의 적절한 수의 반복만큼 반복될 수 있다. 예시적 실시예에서, 신호 처리 회로는 결과들이 특정 성공 기준을 만족할 때까지, 또는 특정 시간이 만료할 때까지, 점진적으로 감지 시간을 증가시키고, 판독 결과들을 검증한다.
도 7의 방법은 조건들이 허락하는 경우에[예를 들어, 메모리 셀들에서의 왜곡(distortion)이 적은 경우에], 시스템(20)이 짧은 감지 시간을 이용하고 낮은 레이턴시를 달성하는 것을 가능하게 한다. 왜곡 레벨이 높은 경우에, 이 방법은 판독 신뢰도를 손상시키지 않도록 긴 감지 시간으로 되돌아 간다. 따라서, 레이턴시와 신뢰도 간의 트레이드-오프는 판독되고 있는 메모리 셀들의 실제 조건들에 매칭하도록 적응적인 방법으로 조정된다.
몇몇 실시예들에서, 감지 회로(40)는 짧은 감지 시간으로 페이지의 메모리 셀들의 제1 서브 세트 및 긴 감지 시간으로 페이지의 메모리 셀들의 제2 서브 세트를 판독함으로써 감소된 레이턴시로 페이지를 판독한다. 제1 서브 세트의 판독 결과들은 레이턴시도 감소시키기 위해 제2 서브 세트를 판독하는 것과 병렬로(또는 적어도 반-병렬로(semi-parallel) 메모리 컨트롤러(52)에게 전송된다. 제2 서브 세트는 이들의 판독 결과들이 이후에 전송되기 때문에 비교적 긴 감지 시간으로 판독될 수 있다. 결과로서, 제2 서브 세트는 높은 정확도로 판독된다.
본 예시에서, 두 개의 판독 동작은 단일 비트 라인 방전 사이클 내에서 수행된다. 그러나, 대안적 실시예에서는, 두 개의 판독 동작이 상이한 방전 사이클들에서 수행된다.
도 8은 본 발명의 실시예에 따른 다중 감지 시간을 이용하여 판독 스킴을 개략적으로 도시하는 흐름도이다. 이 방법은 비트 라인 충전 단계(200)에서 메모리 디바이스(24)가 문제가 되는 메모리 블록의 비트 라인들을 충전하고, 비트 라인들이 방전되는 것을 허용하는 것으로 시작한다.
감지 회로(40)는 제1 판독 단계(204)에서 제1 감지 시간으로(각각의 비트 라인들을 감지함으로써) 선택된 워드 라인을 따라 메모리 셀들의 제1 서브 세트를 감지한다. 메모리 디바이스는 제1 전달 단계(208)에서 제1 서브 세트의 판독 결과들을 메모리 컨트롤러(52)에게 전송한다.
단계(208)와 병렬로(또는 적어도 부분적으로 오버랩으로), 감지 회로(40)는 제2 판독 단계(212)에서 제2 감지 시간으로 선택된 워드 라인을 따라 메모리 셀들의 제2 서브 세트를 감지한다. 메모리 디바이스는 제2 전송 단계(216)에서 제2 서브 세트의 판독 결과들을 메모리 컨트롤러(52)에게 전송한다.
이해될 수 있는 바와 같이, 제2 서브 세트가 감지되는 동안에 제1 서브 세트의 판독 결과들이 전송되기 때문에, 전체 판독 레이턴시는 감소된다. 동일한 시간에, 제2 서브 세트는 비교적 긴 감지 시간으로, 그에 따라 높은 정확도로 판독된다. 제1 서브 세트는 전송 프로세스를 일찍 시작하기 위해 비교적 짧은 감지 시간으로 판독된다.
몇몇 실시예에서, 감지 회로(40)는 제1 및 제2 감지 시간을 모두 이용함으로써 페이지에서의 모든 메모리 셀들을 감지한다. 메모리 디바이스는 제2 판독 동작이 진행 중인 동안에, (제2 판독 동작의 결과들보다 더 일찍 이용가능한) 제1 판독 동작의 결과들을 전송하기 시작한다. 제2 판독 동작의 결과가 이용가능하게 됨에 따라, 이들도 또한 전송된다. 제1 판독 동작의 판독 결과들이 손상된다면, 메모리 컨트롤러는 제2 판독 동작의 결과들을 이용한다. 양 판독 동작은 단일 비트 라인 방전 사이클 내에 수행된다.
도 9는 본 발명의 실시예에 따른 다중 감지 시간을 이용하여 판독 도식을 개략적으로 설명하는 흐름도이다. 이 방법은 메모리 디바이스(24)가 사전 충전 단계(220)에서 문제가 되는 메모리 블록의 비트 라인들을 충전하고, 비트 라인들이 방전되는 것을 허용하는 것으로 시작한다.
감지 회로(40)는 제1 감지 단계(224)에서 제1 감지 시간으로 (각각의 비트 라인을 감지함으로써) 선택된 워드 라인을 따라 메모리 셀들을 감지한다. 회로(40)는 제1 판독 동작의 결과들을 제1 판독 버퍼에 저장한다. 신호 처리 회로(44)는 제1 판독 단계(228)에서 제1 버퍼로부터의 제1 판독 동작의 결과를 판독한다.
회로(44)는 유효성 확인 단계(232)에서, (짧은 감지 시간을 이용하여 판독되었던) 제1 판독 결과들이 유효한지를 확인한다. 유효성 확인은, 예를 들어 데이터의 CRC(Cyclic Redundancy Check)를 검증하는 것, 데이터를 인코딩하는 ECC(Error Correction Code)를 디코딩하는 것, 특정 데이터 값의 발생의 수가 예상되는 범위 내에 있는 가를 검증하는 것, 또는 임의의 다른 적절한 검증의 종류를 포함할 수 있다. 제1 판독 동작의 결과들이 유효하면, 메모리 디바이스는 결과 전송 단계(236)에서 이들을 메모리 컨트롤러(52)에게 전송하고, 방법은 종료된다. 다른 경우에, 제1 판독 버퍼의 콘텐츠는 폐기 단계(240)에서 폐기된다.
앞서 기술된 단계들(228-240)의 진행과 병렬로, 감지 회로(40)는 제2 감지 단계(244)에서 제2 감지 시간으로 (각각의 비트 라인들을 감지함으로써) 선택된 워드 라인을 따라 메모리 셀들을 감지한다. 회로(40)는 제2 판독 동작의 결과를 제2 판독 버퍼에 저장한다.
신호 처리 회로(44)는 제2 판독 단계(248)에서 제2 버퍼로부터 제2 판독 동작의 결과들을 판독한다. 회로(44)는 단계(236)에서 제2 판독 동작의 결과들을 메모리 컨트롤러(52)에게 전송한다.
이 예시에서, 메모리 컨트롤러는 (하나는 제1 판독 동작에 의해 산출되고 다른 하나는 제2 판독 동작에 의해 산출되는) 두 개의 결과 셋을 수신한다. 메모리 컨트롤러는, 예를 들어 더 늦게 도착하는 제2 판독 동작의 더 정확한 결과들 또는 더 일찍 도착하는 제1 판독 동작의 덜 정확한 결과들의 세트를 이용하도록 선택할 수 있다.
대안적 실시예에서, 제1 판독 동작의 결과들이 (단계 232에서) 유효한 것으로 발견되면, 메모리 디바이스는 메모리 컨트롤러가 두 개의 결과들의 세트를 수신하지 않도록 제2 판독 동작을 종료한다. 또 다른 실시예에서, 메모리 디바이스는 유효성과는 무관하게, 양 판독 동작의 결과들을 메모리 컨트롤러에게 전송한다. 이 실시예에서, 단계(232)는 메모리 컨트롤러에 의해 수행될 수 있다.
상이한 감지 시간들로 ECC 코드 워드의 다수의 부분 판독
앞서 설명된 바와 같이, 몇몇 실시예에서, ECC 유닛(68)은 ECC를 이용하여 메모리 디바이스에 저장될 데이터를 인코딩하고, 메모리로부터 판독되는 데이터의 ECC를 디코딩한다. 유닛(68)은 전형적으로 ECC 코드 워드 당 특정 최대 수까지의 에러를 교정할 수 있다. 그러나, 통상적인 판독 구성 및 감소된-감지-시간 판독 구성을 이용하는 경우에, 감소된-감지-시간 판독 구성의 에러 확률은 유닛(68)이 ECC를 성공적으로 디코딩하는 데에 너무 높을 수 있다.
몇몇 실시예에서, 시스템(20)은 통상적인 판독 구성을 이용하여 각각의 ECC 코드 워드의 부분을 판독하고, 감소된-감지-시간 판독 구성을 이용하여 코드 워드의 잔여 부분을 판독함으로써 이 제약을 극복할 수 있다. 두 부분 간의 비율은, 코드 워드당 에러들의 평균 수가 유닛(68)의 에러 교정 능력 내에 있도록 설정된다. 그 결과, ECC코드 워드들은 성공적으로 디코딩됨과 동시에 평균 레이턴시는 감소될 수 있다.
몇몇 실시예에서, 시스템(20)[예를 들어, 메모리 컨트롤러(52) 또는 메모리 디바이스(24) 내의 신호 처리 유닛(44)]은 각각의 ECC 코드 워드를 다수의 부분으로 나누고 각각의 부분을 각각의 메모리 셀 그룹(예를 들어, 각각의 페이지)에 저장한다. 주어진 코드 워드를 메모리에서 검색하는 경우에, 시스템은 통상적인 판독 구성을 이용하여 코드 워드의 하나 이상의 부분을, 및 감소된-감지-시간 판독 구성을 이용하여 잔여 부분 또는 부분들을 판독한다.
몇몇 실시예에서, 주어진 코드 워드의 상이한 부분들은 각각의 상이한 메모리 디바이스들, 예를 들어, 상이한 메모리 다이(die)들 또는 메모리 플레인(plane)들에 저장된다. 코드 워드를 판독하는 경우에, 상이한 디바이스들은 병렬로 판독되고, 각각의 디바이스는 적절한 판독 구성을 이용한다. 이 병렬 구성은 또한 판독 레이턴시를 감소시킨다. 하지만, 대안적 실시예들에서, 코드 워드의 상이한 부분들은 동일한 메모리 디바이스에 저장될 수 있다.
도 10은 본 발명의 실시예에 따른 앞서 기술된 판독 프로세스를 개략적으로 도시한다. 본 예시에서, 시스템(20)은 ECC 코드 워드(250)를 254A...254D로 표시된 네 개의 부분들로 분할한다. 시스템은 코드 워드의 네 개의 부분을 네 개의 각각의 상이한 메모리 다이(262A...262D)에 속하는 네 개의 각각의 메모리 페이지(258A...258D)에 저장한다.
메모리에서 ECC 코드 워드를 검색하기 위해서는, 시스템(20)은 (도면에 "고속 판독"이라고 표시된) 통상적인 판독 구성을 이용하여 다이들(262A...262C)로부터 페이지들(258A...258C)을 판독하고, (도면에 "저속 판독"이라고 표시된) 감소된-감지-시간 판독 구성을 이용하여 다이(262D)로부터 페이지(258D)를 판독한다. 네 개의 판독 동작은 ECC 코드 워드(250)의 부분들(254A...254D)을 재산출한다.
재산출된 코드 워드는, 그 다음 디코딩을 위해 유닛(68)에게 제공된다. 평균적으로, 각각의 부분(254A...254C)은 비교적 큰 수의 에러를 갖는 반면, 부분(254D)은 이것을 판독하는데 이용되는 긴 감지 시간 때문에 비교적 작은 수의 에러를 갖는다. (통상적인 판독을 이용한 코드 워드 판독의 3/4과 감소된-감지-시간 판독을 이용한 코드 워드 판독의 1/4인)부분들 사이의 비율은 전체 코드 워드에 걸친 에러들의 평균 수가 유닛(68)의 에러 교정 능력 내에 있도록 설정된다.
도 10의 스토리지 구성은 예시 구성인데, 이는 순전히 개념적 명확성을 위해 선택되었다. 대안적 실시예들에서, 임의의 다른 적절한 구성이 이용될 수 있다. 예를 들어, ECC 코드 워드는 임의의 바람직한 수의 부분으로 분할될 수 있고, 임의의 바람직한 수의 다이 중에 인터리빙(interleaved)될 수 있다. 통상적인 판독을 이용하여 판독된 부분들의 수와 감소된-감지-시간 판독을 이용하여 판독된 부분들의 수 사이의 비율은 임의의 바람직한 비율로 설정될 수 있다.
몇몇 실시예에서, 통상적인 판독을 이용하여 다이들로부터 판독된 데이터는 먼저 메모리 컨트롤러에게 전송되고, 감소된-감지-시간 판독을 이용하여 다이들로부터 판독된 데이터는 마지막에 전송된다. 이 데이터 전송의 소팅(sort)은 전송 레이턴시를 최소화한다. 하지만, 대안적으로, 임의의 다른 적절한 전송 순서가 이용될 수 있다.
몇몇 실시예에서, 시스템(20)은 하나의 코드 워드로부터 여러 다이를 판독하기 위해 이용된 판독 구성을 다른 것으로 교체한다. 본 예에서, 시스템은 이하의 교체를 적용시킬 수 있다.
코드 워드 다이 #1 다이 #2 다이 #3 다이 #4
I 고속 고속 고속 저속
II 고속 고속 저속 고속
III 고속 저속 고속 고속
IV 저속 고속 고속 고속
V 고속 고속 고속 저속
... ... ... ... ...
몇몇 실시예에서, 한 이상의 다이들은 판독 캐시 모드를 이용하여 판독되고, 여기서 다음 페이지는 현재 페이지의 판독 결과가 메모리 컨트롤러로 전송되는 동안 메모리 셀들로부터 판독(감지)된다. 이러한 모드를 이용하는 것은 판독 레이턴시를 더 감소시킨다.
몇몇 실시예에서, 메모리 셀들은 MLC(Multi-Level Cell)들을 포함하고, 시스템(20)은 통상적 판독 구성을 이용하여 몇몇 MLC 비트들을 판독하고, 감소된-감지-시간 판독 구성을 이용하여 다른 MLC 비트들을 판독한다. 예컨대, 4-레벨(2 비트들/셀) MLC를 이용하는 경우, 시스템(20)은 통상적 판독 구성을 이용하여 MSB 페이지들을 판독할 수 있고, 감소된-감지-시간 판독 구성을 이용하여 LSB 페이지들을 판독할 수 있다.
몇몇 실시예에서, LSB 및 MSB 프로그래밍 레벨 분배는 통상적 및 감소된-감지-시간 판독 구성들이 매칭되도록 고안된다. 예컨대, 프로그래밍 레벨 분배는 LSB 페이지들이, 평균적으로, MSB 페이지들보다 더 적은 에러들을 갖도록 고안될 수 있다. 이러한 종류의 고안은 MSB 페이지(덜 정확한 고속 판독을 이용하여 판독됨) 및 LSB 페이지(더 정확한 통상적 판독을 이용하여 판독됨)내의 에러 확률을 균등화하는데 도움을 준다.
몇몇 실시예에서, 몇몇 페이지(예컨대, 프로그래밍 레벨 분배)에서 이용되는 스토리지 구성은 페이지가 판독되는 판독 구성(통상적 또는 감소된-감지-시간)을 고려한다. 이들 실시예에서, 주어진 페이지에 대한 판독 구성은 고정된다. 다른 실시예에서, 주어진 페이지는 반드시 주어진 판독 구성을 이용하여 판독되지 않는다(즉, 주어진 페이지는 상이한 시간에 상이한 판독 구성을 이용하여 판독될 수 있음).
위에서 기술된 실시예들은 일례로서 인용되었으며, 본 발명은 전술한 바와 같은 특정적으로 도시되고 기술된 것에만 한정되지 않는다는 것을 알아야 한다. 오히려, 본 발명의 범주는 전술한 다양한 특징들의 콤비네이션 및 서브-콤비네이션과 당업자가 전술한 기재를 통해 알 수 있지만 종래 기술에는 개시되어 있지 않은 변형들 및 수정들을 포함한다. 본 특허 출원에 참조된 문서는, 임의의 용어들이, 정의(definition)에 대한 상충이 본 명세서에서 명백하게 또는 암시적으로 이루어지고, 본 명세서에서는 정의만이 고려되는 방식으로 참조된 문서들에 정의되는 한도를 제외하고는, 본 출원에 필수적인 것으로 고려된다.

Claims (20)

  1. 데이터 저장 방법으로서,
    아날로그 메모리 셀들의 그룹 내의 메모리 셀들에 각각의 저장 값들을 기록(writing)함으로써 상기 그룹 내에 데이터를 저장하는 단계;
    제1 감지 시간으로 상기 메모리 셀들을 감지하는 제1 판독 동작을 이용하여 상기 그룹 내의 하나 이상의 메모리 셀을 판독하는 단계;
    상기 제1 감지 시간보다 긴 제2 감지 시간으로 상기 메모리 셀들을 감지하는 제2 판독 동작을 이용하여 상기 그룹 내의 메모리 셀들 중 적어도 하나를 판독하는 단계; 및
    상기 제1 판독 동작 및 상기 제2 판독 동작의 판독 결과에 기초하여 상기 메모리 셀들의 그룹 내에 저장된 데이터를 재구성하는 단계
    를 포함하고,
    상기 제2 판독 동작을 이용하여 판독하는 단계는, 상기 제1 판독 동작의 성공에 대한 평가(assessment)를 수행하는 단계 및 상기 평가가 상기 제1 판독 동작이 실패하였다는 것을 나타낼 때에만 상기 제2 판독 동작을 수행하는 단계를 포함하는,
    데이터 저장 방법.
  2. 제1항에 있어서,
    상기 그룹 내의 메모리 셀들은 각각의 비트 라인들에 결합되고, 상기 제1 판독 동작을 이용하여 판독하는 단계는 상기 비트 라인들을 충전하는 단계 및 상기 제1 감지 시간으로 상기 비트 라인들의 방전을 측정하는 단계를 포함하고, 상기 제2 판독 동작을 이용하여 판독하는 단계는 상기 비트 라인들을 재충전하지 않고 상기 제2 감지 시간으로 상기 비트 라인들의 방전을 측정하는 단계를 포함하는 데이터 저장 방법.
  3. 제1항에 있어서,
    상기 그룹 내의 메모리 셀들은 하나의 워드 라인과 연관되어 있는 데이터 저장 방법.
  4. 삭제
  5. 제1항에 있어서,
    상기 평가를 수행하는 단계는 상기 그룹 내의 메모리 셀들에 있는 주어진 데이터 값의 발생 빈도(occurrence frequency)를 추정하는 단계 및 상기 추정된 발생 빈도를 예상 값과 비교하는 단계를 포함하는 데이터 저장 방법.
  6. 제1항에 있어서,
    상기 제1 판독 동작의 판독 결과들의 적어도 일부를 출력하면서, 동시에 상기 제2 판독 동작을 수행하는 단계를 포함하는 데이터 저장 방법.
  7. 데이터 저장 방법으로서,
    아날로그 메모리 셀들의 다수의 각각의 그룹들 내에, 다수의 부분들로 분할된 에러 정정 코드(Error Correction Code; ECC) 코드 워드를 저장하는 단계;
    제1 감지 시간으로 상기 아날로그 메모리 셀들을 판독하는 제1 판독 구성을 이용하여 상기 부분들 중 제1 서브세트를 판독하는 단계;
    상기 제1 감지 시간보다 긴 제2 감지 시간으로 상기 아날로그 메모리 셀들을 판독하는 제2 판독 구성을 이용하여 상기 부분들 중 상기 제1 서브세트와는 다른 제2 서브세트를 판독하는 단계; 및
    상기 판독된 제1 서브세트와 제2 서브세트를 이용하여 상기 ECC 코드 워드를 디코딩하는 단계
    를 포함하는 데이터 저장 방법.
  8. 제7항에 있어서,
    상기 다수의 부분들로 분할된 ECC 코드 워드를 저장하는 단계는 상기 부분들을 각각의 상이한 메모리 디바이스들에 저장하는 단계를 포함하고, 상기 제1 서브세트 및 제2 서브세트를 판독하는 단계는 상기 각각의 메모리 디바이스들로부터 다수의 부분들을 동시에 판독하는 단계를 포함하는 데이터 저장 방법.
  9. 제8항에 있어서,
    상기 다수의 각각의 메모리 디바이스들로부터 다수의 부분들로 분할된 부가의 ECC 코드 워드를 판독하는 단계를 더 포함하고, 상기 부가의 코드 워드의 부분들을 판독할 때 사용되는 제1 서브 세트 및 제2 서브 세트가 상기 코드 워드의 부분들을 판독하기 위해 사용되는 제1 서브세트 및 제2 서브 세트와는 상이한 데이터 저장 방법.
  10. 제7항에 있어서,
    상기 아날로그 메모리 셀들 각각은 적어도 제1 비트들 및 제2 비트들을 유지하고, 상기 다수의 부분들로 분할된 ECC 코드 워드를 저장하는 단계는 상기 제1 비트들에 상기 제1 판독 구성을 이용하여 판독될 부분들을 저장하고, 상기 제2 비트들에 상기 제2 판독 구성을 이용하여 판독될 부분들을 저장하는 단계를 포함하는 데이터 저장 방법.
  11. 데이터 저장 장치로서,
    다수의 아날로그 메모리 셀; 및
    회로를 포함하고,
    상기 회로는,
    아날로그 메모리 셀들의 그룹 내의 메모리 셀들에 각각의 저장 값들을 기록함으로써 상기 그룹 내에 데이터를 저장하고,
    제1 감지 시간으로 상기 메모리 셀들을 감지하는 제1 판독 동작을 이용하여 상기 그룹 내의 하나 이상의 메모리 셀을 판독하며,
    상기 제1 감지 시간보다 긴 제2 감지 시간으로 상기 메모리 셀들을 감지하는 제2 판독 동작을 이용하여 상기 그룹 내의 메모리 셀들 중 적어도 하나를 판독하고, 및
    상기 제1 판독 동작 및 상기 제2 판독 동작의 판독 결과에 기초하여 상기 메모리 셀들의 그룹 내에 저장된 데이터를 재구성
    하도록 구성되며,
    상기 제2 판독 동작을 이용하여 상기 그룹 내의 메모리 셀들 중 적어도 하나를 판독하기 위하여 상기 회로는 상기 제1 판독 동작의 성공에 대한 평가를 수행하고 상기 평가가 상기 제1 판독 동작이 실패하였다는 것을 나타낼 때에만 상기 제2 판독 동작을 수행하도록 구성되는,
    데이터 저장 장치.
  12. 제11항에 있어서,
    상기 그룹 내의 메모리 셀들은 각각의 비트 라인들에 결합되고, 상기 회로는, 상기 비트 라인들을 충전하고 및 상기 제1 감지 시간으로 상기 비트 라인들의 방전을 측정함으로써 상기 제1 판독 동작을 이용하여 판독하고, 상기 비트 라인들을 재충전하지 않고 상기 제2 감지 시간으로 상기 비트 라인들의 방전을 측정함으로써 상기 제2 판독 동작을 이용하여 판독하도록 구성되는 데이터 저장 장치.
  13. 제11항에 있어서,
    상기 그룹 내의 메모리 셀들은 하나의 워드 라인과 연관되어 있는 데이터 저장 장치.
  14. 삭제
  15. 제11항에 있어서,
    상기 회로는, 상기 그룹 내의 메모리 셀들에 있는 주어진 데이터 값의 발생 빈도를 추정하고 상기 추정된 발생 빈도를 예상 값과 비교함으로써 상기 평가를 수행하도록 더 구성되는 데이터 저장 장치.
  16. 제11항에 있어서,
    상기 회로는 상기 제1 판독 동작의 판독 결과들의 적어도 일부를 출력하면서, 동시에 상기 제2 판독 동작을 수행하도록 구성되는 데이터 저장 장치.
  17. 데이터 저장 장치로서,
    다수의 아날로그 메모리 셀, 및
    회로를 포함하고,
    상기 회로는,
    상기 아날로그 메모리 셀들의 다수의 각각의 그룹들 내에, 다수의 부분들로 분할된 에러 정정 코드(ECC) 코드 워드를 저장하고,
    제1 감지 시간으로 상기 아날로그 메모리 셀들을 판독하는 제1 판독 구성을 이용하여 상기 부분들 중 제1 서브세트를 판독하며,
    상기 제1 감지 시간보다 긴 제2 감지 시간으로 상기 아날로그 메모리 셀들을 판독하는 제2 판독 구성을 이용하여 상기 부분들 중 상기 제1 서브세트와는 다른 제2 서브세트를 판독하고, 및
    상기 판독된 제1 서브세트와 제2 서브세트를 이용하여 상기 ECC 코드 워드를 디코딩
    하도록 구성되는,
    데이터 저장 장치.
  18. 제17항에 있어서,
    상기 다수의 부분들로 분할된 에러 정정 코드(ECC) 코드 워드를 저장하기 위하여 상기 회로는 상기 다수의 부분들로 분할된 ECC 코드 워드를 각각의 상이한 메모리 디바이스들에 저장하고, 상기 각각의 메모리 디바이스들로부터 상기 다수의 부분들을 동시에 판독하도록 구성되는 데이터 저장 장치.
  19. 제18항에 있어서,
    상기 회로는, 상기 다수의 각각의 메모리 디바이스들로부터 다수의 부분들로 분할된 부가의 ECC 코드 워드를 판독하고, 상기 부가의 코드 워드의 부분들을 판독할 때 사용되는 제1 서브 세트 및 제2 서브 세트가 상기 코드 워드의 부분들을 판독하기 위해 사용되는 제1 서브세트 및 제2 서브 세트와는 상이하도록 더 구성되는 데이터 저장 장치.
  20. 제17항에 있어서,
    상기 아날로그 메모리 셀들 각각은 적어도 제1 비트들 및 제2 비트들을 유지하고, 상기 회로는 상기 제1 비트들에 상기 제1 판독 구성을 이용하여 판독될 부분들을 저장하고, 상기 제2 비트들에 상기 제2 판독 구성을 이용하여 판독될 부분들을 저장하도록 구성되는 데이터 저장 장치.
KR1020120092004A 2011-08-22 2012-08-22 다중 감지 시간을 이용하는 메모리 디바이스 판독 KR101381005B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US13/214,257 US8400858B2 (en) 2008-03-18 2011-08-22 Memory device with reduced sense time readout
US13/214,257 2011-08-22
US13/284,909 US8493783B2 (en) 2008-03-18 2011-10-30 Memory device readout using multiple sense times
US13/284,909 2011-10-30

Publications (2)

Publication Number Publication Date
KR20130023107A KR20130023107A (ko) 2013-03-07
KR101381005B1 true KR101381005B1 (ko) 2014-04-04

Family

ID=46717778

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020120092004A KR101381005B1 (ko) 2011-08-22 2012-08-22 다중 감지 시간을 이용하는 메모리 디바이스 판독
KR1020120091871A KR101379543B1 (ko) 2011-08-22 2012-08-22 감소된 감지 시간 판독을 하는 메모리 장치

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020120091871A KR101379543B1 (ko) 2011-08-22 2012-08-22 감소된 감지 시간 판독을 하는 메모리 장치

Country Status (5)

Country Link
US (2) US8493783B2 (ko)
EP (2) EP2562759B1 (ko)
KR (2) KR101381005B1 (ko)
TW (2) TWI505274B (ko)
WO (2) WO2013028434A2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10490287B2 (en) 2017-12-27 2019-11-26 SK Hynix Inc. Semiconductor memory device and method for operating the same

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8848438B2 (en) * 2010-10-05 2014-09-30 Stec, Inc. Asymmetric log-likelihood ratio for MLC flash channel
US8947941B2 (en) * 2012-02-09 2015-02-03 Densbits Technologies Ltd. State responsive operations relating to flash memory cells
US8954825B2 (en) * 2012-03-06 2015-02-10 Micron Technology, Inc. Apparatuses and methods including error correction code organization
WO2013147811A1 (en) * 2012-03-29 2013-10-03 Intel Corporation Method and system to obtain state confidence data using multistrobe read of a non-volatile memory
US8787057B2 (en) 2012-08-15 2014-07-22 Apple Inc. Fast analog memory cell readout using modified bit-line charging configurations
US8792281B2 (en) * 2012-08-21 2014-07-29 Apple Inc. Read threshold estimation in analog memory cells using simultaneous multi-voltage sense
US8869009B2 (en) 2013-02-11 2014-10-21 Apple Inc. Read commands specifying error performance
US9575829B2 (en) * 2013-03-13 2017-02-21 Sandisk Technologies Llc Probability-based remedial action for read disturb effects
JP2015056198A (ja) * 2013-09-13 2015-03-23 株式会社東芝 メモリチップ、記憶装置および読み出し方法
GB2520708A (en) * 2013-11-28 2015-06-03 Ibm Multi-stage codeword detector
KR102296738B1 (ko) 2015-06-01 2021-09-01 삼성전자 주식회사 반도체 메모리 장치, 이를 포함하는 메모리 시스템 및 반도체 메모리 장치의 에러 정정 방법
US9524790B1 (en) * 2015-08-02 2016-12-20 Avago Technologies General Ip (Singapore) Pte. Ltd. Flash memory cells wear reduction
JP2017045388A (ja) * 2015-08-28 2017-03-02 株式会社東芝 メモリシステム
US10014063B2 (en) 2015-10-30 2018-07-03 Sandisk Technologies Llc Smart skip verify mode for programming a memory device
US10048877B2 (en) * 2015-12-21 2018-08-14 Intel Corporation Predictive memory maintenance
US10497447B2 (en) * 2017-06-29 2019-12-03 SK Hynix Inc. Memory device capable of supporting multiple read operations
US10636459B2 (en) 2018-05-30 2020-04-28 Micron Technology, Inc. Wear leveling
US11438012B2 (en) 2018-11-29 2022-09-06 Micron Technology, Inc. Failure-tolerant error correction layout for memory sub-systems
US11645009B2 (en) * 2021-03-03 2023-05-09 Western Digital Technologies, Inc. Data storage with improved read parallelism
US11531499B2 (en) 2021-03-04 2022-12-20 Western Digital Technologies, Inc. Data storage that controls decode performance by changing program PLC
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 (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5668766A (en) * 1996-05-16 1997-09-16 Intel Corporation Method and apparatus for increasing memory read access speed using double-sensing
KR20090017844A (ko) * 2007-08-16 2009-02-19 삼성전자주식회사 고속 프로그램이 가능한 불휘발성 반도체 메모리 시스템 및그것의 독출 방법
WO2010071655A1 (en) * 2008-12-19 2010-06-24 Hewlett-Packard Development Company, L.P. Redundant data storage for uniform read latency
US20100172187A1 (en) * 2009-01-06 2010-07-08 Mohan Vamsi Dunga Robust sensing circuit and method

Family Cites Families (119)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3668631A (en) 1969-02-13 1972-06-06 Ibm Error detection and correction system with statistically optimized data recovery
US3668632A (en) 1969-02-13 1972-06-06 Ibm Fast decode character error detection and correction system
US4058851A (en) 1976-10-18 1977-11-15 Sperry Rand Corporation Conditional bypass of error correction for dual memory access time selection
JPS6051749B2 (ja) 1979-08-31 1985-11-15 富士通株式会社 エラ−訂正方式
US4413339A (en) 1981-06-24 1983-11-01 Digital Equipment Corporation Multiple error detecting and correcting system employing Reed-Solomon codes
US4608687A (en) 1983-09-13 1986-08-26 International Business Machines Corporation Bit steering apparatus and method for correcting errors in stored data, storing the address of the corrected data and using the address to maintain a correct data condition
JPS6130826A (ja) * 1984-07-23 1986-02-13 Canon Inc デ−タ伝送方式
US4654847A (en) 1984-12-28 1987-03-31 International Business Machines Apparatus for automatically correcting erroneous data and for storing the corrected data in a common pool alternate memory array
US5182752A (en) 1990-06-29 1993-01-26 Digital Equipment Corporation Method and apparatus for transferring data between a data bus and a data storage device
KR960002006B1 (ko) 1991-03-12 1996-02-09 가부시끼가이샤 도시바 2개의 기준 레벨을 사용하는 기록 검증 제어기를 갖는 전기적으로 소거 가능하고 프로그램 가능한 불휘발성 메모리 장치
US5182558A (en) 1991-10-25 1993-01-26 Halliburton Geophysical Services, Inc. System for generating correction signals for use in forming low distortion analog signals
JP2816512B2 (ja) 1992-07-27 1998-10-27 三菱電機株式会社 半導体記憶装置
US5533190A (en) 1994-12-21 1996-07-02 At&T Global Information Solutions Company Method for maintaining parity-data consistency in a disk array
US5799200A (en) 1995-09-28 1998-08-25 Emc Corporation Power failure responsive apparatus and method having a shadow dram, a flash ROM, an auxiliary battery, and a controller
US5764568A (en) 1996-10-24 1998-06-09 Micron Quantum Devices, Inc. Method for performing analog over-program and under-program detection for a multistate memory cell
US6768165B1 (en) * 1997-08-01 2004-07-27 Saifun Semiconductors Ltd. Two bit non-volatile electrically erasable and programmable semiconductor memory cell utilizing asymmetrical charge trapping
KR100257708B1 (ko) * 1997-09-03 2000-06-01 김영환 반도체 메모리 소자의 센싱타임 조절장치
JP4039532B2 (ja) 1997-10-02 2008-01-30 株式会社ルネサステクノロジ 半導体集積回路装置
JP2000132987A (ja) 1998-10-28 2000-05-12 Neucore Technol Inc 不揮発性半導体メモリ装置
US6480948B1 (en) 1999-06-24 2002-11-12 Cirrus Logic, Inc. Configurable system memory map
KR20010003954A (ko) 1999-06-26 2001-01-15 윤종용 반도체 메모리 장치의 캐패시터 제조 방법
EP1067547A1 (en) 1999-06-28 2001-01-10 Hewlett-Packard Company Data set recovery by codeword overlay
US7457897B1 (en) 2004-03-17 2008-11-25 Suoer Talent Electronics, Inc. PCI express-compatible controller and interface for flash memory
US6405342B1 (en) 1999-09-10 2002-06-11 Western Digital Technologies, Inc. Disk drive employing a multiple-input sequence detector responsive to reliability metrics to improve a retry operation
US6259627B1 (en) 2000-01-27 2001-07-10 Multi Level Memory Technology Read and write operations using constant row line voltage and variable column line load
JP2001291344A (ja) 2000-04-04 2001-10-19 Hitachi Ltd 光ディスク装置およびそのデータ再生方法
US6622277B1 (en) 2000-06-05 2003-09-16 Tyco Telecommunications(Us)Inc. Concatenated forward error correction decoder
US7032154B2 (en) 2000-06-05 2006-04-18 Tyco Telecommunications (Us) Inc. Concatenated forward error correction decoder
WO2002001561A2 (en) 2000-06-27 2002-01-03 Seagate Technology Llc Method and apparatus for encoding with unequal protection in magnetic recording channels having concatenated error correction codes
JP3595495B2 (ja) 2000-07-27 2004-12-02 Necマイクロシステム株式会社 半導体記憶装置
JP3829088B2 (ja) 2001-03-29 2006-10-04 株式会社東芝 半導体記憶装置
US7343330B1 (en) 2001-06-26 2008-03-11 Boesjes Eimar M Systems and methods for acquisition, evaluation, inventory, distribution, and/or re-sale of pre-owned recorded data products
GB2378277B (en) 2001-07-31 2003-06-25 Sun Microsystems Inc Multiple address translations
FR2845227B1 (fr) 2002-10-01 2005-01-14 Telediffusion De France Tdf Procede de reception d'un signal module selon une technique de codage multi-niveaux, procede de decodage, dispositif de reception, systeme de codage-decodage et applications correspondant
US7218255B1 (en) 2002-12-04 2007-05-15 Marvell International Ltd. Methods and apparatus for improving minimum Hamming weights of a sequence
US7158058B1 (en) 2002-12-09 2007-01-02 Marvell International Ltd. Method and apparatus for generating a seed set in a data dependent seed selector
US6870774B2 (en) * 2002-12-10 2005-03-22 Micron, Technology, Inc. Flash memory architecture for optimizing performance of memory having multi-level memory cells
US7469049B1 (en) 2003-03-04 2008-12-23 Marvell International Ltd. Data dependent scrambler with reduced overhead
JP2004348817A (ja) 2003-05-20 2004-12-09 Sharp Corp 半導体記憶装置、そのページバッファリソース割当方法及び回路、コンピュータシステム並びに携帯電子機器
US7471552B2 (en) 2003-08-04 2008-12-30 Ovonyx, Inc. Analog phase change memory
US7433697B2 (en) 2003-10-24 2008-10-07 Broadcom Corporation Synchronized UWB piconets for Simultaneously Operating Piconet performance
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
US7631138B2 (en) 2003-12-30 2009-12-08 Sandisk Corporation Adaptive mode switching of flash memory address mapping based on host usage characteristics
US7210077B2 (en) 2004-01-29 2007-04-24 Hewlett-Packard Development Company, L.P. System and method for configuring a solid-state storage device with error correction coding
US7266069B2 (en) 2004-02-06 2007-09-04 Via Technologies, Inc., Method and apparatus for retry calculation in an optical disk device
KR100626371B1 (ko) * 2004-03-30 2006-09-20 삼성전자주식회사 캐쉬 읽기 동작을 수행하는 비휘발성 메모리 장치, 그것을포함한 메모리 시스템, 그리고 캐쉬 읽기 방법
DE102004021267B4 (de) 2004-04-30 2008-04-17 Infineon Technologies Ag Verfahren zum Testen eines Speicherbausteins und Prüfanordnung
US7447970B2 (en) 2004-06-16 2008-11-04 Seagate Technology, Inc. Soft-decision decoding using selective bit flipping
US7665007B2 (en) 2004-06-30 2010-02-16 Seagate Technology, Llc Retrial and reread methods and apparatus for recording channels
US7196644B1 (en) 2004-07-01 2007-03-27 Seagate Technology Llc Decoupling of analog input and digital output
US7797609B2 (en) 2004-08-19 2010-09-14 Unisys Corporation Apparatus and method for merging data blocks with error correction code protection
US7254763B2 (en) 2004-09-01 2007-08-07 Agere Systems Inc. Built-in self test for memory arrays using error correction coding
JP2006115145A (ja) 2004-10-14 2006-04-27 Nec Electronics Corp 復号装置及び復号方法
US7409623B2 (en) 2004-11-04 2008-08-05 Sigmatel, Inc. System and method of reading non-volatile computer memory
JP4261462B2 (ja) 2004-11-05 2009-04-30 株式会社東芝 不揮発性メモリシステム
US7441067B2 (en) 2004-11-15 2008-10-21 Sandisk Corporation Cyclic flash memory wear leveling
US7392428B2 (en) 2004-11-19 2008-06-24 International Business Machines Corporation Method and system for recovering from abnormal interruption of a parity update operation in a disk array system
JP4734906B2 (ja) 2004-12-07 2011-07-27 ソニー株式会社 情報処理装置、情報記録媒体、および情報処理方法、並びにコンピュータ・プログラム
JP4786171B2 (ja) 2004-12-10 2011-10-05 株式会社東芝 半導体記憶装置
US7558839B1 (en) 2004-12-14 2009-07-07 Netapp, Inc. Read-after-write verification for improved write-once-read-many data storage
US7725779B2 (en) 2005-01-25 2010-05-25 Ternarylogic Llc Multi-valued scrambling and descrambling of digital data on optical disks and other storage media
US7379368B2 (en) 2005-02-25 2008-05-27 Frankfurt Gmbh, Llc Method and system for reducing volatile DRAM power budget
US7574555B2 (en) 2005-03-18 2009-08-11 Emc Corporation Memory system having daisy chained memory controllers
KR100712596B1 (ko) 2005-07-25 2007-04-30 삼성전자주식회사 플래시 메모리 장치의 리페어 및 트리밍 방법 및 장치
US7328384B1 (en) 2005-09-29 2008-02-05 Xilinx, Inc. Method and apparatus using device defects as an identifier
US7644347B2 (en) 2005-09-30 2010-01-05 Intel Corporation Silent data corruption mitigation using error correction code with embedded signaling fault detection
US7661054B2 (en) 2005-09-30 2010-02-09 Intel Corporation Methods and arrangements to remap degraded storage blocks
US8218546B2 (en) 2005-11-10 2012-07-10 Broadcom Corporation Interleaved processing of dropped packets in a network device
US7844879B2 (en) 2006-01-20 2010-11-30 Marvell World Trade Ltd. Method and system for error correction in flash memory
US7929549B1 (en) 2006-03-06 2011-04-19 Advanced Micro Devices, Inc. Method and apparatus for scrambling data for control of high-speed bidirectional signaling
US7697326B2 (en) 2006-05-12 2010-04-13 Anobit Technologies Ltd. Reducing programming error in memory devices
CN103258572B (zh) 2006-05-12 2016-12-07 苹果公司 存储设备中的失真估计和消除
KR101202537B1 (ko) 2006-05-12 2012-11-19 애플 인크. 메모리 디바이스를 위한 결합된 왜곡 추정 및 에러 보정 코딩
US7613043B2 (en) 2006-05-15 2009-11-03 Apple Inc. Shifting reference values to account for voltage sag
US7440331B2 (en) 2006-06-01 2008-10-21 Sandisk Corporation Verify operation for non-volatile storage using different voltages
US7457163B2 (en) 2006-06-01 2008-11-25 Sandisk Corporation System for verifying non-volatile storage using different voltages
US7450421B2 (en) 2006-06-02 2008-11-11 Sandisk Corporation Data pattern sensitivity compensation using different voltage
US7310272B1 (en) 2006-06-02 2007-12-18 Sandisk Corporation System for performing data pattern sensitivity compensation using different voltage
WO2008026203A2 (en) 2006-08-27 2008-03-06 Anobit Technologies Estimation of non-linear distortion in memory devices
US7904783B2 (en) 2006-09-28 2011-03-08 Sandisk Corporation Soft-input soft-output decoder for nonvolatile memory
US7365671B1 (en) 2006-10-10 2008-04-29 Seagate Technology Llc Communication channel with undersampled interpolative timing recovery
WO2008053472A2 (en) 2006-10-30 2008-05-08 Anobit Technologies Ltd. Reading memory cells using multiple thresholds
US7468911B2 (en) 2006-11-02 2008-12-23 Sandisk Corporation Non-volatile memory using multiple boosting modes for reduced program disturb
US7558109B2 (en) 2006-11-03 2009-07-07 Sandisk Corporation Nonvolatile memory with variable read threshold
KR100850290B1 (ko) 2007-01-11 2008-08-04 삼성전자주식회사 멀티레벨 바이어스 전압 발생기 및 이를 구비하는 반도체메모리 장치
US7590002B2 (en) 2006-12-29 2009-09-15 Sandisk Corporation Resistance sensing and compensation for non-volatile storage
US7616498B2 (en) 2006-12-29 2009-11-10 Sandisk Corporation Non-volatile storage system with resistance sensing and compensation
WO2008111058A2 (en) 2007-03-12 2008-09-18 Anobit Technologies Ltd. Adaptive estimation of memory cell read thresholds
JP2008251138A (ja) * 2007-03-30 2008-10-16 Toshiba Corp 不揮発性半導体メモリ、不揮発性半導体メモリの制御方法、不揮発性半導体メモリシステム、及びメモリカード
US8429493B2 (en) 2007-05-12 2013-04-23 Apple Inc. Memory device with internal signap processing unit
US8065583B2 (en) 2007-07-06 2011-11-22 Micron Technology, Inc. Data storage with an outer block code and a stream-based inner code
US7639532B2 (en) 2007-10-10 2009-12-29 Micron Technology, Inc. Non-equal threshold voltage ranges in MLC NAND
US8209588B2 (en) * 2007-12-12 2012-06-26 Anobit Technologies Ltd. Efficient interference cancellation in analog memory cell arrays
US8085586B2 (en) * 2007-12-27 2011-12-27 Anobit Technologies Ltd. Wear level estimation in analog memory cells
US8775717B2 (en) 2007-12-27 2014-07-08 Sandisk Enterprise Ip Llc Storage controller for flash memory including a crossbar switch connecting a plurality of processors with a plurality of internal memories
US8230300B2 (en) * 2008-03-07 2012-07-24 Apple Inc. Efficient readout from analog memory cells using data compression
US8400858B2 (en) * 2008-03-18 2013-03-19 Apple Inc. Memory device with reduced sense time readout
US8059457B2 (en) * 2008-03-18 2011-11-15 Anobit Technologies Ltd. Memory device with multiple-accuracy read commands
US8051240B2 (en) 2008-05-09 2011-11-01 Sandisk Technologies Inc. Compensating non-volatile storage using different pass voltages during program-verify and read
US7733712B1 (en) 2008-05-20 2010-06-08 Siliconsystems, Inc. Storage subsystem with embedded circuit for protecting against anomalies in power signal from host
EP2308058B1 (en) 2008-07-01 2016-01-27 LSI Corporation Methods and apparatus for read-side intercell interference mitigation in flash memories
US8037380B2 (en) 2008-07-08 2011-10-11 International Business Machines Corporation Verifying data integrity of a non-volatile memory system during data caching process
US8498151B1 (en) 2008-08-05 2013-07-30 Apple Inc. Data storage in analog memory cells using modified pass voltages
TWI467369B (zh) 2008-10-01 2015-01-01 A Data Technology Co Ltd 混合密度記憶體系統及其控制方法
US8244960B2 (en) 2009-01-05 2012-08-14 Sandisk Technologies Inc. Non-volatile memory and method with write cache partition management methods
US8040744B2 (en) 2009-01-05 2011-10-18 Sandisk Technologies Inc. Spare block management of non-volatile memories
KR101082650B1 (ko) 2009-01-21 2011-11-14 주식회사 하이닉스반도체 불휘발성 메모리 장치 및 그 동작 방법
US7894270B2 (en) * 2009-02-11 2011-02-22 Mosys, Inc. Data restoration method for a non-volatile memory
US8259506B1 (en) * 2009-03-25 2012-09-04 Apple Inc. Database of memory read thresholds
US20100287217A1 (en) 2009-04-08 2010-11-11 Google Inc. Host control of background garbage collection in a data storage device
US8238157B1 (en) * 2009-04-12 2012-08-07 Apple Inc. Selective re-programming of analog memory cells
TWI400707B (zh) 2009-07-09 2013-07-01 Phison Electronics Corp 快閃記憶體邏輯區塊管理方法及其控制電路與儲存系統
US8014094B1 (en) 2009-08-31 2011-09-06 Western Digital Technologies, Inc. Disk drive expediting defect scan when quality metric exceeds a more stringent threshold
US8402217B2 (en) 2009-09-15 2013-03-19 Marvell International Ltd. Implementing RAID in solid state memory
US8074013B2 (en) 2009-09-21 2011-12-06 Skymedi Corporation Uniform coding system for a flash memory
US8094494B2 (en) 2009-10-09 2012-01-10 Macronix International Co., Ltd. Memory and operation method therefor
US8694853B1 (en) * 2010-05-04 2014-04-08 Apple Inc. Read commands for reading interfering memory cells
US8301828B2 (en) 2010-06-02 2012-10-30 Conexant Systems, Inc. Systems and methods for reliable multi-level cell flash storage
US8787057B2 (en) * 2012-08-15 2014-07-22 Apple Inc. Fast analog memory cell readout using modified bit-line charging configurations

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5668766A (en) * 1996-05-16 1997-09-16 Intel Corporation Method and apparatus for increasing memory read access speed using double-sensing
KR20090017844A (ko) * 2007-08-16 2009-02-19 삼성전자주식회사 고속 프로그램이 가능한 불휘발성 반도체 메모리 시스템 및그것의 독출 방법
WO2010071655A1 (en) * 2008-12-19 2010-06-24 Hewlett-Packard Development Company, L.P. Redundant data storage for uniform read latency
US20100172187A1 (en) * 2009-01-06 2010-07-08 Mohan Vamsi Dunga Robust sensing circuit and method

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10490287B2 (en) 2017-12-27 2019-11-26 SK Hynix Inc. Semiconductor memory device and method for operating the same

Also Published As

Publication number Publication date
EP2562759B1 (en) 2019-01-02
US8493783B2 (en) 2013-07-23
US8953372B2 (en) 2015-02-10
EP2562760A3 (en) 2013-05-22
TW201320088A (zh) 2013-05-16
EP2562759A3 (en) 2013-05-22
WO2013028434A2 (en) 2013-02-28
KR101379543B1 (ko) 2014-03-28
WO2013028434A3 (en) 2013-04-18
EP2562759A2 (en) 2013-02-27
TWI498909B (zh) 2015-09-01
WO2013028430A2 (en) 2013-02-28
EP2562760A2 (en) 2013-02-27
WO2013028430A3 (en) 2013-04-18
KR20130023102A (ko) 2013-03-07
US20120320672A1 (en) 2012-12-20
US20130297989A1 (en) 2013-11-07
KR20130023107A (ko) 2013-03-07
EP2562760B1 (en) 2016-04-06
TWI505274B (zh) 2015-10-21
TW201320081A (zh) 2013-05-16

Similar Documents

Publication Publication Date Title
KR101381005B1 (ko) 다중 감지 시간을 이용하는 메모리 디바이스 판독
US8059457B2 (en) Memory device with multiple-accuracy read commands
US10056135B2 (en) Programming schemes for multi-level analog memory cells
US8209588B2 (en) Efficient interference cancellation in analog memory cell arrays
US7900102B2 (en) High-speed programming of memory devices
US8068360B2 (en) Reading analog memory cells using built-in multi-threshold commands
US8234545B2 (en) Data storage with incremental redundancy
US7924587B2 (en) Programming of analog memory cells using a single programming pulse per state transition
US8400858B2 (en) Memory device with reduced sense time readout
US8225181B2 (en) Efficient re-read operations from memory devices
US20100131827A1 (en) Memory device with internal signap processing unit
US9349467B2 (en) Read threshold estimation in analog memory cells using simultaneous multi-voltage sense
WO2009050703A2 (en) Data storage in analog memory cell arrays having erase failures
US8787057B2 (en) Fast analog memory cell readout using modified bit-line charging configurations

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
FPAY Annual fee payment

Payment date: 20170302

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190227

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20200227

Year of fee payment: 7