KR100842680B1 - 플래시 메모리 장치의 오류 정정 컨트롤러 및 그것을포함하는 메모리 시스템 - Google Patents

플래시 메모리 장치의 오류 정정 컨트롤러 및 그것을포함하는 메모리 시스템 Download PDF

Info

Publication number
KR100842680B1
KR100842680B1 KR1020070002090A KR20070002090A KR100842680B1 KR 100842680 B1 KR100842680 B1 KR 100842680B1 KR 1020070002090 A KR1020070002090 A KR 1020070002090A KR 20070002090 A KR20070002090 A KR 20070002090A KR 100842680 B1 KR100842680 B1 KR 100842680B1
Authority
KR
South Korea
Prior art keywords
data
error correction
ecc
flash memory
memory device
Prior art date
Application number
KR1020070002090A
Other languages
English (en)
Inventor
이창덕
허석원
박시영
이동률
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020070002090A priority Critical patent/KR100842680B1/ko
Priority to US11/692,992 priority patent/US7904790B2/en
Priority to CN2008101446283A priority patent/CN101329916B/zh
Application granted granted Critical
Publication of KR100842680B1 publication Critical patent/KR100842680B1/ko
Priority to US13/012,984 priority patent/US8112692B2/en
Priority to US13/012,955 priority patent/US8788905B2/en

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • 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
    • 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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/08Address circuits; Decoders; Word-line control circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • 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
    • 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/23Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using convolutional codes, e.g. unit memory 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/35Unequal or adaptive error protection, e.g. by providing a different level of protection according to significance of source information or by adapting the coding according to the change of transmission channel characteristics
    • 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/3707Adaptive decoding and hybrid decoding, e.g. decoding methods or techniques providing more than one decoding algorithm for one code
    • H03M13/3715Adaptation to the number of estimated errors or to the channel state
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • 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)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Algebra (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

본 발명의 M-비트 데이터(M은 2 또는 그 보다 큰 양의 정수)를 저장하는 플래시 메모리 장치의 오류 정정 컨트롤러는, 제1 오류 정정 방식에 따라 상기 플래시 메모리 장치에 저장될 입력 데이터로부터 제1 ECC 데이터를 생성하고, 제2 오류 정정 방식에 따라 상기 입력 데이터로부터 제2 ECC 데이터를 생성하는 인코더와, 상기 입력 데이터, 상기 제1 ECC 데이터 및 상기 제2 ECC 데이터는 상기 플래시 메모리 장치에 저장되고, 그리고 상기 플래시 메모리 장치로부터 읽혀진 독출 데이터에 포함된 오류의 수를 계산하고, 상기 오류의 수에 따라서 상기 제1 ECC 데이터 또는 상기 제2 ECC 데이터 중 어느 하나를 이용하여 상기 독출 데이터의 오류를 정정하는 디코더를 포함한다.

Description

플래시 메모리 장치의 오류 정정 컨트롤러 및 그것을 포함하는 메모리 시스템{ECC CONTROLLER FOR USE IN FLASH MEMORY DEVICE AND MEMORY SYSTEM INCLUDING THE SAME}
도 1a는 1-비트 데이터를 저장하는 일반적인 플래시 메모리 셀의 문턱 전압 분포들을 보여주는 도면;
도 1b는 2-비트 데이터를 저장하는 일반적인 플래시 메모리 셀의 문턱 전압 분포들을 보여주는 도면;
도 1c는 3-비트 데이터를 저장하는 일반적인 플래시 메모리 셀의 문턱 전압 분포들을 보여주는 도면;
도 2는 본 발명에 따른 메모리 시스템을 개략적으로 보여주는 블록도;
도 3은 도 2에 도시된 오류 정정 컨트롤러를 개략적으로 보여주는 블록도;
도 4는 도 3에 도시된 플래시 메모리 장치에 저장되는 기입 데이터 및 플래시 메모리 장치로부터 읽혀진 독출 데이터의 포맷을 보여주는 도면;
도 5는 도 3에 도시된 인코더의 인코딩 동작을 보여주는 플로우차트; 그리고
도 6은 도 3에 도시된 디코더의 디코딩 동작을 보여주는 플로우차트이다.
* 도면의 주요 부분에 대한 부호 설명 *
100 : 호스트 200 : 메모리 컨트롤러
210 : 호스트 인터페이스 220 : 메모리 인터페이스
230 : 컨트롤러 240 : ECC 컨트롤러
242 : ECC 인코더 244 : ECC 디코더
300 : 플래시 메모리 장치 410 : 제1 인코더
412 : 제2 인코더 420 : 제1 디코더
422 : 디코딩 제어기 424 : 제2 디코더
본 발명은 플래시 메모리 장치에 관한 것으로, 좀 더 구체적으로는 플래시 메모리 장치에 저장된 멀티-비트 데이터의 에러를 검출 및 정정하는 기술에 관한 것이다.
플래시 메모리 장치는 메모리 칩 안에 정보를 유지하기 위해 전력이 필요없는 비휘발성 메모리 장치이다. 게다가, 비록 PC에서 메인 메모리로 사용되는 DRAM만큼 빠르지는 않지만, 플래시 메모리 장치는 읽기 속도가 빠르며 하드디스크 보다 충격에 강하다. 이러한 특징으로 인해 배터리로 동작하는 디바이스에서 저장 장치로서 많이 사용되고 있다. 플래시 메모리 장치의 또다른 매력은 강한 압력이나 끊는 물에 견딜 만큼, 물리적 수단으로 거의 파괴되지 않는다는 점이다.
플래시 메모리 장치는 전기적으로 데이터를 지우고 재기록이 가능한 비휘발성 컴퓨터 기억 장치를 말한다. EEPROM과 다르게, 플래시 메모리 장치는 블록 단위 로 지우고 쓰기가 가능하다. 플래시 메모리 장치는 EEPROM보다 비용이 덜 들기 때문에 대용량의 비휘발성, 고체상태(solid-state) 스토리지가 필요한 경우 주로 사용된다. 대표적인 활용 예로 디지털 음악 재생기, 디지털 카메라, 핸드폰을 들 수 있다. 일반적인 데이터를 저장과 컴퓨터간에 데이터를 옮기는 용도로 USB 드라이브를 많이 사용하는데, 이때도 플래시 메모리 장치가 사용되고 있다.
플래시 메모리 장치는 전통적으로 비트 정보를 저장하는 셀이라 부르는 플로팅 게이트 트랜지스터들(floating gate transistors)로 구성된 어레이에 정보를 저장한다. 멀티-레벨 셀(multi level cell, MLC) 장치로 불리는 보다 새로운 플래시 메모리 장치는 셀의 플로팅 게이트에 축적되는 전기적인 전하의 양을 제어함으로써 하나의 셀에 1-비트 이상을 저장할 수 있다. 설명의 편의상, 하나의 메모리 셀에 1-비트 데이터를 저장하는 플래시 메모리 장치를 SLC(single level cell) 플래시 메모리 장치라 칭하고, 하나의 메모리 셀에 M-비트 데이터(M은 2 또는 그 보다 큰 양의 정수)를 저장하는 플래시 메모리 장치를 MLC 플래시 메모리 장치라 칭한다.
SLC 플래시 메모리 장치의 경우, 하나의 메모리 셀에 저장된 데이터는 데이터 '1'의 문턱 전압 분포와 데이터 '0'의 문턱 전압 분포 사이의 적절한 기준 전압을 사용함으로써 판별될 수 있다. 예를 들면, 기준 전압이 메모리 셀의 제어 게이트에 인가된 상태에서, 메모리 셀을 통해 전류가 흐르는 지의 여부에 따라 데이터 '1' 또는 '0'를 판별하는 것이 가능하다. 비록 판별 기술이 다르지만, 기본적으로, MLC 플래시 메모리 장치에도 그러한 방식이 적용될 것이다. 도 1a에 도시된 바와 같이, 하나의 메모리 셀에 1-비트 데이터를 저장하는 데 2개의 문턱 전압 분포들이 사용될 것이다. 이에 반해서, 도 2 내지 도 4에 도시된 바와 같이, 하나의 메모리 셀에 M-비트 데이터를 저장하는 데 2M개의 문턱 전압 분포들이 사용될 것이다. 예를 들면, 하나의 메모리 셀에 2-비트 데이터를 저장하는 데 4개의 문턱 전압 분포들이 사용되고, 하나의 메모리 셀에 3-비트 데이터를 저장하는 데 8개의 문턱 전압 분포들이 사용되며, 하나의 메모리 셀에 4-비트 데이터를 저장하는 데 16개의 문턱 전압 분포들이 사용될 것이다. 하나의 메모리 셀에 저장된 데이터의 비트 수가 증가함에 따라 더 많은 문턱 전압 분포들이 사용될 것이다.
하지만, 잘 알려진 바와 같이, 메모리 셀의 문턱 전압을 높이는 데 한계가 있다. 다시 말해서, 메모리 셀의 문턱 전압은 정해진 전압 범위 내에 분포되어야 한다. 이는 하나의 메모리 셀에 저장되는 데이터의 비트 수에 관계없이 문턱 전압 분포들이 정해진 전압 범위 내에서 분포되어야 함을 의미한다. 그러한 까닭에, 도 1b 및 도 1c에 도시된 바와 같이, 인접한 문턱 전압 분포들이 중첩될 수 있다. 이러한 현상은 하나의 메모리 셀에 저장된 데이터의 비트 수가 증가함에 따라 더욱 심각해질 것이다. 또한, 그러한 현상은 전하 손실, 시간의 경과, 온도의 증가, 인접한 셀의 프로그래밍시 생기는 커플링, 인접한 셀의 읽기, 셀 결함 등과 같은 다양한 원인들로 인해 더욱 더 심각해질 것이다. 인접한 문턱 전압 분포들이 중첩됨에 따라, 읽혀진 데이터는 많은 에러 비트들(예를 들면, 수개의 에러 비트들 또는 수십개의 에러 비트들)을 포함할 것이다. 즉, 이 분야에 잘 알려진 에러 정정 방식을 이용하여 읽혀진 데이터에 포함된 에러 비트들을 검출 및 정정하는 것이 불가능 하다.
따라서, 멀티-비트 데이터를 저장하는 플래시 메모리 장치에서 읽혀진 데이터에 대한 멀티-비트 에러를 검출 및 정정할 수 있는 새로운 기술이 절실히 요구되고 있다.
따라서 본 발명의 목적은 플래시 메모리 장치로부터 읽혀진 멀티-비트 데이터의 신뢰성을 향상시킬 수 있는 오류 정정 스킴을 제공하는 것이다.
상술한 바와 같은 목적을 달성하기 위한 본 발명의 특징에 의하면, 셀당 M-비트 데이터(M은 2 또는 그 보다 큰 양의 정수)를 저장하는 플래시 메모리 장치의 오류 정정 컨트롤러는: 인코더 및 디코더들 포함한다. 상기 인코더는 제1 오류 정정 방식에 따라 상기 플래시 메모리 장치에 저장될 입력 데이터로부터 제1 ECC 데이터를 생성하고, 제2 오류 정정 방식에 따라 상기 입력 데이터로부터 제2 ECC 데이터를 생성한다. 상기 입력 데이터, 상기 제1 ECC 데이터 및 상기 제2 ECC 데이터는 상기 플래시 메모리 장치에 저장된다. 상기 디코더는 상기 플래시 메모리 장치로부터 읽혀진 독출 데이터에 포함된 오류의 수를 계산하고, 상기 오류의 수에 따라서 상기 제1 ECC 데이터 또는 상기 제2 ECC 데이터 중 어느 하나를 이용하여 상기 독출 데이터의 오류를 정정한다.
상기 인코더는, 상기 제1 오류 정정 방식에 따라 상기 입력 데이터로부터 상기 제1 ECC 데이터를 생성하는 제1 인코더, 그리고 상기 제2 오류 정정 방식에 따 라 상기 입력 데이터로부터 상기 제2 ECC 데이터를 생성하는 제2 인코더를 포함한다.
상기 디코더는, 상기 독출 데이터에 포함된 상기 제1 ECC 데이터를 이용하여 상기 독출 데이터의 오류를 정정하는 제1 디코더와, 상기 독출 데이터에 포함된 상기 제2 ECC 데이터를 이용하여 상기 독출 데이터의 오류를 정정하는 제2 디코더, 그리고 상기 독출 데이터에 포함된 상기 오류의 수를 계산하고, 상기 오류의 수에 따라서 상기 제1 또는 상기 제2 디코더 중 어느 하나가 상기 독출 데이터의 오류를 정정하도록 제어하는 디코딩 컨트롤러를 포함한다.
상기 디코딩 컨트롤러는 상기 독출 데이터에 포함된 상기 오류의 수가 3개 이하일 때 상기 제1 디코더가 상기 독출 데이터의 오류를 정정하도록 제어하고, 상기 독출 데이터에 포함된 상기 오류의 수가 4개 이상일 때 상기 제2 디코더가 상기 독출 데이터의 오류를 정정하도록 제어한다.
일 실시예에 있어서, 상기 제1 오류 정정 방식은 온 더 플라이를 지원하는 고속 오류 정정 방식이고, 상기 제2 오류 정정 방식은 상기 온 더 플라이를 지원하지 않는다.
일 실시예에 있어서, 상기 제1 오류 정정 방식은 BCH(Bose, Chaudhuri and Hocquenghem) 코드를 이용하는 오류 정정 방식이고, 상기 제2 오류 정정 방식은 RS(Reed Solomon) 오류 정정 방식이다.
일 실시예에서, 상기 플래시 메모리 장치는 데이터 영역 및 스페어 영역을 포함하며, 상기 입력 데이터는 상기 데이터 영역에 저장되고, 상기 제1 ECC 데이터 및 상기 제2 ECC 데이터는 상기 플래시 메모리 장치의 스페어 영역에 저장된다.
상기 데이터 영역의 메모리 셀들 각각은 상기 M-비트 데이터를 저장하고, 상기 스페어 영역의 메모리 셀들 각각은 1-비트 데이터를 저장한다.
상기 플래시 메모리 장치는 낸드 플래시 메모리 장치, 노어 플래시 메모리 장치, PRAM(phase change random access memory) 장치 그리고 MRAM(magnetic random access memory) 장치 중 어느 하나이다.
본 발명의 다른 특징에 따른 메모리 시스템은: 셀당 M-비트 데이터(M은 2 또는 그 보다 큰 양의 정수)를 저장하는 플래시 메모리 장치, 그리고 상기 플래시 메모리 장치를 제어하는 메모리 컨트롤러를 포함한다. 상기 메모리 컨트롤러는, 제1 오류 정정 방식에 따라 상기 플래시 메모리 장치에 저장될 입력 데이터로부터 제1 ECC 데이터를 생성하고, 제2 오류 정정 방식에 따라 상기 입력 데이터로부터 제2 ECC 데이터를 생성하는 인코더, 그리고 상기 플래시 메모리 장치로부터 읽혀진 독출 데이터에 포함된 오류의 수를 계산하고, 상기 오류의 수에 따라서 상기 제1 ECC 데이터 또는 상기 제2 ECC 데이터 중 어느 하나를 이용하여 상기 독출 데이터의 오류를 정정하는 디코더를 포함하며, 상기 입력 데이터, 상기 제1 ECC 데이터 및 상기 제2 ECC 데이터는 상기 플래시 메모리 장치에 저장한다.
상기 인코더는, 상기 제1 오류 정정 방식에 따라 상기 입력 데이터로부터 상기 제1 ECC 데이터를 생성하는 제1 인코더, 그리고 상기 제2 오류 정정 방식에 따라 상기 입력 데이터로부터 상기 제2 ECC 데이터를 생성하는 제2 인코더를 포함한 다.
상기 디코더는, 상기 독출 데이터에 포함된 상기 제1 ECC 데이터를 이용하여 상기 독출 데이터의 오류를 정정하는 제1 디코더와, 상기 독출 데이터에 포함된 상기 제2 ECC 데이터를 이용하여 상기 독출 데이터의 오류를 정정하는 제2 디코더, 그리고 상기 독출 데이터에 포함된 상기 오류의 수를 계산하고, 상기 오류의 수에 따라서 상기 제1 또는 상기 제2 디코더 중 어느 하나가 상기 독출 데이터의 오류를 정정하도록 제어하는 디코딩 컨트롤러를 포함한다.
본 발명의 또다른 특징에 따른 M-비트 데이터(M은 2 또는 그 보다 큰 양의 정수)의 오류를 정정하는 방법은: 제1 오류 정정 방식에 따라서 상기 플래시 메모리 장치에 저장될 입력 데이터로부터 제1 ECC 데이터를 생성하는 단계와, 제2 오류 정정 방식에 따라 상기 입력 데이터로부터 제2 ECC 데이터를 생성하는 단계와, 상기 입력 데이터, 상기 제1 ECC 데이터 및 상기 제2 ECC 데이터를 상기 플래시 메모리 장치에 저장하는 단계와, 상기 플래시 메모리 장치로부터 읽혀진 독출 데이터에 포함된 오류의 수를 계산하는 단계, 그리고 상기 오류의 수에 따라서 상기 제1 ECC 데이터 또는 상기 제2 ECC 데이터 중 어느 하나를 이용하여 상기 독출 데이터의 오류를 정정하는 단계를 포함한다.
상기 오류 정정 단계는, 상기 오류의 수가 3개 이하일 때 상기 제1 ECC 데이터를 이용하여 상기 독출 데이터의 오류를 정정하는 단계, 및 상기 오류의 수가 4개 이상일 때 상기 제2 ECC 데이터를 이용하여 상기 독출 데이터의 오류를 정정하는 단계를 포함한다.
이하 본 발명의 바람직한 실시예를 첨부된 도면들을 참조하여 상세히 설명한다.
도 1은 본 발명에 따른 메모리 시스템을 개략적으로 보여주는 블록도이다. 도 1을 참조하면, 본 발명에 따른 메모리 시스템은 메모리 컨트롤러(200)와 플래시 메모리 장치(300)를 포함한다. 플래시 메모리 장치(300)는 메모리 컨트롤러(200)의 제어에 따라 동작하며, 셀 당 M-비트 데이터 정보를 저장하도록 구성된다. 여기서, M-비트 데이터 정보는 2-비트 데이터, 3-비트 데이터, 4-비트 데이터 등을 포함한다. 플래시 메모리 장치(100)는 낸드(NAND) 플래시 메모리 장치, 노어(NOR) 플래시 메모리 장치, PRAM(phase change random access memory) 장치, MRAM(magnetic random access memory) 또는 그와 같은 불휘발성 메모리 장치로 구현된다.
메모리 컨트롤러(200)는 호스트(100)의 요청에 따라 플래시 메모리 장치(100)를 제어한다. 메모리 컨트롤러(200)는 호스트 인터페이스(210), 메모리 인터페이스(220), 컨트롤러(230), 그리고 ECC 제어기(230)를 포함한다. 호스트 인터페이스(210)는 호스트(100)와의 인터페이스를 제공하고, 메모리 인터페이스(220)는 플래시 메모리 장치(300)와의 인터페이스를 제공한다. 컨트롤러(230)는 메모리 컨트롤러(200)의 전반적인 동작을 제어하는 프로세서로 구성될 수 있다. 호스트(100)와 메모리 컨트롤러(200)는 PCI(peripheral component interconnect), USB(Universal Serial Bus) 등과 같은 다양한 통신 인터페이스를 통하여 통신하도록 구성된다.
메모리 컨트롤러(200)와 플래시 메모리 장치(300)는 잘 알려진 낸드/노어 인터페이스 방식을 통해 통신하도록 구성된다. 메모리 컨트롤러(200)와 플래시 메모리 장치(300)를 포함하는 메모리 시스템은 플래시 메모리 카드, 스마트 카드 등과 같은 메모리 카드일 수 있다.
ECC 제어기(240)는 플래시 메모리 장치(100)에 저장될 데이터에 대한 오류 제어 코드(Error Control Code, ECC) 데이터(이하, ECC 데이터라 칭함)를 생성하도록 구성된다. ECC 데이터는 오류 검출 그리고/또는 정정을 위해서 사용된다. ECC 제어기(240)는 플래시 메모리 장치(300)로부터 읽혀진 데이터에 대한 오류 검출 및 정정을 수행한다. 특히, 본 발명에 따른 ECC 제어기(240)는 두 가지 오류 정정 방식으로 제1 ECC 데이터 및 제2 ECC 데이터를 생성하고, 그리고 플래시 메모리 장치(300)로부터 읽혀진 데이터에서 검출된 오류의 수에 따라서 제1 ECC 데이터 및 제2 ECC 데이터 중 어느 하나를 이용하여 오류를 정정한다.
본 발명에 따른 ECC 제어기(240)는 두 가지 오류 정정 방식으로 제1 ECC 데이터 및 제2 ECC 데이터를 생성하기 위한 ECC 인코더(242)와 플래시 메모리 장치(300)로부터 읽혀진 데이터에서 검출된 오류의 수에 따라서 제1 ECC 데이터 및 제2 ECC 데이터 중 어느 하나를 이용하여 오류를 정정하기 위한 ECC 디코더(244)를 포함한다. 첫 번째 오류 정정 방식은 온 더 플라이(on the fly) 기능을 지원하는 고속 오류 정정 방식이고, 두 번째 오류 정정 방식은 읽혀진 데이터 내 오류의 수가 많더라도 오류 정정이 가능한 고성능 오류 정정 방식이다.
본 발명의 ECC 제어기(240)는 두 가지 오류 정정 방식으로 제1 ECC 데이터 및 제2 ECC 데이터를 생성하고, 플래시 메모리 장치(300)로부터 읽혀진 데이터의 오류를 검출해서 검출된 오류의 수가 소정 개수 예를 들면, 3개 이하이면, 제1 ECC 데이터를 이용하여 고속 오류 정정 방식으로 정확한 오류를 정정하고, 검출된 오류의 수가 소정 개수 예를 들면, 4개 이상이면, 제2 ECC 데이터를 이용하여 고성능 오류 정정 방식으로 오류를 검출 그리고/또는 정정하도록 구성된다. 그러므로, ECC 제어기(240)는 플래시 메모리 장치(300)로부터 읽혀진 데이터에 포함된 오류의 수가 적으면 고속으로 오류 정정을 수행하고, 오류의 수가 많으면 오류 정정에 소요되는 시간이 다소 길어지더라도 정확한 오류 정정을 수행하게 된다.
상술한 바와 같이, 본 발명에 따른 ECC 제어기(240)는 오류의 수에 따라서 고속 오류 정정 방식 및 고성능 오류 정정 방식 중 어느 하나로 오류를 정정하도록 구성된다. 이러한 에러 정정 스킴을 통해 멀티-비트 데이터를 보다 정확하게 읽는 것이 가능하다.
도 3은 도 2에 도시된 ECC 제어기를 개략적으로 보여주는 블록도이다.
도 3을 참조하면, 본 발명에 따른 ECC 제어기(240)는 ECC 인코더(242)와 ECC 디코더(244)를 포함한다. ECC 인코더(242)는 고속 오류 정정 방식에 적합한 인코딩을 수행하는 제1 인코더(410)와 고성능 오류 정정 방식에 적합한 인코딩을 수행하는 제2 인코더(412)를 포함한다. 제1 인코더(410)는 프로그램 데이터(IN_DATA)를 입력받고 고속 오류 정정 방식에 적합한 BCH(Bose-Chadhuri-Hocquenghem) 코드인 제1 ECC 데이터(ECC1)를 생성한다. 제2 인코더(412)는 프로그램 데이터(IN_DATA)를 입력받고 고성능 오류 정정 방식에 적합한 RS(Reed-Solomon) 코드인 제2 ECC 데이터(ECC2)를 생성한다. 본 명세서에서는 제1 인코더(410)가 고속 오류 정정 방식에 적합한 코드로서 BCH 코드를 생성하고, 그리고 제2 인코더(412)가 고성능 오류 정정 방식에 적합한 코드로서 RS 코드를 생성하는 것을 일 예로서 설명하나, 인코딩 코드는 해밍(Hamming) 코드, 컨볼루션(Convolutional) 코드 등이 될 수 있다.
제1 인코더(410)로부터 출력되는 제1 ECC 데이터(ECC1)와 제2 ECC 데이터(ECC2)는 호스트(100)로부터 입력된 프로그램 데이터(IN_DATA)에 부가되어서 메모리 인터페이스(220)를 통해 플래시 메모리 장치(300)에 저장된다.
도 4는 도 3에 도시된 플래시 메모리 장치(300)에 저장되는 기입 데이터(W_DATA)와 플래시 메모리 장치(300)로부터 읽혀진 독출 데이터(R_DATA)의 형식(format)을 보여준다.
본 발명에 있어서, 비록 도면에는 도시되지 않았지만, 플래시 메모리 장치(300)는 적어도 2개의 저장 영역들로 구성된 메모리 셀 어레이를 포함한다. 첫 번째 저장 영역은 호스트로부터 전송된 데이터가 저장되는 영역(이하, 메인 셀 영역이라 칭함)이고, 두 번째 저장 영역은 메인 셀 영역에 저장된 데이터와 관련된 ECC 정보(ECC1+ECC2)가 저장된 영역(이하, 스페어 영역이라 칭함)이다. 메인 셀 영역에 속하는 메모리 셀들 각각에는 멀티-비트 데이터가 저장되는 반면에, 스페어 영역에 속하는 메모리 셀들 각각에는 싱글-비트 데이터가 저장될 수 있다. 또는, 메인 셀 영역에 데이터 및 ECC 정보가 멀티-비트 상태로 저장될 수도 있다.
일반적으로, 멀티-비트 데이터의 에러는 비트 단위로 발생한다는 점에 유의 해야 할 것이다. 즉, 인접한 문턱 전압 분포들의 교차로 인해 데이터 에러가 발생한다. 이는 읽혀진 데이터의 에러가 전염성을 갖지 않음을 의미한다.
도 5는 도 3에 도시된 ECC 인코더(242)의 인코딩 동작을 보여주는 플로우차트이다. 프로그램 데이터(IN_DATA)가 ECC 인코더(242) 내 제1 인코더(410) 및 제2 인코더(420)로 입력된다. 제1 인코더(410) 및 제2 인코더(420)는 각각 제1 ECC 데이터(ECC1) 및 제2 ECC 데이터(ECC2)를 생성한다(520). ECC 인코더(242)는 프로그램 데이터와 제1 인코더(410)에 의해서 생성된 제1 ECC 데이터(ECC1) 그리고 제2 인코더(412)에 의해서 생성된 제2 ECC 데이터(ECC2)를 포함하는 기입 데이터(W_DATA)를 출력한다.
다시 도 3을 참조하면, ECC 디코더(244)는 제1 디코더(420), 디코딩 제어기(422) 그리고 제2 디코더(424)를 포함한다. 플래시 메모리 장치(300)로부터 읽혀진 독출 데이터(R_DATA)는 ECC 디코더(244)로 제공된다. ECC 디코더(244)는 읽혀진 독출 데이터(R_DATA)의 오류를 검출하고, 검출된 오류의 수에 따라서 제1 디코더(420) 및 제2 디코더(424) 중 어느 하나가 디코딩을 수행하도록 제어한다. 예컨대, 디코딩 제어기(422)는 검출된 오류의 수가 3개 이하이면 제1 디코더(420)가 독출 데이터(R_DATA)에 포함된 제1 ECC 데이터(ECC1)를 이용하여 오류를 정정하도록 제어하고, 검출된 오류의 수가 4개 이상이면 제2 디코더(424)가 독출 데이터(R_DATA)에 포함된 제2 ECC 데이터(ECC2)에 근거해서 오류를 정정하도록 제어한다.
제1 디코더(420)는 독출 데이터(R_DATA)에 포함된 제1 ECC 데이터(ECC1)를 이용하여 고속 오류 정정 방식으로 오류를 정정한다. 독출 데이터(R_DATA)에 포함된 오류의 수가 3개 이하인 경우 ELP(error location polynomial)가 복잡하지 않으므로 오류의 정정이 빠른 시간 내에 수행될 수 있다. 제1 디코더(420)는 플래시 메모리 장치(300)로부터 다음 독출 데이터가 입력되기 전에 플래시 메모리 장치(300)로부터 읽혀진 독출 데이터(R_DATA)의 오류를 정정하는 온 더 플라이를 지원한다. 그러므로 복수의 독출 데이터(R_DATA)가 연속적으로 ECC 디코더(244)로 입력되더라도 오류 정정을 위한 별도의 시간이 요구되지 않는다. 본 발명의 제1 디코더(420)는 고속 동작을 위해 오류 정정을 위한 스킴이 하드웨어로 구성될 수 있다.
제2 디코더(424)는 독출 데이터(R_DATA)에 포함된 제2 ECC 데이터(ECC2)를 이용하여 고성능 오류 정정 방식으로 오류를 정정한다. 독출 데이터(R_DATA)에 포함된 오류의 수가 4개 이상인 경우 ELP가 복잡하므로 오류 정정을 위한 스킴을 하드웨어로 구성하는 것이 용이하지 않다. 그러므로 제2 디코더(424)는 오류 정정에 다소 시간이 소요되더라도 정확하게 오류 정정이 가능한 스킴으로 구성되어야 한다. 제2 디코더(424)에서 채용한 RS 코드를 이용한 고성능 오류 정정 방식은 최대 정정 길이 내의 연속된 오류(burst error)에 강인한 특성을 가지며, 심볼 단위의 연산으로 오류를 정정한다. 그러므로 오류의 수가 많은 경우 오류 정정에 적합하다. 다른 실시예에서 제2 디코더(424)는 도 2에 도시된 메모리 컨트롤러(200) 내에 구비되는 버퍼 메모리(미 도시됨)에 저장된 오류 정정 소프트웨어에 따라서 디코딩을 수행할 수 있다.
제2 디코더(424)의 오류 정정에 소요되는 시간이 독출 데이터(R_DATA)가 입력되는 주기보다 길 때, 디코딩 제어기(422)는 제2 디코더(424)가 디코딩을 수행하는 동안 플래시 메모리 장치(300)로부터 독출 데이터(R_DATA)가 입력되지 않도록 제어할 수 있다.
도 6은 도 3에 도시된 ECC 디코더(244)의 디코딩 동작을 보여주는 플로우차트이다.
디코딩 제어기(422)는 플래시 메모리 장치(300)로부터 읽혀진 독출 데이터(R_DATA)를 입력받는다. 디코딩 제어기(422)는 신드롬(syndrome) 계산에 의해서 독출 데이터(R_DATA)의 오류의 개수를 계산한다(620). 디코딩 제어기(422)는 검출된 오류가 없다면(630), 데이터를 호스트 인터페이스(210)를 통해 호스트(100)로 전송한다(670).
디코딩 제어기(422)는 검출된 오류의 수가 3개 이하이면(640) 제1 디코더(420)가 제1 ECC 데이터(ECC1)에 근거해서 오류를 정정하도록 제어하고(650), 검출된 오류의 수가 4개 이상이면 제2 디코더(424)가 제2 ECC 데이터(ECC2)에 근거해서 오류를 정정하도록 제어한다(660).
제1 디코더(420) 및 제2 디코더(424) 중 어느 하나로부터 출력되는 오류 정정된 데이터는 호스트 인터페이스(210)를 통해 호스트(100)로 전송된다.
예시적인 바람직한 실시예들을 이용하여 본 발명을 설명하였지만, 본 발명의 범위는 개시된 실시예들에 한정되지 않는다는 것이 잘 이해될 것이다. 따라서, 청구범위는 그러한 변형 예들 및 그 유사한 구성들 모두를 포함하는 것으로 가능한 폭넓게 해석되어야 한다.
상술한 바와 같이, 고속 오류 정정 방식과 고성능 오류 정정 방식으로 이루어진 오류 정정 스킴을 통해 멀티-비트 데이터를 저장하고 읽음으로써 본래의 멀티-비트 데이터를 정확하게 읽는 것이 가능하다.

Claims (23)

  1. 셀당 M-비트 데이터(M은 2 또는 그 보다 큰 양의 정수)를 저장하는 플래시 메모리 장치의 오류 정정 컨트롤러에 있어서:
    제1 오류 정정 방식에 따라 상기 플래시 메모리 장치에 저장될 입력 데이터로부터 제1 ECC 데이터를 생성하고, 제2 오류 정정 방식에 따라 상기 입력 데이터로부터 제2 ECC 데이터를 생성하는 인코더와;
    상기 입력 데이터, 상기 제1 ECC 데이터 및 상기 제2 ECC 데이터는 상기 플래시 메모리 장치에 저장되고; 그리고
    상기 플래시 메모리 장치로부터 읽혀진 독출 데이터에 포함된 오류의 수를 계산하고, 상기 오류의 수에 따라서 상기 제1 ECC 데이터 그리고 상기 제2 ECC 데이터 중 어느 하나를 이용하여 상기 독출 데이터의 오류를 정정하는 디코더를 포함하는 것을 특징으로 하는 오류 정정 컨트롤러.
  2. 제 1 항에 있어서,
    상기 인코더는,
    상기 제1 오류 정정 방식에 따라 상기 입력 데이터로부터 상기 제1 ECC 데이터를 생성하는 제1 인코더; 그리고
    상기 제2 오류 정정 방식에 따라 상기 입력 데이터로부터 상기 제2 ECC 데이터를 생성하는 제2 인코더를 포함하는 것을 특징으로 하는 오류 정정 컨트롤러.
  3. 제 1 항에 있어서,
    상기 디코더는,
    상기 독출 데이터에 포함된 상기 제1 ECC 데이터를 이용하여 상기 독출 데이터의 오류를 정정하는 제1 디코더와;
    상기 독출 데이터에 포함된 상기 제2 ECC 데이터를 이용하여 상기 독출 데이터의 오류를 정정하는 제2 디코더; 그리고
    상기 독출 데이터에 포함된 상기 오류의 수를 계산하고, 상기 오류의 수에 따라서 상기 제1 그리고 상기 제2 디코더 중 어느 하나가 상기 독출 데이터의 오류를 정정하도록 제어하는 디코딩 컨트롤러를 포함하는 것을 특징으로 하는 오류 정정 컨트롤러.
  4. 제 3 항에 있어서,
    상기 디코딩 컨트롤러는 상기 독출 데이터에 포함된 상기 오류의 수가 3개 이하일 때 상기 제1 디코더가 상기 독출 데이터의 오류를 정정하도록 제어하고, 상기 독출 데이터에 포함된 상기 오류의 수가 4개 이상일 때 상기 제2 디코더가 상기 독출 데이터의 오류를 정정하도록 제어하는 것을 특징으로 하는 오류 정정 컨트롤러.
  5. 제 1 항에 있어서,
    상기 제1 오류 정정 방식은 온 더 플라이를 지원하는 고속 오류 정정 방식이고, 상기 제2 오류 정정 방식은 상기 온 더 플라이를 지원하지 않는 것을 특징으로 하는 오류 정정 컨트롤러.
  6. 제 1 항에 있어서,
    상기 제1 오류 정정 방식은 BCH(Bose, Chaudhuri and Hocquenghem) 코드를 이용하는 오류 정정 방식이고, 상기 제2 오류 정정 방식은 RS(Reed Solomon) 오류 정정 방식인 것을 특징으로 하는 오류 정정 컨트롤러.
  7. 제 1 항에 있어서,
    상기 플래시 메모리 장치는 데이터 영역 및 스페어 영역을 포함하며,
    상기 입력 데이터는 상기 데이터 영역에 저장되고, 상기 제1 ECC 데이터 및 상기 제2 ECC 데이터는 상기 플래시 메모리 장치의 스페어 영역에 저장되는 것을 특징으로 하는 오류 정정 컨트롤러.
  8. 제 7 항에 있어서,
    상기 데이터 영역의 메모리 셀들 각각은 상기 M-비트 데이터를 저장하고, 상기 스페어 영역의 메모리 셀들 각각은 1-비트 데이터를 저장하는 것을 특징으로 하는 오류 정정 컨트롤러.
  9. 제 1 항에 있어서,
    상기 플래시 메모리 장치는 낸드 플래시 메모리 장치, 노어 플래시 메모리 장치, PRAM(phase change random access memory) 장치 그리고 MRAM(magnetic random access memory) 장치 중 어느 하나인 것을 특징으로 하는 오류 정정 컨트롤러.
  10. 셀당 M-비트 데이터(M은 2 또는 그 보다 큰 양의 정수)를 저장하는 플래시 메모리 장치; 그리고
    상기 플래시 메모리 장치를 제어하는 메모리 컨트롤러를 포함하되;
    상기 메모리 컨트롤러는,
    제1 오류 정정 방식에 따라 상기 플래시 메모리 장치에 저장될 입력 데이터로부터 제1 ECC 데이터를 생성하고, 제2 오류 정정 방식에 따라 상기 입력 데이터로부터 제2 ECC 데이터를 생성하는 인코더; 그리고
    상기 플래시 메모리 장치로부터 읽혀진 독출 데이터에 포함된 오류의 수를 계산하고, 상기 오류의 수에 따라서 상기 제1 ECC 데이터 그리고 상기 제2 ECC 데이터 중 어느 하나를 이용하여 상기 독출 데이터의 오류를 정정하는 디코더를 포함하며, 상기 입력 데이터, 상기 제1 ECC 데이터 및 상기 제2 ECC 데이터는 상기 플래시 메모리 장치에 저장하는 것을 특징으로 하는 메모리 시스템.
  11. 제 10 항에 있어서,
    상기 인코더는,
    상기 제1 오류 정정 방식에 따라 상기 입력 데이터로부터 상기 제1 ECC 데이터를 생성하는 제1 인코더; 그리고
    상기 제2 오류 정정 방식에 따라 상기 입력 데이터로부터 상기 제2 ECC 데이터를 생성하는 제2 인코더를 포함하는 것을 특징으로 하는 메모리 시스템.
  12. 제 10 항에 있어서,
    상기 디코더는,
    상기 독출 데이터에 포함된 상기 제1 ECC 데이터를 이용하여 상기 독출 데이터의 오류를 정정하는 제1 디코더와;
    상기 독출 데이터에 포함된 상기 제2 ECC 데이터를 이용하여 상기 독출 데이터의 오류를 정정하는 제2 디코더; 그리고
    상기 독출 데이터에 포함된 상기 오류의 수를 계산하고, 상기 오류의 수에 따라서 상기 제1 그리고 상기 제2 디코더 중 어느 하나가 상기 독출 데이터의 오류를 정정하도록 제어하는 디코딩 컨트롤러를 포함하는 것을 특징으로 하는 메모리 시스템.
  13. 제 10 항에 있어서,
    상기 제1 오류 정정 방식은 온 더 플라이를 지원하는 고속 오류 정정 방식이고, 상기 제2 오류 정정 방식은 상기 온 더 플라이를 지원하지 않는 것을 특징으로 하는 메모리 시스템.
  14. 제 10 항에 있어서,
    상기 제1 오류 정정 방식은 BCH(Bose, Chaudhuri and Hocquenghem) 코드를 이용하는 오류 정정 방식이고, 상기 제2 오류 정정 방식은 RS(Reed Solomon) 오류 정정 방식인 것을 특징으로 하는 메모리 시스템.
  15. 제 10 항에 있어서,
    상기 플래시 메모리 장치는 데이터 영역 및 스페어 영역을 포함하며,
    상기 입력 데이터는 상기 데이터 영역에 저장되고, 상기 제1 ECC 데이터 및 상기 제2 ECC 데이터는 상기 플래시 메모리 장치의 스페어 영역에 저장되는 것을 특징으로 하는 메모리 시스템.
  16. 제 15 항에 있어서,
    상기 데이터 영역의 메모리 셀들 각각은 상기 M-비트 데이터를 저장하고, 상기 스페어 영역의 메모리 셀들 각각은 1-비트 데이터를 저장하는 것을 특징으로 하는 메모리 시스템.
  17. 셀당 M-비트 데이터(M은 2 또는 그 보다 큰 양의 정수)를 저장하는 플래시 메모리 장치에서 상기 M-비트 데이터의 오류를 정정하는 방법에 있어서:
    제1 오류 정정 방식에 따라서 상기 플래시 메모리 장치에 저장될 입력 데이터로부터 제1 ECC 데이터를 생성하는 단계와;
    제2 오류 정정 방식에 따라 상기 입력 데이터로부터 제2 ECC 데이터를 생성하는 단계와;
    상기 입력 데이터, 상기 제1 ECC 데이터 및 상기 제2 ECC 데이터를 상기 플래시 메모리 장치에 저장하는 단계와;
    상기 플래시 메모리 장치로부터 읽혀진 독출 데이터에 포함된 오류의 수를 계산하는 단계와;
    상기 오류의 수에 따라서 상기 제1 ECC 데이터 그리고 상기 제2 ECC 데이터 중 어느 하나를 이용하여 상기 독출 데이터의 오류를 정정하는 단계를 포함하는 것을 특징으로 하는 오류 정정 방법.
  18. 제 17 항에 있어서,
    상기 오류 정정 단계는,
    상기 오류의 수가 3개 이하일 때 상기 제1 ECC 데이터를 이용하여 상기 독출 데이터의 오류를 정정하는 단계; 및
    상기 오류의 수가 4개 이상일 때 상기 제2 ECC 데이터를 이용하여 상기 독출 데이터의 오류를 정정하는 단계를 포함하는 것을 특징으로 하는 오류 정정 방법.
  19. 제 17 항에 있어서,
    상기 제1 오류 정정 방식은 온 더 플라이를 지원하는 고속 오류 정정 방식이고, 상기 제2 오류 정정 방식은 상기 온 더 플라이를 지원하지 않는 것을 특징으로 하는 오류 정정 방법.
  20. 제 17 항에 있어서,
    상기 제1 오류 정정 방식은 BCH(Bose, Chaudhuri and Hocquenghem) 코드를 이용하는 오류 정정 방식이고, 상기 제2 오류 정정 방식은 RS(Reed Solomon) 오류 정정 방식인 것을 특징으로 하는 오류 정정 방법.
  21. 제 17 항에 있어서,
    상기 플래시 메모리 장치는 데이터 영역 및 스페어 영역을 포함하며,
    상기 입력 데이터는 상기 데이터 영역에 저장되고, 상기 제1 ECC 데이터 및 상기 제2 ECC 데이터는 상기 플래시 메모리 장치의 스페어 영역에 저장되는 것을 특징으로 하는 오류 정정 방법.
  22. 제 21 항에 있어서,
    상기 데이터 영역의 메모리 셀들 각각은 상기 M-비트 데이터를 저장하고, 상기 스페어 영역의 메모리 셀들 각각은 1-비트 데이터를 저장하는 것을 특징으로 하는 오류 정정 방법.
  23. 제 17 항에 있어서,
    상기 플래시 메모리 장치는 낸드 플래시 메모리 장치, 노어 플래시 메모리 장치, PRAM(phase change random access memory) 장치 그리고 MRAM(magnetic random access memory) 장치 중 어느 하나인 것을 특징으로 하는 오류 정정 방법.
KR1020070002090A 2007-01-08 2007-01-08 플래시 메모리 장치의 오류 정정 컨트롤러 및 그것을포함하는 메모리 시스템 KR100842680B1 (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020070002090A KR100842680B1 (ko) 2007-01-08 2007-01-08 플래시 메모리 장치의 오류 정정 컨트롤러 및 그것을포함하는 메모리 시스템
US11/692,992 US7904790B2 (en) 2007-01-08 2007-03-29 Flash memory device error correction code controllers and related methods and memory systems
CN2008101446283A CN101329916B (zh) 2007-01-08 2008-01-08 闪存装置纠错码控制器以及相关方法和存储系统
US13/012,984 US8112692B2 (en) 2007-01-08 2011-01-25 Flash memory device error correction code controllers and related methods and memory systems
US13/012,955 US8788905B2 (en) 2007-01-08 2011-01-25 Flash memory device error correction code controllers and related methods and memory systems

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070002090A KR100842680B1 (ko) 2007-01-08 2007-01-08 플래시 메모리 장치의 오류 정정 컨트롤러 및 그것을포함하는 메모리 시스템

Publications (1)

Publication Number Publication Date
KR100842680B1 true KR100842680B1 (ko) 2008-07-01

Family

ID=39595310

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070002090A KR100842680B1 (ko) 2007-01-08 2007-01-08 플래시 메모리 장치의 오류 정정 컨트롤러 및 그것을포함하는 메모리 시스템

Country Status (3)

Country Link
US (3) US7904790B2 (ko)
KR (1) KR100842680B1 (ko)
CN (1) CN101329916B (ko)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100955157B1 (ko) * 2008-12-24 2010-04-28 서울대학교산학협력단 메모리 장치 및 메모리 장치의 관리 방법
KR20100109445A (ko) * 2009-03-30 2010-10-08 가부시끼가이샤 도시바 메모리 컨트롤러 및 반도체 기억 장치
KR101308616B1 (ko) * 2011-12-14 2013-09-23 주식회사 디에이아이오 비휘발성 메모리 시스템
US8769378B2 (en) 2011-02-22 2014-07-01 Samsung Electronics Co., Ltd. Controller, a method of operating the controller and a memory system
KR20140093248A (ko) * 2011-11-18 2014-07-25 쌘디스크 엔터프라이즈 아이피 엘엘씨 복수의 패리티 세그먼트를 갖는 코드워드를 디코딩하기 위한 시스템, 방법 및 장치들
US9286156B2 (en) 2012-12-04 2016-03-15 SK Hynix Inc. Data storage device and method for processing error correction code thereof
KR101606498B1 (ko) 2013-06-05 2016-04-01 실리콘 모션 인코포레이티드 플래시 메모리의 하나 이상의 셀의 데이터 비트를 정정하기 위한 방법, 제어기 및 메모리 장치
KR101816642B1 (ko) 2011-07-28 2018-01-10 삼성전자주식회사 에러 정정 회로, 이를 포함하는 비휘발성 메모리 장치 및 이의 구동 방법

Families Citing this family (158)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100856129B1 (ko) * 2006-12-29 2008-09-03 삼성전자주식회사 오정정 확률을 줄이는 에러 정정 회로, 그 방법 및 상기회로를 구비하는 반도체 메모리 장치
KR100845529B1 (ko) * 2007-01-03 2008-07-10 삼성전자주식회사 플래시 메모리 장치의 이씨씨 제어기 및 그것을 포함한메모리 시스템
US8051358B2 (en) * 2007-07-06 2011-11-01 Micron Technology, Inc. Error recovery storage along a nand-flash string
US8065583B2 (en) * 2007-07-06 2011-11-22 Micron Technology, Inc. Data storage with an outer block code and a stream-based inner code
US8122322B2 (en) * 2007-07-31 2012-02-21 Seagate Technology Llc System and method of storing reliability data
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
US8327245B2 (en) 2007-11-21 2012-12-04 Micron Technology, Inc. Memory controller supporting rate-compatible punctured codes
US8499229B2 (en) 2007-11-21 2013-07-30 Micro Technology, Inc. Method and apparatus for reading data from flash memory
US7934052B2 (en) * 2007-12-27 2011-04-26 Pliant Technology, Inc. System and method for performing host initiated mass storage commands using a hierarchy of data structures
US9477587B2 (en) 2008-04-11 2016-10-25 Micron Technology, Inc. Method and apparatus for a volume management system in a non-volatile memory device
KR101483190B1 (ko) * 2008-09-05 2015-01-19 삼성전자주식회사 메모리 시스템 및 그것의 데이터 처리 방법
US20100100797A1 (en) * 2008-10-16 2010-04-22 Genesys Logic, Inc. Dual mode error correction code (ecc) apparatus for flash memory and method thereof
US8583986B2 (en) * 2008-12-17 2013-11-12 Seagate Technology Llc Solid-state memory with error correction coding
US8880970B2 (en) * 2008-12-23 2014-11-04 Conversant Intellectual Property Management Inc. Error detection method and a system including one or more memory devices
US8555143B2 (en) * 2008-12-22 2013-10-08 Industrial Technology Research Institute Flash memory controller and the method thereof
US8473815B2 (en) * 2008-12-22 2013-06-25 Industrial Technology Research Institute Methods and systems of a flash memory controller and an error correction code (ECC) controller using variable-length segmented ECC data
US8438452B2 (en) * 2008-12-29 2013-05-07 Intel Corporation Poison bit error checking code scheme
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
JP2010198209A (ja) * 2009-02-24 2010-09-09 Toshiba Corp 半導体記憶装置
TWI404067B (zh) * 2009-02-27 2013-08-01 Macronix Int Co Ltd 記憶體裝置及其操作方法
US8874825B2 (en) * 2009-06-30 2014-10-28 Sandisk Technologies Inc. Storage device and method using parameters based on physical memory block location
GB2490461A (en) * 2010-01-28 2012-10-31 Ibm Method, device and computer program product for decoding a codeword
US8386895B2 (en) 2010-05-19 2013-02-26 Micron Technology, Inc. Enhanced multilevel memory
US8683295B1 (en) * 2010-08-31 2014-03-25 Western Digital Technologies, Inc. Hybrid drive writing extended error correction code symbols to disk for data sectors stored in non-volatile semiconductor memory
JP2012094132A (ja) * 2010-10-01 2012-05-17 Siglead Inc 不揮発性半導体メモリ装置とデータ誤り訂正方法
US8418026B2 (en) 2010-10-27 2013-04-09 Sandisk Technologies Inc. Hybrid error correction coding to address uncorrectable errors
US8484542B2 (en) 2011-02-08 2013-07-09 Sandisk Technologies Inc. Data recovery using additional error correction coding data
US8788922B2 (en) * 2011-02-28 2014-07-22 Apple Inc Error correction codes for incremental redundancy
US8910020B2 (en) 2011-06-19 2014-12-09 Sandisk Enterprise Ip Llc Intelligent bit recovery for flash memory
US8909982B2 (en) 2011-06-19 2014-12-09 Sandisk Enterprise Ip Llc System and method for detecting copyback programming problems
JP2013029882A (ja) * 2011-07-26 2013-02-07 Toshiba Corp メモリコントローラ、半導体記憶装置および復号方法
KR20130044694A (ko) * 2011-10-24 2013-05-03 삼성전자주식회사 메모리 시스템 및 그 데이터 기록 재생 방법
US9058289B2 (en) 2011-11-07 2015-06-16 Sandisk Enterprise Ip Llc Soft information generation for memory systems
CN102394114B (zh) * 2011-11-14 2014-01-01 清华大学 具有自适应纠错能力的bch码纠错方法
US8954822B2 (en) 2011-11-18 2015-02-10 Sandisk Enterprise Ip Llc Data encoder and decoder using memory-specific parity-check matrix
US9048876B2 (en) 2011-11-18 2015-06-02 Sandisk Enterprise Ip Llc Systems, methods and devices for multi-tiered error correction
JP2013109567A (ja) * 2011-11-21 2013-06-06 Toshiba Corp ストレージデバイス及び誤り訂正方法
US9093154B2 (en) * 2012-01-16 2015-07-28 Silicon Motion, Inc. Method, memory controller and system for reading data stored in flash memory
KR101942275B1 (ko) 2012-04-18 2019-01-25 삼성전자주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
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
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
US9021333B1 (en) 2012-05-22 2015-04-28 Pmc-Sierra, Inc. Systems and methods for recovering data from failed portions of a flash drive
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
US9176812B1 (en) 2012-05-22 2015-11-03 Pmc-Sierra, Inc. Systems and methods for storing data in page stripes of 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
US20130318418A1 (en) * 2012-05-22 2013-11-28 Politecncio di Milano Adaptive error correction for phase change memory
US9047214B1 (en) 2012-05-22 2015-06-02 Pmc-Sierra, Inc. System and method for tolerating a failed page in a flash device
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
US8793556B1 (en) 2012-05-22 2014-07-29 Pmc-Sierra, Inc. Systems and methods for reclaiming flash blocks 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
TWI514405B (zh) * 2012-06-08 2015-12-21 Silicon Motion Inc 修正快閃記憶體之至少一儲存單元之資料位元的方法、控制器及記憶體裝置
US20140006897A1 (en) * 2012-06-29 2014-01-02 International Business Machines Corporation Correction of structured burst errors in data
US9699263B1 (en) 2012-08-17 2017-07-04 Sandisk Technologies Llc. Automatic read and write acceleration of data accessed by virtual machines
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
US9501398B2 (en) 2012-12-26 2016-11-22 Sandisk Technologies Llc Persistent storage device with NVRAM for staging writes
US9239751B1 (en) 2012-12-27 2016-01-19 Sandisk Enterprise Ip Llc Compressing data from multiple reads for error control management in memory systems
US9612948B2 (en) 2012-12-27 2017-04-04 Sandisk Technologies Llc Reads and writes between a contiguous data block and noncontiguous sets of logical address blocks in a persistent storage device
US9454420B1 (en) 2012-12-31 2016-09-27 Sandisk Technologies Llc Method and system of reading threshold voltage equalization
US9003264B1 (en) 2012-12-31 2015-04-07 Sandisk Enterprise Ip Llc Systems, methods, and devices for multi-dimensional flash RAID data protection
US9043668B2 (en) 2013-02-08 2015-05-26 Seagate Technology Llc Using ECC data for write deduplication processing
US9329928B2 (en) 2013-02-20 2016-05-03 Sandisk Enterprise IP LLC. Bandwidth optimization in a non-volatile memory system
US9214965B2 (en) 2013-02-20 2015-12-15 Sandisk Enterprise Ip Llc Method and system for improving data integrity in non-volatile storage
KR102143517B1 (ko) 2013-02-26 2020-08-12 삼성전자 주식회사 에러 정정회로를 포함하는 반도체 메모리 장치 및 반도체 메모리 장치의 동작방법
CN104035832B (zh) * 2013-03-04 2018-07-03 联想(北京)有限公司 电子设备和数据校验方法
US9870830B1 (en) 2013-03-14 2018-01-16 Sandisk Technologies Llc Optimal multilevel sensing for reading data from a storage medium
US9367246B2 (en) 2013-03-15 2016-06-14 Sandisk Technologies Inc. Performance optimization of data transfer for soft information generation
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
US9136877B1 (en) 2013-03-15 2015-09-15 Sandisk Enterprise Ip Llc Syndrome layered decoding for LDPC codes
US9053012B1 (en) 2013-03-15 2015-06-09 Pmc-Sierra, Inc. Systems and methods for storing data for solid-state memory
US9244763B1 (en) 2013-03-15 2016-01-26 Sandisk Enterprise Ip Llc System and method for updating a reading threshold voltage based on symbol transition information
US9236886B1 (en) 2013-03-15 2016-01-12 Sandisk Enterprise Ip Llc Universal and reconfigurable QC-LDPC encoder
US9081701B1 (en) 2013-03-15 2015-07-14 Pmc-Sierra, Inc. Systems and methods for decoding data for solid-state memory
US9208018B1 (en) 2013-03-15 2015-12-08 Pmc-Sierra, Inc. Systems and methods for reclaiming memory for solid-state memory
US9009576B1 (en) 2013-03-15 2015-04-14 Sandisk Enterprise Ip Llc Adaptive LLR based on syndrome weight
US9092350B1 (en) 2013-03-15 2015-07-28 Sandisk Enterprise Ip Llc Detection and handling of unbalanced errors in interleaved codewords
US9009565B1 (en) 2013-03-15 2015-04-14 Pmc-Sierra, Inc. Systems and methods for mapping for solid-state memory
US10049037B2 (en) 2013-04-05 2018-08-14 Sandisk Enterprise Ip Llc Data management in a storage system
US9170941B2 (en) 2013-04-05 2015-10-27 Sandisk Enterprises IP LLC Data hardening in a storage system
TWI502597B (zh) * 2013-05-13 2015-10-01 Univ Nat Taiwan Science Tech 非揮發性記憶體的資料反轉與回復方法
US9159437B2 (en) 2013-06-11 2015-10-13 Sandisk Enterprise IP LLC. Device and method for resolving an LM flag issue
US9524235B1 (en) 2013-07-25 2016-12-20 Sandisk Technologies Llc Local hash value generation in non-volatile data storage systems
US9384126B1 (en) 2013-07-25 2016-07-05 Sandisk Technologies Inc. Methods and systems to avoid false negative results in bloom filters implemented in non-volatile data storage systems
US9043517B1 (en) 2013-07-25 2015-05-26 Sandisk Enterprise Ip Llc Multipass programming in buffers implemented in non-volatile data storage systems
US9639463B1 (en) 2013-08-26 2017-05-02 Sandisk Technologies Llc Heuristic aware garbage collection scheme in storage systems
US9235509B1 (en) 2013-08-26 2016-01-12 Sandisk Enterprise Ip Llc Write amplification reduction by delaying read access to data written during garbage collection
US9442670B2 (en) 2013-09-03 2016-09-13 Sandisk Technologies Llc Method and system for rebalancing data stored in flash memory devices
US9519577B2 (en) 2013-09-03 2016-12-13 Sandisk Technologies Llc Method and system for migrating data between flash memory devices
US9158349B2 (en) 2013-10-04 2015-10-13 Sandisk Enterprise Ip Llc System and method for heat dissipation
US9323637B2 (en) 2013-10-07 2016-04-26 Sandisk Enterprise Ip Llc Power sequencing and data hardening architecture
US9442662B2 (en) 2013-10-18 2016-09-13 Sandisk Technologies Llc Device and method for managing die groups
US9298608B2 (en) 2013-10-18 2016-03-29 Sandisk Enterprise Ip Llc Biasing for wear leveling in storage systems
US9436831B2 (en) 2013-10-30 2016-09-06 Sandisk Technologies Llc Secure erase in a memory device
US9263156B2 (en) 2013-11-07 2016-02-16 Sandisk Enterprise Ip Llc System and method for adjusting trip points within a storage device
US9244785B2 (en) 2013-11-13 2016-01-26 Sandisk Enterprise Ip Llc Simulated power failure and data hardening
US9152555B2 (en) 2013-11-15 2015-10-06 Sandisk Enterprise IP LLC. Data management with modular erase in a data storage system
US9703816B2 (en) 2013-11-19 2017-07-11 Sandisk Technologies Llc Method and system for forward reference logging in a persistent datastore
US9520197B2 (en) 2013-11-22 2016-12-13 Sandisk Technologies Llc Adaptive erase of a storage device
US9520162B2 (en) 2013-11-27 2016-12-13 Sandisk Technologies Llc DIMM device controller supervisor
US9122636B2 (en) 2013-11-27 2015-09-01 Sandisk Enterprise Ip Llc Hard power fail architecture
US9280429B2 (en) 2013-11-27 2016-03-08 Sandisk Enterprise Ip Llc Power fail latching based on monitoring multiple power supply voltages in a storage device
TWI527048B (zh) 2013-11-29 2016-03-21 慧榮科技股份有限公司 應用於快閃記憶體裝置的錯誤更正碼單元、自我測試方法及相關的控制器
US9250676B2 (en) 2013-11-29 2016-02-02 Sandisk Enterprise Ip Llc Power failure architecture and verification
US9582058B2 (en) 2013-11-29 2017-02-28 Sandisk Technologies Llc Power inrush management of storage devices
US9092370B2 (en) 2013-12-03 2015-07-28 Sandisk Enterprise Ip Llc Power failure tolerant cryptographic erase
US9235245B2 (en) 2013-12-04 2016-01-12 Sandisk Enterprise Ip Llc Startup performance and power isolation
US9129665B2 (en) 2013-12-17 2015-09-08 Sandisk Enterprise Ip Llc Dynamic brownout adjustment in a storage device
US9389956B2 (en) 2014-01-10 2016-07-12 International Business Machines Corporation Implementing ECC control for enhanced endurance and data retention of flash memories
US9549457B2 (en) 2014-02-12 2017-01-17 Sandisk Technologies Llc System and method for redirecting airflow across an electronic assembly
US9497889B2 (en) 2014-02-27 2016-11-15 Sandisk Technologies Llc Heat dissipation for substrate assemblies
US9703636B2 (en) 2014-03-01 2017-07-11 Sandisk Technologies Llc Firmware reversion trigger and control
US9417945B2 (en) 2014-03-05 2016-08-16 International Business Machines Corporation Error checking and correction for NAND flash devices
US9348377B2 (en) 2014-03-14 2016-05-24 Sandisk Enterprise Ip Llc Thermal isolation techniques
US9519319B2 (en) 2014-03-14 2016-12-13 Sandisk Technologies Llc Self-supporting thermal tube structure for electronic assemblies
US9485851B2 (en) 2014-03-14 2016-11-01 Sandisk Technologies Llc Thermal tube assembly structures
US9454448B2 (en) 2014-03-19 2016-09-27 Sandisk Technologies Llc Fault testing in storage devices
US9390814B2 (en) 2014-03-19 2016-07-12 Sandisk Technologies Llc Fault detection and prediction for data storage elements
US9448876B2 (en) 2014-03-19 2016-09-20 Sandisk Technologies Llc Fault detection and prediction in storage devices
US9390021B2 (en) 2014-03-31 2016-07-12 Sandisk Technologies Llc Efficient cache utilization in a tiered data structure
US9626400B2 (en) 2014-03-31 2017-04-18 Sandisk Technologies Llc Compaction of information in tiered data structure
US9626399B2 (en) 2014-03-31 2017-04-18 Sandisk Technologies Llc Conditional updates for reducing frequency of data modification operations
US9697267B2 (en) 2014-04-03 2017-07-04 Sandisk Technologies Llc Methods and systems for performing efficient snapshots in tiered data structures
CN103916139B (zh) * 2014-04-22 2016-12-21 淮安固泰存储科技有限公司 一种基于里德所罗门码的加强型编码方法、解码方法及解码器
US10656840B2 (en) 2014-05-30 2020-05-19 Sandisk Technologies Llc Real-time I/O pattern recognition to enhance performance and endurance of a storage device
US10114557B2 (en) 2014-05-30 2018-10-30 Sandisk Technologies Llc Identification of hot regions to enhance performance and endurance of a non-volatile storage device
US9070481B1 (en) 2014-05-30 2015-06-30 Sandisk Technologies Inc. Internal current measurement for age measurements
US8891303B1 (en) 2014-05-30 2014-11-18 Sandisk Technologies Inc. Method and system for dynamic word line based configuration of a three-dimensional memory device
US9703491B2 (en) 2014-05-30 2017-07-11 Sandisk Technologies Llc Using history of unaligned writes to cache data and avoid read-modify-writes in a non-volatile storage device
US10162748B2 (en) 2014-05-30 2018-12-25 Sandisk Technologies Llc Prioritizing garbage collection and block allocation based on I/O history for logical address regions
US10372613B2 (en) 2014-05-30 2019-08-06 Sandisk Technologies Llc Using sub-region I/O history to cache repeatedly accessed sub-regions in a non-volatile storage device
US9093160B1 (en) 2014-05-30 2015-07-28 Sandisk Technologies Inc. Methods and systems for staggered memory operations
US9645749B2 (en) 2014-05-30 2017-05-09 Sandisk Technologies Llc Method and system for recharacterizing the storage density of a memory device or a portion thereof
US10656842B2 (en) 2014-05-30 2020-05-19 Sandisk Technologies Llc Using history of I/O sizes and I/O sequences to trigger coalesced writes in a non-volatile storage device
US10146448B2 (en) 2014-05-30 2018-12-04 Sandisk Technologies Llc Using history of I/O sequences to trigger cached read ahead in a non-volatile storage device
US9652381B2 (en) 2014-06-19 2017-05-16 Sandisk Technologies Llc Sub-block garbage collection
KR101548875B1 (ko) * 2014-08-28 2015-09-01 성균관대학교산학협력단 메모리의 오류검사정정 성능 향상방법
US9443601B2 (en) 2014-09-08 2016-09-13 Sandisk Technologies Llc Holdup capacitor energy harvesting
WO2016051599A1 (ja) * 2014-10-03 2016-04-07 株式会社日立製作所 メモリコントローラ及びデータ制御方法
TWI556254B (zh) * 2014-10-14 2016-11-01 慧榮科技股份有限公司 資料儲存裝置及其資料存取方法
US9768808B2 (en) 2015-04-08 2017-09-19 Sandisk Technologies Llc Method for modifying device-specific variable error correction settings
US9606737B2 (en) 2015-05-20 2017-03-28 Sandisk Technologies Llc Variable bit encoding per NAND flash cell to extend life of flash-based storage devices and preserve over-provisioning
US9639282B2 (en) 2015-05-20 2017-05-02 Sandisk Technologies Llc Variable bit encoding per NAND flash cell to improve device endurance and extend life of flash-based storage devices
JP6577302B2 (ja) * 2015-08-28 2019-09-18 東芝メモリ株式会社 メモリシステム
US9830084B2 (en) 2015-12-03 2017-11-28 Sandisk Technologies Llc Writing logical groups of data to physical locations in memory using headers
US10013179B2 (en) 2015-12-03 2018-07-03 Sandisk Technologies Llc Reading logical groups of data from physical locations in memory using headers
KR20170076350A (ko) * 2015-12-24 2017-07-04 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US10348337B2 (en) * 2017-02-23 2019-07-09 Winbond Electronics Corp. Data read method and memory storage device using the same
US11521697B2 (en) 2019-01-30 2022-12-06 STMicroelectronics International, N.V. Circuit and method for at speed detection of a word line fault condition in a memory circuit
US11393532B2 (en) 2019-04-24 2022-07-19 Stmicroelectronics International N.V. Circuit and method for at speed detection of a word line fault condition in a memory circuit
US11475170B2 (en) 2019-05-28 2022-10-18 Nuvoton Technology Corporation System and method for correction of memory errors
US11342044B2 (en) 2019-05-28 2022-05-24 Nuvoton Technology Corporation System and method for prioritization of bit error correction attempts
US11611358B2 (en) 2019-12-24 2023-03-21 Kioxia Corporation Systems and methods for detecting or preventing false detection of three error bits by SEC
US11456757B2 (en) 2020-12-16 2022-09-27 SK Hynix Inc. Oscillation detection and mitigation in bit-flipping decoders
US11621727B2 (en) * 2021-06-04 2023-04-04 SK Hynix Inc. Decoding systems and methods for local reinforcement
CN113571121A (zh) * 2021-07-26 2021-10-29 杭州国芯科技股份有限公司 嵌入式设备NAND Flash的ECC码存储方法
CN114360624A (zh) * 2022-01-04 2022-04-15 珠海创飞芯科技有限公司 一种闪存结构、数据处理方法、存储介质及电子设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10312340A (ja) 1997-05-12 1998-11-24 Kofu Nippon Denki Kk 半導体記憶装置におけるエラー検出,訂正方式
US6684353B1 (en) 2000-12-07 2004-01-27 Advanced Micro Devices, Inc. Reliability monitor for a memory array
KR20040038711A (ko) * 2002-10-28 2004-05-08 샌디스크 코포레이션 비휘발성 메모리 시스템내 에러 수정 코드용 하이브리드구현
US6769087B2 (en) 2000-04-11 2004-07-27 Kabushiki Kaisha Toshiba Data storage device and method for controlling the device
JP2005285270A (ja) 2004-03-30 2005-10-13 Elpida Memory Inc 半導体装置及び試験方法

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5475693A (en) 1994-12-27 1995-12-12 Intel Corporation Error management processes for flash EEPROM memory arrays
JPH10207726A (ja) * 1997-01-23 1998-08-07 Oki Electric Ind Co Ltd 半導体ディスク装置
US6034891A (en) * 1997-12-01 2000-03-07 Micron Technology, Inc. Multi-state flash memory defect management
US6041001A (en) * 1999-02-25 2000-03-21 Lexar Media, Inc. Method of increasing data reliability of a flash memory device without compromising compatibility
JP3975245B2 (ja) * 1999-12-16 2007-09-12 株式会社ルネサステクノロジ 記録再生装置および半導体メモリ
JP3562432B2 (ja) * 2000-04-12 2004-09-08 日産自動車株式会社 車両のエンジン自動停止再始動装置
FR2810152A1 (fr) * 2000-06-13 2001-12-14 St Microelectronics Sa Memoire eeprom securisee comprenant un circuit de correction d'erreur
KR100870392B1 (ko) * 2001-04-24 2008-11-25 엔엑스피 비 브이 시스템 및 데이터 저장 방법
JP4059473B2 (ja) * 2001-08-09 2008-03-12 株式会社ルネサステクノロジ メモリカード及びメモリコントローラ
US6904492B2 (en) * 2001-12-19 2005-06-07 Hewlett-Packard Development Company, L.P. Write-once memory device including non-volatile memory for temporary storage
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
JP2004186856A (ja) 2002-12-02 2004-07-02 Pioneer Electronic Corp 誤り訂正方法、装置及びプログラム
JP2004234545A (ja) * 2003-01-31 2004-08-19 Toshiba Corp 制御回路及びメモリコントローラ
MY147104A (en) 2003-08-18 2012-10-31 Sony Corp Data recording/reproducing device, data recording/reproducing method, program, and recording medium
US7325157B2 (en) * 2003-11-03 2008-01-29 Samsung Electronics Co., Ltd Magnetic memory devices having selective error encoding capability based on fault probabilities
US7366246B2 (en) * 2003-12-09 2008-04-29 Delphi Technologies, Inc. Method to maximize receiver performance in a multi-stream system
US7210077B2 (en) * 2004-01-29 2007-04-24 Hewlett-Packard Development Company, L.P. System and method for configuring a solid-state storage device with error correction coding
EP1612949B1 (en) 2004-06-30 2010-04-21 STMicroelectronics Srl Method and system for correcting errors in electronic memory devices
US7673222B2 (en) 2005-07-15 2010-03-02 Mediatek Incorporation Error-correcting apparatus including multiple error-correcting modules functioning in parallel and related method
US7747927B2 (en) * 2005-11-22 2010-06-29 Sandisk Corporation Method for adapting a memory system to operate with a legacy host originally designed to operate with a different memory system
US8055979B2 (en) * 2006-01-20 2011-11-08 Marvell World Trade Ltd. Flash memory with coding and signal processing
US7809994B2 (en) * 2006-05-17 2010-10-05 Sandisk Corporation Error correction coding for multiple-sector pages in flash memory devices
US7904780B2 (en) * 2006-11-03 2011-03-08 Sandisk Corporation Methods of modulating error correction coding
US8001441B2 (en) * 2006-11-03 2011-08-16 Sandisk Technologies Inc. Nonvolatile memory with modulated error correction coding
US7904788B2 (en) * 2006-11-03 2011-03-08 Sandisk Corporation Methods of varying read threshold voltage in nonvolatile memory
US8015473B2 (en) * 2006-12-19 2011-09-06 Intel Corporation Method, system, and apparatus for ECC protection of small data structures
JP4498426B2 (ja) * 2008-03-01 2010-07-07 株式会社東芝 メモリシステム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10312340A (ja) 1997-05-12 1998-11-24 Kofu Nippon Denki Kk 半導体記憶装置におけるエラー検出,訂正方式
US6769087B2 (en) 2000-04-11 2004-07-27 Kabushiki Kaisha Toshiba Data storage device and method for controlling the device
US6684353B1 (en) 2000-12-07 2004-01-27 Advanced Micro Devices, Inc. Reliability monitor for a memory array
KR20040038711A (ko) * 2002-10-28 2004-05-08 샌디스크 코포레이션 비휘발성 메모리 시스템내 에러 수정 코드용 하이브리드구현
JP2005285270A (ja) 2004-03-30 2005-10-13 Elpida Memory Inc 半導体装置及び試験方法

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100955157B1 (ko) * 2008-12-24 2010-04-28 서울대학교산학협력단 메모리 장치 및 메모리 장치의 관리 방법
KR20100109445A (ko) * 2009-03-30 2010-10-08 가부시끼가이샤 도시바 메모리 컨트롤러 및 반도체 기억 장치
US8769378B2 (en) 2011-02-22 2014-07-01 Samsung Electronics Co., Ltd. Controller, a method of operating the controller and a memory system
KR101816642B1 (ko) 2011-07-28 2018-01-10 삼성전자주식회사 에러 정정 회로, 이를 포함하는 비휘발성 메모리 장치 및 이의 구동 방법
KR20140093248A (ko) * 2011-11-18 2014-07-25 쌘디스크 엔터프라이즈 아이피 엘엘씨 복수의 패리티 세그먼트를 갖는 코드워드를 디코딩하기 위한 시스템, 방법 및 장치들
KR101995609B1 (ko) 2011-11-18 2019-07-02 샌디스크 테크놀로지스 엘엘씨 복수의 패리티 세그먼트를 갖는 코드워드를 디코딩하기 위한 시스템, 방법 및 장치들
KR101308616B1 (ko) * 2011-12-14 2013-09-23 주식회사 디에이아이오 비휘발성 메모리 시스템
US9286156B2 (en) 2012-12-04 2016-03-15 SK Hynix Inc. Data storage device and method for processing error correction code thereof
KR101606498B1 (ko) 2013-06-05 2016-04-01 실리콘 모션 인코포레이티드 플래시 메모리의 하나 이상의 셀의 데이터 비트를 정정하기 위한 방법, 제어기 및 메모리 장치

Also Published As

Publication number Publication date
US20080168319A1 (en) 2008-07-10
US7904790B2 (en) 2011-03-08
US8788905B2 (en) 2014-07-22
US20110119561A1 (en) 2011-05-19
CN101329916B (zh) 2013-01-02
CN101329916A (zh) 2008-12-24
US8112692B2 (en) 2012-02-07
US20110119560A1 (en) 2011-05-19

Similar Documents

Publication Publication Date Title
KR100842680B1 (ko) 플래시 메모리 장치의 오류 정정 컨트롤러 및 그것을포함하는 메모리 시스템
KR100845529B1 (ko) 플래시 메모리 장치의 이씨씨 제어기 및 그것을 포함한메모리 시스템
US9535620B2 (en) Flash memory system and method controlling same
CN107133122B (zh) 存储器控制方法
US8732553B2 (en) Memory system and control method thereof
KR101519626B1 (ko) 반도체 메모리 장치 및 그것의 데이터 처리 방법
KR101736792B1 (ko) 플래시 메모리 및 그것의 셀프 인터리빙 방법
US9411679B2 (en) Code modulation encoder and decoder, memory controller including them, and flash memory system
US9213602B1 (en) Write mapping to mitigate hard errors via soft-decision decoding
US20090177931A1 (en) Memory device and error control codes decoding method
TWI514388B (zh) 讀取快閃記憶體中所儲存之資料的方法、記憶體控制器與系統
US20160350179A1 (en) Decoding method, memory storage device and memory control circuit unit
KR100872186B1 (ko) 상이한 에러 제어 스킴을 갖는 하이브리드 플래시 메모리장치 및 그것을 포함한 메모리 시스템
KR20140045168A (ko) 불휘발성 메모리 장치, 메모리 시스템 및 불휘발성 메모리 장치의 동작방법
US9405624B2 (en) On-die error detection and correction during multi-step programming
US8589756B2 (en) Semiconductor memory device, semiconductor memory system, and erasure correction method
US20190026182A1 (en) Methods and apparatuses for error correction
US10186302B2 (en) Semiconductor systems performing double-write operations and methods of operating the same
US20130104003A1 (en) Memory system and method for recording/reproducing data thereof
KR20160075001A (ko) 플래시 메모리 시스템 동작 방법
US10922025B2 (en) Nonvolatile memory bad row management
CN116940986A (zh) 用于减少ecc功率消耗的方法及系统
US20190294497A1 (en) Method of implementing error correction code used by memory storage apparatus and memory storage apparatus using the same
KR101308616B1 (ko) 비휘발성 메모리 시스템
KR20090048142A (ko) 불휘발성 메모리 장치의 ecc 처리부

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

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20140530

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20150601

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20160531

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20190530

Year of fee payment: 12