KR100894464B1 - Ecc의 코드 길이를 변경할 수 있는 반도체 메모리 장치 - Google Patents

Ecc의 코드 길이를 변경할 수 있는 반도체 메모리 장치 Download PDF

Info

Publication number
KR100894464B1
KR100894464B1 KR1020070078458A KR20070078458A KR100894464B1 KR 100894464 B1 KR100894464 B1 KR 100894464B1 KR 1020070078458 A KR1020070078458 A KR 1020070078458A KR 20070078458 A KR20070078458 A KR 20070078458A KR 100894464 B1 KR100894464 B1 KR 100894464B1
Authority
KR
South Korea
Prior art keywords
parity
bits
bit
data
syndrome
Prior art date
Application number
KR1020070078458A
Other languages
English (en)
Other versions
KR20080013755A (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 KR20080013755A publication Critical patent/KR20080013755A/ko
Application granted granted Critical
Publication of KR100894464B1 publication Critical patent/KR100894464B1/ko

Links

Images

Classifications

    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Error Detection And Correction (AREA)

Abstract

본 발명은 복수의 ECC 코드 길이로 전환 가능한 반도체 메모리 장치를 제공하는 것을 목적으로 한다.
메모리 셀 어레이 내의 데이터 메모리 셀 어레이와 패리티 메모리 셀 어레이를, 복수의 ECC 코드 길이에 대응한 구성으로 하고, 기록 데이터로부터 패리티를 생성하는 입력측 패리티 생성 회로와, 판독 데이터로부터 패리티를 생성하는 출력측 패리티 생성 회로와, 판독 패리티 비트와 생성 패리티 비트로부터 오류 비트를 나타내는 신드롬 비트를 생성하는 신드롬 생성 회로를 복수의 ECC 코드 길이에 따라 전환 가능하게 구성한다.

Description

ECC의 코드 길이를 변경할 수 있는 반도체 메모리 장치{SEMICONDUCTOR MEMORY DEVICE CAPABLE OF CHANGING ECC CODE LENGTH}
본 발명은 기억 데이터의 오류 정정이 가능한 반도체 메모리 장치에 관한 것이며, 특히 오류 정정을 위한 ECC(에러 정정 부호)의 코드 길이를 변경할 수 있는 반도체 메모리 장치에 관한 것이다.
DRAM 등의 반도체 메모리 장치는 대용량화에 따라서 불량 비트의 구제가 점점 중요해지고 있다. 종래로부터 불량 비트의 구제에는 용장 메모리 셀 어레이를 설치하여, 불량 메모리 셀을 용장 메모리 셀로 대체하는 용장 구성의 반도체 메모리 장치가 보급되고 있다.
최근에, 용장 메모리 셀과 치환을 행하지 않고, 기억 데이터의 오류 정정이 가능한 반도체 메모리 장치가 제안되어 있다. 예컨대, 특허 문헌 1 등이다.
이 기억 데이터의 오류 정정이 가능한 반도체 메모리 장치는, 데이터를 기억하는 메모리 셀 어레이에 추가하여, 기록 데이터로부터 생성한 패리티 비트를 기억하는 패리티 메모리 셀 어레이를 설치하고, 기록시에는 입력 데이터로부터 패리티 비트를 생성하며, 입력 데이터와 패리티 데이터를 기억하고, 판독시에는 판독 데이 터로부터 패리티 비트를 생성하여 기억된 패리티 비트와 비교하고, 오류 비트 정보를 갖는 신드롬 데이터(syndrome data)를 생성하며, 그 신드롬 데이터에 기초하여 오류 비트를 정정하여 정정된 판독 데이터를 출력한다.
이 ECC에서는 어떤 해밍 코드에 의하면, 8 비트의 데이터에 대하여 4 비트의 패리티 비트를 이용하여, 8 비트의 데이터 1 비트의 오류를 정정할 수 있다. 또한, 16 비트의 데이터에 대하여 5 비트의 패리티 비트를 이용함으로써, 16 비트 중 1 비트의 오류를 정정할 수 있다. 그리고, 일반화하면, 2의 N승(2N) 비트의 데이터에 대하여 N+1 비트의 패리티 비트를 이용함으로써, 2의 N승 비트 중 1 비트의 오류를 정정할 수 있다.
[특허 문헌 1] 일본 특허 공개 제2005-44386호 공보
상기한 바와 같이, 메모리 셀 어레이에 데이터의 영역에 추가하여 패리티 영역을 설치하고, 주변 회로로서 패리티 생성 회로와 오류 정정 회로를 설치함으로써, 불량 비트에 대한 오류 정정이 가능해지며, 수율 향상과 그것에 따른 비용 절감을 실현할 수 있다.
그러나, ECC의 코드 길이에 의존하여 오류 정정 능력이 다르며, 오류 정정 능력에 따라 수율도 다르다. 전술한 2의 N승 비트의 데이터에 대하여 N+1 비트의 패리티 비트를 이용한다. 따라서, N이 작을수록 메모리 셀 어레이의 용장성이 높아지고, 결함 밀도가 낮은 경우에는 높은 용장성이 칩 면적을 증대시켜 비용 상승을 초래하지만, 결함 밀도가 높은 경우에는 구제 확률이 높아지며 비용 상승을 억제할 수 있다. 한편, N이 클수록 메모리 셀 어레이의 용장성이 낮아지며, 결함 밀도가 낮은 경우에는 비용 상승을 억제할 수 있지만, 결함 밀도가 높아지면 낮은 오류 정정 능력에 의해 구제 확률이 저하되어 반대로 비용 상승을 초래한다.
즉, ECC의 코드 길이에 관해서는 코드 길이를 길게 하는 것에 의한 에러 정정 확률의 향상과 수율 향상의 가능성과, 코드 길이를 길게 하는 것에 의한 패리티 비트용 메모리 셀 어레이 영역의 증대와 그것에 따른 칩의 비대화는 트레이드 오프의 관계에 있다. 게다가, 이들은 결함 밀도에 의존하여 변동한다.
따라서, 반도체 메모리 장치를 설계할 때에, 어느 정도의 결함 밀도가 되는지를 예측하여 최적의 ECC 코드 길이를 결정해야 한다. 그러나, 이 예측과 판단이 반드시 용이하지는 않다.
여기서, 본 발명의 목적은 ECC의 코드 길이를 최적화할 수 있는 반도체 메모리 장치를 제공하는 것이다.
또한, 본 발명의 다른 목적은 ECC의 코드 길이를 결함 밀도에 따라 최적화할 수 있는 반도체 메모리 장치를 제공하는 것이다.
또한, 본 발명의 다른 목적은 ECC의 코드 길이에 따라 패리티 메모리 셀 어레이의 일부를 임의로 변경할 수 있는 반도체 메모리 장치를 제공하는 것이다.
상기한 목적을 달성하기 위해, 본 발명의 제1 측면에 의하면, 메모리 셀 어레이 내의 데이터 메모리 셀 어레이와 패리티 메모리 셀 어레이를 복수의 ECC 코드 길이에 대응한 구성으로 하고, 기록 데이터로부터 패리티를 생성하는 입력측 패리티 생성 회로와, 판독 데이터로부터 패리티를 생성하는 출력측 패리티 생성 회로와, 판독 패리티 비트와 생성 패리티 비트로부터 오류 비트를 나타내는 신드롬 비트를 생성하는 신드롬 생성 회로를 복수의 ECC 코드 길이에 따라 전환 가능하게 구성한다.
바람직한 형태에 의하면, 입력측 패리티 생성 회로와 출력측 패리티 생성 회로는 동일한 회로 구성이기 때문에 공유화하여, 기록시와 판독시에 입출력을 전환하여 사용할 수 있다. 또한, 신드롬 생성 회로를 패리티 생성 회로와 일체로 구성할 수도 있다. 따라서, 이들 회로를 공통화하고, 기록시와 판독시에 입출력을 전환하는 동시에, ECC의 코드 길이에 따라 일부의 구성을 전환하도록 한다. 이것에 의 해, 다른 ECC의 코드 길이로 전환 가능한 반도체 메모리 장치를 제공할 수 있다.
상기한 목적을 달성하기 위해, 본 발명의 제2 측면에 의하면, 오류 정정 기능을 갖는 반도체 메모리 장치에 있어서,
복수의 메모리 셀을 갖고, 워드의 선택에 응답하여 2의 I승 비트(I는 2 이상의 정수)의 데이터를 데이터 버스에 대하여 입출력하는 데이터 메모리 셀 어레이와,
복수의 메모리 셀을 갖고, 상기 워드의 선택에 응답하여 상기 2의 I승 비트의 데이터에 대응하는 비트수의 패리티 도트를 패리티 버스에 대하여 입출력하는 패리티 메모리 셀 어레이와,
데이터 입출력 단자와,
상기 데이터 입출력 단자로부터 입력되는 2의 I승 비트의 기록 데이터로부터 상기 패리티 비트를 생성하여 상기 패리티 버스에 출력하는 패리티 생성 회로와,
상기 데이터 메모리 셀 어레이로부터 상기 데이터 버스에 판독되는 2의 I승 비트의 판독 데이터와 상기 패리티 메모리 셀 어레이로부터 상기 패리티 버스에 판독되는 패리티 비트로부터 상기 판독된 데이터의 오류 비트 위치를 나타내는 신드롬 비트를 생성하는 신드롬 생성 회로와,
상기 신드롬 비트에 기초하여 상기 판독 데이터의 오류를 정정하는 오류 정정 회로를 갖고,
상기 패리티 생성 회로 및 신드롬 생성 회로는, 2의 I승 비트의 데이터와 I+1 비트의 패리티 비트로 이루어지는 제1 ECC와, 2의 I-J승 비트(I>J, J는 1 이 상의 정수)의 데이터와 I-J+1 비트의 패리티 비트를 2의 J승 그룹 포함하는 제2 ECC 중 어느 하나로 전환 가능하게 구성되어 있는 것을 특징으로 한다.
상기한 목적을 달성하기 위해, 본 발명의 제3 측면에 의하면, 오류 정정 기능을 갖는 반도체 메모리 장치에 있어서,
복수의 메모리 셀을 갖고, 워드의 선택에 응답하여 2의 I승 비트(I는 2 이상의 정수)의 데이터를 데이터 버스에 입출력하는 데이터 메모리 셀 어레이와,
복수의 메모리 셀을 갖고, 상기 워드의 선택에 응답하여 상기 2의 I승 비트의 데이터에 대응하는 비트수의 패리티 비트를 패리티 버스에 입출력하는 패리티 메모리 셀 어레이와,
데이터 입출력 단자와,
상기 데이터 입출력 단자로부터 입력되는 2의 I승 비트의 기록 데이터로부터 상기 패리티 비트를 생성하여 상기 패리티 버스에 출력하는 입력측 패리티 생성 회로와,
상기 데이터 메모리 셀 어레이로부터 상기 데이터 버스에 판독되는 2의 I승 비트의 판독 데이터로부터 상기 패리티 비트를 생성하는 출력측 패리티 생성 회로와,
상기 출력측 패리티 생성 회로가 생성한 패리티 비트와 상기 패리티 메모리 셀 어레이로부터 상기 패리티 버스에 판독되는 패리티 비트로부터 상기 판독된 데이터의 오류 비트 위치를 나타내는 신드롬 비트를 생성하는 신드롬 생성 회로와,
상기 신드롬 비트에 기초하여 상기 판독 데이터의 오류를 정정하는 오류 정 정 회로를 갖고,
상기 입력측 패리티 생성 회로와 출력측 패리티 비트 생성 회로와 신드롬 생성 회로는, 2의 I승 비트의 데이터와 그것에 대응하는 비트수의 패리티 비트로 이루어지는 제1 ECC와, 2의 I-J승 비트(I> J, J는 1 이상의 정수)의 데이터와 그것에 대응하는 비트수의 패리티 비트를 2의 J승 그룹 포함하는 제2 ECC 중 어느 하나로 전환 가능하게 구성되어 있는 것을 특징으로 한다.
본 발명에 의하면, 복수의 ECC의 코드 길이의 구성으로 전환 가능한 반도체 메모리 장치를 제공할 수 있다.
이하, 도면에 따라 본 발명의 실시형태에 대해서 설명한다. 단, 본 발명의 기술적 범위는 이들의 실시형태에 한정되지 않고, 특허청구범위에 기재된 사항과 그 균등물까지 미치는 것이다.
도 1은 오류 정정 가능한 반도체 메모리 장치의 구성도이다. 이 반도체 메모리 장치에서는 메모리 셀 어레이가, 데이터를 기억하는 메모리 셀 어레이(D-MCA)와, 패리티 비트를 기억하는 메모리 셀 어레이(P-MCA)를 갖는다. 그리고, 기록되는 입력 데이터(Din)와 판독되는 출력 데이터(Dout)는 공통의 입출력 단자로부터 입출력된다.
기록시에 입력 데이터(Din)는 그대로 데이터 메모리 셀 어레이(D-MCA)에 기록되는 동시에, 패리티 생성 회로(10)에 공급된다. 패리티 생성 회로(10)는 입력 데이터(Din)의 오류를 검출하여 정정 가능한 부호의 패리티 비트를 생성하고, 상기 기록된 입력 데이터(Din)와 관련시켜 패리티 메모리 셀 어레이(P-MCA)에 패리티 비트를 기록한다. 일반적으로는 공통의 워드선 선택에 대응하여, 입력 데이터(Din)가 기록 데이터(Dw)로서, 패리티 생성 회로(10)에서 생성된 패리티 비트가 기록 패리티(Pw)로서, 각각 데이터 메모리 셀 어레이(D-MCA)와 패리티 메모리 셀 어레이(P-MCA)에 기억된다.
그리고, 판독시에 공통의 워드선 선택에 응답하여, 데이터 메모리 셀 어레이(C-MCA)로부터 판독 데이터(Dr)가 출력되고, 패리티 메모리 셀 어레이(P-MCA)로부터 판독 패리티 비트(Pr)가 출력된다. 그리고, 오류 정정 유닛(12)은 판독 데이터(Dr)로부터 새로운 패리티 비트를 생성하고, 판독한 패리티 비트(Pr)와의 비교에 의해 오류 비트의 위치를 나타내는 신드롬 비트를 생성하고, 그 신드롬 비트에 기초하여 판독 데이터(Dr)의 오류 비트를 정정하며, 출력 데이터(Dout)로서 출력한다.
본 실시형태에서는 메모리 셀 어레이의 구성을 변경하지 않고(또는 일부를 변경하는 것만으로), 패리티 생성 회로(10)와 오류 정정 유닛(12)을 다른 ECC의 코드 길이에 대응하여 전환 가능하게 한다. 이것에 의해, 동일한 반도체 메모리 장치에 있어서, 제조 후에 또는 제조의 최종 단계에서 최적의 ECC 코드 길이를 선택하고, 생성 회로(10)와 오류 정정 유닛(12)을 그 선택된 ECC의 코드 길이에 대응하는 구성으로 전환할 수 있다. 따라서, 제품의 제조 라인의 결함 밀도 등에 대응한 최적의 ECC 코드 길이로 설정할 수 있고, 그 시점에서 최소의 비용 또한 최대의 수율 을 실현할 수 있다. 또한, 시험 공정에서 임의의 ECC 코드 길이로 설정하여 동작 시험을 행할 수 있고, 임의의 조건하에서 신뢰성 시험을 행할 수 있다.
도 2는 ECC의 3개의 코드 길이에서의 데이터와 패리티의 관계를 도시하는 도면이다. 이 도 2에서는 1 메가비트 용량의 메모리 장치를 전제로 하여, ECC의 코드 길이가, 8 비트 데이터·4 비트 패리티의 8-4 타입과, 16 비트 데이터·5 비트 패리티의 16-5 타입과, 32 비트 데이터·6 비트 패리티의 32-6 타입인 경우의 메모리 셀 어레이의 구성을 도시한다.
해밍 코드에 의하면, 8 비트의 데이터로부터 1 비트의 불량을 정정하기 위해서는 4 비트의 패리티 비트가 필요하다. 이 8 비트의 데이터와 4 비트의 패리티와가 ECC이며, 이 ECC로부터 불량 비트의 검출에 필요한 신드롬 비트가 생성된다. 따라서, 8-4 타입의 ECC 코드 길이는 12 비트이며, 데이터가 8 비트, 패리티가 4 비트가 된다.
마찬가지로, 16 비트의 데이터로부터 1 비트의 불량을 정정하기 위해서는 5비트의 패리티 비트가 필요하다. 따라서, 이 ECC의 코드 길이는 21 비트이며, 데이터가 16 비트, 패리티가 5 비트이다. 또한, 32 비트의 데이터로부터 1 비트의 불량을 정정하기 위해서는 6 비트의 패리티 비트가 필요하다. 이 ECC의 코드 길이는 38 비트이며, 데이터가 32 비트, 패리티가 6 비트이다.
이것을 일반식으로 나타내면, 2의 J승 비트의 데이터로부터 1 비트의 불량을 정정하기 위해서는 J+1 비트의 패리티 비트가 필요하게 된다. 즉, ECC는 2의 J승 비트의 데이터와, J+1 비트의 패리티의 조합이 된다.
그리고, 1 메가비트의 메모리 장치를 전제로 하면, 8-4 타입의 ECC에서는, 1 워드가 8 비트 데이터로 이루어지며, 131072 워드로 합계 1 메가비트가 된다. 이 1 메가비트의 데이터에 대하여, 패리티 비트는, 1 워드가 4 비트로 이루어지며, 131072 워드 필요하기 때문에, 합계로 0.5 메가비트가 된다. 즉, 메모리 셀 어레이의 용량은 1.5 메가비트가 필요하게 된다.
마찬가지로, 16-5 타입의 ECC에서는, 1 워드가 16 비트 데이터로 이루어지며, 65536 워드로 합계 1 메가비트가 된다. 이 1 메가비트의 데이터에 대하여, 패리티 비트는, 1 워드가 5 비트로 이루어지며, 65536 워드 필요하기 때문에, 합계로 약0.31 메가비트가 된다. 즉, 메모리 셀 어레이의 용량은 1.31 메가비트가 필요하게 된다.
마찬가지로, 32-6 타입의 ECC에서는, 1 워드가 32 비트 데이터로 이루어지며, 32768 워드로 합계 1 메가비트가 된다. 이 1 메가비트의 데이터에 대하여, 패리티 비트는, 1 워드가 6 비트로 이루어지며, 32768 워드 필요하기 때문에, 합계로 약0.19 메가비트가 된다. 즉, 메모리 셀 어레이의 용량은 1.19 메가비트가 필요하게 된다.
상기한 바와 같이, ECC의 코드 길이가 길어짐에 따라 용장 패리티 비트의 용량은 작아지며, 칩 사이즈를 작게 할 수 있다. 그러나, ECC의 코드 길이가 길어지면, 1 비트의 구제 단위(1 워드)의 비트수가 많아지기 때문에, 구제 확률은 낮아진다. 즉, 8-4 타입에서는 8 비트의 데이터로부터 1 비트가 구제 가능하며, 16-5 타입에서는 16 비트의 데이터로부터 1 비트가 구제 가능하고, 32-6 타입에서는 32 비 트의 데이터로부터 1 비트가 구제 가능하다. 따라서, 3 종류 중 8-4 타입이 가장 구제 확률이 높고, 32-6 타입이 가장 구제 확률이 낮다.
단, 8-4 타입은 용장 패리티 비트가 가장 많고, 가장 큰 메모리 용량을 필요로 하며, 32-6 타입은 용장 패리티 비트가 가장 적고, 가장 작은 메모리 용량이 된다. 따라서, 구제 확률과 필요한 메모리 용량은 트레이드 오프의 관계로 되어 있다.
도 1에 도시한 오류 정정 가능한 반도체 메모리 장치에서는 도 2에 도시한 바와 같은 다른 ECC의 코드 길이 중 최적의 것을 선택하여, 메모리의 셀 어레이나 패리티 생성 회로나 신드롬 생성 회로의 설계가 행해진다.
도 3은 ECC의 코드 길이에 대응한 평균 결함 밀도와 수율 및 비용 손실(cost disadvantage)과의 관계를 나타내는 그래프도이다. 도 3의 그래프(A)는 횡축이 1 Mbit에 대해서 결함수를 나타내는 평균 결함 밀도이며, 종축이 ECC 구제에 의한 수율이다. 또한, 단일 불량 비트가 랜덤으로 발생하는 것을 전제로 하여 프와송 분포(Poisson distribution)의 불량 비트를 이용한 확률 계산에 의해 구해진다. 횡축의 결함 밀도가 0, 1, 10이면, ECC에 의해 오류 정정 가능하기 때문에, 어느 ECC 타입이어도 대략 수율은 100%이다. 그러나, 결함 밀도가 높아지면, 8-4 타입이 가장 구제 확률이 높기 때문에 수율도 높아지며, 32-6 타입이 가장 구제 확률이 낮기 때문에 수율도 낮아진다.
도 3의 그래프 B는 횡축이 평균 결함 밀도이며, 종축이 비용 손실의 영향도 지표이다. 여기서는 1장의 웨이퍼에 대해서 칩 탑재수가 메모리 셀 어레이의 용량 의 역수로 결정된다고 가정한 제조 효율과 그래프 A의 수율에 기초하여, 비용 손실의 영향도를 구하였다. 종축의 수치가 낮을수록 저비용, 높을수록 고비용이 된다. 그래프 B로부터 알 수 있는 것은 결함 밀도가 10 이하인 경우와 100 이상인 경우이며, ECC 타입별의 비용이 역전하고 있는 것이다. 즉, 결함 밀도가 10 이하에서는 그래프 A에 나타낸 바와 같이 수율이 대략 100%이기 때문에, 칩의 비용은 1장의 웨이퍼에 대한 칩 탑재수에 의존한다. 따라서, 32-6 타입이 가장 메모리 용량이 작기 때문에 비용도 최소가 되고, 8-4 타입이 가장 메모리 용량이 크기 때문에 비용도 최대가 된다. 그러나, 결함 밀도가 100 이상이 되면, 32-6 타입의 수율이 8-4 타입보다도 크게 저하하기 때문에, 그것에 의한 비용 손실 비율이 커진다. 따라서, 보다 높은 결함 밀도에서는 8-4 타입이 가장 저비용이며, 32-6 타입이 가장 고비용이다.
도 3의 그래프로부터 이해할 수 있는 바와 같이, 결함 밀도가 높은 제조 능력하에서는 ECC을 8-4 타입으로 하는 것이 가장 저비용으로 이어지는 것인 반면, 결함 밀도가 낮은 제조 능력하에서는 ECC을 32-6 타입으로 하는 것이 가장 저비용으로 이어진다. 즉, 결함 밀도가 높은 경우는 ECC의 코드 길이를 짧게 하고, 결함 밀도가 낮은 경우는 ECC의 코드 길이를 길게 하는 것이 바람직하다.
그러나, 제조 라인의 결함 밀도를 예측하는 것은 곤란한 동시에, 제조 라인의 결함 밀도는 능숙(proficiency) 곡선에 의해 차례대로 변동하는 경우가 많다. 또한, 제조 라인에 의해서도 결함 밀도가 다른 경우도 있다. 따라서, 최적의 ECC를 선택하는 것은 용이하지 않다.
[구체예]
도 4는 본 실시형태에 있어서의 반도체 메모리 장치의 구성도이다. 이 메모리 장치에서는 데이터를 기억하는 데이터 메모리 셀 어레이(D-MCA)와, 패리티 비트를 기억하는 패리티 메모리 셀 어레이(P-MCA)를 갖고, 메모리 셀 어레이 내에는 워드선(WL)과 비트선(BL)과의 교차부에 셀(C)을 갖는다. 그리고, 공통의 워드 선택 회로(22)에 의해 1개의 워드선(WL)이 선택되면, 데이터 메모리 셀 어레이(D-MCA)와 패리티 메모리 셀 어레이(P-MCA)에서 동시에 기록 또는 판독이 행하여진다. 따라서, 메모리 셀 어레이에는 기록용과 판독용 증폭기(24)가 설치되어 있다.
이 증폭기(24)는 데이터와 패리티 비트의 버스(25)를 통해, ECC 연산 회로(26)에 접속된다. 또한, 데이터의 입력 단자(29)에는 데이터 입력 버퍼(28)가, 데이터의 출력 단자(31)에는 데이터 출력 버퍼(30)가 각각 접속된다. 데이터 입력 단자(29)와 출력 단자(31)는 동일한 입출력 단자로 구성되어도 좋다. 도 4의 예에서는 데이터 입력 단자(29)와 출력 단자(31)는 각각 8 비트 단자이지만, 단자수는 그것에 한정되지 않는다.
메모리 셀 어레이(D-MCA, P-MCA)에서는 1개의 워드선 선택에 응답하여, 소정비트의 데이터와 그것에 대응하는 패리티 비트가 기록 또는 판독된다. 그리고, ECC의 코드 길이(또는 타입)가 다르더라도 메모리 셀 어레이의 구성은 고정적이다. 단, 패리티 메모리 셀 어레이(P-MCA)는 후술하는 바와 같이, ECC의 코드 길이에 따라 불필요한 영역이 존재하기 때문에, 필요에 따라 불필요 영역을 삭제하여 칩 사이즈의 축소화를 도모하는 것도 가능하다. 불필요한 패리티의 영역을 무시하면, 데 이터 메모리 셀 어레이(D-MCA)도 패리티 메모리 셀 어레이(P-MCA)도 고정된 구성이 되며, 증폭기(24)도 고정된 구성이 된다.
그것에 따라, 버스(25)도 ECC의 코드 길이에 의존하지 않고, 동일한 비트수의 데이터 버스와 패리티 비트의 버스로 구성된다. 단, 버스(25) 중 어느 비트를 ECC 연산 회로(26)에 접속할지는 ECC의 코드 길이에 의존하여 전환된다.
그리고, ECC 연산 회로(26)는 도 1의 패리티 생성 회로와 신드롬 생성 회로 및 오류 정정 회로를 갖는다. 이들의 회로 구성은 ECC의 코드 길이에 의존하여, 전환 가능한 구성을 갖는다. 따라서, ECC 연산 회로(26)가 전환 제어 신호(CNT)에 응답하여 그 구성이 전환된다. 그러나, 그 전환은 입출력 조합의 전환이기 때문에, 스위치군(群)에 의해 실현 가능하며, 연산 회로를 구성하는 회로 요소의 전환은 필요 없다.
주변 회로(20)는 입력 커맨드를 해석하여 판독(read) 동작과 기록(write) 동작의 제어 신호를 생성하고, 선택된 ECC의 코드 길이에 따라 전환 제어 신호를 생성하며, 시험 모드에 있어서 선택된 ECC의 코드 길이에 따라 시험용 전환 제어 신호를 생성한다. 이들의 제어 신호(CNT)에 따라 ECC 연산 회로의 스위치군이 전환 제어된다.
데이터 입력 버퍼(28)는 데이터 입력 단자로부터 입력되는 데이터를 ECC 연산 회로(26)에 공급하고, 데이터 출력 버퍼(30)는 ECC 연산 회로(26)로부터 출력되는 정정된 데이터를 데이터 출력 단자(31)로부터 출력한다. 이들의 버퍼는 데이터 버스(25)의 비트수와 입출력 단자(30, 31)의 비트수와의 정합을 얻기 위한 직렬· 병렬 변환 회로 및 병렬·직렬 변환 회로를 갖더라도 좋다. 또는, 입출력 단자(30, 31)의 비트수가 데이터 버스(25)의 비트수와 동일하여도 좋다.
도 5는 본 실시형태에 있어서 ECC의 코드 길이에 따른 메모리 셀 어레이의 구성을 도시하는 도면이다. ECC의 코드 길이는 전술한 바와 같이 8-4 타입, 16-5 타입, 32-6 타입의 3 종류가 도시되어 있다. 이하의 실시형태에서는 일례로 ECC의 코드 길이로서 상기 3 종류의 코드 길이에 적절하게 전환 가능한 구성을 도시한다. 그러나, 이외의 타입 ECC의 코드 길이로도 적용할 수 있는 것은 분명하다.
메모리 셀 어레이는 데이터 메모리 셀 어레이(D-MCA)와, 패리티 메모리 셀 어레이(P-MCA)를 갖는다. 만일, 데이터 용량을 1 Mbit로 하면, 데이터 메모리 셀 어레이(D-MCA)는 32768 word×32 bit로 구성된다. 즉, 32 비트란, 워드선의 선택에 응답하여 데이터 메모리 셀 어레이(D-MCA)에 입출력되는 비트수이며, 도 5 중 1 평면(W1) 내에 저장되는 비트수이다. 그리고, 이 32 비트의 평면(또는 1 워드) W1∼W32768이 32768면(또는 워드)에 논리적으로 분리되어 있다. 따라서, 논리 어드레스를 디코드함으로써, 32768 워드 중 1 워드(32 비트)가 데이터 메모리 셀 어레이(D-MCA)에 대하여 입출력된다. 즉, 데이터 버스(25)는 32개 설치되게 된다. 그리고, 32 비트의 데이터가 동시에 입출력되는 경우는 데이터 입출력 단자는 32 비트 이며, 32 비트의 데이터가 N회에 나누어 시분할로 입출력되는 경우는 데이터 입출력 단자는 32/N 비트이다. 시분할 입출력하기 위해서는 입출력 버퍼에 직렬/병렬 변환, 병렬/직렬 변환 회로가 설치된다.
상기한 바와 같이, 행 어드레스를 디코드하여 워드선이 선택되고, 32 비트의 데이터와 16, 10 또는 6 비트의 패리티 비트가 동시에 버스에 입출력된다. 혹은 행 어드레스를 디코드하여 워드선이 선택되고, 2의 N승 그룹의 32 비트의 데이터와 16, 10 또는 6 비트의 패리티 비트가 센스 앰프에 출력되며, 또한, 열 어드레스로 2의 N승 분의 1이 선택되고, 최종적으로 32 비트의 데이터와 16, 10 또는 6 비트의 패리티 비트가 동시에 버스에 입출력되어도 좋다.
8-4 타입의 경우는 데이터가 8(=2의 3승) 비트 단위이기 때문에, 워드선의 선택에 대응하여, 4 그룹의 8 비트 데이터가 데이터 메모리 셀 어레이(D-MCA)에 대하여 동시에 입출력된다. 16-5 타입의 경우는 데이터가 16(2의 4승) 비트 단위이기 때문에, 워드선의 선택에 대응하여, 2 그룹의 16 비트 데이터가 데이터 메모리 셀 어레이(D-MCA)에 대하여 동시에 입출력된다. 32-6 타입의 경우는 데이터가 32(2의 5승) 비트 단위이기 때문에, 1 그룹의 32 비트 데이터가 동시에 입출력된다.
한편, 패리티 메모리 셀 어레이(P-MCA)는 32768 word×16 bit로 구성된다. 즉, 워드선의 선택에 응답하여 패리티 메모리 셀 어레이(P-MCA)에 대하여 입출력되는 최대 비트수가 16 비트이다. 그리고, 16 비트의 평면(또는 1 워드) W1∼W32768이 32768면(또는 워드)에 논리적으로 분리되어 있다. 따라서, 패리티 버스(25)는 16개 설치되게 된다.
8-4 타입의 경우는 8 비트 데이터에 대하여 4 비트의 패리티 비트가 생성된다. 따라서, 워드선의 선택에 대응하여, 도면 중 볼드(bald)선의 프레임으로 나타내는 바와 같이, 4 그룹의 8 비트 데이터에 각각 대응하는 4 그룹의 4 비트 패리티 비트가 패리티 메모리 셀 어레이(P-MCA)에 대하여 입출력된다. 16-5 타입의 경우는 16 비트 데이터에 대하여 5 비트의 패리티 비트가 생성된다. 따라서, 워드선의 선택에 대응하여, 2 그룹의 16 비트 데이터에 각각 대응하는 2 그룹의 5 비트 패리티 비트가 패리티 메모리 셀 어레이(P-MCA)에 대하여 입출력된다. 따라서, 패리티 메모리 셀 어레이(P-MCA)에는 6 비트의 사용하지 않은 셀(도면에서 어둡게 표시한 부분)이 존재한다. 32-6 타입의 경우는 32 비트 데이터에 대하여 6 비트의 패리티 비트가 생성된다. 따라서, 워드선의 선택에 대응하여, 1 그룹의 32 비트 데이터에 각각 대응하는 1 그룹의 6 비트 패리티 비트가 패리티 메모리 셀 어레이(P-MCA)에 대하여 입출력된다. 따라서, 패리티 메모리 셀 어레이(P-MCA)에는 10 비트의 사용하지 않은 셀(도면에서 어둡게 표시한 부분)이 존재한다.
상기한 바와 같이, 다른 ECC의 코드 길이에 대응할 수 있도록 데이터 메모리 셀 어레이(D-MCA)에서는 최장 코드 길이에 대응하여, 2의 I승 비트를 1 워드로 하는 구성으로 하여, 2의 I-J승(I>J, J=1, 2, 3 …) 비트 데이터의 단위에 대응 가능하게 한다. 한편, 패리티 메모리 셀 어레이(P-MCA)에서는 최단 코드 길이에 대응하여, I-J+1 비트×2의 J승 그룹(J는 선택 가능한 최대값)의 비트를 1 워드로 하는 구성으로 한다.
그리고, ECC의 코드 길이가 최단 길이인 경우에는 패리티 메모리 셀 어레이(P-MCA)는 모든 메모리 셀이 사용되고, ECC의 코드 길이가 길어짐에 따라 일부의 메모리 셀은 더 이상 사용되지 않게 된다. 즉, 사용하지 않은 메모리 셀수가 증대한다.
이러한 구성으로 함으로써, 워드선 선택 회로(22)나 증폭기(24)나 버스(25) 를 포함하여 메모리 셀 어레이의 구성을 ECC의 코드 길이에 관계없이 고정적인 구성으로 할 수 있다. 따라서, ECC의 코드 길이를 전환 가능한 메모리 장치에 적용할 수 있다.
도 6은 본 실시형태에 있어서의 ECC 연산 회로의 개략 구성도이다. 기록시에는 입력되는 데이터(Din)는 기록 데이터 D<N:0>로서 데이터 메모리 셀 어레이에 기억되는 동시에, 입력측 패리티 생성 회로(260)에 입력된다. 입력측 패리티 생성 회로(26O)는 기록 데이터에 대응하는 비트수의 패리티 비트 P<L:0>를 생성하고, 패리티 메모리 셀 어레이(P-MCA)에 기억한다.
한편, 판독시에는 판독 데이터 D<N:0>와 판독 패리티 비트 P<L:0>가 신드롬 생성 회로(262)에 입력된다. 신드롬 생성 회로(262)는 구체적으로는, 판독 데이터로부터 그것에 대응하는 패리티 비트를 생성하는 출력측 패리티 생성 회로와, 여기서 생성된 패리티 비트와, 판독 패리티 비트로부터 신드롬 비트를 생성하는 신드롬 생성 회로를 갖는다. 단, 패리티 비트의 생성은 XOR 회로에 의해 데이터의 XOR 논리를 생성함으로써 행해지고, 신드롬 비트의 생성도, XOR 회로에 의해 양 패리티 비트의 XOR 논리를 생성함으로써 행해진다. 따라서, 출력측 패리티 생성 회로와 신드롬 생성 회로는 XOR 회로로 공통화하는 것이 가능하다.
그리고, 신드롬 디코더(264)는 신드롬 생성 회로(262)가 생성한 신드롬 비트 S<L:0>를 디코드하여, 어떤 비트에 오류가 존재하는지를 나타내는 오류 비트 신호 EC<L:0>를 생성한다. 마지막으로, 오류 정정 회로(266)가 오류 비트 신호 EC<L:0>에 기초하여, 판독 데이터 D<N:0>의 오류 비트를 정정(비트 반전)하고, 오류 정정된 판독 데이터가 출력 데이터(Dout)로서 출력된다. 전술한 출력측 패리티 생성 회로와 신드롬 생성 회로를 갖는 신드롬 생성 회로(262)와, 신드롬 디코더(264)를 합쳐서 신드롬 생성 회로라고 칭하여도 좋다.
또한, 입력측 패리티 생성 회로(260)는 XOR 회로를 갖고, 입력 데이터(Din) 중 선택된 일부 데이터의 XOR 논리를 생성하여 패리티 비트를 생성한다. 즉, 입력측 패리티 생성 회로(260)도 XOR 회로로 구성할 수 있다. 따라서, 입력측 패리티 생성 회로(260)와 신드롬 생성 회로(262)는 공통의 XOR 회로군으로 구성할 수 있으며, 기록시와 판독시에 입력 단자 및 출력 단자를 스위치로 전환하는 것이 바람직한 구성이다.
다음에, 일반적인 해밍 코드에 기초하는 패리티 비트에 대해서 설명한다. 이 설명에 의해, 후술하는 ECC 연산 회로의 ECC 코드 길이에 따른 전환 구조의 이해가 용이해진다.
도 7은 본 실시형태에 있어서의 패리티 체크 매트릭스의 구체예를 도시하는 도면이다. 도 7에는 도 5에서 도시한 1 워드, 32 비트의 데이터(D)에 대한 패리티 비트(p0∼p5)의 예를 도시하고 있다. 8-4 타입의 ECC 시스템의 경우는 4개의 그룹(0)∼(3)이, 16-5 타입의 ECC 시스템인 경우는 2개의 그룹(0)(1)이, 32-6 타입의 ECC 시스템의 경우는 1개의 그룹이 도시된다.
패리티 비트의 생성은 다음과 같다. 8-4 타입의 경우, 도면 중 100으로 나타내는 데이터(D0∼D7) 중 크로스(X)의 5 비트의 XOR 논리가 데이터(100)에 대한 패리티 비트(p0)가 된다. 다른 패리티 비트(p1∼p3)도 마찬가지로 크로스(X)가 부가 된 5 비트의 XOR 논리가 된다. 이 패리티 비트에 대한 크로스(X)의 위치는 각 데이터 비트(D0∼D7)에 대해서 보면(도 7의 세로 방향), 중복되지 않는 조합으로 되어 있다. 즉, 데이터(D0)에 대해서는 패리티 비트(p0, p2)에 크로스(X)가 배치되고, 이 조합(p0, p2)은 다른 데이터(D1∼D7)에는 존재하지 않는다. 중복되지 않는 조합으로 되어 있으면 좋기 때문에 다른 조합이어도 좋다.
8-4 타입의 경우, 상기 크로스(X)의 배치는 4개의 그룹(0)∼(3)에 있어서 공통화되어 있다.
16-5 타입인 경우의 패리티 비트의 생성도 마찬가지이며, 데이터(D0∼D15) 중 크로스(X)가 배치되어 있는 10 비트의 XOR 논리가 각각의 패리티 비트(p0∼p4)가 된다. 그리고, 크로스(X)의 조합은 패리티 비트(p0∼p3)에 있어서는 8-4 타입과 동일하게 되어 있다. 이것이 ECC의 코드 길이에 대응하는 전환 구조를 간단히 하는 것에 기여하고 있다. 그리고, 패리티 비트(p4)에 대한 크로스(X)의 위치는 모두 데이터(D8∼D15)에 배치되어 있다.
32-6 타입인 경우의 패리티 비트의 생성도 마찬가지로, 데이터(D0∼D31) 중 크로스(X)가 배치되어 있는 20 비트의 XOR 논리가 각각의 패리티 비트(p0∼p5)가 된다. 그리고, 크로스(X)의 조합은 패리티 비트(p0∼p3)에 있어서는 8-4 타입과 동일하게 되어 있어, ECC의 코드 길이에 대응하는 전환 구조를 간단히 하는 것에 기여하고 있다. 또한, 패리티 비트(p4)에 대한 크로스(X)의 위치는 데이터(D8∼D15, D24∼D31)에 배치되고, 패리티 비트(p5)에 대한 크로스(X)의 위치는 데이터(D16∼D31)에 배치되어 있다.
상기한 바와 같이, 최단 ECC의 코드 길이인 8-4 타입의 패리티 비트(p0∼p3)를 생성하는 데이터의 조합[크로스(X)의 조합]을 다른 ECC의 코드 길이와 동일하게 함으로써, 어느 ECC 코드 길이라도 패리티 비트(p0∼p3)를 생성하는 XOR 회로를 동일한 구성으로 할 수 있다.
다음에, 오류 정정에 대해서 설명한다. 8-4 타입을 예로 하면, 판독 데이터(D0∼D7)로부터 도 7의 매트릭스에 따라 XOR 논리를 생성하여 새로운 패리티 비트(p0∼p3)를 생성한다. 만일, 기록 데이터(D0∼D7)를 전부 「0」으로 가정하면, 기록시에 생성되는 패리티 비트(p0∼p3)는 「0000」이 된다. XOR 논리는 2 비트이면, 2 비트 데이터가 배타적인 경우에 「1」, 동일한 경우에 「0」이 되지만, 3 비트 이상의 경우는 데이터 「1」이 홀수인 경우에 「1」, 짝수인 경우에 「0」이 된다. 따라서, 기록 데이터가 전부 「0」이면, 모든 패리티 비트(p0∼p3)는 「0」이 된다.
그리고, 만일, 판독 데이터(D0∼D7)로부터 생성된 패리티 비트(p0∼p3)가 「1010」이 되었다고 하자. 이 경우, 판독된 패리티 비트 「0000」과 새롭게 생성된 패리티 비트 「1010」을 비교하면, 일치하지 않는 비트는 p0, p2이다. 즉, 이 비교를 XOR 논리의 생성으로 행하면, 얻어지는 비교 결과 코드는 「1010」이다. 이 비교 결과 코드 「1010」을 도 7의 매트릭스 크로스(X)의 조합과 대조하면, 데이터(D0) 크로스(X)의 조합이 일치하는 것이 판명된다. 따라서, 데이터(D0)에 오류가 있는 것이 검출된다. 즉, 판독 데이터(D0∼D7)는 「10000000」이며, 그리고 나서 생성된 패리티 비트(p0∼p3)는 「1010」이었다.
또한, 새롭게 생성된 패리티 비트가 「O000」인 경우는 신구의 패리티 비트가 일치하기 때문에, 오류는 존재하지 않는 것이 판명된다.
이와 같이, 기록 데이터(D0∼D7) 중 일부 비트의 독특한 조합의 XOR 논리에 의해 패리티 비트(p0∼p3)를 생성해 두고, 판독 데이터(D0∼D7)로부터 재차 새롭게 패리티 비트(p0∼p3)를 생성하며, 신구의 패리티 비트를 비교하여 일치하지 않는 비트의 조합으로부터, 판독 데이터(D0∼D7) 중 어느 비트에 오류가 있는지를 검출할 수 있다.
상기한 설명으로 이해할 수 있는 바와 같이, 입력측 패리티 생성 회로도 출력측 패리티 생성 회로도 모두 XOR 논리 회로로 구성할 수 있다. 또한, 양 패리티 비트를 비교하는 신드롬 생성 회로도 XOR 논리 회로로 구성할 수 있다. 그리고, 출력측 패리티 생성 회로와 신드롬 생성 회로를 동일한 XOR 논리 회로로 구성할 수 있다. 따라서, 입력측과 출력측 패리티 생성 회로와 신드롬 생성 회로를 전부 공통의 XOR 논리 회로로 구성하고, 기록시와 판독시에 판독 패리티 비트를 입력할지 여부를 전환하여, ECC의 코드 길이에 따라 어느 데이터군의 XOR 논리 출력을 패리티 비트 또는 신드롬 비트로서 출력할지를 전환함으로써, ECC 연산 회로를 최소 회로 규모로 할 수 있다.
도 8, 도 9는 본 실시형태에 있어서의 ECC 논리 회로의 구성도이다. 이 ECC 논리 회로에서는 입력측 패리티 생성 회로(260)와 출력측 패리티 생성 회로 및 신드롬 생성 회로(262)가 공통의 XOR 회로로 구성되어 있다. 이하, 이 공통화된 XOR 회로를 패리티/신드롬 생성 회로라고 칭한다. 또한, 도 8에는 ECC의 코드 길이에 따라 전환하기 위한 제어 신호(CNTCNT), 기록과 판독으로 전환하기 위한 제어 신호(CNT)를 생성하는 제어 신호 생성 회로(CONT)가 도시되어 있다.
도 7에서 설명한 바와 같이, 각 패리티 비트(p0∼p6)는 데이터(D0∼D7, D0∼D15, D0∼D31) 크로스(X)의 조합으로부터 생성된다. 따라서, 패리티/신드롬 생성 회로는 패리티 비트(p0∼p6)를 각각 생성하는 6개의 회로(P0/S0∼P5/S5)로 구성된다. 도면 중 S<N>은 신드롬 비트를 나타낸다.
데이터 메모리 셀 어레이(D-MCA)는 32 비트의 데이터 버스(25D)에 접속되고, 패리티 메모리 셀 어레이(P-MCA)는 16 비트의 패리티 버스(25P)에 접속되며, 이들의 버스(25D, 25P)가 접속망(NET1)을 통해 패리티/신드롬 생성 회로(P0/S0∼P5/S5)의 입력 단자에, 각각 대응하는 조합으로 접속된다. 그리고, 각 패리티/신드롬 생성 회로(P0/S0∼P5/S5)는 패리티 비트 P<L> 또는 신드롬 비트 S<L>를 출력한다. 이들 중 패리티 비트 P<5:0>, 2조의 P<4:0> 또는 4조의 P<3:0>는 패리티 셀 어레이(P-MCA)에 공급되고, 신드롬 비트 S<5:0>, 2조의 S<4:0> 또는 4조의 S<3:0>는 접속망(NET2)을 통해 도 9의 신드롬 디코더(2640∼2643)에 공급된다.
도 9에는 4개의 신드롬 디코더(2640∼2643)와, 오류 정정 회로(266)가 도시되어 있다. 신드롬 디코더는 각 신드롬 비트 S<5:0>, 2조의 S<4:0> 또는 4조의 S<3:0>를, 도 7의 패리티 체크 매트릭스를 저장한 ROM(28)의 크로스(X) 위치와 대조하여, 일치하는 비트를 나타내는 오류 정정 코드(EC)를 생성하고, 오류 정정 회로(266)에 제공한다. 도 9에 대해서는 후에 재차 상세히 설명한다.
패리티/신드롬 생성 회로(P0/S0)는 32 비트의 기록 데이터(Dw) 또는 판독 데 이터(Dr) 중 20 비트를 입력하고, 이들의 XOR 논리를 생성하여 패리티 비트 P<0>를 생성한다. 20 비트의 조합은 도 7의 크로스(X)에 도시되는 바와 같으며, ECC의 데이터 길이에 의존하지 않고 공통으로 되어 있다. 또한, 생성되는 패리티 비트 P<0>는 8-4 타입이면 4개의 패리티 비트 P<0>가, 16-5 타입이면 2개의 패리티 비트 P<0>가, 32-6 타입이면 1개의 패리티 비트 P<0>가 생성된다. 이 전환은 전환 제어 회로(CNT)에 따라 출력측 스위치군(SWout)에 의해 행해진다.
패리티/신드롬 생성 회로(P0/S0)는 판독시에 판독 데이터(Dr) 중 20비트의 XOR 논리에 추가하여, 판독된 패리티 비트 P<0>와의 XOR 논리도 생성하여, 신드롬 비트 S<0>를 생성한다. 입력되는 패리티 비트 P<0>는 8-4 타입이면 4개의 패리티 비트 P<0>, 16-5 타입이면 2개의 패리티 비트 P<0>, 32-6 타입이면 1개의 패리티 비트 P<0>가 되며, 출력되는 신드롬 비트 S<0>도 마찬가지로 타입별로 4개, 2개, 1개의 비트가 된다. 이들의 전환은 전환 제어 신호(CNT)에 따라 입력측 스위치군(SWin)과 출력측 스위치군(SWout)에 의해 행해진다.
패리티/신드롬 생성 회로(P1/S1∼P3/S3)도 상기한 패리티/신드롬 생성 회로(PO/S0)와 동일한 구성이다.
도 10∼도 16은 패리티/신드롬 생성 회로(P0/S0∼P3/S3)의 3개의 ECC 타입 별 회로도이다. 3개의 타입 각각에 패리티 생성 회로의 구성과, 신드롬 생성 회로의 구성이 도시된다. 도 16은 이들 6개의 회로 구성을 전환 가능하게 하는 스위치군을 포함한 도면이다.
도 10은 32-6 타입인 경우의 패리티 생성 회로이다. 이 회로는 8개의 3 입력 XOR 회로(2601∼2608)를 입력측에 설치하고, 24 비트의 입력 단자에 접속하고 있다. 그리고, 3 입력 XOR 회로의 출력이 4개의 2 입력 XOR 회로(2609∼2612)에 입력되고, 이들의 출력이 2개의 2 입력 XOR 회로(2613, 2614)에 입력되며, 그 출력이 최종단의 2 입력 XOR 회로(2615)에 입력되고, 그 출력이 패리티 비트 P<L>가 된다. 이 패리티 비트는 P<0>∼P<3> 중 어느 하나가 된다.
상기한 바와 같이, XOR 회로를 계층화한 구성으로 함으로써, 후술하는 바와 같이, 다른 ECC의 코드 길이로도 전환 가능하게 할 수 있다.
24 비트의 입력 단자는 4 그룹으로 나누어지고, 각 그룹에는 5 비트의 데이터가 입력되고, 나머지 1 비트는 그라운드 단자(GND)에 접속되어 논리 「0」이 된다. 논리 「0」은 XOR 논리에 어떠한 영향도 부여하지 않는다. 4 그룹의 5 비트 데이터는 도 7에 도시한 바와 같이, 32 비트의 데이터(D0∼D31)로부터 크로스(X)가 배치된 20 비트의 데이터 조합이다. 따라서, 패리티/신드롬 회로(P0/S0∼P3/S3) 각각에 도 7에서 도시한 조합의 20 비트의 데이터를 입력함으로써, 패리티 비트 P<0>∼P<3>를 각각 생성한다.
도 11은 32-6 타입인 경우의 신드롬 생성 회로이다. 이 회로도 도 10과 마찬가지로 24 비트의 입력 단자와, 8개의 3 입력 XOR 회로와, 7개의 2 입력 XOR 회로와, 1 비트의 출력 단자로 구성된다. 그리고, 4 그룹으로 나누어진 입력 단자에는 3 그룹에서는 5 비트 데이터가 입력되고, 나머지 1 비트가 그라운드 단자에 접속된다. 또 하나의 그룹에서는 도면 중 화살표(200)로 나타내는 바와 같이, 5 비트 데이터와 1 비트의 판독 패리티 비트가 입력된다. 즉, 20 비트의 판독 데이터와 1 비 트의 패리티 비트의 XOR 논리가 신드롬 비트 S<L>로서 출력된다. 즉, 도 11의 회로는 도 10은 화살표(200)의 입력 단자에, 그라운드(GND)의 논리 「0」을 입력할지, 판독한 패리티 비트 P<L>를 입력할지가 다른 뿐이다. 따라서, 기록과 판독을 구별하는 제어 신호에 의해 이들의 전환이 행해지면 좋다.
도 12는 16-5 타입인 경우의 패리티 생성 회로이다. 이 회로에서는 24 비트의 입력 단자와, 8개의 3입력 XOR 회로(XOR3)와, 6개의 2 입력 XOR 회로(XOR2)와, 2 비트의 출력 단자 P<L>로 구성된다. 즉, 최후단의 2 입력 XOR 회로의 부분(210)은 사용되지 않는다. 그리고, 도 7에 도시되는 바와 같이, 16-5 타입의 경우는 2 그룹의 데이터에 대하여 각각 패리티 비트 P<L>이 생성되기 때문에, 도면 중 수평 파선으로 분리된 상하의 XOR 회로군에 의해 각각의 그룹의 XOR 논리가 생성된다. 즉, 1번째 그룹의 데이터 D<15:0>-0 중 10 비트로부터, 패리티 비트 P<L>-0이 생성되고, 2번째 그룹 데이터 D<15:0>-1 중 10 비트로부터, 패리티 비트 P<L>-1이 생성된다.
도 13은 16-5 타입인 경우의 신드롬 생성 회로이다. 도 12와 마찬가지로 24 비트의 입력 단자와, 8개의 3입력 XOR 회로(XOR3)와, 6개의 2 입력 XOR 회로(XOR2)와, 2 비트의 출력 단자 S<L>로 구성되고, 최후단의 2 입력 XOR 회로의 부분(210)은 사용되지 않는다. 그리고, 도 12와는 화살표(220)의 입력 단자의 위치에, 패리티 비트 P<L>-0, P<L>-1이 입력되는 것이 다르며, 출력이 신드롬 비트인 것도 다르다. 입력되는 데이터 D<15:0>의 조합은 도 12와 동일하다. 따라서, 기록시와 판독시에는 화살표(220)의 부분이 전환된다.
도 14는 8-4 타입인 경우의 패리티 생성 회로이다. 이 회로에서는 24 비트의 입력 단자와, 8개의 3 입력 XOR 회로(XOR3)와, 4개의 2 입력 XOR 회로(XOR2)와, 4 비트의 출력 단자 P<L>로 구성된다. 즉, 최후단의 3개의 2 입력 XOR 회로의 부분(230)은 사용되지 않는다. 그리고, 도 7에 도시되는 바와 같이, 8-4 타입의 경우는 4 그룹의 데이터에 대하여 각각 패리티 비트 P<L>이 생성되기 때문에, 도면 중 수평 파선으로 분리된 4개의 XOR 회로군에 의해 각각의 그룹의 XOR 논리가 생성된다. 즉, 1번째 그룹의 데이터 D<7:0>-0 중 5 비트로부터, 패리티 비트 P<L>-0이 생성되고, 2번째 그룹의 데이터 D<7:0>-1 중 5 비트로부터, 패리티 비트 P<L>-1이 생성되며, 3, 4번째 그룹도 마찬가지로 패리티 비트 P<L>-2, P<L>-3이 생성된다.
도 15는 8-4 타입인 경우의 신드롬 생성 회로이다. 도 14와 마찬가지로 24 비트의 입력 단자와, 8개의 3 입력 XOR 회로와, 4개의 2 입력 XOR 회로와, 4 비트의 출력 단자 S<L>로 구성되고, 최후단의 3개의 2 입력 XOR 회로의 부분(230)은 사용되지 않는다. 그리고, 도 14와는 화살표(240)의 입력 단자의 위치에, 패리티 비트 P<L>-0, P<L>-1, P<L>-2, P<L>-3이 입력되는 것이 다르고, 출력이 신드롬 비트인 것도 다르다. 입력되는 데이터 D<7:0>의 조합은 도 14와 동일하다. 따라서, 기록시와 판독시에는 화살표(240)의 부분이 전환된다.
도 16은 3개의 ECC의 코드 길이로 전환 가능한 패리티/신드롬 생성 회로(P 0/S0∼P3/S3)를 도시하는 도면이다. 도 10∼도 15에 도시한 바와 같이, 각 ECC의 타입에 있어서, 화살표(200, 220, 240)의 입력 단자로 기록시와 판독시에 전환이 필요하다. 그리고, 3개의 ECC 타입에 따라 입력 단자에 입력해야 하는 패리티 비트를, 출력 단자에 출력해야 하는 패리티 비트 또는 신드롬 비트를 각각 전환해야 한다.
도 16에는 도 8의 입력측 스위치군(SWin)으로서 스위치(SW1, SW2, SW3, SW4)가 도시되고, 출력측의 스위치군(SWout)으로서 스위치(SW11, SW12)가 도시되어 있다. 이들의 스위치 전환은 이하와 같으며, 이와 같이 전환함으로써, 도 10∼도 15에 도시한 회로가 실현된다.
SW1: 기록시는 GND에, 판독시 8-4에서는 패리티 P<L>-0에, 16-5, 32-6에서는 GND에 접속된다.
SW2: 기록시는 GND에, 판독시 8-4에서는 패리티 P<L>-1에, 16-5에서는 패리티 P<L>-0에, 32-6에서는 GND에 접속된다.
SW3: 기록시는 GND에, 판독시 8-4에서는 패리티 P<L>-2에, 16-5, 32-6에서는 GND에 접속된다.
SW4: 기록시는 GND에, 판독시 8-4에서는 패리티 P<L>-3에, 16-5에서는 패리티 P<L>-1에, 32-6에서는 P<L>에 접속된다.
SW11: 기록시와 판독시 모두 단자 8-4, 16-5, 32-6 중 어느 하나에 접속된다. 단, 기록시는 패리티 비트 P<L>로서, 판독시는 신드롬 비트 P<L>로서 출력된다.
SW12: 기록시와 판독시 모두 단자 8-4, 16-5 중 어느 하나에 접속되고, 32-6에서는 이 출력 단자는 사용하지 않는다.
이상과 같이, 출력 단자는 8-4 타입이면 4 비트 출력, 16-5 타입이면 2 비트 출력, 32-6 타입이면 1 비트 출력이 된다. 반대로 말하면, 32-6 타입이면 3개의 출력 단자는 사용하지 않고, 16-5 타입이면 2개의 출력 단자를 사용하지 않게 된다. 이들의 스위치 제어는 기록과 판독, ECC의 코드 길이(8-4, 16-5, 32-6)에 따라 생성되는 전환 제어 신호(CNT)에 의해 행해진다. 또한, 입력 단자에의 데이터 버스로부터의 입력은 전환할 필요는 없다.
도 8로 되돌아가서, 패리티/신드롬 생성 회로(P4/S4)는 도 7에 도시되는 바와 같으며, 기록시에는 32 비트의 데이터 D<L> 중 16 비트를 입력으로 하여, 패리티 비트 P<4>를 필요 비트 생성한다. 그리고, 판독시에 같은 회로는 32 비트의 데이터 D<L> 중 16 비트를 입력으로 하고, 또한, 판독된 패리티 비트 P<4>를 필요 비트 입력으로 하여, 신드롬 비트 S<4>를 필요 비트 출력한다.
패리티/신드롬 생성 회로(P4/S4)는 8-4 타입에서는 필요 없고, 16-5 타입과 32-6 타입에서 사용된다. 16-5 타입의 경우는, 2 그룹의 데이터 D<15:0> 중의 8 비트로부터 각각 2 그룹의 패리티 비트 P<4> 또는 신드롬 비트 S<4>가 생성되고, 32-6 타입의 경우는 1 그룹의 데이터 D<31:0> 중 16 비트로부터 단일 패리티 비트 P<5> 또는 신드롬 비트 S<5>가 생성된다. 따라서, 이들의 입력측 스위치군(SWin)으로의 전환 제어 신호(CNT)는 기록과 판독 및 16-5인지 32-6인지에 대응하여 생성된다. 또한, 출력측 스위치군(SWout)으로의 전환 제어 신호(CNT)는 16-5인지 32-6인지에 대응하여 생성된다.
도 17∼도 21은 패리티/신드롬 생성 회로(P4/S4)의 2개의 ECC의 타입별 회로 도이다. 2개의 타입 각각에 패리티 생성 회로의 구성과, 신드롬 생성 회로의 구성이 도시된다. 도 21은 이들 4개의 회로 구성을 전환 가능하게 하는 스위치군을 포함한 도면이다.
도 17은 32-6 타입인 경우의 패리티 생성 회로이다. 이 회로는 8개의 3 입력 XOR 회로(XOR3)를 입력측에 설치하고, 24 비트의 입력 단자에 접속하고 있다. 그리고, 7개의 2 입력 XOR 회로(XOR2)가 3 계층으로 구성되고, 최종단의 2 입력 XOR 회로(XOR2)의 출력이 패리티 비트 P<4>가 된다. 입력단의 한 쌍의 XOR3의 6 비트 입력 중 4 비트에 데이터가 입력되고, 2 비트가 그라운드(GND)에 접속되어 논리 「0」으로 되어 있다. 그리고, 데이터 D<31:0> 중 도 7의 크로스(X)가 부가된 16 비트의 데이터 D<31:16>가 입력된다.
도 18은 32-6 타입인 경우의 신드롬 생성 회로이다. 이 회로도 도 17과 마찬가지로 8개의 3 입력 XOR 회로(XOR3)를 입력측에 설치하고, 24 비트의 입력 단자에 접속하며, 7개의 2 입력 XOR 회로(XOR2)가 3계층으로 구성되고, 최종단의 2 입력 XOR 회로(XOR2)의 출력이 신드롬 비트 S<4>가 된다. 입력단의 한 쌍의 XOR3의 6 비트 입력 중 4 비트에 데이터가 입력되고, 2 비트가 그라운드(GND)에 접속되어 논리 「0」으로 되어 있다. 즉, 데이터 D<31:0> 중 16 비트의 데이터 D<31:16>가 입력된다. 또한, 화살표(250)로 나타낸 입력 단자에는 판독된 패리티 비트 P<4>가 입력된다. 즉, 화살표(250)의 접속이 도 17과 다르다.
도 19는 16-5 타입인 경우의 패리티 생성 회로이다. 이 회로는 8개의 3 입력 XOR 회로(XOR3)를 입력측에 설치하고, 24 비트의 입력 단자에 접속하며, 6개의 2 입력 XOR 회로(XOR2)가 2 계층으로 구성되고, 2 그룹의 패리티 비트 P<4>-0, P<4>-1이 출력된다. 최종단의 2 입력 XOR 회로(XOR2)의 부분(260)은 사용되지 않는다. 입력단의 한 쌍의 XOR3의 6 비트 입력 중 4 비트에 데이터가 입력되고, 2 비트가 그라운드(GND)에 접속되어 논리 「0」으로 되어 있다. 그리고, 도면 중 수평 파선으로 분리되는 2 그룹의 데이터 D<15:0> 중 8 비트의 데이터 D<15:8>가 각 그룹의 10 비트 입력 단자에 입력된다.
도 20은 16-5 타입인 경우의 신드롬 생성 회로이다. 이 회로는 도 19와 마찬가지로, 8개의 3입력 XOR 회로(XOR3)를 입력측에 설치하고, 24 비트의 입력 단자에 접속하며, 6개의 2 입력 XOR 회로(XOR2)가 2 계층으로 구성되고, 2 그룹의 신드롬 비트 S<4>-0, S<4>-1이 출력된다. 최종단의 2 입력 XOR 회로(XOR2)의 부분(280)은 사용되지 않는다. 그리고, 입력 단자에서는 화살표(270)의 단자에 각각 판독 패리티 비트 P<4>-0, P<4>-1이 각각 입력된다. 그 이외의 입력 단자는 도 19와 동일하다.
도 21은 2개의 ECC의 코드 길이(32-6, 16-5)로 전환 가능한 패리티/신드롬 생성 회로(P4/S4)를 도시하고 도면이다. 도 17∼도 19에 도시한 바와 같이, 각 ECC의 타입에 있어서, 화살표(250, 270)의 입력 단자에서 기록시와 판독시에 전환이 필요하다. 그리고, 2개의 ECC 타입에 따라 입력 단자에 입력해야 하는 패리티 비트를, 출력 단자에 출력해야 하는 패리티 비트 또는 신드롬 비트를, 각각 전환하는 것이 필요하다.
도 21에는 도 8의 입력측 스위치군(SWin)으로서 스위치(SW21, SW22)가 도시 되고, 출력측의 스위치군(SWout)으로서 스위치(SW31)가 도시되어 있다. 이들의 스위치 전환은 이하와 같으며, 이와 같이 전환함으로써, 도 17∼도 19에 도시한 회로가 실현된다.
SW21: 기록시는 GND에, 판독시 16-5에서는 패리티 P<4>-0에, 32-5에서는 GND에 접속된다.
SW22: 기록시는 GND에, 판독시 16-4에서는 패리티 P<4>-1에, 32-5에서는 패리티 P<4>에 접속된다.
SW31: 기록, 판독 모두 16-5, 32-6 중 어느 하나에 접속된다. 단, 기록시는 패리티 비트 P<4>로서, 판독시는 신드롬 비트 S<4>로서 출력된다.
이상과 같이, 출력 단자는 16-5 타입이면 2 비트 출력, 32-6 타입이면 1 비트 출력이 된다. 이들의 스위치 제어는 기록과 판독에 따라, 그리고, ECC의 코드 길이(16-5, 32-6)에 따라 각각 생성되는 전환 제어 신호(CNT)에 의해 행해진다. 또한, 데이터 버스로부터 입력 단자에의 입력은 전환할 필요가 없다.
도 8로 되돌아가 최후의 패리티/신드롬 회로(P5/S5)에 대해서 설명한다. 패리티/신드롬 회로(P5/S5)는 도 7에 도시되는 바와 같이, 기록시에는 32 비트의 데이터 D<L> 중 16 비트의 데이터 D<31:16>를 입력으로 하여, 패리티 비트 P<5>를 1비트 생성한다. 그리고, 판독시에 같은 회로는 32 비트의 데이터 D<L> 중 16 비트의 데이터 D<31:16>를 입력으로 하고, 또한, 판독된 패리티 비트 P<5>를 입력으로 하여, 신드롬 비트 S<5>를 1 비트 출력한다.
패리티/신드롬 생성 회로(P5/S5)는 8-4 타입, 16-5 타입에서는 필요 없고, 32-6 타입에서만 사용된다. 따라서, 이들의 입력측 스위치군(SWin)으로의 전환 제어 신호(CNT)는 기록과 판독에 대응하여 생성된다. 또한, 출력측 스위치군(SWout)은 없다.
도 22∼도 24는 패리티/신드롬 생성 회로(P5/S5)의 기록시와 판독시 다른 회로도이다. 도 24는 이들 2개의 회로 구성을 전환 가능하게 하는 스위치군을 포함한 도면이다.
도 22는 32-6 타입의 패리티 생성 회로이다. 8개의 3 입력 XOR 회로(XOR3)와, 7개의 2 입력 XOR 회로(XOR2)로 구성되고, 24 비트의 입력 단자 중 16 비트에는 데이터 D<31:16>가 입력되고, 나머지 8 비트는 그라운드(GND)에 접속되어 논리 「O」으로 되어 있다.
도 23은 32-6 타입의 신드롬 생성 회로이다. XOR 회로 구성은 도 22와 동일하며, 입력 단자에 있어서, 화살표(290)에 판독 패리티 비트 P<5>가 입력되는 것을 제외하고는 도 22와 동일하다. 또한, 출력 단자에는 신드롬 비트 S<5>가 출력된다.
도 24는 32-6 타입의 패리티/신드롬 회로(P5/S5)의 회로도이며, 입력측 스위치군(SWin)으로서 스위치(SW41)가 도시되어 있다. 즉, 스위치(SW41)는 기록시에 그라운드(GND)측에, 판독시에 패리티 비트 P<5>측에 접속된다. 따라서, 스위치(SW41)는 기록인지 판독인지에 따라 전환된다. 출력 단자에는 판독시에 패리티 비트 P<5>가 출력되고, 판독시에 신드롬 비트 S<5>가 출력된다.
도 8로 되돌아가, 패리티/신드롬 회로(P0/S0∼P3/S3)는 3 타입의 ECC 코드 길이에 대응하고, 또한, 기록시와 판독시에 그 스위치군(SWin, SWout)이 전환되며, 6종류의 회로에 전환된다. 마찬가지로, 패리티/신드롬 회로(P4/S4)는 2 타입의 ECC의 코드 길이(32-6, 16-5)에 대응하고, 또한, 기록시와 판독시에 그 스위치군(SWin, SWout)이 전환되며, 4 종류의 회로에 전환된다. 그리고, 패리티/신드롬 회로(P5/S5)는 ECC의 코드 길이 32-6에서 사용되고, 기록시와 판독시에 그 스위치군(SWin)이 전환되며, 2 종류의 회로에 전환된다. 그리고, 이들의 전환이 제어 신호(CNT)에 의해 행해진다.
도 8에 있어서, 32 비트의 데이터 버스(25D) 중 도 7의 패리티(p0)에 나타낸 조합의 20 비트가 패리티/신드롬 회로(PO/SO)에, 패리티(p1)에 나타낸 조합의 20 비트가 패리티/신드롬 회로(P1/S1)에, 패리티(p2)에 나타낸 조합의 20 비트가 패리티/신드롬 회로(P2/S2)에, 패리티(p3)에 나타낸 조합의 20 비트가 패리티/신드롬 회로(P3/S3)에 각각 입력된다. 그러나, 이들 입력으로의 접속은 3 타입의 ECC 코드 길이에 관계없이 고정적이다. 마찬가지로, 32 비트의 데이터 버스(25D) 중 도 7의 패리티(p4, p5)에 나타낸 조합의 16 비트가 패리티/신드롬 회로(P4/S4, P5/S5)에 입력되고, 이들 입력으로의 접속도 고정적이다.
그리고, 상기 패리티/신드롬 회로에 입력되는 판독 패리티 비트의 조합이 ECC의 코드 길이의 타입에 따라 전환되지만, 그것은 입력측 스위치군(SWin)에서 행해진다. 또한, 상기 패리티/신드롬 회로의 출력인 패리티 비트 또는 신드롬 비트는 ECC의 코드 길이에 따라 전환되지만, 그것은 출력측 스위치군(SWout)에서 행해진다.
도 8의 접속망(NET2)에 의해, 각 패리티/신드롬 회로(P0/S0∼P5/S5)가 생성하는 신드롬 비트 중 제1 그룹의 1 비트를 각각으로부터 선택하여 얻어지는 신드롬 비트 S<5:0>가 신드롬 디코더(2640)에 입력되고, 제2 그룹의 1 비트를 각각으로부터 선택하여 얻어지는 신드롬 비트 S<4:0>가 신드롬 디코더(2641)에 입력되며, 마찬가지로 제3, 4 그룹의 1 비트를 각각으로부터 선택하여 얻어지는 신드롬 비트 S<3:0>가 신드롬 디코더(2642, 2643)에 각각 입력된다.
ECC의 코드 길이가 32-6 타입이면, 신드롬 비트 S<5:0>가 입력되는 신드롬 디코더(2640)만이 동작하고, 16-5 타입이면 신드롬 비트 S<4:0>가 입력되는 신드롬 디코더(2640, 2641)만이 동작하며, 8-4 타입이면 신드롬 비트 S<3:0>가 입력되는 4개의 신드롬 디코더가 동작한다. 따라서, 각 신드롬 디코더에는 전환용 제어 신호(CNT)가 공급된다.
각 신드롬 디코더 회로(2640∼2643)는 입력된 신드롬 비트와 패리티 체크 매트릭스(28) 내의 크로스(X) 정보를 대조하여, 일치하는 비트를 「1」로 하고, 일치하지 않는 비트를 「0」으로 하는 오류 정정 코드(EC)를 생성한다. 전술한 예에서는 데이터(D0)에 오류가 있기 때문에, EC<7:0>=10000000이 출력된다.
그리고, 오류 정정 회로(266)는 판독된 데이터 D<31:0>, D<15:0>×2, D<7:0>×4를 오류 정정 코드(EC)에 기초하여 정정한다. 구체적으로는, 오류 정정 코드(EC)가 「1」의 비트를 반전한다. 그리고, 오류 정정된 데이터 D<31:0>, D<15:0>×2, D<7:0>×4가 출력된다.
도 25는 본 실시형태에 있어서의 메모리 셀 어레이의 구성예를 도시하는 도 면이다. 도 25에는 ECC의 코드 길이가 32-6 타입인 것을 도시하고 있다. 도 5와 마찬가지로, 데이터 메모리 셀 어레이(D-MCA)는 1 워드(평면)에 대해서 32 비트의 셀이 포함되고, 그것에 대응하여 패리티 메모리 셀 어레이(P-MCA)에는 1 워드(평면)에 대해 5 비트의 셀이 포함된다. 도 5에서도 설명한 바와 같이, 패리티 메모리 셀 어레이(P-MCA)는 8-4 타입에도 대응할 수 있도록 1 워드(평면)에 대해 16 비트의 용량을 갖는다. 따라서, 32-6 타입의 경우는 사용하지 않는 셀(도면에서 어둡게 표시한 부분)이 존재한다.
여기서, 본 실시형태에서는 패리티 메모리 셀 어레이(P-MCA) 내에 불량 지점(FA)이 존재하는 경우는 사용하는 셀의 영역을 불량 지점이 존재하지 않는 영역으로 변경할 수 있도록 한다. 도 25에 있어서, 패리티 메모리 셀 어레이 P-MCA(1)에서는 사용 셀 영역 내에 불량 지점(FA)이 존재하지만, 패리티 메모리 셀 어레이 P-MCA(2)에서는 불량 지점(FA)이 없는 영역의 셀을 사용하고 있다. 또한, 패리티 메모리 셀 어레이 P-MCA(3)에서는 사용하는 셀을 분산시켜 배치하고 있다.
이와 같이, 본 실시형태에서는 패리티 메모리 셀 어레이(P-MCA)에 있어서, 32-6 타입이나 16-5 타입의 경우에, 사용되는 셀 영역과 사용되지 않는 셀 영역이 존재하기 때문에, 불량 지점에 대응하여 사용되는 셀 영역을 선택하는 것이 바람직하다.
도 26은 본 실시형태에 있어서의 메모리 셀 어레이의 레이아웃예를 도시하는 도면이다. 도 26에는 ECC의 코드 길이가 8-4 타입, 16-5 타입, 32-6 타입의 3 종류에 있어서의 메모리 셀 어레이의 레이아웃이 도시되어 있다. 이 예에 의하면, 메모 리 셀 어레이의 중앙부에, 1 워드에 대해 32 비트의 메모리 셀을 배치한 데이터 메모리 셀 어레이(D-MCA)가 배치되고, 그 양측에 패리티 메모리 셀 어레이(P-MCA)가 2 분할 배치된다. 패리티 메모리 셀 어레이(P-MCA)는 좌우 합쳐서 1 워드에 대해 16 비트의 메모리 셀이 배치되어 있다.
도 26의 메모리 셀 어레이는 수평 방향으로 워드선이 연장되도록 배치되고, 수직 방향으로 비트선이 연장되도록 배치된다. 그리고, 워드선 선택 회로는 데이터 메모리 셀 어레이의 중앙부에 배치된다. 따라서, 하나의 워드선을 선택하면, 데이터 메모리 셀 어레이측에는 32개의 비트선으로부터 32 비트의 데이터가 출력된다. 또한, 패리티셀 어레이측에는 16개, 10개, 6개의 비트선으로부터 16 비트, 10 비트, 6 비트의 데이터가 출력된다.
8-4 타입의 경우는 패리티 메모리 셀 어레이 P-MCA(10)(11) 내의 모든 메모리 셀이 사용된다. 16-5 타입과 32-6 타입의 경우는 패리티 메모리 셀 어레이(P-MCA) 내의 일부 메모리 셀이 사용된다. 여기서, 좌우로 분할된 패리티 메모리 셀 어레이 P-MCA(12)(13)(14)(15)를 중앙의 데이터 메모리 셀 어레이(D-MCA)측에 치우치게 하여, 사용하지 않은 메모리 셀군이 양끝에 위치하도록 레이아웃한다.
이와 같이 함으로써, 항상 사용하지 않는 메모리 셀군을 메모리 셀 어레이의 양끝에 배치할 수 있다. 통상, 칩의 주변 영역에 불량 발생 확률이 높아지는 경향이 있기 때문에, 이와 같이 메모리 셀 어레이를 레이아웃함으로써, 불량 지점의 사용 확률을 낮출 수 있다.
도 27은 본 실시형태에 있어서의 메모리 셀 어레이의 변경예를 도시하는 도 면이다. 도 3에서 설명한 바와 같이, 제조 라인의 능숙도에 따라 평균 결함 밀도가 서서히 내려가는 경우, 결함 밀도가 높은 경우는 ECC의 코드 길이를 8-4 타입 결함의 구제 확률을 높이는 것이 전체의 비용 절감이 되지만, 결함 밀도가 낮아지면, ECC의 코드 길이를 32-6 타입 데이터 길이로 하여 패리티 비트 길이를 짧게 함으로써 셀 어레이 사이즈를 작게 하는 것이 비용 절감으로 이어진다.
그래서, 도 27에 도시한 32-6 타입의 메모리 셀 어레이의 경우, 도 26과 같이 중앙부에 데이터 메모리 셀 어레이(D-MCA)를 배치하고, 좌우에 패리티 메모리 셀 어레이 P-MCA(14)(15)를 분할하여 배치하며, 또한, 양끝의 영역(300)의 사용하지 않는 영역을 메모리로부터 삭제함으로써, 메모리의 사이즈를 작게 할 수 있다. 양끝의 영역(300)이 삭제된 메모리는 칩 사이즈 또는 마이크로 사이즈(ASIC 내에 메모리가 매립되는 경우)가 작아지며, 비용 절감에 기여할 수 있다.
이상 설명한 바와 같이, 상기한 실시형태에 의하면, ECC의 코드 길이를 적절하게 변경할 수 있기 때문에, 제조 라인의 결함 밀도에 대응하여, 최적의 코드 길이를 선택하여 비용을 내릴 수 있다.
코드 길이에 대응하는 전환은 도 8의 전환 제어 신호(CNT)를 생성하는 전환 제어 회로 내에 퓨즈 ROM을 설치하고, 그 퓨즈 ROM에 코드 길이에 대응하는 정보를 기록함으로써 행할 수 있다. 또는, 마스크 옵션에 의해 전환할 수도 있다. M0S 트랜지스터의 게이트 산화막을 파괴하여 단락하는 퓨즈 형식의 경우는 패키지에 내장한 후에 전환할 수도 있다.
또한, ECC의 코드 길이에 대응하여 전환 가능하게 하고 있기 때문에, 시험 공정에서 32-6 타입으로 전환하여 양부 판정 시험을 행하고, 시험을 통과한 후에 8-4 타입으로 전환하여 출하할 수도 있다. 구체적으로는, 도 8의 전환 제어 회로에, 시험 공정에서 어떤 타입으로 전환할지를 나타내는 신호를 제공하여, 원하는 타입으로 전환하여 동작 시험을 행한다. 이와 같이 하면, 구제 확률이 낮은 상태에서 동작 시험을 실행할 수 있기 때문에, 출하되는 메모리의 신뢰성을 각별히 향상시킬 수 있다.
상기한 실시형태에서는 어떤 해밍 코드에 따라서, 2의 I승의 데이터에 대하여 I+1 비트의 패리티 비트를 생성하여 1 비트의 오류를 정정 가능하게 하고 있다. 본 발명은 그 이외의 해밍 코드에서도 마찬가지로 적용 가능하다. 예컨대, 2 비트 또는 그 이상의 복수 비트의 오류를 정정 가능하게 하는 해밍 코드에 있어서도 ECC의 코드 길이를 다르게 하여 구제 확률을 변경시킬 수 있다. 본 발명은 그와 같은 해밍 코드에 기초하는 경우에도 적용할 수 있다.
또한, 상기한 실시형태에서는 입력측, 출력측의 패리티 생성 회로와 신드롬 생성 회로를 공통의 XOR 회로로 구성하였지만, 이들을 개별의 XOR 회로로 구성하여도 좋다. 그 경우, 각 XOR 회로의 입력측 스위치나 출력측 스위치가 ECC의 코드 길이에 따라 전환된다.
이상의 실시형태를 통합하면, 다음 부기와 같다.
(부기 1)
오류 정정 기능을 갖는 반도체 메모리 장치에 있어서,
복수의 메모리 셀을 갖고, 워드의 선택에 응답하여 2의 I승 비트(I는 2 이상 의 정수)의 데이터를 데이터 버스에 대하여 입출력하는 데이터 메모리 셀 어레이와,
복수의 메모리 셀을 갖고, 상기 워드의 선택에 응답하여 상기 2의 I승 비트의 데이터에 대응하는 비트수의 패리티 비트를 패리티 버스에 대하여 입출력하는 패리티 메모리 셀 어레이와,
데이터 입출력 단자와,
상기 데이터 입출력 단자로부터 입력되는 2의 I승 비트의 기록 데이터로부터 상기 패리티 비트를 생성하여 상기 패리티 버스에 출력하는 패리티 생성 회로와,
상기 데이터 메모리 셀 어레이로부터 상기 데이터 버스에 판독되는 2의 I승 비트의 판독 데이터와 상기 패리티 메모리 셀 어레이로부터 상기 패리티 버스에 판독되는 패리티 비트로부터 상기 판독된 데이터의 오류 비트 위치를 나타내는 신드롬 비트를 생성하는 신드롬 생성 회로와,
상기 신드롬 비트에 기초하여 상기 판독 데이터의 오류를 정정하는 오류 정정 회로를 포함하고,
상기 패리티 생성 회로 및 신드롬 생성 회로는, 2의 I승 비트의 데이터와 I+1 비트의 패리티 비트로 이루어지는 제1 ECC와, 2의 I-J승 비트(I>J, J는 1 이상의 정수)의 데이터와 I-J+1 비트의 패리티 비트를 2의 J승 그룹 포함하는 제2 ECC 중 어느 하나로 전환 가능하게 구성되어 있는 것을 특징으로 하는 반도체 메모리 장치.
(부기 2)
부기 1에 있어서,
상기 패리티 생성 회로와 신드롬 생성 회로는 공통의 XOR 회로군으로 구성되고,
상기 XOR 회로군은,
상기 제1 ECC로 전환된 경우는 기록시에 2의 I승 비트의 기록 데이터로부터 I+1 비트의 패리티 비트를 생성하고, 판독시에 2의 I승 비트의 판독 데이터와 I+1 비트의 판독 패리티 비트로부터 상기 신드롬 비트를 생성하며,
상기 제2 ECC로 전환된 경우는 기록시에 2의 I-J승 비트의 기록 데이터로부터 I-J+1 비트의 패리티 비트를 2의 J승 그룹 생성하고, 판독시에 2의 I-J승 비트의 판독 데이터와 I-J+1 비트의 판독 패리티 비트로부터 상기 신드롬 비트를 2의 J승 그룹 생성하며,
상기 XOR 회로군은 전환 제어 신호에 응답하여, 상기 판독 패리티 비트의 입력을 전환하는 입력 스위치와, 상기 생성된 패리티 비트 또는 신드롬 비트의 출력을 전환하는 출력 스위치를 포함하는 것을 특징으로 하는 반도체 메모리 장치.
(부기 3)
부기 1에 있어서,
상기 패리티 생성 회로와 신드롬 생성 회로는 공통의 XOR 회로군으로 구성되고,
상기 XOR 회로군은,
상기 제1 ECC로 전환된 경우는 기록시에 2의 I승 비트의 기록 데이터 중 선 택된 비트의 XOR를 상기 I+1 비트의 패리티 비트로서 생성하고, 판독시에 2의 I승 비트의 판독 데이터 중 선택된 비트와 상기 판독 패리티 비트와의 XOR를 상기 신드롬 비트로서 생성하며,
상기 제2 ECC로 전환된 경우는 기록시에 2의 I-J승 비트의 기록 데이터 중 선택된 비트의 XOR를 상기 I-J+1 비트의 패리티 비트로서 2의 J승 그룹 생성하고, 판독시에 2의 I-J승 비트의 판독 데이터 중 선택된 비트와 상기 판독 패리티 비트와의 XOR를 상기 신드롬 비트로서 2의 J승 그룹 생성하며,
상기 XOR 회로군은 전환 제어 신호에 응답하여, 상기 판독 패리티 비트의 입력을 전환하는 입력 스위치와, 상기 생성된 패리티 비트 또는 신드롬 비트의 출력을 전환하는 출력 스위치를 포함하는 것을 특징으로 하는 반도체 메모리 장치.
(부기 4)
부기 2 또는 3에 있어서,
상기 XOR 회로군의 입력 스위치와 출력 스위치는 상기 기록시와 판독시에 대응하는 전환 제어 신호에 응답하여, 전환되는 것을 특징으로 하는 반도체 메모리 장치.
(부기 5)
부기 2 또는 부기 3에 있어서,
상기 XOR 회로군은 I+1 비트의 패리티 비트 또는 신드롬 비트의 각 비트를 각각 생성하는 I+1개의 XOR 회로를 포함하고,
상기 제1 ECC로 전환된 경우는 상기 I+1개의 XOR 회로로부터 I+1 비트의 패리티 비트 또는 신드롬 비트가 출력되며,
상기 제2 ECC로 전환된 경우는 상기 I-J+1개의 XOR 회로로부터 I-J+1 비트의 패리티 비트 또는 신드롬 비트가 출력되는 것을 특징으로 하는 반도체 메모리 장치.
(부기 6)
부기 5에 있어서,
상기 I+1개의 XOR 회로 중 I-J+1개의 XOR 회로는 2의 I-J승 비트의 데이터 중 공통 조합의 데이터를 2의 J승 그룹 입력하는 것을 특징으로 하는 반도체 메모리.
(부기 7)
부기 1에 있어서,
상기 패리티 생성 회로 및 신드롬 생성 회로의 전환을 제어하는 전환 제어 신호를 생성하는 전환 제어부를 더 포함하고,
시험시에, 상기 전환 제어 신호를 상기 제1 또는 제2 ECC에 대응하는 신호로 전환 가능한 것을 특징으로 하는 반도체 메모리 장치.
(부기 8)
부기 1에 있어서,
상기 워드의 선택에 응답하여 상기 패리티 메모리 셀 어레이에 입출력되는 패리티 비트가,
상기 제1 ECC로 전환된 경우는 I+1 비트의 패리티 비트이며,
상기 제2 ECC로 전환된 경우는 I-J+1 비트의 패리티 비트를 2의 J승 그룹 포함하는 패리티 비트인 것을 특징으로 하는 반도체 메모리 장치.
(부기 9)
부기 8에 있어서,
상기 데이터 메모리 셀 어레이와 패리티 메모리 셀 어레이는 동일한 수의 워드선으로 구성되고, 상기 워드선의 선택에 응답하여, 선택된 워드선에 대응하는 데이터와 패리티 비트가 기록 또는 판독되는 것을 특징으로 하는 반도체 메모리 장치.
(부기 10)
부기 8에 있어서,
상기 패리티 메모리 셀 어레이는, 상기 제1 ECC로 전환된 경우 제1 용량을 포함하고, 상기 제2 ECC로 전환된 경우는 상기 제1 용량보다 큰 제2 용량을 포함하는 것을 특징으로 하는 반도체 메모리 장치.
(부기 11)
부기 10에 있어서,
상기 패리티 메모리 셀 어레이는, 반도체 메모리 장치의 외주부에 배치되고,
상기 제1 ECC로 전환된 경우는 상기 패리티 메모리 셀 어레이가 제1 면적을 전유(專有)하며, 상기 제2 ECC로 전환된 경우는 상기 패리티 메모리 셀 어레이가 상기 제1 면적보다도 넓은 제2 면적을 전유하는 것을 특징으로 하는 반도체 메모리 장치.
(부기 12)
부기 1에 있어서,
상기 패리티 생성 회로 및 신드롬 생성 회로는, 또한, 2의 I-K승 비트(I>K>J, K는 1 이상의 정수)의 데이터와 I-K+1 비트의 패리티 비트를 2의 K승 그룹 포함하는 제3 ECC에도 전환되는 것을 특징으로 하는 반도체 메모리 장치.
(부기 13)
오류 정정 기능을 갖는 반도체 메모리 장치에 있어서,
복수의 메모리 셀을 갖고, 워드의 선택에 응답하여 2의 I승 비트(I는 2 이상의 정수)의 데이터를 데이터 버스에 입출력하는 데이터 메모리 셀 어레이와,
복수의 메모리 셀을 갖고, 상기 워드의 선택에 응답하여 상기 2의 I승 비트의 데이터에 대응하는 비트수의 패리티 비트를 패리티 버스에 입출력하는 패리티 메모리 셀 어레이와,
데이터 입출력 단자와,
상기 데이터 입출력 단자로부터 입력되는 2의 I승 비트의 기록 데이터로부터 상기 패리티 비트를 생성하여 상기 패리티 버스에 출력하는 입력측 패리티 생성 회로와,
상기 데이터 메모리 셀 어레이로부터 상기 데이터 버스에 판독되는 2의 I승 비트의 판독 데이터로부터 상기 패리티 비트를 생성하는 출력측 패리티 생성 회로와,
상기 출력측 패리티 생성 회로가 생성한 패리티 비트와 상기 패리티 메모리 셀 어레이로부터 상기 패리티 버스에 판독되는 패리티 비트로부터 상기 판독된 데이터의 오류 비트 위치를 나타내는 신드롬 비트를 생성하는 신드롬 생성 회로와,
상기 신드롬 비트에 기초하여 상기 판독 데이터의 오류를 정정하는 오류 정정 회로를 포함하고,
상기 입력측 패리티 생성 회로와 출력측 패리티 비트 생성 회로와 신드롬 생성 회로는, 2의 I승 비트의 데이터와 그것에 대응하는 비트수의 패리티 비트로 이루어지는 제1 ECC와, 2의 I-J승 비트(I>J, J는 1 이상의 정수)의 데이터와 그것에대응하는 비트수의 패리티 비트를 2의 J승 그룹 포함하는 제2 ECC 중 어느 하나로 전환 가능하게 구성되어 있는 것을 특징으로 하는 반도체 메모리 장치.
(부기 14)
부기 13에 있어서,
상기 입력측 및 출력측 패리티 생성 회로와 신드롬 생성 회로는 공통의 XOR 회로군으로 구성되고,
상기 XOR 회로군은,
상기 제1 ECC로 전환된 경우는 기록시에 2의 I승 비트의 기록 데이터로부터 그것에 대응하는 비트수의 패리티 비트를 생성하고, 판독시에 2의 I승 비트의 판독 데이터와 그것에 대응하는 판독 패리티 비트로부터 상기 신드롬 비트를 생성하며,
상기 제2 ECC로 전환된 경우는 기록시에 2의 I-J승 비트의 기록 데이터로부터, 그것에 대응하는 비트수의 패리티 비트를 2의 J승 그룹 생성하고, 판독시에 2의 I-J승 비트의 판독 데이터와 그것에 대응하는 판독 패리티 비트로부터 상기 신 드롬 비트를 2의 J승 그룹 생성하며,
상기 XOR 회로군은 전환 제어 신호에 응답하여, 상기 판독 패리티 비트의 입력을 전환하는 입력 스위치를 포함하는 것을 특징으로 하는 반도체 메모리 장치.
(부기 15)
부기 13에 있어서,
상기 입력측 및 출력측 패리티 생성 회로와 신드롬 생성 회로는 공통의 XOR 회로군으로 구성되고,
상기 XOR 회로군은,
상기 제1 ECC로 전환된 경우는 기록시에 2의 I승 비트의 기록 데이터 중 선택된 비트의 XOR를 상기 I+1 비트의 패리티 비트로서 생성하고, 판독시에 2의 I승 비트의 판독 데이터 중 선택된 비트와 상기 판독 패리티 비트와의 XOR를 상기 신드롬 비트로서 생성하며,
상기 제2 ECC로 전환된 경우는 기록시에 2의 I-J승 비트의 기록 데이터 중 선택된 비트의 XOR를 상기 I-J+1 비트의 패리티 비트로서 2의 J승 그룹 생성하고, 판독시에 2의 I-J승 비트의 판독 데이터 중 선택된 비트와 상기 판독 패리티 비트와의 XOR를 상기 신드롬 비트로서 2의 J승 그룹 생성하며,
상기 XOR 회로군은 전환 제어 신호에 응답하여, 상기 판독 패리티 비트의 입력을 전환하는 입력 스위치와, 상기 생성된 패리티 비트 또는 신드롬 비트의 출력을 전환하는 출력 스위치를 포함하는 것을 특징으로 하는 반도체 메모리 장치.
(부기 16)
부기 14 또는 15에 있어서,
상기 XOR 회로군의 입력 스위치와 출력 스위치는 상기 기록시와 판독시에 대응하는 전환 제어 신호에 응답하여, 전환되는 것을 특징으로 하는 반도체 메모리 장치.
(부기 17)
부기 14 또는 15에 있어서,
상기 XOR 회로군은 I+1 비트의 패리티 비트 또는 신드롬 비트의 각 비트를 각각 생성하는 I+1개의 XOR 회로를 포함하고,
상기 제1 ECC로 전환된 경우는 상기 I+1개의 XOR 회로로부터 I+1 비트의 패리티 비트 또는 신드롬 비트가 출력되며,
상기 제2 ECC로 전환된 경우는 상기 I-J+1개의 XOR 회로로부터 I-J+1 비트의 패리티 비트 또는 신드롬 비트가 출력되는 것을 특징으로 하는 반도체 메모리 장치.
도 1은 오류 정정 가능한 반도체 메모리 장치의 구성도.
도 2는 ECC의 3개의 코드 길이에서의 데이터와 패리티의 관계를 도시한 도면.
도 3은 ECC의 코드 길이에 대응한 평균 결함 밀도와 수율 및 비용 손실과의 관계를 도시한 그래프도.
도 4는 본 실시형태에 있어서의 반도체 메모리 장치의 구성도.
도 5는 본 실시형태에 있어서 ECC의 코드 길이에 따른 메모리 셀 어레이의 구성을 도시한 도면.
도 6은 본 실시형태에 있어서의 ECC 연산 회로의 개략 구성도.
도 7은 본 실시형태에 있어서의 패리티 체크 매트릭스의 구체예를 도시한 도면.
도 8은 본 실시형태에 있어서의 ECC 논리 회로의 구성도.
도 9는 본 실시형태에 있어서의 ECC 논리 회로의 구성도.
도 10은 32-6 타입인 경우의 패리티 생성 회로.
도 11은 32-6 타입인 경우의 신드롬 생성 회로.
도 12는 16-5 타입인 경우의 패리티 생성 회로.
도 13은 16-5 타입인 경우의 신드롬 생성 회로.
도 14는 8-4 타입인 경우의 패리티 생성 회로.
도 15는 8-4 타입인 경우의 신드롬 생성 회로.
도 16은 3개의 ECC의 코드 길이로 전환 가능한 패리티/신드롬 생성 회로(P0/S0∼P3/S3)를 도시한 도면.
도 17은 16-5 타입인 경우의 패리티 생성 회로.
도 18은 16-5 타입인 경우의 신드롬 생성 회로.
도 19는 8-4 타입인 경우의 패리티 생성 회로.
도 20은 8-4 타입인 경우의 신드롬 생성 회로.
도 21은 2개의 ECC의 코드 길이로 전환 가능한 패리티/신드롬 생성 회로(P4/S4)를 도시한 도면.
도 22는 32-6 타입인 경우의 패리티 생성 회로.
도 23은 32-6 타입인 경우의 신드롬 생성 회로.
도 24는 32-6 타입의 패리티/신드롬 회로(P5/S5)의 회로도.
도 25는 본 실시형태에 있어서의 메모리 셀 어레이의 구성예를 도시한 도면.
도 26은 본 실시형태에 있어서의 메모리 셀 어레이의 레이아웃예를 도시한 도면.
도 27은 본 실시형태에 있어서의 메모리 셀 어레이의 변경예를 도시한 도면.
<도면의 주요 부분에 대한 부호의 설명>
D-MCA: 데이터 메모리 셀 어레이
P-MCA: 패리티 메모리 셀 어레이
25: 데이터 버스, 패리티 버스
26: ECC 연산 회로
29: 데이터 입력 단자
31: 데이터 출력 단자

Claims (11)

  1. 오류 정정 기능을 갖는 반도체 메모리 장치에 있어서,
    복수의 메모리 셀을 갖고, 워드의 선택에 응답하여 2의 I승 비트(I는 2 이상의 정수)의 데이터를 데이터 버스에 대하여 입출력하는 데이터 메모리 셀 어레이와;
    복수의 메모리 셀을 갖고, 상기 워드의 선택에 응답하여 상기 2의 I승 비트의 데이터에 대응하는 비트수의 패리티 비트를 패리티 버스에 대하여 입출력하는 패리티 메모리 셀 어레이와;
    데이터 입출력 단자와;
    상기 데이터 입출력 단자로부터 입력되는 2의 I승 비트의 기록 데이터로부터 상기 패리티 비트를 생성하여 상기 패리티 버스에 출력하는 패리티 생성 회로와;
    상기 데이터 메모리 셀 어레이로부터 상기 데이터 버스에 판독되는 2의 I승 비트의 판독 데이터와 상기 패리티 메모리 셀 어레이로부터 상기 패리티 버스에 판독되는 패리티 비트로부터 상기 판독된 데이터의 오류 비트 위치를 나타내는 신드롬(syndrom) 비트를 생성하는 신드롬 생성 회로와;
    상기 신드롬 비트에 기초하여 상기 판독 데이터의 오류를 정정하는 오류 정정 회로
    를 포함하고,
    상기 패리티 생성 회로 및 신드롬 생성 회로는, 2의 I승 비트의 데이터와 I+1 비트의 패리티 비트로 이루어지는 제1 ECC와, 2의 I-J승 비트(I>J, J는 1 이상의 정수)의 데이터와 I-J+1 비트의 패리티 비트를 2의 J승 그룹 포함하는 제2 ECC 중 어느 하나로 전환 가능하게 구성되고,
    상기 패리티 생성 회로 및 상기 신드롬 생성 회로의 전환을 지시하는 전환 제어 신호를 생성하는 제어부를 포함하는 것을 특징으로 하는 반도체 메모리 장치.
  2. 제1항에 있어서,
    상기 패리티 생성 회로와 신드롬 생성 회로는 공통의 XOR 회로군으로 구성되고,
    상기 XOR 회로군은,
    상기 제1 ECC로 전환된 경우는 기록시에 2의 I승 비트의 기록 데이터로부터 I+1 비트의 패리티 비트를 생성하고, 판독시에 2의 I승 비트의 판독 데이터와 I+1 비트의 판독 패리티 비트로부터 상기 신드롬 비트를 생성하며,
    상기 제2 ECC로 전환된 경우는 기록시에 2의 I-J승 비트의 기록 데이터로부터 I-J+1 비트의 패리티 비트를 2의 J승 그룹 생성하고, 판독시에 2의 I-J승 비트의 판독 데이터와 I-J+1 비트의 판독 패리티 비트로부터 상기 신드롬 비트를 2의 J승 그룹 생성하며,
    상기 XOR 회로군은 전환 제어 신호에 응답하여, 상기 판독 패리티 비트의 입력을 전환하는 입력 스위치와, 상기 생성된 패리티 비트 또는 신드롬 비트의 출력을 전환하는 출력 스위치를 포함하는 것을 특징으로 하는 반도체 메모리 장치.
  3. 제1항에 있어서,
    상기 패리티 생성 회로와 신드롬 생성 회로는 공통의 XOR 회로군으로 구성되고,
    상기 XOR 회로군은,
    상기 제1 ECC로 전환된 경우는 기록시에 2의 I승 비트의 기록 데이터 중 선택된 비트의 XOR를 상기 I+1 비트의 패리티 비트로서 생성하고, 판독시에 2의 I승 비트의 판독 데이터 중 선택된 비트와 상기 판독 패리티 비트와의 XOR를 상기 신드롬 비트로서 생성하며,
    상기 제2 ECC로 전환된 경우는 기록시에 2의 I-J승 비트의 기록 데이터 중 선택된 비트의 XOR를 상기 I-J+1 비트의 패리티 비트로서 2의 J승 그룹 생성하고, 판독시에 2의 I-J승 비트의 판독 데이터 중 선택된 비트와 상기 판독 패리티 비트와의 XOR를 상기 신드롬 비트로서 2의 J승 그룹 생성하며,
    상기 XOR 회로군은 전환 제어 신호에 응답하여, 상기 판독 패리티 비트의 입력을 전환하는 입력 스위치와, 상기 생성된 패리티 비트 또는 신드롬 비트의 출력을 전환하는 출력 스위치를 포함하는 것을 특징으로 하는 반도체 메모리 장치.
  4. 제2항 또는 제3항에 있어서,
    상기 XOR 회로군은 I+1 비트의 패리티 비트 또는 신드롬 비트의 각 비트를 각각 생성하는 I+1개의 XOR 회로를 갖고,
    상기 제1 ECC로 전환된 경우는 상기 I+1개의 XOR 회로로부터 I+1 비트의 패리티 비트 또는 신드롬 비트가 출력되며,
    상기 제2 ECC로 전환된 경우는 상기 I-J+1개의 XOR 회로로부터 I-J+1 비트의 패리티 비트 또는 신드롬 비트가 출력되는 것을 특징으로 하는 반도체 메모리 장치.
  5. 삭제
  6. 제1항에 있어서,
    상기 워드의 선택에 응답하여 상기 패리티 메모리 셀 어레이에 입출력되는 패리티 비트는,
    상기 제1 ECC로 전환된 경우는 I+1 비트의 패리티 비트이며,
    상기 제2 ECC로 전환된 경우는 I-J+1 비트의 패리티 비트를 2의 J승 그룹 포함하는 패리티 비트인 것을 특징으로 하는 반도체 메모리 장치.
  7. 제6항에 있어서,
    상기 데이터 메모리 셀 어레이와 패리티 메모리 셀 어레이는 동일한 수의 워 드선으로 구성되고, 상기 워드선의 선택에 응답하여, 선택된 워드선에 대응하는 데이터와 패리티 비트가 기록 또는 판독되는 것을 특징으로 하는 반도체 메모리 장치.
  8. 제6항에 있어서,
    상기 패리티 메모리 셀 어레이가 상기 제1 ECC로 전환된 경우는 제1 용량을 포함하고, 상기 제2 ECC로 전환된 경우는 상기 제1 용량보다 큰 제2 용량을 포함하는 것을 특징으로 하는 반도체 메모리 장치.
  9. 오류 정정 기능을 갖는 반도체 메모리 장치에 있어서,
    복수의 메모리 셀을 갖고, 워드의 선택에 응답하여 2의 I승 비트(I는 2 이상의 정수)의 데이터를 데이터 버스에 입출력하는 데이터 메모리 셀 어레이와;
    복수의 메모리 셀을 갖고, 상기 워드의 선택에 응답하여 상기 2의 I승 비트의 데이터에 대응하는 비트수의 패리티 비트를 패리티 버스에 입출력하는 패리티 메모리 셀 어레이와;
    데이터 입출력 단자와;
    상기 데이터 입출력 단자로부터 입력되는 2의 I승 비트의 기록 데이터로부터 상기 패리티 비트를 생성하여 상기 패리티 버스에 출력하는 입력측 패리티 생성 회로와;
    상기 데이터 메모리 셀 어레이로부터 상기 데이터 버스에 판독되는 2의 I승 비트의 판독 데이터로부터, 상기 패리티 비트를 생성하는 출력측 패리티 생성 회로와;
    상기 출력측 패리티 생성 회로가 생성한 패리티 비트와 상기 패리티 메모리 셀 어레이로부터 상기 패리티 버스에 판독되는 패리티 비트로부터, 상기 판독된 데이터의 오류 비트 위치를 나타내는 신드롬 비트를 생성하는 신드롬 생성 회로와;
    상기 신드롬 비트에 기초하여 상기 판독 데이터의 오류를 정정하는 오류 정정 회로
    를 포함하고,
    상기 입력측 패리티 생성 회로와 출력측 패리티 비트 생성 회로와 신드롬 생성 회로는, 2의 I승 비트의 데이터와 그것에 대응하는 비트수의 패리티 비트로 이루어지는 제1 ECC와, 2의 I-J승 비트(I>J, J는 1 이상의 정수)의 데이터와 그것에 대응하는 비트수의 패리티 비트를 2의 J승 그룹 포함하는 제2 ECC 중 어느 하나로 전환 가능하게 구성되고,
    상기 패리티 생성 회로 및 상기 신드롬 생성 회로의 전환을 지시하는 전환 제어 신호를 생성하는 제어부를 포함하는 것을 특징으로 하는 반도체 메모리 장치.
  10. 제9항에 있어서,
    상기 입력측 및 출력측 패리티 생성 회로와 신드롬 생성 회로는 공통의 XOR 회로군으로 구성되고,
    상기 XOR 회로군은,
    상기 제1 ECC로 전환된 경우는 기록시에 2의 I승 비트의 기록 데이터로부터 그것에 대응하는 비트수의 패리티 비트를 생성하고, 판독시에 2의 I승 비트의 판독 데이터와 그것에 대응하는 판독 패리티 비트로부터 상기 신드롬 비트를 생성하며,
    상기 제2 ECC로 전환된 경우는 기록시에 2의 I-J승 비트의 기록 데이터로부터 그것에 대응하는 비트수의 패리티 비트를 2의 J승 그룹 생성하고, 판독시에 2의 I-J승 비트의 판독 데이터와 그것에 대응하는 판독 패리티 비트로부터 상기 신드롬 비트를 2의 J승 그룹 생성하며,
    상기 XOR 회로군은 전환 제어 신호에 응답하여, 상기 판독 패리티 비트의 입력을 전환하는 입력 스위치를 포함하는 것을 특징으로 하는 반도체 메모리 장치.
  11. 제1항 또는 제9항에 있어서,
    상기 제어부는 시험시에 있어서 상기 전환 제어 신호를 상기 제1 ECC 또는 상기 제2 ECC에 대응하는 신호로 전환 가능한 것을 특징으로 하는 반도체 메모리 장치.
KR1020070078458A 2006-08-07 2007-08-06 Ecc의 코드 길이를 변경할 수 있는 반도체 메모리 장치 KR100894464B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JPJP-P-2006-00214080 2006-08-07
JP2006214080A JP4946249B2 (ja) 2006-08-07 2006-08-07 Eccのコード長が変更可能な半導体メモリ装置

Publications (2)

Publication Number Publication Date
KR20080013755A KR20080013755A (ko) 2008-02-13
KR100894464B1 true KR100894464B1 (ko) 2009-04-22

Family

ID=39030686

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070078458A KR100894464B1 (ko) 2006-08-07 2007-08-06 Ecc의 코드 길이를 변경할 수 있는 반도체 메모리 장치

Country Status (4)

Country Link
US (1) US8001450B2 (ko)
JP (1) JP4946249B2 (ko)
KR (1) KR100894464B1 (ko)
CN (1) CN101123123B (ko)

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008041123A (ja) * 2006-08-01 2008-02-21 Toshiba Corp 半導体記憶装置
WO2009140700A1 (en) 2008-05-16 2009-11-19 Fusion Multisystems, Inc. Apparatus, system, and method for detecting and replacing failed data storage
US8627169B2 (en) * 2008-06-20 2014-01-07 Cadence Design Systems, Inc. Method and apparatus for dynamically configurable multi level error correction
US8327223B2 (en) * 2009-02-05 2012-12-04 Infineon Technologies Ag System and method for constructing multi-write error correcting code
KR20100104623A (ko) * 2009-03-18 2010-09-29 삼성전자주식회사 데이터 처리 시스템 및 그것의 부호율 제어 스킴
US8281227B2 (en) 2009-05-18 2012-10-02 Fusion-10, Inc. Apparatus, system, and method to increase data integrity in a redundant storage system
US8307258B2 (en) 2009-05-18 2012-11-06 Fusion-10, Inc Apparatus, system, and method for reconfiguring an array to operate with less storage elements
US8327249B2 (en) * 2009-08-20 2012-12-04 Broadcom Corporation Soft error rate protection for memories
JP5353681B2 (ja) * 2009-12-22 2013-11-27 富士通セミコンダクター株式会社 メモリインターフェース回路
JP5343921B2 (ja) * 2010-05-07 2013-11-13 富士通セミコンダクター株式会社 半導体メモリ、システムおよび半導体メモリの製造方法
JP5682253B2 (ja) * 2010-11-22 2015-03-11 富士通株式会社 プログラムおよび通信装置
KR20130021633A (ko) * 2011-08-23 2013-03-06 삼성전자주식회사 오류정정부호를 이용한 데이터의 은닉과 검출 방법 및 장치
US8954825B2 (en) 2012-03-06 2015-02-10 Micron Technology, Inc. Apparatuses and methods including error correction code organization
EP2834732B1 (en) 2012-11-07 2015-07-15 Koninklijke Philips N.V. Computing device storing look-up tables for computation of a function
KR101862379B1 (ko) 2013-04-19 2018-07-05 삼성전자주식회사 Ecc 동작과 리던던시 리페어 동작을 공유하는 메모리 장치
KR101524535B1 (ko) * 2013-05-28 2015-06-01 중소기업은행 Ecc 내장 메모리의 메인 어레이 및 ecc 셀-어레이 테스트 방법
KR20150028118A (ko) * 2013-09-05 2015-03-13 삼성전자주식회사 메모리 장치의 동작 방법, 이를 이용한 데이터 기입 방법 및 데이터 독출 방법
US9201728B2 (en) 2013-09-12 2015-12-01 Seagate Technology Llc Memory device with variable code rate
KR102133209B1 (ko) * 2013-12-13 2020-07-14 에스케이하이닉스 주식회사 데이터 복호화 장치 및 데이터 복호화 방법
JP6212396B2 (ja) * 2014-01-08 2017-10-11 ルネサスエレクトロニクス株式会社 データ処理装置
KR102204390B1 (ko) 2014-09-12 2021-01-18 삼성전자주식회사 빠른 불량 셀 구제 동작의 메모리 장치
KR20170096079A (ko) * 2016-02-15 2017-08-23 에스케이하이닉스 주식회사 반도체장치 및 반도체시스템
CN107168816B (zh) * 2016-03-07 2021-03-23 北京忆恒创源科技有限公司 Ecc帧长调整方法及其装置
US10613924B2 (en) * 2017-05-17 2020-04-07 Rambus Inc. Energy-efficient error-correction-detection storage
US10229052B2 (en) 2017-05-31 2019-03-12 Seagate Technology Llc Reverse map logging in physical media
US10284231B2 (en) 2017-06-01 2019-05-07 Seagate Technology, Llc Adaptive outer code for consistent overprovisioning (OP) level
US10276259B2 (en) 2017-07-05 2019-04-30 Winbond Electronics Corp. Memory testing method and memory apparatus therefor
US10289486B2 (en) * 2017-07-13 2019-05-14 Omnivision Technologies, Inc. Memory with pattern oriented error correction code
US10621035B2 (en) * 2017-10-18 2020-04-14 Intel Corporation Techniques for correcting data errors in memory devices
CN108021467B (zh) * 2017-11-10 2021-07-16 深圳先进技术研究院 一种存储器容错保护方法、装置、设备及存储介质
WO2019090657A1 (zh) * 2017-11-10 2019-05-16 深圳先进技术研究院 一种存储器容错保护方法、装置、设备及存储介质
US10691533B2 (en) * 2017-12-12 2020-06-23 Micron Technology, Inc. Error correction code scrub scheme
US10644727B2 (en) 2018-01-11 2020-05-05 Western Digital Technologies, Inc. Code rate switching mechanism for flash memory
KR20190086936A (ko) 2018-01-15 2019-07-24 삼성전자주식회사 메모리 장치
US11138069B2 (en) 2018-06-11 2021-10-05 Seagate Technology, Llc Providing additional parity for non-standard sized parity data sets
US10896002B2 (en) 2018-06-29 2021-01-19 Seagate Technology Llc Reverse directory structure in a garbage collection unit (GCU)
TWI705453B (zh) * 2019-07-05 2020-09-21 華邦電子股份有限公司 半導體記憶體裝置
CN112289365B (zh) * 2019-07-24 2024-02-23 华邦电子股份有限公司 半导体存储器装置
US11010243B2 (en) * 2019-09-09 2021-05-18 Winbond Electronics Corp. Memory apparatus with error bit correction in data reading period
US11587637B1 (en) * 2021-08-19 2023-02-21 Micron Technology, Inc. Apparatuses, systems, and methods for error correction of selected bit pairs
US11934263B2 (en) * 2022-03-29 2024-03-19 Ampere Computing Llc Parity protected memory blocks merged with error correction code (ECC) protected blocks in a codeword for increased memory utilization

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11125662A (ja) 1997-10-23 1999-05-11 Oki Electric Ind Co Ltd 半導体集積回路及びフルスキャン実行方法
JP2003240822A (ja) 2002-02-14 2003-08-27 Matsushita Electric Ind Co Ltd 半導体集積回路の設計方法及びテスト方法
JP2005044386A (ja) * 2003-07-22 2005-02-17 Renesas Technology Corp 半導体記憶装置及びマイクロコンピュータ

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3836957A (en) * 1973-06-26 1974-09-17 Ibm Data storage system with deferred error detection
US4404673A (en) * 1981-02-09 1983-09-13 National Semiconductor Corporation Error correcting network
JPS61338A (ja) * 1984-05-16 1986-01-06 株式会社 モルテン 部分床義歯
JPS62116019A (ja) * 1985-11-15 1987-05-27 Nippon Hoso Kyokai <Nhk> 符号化および復号処理のためのディジタル共用回路
JPS62173821A (ja) * 1986-01-27 1987-07-30 Sony Corp 積符号の符号化若しくは復号化方法
JP2881773B2 (ja) * 1988-07-30 1999-04-12 ソニー株式会社 誤り訂正装置
JPH04213734A (ja) * 1990-12-12 1992-08-04 Nec Ic Microcomput Syst Ltd 半導体集積回路
JPH0799454A (ja) * 1993-09-28 1995-04-11 Sharp Corp 回路共用型誤り訂正符号処理回路
JP3693728B2 (ja) * 1995-12-20 2005-09-07 富士通株式会社 通信制御装置
JP2005018983A (ja) * 1996-12-03 2005-01-20 Sony Corp 半導体不揮発性記憶装置およびメモリシステム
KR100322542B1 (ko) * 1999-08-11 2002-03-18 윤종용 파이프 라인상의 고속동작을 구현하는 ecc 회로를 구비하는동기식 반도체 메모리장치 및 이 동기식 반도체 메모리장치의 에러 체크 및 정정방법
US6799287B1 (en) * 2000-05-01 2004-09-28 Hewlett-Packard Development Company, L.P. Method and apparatus for verifying error correcting codes
US7810017B2 (en) * 2006-03-20 2010-10-05 Micron Technology, Inc. Variable sector-count ECC
JP2007305267A (ja) * 2006-05-15 2007-11-22 Toshiba Corp 半導体記憶装置
US7739576B2 (en) * 2006-08-31 2010-06-15 Micron Technology, Inc. Variable strength ECC
US8122323B2 (en) * 2007-03-08 2012-02-21 Intel Corporation Method, apparatus, and system for dynamic ECC code rate adjustment

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11125662A (ja) 1997-10-23 1999-05-11 Oki Electric Ind Co Ltd 半導体集積回路及びフルスキャン実行方法
JP2003240822A (ja) 2002-02-14 2003-08-27 Matsushita Electric Ind Co Ltd 半導体集積回路の設計方法及びテスト方法
JP2005044386A (ja) * 2003-07-22 2005-02-17 Renesas Technology Corp 半導体記憶装置及びマイクロコンピュータ

Also Published As

Publication number Publication date
CN101123123A (zh) 2008-02-13
US8001450B2 (en) 2011-08-16
JP2008041171A (ja) 2008-02-21
CN101123123B (zh) 2012-03-07
KR20080013755A (ko) 2008-02-13
US20080034270A1 (en) 2008-02-07
JP4946249B2 (ja) 2012-06-06

Similar Documents

Publication Publication Date Title
KR100894464B1 (ko) Ecc의 코드 길이를 변경할 수 있는 반도체 메모리 장치
US8151173B2 (en) Semiconductor storage device comprising memory array including normal array and parity array
US10108509B2 (en) Dynamic enabling of redundant memory cells during operating life
KR100455792B1 (ko) Ecc 방식 에러 복구 회로를 갖는 반도체 메모리 장치
JP3847993B2 (ja) マルチビット半導体メモリ装置及びその装置の誤り訂正方法
US7096406B2 (en) Memory controller for multilevel cell memory
US5056095A (en) Semiconductor memory having error correction circuit
US7107508B2 (en) Manufacturing test for a fault tolerant magnetoresistive solid-state storage device
US7107507B2 (en) Magnetoresistive solid-state storage device and data storage methods for use therewith
JPH071640B2 (ja) 半導体記憶装置の欠陥救済装置
WO1983001523A1 (en) Error-correcting memory with low storage overhead and fast correction mechanism
US20050138537A1 (en) Method and system to encode and decode wide data words
US20100023840A1 (en) Ecc circuit, semiconductor memory device, memory system
US20130103991A1 (en) Method of Protecting a Configurable Memory Against Permanent and Transient Errors and Related Device
JP2738363B2 (ja) 連想記憶装置
US8856613B2 (en) Semiconductor storage device, memory control device, and control method of semiconductor memory
KR20070112953A (ko) Ecc 제어회로, 제어방법 및 반도체 메모리 장치
JP4588965B2 (ja) 半導体記憶装置
JPH11213692A (ja) メモリ装置
JP2005216437A (ja) 誤り訂正機能付き半導体記憶装置およびその誤り訂正方法
JP2509343B2 (ja) 半導体メモリ装置
US11442810B2 (en) Memory and operation method of memory
US20230282302A1 (en) Memory and memory system inclduing the memory
US20240177793A1 (en) Memory device including error correction device
US9208040B2 (en) Repair control logic for safe memories having redundant elements

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
N231 Notification of change of applicant
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130321

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20140319

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20160318

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20170317

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee