KR20150119169A - 메모리 디바이스에서의 에러 정정 동작들 - Google Patents

메모리 디바이스에서의 에러 정정 동작들 Download PDF

Info

Publication number
KR20150119169A
KR20150119169A KR1020157024812A KR20157024812A KR20150119169A KR 20150119169 A KR20150119169 A KR 20150119169A KR 1020157024812 A KR1020157024812 A KR 1020157024812A KR 20157024812 A KR20157024812 A KR 20157024812A KR 20150119169 A KR20150119169 A KR 20150119169A
Authority
KR
South Korea
Prior art keywords
memory
ecc
user data
memory array
error
Prior art date
Application number
KR1020157024812A
Other languages
English (en)
Other versions
KR101665280B1 (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 KR20150119169A publication Critical patent/KR20150119169A/ko
Application granted granted Critical
Publication of KR101665280B1 publication Critical patent/KR101665280B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • 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/3418Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • G11C16/3431Circuits or methods to detect disturbed nonvolatile memory cells, e.g. which still read as programmed but with threshold less than the program verify threshold or read as erased but with threshold greater than the erase verify threshold, and to reverse the disturbance via a refreshing programming or erasing step
    • 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
    • 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
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0411Online error correction
    • 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

Abstract

메모리 디바이스들에서의 에러 정정 동작들이 개시된다. 적어도 일 실시예에서, 메모리 디바이스의 내부 제어기는 저장된 사용자 데이터에 대한 내부 에러 정정 동작들을 수행하며 외부 메모리 액세스 디바이스로부터의 지시들로부터 독립적으로 메모리 디바이스에서의 사용자 데이터를 정정하도록 구성된다.

Description

메모리 디바이스에서의 에러 정정 동작들{ERROR CORRECTION OPERATIONS IN A MEMORY DEVICE}
본 개시는 전반적으로 메모리에 관한 것이며 보다 상세하게는, 하나 이상의 실시예들에서, 본 개시는 메모리 디바이스들내 에러 정정에 관한 것이다.
메모리 디바이스들은 통상적으로 컴퓨터들 또는 다른 전자 시스템들에서 내부의, 반도체, 집적 회로들로서 제공된다. 랜덤-액세스 메모리(RAM), 판독 전용 메모리(ROM), 동적 랜덤 액세스 메모리(DRAM), 동기식 동적 랜덤 액세스 메모리(SDRAM), 저항성 랜덤 액세스 메모리(RRAM), 이중 데이터 레이트 메모리(DDR), 저 전력 이중 데이터 레이트 메모리(LPDDR), 상 변화 메모리(PCM) 및 플래시 메모리를 포함한 많은 상이한 유형들의 메모리가 있다.
비-휘발성 메모리는 전력의 인가 없이 몇몇 연장된 기간 동안 그것의 저장된 데이터를 보유할 수 있는 메모리이다. 플래시 메모리 디바이스들은 광범위한 전자 애플리케이션들을 위한 비-휘발성 메모리의 인기 있는 소스로 개발되어 왔다. 플래시 메모리 디바이스들은 흔히, 개인용 컴퓨터들, 개인용 디지털 보조기들(PDA들), 디지털 카메라들, 디지털 미디어 플레이어들, 디지털 레코더들, 게임들, 기기들, 차량들, 무선 디바이스들, 셀룰러 전화들, 및 착탈 가능한 메모리 모듈들과 같은 전자 시스템들에서 사용되며, 플래시 메모리를 위한 사용들은 계속해서 확대되고 있다.
메모리 디바이스들은 통상적으로 판독, 기록, 및 소거 동작들과 같은 메모리 동작들을 수행한다. 이들 동작들은, 이들 동작들이 때때로 호스트, 또는 메모리 디바이스에 결합된 다른 메모리 디바이스 제어 회로와 같은, 메모리 액세스 디바이스에 의해 개시되므로 때때로 전경 동작(foreground operation)들로서 불리운다. 부가적인 동작들은 때때로 배경 동작들로서 불리우는 것을 포함한다. 이들 동작들은 때때로 메모리 디바이스 자체에서 회로를 제어함으로써 개시된다. 메모리 디바이스들에서의 웨어 레벨링(wear leveling)은 예를 들면, 배경 동작(background operation)으로서 수행될 수 있다.
메모리 디바이스로부터 데이터의 판독 시 에러들이 발생할 수 있음을 인식할 때, 하나 이상의 유형들의 에러 정정 방법들이 이용될 수 있다. 흔히 에러 정정 코드들(ECC)로서 불리우는 에러 정정 기법들은 이들 에러들을 검출하며 이를 정정하려고 시도하기 위해 구현될 수 있다. 다양한 ECC들은 ECC의 대상이 되는 각각의 데이터 신호가 ECC의 구성의 특정 규칙들에 따라야 하는 코드들을 포함한다. 너무 크지 않은 데이터의 이러한 구성으로부터의 이탈(즉, 에러들)은 일반적으로 자동으로 검출되며 때때로 정정될 수 있다. ECC들의 예들은 해밍 코드(Hamming code), BCH 코드, 리드-솔로몬(Reed-Solomon) 코드, 리드-뮬러(Reed-Muller) 코드, 이진 골레이(Binary Golay) 코드, 저-밀도 패리티 코드, 트렐리스 코드 변조를 포함한다. 몇몇 ECC들은 단일-비트 에러들을 정정하며 이중-비트 에러들을 검출할 수 있다. 다른 ECC들은 예를 들면, 다중-비트 에러들을 검출 및/또는 정정할 수 있다.
통상적으로, 메모리 디바이스는 메모리에서의 제 1 위치에 데이터(예로서, 사용자 데이터)를 및 메모리 디바이스에서의 제 2 메모리 위치에 연관된 에러 정정 코드(ECC) 데이터를 저장할 것이다. 판독 동작 동안, 저장된 사용자 데이터 및 ECC 데이터는 사용자 데이터의 판독 요청에 응답하여 메모리 어레이로부터 판독된다. 알려진 알고리즘들을 사용하여, 판독 동작으로부터 리턴된 사용자 데이터는 ECC 데이터에 비교된다. 에러들이 검출되며 이들 에러들이 ECC의 한계들 내에 있는, 예로서 충분한 ECC 분해능이 저장된 ECC 데이터에 존재한다면, 에러들이 정정될 수 있다. 비트 에러들의 검출 및 정정을 위한 ECC의 이러한 사용은 이 기술분야에서 잘 이해된다.
상기 서술된 이유들로, 및 본 명세서를 판독하며 이해할 때 이 기술분야의 숙련자들에게 명백해질 이하에 서술된 다른 이유들로, 메모리 디바이스들을 가진 시스템들에서 호스트들에게서 ECC 동작들을 수행하는 것을 경감시키기 위한 이 기술분야에서의 요구가 있다.
도 1은 NAND 구성된 메모리 셀들의 어레이의 개략적 표현을 예시한다.
도 2는 메모리 셀들의 모집단에서 임계 전압 범위들의 그래픽 표현을 예시한다.
도 3은 메모리 셀들의 모집단에서 임계 전압 범위들의 또 다른 그래픽 표현을 예시한다.
도 4는 메모리 어레이 구성의 간소화된 블록도이다.
도 5는 본 개시의 실시예에 따른 전자 시스템의 부분으로서 메모리 액세스 디바이스에 결합된 메모리 디바이스의 간소화된 블록도이다.
도 6은 본 개시의 실시예에 따른 메모리 디바이스에서의 에러 정정 동작을 수해하는 방법의 흐름도이다.
도 7은 본 개시의 실시예에 따른 메모리 디바이스에서 에러 정정 동작을 수행하는 또 다른 방법의 흐름도이다.
본 발명의 다음의 상세한 설명에서, 그것의 일부를 형성하며, 예시로서 특정 실시예들이 도시되는 첨부한 도면들에 대한 참조가 이루어진다. 도면들에서, 유사한 부호들은 여러 개의 뷰들 전체에 걸쳐 실질적으로 유사한 구성요소들을 설명한다. 다른 실시예들이 이용될 수 있으며 구조적, 논리적, 및 전기적 변화들이 본 개시의 범위로부터 벗어나지 않고 이루어질 수 있다. 다음의 상세한 설명은, 그러므로, 제한적인 의미로 취해져서는 안된다.
플래시 메모리는 통상적으로 NOR 플래시 및 NAND 플래시로서 알려진 두 개의 기본 아키텍처들 중 하나를 이용한다. 지정(designation)은 디바이스들을 판독하기 위해 사용된 로직으로부터 도출된다. 도 1은 메모리 에레이의 메모리 셀들(102)이 로우들 및 컬럼들의 어레이로 논리적으로 배열되는 NAND 형 플래시 메모리 어레이 아키텍처(100)를 예시한다. 종래의 NAND 플래시 아키텍처에서, "로우(row)들"은 흔히 제어 게이트들(120)에 결합된 메모리 셀들을 나타내는 반면, "컬럼(column)들"은 예를 들면, 특정한 NAND 스트링(108)으로서 결합된 메모리 셀들을 나타낸다. 메모리 셀들의 로우는 예를 들면, 메모리의 하나 이상의 페이지들을 포함할 수 있다. 어레이의 메모리 셀들(102)은 통상적으로 각각 8, 16, 32 이상의 스트링들(예로서, NAND 스트링들)로 함께 배열된다. 스트링의 각각의 메모리 셀은 종종 비트 라인으로서 불리우는, 데이터 라인(116) 및 소스 라인(114) 사이에서, 소스 대 드레인으로, 직렬로 함께 연결된다. 어레이는 예를 들면, WL7 내지 WL0(1187 내지 1180)과 같은, 종종 워드 라인으로서 불리우는, 특정한 액세스 라인을 선택함으로써 메모리 셀들의 논리적 로우를 활성화시키는 로우 디코더(도 1 에 도시되지 않은)에 의해 액세스된다. 각각의 워드 라인은 메모리 셀들의 로우의 제어 게이트들에 결합된다. BL1 내지 BL4(1161-4)와 같은, 종종 비트 라인들로서 불리우는, 데이터 라인들은 어레이 상에서 수행되는 동작의 유형에 의존하여 하이 또는 로우로 구동될 수 있다. 이들 비트 라인들(BL1 내지 BL4)(1161-4)은 예를 들면, 특정한 비트 라인(116) 상에서 전압 또는 전류를 감지함으로써 타겟 메모리 셀의 상태를 검출하는 감지 디바이스들(예로서, 감지 증폭기들)(130)에 결합된다. 이 기술분야의 숙련자들에게 알려진 바와 같이, 워드 라인들 및 비트 라인들의 수는 도 1에 도시된 것들보다 훨씬 더 클 수 있다.
메모리 셀들(102)은 이 기술분야에서 단일 레벨 메모리 셀들(SLC) 또는 다중레벨 메모리 셀들(MLC)로서 알려져 있는 것으로서 구성될 수 있다. SLC 및 MLC 메모리 셀들은 메모리 셀들 상에 저장된 특정 범위의 임계 전압들(Vt)에 데이터 상태(예로서, 하나 이상의 비트들에 의해 표현된 바와 같이)를 할당한다. 단일 레벨 메모리 셀들(SLC)은 각각의 메모리 셀 상에서 데이터의 단일 2진 숫자(예로서, 비트)의 저장을 허용한다. 한편, MLC 기술은 셀에 할당된 Vt 범위들의 양 및 메모리 셀의 수명 동작 동안 할당된 Vt 범위들의 안정성에 의존하여, 셀당 하나 이상의 2진 숫자(예로서, 2, 4, 8, 16 비트들)의 저장을 허용한다. N-비트들로 구성된 비트 패턴을 표현하기 위해 사용된, Vt 범위들(예로서, 레벨들)의 수는 2N이며, 여기에서 N은 정수이다. 예를 들면, 1비트는 2개의 범위들로, 2비트들은 4개의 범위들로, 3비트들은 8개의 범위들 등으로 표현될 수 있다. 공통적인 명명 관례는 예를 들면, SLC 메모리가 0 또는 1에 의해 표현된 바와 같이 데이터의 1비트를 저장하기 위해 두 개의 Vt 범위들을 이용하기 때문에 MLC(2 레벨) 메모리로서 SLC 메모리를 나타내는 것이다. 데이터의 2비트들을 저장하도록 구성된 MLC 메모리는 MLC(4 레벨)로, 데이터의 3비트들은 MLC(8 레벨)로 표현될 수 있다. MLC 메모리 셀들은 예로서 2의 몇 거듭제곱이 아닌 Vt 범위들을 사용하여, 분수 비트들을 추가로 저장할 수 있다. 예를 들면, 3개의 Vt 범위들을 사용한 2개의 메모리 셀들은 총괄하여 9개의 가능한 데이터 상태들을 표현할 수 있으며, 이것은 데이터의 3비트들, 또는 메모리 셀당 1.5 비트들을 표현할 수 있다.
도 2는 MLC(4 레벨)(예로서, 2-비트) 메모리 셀에 대한 Vt 범위들(200)의 예를 예시한다. 예를 들면, 메모리 셀은 각각이 2 비트들로 구성된 비트 패턴에 대응하는 데이터 상태를 표현하기 위해 사용되는, 200 mV의 4개의 상이한 Vt 범위들(202 내지 208) 중 하나 내에 있는 Vt로 프로그램될 수 있다. 통상적으로, 데드 스페이스(dead space)(210)(예로서, 때때로 마진으로서 불리우며 200 mV 내지 400 mV의 범위를 가질 수 있는)는 범위들이 중첩하는 것을 막기 위해 각각의 범위(202 내지 208) 사이에서 유지된다. 예로서, 메모리 셀에 저장된 전압이 4개의 Vt 범위들(202) 중 제 1 내에 있다면, 이 경우에 셀은 논리 '11' 상태를 저장하며 통상적으로 셀의 소거 상태로 간주된다. 전압이 4개의 Vt 범위들(204) 중 제 2 내에 있다면, 이 경우에 셀은 논리 '10' 상태를 저장한다. 4개의 Vt 범위들 중 제 3 Vt 범위(206)에서의 전압은 이 경우에 셀이 논리 '00' 상태를 저장하고 있음을 표시할 것이다. 마지막으로, 제 4 Vt 범위(208)에 있는 Vt는 논리 '01' 상태가 셀에 저장됨을 표시한다.
메모리 셀들은 통상적으로 소거 및 프로그래밍 사이클들을 사용하여 프로그램된다. 예를 들면, 메모리 셀들의 특정한 블록의 메모리 셀들이 먼저 소거되며 그 후 선택적으로 프로그램된다. NAND 어레이에 대해, 메모리 셀들의 블록은, 메모리 셀들의 블록의 전하 저장 구조들(예로서, 부동 게이트들 또는 전하 트랩들) 상에 저장될 수 있는 전하들을 제거하기 위해, 통상적으로 블록에서 워드 라인들의 모두를 접지시키며 메모리 셀들의 블록이 형성되는 반도체 기판으로, 및 그에 따라 메모리 셀들의 채널들로 소거 전압을 인가함으로써 소거된다. 이것은 통상적으로 예를 들면, 도 2의 Vt 범위(202)(예로서, 소거 상태)에 존재하는 메모리 셀들의 Vt를 야기한다.
프로그래밍은 통상적으로 하나 이상의 프로그래밍 펄스들을 선택된 워드 라인(예로서, WL14(1184))에 및 그에 따라 선택된 워드 라인에 결합된 각각의 메모리 셀(1201 내지 1204)의 제어 게이트에 인가하는 것을 수반한다. 통상적인 프로그래밍 펄스들은 15V에서 또는 그 가까이에서 시작하며 각각의 프로그래밍 펄스 인가 동안 규모가 증가하려는 경향이 있다. 프로그램 전압(예로서, 프로그래밍 펄스)이 선택된 워드 라인에 인가되는 동안, 접지 전위와 같은, 전위가 기판에, 및 그에 따라 이들 메모리 셀들의 채널들에 인가되어, 채널로부터 프로그래밍을 위해 타겟팅된 메모리 셀들의 저장 구조들로 전하 전송을 야기한다. 보다 구체적으로, 저장 구조들은 통상적으로 채널에서 저장 구조로 전자들의 직접 주입 또는 파울러-노드하임(Fowler-Nordheim) 터널링을 통해 충전되어, 예를 들면, 도 2의 Vt 범위들(204 내지 208)에서와 같은, 프로그램된 상태에서 통상적으로 0보다 큰 Vt를 야기한다. 또한, 억지 전압은 통상적으로 프로그래밍을 위해 타겟팅된(예로서, 선택된) 메모리 셀을 포함한 NAND 스트링에 결합되지 않은 비트 라인들에 인가된다.
하나 이상의 프로그래밍(예로서, Vpgm) 펄스들의 인가 사이에서, 검증 동작은 통상적으로 그것이 그것의 의도된 프로그램된 상태에 도달하였는지를 결정하기 위해 각각의 선택된 메모리 셀을 확인하기 위해 수행된다. 선택된 메모리 셀이 그것의 의도된 프로그램된 상태에 도달하였다면, 그것은 그것들의 의도된 프로그램된 상태들에 도달하도록 부가적인 프로그래밍 펄스들에 여전히 요구하는 선택된 로우의 다른 메모리 셀들이 남아 있다면 추가 프로그래밍으로부터 금지된다. 검증 동작에 이어서, 부가적인 프로그래밍 펄스(Vpgm)는 프로그래밍을 완료하지 않은 메모리 셀들이 있다면 인가된다. 검증 동작을 수행하는 것에 앞서 프로그래밍 펄스를 인가하는 이러한 프로세스는 통상적으로 선택된 메모리 셀들의 모두가 그것들의 의도된 프로그램된 상태들에 도달할 때까지 계속된다. 통상적으로, 교번하는 비트 라인들은 메모리 셀들(120)의 선택된 로우 상에서 수행된 프로그래밍(예로서, 기록) 및/또는 판독 동작 동안 인에이블되며(1161, 1163) 및/또는 금지된다(1162, 1164). 이것은 예를 들면, 메모리 셀들(120) 주위에 도시된 실선 및 파선 원들에 의해 예시된다. 특정한 수의 프로그래밍 펄스들(예로서, 최대 수)이 인가되고 하나 이상의 선택된 메모리 셀들이 여전히 프로그래밍을 완료하지 않았다면, 이들 메모리 셀들은, 예를 들면, 결함이 있는 것으로 마킹될 수 있다.
NAND 플래시 메모리 디바이스들과 같은, 메모리 디바이스들은 통상적으로 예를 들면, 판독 동작과 같은, 메모리 동작들을 메모리 디바이스의 메모리 어레이 상에서 수행하기 위한 트림(trim) 값들로서 알려진 것을 이용한다. 예를 들면, 최소 판독 전압은 VreadMin 트림 값에 의해 지정될 수 있으며 최대 판독 전압은 VreadMax 트림 값에 의해 지정될 수 있다. 이들 트림 값들은 통상적으로 메모리 디바이스에서 수행된 판독 동작들 동안 이용될 전압들을 정의하기 위해 메모리 디바이스에서의 레지스터에 저장된다. 레지스터들은 예를 들면, 메모리 디바이스의 리셋에 이어 부트 동작 동안 트림 값들을 갖고 로딩될 수 있다. 예를 들면, 검증 동작들을 수행하기 위한 검증 트림 값들과 같은, 다른 트림 값들이 이용될 수 있다.
데이터 손상을 야기할 수 있는 것과 같은, 메모리 디바이스에서의 에러들의 잠재적인 소스는 몇몇 시간 기간에 걸쳐 메모리 셀들의 전하 저장 구조(예로서, 부동 게이트들)로부터의 전하 손실이다. 이것은 통상적으로 영향을 받은 메모리 셀들의 임계 전압들의 감소를 야기한다. 메모리 셀들에 저장된 데이터가 메모리 셀들의 임계 전압에 의해 표현됨에 따라, 메모리 셀의 임계 전압의 변화(예로서, 드리프트)는 그것으로 프로그램된 원하는 데이터 값과 상이한 데이터 값을 저장하는 것으로서 판독될 수 있다. 메모리 셀에서의 충분한 임계 전압 드리프트(threshold voltage drift)(예로서, 증가하는 또는 감소하는 Vt)는 결국 예를 들면, 메모리 셀에 저장된 데이터의 손상을 야기할 수 있다.
도 3은 메모리 셀들의 모집단에서의 임계 전압 드리프트의 그래픽 표현을 예시한다. 상기 논의된 바와 같이, 임계 전압 드리프트는 메모리 셀의 전하 저장 구조로부터의 전하 손실의 결과로서 발생할 수 있다. 임계 전압 드리프트는 메모리 셀들의 어레이 상에서 수행된 프로그래밍 동작들 동안 발생하는 프로그램 방해 효과들과 같은, 다양한 다른 현상의 결과로서 발생할 수 있다. 도 3의 임계 전압들(302 내지 308)의 분포들은 도 2에 대하여 상기 논의된 임계 전압 분포들(202 내지 208)에 각각 대응할 수 있다. 임계 전압 분포들(312 내지 318)은 메모리 셀들의 임계 전압에서의 시프트(예로서, 드리프트)를 예시한다. 분포(306)는 레벨(L2)로 프로그램된 하나 이상의 메모리 셀들을 나타낼 수 있는 반면 분포(316)는 레벨(L2)로 프로그램된 메모리 셀들의 시간에 걸친 임계 전압(324)에서의 시프트를 나타낼 수 있다. 각각의 시프트된 임계 전압 분포(312 내지 318)는 그것의 각각의 시프트되지 않은 분포(302 내지 308)로부터 동일한 양이 시프트된 것으로(320 내지 328) 도 3에 도시된다. 그러나, 각각의 임계 전압 드리프트(320 내지 328)는 상이한 방향들로 발생할 수 있으며 도 3에 도시된 다른 임계 전압 드리프트 방향들 및 규모들과 상이한 규모들을 가질 수 있다. 임계 전압 드리프트(324)는 임계 전압 드리프트(322)가 보이는 것과 상이한 규모 및/또는 방향성 드리프트를 포함할 수 있다. 뿐만 아니라, 임계 전압 드리프트(326)는 임계 전압 드리프트(328)가 보이는 것과 상이한 규모 및/또는 방향성 드리프트를 포함할 수 있다. 특정한 레벨로 프로그램된 메모리 셀들의 임계 전압 드리프트는 항상 균일한 방향 및/또는 규모로 드리프트하는 것은 아닐 것이다.
상기 논의된 바와 같이, 메모리 셀에서의 임계 전압 드리프트는 메모리 셀에 저장된 데이터가 손상되게 할 수 있다. 분포(316)는 그 임계 전압들이 몇몇 양만큼 시프트되는(324) 메모리 셀들을 나타낸다. 메모리 디바이스가, 분포(316) 및 분포(304) 사이에서와 같은, 상이한 분포들의 임계 전압들 사이에서 구별할 수 있는 한, 이들 메모리 셀들로부터 판독된 데이터는 신뢰할 수 있을 가능성이 높다. 그러나, 제 1 프로그램된 레벨을 나타내는 분포의 임계 전압들이 제 2 프로그램된 레벨을 나타내는 또 다른 분포의 임계 전압들과 중첩하도록 너무 멀리 드리프트한다면, 이들 메모리 셀들 상에서의 판독 동작은 손상된 데이터를 산출할 수 있다. 예를 들면, 메모리 셀은 분포(306) 내에서의 임계 전압을 가진 원하는 레벨(L2)로 프로그램될 수 있다. 몇몇 시간에 걸쳐, 분포(306)의 임계 전압들은 분포(316)에 의해 표현된 바와 같이, 드리프트할 수 있다. 분포(316)에 의해 표현된 메모리 셀들의 임계 전압들이 분포(304) 내에서의 임계 전압 레벨들로 드리프트한다면, 메모리 셀들은 메모리 셀이 프로그램된 것으로 L2 대신에 레벨(L1)로 프로그램된 것처럼 판독될 수 있다. 따라서, 에러는 이들 메모리 셀들을 판독할 때 발생할 수 있다.
에러 정정 코드(ECC)는 다수의 메모리 셀들로부터 판독된 데이터에서의 하나 이상의 에러들을 정정하려고 시도하기 위해 사용될 수 있다. 예를 들면, 사용자 데이터에 대응하는 ECC 데이터는 알고리즘을 저장될 사용자 데이터에 적용함으로써 특정한 알고리즘을 준수하여 생성된다. 그것의 대응하는 ECC 데이터와 함께 사용자 데이터는 메모리 디바이스의 메모리 어레이에 저장된다. 도 4는 예를 들면, 플래시 메모리 셀들의 어레이와 같은, 메모리 디바이스의 메모리 어레이(400)의 표현을 예시한다. 사용자 데이터는 사용자 데이터(402)를 저장하기 위해 지정된 메모리 위치들에 저장되며 ECC 데이터는 ECC 데이터(404)를 저장하기 위해 지정된 메모리 위치들에 저장된다. 도 4는 사용자 데이터 저장 영역 및 ECC 데이터 저장 영역을 포함한 각각의 로우(406)를 예시한다. 예를 들면, 로우(406)에 저장된 ECC 데이터는 로우(406)에 저장된 사용자 데이터에 대응할 수 있다. 그러나, 메모리 어레이에서 사용자 데이터 저장 위치들(402) 및 ECC 데이터 저장 위치들(404)의 배열은 도 4에 도시된 것과 상이할 수 있다.
비-휘발성 메모리 디바이스들(예로서, NAND 메모리)은 통상적으로, 메모리 디바이스로부터 판독된 사용자 데이터에 대해 수행된 에러 정정 동작들을 용이하게 하기 위해, 외부 제어기 또는 프로세서와 같은, 외부 메모리 액세스 디바이스에 의존한다. 예를 들면, 그것의 대응하는 ECC 데이터와 함께 사용자 데이터는 메모리 디바이스로부터 판독되며 프로세서에 의해 수신된다. 에러가 검출된다면, 프로세서는 프로세서에 의해 사용될 정정된 사용자 데이터를 생성하려고 시도하기 위해 정정 동작을 수행하려고 시도한다. 프로세서가 에러를 정정하였지만, 에러의 소스는 정정되지 않았다. 다시 말해서, 프로세서는 메모리 디바이스로부터 판독된 사용자 데이터에 대한 정정을 하며 그 후 에러의 소스가 여전히 존재할 가능성이 있는 동안 다른 동작들로 이동한다. 예를 들면, 메모리 디바이스의 메모리 셀들에 저장된 사용자 데이터는 손상되었을 수 있다. 이러한 손상의 원인은 손상된 사용자 데이터가 몇몇 시간 포인트 후 ECC 동작들을 사용하여 정정 가능하지 않을 수 있는 포인트에 대해 계속해서 발생할 수 있다. 뿐만 아니라, 시스템 성능은 에러가 발생하였는지를 결정하기 위해 및 메모리 디바이스로부터 판독된 사용자 데이터에서 임의의 검출된 에러들을 정정하려고 시도할 때 ECC 동작들을 수행해야 하는 프로세서에 의해 영향을 받는다.
메모리 디바이스에 결합된 프로세서(도 4에 도시되지 않음)는 메모리 위치의 판독 동작을 수행하기 위해 메모리 디바이스에 명령어를 전송할 수 있다. 판독 동작이 수행될 때, 그것의 대응하는 ECC 데이터와 함께 요청된 사용자 데이터는 메모리 어레이로부터 판독되며 외부 제어기로 전송된다. ECC 데이터는 메모리 어레이로부터 판독된 대응하는 사용자 데이터에 대한 에러 검사를 수행하는 것을 용이하게 하기 위해 사용된다. 어떤 에러들도 검출되지 않는다면, 사용자 데이터는 정확한 것으로 간주된다. 에러가 검출된다면, 다양한 ECC 동작들이 외부 제어기에 의해 검출된 사용자 데이터에서 검출된 에러들을 정정하려고 시도하기 위해 외부 제어기에 의해, 이용될 수 있다. 상기 논의된 바와 같이, 이것은 외부 제어기에 대한 에러 검사 및 에러 정정의 부담을 지운다.
도 5는 본 개시의 다양한 실시예들에 따른 메모리 디바이스(500)의 기능 블록도를 예시한다. 메모리 디바이스(500)는 상기 논의된 바와 같이 외부 제어기와 같은, 외부 메모리 액세스 디바이스(510)에 결합된다. 외부 제어기(510)는 프로세서 또는 몇몇 다른 유형의 제어 회로일 수 있다. 프로세서(510)는 예를 들면, 상기 논의된 바와 같이 메모리 디바이스로부터 판독된 사용자 데이터 및 ECC 데이터를 수신하는 것에 응답하여 ECC 동작들을 수행하도록 구성될 수 있다.
메모리 디바이스(500)는 하나 이상의 통신 채널들(506)(예로서, 통신 버스)을 통해 프로세서(510)에 결합된다. 통신 버스는 각각 명령어들, 어드레스들 및/또는 데이터를 표현한 신호를 송신하기 위해 명령어, 어드레스 및/또는 데이터 신호 라인들을 포함할 수 있다. 통신 버스는 예를 들면, 범용 직렬 버스(USB) 인터페이스와 같은, 다수의 표준 인터페이스들을 포함할 수 있다. 통신 버스(506)는 이 기술분야의 숙련자들에게 알려진 바와 같이 많은 하드 디스크 드라이브들(예로서, SATA, PATA)과 함께 사용된 표준 인터페이스일 수 있다. 함께, 메모리 디바이스(500), 프로세서(510) 및 통신 버스(506)는 전자 시스템(520)의 일부를 형성한다.
메모리 디바이스(500)는 메모리 셀들(530)의 하나 이상의 어레이들을 포함한다. 메모리 어레이(530)는 플래시 메모리 및/또는 상 변화 메모리(PCM)와 같은 메모리를 포함할 수 있다. 예를 들면, 메모리 어레이(530)는 도 1에 대하여 상기 논의된 바와 같은, NAND 구성 플래시 메모리 셀들의 어레이를 포함할 수 있다. 하나 이상의 메모리 어레이들(530)은 2D 및/또는 3D 메모리 어레이들을 포함할 수 있다. 메모리 어레이(530)는 메모리 디바이스(500)의 부분으로서 단일 또는 다수의 다이(die) 상에 존재하는 메모리 셀들의 다수의 뱅크(bank)들 및 블록(block)들을 포함할 수 있다. 메모리 어레이(530)는 SLC 및/또는 MLC 메모리를 포함할 수 있다. 메모리 어레이(530)는 또한 예를 들면, 각각의 메모리 셀에 데이터의 가변 밀도들(예로서, MLC(4-레벨) 및 MLC(8-레벨))을 저장하도록 적응 가능할 수 있다.
어드레스 버퍼 회로(540)는 I/O 회로(560)를 통해 제공된 어드레스 신호를 래칭하기 위해 제공된다. 어드레스 신호들은 메모리 어레이(530)를 액세스하기 위해 로우 디코더(544) 및 컬럼 디코더(546)에 의해 수신되고 디코딩된다.
메모리 디바이스(500)는 데이터 버퍼들/감지 회로(550)를 사용하여 메모리 어레이 컬럼들에서의 전압 또는 전류 변화들을 감지함으로써 메모리 어레이(530)에서 메모리 셀들을 판독한다. 감지 회로(550)는, 일 실시예에서, 메모리 어레이(530)로부터 데이터의 로우(예로서, 페이지)를 판독하며 래칭하기 위해 결합된다. 데이터는 프로세서(510)와의 복수의 데이터 연결들(562)을 통해 어드레스 통신뿐만 아니라 양방향 데이터 통신을 위해 I/O 회로(560)를 통해 입력 및 출력된다. 기록 회로(556)는 메모리 어레이로 데이터를 기록하기 위해 제공된다.
제어 회로(570)는 외부 프로세서(510)로부터 제어 인터페이스(572)의 데이터 연결들 상에 제공된 신호들을 디코딩한다. 이들 신호들은 데이터 판독, 데이터 기록(프로그램), 및 소거 동작들을 포함하여, 메모리 어레이(530) 상에서의 동작들을 제어하기 위해 사용된다. 데이터 연결들(572) 및 데이터 연결들(562)은 상기 논의된 통신 버스(506)를 형성하기 위해 조합되거나 또는 부분적으로 조합될 수 있다. 제어 회로(570)는 메모리 제어 신호들의 생성을 제어하도록 구성되는 상태 기계, 시퀀서, 또는 몇몇 다른 유형의 제어 회로일 수 있다. 제어 회로(570)는 적어도 부분적으로, 본 개시의 다양한 실시예들을 구현하는 것을 용이하게 하도록 구성된다. 다양한 실시예들에 따르면, 제어 회로(570)는 ECC 엔진(580)에 의해 메모리 디바이스에 대해 내부적으로 수행된 ECC 동작들을 지원하도록 구성된다. 예를 들면, ECC 엔진(580)은 582에 의해 표시된 바와 같이 제어 회로에 의해 활성화되거나 또는 비활성화될 수 있다. 제어 회로(570)는 내부 ECC 동작들과 같은, 다양한 동작들이 본 개시의 하나 이상의 실시예들에 따라 수행되는 동안 외부 프로세서(510)에 의해 메모리 어레이에서의 특정한 위치들로의 액세스를 차단하도록 추가로 구성될 수 있다. 제어 회로(570) 및 ECC 엔진(580)은, 부가적인 회로 또는 펌웨어를 갖고 또는 그것 없이, 내부 제어기의 일부들로 간주될 수 있다.
제어 회로(570)는 메모리 디바이스(500)의 요소들 중 하나 이상에 결합될 수 있다(도 5에 도시되지 않음). 예를 들면, 제어 회로(570)는 로우 디코더(544)에 결합되며 로우 디코더 구동기 회로가 메모리 어레이(530)의 특정한 워드 라인들을 바이어싱하게 하도록 구성될 수 있다. 제어 회로(570)는 데이터 버퍼 및 감지 회로(550)가 어레이(530)의 특정한 비트 라인들을 바이어싱하게 하도록 결합되며(도 5에 도시되지 않음) 구성될 수 있다. 제어 회로(570)는 하나 이상의 레지스터 회로들을 추가로 포함할 수 있다.
메모리 디바이스(500)의 ECC 엔진(580)은 본 개시의 다양한 실시예들에 따라 프로세서(510)로부터의 지원 또는 지시에 독립적인 메모리 디바이스에 대해 내부적으로 다양한 ECC 동작들을 수행하도록 구성된다. 예를 들면, ECC 엔진은 해밍 코드, BCH 코드, 리드-솔로몬 코드, 리드-뮬러 코드, 이진 골레이 코드, 저-밀도 패리티 코드, 및 트렐리스 코드 변조 방법들 및 알고리즘들과 같은 하나 이상의 ECC 기법들을 지원하도록 구성될 수 있다. 어떤 방법론을 ECC 엔진(580)에서 구현할지에 대한 선택은 예를 들면 기술 및/또는 원하는 타겟 신뢰성 레벨에 맞춰질 수 있다. 다양한 실시예들에 따르면, ECC 엔진(580)은 예를 들면, 메모리 셀들의 페이지 및/또는 블록과 같은, 메모리 셀들의 다양한 그룹핑들에 대한 ECC 동작을 수행하는 것을 용이하게 하도록 구성될 수 있다.
ECC 엔진(580)은 582에 의해 표시된 바와 같이 제어 회로(570)에 의해 활성화되거나 또는 비활성화될 수 있다. ECC 엔진(580)은 메모리 어레이에 저장되고 및/또는 그로부터 판독될 사용자 데이터에 대응하는 ECC 데이터를 생성하는 것을 용이하게 하도록 구성된다. 예를 들면, 메모리 어레이에 저장될(예로서, 프로그램될) 사용자 데이터는 ECC 엔진(580)을 통과할 수 있으며 여기에서 ECC 엔진은 사용자 데이터와 함께 저장될 대응하는 ECC 데이터를 생성한다. 판독 동작의 일부로서, 그것의 대응하는 저장된 ECC 데이터와 함께 사용자 데이터는 메모리 어레이에서의 위치로부터 판독될 수 있다. ECC 엔진은 메모리 위치로부터 판독된 사용자 데이터에 대응하는 부가적인 ECC 데이터(예로서, ECC 테스트 데이터)를 생성하도록 추가로 구성된다. ECC 엔진은 그것이 메모리 어레이에 저장될 때 사용자 데이터와 함께 저장된 ECC 데이터와 생성된 ECC 테스트 데이터를 비교한다. 생성된 ECC 테스트 데이터 및 메모리 어레이로부터 판독된 ECC 데이터가 일치한다면, 그것은 메모리 어레이로부터 판독된 사용자 데이터에 어떤 에러들도 없다고 추정된다. 생성된 ECC 테스트 데이터 및 판독된 ECC 데이터의 불일치가 발생한다면, 에러가 메모리 어레이로부터 판독된 사용자 데이터에 존재하는 것으로 추정된다.
ECC 엔진(580)은 메모리 어레이로부터 판독된 사용자 데이터에서 검출된 에러를 정정하려고 시도할 때 다양한 ECC 알고리즘들을 수행하도록 추가로 구성된다. 하나 이상의 실시예들에 따르면, 정정된 사용자 데이터는 그 후 내부 제어기(예로서, ECC 엔진(580) 및/또는 제어 회로(570))에 의해 용이해진 바와 같이 메모리 어레이에 다시 저장될 수 있다. 따라서, 메모리 디바이스(500)는 손상된 데이터가 판독된 어레이로 다시 정정된 데이터(예로서, 정정된 사용자 데이터)를 저장하기 위해 '루프 백 경로(loop back path)'를 갖고 구성된다. 본 개시의 다양한 실시예들에 따른 ECC 엔진(580)은 예를 들면, 메모리 디바이스에 내부적으로 및 외부 프로세서(510)로부터 임의의 방향 없이 다양한 ECC 동작들을 수행하는 것을 용이하게 한다. 에러를 정정하는 것에 대한 성공은 다수의 인자들에 의존할 수 있다. 몇몇 에러들은 ECC 엔진(580)에 의해 이용된 ECC 알고리즘들의 유형 및 강도에 의존하여 정정 가능하지 않을 수 있다.
도 5에 예시된 메모리 디바이스는 메모리의 특징들의 기본 이해를 용이하게 하기 위해 간소화되었다. 플래시 메모리들의 내부 회로 및 기능들의 보다 상세한 이해는 이 기술분야의 숙련자들에게 알려져 있다.
ECC 엔진(580)은 메모리 디바이스(500)에서 내부 ECC 동작들을 개시(예로서, 독립적으로 개시)하기 위한 다양한 조건들에 응답하여 다양한 ECC 동작들을 수행하도록 추가로 구성될 수 있다. 도 6은 본 개시의 하나 이상의 실시예들에 따라 다양한 내부 ECC 동작들을 수행하는 흐름도를 예시한다.
도 6은 메모리 디바이스에서 ECC 동작(600)(예로서, 내부 ECC 동작)을 개시하는 것을 예시한다. ECC 동작을 수행하는 것은 예를 들면, 상기 논의되며 도 5에 도시된 바와 같이, 메모리 디바이스의 내부 제어기에 의해, 예로서 제어 회로(570) 및/또는 ECC 엔진(580)에 의해, 용이하게 될 수 있다. ECC 동작을 개시하기 위한 결정은 다양한 방법들에 의해 이루어질 수 있다. 내부 ECC 동작은 외부 프로세서(510)로부터 수신된 지시에 응답하여 개시될 수 있다. 내부 ECC 동작들은 본 개시의 하나 이상의 실시예들에 따른 내부 ECC 동작을 수행하기 위해 외부 프로세서(510)로부터의 지시의 부재시와 같은, 메모리 디바이스에서의 배경 동작들로서 개시되며 수행될 수 있다.
예로서, 다양한 실시예들에 따른 내부 ECC 동작은 ECC 엔진(580) 및 제어 회로(570) 중 하나 또는 양쪽 모두에 의해 개시될 수 있다. 내부 ECC 동작들은 주기적으로 수행될 수 있다. 예를 들면, ECC 동작들은 본 개시의 다양한 실시예들에 따라 내부 ECC 동작들을 이전에 수행한 이래 경과한 시간과 같이, 경과한 특정한 시간에 응답하여 수행될 수 있다. 내부 ECC 동작들은 수행된 다수의 메모리 디바이스 동작들에 응답하여 개시될 수 있다. 예를 들면, 내부 ECC 동작들은 다수의 프로그래밍 및/또는 소거 동작들이 수행된 후 개시될 수 있다. ECC 동작들의 빈도는 적어도 부분적으로 사용되는 ECC 방법론의 유형에 의존하여 이루어질 수 있다. 보다 강력한 ECC 알고리즘을 사용하는 것은 예를 들면, ECC 동작들이 덜 빈번하게 수행되도록 허용할 수 있다.
608에서 ECC 동작의 개시에 이어서, 검사되도록 선택된 메모리 셀들은 610에서 판독된 사용자 데이터 및 대응하는 판독된 ECC 데이터를 획득하기 위해 메모리 어레이로부터 판독된다. 메모리 셀들 또는 메모리 셀들의 그룹들(예로서, 메모리 셀들의 블록들)은 메모리 셀들 상에서 수행된 프로그래밍 및/또는 소거 동작들의 수에 응답하여 선택될 수 있다. 예를 들면, 프로그래밍 및/또는 소거 동작들의 수를 초과하는 것은 ECC 동작에 대해 스케줄링될 메모리 셀들의 그룹을 식별할 수 있다. 메모리 셀들은 시간에 걸쳐 및/또는 점점 더 많은 프로그래밍/소거 사이클들에 노출됨으로써 노화된다. 메모리 셀들 상에서 프로그래밍 동작들을 완료하기 위해 요구하는 프로그래밍 펄스들의 수는 이들 메모리 셀들의 수명 또는 웨어 레벨의 표시일 수 있다. 따라서, ECC 동작들은 메모리 셀들 상에서 프로그래밍 동작들을 완료하기 위해 요구되는 프로그래밍 펄스들의 수들을 추적하는 것에 기초하여 메모리 셀들의 결정된 수명 또는 웨어 레벨에 응답하여 개시될 수 있다. 예를 들면, 메모리 셀들의 그룹의 관찰된 프로그래밍 특성들에서의 증가(예로서, 프로그래밍 동작들을 완료하기 위해 요구된 프로그래밍 펄스들의 수에서의 증가)는 이들 셀들의 웨어 레벨을 표시할 수 있다. 따라서, ECC 동작들은, 예를 들면, 메모리 셀들의 그룹에서의 높은 웨어 레벨 표시의 표시에 응답하여 개시될 수 있다. 하나 이상의 실시예들에 따르면, 메모리 셀들의 그룹들은 ECC 동작들을 위해 랜덤하게 또는 순차적으로 선택될 수 있다.
612에서, ECC 엔진(580)은 판독된 사용자 데이터에 특정한 ECC 알고리즘을 적용함으로써 판독된 사용자 데이터 및 판독된 ECC 데이터를 프로세싱한다. ECC 엔진(580)은 판독된 사용자 데이터에 대응하는 ECC 데이터(예로서, ECC 테스트 데이터)를 생성하기 위해 판독된 사용자 데이터에 ECC 알고리즘을 적용한다. ECC 테스트 데이터는 메모리 디바이스로부터 판독되며 판독된 사용자 데이터에 대응하는 ECC 데이터에 비교된다. 614에서, ECC 테스트 데이터 및 판독된 ECC 데이터의 비교의 결과에 응답하여 에러가 판독된 사용자 데이터에 존재하는지에 대한 결정이 이루어진다. ECC 동작은 614에서 어떤 에러도 검출되지 않는다면 640에서 종료된다.
ECC 비교 동작의 결과는 에러가 판독된 사용자 데이터에 존재함을 표시할 수 있다. 에러가 표시될 때, 에러에 기여한(예로서, 손상된 데이터를 저장한) 메모리 셀들을 식별하려는 시도가 620에서 이루어진다. 에러들이 ECC의 한계들 내에 있으며, 정정이 가능하다면, 에러에 기여한 메모리 셀들, 즉 정정될 판독 데이터에 대응하는 이들 메모리 셀들의 식별은 간단한 태스크이다. 하나 이상의 실시예들에 따르면, ECC 엔진(580)은 검출된 에러의 원인이 예를 들면, 도 3에 대하여 상기 논의된 바와 같이 하위 레벨로 드리프트한 임계 전압을 갖는 것과 같은, 하나 이상의 메모리 셀들에서의 임계 전압 드리프트에 기인한다면 622에서 결정하도록 추가로 구성된다. 에러들이 ECC의 한계들 내에 있으며, 정정이 가능하다면, 검출된 에러의 원인의 결정은 간단한 태스크이다. 예를 들면, 도 3을 참조하면, ECC 테스트 데이터가 메모리 셀에 대응하는 데이터가 L2 데이터 상태를 나타내어야 하지만 메모리 셀에 대응하는 판독된 사용자 데이터는 L1 데이터 상태(또는 다른 하위 데이터 상태)를 나타냄을 표시하는 것이라면, 에러의 원인은 상기 메모리 셀의 임계 전압에서의 감소의 결과인 것으로 간주될 수 있다. 메모리 셀의 임계 전압에서의 증가의 결과인 것으로 간주된 에러들이, 예로서 판독된 사용자 데이터가 ECC 테스트 데이터에 의해 표시된 데이터 상태보다 높은 데이터 상태를 나타내는 경우, 유사하게 결정될 수 있다.
하나 이상의 메모리 셀들이 감소된 임계 전압을 갖는 것으로 식별된다면, ECC 엔진(580) 및/또는 제어 회로(570)는 그것들을 그것의 사전-임계 전압 드리프트 레벨들로 회복시키도록 그것들의 임계 전압 레벨들을 증가시키기 위해 626에서 식별된 메모리 셀들에 대한 프로그래밍 동작(예로서, 터치 업 프로그래밍 동작)을 수행하는 것을 용이하게 할 수 있다. 다시 말해서, 터치 업 프로그래밍 동작은 그것들의 임계 전압들이 다시 그것들의 의도된(예로서, 원하는) 프로그램된 레벨들에 대응하는 레벨을 갖도록 메모리 셀들의 전하 저장 구조들로 전하의 양을 회복시키는 것을 용이하게 한다(예로서, 먼저 소거 동작을 수행하는 것 없이와 같은). 검증 동작은 메모리 셀들에 대한 원하는 임계 전압 레벨들이 회복됨을 검증하기 위해 626에서 터치 업 프로그래밍 동작과 함께 수행될 수 있다. 따라서, 본 개시의 다양한 실시예들에 따르면, 프로그래밍 동작(예로서, 터치 업 프로그래밍 동작)은 ECC 동작을 수행하는 것에 응답하여 임계 전압 레벨들에서의 감소를 경험한 것으로서 식별된 메모리 셀들 상에서 수행된다. 본 개시의 추가 실시예들에 따르면, 이러한 프로그래밍 동작들은 단지 어떤 식별된 메모리 셀도 임계 전압에서의 증가로 인해 결정된 에러에 기여하지 않는 경우에만 626에서 수행될 수 있다.
메모리 셀들은 판독된 사용자 데이터의 에러를 야기한 정도로 증가한 임계 전압들(예로서, 증가하는 임계 전압 드리프트)을 갖는 것으로 ECC 동작 동안 식별될 수 있다. ECC 엔진(580)은 판독된 사용자 데이터에서 검출된 에러들을 정정하며 정정된 사용자 데이터를 생성하려고 시도하기 위해 630에서 ECC 알고리즘을 적용할 수 있으며, 정정된 사용자 데이터는 예를 들면, 데이터 버퍼(550)에서와 같은, 메모리 디바이스에 저장될 수 있다. ECC 엔진(580) 및/또는 제어 회로(570)는 그 후 메모리 어레이(530)로 다시 정정된 사용자 데이터를 저장하기 위해 632에서 프로그래밍 동작을 수행하는 것을 용이하게 할 수 있다. 정정된 사용자 데이터는 그것이 교체하는 사용자 데이터와 상이한 위치에서의 메모리 어레이에 저장될 수 있다. 예를 들면, 정정된 데이터는 손상된 사용자 데이터가 저장된 곳과 상이한 메모리 디바이스의 소거 위치에 저장될 수 있다. 대안적으로, 제어 회로(570)는 손상된 판독 사용자 데이터를 저장한 메모리 위치상에서 소거 동작을 수행하는 것을 용이하게 하며 그 다음에 동일한 메모리 위치에 정정된 사용자 데이터를 저장할 수 있다. 다양한 실시예들에 따르면, 정정된 사용자 데이터를 저장하는 것은 적어도 하나의 식별된 메모리 셀이 임계 전압에서의 증가로 인해 결정된 에러에 기여하였다면 수행될 수 있다.
하나 이상의 실시예들에 따르면, 메모리 디바이스(500)는 메모리 디바이스에, 때때로 논리 대 물리 어드레스 매핑으로서 불리우는, 논리 대 물리 어드레스 변환을 용이하게 하는 어드레스 재매핑 유닛을 포함할 수 있다. 이러한 데이터 구조는 메모리 디바이스에 위치된 논리 어드레스들 및 물리 어드레스들 사이에서의 상관관계를 제공한다. 1 대 1 매핑된 디바이스는 예를 들면, 메모리의 하나의 논리 섹터에 대응하기 위해 메모리의 하나의 물리 섹터를 포함하는 것으로 간주될 수 있다. 논리 대 물리 어드레스 변환 정보를 포함한 데이터 구조는 메모리 디바이스에 또는 대안적으로 외부 프로세서에 저장되고 유지보수(maintain)될 수 있다. 이러한 데이터 구조는 논리 대 물리 어드레스 변환 데이터 구조로서 불리울 수 있다.
데이터의 손상을 방지하기 위해, 메모리 디바이스의 하나 이상의 물리 어드레스들에 대응하는 하나 이상의 논리 어드레스들(예로서, 논리 어드레스들의 범위)이 내부 ECC 동작들을 수행하는 것을 용이하게 하기 위해 구성된 메모리 디바이스 제어 회로(570) 및/또는 ECC 엔진(580) 없이 액세스로부터 차단될 수 있다. 따라서, 하나 이상의 실시예들은 ECC 동작들이 메모리 디바이스에 대해 내부적으로 수행되는 동안 메모리 디바이스의 물리 어드레스들에 매핑된 하나 이상의 논리 어드레스들로의, 액세스를 허용하거나 또는 차단하는 것과 같은, 액세스를 관리하는 것을 용이하게 한다. 예를 들면, 메모리 디바이스의 제어 회로(570)는 메모리 디바이스에서의 물리 어드레스들로의 액세스를 가질 수 있지만 메모리 디바이스에 결합된 프로세서(510)는 내부 ECC 동작들이 수행되는 동안 액세스가 허용되지 않을 수 있다. 메모리 디바이스는 메모리 디바이스로부터의 "준비/사용중(ready/busy)'(R/B) 신호와 같은, 출력 신호를 유지하도록 구성될 수 있다. R/B 신호의 레벨(예로서, 논리 레벨)은 예를 들면, ECC 동작이 메모리 디바이스에서 수행되는지 여부를 표시한다. R/B 신호 라인은 예를 들면, 도 5에 대하여 상기 논의된 통신 버스(506)의 부분으로서 포함될 수 있다(도시되지 않음).
다시 도 6을 참조하면, 정정된 사용자 데이터가 손상된 판독 사용자 데이터와 상이한 메모리 위치에서 저장된다면, 논리 대 물리 어드레스 변환 데이터 구조는 메모리 어레이에서 정정된 사용자 데이터의 새로운 위치를 반영하기 위해 634에서 업데이트될 수 있다. 예를 들면, 논리 대 물리 어드레스 변환 데이터 구조가 외부 프로세서(510)에서 유지보수(maintain)된다면, 메모리 디바이스(500)는 논리 대 물리 어드레스 변환 구조가 정정된 사용자 데이터의 새로운 물리 어드레스로 업데이트될 수 있도록 외부 프로세서(510)에 업데이트된 어드레스 정보를 전송할 수 있다. 메모리 디바이스(500)에 유지된 논리 대 물리 어드레스 변환 데이터 구조는 예를 들면, 정정된 사용자 데이터를 저장하기 위해 메모리 디바이스에서의 새로운 물리적 위치를 식별하는 것에 응답하여 메모리 디바이스 상에 내부적으로 업데이트될 수 있다.
하나 이상의 실시예들에 따르면, 논리 대 물리 어드레스 변환 데이터 구조는 메모리 디바이스에서의 사용자 데이터의 위치가 변하지 않았기 때문에 626에서 터치 업 프로그래밍 동작에 이어 업데이트될 필요가 없을 수 있다는 것이 주의된다. 뿐만 아니라, 하나 이상의 실시예들은 ECC 동작을 수행하는 제 1 반복의 완료에 이어 다시 수행될 도 6에 의해 예시된 ECC 동작을 포함할 수 있다. 예를 들면, 626에서 터치 업 프로그래밍 동작을 수행하는 것 및/또는 632에서 메모리 어레이에 정정된 사용자 데이터를 프로그램하는 것 다음에, 도 6에 의해 설명된 ECC 동작은 이전 수행된 ECC 동작이 성공적으로 완료되었음을 검증하기 위해 다시 수행될 수 있다.
도 7은 본 개시의 하나 이상의 실시예들에 따른 또 다른 내부 ECC 동작을 수행하는 흐름도를 예시한다. 도 7에 의해 예시된 방법은 도 6에 도시되며 상기 논의된 것과 유사하다. ECC 동작은 도 6의 단계(608)에 대하여 상기 논의된 바와 같이 708에서 개시된다. 사용자 데이터 및 ECC 데이터는 단계(610)에 대하여 상기 논의된 바와 같이 710에서 선택된 메모리 셀들로부터 판독된다. 712에서, ECC 검사는 도 6의 단계(612)에 대하여 상기 논의된 바와 같이, 판독된 사용자 데이터에 대해 수행된다. ECC 엔진(580)은 714에서 에러가 판독된 사용자 데이터에 존재하는지를 결정한다. 어떤 에러도 검출되지 않았다면, ECC 동작은 740에서 종료된다.
에러가 714에서 검출된다면, ECC 엔진(580)은 다수의 선택된 메모리 셀들의 임계 전압들에서의 시프트들의 규모 및/또는 방향을 결정하도록 구성된다. 임계 전압 시프트 결정에 응답하여, ECC 엔진은 722에서, 이용된다면 ECC 검사 동안 검출된 에러들을 정정할 수 있는 트림 값들을 결정(예로서, 결정 및 조정)하려고 시도한다. 예를 들면, 임계 전압 드리프트들은 동일한 방향으로 및 실질적으로 동일한 규모를 갖고 발생할 수 있다. 따라서, 본 개시의 하나 이상의 실시예들에 따르면, 판독 동작들 동안 사용된 트림 값들(예로서, VreadMin 및/또는 VreadMax)에 대한 조정은 ECC 엔진(720)에 의해 결정된 임계 전압 시프트들을 보상하기 위해 조정될 수 있다. 이들 조정된 트림 값들은 예를 들면, 선택된 메모리 셀들에 대해 수행된 후속 판독 동작들 동안 이용되도록, 상기 논의된 바와 같이, 724에서 메모리 디바이스의 트림 레지스터들에 저장될 수 있다.
결론
메모리 디바이스들에서의 에러 정정 동작들이 설명되었다. 특히, 메모리 디바이스에 결합된 외부 메모리 액세스 디바이스로부터의 지시에 독립적인 메모리 디바이스 내에서 에러 정정 동작들을 수행하는 방법들이 논의되었다. 독립적인 에러 정정 동작들은 에러들을 식별하며 정정하기 위해 및 메모리 디바이스에 데이터의 정정된 버전을 저장하기 위해 메모리 디바이스에서 에러 정정 동작들을 수행하는 것을 개시하며 이를 용이하게 하도록 구성된 내부 메모리 디바이스 제어 회로에 의해 관리될 수 있다. 메모리 디바이스에서 ECC 동작들을 수행하는 것에 응답하여 트림 값들을 조정하는 것이 또한 개시되었다.
특정 실시예들이 여기에 예시되고 설명되었지만, 동일한 목적을 달성하기 위해 산출되는 임의의 배열이 도시된 특정한 실시예를 위해 대체될 수 있다는 것이 이 기술분야의 숙련자들에 의해 이해될 것이다. 개시의 많은 각색들이 이 기술분야의 숙련자들에게 명백할 것이다. 따라서, 본 출원은 개시의 임의의 각색들 또는 변형들을 커버하도록 의도된다.

Claims (15)

  1. 메모리 디바이스를 동작시키는 방법에 있어서,
    상기 메모리 디바이스의 메모리 어레이의 제 1 부분에 저장된 사용자 데이터상에 에러 정정 코드(ECC) 동작을 수행하는 단계;
    상기 ECC 동작을 수행에 응답하여 상기 메모리 어레이의 상기 제 1 부분에 저장된 사용자 데이터에 에러가 존재하는지를 결정하는 단계; 및
    에러가 존재하는 것으로 결정된다면:
    상기 메모리 어레이의 상기 제 1 부분의 메모리 셀이 임계 전압에서의 감소에 기인하여 상기 결정된 에러의 원인이 되었다면 상기 메모리 어레이의 상기 제 1 부분의 메모리 셀들에 하나 이상의 프로그래밍 펄스들을 인가하는 단계를 포함하는, 메모리 디바이스를 동작시키는 방법.
  2. 청구항 1에 있어서,
    에러 정정 코드(ECC) 동작을 수행하는 단계는 상기 메모리 디바이스에 결합된 외부 메모리 액세스 디바이스로부터 수신된 지시로부터 독립적으로 에러 정정 코드(ECC) 동작을 수행하는 단계를 더 포함하는, 메모리 디바이스를 동작시키는 방법.
  3. 청구항 2에 있어서,
    외부 메모리 액세스 디바이스로부터 수신된 지시로부터 독립적으로 에러 정정 코드(ECC) 동작을 수행하는 단계는 상기 메모리 디바이스의 내부 제어기에 의해 생성된 명령어에 응답하여 에러 정정 코드(ECC) 동작을 수행하는 단계를 더 포함하는, 메모리 디바이스를 동작시키는 방법.
  4. 청구항 1 내지 청구항 3 중 어느 한 항에 있어서,
    하나 이상의 프로그래밍 펄스들을 인가하는 단계는 상기 메모리 어레이의 상기 제 1 부분의 메모리 셀들 상에 먼저 소거 동작을 수행하지 않고 하나 이상의 프로그래밍 펄스들을 인가하는 단계를 더 포함하는, 메모리 디바이스를 동작시키는 방법.
  5. 청구항 4에 있어서,
    상기 메모리 어레이의 상기 제 1 부분의 상기 메모리 셀들에 하나 이상의 프로그래밍 펄스들을 인가하는 동안, 임계 전압에서의 감소에 기인하여 상기 에러의 원인이 된 것으로 결정된 상기 메모리 어레이의 상기 제 1 부분의 임의의 메모리 셀 외에 상기 메모리 어레이의 상기 제 1 부분의 메모리 셀들은 프로그래밍하는 것을 금지하는 단계를 더 포함하는, 메모리 디바이스를 동작시키는 방법.
  6. 청구항 1 내지 청구항 3 중 어느 한 항에 있어서,
    상기 메모리 어레이의 상기 제 1 부분의 메모리 셀들에 하나 이상의 프로그래밍 펄스들을 인가하는 단계는 상기 메모리 어레이의 상기 제 1 부분의 어떤 메모리 셀도 임계 전압에서의 증가에 기인하여 상기 결정된 에러의 원인이 되지 않을 때만 상기 메모리 어레이의 상기 제 1 부분의 상기 메모리 셀들에 상기 하나 이상의 프로그래밍 펄스들을 인가하는 단계를 더 포함하는, 메모리 디바이스를 동작시키는 방법.
  7. 청구항 6에 있어서,
    에러가 존재하는 것으로 결정되면, 상기 방법은:
    상기 메모리 어레이의 상기 제 1 부분의 적어도 하나의 메모리 셀이 상기 적어도 하나의 메모리 셀의 임계 전압에서의 증가에 기인하여 상기 결정된 에러의 원인 된 것이라면 정정된 사용자 데이터를 생성하며 상기 정정된 사용자 데이터를 상기 메모리 어레이의 제 2 부분에 저장하는 단계를 더 포함하는, 메모리 디바이스를 동작시키는 방법.
  8. 청구항 7에 있어서,
    상기 메모리 어레이의 상기 제 2 부분이 상기 메모리 어레이의 상기 제 1 부분과 상이한 물리 어드레스를 가진다면 상기 메모리 어레이의 상기 제 2 부분에 정정된 사용자 데이터를 저장하는 것에 응답하여 논리 대 물리 어드레스 변환 데이터 구조를 업데이트하는 단계를 더 포함하는, 메모리 디바이스를 동작시키는 방법.
  9. 청구항 8에 있어서,
    업데이트하는 단계는 상기 메모리 어레이의 상기 제 2 부분이 상기 메모리 어레이의 상기 제 1 부분과 상이한 물리 어드레스를 가진다면 상기 메모리 디바이스에 결합된 외부 메모리 액세스 디바이스로 상기 메모리 어레이의 상기 제 2 부분의 어드레스를 전송함으로써 업데이트하는 단계를 더 포함하며, 상기 외부 메모리 액세스 디바이스가 상기 논리 대 물리 어드레스 변환 데이터 구조를 유지보수(maintain)하도록 구성되는, 메모리 디바이스를 동작시키는 방법.
  10. 청구항 9에 있어서,
    상기 외부 메모리 액세스 디바이스로부터의 요청의 부재시 상기 업데이트된 어드레스가 상기 메모리 디바이스에 의해 상기 외부 메모리 액세스 디바이스로 전송되어 상기 논리 대 물리 어드레스 변환 데이터 구조를 업데이트하는, 메모리 디바이스를 동작시키는 방법.
  11. 청구항 7에 있어서,
    상기 메모리 어레이의 제 2 부분에 상기 정정된 사용자 데이터를 저장하는 단계는 상기 메모리 어레이의 상기 제 1 부분을 소거하는 단계 및 상기 메모리 어레이의 상기 소거된 제 1 부분에 상기 정정된 사용자 데이터를 저장하는 단계를 포함하는, 메모리 디바이스를 동작시키는 방법.
  12. 청구항 1 내지 청구항 3 중 어느 한 항에 있어서,
    추가로,
    상기 ECC 동작을 수행하는 단계는:
    사용자 데이터 및 상기 사용자 데이터에 대응하는 에러 정정 코드(ECC) 데이터를 판독하는 단계; 및
    상기 판독된 사용자 데이터로부터 부가적인 에러 정정 코드(ECC) 데이터를 생성하는 단계를 포함하며,
    에러가 존재하는지를 결정하는 단계는 상기 판독된 ECC 데이터와 상기 생성된 ECC 데이터를 비교하는 단계를 포함하며;
    에러가 존재하는 것으로 결정된다면,
    어떤 메모리 셀들이 상기 에러를 원인으로 한 상기 판독된 사용자 데이터를 저장하는지를 결정하는 단계;
    상기 메모리 셀들의 각각이 임계 전압에서의 감소에 기인하여 상기 에러의 원인이 되었다면 상기 에러의 원인이 된 것으로 결정된 상기 메모리 셀들에 하나 이상의 프로그래밍 펄스들을 인가하는 단계; 및
    상기 메모리 셀들 중 적어도 하나가 임계 전압에서의 증가에 기인하여 상기 에러에 원인이 된 것으로 결정될 때 정정된 사용자 데이터를 생성하며 상기 정정된 사용자 데이터를 제 2 메모리 위치에 저장하는 단계를 포함하는, 메모리 디바이스를 동작시키는 방법.
  13. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
    에러가 존재하는 것으로 결정된다면 상기 메모리 디바이스의 하나 이상의 트림 값들을 조정하는 단계를 더 포함하며,
    상기 하나 이상의 트림 값들은 최소 판독 전압에 대응하는 트림 값 및/또는 최대 판독 전압에 대응하는 트림 값을 포함하는, 메모리 디바이스를 동작시키는 방법.
  14. 내부 제어기를 포함한 메모리 디바이스에 있어서,
    상기 내부 제어기 - 상기 메모리 디바이스에 결합된 외부 메모리 액세스 디바이스로부터 수신된 지시에 독립적인 - 는 청구항 13의 방법을 수행하도록 구성되는, 메모리 디바이스.
  15. 내부 제어기를 포함한 메모리 디바이스에 있어서,
    상기 내부 제어기는 청구항 12의 방법을 수행하도록 구성되는, 메모리 디바이스.
KR1020157024812A 2013-03-15 2014-03-14 메모리 디바이스에서의 에러 정정 동작들 KR101665280B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201361788906P 2013-03-15 2013-03-15
US61/788,906 2013-03-15
US14/189,375 US9367391B2 (en) 2013-03-15 2014-02-25 Error correction operations in a memory device
US14/189,375 2014-02-25
PCT/US2014/027546 WO2014152627A2 (en) 2013-03-15 2014-03-14 Error correction operations in a memory device

Publications (2)

Publication Number Publication Date
KR20150119169A true KR20150119169A (ko) 2015-10-23
KR101665280B1 KR101665280B1 (ko) 2016-10-11

Family

ID=51534249

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157024812A KR101665280B1 (ko) 2013-03-15 2014-03-14 메모리 디바이스에서의 에러 정정 동작들

Country Status (7)

Country Link
US (1) US9367391B2 (ko)
EP (1) EP2973588B1 (ko)
JP (1) JP6127200B2 (ko)
KR (1) KR101665280B1 (ko)
CN (1) CN105144302B (ko)
TW (1) TWI574277B (ko)
WO (1) WO2014152627A2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10671478B2 (en) 2016-11-28 2020-06-02 Samsung Electronics Co., Ltd. Scrubbing controllers of semiconductor memory devices, semiconductor memory devices and methods of operating the same

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10230396B1 (en) 2013-03-05 2019-03-12 Microsemi Solutions (Us), Inc. Method and apparatus for layer-specific LDPC decoding
US9813080B1 (en) 2013-03-05 2017-11-07 Microsemi Solutions (U.S.), Inc. Layer specific LDPC decoder
US9323614B2 (en) * 2013-11-06 2016-04-26 Wisconsin Alumni Research Foundation Dynamic error handling for on-chip memory structures
KR102174030B1 (ko) * 2014-05-13 2020-11-05 삼성전자주식회사 불휘발성 메모리 장치를 포함하는 저장 장치 및 그것의 읽기 방법
KR102249810B1 (ko) * 2014-07-23 2021-05-11 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 동작 방법
US9558066B2 (en) 2014-09-26 2017-01-31 Intel Corporation Exchanging ECC metadata between memory and host system
KR102333743B1 (ko) * 2015-01-21 2021-12-01 삼성전자주식회사 불휘발성 메모리 장치 및 불휘발성 메모리 장치의 동작 방법
JP6515555B2 (ja) * 2015-02-02 2019-05-22 富士通株式会社 演算処理装置、メモリ制御装置及び演算処理装置の制御方法
US9811420B2 (en) 2015-03-27 2017-11-07 Intel Corporation Extracting selective information from on-die dynamic random access memory (DRAM) error correction code (ECC)
US10332613B1 (en) 2015-05-18 2019-06-25 Microsemi Solutions (Us), Inc. Nonvolatile memory system with retention monitor
US9799405B1 (en) 2015-07-29 2017-10-24 Ip Gem Group, Llc Nonvolatile memory system with read circuit for performing reads using threshold voltage shift read instruction
US10303571B2 (en) * 2015-11-04 2019-05-28 Intel Corporation Data recovery in memory devices
US9886214B2 (en) 2015-12-11 2018-02-06 Ip Gem Group, Llc Nonvolatile memory system with erase suspend circuit and method for erase suspend management
US9892794B2 (en) * 2016-01-04 2018-02-13 Ip Gem Group, Llc Method and apparatus with program suspend using test mode
US9899092B2 (en) 2016-01-27 2018-02-20 Ip Gem Group, Llc Nonvolatile memory system with program step manager and method for program step management
US10395754B2 (en) * 2016-03-21 2019-08-27 Nandext Srl Method for decoding bits in a solid state drive, and related solid state drive
TWI575533B (zh) * 2016-04-18 2017-03-21 群聯電子股份有限公司 資料校正方法、記憶體控制電路單元與記憶體儲存裝置
CN109074851B (zh) * 2016-05-02 2023-09-22 英特尔公司 利用额外系统位的内部错误校验和校正(ecc)
US10067827B2 (en) * 2016-06-29 2018-09-04 Micron Technology, Inc. Error correction code event detection
US10157677B2 (en) 2016-07-28 2018-12-18 Ip Gem Group, Llc Background reference positioning and local reference positioning using threshold voltage shift read
US10291263B2 (en) 2016-07-28 2019-05-14 Ip Gem Group, Llc Auto-learning log likelihood ratio
US10236915B2 (en) 2016-07-29 2019-03-19 Microsemi Solutions (U.S.), Inc. Variable T BCH encoding
DE102016115272A1 (de) * 2016-08-17 2018-02-22 Infineon Technologies Ag Speicher mit unterschiedlichen zuverlässigkeiten
US9691492B1 (en) * 2016-09-29 2017-06-27 Intel Corporation Determination of demarcation voltage for managing drift in non-volatile memory devices
US20180121287A1 (en) * 2016-11-01 2018-05-03 Nvidia Corporation Inline error detection and correction techniques
US10140040B1 (en) 2017-05-25 2018-11-27 Micron Technology, Inc. Memory device with dynamic program-verify voltage calibration
US10402272B2 (en) * 2017-05-25 2019-09-03 Micron Technology, Inc. Memory device with dynamic programming calibration
US10535415B2 (en) * 2017-11-03 2020-01-14 Micron Technology, Inc. Trim setting determination for a memory device
US10649656B2 (en) 2017-12-28 2020-05-12 Micron Technology, Inc. Techniques to update a trim parameter in non-volatile memory
US11068186B2 (en) * 2018-02-09 2021-07-20 Micron Technology, Inc. Providing recovered data to a new memory cell at a memory sub-system based on an unsuccessful error correction operation
CN110471788B (zh) * 2018-05-08 2024-03-15 美光科技公司 异步功率损耗影响的数据结构
US10990466B2 (en) * 2018-06-20 2021-04-27 Micron Technology, Inc. Memory sub-system with dynamic calibration using component-based function(s)
CN110910938A (zh) * 2018-09-17 2020-03-24 北京兆易创新科技股份有限公司 一种数据纠正方法、装置、存储设备及存储介质
DE102018124296A1 (de) * 2018-10-02 2020-04-02 Infineon Technologies Ag Kompensation von lesefehlern
US11514174B2 (en) * 2019-01-23 2022-11-29 Micron Technology, Inc. Memory devices with cryptographic components
WO2020251708A1 (en) * 2019-06-14 2020-12-17 Micron Technology, Inc. Memory management and erasure decoding for a memory device
US11301320B2 (en) 2020-04-03 2022-04-12 Micron Technology, Inc. Erasure decoding for a memory device
US10984847B2 (en) 2019-06-14 2021-04-20 Micron Technology, Inc. Memory management for charge leakage in a memory device
US11200118B2 (en) 2019-08-29 2021-12-14 Micron Technology, Inc. Semiconductor device with modified command and associated methods and systems
US11042436B2 (en) 2019-08-29 2021-06-22 Micron Technology, Inc. Semiconductor device with modified access and associated methods and systems
US10963336B2 (en) * 2019-08-29 2021-03-30 Micron Technology, Inc. Semiconductor device with user defined operations and associated methods and systems
US11056199B2 (en) * 2019-10-30 2021-07-06 International Business Machines Corporation Updating corrective read voltage offsets in non-volatile random access memory
US11693732B2 (en) * 2019-12-31 2023-07-04 Micron Technology, Inc. Cryptographic data integrity protection
DE102020133713A1 (de) * 2020-02-27 2021-09-02 Taiwan Semiconductor Manufacturing Co., Ltd. Speicheraktualisierung
US11288160B2 (en) 2020-08-17 2022-03-29 Micron Technology, Inc. Threshold voltage distribution adjustment for buffer
JP2022051179A (ja) 2020-09-18 2022-03-31 キオクシア株式会社 記憶装置及びリード方法
US11604601B2 (en) * 2020-10-12 2023-03-14 Micron Technology, Inc. Trim value loading management in a memory sub-system
US11789817B2 (en) * 2021-04-26 2023-10-17 Micron Technology, Inc. Error correction for internal read operations
US11907580B2 (en) * 2021-12-22 2024-02-20 Micron Technology, Inc. Corrective read of a memory device with reduced latency

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5532962A (en) * 1992-05-20 1996-07-02 Sandisk Corporation Soft errors handling in EEPROM devices
KR20080059461A (ko) * 2005-10-25 2008-06-27 샌디스크 아이엘 엘티디 플래시 메모리에서의 오류 복구 방법
KR20090025631A (ko) * 2007-09-06 2009-03-11 삼성전자주식회사 멀티-비트 데이터를 저장하는 메모리 시스템 및 그것의읽기 방법

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5909449A (en) * 1997-09-08 1999-06-01 Invox Technology Multibit-per-cell non-volatile memory with error detection and correction
US7012835B2 (en) 2003-10-03 2006-03-14 Sandisk Corporation Flash memory data correction and scrub techniques
US7447847B2 (en) 2004-07-19 2008-11-04 Micron Technology, Inc. Memory device trims
US7523381B2 (en) * 2005-09-01 2009-04-21 Micron Technology, Inc. Non-volatile memory with error detection
US7639542B2 (en) * 2006-05-15 2009-12-29 Apple Inc. Maintenance operations for multi-level data storage cells
US7551486B2 (en) * 2006-05-15 2009-06-23 Apple Inc. Iterative memory cell charging based on reference cell value
CN101601094B (zh) * 2006-10-30 2013-03-27 苹果公司 使用多个门限读取存储单元的方法
US7975192B2 (en) * 2006-10-30 2011-07-05 Anobit Technologies Ltd. Reading memory cells using multiple thresholds
US8060798B2 (en) 2007-07-19 2011-11-15 Micron Technology, Inc. Refresh of non-volatile memory cells based on fatigue conditions
US7770079B2 (en) 2007-08-22 2010-08-03 Micron Technology Inc. Error scanning in flash memory
US7882314B2 (en) 2007-09-07 2011-02-01 International Business Machines Corporation Efficient scheduling of background scrub commands
US7633798B2 (en) * 2007-11-21 2009-12-15 Micron Technology, Inc. M+N bit programming and M+L bit read for M bit memory cells
KR101406279B1 (ko) 2007-12-20 2014-06-13 삼성전자주식회사 반도체 메모리 장치 및 그것의 읽기 페일 분석 방법
KR101506655B1 (ko) * 2008-05-15 2015-03-30 삼성전자주식회사 메모리 장치 및 메모리 데이터 오류 관리 방법
US8737129B2 (en) * 2008-11-14 2014-05-27 Samsung Electronics Co., Ltd. Nonvolatile memory device and read method thereof
KR101490426B1 (ko) * 2008-11-14 2015-02-06 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 읽기 방법
US7787307B2 (en) * 2008-12-08 2010-08-31 Micron Technology, Inc. Memory cell shift estimation method and apparatus
US8555143B2 (en) 2008-12-22 2013-10-08 Industrial Technology Research Institute Flash memory controller and the method thereof
US20100174845A1 (en) * 2009-01-05 2010-07-08 Sergey Anatolievich Gorobets Wear Leveling for Non-Volatile Memories: Maintenance of Experience Count and Passive Techniques
US8775865B2 (en) 2009-06-24 2014-07-08 Headway Technologies, Inc. Method and apparatus for scrubbing accumulated disturb data errors in an array of SMT MRAM memory cells including rewriting reference bits
US8407564B2 (en) * 2009-07-15 2013-03-26 Intel Corporation Prediction and cancellation of systematic noise sources in non-volatile memory
US8572455B2 (en) * 2009-08-24 2013-10-29 International Business Machines Corporation Systems and methods to respond to error detection
JP5349256B2 (ja) 2009-11-06 2013-11-20 株式会社東芝 メモリシステム
JP5495885B2 (ja) * 2010-03-26 2014-05-21 三菱電機株式会社 データ記憶装置
US8295095B2 (en) 2010-04-20 2012-10-23 Micron Technology, Inc. Programming methods for a memory device
JP5467270B2 (ja) 2010-04-28 2014-04-09 国立大学法人 東京大学 データ入出力制御装置および半導体記憶装置システム
US8484542B2 (en) 2011-02-08 2013-07-09 Sandisk Technologies Inc. Data recovery using additional error correction coding data
US8935466B2 (en) 2011-03-28 2015-01-13 SMART Storage Systems, Inc. Data storage system with non-volatile memory and method of operation thereof
US8510636B2 (en) 2011-04-01 2013-08-13 Intel Corporation Dynamic read channel calibration for non-volatile memory devices
US8775901B2 (en) 2011-07-28 2014-07-08 SanDisk Technologies, Inc. Data recovery for defective word lines during programming of non-volatile memory arrays
US9047210B2 (en) * 2011-09-15 2015-06-02 Sandisk Technologies Inc. Data storage device and method to correct bit values using multiple read voltages
US9146856B2 (en) 2012-04-10 2015-09-29 Micron Technology, Inc. Remapping and compacting in a memory device
US8861269B2 (en) * 2013-03-05 2014-10-14 Sandisk Technologies Inc. Internal data load for non-volatile storage

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5532962A (en) * 1992-05-20 1996-07-02 Sandisk Corporation Soft errors handling in EEPROM devices
KR20080059461A (ko) * 2005-10-25 2008-06-27 샌디스크 아이엘 엘티디 플래시 메모리에서의 오류 복구 방법
KR20090025631A (ko) * 2007-09-06 2009-03-11 삼성전자주식회사 멀티-비트 데이터를 저장하는 메모리 시스템 및 그것의읽기 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10671478B2 (en) 2016-11-28 2020-06-02 Samsung Electronics Co., Ltd. Scrubbing controllers of semiconductor memory devices, semiconductor memory devices and methods of operating the same

Also Published As

Publication number Publication date
TWI574277B (zh) 2017-03-11
CN105144302B (zh) 2018-01-12
EP2973588A4 (en) 2017-04-12
US20140281808A1 (en) 2014-09-18
US9367391B2 (en) 2016-06-14
TW201503152A (zh) 2015-01-16
EP2973588B1 (en) 2020-09-16
WO2014152627A2 (en) 2014-09-25
KR101665280B1 (ko) 2016-10-11
WO2014152627A3 (en) 2014-11-13
JP6127200B2 (ja) 2017-05-10
CN105144302A (zh) 2015-12-09
EP2973588A2 (en) 2016-01-20
JP2016517609A (ja) 2016-06-16

Similar Documents

Publication Publication Date Title
KR101665280B1 (ko) 메모리 디바이스에서의 에러 정정 동작들
US10891187B2 (en) Memory devices having differently configured blocks of memory cells
US8358538B2 (en) Erase cycle counter usage in a memory device
KR101979734B1 (ko) 메모리 장치의 독출 전압 제어 방법 및 이를 이용한 데이터 독출 방법
JP6725375B2 (ja) メモリシステムおよび方法
KR101378602B1 (ko) 메모리 장치 및 메모리 프로그래밍 방법
WO2013016393A1 (en) Data recovery for defective word lines during programming of non-volatile memory arrays
KR20110092091A (ko) 플래시 메모리 장치 및 그것의 읽기 방법
US11145357B2 (en) Memory system, memory controller and method for operating memory system
JP7353889B2 (ja) メモリシステムおよび方法
KR20210079555A (ko) 메모리 시스템, 메모리 컨트롤러 및 메모리 시스템의 동작 방법
KR20090083204A (ko) 메모리 장치 및 메모리 데이터 읽기 방법
CN109215716B (zh) 提高nand型浮栅存储器可靠性的方法及装置
CN113806254B (zh) 存储器系统、存储器控制器及存储器系统的操作方法
US20230387941A1 (en) Controller and operating method thereof for determining reliability data based on syndrome weight
US20230289260A1 (en) Controller and operating method of the controller for determining reliability data based on syndrome weight

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: 20190924

Year of fee payment: 4