KR20210150149A - 신드롬과 부분 계수 정보를 병렬적으로 생성하는 에러 정정 장치 및 방법 - Google Patents

신드롬과 부분 계수 정보를 병렬적으로 생성하는 에러 정정 장치 및 방법 Download PDF

Info

Publication number
KR20210150149A
KR20210150149A KR1020200067163A KR20200067163A KR20210150149A KR 20210150149 A KR20210150149 A KR 20210150149A KR 1020200067163 A KR1020200067163 A KR 1020200067163A KR 20200067163 A KR20200067163 A KR 20200067163A KR 20210150149 A KR20210150149 A KR 20210150149A
Authority
KR
South Korea
Prior art keywords
error
syndrome
partial
data
syndromes
Prior art date
Application number
KR1020200067163A
Other languages
English (en)
Inventor
이은애
이기준
송영걸
이명규
황석하
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020200067163A priority Critical patent/KR20210150149A/ko
Priority to US17/199,803 priority patent/US11689224B2/en
Priority to CN202110614942.9A priority patent/CN113764029A/zh
Publication of KR20210150149A publication Critical patent/KR20210150149A/ko

Links

Images

Classifications

    • 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/1575Direct decoding, e.g. by a direct determination of the error locator polynomial from syndromes and subsequent analysis or by matrix operations involving syndromes, e.g. for codes with a small minimum Hamming distance
    • 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/1012Adding 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 codes or arrangements adapted for a specific type of error
    • G06F11/1016Error in accessing a memory location, i.e. addressing error
    • 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/1044Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
    • 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/1525Determination and particular use of error location polynomials
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/1545Determination of error locations, e.g. Chien search or other methods or arrangements for the determination of the roots of the error locator polynomial

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • General Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • Algebra (AREA)
  • Pure & Applied Mathematics (AREA)
  • Error Detection And Correction (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

본 개시의 기술적 사상에 따른 에러 정정 장치는, 데이터를 수신하고, 데이터에 대하여 복수의 신드롬들을 생성하는 신드롬 생성 회로, 복수의 신드롬들이 생성되는 동안, 데이터를 사용하여 에러 위치 다항식(error location polynomial)의 계수의 일부분에 관한 부분 계수 정보(partial coefficient information)를 생성하는 부분 계수 생성 회로, 복수의 신드롬들 및 부분 계수 정보를 기초로 하여 에러 위치 다항식의 계수를 결정하고, 에러 위치 다항식을 사용하여 데이터에 포함된 에러의 위치를 획득하는 에러 위치 결정 회로 및 에러의 위치에 따라 데이터에 포함된 에러를 정정하는 에러 정정 회로를 포함할 수 있다.

Description

신드롬과 부분 계수 정보를 병렬적으로 생성하는 에러 정정 장치 및 방법{ERROR CORRECTION DEVICE AND METHOD FOR GENERATING SYNDROMES AND A PARTIAL COEFFICIENT INFORMATION IN A PARALLEL}
본 개시의 기술적 사상은 신드롬과 부분 계수 정보를 병렬적으로 생성하는 에러 정정 장치 및 에러 정정 방법에 관한 것이다.
에러 정정 디코더는 정보 데이터에 포함된 에러 비트를 정정하기 위하여, 에러 정정 코딩(Error Correction Coding, ECC)을 수행할 수 있다.
통신 속도가 빨라지고 데이터 처리량이 많아질수록 정보 데이터에 포함된 에러 비트의 개수는 증가할 수 있다. 에러 비트의 증가로 인해, 에러 정정 디코더가 정보 데이터를 수신할 때부터 정정 데이터를 출력할 때까지 소요되는 에러 정정 레이턴시가 길어질 수 있다.
본 개시의 기술적 사상이 해결하려는 과제는 에러 위치 방정식의 부분 계수와 신드롬을 병렬적으로 생성함으로써 에러 정정 레이턴시를 감소시키는 데 있다.
상기와 같은 목적을 달성하기 위하여, 본 개시의 일 측면에 따른 에러 정정 장치는, 데이터를 수신하고, 데이터에 대하여 복수의 신드롬들을 생성하는 신드롬 생성 회로, 복수의 신드롬들이 생성되는 동안, 데이터를 사용하여 에러 위치 다항식(error location polynomial)의 계수의 일부분에 관한 부분 계수 정보(partial coefficient information)를 생성하는 부분 계수 생성 회로, 복수의 신드롬들 및 부분 계수 정보를 기초로 하여 에러 위치 다항식의 계수를 결정하고, 에러 위치 다항식을 사용하여 데이터에 포함된 에러의 위치를 획득하는 에러 위치 결정 회로 및 에러의 위치에 따라 데이터에 포함된 에러를 정정하는 에러 정정 회로를 포함할 수 있다.
본 개시의 다른 측면에 따른 에러 정정 방법은, 메모리 셀 어레이로부터 데이터를 리드하는 단계, 데이터에 대하여 복수의 신드롬들을 생성하는 단계, 복수의 신드롬들이 생성되는 동안, 데이터를 사용하여 에러 위치 다항식의 계수의 일부분에 관한 부분 계수 정보를 생성하는 단계, 복수의 신드롬들 및 부분 계수 정보를 기초로 하여 상기 에러 위치 다항식를 결정하고, 에러 위치 다항식을 사용하여 데이터에 포함된 에러의 위치를 획득하는 단계 및 에러의 위치를 기초로 데이터에 포함된 에러를 정정하는 단계를 포함할 수 있다.
본 개시의 또 다른 측면에 따른 휘발성 메모리 장치는, 복수의 메모리 셀들을 포함하는 메모리 셀 어레이 및 메모리 셀 어레이로부터 리드된 데이터를 정정하는 에러 정정 엔진을 포함하고, 에러 정정 엔진은, 리드된 데이터를 사용하여 복수의 신드롬들을 생성하는 신드롬 생성 회로, 복수의 신드롬들이 생성되는 동안, 에러 위치 다항식의 계수의 일부분에 관한 부분 계수 정보를 생성하는 부분 계수 생성 회로, 복수의 신드롬들 및 부분 계수 정보를 기초로 하여 에러 위치 다항식의 계수를 결정하고, 에러 위치 다항식을 사용하여 데이터에 포함된 에러의 위치를 획득하는 에러 위치 결정 회로 및 에러의 위치를 기초로 데이터에 포함된 에러를 정정하는 에러 정정 회로를 포함할 수 있다.
본 개시의 예시적 실시 예에 따른 에러 정정 장치 및 에러 정정 방법은 에러 위치 방정식의 부분 계수와 신드롬을 병렬적으로 생성함으로써 에러 정정 레이턴시를 감소시킬 수 있는 효과가 있다.
도 1은 본 개시의 예시적 실시 예에 따른 에러 정정 장치를 설명하기 위한 블록도이다.
도 2는 본 개시의 예시적 실시 예에 따른 에러 정정 방법을 설명하기 위한 흐름도이다.
도 3(a) 및 도 3(b)는 본 개시의 예시적 실시 예에 따른 에러 정정의 레이턴시를 설명하기 위한 도면이다.
도 4는 신드롬 생성 회로를 설명하기 위한 도면이다.
도 5는 에러 정정 다항식 생성 회로를 설명하기 위한 도면이다.
도 6은 본 개시의 예시적 실시 예에 따른 부분 계수 생성 회로를 설명하기 위한 도면이다.
도 7은 본 개시의 다른 실시 예에 따른 에러 정정 장치를 설명하기 위한 도면이다.
도 8은 본 개시의 다른 실시 예에 따른 부분 계수 생성 회로를 설명하기 위한 도면이다.
도 9는 본 개시의 예시적 실시 예에 따른 에러 정정 다항식 생성 회로를 설명하기 위한 도면이다.
도 10은 신드롬 생성과 부분 계수 생성을 병렬로 수행하는 ECC 엔진을 포함하는 메모리 장치를 설명하는 블록도이다.
도 11은 도 10의 ECC 인코딩 회로를 설명하는 도면이다.
도 12는 도 10의 ECC 디코딩 회로를 설명하는 도면이다.
도 13은 본 발명의 실시예에 따른 반도체 메모리 장치를 설명하는 도면이다.
도 14는 본 발명의 실시예들에 따른 부분 계수와 신드롬을 병렬로 생성하는 반도체 메모리 장치를 모바일 시스템에 응용한 예를 나타내는 블록도이다.
도 15는 본 발명의 실시예들에 따른 부분 계수와 신드롬을 병렬로 생성하는 반도체 메모리 장치를 컴퓨팅 시스템에 응용한 예를 나타내는 블록도이다.
이하, 본 발명의 다양한 실시 예가 첨부된 도면을 참조하여 기재된다.
도 1은 본 개시의 예시적 실시 예에 따른 에러 정정 장치를 설명하기 위한 블록도이다.
도 1을 참조하면, 에러 정정 장치(100-1)는 신드롬 생성 회로(200), 부분 계수 생성 회로(300-1), 에러 위치 다항식 생성 회로(400-2), 에러 위치 결정 회로(500), 에러 정정 회로(600) 및 데이터 버퍼(700)를 포함할 수 있다.
에러 정정 장치(100-1)는 데이터 다항식 R(x)를 수신하고, 데이터 다항식 R(x)에 포함된 에러를 정정할 수 있다. 에러 정정 장치(100-1)는 에러가 정정된 정정 데이터 다항식 C(x)를 출력할 수 있다. 데이터 다항식 R(x)는 에러 정정 장치(100-1)에서 에러 정정 기능을 수행하도록 구성되는 소스 데이터일 수 있다. 예시적으로, 데이터 다항식 R(x)는 이 후, 도 10에서 설명될 독출 데이터(RData[0:63])와 패리티 비트(ECCP[0:7])의 벡터 표현에 대응될 수 있다.
데이터 버퍼(700)는 수신된 데이터 다항식 R(x)를 임시로 저장하고, 에러 정정 회로(600)에 제공할 수 있다.
신드롬 생성 회로(200)는 데이터 다항식 R(x)를 수신하고, 신드롬 다항식 S(x)를 생성할 수 있다. 신드롬 다항식 S(x)은 데이터 다항식 R(x)에 에러가 존재하는지 여부를 나타내는 다항식일 수 있다. 신드롬 다항식 S(x)가 0인 경우 데이터 다항식 R(x)에 에러가 존재하지 않을 수 있다. 신드롬 다항식 S(x)가 0이 아닌 경우 데이터 다항식 R(x)에 에러가 존재할 수 있다.
신드롬 다항식 S(x)가 0인 경우 데이터 버퍼(700)에 임시로 저장된 데이터 다항식 R(x)는 별도의 에러 정정 없이 에러 정정 장치(100-1) 외부로 출력될 수 있다.
신드롬 다항식 S(x)가 0이 아닌 경우 신드롬 다항식 S(x)는 에러 위치 다항식 생성 회로(400-2)에 전달될 수 있다.
부분 계수 생성 회로(300-1)는 에러 위치 다항식(error location polynomial)의 계수의 일부분에 관한 부분 계수 정보(Partial_Coef_info)를 생성할 수 있다. 부분 계수 생성 회로(300-1)는 신드롬 생성 회로(200)가 신드롬 다항식 S(x)을 생성하는 것과 병렬로 부분 계수 정보(Partial_Coef_info)를 생성함으로써 데이터 다항식 R(x)에 포함된 에러를 정정하는 데 소요되는 레이턴시를 감소시킬 수 있다.
에러 위치 다항식 생성 회로(400-2)는 신드롬 다항식 S(x) 및 부분 계수 정보(Partial_Coef_info)를 기초로 데이터 다항식 R(x)에 포함된 에러의 위치를 탐색하는 데 사용되는 에러 위치 다항식
Figure pat00001
을 생성할 수 있다. 에러 위치 다항식 생성 회로(400-2)는 신드롬 다항식 S(x)과 부분 계수 정보(Partial_Coef_info)를 함께 사용함으로써 에러 위치 다항식
Figure pat00002
의 계수를 생성하는 데 소요되는 레이턴시를 감소시킬 수 있다.
에러 위치 다항식 생성 회로(400-2)는 키 방정식 솔버(Key Equation Solver)라고 지칭될 수 있다. 에러 위치 다항식 생성 회로(400-2)는 벌러캠프-매시(Berlekamp-Massey) 알고리즘, 스텝-바이-스텝(Step-By-Step(SBS)) 알고리즘, 유클리드(Euclidean) 알고리즘, 또는 수정 유클리드(modified Euclidean) 알고리즘 등을 이용하여 에러 위치 다항식
Figure pat00003
을 생성할 수 있다.
에러 위치 결정 회로(500)는 에러 위치 다항식
Figure pat00004
에 기초하여, 에러 위치들을 계산하고 계산 결과에 따라 에러 다항식 E(x)을 생성할 수 있다. 에러 위치 결정 회로(500)는 생성된 에러 다항식 E(x)을 에러 정정 회로(600)에 전달할 수 있다.
에러 정정 회로(600)는 에러 다항식 E(x)에 기초하여 데이터 버퍼(700)로부터 수신된 데이터 다항식 R(x)의 에러를 정정하고, 에러가 정정된 정정 데이터 다항식 C(x)를 출력할 수 있다.
도 2는 본 개시의 예시적 실시 예에 따른 에러 정정 방법을 설명하기 위한 흐름도이다.
도 2를 참조하면, S201 단계에서, 메모리 셀 어레이로부터 데이터를 리드할 수 있다. 데이터는 정보 데이터(information data) 및 패리티 데이터(parity data)를 포함할 수 있다. 패리티 데이터(parity data)는 정보 데이터(information data)를 정정하기 위해 필요한 데이터일 수 있다.
S203 단계에서, 신드롬 생성 회로(200)는 리드된 데이터에 대한 복수의 신드롬들을 생성할 수 있다. 신드롬은 데이터에 에러가 존재하는지 여부를 나타내는 데이터일 수 있다. 신드롬가 0인 경우 데이터에 에러가 존재하지 않을 수 있다. 신드롬이 0이 아닌 경우 데이터에 에러가 존재할 수 있다.
S205 단계에서, 부분 계수 생성 회로(300-1)는 복수의 신드롬 생성과 병렬적으로, 리드된 데이터를 사용하여 에러 위치 다항식의 계수의 일부분에 관한 정보인 부분 계수 정보를 생성할 수 있다. 에러 위치 다항식은 리드된 데이터에 포함된 에러의 위치를 근(root) 또는 근의 역수로 갖는 다항식일 수 있다. 부분 계수 정보는 에러 위치 다항식의 계수 중 비선형 연산을 포함하는 계수에 대한 정보일 수 있다. 부분 계수 정보는 에러 위치 다항식의 계수 중 어느 하나의 신드롬의 거듭 제곱 값을 포함하는 계수에 대한 정보일 수 있다. 부분 계수 정보는 신드롬의 거듭 제곱 값을 산출하기 위한 이중 합산(double summation) 연산 중 제1 합산 연산을 수행함으로써 생성될 수 있다.
S207 단계에서, 에러 위치 다항식 생성 회로(400-2)는 신드롬과 부분 계수 정보를 기초로 에러 위치 다항식을 결정하고, 에러 위치 결정 회로(500)는 에러 위치를 획득할 수 있다. 에러 위치는 에러 위치 다항식의 근의 역수를 취함으로써 획득될 수 있다.
S209 단계에서, 에러 정정 회로(600)는 데이터 중 에러 위치에 대응되는 비트를 플립시킴으로써 에러를 정정할 수 있다.
도 3(a) 및 도 3(b)는 본 개시의 예시적 실시 예에 따른 에러 정정의 레이턴시를 설명하기 위한 도면이다.
도 3(a)를 참조하면, 신드롬 생성 회로(200)는 신드롬 생성 시간 Ts 동안 데이터에 대한 복수의 신드롬들을 생성할 수 있다. 에러 위치 다항식 생성 회로(400-1)는 신드롬 생성 회로(200)로부터 복수의 신드롬들을 수신하고, 제1 계수 생성 시간(coefficient generation time1) Tc1 동안 에러 위치 다항식의 계수를 생성할 수 있다.
도 3(b)를 참조하면, 부분 계수 생성 회로(300-1)는 부분 계수 생성 시간 Tp 동안 에러 위치 다항식의 계수의 일부분에 대한 부분 계수를 생성할 수 있다. 부분 계수 생성 시간 Tp는 신드롬 생성 시간 Ts와 오버랩될 수 있다. 즉, 부분 계수 생성 회로(300-1)는 신드롬 생성 회로(200)의 신드롬 생성 동작과 병렬로, 부분 계수를 생성할 수 있다. 신드롬 생성 시간 Ts가 부분 계수 생성 시간 Tp보다 긴 것으로 설명하였으나, 부분 계수 생성 회로(300-1)가 에러 위치 다항식의 계수의 어느 부분을 생성하는 지 여부에 따라 부분 계수 생성 시간 Tp는 증가할 수 있다. 다시 말해, 부분 계수 생성 시간 Tp은 신드롬 생성 시간 Ts보다 길어질 수도 있다.
에러 위치 다항식 생성 회로(400-2)는 제2 계수 생성 시간(coefficient generation time2) Tc2 동안 에러 위치 다항식의 계수를 생성할 수 있다. 에러 위치 다항식의 계수 중 부분 계수는 이미 생성되어 있으므로, 에러 위치 다항식의 계수를 생성하는 데 소요되는 레이턴시는 감소될 수 있다. 즉, 제2 계수 생성 시간(coefficient generation time2)는 제1 계수 생성 시간(coefficient generation time1)보다 짧을 수 있다. 결과적으로, 부분 계수와 신드롬을 병렬로 생성하는 경우, 에러 정정 시 소요되는 레이턴시가 감소될 수 있다.
도 4는 신드롬 생성 회로를 설명하기 위한 도면이다.
도 4를 참조하면, 신드롬 생성 회로(200)는 제0 신드롬 생성 회로(210) 내지 제2t-1 신드롬 생성 회로(230)를 포함할 수 있다.
신드롬 생성 회로(200)는 데이터 다항식 R(x)를 수신하고, 신드롬 다항식 S(x)를 생성할 수 있다. 수신 벡터가
Figure pat00005
일 때, 데이터 다항식 R(x)는 [수학식 1]과 같이 표현되고, 신드롬 다항식 S(x)의 계수인 신드롬
Figure pat00006
는 [수학식 2]와 같이 표현되고, 신드롬 다항식 S(x)는 [수학식 3]과 같이 표현될 수 있다.
Figure pat00007
여기서 N은 수신 벡터에 포함된 비트의 개수일 수 있다.
Figure pat00008
여기서,
Figure pat00009
는 갈루아 필드(Galois field)의 원시 요소(primitive element)일 수 있다. 예를 들어,
Figure pat00010
는 갈루아 필드 GF(
Figure pat00011
)의 원시 요소(primitive element)일 수 있다. 갈루아 필드 GF(
Figure pat00012
)={0, 1,
Figure pat00013
, ??,
Figure pat00014
}일 수 있다. 즉, GF(
Figure pat00015
)는
Figure pat00016
개의 요소를 포함할 수 있다.
Figure pat00017
여기서 t는 에러 정정 장치의 에러 정정 가능한 비트의 개수일 수 있다.
제0 신드롬 생성 회로(210)는 제0 신드롬
Figure pat00018
을 생성할 수 있다. 제0 신드롬 생성 회로(220)는 제1 신드롬
Figure pat00019
을 생성할 수 있다. 제2t-1 신드롬 생성 회로(230)는 제2t-1 신드롬
Figure pat00020
을 생성할 수 있다. 신드롬 생성 회로(200)는 제0 신드롬
Figure pat00021
내지 제2t-1 신드롬
Figure pat00022
를 병렬적으로 생성할 수 있다.
제0 신드롬 생성 회로(210) 내지 제2t-1 신드롬 생성 회로(230)는 각각 AND 연산부(240), XOR 연산부(250) 및 시프트 레지스터(260)를 포함할 수 있다. AND 연산부(240)는 수신 벡터의 원소와 갈루아 필드의 요소에 대해 AND 연산을 수행하는 갈루아 승산기(Galois multiplier)일 수 있다. XOR 연산부(250)는 AND 연산된 값과 수신 벡터의 다음 원소에 대해 XOR 연산을 수행할 수 있다. 시프트 레지스터(260)는 XOR 연산부(250)로부터 수신된 값을 시프트하고, 시프트된 값을 임시적으로 저장할 수 있다.
도 5는 에러 정정 다항식 생성 회로를 설명하기 위한 도면이다.
도 5를 참조하면, 에러 정정 다항식 생성 회로(400-1)는 수신 벡터에 에러 비트가 2 이상인 경우, 제1 신드롬
Figure pat00023
및 제3 신드롬
Figure pat00024
을 사용하여 에러 위치 다항식을 생성할 수 있다. 구체적으로, 수신 벡터에 에러 비트가 2 이상인 경우, 에러 정정 다항식
Figure pat00025
는 [수학식 4]와 같이 표현될 수 있다.
Figure pat00026
에러 정정 다항식
Figure pat00027
의 상수항
Figure pat00028
는 제1 신드롬
Figure pat00029
이고, 1차항의 계수
Figure pat00030
는 제1 신드롬의 제곱인
Figure pat00031
이고, 2차항의 계수
Figure pat00032
는 제1 신드롬의 세제곱인
Figure pat00033
과 제3 신드롬
Figure pat00034
의 합일 수 있다.
에러 정정 다항식 생성 회로(400-1)는 2제곱 연산부(401)와 3제곱 연산부(402)를 포함할 수 있다. 2제곱 연산부(401)는 제1 신드롬
Figure pat00035
을 수신하고,
Figure pat00036
를 연산하도록 AND 게이트 및 XOR 게이트를 포함할 수 있다. 3제곱 연산부(402)는 제1 신드롬
Figure pat00037
을 수신하고,
Figure pat00038
를 연산하도록 AND 게이트 및 XOR 게이트를 포함할 수 있다.
에러 위치 다항식
Figure pat00039
생성 시, 신드롬의 거듭 제곱을 계산하는 데 큰 레이턴시가 소요될 수 있다. 예를 들어,
Figure pat00040
은 [수학식 5]와 같이 표현될 수 있다.
Figure pat00041
여기서,
Figure pat00042
부분은 이중 합산(double summation) 연산으로서, 이중 합산 연산을 수행하는 데 소요되는 레이턴시는, 에러 위치 다항식
Figure pat00043
을 생성하는 데 소요되는 레이턴시의 큰 부분을 차지할 수 있다.
따라서, 본 개시에 따른 에러 정정 장치는, 신드롬의 거듭 제곱을 계산하기 위한 이중 합산 연산 중 일부분을, 신드롬 계산과 병렬로 수행함으로써, 에러 위치 다항식
Figure pat00044
을 생성하는 데 소요되는 레이턴시를 감소시킬 수 있다. 본 명세서 상에서 이중 합산 연산 중 일부분은 부분 계수일 수 있다.
본 개시에 따른 에러 정정 장치는, 이중 합산 연산 중
Figure pat00045
연산을 신드롬 계산과 병렬로 수행할 수 있다. 즉, 수신 벡터
Figure pat00046
로부터 부분 계수인
Figure pat00047
을 신드롬 생성과 병렬로 계산함으로써, 신드롬의 거듭 제곱을 계산하는 데 소요되는 시간이 감소될 수 있다.
도 6은 본 개시의 예시적 실시 예에 따른 부분 계수 생성 회로를 설명하기 위한 도면이다.
도 6을 참조하면, 부분 계수 생성 회로(300-1)는 수신 벡터
Figure pat00048
를 수신하고, 부분 계수 정보(Partial_Coef_info)를 생성할 수 있다. 부분 계수 생성 회로(300-1)는 인덱스 i의 값에 따라
Figure pat00049
의 연산을 수행하는 복수의 부분 합산 회로들을 포함할 수 있다. 예를 들어, 제0 부분 합산 회로(301-1)는 i가 0일 때
Figure pat00050
의 연산을 수행하고, 제N-2 부분 합산 회로(301-2)는 i가 N-2일 때
Figure pat00051
의 연산을 수행할 수 있다. 부분 계수 생성 회로(300-1)는 복수의 부분 합산 회로들의 출력을 모두 더함으로써 부분 계수 정보(Partial_Coef_info)를 생성할 수 있다.
도 7은 본 개시의 다른 실시 예에 따른 에러 정정 장치를 설명하기 위한 도면이다.
도 7을 참조하면, 에러 정정 장치(100-2)는 신드롬 생성 회로(200), 부분 계수 생성 회로(300-2), 에러 위치 다항식 생성 회로(400-2), 에러 위치 결정 회로(500), 에러 정정 회로(600) 및 데이터 버퍼(700)를 포함할 수 있다. 에러 위치 다항식 생성 회로(400-2), 에러 위치 결정 회로(500), 에러 정정 회로(600) 및 데이터 버퍼(700)는 도 1을 통해 설명되었으므로 설명을 생략한다.
부분 계수 생성 회로(300-2)는 신드롬 생성 회로(200)로부터 신드롬 항(S_term)을 수신할 수 있다. 신드롬 항(S_term)은 신드롬
Figure pat00052
를 계산 시 필요한 합산 연산의 항(term)일 수 있다. 구체적으로, [수학식 2]를 참조하면, 신드롬 항(S_term)은
Figure pat00053
일 수 있다. 여기서, i는 0 내지 N-1이고, k는 0 내지 2t-1일 수 있다. N은 수신 벡터의 길이이고, t는 정정할 수 있는 비트의 개수일 수 있다.
신드롬 생성 회로(200)는 신드롬을 생성하는 과정에서 시프트 레지스터(260)에 신드롬 항(S_term)을 저장할 수 있다. 신드롬 생성 회로(200)는 신드롬 다항식이 생성되는 동안, 신드롬 항(S_term)을 부분 계수 생성 회로(300-2)에 전달할 수 있다. 부분 계수 생성 회로(300-2)는 신드롬 항(S_term)을 사용하여 부분 계수 정보(Partial_Coef_info)를 생성할 수 있다.
신드롬 생성 회로(200)가 생성한 신드롬 항(S_term)을 부분 계수 정보(Partial_Coef_info)를 생성하는 데 사용함으로써, 부분 계수 생성 회로(300-2)의 사이즈를 감소시킬 수 있다.
도 8은 본 개시의 다른 실시 예에 따른 부분 계수 생성 회로를 설명하기 위한 도면이다.
도 8을 참조하면, 부분 계수 생성 회로(300-2)는 신드롬 생성 회로(200)로부터 신드롬 항(S_term)을 수신하고, 부분 계수 정보(Partial_Coef_info)를 생성할 수 있다.
도 6의 부분 계수 생성 회로(300-1)와 달리, 부분 계수 생성 회로(300-2)는 인덱스 i의 값에 따라
Figure pat00054
의 연산을 수행하는 복수의 부분 합산 회로들을 포함할 수 있다. 즉, 신드롬 항들을 반복적으로 합산하는 연산을 수행하므로, 신드롬 생성 회로(200)로부터 수신된 신드롬 항을 사용하여 부분 계수 정보(Partial_Coef_info)를 생성할 수 있다. 제0 부분 합산 회로(302-1)는 i가 0일 때
Figure pat00055
의 연산을 수행하고, 제N-2 부분 합산 회로(302-2)는 i가 N-2일 때
Figure pat00056
의 연산을 수행할 수 있다. 부분 계수 생성 회로(300-2)는 복수의 부분 합산 회로들의 출력을 모두 더함으로써 부분 계수 정보(Partial_Coef_info)를 생성할 수 있다.
신드롬 생성 회로(200)가 생성한 신드롬 항(S_term)을 부분 계수 정보(Partial_Coef_info)를 생성하는 데 사용함으로써, 부분 계수 생성 회로(300-2)의 사이즈는 도 6의 부분 계수 생성 회로(300-1)의 사이즈보다 작을 수 있다.
구체적으로, 도 6의 부분 계수 생성 회로(300-1)에서, 복수의 부분 합산 회로들 중 제0 부분 합산 회로(301-1)는 XOR 연산 및 AND 연산을 각각 N번 수행하고, 제N-2 부분 합산 회로(301-2)는 XOR 연산 및 AND 연산을 각각 1번 수행한다. 따라서, 복수의 부분 합산 회로들은 총
Figure pat00057
번의 연산을 수행한다.
이와 비교하여, 도 8의 부분 계수 생성 회로(300-2)에서는, 복수의 부분 합산 회로들 중 제0 부분 합산 회로(302-1)는 XOR 연산을 N번 수행하고, 제N-2 부분 합산 회로(301-2)는 XOR 연산 1번 수행한다. 따라서, 복수의 부분 합산 회로들은 총
Figure pat00058
번의 연산을 수행한다. 따라서, 부분 계수 생성 회로(300-2)는 도 6의 부분 계수 생성 회로(300-1)보다 사이즈가 작을 수 있다.
도 9는 본 개시의 예시적 실시 예에 따른 에러 정정 다항식 생성 회로를 설명하기 위한 도면이다.
도 9를 참조하면, 에러 정정 다항식 생성 회로(400-2)는 신드롬 생성 회로(200)로부터 신드롬을 수신하고, 부분 계수 생성 회로(300-1 또는 300-2)로부터 부분 계수 정보(Partial_Coef_info)를 수신하고, 에러 정정 다항식의 계수를 생성할 수 있다.
에러 정정 다항식 생성 회로(400-2)는 2제곱 연산부(401) 및 3제곱 연산부(402-1)를 포함할 수 있다. . 2제곱 연산부(401)는 제1 신드롬
Figure pat00059
을 수신하고,
Figure pat00060
를 연산하도록 AND 게이트 및 XOR 게이트를 포함할 수 있다. 3제곱 연산부(402-2)는 부분 계수 정보(Partial_Coef_info)를 사용하여
Figure pat00061
을 연산할 수 있다.
구체적으로, [수학식 5]를 참조하면, 3제곱 연산부(402-2)는 부분 계수인
Figure pat00062
를 제외한 나머지 연산을 수행할 수 있다.
이중 합산 연산 중의 일부분인 부분 계수
Figure pat00063
가 부분 계수 생성 회로(300-1 또는 300-2)에 의해 미리 계산되므로, 에러 위치 다항식
Figure pat00064
을 생성하는 데 소요되는 레이턴시가 감소될 수 있다.
도 10은 신드롬 생성과 부분 계수 생성을 병렬로 수행하는 ECC 엔진을 포함하는 반도체 메모리 장치를 설명하는 블록도이다.
도 10을 참조하면, 반도체 메모리 장치(900)는 메모리 셀 어레이(1100) 및 ECC 엔진(1000)을 포함할 수 있다. 메모리 셀 어레이(1100)는 노멀 셀 어레이(1110) 및 ECC 셀 어레이(1120)를 포함할 수 있다. 노멀 셀 어레이(1110)는 기입 데이터(WData[0:63])가 저장되는 메모리 셀 어레이이고, ECC 셀 어레이(1120)는 패리티 비트들(ECCP[0:7])이 저장되는 메모리 셀 어레이일 수 있다.
ECC 엔진(1000)은 ECC 인코딩 회로(1010)와 ECC 디코딩 회로(1020)를 포함한다. ECC 인코딩 회로(1010)는 노멀 셀 어레이(1110)의 메모리 셀들에 기입될 기입 데이터(WData[0:63])에 대하여 패리티 비트들(ECCP[0:7])을 생성할 수 있다. 패리티 비트들(ECCP[0:7])은 ECC 셀 어레이(1120)에 저장될 수 있다.
ECC 디코딩 회로(1020)는 노멀 셀 어레이(1110)의 메모리 셀들로부터 독출되는 독출 데이터(RData[0:63])와 ECC 셀 어레이(1120)에서 독출되는 패리티 비트들(ECCP[0:7])을 이용하여 에러 비트 데이터를 정정하고, 에러 정정된 데이터(Data[0:63])를 출력할 수 있다.
ECC 디코딩 회로(1020)는 독출 데이터(RData[0:63])에 포함된 에러를 정정하기 위하여, 신드롬과 부분 계수를 병렬적으로 생성할 수 있다. 부분 계수는 에러 위치 다항식의 계수의 일부분일 수 있다. ECC 디코딩 회로(1020)는 신드롬과 부분 계수를 병렬적으로 생성함으로써, 에러 위치 다항식을 생성하는 데 소요되는 레이턴시를 감소시킬 수 있다.
도 11은 도 10의 ECC 인코딩 회로를 설명하는 도면이다.
도 11을 참조하면, ECC 인코딩 회로(1010)는 64 비트 기입 데이터(WData[0:63])와 베이시스 비트(Basis Bit, B[0:7])를 수신하고, XOR 어레이 연산을 이용하여 패리티 비트들(ECCP[0:7])을 발생하는 패리티 생성부(712)를 포함할 수 있다. 베이시스 비트(B[0:7])는 64 비트 기입 데이터(WData[0:63])에 대한 패리티 비트들(ECCP[0:7])을 발생시키기 위한 비트들로서, 예컨대, b'00000000 비트들로 구성될 수 있다. 베이시스 비트(B[0:7])는 b'00000000 비트들 대신에 다른 특정 비트들을 이용할 수 있다.
도 12는 도 10의 ECC 디코딩 회로를 설명하는 도면이다.
도 12를 참조하면, ECC 디코딩 회로(1020)는 신드롬 생성 회로(802), 부분 계수 생성 회로(803), 에러 위치 다항식 생성 회로(804), 에러 위치 결정 회로(806) 및 에러 정정 회로(808)를 포함한다. 신드롬 생성 회로(802)는 64 비트 독출 데이터(RData[0:63])와 8 비트의 패리티 비트(ECCP[0:7])를 수신하고 XOR 어레이 연산을 이용하여 신드롬 데이터(S[0:7])를 생성할 수 있다. 독출 데이터(RData[0:63])와 패리티 비트(ECCP[0:7])는 데이터 다항식 R(x)의 벡터 표현일 수 있다. 신드롬 데이터(S[0:7])는 신드롬 다항식 S(x)의 벡터 표현일 수 있다. 부분 계수 생성 회로(803)는 독출 데이터(RData[0:63])와 패리티 비트(ECCP[0:7])를 수신하고, XOR 연산 및 AND 연산을 이용하여 부분 계수 정보(Partial_Coef_info)를 생성할 수 있다. 에러 위치 다항식 생성 회로(804)는 신드롬 데이터(S[0:7]) 및 부분 계수 정보(Partial_Coef_info)를 이용하여 에러 위치 방정식의 계수를 산출할 수 있다. 에러 위치 방정식은 에러 비트의 역수를 근으로 하는 방정식이다. 에러 위치 결정 회로(806)는 산출된 오류 위치 방정식을 이용하여 비트 에러의 위치를 계산할 수 있다. 에러 정정 회로(808)는 비트 에러 위치 정보에 따라 64 비트 독출 데이터(RData[0:63]) 중 에러가 발생한 비트의 로직 값을 반전시켜 에러를 정정하고, 에러 정정된 64 비트 데이터(Data[0:63])를 출력할 수 있다. 64 비트 데이터(Data[0:63])는 정정 데이터 다항식 C(x)의 벡터 표현일 수 있다.
도 13은 본 발명의 실시예에 따른 반도체 메모리 장치를 설명하는 도면이다.
도 13을 참조하면, 반도체 메모리 장치(900)는 제어 로직(910), 리프레쉬 어드레스 발생부(915), 어드레스 버퍼(920), 뱅크 제어 로직(930), 로우 어드레스 멀티플렉서(940), 칼럼 어드레스 래치(950), 로우 디코더, 메모리 셀 어레이, 센스 앰프부, 입출력 게이팅 회로(990), 데이터 입출력 버퍼(995) 그리고 ECC 엔진(1000)을 포함할 수 있다.
메모리 셀 어레이는 제1 내지 제4 뱅크 어레이들(980a, 980b, 980c, 980d)을 포함할 수 있다. 로우 디코더는 제1 내지 제4 뱅크 어레이들(980a, 980b, 980c, 980d)에 각각 연결된 제1 내지 제4 뱅크 로우 디코더들(960a, 960b, 960c, 960d)을 포함할 수 있다. 칼럼 디코더는 제1 내지 제4 뱅크 어레이들(980a, 980b, 980c, 980d)에 각각 연결된 제1 내지 제4 뱅크 칼럼 디코더들(970a, 970b, 970c, 970d)을 포함할 수 있다. 센스 앰프부는 제1 내지 제4 뱅크 어레이들(980a, 980b, 980c, 980d)에 각각 연결된 제1 내지 제4 뱅크 센스 앰프들(985a, 985b, 985c, 985d)을 포함할 수 있다. 제1 내지 제4 뱅크 어레이들(980a, 980b, 980c, 980d), 제1 내지 제4 뱅크 로우 디코더들(960a, 960b, 960c, 960d), 제1 내지 제4 뱅크 칼럼 디코더들(970a, 970b, 970c, 970d) 및 제1 내지 제4 뱅크 센스 앰프들(985a, 985b, 985c, 985d)은 제1 내지 제4 뱅크들을 각각 구성할 수 있다. 도 9에는 4개의 뱅크들을 포함하는 반도체 메모리 장치(900)의 예가 도시되어 있으나, 실시예에 따라, 반도체 메모리 장치(900)는 임의의 수의 뱅크들을 포함할 수 있다.
또한, 실시예에 따라, 반도체 메모리 장치(900)는 DDR SDRAM (Double Data Rate Synchronous Dynamic Ramdom Access Memory), LPDDR (Low Power Double Data Rate) SDRAM, GDDR (Graphics Double Data Rate) SDRAM, RDRAM (Rambus Dynamic Ramdom Access Memory) 등과 같은 동적 랜덤 억세스 메모리 (Dynamic Ramdom Access Memory: DRAM) 이거나, 리프레쉬 동작이 필요한 임의의 휘발성 메모리 장치일 수 있다.
제어 로직(910)은 반도체 메모리 장치(900)의 동작을 제어할 수 있다. 예를 들어, 제어 로직(910)은 반도체 메모리 장치(900)가 기입 동작 또는 독출 동작을 수행하도록 제어 신호들을 생성할 수 있다. 제어 로직(910)은 메모리 콘트롤러로부터 수신되는 커맨드(CMD)를 디코딩하는 커맨드 디코더(911) 및 반도체 메모리 장치(900)의 동작 모드를 설정하기 위한 모드 레지스터(912)를 포함할 수 있다. 예를 들어, 커맨드 디코더(911)는 기입 인에이블 신호(/WE), 로우 어드레스 스트로브 신호(/RAS), 칼럼 어드레스 스트로브 신호(/CAS), 칩 선택 신호(/CS)등을 디코딩하여 커맨드(CMD)에 상응하는 제어 신호들을 생성할 수 있다.
제어 로직(910)은 동기 방식으로 반도체 메모리 장치(900)를 구동하기 위한 클럭(CLK) 및 클럭 인에이블 신호(CKE)를 더 수신할 수 있다. 제어 로직(910)은 리프레쉬 커맨드에 응답하여 리프레쉬 어드레스 발생부(915)가 오토 리프레쉬 동작을 수행하도록 제어하거나, 셀프 리프레쉬 진입 커맨드에 응답하여 리프레쉬 어드레스 발생부(915)가 셀프 리프레쉬 동작을 수행하도록 제어할 수 있다.
리프레쉬 어드레스 발생부(915)는 리프레쉬 동작이 수행될 메모리 셀 로우에 해당하는 리프레쉬 어드레스(REF_ADDR)를 생성할 수 있다. 리프레쉬 어드레스 발생부(915)는 반도체 메모리 장치(900)의 표준에서 정의된 리프레쉬 주기보다 긴 주기의 리프레쉬 레이트로 리프레쉬 어드레스(REF_ADDR)를 생성할 수 있다. 이에 따라, 반도체 메모리 장치(900)의 리프레쉬 전류 및 리프레쉬 전력을 줄일 수 있다.
어드레스 버퍼(920)는 메모리 콘트롤러로부터 뱅크 어드레스(BANK_ADDR), 로우 어드레스(ROW_ADDR) 및 칼럼 어드레스(COL_ADDR)를 포함하는 어드레스(ADDR)를 수신할 수 있다. 또한, 어드레스 버퍼(920)는 수신된 뱅크 어드레스(BANK_ADDR)를 뱅크 제어 로직(930)에 제공하고, 수신된 로우 어드레스(ROW_ADDR)를 로우 어드레스 멀티플렉서(940)로 제공하고, 수신된 칼럼 어드레스(COL_ADDR)를 칼럼 어드레스 래치(950)에 제공할 수 있다.
뱅크 제어 로직(930)은 뱅크 어드레스(BANK_ADDR)에 응답하여 뱅크 제어 신호들을 생성할 수 있다. 뱅크 제어 신호들에 응답하여, 제1 내지 제4 뱅크 로우 디코더들(960a, 960b, 960c, 960d) 중 뱅크 어드레스(BANK_ADDR)에 상응하는 뱅크 로우 디코더가 활성화되고, 제1 내지 제4 뱅크 칼럼 디코더들(970a, 970b, 970c, 970d) 중 뱅크 어드레스(BANK_ADDR)에 상응하는 뱅크 칼럼 디코더가 활성화될 수 있다.
뱅크 제어 로직(930)은 뱅크 그룹을 결정하는 뱅크 어드레스(BANK_ADDR)에 응답하여 뱅크 그룹 제어 신호들을 생성할 수 있다. 뱅크 그룹 제어 신호들에 응답하여, 제1 내지 제4 뱅크 로우 디코더들(960a, 960b, 960c, 960d) 중 뱅크 어드레스(BANK_ADDR)에 상응하는 뱅크 그룹의 로우 디코더들이 활성화되고, 제1 내지 제4 뱅크 칼럼 디코더들(970a, 970b, 970c, 970d) 중 뱅크 어드레스(BANK_ADDR)에 상응하는 뱅크 그룹의 칼럼 디코더들이 활성화될 수 있다.
로우 어드레스 멀티플렉서(940)는 어드레스 버퍼(920)로부터 로우 어드레스(ROW_ADDR)를 수신하고, 리프레쉬 어드레스 발생부(915)로부터 리프레쉬 로우 어드레스(REF_ADDR)를 수신할 수 있다. 로우 어드레스 멀티플렉서(940)는 로우 어드레스(ROW_ADDR) 또는 리프레쉬 로우 어드레스(REF_ADDR)를 선택적으로 출력할 수 있다. 로우 어드레스 멀티플렉서(940)에서 출력되는 로우 어드레스는 제1 내지 제4 뱅크 로우 디코더들(960a, 960b, 960c, 960d)에 각각 인가될 수 있다.
제1 내지 제4 뱅크 로우 디코더들(960a, 960b, 960c, 960d) 중 뱅크 제어 로직(930)에 의해 활성화된 뱅크 로우 디코더는 로우 어드레스 멀티플렉서(940)에서 출력된 로우 어드레스를 디코딩하여, 로우 어드레스에 상응하는 워드라인을 활성화할 수 있다. 예를 들어, 활성화된 뱅크 로우 디코더는 로우 어드레스에 상응하는 워드라인에 워드라인 구동 전압을 인가할 수 있다.
칼럼 어드레스 래치(950)는 어드레스 버퍼(920)로부터 칼럼 어드레스(COL_ADDR)를 수신하고, 수신된 칼럼 어드레스(COL_ADDR)를 일시적으로 저장할 수 있다. 칼럼 어드레스 래치(950)는 버스트 모드에서 수신된 칼럼 어드레스(COL_ADDR)를 점진적으로 증가시킬 수 있다. 칼럼 어드레스 래치(950)는 일시적으로 저장된 또는 점진적으로 증가된 칼럼 어드레스(COL_ADDR)를 제1 내지 제4 뱅크 칼럼 디코더들(970a, 970b, 970c, 970d)에 각각 인가할 수 있다.
제1 내지 제4 뱅크 칼럼 디코더들(970a, 970b, 970c, 970d) 중 뱅크 제어 로직(930)에 의해 활성화된 뱅크 칼럼 디코더는 입출력 게이팅 회로(990)를 통하여 뱅크 어드레스(BANK_ADDR) 및 칼럼 어드레스(COL_ADDR)에 상응하는 센스 앰프를 활성화시킬 수 있다.
입출력 게이팅 회로(990)는 입출력 데이터를 게이팅하는 회로들과 함께, 입력 데이터 마스크 로직, 제1 내지 제4 뱅크 어레이들(980a, 980b, 980c, 980d)로부터 출력된 데이터를 저장하기 위한 독출 데이터 래치들, 그리고 제1 내지 제4 뱅크 어레이들(980a, 980b, 980c, 980d)에 데이터를 기입하기 위한 기입 드라이버를 포함할 수 있다.
제1 내지 제4 뱅크 어레이들(980a, 980b, 980c, 980d) 중 하나의 뱅크 어레이에서 독출될 데이터는 센스 앰프에 의해 감지 증폭되고, 독출 데이터 래치들에 저장될 수 있다. 독출 데이터 래치에 저장된 데이터(DQ)는 데이터 입출력 버퍼(995)를 통하여 메모리 콘트롤러에 제공될 수 있다. 제1 내지 제4 뱅크 어레이들(980a, 980b, 980c, 980d) 중 하나의 뱅크 어레이에 기입될 데이터(DQ)는 메모리 콘트롤러로부터 데이터 입출력 버퍼(995)로 제공될 수 있다. 데이터 입출력 버퍼(995)에 제공된 데이터(DQ)는 기입 드라이버를 통하여 하나의 뱅크 어레이에 기입될 수 있다.
도 14는 본 발명의 실시예들에 따른 부분 계수와 신드롬을 병렬로 생성하는 반도체 메모리 장치를 모바일 시스템에 응용한 예를 나타내는 블록도이다.
도 14를 참조하면, 모바일 시스템(1400)은 버스(1402)를 통하여 서로 연결되는 어플리케이션 프로세서(1410), 통신(Connectivity)부(1420), 제1 메모리 장치(1430), 제2 메모리 장치(1440), 사용자 인터페이스(1450) 및 파워 서플라이(1460)를 포함할 수 있다. 제1 메모리 장치(1430)는 휘발성 메모리 장치로 설정되고, 제2 메모리 장치(1440)는 비휘발성 메모리 장치로 설정될 수 있다. 실시예에 따라, 모바일 시스템(1400)은 휴대폰(Mobile Phone), 스마트 폰(Smart Phone), 개인 정보 단말기(Personal Digital Assistant; PDA), 휴대형 멀티미디어 플레이어(Portable Multimedia Player; PMP), 디지털 카메라(Digital Camera), 음악재생기(Music Player), 휴대용 게임 콘솔(Portable Game Console), 네비게이션(Navigation)시스템 등과 같은 임의의 모바일 시스템일 수 있다.
어플리케이션 프로세서(1410)는 인터넷 브라우저, 게임, 동영상 등을 제공하는 어플리케이션들을 실행할 수 있다. 실시예에 따라, 어플리케이션 프로세서(1410)는 하나의 프로세서 코어(Single Core)를 포함하거나, 복수의 프로세서 코어들(Multi-Core)을 포함할 수 있다. 예를 들어, 어플리케이션 프로세서(1410)는 듀얼 코어(Dual-Core), 퀴드 코어(Quid-Core), 헥사 코어(Hexa-Core)를 포함할 수 있다. 또한, 실시예에 따라, 어플리케이션 프로세서(1410)는 내부 또는 외부에 위치한 캐시 메모리(Cache Memory)를 더 포함할 수 있다.
통신부(1420)는 외부 장치와 무선 통신 또는 유선 통신을 수행할 수 있다. 예를 들어, 통신부(1420)는 이더넷(Ethernet) 통신, 근거리 자기장 통신(Near Field Communication; NFC), 무선 식별(Radio Frequency Identification; RFID) 통신, 이동 통신(Mobile Telecommunication), 메모리 카드 통신, 범용 직렬 버스(Universal Serial Bus; USB) 통신 등을 수행할 수 있다. 예를 들어, 통신부(1420)는 베이스밴드 칩 셋(Baseband Chipset)을 포함할 수 있고, GSM, GRPS, WCDMA, HSxPA 등의 통신을 지원할 수 있다.
휘발성 메모리 장치인 제1 메모리 장치(1430)는 어플리케이션 프로세서(1410)에 의해 처리되는 데이터를 저장하거나, 동작 메모리(Working Memory)로서 작동할 수 있다. 제1 메모리 장치(1430)는 복수개의 메모리 셀들을 포함하는 메모리 셀 어레이, 메모리 셀들에서 독출된 데이터에 대하여 ECC 동작을 수행하는 ECC 엔진을 포함할 수 있다. ECC 엔진은 독출된 데이터에 대해 복수의 신드롬을 생성하는 동안, 에러 위치 다항식의 계수의 일부분에 대한 부분 계수 정보를 병렬적으로 생성하는 부분 계수 생성 회로를 포함할 수 있다. 제1 메모리 장치(1430)는 부분 계수와 신드롬을 병렬로 생성함으로써, 에러 정정 다항식을 생성하는 데 소요되는 레이턴시를 감소시킬 수 있다.
제1 메모리 장치(1430)는 모바일 시스템(1400)에 장착되어 사용되는 도중에 발생되는 에러 발생 상황을 모바일 시스템(1400)이 알 수 있도록 에러 신호를 출력할 수 있다. 이에 따라, 모바일 시스템(1400)은 에러 신호와 ECC 동작 회수를 감안하여, 모바일 시스템 동작상 제1 메모리 장치(1430)가 부적합한 것으로 판단되면 메모리 장치(1430)를 교체할 수 있다. 이에 따라, 모바일 시스템(1400)은 메모리 장치(1430)로 인한 시스템 오동작 이전에 메모리 장치(1430)를 교체할 수 있어서 안정적인 시스템 동작을 보장할 수 있다.
비휘발성 메모리 장치인 제2 메모리 장치(1440)는 모바일 시스템(1400)을 부팅하기 위한 부트 이미지를 저장할 수 있다. 예를 들어, 비휘발성 메모리 장치(1440)는 EEPROM(Electrically Erasable Programmable Read-Only Memory), 플레시 메모리(Flash Memory), PRAM(Phase Change Random Access Memory), RRAM(Resistance Random Access Memory), NFGM(Nano Floating Gate Memory), PoRAM(Polymer Random Access Memory), MRAM(Magnetic Random Access Memory), FRAM(Ferroelectric Random Access Memory) 또는 이와 유사한 메모리로 구현될 수 있다.
사용자 인터페이스(1450)는 키패드, 터치 스크린과 같은 하나 이상의 입력 장치, 및/또는 스피커, 디스플레이 장치와 하나 이상의 출력 장치를 포함할 수 있다. 파워 서플라이(1460)의 동작 전압을 공급할 수 있다. 또한, 실시예에 따라, 모바일 시스템(1400)은 카메라 이미지 프로세서(Camera Image Processor; CIP)를더 포함할 수 있고, 메모리 카드(Memory Card), 솔리드 스테이트 드라이브(Solid State Drive; SSD), 하드 디스크 드라이브(Hard Disk Drive; HDD), 씨디롬(CD-ROM) 등과 같은 저장 장치를 더 포함할 수 있다.
도 15는 본 발명의 실시예들에 따른 부분 계수와 신드롬을 병렬로 생성하는 반도체 메모리 장치를 컴퓨팅 시스템에 응용한 예를 나타내는 블록도이다.
도 15를 참조하면, 컴퓨팅 시스템(2000)은 프로세서(2010), 입출력 허브(2020), 입출력 컨트롤러 허브(2030), 메모리 장치(2040) 및 그래픽 카드(2050)를 포함한다. 실시예에 따라, 컴퓨팅 시스템(2000)은 개인용 컴퓨터(Personal Computer: PC), 서버 컴퓨터(Server Computer), 워크스테이션(Workstation), 노트북(Laptop), 휴대폰(Mobile Phone), 스마트 폰(Smart Phone), 개인 정보 단말기(Personal digital assistant: PDA), 휴대형 멀티미디어 플레이어(Portable Multimedia Player: PMP), 디지털 카메라(Digital Camera), 디지털 TV(Digital Television), 셋-탑 박스(Set-Top Box), 음악 재생기(Music Player), 휴대용 게임 콘솔(Portable game console), 네비게이션(Navigation) 시스템 등과 같은 임의의 컴퓨팅 시스템일 수 있다.
프로세서(2010)는 특정 계산들 또는 태스크들과 같은 다양한 컴퓨팅 기능들을 실행할 수 있다. 예를 들어, 프로세서(2010)는 마이크로 프로세서 또는 중앙 처리 장치(Central Processing Uint: CPU) 일 수 있다. 실시예에 따라, 프로세서(2010)는 하나의 프로세서 코어(Single Core)를 포함하거나, 복수의 프로세서 코어들(Multi-Core)을 포함할 수 있다. 예를 들어, 프로세서(2010)는 듀얼 코어(Dual-Core), 쿼드 코어(Quad-Core), 헥사 코드(Hexa-Core) 등을 포함할 수 있다. 또한, 도 20에는 하나의 프로세서(2010)를 포함하는 컴퓨팅 시스템(2000)이 도시되어 있으나, 실시예에 따라, 컴퓨팅 시스템(2000)은 복수의 프로세서들을 포함할 수 있다. 또한 실시예에 따라, 프로세서(2010)는 내부 또는 외부네 위치한 캐시 메모리(Cache Memory)를 더 포함할 수 있다.
프로세서(2010)는 메모리 장치(2040)의 동작을 제어하는 메모리 콘트롤러(2011)를 포함할 수 있다. 프로세서(2010)에 포함된 메모리 콘트롤러(2011)는 집적 메모리 콘트롤러(Intergrated Memory Controller: IMC) 라 불릴 수 있다. 실시예에 따라, 메모리 콘트롤러(2011)는 입출력 허브(2020) 내에 위치할 수 있다. 메모리 콘트롤러(2011)를 포함하는 입출력 허브(2020)는 메모리 콘트롤러 허브(memory Controller Hub: MCH)라 불릴 수 있다.
메모리 장치(2040)는 복수개의 메모리 셀들을 포함하는 메모리 셀 어레이, 메모리 셀들에 대하여 ECC 동작을 수행하고, ECC 동작으로 에러 정정된 에러 비트에 상응하는 에러 어드레스를 출력하는 ECC 엔진, 그리고 에러 어드레스와 기존의 불량 셀 정보를 비교하고, 비교 결과 일치하지 않는 경우 에러 신호를 출력하는 에러 알림부를 포함할 수 있다.
메모리 장치(2040)는 복수개의 메모리 셀들을 포함하는 메모리 셀 어레이, 메모리 셀들에 대하여 ECC 동작을 수행하는 ECC 엔진을 포함할 수 있다. ECC 엔진은 독출된 데이터에 대해 복수의 신드롬을 생성하는 동안, 에러 위치 다항식의 계수의 일부분에 대한 부분 계수 정보를 병렬적으로 생성하는 부분 계수 생성 회로를 포함할 수 있다. 메모리 장치(2040)는 부분 계수와 신드롬을 병렬로 생성함으로써, 에러 정정 다항식을 생성하는 데 소요되는 레이턴시를 감소시킬 수 있다.
메모리 장치(2040)는 컴퓨팅 시스템(2000)에 장착되어 사용되는 도중에 발생되는 에러 발생 상황을 컴퓨팅 시스템(2000)이 알 수 있도록 에러 신호를 출력할 수 있다. 이에 따라, 컴퓨팅 시스템(2000)은 에러 신호와 ECC 동작 회수를 감안하여, 시스템 동작 상 메모리 장치(2040)가 부적합한 것으로 판단되면 메모리 장치(2040)를 교체할 수 있다. 이에 따라, 컴퓨팅 시스템(2000)은 메모리 장치(2040)로 인한 시스템 오동작 이전에 메모리 장치(2040)를 교체할 수 있어서 안정적인 시스템 동작을 보장할 수 있다.
입출력 허브(2020)는 그래픽 카드(2050)와 같은 장치들과 프로세서(2010) 사이의 데이터 전송을 관리할 수 있다. 입출력 허브(2020)는 다양한 방식의 인터페이스를 통하여 프로세서(2010)에 연결될 수 있다. 예를 들어, 입출력 허브(2020)와 프로세서(2010)는, 프론트 사이드 버스(Front Side Bus; FSB), 시스템 버스(System Bus), 하이퍼트랜스포트(HyperTransport), 라이트닝 데이터 트랜스포트(Lighting Data Transport; LDT), 퀵패스 인터커넥트(QuickPath Interconnect; QPI), 공통 시스템 인터페이스, 주변 구성요소 인터페이스-익스프레스(Peripheral Component Interface-Express; CSI 등의 다양한 표준의 인터페이스로 연결할 수 있다. 도 20에는 하나의 입출력 허브(2020)를 포함하는 컴퓨팅 시스템(2000)이 도시되어 있으나, 실시예에 따라, 컴퓨팅 시스템(2000)은 복수의 입출력 허브들을 포함할 수 있다.
입출력 허브(2020)는 장치들과의 다양한 인터페이스들을 제공할 수 있다. 예를 들어, 입출력 허브(2020)는 가속 그래픽 포트(Accelerated Graphics Port;AGP) 인터페이스, 주변 구성요소 인터페이스-익스프레스(Peripheral Component Interface-Express; PCIe), 통신 스트리밍 구조(Communications Streaming Architecture; CSA) 인터페이스 등을 제공할 수 있다.
그래픽 카드(2050)는 AGP 또는 PCIe를 통하여 입출력 허브(2020)와 연결될 수 있다. 그래픽 카드(2050)는 영상을 표시하기 위한 디스플레이 장치(미도시)를 제어할 수 있다. 그래픽 카드(2050)는 이미지 데이터 처리를 위한 내부 프로세서 및 내부 반도체 메모리 장치를 포함할 수 있다. 실시예에 따라, 입출력 허브(2020)는, 입출력 허브(2020)의 외부에 위치한 그래픽 카드(2050)와 함께, 또는 그래픽 카드(2050) 대신에 입출력 허브(2020)의 내부에 그래픽 장치를 포함할 수 있다. 입출력 허브(2020)에 포함된 그래픽 장치는 집적 그래픽(Integrated Graphics)이라 불릴 수 있다. 또한, 메모리 컨트롤러 및 그래픽 장치를 포함하는 입출력 허브(2020)는 그래픽 및 메모리 컨트롤러 허브(Graphics and Memory Controller Hub; GMCH)라 불릴 수 있다.
입출력 컨트롤러 허브(2030)는 다양한 시스템 인터페이스들이 효율적으로 동작하도록 데이터 버퍼링 및 인터페이스 중재를 수행할 수 있다. 입출력 컨트롤러 허브(2030)는 내부 버스를 통하여 입출력 허브(2020)와 연결될 수 있다. 예를 들어, 입출력 허브(2020)와 입출력 컨트롤러 허브(2030)는 다이렉트 미디어 인터페이스(Direct Media Interface; DMI), 허브 인터페이스, 엔터프라이즈 사우스브릿지 인터페이스(Enterprise Southbridge interface; ESI), PCIe 등을 통하여 연결될 수 있다.
입출력 컨트롤러 허브(2030)는 주변 장치들과의 다양한 인터페이스들을 제공할 수 있다. 예를 들어, 입출력 컨트롤러 허브(2030)는 범용 직렬 버스(Universal Serial Bus; USB)포트, 직렬 ATA(Serial Advanced Technology Attachment; SATA) 포트, 범용 입출력(General Purpose Input/output; GPIO), 로우 핀 카운트(Low Pin Count; LPC) 버스, 직렬 주변 인터페이스(Serial Peripheral Interface; SPI), PCI, PCIe 등을 제공할 수 있다.
실시예에 따라, 프로세서(2010), 입출력 허브(2020) 또는 입출력 컨트롤러 허브(2030) 중 2 이상의 구성 요소들이 하나의 칩셋으로 구현될 수 있다.
이상에서와 같이 도면과 명세서에서 예시적인 실시 예들이 개시되었다. 본 명세서에서 특정한 용어를 사용하여 실시 예들을 설명되었으나, 이는 단지 본 개시의 기술적 사상을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 개시의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.

Claims (20)

  1. 에러 정정 장치에 있어서,
    데이터를 수신하고, 상기 데이터에 대하여 복수의 신드롬들을 생성하는 신드롬 생성 회로;
    상기 복수의 신드롬들이 생성되는 동안, 상기 데이터를 사용하여 에러 위치 다항식(error location polynomial)의 계수의 일부분에 관한 부분 계수 정보(partial coefficient information)를 생성하는 부분 계수 생성 회로;
    상기 복수의 신드롬들 및 상기 부분 계수 정보를 기초로 하여 상기 에러 위치 다항식의 계수를 결정하고, 상기 에러 위치 다항식을 사용하여 상기 데이터에 포함된 에러의 위치를 획득하는 에러 위치 결정 회로; 및
    상기 에러의 위치에 따라 상기 데이터에 포함된 상기 에러를 정정하는 에러 정정 회로;를 포함하는 에러 정정 장치.
  2. 제1항에 있어서, 상기 부분 계수 생성 회로는,
    상기 복수의 신드롬들이 생성되는 동안, 상기 에러 위치 다항식의 계수 중 비선형 연산을 포함하는 계수에 대한 정보를 상기 부분 계수 정보로서 생성하는 것을 특징으로 하는 에러 정정 장치.
  3. 제2항에 있어서, 상기 부분 계수 생성 회로는,
    상기 복수의 신드롬들이 생성되는 동안, 상기 에러 위치 다항식의 계수 중 타겟 신드롬의 거듭 제곱 값을 포함하는 계수에 대한 정보를 상기 부분 계수 정보로서 생성하는 것을 특징으로 하는 에러 정정 장치.
  4. 제3항에 있어서, 상기 부분 계수 생성 회로는,
    상기 타겟 신드롬의 거듭 제곱 값을 산출하기 위한 이중 합산(double summation) 연산 중 제1 합산 연산을, 상기 복수의 신드롬들이 생성되는 동안 수행함으로써 상기 부분 계수를 생성하는 것을 특징으로 하는 에러 정정 장치.
  5. 제4항에 있어서, 상기 에러 위치 결정 회로는,
    상기 부분 계수를 사용하여 상기 이중 합산 연산 중 제2 합산 연산을 수행함으로써 상기 타겟 신드롬의 거듭 제곱 값을 산출하는 것을 특징으로 하는 에러 정정 장치.
  6. 제1항에 있어서, 상기 부분 계수 생성 회로는,
    상기 복수의 신드롬들이 생성되는 동안, 타겟 신드롬에 포함되는 복수의 신드롬 항들 중 이미 생성된 신드롬 항을 사용하여 부분 계수 정보를 생성하는 것을 특징으로 하는 에러 정정 장치.
  7. 제6항에 있어서, 상기 신드롬 생성 회로는,
    상기 복수의 신드롬들 중 상기 타겟 신드롬에 포함되는 복수의 신드롬 항들 중 생성된 신드롬 항을 상기 부분 계수 생성 회로에 전달하는 에러 정정 장치.
  8. 메모리 셀 어레이로부터 데이터를 리드하는 단계;
    상기 데이터에 대하여 복수의 신드롬들을 생성하는 단계;
    상기 복수의 신드롬들이 생성되는 동안, 상기 데이터를 사용하여 에러 위치 다항식의 계수의 일부분에 관한 부분 계수 정보를 생성하는 단계;
    상기 복수의 신드롬들 및 상기 부분 계수 정보를 기초로 하여 상기 에러 위치 다항식의 계수를 결정하고, 상기 에러 위치 다항식을 사용하여 상기 데이터에 포함된 에러의 위치를 획득하는 단계; 및
    상기 에러의 위치를 기초로 상기 데이터에 포함된 상기 에러를 정정하는 단계;를 포함하는 에러 정정 방법.
  9. 제8항에 있어서, 상기 복수의 신드롬들이 생성되는 동안, 상기 데이터를 사용하여 에러 위치 다항식의 계수의 일부분에 관한 부분 계수 정보를 생성하는 단계는,
    상기 에러 위치 다항식의 계수 중 비선형 연산을 포함하는 계수에 대한 정보를 상기 부분 계수 정보로서 생성하는 것을 특징으로 하는 에러 정정 방법.
  10. 제9항에 있어서, 상기 부분 계수 정보는,
    상기 에러 위치 다항식의 계수 중 타겟 신드롬의 거듭 제곱 값을 포함하는 계수에 대한 정보를 상기 부분 계수 정보로서 생성하는 것을 특징으로 하는 에러 정정 방법.
  11. 제10항에 있어서, 상기 부분 계수 정보는,
    상기 타겟 신드롬의 거듭 제곱 값을 산출하기 위한 이중 합산(double summation) 연산 중 제1 합산 연산을 통하여 생성되는 것을 특징으로 하는 에러 정정 방법.
  12. 제11항에 있어서, 상기 복수의 신드롬들 및 상기 부분 계수 정보를 기초로 하여 상기 에러 위치 다항식의 계수를 결정하고, 상기 에러 위치 다항식을 사용하여 상기 데이터에 포함된 에러의 위치를 획득하는 단계는,
    상기 부분 계수를 사용하여 상기 이중 합산 연산 중 제2 합산 연산을 수행함으로써 상기 타겟 신드롬의 거듭 제곱 값을 산출하는 단계;를 포함하는 것을 특징으로 하는 에러 정정 방법.
  13. 제8항에 있어서, 상기 복수의 신드롬들이 생성되는 동안, 상기 데이터를 사용하여 에러 위치 다항식의 계수의 일부분에 관한 부분 계수 정보를 생성하는 단계는,
    상기 복수의 신드롬들이 생성되는 동안, 타겟 신드롬에 포함되는 복수의 신드롬 항들 중 이미 생성된 신드롬 항을 사용하여 부분 계수 정보를 생성하는 것을 특징으로 하는 에러 정정 방법.
  14. 휘발성 메모리 장치에 있어서,
    복수의 메모리 셀들을 포함하는 메모리 셀 어레이; 및
    상기 메모리 셀 어레이로부터 리드된 데이터를 정정하는 에러 정정 엔진;을 포함하고,
    상기 에러 정정 엔진은,
    상기 리드된 데이터를 사용하여 복수의 신드롬들을 생성하는 신드롬 생성 회로;
    상기 복수의 신드롬들이 생성되는 동안, 에러 위치 다항식의 계수의 일부분에 관한 부분 계수 정보를 생성하는 부분 계수 생성 회로;
    상기 복수의 신드롬들 및 상기 부분 계수 정보를 기초로 하여 상기 에러 위치 다항식의 계수를 결정하고, 상기 에러 위치 다항식을 사용하여 상기 데이터에 포함된 에러의 위치를 획득하는 에러 위치 결정 회로; 및
    상기 에러의 위치를 기초로 상기 데이터에 포함된 상기 에러를 정정하는 에러 정정 회로;를 포함하는 휘발성 메모리 장치.
  15. 제14항에 있어서, 상기 부분 계수 생성 회로는,
    상기 복수의 신드롬들이 생성되는 동안, 상기 에러 위치 다항식의 계수 중 비선형 연산을 포함하는 계수에 대한 정보를 상기 부분 계수 정보로서 생성하는 것을 특징으로 하는 휘발성 메모리 장치.
  16. 제15항에 있어서, 상기 부분 계수 생성 회로는,
    상기 복수의 신드롬들이 생성되는 동안, 상기 에러 위치 다항식의 계수 중 타겟 신드롬의 거듭 제곱 값을 포함하는 계수에 대한 정보를 상기 부분 계수 정보로서 생성하는 것을 특징으로 하는 휘발성 메모리 장치.
  17. 제16항에 있어서, 상기 부분 계수 생성 회로는,
    상기 타겟 신드롬의 거듭 제곱 값을 산출하기 위한 이중 합산(double summation) 연산 중 제1 합산 연산을, 상기 복수의 신드롬들이 생성되는 동안 수행함으로써 상기 부분 계수를 생성하는 것을 특징으로 하는 휘발성 메모리 장치.
  18. 제17항에 있어서, 상기 에러 위치 결정 회로는,
    상기 부분 계수를 사용하여 상기 이중 합산 연산 중 제2 합산 연산을 수행함으로써 상기 타겟 신드롬의 거듭 제곱 값을 산출하는 것을 특징으로 하는 휘발성 메모리 장치.
  19. 제14항에 있어서, 상기 부분 계수 생성 회로는,
    상기 복수의 신드롬들이 생성되는 동안, 타겟 신드롬에 포함된 복수의 신드롬 항들 중 이미 생성된 신드롬 항을 사용하여 부분 계수 정보를 생성하는 것을 특징으로 하는 휘발성 메모리 장치.
  20. 제19항에 있어서, 상기 신드롬 생성 회로는,
    상기 복수의 신드롬들 중 상기 타겟 신드롬에 포함되는 복수의 신드롬 항들 중 생성된 신드롬 항을 상기 부분 계수 생성 회로에 전달하는 휘발성 메모리 장치.
KR1020200067163A 2020-06-03 2020-06-03 신드롬과 부분 계수 정보를 병렬적으로 생성하는 에러 정정 장치 및 방법 KR20210150149A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020200067163A KR20210150149A (ko) 2020-06-03 2020-06-03 신드롬과 부분 계수 정보를 병렬적으로 생성하는 에러 정정 장치 및 방법
US17/199,803 US11689224B2 (en) 2020-06-03 2021-03-12 Error correction device and method for generating syndromes and partial coefficient information in a parallel
CN202110614942.9A CN113764029A (zh) 2020-06-03 2021-06-02 用于并行生成校正子和部分系数信息的设备和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200067163A KR20210150149A (ko) 2020-06-03 2020-06-03 신드롬과 부분 계수 정보를 병렬적으로 생성하는 에러 정정 장치 및 방법

Publications (1)

Publication Number Publication Date
KR20210150149A true KR20210150149A (ko) 2021-12-10

Family

ID=78787383

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200067163A KR20210150149A (ko) 2020-06-03 2020-06-03 신드롬과 부분 계수 정보를 병렬적으로 생성하는 에러 정정 장치 및 방법

Country Status (3)

Country Link
US (1) US11689224B2 (ko)
KR (1) KR20210150149A (ko)
CN (1) CN113764029A (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11838033B1 (en) 2022-09-20 2023-12-05 Western Digital Technologies, Inc. Partial speed changes to improve in-order transfer

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3051364A (en) 1961-06-08 1962-08-28 Du Pont Fluid yarn-transfer device
US5483236A (en) 1993-12-20 1996-01-09 At&T Corp. Method and apparatus for a reduced iteration decoder
US5699368A (en) 1994-03-25 1997-12-16 Mitsubishi Denki Kabushiki Kaisha Error-correcting encoder, error-correcting decoder, and data transmitting system with error-correcting codes
US6279137B1 (en) * 1998-12-08 2001-08-21 Lsi Logic Corporation System and method for a storage-efficient parallel Chien Search
TW441195B (en) 1999-07-16 2001-06-16 Via Tech Inc Signal decoding method
US6643819B1 (en) * 2000-01-26 2003-11-04 Maxtor Corporation Hybrid root-finding technique
US20030140302A1 (en) * 2002-01-23 2003-07-24 Litwin, Louis Robert Chien search cell for an error-correcting decoder
US7237183B2 (en) 2003-03-04 2007-06-26 Broadcom Corporation Parallel decoding of a BCH encoded signal
US7444582B1 (en) * 2004-10-27 2008-10-28 Marvell International Ltd. Architecture and control of reed-solomon error-correction decoding
JP4313391B2 (ja) * 2006-12-13 2009-08-12 株式会社日立コミュニケーションテクノロジー 光集線装置および光加入者装置
KR20080112583A (ko) 2007-06-21 2008-12-26 주식회사 코아로직 리드 솔로몬 디코더 및 그 방법
US7827439B2 (en) * 2007-09-28 2010-11-02 Symantec Corporation System and method of redundantly storing and retrieving data with cooperating storage devices
US8201058B2 (en) * 2008-07-09 2012-06-12 Cadence Design Systems, Inc. Method and apparatus for parallel ECC error location
US8332731B1 (en) * 2009-11-05 2012-12-11 Micron Technology, Inc. Error-correcting code and process for fast read-error correction
US8433985B2 (en) * 2010-03-29 2013-04-30 Intel Corporation Error correction mechanisms for flash memories
US8392807B2 (en) * 2010-07-23 2013-03-05 Sandisk Technologies Inc. System and method of distributive ECC processing
US9317352B2 (en) * 2012-09-12 2016-04-19 Samsung Electronics Co., Ltd. Galois field arithmetic operation circuit and memory device
JP2014082574A (ja) * 2012-10-15 2014-05-08 Samsung Electronics Co Ltd 誤り検出訂正回路、及びメモリ装置
US8977938B2 (en) * 2013-02-08 2015-03-10 Altera Corporation Parallel decomposition of Reed Solomon umbrella codes
US9344117B2 (en) 2013-03-15 2016-05-17 Mellanox Technologies, Ltd. Methods and systems for error-correction decoding

Also Published As

Publication number Publication date
US11689224B2 (en) 2023-06-27
US20210384919A1 (en) 2021-12-09
CN113764029A (zh) 2021-12-07

Similar Documents

Publication Publication Date Title
KR102193682B1 (ko) 선택적 ecc 기능을 갖는 반도체 메모리 장치
US9727412B2 (en) Memory device having error notification function
US10062427B2 (en) Semiconductor memory device for controlling having different refresh operation periods for different sets of memory cells
US9483348B2 (en) Memory module, memory system having the same, and methods of reading therefrom and writing thereto
US9859022B2 (en) Memory device having a shareable error correction code cell array
US9164834B2 (en) Semiconductor memory devices, memory systems including the same and method of writing data in the same
US9772803B2 (en) Semiconductor memory device and memory system
US10521293B2 (en) Memory device for performing parallel read-modify-write operation
US10803971B2 (en) Device for supporting error correction code and test method thereof
US20150089310A1 (en) Use of error correction pointers to handle errors in memory
JP5132687B2 (ja) メモリにおけるキャッシュを利用した誤り検出及び訂正方法及び装置
US20170148529A1 (en) Memory device, memory system and method of verifying repair result of memory device
US9460816B2 (en) Semiconductor memory devices and memory systems including the same
US9042194B2 (en) Refresh method, refresh address generator, volatile memory device including the same
US10169042B2 (en) Memory device that performs internal copy operation
US8990667B2 (en) Error check and correction circuit, method, and memory device
KR20130027138A (ko) 에러 정정 방법 및 이를 이용하는 메모리 장치
KR20170055786A (ko) 데이터 기입 및 독출 레이턴시를 제어하는 레이턴시 제어 회로를 갖는 메모리 장치
KR20170112630A (ko) 반도체장치 및 반도체시스템
TW201921245A (zh) 用於支持錯誤更正碼的裝置及其測試方法
US11689224B2 (en) Error correction device and method for generating syndromes and partial coefficient information in a parallel
US10025652B2 (en) Error location pointers for non volatile memory
US20230137339A1 (en) Memory device, memory module including the memory device, and operating method of memory controller