KR950010311B1 - 반도체 기억장치 - Google Patents

반도체 기억장치 Download PDF

Info

Publication number
KR950010311B1
KR950010311B1 KR1019920010893A KR920010893A KR950010311B1 KR 950010311 B1 KR950010311 B1 KR 950010311B1 KR 1019920010893 A KR1019920010893 A KR 1019920010893A KR 920010893 A KR920010893 A KR 920010893A KR 950010311 B1 KR950010311 B1 KR 950010311B1
Authority
KR
South Korea
Prior art keywords
signal
data
syndrome
correction
signals
Prior art date
Application number
KR1019920010893A
Other languages
English (en)
Other versions
KR930001239A (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 KR930001239A publication Critical patent/KR930001239A/ko
Application granted granted Critical
Publication of KR950010311B1 publication Critical patent/KR950010311B1/ko

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • 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/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • 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
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Algebra (AREA)
  • Pure & Applied Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Detection And Correction Of Errors (AREA)
  • Semiconductor Memories (AREA)
  • Read Only Memory (AREA)

Abstract

내용 없음.

Description

반도체 기억장치
제 1 도는 본 발명의 1실시예의 마스크 ROM의 전체구성을 표시하는 개략 블록도이고,
제 2 도는 제 1 도의 ECC의 구성을 표시하는 개략 블록도이고,
제 3 도는 제 1 도의 ECC에 있어 에러정정때문에 사용되는 해밍행렬의 1예를 표시하고,
제 4 도는 제 2 도의 신드롬신호발생기의 구성을 표시하는 회로도이고,
제 5 도는 제 4 도의 각 회로블록 110-1~110-6에의 입력신호 I1~I16을 표형식으로 표시하는 도면이고,
제 6 도는 제 2 도의 정정신호발생기의 구성을 표시하는 회로도이고,
제 7 도는 제 6 도의 각 회로블록 111-~111-16에의 입력신호를 표형식으로 표시하는 도면이고,
제 8 도는 제 2 도의 데이터 세렉터의 구성을 표시하는 회로도이고,
제 9 도는 제 2 도의 데이터 정정회로의 구성을 표시하는 회로도이고,
제10도는 종래의 에러정정기능부마스크 ROM의 전체구성을 표시하는 개략블록도이고,
제11도는 제10도의 ECC의 구성을 표시하는 개략블록도이고,
제12도는 종래의 ECC에 있어 에러정정때문에 사용되는 해밍행렬의 1예를 표시하는 도면.
제13도는 제11도의 신드롬신호발생기의 구성을 표시하는 회로도이고,
제14도는 제13도의 각 회로블록 90-1~90-6에의 입력신호를 표형식으로 표시하는 도면이고,
제15도는 제11도의 정정신호발생기의 구성을 표시하는 회로도이고,
제16도는 제15도의 각회로블록 91-1~91-32에의 입력신호를 표형식으로 표시하는 도면이고,
제17도는 제11도의 데이터정정회로의 구성을 표시하는 회로도이고,
제18도는 제11도의 데이터 세렉터의 구성을 표시하는 회로도이고,
제19도는 세렉트신호 SE의 논리레벨과, ECC의 출력데이터와의 관계를 표형식으로 표시하는 도면이고,
제20도는 2를 법으로 하는 가산을 표시하는 진리치표의 도면이고,
제21도는 2를 법으로 하는 승산을 표시하는 진리치표의 도면이고,
제22도는 해밍행열의 일반적인 형을 표시하는 도면이다.
* 도면의 주요부분에 대한 부호의 설명
1 : 정규메모리셀어레이 2 : 패리티메모리셀어레이
3 : X디코더 4 : Y디코더
5 : 어드레스버퍼 6 : 제어회로
7 : Y게이트 8 : 센스앰프군
9 : 11ECC 10 : 출력버퍼
90 : 110 신드롬신호발생기 91 : 111 정정신호발생기
92 : 112 데이터정정회로 93 : 113 데이터세렉터
본 발명은, 반도체기억장치에 관한 것이고, 특히, 에러정정회로를 가지는 반도체기억장치에 관한 것이다. 반도체 기억장치에는, 메모리셀어레이에서의 데이터판독시에, 판독된 데이터에 에러이 있었을 경우 그것을 정정하는 에러정정회로(Error Correction Circuit : 이하 ECC로 약한다)가 내장된 것이 있다.
일반적으로, 임의의 비트길이에 에러이 있는가 또는 없는가는, 이 데이터에 패리티비트(party bit)라고 불리우는 1비트의 데이터를 부가하는 것에 의해 검출된다.
이와같은 검출방법은 패리티첵크(parity check)라고 한다. 패리티첵크에 의하면,에러를 검출되어야할 데이터와 패리티비트의 데이터중, 데이터 "1"의 비트의 수가 홀수(또는 짝수)로 되도록, 패리티비트의 데이터가 설정된다.
따라서, 데이터 "1"의 비트의 수를 조사하면 1비트의 에러의 유무를 검출할 수가 있다.
그러나, 패리티첵크에 의하면, 어느 비트에 에러이 있는가를 검출할 수 없으므로, 에러을 정정할 수가 없다. 그래서, 에러을 검출하고, 또한 이것을 정정하기 위해서는, 에러을 검출되어야 할 데이터에, 복수비트의 데이터가 부가된다.
이 복수비트의 데이터는, 에러의 검출 및 정정을 위한 용장(冗長)비트이고, 첵크비트라 한다.
이하, 첵크비트의 데이터를 패리티데이터라 한다. 첵크비트가 부가된 데이터는, 에러정정코드(code)라 한다.
일반적으로, 32비트의 데이터에 발생한 1비트의 에러을 정정하는데는, 6비트의 패리티데이터를 부가할 필요가 있고, 8비트의 데이터에 발생한 1비트의 에러을 정정하는데는 4비트의 패리티데이터가 필요하다. ECC는, 판독된 데이터와, 이것에 대응하는 패리티데이터에, 소정의 연산을 시행하는 것에 의해, 상기 판독된 데이터의 에러을 정정하고, 정정후의 데이터를 최종적인 판독데이터로서 출력한다.
이와 같은 ECC는, 그 제조공정중에 미리 데이터가 기록되어, 제조후에는 데이터의 판독만이 가능한 소위 마스크 ROM(Read Only Memory)에 현재 많이 적용되어 있다.
최근에는, ECC는, EPROM(Erectorically Erasable and Programmable ROM)등의 , 제조후에 데이터를 개서하는 것이 가능한 기억장체에도 적용하는 것이 제안되어 있다.
제10도는, ECC를 가지는 종래의 마스크 ROM의 전체구성의 1예를 표시하는 개략블록도이다.
다음은, 제10도를 참조하여, ECC를 가지는 종래의 마스크 ROM의 구성에 대해 설명한다.
이 마스크 ROM은, 외부에 판독되어야 할 본래의 데이터가 기억된 메모리셀어레이(이하, 정규메모리셀어레이라 한다) 1과, 메모리셀어레이 1에서 판독된 데이터의 에러을 정정하기 위한 패리티데이터가 기억된 메모리셀어레이(이하, 패리티 메모리셀어레이라 한다)를 포함한다. 메모리셀어레이 1은, 32비트의 데이터에 대응하여 32개의 블록 DB0~DB31을 포함한다.
동일하게, 패리티메모리셀어레이는 2는, 6비트의 패리티데이터에 대응하여, 6개의 블록 DP0~DP5를 포함한다. 복수의 원드선 WL이 메모리셀어레이 1, 및 패리티메모리셀어레이 2에 공통으로 설치된다. 복수의 비트선 BL이, 38개의 블록 DB0~DB31, DP0~DP5의 각각에 설치된다. 이들의 워드선 WL은 X디코더 3에 접속되어, 이들의 비트선 BL은 Y게이트 7에 접속된다.
어드레스버퍼는 5는, 어드레스입력단자 A0~An에 외부에서 공급된 어드레스신호를 파형정형 및 증폭하여, X디코더 3 및 Y디코더 4에 제공한다.
X디코더 3은, 어드레스버퍼 5에서의 어드레스신호를 디코더하여, 상기 복수의 워드선 WL중, 이 어드레스신호에 대응하는 1개만을 활성화한다.
Y디코더 4는, 어드레스버퍼 5에서의 어드레스신호를 디코드하여, Y게이트 7을 제어한다. 구체적으로는, Y게이트 7은, 32개의 정규메모리셀어레이블록 DB0~DB31에 대응하여 32개의 블록 YGD0~YGD31과, 4개의 패리티메모리셀어레이블록 DP0~DP5에 대응하는 3개의 블록 YGP0~YGP5에 분할된다.
Y게이트내의 32개의 블록 YGD0~YGD31의 각각은, Y디코더 4의 디코드출력에 응답하고, 대응하는 정규메모리셀어레이블록의 비트선 BL중의 1개만을 센스앰프군 8에 전기적으로 접속한다. 동일하게, Y게이트 7내의 나머지 6개의 블록 YGP0~YGP5의 각각은, Y디코더 4의 디코드출력에 응답하고, 대응하는 패리티메모리셀어레이블록의 비트선 BL중의 1개만을 센스앰프군 8에 전기적으로 접속한다. 센스앰프군 8은, 32개의 Y게이트블록 YGD0~YGD31과, 6개의 Y게이트블록 YGP0~YGP5에 각각 대응하여, 32개의 센스앰프 SAD0~SAD31과, 6개의 센스앰프 SAP0~SAP5를 포함한다. 이들 합계 38개의 센스앰프SAD0~SAD31, SAP0~SAP5는, 각각, 대응하는 Y게이트블록에 의해 전기적으로 접속된 1개의 비트선 BL상의 신호를 감지증폭하여 ECC 9에 제공한다.
정규 메모리셀어레이블록 DB0~DB31의 각각과, 패리티메모리셀어레이블록 DP0~DP5의 각각과는, 어느 것이고, 복수의 행 및 복수의 열의 매트릭스상으로 배열된 메모리셀 MC를 포함한다. 동일행에 배열된 메모리셀 MC는 같은 워드선 WL에 접속되어, 동일행에 배열된 메모리셀 MC는 동일의 비트선 BL에 접속된다. 1개의 워드선 WL이 활화되면, 이 워드선 WL에 접속되는 각 메모리셀 MC의 기억데이터에 따른 신호가, 그 메모리셀 MC에 접속된 비트선 BL에 나타난다.
따라서, 각 정규메모리셀어레이블록 DB0~DB31 및 각 패리티메모리셀어레이블록 DP0~DP5에 각각 포함되는 메모리셀 열의 수를 N열로 하면, Y게이트 7에는, 같은 워드선 WL에 접속되는(38×N)개의 메모리셀 MC의 기억데이터가 동시에 제공된다.
그러나, 정규메모리셀어레이 1에 대응하여 설치된 각 Y게이트 블록 YGD0~YGD31은 대응하는 정규메모리셀어레이블록내의 1개의 비트선 BL만을 대응하는 센스앰프에 전기적으로 접속하고, 패리티메모리셀어레이 2에 대응하여 설치된 각 Y게이트블록 YGP0~YGP5는 대응하는 피리티메모리셀어레이블록내의 1개의 비트선 BL만을 대응하는 센스앰프에 접속한다.
따라서, 센스앰프군 8은, 메모리셀어레이블록 DP0에서 Y게이트 블록 YGD0에 제공된 N개의 데이터신호중의 1개, 메모리셀어레이블록 GD1에서 Y게이트블록 YGD1에 제공된 N개의 데이터 신호중의 1개,…, 메모리셀어레이블록 DB31에서 Y게이트블록 YGD31에 제공된 N개의 데이터 신호중의 1개, 패리티메모리셀어레이블록 DP0에서 Y게이트블록 GP0에 제공된 N개의 데이터 신호중의 1개, …, 및 피리티메모리셀어레이 블록 DP5에서 Y게이트블록 YGP5에 제공된 N개의 데이터신호중의 1개를 각각 증폭하여, ECC 9에의 입력신호 d0, d1, …, d31, P0, …, P5로 한다.
이와같이 하여, 각 정규메모리셀어레이블록 DB0~DB31 및 각 패리티메모리셀어레이블록 DP0~DP5에서 각각, 같은 워드선 WL에 접속되는 1개의 메모리셀 MC의 기억데이터가 ECC 9에 판독된다.
그래서, 정규메모리셀어레이 1 및 패리티메모리셀어레이 2에서 동시에 ECC 9에 판독되어야 할 38비트의 데이터 d0~d31, P0~P5에 발생한 1비트의 에러의 검출 및 정정이, ECC 9의 연산동작에 의해 실현되는 것과 같은, 소정의 패리티데이터가, 패리티 메모리셀어레이 2에 제조시 사전에 기록되어 있다.
물론 페리티 메모리셀어레이 2개 기록되어야 할 패리티데이터는, 메모리셀어레이 1의 기억데이터에 따라 결정된다. 메모리셀어레이 1에는, 외부에 판독되어야 할 데이터가 제조시에 미리 기록되어 있다.
그러나, 종종의 원인에 의해, 메모리셀어레이 1에서 판독된 데이터는 반드시 본래 판독되어야 할 옳은 데이터가 아닌 경우가 있다.
이와같은 경우에, 메모리셀어레이 1에서 판독된 데이터가 ECC 9의 동작에 옳은 데이터로 정정된다. 따라서, ECC 9에는, 본래 외부에 판독되어야 할 32비트의 데이터 d0~d31과, 이 32비트의 데이터에 발생한 1비트의 에러을 정정하는데 필요한 6비트의 패리티데이터 P0~P5이 동시에 제공된다.
ECC 9는, 이 32비트의 데이터 d0~d31과, 이 6비트의 패리티데이터 P0~P5에 소정의 연산을 시행하여, 판독된 32비트의 데이터 d0~d31중 어느 한개의 비트에 에러이 있었던 경우에는 이것을 정정하여, 에러이 없는 경우에는 그대로, 출력버퍼 10에 제공한다.
본예에서는, ECC 11은, 에러을 정정한 32비트의 데이터 d0~D31중, 하위 16비트의 데이터 d0~d15와, 상위 16비트의 데이터 d0~d31중의 어느 한쪽을 선택적으로 출력버퍼 10에 제공한다. 출력버퍼 10은, ECC 9의 출력신호, 즉, 정정후의 16비트의 데이터 d0~d15(또는 d16~d31)를, 증폭하여 데이터출력단자 DT0~DT15에 공급한다. 출력버퍼 10은 ECC 9가 출력하는 16비트의 데이터에 대응하여 16개의 버퍼회로 OUT0~OUT15를 포함한다. 이들 16개의 버퍼회로 PUT0~OUT15가 각각 16개의 데이터 출력단자 DT0~DT15에 접속된다. 제어회로(6)은, 제어신호입력단자 CTL에 외부에서 공급되는 제어신호에 응답하고, 어드레스버퍼 5, 출력버퍼 10등의 동작을 제어한다.
제11도는, 제10도에 있어 ECC 9의 내부구성을 표시하는 개략블록도이다.
우선, ECC 9의 구성설명에 앞서, ECC 9에 있어 연산수순 및 에러정정의 원리에 대해, 제20도를 참조하여 간단히 설명한다. 에러정정의 원리 및 회로에 의한 실현방법의 상세는, 예를들면 「인터페이스」, 1984년 8월호, pp. 236~250에 기술되어 있다.
제20도는, ECC에 있어 에러정정의 수순을 표시하는 도면이다. 1비트의 에러을 검출 및 정정되어야 할 m비트의 에러정정코드 y를 하기의 행열로 표시한다.
y=(y0 y1…y(m-1)………………………………………………………………(1)
상기 식(1)에 있어, y0 y1…y(m-1)은, 각각, 에러정정 코드의 최하위비트, 제 2 위비트,…최상위비트의 논리치를 표시한다. 동일하게, 어느 비트에서 에러이 없는 에러정정코드, 즉 m비트의 데이터의 기대치 x를 하기의 행열로 표시한다.
x=(x0 x1…x(m-1))……………………………………………………………(2)
상기 식(2)에 있어, x0, x1…x(m-1)은 각각, 에러정정 코드의 최하위비트, 제 2 위비트,…최상위비트가 각각 본래 취해야할 논리치를 표시한다.
여기서, 에러정정코드 각각의 비트의 논리치 y0~y(m-1)이 그의 기대치 x0~x(m-1)에서 어느정도 벗어나 있는가를 다음 식의 행열 e(이하, 에러행열이라 한다)로 표시하면, y=x+e가 성립한다.
e=(e0 e1…e(m-1))……………………………………………………………(3)
상기 식(3)에 있어, e0, e1, …, e(m-1)은 각각, 에러정정코드의 최하위비트 y0, 제 2 위비트 y1, …최상위비트 y(m-1)이 그의 기대치 x0 x1…x(m-1)에서 어느정도 벗어나 있는가를 표시하는 논리치를 표시한다.
이 논리치가 0일때 기대치에서의 벗어남은 없고, 이 이론치가 1일때 기대치와의 벗어남이 있다고 본다. 이하의 모든 식에 있어, +를 ○으로 둘어싼 신호 및, X는 각각, 2를 제수로 하는 가산 및 승산을 표시한다. y=X+e의 관계에서, 에러정정코드 임의의 비트의 논리치 xj와 그의 기대치 ej의 관계는 다음식으로 표시된다.
(J=0.1, …(m-1))
[수 1]
yj=xjej……………………………………………………………………………(4)
제20도는, 2를 제수로 하는 가산을 표시하는 진리치표이다. 제22도에서 알 수 있는 것과 같이, 2를 제수로하는 가산에 의하면, 가하는 값 B가 0이면 그의 가산결과는 가해지는 값 A와 일치한다.
그러나, 가하는 값 B가, 1이면, 가산결과는 가해지는 값 A와 역의 논리치가 된다. 따라서, e0~e(m-1)의 논리치를 알면, 에러정정코드의 각 비트의 기대치 x0~x(m-1)를 알 수 있게 된다.
한편, 에러정정코드 x의 어느 비트의 에러이 있는가 없는가는, 해밍 행열이라 불리는 1, 0만을 요소로 하는 행열을 사용하여 조사할 수가 있다. 해밍 행열 H는 다음식과 같은 관계를 채우는 행열이다.
H·x=0………………………………………………………………………………(5)
따라서, 정정되기전의 에러정정코드 y의 각 비트의 논리치 y0~y(m-1)이 그의 기대치 x0~x(m-1)과 일치하면, H·x=0이 성립되나, 에러정정코드 y의 어느 비트의 논리치가 그의 기대치가 다르면, H·y0이 된다.
여기서, 해밍행열 H와 정정전의 에러정정코드를 표시하는 행열 y와의 적 H·y는 신드롬(symdrom)행열 S라고 한다. 신드롬 행열 S는, 에러정정코드 y중의 어느 비트이 논리치가 기대치와 다르게 되어 있는가는 표시한다.
여기서, 정정전의 에러정정코드를 표시하는 행열 y와, 기대치행열 x와, 에러행열 e와의 사이에 성립하는 관계에 의해, 신드롬행열 S는 패리티검사행열 H의 전치(轉置)행열 HT를 사용하여 다음식에 의해 구해진다.
e=HT·S……………………………………………………………………………(7)
상기 식 (4)에서 알 수 있는 것과 같이, 에러정정코드 y의 임의의 비트의 논리치 yj가 그의 기대치 xj와 같으면, 이 비트의 논리치 yj는 정정될 필요는 없고, 역으로, 임의 비트의 논리치 yj가 그의 기대치 xj와 다르면, 이 비트의 논리치 yj는 반전될 필요가 있다.
즉, 식(7)에 의해 에러행열이 얻게되면, 다음식과 같은 연산에 의해 에러정정코드의 비트의 옳은 논리치 xj를 얻을 수가 있다.
[수 2]
xj=yjej……………………………………………………………………………(5)
이와같이, 소정의 해밍행열 H를 사용하는 것에 의해, 임의의 비트길이의 에러정정코드에 발생한 1비트의 에러을 정정할 수가 있다. 에러정정코드가, m1 비트길이의, 에러을 정정되어야 할 본래의 데이터와, m2비트길이의 패리티데이터를 포함하는 경우, 해밍 행열 H는, 예를들면 제22도에 표시되는 것과 같은 m2행 m1열의 행열이다.
제22도에는, 해밍행열의 일반적인 형이 표시된다. 32비트의 데이터에 발생하는 1비트의 에러을 검출 및 정정하는데는, 이 32비트의 데이터에 6비트의 패리티데이터를 부가할 필요가 있다. 다음은, 32비트의 데이터에 발생한 1비트의 에러을 정정하기 위해 구체적인 연산수순에 대해 설명한다.
우선, 이를 32비트의 데이터와 D0~D31과 6비트의 패리티 데이터 P0~P5에 의해 구성되는 에러정정코드를 다음식으로 표시되는 행열 DP로 표시한다.
DP=(d0 d1…d31 P0 P1…P5)
이 에러정정코드의 각 비트 d0~d31, P0~P5가 본래 취해야할 논리치에 따라, 6행×38열의 해밍행열 H가 결정된다. 이하의 설명으로서는, 해밍행열 H에 있어, 1행째의 j열째의 요소를 h(i,j)로 표시한다. 지금, 해밍행열 H를 일반적으로 다음 식으로 표시한다(i=0, 1, 2…5 : j=0,1,2…37).
[수 3]
에러정정코드에 대응하는 행열 DP와 해밍 H에 의거하여 다음식과 같은 연산에 의해, 신드롬행열 S의 요소 S0~S5가 산출된다.
[수 4]
식 (9)에서 알 수 있는 것과 같이, 신드롬 행열 S의 임의의 요소 Si는, 해밍행열 H의 i행째의 요소 h(i,0)~h(i,37)과 에러정정 코드의 각각의 비트의 논리치 d0~d31, P0~P5에 의거하는 다음식과 같은 연산에 의해 산출된다.
[수 5]
Sj=d0xh(i,0)d1xh(i,1)…d31xh(i,31)P0xh(i,32)…P5xh(i,37)
제21도는, 2를 제수로 하는 승산을 표시하는 진리치표이다. 제21도에서 알수 있는 것과 같이, 2를 제수로 하는 승산에 의하면, 곱하는 수 B가 0이면 곱해지는 수 A에 관계없이 승산결과 (A×B)은 0이 되고, 곱하는 수 B가 수 B가 1이면, 승산결과 (A×B)는 곱해지는 수 A와 같은 논리치로 된다.
그래서, 신드롬행열 S의 i번째의 요소 Si는, 해밍행열 H의 i번째의 요소 j(i0, )~h(i37)중 1인 요소와 각각 2를 제수로서 곱하게 될 에러정정코드의 데이터 모두를, 2를 제수로서 가산하는 것에 의해 얻게 된다.
다음은, 해밍행열 H의 전치행열 HT로 산출된 신드롬행열의 요소 S0~S5에 의거하는 다음식과 같은 연산에 의해, 에러 행열 e의 요소 e0~e37이 산출된다.
[수 6]
식 (10)에서 알 수 있는 것과 같이, 에러행열 e의 임의의 요소 ej는 다음식으로 표시된다.
[수 7]
ey=h(0,j)xS0h(1,j)xS1h(5,j)xS5
즉, 에러행열 e의 j번째의 요소 ej는, 해밍행열 H의 j는, 해밍행열 H의 j열째의 요소 h(0,j)~(5,j)중, 1인 것과 곱해져야 하는, 신드롬행열 S의 요소와, 상기 j열째의 요소 중 0인 것과 곱해져야 하는, 신드롬행열 S의 요소 각각의 역의 논리치에 대하여, 2를 제수로 하는 승산을 하는 것에 의해 얻게 된다.
최후에, 에러정정코드의 각각의 비트데이터 d0~d31, P0~P5와, 산출된 에러벡터(error vector) e의 요소 e0~e31에 의거하는 다음식에 표시되는 것과 같은 연산을 하는 것에 의해, 옳은 에러정정코드 DP의 요소 D0~D31이 산출된다.
[수 8]
산출된 요소 D0~D31이 각각, 외부에 판독되어야 할 데이터의 각각의 비트의 기대치이다.
제10도의 ECC 9는 이와같은 수순으로 외부에 출력되어야 할 32비트의 데이터에 발생한 1비트의 에러을 검출 및 정정한다. 이하, ECC 9의 회로구성에 대해 제11도를 참조하여 설명한다. 논리회로에 있어서, 하이레벨의 전위 및 로우레벨의 전위는 각각, 논리치 1 및 0에 대응한다.
신드롬 신호발생기 90은, 제10도의 정규 메모리셀어레이 1 및 패리티메모리셀어레이 2에서 각각 판독된 32비트의 데이터 d0~d31 및 6비트의 패리티데이터 P0~P5에 대해 소정의 해밍행열 H에 의거하는 연산을 하여, 상기의 신드롬행열 S에 대응하는 6비트의 신드롬 S0~S5 및 그의 반전신호를 발생한다.
구체적으로는, 임의의 신드롬 신호 Sj는 신드롬신호발생기 90에 있어, 상기 식 (9)로 표시되는 연산과 등가인 연산이 논리 회로에 의해 실행되는 것에 의해 얻게 된다.
정정신호발생기 91은, 신드롬신호발생기 90에 의해 발생된 6비트의 신드롬신호 S0~S5 및 그의 반전신호의 합계 12비트의 신호에 상기 소정의 해밍행열에 의거하는 연산을 하는 것에 의해, 상기 에러행열 e의 요소 e0~e31에 대응하는 32비트의 정정신호 e0~e31을 발생한다.
구체적으로는 임의의 정정신호 ej는, 정정신호발생기 91에 있어, 상기 식 (10)으로 표시되는 연산과 등가인 연산이 논리회로에 의해 실행되는 것에 의해 얻게 된다. 제12도는, 32비트의 데이터에 생긴 1비트에 에러을 검출 및 정정하기 위해 사용되는 종래의 해밍행열의 1예이다. 신드롬신호발생기 90 및 정정신호발생기 91은, 이 해밍행열 H에 의해 구성된다. 신드롬신호를 얻기 위해 연산에 있어, 에러정정코드의 각각의 비트의 데이터는, 해밍행열 H의 각 행의 각각의 요소에 대응한다(식 (9)) 참조.)
정정신호를 얻기 위한 연산에 있어서, 정정신호의 각각은, 해밍행열 H각각의 열에 대응하고, 신드롬신호의 각각의 비트의 데이터는, 해밍행열 H에 있어 각 열의 각각의 요소에 대응한다(식 (10)참조).
해밍행열 H로서 제12도에 표시되는 것이 사용되는 경우, 예를들면 신드롬신호 S0은, 해밍행열 H의 1행째의 요소중, 1인 16개의 요소에 각각 대응하는 16개의 데이터 d01~d17, d25~d31, P0를 모두, 2를 제수로서 가산하는 것에 의해 산출된다. 동일하게, 신드롬신호 S1은, 해밍행열 H의 2행째의 요소중 1인 16개의 요소에 각각 대응하는 16개의 데이터를 d11~d25, P1을 모두, 2를 제수로서 가산하는 것에 의해 얻게 된다.
이하 동일하게, 신드롬신호 S2~S5가 각각, 해밍행열 H의 3행째~6행째의 1인 요소에 각각 대응하는 16개의 데이터를 모두, 2를 제수로 하여 가산하는 것에 의해 얻게 된다. 즉, 예를들면 신드롬 신호 S0은, 다음식으로 표시되는 연산에 의해 얻게 된다.
[수 9]
S0=d10d11…d17d25d26…d31P0
2를 제수로 하는 가산은, 논리연산에 있어 배타적논리 합계와 동가이다.
따라서, 신드롬 신호 S0는, 16개의 데이터 d10~d17, d25~d31, P0 모든 배타적 논리합계를 하는 것에 의해 얻게 된다. 동일하게, 다른 5개의 신드롬신호 S1~S5는 각각, 해밍행열 H의 대응하는 행의 요소중 1인 요소에 각각 대응하는 16개의 데이터의 배타적 논리합계를 하는 것에 의해 얻게 된다.
그래서, 신드롬신호발생기 90은, 복수의 EX-OR게이트를 포함한다. 제13도는, 제12도의 해밍행열 H가 사용되는 경우의 신드롬 신호발생기 90의 구성의 1예를 표시하는 회로도이다. 제13도를 참조하여, 신드롬신호발생기 90은, 6개의 신드롬 신호 S0~S5를 각각 발생하는 6개의 회로블록 90-1~90-6을 포함한다.
각 회로블록 90-1~90-6, 8개의 2입력 EX-OR게이트 900a와, 이들 8개의 EX-OR게이트 900a중의 2개의 EX-OR게이트의 출력을 입력으로 받는 4개의 2입력 EX-OR게이트 900b와, 이들 4개의 EX-OR게이트 900b중의 2개의 EX-OR게이트 출력을 입력으로서 받는 2개의 2입력 EX-OR게이트 900c와, 이들 2개의 EX-OR게이트 900c의 출력을 입력으로서 받는 2입력 EX-OR게이트 900d를 포함한다.
6개의 회로블록 90-1~90-6에는 각각, 38개의 데이터 d0~d31, P0~P5중, 신드롬신호 S0~S5를 산출하기 위해 필요한 16개의 데이터가 입력된다.
제14도는, 각 회로블록 90-1~90-6에의 16개의 입력신호 I1~I16을 표형식으로 표시하는 도면이다.
제14도에 표시되는 것과 같이, 회로블록 90-1에의 입력신호 I1~I16, 회로블록 90-2에의 입력신호 I1, I16, …, 회로블록 90-6에의 입력신호 I1~I16은 각각, 제12도의 해밍행열의 1행째의 요소중의 1인 요소에 대응하는 16개의 데이터, 해밍행열 H의 2행째 요소중 1인 요소에 각각 대응하는 16개의 데이터, …, 해밍행열 H의 6행째요소중 1인 요소에 각각 대응하는 16개의 데이터이다.
따라서, 이들 6개의 회로블록 90-1~90-6내의 EX-OR게이트 900D의 출력신호는, 각각, 6개의 신드롬신호 S0~S5로 된다. 각 회로블록 90-1~90-6은, 더욱, EX-OR게이트 940의 출력을 반전하는 인버터 900e를 포함한다.
따라서, 6개의 회로블록 90-1~90-6내의 인버터 900e에서는 각각, 6개의 신드롬신호 S0~S5의 반전신호가 출력된다.
한편, 정정신호 e0~e31의 각각은, 해밍행열 H의 대응하는 열의 요소중, 1인 요소에 대응하는 신드롬신호와, 0인 요소에 대응하는 신드롬신호의 반전신호를 모두, 2를 제수로서 승산하는 것에 의해 얻게 된다. 해밍행열 H로서 제12도에 표시되는 것이 사용되는 경우, 예를들면 정정신호 eO은, 해밍행열 H의 1열째의 요소중, 1인 요소에 각각 대응하는 2개의 신드롬신호 S4 및 S5와, 0인 요소에 각각 대응하는 4개의 신드롬신호 S0~S4의 반전 신호를 모두, 2를 제수로 하여 승산하는 것에 의해 얻게 된다.
즉, 정정신호 e0은 다음식과 같은 연산에 의해 산출된다.
e0=/S0X/S1X/S2X/S3XS4XS5
상기 식에 있어, /S0~/S3은 각각, 신드롬 신호 S0~S3의 반전 신호를 표시한다. 2를 제수로 하는 승산은, 논리연산에 있어 논리적과 등가이다.
따라서, 32개의 정정신호 e0~e31의 각각은, 해밍행열 H의 대응하는 열의 요소중, 1인 요소에 대응하는 신드롬신호와, 0은 요소에 대응하는 신드롬신호의 반전신호와의 합계 6개의 신호의 논리적을 취하는 것에 의해 얻게 된다.
그래서, 정정신호발생기 91은, 각각이 AND게이트와 등가인 동작을 하는 32개의 회로블록을 포함한다.
제15도는, 제12도의 해밍행열이 사용된 경우의 정정신호 발생기 91의 구성의 1예를 표시하는 회로도이다.
제15도를 참조하여, 정정신호발생기 91은, 정정신호 e0~e31을 각각 발생하는 회로블록 91-1~1-32를 포함한다.
이들 32개의 회로블록 91-1~91-32의 각각은, 2개의 3입력 NAND게이트 910a와, 이들 2개의 NAND게이트 910a의 출력을 입력으로서 받는 2입력 NOR게이트 910b를 포함한다.
입력으로서 받는 2입력 NOR게이트 910b를 포함한다. 제16도는, 이들의 회로블록 91-1~91-32의 각각에의 6개의 입력신호 i1~i6을 표형식으로 표시하는 도면이다. 제16도에 표시되는 것과 같이, 회로블록 91-1의 NAND게이트 910a, 회로블록 91-2의 NAND게이트 910a,… , 회로블록 91-32의 NAND게이트 910a에는 각각, 해밍행열 H의 1열째의 1인 요소에 대응하는 신드롬신호와, 0인 요소에 대응하는 신드롬신호의 반전신호와의 합계 6개의 신호, 해밍행열 H의 2열째의 1인 요소에 대응하는 신드롬신호와, 0인 요소에 대응하는 신드롬신호의 반전신호와의 합계 6개의 신호, , 해밍행열 H의 32열째의 1인 요소에 대응하는 신드롬신호와, 0인 요소에 대응하는 신드롬신호의 반전신호와의 합계 6개의 신호가 입력된다.
정정신호발생기 91을 구성하는 회로블록 91-1~91-32의 각각에 있어, 2개의 NAND 게이트 910a의 출력전위가 함께 로우레벨인 경우에만 NOR게이트 910b의 출력전위는 하이레벨로 된다. 이들 2개의 NAND 게이트 910a의 출력전위가 함께 로우레벨로 되는 것은, 이들의 NAND게이트 910a에의 6개의 입력신호 i1~i6이 모두 하이레벨인 경우뿐이다.
즉, 2개의 NAND게이트 910a와 NOR게이트 910b에 의해 구성된 회로는, 6입력 AND게이트와 등가인 동작을 한다.
따라서, 회로블록 91-1의 NOR게이트 910b, 회로블록 91-2의 NOR게이트 910b, …, 회로블록 91-32의 NOR게이트 910b에서는 각각, 정정신호 e0, e1, …, e31이 출력된다.
재차 제11도를 참조하여, 데이터정정회로 92는, 정정신호 발생기 91에 의해 발생된 정정신호 e0~e31과 정규 메모리셀어레이 1에서 판독된 32비트의 데이트 d0~d31에, 식 (11)로 표시되는 연산을 한다.
제17도는, 제12도의 해밍행열이 사용된 경우의 데이터정정회로 92의 구성을 표시하는 회로도이다. 제17도를 참조하여, 데이터정정회로 92는, 32개의 2입력 EX-OR게이트 920을 포함한다.
EX-OR게이트 92-1, 92-2, …, 92-32에는, 각각, 정정신호 e0 및 데이터신호 d0, 정정신호 e1 및 데이터신호 d1, …, 정정신호 e31 및 데이터신호 d31이 입력된다.
따라서, 이들 32개의 EX-OR게이트 92-1, 92-2, …, 92-32의 출력단에는 각각, 신호 e0 및 d0의 배타적논리합계신호, 신호 e1 및 d1의 배타적논리합계신호, …, 신호 e31 및 d31의 배타적 논리합계신호가 표시된다.
즉, 32개의 데이터신호 d0~d31은 각각, 기대치와 다를 경우에는, 반전되어, 그것이 기대치와 일치하는 경우에는 반전되지 않고, EX-OR게이트 92-1~92~32의 출력단에 나타났다.
따라서, 이들 32개의 EX-OR게이트 92-1~92-32에서는, 정정후의 32비트의 데이터신호 D0~D31이 출력된다.
재차 도면 11을 참조하여, 데이터세렉터 93은, 세렉터신호 SE에 의해 제어되어, 데이터정정회로 92에서 출력된 정정후의 데이터신호 D0~D31중의 16비트의 신호 D0~D15와, 나머지 16비트의 신호 D16~D31중 어느 한쪽을 선택하여 출력한다.
제18도는, 데이터세렉터 93의 구성의 1예를 표시하는 회로도이다.
제18도를 참조하여, 데이터세렉터 93은, 16개의 회로블록 93-1~93-16을 포함한다.
이들의 회로블록 93-1~93-16의 각각은, 2개의 9채널 MOS트랜지스터 930a 및 930c와, 2개의 N채널 MOS트랜지스터 930d를 포함한다.
트랜지스터 930a와 트랜지스터 930b와는 서로 병렬로 접속된다. 동일하게, 트랜지스터 930c와 트랜지스터 930d와도 서로 병렬로 접속된다.
회로블록 93-1의 트랜지스터 930a 및 930b, 회로블록 93-2의 트랜지스터 930a 및 930b, …, 회로블록 93-16의 트랜지스터 930a 및 930b는 각각, 정정후의 데이터신호 D0, D1, …, D15의 트랜스퍼(transfer)게이트로서 설치된다.
동일하게, 회로블록 93-1의 트랜지스터 930c 및 930d, 회로블록 93-2의 트랜지스터 930c 및 930d, …, 회로블록 93-16의 트랜지스터 930c 및 930d는 각각, 정정후의 데이터신호 D16, D17,… , D31의 트랜스퍼게이트로서 설치된다.
세렉터신호 SE와 그의 반전신호는 각각, 트랜지스터 930b 및 930c의 게이트와, 트랜지스터 930a 및 930d의 게이트에 제공된다.
세렉터신호 SE의 전위가 하이레벨이면, 트랜지스터 930a 및 930b가 도통하고, 트랜지스터 930c 및 930d가 비도통상태로 된다.
따라서, 16개의 회로블록 93-1~93-16에서는 각각, 정정후의 32비트의 데이터신호 D0~D31중의 하위 16비트의 데이터신호 D0~D15가 출력된다.
역으로, 세렉터신호 SE의 전위가 로울레벨이면, 트랜지스터 930c 및 930d가 도통하고, 트랜지스터 930a 및 930b가 비도통 상태로 된다.
따라서, 16개의 회로블록 93-1~93-16에서는 각각, 32비트의 데이터신호 D0~D31중의 상위 16비트의 데이터신호 D16~D31이 출력된다.
제19도는, 세렉터신호 SE 및 그의 반전신호의 전위의 논리레벨과, 데이터세렉터 93의 출력신호 O0~O15와의 관계를 표형식으로 표시하는 도면이다.
이와같이, 세렉터신호 SE의 논리레벨을 전환하는 것에 의해, 정정후의 데이터신호 D0~D31중의 하위 16비트 또는, 상위 16비트중 어느 데이터신호를 선택적으로 출력할 수가 있다. 세렉터신호 SE 및 그의 반전신호는, 예를들면, 제10도의 제어회로 6에 의해 발생된다.
이상과 같이, 종래의 ECC는, 메모리셀어레이에서 동시에 판독되는 데이터중의 패리티데이터의 수와 동수의 회로블록에 의해 구성되는 신드롬신호발생기와, 이 판독된 데이터중 패리티데이터 이외의 데이터수와 동수의 회로블록에 의해 각각 구성되는 정정신호발생기 및 데이터정정회로를 포함한다. 신드롬신호발생기를 구성하는 회로블록의 각각은, 많은 입력신호선을 필요로 하고, 또한 많은 논리게이트회로를 포함한다. 이 때문에, 신드롬신호발생기의 회로규모는 크다.
정정신호발생기를 구성하는 회로블록 및 데이터정정회로를 구성하는 각 회로블록은, 어느것이고, 신드롬신호발생기를 구성하는 각 회로블록만큼 많은 입력신호선을 필요로 하지 않는다.
그러나, 정정신호발생기를 구성하는 회로블록수 및 데이터정정회로를 구성하는 회로블록의 수는, 신드롬신호발생기를 구성하는 회로블록수보다 훨씬 많다.
이 때문에, 정정신호발생기 및 데이터정정회로의 어느 회로규모도 크다.
그래서, 에러정정기능을 가지는 종래의 반도체기억장치는, ECC의 반도체기판상에 있어 점유면적이 과대하게 되어, 메모리셀어레이를 위해 사용되는 반도체기판상의 면적이 작게 된다고 하는 문제가 있었다.
예를들면, 제10도에 표시되는 마스크 ROM의 경우, ECC 9는, 각각이, 16개의 입력신호선과 15개의 EX-OR게이트를 필요로 하는 6개의 회로블록 90-1~90-6(제13도 참조)과, 6개의 입력신호선과 2개의 NAND게이트와 1개의 NOR게이트를 필요로 하는, 32개의 회로블록 91-1~91-32(제15도 참조)와, 각각이, 2개의 입력신호선을 필요로 하는 32개의 EX-OR게이트 92-1~92-32를 포함한다.
그래서, 본 발명의 목적은, 상기와 같은 문제점을 해결하고, 회로규모가 삭감된 ECC를 가지는 반도체기억장치를 제공하는 것이다.
본 발명에 관한 반도체기억장치는, 외부에 판독되어야 할 데이터와 이 데이터에 따른 복수의 패리티데이터가 격납된 메모리셀어레이와, 메모리셀어레이에서, 외부에 판독되어할 복수의 데이터 및 복수의 패리티데이터를 판독하는 판독수단과, 판독수단에 의해 메모리셀어레이에서 판독된 데이터에, 소정의 해밍행열에 따른 연산을 시행하여, 메모리셀어레이에서 판독된 데이터의 에러를 정정하는 에러정정수단을 구비한다.
상기 목적을 달성하기 위해, 외부에 판독되어야 할 복수의 데이터는 동수의 데이터를 포함하는 제1 및 제 2 의 그룹으로 분할되어, 메모리셀어레이에서 판독된 제1 및 제 2 의 그룹의 데이터에 의거하여 복수의 신드롬신호를 작성하는 신드롬신호작성수단과, 메모리셀어레이에서 판독된 제1 제 2 의 그룹을 순차 선택하는 그룹선택수단과, 신드롬신호수단에 의해 작성된 신드롬신호에 의거하여, 그룹선택수단의 선택동기하여 제 1 의 그룹의 데이터를 위한 정정신호와 제 2 의 그룹의 데이터를 위한 정정신호를 순차 작성하는 정정신호작성수단과, 정정신호작성수단에 의해 작성된 정정신호에 의거하여, 그룹선택수단에 의해 선택된 데이터의 에러를 정정하는 수단으로 포함한다.
바람직하게는, 신드롬신호작성수단은, 복수의 신드롬신호의 반전신호를 더욱 작성하고, 정정신호작성수단은, 복수의 신드롬신호 및 그의 반전신호중, 제 1 그룹의 데이터를 위해 필요한 신호 및 제 2 그룹의 데이터를 위해 필요한 신호를 순차선택하는 신호선택수단과, 이 신호선택수단에 의해 선택된 신호에 응답하여 정정신호를 작성하는 작성신호를 포함한다.
상기와 같이, 본 발명에 관한 반도체기억장치에 포함되는 에러정정수단에 있어, 정정신호발생수단, 메모리셀어레이에서 판독된 패리티데이터 이외의 복수데이터의 반수의 데이터를 위한 정정신호와, 나머지 반수의 데이터를 위한 정정신호를 전환하여 발생하고, 또한 데이터정정수단은, 메모리셀어레이에서 판독된 복수의 데이터(패리티데이터를 제외)의 반수의 데이터와 나머지 반수의 데이터에 대한 에러정정을 전환하여 행한다.
이 때문에, 정정신호작성수단은, 외부에 판독되어야할 복수의 데이터의 반수데이터를 위한 정정신호를 작성하는 회로와 동정도의 규모의 회로에 의해 실현가능하게 되어, 또한 데이터정정수단은, 외부에 판독되어야할 복수데이터의 반수의 데이터의 에러를, 그의 데이터에 대응하는 정정신호에 의거하여 정정하는 회로와 같은 정도의 규모의 회로에 의해 실현가능하게 된다.
[실시예]
제 1 도는, 본 발명의 1실시예의 마스크 ROM의 전체구성을 도시하는 개략블록도이다.
이 마스크 ROM의 전체구성은, 제10도에 표시되는 종래의 것과 같다.
그러나, 본 실시예의 마스크 ROM의 ECC 11은, 종래와 다른 구성을 가진다.
제12도는 제 1 도의 ECC 11의 구성을 표시하는 개략블록도이다.
제 2 도를 참조하여, 본 실시예의 ECC와 종래의 것과 중요한 상이점은, 데이터세렉터 113이 데이터정정회로 112의 전단에 설치되어 있는 점 및 정정신호발생기 111의 출력신호가 16비트의 신호 e0~e15 또는 e15~e31인 점이다.
이와같은 구성은, ECC 11에 있어 에러정정을 위해 일련의 연산이, 예를들면 제 3 도에 표시되는 해밍행열 H에 따라 행하여지는 것에 의해 실현된다.
제 3 도는, 제 2 도에 표시되는 구성을 가능하게 하는 해밍행열의 1예를 표시하는 도면이다.
제 3 도를 참조하여, 이 해밍행열 H는, 종래의 ECC에 있어 일련의 연산이 따르는 해밍행열에는 없는 규칙성이 있다. 즉, 이 해밍행열 H에 있어, 32열째까지의 각 열의 6개의 요소중의 2개 요소치만이 각각, 이 열보다도 16열전의 열에 대응하는 2개의 요소의 값과 다르다.
예를들면, 1열째의 요소와 17열재의 요소를 비교하면, 1행째 및 2행째의 요소의 값이, 1열째에 있어서는 0인데 대해, 17열째에 있어서는 1이다.
한편, 3행째 내지 6행째의 요소는, 1열째와 17열째에서 일치한다.
동일하게, 예를들면 4열째와 20열째를 비교하면, 2행째 및 6행째의 요소의 값이, 4열째에 있어서는 0인데 대해 20열째에 있어서는 1이다.
한편, 1행째 및 3행째 내지 5행째의 요소는 모두, 4열째와 20열째에서 일치한다.
본 실시예의 ECC에 있어서 에러정정의 원리는, 종래와 아주 동일하다.
따라서, 제 2 도의 신드롬신호발생기 110은, 6개의 신드롬신호 S0, S1, …, S5를 각각 32비트의 데이터신호 d0~d31 및 6비트의 패리티데이터 P0~P5중, 해밍행열 H의 1행째의 1인 요소에 대응하는 것의 배타적논리 합계, …,해밍행열 H의 6행째의 1인 요소에 대응하는 것의 배타적논리합계를 취하는 것에 의해 발생한다.
제 4 도는, 신드롬신호발생기 110의 구성을 표시하는 회로도이다. 제 4 도를 참조하여, 신드롬신호발생기 110은, 6개의 신드롬신호 S0~S5를 각각 발생하기 위한 6개의 회로블록 110-1~110-6을 포함한다.
이들 6개의 회로블록 110-1~110-6은 각각, 제13도에 표시되는 종래의 ECC에 포함되는 신드롬신호발생기를 구성하는 6개의 회로블록 90-1~90-6과 같은 구성을 하고, 신드롬신호 S0~S6의 반전신호도 출력한다.
단, 본 실시예에서 사용되는 해밍행열(제 3 도)과 종래 사용된 해밍행열(제12도)과는 다르므로, 각 회로블록 110-1~110-6에 입력되는 16개의 신호 I1~I16은 제13도에 표시되는 것과는 다르다.
예를들면, 신드롬신호 S0은, 해밍행열 H(제 3 도)의 1행째의 요소중 1인 16개의 요소에 각각 대응하는 16개의 데이터 d10~d12, d15~d18, d21~d24, d26~d28, d31, P0 모든 배타적논리합계를 하는 것에 의해 얻게된다.
다음 식은, 신드롬신호 S0를 산출하기 위해서의 연산을 표시한다.
[수 10]
S0=d10d11d12d15d16d17d18d21d22d23d24d26d27d28d31P0
제5도는, 제4도의 각 회로블록 110-1~110-6에 입력신호 I1~I16을 표시하는 도면이다.
재차 제 2 도를 참조하여, 정정신호발생기 111은, 데이터세렉터 113을 제어하는 세렉터신호 SE와 같은 신호에 의해 제어되어, 신드롬신호 S0~S5 및 그의 반전신호에 의거하여, 32비트의 정정신호 e0~e31중의 하위 16비트의 신호 e0~e15 또는 상위 16비트의 신호 e16~e31중의 어느 한쪽을 발생한다.
제 6 도는, 정정신호발생기 111의 구성을 표시하는 회로도이다. 제 6 도를 참조하여, 정정신호발생기 111은, 종래의 정정신호발생기(제15도)를 구성하는 회로블록의 반수인 16개의 회로블록 111-1~111-16에 의해 구성된다.
각 회로블록 111-1~111-16은, 종래의 정정신호발생기를 구성하는 각 회로블록과 다르고, 2개의 3입력 NAND게이트 110a와, 그 입력 NOR게이트 110b에 가하여, 4개의 채널 MOS트랜지스터 110c, 110e, 110g, 110i와, 4개의 채널 MOS트랜지스터 110d, 110f, 110h, 110j를 포함한다.
세렉터신호 SE와 그의 반전신호는 각각, 트랜지스터 110d, 110e, 110h 및 110i의 게이트와, 트랜지스터 110c, 110f, 110g 및 110j의 게이트에 제공된다.
32개의 정정신호 e0, e1, …, e31은 각각, 해밍행열 H의, 1열째의 요소중 1인 요소에 대응하는 신드롬신호와, 0인 요소에 대응하는 신드롬신호의 반전신호와의 합계 6개의 신호의 논리적, 해밍행열 H의 2열째 요소중 1인 요소에 대응하는 신드롬신호와, 0인 요소에 대응하는 신드롬신호의 반전신호와의 합계 6개 신호, …, 해밍행열 H의 32열째의 요소중 1인 요소의 신드롬신호와, 0인 요소의 신드롬신호의 반전신호와의 합계 6개 신호의 논리적을 취하는 것에 의해 얻게 된다.
본 실시예에서는, 해밍행열 H에 상기와 같은 규칙성이 있다. 이 때문에 정정신호 e16을 산출하기 위해 필요한 신호, 정정신호 e17을 산출하기 위해 필요한 신호, …, 정정신호 e31을 산출하기 위해 필요한 신호는 각각, 정정신호 e0을 산출하기 위해 필요한 신호중의 2개신호의 논리치를 반전되게 한 것, 정정신호 e1을 산출하기 위해 필요한 신호중의 2개신호의 논리치를 반전되게 한 것,… , 정정신호 e15를 산출하기 위해 필요한 신호중의 2개신호의 논리치를 반전되게함에 일치한다. 예를들면, 제 3 도를 참조하여, 정정신호 e0는, 해밍행열 H의 1열째의 요소중 1인 요소에 각각 대응하는 2개의 신드롬신호 S4, S5와, 0인 요소에 각각 대응하는 4개의 신드롬신호 S0~S3의 반전신호와의 합계 6개신호의 논리치를 얻는 것에 의해 얻게 된다.
한편, 정정신호 e16은, 17열째의 요소중 1인 요소에 각각 대응하는 4개의 신드롬신호 S0, S2, S4, S5와, 0인 요소에 각각 대응하는 2개의 신드롬신호 S2, S3과의 합계 6개신호의 논리적을 취하는 것에 의해 얻게 된다.
다음 식은, 정정신호 e0 및 e16을 산출하기 위한 연산을 표시한다.
e0=/S0X/S1X/S2X/S3XS4XS5
e16=S1XS1X/S2X/S3XS4XS5
상기 식에서 알 수 있는 바와 같이, 예를들면 정정신호 e16을 얻기 위해서는, 정정 e0을 얻는데 필요한 6개의 신드롬신호중의 2개/S0,/S1의 반전신호 S0, S1과, 나머지 4개의 신드롬신호가 필요하다.
그래서, 제 6 도를 참조하여, 정정신호 e0 및 e16을 발생하기 위해서의 회로블록 111-1에는, 정정신호 e0을 산출하기 위해 신드롬신호가 정정신호 16을 산출하기 위해 신드롬신호에 포함되는 합계 8개신호가 입력된다.
회로블록 111-1에 있어서, 트랜지스터 110c 및 110d와, 트랜지스터 110g 및 110h는 각각, 정정신호 e0을 산출하기 위해 신드롬신호중 정정신호 e16을 산출하기 위해 신드롬신호에는 포함되지 않는 2개의 신호(신드롬신호 S0 및 S1의 반전신호)의 한쪽 및 다른쪽의 트랜스미션게이트로서 설치된다.
동일하게, 트랜지스터 110e 및 110f와, 트랜지스터 110i 및 110j는 각각, 정정신호 e16을 산출하기 위해 신드롬신호중, 정정신호 e16을 산출하기 위해 신드롬신호에 포함되지 않는 2개의 신호 S0, S1의 한쪽 및 다른쪽의 트랜스미션 게이트로서 배설된다.
트랜지스터 110c 및 110d의 출력과, 트랜지스터 110e 및 110f의 출력은 한쪽의 NAND게이트 110a와 같은 입력단에 제공되어, 트랜지스터 110g 및 110h의 출력신호와, 트랜지스터 110i 및 110j의 출력신호와는 다른쪽의 NAND게이트 110a의 같은 입력단에 제공된다.
세렉터신호 SE의 전위가 하이레벨이면, 트랜지스터 110c, 110d, 110g 및 110h가 도통하고, 트랜지스터 110e, 110f, 110i 및 110j가 비도통상태로 된다.
따라서, 회로블록 111-1에 있어, NANS게이트 110a에는, 정정신호 e0을 산출하기 위해 필요한 6개의 신드롬신호가 제공되므로, NOR게이트 110d의 출력신호는 정정신호 e0로 된다.
역으로, 세렉터신호 SE의 전위가 로우레벨이면, 트랜지스터 110e, 110f, 110i 및 110g가 도통하고, 트랜지스터 110c, 110d, 110g 및 110h가 비도통상태가 된다.
따라서, 회로블록 111-1에 있어, NAND게이트 110a에의 입력신호 e16을 산출하기 위해 필요한 6개의 신드롬신호로 되므로, NOR게이트 110b의 출력신호는 정정신호 e16으로 된다. 타회로블록 111-2, 111-3, …, 111-16에는 각각, 정정신호 e1 및 e17을 산출하기 위해 필요한 모든 신드롬신호, 정정신호 e2 및 e18을 산출하기 위해 필요한 모든 신드롬신호, …, 정정신호 e15 및 e31을 산출하기 위해 필요한 모든 신드롬신호가 입력된다.
제7도는, 각 회로블록 111-1~111-16에의 8개의 입력신호 i1~i6,/i1~/i16(/i1~i6은, 신호 i1~i6의 반전회로를 표시한다.)을 표형식으로 표시하는 도면이다.
타회로블록 111-2~111-16도, 회로블록 111-1과 동일하게 구성된다.
즉, K를 1~16의 임의의 정수로 하면, 회로블록 111-K에 있어, 트랜지스터 110c 및 110d와, 트랜지스터 110g 및 110h와는 각각, 정정신호 e(K-1)를 산출하기 위해, 신드롬신호중, 정정신호 e(K+15)를 산출하기 위해 신드롬신호에 포함되지 않는 2개의 신드롬을 위한 트랜스퍼게이트로서 배설된다.
역으로, 트랜지스터 110a 및 110y와, 트랜지스터 110i 및 110j와는 각각, 정정신호 e(K+15)를 산출하기 위해 신드롬신호중, 정정신호 e(K-1)를 산출하기 위해 신드롬신호에 포함되지 않는 2개신호의 트랜스퍼게이트로서 배설된다.
2개의 NAND게이트 110a의 합계 6개의 입력단중의 4개에는, 정정신호 e(K-1)를 산출하기 위해 신드롬신호와, 정정신호 e(K+5)를 산출하기 위한 신드롬신호에 공통으로 포함되는 4개의 신호가 공통으로 제공된다.
나머지 2개의 입력단중의 한쪽에는, 트랜지스터 110c, 110d, 110e 및 110f의 출력신호가 공통으로 제공되어, 다른쪽에는, 트랜지스터 110g, 110f, 110i 및 110j의 출력신호가 공통으로 제공된다.
따라서, 회로블록 111-2~110-16은, 각각 세렉터신호 SE가 하이레벨일때, 정정신호 e6~e15를 출력하고, 세렉터신호 SE가 로우레벨일때, 정정신호 e16~e31을 출력한다.
재차 제 2 도를 참조하여, 데이터세렉터 113은, 세렉터신호 SE에 의해 제어되어, 32비트의 데이터신호 d0~d31의 하위 16비트의 신호 d0~d15 또는 상위 16비트의 신호 s16~d31중의 어느 한쪽을 데이터정정회로 112에 제공한다.
제 8 도는, 데이터세렉터 113의 구성을 표시하는 회로도이다.
제 8 도를 참조하여, 데이터세렉터 113은, 16개의 회로블록 113-1~113-16을 포함한다.
이들 16개의 회로블록 113-1~113-16의 각각은, 2개의 P채널 MOS트랜지스터 113a, 113c와, 2개의 N채널 MOS트랜지스터 113b, 113d를 포함한다.
세렉터신호 SE 및 그의 반전신호는 각각, 트랜지스터 113b 및 113c의 게이트와, 트랜지스터 113a 및 113d의 게이트에 제공된다.
회로블록 113-1, 113-2, …, 113-16에는 각각, 데이터 d0 및 이 데이터보다도 16비트 상위의 데이터 d16, 데이터 d1 및 이 데이터보다도 16비트 상위의 데이터 d17, …, 데이터 d15 및 이 데이터 15보다도 16비트 상위의 데이터 d31이 입력된다. 각 회로블록 113-1~113-16에 있어, 트랜지스터 113a 및 113b와, 트랜지스터 113c 및 113d는 각각, 그 회로블록에의 2개의 입력데이터중, 하위비트 데이터의 트랜스퍼게이트 및 상위 비트의 트랜스퍼게이트로서 배설된다.
따라서, 세렉터신호 SE가 하이레벨이면, 각 회로블록 113-1~113-16에 있어서, 하위비트의 입력데이터에 대응하여 배설된 트랜스퍼게이트 113a, 113b가 도통하고, 세렉터신호 SE가 로우레벨이면, 각 회로블록 113-1~113-16에 있어서, 상위비트의 입력데이터에 대응하여 배설된 트랜스퍼게이트 133c, 113d가 도통한다.
이 결과, 16개의 회로블록 113-1~113-16에서는 각각, 세렉터신호 SE가 하이레벨일때, 하위 16비트의 데이터신호 d0~d15가 출력되어, 세렉터신호 SE가 로우레벨일때, 상위 16비트의 데이터신호 d16~d31이 출력된다.
재차 제 2 도를 참조하여, 데이터정정회로 112는, 데이터세렉터 113에서 출력된 16개의 데이터신호 d0~d15(또는 d16~d31)의 각각과, 정정신호발생기 111에 의해 발생된 16개의 정정신호 e0~e15(또는 e16~e31)의 각각과의 배타적논리합계를 취하는 것에 의해, 데이터세렉터 113에서의 16개의 데이터신호의 에러를 정정한다.
제 9 도는, 데이터정정회로 112의 구성을 표시하는 회로도이다.
제 9 도를 참조하여, 데이터정정회로 112는, 16개의 2입력 EX-OR게이트 112-1~112-6을 포함한다.
이들의 EX-OR게이트 112-1, 112-2, …, 112-16에는 각각, 데이터세렉터 113의 회로블록 113-1의 출력신호 d0(d16) 및 정정신호발생기 11의 회로블록 111-1의 출력신호 e0(e16), 데이터세렉터 113의 회로블록 113-2의 출력신호 d1(d17) 및 정정신호발생기 111의 회로블록 111-2의 출력신호 e1(e17), …, 데이터세렉터 113의 회로블록 113-16의 출력신호 e15(d31) 및 정정신호발생기 111의 회로블록 111-16의 출력신호 e15(e31)가 입력된다.
한편, 데이터세렉터 113의 회로블록 113-1~113-16과, 정정신호발생기 111의 회로블록 111-1~111-16은, 세렉터신호 SE가 하이레벨일때, 데이터신호 d0~d15와, 정정신호 e0~e15를 각각 출력하고, 세렉터신호 SE가 로우레벨일때, 데이터신호 d16~d31과, 정정신호 d16~d31을 각각 출력한다.
따라서, 세렉터신호 SE가 하이레벨일때, EX-OR게이트 112-1~112-16의 출력신호는, 상위 16비트의 데이터신호 d0~d15의 각각과, 이들에 대응하는 정정신호 e0~e15의 배타적논리합계 신호로 된다.
역으로, 데이터세렉터신호 SE가 로우레벨일때, EX-OR게이트 112-1~112-16의 출력신호는, 상위 16비트의 데이터신호 d16~d31의 각각과, 이들에 대응하는 정정신호 e16~e31과의 배타적논리합계신호로 된다.
즉, 하위 16비트의 데이터신호 d0~d15는, 이들의 어느 1비트의 데이터에 에러가 있으면, 그 에러가 정정되어, 에러가 없으면 그대로, EX-OR게이트 112-1~112-16의 출력단에, 세렉터신호 SE가 하이레벨일때에 나타난다.
한편, 상위 16비트의 데이터신호 d16~d31은, 이들에 1비트의 에러가 포함되어 있으면, 이 에러가 정정되어, 에러가 없으면 그대로, EX-OR게이트 112-1~112-16의 출력단에, 세렉터신호 SE가 로우레벨일때 발생한다.
그래서, 세렉터신호 SE의 논리레벨을 종래와 동일하게 전환하는 것에 의해, 본 실시예의 ECC 11에서, 정정후의 하위 16비트의 데이터신호 d0~d15와, 정정후의 상위 16비트의 데이터신호 d16~d31이 선택적으로 출력된다.
이상과 같이, 본 실시예에서는, 에러를 검출 및 정정되어야 할 32개의 데이터가 2개의 그룹으로 분할되어, 이 2개 그룹에 대한 에러정정이 동일의 회로에 의해 행하여진다.
이 때문에, 정정신호발생기를 구성하는 회로블록수(16개) 및 데이터정정회로를 구성하는 EX-OR게이트수(16개)가 각각, 종래(32개)의 반으로 되므로, 정정신호발생기의 구성소자수, 데이터정정회로에의 입력신호선수 및 데이터정정회로의 구성소자수가 대폭으로 삭감된다.
이 결과, 본 실시예의 ECC 11의 회로규모는 종래보다도 대폭으로 저감된다.
본 실시예와 동일의 구성의 ECC는, 제 3 도에 표시되는 해밍행열 H에 의해서만 가능하게 되는 것은 아니고, 제 3 도의 해밍행열 H의 같은 규칙성을 가지는 해밍행열이면 어떠한 것에 의해서도 가능하게 된다.
예를들면, 제 3 도의 해밍행열 H의 1열째에서 32열째에 있어 열의 순서가 교체된 행열의 각각은, 실시예의 ECC 구성을 가능케하는 타의 해밍행열의 1예이다.
즉, 메모리셀어레이에서 ECC에 동시에 판독되는 38개의 데이터 d0~d31, P0~P5중 패리티데이터 P0~P5를 제외하는 d0~d31에 대응하는 32열이, 일정수 M의 요소만이 서로 다른 2열을 1쌍으로 하는 16쌍에 의해 구성되는 것과 같은, 해밍행열이 사용되면, 에러를 정정되게 하여야 할 32비트의 데이터 d0~d31중의 16비트분의 데이터의 에러정정과 나머지 16비트분의 에러정정이 같은 회로에 의해 실현가능하게 된다.
물론, 정정신호발생기 111을 구성하는 회로블록 111-1~111-16에 있어 트랜스퍼게이트는, 상기 일정수 M에 따른 수, 즉 2M개 필요하게 된다.
일반적으로, ECC의 구성소자의 반조체기판상에 있어 레이아웃 등을 고려하여, 반도체기억장치에 사용되는 ECC가 따른 해밍행열은, 각각의 열이 서로 독립일것, 모든 행에 있어 1인 요소의 수가 같고, 또한 짝수인 것이 요구된다.
상기 실시예에서는, 32비트의 데이터에 생긴 1비트의 에러를 검출 및 정정하는ECC 구성에 대해서 설명하였으나, 32비트 이외의 비트길이의 데이터에 생긴 1비트의에러를 검출 및 정정하기 위해 본 발명이 적용되는 것도 물론 가능하다.
또, 상기 실시예에서는, 내부에서 판독된 데이터가 2회로 나누어 외부에 출력되었으나, 내부에서의 판독데이터수와, 외부에서의 출력데이터수가 동일한 마스크 ROM에 본 발명이 적용되어도 동일한 효과를 얻게 된다.
본 발명은, EEPROM등의, 제조후에 데이터를 기록할 수가 있는 반도체기억장치에도 적용가능하다.
이상과 같이, 본 발명에 의하면, 종래보다도 작은 회로규모의 ECC에 의해, 종래와 같은 성능의 에러정정이 행하여지므로 반도체기억장치에 있어 ECC의 점유면적이 대폭으로 삭감된다.

Claims (17)

  1. 그안에 저장된 복수의 데이터와 복수의 패리티를 가지는 메모리셀어레이와, 상기 메모리셀어레이에서 상기 복수의 데이터와 상기 복수의 패리티데이터를 판독하기 위한 수단과, 상기 판독수단에 의해 판독된 상기 복수의 데이터와 상기 복수의 패리티데이터에 대한 소정의 해밍매트릭스에 따라 동작을 인가함에 의해 상기 복수 데이터의 에러를 정정하기 위한 에러정정수단을 구비하고, 상기 복수의 데이터는 제 1 그룹과 제 2 그룹으로 동일하게 분할되며, 상기 에러정정수단은 상기 판독수단에 의해 상기 메모리셀어레이에서 판독된 상기 복수의 패리티데이터와 상기 제1 및 제 2 그룹데이터에 의거해서 복수의 신드롬신호를 발생하기 위한 신드롬신호 발생수단과, 상기 판독수단에 의해 상기 메모리셀어레이로부터 판독된 상기 제1 및 제 2 그룹의 데이터를 순차로 선택하기위한 그룹선택수단과, 상기 신드롬신호 발생수단에 의해 발생된 상기 신드롬신호에 응답해서 상기 그룹선택수단 동작을 선택하는 것에 의해 동기로 상기 제 2 그룹데이터용 정정신호와 상기 제 1 그룹데이터용 정정신호를 순차로 발생하기 위한 정정신호 발생수단과, 상기 정정신호 발생수단에 의해 발생된 정정신호에 따라 상기 그룹선택수단에 의해 선택된 그룹데이터에서 에러를 정정하기 위한 데이터 정정수단을 포함하는 반도체 메모리장치.
  2. 제 1 항에 있어서, 상기 신드롬신호 발생수단은 상기 복수의 신드롬신호의 반전신호를 부가로 발생하고, 상기 정정신호 발생수단은 상기 복수의 신드롬신호와 반전신호로부터 상기 제 2 그룹용 신호 필요와 상기 제 1 그룹데이터용 신호 필요를 순차로 선택하기 위한 신호선택수단과, 상기 신호선택수단에 의해 선택된 신호에 응답해서 상기 정정신호를 발생하기 위한 정정신호 발생수단을 포함하는 반도체 메모리장치.
  3. 제 2 항에 있어서, 상기 소정의 해밍매트릭스는 상기 복수의 신드롬신호에 해당하는 복수의 열로 배열되는 복수의 소자를 포함하고, 상기 복수의 소자는 상기 제 1 그룹데이터에 해당하는 복수의 제 1 행과 제 2 그룹데이터에 해당하는 복수의 제 2 행과 제 3 그룹데이터에 해당하는 복수의 제 3 행에 배열되고, 상기 복수의 제 1 행과 상기 복수의 제 2 행은 서로 1 대 1로 통신되는 복수의 쌍의 각각은 형성하며, 상기 쌍의 각각으로 형성되는 제 1 행과 제 2 행은 동일값의 구성소자를 포함하는 제 1 열과 다른값의 소자를 포함하는 제 2 열을 포함하고, 제 2 열의 수는 상기 복수쌍 모두와 같은 반도체 메모리장치.
  4. 제 3 항에 있어서, 상기 소자의 각각은 그것이 배열된 열에 해당하는 신드롬신호와 0과 1의 값으로 반전되는 신호를 각각 나타내고, 상기 소자의 각각은 그것이 배열된 행에 해당하는 신드롬신호와 0과 1의 값으로 반전되는 신호를 각각 나타내는 반도체 메모리장치.
  5. 제 4 항에 있어서, 상기 신호선택수단은 해당 상기 복수의 쌍에 설치된 복수의 제 1 신호 스위치수단을 포함하고, 상기 복수의 제 1 신호 스위치수단의 각각은 해당쌍에 포함되는 제 1 행의 소자에서 상기 제 2 열에 배열된 소자에 의해 나타내는 반전신호 또는 신드롬신호와 해당쌍에 포함되는 제 2 행의 소자에서 상기 제 2 열에 배열된 소자에 의해 나타내는 반전신호 또는 신드롬신호를 공급하고, 상기 정정신호 발생수단은 해당 복수쌍에 설치된 복수의 제 1 논리수단을 포함하고, 상기 복수의 제 1 논리회로수단의 각각은 해당쌍에 포함되는 제 1 행의 소자에서 상기 제 1 열에 배열된 소자에 의해 나타내는 반전신호 또는 신드롬신호에서 논리곱신호와 해당 제 1 신호 스위치수단의 출력을 발생하는 반도체 메모리회로.
  6. 제 5 항에 있어서, 상기 그룹선택수단은 해당 상기 복수쌍에 설치된 복수의 제 2 신호 스위치수단을 포함하고, 상기 복수의 제 2 신호 스위치수단의 각각은 해당쌍을 포함하는 제 1 행에 해당하는 데이터와 해당쌍을 포함하는 제 2 행에 해당하는 데이터를 선택적으로 공급하는 반도체 메모리장치.
  7. 제 6 항에 있어서, 상기 복수의 제 1 신호 스위치수단과 상기 복수의 제 2 신호 스위치수단은 하나의 유닛에서 제어되는 반도체 메모리장치.
  8. 제 7 항에 있어서, 상기 데이터 정정수단은 해당 상기 복수쌍에 설치된 복수의 제 3 논리수단을 포함하고, 상기 복수의 제 3 논리수단의 각각은 해당 제 1 논리회로수단의 출력신호와 해당 제 2 신호 스위치수단의 출력신호에서 EX-OR신호를 발생하는 반도체 메모리장치.
  9. 제8항에 있어서, 상기 제 2 신호 스위치수단의 각각은 해당 제 1 항에 해당하는 데이터를 해당 제 3 논리회로수단으로 전송하기 위한 제 3 스위치수단과 해당 제 2 행에 해당하는 데이터를 해당 제 3 논리회로수단으로 전송하기 위한 제 4 스위치수단을 포함하고, 상기 제3 및 제 4 스위치수단은 교대로 활성화하는 반도체 메모리장치.
  10. 제 9 항에 있어서, 상기 제3 스위치수단은 해당 데이터를 수신하기 위한 제 1 도전단자와 해당 제 3 논리회로수단에 접속되는 제 2 도전단자와, 상기 제 2 제어신호를 수신하기 위한 제어단자를 구비하는 제 3 필드 효과 반도체장치를 포함하고, 상기 제 4 스위치수단은 해당 데이터를 수신하기 위한 제 1 전도단자와, 해당 제 3 논리수단에 접속되는 제 2 전도단자와, 상기 제 2 제어신호를 수신하기 위한 제어단자를 구비하는 제 4 필드효과 반도체장치를 포함하는 반도체 메모리장치.
  11. 제 5 항에 있어서, 상기 복수의 제 1 논리회로수단의 각각은 NAND게이트와 NOR게이트를 포함하는 반도체 메모리장치.
  12. 제 4 항에 있어서, 상기 신드롬신호 발생수단은 해당 상기 복수열에 설치되는 복수의 제 2 논리회로수단을 포함하고, 상기 제 2 논리회로수단의 각각은 EX-OR신호와 데이터의 반전신호와 해당 열의 소자에서 1인 소자에 해당되는 패리티데이터를 발생하는 반도체 메모리장치.
  13. 제12항에 있어서, 상기 복수의 제 1 신호 스위치수단의 각각은 해당쌍에 포함되는 제 1 행의 소자에서 상기 제 2 열의 각각에 배열된 소자의 의해 나타나는 반전신호 또는 신드롬신호를 해당 제 1 논리회로수단으로 전송하기 위한 제 1 스위치수단과, 해당쌍에 포함된 제 2 행의 소자에서 상기 제 2 열의 각각에 배열된 소자에 의해 나타나는 반전신호 또는 신드롬신호를 해당 제 1 논리회로수단으로 전송하기 위한 제 2 스위치수단을 포함하는 반도체 메모리장치.
  14. 제13항에 있어서, 상기 제 1 스위치수단은 해당 신드롬신호 또는 반전신호를 수신하기 위한 제 1 도전단자와, 소정 제어신호를 수신하기 위한 제어단자와, 해당 제 1 논리회로수단에 접속되는 제 2 도전단자를 제 1 필드효과 반도체장치를 포함하고, 상기 제 2 스위치수단은 해당 신드롬신호 또는 반전신호를 수신하기 위한 제 1 도전단자와, 해당 제 1 논리회로수단에 접속되는 제 2 도전단자와, 상기 소정 제어신호의 그것에 상보의 논리레벨을 가지는 제어신호를 수신하기 위한 제어단자를 구비하는 제 2 필드효과 반도체를 포함하는 반도체 메모리장치.
  15. 제12항에 있어서, 상기 복수의 제 2 논리회로수단의 각각은 복수의 EX-OR게이트와 인버터를 포함하는 반도체 메모리장치.
  16. 상기 복수 데이터에 해당하는 복수의 패리티데이터와 복수의 데이터가 그안에 저장된 메모리셀어레이를 가지는 반도체 메모리장치에서의 데이터에러를 구비하고 상기 복수데이터는 제 1 과 제 2 그룹으로 동일하게 분할되는 소정의 해밍매트릭스에 따른 정정방법에 있어서, 상기 메모리셀어레이에서 상기 제 1 과 제 2 그룹데이터와 상기 복수의 패리티데이터를 판독하는 스텝과, 상기 제1 및 제 2 그룹데이터와 상기 복수의 패리티데이터를 판독하는 것에 의해 복수의 신드롬신호를 발생하는 스텝과, 상기 발생된 신드롬신호에 응답하는 상기 선택에 동기해서 상기 제 2 그룹 상기 발생된 신드롬신호에 응답하는 상기 선택에 동기해서 상기 제 2 그룹데이터에 대한 정정신호와 상기 제 1 그룹데이터에 대한 정정신호를 순차로 발생하는 스텝과, 상기 발생된 정정신호에 응답해서 상기 선택그룹의 데이터에서 에러를 정정하는 스텝을 포함하는 정정방법.
  17. 제16항에 있어서, 상기 소정의 해밍매트릭스는 상기 복수의 신드롬에 해당하는 복수의 열에 배열된 복수의 소자를 포함하고, 상기 복수의 소자는 상기 제 1 그룹데이터에 해당하는 복수의 제 1 행과 상기 제 2 그룹데이터에 해당하는 복수의 제 2 행과, 상기 복수의 패리티데이터에 해당하는 복수의 제 3 행에 배열되며, 상기 복수의 제 1 행과 제 2 행을 서로 각각이 1 대 1로 동일하는 복수의 쌍을 형성하고, 상기 쌍의 각각을 형성하는 제 1 항과 제 2항은 동일값 소자를 포함하는 제 1 열과, 다른값의 소자를 포함하는 제 2 열을 포함하며, 제 2 열의 수는 상기 복수쌍의 모두와 같은 스텝을 포함하는 정정방법.
KR1019920010893A 1991-06-24 1992-06-23 반도체 기억장치 KR950010311B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP3151809A JP2745252B2 (ja) 1991-06-24 1991-06-24 半導体記憶装置
JP91-151809 1991-06-24

Publications (2)

Publication Number Publication Date
KR930001239A KR930001239A (ko) 1993-01-16
KR950010311B1 true KR950010311B1 (ko) 1995-09-14

Family

ID=15526786

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019920010893A KR950010311B1 (ko) 1991-06-24 1992-06-23 반도체 기억장치

Country Status (4)

Country Link
US (1) US5383205A (ko)
JP (1) JP2745252B2 (ko)
KR (1) KR950010311B1 (ko)
DE (1) DE4220196C2 (ko)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3106947B2 (ja) * 1996-02-28 2000-11-06 日本電気株式会社 不揮発性半導体記憶装置
US20050036363A1 (en) * 1996-05-24 2005-02-17 Jeng-Jye Shau High performance embedded semiconductor memory devices with multiple dimension first-level bit-lines
US5748547A (en) * 1996-05-24 1998-05-05 Shau; Jeng-Jye High performance semiconductor memory devices having multiple dimension bit lines
US5784391A (en) * 1996-10-08 1998-07-21 International Business Machines Corporation Distributed memory system with ECC and method of operation
JP2001167596A (ja) * 1999-12-09 2001-06-22 Toshiba Corp 不揮発性半導体記憶装置
TW506194B (en) * 2000-03-27 2002-10-11 Sanyo Electric Co Error detection and correction circuit
US6957378B2 (en) * 2001-06-04 2005-10-18 Kabushiki Kaisha Toshiba Semiconductor memory device
US7158058B1 (en) 2002-12-09 2007-01-02 Marvell International Ltd. Method and apparatus for generating a seed set in a data dependent seed selector
US7341765B2 (en) * 2004-01-27 2008-03-11 Battelle Energy Alliance, Llc Metallic coatings on silicon substrates, and methods of forming metallic coatings on silicon substrates
JP4980565B2 (ja) * 2004-12-21 2012-07-18 富士通セミコンダクター株式会社 半導体メモリ
JP4864395B2 (ja) * 2005-09-13 2012-02-01 株式会社東芝 半導体記憶装置
FR2892576A1 (fr) * 2005-10-25 2007-04-27 Univ Paris Sud Procede et dispositif de correction d'erreur dans des circuits electroniques de traitement de donnees.
US7506226B2 (en) * 2006-05-23 2009-03-17 Micron Technology, Inc. System and method for more efficiently using error correction codes to facilitate memory device testing
WO2011036747A1 (ja) * 2009-09-24 2011-03-31 株式会社東芝 演算装置
US20120079349A1 (en) * 2010-09-24 2012-03-29 Arkady Bramnik Method and apparatus for multi-bit upset protection
US8677205B2 (en) 2011-03-10 2014-03-18 Freescale Semiconductor, Inc. Hierarchical error correction for large memories
US8914712B2 (en) 2012-02-27 2014-12-16 Freescale Semiconductor, Inc. Hierarchical error correction
US10642688B2 (en) 2018-04-12 2020-05-05 EMC IP Holding Company LLC System and method for recovery of unrecoverable data with enhanced erasure coding and replication
US10592338B2 (en) * 2018-04-27 2020-03-17 EMC IP Holding Company LLC Scale out data protection with erasure coding

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4649540A (en) * 1984-12-26 1987-03-10 Thomson Components-Mostek Corp. Error-correcting circuit having a reduced syndrome word
JPS6246357A (ja) * 1985-08-23 1987-02-28 Hitachi Vlsi Eng Corp 半導体記憶装置
JPH0194599A (ja) * 1987-10-05 1989-04-13 Mitsubishi Electric Corp 半導体記憶装置
JPH01171199A (ja) * 1987-12-25 1989-07-06 Mitsubishi Electric Corp 半導体メモリ

Also Published As

Publication number Publication date
JPH052898A (ja) 1993-01-08
KR930001239A (ko) 1993-01-16
DE4220196A1 (de) 1993-01-14
DE4220196C2 (de) 1995-04-06
US5383205A (en) 1995-01-17
JP2745252B2 (ja) 1998-04-28

Similar Documents

Publication Publication Date Title
KR950010311B1 (ko) 반도체 기억장치
US5099484A (en) Multiple bit error detection and correction system employing a modified Reed-Solomon code incorporating address parity and catastrophic failure detection
US8291303B2 (en) Memory device with error correction system for detection and correction errors in read out data
KR930000897B1 (ko) 에러정정회로를 갖는 반도체메모리
Gracia-Moran et al. Improving error correction codes for multiple-cell upsets in space applications
US20050149833A1 (en) H-matrix for error correcting circuitry
US7996748B2 (en) ECC for single 4-bits symbol correction of 32 symbols words with 22 maximum row weight matrix
US20090089646A1 (en) Semiconductor storage device
JP2013070122A (ja) 誤り訂正装置、誤り訂正方法及び演算装置
JPH045214B2 (ko)
US4689792A (en) Self test semiconductor memory with error correction capability
US6367046B1 (en) Multi-bit error correction system
KR0168844B1 (ko) 반도체 메모리 내부 병렬시험을 위한 방법 및 장치
JPS6116351A (ja) システムメモリ用単一誤り訂正回路
US5022031A (en) Semiconductor memory comprising an on-chip error correction device, and integrated circuit comprising such a semiconductor memory
US8683304B2 (en) Error-correcting code and process for fast read-error correction
US7093183B2 (en) Symbol level error correction codes which protect against memory chip and bus line failures
US5592499A (en) Semiconductor memory device
US8374098B2 (en) Check data encoding using parallel lane encoders
US11650877B2 (en) Detecting address errors
US3886520A (en) Checking circuit for a 1-out-of-n decoder
JPH01112826A (ja) データ伝送試験装置
Farheen et al. Error Detection and Correction Using RP SEC-DED
Taheri et al. Fault detection in RNS systolic arrays
SU809396A1 (ru) Устройство дл контрол блокапОСТО ННОй пАМ Ти

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
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: 20090910

Year of fee payment: 15

LAPS Lapse due to unpaid annual fee