KR20100031403A - 에러 정정 회로, 에러 정정 회로를 구비하는 플래시 메모리시스템 및 에러 정정 회로의 동작 방법 - Google Patents

에러 정정 회로, 에러 정정 회로를 구비하는 플래시 메모리시스템 및 에러 정정 회로의 동작 방법 Download PDF

Info

Publication number
KR20100031403A
KR20100031403A KR1020080090491A KR20080090491A KR20100031403A KR 20100031403 A KR20100031403 A KR 20100031403A KR 1020080090491 A KR1020080090491 A KR 1020080090491A KR 20080090491 A KR20080090491 A KR 20080090491A KR 20100031403 A KR20100031403 A KR 20100031403A
Authority
KR
South Korea
Prior art keywords
codeword
error correction
error
correction circuit
value
Prior art date
Application number
KR1020080090491A
Other languages
English (en)
Other versions
KR101486424B1 (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 KR20080090491A priority Critical patent/KR101486424B1/ko
Priority to US12/556,822 priority patent/US8332727B2/en
Publication of KR20100031403A publication Critical patent/KR20100031403A/ko
Application granted granted Critical
Publication of KR101486424B1 publication Critical patent/KR101486424B1/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
    • 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/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • 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/11Error 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 using multiple parity bits

Landscapes

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

Abstract

프리 페이지에 대응하는 코드워드에 대한 에러 검출 및 정정이 가능한 에러 정정 회로를 구비하는 플래시 메모리 시스템이 개시된다. 상기 플래시 메모리 시스템의 일예에 따르면, 메인 데이터를 저장하는 메인 셀 및 패리티 데이터를 저장하는 패리티 셀을 포함하는 메모리부 및 상기 저장된 메인 데이터 및 패리티 데이터를 포함하는 코드워드를 수신하고, 상기 코드워드에 대한 유한 필드(finite field) 상에서의 연산을 수행함으로써 상기 코드워드에 대한 에러 정정을 수행하며, 상기 메모리부의 소거 상태에 대응하는 코드워드(codeword)를 상기 유한 필드의 원소로서 포함하는 에러 정정 회로(Error Correction Circuit)를 구비하는 것을 특징으로 한다.

Description

에러 정정 회로, 에러 정정 회로를 구비하는 플래시 메모리 시스템 및 에러 정정 회로의 동작 방법{Error correction circuit, flash memory system having the same and operating method thereof}
본 발명은 에러 정정 회로에 관한 것으로서, 자세하게는 메모리 시스템에 적용되는 에러 정정 회로 및 그 동작 방법에 관한 것이다.
모바일(Mobile) 시스템 및 여러 가지 응용 시스템의 개발에 따라 불휘발성 메모리인 플래시(flash) 메모리의 요구가 증가되고 있다. 전기적으로 소거 및 프로그램이 가능한 불휘발성 메모리 장치인 플래시 메모리는, 전원이 공급되지 않는 상태에서도 데이터를 보존할 수 있는 특징을 가지고 있으며, 또한 마그네틱 디스크 메모리를 기반으로 하는 저장 매체에 비해 전력 소모가 적으면서도 하드 디스크와 같이 액세스 타임(Access Time)이 빠른 특징을 갖는다.
일반적으로 플래시 메모리는, 디폴트 상태인 "1"의 데이터를 갖는 셀을 프로그램 동작을 통하여 "0"의 데이터를 갖도록 함으로써 정보를 저장한다. 이에 따라 플래시 메모리에 데이터를 기록할 때에는, 먼저 블록 내의 모든 셀의 데이터를 "1"로 리셋하기 위한 소거 동작이 수행되어야 한다. 블록 내에는 복수 개의 페이지가 구비될 수 있으며, 소거 동작이 수행되어 모든 셀의 데이터가 "1"의 값을 갖는 페이지를 프리 페이지(Free Page)라고 지칭한다.
플래시 메모리는 자체 물리적 특성 때문에 데이터를 기록하거나 독출할 때 스펙에 명시된 비트 수 만큼의 에러가 발생할 수 있다는 가정을 하고 사용한다. 한편, 상기 스펙의 비트 수 이내의 에러를 정정하기 위하여 에러 정정기가 플래시 메모리 시스템 내에 구비되며, 상기 에러 정정기(이하, ECC 회로)는 하드 웨어나 소프트 웨어로 구현될 수 있다. ECC 회로는 ECC 인코더와 ECC 디코더로 이루어질 수 있다. 데이터를 플래시 메모리에 기록할 때에는, ECC 인코더를 통하여 생성된 패리티 데이터를 메인 데이터와 함께 기록한다. 또한 플래시 메모리로부터 데이터를 독출하는 경우에는, 메인 데이터와 패리티 데이터를 함께 독출하고, ECC 디코더를 통하여 에러를 검출하고 또한 에러를 정정한다. 상기 메인 데이터와 상기 패리티 데이터를 포함한 전체 데이터는 일반적으로 코드워드로 지칭된다.
플래시 메모리를 사용하는 어플리케이션은 소거 상태의 페이지(프리 페이지)로부터 데이터를 독출하는 경우가 발생하는데, 프리 페이지 내의 디폴트 데이터(일예로서, all "1" 데이터)는 ECC 회로가 사용하는 코드워드와는 전혀 무관한 데이터이다. 이에 따라 프리 페이지의 디폴트 데이터를 수신한 ECC 회로는 정정 시도 후 정정에 실패했음을 나타내는 정보를 리포트할 수 밖에 없다.
일예로서, ECC 회로는 유한 필드(finite field) 또는 갈로아 필드(Galois field, GF) 상에서의 연산을 사용할 수 있으며, 이진 데이터의 특성상 GF(
Figure 112008064938484-PAT00001
) 상 에서의 연산을 주로 사용할 수 있다. GF(
Figure 112008064938484-PAT00002
) 는
Figure 112008064938484-PAT00003
개의 원소를 포함하는 수 체계로서, 덧셈에 대한 항등원 및 역원이 존재하고, 또한 곱셈에 대한 항등원과 0 이 아닌 원소에 대한 역원이 존재하는 특성을 갖는다. 일반적으로 all "0"으로 이루어지는 코드워드의 경우, all "0"은 GF(
Figure 112008064938484-PAT00004
) 상에서 항등원으로 작용하므로, all "0"으로 이루어지는 코드워드는 GF(
Figure 112008064938484-PAT00005
) 상의 원소에 해당한다. 그러나, 모든 데이터가 "1"로 이루어지는 코드워드는 GF(
Figure 112008064938484-PAT00006
) 상의 원소에 해당하지 않으며, 상기 all "1" 값을 갖는 코드워드를 수신한 에러 정정기는 상기 코드워드의 정정에 실패했음을 리포트하게 된다.
메모리 시스템에서 사용되는 플래시 메모리의 경우, 어떠한 페이지가 프리 페이지라는 것을 나타내는 정보를 상위 레벨의 어플리케이션에게 리포트하는 것이 필요하다. 일예로서, 해당 페이지가 정상적으로 데이터를 기록할 수 있는 페이지라는 정보를 주기 위해 상기 리포트가 필요하며, 또한 복수의 블록에 부분적으로 기록된 데이터를 새로운 블록으로 복사할 때 작업 속도를 향상시키기 위하여 상기 리포트가 필요하다. 즉, 상기한 바와 같이 소정의 페이지가 프리 페이지임을 나타내는 정보를 상위 어플리케이션에 제공하는 것은 시스템 내의 중요한 동작으로서, 종래의 경우에는 프리 페이지 내의 모든 셀에 대한 별도의 데이터 검출동작을 통해 수행되었다. 그러나 프리 페이지의 리포트 동작을 보다 효율적으로 수행하는 것이 바람직하다.
본 발명은 상기와 같은 문제점을 해결하기 위한 것으로서, 프리 페이지에 대한 데이터 처리를 효율적으로 수행할 수 있는 에러 정정 회로, 에러 정정 회로를 구비하는 플래시 메모리 시스템 및 에러 정정 회로의 동작 방법을 제공하는 것을 목적으로 한다.
상기와 같은 목적을 달성하기 위하여, 본 발명의 일실시예에 따른 플래시 메모리 시스템은, 메인 데이터를 저장하는 메인 셀 및 패리티 데이터를 저장하는 패리티 셀을 포함하는 메모리부 및 상기 저장된 메인 데이터 및 패리티 데이터를 포함하는 코드워드를 수신하고, 상기 코드워드에 대한 유한 필드(finite field) 상에서의 연산을 수행함으로써 상기 코드워드에 대한 에러 정정을 수행하며, 상기 메모리부의 소거 상태에 대응하는 코드워드(codeword)를 상기 유한 필드의 원소로서 포함하는 에러 정정 회로(Error Correction Circuit)를 구비하는 것을 특징으로 한다.
바람직하게는, 상기 소거 상태에 대응하는 코드워드는, 상기 유한 필드 상의 연산에서 덧셈에 대한 항등원으로 동작하는 것을 특징으로 한다.
또한 바람직하게는, 상기 소거 상태에 대응하는 코드워드는 모든 비트의 값이 "1" 에 해당하는 값을 갖는 것을 특징으로 한다.
한편, 상기 에러 정정 회로는, 상기 소거 상태에 대응하는 코드워드가 상기 유한 필드 상의 연산에서 덧셈에 대한 항등원으로 동작하도록, 배타적 반전 논리 합(XNOR) 연산을 수행하는 덧셈 연산기를 구비할 수 있다.
바람직하게는, 상기 덧셈 연산기는, 피 연산자들의 논리 상태를 반전시키기 위한 제1 인버터와, 상기 제1 인버터를 통과한 피 연산자들에 대해 배타적 논리 합 연산을 수행하는 XOR 연산기 및 상기 XOR 연산기의 출력을 반전시켜 출력하는 제2 인버터를 구비하는 것을 특징으로 한다.
한편, 상기 에러 정정 회로는, 배타적 반전 논리 합(XNOR) 연산 및 논리합(OR) 연산 중 적어도 하나를 수행함에 의하여 상기 유한 필드 상에서 곱셈 연산을 수행하는 곱셈 연산기를 더 구비할 수 있다.
바람직하게는, 상기 곱셈 연산기는, 피 연산자들의 논리 상태를 반전시키기 위한 제3 인버터와, 상기 제3 인버터를 통과한 피 연산자들에 대해 배타적 논리 합(XOR) 연산 및 논리곱(AND) 연산을 수행하는 연산부 및 상기 연산부의 출력을 반전시켜 출력하는 제4 인버터를 구비하는 것을 특징으로 한다.
한편, 상기 에러 정정 회로는, 입력되는 코드들의 에러 정정을 위한 ECC 디코더를 구비하고, 상기 ECC 디코더는, 상기 수신된 코드워드의 비트들 중 "1" 또는 "0"의 값을 갖는 비트들의 수를 카운트하고, 카운트된 값을 임계값과 비교한 결과에 따라 해당 페이지가 프리 페이지(Free Page)인지를 나타내는 정보를 발생하는 프리 페이지 검출부를 구비하는 것을 특징으로 한다.
바람직하게는, 상기 프리 페이지 검출부는, 상기 코드워드의 비트들 중 "0"의 값을 갖는 비트의 수가 상기 임계값 이하인 경우, 상기 해당 페이지가 프리 페 이지임을 나타내는 정보를 발생하는 것을 특징으로 한다.
또한 바람직하게는, 상기 ECC 디코더는, 상기 수신된 코드워드의 에러를 검출하는 에러 검출부 및 상기 에러 검출 결과에 기반하여 상기 코드워드의 에러를 정정하는 에러 정정부를 더 구비하는 것을 특징으로 한다.
한편, 상기 에러 정정 회로는, 외부로부터 제공되는 메인 데이터를 입력받아 소정의 다항식(polynomial)에 의한 나눗셈 동작에 기반하여 패리티 데이터를 발생하는 ECC 인코더를 더 구비하고, 상기 ECC 인코더는 적어도 하나의 레지스터 및 상기 레지스터의 출력에 대한 덧셈 연산을 수행하기 위한 적어도 하나의 덧셈 연산기를 구비하고, 상기 덧셈 연산기는 배타적 반전 논리 합(XNOR) 연산을 수행하는 것을 특징으로 한다.
바람직하게는, 상기 적어도 하나의 레지스터는, 그 초기값으로서 논리 "1"의 값이 초기값으로 설정되는 것을 특징으로 한다.
한편, 본 발명의 일 실시예에 따른 에러 정정 회로(Error Correction Circuit)는, 외부로부터 제공되는 메인 데이터를 입력받아 소정의 다항식(polynomial)에 의한 나눗셈 동작에 기반하여 패리티 데이터를 발생하는 ECC 인코더 및 상기 메인 데이터와 상기 패리티 데이터를 포함하는 코드워드를 수신하고, 상기 코드워드에 대한 유한 필드(finite field) 상에서의 연산을 수행함으로써 상기 코드워드에 대한 에러 정정을 수행하는 ECC 디코더를 구비하며, 모든 비트의 값이 "1" 에 해당하는 값을 갖는 코드워드를 상기 유한 필드의 원소로서 포함하는 것을 특징으로 한다.
한편, 본 발명의 일 실시예에 따른 플래시 메모리에 구비되는 에러 정정 회로(Error Correction Circuit)의 동작 방법은, 메인 데이터 및 이에 대응하는 패리티 데이터를 포함하는 코드워드를 독출하는 단계와, 상기 코드워드에 대한 유한 필드 상에서의 연산을 수행하는 단계 및 상기 연산 수행 결과에 기반하여 상기 코드워드에 대한 에러 검출 및 정정을 수행하는 단계를 구비하며, 상기 플래시 메모리의 소거 상태에 대응하는 제1 코드워드를 상기 유한 필드의 원소로서 포함함에 의하여, 상기 제1 코드워드에 대한 에러 검출 결과에 기반하여 상기 제1 코드워드의 에러를 정정하여 출력하는 것을 특징으로 한다.
상기한 바와 같은 본 발명의 에러 정정 회로, 에러 정정 회로를 구비하는 플래시 메모리 시스템 및 에러 정정 회로의 동작 방법에 따르면, 프리 페이지에 대응하는 코드워드에 대한 적절한 에러 검출 및 정정을 수행하고, 또한 해당 페이지가 프리 페이지임을 효율적으로 리포트할 수 있는 효과가 있다.
본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시 예를 예시하는 첨부 도면 및 도면에 기재된 내용을 참조하여야 한다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시 예를 설명함으로써, 본 발명을 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.
도 1은 본 발명의 일실시예에 따른 플래시 메모리 시스템을 나타낸다. 도시된 바와 같이 플래시 메모리 시스템(100)은, 플래시 메모리 셀을 포함하는 메모리부(110)와 상기 메모리부(110)에 대한 기록 및 독출 동작 등을 수행하기 위한 페이지 버퍼 블록(120), 에러 정정 회로(ECC, 130) 및 입출력 버퍼(140) 등을 구비한다. 상기 에러 정정 회로(130)는 외부로부터 입력되는 데이터에 기반하여 패리티 데이터를 발생하거나, 메모리부(110)에 저장된 코드워드를 수신하고 이에 대한 에러 검출 및 정정을 수행한다. 상기와 같은 메모리부(110)에 대한 기록 및 독출 동작에 관련된 주변회로들을 전체적으로 제어하기 위한 컨트롤러(150) 또한 플래시 메모리 시스템(100)에 구비될 수 있다.
한편 도 1에서는, 상기 에러 정정 회로(130)가 플래시 메모리 장치에 구비되는 것으로 도시되어 있으나, 본 발명의 범위는 반드시 이에 국한될 필요는 없다. 상기 에러 정정 회로(130)는 플래시 메모리 장치 및 이를 구동하기 위한 외부의 컨트롤러를 포함하는 플래시 메모리 시스템에 구비되는 것으로서, 상기 에러 정정 회로(130)는 플래시 메모리 장치의 외부에 구비되어도 무방하다.
플래시 메모리 셀을 구비하는 메모리부(110)는, 메인 데이터를 저장하는 메인 셀(미도시)과 패리티 데이터를 저장하는 패리티 셀(미도시)를 구비할 수 있다. 플래시 메모리의 독출 단위로서의 페이지(page)에는 상기 메인 셀과 패리티 셀이 포함되며, 메인 데이터와 패리티 데이터로 이루어지는 코드워드가 상기 페이지로부터 독출된다.
플래시 메모리에 데이터를 기록하는 경우, 외부로부터의 메인 데이터가 입출 력 버퍼(140)에 저장되며, 입출력 버퍼(140)에 저장된 메인 데이터는 에러 정정 회로(130)로 제공된다. 에러 정정 회로(130)는 ECC 인코딩 작업을 통하여 상기 메인 데이터에 대응하는 패리티 데이터를 발생한다. 상기 메인 데이터와 이에 대응하는 패리티 데이터는 페이지 버퍼 블록(120)을 거쳐 메모리부(110)에 저장된다.
한편, 플래시 메모리에 저장된 데이터를 독출하는 경우, 소정의 페이지에 저장된 코드워드를 독출하며, 독출된 코드워드를 페이지 버퍼 블록(120)을 거쳐 에러 정정 회로(130)로 전달한다. 에러 정정 회로(130)는 독출된 코드워드를 수신하고, 이에 대해 유한 필드(finite field) 상에서의 연산을 수행함으로써 상기 코드워드에 대한 에러를 검출하며, 또한 검출된 에러를 정정한다. 하나의 페이지에 대응하는 메인 데이터에 대한 에러 정정 능력은 에러 정정 회로(130)에서 수행하는 알고리즘의 특성 및 패리티 데이터의 비트 수 등에 의하여 가변될 수 있다. 에러 정정 회로(130)에서 해당 코드워드에 대한 에러 검출 결과, 상기 에러가 정정 가능한 비트 수 이내라면 상기 코드워드에 대해 에러 정정을 수행하고, 에러 정정이 불가능한 경우에는 이와 같은 정보를 갖는 신호를 발생하여 출력한다.
한편, 플래시 메모리의 특성 상, 기록 동작을 수행하기 이전에 복수 개의 페이지로 이루어지는 블록 단위로 소거 동작을 수행한다. 이에 따라 소거된 블록에 포함되는 페이지(메인 셀 및 패리티 셀을 포함함)의 모든 데이터는 "1"에 해당하는 값을 갖게 되며, 모든 셀의 데이터가 "1"에 해당하는 값을 갖는 페이지는 프리 페이지(Free Page)가 된다.
메모리 시스템에서 사용되는 플래시 메모리의 경우, 어떠한 페이지가 프리 페이지라는 것을 나타내는 정보를 상위 레벨의 어플리케이션에게 리포트하는 것이 필요하다. 또한, 플래시 메모리를 사용하는 어플리케이션은 소거 상태의 페이지(프리 페이지)로부터의 데이터를 독출하는 경우가 발생한다. 본 발명의 일실시예에 따르면, 별도의 회로 구성을 이용하여 페이지의 모든 셀의 데이터를 각각 검출함에 의하여 프리 페이지를 검출하는 것이 아닌, 메모리 시스템에 구비되는 에러 정정 회로(130)를 이용하여 해당 페이지가 프리 페이지인지를 검출한다. 또한 상기 에러 정정 회로(130)가 소거 상태에 대응하는 all "1" 데이터를 갖는 코드워드에 대해서도 에러 검출 및 정정을 적절히 수행할 수 있도록 한다.
상기와 같은 본 발명의 일실시예에 따른 동작을 도 2 및 도 3을 참조하여 설명하면 다음과 같다.
도 2는 도 1의 에러 정정 회로(130)를 자세히 나타내는 블록도이다. 도시된 바와 같이 에러 정정 회로(130)는 소정의 메인 데이터(data_m)를 입력받아 이에 대응하는 패리티 데이터(data_p)를 발생하는 ECC 인코더(131)를 구비한다. 또한 에러 정정 회로(130)는 메모리부(110)로부터 독출된 코드워드(codeword)를 수신하고, 상기 코드워드(codeword)에 대한 에러 검출 및 에러 정정 동작을 수행하여 에러 정정된 데이터(corrected data)를 출력하며, 또한 수신된 코드워드(codeword)에 대응하는 페이지가 프리 페이지인지를 검출하여 이에 따른 검출결과(FP_info)를 발생하는 ECC 디코더(132)를 구비한다. 상기와 같은 동작을 위하여, ECC 디코더(132)는 에러 검출부(132_1), 에러 정정부(132_2) 및 프리 페이지 검출부(132_3)를 구비할 수 있다.
일반적으로 all "0"에 해당하는 코드워드는 GF(
Figure 112008064938484-PAT00007
) 상의 원소이며, 또한 덧셈 연산에 대한 항등원으로 동작한다. 그러나, all "1"에 해당하는 코드워드는 GF(
Figure 112008064938484-PAT00008
) 상의 원소에 해당하지 않으므로, all "1"에 해당하는 코드워드(일예로서, 소거 상태의 페이지에서 독출된 코드워드)가 에러 정정 회로(130)로 제공되면, 에러 정정 회로(130)는 상기 코드워드에 정정이 불가능한 비트 수의 에러가 존재함을 리포트하게 된다.
에러 정정 회로(130)는 수신된 코드워드(codeword)에 대하여 유한 필드(일예로서, 갈로아 필드(Galois field, GF)) 상에서의 연산을 수행함으로써 상기 코드워드에 대한 에러 검출 및 정정 동작을 수행한다. 본 발명의 일실시예에서는, 수신된 코드워드(codeword)가 소거 상태의 페이지에 대응하는 all "1"의 값을 갖는 경우에도, 에러 정정 회로(130)에 의하여 에러 검출 및 정정이 가능하도록 한다. 이를 위하여, 에러 정정 회로(130)에서 수행되는 유한 필드(finite field) 상의 연산에서, all "1"의 값을 갖는 코드워드(codeword)가 상기 유한 필드의 원소가 되도록 한다. 바람직하게는, all "1"의 값을 갖는 코드워드(codeword)가 유한 필드(finite field) 상에서의 덧셈 연산에 대한 항등원으로 동작하도록 한다.
즉, 소거 상태의 페이지로부터 독출된 코드워드(all "1"의 값을 갖는 코드워드)는 에러 정정 회로(130)에서 사용되는 유한 필드의 원소가 되므로, 에러 정정 회로(130)는 프리 페이지로부터 독출된 코드워드의 에러를 정정할 수 있다. all "1"의 값을 갖는 코드워드(codeword)가 항등원으로 동작하도록 하기 위하여, 상기 에러 정정 회로(130)의 유한 필드 상에서의 덧셈 연산 및 곱셈 연산이 개선되어야 하며, 상기 연산에 대한 구체적인 내용은 다음과 같다.
도 3a,b는 일반적인 유한 필드 상에서의 덧셈 연산 및 곱셈 연산을 나타내며, 도 3c는 본 발명의 일실시예에 따른 유한 필드 상에서의 덧셈 연산 및 곱셈 연산을 나타낸다.
도 3a는 GF(2) 상에서 덧셈과 곱셈의 정의를 심볼로 표시한 것으로서, 덧셈 연산 결과에 따르면 세모 형태로 나타나는 심볼이 GF(2) 상에서 덧셈 연산의 항등원에 해당한다. 이에 기반하면, GF 확장 필드에서의 덧셈에 대한 항등원은 모든 값이 세모 형태의 심볼을 갖는 코드워드가 된다. 상기 연산에 따라, GF 확장 필드는 모든 값이 세모 형태의 심볼을 갖는 코드워드를 반드시 그 원소로 갖는다. 반대로 GF(2) 상에서 곱셈 연산을 수행하는 경우에는, 네모 형태로 나타나는 심볼이 상기 곱셈 연산의 항등원이 된다.
도 3b는 종래의 덧셈과 곱셈의 정의에서, 세모 형태의 심볼을 데이터 "0" 값으로, 또한 네모 형태의 심볼을 데이터 "1" 값으로 할당한 경우를 나타낸다. 도시된 바와 같이 데이터 "0" 값이 GF(2) 상에서 덧셈 연산의 항등원에 해당한다. 또한 데이터 "0"의 덧셈에 대한 역원은 "0" 값이 되며, 또한 데이터 "1"의 덧셈에 대한 역원은 "1" 값이 된다. 또한 데이터 "1" 값이 GF(2) 상에서 곱셈 연산의 항등원에 해당하며, 데이터 "1"의 곱셈에 대한 역원은 "1" 값을 갖는다. 상기와 같은 연산의 정의에 의하여, GF(2) 상에서 덧셈 연산은 피 연산자들에 대한 배타적 논리 합(XOR) 연산으로 정의되며, 또한 곱셈 연산은 피 연산자들에 대한 논리 곱(AND) 연산으로 정의된다.
또한, GF 확장 필드에서 all "0" 값을 갖는 코드워드가 상기 GF 확장 필드의 덧셈 연산에서의 항등원으로 동작하며, 이에 따라 GF 확장 필드는 all "0" 값을 갖는 코드워드를 반드시 그 원소로서 갖는다.
도 3c는 본 발명의 일실시예에 따른 에러 정정 회로(130)에서의 연산 특징을 나타낸다. 도 3c에 도시된 바와 같이, 도 3b와는 각 심볼에 해당하는 데이터 값이 서로 반대가 되도록 설정된다. 즉, 데이터 "1"과 데이터 "1"의 덧셈 연산에 대한 결과가 "1"의 값을 갖도록 정의되고, 또한 데이터 "1"과 데이터 "0"의 덧셈 연산에 대한 결과가 "0"의 값을 갖도록 정의되며, 또한 데이터 "0"과 데이터 "0"의 덧셈 연산에 대한 결과가 "1"의 값을 갖도록 정의된다. 이에 따라, 에러 정정 회로(130)에서의 덧셈 연산에 대한 항등원은 "1"의 값을 가지며, 상기 덧셈 연산은 배타적 반전 논리 합(XNOR) 연산으로 정의된다. 한편, 도시된 바와 같이 에러 정정 회로(130)의 연산에서는, 데이터 "1"의 덧셈에 대한 역원은 "1"의 값을 가지며, 또한 데이터 "0"의 덧셈에 대한 역원은 "0"의 값을 갖는다.
한편, 도 3c로 정의되는 연산의 경우 도 3b와 비교하여 그 심볼의 값을 반대로 설정함에 따라, 에러 정정 회로(130)에서의 곱셈 연산에 대한 항등원은 "0"의 값을 갖는다. 즉, 도 3c에 도시된 바와 같이 데이터 "1"과 데이터 "1"의 곱셈 연산에 대한 결과가 "1"의 값을 갖도록 정의되고, 또한 데이터 "1"과 데이터 "0"의 곱셈 연산에 대한 결과가 "1"의 값을 갖도록 정의되며, 또한 데이터 "0"과 데이터 "0"의 곱셈 연산에 대한 결과가 "0"의 값을 갖도록 정의된다. 즉, 에러 정정 회 로(130)에서 곱셈 연산은 논리합(OR) 연산으로 정의된다.
상술하였던 바와 같이, GF 필드에서 데이터 "1"이 덧셈에 대한 항등원으로 동작하므로, 상기 GF 확장 필드는 all "1"의 값을 갖는 코드워드를 그 원소로서 갖는다. 이에 따라 프리 페이지로부터 독출된 all "1"의 값을 갖는 코드워드가 에러 정정 회로(130)로 제공되면, 에러 정정 회로(130)는 상기 코드워드에 대한 에러를 검출하고, 정정 능력 범위 내에서 상기 코드워드에 발생한 에러를 정정한다.
한편, 에러 정정 회로(130)에 구비되는 프리 페이지 검출부(132_3)는, ECC 디코더(132)로 제공되는 코드워드를 수신하고, 수신된 코드워드에 포함되는 비트들 중에서 "1" 또는 "0"의 값을 갖는 비트들의 수를 카운트한다. 또한 ECC 디코더(132) 내에는 소정의 정수값에 해당하는 임계값이 설정되어 있거나 또는 상기 임계값을 외부로부터 제공받을 수 있으며, 카운트된 값을 상기 임계값과 비교함에 의하여 수신된 코드워드에 대응하는 페이지가 프리 페이지인지를 검출한다. 일예로서, 임계값이 "1"로 설정되는 경우에, 수신된 코드워드에 포함되는 비트들 중 데이터 "0" 값을 갖는 비트의 수가 1 이하라면, 상기 코드워드에 대응하는 페이지가 프리 페이지임을 나타내는 신호(FP_info)를 발생하고 이를 출력한다.
한편, 본 발명의 일실시예에 따른 에러 정정 회로(130), 특히 ECC 디코더(132)는 수신된 코드워드의 에러 검출 및 정정을 위하여 상술한 바와 같은 덧셈 연산 및 곱셈 연산을 수행하는데, 상기 ECC 디코더(132) 내에 구비되는 덧셈 연산기 및 곱셈 연산기의 일 구현예를 설명한다.
도 4a는 도 2의 ECC 디코더 내에 구비되는 덧셈 연산기를 나타내는 회로도이 다. 상술하였던 바와 같이, 본 발명의 일실시예에 따른 에러 정정 회로(130)에서의 덧셈 연산은 배타적 반전 논리 합(XNOR) 연산으로 정의된다. 도 4a에서는 GF(
Figure 112008064938484-PAT00009
) 상에서의 덧셈 연산을 수행하는 동작을 그 일예로서 나타낸다.
도시된 바와 같이, 세 비트의 데이터 각각은 병렬하게 배치되는 배타적 반전 논리 합(XNOR) 연산기로 각각 제공되고, XNOR 연산에 따른 출력 결과가 발생된다. 이는 도 4a에 함께 도시되는 회로 구성과 같이, 병렬하게 배치되는 배타적 논리 합(XOR) 연산기들의 입력단에 공통하는 제1 인버터를 배치하고, 또한 상기 배타적 논리 합(XOR) 연산기들의 출력단에 공통하는 제2 인버터를 배치함으로써 동일한 연산 결과를 얻을 수 있다. 즉, 본 발명의 실시예에 따르면, ECC 디코더(132) 내에 일반적인 덧셈 연산기를 배치하고, 상기 덧셈 연산기의 입력단 및 출력단 각각에 인버터를 배치함으로써 반전 논리 합(XNOR) 연산을 수행하는 덧셈 연산기를 구현할 수 있다.
한편, GF 상에서의 곱셈 연산은 덧셈 연산과는 달리, 원시 다항식(primitive polynomial)에 따라 여러 가지 다른 로직으로 구성될 수 있다. 일예로서, GF 상에서의 곱셈 연산기는, 각 자리수별로 수행되는 곱셈 및 같은 자리의 수에 대해 수행되는 덧셈 동작 등을 포함하는 복잡한 회로로 구현된다. 본 발명의 일실시예에 따른 상에서의 곱셈 연산기는, 선택된 원시 다항식을 변경하는 것 없이 논리합(OR) 연산에 의한 각 자리별 곱셈과, 배타적 반전 논리합(XNOR) 연산에 의한 같은 자리에서의 덧셈을 수행한다.
도 4b에 도시된 바와 같이, 본 발명의 일실시예에 따른 곱셈 연산기는, 일반 적인 곱셈 연산을 위한 논리곱(AND) 연산기와 일반적인 덧셈 연산을 위한 배타적 논리합(XOR) 연산기를 포함하는 일반적인 곱셈 연산기와, 상기 일반적인 곱셈 연산기의 입력단에 공통하는 제3 인버터와, 상기 일반적인 곱셈 연산기의 출력단에 공통하는 제4 인버터가 배치되는 형태로 구현될 수 있다. 즉, 입력단 및 출력단에 각각 공통하는 인버터들을 배치함으로써, 논리합(OR) 연산에 의한 곱셈 동작 및 배타적 반전 논리합(XNOR) 연산에 의한 덧셈 동작을 수행하는 곱셈 연산기를 구현할 수 있다.
한편, ECC 디코더(132) 내에 구비되는 덧셈 연산기 및 곱셈 연산기의 조합은 다양한 형태로 이루어질 수 있다. 만약 ECC 디코더(132)에서 연산을 수행하기 위한 로직이 조합(combinational) 논리회로로 구현된다면, 상기 덧셈 연산기들 및 곱셈 연산기들의 직렬한 조합으로 ECC 디코더(132)의 로직이 구현될 수 있다. 이 경우 각각의 연산기마다 그 입력단 및 출력단에 인버터를 배치할 필요가 없다. 즉, 연산기들의 연결 중간에 배치되는 인버터들은 제거될 수 있으며, 기존의 로직에다가 최초의 연산기의 입력단에 배치되는 인버터와, 최종의 연산기의 출력단에 배치되는 인버터를 추가함으로써 본 발명의 실시예에 따른 ECC 디코더(132)의 로직을 구현할 수 있다.
상기와 같은 구현 방법은 ECC 디코더(132) 내의 로직이 조합(combinational) 논리회로로 구현되는 경우를 가정한 것이다. 그러나 나눗셈 연산기는 하나의 사이클만에 계산이 불가능한 순차(sequential) 논리회로로 구현된다. 일반적으로 순차(sequential) 논리회로는 적어도 하나의 레지스터를 포함한다.
도 5는 도 2의 ECC 인코더에 구비되는 나눗셈 연산기의 일예를 나타내는 회로도이다. 도 5에는 ECC 인코더(131)의 구현 예로서, 하나의 나눗셈 연산기로 구현되는 BCH(Bose Chaudhuri Hocquenghem) 인코더가 도시된다. ECC 인코더(131)는 외부로부터 제공되는 데이터(data(x))를 입력받으며, 소정의 다항식(polynomial)에 의한 나눗셈 연산에 기반하여 패리티 데이터(par(x))를 발생한다. 도 5에는 상기 소정의 다항식(polynomial)이
Figure 112008064938484-PAT00010
이라고 가정되었으며, BCH 인코더는 순차적으로 연결되는 적어도 하나의 레지스터(일예로서 제1 내지 제3 레지스터(R0, R1, R2))와, 상기 적어도 하나의 레지스터의 출력에 기반하여 덧셈 연산을 수행하는 적어도 하나의 덧셈 연산기(A0, A1)를 구비하는 것으로 가정한다. 도 5에 도시된 ECC 인코더의 일예를 참조하면, 이를 이용하여 다양한 형태로 ECC 인코더를 구현할 수 있음은 당업자에게 자명한 사항일 것이다.
도 5에 도시된 제1 내지 제3 레지스터(R0, R1, R2)는 초기 셋팅 값으로서 "0"이 아닌 "1"의 값이 초기값으로 설정된다. 제1 덧셈 연산기(A0)은 제1 레지스터(R0)의 출력과 제2 덧셈 연산기(A1)의 출력을 피드백받아 덧셈 연산을 수행하고, 이에 따른 결과를 제2 레지스터(R1)의 입력단으로 제공한다. 상술하였던 바와 같이 본 발명의 일실시예에서는 상기 덧셈 연산이 배타적 반전 논리 합(XNOR) 연산으로 정의된다. 또한 제2 덧셈 연산기(A1)는 제3 레지스터(R2)의 출력과 외부로부터의 데이터(data(x))를 입력받아 이에 대하여 배타적 반전 논리 합(XNOR) 연산으로 정의되는 덧셈 연산을 수행한다. 상기 제2 덧셈 연산기(A1)의 출력은 제1 레지스터(R0)의 입력단으로 피드백된다. 상기와 같은 과정을 거쳐 각각의 레지스터에 저 장된 값은 패리티 데이터(par(x))로서 순차적으로 출력된다. 결론적으로, 에러 정정 회로(130)의 유한 필드 상에서의 연산에서 "0"과 "1"의 심볼을 반대로 할당함으로써, all "1"에 해당하는 프리 페이지로부터 독출된 코드워드가 상기 유한 필드의 항등원이 되도록 함으로써, 상기 프리 페이지의 데이터에 대한 에러 검출 및 정정이 가능토록 하며, 또한 상기 코드워드의 각 비트의 "0" 또는 "1"의 비트 수를 카운트함으로써 해당 페이지가 프리 페이지임을 나타내는 신호를 발생하도록 한다.
도 6은 본 발명의 일실시예에 따른 에러 정정 회로의 동작 방법을 나타내는 플로우차트이다. 바람직하게는, 상기 에러 정정 회로는 플래시 메모리 시스템 내에 구비됨에 따라, 플래시 메모리에 기록되는 데이터로부터 패리티 데이터를 발생하고, 또한 플래시 메모리로부터 독출되는 코드워드에 대해 에러 검출 및 정정을 수행하는 것으로 한다.
도시된 바와 같이, 플래시 메모리에는 메인 데이터 및 상기 메인 데이터에 대응하는 패리티 데이터가 기록되며, 독출 명령에 응답하여 상기 메인 데이터와 패리티 데이터를 포함하는 코드워드가 독출된다(S11). 상기 패리티 데이터를 발생하고 기록하는 동작은, 앞서 시스템의 측면에서 개시된 ECC 인코딩의 동작과 유사한 것으로서 이에 대한 자세한 설명은 생략한다.
플래시 메모리 시스템에 구비되는 에러 정정 회로는 상기 코드워드를 수신하고, 상기 수신된 코드워드에 대한 에러 검출 및 정정 동작을 수행한다. 또한 상기 수신된 코드워드에 포함되는 비트들에 대하여 "0" 또는 "1"의 값을 갖는 비트들의 수를 카운트함에 기반하여, 상기 수신된 코드워드에 대응하는 페이지가 프리 페이 지인지를 검출한다. 상기와 같은 에러 검출 및 정정동작과 프리 페이지 검출 동작은 순차적으로 진행될 수도 있으며 또한 동시에 진행될 수도 있다.
에러 정정 회로로 코드워드가 제공되면, 유한 필드(finite field) 상에서의 연산을 수행함에 의하여 상기 코드워드에 대한 에러 검출 및 정정 동작이 수행된다. 먼저 상기 코드워드에 대한 에러를 검출하고(S12), 상기 에러 검출 결과에 기반하여 상기 에러가 정정이 가능한 것인지를 판단한다(S13). 판단 결과, 에러가 정정 가능한 것으로 판단되면 상기 코드워드에 발생된 에러를 정정하는 단계가 수행된다(S14). 반면에, 에러가 정정이 불가능한 것으로 판단되면, 해당 코드워드에 대해 에러가 정정이 불가능함을 리포트한다(S15).
특히, 상기한 바와 같은 단계들에서, 프리 페이지로부터 독출된 코드워드(all "1" 값을 갖는 코드워드)가 에러 정정 회로로 제공될 수 있으며, 에러 정정 회로에서 수행되는 유한 필드 상의 연산에서, 상기 프리 페이지에 대응하는 코드워드가 상기 유한 필드의 원소가 되도록 한다. 상기 프리 페이지에 대응하는 코드워드가 상기 유한 필드의 원소가 되도록 하기 위하여, "1" 값을 갖는 코드워드가 유한 필드 상의 덧셈 연산에서의 항등원으로 동작하도록 한다. 상술하였던 바와 같이, 유한 필드 상의 덧셈 연산을 배타적 반전 논리 합(XNOR) 연산으로 정의함으로써, "1" 값을 갖는 코드워드가 덧셈 연산의 항등원이 되도록 할 수 있다.
프리 페이지로부터 독출된 코드워드가 에러 정정 회로로 제공되고, 상기 코드워드는 에러 정정 회로가 기반하고 있는 유한 필드의 원소가 됨에 따라, 상기 코드워드에 대한 에러 검출 및 정정 동작이 정상적으로 수행된다. 이에 따라, 프리 페이지로부터 독출된 코드워드의 일부 비트에 에러가 발생한 경우에도, 에러 정정 회로는 에러 정정 가능한 범위 내에서 에러를 정정하여 출력한다.
한편, 에러 정정 회로로 제공된 코드워드의 비트들 중 "1" 또는 "0"의 값을 갖는 비트들의 수를 카운트한다(S16). 일예로서, 상기 코드워드의 비트들 중 "0"의 값을 갖는 비트들의 수를 카운트한다. 상기 카운트된 결과는 소정의 임계값과 비교된다(S17). 상기 비교 결과에 따라서 상기 코드워드에 대응하는 페이지가 프리 페이지인지를 검출한다. 만약 임계값이 "1"로 설정되고, 상기 코드워드의 비트들 중 "0"의 값을 갖는 비트의 개수가 1 이하라면 상기 코드워드에 대응하는 페이지는 프리 페이지인 것으로 검출하며, 이에 따른 검출 결과를 리포트한다(S18). 반대로, 상기 코드워드의 비트들 중 "0"의 값을 갖는 비트의 개수가 2 이상이면, 상기 코드워드에 대응하는 페이지는 프리 페이지가 아닌 것으로 검출한다. 이와 같은 검출 결과 또한 리포트할 수 있다.
본 발명은 도면에 도시된 실시예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 다른 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의하여 정해져야 할 것이다.
도 1은 본 발명의 일실시예에 따른 플래시 메모리 시스템을 나타내는 블록도이다.
도 2는 도 1의 에러 정정 회로를 자세히 나타내는 블록도이다.
도 3a,b는 일반적인 유한 필드 상에서의 덧셈 연산 및 곱셈 연산을 나타내는 표이다.
도 3c는 본 발명의 일실시예에 따른 유한 필드 상에서의 덧셈 연산 및 곱셈 연산을 나타내는 표이다.
도 4a는 도 2의 ECC 디코더 내에 구비되는 덧셈 연산기를 나타내는 회로도이다.
도 4b는 도 2의 ECC 인코더 내에 구비되는 곱셈 연산기를 나타내는 회로도이다.
도 5는 도 2의 ECC 인코더에 구비되는 나눗셈 연산기의 일예를 나타내는 회로도이다.
도 6은 본 발명의 일실시예에 따른 에러 정정 회로의 동작 방법을 나타내는 플로우차트이다.
* 도면의 주요부분에 대한 부호의 설명 *
100: 플래시 메모리 시스템
110: 메모리부
120: 페이지 버퍼 블록
130: 에러 정정 회로
140: 입출력 버퍼
150: 컨트롤러

Claims (23)

  1. 메인 데이터를 저장하는 메인 셀 및 패리티 데이터를 저장하는 패리티 셀을 포함하는 메모리부; 및
    상기 저장된 메인 데이터 및 패리티 데이터를 포함하는 코드워드를 수신하고, 상기 코드워드에 대한 유한 필드(finite field) 상에서의 연산을 수행함으로써 상기 코드워드에 대한 에러 정정을 수행하며, 상기 메모리부의 소거 상태에 대응하는 코드워드(codeword)를 상기 유한 필드의 원소로서 포함하는 에러 정정 회로(Error Correction Circuit);를 구비하는 것을 특징으로 하는 플래시 메모리 시스템.
  2. 제1항에 있어서,
    상기 소거 상태에 대응하는 코드워드는, 상기 유한 필드 상의 연산에서 덧셈에 대한 항등원으로 동작하는 것을 특징으로 하는 플래시 메모리 시스템.
  3. 제2항에 있어서,
    상기 소거 상태에 대응하는 코드워드는 모든 비트의 값이 "1" 에 해당하는 값을 갖는 것을 특징으로 하는 플래시 메모리 시스템.
  4. 제1항에 있어서, 상기 에러 정정 회로는,
    상기 소거 상태에 대응하는 코드워드가 상기 유한 필드 상의 연산에서 덧셈에 대한 항등원으로 동작하도록, 배타적 반전 논리 합(XNOR) 연산을 수행하는 덧셈 연산기를 구비하는 것을 특징으로 하는 플래시 메모리 시스템.
  5. 제4항에 있어서, 상기 덧셈 연산기는,
    피 연산자들의 논리 상태를 반전시키기 위한 제1 인버터;
    상기 제1 인버터를 통과한 피 연산자들에 대해 배타적 논리 합 연산을 수행하는 XOR 연산기; 및
    상기 XOR 연산기의 출력을 반전시켜 출력하는 제2 인버터를 구비하는 것을 특징으로 하는 플래시 메모리 시스템.
  6. 제4항에 있어서, 상기 에러 정정 회로는,
    배타적 반전 논리 합(XNOR) 연산 및 논리합(OR) 연산 중 적어도 하나를 수행함에 의하여 상기 유한 필드 상에서 곱셈 연산을 수행하는 곱셈 연산기를 더 구비하는 것을 특징으로 하는 플래시 메모리 시스템.
  7. 제6항에 있어서, 상기 곱셈 연산기는,
    피 연산자들의 논리 상태를 반전시키기 위한 제3 인버터;
    상기 제3 인버터를 통과한 피 연산자들에 대해 배타적 논리 합(XOR) 연산 및 논리곱(AND) 연산을 수행하는 연산부; 및
    상기 연산부의 출력을 반전시켜 출력하는 제4 인버터를 구비하는 것을 특징으로 하는 플래시 메모리 시스템.
  8. 제1항에 있어서,
    상기 에러 정정 회로는, 입력되는 코드들의 에러 정정을 위한 ECC 디코더를 구비하고,
    상기 ECC 디코더는,
    상기 수신된 코드워드의 비트들 중 "1" 또는 "0"의 값을 갖는 비트들의 수를 카운트하고, 카운트된 값을 임계값과 비교한 결과에 따라 해당 페이지가 프리 페이지(Free Page)인지를 나타내는 정보를 발생하는 프리 페이지 검출부를 구비하는 것을 특징으로 하는 플래시 메모리 시스템.
  9. 제8항에 있어서, 상기 프리 페이지 검출부는,
    상기 코드워드의 비트들 중 "0"의 값을 갖는 비트의 수가 상기 임계값 이하인 경우, 상기 해당 페이지가 프리 페이지임을 나타내는 정보를 발생하는 것을 특징으로 하는 플래시 메모리 시스템.
  10. 제9항에 있어서, 상기 ECC 디코더는,
    상기 수신된 코드워드의 에러를 검출하는 에러 검출부; 및
    상기 에러 검출 결과에 기반하여 상기 코드워드의 에러를 정정하는 에러 정 정부를 더 구비하는 것을 특징으로 하는 플래시 메모리 시스템.
  11. 제1항에 있어서,
    상기 에러 정정 회로는, 외부로부터 제공되는 메인 데이터를 입력받아 소정의 다항식(polynomial)에 의한 나눗셈 동작에 기반하여 패리티 데이터를 발생하는 ECC 인코더를 더 구비하고,
    상기 ECC 인코더는 적어도 하나의 레지스터 및 상기 레지스터의 출력에 대한 덧셈 연산을 수행하기 위한 적어도 하나의 덧셈 연산기를 구비하고, 상기 덧셈 연산기는 배타적 반전 논리 합(XNOR) 연산을 수행하는 것을 특징으로 하는 플래시 메모리 시스템.
  12. 제11항에 있어서,
    상기 적어도 하나의 레지스터는, 그 초기값으로서 논리 "1"의 값이 초기값으로 설정되는 것을 특징으로 하는 플래시 메모리 시스템.
  13. 외부로부터 제공되는 메인 데이터를 입력받아 소정의 다항식(polynomial)에 의한 나눗셈 동작에 기반하여 패리티 데이터를 발생하는 ECC 인코더; 및
    상기 메인 데이터와 상기 패리티 데이터를 포함하는 코드워드를 수신하고, 상기 코드워드에 대한 유한 필드(finite field) 상에서의 연산을 수행함으로써 상기 코드워드에 대한 에러 정정을 수행하는 ECC 디코더를 구비하며,
    모든 비트의 값이 "1" 에 해당하는 값을 갖는 코드워드를 상기 유한 필드의 원소로서 포함하는 것을 특징으로 하는 에러 정정 회로(Error Correction Circuit).
  14. 제13항에 있어서,
    상기 모든 비트의 값이 "1" 에 해당하는 값을 갖는 코드워드는, 상기 유한 필드 상의 연산에서 덧셈에 대한 항등원으로 동작하는 것을 특징으로 하는 에러 정정 회로.
  15. 제13항에 있어서,
    상기 ECC 인코더 및 ECC 디코더 각각은 덧셈 연산기 및 곱셈 연산기 중 적어도 하나를 구비하며,
    상기 덧셈 연산기는 상기 유한 필드 상에서 배타적 반전 논리 합(XNOR) 연산을 수행하고, 상기 곱셈 연산기는 상기 유한 필드 상에서 논리합(OR) 연산 및 배타적 반전 논리 합(XNOR) 연산 중 적어도 하나를 수행하는 것을 특징으로 하는 에러 정정 회로.
  16. 제13항에 있어서, 상기 ECC 디코더는,
    상기 수신된 코드워드의 에러를 검출하는 에러 검출부; 및
    상기 에러 검출 결과에 기반하여 상기 코드워드의 에러를 정정하는 에러 정 정부를 구비하며,
    상기 모든 비트의 값이 "1" 에 해당하는 값을 갖는 코드워드에 에러가 발생한 경우, 에러 정정 가능 범위 내에서 상기 코드워드에 대한 에러를 정정하여 출력하는 것을 특징으로 하는 에러 정정 회로.
  17. 제16항에 있어서, 상기 ECC 디코더는,
    상기 수신된 코드워드에 대하여 "1" 또는 "0"의 값을 갖는 비트들의 수를 카운트하고, 카운트된 값을 임계값과 비교한 결과에 따라 상기 코드워드가 프리 페이지에 대응하는 값을 갖는지를 검출하는 프리 페이지 검출부를 더 구비하는 것을 특징으로 하는 에러 정정 회로.
  18. 제13항에 있어서, 상기 ECC 인코더는,
    적어도 하나의 레지스터 및 상기 레지스터의 출력에 대한 덧셈 연산을 수행하기 위한 적어도 하나의 덧셈기를 구비하고, 상기 덧셈기는 배타적 반전 논리 합(XNOR) 연산을 수행하는 것을 특징으로 하는 에러 정정 회로.
  19. 플래시 메모리에 구비되는 에러 정정 회로(Error Correction Circuit)의 동작 방법에 있어서,
    메인 데이터 및 이에 대응하는 패리티 데이터를 포함하는 코드워드를 독출하는 단계;
    상기 코드워드에 대한 유한 필드 상에서의 연산을 수행하는 단계; 및
    상기 연산 수행 결과에 기반하여 상기 코드워드에 대한 에러 검출 및 정정을 수행하는 단계;를 구비하며,
    상기 플래시 메모리의 소거 상태에 대응하는 제1 코드워드를 상기 유한 필드의 원소로서 포함함에 의하여, 상기 제1 코드워드에 대한 에러 검출 결과에 기반하여 상기 제1 코드워드의 에러를 정정하여 출력하는 것을 특징으로 하는 에러 정정 회로의 동작 방법.
  20. 제19항에 있어서,
    상기 연산을 수행하는 단계는 유한 필드 상에서의 덧셈 연산 및 곱셈 연산 중 적어도 하나를 포함하며,
    상기 덧셈 연산은 배타적 반전 논리 합(XNOR) 연산을 수행하고, 상기 곱셈 연산은 배타적 반전 논리 합(XNOR) 연산 및 논리합(OR) 연산 중 적어도 하나를 수행하는 것을 특징으로 하는 에러 정정 회로의 동작 방법.
  21. 제20항에 있어서,
    상기 수신된 코드워드의 비트들 중 "1" 또는 "0"의 값을 갖는 비트들의 수를 카운트하고, 카운트된 값을 임계값과 비교한 결과에 따라 상기 수신된 코드워드가 상기 제1 코드워드에 해당하는지를 검출하며, 상기 검출 결과에 기반하여 상기 코드워드를 제공한 페이지가 프리 페이지(Free Page)인지를 나타내는 정보를 발생하 는 단계를 더 구비하는 것을 특징으로 하는 에러 정정 회로의 동작 방법.
  22. 제19항에 있어서,
    외부로부터 제공되는 상기 메인 데이터를 입력받아 소정의 다항식(polynomial)에 의한 나눗셈 동작에 기반하여 상기 패리티 데이터를 발생하는 단계를 더 구비하며,
    상기 제산 동작을 위하여 적어도 하나의 레지스터의 셋팅 동작 및 상기 적어도 하나의 레지스터의 출력에 기반한 덧셈 연산이 수행되며, 상기 덧셈 연산으로서 배타적 반전 논리 합(XNOR) 연산을 수행되는 것을 특징으로 하는 에러 정정 회로의 동작 방법.
  23. 제22항에 있어서,
    상기 적어도 하나의 레지스터는, 그 초기값으로서 논리 "1"의 값이 초기값으로 설정되는 것을 특징으로 하는 에러 정정 회로의 동작 방법.
KR20080090491A 2008-09-12 2008-09-12 에러 정정 회로, 에러 정정 회로를 구비하는 플래시 메모리시스템 및 에러 정정 회로의 동작 방법 KR101486424B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR20080090491A KR101486424B1 (ko) 2008-09-12 2008-09-12 에러 정정 회로, 에러 정정 회로를 구비하는 플래시 메모리시스템 및 에러 정정 회로의 동작 방법
US12/556,822 US8332727B2 (en) 2008-09-12 2009-09-10 Error correction circuit, flash memory system including the error correction circuit, and operating method of the error correction circuit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR20080090491A KR101486424B1 (ko) 2008-09-12 2008-09-12 에러 정정 회로, 에러 정정 회로를 구비하는 플래시 메모리시스템 및 에러 정정 회로의 동작 방법

Publications (2)

Publication Number Publication Date
KR20100031403A true KR20100031403A (ko) 2010-03-22
KR101486424B1 KR101486424B1 (ko) 2015-01-26

Family

ID=42008309

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20080090491A KR101486424B1 (ko) 2008-09-12 2008-09-12 에러 정정 회로, 에러 정정 회로를 구비하는 플래시 메모리시스템 및 에러 정정 회로의 동작 방법

Country Status (2)

Country Link
US (1) US8332727B2 (ko)
KR (1) KR101486424B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013183827A1 (ko) * 2012-06-05 2013-12-12 한국과학기술원 간섭 채널 환경에서의 오류 정정 방법 및 회로, 이를 이용한 플래시 메모리 장치
KR20140139538A (ko) * 2012-03-15 2014-12-05 마이크론 테크놀로지, 인크. 메모리 디바이스들에 대한 에러 보호

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8351290B1 (en) 2008-09-12 2013-01-08 Marvell International Ltd. Erased page detection
US8549384B1 (en) * 2009-06-26 2013-10-01 Marvell International Ltd. Method and apparatus for determining, based on an error correction code, one or more locations to store data in a flash memory
KR101906225B1 (ko) * 2011-11-30 2018-12-10 삼성전자 주식회사 복호장치와, 복호장치의 암호문 복호화 방법
TWI533311B (zh) * 2013-07-17 2016-05-11 慧榮科技股份有限公司 快閃記憶體裝置及其運作方法
US20230125560A1 (en) * 2015-12-20 2023-04-27 Peter Lablans Cryptographic Computer Machines with Novel Switching Devices
US11227652B2 (en) 2020-03-17 2022-01-18 SK Hynix Inc. Memory device and method of operating the same
TWI748507B (zh) * 2020-06-08 2021-12-01 瑞昱半導體股份有限公司 資料存取系統及操作資料存取系統的方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5812564A (en) * 1995-05-08 1998-09-22 Western Digital Corporation Disk drive with embedded finite field processor for error correction
US6986097B1 (en) * 2002-02-21 2006-01-10 Ciena Corporation Method and apparatus for generating parity bits in a forward error correction (FEC) system
US7113968B1 (en) * 2002-02-21 2006-09-26 Ciena Corporation Method and apparatus for efficiently performing Galois field multiplication
JP2004234545A (ja) * 2003-01-31 2004-08-19 Toshiba Corp 制御回路及びメモリコントローラ
US7263649B2 (en) 2004-08-09 2007-08-28 Phison Electronics Corporation Converting circuit for preventing wrong error correction codes from occurring due to an error correction rule during data reading operation
US7949929B2 (en) * 2004-08-09 2011-05-24 Phison Electronics Corp. Controller and storage device having the same
US7493457B2 (en) * 2004-11-08 2009-02-17 Sandisk Il. Ltd States encoding in multi-bit flash cells for optimizing error rate
KR100643288B1 (ko) 2004-11-16 2006-11-10 삼성전자주식회사 플래시 메모리의 데이터 처리 장치 및 방법
US7437653B2 (en) * 2004-12-22 2008-10-14 Sandisk Corporation Erased sector detection mechanisms

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140139538A (ko) * 2012-03-15 2014-12-05 마이크론 테크놀로지, 인크. 메모리 디바이스들에 대한 에러 보호
US9361181B2 (en) 2012-03-15 2016-06-07 Micron Technology, Inc. Error protection for memory devices
WO2013183827A1 (ko) * 2012-06-05 2013-12-12 한국과학기술원 간섭 채널 환경에서의 오류 정정 방법 및 회로, 이를 이용한 플래시 메모리 장치

Also Published As

Publication number Publication date
KR101486424B1 (ko) 2015-01-26
US20100070827A1 (en) 2010-03-18
US8332727B2 (en) 2012-12-11

Similar Documents

Publication Publication Date Title
US8332727B2 (en) Error correction circuit, flash memory system including the error correction circuit, and operating method of the error correction circuit
US9646716B2 (en) Circuit arrangement and method with modified error syndrome for error detection of permanent errors in memories
US7437600B2 (en) Method of data writing to and data reading from storage device and data storage system
US8145977B2 (en) Methods and apparatus for providing error correction to unwritten pages and for identifying unwritten pages in flash memory
US8464137B2 (en) Probabilistic multi-tier error correction in not-and (NAND) flash memory
US9223648B2 (en) Memory storage device, memory controller thereof, and method for processing data thereof
US9146809B2 (en) ECC method for double pattern flash memory
JP6540703B2 (ja) メモリコントローラおよびメモリコントローラの制御方法
CN113064547B (zh) 有局部顺序信息的校验矩阵的保护的数据存取方法及设备
KR102506830B1 (ko) 집적 회로 및 그 동작 방법
US8738989B2 (en) Method and apparatus for detecting free page and a method and apparatus for decoding error correction code using the method and apparatus for detecting free page
US20170186500A1 (en) Memory circuit defect correction
US10942803B2 (en) Method for performing data processing for error handling in memory device, associated memory device and controller thereof, and associated electronic device
US20160364293A1 (en) Apparatuses and methods for encoding using error protection codes
CN104681095A (zh) 储存装置及其操作方法
JP2020150515A (ja) 誤り訂正回路及びメモリシステム
GB2455212A (en) Error detection in processor status register files
KR20230132697A (ko) 일반 연결 코드 코드워드를 디코딩하는 장치, 저장 시스템 및 그 제어 방법
RU2297032C2 (ru) Самокорректирующееся запоминающее устройство
CN111427717A (zh) 用于在存储器系统中编码和解码数据的方法和装置
CN112540866A (zh) 存储器装置及其数据存取方法
KR20040002143A (ko) 플래쉬 메모리 컨트롤러
JP2019028952A (ja) 記憶装置
JPH08272701A (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