KR101750662B1 - 데이터 에러 교정용 회로, 장치, 및 방법 - Google Patents

데이터 에러 교정용 회로, 장치, 및 방법 Download PDF

Info

Publication number
KR101750662B1
KR101750662B1 KR1020167002028A KR20167002028A KR101750662B1 KR 101750662 B1 KR101750662 B1 KR 101750662B1 KR 1020167002028 A KR1020167002028 A KR 1020167002028A KR 20167002028 A KR20167002028 A KR 20167002028A KR 101750662 B1 KR101750662 B1 KR 101750662B1
Authority
KR
South Korea
Prior art keywords
data
parity code
circuit
ecc
read data
Prior art date
Application number
KR1020167002028A
Other languages
English (en)
Other versions
KR20160024966A (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 KR20160024966A publication Critical patent/KR20160024966A/ko
Application granted granted Critical
Publication of KR101750662B1 publication Critical patent/KR101750662B1/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2942Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes wherein a block of parity bits is computed only from combined information bits or only from parity bits, e.g. a second block of parity bits is computed from a first block of parity bits obtained by systematic encoding of a block of information bits, or a block of parity bits is obtained by an XOR combination of sub-blocks of information bits
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6561Parallelized implementations
    • 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
    • G11C2029/0411Online error correction

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Probability & Statistics with Applications (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

집적 회로 내 데이터 에러를 교정하기 위한 회로, 장치, 및 방법이 개시된다. 한 예의 장치는 제 1 회로를 포함하고, 상기 제 1 회로는 제 1 및 제 2 데이터 워드를 수신하도록 구성되고, 상기 제 1 데이터 워드 내 하나 이상의 에러를 교정하도록 구성되며, 최종 병합 데이터 워드를 발생시키도록 제어 신호에 응답하여 교정된 데이터 워드 및 제 2 데이터 워드를 병합하도록 구성되고, 최종 병합 데이터 워드를 기록 회로에 제공하도록 구성된다. 장치는 제 2 회로를 또한 포함하며, 상기 제 2 회로는 상기 제 1 및 제 2 데이터 워드를 수신하도록 구성되고, 상기 제어 신호에 응답하여 상기 제 1 및 제 2 데이터 워드를 예비 병합하여 초기 병합 데이터 워드를 발생시키도록 구성되며, 초기 병합 데이터 워드에 대한 초기 패리티 코드를 발생시키도록 구성되고, 초기 패리티 코드를 교정하도록 구성되며, 교정된 패리티 코드를 기록 회로에 제공하도록 또한 구성된다.

Description

데이터 에러 교정용 회로, 장치, 및 방법{CIRCUITS, APPARATUSES, AND METHODS FOR CORRECTING DATA ERRORS}
발명의 실시예는 일반적으로 집적 회로에 관한 것이고, 특히, 도시되는 실시예 중 하나 이상에서, 집적 회로의 데이터 에러 교정에 관련된다.
반도체 프로세싱 기술이 계속해서 더 소형의 소자 크기를 구현함에 따라, 많은 문제들이 나타난다. 예를 들어, 휘발성 또는 비휘발성 메모리의 더 작은 저장 요소들이 데이터 저장 단위 당 더 낮은 비용 및 더 큰 저장 밀도를 실현할 때, 개별 저장 요소의 작은 크기는 다양한 리프레시 시간 에러(다양한 보유 시간 에러로도 알려짐), 소프트 에러, 단일 이벤트 업셋 에러, 등과 같은 데이터 에러 증가를 야기할 수 있다. 일부 예에서, (가령, 요소의 부적절한 제조로 인한) 저장 요소의 물리적 손상 역시 데이터 에러를 야기할 수 있으나, 이러한 에러는 수리 영역 이용이 비효과적일 수 있도록 분포될 수 있다. 이러한 소프트 또는 하드 에러는 데이터를 붕괴시키고, 통상적으로 무작위적으로 분포된다.
이러한 데이터 에러의 효과를 누그러뜨리기 위한 한가지 방법은 데이터와 함께 (이후 "패리티 코드"로 불리는" 에러 교정 코드("ECC") 패리티 정보를 저장하고, 데이터가 판독될 때 패리티 코드를 디코딩하여, 원본 데이터 또는 추가된 패리티 코드 내 임의의 에러를 검출 및/또는 교정할 수 있다. 패리티 코드는 데이터 저장 장치에 기록 및 데이터 저장 장치로부터 판독에 요구되는 처리 시간과 (패리티 코드를 위한 추가 비트로 인한) 저장되는 데이터의 양에 소정의 오버헤드를 요한다. 그럼에도 불구하고, ECC 이용은 임의적으로 분포되는 데이터 에러의 검출 및 교정에 있어 효과적이고 효율적인 것으로 여전히 간주된다.
일부 데이터 저장 디바이스는 데이터 마스크 옵션을 지원하여, 기록 작동 중, 저장되는 데이터 워드의 하나 이상의 부분이 이전 데이터 값을 보유하고 데이터 워드의 하나 이상의 다른 부분이 새 데이터 값과 함께 업데이트된다. 여기서 사용되는 바와 같이, 데이터 워드는 통상적으로 하나의 단위체로 함께 취급 또는 저장되는 복수의 정보 비트를 의미하지만, 데이터 마스크 옵션은 데이터 워드의 하나 이상의 부분을 데이터 워드의 다른 부분과는 달리 취급 또는 저장할 수 있다. 예를 들어, 메모리에서, 특정 어드레스에 저장되는 데이터 워드는 128비트의 데이터를 포함할 수 있고, 메모리 기록 작동 중 데이터 마스크 옵션은 데이터 워드의 하나 이상의 8비트 부분이 기록 작동으로부터 업데이트되는 것을 방지할 수 있다. 더 구체적인 예에서, 128비트 워드의 마지막 8비트는 데이터의 처음 120비트만이 메모리 어레이에 기록되도록 마스킹될 수 있고, 최종 8비트는 기록 작동 이전에 갖던 값에 관계없이 보유된다.
기록 작동 중 데이터 마스크 옵션없이 저장 디바이스에 ECC를 구현하는 것은 상당히 직관적인데, 왜냐하면, 기록될 데이터 워드 및 패리티 코드가 앞서 저장된 데이터에 좌우되는 것이 아니라, 전적으로 디바이스에 기록될 새 데이터의 함수이기 때문이다. 그러나, 가용한 데이터 마스크 옵션을 가진 데이터 저장 디바이스에서, 데이터 워드의 마스킹된 부분은 구 데이터가 데이터 마스크에 의해 요구되는 새 데이터와 적절히 병합되기 전에 교정될 필요가 있는 하나 이상의 에러를 지닐 수 있다. 또한, 데이터 마스크 작동과 함께 기록 중 병합된 데이터 워드의 패리티 코드를 적절히 인코딩하기 위해, 마스킹된 부분은 EEC 인코더에 의해 고려되어야 하며, 이러한 마스킹된 부분은 EEC 인코더가 새 패리티 코드를 발생시키기 전에 교정되어야 한다. 다시 말해서, 병합된 데이터 워드의 패리티 코드는 데이터 워드의 새 부분에만 좌우되는 것이 아니라, 마스킹되고 있는, 교정된 구 데이터 워드의 부분에도 좌우된다.
이러한 종속성을 해결하기 위해, 한가지 해법은 구 데이터 워드 및 구 패리티 코드를 판독하고, 구 패리티 코드를 디코딩하며, 디코딩에 기초하여 구 데이터 워드 내 에러를 교정하고, 그 후, 후속하여, 데이터 워드의 새 부분을 데이터 워드의 교정된 구 부분과 병합하며, 새 패리티 코드를 발생시키고, 새 패리티 코드를 갖는 병합된 데이터 워드를 저장 디바이스에 기록하는 것이다. 그러나, 이러한 순차적 작동 순서는 일부 경우에 수용될 수 없는데, 왜냐하면, ECC 디코딩 및 ECC 인코딩 작동이 비교적 오래 걸릴 수 있고, ECC 인코딩 작동은 새 패리티 코드가 발생 및 저장되기 전에 ECC 디코딩 및 교정 작동이 완료되기를 기다리기 때문이다.
ECC를 가진 디바이스에서 데이터 마스크 옵션을 처리하기 위한 다른 기법은, 마스킹되는 방식으로 처리될 수 있는 데이터 워드의 각각의 부분에 대해 개별적인 패리티 코드를 갖는 것일 수 있다. 예를 들어, 각각의 8비트 부분이 마스킹되는 128비트 데이터 워드의 예시를 계속할 때, 데이터 워드의 각각의 8비트 부분은 각각의 다른 8비트 부분의 패리티 코드와는 독립적으로, 각자 고유 패리티 코드를 할당받을 수 있다. 데이터 마스크 작동을 이용한 기록이 수행될 때, 마스킹된 부분은 마스킹되지 않은 새 부분의 ECC 인코딩에 독립적으로 ECC 디코딩 및 교정을 진행할 수 있다. 이러한 기법에서, 순차적 ECC 작동을 피하면서, 저장 공간 및 프로세싱 전력의 오버헤드 양이 증가한다. 128비트 예를 이용할 때, 각각의 8비트 부분은 4비트 길이의 패리티 코드를 가질 수 있고, 따라서, 총 64 패리티 비트(50% 오버헤드)를 요하며, 16개의 독립적인 ECC 인코딩/디코딩 회로가 각각의 8비트 부분에 대한 패리티 코드를 개별적으로 인코딩 또는 디코딩하는데 필요할 수 있다. 비교시, 앞서 설명한 순차적 기법의 경우, 128 비트 데이터 워드에 8 패리티 비트만이 요구될 수 있고, 단일 ECC 회로는 패리티 코드를 디코딩/교정 및 인코딩할 수 있는데, 왜냐하면, ECC 인코딩 작동은 ECC 디코딩 작동이 완료될 때까지 진행될 수 없기 때문이다.
도 1은 본 발명의 일 실시예에 따른 데이터 에러 교정 장치의 블록도다.
도 2는 본 발명의 일 실시예에 따른 데이터 에러 교정 장치의 블록도다.
도 3은 본 발명의 일 실시예에 따른 데이터 에러 교정 장치의 블록도다.
도 4는 본 발명의 일 실시예에 따른 데이터 에러 교정용 흐름도다.
도 5는 본 발명의 일 실시예에 따른 메모리의 블록도다.
발명의 실시예에 대한 충분한 이해를 제공하기 위해 소정의 세부사항이 아래에 제시된다. 그러나, 발명의 실시예들이 이러한 특정 세부사항없이 실시될 수 있음은 당 업자에게 명백할 것이다. 더욱이, 여기서 설명되는 본 발명의 특정 실시예는 예를 들어 제공되며, 이러한 특정 실시예로 발명의 범위를 제한하는데 사용되어서는 안된다. 다른 예에서, 잘 알려진 회로, 제어 신호, 타이밍 프로토콜, 및 소프트웨어 작동들은 발명의 본질을 불필요하게 흐리지 않기 위해 세부적으로 도시되지 않는다.
도 1은 본 발명의 일 실시예에 따른 데이터 에러 교정 장치(100)를 도시한다. 여기서 사용되듯이, 장치는 예를 들어, 집적 회로, 메모리 디바이스, 메모리 시스템, 전자 디바이스 또는 시스템, 스마트 폰, 태블릿, 컴퓨터, 서버, 등을 의미할 수 있다. 한 예에서, 장치(100)는 휘발성 또는 비휘발성 메모리의 어레이(106)와 같은, 데이터 저장 디바이스를 포함한다. 다른 실시예에서, 데이터 저장 디바이스는 버퍼 또는 캐시와 같은 중간 저장 디바이스일 수 있다. 장치(100)는 어레이(106) 내의 각자의 어드레스에서 복수의 데이터 워드를 저장하도록 그리고 어레이(106)로부터 저장된 데이터 워드를 판독하도록 구성된다. 한 예에서, 각각의 데이터 워드는 128비트의 데이터를 포함할 수 있고, 다른 예에서, 각각의 데이터 워드는 32 데이터 비트, 64 데이터 비트, 256 데이터 비트, 512 데이터 비트, 등을 포함할 수 있다. 어레이(106)에 저장되는 데이터 워드는 소프트 또는 하드 데이터 에러를 가질 수 있다 - 예를 들어, 데이터 워드 내의 하나 이상의 데이터 비트는, "플립"(flip)하여, 데이터 비트들이 어레이(106)에 저장되는 시간과, 이들이 판독되는 시간 사이에서 데이터 값을 변화시킨다. 다른 예에서, 어레이(106) 내 하나 이상의 저장 디바이스는 손상될 수 있고, 따라서, 하나 이상의 데이터 비트의 정확한 저장 및 판독을 막는다. 일반적으로, 임의의 메커니즘이 어레이(106)로부터 판독된 데이터 워드 내 하나 이상의 비트를, 이러한 각자의 비트들이 어레이(106)에 기록된 것으로 생각되는 방식과는 다르게 할 수 있다.
이러한 데이터 에러의 효과를 완화시키기 위해, 장치(100)는 에러 교정 및/또는 검출 코드("ECC") 시스템(102)을 포함하며, (하나 이상의 패리티 비트를 포함할 수 있는) 패리티 코드가 각각의 데이터 워드에 대해 발생되어 어레이(106)에 저장된다. 여기서 사용되는 ECC는 임의의 타입의 에러 검출 및/또는 에러 교정 방법을 포함한다 - 예를 들어, 장치(100)의 ECC 시스템(102)은 일부 예에서 하나 이상의 데이터 에러를 검출할 수 있고, 일부 실시예에서 하나 이상의 에러를 추가적으로 교정할 수 있다. ECC 시스템(102)은 해밍 코드(Hamming code)(확장 해밍 코드 포함), 순환 잉여 검사, 또는, 그외 다른 에러 검출, 및/또는 에러 교정 방법에 기초할 수 있다. ECC 시스템(102)에 의해 발생되는 그리고 연관된 데이터 워드와 함께 어레이(106)에 저장되는 패리티 코드는 연관된 데이터 워드의 일부분 또는 전체에 관한 정보를 나타내고, 후속하여, 데이터 워드가 어레이(106)로부터 판독될 때 데이터 워드 내 에러를 검출 및/또는 교정하는데 사용될 수 있다. 간단히 말해서, 데이터 워드 내 단일 비트 데이터 에러를 검출 및 교정할 수 있는 일례의 ECC 시스템(102) 및 코드가 여기서 설명될 것이나, 여기서 설명되는 원리는 임의의 개수의 데이터 에러의 검출 및/또는 교정으로 확장될 수 있다.
도 1을 다시 참조하면, ECC 시스템(102)은 일반적으로 병렬로 작동할 수 있는 제 1 ECC 회로(120) 및 제 2 ECC 회로(140)를 포함한다. 제 1 ECC 회로(102)는 제 1 데이터 워드 DATA-OLD와, 제 1 데이터 워드 DATA-OLD와 연관된 패리티 코드 PARITY-OLD를 수신한다. 제 1 데이터 워드 DATA-OLD는 앞서 저장되어 어레이(106)로부터 판독된 구 데이터일 수 있다. 어레이(106)에 저장되었거나 어레이(106)에 저장되고 있을 때, 제 1 데이터 워드 DATA-OLD의 하나 이상의 데이터 비트는 의도된 값으로부터 변화한 값을 가질 수 있고, 따라서, 제 1 ECC 회로(120)에 제공된 제 1 데이터 워드 DATA-OLD는 데이터 에러의 하나 이상의 비트를 가질 수 있다. 제 1 ECC 회로(120)는 새 데이터 워드일 수 있는 제 2 데이터 워드 DATA-NEW를 또한 수신하며, 그 중 적어도 일부분은 제 1 데이터 워드 DATA-OLD의 각자의 부분 대신에 어레이(106)에 저장될 것이다(가령, 제 2 데이터 워드 DATA-NEW의 적어도 일부분은 제 1 데이터 워드 DATA-OLD의 각자의 부분을 덮어쓸 것이다).
제 1 ECC 회로(120)는 제 1 데이터 워드 DATA-OLD에서 하나 이상의 데이터 에러가 검출될 때 제 1 데이터 워드 DATA-OLD 및 관련 패리티 코드 PARITY-OLD에 기초하여 제 1 데이터 워드 DATA-OLD 내 하나 이상의 데이터 에러를 선택적으로 교정하도록 구성된다. 교정된 데이터 워드는 어레이(106)에 저장되어야 했던 데이터 워드에 대응할 수 있다. ECC 시스템(102) 작동 중, 제 1 ECC 회로(120)에 제공되는 제 1 데이터 워드 DATA-OLD가 항상 하나 이상의 데이터 에러를 가지지 않을 수 있다. 실제로, 일부 예에서, 어레이(106)로부터 판독되는 그리고 제 1 ECC 회로(120)에 제공되는, 제 1 데이터 워드 DATA-OLD가 임의의 데이터 에러를 거의 가지지 않을 수 있다. 제 1 ECC 회로(120)는 이러한 에러가 제 1 ECC 회로(120)에 의해 검출될 때 제공되는 데이터 워드 DATA-OLD 내 하나 이상의 데이터 에러를 검출하도록 구성되지만, 제 1 ECC 회로(120)에 제공되는 데이터 워드 DATA-OLD가 데이터 에러를 갖지 않을 때, 제 1 ECC 회로(120)는 교정할 에러가 없기 때문에 데이터 워드 내 데이터 비트를 "교정"하지 않을 것이다.
제 1 ECC 회로(120)는 교정된 데이터 워드(즉, 제 1 ECC 회로에 의해 교정된 제 1 데이터 워드, 또는, 데이터 에러가 검출되지 않은 경우 교정되지 않은 제 1 데이터 워드)를, 데이터 마스크 신호 DATAMASK와 같은 제어 신호에 응답하여, 제 2 데이터 워드 DATA-NEW와 선택적으로 병합하도록 또한 구성된다. 제 1 ECC 회로(120)는 교정된 데이터 워드의 하나 이상의 부분과 제 2 데이터 워드 DATA-NEW의 하나 이상의 부분에 기초하여 최종 병합 데이터 워드 DATA-MERGED를 발생시킬 수 있고, 제어 신호 DATA-MASK는 어느 데이터 워드의 어느 부분이 최종 병합 데이터 워드 DATA-MERGED 발생에 사용되는지를 결정한다. 다시 말해서, 제어 신호 DATAMASK는 제 1 ECC 회로(120)로 하여금, 데이터 기록 작동 중 교정된 데이터 워드의 하나 이상의 부분을, 제 2 데이터 워드 DATA-NEW의 하나 이상의 대응 부분으로 대체하기보다, 보유하게 한다.
일부 경우에, 제어 신호 DATAMASK에 응답하여, 교정된 데이터 워드 또는 새 데이터 워드 DATA-NEW 중 하나 전체가 최종 병합 데이터 워드 DATA-MERGED로 제공될 수 있다 - 제어 신호 DATAMASK는 최종 병합 데이터 워드 DATA-MERGED가 교정된 데이터 워드와 동일하도록 교정된 데이터 워드를 완전히 마스킹할 수 있고, 또는, 다른 한편으로, 제어 신호 DATAMASK는 최종 병합 데이터 워드 DATA-MERGED가 제 2 데이터 워드 DATA-NEW와 동일하도록 교정된 데이터 워드 중 어느 것도 마스킹하지 않을 수 있다. 그러나, 다른 예에서, 제어 신호 DATAMASK는 마스킹된 부분이 최종 데이터 워드 DATA-MERGED 내 각자의 위치에 제공되도록 교정된 데이터 워드의 하나 이상의 부분을 마스킹할 수 있고, 최종 병합 데이터 워드 DATA-MERGED의 다른 부분은 제 2 데이터 워드 DATA-NEW의 각자의 부분으로부터 나타난다.
제어 신호 DATAMASK에 의해 마스킹되는 데이터 워드 부분들은 일부 예에서 8비트(1바이트) 부분일 수 있으나, 일반적으로 임의의 크기일 수 있다. 예를 들어, 데이터 워드가 128비트 길이이고 마스킹가능한 부분이 8비트 길이일 경우, 제어 신호 DATAMASK에 기초하여 마스킹될 수 있는 또는 될 수 없는 개별 부분들이 16개 존재할 수 있다.
도 1을 다시 참조하면, 제 1 ECC 회로(120)는 기록 회로(160)에 최종 병합 데이터 워드 DATA-MERGED를 제공할 수 있고, 이 회로는 아래 더 상세히 설명되는 바와 같이, 관련 패리티 코드 PARITY -CORRECTED와 함께 어레이(106)에 최종 병합 데이터 워드 DATA-MERGED를 기록할 수 있다.
제 2 ECC 회로(140)는 일부 실시예에서 제 1 ECC 회로(120)와는 구분되는 별개의 것일 수 있고, 제 1 ECC 회로(120)와 적어도 부분적으로 동시발생적으로 작동할 수 있다. 다시 말해서, 제 2 ECC 회로(140)가 여기서 설명되는 바와 같이 작동하는 동안의 시간은 제 1 ECC 회로(120)가 여기서 설명되는 바와 같이 작동하는 동안의 시간과 적어도 부분적으로 겹쳐질 수 있다 - 가령, 회로(120, 140) 중 하나가 각자의 작동을 마치기 전에 회로(120, 140) 중 다른 하나가 각자의 작동을 시작할 수 있다. 제 1 및 제 2 ECC 회로(120, 140)의 이러한 병렬 작동은 일부 예에서, 유사한 제 1 및 제 2 ECC 회로들의 작동이 직렬로 작동하는 장치에 비교할 때, 제 1 ECC 회로가 작동을 완료할 때까지 제 2 ECC 회로가 작동을 시작하지 않는다는 점에서, 어레이(106)로부터의 판독 타이밍 또는 어레이로의 기록 타이밍을 개선시킬 수 있다.
제 2 ECC 회로(140)는 제 1 데이터 워드 DATA-OLD 및 제 2 데이터 워드 DATA-NEW를 수신하지만, 제 1 ECC 회로(120)로부터 교정된 제 1 데이터 워드를 수신하지 않는다. 제 2 ECC 회로(140)는 제어 신호 DATAMASK에 응답하여 제 1 데이터 워드 DATA-OLD 및 제 2 데이터 워드 DATA-NEW를 예비적으로 병합하고 따라서 초기 병합 데이터 워드를 발생시킨다. 제 1 ECC 회로(120)에 제공되는 제어 신호 DATAMASK는 제 2 ECC 회로(140)에 제공되는 제어 신호 DATAMASK와 일반적으로 동일하다. 예비 병합 결과는 초기 병합 데이터 워드로 병합되는 제 1 데이터 워드 DATA-OLD의 임의의 부분이 하나 이상의 데이터 에러를 포함할 수 있기 때문에 "초기" 병합 데이터 워드이며, 왜냐하면, 제 2 ECC 회로(140)로의 입력이 하나 이상의 데이터 에러를 포함할 수 있는 어레이(106)로부터의 "순수" 데이터 워드 DATA-OLD이기 때문이다.
제 2 ECC 회로(140)는 초기 병합 데이터 워드와 연관된 초기 패리티 코드를 또한 발생시키고, 교정기 회로(146)에서 초기 패리티를 교정한다. 교정된 패리티 코드 PARITY-CORRECTED는 제 2 ECC 회로(140)에 의해 기록 회로(160)에 제공되고, 기록 회로는 최종 병합 데이터 워드 DATA-MERGED와 함께 어레이(106)에 교정된 패리티 코드 PARITY-CORRECTED를 기록한다. 교정된 패리티 코드는 일부 예에서 전체 최종 병합 데이터 워드 DATA-MERGED를 나타낼 수 있고, 또는, 다른 예에서, 최종 병합 데이터 워드 DATA-MERGED의 2개 이상의 부분(가령, 각각의 부분이 마스킹될 수 있는 데이터 워드의 일 섹션에 대응함)으로 나타낼 수 있다.
초기 패리티 코드는 하나 이상의 데이터 에러를 지닐 수 있는 초기 병합 데이터 워드에 기초하여 발생되었기 때문에 교정될 필요가 있다. 제 1 ECC 회로(120)에 의해 발생되는 최종 병합 데이터 워드 DATA-MERGED에 비해 초기 병합 데이터 워드가 하나 이상의 에러를 지닐 경우, 초기 병합 데이터 워드로부터 발생된 초기 패리티 코드는 최종 병합 데이터 워드 DATA-MERGED의 패리티 코드가 가져야하는 것에 비해 하나 이상의 에러를 가질 것이다. 다시 말해서, 제 2 ECC 회로(140)는 교정된 패리티 코드 PARITY-CORRECTED가 최종 병합 데이터 워드 DATA-MERGED의 패리티 코드이도록 초기 패리티 코드를 교정한다. 아래 더 상세하게 설명되는 바와 같이, 최종 병합 데이터 워드 DATA-MERGED로 병합되는 제 1 데이터 워드 DATA-OLD의 일부분에 데이터 에러가 전혀없는 예에서, 초기 패리티 코드는 교정될 필요가 없고, 단순하게, 교정된 패리티 코드 PARITY-CORRECTED로 교정기 회로(146)를 거칠 것이다.
제 1 및 제 2 ECC 회로(120, 140)를 병렬로 작동시킴으로써, 제 1 패리티 회로(120)가 제 1 데이터 워드 DATA-OLD의 데이터 에러를 교정할 수 있고, 적어도 부분적으로 동시 발생적으로 제 2 ECC 회로(140)가 초기 패리티 코드를 발생시킬 수 있다 - 마치 최종 데이터 워드 DATA-MERGED로 병합되는 제 1 데이터 워드 DATA-OLD의 부분에 에러가 전혀 없는 것처럼 실현된다. 이러한 두 작동이 비교적 시간이 걸리고 초기 패리티 코드의 교정이 비교적 빠르기 때문에, 데이터 마스크 작동을 이용한 기록의 판독-수정-기록은 앞서 설명한 순차적 ECC 디코딩 및 후속 ECC 인코딩 과정에 비해 빠르고 효율적으로 처리될 수 있다.
도 2는 발명의 일 실시예에 따른, 데이터 에러 교정 장치(200)를 도시한다. 도 1에 도시된 장치(100)와 마찬가지로, 도 2에 도시되는 장치(200)는 제 1 및 제 2 ECC 회로(120, 140) 및 기록 회로(160)를 가진 ECC 시스템(102)을 포함한다. 더욱이, 도 2의 제 1 ECC 회로(120)는 ECC 디코딩 및 교정 회로(122)와 제 1 선택 회로(134)를 포함한다. ECC 디코딩 및 교정 회로(122)는 제 1 데이터 워드 DATA-OLD 및 관련 패리티 코드 PARITY-OLD를 수신하고, 패리티 코드 PARITY-OLD 및 제 1 데이터 워드 DATA-OLD를 디코딩하여, 제 1 데이터 워드 DATA-OLD에 하나 이상의 데이터 에러가 있는지를 결정하고, 만약 그러할 경우, 이러한 하나 이상의 에러를 교정하여, 교정된 데이터 워드 DATA-OLD-CORRECTED를 제공할 수 있다.
도 2의 제 1 선택 회로(134)는 제어 신호 DATAMASK와 함께 교정된 데이터 워드 DATA-OLD-CORRECTED 및 제 2 데이터 워드 DATA-NEW를 수신한다. 제 1 선택 회로(134)는 최종 병합 데이터 워드 DATA-MERGED를 발생시키기 위해, 제어 신호 DATAMASK에 따라, 제 2 데이터 워드 DATA-NEW 및 교정된 데이터 워드 DATA-OLD-CORRECTED 각각의 부분들 사이에서 선택하는 복수의 멀티플렉서를 포함할 수 있다.
도 2의 제 2 ECC 회로(140)는 ECC 선택 회로(142), ECC 인코딩 회로(144), 및 패리티 교정 회로(146)를 포함한다. 제 2 선택 회로(142)는 제어 신호 DATAMASK와 함께, 제 1 데이터 워드 DATA-OLD 및 제 2 데이터 워드 DATA-NEW를 수신한다. 제 2 선택 회로는 초기 병합 데이터 워드 DATA-MERGED-INITIAL을 발생시키기 위해, 제어 신호 DATAMASK에 따라, 제 2 데이터 워드 DATA-MASK 및 제 1 데이터 워드 DATA0OLD 각각의 부분들 사이에서 선택하는 복수의 멀티플렉서를 포함할 수 있다. 초기 병합 데이터 워드 DATA-MERGED-INITIAL은 제 1 데이터 워드 DATA-OLD가 먼저 제 1 ECC 회로(120)의 ECC 디코딩 및 교정 회로(122)를 통과하기 전에 제공되었기 때문에 하나 이상의 데이터 에러를 포함할 수 있다.
초기 병합 데이터 워드 DATA-MERGED-INITIAL가 그 후 ECC 인코딩 회로(144)에 제공되며, 이 회로는 초기 병합 데이터 워드 DATA-MERGED-INITIAL에 기초하여 초기 패리티 코드 PARITY-INITIAL를 발생시킨다. 초기 패리티 코드 PARITY-INITIAL은 다시 패리티 교정 회로(146)에 제공되어, 제 1 데이터 워드 DATA-OLD의 마스킹된 부분 내 하나 이상의 데이터 에러가 존재할 경우 초기 패리티 코드가 교정되고, 교정된 패리티 코드 PARITY-CORRECTED가 기록 회로(160)에 제공되어, 제 1 ECC 회로(120)로부터 어레이(106)까지 최종 병합 데이터 워드 DATA-MERGED와 함께 교정된 패리티 코드 PARITY-CORRECTED가 기록된다.
따라서, 제 2 ECC 회로(140)는 제 1 및 제 2 데이터 워드 DATA-OLD 및 DATA-NEW를 병합하고, 마치 초기 병합 데이터 워드 DATA-MERGED-INITIAL에 에러가 없었던 것처럼, 또는, 마치 초기 병합 데이터 워드 DATA-MERGED-INITIAL이 초기 패리티 코드 PARITY-INITIAL과 함께 어레이(106)에 기록될 것처럼, 관련 초기 패리티 코드를 발생시킨다. 그러나, 앞서 설명한 바와 같이, 패리티 교정 회로(146)는 최종 병합(및 교정) 데이터 워드 DATA-MERGED를 위해 존재해야 하는 패리티 코드와 정렬되도록 이러한 초기 패리티 코드 PARITY-INITIAL을 교정한다.
도 3은 발명의 일 실시예에 따른, 데이터 에러 교정 장치(300)를 도시한다. 도 1에 도시된 장치(100) 및 도 2에 도시되는 장치(200)와 마찬가지로, 도 3에 도시되는 장치(300)는 제 1 및 제 2 ECC 회로(120, 140) 및 기록 회로(160)를 가진 ECC 시스템(102)을 포함한다. 더욱이, 도 2의 제 1 ECC 회로(120)처럼, 도 3의 제 1 ECC 회로(120)는 ECC 디코딩 및 교정 회로(122)와, 제 1 선택 회로(134)를 포함한다. 도 3의 ECC 디코딩 및 교정 회로(122)는 신드롬 발생 회로(124)를 포함하여, 제 1 데이터 워드 DATA-OLD 및 관련 패리티 코드 PARITY-OLD를 수신하고, 수신되는 제 1 데이터 워드 DATA-OLD 내 하나 이상의 데이터 에러를 나타내는 신드롬 SYNDROME을 발생시킨다. 신드롬 SYNDROME은 에러 로케이터 회로(126)에 제공되고, 아래에서 더 상세히 설명되는 바와 같이, 패리티 교정 회로(146)에 또한 제공된다.
에러 로케이터 회로(126)는 하나 이상의 데이터 에러의 제 1 데이터 워드 DATA-OLD 내의 물리적 위치 DECODED를 제공하도록 신드롬을 디코딩한다. 에러 로케이터 회로(126)는 일부 실시예에서 전형적인 어드레스 디코더일 수 있다. 예를 들어, 신드롬이 8비트 길이이고 단일 데이터 비트 에러를 표시할 경우, 에러 로케이터 회로는 8비트 신드롬을 디코딩할 수 있고, 128비트 길이 DECODED 신호를 제공할 수 있으며, DECODED 신호의 모든 값들은 바이너리 1의 값을 가질 수 있는 데이터 에러가 존재하는 경우의 제 1 데이터 워드 DATA-OLD의 위치와는 다른 바이너리 0이다.
데이터 에러의 물리적 위치 DECODED가 제 1 데이터 워드 DATA-OLD와 함께 데이터 교정 회로(128)에 제공되어, 하나 이상의 데이터 에러가 교정된다. 일부 예에서, 데이터 교정 회로(128)는 복수의 XOR 게이트를 포함할 수 있고, 각각의 XOR 게이트는 제 1 데이터 워드 DATA-OLD 및 대응하는 물리적 위치 DECODED 중 일 비트를 입력으로 수신한다. 8비트 신드롬 및 128비트 길이 DECODED 신호의 예로 계속할 때, 제 1 데이터 워드 DATA-OLD에 에러가 존재할 경우, 해당 에러의 위치는 DECODED 신호 내 바이너리 1로 주어질 것이고, 바이너리 1이 제 1 데이터 워드 DATA-OLD 내 정확하지 않은 값과 XOR될 경우, 해당 위치의 값이 정확한 바이너리 값으로 복원될 것이다.
따라서 데이터 교정 회로(128)는 교정된 데이터 워드 DATA-OLD-CORRECTED를 제 1 선택 회로(134)에 제공하고, 상기 제 1 선택 회로는 제 2 데이터 워드 DATA-NEW 및 제어 신호 DATAMASK를 또한 수신하며, 도 2를 참조하여 설명한 바와 같이 최종 병합 데이터 워드 DATA-MERGED를 제공한다.
또한 도 2에 도시되는 장치(200)처럼, 도 3에 도시되는 장치(300)는 제 2 선택 회로(142), ECC 인코딩 회로(144), 및 패리티 교정 회로(146)를 포함하는 제 2 ECC 회로(140)를 포함한다. 패리티 교정 회로(146)는 일부 실시예에서, 신드롬 발생 회로(124)로부터 신드롬 SYNDROME 및 초기 패리티 코드 PARITY-INITIAL을 입력으로 수신하도록 구성되는 복수의 XOR 로직 게이트(152)를 포함할 수 있다. 초기 패리티 코드 PARITY-INITIAL을 신드롬 SYNDROME과 비교(가령, XOR)함으로써, 패리티 교정 회로(146)는 초기 패리티 코드 PARITY-INITIAL을 교정하여, 교정된 최종 병합 데이터 워드 DATA-MERGED에 대응하게 한다. 앞서 언급한 바와 같이, 신드롬 SYNDROME은 제 1 데이터 워드 DATA-OLD 내 데이터 에러의 위치에 관한 정보를 지닐 수 있고, 이는 예를 들어, 데이터 교정 회로(128) 내 XOR 게이트를 통해 해당 데이터 에러를 교정하는데 사용될 수 있다. 신드롬 및 패리티 코드가 발생되는 방식 때문에, 신드롬 SYNDROME 내 동일한 위치 정보는 예를 들어, XOR 게이트(152)를 통, 패리티 교정 회로(146) 내 초기 패리티 코드 PARITY-INITIAL 의 부정확한 값을 파악 및 교정하는데 또한 사용될 수 있고, 왜냐하면, 초기 패리티 코드 PARITY-INITIAL의 부정확한 값은 데이터 교정 회로(128)에서 교정되는 제 1 데이터 워드 DATA-OLD 내 동일한 데이터 에러로부터 나타난다.
일부 실시예에서, 초기 패리티 코드 PARITY-INITIAL 이 교정된 패리티 코드 PARITY-CORRECTED로 기록 회로(160)에 평소대로 전달되어야 하는지, 또는, 하나 이상의 데이터 비트가 먼저 초기 패리티 코드 PARITY-INITIAL 에서 변경될 필요가 있는지 여부를 결정하기 위해 패리티 교정 회로(146)에 신호(도시되지 않음)가 제공될 수 있다. 예를 들어, 제 1 데이터 워드 DATA-OLD에 데이터 에러가 없을 경우, 특히, 제 1 데이터 워드 DATA-OLD의 마스킹된 부분에 데이터 에러가 없을 경우, 초기 패리티 코드 PARITY-INITIAL이 수정될 필요가 없을 수 있다. 따라서, 패리티 교정 회로(146)는 일부 실시예에서, 제 1 데이터 워드 DATA-OLD의 마스킹된 부분에 데이터 에러가 있는지 여부를 결정할 수 있고, 없을 경우, 초기 패리티 코드 PARITY -INITIAL을 기록 회로(160)로 전달할 수 있다. 그러나, 다른 실시예에서, 초기 패리티 코드 PARITY-INITIAL은 항상 신드롬 SYNDROME과 함께 비교(가령, XOR)될 수 있고, 제 1 데이터 워드 DATA-OLD에 에러가 없을 경우, 신드롬 SYNDROME은 모두 바이너리 0일 것이다 - 이 경우에 XOR 함수는 어떤 경우에도 기록 회로(160)에 변경을 행하지 않으면서 초기 패리티 코드 PARITY-INITIAL을 단순히 통과시킬 것이다.
도 1, 2, 3의 장치(100, 200, 300)의 작동이 발명의 일 실시예에 따라, 도 4를 참조하여 이제 설명될 것이며, 이 도면은 데이터 마스크 작동을 이용한 기록 중 데이터 에러를 교정하기 위한 작동(400)의 순서도를 도시한다.
작동(402)에서, 제 1 데이터 워드 DATA-OLD(및 관련 패리티 코드 PARITY-OLD)가 어레이(106)로부터 판독되고, 작동(404)에서, 제 1 데이터 워드 DATA-OLD 및 제 2 데이터 워드 DATA-NEW가 제 1 및 제 2 ECC 회로(120, 140)에 의해 수신된다. 작동(410)에서, 제 1 ECC 회로(120)의 신드롬 발생기(124)는 제 1 데이터 워드 DATA-OLD 및 관련 패리티 코드 PARITY-OLD에 기초하여 신드롬 SYNDROME을 발생시킨다. 작동(412)에서, 신드롬 SYNDROME은 제 1 데이터 워드 DATA-OLD 내 하나 이상의 데이터 에러의 위치 DECODED 위치를 제공하도록 디코딩된다. 작동(414)에서, DECODED 위치 정보는 제 1 데이터 워드 DATA-OLD를 교정하는데 사용되고, 이는 제어 신호 DATAMASK에 기초하여 작동(416)에서 제 2 데이터 워드 DATA-NEW와 함께 병합된다. 작동(410-418)은 이제 설명될 작동(420-424)과 적어도 부분적으로 동시대적으로 진행된다.
작동(420)에서, 제 1 데이터 워드 DATA-OLD는 제어 신호 DATAMASK에 기초하여 제 2 데이터 워드 DATA-NEW와 예비 병합되어, 초기 병합 데이터 워드 DATA-MERGE-INITIAL을 발생시킨다. 작동(422)에서, 초기 패리티 코드는 초기 병합 데이터 워드 DATA-MERGE-INITIAL을 인코딩함으로써 발생된다. 그 후, 작동(424)에서, 초기 패리티 코드는 작동(410)에서 발생된 신드롬 SYNDROME에 기초하여 교정되어, 교정된 패리티 코드 PARITY-CORRECTED를 발생시킨다. 그 후, 작동(430)에서, 최종 병합 데이터 워드 DATA-MERGED가 교정된 패리티 코드 PARITY-CORRECTED와 함께 어레이(106)에 기록된다.
작동(424)를 참조하면, 앞서 언급한 바와 같이, 신드롬 SYNDROME을 이용하여 초기 패리티 코드 PARITY-INITIAL이 교정되기 전에, 일부 예에서, 제 1 데이터 워드 DATA-OLD에 데이터 에러가 존재하는지 여부를 결정하기 위해 점검이 먼저 이루어지고, 없을 경우, 초기 패리티 코드 PARITY-INITIAL에 어떤 변화도 이루어지지 않으며, 대신에, 기록 회로(160)에 교정된 패리티 코드 PARITY-CORRECTED로 직접 전달된다. 그러나, 다른 예에서, 점검이 이루어지지 않고, 초기 패리티 코드 PARITY-INITIAL은 항상 "교정되며", 이는 어떤 비트도 부정확하지 않은 경우, 코드를 고치는 작동이 그 데이터 값을 변경시키지 않는다는 의미이다.
초기 패리티 코드 PARITY-INITIAL가 교정될 필요가 없는 경우가 존재한다 - 예를 들어, 제 1 데이터 워드 DATA-OLD 또는 관련 패리티 코드 PARITY-OLD에 데이터 에러가 없을 때, 마스킹되지 않은 제 1 데이터 워드 DATA-OLD,의 일부분에만 데이터 에러가 있을 때, 제 1 데이터 워드 DATA-OLD와 함께 불러들여지는 패리티 코드 PARITY-OLD에만 데이터 에러가 있을 때에 해당한다. 이러한 사례에서, 초기 패리티 코드는 최종 병합 데이터 워드 DATA-MERGED에 정확하게 대응하고, 어떤 교정도 필요치 않다. 마스킹되고 있는 데 1 데이터 워드 DATA-OLD의 일부분에 데이터 에러가 있는 다른 예에서, 초기 패리티 코드 PARITY-INITIAL 은 부정확할 것이고, 따라서, 패리티 교정 회로(146)에 의해 교정될 수 있어서, 최종 병합 데이터 워드 DATA-MERGED에 적절히 대응하게 된다. 이러한 최종 상황에서, 신드롬 SYNDROME은 제 1 데이터 워드 DATA-OLD 내 에러의 위치를 결정할 수 있을 뿐 아니라, 초기 패리티 코드 PARITY-INITIAL 내 부정확한 비트의 위치를 또한 결정할 수 있다.
도 5는 본 발명의 일 실시예에 따른 메모리(500)의 일부분을 도시한다. 메모리(500)는 메모리 셀들의 어레이(501)를 포함하며, 예를 들어, DRAM 메모리 셀, SRAM 메모리 셀, 플래시 메모리 셀, 또는 일부 다른 타입의 메모리 셀일 수 있고, 도 1, 2, 3에 도시되는 어레이(106)에 대응할 수 있다. 메모리(500)는 ADDR/CMD 버스를 통해 메모리 명령 및 어드레스를 수신하는 제어 회로(506)를 포함한다. 제어 회로(506)는 ADDR/CMD 버스를 통해 수신되는 명령에 기초하여, 제어 신호를 제공한다. 제어 회로(506)는 어드레스 버스 및 어드레스 래치(510)를 통해 메모리(500)에 로우 및 칼럼 어드레스를 또한 제공한다. 어드레스 래치는 그 후, 개별적인 칼럼 어드레스 및 개별적인 로우 어드레스를 출력한다.
로우 및 칼럼 어드레스는 어드레스 래치(510)에 의해 각각 로우 어드레스 디코더(522) 및 칼럼 어드레스 디코더(528)에 제공된다. 칼럼 어드레스 디코더(528)는 각자의 칼럼 어드레스와 연관된 어레이(502)를 통해 연장되는 비트 라인을 선택한다. 로우 어드레스 디코더(522)는 수신된 로우 어드레스와 연관된 어레이(502) 내 메모리 셀들의 각자의 로우를 활성화시키는 워드 라인 드라이버(524)에 연결된다. 수신되는 칼럼 어드레스와 연관된, 선택된 데이터 라인(가령, 비트 라인 또는 비트 라인들)은 판독/기록 회로(530)에 연결되어, 입-출력 데이터 버스(540)를 통해 데이터 출력 회로(534)에 판독 데이터를 제공한다. 데이터 출력 회로(534)에 연결된 출력 패드(542)는 메모리(500)에 전기적으로 연결하기 위해 사용된다. 기록 데이터가 데이터 입력 회로(544) 및 메모리 어레이 판독/기록 회로(530)를 통해 메모리 어레이(502)에 제공된다. 데이터 입력 회로(542)에 연결되는 입력 패드(546)는 메모리(500)에 전기적으로 연결하는데 사용된다. 제어 회로(506)는 ADDR/CMD 버스에 제공되는 메모리 명령 및 어드레스에 응답하여, 메모리 어레이(502) 상의 다양한 작동을 수행한다. 특히, 제어 회로(506)는, 메모리 어레이(502)로부터 데이터를 판독하고 메모리 어레이에 데이터를 기록하기 위해 내부 제어 신호를 제공하는데 사용된다.
일부 실시예에서, 판독/기록 회로(530)는, 예를 들어, 도 1, 2, 및/또는 3에 도시되고 여기서 설명되는 ECC 시스템(102)일 수 있는, ECC 시스템(502)을 포함한다. 따라서, ECC 시스템(502)은 하나 이상의 에러와 함께 메모리 어레이(501)로부터 데이터 워드를 수신할 수 있고, 데이터 마스크 작동을 가진 기록의 경우에, 필요할 경우, 앞서 더 상세히 설명한 바와 같이, 하나 이상의 에러를 교정할 수 있다.
위로부터, 발명의 구체적 실시예들이 설명 용도로 여기서 설명되었으나, 다양한 변형예가 발명의 사상 및 범위로부터 벗어나지 않으면서 실현될 수 있다. 예를 들어, 도 1, 2, 3, 5는 ECC 시스템(102, 502)의 실시예를 도시하고, 도 1, 2, 3은 패리티 교정 회로(146)의 실시예를 도시하며, 도 2, 3은 선택 회로(134, 142)의 실시예를 도시하고, 등등이다. 그러나, 동일 설계를 갖는 것으로 제한되지 않는 다른 ECC 시스템, 패리티 교정 회로, 선택 회로, 등이 사용될 수 있고, 이러한 도면들에서 예시되는 실시예의 회로와는 다른 회로를 포함할 수 있다.
발명이 데이터 마스크 작동을 이용한 기록 중 ECC 시스템(102, 502)의 작동을 설명하였으나, 여기서 설명되는 ECC 시스템(102, 502)은 대체로 다른 작동 중 종래의 ECC 시스템과 유사하게 기능한다. 예를 들어, 판독 작동 중, ECC 시스템(102, 502)은 관련 패리티 코드 PARITY-OLD와 함께 제 1 데이터 워드 DATA-OLD를 판독하고, 제 1 데이터 워드 DATA-OLD 내 임의의 데이터 에러를 검출 및/또는 교정한다. 마찬가지로, 데이터 마스크없는 기록 작동의 경우, ECC 시스템(102, 502)은 어레이(106) 내 제 2 데이터 워드 DATA-NEW와 함께 저장될 수 있는 제 2 데이터 워드 DATA-NEW의 패리티 코드를 발생시킨다.
또한, 앞서 언급한 바와 같이, 본 개시문이 일 비트의 데이터 에러를 검출 및 교정할 수 있는 ECC 코드가 사용되는 예를 설명하였으나, 본 개시문 범위 내의 다른 예들은 2비트 에러를 검출하고 1비트 에러를 교정하며 2비트 에러를 교정할 수 있고 단지 단일 비트 에러를 검출할 수 있는, 등등 기능의 ECC 코드를 포함한다. 일반적으로, 임의의 에러 검출 및/또는 에러 교정 방법이 사용될 수 있다.
따라서, 발명은 여기서 설명되는 발명의 구체적 실시예에 제한되지 않는다.

Claims (29)

  1. 스토리지와,
    입력 패드와,
    ECC 회로를 포함하되, 상기 ECC 회로는,
    상기 입력 패드로부터 데이터 마스크 정보를 수반하는 기록 데이터를 수신하고,
    상기 스토리지로부터 판독 데이터를 수신하고,
    판독 데이터에 포함될 수 있는 에러 비트의 교정없이 제 1 병합 데이터를 발생시키도록 데이터 마스크 정보에 적어도 부분적으로 응답하여, 판독 데이터 및 기록 데이터를 병합하고,
    상기 제 1 병합 데이터로부터 제 1 패리티 코드를 발생시키도록 구성되는, 장치.
  2. 제 1 항에 있어서, 상기 ECC 회로는 제 1 패리티 코드를 교정하도록 또한 구성되는, 장치.
  3. 제 2 항에 있어서, 상기 ECC 회로는, 판독 데이터 및 판독 데이터에 대한 관련 제 2 패리티 코드에 적어도 부분적으로 기초하여 판독 데이터 내 하나 이상의 에러를 교정하고, 제 2 병합 데이터를 발생시키도록 데이터 마스크 정보에 적어도 부분적으로 응답하여 교정된 판독 데이터 및 기록 데이터를 병합하도록 또한 구성되는, 장치.
  4. 제 3 항에 있어서, 상기 데이터 마스크 정보는 교정된 판독 데이터의 하나 이상의 부분이 데이터 기록 동작 중 기록 데이터의 하나 이상의 대응 부분에 의해 대체될 수 없도록 교정된 판독 데이터의 하나 이상의 부분을 보유하도록 구성되는, 장치.
  5. 제 3 항에 있어서, 상기 ECC 회로는 판독 데이터의 교정 완료 전에 판독 데이터 및 기록 데이터의 병합을 개시하도록 구성되는, 장치.
  6. 제 3 항에 있어서, 상기 ECC 회로는 판독 데이터 및 판독 데이터에 대한 관련 제 2 패리티 코드로부터 발생되는 신드롬 및 제 1 패리티 코드를 입력으로 수신하도록 구성되는 복수의 XOR 로직 게이트를 포함하는, 장치.
  7. 제 3 항에 있어서, 교정된 제 1 패리티 코드는 제 2 병합 데이터에 대한 패리티 코드인, 장치.
  8. 스토리지와,
    입력 패드와,
    ECC 회로를 포함하되, 상기 ECC 회로는,
    상기 입력 패드로부터 데이터 마스크 정보를 수반하는 기록 데이터를 수신하고,
    스토리지로부터 판독 데이터를 수신하고,
    판독 데이터에 포함될 수 있는 에러 비트의 교정없이 제 1 병합 데이터를 발생시키도록 데이터 마스크 정보에 적어도 부분적으로 응답하여, 판독 데이터 및 기록 데이터를 병합하고,
    판독 데이터 및 판독 데이터에 대한 관련 제 1 패리티 코드에 적어도 부분적으로 응답하여, 판독 데이터 내 하나 이상의 에러를 교정하도록 구성되며,
    상기 ECC 회로는 판독 데이터의 교정 완료 이전에 판독 데이터 및 기록 데이터의 병합을 개시하도록 구성되는, 장치.
  9. 제 8 항에 있어서, 상기 ECC 회로는 상기 제 1 병합 데이터로부터 제 2 패리티 코드를 발생시키도록 또한 구성되는, 장치.
  10. 제 9 항에 있어서, 상기 ECC 회로는 상기 제 2 패리티 코드를 교정하도록 또한 구성되는, 장치.
  11. 제 9 항에 있어서,
    데이터 마스크 정보에 적어도 부분적으로 응답하여, 판독 데이터 및 기록 데이터를 병합하도록 구성되는 제 1 선택 회로와,
    상기 제 1 병합 데이터에 기초하여 상기 제 2 패리티 코드를 발생시키도록 구성되는 ECC 인코딩 회로와,
    판독 데이터 및 판독 데이터에 대한 관련 제 1 패리티 코드에 적어도 부분적으로 응답하여, 판독 데이터 내 하나 이상의 에러를 교정하도록 구성되는 ECC 디코딩 및 교정 회로와,
    데이터 마스크 정보에 적어도 부분적으로 응답하여 교정된 판독 데이터 및 기록 데이터를 병합하여 제 2 병합 데이터를 발생시키도록 구성되는 제 2 선택 회로를 더 포함하는, 장치.
  12. 제 9 항에 있어서, 상기 제 2 패리티 코드의 발생 및 판독 데이터 내 하나 이상의 에러의 교정은 적어도 부분적으로 동시적으로 수행되는, 장치.
  13. 제 11 항에 있어서, 상기 ECC 디코딩 및 교정 회로는
    신드롬을 발생시키도록 구성되는 신드롬 발생 회로와,
    신드롬을 디코딩하도록 구성되는 에러 로케이터 회로와,
    디코딩된 신드롬에 기초하여 판독 데이터를 교정하도록 구성되는 데이터 교정 회로를 포함하는, 장치.
  14. 제 13 항에 있어서, 상기 제 2 패리티 코드의 발생 및 신드롬 발생은 적어도 부분적으로 동시적으로 수행되는, 장치.
  15. 제 11 항에 있어서, 상기 제 1 및 제 2 선택 회로가 하나 이상의 멀티플렉서를 포함하는, 장치.
  16. 제 11 항에 있어서, 상기 제 2 선택 회로는 제 2 병합 데이터를 발생시키도록 구성되고, 상기 제 2 병합 데이터는 교정된 판독 데이터의 하나 이상의 부분과, 기록 데이터의 하나 이상의 부분을 포함하는, 장치.
  17. 데이터 마스크 정보를 수반하는 제 1 데이터를 ECC 회로에 의해 수신하는 단계와,
    스토리지로부터 제 2 데이터를 상기 ECC 회로에 의해 수신하는 단계와,
    병합 데이터를 발생시키도록 상기 제 1 및 제 2 데이터를 상기 ECC 회로에 의해 병합하는 단계 - 상기 병합은 제 2 데이터에 포함될 수 있는 에러 비트의 교정없이 데이터 마스크 정보에 적어도 부분적으로 응답하여 수행됨 -
    를 포함하는, 방법.
  18. 제 17 항에 있어서,
    상기 병합 데이터에 기초하여 제 1 패리티 코드를 발생시키는 단계와,
    교정된 제 2 데이터를 발생시키도록 상기 제 2 데이터 및 상기 제 2 데이터와 연관된 제 2 패리티 코드에 적어도 부분적으로 기초하여, 상기 제 2 데이터의 에러 비트를 교정하는 단계를 더 포함하는, 방법.
  19. 제 18 항에 있어서,
    교정된 제 1 패리티 코드를 발생시키도록 상기 제 2 데이터 및 상기 제 2 패리티 코드에 적어도 부분적으로 기초하여 상기 제 1 패리티 코드를 교정하는 단계를 더 포함하는, 방법.
  20. 제 19 항에 있어서,
    제 3 데이터를 발생시키도록 데이터 마스크 정보에 적어도 부분적으로 응답하여, 교정된 제 2 데이터를 제 1 데이터와 병합하는 단계를 더 포함하는, 방법.
  21. 제 20 항에 있어서,
    상기 제 3 데이터 및 교정된 제 1 패리티 코드를 상기 스토리지에 기록하는 단계를 더 포함하는, 방법.
  22. 제 18 항에 있어서, 상기 발생 및 교정 단계가 서로에 대해 적어도 부분적으로 병렬로 수행되는, 방법.
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
KR1020167002028A 2013-06-24 2013-06-24 데이터 에러 교정용 회로, 장치, 및 방법 KR101750662B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2013/000727 WO2014205590A1 (en) 2013-06-24 2013-06-24 Circuits, apparatuses, and methods for correcting data errors

Publications (2)

Publication Number Publication Date
KR20160024966A KR20160024966A (ko) 2016-03-07
KR101750662B1 true KR101750662B1 (ko) 2017-06-23

Family

ID=52140726

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167002028A KR101750662B1 (ko) 2013-06-24 2013-06-24 데이터 에러 교정용 회로, 장치, 및 방법

Country Status (4)

Country Link
US (2) US9148176B2 (ko)
KR (1) KR101750662B1 (ko)
CN (1) CN105340022B (ko)
WO (1) WO2014205590A1 (ko)

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9311181B2 (en) * 2012-11-15 2016-04-12 Samsung Electronics Co., Ltd. Memory controller changing partial data in memory device and method for changing partial data thereof
US9148176B2 (en) 2013-06-24 2015-09-29 Micron Technology, Inc. Circuits, apparatuses, and methods for correcting data errors
KR20150043044A (ko) * 2013-10-14 2015-04-22 에스케이하이닉스 주식회사 반도체 장치 및 이를 포함하는 반도체 시스템
CN103594120B (zh) * 2013-10-31 2018-08-21 西安紫光国芯半导体有限公司 以读代写的存储器纠错方法
US9823966B1 (en) * 2013-11-11 2017-11-21 Rambus Inc. Memory component with error-detect-correct code interface
US9710185B2 (en) * 2014-07-10 2017-07-18 Samsung Electronics Co., Ltd. Computing system with partial data computing and method of operation thereof
US10447316B2 (en) * 2014-12-19 2019-10-15 Micron Technology, Inc. Apparatuses and methods for pipelining memory operations with error correction coding
CN115100016A (zh) 2015-06-10 2022-09-23 无比视视觉技术有限公司 用于处理图像的图像处理器和方法
US10140175B2 (en) * 2015-11-20 2018-11-27 Qualcomm Incorporated Protecting an ECC location when transmitting correction data across a memory link
US9965352B2 (en) * 2015-11-20 2018-05-08 Qualcomm Incorporated Separate link and array error correction in a memory system
US10169144B2 (en) 2016-01-15 2019-01-01 Micron Technology, Inc. Non-volatile memory including selective error correction
KR20170112630A (ko) * 2016-04-01 2017-10-12 에스케이하이닉스 주식회사 반도체장치 및 반도체시스템
KR20170121798A (ko) 2016-04-26 2017-11-03 삼성전자주식회사 반도체 메모리 장치 및 이의 동작 방법
KR102469809B1 (ko) * 2016-05-18 2022-11-24 에스케이하이닉스 주식회사 반도체장치
KR102504176B1 (ko) * 2016-06-23 2023-03-02 에스케이하이닉스 주식회사 반도체장치
US9904595B1 (en) 2016-08-23 2018-02-27 Texas Instruments Incorporated Error correction hardware with fault detection
KR20180027234A (ko) * 2016-09-06 2018-03-14 에스케이하이닉스 주식회사 반도체장치
TWI602188B (zh) * 2017-01-03 2017-10-11 慧榮科技股份有限公司 用來於記憶裝置中進行資料管理之方法以及記憶裝置及其控制器
CN107068194A (zh) * 2017-04-20 2017-08-18 聚辰半导体(上海)有限公司 一种应用在eeprom上的错误纠正编码及相应的eeprom
KR20190031787A (ko) 2017-09-18 2019-03-27 삼성전자주식회사 병렬 리드-모디파이-라이트 동작을 수행하는 메모리 장치
US10599517B2 (en) * 2017-11-29 2020-03-24 Taiwan Semiconductor Manufacturing Co., Ltd. Memory device
KR102609758B1 (ko) * 2018-03-27 2023-12-04 삼성전자주식회사 데이터 통신 오류를 검출하는 순환 중복 검사 유닛 데이터 통신 장치 및 검출 방법
KR102583797B1 (ko) * 2018-04-09 2023-10-05 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
US10606694B2 (en) * 2018-04-20 2020-03-31 Micron Technology, Inc. Error correction using hierarchical decoders
US11132253B2 (en) 2018-12-06 2021-09-28 Micron Technology, Inc. Direct-input redundancy scheme with dedicated error correction code circuit
CN109753369B (zh) * 2018-12-28 2023-10-24 上海微阱电子科技有限公司 一种寄存器及内存中顺序数组的数据编码及校验方法
US10884853B2 (en) * 2019-01-16 2021-01-05 Intel Corporation Fast search of error correction code (ECC) protected data in a memory
TWI689935B (zh) * 2019-04-02 2020-04-01 華邦電子股份有限公司 具糾錯電路的記憶體
US11269720B2 (en) * 2019-08-11 2022-03-08 Winbond Electronics Corp. Memory storage apparatus and data access method
US11010243B2 (en) * 2019-09-09 2021-05-18 Winbond Electronics Corp. Memory apparatus with error bit correction in data reading period
CN110750406B (zh) * 2019-10-29 2023-10-31 湖南国科微电子股份有限公司 一种检测方法、装置和soc芯片
DE102020102796A1 (de) 2020-02-04 2021-08-05 Infineon Technologies Ag Datenverarbeitungsvorrichtung und verfahren zum verarbeiten von geheimen daten
US11424001B2 (en) * 2020-02-07 2022-08-23 Micron Technology, Inc. Apparatuses, systems, and methods for error correction
US11755476B2 (en) * 2020-04-13 2023-09-12 SK Hynix Inc. Memory controller, storage device including the memory controller, and method of operating the memory controller and the storage device
KR102673257B1 (ko) * 2021-01-14 2024-06-05 창신 메모리 테크놀로지즈 아이엔씨 비교 시스템
US11681578B2 (en) * 2021-02-16 2023-06-20 Micron Technology, Inc. Apparatuses, systems, and methods for multi-pump error correction
KR20220144093A (ko) * 2021-04-19 2022-10-26 삼성전자주식회사 메모리 장치 및 메모리 장치와 호스트 장치의 구동 방법
US11709734B2 (en) * 2021-04-30 2023-07-25 Micron Technology, Inc. Error correction with syndrome computation in a memory device
CN115910183A (zh) * 2021-08-19 2023-04-04 长鑫存储技术有限公司 测试方法及测试系统

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5581360A (en) 1992-06-17 1996-12-03 Sony Corporation Methods and systems for dubbing a variable-length encoded digital video signal on a record medium
US5966389A (en) 1994-02-22 1999-10-12 Siemens Aktiengesellschaft Flexible ECC/parity bit architecture
US20030103586A1 (en) 2001-11-20 2003-06-05 Poeppelman Alan D. Method of reducing miscorrections in a post-processor using column parity checks
US6735726B2 (en) 2000-07-10 2004-05-11 Hitachi, Ltd. Method of deciding error rate and semiconductor integrated circuit device
US7392456B2 (en) 2004-11-23 2008-06-24 Mosys, Inc. Predictive error correction code generation facilitating high-speed byte-write in a semiconductor memory
CN101246748A (zh) 2007-02-13 2008-08-20 三星电子株式会社 基于字节的掩码操作的设备和产生奇偶校验数据的方法
US7506226B2 (en) 2006-05-23 2009-03-17 Micron Technology, Inc. System and method for more efficiently using error correction codes to facilitate memory device testing
US7954034B1 (en) 2005-09-30 2011-05-31 Emc Corporation Method of and system for protecting data during conversion from an ECC protection scheme to a parity protection scheme
US8246109B2 (en) 2010-09-10 2012-08-21 Ford Global Technologies, Llc Vehicle roof module
US8321769B1 (en) 2008-11-06 2012-11-27 Marvell International Ltd. Multi-parity tensor-product code for data channel
US8365036B2 (en) 2009-09-16 2013-01-29 Freescale Semiconductor, Inc. Soft error correction in a memory array and method thereof
US8560931B2 (en) 2011-06-17 2013-10-15 Texas Instruments Incorporated Low power retention random access memory with error correction on wake-up

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4916701A (en) 1988-09-21 1990-04-10 International Business Machines Corporation Method and system for correcting long bursts of consecutive errors
US20060195774A1 (en) * 2005-02-17 2006-08-31 Stephen Bowyer Error correction circuit and method
US9148176B2 (en) 2013-06-24 2015-09-29 Micron Technology, Inc. Circuits, apparatuses, and methods for correcting data errors

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5581360A (en) 1992-06-17 1996-12-03 Sony Corporation Methods and systems for dubbing a variable-length encoded digital video signal on a record medium
US5966389A (en) 1994-02-22 1999-10-12 Siemens Aktiengesellschaft Flexible ECC/parity bit architecture
US6735726B2 (en) 2000-07-10 2004-05-11 Hitachi, Ltd. Method of deciding error rate and semiconductor integrated circuit device
US20030103586A1 (en) 2001-11-20 2003-06-05 Poeppelman Alan D. Method of reducing miscorrections in a post-processor using column parity checks
US7392456B2 (en) 2004-11-23 2008-06-24 Mosys, Inc. Predictive error correction code generation facilitating high-speed byte-write in a semiconductor memory
US7954034B1 (en) 2005-09-30 2011-05-31 Emc Corporation Method of and system for protecting data during conversion from an ECC protection scheme to a parity protection scheme
US7506226B2 (en) 2006-05-23 2009-03-17 Micron Technology, Inc. System and method for more efficiently using error correction codes to facilitate memory device testing
CN101246748A (zh) 2007-02-13 2008-08-20 三星电子株式会社 基于字节的掩码操作的设备和产生奇偶校验数据的方法
US8321769B1 (en) 2008-11-06 2012-11-27 Marvell International Ltd. Multi-parity tensor-product code for data channel
US8365036B2 (en) 2009-09-16 2013-01-29 Freescale Semiconductor, Inc. Soft error correction in a memory array and method thereof
US8246109B2 (en) 2010-09-10 2012-08-21 Ford Global Technologies, Llc Vehicle roof module
US8560931B2 (en) 2011-06-17 2013-10-15 Texas Instruments Incorporated Low power retention random access memory with error correction on wake-up

Also Published As

Publication number Publication date
KR20160024966A (ko) 2016-03-07
WO2014205590A1 (en) 2014-12-31
US9148176B2 (en) 2015-09-29
US20150089316A1 (en) 2015-03-26
CN105340022B (zh) 2019-11-12
US9703633B2 (en) 2017-07-11
CN105340022A (zh) 2016-02-17
US20150378826A1 (en) 2015-12-31

Similar Documents

Publication Publication Date Title
KR101750662B1 (ko) 데이터 에러 교정용 회로, 장치, 및 방법
KR102002925B1 (ko) 메모리 모듈, 그것을 포함하는 메모리 시스템, 그것의 구동 방법
US10803971B2 (en) Device for supporting error correction code and test method thereof
US8560899B2 (en) Safe memory storage by internal operation verification
US11403170B2 (en) Method and device for monitoring data error status in a memory
KR101860809B1 (ko) 메모리 시스템 및 메모리 에러 정정 방법
US9760434B2 (en) ECC method for double pattern flash memory
KR102014624B1 (ko) 오류 정정 코딩이 있는 메모리 연산을 파이프라이닝하기 위한 방법 및 장치
US10467091B2 (en) Memory module, memory system including the same, and error correcting method thereof
US8910018B2 (en) Memory with dynamic error detection and correction
US10795763B2 (en) Memory system and error correcting method thereof
US8990667B2 (en) Error check and correction circuit, method, and memory device
US20150205665A1 (en) Ecc method for flash memory
US11461039B2 (en) Nonvolatile memory that stores temperature information therein
KR20170112630A (ko) 반도체장치 및 반도체시스템
TWI808098B (zh) 用於支持錯誤更正碼的裝置及其測試方法
CN110942798A (zh) 半导体存储器件、存储系统及操作半导体存储器件的方法
US10514980B2 (en) Encoding method and memory storage apparatus using the same
US7075851B2 (en) Semiconductor memory device inputting/outputting data and parity data in burst operation
US9613717B2 (en) Error correction circuit and semiconductor memory device including the same
KR20170133545A (ko) 반도체장치 및 반도체시스템
US11126500B2 (en) Error detection and correction with integrity checking
KR102629457B1 (ko) 반도체 메모리 장치, 제어 장치, 및 메모리 시스템
JP2012230730A (ja) 半導体装置
JP2009158051A (ja) 不揮発性半導体記憶装置及び読み出しテスト方法

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant