KR20200081180A - Flash memory storage device and operating method thereof - Google Patents

Flash memory storage device and operating method thereof Download PDF

Info

Publication number
KR20200081180A
KR20200081180A KR1020190046814A KR20190046814A KR20200081180A KR 20200081180 A KR20200081180 A KR 20200081180A KR 1020190046814 A KR1020190046814 A KR 1020190046814A KR 20190046814 A KR20190046814 A KR 20190046814A KR 20200081180 A KR20200081180 A KR 20200081180A
Authority
KR
South Korea
Prior art keywords
data
specific pattern
flash memory
storage device
error
Prior art date
Application number
KR1020190046814A
Other languages
Korean (ko)
Other versions
KR102139826B1 (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 한양대학교 산학협력단
Publication of KR20200081180A publication Critical patent/KR20200081180A/en
Application granted granted Critical
Publication of KR102139826B1 publication Critical patent/KR102139826B1/en

Links

Images

Classifications

    • 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/1012Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
    • 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/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0626Reducing size or complexity of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

A flash memory storage device according to an embodiment of the present invention comprises: a compressor compressing input data to generate first data; a pattern generator coupling specific pattern data to the first data to generate second data; an ECC encoder generating a parity code by using the second data; a memory cell array storing the second data and the parity code therein; an ECC decoder correcting an error of the second data provided from the memory cell array; a pattern canceller cancelling specific pattern data of the second data whose error has been corrected; and a compression canceller cancelling the compression of data, from which the specific pattern is removed, to generate data which is to be output. An embodiment of the present invention can enhance reliability of the flash memory storage device by correcting the error after data compression and data reconfiguration.

Description

플래시 메모리 저장장치 저장 장치 및 그 구동 방법{FLASH MEMORY STORAGE DEVICE AND OPERATING METHOD THEREOF}FLASH MEMORY STORAGE DEVICE AND OPERATING METHOD THEREOF}

실시예는 데이터의 오류 정정 능력을 향상시키기 위한 플래시 메모리 저장장치 저장 장치 및 그 구동 방법에 관한 것이다.An embodiment relates to a flash memory storage device storage device and a driving method for improving the error correction capability of data.

플래시 메모리를 저장 장치로 사용하기 위해서는 별도의 오류 정정 기법이 필요하다. 이는, 플래시 메모리는 산화층 사이의 플로팅 게이트에 전자를 가두거나 비워 데이터를 저장하지만, 의도하지 않은 시점에 플로팅 게이트 안의 전자가 새어나가거나 인접한 셀의 영향을 받아 플로팅 게이트 안의 전자 수가 바뀌면 기존에 저장하고 있던 데이터가 손상될 수 있기 때문이다. In order to use the flash memory as a storage device, a separate error correction technique is required. This means that the flash memory stores data by trapping or emptying electrons in the floating gate between the oxide layers, but when the number of electrons in the floating gate changes due to the leakage of electrons in the floating gate or the influence of adjacent cells at an unintended point, This is because the existing data may be damaged.

플래시 메모리 저장 장치는 일반적으로 고정된 오류 정정 능력을 가지는 ECC를 이용하여 데이터 오류를 정정한다. ECC의 오류 정정 능력은 제품 설계 단계에서 플래시 메모리의 P/E (Program/Erase) 사이클이 한계치에 이를 때까지 발생할 수 있는 BER (Bit Error Rate)을 고려하여 결정된다. Flash memory storage devices generally correct data errors using an ECC having a fixed error correction capability. ECC's error correction capability is determined by considering the BER (Bit Error Rate) that can occur until the P/E (Program/Erase) cycle of the flash memory reaches a limit in the product design stage.

하지만, 고 신뢰성이 요구되는 시스템에 플래시 메모리를 사용하기 위해서는 예외적인 상황에서 발생하는 예측 불가능한 데이터 오류를 정정할 수 있는 강력한 오류 정정 기법이 필요하다.However, in order to use a flash memory in a system requiring high reliability, a robust error correction technique capable of correcting unpredictable data errors occurring in exceptional situations is required.

실시예는 ECC의 오류 정정 능력을 초과한 데이터 오류를 정정할 수 있는 플래시 메모리 저장장치 및 그 구동 방법을 제공하는 것을 그 목적으로 한다.An object of the present invention is to provide a flash memory storage device capable of correcting a data error exceeding the ECC error correction capability and a method of driving the same.

실시예에 따른 플래시 메모리 저장장치는 입력된 데이터를 압축하여 제1 데이터를 생성하는 압축기와, 상기 제1 데이터에 특정 패턴 데이터를 결합하여 제2 데이터를 생성하는 패턴 생성기와, 상기 제2 데이터를 이용하여 패리티 코드를 생성하는 ECC 인코더와, 상기 제2 데이터 및 상기 패리티 코드를 저장하는 메모리 셀 어레이와, 상기 메모리 셀 어레이로부터 제공된 상기 제2 데이터의 오류를 정정하는 ECC 디코더와, 상기 오류가 정정된 제2 데이터의 특정 패턴 데이터를 제거하는 패턴 해제기와, 상기 특정 패턴 데이터가 제거된 데이터의 압축을 제거하여 출력될 데이터를 생성하는 압축 해제기를 포함할 수 있다.The flash memory storage device according to an embodiment compresses the input data to generate first data, a pattern generator to generate second data by combining specific pattern data with the first data, and the second data. An ECC encoder for generating a parity code by using, a memory cell array for storing the second data and the parity code, an ECC decoder for correcting errors in the second data provided from the memory cell array, and correcting the error It may include a pattern decompressor to remove the specific pattern data of the second data, and a decompressor to decompress the data from which the specific pattern data is removed to generate data to be output.

상기 특정 패턴 데이터의 크기는 상기 ECC 인코더의 입력 단위와 압축된 상기 제1 데이터의 크기 차이에 의해 결정될 수 있다.The size of the specific pattern data may be determined by a difference between the input unit of the ECC encoder and the compressed first data.

상기 특정 패턴 데이터는 0,1과 같은 고정된 패턴 또는 주변 데이터 셀의 데이터 패턴에 따라 셀 간섭을 최소화하는 적응형 패턴을 포함할 수 있다.The specific pattern data may include a fixed pattern such as 0,1 or an adaptive pattern that minimizes cell interference according to a data pattern of surrounding data cells.

상기 특정 패턴 데이터가 결합되는 위치는 상기 제1 데이터의 앞, 뒤 또는 중간 지점을 포함할 수 있다. The location where the specific pattern data is combined may include a front, back or intermediate point of the first data.

상기 특정 패턴 데이터는 복수개의 지점에서 상기 제1 데이터와 결합될 수 있다.The specific pattern data may be combined with the first data at a plurality of points.

상기 특정 패턴 데이터는 오류 발생 빈도가 높은 위치에 결합될 수 있다.The specific pattern data may be combined at a location where a frequency of error occurrence is high.

상기 메모리 셀 어레이는 상기 제2 데이터를 저장하는 데이터 셀 영역과, 상기 패리티 코드를 저장하는 패리티 셀 영역을 포함할 수 있다.The memory cell array may include a data cell area storing the second data and a parity cell area storing the parity code.

상기 ECC 디코더는 상기 제2 데이터의 오류를 정정하기 이전에 상기 특정 패턴 데이터의 오류를 제거할 수 있다.The ECC decoder may remove errors in the specific pattern data before correcting errors in the second data.

상기 특정 패턴 데이터를 상기 제2 데이터에 덮어 씌워 상기 특정 패턴 데이터의 오류를 제거할 수 있다.The specific pattern data may be overwritten with the second data to eliminate errors in the specific pattern data.

상기 ECC 디코더는 상기 제2 데이터에 존재하는 특정 패턴 데이터의 오류를 제거한 이후 상기 패리티 코드를 이용하여 상기 제2 데이터에 남은 오류를 정정할 수 있다.The ECC decoder may correct an error remaining in the second data by using the parity code after removing an error of specific pattern data existing in the second data.

또한, 실시예에 따른 플래시 메모리 저장장치의 데이터 저장 방법은 입력 데이터를 압축하여 제1 데이터를 생성하는 단계와, 압축된 상기 제1 데이터를 특정 패턴 데이터와 결합하여 제2 데이터를 생성하는 단계와, 상기 제2 데이터를 이용하여 패리티 코드를 생성하는 단계와, 상기 제2 데이터 및 상기 패리티 코드를 저장하는 단계를 포함할 수 있다.In addition, the data storage method of the flash memory storage device according to an embodiment may include compressing input data to generate first data, and combining the compressed first data with specific pattern data to generate second data. And generating a parity code using the second data, and storing the second data and the parity code.

상기 특정 패턴 데이터의 크기는 상기 ECC 인코더의 입력 단위와 압축된 상기 제2 데이터의 크기 차이에 의해 결정될 수 있다.The size of the specific pattern data may be determined by a difference in size between the input unit of the ECC encoder and the compressed second data.

상기 특정 패턴 데이터는 복수개의 지점에서 상기 제1 데이터와 결합될 수 있다.The specific pattern data may be combined with the first data at a plurality of points.

상기 특정 패턴 데이터는 오류 발생 빈도가 높은 위치에 결합될 수 있다.The specific pattern data may be combined at a location where a frequency of error occurrence is high.

또한, 실시예에 따른 플래시 메모리 저장장치의 데이터 독출 방법은 메모리 셀 어레이로부터 특정 패턴 데이터가 결합된 압축 데이터 및 패리티 코드를 읽는 단계와, 상기 메모리 셀 어레이로부터 제공된 압축 데이터의 오류를 정정하는 단계와, 상기 오류가 정정된 압축 데이터의 특정 패턴 데이터를 제거하는 단계와, 상기 특정 패턴 데이터가 제거된 압축 데이터의 압축을 제거하여 출력하는 단계를 포함할 수 있다.In addition, a method of reading data from a flash memory storage device according to an embodiment includes reading compressed data and parity codes combined with specific pattern data from a memory cell array, and correcting errors in compressed data provided from the memory cell array. The method may include removing specific pattern data of the compressed data in which the error is corrected, and removing and outputting compressed data from which the specific pattern data is removed.

상기 데이터의 오류를 정정하기 이전에 상기 특정 패턴 데이터를 덮어 씌우는 단계를 포함할 수 있다.And overwriting the specific pattern data before correcting the error of the data.

상기 특정 패턴 데이터를 덮어 씌우는 단계 이후 상기 패리티 코드를 이용하여 데이터에 남은 오류를 정정할 수 있다.After the step of overwriting the specific pattern data, an error remaining in the data may be corrected using the parity code.

실시예는 데이터 압축 및 데이터를 재구성한 후 오류를 정정함으로써, 플래시 메모리 저장장치의 신뢰성을 향상시킬 수 있는 효과가 있다.The embodiment has an effect of improving reliability of a flash memory storage device by correcting errors after data compression and data reconstruction.

또한, 실시예는 2단계에 걸쳐 데이터 내의 오류를 정정하도록 함으로써, 오류 정정 효과를 극대화시킬 수 있는 효과가 있다.In addition, the embodiment has an effect of maximizing the error correction effect by allowing the error in the data to be corrected in two steps.

또한, 실시예는 특정 패턴 데이터를 이용하여 1차 오류를 제거한 후, 오류 정정 능력 전부를 남은 데이터의 오류를 정정하도록 사용함으로서, 오류 정정의 신뢰성을 향상시킬 수 있는 효과가 있다.In addition, the embodiment removes the primary error using specific pattern data, and then uses all of the error correction capabilities to correct errors in the remaining data, thereby improving the reliability of error correction.

도 1은 실시예에 따른 플래시 메모리 저장장치를 개략적으로 나타낸 블록도이다.
도 2는 실시예에 따른 플래시 메모리 저장장치의 특정 패턴 데이터가 배치된 구조를 나타낸 도면이다.
도 3은 실시예에 따른 플래시 메모리 저장장치의 데이터 저장 방법을 설명하기 위한 순서도이다.
도 4는 도 3을 설명하기 위한 도면이다.
도 5 및 도 6은 실시예에 따른 플래시 메모리 저장장치의 데이터 독출 방법을 설명하기 위한 순서도이다.
도 7은 도 5를 설명하기 위한 도면이다.
1 is a block diagram schematically illustrating a flash memory storage device according to an embodiment.
2 is a diagram illustrating a structure in which specific pattern data of a flash memory storage device according to an embodiment is disposed.
3 is a flowchart illustrating a data storage method of a flash memory storage device according to an embodiment.
4 is a view for explaining FIG. 3.
5 and 6 are flowcharts illustrating a method of reading data from a flash memory storage device according to an embodiment.
7 is a view for explaining FIG. 5.

본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.The present invention can be applied to various changes and can have various embodiments, and specific embodiments will be illustrated in the drawings and described in detail in the detailed description. However, this is not intended to limit the present invention to specific embodiments, and should be understood to include all modifications, equivalents, and substitutes included in the spirit and scope of the present invention. In describing each drawing, similar reference numerals are used for similar components.

제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.Terms such as first, second, A, and B can be used to describe various components, but the components should not be limited by the terms. The terms are used only for the purpose of distinguishing one component from other components. For example, the first component may be referred to as a second component without departing from the scope of the present invention, and similarly, the second component may be referred to as a first component. The term and/or includes a combination of a plurality of related described items or any one of a plurality of related described items.

어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.When an element is said to be "connected" or "connected" to another component, it is understood that other components may be directly connected to or connected to the other component, but there may be other components in between. It should be. On the other hand, when a component is said to be "directly connected" or "directly connected" to another component, it should be understood that no other component exists in the middle.

본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terms used in this application are only used to describe specific embodiments, and are not intended to limit the present invention. Singular expressions include plural expressions unless the context clearly indicates otherwise. In this application, terms such as “include” or “have” are intended to indicate that a feature, number, step, operation, component, part, or combination thereof described in the specification exists, and that one or more other features are present. It should be understood that the existence or addition possibilities of fields or numbers, steps, operations, components, parts or combinations thereof are not excluded in advance.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by a person skilled in the art to which the present invention pertains. Terms, such as those defined in a commonly used dictionary, should be interpreted as having meanings consistent with meanings in the context of related technologies, and should not be interpreted as ideal or excessively formal meanings unless explicitly defined in the present application. Does not.

이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다. Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 1은 실시예에 따른 플래시 메모리 저장장치를 개략적으로 나타낸 블록도이고, 도 2는 실시예에 따른 플래시 메모리 저장장치의 특정 패턴 데이터가 배치된 구조를 나타낸 도면이다.1 is a block diagram schematically showing a flash memory storage device according to an embodiment, and FIG. 2 is a view showing a structure in which specific pattern data of a flash memory storage device according to an embodiment is disposed.

실시예의 플래시 메모리 저장장치로는 SSD(solid state drive), eMMC (embedded multimedia card), UFS (universal flash storage) 등이 해당할 수 있다. 하지만, 본 실시예의 플래시 메모리 저장장치가 위에서 열거한 장치들로만 한정되는 것은 아니며, 플래시 메모리에 기반하는 다양한 종류의 저장 장치일 수 있음은 물론이다.The flash memory storage device of the embodiment may include a solid state drive (SSD), an embedded multimedia card (eMMC), or universal flash storage (UFS). However, the flash memory storage device of the present embodiment is not limited to the devices listed above, and it can be understood that the flash memory storage device may be various types of storage devices based on flash memory.

실시예의 플래시 메모리 저장장치는 압축된 데이터와 특정 패턴 데이터를 이용하여 새로운 데이터를 생성하고, 생성된 새로운 데이터를 특정 패턴 데이터와 패리티 코드를 이용하여 오류를 제거하는 구조를 가질 수 있다. 이로부터 실시예의 플래시 메모리 저장장치는 오류 정정 능력을 향상시킬 수 있으며, 신뢰도를 향상시킬 수 있다.The flash memory storage device of the embodiment may have a structure in which new data is generated using compressed data and specific pattern data, and errors are removed using the generated new data using specific pattern data and parity codes. From this, the flash memory storage device of the embodiment can improve error correction capability and improve reliability.

이하에서는 실시예에 따른 플래시 메모리 저장장치에 대해 보다 상세히 설명한다.Hereinafter, a flash memory storage device according to an embodiment will be described in more detail.

도 1을 참조하면, 실시예에 따른 플래시 메모리 저장장치는 압축기(110), 패턴 생성기(120), ECC 인코더(encoder, 130), 메모리 셀 어레이(140), ECC 디코더(decoder, 150), 패턴 해제기(160), 압축 해제기(170)를 포함할 수 있다. Referring to FIG. 1, a flash memory storage device according to an embodiment includes a compressor 110, a pattern generator 120, an ECC encoder (encoder, 130), a memory cell array 140, an ECC decoder (150), and a pattern A decompressor 160 and a decompressor 170 may be included.

압축기(110)는 플래시 메모리 저장장치에 입력된 데이터를 압축하는 역할을 한다. 압축기(110)는 입력된 데이터의 크기를 일정 크기로 압축하게 되며, 이로 인해 입력된 데이터보다 작은 크기를 가지는 제1 데이터가 생성될 수 있다.The compressor 110 serves to compress data input to the flash memory storage device. The compressor 110 compresses the size of the input data to a predetermined size, thereby generating first data having a size smaller than the input data.

패턴 생성기(120)는 압축된 제1 데이터를 이용하여 제2 데이터룰 생성하는 역할을 한다. 패턴 생성기(120)는 압축된 제1 데이터에 특정 패턴 데이터를 결합하여 제2 데이터를 생성할 수 있다. 즉, 제2 데이터는 제1 데이터와 특정 패턴 데이터를 포함한 데이터일 수 있다. 특정 패턴 데이터의 크기는 수학식 1에 의해 결정될 수 있다.The pattern generator 120 serves to generate second data rules using the compressed first data. The pattern generator 120 may generate second data by combining specific pattern data with the compressed first data. That is, the second data may be data including first data and specific pattern data. The size of the specific pattern data can be determined by Equation (1).

Figure pat00001
Figure pat00001

특정 패턴 데이터는 모든 비트(bit)가 0,1 등의 고정된 패턴으로 형성될 수 있다. 특정 패턴 데이터는 주변 데이터 셀의 데이터 패턴에 따라 셀 간의 간섭이 최소화될 수 있는 적응형 패턴이 선택될 수 있다.In the specific pattern data, all bits may be formed in a fixed pattern such as 0,1. As for the specific pattern data, an adaptive pattern in which interference between cells can be minimized may be selected according to the data pattern of neighboring data cells.

도 2a에 도시된 바와 같이, 특정 패턴 데이터(PD)는 제1 데이터(D1)의 앞 또는 뒤에 결합될 수 있다. 이와 다르게, 도 2b에 도시된 바와 같이, 특정 패턴 데이터(PD)는 복수의 패턴으로 형성되고, 복수의 패턴은 제1 데이터(D1)에 결합될 수 있다. 이와 다르게, 도 2c에 도시된 바와 같이, 특정 패턴 데이터(PD)는 제1 데이터(D1)의 중간 지점에서 제1 데이터(D1)와 결합될 수 있다.As shown in FIG. 2A, the specific pattern data PD may be combined before or after the first data D1. Alternatively, as illustrated in FIG. 2B, the specific pattern data PD may be formed of a plurality of patterns, and the plurality of patterns may be combined with the first data D1. Alternatively, as illustrated in FIG. 2C, the specific pattern data PD may be combined with the first data D1 at an intermediate point of the first data D1.

특정 패턴 데이터(PD)의 위치는 이에 한정되지 않고 다양한 위치에 형성될 수 있다. 특정 패턴 데이터(PD)의 결합 위치는 오류 발생 빈도가 높은 영역에 배치될 수 있다. 오류 발생 빈도가 높은 영역은 경험적인 실험에 의해 결정될 수 있다.The location of the specific pattern data PD is not limited to this, and may be formed at various locations. The combined position of the specific pattern data PD may be arranged in a region in which an error occurrence frequency is high. Areas with a high frequency of errors can be determined by empirical experimentation.

오류 발생 빈도가 높은 영역에 특정 패턴 데이터(PD)를 형성하게 되면 전체 데이터에서 오류를 제거할 수 있는 영역이 줄어들게 되어 오류 정정을 효과적으로 진행할 수 있게 된다. 즉, ECC 디코더(150)는 오류 정정 능력 전부를 특정 패턴 데이터(DP) 외의 제2 데이터 영역에 존재하는 오류만을 수정하는데 사용할 수 있게 되어 오류 정정의 신뢰성을 향상시킬 수 있는 효과가 있다.When a specific pattern data PD is formed in an area in which an error is frequently generated, an area in which errors can be removed from the entire data is reduced, so that error correction can be effectively performed. That is, the ECC decoder 150 can use all of the error correction capabilities to correct errors existing in the second data area other than the specific pattern data DP, thereby improving the reliability of error correction.

ECC 인코더(130)는 입력된 데이터를 인코딩(또는 부호화)하는 역할을 한다. ECC 인코더(130)는 복수개의 입력 단자와 복수개의 출력 단자를 포함할 수 있다. The ECC encoder 130 serves to encode (or encode) the input data. The ECC encoder 130 may include a plurality of input terminals and a plurality of output terminals.

ECC 인코더(130)는 패턴 생성기(120)로부터 생성된 제2 데이터를 이용하여 패티리 코드를 형성할 수 있다. ECC 인코더(130)는 제2 데이터에 대응하는 패리티 코드를 생성할 수 있다. ECC 인코더(130)에서 생성된 패리티 코드는 데이터를 메모리 셀 어레이에 기록하거나 메모리 셀 어레이로부터 읽어오는 과정에서 발생되는 에러를 검출하고 에러를 정정하는 데 이용할 수 있다. 패리티 코드는 예컨대 1비트 크기로 형성될 수 있으나, 이에 한정되지 않는다.The ECC encoder 130 may form a parity code using the second data generated from the pattern generator 120. The ECC encoder 130 may generate parity codes corresponding to the second data. The parity code generated by the ECC encoder 130 can be used to detect and correct errors generated in the process of writing data to or reading data from the memory cell array. The parity code may be formed in a 1-bit size, for example, but is not limited thereto.

패리티 코드는 예컨대 복수의 패리티 코드를 포함할 수 있다. 복수의 패티리 코드는 에러 정정 능력 및 에러 정정 속도가 서로 다른 코드를 포함할 수 있다. 예컨대, 복수의 패리티 코드 중 어느 하나는 에러 정정 능력이 상대적으로 높고 에러 정정 속도가 상대적으로 느린 코드일 수 있다. 반면, 복수의 패리티 코드 중 어느 하나는 에러 정정 능력이 상대적으로 낮고 에러 정정 속도가 상대적으로 빠른 코드일 수 있다.The parity code may include, for example, a plurality of parity codes. The plurality of parity codes may include codes having different error correction capabilities and error correction rates. For example, any one of the plurality of parity codes may be a code having a relatively high error correction capability and a relatively slow error correction rate. On the other hand, any one of the plurality of parity codes may be a code having a relatively low error correction capability and a relatively fast error correction rate.

메모리 셀 어레이(140)는 소프트웨어 및/또는 프로그램을 저장할 수 있다. 프로그램은 커널, 미들웨어, 어플리케이션, 프로그래밍 인터페이스(API), 및/또는 어플리케이션 프로그램 등을 포함할 수 있다. 커널, 미들웨어 또는 API의 적어도 일부는 운영 시스템(OS)으로 지칭될 수 있다.The memory cell array 140 may store software and/or programs. The program may include a kernel, middleware, application, programming interface (API), and/or application program. At least a portion of the kernel, middleware or API may be referred to as an operating system (OS).

메모리 셀 어레이(140)는 제2 데이터를 저장하는 데이터 셀(141)을 포함할 수 있다. 데이터 셀(141)은 복수 개의 셀을 포함할 수 있다. 메모리 셀 어레이(140)는 패리티 코드를 저장하는 패리티 셀(142)을 포함할 수 있다. 패리티 셀(142)은 복수개의 셀을 포함할 수 있다.The memory cell array 140 may include a data cell 141 storing second data. The data cell 141 may include a plurality of cells. The memory cell array 140 may include parity cells 142 that store parity codes. The parity cell 142 may include a plurality of cells.

ECC 디코더(150)는 메모리 셀 어레이(140)에 저장된 제2 데이터를 디코딩(또는 복호화)할 수 있다. ECC 디코더(150)는 복수 개의 입력 단자와 복수개의 출력 단자를 포함할 수 있다. ECC 디코더(150)는 메모리 셀 어레이(140) 중 적어도 하나에 저장된 패리티 코드를 이용하여 제2 데이터에 포함된 에러를 검출하고, 검출된 에러를 정정할 수 있다.The ECC decoder 150 may decode (or decode) second data stored in the memory cell array 140. The ECC decoder 150 may include a plurality of input terminals and a plurality of output terminals. The ECC decoder 150 may detect an error included in the second data and correct the detected error using the parity code stored in at least one of the memory cell arrays 140.

실시예에 따른 ECC 디코더(150)는 패리티 코드에 의해 제2 데이터의 오류를 정정하기 이전에 특정 패턴 데이터의 오류를 제거할 수 있다. The ECC decoder 150 according to an embodiment may remove errors in specific pattern data before correcting errors in the second data by the parity code.

ECC 디코더(150)는 패턴 생성기(120)로부터 생성된 특정 패턴 데이터의 정보, 크기 및 위치 정보를 이용하여 제2 데이터에 특정 패턴 데이터를 덮어 씌울 수 있다. 제2 데이터에 포함된 특정 패턴 데이터에 형성된 오류가 있을 경우, 상기와 같이 특정 패턴 데이터를 제2 데이터에 다시 덮어 씌우게 되면 특정 패턴 데이터 내의 오류는 제거될 수 있다.The ECC decoder 150 may overwrite the second pattern with specific pattern data by using the information, size, and location information of the specific pattern data generated from the pattern generator 120. When there is an error formed in the specific pattern data included in the second data, when the specific pattern data is overwritten in the second data as described above, the error in the specific pattern data may be eliminated.

ECC 디코더(150)는 오류 정정 능력 전부를 특정 패턴 데이터 외의 제2 데이터의 남은 영역에 존재하는 오류만을 수정하는데 사용할 수 있게 되어 오류 정정 능력을 향상할 수 있게 된다.The ECC decoder 150 can use all of the error correction capabilities to correct errors existing in the remaining area of the second data other than specific pattern data, thereby improving the error correction capability.

패턴 해제기(160)는 특정 패턴 데이터를 제거하는 역할을 한다. 패턴 해제기(160)는 오류가 제거된 제2 데이터의 특정 패턴 데이터를 제거할 수 있다. 패턴 해제기(160)는 제2 데이터의 특정 패턴 데이터를 제거함으로써, 특정 패턴 데이터가 제거된 제1 데이터 만을 생성할 수 있다. 패턴 해제기(160)는 패턴 생성기(120)로부터 특정 패턴 데이터의 정보, 크기 위치를 제공받아 특정 패턴 데이터를 제거할 수 있다.The pattern canceller 160 serves to remove specific pattern data. The pattern canceller 160 may remove specific pattern data of the second data from which the error has been removed. The pattern canceller 160 may generate only the first data from which the specific pattern data is removed by removing the specific pattern data from the second data. The pattern releaser 160 may receive specific pattern data information and size locations from the pattern generator 120 to remove specific pattern data.

압축 해제기(170)는 제1 데이터의 압축을 제거하여 출력될 데이터를 생성할 수 있다. 이로 인해 출력될 데이터는 제1 데이터의 크기보다 클 수 있다.The decompressor 170 may decompress the first data to generate data to be output. Due to this, the data to be output may be larger than the size of the first data.

이하에서는 실시예에 따른 플래시 메모리 저장장치의 데이터 저장 방법을 도면을 참조하여 보다 상세히 설명하기로 한다.Hereinafter, a data storage method of a flash memory storage device according to an embodiment will be described in more detail with reference to the drawings.

도 3은 실시예에 따른 플래시 메모리 저장장치의 데이터 저장 방법을 설명하기 위한 순서도이고, 도 4는 도 3를 설명하기 위한 도면이다.3 is a flowchart illustrating a data storage method of a flash memory storage device according to an embodiment, and FIG. 4 is a diagram for describing FIG. 3.

도 3 및 도 4를 참조하면, 실시예에 따른 플래시 메모리 저장장치의 데이터 저장 방법은 입력 데이터를 압축하는 단계(S110)와, 압축된 제1 데이터와 특정 패턴 데이터를 결합하여 새로운 패턴의 제2 데이터를 생성하는 단계(S120)와, 제2 데이터를 이용하여 패리티 코드를 생성하는 단계(S130)를 수행할 수 있다.3 and 4, a method of storing data in a flash memory storage device according to an embodiment is a step of compressing input data (S110) and a second pattern of a new pattern by combining the compressed first data and specific pattern data. Step S120 of generating data and step S130 of generating a parity code using the second data may be performed.

먼저, 데이터가 입력되면 입력된 데이터를 압축하는 단계(S110)를 수행할 수 있다. 입력 데이터(ID)를 압축하는 단계는 압축기에서 수행될 수 있다. 입력 데이터(ID)는 소프트웨어 및/또는 프로그램을 저장할 수 있다. 프로그램은 커널, 미들웨어, 어플리케이션, 프로그래밍 인터페이스(API), 및/또는 어플리케이션 프로그램 등을 포함할 수 있다. 압축된 제1 데이터(D1)의 크기는 입력 데이터(ID)의 크기보다 작을 수 있다. First, when data is input, step S110 of compressing the input data may be performed. The step of compressing the input data ID may be performed in the compressor. The input data ID may store software and/or programs. The program may include a kernel, middleware, application, programming interface (API), and/or application program. The size of the compressed first data D1 may be smaller than the size of the input data ID.

이어서, 제1 데이터(D1)와 특정 패턴 데이터(PD)를 결합하여 제2 데이터(D2)를 생성하는 단계(S120)를 수행할 수 있다. 제2 데이터(D2)를 생성하는 단계는 패턴 생성기에서 수행될 수 있다.Subsequently, a step (S120) of generating the second data D2 by combining the first data D1 and the specific pattern data PD may be performed. The step of generating the second data D2 may be performed in the pattern generator.

특정 패턴 데이터(PD)는 모든 비트(bit)가 0,1 등의 고정된 패턴 또는 적응형 패턴으로 형성될 수 있다. 특정 패턴 데이터(PD)는 제1 데이터(D1)의 후방과 제1 데이터(D1) 사이에서 제1 데이터(D1)와 결합될 수 있다. 특정 패턴 데이터(PD)가 형성되는 위치는 오류 발생 빈도가 높은 영역일 수 있다.In the specific pattern data PD, all bits may be formed in a fixed pattern such as 0, 1 or an adaptive pattern. The specific pattern data PD may be combined with the first data D1 between the back of the first data D1 and the first data D1. The location where the specific pattern data PD is formed may be a region in which an error occurrence frequency is high.

따라서, 제2 데이터(D2)는 제1 데이터(D1)와 특정 패턴 데이터(PD)가 결합된 구조일 수 있다. 여기서, 특정 패턴 데이터(PD)의 크기는 ECC 인코더의 입력 단위와 압축된 제1 데이터(D1)의 크기 차이에 의해 결정될 수 있다. Accordingly, the second data D2 may be a structure in which the first data D1 and the specific pattern data PD are combined. Here, the size of the specific pattern data PD may be determined by a difference between the input unit of the ECC encoder and the compressed first data D1.

이어서, 제2 데이터(D2)를 이용하여 패리티 코드를(PC) 생성하는 단계를 수행할 수 있다. 패리티 코드(PC)의 생성은 ECC 인코더가 수행할 수 있다.Subsequently, a step of generating a parity code (PC) using the second data D2 may be performed. The generation of the parity code (PC) may be performed by the ECC encoder.

패리티 코드(PC)는 제2 데이터(D2)의 끝에 삽입되어 제2 데이터(D2)가 올바른지 판단할 수 있다. 패리티 코드(PC)는 예컨대, 1비트의 크기로 형성될 수 있다.The parity code PC may be inserted at the end of the second data D2 to determine whether the second data D2 is correct. The parity code PC may be formed, for example, in a size of 1 bit.

상기와 같이, 패리티 코드(PC)가 생성되면, 생성된 제2 데이터(D2) 및 패리티 코드(PC)는 메모리 셀 어레이에 저장될 수 있다. 제2 데이터(D2)는 메모리 셀 어레이의 데이터 셀에 저장될 수 있으며, 패리티 코드(PC)는 메모리 셀 어레이의 패리티 셀에 저장될 수 있다.As described above, when the parity code PC is generated, the generated second data D2 and the parity code PC may be stored in the memory cell array. The second data D2 may be stored in a data cell of the memory cell array, and the parity code PC may be stored in a parity cell of the memory cell array.

도 5 및 도 6은 실시예에 따른 플래시 메모리 저장장치의 데이터 독출 방법을 설명하기 위한 순서도이고, 도 7은 도 5를 설명하기 위한 도면이다.5 and 6 are flowcharts for explaining a method of reading data from a flash memory storage device according to an embodiment, and FIG. 7 is a diagram for describing FIG. 5.

도 5를 참조하면, 실시예에 따른 플래시 메모리 저장장치의 데이터 독출 방법은 메모리 셀 어레이로부터 데이터를 읽는 단계(S210)와, 상기 메모리 셀 어레이로부터 제공된 데이터의 오류를 정정하는 단계(S220)와, 오류가 정정된 데이터의 특정 패턴 데이터를 제거하는 단계(S230)와, 특정 패턴 데이터가 제거된 압축 데이터의 압축을 제거하여 데이터를 출력하는 단계(S240)를 수행할 수 있다.Referring to FIG. 5, a method of reading data from a flash memory storage device according to an embodiment includes reading data from a memory cell array (S210), and correcting errors in data provided from the memory cell array (S220), The step of removing the specific pattern data of the error corrected data (S230) and the step of outputting the data by removing the compression of the compressed data from which the specific pattern data is removed may be performed (S240).

먼저, 메모리 셀 어레이로부터 데이터를 읽는 단계(S210)를 수행할 수 있다. 데이터를 읽는 단계는 ECC 디코더가 수행할 수 있다. 데이터는 제2 데이터 및 패리티 코드를 포함할 수 있다. 제2 데이터는 압축된 제1 데이터와 특정 패턴 데이터가 결합된 구조일 수 있다.First, a step (S210) of reading data from the memory cell array may be performed. The step of reading data may be performed by the ECC decoder. The data may include second data and parity codes. The second data may be a structure in which compressed first data and specific pattern data are combined.

이어서, 데이터의 오류를 정정하는 단계(S220)를 수행할 수 있다. 데이터의 오류를 정정하는 단계는 ECC 디코더가 수행할 수 있다. 데이터의 오류는 2단계에 걸쳐 데이터의 오류를 정정할 수 있다.Subsequently, a step (S220) of correcting an error in data may be performed. The ECC decoder may perform the step of correcting data errors. Data errors can be corrected in two steps.

도 6 및 도 7에 도시된 바와 같이, 데이터의 오류를 정정하는 단계(S220)는 특정 패턴 데이터의 오류를 제거하는 단계(S221)와, 데이터의 남은 오류를 제거하는 단계(S222)를 포함할 수 있다.6 and 7, correcting an error in data (S220) includes removing an error in specific pattern data (S221) and removing an error in data (S222 ). Can be.

도 7a에 도시된 바와 같이, 제2 데이터(D2)에 오류(e1, e2)가 발생되면, 패턴 생성기에서 제공받은 특정 패턴 데이터의 정보, 크기 및 위치 정보를 이용하여 제2 데이터(D2)의 지정된 위치 및 크기 만큼 특정 패턴 데이터(DP)를 덮어 씌울 수 있다.As shown in FIG. 7A, when errors e1 and e2 occur in the second data D2, the second data D2 is generated using information, size, and location information of specific pattern data provided by the pattern generator. A specific pattern data DP can be overwritten by a specified position and size.

이에 특정 패턴 데이터(DP)에 생성된 오류(e1)는 제거되어 오류를 제거하는 단계(S211)를 수행할 수 있다.Accordingly, the error e1 generated in the specific pattern data DP is removed to remove the error (S211 ).

도 7b에 도시된 바와 같이, 특정 패턴 데이터(DP)의 오류(e1)가 제거되면 남은 제2 데이터(D2) 영역에 여전히 오류(e2)가 존재하게 된다. ECC 디코더는 패리티 코드(PC)의 오류 정정 능력 전부를 남은 제2 데이터(D2) 영역에 존재하는 오류를 정정하게 된다. 이에 따라 도 7c에 도시된 바와 같이, 제2 데이터의 오류들은 모두 제거될 수 있다.As illustrated in FIG. 7B, when the error e1 of the specific pattern data DP is removed, the error e2 is still present in the remaining second data D2 area. The ECC decoder corrects an error existing in the second data D2 area remaining all of the error correction capabilities of the parity code (PC). Accordingly, as illustrated in FIG. 7C, all errors of the second data can be eliminated.

도 5로 돌아가서, 데이터의 오류를 정정하는 단계를 마치면 특정 패턴 데이터를 제거하는 단계(S230)를 수행할 수 있다. 특정 패턴 데이터의 제거는 패턴 해제기가 수행할 수 있다. 특정 패턴 데이터의 제거는 패턴 생성기로부터 특정 패턴 데이터의 위치 및 크기 데이터를 제공받아 제2 데이터에 포함된 특정 패턴 데이터를 제거할 수 있다.Returning to FIG. 5, when the step of correcting an error in the data is completed, a step (S230) of removing specific pattern data may be performed. The pattern canceller may perform the removal of specific pattern data. In order to remove the specific pattern data, the position and size data of the specific pattern data may be provided from the pattern generator to remove the specific pattern data included in the second data.

이어서, 압축이 제거된 데이터를 출력하는 단계(S240)를 수행할 수 있다. 압축이 제거된 데이터를 출력하는 단계는 압축 해제기가 수행할 수 있다. 출력될 데이터의 크기는 압축된 데이터의 크기보다 클 수 있다.Subsequently, a step (S240) of outputting the decompressed data may be performed. The decompressor may perform the step of outputting the decompressed data. The size of data to be output may be larger than the size of compressed data.

상기와 같이, 압축이 해제되면 압축이 해제된 데이터는 출력될 수 있게 된다.As described above, when the compression is decompressed, the decompressed data can be output.

실시예는 데이터 압축 및 데이터를 재구성한 후 오류를 정정함으로써, 플래시 메모리의 신뢰성을 향상시킬 수 있는 효과가 있다.The embodiment has an effect of improving reliability of the flash memory by correcting errors after data compression and data reconstruction.

또한, 실시예는 2단계에 걸쳐 데이터 내의 오류를 정정하도록 함으로써, 오류 정정 효과를 극대화시킬 수 있는 효과가 있다.In addition, the embodiment has an effect of maximizing the error correction effect by allowing the error in the data to be corrected in two steps.

또한, 실시예는 특정 패턴 데이터를 이용하여 1차 오류를 제거한 후, 오류 정정 능력 전부를 남은 데이터의 오류를 정정하도록 사용함으로서, 오류 정정의 신뢰성을 향상시킬 수 있는 효과가 있다.In addition, the embodiment removes the primary error using specific pattern data, and then uses all of the error correction capabilities to correct errors in the remaining data, thereby improving the reliability of error correction.

110: 압축기
120: 패턴 생성기
130: ECC 인코더
140: 메모리 셀 어레이
150: ECC 디코더
160: 패턴 해제기
110: compressor
120: pattern generator
130: ECC encoder
140: memory cell array
150: ECC decoder
160: pattern releaser

Claims (17)

입력된 데이터를 압축하여 제1 데이터를 생성하는 압축기;
상기 제1 데이터에 특정 패턴 데이터를 결합하여 제2 데이터를 생성하는 패턴 생성기;
상기 제2 데이터를 이용하여 패리티 코드를 생성하는 ECC 인코더;
상기 제2 데이터 및 상기 패리티 코드를 저장하는 메모리 셀 어레이;
상기 메모리 셀 어레이로부터 제공된 상기 제2 데이터의 오류를 정정하는 ECC 디코더;
상기 오류가 정정된 제2 데이터의 특정 패턴 데이터를 제거하는 패턴 해제기; 및
상기 특정 패턴 데이터가 제거된 데이터의 압축을 제거하여 출력될 데이터를 생성하는 압축 해제기를 포함하는 플래시 메모리 저장장치.
A compressor that compresses the input data to generate first data;
A pattern generator that generates second data by combining specific pattern data with the first data;
An ECC encoder for generating a parity code using the second data;
A memory cell array storing the second data and the parity code;
An ECC decoder to correct errors in the second data provided from the memory cell array;
A pattern canceler to remove specific pattern data of the second data in which the error is corrected; And
And a decompressor that generates data to be output by removing compression of the data from which the specific pattern data is removed.
제1항에 있어서,
상기 특정 패턴 데이터의 크기는 상기 ECC 인코더의 입력 단위와 압축된 상기 제1 데이터의 크기 차이에 의해 결정되는 플래시 메모리 저장장치.
According to claim 1,
The size of the specific pattern data is determined by a difference in size between the input unit of the ECC encoder and the compressed first data.
제1항에 있어서,
상기 특정 패턴 데이터는 0,1과 같은 고정된 패턴 또는 주변 데이터 셀의 데이터 패턴에 따라 셀 간섭을 최소화하는 적응형 패턴을 포함하는 플래시 메모리 저장장치.
According to claim 1,
The specific pattern data is a flash memory storage device including a fixed pattern such as 0, 1 or an adaptive pattern that minimizes cell interference according to a data pattern of surrounding data cells.
제1항에 있어서,
상기 특정 패턴 데이터가 결합되는 위치는 상기 제1 데이터의 앞, 뒤 또는 중간 지점을 포함하는 플래시 메모리 저장장치.
According to claim 1,
The location where the specific pattern data is combined includes a front, back or intermediate point of the first data.
제4항에 있어서,
상기 특정 패턴 데이터는 복수개의 지점에서 상기 제1 데이터와 결합되는 플래시 메모리 저장장치.
According to claim 4,
The specific pattern data is a flash memory storage device that is combined with the first data at a plurality of points.
제1항에 있어서,
상기 특정 패턴 데이터는 오류 발생 빈도가 높은 위치에 결합되는 플래시 메모리 저장장치.
According to claim 1,
The specific pattern data is a flash memory storage device that is coupled to a location with a high frequency of errors.
제1항에 있어서,
상기 메모리 셀 어레이는 상기 제2 데이터를 저장하는 데이터 셀 영역과, 상기 패리티 코드를 저장하는 패리티 셀 영역을 포함하는 플래시 메모리 저장장치.
According to claim 1,
The memory cell array includes a data cell area for storing the second data and a parity cell area for storing the parity code.
제1항 내지 제7항 중 어느 한 항에 있어서,
상기 ECC 디코더는 상기 제2 데이터의 오류를 정정하기 이전에 상기 특정 패턴 데이터의 오류를 제거하는 플래시 메모리 저장장치.
The method according to any one of claims 1 to 7,
The ECC decoder removes errors in the specific pattern data before correcting errors in the second data.
제8항에 있어서,
상기 특정 패턴 데이터를 상기 제2 데이터에 덮어 씌워 상기 특정 패턴 데이터의 오류를 제거하는 플래시 메모리 저장장치.
The method of claim 8,
A flash memory storage device that removes errors in the specific pattern data by overwriting the specific pattern data with the second data.
제9항에 있어서,
상기 ECC 디코더는 상기 제2 데이터에 존재하는 특정 패턴 데이터의 오류를 제거한 이후 상기 패리티 코드를 이용하여 상기 제2 데이터에 남은 오류를 정정하는 플래시 메모리 저장장치.
The method of claim 9,
The ECC decoder is a flash memory storage device that corrects an error remaining in the second data using the parity code after removing an error of specific pattern data existing in the second data.
입력 데이터를 압축하여 제1 데이터를 생성하는 단계;
압축된 상기 제1 데이터를 특정 패턴 데이터와 결합하여 제2 데이터를 생성하는 단계;
상기 제2 데이터를 이용하여 패리티 코드를 생성하는 단계; 및
상기 제2 데이터 및 상기 패리티 코드를 저장하는 단계를 포함하는 플래시 메모리 저장장치의 데이터 저장 방법.
Compressing the input data to generate first data;
Generating second data by combining the compressed first data with specific pattern data;
Generating a parity code using the second data; And
And storing the second data and the parity code.
제11항에 있어서,
상기 특정 패턴 데이터의 크기는 상기 ECC 인코더의 입력 단위와 압축된 상기 제2 데이터의 크기 차이에 의해 결정되는 플래시 메모리 저장장치의 데이터 저장 방법.
The method of claim 11,
The size of the specific pattern data is determined by the difference between the input unit of the ECC encoder and the size of the compressed second data.
제12항에 있어서,
상기 특정 패턴 데이터는 복수개의 지점에서 상기 제1 데이터와 결합되는 플래시 메모리 저장장치의 데이터 저장 방법.
The method of claim 12,
The specific pattern data is a data storage method of a flash memory storage device that is combined with the first data at a plurality of points.
제13항에 있어서,
상기 특정 패턴 데이터는 오류 발생 빈도가 높은 위치에 결합되는 플래시 메모리 저장장치의 데이터 저장 방법.
The method of claim 13,
The specific pattern data is a data storage method of a flash memory storage device that is coupled to a location with a high frequency of errors.
메모리 셀 어레이로부터 특정 패턴 데이터가 결합된 압축 데이터 및 패리티 코드를 읽는 단계;
상기 메모리 셀 어레이로부터 제공된 압축 데이터의 오류를 정정하는 단계;
상기 오류가 정정된 압축 데이터의 특정 패턴 데이터를 제거하는 단계; 및
상기 특정 패턴 데이터가 제거된 압축 데이터의 압축을 제거하여 출력하는 단계를 포함하는 플래시 메모리 저장장치의 데이터 독출 방법.
Reading compressed data and parity codes combined with specific pattern data from the memory cell array;
Correcting an error in compressed data provided from the memory cell array;
Removing specific pattern data of the compressed data in which the error is corrected; And
And decompressing the compressed data from which the specific pattern data has been removed, and outputting the compressed data.
제15항에 있어서,
상기 데이터의 오류를 정정하기 이전에 상기 특정 패턴 데이터를 덮어 씌우는 단계를 포함하는 플래시 메모리 저장장치의 데이터 독출 방법.
The method of claim 15,
And overwriting the specific pattern data before correcting the error in the data.
제16항에 있어서,
상기 특정 패턴 데이터를 덮어 씌우는 단계 이후 상기 패리티 코드를 이용하여 데이터에 남은 오류를 정정하는 플래시 메모리 저장장치의 데이터 독출 방법.
The method of claim 16,
A method of reading data from a flash memory storage device that corrects an error remaining in data using the parity code after the step of overwriting the specific pattern data.
KR1020190046814A 2018-12-27 2019-04-22 Flash memory storage device and operating method thereof KR102139826B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020180171219 2018-12-27
KR20180171219 2018-12-27

Publications (2)

Publication Number Publication Date
KR20200081180A true KR20200081180A (en) 2020-07-07
KR102139826B1 KR102139826B1 (en) 2020-07-31

Family

ID=71603035

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190046814A KR102139826B1 (en) 2018-12-27 2019-04-22 Flash memory storage device and operating method thereof

Country Status (1)

Country Link
KR (1) KR102139826B1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010015516A (en) * 2008-07-07 2010-01-21 Toshiba Corp Data controller, storage system, and program
KR20120107495A (en) * 2009-12-23 2012-10-02 샌디스크 코포레이션 System and method of error correction of control data at a memory device
JP2013191169A (en) * 2012-03-15 2013-09-26 Toshiba Corp Host apparatus, memory controller, and memory device
KR20140046597A (en) * 2012-10-08 2014-04-21 삼성전자주식회사 Method for performing write operation or read operation in memory system
KR20150105175A (en) * 2014-03-06 2015-09-16 윈본드 일렉트로닉스 코포레이션 Semiconductor memory device

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010015516A (en) * 2008-07-07 2010-01-21 Toshiba Corp Data controller, storage system, and program
KR20120107495A (en) * 2009-12-23 2012-10-02 샌디스크 코포레이션 System and method of error correction of control data at a memory device
JP2013191169A (en) * 2012-03-15 2013-09-26 Toshiba Corp Host apparatus, memory controller, and memory device
KR20140046597A (en) * 2012-10-08 2014-04-21 삼성전자주식회사 Method for performing write operation or read operation in memory system
KR20150105175A (en) * 2014-03-06 2015-09-16 윈본드 일렉트로닉스 코포레이션 Semiconductor memory device

Also Published As

Publication number Publication date
KR102139826B1 (en) 2020-07-31

Similar Documents

Publication Publication Date Title
EP2517107B1 (en) System and method of error correction of control data at a memory device
US20200081780A1 (en) Data storage device and parity code processing method thereof
US8782500B2 (en) Systems and methods for error correction and decoding on multi-level physical media
US8464134B2 (en) Method and apparatus for error correction according to erase counts of a solid-state memory
US8201054B2 (en) Fault-tolerant method and apparatus for updating compressed read-only file systems
US9425828B2 (en) Memory device and memory system
US9336081B2 (en) Data writing and reading method, and memory controller and memory storage apparatus using the same for improving reliability of data access
US8650458B2 (en) Methods of encoding/decoding for error correction code utilizing interdependent portions of codewords and related circuits
KR20080023191A (en) Device and method for accessing binary data in fusion memory
CN109164978B (en) Flash memory management method, flash memory storage device and computer readable storage medium
TWI527040B (en) Data writing method, memory storage device and memory controller
TW201545167A (en) Method of handling error correcting code in non-volatile memory and non-volatile storage device using the same
US20180175890A1 (en) Methods and Apparatus for Error Correction Coding Based on Data Compression
JP2012137994A (en) Memory system and controlling method thereof
US9710326B2 (en) Encoder by-pass with scrambler
US20070266297A1 (en) Controller and storage device having the same
TWI467590B (en) Data processing method, memory controller, and memory storage device
US9858994B2 (en) Memory system with MLC memory cells and partial page compression or reduction
US20180267746A1 (en) Readout control device, storage controller, and computer program product
KR102139826B1 (en) Flash memory storage device and operating method thereof
TW201524135A (en) Decoding method, memory storage device and memory controlling circuit unit
CN113223601A (en) Circuit, system and method for error correction code management of write-once memory codes
US20180122494A1 (en) Raid decoding architecture with reduced bandwidth
CN113168882B (en) Encoding method, decoding method and storage controller
US8854234B1 (en) Decompression circuit and associated decompression method

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right