KR100845529B1 - 플래시 메모리 장치의 이씨씨 제어기 및 그것을 포함한메모리 시스템 - Google Patents

플래시 메모리 장치의 이씨씨 제어기 및 그것을 포함한메모리 시스템 Download PDF

Info

Publication number
KR100845529B1
KR100845529B1 KR1020070000732A KR20070000732A KR100845529B1 KR 100845529 B1 KR100845529 B1 KR 100845529B1 KR 1020070000732 A KR1020070000732 A KR 1020070000732A KR 20070000732 A KR20070000732 A KR 20070000732A KR 100845529 B1 KR100845529 B1 KR 100845529B1
Authority
KR
South Korea
Prior art keywords
data
ecc
flash memory
memory device
stored
Prior art date
Application number
KR1020070000732A
Other languages
English (en)
Other versions
KR20080064029A (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 KR1020070000732A priority Critical patent/KR100845529B1/ko
Priority to US11/785,719 priority patent/US8112689B2/en
Priority to JP2007339977A priority patent/JP2008165805A/ja
Priority to DE102008003113.5A priority patent/DE102008003113B4/de
Priority to CN2008100920056A priority patent/CN101256842B/zh
Publication of KR20080064029A publication Critical patent/KR20080064029A/ko
Application granted granted Critical
Publication of KR100845529B1 publication Critical patent/KR100845529B1/ko
Priority to US13/241,343 priority patent/US8140935B2/en

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/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2945Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using at least three error correction 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/1072Adding 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 multilevel memories
    • 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
    • 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/19Single error correction without using particular properties of the cyclic codes, e.g. Hamming codes, extended or generalised Hamming codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
    • 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/09Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
    • 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/136Reed-Muller [RM] codes
    • 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/1505Golay Codes
    • 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/1515Reed-Solomon codes
    • 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/152Bose-Chaudhuri-Hocquenghem [BCH] codes

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Probability & Statistics with Applications (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Algebra (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)

Abstract

여기에는 M-비트 데이터(M은 2 또는 그 보다 큰 양의 정수)를 저장하는 플래시 메모리 장치의 이씨씨 제어기가 제공되며, 이씨씨 제어기는 제 1 에러 정정 방식에 따라 상기 플래시 메모리 장치에 저장될 프로그램 데이터로부터 제 1 ECC 데이터를 생성하도록 구성된 제 1 ECC 블록과; 그리고 제 2 에러 정정 방식에 따라 상기 제 1 ECC 블록으로부터 출력되는 제 1 ECC 데이터 및 상기 프로그램 데이터로부터 제 2 ECC 데이터를 생성하도록 구성된 제 2 ECC 블록을 포함하며, 상기 프로그램 데이터, 상기 제 1 ECC 데이터, 그리고 상기 제 2 ECC 데이터는 상기 플래시 메모리 장치에 저장된다.

Description

플래시 메모리 장치의 이씨씨 제어기 및 그것을 포함한 메모리 시스템{ECC CONTROLLER FOR USE IN FLASH MEMORY DEVICE AND MEMORY SYSTEM INCLUDING THE SAME}
도 1은 1-비트 데이터를 저장하는 일반적인 플래시 메모리 셀의 문턱 전압 분포들을 보여주는 도면이다.
도 2는 2-비트 데이터를 저장하는 일반적인 플래시 메모리 셀의 문턱 전압 분포들을 보여주는 도면이다.
도 3은 3-비트 데이터를 저장하는 일반적인 플래시 메모리 셀의 문턱 전압 분포들을 보여주는 도면이다.
도 4는 4-비트 데이터를 저장하는 일반적인 플래시 메모리 셀의 문턱 전압 분포들을 보여주는 도면이다.
도 5는 본 발명에 따른 메모리 시스템을 개략적으로 보여주는 블록도이다.
도 6은 도 5에 도시된 ECC 제어기를 개략적으로 보여주는 블록도이다.
도 7은 도 6에 도시된 ECC 제어기를 통해 처리되는 데이터의 변화를 보여주는 도면이다.
도 8은 본 발명의 다른 실시예에 따른 ECC 제어기를 개략적으로 보여주는 블록도이다.
* 도면의 주요 부분에 대한 부호 설명 *
100 : 플래시 메모리 장치 200 : 메모리 제어기
210 : 호스트 인터페이스 220 : 플래시 인터페이스
230 : 프로세싱 유니트 240 : ECC 제어기
242 : 제 1 ECC 블록 244 : 제 2 ECC 블록
본 발명은 데이터 저장 장치에 관한 것으로, 좀 더 구체적으로는 플래시 메모리 장치에 저장된 멀티-비트 데이터의 에러를 검출 및 정정하는 기술에 관한 것이다.
플래시 메모리 장치는 메모리 칩 안에 정보를 유지하기 위해 전력이 필요없는 비휘발성 메모리 장치이다. 게다가, 비록 PC에서 메인 메모리로 사용되는 DRAM만큼 빠르지는 않지만, 플래시 메모리 장치는 읽기 속도가 빠르며 하드디스크 보다 충격에 강하다. 이러한 특징으로 인해 배터리로 동작하는 디바이스에서 저장 장치로서 많이 사용되고 있다. 플래시 메모리 장치의 또다른 매력은 강한 압력이나 끊는 물에 견딜 만큼, 물리적 수단으로 거의 파괴되지 않는다는 점이다.
플래시 메모리 장치는 전기적으로 데이터를 지우고 재기록이 가능한 비휘발성 컴퓨터 기억 장치를 말한다. EEPROM과 다르게, 플래시 메모리 장치는 블록 단위로 지우고 쓰기가 가능하다. 플래시 메모리 장치는 EEPROM보다 비용이 덜 들기 때 문에 대용량의 비휘발성, 고체상태(solid-state) 스토리지가 필요한 경우 주로 사용된다. 대표적인 활용 예로 디지털 음악 재생기, 디지털 카메라, 핸드폰을 들 수 있다. 일반적인 데이터를 저장과 컴퓨터간에 데이터를 옮기는 용도로 USB 드라이브를 많이 사용하는데, 이때도 플래시 메모리 장치가 사용되고 있다.
플래시 메모리 장치는 전통적으로 비트 정보를 저장하는 셀이라 부르는 플로팅 게이트 트랜지스터들(floating gate transistors)로 구성된 어레이에 정보를 저장한다. 멀티-레벨 셀(MLC) 장치로 불리는 보다 새로운 플래시 메모리 장치는 셀의 플로팅 게이트에 축적되는 전기적인 전하의 양을 제어함으로써 하나의 셀에 1-비트 이상을 저장할 수 있다. 설명의 편의상, 하나의 메모리 셀에 1-비트 데이터를 저장하는 플래시 메모리 장치를 SLC 플래시 메모리 장치라 칭하고, 하나의 메모리 셀에 M-비트 데이터(M은 2 또는 그 보다 큰 양의 정수)를 저장하는 플래시 메모리 장치를 MLC 플래시 메모리 장치라 칭한다.
SLC 플래시 메모리 장치의 경우, 하나의 메모리 셀에 저장된 데이터는 데이터 '1'의 문턱 전압 분포와 데이터 '0'의 문턱 전압 분포 사이의 적절한 기준 전압을 사용함으로써 판별될 수 있다. 예를 들면, 기준 전압이 메모리 셀의 제어 게이트에 인가된 상태에서, 메모리 셀을 통해 전류가 흐르는 지의 여부에 따라 데이터 '1' 또는 '0'를 판별하는 것이 가능하다. 비록 판별 기술이 다르지만, 기본적으로, MLC 플래시 메모리 장치에도 그러한 방식이 적용될 것이다. 도 1에 도시된 바와 같이, 하나의 메모리 셀에 1-비트 데이터를 저장하는 데 2개의 문턱 전압 분포들이 사용될 것이다. 이에 반해서, 도 2 내지 도 4에 도시된 바와 같이, 하나의 메모리 셀에 M-비트 데이터를 저장하는 데 2M개의 문턱 전압 분포들이 사용될 것이다. 예를 들면, 하나의 메모리 셀에 2-비트 데이터를 저장하는 데 4개의 문턱 전압 분포들이 사용되고, 하나의 메모리 셀에 3-비트 데이터를 저장하는 데 8개의 문턱 전압 분포들이 사용되며, 하나의 메모리 셀에 4-비트 데이터를 저장하는 데 16개의 문턱 전압 분포들이 사용될 것이다. 하나의 메모리 셀에 저장된 데이터의 비트 수가 증가함에 따라 더 많은 문턱 전압 분포들이 사용될 것이다.
하지만, 잘 알려진 바와 같이, 메모리 셀의 문턱 전압을 높이는 데 한계가 있다. 다시 말해서, 메모리 셀의 문턱 전압은 정해진 전압 범위 내에 분포되어야 한다. 이는 하나의 메모리 셀에 저장되는 데이터의 비트 수에 관계없이 문턱 전압 분포들이 정해진 전압 범위 내에서 분포되어야 함을 의미한다. 그러한 까닭에, 도 2 내지 도 4에 도시된 바와 같이, 인접한 문턱 전압 분포들이 중첩될 수 있다. 이러한 현상은 하나의 메모리 셀에 저장된 데이터의 비트 수가 증가함에 따라 더욱 심각해질 것이다. 또한, 그러한 현상은 전하 손실, 시간의 경과, 온도의 증가, 인접한 셀의 프로그래밍시 생기는 커플링, 인접한 셀의 읽기, 셀 결함 등과 같은 다양한 원인들로 인해 더욱 더 심각해질 것이다. 인접한 문턱 전압 분포들이 중첩됨에 따라, 읽혀진 데이터는 많은 에러 비트들(예를 들면, 수개의 에러 비트들 또는 수십개의 에러 비트들)을 포함할 것이다. 즉, 이 분야에 잘 알려진 에러 정정 방식을 이용하여 읽혀진 데이터에 포함된 에러 비트들을 검출 및 정정하는 것이 불가능하다.
따라서, 멀티-비트 데이터를 저장하는 플래시 메모리 장치에서 읽혀진 데이터에 대한 멀티-비트 에러를 검출 및 정정할 수 있는 새로운 기술이 절실히 요구되고 있다.
본 발명의 목적은 플래시 메모리 장치로부터 읽혀진 멀티-비트 데이터의 신뢰성을 향상시킬 수 있는 에러 정정 스킴을 제공하는 것이다.
본 발명의 예시적인 실시예들은 M-비트 데이터(M은 2 또는 그 보다 큰 양의 정수)를 저장하는 플래시 메모리 장치의 이씨씨 제어기를 제공하며, 이 이씨씨 제어기는 제 1 에러 정정 방식에 따라 상기 플래시 메모리 장치에 저장될 프로그램 데이터로부터 제 1 ECC 데이터를 생성하도록 구성된 제 1 ECC 블록과; 그리고 제 2 에러 정정 방식에 따라 상기 제 1 ECC 블록으로부터 출력되는 제 1 ECC 데이터 및 상기 프로그램 데이터로부터 제 2 ECC 데이터를 생성하도록 구성된 제 2 ECC 블록을 포함하며, 상기 프로그램 데이터, 상기 제 1 ECC 데이터, 그리고 상기 제 2 ECC 데이터는 상기 플래시 메모리 장치에 저장된다.
예시적인 실시예에 있어서, 상기 제 2 ECC 블록은 상기 플래시 메모리 장치로부터 읽혀진 독출 데이터 에 포함된 제 2 ECC 데이터를 이용하여 상기 독출 데이터를 디코딩하도록 구성되며, 상기 제 1 ECC 블록은 상기 제 2 ECC 블록으로부터 출력되는 상기 독출 데이터에 포함된 제 1 ECC 데이터를 이용하여 상기 독출 데이터의 에러를 정정하도록 구성된다.
예시적인 실시예에 있어서, 상기 제 1 에러 정정 방식은 리니어 블록 방식이고, 상기 제 2 에러 정정 방식은 최대 가능도(ML) 방식이다.
예시적인 실시예에 있어서, 상기 제 2 ECC 블록은 상기 프로그램 데이터 및 상기 제 1 ECC 데이터에 패리티 정보를 추가하여 상기 제 2 ECC 데이터를 생성한다.
예시적인 실시예에 있어서, 상기 플래시 메모리 장치는 낸드 플래시 메모리 장치, 노어 플래시 메모리 장치, PRAM, 그리고 MRAM 중 어느 하나이다.
예시적인 실시예에 있어서, 상기 플래시 메모리 장치는 상기 프로그램 데이터가 저장되는 제 1 저장 영역과 상기 제 1 ECC 데이터와 상기 제 2 ECC 데이터가 저장되는 제 2 저장 영역을 포함한다.
예시적인 실시예에 있어서, 상기 제 1 저장 영역의 메모리 셀들 각각은 M-비트 데이터를 저장하고, 상기 제 2 저장 영역의 메모리 셀들 각각은 1-비트 데이터를 저장한다.
본 발명의 다른 예시적인 실시예들은 M-비트 데이터(M은 2 또는 그 보다 큰 양의 정수)를 저장하는 플래시 메모리 장치와; 그리고 상기 플래시 메모리 장치를 제어하도록 구성된 메모리 제어기를 포함하며, 상기 메모리 제어기는 리니어 블록 방식으로 상기 플래시 메모리 장치에 저장될 데이터를 엔코딩하도록 그리고 최대 가능도 방식으로 상기 리니어 블록 방식으로 엔코딩된 데이터를 엔코딩하도록 구성된 이씨씨 제어기를 포함하며, 상기 이씨씨 제어기에 의해서 엔코딩된 데이터는 상기 플래시 메모리 장치에 저장되는 메모리 시스템을 제공한다.
예시적인 실시예에 있어서, 상기 이씨씨 제어기는 상기 리니어 블록 방식에 따라 상기 플래시 메모리 장치에 저장될 프로그램 데이터로부터 제 1 ECC 데이터를 생성하도록 구성된 제 1 ECC 블록과; 그리고 상기 최대 가능도 방식에 따라 상기 제 1 ECC 블록으로부터 출력되는 제 1 ECC 데이터 및 상기 프로그램 데이터로부터 제 2 ECC 데이터를 생성하도록 구성된 제 2 ECC 블록을 포함하며, 상기 프로그램 데이터, 상기 제 1 ECC 데이터, 그리고 상기 제 2 ECC 데이터는 상기 플래시 메모리 장치에 동시에 저장된다.
예시적인 실시예에 있어서, 상기 제 2 ECC 블록은 상기 플래시 메모리 장치로부터 읽혀진 독출 데이터 에 포함된 제 2 ECC 데이터를 이용하여 상기 독출 데이터를 디코딩하도록 구성되며, 상기 제 1 ECC 블록은 상기 제 2 ECC 블록으로부터 출력되는 상기 독출 데이터에 포함된 제 1 ECC 데이터를 이용하여 상기 독출 데이터의 에러를 정정하도록 구성된다.
예시적인 실시예에 있어서, 상기 제 2 ECC 블록은 상기 프로그램 데이터 및 상기 제 1 ECC 데이터에 패리티 정보를 추가하여 상기 제 2 ECC 데이터를 생성한다.
예시적인 실시예에 있어서, 상기 플래시 메모리 장치는 상기 프로그램 데이터가 저장되는 제 1 저장 영역과 상기 제 1 ECC 데이터와 상기 제 2 ECC 데이터가 저장되는 제 2 저장 영역을 포함한다.
예시적인 실시예에 있어서, 상기 제 1 저장 영역의 메모리 셀들 각각은 M-비트 데이터를 저장하고, 상기 제 2 저장 영역의 메모리 셀들 각각은 1-비트 데이터 를 저장한다.
예시적인 실시예에 있어서, 상기 메모리 제어기는 컴퓨팅 시스템의 메인 모드에 장착되도록 구성된다.
예시적인 실시예에 있어서, 상기 플래시 메모리 장치와 상기 메모리 제어기는 플래시 메모리 카드를 구성한다.
본 발명의 또 다른 예시적인 실시예들은 M-비트 데이터(M은 2 또는 그 보다 큰 양의 정수)를 저장하는 플래시 메모리 장치와; 그리고 상기 플래시 메모리 장치를 제어하도록 구성된 메모리 제어기를 포함하며, 상기 메모리 제어기는 상기 플래시 메모리 장치에 저장될 프로그램 데이터로부터 CRC 값을 생성하여 제 1 데이터 패턴을 출력하는 제 1 ECC 블록과; 리니어 블록 방식에 따라 상기 제 1 데이터 패턴으로부터 제 1 ECC 데이터를 생성하여 제 2 데이터 패턴을 출력하는 제 2 ECC 블록과; 그리고 최대 가능도 방식에 따라 상기 제 2 데이터 패턴으로부터 제 2 ECC 데이터를 생성하여 제 3 데이터 패턴을 출력하는 제 3 ECC 블록을 포함한다.
예시적인 실시예에 있어서, 상기 제 3 ECC 블록은 상기 플래시 메모리 장치로부터 읽혀진 독출 데이터 에 포함된 제 2 ECC 데이터를 이용하여 상기 독출 데이터를 디코딩하도록 구성되고, 상기 제 2 ECC 블록은 상기 제 2 ECC 블록으로부터 출력되는 상기 독출 데이터에 포함된 제 1 ECC 데이터를 이용하여 상기 독출 데이터의 에러를 정정하도록 구성되며, 상기 제 1 ECC 블록은 상기 제 2 ECC 블록으로부터 출력되는 상기 독출 데이터에 포함된 CRC 값을 이용하여 상기 독출 데이터의 에러 여부를 검출하도록 구성된다.
예시적인 실시예에 있어서, 상기 제 3 ECC 블록은 상기 제 2 데이터 패턴에 패리티 정보를 추가하여 상기 제 2 ECC 데이터를 생성한다.
예시적인 실시예에 있어서, 상기 플래시 메모리 장치는 상기 프로그램 데이터가 저장되는 제 1 저장 영역과 상기 CRC 값, 상기 제 1 ECC 데이터, 그리고 상기 제 2 ECC 데이터가 저장되는 제 2 저장 영역을 포함한다.
예시적인 실시예에 있어서, 상기 제 1 저장 영역의 메모리 셀들 각각은 M-비트 데이터를 저장하고, 상기 제 2 저장 영역의 메모리 셀들 각각은 1-비트 데이터를 저장한다.
본 발명의 또 다른 예시적인 실시예들은 플래시 메모리 장치에 저장되는 M-비트 데이터(M은 2 또는 그 보다 큰 양의 정수)의 에러를 정정하는 방법을 제공하며, 이 방법은 제 1 에러 정정 방식에 따라 상기 플래시 메모리 장치에 저장될 프로그램 데이터로부터 제 1 ECC 데이터를 생성하는 단계와; 그리고 제 2 에러 정정 방식에 따라 상기 제 1 ECC 블록으로부터 출력되는 제 1 ECC 데이터 및 상기 프로그램 데이터로부터 제 2 ECC 데이터를 생성하는 단계를 포함하며, 상기 프로그램 데이터, 상기 제 1 ECC 데이터, 그리고 상기 제 2 ECC 데이터는 상기 플래시 메모리 장치에 동시에 저장된다.
예시적인 실시예에 있어서, 이 방법은 상기 플래시 메모리 장치로부터 읽혀진 독출 데이터 에 포함된 제 2 ECC 데이터를 이용하여 상기 독출 데이터를 디코딩하는 단계와; 그리고 상기 제 2 ECC 블록으로부터 출력되는 상기 독출 데이터에 포함된 제 1 ECC 데이터를 이용하여 상기 독출 데이터의 에러를 정정하는 단계를 더 포함한다.
예시적인 실시예에 있어서, 상기 제 1 에러 정정 방식은 리니어 블록 방식이고, 상기 제 2 에러 정정 방식은 최대 가능도(ML) 방식이다.
예시적인 실시예에 있어서, 상기 제 2 ECC 데이터는 상기 프로그램 데이터 및 상기 제 1 ECC 데이터에 패리티 정보를 추가함으로서 생성된다.
예시적인 실시예에 있어서, 상기 플래시 메모리 장치는 낸드 플래시 메모리 장치, 노어 플래시 메모리 장치, PRAM, 그리고 MRAM 중 어느 하나이다.
예시적인 실시예에 있어서, 상기 플래시 메모리 장치는 상기 프로그램 데이터가 저장되는 제 1 저장 영역과 상기 제 1 ECC 데이터와 상기 제 2 ECC 데이터가 저장되는 제 2 저장 영역을 포함한다.
예시적인 실시예에 있어서, 상기 제 1 저장 영역의 메모리 셀들 각각은 M-비트 데이터를 저장하고, 상기 제 2 저장 영역의 메모리 셀들 각각은 1-비트 데이터를 저장한다.
본 발명의 또 다른 예시적인 실시예들은 플래시 메모리 장치에 저장되는 M-비트 데이터(M은 2 또는 그 보다 큰 양의 정수)의 에러를 정정하는 방법을 제공하며, 이 방법은 상기 플래시 메모리 장치에 저장될 프로그램 데이터로부터 CRC 값을 생성하여 제 1 데이터 패턴을 출력하는 단계와; 리니어 블록 방식에 따라 상기 제 1 데이터 패턴으로부터 제 1 ECC 데이터를 생성하여 제 2 데이터 패턴을 출력하는 단계와; 그리고 최대 가능도 방식에 따라 상기 제 2 데이터 패턴으로부터 제 2 ECC 데이터를 생성하여 제 3 데이터 패턴을 출력하는 단계를 포함하며, 상기 프로그램 데이터, 상기 CRC 값, 상기 제 1 ECC 데이터, 그리고 상기 제 2 ECC 데이터로 구성된 상기 제 3 데이터 패턴은 상기 플래시 메모리 장치에 저장된다.
예시적인 실시예에 있어서, 이 방법은 상기 플래시 메모리 장치로부터 읽혀진 독출 데이터에 포함된 제 2 ECC 데이터를 이용하여 상기 독출 데이터를 디코딩하는 단계와; 상기 제 2 ECC 블록으로부터 출력되는 상기 독출 데이터에 포함된 제 1 ECC 데이터를 이용하여 상기 독출 데이터의 에러를 정정하는 단계와;그리고 상기 제 2 ECC 블록으로부터 출력되는 상기 독출 데이터에 포함된 CRC 값을 이용하여 상기 독출 데이터의 에러 여부를 검출하는 단계를 더 포함한다.
예시적인 실시예에 있어서, 상기 제 2 ECC 데이터는 상기 제 2 데이터 패턴에 패리티 정보를 추가함으로써 생성된다.
예시적인 실시예에 있어서, 상기 플래시 메모리 장치는 상기 프로그램 데이터가 저장되는 제 1 저장 영역과 상기 CRC 값, 상기 제 1 ECC 데이터, 그리고 상기 제 2 ECC 데이터가 저장되는 제 2 저장 영역을 포함한다.
예시적인 실시예에 있어서, 상기 제 1 저장 영역의 메모리 셀들 각각은 M-비트 데이터를 저장하고, 상기 제 2 저장 영역의 메모리 셀들 각각은 1-비트 데이터를 저장한다.
앞의 일반적인 설명 및 다음의 상세한 설명 모두 예시적이라는 것이 이해되어야 하며, 청구된 발명의 부가적인 설명이 제공되는 것으로 여겨져야 한다.
참조 부호들이 본 발명의 바람직한 실시 예들에 상세히 표시되어 있으며, 그것의 예들이 참조 도면들에 표시되어 있다. 가능한 어떤 경우에도, 동일한 참조 번 호들이 동일한 또는 유사한 부분을 참조하기 위해서 설명 및 도면들에 사용된다.
아래에서, 불 휘발성 메모리 장치로서 플래시 메모리 장치가 본 발명의 특징 및 기능을 설명하기 위한 한 예로서 사용된다. 하지만, 이 기술 분야에 정통한 사람은 여기에 기재된 내용에 따라 본 발명의 다른 이점들 및 성능을 쉽게 이해할 수 있을 것이다. 본 발명은 다른 실시 예들을 통해 또한, 구현되거나 적용될 수 있을 것이다. 게다가, 상세한 설명은 본 발명의 범위, 기술적 사상 그리고 다른 목적으로부터 상당히 벗어나지 않고 관점 및 응용에 따라 수정되거나 변경될 수 있다.
도 5는 본 발명에 따른 메모리 시스템을 개략적으로 보여주는 블록도이다.
도 5를 참조하면, 본 발명에 따른 메모리 시스템은 플래시 메모리 장치(100)와 메모리 제어기(200)를 포함한다. 플래시 메모리 장치(100)는 메모리 제어기(200)의 제어에 따라 동작하며, 셀 당 M-비트 데이터 정보를 저장하도록 구성될 것이다. 여기서, M-비트 데이터 정보는 2-비트 데이터, 3-비트 데이터, 4-비트 데이터, 등을 포함할 것이다. 예시적인 실시예에 있어서, 플래시 메모리 장치(100)는 낸드 플래시 메모리 장치일 것이다. 하지만, 본 발명의 플래시 메모리 장치(100)가 낸드 플래시 메모리 장치에 국한되지 않음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다. 예를 들면, 본 발명의 플래시 메모리 장치(100)는 노어 플래시 메모리 장치, PRAM, MRAM, 또는 그와 같은 것과 같은 불 휘발성 메모리 장치로 구현될 것이다.
메모리 제어기(200)는 호스트(300)의 요청에 따라 플래시 메모리 장치(100)를 제어할 것이다. 메모리 제어기(200)는 호스트 인터페이스(210), 플래시 인터페 이스(220), 프로세싱 유니트(230), 그리고 ECC 제어기(240)를 포함한다. 호스트 인터페이스(210)는 호스트(300)와의 인터페이스를 제공하고, 플래시 인터페이스(220)는 플래시 메모리 장치(100)와의 인터페이스를 제공할 것이다. 프로세싱 유니트(230)는 메모리 제어기(200)의 전반적인 동작을 제어하도록 구성될 것이다. 호스트(300)와 메모리 제어기(200)는 노어, 낸드, PCI, ISO, USB, 등과 같은 다양한 인터페이스들을 통해 통신하도록 구성될 것이다. 플래시 메모리 장치(100)와 메모리 제어기(200)는 잘 알려진 낸드/노어 인터페이스 방식을 통해 통신하도록 구성될 것이다. 플래시 메모리(100)와 메모리 제어기(200)는 플래시 메모리 카드, 스마트 카드, 등과 같은 메모리 카드를 구성할 것이다. 또는, 본 발명에 따른 메모리 제어기(200)는 PC의 메인 보드 상에 직접 설치되도록 구성될 수도 있다. 또는, 본 발명에 따른 메모리 제어기(200)는 플래시 메모리 장치가 버퍼 메모리로서 사용되는 HDD의 버퍼 제어기로서 사용될 수도 있다.
계속해서 도 5를 참조하면, ECC 제어기(240)는 플래시 메모리 장치(100)에 저장될 데이터에 대한 에러 제어 코드(Error Control Code) 데이터(이하, ECC 데이터라 칭함)를 생성하도록 구성될 것이다. 여기서, ECC 데이터는 에러 검출 그리고/또는 정정을 위해서 사용될 것이다. ECC 제어기(240)는 플래시 메모리 장치(100)로부터 읽혀진 데이터에 대한 에러를 검출 및 정정하도록 구성될 것이다. 특히, 본 발명에 따른 ECC 제어기(240)는 2단 에러 정정 스킴을 갖도록 구성될 것이다. 첫 번째 에러 정정 스킴은 플래시 메모리 장치(100)에 저장될 데이터로부터 ECC 데이터로서 리니어 블록 코드를 생성하도록 그리고 플래시 메모리 장치(100)로부터 읽 혀진 데이터 및 그에 대응하는 리니어 블록 코드를 이용하여 데이터 에러를 검출 및 정정하도록 구현될 것이다. 이후, 첫번째 에러 정정 스킴을 리니어 블록 코딩 방법(linear block coding method)이라 칭한다. 두 번째 에러 정정 스킴은 최대 가능도(Maximum Likelihood: ML) 방법을 이용하여 구현될 것이다. 최대 가능도 방법(이하, ML 방법이라 칭함)은 에러가 낮은 확률로 데이터를 읽기 위한 엔코딩 및 디코딩 방법이다.
본 발명에 따른 ECC 제어기(240)는 리니어 블록 코딩 방법을 수행하도록 구성된 제 1 ECC 블록(242)과 ML 방법을 수행하도록 구성된 제 2 ECC 블록(244)을 포함할 것이다. 제 1 ECC 블록(242)은 리니어 블록 엔코딩 방법에 따라 호스트(300)로부터 전송되는 데이터(이하, 프로그램 데이터라 칭함)로부터 제 1 ECC 데이터를 생성하도록 구성될 것이다. 제 2 ECC 블록(244)은 ML 엔코딩 방법에 따라 제 1 ECC 블록(242)으로부터 출력되는 데이터(즉, 프로그램 데이터와 제 1 ECC 데이터)로부터 제 2 ECC 데이터를 생성하도록 구성될 것이다. 제 2 ECC 블록(244)으로부터 출력되는 데이터(프로그램 데이터, 제 1 ECC 데이터, 그리고 제 2 ECC 데이터)는 플래시 인터페이스(220)를 통해 플래시 메모리 장치(100)에 저장될 것이다. 플래시 메모리 장치(100)로부터 읽혀진 데이터(프로그램 데이터, 제 1 ECC 데이터, 그리고 제 2 ECC 데이터를 포함함)는 플래시 인터페이스(220)를 통해 제 2 ECC 블록(240)으로 전달된다. 제 2 ECC 블록(240)은 ML 디코딩 방법에 따라 입력된 데이터(프로그램 데이터, 제 1 ECC 데이터, 그리고 제 2 ECC 데이터를 포함함)에 대한 에러를 검출 그리고/또는 정정하도록 구성될 것이다. 제 1 ECC 블록(220)은 리니어 블록 디코딩 방법에 따라 제 2 ECC 블록(240)으로부터 출력된 데이터(프로그램 데이터 및 제 1 ECC 데이터를 포함함)에 대한 에러를 검출 및 정정하도록 구성될 것이다. 제 1 ECC 블록(220)으로부터 출력된 데이터는 호스트 인터페이스(210)를 통해 호스트(300)로 전송될 것이다.
이상의 설명으로부터 알 수 있듯이, 본 발명에 따른 ECC 제어기(240)는 ML 방법에 따라 낮은 에러 확률로 플래시 메모리 장치(100)로부터 데이터를 읽도록 그리고 낮은 에러 확률로 읽혀진 데이터의 에러를 리니어 블록 코딩 방법에 따라 검출 및 정정하도록 구성된다. 이러한 2단 에러 정정 스킴을 통해 멀티-비트 데이터를 보다 정확하게 읽는 것이 가능하다.
도 6은 도 5에 도시된 ECC 제어기를 개략적으로 보여주는 블록도이다.
도 6을 참조하면, 본 발명에 따른 ECC 제어기(240)는 제 1 ECC 블록(242)과 제 2 ECC 블록(244)으로 구성된다. 제 1 ECC 블록(242)은 리니어 블록 코딩 방법에 따라 동작하도록 구성되며, 리니어 블록 엔코더(242a) 및 리니어 블록 디코더(242b)를 포함한다. 제 2 ECC 블록(244)은 ML 코딩 방법에 따라 동작하도록 구성되며, ML 엔코더(244a) 및 ML 디코더(244b)를 포함한다. 제 1 ECC 블록(242)의 리니어 블록 엔코더(242a)는 리니어 블록 엔코딩 방법에 따라 호스트(300)로부터 전송되는 데이터(이하, 프로그램 데이터라 칭함)로부터 제 1 ECC 데이터(ECC1)를 생성하도록 구성될 것이다. 제 2 ECC 블록(244)의 ML 엔코더(244a)는 ML 엔코딩 방법에 따라 제 1 ECC 블록(242)의 엔코더(242a)로부터 출력되는 데이터(즉, 프로그램 데이터와 제 1 ECC 데이터)(또는, 데이터 패턴)로부터 제 2 ECC 데이터(ECC2)를 생 성하도록 구성될 것이다. 제 2 ECC 블록(244)의 ML 엔코더(244a)로부터 출력되는 데이터(프로그램 데이터, 제 1 ECC 데이터, 그리고 제 2 ECC 데이터)(또는, 데이터 패턴)는 잘 알려진 방식에 따라 플래시 인터페이스(220)를 통해 플래시 메모리 장치(100)에 저장될 것이다.
플래시 메모리 장치(100)로부터 읽혀진 데이터(프로그램 데이터, 제 1 ECC 데이터, 그리고 제 2 ECC 데이터를 포함함)는 플래시 인터페이스(220)를 통해 제 2 ECC 블록(240)의 ML 디코더(244b)로 전달된다. 제 2 ECC 블록(240)의 ML 디코더(244b)는 ML 디코딩 방법에 따라 입력된 데이터(프로그램 데이터, 제 1 ECC 데이터, 그리고 제 2 ECC 데이터를 포함함)에 대한 에러를 검출 그리고 정정하도록 구성될 것이다. ML 디코더(244b)는 에러가 낮은 확률의 데이터를 검출하도록 구성된다. 이러한 경우, ML 디코더(244b)에 의해서 낮은 에러 확률을 갖는 데이터가 얻어질 것이다. 그렇게 얻어진 데이터의 에러는 부분적으로 ML 디코더(244b)에 의해서 정정될 수도 있다. 이에 반해서, 그렇게 얻어진 데이터는 에러 정정없이 출력될 수도 있다. 일차적으로 낮은 에러 확률을 갖는 데이터를 판별함으로써 읽혀진 데이터의 에러 확률이 감소될 것이다. 제 1 ECC 블록(242)의 리니어 블록 디코더(242b)는 리니어 블록 디코딩 방법에 따라 제 2 ECC 블록(240)의 ML 디코더(244b)로부터 출력된 데이터(프로그램 데이터 및 제 1 ECC 데이터를 포함함)에 대한 에러를 검출 및 정정하도록 구성될 것이다. 제 1 ECC 블록(242)의 리니어 블록 디코더(242)로부터 출력된 데이터는 호스트 인터페이스(210)를 통해 호스트(300)로 전송될 것이다.
이 실시예에 있어서, 수십 내지 수백 비트들을 정정할 수 있는 제 1 ECC 블 록(242)은 ECC 코드로서 리니어 코드를 생성하도록 구성되며, 리니어 코드의 몇몇 예들은 반복 코드(Repetition codes), 패리티 코드(Parity codes), 순환 코드(Cyclic codes), 해밍 코드(Hamming code), 고레이 코드(Golay code), RS 코드(Reed-Solomon codes), BCH(Bose, Ray-Chaudhuri, Hocquenghem) code, RM 코드(Reed-Muller codes), 등을 포함할 것이다. 제 2 ECC 블록(244)의 ML 디코더(244a)는 제 1 ECC 블록(242)의 리니어 블록 엔코더(242a)로부터 출력되는 데이터에 패리티 정보를 추가함으로써 구성될 것이다. 패리티 정보를 추가함으로써 본래의 데이터가 읽혀질 확률이 높아질 것이다. 예를 들면, 쓰여질 데이터가 '1011'이라고 가정하자. 그러한 가정에 따르면, 데이터 '1011'가 읽기 동작시 데이터 '1010'로 또는 데이터 '1100'로 읽혀질 가능성이 높을 것이다. 만약 ML 엔코더(244a)를 통해 데이터 '1011'에 패리티 정보가 추가하면, 도 7에 도시된 바와 같이, 읽기 동작시 데이터 '1010' 또는 데이터 '1100'가 읽혀질 확률은 낮아지는 반면에 읽기 동작시 데이터 '1011'가 읽혀질 확률은 높아질 것이다. 제 2 ECC 블록(244)이 ML 방법에 국한되지 않음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다. 예를 들면, 제 2 ECC 블록(244)은 U.S. Patent No. 7,023,735에 기재된 프렉션널 읽기 방식(fractional read manner)을 이용하여 구현될 수도 있다. 본 발명에 있어서, 낮은 에러 확률로 데이터를 읽고 읽혀진 데이터의 에러를 정정함으로써 본래의 멀티-비트 데이터를 정확하게 읽는 것이 가능하다.
본 발명에 따른 ECC 제어기(240)가 다양하게 변경될 수 있음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다. 예를 들면, CRC(Cyclic Redundancy Check)를 통해 호스트(300)로 전송되는 데이터에 에러가 존재하는 지의 여부를 검출하도록 ECC 제어기(240)가 구현될 수 있다. 도 8에 도시된 바와 같이, 본 발며의 다른 실시예에 따른 ECC 제어기(400)는 제 1 ECC 블록(410), 제 2 ECC 블록(420), 그리고 제 3 ECC 블록(430)를 포함할 것이다. 제 1 ECC 블록(410)은 입력 데이터로부터 CRC 값(즉, 체크섬 값)을 생성하도록 구성된 엔코더(411)와 제 2 ECC 블록(420)으로부터 출력된 데이터에 에러가 존재하는 지의 여부를 체크하도록 구성된 디코더(412)를 포함할 것이다. 제 2 ECC 블록(420)과 제 3 ECC 블록(430)은 도 6에 도시된 블록들(242, 244)에 각각 대응하며, 그것에 대한 설명은 그러므로 생략될 것이다.
본 발명에 있어서, 비록 도면에는 도시되지 않았지만, 플래시 메모리 장치(100)는 적어도 2개의 저장 영역들로 구성된 메모리 셀 어레이를 포함할 것이다. 첫 번째 저장 영역은 호스트로부터 전송된 데이터가 저장되는 영역(이하, 메인 셀 영역이라 칭함)이고, 두 번째 저장 영역은 메인 셀 영역에 저장된 데이터와 관련된 ECC 정보(ECC1+ECC2) 또는 (CRC+ECC1+ECC2)가 저장된 영역(이하, 스페어 영역이라 칭함)이다. 메인 셀 영역에 속하는 메모리 셀들 각각에는 멀티-비트 데이터가 저장되는 반면에, 스페어 영역에 속하는 메모리 셀들 각각에는 싱글-비트 데이터가 저장될 수 있다. 또는, 메인 셀 영역에 데이터 및 ECC 정보가 멀티-비트 상태로 저장될 수도 있다.
일반적으로, 멀티-비트 데이터의 에러는 비트 단위로 발생한다는 점에 유의해야 할 것이다. 즉, 인접한 문턱 전압 분포들의 교차로 인해 데이터 에러가 발생 한다. 이는 읽혀진 데이터의 에러가 전염성을 갖지 않음을 의미한다.
이상, 본 발명의 상세한 설명에서는 구체적인 실시예에 관하여 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지로 변형할 수 있다. 그러므로 본 발명의 범위는 상술한 실시예에 국한되어 정해져서는 안되며 후술하는 특허청구범위뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 한다.
상술한 바와 같이, 리니어 블록 방식과 최대 가능도 방식으로 이루어진 2단 에러 정정 스킴을 통해 멀티-비트 데이터를 저장하고 읽음으로써 본래의 멀티-비트 데이터를 정확하게 읽는 것이 가능하다.

Claims (32)

  1. M-비트 데이터(M은 2 또는 그 보다 큰 양의 정수)를 저장하는 플래시 메모리 장치의 이씨씨 제어기에 있어서:
    제 1 에러 정정 방식에 따라 상기 플래시 메모리 장치에 저장될 프로그램 데이터로부터 제 1 ECC 데이터를 생성하도록 구성된 제 1 ECC 블록과; 그리고
    제 2 에러 정정 방식에 따라 상기 제 1 ECC 블록으로부터 출력되는 제 1 ECC 데이터 및 상기 프로그램 데이터로부터 제 2 ECC 데이터를 생성하도록 구성된 제 2 ECC 블록을 포함하며, 상기 프로그램 데이터, 상기 제 1 ECC 데이터, 그리고 상기 제 2 ECC 데이터는 상기 플래시 메모리 장치에 저장되는 것을 특징으로 하는 이씨씨 제어기.
  2. 제 1 항에 있어서,
    상기 제 2 ECC 블록은 상기 플래시 메모리 장치로부터 읽혀진 독출 데이터 에 포함된 제 2 ECC 데이터를 이용하여 상기 독출 데이터를 디코딩하도록 구성되며, 상기 제 1 ECC 블록은 상기 제 2 ECC 블록으로부터 출력되는 상기 독출 데이터에 포함된 제 1 ECC 데이터를 이용하여 상기 독출 데이터의 에러를 정정하도록 구성되는 것을 특징으로 하는 이씨씨 제어기.
  3. 제 2 항에 있어서,
    상기 제 1 에러 정정 방식은 리니어 블록 방식이고, 상기 제 2 에러 정정 방식은 최대 가능도(ML) 방식인 것을 특징으로 하는 이씨씨 제어기.
  4. 제 1 항에 있어서,
    상기 제 2 ECC 블록은 상기 프로그램 데이터 및 상기 제 1 ECC 데이터에 패리티 정보를 추가하여 상기 제 2 ECC 데이터를 생성하는 것을 특징으로 하는 이씨씨 제어기.
  5. 제 1 항에 있어서,
    상기 플래시 메모리 장치는 낸드 플래시 메모리 장치, 노어 플래시 메모리 장치, PRAM, 그리고 MRAM 중 어느 하나인 것을 특징으로 하는 이씨씨 제어기.
  6. 제 1 항에 있어서,
    상기 플래시 메모리 장치는 상기 프로그램 데이터가 저장되는 제 1 저장 영역과 상기 제 1 ECC 데이터와 상기 제 2 ECC 데이터가 저장되는 제 2 저장 영역을 포함하는 것을 특징으로 하는 이씨씨 제어기.
  7. 제 6 항에 있어서,
    상기 제 1 저장 영역의 메모리 셀들 각각은 M-비트 데이터를 저장하고, 상기 제 2 저장 영역의 메모리 셀들 각각은 1-비트 데이터를 저장하는 것을 특징으로 하 는 이씨씨 제어기.
  8. M-비트 데이터(M은 2 또는 그 보다 큰 양의 정수)를 저장하는 플래시 메모리 장치와; 그리고
    상기 플래시 메모리 장치를 제어하도록 구성된 메모리 제어기를 포함하며, 상기 메모리 제어기는 리니어 블록 방식으로 상기 플래시 메모리 장치에 저장될 데이터를 엔코딩하도록 그리고 최대 가능도 방식으로 상기 리니어 블록 방식으로 엔코딩된 데이터를 엔코딩하도록 구성된 이씨씨 제어기를 포함하며, 상기 이씨씨 제어기에 의해서 엔코딩된 데이터는 상기 플래시 메모리 장치에 저장되는 메모리 시스템.
  9. 제 8 항에 있어서,
    상기 이씨씨 제어기는
    상기 리니어 블록 방식에 따라 상기 플래시 메모리 장치에 저장될 프로그램 데이터로부터 제 1 ECC 데이터를 생성하도록 구성된 제 1 ECC 블록과; 그리고
    상기 최대 가능도 방식에 따라 상기 제 1 ECC 블록으로부터 출력되는 제 1 ECC 데이터 및 상기 프로그램 데이터로부터 제 2 ECC 데이터를 생성하도록 구성된 제 2 ECC 블록을 포함하며,
    상기 프로그램 데이터, 상기 제 1 ECC 데이터, 그리고 상기 제 2 ECC 데이터는 상기 플래시 메모리 장치에 동시에 저장되는 메모리 시스템.
  10. 제 9 항에 있어서,
    상기 제 2 ECC 블록은 상기 플래시 메모리 장치로부터 읽혀진 독출 데이터 에 포함된 제 2 ECC 데이터를 이용하여 상기 독출 데이터를 디코딩하도록 구성되며, 상기 제 1 ECC 블록은 상기 제 2 ECC 블록으로부터 출력되는 상기 독출 데이터에 포함된 제 1 ECC 데이터를 이용하여 상기 독출 데이터의 에러를 정정하도록 구성되는 메모리 시스템.
  11. 제 10 항에 있어서,
    상기 제 2 ECC 블록은 상기 프로그램 데이터 및 상기 제 1 ECC 데이터에 패리티 정보를 추가하여 상기 제 2 ECC 데이터를 생성하는 메모리 시스템.
  12. 제 9 항에 있어서,
    상기 플래시 메모리 장치는 상기 프로그램 데이터가 저장되는 제 1 저장 영역과 상기 제 1 ECC 데이터와 상기 제 2 ECC 데이터가 저장되는 제 2 저장 영역을 포함하는 것을 메모리 시스템.
  13. 제 12 항에 있어서,
    상기 제 1 저장 영역의 메모리 셀들 각각은 M-비트 데이터를 저장하고, 상기 제 2 저장 영역의 메모리 셀들 각각은 1-비트 데이터를 저장하는 메모리 시스템.
  14. 제 8 항에 있어서,
    상기 메모리 제어기는 컴퓨팅 시스템의 메인 모드에 장착되도록 구성되는 메모리 시스템.
  15. 제 8 항에 있어서,
    상기 플래시 메모리 장치와 상기 메모리 제어기는 플래시 메모리 카드를 구성하는 메모리 시스템.
  16. M-비트 데이터(M은 2 또는 그 보다 큰 양의 정수)를 저장하는 플래시 메모리 장치와; 그리고
    상기 플래시 메모리 장치를 제어하도록 구성된 메모리 제어기를 포함하며,
    상기 메모리 제어기는
    상기 플래시 메모리 장치에 저장될 프로그램 데이터로부터 CRC 값을 생성하여 제 1 데이터 패턴을 출력하는 제 1 ECC 블록과;
    리니어 블록 방식에 따라 상기 제 1 데이터 패턴으로부터 제 1 ECC 데이터를 생성하여 제 2 데이터 패턴을 출력하는 제 2 ECC 블록과; 그리고
    최대 가능도 방식에 따라 상기 제 2 데이터 패턴으로부터 제 2 ECC 데이터를 생성하여 제 3 데이터 패턴을 출력하는 제 3 ECC 블록을 포함하는 메모리 시스템.
  17. 제 16 항에 있어서,
    상기 제 3 ECC 블록은 상기 플래시 메모리 장치로부터 읽혀진 독출 데이터 에 포함된 제 2 ECC 데이터를 이용하여 상기 독출 데이터를 디코딩하도록 구성되고, 상기 제 2 ECC 블록은 상기 제 2 ECC 블록으로부터 출력되는 상기 독출 데이터에 포함된 제 1 ECC 데이터를 이용하여 상기 독출 데이터의 에러를 정정하도록 구성되며, 상기 제 1 ECC 블록은 상기 제 2 ECC 블록으로부터 출력되는 상기 독출 데이터에 포함된 CRC 값을 이용하여 상기 독출 데이터의 에러 여부를 검출하도록 구성된 메모리 시스템.
  18. 제 17 항에 있어서,
    상기 제 3 ECC 블록은 상기 제 2 데이터 패턴에 패리티 정보를 추가하여 상기 제 2 ECC 데이터를 생성하는 메모리 시스템.
  19. 제 17 항에 있어서,
    상기 플래시 메모리 장치는 상기 프로그램 데이터가 저장되는 제 1 저장 영역과 상기 CRC 값, 상기 제 1 ECC 데이터, 그리고 상기 제 2 ECC 데이터가 저장되는 제 2 저장 영역을 포함하는 메모리 시스템.
  20. 제 19 항에 있어서,
    상기 제 1 저장 영역의 메모리 셀들 각각은 M-비트 데이터를 저장하고, 상기 제 2 저장 영역의 메모리 셀들 각각은 1-비트 데이터를 저장하는 메모리 시스템.
  21. 플래시 메모리 장치에 저장되는 M-비트 데이터(M은 2 또는 그 보다 큰 양의 정수)의 에러를 정정하는 방법에 있어서:
    제 1 에러 정정 방식에 따라 상기 플래시 메모리 장치에 저장될 프로그램 데이터로부터 제 1 ECC 데이터를 생성하는 단계와; 그리고
    제 2 에러 정정 방식에 따라 상기 제 1 ECC 블록으로부터 출력되는 제 1 ECC 데이터 및 상기 프로그램 데이터로부터 제 2 ECC 데이터를 생성하는 단계를 포함하며, 상기 프로그램 데이터, 상기 제 1 ECC 데이터, 그리고 상기 제 2 ECC 데이터는 상기 플래시 메모리 장치에 동시에 저장되는 것을 특징으로 하는 에러 정정 방법.
  22. 제 21 항에 있어서,
    상기 플래시 메모리 장치로부터 읽혀진 독출 데이터 에 포함된 제 2 ECC 데이터를 이용하여 상기 독출 데이터를 디코딩하는 단계와; 그리고
    상기 제 2 ECC 블록으로부터 출력되는 상기 독출 데이터에 포함된 제 1 ECC 데이터를 이용하여 상기 독출 데이터의 에러를 정정하는 단계를 더 포함하는 것을 특징으로 하는 에러 정정 방법.
  23. 제 21 항에 있어서,
    상기 제 1 에러 정정 방식은 리니어 블록 방식이고, 상기 제 2 에러 정정 방 식은 최대 가능도(ML) 방식인 것을 특징으로 하는 에러 정정 방법.
  24. 제 21 항에 있어서,
    상기 제 2 ECC 데이터는 상기 프로그램 데이터 및 상기 제 1 ECC 데이터에 패리티 정보를 추가함으로서 생성되는 것을 특징으로 하는 에러 정정 방법.
  25. 제 21 항에 있어서,
    상기 플래시 메모리 장치는 낸드 플래시 메모리 장치, 노어 플래시 메모리 장치, PRAM, 그리고 MRAM 중 어느 하나인 것을 특징으로 하는 에러 정정 방법.
  26. 제 21 항에 있어서,
    상기 플래시 메모리 장치는 상기 프로그램 데이터가 저장되는 제 1 저장 영역과 상기 제 1 ECC 데이터와 상기 제 2 ECC 데이터가 저장되는 제 2 저장 영역을 포함하는 것을 특징으로 하는 에러 정정 방법.
  27. 제 26 항에 있어서,
    상기 제 1 저장 영역의 메모리 셀들 각각은 M-비트 데이터를 저장하고, 상기 제 2 저장 영역의 메모리 셀들 각각은 1-비트 데이터를 저장하는 것을 특징으로 하는 에러 정정 방법.
  28. 플래시 메모리 장치에 저장되는 M-비트 데이터(M은 2 또는 그 보다 큰 양의 정수)의 에러를 정정하는 방법에 있어서:
    상기 플래시 메모리 장치에 저장될 프로그램 데이터로부터 CRC 값을 생성하여 제 1 데이터 패턴을 출력하는 단계와;
    리니어 블록 방식에 따라 상기 제 1 데이터 패턴으로부터 제 1 ECC 데이터를 생성하여 제 2 데이터 패턴을 출력하는 단계와; 그리고
    최대 가능도 방식에 따라 상기 제 2 데이터 패턴으로부터 제 2 ECC 데이터를 생성하여 제 3 데이터 패턴을 출력하는 단계를 포함하며, 상기 프로그램 데이터, 상기 CRC 값, 상기 제 1 ECC 데이터, 그리고 상기 제 2 ECC 데이터로 구성된 상기 제 3 데이터 패턴은 상기 플래시 메모리 장치에 저장되는 것을 특징으로 하는 에러 정정 방법.
  29. 제 28 항에 있어서,
    상기 플래시 메모리 장치로부터 읽혀진 독출 데이터에 포함된 제 2 ECC 데이터를 이용하여 상기 독출 데이터를 디코딩하는 단계와;
    상기 제 2 ECC 블록으로부터 출력되는 상기 독출 데이터에 포함된 제 1 ECC 데이터를 이용하여 상기 독출 데이터의 에러를 정정하는 단계와;그리고
    상기 제 2 ECC 블록으로부터 출력되는 상기 독출 데이터에 포함된 CRC 값을 이용하여 상기 독출 데이터의 에러 여부를 검출하는 단계를 더 포함하는 것을 특징으로 하는 에러 정정 방법.
  30. 제 28 항에 있어서,
    상기 제 2 ECC 데이터는 상기 제 2 데이터 패턴에 패리티 정보를 추가함으로써 생성되는 것을 특징으로 하는 에러 정정 방법.
  31. 제 28 항에 있어서,
    상기 플래시 메모리 장치는 상기 프로그램 데이터가 저장되는 제 1 저장 영역과 상기 CRC 값, 상기 제 1 ECC 데이터, 그리고 상기 제 2 ECC 데이터가 저장되는 제 2 저장 영역을 포함하는 것을 특징으로 하는 에러 정정 방법.
  32. 제 31 항에 있어서,
    상기 제 1 저장 영역의 메모리 셀들 각각은 M-비트 데이터를 저장하고, 상기 제 2 저장 영역의 메모리 셀들 각각은 1-비트 데이터를 저장하는 것을 특징으로 하는 에러 정정 방법.
KR1020070000732A 2007-01-03 2007-01-03 플래시 메모리 장치의 이씨씨 제어기 및 그것을 포함한메모리 시스템 KR100845529B1 (ko)

Priority Applications (6)

Application Number Priority Date Filing Date Title
KR1020070000732A KR100845529B1 (ko) 2007-01-03 2007-01-03 플래시 메모리 장치의 이씨씨 제어기 및 그것을 포함한메모리 시스템
US11/785,719 US8112689B2 (en) 2007-01-03 2007-04-19 ECC controller for use in flash memory device and memory system including the same
JP2007339977A JP2008165805A (ja) 2007-01-03 2007-12-28 フラッシュメモリ装置のecc制御器及びそれを含むメモリシステム
DE102008003113.5A DE102008003113B4 (de) 2007-01-03 2008-01-02 ECC-Steuereinheit, Speichersystem und Verfahren zur Korrektur eines Fehlers
CN2008100920056A CN101256842B (zh) 2007-01-03 2008-01-03 纠错码控制器和包括该纠错码控制器的存储器系统
US13/241,343 US8140935B2 (en) 2007-01-03 2011-09-23 ECC controller for use in flash memory device and memory system including the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070000732A KR100845529B1 (ko) 2007-01-03 2007-01-03 플래시 메모리 장치의 이씨씨 제어기 및 그것을 포함한메모리 시스템

Publications (2)

Publication Number Publication Date
KR20080064029A KR20080064029A (ko) 2008-07-08
KR100845529B1 true KR100845529B1 (ko) 2008-07-10

Family

ID=39510069

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070000732A KR100845529B1 (ko) 2007-01-03 2007-01-03 플래시 메모리 장치의 이씨씨 제어기 및 그것을 포함한메모리 시스템

Country Status (5)

Country Link
US (2) US8112689B2 (ko)
JP (1) JP2008165805A (ko)
KR (1) KR100845529B1 (ko)
CN (1) CN101256842B (ko)
DE (1) DE102008003113B4 (ko)

Families Citing this family (70)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7744387B2 (en) * 1999-08-04 2010-06-29 Super Talent Electronics, Inc. Multi-level cell (MLC) rotate flash memory device
KR100852193B1 (ko) * 2007-05-02 2008-08-13 삼성전자주식회사 오류 제어 코드 장치 및 그 방법
US8065583B2 (en) 2007-07-06 2011-11-22 Micron Technology, Inc. Data storage with an outer block code and a stream-based inner code
US8051358B2 (en) * 2007-07-06 2011-11-01 Micron Technology, Inc. Error recovery storage along a nand-flash string
JP4564520B2 (ja) * 2007-08-31 2010-10-20 株式会社東芝 半導体記憶装置およびその制御方法
US8046542B2 (en) * 2007-11-21 2011-10-25 Micron Technology, Inc. Fault-tolerant non-volatile integrated circuit memory
US8499229B2 (en) 2007-11-21 2013-07-30 Micro Technology, Inc. Method and apparatus for reading data from flash memory
JP5166074B2 (ja) 2008-02-29 2013-03-21 株式会社東芝 半導体記憶装置、その制御方法、および誤り訂正システム
KR101483190B1 (ko) * 2008-09-05 2015-01-19 삼성전자주식회사 메모리 시스템 및 그것의 데이터 처리 방법
CN102272730B (zh) 2008-10-09 2017-05-24 美光科技公司 经虚拟化错误校正码nand
TWI475378B (zh) * 2008-10-09 2015-03-01 Micron Technology Inc 耦合至一主機之儲存系統、與儲存系統中之nand記憶體介接之控制器及管理nand記憶體裝置堆疊之方法
KR100955157B1 (ko) * 2008-12-24 2010-04-28 서울대학교산학협력단 메모리 장치 및 메모리 장치의 관리 방법
US8438455B2 (en) * 2008-12-31 2013-05-07 Intel Corporation Error correction in a solid state disk
US8924819B2 (en) * 2009-01-23 2014-12-30 Macronix International Co., Ltd. Memory device and operation method thereof
TWI404067B (zh) * 2009-02-27 2013-08-01 Macronix Int Co Ltd 記憶體裝置及其操作方法
KR20100104840A (ko) 2009-03-19 2010-09-29 삼성전자주식회사 셀 패턴에 따라 추가 ecc가 가능한 반도체 메모리 장치,상기 장치를 포함하는 전자 시스템
US8560898B2 (en) * 2009-05-14 2013-10-15 Mediatek Inc. Error correction method and error correction apparatus utilizing the method
KR20110017613A (ko) * 2009-08-14 2011-02-22 삼성전자주식회사 메모리 장치의 시퀀스 대체 방법, 상기 방법을 수행할 수 있는 장치들
US8510628B2 (en) * 2009-11-12 2013-08-13 Micron Technology, Inc. Method and apparatuses for customizable error correction of memory
KR20110073932A (ko) * 2009-12-24 2011-06-30 주식회사 하이닉스반도체 Ecc 회로를 포함하는 반도체 스토리지 시스템 및 그 제어 방법
KR101678404B1 (ko) * 2010-02-25 2016-11-23 삼성전자주식회사 사전 확률 정보를 사용하는 메모리 시스템 및 그것의 데이터 처리 방법
TWI456579B (zh) * 2010-03-26 2014-10-11 Silicon Motion Inc 提昇錯誤更正能力之方法以及相關之記憶裝置及其控制器
US8386895B2 (en) 2010-05-19 2013-02-26 Micron Technology, Inc. Enhanced multilevel memory
WO2012037032A2 (en) * 2010-09-15 2012-03-22 Sandisk Technologies Inc. System and method of distributive ecc processing
US8788922B2 (en) * 2011-02-28 2014-07-22 Apple Inc Error correction codes for incremental redundancy
JP2013029882A (ja) * 2011-07-26 2013-02-07 Toshiba Corp メモリコントローラ、半導体記憶装置および復号方法
CN102567132B (zh) * 2011-12-30 2014-12-03 记忆科技(深圳)有限公司 端对端芯片数据通路保护装置及其方法
US9093154B2 (en) * 2012-01-16 2015-07-28 Silicon Motion, Inc. Method, memory controller and system for reading data stored in flash memory
US8954825B2 (en) 2012-03-06 2015-02-10 Micron Technology, Inc. Apparatuses and methods including error correction code organization
US8793556B1 (en) 2012-05-22 2014-07-29 Pmc-Sierra, Inc. Systems and methods for reclaiming flash blocks of a flash drive
US8972824B1 (en) 2012-05-22 2015-03-03 Pmc-Sierra, Inc. Systems and methods for transparently varying error correction code strength in a flash drive
US9021337B1 (en) 2012-05-22 2015-04-28 Pmc-Sierra, Inc. Systems and methods for adaptively selecting among different error correction coding schemes in a flash drive
US8788910B1 (en) 2012-05-22 2014-07-22 Pmc-Sierra, Inc. Systems and methods for low latency, high reliability error correction in a flash drive
US9183085B1 (en) 2012-05-22 2015-11-10 Pmc-Sierra, Inc. Systems and methods for adaptively selecting from among a plurality of error correction coding schemes in a flash drive for robustness and low latency
US9021333B1 (en) 2012-05-22 2015-04-28 Pmc-Sierra, Inc. Systems and methods for recovering data from failed portions of a flash drive
US8996957B1 (en) 2012-05-22 2015-03-31 Pmc-Sierra, Inc. Systems and methods for initializing regions of a flash drive having diverse error correction coding (ECC) schemes
US9176812B1 (en) 2012-05-22 2015-11-03 Pmc-Sierra, Inc. Systems and methods for storing data in page stripes of a flash drive
US9047214B1 (en) 2012-05-22 2015-06-02 Pmc-Sierra, Inc. System and method for tolerating a failed page in a flash device
US9021336B1 (en) 2012-05-22 2015-04-28 Pmc-Sierra, Inc. Systems and methods for redundantly storing error correction codes in a flash drive with secondary parity information spread out across each page of a group of pages
US9110824B2 (en) * 2012-06-08 2015-08-18 Silicon Motion Inc. Method, controller, and memory device for correcting data bit(s) of at least one cell of flash memory
TWI514405B (zh) * 2012-06-08 2015-12-21 Silicon Motion Inc 修正快閃記憶體之至少一儲存單元之資料位元的方法、控制器及記憶體裝置
US8924820B2 (en) 2012-07-27 2014-12-30 Kabushiki Kaisha Toshiba Memory controller, semiconductor memory system, and memory control method
KR101979734B1 (ko) * 2012-08-07 2019-05-17 삼성전자 주식회사 메모리 장치의 독출 전압 제어 방법 및 이를 이용한 데이터 독출 방법
TWI479314B (zh) * 2012-08-30 2015-04-01 Phison Electronics Corp 系統資料儲存方法、記憶體控制器與記憶體儲存裝置
JP2014092973A (ja) * 2012-11-05 2014-05-19 Toshiba Corp メモリシステム
US9577673B2 (en) 2012-11-08 2017-02-21 Micron Technology, Inc. Error correction methods and apparatuses using first and second decoders
CN103970619B (zh) * 2013-02-06 2017-09-29 东芝存储器株式会社 控制器
CN104008069B (zh) * 2013-02-22 2018-06-15 中兴通讯股份有限公司 一种数据保护方法、装置及设备
US9208018B1 (en) 2013-03-15 2015-12-08 Pmc-Sierra, Inc. Systems and methods for reclaiming memory for solid-state memory
US9009565B1 (en) 2013-03-15 2015-04-14 Pmc-Sierra, Inc. Systems and methods for mapping for solid-state memory
US9053012B1 (en) 2013-03-15 2015-06-09 Pmc-Sierra, Inc. Systems and methods for storing data for solid-state memory
US9081701B1 (en) 2013-03-15 2015-07-14 Pmc-Sierra, Inc. Systems and methods for decoding data for solid-state memory
US9026867B1 (en) 2013-03-15 2015-05-05 Pmc-Sierra, Inc. Systems and methods for adapting to changing characteristics of multi-level cells in solid-state memory
KR102108386B1 (ko) 2013-12-23 2020-05-08 삼성전자주식회사 저장 장치 및 그것의 데이터 엔코딩 및 디코딩 방법들
US9417945B2 (en) 2014-03-05 2016-08-16 International Business Machines Corporation Error checking and correction for NAND flash devices
JP6131207B2 (ja) 2014-03-14 2017-05-17 ウィンボンド エレクトロニクス コーポレーション 半導体記憶装置
KR101651573B1 (ko) 2014-08-14 2016-08-26 윈본드 일렉트로닉스 코포레이션 반도체 기억장치 및 그 프로그래밍 방법
US10395753B2 (en) 2014-08-28 2019-08-27 Winbond Electronics Corp. Semiconductor memory device and programming method thereof
US9588772B2 (en) 2015-02-20 2017-03-07 Kabushiki Kaisha Toshiba Memory controller and decoding method
US10193576B2 (en) * 2015-10-30 2019-01-29 Toshiba Memory Corporation Memory system and memory device
JP6479638B2 (ja) * 2015-12-09 2019-03-06 株式会社東芝 ビデオサーバ装置およびデータ書き込み/読み出し方法
JP6088675B1 (ja) 2016-02-02 2017-03-01 ウィンボンド エレクトロニクス コーポレーション 半導体記憶装置
KR102370278B1 (ko) * 2017-11-30 2022-03-07 에스케이하이닉스 주식회사 메모리 컨트롤러, 이를 포함하는 메모리 시스템, 및 그의 동작방법
CN110333965B (zh) * 2019-05-30 2023-05-26 深圳市博德越科技有限公司 一种固态硬盘控制器装置及固态硬盘数据校验方法
US11164652B2 (en) 2019-06-21 2021-11-02 Micron Technology, Inc. Two-layer code with low parity cost for memory sub-systems
DE102019120801B3 (de) * 2019-08-01 2020-12-03 Infineon Technologies Ag Vorrichtungen und Verfahren zur Datenspeicherung
US11296729B2 (en) 2020-07-23 2022-04-05 Micron Technology, Inc. Data reliability for extreme temperature usage conditions in data storage
US11157359B2 (en) * 2020-09-24 2021-10-26 Intel Corporation Techniques to implement a hybrid error correction code scheme
CN112596674B (zh) * 2020-12-21 2023-10-13 成都储迅科技有限责任公司 一种用于固态硬盘主控缓存数据双重保护的方法及系统
KR102598152B1 (ko) * 2022-04-22 2023-11-06 청주대학교 산학협력단 자기진단 기능을 가지는 비동기식 불휘발성 메모리 모듈

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010067139A (ko) * 1999-12-16 2001-07-12 가나이 쓰토무 기록/재생 장치, 반도체 메모리 및 이 반도체 메모리를이용하는 메모리 카드

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62194745A (ja) * 1986-02-20 1987-08-27 Nec Corp 誤り訂正回路
JP2696212B2 (ja) * 1987-05-06 1998-01-14 セイコーエプソン株式会社 誤り訂正装置
JP3999822B2 (ja) * 1993-12-28 2007-10-31 株式会社東芝 記憶システム
US5475693A (en) * 1994-12-27 1995-12-12 Intel Corporation Error management processes for flash EEPROM memory arrays
US5754566A (en) 1996-09-06 1998-05-19 Intel Corporation Method and apparatus for correcting a multilevel cell memory by using interleaving
JPH11143787A (ja) * 1997-11-06 1999-05-28 Hitachi Ltd 記録再生装置
EP0969480A4 (en) 1998-01-21 2000-11-22 Sony Corp CODING METHOD AND MEMORY DEVICE
KR100370014B1 (ko) 2000-05-16 2003-01-29 엘지전자 주식회사 공기조화기의 실외기의 소음 저감구조
US6553536B1 (en) * 2000-07-07 2003-04-22 International Business Machines Corporation Soft error correction algebraic decoder
JP4437519B2 (ja) * 2001-08-23 2010-03-24 スパンション エルエルシー 多値セルメモリ用のメモリコントローラ
EP1355234B1 (en) 2002-04-15 2016-06-29 Micron Technology, Inc. Use of an error correction circuit in program and erase verify procedures
US6751766B2 (en) * 2002-05-20 2004-06-15 Sandisk Corporation Increasing the effectiveness of error correction codes and operating multi-level memory systems by using information about the quality of the stored data
JP4550439B2 (ja) * 2003-02-28 2010-09-22 東芝メモリシステムズ株式会社 Ecc制御装置
TWI227395B (en) * 2003-06-02 2005-02-01 Genesys Logic Inc Method for parallel processing of memory data and error correction code and related device thereof
US7023735B2 (en) 2003-06-17 2006-04-04 Ramot At Tel-Aviv University Ltd. Methods of increasing the reliability of a flash memory
US7418644B2 (en) 2004-03-01 2008-08-26 Hewlett-Packard Development Company, L.P. System for error correction coding and decoding
US7464241B2 (en) * 2004-11-22 2008-12-09 Intel Corporation Memory transaction burst operation and memory components supporting temporally multiplexed error correction coding
US7809994B2 (en) * 2006-05-17 2010-10-05 Sandisk Corporation Error correction coding for multiple-sector pages in flash memory devices
KR100872186B1 (ko) * 2007-01-04 2008-12-09 삼성전자주식회사 상이한 에러 제어 스킴을 갖는 하이브리드 플래시 메모리장치 및 그것을 포함한 메모리 시스템
KR100842680B1 (ko) * 2007-01-08 2008-07-01 삼성전자주식회사 플래시 메모리 장치의 오류 정정 컨트롤러 및 그것을포함하는 메모리 시스템

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010067139A (ko) * 1999-12-16 2001-07-12 가나이 쓰토무 기록/재생 장치, 반도체 메모리 및 이 반도체 메모리를이용하는 메모리 카드

Also Published As

Publication number Publication date
US8112689B2 (en) 2012-02-07
CN101256842B (zh) 2013-03-06
US20080163023A1 (en) 2008-07-03
JP2008165805A (ja) 2008-07-17
DE102008003113B4 (de) 2022-07-28
US8140935B2 (en) 2012-03-20
US20120011416A1 (en) 2012-01-12
DE102008003113A1 (de) 2008-07-17
CN101256842A (zh) 2008-09-03
KR20080064029A (ko) 2008-07-08

Similar Documents

Publication Publication Date Title
KR100845529B1 (ko) 플래시 메모리 장치의 이씨씨 제어기 및 그것을 포함한메모리 시스템
KR100842680B1 (ko) 플래시 메모리 장치의 오류 정정 컨트롤러 및 그것을포함하는 메모리 시스템
US8769374B2 (en) Multi-write endurance and error control coding of non-volatile memories
US8065583B2 (en) Data storage with an outer block code and a stream-based inner code
US9195539B2 (en) Method for reading data from block of flash memory and associated memory device
TWI514388B (zh) 讀取快閃記憶體中所儲存之資料的方法、記憶體控制器與系統
US9405624B2 (en) On-die error detection and correction during multi-step programming
JP2015507409A (ja) 代数符号を用いるマルチフェーズecc符号化
US10114693B2 (en) Memory systems and electronic systems performing an adaptive error correction operation with pre-checked error rate, and methods of operating the memory systems
US10691538B2 (en) Methods and apparatuses for error correction
KR20080064299A (ko) 상이한 에러 제어 스킴을 갖는 하이브리드 플래시 메모리장치 및 그것을 포함한 메모리 시스템
US11550663B2 (en) Changing of error correction codes based on the wear of a memory sub-system
KR20150062384A (ko) 연접 오류 정정 장치
KR20170012006A (ko) 메모리 컨트롤러와 이를 포함하는 메모리 시스템
TWI682399B (zh) 操作記憶體之方法及用於錯誤率降低之設備
KR20160075001A (ko) 플래시 메모리 시스템 동작 방법
CN111796774B (zh) 存储器控制方法、存储器存储装置及存储器控制器
KR20210010807A (ko) 비휘발성 메모리의 불량 행 관리를 수행하는 메모리 시스템 및 이의 동작 방법
CN113138947B (zh) 数据写入方法、存储器控制电路单元以及存储器存储装置
US20190294497A1 (en) Method of implementing error correction code used by memory storage apparatus and memory storage apparatus using the same

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: 20130701

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20140630

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20150630

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20160630

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20170630

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20180629

Year of fee payment: 11