US20160065240A1 - Data storage device and operating method thereof - Google Patents
Data storage device and operating method thereof Download PDFInfo
- Publication number
- US20160065240A1 US20160065240A1 US14/571,921 US201414571921A US2016065240A1 US 20160065240 A1 US20160065240 A1 US 20160065240A1 US 201414571921 A US201414571921 A US 201414571921A US 2016065240 A1 US2016065240 A1 US 2016065240A1
- Authority
- US
- United States
- Prior art keywords
- data
- symbols
- values
- divided
- group
- Prior art date
- Legal status (The legal status 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 status listed.)
- Granted
Links
- 238000013500 data storage Methods 0.000 title claims description 36
- 238000011017 operating method Methods 0.000 title claims description 11
- 238000000034 method Methods 0.000 claims abstract description 25
- 230000015654 memory Effects 0.000 claims description 60
- 238000009826 distribution Methods 0.000 claims description 24
- 238000010586 diagram Methods 0.000 description 16
- 230000000694 effects Effects 0.000 description 5
- 230000004044 response Effects 0.000 description 4
- 230000007423 decrease Effects 0.000 description 2
- 230000003936 working memory Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/60—General implementation details not specific to a particular type of compression
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital 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/5621—Digital 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 charge storage in a floating gate
- G11C11/5628—Programming or writing circuits; Data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3418—Disturbance prevention or evaluation; Refreshing of disturbed memory data
- G11C16/3427—Circuits or methods to prevent or reduce disturbance of the state of a memory cell when neighbouring cells are read or written
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1006—Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
Definitions
- Various embodiments relate to a data storage device, and more particularly, to a data storage device which encodes input data and stores the encoded data.
- Semiconductor memory devices store data and are generally categorized into nonvolatile and volatile memory devices.
- Nonvolatile memory devices retain data stored even without a constant source of power.
- Nonvolatile memory device include flash memory devices such as NAND Flash or NOR Flash, FeRAM (Ferroelectric Random Access Memory), PCRAM (Phase-Change Random Access Memory), MRAM (Magnetoresistive Random Access Memory), or ReRAM (Resistive Random Access Memory).
- Volatile memory devices are unable to retain data without a constant power supply.
- Volatile memory device include SRAM (Static Random Access Memory), DRAM (Dynamic Random Access Memory) or the like.
- Volatile memory devices may be used as a buffer memory device, a cache memory device, or a working memory device in a data processing system, because of their relatively high data processing speed.
- a data encoding method may include receiving N bits of first data and converting the first data into M bits of second data, wherein the proportion of a first value in the second data is higher than the proportion of a second value.
- an operating method of a data storage device may include converting N bits of first data into M bits of second data, and writing the second data to memory cells, wherein the memory cells storing the second data form a biased threshold voltage distribution.
- a data storage device may include an encoder suitable for compressing N bits of first data and generating M bits of second data, and a nonvolatile memory device including a plurality of memory cells, and suitable for storing the second data in the memory cells, wherein the second data are generated to be biased to a first value of binary numbers.
- FIG. 1 is a block diagram illustrating a data storage device according to an embodiment of the present disclosure
- FIG. 2 is a diagram illustrating threshold voltage distributions of memory cells
- FIGS. 3A and 3B are diagrams illustrating biased threshold voltage distributions of memory cells
- FIG. 4 is a flowchart for explaining a method in which an encoder illustrated in FIG. 1 converts inputted first data and generates second data;
- FIG. 5 is a diagram illustrating a process in which first data are converted into second data according to the procedure illustrated in FIG. 4 ;
- FIG. 6 is a flowchart explaining a method in which the encoder illustrated in FIG. 1 generates converted values corresponding to symbols;
- FIGS. 7A and 7D are diagrams illustrating processes of generating the converted values corresponding to the symbols according to the procedure described with reference to FIG. 6 ;
- FIG. 7E is a diagram illustrating the generated results
- FIG. 8 is a diagram for numerically explaining the effect of converting data according to the processes described with reference to FIGS. 4 to 7E ;
- FIG. 9 is a diagram for explaining an operating method in which the data storage device illustrated in FIG. 1 additionally stores dummy data.
- FIG. 1 is a block diagram illustrating a data storage device 10 according to an embodiment of the present disclosure.
- the data storage device 10 may be configured to store data provided from an external device (not illustrated), in response to a write request of the external device. Furthermore, the data storage device 10 may be configured to provide the stored data to the external device in response to a read request of the external device.
- the data storage device 10 may include a PCMCIA (Personal Computer Memory Card International Association) card, a CF (Compact Flash) card, a smart media card, a memory stick, a multi media card (MMC, eMMC, RS-MMC, and MMC-micro), a SD (Secure Digital) card (SD, Mini-SD, and Micro-SD), UFS (Universal Flash Storage), or a solid state drive (SSD).
- PCMCIA Personal Computer Memory Card International Association
- CF Compact Flash
- MMC multi media card
- SD Secure Digital
- SD Secure Digital
- Mini-SD Mini-SD
- Micro-SD Universal Flash Storage
- SSD solid state drive
- the data storage device 10 may include a controller 100 and a nonvolatile memory device 200 .
- the controller 100 may include a processor 110 , a memory 120 , an encoder 130 , and a decoder 140 .
- the processor 110 may control overall operations of the data storage device 10 .
- the processor 110 may control a write operation or a read operation of the nonvolatile memory device 200 in response to a write request or a read request of the external device, respectively.
- the processor 110 may run a software program on the memory 120 , in order to control the operation of the data storage device 10 .
- the memory 120 may perform the function of a working memory, a buffer memory, or a cache memory for the processor 110 .
- the memory 120 may store various program data and a software program run by the processor 110 , buffer data transmitted between the external device and the nonvolatile memory device 200 , or temporarily store cache data.
- the encoder 130 may receive data to be written to the nonvolatile memory device 200 , and convert the received data. In this case, the encoder 130 may compress the received data such that the compressed data are biased to a first value of binary numbers. Specifically, the encoder 130 may compress first N-bit input data into second M-bit data and output the compressed data, where M is smaller than N. The second data may be generated to be biased to the first value of the binary numbers. In other words, the proportion of the first values in the second data may be higher than the proportion of the second values in the second data.
- the decoder 140 may receive data read from the nonvolatile memory device 200 , and decode the received data.
- the decoder 140 may recover data which are compressed by the encoder 130 and stored in the nonvolatile memory device 200 .
- the nonvolatile memory device 200 may include a control logic 210 , an interface unit 220 , an address decoder 230 , a data input/output unit 240 , and a memory cell array 250 .
- the control logic 210 may control overall operations such as a write operation, a read operation, and an erase operation of the nonvolatile memory device 200 in response to a command provided from the controller 100 .
- the Interface unit 220 may exchange various control signals and data with the controller 100 , the various control signals including commands and addresses.
- the interface unit 220 may transmit the various control signals and the data to internal units of the nonvolatile memory device 200 .
- the address decoder 230 may decode a row address and a column address, which are received from the interface unit 220 .
- the address decoder 230 may control word lines WL to be selectively driven based on the decoding result of the row address.
- the address decoder 230 may control the data input/output unit 240 to selectively drive bit lines BL based on the decoding result of the column address.
- the data input/output unit 240 may transmit the data received from the interface unit 220 to the memory cell array 250 through the bit lines BL.
- the data input/output unit 240 may transmit data read through the bit lines BL from the memory cell array 250 to the interface unit 220 .
- the memory cell array 250 may include a plurality of memory cells (not illustrated) arranged at the respective intersections between the word lines WL and the bit lines BL.
- the memory cells may be divided depending on how many bits of data are stored in each. For example, the memory cells may be divided into single level cells to store one bit per cell and multi-level cells to store two or more bits per cell.
- the memory cell array 250 may perform an erase operation on a memory block basis, and perform a write or read operation on a page basis.
- the memory cell array 250 may be accessed to write or read data on the basis of a physical address allocated on a memory block or page basis.
- FIG. 2 is a diagram illustrating threshold voltage distributions of memory cells.
- the memory cells included in the memory cell array 250 of FIG. 1 are described as multi-level cells, each capable of storing two bits.
- An operation of writing data to a memory cell may be performed by applying a voltage to a word line coupled to the memory cell in order to increase a threshold voltage of the memory cell by injecting electric charges into the floating gate of the memory cell.
- a memory cell may have a threshold voltage within a predetermined range based on data stored therein. For example, a memory cell storing data ‘11’ may have a threshold voltage forming a first distribution D 1 , and a memory cell storing data ‘01’ may have a threshold voltage forming a second distribution D 2 .
- a memory cell storing data ‘00’ may have a threshold voltage forming a third distribution D 3 , and a memory cell storing data ‘10’ may have a threshold voltage forming a fourth distribution D 4 .
- FIGS. 3A and 3B are diagrams illustrating biased threshold voltage distributions of memory cells.
- the data storage device 10 may reduce a specific threshold voltage distribution of memory cells, that is, the number of memory cells corresponding to the specific threshold voltage distribution, in order to guarantee improved data reliability.
- the data storage device 10 may reduce a specific threshold voltage distribution corresponding to a threshold voltage level which may easily cause an interference effect to adjacent memory cells.
- the data storage device 10 may reduce a specific threshold voltage distribution having a low retention characteristic. When the data storage device 10 reduces the specific threshold voltage distribution, the threshold voltage distribution of memory cells may be biased.
- the data storage device 10 may bias data and store the biased data in memory cells, in order to bias the threshold voltage distribution of the memory cells.
- the encoder 130 may convert data to be stored in the memory cells such that the data are biased to the first value of the binary numbers.
- the encoder 130 may convert data such that the proportion of the first values, that is, ‘biased values’ in the data is higher than the proportion of the second values, that is, ‘unbiased values’.
- FIG. 3A illustrates a threshold voltage distribution of memory cells when data stored in the memory cells are biased to ‘1’.
- the data biased to ‘1’ may have a relatively high probability of being data ‘11’. Furthermore, as the number of memory cells storing the data ‘11’ increases, the first distribution D 1 may be formed to be relatively high. On the other hand, the data biased to ‘1’ may have a relatively low probability of being data ‘00’. Furthermore, as the number of memory cells storing the data ‘00’ decreases, the third distribution D 3 may be formed to be relatively low.
- FIG. 3B illustrates a threshold voltage distribution of memory cells when data stored in the memory cells are biased to ‘0’.
- the data biased to ‘0’ may have a relatively high probability of being data ‘00’. Furthermore, as the number of memory cells storing the data ‘00’ increases, the third distribution D 3 may be formed to be relatively high. On the other hand, the data biased to ‘0’ may have a relatively low probability of being data ‘11’. Furthermore, as the number of memory cells storing the data ‘00’ decreases, the first distribution D 1 may be formed to be relatively low.
- the data storage device 10 converts input data such that the converted data are biased to ‘1’.
- FIGS. 4 and 5 are a flowchart and a diagram for explaining a method in which the encoder 130 illustrated in FIG. 1 converts inputted first data and generates second data.
- the encoder 130 may divide inputted first data on a K-bit basis. Referring to FIG. 5 , the encoder 130 may divide the first data by two bits, for example.
- the encoder 130 may match the divided first data with different symbols, respectively, based on the values of the divided first data.
- FIG. 5 illustrates a table TB 1 showing symbols corresponding to initial values.
- Each of the initial values may correspond to data divided on a K-bit basis.
- the number of cases for the initial values is four.
- the divided first data may be matched with four symbols.
- the divided first data may be matched with 2 K symbols.
- the encoder may generate values corresponding to the symbols, respectively, and convert the divided first data into the values based on the symbols matched with the divided first data.
- the table TB 1 of FIG. 5 shows the converted values corresponding to the respective symbols. Based on the table TB 1 , the converted values corresponding to the respective symbols may form second data.
- FIG. 6 is a flowchart for explaining a method in which the encoder 130 illustrated in FIG. 1 generates the converted values corresponding to the symbols.
- the encoder 130 may calculate the occurrence probability of each symbol, based on how many times the symbol is matched with the inputted first data.
- the encoder 130 may generate a group including the symbols which are arranged in order of occurrence probability.
- the encoder 130 may divide the group into two sub-groups. At this time, the encoder 130 may divide the group such that a gap in the sum of occurrence probabilities of included symbols is reduced between the sub-groups.
- the encoder 130 may assign a biased value of the binary numbers to a sub-group having the higher occurrence probability sum between the sub-groups, and assign an unbiased value to the other sub-group. As described above, the proportion of the biased value increases in converted data. When the sub-groups have the same occurrence probability sum, the encoder 130 may assign the biased value to any one and assign the unbiased value to the other one.
- the encoder 130 may determine whether each of the sub-groups includes one symbol.
- the procedure may proceed to step S 230 .
- the encoder 130 may repeat step S 230 of dividing each of the sub-groups and step S 240 of assigning the first and second values, until each of the divided sub-groups includes one symbol.
- the procedure may proceed to step S 260 .
- the encoder 130 may generate the converted values corresponding to the respective symbols, based on accumulated values assigned to each of the symbols.
- the accumulated values may indicate values which are accumulated and assigned to one or more sub-groups, whenever the symbol is divided to be included in the sub-groups.
- FIGS. 7A and 7D are diagrams illustrating processes of generating the converted values corresponding to the symbols according to the procedure described with reference to FIG. 6
- FIG. 7E is a diagram illustrating the generated results.
- the encoder 130 divides first data by two bits and matches the divided data with symbols A, B, C, and D.
- the encoder 130 may calculate the occurrence probabilities of the symbols A, B, C, and D in the inputted first data as 40, 15, 35, and 10%, respectively.
- the encoder 130 may generate a group G including the symbols A, C, B, and D which are arranged in order of occurrence probabilities. For example, the encoder 130 may arrange the symbols in descending order of occurrence probabilities.
- the encoder 130 may divide the group G into two sub-groups G 1 and G 2 such that a difference between the sum of occurrence probabilities of symbols included in the sub-group G 1 and the sum of occurrence probabilities of symbols included in the sub-group G 2 is minimized. Specifically, the encoder 130 may divide the group G into sub-groups at the right and left sides of any one point among the arranged symbols A, C, B, and D.
- a difference between the sum of occurrence probabilities of the left sub-group G 1 (that is, 40%) and the sum of occurrence probabilities of the right sub-group G 2 (that is, 60%) may be the smallest among a plurality of divisions.
- the encoder 130 may assign the biased value of ‘1’ to the right sub-group G 2 having the higher occurrence probability sum, that is, 60% between the sub-groups G 1 and G 2 , and assign the unbiased value of ‘0’ to the left sub-group G 1 having the lower occurrence probability sum, that is, 40%.
- the encoder 130 may determine whether each of the sub-groups G 1 and G 2 may include one symbol.
- the encoder 130 may repeat dividing each of the sub-groups G 1 and G 2 and assigning ‘1’ and ‘0’, based on the determination result. At this time, the encoder 130 may repeat the dividing and assigning process until each of the newly divided sub-groups includes only one symbol.
- the left sub-group G 1 includes one symbol A, but the right sub-group G 2 includes three symbols C, B, and D. Thus, the encoder 130 may determine that each of the sub-groups G 1 and G 2 does not include one symbol.
- the encoder 130 may divide the sub-group G 2 and assign ‘1’ and ‘0’.
- the encoder 130 may divide the sub-group G 2 into new sub-groups at the right and left sides of any one point among the symbols C, B, and D.
- a difference between the sum of occurrence probabilities of the left sub-group G 21 , that is, 35% and the sum of occurrence probabilities of the right sub-group G 22 , that is, 25% may be the smallest among a plurality of divisions.
- the encoder 130 may assign ‘1’ to the left sub-group G 21 having the higher occurrence probability sum of 35% between the new sub-groups G 21 and G 22 , and assign ‘0’ to the right sub-group G 22 having the lower occurrence probability sum of 25%.
- the encoder 130 may determine whether each of the sub-groups G 21 and G 22 includes one symbol.
- the left sub-group G 21 includes one symbol C, but the right sub-group G 22 includes two symbols B and D. Thus, the encoder 130 may determine that each of the sub-groups G 21 and G 22 does not include one symbol. As illustrated in FIG. 7D , the encoder 130 may divide the sub-group G 22 and assign ‘1’ and ‘0’.
- the encoder 130 may divide the sub-groups G 22 into new sub-groups G 221 and G 222 at the right and left sides of the middle point between the symbols B and D.
- the encoder 130 may assign ‘1’ to the left sub-group G 221 having the higher occurrence probability sum of 15% between the new sub-groups G 221 and G 222 , and assign ‘0’ to the right sub-group G 222 having the lower occurrence probability sum of 10%.
- the encoder 130 may determine that each of all the sub-groups includes one symbol.
- the encoder 130 may generate converted values corresponding to the respective symbols, based on accumulated values assigned to each of the symbols.
- an accumulated value assigned to the symbol A is ‘0’
- an accumulated value assigned to the symbol B is ‘101’
- an accumulated value assigned to the symbol C is ‘11’
- an accumulated value assigned to the symbol D is ‘100’.
- FIG. 7E illustrates a table TB 2 showing the symbols corresponding to the initial values and the converted values generated through the processes illustrated in FIGS. 7A to 7D .
- the decoder 140 may recover the second data into the first data by referring to the converted values corresponding to the symbols.
- FIG. 8 is a diagram for numerically explaining the effect of converting data according to the processes described with reference to FIGS. 4 to 7E .
- the encoder 130 may compress the inputted first data and generate the second data.
- the encoder 130 may generate the second data such that the second data are biased to the biased value, that is, ‘1’.
- the proportion of ‘1’ in the second data may be higher than the proportion of ‘0’.
- the entire bit number of the first data is 200.
- the occurrence probabilities of the symbols A, B, C, and D may be set to 40, 15, 35, and 10%, respectively.
- the entire bit number of the second data may be calculated on the basis of the converted values as follows.
- the proportions of ‘1’ in the first and second data may be calculated as follows.
- the calculation result may indicate that the second data are further biased to ‘1’ than the first data.
- FIG. 9 is a diagram for explaining an operating method in which the data storage device 10 illustrated in FIG. 1 additionally stores dummy data.
- the encoder 130 may compress first N-bit data and generate second M-bit data, where M is smaller than N.
- the data storage device 10 may secure an available space corresponding to (N ⁇ M) bits, compared to when the first N-bit data are stored.
- the data storage device 10 may additionally store (N ⁇ M)-bit dummy data composed of the biased values of ‘1’ in the nonvolatile memory device 200 , thereby increasing the biased effect.
- a data storage device which is capable of encoding data such that memory cells storing the data form a biased threshold voltage distribution, and storing the encoded data in the memory cells.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Read Only Memory (AREA)
Abstract
Description
- The present application claims priority under 35 U.S.C. §119(a) to Korean application number 10-2014-0111448, filed on Aug. 26, 2014, in the Korean Intellectual Property Office, which is incorporated herein by reference in its entirety.
- 1. Technical Field
- Various embodiments relate to a data storage device, and more particularly, to a data storage device which encodes input data and stores the encoded data.
- 2. Related Art
- Semiconductor memory devices store data and are generally categorized into nonvolatile and volatile memory devices.
- Nonvolatile memory devices retain data stored even without a constant source of power. Nonvolatile memory device include flash memory devices such as NAND Flash or NOR Flash, FeRAM (Ferroelectric Random Access Memory), PCRAM (Phase-Change Random Access Memory), MRAM (Magnetoresistive Random Access Memory), or ReRAM (Resistive Random Access Memory).
- Volatile memory devices are unable to retain data without a constant power supply. Volatile memory device include SRAM (Static Random Access Memory), DRAM (Dynamic Random Access Memory) or the like. Volatile memory devices may be used as a buffer memory device, a cache memory device, or a working memory device in a data processing system, because of their relatively high data processing speed.
- In an embodiment of the present disclosure, a data encoding method may include receiving N bits of first data and converting the first data into M bits of second data, wherein the proportion of a first value in the second data is higher than the proportion of a second value.
- In an embodiment of the present disclosure, an operating method of a data storage device may include converting N bits of first data into M bits of second data, and writing the second data to memory cells, wherein the memory cells storing the second data form a biased threshold voltage distribution.
- In an embodiment of the present disclosure, a data storage device may include an encoder suitable for compressing N bits of first data and generating M bits of second data, and a nonvolatile memory device including a plurality of memory cells, and suitable for storing the second data in the memory cells, wherein the second data are generated to be biased to a first value of binary numbers.
- Features, aspects, and embodiments are described in conjunction with the attached drawings, in which:
-
FIG. 1 is a block diagram illustrating a data storage device according to an embodiment of the present disclosure; -
FIG. 2 is a diagram illustrating threshold voltage distributions of memory cells; -
FIGS. 3A and 3B are diagrams illustrating biased threshold voltage distributions of memory cells; -
FIG. 4 is a flowchart for explaining a method in which an encoder illustrated inFIG. 1 converts inputted first data and generates second data; -
FIG. 5 is a diagram illustrating a process in which first data are converted into second data according to the procedure illustrated inFIG. 4 ; -
FIG. 6 is a flowchart explaining a method in which the encoder illustrated inFIG. 1 generates converted values corresponding to symbols; -
FIGS. 7A and 7D are diagrams illustrating processes of generating the converted values corresponding to the symbols according to the procedure described with reference toFIG. 6 ; -
FIG. 7E is a diagram illustrating the generated results; -
FIG. 8 is a diagram for numerically explaining the effect of converting data according to the processes described with reference toFIGS. 4 to 7E ; and -
FIG. 9 is a diagram for explaining an operating method in which the data storage device illustrated inFIG. 1 additionally stores dummy data. - A data storage device and an operating method thereof according to the present disclosure will be described below with reference to the accompanying drawings through exemplary embodiments. The present invention may, however, be embodied in different forms and should not be construed as being limited to the embodiments set forth herein. Rather, these embodiments are provided to describe the present invention in detail to the extent that a person skilled in the art to which the invention pertains can easily enforce the technical concept of the present invention.
- It is to be understood that embodiments of the present invention are not limited to the particulars shown in the drawings and that the drawings are not necessarily to scale and in some instances proportions may have been exaggerated in order to more dearly depict certain features of the invention. While particular terminology is used herein, it is to be appreciated that the terminology used herein is for the purpose of describing particular embodiments only and is not intended to limit the scope of the present invention.
-
FIG. 1 is a block diagram illustrating adata storage device 10 according to an embodiment of the present disclosure. - The
data storage device 10 may be configured to store data provided from an external device (not illustrated), in response to a write request of the external device. Furthermore, thedata storage device 10 may be configured to provide the stored data to the external device in response to a read request of the external device. Thedata storage device 10 may include a PCMCIA (Personal Computer Memory Card International Association) card, a CF (Compact Flash) card, a smart media card, a memory stick, a multi media card (MMC, eMMC, RS-MMC, and MMC-micro), a SD (Secure Digital) card (SD, Mini-SD, and Micro-SD), UFS (Universal Flash Storage), or a solid state drive (SSD). - The
data storage device 10 may include acontroller 100 and anonvolatile memory device 200. - The
controller 100 may include aprocessor 110, amemory 120, anencoder 130, and adecoder 140. - The
processor 110 may control overall operations of thedata storage device 10. Theprocessor 110 may control a write operation or a read operation of thenonvolatile memory device 200 in response to a write request or a read request of the external device, respectively. Theprocessor 110 may run a software program on thememory 120, in order to control the operation of thedata storage device 10. - The
memory 120 may perform the function of a working memory, a buffer memory, or a cache memory for theprocessor 110. Thememory 120 may store various program data and a software program run by theprocessor 110, buffer data transmitted between the external device and thenonvolatile memory device 200, or temporarily store cache data. - The
encoder 130 may receive data to be written to thenonvolatile memory device 200, and convert the received data. In this case, theencoder 130 may compress the received data such that the compressed data are biased to a first value of binary numbers. Specifically, theencoder 130 may compress first N-bit input data into second M-bit data and output the compressed data, where M is smaller than N. The second data may be generated to be biased to the first value of the binary numbers. In other words, the proportion of the first values in the second data may be higher than the proportion of the second values in the second data. - The
decoder 140 may receive data read from thenonvolatile memory device 200, and decode the received data. Thedecoder 140 may recover data which are compressed by theencoder 130 and stored in thenonvolatile memory device 200. - The
nonvolatile memory device 200 may include acontrol logic 210, aninterface unit 220, anaddress decoder 230, a data input/output unit 240, and amemory cell array 250. - The
control logic 210 may control overall operations such as a write operation, a read operation, and an erase operation of thenonvolatile memory device 200 in response to a command provided from thecontroller 100. - The
Interface unit 220 may exchange various control signals and data with thecontroller 100, the various control signals including commands and addresses. Theinterface unit 220 may transmit the various control signals and the data to internal units of thenonvolatile memory device 200. - The
address decoder 230 may decode a row address and a column address, which are received from theinterface unit 220. Theaddress decoder 230 may control word lines WL to be selectively driven based on the decoding result of the row address. Theaddress decoder 230 may control the data input/output unit 240 to selectively drive bit lines BL based on the decoding result of the column address. - The data input/
output unit 240 may transmit the data received from theinterface unit 220 to thememory cell array 250 through the bit lines BL. The data input/output unit 240 may transmit data read through the bit lines BL from thememory cell array 250 to theinterface unit 220. - The
memory cell array 250 may include a plurality of memory cells (not illustrated) arranged at the respective intersections between the word lines WL and the bit lines BL. The memory cells may be divided depending on how many bits of data are stored in each. For example, the memory cells may be divided into single level cells to store one bit per cell and multi-level cells to store two or more bits per cell. - The
memory cell array 250 may perform an erase operation on a memory block basis, and perform a write or read operation on a page basis. Thememory cell array 250 may be accessed to write or read data on the basis of a physical address allocated on a memory block or page basis. -
FIG. 2 is a diagram illustrating threshold voltage distributions of memory cells. For example, the memory cells included in thememory cell array 250 ofFIG. 1 are described as multi-level cells, each capable of storing two bits. - An operation of writing data to a memory cell may be performed by applying a voltage to a word line coupled to the memory cell in order to increase a threshold voltage of the memory cell by injecting electric charges into the floating gate of the memory cell. A memory cell may have a threshold voltage within a predetermined range based on data stored therein. For example, a memory cell storing data ‘11’ may have a threshold voltage forming a first distribution D1, and a memory cell storing data ‘01’ may have a threshold voltage forming a second distribution D2. A memory cell storing data ‘00’ may have a threshold voltage forming a third distribution D3, and a memory cell storing data ‘10’ may have a threshold voltage forming a fourth distribution D4.
-
FIGS. 3A and 3B are diagrams illustrating biased threshold voltage distributions of memory cells. - The
data storage device 10 may reduce a specific threshold voltage distribution of memory cells, that is, the number of memory cells corresponding to the specific threshold voltage distribution, in order to guarantee improved data reliability. For example, thedata storage device 10 may reduce a specific threshold voltage distribution corresponding to a threshold voltage level which may easily cause an interference effect to adjacent memory cells. For example, thedata storage device 10 may reduce a specific threshold voltage distribution having a low retention characteristic. When thedata storage device 10 reduces the specific threshold voltage distribution, the threshold voltage distribution of memory cells may be biased. - The
data storage device 10 may bias data and store the biased data in memory cells, in order to bias the threshold voltage distribution of the memory cells. Theencoder 130 may convert data to be stored in the memory cells such that the data are biased to the first value of the binary numbers. Theencoder 130 may convert data such that the proportion of the first values, that is, ‘biased values’ in the data is higher than the proportion of the second values, that is, ‘unbiased values’. -
FIG. 3A illustrates a threshold voltage distribution of memory cells when data stored in the memory cells are biased to ‘1’. - The data biased to ‘1’ may have a relatively high probability of being data ‘11’. Furthermore, as the number of memory cells storing the data ‘11’ increases, the first distribution D1 may be formed to be relatively high. On the other hand, the data biased to ‘1’ may have a relatively low probability of being data ‘00’. Furthermore, as the number of memory cells storing the data ‘00’ decreases, the third distribution D3 may be formed to be relatively low.
-
FIG. 3B illustrates a threshold voltage distribution of memory cells when data stored in the memory cells are biased to ‘0’. - The data biased to ‘0’ may have a relatively high probability of being data ‘00’. Furthermore, as the number of memory cells storing the data ‘00’ increases, the third distribution D3 may be formed to be relatively high. On the other hand, the data biased to ‘0’ may have a relatively low probability of being data ‘11’. Furthermore, as the number of memory cells storing the data ‘00’ decreases, the first distribution D1 may be formed to be relatively low.
- Hereafter, it is described as an example that the
data storage device 10 converts input data such that the converted data are biased to ‘1’. -
FIGS. 4 and 5 are a flowchart and a diagram for explaining a method in which theencoder 130 illustrated inFIG. 1 converts inputted first data and generates second data. - Hereafter, referring to
FIGS. 4 and 5 , an operating method of theencoder 130 will be described. - At step S110, the
encoder 130 may divide inputted first data on a K-bit basis. Referring toFIG. 5 , theencoder 130 may divide the first data by two bits, for example. - At step S120, the
encoder 130 may match the divided first data with different symbols, respectively, based on the values of the divided first data.FIG. 5 illustrates a table TB1 showing symbols corresponding to initial values. Each of the initial values may correspond to data divided on a K-bit basis. When the initial values correspond to data divided by two bits, the number of cases for the initial values is four. Thus, the divided first data may be matched with four symbols. When the first data are divided on a K-bit basis, the divided first data may be matched with 2K symbols. - At step S130, the encoder may generate values corresponding to the symbols, respectively, and convert the divided first data into the values based on the symbols matched with the divided first data. The table TB1 of
FIG. 5 shows the converted values corresponding to the respective symbols. Based on the table TB1, the converted values corresponding to the respective symbols may form second data. -
FIG. 6 is a flowchart for explaining a method in which theencoder 130 illustrated inFIG. 1 generates the converted values corresponding to the symbols. - At step S210, the
encoder 130 may calculate the occurrence probability of each symbol, based on how many times the symbol is matched with the inputted first data. - At step S220, the
encoder 130 may generate a group including the symbols which are arranged in order of occurrence probability. - At step S230, the
encoder 130 may divide the group into two sub-groups. At this time, theencoder 130 may divide the group such that a gap in the sum of occurrence probabilities of included symbols is reduced between the sub-groups. - At step S240, the
encoder 130 may assign a biased value of the binary numbers to a sub-group having the higher occurrence probability sum between the sub-groups, and assign an unbiased value to the other sub-group. As described above, the proportion of the biased value increases in converted data. When the sub-groups have the same occurrence probability sum, theencoder 130 may assign the biased value to any one and assign the unbiased value to the other one. - At step S250, the
encoder 130 may determine whether each of the sub-groups includes one symbol. - When it is determined that each of the sub-groups does not include one symbol (No), the procedure may proceed to step S230. In this case, the
encoder 130 may repeat step S230 of dividing each of the sub-groups and step S240 of assigning the first and second values, until each of the divided sub-groups includes one symbol. - When it is determined that each of the sub-groups includes one symbol (Yes), the procedure may proceed to step S260.
- At step S260, the
encoder 130 may generate the converted values corresponding to the respective symbols, based on accumulated values assigned to each of the symbols. The accumulated values may indicate values which are accumulated and assigned to one or more sub-groups, whenever the symbol is divided to be included in the sub-groups. -
FIGS. 7A and 7D are diagrams illustrating processes of generating the converted values corresponding to the symbols according to the procedure described with reference toFIG. 6 , andFIG. 7E is a diagram illustrating the generated results. Hereafter, it is described as an example that theencoder 130 divides first data by two bits and matches the divided data with symbols A, B, C, and D. - Referring to
FIG. 7A , theencoder 130 may calculate the occurrence probabilities of the symbols A, B, C, and D in the inputted first data as 40, 15, 35, and 10%, respectively. Theencoder 130 may generate a group G including the symbols A, C, B, and D which are arranged in order of occurrence probabilities. For example, theencoder 130 may arrange the symbols in descending order of occurrence probabilities. - Referring to
FIG. 78 , theencoder 130 may divide the group G into two sub-groups G1 and G2 such that a difference between the sum of occurrence probabilities of symbols included in the sub-group G1 and the sum of occurrence probabilities of symbols included in the sub-group G2 is minimized. Specifically, theencoder 130 may divide the group G into sub-groups at the right and left sides of any one point among the arranged symbols A, C, B, and D. When the group G is divided into sub-groups G1 and G2 at the right and left sides of the middle point between the symbols A and C, a difference between the sum of occurrence probabilities of the left sub-group G1 (that is, 40%) and the sum of occurrence probabilities of the right sub-group G2 (that is, 60%) may be the smallest among a plurality of divisions. - The
encoder 130 may assign the biased value of ‘1’ to the right sub-group G2 having the higher occurrence probability sum, that is, 60% between the sub-groups G1 and G2, and assign the unbiased value of ‘0’ to the left sub-group G1 having the lower occurrence probability sum, that is, 40%. - The
encoder 130 may determine whether each of the sub-groups G1 and G2 may include one symbol. Theencoder 130 may repeat dividing each of the sub-groups G1 and G2 and assigning ‘1’ and ‘0’, based on the determination result. At this time, theencoder 130 may repeat the dividing and assigning process until each of the newly divided sub-groups includes only one symbol. The left sub-group G1 includes one symbol A, but the right sub-group G2 includes three symbols C, B, and D. Thus, theencoder 130 may determine that each of the sub-groups G1 and G2 does not include one symbol. As illustrated inFIG. 7C , theencoder 130 may divide the sub-group G2 and assign ‘1’ and ‘0’. - Referring to
FIG. 7C , theencoder 130 may divide the sub-group G2 into new sub-groups at the right and left sides of any one point among the symbols C, B, and D. When the sub-group G2 is divided into new sub-groups G21 and G22 at the right and left sides of the middle point between the symbols C and B, a difference between the sum of occurrence probabilities of the left sub-group G21, that is, 35% and the sum of occurrence probabilities of the right sub-group G22, that is, 25% may be the smallest among a plurality of divisions. - The
encoder 130 may assign ‘1’ to the left sub-group G21 having the higher occurrence probability sum of 35% between the new sub-groups G21 and G22, and assign ‘0’ to the right sub-group G22 having the lower occurrence probability sum of 25%. - The
encoder 130 may determine whether each of the sub-groups G21 and G22 includes one symbol. The left sub-group G21 includes one symbol C, but the right sub-group G22 includes two symbols B and D. Thus, theencoder 130 may determine that each of the sub-groups G21 and G22 does not include one symbol. As illustrated inFIG. 7D , theencoder 130 may divide the sub-group G22 and assign ‘1’ and ‘0’. - Referring to
FIG. 7D , theencoder 130 may divide the sub-groups G22 into new sub-groups G221 and G222 at the right and left sides of the middle point between the symbols B and D. - The
encoder 130 may assign ‘1’ to the left sub-group G221 having the higher occurrence probability sum of 15% between the new sub-groups G221 and G222, and assign ‘0’ to the right sub-group G222 having the lower occurrence probability sum of 10%. - The
encoder 130 may determine that each of all the sub-groups includes one symbol. - The
encoder 130 may generate converted values corresponding to the respective symbols, based on accumulated values assigned to each of the symbols. InFIGS. 7A to 7D , an accumulated value assigned to the symbol A is ‘0’, and an accumulated value assigned to the symbol B is ‘101’, and an accumulated value assigned to the symbol C is ‘11’, and an accumulated value assigned to the symbol D is ‘100’. -
FIG. 7E illustrates a table TB2 showing the symbols corresponding to the initial values and the converted values generated through the processes illustrated inFIGS. 7A to 7D . - When the second data written to the
nonvolatile memory device 200 are read and inputted, thedecoder 140 may recover the second data into the first data by referring to the converted values corresponding to the symbols. -
FIG. 8 is a diagram for numerically explaining the effect of converting data according to the processes described with reference toFIGS. 4 to 7E . - The
encoder 130 may compress the inputted first data and generate the second data. Theencoder 130 may generate the second data such that the second data are biased to the biased value, that is, ‘1’. The proportion of ‘1’ in the second data may be higher than the proportion of ‘0’. - It is described as an example that the entire bit number of the first data is 200. When 40, 15, 35, and 10 numbers of the symbols A, B, C, and D, respectively, are matched with the first data, the occurrence probabilities of the symbols A, B, C, and D may be set to 40, 15, 35, and 10%, respectively.
- The entire bit number of the second data may be calculated on the basis of the converted values as follows.
- Bit number of second data=40*1+15*3+35*2+10*3=185.
- That is, a compression effect of 15 bits (=200 bits−185 bits) may be obtained.
- The proportions of ‘1’ in the first and second data may be calculated as follows.
- Proportion of ‘1’ in first data=(number of ‘1’)/entire bit number=(15*1+35*1+10*2)/200=35%.
- Proportion of ‘1’ in second data=(number of ‘1’)/entire bit number=(15*2+35*2+10*1)/200=59.5%.
- The calculation result may indicate that the second data are further biased to ‘1’ than the first data.
-
FIG. 9 is a diagram for explaining an operating method in which thedata storage device 10 illustrated inFIG. 1 additionally stores dummy data. - The
encoder 130 may compress first N-bit data and generate second M-bit data, where M is smaller than N. When the second M-bit data are stored in thenonvolatile memory device 200, thedata storage device 10 may secure an available space corresponding to (N−M) bits, compared to when the first N-bit data are stored. Thedata storage device 10 may additionally store (N−M)-bit dummy data composed of the biased values of ‘1’ in thenonvolatile memory device 200, thereby increasing the biased effect. - According to the embodiment of the present disclosure, it is possible to provide a data storage device which is capable of encoding data such that memory cells storing the data form a biased threshold voltage distribution, and storing the encoded data in the memory cells.
- While certain embodiments have been described above, it will be understood to those skilled in the art that the embodiments described are by way of example only. Accordingly, the data storage device described herein should not be limited based on the described embodiments. Rather, the data storage device described herein should only be limited in light of the claims that follow when taken in conjunction with the above description and accompanying drawings.
Claims (20)
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020140111448A KR20160024547A (en) | 2014-08-26 | 2014-08-26 | Data storage device and operating method thereof |
KR10-2014-0111448 | 2014-08-26 |
Publications (2)
Publication Number | Publication Date |
---|---|
US20160065240A1 true US20160065240A1 (en) | 2016-03-03 |
US9473171B2 US9473171B2 (en) | 2016-10-18 |
Family
ID=55403768
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/571,921 Active US9473171B2 (en) | 2014-08-26 | 2014-12-16 | Data encoding method for compressing data to be stored, data storage device with data encoder, and operating method of data storage device |
Country Status (4)
Country | Link |
---|---|
US (1) | US9473171B2 (en) |
KR (1) | KR20160024547A (en) |
CN (1) | CN105390156B (en) |
TW (1) | TWI656529B (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11488669B2 (en) * | 2020-12-29 | 2022-11-01 | Sandisk Technologies Llc | Three-valued programming mechanism for non-volatile memory structures |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100057977A1 (en) * | 2008-08-28 | 2010-03-04 | Agere Systems Inc. | Reduced-power programming of multi-level cell (mlc) memory |
US20100125701A1 (en) * | 2008-11-18 | 2010-05-20 | Ki Tae Park | Multi-Level Non-Volatile Memory Device, Memory System Including the Same, and Method of Operating the Same |
US20110026545A1 (en) * | 2009-07-28 | 2011-02-03 | Samsung Electronics Co., Ltd. | Method and apparatus for encoding and decoding data with altered bit sequence |
US20160011807A1 (en) * | 2014-07-08 | 2016-01-14 | Changkyu Seol | Storage device and operating method of storage device |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005100527A (en) * | 2003-09-25 | 2005-04-14 | Matsushita Electric Ind Co Ltd | Semiconductor nonvolatile storage device |
US7747086B1 (en) * | 2005-07-28 | 2010-06-29 | Teradici Corporation | Methods and apparatus for encoding a shared drawing memory |
US7457155B2 (en) * | 2006-08-31 | 2008-11-25 | Micron Technology, Inc. | Non-volatile memory device and method having bit-state assignments selected to minimize signal coupling |
KR101082650B1 (en) | 2009-01-21 | 2011-11-14 | 주식회사 하이닉스반도체 | Non volatile memory device and operating metho thereof |
TWI437570B (en) * | 2010-03-10 | 2014-05-11 | Macronix Int Co Ltd | Multi-level cell programming speed improvement through program level exchange |
-
2014
- 2014-08-26 KR KR1020140111448A patent/KR20160024547A/en not_active Application Discontinuation
- 2014-12-16 US US14/571,921 patent/US9473171B2/en active Active
-
2015
- 2015-04-24 TW TW104113258A patent/TWI656529B/en active
- 2015-07-10 CN CN201510402466.9A patent/CN105390156B/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100057977A1 (en) * | 2008-08-28 | 2010-03-04 | Agere Systems Inc. | Reduced-power programming of multi-level cell (mlc) memory |
US20100125701A1 (en) * | 2008-11-18 | 2010-05-20 | Ki Tae Park | Multi-Level Non-Volatile Memory Device, Memory System Including the Same, and Method of Operating the Same |
US20110026545A1 (en) * | 2009-07-28 | 2011-02-03 | Samsung Electronics Co., Ltd. | Method and apparatus for encoding and decoding data with altered bit sequence |
US20160011807A1 (en) * | 2014-07-08 | 2016-01-14 | Changkyu Seol | Storage device and operating method of storage device |
Also Published As
Publication number | Publication date |
---|---|
TW201608566A (en) | 2016-03-01 |
CN105390156A (en) | 2016-03-09 |
CN105390156B (en) | 2021-01-05 |
TWI656529B (en) | 2019-04-11 |
KR20160024547A (en) | 2016-03-07 |
US9473171B2 (en) | 2016-10-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109564532B (en) | Apparatus including memory and method for operating memory | |
US9575839B2 (en) | Data storage device and operating method thereof | |
CN105489239B (en) | Data storage device and operation method thereof | |
US9741451B2 (en) | Data storage device and data maintenance method thereof | |
US10043573B2 (en) | Apparatus and method for endurance friendly programming using lower voltage thresholds | |
CN105718212B (en) | Data storage device and operation method thereof | |
CN109949839B (en) | Memory controller and operation method of memory controller | |
KR102157570B1 (en) | Memory controller and storage device including the same | |
US9865338B2 (en) | Memory system and method of controlling nonvolatile memory by converting write data written to a page | |
US11367488B2 (en) | Memory system and method for read operation based on grouping of word lines | |
US20130205073A1 (en) | Memory device, memory system, and programming method thereof | |
US9619323B2 (en) | Data storage device and operating method thereof | |
US10083742B2 (en) | Method and apparatus for programming non-volatile memory using a multi-cell storage cell group to provide error location information for retention errors | |
US11360885B2 (en) | Wear leveling based on sub-group write counts in a memory sub-system | |
US9473171B2 (en) | Data encoding method for compressing data to be stored, data storage device with data encoder, and operating method of data storage device | |
US10095424B2 (en) | Apparatus and method for programming non-volatile memory using a multi-cell storage cell group | |
CN117957519A (en) | Managing write disturb for memory cells in a memory subsystem | |
US11275523B2 (en) | Per cursor logical unit number sequencing | |
US20160322087A1 (en) | Data storage device and operating method thereof | |
US9373367B1 (en) | Data storage device and operating method thereof | |
US10180878B2 (en) | Memory system for recording data and memory control method for recording data | |
CN113035262B (en) | Management of parity data in a memory subsystem | |
US12019871B2 (en) | Storage controller compressing indicator data, storage device including the same, and method of operating the same | |
US20240071503A1 (en) | Padding in flash memory blocks | |
US20230185452A1 (en) | Storage controller compressing indicator data, storage device including the same, and method of operating the same |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: SK HYNIX INC., KOREA, REPUBLIC OF Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:JEON, MYEONG WOON;REEL/FRAME:034642/0828 Effective date: 20141111 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 4 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 8 |