KR102440704B1 - 예측 메모리 관리 - Google Patents

예측 메모리 관리 Download PDF

Info

Publication number
KR102440704B1
KR102440704B1 KR1020227001795A KR20227001795A KR102440704B1 KR 102440704 B1 KR102440704 B1 KR 102440704B1 KR 1020227001795 A KR1020227001795 A KR 1020227001795A KR 20227001795 A KR20227001795 A KR 20227001795A KR 102440704 B1 KR102440704 B1 KR 102440704B1
Authority
KR
South Korea
Prior art keywords
error correction
data
controller
physical address
latency information
Prior art date
Application number
KR1020227001795A
Other languages
English (en)
Other versions
KR20220013008A (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 KR20220013008A publication Critical patent/KR20220013008A/ko
Application granted granted Critical
Publication of KR102440704B1 publication Critical patent/KR102440704B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0617Improving the reliability of storage systems in relation to availability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0632Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • 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/24Bit-line control circuits

Abstract

예측 메모리 관리와 관련된 시스템들, 장치들, 및 방법들이 설명된다. 에러 동작 동작들은 메모리 시스템 상에서 수행될 수 있으며 데이터에 대해 다양한 에러 정정 기법들을 수행하는 것과 연관된 레이턴시를 포함할 수 있고, 그 레이턴시 정보에 기초하여 데이터를 저장하는 데 사용되는 물리적 어드레스들의 강건성이 예측될 수 있다. 일 예에서, 방법은 제어기에 의해, 제어기에 의해 수신된 데이터에 대해 수행된 하나 이상의 에러 정정 동작에 대응하는 레이턴시 정보를 결정하는 단계, 및 레이턴시 정보에 기초하여, 데이터에 대응하는 물리적 어드레스 위치들의 강건성에 대응하여 부여하는 단계, 및 데이터에 대응하는 복수의 물리적 어드레스 위치들의 강건성에 대응하는 정보에 적어도 부분적으로 기초하여 물리적 어드레스 위치들과 연관된 액션을 취하는 단계를 포함할 수 있다.

Description

예측 메모리 관리
본 개시는 일반적으로 반도체 메모리 및 방법들, 그리고 더 구체적으로는, 예측 메모리 관리를 위한 장치들, 시스템들, 및 방법들에 관한 것이다.
메모리 디바이스들은 통상적으로 컴퓨터들 또는 다른 전자 시스템들에 내부, 반도체, 집적 회로들로서 제공된다. 휘발성 및 비휘발성 메모리를 비롯한 메모리의 많은 상이한 유형들이 있다. 휘발성 메모리는 자신의 데이터(예를 들어, 호스트 데이터, 에러 데이터 등)를 유지하는 데 전력을 필요로 할 수 있고, 다른 것들 중에서도, 랜덤 액세스 메모리(RAM), 동적 랜덤 액세스 메모리(DRAM), 정적 랜덤 액세스 메모리(SRAM), 동기식 동적 랜덤 액세스 메모리(SDRAM), 및 사이리스터 랜덤 액세스 메모리(TRAM)를 포함한다. 비휘발성 메모리는 전력이 공급되지 않을 때 저장된 데이터를 유지함으로써 영구 데이터를 제공할 수 있고, 다른 것들 중에서도, NAND 플래시 메모리, NOR 플래시 메모리, 가변 메모리 이를테면 상 변화 랜덤 액세스 메모리(PCRAM), 저항 랜덤 액세스 메모리(RRAM) 및 자기 랜덤 액세스 메모리(MRAM), 이를테면 회전 토크 전달 랜덤 액세스 메모리(STT RAM)를 포함할 수 있다.
메모리 디바이스들은 컴퓨터 또는 전자 시스템이 동작하는 동안 호스트에 의해 사용하기 위한 데이터, 커맨드들, 및/또는 명령어들을 저장하기 위해 호스트(예를 들어, 호스트 컴퓨팅 디바이스)에 커플링될 수 있다. 예를 들어, 데이터, 커맨드들, 및/또는 명령어들은 컴퓨팅 또는 다른 전자 시스템의 동작 동안 호스트와 메모리 디바이스(들) 사이에서 전달될 수 있다.
도 1은 본 개시의 다수의 실시예들에 따른 메모리 시스템을 포함하는 장치를 포함하는 컴퓨팅 시스템 형태의 기능 블록도이다.
도 2a는 본 개시의 다수의 실시예들에 따른 에러 정정 구성요소를 포함하는 장치 형태의 기능 블록도이다.
도 2b는 본 개시의 다수의 실시예들에 따른 에러 정정 구성요소를 포함하는 장치 형태의 또 다른 기능 블록도이다.
도 3은 본 개시의 다수의 실시예들에 따른 예시적인 데이터 및 예측 메모리 관리 동작을 나타내는 흐름도이다.
도 4는 본 개시의 다수의 실시예들에 따른 예측 메모리 관리 동작들을 나타내는 흐름도이다.
도 5는 본 개시의 다수의 실시예들에 따른 예측 메모리 관리를 위한 예시적인 방법을 나타내는 흐름도이다.
도 6은 본 개시의 다수의 실시예들에 따른 예측 메모리 관리를 위한 또 다른 예시적인 방법을 나타내는 흐름도이다.
예측 메모리 관리와 관련된 시스템들, 장치들, 및 방법들이 설명된다. 메모리 시스템 상에서 에러 정정 동작들이 수행될 수 있다. 에러 정정 동작들로부터 얻어지는 레이턴시 정보는 메모리 시스템에 데이터를 저장하는 데 사용되는 물리적 어드레스들의 강건성을 예측하는 데 사용될 수 있다. 예를 들어, 데이터에 대해 다수의 티어들 및/또는 레벨들의 에러 정정이 각 티어 및/또는 레벨에서 이용되는 에러 정정의 특성들에 기초하여 수행될 수 있다. 하나의 이러한 특성은 데이터에 대해 다양한 에러 정정 기법들을 수행하는 것과 연관된 레이턴시를 포함할 수 있고, 그 레이턴시 정보에 기초하여 데이터를 저장하는 데 사용되는 물리적 어드레스들의 강건성이 예측될 수 있다. 일 예에서, 방법은 제어기에 의해, 제어기에 의해 수신된 데이터에 대해 수행된 하나 이상의 에러 정정 동작에 대응하는 레이턴시 정보를 결정하는 단계, 및 레이턴시 정보에 기초하여, 데이터에 대응하는 물리적 어드레스 위치들의 강건성에 대응하여 부여하는 단계, 및 데이터에 대응하는 복수의 물리적 어드레스 위치들의 강건성에 대응하는 정보에 적어도 부분적으로 기초하여 물리적 어드레스 위치들과 연관된 액션을 취하는 단계를 포함할 수 있다.
플래시 메모리 디바이스들과 같은 메모리 디바이스들은 컴퓨팅 시스템에 데이터를 저장하는 데 사용될 수 있고, 이러한 데이터를 컴퓨팅 시스템과 연관된 호스트 사이에서 전달할 수 있다. 메모리 디바이스에 저장된 데이터는 컴퓨팅 시스템의 동작에 중요하거나 또는 결정적일 수도 있다. 플래시 메모리 디바이스들은 광범위한 전자 기기들에 비휘발성 메모리로서 이용된다. 플래시 메모리 디바이스들은 통상적으로 메모리 밀도를 높이고, 신뢰성을 높이며, 전력 소비를 낮출 수 있는 1-트랜지스터 메모리 셀을 사용한다. 메모리 디바이스에 저장된 데이터는 에러 정정 로직을 사용하여 정정 가능한 에러들을 포함할 수 있다. 때때로 데이터에서의 에러는 정정 불가능하고 정정 불가능한 에러를 호스트에 보고하는 것이 회피되어야 한다.
플래시 메모리 어레이 아키텍처들의 두 가지의 공통 유형들은 "NAND" 및 "NOR" 아키텍처들 - 각각의 기본 메모리 셀 구성이 배열되는 논리적 형태에 대해 명명됨 - 이다. NOR 어레이 아키텍처에서, 메모리 어레이의 플로팅 게이트 메모리 셀들은 통상적으로 매트릭스로 배열된다.
어레이 매트릭스의 각 플로팅 게이트 메모리 셀의 게이트들은 통상적으로 로우들에 의해 워드 선택 라인들에 커플링되고, 이들의 드레인들은 컬럼 비트 라인들에 커플링된다. NOR 아키텍처 플로팅 게이트 메모리 어레이는 자신들의 게이트들에 커플링된 워드 선택 라인을 선택함으로써 플로팅 게이트 메모리 셀들의 로우를 활성화하는 로우 디코더에 의해 액세스된다. 그 다음, 선택된 메모리 셀들의 로우는 특정 셀이 프로그래밍된 상태에 있는지 또는 삭제된 상태에 있는지에 따라 상이한 전류들을 흐르게 함으로써 컬럼 비트 라인들 상에 자신들의 데이터 값들을 배치한다.
NAND 어레이 아키텍처는 또한, 어레이의 각 플로팅 게이트 메모리 셀의 게이트들이 로우들에 의해 워드 선택 라인들에 커플링되도록 플로팅 게이트 메모리 셀들의 어레이를 매트릭스로 배열한다. 그러나, 각 메모리 셀은 자신의 드레인에 의해 컬럼 비트 라인에 직접 커플링되지 않는다. 대신, 어레이의 메모리 셀들은 소스 라인과 컬럼 비트 라인 사이에 소스 대 드레인으로 직렬로 함께 커플링된다.
NAND 어레이 아키텍처에서의 메모리 셀들은 예를 들어, 목적하는 상태로 프로그래밍되도록 구성될 수 있다. 즉, 셀을 다수의 저장된 상태들로 만들기 위해 전하가 메모리 셀의 플로팅 게이트 상에 배치되거나 그로부터 제거될 수 있다. 예를 들어, 단일 레벨 셀(SLC)은 두 개의 이진 상태들, 예를 들어, 1 또는 0을 나타낼 수 있다. 플래시 메모리 셀들은 또한, 둘보다 많은 이진 상태들, 예를 들어, 00, 01, 10, 또는 11을 저장할 수도 있다. 이러한 셀들은 다중 상태 메모리 셀들, 다중 비트 셀들, 또는 다중 레벨 셀들(MLC들)로서 지칭될 수 있다. MLC들은 각 셀이 하나보다 많은 비트를 나타낼 수 있기 때문에 메모리 셀들의 수를 증가시키지 않고도 보다 높은 밀도의 메모리들의 제조를 가능하게 할 수 있다. MLC들은 하나보다 많은 프로그래밍된 상태를 가질 수 있는데, 예를 들어, 2 비트를 나타낼 수 있는 셀은 세 개의 프로그래밍된 상태들 및 삭제된 상태를 가질 수 있다.
메모리 셀들의 판독은 메모리 셀의 강건성을 결정하기 위해, 제어 게이트 및 드레인에 적절한 전압을 인가하고, 드레인 대 소스 전류 - 이는 셀의 전압 임계치(Vt)를 나타낼 수 있음 - 를 기준 전류, 예를 들어, "트립점(trip point)"과 비교함으로써 이루어질 수 있다. 예시적인 데이터 판독 동작에서, 선택된 워드 라인에, 예를 들어, 선택된 워드 라인 내의 셀 또는 셀들의 제어 게이트에 0 볼트가 인가될 수 있다. 선택되지 않은 워드 라인들, 예를 들어, 선택되지 않은 워드 라인들 내의 셀들의 제어 게이트들에는 약 5 볼트의 판독 패스 전압이 인가될 수 있다. 선택된 워드 라인 상의 셀들을 통해 흐르는 드레인 대 소스 전류, 예를 들어, "셀 전류" 또는 "드레인 전류"는 셀의 이진 논리 강건성을 나타낸다.
특정 메모리 셀의 셀 전류가 트립점을 초과할 때, 메모리 셀은 특정 강건성, 예를 들어, 삭제된 강건성 또는 프로그래밍된 강건성을 갖는 것으로서 판독된다. 특정 메모리 셀의 셀 전류가 트립점 미만일 때, 메모리 셀은 상이한 강건성을 갖는 것으로서 판독된다. 이에 따라, 메모리 셀의 목적하는 구성 강건성, 예를 들어, 00, 01, 10, 또는 11은 셀 전류가 트립점을 초과하는지 또는 트립점 미만인지에 따라 달라진다.
자신들이 목적하는/예상되는 구성 강건성, 예를 들어, 프로그래밍되었던 강건성 이외의 강건성을 갖는 메모리 셀들은 판독되는 데이터에서의 데이터 에러들을 나타낸다. 많은 메모리 디바이스들은 데이터, 예를 들어, 부정확한 강건성들을 갖는 셀들에서 비트 에러들을 검출하기 위해 정정 코드(ECC) 검사와 같은 에러 검사 기법을 채용한다. ECC 기법들은 셀들의 그룹들, 예를 들어, 메모리 블록들, 메모리 세그먼트들, 또는 메모리 섹터들과 연관될 수 있고, 비트 에러들을 검출하고 가능하게는 정정함으로써 판독 장애들을 감소시킬 수 있다. ECC 기법들의 예들은 특히, 해밍 코드들, 리드-솔로몬(RS) 코드들, BCH(Bose-Chaudhuri-Hochquenghem) 코드들, 순환 중복 검사(circular redundancy check, CRC) 코드들, 골레이(Golay) 코드들, 리드-멀러(Reed-Muller) 코드들, Goppa 코드들, 이웃 셀 지원 에러 정정 코드들, 저밀도 패리티 검사 코드(low density parity check, LDPC) 에러 정정 코드들, 및 데니스턴(Denniston) 코드들을 포함한다.
판독 장애들은 액세스되는 데이터 비트들, 예를 들어, 프로세서에 의해 검색된 정보를 나타내는 메모리 셀들이 부정확한 강건성들을 가질 때, 그리고/또는 데이터와 연관된 물리적 어드레스들이 마모되거나, 그 외 정확하게 동작하지 않을 때 발생한다. 판독 장애들을 감소시키는 것은 메모리 디바이스들 및/또는 시스템들의 동작 신뢰성을 증가시킨다. 에러 검사/정정 기법들은 일부 잘못된 비트들을 정정할 수 없을 수 있다. 정정 불가능한 에러를 포함하는 데이터는 호스트에서 장해를 야기, 자원들을 낭비, 및/또는 장애를 야기할 수 있으므로, 이러한 이유들로, 정정 불가능한 에러를 갖는 데이터를 전송하는 것이 회피되어야 한다. 또한, 많은 에러 검사 기법들이 반복될 때에도, 데이터에 성공적으로 적용되지 못할 수 있고, 정정 불가능한 에러를 갖는 데이터가 호스트에 전송될 수 있다.
일부 접근법들에서, 이들 및 다른 에러 검사 기법들은 예를 들어, 메모리 디바이스 상에 위치된 제어기에 의해 메모리 디바이스 상에서 수행된다. 메모리 디바이스 제어기는 메모리 디바이스(예를 들어, 메모리 디바이스의 메모리 셀들, 블록들, 섹터들 등)에 밀착 커플링되는 비휘발성 메모리 익스프레스(NVMe) 제어기와 같은 매체 제어기일 수 있다.
그 결과, (예를 들어, 메모리 디바이스 상에 상주하는 제어기 또는 다른 회로부를 사용하여) 메모리 디바이스 상에서 에러 정정이 수행되는 접근법들에서, 데이터는 여러 번 판독될 수 있고, 에러가 검출되고 정정 불가능할 수 있다. 달리 말하면, 데이터에 존재하는 잘못된 비트들은 정확하게 정정되지 않을 수 있으며, 이는 부정확한 데이터가 호스트에 제공되게 하거나, 일부 경우들에서, 컴퓨팅 시스템의 장애을 야기할 수 있다. 본원에서 사용될 때, 용어 "~ 상에 상주하는(resident on)"은 특정 구성요소 상에 물리적으로 위치되는 것을 지칭한다. 예를 들어, 메모리 디바이스 "상에 상주하여" 수행되는 에러 정정은 에러 정정이 메모리 디바이스 상에서 물리적으로 수행되는 조건을 지칭한다. 용어 "~ 상에 상주하는"은 본원에서 "~ 상에 배치된" 또는 "~ 상에 위치된"과 같은 다른 용어들과 서로 바꿔 사용될 수 있다.
메모리 디바이스들의 저장 용량이 증가함에 따라, 이러한 효과들은 점점 더 많은 데이터가 메모리 디바이스에 의해 저장될 수 있기 때문에 더 현저해질 수 있으며, 이에 의해 데이터에 도입되는 잘못된 비트들의 양을 증가시킨다. 이러한 효과들은 특히 메모리 디바이스들에 저장된 데이터의 양 및 데이터 검색이 예상되는 속도와 같이, 상술된 메모리 디바이스들 상에서 제공되는 에러 정정에 대한 일부 접근법들의 한계들에 의해 더 악화될 수 있다. 대조적으로, 본원의 실시예들은 데이터가 저장되는 물리적 위치들에 대응하는 마모량을 예측함으로써, 에러들을 포함하는 데이터, 또는 에러들을 포함할 가능성이 있는 데이터의 전파를 완화시키는 것에 관한 것이다. 데이터에 대한 마모량의 예측은 에러 정정 동작들로부터 얻어지는 레이턴시 정보에 적어도 부분적으로 기초할 수 있다. 정정 불가능한 에러가 식별되고/거나, 데이터의 예측된 마모가 정정 불가능한 에러(또는 메모리 디바이스의 특정 물리적 어드레스 공간들과 연관된 데이터가 정정 불가능한 에러들의 임계 수량보다 더 많이 포함할 수 있다는 높아진 가능성)를 나타낼 때, 제어기는 데이터가 복구될 수 없기 전에 보존될 수 있도록 호스트에 나타낼 수 있다(예를 들어, 알릴 수 있다). 본원에서 설명되는 동작들의 수행을 가능하게 하기 위해, 메모리 디바이스는 메모리 디바이스로부터 수신된 데이터에 대해 에러 정정 동작들을 수행하기 위해 에러 정정 구성요소의 형태로 특수화된 회로(예를 들어, 하드웨어, 로직, 집적 회로들 등)를 포함할 수 있다. 예를 들어, 일부 실시예들에서, 다수의 레벨들의 에러 정정 로직이 메모리 디바이스의 제어기 상에 상주하는 에러 정정 구성요소에 포함될 수 있다. 다수의 레벨들의 에러 정정은 메모리 디바이스에 의해 데이터에 대해 수행될 수 있고, 데이터가 액세스되었던 물리적 어드레스 공간에 대응하는 마모량을 예측하기 위해 각 에러 정정 동작이 수행된 후에 레이턴시 정보가 결정될 수 있다.
본원의 실시예들은 데이터에 대해 수행되는 한 번 이상의 판독 및/또는 에러 정정 반복들에 기초하여 판독 레이턴시들이 결정될 수 있게 할 수 있다. 각 판독 레이턴시는 잔류 비트 에러율(RBER)과 연관되고, 에러 정정 동작의 각 반복은 RBER을 비율로 감소시킨다. 그 결과, 일부 실시예들에서, 메모리 디바이스는 초기 에러 정정 로직을 사용하여 데이터에 대해 에러 정정 동작(들)을 수행할 수 있고, 결정된 판독 레이턴시들에 기초하여, 데이터에 대응하는 하나 이상의 물리적 어드레스 위치들과 연관된 액션을 취할 수 있다. 메모리 디바이스에 의해 취해지는 액션들은 데이터가 저장되었거나 저장되어 있는 물리적 어드레스 위치들에 대응하는 마모량을 예측하는 것, 물리적 어드레스 공간과 연관된 예측되는 마모량에 기초하여 물리적 어드레스 공간을 철회(retire)시키는 것, 데이터가 저장되었거나 저장되어 있는 물리적 어드레스 위치들에 대해 남은 데이터 전달 사이클들의 잔여 수량을 예측하는 것, 또는 이들의 조합을 포함할 수 있다. 판독 레이턴시들을 결정한 후에, 메모리 디바이스는 후속 에러 정정 로직을 사용하여 후속 에러 정정 동작들을 수행할 수 있다. 상이한 에러 정정 로직들을 사용하여 다수의 에러 정정 동작들을 수행함으로써, 데이터는 정정되거나, 정정 불가능인 것으로 결정될 수 있고, 이와 같이 호스트에 보고될 수 있다.
본원에서 사용될 때, "초기 에러 정정 동작들"은 어떠한 종류의 에러 정정 동작이 수행되지 않았던 원시 데이터에 대해 수행되는 에러 정정 동작들을 지칭한다. 초기 에러 정정의 다수의 반복들이 데이터에 대해 구현될 수 있다. 예를 들어, 초기 에러 정정 동작은 메모리 시스템 또는 메모리 디바이스의 저장 특성들의 속성의 결과로서 발생하는, 메모리 시스템 또는 메모리 디바이스에 의해 저장된 데이터에 대한 에러들을 정정하기 위한 동작을 포함할 수 있다. 초기 에러 정정 동작들은 후속 에러 정정 동작들과 구별되며, 여기서 데이터는 초기 에러 정정 동작의 수행에 후속하여 데이터에 존재할 수 있는 잔류 에러들(예를 들어, 검출 불가능한 및/또는 정정 불가능한 에러들)을 검출 또는 정정하기 위해 하나 이상의 후속 에러 정정 동작들을 초래한다.
일부 접근법들에서, 메모리 디바이스는 메모리 디바이스에 의한 에러 정정에 후속하여 데이터에 존재하는 검출 불가능한 및/또는 정정 불가능한 에러들을 검출 및/또는 정정하기 위한 동작들과 같은 후속하는 에러 정정 동작들을 수행할 수 있다. 후속 에러 정정 동작은 상이한 에러 정정 기법일 수 있고, 데이터 및/또는 데이터와 연관된 물리적 어드레스들의 강건성을 예측하기 위해 후속 에러 정정의 각 반복 후에 레이턴시 정보가 결정될 수 있다. 이러한 방식으로, 메모리 디바이스는 컴퓨팅 시스템을 통해 전파되는 정정 불가능한 에러들의 양을 최소화할 수 있고, 이에 의해 결정된 레이턴시들에 부분적으로 기초하여 액션을 취함으로써(예를 들어, 데이터에 대응하는 마모량을 예측함으로써) 호스트 디바이스에 보고되는 정정 불가능한 에러들의 양을 감소시킬 수 있다. 이러한 방식으로, 다수의 유형들의 에러 정정 기법들을 사용하여 에러가 정정될 수 있고, 데이터에 대응하는 정보의 강건성이 결정될 수 있다.
본 개시에 대한 하기의 상세한 설명에서, 본 개시의 일부를 형성하고, 본 개시의 하나 이상의 실시예가 어떻게 실시될 수 있는지 예로서 도시되는 첨부 도면들이 참조된다. 이러한 실시예들은 해당 기술분야의 통상의 기술자들이 본 개시의 실시예들을 실시할 수 있게 하기에 충분히 상세히 설명되고, 다른 실시예들이 이용될 수 있고, 프로세스, 전기적, 그리고 구조적 변경들이 본 개시의 범위에서 벗어나지 않고 이루어질 수 있는 것으로 이해되어야 한다.
본 출원에서 사용될 때, 특히 도면들에서의 참조 부호들에 대한 "N," "M," "P," "S," "R"등과 같은 지정자들은 그렇게 지정된 다수의 특정 피처가 포함될 수 있다는 것을 나타낸다. 또한, 본원에서 사용되는 용어는 특정 실시예들을 단지 설명하기 위한 것이며, 제한하려는 것이 아닌 것으로 이해되어야 한다. 본원에서 사용될 때, 단수 형태의 표현들은 문맥상 명확히 다르게 지시하지 않는 한, 단수 및 복수 대상들을 모두 포함할 수 있다. 또한, "다수의," "적어도 하나의," 및 "하나 이상의"(예를 들어, 다수의 메모리 디바이스들)는 하나 이상의 메모리 디바이스들을 지칭할 수있는 반면, "복수의"는 이러한 것들이 하나보다 많은 것을 나타내려는 것이다. 또한, "할 수 있다" 및 "할 수도 있다"라는 단어들은 본 출원 전반에 걸쳐 필수적 의미(즉, 해야하는)가 아니라, 허용적 의미(즉, ~할 가능성이 있는, ~를 할 수 있는)로 사용된다. "포함한다"라는 용어, 및 이의 파생어들은 "포함하지만, 이에 제한되지는 않는"을 의미한다. "커플링된(coupled)" 및 "커플링하는(coupling)"이라는 용어들은 상황에 적절하게, 커맨드들 및/또는 데이터에 대한 액세스 및 이들의 이동(전송)을 위해 또는 물리적으로 직접 또는 간접적으로 접속됨을 의미한다. "데이터"및 "데이터 값들"이라는 용어들은 본원에서 서로 바꿔 사용할 수 있으며 상황에 적절하게, 동일한 의미를 가질 수 있다.
본원에서의 도면들은 첫 번째 숫자 또는 숫자들이 도면 번호에 대응하고 나머지 숫자들이 도면에서의 요소 또는 구성요소를 식별하는 넘버링 규칙을 따른다. 상이한 도면들 간의 유사한 요소들 또는 구성요소들은 유사한 숫자들의 사용에 의해 식별될 수 있다. 예를 들어, 106은 도 1에서의 요소 "06"을 참조할 수 있고, 유사한 요소는 도 2에서 206으로서 참조될 수 있다. 그룹 또는 복수의 유사한 요소들 또는 구성요소들은 본원에서 단일 요소 번호로 총칭될 수 있다. 예를 들어, 복수의 참조 요소들(112-1, . . ., 112-P)(예를 들어, 112-1 내지 112-P)은 112로서 총칭될 수 있다. 이해될 바와 같이, 본 명세서에서의 다양한 실시예들에 도시된 요소들은 본 개시의 다수의 추가 실시예들을 제공하기 위해 추가, 교환, 및/또는 제거될 수 있다. 또한, 도면들에 제공된 요소들의 비율 및 상대적인 축척은 본 개시의 특정 실시예들을 예시하려는 것이고 제한적인 의미로 취해져서는 안 된다.
도 1은 본 개시의 다수의 실시예들에 따른 메모리 시스템(104)을 포함하는 장치를 포함하는 컴퓨팅 시스템(100) 형태의 기능 블록도이다. 본원에서 사용될 때, "장치"는 예를 들어, 회로 또는 회로들, 다이 또는 다이들, 모듈 또는 모듈들, 디바이스 또는 디바이스들, 또는 시스템 또는 시스템들과 같은 다양한 구조체들 또는 구조체들의 조합들 중 어느 하나를 지칭할 수 있지만, 이에 제한되지는 않는다. 메모리 시스템(104)은 예를 들어, 고체 강건성 드라이브(SSD)일 수 있고, 호스트 인터페이스(108), 버퍼(109), 제어기(110), 예를 들어, 프로세서 및/또는 다른 제어 회로부, 및 메모리 시스템(104)에 저장 볼륨을 제공하는 다수의 메모리 디바이스들(112-1 내지 112-P), 예를 들어, NAND 플래시 디바이스들과 같은 고체 강건성 메모리 디바이스들을 포함할 수 있다. 다수의 실시예들에서, 제어기(110), 메모리 디바이스(112-1 내지 112-P), 및/또는 호스트 인터페이스(108)는 단일 다이 상에 또는 단일 패키지, 예를 들어, 관리 NAND 애플리케이션 내에 물리적으로 위치될 수 있다. 또한, 다수의 실시예들에서, 메모리, 예를 들어, 메모리 디바이스들(112-1 내지 112-P)은 단일 메모리 디바이스를 포함할 수 있다.
도 1에 도시된 바와 같이, 제어기(110)는 하나 이상의 채널을 통해 호스트 인터페이스(108) 및 메모리 디바이스들(112-1 내지 112-P)에 커플링될 수 있고, 메모리 시스템(104)과 호스트(102) 사이에서 데이터를 전달하는 데 사용될 수 있다. 호스트 인터페이스(108)는 표준화된 인터페이스 형태일 수 있다. 예를 들어, 메모리 시스템(104)이 컴퓨팅 시스템(100)에서 데이터 저장에 사용될 때, 인터페이스(108)는 다른 물리적 연결기들 및 인터페이스들 중에서도, SATA(serial advanced technology attachment), PCIe(peripheral component interconnect express), 또는 USB(universal serial bus), DDR(double data rate) 인터페이스일 수 있다. 그러나, 일반적으로, 인터페이스(108)는 호스트 인터페이스(108)에 대해 호환 가능한 수용기들을 갖는 호스트(102)와 메모리 시스템(104) 사이에서 제어, 어드레스, 데이터, 및 다른 신호들을 전달하기 위한 인터페이스를 제공할 수 있다.
호스트(102)는 다양한 다른 유형들의 호스트들 중에서도, 개인용 랩탑 컴퓨터, 데스크탑 컴퓨터, 디지털 카메라, 모바일 전화, IoT(internet-of-things) 지원 디바이스, 또는 메모리 카드 리더, 그래픽 프로세싱 유닛(예를 들어, 비디오 카드)와 같은 호스트 시스템일 수 있다. 호스트(102)는 시스템 마더보드 및/또는 백플레인을 포함할 수 있고, 다수의 메모리 액세스 디바이스들, 예를 들어, 다수의 프로세싱 자원들(예를 들어, 하나 이상의 프로세서, 마이크로프로세서, 또는 몇몇 다른 유형의 제어 회로부)을 포함할 수 있다. 해당 기술분야의 통상의 기술자는 "프로세서"가 하나 이상의 프로세서, 이를테면 병렬 프로세싱 시스템, 다수의 보조 프로세서들 등을 의도할 수 있음을 이해할 것이다. 호스트(102)는 통신 채널(103)에 의해 메모리 시스템(104)의 호스트 인터페이스(108)에 커플링될 수 있다.
버퍼(109)는 메모리 시스템(104) 상에 포함될 수 있고, 데이터가 메모리 디바이스들(112-1 내지 112-P)로부터 제어기(110)로 이동되는 동안 데이터를 일시적으로 저장하는 데 사용되는 물리적 메모리 저장소의 일부분일 수 있다. 일부 실시예들에서, 호스트(102)는 메모리 시스템(104)을 포함하는 컴퓨팅 시스템(100)에 대한 운영 체제를 실행하는 것을 담당할 수 있다. 이에 따라, 일부 실시예들에서, 호스트(102)는 메모리 시스템(104)의 동작을 제어하는 것을 담당할 수 있다. 예를 들어, 호스트(102)는 스케줄링 작업들, 실행 애플리케이션들, 제어 주변 장치들 등과 같은 컴퓨팅 시스템(100)의 하드웨어를 관리하는 (예를 들어, 운영 체제 형태의) 명령어들을 실행할 수 있다.
컴퓨팅 시스템(100)은 별개의 집적 회로들을 포함할 수 있거나, 또는 호스트(102), 메모리 시스템(104), 에러 정정 구성요소(106), 버퍼(109), 호스트 인터페이스(108), 제어기(110), 및/또는 메모리 디바이스들(112-1 내지 112-P)이 동일한 집적 회로 상에 있을 수 있다. 컴퓨팅 시스템(100)은 예를 들어, 서버 시스템 및/또는 고성능 컴퓨팅(HPC) 시스템 및/또는 이의 일부분일 수 있다. 도 1에 도시된 예는 폰 노이만(Von Neumann) 아키텍처를 갖는 시스템을 도시하지만, 본 개시의 실시예들은 비-폰 노이만 아키텍처들 - 폰 노이만 아키텍처와 보통 연관된 하나 이상의 구성요소(예를 들어, CPU, ALU 등)를 포함하지 않을 수 있음 - 로 구현될 수 있다.
일부 접근법들에서, 메모리 시스템(104)(예를 들어, 제어기(110))은 에러 정정 코드(ECC)와 같은 하나 이상의 에러 검사 기법을 사용하여, 메모리 디바이스들(112-1 내지 112-P)에 저장된 데이터(예를 들어, 메모리 셀 및/또는 셀들의 그룹, 예를 들어, 데이터 워드, 또는 섹터)가 잘못되었는지, 예를 들어, 부정확한 강건성을 갖는지 여부를 결정할 수 있다. 잘못된 또는 부정확한 강건성은 그것이 프로그래밍되거나 기입되었던 강건성 이외의 메모리 셀의 강건성을 지칭할 수 있다. 예를 들어, 비휘발성 메모리 셀들은 특정 논리 강건성, 예를 들어, 1 또는 0으로 프로그래밍될 수 있고, 셀이 목적하는 정확한 강건성로 프로그래밍되었음을 확인하기 위해 프로그램 검증 동작을 거칠 수 있다. 이러한 접근법들에서, 잘못된 비트들이 검출되는 경우, 메모리 시스템(104)에 의해 데이터에 대해 에러 정정 동작들이 수행될 수 있다.
제어기(110)는 에러 정정 코드(ECC)와 같은 하나 이상의 에러 검사 기법을 사용하여, 메모리 디바이스들(112-1 내지 112-P)의 데이터(예를 들어, 메모리 셀 및/또는 셀들의 그룹, 예를 들어, 데이터 워드, 또는 섹터)가 잘못되었는지 여부를 결정할 수 있다 에러 정정 구성요소(106)를 포함할 수 있다. 에러 정정 구성요소(106)는 예를 들어, 메모리 시스템(104)으로부터 호스트(102)에 의해 수신된 데이터에 대해 에러 정정 동작들을 수행하기 위한 하드웨어 및/또는 펌웨어 형태의 다수의 구성요소들, 예를 들어, 하나 이상의 집적 회로, 및/또는 소프트웨어를 포함할 수 있다. 에러 정정 구성요소(106)는 본원에서 도 2와 관련하여 예시되고 설명되는 초기 ECC 로직(예를 들어, 인코딩 구성요소)(214) 및/또는 후속 ECC 로직(예를 들어, 인코딩 구성요소)(216)와 같은 하나 이상의 서브 구성요소를 포함할 수 있다.
에러 정정 구성요소(106)는 해밍 코드들, RS 코드들, BCH 코드들, CRC 코드들, 골레이 코드들, 리드-뮬러 코드들, Goppa 코드들, 이웃 셀 지원 에러 정정 코드들, LDPC 에러 정정 코드, 및 데니스턴 코드들과 같은 기법들, 및/또는 예를 들어, 메모리 디바이스들(112-1 내지 112-P)과 호스트(102) 사이에 전달되는 데이터에 대한 에러 정정을 가능하게 할 수 있는 다른 유형의 에러 정정 기법에 따라 에러 정정 동작들을 수행하기 위한 ECC 로직(예를 들어, 하드웨어 및/ 또는 펌웨어)을 포함할 수 있다.
일부 실시예들에서, 에러 정정 구성요소(106)는 버퍼(109)를 통해 메모리 디바이스들(112-1 내지 112-P)로부터 데이터를 수신할 수 있다. 데이터는 메모리 디바이스(112-1 내지 112-P)로부터 버퍼(109), 및 궁극적으로 에러 정정 구성요소(106)로 전달되기 전에 하나 이상의 ECC 기법에 따라 인코딩될 수 있다. 예를 들어, 제어기(110) 및/또는 메모리 디바이스(112-1 내지 112-P)는 일부 실시예들에서, 데이터를 에러 정정 구성요소(106)에 전달하기 전에 하나 이상의 ECC 기법에 따라 데이터를 인코딩할 수 있다. 에러 정정 구성요소(106)가 메모리 시스템(104)에 의해 하나 이상의 ECC 기법에 따라 사전에 인코딩된 데이터를 수신하는 경우, 에러 정정 구성요소(106)는 에러 정정 동작의 수행의 일부로서 하나 이상의 ECC 기법에 따라 데이터를 디코딩할 수 있다.
그러나, 실시예들은 이에 제한되지 않으며, 일부 실시예들에서, 에러 정정 구성요소(106)는 메모리 디바이스들(112-1 내지 112-P)로부터 인코딩되지 않은 데이터를 수신할 수 있고, 하나 이상의 ECC 기법에 따라 데이터를 인코딩 및/또는 후속하여 디코딩할 수 있다. 그 결과, 에러 정정 구성요소(106)는 컴퓨팅 시스템(100)에 대한 에러 정정 동작들 모두(또는 적어도 일부분)를 수행하는 것을 담당할 수 있다. 즉, 일부 실시예들에서, 데이터에 대한 에러 정정은 호스트(102) 상에 상주하는(예를 들어, 호스트(102)에 밀착 커플링된) 에러 정정 구성요소(106)에 의해 메모리 시스템(104)에 의해 수행될 수 있다.
예를 들어, 제어기(110)는 제1 타임스탬프 및/또는 제2 타임스탬프를 초기 타임스탬프와 비교함으로써 레이턴시 정보를 결정하고, 레이턴시 정보에 기초하여, 데이터에 대응하는 물리적 어드레스 위치들의 강건성에 대응하는 정보를 부여할 수 있다. 판독 레이턴시들은 RBER과 연관될 수 있고, 데이터 및/또는 데이터와 연관된 물리적 어드레스들의 의 강건성을 예측하기 위해 결정되고 사용될 수 있다. 일부 실시예들에서, 제어기(110)는 버퍼(109)를 통해 메모리 디바이스들(112-1 내지 112-P)로부터 수신된 데이터의 강건성을 모니터링할 수 있다. 데이터의 강건성은 데이터에 존재하는 에러들(예를 들어, 비트 플립 에러들, 정정 불가능한 에러들 등)의 양, 데이터에 대해 수행되는 에러 정정 동작들의 양, 및/또는 레이턴시 정보에 적어도 부분적으로 기초할 수 있는 물리적 어드레스 위치에 대해 남은 데이터 전달 사이클들의 예측되는 잔여 수량을 지칭할 수 있다. 제어기(110)는 제어기(110)에 의해 수행되는 에러 정정 동작들에 대응하는 타임스탬프들의 차이를 결정하는 것으로부터 레이턴시 정보를 결정할 수 있다. 레이턴시 정보는 각 에러 정정 동작 후에 결정될 수 있고, 물리적 어드레스 위치들의 강건성이 각 에러 정정 동작 후에 결정된 레이턴시 정보에 부분적으로 기초하여 결정될 수 있다.
제어기(110)는 버퍼(109)를 통해 메모리 디바이스들(112)에 커플링될 수 있다. 버퍼(109)는 데이터가 제어기에 의해 판독되기 전에 데이터에 대한 임시 저장 구성요소일 수 있다. 제어기(110)는 상주하는 에러 정정 구성요소(106)를 포함할 수 있고, 제어기(110)는 에러 정정 구성요소(106)를 사용하여 메모리 디바이스의 물리적 어드레스 위치들에 대응하는 데이터에 대한 초기 에러 정정 동작을 수행하도록 구성될 수 있다. 제어기는 에러 정정 동작들에 부여된 타임스탬프들에 기초하여 판독 레이턴시들을 결정할 수 있다. 예를 들어, 제어기(110)는 데이터가 초기에 판독될 때 초기 타임스탬프를 부여할 수 있고, 초기 에러 정정 동작에 제1 타임스탬프를 부여할 수 있으며, 에러 정정 구성요소(106) 상에 존재하는 에러 정정 로직을 사용하여, 후속 에러 정정 동작을 수행할 수 있다. 제어기(110)는 후속 에러 정정 동작에 제2 타임스탬프를 부여할 수 있다. 제어기는 제1 및 제2 타임스탬프에 적어도 부분적으로 기초하여, 초기 및 후속 에러 정정 동작들에 대응하는 레이턴시 정보를 결정할 수 있다.
결정된 레이턴시 정보에 기초하여, 제어기(110)는 데이터에 대응하는 물리적 어드레스 위치들의 강건성에 대응하는 정보에 적어도 부분적으로 기초하여 물리적 어드레스 위치들과 연관된 액션을 취할 수 있다. 일부 실시예들에서, 제어기(110)는 데이터에 대응하는 물리적 어드레스 위치에 대응하는 마모량을 예측하고, 예측되는 마모량에 부분적으로 기초하여, 데이터에 대응하는 물리적인 어드레스 위치를 철회시키는 것과 같은 액션을 취한다. 다른 실시예들에서, 제어기(110)는 레이턴시 정보에 적어도 부분적으로 기초하여, 물리적 어드레스 위치들에 대해 남은 데이터 전달 사이클들의 잔여 수량을 예측함으로써 액션을 취할 수 있다. 데이터 전달 사이클의 잔여 수량을 예측하는 것은 예측되는 데이터 전달 사이클들의 수량의 마지막 데이터 전달 사이클 다음에 물리적 어드레스 위치들을 철회시키는 것을 포함할 수 있다. 제어기(110)는 이러한 예측되는 강건성을 사용하여, 하나 이상의 판독 동작, 제1 레벨에 대응하는 ECC 로직을 사용한 에러 정정의 한 번 이상의 반복, 및/또는 후속 레벨의 에러 정정에 대응하는 ECC 로직을 사용한 에러 정정 동작들의 한 번 이상의 후속 반복을 개시할 수 있다.
제어기(110)는 데이터가 (제어기(110)에 커플링된) 버퍼(109)에 의해 수신되었다는/수신된다는 제어기(110)에 의한 결정에 응답하여 에러 정정 동작의 수행을 개시할 수 있다. 예를 들어, 데이터가 버퍼(109)로부터 수신되었다는 제어기(110)에 의한 결정에 응답하여, 제어기(110)는 초기 타임스탬프를 부여할 수 있고, 에러 정정 구성요소(106) 상에 상주하는 에러 정정 로직을 사용하여, 제1 레벨의 에러 정정을 제공하는 초기 에러 정정 동작을 수행하고 초기 에러 정정 동작에 제1 타임스탬프를 부여할 수 있다. 타임스탬프는 초기 타임스탬프(데이터가 제어기(110)에 의해 메모리 디바이스(112-1 내지 112-P) 및/또는 버퍼(110)로부터 수신되는 때)와 데이터가 제어기(110)에 의해 판독된 때 사이의 시구간일 수 있다. 제어기(110)에 의해 제1 타임스탬프로부터 결정되는 레이턴시 정보는 후속 에러 정정 동작을 수행할지 여부를 결정하는 데 사용될 수 있다.
상기한 예에서, 제어기(110)는 에러 정정 구성요소(106) 상에 상주하는 에러 정정 로직을 사용하여, 제1 레벨의 에러 정정에 대응하는 후속 에러 정정 동작을 수행할 수 있다. 제어기(110)는 후속 에러 정정 동작에 제2 타임스탬프를 부여할 수 있고, 제1 및/또는 제2 타임스탬프에 적어도 부분적으로 기초하여, 초기 및 후속 에러 정정 동작들에 대응하는 레이턴시 정보를 결정할 수 있다. 이러한 방법들을 사용하여, 제어기(110) 및/또는 에러 정정 구성요소(106)는 데이터가 정정 불가능한 에러를 갖는지, 정정될 데이터가 상이한 레벨의 에러 정정을 필요로 하는지를 결정할 수 있고/거나, 에러 정정 동작들을 겪고 있는 데이터와 연관된 물리적 어드레스 위치들의 강건성을 예측할 수 있다.
제어기(110)는 데이터와 연관된 물리적 어드레스 위치들의 강건성에 대응하는 정보가 물리적 어드레스 위치들 중 하나 이상이 후속 데이터 사이클들의 특정 수량 내에서 장애를 경험함을 나타낸다고 결정하도록; 그리고 물리적 어드레스 위치들 중 하나 이상이 부여된 강건성 정보의 후속 데이터 사이클들의 특정 수량 내에서 장애를 경험할 것이라는 결정된 가능성에 기초하여 복수의 물리적 어드레스 위치들을 철회시키도록 구성될 수 있다. 즉, 제어기(110)는 제2 레벨의 에러 정정을 제공하는 에러 정정 구성요소(106) 상에 상주하는 에러 정정 로직을 사용하여, 레이턴시 정보(예를 들어, 데이터의 예측되는 강건성)에 적어도 부분적으로 기초하여 상이한 에러 정정 동작을 수행할 수 있다.
언급된 바와 같이, 에러 정정 구성요소(106)는 에러 정정될 일부 데이터가 메모리 시스템(104)에 의해 저장된 다른 데이터와 상이한(예를 들어, 보다 상위 레벨의) 에러 정정을 필요로 한다고 결정할 수 있다. 예를 들어, 에러 정정 구성요소(106)는 데이터의 제1 유닛(예를 들어, 데이터의 블록, 섹터, 하나 이상의 코드워드, 데이터의 페이지 등과 같은 관리 유닛)이 컴퓨팅 시스템(100)의 성능에 결정적이고, 데이터의 제2 유닛이 컴퓨팅 시스템(100)의 성능에 덜 결정적이라고 결정할 수 있고, 이러한 결정 및 레이턴시 정보 및/또는 데이터와 연관된 물리적 어드레스들의 예측되는 강건성에 기초하여, 상이한 에러 정정 동작들을 수행할 수 있다.
본원에서 사용될 때, "관리 유닛"(managed unit, MU)은 함께 또는 기능 그룹으로서 프로그래밍되고/거나 판독되는 다수의 메모리 셀들을 총칭한다. 관리 유닛은 예를 들어, 4KB일 수 있는 논리 블록 크기(예를 들어, 호스트의 데이터 전달 크기 및/또는 메모리 시스템의 데이터 관리 크기)에 대응할 수 있다. 일 예로서, 관리 유닛은 메모리 셀들의 물리적 블록에 맵핑될 수 있다. 그러나, 실시예들은 이에 제한되지 않는다. 예를 들어, 관리 유닛은 사용자 데이터 및 오버헤드 데이터(예를 들어, 메모리 셀들의 그룹 내에 저장된 다른 데이터의 정보를 제공하는 데이터)를 저장하는 메모리 셀들의 그룹이 논리 블록 크기보다 많은 것에 대응할 때 논리 블록 크기보다 많은 것에 대응할 수 있다. 일 예로서, 오버헤드 데이터는 메타데이터, 에러 정정 코드(ECC) 데이터, 논리 블록 어드레스들(logical block address, LBA)의 데이터뿐만 아니라, 관리 유닛 상에서 수행되는 메모리 동작들과 연관된 카운터들(예를 들어, 판독/기입 카운터들)과 같은 데이터를 포함할 수 있을 것이다. 일부 실시예들에서, MU는 다수의 코드워드들을 포함할 수 있다. 본원에서 사용될 때, "코드워드"는 에러 정정 코드의 요소를 총칭한다. 코드워드는 일부 실시예들에서, 순환 중복 검사(CRC)로 보호되는 독립적으로 인코딩되는 데이터 블록일 수 있다.
에러 정정 구성요소(106)는 데이터의 제1 유닛에 보다 높은 에러 정정 우선순위를 부여할 수 있고, 데이터의 강건성을 부여하기 위해 레이턴시 정보의 결정에 응답하여 데이터의 제2 유닛에 대해 상이한 레벨들의 에러 정정 동작들을 수행할 수 있다. 데이터의 제2 유닛의 결정성에 따라, 이러한 예에서, 에러 정정 구성요소(106)는 데이터의 제1 유닛에 대한 에러 정정 동작의 수행에 후속하여 데이터의 제2 유닛에 대해 에러 정정 동작을 수행할 수 있거나, 또는 에러 정정 구성요소(106)는 예를 들어, 데이터의 제1 유닛에 대한 에러 정정 동작의 수행과 병행하여 데이터의 제2 유닛에 대한 에러 정정 동작을 수행할 것을 메모리 디바이스(104)에 지시할 수 있다.
일부 예들에서, 제1 레벨의 에러 정정 및 제2 레벨의 에러 정정은 상이할 수 있다. 예를 들어, 에러 정정 구성요소(106)는 해밍 코드들, RS 코드들, BCH 코드들, CRC 코드들, 골레이 코드들, 리드-뮬러 코드들, Goppa 코드들, 이웃 셀 지원 에러 정정 코드들, LDPC 에러 정정 코드, 및 데니스턴 코드들과 같은 기법들, 및/또는 예를 들어, 다른 유형의 에러 정정 기법, 또는 이들의 조합들에 따라 다수의 레벨들의 에러 정정 동작들을 수행하기 위한 ECC 로직(예를 들어, 하드웨어 및/ 또는 펌웨어)을 포함할 수 있다.
예를 들어, 제1 레벨의 에러 정정은 판독 동작의 반복들이 다양한 전압들을 사용하여 반복될 수 있는 판독 재시도에 의한 BCH 하드 디코딩일 수 있다. 제2 레벨의 에러 정정은 이웃 셀 지원 에러 정정일 수 있다. 다른 실시예들에서, 제1 레벨의 에러 정정은 LDPC 하드 디코딩 에러 정정 동작의 한 번 이상의 반복일 수 있고, 제2 레벨의 에러 정정은 LDPC 소프트 디코딩 반복들의 한 번 이상의 반복일 수 있다. 또한, 제어기(110)는 임의의 수량의 에러 정정 레벨들을 구현할 수 있다.
에러 정정 구성요소(106)가 데이터에 대해 에러 정정 동작들(예를 들어, 초기 에러 정정 동작 및/또는 후속 에러 정정 동작들)을 수행한 후에, 호스트(102)는 호스트 컴퓨팅 동작의 수행에 에러 정정된 데이터를 사용할 수 있다. 그러나, 실시예들은 이에 제한되지 않으며, 일부 실시예들에서, 에러 정정 구성요소(106)가 데이터에 대해 에러 정정 동작(들)을 수행하면, 에러 정정 구성요소(106)가 메모리 디바이스들(112)로 다시 데이터가 전달되게 할 수 있거나, 또는 제어기(110)가 데이터와 연관된 물리적 어드레스 위치들이 레이턴시 정보에 기초하여 철회될 수 있다고 결정할 수 있다.
제어기(110)는 메모리 디바이스들(112-1 내지 112-P)과 통신하여, 다른 동작들 중에서도, 데이터 판독, 기입, 및 삭제 동작들을 제어할 수 있다. 제어기(110)는 예를 들어, 하드웨어 및/또는 펌웨어 형태의 다수의 구성요소들, 예를 들어, 주문형 집적 회로(들)(ASIC(들)), 필드 프로그래머블 게이트 어레이(들)(FPGA(들))와 같은 하나 이상의 집적 회로, 및/또는 다수의 메모리 디바이스들(112-1 내지 112-P)에 대한 액세스를 제어하고/거나 메모리 디바이스들(112-1 내지 112-P)과 호스트(102) 사이의 데이터 전달을 가능하게 하기 위한 소프트웨어를 포함할 수 있다. 제어기(110)는 본 개시의 실시예들을 모호하지 않게 하기 위해 도시되지 않은 데이터, 판독, 기입, 삭제 등의 동작들을 제어하기 위한 다양한 구성요소들을 포함할 수 있다. 이러한 구성요소들은 일부 실시예들에서, 제어기(110)의 구성요소들이 아닐 수 있는데, 예를 들어, 데이터 판독, 기입, 삭제 등의 동작들을 제어하기 위한 구성요소들은 메모리 시스템(104) 내에 위치되는 독립적인 구성요소들일 수 있다.
메모리 디바이스들(112-1 내지 112-P)은 메모리 셀들의 다수의 어레이들을 포함할 수 있다. 어레이들은 예를 들어, NAND 아키텍처를 갖는 플래시 어레이들일 수 있다. 그러나, 실시예들은 특정 유형의 메모리 어레이 또는 어레이 아키텍처에 제한되지 않는다. 메모리 셀들은 예를 들어, 다수의 물리적 페이지들을 포함하는 다수의 블록들로 그룹화될 수 있다. 다수의 블록들은 메모리 셀들의 평면에 포함될 수 있고, 어레이는 다수의 평면들을 포함할 수 있다.
메모리 디바이스들(112-1 내지 112-P)은 휘발성 메모리 및/또는 비휘발성 메모리를 포함할 수 있다. 다수의 실시예들에서, 메모리 디바이스들(112-1 내지 112-P)은 멀티 칩 디바이스를 포함할 수 있다. 멀티 칩 디바이스는 다수의 상이한 메모리 유형들 및/또는 메모리 모듈들을 포함할 수 있다. 예를 들어, 메모리 시스템은 임의의 유형의 모듈 상에 비휘발성 또는 휘발성 메모리를 포함할 수 있다. 메모리 디바이스들(112-1 내지 112-P)이 비휘발성 메모리를 포함하는 실시예들에서, 메모리 디바이스들(112-1 내지 112-P)은 NAND 또는 NOR 플래시 메모리 디바이스들과 같은 플래시 메모리 디바이스들일 수 있다.
그러나, 실시예들은 이에 제한되지 않고, 메모리 디바이스들(112-1 내지 112-P)은 다른 비휘발성 메모리 디바이스들, 이를테면 비휘발성 랜덤 액세스 메모리 디바이스들(예를 들어, NVRAM, ReRAM, FeRAM, MRAM, PCM), "최근 만들어진" 메모리 디바이스들, 이를테면 저항 가변(예를 들어, 3-D 크로스포인트(3D XP)) 메모리 디바이스들, 자기 선택 메모리(SSM) 셀들의 어레이를 포함하는 메모리 디바이스들 등, 또는 이들의 조합들을 포함할 수 있다. 저항 가변 메모리 디바이스들은 적층 가능한 크로스 그리드 데이터 액세스 어레이와 함께, 벌크 저항의 변화에 기초하여 비트 저장을 수행할 수 있다. 또한, 저항 가변 비휘발성 메모리는 많은 플래시 기반 메모리들과 달리, 비휘발성 메모리 셀이 사전에 삭제되지 않고도 비휘발성 메모리 셀이 프로그래밍될 수 있는 제자리 기입(write in-place) 동작을 수행할 수 있다. 플래시 기반 메모리들 및 저항 가변 메모리들과 대조적으로, 자기 선택 메모리 셀들은 메모리 셀에 대한 저장 요소 및 스위치 양자로서의 역할을 하는 단일 칼코게나이드 물질을 갖는 메모리 셀들을 포함할 수 있다.
메모리 디바이스들(112-1 내지 112-P)은 메모리 시스템(100)을 위한 메인 메모리를 제공할 수 있거나, 메모리 시스템(100) 전반에 걸친 추가 메모리 또는 저장소로서 사용될 수 있다. 각 메모리 디바이스(112-1 내지 112-P)는 메모리 셀들, 예를 들어, 휘발성 및/또는 비휘발성 메모리 셀들의 하나 이상의 어레이를 포함할 수 있다. 어레이들은 예를 들어, NAND 아키텍처를 갖는 플래시 어레이들일 수 있다. 실시예들은 메모리 디바이스의 특정 유형으로 제한되지 않는다. 예를 들어, 메모리 디바이스는 특히, RAM, ROM, DRAM, SDRAM, PCRAM, RRAM 및 플래시 메모리를 포함할 수 있다.
도 2a 및 도 2b는 본 개시의 다수의 실시예들에 따른 에러 정정 구성요소(206)를 포함하는 장치들(201)의 형태의 또 다른 기능 블록도들이다. 에러 정정 구성요소(206)는 본원에서 도 1에 도시된 에러 정정 구성요소(106)와 유사할 수 있다. 도 2a에 도시된 바와 같이, 에러 정정 구성요소(206)는 초기 ECC 로직(214) 및 후속 ECC 로직 (216)을 포함할 수 있다. 도 2b에 도시된 바와 같이, 초기 ECC 로직(214)은 제1 레벨 에러 정정(218)을 더 포함하는 한편, 후속 ECC 로직(216)은 제N 레벨 에러 정정(222)을 더 포함한다. 에러 정정 구성요소(206)는 도 1에 도시된 메모리 시스템(104)과 같은 메모리 시스템 상에 상주할 수 있다(예를 들어, 물리적으로 배치될 수 있다).
초기 ECC 로직(214) 및 후속 ECC 로직(216)은 하드웨어 및/또는 펌웨어 형태의 다수의 구성요소들, 예를 들어, 주문형 집적 회로(들)(ASIC(들)), 필드 프로그래머블 게이트 어레이(들)(FPGA(들))와 같은 하나 이상의 집적 회로, 및/또는 호스트(예를 들어, 도 1에 도시된 호스트(102))와 메모리 디바이스들(예를 들어, 도 1에 도시된 메모리 디바이스들(112-1 내지 112-P)) 사이에서 전달되는 데이터에 대해 에러 정정 동작들을 수행하기 위한 소프트웨어를 포함할 수 있다.
초기 ECC 로직(214)은 BCH ECC 및/또는 LDPC ECC 인코더/디코더, 또는 수신된 데이터에 대한 에러 정정 동작의 수행의 일부로서 메모리 시스템으로부터 수신된 데이터를 인코딩하기 위한 다른 적절한 인코더와 같은 반복적인 인코더/디코더로서 구현될 수 있다. 유사하게, 후속 ECC 로직(216)은 BCH ECC 인코더/디코더 및/또는 LDPC 인코더/디코더, 또는 수신된 데이터에 대한 에러 정정 동작의 수행의 일부로서 메모리 시스템으로부터 수신된 데이터를 인코딩/디코딩하기 위한 다른 적절한 인코더/디코더와 같은 반복적인 인코더/디코더으로서 구현될 수 있다.
상술한 바와 같이, 에러 정정 구성요소(206)는 메모리 디바이스(예를 들어, 도 1에 도시된 메모리 디바이스들(112-1 내지 112-P))로부터 데이터를 수신할 수 있고, 데이터에 대해 에러 정정 동작을 수행할 수 있다. 에러 정정 동작의 수행은 데이터에서의 에러들을 정정하기 위한 하나 이상의 에러 정정 코드를 구현하는 것을 포함할 수 있다.
일부 실시예들에서, 초기 ECC 로직(214) 및/또는 후속 ECC 로직(216)은 다수의 계층들의 인코딩 및/또는 디코딩을 구현할 수 있다. 예를 들어, 초기 ECC 로직(214) 및/또는 후속 ECC 로직(216)는 제1 레벨 에러 정정(218) 및/또는 제N 레벨 에러 정정(222)을 포함할 수 있다. 예를 들어, 초기 ECC 로직(214)은 BCH 코드의 형태로 제1 레벨 에러 정정(218)을 포함할 수 있다. 유사하게, 후속 ECC 로직(216)은 LDPC 디코더의 형태로 제N 레벨 에러 정정(222)을 포함할 수 있다. 그러나, 본 개시의 실시예들은 위에서 제시된 ECC의 특정 수량들 및/또는 유형들에 제한되지 않고, 위에서 설명된 것들과 상이한 추가적인 ECC, 및/또는 유형들 또는 순서의 ECC를 포함할 수 있다.
본 개시의 다양한 실시예들에 따르면, 초기 ECC 로직(214) 및/또는 후속 ECC 로직(216)은 (예를 들어, 초기 ECC 로직(214) 및/또는 후속 ECC 로직(216)을 사용하는) 모든 LDPC ECC 기법, 또는초기 ECC 로직(214) 및/또는 후속 ECC 로직(216)은 (예를 들어, 초기 에러 정정(218)을 야기하는) 초기 BCH 코드, 및 (예를 들어, 제N 레벨 에러 정정을 야기하는) LDPC 코드 및 후속 LDPC 코드를 갖는 계층화된 ECC 기법을 선택적으로 구현할 수 있다. 다른 예들에서, 초기 ECC 로직(214) 및/또는 후속 ECC 로직(216)은 (예를 들어, 초기 ECC 로직(214) 및/또는 후속 ECC 로직(216)을 사용하는) 모든 BCH(또는 다른 ECC 기법), 또는초기 ECC 로직(214) 및/또는 후속 ECC 로직(216)은 (예를 들어, 초기 에러 정정(218)을 야기하는) 초기 BCH 코드, 및 (예를 들어, 제N 레벨 에러 정정을 야기하는) 이웃 셀 지원 에러 정정(neighbor-cell assisted error correction, NAC) 코드 및 후속 NAC 코드를 갖는 계층화된 ECC 기법을 선택적으로 구현할 수 있다. 상술된 계층화된 ECC 기법들에서, BCH 코드, LDPC, NAC, 및/또는 다른 ECC 기법들은 예를 들어, 다수의 반복들에 대해 실행될 수 있다. 잔류 에러들은 데이터 및/또는 데이터와 연관된 물리적 어드레스들의 강건성을 예측하도록 제어기(예를 들어, 도 1의 제어기(110))를 프롬프트할 수 있는 레이턴시 정보를 초래할 수 있다. 예측에 기초하여, 제어기는 치를 취하고/거나 상이한 ECC 기법을 사용하여 상이한 레벨의 에러 정정으로 단계적으로 확대시킬 수 있다.
상기한 예에서, 제어기는 상이한 에러 정정 동작들의 다수의 반복들을 수행하도록 구성될 수 있다. 에러 정정 동작들의 다수의 반복들은 상이한 에러 정정 기법들일 수 있고, 데이터 및/또는 데이터와 연관된 물리적 어드레스들의 강건성을 예측하기 위해 후속 에러 정정의 각 반복 후에 레이턴시 정보가 결정될 수 있다. 이러한 방식으로, 메모리 디바이스는 내부에 저장된 데이터에 정정 불가능한 에러들을 부여할 보다 높은 가능성을 나타내는 물리적 어드레스 공간들에 데이터를 저장하는 것을 회피할 수 있으며, 이는 결정된 레이턴시들에 부분적으로 기초하여 액션을 취함으로써(예를 들어, 데이터와 연관된 물리적 어드레스 공간에 대응하는 마모량을 예측함으로써) 컴퓨팅 시스템을 통해 전파되는 정정 불가능한 에러들의 양을 감소시킬 수 있다. 이는 결과적으로 정정 불가능한 에러를 호스트 디바이스에 보고하는 것을 회피할 수 있게 한다.
제어기는 다수의 계층들의 ECC를 포함하도록 ECC의 임의의 조합을 구현할 수 있다. 예를 들어, 에러 정정 구성요소(206)는 다수의 레벨들의 에러 정정을 제공하기 위해 다수의 ECC 로직들을 포함할 수 있다. 위에서 설명된 바와 같이, ECC들의 예들은 특히, 해밍 코드들, RS 코드들, BCH 코드들, CRC 코드들, 골레이 코드들, 리드-뮬러 코드들, Goppa 코드들, 이웃 셀 지원 에러 정정 코드들, LDPC 에러 정정 코드들, 및 데니스턴 코드들을 포함하고, 에러 정정 구성요소(206)는 이러한 ECC들 중 하나 이상을 에러 정정 구성요소(206)에 의해 수신된 데이터에 다수의 계층들의 ECC를 제공하는 것의 일부로서 다양한 순서들로 구현하도록 구성될 수 있다.
제어기는 제어기에 의해 결정된 레이턴시 정보 및/또는 예측되는 강건성에 적어도 부분적으로 기초하여 그리고 ECC들의 반복들에 대한 타임스탬프들의 부여에 적어도 일부 기초하여 제1 레벨 에러 정정(218)으로부터 제N 레벨 에러 정정(222)으로 단계적으로 확대시킬 수 있다. 예를 들어, 제어기는 상이한 에러 정정 동작의 다수의 반복들의 각 반복에 타임스탬프들을 부여하고, (데이터가 제어기에 의해 메모리 디바이스, 예를 들어, 도 1의 메모리 디바이스(112-1 내지 112-P) 및/또는 버퍼(110)로부터 수신될 때 그리고/또는 데이터(315)가 초기 판독될 때) 상이한 에러 정정 동작들의 각 동작에 부여된 타임스탬프들 및 초기 타임스탬프에 적어도 부분적으로 기초하여, 에러 정정 로직(예를 들어, 초기 ECC 로직(214) 및/ 또는 후속 ECC 로직(216))에 대응하는 레이턴시를 결정하도록 구성될 수 있다. 레이턴시 정보의 결정들에 기초하여, 제어기는 요구될 수 있는 추가적인 에러 정정 동작들을 결정하는 것, 데이터에 대응하는 마모량을 예측하는 것, 예측되는 마모량에 기초하여 데이터에 대응하는 물리적 어드레스를 철회시키는 것, 데이터에 대응하는 물리적 어드레스 위치들에 대해 남은 데이터 전달 사이클들의 잔여 수량을 예측하는 것, 또는 이들의 조합과 같은 액션을 취할 수 있다. 추가적으로, 제어기는 데이터가 정정 가능하지 않다고 결정하고 정정 불가능한 데이터를 호스트(예를 들어, 도 1의 호스트(102))에 보고할 수 있다. 이러한 방법들을 사용하여, 메모리 시스템(예를 들어, 도 1의 메모리 시스템(100))은 정정 불가능한 데이터의 수신을 회피할 수 있다.
도 3은 본 개시의 다수의 실시예들에 따른 예시적인 데이터(315) 및 예측 메모리 관리 동작들을 나타내는 흐름도이다. 도 3은 도 1과 관련하여 설명된 버퍼(109) 및 제어기(110)와 유사할 수 있는 버퍼(309) 및 제어기(310)를 도시한다. 도 3은 에러 정정 구성요소(예를 들어, 도 1과 관련하여 설명된 에러 정정 구성요소(106))에 포함될 수 있고 도 2b와 관련하여 설명된 제1 레벨 에러 정정(218) 및 제N 레벨 에러 정정(222)과 유사할 수 있는 제1 레벨 에러 정정(318) 및 제N 레벨 에러 정정(322)을 또한 도시한다.
버퍼(309), 제어기(310), 제1 레벨의 에러 정정(318), 및 제N 레벨의 에러 정정(322)은 컴퓨팅 시스템(예를 들어, 도 1의 컴퓨팅 시스템 100)의 일부일 수 있다. 본 개시의 예들을 모호하게 하지 않기 위해 여기에 도시되지는 않았지만, 호스트(예를 들어, 도 1의 호스트(102))는 메모리 시스템(예를 들어, 도 1의 메모리 시스템(104))에 커플링될 수 있고, 제어기(310)는 메모리 시스템 상에 상주할 수 있다.
데이터(315)는 메모리 디바이스(예를 들어, 도 1의 메모리 디바이스들(112))에 저장될 수 있고, 제어기(310)에 의해 판독될 때까지 버퍼(309)에 버퍼링될 수 있다. 예를 들어, 제어기(310)는 버퍼(309)를 통해 메모리 디바이스로부터 데이터(315)를 수신하도록 구성될 수 있다(블록 317). 데이터(315)는 호스트의 동작에 대응할 수 있다. 일부 실시예들에서, 호스트는 동작을 실행하기 위해 메모리 디바이스로부터의 데이터(315)를 요청할 수 있다.
제어기(310)는 데이터(315)에 초기 타임스탬프(325)를 부여할 수 있다. 초기 타임스탬프(325)는 데이터가 버퍼(309) 및/또는 메모리 디바이스로부터 초기 수신될 때, 그리고/또는 데이터(315)가 초기 판독되는 때일 수 있다. 정정 불가능한 에러가 호스트에 전달되어 보고하는 것을 회피하기 위해, 제어기(310)는 하나 이상의 에러 정정 동작을 수행할 수 있다. 예를 들어, 제어기(310)는 제1 레벨의 에러 정정(318)에서 하나 이상의 에러 정정 동작을 수행하도록 구성될 수 있다. 일부 실시예들에서, 제어기(310)는 상이한 각 이산적 판독 전압들에서 초기 에러 정정 동작을 수행할 수 있고, 초기 에러 정정 동작은 데이터(315)에 대한 제1 레벨의 에러 정정(318)에 대응할 수 있다. 제어기(310)는 데이터(315)에 대해 수행된 초기 에러 정정 동작 후에 타임스탬프(324-1)를 부여할 수 있다. 제어기(310)는 타임스탬프(324-1) 및 초기 타임스탬프(325)에 기초하여, 레이턴시 정보(326-1)를 결정할 수 있다.
제어기(310)는 각 이산적 판독 전압들에서 각 반복들의 수행 사이의 시구간, 및 초기 타임스탬프(325)에 기초하여 레이턴시 정보, 예를 들어, 복수의 초기 에러 정정 동작들을 수행한 것과 연관된 레이턴시 정보(326-1)를 결정할 수 있다. 레이턴시 정보(326-1)에 적어도 부분적으로 기초하여, 제어기(310)는 데이터(315)의 강건성을 예측하고(예를 들어, 데이터(315)에 대응하는 마모량을 예측하고) 액션을 취할 수 있다. 예를 들어, 액션은 제어기(310)가 데이터(315)에 대응하는 물리적 어드레스 위치들에 대해 남은 데이터 전달 사이클들의 잔여 수량을 예측하도록 구성되는 것일 수 있다. 액션에 기초하여, 제어기(310)는 제1 레벨의 에러 정정(318)에 대응하는 ECC 로직을 사용하여 에러 정정 동작의 또 다른 반복을 수행할 수 있다. 제1 레벨의 에러 정정(318)의 에러 정정 동작의 추가적인 반복 후에, 제어기(310)는 타임스탬프(324-2) 및 초기 타임스탬프(325)에 기초하여 또 다른(예를 들어, 상이한) 레이턴시 정보(326-2)를 결정하기 위해 또 다른 타임스탬프(324-2)를 부여할 수 있다.
본원에서 언급된 바와 같이, 제어기(310)는 초기 에러 정정 동작들, 후속 에러 정정 동작, 또는 양자를 수행하도록 구성된 에러 정정 로직을 포함할 수 있다. 타임스탬프(324-2)로부터 결정된 레이턴시 정보(326-2), 및 데이터(315)의 강건성 및/또는 마모의 후속 예측들에 기초하여, 제어기(310)는 제N 레벨의 에러 정정(322)에 대응하는 ECC 로직을 사용하여 데이터(315)에 대해 후속 에러 정정 동작을 수행할 것을 결정할 수 있다. 제N 레벨 에러 정정(322)의 반복을 수행한 후에, 제어기(310)는 레이턴시 정보(326-3)를 결정하기 위해 타임스탬프(324-3)를 부여할 수 있다. 레이턴시 정보(326-3)는 타임스탬프(324-3) 및 초기 타임스탬프(325)에 기초할 수 있다. 제어기(310)는 레이턴시 정보(326-3)를 사용하여, 제N 레벨의 에러 정정(322)에서 수행된 후속 에러 정정 동작들에 기초하여 데이터(315)에 대응하는 물리적 어드레스 위치들에 대한 강건성 정보를 결정할 수 있다. 이러한 방식으로, 제어기(310)는 데이터(315)와 연관된 강건성을 예측하고/거나 데이터에 대응하는 마모량을 예측하고 액션을 취할 수 있다.
제어기(310)는 후속 에러 정정 동작들의 다수의 반복들을 수행할 수 있다. 예를 들어, 타임스탬프(324-3)가 부여된 제N 레벨 에러 정정(322) 동작으로부터 결정된 레이턴시 정보(326-3)에 적어도 부분적으로 기초하여, 제어기는 제N 레벨 에러 정정(322)에서 후속 에러 정정 동작들의 또 다른 반복을 수행할 수 있다. 제어기(310)는 제N 레벨 에러 정정(322)에서의 에러 정정 동작에 타임스탬프(324-M)를 부여하고 레이턴시 정보(326-S)를 결정할 수 있다. 레이턴시 정보(326-S)는 타임스탬프(324-M) 및 초기 타임스탬프(325)에 기초할 수 있다. 제어기(310)는 레이턴시 정보(326-S)를 사용하여, 제N 레벨의 에러 정정(322)에서 수행된 후속 에러 정정 동작들에 기초하여 데이터(315)에 대응하는 물리적 어드레스 위치들에 대한 강건성 정보를 결정할 수 있다. 이러한 방식으로, 제어기(310)는 데이터(315)와 연관된 강건성을 예측하고/거나 데이터에 대응하는 마모량을 예측하고 액션을 취할 수 있다.
예를 들어, 제어기(310)는 물리적 어드레스 위치들에 대응하는 결정된 강건성 정보에 적어도 부분적으로 기초하여 물리적 어드레스 위치들과 연관된 액션을 취할 수 있다. 일부 실시예들에서, 제어기(310)는 상기 적어도 하나의 후속 에러 정정 동작과 연관된 상기 레이턴시 정보, 예를 들어, 326-S에 적어도 부분적으로 기초하여, 상기 복수의 물리적 어드레스들에 대해 남은 데이터 전달 사이클들의 잔여 수량을 예측하도록 구성될 수 있다. 결정되는 각 레이턴시 정보(326)에 기초하여, 제어기(310)는 물리적 어드레스들에 대해 남은 잔여 데이터 전달 사이클들의 수량을 부여할 수 있다. 일부 실시예들에서, 제어기(310)는 데이터 전달 사이클들의 수량이 완료된 후에 복수의 물리적 어드레스들을 철회시키도록 구성될 수 있다. 다중 레벨 에러 정정 동작 및 예측 메모리 관리는 제어기(310)가 어떠한 추가적인 에러도 검출하지 않고/않거나 에러가 정정 불가능하다고 결정할 때까지 이러한 방식으로 계속될 수 있다.
도 4는 본 개시의 다수의 실시예들에 따른 예측 메모리 관리 동작들을 나타내는 흐름도이다. 도 4는 다양한 레벨들의 에러 정정, 다양한 레벨의 에러 정정의 수행에 대응하는 레이턴시 정보, 및 레이턴시 정보에 기초하여 반복들 또는 에러 정정에 부여되는 타임스탬프들을 도시한다. 도 4는 에러 정정 구성요소(예를 들어, 도 1과 관련하여 설명된 에러 정정 구성요소(106))에 포함될 수 있고 도 2b와 관련하여 설명된 제1 레벨 에러 정정(218) 및 제N 레벨 에러 정정(222)과 유사할 수 있는 제1 레벨의 에러 정정(418), 제2 레벨의 에러 정정(420), 및 제N 레벨 에러 정정(422)을 또한 도시한다.
일부 실시예들에서, 제1 레벨의 에러 정정(418), 제2 레벨의 에러 정정(420), 및 제N 레벨의 에러 정정(422)은 BCH(Bose-Chaudhuri-Hochquenghem) 에러 정정 코드, 이웃 셀 지원 에러 정정(neighbor-cell assisted error correction, NAC) 코드, 또는 양자 중 적어도 하나를 사용하여 수행될 수 있고, 후속 에러 정정 동작은 NAC 코드, 메모리 보호 에러 정정 코드, 또는 양자를 사용하여 수행될 수 있다. 다른 실시예들에서, 다른 에러 정정 코드 기법들(예를 들어, 해밍 코드들, RS 코드들 등)이 사용될 수 있다.
버퍼(예를 들어, 도 1의 버퍼(109)), 제1 레벨의 에러 정정(418), 제2 레벨의 에러 정정(420), 및 제N 레벨의 에러 정정(422)을 수행하는 제어기(예를 들어, 도 1의 제어기(110)) 회로부는 컴퓨팅 시스템(예를 들어, 도 1의 컴퓨팅 시스템(100))의 일부일 수 있다. 본 개시의 예들을 모호하게 하지 않기 위해 여기에 도시되지는 않았지만, 호스트(예를 들어, 도 1의 호스트(102))는 메모리 시스템(예를 들어, 도 1의 메모리 시스템(104))에 커플링될 수 있고, 제어기는 메모리 시스템 상에 상주할 수 있다.
430에서, 제어기는 버퍼를 통해 메모리 디바이스로부터, 호스트의 동작에 대응하는 데이터를 수신할 수 있다. 일부 실시예들에서, 제어기는 호스트로부터 데이터에 대한 요청을 수신할 수 있다. 제어기는 데이터에 초기 타임스탬프(425)를 부여할 수 있다. 초기 타임스탬프(425)는 데이터가 버퍼 및/또는 메모리 디바이스로부터 수신되는 것에 응답하여 부여될 수 있거나, 또는 초기 타임스탬프(425)는 제어기가 버퍼 또는 메모리 디바이스로부터 수신되는 데이터에 대한 판독 동작을 시작하는 것에 대응할 수 있다. 제어기는 판독 동작 동안 데이터에 인가되는 각 이산적 판독 전압들(예를 들어, VDM들)을 조절하도록 구성될 수 있다.
본원에서 사용될 때, "이산적 판독 전압" 또는 "VDM"은 메모리 셀의 상태를 감지할 때 메모리 셀의 단자들 양단에 인가될 수 있는 경계 전압을 지칭한다. 메모리 셀의 상태는 인가된 이산적 판독 전압에 대한 메모리 셀의 반응에 기초하여 감지될 수 있다. 예를 들어, 메모리 셀은 전도성 ON 상태(논리 1)로 진행하거나 약한 전도성 OFF 상태(논리 0)로 유지될 수 있다. 메모리 셀이 논리 1로서 감지되는 것으로부터 논리 0으로서 감지되는 것으로 전이하는 인가된 전압은 메모리 셀의 임계 전압으로 지칭될 수 있다. 이에 따라, 일 예로서, VDM이 메모리 셀의 임계 전압보다 더 높을 때, 메모리 셀은 논리 1을 저장하는 것으로서 감지될 수 있고, VDM이 메모리 셀의 임계 전압보다 더 낮을 때는, 메모리 셀이 논리 0을 저장하는 것으로서 감지될 수 있다.
432에서, 제어기는 제1 이산적 판독 전압(VDM1)으로 데이터를 판독하고, 제1 타임스탬프(424-1)를 기록하도록 구성될 수 있으며, 여기서 제1 타임스탬프(424-1)는 제어기에 의한 제1 판독의 완료에 대응한다. 제어기는 제1 타임스탬프(424-1) 및 초기 타임스탬프(425)에 기초하여 제1 레이턴시 정보(426-1)를 결정할 수 있다. 레이턴시 정보는 제어기에 의해 데이터의 강건성을 예측하는 데 사용될 수 있다. 레이턴시 정보, 예를 들어, 레이턴시 정보(426-1)는 데이터가 정정 불가능인지 또는 손상되었는지를 예측하는 데 사용될 수 있다. 레이턴시 정보, 예를 들어, 레이턴시 정보(426-1)는 정정 불가능한 데이터를 호스트에 보고하는 것을 방지하는 데 사용될 수 있다. 제어기는 데이터에 대응하는 물리적 어드레스 위치들의 강건성에 대응하는 결정된 레이턴시 정보(424-1)에 적어도 부분적으로 기초하여, 블록 428-1에서 물리적 어드레스 위치들과 연관된 액션을 취할 수 있다.
액션을 취하는 것은 레이턴시 정보에 적어도 부분적으로 기초하여 데이터에 대응하는 물리적 어드레스 위치 또는 다수의 물리적 어드레스 위치들이 열화된 것으로 결정하는 단계, 및 블록 436-1에서 판독 동작을 종료하는 것을 포함할 수 있다. 또 다른 실시예에서, 액션을 취하는 것은 데이터에 대응하는 마모량을 예측하고, 예측되는 마모량에 부분적으로 기초하여, 데이터에 대응하는 물리적 어드레스를 철회시키는 것을 포함할 수 있다. 또 다른 실시예에서, 액션을 취하는 것은 레이턴시 정보에 적어도 부분적으로 기초하여, 복수의 어드레스 위치들에 대해 남은 데이터 전달 사이클들의 잔여 수량을 예측하는 것을 포함할 수 있다. 데이터 전달 사이클의 잔여 수량을 예측하는 것은 마지막 데이터 전달 사이클 다음에 물리적 어드레스 위치들을 철회시키는 것을 포함할 수 있다. 에러가 없다면, 판독 동작은 436-1에서 종료된다. 제어기가 취해질 액션이 데이터에 대응하는 물리적 어드레스 위치들을 철회시키는 것이라고 결정한다면, 판독 동작은 436-1에서 종료된다.
일부 실시예들에서, 제어기가 데이터에 에러가 있다고 결정하고, 제어기가 데이터가 에러 정정 동작들을 진행하기에 충분히 강건하다고 결정할 때, 제어기는 이산적 판독 전압을 조절하고 데이터를 판독하려고 시도할 수 있다. 440에서, 제어기는 제2 이산적 판독 전압(VDM2)으로 데이터를 판독하고, 제2 타임스탬프(424-2)를 기록할 수 있다. 제어기는 초기 타임스탬프(425) 및 제2 타임스탬프(424-2)에 적어도 부분적으로 기초하여 제2 레이턴시 정보(426-2)를 결정할 수 있다.
제2 레이턴시 정보(426-2)에 기초하여, 제어기는 물리적 어드레스 위치들이 철회되는 경우 428-2에서 액션을 취할 수 있거나, 또는 제어기가 데이터에 더 이상 에러가 없다고 결정하는 경우, 동작은 436-2에서 종료될 수 있고, 데이터는 호스트로 전송되고/거나 컴퓨팅 디바이스에 저장될 수 있다.
일부 실시예들에서, 제어기는 데이터가 에러를 포함하지 않는다고 결정될 때까지, 또는 레이턴시 정보에 기초하여 데이터의 강건성에 의해 결정될 수 있는 특정 반복 횟수가 수행될 때까지, 다수의 반복들 동안 화살표(450)에 의해 표시된 바와 같이 판독 반복들을 반복하도록 구성될 수 있다. 제어기는 또한, 복수의 판독 동작들을 각 이산적 판독 전압들에서 그리고/또는 에러 정정 동작들을 수행하는 것과 연관된 레이턴시 정보에 적어도 부분적으로 기초하여, 판독 동작들, 초기 에러 정정 동작들, 및/또는 후속 에러 정정 동작들의 각 이산적 판독 전압들을 조절하도록 구성될 수 있다. 제어기는 각 반복에 대해 전압을 변경하도록 구성될 수 있거나, 전압은 동일하게 유지될 수 있다.
예를 들어, 제어기는 상이한 각 이산적 판독 전압들에서 하나 이상의 초기 에러 정정 동작을 수행할 수 있으며, 여기서 하나 이상의 초기 에러 정정 동작은 데이터에 대한 제1 레벨의 에러 정정에 대응한다. 구체적으로, 제어기는 제1 레벨의 에러 정정(418)에 대응하는 에러 정정 동작을 적용할 수 있다. 제어기는 제3 타임스탬프(424-3)를 부여할 수 있고, 제3 타임스탬프(424-3)를 초기 시간스탬프(425)와 함께 사용하여 제3 레이턴시 정보(426-3)를 결정할 수 있다. 제3 레이턴시 정보(426-3)는 데이터의 강건성을 예측하는 데 사용될 수 있다.
제3 레이턴시 정보(426-3)에 기초하여, 제어기는 428-3에서 액션을 취할 수 있고, 물리적 어드레스 위치들이 철회되는 경우, 또는 제어기가 데이터에 더 이상 에러가 없다고 결정하는 경우, 동작은 436-3에서 종료될 수 있고, 데이터는 호스트로 전송되고/거나 컴퓨팅 디바이스에 저장될 수 있다.
제어기는 데이터에 잔류 에러가 있다고 결정할 수 있고, 데이터의 결정된 강건성에 기초하여, 제어기는 화살표(452)로 표시된 바와 같이 제1 레벨의 에러 정정(418)에 대응하는 초기 에러 정정 동작을 반복할 수 있다. 다른 실시예들에서, 제어기는 데이터의 강건성이 충분하고 및/또는 데이터 전달 사이클들의 예측 수량에 도달되지 않았다고 결정하여, 초기 에러 정정 동작들의 더 많은 반복들이 수행되게 될 수 있고/거나, 제어기는 데이터의 예측되는 강건성(예를 들어, 제3 레이턴시 정보(426-3))에 적어도 부분적으로 기초하여, 데이터에 대한 제2 레벨의 에러 정정에 대응하는 하나 이상의 후속 에러 정정 동작을 수행할 수 있다.
예를 들어, 제어기는 상이한 각 이산적 판독 전압들에서 하나 이상의 후속 에러 정정 동작을 수행할 수 있으며, 여기서 하나 이상의 후속 에러 정정 동작은 데이터에 대한 제2 레벨의 에러 정정에 대응한다. 구체적으로, 제어기는 제2 레벨의 에러 정정(420)에 대응하는 에러 정정 동작을 적용할 수 있다. 제어기는 제4 타임스탬프(424-4)를 부여할 수 있고, 데이터에 잔류 에러가 존재하는지를 결정할 수 있다. 제어기는 제4 타임스탬프(424-4)를 부여할 수 있고, 제4 타임스탬프(424-4)를 초기 시간스탬프(425)와 함께 사용하여 제4 레이턴시 정보(426-4)를 결정할 수 있다. 제4 레이턴시 정보(426-4)는 데이터의 강건성을 예측하는 데 사용될 수 있다.
제4 레이턴시 정보(426-4)에 기초하여, 제어기는 428-4에서 액션을 취할 수 있고, 물리적 어드레스 위치들이 철회되는 경우, 또는 제어기가 데이터에 더 이상 에러가 없다고 결정하는 경우, 동작은 436-4에서 종료될 수 있고, 데이터는 호스트로 전송되고/거나 컴퓨팅 디바이스에 저장될 수 있다.
제어기는 데이터에 잔류 에러가 있다고 결정할 수 있고, 데이터의 결정된 강건성에 기초하여, 제어기는 화살표(454)로 표시된 바와 같이 제2 레벨의 에러 정정(420)에 대응하는 후속 에러 정정 동작을 반복할 수 있다. 다른 실시예들에서, 제어기는 데이터의 강건성이 충분하고 및/또는 데이터 전달 사이클들의 예측 수량에 도달되지 않았다고 결정하여, 후속 에러 정정 동작들의 더 많은 반복들이 수행되게 될 수 있고/거나, 제어기는 데이터의 예측되는 강건성(예를 들어, 제4 레이턴시 정보(426-4))에 적어도 부분적으로 기초하여, 데이터에 대한 제N 레벨의 에러 정정에 대응하는 하나 이상의 후속 에러 정정 동작을 수행할 수 있다.
예를 들어, 제어기는 상이한 각 이산적 판독 전압들에서 하나 이상의 (추가) 후속 에러 정정 동작을 수행할 수 있으며, 여기서 하나 이상의 후속 에러 정정 동작은 데이터에 대한 제N 레벨의 에러 정정에 대응한다. 구체적으로, 제어기는 제N 레벨의 에러 정정(422)에 대응하는 에러 정정 동작을 적용할 수 있다. 제어기는 제5 타임스탬프(424-M)를 부여할 수 있고, 데이터에 잔류 에러가 존재하는지를 결정할 수 있다. 제어기는 제5 타임스탬프(424-M)를 부여할 수 있고, 제5 타임스탬프(424-M)를 초기 시간스탬프(425)와 함께 사용하여 제5 레이턴시 정보(426-S)를 결정할 수 있다. 제5 레이턴시 정보(426-5)는 데이터의 강건성을 예측하는 데 사용될 수 있다.
제5 레이턴시 정보(426-5)에 기초하여, 제어기는 428-P에서 액션을 취할 수 있고, 물리적 어드레스 위치들이 철회되는 경우, 또는 제어기가 데이터에 더 이상 에러가 없다고 결정하는 경우, 동작은 436-R에서 종료될 수 있고, 데이터는 호스트로 전송되고/거나 컴퓨팅 디바이스에 저장될 수 있다.
제어기는 데이터에 잔류 에러가 있다고 결정할 수 있고, 데이터의 결정된 강건성에 기초하여, 제어기는 화살표(456)로 표시된 바와 같이 제N 레벨의 에러 정정(422)에 대응하는 후속 에러 정정 동작을 반복할 수 있다. 다른 실시예들에서, 제어기는 데이터의 강건성이 충분하고 및/또는 데이터 전달 사이클들의 예측 수량에 도달되지 않았다고 결정하여, 후속 에러 정정 동작들의 더 많은 반복들이 수행되게 될 수 있고/거나, 제어기는 데이터의 예측되는 강건성(예를 들어, 제4 레이턴시 정보(426-4))에 적어도 부분적으로 기초하여, 데이터에 대한 제N 레벨의 에러 정정에 대응하는 하나 이상의 후속 에러 정정 동작을 수행할 수 있다.
에러가 정정 가능하지 않은 경우, 또는 제어기가 데이터의 강건성이 불충분한 것으로 결정하는 경우, 제어기는 (458에서) 정정 불가능한 에러를 호스트 및/또는 컴퓨팅 시스템에 보고할 수 있다. 이러한 방식으로, 메모리 디바이스는 정정 불가능한 데이터를 호스트에 전송하는 것을 삼갈 수 있다.
도 5는 본 개시의 다수의 실시예들에 따른 예측 메모리 관리를 위한 예시적인 방법(560)을 나타내는 흐름도이다. 블록 562에서, 방법(560)은 제어기(예를 들어, 도 1의 제어기(110))에 의해, 제어기에 의해 수신된 데이터에 대해 수행된 하나 이상의 에러 정정 동작에 대응하는 레이턴시 정보를 결정하는 단계를 포함할 수 있다. 레이턴시 정보는 데이터의 및/또는 데이터에 대응하는 물리적 어드레스 위치들의 강건성을 예측하는 데 사용될 수 있다.
레이턴시 정보는 에러 정정 동작들 후에 데이터에 부여된 타임스탬프들로부터 결정될 수 있다. 데이터가 메모리 디바이스(예를 들어, 도 1의 메모리 디바이스들(112) 및/또는 버퍼(109))로부터 수신될 때, 또는 제어기가 데이터에 대한 판독 동작을 개시할 때, 초기 타임스탬프(예를 들어, 도 3의 초기 타임스탬프(325) 또는 도 4의 초기 타임스템프(425))가 부여될 수 있다. 일부 실시예들에서, 방법(560)은 제어기에 의해, 제1 레벨의 에러 정정(예를 들어, 제1 레벨의 에러 정정(318))을 제공하는 에러 정정 동작의 반복에 제1 타임스탬프(예를 들어, 도 3의 제1 타임스탬프(324-1) 또는 도 4의 제424-1))를 부여하는 단계; 및 제어기에 의해, 제1 타임스탬프 및/또는 초기 타임스탬프로부터 결정되는 레이턴시 정보에 적어도 부분적으로 기초하여, 데이터에 대해, 제1 레벨의 에러 정정을 제공하는 에러 정정 동작의 후속 반복을 수행할 것으로 결정하는 단계를 포함할 수 있다. 추가 타임스탬프들이 에러 정정 동작들의 후속 반복들에 부여될 수 있다.
예를 들어, 방법(560)은 제어기에 의해, 제1 레벨의 에러 정정을 제공하는 에러 정정 동작의 후속 반복에 제2 타임스탬프(예를 들어, 제2 타임스탬프(324-2))를 부여하는 단계; 및 제어기에 의해, 제2 타임스탬프에 적어도 부분적으로 기초하여 레이턴시 정보를 결정하는 단계; 및 제2 타임스탬프 및/또는 초기 타임스탬프로부터 결정되는 레이턴시 정보에 기초하여, 복수의 물리적 어드레스 위치들의 강건성에 대응하는 정보를 부여하는 단계를 더 포함할 수 있다. 제어기는 각 결정된 레이턴시 정보에 기초하여 데이터에 강건성 정보를 부여할 수 있다.
예를 들어, 방법(560)은, 블록 564에서, 레이턴시 정보에 기초하여, 데이터에 대응하는 복수의 물리적 어드레스 위치들의 강건성에 대응하는 정보를 부여하는 단계를 포함할 수 있다. 일부 실시예들에서, 제어기는 레이턴시 정보에 기초하여 액션을 취할 수 있다. 방법(560)은, 블록 566에서, 레이턴시 정보에 기초하여, 데이터에 대응하는 복수의 물리적 어드레스 위치들의 강건성에 대응하는 정보를 부여하는 단계를 포함할 수 있다. 이러한 액션들은 데이터에 대응하는 마모량을 예측하고, 예측되는 마모량에 부분적으로 기초하여, 데이터에 대응하는 물리적 어드레스를 철회시키는 것; 데이터에 대응하는 물리적인 어드레스 위치가 열화된 것으로 결정하고, 그러한 마모의 결정에 기초하여 물리적 어드레스 위치를 철회시키는 것; 그리고/또는 물리적 어드레스 위치들에 대해 남은 데이터 전달 사이클들의 잔여 수량을 예측하고, 데이터 전달 사이클들의 수량의 마지막 데이터 전달 사이클 다음에 복수의 물리적 어드레스 위치들을 철회시키는 것을 포함할 수 있다. 데이터의 강건성이 양호한 실시예에서, 또는 다수의 데이터 전달 사이클들이 남아 있을 때, 제어기는 상이한 레벨들의 에러 정정 동작들을 수행할 것을 결정할 수 있다.
예를 들어, 방법(660)은 제어기에 의해, 제2 레벨의 에러 정정(예를 들어, 도 3의 제N 레벨의 에러 정정(322))을 제공하는 에러 정정 동작의 반복에 제2 레이턴시 정보(예를 들어, 도 3의 레이턴시 정보(326-3))를 부여하는 단계 - 제2 레이턴시 정보는 타임스탬프(예를 들면, 도 3의 타임스탬프(324-3)) 및/또는 초기 타임스탬프(325)에 기초함 - ; 및 제어기에 의해, 제2 레이턴시 정보에 적어도 부분적으로 기초하여, 데이터에 대해, 제2 레벨의 에러 정정을 제공하는 에러 정정 동작의 후속 반복을 수행할 것으로 결정하는 단계를 포함할 수 있다.
예를 들어, 방법(660)은 제어기에 의해, 제2 레벨의 에러 정정을 제공하는 에러 정정 동작의 후속 반복에 상이한 타임스탬프(예를 들어, 도 3의 타임스탬프(324-M))를 부여하는 단계; 및 제어기에 의해, 상이한 타임스탬프 및/또는 초기 타임스탬프에 적어도 부분적으로 기초하여 새로운 레이턴시 정보(예를 들어, 레이턴시 정보(326-S))를 결정하는 단계; 및 상이한 타임스탬프로부터 결정되는 새로운 레이턴시 정보에 기초하여, 복수의 물리적 어드레스 위치들의 강건성에 대응하는 정보를 부여 및/또는 업데이트하는 단계를 포함할 수 있다.
도 6은 본 개시의 다수의 실시예들에 따른 예측 메모리 관리를 위한 예시적인 방법(670)을 나타내는 흐름도이다. 블록 672에서, 방법(670)은 메모리 디바이스(예를 들어, 도 1의 메모리 디바이스(112))에 커플링된 제어기(예를 들어, 도 1의 제어기(110))에 의해, 데이터에 대응하는 물리적 어드레스들의 강건성을 모니터링하는 단계를 포함할 수 있다. 제어기는 호스트(예를 들어, 도 1의 호스트(102))로부터의 데이터 요청들을 모니터링하고, 데이터가 호스트 전송 전에 에러 정정 동작들을 필요로 하는지를 결정할 수 있다.
블록 674에서, 방법(670)은 제어기에 의해, 제어기 상에 상주하는 에러 정정 구성요소를 사용하여 데이터에 대해 수행되는 에러 정정 동작의 반복들에 기초하여 레이턴시 정보를 결정하는 단계 - 에러 정정 구성요소는 에러 정정 구성요소(예를 들어, 도 1의 에러 정정 구성요소(106))를 사용한 다중 레벨 에러 정정을 포함함 - 를 포함한다. 에러 정정 구성요소는 제어기 상에 상주하는 에러 정정 로직(예를 들어, 도 2a 및 도 2b의 초기 ECC 로직(214))을 포함할 수 있고, 에러 정정 동작은 데이터에 대해 다수의 레벨들의 에러 정정(예를 들어, 도 2의 제1 레벨의 에러 정정(218) 및 제N 레벨의 에러 정정(222))을 제공할 수 있다. 방법(670)은 데이터의 강건성을 결정하기 위한 레이턴시 정보를 결정하기 위해 에러 정정 동작들의 반복들에 타임스탬프들을 부여하는 단계를 포함할 수 있다.
예를 들어, 블록 676에서, 방법(670)은 제어기에 의해, 레이턴시 정보에 적어도 부분적으로 기초하여, 데이터에 대응하는 물리적 어드레스들의 강건성을 결정하는 단계를 포함한다. 제어기는 레이턴시 정보를 사용하여, 정정 불가능한 데이터를 호스트에 보고하는 것을 방지할 수 있는 액션을 취할 수 있다. 예를 들어, 블록 678에서, 방법(670)은 레이턴시 정보 및 복수의 물리적 어드레스들의 강건성에 적어도 부분적으로 기초하여, 물리적 어드레스 위치들에 대해 남은 데이터 전달 사이클들의 잔여 수량을 예측하는 단계를 포함한다.
레이턴시 정보는 에러 정정의 각 반복 후에 제어기에 의해 결정될 수 있다. 예를 들어, 방법(670)은 제어기에 의해, 제1 레벨의 에러 정정을 제공하는 에러 정정 동작에 대응하는 레이턴시 정보를 수신하는 단계; 및 제어기에 의해, 제1 레벨의 에러 정정을 제공하는 에러 정정 동작에 대응하는 레이턴시 정보에 기초하여, 데이터에 대응하는 복수의 물리적 어드레스들의 강건성을 결정하는 단계를 포함할 수 있다. 제어기는 제1 레벨의 에러 정정 이후 데이터 전달 사이클들의 잔여 수량을 결정할 수 있다.
예를 들어, 방법(670)은 제어기에 의해, 데이터 전달 사이클들의 잔여 수량을 결정하는 단계; 에러 정정 구성요소를 사용하여, 제1 레벨의 에러 정정을 제공하는 에러 정정 동작에 대응하는 레이턴시 정보 및 데이터에 대응하는 물리적 어드레스들의 강건성에 적어도 부분적으로 기초하여 데이터에 대해 제2 레벨의 에러 정정을 제공하는 에러 정정 동작을 수행하는 단계; 및 제어기에 의해, 제2 레벨의 에러 정정을 제공하는 에러 정정 동작에 대응하는 레이턴시 정보를 결정하는 단계를 포함할 수 있다. 또한, 제어기는 제1 제2 레벨의 에러 정정 이후 데이터 전달 사이클들의 잔여 수량을 결정할 수 있다.
예를 들어, 방법(670)은 데이터 전달 사이클들의 잔여 수량을 결정하는 단계; 및 에러 정정 구성요소를 사용하여, 제2 레벨의 에러 정정을 제공하는 에러 정정 동작에 대응하는 레이턴시 정보 및 데이터에 대응하는 물리적 어드레스들의 강건성에 적어도 부분적으로 기초하여 데이터에 대해 제3 레벨의 에러 정정을 제공하는 에러 정정 동작을 수행하는 단계; 및 제어기에 의해, 제3 레벨의 에러 정정을 제공하는 에러 정정 동작에 대응하는 레이턴시 정보를 결정하는 단계를 포함할 수 있다. 또한, 제어기는 제3 레벨의 에러 정정 이후 데이터 전달 사이클들의 잔여 수량을 결정할 수 있다.
예를 들어, 방법(670)은 데이터 전달 사이클들의 잔여 수량을 결정하는 단계; 레이턴시 정보, 데이터에 대응하는 복수의 물리적 어드레스들의 강건성, 또는 양자에 적어도 부분적으로 기초하여 후속 에러 정정 반복들을 수행하지 않는 단계; 및 제어기에 의해, 레이턴시 정보, 데이터에 대응하는 복수의 물리적 어드레스들의 강건성, 데이터 전달 사이클들의 임계 수량 미만으로 떨어지는 데이터 전달 사이클들의 잔여 수량, 또는 이들의 조합들에 적어도 부분적으로 기초하여 데이터에 대응하는 복수의 물리적 어드레스들을 철회시키는 단계를 포함할 수 있다.
본 명세서에서 구체적인 실시예들이 예시되고 설명되었지만, 해당 기술분야의 통상의 기술자들은 동일한 결과들을 달성하도록 계산된 배열이 제시된 구체적인 실시예들을 대체할 수 있다고 이해할 것이다. 본 개시는 본 개시의 하나 이상의 실시예의 개조 또는 변형을 포괄하는 것으로 의도된다. 상기한 설명은 제한적인 방식이 아니라, 예시적인 방식으로 이루어진 것으로 이해되어야 한다. 상기한 설명을 검토할 때 해당 기술분야의 통상의 기술자들에게 상기한 실시예들, 및 본 명세서에서 구체적으로 설명되지 않은 다른 실시예들의 조합이 명백해질 것이다. 본 개시의 하나 이상의 실시예의 범위는 상기한 구조들 및 프로세스들이 사용되는 다른 적용예들을 포함한다. 따라서, 본 개시의 하나 이상의 실시예의 범위는 첨부된 청구항들을 참조하여, 이러한 청구항들에 부여되는 균등물들의 전체 범위와 함께 결정되어야 한다.
앞에서의 발명을 실시하기 위한 구체적인 내용에서, 본 개시를 간략화하기 위해 몇몇 피처들이 하나의 실시예에서 함께 그룹화된다. 본 개시의 방법은 본 개시의 개시된 실시예들이 각 청구항에 명시적으로 나열된 것보다 더 많은 특징들을 사용해야 한다는 의도를 반영하는 것으로서 해석되지 않아야 한다. 더 정확히 말하면, 다음의 청구항들이 반영하는 바와 같이, 본 발명의 요지는 하나의 개시된 실시예의 모든 특징들보다 더 적은 특징들에 있다. 이에 따라, 다음의 청구항들은 이에 의해 발명을 실시하기 위한 구체적인 내용으로 통합되며, 각 청구항은 별개의 실시예로서 독립적이다.

Claims (22)

  1. 방법으로서,
    제어기에 의해, 상기 제어기에 의해 수신된 데이터에 대해 수행된 하나 이상의 에러 정정 동작에 대응하는 레이턴시 정보를 결정하는 단계;
    상기 레이턴시 정보에 기초하여, 상기 데이터에 대응하는 복수의 물리적 어드레스 위치들의 강건성(health)에 대응하는 정보를 부여하는 단계;
    상기 레이턴시 정보 또는 상기 복수의 물리적 어드레스 위치들의 상기 강건성에 대응하는 상기 정보에 기초하여, 상기 데이터에 대응하는 상기 복수의 물리적 어드레스 위치들 중의 물리적 어드레스 위치에 대응하는 마모량을 예측하는 단계;
    상기 복수의 물리적 어드레스 위치들 중의 상기 물리적 어드레스 위치의 예측되는 상기 강건성에 기초하여 데이터 전달 사이클들의 잔여 수량을 부여하는 단계; 및
    상기 제어기에 의해, 상기 레이턴시 정보, 상기 데이터에 대응하는 상기 복수의 물리적 어드레스 위치들 중의 상기 물리적 어드레스 위치의 상기 강건성, 및 데이터 전달 사이클들의 임계 수량 미만인 상기 데이터 전달 사이클들의 잔여 수량에 적어도 부분적으로 기초하여 상기 데이터에 대응하는 상기 복수의 물리적 어드레스 위치들 중의 상기 물리적 어드레스 위치를 철회시키는 단계를 포함하는, 방법.
  2. 제1항에 있어서,
    상기 레이턴시 정보에 적어도 부분적으로 기초하여 상기 복수의 물리적 어드레스 위치들 중 하나의 물리적 어드레스 위치가 열화(degrade)된 것으로 결정하는 단계; 및
    예측되는 상기 마모량에 부분적으로 기초하여, 상기 데이터에 대응하는 상기 물리적 어드레스 위치를 철회시키는 단계를 더 포함하는, 방법.
  3. 제1항에 있어서, 데이터 전달 사이클들의 상기 수량의 마지막 데이터 전달 사이클 다음에 상기 복수의 물리적 어드레스 위치들을 철회시킴으로써 상기 레이턴시 정보에 적어도 부분적으로 기초하여, 상기 복수의 물리적 어드레스 위치들에 대해 남은 데이터 전달 사이클들의 잔여 수량을 예측하는 단계를 더 포함하는, 방법.
  4. 제1항에 있어서,
    상기 제어기에 의해, 제1 레벨의 에러 정정을 제공하는 상기 에러 정정 동작의 반복에 제1 타임스탬프를 부여하는 단계; 및
    상기 제어기에 의해, 상기 제1 타임스탬프로부터 결정되는 상기 레이턴시 정보에 적어도 부분적으로 기초하여, 상기 데이터에 대해, 상기 제1 레벨의 에러 정정을 제공하는 상기 에러 정정 동작의 후속 반복을 수행할 것으로 결정하는 단계를 더 포함하는, 방법.
  5. 제4항에 있어서,
    상기 제어기에 의해, 상기 제1 레벨의 에러 정정을 제공하는 상기 에러 정정 동작의 상기 후속 반복에 제2 타임스탬프를 부여하는 단계; 및
    상기 제어기에 의해, 상기 제2 타임스탬프에 적어도 부분적으로 기초하여 상기 레이턴시 정보를 결정하는 단계; 및
    상기 제2 타임스탬프로부터 결정되는 상기 레이턴시 정보에 기초하여, 상기 복수의 물리적 어드레스 위치들의 상기 강건성에 대응하는 상기 정보를 부여하는 단계를 더 포함하는, 방법.
  6. 제1항에 있어서,
    상기 제어기에 의해, 제2 레벨의 에러 정정을 제공하는 상기 에러 정정 동작의 반복에 제2 레이턴시 정보를 부여하는 단계 - 상기 제2 레이턴시 정보는 타임스탬프에 기초함 -; 및
    상기 제어기에 의해, 상기 제2 레이턴시 정보에 적어도 부분적으로 기초하여, 상기 데이터에 대해, 상기 제2 레벨의 에러 정정을 제공하는 상기 에러 정정 동작의 후속 반복을 수행할 것으로 결정하는 단계를 더 포함하는, 방법.
  7. 제6항에 있어서,
    상기 제어기에 의해, 상기 제2 레벨의 에러 정정을 제공하는 상기 에러 정정 동작의 상기 후속 반복에 상이한 타임스탬프를 부여하는 단계; 및
    상기 제어기에 의해, 상기 상이한 타임스탬프에 적어도 부분적으로 기초하여 새로운 레이턴시 정보를 결정하는 단계; 및
    상기 상이한 타임스탬프로부터 결정되는 상기 새로운 레이턴시 정보에 기초하여, 상기 복수의 물리적 어드레스 위치들의 상기 강건성에 대응하는 상기 정보를 부여하는 단계를 더 포함하는, 방법.
  8. 방법으로서,
    메모리 디바이스에 커플링된 제어기에 의해, 데이터에 대응하는 복수의 물리적 어드레스들의 강건성을 모니터링하는 단계;
    상기 제어기에 의해, 상기 제어기 상에 상주하는 에러 정정 구성요소를 사용하여 상기 데이터에 대해 수행되는 에러 정정 동작의 반복들에 기초하여 레이턴시 정보를 결정하는 단계 - 상기 에러 정정 구성요소는 다중 레벨 에러 정정을 포함함 -;
    상기 제어기에 의해, 상기 레이턴시 정보에 적어도 부분적으로 기초하여, 상기 데이터에 대응하는 상기 복수의 물리적 어드레스들의 상기 강건성을 결정하는 단계;
    상기 데이터에 대응하는 상기 복수의 물리적 어드레스 위치들 중의 물리적 어드레스 위치에 대응하는 마모량을 예측함으로써 상기 레이턴시 정보 및 상기 복수의 물리적 어드레스들의 상기 강건성에 적어도 부분적으로 기초하여, 상기 복수의 물리적 어드레스들에 대해 남은 데이터 전달 사이클들의 잔여 수량을 예측하는 단계;
    상기 물리적 어드레스 위치가 후속 데이터 사이클들 내에서 임계 예측 마모 수준을 초과할 것이라는 결정된 가능성에 기초하여 상기 복수의 물리적 어드레스 위치들 중의 상기 물리적 어드레스 위치를 철회시키는 단계; 및
    상기 제어기에 의해, 상기 레이턴시 정보, 상기 데이터에 대응하는 상기 복수의 물리적 어드레스들 중의 상기 물리적 어드레스 위치의 상기 강건성, 및 데이터 전달 사이클의 임계 수량 미만인 상기 데이터 전달 사이클들의 잔여 수량에 적어도 부분적으로 기초하여 상기 데이터에 대응하는 상기 복수의 물리적 어드레스들 중의 상기 물리적 어드레스 위치를 철회시키는 단계를 포함하는, 방법.
  9. 제8항에 있어서,
    상기 제어기에 의해, 제1 레벨의 에러 정정을 제공하는 상기 에러 정정 동작에 대응하는 레이턴시 정보를 수신하는 단계;
    상기 제어기에 의해, 상기 제1 레벨의 에러 정정을 제공하는 상기 에러 정정 동작에 대응하는 상기 레이턴시 정보에 기초하여, 상기 데이터에 대응하는 상기 복수의 물리적 어드레스들의 상기 강건성을 결정하는 단계;
    상기 제어기에 의해, 제2 레벨의 에러 정정을 제공하는 에러 정정 동작에 대응하는 레이턴시 정보를 결정하는 단계; 및
    상기 제어기에 의해, 제3 레벨의 에러 정정을 제공하는 에러 정정 동작에 대응하는 레이턴시 정보를 결정하는 단계를 더 포함하는, 방법.
  10. 제8항에 있어서,
    데이터 전달 사이클들의 상기 잔여 수량을 결정하는 단계;
    상기 레이턴시 정보, 상기 데이터에 대응하는 상기 복수의 물리적 어드레스들의 상기 강건성, 또는 양자에 적어도 부분적으로 기초하여 후속 에러 정정 반복들을 수행하지 않는 단계; 및
    상기 제어기에 의해, 상기 레이턴시 정보, 상기 데이터에 대응하는 상기 복수의 물리적 어드레스들의 상기 강건성, 데이터 전달 사이클들의 임계 수량 미만으로 떨어지는 데이터 전달 사이클들의 상기 잔여 수량, 또는 이들의 조합들에 적어도 부분적으로 기초하여 상기 데이터에 대응하는 상기 복수의 물리적 어드레스들을 철회시키는 단계를 더 포함하는, 방법.
  11. 장치로서,
    메모리 디바이스에 커플링된 제어기를 포함하며, 상기 제어기는 상주하는 에러 정정 구성요소를 포함하되, 상기 제어기는:
    상기 에러 정정 구성요소를 사용하여, 상기 메모리 디바이스의 복수의 물리적 어드레스 위치들에 대응하는 데이터에 대해 초기 에러 정정 동작을 수행하도록;
    상기 초기 에러 정정 동작에 제1 타임스탬프를 부여하도록;
    상기 에러 정정 구성요소를 사용하여, 후속 에러 정정 동작을 수행하도록;
    상기 후속 에러 정정 동작에 제2 타임스탬프를 부여하도록;
    상기 제1 타임스탬프 및 상기 제2 타임스탬프 동작에 적어도 부분적으로 기초하여, 상기 초기 에러 정정 동작 및 상기 후속 에러 정정 동작에 대응하는 레이턴시 정보를 결정하도록;
    상기 레이턴시 정보에 기초하여, 상기 데이터에 대응하는 상기 복수의 물리적 어드레스 위치들의 강건성에 대응하는 정보를 부여하도록;
    상기 데이터에 대응하는 상기 복수의 물리적 어드레스 위치들의 상기 강건성 정보에 기초하여 데이터 전달 사이클들의 잔여 수량을 부여하도록;
    상기 데이터에 대응하는 상기 복수의 물리적 어드레스 위치들이 후속 데이터 사이클들 내에서 임계 예측 마모 수준을 초과할 것이라는 결정된 가능성에 기초하여 상기 데이터에 대응하는 상기 복수의 물리적 어드레스 위치들을 철회시키도록; 그리고
    상기 제어기에 의해, 상기 레이턴시 정보, 상기 데이터에 대응하는 상기 복수의 물리적 어드레스 위치들의 상기 강건성, 및 데이터 전달 사이클들의 임계 수량 미만으로 떨어지는 데이터 전달 사이클들의 상기 잔여 수량에 적어도 부분적으로 기초하여 상기 데이터에 대응하는 상기 복수의 물리적 어드레스 위치들을 철회시키도록 구성된 것인, 장치.
  12. 제11항에 있어서, 잔류 비트 에러율(residual bit error rate, RBER)과 연관되는 레이턴시 정보가 각 후속 에러 정정 동작 후에 결정되고, 상기 복수의 물리적 어드레스 위치들의 상기 강건성은 각 후속 에러 정정 동작 후에 결정되는 상기 레이턴시 정보에 부분적으로 기초하여 결정되는 것인, 장치.
  13. 제11항에 있어서, 상기 제어기는 또한:
    상기 복수의 물리적 어드레스 위치들의 상기 강건성에 대응하는 상기 정보가 후속 데이터 사이클들의 특정 수량 내에서 상기 복수의 물리적 어드레스 위치들 중 하나 이상이 장애를 경험함을 나타내는지를 결정하도록; 그리고
    상기 복수의 물리적 어드레스 위치들 중 상기 하나 이상이 상기 부여된 강건성 정보의 후속 데이터 사이클들의 상기 특정 수량 내에서 상기 장애를 경험할 것이라는 결정된 가능성에 기초하여 상기 복수의 물리 어드레스 위치들을 철회시키도록 구성된 것인, 장치.
  14. 시스템으로서,
    호스트; 및
    상기 호스트에 커플링된 메모리 시스템을 포함하며, 상기 메모리 시스템은 상기 메모리 시스템 상의 제어기를 포함하되, 상기 제어기는:
    메모리 디바이스로부터, 상기 호스트의 동작에 대응하는 데이터를 수신하도록;
    상이한 각 이산적 판독 전압들에서 복수의 초기 에러 정정 동작들을 수행하도록 - 상기 복수의 초기 에러 정정 동작들은 상기 데이터에 대한 제1 레벨의 에러 정정에 대응함 -;
    상기 각 이산적 판독 전압들에서의 각 반복들의 수행 사이의 시구간에 기초하여 상기 복수의 초기 에러 정정 동작들을 수행하는 것과 연관된 레이턴시 정보를 결정하도록;
    상기 결정된 레이턴시 정보에 적어도 부분적으로 기초하여 상기 데이터에 대한 제2 레벨의 에러 정정에 대응하는 적어도 하나의 후속 에러 정정 동작을 수행하도록;
    상기 적어도 하나의 후속 에러 정정 동작의 각 에러 정정 동작들을 수행하는 데 소모되는 시구간에 기초하여 상기 적어도 하나의 후속 에러 정정 동작을 수행하는 것과 연관된 레이턴시 정보를 결정하도록;
    수행되는 후속 에러 정정 동작들의 수량에 기초하여 상기 데이터에 대응하는 물리적 어드레스 위치들에 대한 강건성 정보를 결정하도록;
    상기 데이터에 대응하는 상기 복수의 물리적 어드레스 위치들의 상기 강건성 정보에 기초하여 데이터 전달 사이클들의 잔여 수량을 부여하도록;
    상기 데이터에 대응하는 상기 복수의 물리적 어드레스 위치들이 후속 데이터 사이클들 내에서 임계 예측 마모 수준을 초과할 것이라는 결정된 가능성에 기초하여 상기 데이터에 대응하는 상기 복수의 물리적 어드레스 위치들을 철회시키도록; 그리고
    상기 제어기에 의해, 상기 레이턴시 정보, 상기 데이터에 대응하는 상기 복수의 물리적 어드레스 위치들의 상기 강건성, 및 데이터 전달 사이클들의 임계 수량 미만으로 떨어지는 데이터 전달 사이클들의 상기 잔여 수량에 적어도 부분적으로 기초하여 상기 데이터에 대응하는 상기 복수의 물리적 어드레스 위치들을 철회시키도록 구성된 것인, 시스템.
  15. 제14항에 있어서, 상기 제어기는 또한:
    상기 적어도 하나의 후속 에러 정정 동작과 연관된 상기 레이턴시 정보에 적어도 부분적으로 기초하여, 상기 복수의 물리적 어드레스들에 대해 남은 데이터 전달 사이클들의 잔여 수량을 예측하도록;
    상기 복수의 물리 어드레스들에 대해 남은 데이터 전달 사이클들의 상기 예측된 잔여 수량에 적어도 부분적으로 기초하여, 상기 복수의 물리적 어드레스들에 대해 남은 데이터 전달 사이클들의 잔여 수량의 수량을 부여하도록; 그리고
    상기 데이터 전달 사이클들의 상기 수량이 완료된 후에 상기 복수의 물리적 어드레스들을 철회시키도록 더 구성된 것인, 시스템.
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
  21. 삭제
  22. 삭제
KR1020227001795A 2019-08-20 2020-08-18 예측 메모리 관리 KR102440704B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/545,372 2019-08-20
US16/545,372 US11150812B2 (en) 2019-08-20 2019-08-20 Predictive memory management
PCT/US2020/046730 WO2021034788A1 (en) 2019-08-20 2020-08-18 Predictive memory management

Publications (2)

Publication Number Publication Date
KR20220013008A KR20220013008A (ko) 2022-02-04
KR102440704B1 true KR102440704B1 (ko) 2022-09-07

Family

ID=74645847

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227001795A KR102440704B1 (ko) 2019-08-20 2020-08-18 예측 메모리 관리

Country Status (5)

Country Link
US (2) US11150812B2 (ko)
KR (1) KR102440704B1 (ko)
CN (1) CN114223033B (ko)
DE (1) DE112020003961T5 (ko)
WO (1) WO2021034788A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11150812B2 (en) * 2019-08-20 2021-10-19 Micron Technology, Inc. Predictive memory management
CN114860150A (zh) * 2021-02-04 2022-08-05 戴尔产品有限公司 在存储群集的存储系统之间执行损耗均衡

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130111298A1 (en) 2011-10-31 2013-05-02 Apple Inc. Systems and methods for obtaining and using nonvolatile memory health information
US20130339574A1 (en) 2012-06-18 2013-12-19 International Business Machines Corporation Variability aware wear leveling
US20190171381A1 (en) 2017-12-06 2019-06-06 International Business Machines Corporation Reducing unnecessary calibration of a memory unit for which the error count margin has been exceeded
US20190278498A1 (en) 2018-03-08 2019-09-12 Toshiba Memory Corporation Workload-Adaptive Overprovisioning in Solid State Storage Drive Arrays

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7352621B2 (en) 2005-06-23 2008-04-01 Intel Corporation Method for enhanced block management
WO2008070814A2 (en) 2006-12-06 2008-06-12 Fusion Multisystems, Inc. (Dba Fusion-Io) Apparatus, system, and method for a scalable, composite, reconfigurable backplane
JP5014821B2 (ja) 2007-02-06 2012-08-29 株式会社日立製作所 ストレージシステム及びその制御方法
US7681089B2 (en) 2007-02-20 2010-03-16 Dot Hill Systems Corporation Redundant storage controller system with enhanced failure analysis capability
US7804718B2 (en) * 2007-03-07 2010-09-28 Mosaid Technologies Incorporated Partial block erase architecture for flash memory
US8473779B2 (en) 2008-02-29 2013-06-25 Assurance Software And Hardware Solutions, Llc Systems and methods for error correction and detection, isolation, and recovery of faults in a fail-in-place storage array
US8037380B2 (en) 2008-07-08 2011-10-11 International Business Machines Corporation Verifying data integrity of a non-volatile memory system during data caching process
US8380915B2 (en) * 2010-01-27 2013-02-19 Fusion-Io, Inc. Apparatus, system, and method for managing solid-state storage media
US8495435B2 (en) 2010-09-22 2013-07-23 Intel Corporation Dynamic physical memory replacement through address swapping
US8990538B2 (en) * 2010-11-05 2015-03-24 Microsoft Corporation Managing memory with limited write cycles in heterogeneous memory systems
US9519586B2 (en) * 2013-01-21 2016-12-13 Qualcomm Incorporated Methods and apparatus to reduce cache pollution caused by data prefetching
US9195396B2 (en) * 2013-03-14 2015-11-24 SanDisk Technologies, Inc. Estimating access frequency statistics for storage device
US10475523B2 (en) * 2013-05-31 2019-11-12 Western Digital Technologies, Inc. Updating read voltages triggered by the rate of temperature change
US9535774B2 (en) * 2013-09-09 2017-01-03 International Business Machines Corporation Methods, apparatus and system for notification of predictable memory failure
US9513815B2 (en) * 2013-12-19 2016-12-06 Macronix International Co., Ltd. Memory management based on usage specifications
US9299457B2 (en) 2014-02-23 2016-03-29 Qualcomm Incorporated Kernel masking of DRAM defects
US9990279B2 (en) * 2014-12-23 2018-06-05 International Business Machines Corporation Page-level health equalization
US9654148B2 (en) * 2015-01-06 2017-05-16 Samsung Electronics Co., Ltd. Reconfigurable ECC for memory
US9946596B2 (en) 2016-01-29 2018-04-17 Toshiba Memory Corporation Global error recovery system
US9904594B2 (en) * 2016-04-15 2018-02-27 Micron Technology, Inc. Monitoring error correction operations performed in memory
US10929232B2 (en) * 2017-05-31 2021-02-23 Intel Corporation Delayed error processing
KR102420025B1 (ko) 2017-06-19 2022-07-13 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
US10700706B2 (en) * 2017-09-22 2020-06-30 SK Hynix Inc. Memory system with decoders and method of operating such memory system and decoders
US10990304B2 (en) * 2019-06-27 2021-04-27 Western Digital Technologies, Inc. Two-dimensional scalable versatile storage format for data storage devices
US11150812B2 (en) * 2019-08-20 2021-10-19 Micron Technology, Inc. Predictive memory management

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130111298A1 (en) 2011-10-31 2013-05-02 Apple Inc. Systems and methods for obtaining and using nonvolatile memory health information
US20130339574A1 (en) 2012-06-18 2013-12-19 International Business Machines Corporation Variability aware wear leveling
US20190171381A1 (en) 2017-12-06 2019-06-06 International Business Machines Corporation Reducing unnecessary calibration of a memory unit for which the error count margin has been exceeded
US20190278498A1 (en) 2018-03-08 2019-09-12 Toshiba Memory Corporation Workload-Adaptive Overprovisioning in Solid State Storage Drive Arrays

Also Published As

Publication number Publication date
WO2021034788A1 (en) 2021-02-25
US20220027058A1 (en) 2022-01-27
US11150812B2 (en) 2021-10-19
KR20220013008A (ko) 2022-02-04
CN114223033A (zh) 2022-03-22
US11714558B2 (en) 2023-08-01
CN114223033B (zh) 2023-02-21
DE112020003961T5 (de) 2022-08-18
US20210055868A1 (en) 2021-02-25

Similar Documents

Publication Publication Date Title
US11334413B2 (en) Estimating an error rate associated with memory
KR102102828B1 (ko) 메모리에서 에러 정정 코드(ecc) 연산
CN113628663B (zh) 计算经优化读取电压
KR20130135938A (ko) 데이터 감지 방법, 디바이스 및 시스템
CN113628664B (zh) 对从存储器单元读取软位和硬位的改进
US11714558B2 (en) Predictive memory management
US10120753B2 (en) Methods and apparatuses for error correction
US20230100557A1 (en) Host-based error correction
CN111538621B (zh) 针对位线故障的软芯片猎杀恢复
CN116168753A (zh) 存储器装置缺陷扫描
US20240127900A1 (en) Performing selective copyback in memory devices
US10223198B2 (en) Error rate reduction
US20230145358A1 (en) Copyback clear command for performing a scan and read in a memory device
US10084487B2 (en) Apparatuses and methods for erasure-assisted ECC decoding
US11656931B2 (en) Selective sampling of a data unit based on program/erase execution time
US11842787B2 (en) Error read flow component
US20240054046A1 (en) Error-handling management during copyback operations in memory devices
US20230393938A1 (en) Memory compaction management in memory devices

Legal Events

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