KR102645583B1 - 예측성 메모리 유지보수 - Google Patents

예측성 메모리 유지보수 Download PDF

Info

Publication number
KR102645583B1
KR102645583B1 KR1020187014383A KR20187014383A KR102645583B1 KR 102645583 B1 KR102645583 B1 KR 102645583B1 KR 1020187014383 A KR1020187014383 A KR 1020187014383A KR 20187014383 A KR20187014383 A KR 20187014383A KR 102645583 B1 KR102645583 B1 KR 102645583B1
Authority
KR
South Korea
Prior art keywords
memory
memory die
die
data
read data
Prior art date
Application number
KR1020187014383A
Other languages
English (en)
Other versions
KR20180087256A (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 KR20180087256A publication Critical patent/KR20180087256A/ko
Application granted granted Critical
Publication of KR102645583B1 publication Critical patent/KR102645583B1/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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1658Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/78Masking faults in memories by using spares or by reconfiguring using programmable devices
    • G11C29/80Masking faults in memories by using spares or by reconfiguring using programmable devices with improved layout
    • G11C29/808Masking faults in memories by using spares or by reconfiguring using programmable devices with improved layout using a flexible replacement scheme
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1666Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/006Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation at wafer scale level, i.e. wafer scale integration [WSI]
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements

Abstract

본 명세서의 일 양태에 따른 예측성 메모리 유지보수는 어레이의 선택된 1차 메모리 다이의 고장을 예상할 수 있고, 선택된 메모리 다이의 임의의 실제 고장이 있기 전에, 고장 가능성이 있는 것으로 여겨지는 선택된 1차 메모리 다이의 데이터를 스페어 메모리 다이에 프리로드할 수 있다. 선택된 1차 메모리 다이가 후속하여 고장나는 이벤트에서, 선택된 1차 메모리 다이의 데이터가 프리로드된 스페어 메모리 다이는 고장난 1차 메모리 다이의 데이터의 기존의 사본으로 고장난 1차 메모리 다이를 용이하게 대신할 수 있다. 본 명세서에는 다른 양태들도 설명된다.

Description

예측성 메모리 유지보수
본 발명은 일반적으로 스페어 메모리 다이들(spare memory dies)을 갖는 디바이스들에 관한 것이다.
랜덤 액세스 메모리(RAM)들은 종종 다수의 메모리 다이들을 활용하는데, 여기서 각각의 메모리 다이는 별개의 반도체 기판을 갖고, 그 위에 메모리 집적 회로가 제조된다. 메모리 다이들은 흔히 다이들의 어레이로 배열되며, 여기서 메모리 어레이의 전체 데이터 저장 용량은 함께 합산되는 각각의 개별 메모리 다이의 저장 용량의 합이다.
메모리 어레이의 메모리 다이는 다양한 원인들로 인해 고장날 수 있다. 플래시 메모리는 종종 "다이 스페어링(die sparing)"이라고 지칭되는 피처를 채용할 수 있는데, 여기서는 1차 메모리 다이(primary memory die)들 중 하나가 고장나는 이벤트에서 해당 1차 메모리 다이를 대체하기 위해 추가의 메모리 다이(extra memory die)가 제공된다. 예를 들어, 메모리 어레이는 10개의 1차 메모리 다이를 가질 수 있으며, 여기서 시스템은 정규 데이터 입/출력 동작들과 관련하여 데이터를 저장하고 데이터를 판독한다. 추가의 메모리 다이가 스페어 또는 2차 메모리 다이로서 어레이에 포함될 수 있지만, 통상적으로 이것은 어레이의 고장난 1차 메모리 다이를 대체하기 위해 사용되기 전까지는 능동적으로 사용되지 않는다. 따라서, 데이터 입/출력 동작들은 통상적으로 데이터 저장 동작들을 위해 10개의 1차 메모리 다이에는 액세스하지만, 통상적으로 스페어 다이가 1차 메모리 다이를 대체하기 전까지 스페어 메모리 다이에는 액세스하지 않는다.
1차 메모리 다이의 고장을 검출하면, 고장난 1차 메모리 다이에 이전에 저장된 데이터는 후속적으로 스페어 메모리 다이에 저장되어, 스페어 메모리 다이가 고장난 1차 메모리 다이 대신에 1차 메모리 다이로서 사용될 수 있다. 고장난 1차 메모리 다이에 저장된 데이터는 검색가능하지 않을 수 있기 때문에, 고장난 1차 메모리 다이의 누락된 데이터를 재구성하고, 재구성된 데이터를 고장난 메모리 다이의 대체 메모리 다이로서 사용되는 스페어 메모리 다이에 저장하기 위해 데이터 복구 기술들이 채용될 수 있다.
데이터 에러들을 검출하고 정정하기 위한 다양한 공지된 에러 정정 코드(error correction code)(ECC) 기술들이 있는데, 이는 예를 들어, 블록 단위로 데이터를 처리하는 리드-솔로몬(Reed-Solomon) 에러 정정 코드들과 같은 블록 코드들, 및 예를 들어, 비트 단위로 데이터를 처리하는 콘볼루션 코드(convolutional code)들을 포함한다. 예를 들어, 지구와 우주 탐사체들 간의 데이터의 심우주 송신, 및 콤팩트 디스크 기록 및 재생 디바이스들과 같은 일부 애플리케이션들에서는, 예를 들어, 데이터에 대해 순차적으로 동작하기 위해, 외부 ECC 스킴과 내부 ECC 스킴으로서 함께 연접되는(concatenated) 2개의 상이한 ECC 스킴을 사용하여 데이터를 두 번 인코딩하는 것으로 알려져 있다. ECC 기술들을 연접함으로써, ECC 기술들 중 단지 하나만을 채용하는 것에 비해, 일부 애플리케이션들에서 에러 검출 및 정정이 강화될 수 있다.
도 1은 본 명세서의 일 양태에 따른 예측성 메모리 유지보수(predictive memory maintenance)를 채용하는 컴퓨터 아키텍처 디바이스의 일 실시예의 개략도이다.
도 2는 본 명세서에 따른 예측성 메모리 유지보수의 일 실시예를 채용하는 메모리의 동작들의 예를 도시한다.
도 3은 본 명세서의 일 실시예에 따른 예측성 메모리 유지보수 로직의 일례의 보다 상세한 개략도이다.
도 4a는, 선택된 1차 메모리 다이의 임의의 고장 검출 이전에, 선택된 동작 1차 메모리 다이(operational primary memory die)로부터 스페어 메모리 다이로의 미러링 동작들의 예를 도시한다.
도 4b는, 선택된 1차 메모리 다이의 임의의 고장 검출 이전에, 상이한 선택된 동작 1차 메모리 다이로부터 스페어 메모리 다이로의 미러링 동작들의 다른 예를 도시한다.
도 5는 본 명세서의 일 양태에 따른 예측성 메모리 유지보수를 채용하는 에러 정정 코드 로직의 일 실시예의 개략도이다.
도 6은 본 명세서의 일 양태에 따른 예측성 메모리 유지보수와 관련하여 도 5의 에러 정정 코드 로직의 에러 검출 및 정정 동작들의 예를 도시한다.
도 7a는 본 명세서의 일 양태에 따른 예측성 메모리 유지보수와 관련하여 도 5의 에러 정정 코드 로직에 대한 인코딩된 판독 데이터의 데이터 판독 동작의 예를 도시한다.
도 7b는 본 명세서의 일 양태에 따른 예측성 메모리 유지보수와 관련하여 도 5의 에러 정정 코드 로직에 대한 인코딩된 판독 데이터의 데이터 판독 동작의 다른 예를 도시한다.
본 명세서의 일 양태에 따른 예측성 메모리 유지보수는 어레이의 선택된 1차 메모리 다이의 고장을 예상할 수 있고, 선택된 메모리 다이의 임의의 실제 고장 전에, 고장 가능성(likelihood)이 있는 것으로 여겨지는 선택된 1차 메모리 다이의 데이터를 스페어 메모리 다이에 프리로드할 수 있다. 선택된 1차 메모리 다이가 후속하여 고장나는 이벤트에서, 선택된 1차 메모리 다이의 데이터가 프리로드된 스페어 메모리 다이는 고장난 1차 메모리 다이의 데이터의 기존의 사본으로 고장난 1차 메모리 다이를 용이하게 대신할 수 있다. 그 결과, 1차 메모리 다이가 고장난 후에 스페어 메모리를 로드하려는 시도들에 의한 지연이 거의 야기되지 않거나 전혀 야기되지 않고, 고장난 1차 다이를 고장난 메모리 다이의 데이터가 프리로드된 스페어 메모리 다이로 대체하는 것이 달성될 수 있다. 결과적으로, 1차 메모리 다이의 고장의 결과로서 데이터 저장 동작들에 대한 긴 지속기간의 중단들이 감소되거나 제거될 수 있다.
1차 메모리 다이가 고장난 후에, 특히, 예를 들어, 제2의 1차 메모리 다이의 고장 또는 다른 오동작과 같은 다른 데이터 에러들이 발생하는 이벤트에서, 고장난 1차 메모리 다이의 데이터를 재구성하려는 시도들은 고장에 대한 노출을 증가시킬 수 있다는 것이 추가로 인정될 것이다. 본 명세서에 따르면, 고장날 가능성이 가장 높은 것으로 여겨지는 1차 메모리 다이가 실제로 고장나기 전에, 이것의 데이터를 스페어 메모리 다이에 프리로드함으로써, 메모리 다이의 고장이 이미 발생한 후에 개시되는 재구성 동작들에 의해 생성되는 데이터에 비해, 프리로드된 데이터의 정확성이 향상될 수 있다.
일 실시예에서, 본 명세서에 따른 예측성 메모리 유지보수는 비휘발성 3차원(3D) 크로스포인트 메모리에 적용된다. 본 명세서에 따른 예측성 메모리 유지보수는, 전술한 3차원(3D) 크로스포인트 메모리 외에, 예를 들어, 스핀 토크 전달(spin torque transfer)(STT) 랜덤 액세스 메모리(RAM), 상 변화 메모리, 자기 RAM, 저항성 메모리, 나노와이어 메모리, 강유전체 트랜지스터 랜덤 액세스 메모리(ferro-electric transistor random access memory)(FeTRAM), NAND 또는 NOR와 같은 플래시 메모리와 같은 비휘발성 메모리, 및 2D RAM과 같은 휘발성 메모리를 포함하여, 다양한 상이한 타입들의 메모리 디바이스들을 채용하는 시스템들에 적용될 수 있다. 다른 타입들의 메모리 또한 적절할 수 있다.
도 1은 본 명세서의 일 양태에 따른 예측성 메모리 유지보수를 채용하는 컴퓨터 아키텍처 디바이스(100)의 일 실시예를 예시한다. 컴퓨터 아키텍처 디바이스(100)는 메인프레임, 서버, 퍼스널 컴퓨터, 워크스테이션, 전화 디바이스, 네트워크 어플라이언스, 가상화 디바이스, 저장 컨트롤러, 휴대용 또는 모바일 디바이스들(예를 들어, 랩톱들, 넷북들, 태블릿 컴퓨터들, PDA(personal digital assistant)들, 휴대용 미디어 플레이어들, 휴대용 게임 디바이스들, 디지털 카메라들, 모바일폰들, 스마트폰들, 피처폰들 등) 또는 컴포넌트(예를 들어, 시스템 온 칩, 프로세서, 브리지, 메모리 컨트롤러, 메모리 등)와 같이 본 기술분야에서 공지된 임의의 컴퓨팅 디바이스를 포함할 수 있다. 아키텍처 디바이스(100)는 프로세서(102)(예를 들어, 마이크로프로세서), 메모리(104)(예를 들어, 휘발성 또는 비휘발성 메모리 디바이스), 및 메모리(104)로의/로부터의 입/출력 동작들을 제어하는 메모리 컨트롤러(106)를 포함할 수 있다.
아래에서 보다 상세하게 설명되는 바와 같이, 메모리 컨트롤러(106)는, 특정 측정된 성능 특성들에 기초하여 고장날 가능성이 가장 높은 것으로 여겨지는 메모리(104)의 어레이의 1차 메모리 다이를 식별 및 선택하고, 선택된 1차 메모리 다이의 고장 전에, 선택된 1차 메모리 다이의 데이터를 스페어 메모리 다이에 프리로드할 수 있는 예측성 메모리 유지보수 로직 회로(110)를 포함한다. 그 결과, 선택된 1차 메모리 다이가 실제로 고장나면, 메모리(104)의 1차 메모리 다이의 고장의 결과로서, 최소량의 중단 및 지연을 갖는 데이터 전송 동작들의 지속이 용이해질 수 있다.
다른 양태에서, 예측성 메모리 유지보수 로직 회로(110)는, 각각의 1차 메모리 다이에 대한 성능 데이터가 누적됨에 따라, 메모리(104)의 어레이의 어느 1차 메모리 다이가 고장날 가능성이 가장 높은지를 주기적으로 또는 순환적으로 재평가할 수 있다. 그 결과, 상이한 1차 메모리 다이의 비교 성능 특성들이 이전에 선택된 1차 메모리 다이보다 더 크게 악화되는 경우, 스페어 메모리 다이에 프리로드하기 위한 소스로서 선택된 1차 메모리 다이가 변경될 수 있다. 따라서, 1차 메모리 다이가 실제로 고장나면, 스페어 메모리 다이에 고장난 1차 메모리 다이의 데이터가 이미 프리로드되어 있을 확률이 향상될 수 있다.
또 다른 양태에서, 본 명세서에 따른 예측성 메모리 유지보수 동작들은 1차 메모리 다이의 실제 고장 이전에 데이터 전송 동작들을 향상시킬 수 있다. 예를 들어, 메모리로부터 판독된 판독 데이터에 대한 데이터 정정이 실패한 경우, 고장날 가능성이 가장 높은 것으로 선택된 1차 메모리 다이로부터 획득된 판독 데이터가 스페어 메모리 다이로부터의 미러링된 판독 데이터로 치환될 수 있다. 그 결과, 고장날 가능성이 가장 높은 메모리 다이로서 선택된 1차 메모리 다이보다 더 낮은 비트 에러 레이트를 나타낼 가능성이 더 많은 스페어 메모리 다이로부터의 미러링된 판독 데이터의 치환에 의해, 원래의 판독 데이터에서 검출된 에러들이 제거될 수도 있고, 또는 더 많은 정정이 가능하게 될 수 있다.
예시된 실시예에서, 메모리 컨트롤러(106)는 디바이스(100) 내의 하나 이상의 반도체 다이 상에 배치되고, 예측성 메모리 유지보수 로직 회로(110)는 메모리 컨트롤러(106)의 동일한 다이 또는 다이들 상에 배치될 수 있다. 비록 예측성 메모리 유지보수 회로(110)가 메모리 컨트롤러(106)의 일부로서 도시되어 있지만, 예측성 메모리 유지보수 로직 회로(110)는 컴퓨터 아키텍처 디바이스(100)의 다른 회로들의 일부로서 제조될 수 있다는 것이 인정될 것이다. 예를 들어, 일 실시예에서, 메모리(104)의 메모리 다이들 중 하나 이상의 메모리 다이는 메모리 컨트롤러(106) 또는 예측성 메모리 유지보수 로직 회로(110)에 대한 로직 다이 또는 다이들과 동일한 패키지에 포함될 수 있다. 따라서, 일 실시예에서, 메모리 컨트롤러(106)의 반도체 다이 및 메모리(104)의 다이들은 듀얼 인라인 메모리 모듈(dual in line memory module)(DIMM)과 같은 플러그 인 모듈(plug in module)에 배치될 수 있다. 대안적으로, 메모리(104)의 메모리 다이들 중 하나 이상의 메모리 다이는 메모리 컨트롤러 로직 다이의 패키지 외부에, 메모리 컨트롤러 로직 다이의 상부에, 메모리 컨트롤러 로직 다이에 인접하게 또는 듀얼 인라인 메모리 모듈(DIMM)과 같은 별개의 플러그 인 모듈에 하우징될 수 있다.
본 명세서에서 사용됨에 있어서, "자동화된"이라는 용어는 임의의 사용자의 개입없이 본 명세서에 따른 예측성 메모리 유지보수 동작들이 일어나는 완전히 자동화된 것을 포함한다. 또한, "자동화된"이라는 용어는 제한된 사용자 개입에 의해 본 명세서에 따른 예측성 메모리 유지보수 동작들이 일어나는 실질적으로 자동화된 것을 포함한다. 그러나, 실질적으로 자동화된 동작들에서, 대부분의 예측성 메모리 유지보수 동작들은 임의의 사용자 개입없이 진행된다. 일 실시예에서, 본 명세서에 따른 예측성 메모리 유지보수 동작들은 완전히 자동화되고, 임의의 사용자 개입없이 일어난다. 다른 실시예들에서는, 예측성 메모리 유지보수 동작들의 적어도 50%, 적어도 75% 또는 적어도 95%가 임의의 사용자 개입없이 진행된다.
컴퓨터 아키텍처 디바이스(100)는 스토리지(116)(예를 들어, 자기 디스크 드라이브들, 광학 디스크 드라이브들, 테이프 드라이브, 플래시 메모리 등과 같은 비휘발성 스토리지)를 추가로 포함할 수 있다. 스토리지(116)는 본 명세서에 따른 예측성 메모리 유지보수를 채용할 수 있고, 내부 저장 디바이스 또는 부착형 또는 네트워크 액세스 가능형 스토리지를 포함할 수 있다. 스토리지(116) 내의 프로그램들은 메모리(104)에 로드되고, 본 기술분야에 공지된 방식으로 프로세서(102)에 의해 실행된다.
컴퓨터 아키텍처 디바이스(100)는 이더넷, 파이버 채널 중재 루프(Fiber Channel Arbitrated Loop) 등과 같이 네트워크와의 통신을 가능하게 하는 네트워크 컨트롤러 또는 어댑터(118)를 추가로 포함한다. 또한, 특정 실시예들에서, 아키텍처는 프로세서에 응답하여 디스플레이를 제어하여 디스플레이 상에 정보를 렌더링하도록 구성된 비디오 컨트롤러(120)를 포함할 수 있다. 비디오 컨트롤러(120)는 비디오 카드 상에 구현될 수도 있고, 또는 마더보드 또는 다른 기판 상에 장착된 집적 회로 컴포넌트들 상에 집적될 수도 있다. 입력 디바이스(122)는 사용자 입력을 프로세서(102)에 제공하기 위해 사용되며, 키보드, 마우스, 펜 스타일러스, 마이크로폰, 터치 민감 디스플레이 스크린, 입력 핀들, 소켓들, 또는 본 기술분야에서 공지된 임의의 다른 활성화 또는 입력 메커니즘을 포함할 수 있다. 출력 디바이스(124)는 디스플레이 스크린 또는 모니터, 프린터, 스토리지, 출력 핀들, 소켓들 등과 같이 프로세서(102) 또는 다른 컴포넌트로부터 송신된 정보를 렌더링할 수 있다. 네트워크 어댑터(118)는 PCI(Peripheral Component Interconnect) 카드, PCI-익스프레스 또는 일부 다른 I/O 카드와 같은 네트워크 카드 상에, 또는 마더보드 또는 다른 기판 상에 장착된 집적 회로 컴포넌트들 상에 구현될 수 있다.
디바이스(100)의 컴포넌트들 중 하나 이상의 컴포넌트는 특정 애플리케이션에 따라 생략될 수 있다. 예를 들어, 네트워크 라우터는, 예를 들어, 비디오 컨트롤러(120)를 갖지 않을 수 있다. 또한, 컴퓨터 아키텍처 디바이스(100)의 컴포넌트들 중 임의의 하나 이상의 컴포넌트는 본 명세서에 따른 예측성 메모리 유지보수를 갖는 하나 이상의 집적 메모리 회로를 포함할 수 있다.
도 2는 메모리 컨트롤러(106)(도 1)의 예측성 메모리 유지보수 로직(110)의 동작들의 예를 도시한다. 일 동작에서, 예측성 메모리 유지보수는 메모리(104)의 1차 메모리 다이들 중 초기 1차 메모리 다이를 선택하고(블록(210)), 선택된 1차 메모리 다이의 데이터를 메모리(104)의 스페어 메모리 다이에 미러링함으로써 초기화된다. 도 3은 스페어 또는 2차 메모리 다이(314)와 함께 1차 메모리 다이들(310a, 310b, ... 310n)의 어레이를 갖는 메모리(104)의 보다 상세한 예를 도시한다.
일 실시예에서, 메모리 어레이는, 예를 들어, 1차 다이들(310a, 310b, ... 310n)로 표현되는 10개의 1차 메모리 다이를 가질 수 있으며, 여기서 시스템(100)은 정규 데이터 입/출력 동작들과 관련하여 1차 다이들(310a, 310b, ... 310n)에 데이터를 저장하고, 이로부터 데이터를 판독한다. 예를 들어, 1차 메모리 다이(310n)와 같은 1차 다이들(310a, 310b, ... 310n) 중 하나가 미러 데이터의 소스로서 초기에 선택되어(블록(210)), 정규 데이터 전송 동작들 동안에, 선택된 1차 메모리 다이(310n)에 저장된 데이터가 또한 스페어 메모리 다이(314)에 미러링되게 된다. 그 결과, 선택된 메모리 다이(이 예에서는, 다이(310n))에 저장된 데이터가 무엇이든 간에, 해당 데이터는 또한 스페어 메모리 다이(314)에 복사되거나, 다른 방식으로 저장된다.
일 실시예에서, 스페어 메모리 다이로의 미러링을 위해 초기에 선택되는 1차 메모리 다이는 예측성 메모리 유지보수 로직(110)의 미러 소스 선택 로직(320)(도 3)에 의해 선택된다. 미러 소스 선택 로직(320)은 일부 실시예들에서 임의의 방식으로 초기 1차 메모리 다이를 선택하도록(블록(210), 도 2) 구성될 수 있다. 따라서, 다른 1차 메모리 다이들(310a, 310b ...) 중 하나가 초기 미러 소스로서 선택될 수 있다. 그러나, 특정 애플리케이션에 따라, 스페어 메모리 다이(314)에 미러링되는 미러 데이터의 소스로서 초기 1차 메모리 다이를 선택하기 위한 다른 선택 기준들이 미러 소스 선택 로직(320)에 의해 사용될 수 있다는 것이 인정될 것이다. 대안적인 선택 기준들의 추가적인 예들이 이하에서 보다 상세하게 논의된다.
일 실시예에서, 소스로서 선택된 1차 메모리 다이에 저장된 데이터는 예측성 메모리 유지보수 로직(110)의 데이터 미러 로직(324)에 의해 미러링되게 된다. 미러링은 소스 1차 메모리 다이로부터 스페어 메모리 다이로 직접 또는 중간 저장 위치들을 통해 데이터를 복사함으로써 수행될 수 있다는 것이 인정될 것이다. 선택된 1차 메모리 다이에 저장된 데이터에 대한 업데이트들이 선택된 1차 메모리 다이의 업데이트와 병행하여 스페어 메모리 다이의 데이터를 업데이트하도록 병렬로 전송될 수 있다는 것이 추가로 인정될 것이다. 다른 실시예들에서, 선택된 1차 메모리 다이에 대한 업데이트들은, 예를 들어, 소스 1차 메모리 다이로부터 스페어 메모리 다이로 복사될 수 있다. 선택된 1차 메모리 다이의 데이터가 스페어 메모리 다이에 복제되도록 다른 미러링 기술들이 사용될 수 있다. 일부 실시예들에서, 임의의 시간에, 스페어 메모리 다이에 대한 업데이트들이 선택된 1차 다이의 업데이트들에 뒤처질 수 있다는 것이 인정될 것이다.
이전에는, 추가의 메모리 다이가 스페어 또는 2차 메모리 다이로서 메모리 어레이에 포함되었지만, 통상적으로 어레이의 고장난 1차 메모리 다이를 대체하는 데 사용되기 전까지는 능동적으로 사용되거나 액세스되지 않았다. 따라서, 이전의 시스템들에서, 데이터 입/출력 동작들은 통상적으로 데이터 저장 동작들을 위해 10개의 1차 메모리 다이에는 액세스하였지만, 통상적으로 스페어 다이가 고장난 1차 메모리 다이를 대체하기 전까지 스페어 메모리 다이에는 액세스하지 않았다. 그러나, 본 명세서의 일 양태에 따르면, 1차 메모리 다이의 데이터는 위에서 설명된 바와 같이 1차 메모리 다이의 고장이 검출되기 전에 스페어 메모리 다이에 미러링된다. 또한, 이하에서 보다 상세하게 설명되는 바와 같이, 스페어 메모리 다이(314)에 미러링된 데이터는, 1차 메모리 다이의 고장이 검출되기 전에도, 데이터 전송 동작들의 신뢰성을 증가시키는 데 활용될 수 있다.
블록(210)의 미러 소스 선택 초기화 동작 및 메모리 동작들의 개시 시에, 예를 들어, 리프레시 동작들 및 데이터 전송 동작들을 포함한 1차 메모리 다이들의 메모리 동작들의 과정 동안에, 1차 메모리 다이들(310a, 310b, ... 310n) 중 하나가 고장났는지 여부에 대한 결정(블록(214))이 이루어질 수 있다. 이러한 고장 검출은, 예를 들어, 예측성 메모리 유지보수 로직(110)의 다이 고장 검출 로직(328)에 의해 이루어질 수 있다. 따라서, 도 3의 실시예에서, 다이 고장 검출 로직(328)은 1차 메모리 다이들(310a, 310b ... 310n) 중 하나가 고장났는지 여부를 검출하도록 구성될 수 있다. 고장나지 않은 경우, 현재 동작하는 1차 메모리의 이전 선택이 재평가될 수 있다. 따라서, 현재 동작하는 1차 메모리 다이들 중 동일한 것 또는 상이한 것이 미래의 일부 시점에서 고장날 가능성이 가장 높은 것으로 여겨지는 동작 1차 메모리 다이로서 식별될 수 있다(블록(218), 도 2).
일 실시예에서, 고장날 가능성이 가장 높은 것으로 여겨지는 1차 메모리 다이로서 동작 1차 메모리 다이를 선택하는 것은 예측성 메모리 유지보수 로직(110)의 미러 소스 선택 로직(320)에 의해 이루어질 수 있다. 미러 소스 선택 로직(320)은 고장날 가능성이 가장 높은 동작 1차 메모리 다이를, 예를 들어, 메모리 성능 기준들과 같은 다양한 선택 기준들의 함수로서 선택하도록(블록(218), 도 2) 구성될 수 있다. 다른 1차 메모리 다이들보다 고장날 가능성이 더 높은 1차 메모리 다이를 선택하는 데 적절한 메모리 성능 기준의 일례는, 메모리(104)의 각각의 동작 1차 메모리 다이(310a, 310b ... 310n)에 대해, 예측성 메모리 유지보수 로직(110)의 미러 소스 선택 로직(320)에 의해 결정되고 누적될 수 있는 미가공 비트 에러 레이트(raw bit error rate)(RBER)이다.
도 4a는 1차 메모리 다이들(310a, 310b, ... 310n)의 예를 도시하는데, 여기서 미러 소스 선택 로직(320)은 1차 메모리 다이들(310a, 310b, ... 310n) 각각에 대한 RBER 값을 각각의 1차 메모리 다이에 대해 괄호 안에 나타낸 바와 같이 결정하도록 구성되었다. 미가공 비트 에러 레이트(RBER)는 보통 10의 배수로서 표현되는 정의된 수의 메모리 액세스 동작들의 과정에 걸쳐 메모리 다이에서 검출되는 특정 수의 에러들의 측면에서 흔히 표현된다. 따라서,도 4a의 예에서, 미러 소스 선택 로직(320)은, 예를 들어, 1차 메모리 다이(310a)에 대해 1E -04의 RBER 값을 결정하였으며, 이는 1차 메모리 다이(310a)에 대한 미가공 비트 에러 레이트가 1차 메모리 다이(310a)에 액세스하는 매 104회의 메모리 동작들마다 하나의 에러가 있는 것으로 결정되었음을 나타낸다. 이에 비해, 미러 소스 선택 로직(320)은, 예를 들어, 1차 메모리 다이(310c)에 대해 2E -04의 RBER 값을 결정하였으며, 이는 1차 메모리 다이(310c)에 대한 미가공 비트 에러 레이트가 1차 메모리 다이(310c)에 액세스하는 매 104회의 메모리 동작들마다 2개의 에러가 있는 것으로 결정되었음을 나타낸다. 도 4a의 예에서, 미러 소스 선택 로직(320)은 나머지 1차 메모리 다이들(310b, 310e, ... 310n) 각각에 대해서는 1E -04의 RBER 값을 결정하였다.
본 명세서에 따른 예측성 메모리 유지보수의 일 실시예에 따르면, 1차 메모리 다이(310c)가 동작 1차 메모리 다이들 중에서 가장 높은 RBER 값을 갖는 것으로 결정되었기 때문에, 1차 메모리 다이(310c)가 미래의 일부 시점에서 고장날 가능성이 가장 높은 동작 1차 메모리 다이인 것으로 결정될 수 있다(블록(218), 도 2). 따라서, 데이터 미러링 동작의 소스로서 선택된 1차 메모리 다이가 초기에 소스로서 지정되고(블록(210), 도 2) 선택된 1차 메모리 다이(310n)로부터 미래의 일부 시점에서 고장날 가능성이 가장 높은 동작 1차 메모리 다이로서 식별된(블록(218), 도 2) 1차 메모리 다이(310c)로 변경될 수 있다. 그 결과, 초기에 선택된 1차 메모리 다이(310n)에 저장되고 저장 중인 데이터를 미러링하는 대신에, 소스 1차 메모리 다이(310c)에 저장되고 저장 중인 데이터가 스페어 메모리 다이(314)에 미러링될 수 있다(블록(222)). 소스 1차 메모리 다이(310c)의 데이터에 대한 임의의 업데이트들 또한 스페어 메모리 다이(314)에 미러링된다. 미러링 동작(블록(222))이 완료되면, 스페어 메모리 다이(314)는 블록(210)에서 초기에 선택된 1차 메모리 다이(310n) 대신에 블록(218)에서 식별된 1차 메모리 다이(310c)의 데이터의 복제본을 포함한다.
도 4a의 실시예에서, 고장날 가능성이 가장 높은 1차 메모리 다이로서 선택되고(블록(218)), 그에 따라 미러링 동작(블록(222))의 소스 1차 메모리 다이로서 선택되는 동작 1차 메모리 다이는 각각의 동작 1차 다이(operational primary die)에 대해 결정된 RBER 값의 함수로서 선택된다. 그러나, 특정 애플리케이션에 따라, 스페어 메모리 다이(314)에 대한 미러 데이터의 소스로서 고장날 가능성이 가장 높은 1차 메모리 다이로서 1차 메모리 다이를 선택하기 위한 다른 선택 기준들이 미러 소스 선택 로직(320)에 의해 사용될 수 있다는 것이 인정될 것이다.
예를 들어, 메모리 다이들은 메모리 다이의 동작 온도를 감지하고 메모리 다이의 동작 온도를 나타내는 온도 데이터를 출력하는 온도 센서를 흔히 포함한다. 다른 동작 1차 메모리 다이들의 동작 온도보다 높은 동작 온도를 갖는 동작 1차 메모리 다이가 미래에 고장날 가능성이 더 높을 수 있다는 것이 인정될 것이다. 따라서, 일 실시예에서, 고장날 가능성이 가장 높은 1차 메모리 다이로서 선택되고(블록(218)), 그에 따라 미러링 동작(블록(222))의 소스 1차 메모리 다이로서 선택되는 동작 1차 메모리 다이는 각각의 동작 1차 메모리 다이의 개별 동작 온도들의 함수로서 선택될 수 있다.
본 명세서에 따른 예측성 메모리 유지보수의 다른 양태에서, 블록들(214-222)의 동작들이 순환적으로 또는 주기적으로 반복될 수 있는 메모리 유지보수 동작 루프를 형성한다는 것이 인정될 것이다. 예를 들어, 도 4a의 실시예에서, 메모리 다이들의 메모리 위치들은 메모리 컨트롤러(106)의 리프레시 로직(140)(도 1)에 의해 발생되는 반복하는 리프레시 사이클들에서 주기적으로 리프레시된다. 예를 들어, 3차원(3D) 크로스포인트 메모리에서, 성능을 향상시키기 위해 전체 메모리에 걸친 비트셀들이 주기적으로 판독되고 데이터가 라이트백된다. 각각의 리프레시 사이클에서, 1차 메모리 다이가 고장났는지 여부에 대한 결정(블록(214), 도 2)이 이루어질 수 있고, 고장나지 않은 경우, 동작 1차 메모리 다이가 나중에 고장날 가능성이 가장 높은 1차 메모리 다이로서 메모리 다이 성능의 함수로서 식별될 수 있고(블록(218)), 고장날 가능성이 가장 높은 것으로 식별된 1차 메모리 다이의 데이터는 스페어 메모리 다이(314)에 미러링될 수 있다(블록(222)). 따라서, 유지보수 사이클의 각각의 미러링 동작(블록(222))이 완료하면, 스페어 메모리 다이에는 나중에 고장날 가능성이 가장 높은 1차 메모리 다이인 것으로 해당 시점에 여겨지는 1차 메모리 다이의 데이터가 프리로드된다.
예를 들어, 도 4b는 상이한 유지보수 사이클에서의 유지보수 동작들을 도시한다. 이 예에서, 미러 소스 선택 로직(320)은, 예를 들어, 1차 메모리 다이(310a)에 대해서는 1E -04의 RBER 값을 다시 결정하였고, 예를 들어, 1차 메모리 다이(310c)에 대해서는 2E -04의 RBER 값을 다시 결정하였으며, 이는 1차 메모리 다이(310c)에 대한 미가공 비트 에러 레이트가 1차 메모리 다이(310c)에 액세스하는 매 104회의 메모리 동작들마다 2개의 에러가 있는 것으로 결정되었음을 나타낸다. 그러나, 이 예에서, 미러 소스 선택 로직(320)은 1차 메모리 다이(310d)에 대해 3E -04의 RBER 값을 결정하였으며, 이는 1차 메모리 다이(310d)에 대한 미가공 비트 에러 레이트가 1차 메모리 다이(310d)에 액세스하는 매 104회의 메모리 동작들마다 3개의 에러가 있는 것으로 결정되었음을 나타낸다. 도 4b의 예에서, 미러 소스 선택 로직(320)은 나머지 1차 메모리 다이들(310b, 310e, ... 310n) 각각에 대해서는 1E -04의 RBER 값을 다시 결정하였다.
본 명세서에 따른 예측성 메모리 유지보수의 일 실시예에 따르면, 1차 메모리 다이(310d)가 동작 1차 메모리 다이들 중에서 가장 높은 RBER 값을 갖는 것으로 결정되었기 때문에, 1차 메모리 다이(310d)가 미래의 일부 시점에서 고장날 가능성이 가장 높은 동작 1차 메모리 다이인 것으로 결정될 수 있다(블록(218), 도 2). 따라서, 데이터 미러링 동작의 소스 1차 메모리 다이가 소스 1차 메모리 다이로서 도 4a의 이전 유지보수 사이클에서 이전에 식별된(블록(218), 도 2) 1차 메모리 다이(310c)로부터 미래의 일부 시점에서 고장날 가능성이 가장 높은 동작 1차 메모리 다이로서 도 4b의 현재 유지보수 사이클에서 식별된(블록(218), 도 2) 1차 메모리 다이(310d)로 변경될 수 있다. 그 결과, 도 4a에 도시된 바와 같이 이전에 선택된 1차 메모리 다이(310c)에 저장된 데이터를 미러링(도 4a)하는 대신에, 도 4b에 도시된 바와 같이, 소스 1차 메모리 다이(310d)에 저장된 데이터가 스페어 메모리 다이(314)에 미러링될 수 있다(블록(222)). 소스 1차 메모리 다이(310d)의 데이터에 대한 임의의 업데이트들 또한 스페어 메모리 다이(314)에 미러링된다. 미러링 동작(블록(222))이 완료되면, 스페어 메모리 다이(314)는 이전 유지보수 사이클에서 이전에 선택된 1차 메모리 다이(310c) 대신에 블록(218)에서 식별된 1차 메모리 다이(310d)의 데이터의 복제본을 포함한다.
1차 메모리 다이가 다이 고장 검출 로직(328)(도 3)에 의해 검출될 때 고장나있는(블록(214), 도 2) 이벤트에서, 고장난 1차 메모리 다이에 대한 데이터가 데이터 미러 로직(324)(도 3)에 의해 스페어 메모리 다이(314)에 이미 미러링되어 있는지 여부에 대한 결정(블록(230))이 이루어진다. 이미 미러링되어 있는 경우, 고장난 1차 메모리 다이는 디스에이블되고(블록(234)), 고장난 1차 메모리 다이의 데이터가 이미 프리로드된 스페어 메모리 다이(314)로 대체될 수 있다.
도 4b의 예에서는, 1차 메모리 다이(310d)에 대한 데이터가 스페어 메모리 다이(314)에 미러링되는 것으로 선택되었다. 따라서, 1차 메모리 다이(310d)가 예측된 바와 같이(블록(218), 도 2) 고장난 1차 메모리 다이인 경우, 고장난 1차 메모리 다이(310d)에 대한 데이터는 데이터 미러 로직(324)(도 3)에 의해 스페어 메모리 다이(314)에 이미(블록(230), 도 2) 미러링(블록(222), 도 2)되어 있을 수 있다. 이미 미러링되어 있는 경우, 고장난 1차 메모리 다이(310d)는 디스에이블되고(블록(234)), 고장난 1차 메모리 다이(310d)의 데이터가 이미 프리로드된 스페어 메모리 다이(314)로 대체될 수 있다. 그 결과, 1차 메모리 다이의 고장으로 인한 메모리 동작들의 중단들이 감소될 수 있다. 예를 들어, 고장난 1차 메모리 다이(310d)의 데이터가 1차 메모리 다이의 고장의 검출(블록(214)) 전에 스페어 메모리 다이(314)에 이미(블록(230), 도 2) 미러링(블록(222), 도 2)되어 있는 경우, 고장난 1차 메모리 다이(310d)의 데이터를 재구성하고 재구성된 데이터를 스페어 메모리 다이에 복사하는 것으로 인한 지연들이 회피될 수 있다.
일 실시예에서, 예측성 메모리 유지보수 로직(110)의 다이 대체 로직(332)(도 3)은 고장난 1차 메모리 다이를 디스에이블하고, 디스에이블된 1차 메모리 다이를 스페어 메모리 다이(314)로 대체하도록 구성된다. 따라서, 고장난 1차 메모리 다이에 액세스하도록 지시되었던 데이터 전송 동작들이 대신에 스페어 메모리 다이(314)에 액세스하도록 재지시된다. 이러한 방식으로, 고장난 1차 메모리 다이의 데이터가 프리로드된 스페어 메모리 다이(314)가 메모리(104)의 메모리 동작들에서 고장나고 디스에이블된 1차 메모리 다이를 대신한다.
이전에 언급된 바와 같이, 도 4b의 예에서는, 1차 메모리 다이(310d)에 대한 데이터가 스페어 메모리 다이(314)에 미러링되는 것으로 선택되었다. 따라서, 1차 메모리 다이(310d)가 예측된 바와 같이(블록(218), 도 2) 고장난 1차 메모리 다이인 경우, 1차 메모리 다이(310d)의 고장이 검출된(블록(214)) 시점에서, 고장난 1차 메모리 다이(310d)에 대한 데이터를 데이터 미러 로직(324)(도 3)에 의해 스페어 메모리 다이(314)에 미러링하는 것이 완료되지 않았을 수도 있다는 것(블록(230), 도 2)이 예상된다. 완료되지 않은 경우, 1차 메모리 다이(310)의 나머지 데이터가 복사 동작이 완료될 때까지(블록(244)) 데이터 미러 로직(324)(도 3)에 의해 스페어 메모리 다이(314)에 복사될 수 있다(블록(240)). 고장난 1차 메모리 다이(310d)의 데이터는 그 고장으로 인해 메모리 다이(310d)로부터 검색될 수 없다는 것이 인정될 것이다. 따라서, 나머지 데이터는 이하에서 설명되는 바와 같이 재구성되고, 스페어 메모리 다이(314)에 복사될 수 있다. 재구성 및 복사 동작들이 완료되면(블록(244), 도 2), 고장난 1차 메모리 다이(310d)는 위에서 설명된 바와 같이 디스에이블되고(블록(234)), 스페어 메모리 다이(314)로 대체될 수 있다.
도 4b의 예에서는, 1차 메모리 다이(310d)에 대한 데이터가 스페어 메모리 다이(314)에 미러링되도록 선택되었다. 따라서, 1차 메모리 다이(310d)가 고장날 가능성이 가장 높은 다이라고 예측한 것(블록(218), 도 2)과 반대로, 1차 메모리 다이(310d) 이외의 1차 메모리 다이가 고장난 1차 메모리 다이인 경우, 고장난 1차 메모리 다이에 대한 데이터가 데이터 미러 로직(324)(도 3)에 의해 스페어 메모리 다이(314)에 아직(블록(230), 도 2) 미러링되지 않았을 것이다. 따라서, 고장난 1차 메모리 다이에 대한 데이터가 재구성되고, 데이터 미러 로직(324)(도 3)에 의해 스페어 메모리 다이(314)에 복사된다(블록(240)). 데이터 재구성 및 복사 동작들이 완료되면(블록(244), 도 2), 고장난 1차 메모리 다이는 위에서 설명된 바와 같이 디스에이블되고(블록(234)), 스페어 메모리 다이(314)로 대체될 수 있다.
고장난 1차 메모리 다이에 저장된 데이터는 검색가능하지 않을 수 있기 때문에, 고장난 1차 메모리 다이로부터 누락된 데이터를 재구성하고, 재구성된 데이터를 고장난 메모리 다이에 대한 대체 메모리 다이로서 사용되는 스페어 메모리 다이에 저장하기 위해 에러 정정 코드(error correction code)(ECC) 로직이 채용될 수 있다. 또한, 본 명세서의 일 양태에서, 스페어 메모리 다이에 저장된 미러링된 데이터는 에러 정정 코드들을 사용한 에러 검출 및 정정을 용이하게 하기 위해 1차 메모리 다이가 고장나기 전에도 활용될 수 있다.
적절한 에러 정정 코드의 일례로는 에러 검출 및 정정을 용이하게 하기 위해 심볼들에서의 데이터의 블록들을 인코딩하는 블록 코드인 리드-솔로몬 에러 정정 코드가 있다. 다른 타입들의 에러 정정 코드들이 본 명세서에 따른 예측성 메모리 유지보수에 채용될 수 있다는 것이 인정될 것이다. 예를 들어, 블록 및 컨벌루션 코드들 모두 본 명세서에 따른 예측성 메모리 유지보수에 적절할 수 있다. 또한, 체계적 및 비체계적 코드들 모두 본 명세서에 따른 예측성 메모리 유지보수에 적절할 수 있다. 체계적 스킴에서, 인코더는 원래의 기입 데이터에 적절한 결정론적 알고리즘에 의해 데이터 비트들로부터 도출되는 다수의 체크 비트(예를 들어, 패리티 데이터 등)들을 첨부한다. 비체계적 코드를 사용하는 시스템에서, 원래의 메시지는 통상적으로 적어도 원래의 메시지만큼의 비트들을 갖는 인코딩된 메시지로 변환된다. 적절할 수 있는 코드들의 추가적인 예들로는 연접 코드들(concatenated codes), 재귀 코드들(recursive codes), 비재귀 코드들(non-recursive codes), 반복 코드들(repetition codes), 해밍 코드들(Hamming codes), 다차원 패리티-체크 코드들(multidimensional parity-check codes), 터보 코드들(turbo codes), 저밀도 패리티-체크 코드들(low-density parity-check codes)(LDPC) 등이 있다.
예시된 실시예에서, 메모리 컨트롤러(106)는 에러 정정 코드(ECC) 로직(510)(도 5)을 포함하며, 에러 정정 코드(ECC) 로직(510)(도 5)은 메모리(104)에 저장되는 기입 데이터를 인코딩하고, 인코딩된 판독 데이터를 디코딩하여 에러들을 검출하고, 가능한 경우에는 이들을 정정한다. 따라서, ECC 인코더 로직(514)은 (예를 들어, 리드-솔로몬 에러 정정 코드와 같은) 에러 정정 코드로 메모리(104)에 대한 기입 데이터를 인코딩하도록 구성된다. 인코딩된 기입 데이터는 정규 기입 데이터 전송 동작들의 과정에서 메모리(104)의 1차 메모리 다이들(310a, 310b ... 310n)에 저장된다. 예를 들어, 일 실시예에서, 1차 메모리 다이들(310a, 310b ... 310n)에 저장된 인코딩된 기입 데이터의 라인은 320바이트 길이일 수 있으며, 256바이트의 사용자 데이터 및 256바이트의 사용자 데이터에 관한 64바이트의 메타데이터를 포함한다. 예를 들어, 64바이트의 메타데이터는 에러 검출 및 정정을 위해 사용될 수 있는 패리티 또는 다른 중복 데이터(redundant data)를 포함할 수 있다.
따라서, 예시된 실시예에서, 1차 메모리 다이들(310a, 310b ... 310n) 각각은 인코딩된 기입 데이터의 320바이트 길이의 라인 중 32바이트의 인코딩된 기입 데이터를 저장한다. 또한, 미래에 고장날 가능성이 가장 높은 것으로 여겨지는 선택된(블록(218), 도 2) 1차 메모리 다이로 지시되는 32바이트의 인코딩된 기입 데이터는 또한 위에서 설명된 바와 같이 스페어 메모리 다이(314)에 미러링된다(블록(222)). 다른 실시예들에서는, 인코딩된 기입 데이터의 라인의 크기 및 각각의 메모리 다이에 저장되는 인코딩된 기입 데이터의 양이 특정 애플리케이션에 따라 변화할 수 있다는 것이 인정될 것이다.
도 6은 ECC 로직(510)의 인코딩된 판독 데이터 전송 동작들과 관련하여 예측성 메모리 유지보수 로직(110)의 동작들의 예를 도시한다. 일 동작에서, 인코딩된 판독 데이터가 메모리(104)의 1차 메모리 다이들(310a, 310b ... 310n)로부터 판독되고(블록(610)), ECC 로직(510)의 ECC 디코더 로직(520)에 의해 디코딩된다. 도 7a는 1차 메모리 다이들(310a, 310b ... 310n) 각각으로부터 판독되는 인코딩된 판독 데이터의 예를 도시한다. 도 7a의 예에서, 고장날 가능성이 가장 높은 것으로 결정된 1차 메모리 다이(310d)로부터 스페어 메모리 다이(314)에 미러링된 인코딩된 판독 데이터는 메모리(104)로부터 판독되지 않거나, 이 시점에서 다른 방식으로 사용되지 않는다. ECC 디코더 로직(520)은 (예를 들어, 리드-솔로몬 에러 정정 코드와 같은) 에러 정정 코드로 ECC 인코더 로직(514)에 의해 인코딩된, 인코딩된 판독 데이터를 디코딩하도록 구성된다.
1차 메모리 다이들(310a, 310b ... 310n)로부터 판독된, 디코딩된 판독 데이터가 에러들을 포함하는지 여부에 대한 결정(블록(614))이 이루어진다. ECC 디코더 로직(520)의 에러 검출 로직(524)(도 5)은, 에러 정정 코드에 따라, 메모리(104)의 1차 메모리 다이들(310a, 310b ... 310n)로부터 판독된, 디코딩된 판독 데이터가 에러들을 포함하는지 여부를 검출하도록 구성된다. 에러들을 포함하는 경우, 검출된 에러들을 정정하려는 시도가 이루어지고, 시도된 에러 정정이 성공적이었는지에 대한 결정(블록 620)이 이루어진다. 예시된 실시예에서, ECC 디코더 로직(520)의 에러 정정 로직(530)(도 5)이 에러 정정 코드에 따라 검출된 에러들을 정정하도록 구성된다. 일반적인 문제로서, ECC 인코딩에 의해 더 많은 중복 데이터가 추가될수록, 정정될 수 있는 검출된 에러들의 수가 더 많아진다. 검출된 에러들의 수가 ECC 인코딩의 함수인 특정 최대값을 초과하는 경우, 에러 정정은 실패할 수 있다(블록(620), 도 6).
본 명세서의 다른 양태에 따르면, ECC 에러 정정은 1차 메모리 다이의 고장이 검출되기 전에 에러 정정을 향상시키기 위해 예측성 메모리 유지보수를 채용할 수 있다. 예를 들어, 도 6의 실시예에서, 1차 메모리 다이들(도 7a)로부터의 디코딩된 판독 데이터에서 검출된 에러들의 수가 에러 정정을 실패하게 하는 경우(블록(620), 도 6), 도 7b의 예에 도시된 바와 같이, 스페어 메모리 다이(314)에 미러링된 인코딩된 데이터가 인코딩된 판독 데이터에 대해 치환될 수 있다(블록(624)). 따라서, 도 7b의 예에서, 스페어 메모리 다이(314)에 미러링된 인코딩된 판독 데이터는 ECC 디코더 로직(520)에 의해 판독된다. 역으로, 도 7b의 예에서, 고장날 가능성이 가장 높은 것으로 결정된 1차 메모리 다이(310d)에 저장된 인코딩된 판독 데이터는 메모리(104)로부터 판독되지 않거나, 이 시점에서 다른 방식으로 사용되지 않는다. 예측성 메모리 유지보수 로직(110)의 인코딩된 판독 데이터 선택 로직(340)(도 3)은 스페어 메모리 다이(314)에 미러링된 인코딩된 데이터를 선택하고(블록(624)), 고장날 가능성이 가장 높은 다이로 결정된, 선택된 1차 메모리 다이(310d)에 저장된, 인코딩된 판독 데이터가 판독 동작을 위해 활용된 도 7a의 예 대신에, 도 7b의 예에 도시된 바와 같이, 판독 동작을 위해 이를 치환하도록 구성된다.
따라서, 고장날 가능성이 가장 높은 것으로 여겨지는 1차 메모리 다이(310d)로부터의 인코딩된 판독 데이터 대신에, 스페어 메모리 다이(314)로부터의 인코딩된 판독 데이터와 함께, 1차 메모리 다이들(310a, 310b, 310c, 310e ... 310n)(도 7b)로부터의 인코딩된 판독 데이터가 ECC 로직(510)의 ECC 디코더 로직(520)(도 5)에 의해 디코딩될 수 있다. 고장날 가능성이 가장 높은 것으로 여겨지는 1차 메모리 다이(310d) 대신에, 스페어 메모리 다이(314)로부터의 디코딩된 판독 데이터와 함께, 1차 메모리 다이들(310a, 310b, 310c, 310e ... 310n)로부터 판독된, 디코딩된 판독 데이터가 에러를 포함하는지 여부에 대한 결정(블록(614), 도 6)이 다시 이루어질 수 있다. 일부 실시예들에서, 고장날 가능성이 가장 높은 것으로 여겨지는 1차 메모리 다이(310d)의 데이터를 스페어 메모리 다이(314)로부터의 판독 데이터로 치환함으로써, 판독 데이터로부터의 에러들이 제거되어, 임의의 후속적인 에러 정정을 방지할 수 있다는 것이 인정될 것이다. 그렇다면, 판독 동작은 성공적으로 종료될 수 있다(블록(630)).
고장날 가능성이 가장 높은 것으로 여겨지는 1차 메모리 다이(310d) 대신에, 스페어 메모리 다이(314)로부터의 디코딩된 판독 데이터와 함께, 1차 메모리 다이들(310a, 310b, 310c, 310e ... 310n)로부터 이번에 판독된, 디코딩된 판독 데이터가 에러들을 포함하는 것으로 결정된(블록(614)) 경우, 검출된 에러들을 정정하기 위한 시도가 다시 이루어질 수 있고, 시도된 에러 정정이 성공적이었는지 여부에 대한 결정(블록(620))이 이루어진다. 일부 실시예들에서, 고장날 가능성이 가장 높은 것으로 여겨지는 1차 메모리 다이(310d)의 데이터를 스페어 메모리 다이(314)로부터의 판독 데이터로 치환함으로써, 판독 데이터로부터의 에러들이 ECC 디코더 로직(520)의 에러 정정 로직(530)(도 5)의 에러 정정 능력 내에 들어갈 정도로 충분히 감소될 수 있다는 것이 인정될 것이다. 예를 들어, 다른 1차 메모리 다이에서 발생하는 데이터 에러 이외에, 고장날 가능성이 가장 높은 것으로 여겨지는 1차 메모리 다이(310d)로부터의 인코딩된 판독 데이터에 데이터 에러들이 발생하였지만, 스페어 메모리 다이로부터의 인코딩된 판독 데이터가 데이터 에러들이 없거나 더 적은 에러들을 포함하는 경우, 고장날 가능성이 가장 높은 것으로 여겨지는 1차 메모리 다이(310d)로부터의 인코딩된 판독 데이터를 스페어 메모리(314)로부터의 인코딩된 판독 데이터로 치환함으로써(블록(624)), 데이터 에러들의 수가 감소되어, 에러 정정이 성공적일 수 있고 데이터 전송이 성공적으로 종료될 수 있다(블록(630)).
본 명세서의 다른 양태에서, 소스 선택 로직(320)(도 3)은 일정 기간에 걸쳐 특정 성능 기준들과 관련하여 메모리의 각각의 1차 메모리 다이의 비교 성능을 표현하는 비교 통계적 성능 데이터를 누적하도록 구성된다. 예를 들어, 전술한 바와 같이, ECC 디코더(520)의 에러 검출 로직(524)(도 5)은 메모리(104)로부터 판독된, 디코딩된 판독 데이터에서의 에러들을 검출하도록 구성된다. 소스 선택 로직(320)은 각각의 1차 메모리 다이에 대해 검출된 에러들을 추적하고, 메모리(104)의 각각의 1차 메모리 다이에 대한 미가공 비트 에러 레이트(RBER)를 계산하도록 구성될 수 있다. 계산된 RBER는, 예를 들어, 각각의 리프레시 사이클에서와 같이 주기적으로 업데이트될 수 있다. 고장날 가능성이 가장 높은 동작 1차 메모리 다이로서 메모리의 동작 메모리 다이(operational memory die)를 선택하기 위해 소스 선택 로직(320)에 기준을 제공하기 위한 다른 통계적 성능 데이터가 누적될 수 있다는 것이 인정될 것이다. 소스 선택 로직은 일정 기간에 걸쳐 최악의 비교 성능을 갖는 동작 메모리 다이의 함수로서 1차 메모리 다이를 선택하도록 구성될 수 있다.
예들
하기 예들은 추가적인 실시예들에 관한 것이다.
예 1은 장치로서,
메모리의 동작 메모리 다이들의 메모리 성능을 결정하고, 메모리의 동작 메모리 다이를 메모리 다이 성능의 함수로서 선택하도록 구성된 선택 로직; 및
선택된 동작 메모리 다이에 대한 데이터를 스페어 메모리 다이에 미러링하도록 구성된 데이터 미러 로직
을 포함하는 장치이다.
예 2에서, 예들 1 내지 8(본 예 제외)의 주제는,
선택된 동작 메모리 다이의 고장을 검출하도록 구성된 다이 고장 검출 로직; 및
선택된 동작 메모리 다이의 고장을 검출하는 것에 응답하여, 고장난 동작 메모리 다이를 디스에이블하고, 고장난 동작 메모리 다이를 스페어 메모리 다이로 대체하도록 구성된 다이 대체 로직 - 스페어 메모리 다이는 선택된 동작 메모리 다이의 고장을 검출하기 전에 선택된 동작 메모리 다이로부터 미러링된 데이터를 가짐 -
을 선택적으로 포함할 수 있다.
예 3에서, 예들 1 내지 8(본 예 제외)의 주제는,
선택된 동작 메모리 다이를 포함하는 메모리의 동작 메모리 다이들로부터 데이터를 판독하도록 구성된 에러 정정 코드 로직을 선택적으로 포함할 수 있으며, 판독 데이터는 에러 정정 코드에 따라 인코딩되고, 에러 정정 코드 로직은 인코딩된 판독 데이터를 디코딩하도록 구성된 디코더 로직, 디코딩된 판독 데이터에서 에러를 검출하도록 구성된 에러 검출 로직, 및 디코딩된 판독 데이터에서 검출된 에러를 정정하려는 시도를 하도록 구성된 에러 정정 로직을 갖고, 에러 정정 코드 로직은, 디코딩된 판독 데이터에서 검출된 에러를 정정하려는 에러 정정 로직의 실패에 응답하여, 스페어 메모리 다이로부터 데이터를 판독하고 - 판독 데이터는 에러 정정 코드에 따라 인코딩됨 -, 선택된 동작 메모리 다이로부터의 인코딩된 판독 데이터를 스페어 메모리 다이로부터의 인코딩된 판독 데이터로 치환하도록 추가로 구성된다.
예 4에서, 예들 1 내지 8(본 예 제외)의 주제는,
디코더 로직이 스페어 메모리 다이로부터의 인코딩된 판독 데이터를 포함하는 인코딩된 판독 데이터를 디코딩하도록 추가로 구성되고, 에러 검출 로직은 스페어 메모리 다이로부터의 디코딩된 판독 데이터를 포함하는 디코딩된 판독 데이터에서 에러를 검출하도록 추가로 구성되고, 에러 정정 로직은 스페어 메모리 다이로부터의 디코딩된 판독 데이터를 포함하는 디코딩된 판독 데이터에서 검출된 에러를 정정하도록 추가로 구성되는 것을 선택적으로 포함할 수 있다.
예 5에서, 예들 1 내지 8(본 예 제외)의 주제는,
복수의 유지보수 사이클들에서 메모리의 예측성 유지보수를 순환적으로 수행하도록 구성된 순환적인 예측성 메모리 유지보수 로직을 선택적으로 포함할 수 있으며, 여기서 각각의 유지보수 사이클에서, 상기 선택 로직은 각각의 유지보수 사이클에서 메모리의 동작 메모리 다이들의 메모리 성능을 결정하고, 메모리의 동작 메모리 다이를 메모리 다이 성능의 함수로서 선택하도록 추가로 구성되고, 상기 데이터 미러 로직은 각각의 유지보수 사이클에서 선택된 동작 메모리 다이에 대한 데이터를 스페어 메모리 다이에 미러링하도록 추가로 구성된다.
예 6에서, 예들 1 내지 8(본 예 제외)의 주제는,
복수의 리프레시 사이클들에서 메모리의 리프레시를 순환적으로 수행하도록 구성된 순환적인 리프레시 로직을 선택적으로 포함할 수 있고, 여기서 예측성 메모리 유지보수 로직은 리프레시 사이클과 연관하여 각각의 유지보수 사이클을 수행하도록 추가로 구성된다.
예 7에서, 예들 1 내지 8(본 예 제외)의 주제는,
상기 선택 로직이 일정 기간 동안에 특정 성능 기준들과 관련하여 메모리의 각각의 메모리 다이의 비교 성능을 표현하는 비교 통계적 성능 데이터를 누적하도록 구성된 로직, 및 메모리의 동작 메모리 다이를 일정 기간 동안에 최악의 비교 성능을 갖는 동작 메모리 다이의 함수로서 선택하도록 구성된 로직을 포함하여, 메모리의 동작 메모리 다이들의 메모리 성능을 결정하도록 구성된 로직을 포함하는 것을 선택적으로 포함할 수 있다.
예 8에서, 예들 1 내지 8(본 예 제외)의 주제는,
성능 기준들이 미가공 비트 에러 레이트를 포함하는 것을 선택적으로 포함할 수 있다.
예 9는 디스플레이와 함께 사용하기 위한 시스템으로서,
프로세서;
프로세서에 응답하여 디스플레이를 제어하도록 구성된 비디오 컨트롤러;
프로세서로부터의 데이터를 저장하도록 구성되고, 스페어 메모리 다이를 포함하는 복수의 메모리 다이들을 갖는 메모리; 및
메모리를 제어하도록 구성된 메모리 컨트롤러
를 포함하고,
상기 메모리 컨트롤러는,
메모리의 동작 메모리 다이들의 메모리 성능을 결정하고, 메모리의 동작 메모리 다이를 메모리 다이 성능의 함수로서 선택하도록 구성된 선택 로직; 및
선택된 동작 메모리 다이에 대한 데이터를 스페어 메모리 다이에 미러링하도록 구성된 데이터 미러 로직
을 포함하는 시스템이다.
예 10에서, 예들 9 내지 16(본 예 제외)의 주제는,
메모리 컨트롤러가,
선택된 동작 메모리 다이의 고장을 검출하도록 구성된 다이 고장 검출 로직; 및
선택된 동작 메모리 다이의 고장을 검출하는 것에 응답하여, 고장난 동작 메모리 다이를 디스에이블하고, 고장난 동작 메모리 다이를 스페어 메모리 다이로 대체하도록 구성된 다이 대체 로직 - 스페어 메모리 다이는 선택된 동작 메모리 다이의 고장을 검출하기 전에 선택된 동작 메모리 다이로부터 미러링된 데이터를 가짐 -
을 추가로 포함하는 것을 선택적으로 포함할 수 있다.
예 11에서, 예들 9 내지 16(본 예 제외)의 주제는,
메모리 컨트롤러가,
선택된 동작 메모리 다이를 포함하는 메모리의 동작 메모리 다이들로부터 데이터를 판독하도록 구성된 에러 정정 코드 로직을 추가로 포함하며, 판독 데이터는 에러 정정 코드에 따라 인코딩되고, 에러 정정 코드 로직은 인코딩된 판독 데이터를 디코딩하도록 구성된 디코더 로직, 디코딩된 판독 데이터에서 에러를 검출하도록 구성된 에러 검출 로직, 및 디코딩된 판독 데이터에서 검출된 에러를 정정하려는 시도를 하도록 구성된 에러 정정 로직을 갖고, 에러 정정 코드 로직은, 디코딩된 판독 데이터에서 검출된 에러를 정정하려는 에러 정정 로직의 실패에 응답하여, 스페어 메모리 다이로부터 데이터를 판독하고 - 판독 데이터는 에러 정정 코드에 따라 인코딩됨 -, 선택된 동작 메모리 다이로부터의 인코딩된 판독 데이터를 스페어 메모리 다이로부터의 인코딩된 판독 데이터로 치환하도록 추가로 구성되는 것을 선택적으로 포함할 수 있다.
예 12에서, 예들 9 내지 16(본 예 제외)의 주제는,
디코더 로직이 스페어 메모리 다이로부터의 인코딩된 판독 데이터를 포함하는 인코딩된 판독 데이터를 디코딩하도록 추가로 구성되고, 에러 검출 로직은 스페어 메모리 다이로부터의 디코딩된 판독 데이터를 포함하는 디코딩된 판독 데이터에서 에러를 검출하도록 추가로 구성되고, 에러 정정 로직은 스페어 메모리 다이로부터의 디코딩된 판독 데이터를 포함하는 디코딩된 판독 데이터에서 검출된 에러를 정정하도록 추가로 구성되는 것을 선택적으로 포함할 수 있다.
예 13에서, 예들 9 내지 16(본 예 제외)의 주제는,
메모리 컨트롤러가 복수의 유지보수 사이클들에서 메모리의 예측성 유지보수를 순환적으로 수행하도록 구성된 순환적인 예측성 메모리 유지보수 로직을 추가로 포함하고, 각각의 유지보수 사이클에서, 상기 선택 로직은 각각의 유지보수 사이클에서 메모리의 동작 메모리 다이들의 메모리 성능을 결정하고, 메모리의 동작 메모리 다이를 메모리 다이 성능의 함수로서 선택하도록 추가로 구성되고, 상기 데이터 미러 로직은 각각의 유지보수 사이클에서 선택된 동작 메모리 다이에 대한 데이터를 스페어 메모리 다이에 미러링하도록 추가로 구성되는 것을 선택적으로 포함할 수 있다.
예 14에서, 예들 9 내지 16(본 예 제외)의 주제는,
메모리 컨트롤러가 복수의 리프레시 사이클들에서 메모리의 리프레시를 순환적으로 수행하도록 구성된 리프레시 로직을 추가로 포함하고, 순환적인 예측성 메모리 유지보수 로직은 리프레시 사이클과 연관하여 각각의 유지보수 사이클을 수행하도록 추가로 구성되는 것을 선택적으로 포함할 수 있다.
예 15에서, 예들 9 내지 16(본 예 제외)의 주제는,
상기 선택 로직은, 일정 기간 동안에 특정 성능 기준들과 관련하여 메모리의 각각의 메모리 다이의 비교 성능을 표현하는 비교 통계적 성능 데이터를 누적하도록 구성된 로직, 및 메모리의 동작 메모리 다이를 일정 기간 동안에 최악의 비교 성능을 갖는 동작 메모리 다이의 함수로서 선택하도록 구성된 로직을 포함하여, 메모리의 동작 메모리 다이들의 메모리 성능을 결정하도록 구성된 로직을 포함하는 것을 선택적으로 포함할 수 있다.
예 16에서, 예들 9 내지 16(본 예 제외)의 주제는,
성능 기준들이 미가공 비트 에러 레이트를 포함하는 것을 선택적으로 포함할 수 있다.
예 17은 방법으로서,
메모리의 동작 메모리 다이들의 메모리 성능을 결정하는 단계;
메모리의 동작 메모리 다이를 메모리 다이 성능의 함수로서 선택하는 단계; 및
선택된 동작 메모리 다이에 대한 데이터를 스페어 메모리 다이에 미러링하는 단계
를 포함하는 방법이다.
예 18에서, 예들 17 내지 24(본 예 제외)의 주제는,
선택된 동작 메모리 다이의 고장을 검출하는 단계, 및
선택된 동작 메모리 다이의 고장을 검출하는 것에 응답하여, 고장난 동작 메모리 다이를 디스에이블하고, 고장난 동작 메모리 다이를 스페어 메모리 다이로 대체하는 단계 - 스페어 메모리 다이는 선택된 동작 메모리 다이의 고장을 검출하기 전에 선택된 동작 메모리 다이로부터 미러링된 데이터를 가짐 -
를 선택적으로 포함할 수 있다.
예 19에서, 예들 17 내지 24(본 예 제외)의 주제는,
선택된 동작 메모리 다이를 포함하는 메모리의 동작 메모리 다이들로부터 데이터를 판독하는 단계;
판독 데이터가 에러를 포함하는 경우, 판독 데이터의 에러 정정을 시도하는 단계;
에러 정정이 성공적이지 않은 경우, 선택된 동작 메모리 다이로부터 판독된 판독 데이터를 선택된 동작 메모리 다이의 고장을 검출하기 전에 스페어 메모리 다이로부터 판독된 판독 데이터로 대체함으로써 판독 데이터를 수정하는 단계; 및
수정된 판독 데이터가 에러를 포함하는 경우, 수정된 판독 데이터의 에러 정정을 시도하는 단계
를 선택적으로 포함할 수 있다.
예 20에서, 예들 17 내지 24(본 예 제외)의 주제는,
복수의 유지보수 사이클들에서 메모리의 유지보수를 순환적으로 수행하는 단계
를 선택적으로 포함할 수 있고,
각각의 유지보수 사이클은,
메모리의 동작 메모리 다이들의 메모리 성능을 결정하는 상기 단계;
메모리의 동작 메모리 다이를 메모리 다이 성능의 함수로서 선택하는 상기 단계; 및
선택된 동작 메모리 다이의 데이터를 스페어 메모리 다이에 미러링하는 상기 단계
를 포함한다.
예 21에서, 예들 17 내지 24(본 예 제외)의 주제는,
복수의 리프레시 사이클들에서 메모리의 리프레시를 순환적으로 수행하는 단계를 선택적으로 포함할 수 있고, 각각의 유지보수 사이클은 리프레시 사이클과 연관되어 수행된다.
예 22에서, 예들 17 내지 24(본 예 제외)의 주제는,
메모리의 동작 메모리 다이들의 메모리 성능을 결정하는 상기 단계는 일정 기간 동안에 특정 성능 기준들과 관련하여 메모리의 각각의 메모리 다이의 비교 성능을 표현하는 비교 통계적 성능 데이터를 누적하는 단계를 포함하고, 메모리의 동작 메모리 다이를 메모리 다이 성능의 함수로서 선택하는 상기 단계는 일정 기간 동안에 최악의 비교 성능을 갖는 동작 메모리 다이를 선택하는 단계를 포함하는 것을 선택적으로 포함할 수 있다.
예 23에서, 예들 17 내지 24(본 예 제외)의 주제는,
성능 기준들이 미가공 비트 에러 레이트를 포함하는 것을 선택적으로 포함할 수 있다.
예 24에서, 예들 17 내지 24(본 예 제외)의 주제는,
(1) 선택된 동작 메모리 다이의 고장을 검출하고, 선택된 동작 메모리 다이의 고장을 검출하는 것에 응답하여, 고장난 동작 메모리 다이를 디스에이블하고, 고장난 동작 메모리 다이를 스페어 메모리 다이로 대체하는 단계 - 스페어 메모리 다이는 선택된 동작 메모리 다이의 고장을 검출하기 전에 선택된 동작 메모리 다이로부터 미러링된 데이터를 가짐 -;
(2) 선택된 동작 메모리 다이를 포함하는 메모리의 동작 메모리 다이들로부터 데이터를 판독하는 단계;
판독 데이터가 에러를 포함하는 경우, 판독 데이터의 에러 정정을 시도하는 단계;
에러 정정이 성공적이지 않은 경우, 선택된 동작 메모리 다이로부터 판독된 판독 데이터를 선택된 동작 메모리 다이의 고장을 검출하기 전에 스페어 메모리 다이로부터 판독된 판독 데이터로 대체함으로써 판독 데이터를 수정하는 단계; 및
수정된 판독 데이터가 에러를 포함하는 경우, 수정된 판독 데이터의 에러 정정을 시도하는 단계;
(3) 복수의 유지보수 사이클들에서 메모리의 유지보수를 순환적으로 수행하는 단계 - 각각의 유지보수 사이클은,
메모리의 동작 메모리 다이들의 메모리 성능을 결정하는 상기 단계;
메모리의 동작 메모리 다이를 메모리 다이 성능의 함수로서 선택하는 상기 단계; 및
선택된 동작 메모리 다이의 데이터를 스페어 메모리 다이에 미러링하는 상기 단계
를 포함함 -;
(4) 복수의 리프레시 사이클들에서 메모리의 리프레시를 순환적으로 수행하는 단계 - 각각의 유지보수 사이클은 리프레시 사이클과 연관되어 수행됨 -
중 적어도 하나의 동작을 선택적으로 포함할 수 있고,
(5) 여기서, 메모리의 동작 메모리 다이들의 메모리 성능을 결정하는 상기 단계는 일정 기간 동안에 특정 성능 기준들과 관련하여 메모리의 각각의 메모리 다이의 비교 성능을 표현하는 비교 통계적 성능 데이터를 누적하는 단계를 포함하고, 메모리의 동작 메모리 다이를 메모리 다이 성능의 함수로서 선택하는 상기 단계는 일정 기간 동안에 최악의 비교 성능을 갖는 동작 메모리 다이를 선택하는 단계를 포함하고,
(6) 성능 기준들은 미가공 비트 에러 레이트를 포함한다.
예 25는 장치로서,
메모리의 동작 메모리 다이들의 메모리 성능을 결정하고, 메모리의 동작 메모리 다이를 메모리 다이 성능의 함수로서 선택하기 위한 선택 수단; 및
선택된 동작 메모리 다이에 대한 데이터를 스페어 메모리 다이에 미러링하기 위한 데이터 미러 수단
을 포함하는 장치이다.
예 26에서, 예들 25 내지 32(본 예 제외)의 주제는,
선택된 동작 메모리 다이의 고장을 검출하기 위한 다이 고장 검출 수단; 및
선택된 동작 메모리 다이의 고장을 검출하는 것에 응답하여, 고장난 동작 메모리 다이를 디스에이블하고, 고장난 동작 메모리 다이를 스페어 메모리 다이로 대체하기 위한 다이 대체 수단 - 스페어 메모리 다이는 선택된 동작 메모리 다이의 고장을 검출하기 전에 선택된 동작 메모리 다이로부터 미러링된 데이터를 가짐 -
을 선택적으로 포함할 수 있다.
예 27에서, 예들 25 내지 32(본 예 제외)의 주제는,
선택된 동작 메모리 다이를 포함하는 메모리의 동작 메모리 다이들로부터 데이터를 판독하기 위한 에러 정정 코드 수단을 선택적으로 포함할 수 있으며, 판독 데이터는 에러 정정 코드에 따라 인코딩되고, 에러 정정 코드 수단은 인코딩된 판독 데이터를 디코딩하기 위한 디코더 수단, 디코딩된 판독 데이터에서 에러를 검출하기 위한 에러 검출 수단, 및 디코딩된 판독 데이터에서 검출된 에러를 정정하려는 시도를 하기 위한 에러 정정 수단을 갖고, 에러 정정 코드 수단은, 디코딩된 판독 데이터에서 검출된 에러를 정정하려는 에러 정정 수단의 실패에 응답하여, 스페어 메모리 다이로부터 데이터를 판독하고 - 판독 데이터는 에러 정정 코드에 따라 인코딩됨 -, 선택된 동작 메모리 다이로부터의 인코딩된 판독 데이터를 스페어 메모리 다이로부터의 인코딩된 판독 데이터로 치환하도록 추가로 구성된다.
예 28에서, 예들 25 내지 32(본 예 제외)의 주제는,
디코더 수단이 스페어 메모리 다이로부터의 인코딩된 판독 데이터를 포함하는 인코딩된 판독 데이터를 디코딩하도록 추가로 구성되고, 에러 검출 수단은 스페어 메모리 다이로부터의 디코딩된 판독 데이터를 포함하는 디코딩된 판독 데이터에서 에러를 검출하도록 추가로 구성되고, 에러 정정 수단은 스페어 메모리 다이로부터의 디코딩된 판독 데이터를 포함하는 디코딩된 판독 데이터에서 검출된 에러를 정정하도록 추가로 구성되는 것을 선택적으로 포함할 수 있다.
예 29에서, 예들 25 내지 32(본 예 제외)의 주제는,
복수의 유지보수 사이클들에서 메모리의 예측성 유지보수를 순환적으로 수행하기 위한 순환적인 예측성 메모리 유지보수 수단을 선택적으로 포함할 수 있으며, 여기서 각각의 유지보수 사이클에서, 상기 선택 수단은 각각의 유지보수 사이클에서 메모리의 동작 메모리 다이들의 메모리 성능을 결정하고, 메모리의 동작 메모리 다이를 메모리 다이 성능의 함수로서 선택하도록 추가로 구성되고, 상기 데이터 미러 수단은 각각의 유지보수 사이클에서 선택된 동작 메모리 다이에 대한 데이터를 스페어 메모리 다이에 미러링하도록 추가로 구성된다.
예 30에서, 예들 25 내지 32(본 예 제외)의 주제는,
복수의 리프레시 사이클들에서 메모리의 리프레시를 순환적으로 수행하기 위한 순환적인 리프레시 수단을 선택적으로 포함할 수 있고, 여기서 예측성 메모리 유지보수 수단은 리프레시 사이클과 연관하여 각각의 유지보수 사이클을 수행하도록 추가로 구성된다.
예 31에서, 예들 25 내지 32(본 예 제외)의 주제는,
상기 선택 수단이 일정 기간 동안에 특정 성능 기준들과 관련하여 메모리의 각각의 메모리 다이의 비교 성능을 표현하는 비교 통계적 성능 데이터를 누적하기 위한 수단, 및 메모리의 동작 메모리 다이를 일정 기간 동안에 최악의 비교 성능을 갖는 동작 메모리 다이의 함수로서 선택하기 위한 수단을 포함하여, 메모리의 동작 메모리 다이들의 메모리 성능을 결정하기 위한 수단을 포함하는 것을 선택적으로 포함할 수 있다.
예 32에서, 예들 25 내지 32(본 예 제외)의 주제는,
성능 기준들이 미가공 비트 에러 레이트를 포함하는 것을 선택적으로 포함할 수 있다.
예 33은 임의의 선행 예에서 청구되는 방법을 수행하기 위한 수단을 포함하는 장치이다.
예 34는, 실행될 때, 임의의 선행 예에서 청구되는 방법을 구현하거나 장치 또는 시스템을 실현하기 위한 머신-판독가능 명령어들을 포함하는 머신-판독가능 스토리지이다.
설명된 동작들은 소프트웨어, 펌웨어, 하드웨어 또는 이들의 임의의 조합을 생성하기 위해 표준 프로그래밍 및/또는 엔지니어링 기술들을 사용하는 방법, 장치 또는 컴퓨터 프로그램 제품으로서 구현될 수 있다. 설명된 동작들은 "컴퓨터 판독가능 저장 매체"에 유지되는 컴퓨터 프로그램 코드로서 구현될 수 있으며, 여기서 프로세서가 컴퓨터 판독가능 저장 매체로부터의 코드를 판독하고 실행할 수 있다. 컴퓨터 판독가능 저장 매체는 전자 회로, 저장 재료들, 무기 재료들, 유기 재료들, 생물학적 재료들, 케이싱, 하우징, 코팅 및 하드웨어 중 적어도 하나를 포함한다. 컴퓨터 판독가능 저장 매체는 자기 저장 매체(예를 들어, 하드 디스크 드라이브들, 플로피 디스크들, 테이프 등), 광학 스토리지(CD-ROM들, DVD들, 광학 디스크들 등), 휘발성 및 비휘발성 메모리 디바이스들(예를 들어, EEPROM들, ROM들, PROM들, RAM들, DRAM들, SRAM들, 플래시 메모리, 펌웨어, 프로그래머블 로직 등), SSD(Solid State Devices) 등을 포함할 수 있지만, 이에 제한되지 않는다. 설명된 동작들을 구현하는 코드는 하드웨어 디바이스(예를 들어, 집적 회로 칩, 프로그래머블 게이트 어레이(Programmable Gate Array)(PGA), 주문형 집적 회로(Application Specific Integrated Circuit)(ASIC) 등)로 구현되는 하드웨어 로직으로 추가로 구현될 수 있다. 또한, 설명된 동작들을 구현하는 코드는 "송신 신호"들로 구현될 수 있는데, 여기서 송신 신호들은 공간을 통해 또는 광섬유, 구리 와이어 등과 같은 송신 매체를 통해 전파될 수 있다. 코드 또는 로직이 인코딩되는 송신 신호들은 무선 신호, 위성 송신, 전파들, 적외선 신호들, 블루투스 등을 추가로 포함할 수 있다. 컴퓨터 판독가능 저장 매체 상에 임베드된 프로그램 코드는 송신 스테이션 또는 컴퓨터로부터 수신 스테이션 또는 컴퓨터로 송신 신호들로서 송신될 수 있다. 컴퓨터 판독가능 저장 매체는 송신 신호들로만 구성되지는 않는다. 본 기술분야의 통상의 기술자는 본 명세서의 범위를 벗어나지 않고 이러한 구성에 많은 수정들이 가해질 수 있고, 제조품은 본 기술분야에 공지된 적절한 정보 베어링 매체를 포함할 수 있다는 것을 알 것이다. 물론, 본 기술 분야의 통상의 기술자는 본 명세서의 범위를 벗어나지 않고 이러한 구성에 많은 수정들이 가해질 수 있고, 제조품은 본 기술분야에 공지된 임의의 유형의 정보 베어링 매체를 포함할 수 있다는 것을 알 것이다.
특정 애플리케이션들에서, 본 명세서에 따른 디바이스는 데스크탑, 워크스테이션, 서버, 메인프레임, 랩톱, 핸드헬드 컴퓨터 등을 포함하는 컴퓨터 시스템과 같이 정보를 컴퓨터 시스템에 연결된 모니터 또는 다른 디스플레이 상에 디스플레이하게 하는 비디오 컨트롤러, 디바이스 드라이버 및 네트워크 컨트롤러를 포함하는 컴퓨터 시스템으로 구현될 수 있다. 대안적으로, 디바이스 실시예들은, 예를 들어, 스위치, 라우터 등과 같은 비디오 컨트롤러를 포함하지 않거나, 예를 들어, 네트워크 컨트롤러를 포함하지 않는 컴퓨팅 디바이스로 구현될 수 있다.
도면들의 예시된 로직은 특정 순서로 발생하는 특정 이벤트들을 나타낼 수 있다. 대안적인 실시예들에서, 특정 동작들은 상이한 순서로 수행되거나, 수정되거나, 또는 제거될 수 있다. 또한, 동작들이 위에서 설명된 로직에 추가될 수 있고, 여전히 설명된 실시예들을 준수할 수 있다. 또한, 본 명세서에 설명된 동작들은 순차적으로 발생할 수도 있고, 또는 특정 동작들이 병렬로 처리될 수도 있다. 또한, 동작들은 단일 프로세싱 유닛에 의해 또는 분산형 프로세싱 유닛들에 의해 수행될 수 있다.
다양한 실시예들의 전술된 설명은 예시 및 설명의 목적으로 제시되었다. 그것은 포괄적이거나 또는 개시된 정확한 형태로 제한하는 것으로 의도되지 않는다. 위의 교시에 비추어 많은 수정들 및 변형들이 가능하다.

Claims (23)

  1. 스페어 메모리 다이를 포함하는 복수의 다이를 갖는 메모리와 함께 사용하기 위한 장치로서,
    메모리의 동작 메모리 다이(operational memory die)들의 메모리 성능을 결정하고, 메모리 다이 성능에 따라 잠재적인 대체를 위해 상기 메모리의 동작 메모리 다이를 선택하도록 구성된 선택 로직; 및
    상기 선택된 동작 메모리 다이의 잠재적인 고장 및 후속적인 대체를 예상하여 스페어 메모리 다이에 미러링하도록 구성된 데이터 미러 로직
    을 포함하고,
    상기 선택된 동작 메모리 다이가 잠재적인 대체를 위해 선택된 이후에 그리고 상기 선택된 동작 메모리 다이의 잠재적인 고장 및 대체 이전에 데이터가 상기 선택된 동작 메모리 다이에 기입되는 장치.
  2. 제1항에 있어서,
    상기 선택된 동작 메모리 다이의 고장을 검출하도록 구성된 다이 고장 검출 로직; 및
    상기 선택된 동작 메모리 다이의 고장을 검출하는 것에 응답하여, 상기 고장난 동작 메모리 다이를 디스에이블하고, 상기 고장난 동작 메모리 다이를 상기 스페어 메모리 다이로 대체하도록 구성된 다이 대체 로직 - 상기 스페어 메모리 다이는 상기 선택된 동작 메모리 다이의 고장을 검출하기 전에 상기 선택된 동작 메모리 다이로부터 미러링된 데이터를 가짐 -
    을 추가로 포함하는 장치.
  3. 제1항 또는 제2항에 있어서,
    상기 선택된 동작 메모리 다이를 포함하는 상기 메모리의 동작 메모리 다이들로부터 데이터를 판독하도록 구성된 에러 정정 코드 로직을 추가로 포함하며, 상기 판독 데이터는 에러 정정 코드에 따라 인코딩되고, 상기 에러 정정 코드 로직은 상기 인코딩된 판독 데이터를 디코딩하도록 구성된 디코더 로직, 상기 디코딩된 판독 데이터에서 에러를 검출하도록 구성된 에러 검출 로직, 및 상기 디코딩된 판독 데이터에서 검출된 에러를 정정하려는 시도를 하도록 구성된 에러 정정 로직을 갖고, 상기 에러 정정 코드 로직은, 상기 디코딩된 판독 데이터에서 검출된 에러를 정정하려는 상기 에러 정정 로직의 실패에 응답하여, 상기 스페어 메모리 다이로부터 데이터를 판독하고 - 상기 판독 데이터는 에러 정정 코드에 따라 인코딩됨 -, 상기 선택된 동작 메모리 다이로부터의 인코딩된 판독 데이터를 상기 스페어 메모리 다이로부터의 인코딩된 판독 데이터로 치환하도록 추가로 구성되는 장치.
  4. 제3항에 있어서, 상기 디코더 로직은 상기 스페어 메모리 다이로부터의 인코딩된 판독 데이터를 포함하는 인코딩된 판독 데이터를 디코딩하도록 추가로 구성되고, 상기 에러 검출 로직은 상기 스페어 메모리 다이로부터의 디코딩된 판독 데이터를 포함하는 디코딩된 판독 데이터에서 에러를 검출하도록 추가로 구성되고, 상기 에러 정정 로직은 상기 스페어 메모리 다이로부터의 디코딩된 판독 데이터를 포함하는 디코딩된 판독 데이터에서 검출된 에러를 정정하도록 추가로 구성되는 장치.
  5. 제1항 또는 제2항에 있어서, 복수의 유지보수(maintenance) 사이클들에서 상기 메모리의 예측성 유지보수를 순환적으로 수행하도록 구성된 순환적인 예측성 메모리 유지보수 로직을 추가로 포함하고, 각각의 유지보수 사이클에서, 상기 선택 로직은 각각의 유지보수 사이클에서 상기 메모리의 동작 메모리 다이들의 메모리 성능을 결정하고, 상기 메모리 다이 성능에 따라 잠재적인 대체를 위해 상기 메모리의 동작 메모리 다이를 선택하도록 추가로 구성되고, 상기 데이터 미러 로직은 각각의 유지보수 사이클에서 상기 선택된 동작 메모리 다이에 대한 데이터를 상기 스페어 메모리 다이에 미러링하도록 추가로 구성되는 장치.
  6. 제5항에 있어서, 복수의 리프레시 사이클들에서 상기 메모리의 리프레시를 순환적으로 수행하도록 구성된 순환적인 리프레시 로직을 추가로 포함하고, 상기 예측성 메모리 유지보수 로직은 리프레시 사이클과 연관하여 각각의 유지보수 사이클을 수행하도록 추가로 구성되는 장치.
  7. 제1항 또는 제2항에 있어서, 상기 선택 로직은, 일정 기간 동안에 특정 성능 기준들과 관련하여 상기 메모리의 각각의 메모리 다이의 비교 성능을 표현하는 비교 통계적 성능 데이터를 누적하도록 구성된 로직, 및 상기 일정 기간 동안에 최악의 비교 성능을 갖는 동작 메모리 다이에 따라 잠재적인 대체를 위해 상기 메모리의 동작 메모리 다이를 선택하도록 구성된 로직을 포함하여, 상기 메모리의 동작 메모리 다이들의 메모리 성능을 결정하도록 구성된 로직을 포함하는 장치.
  8. 제7항에 있어서, 상기 성능 기준들은 미가공 비트 에러 레이트(raw bit error rate)를 포함하는 장치.
  9. 디스플레이와 함께 사용하기 위한 시스템으로서,
    프로세서;
    상기 프로세서에 응답하여 상기 디스플레이를 제어하도록 구성된 비디오 컨트롤러;
    상기 프로세서로부터의 데이터를 저장하도록 구성되고, 스페어 메모리 다이를 포함하는 복수의 메모리 다이들을 갖는 메모리; 및
    상기 메모리를 제어하도록 구성된 메모리 컨트롤러
    를 포함하고,
    상기 메모리 컨트롤러는,
    상기 메모리의 동작 메모리 다이들의 메모리 성능을 결정하고, 메모리 다이 성능에 따라 잠재적인 대체를 위해 상기 메모리의 동작 메모리 다이를 선택하도록 구성된 선택 로직; 및
    상기 선택된 동작 메모리 다이의 잠재적인 고장 및 후속적인 대체를 예상하여 상기 스페어 메모리 다이에 미러링하도록 구성된 데이터 미러 로직
    을 포함하고,
    상기 선택된 동작 메모리 다이가 잠재적인 대체를 위해 선택된 이후에 그리고 상기 선택된 동작 메모리 다이의 잠재적인 고장 및 대체 이전에 데이터가 상기 선택된 동작 메모리 다이에 기입되는 시스템.
  10. 제9항에 있어서, 상기 메모리 컨트롤러는,
    상기 선택된 동작 메모리 다이의 고장을 검출하도록 구성된 다이 고장 검출 로직; 및
    상기 선택된 동작 메모리 다이의 고장을 검출하는 것에 응답하여, 상기 고장난 동작 메모리 다이를 디스에이블하고, 상기 고장난 동작 메모리 다이를 상기 스페어 메모리 다이로 대체하도록 구성된 다이 대체 로직 - 상기 스페어 메모리 다이는 상기 선택된 동작 메모리 다이의 고장을 검출하기 전에 상기 선택된 동작 메모리 다이로부터 미러링된 데이터를 가짐 -
    을 추가로 포함하는 시스템.
  11. 제9항 또는 제10항에 있어서, 상기 메모리 컨트롤러는,
    상기 선택된 동작 메모리 다이를 포함하는 상기 메모리의 동작 메모리 다이들로부터 데이터를 판독하도록 구성된 에러 정정 코드 로직을 추가로 포함하며, 상기 판독 데이터는 에러 정정 코드에 따라 인코딩되고, 상기 에러 정정 코드 로직은 상기 인코딩된 판독 데이터를 디코딩하도록 구성된 디코더 로직, 상기 디코딩된 판독 데이터에서 에러를 검출하도록 구성된 에러 검출 로직, 및 상기 디코딩된 판독 데이터에서 검출된 에러를 정정하려는 시도를 하도록 구성된 에러 정정 로직을 갖고, 상기 에러 정정 코드 로직은, 상기 디코딩된 판독 데이터에서 검출된 에러를 정정하려는 상기 에러 정정 로직의 실패에 응답하여, 상기 스페어 메모리 다이로부터 데이터를 판독하고 - 상기 판독 데이터는 에러 정정 코드에 따라 인코딩됨 -, 상기 선택된 동작 메모리 다이로부터의 인코딩된 판독 데이터를 상기 스페어 메모리 다이로부터의 인코딩된 판독 데이터로 치환하도록 추가로 구성되는 시스템.
  12. 제11항에 있어서, 상기 디코더 로직은 상기 스페어 메모리 다이로부터의 인코딩된 판독 데이터를 포함하는 인코딩된 판독 데이터를 디코딩하도록 추가로 구성되고, 상기 에러 검출 로직은 상기 스페어 메모리 다이로부터의 디코딩된 판독 데이터를 포함하는 디코딩된 판독 데이터에서 에러를 검출하도록 추가로 구성되고, 상기 에러 정정 로직은 상기 스페어 메모리 다이로부터의 디코딩된 판독 데이터를 포함하는 디코딩된 판독 데이터에서 검출된 에러를 정정하도록 추가로 구성되는 시스템.
  13. 제9항 또는 제10항에 있어서, 상기 메모리 컨트롤러는 복수의 유지보수 사이클들에서 상기 메모리의 예측성 유지보수를 순환적으로 수행하도록 구성된 순환적인 예측성 메모리 유지보수 로직을 추가로 포함하고, 각각의 유지보수 사이클에서, 상기 선택 로직은 각각의 유지보수 사이클에서 상기 메모리의 동작 메모리 다이들의 메모리 성능을 결정하고, 상기 메모리 다이 성능에 따라 잠재적인 대체를 위해 상기 메모리의 동작 메모리 다이를 선택하도록 추가로 구성되고, 상기 데이터 미러 로직은 각각의 유지보수 사이클에서 상기 선택된 동작 메모리 다이에 대한 데이터를 상기 스페어 메모리 다이에 미러링하도록 추가로 구성되는 시스템.
  14. 제13항에 있어서, 상기 메모리 컨트롤러는 복수의 리프레시 사이클들에서 상기 메모리의 리프레시를 순환적으로 수행하도록 구성된 리프레시 로직을 추가로 포함하고, 상기 순환적인 예측성 메모리 유지보수 로직은 리프레시 사이클과 연관하여 각각의 유지보수 사이클을 수행하도록 추가로 구성되는 시스템.
  15. 제9항 또는 제10항에 있어서, 상기 선택 로직은, 일정 기간 동안에 특정 성능 기준들과 관련하여 상기 메모리의 각각의 메모리 다이의 비교 성능을 표현하는 비교 통계적 성능 데이터를 누적하도록 구성된 로직, 및 상기 일정 기간 동안에 최악의 비교 성능을 갖는 동작 메모리 다이에 따라 잠재적인 대체를 위해 상기 메모리의 동작 메모리 다이를 선택하도록 구성된 로직을 포함하여, 상기 메모리의 동작 메모리 다이들의 메모리 성능을 결정하도록 구성된 로직을 포함하는 시스템.
  16. 제15항에 있어서, 상기 성능 기준들은 미가공 비트 에러 레이트를 포함하는 시스템.
  17. 방법으로서,
    메모리의 동작 메모리 다이들의 메모리 성능을 결정하는 단계;
    메모리 다이 성능에 따라 잠재적인 대체를 위해 상기 메모리의 동작 메모리 다이를 선택하는 단계; 및
    상기 선택된 동작 메모리 다이의 잠재적인 고장 및 후속적인 대체를 예상하여 스페어 메모리 다이에 미러링하는 단계
    를 포함하고,
    상기 선택된 동작 메모리 다이가 잠재적인 대체를 위해 선택된 이후에 그리고 상기 선택된 동작 메모리 다이의 잠재적인 고장 및 대체 이전에 데이터가 상기 선택된 동작 메모리 다이에 기입되는 방법.
  18. 제17항에 있어서,
    상기 선택된 동작 메모리 다이의 고장을 검출하는 단계, 및
    상기 선택된 동작 메모리 다이의 고장을 검출하는 것에 응답하여, 상기 고장난 동작 메모리 다이를 디스에이블하고, 상기 고장난 동작 메모리 다이를 상기 스페어 메모리 다이로 대체하는 단계 - 상기 스페어 메모리 다이는 상기 선택된 동작 메모리 다이의 고장을 검출하기 전에 상기 선택된 동작 메모리 다이로부터 미러링된 데이터를 가짐 -
    를 추가로 포함하는 방법.
  19. 제17항 또는 제18항에 있어서,
    상기 선택된 동작 메모리 다이를 포함하는 상기 메모리의 동작 메모리 다이들로부터 데이터를 판독하는 단계;
    상기 판독 데이터가 에러를 포함하는 경우, 상기 판독 데이터의 에러 정정을 시도하는 단계;
    상기 에러 정정이 성공적이지 않은 경우, 상기 선택된 동작 메모리 다이로부터 판독된 판독 데이터를 상기 선택된 동작 메모리 다이의 고장을 검출하기 전에 상기 스페어 메모리 다이로부터 판독된 판독 데이터로 대체함으로써 상기 판독 데이터를 수정하는 단계; 및
    상기 수정된 판독 데이터가 에러를 포함하는 경우, 상기 수정된 판독 데이터의 에러 정정을 시도하는 단계
    를 추가로 포함하는 방법.
  20. 제17항에 있어서,
    복수의 유지보수 사이클들에서 상기 메모리의 유지보수를 순환적으로 수행하는 단계
    를 추가로 포함하고,
    각각의 유지보수 사이클은,
    상기 메모리의 동작 메모리 다이들의 메모리 성능을 결정하는 상기 단계;
    메모리 다이 성능에 따라 잠재적인 대체를 위해 상기 메모리의 동작 메모리 다이를 선택하는 상기 단계; 및
    상기 선택된 동작 메모리 다이의 데이터를 상기 스페어 메모리 다이에 미러링하는 상기 단계
    를 포함하는 방법.
  21. 제20항에 있어서, 복수의 리프레시 사이클들에서 상기 메모리의 리프레시를 순환적으로 수행하는 단계를 추가로 포함하고, 각각의 유지보수 사이클은 리프레시 사이클과 연관되어 수행되는 방법.
  22. 제17항, 제18항, 제20항 또는 제21항 중 어느 한 항에 있어서, 상기 메모리의 동작 메모리 다이들의 메모리 성능을 결정하는 상기 단계는 일정 기간 동안에 특정 성능 기준들과 관련하여 상기 메모리의 각각의 메모리 다이의 비교 성능을 표현하는 비교 통계적 성능 데이터를 누적하는 단계를 포함하고, 메모리 다이 성능에 따라 잠재적인 대체를 위해 상기 메모리의 동작 메모리 다이를 선택하는 상기 단계는 상기 일정 기간 동안에 최악의 비교 성능을 갖는 동작 메모리 다이를 선택하는 단계를 포함하는 방법.
  23. 제22항에 있어서, 상기 성능 기준들은 미가공 비트 에러 레이트를 포함하는 방법.
KR1020187014383A 2015-12-21 2016-11-21 예측성 메모리 유지보수 KR102645583B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/976,921 2015-12-21
US14/976,921 US10048877B2 (en) 2015-12-21 2015-12-21 Predictive memory maintenance
PCT/US2016/063192 WO2017112229A1 (en) 2015-12-21 2016-11-21 Predictive memory maintenance

Publications (2)

Publication Number Publication Date
KR20180087256A KR20180087256A (ko) 2018-08-01
KR102645583B1 true KR102645583B1 (ko) 2024-03-11

Family

ID=59064304

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020187014383A KR102645583B1 (ko) 2015-12-21 2016-11-21 예측성 메모리 유지보수

Country Status (4)

Country Link
US (2) US10048877B2 (ko)
KR (1) KR102645583B1 (ko)
DE (1) DE112016005869T5 (ko)
WO (1) WO2017112229A1 (ko)

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10725933B2 (en) * 2016-12-30 2020-07-28 Intel Corporation Method and apparatus for redirecting memory access commands sent to unusable memory partitions
CN107766180B (zh) * 2017-09-22 2020-08-14 成都华为技术有限公司 存储介质的管理方法、装置及可读存储介质
US10466937B2 (en) * 2017-11-28 2019-11-05 BAE Systems Information and Electronic Sustems Integration Inc. Method of implementing a high reliability flash memory recorder
KR102415867B1 (ko) * 2017-11-29 2022-07-04 에스케이하이닉스 주식회사 메모리 셀의 결함을 제거하기 위한 메모리 시스템 및 그의 동작 방법
CN112106138B (zh) 2018-05-24 2024-02-27 美光科技公司 用于行锤击刷新采样的纯时间自适应采样的设备和方法
US11152050B2 (en) 2018-06-19 2021-10-19 Micron Technology, Inc. Apparatuses and methods for multiple row hammer refresh address sequences
US10573370B2 (en) 2018-07-02 2020-02-25 Micron Technology, Inc. Apparatus and methods for triggering row hammer address sampling
US10685696B2 (en) 2018-10-31 2020-06-16 Micron Technology, Inc. Apparatuses and methods for access based refresh timing
WO2020117686A1 (en) 2018-12-03 2020-06-11 Micron Technology, Inc. Semiconductor device performing row hammer refresh operation
CN111354393B (zh) 2018-12-21 2023-10-20 美光科技公司 用于目标刷新操作的时序交错的设备和方法
US10770127B2 (en) 2019-02-06 2020-09-08 Micron Technology, Inc. Apparatuses and methods for managing row access counts
US11043254B2 (en) 2019-03-19 2021-06-22 Micron Technology, Inc. Semiconductor device having cam that stores address signals
US11227649B2 (en) 2019-04-04 2022-01-18 Micron Technology, Inc. Apparatuses and methods for staggered timing of targeted refresh operations
US11264096B2 (en) 2019-05-14 2022-03-01 Micron Technology, Inc. Apparatuses, systems, and methods for a content addressable memory cell with latch and comparator circuits
US11158364B2 (en) 2019-05-31 2021-10-26 Micron Technology, Inc. Apparatuses and methods for tracking victim rows
US11069393B2 (en) 2019-06-04 2021-07-20 Micron Technology, Inc. Apparatuses and methods for controlling steal rates
US10978132B2 (en) 2019-06-05 2021-04-13 Micron Technology, Inc. Apparatuses and methods for staggered timing of skipped refresh operations
US11158373B2 (en) 2019-06-11 2021-10-26 Micron Technology, Inc. Apparatuses, systems, and methods for determining extremum numerical values
US10832792B1 (en) 2019-07-01 2020-11-10 Micron Technology, Inc. Apparatuses and methods for adjusting victim data
US11139015B2 (en) 2019-07-01 2021-10-05 Micron Technology, Inc. Apparatuses and methods for monitoring word line accesses
US11386946B2 (en) 2019-07-16 2022-07-12 Micron Technology, Inc. Apparatuses and methods for tracking row accesses
US10943636B1 (en) 2019-08-20 2021-03-09 Micron Technology, Inc. Apparatuses and methods for analog row access tracking
US10964378B2 (en) 2019-08-22 2021-03-30 Micron Technology, Inc. Apparatus and method including analog accumulator for determining row access rate and target row address used for refresh operation
US11302374B2 (en) 2019-08-23 2022-04-12 Micron Technology, Inc. Apparatuses and methods for dynamic refresh allocation
US11200942B2 (en) 2019-08-23 2021-12-14 Micron Technology, Inc. Apparatuses and methods for lossy row access counting
US11302377B2 (en) 2019-10-16 2022-04-12 Micron Technology, Inc. Apparatuses and methods for dynamic targeted refresh steals
US11601137B2 (en) * 2020-06-18 2023-03-07 Intel Corporation ECC memory chip encoder and decoder
US11309010B2 (en) 2020-08-14 2022-04-19 Micron Technology, Inc. Apparatuses, systems, and methods for memory directed access pause
US11380382B2 (en) 2020-08-19 2022-07-05 Micron Technology, Inc. Refresh logic circuit layout having aggressor detector circuit sampling circuit and row hammer refresh control circuit
US11348631B2 (en) 2020-08-19 2022-05-31 Micron Technology, Inc. Apparatuses, systems, and methods for identifying victim rows in a memory device which cannot be simultaneously refreshed
US11222682B1 (en) 2020-08-31 2022-01-11 Micron Technology, Inc. Apparatuses and methods for providing refresh addresses
US11557331B2 (en) 2020-09-23 2023-01-17 Micron Technology, Inc. Apparatuses and methods for controlling refresh operations
US11222686B1 (en) 2020-11-12 2022-01-11 Micron Technology, Inc. Apparatuses and methods for controlling refresh timing
US11462291B2 (en) 2020-11-23 2022-10-04 Micron Technology, Inc. Apparatuses and methods for tracking word line accesses
US11264079B1 (en) 2020-12-18 2022-03-01 Micron Technology, Inc. Apparatuses and methods for row hammer based cache lockdown
US11482275B2 (en) 2021-01-20 2022-10-25 Micron Technology, Inc. Apparatuses and methods for dynamically allocated aggressor detection
US11600314B2 (en) 2021-03-15 2023-03-07 Micron Technology, Inc. Apparatuses and methods for sketch circuits for refresh binning
US11664063B2 (en) 2021-08-12 2023-05-30 Micron Technology, Inc. Apparatuses and methods for countering memory attacks
US11688451B2 (en) 2021-11-29 2023-06-27 Micron Technology, Inc. Apparatuses, systems, and methods for main sketch and slim sketch circuit for row address tracking

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060236165A1 (en) 2005-03-21 2006-10-19 Cepulis Darren J Managing memory health
US20090006900A1 (en) * 2007-06-28 2009-01-01 International Business Machines Corporation System and method for providing a high fault tolerant memory system
US20110296273A1 (en) 2010-05-28 2011-12-01 Seagate Technology Llc Methods and devices to reduce outer code failure rate variability
US20120144134A1 (en) 2010-12-02 2012-06-07 Yasuyuki Niwa Nonvolatile semiconductor memory and storage device
US20130055047A1 (en) 2011-08-29 2013-02-28 Sandisk Technologies Inc. System and method of copying data
US20150270014A1 (en) 2014-03-19 2015-09-24 Sandisk Enterprise Ip Llc Fault Detection and Prediction for Data Storage Elements
US20150309872A1 (en) 2014-04-29 2015-10-29 Lsi Corporation Data recovery once ecc fails to correct the data
US20150347211A1 (en) * 2010-10-26 2015-12-03 International Business Machines Corporation Scalable prediction failure analysis for memory used in modern computers

Family Cites Families (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5488702A (en) * 1994-04-26 1996-01-30 Unisys Corporation Data block check sequence generation and validation in a file cache system
JP2000113695A (ja) * 1998-10-01 2000-04-21 Mitsubishi Electric Corp 同期型半導体記憶装置
US7263597B2 (en) * 2001-04-19 2007-08-28 Ciena Corporation Network device including dedicated resources control plane
US6799288B2 (en) 2001-09-14 2004-09-28 The Boeing Company Detecting and mitigating memory device latchup in a data processor
US6728156B2 (en) 2002-03-11 2004-04-27 International Business Machines Corporation Memory array system
US7546364B2 (en) * 2002-05-16 2009-06-09 Emc Corporation Replication of remote copy data for internet protocol (IP) transmission
US7050252B1 (en) * 2002-06-01 2006-05-23 Western Digital Technologies, Inc. Disk drive employing off-line sector verification and relocation of marginal sectors discovered during read error recovery procedure
US7130229B2 (en) * 2002-11-08 2006-10-31 Intel Corporation Interleaved mirrored memory systems
JP4110000B2 (ja) * 2003-01-28 2008-07-02 株式会社ルネサステクノロジ 記憶装置
US20050041453A1 (en) * 2003-08-22 2005-02-24 Brazis Paul W. Method and apparatus for reading and writing to solid-state memory
US7881133B2 (en) * 2003-11-11 2011-02-01 Samsung Electronics Co., Ltd. Method of managing a flash memory and the flash memory
JP4507249B2 (ja) * 2004-10-19 2010-07-21 株式会社日立製作所 記憶デバイスの更新を制御するシステム及び方法
JP4936746B2 (ja) * 2006-03-08 2012-05-23 ルネサスエレクトロニクス株式会社 半導体装置
US7511646B2 (en) * 2006-05-15 2009-03-31 Apple Inc. Use of 8-bit or higher A/D for NAND cell value
US7613043B2 (en) * 2006-05-15 2009-11-03 Apple Inc. Shifting reference values to account for voltage sag
WO2008053472A2 (en) * 2006-10-30 2008-05-08 Anobit Technologies Ltd. Reading memory cells using multiple thresholds
US20090006793A1 (en) 2007-06-30 2009-01-01 Koichi Yamada Method And Apparatus To Enable Runtime Memory Migration With Operating System Assistance
US8015438B2 (en) * 2007-11-29 2011-09-06 Qimonda Ag Memory circuit
JP2009211233A (ja) * 2008-03-01 2009-09-17 Toshiba Corp メモリシステム
US8493783B2 (en) * 2008-03-18 2013-07-23 Apple Inc. Memory device readout using multiple sense times
US8250285B2 (en) * 2008-09-10 2012-08-21 Infinte Mormories Ltd. Non-volatile dual memory die for data storage devices
WO2010054410A2 (en) * 2008-11-10 2010-05-14 Fusion Multisystems, Inc. (Dba Fusion-Io) Apparatus, system, and method for predicting failures in solid-state storage
WO2010137067A1 (en) * 2009-05-27 2010-12-02 Hitachi, Ltd. Storage system, control method therefor, and program
US8634240B2 (en) * 2009-10-28 2014-01-21 SanDisk Technologies, Inc. Non-volatile memory and method with accelerated post-write read to manage errors
US8572311B1 (en) * 2010-01-11 2013-10-29 Apple Inc. Redundant data storage in multi-die memory systems
US8207752B2 (en) * 2010-01-11 2012-06-26 Kannan Raj Fault-tolerant multi-chip module
US9037928B2 (en) * 2012-01-01 2015-05-19 Mosys, Inc. Memory device with background built-in self-testing and background built-in self-repair
US8341500B2 (en) * 2010-08-31 2012-12-25 Apple Inc. Detecting corrupted data for a system having non-volatile memory
TW201222254A (en) 2010-11-26 2012-06-01 Inventec Corp Method for protecting data in damaged memory cells by dynamically switching memory mode
US8656086B2 (en) * 2010-12-08 2014-02-18 Avocent Corporation System and method for autonomous NAND refresh
US9432298B1 (en) * 2011-12-09 2016-08-30 P4tents1, LLC System, method, and computer program product for improving memory systems
CN103620562A (zh) * 2011-06-30 2014-03-05 惠普发展公司,有限责任合伙企业 包括用于将数据从活动存储器管芯拷贝至空闲存储器管芯的存储器模块拷贝引擎的存储器模块
US20130018692A1 (en) * 2011-07-13 2013-01-17 Siemens Aktiengesellschaft Apparatus, method, and computer program product for scenario-based identification of complete safety-based requirements specification
US8484519B2 (en) * 2011-08-19 2013-07-09 Stec, Inc. Optimal programming levels for LDPC
TWI461913B (zh) 2011-11-30 2014-11-21 Silicon Motion Inc 快閃記憶裝置及其資料讀取方法
US9092349B2 (en) * 2011-12-14 2015-07-28 Intel Corporation Storage of codeword portions
KR101373668B1 (ko) * 2012-06-22 2014-03-13 연세대학교 산학협력단 메모리 수리 장치 및 방법
US9349476B2 (en) * 2013-02-21 2016-05-24 Sandisk Technologies Inc. Methods, systems, and computer readable media for early detection of potential flash failures using an adaptive system level algorithm based on flash program verify
US9317350B2 (en) * 2013-09-09 2016-04-19 International Business Machines Corporation Method and apparatus for faulty memory utilization
US10141049B2 (en) * 2014-12-19 2018-11-27 Sandisk Technologies Llc Nonvolatile memory system storing system data in marginal word lines

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060236165A1 (en) 2005-03-21 2006-10-19 Cepulis Darren J Managing memory health
US20090006900A1 (en) * 2007-06-28 2009-01-01 International Business Machines Corporation System and method for providing a high fault tolerant memory system
US20110296273A1 (en) 2010-05-28 2011-12-01 Seagate Technology Llc Methods and devices to reduce outer code failure rate variability
US20150347211A1 (en) * 2010-10-26 2015-12-03 International Business Machines Corporation Scalable prediction failure analysis for memory used in modern computers
US20120144134A1 (en) 2010-12-02 2012-06-07 Yasuyuki Niwa Nonvolatile semiconductor memory and storage device
US20130055047A1 (en) 2011-08-29 2013-02-28 Sandisk Technologies Inc. System and method of copying data
US20150270014A1 (en) 2014-03-19 2015-09-24 Sandisk Enterprise Ip Llc Fault Detection and Prediction for Data Storage Elements
US20150309872A1 (en) 2014-04-29 2015-10-29 Lsi Corporation Data recovery once ecc fails to correct the data

Also Published As

Publication number Publication date
US20190079836A1 (en) 2019-03-14
DE112016005869T5 (de) 2018-09-06
US20170177246A1 (en) 2017-06-22
KR20180087256A (ko) 2018-08-01
US10048877B2 (en) 2018-08-14
WO2017112229A1 (en) 2017-06-29

Similar Documents

Publication Publication Date Title
KR102645583B1 (ko) 예측성 메모리 유지보수
US10228990B2 (en) Variable-term error metrics adjustment
TWI674767B (zh) 用於nand快閃記憶體的渦輪乘積碼
US9471423B1 (en) Selective memory error reporting
US10901840B2 (en) Error correction decoding with redundancy data
JP6110953B2 (ja) 階層化反復誤り訂正のための停止基準
US20130318418A1 (en) Adaptive error correction for phase change memory
US9195551B2 (en) Enhanced storage of metadata utilizing improved error detection and correction in computer memory
US20150229337A1 (en) Mitigation of write errors in multi-level cell flash memory through adaptive error correction code decoding
CN110347530B (zh) 数据存储装置及其操作方法
US9912355B2 (en) Distributed concatenated error correction
US9768808B2 (en) Method for modifying device-specific variable error correction settings
EP3368984B1 (en) Temperature dependent multiple mode error correction
US11531590B2 (en) Method and system for host-assisted data recovery assurance for data center storage device architectures
US20160299812A1 (en) Device-Specific Variable Error Correction
US9405624B2 (en) On-die error detection and correction during multi-step programming
US20160299844A1 (en) Mapping Logical Groups of Data to Physical Locations In Memory
US20240088918A1 (en) Data Reliability for Extreme Temperature Usage Conditions in Data Storage
US11245420B2 (en) Apparatus and method for recovering a data error in a memory system
US10514980B2 (en) Encoding method and memory storage apparatus using the same
US9626242B2 (en) Memory device error history bit
US20170186500A1 (en) Memory circuit defect correction
KR20220045343A (ko) 데이터 처리 시스템 내 데이터 전송에서 발생한 에러를 정정하는 장치 및 방법
JP6491482B2 (ja) 複数のフラッシュ面にわたってコード語をインターリーブするための方法および/または装置

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