KR20140024060A - 랭크-특정 순환 중복 검사 - Google Patents

랭크-특정 순환 중복 검사 Download PDF

Info

Publication number
KR20140024060A
KR20140024060A KR1020147001476A KR20147001476A KR20140024060A KR 20140024060 A KR20140024060 A KR 20140024060A KR 1020147001476 A KR1020147001476 A KR 1020147001476A KR 20147001476 A KR20147001476 A KR 20147001476A KR 20140024060 A KR20140024060 A KR 20140024060A
Authority
KR
South Korea
Prior art keywords
crc
rank
memory
enabled
itl
Prior art date
Application number
KR1020147001476A
Other languages
English (en)
Other versions
KR101570622B1 (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 KR20140024060A publication Critical patent/KR20140024060A/ko
Application granted granted Critical
Publication of KR101570622B1 publication Critical patent/KR101570622B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • GPHYSICS
    • 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/1012Adding 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 codes or arrangements adapted for a specific type of error
    • G06F11/1016Error in accessing a memory location, i.e. addressing error
    • 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/1064Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in cache or content addressable memories
    • 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/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1072Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in multilevel memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/12Group selection circuits, e.g. for memory block selection, chip selection, array selection
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/09Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/19Single error correction without using particular properties of the cyclic codes, e.g. Hamming codes, extended or generalised Hamming codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0061Error detection codes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Probability & Statistics with Applications (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Algebra (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)

Abstract

본 발명의 실시예들은 메모리 시스템들에서 랭크-특정 순환 중복 검사들을 제공하기 위한 방법들, 장치들, 및 시스템 구성들을 기술한다.

Description

랭크-특정 순환 중복 검사{RANK-SPECIFIC CYCLIC REDUNDANCY CHECK}
<관련 출원 상호 참조>
본 출원은, 그 전체 내용이 참조용으로 본 명세서에 인용된, "랭크-특정 순환 중복 검사(RANK-SPECIFIC CYCLIC REDUNDANCY CHECK)"라는 제목으로, 2011년 7월 1일에 출원된 미국 특허 출원 제13/175,472호에 대한 우선권을 주장한다.
본 발명의 실시예들은 일반적으로 오류 검출에 관한 것으로, 특히, 랭크-특정 순환 중복 검사(rank-specific cyclic redundancy check)에 관한 것이다.
듀얼 디바이스 데이터 정정(DDDC:dual device data correction) 메모리 모듈들은 실패한 디바이스(failed device)를 매핑하고 랭크의 다른 곳에서 발견된 중복을 사용함으로써 랭크의 실패(failure)를 싱글 메모리 디바이스로부터 복구할 수 있다. 그러나, 제2 디바이스가 그 랭크에서 실패하게 되면, 오류 정정 코드(ECC:error correction code) 보호가 SDC(silent data corruption)의 위험의 대응하는 증가에 따라 약해질 수 있다. 순환 중복 검사(CRC:cyclic redundancy check) 코드들이 SDC의 위험을 감소시키는데(또는 다른 목적들을 위해, 예를 들어, 효과적인 수리 방침이 가능해지도록 채널과 동적 랜덤 액세스 메모리 스토리지 오류들을 구별하는데) 사용될 수 있으며, 그 사용은 또한 성능 저하와 연관될 수 있다.
실시예들은 첨부 도면들과 함께 이하의 상세한 설명에 의해 쉽게 이해될 것이다. 본 설명을 용이하게 하기 위해, 유사한 참조 부호들은 유사한 구조적 요소들을 나타낸다. 실시예들은 첨부 도면들의 도면들에서 제한이 아니라 일례로서 도시된다.
도 1은 일부 실시예들에 따른 스케줄링 유닛을 개략적으로 도시한다.
도 2는 일부 실시예들에 따른 도 1의 스케줄링 유닛을 포함하는 시스템을 개략적으로 도시한다.
도 3은 일부 실시예들에 따른 도 2의 시스템의 판독-경로 컴포넌트들을 개략적으로 도시한다.
도 4는 일부 실시예들에 따른 판독 동작과 연관된 파형들을 도시한다.
도 5는 일부 실시예들에 따른 도 2의 시스템의 기록-경로 컴포넌트들을 개략적으로 도시한다.
도 6은 일부 실시예들에 따른 메모리 제어기 로직의 동작을 도시한 흐름도이다.
도 7은 일부 실시예들에 따른 시스템이다.
이하의 상세한 설명에서, 그 일부를 형성하고, 유사한 참조 부호들이 유사한 부분들을 나타내며, 구현될 수 있는 실시예들이 실례로서 도시된 첨부 도면들에 대한 참조가 이루어진다. 다른 실시예들이 사용될 수 있고, 구조적 또는 논리적 변경들이 본 발명의 범위로부터 벗어나지 않은 채로 이루어질 수 있음을 알 것이다. 따라서, 이하의 상세한 설명은 제한적인 의미로 주어진 것이 아니며, 실시예들의 범위는 첨부된 청구항들 및 그 동등물들에 의해 정의된다.
각종 동작들은, 청구된 주제를 이해하는데 가장 도움이 되는 방식으로, 다수의 별개의 활동들 또는 동작들로서 차례차례 기술될 수 있다. 그러나, 기술 순서는 이 동작들이 반드시 순서에 종속됨을 의미하는 것으로 해석되지 않아야만 한다. 특히, 이 동작들은 프리젠테이션 순서로 실행되지 않을 수 있다. 기술된 동작들은 기술된 실시예와 상이한 순서로 실행될 수 있다. 각종 추가 동작들이 실행될 수 있고/있거나, 기술된 동작들은 추가 실시예들에서 생략될 수 있다.
본 설명을 위해, 구절 "A and/or B(A 및/또는 B)"는 (A), (B), 또는 (A 및 B)를 의미한다. 본 설명을 위해, 구절 "A, B and/or C(A, B, 및/또는 C)"는 (A), (B), (C), (A 및 B), (A 및 C), (B 및 C), 또는 (A, B 및 C)를 의미한다.
설명은, 동일한 또는 상이한 실시예들 중 하나 이상을 각각 나타낼 수 있는, 구절들 "in an embodiment(일 실시예에서)", 또는 "in embodiments(실시예들에서)"를 사용할 수 있다. 또한, 본 발명의 실시예들과 관련하여 사용된, 용어들 "comprising(포함)", "including(포함)", "having(가진)" 등은 동의어이다.
각종 엔티티들은 실행하는 동작들에 관하여 소개 및 기술될 수 있다. 이 엔티티들은 기술된 동작들을 제공하도록 협력하여 구성된 하드웨어, 소프트웨어, 및/또는 펌웨어 요소들을 포함할 수 있음을 알 것이다.
본 발명의 실시예들은 CRC-인에이블 조건이 발생할 때 메모리 모듈의 특정 랭크에서의 CRC의 인에이블을 기술한다. CRC-인에이블 조건은 소정의 랭크에서 미리 정해진 수의 메모리 디바이스들이 실패한 것일 수 있다. 실시예들은 랭크-특정 CRC를 수용하기 위해 동적 메모리 버스 제어들을 제공하는 마이크로-아키텍처 해결책을 제공한다. 이는 메모리 커맨드가 CRC-인에이블 랭크로 스케줄링될 때 커맨드 블랙아웃 타이머 임계값들(command blackout timer thresholds)을 변경하는 단계를 수반할 수 있다.
도 1은 일부 실시예들에 따른 스케줄링 유닛(100)을 도시한다. 도 2는 일부 실시예들에 따른 프로세싱 로직(208) 및 메모리 모듈(212)과 연결된 메모리 제어기 로직(204)의 컨텍스트 내에서 스케줄링 유닛(100)을 도시한 시스템(200)을 도시한다. 스케줄링 유닛(100)은 메모리 모듈(212)에 관하여 메모리 커맨드들을 스케줄링할 수 있다. 도 1에 도시된 바와 같이, 스케줄링 유닛(100)은 복수의 타이밍 컴포넌트들(108)과 연결된 CRC 인에이블러(104)를 포함할 수 있다. 타이밍 컴포넌트들(108)은, 차례차례, 스케줄러(112)와 연결될 수 있다.
개별 타이밍 컴포넌트들(108)은 메모리 모듈(212)의 개별 랭크들(220)에 각각 대응할 수 있으며, 현재 발행된 커맨드들에 기초하여 커맨드 스케줄링을 제어할 수 있다. 타이밍 컴포넌트들(108) 각각은, 이제 기술될, 타이밍 컴포넌트 0과 유사한 아키텍처를 가질 수 있다.
타이밍 컴포넌트 0은 각종 메모리 커맨드들을 수용하는데 필요한 인터-랭크 턴어라운드 레이턴시들(ITL들:inter-rank turnaround latencies)에 대응하는 복수의 값들을 제공하는 구성 레지스터들(CR들:configuration registers)(116)을 포함할 수 있다. CR들(116)은 선택 로직(120)과 연결되며, ITL들을 선택 로직(120)에 제공한다. 선택 로직(120)은 타이머(132)에 제공되는 단일 출력 값을 선택적으로 제공하는 멀티플렉서들(124 및 128)을 포함할 수 있다. 후술되는 바와 같이, 선택 로직(120)에 의해 제공된 값은 스케줄러(112) 및/또는 CRC 인에이블러(104)로부터 수신된 제어 신호들에 의해 제어될 수 있다.
타이머(132)는 선택 로직(120)에 의해 제공된 출력 값에 대응하는 커맨드 블랙아웃 제어를 생성하고, 커맨드 블랙아웃 제어를 스케줄러(112)에 제공할 수 있다. 일부 실시예들에서, 타이머(132)는 선택 로직(120)으로부터의 출력 값으로 설정된 카운트다운 타이머일 수 있다. 이러한 실시예들에서, 타이머(132)가 카운트다운되는 동안, 커맨드 블랙아웃 제어는 활성 상태일 수 있으며, 타이머(132)가 만료되면, 비활성 상태가 될 수 있다.
스케줄러(112)는 타이밍 컴포넌트들(108)로부터 수신된 커맨드 블랙아웃 제어들에 기초하여 커맨드 큐들(136)에 저장된 메모리 커맨드들을 스케줄링할 수 있다. 메모리 커맨드들은 메모리 제어 모듈(204)에 제공될 수 있으며, 대응 데이터는 메모리 채널(216)을 통해 전송된다.
일반적으로, 스케줄링 유닛(100)은, 메모리 채널(216)을 공유하는 임의의 다른 랭크에 관해 후속 커맨드가 스케줄링되기 전에 메모리 채널(216)을 클리어하기에 충분한 시간을 가짐을 보장하도록 동작할 수 있다. 예를 들어, 판독 커맨드가 랭크 1로 스케줄링되면, 다른 판독 커맨드는 메모리 채널(216)을 클리어하기 위해 리턴된 데이터에 대해 필요한 시간의 양 동안 메모리 채널(216)을 통해 액세스되는 임의의 다른 랭크에 스케줄링되지 않아야만 한다. 본 일례에서, 데이터를 리턴하는데 2 데이터 클록들(DCLKS)이 걸린다고 가정하면, 선택 로직(120)은 타이머(132)에게 2라는 값을 제공할 수 있다. 타이머(132)는 카운트다운 타이머를 2로 초기화하고, 커맨드 블랙아웃 제어를 활성 상태로 설정하며, 매 데이터 클록마다 카운트다운 타이머를 1씩 감소시킬 수 있다. 카운트다운 타이머가 만료되면, 타이머(132)는 커맨드 블랙아웃 제어를 비활성 상태로 설정할 수 있다. 따라서, 스케줄러(112)는, 타이머(132)가 만료될 때까지 메모리 채널(216)을 공유하는 랭크들 중 임의의 랭크에 판독 커맨드를 스케줄링하지 않을 수 있다.
메모리 채널(216)을 클리어하기 위한 메모리 커맨드의 시간의 양은 CRC가 특정 랭크에 대해 인에이블되어 있는 지의 여부에 좌우될 수 있다. 따라서, 본 발명의 실시예들은 CRC의 랭크-특정 활성화를 수용하기 위해 CRC 인에이블러(104) 및 선택 로직(120)을 제공한다. 특히, CRC 인에이블러(104)는 랭크들(220) 각각에 대한 CRC 상태를 추적하고, CRC-인에이블 ITL 또는 CRC-디스에이블 ITL을 멀티플렉서(128)에 제공하기 위해 대응 타이밍 컴포넌트에서 멀티플렉서(124)를 제어할 수 있다. CRC가 메모리 커맨드에 대하여 실행중일 때, CRC-인에이블 ITL은 특정 메모리 커맨드와 연관된 값일 수 있다. CRC가 실행되고 있지 않을 때, CRC-디스에이블 ITL은 동일한 메모리 커맨드와 연관된 값일 수 있다. CRC-인에이블 ITL은 CRC-디스에이블 ITL + CRC 델타와 동일할 수 있다. 도 4와 관련하여 후술된 바를 포함하는 일부 실시예들에서, 판독 커맨드에 대한 CRC-디스에이블 ITL은 2일 수 있으며, CRC 델타는 3일 수 있고, 따라서, CRC-인에이블 ITL은 5일 수 있다.
일부 실시예들에서, CRC 인에이블러(104)는 제어 및 데이터 경로 유닛(224)의 CRC 컴포넌트(228)와 연결될 수 있다. 다른 실시예들에서, CRC 인에이블러(104) 및 CRC 컴포넌트(228)는 결합되어, 스케줄링 유닛(100)에, 제어 및 데이터 경로 유닛(224)에, 또는 다른 곳에 위치할 수 있다. CRC 값들을 계산 및 검사하는 것 외에, 후술되는 바와 같이, CRC 컴포넌트(228)는 CRC-트리거 조건에 대한 각종 랭크들을 모니터하고, CRC-트리거 조건의 표시를 CRC 인에이블러(104)에 제공할 수 있다.
일부 실시예들에서, CRC-트리거 조건은 특정 랭크의 특정 수의 메모리 디바이스들(232), 예를 들어, 동적 랜덤 액세스 메모리(DRAM) 디바이스들의 실패에 대응할 수 있다. 예를 들어, 간략하게 상술된 바와 같이, 듀얼 디바이스 데이터 정정(DDDC:dual device data correction) 메모리 모듈은 실패한 디바이스를 매핑하고 메모리 모듈의 다른 곳에서 발견된 중복을 사용함으로써 싱글 디바이스 실패로부터 복구될 수 있다. 그러나, 랭크의 제2 디바이스가 실패하면, 오류 정정 코드(ECC:error correction code) 보호가 SDC(silent data corruption)의 위험의 대응하는 증가에 따라 약해질 수 있다. 따라서, 메모리 모듈(212)이 DDDC 메모리 모듈이면, 랭크의 제2 메모리 디바이스의 실패는 랭크에 발행된 메모리 커맨드들에 대하여 CRC 프로세스들의 사용을 트리거할 수 있다. 메모리 모듈(212)이 싱글 디바이스 데이터 정정(SDDC:single device data correction) 메모리 모듈이면, 랭크의 싱글 메모리 디바이스의 실패는 CRC 프로세스들의 사용을 트리거할 수 있다. 다른 실시예들에서, 다른 수들의 디바이스들, 또는 그 일부분들의 실패는 CRC-트리거 조건이라고 할 수 있다.
각종 실시예들에서, CRC 컴포넌트(228)는 랭크들(220)에 대하여 CRC를 동적으로 인에이블할 수도 있다. CRC 컴포넌트(228)는 모드 레지스터 세트(MRS:mode register set) 프로그래밍 또는 CRC 온-더-플라이(on-the-fly)를 사용해서 목표 랭크에 대하여 CRC를 동적으로 인에이블할 수 있다. MRS 프로그래밍에서, CRC 컴포넌트(228)는 시스템 메모리 인터럽트를 발행하고 목표 랭크에 대한 모든 메모리 커맨드들을 차단할 수 있다. CRC 컴포넌트(228)는 임의의 인-플라이트(in-flight) 메모리 커맨드가 완료되는데 걸릴 수 있는 가능한 최장 시간에 대응하는 시간의 양 동안 대기할 수 있다. CRC 컴포넌트(228)는 임의의 미처리 메모리 커맨드들이 있는 지의 여부를 결정하기 위해 특정 CR을 조사할 수 있다. 인-플라이트 메모리 커맨드들이 없다고 결정한 후에, CRC 컴포넌트(228)는 CRC를 인에이블하기 위해 목표 랭크의 메모리 디바이스들의 모드 레지스터 세트(MRS:mode register set) 레지스터의 판독-변경-기록(RMW)을 실행할 수 있다. 그 후, 정기적인 메모리 커맨드들이 목표 랭크의 기능 메모리 디바이스들에 발행될 수 있다.
CRC 온-더-플라이를 사용해서, CRC 컴포넌트(228)는 목표 랭크에 발행된 메모리 커맨드들에서, CRC-인에이블 비트, 예를 들어, A12 비트를 설정할 수 있다. 설정-비트는 CRC가 특정 메모리 커맨드와 연관된다는 표시를 제공할 수 있다.
CRC는 랭크에 대한 모든 메모리 커맨드들에 대해, 또는 오직 선택적인 메모리 커맨드들에 대해 인에이블될 수 있다. 예를 들어, 판독 및 기록 둘 다에 대해 동시에 CRC를 인에이블할 필요가 없을 수 있다. 판독을 위한 CRC의 인에이블이 신뢰성, 유효성, 및 서비스 가용성(RAS:reliability, availability, and serviceability) 파라미터들에 대하여 허용가능하면, 기록을 위한 CRC의 디스에이블이 허용될 수 있으며, 그 역도 또한 같다.
도 3은 일부 실시예들에 따른 시스템(200)의 판독-경로 컴포넌트들을 도시한다. 특히, 프로세싱 로직(208)은 데이터를 요청하는 데이터 싱크(304) 및 각종 요청들을 추적하기 위한 프로세싱 로직(PL:processing logic) 추적기(308)를 갖는 것으로 도시되어 있다. 메모리 제어기 로직(204)은, CRC 컴포넌트(228)의 일부일 수도 있는, 메모리 제어기 로직(MCL:memory controller logic) 추적기(312), ECC 검사기(316), 및 CRC 검사기(320)를 갖는 것으로 도시되어 있다. 도 4는 일부 실시예들에 따른 도 1-3을 더 참조해서 판독 커맨드 흐름을 기술하는데 사용될 수 있는 다수의 파형들을 도시한다.
일례의 판독 커맨드 흐름은, CRC가 인에이블되는, 랭크 0의 로케이션 A에 대한 제1 판독 커맨드, 및 CRC가 디스에이블되는, 랭크 1의 로케이션 B에 대한 제2 판독 커맨드에 관하여 이제 기술될 수 있다. 스케줄러(112)는, 큐들(136)로부터, 제1 판독 커맨드를 선택할 수 있다. 스케줄러(112)는 랭크 0에 대한 판독 커맨드에 대응하는 값을 출력하기 위해 멀티플렉서(128)를 제어하도록 타이밍 컴포넌트 0의 멀티플렉서(128)에 제어 신호를 발행할 수 있다. 랭크 0에 대한 CRC의 인에이블로 인해, CRC 인에이블러(104)는, 후에 멀티플렉서(128)에 의해 타이머(132)에 출력될 수 있는, CRC-인에이블 ITL, 예를 들어, 5를 출력하도록 멀티플렉서(124)를 제어할 수 있다. 타이머(132)는 로케이션 A에 대한 판독 커맨드를 수용하기 위해 5 데이터 클록 주기들 동안 커맨드 블랙아웃 제어를 활성화할 수 있다.
이제 도 4를 참조하면, 제1 및 제2 데이터 클록 주기들에서, 데이터(RDA0-RDA3)는 메모리 모듈(212)로부터 메모리 제어기 로직(204)으로 메모리 채널(216)을 통해 리턴될 수 있다. 리턴된 데이터는 ECC 검사기(316) 및 CRC 검사기(320)에 동시에(in parallel) 제공될 수 있다. 리턴된 데이터는 또한 제2 및 제3 데이터 주기들에서 데이터 싱크(304)에 직접 기록될 수 있으며, 이는 기록 펄스(404)로 표현된다. ECC 검사기(316)는 제3 데이터 주기에서 리턴된 데이터에 대해 ECC 검사를 실행하고 결과적인 ECC 검사 결과(408)를 MCL 추적기(312)에 제공할 수 있다.
제3 및 제4 데이터 클록 주기들에서, 필러 데이터(filler data)(RDA-ff)는 메모리 채널(216)을 통해 전송될 수 있다. 제5 데이터 클록 주기에서, 리턴된 데이터에 대응하는 CRC 데이터(RDA-crc)는 메모리 채널(216)을 통해 전송될 수 있다. CRC 검사기(320)는 다음 데이터 주기에서, 즉, 제6 데이터 클록 주기에서 리턴된 데이터 및 CRC 데이터에 대해 CRC 검사를 실행하고 결과적인 CRC 검사 결과(412)를 MCL 추적기(312)에 제공할 수 있다.
MCL 추적기(312)가 ECC 검사 결과(408) 및 CRC 검사 결과(412)를 둘 다 수신하면, 리턴된 데이터가 유효함을 나타내는 확인 응답(acknowledgment)(416)을 PL 추적기(308)에 발행할 수 있다.
제5 데이터 클록 주기 후에, 타이머(132)로부터의 커맨드 블랙아웃 제어는 비활성화되어서, 스케줄러(112)가 랭크 1의 로케이션 B에 대한 제2 판독 커맨드를 스케줄링하게 할 수 있다. CRC가 랭크 1에 대해 디스에이블됨에 따라, 타이밍 컴포넌트 1의 선택 로직은 CRC-디스에이블 ITL을 출력할 수 있으며, 그 결과, 타이밍 컴포넌트 1의 타이머는 2 데이터 클록 주기들 동안 커맨드 블랙아웃 제어를 활성화한다.
제2 판독 커맨드는 데이터(RDB0-RDB3)가 제6 및 데7 데이터 클록 주기들에서 리턴되도록 야기할 수 있다. 로케이션 A로부터의 판독과 마찬가지로, ECC 검사기(316)는 다음 데이터 클록 주기에서, 즉, 제8 데이터 클록 주기에서 리턴된 데이터에 대해 ECC 검사를 실행하고 결과적인 ECC 검사 결과(420)를 제공할 수 있다. 그러나, MCL 추적기(312)는 본 인스턴스에서 CRC 데이터 및 CRC 검사 결과를 대기할 필요가 없으며, ECC 검사 결과(420)와 동시에 확인 응답(424)을 발행할 수 있다.
CRC-인에이블 ITL 또는 CRCA-디스에이블 ITL의 스케줄링 및 액세스는 판독 커맨드 흐름에 대해 상술된 바와 같이 기록 커맨드 흐름에 대해 유사할 수 있다. 시스템(200)의 기록-경로 컴포넌트들이 일부 실시예들에 따라 도 5에 도시되어 있다. 특히, 프로세싱 로직(208)은 데이터 소스(504)를 갖는 것으로 도시되고; 메모리 제어기 로직(204)은 적어도 도시된 바와 같이 서로 연결된 CRC 제어 유닛(508), CRC 생성기(512), ECC 생성기(516), 및 멀티플렉서(520)를 갖는 것으로 도시된다. CRC 제어 유닛(508), CRC 생성기(512), 및 멀티플렉서(520)는 CRC 컴포넌트(228)의 일부일 수 있다.
데이터 소스(504)는 메모리 모듈(212)에 기록될 데이터를 메모리 제어기 로직(204)에 제공할 수 있다. 데이터는 멀티플렉서(520), CRC 생성기(512) 및 ECC 생성기(516)에 제공될 수 있다. CRC 생성기(512) 및 ECC 생성기(516)는 메모리 모듈(212)에 기록될 데이터에 대응하는 CRC 및 ECC를 각각 생성할 수 있다. CRC 생성기는 CRC와 함께 데이터의 복사본을 멀티플렉서(520)에 제공할 수 있다. CRC 제어 유닛(508)은, CRC가 데이터가 기록될 특정 랭크에 대해 인에이블되면 데이터 및 CRC가 메모리 모듈(212)에 출력되는 방식으로 멀티플렉서(520)를 제어할 수 있다. CRC가 특정 랭크에 대해 인에이블되지 않으면, CRC 제어 유닛(508)은 CRC 없이 데이터를 출력하도록 멀티플렉서(520)를 제어할 수 있다.
도 6은 일부 실시예들에 따른 메모리 제어기 로직의 동작을 도시한 흐름도(600)이다. 블록(604)에서, 메모리 제어기 로직의 엔티티, 예를 들어, CRC 컴포넌트는 메모리 모듈의 랭크들에 대하여 CRC-트리거 조건들을 모니터할 수 있다. CRC-트리거 조건들의 모니터는 각각의 랭크에서의 실패한 메모리 디바이스들의 수를 추적하는 것을 포함할 수 있다.
블록(608)에서, 메모리 제어기 로직의 엔티티, 예를 들어, CRC 컴포넌트는 CRC-트리거 조건이 검출되었는 지의 여부를 결정할 수 있다. 미리 정해진 수의 메모리 디바이스들이 소정의 랭크에 대해 실패할 때, CRC-트리거 조건이 검출될 수 있다. CRC-트리거 조건이 검출되지 않으면, 프로세스는 블록(604)의 CRC-트리거 조건의 모니터로 복귀할 수 있다. CRC-트리거 조건이 검출되면, 프로세스는 블록(612)으로 진행할 수 있다.
블록(612)에서, 메모리 제어기 로직의 엔티티, 예를 들어, CRC 컴포넌트는 CRC-트리거 조건과 연관된 랭크로 향한 메모리 커맨드들에 대한 CRC 프로세스들을 동적으로 인에이블할 수 있다. 일부 실시예들에서, CRC 프로세스들은 상술된 MRS 프로그래밍 또는 CRC 온-더-플라이에 의해 동적으로 인에이블될 수 있다.
블록(616)에서, 메모리 제어기 로직의 엔티티, 예를 들어, CRC 인에이블러는 CRC-인에이블 랭크와 메모리 채널을 공유하는 랭크들에 대한 CRC 타이밍을 동적으로 인에이블할 수 있다. 일부 실시예들에서, CRC 인에이블러는 CRC 컴포넌트로부터 CRC-트리거 조건의 검출의 표시를 수신할 수 있다. CRC 인에이블러는, 그 후, 해당 랭크에 대하여 CRC 메모리 커맨드들을 수용하는 값을 타이머에게 제공하기 위해, CRC-인에이블 랭크에 대응하는 타이밍 컴포넌트 내에서, 스케줄링 로직을 제어할 수 있다.
본 발명의 기술된 실시예들은 소정의 랭크에 대한 미리 정해진 수의 디바이스 실패들 등의 특정 트리거 조건들에 기초하여 CRC를 선택적으로 이용한다. 이 CRC의 선택적인 이용은, 필요하지 않을 때, CRC와 연관된 성능 저하를 방지하고, 필요할 때, CRC를 구현함으로써, 메모리 시스템의 전체 동작을 유용하게 할 수 있다. 상술된 바와 같이, 효과적인 수리 방침을 가능케 하기 위해, 또는 다른 이유들을 위해, 채널과 DRAM 스토리지 오류들을 구별하기 위해, 허용불가능한 레이트의 SDC가 증가되는 가능성이 있을 때(there is an increased likelihood of an unacceptable rate of SDC) CRC가 요구될 수 있다.
본 발명의 실시예들은 요구되는 대로 구성하도록 임의의 적합한 하드웨어 및/또는 소프트웨어를 사용하는 시스템으로 구현될 수 있다. 도 7은, 일 실시예에서, 하나 이상의 프로세서(들)(704), 프로세서(들)(704) 중 적어도 하나에 연결된 시스템 제어 로직(708), 시스템 제어 로직(708)에 연결된 시스템 메모리(712), 시스템 제어 로직(708)에 연결된 비휘발성 메모리(NVM)/스토리지(716), 및 시스템 제어 로직(708)에 연결된 하나 이상의 통신 인터페이스(들)(720)를 포함하는 일례의 시스템(700)을 도시한다.
일 실시예의 시스템 제어 로직(708)은 프로세서(들)(704) 중 적어도 하나 및/또는 시스템 제어 로직(708)과 통신하는 임의의 적합한 디바이스 또는 컴포넌트에 임의의 적합한 인터페이스를 제공하기 위해 임의의 적합한 인터페이스 제어기들을 포함할 수 있다.
시스템 제어 로직(708)은, 메모리 모듈(212)과 유사할 수 있는, 시스템 메모리(712)에 대한 인터페이스를 제공하기 위해, 메모리 제어기 로직(204)과 유사할 수 있는, 메모리 제어기 로직(710)을 포함할 수 있다. 메모리 제어기 로직(710)은 하드웨어 모듈, 소프트웨어 모듈, 및/또는 펌웨어 모듈일 수 있다. 상술된 바와 같이, 메모리 제어기 로직(710)은 소정의 랭크에 대한 미리 정해진 수의 디바이스 실패들 등의 특정 트리거 조건들에 기초하여 CRC를 선택적으로 이용할 수 있다.
시스템 메모리(712)는, 예를 들어, 시스템(700)에 대한, 데이터 및/또는 명령어들(instructions)을 로드 및 기억하는데 사용될 수 있다. 일 실시예의 시스템 메모리(712)는, 예를 들어, 적합한 DRAM 등의, 임의의 적합한 휘발성 메모리를 포함할 수 있다. 일부 실시예들에서, 시스템 메모리(712)는 더블 데이터 레이트 타입 4 동기 동적 랜덤 액세스 메모리(DDR4 SDRAM)를 포함할 수 있다.
일 실시예의 시스템 제어 로직(708)은 NVM/스토리지(716) 및 통신 인터페이스(들)(720)에 대한 인터페이스를 제공하기 위해 하나 이상의 입력/출력(I/O) 제어기(들)를 포함할 수 있다.
예를 들어, NVM/스토리지(716)는 데이터 및/또는 명령어들을 기억하는데 사용될 수 있다. NVM/스토리지(716)는, 예를 들어, 플래시 메모리 등의, 임의의 적합한 비휘발성 메모리를 포함할 수 있고/있거나, 예를 들어, 하나 이상의 하드 디스크 드라이브(들)(HDD(들)), 하나 이상의 콤팩트 디스크(CD) 드라이브(들), 및/또는 하나 이상의 디지털 다기능 디스크(DVD) 드라이브(들) 등의, 임의의 적합한 비휘발성 기억 디바이스(들)를 포함할 수 있다.
NVM/스토리지(716)는 시스템(700)이 설치되어 있거나, 또는, 디바이스에 의해 액세스될 수 있는, 그러나 반드시 그 일부일 필요는 없는, 디바이스의 물리적인 일부로 스토리지 리소스를 포함할 수 있다. 예를 들어, NVM/스토리지(716)는 통신 인터페이스(들)(720)를 통해 네트워크를 통해 액세스될 수 있다.
통신 인터페이스(들)(720)는 하나 이상의 네트워크(들)를 통해 및/또는 임의의 다른 적합한 디바이스와 통신하도록 시스템(700)용 인터페이스를 제공할 수 있다. 일부 실시예들에서, 통신 인터페이스(들)(720)는 무선 네트워크의 하나 이상의 컴포넌트들과의 무선 통신 링크를 설정 및 유지하기 위해 하나 이상의 안테나(728)를 가진 무선 네트워크 인터페이스 제어기(724)를 포함할 수 있다. 시스템(700)은 하나 이상의 무선 네트워크 표준들 및/또는 프로토콜들 중 임의의 표준 및/또는 프로토콜에 따라 무선 네트워크의 하나 이상의 컴포넌트들과 무선으로 통신할 수 있다.
일 실시예에서, 프로세서(들)(704) 중 적어도 하나는 시스템 제어 로직(708)의 하나 이상의 제어기(들)를 위한 로직, 예를 들어, 메모리 제어기 로직(710)과 함께 패키징될 수 있다. 일 실시예에서, 프로세서(들)(704) 중 적어도 하나는 시스템 인 패키지(SiP:System in Package)를 형성하도록 시스템 제어 로직(708)의 하나 이상의 제어기들을 위한 로직과 함께 패키징될 수 있다. 일 실시예에서, 프로세서(들)(704) 중 적어도 하나는 시스템 제어 로직(708)의 하나 이상의 제어기(들)를 위한 로직과 동일한 다이에 통합될 수 있다. 일 실시예에서, 프로세서(들)(704) 중 적어도 하나는 시스템 온 칩(SoC)을 형성하도록 시스템 제어 로직(708)의 하나 이상의 제어기(들)를 위한 로직과 동일한 다이에 통합될 수 있다.
각종 실시예들에서, 시스템(700)은 서버, 워크스테이션, 데스크탑 컴퓨팅 디바이스, 또는 모바일 컴퓨팅 디바이스(예를 들어, 랩탑 컴퓨팅 디바이스, 핸드헬드 컴퓨팅 디바이스, 태블릿, 넷북 등)일 수 있지만, 이들로만 제한되지는 않는다. 각종 실시예들에서, 시스템(700)은 더 많은 또는 더 적은 컴포넌트들, 및/또는 상이한 아키텍처들을 가질 수 있다.
각종 실시예들에서, 장치가 기술된다. 본 장치는 메모리 모듈의 복수의 랭크들 중 제1 랭크에 관한 CRC-트리거 조건의 표시를 수신하고, 표시의 수신에 기초하여 CRC 인에이블 신호를 생성하도록 구성된 CRC 인에이블러; 및 CRC 인에이블러와 연결된 복수의 타이밍 컴포넌트들 - 개별 타이밍 컴포넌트들은 개별 랭크들에 대응함-을 포함할 수 있으며, 제1 랭크에 대응하는 제1 타이밍 컴포넌트는 CRC 인에이블 신호의 수신에 기초하여 제1 랭크에 대한 CRC를 수용하기 위해 커맨드 블랙아웃 제어를 생성하도록 구성된다. CRC-트리거 조건의 표시는 제1 랭크의 미리 정해진 수의 메모리 디바이스들의 실패의 표시일 수 있다. 일부 실시예들에서, 메모리 모듈은 DDDC 메모리 모듈일 수 있고 미리 정해진 수는 2일 수 있다. 다른 실시예들에서, 메모리 모듈은 SDDC 메모리 모듈일 수 있고 미리 정해진 수는 1일 수 있다.
일부 실시예들에서, 제1 타이밍 컴포넌트는 CRC 인에이블 신호에 기초하여 복수의 값들로부터 제1 값을 선택적으로 출력하도록 구성된 선택 로직; 및 선택 로직과 연결되어, 제1 값에 기초하여 커맨드 블랙아웃 제어를 생성하도록 구성된 타이머를 포함할 수 있다. 복수의 랭크들은 메모리 제어기 로직과 메모리 모듈 간의 메모리 채널을 통해 액세스되도록 구성될 수 있고, 제1 값은 복수의 랭크들 중 임의의 다른 랭크들로의 후속 메모리 커맨드의 스케줄링 전에, 제1 랭크에 스케줄링된 메모리 커맨드가 메모리 채널을 클리어할 수 있게 하기에 충분한 복수의 데이터 클록 주기들을 할당하도록 구성된다.
일부 실시예들에서, 본 장치는 선택 로직과 연결된 복수의 CR들을 더 포함할 수 있다. 선택 로직은 CR들로부터 CRC-인에이블 인터-랭크 턴어라운드 레이턴시(ITL:inter-rank turnaround latency) 및 CRC-디스에이블 ITL을 수신하고 CRC-인에이블 신호의 수신에 기초하여 CRC-인에이블 ITL을 출력하도록 구성된 멀티플렉서를 포함할 수 있다.
일부 실시예들에서, CRC 컴포넌트는 모드 레지스터 세트(MRS:mode register set) 프로그래밍 또는 CRC 온-더-플라이에 의해 제1 랭크를 향한 메모리 커맨드들에 대한 CRC 프로세스들을 동적으로 인에이블하도록 구성될 수 있다.
각종 실시예들에서, 방법이 기술된다. 본 방법은 메모리 모듈의 복수의 랭크들 중 제1 랭크에 대한 순환 중복 검사 트리거 조건을 검출하는 단계; 상기 검출에 기초하여 제1 랭크로 발행된 메모리 커맨드들에 대한 CRC 프로세스들을 동적으로 인에이블하는 단계; 및 제1 랭크와 메모리 채널을 공유하는 랭크들에 대한 CRC 타이밍을 동적으로 인에이블하는 단계를 포함할 수 있다. CRC-트리거 조건을 검출하는 단계는 제1 랭크에서 미리 정해진 수의 메모리 디바이스 실패들을 검출하는 단계를 포함할 수 있다.
일부 실시예들에서, CRC 프로세스들을 동적으로 인에이블하는 단계는 랭크의 메모리 디바이스들의 레지스터들의 모드 레지스터 세트를 프로그래밍하는 단계, 랭크로 발행된 메모리 커맨드들의 CRC-인에이블 비트를 설정하는 단계, 및/또는 CRC-인에이블 인터-랭크 턴어라운드 레이턴시(ITL:inter-rank turnaround latency)에 기초하여 커맨드 블랙아웃 제어를 생성하는 단계를 포함할 수 있다. 커맨드 블랙아웃 제어는 CRC-인에이블 ITL을 출력하기 위해 랭크에 대응하는 타이밍 컴포넌트의 선택 로직을 제어하고; CRC-인에이블 ITL에 기초하여 커맨드 블랙아웃 제어를 타이머에 의해 생성함으로써 생성될 수 있다. 선택 로직은, CRC-인에이블 ITL을 출력하기 위해, CRC-인에이블 ITL 및 CRC-디스에이블 ITL을 수신하는 멀티플렉서를 제어함으로써 제어될 수 있다.
일부 실시예들은, 실행될 때, 디바이스로 하여금 본 명세서에 기술된 방법들 중 임의의 방법을 실행하게 하는 명령어들을 가지는 하나 이상의 컴퓨터-판독 가능 매체를 포함한다.
각종 실시예들에서, 시스템이 기술된다. 본 시스템은 복수의 요청들을 발행하도록 구성된 프로세싱 로직; 복수의 랭크들을 가진 메모리 모듈; 및 프로세싱 로직 및 메모리 모듈과 연결된 메모리 제어기 로직 - 메모리 제어기 로직은 복수의 요청들에 기초하여 복수의 랭크들에 복수의 메모리 커맨드들을 발행하도록 구성됨 -을 포함할 수 있으며, 복수의 메모리 커맨드들에 대응하는 데이터는 공통 메모리 채널을 통해 전송되도록 구성되며, 메모리 제어기는 복수의 랭크들의 개별 랭크들에서 인에이블된 CRC 프로세스들을 수용하기 위해 복수의 메모리 커맨드들을 스케줄링하도록 구성된 스케줄링 유닛을 포함한다.
메모리 제어기 로직은 개별 랭크들에서 CRC 프로세스들을 인에이블하도록 구성된 CRC 컴포넌트를 포함할 수 있고; 스케줄링 유닛은 CRC 타이밍을 인에이블하기 위해 CRC 인에이블러를 포함한다.
복수의 메모리 커맨드들은 판독 커맨드들일 수 있으며, 메모리 제어기 로직은 복수의 판독 커맨드들 중 소정의 판독 커맨드에 응답해서 복수의 랭크들 중 제1 랭크로부터 리턴된 데이터에 대해 오류 정정 코드(ECC:error correction code) 검사를 실행하고, ECC 검사에 기초하여 ECC 검사 결과를 생성하도록 구성된 ECC 검사기; 데이터에 대해 CRC 검사를 실행하고, CRC 검사에 기초하여 CRC 검사 결과를 생성하도록 구성된 CRC 검사기; 및 CRC 프로세스들이 제1 랭크에 대해 인에이블되면 ECC 검사 결과 및 CRC 검사 결과 둘 다에 기초하여, 또는 CRC 프로세스들이 제1 랭크에 대해 인에이블되지 않으면 ECC 검사 결과에만 기초하여, 데이터가 유효하다고 나타내기 위해 신호를 발행하도록 구성된 추적기를 더 포함할 수 있다.
복수의 메모리 커맨드들은 기록 커맨드들일 수 있으며, 메모리 제어기 로직은 복수의 랭크들 중 제1 랭크에 기록될 프로세서로부터 수신된 데이터에 기초하여 CRC를 생성하도록 구성된 CRC 생성기; 및 CRC 프로세스들이 제1 랭크에 대해 인에이블되는 지의 결정에 기초하여 CRC를 선택적으로 출력하기 위해 멀티플렉서를 제어하도록 구성된 CRC 제어 유닛을 더 포함할 수 있다.
일부 실시예들에서, 본 시스템은 하나 이상의 안테나를 가지며 무선 네트워크의 하나 이상의 컴포넌트들과의 무선 통신 링크를 설정 및 유지하도록 구성된 무선 네트워크 인터페이스 제어기를 포함할 수 있다. 본 시스템은 모바일 컴퓨팅 디바이스를 포함한다.
각종 실시예들에서, 장치가 기술된다. 본 장치는 메모리 모듈의 복수의 랭크들 중 제1 랭크에 대한 순환 중복 검사 트리거 조건을 검출하기 위한 수단; 상기 검출에 기초하여 제1 랭크로 발행된 메모리 커맨드들에 대한 CRC 프로세스들을 동적으로 인에이블하기 위한 수단; 및 제1 랭크와 메모리 채널을 공유하는 랭크들에 대한 CRC 타이밍을 동적으로 인에이블하기 위한 수단을 포함할 수 있다.
일부 실시예들에서, CRC-트리거 조건을 검출하기 위한 수단은 제1 랭크에서 미리 정해진 수의 메모리 디바이스 실패들을 검출하기 위한 수단을 포함할 수 있다.
일부 실시예들에서, CRC 프로세스들을 동적으로 인에이블하기 위한 수단은 랭크의 메모리 디바이스들의 레지스터들의 모드 레지스터 세트를 프로그래밍하기 위한 수단, 랭크로 발행된 메모리 커맨드들의 CRC-인에이블 비트를 설정하기 위한 수단, 및/또는 CRC-인에이블 인터-랭크 턴어라운드 레이턴시(ITL:inter-rank turnaround latency)에 기초하여 커맨드 블랙아웃 제어를 생성하기 위한 수단을 포함할 수 있다.
커맨드 블랙아웃 제어를 생성하기 위한 수단은 CRC-인에이블 ITL을 출력하기 위해 랭크에 대응하는 타이밍 컴포넌트의 선택 로직을 제어하기 위한 수단; 및 CRC-인에이블 ITL에 기초하여 커맨드 블랙아웃 제어를 타이머에 의해 생성하기 위한 수단을 포함할 수 있다.
일부 실시예들에서, 선택 로직을 제어하기 위한 수단은, CRC-인에이블 ITL을 출력하기 위해, CRC-인에이블 ITL 및 CRC-디스에이블 ITL을 수신하는 멀티플렉서를 제어하기 위한 수단을 포함할 수 있다.
특정 실시예들이 설명을 위해 본 명세서에 도시 및 기술되었지만, 동일한 목적들을 달성한다고 예상된 매우 다양한 대안 및/또는 동등한 실시예들 또는 구현들이 본 발명의 범위로부터 벗어나지 않은 채로 도시 및 기술된 실시예들에 대해 대체될 수 있다. 본 출원은 본 명세서에 기술된 실시예들의 임의의 적응들 또는 변형들을 망라하도록 의도된 것이다. 따라서, 본 명세서에 기술된 실시예들은 청구항들 및 그 동등물들에 의해서만 제한되는 것으로 명백히 의도된 것이다.

Claims (32)

  1. 메모리 모듈의 복수의 랭크들 중 제1 랭크에 관한 순환 중복 검사(CRC:cyclic redundancy check)-트리거 조건의 표시를 수신하고, 상기 표시의 수신에 기초하여 CRC 인에이블 신호를 생성하도록 구성된 CRC 인에이블러; 및
    상기 CRC 인에이블러와 연결된 복수의 타이밍 컴포넌트들 - 개별 타이밍 컴포넌트들은 개별 랭크들에 대응함 -
    을 포함하고,
    상기 제1 랭크에 대응하는 제1 타이밍 컴포넌트는 상기 CRC 인에이블 신호의 수신에 기초하여 상기 제1 랭크에 대한 CRC를 수용하기 위해 커맨드 블랙아웃 제어(command blackout control)를 생성하도록 구성된 장치.
  2. 제1항에 있어서,
    상기 CRC-트리거 조건의 표시는 상기 제1 랭크의 미리 정해진 수의 메모리 디바이스들의 실패(failure)의 표시인 장치.
  3. 제2항에 있어서,
    상기 메모리 모듈은 듀얼 디바이스 데이터 정정(DDDC:dual device data correction) 메모리 모듈이고 상기 미리 정해진 수는 2인 장치.
  4. 제2항에 있어서,
    상기 메모리 모듈은 싱글 디바이스 데이터 정정(SDDC:single device data correction) 메모리 모듈이고 상기 미리 정해진 수는 1인 장치.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 제1 타이밍 컴포넌트는
    상기 CRC 인에이블 신호에 기초하여 복수의 값들로부터 제1 값을 선택적으로 출력하도록 구성된 선택 로직; 및
    상기 선택 로직과 연결되어, 상기 제1 값에 기초하여 커맨드 블랙아웃 제어를 생성하도록 구성된 타이머
    를 포함하는 장치.
  6. 제5항에 있어서,
    상기 복수의 랭크들은 상기 메모리 제어기 로직과 상기 메모리 모듈 간의 메모리 채널을 통해 액세스되도록 구성되고, 상기 제1 값은 상기 복수의 랭크들 중 임의의 다른 랭크들로의 후속 메모리 커맨드의 스케줄링 전에, 상기 제1 랭크에 스케줄링된 메모리 커맨드가 상기 메모리 채널을 클리어할 수 있게 하기에 충분한 복수의 데이터 클록 주기들을 할당하도록 구성된 장치.
  7. 제5항에 있어서,
    상기 선택 로직과 연결된 복수의 구성 가능한 레지스터들(CR들:configurable registers)을 더 포함하고;
    상기 선택 로직은 CR들로부터 CRC-인에이블 인터-랭크 턴어라운드 레이턴시(ITL:inter-rank turnaround latency) 및 CRC-디스에이블 ITL을 수신하고 상기 CRC-인에이블 신호의 수신에 기초하여 상기 CRC-인에이블 ITL을 출력하도록 구성된 멀티플렉서를 포함하는 장치.
  8. 제1항 내지 제4항 중 어느 한 항에 있어서,
    모드 레지스터 세트(MRS:mode register set) 프로그래밍 또는 CRC 온-더-플라이(on-the-fly)에 의해 상기 제1 랭크를 향한 메모리 커맨드들에 대한 CRC 프로세스들을 동적으로 인에이블하도록 구성된 CRC 컴포넌트를 더 포함하는 장치.
  9. 메모리 모듈의 복수의 랭크들 중 제1 랭크에 대한 순환 중복 검사(CRC) 트리거 조건을 검출하는 단계;
    상기 검출에 기초하여 상기 제1 랭크로 발행된 메모리 커맨드들에 대한 CRC 프로세스들을 동적으로 인에이블하는 단계; 및
    상기 제1 랭크와 메모리 채널을 공유하는 랭크들에 대한 CRC 타이밍을 동적으로 인에이블하는 단계
    를 포함하는 방법.
  10. 제9항에 있어서,
    상기 CRC-트리거 조건을 검출하는 단계는
    상기 제1 랭크에서 미리 정해진 수의 메모리 디바이스 실패들을 검출하는 단계를 포함하는 방법.
  11. 제10항에 있어서,
    상기 메모리 모듈은 듀얼 디바이스 데이터 정정(DDDC:dual device data correction) 메모리 모듈이고 상기 미리 정해진 수는 2인 방법.
  12. 제9항에 있어서,
    CRC 프로세스들을 동적으로 인에이블하는 단계는
    상기 랭크의 메모리 디바이스들의 레지스터들의 모드 레지스터 세트를 프로그래밍하는 단계를 포함하는 방법.
  13. 제9항에 있어서,
    CRC 프로세스들을 동적으로 인에이블하는 단계는
    상기 랭크로 발행된 메모리 커맨드들의 CRC-인에이블 비트를 설정하는 단계를 포함하는 방법.
  14. 제9항에 있어서,
    CRC 타이밍을 동적으로 인에이블하는 단계는
    CRC-인에이블 인터-랭크 턴어라운드 레이턴시(ITL:inter-rank turnaround latency)에 기초하여 커맨드 블랙아웃 제어를 생성하는 단계를 포함하는 방법.
  15. 제14항에 있어서,
    상기 커맨드 블랙아웃 제어를 생성하는 단계는
    상기 CRC-인에이블 ITL을 출력하기 위해 상기 랭크에 대응하는 타이밍 컴포넌트의 선택 로직을 제어하는 단계; 및
    상기 CRC-인에이블 ITL에 기초하여 상기 커맨드 블랙아웃 제어를 타이머에 의해 생성하는 단계
    를 포함하는 방법.
  16. 제15항에 있어서,
    선택 로직을 제어하는 단계는
    CRC-인에이블 ITL을 출력하기 위해, 상기 CRC-인에이블 ITL 및 CRC-디스에이블 ITL을 수신하는 멀티플렉서를 제어하는 단계를 포함하는 방법.
  17. 제9항 내지 제16항의 방법들 중 어느 한 항의 방법을 실행하기 위한 장치.
  18. 실행될 때, 디바이스로 하여금 제9항 내지 제16항의 방법들 중 어느 한 항의 방법을 실행하게 하는 명령어들을 가지는 하나 이상의 컴퓨터-판독 가능 매체.
  19. 복수의 요청들을 발행하도록 구성된 프로세싱 로직;
    복수의 랭크들을 가진 메모리 모듈; 및
    상기 프로세싱 로직 및 상기 메모리 모듈과 연결된 메모리 제어기 로직 - 상기 메모리 제어기 로직은 상기 복수의 요청들에 기초하여 상기 복수의 랭크들에 복수의 메모리 커맨드들을 발행하도록 구성됨 -
    을 포함하며,
    상기 복수의 메모리 커맨드들에 대응하는 데이터는 공통 메모리 채널을 통해 전송되도록 구성되며,
    상기 메모리 제어기는 상기 복수의 랭크들의 개별 랭크들에서 인에이블된 순환 중복 검사(CRC:cyclic redundancy check) 프로세스들을 수용하기 위해 상기 복수의 메모리 커맨드들을 스케줄링하도록 구성된 스케줄링 유닛을 포함하는 시스템.
  20. 제19항에 있어서,
    상기 메모리 제어기 로직은 상기 개별 랭크들에서 CRC 프로세스들을 인에이블하도록 구성된 CRC 컴포넌트를 포함하고; 상기 스케줄링 유닛은 CRC 타이밍을 인에이블하기 위해 CRC 인에이블러를 포함하는 시스템.
  21. 제19항에 있어서,
    상기 복수의 메모리 커맨드들은 판독 커맨드들이고, 상기 메모리 제어기 로직은
    상기 복수의 판독 커맨드들 중 하나의 판독 커맨드에 응답해서 상기 복수의 랭크들 중 제1 랭크로부터 리턴된 데이터에 대해 오류 정정 코드(ECC:error correction code) 검사를 실행하고, 상기 ECC 검사에 기초하여 ECC 검사 결과를 생성하도록 구성된 ECC 검사기;
    상기 데이터에 대해 CRC 검사를 실행하고, 상기 CRC 검사에 기초하여 CRC 검사 결과를 생성하도록 구성된 CRC 검사기; 및
    CRC 프로세스들이 상기 제1 랭크에 대해 인에이블되면 상기 ECC 검사 결과 및 상기 CRC 검사 결과 둘 다에 기초하여, 또는 CRC 프로세스들이 상기 제1 랭크에 대해 인에이블되지 않으면 상기 ECC 검사 결과에만 기초하여, 상기 데이터가 유효하다고 나타내기 위해 신호를 발행하도록 구성된 추적기
    를 포함하는 시스템.
  22. 제19항에 있어서,
    상기 복수의 메모리 커맨드들은 기록 커맨드들이고, 상기 메모리 제어기 로직은
    상기 복수의 랭크들 중 제1 랭크에 기록될 상기 프로세서로부터 수신된 데이터에 기초하여 CRC를 생성하도록 구성된 CRC 생성기; 및
    CRC 프로세스들이 상기 제1 랭크에 대해 인에이블되는 지의 결정에 기초하여 상기 CRC를 선택적으로 출력하기 위해 멀티플렉서를 제어하도록 구성된 CRC 제어 유닛을 포함하는 시스템.
  23. 제19항에 있어서,
    하나 이상의 안테나를 가지며 무선 네트워크의 하나 이상의 컴포넌트들과의 무선 통신 링크를 설정 및 유지하도록 구성된 무선 네트워크 인터페이스 제어기를 더 포함하는 시스템.
  24. 제19항 내지 제23항 중 어느 한 항에 있어서,
    상기 시스템은 모바일 컴퓨팅 디바이스를 포함하는 시스템.
  25. 메모리 모듈의 복수의 랭크들 중 제1 랭크에 대한 순환 중복 검사(CRC) 트리거 조건을 검출하기 위한 수단;
    상기 검출에 기초하여 상기 제1 랭크로 발행된 메모리 커맨드들에 대한 CRC 프로세스들을 동적으로 인에이블하기 위한 수단; 및
    상기 제1 랭크와 메모리 채널을 공유하는 랭크들에 대한 CRC 타이밍을 동적으로 인에이블하기 위한 수단
    을 포함하는 장치.
  26. 제25항에 있어서,
    상기 CRC-트리거 조건을 검출하기 위한 수단은
    상기 제1 랭크에서 미리 정해진 수의 메모리 디바이스 실패들을 검출하기 위한 수단을 포함하는 장치.
  27. 제26항에 있어서,
    상기 메모리 모듈은 듀얼 디바이스 데이터 정정(DDDC:dual device data correction) 메모리 모듈이고 상기 미리 정해진 수는 2인 장치.
  28. 제25항에 있어서,
    CRC 프로세스들을 동적으로 인에이블하기 위한 수단은
    상기 랭크의 메모리 디바이스들의 레지스터들의 모드 레지스터 세트를 프로그래밍하기 위한 수단을 포함하는 장치.
  29. 제25항에 있어서,
    CRC 프로세스들을 동적으로 인에이블하기 위한 수단은
    상기 랭크로 발행된 메모리 커맨드들의 CRC-인에이블 비트를 설정하기 위한 수단을 포함하는 장치.
  30. 제25항에 있어서,
    CRC 타이밍을 동적으로 인에이블하기 위한 수단은
    CRC-인에이블 인터-랭크 턴어라운드 레이턴시(ITL:inter-rank turnaround latency)에 기초하여 커맨드 블랙아웃 제어를 생성하기 위한 수단을 포함하는 장치.
  31. 제30항에 있어서,
    상기 커맨드 블랙아웃 제어를 생성하기 위한 수단은
    상기 CRC-인에이블 ITL을 출력하기 위해 상기 랭크에 대응하는 타이밍 컴포넌트의 선택 로직을 제어하기 위한 수단; 및
    상기 CRC-인에이블 ITL에 기초하여 상기 커맨드 블랙아웃 제어를 타이머에 의해 생성하기 위한 수단
    을 포함하는 장치.
  32. 제25항에 있어서,
    선택 로직을 제어하기 위한 수단은
    CRC-인에이블 ITL을 출력하기 위해, 상기 CRC-인에이블 ITL 및 CRC-디스에이블 ITL을 수신하는 멀티플렉서를 제어하기 위한 수단을 포함하는 장치.
KR1020147001476A 2011-07-01 2012-06-28 랭크-특정 순환 중복 검사 KR101570622B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/175,472 US8527836B2 (en) 2011-07-01 2011-07-01 Rank-specific cyclic redundancy check
US13/175,472 2011-07-01
PCT/US2012/044734 WO2013006387A2 (en) 2011-07-01 2012-06-28 Rank-specific cyclic redundancy check

Publications (2)

Publication Number Publication Date
KR20140024060A true KR20140024060A (ko) 2014-02-27
KR101570622B1 KR101570622B1 (ko) 2015-11-19

Family

ID=47391973

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147001476A KR101570622B1 (ko) 2011-07-01 2012-06-28 랭크-특정 순환 중복 검사

Country Status (6)

Country Link
US (2) US8527836B2 (ko)
EP (1) EP2727115B1 (ko)
JP (1) JP5754037B2 (ko)
KR (1) KR101570622B1 (ko)
CN (1) CN103765522B (ko)
WO (1) WO2013006387A2 (ko)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8527836B2 (en) * 2011-07-01 2013-09-03 Intel Corporation Rank-specific cyclic redundancy check
KR20130130593A (ko) 2012-05-22 2013-12-02 삼성전자주식회사 분산 안테나를 사용하는 복수 개의 기지국을 포함하는 무선통신 시스템에서 기준 신호 측정 방법 및 장치
US20160070022A1 (en) * 2013-09-13 2016-03-10 Baker Hughes Incorporated Fast scintillation high density oxide and oxy-fluoride glass and nano-structured materials for well logging applications
KR20170102875A (ko) * 2014-12-31 2017-09-12 퀄컴 인코포레이티드 리던던시 버전 패킷들로부터 정보 복원을 위한 시스템들 및 방법들
US9697094B2 (en) 2015-02-06 2017-07-04 Intel Corporation Dynamically changing lockstep configuration
KR102296738B1 (ko) 2015-06-01 2021-09-01 삼성전자 주식회사 반도체 메모리 장치, 이를 포함하는 메모리 시스템 및 반도체 메모리 장치의 에러 정정 방법
CN105302658A (zh) * 2015-12-09 2016-02-03 浪潮电子信息产业股份有限公司 一种存储器数据校正测试方法
JP6160717B1 (ja) * 2016-01-15 2017-07-12 日本電気株式会社 プロセッサ、および、データ転送方法
IT201800005506A1 (it) * 2018-05-18 2019-11-18 Sistema di elaborazione, relativo circuito integrato e procedimento
CN109783487A (zh) * 2018-12-07 2019-05-21 广州经传多赢投资咨询有限公司 证券数据的存储方法
KR20230021409A (ko) 2021-08-05 2023-02-14 에스케이하이닉스 주식회사 트레이닝동작을 수행하기 위한 반도체시스템
US11775387B2 (en) * 2022-01-21 2023-10-03 Micron Technology, Inc. Cyclic redundancy check (CRC) retry for memory systems in compute express link (CXL) devices

Family Cites Families (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002351689A (ja) 2001-05-30 2002-12-06 Nec Corp データ転送システム
US20040225944A1 (en) * 2003-05-09 2004-11-11 Brueggen Christopher M. Systems and methods for processing an error correction code word for storage in memory components
US7149945B2 (en) * 2003-05-09 2006-12-12 Hewlett-Packard Development Company, L.P. Systems and methods for providing error correction code testing functionality
US7243205B2 (en) * 2003-11-13 2007-07-10 Intel Corporation Buffered memory module with implicit to explicit memory command expansion
US7177211B2 (en) * 2003-11-13 2007-02-13 Intel Corporation Memory channel test fixture and method
US7133960B1 (en) * 2003-12-31 2006-11-07 Intel Corporation Logical to physical address mapping of chip selects
US8250295B2 (en) * 2004-01-05 2012-08-21 Smart Modular Technologies, Inc. Multi-rank memory module that emulates a memory module having a different number of ranks
US7398449B1 (en) * 2004-06-16 2008-07-08 Azul Systems, Inc. Encoding 64-bit data nibble error correct and cyclic-redundancy code (CRC) address error detect for use on a 76-bit memory module
US7437651B2 (en) * 2004-06-29 2008-10-14 Hewlett-Packard Development Company, L.P. System and method for controlling application of an error correction code (ECC) algorithm in a memory subsystem
US7308638B2 (en) * 2004-06-29 2007-12-11 Hewlett-Packard Development Company, L.P. System and method for controlling application of an error correction code (ECC) algorithm in a memory subsystem
US7577896B2 (en) 2004-10-26 2009-08-18 Brocade Communications Systems, Inc. Apparatus and method for performing cyclic redundancy check (CRC) on partial protocol data units (PDUS)
US7454586B2 (en) * 2005-03-30 2008-11-18 Intel Corporation Memory device commands
US7872892B2 (en) * 2005-07-05 2011-01-18 Intel Corporation Identifying and accessing individual memory devices in a memory channel
US20070089032A1 (en) * 2005-09-30 2007-04-19 Intel Corporation Memory system anti-aliasing scheme
DE102005053625B4 (de) * 2005-11-10 2007-10-25 Infineon Technologies Ag Speichermodul mit einer Mehrzahl von Speicherbausteinen
US7404055B2 (en) * 2006-03-28 2008-07-22 Intel Corporation Memory transfer with early access to critical portion
US7913147B2 (en) * 2006-05-08 2011-03-22 Intel Corporation Method and apparatus for scrubbing memory
US7810013B2 (en) * 2006-06-30 2010-10-05 Intel Corporation Memory device that reflects back error detection signals
US7774684B2 (en) * 2006-06-30 2010-08-10 Intel Corporation Reliability, availability, and serviceability in a memory device
US7870459B2 (en) * 2006-10-23 2011-01-11 International Business Machines Corporation High density high reliability memory module with power gating and a fault tolerant address and command bus
KR100850207B1 (ko) 2006-12-29 2008-08-04 삼성전자주식회사 시스터메틱 코드 발생을 위한 듀얼 클럭킹 방법을 채용한메모리 장치
US8132074B2 (en) * 2007-11-19 2012-03-06 Intel Corporation Reliability, availability, and serviceability solutions for memory technology
TWI358735B (en) * 2008-01-03 2012-02-21 Nanya Technology Corp Memory access control method
US8359521B2 (en) * 2008-01-22 2013-01-22 International Business Machines Corporation Providing a memory device having a shared error feedback pin
US8140936B2 (en) * 2008-01-24 2012-03-20 International Business Machines Corporation System for a combined error correction code and cyclic redundancy check code for a memory channel
US8185801B2 (en) * 2008-01-31 2012-05-22 International Business Machines Corporation System to improve error code decoding using historical information and associated methods
US8185800B2 (en) * 2008-01-31 2012-05-22 International Business Machines Corporation System for error control coding for memories of different types and associated methods
US8023358B2 (en) 2008-04-02 2011-09-20 International Business Machines Corporation System and method for providing a non-power-of-two burst length in a memory system
US8196009B2 (en) 2008-06-18 2012-06-05 Intel Corporation Systems, methods, and apparatuses to transfer data and data mask bits in a common frame with a shared error bit code
US8245105B2 (en) * 2008-07-01 2012-08-14 International Business Machines Corporation Cascade interconnect memory system with enhanced reliability
US20100005214A1 (en) 2008-07-01 2010-01-07 International Business Machines Corporation Enhancing bus efficiency in a memory system
US8321758B2 (en) * 2008-08-05 2012-11-27 Advanced Micro Devices, Inc. Data error correction device and methods thereof
US8463987B2 (en) * 2008-09-23 2013-06-11 Intel Corporation Scalable schedulers for memory controllers
US7957216B2 (en) 2008-09-30 2011-06-07 Intel Corporation Common memory device for variable device width and scalable pre-fetch and page size
US8086783B2 (en) * 2009-02-23 2011-12-27 International Business Machines Corporation High availability memory system
US8098539B2 (en) * 2009-08-26 2012-01-17 Qualcomm Incorporated Hybrid single and dual channel DDR interface scheme by interleaving address/control signals during dual channel operation
US8862973B2 (en) * 2009-12-09 2014-10-14 Intel Corporation Method and system for error management in a memory device
US8495435B2 (en) * 2010-09-22 2013-07-23 Intel Corporation Dynamic physical memory replacement through address swapping
US8527836B2 (en) * 2011-07-01 2013-09-03 Intel Corporation Rank-specific cyclic redundancy check

Also Published As

Publication number Publication date
US8527836B2 (en) 2013-09-03
KR101570622B1 (ko) 2015-11-19
CN103765522B (zh) 2016-11-09
WO2013006387A3 (en) 2013-02-28
US8745464B2 (en) 2014-06-03
CN103765522A (zh) 2014-04-30
US20130007560A1 (en) 2013-01-03
EP2727115A2 (en) 2014-05-07
EP2727115B1 (en) 2020-04-15
EP2727115A4 (en) 2015-02-18
US20130332795A1 (en) 2013-12-12
JP5754037B2 (ja) 2015-07-22
JP2014523034A (ja) 2014-09-08
WO2013006387A2 (en) 2013-01-10

Similar Documents

Publication Publication Date Title
KR101570622B1 (ko) 랭크-특정 순환 중복 검사
US10838808B2 (en) Error-correcting code memory
CN105589762B (zh) 存储器装置、存储器模块和用于纠错的方法
EP3270290B1 (en) Ddr memory error recovery
US8732551B2 (en) Memory controller with automatic error detection and correction
US10042700B2 (en) Integral post package repair
US8572455B2 (en) Systems and methods to respond to error detection
US10628248B2 (en) Autonomous dram scrub and error counting
US10891185B2 (en) Error counters on a memory device
US9891990B2 (en) Memory scrubbing in a mirrored memory system to reduce system power consumption
US10062451B2 (en) Background memory test apparatus and methods
US20140328132A1 (en) Memory margin management
US9471422B2 (en) Adaptive error correction in a memory system
US9864537B2 (en) Memory system power management
US20130305000A1 (en) Signal processing circuit
US11429481B1 (en) Restoring memory data integrity
US20140136910A1 (en) Data communication apparatus and control method
EP3249533A1 (en) Integral post package repair

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