US20120144101A1 - Programming memory cells with additional data for increased threshold voltage resolution - Google Patents

Programming memory cells with additional data for increased threshold voltage resolution Download PDF

Info

Publication number
US20120144101A1
US20120144101A1 US13/369,645 US201213369645A US2012144101A1 US 20120144101 A1 US20120144101 A1 US 20120144101A1 US 201213369645 A US201213369645 A US 201213369645A US 2012144101 A1 US2012144101 A1 US 2012144101A1
Authority
US
United States
Prior art keywords
memory
data
programming
original data
bits
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.)
Abandoned
Application number
US13/369,645
Inventor
Vishal Sarin
Frankie F. Roohparvar
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Micron Technology Inc
Original Assignee
Micron Technology Inc
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 Micron Technology Inc filed Critical Micron Technology Inc
Priority to US13/369,645 priority Critical patent/US20120144101A1/en
Publication of US20120144101A1 publication Critical patent/US20120144101A1/en
Abandoned legal-status Critical Current

Links

Images

Classifications

    • 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
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • 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/5621Digital 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/5628Programming or writing circuits; Data input circuits
    • 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/5621Digital 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/5642Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/10Decoders
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/564Miscellaneous aspects
    • G11C2211/5641Multilevel memory having cells with different number of storage levels

Definitions

  • the present invention relates generally to memory devices and in a particular embodiment the present invention relates to non-volatile memory devices.
  • RAM random-access memory
  • ROM read only memory
  • DRAM dynamic random access memory
  • SRAM static RAM
  • SDRAM synchronous dynamic RAM
  • Flash memory devices have developed into a popular source of non-volatile memory for a wide range of electronic applications. Flash memory devices typically use a one-transistor memory cell that allows for high memory densities, high reliability, and low power consumption. Common uses for flash memory include personal computers, personal digital assistants (PDAs), digital cameras, and cellular telephones. Program code and system data such as a basic input/output system (BIOS) are typically stored in flash memory devices for use in personal computer systems.
  • BIOS basic input/output system
  • the performance of the memory in the computer should also increase, without impacting program or read reliability, to keep from becoming a bottleneck during data transfers.
  • the density of flash memory arrays has also historically been increasing by increasing the quantity of bits storable in each memory cell. This results in greater quantities of data to be transferred to the memory array within a certain time period.
  • FIG. 1 shows a block diagram of one embodiment of a memory system that incorporates a data transfer method.
  • FIG. 2 shows a schematic diagram of one embodiment of a portion of a non-volatile memory array in accordance with the memory system of FIG. 1 .
  • FIG. 3 shows one embodiment of a table of threshold voltage levels and their associated fixed reference bit patterns and assigned data bit patterns.
  • FIG. 4 shows flowchart of one embodiment of a method for enhancing data transfer and program reliability in a memory device.
  • FIG. 5 shows an alternate embodiment of a table of threshold voltage levels and their associated fixed reference bit patterns and assigned data bit patterns.
  • FIG. 6 shows another alternate embodiment of a table of threshold voltage levels and their associated fixed reference bit patterns and assigned data bit patterns.
  • FIG. 7 shows yet another alternate embodiment of a table of threshold voltage levels and their associated fixed reference bit patterns and assigned data bit patterns.
  • FIG. 8 shows yet another alternate embodiment of a table of the threshold voltage levels and their associated fixed reference bit patterns and assigned data bit patterns.
  • FIG. 1 illustrates a functional block diagram of a memory system 120 that includes a memory device 100 .
  • the memory device 100 has been simplified to focus on features of the memory that are helpful in understanding the present embodiments for data transfer.
  • the memory device 100 is coupled to an external system controller 110 .
  • the controller 110 may be a microprocessor or some other type of control circuitry.
  • the memory device 100 includes an array 130 of non-volatile memory cells, such as the one illustrated in FIG. 2 and discussed subsequently.
  • the memory array 130 is arranged in banks of word line rows and bit line columns.
  • the columns of the memory array 130 are comprised of series strings of memory cells.
  • the connections of the cells to the bit lines determines whether the array is a NAND architecture, an AND architecture, or a NOR architecture.
  • Address buffer circuitry 140 is provided to latch address signals provided through the I/O circuitry 160 . Address signals are received and decoded by a row decoder 144 and a column decoder 146 to access the memory array 130 . It will be appreciated by those skilled in the art, with the benefit of the present description, that the number of address input connections depends on the density and architecture of the memory array 130 . That is, the number of addresses increases with both increased memory cell counts and increased bank and block counts.
  • the memory device 100 reads data in the memory array 130 by sensing voltage or current changes in the memory array columns using sense amplifier circuitry 150 .
  • the sense amplifier circuitry 150 in one embodiment, is coupled to read and latch a row of data from the memory array 130 .
  • I/O circuitry 160 is included for bidirectional data communication as well as address communication over a plurality of data connections 162 with the controller 110 .
  • Write circuitry 155 is provided to write data to the memory array.
  • Memory control circuitry 170 decodes signals provided on control connections 172 from the processor 110 . These signals are used to control the operations on the memory array 130 , including data read, data write (program), and erase operations.
  • the memory control circuitry 170 may be a state machine, a sequencer, or some other type of controller to generate the memory control signals.
  • the memory control circuitry 170 is configured to transfer data to the memory array 130 for programming.
  • the memory control circuitry 170 is further configured to read data from the memory array 130 .
  • FIG. 2 illustrates a schematic diagram of a portion of a NAND architecture memory array 201 comprising series strings of non-volatile memory cells on which the embodiments of the subsequently discussed data transfer method operate. While the subsequent discussions refer to a NAND memory device, the present embodiments are not limited to such an architecture but can be used in other memory device architectures as well.
  • the array is comprised of an array of non-volatile memory cells 201 (e.g., floating gate) arranged in columns such as series strings 204 , 205 .
  • Each of the cells 201 are coupled drain to source in each series string 204 , 205 .
  • a word line WL 0 -WL 31 that spans across multiple series strings 204 , 205 is connected to the control gates of each memory cell in a row in order to bias the control gates of the memory cells in the row.
  • the bit lines BL 1 , BL 2 are eventually connected to sense amplifiers (not shown) that detect the state of each cell by sensing current on a particular bit line.
  • Each series string 204 , 205 of memory cells is coupled to a source line 206 by a source select gate 216 , 217 and to an individual bit line BL 1 , BL 2 by a drain select gate 212 , 213 .
  • the source select gates 216 , 217 are controlled by a source select gate control line SG(S) 218 coupled to their control gates.
  • the drain select gates 212 , 213 are controlled by a drain select gate control line SG(D) 214 .
  • Each memory cell can be programmed as a single level cell (SLC) or multilevel cell (MLC).
  • Each cell's threshold voltage (V t ) is indicative of the data that is stored in the cell. For example, in an SLC, a V t of 0.5V might indicate a programmed cell while a V t of ⁇ 0.5V might indicate an erased cell.
  • the MLC may have multiple V t ranges that each indicate a different state.
  • Multilevel cells take advantage of the analog nature of a traditional flash cell by assigning a bit pattern to a specific voltage range stored on the cell. This technology permits the storage of two or more bits per cell, depending on the quantity of voltage ranges assigned to the cell.
  • FIG. 3 One embodiment of the different states assignable to an MLC is illustrated in FIG. 3 .
  • the first column shows the threshold voltage levels that constitute the range of threshold voltages for one particular memory device. This table starts at 0V and goes up to a maximum programmed level of 3.75V in increments of 0.25V.
  • Alternate embodiments can use other threshold voltages based on a different range of threshold voltages. For example, another memory technology might have a maximum voltage that is different than 3.75V. Yet another memory device technology might be able to use threshold voltage levels that are closer together than 0.25V and still discriminate between the different levels.
  • the second column lists a reference state, each being assigned a distinct 4-bit fixed digital-to-analog converter (DAC) reference bit pattern, for each of the different threshold voltage levels for the memory device.
  • the lowest threshold voltage is assigned a bit pattern of “0000” and the most positive threshold voltage in the threshold voltage range is a logical “1111”. Each bit change represents the 0.25V threshold voltage increment.
  • DAC digital-to-analog converter
  • the reference fixed bit patterns are generated by the memory control circuitry and are used in an embodiment that operates in the digital domain.
  • the array when a read operation is performed on the memory array, the array outputs a signal corresponding to one of the four-bit reference fixed bit patterns for each cell that is read, instead of a threshold voltage.
  • the actual threshold voltage of each memory cell being read is output instead of the fixed digital DAC bit pattern.
  • the programmed state represented by “111” corresponds to the maximum programmed threshold voltage level for the memory cells of the memory block and represents the top of the programmable window.
  • the bit pattern “0000” corresponds to the erased level of the memory block and represents the bottom of the programmable window.
  • the third column of the table of FIG. 3 lists the MSB write data to be transferred.
  • the MSB field is comprised of two bits. Alternate embodiments can use other quantities of bits.
  • the read algorithm would not know if the stored data were the most significant bits (MSBs) or the least significant bits (LSBs).
  • MSBs most significant bits
  • LSBs least significant bits
  • the data transfer and programming embodiments append two additional bits to the initial two bits as a “place holder”. These four bits are then programmed into the selected memory cell or cells.
  • a logical “00” is appended to each two bits of data. For example, if a logical “01” were to be programmed, the memory controller would transfer the “01” to the memory array that would then program “0100” into the selected memory cell. The read algorithm would then read only the MSBs “01” at a later time knowing that the LSBs are not relevant.
  • the fourth column of the table lists the LSB data field to be appended to the MSB field of the third column.
  • the appended data in the illustrated embodiment, is the mirror of the MSB data.
  • the fifth column of the table of FIG. 3 lists the MSB+LSB data that is written to the memory cell.
  • the data is aligned in the table with the program verify threshold level to which the memory cell will be programmed if the respective data is programmed to the cell. For example, if the data “0101” is programmed to a memory cell, the memory cell will be programmed to a threshold voltage of 1.25V. If the data “1010” is programmed to the memory cell, the memory cell is programmed to a threshold voltage of 2.50V. Similarly, if the data “1111” is programmed, the memory cell is programmed to a threshold voltage of 3.75V.
  • the table also shows the difference in threshold voltages between the transferred write data of the second column and the MSB+LSB data that is actually programmed to the memory cell. For example, if it is desired to program “10” to a four bit memory cell, this data is assigned the threshold level of 2.00V. The four bits of data (MSB+LSB data) actually written to the memory cell is “1010” that has a threshold voltage level of 2.50V. This difference in threshold voltages provides a 0.50V “buffer” that the memory cell can lose in stored charge before the original data (i.e., “ 10 ”) is lost due to the threshold voltage of the cell going below 2.00V.
  • the floating gate of a programmed memory cell can experience multiple forms of charge loss that occur at the time of ion implantation that can cause defects in the data retention characteristics of the floating gate.
  • the charge loss scenarios include single bit charge loss, intrinsic charge loss, and quick charge loss.
  • Single bit charge loss is the result of a defective memory cell that exhibits electron leakage. This leakage can be accelerated with voltage or high temperature stress and results in inferior data retention.
  • Intrinsic charge loss is an immediate leakage of electrons from the floating gate, closest to the tunnel oxide, after a programming pulse.
  • the trapped charge initially causes the cell V t to appear higher than the floating gate is programmed.
  • the leakage of these electrons after programming then causes a one time shift in the threshold voltage.
  • Quick charge loss also causes an immediate V t shift after a programming pulse.
  • Quick charge loss is the result of electrons trapped in the tunnel oxide layer after the programming pulse moving back into the channel region.
  • the programmed threshold voltage appears to be higher due to the trapped charge in the tunnel oxide.
  • the cell is read after the program operation has been completed, the cell has a V t that is lower than the V t obtained during the program verify operation due to the charge in the tunnel oxide leaking out to the channel region.
  • the sixth column of the table of FIG. 3 lists the worst case data read for correct MSB data (MSB+LSB) with its associated threshold voltage level. For example, if “1000” is read from the selected memory cell, that data is associated with a threshold voltage level of 2.00V. This column shows that the threshold voltage has been reduced due to charge loss but the correct MSB data is still intact. The LSB field has been reduced to “00” from the programmed “10” but this field is not relevant since only the MSB field is read.
  • the seventh column then shows the actual data that is transferred back to the reading circuit.
  • This data is the MSB of the read data from the selected cell.
  • the “10” MSB field is the data that is actually transferred since the LSB field is ignored.
  • FIG. 4 illustrates a flowchart of one embodiment of a method for enhancing data transfers in a memory device.
  • the embodiment of FIG. 4 increases the speed of the transfer of data from the memory control circuitry 170 to the memory array 130 , as illustrated in FIG. 1 , without impacting the reliability of the programming or reading of the data.
  • the method starts when the memory controller transmits one or more MSB data bits to the memory array for programming 401 .
  • the memory array receives the data and appends the additional bits to the LSB field 403 .
  • one embodiment can append two bits that are duplicates of the original data to be programmed.
  • Another embodiment can append two logical zero bits.
  • more than two bits can be added to the original data to be programmed. For example, if either “00” or a mirror of the original MSB data were appended to the original two MSB data bits, an additional “fifth bit” of a logical “0” or a logical “1” could be added at the end of the data string. This would provide an even greater threshold voltage margin in case of a large charge loss environment.
  • the memory array then programs the newly formed data word, with the appended bits (MSB+LSB), to the selected memory cell 405 . This is accomplished with a programming pulse followed by a verify pulse.
  • the programming pulse can start around 14V-16V and incrementally increase after each failed verify operation.
  • the verify pulse is typically a ramp voltage pulse that increases until the selected memory cell turns on and causes a current to flow on the bit line coupled to the selected cell.
  • the voltage at which the cell turns on is the threshold voltage to which the floating gate is programmed. If this is less than the target voltage, the verify operation has failed and another programming pulse is issued.
  • the program/verify operations are repeated until either the memory cell passes the verify or a certain number of programming pulses have been issued and the selected cell is still not programmed. In this case, an error condition is flagged.
  • the programmed memory cell When the programmed memory cell is read, only the MSB that was programmed with the original data is read 407 . In an alternate embodiment, the LSB bits are read but discarded during subsequent processing.
  • FIGS. 5-7 illustrate alternate embodiments of the table of FIG. 3 . These different embodiments show other possible write data with the resulting appended data, data written, and read data transferred.
  • the first column shows the threshold voltage levels that constitute the range of threshold voltages for one particular memory device.
  • the second column lists a reference state, each being assigned a distinct 4-bit fixed digital-to-analog converter (DAC) reference bit pattern, for each of the different threshold voltage levels for the memory device.
  • DAC digital-to-analog converter
  • FIGS. 5 and 6 show that these are SLC devices since the MSB is a single logical bit.
  • the remaining columns show the appended data, data written with program verify levels, worst case data read variations, and the read data transferred as explained with reference to FIG. 3 .
  • FIG. 7 is an MLC device like the FIG. 3 embodiment and uses the same write data, appended data and, thus, the same data written (MSB+LSB) as the FIG. 3 embodiment.
  • column 6 of FIG. 7 lists the possible data read variations that are acceptable for a correct MSB.
  • Column 7 lists the read data that is transferred (MSB).
  • FIG. 8 illustrates another alternate embodiment of a table of threshold voltage levels and their associated fixed reference bit patterns and assigned data bit patterns.
  • the first three columns of FIG. 8 show the Threshold Voltage Reference, the Fixed DAC Bit Pattern (Fixed Reference word), and the Data to be Written to Memory.
  • a 5 LSB window is used to interpret the “01” data.
  • the interpretation windows can be made larger or smaller using translation tables for actual data stored.
  • FIG. 8 provides a larger margin of error for the “01” data to compensate for more disturb in the requisite threshold voltage range of 1V to 2V.
  • the “10” data is interpreted using a 4 LSB window.
  • the fifth column shows the possible actual data that can be read after programming This column shows the data that might be read if, due to disturb conditions, the programmed data word is altered.
  • the sixth column shows the interpreted data read back after translation.
  • FIG. 8 shows the translation table for the write data and for the read data being different.
  • the translation tables can be the same.
  • the fourth column i.e., the write translation table
  • the sixth column i.e., the read translation table
  • the entire data string can be translated, both the MSB and the LSB, to another digital pattern to be programmed.
  • the translation table can thus be used to open or close the data threshold voltage level window depending on the disturb protection desired between levels.
  • the translation table is accessed to translate the read pattern back to the original data.
  • one or more embodiments append additional digits to target data to be programmed in order to form a new programming word.
  • the additional bits provide greater margins between the threshold voltage represented by the original data and the next lower threshold voltage that would be represented by a loss of data.
  • the memory can receive n bits and append m bits to generate the new word having n+m bits or the control circuit can append the additional bits to the original data.
  • the bit lengths n and m do not have to be equal.
  • the attached bits can be different depending on the original data pattern. By appending different appended bits to the original bits, either the memory or the control circuit can open or close the window between data threshold voltage levels. By appending different bits, the threshold distributions can be spread out or made narrower.

Abstract

Methods for programming memory and memory devices are provided. According to at least one such method, additional data is appended to original data and the resulting data is programmed in a selected memory cell. The appended data increases the program threshold voltage margin of the original data. The appended data can be a duplicate of the original data or logical zeros. When the selected memory cell is read, the memory control circuitry can read just the original data in the MSB field or the memory control circuitry can read the entire programmed data and ignore the LSB field, for example.

Description

    RELATED APPLICATION
  • This is a continuation of U.S. application Ser. No. 12/261,124, titled “PROGRAMMING MEMORY CELLS WITH ADDITIONAL DATA FOR INCREASED THRESHOLD VOLTAGE RESOLUTION” filed Oct. 30, 2008 (allowed), that is commonly assigned and incorporated herein by reference.
  • TECHNICAL FIELD
  • The present invention relates generally to memory devices and in a particular embodiment the present invention relates to non-volatile memory devices.
  • BACKGROUND
  • Memory devices can include internal, semiconductor, integrated circuits in computers or other electronic devices. There are many different types of memory including random-access memory (RAM), read only memory (ROM), dynamic random access memory (DRAM), static RAM (SRAM), synchronous dynamic RAM (SDRAM), and flash memory.
  • Flash memory devices have developed into a popular source of non-volatile memory for a wide range of electronic applications. Flash memory devices typically use a one-transistor memory cell that allows for high memory densities, high reliability, and low power consumption. Common uses for flash memory include personal computers, personal digital assistants (PDAs), digital cameras, and cellular telephones. Program code and system data such as a basic input/output system (BIOS) are typically stored in flash memory devices for use in personal computer systems.
  • As the performance of computer processors increases, the performance of the memory in the computer should also increase, without impacting program or read reliability, to keep from becoming a bottleneck during data transfers. The density of flash memory arrays has also historically been increasing by increasing the quantity of bits storable in each memory cell. This results in greater quantities of data to be transferred to the memory array within a certain time period.
  • For the reasons stated above, and for other reasons stated below that will become apparent to those skilled in the art upon reading and understanding the present specification, there is a need in the art to increase the speed of data transfers without impacting program reliability in memory devices.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • FIG. 1 shows a block diagram of one embodiment of a memory system that incorporates a data transfer method.
  • FIG. 2 shows a schematic diagram of one embodiment of a portion of a non-volatile memory array in accordance with the memory system of FIG. 1.
  • FIG. 3 shows one embodiment of a table of threshold voltage levels and their associated fixed reference bit patterns and assigned data bit patterns.
  • FIG. 4 shows flowchart of one embodiment of a method for enhancing data transfer and program reliability in a memory device.
  • FIG. 5 shows an alternate embodiment of a table of threshold voltage levels and their associated fixed reference bit patterns and assigned data bit patterns.
  • FIG. 6 shows another alternate embodiment of a table of threshold voltage levels and their associated fixed reference bit patterns and assigned data bit patterns.
  • FIG. 7 shows yet another alternate embodiment of a table of threshold voltage levels and their associated fixed reference bit patterns and assigned data bit patterns.
  • FIG. 8 shows yet another alternate embodiment of a table of the threshold voltage levels and their associated fixed reference bit patterns and assigned data bit patterns.
  • DETAILED DESCRIPTION
  • In the following detailed description of the invention, reference is made to the accompanying drawings that form a part hereof and in which is shown, by way of illustration, specific embodiments in which the invention may be practiced. In the drawings, like numerals describe substantially similar components throughout the several views. These embodiments are described in sufficient detail to enable those skilled in the art to practice the invention. Other embodiments may be utilized and structural, logical, and electrical changes may be made without departing from the scope of the present invention. The following detailed description is, therefore, not to be taken in a limiting sense, and the scope of the present invention is defined only by the appended claims and equivalents thereof.
  • FIG. 1 illustrates a functional block diagram of a memory system 120 that includes a memory device 100. The memory device 100 has been simplified to focus on features of the memory that are helpful in understanding the present embodiments for data transfer. The memory device 100 is coupled to an external system controller 110. The controller 110 may be a microprocessor or some other type of control circuitry.
  • The memory device 100 includes an array 130 of non-volatile memory cells, such as the one illustrated in FIG. 2 and discussed subsequently. The memory array 130 is arranged in banks of word line rows and bit line columns. In one embodiment, the columns of the memory array 130 are comprised of series strings of memory cells. As is well known in the art, the connections of the cells to the bit lines determines whether the array is a NAND architecture, an AND architecture, or a NOR architecture.
  • Address buffer circuitry 140 is provided to latch address signals provided through the I/O circuitry 160. Address signals are received and decoded by a row decoder 144 and a column decoder 146 to access the memory array 130. It will be appreciated by those skilled in the art, with the benefit of the present description, that the number of address input connections depends on the density and architecture of the memory array 130. That is, the number of addresses increases with both increased memory cell counts and increased bank and block counts.
  • The memory device 100 reads data in the memory array 130 by sensing voltage or current changes in the memory array columns using sense amplifier circuitry 150. The sense amplifier circuitry 150, in one embodiment, is coupled to read and latch a row of data from the memory array 130. I/O circuitry 160 is included for bidirectional data communication as well as address communication over a plurality of data connections 162 with the controller 110. Write circuitry 155 is provided to write data to the memory array.
  • Memory control circuitry 170 decodes signals provided on control connections 172 from the processor 110. These signals are used to control the operations on the memory array 130, including data read, data write (program), and erase operations. The memory control circuitry 170 may be a state machine, a sequencer, or some other type of controller to generate the memory control signals. In one embodiment, the memory control circuitry 170 is configured to transfer data to the memory array 130 for programming. The memory control circuitry 170 is further configured to read data from the memory array 130.
  • FIG. 2 illustrates a schematic diagram of a portion of a NAND architecture memory array 201 comprising series strings of non-volatile memory cells on which the embodiments of the subsequently discussed data transfer method operate. While the subsequent discussions refer to a NAND memory device, the present embodiments are not limited to such an architecture but can be used in other memory device architectures as well.
  • The array is comprised of an array of non-volatile memory cells 201 (e.g., floating gate) arranged in columns such as series strings 204, 205. Each of the cells 201 are coupled drain to source in each series string 204, 205. A word line WL0-WL31 that spans across multiple series strings 204, 205 is connected to the control gates of each memory cell in a row in order to bias the control gates of the memory cells in the row. The bit lines BL1, BL2 are eventually connected to sense amplifiers (not shown) that detect the state of each cell by sensing current on a particular bit line.
  • Each series string 204, 205 of memory cells is coupled to a source line 206 by a source select gate 216, 217 and to an individual bit line BL1, BL2 by a drain select gate 212, 213. The source select gates 216, 217 are controlled by a source select gate control line SG(S) 218 coupled to their control gates. The drain select gates 212, 213 are controlled by a drain select gate control line SG(D) 214.
  • Each memory cell can be programmed as a single level cell (SLC) or multilevel cell (MLC). Each cell's threshold voltage (Vt) is indicative of the data that is stored in the cell. For example, in an SLC, a Vt of 0.5V might indicate a programmed cell while a Vt of −0.5V might indicate an erased cell. The MLC may have multiple Vt ranges that each indicate a different state. Multilevel cells take advantage of the analog nature of a traditional flash cell by assigning a bit pattern to a specific voltage range stored on the cell. This technology permits the storage of two or more bits per cell, depending on the quantity of voltage ranges assigned to the cell.
  • One embodiment of the different states assignable to an MLC is illustrated in FIG. 3. The first column shows the threshold voltage levels that constitute the range of threshold voltages for one particular memory device. This table starts at 0V and goes up to a maximum programmed level of 3.75V in increments of 0.25V.
  • Alternate embodiments can use other threshold voltages based on a different range of threshold voltages. For example, another memory technology might have a maximum voltage that is different than 3.75V. Yet another memory device technology might be able to use threshold voltage levels that are closer together than 0.25V and still discriminate between the different levels.
  • The second column lists a reference state, each being assigned a distinct 4-bit fixed digital-to-analog converter (DAC) reference bit pattern, for each of the different threshold voltage levels for the memory device. The lowest threshold voltage is assigned a bit pattern of “0000” and the most positive threshold voltage in the threshold voltage range is a logical “1111”. Each bit change represents the 0.25V threshold voltage increment.
  • In one embodiment, the reference fixed bit patterns are generated by the memory control circuitry and are used in an embodiment that operates in the digital domain. In other words, when a read operation is performed on the memory array, the array outputs a signal corresponding to one of the four-bit reference fixed bit patterns for each cell that is read, instead of a threshold voltage. In an alternate embodiment that operates in the analog domain, the actual threshold voltage of each memory cell being read is output instead of the fixed digital DAC bit pattern.
  • In the embodiment of FIG. 3, the programmed state represented by “111” corresponds to the maximum programmed threshold voltage level for the memory cells of the memory block and represents the top of the programmable window. The bit pattern “0000” corresponds to the erased level of the memory block and represents the bottom of the programmable window.
  • The third column of the table of FIG. 3 lists the MSB write data to be transferred. In the illustrated example, the MSB field is comprised of two bits. Alternate embodiments can use other quantities of bits.
  • In order to increase the data programming rate of a memory device, only two bits are transferred from the memory controller to the memory array for programming in each cell. Reducing the quantity of transferred bits reduces the number of clock cycles required to transfer the data and, thus, increases the data rate.
  • However, if only two bits were programmed into a cell that is configured to store four bits of data, the read algorithm would not know if the stored data were the most significant bits (MSBs) or the least significant bits (LSBs). Thus, the data transfer and programming embodiments append two additional bits to the initial two bits as a “place holder”. These four bits are then programmed into the selected memory cell or cells.
  • In one embodiment, a logical “00” is appended to each two bits of data. For example, if a logical “01” were to be programmed, the memory controller would transfer the “01” to the memory array that would then program “0100” into the selected memory cell. The read algorithm would then read only the MSBs “01” at a later time knowing that the LSBs are not relevant. The fourth column of the table lists the LSB data field to be appended to the MSB field of the third column. The appended data, in the illustrated embodiment, is the mirror of the MSB data.
  • The fifth column of the table of FIG. 3 lists the MSB+LSB data that is written to the memory cell. The data is aligned in the table with the program verify threshold level to which the memory cell will be programmed if the respective data is programmed to the cell. For example, if the data “0101” is programmed to a memory cell, the memory cell will be programmed to a threshold voltage of 1.25V. If the data “1010” is programmed to the memory cell, the memory cell is programmed to a threshold voltage of 2.50V. Similarly, if the data “1111” is programmed, the memory cell is programmed to a threshold voltage of 3.75V.
  • The table also shows the difference in threshold voltages between the transferred write data of the second column and the MSB+LSB data that is actually programmed to the memory cell. For example, if it is desired to program “10” to a four bit memory cell, this data is assigned the threshold level of 2.00V. The four bits of data (MSB+LSB data) actually written to the memory cell is “1010” that has a threshold voltage level of 2.50V. This difference in threshold voltages provides a 0.50V “buffer” that the memory cell can lose in stored charge before the original data (i.e., “10”) is lost due to the threshold voltage of the cell going below 2.00V.
  • It is well known in the art that the floating gate of a programmed memory cell can experience multiple forms of charge loss that occur at the time of ion implantation that can cause defects in the data retention characteristics of the floating gate. The charge loss scenarios include single bit charge loss, intrinsic charge loss, and quick charge loss.
  • Single bit charge loss is the result of a defective memory cell that exhibits electron leakage. This leakage can be accelerated with voltage or high temperature stress and results in inferior data retention.
  • Intrinsic charge loss is an immediate leakage of electrons from the floating gate, closest to the tunnel oxide, after a programming pulse. The trapped charge initially causes the cell Vt to appear higher than the floating gate is programmed. The leakage of these electrons after programming then causes a one time shift in the threshold voltage.
  • Quick charge loss also causes an immediate Vt shift after a programming pulse. Quick charge loss is the result of electrons trapped in the tunnel oxide layer after the programming pulse moving back into the channel region. When a cell passes the verify operation, the programmed threshold voltage appears to be higher due to the trapped charge in the tunnel oxide. When the cell is read after the program operation has been completed, the cell has a Vt that is lower than the Vt obtained during the program verify operation due to the charge in the tunnel oxide leaking out to the channel region.
  • The sixth column of the table of FIG. 3 lists the worst case data read for correct MSB data (MSB+LSB) with its associated threshold voltage level. For example, if “1000” is read from the selected memory cell, that data is associated with a threshold voltage level of 2.00V. This column shows that the threshold voltage has been reduced due to charge loss but the correct MSB data is still intact. The LSB field has been reduced to “00” from the programmed “10” but this field is not relevant since only the MSB field is read.
  • The seventh column then shows the actual data that is transferred back to the reading circuit. This data is the MSB of the read data from the selected cell. In the instance of reading the “1000”, the “10” MSB field is the data that is actually transferred since the LSB field is ignored.
  • FIG. 4 illustrates a flowchart of one embodiment of a method for enhancing data transfers in a memory device. The embodiment of FIG. 4 increases the speed of the transfer of data from the memory control circuitry 170 to the memory array 130, as illustrated in FIG. 1, without impacting the reliability of the programming or reading of the data.
  • The method starts when the memory controller transmits one or more MSB data bits to the memory array for programming 401. The memory array receives the data and appends the additional bits to the LSB field 403. As described previously, one embodiment can append two bits that are duplicates of the original data to be programmed. Another embodiment can append two logical zero bits.
  • In another embodiment, more than two bits can be added to the original data to be programmed. For example, if either “00” or a mirror of the original MSB data were appended to the original two MSB data bits, an additional “fifth bit” of a logical “0” or a logical “1” could be added at the end of the data string. This would provide an even greater threshold voltage margin in case of a large charge loss environment.
  • The memory array then programs the newly formed data word, with the appended bits (MSB+LSB), to the selected memory cell 405. This is accomplished with a programming pulse followed by a verify pulse. The programming pulse can start around 14V-16V and incrementally increase after each failed verify operation.
  • The verify pulse is typically a ramp voltage pulse that increases until the selected memory cell turns on and causes a current to flow on the bit line coupled to the selected cell. The voltage at which the cell turns on is the threshold voltage to which the floating gate is programmed. If this is less than the target voltage, the verify operation has failed and another programming pulse is issued. The program/verify operations are repeated until either the memory cell passes the verify or a certain number of programming pulses have been issued and the selected cell is still not programmed. In this case, an error condition is flagged.
  • When the programmed memory cell is read, only the MSB that was programmed with the original data is read 407. In an alternate embodiment, the LSB bits are read but discarded during subsequent processing.
  • FIGS. 5-7 illustrate alternate embodiments of the table of FIG. 3. These different embodiments show other possible write data with the resulting appended data, data written, and read data transferred.
  • As in the embodiment of FIG. 3, the first column shows the threshold voltage levels that constitute the range of threshold voltages for one particular memory device. The second column lists a reference state, each being assigned a distinct 4-bit fixed digital-to-analog converter (DAC) reference bit pattern, for each of the different threshold voltage levels for the memory device.
  • The third column of FIGS. 5 and 6 shows that these are SLC devices since the MSB is a single logical bit. The remaining columns show the appended data, data written with program verify levels, worst case data read variations, and the read data transferred as explained with reference to FIG. 3.
  • The embodiment of FIG. 7 is an MLC device like the FIG. 3 embodiment and uses the same write data, appended data and, thus, the same data written (MSB+LSB) as the FIG. 3 embodiment. However, column 6 of FIG. 7 lists the possible data read variations that are acceptable for a correct MSB. Column 7 lists the read data that is transferred (MSB).
  • FIG. 8 illustrates another alternate embodiment of a table of threshold voltage levels and their associated fixed reference bit patterns and assigned data bit patterns. As in the embodiment of FIG. 7 the first three columns of FIG. 8 show the Threshold Voltage Reference, the Fixed DAC Bit Pattern (Fixed Reference word), and the Data to be Written to Memory.
  • However, in this embodiment a 5 LSB window is used to interpret the “01” data. The larger the LSB window of interpretation, the more margin of error for those particular data bits. The interpretation windows can be made larger or smaller using translation tables for actual data stored.
  • The embodiment of FIG. 8 provides a larger margin of error for the “01” data to compensate for more disturb in the requisite threshold voltage range of 1V to 2V. The “10” data is interpreted using a 4 LSB window.
  • The fifth column shows the possible actual data that can be read after programming This column shows the data that might be read if, due to disturb conditions, the programmed data word is altered. The sixth column shows the interpreted data read back after translation.
  • The embodiment illustrated in FIG. 8 shows the translation table for the write data and for the read data being different. In an alternate embodiment, the translation tables can be the same. In other words, the fourth column (i.e., the write translation table) and the sixth column (i.e., the read translation table) can be either the same data or different.
  • In another embodiment, the entire data string can be translated, both the MSB and the LSB, to another digital pattern to be programmed. The translation table can thus be used to open or close the data threshold voltage level window depending on the disturb protection desired between levels. When the stored data pattern is read, the translation table is accessed to translate the read pattern back to the original data.
  • Conclusion
  • In summary, one or more embodiments append additional digits to target data to be programmed in order to form a new programming word. The additional bits provide greater margins between the threshold voltage represented by the original data and the next lower threshold voltage that would be represented by a loss of data.
  • The memory can receive n bits and append m bits to generate the new word having n+m bits or the control circuit can append the additional bits to the original data. The bit lengths n and m do not have to be equal. The attached bits can be different depending on the original data pattern. By appending different appended bits to the original bits, either the memory or the control circuit can open or close the window between data threshold voltage levels. By appending different bits, the threshold distributions can be spread out or made narrower.
  • Although specific embodiments have been illustrated and described herein, it will be appreciated by those of ordinary skill in the art that any arrangement that is calculated to achieve the same purpose may be substituted for the specific embodiments shown. Many adaptations of the invention will be apparent to those of ordinary skill in the art. Accordingly, this application is intended to cover any adaptations or variations of the invention. It is manifestly intended that this invention be limited only by the following claims and equivalents thereof.

Claims (19)

1. A method for programming memory, the method comprising:
appending additional data to original data to form a new programming word,
wherein the additional data are duplicate data of the original data; and programming the memory with the new programming word.
2. The method of claim 1 and further comprising memory control circuitry controlling transfer of the original data to the memory for programming.
3. The method of claim 1 wherein the original data comprises a logical bit.
4. The method of claim 1 wherein the original data comprise a plurality of logical bits.
5. The method of claim 2 wherein the original data are MSB data bits and the additional data are LSB data bits.
6. The method of claim 1 and further comprising transferring one logical bit to the memory and programming further comprises programming three or more logical bits.
7. The method of claim 1 and further comprising transferring two logical bits to the memory and programming further comprises programming more than two logical bits.
8. The method of claim 1 wherein programming further comprises:
applying a programming pulse followed by a verify pulse to the memory.
9. A method for programming a memory device, the method comprising:
transferring at least a portion of original data to memory;
appending additional data to the at least the portion of original data to form a new programming word wherein the additional data are duplicate data of the original data; and
programming the memory in accordance with the new programming word.
10. The method of claim 9 wherein transferring the original data comprises memory control circuitry controlling transfer of the at least the portion of original data to the memory array.
11. The method of claim 9 and further comprising:
transferring a remaining portion of the original data, that has not yet been programmed, to the memory; and
programming the remaining portion of the original data to the memory.
12. A memory device comprising:
memory control circuitry configured to control operation of the memory device, the memory control circuitry configured to transfer original data; and
a memory array coupled to the memory control circuitry and configured to receive the original data, the memory array further configured to append additional data to the original data to form a new word, wherein the additional data are duplicate data of the original data, the memory array further configured to be programmed with the new word.
13. The memory device of claim 12 wherein the additional data are place holder bits.
14. The memory device of claim 12 wherein each memory cell of the memory array is configured to be programmed as a multilevel cell.
15. The memory device of claim 12 wherein the memory control circuitry is configured to ignore the appended additional data during a read operation.
16. The memory device of claim 12 and further comprising a digital-to-analog converter configured to convert digital bit patterns to threshold voltages to be programmed to the memory array.
17. The memory device of claim 12 wherein the memory array is configured to output a signal corresponding to one of four digital bit reference fixed bit patterns for each memory cell that is read.
18. The memory device of claim 12 wherein each memory cell of the memory array is configured to be programmed to a voltage indicative of the new word.
19. The memory device of claim 12 wherein the memory control circuitry is configured to read only most significant bits of the programmed new word during a read operation.
US13/369,645 2008-10-30 2012-02-09 Programming memory cells with additional data for increased threshold voltage resolution Abandoned US20120144101A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US13/369,645 US20120144101A1 (en) 2008-10-30 2012-02-09 Programming memory cells with additional data for increased threshold voltage resolution

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/261,124 US8127091B2 (en) 2008-10-30 2008-10-30 Programming memory cells with additional data for increased threshold voltage resolution
US13/369,645 US20120144101A1 (en) 2008-10-30 2012-02-09 Programming memory cells with additional data for increased threshold voltage resolution

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US12/261,124 Continuation US8127091B2 (en) 2008-10-30 2008-10-30 Programming memory cells with additional data for increased threshold voltage resolution

Publications (1)

Publication Number Publication Date
US20120144101A1 true US20120144101A1 (en) 2012-06-07

Family

ID=42132869

Family Applications (2)

Application Number Title Priority Date Filing Date
US12/261,124 Active 2030-06-13 US8127091B2 (en) 2008-10-30 2008-10-30 Programming memory cells with additional data for increased threshold voltage resolution
US13/369,645 Abandoned US20120144101A1 (en) 2008-10-30 2012-02-09 Programming memory cells with additional data for increased threshold voltage resolution

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US12/261,124 Active 2030-06-13 US8127091B2 (en) 2008-10-30 2008-10-30 Programming memory cells with additional data for increased threshold voltage resolution

Country Status (7)

Country Link
US (2) US8127091B2 (en)
EP (1) EP2351044B1 (en)
JP (1) JP5545552B2 (en)
KR (1) KR101199131B1 (en)
CN (1) CN102197437B (en)
TW (1) TWI456573B (en)
WO (1) WO2010059406A1 (en)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8582374B2 (en) * 2009-12-15 2013-11-12 Intel Corporation Method and apparatus for dynamically adjusting voltage reference to optimize an I/O system
US8917553B2 (en) * 2011-03-25 2014-12-23 Micron Technology, Inc. Non-volatile memory programming
US9720681B2 (en) * 2011-07-20 2017-08-01 Data I/O Corporation Device programming system with data broadcast and method of operation thereof
US8804452B2 (en) 2012-07-31 2014-08-12 Micron Technology, Inc. Data interleaving module
US9696918B2 (en) 2014-07-13 2017-07-04 Apple Inc. Protection and recovery from sudden power failure in non-volatile memory devices
US20230037044A1 (en) * 2021-07-30 2023-02-02 Taiwan Semiconductor Manufacturing Company, Ltd. Multi-level cell data encoding
US11860733B2 (en) * 2021-12-08 2024-01-02 Western Digital Technologies, Inc. Memory matched low density parity check coding schemes

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040153817A1 (en) * 1996-10-24 2004-08-05 Micron Technologies, Inc. Apparatus and method for detecting over-programming condition in multistate memory device
US20050086574A1 (en) * 2003-10-16 2005-04-21 Fackenthal Richard E. Error correction for multi-level cell memory with overwrite capability
US20090055577A1 (en) * 2007-08-22 2009-02-26 Moon Seunghyun Programming methods for nonvolatile memory

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3226677B2 (en) * 1993-09-21 2001-11-05 株式会社東芝 Nonvolatile semiconductor memory device
DE69635105D1 (en) * 1996-01-31 2005-09-29 St Microelectronics Srl Multi-stage memory circuits and corresponding reading and writing methods
JP3905990B2 (en) * 1998-12-25 2007-04-18 株式会社東芝 Storage device and storage method thereof
KR100521364B1 (en) * 2002-11-18 2005-10-12 삼성전자주식회사 Flash memory device for verifying successful programming of flash cells and the method thereof
US6842379B2 (en) * 2003-02-13 2005-01-11 Broadcom Corporation Non-volatile memory apparatus and method capable of controlling the quantity of charge stored in memory cells
US7120051B2 (en) * 2004-12-14 2006-10-10 Sandisk Corporation Pipelined programming of non-volatile memories using early data
DE602005012625D1 (en) * 2005-07-22 2009-03-19 Hynix Semiconductor Inc A method of accessing a FLASH NAND nonvolatile multi-level memory device
US8020060B2 (en) * 2006-01-18 2011-09-13 Sandisk Il Ltd Method of arranging data in a multi-level cell memory device
US7533328B2 (en) * 2006-07-04 2009-05-12 Sandisk Il, Ltd. Method of error correction in a multi-bit-per-cell flash memory
US7966550B2 (en) * 2007-03-31 2011-06-21 Sandisk Technologies Inc. Soft bit data transmission for error correction control in non-volatile memory
US7633798B2 (en) * 2007-11-21 2009-12-15 Micron Technology, Inc. M+N bit programming and M+L bit read for M bit memory cells
JP5360214B2 (en) * 2008-09-03 2013-12-04 マーベル ワールド トレード リミテッド Data programming method for multi-plane flash memory, device and system using the same

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040153817A1 (en) * 1996-10-24 2004-08-05 Micron Technologies, Inc. Apparatus and method for detecting over-programming condition in multistate memory device
US20050086574A1 (en) * 2003-10-16 2005-04-21 Fackenthal Richard E. Error correction for multi-level cell memory with overwrite capability
US20090055577A1 (en) * 2007-08-22 2009-02-26 Moon Seunghyun Programming methods for nonvolatile memory

Also Published As

Publication number Publication date
KR20110089312A (en) 2011-08-05
EP2351044A4 (en) 2012-09-19
EP2351044A1 (en) 2011-08-03
KR101199131B1 (en) 2012-11-09
EP2351044B1 (en) 2015-10-21
US20100115176A1 (en) 2010-05-06
TW201023184A (en) 2010-06-16
TWI456573B (en) 2014-10-11
JP5545552B2 (en) 2014-07-09
WO2010059406A1 (en) 2010-05-27
US8127091B2 (en) 2012-02-28
JP2012507803A (en) 2012-03-29
CN102197437B (en) 2015-12-09
CN102197437A (en) 2011-09-21

Similar Documents

Publication Publication Date Title
US8194450B2 (en) Methods and control circuitry for programming memory cells
US9293214B2 (en) Determining and using soft data in memory devices and systems
US8713246B2 (en) Memory device program window adjustment
US8830762B2 (en) Methods, devices, and systems for dealing with threshold voltage change in memory devices
US8264882B2 (en) Charge loss compensation during programming of a memory device
US9123423B2 (en) Programming operations in a memory device
US20120144101A1 (en) Programming memory cells with additional data for increased threshold voltage resolution
US20120008409A1 (en) Reduction of quick charge loss effect in a memory device
US11615838B2 (en) Programming memory cells at two different levels in parallel
US8780626B2 (en) Sense operation in a memory device

Legal Events

Date Code Title Description
STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION