KR102178340B1 - Data input/output device of mlc(multi level cell) and method thereof - Google Patents

Data input/output device of mlc(multi level cell) and method thereof Download PDF

Info

Publication number
KR102178340B1
KR102178340B1 KR1020190018131A KR20190018131A KR102178340B1 KR 102178340 B1 KR102178340 B1 KR 102178340B1 KR 1020190018131 A KR1020190018131 A KR 1020190018131A KR 20190018131 A KR20190018131 A KR 20190018131A KR 102178340 B1 KR102178340 B1 KR 102178340B1
Authority
KR
South Korea
Prior art keywords
frame
data
cell
block
word line
Prior art date
Application number
KR1020190018131A
Other languages
Korean (ko)
Other versions
KR20200099905A (en
Inventor
한태희
홍정범
김용욱
강민구
Original Assignee
성균관대학교산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 성균관대학교산학협력단 filed Critical 성균관대학교산학협력단
Priority to KR1020190018131A priority Critical patent/KR102178340B1/en
Publication of KR20200099905A publication Critical patent/KR20200099905A/en
Application granted granted Critical
Publication of KR102178340B1 publication Critical patent/KR102178340B1/en

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5678Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using amorphous/crystalline phase transition storage elements
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0023Address circuits or decoders
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/08Word line control circuits, e.g. drivers, boosters, pull-up circuits, pull-down circuits, precharging circuits, for word lines

Landscapes

  • Engineering & Computer Science (AREA)
  • Chemical & Material Sciences (AREA)
  • Crystallography & Structural Chemistry (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Read Only Memory (AREA)

Abstract

본 발명은, 4개의 셀을 포함하는 프레임E을 8개씩 할당하여 제1 워드 라인을 설정하는 단계, 제1 워드 라인에 배열되는 8개의 제1 프레임 중 기설정된 오류 제어 범위에 포함되는 오류 프레임을 검출하는 단계, 제1 워드 라인에서 적어도 하나의 오류 프레임이 검출되는 경우 제1 프레임을 5개의 셀을 포함하는 제2 프레임으로 변환하고, 제2 프레임을 8개씩 할당하여 제2 워드 라인으로 설정하는 단계, 제2 프레임을 복수의 블록으로 구획하여 입력 데이터를 셀 데이터로 인코딩하는 단계 및 셀 데이터를 입력 데이터로 디코딩하는 단계를 포함하는 멀티 레벨 셀의 데이터 입출력 방법을 제공한다.The present invention provides the steps of setting a first word line by allocating eight frames E including four cells each, and an error frame included in a preset error control range among the eight first frames arranged on the first word line. Detecting, when at least one error frame is detected in the first word line, converting the first frame into a second frame including five cells, and assigning eight second frames to a second word line. It provides a data input/output method for a multi-level cell, comprising: partitioning a second frame into a plurality of blocks, encoding input data into cell data, and decoding cell data into input data.

Description

멀티 레벨 셀의 데이터 입출력 장치와 그의 방법{DATA INPUT/OUTPUT DEVICE OF MLC(MULTI LEVEL CELL) AND METHOD THEREOF}Data input/output device of a multi-level cell and its method {DATA INPUT/OUTPUT DEVICE OF MLC(MULTI LEVEL CELL) AND METHOD THEREOF}

본 발명은 멀티 레벨 셀의 데이터 입출력 장치와 그의 방법에 관한 것으로, 보다 상세하게는 가장 문제가 되는 데이터 자체를 메모리 셀에 쓰지 않도록 메모리의 입출력 단에서 인코딩 및 디코딩할 수 있는 멀티 레벨 셀의 데이터 입출력 장치와 그의 방법에 대한 것이다.The present invention relates to a data input/output device of a multilevel cell and a method thereof, and more particularly, to a data input/output of a multilevel cell capable of encoding and decoding at an input/output terminal of a memory so as not to write the most problematic data itself to a memory cell. It's about the device and its method.

상변화 메모리 (PRAM)은 한 셀에 여러 비트의 데이터를 저장하는 멀티-레벨-셀 (MLC) 기술을 통해 공정 한계에 도달한 DRAM을 대체할 자원으로 주목받고 있다. 상변화 메모리 (PRAM)은 비휘발성 및 높은 집적도를 강점으로 갖는데 비해, 에러 확률과 메모리 소자의 짧은 수명은 제품화하기 이전 필수적으로 해결되어야 할 과제다. Phase change memory (PRAM) is attracting attention as a resource to replace DRAM that has reached its process limit through multi-level-cell (MLC) technology that stores multiple bits of data in one cell. Phase change memory (PRAM) has a non-volatile and high degree of integration as its strengths, whereas error probability and short lifespan of memory devices are essential tasks to be solved before commercialization.

PRAM 소자는 GST 물질의 저항 값을 활용하며, 특정 저항 범위마다 데이터를 할당하고 저항 값을 읽음으로써 메모리의 역할을 하였다. 한 셀에 2 비트(bit)의 데이터를 저장하는 MLC PRAM은 두 번째로 높은 저항을 활용하는 데이터가 저항 드리프트 현상(Resistance Drift) 및 반복 쓰기(Iterative Write)에 의해 메모리 전체의 신뢰성 및 수명을 악화시키는 문제점이 있었다.The PRAM device uses the resistance value of the GST material, allocates data to each specific resistance range, and reads the resistance value, thereby acting as a memory. MLC PRAM, which stores 2 bits of data in one cell, deteriorates the reliability and lifetime of the entire memory due to resistance drift and iterative writes in the data utilizing the second highest resistance. There was a problem to let.

본 발명에서는 가장 문제가 되는 데이터 자체를 메모리 셀에 쓰지 않도록 메모리의 입출력 단에서 인코딩 및 디코딩함으로써, 저항 드리프트 현상(Resistance Drift) 및 반복 쓰기(Iterative Write)에 의해 메모리 전체의 신뢰성을 개선하면서 수명을 연장시킬 수 있는 멀티 레벨 셀의 데이터 입출력 장치와 그의 방법을 제안하고자 한다.In the present invention, by encoding and decoding at the input/output terminal of the memory so that the most problematic data itself is not written to the memory cell, the lifetime of the memory is improved while improving the reliability of the entire memory by resistance drift and iterative write. A multilevel cell data input/output device that can be extended and a method thereof are proposed.

본 발명은, 4개의 셀을 포함하는 프레임E을 8개씩 할당하여 제1 워드 라인을 설정하는 단계, 제1 워드 라인에 배열되는 8개의 제1 프레임 중 기설정된 오류 제어 범위에 포함되는 오류 프레임을 검출하는 단계, 제1 워드 라인에서 적어도 하나의 오류 프레임이 검출되는 경우 제1 프레임을 5개의 셀을 포함하는 제2 프레임으로 변환하고, 제2 프레임을 8개씩 할당하여 제2 워드 라인으로 설정하는 단계, 제2 프레임을 복수의 블록으로 구획하여 입력 데이터를 셀 데이터로 인코딩하는 단계 및 셀 데이터를 입력 데이터로 디코딩하는 단계를 포함하는 멀티 레벨 셀의 데이터 입출력 방법을 제공한다.The present invention provides the steps of setting a first word line by allocating eight frames E including four cells each, and an error frame included in a preset error control range among the eight first frames arranged on the first word line. Detecting, when at least one error frame is detected in the first word line, converting the first frame into a second frame including five cells, and assigning eight second frames to a second word line. It provides a data input/output method for a multi-level cell, comprising: partitioning a second frame into a plurality of blocks, encoding input data into cell data, and decoding cell data into input data.

또한, 4개의 셀 중 하나의 셀은 2 비트로 구성하고, 하나의 셀은 "00", "01", "10", "11" 중 하나를 저장하고, 오류 제어 범위는 제1 프레임에서 "11"가 적어도 3개 이상이 읽히면, 오류 프레임이라고 판별할 수 있다.In addition, one cell of the four cells is composed of 2 bits, one cell stores one of "00", "01", "10", "11", and the error control range is "11" in the first frame. If at least 3 or more of "are read, it can be determined that it is an error frame.

또한, 복수의 블록은 제1 블록 내지 제3 블록을 포함하고, 제1 블록은 하나의 비트로 구성되고, 제2 블록은 4 개의 비트로 구성되고, 제3 블록은 5개의 비트로 구성될 수 있다.In addition, the plurality of blocks may include first to third blocks, the first block may be composed of one bit, the second block may be composed of 4 bits, and the third block may be composed of 5 bits.

또한, 제1 블록은 다음에 배열되는 프레임이 오류 프레임인지 여부에 대한 정보를 포함할 수 있다.Also, the first block may include information on whether or not a frame arranged next is an error frame.

또한, 제2 블록은 제1 워드 라인에 배열된 제1 프레임의 실제 위치에 대한 정보를 포함할 수 있다.Also, the second block may include information on an actual position of the first frame arranged on the first word line.

또한, 제3 블록은 "11"가 포함된 제1 프레임의 실제 데이터에 대한 정보를 포함할 수 있다.In addition, the third block may include information on actual data of the first frame including “11”.

또한, 제2 워드 라인은 적어도 하나 이상의 오류 프레임을 먼저 배열시키고, 이후 제1 프레임을 제1 워드 라인 배열 순으로 순차적으로 배열시켜 설정할 수 있다.In addition, the second word line may be set by first arranging at least one error frame and then sequentially arranging the first frame in the order of the first word line arrangement.

또한, 본 발명은 4개의 셀을 포함하는 제1 프레임을 8개씩 할당하여 제1 워드 라인, 5개의 셀을 포함하는 제2 프레임을 8개씩 할당하여 제2 워드 라인 및 제1 프레임과 제2 프레임 각각에 입력 데이터 또는 셀 데이터의 제어/상태 값들을 각각 멀티 라인 버스 경로들을 따라서 수신하고 전송하는 제어 로직을 구비하는 메모리 모듈 및 메모리 모듈을 제어하는 제어부를 포함하고, 제어부는 제1 워드 라인에 배열되는 8개의 제1 프레임 중 기설정된 오류 제어 범위에 포함되는 오류 프레임을 검출하고, 제1 워드 라인에서 적어도 하나의 오류 프레임이 검출되는 경우 제2 프레임을 복수의 블록으로 구획하여 입력 데이터를 셀 데이터로 인코딩하거나 셀 데이터를 입력 데이터로 디코딩하도록 제어하는 멀티 레벨 셀의 데이터 입출력 장치를 제공한다.In addition, according to the present invention, the first frame including four cells is allocated by eight, and the first word line and the second frame including five cells are allocated by eight, so that the second word line, the first frame, and the second frame. Each includes a memory module having control logic for receiving and transmitting control/status values of input data or cell data along multi-line bus paths, respectively, and a control unit for controlling the memory module, and the control unit is arranged on a first word line. An error frame included in a preset error control range is detected among the eight first frames, and when at least one error frame is detected in the first word line, the second frame is divided into a plurality of blocks and input data is divided into cell data. It provides a data input/output device of a multi-level cell that controls to encode or decode cell data into input data.

또한, 4개의 셀 중 하나의 셀은 2 비트로 구성하고, 하나의 셀은 "00", "01", "10", "11" 중 하나를 저장하고, 제어부는 제1 프레임에서 "11"가 적어도 3개 이상이 읽히면, 오류 제어 범위 내에 포함된다고 판단하고, "11"가 적어도 3개 이상이 읽히는 제1 프레임을 오류 프레임이라고 판별할 수 있다.In addition, one cell of the four cells is composed of 2 bits, one cell stores one of "00", "01", "10", and "11", and the control unit stores "11" in the first frame. When at least three or more are read, it is determined that they are included in the error control range, and a first frame in which at least three or more "11"s are read may be determined as an error frame.

또한, 상기 제어부는 적어도 하나 이상의 오류 프레임을 먼저 배열시키고, 이후 제1 프레임을 제1 워드 라인 배열 순으로 순차적으로 배열시켜 제2 워드 라인을 설정할 수 있다.In addition, the controller may first arrange at least one error frame, and then set the second word line by sequentially arranging the first frame in the order of the first word line arrangement.

본 발명은 메모리 또는 데이터 용량을 크게 늘리지 않으면서 에러에 가장 취약한 데이터를 메모리 셀에 쓰지 않음으로써, 저항 드리프트 현상으로 인한 에러 발생 확률을 크게 낮출 수 있는 효과가 있다.The present invention has an effect of significantly reducing the probability of occurrence of an error due to a resistance drift phenomenon by not writing the data most vulnerable to errors to a memory cell without significantly increasing the memory or data capacity.

본 발명은 메모리 또는 데이터 용량을 크게 늘리지 않으면서 에러에 가장 취약한 데이터를 메모리 셀에 쓰지 않음으로써, 실제 메모리 제품이 사용되는 환경 상에서 MLC PRAM의 단점인 신뢰성 문제와 수명 문제를 동시에 최적화할 수 있다.The present invention does not significantly increase the memory or data capacity and does not write the data most vulnerable to errors to the memory cells, thereby simultaneously optimizing the reliability problem and the lifespan problem, which are disadvantages of the MLC PRAM, in an environment where an actual memory product is used.

도 1은 본 발명의 일 실시 예에 따른 멀티 레벨 셀의 데이터 입출력 장치의 간략화된 블록도이다.
도 2는 도 1의 따른 멀티 레벨 셀의 데이터 입출력 장치로부터 입출력되는 데이터를 판독하고, 판독된 데이터를 기록 또는 저장하기 위해 사용되는 회로의 예시적인 기능적 블록도이다.
도 3은 본 발명의 일실시 예에 따른 멀티 레벨 셀의 데이터 입출력 방법을 나타내는 블록도이다.
도 4는 본 발명의 일실시 예에 따라 멀티 레벨 셀의 데이터 입출력 장치에서 인코딩(encoding)되거나 디코딩(decoding)되는 데이터를 나타낸 도이다.
도 5는 본 발명의 일실시 예에 따라 인코딩(encoding)되기 전의 입력 데이터를 설명하기 위한 도이다.
도 6은 본 발명의 일실시 예에 따라 인코딩(encoding)된 후의 셀 데이터를 설명하기 위한 도이다.
도 7은 본 발명의 일실시 예에 따라 입력 데이터에서 셀 데이터로 암호화되는 과정을 설명하기 위한 도이다.
도 8은 본 발명의 일실시 예에 따라 복호화되는 셀 데이터를 설명하기 위한 도이다.
도 9는 본 발명의 일실시 예에 따른 셀 데이터 중 비안정 데이터의 위치 정보를 표로 도시한 도이다.
도 10은 본 발명의 일실시 예에 따른 셀 데이터 중 비안정 데이터를 표로 도시한 도이다.
도 11 및 도 12는 본 발명의 일실시 예에 따라 저항 드리프트 현상으로 인한 에러 발생 확률을 나타낸 도이다.
1 is a simplified block diagram of a data input/output device of a multi-level cell according to an embodiment of the present invention.
FIG. 2 is an exemplary functional block diagram of a circuit used to read data input/output from the data input/output device of the multi-level cell according to FIG. 1 and write or store the read data.
3 is a block diagram illustrating a data input/output method of a multi-level cell according to an embodiment of the present invention.
4 is a diagram illustrating data encoded or decoded in a data input/output device of a multi-level cell according to an embodiment of the present invention.
5 is a diagram for explaining input data before encoding according to an embodiment of the present invention.
6 is a diagram illustrating cell data after encoding according to an embodiment of the present invention.
7 is a diagram illustrating a process of encrypting input data into cell data according to an embodiment of the present invention.
8 is a diagram for describing cell data to be decoded according to an embodiment of the present invention.
9 is a diagram showing location information of unstable data among cell data according to an embodiment of the present invention.
10 is a diagram illustrating non-stable data among cell data according to an embodiment of the present invention.
11 and 12 are diagrams showing a probability of occurrence of an error due to a resistance drift phenomenon according to an embodiment of the present invention.

이하, 첨부된 도면을 참조하여 본 발명의 실시예의 구성과 그 작용을 설명하며, 도면에 의해서 설명되는 본 발명의 구성과 작용은 하나의 실시 예로서 설명되는 것이며, 이것에 의해서 본 발명의 기술적 사상과 그 핵심 구성 및 작용이 제한되지는 않는다.Hereinafter, the configuration and operation of the embodiments of the present invention will be described with reference to the accompanying drawings, and the configuration and operation of the present invention described by the drawings will be described as one embodiment, whereby the technical idea of the present invention And its core composition and operation are not limited.

아울러, 본 발명에서 사용되는 용어는 가능한 한 현재 널리 사용되는 일반적인 용어를 선택하였으나, 특정한 경우는 출원인이 임의로 선정한 용어를 사용하여 설명한다. 그러한 경우에는 해당 부분의 상세 설명에서 그 의미를 명확히 기재하므로, 본 발명의 설명에서 사용된 용어의 명칭만으로 단순 해석되어서는 안 될 것이며 그 해당 용어의 의미까지 파악하여 해석되어야 함을 밝혀두고자 한다.In addition, as for terms used in the present invention, general terms that are currently widely used are selected as far as possible, but specific cases will be described using terms arbitrarily selected by the applicant. In such a case, since the meaning of the term is clearly described in the detailed description of the corresponding part, it should not be interpreted simply by the name of the term used in the description of the present invention, and it should be clarified that the meaning of the term should be understood and interpreted. .

도 1은 본 발명의 일 실시 예에 따른 멀티 레벨 셀의 데이터 입출력 장치의 간략화된 블록도이다.1 is a simplified block diagram of a data input/output device of a multi-level cell according to an embodiment of the present invention.

도 1을 살펴보면, 본 발명의 일실시 예에 따른 멀티 레벨 셀의 데이터 입출력 장치(100)는 제어부(102) 및 메모리 모듈(104)을 포함할 수 있다.Referring to FIG. 1, the data input/output device 100 of a multi-level cell according to an embodiment of the present invention may include a control unit 102 and a memory module 104.

제어부(102)는 프로그래밍 가능(programmable)할 수 있거나 또는 하드웨어-기반일 수 있다. 제어부(102)는 호스트 디바이스(미도시)와의 I/O 동작들의 최상위 레벨을 제어할 수 있다. 제어부(102)는 별도의 컴포넌트일 수 있거나, 또는 메모리 모듈(104)에 직접적으로 통합될 수 있다.The control unit 102 may be programmable or may be hardware-based. The controller 102 may control the highest level of I/O operations with a host device (not shown). The control unit 102 may be a separate component or may be directly integrated into the memory module 104.

예를 들어, 제어부(102)는 입력 데이터를 셀 데이터로 인코딩(encoding)하거나 셀 데이터를 입력 데이터로 디코딩(decoding)할 수 있다. 제어부(102)는 메모리 모듈(104)에 입력되는 입력 데이터 중 에러에 가장 취약한 데이터를 제거하고, 이를 인코딩(encoding)하거나 디코딩(decoding)할 수 있다.For example, the controller 102 may encode input data into cell data or decode cell data into input data. The controller 102 may remove data most vulnerable to errors among input data input to the memory module 104 and encode or decode the data.

메모리 모듈(104)은 저장 디바이스를 위한 주 데이터 저장 영역일 수 있다. 메모리 모듈(104)은 제어부(102)의 제어 하에 인코딩(encoding)되거나 디코딩(decoding)된 데이터를 기록 또는 저장할 수 있다. 메모리 모듈(104)은 제어부(102)에 대하여 로컬 캐시 메모리를 구성할 수 있다. 메모리 모듈(104)은 메모리를 포함할 수 있다. 메모리 모듈(104)은 복수의 셀을 포함할 수 있다. 복수의 셀은 멀티 레벨 셀(multi-level cell, MLC)라 칭할 수 있다.The memory module 104 may be a main data storage area for a storage device. The memory module 104 may record or store data encoded or decoded under the control of the controller 102. The memory module 104 may configure a local cache memory for the control unit 102. The memory module 104 may include a memory. The memory module 104 may include a plurality of cells. The plurality of cells may be referred to as a multi-level cell (MLC).

멀티 레벨 셀(multi-level cell, MLC)은 셀당 2개 이상의 비트(bit)를 기록 또는 저장할 수 있다. 일반적으로 각각의 셀 내의 n개의 저장된 비트들은 2n개의 상이한 셀 상태들로 표현될 수 있다. 예를 들어, 단일 메모리 셀이 22=4개의 서로 다른 상태들을 갖도록 구성된다면, 논리 상태들 00, 01, 10 또는 11에 대응하는 n=2개의 비트들이 단일 메모리 셀 내에 기록 또는 저장될 수 있다. A multi-level cell (MLC) can record or store two or more bits per cell. In general, n stored bits in each cell can be represented by 2 n different cell states. For example, if a single memory cell is configured to have 2 2 =4 different states, n=2 bits corresponding to logic states 00, 01, 10 or 11 can be written or stored in the single memory cell. .

하나의 셀은 2 비트(bit)인 00, 01, 10, 11의 4가지 데이터를 저항 값 변화를 통해 기록 또는 저장할 수 있다.One cell can record or store 4 types of data of 00, 01, 10, 11, which are 2 bits, by changing the resistance value.

도 2는 도 1의 따른 멀티 레벨 셀의 데이터 입출력 장치로부터 입출력되는 데이터를 판독하고, 판독된 데이터를 기록 또는 저장하기 위해 사용되는 회로의 예시적인 기능적 블록도이다.FIG. 2 is an exemplary functional block diagram of a circuit used to read data input/output from the data input/output device of the multi-level cell according to FIG. 1 and write or store the read data.

도 2를 살펴보면, 도 1에서 설명한 메모리 모듈(104)은 제어 로직(108), 디코더(116, 118), 기록 회로(120) 및 판독 회로(122)를 포함할 수 있다. 이들의 제어부(102)의 제어 하에 동작할 수 있다.Referring to FIG. 2, the memory module 104 described in FIG. 1 may include a control logic 108, decoders 116 and 118, a write circuit 120 and a read circuit 122. It can operate under the control of these controllers 102.

입력 데이터는 메모리 셀들(106)의 행 및 열의 어레인지먼트로서 저장되고, 다양한 행 및 열의 제어 라인들에 의해 액세스될 수 있다. 셀들 및 셀들에 대한 액세스 라인들의 실제 구성들은 주어진 애플리케이션의 요건들에 따라 좌우될 수 있다.The input data is stored as an arrangement of rows and columns of memory cells 106 and can be accessed by control lines of various rows and columns. The actual configurations of the cells and access lines to the cells may depend on the requirements of a given application.

제어 로직(108)은 입력 데이터, 셀 데이터, 어드레싱(addressing) 정보 및 제어/상태 값들을 각각 멀티-라인 버스 경로들(110, 112 및 114)을 따라서 수신하고 전송할 수 있다. 제어 로직(108)은 인코딩부(108a)와 디코딩부(108b)를 포함할 수 있다.Control logic 108 may receive and transmit input data, cell data, addressing information, and control/status values along multi-line bus paths 110, 112 and 114, respectively. The control logic 108 may include an encoding unit 108a and a decoding unit 108b.

기록 회로(120)는 입력 데이터를 셀들(106)에 기록하기 위한 기록 동작들을 수행하기 위해 동작하는 회로 엘리먼트들을 표현할 수 있다.The write circuit 120 may represent circuit elements that operate to perform write operations for writing input data to the cells 106.

판독 회로(122)는 셀들로부터 셀 데이터를 획득하기 위해 대응하게 동작할 수 있다. 셀 데이터는 리드백(readback) 데이터라 칭할 수 있다. 전송되는 입력 데이터 또는 셀 데이터 그리고 다른 값들의 로컬 버퍼링이 하나 이상의 로컬 레지스터들을 통해 제공될 수 있다.The readout circuit 122 can operate correspondingly to obtain cell data from the cells. Cell data may be referred to as readback data. Local buffering of transmitted input data or cell data and other values may be provided through one or more local registers.

도 3은 본 발명의 일실시 예에 따른 멀티 레벨 셀의 데이터 입출력 방법을 나타내는 블록도이다.3 is a block diagram illustrating a data input/output method of a multi-level cell according to an embodiment of the present invention.

도 3을 살펴보면, 본 발명의 일실시 예에 따른 멀티 레벨 셀의 데이터 입출력 방법은 4개의 셀을 포함하는 제1 프레임을 8개씩 할당하여 제1 워드 라인을 설정할 수 있다(S11). 제1 프레임은 프레임E라 칭할 수 있다.Referring to FIG. 3, in the data input/output method of a multi-level cell according to an embodiment of the present invention, a first word line may be set by allocating eight first frames including four cells (S11). The first frame may be referred to as frame E.

제1 워드 라인에 배열되는 8개의 프레임E 중 기설정된 오류 제어 범위에 포함되는 오류 프레임을 검출 또는 판별할 수 있다(S12). Of the eight frames E arranged on the first word line, an error frame included in a preset error control range may be detected or determined (S12).

제1 워드 라인에서 적어도 하나의 오류 프레임이 판별되는 경우 프레임E를 5개의 셀을 포함하는 제2 프레임으로 변환하고, 제2 프레임을 8개씩 할당하여 제2 워드 라인으로 설정할 수 있다(S13). 제2 프레임은 프레임D라 칭할 수 있다.When at least one error frame is determined in the first word line, the frame E may be converted into a second frame including five cells, and eight second frames may be allocated and set as the second word line (S13). The second frame may be referred to as frame D.

프레임D을 복수의 블록으로 구획하여 입력 데이터를 셀 데이터로 인코딩할 수 있다(S14).By dividing the frame D into a plurality of blocks, input data may be encoded as cell data (S14).

셀 데이터를 입력 데이터로 디코딩할 수 있다(S15).Cell data may be decoded as input data (S15).

본 발명의 일실시 예에 따른 멀티 레벨 셀의 데이터 입출력 방법에 대한 자세한 설명은 후술하기로 한다.A detailed description of a data input/output method of a multilevel cell according to an embodiment of the present invention will be described later.

도 4는 본 발명의 일실시 예에 따라 멀티 레벨 셀의 데이터 입출력 장치에서 인코딩(encoding)되거나 디코딩(decoding)되는 데이터를 나타낸다. 도 5는 본 발명의 일실시 예에 따라 인코딩(encoding)되기 전의 입력 데이터를 설명하기 위한 도이다. 그리고 도 6은 본 발명의 일실시 예에 따라 인코딩(encoding)된 후의 셀 데이터를 설명하기 위한 도이다. 4 illustrates data encoded or decoded in a data input/output device of a multi-level cell according to an embodiment of the present invention. 5 is a diagram for explaining input data before encoding according to an embodiment of the present invention. 6 is a diagram for explaining cell data after encoding according to an embodiment of the present invention.

도 4 내지 도 6을 살펴보면, 본 발명에 따른 제어 로직(180)은 인코딩부(180a)와 디코딩부(180b)를 포함할 수 있다.4 to 6, the control logic 180 according to the present invention may include an encoding unit 180a and a decoding unit 180b.

인코딩부(180a)는 제어 로직(180)에 배치되고, 제어부(102)의 제어 하에 입력되는 입력 데이터(10)를 셀 데이터(20)로 인코딩할 수 있다.The encoding unit 180a is disposed in the control logic 180 and may encode the input data 10 input under the control of the controller 102 into the cell data 20.

디코딩부(180b)는 제어 로직(108)에 배치되고, 제어부(102)의 제어 하에 셀 데이터(20)를 입력 데이터(10)로 디코딩할 수 있다. 셀 데이터는 암호화된 입력 데이터(10)일 수 있다.The decoding unit 180b is disposed in the control logic 108 and may decode the cell data 20 into the input data 10 under the control of the controller 102. The cell data may be encrypted input data 10.

도 5에 도시된 바와 같이, 입력 데이터(10)는 메모리의 워드 라인(word line)에 배열될 수 있다. 메모리의 워드 라인(word line)은 컴퓨터 시스템에 맞추어 64 비트(bit)일 수 있다. 입력 데이터(10)는 하나의 제1 워드 라인(word line 1)를 8개의 제1 프레임(Frame 1)으로 나누어 배열될 수 있다. 제1 프레임(Frame 1)은 프레임E라 칭할 수 있다. 하나의 제1 워드 라인(word line 1)는 프레임E1(F11), 프레임E2(F12), 프레임E3(F13), 프레임E4(F14), 프레임E5(F15), 프레임E6(F16), 프레임E7(F17), 프레임E8(F18)로 배열될 수 있다. 하나의 프레임E(Frame 1)는 4개의 셀(Cell, FC11, FC12, FC13, FC14)로 구성될 수 있다. 4개의 셀(Cell, FC11, FC12, FC13, FC14)은 제11 셀(FC11), 제12 셀(FC12), 제13 셀(FC13) 및 제14 셀(FC14)을 포함할 수 있다.As shown in FIG. 5, the input data 10 may be arranged on a word line of a memory. The word line of the memory may be 64 bits according to the computer system. The input data 10 may be arranged by dividing one first word line 1 into eight first frames Frame 1. The first frame Frame 1 may be referred to as a frame E. One first word line is Frame E1 (F11), Frame E2 (F12), Frame E3 (F13), Frame E4 (F14), Frame E5 (F15), Frame E6 (F16), Frame E7. (F17), frame E8 (F18) can be arranged. One Frame E (Frame 1) may be composed of four cells (Cell, FC11, FC12, FC13, FC14). The four cells Cell, FC11, FC12, FC13, and FC14 may include an eleventh cell FC11, a twelfth cell FC12, a thirteenth cell FC13, and a fourteenth cell FC14.

제11 셀(FC11), 제12 셀(FC12), 제13 셀(FC13) 및 제14 셀(FC14) 각각은 2 비트(bit)로 구성될 수 있다. 프레임E는 8 비트(bit)로 구성될 수 있고, 제1 워드 라인(word line 1)은 8 비트(bit)씩 8개로 배열되어 64 비트(bit)로 구성될 수 있다. 입력 데이터(10)는 00, 01, 10, 11 일 수 있다. 이에 입력 데이터(10)는 4개의 셀(Cell) 단위에서 입력 데이터(10)의 가능한 경우의 수는 44=256가지일 수 있다.Each of the eleventh cell FC11, the twelfth cell FC12, the thirteenth cell FC13, and the fourteenth cell FC14 may be configured with 2 bits. Frame E may be composed of 8 bits, and the first word line 1 may be composed of 64 bits by arranging 8 pieces of 8 bits each. The input data 10 may be 00, 01, 10, 11. Accordingly, the number of possible cases of the input data 10 in the unit of 4 cells may be 4 4 =256.

제어부(102, 도 1 참조)는 입력 데이터(10)가 입력되면, 입력 데이터(10)를 기설정된 오류 제어 범위와 비교 또는 판별하여, 입력 데이터(10) 중 에러에 취약한 데이터가 기설정된 오류 제어 범위보다 많을 경우, 입력 데이터(10)를 암호화하여 셀 데이터(20)로 기록 또는 저장할 수 있다. 입력 데이터(10) 중 에러에 취약한 데이터는 00, 01, 10, 11 중 11일 수 있다. 기설정된 오류 제어 범위는 하나의 프레임E에 11이 적어도 3번 이상 기록되거나 저장된 범위일 수 있다. 기설정된 오류 제어 범위에 포함된 프레임은 오류 프레임이라 칭할 수 있다.When the input data 10 is input, the control unit 102 (see FIG. 1) compares or determines the input data 10 with a preset error control range, and controls the data vulnerable to errors among the input data 10 to a preset error control. If it is larger than the range, the input data 10 may be encrypted and recorded or stored as the cell data 20. Among the input data 10, data vulnerable to errors may be 11 of 00, 01, 10, and 11. The preset error control range may be a range in which 11 is recorded or stored at least 3 times in one frame E. A frame included in the preset error control range may be referred to as an error frame.

도 6에 도시된 바와 같이, 셀 데이터(20)는 메모리의 워드 라인(word line)에 배열될 수 있다. 셀 데이터(20)는 하나의 제2 워드 라인(word line 2)을 8개의 제2 프레임(Frame 2)으로 나누어 배열될 수 있다. 제2 프레임(Frame 2)은 프레임D라 칭할 수 있다. 하나의 제2 워드 라인(word line 2)은 프레임D1(F21), 프레임D2(F22), 프레임D3(F23), 프레임D4(F24), 프레임D5(F25), 프레임D6(F26), 프레임D7(F27), 프레임D8(F28)로 배열될 수 있다. 하나의 프레임D는 5개의 셀(Cell)로 구성될 수 있다. 5개의 셀(Cell, FC21, FC22, FC23, FC24, FC25)은 제21 셀(FC21), 제22 셀(FC22), 제23 셀(FC23), 제24 셀(FC24) 및 제25 셀(FC25)을 포함할 수 있다.As shown in FIG. 6, cell data 20 may be arranged on a word line of a memory. The cell data 20 may be arranged by dividing one second word line 2 into eight second frames Frame 2. The second frame (Frame 2) may be referred to as a frame D. One second word line (word line 2) is Frame D1 (F21), Frame D2 (F22), Frame D3 (F23), Frame D4 (F24), Frame D5 (F25), Frame D6 (F26), Frame D7 It can be arranged in (F27), frame D8 (F28). One frame D may consist of 5 cells. The five cells (Cell, FC21, FC22, FC23, FC24, FC25) are the 21st cell (FC21), the 22nd cell (FC22), the 23rd cell (FC23), the 24th cell (FC24), and the 25th cell (FC25). ) Can be included.

제21 셀(FC21), 제22 셀(FC22), 제23 셀(FC23), 제24 셀(FC24) 및 제25 셀(FC25) 각각은 2 비트(bit)로 구성될 수 있다. 이에 프레임D는 10 비트(bit)로 구성될 수 있고, 제2 워드 라인(word line 2)은 10 비트(bit)씩 8개로 배열되어 80 비트(bit)로 구성될 수 있다.Each of the 21st cell FC21, the 22nd cell FC22, the 23rd cell FC23, the 24th cell FC24, and the 25th cell FC25 may be configured with 2 bits. Accordingly, the frame D may be composed of 10 bits, and the second word line 2 may be composed of 80 bits by arranging 8 pieces of 10 bits each.

상술한 바와 같이, 제어부(102, 도 1 참조)는 입력 데이터(10)를 셀 데이터(20)로 인코딩한 후 5개 셀에 실질적으로 쓰도록 제어할 수 있다. 제어부(102, 도 1 참조)는 입력 데이터(10) 중 에러에 취약한 데이터인 11을 제외한 00, 01, 10을 이용하여 셀 데이터(20)에 인코딩된 데이터를 기록 또는 저장할 수 있다. 이에 셀 데이터(20)에 실질적으로 기록되거나 저장되는 데이터의 경우의 수는 최대 35=243가지일 수 있다. As described above, the controller 102 (refer to FIG. 1) may control the input data 10 to be substantially written to five cells after encoding the input data 10 into the cell data 20. The control unit 102 (refer to FIG. 1) may record or store encoded data in the cell data 20 by using 00, 01, and 10 except for 11, which is data vulnerable to errors, among the input data 10. Accordingly, the maximum number of cases of data that is actually recorded or stored in the cell data 20 may be 3 5 =243 types.

제어부(102, 도 1 참조)는 셀 데이터(20)에서 243개의 데이터의 경우의 수를 가지기 때문에 입력 데이터(10)에서 256개의 데이터의 경우의 수보다 13개의 입력 데이터(10)를 표시할 수 없다. 셀 데이터(20)에서 표현할 수 없거나 표시 못하는 13개의 데이터는 에러에 취약한 데이터인 11을 3개 이상 쓰이는 경우일 수 있다.Since the control unit 102 (refer to FIG. 1) has the number of 243 data cases in the cell data 20, it can display 13 input data 10 more than the number of 256 data cases in the input data 10. none. The 13 pieces of data that cannot or cannot be expressed in the cell data 20 may be a case in which 3 or more pieces of 11, which are susceptible to errors, are used.

셀 데이터(20)에서 표현할 수 없거나 표시 못하는 13개의 데이터는 비안정 데이터라 칭할 수 있다. 예를 들어, 비안정 데이터는 11111100, 11111101, 11111110, 111110011, 111110111, 111111011, 11001111, 11011111, 11101111, 00111111, 01111111, 10111111, 11111111일 수 있다. 비안정 데이터는 순차적으로 배열시킬 수 있다.Thirteen pieces of data that cannot or cannot be expressed in the cell data 20 may be referred to as unstable data. For example, the unstable data may be 11111100, 11111101, 11111110, 111110011, 111110111, 111111011, 11001111, 11011111, 11101111, 00111111, 01111111, 10111111, 11111111. Unstable data can be arranged sequentially.

도 7은 본 발명의 일실시 예에 따라 입력 데이터에서 셀 데이터로 암호화되는 과정을 설명하기 위한 도이고, 도 8은 본 발명의 일실시 예에 따라 복호화되는 셀 데이터를 설명하기 위한 도이고, 도 9는 본 발명의 일실시 예에 따른 셀 데이터 중 비안정 데이터의 위치 정보를 표로 도시한 도이고, 도 10은 본 발명의 일실시 예에 따른 셀 데이터 중 비안정 데이터를 표로 도시한 도이다.7 is a diagram for explaining a process of encrypting input data into cell data according to an embodiment of the present invention, and FIG. 8 is a diagram for explaining decrypted cell data according to an embodiment of the present invention. 9 is a diagram illustrating location information of unstable data among cell data according to an embodiment of the present invention, and FIG. 10 is a diagram illustrating non-stable data among cell data according to an embodiment of the present invention.

도 7을 살펴보면, 제어부(102, 도 1 참조)는 하나의 제1 워드 라인(word line 1, WL1)으로 구성된 입력 데이터(10)를 하나의 제2 워드 라인(word line 2, WL2)으로 구성된 셀 데이터(20)로 인코딩할 수 있다.Referring to FIG. 7, the control unit 102 (refer to FIG. 1) converts input data 10 composed of one first word line (word line 1, WL1) into one second word line (word line 2, WL2). It can be encoded as cell data 20.

제어부(102, 도 1 참조)는 8개의 프레임으로 구성된 하나의 제1 워드 라인(word line 1)에서 "11"이 적어도 3개 이상이 입력된 오류 프레임을 판별할 수 있다. 예를 들어, 하나의 제1 워드 라인(word line 1)은 프레임E1(F11), 프레임E2(F12), 프레임E3(F13), 프레임E4(F14), 프레임E5(F15), 프레임E6(F16), 프레임E7(F17) 및 프레임E8(F18)로 순차적으로 배열될 수 있다. 이때 입력 데이터(10)에 배열된 프레임E2(F12), 프레임E4(F14) 그리고 프레임E7(F17)은 "11"이 적어도 3개 이상이 존재하는 오류 프레임일 수 있다.The control unit 102 (refer to FIG. 1) may determine an error frame in which at least three “11”s are inputted from one first word line 1 composed of eight frames. For example, one first word line 1 is frame E1 (F11), frame E2 (F12), frame E3 (F13), frame E4 (F14), frame E5 (F15), frame E6 (F16). ), frame E7 (F17) and frame E8 (F18) may be sequentially arranged. At this time, the frames E2 (F12), E4 (F14), and frame E7 (F17) arranged in the input data 10 may be error frames in which at least three "11"s exist.

제어부(102, 도 1 참조)는 입력 데이터(10) 중 프레임E2(F12), 프레임E4(F14) 그리고 프레임E7(F17)에 비안정 데이터가 존재하는 오류 프레임이라고 판별되면, 이들을 인코딩시켜 안정 데이터로 변환하고, 안정 데이터를 셀 데이터(20)에 재배열할 수 있다. 안정 데이터는 "11"을 제외한 00, 01, 10으로만 구성된 데이터일 수 있다.The control unit 102 (refer to FIG. 1) determines that the frame E2 (F12), the frame E4 (F14) and the frame E7 (F17) among the input data 10 are error frames, and encodes them to provide stable data. And the stable data can be rearranged in the cell data 20. The stability data may be data composed of only 00, 01, and 10 excluding "11".

프레임E2(F12)는 입력 데이터(10)에서 8개의 프레임 중에서 비안정 데이터가 존재한다고 판별된 첫 번째 오류 프레임이므로, 제어부(102, 도 1 참조)의 제어 하에 안정 데이터로 인코딩된 후 셀 데이터(20)에서 첫 번째 프레임(F21)인 프레임D1(F21)로 재배열될 수 있다.Frame E2 (F12) is the first error frame in which it is determined that non-stable data exists among 8 frames in the input data 10, so after being encoded as stable data under the control of the control unit 102, cell data ( In 20), the first frame F21 may be rearranged into a frame D1 (F21).

프레임E4(F14)는 입력 데이터(10)에서 8개의 프레임 중에서 비안정 데이터가 존재한다고 판별된 두 번째 오류 프레임이므로, 제어부(102, 도 1 참조)의 제어 하에 안정 데이터로 인코딩된 후 셀 데이터(20)에서 두 번째 프레임(F22)인 프레임D2(F22)로 재배열될 수 있다. Frame E4 (F14) is the second error frame in which it is determined that non-stable data exists among eight frames from the input data 10, so after being encoded as stable data under the control of the control unit 102 (see FIG. 1), cell data ( In 20), the second frame F22 may be rearranged into a frame D2 (F22).

프레임E7(F17)는 입력 데이터(20)에서 8개의 프레임 중에서 비안정 데이터가 존재한다고 판별된 세 번째 오류 프레임이므로, 제어부(102, 도 1 참조)의 제어 하에 안정 데이터로 인코딩된 후 셀 데이터(20)에서 세 번째 프레임(F23)인 프레임D3(F23)로 재배열될 수 있다.Frame E7 (F17) is the third error frame in which it is determined that non-stable data exists among 8 frames in the input data 20, so after being encoded as stable data under the control of the control unit 102 (see FIG. 1), cell data ( In 20), the third frame F23 may be rearranged into a frame D3 (F23).

이후, 제어부(102, 도 1 참조)는 8개의 프레임 중에서 비안정 데이터가 존재하지 않는 나머지 프레임을, 적어도 하나 이상의 오류 프레임 뒤에 순차적으로 재배열시킬 수 있다.Thereafter, the controller 102 (refer to FIG. 1) may sequentially rearrange the remaining frames in which non-stable data does not exist among the eight frames, after at least one error frame.

예를 들어, 프레임E1(F11)은 입력 데이터(10)에서 8개의 프레임 중에서 첫 번째에 배열된 프레임(F11)이었으나, 제어부(102, 도 1 참조)의 제어 하에 셀 데이터(20)에서 네 번째 프레임(F24)인 프레임D4(F24)로 재배열될 수 있다. 프레임E3(F13)은 입력 데이터(10)에서 8개의 프레임 중에서 세 번째에 배열된 프레임(F13)이었으나, 제어부(102, 도 1 참조)의 제어 하에 셀 데이터(20)에서 다섯 번째 프레임(F25)인 프레임D5(F25)로 재배열될 수 있다. 프레임E5(F15)는 입력 데이터(10)에서 8개의 프레임 중에서 다섯 번째에 배열된 프레임(F15)이었으나, 제어부(102, 도 1 참조)의 제어 하에 셀 데이터(20)에서 여섯 번째 프레임(F26)인 프레임D6(F26)으로 재배열될 수 있다. 프레임E6(F16)은 입력 데이터(10)에서 8개의 프레임 중에서 여섯 번째에 배열된 프레임(F16)이었으나, 제어부(102, 도 1 참조)의 제어 하에 셀 데이터(20)에서 일곱 번째 프레임(F27)인 프레임D7(F27)로 재배열될 수 있다. 프레임E8(F18)은 입력 데이터(10)에서 8개의 프레임 중에서 여덟 번째에 배열된 프레임(F16)이었으나, 제어부(102, 도 1 참조)의 제어 하에 셀 데이터(20)에서 여덟 번째 프레임(F28)인 프레임D8(F28)로 재배열될 수 있다.For example, the frame E1 (F11) was the first frame (F11) arranged among the eight frames in the input data 10, but the fourth in the cell data 20 under the control of the control unit 102 (see FIG. 1). It may be rearranged into frame D4 (F24) which is frame (F24). Frame E3 (F13) was the third frame (F13) arranged out of eight frames in the input data 10, but the fifth frame (F25) from the cell data 20 under the control of the control unit 102 (see FIG. 1). It can be rearranged to the in-frame D5 (F25). The frame E5 (F15) was the fifth frame (F15) arranged in the eight frames in the input data 10, but the sixth frame (F26) from the cell data 20 under the control of the controller 102 (see FIG. 1). It can be rearranged to the in-frame D6 (F26). The frame E6 (F16) was the sixth frame (F16) arranged in the eight frames from the input data 10, but the seventh frame (F27) from the cell data 20 under the control of the control unit 102 (see FIG. 1). It can be rearranged to the in-frame D7 (F27). Frame E8 (F18) was the eighth frame (F16) arranged in the eight frames from the input data 10, but the eighth frame (F28) from the cell data 20 under the control of the control unit 102 (see FIG. 1). It can be rearranged into the in-frame D8 (F28).

도 8을 살펴보면, 제어부(102, 도 1 참조)는 셀 데이터(20)에서 안정 데이터가 존재하는 프레임을 재구성하여 인코딩된 데이터를 다시 디코딩시킬 수 있다.Referring to FIG. 8, the controller 102 (refer to FIG. 1) may reconstruct a frame in which stable data exists in the cell data 20 and decode the encoded data again.

안정 데이터는 제1 블록(BL1), 제2 블록(BL2) 그리고 제3 블록(BL3)으로 구획될 수 있다. 제1 블록(BL1), 제2 블록(BL2) 그리고 제3 블록(BL3) 각각은 1비트(bit) 이상 5비트(bit) 이하로 구획될 수 있다. 이때 제1 블록(BL1), 제2 블록(BL2) 그리고 제3 블록(BL3)의 총 비트(bit) 합은 10 비트(bit)일 수 있다.The stable data may be divided into a first block BL1, a second block BL2, and a third block BL3. Each of the first block BL1, the second block BL2, and the third block BL3 may be divided into 1 bit or more and 5 bits or less. In this case, the sum of the total bits of the first block BL1, the second block BL2, and the third block BL3 may be 10 bits.

제1 블록(BL1)은 한 개의 비트(bit) 또는 1 비트(bit)로 구획될 수 있다. 예를 들어, 제1 블록(BL1)은 "0" 또는 "1"로 표시될 수 있다. 제어부(102, 도 1 참조)는 제1 블록(BL1)이 "0"으로 읽히면, 다음 프레임은 안정 데이터가 존재하지 않은 프레임이라 판단할 수 있다. 제어부(102, 도 1 참조)는 첫 번째 프레임인 프레임D1(F21)의 제1 블록(BL1)에서 "0"으로 읽히면, 두 번째 프레임인 프레임D2(F22)는 오류 프레임이 아닌 정상적인 프레임이라 판단할 수 있다. 그리고 제어부(102, 도 1 참조)는 제1 블록(BL1)이 "1"로 읽히면, 다음 프레임은 안정 데이터가 존재하는 프레임이라 판단할 수 있다. 제어부(102, 도 1 참조)는 첫 번째 프레임인 프레임D1(F21)의 제1 블록(BL1)에서 "1"로 읽히면, 두 번째 프레임인 프레임D2(F22)는 오류 프레임이라 판단할 수 있다. 제1 블록(BL1)은 다음 프레임의 안정 데이터에 대한 존재 유무에 대한 정보를 포함할 수 있다. 즉, 제1 블록(BL1)은 다음에 배열되는 프레임이 오류 프레임인지 여부에 대한 정보를 포함할 수 있다.The first block BL1 may be divided into one bit or one bit. For example, the first block BL1 may be displayed as “0” or “1”. When the first block BL1 is read as “0”, the control unit 102 (see FIG. 1) may determine that the next frame is a frame in which stable data does not exist. If the control unit 102 (see FIG. 1) reads “0” in the first block BL1 of the first frame D1 (F21), the second frame D2 (F22) is a normal frame, not an error frame. I can judge. In addition, when the first block BL1 is read as "1", the controller 102 (refer to FIG. 1) may determine that the next frame is a frame in which stable data exists. The controller 102 (refer to FIG. 1) may determine that the second frame, the frame D2 (F22), is an error frame when reading as “1” in the first block BL1 of the first frame D1 (F21). . The first block BL1 may include information on the presence or absence of stable data of the next frame. That is, the first block BL1 may include information on whether a frame arranged next is an error frame.

제2 블록(BL2)은 네 개의 비트(bit) 또는 4 비트(bit)로 구획될 수 있다. 도 9에 도시된 바와 같이, 제2 블록(BL2)은 "0000(R21)" 내지 "0111(R28)"로 표시될 수 있다. The second block BL2 may be divided into four bits or four bits. As illustrated in FIG. 9, the second block BL2 may be displayed as “0000(R21)” to “0111(R28)”.

예를 들어, 제어부(102, 도 1 참조)는 제2 블록(BL2)이 "0000(R21)"으로 읽히면, 비안정 데이터가 입력 데이터(10)의 첫 번째 프레임(F11)에 배열되었음을 판단할 수 있다. 제어부(102, 도 1 참조)는 제2 블록(BL2)이 "0001(R22)"로 읽히면, 비안정 데이터가 입력 데이터(10)의 두 번째 프레임(F12)에 배열되었음을 판단할 수 있다. 제어부(102, 도 1 참조)는 는 제2 블록(BL2)이 "0010(R23)"으로 읽히면, 비안정 데이터가 입력 데이터(10)의 세 번째 프레임(F13)에 배열되었음을 판단할 수 있다. 제어부(102, 도 1 참조)는 제2 블록(BL2)이 "0011(R24)"로 읽히면, 비안정 데이터가 입력 데이터(10)의 네 번째 프레임(F14)에 배열되었음을 판단할 수 있다. 제어부(102, 도 1 참조)는 제2 블록(BL2)이 "0100(R25)"으로 읽히면, 비안정 데이터가 입력 데이터(10)의 다섯 번째 프레임(F15)에 배열되었음을 판단할 수 있다. 제어부(102, 도 1 참조)는 제2 블록(BL2)이 "0101(R26)"로 읽히면, 비안정 데이터가 입력 데이터(10)의 여섯 번째 프레임(F16)에 배열되었음을 판단할 수 있다. 제어부(102, 도 1 참조)는 제2 블록(BL2)이 "0110(R27)"으로 읽히면, 비안정 데이터가 입력 데이터(10)의 일곱 번째 프레임(F17)에 배열되었음을 판단할 수 있다. 제어부(102, 도 1 참조)는 제2 블록(BL2)이 "0111(R28)"로 읽히면, 비안정 데이터가 입력 데이터((F13))의 여덟 번째 프레임(F18)에 배열되었음을 판단할 수 있다. 즉, 제2 블록(BL2)은 입력 데이터(10)에서 비안정 데이터의 원래 또는 실제 위치에 대한 정보를 포함할 수 있다.For example, when the second block BL2 is read as "0000 (R21)", the control unit 102 (refer to FIG. 1) determines that unstable data is arranged in the first frame F11 of the input data 10 can do. When the second block BL2 is read as “0001 (R22)”, the controller 102 (see FIG. 1) may determine that the unstable data is arranged in the second frame F12 of the input data 10. When the second block BL2 is read as "0010 (R23)", the control unit 102 (see FIG. 1) may determine that unstable data is arranged in the third frame F13 of the input data 10. . When the second block BL2 is read as "0011 (R24)", the control unit 102 (see FIG. 1) may determine that the unstable data is arranged in the fourth frame F14 of the input data 10. When the second block BL2 is read as “0100 (R25)”, the control unit 102 (see FIG. 1) may determine that the unstable data is arranged in the fifth frame F15 of the input data 10. When the second block BL2 is read as “0101 (R26)”, the control unit 102 (see FIG. 1) may determine that the unstable data is arranged in the sixth frame F16 of the input data 10. When the second block BL2 is read as “0110 (R27)”, the control unit 102 (see FIG. 1) may determine that the unstable data is arranged in the seventh frame F17 of the input data 10. When the second block BL2 is read as "0111 (R28)", the control unit 102 (see FIG. 1) can determine that the unstable data is arranged in the eighth frame F18 of the input data (F13). have. That is, the second block BL2 may include information on the original or actual position of the unstable data in the input data 10.

제3 블록(BL3)은 다섯 개의 비트(bit) 또는 5 비트(bit)로 구획될 수 있다. 도 10에 도시된 바와 같이, 제3 블록(BL3)은 "00000(R301)" 내지 "01100(R313)"로 표시될 수 있다. The third block BL3 may be divided into five bits or five bits. As illustrated in FIG. 10, the third block BL3 may be displayed as “00000 (R301)” to “01100 (R313)”.

예를 들어, 제어부(102, 도 1 참조)는 제3 블록(BL3)이 "00000(R301)"으로 읽히면, 오류 제어 범위 중 첫 번째 위치하는 비안정 데이터에 대한 데이터 또는 데이터 값인 "11111100"을 읽을 수 있다. 제어부(102, 도 1 참조)는 는 제3 블록(BL3)이 "00001(R302)"로 읽히면, 오류 제어 범위 중 두 번째 위치하는 비안정 데이터에 대한 데이터 또는 데이터 값인 "11111101"을 읽을 수 있다. 제어부(102, 도 1 참조)는 제3 블록(BL3)이 "00010(R303)"으로 읽히면, 오류 제어 범위 중 세 번째 위치하는 비안정 데이터에 대한 데이터 또는 데이터 값인 "11111110"을 읽을 수 있다. 제어부(102, 도 1 참조)는 제3 블록(BL3)이 "00011(R304)"로 읽히면, 오류 제어 범위 중 네 번째 위치하는 비안정 데이터에 대한 데이터 또는 데이터 값인 "11110011"을 읽을 수 있다. 제어부(102, 도 1 참조)는 제3 블록(BL3)이 "00100(R305)"으로 읽히면, 오류 제어 범위 중 다섯 번째 위치하는 비안정 데이터에 대한 데이터 또는 데이터 값인 "11110111"을 읽을 수 있다. 제어부(102, 도 1 참조)는 제3 블록(BL3)이 "00101(R306)"로 읽히면, 오류 제어 범위 중 여섯 번째 위치하는 비안정 데이터에 대한 데이터 또는 데이터 값인 "11111011"을 읽을 수 있다. 제어부(102, 도 1 참조)는 제3 블록(BL3)이 "00110(R307)"으로 읽히면, 오류 제어 범위 중 일곱 번째 위치하는 비안정 데이터에 대한 데이터 또는 데이터 값인 "11001111"을 읽을 수 있다. 제어부(102, 도 1 참조)는 제3 블록(BL3)이 "00111(R308)"로 읽히면, 오류 제어 범위 중 여덟 번째 위치하는 비안정 데이터에 대한 데이터 또는 데이터 값인 "11011111"을 읽을 수 있다. 제어부(102, 도 1 참조)는 제3 블록(BL3)이 "01000(R309)"으로 읽히면, 오류 제어 범위 중 아홉 번째 위치하는 비안정 데이터에 대한 데이터 또는 데이터 값인 "11101111"을 읽을 수 있다. 제어부는 제3 블록(BL3)이 "01001(R310)"로 읽히면, 오류 제어 범위 중 열 번째 위치하는 비안정 데이터에 대한 데이터 또는 데이터 값인 "00111111"을 읽을 수 있다. 제어부(102, 도 1 참조)는 제3 블록(BL3)이 "01010(R311)"으로 읽히면, 오류 제어 범위 중 열한 번째 위치하는 비안정 데이터에 대한 데이터 또는 데이터 값인 "01111111"을 읽을 수 있다. 제어부(102, 도 1 참조)는 제3 블록(BL3)이 "01011(R312)"로 읽히면, 오류 제어 범위 중 열두 번째 위치하는 비안정 데이터에 대한 데이터 또는 데이터 값인 "10111111"을 읽을 수 있다. 제어부(102, 도 1 참조)는 제3 블록(BL3)이 "01100(R313)"으로 읽히면, 오류 제어 범위 중 열세 번째 위치하는 비안정 데이터에 대한 데이터 또는 데이터 값인 "11111111"을 읽을 수 있다. 즉, 제3 블록(BL3)은 오류 제어 범위의 대한 데이터 또는 데이터 값에 대한 정보를 포함할 수 있다.For example, when the third block BL3 is read as “00000 (R301)”, the control unit 102 (refer to FIG. 1), when the third block BL3 is read, “11111100”, which is data or data value for unstable data located at the first position in the error control range. Can be read. When the third block BL3 is read as "00001 (R302)", the controller 102 (refer to FIG. 1) can read the data or data value "11111101" for unstable data located in the second of the error control range. have. When the third block BL3 is read as "00010 (R303)", the controller 102 (see FIG. 1) may read data or data value "11111110" for unstable data located in the third error control range. . When the third block BL3 is read as "00011 (R304)", the control unit 102 (see FIG. 1) may read data or data value "11110011" for unstable data located at the fourth of the error control range. . When the third block BL3 is read as "00100 (R305)", the controller 102 (see FIG. 1) may read data or data value "11110111" for unstable data located at the fifth position in the error control range. . When the third block BL3 is read as "00101 (R306)", the controller 102 (see FIG. 1) may read data or data value "11111011" for unstable data located in the sixth position in the error control range. . When the third block BL3 is read as "00110 (R307)", the controller 102 (see FIG. 1) may read data or data value "11001111" for unstable data located in the seventh error control range. . When the third block BL3 is read as "00111 (R308)", the controller 102 (refer to FIG. 1) may read data or data value "11011111" for unstable data located at the eighth of the error control range. . When the third block BL3 is read as "01000 (R309)", the controller 102 (see FIG. 1) may read data or data value "11101111" for unstable data located at the ninth of the error control range. . When the third block BL3 is read as "01001 (R310)", the controller may read data or data value "00111111" for unstable data located at the tenth position in the error control range. When the third block BL3 is read as “01010 (R311)”, the control unit 102 (refer to FIG. 1) may read data or data value “01111111” for unstable data at the eleventh position of the error control range. . When the third block BL3 is read as "01011 (R312)", the controller 102 (see FIG. 1) may read data or data value "10111111" for unstable data located in the twelfth position of the error control range. . When the third block BL3 is read as "01100 (R313)", the controller 102 (refer to FIG. 1) may read data or data value "11111111" for unstable data located in the thirteenth error control range. . That is, the third block BL3 may include data on the error control range or information on a data value.

상술한 바와 같이, 본 발명은 제어부(102, 도 1 참조)의 제어 하에 디코딩 시에 제2 워드 라인(word line 2)마다 할당된 1 비트(bit)를 먼저 읽고, 오류 프레임 또는 예외 사항이 하나라도 있으면 5 개의 셀 중 첫 번째 셀부터 읽어 가며, 입력 데이터(10)의 예외 사항 여부에 따라 다른 디코딩 방식을 진행할 수 있다.As described above, the present invention first reads 1 bit allocated for each second word line 2 during decoding under the control of the controller 102 (see FIG. 1), and an error frame or exception If there is any, the first cell of the five cells is read, and a different decoding method may be performed depending on whether the input data 10 is an exception.

도 11 및 도 12는 본 발명의 일실시 예에 따라 저항 드리프트 현상으로 인한 에러 발생 확률을 나타낸 도이다.11 and 12 are diagrams illustrating a probability of occurrence of an error due to a resistance drift phenomenon according to an embodiment of the present invention.

도 1 내지 도 10에서 설명한 바와 같이, 본 발명은 메모리 셀에 "11"데이터를 쓰지 않게 됨으로써, 종래에 "11" 데이터를 표시하기 위해 소자가 차지하고 있던 저항 값의 범위를 도 10에 도시된 바와 같이, 두 번째로 에러 발생 확률이 높은 "01"에 할당할 수 있다. 그 결과 저항 드리프트 현상으로 인한 에러 발생 확률은 크게 낮아질 수 있다.1 to 10, the present invention does not write "11" data to the memory cell, so that the range of the resistance value occupied by the element to display the data "11" in the related art is as shown in FIG. Likewise, it can be assigned to "01", which has the second highest probability of error occurrence. As a result, the probability of occurrence of an error due to the resistance drift phenomenon can be greatly reduced.

또한, 본 발명은 RTL로 구현된 인코딩/디코딩 로직을 합성하여 나온 결과물을 차세대 메모리 시뮬레이터인 NVMain에 추가하여 진행하였다.In addition, the present invention proceeds by adding the result obtained by synthesizing the encoding/decoding logic implemented by RTL to NVMain, a next-generation memory simulator.

본 발명에서 대조군은 에러 발생 속도에 맞추어 10-12 수준의 비트 오류 확률을 보장하도록 데이터를 업데이트 해주는 일반적인 MLC PRAM으로 설정하였다.In the present invention, the control group was set to a general MLC PRAM that updates data to ensure a bit error probability of 10 -12 levels according to the error occurrence rate.

그 결과 에러 발생 확률은 약 75% 감소하였으며, 한 셀 당 평균 쓰기 횟수는 약 24.0% 감소, 전력은 약 10.0% 감소하였다. 데이터를 읽고 쓰는데 추가적으로 필요한 시간 지연은 약 2.3%였으며, 메모리의 용량 오버 헤드는 21%이다. 이는 기존 DCW 방식 대비 메모리 용량은 58%만큼 절약할 수 있으며, 본 발명을 통해 암호화 시 용량 한계로 처리할 수 없는 입력 데이터들의 경우의 수를 감소시켜 암호화 된 데이터가 요구하는 추가 메모리 셀을 절약시키는 가이드 라인을 제공할 수 있다.As a result, the probability of error occurrence decreased by about 75%, the average number of writes per cell decreased by about 24.0%, and the power decreased by about 10.0%. The additional time delay required to read and write data was about 2.3%, and the memory capacity overhead was 21%. This can save the memory capacity by 58% compared to the existing DCW method, and through the present invention, the number of input data that cannot be processed due to the capacity limit during encryption is reduced, thereby saving additional memory cells required by encrypted data. Guidelines can be provided.

본 발명의 실시 예 및 본 명세서에 첨부된 도면은 전술한 기술에 포함되는 기술적 사상의 일부를 명확하게 나타내고 있는 것에 불과하며, 전술한 기술의 명세서 및 도면에 포함된 기술적 사상의 범위 내에서 당업자가 용이하게 유추할 수 있는 변형 예와 구체적인 실시 예는 모두 전술한 기술의 권리범위에 포함되는 것이 자명하다고 할 것이다.Embodiments of the present invention and the accompanying drawings are merely illustrative of some of the technical ideas included in the above-described technology, and those skilled in the art within the scope of the technical ideas included in the above description and drawings It will be apparent that both modified examples and specific embodiments that can be easily inferred are included in the scope of the above-described technology.

100: 멀티 레벨 셀의 데이터 입출력 장치
102: 제어부
104: 메모리 모듈
100: multi-level cell data input/output device
102: control unit
104: memory module

Claims (14)

4개의 셀을 포함하는 프레임E을 8개씩 할당하여 제1 워드 라인을 설정하는 단계;
상기 제1 워드 라인에 배열되는 상기 8개의 제1 프레임 중 기설정된 오류 제어 범위에 포함되는 오류 프레임을 검출하는 단계;
상기 제1 워드 라인에서 적어도 하나의 상기 오류 프레임이 검출되는 경우 상기 제1 프레임을 5개의 셀을 포함하는 제2 프레임으로 변환하고, 상기 제2 프레임을 8개씩 할당하여 제2 워드 라인으로 설정하는 단계;
상기 제2 프레임을 복수의 블록으로 구획하여 입력 데이터를 셀 데이터로 인코딩하는 단계; 및
상기 셀 데이터를 상기 입력 데이터로 디코딩하는 단계;
를 포함하는 멀티 레벨 셀의 데이터 입출력 방법.
Setting a first word line by allocating eight frames E including four cells;
Detecting an error frame included in a preset error control range among the eight first frames arranged on the first word line;
When at least one error frame is detected in the first word line, converting the first frame into a second frame including five cells, and assigning eight second frames to a second word line step;
Partitioning the second frame into a plurality of blocks and encoding input data into cell data; And
Decoding the cell data into the input data;
Data input and output method of a multi-level cell comprising a.
제1 항에 있어서,
상기 4개의 셀 중 하나의 셀은 2 비트로 구성하고,
상기 하나의 셀은 "00", "01", "10", "11" 중 하나를 저장하고,
상기 오류 제어 범위는
상기 제1 프레임에서 상기 "11"가 적어도 3개 이상이 읽히면, 상기 오류 프레임이라고 판별하는 멀티 레벨 셀의 데이터 입출력 방법.
The method of claim 1,
One cell of the four cells consists of 2 bits,
The one cell stores one of "00", "01", "10", and "11",
The error control range is
When at least three "11"s are read in the first frame, the data input/output method of a multi-level cell is determined to be the error frame.
제2 항에 있어서,
상기 복수의 블록은 제1 블록 내지 제3 블록을 포함하고,
상기 제1 블록은 하나의 비트로 구성되고,
상기 제2 블록은 4 개의 비트로 구성되고,
상기 제3 블록은 5개의 비트로 구성되는 멀티 레벨 셀의 데이터 입출력 방법.
The method of claim 2,
The plurality of blocks includes a first block to a third block,
The first block consists of one bit,
The second block consists of 4 bits,
The third block is a data input/output method of a multi-level cell consisting of 5 bits.
제3 항에 있어서,
상기 제1 블록은
다음에 배열되는 프레임이 상기 오류 프레임인지 여부에 대한 정보를 포함하는 멀티 레벨 셀의 데이터 입출력 방법.
The method of claim 3,
The first block is
A data input/output method of a multi-level cell including information on whether or not a frame arranged next is the error frame.
제3 항에 있어서,
상기 제2 블록은
상기 제1 워드 라인에 배열된 상기 제1 프레임의 실제 위치에 대한 정보를 포함하는 멀티 레벨 셀의 데이터 입출력 방법.
The method of claim 3,
The second block is
A data input/output method of a multi-level cell including information on an actual position of the first frame arranged on the first word line.
제3 항에 있어서,
상기 제3 블록은
상기 "11"가 포함된 상기 제1 프레임의 실제 데이터에 대한 정보를 포함하는 멀티 레벨 셀의 데이터 입출력 방법.
The method of claim 3,
The third block is
A data input/output method of a multi-level cell including information on actual data of the first frame including “11”.
제3 항에 있어서,
상기 제2 워드 라인은
적어도 하나 이상의 상기 오류 프레임을 먼저 배열시키고, 이후 상기 제1 프레임을 상기 제1 워드 라인 배열 순으로 순차적으로 배열시켜 설정하는 멀티 레벨 셀의 데이터 입출력 방법.
The method of claim 3,
The second word line is
A data input/output method of a multi-level cell in which at least one or more error frames are first arranged and then the first frames are sequentially arranged in the order of the first word line arrangement.
4개의 셀을 포함하는 제1 프레임을 8개씩 할당하여 제1 워드 라인, 5개의 셀을 포함하는 제2 프레임을 8개씩 할당하여 제2 워드 라인 및 상기 제1 프레임과 상기 제2 프레임 각각에 입력 데이터 또는 셀 데이터의 제어/상태 값들을 각각 멀티 라인 버스 경로들을 따라서 수신하고 전송하는 제어 로직을 구비하는 메모리 모듈; 및
상기 메모리 모듈을 제어하는 제어부를 포함하고,
상기 제어부는
상기 제1 워드 라인에 배열되는 상기 8개의 제1 프레임 중 기설정된 오류 제어 범위에 포함되는 오류 프레임을 검출하고,
상기 제1 워드 라인에서 적어도 하나의 상기 오류 프레임이 검출되는 경우 상기 제2 프레임을 복수의 블록으로 구획하여 상기 입력 데이터를 상기 셀 데이터로 인코딩하거나 상기 셀 데이터를 상기 입력 데이터로 디코딩하도록 제어하는 멀티 레벨 셀의 데이터 입출력 장치.
A first frame including four cells is allocated to each of eight, and a first word line and a second frame including five cells are allocated to each of eight and input to the second word line, the first frame, and the second frame. A memory module having control logic for receiving and transmitting control/status values of data or cell data along multi-line bus paths, respectively; And
Includes a control unit for controlling the memory module,
The control unit
Detecting an error frame included in a preset error control range among the eight first frames arranged on the first word line,
When at least one error frame is detected in the first word line, the second frame is divided into a plurality of blocks to encode the input data into the cell data or to decode the cell data into the input data. Level cell data input/output device.
제8 항에 있어서,
상기 4개의 셀 중 하나의 셀은 2 비트로 구성하고,
상기 하나의 셀은 "00", "01", "10", "11" 중 하나를 저장하고,
상기 제어부는
상기 제1 프레임에서 상기 "11"가 적어도 3개 이상이 읽히면, 상기 오류 제어 범위 내에 포함된다고 판단하고,
상기 "11"가 적어도 3개 이상이 읽히는 상기 제1 프레임을 상기 오류 프레임이라고 판별하는 멀티 레벨 셀의 데이터 입출력 장치.
The method of claim 8,
One cell of the four cells consists of 2 bits,
The one cell stores one of "00", "01", "10", and "11",
The control unit
If at least three of the "11" are read in the first frame, it is determined that it is included in the error control range,
A data input/output device of a multi-level cell for determining that the first frame in which at least three or more "11"s are read is the error frame.
제9 항에 있어서,
상기 복수의 블록은 제1 블록 내지 제3 블록을 포함하고,
상기 제1 블록은 하나의 비트로 구성되고,
상기 제2 블록은 4 개의 비트로 구성되고,
상기 제3 블록은 5개의 비트로 구성되는 멀티 레벨 셀의 데이터 입출력 장치.
The method of claim 9,
The plurality of blocks includes a first block to a third block,
The first block consists of one bit,
The second block consists of 4 bits,
The third block is a multi-level cell data input/output device consisting of five bits.
제10 항에 있어서,
상기 제1 블록은
다음에 배열되는 프레임이 상기 오류 프레임인지 여부에 대한 정보를 포함하는 멀티 레벨 셀의 데이터 입출력 장치.
The method of claim 10,
The first block is
A data input/output device of a multi-level cell including information on whether a frame arranged next is the error frame.
제10 항에 있어서,
상기 제2 블록은
상기 제1 워드 라인에 배열된 상기 제1 프레임의 실제 위치에 대한 정보를 포함하는 멀티 레벨 셀의 데이터 입출력 장치.
The method of claim 10,
The second block is
A data input/output device of a multi-level cell including information on an actual position of the first frame arranged on the first word line.
제10 항에 있어서,
상기 제3 블록은
상기 "11"가 포함된 상기 제1 프레임의 실제 데이터에 대한 정보를 포함하는 멀티 레벨 셀의 데이터 입출력 장치.
The method of claim 10,
The third block is
A data input/output device of a multi-level cell including information on actual data of the first frame including the “11”.
제10 항에 있어서,
상기 제어부는
적어도 하나 이상의 상기 오류 프레임을 먼저 배열시키고, 이후 상기 제1 프레임을 상기 제1 워드 라인 배열 순으로 순차적으로 배열시켜 상기 제2 워드 라인을 설정하는 멀티 레벨 셀의 데이터 입출력 장치.
The method of claim 10,
The control unit
A data input/output device of a multilevel cell for setting the second word line by first arranging at least one or more error frames, and then sequentially arranging the first frames in the order of the first word line arrangement.
KR1020190018131A 2019-02-15 2019-02-15 Data input/output device of mlc(multi level cell) and method thereof KR102178340B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190018131A KR102178340B1 (en) 2019-02-15 2019-02-15 Data input/output device of mlc(multi level cell) and method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190018131A KR102178340B1 (en) 2019-02-15 2019-02-15 Data input/output device of mlc(multi level cell) and method thereof

Publications (2)

Publication Number Publication Date
KR20200099905A KR20200099905A (en) 2020-08-25
KR102178340B1 true KR102178340B1 (en) 2020-11-12

Family

ID=72242273

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190018131A KR102178340B1 (en) 2019-02-15 2019-02-15 Data input/output device of mlc(multi level cell) and method thereof

Country Status (1)

Country Link
KR (1) KR102178340B1 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130024748A1 (en) 2011-07-22 2013-01-24 Sandisk Technologies Inc. Systems and methods of storing data

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101991911B1 (en) * 2012-05-22 2019-06-24 삼성전자주식회사 Code modulation incoder and decoder, memory controller including them, and flash memory system
KR102007163B1 (en) * 2013-04-22 2019-10-01 에스케이하이닉스 주식회사 Encoder, decoder and semiconductor device including the same

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130024748A1 (en) 2011-07-22 2013-01-24 Sandisk Technologies Inc. Systems and methods of storing data

Also Published As

Publication number Publication date
KR20200099905A (en) 2020-08-25

Similar Documents

Publication Publication Date Title
US11798627B2 (en) Multi-phased programming with balanced gray coding
US9639462B2 (en) Device for selecting a level for at least one read voltage
US6549457B1 (en) Using multiple status bits per cell for handling power failures during write operations
KR101602316B1 (en) Semiconductor memory device and data processing method thereof
US20130176785A1 (en) Method for accessing a flash memory, and associated flash memory system
KR20160074237A (en) Data storage device and operating method thereof
US9536600B2 (en) Simultaneous multi-page commands for non-volatile memories
JP5259138B2 (en) Storage device
KR20200126563A (en) Storage device, controller and operating method of controller thereof
CN113539342A (en) Active read interference mitigation
US10747660B2 (en) Method and system for forming and using memory superblocks based on performance grades
US20110280074A1 (en) Data Writing Method and Data Storage Device
CN115145755A (en) System and method for remapping bad blocks in a memory subsystem
JP2007157234A (en) Memory system
CN104969202A (en) Semiconductor storage device and control method for same
US6807610B2 (en) Method and apparatus for virtually partitioning an integrated multilevel nonvolatile memory circuit
US9721656B2 (en) Encoded cross-point array
KR102178340B1 (en) Data input/output device of mlc(multi level cell) and method thereof
CN112992241A (en) Selective read disturb sampling
KR102599046B1 (en) Memory Controller Performing Recovery Operation, Operating Method Of The Same And Memory System Including The Same
KR20180083023A (en) Address mapping method of memory system
JP2001250386A (en) Semiconductor memory
WO2018026476A2 (en) Apparatus and method for programming non-volatile memory using a multi-cell storage cell group
WO2023047149A1 (en) Improved ecc configuration in memories
CN115048040A (en) Media management operations based on a ratio of valid data

Legal Events

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