KR20120052251A - 에러 정정 - Google Patents

에러 정정 Download PDF

Info

Publication number
KR20120052251A
KR20120052251A KR1020127002330A KR20127002330A KR20120052251A KR 20120052251 A KR20120052251 A KR 20120052251A KR 1020127002330 A KR1020127002330 A KR 1020127002330A KR 20127002330 A KR20127002330 A KR 20127002330A KR 20120052251 A KR20120052251 A KR 20120052251A
Authority
KR
South Korea
Prior art keywords
memory
ecc
word
data
words
Prior art date
Application number
KR1020127002330A
Other languages
English (en)
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 KR20120052251A publication Critical patent/KR20120052251A/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

예시적인 장치는 제1 메모리 및 제2 메모리에 대한 인터페이스를 구비한다. 예시적인 장치는 또한 인터페이스를 제어하는 기능을 하는 제어 로직을 구비한다. 제어 로직은 데이터 워드를 제1 메모리에 기입하며 데이터 워드와 관련된 에러 검사 및 정정(ECC) 워드를 제2 메모리에 기입하도록 인터페이스를 제어할 수 있다.

Description

에러 정정{ERROR CORRECTING}
에러 정정 코드(ECC)를 이용하는 메모리 보호는 데이터 워드들을 수정할 것인지 여부 및 수정할 방법을 결정하기 위해 에러 검사 워드들 및 데이터를 처리하는 것을 수반한다. 전통적으로, ECC 워드들은 특수 ECC 메모리 모듈들 내에 저장되어 왔다.
첨부 도면들은 본 발명의 다양한 양태들의 다양한 실시예들을 도시한다. 도면들에 도시된 요소 경계들(예로서, 박스들, 박스들의 그룹들 또는 다른 형상들)은 경계들의 일례를 나타낸다는 것을 이해할 것이다. 이 분야의 통상의 기술자는 일부 예들에서 하나의 요소가 다수의 요소로서 설계될 수 있거나 다수의 요소가 하나의 요소로서 설계될 수 있다는 것을 이해할 것이다. 일부 예들에서, 다른 요소의 내부 컴포넌트로서 도시된 요소는 외부 컴포넌트로서 구현될 수도 있고, 그 반대도 마찬가지다.
도 1은 2개의 메모리에 동작 가능하게 접속되는 인터페이스에 동작 가능하게 접속되는 제어 로직을 포함하는 일 실시예를 나타낸다.
도 2는 2개의 메모리에 동작 가능하게 접속되는 인터페이스에 동작 가능하게 접속되는 제어 로직 및 페치 로직(fetch logic)을 포함하는 일 실시예를 나타낸다.
도 3은 2개의 메모리에 동작 가능하게 접속되는 인터페이스에 동작 가능하게 접속되는 제어 로직 및 페치 로직에 접속되는 ECC 로직을 포함하는 일 실시예를 나타낸다.
도 4는 메모리 제어기 내에 구현되는 일 실시예를 나타낸다.
도 5는 데이터 워드 및 데이터 워드와 관련된 ECC 워드를 별개의 메모리들에 기입하는 것과 관련된 방법의 일 실시예를 나타낸다.
도 6은 ECC 워드 크기를 제어하고, 데이터 워드 및 데이터 워드와 관련된 ECC 워드를 별개의 메모리들에 기입하는 것과 관련된 방법의 일 실시예를 나타낸다.
도 7은 ECC 워드 크기를 제어하고, 데이터 워드 및 데이터 워드와 관련된 ECC 워드를 별개의 메모리들에 기입하고, 별개의 메모리들로부터 데이터 워드 및 관련된 ECC 워드를 검색하는 것과 관련된 방법의 일 실시예를 나타낸다.
도 8은 데이터 워드 및 관련된 에러 검사 및 정정 워드를 별개의 메모리들에 기입하는 것과 관련된 예시적인 장치들 및 방법들이 동작할 수 있는 컴퓨팅 환경의 일 실시예를 나타낸다.
도 9는 2개의 메모리 및 메모리 제어기의 일 실시예를 나타낸다.
도 10은 논(none)-ECC 듀얼 인라인 메모리 모듈(DIMM)들을 이용하는 2개의 메모리 및 메모리 제어기의 일 실시예를 나타낸다.
도 11은 ECC DIMM들을 이용하는 2개의 메모리 및 메모리 제어기의 일 실시예를 나타낸다.
<정의>
다음은 본 명세서에서 사용되는 선택된 용어들의 정의들을 포함한다. 이러한 정의들은 용어의 범위 내에 있고 구현에 사용될 수 있는 컴포넌트들의 다양한 예들 및/또는 형태들을 포함한다. 이러한 예들은 한정을 의도하지 않는다. 용어들의 단수 및 복수 형태들 모두는 정의들 내에 있을 수 있다.
"일 실시예", "실시예", "일례", "예" 등에 대한 참조들은 그렇게 설명되는 실시예(들) 또는 예(들)가 특정 특징, 구조, 특성, 속성, 요소 또는 제한을 포함할 수 있지만, 모든 실시예 또는 예가 반드시 그러한 특정 특징, 구조, 요소 또는 제한을 포함하지는 않는다는 것을 지시한다. 더구나, "일 실시예에서"라는 문구의 반복 사용은 반드시 동일 실시예를 지칭하지는 않는다.
ASIC: 주문형 집적 회로
CD: 컴팩트 디스크
CD-R: 기록 가능 CD
CD-RW: 재기입 가능 CD
DIMM: 듀얼 인라인 메모리 모듈. 용어 DIMM의 사용은 임의의 다양한 "메모리 모듈들"을 포함하는 것으로 해석되어야 한다.
DVD: 디지털 다기능 디스크 및/또는 디지털 비디오 디스크
ECC: 에러 정정 코드
LAN: 근거리 네트워크
NVRAM: 비휘발성 랜덤 액세스 메모리
PCI: 주변 컴포넌트 상호접속
PCIE: PCI 익스프레스
RAM: 랜덤 액세스 메모리
DRAM: 동적 RAM
SRAM: 정적 RAM
ROM: 판독 전용 메모리
PROM: 프로그래밍 가능한 ROM
EPROM: 소거 가능한 PROM
EEPROM: 전기적으로 소거 가능한 PROM
USB: 유니버설 직렬 버스
WAN: 광역 네트워크
본 명세서에서 사용되는 바와 같은 "컴퓨터 컴포넌트"는 컴퓨터 관련 엔티티(예로서, 하드웨어, 펌웨어, 실행중인 명령어들, 이들의 조합들)를 지칭한다. 컴퓨터 컴포넌트들은 예를 들어 프로세서에서 실행되는 프로세스, 프로세서, 객체, 실행 파일, 실행 스레드 및 컴퓨터를 포함할 수 있다. 컴퓨터 컴포넌트(들)는 프로세스 및/또는 스레드 내에 존재할 수 있다. 컴퓨터 컴포넌트는 하나의 컴퓨터에 국지화될 수 있고 그리고/또는 다수의 컴퓨터 사이에 분산될 수 있다.
본 명세서에서 사용되는 바와 같은 "로직"은 기능(들) 또는 액션(들)을 수행하고 그리고/또는 다른 로직, 방법 및/또는 시스템으로부터 기능 또는 액션을 유발하기 위한 하드웨어, 펌웨어 및/또는 각각의 조합들을 포함하지만 이에 한정되지 않는다. 로직은 소프트웨어 제어형 마이크로프로세서, 개별 로직(예로서, ASIC), 아날로그 회로, 디지털 회로, 프로그래밍된 로직 장치 등을 포함할 수 있다. 로직은 하나 이상의 게이트들, 게이트들의 조합들 또는 다른 회로 컴포넌트들을 포함할 수 있다. 다수의 논리적 로직이 설명되는 경우, 다수의 논리적 로직을 하나의 물리적 로직으로 통합하는 것이 가능할 수 있다. 마찬가지로, 단일 로직 요소가 설명되는 경우, 단일 로직 요소를 다수의 물리 요소 사이에 분산시키는 것이 가능할 수 있다.
실시예들은 데이터 워드 및 관련된 에러 정정 코드(ECC) 워드를 상이한 메모리들에 기입하는 것을 용이하게 한다. 일 실시예는 제1 메모리 및 제2 메모리에 대한 인터페이스를 포함하는 장치를 설명한다. 제1 메모리 및 제2 메모리는 특수 ECC 메모리들이 아니라 표준 메모리들일 수 있다. 따라서, 제1 메모리도 제2 메모리도 ECC에 대한 고유한 지원을 제공하지 못할 수 있다. 그러나, 실시예들은 ECC에 대한 고유한 지원을 제공하는 메모리들에 대해서도 동작할 수 있다. 이 장치는 또한 데이터 워드를 제1 메모리에 기입하고 데이터 워드와 관련된 ECC 워드를 제2 메모리에 기입하도록 인터페이스를 제어하는 기능을 하는 제어 로직을 포함한다. 2개의 메모리가 기입되고 있으므로, 데이터 워드 및 그와 관련된 ECC 워드는 실질적으로 동시에 기입될 수 있다. 데이터 워드 및 그와 관련된 ECC 워드는 상이한 메모리들 내에 존재하므로, 데이터 워드 및 그와 관련된 ECC 워드는 또한 실질적으로 동시에 검색될 수 있다. 일 실시예에서 2개의 메모리는 2개의 별개의 물리 메모리 내에 위치할 수 있는 반면, 다른 실시예에서 2개의 메모리는 동일 물리 메모리(예로서, 메모리 모듈, 메모리 칩) 내에 물리적으로 위치하는 2개의 별개의 로직 메모리 내에 위치할 수 있다. 다른 실시예에서, ECC 메모리 및 데이터 메모리는 하나 이상의 물리 메모리들에 걸쳐 혼합될 수 있다. 2개의 메모리가 설명되지만, 이 분야의 통상의 기술자는 더 많은 수의 메모리가 사용될 수 있다는 것을 이해할 것이다.
다른 실시예는 방법을 설명한다. 이 방법은 하드웨어 회로에서 데이터 워드와 관련된 ECC 워드를 컴퓨팅하는 단계를 포함한다. 이 방법은 또한 데이터 워드를 제1 메모리에 기입하는 단계, 및 ECC 워드를 제2의 잠재적으로 다른 메모리에 기입하는 단계를 포함한다. 이 방법은 또한 ECC 워드 크기를 제어하는 단계, ECC 워드가 어떻게 컴퓨팅되는지를 제어하는 단계, 및 ECC 워드가 어떻게 평가되는지를 제어하는 단계를 포함할 수 있다. 이 방법은 또한 데이터 워드 및 관련된 ECC 워드를 검색하는 단계를 포함할 수 있다. 일례에서, 데이터 워드 및 ECC 워드 양자는 실질적으로 병렬로 기입될 수 있다. 다시 한번 말하면, 2개의 메모리가 설명되지만, 이 분야의 기술자는 더 많은 수의 메모리가 사용될 수 있다는 것을 이해할 것이다.
도 1은 장치(100)를 도시한다. 장치(100)는 제1 메모리(120) 및 제2 메모리(130)에 동작 가능하게 접속된 인터페이스(110)를 포함한다. 제1 메모리(120)는 예를 들어 RAM, NVRAM, DIMM 또는 다른 타입의 메모리일 수 있다. 제1 메모리(120)는 특수 ECC 메모리일 필요가 없다. 제2 메모리(130)도 RAM, NVRAM, DIMM 또는 다른 형태의 메모리일 수 있다. 제2 메모리(130)도 특수 ECC 메모리일 필요가 없다. 따라서, 제1 메모리(120)도 제2 메모리(130)도 ECC에 대한 고유한 지원을 제공하지 않을 수 있다. 제1 메모리(120) 및 제2 메모리(130)가 별개의 물리 메모리들로서 도시되지만, 일 실시예에서 제1 메모리(120) 및 제2 메모리(130)는 동일 물리 메모리 내에 위치하는 별개의 로직 메모리들일 수 있다.
장치(100)는 제어 로직(140)도 포함한다. 제어 로직(140)은 데이터 워드를 제1 메모리(120)에 기입하고 데이터 워드와 관련된 ECC 워드를 제2 메모리(130)에 기입하도록 인터페이스(110)를 제어하는 기능을 한다. 일 실시예에서, 제1 메모리(120)는 제1 데이터 버스를 통해 액세스 가능하고, 제2 메모리(130)는 제2의 상이한 데이터 버스를 통해 액세스 가능하다. 이 실시예에서, 데이터 워드 및 ECC 워드는 단일 기입 기간 동안 실질적으로 동시에 기입될 수 있다.
장치(100)는 ECC를 지원하고, ECC를 지원하지 않고, 상이한 타입의 ECC를 지원하도록 컴퓨팅 시스템을 동적으로 재구성하는 것을 용이하게 한다. 따라서, 일 실시예에서, 제1 메모리(120)는 데이터 워드들을 저장하도록 구성될 수 있는 반면, 제2 메모리(130)는 ECC 워드들을 저장하도록 구성될 수 있다. 다른 실시예에서, 제1 메모리(120)는 ECC 워드들을 저장하도록 구성될 수 있는 반면, 제2 메모리(130)는 데이터 워드들을 저장하도록 구성된다. 또 다른 실시예에서, 제1 메모리(120)는 데이터 워드들 및 ECC 워드들 양자를 저장하도록 구성될 수 있다. 마찬가지로, 일 실시예에서, 제2 메모리(130)는 데이터 워드들 및 ECC 워드들 양자를 저장하도록 구성될 수 있는 반면, 제1 메모리(120)는 데이터 워드들을 저장한다. 일 실시예에서, 장치(100)는 제1 메모리(120) 및 제2 메모리(130) 중 하나 또는 양자를 포함할 수 있다. 이 분야의 기술자는 일 실시예에서 ECC 워드 및 데이터 워드들이 둘 이상의 메모리 내에 혼합될 수 있다는 것을 이해할 것이다. 따라서, ECC 워드 및 데이터 워드들이 연속적으로 저장되는 예들이 제공되지만, 이 분야의 기술자는 워드들이 연속적으로 저장되지 않을 수 있다는 것을 이해할 것이다.
제1 메모리(120) 및 제2 메모리(130)의 이러한 상이한 가능한 구성들과 더불어, 제어 로직(140)은 데이터 워드와 관련된 ECC 워드를 제2 메모리(130)에 기입할지, 데이터 워드와 관련된 ECC 워드를 제1 메모리(120)에 기입하는지 또는 심지어 ECC 워드를 메모리에 기입하는지 여부를 선택적으로 제어하도록 구성될 수 있다.
도 2는 제1 메모리(220) 및 제2 메모리(230)에 동작 가능하게 접속된 인터페이스(210)에 동작 가능하게 접속된 제어 로직(240)을 포함하는 장치(200)를 도시한다. 제어 로직(240), 인터페이스(210) 및 메모리들(220, 230)은 장치(100)와 관련하여 설명된 것들과 유사하게 동작할 수 있다. 장치(200)는 또한 페치 로직(250)을 포함한다. 페치 로직(250)은 제1 메모리(220)로부터 데이터 워드들을 그리고 제2 메모리(230)로부터 ECC 워드들을 동시에 페치(fetch)하도록 인터페이스(210)를 제어하는 기능을 한다. 일 실시예에서, 페치 로직(250)은 단일 페치 기간 동안에 제1 메모리(220)로부터 데이터 워드를 그리고 제2 메모리(230)로부터 ECC 워드를 판독할 수 있다. 일 실시예에서, 데이터 워드들 및 ECC 워드들 양자가 제1 메모리(220)에 기입될 때, 페치 로직(250)은 여전히 단일 페치 기간에 데이터 워드 및 ECC 워드를 판독할 수 있다.
도 3은 장치(300)를 도시한다. 장치(300)는 제1 메모리(320) 및 제2 메모리(330)에 동작 가능하게 접속된 인터페이스(310)에 동작 가능하게 접속된 제어 로직(340)을 포함한다. 장치(300)는 또한 페치 로직(350)을 포함한다. 제어 로직(340), 인터페이스(310), 페치 로직(350) 및 메모리들(320, 330)은 장치(300)와 관련하여 설명된 것들과 유사하게 동작할 수 있다. 장치(300)는 또한 ECC 로직(360)을 포함한다.
ECC 로직(360)은 장치(300) 내의 하드웨어에서 ECC 처리를 수행하도록 구성될 수 있다. ECC 처리는 예를 들어 데이터 워드 및 ECC 워드에 대한 에러 검사 및 에러 정정 양자를 포함할 수 있다. ECC 워드 생성 및/또는 해석에 대한 상이한 접근법들이 이용 가능할 수 있다. 따라서, 일 실시예에서, ECC 로직(360)은 ECC 로직(360)에서 이용 가능한 상이한 ECC 접근법들을 수행하도록 동적으로 제어 가능할 수 있다. 예를 들어, 제1 방식으로 해석될 수 있는 제1 타입의 ECC 워드를 생성하는 제1 ECC 접근법이 이용 가능할 수 있다. 제1 방식으로 해석될 수 있는 제2 타입의 ECC를 생성하는 제2 ECC 접근법도 이용 가능할 수 있다. 상이한 시간에, ECC 로직(360)은 제1 ECC 접근법 또는 제2 ECC 접근법을 수행하도록 동적으로 제어될 수 있다. ECC 로직(360)은 ECC 워드 크기를 제어하는 기능도 할 수 있다. ECC 워드 크기는 예를 들어 단일 비트, 2 비트, 8 비트, 16 비트 및 다른 비트 크기들일 수 있다.
도 4는 메모리 제어기(400)를 도시한다. 상이한 실시예들에서, 장치(100)(도 1), 장치(200)(도 2) 및 장치(300)(도 3)의 요소들은 메모리 제어기(400) 내에 구현될 수 있다. 예를 들어, 메모리 제어기(400)는 제어 로직(440), 페치 로직(450) 및 ECC 로직(460)을 포함할 수 있다. 메모리 제어기(400)는 인터페이스(410)에 의해 제1 메모리 (420) 및 제2 메모리(430)에 접속될 수 있다. 인터페이스는 예를 들어 버스일 수 있다.
이어지는 상세한 설명들 중 일부 부분들은 메모리 내의 데이터 비트들에 대한 연산들의 알고리즘들 및 심벌 표현들과 관련하여 제공된다. 이러한 알고리즘 설명들 및 표현들은 이 분야의 기술자들에 의해 그들의 연구의 내용을 다른 기술자들에게 전달하는 데 사용된다. 본 명세서에서 그리고 일반적으로, 알고리즘은 결과를 산출하는 연산들의 시퀀스인 것으로 이해된다. 연산들은 물리적인 양들의 물리적인 조작들을 포함할 수 있다. 일반적으로, 반드시는 아니지만, 물리적인 양들은 저장, 전송, 결합, 비교, 아니면 논리적 조작 등이 가능한 전기 또는 자기 신호들의 형태를 갖는다.
때로는 주로 일반적인 사용의 이유로 이러한 신호들을 비트들, 값들, 요소들, 심벌들, 문자들, 용어들, 숫자들 등으로 지칭하는 것이 편리한 것으로 입증되었다. 그러나, 이들 및 유사한 용어들은 적절한 물리량들과 연관되어야 하며, 이러한 양들에 적용되는 편리한 라벨들일 뿐이라는 점에 유의해야 한다. 구체적으로 달리 설명되지 않는 한, 본 설명 전반에서 처리, 컴퓨팅, 결정 등을 포함하는 용어들은 컴퓨터 시스템, 로직, 프로세서, 또는 물리적인(전자적인) 양들로서 표현된 데이터를 조작 및 변환하는 유사한 전자 장치의 액션들 및 프로세스들을 지칭한다는 것을 인식한다.
예시적인 방법들은 흐름도들을 참조하여 더 잘 인식될 수 있다. 방법들은 블록들의 순서에 의해 제한되지 않는다는 것을 알아야 하는데, 이는 일부 블록들이 상이한 순서들로 그리고/또는 도시되고 설명된 것과 다른 블록들과 동시에 발생할 수 있기 때문이다. 블록들은 결합되거나, 다수의 컴포넌트로 분리될 수 있다. 더구나, 추가 및/또는 대안적인 방법들은 추가적인 도시되지 않은 블록들을 이용할 수 있다.
도 5는 데이터 워드 및 데이터 워드와 관련된 ECC 워드를 별개의 메모리들에 기입하는 것과 관련된 방법(500)의 일 실시예를 나타낸다. 방법(500)은 530에서 하드웨어 회로에서 데이터 워드와 관련된 ECC 워드를 컴퓨팅하는 단계를 포함한다. ECC 워드는 상이한 크기들을 가질 수 있고, 상이한 프로토콜들에 따라 컴퓨팅될 수 있다. 방법(500)은 또한 540에서 데이터 워드를 제1 메모리에 기입하는 단계 및 550에서 ECC 워드를 제2의 상이한 메모리에 기입하는 단계를 포함한다. 이 분야의 기술자는 540 및 550에서 발생하는 액션들이 일반적으로 동시에 발생할 것이라는 것을 이해할 것이다. 그러나, 일부 실시예들에서는, 예를 들어, ECC 워드들이 메모리에 기입되기 전에 캐시 및/또는 합체될 때, 이들은 상이한 시간에 발생할 수 있다.
제1 메모리는 예를 들어 RAM, NVRAM, DIMM 또는 다른 타입의 메모리일 수 있다. 제1 메모리는 특수 ECC 메모리일 필요가 없다. 제2 메모리도 RAM, NVRAM, DIMM 또는 다른 형태의 메모리일 수 있다. 제2 메모리도 특수 ECC 메모리일 필요가 없다. 제1 메모리 및 제2 메모리는 별개의 물리 메모리들일 수 있다. 제1 메모리 및 제2 메모리는 동일 물리 메모리 내에 위치하는 별개의 로직 메모리들일 수도 있다.
도 6은 방법(600)을 도시한다. 방법(600)은 방법(500)(도 5)과 관련된 것들과 일부 동작들을 포함한다. 예를 들어, 방법(600)은 630에서 ECC 워드를 컴퓨팅하는 단계, 640에서 데이터 워드를 제1 메모리에 기입하는 단계, 및 650에서 ECC 워드를 제2 메모리에 기입하는 단계를 포함한다. 그러나, 방법(600)은 일부 추가적인 동작들을 포함한다.
방법(600)은 ECC 워드 크기를 제어하는 것과 그리고 ECC 워드들이 어떻게 컴퓨팅되는지를 제어하는 것과 관련된 동작들을 포함한다. 방법(600)은 610에서 ECC 워드 크기를 선택적으로 결정하는 단계를 포함한다. ECC 워드 크기는 예를 들어 1 비트(또는 패리티), 4 비트, 8 비트, 16 비트, 32 비트 등일 수 있다. 논-ECC 메모리 모듈들이 사용될 수 있으므로, ECC 워드의 크기는 모듈 구성에 의해 제한되지 않는다. ECC 워드 크기는 예를 들어 시스템 설계, 사용자 입력, 프로그램 입력, 메모리 조건들(예로서, 이용 가능 메모리) 및 다른 팩터들에 기초하여 동적으로 결정될 수 있다. 방법(600)은 또한 620에서 ECC 워드가 어떻게 컴퓨팅되는지를 선택적으로 제어하는 단계를 포함한다. ECC 회로가 상이한 프로토콜들에 따라 ECC 워드를 컴퓨팅할 수 있는 것이 가능할 수 있다. 어느 프로토콜을 사용할지는 예를 들어 사용자 입력에 기초하여 동적으로 결정될 수 있다. 상이한 프로토콜들은 ECC 회로 내로 전송되고 제어 신호에 의해 구동될 수 있다.
도 7은 방법(700)을 도시한다. 방법(700)은 방법(600)(도 6)과 관련된 것들과 유사한 일부 동작들을 포함한다. 예를 들어, 방법(700)은 710에서 ECC 워드 크기를 결정하는 단계, 720에서 ECC 워드가 어떻게 컴퓨팅되는지를 제어하는 단계, 730에서 720에서의 결정에 기초하여 ECC 워드를 컴퓨팅하는 단계, 740에서 데이터 워드를 제1 메모리에 기입하는 단계, 및 750에서 ECC 워드를 제2 메모리에 기입하는 단계를 포함한다. 그러나, 방법(700)은 일부 추가 동작들을 포함한다.
방법(700)은 760에서 하나의 페치 기간에 제1 메모리 및 제2 메모리로부터 검색되는 데이터 워드 및 검색되는 ECC 워드를 검색하는 단계를 더 포함한다. 일례에서, 제1 메모리 및 제2 메모리는 상이한 데이터 버스들을 통해 이용 가능할 수 있으며, 이 경우에 하나의 페치 기간은 별개의 판독 제어 신호들을 상이한 버스들을 통해 별개의 메모리들로 전송하는 것을 포함할 수 있다. 다른 예에서, 제1 메모리 및 제2 메모리는 동일 데이터 버스를 통해 이용 가능할 수 있다. 방법(700)은 또한 770에서 검색된 ECC 워드를 고려하여 검색된 데이터 워드에 대한 에러 정정 및 검사를 수행하기 위해 ECC 회로가 어떻게 기능하는지를 선택적으로 제어하는 단계를 포함한다. ECC 회로가 상이한 알고리즘들 또는 프로토콜들에 따라 ECC 워드들을 평가하기 위한 회로를 포함할 수 있다. 어느 프로토콜을 사용할지는 예를 들어 사용자 입력, 프로그램 입력, 제어 신호, 인터럽트 및 다른 기준들의 함수로서 동적으로 선택될 수 있다. 이 분야의 기술자는 일반적으로 프로토콜이 데이터가 기입될 때 사용된 ECC 기능과 매칭될 것이라는 것을 이해할 것이다.
방법(700)은 심지어 ECC 워드를 저장할지 또는 판독할지를 선택적으로 결정하는 단계를 포함할 수도 있다. 이것은 특수 ECC 메모리를 사용하는 통상의 시스템에 비해 시스템의 유연성을 향상시키는 것을 용이하게 한다. 예를 들어, 컴퓨터가 제1 시간에 제1 메모리를 사용하여 데이터 워드들을 저장하고 제2 메모리를 사용하여 ECC 워드들을 저장하도록 방법에 의해 구성될 수 있다. 그러나, 다른 시점에, 컴퓨터는 ECC의 사용에 관심을 갖지 않을 수 있다. 따라서, 이러한 다른 시점에, 방법을 이용하여, 제2 메모리를 사용하여 ECC 워드들을 저장하는 것이 아니라 데이터 워드들을 저장하도록 컴퓨터를 제어할 수 있다.
도 5 내지 7은 순차적으로 발생하는 다양한 동작들을 도시하지만, 이 예시적인 방법들에 도시된 일부 동작들은 실질적으로 동시에 발생할 수 있다는 것을 알아야 한다. 예를 들어, 데이터 워드들 및 ECC 워드들은 일반적으로 동시에 기입될 것이다. 다른 예로서, 제1 프로세스는 데이터 워드들 및 관련된 ECC 워드들을 기입할 수 있고, 제2 프로세스는 데이터 워드들 및 관련된 ECC 워드들을 판독할 수 있으며, 제3 프로세스는 ECC 생성 및 해석을 제어할 수 있다. 3개의 프로세스가 설명되지만, 더 많은 수 및/또는 더 적은 수의 프로세스가 이용될 수 있다는 것을 알아야 한다.
도 8은 데이터 워드 및 관련된 에러 검사 및 정정 워드를 별개의 메모리들에 기입하는 것과 관련된 예시적인 장치들 및 방법들이 동작할 수 있는 컴퓨팅 환경의 일 실시예를 나타낸다. 예시적인 컴퓨팅 환경은 버스(808)에 의해 메모리 제어기(840) 및 ECC 및 데이터 로직(830)을 통해 동작 가능하게 접속된 프로세스(802)와 메모리(804)를 포함하는 컴퓨터(800)일 수 있다. ECC 및 데이터 로직(830)은 데이터 워드들 및 관련된 ECC 워드들을 상이한 메모리들에 기입하고, 상이한 메모리들로부터 데이터 워드들 및 관련된 ECC 워드들을 판독하고, ECC 워드 크기를 제어하고, ECC 워드 컴퓨팅을 제어하고, ECC 워드 해석을 제어하는 것을 용이하게 하는 기능을 한다. 다른 예들에서, 로직(830)은 하드웨어, 펌웨어 및/또는 이들의 조합들로 구현될 수 있다. 로직(830)은 버스(808)에 부착된 하드웨어 컴포넌트로서 도시되지만, 일례에서 로직(830)은 프로세서(802) 내에 구현될 수 있다는 것을 알아야 한다.
로직(830)은 하나의 페치 사이클에서 2개의 별개의 메모리로서 액세스 가능한 제1 메모리 및 제2 메모리에 액세스하기 위한 수단(예로서, 하드웨어, 펌웨어)을 제공할 수 있다. 메모리들은 통상적인 메모리들일 수 있으며, 특수 ECC 메모리들일 필요가 없다. 그러한 수단은 예를 들어 ASIC로서 구현될 수 있다. 로직(830)은 제1 메모리에 데이터 워드들을 선택적으로 기입 및 판독하기 위한 수단(예로서, 하드웨어, 펌웨어)도 제공할 수 있다. 로직(830)은 제2 메모리에 ECC 워드들을 선택적으로 기입 및 판독하기 위한 수단(예로서, 하드웨어, 펌웨어)도 제공할 수 있으며, 제2 메모리 내의 ECC 워드들은 제1 메모리 내의 데이터 워드들과 관련된다.
컴퓨터(800)의 예시적인 구성을 일반적으로 설명하면, 프로세서(802)는 듀얼 마이크로프로세서 및 다른 멀티-프로세서 아키텍처들을 포함하는 다양한 프로세서들일 수 있다. 메모리(804)는 휘발성 메모리 및/또는 비휘발성 메모리를 포함할 수 있다.
버스(808)는 단일 내부 버스 상호접속 아키텍처 및/또는 다른 버스 또는 메시(mesh) 아키텍처들일 수 있다. 단일 버스가 도시되지만, 컴퓨터(800)는 다른 버스들(예로서, PCIE, 1394, USB, 이더넷)을 이용하여 다양한 장치들, 로직들 및 주변 장치들과 통신할 수 있다는 것을 알아야 한다. 버스(808)는 예를 들어 메모리 버스, 메모리 제어기, 주변 장치 버스, 외부 버스, 크로스바 스위치 및/또는 로컬 버스를 포함하는 타입들일 수 있다.
도 9는 로직(910)에 접속된 메모리 제어기(900)를 도시한다. 로직(910)은 어드레스 디코드 로직(912) 및 ECC 생성, 검사 및 정정을 수행하는 ECC 로직(914)을 포함한다. 메모리 제어기(900)는 어드레스들 및 데이터를 로직(910)에 제공한다. 로직(910)은 데이터 저장 장치(920) 및 ECC 워드 저장 장치(930)에 접속된다. 데이터 저장 장치(920)는 예를 들어 DIMM0(922) 및 DIMM1(924)을 포함할 수 있다. DIMM들은 ECC를 지원할 필요가 없다. ECC 워드 저장 장치(930)는 DIMM2(932) 및 DIMM3(934)을 포함할 수 있다. DIMM들은 다시 ECC를 지원할 필요가 없다. 2개의 DIMM이 데이터 저장 장치(920) 및 ECC 워드 저장 장치(930) 각각 내에 도시되지만, 이 분야의 기술자는 상이한 수들 및 타입들의 DIMM들이 사용될 수 있다는 것을 이해할 것이다. 이 분야의 기술자는 상이한 어드레스 및 ECC 정보가 데이터 저장 장치(920) 및 ECC 워드 저장 장치(930)에 제공될 수 있다는 것을 이해할 것이다. 도 9에 도시된 컴포넌트들의 배열은 데이터 워드들 및 관련된 ECC 워드들을 상이한 메모리들에 기입하는 것을 용이하게 하며, 이러한 용이성은 메모리 제어기(900)의 외부에서 발생한다.
도 10은 ECC 어드레스 생성을 수행하는 로직(1012)을 갖는 메모리 제어기(1000)를 도시한다. 메모리 제어기(1000)는 ECC 생성, (ECC 워드들의 기입/합체를 최적화하기 위한) ECC 캐싱, 검사 및 정정을 수행하는 로직(1014)도 포함한다. 메모리 제어기(1000)는 데이터 저장 장치(1020) 및 ECC 워드 저장 장치(1030)에 접속된다. 데이터 저장 장치(1020)는 예를 들어 DIMM0(1022) 및 DIMM1(1024)을 포함할 수 있다. DIMM들은 ECC를 지원하거나 지원하지 않을 수 있다. ECC 워드 저장 장치(1030)는 DIMM2(1032) 및 DIMM3(1034)을 포함할 수 있다. 다시, DIMM들은 ECC를 지원할 필요가 없지만, 지원할 수도 있다. 이 분야의 기술자는 상이한 어드레스 정보 및 ECC 정보가 데이터 저장 장치(1020) 및 ECC 워드 저장 장치(1030)에 제공될 수 있다는 것을 이해할 것이다. 도 10에 도시된 컴포넌트들의 배열은 데이터 워드들 및 관련된 ECC 워드들을 상이한 메모리들에 기입하는 것을 용이하게 하며, 이러한 용이성은 메모리 제어기(1000)의 내부에서 발생한다.
도 11은 ECC DIMM의 사용을 지원하는 컴포넌트들의 배열을 도시한다. 이 배열에서, 데이터 저장 장치(1120)로부터의 비트들은 데이터를 저장하는 대신에 추가적인 ECC 비트들을 저장하는 데 사용될 수 있다. 일례에서, 여분의 비트들은 ECC DIMM에 제공된 보호를 확장하는 것을 용이하게 할 수 있다. 확장된 보호는 예를 들어 단일 칩-스페어(chip-spare), 이중 칩-스페어 등을 지원할 수 있다. "칩 스페어"는 단일 메모리 장치 고장을 묵인하지만 여전히 정확한 데이터를 제공하기 위한 ECC 알고리즘의 능력을 설명하는 데 사용되는 용어이다. 스페어될 수 있는 칩들의 수는 장치의 크기(예를 들어, ECC 워드마다 얼마나 많은 데이터의 비트들이 제공되는지) 및 ECC 알고리즘의 강도(ECC의 비트들의 수, 정확한 알고리즘 등)에 따라 변할 것이다. 4 비트의 데이터를 제공하는 x4 DRAM 장치들로 구성된 DIMM의 경우, 단일 칩 스페어 ECC 알고리즘은 그 장치의 액세스마다 4 비트가 고장나는 것을 허용하는 것이 필요할 것이다. 그러나, 8 비트의 데이터를 제공하는 x8 DRAM 장치가 고장난 경우, 단일 칩 스페어 ECC 알고리즘은 액세스마다 8 비트 고장을 묵인하는 것이 필요할 것이다. 결과적으로, 메모리 장치 폭이 증가함에 따라, 더 많은 ECC 비트가 고장을 묵인하는 데 필요하다.
메모리 제어기(1100)는 어드레스 디코드 로직(1112) 및 ECC 생성, 검사 및 정정을 수행할 수 있는 ECC 로직(1114)을 포함한다. 메모리 제어기(1100)는 DIMM0(1122) 및 DIMM1(1124)을 포함하는 데이터 저장 장치(1120)에 접속된다. 메모리 제어기(1100)는 DIMM2(1132) 및 DIMM3(1134)을 포함하는 ECC 워드 저장 장치(1130)에도 접속된다. 이 분야의 기술자는 상이한 어드레스 정보 및 ECC 정보가 데이터 저장 장치(1120) 및 ECC 워드 저장 장치(1130)에 제공될 수 있다는 것을 이해할 것이다.
도 11과 관련된 다른 대안은 데이터가 데이터 저장 장치(1120) 및 ECC 워드 저장 장치(1130) 양자에 저장되고, ECC는 물론이고 데이터도 ECC 워드 저장 장치(1130)에 저장되는(또는 그 반대) 것과 관련된다. 또한, 이 분야의 기술자는 ECC 및 데이터가 1120과 1130 사이에 혼합될 수 있다는 것을 이해할 것이다. 이것은 시스템 설계자에게 여분의 데이터를 단일 DIMM이 아니라 메모리에 저장하지만 이전보다 양호한 ECC 보호를 얻기 위한 능력을 제공한다. 하나의 예시적인 DDR[123] ECC DIMM은 64 비트의 데이터 + 8 비트의 ECC(즉, 총 72 비트)를 갖는다. 2개의 DIMM은 144 비트의 데이터 + ECC를 제공한다. 하나의 예시적인 구현은 DIMM당 8 비트의 ECC 또는 128 비트의 데이터 및 16 비트의 ECC를 저장하는 것이다. 본 명세서에서 설명되는 예시적인 시스템들 및 방법들의 이용은 더 많은 보호를 필요로 하는 응용들에 대해 24 비트의 ECC 및 120 비트의 데이터를 저장하는 것을 용이하게 한다. 반대로, ECC 보호의 양은 더 많은 데이터를 저장하기 위해 감소할 수 있다. 동일한 예를 이용하여, 8 비트의 ECC 및 136 비트의 데이터를 저장할 수 있다.
전술한 바와 같이, 본 명세서에서 설명된 시스템들 및 방법들은 시스템 설계자 또는 최종 사용자에게 이들이 에러 정정 강도, 데이터 및 비용을 균형화하기를 원하는 방식에 있어서의 유연성을 제공한다. 도 11을 일례로 이용하면, 데이터를 데이터 저장 장치(1120)는 물론, ECC 워드 저장 장치(1130)의 일부에 걸쳐 저장할 수 있다. 예를 들어, DDR[123] ECC DIMM들을 가정하면, 데이터 저장 장치(1120)는 72 비트의 데이터를 저장할 수 있고, ECC 워드 저장 장치(1130)는 40 비트의 데이터를 저장할 수 있으며, 32 비트의 ECC가 데이터와 함께 1130에 저장된다.
상세한 설명 또는 청구항들에서 "포함한다(include)" 또는 "포함하는(including)"이라는 용어가 사용되는 한도에서, 이 용어는 "포함하는(comprising)"이라는 용어와 유사한 방식으로 포괄적인 것을 의도하는데, 그 이유는 이 용어가 청구항에서 전이어로서 사용될 때 해석되기 때문이다.
"또는"이라는 용어(예로서, A 또는 B)가 상세한 설명 또는 청구항들에서 사용되는 한도에서, 이 용어는 "A 또는 B 또는 이들 양자"를 의미하는 것을 의도한다. 출원인들이 "양자가 아니라 A 또는 B만"을 지시하는 것을 의도할 때에는 "양자가 아니라 A 또는 B만"이라는 용어가 사용될 것이다. 따라서, 본 명세서에서 "또는"이라는 용어의 사용은 배타적인 용도가 아니라 포괄적인 용도이다. Bryan A, Garner, A Dictionary of Modern Legal Usage 624 (2d. Ed. 1995)를 참고한다.
"A, B 및 C 중 하나 이상"이라는 표현이 본 명세서에서 사용되는 한도에서(예로서, A, B 및 C 중 하나 이상을 저장하도록 구성된 데이터 저장 장치), 이 표현은 A, B, C, AB, AC, BC 및/또는 ABC의 가능성들의 세트를 의미하도록 의도된다(예를 들어, 데이터 저장 장치는 A만, B만, C만, A와 B, A와 C, B와 C 및/또는 A와 B와 C를 저장할 수 있다). 이 용어는 A의 하나, B의 하나 및 C의 하나를 필요로 하도록 의도되지 않는다. 출원인들이 "A의 적어도 하나, B의 적어도 하나 및 C의 적어도 하나"를 지시하는 것을 의도할 때에는, "A의 적어도 하나, B의 적어도 하나 및 C의 적어도 하나"라는 표현이 사용될 것이다.

Claims (15)

  1. 제1 메모리 및 제2 메모리에 대한 인터페이스, 및
    데이터 워드를 상기 제1 메모리에 기입하며 상기 데이터 워드와 관련된 에러 검사 및 정정(ECC) 워드를 상기 제2 메모리에 기입하도록 상기 인터페이스를 제어하는 기능을 하는 제어 로직을 포함하는
    장치.
  2. 제 1 항에 있어서,
    단일 페치(fetch) 기간 동안에 상기 제1 메모리로부터 상기 데이터 워드를 그리고 상기 제2 메모리로부터 상기 ECC 워드를 동시에 페치하도록 상기 인터페이스를 제어하는 기능을 하는 페치 로직을 포함하는
    장치.
  3. 제 1 항 또는 제 2 항에 있어서,
    ECC 로직을 포함하고, 상기 ECC 로직은 상기 장치 내의 하드웨어에서 상기 ECC 로직에서 이용 가능한 복수의 ECC 접근법(approach) 중 하나에 따라 상기 데이터 워드 및 상기 ECC 워드에 대한 에러 검사 및 정정을 수행하도록 구성되며, ECC 접근법은 동적으로 선택 가능한
    장치.
  4. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
    상기 제1 메모리는 제1 데이터 버스를 통해 액세스 가능하며, 상기 제2 메모리는 제2의 상이한 데이터 버스를 통해 액세스 가능한
    장치.
  5. 제 3 항에 있어서,
    상기 ECC 로직은 ECC 워드 크기를 제어하도록 기능하는
    장치.
  6. 제 1 항 내지 제 5 항 중 어느 한 항에 있어서,
    상기 제어 로직은 상기 데이터 워드와 관련된 상기 ECC 워드가 상기 제2 메모리에 기입되는지 여부를 선택적으로 제어하도록 구성되는
    장치.
  7. 제 1 항 내지 제 6 항 중 어느 한 항에 있어서,
    상기 제1 메모리 및 상기 제2 메모리를 포함하고, 상기 제1 메모리는 RAM, NVRAM, DIMM 및 메모리 구조 중 하나이고, 상기 제2 메모리는 RAM, NVRAM, DIMM 및 메모리 구조 중 하나이며,
    상기 제1 메모리 및 상기 제2 메모리 중 적어도 하나는 고유한 ECC 지원을 제공하지 않는
    장치.
  8. 제 1 항 내지 제 7 항 중 어느 한 항에 있어서,
    상기 제어 로직은 제1 ECC DIMM에 의해 제공된 ECC 비트를 제2 DIMM으로부터의 추가 비트들로 선택적으로 확장함으로써 단일 칩-스페어(chip-spare) 및 이중 칩-스페어 중 하나 이상을 지원하도록 구성되는
    장치.
  9. 제 1 항 내지 제 8 항 중 어느 한 항에 있어서,
    상기 장치는 메모리 제어기 내에 구현되는
    장치.
  10. 제 1 항 내지 제 9 항 중 어느 한 항에 있어서,
    상기 제1 메모리는 데이터 워드들만 및 데이터 워드들과 ECC 워드들 모두 중 하나를 저장하도록 구성되며, 상기 제2 메모리는 ECC 워드들만 및 ECC 워드들과 데이터 워드들 모두 중 하나를 저장하도록 구성되는
    장치.
  11. 하드웨어 회로에서 데이터 워드와 관련된 에러 검사 및 정정(ECC) 워드를 컴퓨팅하는 단계,
    상기 데이터 워드를 제1 메모리에 기입하는 단계, 및
    상기 ECC 워드를 제2의 상이한 메모리에 기입하는 단계를 포함하는
    방법.
  12. 제 11 항에 있어서,
    상기 ECC 워드의 크기를 선택적으로 결정하는 단계, 및
    상기 회로가 상기 ECC 워드를 컴퓨팅하기 위해 어떻게 기능한지를 선택적으로 제어하는 단계를 포함하는
    방법.
  13. 제 11 항 또는 제 12 항에 있어서,
    하나의 페치 기간 내에, 상기 제1 메모리 및 상기 제2 메모리로부터 검색되는 데이터 워드 및 검색되는 ECC 워드 양자를 검색하는 단계, 및
    상기 회로가 상기 검색되는 ECC 워드에 기초하여 상기 검색되는 데이터 워드에 대한 에러 검사 및 정정을 수행하기 위해 어떻게 기능하는지를 선택적으로 제어하는 단계를 포함하는
    방법.
  14. 제 11 항 내지 제 13 항 중 어느 한 항에 있어서,
    데이터 워드들을 저장하기 위해 상기 제2 메모리를 사용할지 여부를 선택적으로 결정하는 단계를 포함하는
    방법.
  15. 하나의 페치 사이클에서 2개의 별개의 메모리로서 액세스 가능한 제1 메모리 및 제2 메모리에 액세스하기 위한 수단,
    상기 제1 메모리에 데이터 워드들을 선택적으로 기입 및 판독하기 위한 수단, 및
    상기 제2 메모리에 ECC 워드들을 선택적으로 기입 및 판독하되, 상기 제2 메모리 내의 ECC 워드들은 상기 제1 메모리 내의 데이터 워드들과 관련되는 수단을 포함하는
    시스템.
KR1020127002330A 2009-08-25 2009-08-25 에러 정정 KR20120052251A (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2009/054843 WO2011025474A1 (en) 2009-08-25 2009-08-25 Error correcting

Publications (1)

Publication Number Publication Date
KR20120052251A true KR20120052251A (ko) 2012-05-23

Family

ID=43628272

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020127002330A KR20120052251A (ko) 2009-08-25 2009-08-25 에러 정정

Country Status (4)

Country Link
US (1) US20120151300A1 (ko)
KR (1) KR20120052251A (ko)
CN (1) CN102483710A (ko)
WO (1) WO2011025474A1 (ko)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012170154A1 (en) 2011-06-06 2012-12-13 Rambus Inc. Memory system for error detection and correction coverage
KR20130012737A (ko) * 2011-07-26 2013-02-05 에스케이하이닉스 주식회사 반도체 메모리 장치 및 이를 포함하는 반도체 시스템
JP2013109567A (ja) * 2011-11-21 2013-06-06 Toshiba Corp ストレージデバイス及び誤り訂正方法
US9191060B2 (en) * 2012-04-16 2015-11-17 The Hong Kong University Of Science And Technology Distributive source coding and signal processing
US8812915B2 (en) 2012-09-27 2014-08-19 Hewlett-Packard Development Company, L.P. Determining whether a right to use memory modules in a reliability mode has been acquired
CN105308574A (zh) * 2013-06-28 2016-02-03 惠普发展公司,有限责任合伙企业 永久主存储器的容错
EP2979272A1 (en) 2013-07-31 2016-02-03 Hewlett-Packard Development Company, L.P. Off-memory-module ecc-supplemental memory system
US9218575B2 (en) * 2013-09-04 2015-12-22 Intel Corporation Periodic training for unmatched signal receiver
JP6318769B2 (ja) 2014-03-28 2018-05-09 富士通株式会社 ストレージ制御装置、制御プログラム、および制御方法
KR102204391B1 (ko) 2014-08-18 2021-01-18 삼성전자주식회사 공유 가능한 ecc 셀 어레이를 갖는 메모리 장치

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5172379A (en) * 1989-02-24 1992-12-15 Data General Corporation High performance memory system
US5987627A (en) * 1992-05-13 1999-11-16 Rawlings, Iii; Joseph H. Methods and apparatus for high-speed mass storage access in a computer system
US5452429A (en) * 1993-11-17 1995-09-19 International Business Machines Corporation Error correction code on add-on cards for writing portions of data words
US6014720A (en) * 1997-05-05 2000-01-11 Intel Corporation Dynamically sizing a bus transaction for dual bus size interoperability based on bus transaction signals
US6216247B1 (en) * 1998-05-29 2001-04-10 Intel Corporation 32-bit mode for a 64-bit ECC capable memory subsystem
US6587977B1 (en) * 1999-12-06 2003-07-01 Maxtor Corporation o,k,m,/m recording code
US6741253B2 (en) * 2001-10-09 2004-05-25 Micron Technology, Inc. Embedded memory system and method including data error correction
US6961819B2 (en) * 2002-04-26 2005-11-01 Mips Technologies, Inc. Method and apparatus for redirection of operations between interfaces
US7117421B1 (en) * 2002-05-31 2006-10-03 Nvidia Corporation Transparent error correction code memory system and method
US7386765B2 (en) * 2003-09-29 2008-06-10 Intel Corporation Memory device having error checking and correction
US7224595B2 (en) * 2004-07-30 2007-05-29 International Business Machines Corporation 276-Pin buffered memory module with enhanced fault tolerance
US6965537B1 (en) * 2004-08-31 2005-11-15 Micron Technology, Inc. Memory system and method using ECC to achieve low power refresh
KR100695890B1 (ko) * 2004-10-29 2007-03-19 삼성전자주식회사 멀티 칩 시스템 및 그것의 데이터 전송 방법
US7734985B2 (en) * 2006-02-27 2010-06-08 Intel Corporation Systems, methods, and apparatuses for using the same memory type to support an error check mode and a non-error check mode
US7810017B2 (en) * 2006-03-20 2010-10-05 Micron Technology, Inc. Variable sector-count ECC
KR101425957B1 (ko) * 2007-08-21 2014-08-06 삼성전자주식회사 이씨씨 제어 회로 및 그것을 포함하는 멀티채널 메모리시스템
KR101211503B1 (ko) * 2007-10-02 2012-12-12 삼성전자주식회사 부팅 시스템, 그 시스템을 구비한 화상형성장치 및 그제어방법
US8046542B2 (en) * 2007-11-21 2011-10-25 Micron Technology, Inc. Fault-tolerant non-volatile integrated circuit memory
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

Also Published As

Publication number Publication date
WO2011025474A1 (en) 2011-03-03
CN102483710A (zh) 2012-05-30
US20120151300A1 (en) 2012-06-14

Similar Documents

Publication Publication Date Title
KR20120052251A (ko) 에러 정정
US8301938B2 (en) Managing memory health
US7133960B1 (en) Logical to physical address mapping of chip selects
US8245109B2 (en) Error checking and correction (ECC) system and method
JP4071940B2 (ja) メモリ設計のための共有式誤り訂正
US9460816B2 (en) Semiconductor memory devices and memory systems including the same
US8788904B2 (en) Methods and apparatus to perform error detection and correction
US8234544B2 (en) Data access apparatus and data access method
US20200319950A1 (en) Method and Apparatus for Predictive Failure Handling of Interleaved Dual In-Line Memory Modules
US11474722B2 (en) Non-volatile memory including selective error correction
US10395750B2 (en) System and method for post-package repair across DRAM banks and bank groups
US20130326293A1 (en) Memory error test routine
US20140013030A1 (en) Memory storage device, memory controller thereof, and method for writing data thereof
JP2008262325A (ja) メモリ制御装置、メモリ制御方法、情報処理システム、そのプログラム及び記憶媒体
JP2016520937A (ja) 組み込みeccアドレスマッピング
US20220107906A1 (en) Multiple Pin Configurations of Memory Devices
US9318168B2 (en) Memory system for continuously mapping addresses of a memory module having defective locations
US9001609B2 (en) Hybrid latch and fuse scheme for memory repair
TWI798630B (zh) 用以存取快閃記憶體模組的方法、快閃記憶體控制器與電子裝置
US9213597B2 (en) Memory storage device, memory controller thereof, and method for programming data thereof
US20150199201A1 (en) Memory system operating method providing hardware initialization
KR20160065468A (ko) 솔리드 스테이트 드라이브의 동작 방법
KR20170012946A (ko) 메모리 장치 및 이를 포함하는 메모리 시스템
US11372592B1 (en) Memory controller having a plurality of control modules and associated server for coding and decoding raw data from flash memory chips
TWI502591B (zh) 用來管理一記憶裝置之方法以及記憶裝置與控制器

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application