KR20000056995A - 반도체장치 - Google Patents

반도체장치 Download PDF

Info

Publication number
KR20000056995A
KR20000056995A KR1019990046744A KR19990046744A KR20000056995A KR 20000056995 A KR20000056995 A KR 20000056995A KR 1019990046744 A KR1019990046744 A KR 1019990046744A KR 19990046744 A KR19990046744 A KR 19990046744A KR 20000056995 A KR20000056995 A KR 20000056995A
Authority
KR
South Korea
Prior art keywords
bit
data
output
eor gate
memory cell
Prior art date
Application number
KR1019990046744A
Other languages
English (en)
Inventor
사토도시야
Original Assignee
가네꼬 히사시
닛본 덴기 가부시끼가이샤
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 가네꼬 히사시, 닛본 덴기 가부시끼가이샤 filed Critical 가네꼬 히사시
Publication of KR20000056995A publication Critical patent/KR20000056995A/ko

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/564Miscellaneous aspects
    • G11C2211/5647Multilevel memory with bit inversion arrangement
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Dram (AREA)
  • Read Only Memory (AREA)

Abstract

반도체장치는, 복수개의 메모리셀과, 대응하는 데이터에 부가된 체크비트를 상기 메모리셀에 기록하는 인코딩회로와, 상기 복수개의 메모리셀로부터 판독된 데이터를 상기 체크비트와 체크함으로써 에러보정을 수행하고 에러보정후의 데이터를 상기 복수개의 메모리셀에 다시 기록하는 디코딩회로와, 상기 복수개의 메모리셀내에 저장된 데이터의 상위비트 또는 하위비트에서의 에러를 검출하며, 상기 데이터가 두 자리의 상위 및 하위비트이고, 데이터내의 상기 에러가 상기 두 자리 비트로 표시되는 수치가 하나씩 증가하거나 하나씩 감소하는 경우에 한정되는, 에러검출수단과, 그리고 데이터내의 상기 에러가 검출되는 경우에, 상위비트와 대응하는 하위비트 또는 하위비트와 대응하는 상위비트를 무조건 반전시키는 비트반전수단을 구비한다.

Description

반도체장치{Semiconductor device}
본 발명은 에러보정회로(이하, ECC로 기재)를 구비한 반도체장치에 관한 것으로서, 보다 상세하게는, 에러보정회로의 논리회로를 단순하게 함으로써 감소된 칩사이즈를 갖는 반도체장치에 관한 것이다.
통상적으로는, 캐패시터에 저장된 전하량에 의해 데이터를 저장하는 메모리로서, DRAM(dynamic random access memory), 플래시메모리등이 알려져 있다. 이러한 메모리들중의 일부는 하나의 메모리셀에 3이상값의 데이터가 저장되는 저장시스템을 사용한다. 이 다중값 저장시스템에서, 메모리셀로부터의 전하의 리크(leakage)는 데이터에러를 일으키는 주요요소이다.
메모리셀에서 전하의 리크가 발생할 경우, 저장된 모든 다중값 정보는 손실될 수 있다.
일본 특개평7-43959호 공보에는, 이러한 문제점을 해결하는 에러보정회로가 개시되어 있다. 이 특개평7-43959호에 개시된 ECC와 동일한 시스템을 구비하는 에러보정회로는, 각 다중값데이터가 상위 및 하위 2비트로 표시되도록 구성된다.
도 1은 이러한 에러보정회로에서 발생하는 문제점을 설명하기 위한 도면이다. 4값 저장시스템을 설명하는 도 1에서, 수평방향은 각 세 개의 메모리셀(0∼2)에서 2비트 변화를 나타내며, 수직방향은 전위변화(또는 보유된 전하량)를 나타낸다.
메모리셀(0∼2)은, 최고전위를 가질 때, "00", 이 상태에서 약간 감소된 전위를 가질 때, "01", 더욱 감소된 전위를 가질 때, "10", 그리고 완전히 감소된 전위를 가질 때, "11"을 유지한다. 이러한 4단계의 전위변화에 의해서, 네 개의 값이 표시된다. 도 1에서 일점쇄선으로 표시된 프레임(A)은 하위의 하나의 숫자에서의 에러가 "1"에서 "0"으로 변화하는 에러위치를 나타낸다. 프레임(A)에서, 일반적으로, 전위는 증가하지 않고 감소하기만 한다. 최저위치에서의 "11"은 전위가 제로인 상태를 가르킨다.
도 2는, 대응하는 데이터에 부가된 ECC체크비트를 체크비트메모리셀에 기록하기 위한 인코딩회로의 일예를 나타내는 논리회로도이다. 도 2는, 6비트가 세 개의 셀을 구성하는, 다시 말하면 각각 2비트인 세 개의 쌍이 제공되는 일예를 나타낸다.
인코딩회로는 EOR게이트(11∼13, 15∼17, 19∼22)를 구비하여 메모리셀(0∼2)로부터의 데이터를 인코딩한다. 메모리셀(0)은 어드레스가 "A00"과 "A01"이고, 메모리셀(1)은 어드레스가 "A10"과 "A11"이며, 메모리셀(2)은 어드레스가 "A20"과 "A21"이다. 어드레스"A00"과 "A21"은 에러가 없는 것으로 간주하여 설명한다. 그러나, 이 실시예에서, 다른 어드레스들, 예컨대 하나의 셀에 저장된 두 비트의 데이터에 셀(0)의 "A00"과 "A01"이 할당되지만, 두 비트의 데이터 모두에 동일한 어드레스가 할당될 수 있다. 즉, 하나의 셀에 저장된 다중비트의 데이터가 동일한 어드레스에 위치할 수 있다. 물론, 이러한 어드레싱은 본 발명에 반영된다.
EOR게이트(21)는, 메모리셀(1)의 어드레스 "A10"에 저장된 비트가 입력되는 하나의 입력단자와, 어드레스 "A11"에 저장된 비트가 입력되는 또 다른 입력단자를 구비하고, 그리고 이 비트들의 배타적 OR를 출력한다. EOR게이트(22)는, 메모리셀(2)의 어드레스 "A20"에 저장된 비트가 입력되는 하나의 입력단자와, 어드레스 "A21"에 저장된 비트가 입력되는 또 다른 입력단자를 구비하고, 그리고 이 비트들의 배타적 OR를 출력한다.
EOR게이트(11)는, 메모리셀(0)의 어드레스 "A00"에 저장된 비트가 입력되는 하나의 입력단자와, 메모리셀(1)의 어드레스 "A10"에 저장된 비트가 입력되는 또 다른 입력단자를 구비하고, 그리고 이 비트들의 배타적 OR를 출력한다. EOR게이트(13)는, 메모리셀(0)의 어드레스 "A01"에 저장된 비트가 입력되는 하나의 입력단자와, 메모리셀(1)의 어드레스 "A11"에 저장된 비트가 입력되는 또 다른 입력단자를 구비하고, 그리고 이 비트들의 배타적 OR를 출력한다. EOR게이트(16)는, 메모리셀(0)의 어드레스 "A00"에 저장된 비트가 입력되는 하나의 입력단자와, 메모리셀(1)의 어드레스 "A11"에 저장된 비트가 입력되는 또 다른 입력단자를 구비하고, 그리고 이 비트들의 배타적 OR를 출력한다. EOR게이트(19)는, 메모리셀(0)의 어드레스 "A01"에 저장된 비트가 입력되는 하나의 입력단자와, EOR게이트(21)의 출력이 입력되는 또 다른 입력단자를 구비하고, 그리고 이 비트들의 배타적 OR를 출력한다.
EOR게이트(12)는, EOR게이트(11)의 출력이 입력되는 하나의 입력단자와, 메모리셀(2)의 어드레스 "A20"에 저장된 비트가 입력되는 또 다른 입력단자를 구비하고, 그리고 ECC체크비트(C0)로서 배타적 OR를 출력한다. EOR게이트(15)는, EOR게이트(13)의 출력이 입력되는 하나의 입력단자와, 메모리셀(2)의 어드레스 "A21"에 저장된 비트가 입력되는 또 다른 입력단자를 구비하고, 그리고 ECC체크비트(C1)로서 배타적 OR를 출력한다.
EOR게이트(17)는, EOR게이트(16)의 출력이 입력되는 하나의 입력단자와, EOR게이트(22)의 출력이 입력되는 또 다른 입력단자를 구비하고, 그리고 ECC체크비트(C2)로서 배타적 OR를 출력한다. EOR게이트(20)는, EOR게이트(19)의 출력이 입력되는 하나의 입력단자와, 메모리셀(2)의 어드레스 "A20"에 저장된 비트가 입력되는 또 다른 입력단자를 구비하고, 그리고 ECC체크비트(C3)로서 배타적 OR를 출력한다.
이렇게 구성된 인코딩회로는 메모리셀(0∼2)내의 모든 하위 및 상위 2비트에 대하여 논리동작을 수행하여 ECC체크비트(C0∼C3)를 발생한다. 예를 들면, 메모리셀(0)의 어드레스 "A00"과 "A01"에 "1"과 "0"이 각각 저장되어 있고, 메모리셀(1)의 어드레스 "A10"과 "A11"에 "1"과 "0"이 각각 저장되어 있으며, 그리고 메모리셀(2)의 어드레스 "A20"과 "A21"에 "1"과 "0"이 각각 저장되어 있다고 가정한다. 이 경우에, EOR게이트(11)의 입력단자들에는 어드레스"A00"의 "1"과 어드레스"A10"의 "1"이 각각 입력되어, "0"을 출력한다. EOR게이트(12)의 입력단자들에는 EOR게이트(11)의 출력 "1"과 어드레스"A20"의 "1"이 각각 입력되어, ECC체크비트(C0)로서 "1"이 출력된다. 또한, 이러한 방식으로 다른 ECC체크비트들이 발생된다.
도 3은, 체크비트메모리셀들로부터 판독된 ECC체크비트(C1∼C3)가 데이터메모리셀들로부터의 데이터를 참조하여 에러보정을 수행하고, 보정된 데이터를 다시 메모리셀(0∼2)에 기록하는 디코딩회로를 나타내는 논리회로도이다. 디코딩회로는 EOR게이트(23, 25∼27, 29∼33, 35∼37, 39∼42, 45∼47,49, 50, 52, 56, 57, 61, 62, 66, 67), NOR게이트(43, 47, 51), 그리고 AND게이트(53, 55, 59, 60, 63, 65)를 구비한다.
EOR게이트(23)는, ECC체크비트0(C0)가 입력되는 하나의 입력단자와, 메모리셀(0)의 어드레스비트 "A00D"가 입력되는 또 다른 입력단자를 구비하고, 이 비트들의 배타적 OR를 출력한다. EOR게이트(39)는, 메모리셀(1)의 어드레스비트 "A10D"가 입력되는 하나의 입력단자와, 메모리셀(1)의 어드레스비트 "A11D"가 입력되는 또 다른 입력단자를 구비하고, 이 비트들의 배타적 OR를 출력한다. EOR게이트(40)는, 메모리셀(2)의 어드레스비트 "A20D"가 입력되는 하나의 입력단자와, 메모리셀(2)의 어드레스비트 "A21D"가 입력되는 또 다른 입력단자를 구비하고, 이 비트들의 배타적 OR를 출력한다. EOR게이트(25)는, 메모리셀(1)의 어드레스비트 "A10D"가 입력되는 하나의 입력단자와, 메모리셀(2)의 어드레스비트 "A20D"가 입력되는 또 다른 입력단자를 구비하고, 이 비트들의 배타적 OR를 출력한다. EOR게이트(33)의 입력단자에는 EOR게이트(23) 및 EOR게이트(25)의 출력이 각각 입력되고, 배타적 OR를 출력한다.
여기에서, 어드레스 "A00D" ∼ "A21D"가 에러를 가질 수 있고, 상기 메모리셀들의 어드레스 "A00" ∼ "A21"에 각각 부가된 D가 제공된다.
EOR게이트(26)는, ECC체크비트1(C1)이 입력되는 하나의 입력단자와, 메모리셀(0)의 어드레스비트 "A01D"가 입력되는 또 다른 입력단자를 구비하고, 이 비트들의 배타적 OR를 출력한다. EOR게이트(27)는, 메모리셀(1)의 어드레스비트 "A11D"가 입력되는 하나의 입력단자와, 메모리셀(2)의 어드레스비트 "A21D"가 입력되는 또 다른 입력단자를 구비하고, 이 비트들의 배타적 OR를 출력한다. EOR게이트(35)의 입력단자에는 EOR게이트(26) 및 EOR게이트(27)의 출력이 각각 입력되고, 배타적 OR를 출력한다.
EOR게이트(29)는, ECC체크비트2(C2)이 입력되는 하나의 입력단자와, 메모리셀(0)의 어드레스비트 "A00D"가 입력되는 또 다른 입력단자를 구비하고, 이 비트들의 배타적 OR를 출력한다. EOR게이트(30)는, 메모리셀(1)의 어드레스비트 "A11D"가 입력되는 하나의 입력단자와, EOR게이트(39)의 출력이 입력되는 또 다른 입력단자를 구비하고, 이 비트들의 배타적 OR를 출력한다. EOR게이트(36)의 입력단자에는 EOR게이트(29) 및 EOR게이트(30)의 출력이 각각 입력되고, 배타적 OR를 출력한다.
EOR게이트(31)는, ECC체크비트3(C3)이 입력되는 하나의 입력단자와, 메모리셀(0)의 어드레스비트 "A01D"가 입력되는 또 다른 입력단자를 구비하고, 이 비트들의 배타적 OR를 출력한다. EOR게이트(32)는, EOR게이트(40)의 출력이 입력되는 하나의 입력단자와, 메모리셀(2)의 어드레스비트 "A20D"가 입력되는 또 다른 입력단자를 구비하고, 이 비트들의 배타적 OR를 출력한다. EOR게이트(37)의 입력단자에는 EOR게이트(31) 및 EOR게이트(32)의 출력이 각각 입력되고, 배타적 OR를 출력한다.
EOR게이트(41)의 입력단자에는 EOR게이트(33) 및 EOR게이트(36)의 출력이 각각 입력되고, 배타적 OR를 출력한다. EOR게이트(42)의 입력단자에는 EOR게이트(35) 및 EOR게이트(37)의 출력이 각각 입력되고, 배타적 OR를 출력한다. NOR게이트(43)의 입력단자에는 EOR게이트(41) 및 EOR게이트(42)의 출력이 각각 입력되고, 논리합의 반전값(NOR)을 출력한다.
AND게이트(53)의 입력단자에는 NOR게이트(43)와 EOR게이트(33)의 출력이 각각 입력되고, 논리곱(AND)을 출력한다. AND게이트(55)의 입력단자에는 NOR게이트(43)와 EOR게이트(35)의 출력이 각각 입력되고, 논리곱(AND)을 출력한다. EOR게이트(56)는, 메모리셀(0)의 어드레스비트 "A00D"가 입력되는 하나의 입력단자와 AND게이트(53)의 출력이 입력되는 또 다른 입력단자를 구비하고, "A00DD"의 값으로서 배타적 OR를 출력한다. EOR게이트(57)는, 메모리셀(0)의 어드레스비트 "A01D"가 입력되는 하나의 입력단자와 AND게이트(55)의 출력이 입력되는 또 다른 입력단자를 구비하고, "A01DD"의 값으로서 배타적 OR를 출력한다.
EOR게이트(52)의 입력단자에는 EOR게이트(33) 및 EOR게이트(35)의 출력이 각각 입력되고, 배타적 OR를 출력한다. EOR게이트(45)의 입력단자에는 EOR게이트(35) 및 EOR게이트(36)의 출력이 각각 입력되고, 배타적 OR를 출력한다. EOR게이트(46)의 입력단자에는 EOR게이트(52) 및 EOR게이트(37)의 출력이 각각 입력되고, 배타적 OR를 출력한다. NOR게이트(47)의 입력단자에는 EOR게이트(45) 및 EOR게이트(46)의 출력이 각각 입력되고, 논리합의 반전값(NOR)을 출력한다.
AND게이트(59)의 입력단자에는 NOR게이트(47)와 EOR게이트(33)의 출력이 각각 입력되고, 논리곱(AND)을 출력한다. AND게이트(60)의 입력단자에는 NOR게이트(47)와 EOR게이트(35)의 출력이 각각 입력되고, 논리곱(AND)을 출력한다. EOR게이트(61)는, 메모리셀(1)의 어드레스비트 "A10D"가 입력되는 하나의 입력단자와 AND게이트(59)의 출력이 입력되는 또 다른 입력단자를 구비하고, "A10DD"의 값으로서 배타적 OR를 출력한다. EOR게이트(62)는, 메모리셀(1)의 어드레스비트 "A11D"가 입력되는 하나의 입력단자와 AND게이트(60)의 출력이 입력되는 또 다른 입력단자를 구비하고, "A11DD"의 값으로서 배타적 OR를 출력한다.
EOR게이트(49)의 입력단자에는 EOR게이트(52) 및 EOR게이트(36)의 출력이 각각 입력되고, 배타적 OR를 출력한다. EOR게이트(50)의 입력단자에는 EOR게이트(35) 및 EOR게이트(37)의 출력이 각각 입력되고, 배타적 OR를 출력한다. NOR게이트(51)의 입력단자에는 EOR게이트(49) 및 EOR게이트(50)의 출력이 각각 입력되고, 논리합의 반전값(NOR)을 출력한다.
AND게이트(63)의 입력단자에는 NOR게이트(51)와 EOR게이트(33)의 출력이 각각 입력되고, 논리곱(AND)을 출력한다. AND게이트(65)의 입력단자에는 NOR게이트(51)와 EOR게이트(35)의 출력이 각각 입력되고, 논리곱(AND)을 출력한다. EOR게이트(66)는, 메모리셀(2)의 어드레스비트 "A20D"가 입력되는 하나의 입력단자와 AND게이트(63)의 출력이 입력되는 또 다른 입력단자를 구비하고, "A20DD"의 값으로서 배타적 OR를 출력한다. EOR게이트(67)는, 메모리셀(2)의 어드레스비트 "A21D"가 입력되는 하나의 입력단자와 AND게이트(65)의 출력이 입력되는 또 다른 입력단자를 구비하고, "A21DD"의 값으로서 배타적 OR를 출력한다.
한편, 어드레스 "A00DD" ∼ "A21DD"는 에러보정 후의 값으로서 표시되며, 상기 메모리셀의 어드레스 "A00" ∼ "A21" 각각에 부가된 DD가 제공된다.
상술한 인코딩회로와 디코딩회로를 갖는 종래의 에러보정회로에 있어서, 각 메모리셀에 저장된 각 모든 비트들은 인코딩 및 디코딩된다. 다시 말하면, 각 메모리셀에서 상위 및 하위 2비트에 대하여 에러보정이 수행되어야 하기 때문에, 체크비트의 수는 증가되고 입력신호의 수도 증가한다. 따라서, 인코딩회로와 디코딩회로가 확장되어야 하고, 이는 칩사이즈의 크기를 증가시킨다.
따라서, 본 발명의 목적은 ECC가 차지하는 면적을 감소시켜 칩사이즈가 감소될 수 있는 반도체장치를 제공하는 데 있다.
본 발명의 또 다른 목적은 논리회로의 수를 감소시켜 에러보정의 처리속도가 향상되는 반도체장치를 제공하는 데 있다.
도 1은 종래 에러보정회로에서 발생하는 문제점을 설명하기 위한 도면이다.
도 2는 종래 에러보정회로내의 인코딩회로의 일예를 나타내는 논리회로도이다.
도 3는 종래 에러보정회로내의 디코딩회로의 일예를 나타내는 논리회로도이다.
도 4는 본 발명에 따른 제 1 바람직한 실시예에서 ECC(error correction circuit)를 포함하는 반도체장치의 전체적인 구성을 나타내는 논리회로도이다.
도 5는 제 1 실시예에서 인코딩회로를 나타내는 논리회로도이다.
도 6은 제 1 실시예에서 디코딩회로를 나타내는 논리회로도이다.
도 7은 도 4에서 인코딩에 관련된 주요부분을 나타내는 블록도이다.
도 8은 도 4에서 디코딩에 관련된 주요부분을 나타내는 블록도이다.
도 9는 제 1 실시예에서의 반도체장치의 기록동작을 나타내는 플로우챠트이다.
도 10은 제 1 실시예에서의 반도체장치의 판독동작을 나타내는 플로우챠트이다.
도 11은 제 1 실시예에서 인코딩회로의 변형된 예를 나타내는 논리회로도이다.
도 12은 제 1 실시예에서 디코딩회로의 변형된 예를 나타내는 논리회로도이다.
도 13은 본 발명에 따른 제 2 바람직한 실시예에서 반도체장치의 인코딩에 관련하는 주요부분을 나타내는 논리회로도이다.
도 14는 본 발명에 따른 제 2 바람직한 실시예에서 반도체장치의 디코딩에 관련하는 주요부분을 나타내는 논리회로도이다.
도 15는 제 2 실시예에서의 반도체장치의 기록동작을 나타내는 플로우챠트이다.
도 16은 제 2 실시예에서의 반도체장치의 기록동작을 나타내는 플로우챠트이다.
※도면의 주요부분에 대한 부호의 설명
117 : 데이터셀어레이 119 : Y디코더
120 : X디코더 121 : 셀소오스전위인가회로
122 : 디코딩회로 123 : 인코딩회로
125 : 정상코드변환회로 126 : 그레이코드대체회로
126a,126b : 그레이코드변환제어회로 127,130 : 센스앰프
129,131 : 기록회로 132 : 리던던시절환회로
128,133 : 리던던시어드레스히트판정회로 134,136 : 리던던시셀어레이
135 : ECC셀어레이
본 발명에 따르면, 반도체장치는,
로우 및 컬럼방향으로 연장된 복수개의 워드라인과 복수개의 데이터라인의 교차점에 제공된 복수개의 메모리셀과,
대응하는 데이터에 부가된 체크비트를 상기 메모리셀에 기록하는 인코딩회로와,
상기 복수개의 메모리셀로부터 판독된 데이터를 상기 체크비트와 체크함으로써 에러보정을 수행하고 에러보정후의 데이터를 상기 복수개의 메모리셀에 다시 기록하는 디코딩회로와,
상기 복수개의 메모리셀내에 저장된 데이터의 상위비트 또는 하위비트에서의 에러를 검출하며, 상기 데이터가 두 자리의 상위 및 하위비트이고, 데이터내의 상기 에러가 상기 두 자리 비트로 표시되는 수치가 하나씩 증가하거나 하나씩 감소하는 경우에 한정되는, 에러검출수단과, 그리고
데이터내의 상기 에러가 검출되는 경우에, 상위비트와 대응하는 하위비트 또는 하위비트와 대응하는 상위비트를 반드시 반전시키는 비트반전수단을 구비한다.
본 발명에 있어서, 각 메모리셀에서 상위 또는 하위의 하나의 비트만을 타겟으로 하여 에러보정이 수행될 수 있고, 따라서, 체크비트수의 감소에 의해 입력신호의 수가 감소될 수 있다. 또한, 인코딩회로와 디코딩회로가 단순화되기 때문에, 칩사이즈가 감소될 수 있다. 더욱이, 논리회로수의 감소에 의해 처리속도가 향상될 수 있다.
예를 들면, 세 개의 메모리셀이 제공되고 6비트의 데이터가 에러보정되는 경우에, 체크비트의 수는 3개 정도로 감소될 수 있다. 또한, 코딩을 수행하기 위한 정보비트의 수가 매우 작기 때문에, 인코딩회로를 매우 단순한 회로구성을 가질 수 있다. 유사하게, 데이터판독동작이, 해밍코드를 형성하는데 사용되는 체크매트릭스와, 에러보정유닛용 데이터 및 체크비트용 데이터를 사용하여 수행됨으로써, 체크비트의 수가 감소하고 디코딩되는 데이터비트의 수가 감소한다. 따라서, 디코딩회로는 매우 단순한 회로구성을 가질 수 있다.
상세하게는, 하위비트가 1에서 0으로 또는 0에서 1로 변화하는 에러에 관해서는, 에러를 검출하는 경우 상위비트 데이터를 무조건 반전시킴으로써, 단순한 회로구성으로 디코딩회로가 구현될 수 있다. 한편, 상위비트와 하위비트의 관계가 바뀌는 것도 가능하다.
이하, 첨부도면을 참조하여 보다 본 발명을 상세히 설명한다.
첨부도면을 참조하여 본 발명의 바람직한 실시예를 상세하게 설명한다.
도 4는, 본 발명에 따른 제 1 바람직한 실시예에 있어서, 에러보정회로를 포함하는 반도체장치의 전체구성을 나타내는 논리회로도이다. 이 실시예에서, 데이터를 저장하는 하나의 메모리셀은 4개의 값을 표시하기 위한 2비트이다. 한편, 후술하는 이 실시예에서, 3셀의 6비트의 정보비트를 가지는 데이터에 대하여, 에러보정코드는 하위비트에서의 에러로부터 생성된다. 그러나, 물론, 본 발명은 3셀이상의 경우 및/또는 상위비트로부터 에러보정코드를 생성하는 경우에도 적용된다.
이 반도체장치는 데이터셀어레이(117), ECC셀어레이(135), 인코딩회로(123), 디코딩회로(122), 정상코드변환회로(125), 그리고 그레이코드대체회로(126)를 구비한다. 데이터셀어레이(117)는 데이터를 저장하는 다중데이터메모리셀로 구성되고, ECC셀어레이(135)는 에러보정을 위해서 해밍(Hamming)코드등의 ECC체크비트를 저장하는 다중체크비트메모리셀로 구성된다. 다중데이터메모리셀과 체크비트메모리셀 각각은, 로우와 컬럼방향으로 연장된 다중워드라인과 다중비트라인사이의 교차점에 배치된다.
인코딩회로(123)은 대응하는 데이터에 부가된 ECC체크비트를 체크비트메모리셀에 기록한다. 디코딩회로(122)는 다중데이터메모리셀로부터 판독된 데이터를 체크비트메모리셀로부터 판독된 체크비트에 대하여 체크함으로써 에러보정을 수행한다. 정상코드변환회로(125)는 ECC셀어레이(135)로부터 판독된 ECC체크비트를 정상코드로 변환한다. 그레이코드대체회로(126)은 인코딩회로(123)로부터의 ECC체크비트를 그레이코드로 대체시킨다. 이 실시예에서, 각 데이터메모리셀은 4개의 값을 표시하는 2비트이고 각 ECC체크비트는 3비트만을 필요로 하기 때문에, 더미데이터로서 "0"이 하나의 입력단자에 입력된다.
X디코더(120), Y디코더(119), 그리고 셀소오스전위인가회로(121)가 데이터셀어레이(117)와 ECC셀어레이(135)에 제공된다. X디코더(120)는 워드라인을 통해 기록되는 데이터메모리셀과 그에 대응하는 체크비트메모리셀을 선택한다. Y디코더(119)는, 데이터와 ECC체크비트를 선택된 데이터메모리셀과 대응하는 체크비트메모리셀에 각각 기록한다. 셀소오스전위인가회로(121)는 데이터메모리셀과 체크비트메모리셀에 제공된 MOS트랜지스터의 소오스에 필요전압을 인가한다.
데이터셀어레이(117) 및 ECC셀어레이(135) 각각에는, 데이터가 기록 또는 소거되는 메모리를 구성하는 다중셀트랜지스터(Ct)와 선택된 셀트랜지스터(Ct)의 플로팅게이트에 또는 그로부터 필요전하를 채우거나 뽑아냄으로써 기록 또는 소거하는 선택트랜지스터들(St)이 제공된다.
또한, 이 반도체장치는 다중기록회로(129), 다중센스앰프(127), 다중기록회로(131) 및 다중센스앰프(130)를 구비한다. 기록회로(129)는 데이터의 상위비트 및 하위비트를 데이터셀어레이(117)에 기록한다. 센스앰프(127)는 데이터셀어레이(117)내의 데이터를 판독하여 이를 디코딩회로(122)로 출력한다. 기록회로(131)는 데이터의 상위비트 및 하위비트를 ECC셀어레이(135)에 기록한다. 센스앰프(130)는 ECC셀어레이(135)내의 데이터를 판독하여 이를 정상코드변환회로(125)로 출력한다.
도 5는 이 실시예에서의 인코딩회로를 나타내는 논리회로도이다. 이 인코딩회로는 EOR게이트(70, 71, 72)와 그레이코딩EOR게이트(74)로 구성된다.
EOR게이트(70)는 데이터메모리셀(0)의 어드레스 "A00"에 저장된 하위비트가 입력되는 하나의 입력단자와, 데이터메모리셀(2)의 어드레스 "A20"에 저장된 하위비트가 입력되는 또 다른 입력단자를 구비하고, 배타적 OR를 출력한다. EOR게이트(71)는 데이터메모리셀(0)의 어드레스 "A00"에 저장된 하위비트가 입력되는 하나의 입력단자와, 데이터메모리셀(1)의 어드레스 "A10"에 저장된 하위비트가 입력되는 또 다른 입력단자를 구비하고, ECC체크비트(C1)로서 배타적 OR를 출력한다. EOR게이트(72)는 데이터메모리셀(1)의 어드레스 "A10"에 저장된 하위비트가 입력되는 하나의 입력단자와, 데이터메모리셀(2)의 어드레스 "A20"에 저장된 하위비트가 입력되는 또 다른 입력단자를 구비하고, 배타적 OR를 출력한다.
도 4의 그레이코드대체회로(126)의 일부분을 구성하는 EOR게이트(74)의 입력단에는, EOR게이트(70)와 EOR게이트(71)로부터의 배타적 OR들이 입력되고, ECC체크비트(C0)로서 배타적 OR를 출력한다. 도시하지는 않았지만, 인코딩회로는 또한, ECC체크비트(C2)를 출력하는 또 다른 그레이코딩EOR게이트를 구비한다.
도 6은 이 실시예에서의 디코딩회로를 나타내는 논리회로도이다. 이 디코딩회로는, 데이터메모리셀로부터 판독된 데이터를 인코딩회로로부터의 ECC체크비트(C0∼C2)와 체크함으로써 에러보정을 수행하고, 에러보정후의 데이터를 출력하여 이들을 다시 데이터메모리셀에 기록하는, 에러검출수단과 비트반전수단을 포함한다. 디코딩회로에는 EOR게이트(73, 75∼77, 79∼81, 83, 85, 87, 89, 91), AND게이트(82, 86, 90), 그리고 정상코드변환회로(125)내에 배치된 정상코딩EOR게이트(78)가 제공된다.
EOR게이트(73)는 데이터메모리셀(0)의 어드레스 "A00D"에 저장된 하위비트가 입력되는 하나의 입력단자와, 데이터메모리셀(2)의 어드레스 "A20D"에 저장된 하위비트가 입력되는 또 다른 입력단자를 구비하고, 배타적 OR를 출력한다. EOR게이트(75)는 데이터메모리셀(0)의 어드레스 "A00D"에 저장된 하위비트가 입력되는 하나의 입력단자와, 데이터메모리셀(1)의 어드레스 "A10D"에 저장된 하위비트가 입력되는 또 다른 입력단자를 구비하고, 배타적 OR를 출력한다. EOR게이트(76)는 데이터메모리셀(1)의 어드레스 "A10D"에 저장된 하위비트가 입력되는 하나의 입력단자와, 데이터메모리셀(2)의 어드레스 "A20D"에 저장된 하위비트가 입력되는 또다른 입력단자를 구비하고, 배타적 OR를 출력한다.
EOR게이트(77)는 EOR게이트(73)의 출력이 입력되는 하나의 입력단자와, ECC체크비트0(C0)와 ECC체크비트1(C1)의 배타적 OR가 입력되는 또 다른 입력단자를 구비하고, 배타적 OR를 출력한다. EOR게이트(79)는 EOR게이트(75)의 출력이 입력되는 하나의 입력단자와, ECC체크비트1(C1)이 입력되는 또 다른 입력단자를 구비하고, 배타적 OR를 출력한다. EOR게이트(80)는 EOR게이트(76)의 출력이 입력되는 하나의 입력단자와, 정상코딩EOR게이트(미도시)로부터의 배타적 OR가 입력되는 또 다른 입력단자를 구비하고, 배타적 OR를 출력한다.
EOR게이트(81)는 데이터메모리셀(0)의 어드레스 "A00D"에 저장된 하위비트가 입력되는 하나의 입력단자와, EOR게이트(77)의 출력이 입력되는 또 다른 입력단자를 구비하고, 에러보정후의 비트 "A00DD"로서 배타적 OR를 출력한다. AND게이트(82)는 데이터메모리셀(0)의 어드레스 "A01D"에 저장된 상위비트가 입력되는 하나의 입력단자와, EOR게이트(77)의 출력이 입력되는 또 다른 입력단자를 구비하고, 이들의 논리곱(AND)을 출력한다. EOR게이트(83)는 데이터메모리셀(0)의 어드레스 "A01D"에 저장된 상위비트가 입력되는 하나의 입력단자와, AND게이트(82)의 출력이 입력되는 또 다른 입력단자를 구비하고, 에러보정후의 비트 "A01DD"로서 배타적 OR를 출력한다. EOR게이트(81, 83) 및 AND게이트(82)는, EOR게이트(77)의 출력과 데이터메모리셀(0)의 상위 및 하위비트에 따라서, 하위비트에 대응하는 상위비트를 반전시키면서 데이터의 하위비트에서의 에러를 검출하는 제 1 반전회로를 구성한다.
EOR게이트(85)는 데이터메모리셀(1)의 어드레스 "A10D"에 저장된 하위비트가 입력되는 하나의 입력단자와, EOR게이트(79)의 출력이 입력되는 또 다른 입력단자를 구비하고, 에러보정후의 비트 "A10DD"로서 배타적 OR를 출력한다. AND게이트(86)는 데이터메모리셀(1)의 어드레스 "A11D"에 저장된 상위비트가 입력되는 하나의 입력단자와, EOR게이트(79)의 출력이 입력되는 또 다른 입력단자를 구비하고, 이들의 논리곱(AND)을 출력한다. EOR게이트(87)는 데이터메모리셀(1)의 어드레스 "A11D"에 저장된 상위비트가 입력되는 하나의 입력단자와, AND게이트(86)의 출력이 입력되는 또 다른 입력단자를 구비하고, 에러보정후의 비트 "A11DD"로서 배타적 OR를 출력한다. EOR게이트(85, 87) 및 AND게이트(86)는, EOR게이트(79)의 출력과 데이터메모리셀(1)의 상위 및 하위비트에 따라서, 하위비트에 대응하는 상위비트를 반전시키면서 데이터의 하위비트에서의 에러를 검출하는 제 2 반전회로를 구성한다.
EOR게이트(89)는 데이터메모리셀(2)의 어드레스 "A20D"에 저장된 하위비트가 입력되는 하나의 입력단자와, EOR게이트(80)의 출력이 입력되는 또 다른 입력단자를 구비하고, 에러보정후의 비트 "A20DD"로서 배타적 OR를 출력한다. AND게이트(90)는 데이터메모리셀(2)의 어드레스 "A21D"에 저장된 상위비트가 입력되는 하나의 입력단자와, EOR게이트(80)의 출력이 입력되는 또 다른 입력단자를 구비하고, 이들의 논리곱(AND)을 출력한다. EOR게이트(91)는 데이터메모리셀(2)의 어드레스 "A21D"에 저장된 상위비트가 입력되는 하나의 입력단자와, AND게이트(90)의 출력이 입력되는 또 다른 입력단자를 구비하고, 에러보정후의 비트 "A21DD"로서 배타적 0R를 출력한다. EOR게이트(89, 91) 및 AND게이트(90)는, EOR게이트(80)의 출력과 데이터메모리셀(2)의 상위 및 하위비트에 따라서, 하위비트에 대응하는 상위비트를 반전시키면서 데이터의 하위비트에서의 에러를 검출하는 제 3 반전회로를 구성한다.
도 7은 도 4의 인코딩에 관한 주요부분의 나타내는 블록도이다. 도 7에서, 인코딩회로(123)로 입력되는 데이터는 데이터버스(146)로 전달되는 데이터와 ECC체크비트버스(145)로 전달되는 ECC체크비트로 분할되어, 리던던시절환회로(132)로 입력된다. 한편, 어드레스데이터는 리던던시어드레스히트판정회로(133)로 입력되어, 리던던시히트신호(143), ECC일치지시신호(141), 그리고 절환된 버스지시신호(142)로 분할된다.
리던던시절환회로(132)는 ECC체크비트와 데이터를 받아들여, 데이터버스(140)를 통해 데이터를 데이터셀어레이(117)로 전달하고, ECC체크비트버스(139)를 통해 ECC체크비트를 ECC셀어레이(135)로 전달한다. ECC체크비트버스(139)상에는, 그레이코드대체회로(126)가 배치된다. 리던던시절환회로(132)로부터 전달된 ECC체크비트는 그레이코드대체회로(126)에 의해 그레이코드로 대체되어, 소정의 프로세스에 의해서 ECC셀어레이(135)의 대응하는 체크비트메모리셀로 기록된다.
또한, 리던던시절환회로(132)는, 리던던시히트신호(143)에 따라서, 리던던시신호를 리던던시버스(147)를 통해서 그레이코드변환제어회로(126a)로 전달한다. 그레이코드변환제어회로(126a)에서는, ECC일치지시신호(141)에 따라서, ECC체크비트가 아닌 입력신호가 변하지 않고 통과하여, 리던던시버스(137)를 통해 리던던시셀어레이(136)로 전달된다.
데이터셀어레이(117), ECC셀어레이(135), 그리고 리던던시셀어레이(136)에는 다중센스앰프(127, 130, 136a)가 각각 제공된다.
도 8은 도 4의 디코딩에 관한 주요부분을 나타내는 블록도이다. 도 8에서, 센스앰프(127)를 통해 데이터셀어레이(117)로부터 판독된 데이터는 데이터버스(140)를 통해 리던던시절환회로(132)로 입력되어, 데이터버스(146)를 통해 디코딩회로(122)로 입력된다. 또한, 센스앰프(130)를 통래 ECC셀어레이(135)로부터 판독된 ECC체크비트는, 그레이코드대체회로(126)와 ECC체크비트버스(139)를 통해, 리던던시절환회로(132)로 입력되어, ECC체크비트버스(145)를 통해 디코딩회로(122)로 입력된다.
리던던시어드레스히트판정회로(133)에는 어드레스데이터가 입력된다. 리던던시어드레스히트판정회로(133)로부터 리던던시절환회로(132)로 전달되는 리던던시히트신호(143)는 리던던시셀어레이(136)의 어드레스를 히팅할 것을 지시하기 위한 것이고, 절환된 버스지시신호(142)는 신호를 위해 절환되는 버스를 지시하기 위한 것이다. 또한, 리던던시어드레스히트판정회로(133)로부터 그레이코드변환제어회로(126a)로 전달된 ECC일치지시신호(141)는 리던던시셀어레이(136)내의 데이터가 ECC체크비트와 일치하는 것을 지시하기 위한 것이다.
센스앰프(136a)를 통해 리던던시셀어레이(136)로부터 판독된 데이터는 리던던시버스(137)를 통해 그레이코드변환제어회로(126a)로 전달된다. 그레이코드변환제어회로(126a)에서, ECC체크비트에 일치하는 데이터는 ECC일치지시신호(141)에 따라서 그레이코드변환되어, 리던던시버스(147)를 통해 리던던시절환회로(132)로 전달된다. 이러한 데이터를 제외한 데이터는 그대로 통과한다.
디코딩회로(122)는 리던던시절환회로(132)로부터 입력된 데이터를 ECC체크비트와 체크함으로써 에러보정을 수행하고, 에러보정후의 데이터를 데이터셀어레이(117)의 대응하는 데이터메모리셀에 다시 기록한다.
도 9는 이 실시예에서의 기록동작을 나타내는 플로우챠트이다. 이 기록동작은 도 9 및 도 7에서 설명된다.
먼저, 스텝 S31에서, 데이터(기록데이터) 및 어드레스데이터가 인코딩회로(123) 및 리던던시어드레스히트판정회로(133)로 각각 입력된다. 다음에, 스텝 S32에서, 인코딩회로(123)는 입력데이터로부터 ECC체크비트를 만들고, 이를 ECC체크비트버스(145)를 통해 리던던시절환회로(132)로 전달한다.
스텝 S33에서, 리던던시어드레스히트판정회로(133)는 입력어드레스가 리던던시셀어레이(136)내의 어드레스를 히팅하는 지의 여부를 판정하고, 히팅하는 경우에는, 스텝 S34로 진행한다. 히팅하지 않는 경우에는, 스텝 S37로 진행하여, 전달된 데이터는 데이터셀어레이(117)의 대응하는 메모리셀에 기록된다.
스텝 S34에서, 절환되는 데이터버스가 ECC체크비트버스라인인 지의 여부가 판정되어, ECC체크비트버스라인이면, 스텝 S36으로 진행하여 데이터라인을 변화하는 그레이코스변환이 수행된다. ECC체크비트버스라인이 아니면, 스텝 S35로 진행하여 절환되는 데이터가 리던던시버스(137)로 로딩되고, 다음에, 스텝 S37에서, 전달된 기록데이터가 데이터셀어레이(117)에 기록된다.
도 10은 이 실시예에서의 판독동작을 나타내는 플로우챠트이다. 에러보정동작은 도 10 및 도 8에서 설명된다.
먼저, 스텝 S22에서, 어드레스데이터가 리던던시어드레스히트판정회로(133)로 입력되면, 대응하는 신호가 출력된다. 이에 의해, 데이터셀어레이(117), ECC셀어레이(135), 그리고 리던던시셀어레이(136)는 데이터버스(140), ECC체크비트버스(139), 그리고 리던던시버스(137)로 각각 로딩된다.(스텝 S23)
스텝 S24에서, 입력어드레스가 리던던시셀어레이(136)의 절환어드레스를 히팅하는 지의 여부를 판정하고, 히팅하면, 스텝 S25로 진행한다. 히팅하지 않으면, 스텝 S28로 진행한다.
스텝 S25에서, 절환되는 데이터버스가 ECC체크비트버스라인인 지의 여부를 판정하고, ECC체크비트버스라인이면, 스텝 S27에서, 정상코드변환회로(125)에 의해 데이터라인이 그레이코드에서 정상코드로 변환되고, 다음에, 스텝 S26에서, 리던던시데이터는 리던던시절환회로(132)로 전달된다. 한편, ECC체크비트버스라인이 아니면, 스텝 S26에서 리던던시데이터는 리던던시절환회로(132)로 전달된다.
스텝 S28에서, 절환된 버스지시신호(142)등의 절환정보에 따라서, 데이터는 데이터버스(140) 및 ECC체크비트버스(139)로 로딩된다. 다음에, 스텝 S29에서, 데이터가 에러를 포함하면, 디코딩회로(122)는 에러보정을 수행하고 에러보정후의 데이터를 출력한다.(스텝 S30)
상술한 바와 같이, 이 실시예에서는, 플래시형 EEPROM 및 DRAM등에 보지되는 데이터의 누출에 의해 야기되는 오류가 특정방향(전하누출방향)에서 발생하는 메모리를 사용하여 다중값형 메모리가 제조되는 경우에, 단지 하나의 하위비트에 대해서만 에러보정이 수행될 수 있다. 따라서, 체크비트의 수가 감소됨에 따라서, 입력신호의 수도 감소될 수 있다. 또한, 단순화된 인코딩 및 디코딩회로를 구비하기 때문에, 칩사이즈도 감소될 수 있다. 또한, 감소된 논리회로의 수에 의해, 처리속도가 향상될 수 있다.
또한, 칩사이즈를 감소시키기 위하여 ECC체크비트도 다중값 메모리로서 형성되는 경우를 가정하면, ECC체크비트를 형성하는 셀데이터는 상위 및 하위비트 모두를 필요로 한다. 이 실시예에서, ECC체크비트를 형성하는 셀계층구조가 그레이코드화되기 때문에, ECC체크비트의 일계층에러는 하나의 비트에러로 대표된다. 따라서, 이 코딩에 의해, 에러보정이 효율적으로 수행될 수 있다. 여기에서, 일계층에러는 전체 비트를 대표하는 수치가 하나씩 증가하거나 감소하는 에러를 의미한다.
다음에, 인코딩 및 디코딩회로의 구성이 부분적으로 변화되어 ECC체크비트의 그레이코딩을 수행하지 않고 ECC체크비트가 그대로 사용되는 수정된 실시예를 설명한다. 도 11 및 도 12는, 이 수정된 실시예에서, 각각 인코딩회로와 디코딩회로를 나타내는 논리회로도이다. 도 11 및 도 12에서, 도 5 및 도 6과 동일한 소자에는 동일한 참조부호를 부여하였다.
도 11의 인코딩회로에는 EOR게이트(70, 71, 72)가 제공된다. EOR게이트(70)는 데이터메모리셀(0)의 어드레스 "A00"에 저장된 하위비트가 입력되는 하나의 입력단자와, 데이터메모리셀(2)의 어드레스 "A20"에 저장된 하위비트가 입력되는 또 다른 입력단자를 구비하고, ECC체크비트(C0)로서 배타적 OR를 출력한다. OR게이트(71)는 데이터메모리셀(0)의 어드레스 "A00"에 저장된 하위비트가 입력되는 하나의 입력단자와, 데이터메모리셀(1)의 어드레스 "A10"에 저장된 하위비트가 입력되는 또 다른 입력단자를 구비하고, ECC체크비트(C1)로서 배타적 OR를 출력한다. OR게이트(72)는 데이터메모리셀(1)의 어드레스 "A10"에 저장된 하위비트가 입력되는 하나의 입력단자와, 데이터메모리셀(2)의 어드레스 "A20"에 저장된 하위비트가 입력되는 또 다른 입력단자를 구비하고, ECC체크비트(C2)로서 배타적 OR를 출력한다.
도 12의 디코딩회로에는 EOR게이트(73, 75∼77, 79∼81, 83, 85, 87, 89, 91), AND게이트(82, 86, 90)이 제공된다. EOR게이트(73)는 데이터메모리셀(0)의 어드레스 "A00D"에 저장된 하위비트가 입력되는 하나의 입력단자와, 데이터메모리셀(2)의 어드레스 "A20D"에 저장된 하위비트가 입력되는 또 다른 입력단자를 구비하고, 배타적 OR를 출력한다. EOR게이트(75)는 데이터메모리셀(0)의 어드레스 "A00D"에 저장된 하위비트가 입력되는 하나의 입력단자와, 데이터메모리셀(1)의 어드레스 "A10D"에 저장된 하위비트가 입력되는 또 다른 입력단자를 구비하고, 배타적 OR를 출력한다. EOR게이트(76)는 데이터메모리셀(1)의 어드레스 "A10D"에 저장된 하위비트가 입력되는 하나의 입력단자와, 데이터메모리셀(2)의 어드레스 "A20D"에 저장된 하위비트가 입력되는 또 다른 입력단자를 구비하고, 배타적 OR를 출력한다.
EOR게이트(77)는 EOR게이트(73)의 출력이 입력되는 하나의 입력단자와, ECC체크비트0(C0)가 입력되는 또 다른 입력단자를 구비하고, 배타적 OR를 출력한다. EOR게이트(79)는 EOR게이트(75)의 출력이 입력되는 하나의 입력단자와, ECC체크비트1(C1)이 입력되는 또 다른 입력단자를 구비하고, 배타적 OR를 출력한다. EOR게이트(80)는 EOR게이트(76)의 출력이 입력되는 하나의 입력단자와, ECC체크비트2(C2)가 입력되는 또 다른 입력단자를 구비하고, 배타적 OR를 출력한다.
EOR게이트(81)는 데이터메모리셀(0)의 어드레스 "A00D"에 저장된 하위비트가입력되는 하나의 입력단자와, EOR게이트(77)의 출력이 입력되는 또 다른 입력단자를 구비하고, 에러보정후의 비트 "A00DD"로서 배타적 OR를 출력한다. AND게이트(82)는 데이터메모리셀(0)의 어드레스 "A01D"에 저장된 상위비트가 입력되는 하나의 입력단자와, EOR게이트(77)의 출력이 입력되는 또 다른 입력단자를 구비하고, 이들의 논리곱(AND)을 출력한다. EOR게이트(83)는 데이터메모리셀(0)의 어드레스 "A01D"에 저장된 상위비트가 입력되는 하나의 입력단자와, AND게이트(82)의 출력이 입력되는 또 다른 입력단자를 구비하고, 에러보정후의 비트 "A01DD"로서 배타적 OR를 출력한다. EOR게이트(81, 83) 및 AND게이트(82)는, EOR게이트(77)의 출력과 데이터메모리셀(0)의 상위 및 하위비트에 따라서, 하위비트에 대응하는 상위비트를 반전시키면서 데이터의 하위비트에서의 에러를 검출하는 제 1 반전회로를 구성한다.
EOR게이트(85)는 데이터메모리셀(1)의 어드레스 "A10D"에 저장된 하위비트가 입력되는 하나의 입력단자와, EOR게이트(79)의 출력이 입력되는 또 다른 입력단자를 구비하고, 에러보정후의 비트 "A10DD"로서 배타적 OR를 출력한다. AND게이트(86)는 데이터메모리셀(1)의 어드레스 "A11D"에 저장된 상위비트가 입력되는 하나의 입력단자와, EOR게이트(79)의 출력이 입력되는 또 다른 입력단자를 구비하고, 이들의 논리곱(AND)을 출력한다. EOR게이트(87)는 데이터메모리셀(1)의 어드레스 "A11D"에 저장된 상위비트가 입력되는 하나의 입력단자와, AND게이트(86)의 출력이 입력되는 또 다른 입력단자를 구비하고, 에러보정후의 비트 "A11DD"로서 배타적 OR를 출력한다. EOR게이트(85, 87) 및 AND게이트(86)는, EOR게이트(79)의 출력과 데이터메모리셀(1)의 상위 및 하위비트에 따라서, 하위비트에 대응하는 상위비트를 반전시키면서 데이터의 하위비트에서의 에러를 검출하는 제 2 반전회로를 구성한다.
EOR게이트(89)는 데이터메모리셀(2)의 어드레스 "A20D"에 저장된 하위비트가 입력되는 하나의 입력단자와, EOR게이트(80)의 출력이 입력되는 또 다른 입력단자를 구비하고, 에러보정후의 비트 "A20DD"로서 배타적 OR를 출력한다. AND게이트(90)는 데이터메모리셀(2)의 어드레스 "A21D"에 저장된 상위비트가 입력되는 하나의 입력단자와, EOR게이트(80)의 출력이 입력되는 또 다른 입력단자를 구비하고, 이들의 논리곱(AND)을 출력한다. EOR게이트(91)는 데이터메모리셀(2)의 어드레스 "A21D"에 저장된 상위비트가 입력되는 하나의 입력단자와, AND게이트(90)의 출력이 입력되는 또 다른 입력단자를 구비하고, 에러보정후의 비트 "A21DD"로서 배타적 OR를 출력한다. EOR게이트(89, 91) 및 AND게이트(90)는, EOR게이트(80)의 출력과 데이터메모리셀(2)의 상위 및 하위비트에 따라서, 하위비트에 대응하는 상위비트를 반전시키면서 데이터의 하위비트에서의 에러를 검출하는 제 3 반전회로를 구성한다.
도 4 내지 도 12에 설명된 이 실시예에서, 하위 일비트가 도 1 의 프레임 A에 도시된 바와 같이 1에서 0으로 변화하는 일계층에러가 에러의 유일한 종류로 한정될 수 있다. 따라서, 데이터의 상위비트를 ECC체크비트를 형성하는 데 필요한 정보비트에 포함시키지 않고 ECC가 구현될 수 있다. 4값 메모리셀에 있어서, 메모리셀의 수의 두 배에 해당하는 체크비트가 생성될 필요가 없다. 다시 말하면, 메모리셀수의 두배의 반, 즉 메모리셀과 동일한 수의 비트수만큼 체크비트를 생성하기만 하면, 일계층에러보정이 구현될 수 있다. 이와 유사하게, 하위 일비트가 도 1 의 프레임 A에 도시된 바와 같이 0에서 1로 변화하는 일계층에러가 에러의 유일한 종류로 한정될 수 있다. 따라서, 상위 일비트를 사용하는 경우에도 하위 일비트사용하는 것과 동일한 처리가 수행될 수 있다.
또한, 이 실시예에서, ECC체크비트를 형성하는 메모리셀의 계층구조가 그레이코드에 대응하는 다중값이기 때문에, 이진 메모리셀을 위해 일비트 보정코드를 사용할 때와 동일한 수의 ECC체크비트를 사용하여, 또 다른 일계층에러가 보정됨으로써, 체크비트의 수가 감소될 수 있다. 따라서, 인코딩회로(123) 및 디코딩회로(122)가 단순화될 수 있고 ECC체크비트의 수가 감소됨으로써, 칩사이즈가 감소될 수 있다. 반면, 상술한 바와 같이, 하위 일비트대신 상위 일비트를 사용하는 경우에도, 하위 일비트가 0에서 1로 변화하는 일계층에러가 에러의 유일한 종류로 한정될 수 있다. 따라서, 동일한 구성이 만들어질 수 있고 동일한 효과가 얻어질 수 있다.
또한, 이 실시예에서는, ECC체크비트를 형성하는 셀계층구조 자체가 정상적인 구조와 유사하지만, 생성되는 ECC체크비트의 위치를 변경함으로써, 유사한 그레이코드가 생성될 수 있고 기록이 수행될 수 있다. 또한, 판독시에, 기록에서와 동일한 방법을 수행함으로써, ECC체크비트 자체의 모든 에러가 일비트에러로 만들어질 수 있다. 정상적인 리던던시구성에 의해, 그레이코드를 의식하지 않고 ECC셀어레이(135)등이 대체될 수 있다.
다음에, 본 발명의 제 2 바람직한 실시예를 설명한다. 도 13은 인코딩에 관련된 주요부분을 나타내는 블록도이다. 제 1 실시예에서는 리던던시셀어레이(136)를 포함하는 리던던시처리회로가 하나의 시스템으로 되어 있지만, 이 실시예에서는, 리던던시처리회로에 데이터셀어레이(117)에 대응하는 제 1 리던던시처리회로와 ECC셀어레이(135)에 대응하는 제 2 리던던시처리회로의 두 시스템이 제공된다. 본 실시예는 이 차이점을 제외하고는 제 1 실시예와 유사하다. 따라서, 도 13에서, 도 7과 동일한 소자에는 동일한 참조부호를 부여하였다.
도 13에서, 제 1 리던던시처리회로는 제 1 리던던시어드레스히트판정회로(133), 제 1 그레이코드변환제어회로(126a), 그리고 제 1 리던던시셀어레이(136)를 구비한다. 또한, 제 2 리던던시처리회로는 제 2 리던던시어드레스히트판정회로(128), 제 2 그레이코드변환제어회로(126b), 그리고 제 2 리던던시셀어레이(134)를 구비한다. 센스앰프(136a) 및 센스앰프(134a)가 제 1 리던던시셀어레이(136)와 제 2 리던던시셀어레이(134)에 각각 대응하여 배치된다.
리던던시히트신호(143)와 절환된 버스지시신호(142)가 제 1 리던던시어드레스히트판정회로(133)로부터 리던던시절환회로(132)로 전달된다. 또한, 리던던시히트신호(154)와 절환된 버스지시신호(148)가 제 2 리던던시어드레스히트판정회로(128)로부터 리던던시절환회로(132)로 전달된다. 제 1 리던던시버스(147)를 통해서, 신호가 제 1 그레이코드변환제어회로(126a)로 전달된다. 제 2 리던던시버스(148)를 통해서, 신호가 제 2 그레이코드변환제어회로(126b)로 전달된다. 또한, 제 1 리던던시어드레스히트판정회로(133)로부터 ECC일치지시신호(141)가 제 1 그레이코드변환제어회로(126a)로 전달된다. 제 2 리던던시어드레스히트판정회로(128)로부터 ECC일치지시신호(144)가 제 2 그레이코드변환제어회로(126b)로 전달된다. 제 1 그레이코드변환제어회로(126a)로부터의 신호는 리던던시버스(137)를 통해서 제 1 리던던시셀어레이(136)로 전달된다. 제 2 그레이코드변환제어회로(126b)로부터의 신호는 리던던시버스(138)를 통해서 제 2 리던던시셀어레이(134)로 전달된다.
도 14는 디코딩에 관련된 주요부분을 나타내는 블록도이다. 도 14에서, 디코딩회로로의 신호의 입/출력은 도 8에 도시된 것과 유사하다.
도 15는 이 실시예의 기록동작을 나타내는 플로우챠트이다. 도 15 및 도 13에서 비록동작을 설명한다.
먼저, 스텝 S14에서, 입력데이터(기록데이터) 및 어드레스데이터가 인코딩회로(123), 제 1 리던던시어드레스히트판정회로(133), 그리고 제 2 리던던시어드레스히트판정회로(128)로 각각 입력된다. 다음에, 스텝 S15에서, 인코딩회로(123)는 입력데이터로부터 ECC체크비트를 만들고, 이를 ECC체크비트버스(145)를 통해 리던던시절환회로(132)로 전달한다.
스텝 S16에서, 제 1 리던던시어드레스히트판정회로(133)는 입력어드레스가 제 1 리던던시셀어레이(136)내의 어드레스를 히팅하는 지의 여부를 판정하고, 히팅하면, 스텝 S18로 진행한다. 히팅하지 않으면, 스텝 S17로 진행한다.
스텝 S18에서, 절환되는 데이터버스가 ECC체크비트버스라인인 지의 여부를 판정한고, ECC체크비트버스라인이면, 스텝 S20으로 진행하여, 데이터라인을 변화하는 그레이코드변환이 수행된다. ECC체크비트버스라인이 아니면, 스텝 S19로 진행하여 절환되는 데이터는 제 1 리던던시버스(137)로 로딩되어, 스텝 S17로 진행한다.
스텝 S17에서, 제 2 리던던시어드레스히트판정회로(128)는 입력어드레스가 제 2 리던던시셀어레이(134)내의 어드레스를 히팅하는 지의 여부를 판정하고, 히팅하면, 스텝 S22로 진행한다. 히팅하지 않으면, 스텝 S21로 진행하여, 전달된 데이터가 데이터셀어레이(117)의 대응하는 메모리셀에 기록된다.
스텝 S22에서, 절환되는 데이터버스가 ECC체크비트버스라인인 지의 여부를 판정한고, ECC체크비트버스라인이면, 스텝 S24으로 진행하여, 데이터라인을 변화하는 그레이코드변환이 수행된다. ECC체크비트버스라인이 아니면, 스텝 S23로 진행하여 절환되는 데이터는 제 2 리던던시버스(138)로 로딩되어, 스텝 S21로 진행하고, 전달된 데이터가 데이터셀어레이(117)의 대응하는 메모리셀에 기록된다.
도 16은 이 실시예에서의 판독동작을 나타내는 플로우챠트이다. 에러보정은 도 16 및 도 14에서 설명한다.
먼저, 스텝 S1에서, 어드레스데이터가 제 1 리던던시어드레스히트판정회로(133)와 제 2 리던던시어드레스히트판정회로(128)로 입력되면, 대응하는 신호가 출력된다. 이에 의해, 데이터셀어레이(117), ECC셀어레이(135), 제 1 리던던시셀어레이(136), 그리고 제 2 리던던시셀어레이(134)로부터 대응하는 신호가 데이터버스(140), ECC체크비트(139), 제 1 리던던시버스(137), 그리고 제 2 리던던시버스(138)로 각각 로딩된다.(스텝 S2)
스텝 S3에서, 입력어드레스가 제 1 리던던시셀어레이(136)의 절환어드레스를 히팅하는 지의 여부를 판정하고, 히팅하면, 스텝 S5로 진행한다. 히팅하지 않으면, 스텝 S4로 진행한다.
스텝 S5에서, 절환되는 데이터버스가 ECC체크비트버스라인인 지의 여부를 판정하고, ECC체크비트버스라인이면, 스텝 S7에서, 데이터라인은 정상코드변환회로(125)에 의해 그레이코드에서 정상코드로 변환되고, 다음에, 스텝 S6에서, 제 1 리던던시셀어레이(136)의 데이터는 리던던시절환회로(132)로 전달된다. 한편, ECC체크비트버스라인이 아니면, 스텝 S6에서, 제 1 리던던시셀어레이(136)의 데이터는 리던던시절환회로(132)로 전달된다.
스텝 S4에서, 입력어드레스가 제 2 리던던시셀어레이(134)의 절환어드레스를 히팅하는 지의 여부를 판정하고, 히팅하면, 스텝 S8로 진행한다. 히팅하지 않으면, 스텝 S11로 진행한다.
스텝 S8에서, 절환되는 데이터버스가 ECC체크비트버스라인인 지의 여부를 판정하고, ECC체크비트버스라인이면, 스텝 S10에서, 데이터라인은 정상코드변환회로(125)에 의해 그레이코드에서 정상코드로 변환되고, 다음에, 스텝 S9에서, 제 2 리던던시셀어레이(134)의 데이터는 리던던시절환회로(132)로 전달된다. 한편, ECC체크비트버스라인이 아니면, 스텝 S9에서, 제 2 리던던시셀어레이(134)의 데이터는 리던던시절환회로(132)로 전달된다.
스텝 S11에서, 절환된 버스지시신호(142)등의 절환정보에 따라서, 데이터는 데이터버스(140) 및 ECC체크비트버스(139)로 로딩된다. 다음에, 스텝 S12에서, 데이터가 에러를 포함하면, 디코딩회로(122)는 에러보정을 수행하고 에러보정후의 데이터를 출력한다.(스텝 S13)
상술한 바와 같이, 이 실시예에서는, 제 1 실시예에서 얻어지는 효과에 부가하여, 아래의 효과들을 얻을 수 있다. 즉, ECC셀어레이(135)에 대한 리던던시처리와 별도로 데이터셀어레이(117)에 대한 리던던시처리가 수행될 수 있다. 또한, ECC체크비트에 대한 셀계층구조가 그레이코드에 의해 다중값화될 수 있고 배치가 유사하게 변경될 수 있다. 따라서, 센스앰프 또는 기록회로의 측에서, 계층구조를 변화시킬 필요가 없다. 따라서, 이진 메모리셀을 위해 일비트 보정코드를 사용할 때와 동일한 수의 ECC체크비트를 사용하여, 일계층에러가 보정될 수 있다.
또한, 제 1 및 제 2 실시예 모두에서, 리던던시메모리셀은 ECC메모리셀 및 데이터메모리셀중 어느 셀로도 대체될 수 있고, 상황에 따라서 절환하여 사용될 수 있다.
더욱이, 제 1 및 제 2 실시예 모두에서, 에러검출수단내의 에러보정유닛은 하나이상의 셀트랜지스터(Ct)로 구성되고, 에러보정코드로서의 ECC체크비트는, 셀트랜지스터(Ct)에 의해 보지된 두 자리 비트로 구성된 모든 데이터내의 상위비트 또는 하위비트중 하나로 구성된 데이터그룹으로부터의 해밍코드에 의해 생성될 수 있다. 따라서, 인코딩회로가 매우 간단한 회로구성으로 제공될 수 있다. 또한, 판독동작에서, 에러보정유닛을 구성하는 셀트랜지스터(Ct)에 의해 보지된 두 자리 데이터 및 체크비트가 판독되고, 해밍코드를 형성하는 데 사용되는 체크매트릭스를 사용하여 에러보정이 수행됨으로써, 에러보정을 수행하면서 판독된 데이터가 출력될 수 있다. 따라서, 디코딩회로가 매우 간단한 회로구성으로 제공될 수 있다. 또한, 하나의 메모리셀에 다중의 ECC체크비트가 보지될 수 있다. 따라서, ECC체크비트메모리셀이 다른 메모리셀과 동일한 구조로 제공될 수 있고, 체크비트메모리셀의 수가 감소될 수 있다.
상술한 실시예들에서, 서로 다른 어드레스, 예컨대 셀(0)에 A00과 A01이 하나의 셀에 저장된 두 비트의 데이터에 할당되었지만, 두 비트의 데이터 모두에 동일한 어드레스가 할당될 수 있다. 다시 말하면, 하나의 셀에 저장된 다중비트의 데이터가 동일한 어드레스에 위치할 수 있다. 물론, 이러한 어드레싱은 본 발명에 포함된다.
본 발명의 완성도와 명확한 개시를 위하여 특정한 실시예를 참조하여 본 발명을 설명하였지만, 본 발명은 이에 한정되지 않고, 첨부된 청구항에 기재된 본 발명의 기본적인 사상과 범위내에서 당업자가 실시할 수 있는 모든 변경과 수정을 포함한다.
상술한 바와 같이, 본 발명에 따르면, 각 메모리셀에서 상위 또는 하위의 하나의 비트만을 타겟으로 하여 에러보정이 수행될 수 있고, 따라서, 체크비트수의 감소에 의해 입력신호의 수가 감소될 수 있다. 또한, 인코딩회로와 디코딩회로가 단순화되기 때문에, 칩사이즈가 감소될 수 있다. 더욱이, 논리회로수의 감소에 의해 처리속도가 향상될 수 있다.

Claims (12)

  1. 반도체장치에 있어서:
    로우 및 컬럼방향으로 연장된 복수개의 워드라인과 복수개의 데이터라인의 교차점에 제공된 복수개의 메모리셀과;
    대응하는 데이터에 부가된 체크비트를 상기 메모리셀에 기록하는 인코딩회로와;
    상기 복수개의 메모리셀로부터 판독된 데이터를 상기 체크비트와 체크함으로써 에러보정을 수행하고 에러보정후의 데이터를 상기 복수개의 메모리셀에 다시 기록하는 디코딩회로와;
    상기 복수개의 메모리셀내에 저장된 데이터의 상위비트 또는 하위비트에서의 에러를 검출하며, 상기 데이터가 두 자리의 상위 및 하위비트이고, 데이터내의 상기 에러가 상기 두 자리 비트로 표시되는 수치가 하나씩 증가하거나 하나씩 감소하는 경우에 한정되는, 에러검출수단과; 그리고
    데이터내의 상기 에러가 검출되는 경우에, 상위비트와 대응하는 하위비트 또는 하위비트와 대응하는 상위비트를 무조건 반전시키는 비트반전수단을 구비하는 반도체장치.
  2. 제 1 항에 있어서, 상기 에러검출수단내의 에러보정유닛은 하나이상의 셀트랜지스터로 구성되고, 에러보정코드로서의 체크비트는 상기 셀트랜지스터에 의해 보지된 두 자리 비트로 구성된 모든 데이터내의 상위비트 또는 하위비트중 하나로 구성된 데이터그룹으로부터의 해밍코드에 의해 생성되는 것을 특징으로 하는 반도체장치.
  3. 제 2 항에 있어서, 판독동작에서, 상기 에러보정유닛을 구성하는 셀트랜지스터에 의해 보지된 두 자리 데이터 및 체크비트가 판독되고, 해밍코드를 형성하는데 사용되는 체크매트릭스를 사용하여 에러보정이 수행됨으로써, 에러보정이 수행되면서 판독된 데이터가 출력되는 것을 특징으로 하는 반도체장치.
  4. 제 1 항에 있어서, 상기 하나의 메모리셀내에 복수개의 상기 체크비트가 보지되는 것을 특징으로 하는 반도체장치.
  5. 제 4 항에 있어서, 상기 메모리셀내에 보지된 상기 체크비트는 그레이코드인 것을 특징으로 하는 반도체장치.
  6. 제 1 항에 있어서,
    상기 메모리셀내의 결함메모리셀을 구제하기 위한 리던던시메모리셀을 추가로 구비하고,
    상기 메모리셀은 데이터셀어레이 및 ECC셀어레이를 구비하며, 상기 리던던시메모리셀은 데이터를 저장하는 상기 데이터셀어레이와 상기 ECC셀어레이 모두에 대체될 수 있도록 제공되는 것을 특징으로 하는 반도체장치.
  7. 제 6 항에 있어서,
    상기 결함메모리셀을 상기 대응하는 리던던시메모리셀로 대체하는 리던던시처리회로를 추가로 구비하고,
    상기 메모리셀은 상기 데이터를 저장하는 데이터셀어레이와 상기 체크비트를 저장하는 상기 ECC셀어레이를 구비하며, 상기 리던던시처리회로는 상기 데이터셀어레이에 대응하는 제 1 리던던시처리회로와 상기 ECC셀어레이에 대응하는 제 2 리던던시처리회로를 구비하는 것을 특징으로 하는 반도체장치.
  8. 제 1 항에 있어서,
    상기 메모리셀은 각각이 두 자리 비트인 제 1 내지 제 3 메모리셀을 구비하고, 그리고
    상기 인코딩회로는, 상기 제 1 및 제 3 메모리셀의 하위비트에 근거하여 제 1 체크비트를 출력하는 제 1 EOR게이트, 상기 제 1 및 제 2 메모리셀의 하위비트에 근거하여 제 2 체크비트를 출력하는 제 2 EOR게이트, 그리고 상기 제 2 및 제 3 메모리셀의 하위비트에 근거하여 제 3 체크비트를 출력하는 제 3 EOR게이트를 구비하는 것을 특징으로 하는 반도체장치.
  9. 제 8 항에 있어서, 상기 디코딩회로는,
    상기 제 1 및 제 3 메모리셀의 하위비트에 근거하여 배타적 OR를 출력하는 제 4 EOR게이트와,
    상기 제 1 및 제 2 메모리셀의 하위비트에 근거하여 배타적 OR를 출력하는 제 5 EOR게이트와,
    상기 제 2 및 제 3 메모리셀의 하위비트에 근거하여 배타적 OR를 출력하는 제 6 EOR게이트와,
    상기 제 4 EOR게이트의 출력과 상기 제 1 체크비트에 근거하여 배타적 OR를 출력하는 제 7 EOR게이트와,
    상기 제 5 EOR게이트의 출력과 상기 제 2 체크비트에 근거하여 배타적 OR를 출력하는 제 8 EOR게이트와,
    상기 제 6 EOR게이트의 출력과 상기 제 3 체크비트에 근거하여 배타적 OR를 출력하는 제 9 EOR게이트와,
    상기 제 7 EOR게이트의 출력과 상기 제 1 데이터메모리셀의 상위비트 및 하위비트에 근거하여, 데이터의 하위비트에서의 에러를 검출하고 하위비트와 대응하는 상위비트를 반전시키는 제 1 반전회로와,
    상기 제 8 EOR게이트의 출력과 상기 제 2 데이터메모리셀의 상위비트 및 하위비트에 근거하여, 데이터의 하위비트에서의 에러를 검출하고 하위비트와 대응하는 상위비트를 반전시키는 제 2 반전회로와, 그리고
    상기 제 9 EOR게이트의 출력과 상기 제 3 데이터메모리셀의 상위비트 및 하위비트에 근거하여, 데이터의 하위비트에서의 에러를 검출하고 하위비트와 대응하는 상위비트를 반전시키는 제 3 반전회로를 구비하는 것을 특징으로 하는 반도체장치.
  10. 제 9 항에 있어서,
    상기 제 1 반전회로는, 상기 제 1 데이터메모리셀의 하위비트와 상기 제 7 EOR게이트의 출력에 근거하여 에러보정후의 하위비트를 출력하는 제 10 EOR게이트, 상기 제 1 데이터메모리셀의 상위비트와 상기 제 7 EOR게이트의 출력에 근거하여 논리곱을 출력하는 제 1 AND게이트, 그리고 상기 제 1 데이터메모리셀의 상위비트와 상기 제 1 AND게이트의 출력에 근거하여 에러보정후의 상위비트를 출력하는 제 11 EOR게이트를 구비하고,
    상기 제 2 반전회로는, 상기 제 2 데이터메모리셀의 하위비트와 상기 제 8 EOR게이트의 출력에 근거하여 에러보정후의 하위비트를 출력하는 제 12 EOR게이트, 상기 제 2 데이터메모리셀의 상위비트와 상기 제 8 EOR게이트의 출력에 근거하여 논리곱을 출력하는 제 2 AND게이트, 그리고 상기 제 2 데이터메모리셀의 상위비트와 상기 제 2 AND게이트의 출력에 근거하여 에러보정후의 상위비트를 출력하는 제 13 EOR게이트를 구비하며,
    상기 제 3 반전회로는, 상기 제 3 데이터메모리셀의 하위비트와 상기 제 9 EOR게이트의 출력에 근거하여 에러보정후의 하위비트를 출력하는 제 14 EOR게이트, 상기 제 3 데이터메모리셀의 상위비트와 상기 제 9 EOR게이트의 출력에 근거하여 논리곱을 출력하는 제 3 AND게이트, 그리고 상기 제 3 데이터메모리셀의 상위비트와 상기 제 3 AND게이트의 출력에 근거하여 에러보정후의 상위비트를 출력하는 제 15 EOR게이트를 구비하는 것을 특징으로 하는 반도체장치.
  11. 제 1 항에 있어서,
    상기 메모리셀은 각각이 두 자리 비트인 제 1 내지 제 3 메모리셀을 구비하고, 그리고
    상기 인코딩회로는, 상기 제 1 및 제 3 메모리셀의 하위비트에 근거하여 제 1 체크비트를 출력하는 제 1 EOR게이트, 상기 제 1 및 제 2 메모리셀의 하위비트에 근거하여 제 2 체크비트를 출력하는 제 2 EOR게이트, 상기 제 2 및 제 3 메모리셀의 하위비트에 근거하여 제 3 체크비트를 출력하는 제 3 EOR게이트, 그리고 상기 그레이코드체크비트를 생성하는 그레이코딩EOR게이트를 구비하는 것을 특징으로 하는 반도체장치.
  12. 제 11 항에 있어서, 상기 디코딩회로는,
    상기 제 1 및 제 3 메모리셀의 하위비트에 근거하여 배타적 OR를 출력하는 제 4 EOR게이트와,
    상기 제 1 및 제 2 메모리셀의 하위비트에 근거하여 배타적 OR를 출력하는 제 5 EOR게이트와,
    상기 제 2 및 제 3 메모리셀의 하위비트에 근거하여 배타적 OR를 출력하는 제 6 EOR게이트와,
    상기 그레이코드체크비트를 정상코드로 변환하는 정상코드EOR게이트와,
    상기 제 4 EOR게이트의 출력과 상기 정상코드EOR게이트의 출력에 근거하여 배타적 OR를 출력하는 제 7 EOR게이트와,
    상기 제 5 EOR게이트의 출력과 상기 정상코드EOR게이트의 출력에 근거하여 배타적 OR를 출력하는 제 8 EOR게이트와,
    상기 제 6 EOR게이트와 상기 정상코드EOR게이트의 출력에 근거하여 배타적 OR를 출력하는 제 9 EOR게이트와,
    상기 제 7 EOR게이트의 출력과 상기 제 1 데이터메모리셀의 상위비트 및 하위비트에 근거하여, 데이터의 하위비트에서의 에러를 검출하고 하위비트와 대응하는 상위비트를 반전시키는 제 1 반전회로와,
    상기 제 8 EOR게이트의 출력과 상기 제 2 데이터메모리셀의 상위비트 및 하위비트에 근거하여, 데이터의 하위비트에서의 에러를 검출하고 하위비트와 대응하는 상위비트를 반전시키는 제 2 반전회로와, 그리고
    상기 제 9 EOR게이트의 출력과 상기 제 3 데이터메모리셀의 상위비트 및 하위비트에 근거하여, 데이터의 하위비트에서의 에러를 검출하고 하위비트와 대응하는 상위비트를 반전시키는 제 3 반전회로를 구비하는 것을 특징으로 하는 반도체장치.
KR1019990046744A 1998-10-26 1999-10-26 반도체장치 KR20000056995A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP30405598A JP2000132995A (ja) 1998-10-26 1998-10-26 半導体装置
JP10-304055 1998-10-26

Publications (1)

Publication Number Publication Date
KR20000056995A true KR20000056995A (ko) 2000-09-15

Family

ID=17928509

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019990046744A KR20000056995A (ko) 1998-10-26 1999-10-26 반도체장치

Country Status (2)

Country Link
JP (1) JP2000132995A (ko)
KR (1) KR20000056995A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11157360B2 (en) 2017-06-16 2021-10-26 Semiconductor Energy Laboratory Co., Ltd. Semiconductor device, semiconductor wafer, electronic device, and operation method

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4413091B2 (ja) 2004-06-29 2010-02-10 株式会社ルネサステクノロジ 半導体装置
KR101393622B1 (ko) 2007-08-30 2014-05-13 삼성전자주식회사 멀티 비트 플래시 메모리 장치를 포함하는 시스템 및그것의 데이터 처리 방법
KR101403429B1 (ko) * 2007-10-09 2014-06-03 삼성전자주식회사 멀티 비트 프로그래밍 장치 및 방법
US8533559B2 (en) * 2008-05-12 2013-09-10 Panasonic Corporation Semiconductor recording device with error recovery
JP2010231872A (ja) * 2009-03-30 2010-10-14 Toppan Printing Co Ltd 不揮発性半導体メモリ装置
JP2010231887A (ja) * 2010-07-20 2010-10-14 Toshiba Corp 不揮発性半導体メモリ

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11157360B2 (en) 2017-06-16 2021-10-26 Semiconductor Energy Laboratory Co., Ltd. Semiconductor device, semiconductor wafer, electronic device, and operation method

Also Published As

Publication number Publication date
JP2000132995A (ja) 2000-05-12

Similar Documents

Publication Publication Date Title
US10643733B2 (en) Method, flashing memory controller, memory device for accessing 3D flash memory having multiple memory chips
US8458564B2 (en) Programming management data for a memory
US7747903B2 (en) Error correction for memory
EP1286359B1 (en) Memory controller for multilevel cell memory
KR101139534B1 (ko) 반도체 기억장치
US6330688B1 (en) On chip error correction for devices in a solid state drive
US6219286B1 (en) Semiconductor memory having reduced time for writing defective information
US20010038554A1 (en) Semiconductor memory device and restoration method therefor
US7373564B2 (en) Semiconductor memory
US20030046631A1 (en) Error correction scheme for use in flash memory allowing bit alterability
KR20080080041A (ko) 메모리 컨트롤러 및 반도체 장치
JP5657079B1 (ja) 半導体記憶装置
US5883903A (en) Semiconductor memory of XN type having parity corresponding to n×m bits
EP0153752B1 (en) Semiconductor memory device with a bit error detecting function
KR20000056995A (ko) 반도체장치
EP0428396A2 (en) Bit error correcting circuit for a nonvolatile memory
JP2848300B2 (ja) 不揮発性半導体記憶装置
JP4641338B2 (ja) 不揮発性半導体記憶装置及びシステム
JP2006024342A (ja) 不揮発性半導体記憶装置、不揮発性半導体記憶装置の書き込み方法、メモリカード及びicカード
TWI539465B (zh) 半導體儲存裝置及其冗餘方法
JP4273109B2 (ja) メモリコントローラ及びフラッシュメモリシステム
JP2006127441A (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP2006073108A (ja) 半導体集積回路
JPH04123398A (ja) 複合半導体メモリ装置

Legal Events

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