KR100865195B1 - 인접 기호 오류 수정을 위한 방법, 시스템, 장치와 검출코드 - Google Patents

인접 기호 오류 수정을 위한 방법, 시스템, 장치와 검출코드 Download PDF

Info

Publication number
KR100865195B1
KR100865195B1 KR1020067001341A KR20067001341A KR100865195B1 KR 100865195 B1 KR100865195 B1 KR 100865195B1 KR 1020067001341 A KR1020067001341 A KR 1020067001341A KR 20067001341 A KR20067001341 A KR 20067001341A KR 100865195 B1 KR100865195 B1 KR 100865195B1
Authority
KR
South Korea
Prior art keywords
error
memory
syndrome
bits
data
Prior art date
Application number
KR1020067001341A
Other languages
English (en)
Other versions
KR20060061335A (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 KR20060061335A publication Critical patent/KR20060061335A/ko
Application granted granted Critical
Publication of KR100865195B1 publication Critical patent/KR100865195B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • G11B20/1833Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information
    • 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/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/1028Adjacent errors, e.g. error in n-bit (n>1) wide storage units, i.e. package error
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Probability & Statistics with Applications (AREA)
  • Detection And Correction Of Errors (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Error Detection And Correction (AREA)

Abstract

두 클럭 상(clock phase) 동안 형성된 인접 기호 코드워드(adjacent symbol codeword)에 기초하여 오류 수정 코드(Error Correcting Code, ECC)를 생성하는 회로 및 방법.
오류 수정 코드(Error Correcting Code, ECC), 인접 기호 코드워드(adjacent symbol codeword)

Description

인접 기호 오류 수정을 위한 방법, 시스템, 장치와 검출 코드 {A METHOD, SYSTEM, AND APPARATUS FOR ADJACENT-SYMBOL ERROR CORRECTION AND DETECTION CODE}
본 명세서는 메모리와 컴퓨터 메모리 시스템 분야에 관한 것이며, 더 구체적으로는 메모리 오류의 오류 검출과 수정에 관한 것이다.
오류 수정 코드(error correcting code, ECC)는 컴퓨터 메모리 서브시스템의 장애 허용 능력(fault tolerance)에 있어서 일상적으로 사용되어 왔다. 가장 일반적으로 사용되는 코드는 단일 오류 수정(single error correcting, SEC)과 이중 오류 검출(double error detecting, DED)로, 코드 워드(code word)의 모든 단일 오류를 수정하고 모든 이중 오류를 검출할 수 있다.
칩 제조의 경향이 칩의 대용량화로 향함에 따라, 더 많은 메모리 서브시스템이 칩당 b비트(b-bits-per-chip)로 형성될 것이다. 메모리에 사용하는 가장 적절한 기호 오류 수정 코드(ECC)는 단일 기호 오류 수정(single symbol error correcting, SbEC)과 이중 기호 오류 검출(double symbol error detecting, DbED) 코드로, 여기서 "b"는 메모리 장치의 폭(출력의 비트 수)을 의미하며, 코드 워드의 모든 단일 기호 오류를 수정하고 모든 이중 기호 오류를 검출한다. SbEC-DbED 코 드로 설계된 메모리는 메모리 칩이 오동작할 경우 고장 형태에 관계없이 작동을 계속할 수 있다. 이후 언젠가 동일 오류 수정 코드(ECC) 워드에서 한 줄로 늘어선 2개의 오동작하는 칩이 있을 경우, SbEC-DbED 코드는 필요한 오류 검출을 제공하고 메모리의 데이터 무결성(data integrity)을 보호할 것이다.
기존의, 그리고 가까운 장래의 메모리 시스템은 18개의 메모리 장치를 이용한다. 그러나 본 SbEC-DbED 오류 수정 코드는 반도체 고장(chipfail) 수정과 검출을 제공하기 위하여 36개의 메모리 장치를 이용한다. 따라서, 오류 수정 목적의 36개의 메모리 장치의 비용이 덧붙여지기 때문에 비용이 증가하고, 18개의 메모리 시스템으로 스케일(적응)되지 않기 때문에 유연성이 없다. 또한, 오류를 인코딩과 디코딩하는 다양한 회로가 복잡하다. 따라서, 이는 데이터 무결성을 보장하기 위하여 비용과 컴퓨터 시스템 설계를 증가시킨다.
본 발명은 예를 들어 설명되며, 첨부된 도면으로 한정되지 않는다.
도 1은 한 실시예에 따른 코드 워드의 블록선도(block diagram)를 나타낸 도면.
도 2는 한 실시예에 따른 장치를 나타낸 도면.
도 3은 한 실시예에 따른 방법의 순서도를 나타낸 도면.
도 4는 도 2와 관련하여 기술된 실시예에 따른 장치를 나타낸 도면.
도 5는 한 실시예에 따른 시스템을 나타낸 도면.
이하의 명세서는 메모리 장치의 오류 검출과 수정을 위한 방법, 장치, 시스템을 제공한다. 이하의 명세서에서, 본 발명의 보다 완전한 이해를 위하여 다수의 구체적인 세부 항목이 설명될 것이다. 그러나, 당업자라면 그러한 구체적인 세부 항목 없이도 본 발명을 실시할 수 있음을 인식할 것이다. 당업자는 첨부된 명세서로 과도한 실험 없이도 적절한 논리 회로를 구현할 수 있을 것이다.
앞서 기술하였듯이, 전형적인 오류 수정 코드는 반도체 고장 검출과 수정을 위해 36개의 메모리 장치를 사용하며, 이는 비용과 컴퓨터 시스템 설계의 증가를 가져온다. 또한, 한 시스템에 18개의 메모리 장치를 사용하면서부터, 본 오류 수정 코드는 스케일이 되지 않는다. 반면에, 청구 대상은 18개의 메모리 장치로 메모리 시스템을 지원하는 새로운 오류 수정 코드, 즉 "인접 기호" 코드를 용이하게 한다. 예를 들면, 한 실시예에 따르면, 청구 대상은 메모리 트랜잭션(transaction){메모리 순위(rank)}을 위한 18개의 메모리 장치를 사용하는 시스템에서 메모리 오류를 디코딩하고 수정하는 능력을 도모하고 있다. 또한, 청구 대상은 두 클럭 상(clock phase)만에 데이터의 코드 워드를 형성하는 것을 용이하게 하고 있다. 또한, 인접 기호 오류 수정 코드는 1개의 메모리 장치로부터의 데이터 내의 어떠한 오류 패턴도 수정하며, 2개의 메모리 장치의 고장시 다양한 오류(이중 장치 오류)를 검출한다.
한 실시예에 따르면, 인접 기호 오류 수정 코드는 이중 데이터 속도(double data rate, DDR) 메모리의 두 채널을 포함하는 메모리 시스템에 사용되며, 여기에서 각 채널은 폭이 오류 수정 코드(ECC)를 위한 8 옵셔널 비트(optional bit)를 포함하여 64비트이다. 또한, 메모리 시스템은 x4 또는 x8 폭의 메모리 장치를 사용할 수 있을 것이다(x4와 x8은 메모리 장치에서 출력될 수 있는 비트 수를 나타낸다). 따라서, 청구 대상은 메모리 시스템의 다양한 구성을 지원한다. 예를 들면, x8 장치를 가진 메모리 시스템은 오류 수정 코드가 지원된다면 메모리 순위 당 18개의 메모리 장치를 사용할 것이나, 그렇지 않고 오류 수정 코드가 지원되지 않는다면 메모리 순위 당 16개의 메모리 장치를 사용할 것이다. 이와 달리, x4 장치를 가진 메모리 시스템은 오류 수정 코드가 지원된다면 메모리 순위 당 36개의 메모리 장치를 사용할 것이나, 그렇지 않고 오류 수정 코드가 지원되지 않는다면 메모리 순위 당 32개의 메모리 장치를 사용할 것이다.
도 1은 한 실시예에 따른 코드 워드의 블록선도(block diagram)를 도시하고 있다. 블록선도(100)는 메모리 장치의 2 클럭 상의 데이터(102, 104)로부터 형성된 인접 기호 코드워드(106)를 포함한다. 예를 들면, 한 실시예에 따르면, 메모리 액세스 트랜잭션(memory access transaction)은 128 데이터 비트와 추가적인 클럭 에지 당 16 오류 수정 코드(ECC) 체크 비트, 즉 각 클럭 에지 당 총 144비트(2 클럭 에지에 대하여 288비트)의 이동을 포함한다. 제1 클럭 상(102)에서, 메모리로부터의 제1 니블 "n0"과 제2 니블 "n2"가 코드워드(106)의 두 기호의 제1 니블로 이동하여 매핑된다. 후속적으로, 제2 클럭 상(104)에서, 메모리로부터의 제1 니블 "n1"과 제2 니블 "n3"이 코드워드(106)의 두 기호의 제2 니블로 이동하여 매핑된다. 따라서, 코드워드(106)의 두 기호는 서로 인접하고, 코드 워드의 16비트 경계에 있게 되며, 이는 "인접 기호"로 지정된다. 따라서 본 코드워드(106)는 인접 기호 코드워드이다.
블록선도에 도시된 방법은 오류 검출을 용이하게 하고 공통 모드(common mode) 오류의 장애 허용 능력(fault coverage)을 개선시킨다. 예를 들면, x4 메모리 장치에 있어서, x4 메모리 장치로부터 기본 코드 워드의 기호로 일 대 일 니블 매핑이 일어난다. 반면에, x8 메모리 장치에 있어서, x8 메모리 장치의 반으로부터 기본 코드 워드의 기호로 일 대 일 니블 매핑이 일어난다. 따라서 청구 대상은 기호 수준까지 니블 전체에 대하여 공통 모드 오류를 분리하는 것을 용이하게 하여 그 결과 장애 허용 능력을 증가시킨다. 따라서, x8 메모리 장치에서, 청구 대상은 제2의 장치 장애를 위하여 에일리어싱(aliasing)이 일어나지 않게 한다. 마찬가지로, x4 메모리 장치의 장치 오류도 코드워드(106) 내의 한 기호로 분리되어, x4 메모리 장치를 위한 이중 장치 커버리지(coverage)가 완전하게 된다.
더 깊이 예를 들면, 동일 메모리 순위에서 발생하는 이중 장치 오류는 전형적으로 두 가지 종류가 있는데, 동시(simultaneous) 이중 장치 오류와 순차(sequence) 이중 장치 오류이다.
동시 이중 장치 오류는 이전의 메모리 트랜잭션에서의 오류를 나타내는 표시가 없기 때문에 초기 경고 신호가 없다. 전형적으로, 컴퓨터 시스템은 에일리어싱이 없는 경우 수정할 수 없는 오류를 보고한다. 그러나, 시스템은 수정할 수 있는 단일 장치 오류를 잘못 보고할 수도 있다. 이 때, 에일리어싱을 다시 일으키지 않기 위하여 오류 패턴이 변화할 것이기 때문에, 이후의 액세스에서 에일리어싱이 발견될 수 있을 것이다.
반면에, 순차 이중 장치 오류는 동시 이중 장치 오류보다 더 전형적인 오류 패턴이다. 전형적으로, 제1 장치 오류는 수정할 수 있는 오류로 검출된다. 제2 장치 오류를 위하여, 한 실시예에 따르면 두 가지 결과가 있을 수 있는데, 오류가 수정할 수 없다고 보고되거나, 아니면 새로운 장소에서 수정할 수 있는 오류로서 보고된다. 제2 장치 오류를 위한 수정 불가능한 오류의 경우, 그 분석은 완전하다. 만약 그렇지 않으면, 시스템은 제1 장치 오류에서 제2 장치 오류 장소로 오류 장소를 변화시킨다. 따라서, 제1 장치 오류 장소가 스스로 해결하지는 않을 것이고, 동시에 제2 장치 오류가 일어날 가능성은 더 적기 때문에, 에일리어싱을 검출을 위한 상기 방법은 정확하다.
언제나 검출되는(에일리어싱 없이) 이중 장치 오류의 몇몇 예는 이중 비트 오류, 이중 와이어 결함(wire fault), 한 메모리 장치에서의 와이어 결함과 두번째 메모리 장치에서의 단일 비트 오류, 그리고 각 메모리 장치의 한 니블에만 영향을 미치는 결함이다.
x8 메모리 장치의 장치 오류의 한 예에 따르면, 장치 오류가 메모리 장치의 데이터의 두 니블과 두 클럭 상 모두의 오류를 일으키기 때문에, 코드워드(인접 기호)의 16비트 모두가 영향을 받을(오염될) 수 있다. 따라서, 청구 대상은 오류가 있는 16비트를 먼저 수정하여 이 장치 오류의 수정을 용이하게 한다. 그러나, 제2 메모리 장치 오류의 경우에는, 코드가 코드 워드(106) 내의 16비트 경계에 배치된 두 그룹의 16비트의 오류 패턴을 검출한다.
도 2는 한 실시예에 따라 사용되는 장치를 도시하고 있다. 높은 수준의 관점에서 볼 때, 본 장치는, 체크 비트를 생성하여 메모리로 전송되는 데이터에 첨부함으로써, 코드 워드를 생성한다. 후속적으로, 본 장치는 메모리로부터 수신한 코드 워드의 디코딩에 적어도 일부 기초한 신드롬(syndrome)을 발생시키고, 오류를 분류하고 수정하는 것을 용이하게 한다. 한 실시예에 따르면, 메모리 장치로부터의 코드 워드는 도 1과 관련하여 기술된 인접 기호 코드워드이다.
본 장치는 인코더 회로(202), 1개 이상의 메모리 장치(204), 디코더 회로(206), 오류 분류 회로(208), 수정 회로(210)를 포함한다.
인코더 회로는 메모리 장치나 메모리 장치들(204)로 전송된 데이터를 수신한다. 인코더 회로는 데이터의 적어도 일부에 기초한 복수의 체크 비트를 생성한다. 따라서, 코드워드는 적어도 일부의 복수의 체크 비트와 데이터에 기초하여 형성되며, 메모리 장치나 메모리 장치들(204)로 전송된다.
한 실시예에 따르면, 체크 비트는 G-매트릭스(G-matrix)의 이진 형태(binary form)로부터 만들어지는데, 여기서 매트릭스는 32 체크 비트를 형성하기 위하여 32행(row)과 256열(column)을 가진다. 본 체크 비트는 다음과 같이 계산된다 :
ci = Σ dj x Gij for i=0 to 31 and j=0 to 255
이진 데이터에 있어서, 곱셈 연산은 AND 함수로, 덧셈 연산은 1비트 덧셈이나 XOR 연산으로 된다. 따라서, 결과 인코딩 회로는 32 XOR을 포함하고, 각 트리(tree)는 32 체크 비트 중 하나를 계산하게 된다.
후속적으로, 메모리 장치 또는 메모리 장치들(204)은 데이터와 체크 비트를 디코더 회로(106)로 돌려보낸다. 한 실시예에 따르면, 디코더 회로는 적어도 일부가 288비트의 코드 워드(288비트 코드 워드에 대하여는 도 1과 관련하여 앞서 기술하였다)에 기초한 32비트의 신드롬을 발생시킨다.
한 실시예에 따르면, 신드롬은 H-매트릭스(H-matrix)로부터 만들어지는데, 여기서 매트릭스는 32행과 288열을 가진다. 각 신드롬 비트는 다음과 같이 계산된다 :
si = Σ vj x Hij for i=0 to 31 and j=0 to 287
인코더 회로에 대하여 전술하였듯이, 신드롬 비트의 발생은 H-매트릭스의 이진수 1의 값을 지니는 열에 대응하는 코드 워드 비트에 대한 XOR 연산으로 단순화된다. 따라서, 디코딩 회로는 32 XOR 트리를 포함하며, 각 트리는 32 신드롬 비트 중 하나를 계산하게 된다. 따라서, 한 실시예에 따르면, 32비트의 신드롬은 288비트 코드워드를 받는 H-매트릭스에 의하여 생성된다. 그러나, 청구 대상은 이 비트 구성에 한정되지 않는다. 당업자라면 신드롬과 코드워드의 크기의 변경을 당연하게 인식할 것이다.
오류 분류와 오류 수정은 도 4와 관련하여 설명된다.
도 3은 한 실시예에 따라 사용되는 방법에 대한 순서도를 도시하고 있다. 본 순서도는 메모리 장치 또는 메모리 장치들의 트랜잭션에서 데이터에 오류가 있는가를 검출하는 방법을 나타내고 있다. 첫번째 블록(302)은 메모리 장치나 장치들로 전송하기 위하여 데이터에 첨부되는 체크 비트를 생성한다. 인접 기호 코드워드는 메모리 장치나 장치들로부터 수신한 데이터에 적어도 일부 기초하여 생성되어 데이터의 무결성(integrity)을 확인하는데 사용되는데, 이는 블록(304)에서 설명되고 있다. 디코더는 인접 기호 코드워드에 적어도 일부 기초하여 신드롬을 생성하는데, 이는 블록(306)에서 설명되고 있다. 신드롬에 의하여 결정됨에 따라 오류가 존재하는 경우, 오류 분류와 수정이 수행되며, 이는 블록(308)에서 설명되고 있다.
도 4는 도 2와 관련하여 기술된 실시예에 따라 사용되는 장치를 도시하고 있다. 전술하였듯이, 도 4는 도 2와 관련하여 오류 분류와 오류 수정의 한 실시예를 설명하고 있다.
오류 분류는 디코딩 회로의 신드롬 계산에 적어도 일부 기초하고 있다. 예를 들면, 한 실시예에 따르면, 신드롬 (S)==0이면, 오류가 없다. 그렇지 않고 신드롬 (S)>0이면, 오류가 있다. 또한, 오류 장소 벡터(error location vector) L을 계산하여 오류를 더 분류하는 것이 선택 가능하다. 예를 들면, 한 실시예에 따르면, L==0이면 오류를 수정할 수 없다. 그렇지 않고 L>0이면 지정된 열에서 오류가 수정 가능하다. 또한, 수정할 수 있는 오류는 오류가 데이터 열(data column)에서 발생하였는지 체크 열(check column)에서 발생하였는지 더 분류할 수 있다. 예를 들면, 오류가 체크 열에 있는 경우, 코드 워드의 데이터 부분은 수정 로직(correction logic)을 우회하게 될 것이다.
또 다른 실시예에 따르면, 단일 장치의 수정 가능한 오류는 오류 값의 웨이트에 적어도 일부 기초하여 분류될 수 있을 것이다. 도 4에서 설명하고 있듯이, 한 인접 쌍(adjacent pair)은 오류 값 e0와 e1을 발생시킬 수 있을 것이다. 따라서, 한 인접 쌍이 주어진 오류 패턴에서 작동될 것이므로 본 회로가 오류 지시 비트를 할당하게 되므로, 오류 장소 벡터 L은 복수의 버스(402, 404)에서 오류 값을 게이팅(gate)하는 데에 사용된다.
따라서, 청구 대상은 단일 장치 오류와 이중 장치 오류 모두의 테스트 커버리지(test coverage)를 할당한다.
도 5는 한 실시예에 따라 시스템을 도시하고 있다. 한 실시예에 따르면, 시스템은 프로세서(processor; 502)인데, 상기 프로세서(502)는 칩셋(chipset; 504)과 결합되어 있으며, 이 칩셋(504)은 메모리(506)와 결합되어 있다. 예를 들면, 칩셋은 프로세서와 메모리 간의 메모리 트랜잭션과 같은 다양한 연산을 수행하고 용이하게 하며, 인접 기호 코드워드를 사용하여 데이터 무결성을 확인하는데, 이는 도 1과 관련하여 기술하였다. 한 실시예에 따르면, 본 칩셋은 컴퓨터 서버 시스템을 지원하기 위한 서버 칩셋이다. 반면에, 또 다른 실시예에 따르면, 본 칩셋은 컴퓨터 데스크탑 시스템을 지원하기 위한 데스크탑 칩셋이다. 전술한 두 실시예에 따르면, 시스템은 도 1 내지 도 4에서 전술한 실시예를 포함하여, 인접 기호 코드워드와 오류를 수정하고 검출하는 방법 및 장치를 지원한다.
특정한 실시예들이 기술되었고 첨부한 도면에서 도시되었지만, 본 명세서를 연구하는 당업자라면 다양한 다른 수정이 가능하기 때문에, 그러한 실시예들은 단지 예를 든 것에 불과하고 넓은 발명에 한정되지 않으며, 본 발명이 기술된 구체적인 구성과 배열에 제한되지 않음을 알 수 있을 것이다.

Claims (29)

  1. 인접 기호 코드워드(adjacent symbol codeword)를 형성하는 방법으로서,
    제1 클럭 상(clock phase) 동안 제1 데이터 집합(set of data)으로부터 m비트(여기서 m은 정수)의 제1 기호의 집합과 m비트의 제2 기호의 집합을 생성하는 단계; 및
    제2 클럭 상 동안 제2 데이터 집합으로부터 n비트(여기서 n은 정수)의 상기 제1 기호의 집합과 n비트의 상기 제2 기호의 집합을 생성하는 단계를 포함하고,
    상기 인접 기호 코드워드는 상기 제1 및 제2 기호의 인접 형태를 포함하는, 방법.
  2. 제1항에 있어서,
    상기 제1 및 제2 데이터 집합은 메모리로부터 오는 방법.
  3. 제2항에 있어서,
    상기 메모리는 이중 데이터 속도(double data rate, DDR) 메모리인 방법.
  4. 제1항에 있어서,
    m과 n은 모두 4비트로 니블을 구성하는 방법.
  5. 삭제
  6. 제1항에 있어서,
    상기 m비트와 n비트의 상기 제1 및 제2 기호 전역에 걸친 공통 모드 오류(common mode error)를 분리하는 단계를 더 포함하는 방법.
  7. 메모리를 테스트하는 방법으로서,
    상기 메모리로 전송되는 데이터에 첨부되는 복수의 체크 비트(check bit)를 생성하는 단계;
    상기 메모리로부터 수신한 데이터에 적어도 일부 기초하여 인접 기호 코드워드를 생성하는 단계;
    상기 인접 기호 코드워드를 디코딩하는 단계; 및
    상기 메모리에 오류가 존재하는지 결정하는 단계
    를 포함하는 방법.
  8. 제7항에 있어서,
    상기 인접 기호 코드워드를 디코딩하는 단계는 상기 인접 기호 코드워드에 적어도 일부 기초한 신드롬을 발생시키는 단계를 포함하는 방법.
  9. 제8항에 있어서,
    상기 메모리에 오류가 존재하는지를 결정하는 단계는 상기 신드롬에 적어도 일부 기초하는 방법.
  10. 제9항에 있어서, 상기 신드롬에 기초하여 오류가 존재하면,
    상기 수신한 데이터에서 상기 오류를 분류하는 단계; 및
    상기 수신한 데이터에서 상기 오류를 수정하는 단계
    를 더 포함하는 방법.
  11. 제7항에 있어서,
    상기 메모리는 이중 데이터 속도(DDR) 메모리인 방법.
  12. 제8항에 있어서,
    상기 신드롬은 32비트이고 288비트의 코드워드에 기초한 방법.
  13. 오류 수정 코드(Error Correcting Code)를 위한 장치로서,
    데이터 집합에 기초한 복수의 체크 비트를 생성하고, 상기 체크 비트를 메모리로 전송되는 상기 데이터 집합에 부가하는 제1 로직;
    상기 메모리로부터 코드워드를 수신하고, 상기 코드워드에 기초하여 신드롬을 생성하고, 상기 신드롬에 기초하여 오류가 존재하는지를 검출하는 제2 로직;
    오류가 존재한다면 상기 오류를 분류하는 제3 로직; 및
    오류가 존재한다면 상기 오류를 수정하는 제4 로직
    을 포함하는 장치.
  14. 제13항에 있어서,
    상기 장치는 서버 칩셋에 통합된 장치.
  15. 제13항에 있어서,
    상기 메모리는 이중 데이터 속도(DDR) 메모리인 장치.
  16. 제13항에 있어서,
    상기 신드롬은 32비트이고 상기 코드워드가 288비트인 장치.
  17. 제13항에 있어서,
    상기 제1 로직은 인코더이고,
    상기 복수의 체크 비트를 생성하기 위하여,
    ci = Σ dj x Gij for i=0 to 31 and j=0 to 255 의 식을 사용하는 장치.
  18. 제13항에 있어서,
    상기 제2 로직은 디코더이고, 상기 신드롬은 상기 신드롬을 생성하기 위한
    si = Σ vj x Hij for i=0 to 31 and j=0 to 287 의 식에 의해 생성되는 H-매트릭스(H matrix)인 장치.
  19. 메모리로부터 오류를 분류하는 장치로서,
    H-매트릭스 신드롬을 생성하고, 상기 신드롬에 기초하여 오류의 존재 여부를 결정하고, 오류가 존재한다면 상기 오류의 오류 유형(error type)을 분류하는 제1 로직을 포함하고,
    상기 오류 유형을 분류하는 것은 상기 제1 로직에 의해 오류 장소 벡터(error location vector)를 생성하는 것을 포함하는, 장치.
  20. 제19항에 있어서,
    상기 H-매트릭스 신드롬은
    si = Σ vj x Hij for i=0 to 31 and j=0 to 287 의 식에 의하여 생성되는 장치.
  21. 삭제
  22. 제19항에 있어서,
    상기 오류 장소 벡터는 상기 오류가 수정 가능한 것인지를 결정하고,
    상기 오류 장소 벡터의 0 값은 상기 오류가 수정 불가능한 것임을 의미하고;
    반면에, 상기 오류 장소 벡터의 지정된 열의 0보다 큰 값은 상기 오류가 수정 가능한 것임을 의미하는 장치.
  23. 제19항에 있어서,
    상기 오류 유형은 단일 장치 오류이거나 이중 장치 오류인 장치.
  24. 제23항에 있어서,
    상기 이중 장치 오류는 동시 오류(simutaneous error)이거나 순차 오류(sequential error)인 장치.
  25. 제23항에 있어서,
    상기 단일 장치 오류는 오류 값 e0와 e1의 웨이트에 기초하여 분류되어, 상기 오류 장소 벡터가 상기 오류 값을 게이팅(gate)하도록 하는 장치.
  26. 시스템으로서,
    메모리와 칩셋에 결합되어, 상기 칩셋을 거쳐 상기 메모리로 연산을 생성하는 프로세서와;
    두 클럭 상에 형성된 인접 기호 코드워드에 기초한 오류 수정 코드(ECC)를 사용하고, 상기 메모리로부터 상기 칩셋을 거쳐 수신한 복수의 데이터에 오류가 존재하는지를 결정하여, 만일 오류가 존재한다면 H-매트릭스 신드롬에 기초하여 상기 오류의 유형을 분류하기 위한 칩셋을 포함하는 시스템.
  27. 제26항에 있어서,
    상기 메모리는 이중 데이터 속도(DDR) 메모리인 시스템.
  28. 제26항에 있어서,
    상기 H-매트릭스 신드롬은
    si = Σ vj x Hij for i=0 to 31 and j=0 to 287 의 식에 의하여 생성되는 시스템.
  29. 제26항에 있어서,
    상기 시스템은 서버인 시스템.
KR1020067001341A 2003-07-21 2004-07-14 인접 기호 오류 수정을 위한 방법, 시스템, 장치와 검출코드 KR100865195B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/624,424 US20050022091A1 (en) 2003-07-21 2003-07-21 Method, system, and apparatus for adjacent-symbol error correction and detection code
US10/624,424 2003-07-21

Publications (2)

Publication Number Publication Date
KR20060061335A KR20060061335A (ko) 2006-06-07
KR100865195B1 true KR100865195B1 (ko) 2008-10-23

Family

ID=34080014

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020067001341A KR100865195B1 (ko) 2003-07-21 2004-07-14 인접 기호 오류 수정을 위한 방법, 시스템, 장치와 검출코드

Country Status (6)

Country Link
US (4) US20050022091A1 (ko)
EP (1) EP1646947A2 (ko)
KR (1) KR100865195B1 (ko)
CN (1) CN100447750C (ko)
TW (1) TWI259357B (ko)
WO (1) WO2005010754A2 (ko)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050022091A1 (en) * 2003-07-21 2005-01-27 Holman Thomas J. Method, system, and apparatus for adjacent-symbol error correction and detection code
US7331010B2 (en) 2004-10-29 2008-02-12 International Business Machines Corporation System, method and storage medium for providing fault detection and correction in a memory subsystem
US7685392B2 (en) 2005-11-28 2010-03-23 International Business Machines Corporation Providing indeterminate read data latency in a memory system
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
US7721140B2 (en) * 2007-01-02 2010-05-18 International Business Machines Corporation Systems and methods for improving serviceability of a memory system
KR100888695B1 (ko) 2007-02-27 2009-03-16 삼성전자주식회사 과표본화 읽기 동작을 수행하는 플래시 메모리 장치 및그것의 데이터 독출 방법
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
US8181094B2 (en) * 2008-01-31 2012-05-15 International Business Machines Corporation System to improve error correction using variable latency and associated methods
US8185801B2 (en) * 2008-01-31 2012-05-22 International Business Machines Corporation System to improve error code decoding using historical information and associated methods
US8140945B2 (en) * 2008-05-23 2012-03-20 Oracle America, Inc. Hard component failure detection and correction
CN101369242B (zh) * 2008-09-28 2011-06-15 西北工业大学 计算机内存程序代码和数据的自检方法
US8533572B2 (en) 2010-09-24 2013-09-10 Intel Corporation Error correcting code logic for processor caches that uses a common set of check bits
US9021325B2 (en) * 2013-02-07 2015-04-28 Lsi Corporation Classifying bit errors in transmitted run length limited data
CN104486615B (zh) * 2014-12-09 2016-08-24 广东威创视讯科技股份有限公司 Ddr芯片的故障定位方法与装置
CN104484310A (zh) * 2014-12-11 2015-04-01 北京国双科技有限公司 公式规范性校验方法及装置
US9912355B2 (en) 2015-09-25 2018-03-06 Intel Corporation Distributed concatenated error correction
CN110209524B (zh) * 2019-06-18 2022-12-06 哈尔滨工业大学 一种抗单粒子瞬态效应的ecc译码器加固方法
KR20210138241A (ko) 2020-05-12 2021-11-19 삼성전자주식회사 메모리 컨트롤러, 메모리 시스템 및 메모리 모듈
US11601137B2 (en) * 2020-06-18 2023-03-07 Intel Corporation ECC memory chip encoder and decoder

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR970002631A (ko) * 1995-06-29 1997-01-28 김주용 디코더를 이용한 순환 리던던시 체크 오류 검출 및 정정 장치
EP0889407A2 (en) 1997-06-30 1999-01-07 Sun Microsystems, Inc. System for package error detection

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3728678A (en) * 1971-09-03 1973-04-17 Bell Telephone Labor Inc Error-correcting systems utilizing rate {178 {11 diffuse codes
US4740968A (en) * 1986-10-27 1988-04-26 International Business Machines Corporation ECC circuit failure detector/quick word verifier
US4995041A (en) * 1989-02-03 1991-02-19 Digital Equipment Corporation Write back buffer with error correcting capabilities
US5278847A (en) * 1990-12-28 1994-01-11 General Electric Company Fault-tolerant memory system with graceful degradation
US5490155A (en) * 1992-10-02 1996-02-06 Compaq Computer Corp. Error correction system for n bits using error correcting code designed for fewer than n bits
US5768294A (en) * 1995-12-11 1998-06-16 International Business Machines Corporation Memory implemented error detection and correction code capable of detecting errors in fetching data from a wrong address
US5701314A (en) * 1995-12-21 1997-12-23 Cirrus Logic, Inc. On-the-fly error correction using thermal asperity erasure pointers from a sampled amplitude read channel in a magnetic disk drive
US5846249A (en) 1996-02-07 1998-12-08 Pinotage, Llc Video gynecological examination apparatus
US5768300A (en) * 1996-02-22 1998-06-16 Fujitsu Limited Interconnect fault detection and localization method and apparatus
IL122393A0 (en) * 1997-12-01 1998-06-15 Ttr Technologies Ltd A code word for use in digital optical media and a method of generation thereof
US6272659B1 (en) * 1998-05-18 2001-08-07 Cirrus Logic, Inc. Error correction code processor employing adjustable correction power for miscorrection minimization
US6662336B1 (en) * 1999-07-06 2003-12-09 Cirrus Logic, Inc. Error correction method and apparatus
US6405339B1 (en) * 1999-08-31 2002-06-11 International Business Machines Corporation Parallelized programmable encoder/syndrome generator
US6751769B2 (en) * 2000-06-06 2004-06-15 International Business Machines Corporation (146,130) error correction code utilizing address information
US6981196B2 (en) * 2001-07-25 2005-12-27 Hewlett-Packard Development Company, L.P. Data storage method for use in a magnetoresistive solid-state storage device
JP2003077294A (ja) * 2001-08-31 2003-03-14 Mitsubishi Electric Corp メモリ回路
US7234099B2 (en) * 2003-04-14 2007-06-19 International Business Machines Corporation High reliability memory module with a fault tolerant address and command bus
US20050022091A1 (en) 2003-07-21 2005-01-27 Holman Thomas J. Method, system, and apparatus for adjacent-symbol error correction and detection code

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR970002631A (ko) * 1995-06-29 1997-01-28 김주용 디코더를 이용한 순환 리던던시 체크 오류 검출 및 정정 장치
KR0147150B1 (ko) * 1995-06-29 1998-09-15 김주용 디코더를 이용한 순환 리던던시 체크 오류 검출 및 정정 장치
EP0889407A2 (en) 1997-06-30 1999-01-07 Sun Microsystems, Inc. System for package error detection

Also Published As

Publication number Publication date
CN100447750C (zh) 2008-12-31
US20050022091A1 (en) 2005-01-27
US7496826B2 (en) 2009-02-24
US20080104476A1 (en) 2008-05-01
TWI259357B (en) 2006-08-01
KR20060061335A (ko) 2006-06-07
WO2005010754A3 (en) 2005-04-14
TW200508851A (en) 2005-03-01
US20070061685A1 (en) 2007-03-15
US20070061675A1 (en) 2007-03-15
WO2005010754A2 (en) 2005-02-03
US8127213B2 (en) 2012-02-28
CN1826588A (zh) 2006-08-30
EP1646947A2 (en) 2006-04-19

Similar Documents

Publication Publication Date Title
US8127213B2 (en) Method, system, and apparatus for adjacent-symbol error correction and detection code
US7227797B2 (en) Hierarchical memory correction system and method
US6044483A (en) Error propagation operating mode for error correcting code retrofit apparatus
EP1204921B1 (en) System and method for detecting double-bit errors and for correcting errors due to component failures
US6473880B1 (en) System and method for protecting data and correcting bit errors due to component failures
US8327222B2 (en) Mechanism for adjacent-symbol error correction and detection
JPS6250943A (ja) 記憶装置
EP0147336A2 (en) Error correcting and detecting system
US7721177B2 (en) Device and method for determining a position of a bit error in a bit sequence
US7530008B2 (en) Scalable-chip-correct ECC scheme
KR100609343B1 (ko) 컴퓨터 메모리 시스템에서의 멀티-비트 에러 보호를 위한시스템 및 방법
US5761221A (en) Memory implemented error detection and correction code using memory modules
US7093183B2 (en) Symbol level error correction codes which protect against memory chip and bus line failures
EP0563491A1 (en) Method and apparatus for implementing a triple error detection and double error correction code
US6463563B1 (en) Single symbol correction double symbol detection code employing a modular H-matrix
US6460157B1 (en) Method system and program products for error correction code conversion
Lala A single error correcting and double error detecting coding scheme for computer memory systems
Farheen et al. Error Detection and Correction Using RP SEC-DED
Bodnar et al. A single error correction double burst error detection code
CN116615718A (zh) 可编程纠错码编码和解码逻辑
Comley Error detection and correction for memories
RU42685U1 (ru) Отказоустойчивое устройство
JPH02206855A (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
FPAY Annual fee payment

Payment date: 20120919

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20131001

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee