KR100842680B1 - 플래시 메모리 장치의 오류 정정 컨트롤러 및 그것을포함하는 메모리 시스템 - Google Patents
플래시 메모리 장치의 오류 정정 컨트롤러 및 그것을포함하는 메모리 시스템 Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1072—Adding 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1068—Adding 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
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/08—Address circuits; Decoders; Word-line control circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/13—Linear codes
- H03M13/19—Single error correction without using particular properties of the cyclic codes, e.g. Hamming codes, extended or generalised Hamming codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/23—Error 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
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/35—Unequal 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
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/3707—Adaptive decoding and hybrid decoding, e.g. decoding methods or techniques providing more than one decoding algorithm for one code
- H03M13/3715—Adaptation to the number of estimated errors or to the channel state
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic 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/1515—Reed-Solomon codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic 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/152—Bose-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
도 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)
- 셀당 M-비트 데이터(M은 2 또는 그 보다 큰 양의 정수)를 저장하는 플래시 메모리 장치의 오류 정정 컨트롤러에 있어서:제1 오류 정정 방식에 따라 상기 플래시 메모리 장치에 저장될 입력 데이터로부터 제1 ECC 데이터를 생성하고, 제2 오류 정정 방식에 따라 상기 입력 데이터로부터 제2 ECC 데이터를 생성하는 인코더와;상기 입력 데이터, 상기 제1 ECC 데이터 및 상기 제2 ECC 데이터는 상기 플래시 메모리 장치에 저장되고; 그리고상기 플래시 메모리 장치로부터 읽혀진 독출 데이터에 포함된 오류의 수를 계산하고, 상기 오류의 수에 따라서 상기 제1 ECC 데이터 그리고 상기 제2 ECC 데이터 중 어느 하나를 이용하여 상기 독출 데이터의 오류를 정정하는 디코더를 포함하는 것을 특징으로 하는 오류 정정 컨트롤러.
- 제 1 항에 있어서,상기 인코더는,상기 제1 오류 정정 방식에 따라 상기 입력 데이터로부터 상기 제1 ECC 데이터를 생성하는 제1 인코더; 그리고상기 제2 오류 정정 방식에 따라 상기 입력 데이터로부터 상기 제2 ECC 데이터를 생성하는 제2 인코더를 포함하는 것을 특징으로 하는 오류 정정 컨트롤러.
- 제 1 항에 있어서,상기 디코더는,상기 독출 데이터에 포함된 상기 제1 ECC 데이터를 이용하여 상기 독출 데이터의 오류를 정정하는 제1 디코더와;상기 독출 데이터에 포함된 상기 제2 ECC 데이터를 이용하여 상기 독출 데이터의 오류를 정정하는 제2 디코더; 그리고상기 독출 데이터에 포함된 상기 오류의 수를 계산하고, 상기 오류의 수에 따라서 상기 제1 그리고 상기 제2 디코더 중 어느 하나가 상기 독출 데이터의 오류를 정정하도록 제어하는 디코딩 컨트롤러를 포함하는 것을 특징으로 하는 오류 정정 컨트롤러.
- 제 3 항에 있어서,상기 디코딩 컨트롤러는 상기 독출 데이터에 포함된 상기 오류의 수가 3개 이하일 때 상기 제1 디코더가 상기 독출 데이터의 오류를 정정하도록 제어하고, 상기 독출 데이터에 포함된 상기 오류의 수가 4개 이상일 때 상기 제2 디코더가 상기 독출 데이터의 오류를 정정하도록 제어하는 것을 특징으로 하는 오류 정정 컨트롤러.
- 제 1 항에 있어서,상기 제1 오류 정정 방식은 온 더 플라이를 지원하는 고속 오류 정정 방식이고, 상기 제2 오류 정정 방식은 상기 온 더 플라이를 지원하지 않는 것을 특징으로 하는 오류 정정 컨트롤러.
- 제 1 항에 있어서,상기 제1 오류 정정 방식은 BCH(Bose, Chaudhuri and Hocquenghem) 코드를 이용하는 오류 정정 방식이고, 상기 제2 오류 정정 방식은 RS(Reed Solomon) 오류 정정 방식인 것을 특징으로 하는 오류 정정 컨트롤러.
- 제 1 항에 있어서,상기 플래시 메모리 장치는 데이터 영역 및 스페어 영역을 포함하며,상기 입력 데이터는 상기 데이터 영역에 저장되고, 상기 제1 ECC 데이터 및 상기 제2 ECC 데이터는 상기 플래시 메모리 장치의 스페어 영역에 저장되는 것을 특징으로 하는 오류 정정 컨트롤러.
- 제 7 항에 있어서,상기 데이터 영역의 메모리 셀들 각각은 상기 M-비트 데이터를 저장하고, 상기 스페어 영역의 메모리 셀들 각각은 1-비트 데이터를 저장하는 것을 특징으로 하는 오류 정정 컨트롤러.
- 제 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 데이터는 상기 플래시 메모리 장치에 저장하는 것을 특징으로 하는 메모리 시스템.
- 제 10 항에 있어서,상기 인코더는,상기 제1 오류 정정 방식에 따라 상기 입력 데이터로부터 상기 제1 ECC 데이터를 생성하는 제1 인코더; 그리고상기 제2 오류 정정 방식에 따라 상기 입력 데이터로부터 상기 제2 ECC 데이터를 생성하는 제2 인코더를 포함하는 것을 특징으로 하는 메모리 시스템.
- 제 10 항에 있어서,상기 디코더는,상기 독출 데이터에 포함된 상기 제1 ECC 데이터를 이용하여 상기 독출 데이터의 오류를 정정하는 제1 디코더와;상기 독출 데이터에 포함된 상기 제2 ECC 데이터를 이용하여 상기 독출 데이터의 오류를 정정하는 제2 디코더; 그리고상기 독출 데이터에 포함된 상기 오류의 수를 계산하고, 상기 오류의 수에 따라서 상기 제1 그리고 상기 제2 디코더 중 어느 하나가 상기 독출 데이터의 오류를 정정하도록 제어하는 디코딩 컨트롤러를 포함하는 것을 특징으로 하는 메모리 시스템.
- 제 10 항에 있어서,상기 제1 오류 정정 방식은 온 더 플라이를 지원하는 고속 오류 정정 방식이고, 상기 제2 오류 정정 방식은 상기 온 더 플라이를 지원하지 않는 것을 특징으로 하는 메모리 시스템.
- 제 10 항에 있어서,상기 제1 오류 정정 방식은 BCH(Bose, Chaudhuri and Hocquenghem) 코드를 이용하는 오류 정정 방식이고, 상기 제2 오류 정정 방식은 RS(Reed Solomon) 오류 정정 방식인 것을 특징으로 하는 메모리 시스템.
- 제 10 항에 있어서,상기 플래시 메모리 장치는 데이터 영역 및 스페어 영역을 포함하며,상기 입력 데이터는 상기 데이터 영역에 저장되고, 상기 제1 ECC 데이터 및 상기 제2 ECC 데이터는 상기 플래시 메모리 장치의 스페어 영역에 저장되는 것을 특징으로 하는 메모리 시스템.
- 제 15 항에 있어서,상기 데이터 영역의 메모리 셀들 각각은 상기 M-비트 데이터를 저장하고, 상기 스페어 영역의 메모리 셀들 각각은 1-비트 데이터를 저장하는 것을 특징으로 하는 메모리 시스템.
- 셀당 M-비트 데이터(M은 2 또는 그 보다 큰 양의 정수)를 저장하는 플래시 메모리 장치에서 상기 M-비트 데이터의 오류를 정정하는 방법에 있어서:제1 오류 정정 방식에 따라서 상기 플래시 메모리 장치에 저장될 입력 데이터로부터 제1 ECC 데이터를 생성하는 단계와;제2 오류 정정 방식에 따라 상기 입력 데이터로부터 제2 ECC 데이터를 생성하는 단계와;상기 입력 데이터, 상기 제1 ECC 데이터 및 상기 제2 ECC 데이터를 상기 플래시 메모리 장치에 저장하는 단계와;상기 플래시 메모리 장치로부터 읽혀진 독출 데이터에 포함된 오류의 수를 계산하는 단계와;상기 오류의 수에 따라서 상기 제1 ECC 데이터 그리고 상기 제2 ECC 데이터 중 어느 하나를 이용하여 상기 독출 데이터의 오류를 정정하는 단계를 포함하는 것을 특징으로 하는 오류 정정 방법.
- 제 17 항에 있어서,상기 오류 정정 단계는,상기 오류의 수가 3개 이하일 때 상기 제1 ECC 데이터를 이용하여 상기 독출 데이터의 오류를 정정하는 단계; 및상기 오류의 수가 4개 이상일 때 상기 제2 ECC 데이터를 이용하여 상기 독출 데이터의 오류를 정정하는 단계를 포함하는 것을 특징으로 하는 오류 정정 방법.
- 제 17 항에 있어서,상기 제1 오류 정정 방식은 온 더 플라이를 지원하는 고속 오류 정정 방식이고, 상기 제2 오류 정정 방식은 상기 온 더 플라이를 지원하지 않는 것을 특징으로 하는 오류 정정 방법.
- 제 17 항에 있어서,상기 제1 오류 정정 방식은 BCH(Bose, Chaudhuri and Hocquenghem) 코드를 이용하는 오류 정정 방식이고, 상기 제2 오류 정정 방식은 RS(Reed Solomon) 오류 정정 방식인 것을 특징으로 하는 오류 정정 방법.
- 제 17 항에 있어서,상기 플래시 메모리 장치는 데이터 영역 및 스페어 영역을 포함하며,상기 입력 데이터는 상기 데이터 영역에 저장되고, 상기 제1 ECC 데이터 및 상기 제2 ECC 데이터는 상기 플래시 메모리 장치의 스페어 영역에 저장되는 것을 특징으로 하는 오류 정정 방법.
- 제 21 항에 있어서,상기 데이터 영역의 메모리 셀들 각각은 상기 M-비트 데이터를 저장하고, 상기 스페어 영역의 메모리 셀들 각각은 1-비트 데이터를 저장하는 것을 특징으로 하는 오류 정정 방법.
- 제 17 항에 있어서,상기 플래시 메모리 장치는 낸드 플래시 메모리 장치, 노어 플래시 메모리 장치, PRAM(phase change random access memory) 장치 그리고 MRAM(magnetic random access memory) 장치 중 어느 하나인 것을 특징으로 하는 오류 정정 방법.
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)
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)
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)
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)
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 | 株式会社東芝 | メモリシステム |
-
2007
- 2007-01-08 KR KR1020070002090A patent/KR100842680B1/ko active IP Right Grant
- 2007-03-29 US US11/692,992 patent/US7904790B2/en active Active
-
2008
- 2008-01-08 CN CN2008101446283A patent/CN101329916B/zh active Active
-
2011
- 2011-01-25 US US13/012,984 patent/US8112692B2/en active Active
- 2011-01-25 US US13/012,955 patent/US8788905B2/en active Active
Patent Citations (5)
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)
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 |