KR19980077955A - 리드 솔로몬 오류 수정장치 - Google Patents

리드 솔로몬 오류 수정장치 Download PDF

Info

Publication number
KR19980077955A
KR19980077955A KR1019970015303A KR19970015303A KR19980077955A KR 19980077955 A KR19980077955 A KR 19980077955A KR 1019970015303 A KR1019970015303 A KR 1019970015303A KR 19970015303 A KR19970015303 A KR 19970015303A KR 19980077955 A KR19980077955 A KR 19980077955A
Authority
KR
South Korea
Prior art keywords
error
error correction
information data
reed
syndrome
Prior art date
Application number
KR1019970015303A
Other languages
English (en)
Other versions
KR100246342B1 (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 문정환
Priority to KR1019970015303A priority Critical patent/KR100246342B1/ko
Publication of KR19980077955A publication Critical patent/KR19980077955A/ko
Application granted granted Critical
Publication of KR100246342B1 publication Critical patent/KR100246342B1/ko

Links

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

Landscapes

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

Abstract

본 발명은 리드 솔로몬 오류 수정장치에 관한 것으로 종래의 리드 솔로몬 오류 수정장치는 각 요소의 출력신호인 다항식을 계산하는 수단으로 하드웨어를 사용함으로써, 집적도를 열화시키는 문제점과 아울러 플래시 메모리에 저장된 데이터가 오류가 없는 경우에도 플래시 메모리의 데이터를 오류발생부로 입력시켜 계산을 통해 오류없는 정보 데이터를 수정하게 됨으로써, 그 사용효율이 감소하는 문제점이 있었다.
이와 같은 문제점을 감안한 본 발명은 상기 리드 솔로몬 오류수정 디코더에 씨피유를 구비하고, 소프트웨어적으로 상기 오류 있는 정보데이터 만을 수정하여 정보데이터에 오류가 없는 경우 오류수정의 과정을 거치지 않고 직접 출력하여 사용효율을 증가시키는 효과와, 오류수정을 씨피유에서 소프트웨어적으로 처리함으로써 오류 수정 장치의 면적을 감소시키는 효과가 있다.

Description

리드 솔로몬 오류 수정 장치
본 발명은 리드 솔로몬 오류 수정 장치에 관한 것으로, 특히 플래시 메모리의 리드동작시 소프트웨어를 사용하여 상기 플래시 메모리에 저장된 데이터에 오류가 있는 경우 수정하여 출력하고, 오류가 없는 경우에는 직접 상기 플래시 메모리에 저장된 데이터를 출력함으로써 그 면적을 감소시키는데 적당하도록 한 리드 솔로몬 오류 수정 장치에 관한 것이다.
일반적으로, 플래시 메모리의 오류를 검출하는 방법으로는 유한 필드(FINITE FIELD)를 사용하는 리니어 사이클릭 코드(LINEAR CYCLIC CORD)의 한 종류이며, 탁월한 오류검출능력을 갖는 리드 솔로몬 코드(REED SOLOMON CORD)를 주로 사용하였으며, 이와 같은 리드 솔로몬 오류 수정 장치를 첨부한 도면을 참조하여 상세히 설명하면 다음과 같다.
도1은 일반적인 플래시메모리 장치의 블록도로서, 이에 도시한 바와 같이 쓰기동작시 정보데이터를 출력하고 읽기동작시 수집된 정보데이터를 입력받는 호스트 프로세서(100)와, 쓰기동작시 상기 호스트 프로세서(100)의 정보데이터를 입력받아 패리티 체크 수를 출력하고, 읽기동작시 저장된 정보를 검출하여 상기 호스트 프로세서(100)로 출력하는 오류검출부(200)와, 쓰기 동작시 상기 오류검출부(200)의 출력인 패리티 체크수와 상기 호스트 프로세서(100)의 정보데이터를 입력받아 저장하고, 읽기동작시 그 저장된 정보데이터 및 패리티 체크 수를 출력하는 플래시 메모리(300)로 구성되며, 도2는 종래의 상기 오류검출부(200)의 블록도로서, 이에 도시한 바와 같이 패리티 체크 수를 생성하는 엔코더(210)와, 플래시 메모리에 저장된 정보 데이터 및 패리티 체크 수를 인가 받아 오류를 수정하는 디코더(220)를 포함하며, 도3은 상기 엔코더(210)의 회로도로서, 이에 도시한 바와 같이 다수개의 곱셈기(211),다수개의 덧셈기(212)와, 패리티 비트를 저장하는 다수의 저장수단(213)을 포함하여 구성되고, 도4는 종래 디코더(220)의 블록도로서, 이에 도시한 바와 같이 읽기동작시 상기 플래시 메모리(300)에서 출력되는 정보데이터 및 패리티 비트 수를 인가 받아 신드롬(SYNDROME)을 발생하는 신드롬발생부(221)와, 상기 신드롬발생부(221)의 출력신호를 인가 받아 오류위치와 오류마진을 계산하는 곱셈 및 분주부(222)와, 상기 곱셈 및 분주부(222)의 출력신호인 오류위치 다항식을 입력받아 오류가 발생한 위치를 검색하는 검색부(223)와, 상기 곱셈 및 분주부(222)의 출력신호인 오류마진 다항식을 인가 받아 상기 오류 값을 계산하는 오류계산부(224)와, 상기 검색부(223)와 오류계산부(224)의 출력신호를 인가 받아 오류신호를 발생시키는 오류발생기(225)와, 선입선출 메모리(226)를 통해 상기 플래시 메모리(300)의 정보데이터 및 패리티 비트 수를 인가 받고, 그 정보데이터 및 패리티 비트 수와 상기 오류발생기(225)의 출력신호를 비교하여 상기 플래시 메모리(300)의 정보데이터를 수정하여 수정정보 데이터(CID)를 출력하는 오류검출부(227)로 구성된다.
이하, 상기와 같이 구성된 플래시 메모리장치의 오류를 검사하는 리드 솔로몬 오류 수정 장치의 오류검사방법을 설명한다.
먼저, 쓰기 동작시에는 호스트 프로세서(100)의 정보데이터가 오류검출부(200)에 구비된 엔코더(210)로 입력된다.
상기 호스트 프로세서(100)의 정보데이터를 입력받은 엔코더(210)는 그 내부에 구비된 다수의 곱셈기(211), 다수의 가산기(212) 및 저장수단(213)을 통해 패리티 체크 수를 발생하여 플래시 메모리(300)로 출력하고, 상기 플래시 메모리(300)는 상기 호스트 프로세서(100)의 정보데이터 및 패리티 체크 수를 저장하게 된다.
그 다음, 읽기동작시 상기 플래시 메모리(300)에 저장된 상기 호스트 프로세서(100)의 정보데이터와 그 정보데이터에 해당하는 패리티 체크 수를 입력받은 디코더(220)는 오류를 수정하여 호스트 프로세서(100)로 출력하게 된다.
이때, 상기 디코더(220)에 구비된 신드롬 발생부(221)는 원래의 부호어에 의존하지 않고 더해진 오류에 의해서만 결정되는 신드롬(S(x))을 계산하여 출력시킨다. 다시 말해 상기 플래시 메모리(300)에 저장된 정보데이터와 패리티 비트를 포함하며, 다항식으로 표현되는 출력신호(R(X))를 인가 받아 아래의 식1에서와 같이 계산하여 신드롬(S(x))의 값을 구하여 출력한다.
상기 식1에서 s는 오프셋값. N은 블록길이, t는 상기 블록길이와 정보데이터의 길이의 차를 2로 나눈 값이다.
상기 신드롬(S(x))을 입력받은 곱셈 및 분주부(222)는 소정의 계산을 통해 오류가 발생한 위치와 그 발생한 오류의 값을 구해 다항식의 형태로 출력하고, 상기 오류가 발생한 위치의 다항식을 인가 받은 검색부(223)는 상기 입력된 오류가 발생한 위치 다항식이 0이 되도록 하는 값을 계산하여 그 값을 오류가 발생한 위치로 선정하여 출력하고, 상기 곱셈 및 분주부(222)의 출력인 오류 값의 다항식을 입력받은 오류계산부(224)는 상기 오류의 값을 계산하여 출력한다.
그리고, 상기 오류계산부(224) 및 검색부(223)에서 계산된 오류가 발생한 위치와 그 위치에서 발생한 오류 값을 입력받은 오류발생부(225)는 오류신호를 출력하고, 오류검출부(227)는 플래시 메모리(300)의 출력신호인 정보데이터와 패리티 체크 수를 선입선출 메모리(226)를 통해 인가 받아 상기 오류발생부(225)의 출력신호와 비교하여 상기 플래시메모리(300)에 저장된 데이터를 수정하여 출력한다.
그러나, 상기한 바와 같이 종래 플래시 메모리장치의 오류검출회로는 각 요소의 출력신호인 다항식을 계산하는 수단으로 하드웨어를 사용함으로써, 집적도를 열화시키는 문제점과 아울러 플래시 메모리에 저장된 데이터가 오류가 없는 경우에도 플래시 메모리의 데이터를 오류발생부로 입력시켜 계산을 통해 오류없는 정보 데이터를 수정하게 됨으로써, 그 사용효율이 감소하는 문제점이 있었다.
이와 같은 문제점을 감안한 본 발명은 플래시 메모리장치의 출력데이터에 이상이 없는 경우에는 복잡한 계산과정을 수행하지 않고, 직접 호스트 프로세서로 출력하도록 하며, 구성되는 하드웨어의 수를 감소시킨 플래시 메모리장치의 오류검출회로의 제공에 그 목적이 있다.
도1은 일반적인 플래시 메모리장치의 블록도.
도2는 도1에 있어서, 리드 솔로몬 오류 수정 장치의 블록도.
도3은 도2에 있어서, 엔코더의 회로도.
도4는 도2에 있어서, 디코더의 회로도.
도5는 본 발명에 의한 플래시 메모리장치의 블록도.
도6은 도5에 있어서, 디코더의 회로도.
* 도면의 주요 부분에 대한 부호의 설명
221 : 신드롬 발생부 CPU : 씨피유
228 : 저장부
상기와 같은 목적은 오류검출에 필요한 다항식을 계산하는 하드웨어를 소프트웨어로 대체하여 면적을 감소시키고, 플래시 메모리의 데이터에 오류가 없는 경우에는 다항식을 계산하는 과정 없이 직접 호스트 프로세서로 출력하도록 함으로써 달성되는 것으로, 이와 같은 본 발명에 의한 리드 솔로몬 오류 수정 장치를 첨부한 도면을 참조하여 상세히 설명하면 다음과 같다.
도5는 본 발명에 의한 플래시 메모리 장치의 블록도로서, 이에 도시한 바와 같이 플래시 메모리(300)의 출력을 직접 또는 수정하여 호스트 프로세서(100)로 출력하는 리드 솔로몬 오류 수정장치(200)로 구성되며, 도6은 본 발명에 의한 리드 솔로몬 오류 수정 장치에 있어서, 디코더의 블록도로서, 이에 도시한 바와 같이 플래시 메모리(300)의 출력데이터(R(x))를 인가 받아 신드롬(S(x))을 발생시키는 신드롬 발생부(221)와, 상기 신드롬 발생부(221)의 신드롬(S(x))이 '0'인 경우, 상기 출력데이터(R(x))를 출력하는 저장부(228)와, 상기 신드롬 발생부(221)의 신드롬(S(x))이 '0'이 아닌 경우 상기 신드롬(S(x))을 입력받아 소정의 계산을 통해 수정된 정보 데이터(CID)를 출력하는 씨피유(CPU)로 구성되며, 엔코더(210)는 도3과 동일하게 구성한다.
이하, 상기와 같이 구성된 본 발명에 의한 리드 솔로몬 오류 수정 장치의 동작을 플래시 메모리에 저장된 정보 데이터와 패리티 비트를 읽는 읽기 동작에 한정하여 설명한다.
먼저, 플래시 메모리(300)에 저장된 정보 데이터와 패리티 비트를 포함하는 다항식형태의 출력신호(R(X))가 저장부(228)에 저장되고, 신드롬 발생부(221)에 입력된다. 이때 신드롬 발생부(221)에 입력되면, 상기 신드롬 발생부(221)는 신드롬(S(X))을 출력한다.
그 다음, 상기 신드롬(S(x))이 '0'인 경우, 상기 플래시 메모리(300)의 출력신호(R(x))를 저장하는 저장부는 그 저장된 내용을 호스트 프로세서(100)로 출력한다.
즉, 상기 출력신호(R(x))에 오류가 없는 것으로 판단하여 직접 출력한다.
또한, 상기 신드롬(S(x))이 '0'이 아닌 경우, 상기 그 값이 '0'이 아닌 신드롬(S(x))을 입력받은 상기 씨피유(CPU)는 소정의 계산을 수행하여 오류가 발생한 위치를 나타내는 오류위치다항식(σ(X))과 오류의 크기를 구함으로써 오류를 수정하여 호스트 프로세서(100)로 출력한다.
다시 말해서 상기 씨피유(CPU)는 뉴톤의 명제를 적용하여 상기 '0'이 아닌 신드롬(S(x))과의 합이 '0'이 되는 오류위치다항식(σ(X))을 구한다.
즉, S11=0 ---식①
S21S1+2σ2=0 ---식②
S31S22S1+3σ3=0 ---식③
(생략)
SV1SV-1+...+σV-1S1+VσV=0 ---식④
SV+11SV+...+σV-1S2VS1=0 ---식⑤
상기 식① 내지 식⑤를 만족하는 오류위치다항식(σ(X))을 구한다. 다시 말해 아래의 식⑥으로 표시되는 오류위치다항식(σ(X))을 구한다.
σ(X)=(1+ 1X)(1+ 2X)(1+ 3X)....(1+ VX)=1+σ1X12X23X3+....+σVXV---식⑥
상기의 식⑥이 N번째 단계의 오류위치다항식이라고 하면 상기 식⑥의 계수는 상기 식① 내지 식⑤에 나타낸 뉴톤의 명제를 만족시킨다. 또한, 상기 N번째 단계에서의 불일치를 dN(X)=SN+11 (N)SN2 (N)SN-1+....+σN (N)S1로 정의 한다.
만약 상기 불일치가 0이면 σ(N)(X)의 계수는 N+1번째의 뉴톤 명제를 만족한다.
즉, σ(N+1)(X)=σ(N)(X)로 나타낼 수 있으며, 만약 상기 불일치가 0이 아니면 보정을 해야 한다.
즉 수정조건이 더해져야 하며 이는 아래의 식⑦로 표시될 수 있다.
σ(N+1)(X)=σ(N)(X)+dNdP 1X(N-P)σ(P)(X) ----식⑦
또한, 상기 σ(X)가 0이 되는 것을 만족시키는 근을 구하게 되며, 이들 근의 역수는 오류위치번호 1, 2, 3,...., 2t가 된다.
그 다음, 상기 신드롬 발생부(221)의 출력신호와 상기 오류위치다항식으로 표현되는 새로운 다항식을 아래의 식⑧과 같이 정의한다.
Z(X)=1+(S11)X+(S21S12)X+....+(SN1SN-12SN-2+....+σN)XN---식⑧
이는 아래의 식⑨와 같은 베레캠프 등식(BERLEKAMP EQUATION)으로 표현되며 여기서 i은 오류가 발생한 위치에서의 오류값이다.
상기의 계산을 통해 오류의 위치와 오류의 크기를 산출한 씨피유(CPU)는 상기 플래시 메모리(300)의 출력신호(R(X))에서 상기 계산을 통해 구한 보정값(e(X))을 감하여 수정된 정보데이터(CID)로 호스트 프로세서(100)로 출력한다.
이러한 동작과정을 다시 정리하면, 정보데이터와 패리티비트를 입력받아 신드롬을 발생하는 단계와, 상기 신드롬의 값이 0인 경우 오류가 없는 것으로 판단하여 상기 정보데이터와 패리티비트를 호스트 프로세서(100)로 출력하고, 상기 신드롬의 값이 0이 아닌 경우 오류가 있는 것으로 판단하여 소정의 계산을 통해 오류를 수정하여 수정된 정보데이터를 호스트 프로세서(100)로 출력하는 단계로 이루어진다.
상기한 바와 같이 본 발명에 의한 리드 솔로몬 오류 수정 장치는 정보데이터에 오류가 없는 경우 오류수정의 과정을 거치지 않고 직접 출력하여 사용효율을 증가시키는 효과와, 오류수정을 씨피유에서 소프트웨어적으로 처리함으로써 오류 수정 장치의 면적을 감소시키는 효과가 있다.

Claims (1)

  1. 리드 솔로몬 오류 수정코드 엔코더와 리드 솔로몬 오류 수정코드 디코더를 구비하는 리드 솔로몬 오류 수정 장치에 있어서, 상기 리드 솔로몬 오류 수정코드 디코더는 데이터를 입력받아 신드롬을 출력하는 신드롬 발생수단과, 상기 신드롬 값에 따라 데이터에 오류가 있는 경우 오류를 수정하여 출력하는 씨피유와, 데이터를 저장하고 상기 신드롬의 값에 따라 데이터가 오류가 없는 경우 저장된 데이터를 출력하는 저장수단으로 구성하여 된 것을 특징으로 하는 리드 솔로몬 오류 수정 장치.
KR1019970015303A 1997-04-24 1997-04-24 리드솔로몬오류수정장치 KR100246342B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019970015303A KR100246342B1 (ko) 1997-04-24 1997-04-24 리드솔로몬오류수정장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019970015303A KR100246342B1 (ko) 1997-04-24 1997-04-24 리드솔로몬오류수정장치

Publications (2)

Publication Number Publication Date
KR19980077955A true KR19980077955A (ko) 1998-11-16
KR100246342B1 KR100246342B1 (ko) 2000-03-15

Family

ID=19503758

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970015303A KR100246342B1 (ko) 1997-04-24 1997-04-24 리드솔로몬오류수정장치

Country Status (1)

Country Link
KR (1) KR100246342B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011081240A1 (ko) * 2009-12-28 2011-07-07 (주) 인디링스 버퍼 없이 에러를 검출하고 정정하는 컨트롤러 및 그 컨트롤러의 동작 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011081240A1 (ko) * 2009-12-28 2011-07-07 (주) 인디링스 버퍼 없이 에러를 검출하고 정정하는 컨트롤러 및 그 컨트롤러의 동작 방법

Also Published As

Publication number Publication date
KR100246342B1 (ko) 2000-03-15

Similar Documents

Publication Publication Date Title
US5291496A (en) Fault-tolerant corrector/detector chip for high-speed data processing
US6374383B1 (en) Determining error locations using error correction codes
EP0167627B1 (en) Method and apparatus for decoding error correction code
EP0567148A2 (en) Operating circuit for galois field
EP0373764B1 (en) Correction of random and burst errors
KR20080018560A (ko) 에러 정정 회로, 그 방법 및 상기 회로를 구비하는 반도체메모리 장치
US8694872B2 (en) Extended bidirectional hamming code for double-error correction and triple-error detection
JP3176171B2 (ja) 誤り訂正方法及びその装置
KR100260415B1 (ko) 고속시리얼에러위치다항식계산회로
KR102064508B1 (ko) 오류 검출 정정 회로 및 이를 포함하는 메모리 장치
US6738947B1 (en) Method and apparatus for error correction
US6915478B2 (en) Method and apparatus for computing Reed-Solomon error magnitudes
KR100253043B1 (ko) 에러 정정 방법 및 정정 회로
US6470471B1 (en) Data error correction apparatus
KR100246342B1 (ko) 리드솔로몬오류수정장치
US7228467B2 (en) Correcting data having more data blocks with errors than redundancy blocks
JP2662472B2 (ja) 誤り訂正処理用シンドローム演算回路
US10623018B2 (en) Method of arrangement of an algorithm in cyclic redundancy check
KR100335482B1 (ko) 에러정정시스템
KR100226837B1 (ko) 디지털 티브이의 에러 정정 장치
KR100301518B1 (ko) 리드 솔로몬 복호기에서의 정정 불가능 에러 검출 방법
JP2944813B2 (ja) 誤り訂正符号の復号装置
JP3223513B2 (ja) 誤り訂正復号装置
JP3135552B2 (ja) リードソロモン符号の誤り検出及び訂正装置
CN201025531Y (zh) Bch编码随机错误侦测及更正装置

Legal Events

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

Payment date: 20081125

Year of fee payment: 10

LAPS Lapse due to unpaid annual fee