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

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

Info

Publication number
KR100246342B1
KR100246342B1 KR1019970015303A KR19970015303A KR100246342B1 KR 100246342 B1 KR100246342 B1 KR 100246342B1 KR 1019970015303 A KR1019970015303 A KR 1019970015303A KR 19970015303 A KR19970015303 A KR 19970015303A KR 100246342 B1 KR100246342 B1 KR 100246342B1
Authority
KR
South Korea
Prior art keywords
error
syndrome
reed solomon
flash memory
data
Prior art date
Application number
KR1019970015303A
Other languages
English (en)
Other versions
KR19980077955A (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

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

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

Abstract

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

Description

리드 솔로몬 오류 수정 장치{REED SOLOMON ERROR CORRECTION APPARATUS}
본 발명은 리드 솔로몬 오류 수정 장치에 관한 것으로, 특히 플래시 메모리의 리드동작시 소프트웨어를 사용하여 상기 플래시 메모리에 저장된 데이터에 오류가 있는 경우 수정하여 출력하고, 오류가 없는 경우에는 직접 상기 플래시 메모리에 저장된 데이터를 출력함으로써 그 면적을 감소시키는데 적당하도록 한 리드 솔로몬 오류 수정 장치에 관한 것이다.
일반적으로, 플래시 메모리의 오류를 검출하는 방법으로는 유한 필드(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))의 값을 구하여 출력한다.
Figure pat00001
,
Figure pat00002
Figure pat00003
--------- 식1
상기 식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+
Figure pat00004
1X)(1+
Figure pat00005
2X)(1+
Figure pat00006
3X)....(1+
Figure pat00007
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이 되는 것을 만족시키는 근을 구하게 되며, 이들 근의 역수는 오류위치번호
Figure pat00008
1,
Figure pat00009
2,
Figure pat00010
3,....,
Figure pat00011
2t가 된다.
그 다음, 상기 신드롬 발생부(221)의 출력신호와 상기 오류위치다항식으로 표현되는 새로운 다항식을 아래의 식⑧과 같이 정의한다.
Z(X)=1+(S11)X+(S21S12)X+....+(SN1SN-12SN-2+....+σN)XN---식⑧
이는 아래의 식⑨와 같은 베레캠프 등식(BERLEKAMP EQUATION)으로 표현되며 여기서
Figure pat00012
??은 오류가 발생한 위치에서의 오류값이다.
eil=
Figure pat00013
- - - -식⑨
상기의 계산을 통해 오류의 위치와 오류의 크기를 산출한 씨피유(CPU)는 상기 플래시 메모리(300)의 출력신호(R(X))에서 상기 계산을 통해 구한 보정값(e(X))을 감하여 수정된 정보데이터(CID)로 호스트 프로세서(100)로 출력한다.
이러한 동작과정을 다시 정리하면, 정보데이터와 패리티비트를 입력받아 신드롬을 발생하는 단계와, 상기 신드롬의 값이 0인 경우 오류가 없는 것으로 판단하여 상기 정보데이터와 패리티비트를 호스트 프로세서(100)로 출력하고, 상기 신드롬의 값이 0이 아닌 경우 오류가 있는 것으로 판단하여 소정의 계산을 통해 오류를 수정하여 수정된 정보데이터를 호스트 프로세서(100)로 출력하는 단계로 이루어진다.
상기한 바와 같이 본 발명에 의한 리드 솔로몬 오류 수정 장치는 정보데이터에 오류가 없는 경우 오류수정의 과정을 거치지 않고 직접 출력하여 사용효율을 증가시키는 효과와, 오류수정을 씨피유에서 소프트웨어적으로 처리함으로써 오류 수정 장치의 면적을 감소시키는 효과가 있다.

Claims (1)

  1. 리드 솔로몬 오류 수정코드 엔코더와 리드 솔로몬 오류 수정코드 디코더를 구비하는 리드 솔로몬 오류 수정 장치에 있어서, 상기 리드 솔로몬 오류 수정코드 디코더는 데이터를 입력받아 신드롬을 출력하는 신드롬 발생수단과, 입력데이터를 인가받아 저장하고 그 신드롬이 0인 경우, 그 저장된 데이터를 오류 수정과정을 통하지 않고 출력하는 선입선출메모리와; 상기 신드롬의 값이 0이 아닐 때, 그 신드롬 값과의 합이 0이되는 오류위치다항식을 찾아내고, 그 오류위치다항식과 신드롬의 값을 등식으로 성립시켜, 그 등식을 베레캠프의 등식으로 변환하여 오류의 수정값을 결정한 후, 그 오류의 위치와 수정값을 이용하여 상기 선입선출메모리에 저장된 데이터의 오류를 수정하여 출력하는 중앙처리장치로 이루어진 것을 특징으로 하는 리드 솔로몬 오류 수정 장치.
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 KR19980077955A (ko) 1998-11-16
KR100246342B1 true 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)

Families Citing this family (1)

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

Also Published As

Publication number Publication date
KR19980077955A (ko) 1998-11-16

Similar Documents

Publication Publication Date Title
EP0387924B1 (en) Method and apparatus for decoding error correction code
JP4036338B2 (ja) 誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出方法及び装置
JP5043562B2 (ja) エラー訂正回路、その方法及び前記回路を備える半導体メモリ装置
EP0567148A2 (en) Operating circuit for galois field
EP0373764B1 (en) Correction of random and burst errors
US20130318423A1 (en) Mis-correction and no-correction rates for error control
JPH06311050A (ja) 誤り訂正方法及びその装置
EP0753942A2 (en) Word-wise processing for reed-solomon codes
US6915478B2 (en) Method and apparatus for computing Reed-Solomon error magnitudes
KR100246342B1 (ko) 리드솔로몬오류수정장치
EP0629052B1 (en) Method of and circuit for correcting errors
JPH04248630A (ja) エラー訂正方法及び装置
US7228467B2 (en) Correcting data having more data blocks with errors than redundancy blocks
KR100330642B1 (ko) 오류정정방법및오류정정장치
JP2578739B2 (ja) イレ−ジャ訂正方法
KR100239798B1 (ko) 디지털 신호의 재생에 있어 에러정정방법 및 그에 적용되는 장치
KR100226837B1 (ko) 디지털 티브이의 에러 정정 장치
KR100301518B1 (ko) 리드 솔로몬 복호기에서의 정정 불가능 에러 검출 방법
JP3223513B2 (ja) 誤り訂正復号装置
KR100335482B1 (ko) 에러정정시스템
JP3135552B2 (ja) リードソロモン符号の誤り検出及び訂正装置
KR20080052039A (ko) 순환 중복 검사에 의한 정정 에러를 검사하는 방법 및 그장치
JP2752510B2 (ja) 誤り訂正復号器
JP2599001B2 (ja) 誤り訂正処理回路
JP2578740B2 (ja) 誤り訂正方法

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