KR20160132814A - 메모리의 구획들 내에서의 판독 액세스들의 카운팅을 통한 비휘발성 메모리들 상에서의 판독 교란들의 검출 - Google Patents

메모리의 구획들 내에서의 판독 액세스들의 카운팅을 통한 비휘발성 메모리들 상에서의 판독 교란들의 검출 Download PDF

Info

Publication number
KR20160132814A
KR20160132814A KR1020167017243A KR20167017243A KR20160132814A KR 20160132814 A KR20160132814 A KR 20160132814A KR 1020167017243 A KR1020167017243 A KR 1020167017243A KR 20167017243 A KR20167017243 A KR 20167017243A KR 20160132814 A KR20160132814 A KR 20160132814A
Authority
KR
South Korea
Prior art keywords
memory
sub
data
read
word lines
Prior art date
Application number
KR1020167017243A
Other languages
English (en)
Other versions
KR102042889B1 (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 KR20160132814A publication Critical patent/KR20160132814A/ko
Application granted granted Critical
Publication of KR102042889B1 publication Critical patent/KR102042889B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/50Marginal testing, e.g. race, voltage or current testing
    • G11C29/50004Marginal testing, e.g. race, voltage or current testing of threshold voltage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1072Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in multilevel memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/102External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators
    • 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/3422Circuits or methods to evaluate read or write disturbance in nonvolatile memory, without steps to mitigate the problem
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7202Allocation control and policies
    • 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
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/32Timing circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/50Marginal testing, e.g. race, voltage or current testing
    • G11C2029/5004Voltage
    • 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/5644Multilevel memory comprising counting devices

Abstract

비휘발성 메모리 디바이스들에서, 워드 라인 상의 데이터의 액세스는 이웃하는 워드 라인 상의 데이터 품질을 열화시킬 수 있고, 이는 판독 교란이라고 불리운다. 판독 횟수를 추적하기 위한 해시 트리의 사용에 의해 판독 교란을 겪을 가능성이 있는 워드 라인들을 결정하기 위한 기법들이 제시된다. 다이 또는 블록과 같은 비교적 거친 입도로 메모리 유닛들에 대한 판독 카운터가 유지된다. 이러한 유닛들 중 하나의 유닛에 대한 카운터가 특정 레벨에 도달할 때, 카운터들을 저장하기 위해 제어기 상의 RAM의 비교적 많지 않은 양만을 사용하면서 빈번히 판독되는 워드 라인들을 미세 레벨의 입도로 결정하기 위해 반복되는 프로세스에서, 그것은 자신의 판독 카운터를 각각 갖는 서브유닛들로 세분된다.

Description

메모리의 구획들 내에서의 판독 액세스들의 카운팅을 통한 비휘발성 메모리들 상에서의 판독 교란들의 검출{DETECTION OF READ DISTURBANCES ON NON-VOLATILE MEMORIES THROUGH COUNTING OF READ ACCESSES WITHIN DIVISIONS OF THE MEMORY}
이하의 내용은 반도체 플래시 메모리와 같은 재프로그램가능 비휘발성 메모리 시스템들의 동작에 관한 것이며, 보다 구체적으로는 이러한 메모리들 상에서의 에러의 결정 및 관리에 관한 것이다.
특히 소형 폼 팩터(small form factor) 카드로서 패키징된 EEPROM 및 플래시 EEPROM 형태의, 전하를 비휘발성으로 저장할 수 있는 고상 메모리(solid-state memory)가 최근에 각종의 모바일 및 핸드헬드 디바이스, 특히 정보 기기 및 소비자 전자 제품에서 선택되는 저장소로 되었다. 역시 고상 메모리인 RAM(random access memory)과 달리, 플래시 메모리는 비휘발성이고, 전력이 턴 오프된 후에도 그의 저장된 데이터를 유지한다. 또한, ROM(read only memory)과 달리, 플래시 메모리는 디스크 저장 디바이스와 유사하게 재기입가능(rewritable)하다. 높은 비용에도 불구하고, 플래시 메모리가 대용량 저장소 응용 분야에서 점점 더 사용되고 있다. 하드 드라이브 및 플로피 디스크와 같은 회전 자기 매체에 기초한 종래의 대용량 저장소는 모바일 및 핸드헬드 환경에 부적합하다. 이러한 이유는 디스크 드라이브가 덩치가 큰 경향이 있고 기계적 고장에 취약하고 높은 지연 시간 및 높은 전력 요구사항을 갖기 때문이다. 이 바람직하지 않은 속성은 대부분의 모바일 및 휴대용 응용 분야에서 디스크 기반 저장소를 비실용적으로 만든다. 다른 한편으로, 플래시 메모리는, 내장되어 있든, 고상 드라이브(solid state drive, SSD)이든 그리고 이동식 카드(removable card)의 형태이든 간에, 그의 작은 크기, 낮은 전력 소비, 고속 및 고신뢰성 특징으로 인해 모바일 및 핸드헬드 환경에서 이상적으로 적합하다.
플래시 EEPROM은 소거될 수 있고 새로운 데이터가 그의 메모리 셀에 기입되거나 "프로그램"될 수 있는 비휘발성 메모리라는 점에서 EEPROM(electrically erasable and programmable read-only memory)과 유사하다. 둘 다는, 전계 효과 트랜지스터 구조에서, 소스 영역과 드레인 영역 사이에서 반도체 기판 내의 채널 영역 위에 배치되는 부유(연결되지 않은) 전도성 게이트를 사용한다. 제어 게이트가 이어서 부유 게이트 위에 제공된다. 트랜지스터의 문턱 전압 특성은 부유 게이트 상에 유지되는 전하의 양에 의해 제어된다. 즉, 부유 게이트 상의 주어진 레벨의 전하에 대해, 트랜지스터가 그의 소스 영역과 드레인 영역 사이의 전도(conduction)를 가능하게 하기 위해 "턴 온"되기 전에 제어 게이트에 인가되어야만 하는 대응하는 전압(문턱)이 있다. 상세하게는, 플래시 EEPROM과 같은 플래시 메모리는 메모리 셀 블록 전체가 동시에 소거될 수 있게 한다.
부유 게이트는 어떤 범위의 전하를 보유할 수 있고, 따라서 문턱 전압 윈도우(threshold voltage window) 내의 임의의 문턱 전압 레벨로 프로그램될 수 있다. 문턱 전압 윈도우의 크기는 디바이스의 최소 및 최대 문턱 레벨에 의해 정해지고, 이는 차례로 부유 게이트 상에 프로그램될 수 있는 전하의 범위에 대응한다. 문턱 윈도우(threshold window)는 일반적으로 메모리 디바이스의 특성, 동작 조건 및 이력(history)에 의존한다. 윈도우 내의 각각의 구별되는, 분해가능(resolvable) 문턱 전압 레벨 범위는, 원칙적으로, 셀의 명확한 메모리 상태를 나타내는데 사용될 수 있다.
메모리 셀로서 역할하는 트랜지스터는 전형적으로 2개의 메커니즘 중 하나에 의해 "프로그램됨(programmed)" 상태로 프로그램된다. 핫 전자 주입(hot electron injection)에서는, 드레인에 인가되는 하이 전압이 기판 채널 영역을 가로질러 전자를 가속시킨다. 그와 동시에, 제어 게이트에 인가되는 하이 전압이 핫 전자를 얇은 게이트 유전체를 통해 부유 게이트 상으로 끌고 간다. "터널링 주입(tunneling injection)"에서는, 기판에 대해 제어 게이트에 높은 전압이 인가된다. 이러한 방식으로, 전자가 기판으로부터 중간에 있는 부유 게이트로 끌려 간다. "프로그램"이라는 용어가, 과거에는 메모리 상태를 변경하기 위해 메모리 셀의 초기에 소거되어 있는 전하 저장 유닛에 전자를 주입함으로써 메모리에 기입하는 것을 설명하기 위해 사용되었지만, 이제는 "기입(write)" 또는 "기록(record)"과 같은 보다 통상적인 용어와 바꾸어 사용할 수 있게 되었다.
메모리 디바이스가 다수의 메커니즘에 의해 소거될 수 있다. EEPROM의 경우, 메모리 셀은 부유 게이트에 있는 전자가 얇은 산화물을 통해 기판 채널 영역으로 터널링(즉, Fowler-Nordheim 터널링)하도록 유도하기 위해 제어 게이트에 대해 기판에 높은 전압을 인가함으로써 전기적으로 소거가능하다. 전형적으로, EEPROM은 바이트 단위로 소거가능하다. 플래시 EEPROM의 경우, 메모리는 전부가 한꺼번에 또는 한번에 하나 이상의 최소 소거가능 블록(minimum erasable block)씩 전기적으로 소거가능하고, 여기서 최소 소거가능 블록은 하나 이상의 섹터로 이루어져 있을 수 있고, 각각의 섹터는 512 바이트 또는 그 이상의 데이터를 저장할 수 있다.
메모리 디바이스는 전형적으로 카드 상에 또는 고상 드라이브(SSD) 내에 실장될 수 있는 하나 이상의 메모리 칩을 포함한다. 각각의 메모리 칩은 디코더 그리고 소거, 기입 및 판독 회로와 같은 주변 회로에 의해 지원되는 메모리 셀 어레이를 포함한다. 보다 복잡한 메모리 디바이스에는 또한 지능적인 상위 레벨 메모리 동작 및 인터페이싱을 수행하는 제어기가 딸려 있다.
많은 상업적으로 성공한 비휘발성 고상 메모리 디바이스가 현재 사용되고 있다. 이 메모리 디바이스는 플래시 EEPROM일 수 있거나, 다른 유형의 비휘발성 메모리 셀을 사용할 수 있다. 플래시 메모리와 이를 제조하는 시스템 및 방법의 예는 미국 특허 제5,070,032호, 제5,095,344호, 제5,315,541호, 제5,343,063호, 제5,661,053호, 제5,313,421호 및 제6,222,762호에 주어져 있다. 상세하게는, NAND 스트링 구조(NAND string structure)를 갖는 플래시 메모리 디바이스는 미국 특허 제5,570,315호, 제5,903,495호 및 제6,046,935호에 기술되어 있다. 또한 비휘발성 메모리 디바이스가 전하를 저장하기 위한 유전체 층을 갖는 메모리 셀로부터도 제조된다. 앞서 기술된 전도성 부유 게이트 요소 대신에, 유전체 층이 사용된다. 유전체 저장 요소를 사용하는 이러한 메모리 디바이스는 문헌(Eitan 등, "NROM: A Novel Localized Trapping, 2-Bit Nonvolatile Memory Cell," IEEE Electron Device Letters, vol. 21, no. 11, November 2000, pp. 543-545)에 기술되어 있다. ONO 유전체 층이 소스 확산부(source diffusion)와 드레인 확산부(drain diffusion) 사이의 채널에 걸쳐 뻗어 있다. 하나의 데이터 비트에 대한 전하는 드레인에 인접한 유전체 층에 국소화되어 있고, 다른 데이터 비트에 대한 전하는 소스에 인접한 유전체 층에 국소화되어 있다. 예를 들어, 미국 특허 제5,768,192호 및 제6,011,725호는 2개의 실리콘 이산화물 층 사이에 끼여 있는 포획 유전체(trapping dielectric)를 가지는 비휘발성 메모리 셀을 개시하고 있다. 다중 상태 데이터 저장은 유전체 내의 공간적으로 분리된 전하 저장 영역의 이진 상태를 개별적으로 판독하는 것에 의해 구현된다.
판독 및 프로그램 성능을 개선시키기 위해, 어레이에서의 다수의 전하 저장 요소 또는 메모리 트랜지스터가 병렬로 판독되거나 프로그램된다. 이와 같이, 한 "페이지"의 메모리 요소가 한꺼번에 판독되거나 프로그램된다. 기존의 메모리 아키텍처에서, 행(row)이 전형적으로 몇 개의 인터리빙된 페이지(interleaved page)를 포함하거나, 하나의 페이지를 구성할 수 있다. 페이지의 모든 메모리 요소가 한꺼번에 판독되거나 프로그램될 것이다.
플래시 메모리 시스템에서, 소거 동작은 판독 및 프로그램 동작보다 10배나 더 오래 걸릴 수 있다. 이와 같이, 상당한 크기의 소거 블록을 가지는 것이 바람직하다. 이러한 방식으로, 소거 시간이 큰 메모리 셀 집합체에 걸쳐 분할 상각(amortize)된다.
플래시 메모리의 특성은 데이터가 소거된 메모리 위치에 기입되어야만 한다는 것이다. 호스트로부터의 특정 논리 주소의 데이터가 갱신되어야 하는 경우, 하나의 방식은 갱신 데이터를 동일한 물리 메모리 위치에 재기입하는 것이다. 즉, 논리-물리 주소 매핑(logical to physical address mapping)이 변하지 않는다. 그렇지만, 이것은 그 물리 위치를 포함하는 전체 소거 블록이 먼저 소거되고 이어서 갱신된 데이터로 재기입되어야 할 것임을 의미할 것이다. 이 갱신 방법은 전체 소거 블록이 소거되고 재기입되는 것을 필요로 하기 때문에 비효율적이고, 갱신될 데이터가 소거 블록의 작은 부분만을 차지하는 경우에 특히 그렇다. 그 결과 메모리 블록의 소거 리사이클링(erase recycling)의 빈도가 또한 더 높아질 것이고, 이는 이 유형의 메모리 디바이스의 제한된 내구성으로 인해 바람직하지 않다.
호스트 시스템, 메모리 시스템 및 다른 전자 시스템의 외부 인터페이스를 통해 전달되는 데이터가 플래시 메모리 시스템의 물리 위치로 주소지정되고 매핑된다. 전형적으로, 시스템에 의해 발생되거나 수신되는 데이터 파일의 주소가 논리 데이터 블록(logical block of data)(이후부터 "LBA 인터페이스"라고 함)의 면에서 시스템에 대해 설정된 연속적인 논리 주소 공간의 구별되는 범위에 매핑된다. 주소 공간의 크기는 전형적으로 시스템이 처리할 수 있는 전체 주소 범위를 커버하기에 충분하다. 일 예에서, 자기 디스크 저장소 드라이브는 이러한 논리 주소 공간을 통해 컴퓨터 또는 다른 호스트 시스템과 통신한다. 이 주소 공간은 디스크 드라이브의 데이터 저장 용량 전체를 주소지정하기에 충분한 크기를 가진다.
플래시 메모리 시스템이 가장 흔하게는 개인용 컴퓨터, 카메라 등과 같은 각종의 호스트와 분리가능하게 연결되는 메모리 카드 또는 플래시 드라이브의 형태로 제공되지만, 또한 이러한 호스트 시스템 내에 내장되거나 고상 드라이브의 형태일 수 있다. 메모리에 데이터를 기입할 때, 호스트는 전형적으로 메모리 시스템의 연속적인 가상 주소 공간 내의 데이터 섹터, 데이터 클러스터 또는 다른 데이터 단위에 고유 논리 주소를 할당한다. 디스크 운영 체제(disk operating system, DOS)와 같이, 호스트는 메모리 시스템의 논리 주소 공간 내의 주소에 데이터를 기입하고 그로부터 데이터를 판독한다. 메모리 시스템 내의 제어기는 호스트로부터 수신되는 논리 주소를 데이터가 실제로 저장되는 메모리 어레이 내의 물리 주소로 변환(translate)하고, 이어서 이 주소 변환을 기록해둔다. 메모리 시스템의 데이터 저장 용량은 적어도 메모리 시스템에 대해 정의된 논리 주소 공간 전체에 걸쳐 주소지정가능한 데이터 양만큼 크다.
현재의 상용 플래시 메모리 시스템에서, 소거 단위의 크기가 다수의 데이터 섹터를 저장하기에 충분한 메모리 셀 블록으로 증가되었다. 실제로, 많은 데이터 페이지가 하나의 블록에 저장되고, 한 페이지가 다수의 데이터 섹터를 저장할 수 있다. 게다가, 2개 이상의 블록이 종종 메타블록(metablock)으로서 한꺼번에 연산되고, 이러한 블록들의 페이지들이 메타페이지(metapage)로서 서로 논리적으로 링크되어 있다. 많은 데이터 섹터를 포함할 수 있는 데이터 페이지 또는 메타페이지가 한꺼번에 기입되고 판독되며, 따라서 연산의 병렬성(parallelism)을 증대시킨다. 이러한 대용량의 연산 단위와 함께, 과제는 그 연산 단위를 효율적으로 연산하는 것이다.
설명의 편의상, 달리 언급되지 않는 한, "블록"이라는 용어가, 본원에서 사용되는 바와 같이, 특정 시스템에서 메타블록이 사용되고 있는지에 따라, 블록 소거 단위 또는 다중 블록인 "메타블록" 중 어느 하나를 지칭하는 것으로 의도되어 있다. 이와 유사하게, 본원에서 "페이지"라고 말하는 것은, 시스템 구성에 따라, 단일 블록 내에서의 또는 메타블록 내의 "메타페이지" 내에서의 프로그래밍 단위를 지칭할 수 있다.
EEPROM 또는 유전체 저장소에 기초한 것과 같은 전하 저장 비휘발성 메모리 디바이스에서, 비휘발성이 완벽하지 않고, 요소에 저장된 데이터 값이 시간에 따른 누설에 의해 열화될 수 있다. 메모리 회로의 한 부분에서의 동작이 또한 직접 작용을 받지 않는 저장 요소 내의 데이터 값에 영향을 미칠 수 있다. 예를 들어, 인접한 워드 라인(word line) 상의 메모리 셀들 간의 용량성 결합(capacitive coupling)은 이웃하는 워드 라인이 판독되거나 기입될 때 "판독 교란(read disturb)" 또는 "기입 교란(write disturb)"을 야기할 수 있다. (셀이 소거되는 입도(granularity)에 따라, 소거 교란(erase disturb)도 일어날 수 있다.) 이러한 메모리 시스템에서 데이터 무결성을 유지하기 위해, 이러한 교란의 효과가 고려될 필요가 있다.
본 발명의 일반적인 양태에 따르면, 하나 이상의 메모리 회로 및 제어기 회로를 갖는 비휘발성 메모리 시스템을 동작시키는 방법이 제시된다. 메모리 회로 각각은 워드 라인을 따라 형성된 하나 이상의 비휘발성 메모리 셀 어레이를 포함하고, 제어기 회로는 메모리 회로 상에의 데이터의 저장을 관리한다. 하나 이상의 메모리 어레이의 제1 복수의 구별되는 구획 각각에 대해, 제어기 회로는 판독 동작을 위해 대응하는 구획의 워드 라인이 액세스되는 횟수의 카운트를 유지한다. 대응하는 구획에 대한 카운트들 중 하나가 제1 문턱 값에 도달한 것에 응답하여, 대응하는 구획이 제2 복수의 구별되는 제1 서브구획(subdivision)으로 세분된다. 각각의 제1 서브구획에 대해, 제어기 회로는 후속하여 판독 동작을 위해 서브구획의 워드 라인이 액세스되는 횟수의 카운트를 유지한다.
본 발명의 다양한 양태, 장점, 특징 및 실시예가 그의 예시적인 예에 대한 이하의 설명에 포함되고, 이 설명은 첨부 도면과 관련하여 이루어져야 한다. 본원에서 언급되는 모든 특허, 특허 출원, 논문, 다른 간행물, 문서 및 기타가 이로써 모든 목적을 위해 그 전체가 본원에 참조로 포함된다. 포함된 간행물, 문서 또는 기타 중 임의의 것과 본 출원 사이에서 용어의 정의 또는 사용에 있어서 임의의 모순 또는 충돌이 있는 한, 본 출원의 것이 우선한다.
도 1은 본 발명을 구현하기에 적합한 메모리 시스템의 주요 하드웨어 구성요소들을 개략적으로 나타낸다.
도 2는 비휘발성 메모리 셀을 개략적으로 나타낸다.
도 3은 부유 게이트가 임의의 한 때에 선택적으로 저장하고 있을 수 있는 4개의 상이한 전하(Q1 내지 Q4)에 대한 소스-드레인 전류(ID)와 제어 게이트 전압(VCG) 사이의 관계를 나타낸다.
도 4a는 NAND 스트링으로 편성되는 메모리 셀 스트링을 개략적으로 나타낸다.
도 4b는 도 4a에 도시된 것과 같은 NAND 스트링들(50)로부터 구성되는 NAND 메모리 셀 어레이(210)의 일 예를 나타낸다.
도 5는 병렬로 감지되거나 프로그램되는, 예를 들어, NAND 구성으로 편성되는, 메모리 셀들의 페이지를 나타낸다.
도 6의 (0) 내지 도 6의 (2)는 한 집단의 4-상태 메모리 셀을 프로그래밍하는 것의 일 예를 나타낸다.
도 7a 내지 도 7e는 주어진 2-비트 코드로 인코딩된 4-상태 메모리의 프로그래밍 및 판독을 나타낸다.
도 7f는 주어진 3-비트 코드로 인코딩된 8-상태 메모리에 대한 포기-미세 프로그래밍(foggy-fine programming)을 나타낸다.
도 8은 메모리가 제어기에 존재하는 소프트웨어 구성요소인 메모리 관리자에 의해 관리되는 것을 나타낸다.
도 9는 백엔드 시스템의 소프트웨어 모듈들을 나타낸다.
도 10a의 (i) 내지 도 10a의 (iii)은 논리 그룹(logical group)과 메타블록 사이의 매핑을 개략적으로 나타낸다. 도 10b는 논리 그룹과 메타블록 사이의 매핑을 개략적으로 나타낸다.
도 11은 2 레벨 예에 대한 프로세스의 개략적 표현이다.
도 12 및 도 13은 판독 구역들을 추적하기 위한 해시 트리(hash tree)의 추가적인 예시를 제공한다.
메모리 시스템
도 1 내지 도 10b는 본 발명의 다양한 양태가 구현되거나 예시될 수 있는 예시적인 메모리 시스템을 제공한다.
도 1은 본 발명을 구현하기에 적합한 메모리 시스템의 주요 하드웨어 구성요소를 개략적으로 나타낸 것이다. 메모리 시스템(90)은 전형적으로 호스트 인터페이스를 통해 호스트(80)와 함께 동작한다. 메모리 시스템은 전형적으로 메모리 카드, 고상 드라이브(SSD), 또는 임베디드 메모리 시스템(embedded memory system)의 형태로 되어 있다. 메모리 시스템(90)은 메모리(200)를 포함하고, 메모리의 동작은 제어기(100)에 의해 제어된다. 메모리(200)는 하나 이상의 집적 회로 칩에 걸쳐 분산되어 있는 하나 이상의 비휘발성 메모리 셀 어레이로 이루어져 있다. 제어기(100)는 인터페이스(110), 프로세서(120), 선택적인 코프로세서(121), ROM(read-only-memory)(122), RAM(random access memory)(130), 및 선택적으로 프로그램가능 비휘발성 메모리(124)를 포함한다. 인터페이스(110)는 제어기와 호스트 사이를 인터페이싱하는 하나의 구성요소 및 메모리(200)와 인터페이싱하는 다른 구성요소를 갖는다. 비휘발성 ROM(122) 및/또는 선택적인 비휘발성 메모리(124)에 저장된 펌웨어는 프로세서(120)가 제어기(100)의 기능을 구현하기 위한 코드를 제공한다. 에러 정정 코드가 프로세서(120) 또는 선택적인 코프로세서(121)에 의해 처리될 수 있다. 대안의 실시예에서, 제어기(100)는 상태 머신(도시되지 않음)에 의해 구현된다. 또 다른 실시예에서, 제어기(100)는 호스트 내에 구현된다.
물리 메모리 구조
메모리 섹션(200)과 관련하여, 메모리 디바이스는 DRAM(dynamic random access memory) 또는 SRAM(static random access memory) 디바이스와 같은 휘발성 메모리 디바이스, ReRAM(resistive random access memory), EEPROM(electrically erasable programmable read only memory), 플래시 메모리(EEPROM의 서브세트로 간주될 수도 있음), FRAM(ferroelectric random access memory), 및 MRAM(magnetoresistive random access memory)과 같은 비휘발성 메모리 디바이스, 그리고 정보를 저장할 수 있는 다른 반도체 요소를 포함한다. 게다가, 각각의 유형의 메모리 디바이스는 상이한 구성을 가질 수 있다. 예를 들어, 플래시 메모리 디바이스는 NAND 또는 NOR 구성으로 구성될 수 있다.
메모리 디바이스는 수동 및/또는 능동 요소로 임의의 조합으로 형성될 수 있다. 비제한적인 예로서, 수동 반도체 메모리 요소는, 일부 실시예에서, 안티퓨즈(anti-fuse), 상변화 물질 등과 같은 저항률 스위칭 저장 요소(resistivity switching storage element) 그리고, 선택적으로, 다이오드 등과 같은 조정 요소(steering element)를 포함하는 ReRAM 디바이스 요소를 포함한다. 게다가 비제한적인 예로서, 능동 반도체 메모리 요소는, 일부 실시예에서, 부유 게이트, 전도성 나노입자 또는 전하 저장 유전체 물질과 같은 전하 저장 영역을 포함하는 요소를 포함하는 EEPROM 및 플래시 메모리 디바이스 요소를 포함한다.
다수의 메모리 요소는 직렬로 연결되도록 또는 각각의 요소가 개별적으로 액세스가능하도록 구성될 수 있다. 비제한적인 예로서, NAND 디바이스는 직렬로 연결된 메모리 요소(예컨대, 전하 저장 영역을 포함하는 디바이스)를 포함한다. 예를 들어, NAND 메모리 어레이는 어레이가 다수의 메모리 스트링(string of memory)으로 이루어지도록 구성될 수 있고, 여기서 각각의 스트링은 단일의 비트 라인(bit line)을 공유하고 그룹으로서 액세스되는 다수의 메모리 요소로 이루어져 있다. 이와 달리, 메모리 요소는 각각의 요소가 개별적으로 액세스가능하도록 구성될 수 있다(예컨대, NOR 메모리 어레이). 본 기술 분야의 통상의 기술자는 NAND 및 NOR 메모리 구성이 예시적인 것이라는 것과 메모리 요소가 다른 방식으로 구성될 수 있다는 것을 알 것이다.
동일한 기판 내에 및/또는 그 상에 또는 단일의 다이에 위치된 요소와 같은, 단일의 디바이스의 반도체 메모리 요소가, 2차원 어레이 구조 또는 3차원 어레이 구조와 같이, 2차원 또는 3차원으로 분포될 수 있다.
2차원 메모리 구조에서, 반도체 메모리 요소는 단일의 평면 또는 단일의 메모리 디바이스 레벨에 배열된다. 전형적으로, 2차원 메모리 구조에서, 메모리 요소는 메모리 요소를 지지하는 기판의 주 표면에 실질적으로 평행하게 뻗어 있는 평면에(예컨대, x-z 방향 평면에) 위치된다. 기판은 메모리 요소의 층이 퇴적되는 그리고/또는 메모리 요소가 형성되는 웨이퍼일 수 있거나, 메모리 요소가 형성된 후에 메모리 요소에 부착되는 캐리어 기판(carrier substrate)일 수 있다. 비제한적인 예로서, 기판은 실리콘과 같은 반도체를 포함할 수 있다.
메모리 요소는 정렬된 어레이(ordered array)로(예컨대, 복수의 행 및/또는 열로) 단일의 메모리 디바이스 레벨에 배열될 수 있다. 그렇지만, 본 기술 분야의 통상의 기술자는 알 것인 바와 같이, 메모리 요소가 비규칙적 또는 비직교적 구성으로 배열될 수 있다. 메모리 요소 각각은 2개 이상의 전극 또는 콘택 라인(contact line)(비트 라인 및 워드 라인 등)을 가질 수 있다.
3차원 메모리 어레이는 메모리 요소가 다수의 평면 또는 다수의 디바이스 레벨을 차지하여, 구조물을 3차원으로(즉, x, y 및 z 방향으로, 여기서 y 방향은 기판의 주 표면에 실질적으로 수직이고 x 및 z 방향은 그에 실질적으로 평행함) 형성하도록 구성되어 있다.
비제한적인 예로서, 3차원 메모리 어레이 구조물에서의 각각의 평면은 물리적으로 2차원으로(하나의 메모리 레벨에) 위치될 수 있고, 다수의 2차원 메모리 레벨이 3차원 메모리 어레이 구조물을 형성한다. 다른 비제한적인 예로서, 3차원 메모리 어레이는 물리적으로 다수의 수직 열(예컨대, 기판의 주 표면에 실질적으로 수직으로 y 방향으로 뻗어 있는 열) - 각각의 열에 다수의 요소를 가지며 따라서 몇 개의 수직으로 적층된 메모리 평면에 걸쳐 있는 요소를 가짐 - 로 구성될 수 있다. 열이 2차원 구성으로(예컨대, x-z 평면에) 배열될 수 있음으로써, 그 결과 메모리 요소의 3차원 배열이 얻어진다. 본 기술 분야의 통상의 기술자는 3차원으로 된 다른 구성의 메모리 요소가 또한 3차원 메모리 어레이를 구성할 것임을 알 것이다.
비제한적인 예로서, 3차원 NAND 메모리 어레이에서, 메모리 요소들이 단일의 수평(예컨대, x-z) 평면 내에 NAND 스트링을 형성하기 위해 서로 연결될 수 있다. 대안적으로, 메모리 요소들이 다수의 수평 평면을 통해 뻗어 있도록 서로 연결될 수 있다. 일부 NAND 스트링들은 단일의 메모리 레벨에 있는 메모리 요소를 포함하는 반면 다른 스트링은 다수의 메모리 레벨을 통해 뻗어 있는 메모리 요소를 포함하는 다른 3차원 구성이 생각될 수 있다. 3차원 메모리 어레이가 또한 NOR 구성으로 그리고 ReRAM 구성으로 설계될 수 있다.
모놀리식 3차원 메모리 어레이란 다수의 메모리 메모리 레벨이 반도체 웨이퍼와 같은, 단일의 기판 위에 및/또는 내에 형성된 것을 말한다. 모놀리식 3차원 어레이에서, 어레이의 각각의 레벨의 층은 어레이의 각각의 아래에 있는 레벨의 층 상에 형성된다. 본 기술 분야의 통상의 기술자는 모놀리식 3차원 메모리 어레이의 인접 레벨의 층이 공유될 수 있거나 메모리 레벨들 사이에 중간 층을 가질 수 있다는 것을 알 것이다. 이와 달리, 2차원 어레이가 개별적으로 형성된 다음에, 비모놀리식 메모리 디바이스를 형성하기 위해 하나로 패키징될 수 있다. 예를 들어, 메모리 레벨을 개별 기판 상에 형성하고 메모리 레벨을 서로의 위에 부착시키는 것에 의해 비모놀리식 적층형 메모리가 구성되었다. 기판이 본딩 이전에 박형화되거나 메모리 레벨로부터 제거될 수 있지만, 메모리 레벨이 처음에 개별 기판 상에 형성될 때, 이러한 메모리는 모놀리식 3차원 메모리 어레이가 아니다. 게다가, 적층형 칩 메모리 디바이스를 형성하기 위해, 다수의 2차원 메모리 어레이 또는 3차원 메모리 어레이(모놀리식 또는 비모놀리식)가 개별적으로 형성되고 이어서 하나로 패키징될 수 있다.
메모리 요소의 적절한 동작을 위해 그리고 메모리 요소와의 적절한 통신을 위해 연관된 회로가 전형적으로 필요하다. 이 연관된 회로는 메모리 어레이와 동일한 기판 상에 그리고/또는 별개의 기판 상에 있을 수 있다. 비제한적인 예로서, 메모리 디바이스는 메모리 요소의 프로그래밍 및 판독에서 사용되는 구동기 회로 및 제어 회로를 가질 수 있다.
본 기술 분야의 통상의 기술자는 본 발명이 기술되는 예시적인 2차원 및 3차원 구조로 제한되지 않고, 본원에 기술되는 바와 같이 그리고 본 기술 분야의 통상의 기술자에 의해 이해되는 바와 같이 본 발명의 사상 및 범주 내의 모든 관련 메모리 구조를 포함한다는 것을 알 것이다.
도 2는 비휘발성 메모리 셀을 개략적으로 나타낸 것이다. 메모리 셀(10)은, 부유 게이트 또는 유전체 층과 같은, 전하 저장 유닛(20)을 가지는 전계 효과 트랜지스터에 의해 구현될 수 있다. 메모리 셀(10)은 또한 소스(14), 드레인(16), 및 제어 게이트(30)를 포함한다.
많은 상업적으로 성공한 비휘발성 고상 메모리 디바이스가 현재 사용되고 있다. 이 메모리 디바이스는 상이한 유형의 메모리 셀을 사용할 수 있고, 각각의 유형은 하나 이상의 전하 저장 요소를 갖는다.
전형적인 비휘발성 메모리 셀은 EEPROM 및 플래시 EEPROM을 포함한다. EEPROM 셀 및 그 제조 방법의 예는 미국 특허 제5,595,924호에 주어져 있다. 플래시 EEPROM 메모리 셀, 메모리 시스템에서의 그의 사용 및 그 제조 방법의 예는 미국 특허 제5,070,032호, 제5,095,344호, 제5,315,541호, 제5,343,063호, 제5,661,053호, 제5,313,421호 및 제6,222,762호에 주어져 있다. 상세하게는, NAND 셀 구조를 갖는 메모리 디바이스의 예는 미국 특허 제5,570,315호, 제5,903,495호 및 제6,046,935호에 기술되어 있다. 또한, 유전체 저장 요소를 사용하는 메모리 디바이스의 예는 문헌(Eitan 등, "NROM: A Novel Localized Trapping, 2-Bit Nonvolatile Memory Cell," IEEE Electron Device Letters, vol. 21, no. 11, November 2000, pp. 543-545)에 그리고 미국 특허 제5,768,192호 및 제6,011,725호에 기술되어 있다.
실제로, 셀의 메모리 상태는 보통, 제어 게이트에 기준 전압이 인가될 때, 셀의 소스 전극과 드레인 전극을 거치는 전도 전류를 감지하는 것에 의해 판독된다. 이와 같이, 셀의 부유 게이트 상의 각각의 주어진 전하에 대해, 고정된 기준 제어 게이트 전압에 대한 대응하는 전도 전류가 검출될 수 있다. 이와 유사하게, 부유 게이트 상에 프로그램가능한 전하의 범위가 대응하는 문턱 전압 윈도우 또는 대응하는 전도 전류 윈도우를 정의한다.
대안적으로, 파티셔닝된 전류 윈도우 중에서 전도 전류를 검출하는 대신에, 제어 게이트에 테스트 중인 주어진 메모리 상태에 대한 문턱 전압을 설정하고 전도 전류가 문턱 전류보다 낮은지 높은지를 검출하는 것이 가능하다. 일 구현에서, 문턱 전류에 대한 전도 전류의 검출은 전도 전류가 비트 라인의 커패시턴스를 통해 방전되는 속도를 검사하는 것에 의해 달성된다.
도 3은 부유 게이트가 임의의 한 때에 선택적으로 저장하고 있을 수 있는 4개의 상이한 전하(Q1 내지 Q4)에 대한 소스-드레인 전류(ID)와 제어 게이트 전압(VCG) 사이의 관계를 나타낸 것이다. 4개의 실선 ID 대 VCG 곡선은 메모리 셀의 부유 게이트 상에 프로그램될 수 있는 4개의 가능한 전하 레벨 - 각각 4개의 가능한 메모리 상태에 대응함 - 을 나타낸다. 일 예로서, 한 집단의 셀의 문턱 전압 윈도우는 0.5V부터 3.5V까지의 범위에 있을 수 있다. 7개의 가능한 메모리 상태 "0", "1", "2", "3", "4", "5", "6" - 각각, 하나의 소거된 상태 및 6개의 프로그램된 상태를 나타냄 - 은 문턱 윈도우를 각각 0.5V의 간격으로 된 5개의 영역으로 파티셔닝하는 것에 의해 경계 구분(demarcate)될 수 있다. 예를 들어, 도시된 바와 같이, 2㎂의 기준 전류(IREF)가 사용되면, Q1로 프로그램된 셀은, 그의 곡선이 VCG = 0.5V와 1.0V에 의해 경계 구분되는 문턱 윈도우의 영역에서 IREF와 교차하기 때문에, 메모리 상태 "1"에 있는 것으로 간주될 수 있다. 이와 유사하게, Q4는 메모리 상태 "5"에 있다.
이상의 설명으로부터 알 수 있는 바와 같이, 메모리 셀이 보다 많은 상태를 저장하게 제조될수록, 그의 문턱 윈도우가 보다 미세하게 나누어진다. 예를 들어, 메모리 디바이스는 -1.5V부터 5V까지의 범위에 있는 문턱 윈도우를 가지는 메모리 셀을 가질 수 있다. 이것은 6.5V의 최대 폭을 제공한다. 메모리 셀이 16개의 상태를 저장하려고 하면, 각각의 상태는 문턱 윈도우에서 200mV부터 300mV까지를 차지할 수 있다. 이것은 요구된 분해능을 달성할 수 있기 위해 프로그래밍 및 판독 동작에서 보다 높은 정밀도를 요구할 것이다.
도 4a는 NAND 스트링으로 편성되는 메모리 셀 스트링을 개략적으로 나타낸 것이다. NAND 스트링(50)은 일련의 메모리 트랜지스터(M1, M2, ... Mn(예컨대, n= 4, 8, 16 또는 그 이상임)) - 그의 소스 및 드레인에 의해 데이지 체인 방식으로 연결됨 - 로 이루어져 있다. 한 쌍의 선택 트랜지스터(select transistor)(S1, S2)는, 각각, NAND 스트링의 소스 단자(54) 및 드레인 단자(56)를 통한 메모리 트랜지스터 체인과 외부 간의 연결을 제어한다. 메모리 어레이에서, 소스 선택 트랜지스터(S1)가 턴 온될 때, 소스 단자는 소스 라인에 결합된다(도 4b를 참조). 이와 유사하게, 드레인 선택 트랜지스터(S2)가 턴 온될 때, NAND 스트링의 드레인 단자가 메모리 어레이의 비트 라인에 결합된다. 체인 내의 각각의 메모리 트랜지스터(10)는 메모리 셀로서 기능한다. 메모리 트랜지스터는 의도된 메모리 상태를 나타내기 위해 주어진 양의 전하를 저장하는 전하 저장 요소(20)를 갖는다. 각각의 메모리 트랜지스터의 제어 게이트(30)는 판독 및 기입 동작에 대한 제어를 가능하게 한다. 도 4b에서 알 것인 바와 같이, NAND 스트링 행의 대응하는 메모리 트랜지스터의 제어 게이트(30) 모두는 동일한 워드 라인에 연결된다. 이와 유사하게, 각각의 선택 트랜지스터(S1, S2)의 제어 게이트(32)는, 각각, 그의 소스 단자(54) 및 드레인 단자(56)를 통해 NAND 스트링에의 제어 액세스를 제공한다. 마찬가지로, NAND 스트링 행의 대응하는 선택 트랜지스터의 제어 게이트(32) 모두는 동일한 선택 라인(select line)에 연결된다.
NAND 스트링 내의 주소지정된 메모리 트랜지스터(10)가 판독되거나 프로그래밍 동안 검증될 때, 그의 제어 게이트(30)는 적절한 전압을 공급받는다. 그와 동시에, NAND 스트링(50)에서의 나머지 주소지정되지 않은 메모리 트랜지스터는 그의 제어 게이트에 충분한 전압을 인가하는 것에 의해 완전히 턴 온된다. 이러한 방식으로, 개개의 메모리 트랜지스터의 소스로부터 NAND 스트링의 소스 단자(54)까지 그리고 마찬가지로 개개의 메모리 트랜지스터의 드레인으로부터 셀의 드레인 단자(56)까지의 전도성 경로가 효과적으로 생성된다. 이러한 NAND 스트링 구조를 갖는 메모리 디바이스는 미국 특허 제5,570,315호, 제5,903,495호 및 제6,046,935호에 기술되어 있다.
도 4b는 도 4a에 도시된 것과 같은 NAND 스트링(50)으로 구성되는 NAND 메모리 셀 어레이(210)의 일 예를 나타낸 것이다. 각각의 NAND 스트링 열을 따라, 비트 라인(36)과 같은 비트 라인이 각각의 NAND 스트링의 드레인 단자(56)에 결합된다. 각각의 NAND 스트링 뱅크를 따라, 소스 라인(34)과 같은 소스 라인이 각각의 NAND 스트링의 소스 단자(54)에 결합된다. 또한, NAND 스트링 뱅크에서의 메모리 셀 행을 따라 있는 제어 게이트는 워드 라인(42)과 같은 워드 라인에 연결된다. NAND 스트링 뱅크에서의 선택 트랜지스터 행을 따라 있는 제어 게이트는 선택 라인(44)과 같은 선택 라인에 연결된다. NAND 스트링 뱅크에서의 메모리 셀 행 전체가 NAND 스트링 뱅크의 워드 라인 및 선택 라인 상의 적절한 전압에 의해 주소지정될 수 있다. NAND 스트링 내의 메모리 트랜지스터가 판독되고 있을 때, 스트링에서의 나머지 메모리 트랜지스터는, 스트링을 통해 흐르는 전류가 본질적으로 판독되는 셀에 저장된 전하의 레벨에 의존하도록, 그의 연관된 워드 라인을 통해 최대한 턴 온된다.
도 5는 병렬로 감지되거나 프로그램되는, 예를 들어, NAND 구성으로 편성되는, 메모리 셀들의 페이지를 나타낸 것이다. 도 5는 본질적으로 도 4b의 메모리 어레이(210)에서의 NAND 스트링(50) 뱅크를 나타내고 있으며, 여기서 각각의 NAND 스트링의 상세는 도 4a에서와 같이 명확하게 도시되어 있다. 페이지(60)와 같은 페이지는 병렬로 감지되거나 프로그램되기 위해 인에이블되는 메모리 셀 그룹이다. 이것은 대응하는 감지 증폭기들의 페이지(212)에 의해 달성된다. 감지된 결과가 대응하는 래치들의 세트(214)에 래치된다. 각각의 감지 증폭기는 비트 라인을 통해 NAND 스트링에 결합될 수 있다. 페이지는 워드 라인(42)에 공통으로 연결된 페이지의 셀의 제어 게이트에 의해 인에이블되고, 각각의 셀은 비트 라인(36)을 통해 액세스가능한 감지 증폭기에 의해 액세스가능하다. 일 예로서, 셀들의 페이지(60)를 각각 감지하거나 프로그램할 때, 비트 라인 상의 적절한 전압과 함께, 감지 전압 또는 프로그래밍 전압이 각각 공통 워드 라인(WL3)에 인가된다.
메모리의 물리적 구성
플래시 메모리와 다른 유형의 메모리 사이의 한 가지 중요한 차이점은 셀이 소거된 상태로부터 프로그램되어야 한다는 것이다. 즉, 먼저 부유 게이트로부터 전하가 제거되어야만 한다. 프로그래밍은 이어서 부유 게이트에 다시 원하는 양의 전하를 추가한다. 이는 보다 많이 프로그램된 상태로부터 보다 덜 프로그램된 상태로 가기 위해 부유 게이트로부터 전하의 일부분을 제거하는 것을 지원하지 않는다. 이것은 갱신 데이터가 기존의 데이터를 덮어쓰기할 수 없고 이전에 기입되지 않은 위치에 기입되어야만 한다는 것을 의미한다.
게다가, 소거는 부유 게이트로부터 모든 전하를 제거하는 것이고 일반적으로 상당한 시간이 걸린다. 그 때문에, 셀 단위로 또는 심지어 페이지 단위로 소거하는 것은 번거롭고 아주 느릴 것이다. 실제로는, 메모리 셀 어레이가 많은 수의 메모리 셀 블록으로 나누어진다. 플래시 EEPROM 시스템에서 통상적인 것처럼, 블록이 소거 단위이다. 즉, 각각의 블록은 한꺼번에 소거되는 최소 수의 메모리 셀을 포함한다. 병렬로 소거될 블록 내의 많은 수의 셀을 집성하는 것이 소거 성능을 개선시킬 것인 반면, 큰 크기의 블록은 또한 많은 수의 갱신 및 오래된 데이터를 처리하는 것을 수반한다. 블록이 소거되기 바로 전에, 블록 내의 오래되지 않은 데이터를 구하기 위해 가비지 컬렉션(garbage collection)이 요구된다.
각각의 블록은 전형적으로 다수의 페이지로 나누어진다. 페이지는 프로그래밍 또는 판독의 단위이다. 일 실시예에서, 개개의 페이지는 세그먼트(segment)들로 나누어질 수 있고, 세그먼트는 기본 프로그래밍 동작으로서 한 번에 기입되는 가장 적은 수의 셀을 포함할 수 있다. 하나 이상의 데이터 페이지가 전형적으로 하나의 메모리 셀 행에 저장된다. 페이지는 하나 이상의 섹터를 저장할 수 있다. 섹터는 사용자 데이터 및 오버헤드 데이터를 포함한다. 다수의 어레이에 걸쳐 분산되어 있는 다수의 블록 및 페이지가 또한 메타블록 및 메타페이지로서 한꺼번에 조작될 수 있다. 그들이 다수의 칩에 걸쳐 분산되어 있으면, 그들은 메가블록(megablock) 및 메가페이지(megapage)로서 한꺼번에 조작될 수 있다.
다중 레벨 셀(Multi-level Cell, MLC) 메모리 파티셔닝의 예
각각의 메모리 셀이 다수의 비트의 데이터를 저장하는 비휘발성 메모리가 도 3과 관련하여 이미 기술되었다. 특정의 예는 전계 효과 트랜지스터 어레이 - 각각의 전계 효과 트랜지스터는 그의 채널 영역과 그의 제어 게이트 사이에 전하 저장 층을 가짐 - 로 형성되는 메모리이다. 전하 저장 층 또는 유닛은 각각의 전계 효과 트랜지스터에 대한 일정 범위의 문턱 전압을 야기하는 일정 범위의 전하를 저장할 수 있다. 가능한 문턱 전압의 범위는 문턱 윈도우에 걸쳐 있다. 문턱 윈도우가 다수의 문턱 전압 서브범위 또는 구역으로 파티셔닝될 때, 메모리 셀에 대한 상이한 메모리 상태를 나타내기 위해 각각의 분해가능 구역이 사용된다. 다수의 메모리 상태가 하나 이상의 이진 비트에 의해 코딩될 수 있다. 예를 들어, 4개의 구역으로 파티셔닝된 메모리 셀은 2-비트 데이터로서 코딩될 수 있는 4개의 상태를 지원할 수 있다. 이와 유사하게, 8개의 구역으로 파티셔닝된 메모리 셀은 3-비트 데이터로서 코딩될 수 있는 8개의 메모리 상태를 지원할 수 있다.
전 비트 전체 시퀀스 MLC 프로그래밍(All-bit, Full-Sequence MLC Programming)
도 6의 (0) 내지 도 6의 (2)는 한 집단의 4-상태 메모리 셀을 프로그래밍하는 것의 일 예를 나타낸 것이다. 도 6의 (0)은 메모리 상태 "0", "1", "2" 및 "3"을 각각 나타내는 4개의 구별되는 문턱 전압 분포로 프로그램가능한 메모리 셀 집단을 나타내고 있다. 도 6의 (1)은 소거된 메모리에 대한 "소거됨(erased)" 문턱 전압의 초기 분포를 나타내고 있다. 도 6의 (2)는 메모리 셀들 중 다수가 프로그램된 후의 메모리의 일 예를 나타내고 있다. 본질적으로, 셀은 초기에 "소거됨" 문턱 전압을 가지며, 프로그래밍은 그 문턱 전압을 검증 레벨(verify level) vV1, vV2 및 vV3에 의해 경계 구분되는 3개의 구역 중 하나 내의 보다 높은 값으로 이동시킬 것이다. 이러한 방식으로, 각각의 메모리 셀은 3개의 프로그램됨 상태 "1", "2" 및 "3" 중 하나로 프로그램되거나 프로그램되지 않은 채로 "소거됨" 상태에 있을 수 있다. 메모리가 보다 많은 프로그래밍을 가짐에 따라, 도 6의 (1)에 도시된 바와 같은 "소거됨" 상태의 초기 분포가 보다 좁아지게 될 것이고, 소거됨 상태가 "0" 상태에 의해 표현된다.
4개의 메모리 상태 각각을 표현하기 위해 하위 비트 및 상위 비트를 가지는 2-비트 코드가 사용될 수 있다. 예를 들어, "0", "1", "2" 및 "3" 상태가 각각 "11", "01", "00" 및 "10"에 의해 표현된다. 2 비트가 3개의 서브패스(sub-pass)에서 각각 판독 경계 구분 문턱 값 rV1, rV2 및 rV3과 관련하여 감지함으로써 한꺼번에 감지되는 "전체 시퀀스" 모드("full-sequence" mode)에서 감지하는 것에 의해 2-비트 데이터가 메모리로부터 판독될 수 있다.
비트 단위 MLC 프로그래밍 및 판독
도 7a 내지 도 7e는 주어진 2-비트 코드로 인코딩된 4-상태 메모리의 프로그래밍 및 판독을 나타낸 것이다. 도 7a는 각각의 메모리 셀이 2-비트 코드를 사용하여 2 비트의 데이터를 저장할 때의 4-상태 메모리 어레이의 문턱 전압 분포를 나타내고 있다. 이러한 2-비트 코드는 2004년 4월 24일자로 출원된, 발명의 명칭이 "NON-VOLATILE MEMORY AND CONTROL WITH IMPROVED PARTIAL PAGE PROGRAM CAPABILITY"인 Li 등의 미국 특허 출원 제10/830,824호에 개시되어 있다.
도 7b는 2-비트 코드를 사용하는 2-패스 프로그래밍 방식(2-pass programming scheme)에서의 하위 페이지 프로그래밍(하위 비트)을 나타내고 있다. 고장 허용 LM New 코드(fault-tolerant LM New code)는 본질적으로 임의의 중간 상태를 통해 천이하기 위해 임의의 상위 페이지 프로그래밍을 피한다. 이와 같이, 제1 패스의 하위 페이지 프로그래밍에서, "프로그램되지 않음" 메모리 상태 "0"을 DA보다는 크지만 DC보다는 작은 프로그램됨 문턱 전압을 갖는 (x, 0)로 표시된 "중간" 상태로 프로그래밍하는 것으로 나타낸 바와 같이, 논리 상태(상위 비트, 하위 비트) = (1, 1)가 소정의 중간 상태 (x, 0)로 천이한다.
도 7c는 2-비트 코드를 사용하는 2-패스 프로그래밍 방식에서의 상위 페이지 프로그래밍(상위 비트)을 나타내고 있다. 상위 페이지 비트를 "0"으로 프로그래밍하는 제2 패스에서, 하위 페이지 비트가 "1"에 있으면, 논리 상태 (1, 1)은 "프로그램되지 않음" 메모리 상태 "0"을 "1"로 프로그래밍하는 것으로 나타낸 바와 같이 (0, 1)로 천이한다. 하위 페이지 비트가 "0"에 있으면, 논리 상태 (0, 0)은 "중간" 상태로부터 "3"으로 프로그래밍하는 것에 의해 획득된다. 이와 유사하게, 하위 페이지가 "0"으로 프로그램되어 있는 동안, 상위 페이지가 "1"에 있어야 하면, 이는 "중간" 상태를 "2"로 프로그래밍하는 것으로 나타낸 바와 같이 "중간" 상태로부터 (1, 0)으로의 천이를 필요로 할 것이다.
도 7d는 2-비트 코드로 인코딩된 4-상태 메모리의 하위 비트를 구분하기 위해 요구되는 판독 동작을 나타내고 있다. LM 플래그(LM flag)가 판독될 수 있는지를 결정하기 위해 readB 동작이 먼저 수행된다. 그러한 경우, 상위 페이지가 프로그램되었고 readB 동작은 하위 페이지 데이터를 정확하게 산출할 것이다. 다른 한편으로, 상위 페이지가 아직 프로그램되지 않았으면, 하위 페이지 데이터가 readA 동작에 의해 판독될 것이다.
도 7e는 2-비트 코드로 인코딩된 4-상태 메모리의 상위 비트를 구분하기 위해 요구되는 판독 동작을 나타내고 있다. 도면으로부터 명백한 바와 같이, 상위 페이지 판독은 경계 구분 문턱 전압 DA, DB 및 DC와 관련하여 각각 readA, readB 및 readC의 3-패스 판독을 필요로 할 것이다.
2-비트 메모리에 대한 비트 단위 방식에서, 메모리 셀들의 물리적 페이지가 2개의 논리 데이터 페이지를 저장할 것이고, 하위 데이터 페이지는 하위 비트에 대응하고 상위 데이터 페이지는 상위 비트에 대응한다.
포기-미세 프로그래밍
다중 상태 프로그래밍에 대한 다른 변형은, 3-비트 메모리 예에 대해 도 7f에 예시된 바와 같이, 포기-미세 알고리즘(foggy-fine algorithm)을 사용한다. 그에 도시된 바와 같이, 이것은 다른 다단계 프로그래밍 동작이다. 제1 프로그래밍 동작은 상단 라인에 도시된 바와 같이 수행되고, 이어서 포기 프로그래밍 스테이지(foggy programming stage)가 뒤따른다. 포기 단계(foggy phase)는 8개의 최종 상태 모두를 사용하는 제1 단계로부터의 전체 3-비트 프로그래밍 동작(full 3-bit programming operation)이다. 그렇지만, 포기 단계의 끝에서, 이 상태에 있는 데이터는 8개의 상태 각각에 대해 잘 정의된 분포로 아직 충분히 분해되지 않고(따라서, "포기"라고 명명함), 즉각 추출가능하지 않다.
그렇지만, 각각의 셀이 그의 궁극적인 목표 상태에 가까워지도록 프로그램되기 때문에, 미국 특허 제6,870,768호에 기술된 이웃하는 셀간 결합의 일종인 "Yupin" 효과가 그의 효과 대부분을 나타내고 있다. 이 때문에, 미세 프로그램 단계(하단 라인에 도시됨)가 실행될 때, 이 결합은 주로 이 최종 단계에 대해 고려되었고, 따라서 셀 분포가 그의 목표 범위로 보다 정확하게 분해된다. 이 주제에 관한 추가 상세는 미국 특허 제6,870,768호 및 제6,657,891호에 그리고 2009년 12월 18일자로 출원되고 "대각선" 제1-포기-미세 방법("diagonal" first-foggy-fine method)을 제시하는, 발명의 명칭이 "Atomic Program Sequence and Write Abort Detection"인 Gorobets 등의 미국 특허 출원 제12/642,740호에 주어져 있다.
이진 및 MLC 메모리 파티셔닝
도 6 및 도 7은 2-비트("D2"라고도 지칭됨) 메모리의 예를 나타내고 있다. 알 수 있는 바와 같이, D2 메모리는 그의 문턱 범위 또는 윈도우가 4개의 상태를 표시하는 4개의 영역으로 파티셔닝되어 있다. 이와 유사하게, D3에서, 각각의 셀은 3 비트(하위, 중간 및 상위 비트)를 저장하고, 8개의 영역이 있다. D4에서는, 4 비트 및 16개의 영역이 있고, 이하 마찬가지이다. 메모리의 유한한 문턱 윈도우가 보다 많은 영역들로 파티셔닝되기 때문에, 프로그래밍 및 판독에 대한 분해능이 필연적으로 보다 미세하게 될 것이다. 메모리 셀이 보다 많은 비트를 저장하도록 구성될 때 2 가지 문제가 발생한다.
첫째, 셀의 문턱값이 보다 정확하게 프로그램되거나 판독되어야만 할 때 프로그래밍 또는 판독이 보다 느려질 것이다. 사실, 실제로 (프로그래밍 및 판독에 필요한) 감지 시간이 파티셔닝 레벨의 수의 제곱으로서 증가하는 경향이 있다.
둘째, 플래시 메모리가 사용으로 노후화됨에 따라 내구성 문제를 갖는다. 셀이 반복하여 프로그램되고 소거될 때, 전하가 유전체를 가로질러 터널링함으로써 부유 게이트(20)(도 2를 참조)로 왔다갔다한다. 매번마다 일부 전하가 유전체에 포획될 수 있고 셀의 문턱값을 변경할 것이다. 사실, 사용함에 따라, 문턱 윈도우가 점진적으로 좁아질 것이다. 이와 같이, MLC 메모리는 일반적으로 용량, 성능 및 신뢰성 간의 트레이드오프를 갖게 설계되어 있다.
이와 달리, 이진 메모리에 대해서는, 메모리의 문턱 윈도우가 단지 2개의 영역으로 파티셔닝된다는 것을 알 것이다. 이것은 최대 에러 마진(maximum margin of errors)을 가능하게 할 것이다. 이와 같이, 이진 파티셔닝은, 저장 용량이 감소되는 반면, 최대 성능 및 신뢰성을 제공할 것이다.
도 7과 관련하여 기술되는 다중 패스, 비트 단위 프로그래밍 및 판독 기법은 MLC와 이진 파티셔닝 간의 매끄러운 전환을 제공한다. 이 경우에, 메모리가 하위 비트만으로 프로그램되어 있으면, 메모리는 사실상 이진 파티셔닝된 메모리이다. 이 접근법은, 단일 레벨 셀(single-level cell, SLC) 메모리의 경우에서와 같이 문턱 윈도우의 범위를 충분히 최적화하지는 않지만, MLC 메모리의 하위 비트의 동작에서와 같이 동일한 경계 구분 또는 감지 레벨을 사용한다는 장점이 있다. 나중에 기술될 것인 바와 같이 이 접근법은 MLC 메모리가 이진 메모리로서 사용하기 위해 "수용(expropriate)"될 수 있게 하거나 그 반대로 할 수 있게 한다. 그렇지만, MLC 메모리가 보다 엄격한 사용 규격을 가지는 경향이 있다는 것을 알 것이다.
이진 메모리 및 부분 페이지 프로그래밍
하나의 메모리 셀의 전하 저장 요소 내에 프로그램되는 전하는 이웃하는 메모리 셀의 전계를 혼란시키는 전계를 생성한다. 이것은 본질적으로 전하 저장 요소를 갖는 전계 효과 트랜지스터인 이웃하는 메모리 셀의 특성에 영향을 미칠 것이다. 상세하게는, 감지될 때, 메모리 셀은 덜 혼란될 때보다 더 높은 문턱 레벨을 갖는 것처럼(또는 더 많이 프로그램된 것처럼) 보일 것이다.
일반적으로, 메모리 셀이 제1 전계 환경 하에서 프로그램 검증되고, 이웃하는 셀이 후속하여 상이한 전하로 프로그램되는 것으로 인해, 상이한 전계 환경 하에서 나중에 또다시 판독되는 경우, 이웃하는 부유 게이트들 사이의 결합("Yupin 효과"라고 지칭됨)으로 인해 판독 정확도가 영향을 받을 수 있다. 반도체 메모리의 집적도가 점점 더 높아짐에 따라, 저장된 전하로 인한 메모리 셀 사이의 전계의 혼란(Yupin 효과)은 셀간 간격(inter-cellular spacing)이 줄어듦에 따라 점점 더 상당하게 된다.
앞서 도 7과 관련하여 기술된 비트 단위 MLC 프로그래밍 기법은 동일한 워드 라인을 따라 있는 셀로부터의 프로그램 교란(program disturb)을 최소화하도록 설계되어 있다. 도 7b로부터 알 수 있는 바와 같이, 2개의 프로그래밍 패스 중 제1 패스에서, 셀의 문턱값이 기껏해야 문턱 윈도우 중간 정도까지 이동된다. 제1 패스의 효과는 최종 패스에 의해 인계받는다. 최종 패스에서는, 문턱값이 1/4 정도만 이동된다. 환언하면, D2의 경우, 이웃하는 셀 간의 전하 차가 그의 최대치의 1/4로 제한된다. 3개의 패스를 갖는 D3의 경우, 최종 패스는 전하 차를 그의 최대치의 1/8로 제한할 것이다.
그렇지만, 비트 단위 다중 패스 프로그래밍 기법은 부분 페이지 프로그래밍에 의해 열화될 것이다. 페이지는 하나의 단위로서 한꺼번에 프로그램되는, 전형적으로 행 또는 워드 라인을 따라 있는, 메모리 셀 그룹이다. 페이지의 비중첩 부분들을 다수의 프로그래밍 패스에 걸쳐 개별적으로 프로그램하는 것이 가능하다. 그렇지만, 페이지의 셀 모두가 최종 패스에서 한꺼번에 프로그램되는 것은 아니기 때문에, 이는 페이지가 완료된 후에 셀들 간에 프로그램된 전하의 큰 차이를 야기할 수 있다. 이와 같이, 부분 페이지 프로그래밍은 보다 많은 프로그램 교란을 야기할 것이고 감지 정확도에 대한 보다 큰 마진을 필요로 할 것이다.
메모리가 이진 메모리로서 구성되어 있는 경우에, 동작의 마진이 MLC의 것보다 더 넓다. 바람직한 실시예에서, 이진 메모리는 페이지의 비중첩 부분이 페이지에 대한 다수의 프로그래밍 패스 중 하나에서 개별적으로 프로그램될 수 있는 부분 페이지 프로그래밍을 지원하도록 구성된다. 프로그래밍 및 판독 성능이 큰 크기의 페이지로 동작하는 것에 의해 개선될 수 있다. 그렇지만, 페이지 크기가 호스트의 기입 단위(전형적으로 512-바이트 섹터)보다 훨씬 더 클 때, 그의 사용은 비효율적일 것이다. 페이지보다 미세한 입도로 동작하는 것은 이러한 페이지의 보다 효율적인 사용을 가능하게 한다.
주어진 예는 이진과 MLC를 대비한 것이다. 제1 개수의 레벨을 갖는 제1 메모리와 제1 메모리보다 더 많은 제2 개수의 레벨을 갖는 제2 메모리 사이에 일반적으로 동일한 원리가 적용된다는 것을 알 것이다.
논리 및 물리 블록 구조
도 8은 메모리가 제어기에 존재하는 소프트웨어 구성요소인 메모리 관리자에 의해 관리되는 것을 나타낸 것이다. 메모리(200)은 블록으로 편성되고, 각각의 셀 블록은 최소 소거 단위이다. 구현에 따라, 메모리 시스템은 블록 집합체에 의해 "메타블록" 그리고 또한 "메가블록"으로 형성된 심지어 큰 소거 단위로 동작할 수 있다. 편의상, 설명이 소거 단위를 메타블록으로서 지칭할 것이지만, 일부 시스템이 메타블록 집합체에 의해 형성된 "메가블록"과 같은 훨씬 더 큰 소거 단위로 동작한다는 것을 알 것이다.
호스트(80)는 파일 시스템 또는 운영 체제 하에서 애플리케이션을 실행하고 있을 때 메모리(200)에 액세스한다. 전형적으로, 호스트 시스템은 데이터를 논리 섹터 단위로 주소지정하고, 여기서, 예를 들어, 각각의 섹터는 512 바이트의 데이터를 포함할 수 있다. 또한, 호스트가 논리 클러스터 단위로 - 각각의 논리 클러스터는 하나 이상의 논리 섹터로 이루어져 있음 - 메모리 시스템을 판독하고 그에 기입하는 것이 보통이다. 일부 호스트 시스템에서, 선택적인 호스트측 메모리 관리자는 호스트에서 하위 레벨 메모리 관리를 수행하기 위해 존재할 수 있다. 대부분의 경우에, 판독 또는 기입 동작 동안, 호스트(80)는 본질적으로, 연속적인 주소를 갖는 데이터의 논리 섹터들의 스트링(string of logical sectors of data)을 포함하는 세그먼트를 판독하거나 기입하라는 커맨드를 메모리 시스템(90)에 발행한다.
메모리측 메모리 관리자(300)는 플래시 메모리(200)의 메타블록 사이의 호스트 논리 섹터의 데이터의 저장 및 검색을 관리하기 위해 메모리 시스템(90)의 제어기(100)에 구현된다. 메모리 관리자는 프런트엔드 시스템(310) 및 백엔드 시스템(320)을 포함한다. 프런트엔드 시스템(310)은 호스트 인터페이스(312)를 포함한다. 백엔드 시스템(320)은 메타블록의 소거, 판독 및 기입 동작을 관리하기 위한 다수의 소프트웨어 모듈을 포함한다. 메모리 관리자는 또한 플래시 메모리(200) 및 제어기 RAM(130) 사이의 그의 동작과 연관된 시스템 제어 데이터 및 디렉토리 데이터를 유지한다.
도 9는 백엔드 시스템의 소프트웨어 모듈을 나타낸 것이다. 백엔드 시스템은 주로 2개의 기능 모듈 - 매체 관리 계층(Media Management Layer)(330)과 데이터 흐름 및 시퀀싱 계층(Dataflow and Sequencing Layer)(340) - 을 포함한다.
매체 관리 계층(330)은 플래시 메모리 메타블록 구조 내에 논리 데이터 저장소를 편성하는 일을 맡고 있다. 추가 상세는 나중에 "매체 관리 계층"에 관한 섹션에서 제공될 것이다.
데이터 흐름 및 시퀀싱 계층(340)은 프런트엔드 시스템과 플래시 메모리 사이의 데이터 섹터의 시퀀싱 및 전송을 맡고 있다. 이 계층은 커맨드 시퀀서(342), 하위 레벨 시퀀서(344) 및 플래시 제어 계층(346)을 포함한다. 추가 상세는 나중에 "하위 레벨 시스템 규격"에 관한 섹션에서 제공될 것이다.
메모리 관리자(300)는 바람직하게는 제어기(100)에 구현된다. 메모리 관리자는 호스트로부터 수신되는 논리 주소를 데이터가 실제로 저장되는 메모리 어레이 내의 물리 주소로 변환(translate)하고, 이어서 이 주소 변환을 기록해둔다.
도 10a의 (i) 내지 도 10a의 (iii)은 논리 그룹과 메타블록 사이의 매핑을 개략적으로 나타낸 것이다. 물리 메모리의 메타블록은 논리 그룹의 데이터의 N개의 논리 섹터를 저장하기 위한 N개의 물리 섹터를 갖는다. 도 10a의 (i)는 논리 그룹 LG i 로부터의 데이터를 나타낸 것이고, 여기서 논리 섹터는 연속적인 논리 순서 0, 1, ..., N-1로 있다. 도 10a의 (ii)는 동일한 데이터가 동일한 논리 순서로 메타블록에 저장된 것을 나타내고 있다. 메타블록은, 이러한 방식으로 저장될 때, "순차적(sequential)"이라고 말해진다. 일반적으로, 메타블록은 상이한 순서로 저장된 데이터를 가질 수 있고 이 경우에 메타블록은 "비순차적(non-sequential)" 또는 "무질서적(chaotic)"이라고 말해진다.
논리 그룹의 최하위 주소와 그가 매핑되는 메타블록의 최하위 주소 간에 오프셋이 있을 수 있다. 이 경우에, 논리 섹터 주소는 메타블록 내에서 논리 그룹의 하단으로부터 다시 상단으로의 루프로서 랩 라운드(wrap round)한다. 예를 들어, 도 10a의 (iii)에서, 논리 섹터 k의 데이터로 시작하는 메타블록이 그의 첫 번째 위치에 저장된다. 마지막 논리 섹터 N-1에 도달될 때, 메타 블록은 섹터 0으로 랩어라운드하고 최종적으로 논리 섹터 k-1과 연관된 데이터를 그의 마지막 물리 섹터에 저장한다. 바람직한 실시예에서, 메타블록의 첫 번째 물리 섹터에 저장되는 데이터의 시작 논리 섹터 주소를 식별하는 것과 같이, 임의의 오프셋을 식별하기 위해 페이지 태그(page tag)가 사용된다. 2개의 블록이 단지 페이지 태그만큼 상이할 때 2개의 블록은 그의 논리 섹터가 유사한 순서로 저장된 것으로 간주될 것이다.
도 10b는 논리 그룹과 메타블록 사이의 매핑을 개략적으로 나타낸 것이다. 각각의 논리 그룹(380)은, 데이터가 현재 갱신 중에 있는 적은 수의 논리 그룹을 제외하고는, 고유 메타블록(370)에 매핑된다. 논리 그룹은, 갱신된 후에, 상이한 메타블록에 매핑될 수 있다. 매핑 정보가 논리-물리 디렉토리들의 세트에 유지되고, 이에 대해서는 나중에 보다 상세히 기술될 것이다.
판독 교란 찾아내기
인접한 워드 라인 상의 메모리 셀들 사이의 용량성 결합으로 인해, 하나의 워드 라인 상의 데이터에 액세스하는 동안 사용되는 전압 레벨이 이웃하는 워드 라인(비액세스된 워드) 상의 데이터 품질에 영향을 미칠 수 있다. 이것이 기입 동작에서 발생하여 "기입 교란"을 야기하기도 하고 판독 동작에서 발생하여 "판독 교란"을 야기하기도 할 수 있다. 전압 상승 속도(voltage ramp rate)를 변경하는 것(예를 들어, 미국 특허 제6,717,851호를 참조), 워드 라인이 기입되는 순서를 변경하는 것(예를 들어, 미국 특허 제7,986,554호를 참조), 포기-미세 알고리즘을 사용하는 것(앞서 논의됨), 또는 다양한 기입후 판독 검증(post-write read verification)(예를 들어, 미국 특허 제8,634,240호 및 미국 특허 공보 제2013-0028021호)을 비롯하여, 프로그램 교란을 처리하는 다수의 기법이 공지되어 있다. 이 섹션에서는 메모리의 국소화된 구역에 대한 판독이 블록 내의 이웃하는 워드 라인에서의 검출되지 않은 교란을 야기할 수 있는 판독 교란을 겪을 가능성이 보다 많은 워드 라인을 결정하는 기법을 살펴본다.
이 문제를 해결하기 위해 다수의 접근법이 사용될 수 있다. 하나는 제어기 상의 RAM에서 블록 판독 카운터를 사용하는 것이며, 이는 블록이 판독에 의해 교란될 수 있을 때 공정한 근사치를 제공할 수 있다. 이 해결책은 꽤 많은 양의 메모리 공간(블록당 적어도 4 바이트 x 시스템에서의 블록의 개수)을 소비한다. 256K개의 블록을 갖는 SSD에서, 이것은 간단한 판독 카운터를 추적하기 위한 약 1MB의 공간과 같을 수 있고, 이는 상당한 양의 비교적 고가인 제어기 RAM이다. 심지어 이 양의 RAM을 사용할 때, 블록 카운터의 주된 문제점은 어느 워드 라인이 문제를 야기했는지를 알기 위한 입도를 제공하지 않는다는 것과 문턱값이 극도로 낮게 설정된다는 것이다. 블록에 대한 문턱값이 실패할 때, 블록 전체가 스크러빙되고(즉, 복사되고), 이는 조기 사이클링(premature cycling)에 이르게 한다. 여기서 제시되는 방식에 의해, 시스템은 어느 워드 라인이 판독되었는지를 명확하게 검출할 수 있고, 그 데이터 및 이웃 데이터를 이동시키지만, 나머지 블록은 그대로 놔둘 수 있다.
다른 접근법은, 판독 교란을 찾아내기 위해 유효한 데이터를 갖는 기입된 블록을 랜덤하게 또는 순차적으로 샘플링하는 것인, 판독 패트롤(read patrol)(미국 특허 제7,012,835호; 제7,477,547호; 제7,616,484호; 및 미국 특허 공보 제2009/0172258호를 참조)이다. 이 방법은 추가의 백그라운드 전력을 사용하고, 핫 구역(hot zone)을 제때에(이것이 백그라운드 시간의 양에 의존하기 때문임) 또는 전혀 찾아내지 못할 수 있다. 판독 패트롤이 전체 디바이스를 커버하는데 상당한 양의 시간이 걸린다. 또한, 판독 패트롤 자체는 그가 해결하려고 시도하고 있는 문제점인 판독 교란에 기여한다. 호스트 판독에 대해 주기적으로 이웃하는 워드 라인을 판독하는 것은 잠재적인 판독 교란을 검출하는데 도움을 줄 수 있지만, 호스트 동작에 부가의 전력 및 지연 시간을 추가한다. 그에 부가하여, 이웃 워드 라인을 판독하는 것은 노이즈 에러를 겪으며, 핫 판독 데이터 주소(hot read data address)를 검출하고 식별하려고 시도하는데 방해가 된다.
여기서 제시되는 예시적인 실시예는, 판독 구역을 추적하고 플래시의 핫 판독 영역(hot read area)을 찾아내기 위해, 해시 트리를 사용한다. 해시 트리는 작은 풋프린트의 메모리 영역을 사용하고, 트리의 설계 레벨에 따라, 간단한 블록 카운터보다 더 높은 정확도를 제공할 수 있다. 해시 트리는 호스트가 판독하고 있는 플래시의 영역을 격리시키는데 도움을 줄 수 있다. 실시예에 따라, 트리가 길거나 짧게 - 보다 많은 브랜치(branch)를 갖거나 보다 적은 브랜치를 가짐 - 설계될 수 있고, 트리가 대칭이거나 비대칭일 수 있다.
처음에, 트리가 시작될 때, 단지 하나의 레벨(레벨 0)이 사용된다. 레벨 0은 N개의 4-바이트 카운터의 단일 세트일 수 있다. 구역이 판독에 의해 적중(hit)될 때, 판독 카운터가 증분된다. 구역이 특정 문턱값에 도달할 때, 구역이 레벨 1로 격상된다. 구역이 레벨 1로 격상될 때, 그의 공간이 레벨 1에서 추가 구역들로 쪼개진다. 이것은 구역의 핫 스페이스(hot space)를 검출하기 위한 보다 높은 정확도를 제공한다. 어느 구역이 격상되었는지를 나타내기 위해 포인터가 사용될 수 있다. 구역이 격상된 후에, 그의 판독 카운트를 추적하는데 도움을 주기 위해 그의 루트가 여전히 증분할 수 있다. 트리가 채워질 때 격상에 대한 문턱값이 수정될 수 있다.
구역의 격상이 트리를 따라 위로 계속될 수 있고, 여기서 각각의 레벨 해시(level hash)는 하나 이상의 자식 노드를 가질 수 있다. 임베디드 디바이스에서는 공간이 제한되어 있기 때문에, 하위 노드에서의 상이한 구역이 보다 핫하게 될 때, 트리가 끝없이 성장할 수 없도록 소정의 시점에서 축출이 일어나야만 한다. 축출이 일어날 때, 구역이 축소(collapse down)되고, 새로운 구역이 추가 분석을 위해 트리에서 격상된다. 축출 동안, 구역 판독 카운트는 여전히 보존되지만, 트리 정보는 상실된다.
레벨의 개수는 구현에 의존할 것이다. 구역이 트리 꼭대기에 도달하고 최고 문턱값에 도달할 때, 구역이 판독 스크러빙을 위한 추가 평가를 위해 판독 패트롤 목록(read patrol list)에 배치될 수 있다. 스크러빙, 리프레시(refresh), 및 패트롤 동작에 대한 추가 상세는 미국 특허 제7,012,835호; 제7,477,547호; 제7,616,484호; 및 미국 특허 공보 제2009/0172258호에서 찾아볼 수 있다.
트리 구조 및 레벨 카운트를 유지하기 위해, 주기적으로 트리 및 그의 파라미터가 메모리 섹션 상의 비휘발성 메모리에 저장될 수 있다. 이어서, 파워 업 시에, 테이블이 비휘발성 메모리로부터 다시 제어기 RAM에 로드될 수 있다.
카운터 포화(counter saturation)를 피하기 위해, 트리가 주기적으로 소정의 양만큼 다시 가지치기(prune)될 수 있다. 가지치기는 블록 소거, 핫 판독 데이터 마이그레이션(hot read data migration)에 의해, 그리고 대안적으로, 특정 핫 카운트(소거 횟수) 이정표에 도달될 때 일어날 것이다. 이 프로세스는 "트리 레벨링(tree leveling)"이라고 지칭될 수 있고, 여기서 프로그램/소거 카운터가 특정 레벨에 도달할 때, 트리 전체가 다시 페어링(pare)될 수 있다. 디바이스가 균등하게 웨어 레벨링(wear level)되면, 시스템에서의 모든 블록이 핫 카운트(hot count)가 퍼센트 변동 이하만큼 변할 것이다. (레벨링에 관한 추가 상세는 미국 특허 제7,353,325호; 제7,441,067호; 제7,120,729호; 및 미국 특허 공보 제2010-0174845호에 주어져 있다.) 이 지식을 사용하여, 트리를 가지치기하기 위해 특정 핫 카운트 체크포인트(hot count checkpoint)가 설정될 수 있다. 트리의 가지치기는 전역적 리셋, 또는 카운터를 어떤 퍼센트만큼 페어링하는 것, 또는 트리를 고정된 양만큼 페어링하는 것일 수 있다. 줄기 문턱값(stem threshold)이 교차(그 레벨의 구역에 대응하는 블록, 워드 라인, 논리 그룹 또는 다른 구조가 스크러빙 목록(scrub list)에 도달하게 함)될 때마다 트리가 가지치기될 수 있다.
영역이 핫(hot)한 것으로 검출될 때, 핫 영역(및 그의 이웃하는 워드 라인)이 새로운 블록으로 리프레시되거나(나머지 블록은 그대로 놔둠), 블록 전체가 스크러빙될 수 있다. 판독이 계속됨에 따라 트리를 넘어뜨리지 않기 위해, 핫 데이터가 별도의 구역으로 리프레시될 수 있거나, 핫 데이터가 단지 자연스럽게 마이그레이션할 수 있다. 자연스럽게 마이그레이션하면, 핫 판독 구역이 콜드(cold)하게 되는 경우 별다른 것이 행해질 필요가 없다. 그에 따른 판독 교란의 양을 감소시키기 위해 핫 데이터에 대한 별도의 구역이 다양한 방식으로 관리될 수 있다. 예를 들어, 데이터가 이진 포맷으로 저장되고, 상이한 마진을 사용하며, 데이터를 저장하는 워드 라인들 사이의 하나 이상의 사용되지 않는 워드 라인에 저장되며, 기타일 수 있다. 이 구성들 중 임의의 것에 대해, 잠재적인 판독 교란의 검출은 중간의 이웃 워드 라인을 비롯한 부분 데이터 블록의 축출 또는 핫 판독 데이터의 가능한 특수 처리에 의한 블록 전체의 리사이클링을 가져올 수 있다. 핫 판독 데이터는, 나중에 콜드하면, 정규 풀(regular pool)에 재합류(rejoin)할 수 있다.
한 세트의 실시예에서, 구역이 핫한 것으로 검출되며, 이웃이 체크(check)되고 스크러빙된 후에, 핫 데이터가 별도의 테이블을 사용하여 논리적으로 추적될 수 있다. 이 데이터를 개별적으로 추적하는 것은 데이터가 콜드하게 될 때를 검출하는 장점을 제공할 수 있고, 스크러빙 이후 트리에서 동일한 데이터 트리거 분기(data trigger branching)를 가지는 것으로부터 도움을 받을 수 있다. 핫 데이터가 장래의 판독 교란에 대비해 여전히 추적될 필요가 있을 것이다.
트리가 디바이스를 물리적으로 추적하는데 사용되고 구역 내에서 소거가 행해지면, 그 구역의 일부분이 리프레시되었다는 사실을 참작하기 위해 판독 카운터가 정의된 알고리즘 양만큼 롤백(roll back)될 수 있다. 실시예 및 레벨에 따라, 트리의 브랜치는 논리 그룹(예를 들어, 4KB), 다이의 WL, 일련의 WL, 또는 일련의 블록을 나타낼 수 있다. 소거가 블록 단위로 행해지기 때문에, 필요한 경우, 그 블록을 나타내는 브랜치가 블록 레벨로 축소될 필요가 있을 것이다. 축소 시에, 새로운 브랜치가 격상될 수 있거나, 격상이 그 세트에 대한 다음 판독에서 일어날 수 있다.
판독 교란이 물리적으로 인접한 워드 라인에 대한 동작의 결과이기 때문에, 예시적인 실시예는 각각의 레벨에서 구역의 물리 주소를 추적하는 것에 기초한다. 대안의 실시예는 트리가 주소를 물리적으로가 아니라 논리적으로 추적하게 하는 것이고, 구역/브랜치에 대한 임의의 기입은 카운터에 대한 감소 효과(decrementing effect)를 가져야만 한다.
이 개념들 중 일부가 도 11 내지 도 13과 관련하여 예시되어 있다. 도 11은 2 레벨 예에 대한 프로세스의 개략적 표현이다. 일반적으로, 레벨 0 구역은 다이, 다이의 일부분, 다수의 블록 ... 워드 라인 그룹일 수 있다. 최고 레벨(이 예에서, 레벨 1)에 있는 구역은 개개의 워드 라인만큼 작을 수 있다. (본 논의에서, "구역(zone)"은, 예를 들어, 미국 특허 제6,901,498호에 기술된 종류의 구역 구조(zone structure)에 대응하는 것으로 의미되지도 않고 적어도 그러한 것으로 의미될 필요도 없으며, 보다 일반적으로 다이, 블록, 워드 라인 등과 같은 물리 메모리 영역에 대해 사용되고 있다.) 도 11의 예에서, 레벨 0 구역은 소정 개수의 블록으로서 취해지고, 레벨 1 구역은 레벨 0 구역의 블록들의 소정의 부분으로서 취해진다.
도 11의 하부 부분에 레벨 0 카운터(501)이 있고, 각각의 판독 카운터는 하나의 구역 0 내지 N에 대응한다. 예를 들어, 카운터(503)는 구역 0의 블록(505)이 판독을 위해 액세스되는 횟수를 추적한다. 이 예에서, 구역 0의 블록은 추가 분석을 위해 레벨 1 구역들로 분할되고, 몇 개의 레벨 1 카운터가 있을 수 있다. 좌측에 도시된 바와 같이, 카운터가 레벨에 대한 문턱값에 도달할 때, 대응하는 구역의 블록이 추가 평가를 위해 한 레벨 상승된다. 구역의 레벨이 상승할 때, 카운트가 구역의 서브부분(subpart)들에 균등하게 분배되거나, 0으로 리셋되거나, 별도의 마스터 구역 카운터가 유지될 수 있다.
레벨 1에서, 격상된 레벨 0 구역은 대응하는 카운터(511)를 갖는 레벨 1 구역들의 세트로 세분되고: 예를 들어, 구역 A의 블록(515)은 카운터(513)를 사용하여 모니터링된다. 레벨 1의 카운터가 그 레벨의 문턱값과 대조하여 체크되고, 필요에 따라 그 레벨로 또는 판독 스캔(read scan)에 대한 목록에서 상승되며, 여기서, 구현에 따라, 시스템은 시스템의 ECC 유닛(플래시 관리 유닛(flash management unit, FMU), 코드워드, 또는 ECC 페이지라고 다양하게 지칭됨)에 기초하여 블록 그룹, WL 그룹으로, 또는 심지어 가장 작은 판독/기입 입도로 내려가기 위해 좁힘 프로세스(narrowing process)를 반복할 수 있다. 블록이 소거되고 블록이 상위 레벨(도 11에서의 레벨 1 등)에 있을 때, 구역이 한 레벨 아래로 천이될 수 있다. 요소의 축소(collapsing)는 다른 카운터들의 비교, 블록 소거에 기초하거나, 트리 레벨링 절차의 일부일 수 있다. 하나의 브랜치의 축소는 다른 브랜치에서의 분할을 야기할 수 있다. 루트 노드가 트리 축소(tree collapse) 시에 평가될 수 있거나, 빈 구역 카운터(free zone counter)가 없으면, 임의의 축소 시에 트리 전체가 재평가될 수 있고, 여기서 우선순위는 가장 높은 카운터 또는 가장 최근의 카운터를 갖는 구역에 주어질 수 있다.
레벨 1로부터, 카운터(521)를 갖는 구역(구역 X)이, 판독 교란 효과가 있는지 체크하기 위해, 판독 스캔에 대한 후보 목록으로 이동된다. 이 구역이 워드 라인 또는 일련의 워드 라인으로 좁혀지면, 이들이 빈번히 액세스되는 구역에 대한 "버닝 구역(burning zone)" 목록에 배치될 수 있다.
도 12에서 이 상황을 보다 상세히 살펴본다. 하단에 레벨 0에 대한 구역 카운터들의 세트가 있고, 여기서 구역 0 내지 구역 N은 플레인(plane), 다이, 칩, 또는 디바이스 용량 전체를 나타낼 수 있다. 카운트 값에 기초하여, 이들이 대응하는 문턱값에 도달할 때, 그 세트의 카운터가 레벨 1에 대한 동일 크기의 구역들로 파티셔닝될 수 있다. 도 12는 레벨 0으로부터의 Q개의 구역(그 중 2개가 도시되어 있음)이 레벨 1로 격상될 때 - 각각이 대응하는 카운터를 갖는 X개의 구역으로 세분됨 - 의 경우를 나타낸 것이다. 예를 들어, 레벨 0으로부터의 구역 0은 여기서 레벨 1에서의 다수의 보다 작은 구역(구역 A 내지 구역 A+X)으로 쪼개진다. 레벨 1의 구역에 대한 카운터는 이와 유사하게 레벨 1의 구역을 레벨로 언제 이동시켜야 하는지를 결정하기 위해 사용된다. 예를 들어, 구역 A+1은 여기서 레벨 2에서의 다수의(또다시 이 예에서, X개의) 보다 작은 구역으로 쪼개진다. 예컨대, 구역 'E+1'이 높은 카운트 값을 가지면, 이는 판독 교란 효과가 있는지 체크하기 위해 판독 스캔으로 보내질 수 있다.
도 13은 도 12와 유사하지만, 약간 상이한 시나리오에 대한 것이다. 도 13은 2개의 레벨 0 구역(구역 0 및 구역 N) 각각이 레벨 1 구역들의 세트로 세분되고, 그 각각이 이어서 레벨 2 구역들의 세트로 추가로 분할되는 2개의 구역(구역 A+1 및 구역 A+X, 구역 B 및 구역 B+1)을 갖는 것을 나타내고 있다. 펌웨어/하드웨어가 대칭 해시 트리를 유지하는 것이 보다 용이할 수 있지만, 비대칭 트리도 사용될 수 있다.
실시예들 중 임의의 것에 대해, 이 섹션의 기법은 디바이스에 대한 보다 적은 수의 판독 및 보다 적은 전력 사용으로 가능한 판독 교란의 위치를 결정하는데 도움을 줄 수 있다. 다른 카운터 해결책에서보다 작은 메모리 풋프린트로 핫 판독 구역이 정확하게 발견될 수 있다. 이것은 불필요한 데이터 스크러빙 및 블라인드 백그라운드 패트롤링(blind background patrolling)을 회피하는데 도움을 줄 수 있다.
결론
본 발명의 이상의 상세한 설명은 예시 및 설명을 위해 제공되었다. 이 설명은 총망라한 것으로도 본 발명을 개시된 정확한 형태로 제한하는 것으로도 의도되어 있지 않다. 이상의 교시 내용을 바탕으로 많은 수정 및 변형이 가능하다. 기술된 실시예는 본 발명의 원리 및 그의 실제 응용 분야를 가장 잘 설명하기 위해 선택되었으며, 그로써 본 기술 분야의 다른 통상의 기술자가 생각되는 특정의 용도에 적합한 다양한 실시예 및 다양한 수정에서 본 발명을 가장 잘 사용할 수 있게 해준다. 본 발명의 범주는 본원에 첨부된 청구항에 의해 한정되는 것으로 의도되어 있다.

Claims (29)

  1. 하나 이상의 메모리 회로들 및 제어기 회로를 갖는 비휘발성 메모리 시스템을 동작시키는 방법으로서 - 상기 메모리 회로들 각각은 워드 라인들을 따라 형성된 비휘발성 메모리 셀들의 하나 이상의 어레이들을 포함하고, 상기 제어기 회로는 상기 메모리 회로 상에서의 데이터의 저장을 관리함 -,
    상기 하나 이상의 메모리 어레이들의 제1의 복수의 구별되는 구획들 각각에 대해, 상기 제어기 회로에 의해, 판독 동작을 위해 대응하는 구획의 워드 라인들이 액세스되는 횟수의 카운트를 유지하는 단계;
    대응하는 구획에 대한 카운트들 중 하나가 제1 문턱 값(threshold value)에 도달하는 것에 응답하여, 상기 대응하는 구획을 제2의 복수의 구별되는 제1 서브구획들로 세분하는 단계; 및
    후속하여, 상기 제어기 회로에 의해, 상기 제1 서브구획들 각각에 대해, 판독 동작들을 위해 상기 서브구획의 워드 라인들이 액세스되는 횟수의 카운트를 유지하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서,
    대응하는 서브구획에 대한 카운트들 중 하나가 제2 문턱 값에 도달하는 것에 응답하여, 상기 대응하는 서브구획을 제3의 복수의 구별되는 제1 서브-서브구획들(sub-subdivisions)로 추가로 세분하는 단계; 및
    후속하여, 상기 제어기 회로에 의해, 상기 제1 서브-서브구획들 각각에 대해, 판독 동작들을 위해 상기 서브-서브구획의 워드 라인들이 액세스되는 횟수의 카운트를 유지하는 단계
    를 더 포함하는 방법.
  3. 제1항에 있어서,
    상기 제1의 복수의 구별되는 구획들은, 판독 동작들을 위한 다수의 액세스들에 응답하여, 이러한 구획들로 형성된 복수의 구조들 중 하나를 세분하는 것에 의해 이전에 형성된 방법.
  4. 제1항에 있어서,
    대응하는 서브구획에 대한 카운트들 중 하나가 제2 문턱 값에 도달하는 것에 응답하여, 상기 서브구획들 중 상기 대응하는 서브구획을, 데이터 스크러빙 동작(data scrub operation)을 수행해야 하는 서브구획들의 목록에 배치하는 단계를 더 포함하는 방법.
  5. 제1항에 있어서,
    대응하는 서브구획에 대한 카운트들 중 하나가 제2 문턱 값에 도달하는 것에 응답하여, 상기 서브구획들 중 상기 대응하는 서브구획에 대해 스크러빙 동작을 수행하는 단계를 더 포함하는 방법.
  6. 제1항에 있어서,
    대응하는 서브구획에 대한 카운트들 중 하나가 제2 문턱 값에 도달하는 것에 응답하여, 상기 서브구획들 중 상기 대응하는 서브구획으로부터 상기 메모리 회로들 상의 상이한 위치로 상기 데이터를 재배치(relocating)하는 단계를 더 포함하는 방법.
  7. 제6항에 있어서,
    상기 메모리 회로들 상의 상이한 위치는 빈번히 액세스되는 데이터를 위해 상기 제어기 회로에 의해 예비되는 방법.
  8. 제7항에 있어서,
    빈번히 액세스되는 데이터를 위해 상기 제어기 회로에 의해 예비된 상기 위치는 상기 제어기 회로에 의해 상기 메모리 회로들의 다른 부분들과는 상이하게 관리되는 방법.
  9. 제8항에 있어서,
    데이터는 빈번히 액세스되는 데이터를 위해 예비된 상기 위치에 이진 포맷으로 저장되는 방법.
  10. 제8항에 있어서,
    데이터는 빈번히 액세스되는 데이터를 위해 예비된 상기 위치에서 비인접 워드 라인들 상에 저장되는 방법.
  11. 제7항에 있어서,
    상기 재배치된 데이터는, 상기 재배치된 데이터에 대해 액세스되는 빈도가 감소된다고 결정하는 것에 응답하여, 빈번히 액세스되는 데이터를 위해 예비된 상기 위치로부터 후속하여 축출되는(evicted) 방법.
  12. 제6항에 있어서,
    상기 재배치된 데이터는 하나 이상의 빈번히 액세스되는 워드 라인들, 및 상기 빈번히 액세스되는 워드 라인들에 인접한 하나 이상의 워드 라인들을 포함하는 방법.
  13. 제6항에 있어서,
    상기 서브구획들 중 상기 대응하는 서브구획으로부터 상기 데이터를 재배치하는 단계는 전체 소거 블록의 재배치를 포함하는 방법.
  14. 제1항에 있어서,
    상기 제어기 회로는 상기 카운트들의 값들이 유지되는 휘발성 메모리를 포함하는 방법.
  15. 제14항에 있어서,
    상기 제어기 회로는 상기 카운트 값들을 상기 메모리 회로들 상의 비휘발성 메모리에 주기적으로 저장하는 방법.
  16. 제15항에 있어서,
    파워 업 시에, 상기 제어기 회로는 비휘발성 메모리에 저장된 상기 카운트 값들을 상기 제어기 회로 상의 상기 휘발성 메모리에 로드하는 방법.
  17. 제1항에 있어서,
    상기 메모리 회로들은 플래시 메모리 회로이고, 상기 구획들은 복수의 소거 블록들에 대응하는 방법.
  18. 제1항에 있어서,
    상기 메모리 회로들은 플래시 메모리 회로이고, 상기 서브구획들은 복수의 소거 블록들에 대응하는 방법.
  19. 제1항에 있어서,
    상기 메모리 회로들은 플래시 메모리 회로이고, 상기 구획들은 소거 블록들에 대응하는 방법.
  20. 제1항에 있어서,
    후속하여, 상기 제어기 회로에 의해, 상기 제1 서브구획들 중 하나 이상에 대해, 판독 동작들을 위해 상기 서브구획의 워드 라인들이 액세스되는 횟수의 카운트를 유지하는 것을 중단하는 단계를 더 포함하는 방법.
  21. 제20항에 있어서,
    상기 중단하는 단계는, 상기 제1 서브구획의 카운트들 중 다른 것들에 대하여 상기 카운트들의 값이 중단되는 것에 응답하여 이루어지는 방법.
  22. 제20항에 있어서,
    상기 중단하는 단계는 대응하는 구획이 소거되는 것에 응답하여 이루어지는 방법.
  23. 제20항에 있어서,
    상기 중단하는 단계는 상기 카운트들의 횟수가 유지되는 것에 응답하여 이루어지는 방법.
  24. 제1항에 있어서,
    상기 메모리 회로들은 플래시 메모리 회로이고, 상기 서브구획들은 소거 블록들에 대응하는 방법.
  25. 제1항에 있어서,
    상기 구획들은 워드 라인들의 세트에 대응하는 방법.
  26. 제1항에 있어서,
    상기 서브구획들은 워드 라인들의 세트에 대응하는 방법.
  27. 제1항에 있어서,
    상기 메모리 회로들은 복수의 다이들을 포함하고, 상기 구획들은 다이에 대응하는 방법.
  28. 제1항에 있어서,
    상기 어레이들은 NAND형 아키텍처로 이루어지는 방법.
  29. 제1항에 있어서,
    상기 어레이들은 메모리 셀들의 복수의 물리 레벨들로서 모놀리식으로 형성되는 3차원 메모리 어레이를 갖는 아키텍처로 이루어지고, 물리 레벨은 실리콘 기판 위에 배치된 활성 층을 갖고, 상기 메모리 셀들은 동작 회로와 통신하는 메모리.
KR1020167017243A 2014-03-17 2015-03-03 메모리의 구획들 내에서의 판독 액세스들의 카운팅을 통한 비휘발성 메모리들 상에서의 판독 교란들의 검출 KR102042889B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/215,924 2014-03-17
US14/215,924 US9230689B2 (en) 2014-03-17 2014-03-17 Finding read disturbs on non-volatile memories
PCT/US2015/018527 WO2015142513A1 (en) 2014-03-17 2015-03-03 Detection of read disturbances on non-volatile memories through counting of read accesses within divisions of the memory

Publications (2)

Publication Number Publication Date
KR20160132814A true KR20160132814A (ko) 2016-11-21
KR102042889B1 KR102042889B1 (ko) 2019-11-08

Family

ID=52633736

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167017243A KR102042889B1 (ko) 2014-03-17 2015-03-03 메모리의 구획들 내에서의 판독 액세스들의 카운팅을 통한 비휘발성 메모리들 상에서의 판독 교란들의 검출

Country Status (4)

Country Link
US (1) US9230689B2 (ko)
KR (1) KR102042889B1 (ko)
CN (1) CN105874541B (ko)
WO (1) WO2015142513A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021101581A1 (en) * 2019-11-20 2021-05-27 Western Digital Technologies, Inc. Ssd system using power-cycle based read scrub

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9171620B2 (en) * 2012-11-29 2015-10-27 Sandisk Technologies Inc. Weighted read scrub for nonvolatile memory
US9230689B2 (en) * 2014-03-17 2016-01-05 Sandisk Technologies Inc. Finding read disturbs on non-volatile memories
US9239757B2 (en) * 2014-05-30 2016-01-19 Sandisk Technologies Inc. Method and apparatus for relocating data in non-volatile memory
US9633742B2 (en) 2014-07-10 2017-04-25 Sandisk Technologies Llc Segmentation of blocks for faster bit line settling/recovery in non-volatile memory devices
US9418750B2 (en) 2014-09-15 2016-08-16 Sandisk Technologies Llc Single ended word line and bit line time constant measurement
US9423971B2 (en) * 2014-10-03 2016-08-23 Sandisk Technologies Llc Method and system for adaptively assigning logical block address read counters using a tree structure
KR20160042224A (ko) * 2014-10-07 2016-04-19 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US9678827B2 (en) * 2014-10-07 2017-06-13 SK Hynix Inc. Access counts for performing data inspection operations in data storage device
US9412451B2 (en) 2014-10-08 2016-08-09 Micron Technology, Inc. Apparatuses and methods using dummy cells programmed to different states
US10141049B2 (en) * 2014-12-19 2018-11-27 Sandisk Technologies Llc Nonvolatile memory system storing system data in marginal word lines
KR102271462B1 (ko) * 2015-01-13 2021-07-05 삼성전자주식회사 불휘발성 메모리 장치, 그것의 동작 방법, 및 그것의 프로그램 방법
US9318210B1 (en) * 2015-02-02 2016-04-19 Sandisk Technologies Inc. Word line kick during sensing: trimming and adjacent word lines
US9336892B1 (en) * 2015-06-02 2016-05-10 Sandisk Technologies Inc. Reducing hot electron injection type of read disturb in 3D non-volatile memory
US9412463B1 (en) 2015-06-02 2016-08-09 Sandisk Technologies Llc Reducing hot electron injection type of read disturb in 3D non-volatile memory for edge word lines
US10665305B2 (en) * 2015-09-09 2020-05-26 Toshiba Memory Corporation Host device connectable to memory device performing patrol read and memory device performing patrol read
US10452596B2 (en) * 2015-10-29 2019-10-22 Micron Technology, Inc. Memory cells configured in multiple configuration modes
CN106982452B (zh) * 2016-01-19 2020-09-04 中国移动通信集团安徽有限公司 一种确定通话质量的方法和装置
KR102585221B1 (ko) 2016-04-21 2023-10-05 삼성전자주식회사 메모리 장치, 메모리 시스템 및 메모리 장치의 동작 방법
KR20180059208A (ko) 2016-11-25 2018-06-04 삼성전자주식회사 리클레임 제어부를 갖는 메모리 콘트롤러 및 그에 따른 동작 제어 방법
US10268387B2 (en) * 2017-01-04 2019-04-23 Sandisk Technologies Llc Meta-groups in non-volatile storage based on performance times
US10049047B1 (en) 2017-03-10 2018-08-14 Toshiba Memory Corporation Multibit NAND media using pseudo-SLC caching technique
US10095626B2 (en) 2017-03-10 2018-10-09 Toshiba Memory Corporation Multibit NAND media using pseudo-SLC caching technique
US10236069B2 (en) * 2017-06-20 2019-03-19 Intel Corporation Word line read disturb error reduction through fine grained access counter mechanism
US10140042B1 (en) 2017-09-13 2018-11-27 Toshiba Memory Corporation Deterministic read disturb counter-based data checking for NAND flash
CN111433754B (zh) 2017-09-30 2024-03-29 美光科技公司 先占式闲置时间读取扫描
CN109710177B (zh) * 2017-10-26 2022-02-11 爱思开海力士有限公司 用于嵌入式系统的事件管理
US10755793B2 (en) * 2017-10-31 2020-08-25 Micron Technology, Inc. SLC page read
CN107832016A (zh) * 2017-11-13 2018-03-23 郑州云海信息技术有限公司 一种读干扰优化方法及装置
KR102504368B1 (ko) * 2017-12-22 2023-02-24 에스케이하이닉스 주식회사 비휘발성 메모리의 웨어 레벨링 동작을 관리하는 반도체 장치
KR20190083862A (ko) * 2018-01-05 2019-07-15 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
CN108305663B (zh) * 2018-02-02 2021-04-06 上海华虹宏力半导体制造有限公司 Sonos闪存的干扰性测试方法
KR20200017220A (ko) 2018-08-08 2020-02-18 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
KR102499061B1 (ko) 2018-08-22 2023-02-13 삼성전자주식회사 상 변화 메모리 장치를 포함하는 반도체 메모리 장치 및 상 변화 메모리 장치를 액세스하는 방법
KR20200043814A (ko) * 2018-10-18 2020-04-28 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
US10553290B1 (en) 2018-10-30 2020-02-04 Micron Technology, Inc. Read disturb scan consolidation
EP4004742A4 (en) * 2019-07-31 2023-04-19 Hewlett-Packard Development Company, L.P. UPDATES TO A FLASH MEMORY BASED ON DETERMINATION OF BITS
US11287998B2 (en) * 2019-08-02 2022-03-29 Micron Technology, Inc. Read count scaling factor for data integrity scan
JP2021071776A (ja) 2019-10-29 2021-05-06 キオクシア株式会社 メモリシステム
KR20210051644A (ko) * 2019-10-31 2021-05-10 에스케이하이닉스 주식회사 메모리 시스템, 메모리 컨트롤러 및 동작 방법
KR20220104055A (ko) * 2019-12-03 2022-07-25 마이크론 테크놀로지, 인크. 저장 디바이스를 위한 캐시 아키텍처
WO2021212399A1 (en) * 2020-04-23 2021-10-28 Yangtze Memory Technologies Co., Ltd. Memory device and programming method thereof
TWI727842B (zh) 2020-02-20 2021-05-11 大陸商長江存儲科技有限責任公司 存儲器件及其編程方法
US11366602B2 (en) 2020-06-23 2022-06-21 Western Digital Technologies, Inc. Data storage device with burn-after-read mode
US11282564B1 (en) 2020-11-11 2022-03-22 Micron Technology, Inc. Selective wordline scans based on a data state metric
US11868223B2 (en) 2022-01-19 2024-01-09 Dell Products L.P. Read-disturb-based read temperature information utilization system
US11914494B2 (en) * 2022-01-20 2024-02-27 Dell Products L.P. Storage device read-disturb-based read temperature map utilization system
US11694722B1 (en) 2022-02-15 2023-07-04 Western Digital Technologies, Inc. Data timestamp and read counter for magnetic recording devices

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008287404A (ja) * 2007-05-16 2008-11-27 Hitachi Ltd 読み出しによる非アクセスメモリセルのデータ破壊を検出及び回復する装置、及びその方法
US7818525B1 (en) * 2009-08-12 2010-10-19 Texas Memory Systems, Inc. Efficient reduction of read disturb errors in NAND FLASH memory
US7937521B2 (en) * 2008-01-29 2011-05-03 Cadence Design Systems, Inc. Read disturbance management in a non-volatile memory system

Family Cites Families (185)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4139911A (en) 1978-03-13 1979-02-13 Westinghouse Electric Corp. High speed sense circuit for semiconductor memories
US4218764A (en) 1978-10-03 1980-08-19 Matsushita Electric Industrial Co., Ltd. Non-volatile memory refresh control circuit
US4253059A (en) 1979-05-14 1981-02-24 Fairchild Camera & Instrument Corp. EPROM Reliability test circuit
JPS58139399A (ja) 1982-02-15 1983-08-18 Hitachi Ltd 半導体記憶装置
US4460982A (en) 1982-05-20 1984-07-17 Intel Corporation Intelligent electrically programmable and electrically erasable ROM
US4612630A (en) 1984-07-27 1986-09-16 Harris Corporation EEPROM margin testing design
JPS6134793A (ja) 1984-07-27 1986-02-19 Hitachi Ltd ダイナミツクメモリ装置における診断及びエラ−訂正装置
JPS6148197A (ja) 1984-08-13 1986-03-08 Fujitsu Ltd チヤ−ジアツプ回路
JPS61172300A (ja) 1985-01-26 1986-08-02 Toshiba Corp 半導体記憶装置
EP0198935A1 (de) 1985-04-23 1986-10-29 Deutsche ITT Industries GmbH Elektrisch umprogrammierbarer Halbleiterspeicher mit Redundanz
US4962322A (en) 1988-12-05 1990-10-09 Texas Instruments Incorporated Nonvolatible capacitor random access memory
JPS62114200A (ja) 1985-11-13 1987-05-25 Mitsubishi Electric Corp 半導体メモリ装置
US5157629A (en) 1985-11-22 1992-10-20 Hitachi, Ltd. Selective application of voltages for testing storage cells in semiconductor memory arrangements
US4763305A (en) 1985-11-27 1988-08-09 Motorola, Inc. Intelligent write in an EEPROM with data and erase check
JPH0715799B2 (ja) 1987-06-30 1995-02-22 日本電気株式会社 半導体記憶装置
FR2618579B1 (fr) 1987-07-21 1989-11-10 Thomson Semiconducteurs Circuit integre a memoire comportant un dispositif anti-fraude
JPS6476596A (en) 1987-09-18 1989-03-22 Oki Electric Ind Co Ltd Error of eeprom detecting device
US4809231A (en) 1987-11-12 1989-02-28 Motorola, Inc. Method and apparatus for post-packaging testing of one-time programmable memories
FR2630573B1 (fr) 1988-04-26 1990-07-13 Sgs Thomson Microelectronics Memoire programmable electriquement avec plusieurs bits d'information par cellule
US5268870A (en) 1988-06-08 1993-12-07 Eliyahou Harari Flash EEPROM system and intelligent programming and erasing methods therefor
US5095344A (en) 1988-06-08 1992-03-10 Eliyahou Harari Highly compact eprom and flash eeprom devices
US5043940A (en) 1988-06-08 1991-08-27 Eliyahou Harari Flash EEPROM memory systems having multistate storage cells
JPH07105146B2 (ja) 1988-07-29 1995-11-13 三菱電機株式会社 不揮発性記憶装置
US5070032A (en) 1989-03-15 1991-12-03 Sundisk Corporation Method of making dense flash eeprom semiconductor memory structures
JPH02260298A (ja) 1989-03-31 1990-10-23 Oki Electric Ind Co Ltd 不揮発性多値メモリ装置
US4980859A (en) 1989-04-07 1990-12-25 Xicor, Inc. NOVRAM cell using two differential decouplable nonvolatile memory elements
US5172338B1 (en) 1989-04-13 1997-07-08 Sandisk Corp Multi-state eeprom read and write circuits and techniques
JPH0664918B2 (ja) 1989-05-25 1994-08-22 ローム株式会社 自己訂正機能を有する半導体記憶装置
JPH07114077B2 (ja) 1989-06-01 1995-12-06 三菱電機株式会社 不揮発性半導体記憶装置
WO1990016069A1 (en) 1989-06-12 1990-12-27 Kabushiki Kaisha Toshiba Semiconductor memory device
FR2650109B1 (fr) 1989-07-20 1993-04-02 Gemplus Card Int Circuit integre mos a tension de seuil ajustable
JPH03162800A (ja) 1989-08-29 1991-07-12 Mitsubishi Electric Corp 半導体メモリ装置
US5065364A (en) 1989-09-15 1991-11-12 Intel Corporation Apparatus for providing block erasing in a flash EPROM
US5200959A (en) 1989-10-17 1993-04-06 Sundisk Corporation Device and method for defect handling in semi-conductor memory
US5270551A (en) 1990-02-14 1993-12-14 Hitachi, Ltd. Method of and apparatus for protecting electronic circuit against radiation
US4975883A (en) 1990-03-29 1990-12-04 Intel Corporation Method and apparatus for preventing the erasure and programming of a nonvolatile memory
US5122985A (en) 1990-04-16 1992-06-16 Giovani Santin Circuit and method for erasing eeprom memory arrays to prevent over-erased cells
US5132935A (en) 1990-04-16 1992-07-21 Ashmore Jr Benjamin H Erasure of eeprom memory arrays to prevent over-erased cells
US5200922A (en) 1990-10-24 1993-04-06 Rao Kameswara K Redundancy circuit for high speed EPROM and flash memory devices
US5343063A (en) 1990-12-18 1994-08-30 Sundisk Corporation Dense vertical programmable read only memory cell structure and processes for making them
US5239505A (en) 1990-12-28 1993-08-24 Intel Corporation Floating gate non-volatile memory with blocks and memory refresh
US5270979A (en) 1991-03-15 1993-12-14 Sundisk Corporation Method for optimum erasing of EEPROM
US5504760A (en) 1991-03-15 1996-04-02 Sandisk Corporation Mixed data encoding EEPROM system
US5263032A (en) 1991-06-27 1993-11-16 Digital Equipment Corporation Computer system operation with corrected read data function
US6230233B1 (en) 1991-09-13 2001-05-08 Sandisk Corporation Wear leveling techniques for flash EEPROM systems
US5313427A (en) 1991-09-20 1994-05-17 Texas Instruments Incorporated EEPROM array with narrow margin of voltage thresholds after erase
JPH05109292A (ja) 1991-10-14 1993-04-30 Toshiba Corp 不揮発性半導体記憶装置
US6222762B1 (en) 1992-01-14 2001-04-24 Sandisk Corporation Multi-state memory
US5313421A (en) 1992-01-14 1994-05-17 Sundisk Corporation EEPROM with split gate source side injection
US5327383A (en) 1992-04-21 1994-07-05 Intel Corporation Method and circuitry for erasing a nonvolatile semiconductor memory incorporating row redundancy
US5347489A (en) 1992-04-21 1994-09-13 Intel Corporation Method and circuitry for preconditioning shorted rows in a nonvolatile semiconductor memory incorporating row redundancy
US5532962A (en) 1992-05-20 1996-07-02 Sandisk Corporation Soft errors handling in EEPROM devices
US5657332A (en) 1992-05-20 1997-08-12 Sandisk Corporation Soft errors handling in EEPROM devices
JPH065823A (ja) 1992-06-19 1994-01-14 Toshiba Corp 不揮発性半導体記憶装置及びその使用方法
US5550394A (en) 1993-06-18 1996-08-27 Texas Instruments Incorporated Semiconductor memory device and defective memory cell correction circuit
US5315541A (en) 1992-07-24 1994-05-24 Sundisk Corporation Segmented column memory array
JP2708333B2 (ja) 1992-09-02 1998-02-04 株式会社東芝 レベルシフタ回路
US5365486A (en) 1992-12-16 1994-11-15 Texas Instruments Incorporated Method and circuitry for refreshing a flash electrically erasable, programmable read only memory
US5404485A (en) 1993-03-08 1995-04-04 M-Systems Flash Disk Pioneers Ltd. Flash file system
US5335198A (en) 1993-05-06 1994-08-02 Advanced Micro Devices, Inc. Flash EEPROM array with high endurance
US5555204A (en) 1993-06-29 1996-09-10 Kabushiki Kaisha Toshiba Non-volatile semiconductor memory device
KR0169267B1 (ko) 1993-09-21 1999-02-01 사토 후미오 불휘발성 반도체 기억장치
JP3999822B2 (ja) 1993-12-28 2007-10-31 株式会社東芝 記憶システム
US5661053A (en) 1994-05-25 1997-08-26 Sandisk Corporation Method of making dense flash EEPROM cell array and peripheral supporting circuits formed in deposited field oxide with the use of spacers
GB2289779B (en) 1994-05-24 1999-04-28 Intel Corp Method and apparatus for automatically scrubbing ECC errors in memory via hardware
US5523972A (en) 1994-06-02 1996-06-04 Intel Corporation Method and apparatus for verifying the programming of multi-level flash EEPROM memory
US5450363A (en) 1994-06-02 1995-09-12 Intel Corporation Gray coding for a multilevel cell memory system
JP3563452B2 (ja) 1994-08-10 2004-09-08 株式会社東芝 セル閾値分布検知回路およびセル閾値分布検知方法
JP3450456B2 (ja) 1994-08-31 2003-09-22 株式会社東芝 半導体記憶装置
JPH08147988A (ja) 1994-11-17 1996-06-07 Sony Corp 半導体不揮発性記憶装置
FR2728380A1 (fr) 1994-12-20 1996-06-21 Sgs Thomson Microelectronics Procede d'ecriture de donnees dans une memoire et memoire electriquement programmable correspondante
US5475693A (en) 1994-12-27 1995-12-12 Intel Corporation Error management processes for flash EEPROM memory arrays
JP3274306B2 (ja) 1995-01-20 2002-04-15 株式会社東芝 半導体集積回路装置
KR100566466B1 (ko) 1995-01-31 2006-03-31 가부시끼가이샤 히다치 세이사꾸쇼 반도체 메모리 장치
US5530705A (en) 1995-02-08 1996-06-25 International Business Machines Corporation Soft error recovery system and method
US5513144A (en) 1995-02-13 1996-04-30 Micron Technology, Inc. On-chip memory redundancy circuitry for programmable non-volatile memories, and methods for programming same
JP3176019B2 (ja) 1995-04-05 2001-06-11 株式会社東芝 不揮発性半導体記憶部を含む記憶システム
JPH08297987A (ja) 1995-04-26 1996-11-12 Toshiba Corp 不揮発性半導体記憶装置
US5699297A (en) 1995-05-30 1997-12-16 Kabushiki Kaisha Toshiba Method of rewriting data in a microprocessor additionally provided with a flash memory
US5907856A (en) 1995-07-31 1999-05-25 Lexar Media, Inc. Moving sectors within a block of information in a flash memory mass storage architecture
US5687114A (en) 1995-10-06 1997-11-11 Agate Semiconductor, Inc. Integrated circuit for storage and retrieval of multiple digital bits per nonvolatile memory cell
JPH09128165A (ja) 1995-10-27 1997-05-16 Toshiba Corp 固体記録再生装置
US5703506A (en) 1995-12-26 1997-12-30 Motorola Signal processing method
FR2745114B1 (fr) 1996-02-20 1998-04-17 Sgs Thomson Microelectronics Memoire non volatile multiniveau modifiable electriquement avec rafraichissement autonome
US5903495A (en) 1996-03-18 1999-05-11 Kabushiki Kaisha Toshiba Semiconductor device and memory system
US5712815A (en) 1996-04-22 1998-01-27 Advanced Micro Devices, Inc. Multiple bits per-cell flash EEPROM capable of concurrently programming and verifying memory cells and reference cells
JP3584607B2 (ja) 1996-05-10 2004-11-04 ソニー株式会社 不揮発性記憶装置
US5715193A (en) 1996-05-23 1998-02-03 Micron Quantum Devices, Inc. Flash memory system and method for monitoring the disturb effect on memory cell blocks due to high voltage conditions of other memory cell blocks
US5768192A (en) 1996-07-23 1998-06-16 Saifun Semiconductors, Ltd. Non-volatile semiconductor memory cell utilizing asymmetrical charge trapping
US5675537A (en) 1996-08-22 1997-10-07 Advanced Micro Devices, Inc. Erase method for page mode multiple bits-per-cell flash EEPROM
US5798968A (en) 1996-09-24 1998-08-25 Sandisk Corporation Plane decode/virtual sector architecture
US5890192A (en) 1996-11-05 1999-03-30 Sandisk Corporation Concurrent write of multiple chunks of data into multiple subarrays of flash EEPROM
US5717632A (en) 1996-11-27 1998-02-10 Advanced Micro Devices, Inc. Apparatus and method for multiple-level storage in non-volatile memories
US5835413A (en) 1996-12-20 1998-11-10 Intel Corporation Method for improved data retention in a nonvolatile writeable memory by sensing and reprogramming cell voltage levels
US5930167A (en) 1997-07-30 1999-07-27 Sandisk Corporation Multi-state non-volatile flash memory capable of being its own two state write cache
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
US5909449A (en) 1997-09-08 1999-06-01 Invox Technology Multibit-per-cell non-volatile memory with error detection and correction
US5937425A (en) 1997-10-16 1999-08-10 M-Systems Flash Disk Pioneers Ltd. Flash file system optimized for page-mode flash technologies
JP3177207B2 (ja) 1998-01-27 2001-06-18 インターナショナル・ビジネス・マシーンズ・コーポレ−ション リフレッシュ間隔制御装置及び方法、並びにコンピュータ
JP2000187992A (ja) 1998-12-17 2000-07-04 Mitsubishi Electric Corp 電気的書換可能な不揮発性メモリのリフレッシュ制御回路
US6215697B1 (en) 1999-01-14 2001-04-10 Macronix International Co., Ltd. Multi-level memory cell device and method for self-converged programming
JP2000251483A (ja) 1999-02-24 2000-09-14 Sanyo Electric Co Ltd 1チップマイクロコンピュータとそのデータリフレッシュ方法
CN100347684C (zh) 1999-07-28 2007-11-07 索尼公司 记录系统、数据记录设备、存储设备和数据记录方法
US6222768B1 (en) 2000-01-28 2001-04-24 Advanced Micro Devices, Inc. Auto adjusting window placement scheme for an NROM virtual ground array
US6426893B1 (en) 2000-02-17 2002-07-30 Sandisk Corporation Flash eeprom system with simultaneous multiple data sector programming and storage of physical block characteristics in other designated blocks
US6567307B1 (en) 2000-07-21 2003-05-20 Lexar Media, Inc. Block management for mass storage
US6772274B1 (en) 2000-09-13 2004-08-03 Lexar Media, Inc. Flash memory system and method implementing LBA to PBA correlation within flash memory array
US6345001B1 (en) 2000-09-14 2002-02-05 Sandisk Corporation Compressed event counting technique and application to a flash memory system
JP4323707B2 (ja) 2000-10-25 2009-09-02 富士通マイクロエレクトロニクス株式会社 フラッシュメモリの欠陥管理方法
US6717851B2 (en) 2000-10-31 2004-04-06 Sandisk Corporation Method of reducing disturbs in non-volatile memory
US6763424B2 (en) 2001-01-19 2004-07-13 Sandisk Corporation Partial block data programming and reading operations in a non-volatile memory
JP3812933B2 (ja) 2001-04-19 2006-08-23 シャープ株式会社 ファイルシステムおよびその制御方法
US6522580B2 (en) 2001-06-27 2003-02-18 Sandisk Corporation Operating techniques for reducing effects of coupling between storage elements of a non-volatile memory operated in multiple data states
JP4059472B2 (ja) 2001-08-09 2008-03-12 株式会社ルネサステクノロジ メモリカード及びメモリコントローラ
US6456528B1 (en) 2001-09-17 2002-09-24 Sandisk Corporation Selective operation of a multi-state non-volatile memory system in a binary mode
US6678785B2 (en) 2001-09-28 2004-01-13 M-Systems Flash Disk Pioneers Ltd. Flash management system using only sequential write
US6925007B2 (en) 2001-10-31 2005-08-02 Sandisk Corporation Multi-state non-volatile integrated circuit memory systems that employ dielectric storage elements
US6678192B2 (en) 2001-11-02 2004-01-13 Sandisk Corporation Error management for writable tracking storage units
JP2003242789A (ja) 2002-02-14 2003-08-29 Mitsubishi Electric Corp 不揮発性半導体記憶装置
US6771536B2 (en) * 2002-02-27 2004-08-03 Sandisk Corporation Operating techniques for reducing program and read disturbs of a non-volatile memory
JP2003257192A (ja) 2002-03-06 2003-09-12 Mitsubishi Electric Corp 半導体記憶装置および不揮発性半導体記憶装置
US6781877B2 (en) 2002-09-06 2004-08-24 Sandisk Corporation Techniques for reducing effects of coupling between storage elements of adjacent rows of memory cells
US7324393B2 (en) * 2002-09-24 2008-01-29 Sandisk Corporation Method for compensated sensing in non-volatile memory
CN100483552C (zh) 2002-10-28 2009-04-29 桑迪士克股份有限公司 在非易失性存储系统中执行自动磨损平衡的方法
US6963505B2 (en) 2002-10-29 2005-11-08 Aifun Semiconductors Ltd. Method circuit and system for determining a reference voltage
US6657891B1 (en) 2002-11-29 2003-12-02 Kabushiki Kaisha Toshiba Semiconductor memory device for storing multivalued data
US6901498B2 (en) 2002-12-09 2005-05-31 Sandisk Corporation Zone boundary adjustment for defects in non-volatile memories
US6944063B2 (en) * 2003-01-28 2005-09-13 Sandisk Corporation Non-volatile semiconductor memory with large erase blocks storing cycle counts
US6912160B2 (en) 2003-03-11 2005-06-28 Fujitsu Limited Nonvolatile semiconductor memory device
US6839281B2 (en) 2003-04-14 2005-01-04 Jian Chen Read and erase verify methods and circuits suitable for low voltage non-volatile memories
US7076598B2 (en) 2003-09-09 2006-07-11 Solid State System Co., Ltd. Pipeline accessing method to a large block memory
US7012835B2 (en) 2003-10-03 2006-03-14 Sandisk Corporation Flash memory data correction and scrub techniques
US7173852B2 (en) 2003-10-03 2007-02-06 Sandisk Corporation Corrected data storage and handling methods
US7221588B2 (en) 2003-12-05 2007-05-22 Sandisk 3D Llc Memory array incorporating memory cells arranged in NAND strings
JP4063239B2 (ja) 2004-04-16 2008-03-19 ソニー株式会社 データ読出し回路及びこの回路を有する半導体装置
JP4083147B2 (ja) 2004-07-02 2008-04-30 シャープ株式会社 半導体記憶装置
US7441067B2 (en) 2004-11-15 2008-10-21 Sandisk Corporation Cyclic flash memory wear leveling
US7242618B2 (en) 2004-12-09 2007-07-10 Saifun Semiconductors Ltd. Method for reading non-volatile memory cells
US7257025B2 (en) 2004-12-09 2007-08-14 Saifun Semiconductors Ltd Method for reading non-volatile memory cells
US7206230B2 (en) 2005-04-01 2007-04-17 Sandisk Corporation Use of data latches in cache operations of non-volatile memories
US7339834B2 (en) 2005-06-03 2008-03-04 Sandisk Corporation Starting program voltage shift with cycling of non-volatile memory
US7631245B2 (en) 2005-09-26 2009-12-08 Sandisk Il Ltd. NAND flash memory controller exporting a NAND interface
JP4660353B2 (ja) 2005-11-01 2011-03-30 株式会社東芝 記憶媒体再生装置
US7254071B2 (en) 2006-01-12 2007-08-07 Sandisk Corporation Flash memory devices with trimmed analog voltages
US7286412B1 (en) 2006-05-09 2007-10-23 Macronix International Co., Ltd. Method and apparatus to improve nonvolatile memory data retention
US7613043B2 (en) 2006-05-15 2009-11-03 Apple Inc. Shifting reference values to account for voltage sag
US7639531B2 (en) 2006-05-15 2009-12-29 Apple Inc. Dynamic cell bit resolution
US7952922B2 (en) 2006-06-06 2011-05-31 Micron Technology, Inc. Method for programming a non-volatile memory device to reduce floating-gate-to-floating-gate coupling effect
US7489549B2 (en) 2006-06-22 2009-02-10 Sandisk Corporation System for non-real time reprogramming of non-volatile memory to achieve tighter distribution of threshold voltages
US7330376B1 (en) 2006-07-27 2008-02-12 Macronix International Co., Ltd. Method for memory data storage by partition into narrower threshold voltage distribution regions
US7450425B2 (en) 2006-08-30 2008-11-11 Micron Technology, Inc. Non-volatile memory cell read failure reduction
US8050901B2 (en) 2006-09-14 2011-11-01 Taiwan Semiconductor Manufacturing Company, Ltd. Prediction and control of NBTI of integrated circuits
US7716538B2 (en) 2006-09-27 2010-05-11 Sandisk Corporation Memory with cell population distribution assisted read margining
US7558109B2 (en) 2006-11-03 2009-07-07 Sandisk Corporation Nonvolatile memory with variable read threshold
US7489548B2 (en) 2006-12-29 2009-02-10 Sandisk Corporation NAND flash memory cell array with adaptive memory state partitioning
US7489547B2 (en) 2006-12-29 2009-02-10 Sandisk Corporation Method of NAND flash memory cell array with adaptive memory state partitioning
US7477547B2 (en) 2007-03-28 2009-01-13 Sandisk Corporation Flash memory refresh techniques triggered by controlled scrub data reads
KR100838292B1 (ko) 2007-06-20 2008-06-17 삼성전자주식회사 메모리 셀의 읽기 레벨 제어 장치 및 그 방법
KR100891005B1 (ko) 2007-06-28 2009-03-31 삼성전자주식회사 고온 스트레스로 인한 읽기 마진의 감소를 보상하기 위한플래시 메모리 장치 및 그것의 읽기 전압 조정 방법
KR20090014036A (ko) 2007-08-03 2009-02-06 삼성전자주식회사 읽기 디스터번스로 인한 에러를 방지하는 메모리 시스템 및그 방법
US8189381B1 (en) * 2007-08-28 2012-05-29 Marvell International Ltd. System and method for reading flash memory cells
US8762620B2 (en) 2007-12-27 2014-06-24 Sandisk Enterprise Ip Llc Multiprocessor storage controller
KR101422702B1 (ko) 2007-12-28 2014-07-25 삼성전자주식회사 3차원 메모리 장치 및 그것의 프로그램 방법
US8301912B2 (en) 2007-12-31 2012-10-30 Sandisk Technologies Inc. System, method and memory device providing data scrambling compatible with on-chip copy operation
CN102157202B (zh) * 2008-01-22 2015-06-17 群联电子股份有限公司 防止非易失性存储器发生读取干扰的方法及其控制器
US7986554B2 (en) 2008-03-19 2011-07-26 Sandisk Technologies Inc. Different combinations of wordline order and look-ahead read to improve non-volatile memory performance
JP5259242B2 (ja) 2008-04-23 2013-08-07 株式会社東芝 三次元積層不揮発性半導体メモリ
US7808831B2 (en) * 2008-06-30 2010-10-05 Sandisk Corporation Read disturb mitigation in non-volatile memory
US20100174845A1 (en) 2009-01-05 2010-07-08 Sergey Anatolievich Gorobets Wear Leveling for Non-Volatile Memories: Maintenance of Experience Count and Passive Techniques
JP5185156B2 (ja) * 2009-02-24 2013-04-17 株式会社東芝 メモリコントローラおよび半導体記憶装置
WO2010102235A1 (en) * 2009-03-05 2010-09-10 Mentor Graphics Corporation Fault diagnosis for non-volatile memories
KR101635504B1 (ko) 2009-06-19 2016-07-04 삼성전자주식회사 3차원 수직 채널 구조를 갖는 불 휘발성 메모리 장치의 프로그램 방법
US20110041005A1 (en) 2009-08-11 2011-02-17 Selinger Robert D Controller and Method for Providing Read Status and Spare Block Management Information in a Flash Memory System
KR20120059506A (ko) 2009-08-25 2012-06-08 샌디스크 아이엘 엘티디 플래시 저장 디바이스로의 데이터 복원
US8634240B2 (en) 2009-10-28 2014-01-21 SanDisk Technologies, Inc. Non-volatile memory and method with accelerated post-write read to manage errors
US8248850B2 (en) * 2010-01-28 2012-08-21 Sandisk Technologies Inc. Data recovery for non-volatile memory based on count of data state-specific fails
US8452937B2 (en) * 2010-05-14 2013-05-28 Sandisk Il Ltd. Moving executable code from a first region of a non-volatile memory to a second region of the non-volatile memory to reduce read disturb
US8659944B2 (en) 2010-09-01 2014-02-25 Macronix International Co., Ltd. Memory architecture of 3D array with diode in memory string
US8750042B2 (en) 2011-07-28 2014-06-10 Sandisk Technologies Inc. Combined simultaneous sensing of multiple wordlines in a post-write read (PWR) and detection of NAND failures
US8687421B2 (en) 2011-11-21 2014-04-01 Sandisk Technologies Inc. Scrub techniques for use with dynamic read
KR20130065271A (ko) * 2011-12-09 2013-06-19 에스케이하이닉스 주식회사 불휘발성 메모리 장치
KR102089532B1 (ko) * 2013-02-06 2020-03-16 삼성전자주식회사 메모리 컨트롤러, 메모리 시스템 및 메모리 시스템의 동작 방법
KR102050896B1 (ko) * 2013-02-19 2019-12-02 삼성전자주식회사 메모리 컨트롤러 및 그것의 동작 방법
KR102105894B1 (ko) * 2013-05-30 2020-05-06 삼성전자주식회사 휘발성 메모리 장치 및 그것의 리프레쉬 방법
US9230689B2 (en) * 2014-03-17 2016-01-05 Sandisk Technologies Inc. Finding read disturbs on non-volatile memories

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008287404A (ja) * 2007-05-16 2008-11-27 Hitachi Ltd 読み出しによる非アクセスメモリセルのデータ破壊を検出及び回復する装置、及びその方法
US8281220B2 (en) * 2007-05-16 2012-10-02 Hitachi, Ltd. Apparatus for detecting and recovering from data destruction caused in an unaccessed memory cell by read, and method therefor
US7937521B2 (en) * 2008-01-29 2011-05-03 Cadence Design Systems, Inc. Read disturbance management in a non-volatile memory system
US7818525B1 (en) * 2009-08-12 2010-10-19 Texas Memory Systems, Inc. Efficient reduction of read disturb errors in NAND FLASH memory

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021101581A1 (en) * 2019-11-20 2021-05-27 Western Digital Technologies, Inc. Ssd system using power-cycle based read scrub

Also Published As

Publication number Publication date
WO2015142513A1 (en) 2015-09-24
CN105874541B (zh) 2020-02-07
US9230689B2 (en) 2016-01-05
CN105874541A (zh) 2016-08-17
US20150262714A1 (en) 2015-09-17
KR102042889B1 (ko) 2019-11-08

Similar Documents

Publication Publication Date Title
KR102042889B1 (ko) 메모리의 구획들 내에서의 판독 액세스들의 카운팅을 통한 비휘발성 메모리들 상에서의 판독 교란들의 검출
US10275170B2 (en) Folding operations in memory systems with single address updates
KR101584048B1 (ko) 비휘발성 메모리에서 예비 블록 관리 방법
US9229644B2 (en) Targeted copy of data relocation
US8054684B2 (en) Non-volatile memory and method with atomic program sequence and write abort detection
US8593866B2 (en) Systems and methods for operating multi-bank nonvolatile memory
US10332608B2 (en) Memory block usage based on block location relative to array edge
US9633738B1 (en) Accelerated physical secure erase
US20170123972A1 (en) Garbage collection based on queued and/or selected write commands
US10656840B2 (en) Real-time I/O pattern recognition to enhance performance and endurance of a storage device
US20160180945A1 (en) Efficient scanning of nonvolatile memory blocks
US8543757B2 (en) Techniques of maintaining logical to physical mapping information in non-volatile memory systems
KR20140035916A (ko) 핫/콜드 데이터 소팅을 사용한 블록 관리를 갖는 비휘발성 메모리 및 방법
KR20140040137A (ko) 활성 slc 및 mlc 메모리 분할들 간에 분포된 작은 논리 그룹들을 가진 비휘발성 메모리 및 방법
US9817593B1 (en) Block management in non-volatile memory system with non-blocking control sync system
US9804785B2 (en) Nonvolatile memory adaptive to host boot up routine
CN107924701B (zh) 基于捕获电荷的存储器的动态重调
US10055267B2 (en) Block management scheme to handle cluster failures in non-volatile memory
EP2443543B1 (en) Multi-bank non-volatile memory system with satellite file system
US8995183B2 (en) Data retention in nonvolatile memory with multiple data storage formats
US8732391B2 (en) Obsolete block management for data retention in nonvolatile memory
US20150149694A1 (en) Adaptive Context Disbursement for Improved Performance in Non-Volatile Memory Systems

Legal Events

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