Method and apparatus for programming data of memory cells considering floating poly coupling

A method and an apparatus for programming data of memory cells considering coupling are provided. The method includes: calculating a change of a threshold voltage based on source data of the memory cells; converting source data which will be programmed based on the calculated change of the threshold voltage; and programming the converted source data.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims the benefit of Korean Patent Application No. 10-2007-0056317, filed on Jun. 8, 2007, in the Korean Intellectual Property Office, the disclosure of which is incorporated herein by reference.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to programming of data of memory cells, and more particularly, to an apparatus of programming data of memory cells considering a change of a threshold voltage by floating poly coupling among memory cells, and a method using the apparatus.

2. Description of Related Art

A threshold voltage of a flash memory cell is controlled to program data in the flash memory cell. That is, the threshold voltage of the flash memory cell indicates programmed data. As data of neighboring memory cells is programmed, the threshold voltage of the flash memory cell becomes greater due to floating poly coupling with the neighboring memory cells. Accordingly, a probability of an occurrence of errors may be increased. To reduce the occurrence of errors being generated due to the floating poly coupling, a shadow programming method is used. The shadow programming method is a scheme of programming data in a memory cell in order to prevent the floating poly coupling from reaching a maximum. The occurrence of errors due to the floating poly coupling may be reduced by programming data which is required to be programmed by a programming process many times. However, the shadow programming method has problems in that, a lifetime of a memory cell is shortened, and a programming time is increased since a programming process is repeatedly performed many times to program a single data.

BRIEF SUMMARY

An aspect of the present invention provides a method and an apparatus for programming data of memory cells which can reduce an occurrence of a bit error and may increase a lifetime of the memory cells since data is programmed by considering floating poly coupling which is generated between memory cells.

An aspect of the present invention also provides a method and an apparatus for programming data of memory cells in which a programming time can be reduced since data, which will be programmed in the memory cell, is converted by considering a change of a threshold voltage, which is changed due to floating poly coupling, and the converted data is programmed.

An aspect of the present invention also provides a method and an apparatus for programming data of memory cells which can be applied to all types of code systems of source data.

According to an aspect of the present invention, there is provided a method for programming data of memory cells including: calculating a change of a threshold voltage based on source data of the memory cells; converting source data which will be programmed based on the calculated change of the threshold voltage; and programming the converted source data.

The calculating of the change of the threshold voltage may calculate the change of the threshold voltage based on source data of neighboring memory cells, from the memory cells.

In this instance, the method of programming data of memory cells further includes: receiving the source data; and detecting the source data of the neighboring memory cells, from the received source data, wherein the calculating of the change of the threshold voltage calculates the change of the threshold voltage based on the detected source data.

In this instance, the calculating of the change of the threshold voltage calculates the change of the threshold voltage based on the source data of the memory cells to be programmed, from the neighboring memory cells.

In this instance, the calculating of the change of the threshold voltage calculates the change of the threshold voltage based on a floating poly coupling effect by the source data of the memory cells.

In this instance, the converting of the source data converts the source data to data which is in proportional to a difference between a threshold voltage corresponding to the source data and the calculated change of the threshold voltage.

According to an aspect of the present invention, there is provided an apparatus for programming data of memory cells including: memory cells; a voltage change calculation unit calculating a change of a threshold voltage based on source data of the memory cells; a data conversion unit converting source data which will be programmed based on the calculated change of the threshold voltage; and a programming unit programming the converted source data.

In this instance, the apparatus for programming data of memory cells further includes a receiving unit receiving the source data; and a detection unit detecting the source data of the neighboring memory cells, from the received source data, wherein the voltage change calculation unit calculates the change of the threshold voltage based on the detected source data.

In this instance, the voltage change calculation unit calculates the change of the threshold voltage based on the source data of the memory cells to be programmed, from the neighboring memory cells.

In this instance, the voltage change calculation unit calculates the change of the threshold voltage based on a floating poly coupling effect by the source data of the memory cells.

DETAILED DESCRIPTION OF EMBODIMENTS

Terminology used in the present specification is covered before describing in greater detail. However, depending on different circumstances, the terminology in the present specification may be understood based on dictionaries, theses, precedents, and the like.

FIG. 1is a block diagram illustrating an apparatus for programming data of memory cells according to an exemplary embodiment of the present invention.

Referring toFIG. 1, the apparatus for programming data of the memory cells includes a receiving unit110, a detection unit120, a voltage change calculation unit130, a data conversion unit140, and a programming unit150.

The receiving unit110receives source data which will be programmed in memory cells, which are included in a memory. In this instance, the memory may include a flash memory of NAND and NOR types. Also, the memory may include a flash memory of a multi level cell (MLC) method or a single level cell (SLC) method, however, is not limited to the flash memory, and may be all types of applicable memories.

The detection unit detects source data of the neighboring memory cells, which are neighboring with a memory cell160whose source data are being programmed, from the received source data. That is, the detection unit120affects programmed source data of the memory cell160after the source data of the memory cell160is programmed, detects memory cells capable of changing a threshold voltage of the memory cell160, and detects the source data with respect to the detected memory cells.

In this instance, the detection unit120may detect the source data of the neighboring memory cells of the memory cell160, the neighboring memory cells possibly capable of affecting the programmed data of the memory cell160. In this instance, the neighboring memory cells indicate memory cells in which floating poly coupling may occur with the memory cell160. That is, the detection unit120detects the source data of the memory cells which may be capable of affecting the programmed data in the memory cell160since floating coupling occurs with the memory cell160.

In this instance, the detection unit120may detect source data of memory cells which will be programmed, from the neighboring memory cells. That is, the detection unit120exclusively detects the source data of the memory cells which will be programmed, from the neighboring memory cells, since memory cells, whose source data have been programmed already, may not affect the memory cell160.

The voltage change calculation unit130calculates change of the threshold voltage based on the source data of the memory cells detected by the detection unit120. Specifically, the voltage change calculation unit130calculates the change of the threshold voltage with respect to an amount the threshold voltage is changed by using a threshold voltage corresponding to the source data of the memory cells which is detected by the detection unit120. In this instance, the voltage change calculation unit130may calculate the change of the threshold voltage based on floating poly coupling by the source data of the memory cell detected by the detection unit120.

In this instance, the voltage change calculation unit130may calculate the change of the threshold voltage based on channel features of the memory cells, in addition to the source data of the memory cells detected by the detection unit120. Specifically, the voltage change calculation unit130calculates the change of the threshold voltage by considering the source data of the detected memory cells by the detection unit120and channel features of and NAND flash memory cells, when memory cells are the NAND flash memory cells.

In this instance, the voltage change calculation unit130may calculate the change of the threshold voltage based on data which indicates change of the threshold voltage with respect to each of the source data which can be programmed. As an example, when a memory cell is a two-bit MLC memory cell, the voltage change calculation unit130may calculate levels of the change of the threshold voltage of the memory cell160using the change of the threshold voltage of the memory cell160, which occurs due to each of threshold voltages corresponding to source data 00, 01, 10, and 11.

In this instance, the change of the threshold voltage with respect to each of the source data may be obtained via storage devices equipped in the apparatus of programming data of the memory cell of the present invention, outer storage devices, and hardware devices such as a logic circuit.

As described above, the change may differ according to the detected source data by the detection unit120since the voltage change calculation unit130calculates the change of the threshold voltage based on the detected source data by the detection unit120. That is, the voltage change calculation unit130calculates the change of the threshold voltage based on the source data of the neighboring memory cells when the detected source data corresponds to the source data of the neighboring memory cells of the memory cell160, and calculates the change of the threshold voltage based on the source data of the memory cells which will be programmed when the detected source data corresponds to the source data of the memory cells which will be programmed, from the neighboring memory cells of the memory cell160.

The data conversion unit140converts source data which will be programmed in the memory cells160based on the change of the threshold voltage calculated by the voltage change calculation unit130. That is, the data conversion unit140converts the source data to data which corresponds to a difference between a threshold voltage corresponding to real source data and the change of the threshold voltage so that a converted threshold voltage of the memory cell160, which is converted since source data of memory cells corresponds to a threshold voltage of real source data.

The programming unit150programs the data, which is converted by the data conversion unit140, in the memory cell160.

The apparatus of programming the data of the memory cell according to the present invention having the above described configuration may be applicable to all types of coding methods, not limited to specific coding methods such as a binary coding methods and a grey coding method.

Hereinafter, further operations of the apparatus of programming the data of the memory cell according to an embodiment of the present invention will be described by referring toFIGS. 2 and 3. InFIGS. 2 and 3, a change of a threshold voltage is performed using source data.

FIG. 2is a diagram illustrating an apparatus for programming data of memory cells according to an exemplary embodiment of the present invention, andFIG. 3is a diagram illustrating source data and program data of the memory cells ofFIG. 2.

Referring toFIG. 2, memory cells in even bit lines of a first word line (WL0) are programmed, subsequently memory cells in odd bit lines of the first word line (WL0) are programmed. The above-described programming operation is sequentially performed with respect to a subsequent word line (WL1) and all word lines. That is, memory cells0and2are initially programmed, memory cells1and3are programmed next, memory cells4and6are programmed next, and finally memory cells5and7are programmed. Accordingly, memory cell0may be exposed to a floating poly coupling effect by source data of memory cells1,3,4,5, and7. In this instance, it is possible that memory cells3,6, and7affect source data of memory cell0, however it is assumed that memory cells3,6, and7has an affect less than the source data of neighboring memory cells, that is, memory cells1,4, and5, so effects by memory cells1,4, and5will be considered in the specification of the present invention.

The receiving unit110receives source data which will be programmed in memory cells0through7. The detection unit102detects the source data of the neighboring memory cells, that is, memory cells1,4, and5, from the received source data. The voltage change calculation unit130calculates change of a threshold voltage based on the detected source data of memory cells1,4, and5. That is, the voltage change calculation unit130calculates an amount a threshold voltage of data, which will be programmed in memory cell0, is changed by the source data of memory cells1,4, and5.

When source data is programmed in memory cell1, the voltage change calculation unit130may calculate a change of a threshold voltage of memory cell1based on source data of memory cells4through6since the memory cells0and2are already programmed.

In this instance, the voltage change calculation unit130may calculate the change of the threshold voltage based on the change of a threshold voltage according to each source data of neighboring memory cells. Specifically, a change of a threshold voltage of memory cell0by memory cell1, a change of a threshold voltage of memory cell0by memory cell4, and a change of a threshold voltage of memory cell0by memory cell5are summed up, and the summed-up value may be the change of the threshold voltage of memory cell0. Also, the change of the threshold voltage of memory cell0may be calculated using a predetermined algorithm or a function.

The data conversion unit140converts source data320ofFIG. 3of memory cell0, which is received in the receiving unit110, when a change of a threshold voltage of memory cell0is ‘A’, as illustrated inFIG. 3. That is, the data conversion unit140converts the source data of memory cell0to data310ofFIG. 3, the data310corresponding to a difference between the change ‘A’ of the threshold voltage calculated by the voltage change calculation unit130.

The programming unit150programs the converted data by the data conversion unit140in memory cell0. As an example, the converted data310ofFIG. 3is programmed in memory cell0.

Referring to memory cell2, similar to memory cell0, source data of memory cell2is converted based on a change of a calculated threshold voltage after calculating the change of the threshold voltage of memory cell2based on source data of memory cells1,3,5,6, and7to be programmed, among neighboring memory cells.

The programming unit150programs the converted source data of memory cell2in memory cell2.

As described above, in a memory cell to be programmed, the apparatus for programming data of the memory cells according to the exemplary embodiment of the present invention calculates a change of a threshold voltage based on source data of neighboring memory cells capable of causing a change of the threshold voltage, coverts to program the calculated change of the threshold voltage to data having a threshold voltage which corresponds to a difference between the calculated change of the threshold voltage and a threshold voltage of source data required to be programmed, thereby reducing a bit error of data which is stored in a memory cell.

FIG. 4is a flowchart illustrating a method for programming data of memory cells according to an exemplary embodiment of the present invention.

Referring toFIG. 4, source data, which will be programmed in memory cells constituting a memory, is received in operation S410. In this instance, the memory may include flash memory cells of an SLC method, or a flash memory cells of an MLC method.

In operation S420, source data capable of affecting a threshold voltage of memory cells, which are required to be programmed, is detected to store accurate data in a memory cell which will be programmed. In this instance, the detected source data may be source data except source data of a memory cell which will be programmed. As an example, in a memory structure ofFIG. 2, when memory cell0is required to be programmed, detected source data are source data of memory cells1,3,4,5,6, and7, except source data of memory cells0and2, since memory cell2is simultaneously programmed with memory cell0.

In this instance, the detected source data may be source data of neighboring memory cells of the memory cell which will be programmed. In this instance, the detected source data may be source data of memory cells which are programmed after the source data of the memory cell required to be programmed, from the neighboring memory cells. In this instance, the detected source data may be source data of memory cells which are affected by the memory cell required to be programmed and floating poly coupling.

When the source data capable of affecting the threshold voltage is detected, a change of threshold voltage of the memory cell required to be programmed is calculated based on the detected source data in operation S430. In this instance, the method for programming data of memory cells according to the exemplary embodiment of the present invention may calculate the change of the threshold voltage based on a floating poly coupling effect between memory cells which are generated by source data of the detected memory cells and the memory cell required to be programmed.

In this instance, the change of the threshold voltage of the memory cell required to be programmed may be calculated based on threshold voltages which are changed according to each source data. In this instance, the threshold voltages which are changed according to each source data may differ according to a code system being used, and may be acquired by measurement and simulation.

In this instance, the threshold voltages which are changed according to each source data may be indicated as predetermined values or values having stochastic distribution. In this instance, the change of the threshold voltage of memory cell required to be programmed may be calculated based on both source data of memory cells capable of affecting the threshold voltage and channel features of the memory cells.

In operation S440, the source data of the memory cell which will be programmed is converted based on a change of threshold voltage due to source data of neighboring memory cells or source data of memory cells which are programmed after the source data of the memory cell required to be programmed.

In this instance, the source data of the memory cell may be converted to data having a threshold voltage corresponding to a difference between a threshold voltage of source data required to be programmed in a memory cell, and a change of a threshold voltage, which is calculated in operation S430.

In operation S450, the data, whose source data has been converted based on the change of the calculated change of the threshold voltage, is programmed in the memory cell.

As described from the method for programming data of the memory cells according to the present invention, data which will be programmed in a memory cell is different from source data which is actually required to be programmed, and is, however, source data of a converted threshold voltage, which is converted by considering floating poly coupling by of data neighboring memory cells after being programmed.

As described above, in comparison to a shadow programming method, a programming time may be reduced, and errors in data may be reduced.

A method and an apparatus for programming data of memory cells according to the above-described exemplary embodiments of the present invention may reduce an occurrence of a bit error and may increase a lifetime of the memory cells since data is programmed by considering floating poly coupling which is generated between memory cells.

Also, a method and an apparatus for programming data of memory cells according to the above-described exemplary embodiments of the present invention may reduce a programming time since data, which will be programmed in the memory cell, is converted by considering a change of a threshold voltage, which is changed due to floating poly coupling, and the converted data is programmed.

Also, a method and an apparatus for programming data of memory cells according to the above-described exemplary embodiments of the present invention may be applicable to all types of code systems of source data.