KR920002575B1 - 바이트 기입 에러코드 방법 및 장치 - Google Patents

바이트 기입 에러코드 방법 및 장치 Download PDF

Info

Publication number
KR920002575B1
KR920002575B1 KR1019890700060A KR890700060A KR920002575B1 KR 920002575 B1 KR920002575 B1 KR 920002575B1 KR 1019890700060 A KR1019890700060 A KR 1019890700060A KR 890700060 A KR890700060 A KR 890700060A KR 920002575 B1 KR920002575 B1 KR 920002575B1
Authority
KR
South Korea
Prior art keywords
memory
error
bit
data word
check
Prior art date
Application number
KR1019890700060A
Other languages
English (en)
Other versions
KR890702121A (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 KR890702121A publication Critical patent/KR890702121A/ko
Application granted granted Critical
Publication of KR920002575B1 publication Critical patent/KR920002575B1/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
    • G06F11/1056Updating check bits on partial write, i.e. read/modify/write
    • 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
    • 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

Abstract

내용 없음.

Description

[발명의 명칭]
바이트 기입 에러코드 방법 및 장치
[도면의 간단한 설명]
제1도는 본 발명에 따른 에러 검출의 일실시예를 나타낸 블록도.
제2도는 신드롬을 생성하기 위한 방법을 도시한 도면.
제3도는 바이트 기입 에러 코드를 포함한 에러 정정 코드를 나타낸 도면.
제4도는 정정 가능한 에러를 나타낸 도면.
제5도는 정정 불가능한 에러를 나타낸 도면.
제6도는 부분 기입동작의 결과를 나타낸 도면.
제7도는 본 발명에 따른 에러 정정 코드 회수를 상세히 나타낸 도면.
제8도는 에러 정정 코드의 구조를 나타낸 도면이다.
[발명의 상세한 설명]
[본 발명의 배경]
본 발명은 디지탈 컴퓨터내의 에러 검출 및 정정에 관한 것이다. 특히 본 발명은 메모리에 대한 부분 기입 동작중의 에러 검출 정정과 정정 불가능한 에러가 메모리에 대한 부분 기입 동작중에 발생할 때 잘못된 메모리 위치를 표시하는 것에 관한 것이다.
종래의 에러 검출 기술은 컴퓨터 메모리에서 판독된 데이타가 1개 이상의 에러를 포함하고 있는지의 여부를 알아낼 수 있다. 게다가, 컴퓨터 메모리에서 판독된 데이타가 1개 이상의 에러를 갖고 있는 경우 상기 판독된 데이타를 어떤 상황에서 정정하는 것도 가능하다. 판독된 데이타를 어떤 상황에서 보정할 수 있었다.
에러 검출 및 정정 기술들은 에프. 제이. 힐 및 지. 알. 피터슨이 지은 "Introduction to Switching Theory and Logical Design"이라는 명칭의 교본 페이지 199 내지 207에 걸쳐 개시되어 있다. 종래 기술의 에러 검출 및 정정 코드의 일례로서 해밍 코드(Hamming Code)를 들 수 있다.
해밍 코드를 사용하는 종래 기술의 시스템에 있어서, 어떤 2진 패리티 검사 비트는 각 2진 데이타 워드에 결합된 검사 비트로서 언급되기도 한다. 종래 기술의 어떤 시스템에서, 각 검사 비트는 이 비트에 걸친 우수 패리티 및 데이타 워드의 어떤 서브셋 비트를 설정하게끔 선택된다. 우수 패리티 시스템에서 허가 코드내의 "1"(또는 0)에 대한 총 갯수는 항상 우수이다. 그리고, 기수 패리티 시스템에서는 허가 코드내의 "1"(또는 0)에 대한 총갯수는 항상 기수이다. 해밍 코드를 사용하는 종래 시스템은 우수 패리티 시스템 또는 기수 패리티 시스템중 하나를 내장한다.
해밍 코드를 사용하는 종래 시스템에 있어서, 각 패리티 검사 비트는 데이타 워드의 어떤 선택 비트들간에서의 배타적 또는 논리 동작의 결과이므로, 이 결과는 상기 패리티 검사 비트에 걸친 우수 패리티와 상기 데이타 워드의 어떤 서브셋 비트를 설정하게 된다.
예컨대, 데이타 워드는 자체 검사 비트와 함께 한 시스템에서 통신 라인을 걸쳐 타시스템으로 전송되거나 또는 다이나믹 랜던 액세스 메모리("DRAM")에 기입된 후 언젠가 이 DRAM으로부터 판독된다. 데이타 워드를 송신할때의 송, 수신 동작 사이 또는 DRAM을 가진 경우 판독 및 기입 동작 사이에 단일 또는 다수 비트 에러가 패리티 체크 비트와 데이타 워드에서 발생할 수도 있다.
종래 시스템에서는 메모리에 대한 전송 또는 판독 동작이후 데이타 워드가 수신되었을 때 에러들을 검출 또는 정정하기 위해 해밍 코드를 사용했었다.
그러나, 부분 기입동작으로서 알려진 에러 검출 및 정정방법(또는 부분 기입동작을 채택하는 시스템)을 사용하면 몇몇 제한 요건이 가해진다. 알려진 부분 기입동작의 목적중 하나는 데이타 워드로서 기억된 구데이타의 서브셋을 새로운 데이타로 대치하는 것이다. 이로 인해 구데이타는 새로운 데이타와 교체되어 새로운 데이타 워드를 생성하여 메모리내에 새로운 데이타 워드를 기입하게 된다. 알려진 부분 기입방법은 데이타 워드를 자체 검사 비트와 함께 메모리에서 판독하는 동작을 포함한다. 만약 상기 검사 비트들이 방금 판독된 데이타 워드내에 단일 비트 에러의 존재를 지시하면, 다시 말해 정정 가능한 에러가 검출되면, 상기 단일 비트 에러는 알려진 방법 및 장치를 사용해서 정정된다. 판독되어진 데이타 워드를 구성하는 구데이타 서브셋은 새로운 데이타로 교체되어 새로운 데이타가 생성되는 것이다. 이 새로운 데이타는 상기 메모리에 기입된다.
알려진 부분 기입방법 및 장치에 관한 제한 요건으로는 메모리로부터 판독된 데이타 워드내의 에러가 정정 불가능한 것임을 알리는 검사 비트들이 판독되었을 때의 상황을 들 수 있다. 따라서 종래 기술의 방법은 부분 기입동작을 성공시키지 못하였고 상기 부분 기입동작을 부분적으로 시도하는 사이클을 끝내는 것이다. 다시 말해 어떤 데이타(새로운 데이타 또는 구데이타)든 메모리에 다시 기입되지 않는다.
이 정정 불가능한 상황을 위해 채택된 또 다른 종래의 방법은 실패된 구데이타 워드와 정정 불가능한 에러를 지시하는 자체의 구검사 비트를 함께 메모리에 다시 기입하는 것이다. 이 부분 기입동작은 새로운 데이타가 구데이타와 절대로 병합할 수 없으므로 실패한 것이다. 이 컴퓨터 사이클은 종료된다. 이 종래 기술의 방법은 메모리에 재기입된 실패된 구워드 및 검사 비트들이 전신간에 걸쳐 정정 불가능한 상태로 남아 있게 될 것을 기대것에 기초를 둔 것이다.
이와 같은 종래 기술의 방법 및 장치의 단점은 또 다른 에러나 일시적인 현상이 나타나서, 잘못된 데이타 워드가 정정되거나 정정 가능한 것으로 잘못 인식하게 되는 동안 후속 메모리 판독 동작시 정정 불가능한 에러를 생성하지 않을 수도 있다는 것이다.
[본 발명의 개요 및 목적]
본 발명의 제1목적은 알려진 부분 기입방법 및 장치의 단점을 고려한 것으로 메모리를 내장한 디지탈 컴퓨터 시스템에서 부분 기입동작을 포함한 메모리 동작중에 발생한 정정 불가능한 에러를 처리하기 위한 개선된 방법 및 장치를 제공하는 것이다.
본 발명의 제2목적은 정정 불가능한 에러가 부분 기입동작을 포함한 메모리 동작중에 발생했을 때 정정 불가능 에러에 관련된 메모리 위치를 표시할 수 있는 개선된 방법 및 장치를 제공하는 것이다. 본 발명의 방법 및 장치를 제공하는 것이다. 본 발명의 방법 및 장치는 정정 불가능한 에러가 일시적 또는 소프트 에러인 경우에 메모리 동작중 검출된 정정 불가능한 에러를 가진 메모리 위치가 정정 불가능 에러와 관련된 것처럼 검출되게 하는 것을 가능한 범위내에서 보장한다.
본 발명의 제3목적은 1) 실패된 메모리 동작(실패된 부분 기입동작을 포함)이 특정 메모리 위치 또는 어드레스에서 발생했음을 알리는 표식을 여러 경우에 제공하는 것이고, 2) 다음번의 일시적 현상 또는 에러가 실패된 메모리 동작후에 상기 특정 메모리 위치에서 발생한 경우에도 실패된 메모리 동작(실패된 부분 기입동작을 포함)후에 특정 메모리 위치 또는 어드레스에 정정 불가능한 에러가 존재함을 지시하는 표식을 가능한 범위내에서 제공하는 것이다. 상기 제1상황은 특정 메모리 위치에서 다음번의 판독동작이 존재할 때까지 후속 에러가 상기 위치에서 발생되지 않을 때 일어난다. 상기 제2상황은 부분 기입동작을 포함한 실패된 메모리 동작후에 후속 에러가 특정 메모리 위치에서 발생했을 때 일어난다.
본 발명의 제4목적은 실패된 부분 기입동작을 포함한 실패된 메모리 동작후에 정정 불가능 에러가 검출되도록 가능한 범위내에서 보장하는 에러 정정 코드를 제공하는 것이다.
이상 전술한 목적과 기타 목적은 메모리에서 데이타 워드와 자체 검사 비트를 판독하는 단계와 판독된 데이타 워드로부터 새로운 검사 비트 세트를 생성하는 단계를 포함한 에러 검출 방법에 의해 성취된다. 새로운 검사 비트와 메모리로부터 판독된 검사 비트간에서 논리 동작이 실행되는데, 이 논리 동작 결과는 신드롬(syndrome)이다. 이 신드롬은 정정 불가능한 에러의 존재 여부를 검출할 수 있도록 디코드된다. 만약 정정 불가능한 에러가 검출되면 새로운 검사 비트와 바이트 기입 에러 코드간에서 논리 동작이 실행된다. 이 논리 동작의 결과는 새로운 검사 비트 세트가 되어, 이전의 검사 비트와 교체되어 데이타 워드와 함께 메모리에 기록된다. 이와 같은 방식으로 바이트 기입 에러 코드는 상기 특정 메모리 위치를 위한 표식 또는 기호를 제공한다.
본 발명에 따른 에러 검출 방법도 메모리로부터 데이타 워드와 자체 검사 비트를 판독하는 단계를 포함한다. 새로운 검사 비트 세트는 메모리에서 판독된 데이타 워드에서 생성된다. 논리 동작은 새로운 검사 비트와 메모리에서 판독된 검사 비트간에서 실행되고 그 논리 동작 결과는 신드롬이 된다. 실패된 메모리 동작은 상기 신드롬이 바이트 기입 에러 코드와 일치하는 경우에 지시된다.
본 발명의 전술한 목적 및 기타 목적은 전술한 방법을 실행할 수 있는 수단을 제공하는 장치에 의해 성취된다.
그외의 목적 및 본 발명의 특징은 하기의 설명 즉, 첨부된 도면과 함께 상세히 기술되는 양호한 일실시예로부터 명백해질 것이다.
본 발명은 일실시예를 통해 설명되지만 첨부된 도면에 한정되지 않으며, 이 도면들은 동일한 소자에 대해서 동일한 참조 번호를 나타낸다.
[상세한 설명]
제1도는 에러 검출장치를 블록도 형태로 도시한 도면중에서 버스(10)는 컴퓨터 시스템의 여러소자를 거쳐 전송되는 데이타 통로를 제공하는 것이다. 메모리 시스템(11)은 구동기(12)를 거쳐 버스(10)에 접속되고, 데이타는 구동기(12)를 거쳐 버스(10)로 향하거나 버스(10)로부터 나온다. 제어회로(14)는 인터페이스 회로를 포함하고 버스(10)의 프로토콜을 관찰한다. 제어회로(14)는 다이나믹 랜덤 엑세스 메모리(DRAMS)(16)의 동작을 하기 위한 회로도 포함한다. 이것은 어드레스(ADRS), 행어드레스 스토로브(RAS) 및 열어드레스 스트로브(CAS)를 포함한 신호들을 제공하는 제어회로(14)를 포함한다.
본 발명의 일실시예에 있어서, 메모리 시스템(11)은 데이타 처리 시스템에서 사용하는 메모리 보드일 수 있다. 본 발명의 다른 실시예에 있어서, 데이타 처리 시스템용 메모리 시스템(11)은 적어도 1개의 메모리 보드를 갖는다. 버스(10)에서 메모리로 기입될 데이타는 버스(10)에서 구동기(12) 및 데이타 통로(18)를 거쳐 DRAM(16)으로 진행한다. DRAM에서 판독될 데이타는 RAM(16)에서 데이타 통로(18) 및 구동기(12)를 거쳐 버스로 진행한다.
데이타 통로(18)는 데이타에 대한 에러 검출 및 정정회로를 포함한다. 레지스터(20)는 DRAM(16)에서 판독되고 DRAM(16)에 기입될 데이타를 기억한다. 레지스터(22)는 구동기(12)에서 수신되고 구동기(12)에 송신될 데이타를 기억한다. 레지스터(28)는 DRAM(16)에서 판독되고 DRAM(16)에 기입될 패리티 검사 비트를 기억한다.
에러 정정 코드(ECC)회로(24)는 데이타 워드에 대한 패리티 검사 비트를 생성하고 데이타 워드에 대한 신드롬을 제공할 수 있는 능력을 제공한다. ECC 회로(24)의 동작은 이하에서 상세히 설명될 것이다.
디코드 회로(30)는 ECC 회로(24)에 의해 생성된 신드롬을 디코드하는 회로를 포함한다. 만약 신드롬이 데이타내의 정정 가능 에러의 존재 및 위치를 알리는 디코드 회로(30)에 의해 디코드되면, 정정회로(26)는 에러 상태에 있는 데이타 워드의 비트를 정정한다. 예컨대, 비트가 "0"이 아니고 "1"인 경우 정정회로는 비트의 상태를 "0"에서 "1"로 변경한다. 정정회로는 비트 상태를 "1"에서 "0"으로도 변경할 수 있다.
제2도는 제1도의 장치를 사용하는 에러 검출 및 정정 방법으로 설명하기 위한 도면이다. 64 비트 데이타 워드(40)는 엔코드 단계(42)에서 엔코드되어 데이타 워드(40)에 결합되거나 링크된 8검사 비트(44)를 생성한다. 데이타 워드(40)로부터 검사 비트(44)를 생성하는 처리는 에러정정 코드(ECC)에 따라 처리된다. 제3도는 ECC(70)를 도시한 것으로, 이것은 해밍 코드를 변경한 것이며, 본 발명의 일실시예에 ECC로서 사용된다. 검사 비트 세트의 각 검사 비트는 ECC(70)에 의해 결정된 어떤 데이타 워드 비트간에서의 배타적-OR(XOR)동작에 의해 생성된다. 제3도의 ECC(70)를 참조하면, 어느 데이타 워드가 어느 검사 비트를 결정하는지를 알 수 있다.
각 검사 비트는 ECC(70)내에 자신의 열을 갖는다. 관심있는 검사 비트에서의 각 열내의 "1"은 데이타 워드의 비트 위치와 일직선상에 놓인다. 그래서 데이타 비트 위치는 관심있는 열내의 "1"들과 결합해서 적절한 비트 위치가 된다. 예컨대, 검사 비트(S2)의 경우, 적절한 데이타 워드 비트 위치들은 4-7, 12-13, 20-23, 28-29, 36-37, 44-46, 52-55 및 60-62이다. 검사 비트는 데이타 워드의 적절한 비트 위치내의 데이타간에서 배타적-OR 동작에 의해 생성된다. 예컨대, 검사 비트(S2)는 데이타 워드의 비트 위치(4-7, 12-23, 20-30, 28-29, 36-39, 44-46, 52-55 및 60-62)간의 배타적-OR 동작에 의해 생성된다.
제3도의 ECC(70)는 단일 비트 에러를 검출 및 정정할 수 있는 능력을 갖고 있으며, 더블 비트 에러에 대해서는 검출할 수 있는 능력만을 갖고 있다(그러나, 정정 능력을 갖고 있지 않다).
본 발명의 타실시예는 길이가 짧거나 긴 데이타와 검사 비트를 가질 수도 있는데, 즉 데이타 워드와 검사 비트는 비트수가 적거나 많을 수도 있다. 검사 비트의 최소수는 데이타 워드의 길이와 관련되어 있다. 예컨대, 32 비트 데이타 워드는 7 검사 비트를 요구할 수도 있고 16 비트 워드는 6 검사 비트를 요구할 수도 있다.
64 비트 데이타 워드는 "메모리에 기입"단계(46)에서 메모리내의 특정 어드레스나 특정 위치에 기입된다. 예컨대, 메모리는 제1도의 DRAM(16)을 포함할 수도 있다. 8 패리티 검사 비트들은 "메모리에 기입"단계(48)에서 메모리내의 특정 어드레스 또는 특정 위치에 기입된다.
8 패리티 검사 비트(44)는 64 비트 데이타 워드의 메모리 어드레스와 동일한 어드레스에 기입될 수도 있다. 검사 비트(44)는 상기 메모리 어드레스에 72 비트에 걸쳐 여러점에서 삽입될 수도 있고 또는 72 비트 워드내에서 함께 그룹화될 수도 있다. 상기 72 비트 워드는 8 검사 비트(44)와 64 비트 데이타 워드(40)로 구성될 수도 있다. 8 검사 비트(44)는 8 검사 비트(44)와 64 비트 데이타 워드(40)로 구성된 72 비트 데이타 워드의 최외곽 좌측 비트로서 나타날 수도 있다. 한편, 8 검사 비트(44)는 데이타 워드(40)에 결합되거나 링크되지 않았다면 64 비트 데이타 워드(40)가 메모리에 저장된 메모리에 어드레스가 아닌 다른 메모리 어드레스에 기억될 수도 있다. 다시 말해, 검사 비트(44)는 데이타 워드(48)용 검사 비트로서 식별될 수도 있다.
64 비트 데이타 워드(54)는 "메모리에서 판독"단계(50)에서 메모리로부터 판독된다. 상기 데이타 워드(54)는 데이타 워드(40)가 기입되어 있는 메모리 어드레스로부터 판독된다. 8 패리티 검사 비트(56)도 "메모리에서 판독"단계(52)에서 메모리로부터 판독된다. 검사 비트(56)는 검사 비트(44)가 기입된 메모리 어드레스로부터 판독된다.
데이타 워드내에서 에러가 발생하지 않은 경우에는 데이타 워드(40)는 데이타 워드(54)와 동일하게 된다. 검사 비트에서도 에러가 존재하지 않는 경우엔 검사 비트(56)는 검사 비트(44)와 동일하다.
그렇지만, "메모리에 기입"단계(46,48)와 "메모리로부터 판독"단계(50,52)사이에 데이타 워드와 검사 비트에서 에러가 때때로 발생한다. 또한, 에러는 데이타 워드와 검사 비트가 레지스터에 저장되어 있는 동안 그리고 데이타 워드 및 검사 비트의 전송 또는 전달 도중에도 데이타 워드와 검사 비트에서 발생가능하다. 비트 에러는 과도 전압, DRAM에서의 알파 입자 효과 및 전하 손실을 포함한 여러 요인에 의해 야기될 수 있다.
단일 비트 에러는 2 비트 에러 보다 발생할 가능성이 크다. 그리고, 2 비트 에러는 3 비트 에러보다 발생할 가능성이 크므로 에러 비트수가 많아짐에 따라 발생확률은 줄어든다. 제4도는 64 비트 데이타 워드(80)에 존재하는 단일 비트 에러(82)를 도시한 것이다. 에러 상태에 있는 비트는 데이타 워드(80)의 64 비트들중 어느 하나이다. 제5도는 64 비트 데이타 워드(90)에 존재하는 2개의 비트 에러(92,94)를 도시한 것이다.
1개 이상의 비트 에러는 데이타 워드(54)가 데이타 워드(40)와 다르다는 것을 의미하거나 또는 검사 비트(56)들은 검사 비트들(44)과 다르다는 것을 의미한다. 하나의 목표는 단일 비트 에러가 데이타 워드(54)내에 존재하는지의 여부를 검출하고 상기 단일 비트 에러를 정정하고자 하는 것이다. 단일 비트 에러는 제3도의 ECC(70)하에서 정정가능한 에러로서 언급된다. 또 다른 목적은 본 발명의 본 실시예가 2 비트 에러의 정정을 허락하지 않는다 해도 2 비트 에러가 데이타 워드(54)내에 존재하는지의 여부를 검출하는 것이다. 따라서, 2 비트 에러는 제3도의 ECC(70)하에서 정정 불가능한 에러로서 언급된다.
1개 이상의 데이타 워드(54)가 데이타 워드(40)의 대응 비트들과 다르다고 가정하면, 검사 비트(56)는 데이타 워드(54)내에서 발견된 데이타 패턴을 위한 정정 검사 비트가 될 수 없다(검사 비트(56)가 메모리에 기입동작 및 메모리로부터의 판독동작후 검사 비트(44)로서 동일한 상태로 남아 있음을 가정하는 경우).
데이타 워드(54)가 에러상태로 있음에 관계없이, 데이타 워드(54)는 8 패리티 검사 비트(60)를 생성할 수 있도록 엔코드 단계(44)에서 엔코드된다. 엔코드 단계(58)는 엔코드 단계(42)와 동일한 방식으로 실행되는데, 즉 검사 비트들이 제3도의 ECC에 따라 생성된다.
검사 비트(60)는 1) 검사 비트(44)가 검사 비트(56)와 다른 경우, 2) 데이타 워드(54)가 데이타 워드(40)와 다른 경우 또는 3) 검사 비트(44,56 또는 60)의 발생, 전송 또는 저장시에 에러가 발생한 경우 검사 비트(56)와 다르게 된다. 따라서, 검사 비트(60)는 데이타 워드나 검사 비트중 둘중 하나에서 1개 이상의 에러가 존재하는 경우 검사 비트(56)와는 다르게 된다.
검사 비트(60)의 각 비트와 검사 비트(56)에서 동일한 위치를 점유하고 있는 각 부분비트와의 배타적-OR 논리 동작(또는 동일한 논리 동작)은 단계(62)에서 실행된다. 따라서, 8배타적-OR 동작은 각 검사 비트(60,56)에 8 비트가 존재함과 1 비트당 1개의 배타적-OR 동작이 실행된다는 가정하에서 실행된다.
배타적-OR 단계(62)의 결과는 신드롬(64)이다. 3개 이상 비트 즉, 가능한 범위내에 있는 비트수를 포함한 에러가 없다고 가정하면, 상기 신드롬(64)은 하기의 사실을 지시한다.
(1) 에러의 존재여부.
(2) 정정가능한 에러의 존재여부-만약 존재한다면 데이타 워드 또는 검사 비트내에서의 에러상태의 비트 위치를 지시함.
(3) 정정 불가능한 에러의 존재여부.
(4) 실패된 기입 동작의 존재여부.
전술한 바와 같이, 상기 데이타 워드의 3개 이상의 비트를 포함한 에러가 없다는 가정은 3개 이상의 비트를 포함한 에러발생 가능성이 극히 적은 가정하에서 타당하다. 3개 이상의 비트를 포함하는 에러는 제3도에 도시된 (70)의 능력밖이다.
케이스 1(제2도)은 데이타 워드 또는 검사 비트중 어느 한 비트에 에러가 존재하지 않을 때 발생된 신드롬(64)을 도시한 것이다. 케이스 1의 무에러 조건은 신드롬의 비트가 모두 0인 경우이다.
케이스 2(제2도)는 데이타 워드(54) 또는 8 검사 비트(56)내에 정정가능한 에러(단일 비트 에러)가 존재할 때 생성된 신드롬(64)의 일례를 도시한 것이다. 이 신드롬의 패리티는 케이스 2에서 기수이다. 케이스 2와 같은 신드롬은 데이타 워드(54)내에서 에러상태의 비트 위치를 지시한다. 제3도의 ECC(70) 챠트를 참조하면 에러상태의 데이타 워드(54)의 비트를 볼 수 있다. 케이스 2의 특정 신드롬(00001011)은 제3도의 ECC(70)상의 데이타 비트 16에 대한 패턴과 일치하므로, 케이스 2의 신드롬은 데이타 워드(54)의 데이타 비트 16이 에러상태임을 지시한다. 데이타 워드(50)의 데이타 비트가 에러상태일 때 상기 단일 비트의 정정은 비교적 간단한데 즉, 에러 비트가 "0"이면 "1"로 변경하고 에러 비트가 "1"이면 "0"으로 변경한다.
정정가능한 에러상황을 위해 다른 신드롬도 가능하다. 제3도의 ECC(70)에 있어서, 정정가능한 에러들은 생성된 신드롬이 데이타 비트 0 내지 63 즉 검사 비트의 C0 내지 C7로 표시된 ECC(70)의 열에 대한 비트 패턴과 일치하는지의 여부를 지시할 수도 있다. 신드롬과 ECC(70) 데이타 패턴을 일치시키고 일치된 열의 비트 번호를 판독해냄으로써, 데이타 워드(54)의 데이타 비트가 에러상태임을 알 수 있다.
제2도에 도시된 케이스 3은 데이타 워드(54) 또는 검사 비트에 정정 불가능 에러(2 비트 에러)가 존재할 때 생성된 신드롬(64)의 일례를 도시한 것이다. 만약 신드롬의 패리티가 우수이면 정정 불가능 에러가 존재하는 것이다. 케이스 3에서는 4 비트가 1 이므로 우수 패리티가 존재하게 된다. 우수 패리티를 가진 다른 신드롬이 정정 불가능 에러 상황에서 가능하다. 기수 패리티를 가진 신드롬은 신드롬이 사용되지 않은 ECC(70)의 코드와 일치하는 경우 정정 불가능 에러를 지시한다.
다시, 어떤 데이타 워드에도 3개 이상의 비트를 포함한 에러가 존재하지 않는다고 가정한다. 그러나, 1 이외의 다른 기수의 비트를 가진 에러가 발생하면 생성된 신드롬은 기수 패리티를 갖게 되므로, 상기 신드롬은 정정 가능 에러의 존재를 잘못 지시할 수도 있다.
0은 아니지만 2를 포함하는 우수를 가진 에러가 발생하면 생성된 신드롬은 우수 패리티를 갖게 되므로 데이타 워드(54) 또는 검사 비트(56 또는 60)중 어느 하나에 정정 불가능 에러가 존재한다는 것을 잘못 지시하게 된다.
케이스 4(제2도)는 실패된 부분 기입 동작(이하에서 상세히 설명될 것임)이 발생했을 때 생성된 신드롬을 지시한 것이다. 케이스 4의 신드롬은 제3도에 도시된 ECC(70)의 바이트 기입 에러 코드와 일치한다.
부분 기입 동작에 있어서, 그 목표중 하나는 기억된 구데이타의 서브셋을 새로운 데이타를 가진 데이타 워드와 교체하고 하는 것이므로 부분 기입 동작의 목표는 새로운 데이타와 구데이타를 병합함으로써 구데이타를 교체시키는 것이다. 제6도는 64 비트 데이타 워드(100)를 도시한 것으로, 이 데이타 워드는 각각 8 비트의 길이를 갖는 바이트 8개로 구성된다. 성공적인 부분 기록 동작의 일실시예에 있어서 데이타 워드(100)의 바이트(102)는 이미 새로운 데이타로 교체된 것이다. 그렇지만 데이타 워드(100)의 나머지 바이트들은 부분 기입 동작이 실행된 후 변경되지 않은 채로 남아 있는다.
제1도의 장치를 참조하여, 부분 기입 동작 처리는 DRAM(16)내의 메모리 어드레스 또는 위치로부터 64 비트 데이타 워드를 판독하는 처리와 이 데이타 워드를 레지스터(20)내에 저장시키는 처리를 포함한다. 이 데이타 워드에 관련된 8 검사 비트는 DRAM(16)내의 메모리 어드레스 또는 위치로부터 판독되기도 하고 레지스터(28)에 저장된다. 데이타 워드내에 기입된 바이트(또는 바이트들)은 버스(10)에서 구동기(12)를 거쳐 레지스터(22)에 기억된다.
전술한 바와 같이, 본 발명의 타실시예는 짧은 데이타 또는 워드 및 검사 비트와 긴 데이타 워드 및 검사 비트를 가진다. 또한 상기 검사 비트는 상기 데이타 워드가 사용된 동일한 메모리 어드레스에서 발생할 수 있고, 또는 타실시예에서는 상기 검사 비트가 상기 데이타 워드와 관련하는 상기 데이타 워드가 사용된 다른 메모리 어드레스에서 발생할 수 있다. 게다가, 본 발명의 어떤 실시예에서, 상기 검사 비트는 데이타 워드 중간에 삽입될 수도 있고 타실시예에서 검사 비트는 그룹을 이룰 수도 있으며 데이타 워드로부터 분리되거나 또는 데이타 워드의 일부분으로서 나타날 수도 있다.
레지스터(20)에 기억된 데이타 워드는 제7도에 도시된 ECC 회로(24)의 엔코드 회로(112)에 입력된다. 엔코드 회로(112)는 레지스터(20)의 데이타 워드를 위해 8 검사 비트를 생성한다. 이 검사 비트는 제2도의 관련설명에서 기술한 방식으로 생성된다. 검사 비트 세트는 각 검사 비트는 ECC(70)에 의해 결정된 어떤 데이타 워드 비트간에서의 배타적-OR 동작에 의해 생성된다. 그 결과인 8 검사 비트는 레지스터(114)에 기억된다.
레지스터(114)에 기억된 새로 생성된 검사 비트와 레지스터(28)에 저장된 8 검사 비트(즉, 변경될 것으로 메모리에서 판독된 데이타 워드와 관련한 검사 비트)는 배타적-OR 회로(118)에 입력된다. 배타적-OR 회로(118)는 이 회로에 입력된 각 검사 비트 세트의 대응 비트들을 배타적-OR 논리 동작시키므로써 신드롬을 생성한다. 생성된 이 신드롬은 제2도의 관련설명에서 기술된 신드롬 유형중 하나일 수도 있다.
배타적-OR 회로(118)에 의해 생성된 이 신드롬은 제1도의 디코드 회로(30)에 입력된다. 이 디코드 회로(30)는 신드롬상의 논리 동작을 실행해서 하기의 사실을 결정한다.
(1) 레지스터(20)에 저장된 데이타 워드 또는 레지스터(28)에 저장된 검사 비트에서의 에러존재 여부.
(2) 레지스터(20,28)에 저장된 데이타가 정정 불가능 에러를 가졌는지의 여부-만약 가졌다면 에러상태에 있는 데이타내의 비트 위치를 지시함.
(3) 레지스터(20,28)에 저장된 데이타가 정정 불가능 에러를 가졌는지의 여부.
(4) 실패된 부분 기입 동작의 조기발생 여부.
그러나, 제3도의 ECC(70) 능력중에서 데이타 워드의 3개 이상의 비트를 포함한 에러를 존재하지 않는다고 가정한다.
만약 디코드 회로(30)에 의해 디코드된 신드롬이 무에러 상태임을 지시하는 경우이면, 부분 기입 처리는 레지스터(20)에 저장된 1개 이상의 데이타 바이트를 레지스터(22)에 저장된 데이타 워드를 교체시키고, 새로운 데이타 워드를 위해 새로운 검사 비트들을 ECC 회로(24)에 발생시키고, 생성된 새로운 데이타 워드와 이 새로운 데이타용 검사 비트를 DRAM(16)에 기입시키므로써 이루어진다.
만약 디코드 회로(30)에 의해 디코드된 신드롬 세트가 정정 가능 에러를 지시한다면, 에러 상태에 있는 데이타 워드내의 위치는 디코드 회로(30)에 의해 정정 회로(26)로 보내진다. 정정 회로(26)는 레지스터(20)에 저장된 데이타 워드내 단일 비트 에러를 정정한다. 상기 단일 비트 에러가 정정된 후, 부분 기입 처리는 레지스터(20)내에 저장된 1개 이상의 데이타 바이트를 레지스터(22)에 저장된 데이타로 교체시키고, 새로운 데이타 워드를 위해 회로(24)에서 새로운 검사 비트를 생성하고, 그 결과인 새로운 데이타 워드와 이 새로운 데이타 워드를 위한 검사 비트를 DRAM(16)에 기입시키므로써 이루어진다.
만약 디코드 회로(30)에 의해 디코드된 신드롬이 부분 기입 동작중 정정 불가능 에러를 지시하는 경우이면(제7도), 제1도의 디코드 회로(30)는 제7도에 도시된 ECC 회로(24)의 게이트(116)로 인에이블 신호를 송출한다. 게이트(116)를 인에이블 하므로써, 제3도의 ECC(70)의 바이트 기입 에러 코드를 배타적-OR 회로(120)에 입력시킨다. 레지스터(114)에 저장된 8 검사 비트도 배타적-OR 회로(120)에 입력된다.
배타적-OR 회로(120)는 레지스터(114)의 8 검사 비트와, 바이트 기입 에러 코드의 8 비트의 대응 비트간에 배타적-OR 논리 동작을 실행한다.
이 배타적-OR 회로(120)의 배타적-OR 동작에 의해 8 비트를 포함하는 변경된 검사 비트 세트가 생성된다. 그리고, 변경된 검사 비트 세트는 배타적-OR 회로(120)에서 레지스터(28)로 전달된 후 레지스터에 이미 저장되어 있던 검사 비트 대신 저장된다.
제1도에 있어서, 레지스터(20)에 저장된 데이타 워드는 레지스터(22)에 저장된 1개 이상의 데이타 바이트와 함께 실행되는 병합 또는 대치동작없이 DRAM(16)내에 기입된다. 레지스터(28)에 저장된 변경된 검사 비트 세트는 레지스터(20)에서 DRAM(16)에 기입되는 데이타 워드와 관련되도록 하기 위해 DRAM(16)내에 기입되기도 한다. 따라서 상기 데이타 워드를 위한 부분 기입 처리는 레지스터(22)에 저장된 1개 이상의 데이타 바이트가 레지스터(20)에 저장된 데이타 워드와 절대로 병합되지 않는다는 가정하에서 실패되므로 절대로 완성될 수 없다.
다음번의 판독 또는 부분 기입 동작에서, 데이타 워드와 그 검사 비트는 DRAM(16)에서 판독된다. 데이타 워드는 레지스터(20)에 저장되고, 검사 비트들은 레지스터(28)(제1도)에 저장된다. DRAM(16)에서 판독되어 레지스터(28)에 저장된 검사 비트는 이제 데이타 워드와 결합된 변경된 검사 비트이며, 실패된 조기부분 기입 동작의 결과로서 생성된 것이다.
제3도에 도시된 ECC 회로(24)를 참조해서 기술된 본 발명에 따르면, 데이타 워드는 엔코드 회로(112)에 입력되고, 8 검사 비트는 엔코드 회로(112)에 의해 생성되고, 이 8 비트는 레지스터(114)에 저장되고 배타적-OR 회로(118)에 입력된다. 레지스터(28)에서 변경된 비트 세트도 배타적-OR 회로(118)에 입력되고, 신드롬을 생성한다. 이 신드롬은 디코드 회로(30)에 입력된다.
제1도의 디코드 회로(30)로 보내진 신드롬이 제3도의 ECC(70)의 바이트 기입 에러 코드와 일치하면, 디코드 회로(30)는 실패된 부분 기입 동작이 이 데이타 워드에 대해 이미 발생되었음을 알리는 신호를 제공한다. 이 신드롬은 실패된 부분 기입 동작 발생 이후 데이타 워드 또는 변경된 검사 비트 세트에서 에러가 발생하지 않으면 제3도의 ECC(70)의 바이트 기입 에러 코드에 응답한다.
그러나, 데이타 워드 또는 변경된 검사 비트중 어느 한 비트가 실패된 부분 기입 동작중에 기입된 어떤 것의 상태를 변경하면, 하기에 기술될 이유 때문에 디코드 회로(30)는 에러 상태를 지시하는 신드로멘토를 디코드 할 것이다. 디코드 회로는 정정 불가능 에러가 데이타 워드에 대해 발생되었음을 지시한다.
따라서, 바이트 기입 에러 코드는 정정 불가능 에러가 부분 기입 동작중에 발생했을 때 메모리 위치를 "불량"으로 표시한다. 본 발명의 또 다른 실시예에 있어서, 바이트 기입 에러 코드는 정정 불가능 에러가 메모리 동작중에 발생했을 때 메모리 위치를 "불량"으로 표시한다.
3개 이상의 비트를 포함한 에러가 발생하지 않았다고 가정하면, 실패된 부분 기입 동작 이후 바이트 기입 에러 코드를 가진 메모리 동작을 표시한다.
(1) 실패된 부분 기입 동작 이후 에러가 발생하지 않을 경우 실패된 부분 기입 동작이 상기 메모리 어드레스에 대해 발생되었음을 알리는 표식을 제공한다.
(2) 실패된 부분 기입 동작 이후 단일 비트 에러가 발생한 경우, 상기 메모리 어드레스에 존재하는 정정 불가능 에러 표식을 제공한다.
실패된 부분 기입 동작 이후 데이타 워드 또는 변경된 검사 비트에서의 단일 비트 에러 발생은 정정 불가능 에러 상태가 잘못된 정정 불가능 에러 상태 또는 잘못된 "무에러" 상태라기 보다는 상기 메모리 어드레스에 결합될 것이라는 것을 의미한다.
제8도에 도시된 바와 같이 ECC(70)의 바이트 기입 에러 코드는 사용되지 않은 기수 패리티 8 비트 코드에 의해 둘러싸인다. 데이타 코드 및 검사 코드들은 ECC(70)의 일부분으로서 사용된 다른 코드인 것이다.
제8도를 참조하면, ECC(70)(제3도에 도시됨)의 특정 바이트 기입 에러 코드가 사용되지 않은 기수 패리트 8 비트 코드로 둘러싸여 선택되어, 제1도의 디코드 회로(30)가 실패된 부분 기입 동작 발생후 단일 비트 에러가 많이 발생한 경우 정정 불가능 에러 상황을 지시하는 신드롬을 디코드하는 가능성을 증가시킨다. 바이트 기입 에러 코드와 다른 몇몇 비트 또는 단지 한 비트만을 가진 ECC 코드는 조기 검출된 정정 불가능 에러의 검출 가능성을 증가시키는 정정 불가능 에러 코드들이다. 다시 말해, ECC(70)용 특정 바이트 기입 에러 코드는 실패된 부분 기입 동작 발생후 에러가 데이타 워드나 변경된 검사 비트중 어느 하나의 2개 이상의 비트를 포함하는지의 여부를 정정 불가능 에러 상태가 지지하게 될 가능성을 증가시킨다.
전술한 설명에서, 본 발명은 특정 실시예로 기술되었다. 그러나, 뒤에 부착된 특허청구의 범위에 기술된 바와 같이 본 발명의 의의 및 범주를 벗어나지 않는 한도내에서 여러 수정 및 변경이 가능함은 물론이다. 따라서, 본 명세서와 도면은 한정하는 개념이라기 보다는 도시하고자 하였음을 주기하기 바란다.

Claims (36)

  1. (a) 메모리에서 데이타 워드를 판독하는 단계와, (b) 상기 판독된 데이타 워드와 결합된 제1검사 비트 세트를 상기 메모리에서 판독하는 단계와, (c) 상기 메모리에서 판독된 데이타 워드에서 제2검사 비트 세트를 생성하는 단계와, (d) 신드롬을 생성하기 위해 제1검사 비트 세트와 제2검사 비트 세트간의 제1논리 동작을 실행하는 단계와, (e) 정정 불가능 에러의 존재 여부를 검출하기 위해 상기 신드롬을 디코드하고 정정 불가능 에러가 검출되었을 때 그러한 정정 불가능 에러를 지시하기 위해 상기 검사 비트를 변경하는 단계를 구비하는 것을 특징으로 하는 에러 검출 방법.
  2. 제1항에 있어서, 상기 변경 단계는 i) 제3검사 비트 세트를 생성하기 위해 제2검사 비트 세트와 바이트 기입 에러 코드간의 제2논리 동작을 실행하는 단계와, ii) 상기 데이타 워드를 메모리에 기입하는 단계와, iii) 상기 제3검사 비트 세트와 데이타 워드를 결합시키기 위해 상기 메모리에 제3검사 비트 세트를 기입하는 단계를 구비하는 것을 특징으로 하는 에러 검출 방법.
  3. (a) 메모리에서 데이타 워드를 판독하는 단계와, (b) 상기 메모리에서 판독된 데이타 워드와 결합된 제1검사 비트 세트를 상기 메모리에서 판독하는 단계와, (c) 상기 메모리에서 판독된 데이타 워드로부터 제2검사 비트 세트를 생성하는 단계와, (d) 신드롬을 생성하기 위해 제1검사 비트 세트와 제2검사 비트 세트간의 논리 동작을 실행하는 단계와, (e) 상기 신드롬이 바이트 기입 에러 코드와 일치하는 경우 실패된 메모리 동작임을 지시하는 단계를 구비하는 것을 특징으로 하는 에러 검출 방법.
  4. 제3항에 있어서, (f) 상기 신드롬이 정정 불가능 에러를 지시하는 에러 코드와 일치하는 경우 정정 불가능 에러임을 지시하는 단계를 아울러 구비하는 것을 특징으로 하는 에러 검출 방법.
  5. 제2항에 있어서, 상기 제1논리 동작은 제1검사 비트 세트와 제2검사 비트 세트간의 배타적-OR 동작이며, 상기 제2논리 동작은 제2검사 비트 세트와 바이트 기입 에러 코드간의 배타적-OR 동작인 것을 특징으로 하는 에러 검출 방법.
  6. 제2항에 있어서, 바이트 기입 에러 코드와 다른 몇몇 비트 또는 단지 하나의 비트만을 가진 코드들을 조기 검출된 정정 불가능 에러의 검출 확률을 증가시키기 위해 정정 불가능 코드들인 것을 특징으로 하는 에러 검출 방법.
  7. 제4항에 있어서, 상기 바이트 기입 에러 코드는 사용되지 않은 에러 코드에 의해 둘러 싸이는 것으로 인해 상기 검출 확률을 증가시켜서 실패된 메모리 동작 이후 단일 비트 에러 이상의 것이 발생하면 정정 불가능 에러가 지시되게 하는 것을 특징으로 하는 에러 검출 방법.
  8. 제2항에 있어서, 데이타 워드의 길이는 64 비트이고, 제1, 제2, 제3검사 비트 세트의 길이는 각각 8 비트인 것을 특징으로 하는 에러 검출 방법.
  9. 제8항에 있어서, 바이트 기입 에러 코드는 01111111이고, 최외곽 좌측 비트는 최하위 비트이고 최외곽 우측 비트는 최상위 비트인 것을 특징으로 하는 에러 검출 방법.
  10. (a) 메모리에서 데이타 워드를 판독하는 단계와, (b) 상기 메모리에서 판독된 데이타 워드와 결합된 제1검사 비트 세트를 상기 메모리에서 판독하는 단계와, (c) 상기 메모리에서 판독된 데이타 워드에서 제2검사 비트 세트를 생성하는 단계와, (d) 신드롬을 생성하기 위해 제1검사 비트 세트와 제2검사 비트 세트간의 제1논리 동작을 실행하는 단계와, (e) 정정 불가능 에러의 존재 여부를 결정하기 위해 신드롬을 디코드하고, 정정 불가능 에러가 검출되었을 때 부분 기입 동작중에 i) 제3검사 비트 세트를 생성하기 위해 제2검사 비트 세트와 바이트 기입 에러 코드간의 제2논리 동작을 실행하고, ii) 상기 데이타 워드를 상기 메모리에 기입하고, iii) 제3검사 비트 세트를 상기 데이타 워드에 결합시키기 위해 제3검사 비트 세트를 상기 메모리에 기입하는 단계를 구비하는 것을 특징으로 하는 에러 검출 방법.
  11. (a) 메모리에서 워드를 판독하는 단계와, (b) 상기 메모리에서 판독된 데이타 워드에 결합된 제1검사 비트 세트를 상기 메모리에서 판독하는 단계와, (c) 상기 메모리에서 판독된 데이타 워드에서 제2검사 비트 세트를 생성하는 단계와, (d) 신드롬을 생성하기 위해 제1검사 비트 세트와 제2검사 비트 세트간의 논리 동작을 실행하는 단계와, (e) 상기 신드롬이 바이트 기입 에러 코드와 일치하는 경우엔 실패된 부분 기입 동작을 지시하는 단계를 구비하는 것을 특징으로 하는 에러 검출 회로.
  12. 제9항에 있어서, 상기 신드롬이 정정 불가능 에러를 지시하는 에러 코드와 일치하는 경우 정정 불가능 에러임을 지시하는 단계를 아울러 구비하는 것을 특징으로 하는 에러 검출 방법.
  13. (a) 메모리에서 데이타 워드를 판독하는 수단과, (b) 상기 메모리에서 판독된 데이타 워드와 결합된 제1검사 비트 세트를 상기 메모리에서 판독하는 수단과, (c) 상기 메모리에서 판독된 데이타 워드에서 제2검사 비트 세트를 생성하는 수단과, (d) 신드롬을 생성하기 위해 제1검사 비트 세트와 제2검사 비트 세트간의 제1논리 동작을 실행하기 위한 수단과, (e) 정정 불가능 에러의 존재 여부를 검출하기 위해 상기 신드롬을 디코드하는 수단과, (f) 정정 불가능 에러 검출 이후에 제3검사 비트를 생성하기 위해 제2검사 비트 세트와 바이트 기입 에러 코드간의 제2논리 동작을 실행하는 수단과, g) 정정 불가능 에러 검출 이후에 상기 데이타 워드를 상기 메모리에 기입하는 수단과, h) 정정 불가능 에러 검출 이후에 제3검사 비트 세트와 상기 데이타 워드를 기입하기 위한 수단을 구비하는 것을 특징으로 하는 에러 검출 장치.
  14. (a) 메모리에서 데이타 워드를 판독하는 수단과, (b) 상기 메모리에서 판독된 데이타 워드와 결합된 제1검사 비트 세트를 상기 메모리에서 판독하는 수단과, (c) 상기 메모리에서 판독된 데이타 워드에서 제2검사 비트 세트를 생성하는 수단과, (d) 신드롬을 생성하기 위해 제1검사 비트 세트와 제2검사 비트 세트간의 논리 동작을 실행하는 수단과, (e) 상기 신드롬이 바이트 기입 에러 코드와 일치하는 경우 실패된 메모리 동작임을 지시하는 수단을 구비하는 것을 특징으로 하는 에러 검출 장치.
  15. 제14항에 있어서, (f) 상기 신드롬이 정정 불가능 에러임을 지시하는 에러 코드와 일치하는 경우 정정 불가능 에러를 지시하는 수단을 아울러 구비하는 것을 특징으로 하는 에러 검출 장치.
  16. 제13항에 있어서, 상기 제1논리 동작은 제1검사 비트 세트와 제2검사 비트 세트간의 배타적-OR 동작이고, 상기 제2논리 동작은 제2검사 비트 세트와 바이트 기입 에러 코드간의 배타적-OR 동작인 것을 특징으로 하는 에러 검출 장치.
  17. 제13항에 있어서, 상기 바이트 기입 에러 코드와 다른 몇몇 비트 또는 1개의 비트만을 가진 코드들은 조기 검출된 정정 불가능 에러의 검출 확률을 증가시키기 위해 정정 불가능 에러 코드인 것을 특징으로 하는 에러 검출 장치.
  18. 제15항에 있어서, 상기 바이트 기입 에러 코드와 다른 몇몇 비트 또는 1개의 비트만을 가진 코드들은 조기 검출된 정정 불가능 에러의 검출 확률을 증가시키기 위해 정정 불가능 에러 코드인 것을 특징으로 하는 에러 검출 장치.
  19. 제13항에 있어서, 데이타 워드의 길이는 64 비트이고, 제1, 제2 및 제3검사 비트 세트의 길이는 각각 8 비트인 것을 특징으로 하는 에러 검출 장치.
  20. 제19항에 있어서, 바이트 기입 에러 코드는 01111111이고, 최외곽 좌측 비트는 최하위 비트이고 최외곽 우측 비트는 최상위 비트인 것을 특징으로 하는 에러 검출 장치.
  21. (a) 메모리에 데이타 워드를 판독하는 수단과, (b) 상기 메모리에서 판독된 데이타 워드와 결합된 제1검사 비트 세트를 상기 메모리에서 판독하는 수단과, (c) 상기 메모리에서 판독된 데이타에서 제2검사 비트 세트를 생성하는 수단과, (d) 신드롬을 생성하기 위해 제1검사 비트 세트와 제2검사 비트 세트간의 제1논리 동작을 실행하기 위한 수단과, (e) 정정 불가능 에러의 존재 여부를 검출하기 위해 상기 신드롬을 디코드하는 수단과, (f) 정정 불가능 에러 검출 이후에 제3검사 비트를 생성하기 위해 제2검사 비트 세트와 바이트 기입 에러 코드간의 제2논리 동작을 실행하는 수단과, g) 정정 불가능 에러 검출 이후에 상기 데이타 워드를 상기 메모리에 기입하는 수단과, h) 정정 불가능 에러 검출 이후에 제3검사 비트 세트와 데이타 워드를 결합시키기 위해 제3검사 비트 세트를 상기 메모리에 기입하는 수단을 구비하는 것을 특징으로 하는 에러 검출 능력을 가진 데이타 처리 시스템용 메모리 보드.
  22. (a) 메모리에서 데이타 워드를 판독하는 수단과, (b) 상기 메모리에서 판독된 데이타 워드와 결합된 제1검사 비트 세트를 상기 메모리에서 판독하는 수단과, (c) 상기 메모리에서 판독된 데이타 워드에서 제2검사 비트 세트를 생성하는 수단과, (d) 신드롬을 생성하기 위해 제1검사 비트 세트와 제2검사 비트 세트간의 논리 동작을 실행하는 수단과, (e) 상기 신드롬이 바이트 기입 에러 코드와 일치하는 경우 실패된 메모리 동작임을 지시하는 수단을 구비하는 것을 특징으로 하는 에러 검출 능력을 가진 데이타 처리 시스템용 메모리 보드.
  23. 제22항에 있어서, 상기 신드롬이 정정 불가능 에러임을 지시하는 에러 코드와 일치하는 경우 정정 불가능 에러임을 지시하는 수단을 아울러 구비하는 것을 특징으로 하는 데이타 처리 시스템용 메모리 보드.
  24. 제21항에 있어서, 상기 제1논리 동작은 제1검사 비트 세트와 제2검사 비트 세트간의 배타적-OR 동작이고, 상기 제2논리 동작은 제2검사 비트 세트와 바이트 기입 에러 코드간의 배타적-OR 동작인 것을 특징으로 하는 데이타 처리 시스템용 메모리 보드.
  25. 제21항에 있어서, 상기 바이트 기입 에러 코드와 다른 몇몇 비트 또는 1개의 비트만을 가진 코드들은 조기 검출된 정정 불가능 에러의 검출 확률을 증가시키기 위해 정정 불가능 에러 코드들인 것을 특징으로 하는 데이타 처리 시스템용 메모리 보드.
  26. 제23항에 있어서, 상기 바이트 기입 에러 코드와 몇몇 비트 또는 1개의 비트만을 가진 코드들은 조기 검출된 정정 불가능 에러의 검출 확률을 증가시키기 위해 정정 불가능 에러 코드들인 것을 특징으로 하는 데이타 처리 시스템용 메모리 보드.
  27. 제21항에 있어서, 상기 데이타 워드의 길이는 64 비트이고, 제1, 제2 및 제3검사 비트 세트의 길이는 각각 4 비트인 것을 특징으로 하는 데이타 처리 시스템용 메모리 보드.
  28. 제27항에 있어서, 상기 바이트 기입 에러 코드는 01111111이고, 최외곽 좌측 비트는 최하위 비트이며 최외곽 우측 비트는 최상위 비트인 것을 특징으로 하는 데이타 처리 시스템용 메모리 보드.
  29. (a) 메모리에서 데이타 워드를 판독하는 수단과, (b) 상기 메모리에서 판독된 데이타 워드와 결합된 제1검사 비트 세트를 상기 메모리에서 판독하는 수단과, (c) 상기 메모리에서 판독된 데이타로부터 제2검사 비트 세트를 생성하는 수단과, (d) 신드롬을 생성하기 위해 제1검사 비트 세트와 제2검사 비트 세트간의 제1논리 동작을 실행하기 위한 수단과, (e) 정정 불가능 에러의 존재 여부를 검출하기 위해 상기 신드롬을 디코드하는 수단과, (f) 정정 불가능 에러 검출 이후에 제3검사 비트를 생성하기 위해 제2검사 비트 세트와 바이트 기입 에러 코드간의 제2논리 동작을 실행하는 수단과, g) 정정 불가능 에러 검출 이후에 상기 데이타 워드를 상기 메모리에 기입하는 수단과, h) 정정 불가능 에러 검출 이후, 제3검사 비트 세트와 데이타 워드를 결합시키기 위해 제3검사 비트 를 상기 메모리에 기입시키는 수단을 구비하는 것을 특징으로 하는 에러 검출 능력을 가진 메모리 보오드를 적어도 1개 갖는 데이타 처리 시스템용 메모리 시스템.
  30. 에러 검출 능력을 가진 적어도 1개의 메모리 보드를 포함한 데이타 처리 시스템용 메모리 시스템으로서, 상기 에러 검출 능력을 가진 메모리 보드는 (a) 메모리에서 데이타 워드를 판독하는 수단과, (b) 상기 메모리에서 판독된 데이타 워드의 결합된 제1검사 비트 세트를 상기 메모리에서 판독하는 수단과, (c) 상기 메모리에서 판독된 데이타 워드로부터 제2검사 비트 세트를 생성해내는 수단과, (d) 신드롬을 생성하기 위해 제1검사 비트 세트와 제2검사 비트 세트간의 논리 동작을 실행하는 수단과, (e) 상기 신드롬이 바이트 기입 에러 코드와 일치하는 경우 실패된 메모리 동작임을 지시하는 수단을 구비하는 것을 특징으로 하는 데이타 처리 시스템용 메모리 시스템.
  31. 제29항에 있어서, (f) 상기 신드롬이 정정 불가능 에러임을 지시하는 에러 코드와 일치하는 경우 정정 불가능 에러를 지시하는 수단을 아울러 구비하는 것을 특징으로 하는 데이타 처리 시스템용 메모리 시스템.
  32. 제29항에 있어서, 상기 제1논리 동작은 제1검사 비트 세트와 제2검사 비트 세트간의 배타적-OR 동작이고, 상기 제2논리 동작은 제2검사 비트 세트와 바이트 기입 에러 코드간의 배타적-OR 동작인 것을 특징으로 하는 데이타 처리 시스템용 메모리 시스템.
  33. 제29항에 있어서, 상기 바이트 기입 에러 코드와 다른 몇몇 비트 또는 1개의 비트만을 가진 코드들은 조기 검출된 정정 불가능 에러의 검출 확률을 증가시키기 위해 정정 불가능 에러 코드들인 것을 특징으로 하는 데이타 처리 시스템용 메모리 시스템.
  34. 제31항에 있어서, 상기 바이트 기입 에러 코드와 다른 몇몇 비트 또는 1개의 비트만을 가진 코드들은 조기 검출된 정정 불가능 에러의 검출 확률을 증가시키기 위해 정정 불가능 에러 코드들인 것을 특징으로 하는 데이타 처리 시스템용 메모리 시스템.
  35. 제29항에 있어서, 데이타 워드의 길이는 64 비트이고, 제1, 제2 및 제3검사 비트 세트의 길이는 각각 8 비트인 것을 특징으로 하는 데이타 처리 시스템용 메모리 시스템.
  36. 제35항에 있어서, 바이트 기입 에러 코드는 01111111이고, 최외곽 비트는 최하위 비트이며 최외곽 우측 비트는 최상위 비트인 것을 특징으로 하는 데이타 처리 시스템용 메모리 시스템.
KR1019890700060A 1987-05-15 1988-04-29 바이트 기입 에러코드 방법 및 장치 KR920002575B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US050839 1987-05-15
US050,839 1987-05-15
US07/050,839 US4817095A (en) 1987-05-15 1987-05-15 Byte write error code method and apparatus
PCT/US1988/001335 WO1988009009A1 (en) 1987-05-15 1988-04-29 Byte write error code method and apparatus

Publications (2)

Publication Number Publication Date
KR890702121A KR890702121A (ko) 1989-12-22
KR920002575B1 true KR920002575B1 (ko) 1992-03-30

Family

ID=21967788

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019890700060A KR920002575B1 (ko) 1987-05-15 1988-04-29 바이트 기입 에러코드 방법 및 장치

Country Status (12)

Country Link
US (1) US4817095A (ko)
EP (1) EP0332662B1 (ko)
JP (1) JPH02500308A (ko)
KR (1) KR920002575B1 (ko)
CN (1) CN1016010B (ko)
AU (1) AU608613B2 (ko)
CA (1) CA1284228C (ko)
DE (1) DE3853206T2 (ko)
IE (1) IE71652B1 (ko)
IL (1) IL86262A (ko)
MX (1) MX163579B (ko)
WO (1) WO1988009009A1 (ko)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4970648A (en) * 1987-08-12 1990-11-13 Fairchild Space And Defense Corporation High performance flight recorder
JP2583547B2 (ja) * 1988-01-13 1997-02-19 株式会社日立製作所 半導体メモリ
US5014273A (en) * 1989-01-27 1991-05-07 Digital Equipment Corporation Bad data algorithm
JP2554743B2 (ja) * 1989-05-19 1996-11-13 シャープ株式会社 再生のための誤り訂正装置
EP0408343B1 (en) * 1989-07-13 1998-11-04 Canon Kabushiki Kaisha Encoding device and decoding device suitable for dubbing
JPH0786810B2 (ja) * 1990-02-16 1995-09-20 富士通株式会社 アレイディスク装置
JP2830308B2 (ja) * 1990-02-26 1998-12-02 日本電気株式会社 情報処理装置
JPH05216698A (ja) * 1991-08-05 1993-08-27 Advanced Micro Devicds Inc 改良されたエラー検出および訂正回路
US5379415A (en) * 1992-09-29 1995-01-03 Zitel Corporation Fault tolerant memory system
US5488691A (en) * 1993-11-17 1996-01-30 International Business Machines Corporation Memory card, computer system and method of operation for differentiating the use of read-modify-write cycles in operating and initializaiton modes
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
US5592498A (en) * 1994-09-16 1997-01-07 Cirrus Logic, Inc. CRC/EDC checker system
US5774481A (en) * 1995-03-31 1998-06-30 International Business Machines Corporation Reduced gate error detection and correction circuit
JP3234130B2 (ja) * 1995-05-30 2001-12-04 三菱電機株式会社 誤り訂正符号復号化方法およびこの方法を用いる回路
US5751948A (en) * 1995-12-26 1998-05-12 Carrier Corporation System for processing HVAC control information
DE10252230A1 (de) * 2002-11-11 2004-05-27 Robert Bosch Gmbh Verfahren zur Übertragung von Daten
US7392456B2 (en) 2004-11-23 2008-06-24 Mosys, Inc. Predictive error correction code generation facilitating high-speed byte-write in a semiconductor memory
DE102005027455A1 (de) * 2005-06-14 2006-12-28 Infineon Technologies Ag Verfahren und Schaltungsanordnung zur Fehlererkennung in einem Datensatz
US7954034B1 (en) * 2005-09-30 2011-05-31 Emc Corporation Method of and system for protecting data during conversion from an ECC protection scheme to a parity protection scheme
EP1994470B1 (en) * 2006-03-07 2010-05-19 Nxp B.V. Electronic circuit with a memory matrix that stores pages including extra data
CN101178922B (zh) * 2006-11-06 2010-09-01 凌阳科技股份有限公司 高内存使用效率的纠错处理装置
CN102339648B (zh) * 2010-07-23 2014-07-09 北京兆易创新科技股份有限公司 一种检错/纠错校验模块的检测方法及装置
CN102339641B (zh) * 2010-07-23 2014-12-17 北京兆易创新科技股份有限公司 检错/纠错校验模块及该模块读写数据的方法
CN102339647B (zh) * 2010-07-23 2014-05-14 北京兆易创新科技股份有限公司 一种检错/纠错校验模块的检测方法及装置
US8612834B2 (en) * 2011-03-08 2013-12-17 Intel Corporation Apparatus, system, and method for decoding linear block codes in a memory controller
US9164834B2 (en) * 2013-05-06 2015-10-20 Samsung Electronics Co., Ltd. Semiconductor memory devices, memory systems including the same and method of writing data in the same
GB2516831B (en) * 2013-07-31 2020-10-21 Advanced Risc Mach Ltd Error code management in systems permitting partial writes
JP2017022651A (ja) * 2015-07-14 2017-01-26 ルネサスエレクトロニクス株式会社 誤り訂正装置、半導体記憶装置、および誤り訂正方法
US9766975B2 (en) 2015-09-01 2017-09-19 International Business Machines Corporation Partial ECC handling for a byte-write capable register
US10176038B2 (en) * 2015-09-01 2019-01-08 International Business Machines Corporation Partial ECC mechanism for a byte-write capable register
US9985655B2 (en) 2015-09-01 2018-05-29 International Business Machines Corporation Generating ECC values for byte-write capable registers
US9639418B2 (en) * 2015-09-01 2017-05-02 International Business Machines Corporation Parity protection of a register
FR3065303B1 (fr) * 2017-04-12 2019-06-07 Stmicroelectronics (Rousset) Sas Procede d'ecriture dans un dispositif de memoire non volatile et dispositif de memoire non volatile correspondant
US11385963B1 (en) * 2021-02-24 2022-07-12 Western Digital Technologies, Inc. Usage of data mask in DRAM write

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3814921A (en) * 1972-11-15 1974-06-04 Honeywell Inf Systems Apparatus and method for a memory partial-write of error correcting encoded data
US3836957A (en) * 1973-06-26 1974-09-17 Ibm Data storage system with deferred error detection
US4072853A (en) * 1976-09-29 1978-02-07 Honeywell Information Systems Inc. Apparatus and method for storing parity encoded data from a plurality of input/output sources
US4319357A (en) * 1979-12-14 1982-03-09 International Business Machines Corp. Double error correction using single error correcting code
US4458349A (en) * 1982-06-16 1984-07-03 International Business Machines Corporation Method for storing data words in fault tolerant memory to recover uncorrectable errors
US4523314A (en) * 1983-02-07 1985-06-11 Sperry Corporation Read error occurrence detector for error checking and correcting system
JPS6041374A (ja) * 1983-08-16 1985-03-05 Canon Inc 撮像装置
US4651321A (en) * 1983-08-29 1987-03-17 Amdahl Corporation Apparatus for reducing storage necessary for error correction and detection in data processing machines
NL8303765A (nl) * 1983-11-02 1985-06-03 Philips Nv Dataverwerkend systeem waarbij in het geheugen onbetrouwbare woorden zijn vervangen door een onbetrouwbaarheidsindicator.
US4670876A (en) * 1985-05-15 1987-06-02 Honeywell Inc. Parity integrity check logic

Also Published As

Publication number Publication date
AU608613B2 (en) 1991-04-11
CN1016010B (zh) 1992-03-25
CA1284228C (en) 1991-05-14
MX163579B (es) 1992-06-03
EP0332662B1 (en) 1995-03-01
CN1033889A (zh) 1989-07-12
EP0332662A4 (en) 1991-01-09
EP0332662A1 (en) 1989-09-20
WO1988009009A1 (en) 1988-11-17
IE881460L (en) 1988-11-15
KR890702121A (ko) 1989-12-22
DE3853206D1 (de) 1995-04-06
DE3853206T2 (de) 1995-10-26
JPH02500308A (ja) 1990-02-01
IL86262A0 (en) 1988-11-15
IE71652B1 (en) 1997-02-26
AU1714488A (en) 1988-12-06
IL86262A (en) 1992-08-18
US4817095A (en) 1989-03-28

Similar Documents

Publication Publication Date Title
KR920002575B1 (ko) 바이트 기입 에러코드 방법 및 장치
US6009548A (en) Error correcting code retrofit method and apparatus for multiple memory configurations
JP4071940B2 (ja) メモリ設計のための共有式誤り訂正
US6044483A (en) Error propagation operating mode for error correcting code retrofit apparatus
US5663969A (en) Parity-based error detection in a memory controller
US6301680B1 (en) Technique for correcting single-bit errors and detecting paired double-bit errors
US4523314A (en) Read error occurrence detector for error checking and correcting system
TW418570B (en) Fault tolerant memory system
US4651321A (en) Apparatus for reducing storage necessary for error correction and detection in data processing machines
US7587658B1 (en) ECC encoding for uncorrectable errors
JPS6061837A (ja) エラ−訂正装置
EP0668561B1 (en) A flexible ECC/parity bit architecture
EP0186719A1 (en) Device for correcting errors in memories
JP2001358702A (ja) 誤り訂正符号の検査装置
JPH07191915A (ja) コンピュータ・システム、メモリ・カード、及びその操作方法
US4926426A (en) Error correction check during write cycles
US3898443A (en) Memory fault correction system
EP0383899B1 (en) Failure detection for partial write operations for memories
KR880000577B1 (ko) 메모리 시스템
US6505318B1 (en) Method and apparatus for partial error detection and correction of digital data
US7321996B1 (en) Digital data error insertion methods and apparatus
JP3170145B2 (ja) メモリ制御システム
JP2930239B2 (ja) 記憶装置の障害検出方法及び記憶制御装置
SU1111169A1 (ru) Устройство дл обнаружени и исправлени ошибок в блоках вычислительной машины
SU1367046A1 (ru) Запоминающее устройство с контролем цепей обнаружени ошибок

Legal Events

Date Code Title Description
A201 Request for examination
G160 Decision to publish patent application
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 19980310

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee