US20150103601A1 - Multi-pass soft programming - Google Patents
Multi-pass soft programming Download PDFInfo
- Publication number
- US20150103601A1 US20150103601A1 US14/050,490 US201314050490A US2015103601A1 US 20150103601 A1 US20150103601 A1 US 20150103601A1 US 201314050490 A US201314050490 A US 201314050490A US 2015103601 A1 US2015103601 A1 US 2015103601A1
- Authority
- US
- United States
- Prior art keywords
- repeat
- voltage pulse
- verification
- determination
- word lines
- 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
Images
Classifications
-
- 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
- G11C16/12—Programming voltage switching 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/10—Programming or 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/3404—Convergence or correction of memory cell threshold voltages; Repair or recovery of overerased or overprogrammed cells
- G11C16/3409—Circuits or methods to recover overerased nonvolatile memory cells detected during erase verification, usually by means of a "soft" programming step
-
- 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/3404—Convergence or correction of memory cell threshold voltages; Repair or recovery of overerased or overprogrammed cells
- G11C16/3413—Circuits or methods to recover overprogrammed nonvolatile memory cells detected during program verification, usually by means of a "soft" erasing step
-
- 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/3436—Arrangements for verifying correct programming or erasure
- G11C16/3454—Arrangements for verifying correct programming or for detecting overprogrammed cells
- G11C16/3459—Circuits or methods to verify correct programming of nonvolatile memory cells
Definitions
- FIG. 3 is a flowchart illustrating a process for soft programming a memory array, according to an example embodiment.
- FIG. 4 is a flowchart illustrating a process for soft programming a memory array, according to an example embodiment.
- FIG. 5 is a flowchart illustrating a process for soft programming a memory array, according to an alternative example embodiment.
- the soft program verify module 112 may output a verification result signal 167 , which the soft program control module 114 receives and uses to perform soft programming on individual cells within the cell array 102 that require soft programming. Based on the verification result signal 167 , for example, the soft program control module 114 may output a low program voltage (for example, less than the level used for regular programming) via signal line 153 .
- the word line control module 106 may receive the low program voltage and apply it to those cells along those word lines that have failed the verification, as will be discussed in more detail below.
- the voltages, such as the low program voltage and regular programming voltage may be received from a charge pump 116 via voltage line 169 .
- the higher leakage current may overload a charge pump that provides the programming pulse, such as charge pump 116 for example, thereby limiting the voltage the charge pump may supply.
- the higher current may result in a high IR (voltage) drop, which causes a lower voltage to be actually supplied to each cell. This increase in the current leakage may cause soft programming to slow down significantly or fail in extreme cases, even when subsequent verification operations are operating appropriately.
- phase 1 of soft programming occurs.
- a single soft programming pulse at a first voltage level is applied to each cell per word line that failed verification.
- verification may be performed at the subsequent word line, and the subsequent word line may receive a single soft programming pulse as well.
- the algorithm 300 may first perform verification and then apply the single pulse to each word line.
- phase 1 parasitic current is reduced at the various word lines in a memory array, such as cell array 102 , before phase 2's soft programming of each word line until passing verification.
- FIG. 4 is a flowchart illustrating a more detailed process for soft programming a memory array, according to an example embodiment.
- Algorithm 400 may be, for example, an implementation of the algorithm 300 .
- Algorithm 400 starts at step 406 .
- algorithm 400 includes phase 1, indicated by box 402 in FIG. 4 , and phase 2, indicated by box 404 .
- a pass count N is determined.
- Pass count N designates how many times the steps in phase 1 ( 402 ) will be repeated before proceeding to phase 2 ( 404 ).
- the pass count N may be determined, for example, by the soft program control module 114 depicted in FIG. 1 .
- a pass counter variable may be initialized at zero to track the number of times phase 1 is repeated.
- the pass count N is a preset value that may be programmed into memory at fabrication before operation, for example.
- the pass count N may be calculated based on an attribute of the cell array 102 or a host device in which the cell array 102 resides.
- the pass count N may be determined based on the number of program/erase (P/E) cycles that have already occurred at the sector.
- the pass count N may be a linear function of the P/E cycle count, or may have some other functional relationship with the P/E cycle count.
- the pass count N may be a function of the amount of time required to erase the sector(s) of the cell array 102 .
- the relationship between the erase time and pass count N may be linear, for example.
- step 412 begins soft programming at the first word line in the sector of the cell array 102 that requires soft programming.
- step 416 If at decision step 416 it is determined that the last word line in the sector was just soft programmed, then the algorithm 400 increments the pass counter variable in step 420 . The algorithm 400 then proceeds again to the decision step 410 , where the pass counter is compared against pass count N ⁇ 1 (or N, depending on how the pass counter variable was initialized). Depending on the result of the comparison, phase 1 ( 402 ) either continues or the algorithm 400 moves to phase 2 ( 404 ) and step 422 , as discussed above.
- phase 2 begins with the algorithm 400 beginning soft programming at the first word line in the sector of the cell array 102 that requires soft programming.
- the algorithm 400 proceeds to decision step 430 , where it is determined whether the word line that has just been soft programmed is the last word line in the sector.
- FIG. 5 is a flowchart illustrating a more detailed process for soft programming a memory array, according to an alternative example embodiment.
- Algorithm 500 may be, for example, an alternative implementation of the algorithm 300 .
- Algorithm 500 starts at step 506 .
- algorithm 500 includes phase 1, indicated by box 502 in FIG. 5 , and phase 2, indicated by box 504 .
- a device property is measured.
- the measured device property may serve as a variable for comparison in a loop, such as a while loop, that is repeated in phase 1 ( 502 ) until a criterion is met.
- the device property measured may be leakage current on the columns of the cell array 102 .
- the device property may be the threshold voltage V th of cells of the cell array 102 .
- the device property may be whether the cells pass or fail a low verification voltage, for example a verification voltage that is less than the soft programming verification voltage used in phase 1 ( 502 ).
- the algorithm 500 proceeds to decision step 510 , where the measured device property is compared against, for example, a threshold such as those discussed below.
- the threshold may be pre-programmed, such as into a memory or hardware device used for controlling the cell array 102 . Alternatively, the threshold may be programmable during operation of the cell array 102 by a user or other source.
- the algorithm 500 proceeds to step 522 which ends phase 1 ( 502 ) and begins phase 2 ( 504 ). In an alternative example, if the measured device property is at or below the threshold, then the algorithm 500 proceeds to step 522 .
- the system may measure a device property by applying a low voltage V LOW , for example lower than the soft programming verify voltage level V L1 used in phase 1 ( 502 ) of the algorithm 500 , to each word line.
- This low voltage V LOW may be, for example, 1V.
- step 510 if any cells in the cell array 102 fail the V LOW voltage application, then the algorithm 500 continues to step 512 in phase 1 ( 502 ). If none of the cells in the cell array 102 fail the V LOW voltage application, then the algorithm 500 continues to step 522 and begins phase 2 ( 504 ).
- the system may measure directly or indirectly the threshold voltage V th of all cells within the cell array 102 or any sector thereof.
- V th of any given cell within the sector of the cell array 102 is less than a threshold value at step 510
- the algorithm will continue to step 512 in phase 1 ( 502 ). If none of the cells in the sector of the cell array 102 are less than V th then the algorithm 500 continues to step 522 and begins phase 2 ( 504 ).
- the algorithm 500 may determine a fixed pass count N. Where V th may be used to set the pass count N, the algorithm 500 would then proceed as discussed above with respect to algorithm 400 .
- step 510 If it is determined at step 510 that phase 1 ( 502 ) should continue, then the algorithm 500 proceeds to step 512 , which begins soft programming at the first word line in the sector of the cell array 102 that requires soft programming.
- the second voltage level V SP2 may be different then the first voltage level V SP1 used in phase 1 ( 502 ) or may be the same.
- the second verification level V L2 may be a different value than the first verification level V L1 used in phase 1 ( 502 ) or may be the same.
- algorithm 500 may repeat soft programming in phase 2 ( 504 ) (not shown in FIG. 4 ) at the given word line a pre-determined number of times M, either checking after each repetition whether all of the cells along the given word line pass verification or simply repeating M times. In addition, after each repetition the soft programming voltage may increase above V SP2 a fixed amount.
- the algorithm 500 proceeds to decision step 530 , where it is determined whether the word line that has just been soft programmed is the last word line in the sector.
- Computer system 600 can be any well-known computer capable of performing the functions described herein, such as computers available from International Business Machines, Apple, Sun, HP, Dell, Sony, Toshiba, etc.
- Computer system 600 includes one or more processors (also called central processing units, or CPUs), such as a processor 604 .
- processors also called central processing units, or CPUs
- Processor 604 is connected to a communication infrastructure or bus 606 .
- Computer system 600 also includes user input/output device(s) 603 , such as monitors, keyboards, pointing devices, etc., which communicate with communication infrastructure 606 through user input/output interface(s) 602 .
- user input/output device(s) 603 such as monitors, keyboards, pointing devices, etc., which communicate with communication infrastructure 606 through user input/output interface(s) 602 .
- Computer system 600 also includes a main or primary memory 608 , such as random access memory (RAM).
- Main memory 608 may include one or more levels of cache.
- Main memory 608 has stored therein control logic (i.e., computer software) and/or data.
- Computer system 600 may also include one or more secondary storage devices or memory 610 .
- Secondary memory 610 may include, for example, a hard disk drive 612 and/or a removable storage device or drive 614 .
- Removable storage drive 614 may be a floppy disk drive, a magnetic tape drive, a compact disk drive, an optical storage device, tape backup device, and/or any other storage device/drive.
- references herein to “one embodiment,” “an embodiment,” “an example embodiment,” or similar phrases indicate that the embodiment described may include a particular feature, structure, or characteristic, but every embodiment may not necessarily include the particular feature, structure, or characteristic. Moreover, such phrases are not necessarily referring to the same embodiment. Further, when a particular feature, structure, or characteristic is described in connection with an embodiment, it would be within the knowledge of persons skilled in the relevant art(s) to incorporate such feature, structure, or characteristic into other embodiments whether or not explicitly mentioned or described herein.
Landscapes
- Read Only Memory (AREA)
Abstract
Description
- Nonvolatile memory, such as flash memory, is a type of memory that retains stored data even after power is removed. To remove data from individual memory cells in an array of flash memory, sectors are erased, for example by creating a strong electric field between the charge-storing layer (such as a floating gate or silicon nitride layer) that causes the extraction of trapped electrons in the charge-storing layer of each memory cell. Sometimes, however, an erasure operation overshoots and causes some memory cells' threshold voltage Vth to fall below an acceptable level. A low Vth may cause excessive bit line current leakage that can result in subsequent read errors.
- Soft programming provides a way of correcting the Vth of these over-corrected memory cells. Soft programming applies voltage pulses that are lower than a programming voltage level across each word line that has one or more memory cells with a Vth below a particular level. Soft programming may include the application of a high voltage on the drains of each cell via the bit lines during application of a soft programming pulse. This high voltage may cause the bit line current leakage to be much higher than the current leakage otherwise would be during verification. This higher current leakage may reduce the actual soft programming voltage pulse applied to the cells in two ways. First, the higher current may overload a charge pump that provides the programming pulse, thereby limiting the voltage the charge pump may supply. Second, the higher current results in a high IR (voltage) drop, which causes a lower voltage to be actually supplied to each cell. This increase in the bit line current leakage may cause soft programming to slow down significantly or even fail in extreme cases, even when verification is operating appropriately. The soft programming process remains at a given word line having memory cells with unacceptably low Vth values until all memory cells in the word line are verified.
- In situations where other over-corrected memory cells along later word lines cause bit line current leakage, the leakage may interfere with verification of the soft programming process at the given word line. This interference may also cause the overall soft programming process to either slow down, resulting in poor erase performance of the overall memory, or fail entirely. Further, bit line current leakage may cause the soft programming process to overshoot an ideal Vth for the given word line, resulting in a smaller operating window and reduced reliability during regular programming.
- Provided herein are system, method and/or computer program product embodiments, and/or combinations and sub-combinations thereof, for improving soft programming performance for a non-volatile memory.
- An embodiment includes a computer implemented method for soft programming a memory array. The method operates by sequentially performing, by a controller, a first soft programming verification using a first verification level of cells along a plurality of word lines in a sector of the memory array, sequentially applying a single first voltage pulse to the plurality of word lines to cells that failed the soft programming verification, repeating the sequential application of the single first voltage pulse to the plurality of word lines to the cells based on a determination to repeat, and repeating, after a determination not to repeat the sequential application, application of a second voltage pulse to each word line from among the plurality of word lines until each cell along each word line passes a second soft programming verification using a second verification level.
- Another embodiment includes a system for soft programming a memory array. The apparatus includes a memory array sector, a memory, and at least one processor coupled to the memory. The processor is configured to sequentially perform a first soft programming verification using a first verification level of cells along the plurality of word lines in the memory array sector. The processor is also configured to sequentially apply a single first voltage pulse to the plurality of word lines to cells that failed the soft programming verification and repeat the sequential application of the single first verification voltage pulse to the plurality of word lines to the cells based on a determination to repeat. The processor is further configured to repeat, after a determination not to repeat the sequential application of the single first voltage pulse, application of a second voltage pulse to each word line from among the plurality of word lines until each cell along each word line passes a second soft programming verification using a second verification level.
- A further embodiment includes a tangible computer-readable device having instructions stored thereon that, when executed by at least one computing device, cause the computing device to perform operations. The operations include sequentially performing a first soft programming verification using a first verification level of cells along a plurality of word lines in a sector of a memory array, sequentially applying a single first voltage pulse to the plurality of word lines to cells that failed the soft programming verification, repeating the sequential application of the single first voltage pulse to the plurality of word lines to the cells based on a determination to repeat, and repeating, after a determination not to repeat the sequential application, application of a second voltage pulse to each word line from among the plurality of word lines until each cell along each word line passes a second soft programming verification using a second verification level.
- The accompanying drawings are incorporated herein and form a part of the specification.
-
FIG. 1 is a block diagram of an exemplary soft program verification and programming system for a memory array, according to an example embodiment. -
FIG. 2 is a block diagram illustrating exemplary bit line column leakage in a memory array. -
FIG. 3 is a flowchart illustrating a process for soft programming a memory array, according to an example embodiment. -
FIG. 4 is a flowchart illustrating a process for soft programming a memory array, according to an example embodiment. -
FIG. 5 is a flowchart illustrating a process for soft programming a memory array, according to an alternative example embodiment. -
FIG. 6 is an example computer system useful for implementing various embodiments. - In the drawings, like reference numbers generally indicate identical or similar elements. Additionally, generally, the left-most digit(s) of a reference number identifies the drawing in which the reference number first appears.
-
FIG. 1 is a block diagram of an exemplary memory array andsoft programming system 100 that includes acell array 102, a bit line (column)control module 104, a word line (row)control module 106, a sense amplifier/write buffer module 108, anaddress control module 110, a soft program verifymodule 112, a softprogram control module 114, acharge pump 116, and acontrol register 118. It should be noted thatFIG. 1 , as well as the rest of the figures of the present application, represent block diagrams of various aspects of the present application. Those skilled in the relevant art(s) will recognize that not all modules, as well as interconnections to and from all of the modules, are shown for sake of simplicity, but will be easily recognizable. The exemplary memory array andsoft programming system 100 may be implemented, for example, in a NOR or a NAND flash memory system, butsystem 100 is not limited to these examples but is instead applicable to other memory systems/devices/circuits. The disclosure of this application will focus on the NOR configuration (including floating gate and dual bit (sold under the trademark MirrorBit®) implementations) for sake of simplicity and not limitation. - For purposes of this discussion unless otherwise stated or indicated, the term “module” shall be understood to include at least one of software, firmware, and hardware (such as one or more circuits, microchips, or devices, or any combination thereof), and any combination thereof. In addition, it will be understood that each module may include one, or more than one, component within an actual device, and each component that forms a part of the described module may function either cooperatively or independently of any other component forming a part of the module. Conversely, multiple modules described herein may represent a single component within an actual device. Further, components within a module may be in a single device or distributed among multiple devices in a wired or wireless manner.
- Returning to the disclosure of
FIG. 1 , thecell array 102 may include a plurality of flash memory cells (also referred to as bits). For example, the flash memory cells may be NOR flash memory. As will be appreciated by those skilled in the relevant art(s), thecell array 102 may be subdivided into sectors, blocks, and individual cells. Thecell array 102 may include bit lines arranged in columns of thecell array 102. Each bit line may be connected, for example, to a drain of each individual cell arranged along the given bit line. Thecell array 102 may also include word lines arranged in rows of thecell array 102. Each word line may be connected, for example, to a control gate of each individual cell arranged along the given word line. In this manner, each individual cell within thecell array 102 may be addressed and accessed (including, for example, writing and reading). By application ofappropriate voltages 159 from the wordline control module 106 to the word lines andappropriate voltages 161 to the bit lines from the bitline control module 104, each individual cell in thecell array 102 may be programmed, read, verified, erased, and/or soft-programmed. - To determine which individual cells in the
cell array 102 to address and access,address control module 110 may receive an address for one or more memory cells incell array 102 onaddress bus 151 from softprogram control module 114. The softprogram control module 114 may be, for example, a microcontroller. This address may be an individual address or a plurality of addresses. The address may include, for example, row address, column address, and sector select information. Additionally or alternatively,address control module 110 may receive the address from another bus in the system. Theaddress control module 110 decodes the address and outputscolumn control signal 155 to the bitline control module 104 as well asrow control signal 157 to the wordline control module 106.Address control module 110 may be separate from, or integrated with, other controllers within the memory array andsoft programming system 100. - The bit
line control module 104 receives thecolumn control signal 155 and outputs the column cell control signal(s) 161 based on thecolumn control signal 155. The wordline control module 106 receives therow control signal 157 and outputs the row cell control signal(s) 159 based on the row control signal 157 from theaddress control module 110. By application of appropriate voltages via the row cell control signal(s) 159 from the wordline control module 106 to the word lines and appropriate voltages via the column cell control signal(s) 161 to the bit lines from the bitline control module 104, each individual cell in thecell array 102 may be programmed, read, verified, erased, and/or soft-programmed. - The sense amplifier/
write buffer module 108 may be coupled to thecell array 102 and receive data output by the individual cells accessed by the corresponding row cell control signal(s) 159 and column cell control signal(s) 161 as input/output signal 163. The sense amplifier/write buffer module 108 may include, for example, sense amplifiers that receive data output by the accessed cell(s) from thecell array 102. The sense amplifier/write buffer module 108 may also include a write buffer that holds data to be written to one or more cells, blocks, and/or sectors withincell array 102. - The soft
program control module 114 may conduct soft programming based on instructions stored within thecontrol register 118, which are retrieved viamemory path 171. Additionally or alternatively, the softprogram control module 114 may include one or more registers or other memory. Thecontrol register 118 may be any type of hardware register as will be recognized by those skilled in the relevant art(s). Thecontrol register 118 may be any other type of memory, for example RAM, ROM, EEPROM, or other flash memory, as will be recognized by those skilled in the relevant art(s). In an embodiment, the softprogram control module 114 may be capable of changing the instructions stored withincontrol register 118. - During soft programming, the soft
program control module 114 may apply a verification voltage viasignal line 153 to the wordline control module 106. The wordline control module 106 may output, in a sequential manner per word line, the verification voltage via row cell control signal(s) 159. As each word line receives the verification voltage, a corresponding current is generated by individual cells along the subject word line. Alternatively, the softprogram control module 114 may apply the verification voltage on a block or sector basis. The sense amplifier/write buffer module 108 may subsequently detect the current(s) generated by the verification voltage at each word line as the input/output signal 163. - The soft program verify
module 112 may be configured to receive the detected current(s) from the input/output signal 163 as detectedsignal 165 from the sense amplifier/write buffer module 108. The detectedsignal 165 may be, for example, a drain current. The soft program verifymodule 112 may compare this detectedsignal 165 against a reference signal, for example a reference current or a reference voltage, to determine whether a Vth of individual cells in thecell array 102 is within an appropriate range. The soft program verifymodule 112 may determine, for example, whether the Vth of individual cells have fallen below a certain threshold. - The soft program verify
module 112 may output averification result signal 167, which the softprogram control module 114 receives and uses to perform soft programming on individual cells within thecell array 102 that require soft programming. Based on theverification result signal 167, for example, the softprogram control module 114 may output a low program voltage (for example, less than the level used for regular programming) viasignal line 153. The wordline control module 106 may receive the low program voltage and apply it to those cells along those word lines that have failed the verification, as will be discussed in more detail below. The voltages, such as the low program voltage and regular programming voltage, may be received from acharge pump 116 viavoltage line 169. -
FIG. 2 illustrates the need for soft programming as a block diagram showing exemplary bit line column leakage in amemory array 200. Thememory array 200 may be, for example, a portion of thecell array 102 fromFIG. 1 . InFIG. 2 , a plurality of word lines WL1, WL2, WL3, and WL4 through WLN are depicted aslines memory array 200. Transverse to the word lines 206 through 214 arecolumns Column 202 may be, for example, a bit line connected to the drain of an individual cell over which the bit line passes at each word line.Column 202 may illustrate the connection of the source of each individual cell to ground or some other voltage level. - After an erase operation on the
memory array 200, a bit line column leakage may exist along thecolumn 202, with each individual cell along each word line contributing a varying amount. For example,FIG. 2 illustrates an absence of leakage current for the cell onword line 206, a first small leakage current 251 for the cell onword line 208, a second small leakage current 253 for the cell onword line 210, a large leakage current 255 for the cell onword line 212, and a third small leakage current 257 for the cell onword line 214. According to an aspect of the present application that will be discussed in more detail below, the leakage current of varying size at each affected word line may be soft programmed so that the overall soft programming process does not time out or fail due to an excessively large leakage current at any particular cell. - For example, conventionally, soft programming would focus on correcting the Vth of all individual cells along a first word line before proceeding to a subsequent word line. In
FIG. 2 , for example, soft programming would conventionally begin with correcting Vth for the cell(s) onword line 208 to reduce or eliminate the first small leakage current 251 before proceeding toword line 210 and its associated second small leakage current 253. During conventional soft programming, a high voltage is typically applied on the drains of each cell via the bit lines during a soft programming voltage pulse. This high voltage may cause the current leakage to increase dramatically from what the current leakage otherwise would be during a subsequent verification operation. This higher current leakage may reduce the actual soft programming voltage pulse applied to the cells in two ways. First, the higher leakage current may overload a charge pump that provides the programming pulse, such ascharge pump 116 for example, thereby limiting the voltage the charge pump may supply. Second, the higher current may result in a high IR (voltage) drop, which causes a lower voltage to be actually supplied to each cell. This increase in the current leakage may cause soft programming to slow down significantly or fail in extreme cases, even when subsequent verification operations are operating appropriately. - Further, in conventional soft programming verification operations, the soft programming may never reach subsequent word lines beyond the
word line 208 because the parasitic currents resulting from leakage in memory cells along later word lines (such as large leakage current 255) may skew the bit line current detected by, for example, the sense amplifier/write buffer module 108. Conventionally, this could cause the system to hang on verifying the first word line to be soft programmed, such asword line 208, and never reach subsequent word lines with higher leakage currents. This could result in causing the soft programming process to time out and/or fail. - In accordance with an embodiment of the present application, however, a soft programming algorithm protects the process against timing out and/or failing by iteratively applying a single soft programming pulse sequentially to each word line that fails a verification test according to a test criterion as discussed in more detail with respect to
FIGS. 4 and 5 below. The overall function of a soft programming algorithm according to an embodiment of the present application is first introduced byalgorithm 300, which will be discussed with respect toFIG. 3 , followed by a detailed discussion with respect toFIGS. 4 and 5 . -
FIG. 3 is a flowchart illustrating a process for soft programming a memory array, according to an example embodiment. Thealgorithm 300 may be applied, for example, to thecell array 102 ofFIG. 1 . Reference in the following discussion with respect to the algorithms ofFIGS. 3-5 will be made to thesystem 100 fromFIG. 1 , although other types of arrays or sectors of arrays may be subject to the process as will be recognized by those skilled in the relevant art(s). The soft programming process begins instep 302, where verification begins with a first word line of thecell array 102. Alternatively, verification may be performed on an entire block or sector of thecell array 102 and the results stored for use in soft programming. - In
step 304,phase 1 of soft programming according to an embodiment occurs. Inphase 1, a single soft programming pulse at a first voltage level is applied to each cell per word line that failed verification. After a single pulse is applied to selected cells along a word line that failed verification, verification may be performed at the subsequent word line, and the subsequent word line may receive a single soft programming pulse as well. In one embodiment, therefore, thealgorithm 300 may first perform verification and then apply the single pulse to each word line. - Alternatively, where verification is performed on an entire sector before any application of a single pulse, the
algorithm 300 may use the results to apply the single pulse to each cell of the sector on each word line that failed verification. In this embodiment, application of the single pulse may still occur on a sequential, word line by word line basis. Either way, after verifying and applying the single pulse to each cell that requires it per word line,phase 1 is repeated for a number of passes as will be discussed in more detail below. - Soft programming of those cells that failed verification may be accomplished, for example, by the soft
program control module 114 supplying address information along theaddress bus 151 to theaddress control module 110. Theaddress control module 110 decodes the information to cause the wordline control module 106 and the bitline control module 104 to output the appropriate control signal(s) 159 and 161, respectively, so that only those cells along a selected word line are activated by the column cell control signal(s) 161 to receive the soft programming pulse. - For
step 304, the number of passes may be, but are not required to be, pre-determined or determined dynamically during the verification and soft programming process, for example by assessing whether a threshold for a selected attribute (such as voltage or current, as discussed in more detail below) has been met. - Step 304 ends after completing the determined number of passes, with the application of the single pulse to each requisite word line in each pass.
- In
step 306,phase 2 of soft programming begins according to an embodiment. Inphase 2, soft programming begins at the first word line with cells that contribute to a leakage current, such as the first small leakage current 251 ofFIG. 2 . In some situations, the application of single pulses inphase 1 may have corrected the Vth of some individual cells that had been over-erased. For those cells that were not sufficiently corrected,phase 1's application of the single, low pulses contributed in bringing the Vth of individual cells closer to an acceptable range, thereby reducing corresponding leakage current. - In
phase 2, soft programming repeats application of a soft programming voltage, at a second voltage level, along a given word line until all cells pass verification. The second voltage level inphase 2 may be different from the first voltage level for the single pulse inphase 1. For example, the second voltage level may be greater than the first voltage level. Alternatively, the second voltage level may be less than the first voltage level, or may be equal. Once all cells pass verification, the algorithm proceeds to a subsequent word line. Passing verification means that the Vth for the cell(s) on the given word line are within the acceptable range before thealgorithm 300 proceeds to the next word line. - In this manner, in
phase 1 parasitic current is reduced at the various word lines in a memory array, such ascell array 102, beforephase 2's soft programming of each word line until passing verification. This results in efficiently addressing column leakage across thecell array 102, thereby preventing soft programming timeout or over-soft programming individual cells of the array. -
FIG. 4 is a flowchart illustrating a more detailed process for soft programming a memory array, according to an example embodiment.Algorithm 400 may be, for example, an implementation of thealgorithm 300. -
Algorithm 400 starts atstep 406. As discussed inFIG. 3 ,algorithm 400 includesphase 1, indicated bybox 402 inFIG. 4 , andphase 2, indicated bybox 404. - In
step 408, a pass count N is determined. Pass count N designates how many times the steps in phase 1 (402) will be repeated before proceeding to phase 2 (404). The pass count N may be determined, for example, by the softprogram control module 114 depicted inFIG. 1 . In addition, a pass counter variable may be initialized at zero to track the number oftimes phase 1 is repeated. - In one example, the pass count N is a preset value that may be programmed into memory at fabrication before operation, for example. In an alternative example, the pass count N may be calculated based on an attribute of the
cell array 102 or a host device in which thecell array 102 resides. For example, the pass count N may be determined based on the number of program/erase (P/E) cycles that have already occurred at the sector. The pass count N may be a linear function of the P/E cycle count, or may have some other functional relationship with the P/E cycle count. - In another example, the pass count N may be a function of the amount of time required to erase the sector(s) of the
cell array 102. The relationship between the erase time and pass count N may be linear, for example. - Once the pass count N has been determined, the
algorithm 400 proceeds todecision step 410, where it is determined whether the pass counter variable equals pass count N−1 when the pass counter variable was initialized at zero. If the pass counter variable was initialized at one, it may be determined whether the pass counter variable equals pass count N, as will be recognized by those skilled in the relevant art(s). If the pass counter variable equals N−1 (or N, depending on how the pass counter variable was initialized), then thealgorithm 400 proceeds to step 422 which ends phase 1 (402) and begins phase 2 (404). - If the pass counter variable is less than N−1, then the
algorithm 400 proceeds to step 412, which begins soft programming at the first word line in the sector of thecell array 102 that requires soft programming. - In
step 414, a single voltage pulse at a first voltage level, VSP1, may be applied to those cells along the word line that fail verification using a first verification level VL1, for example where Vth<VL1. - In
decision step 416, thealgorithm 400 determines whether the word line that has just received the soft programming pulse VSP1 is the last word line in the sector. If it was not the last word line, then instep 418 thealgorithm 400 proceeds to the next word line and loops back to step 414 to apply the soft programming pulse VSP1 to the next word line. - If at
decision step 416 it is determined that the last word line in the sector was just soft programmed, then thealgorithm 400 increments the pass counter variable instep 420. Thealgorithm 400 then proceeds again to thedecision step 410, where the pass counter is compared against pass count N−1 (or N, depending on how the pass counter variable was initialized). Depending on the result of the comparison, phase 1 (402) either continues or thealgorithm 400 moves to phase 2 (404) and step 422, as discussed above. - In
step 422, phase 2 (404) begins with thealgorithm 400 beginning soft programming at the first word line in the sector of thecell array 102 that requires soft programming. - In
step 424, a soft programming voltage at a second voltage level, VSP2, may be applied to those cells along the word line that fail verification using a second verification level VL2, until Vth=VL2 or approximately does. The second voltage level VSP2 may be different then the first voltage level VSP1 used in phase 1 (402) or may be the same. Similarly, the second verification level VL2 may be a different value than the first verification level VL1 used in phase 1 (402) or may be the same. - In
decision step 426, thealgorithm 400 determines whether all of the cells along the given current word line pass verification (for example where Vth=VL2). If all of the cells do not pass verification in phase 2 (404), then thealgorithm 400 proceeds to step 428, where soft programming ends prematurely due to a persistent verification failure of one or more of the cells along the given word line. Alternatively,algorithm 400 may repeat soft programming in phase 2 (404) (not shown inFIG. 4 ) at the given word line a pre-determined number of times M, checking after each repetition whether all of the cells along the given word line pass verification. In addition, after each repetition the soft programming voltage may increase above VSP2 a fixed amount. - If all cells along the given word line pass verification, then the
algorithm 400 proceeds todecision step 430, where it is determined whether the word line that has just been soft programmed is the last word line in the sector. - If it was not the last word line, then in
step 432 thealgorithm 400 proceeds to the next word line and loops back to step 424 to soft program the next word line as discussed with respect tosteps algorithm 400 proceeds to step 434 and ends soft programming. -
FIG. 5 is a flowchart illustrating a more detailed process for soft programming a memory array, according to an alternative example embodiment.Algorithm 500 may be, for example, an alternative implementation of thealgorithm 300. -
Algorithm 500 starts atstep 506. As discussed inFIG. 3 ,algorithm 500 includesphase 1, indicated bybox 502 inFIG. 5 , andphase 2, indicated bybox 504. - In
step 508, a device property is measured. The measured device property may serve as a variable for comparison in a loop, such as a while loop, that is repeated in phase 1 (502) until a criterion is met. In one example, the device property measured may be leakage current on the columns of thecell array 102. In another example, the device property may be the threshold voltage Vth of cells of thecell array 102. In another example, the device property may be whether the cells pass or fail a low verification voltage, for example a verification voltage that is less than the soft programming verification voltage used in phase 1 (502). - Once the device property has been measured in
step 508, thealgorithm 500 proceeds todecision step 510, where the measured device property is compared against, for example, a threshold such as those discussed below. The threshold may be pre-programmed, such as into a memory or hardware device used for controlling thecell array 102. Alternatively, the threshold may be programmable during operation of thecell array 102 by a user or other source. In one example, if the measured device property is at or above the threshold, then thealgorithm 500 proceeds to step 522 which ends phase 1 (502) and begins phase 2 (504). In an alternative example, if the measured device property is at or below the threshold, then thealgorithm 500 proceeds to step 522. - In one example, if the leakage current for any of the columns is above a threshold, or greater than or equal to the threshold, then the
algorithm 500 continues to step 512 in phase 1 (502). If the leakage current is less than, or equal to or less than the threshold in another example, then thealgorithm 500 continues to step 522 and begins phase 2 (504). For example, the threshold may be set to be 2 μA. Other threshold values are possible, as will be recognized by those skilled in the relevant art(s). - In an alternative example, the system may measure a device property by applying a low voltage VLOW, for example lower than the soft programming verify voltage level VL1 used in phase 1 (502) of the
algorithm 500, to each word line. This low voltage VLOW may be, for example, 1V. Instep 510, if any cells in thecell array 102 fail the VLOW voltage application, then thealgorithm 500 continues to step 512 in phase 1 (502). If none of the cells in thecell array 102 fail the VLOW voltage application, then thealgorithm 500 continues to step 522 and begins phase 2 (504). - In an additional alternative example, the system may measure directly or indirectly the threshold voltage Vth of all cells within the
cell array 102 or any sector thereof. In one example, when the Vth of any given cell within the sector of thecell array 102 is less than a threshold value atstep 510, the algorithm will continue to step 512 in phase 1 (502). If none of the cells in the sector of thecell array 102 are less than Vth then thealgorithm 500 continues to step 522 and begins phase 2 (504). Alternatively, when the Vth of any given cell, or a minimum number of cells, is less than a given value thealgorithm 500 may determine a fixed pass count N. Where Vth may be used to set the pass count N, thealgorithm 500 would then proceed as discussed above with respect toalgorithm 400. - As will be recognized by those skilled in the relevant art(s), there are other ways in which to modify the above measurement and comparison steps to determine whether, and/or how many times, to repeat application of the single pulse in phase 1 (502) to every necessary cell along each word line in the sector of the
cell array 102. - If it is determined at
step 510 that phase 1 (502) should continue, then thealgorithm 500 proceeds to step 512, which begins soft programming at the first word line in the sector of thecell array 102 that requires soft programming. - In
step 514, a single voltage pulse at a first voltage level, VSP1, may be applied to those cells along the word line that fail verification using a first verification level VL1, for example where Vth<VL1. - In
decision step 516, thealgorithm 500 determines whether the word line that has just received the soft programming pulse VSP1 is the last word line in the sector. If it was not the last word line, then instep 518 thealgorithm 500 proceeds to the next word line and loops back to step 514 to apply the soft programming pulse VSP1 to the next word line. - If at
decision step 516 it is determined that the last word line in the sector was just soft programmed, then thealgorithm 500 measures the device property again instep 520. Thealgorithm 500 then proceeds again to thedecision step 510, where the measured device property is compared against the threshold. Depending on the result of the comparison, phase 1 (502) either continues or thealgorithm 500 moves to phase 2 (504), as discussed above. - In
step 522, phase 2 (504) begins with thealgorithm 500 beginning soft programming at the first word line in the sector of thecell array 102 that requires soft programming. - In
step 524, a soft programming voltage at a second voltage level, VSP2, may be applied to those cells along the word line that fail verification using a second verification level VL2, until Vth=VL2 or approximately does. The second voltage level VSP2 may be different then the first voltage level VSP1 used in phase 1 (502) or may be the same. Similarly, the second verification level VL2 may be a different value than the first verification level VL1 used in phase 1 (502) or may be the same. - In
decision step 526, thealgorithm 500 determines whether all of the cells along the given current word line pass verification (for example where Vth=VL2). If all of the cells do not pass verification in phase 2 (504), then thealgorithm 500 proceeds to step 528, where soft programming ends prematurely due to a persistent verification failure of one or more of the cells along the given word line. Alternatively,algorithm 500 may repeat soft programming in phase 2 (504) (not shown inFIG. 4 ) at the given word line a pre-determined number of times M, either checking after each repetition whether all of the cells along the given word line pass verification or simply repeating M times. In addition, after each repetition the soft programming voltage may increase above VSP2 a fixed amount. - If all cells along the given word line pass verification, then the
algorithm 500 proceeds todecision step 530, where it is determined whether the word line that has just been soft programmed is the last word line in the sector. - If it was not the last word line, then in
step 532 thealgorithm 500 proceeds to the next word line and loops back to step 524 to soft program the next word line as discussed with respect tosteps algorithm 500 proceeds to step 534 and ends soft programming. - Various embodiments can be implemented, for example, using one or more well-known computer systems, such as
computer system 600 shown inFIG. 6 .Computer system 600 can be any well-known computer capable of performing the functions described herein, such as computers available from International Business Machines, Apple, Sun, HP, Dell, Sony, Toshiba, etc. -
Computer system 600 includes one or more processors (also called central processing units, or CPUs), such as aprocessor 604.Processor 604 is connected to a communication infrastructure orbus 606. - One or
more processors 604 may each be a graphics processing unit (GPU). In an embodiment, a GPU is a processor that is a specialized electronic circuit designed to rapidly process mathematically intensive applications on electronic devices. The GPU may have a highly parallel structure that is efficient for parallel processing of large blocks of data, such as mathematically intensive data common to computer graphics applications, images and videos. -
Computer system 600 also includes user input/output device(s) 603, such as monitors, keyboards, pointing devices, etc., which communicate withcommunication infrastructure 606 through user input/output interface(s) 602. -
Computer system 600 also includes a main orprimary memory 608, such as random access memory (RAM).Main memory 608 may include one or more levels of cache.Main memory 608 has stored therein control logic (i.e., computer software) and/or data. -
Computer system 600 may also include one or more secondary storage devices ormemory 610.Secondary memory 610 may include, for example, ahard disk drive 612 and/or a removable storage device or drive 614.Removable storage drive 614 may be a floppy disk drive, a magnetic tape drive, a compact disk drive, an optical storage device, tape backup device, and/or any other storage device/drive. -
Removable storage drive 614 may interact with aremovable storage unit 618.Removable storage unit 618 includes a computer usable or readable storage device having stored thereon computer software (control logic) and/or data.Removable storage unit 618 may be a floppy disk, magnetic tape, compact disk, DVD, optical storage disk, and/any other computer data storage device.Removable storage drive 614 reads from and/or writes toremovable storage unit 618 in a well-known manner. - According to an exemplary embodiment,
secondary memory 610 may include other means, instrumentalities or other approaches for allowing computer programs and/or other instructions and/or data to be accessed bycomputer system 600. Such means, instrumentalities or other approaches may include, for example, aremovable storage unit 622 and aninterface 620. Examples of theremovable storage unit 622 and theinterface 620 may include a program cartridge and cartridge interface (such as that found in video game devices), a removable memory chip (such as an EPROM or PROM) and associated socket, a memory stick and USB port, a memory card and associated memory card slot, and/or any other removable storage unit and associated interface. -
Computer system 600 may further include a communication ornetwork interface 624.Communication interface 624 enablescomputer system 600 to communicate and interact with any combination of remote devices, remote networks, remote entities, etc. (individually and collectively referenced by reference number 628). For example,communication interface 624 may allowcomputer system 600 to communicate withremote devices 628 overcommunications path 626, which may be wired and/or wireless, and which may include any combination of LANs, WANs, the Internet, etc. Control logic and/or data may be transmitted to and fromcomputer system 600 viacommunication path 626. - In an embodiment, a tangible apparatus or article of manufacture comprising a tangible computer useable or readable medium having control logic (software) stored thereon is also referred to herein as a computer program product or program storage device. This includes, but is not limited to,
computer system 600,main memory 608,secondary memory 610, andremovable storage units - Based on the teachings contained in this disclosure, it will be apparent to persons skilled in the relevant art(s) how to make and use the invention using data processing devices, computer systems and/or computer architectures other than that shown in
FIG. 6 . In particular, embodiments may operate with software, hardware, and/or operating system implementations other than those described herein. - It is to be appreciated that the Detailed Description section, and not the Summary and Abstract sections, is intended to be used to interpret the claims. The Summary and Abstract sections may set forth one or more but not all exemplary embodiments of the invention as contemplated by the inventor(s), and thus, are not intended to limit the invention or the appended claims in any way.
- While the invention has been described herein with reference to exemplary embodiments for exemplary fields and applications, it should be understood that the invention is not limited thereto. Other embodiments and modifications thereto are possible, and are within the scope and spirit of the invention. For example, and without limiting the generality of this paragraph, embodiments are not limited to the software, hardware, firmware, and/or entities illustrated in the figures and/or described herein. Further, embodiments (whether or not explicitly described herein) have significant utility to fields and applications beyond the examples described herein.
- Embodiments have been described herein with the aid of functional building blocks illustrating the implementation of specified functions and relationships thereof. The boundaries of these functional building blocks have been arbitrarily defined herein for the convenience of the description. Alternate boundaries can be defined as long as the specified functions and relationships (or equivalents thereof) are appropriately performed. Also, alternative embodiments may perform functional blocks, steps, operations, methods, etc. using orderings different than those described herein.
- References herein to “one embodiment,” “an embodiment,” “an example embodiment,” or similar phrases, indicate that the embodiment described may include a particular feature, structure, or characteristic, but every embodiment may not necessarily include the particular feature, structure, or characteristic. Moreover, such phrases are not necessarily referring to the same embodiment. Further, when a particular feature, structure, or characteristic is described in connection with an embodiment, it would be within the knowledge of persons skilled in the relevant art(s) to incorporate such feature, structure, or characteristic into other embodiments whether or not explicitly mentioned or described herein.
- The breadth and scope of the invention should not be limited by any of the above-described exemplary embodiments, but should be defined only in accordance with the following claims and their equivalents.
Claims (20)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/050,490 US8995198B1 (en) | 2013-10-10 | 2013-10-10 | Multi-pass soft programming |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/050,490 US8995198B1 (en) | 2013-10-10 | 2013-10-10 | Multi-pass soft programming |
Publications (2)
Publication Number | Publication Date |
---|---|
US8995198B1 US8995198B1 (en) | 2015-03-31 |
US20150103601A1 true US20150103601A1 (en) | 2015-04-16 |
Family
ID=52707888
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/050,490 Active US8995198B1 (en) | 2013-10-10 | 2013-10-10 | Multi-pass soft programming |
Country Status (1)
Country | Link |
---|---|
US (1) | US8995198B1 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11087853B2 (en) * | 2019-09-10 | 2021-08-10 | Elite Semiconductor Memory Technology Inc. | Power-on over-erasure correction method and memory device utilizing same |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6493266B1 (en) | 2001-04-09 | 2002-12-10 | Advanced Micro Devices, Inc. | Soft program and soft program verify of the core cells in flash memory array |
US7499338B2 (en) | 2006-10-13 | 2009-03-03 | Sandisk Corporation | Partitioned soft programming in non-volatile memory |
US7649782B2 (en) | 2007-07-31 | 2010-01-19 | Freescale Semiconductor, Inc. | Non-volatile memory having a dynamically adjustable soft program verify voltage level and method therefor |
KR20100107294A (en) * | 2009-03-25 | 2010-10-05 | 삼성전자주식회사 | Memory system including nonvolatile memory device and programing method of nonvolatile memory device |
KR101662309B1 (en) * | 2010-02-08 | 2016-10-04 | 삼성전자주식회사 | Method of programming memory cells for a non-volatile memory device |
KR101656384B1 (en) * | 2010-06-10 | 2016-09-12 | 삼성전자주식회사 | Method of writing data in a non-volatile memory device |
KR101211840B1 (en) * | 2010-12-30 | 2012-12-12 | 에스케이하이닉스 주식회사 | Program method of semiconductor memory device |
JP4902002B1 (en) * | 2011-04-20 | 2012-03-21 | 株式会社東芝 | Nonvolatile semiconductor memory device |
KR20120126436A (en) * | 2011-05-11 | 2012-11-21 | 에스케이하이닉스 주식회사 | Semiconductor memory device and method of programming the semiconductor memory device |
US8760923B2 (en) * | 2012-08-28 | 2014-06-24 | Freescale Semiconductor, Inc. | Non-volatile memory (NVM) that uses soft programming |
-
2013
- 2013-10-10 US US14/050,490 patent/US8995198B1/en active Active
Also Published As
Publication number | Publication date |
---|---|
US8995198B1 (en) | 2015-03-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9165665B2 (en) | Memory system | |
US9997248B2 (en) | Semiconductor memory device and method of operating the same | |
CN106373614B (en) | Semiconductor memory device and method of operating the same | |
US20150006983A1 (en) | Read voltage setting method, and control circuit, and memory storage apparatus using the same | |
TW201308335A (en) | Intelligent shifting of read pass voltages for non-volatile storage | |
US9552883B1 (en) | Semiconductor memory device and operating method thereof | |
US9646696B2 (en) | Semiconductor memory device, erasing methods thereof, and data storage device including the same | |
KR20170092006A (en) | Semiconductor memory device and operating method thereof | |
KR20130049543A (en) | Memory system including nonvolatile memory device and controlling method of controlling nonvolatile memory device | |
KR20170059643A (en) | Semiconductor memory device and operating method thereof | |
US20170025183A1 (en) | Semiconductor memory device and operating method thereof | |
US10297337B2 (en) | Hierarchical fail bit counting circuit in memory device | |
KR20180019345A (en) | Semiconductor memory device and operating method thereof | |
US20160005472A1 (en) | Semiconductor device | |
US20200258584A1 (en) | Method and system for improving performance of a storage device using asynchronous independent plane read functionality | |
KR20180029430A (en) | Semiconductor memory device and operating method thereof | |
KR20160116913A (en) | Semiconductor memory device outputting status fail signal and method of operating thereof | |
US10726911B2 (en) | Memory system | |
US9672914B1 (en) | Semiconductor memory device and operating method thereof | |
US9588700B2 (en) | Semiconductor device and method for programming healing patterns on memory blocks | |
KR20170104839A (en) | Semiconductor memory device and operating method thereof | |
KR20150142921A (en) | Semiconductor memory device, memory system including the same and operating method thereof | |
US8995198B1 (en) | Multi-pass soft programming | |
US10418116B2 (en) | Memory device with control logic configured to group memory blocks, and determine driving voltages to be respectively applied to the groups to control memory operation | |
KR20170052029A (en) | Semiconductor memory device and operating method thereof |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: SPANSION LLC, CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:KATHAWALA, GULZAR A.;RANDOLPH, MARK W.;HE, YI;AND OTHERS;SIGNING DATES FROM 20130620 TO 20130627;REEL/FRAME:031379/0987 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
AS | Assignment |
Owner name: MORGAN STANLEY SENIOR FUNDING, INC., NEW YORK Free format text: SECURITY INTEREST;ASSIGNORS:CYPRESS SEMICONDUCTOR CORPORATION;SPANSION LLC;REEL/FRAME:035240/0429 Effective date: 20150312 |
|
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 |
|
AS | Assignment |
Owner name: MUFG UNION BANK, N.A., CALIFORNIA Free format text: ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN INTELLECTUAL PROPERTY;ASSIGNOR:MORGAN STANLEY SENIOR FUNDING, INC.;REEL/FRAME:050896/0366 Effective date: 20190731 |
|
AS | Assignment |
Owner name: MORGAN STANLEY SENIOR FUNDING, INC., NEW YORK Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE 8647899 PREVIOUSLY RECORDED ON REEL 035240 FRAME 0429. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY INTERST;ASSIGNORS:CYPRESS SEMICONDUCTOR CORPORATION;SPANSION LLC;REEL/FRAME:058002/0470 Effective date: 20150312 |
|
AS | Assignment |
Owner name: SPANSION LLC, CALIFORNIA Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:MUFG UNION BANK, N.A.;REEL/FRAME:059410/0438 Effective date: 20200416 Owner name: CYPRESS SEMICONDUCTOR CORPORATION, CALIFORNIA Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:MUFG UNION BANK, N.A.;REEL/FRAME:059410/0438 Effective date: 20200416 |
|
AS | Assignment |
Owner name: INFINEON TECHNOLOGIES LLC, CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:CYPRESS SEMICONDUCTOR CORPORATION;REEL/FRAME:059721/0467 Effective date: 20200315 |
|
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 |