US9164829B2 - Read bias management to reduce read errors for phase change memory - Google Patents
Read bias management to reduce read errors for phase change memory Download PDFInfo
- Publication number
- US9164829B2 US9164829B2 US14/269,869 US201414269869A US9164829B2 US 9164829 B2 US9164829 B2 US 9164829B2 US 201414269869 A US201414269869 A US 201414269869A US 9164829 B2 US9164829 B2 US 9164829B2
- Authority
- US
- United States
- Prior art keywords
- bits
- read
- logic
- bias condition
- contents
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1048—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
- G11C13/0004—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements comprising amorphous/crystalline phase transition cells
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
- G11C13/0021—Auxiliary circuits
- G11C13/0033—Disturbance prevention or evaluation; Refreshing of disturbed memory data
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
- G11C13/0021—Auxiliary circuits
- G11C13/0038—Power supply circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
- G11C13/0021—Auxiliary circuits
- G11C13/004—Reading or sensing circuits or methods
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/02—Detection or location of defective auxiliary circuits, e.g. defective refresh counters
- G11C29/021—Detection or location of defective auxiliary circuits, e.g. defective refresh counters in voltage or current generators
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/02—Detection or location of defective auxiliary circuits, e.g. defective refresh counters
- G11C29/026—Detection or location of defective auxiliary circuits, e.g. defective refresh counters in sense amplifiers
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/02—Detection or location of defective auxiliary circuits, e.g. defective refresh counters
- G11C29/028—Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/52—Protection of memory contents; Detection of errors in memory contents
Definitions
- Subject matter disclosed herein relates to a memory device, and more particularly to read performance of phase change memory.
- Phase change memory may operate based, at least in part, on behavior and properties of one or more particular phase change materials, such as chalcogenide alloy and/or germanium antimony telluride (GST), just to name a few examples. Crystalline and amorphous states of such materials may have different electrical resistivities, thus presenting a basis by which information may be stored. An amorphous, high resistance state of such materials may represent a stored first binary state and a crystalline, low resistance state of such materials may represent a stored second binary state. Of course, such a binary representation of stored information is merely an example: PCM may also be used to store multiple memory states, represented by varying degrees of phase change material resistivity, for example.
- phase change material resistivity for example.
- a PCM cell may transition from an amorphous state to a crystalline state by applying a bias signal to the memory cell.
- Characteristics of a bias signal such as peak magnitude and/or pulse width, for example, may be selected to allow a transition to a crystalline state.
- Reading a state of a PCM cell may be performed by applying a bias current or voltage to the PCM cell to detect the cell's resistivity.
- FIG. 1 is a plot of characteristics of bias signal waveforms, according to an embodiment.
- FIG. 2 is a plot of characteristics of reference current or voltage values, according to an embodiment.
- FIG. 3 is a flow diagram of a read process to read contents of a memory array, according to an embodiment.
- FIG. 4 is a flow diagram of a read process to read contents of a memory array, according to another embodiment.
- FIG. 5 is a schematic diagram illustrating an exemplary embodiment of a computing system.
- Embodiments described herein include processes and/or electronic architecture involving managing read bias conditions for phase change memory (PCM) devices.
- read bias conditions may comprise voltage or current applied to PCM cells to determine the state of the PCM cells.
- Managing read bias conditions of PCM cells may be used to avoid read errors and/or reduce the number of such read errors that may otherwise result from, for example, a shift in state distribution of PCM cells that may occur over time, as described below.
- a state distribution of a memory cell may correspond to one or more threshold voltages corresponding to states or logic levels stored by the memory cell. In other words, such states or logic levels may correspond to voltage ranges separated by one or more threshold voltages.
- a first logic level may correspond to a first voltage range and a second logic level may correspond to a second voltage range.
- Such logic levels may correspond to one-bit data, such as “0” for a first logic level, and “1” for a second logic level, for example.
- such logic levels stored in PCM cells may be read and determined based, at least in part, on the same one or more reference cell currents used to previously program the PCM cells.
- a cell current during a read process may result by applying a read voltage (e.g., a read bias condition, as described below) across a PCM cell so that the cell current during the read process may depend, at least in part, on a resistance of the PCM cell.
- a read voltage e.g., a read bias condition, as described below
- the state or logic value of a PCM cell e.g., level of resistance, may be determined by comparing such a cell current during the read process to reference cell currents applied while programming the state or logic value earlier.
- a method of reading a memory cell programmed at a particular program current or voltage may include modifying one or more read bias conditions to compensate for such changes in physical properties of the memory cell.
- compensating for a change in physical properties of a memory cell may be performed in response to an error correction code (ECC) overflow event, described in detail below.
- ECC error correction code
- Such an ECC overflow event may be indicated by an ECC engine.
- ECC engine may be located in a memory device that includes the memory cell.
- a memory controller located in a memory device may include an ECC engine.
- such an ECC engine may be located outside the memory device, such as in a processor, an operating system, and/or an application, just to name a few examples.
- the ECC engine may receive read data from a memory controller, for example, in a memory device and provide the memory controller with error correction code, as described below.
- An ECC engine may generate ECC as part of a process to confirm validity (e.g., correctness) of data read from memory and/or to correct such read data if errors are found.
- a read process may include reading data from memory, generating ECC based, at least in part, on the read data, and using the ECC to detect read errors, if any. In the case of detected read errors, ECC may be used to correct such read errors.
- a write process may include writing data to memory, reading just-written data from the memory to confirm that data was correctly written, generating ECC based, at least in part, on the read data, and using the ECC to detect write errors, if any. In the case of detected write errors, ECC may be used to correct such write errors.
- An ECC engine may be designed for a capability to correct a particular number of errors in data.
- An ECC overflow event may result if the number of errors detected in data exceeds such a capability, wherein such errors in the data may not be corrected.
- a method of reading a memory cell may include a process of modifying a read bias condition based, at least in part, on ECC techniques and/or occurrence of read errors.
- contents of a memory device may be read using a bias condition, such as a read voltage or read current. Read errors resulting from reading contents of the memory device may be counted. The read bias condition may then be modified if the number of read errors exceeds a particular number.
- such a particular number may be based, at least in part, on ECC capability to correct errors. For example, a relatively modest ECC implementation may have a capability to correct two errors while a relatively robust ECC implementation may have a capability to correct four or more errors. Accordingly, a read bias condition may be modified so as to attempt to prevent the number of read errors from exceeding a correcting-capability of an ECC implementation.
- ECC capability to correct errors For example, a relatively modest ECC implementation may have a capability to correct two errors while a relatively robust ECC implementation may have a capability to correct four or more errors.
- a read bias condition may be modified so as to attempt to prevent the number of read errors from exceeding a correcting-capability of an ECC implementation.
- such numbers and details of ECC implementation are merely examples, and claimed subject matter is not so limited.
- an ECC process may be used to supplement programmed (or write) data with parity bits that include enough extra information for the data to be reconstructed if one or more bits of the data become corrupted.
- Such an ECC process may generate coded data (e.g., a codeword) based, at least in part, on programmed data, parity of the programmed data, details of the ECC process, and so on.
- coded data representing stored data may be applied during a process of reading the stored data and/or a process of verify-after-writing the data.
- coded data may be based, at least in part, on parallel encoding and decoding techniques. Such techniques may involve a 2-bit error correcting binary Bose-Chaudhuri-Hocquenghem (BCH) code, Reed-Solomon code, or a Convolutional code, just to name a few examples.
- BCH binary Bose-Chaudhuri-Hocquenghem
- coded data may comprise multiple bits of logic 1's or 0's.
- the number of 1's and the number of 0's of a particular ECC word may be counted. From such counts, a determination may be made as to whether the coded data comprises more 1's than 0's or vise versa. Such a situation may be called “bit imbalance”.
- a bit imbalance may indicate that a threshold voltage and/or resistivity of one or more memory cells drifted from the time the memory cells were programmed. For example, if coded data comprises more 1's than 0's, then a memory cell's threshold voltage may have drifted upward from the memory cell's threshold voltage level during programming.
- a read bias condition such as a read voltage or read current may be decreased to compensate for such upward drift of threshold voltage.
- threshold voltage may have drifted downward from the memory cell's threshold voltage level during programming.
- a read bias condition such as a read voltage or read current may be increased to compensate for such downward drift of threshold voltage.
- increasing or decreasing a read bias voltage or current may be performed stepwise while iteratively determining whether subsequent read error events diminish.
- FIG. 1 is a plot 100 of characteristics of bias signal waveforms that may be used to program a PCM cell, according to an embodiment.
- a PCM cell may be reset by melting phase change material by applying a relatively high amplitude, relatively short duration electrical programming pulse, or bias signal 120 .
- an active region of phase change material may comprise an amorphous region that is dome-shaped, disposed adjacent to a heater element in a PCM cell, for example. Crystallized phase change material may surround such an amorphous region.
- a PCM cell may have a relatively high electrical resistance.
- a PCM cell may be set by crystallizing a dome-shaped amorphous region so that a substantially entire region of phase change material may be crystalline. Such a process may involve ramping down a voltage and/or current of relatively low amplitude, relatively long duration bias signal 110 applied to a PCM cell to crystallize the PCM cell's phase change material. In such a state, a PCM cell may have a relatively low electrical resistance.
- a particular bias signal 120 may be selected to set a PCM cell to a particular state corresponding to a particular range of resistances. For example, bias signal 120 may be decreased in duration and/or amplitude.
- PCM cells may comprise amorphous material that may drift towards higher resistivity, particularly if crystallization of the material is not complete, such as in PCM cells used in a multilevel application.
- PCM cells may comprise amorphous material that may evolve towards a crystalline state, which may involve thermodynamically lower energy states.
- cycling through states of a PCM cell may also affect distribution of read currents or thresholds.
- PCM cells are merely examples, and claimed subject matter is not so limited.
- FIG. 2 is a plot 200 of characteristics of read bias current or voltage values for a memory array, according to an embodiment.
- plot 200 comprises plots of read bias current or voltage as a function of the number of read iterations in a process of reading a memory array.
- read bias current or voltage will hereinafter be referred to as read voltage or read bias.
- Plot 210 comprises increasing steps of read voltage that may be iteratively applied to one or more memory cells.
- read voltage 212 may be applied to one or more memory cells during one iteration of a process to read contents of the memory cells, whereas read voltage 216 may be applied to the memory cells during a subsequent iteration.
- read voltage 222 may be applied to one or more memory cells during one iteration of a process to read contents of the memory cells, whereas read voltage 226 may be applied to the memory cells during a subsequent iteration.
- Such iterations may comprise a process of reading, counting read errors (if any), and/or determining whether to increase read voltage or decrease read voltage based, at least in part, on the number of counted read errors.
- Step size 230 from one read voltage value to a subsequent read voltage value may vary from one implementation to another.
- step size 230 may vary from one iteration step to another iteration step.
- step size 230 may be remain constant from one iteration step to another iteration step.
- step sizes may comprise a voltage in the range of tens to hundreds of millivolts.
- plot 200 shows particular number of iterations, such a number of iterations may vary from one implementation to another.
- such a number of iterations may be based, at least in part, on step size 230 , results of increasing or decreasing bias voltage on the number of read error events, particular algorithms used to read from memory, and so on.
- one particular algorithm may involve determining a rate at which error events diminish as a result of stepping through values of read voltage.
- Another particular algorithm may step through values of read voltage a particular number of times regardless of the effects on resulting read errors.
- any number of algorithms may be involved, and claimed subject matter is not so limited.
- FIG. 3 is a flow diagram of a read process 300 to read contents of a memory array, according to an embodiment.
- a read process may be performed by a memory controller in response to receiving a read request from a processor.
- a processor may execute an application resulting in a read request directed to a memory controller, which may perform read process 300 , though claimed subject matter is not so limited.
- Read process 300 may involve an ECC engine to detect and/or correct read errors, as described above. Accordingly, subsequent to reading contents of a memory array, such an ECC engine may be used to correct read errors that may have occurred. However, an ECC engine may be limited in its capability to correct more than a particular number of errors. An ECC overflow may occur if the number of read errors exceeds such a particular number.
- process 300 may proceed to block 315 where read process 300 may be completed with read errors (if any) being corrected by a capable ECC engine. However, if an ECC overflow has occurred, then the ECC engine is not capable of correcting any or all of the read errors that led to the ECC overflow. In such a case, process 300 may proceed to block 320 where coded data may be retrieved from the ECC engine, for example. As discussed above, such coded data may comprise multiple bits of logic 1's or 0's. In an implementation, coded data may be generated by combining a data word with parity code bits obtained by processing the data word with a deterministic algorithm, for example.
- parity code bits may be compared to parity code bits corresponding to the original data. If the two sets of parity code bits do not match the data word may be changed accordingly until the parity bits match. Consequently, errors present in the data word may be corrected.
- the number of 1's and the number of 0's of a particular ECC word may be counted. From such counts, a determination may be made as to whether the ECC word comprises a bit imbalance, having more 1's than 0's or vise versa.
- a strategy to respond to an ECC overflow may be determined based, at least in part, on whether an ECC word comprises a bit imbalance.
- process 300 may proceed to diamond 350 where a determination may be made as to whether the ECC word comprises a greater number of 0 bits than 1 bits. If so, then process 300 may proceed to block 370 , where read voltage may be increased. Such an increase may compensate for a possibility that threshold voltage of a memory array may have drifted downward from the memory array's threshold voltage level during programming, as discussed above. Such a read voltage increase may be similar to a voltage increase represented by step size 230 shown in FIG. 2 , for example.
- a process to read contents of the memory array may be performed again, this time using a higher read voltage than that used in the previous read (e.g., performed prior to diamond 310 ).
- Such a read process may result in read errors, which may be detected using an ECC word generated by an ECC engine involved in the read process.
- the number of read errors may be fewer than the number of read errors that resulted from the previous read. Although such a number of read errors may be fewer, the number of read errors may still be in excess of an error-correcting capability of an ECC engine.
- Such a case may thus involve an ECC overflow, as determined at diamond 376 .
- process 300 may return to block 370 and read voltage may be increased again to further attempt to compensate for a possibility that threshold voltage of a memory array may have drifted downward from the memory array's threshold voltage level during programming.
- process 300 may loop through an iterative process of increasing read voltage, reading contents of a memory array, determining whether the number of resulting read errors exceeds an error-correcting capability of an ECC engine, and if so, repeating the iterative process. On the other hand, if the number of resulting read errors is within an error-correcting capability of an ECC engine, process 300 may proceed to block 380 , where an ECC word may be refreshed. This may mean that a new data code is generated following a procedure similar or the same as that described above for the ECC engine operation. A new programming phase may restore corrected content, thus nullifying drift that may have occurred for some or all bits, for example.
- process 300 may proceed to block 360 , where read voltage may be decreased.
- read voltage may be decreased.
- Such a decrease may compensate for a possibility that threshold voltage of a memory array may have drifted upward from the memory array's threshold voltage level during programming, as discussed above.
- Such a read voltage decrease may be similar to step size 230 shown in FIG. 2 , for example.
- a process to read contents of the memory array may be performed again, this time using a lower read voltage than that used in the previous read (e.g., performed prior to diamond 310 ).
- Such a read process may result in read errors, which may be detected using an ECC word generated by the ECC engine involved in the read process.
- the number of read errors may be fewer than the number of read errors that resulted from the previous read. Although such a number of read errors may be fewer, the number of read errors may still be in excess of an error-correcting capability of an ECC engine. Such a case may thus involve an ECC overflow, as determined at diamond 366 . In the event of an ECC overflow, process 300 may return to block 360 , and read voltage may be decreased again to further attempt to compensate for a possibility that threshold voltage of a memory array may have drifted upward from the memory array's threshold voltage level during programming.
- process 300 may loop through an iterative process of decreasing read voltage, reading contents of a memory array, determining whether the number of resulting read errors exceeds an error-correcting capability of an ECC engine, and if so, repeating the iterative process. On the other hand, if the number of resulting read errors is within an error-correcting capability of an ECC engine, process 300 may proceed to block 380 , where new coded data may be generated by an ECC engine, as previously explained.
- process 300 may loop through an iterative process of decreasing read voltage, reading contents of a memory array, determining whether the number of resulting read errors exceeds an error-correcting capability of an ECC engine, and if so, repeating the iterative process. On the other hand, if the number of resulting read errors is within an error-correcting capability of an ECC engine, process 300 may proceed to block 380 , where new coded data may be generated by an ECC engine, as previously explained.
- process 300 are merely examples, and claimed subject matter is not so limited.
- FIG. 4 is a flow diagram of a read process 400 to read contents of a memory array, according to another embodiment.
- Process 400 may involve an ECC engine to detect and/or correct read errors, as described above. Similar to the case for process 300 , subsequent to reading contents of a memory array, such an ECC engine may be used to correct read errors that may have occurred. However, an ECC overflow may occur if the number of read errors exceeds an ability of the ECC engine to correct such read errors.
- Process 400 begins with such an ECC overflow at oval 410 .
- a strategy to respond to such an ECC overflow may be determined. In one implementation, for example, a processor executing an application may determine such a strategy (e.g. number of iterations, voltage steps, etc).
- a memory controller may determine such a strategy. In any such case, such determining may be based, at least in part, on the extent of the ECC overflow (e.g., number of read errors beyond an error-correcting ability of an ECC engine), and/or based, at least in part, on whether an ECC word generated by an ECC engine comprises a bit imbalance.
- a strategy to respond to the ECC overflow may include implementing another ECC engine that is more robust (e.g., able to correct more read errors) than the first ECC engine (which led to the ECC overflow).
- Implementing such a relatively robust ECC engine may involve a cost:
- Such a robust ECC engine may utilize a relatively large portion of memory and/or processing resources. For example, relatively large portions of a memory array may be occupied by data involved in ECC processes as well as being occupied by executable code comprising the ECC engine itself.
- a relatively robust ECC engine may take a relatively long time to correct read errors.
- a strategy to respond to an ECC overflow need not involve a more robust ECC engine.
- a strategy to respond to an ECC overflow may be determined based, at least in part, on whether an ECC word comprises a bit imbalance. If so, process 400 may proceed to block 430 to begin a process of modifying read bias. In an implementation, to determine whether read bias is to be increased or decreased, the number of 1's and the number of 0's of a particular ECC word may be counted, for example. If the ECC word comprises a greater number of 0 bits than 1 bits, then process 400 may proceed to block 450 , where read voltage may be increased by a particular amount. As discussed above, such an increase may compensate for a possibility that threshold voltage of a memory array may have drifted downward from the memory array's threshold voltage level during programming.
- a process to read contents of the memory array may be performed again, this time using a higher read voltage than that used in the previous read (e.g., performed prior to the ECC overflow of oval 410 ).
- Such a read process may result in read errors, which may be detected using an ECC word generated by the read process.
- the number of read errors may be fewer than the number of read errors that resulted from the previous read process. Although such a number of read errors may be fewer, the number of read errors may still be in excess of an error-correcting capability of an ECC engine. Such a case may thus involve an ECC overflow, as determined at diamond 454 .
- process 400 may proceed to block 460 , where coded data may be refreshed.
- process 400 may proceed to diamond 456 where a determination may be made as to whether the number of read errors, albeit enough to result in an ECC overflow, has decreased from the number of read errors that occurred prior to increasing read voltage at block 450 . If such a decrease in the number of read errors has occurred, process 400 may return to block 450 , where read voltage may be increased again for another iterative process of modifying read voltage. Accordingly, a determination may again be made at diamond 454 as to whether or not an ECC overflow occurred as a result of recently increased read voltage.
- process 400 may proceed to block 460 to perform a refresh operation, as described above.
- process 400 may again proceed to diamond 456 where a determination may be made as to whether the number of read errors has decreased from the number of read errors that occurred prior to increasing read voltage at block 450 . As described above, if such a decrease in the number of read errors has occurred, process 400 may once again return to block 450 , where read voltage may be increased again for another iterative process of modifying read voltage. However, if such a decrease in the number of read errors has not occurred, process 400 may return to block 420 , where a decision process to determine a strategy to respond to the ECC overflow may be revisited.
- strategy options may include implementing a more robust ECC engine, or any other strategy among a number of possibilities (e.g., changing step size, repeating a process of reading, applying a majority voting scheme, acquiring information from known patterns written into arrays (which may have undergone drift similar to that of read cells, such drift that may be known to a memory controller to provide information for a correction algorithm, for example))
- process 400 may proceed to block 440 , where read voltage may be decreased by a particular amount. As discussed above, such a decrease may compensate for a possibility that threshold voltage of a memory array may have drifted upward from the memory array's threshold voltage level during programming.
- a process to read contents of the memory array may be performed again, this time using a lower read voltage than that used in the previous read (e.g., performed prior to the ECC overflow of oval 410 ). Such a read process may result in read errors, which may be detected using an ECC word generated by the read process.
- the number of read errors may be fewer than the number of read errors that resulted from the previous read process. Although such a number of read errors may be fewer, the number of read errors may still be in excess of an error-correcting capability of an ECC engine. Such a case may thus again involve an ECC overflow, as determined at diamond 444 . If no overflow occurred, then process 400 may proceed to block 460 , where a refresh operation may occur. On the other hand, in the event of an ECC overflow, process 400 may proceed to diamond 446 where a determination may be made as to whether the number of read errors, albeit enough to result in an ECC overflow, has decreased from the number of read errors that occurred prior to decreasing read voltage at block 440 .
- process 400 may return to block 440 , where read voltage may be decreased again for another iterative process of modifying read voltage. Accordingly, a determination may again be made at diamond 444 as to whether or not an ECC overflow occurred as a result of recently decreased read voltage. If ECC overflow did not occur, then process 400 may proceed to block 460 where a refresh operation may occur. On the other hand, process 400 may again proceed to diamond 446 where a determination may be made as to whether the number of read errors has decreased from the number of read errors that occurred prior to decreasing read voltage at block 440 .
- process 400 may once again return to block 440 , where read voltage may be decreased once again for another iterative process of modifying read voltage. However, if such a decrease in the number of read errors has not occurred, process 400 may return to block 420 , where a decision process to determine a strategy to respond to the ECC overflow may be revisited.
- strategy options may include implementing a more robust ECC engine, or any other strategy among a number of possibilities.
- FIG. 5 is a schematic diagram illustrating an exemplary embodiment of a computing system 500 including a memory device 510 .
- a computing device may comprise one or more processors, for example, to execute an application and/or other code.
- memory device 510 may comprise a PCM program buffer, such as program buffer 710 shown in FIG. 1 .
- a computing device 504 may be representative of any device, appliance, or machine that may be configurable to manage memory device 510 .
- Memory device 510 may include a memory controller 515 and a memory 522 .
- computing device 504 may include: one or more computing devices and/or platforms, such as, e.g., a desktop computer, a laptop computer, a workstation, a server device, or the like; one or more personal computing or communication devices or appliances, such as, e.g., a personal digital assistant, mobile communication device, or the like; a computing system and/or associated service provider capability, such as, e.g., a database or data storage service provider/system; and/or any combination thereof.
- computing devices and/or platforms such as, e.g., a desktop computer, a laptop computer, a workstation, a server device, or the like
- personal computing or communication devices or appliances such as, e.g., a personal digital assistant, mobile communication device, or the like
- a computing system and/or associated service provider capability such as, e.g., a database or data storage service provider/system; and/or any combination thereof.
- computing device 504 may include at least one processing unit 520 that is operatively coupled to memory 522 through a bus 540 and a host or memory controller 515 .
- Processing unit 520 is representative of one or more circuits configurable to perform at least a portion of a data computing procedure or process.
- processing unit 520 may include one or more processors, controllers, microprocessors, microcontrollers, application specific integrated circuits, digital signal processors, programmable logic devices, field programmable gate arrays, and the like, or any combination thereof.
- Processing unit 520 may include an operating system configured to communicate with memory controller 515 . Such an operating system may, for example, generate commands to be sent to memory controller 515 over bus 540 .
- memory controller 515 may include an ECC engine 570 comprising circuitry and/or executable code to detect and/or correct read errors, as discussed above.
- an ECC process performed by ECC engine 570 may be used to supplement programmed data with parity bits that include enough extra information for the data to be reconstructed if one or more bits of the data become corrupted.
- an ECC word representing stored data may be applied during a process of reading the stored data and/or a process of verify-after-writing the data.
- Memory controller 515 may perform commands such as read and/or write commands initiated by processing unit 520 .
- memory controller 515 may provide a bias signal, such as that shown in plot 210 or 220 in FIG. 2 , for example, comprising a series of read voltages having individual voltage levels that sequentially increase or decrease from one read process to the next.
- memory controller 515 may read contents of a memory 522 using a bias condition, and consequently count read errors resulting from reading the contents. Further, memory controller 515 may modify such a bias condition if, for example, the number of read errors exceeds a particular threshold number.
- memory controller 515 may determine a codeword representing read contents of memory 522 by using an ECC engine 570 .
- memory controller 515 may compare the number of bits of the codeword comprising a first logic state to the number of bits of the codeword comprising a second logic state. Such comparing may lead to a determination as to whether to increase or decrease the read bias condition for memory 522 .
- Memory 522 is representative of any data storage mechanism.
- Memory 522 may include, for example, a primary memory 524 and/or a secondary memory 526 .
- Memory 522 may comprise PCM, for example.
- Primary memory 524 may include, for example, a random access memory, read only memory, etc. While illustrated in this example as being separate from processing unit 520 , it should be understood that all or part of primary memory 524 may be provided within or otherwise co-located/coupled with processing unit 520 .
- computing system 500 may comprise a program buffer including a PCM array and a PCM reference cell portion to store one or more particular reference states.
- System 500 may also include a controller to apply a bias pulse to a cell of the PCM array to produce a cell current in response to a read operation, and to modify the cell current based, at least in part, on a reference current resulting from the one or more particular reference states.
- System 500 may further include a processor to host one or more applications and to initiate the read operation.
- Secondary memory 526 may include, for example, the same or similar type of memory as primary memory and/or one or more data storage devices or systems, such as, for example, a disk drive, an optical disc drive, a tape drive, a solid state memory drive, etc.
- secondary memory 526 may be operatively receptive of, or otherwise configurable to couple to, a computer-readable medium 528 .
- Computer-readable medium 528 may include, for example, any medium that can carry and/or make accessible data, code, and/or instructions for one or more of the devices in system 500 .
- Computing device 504 may include, for example, an input/output 532 .
- Input/output 532 is representative of one or more devices or features that may be configurable to accept or otherwise introduce human and/or machine inputs, and/or one or more devices or features that may be configurable to deliver or otherwise provide for human and/or machine outputs.
- input/output device 532 may include an operatively configured display, speaker, keyboard, mouse, trackball, touch screen, data port, etc.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Chemical & Material Sciences (AREA)
- Crystallography & Structural Chemistry (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
Description
Claims (20)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/269,869 US9164829B2 (en) | 2011-12-15 | 2014-05-05 | Read bias management to reduce read errors for phase change memory |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/327,673 US8719647B2 (en) | 2011-12-15 | 2011-12-15 | Read bias management to reduce read errors for phase change memory |
US14/269,869 US9164829B2 (en) | 2011-12-15 | 2014-05-05 | Read bias management to reduce read errors for phase change memory |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/327,673 Continuation US8719647B2 (en) | 2011-12-15 | 2011-12-15 | Read bias management to reduce read errors for phase change memory |
Publications (2)
Publication Number | Publication Date |
---|---|
US20140325314A1 US20140325314A1 (en) | 2014-10-30 |
US9164829B2 true US9164829B2 (en) | 2015-10-20 |
Family
ID=48611504
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/327,673 Active 2032-05-16 US8719647B2 (en) | 2011-12-15 | 2011-12-15 | Read bias management to reduce read errors for phase change memory |
US14/269,869 Active US9164829B2 (en) | 2011-12-15 | 2014-05-05 | Read bias management to reduce read errors for phase change memory |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/327,673 Active 2032-05-16 US8719647B2 (en) | 2011-12-15 | 2011-12-15 | Read bias management to reduce read errors for phase change memory |
Country Status (6)
Country | Link |
---|---|
US (2) | US8719647B2 (en) |
EP (1) | EP2791942B1 (en) |
JP (1) | JP5735186B2 (en) |
KR (1) | KR101690395B1 (en) |
CN (1) | CN103988263B (en) |
WO (1) | WO2013089950A1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10929223B2 (en) | 2018-11-19 | 2021-02-23 | Samsung Electronics Co., Ltd. | Memory controller including error correction code circuit, memory system including the memory controller, and operating method of the memory system |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8719647B2 (en) | 2011-12-15 | 2014-05-06 | Micron Technology, Inc. | Read bias management to reduce read errors for phase change memory |
US9257203B2 (en) * | 2012-12-06 | 2016-02-09 | Micron Technology, Inc. | Setting a default read signal based on error correction |
US9070479B2 (en) * | 2013-01-21 | 2015-06-30 | Sandisk Technologies Inc. | Systems and methods of updating read voltages |
US9135993B2 (en) * | 2013-02-07 | 2015-09-15 | Seagate Technology Llc | Temperature based logic profile for variable resistance memory cells |
US9058869B2 (en) * | 2013-02-07 | 2015-06-16 | Seagate Technology Llc | Applying a bias signal to memory cells to reverse a resistance shift of the memory cells |
US9280412B2 (en) * | 2013-03-12 | 2016-03-08 | Macronix International Co., Ltd. | Memory with error correction configured to prevent overcorrection |
US9542258B1 (en) * | 2013-03-15 | 2017-01-10 | Western Digital Technologies, Inc. | System and method for error-minimizing voltage threshold selection |
US20160203877A1 (en) | 2015-01-08 | 2016-07-14 | Delphi Technologies, Inc. | Memory device with data validity check |
TWI569270B (en) | 2015-01-22 | 2017-02-01 | 旺宏電子股份有限公司 | Memory operating method and associated memory device |
US9842662B2 (en) * | 2015-02-16 | 2017-12-12 | Texas Instruments Incorporated | Screening for data retention loss in ferroelectric memories |
JP6520576B2 (en) | 2015-08-27 | 2019-05-29 | ソニー株式会社 | Memory, information processing system, and memory control method |
TWI643196B (en) * | 2017-06-22 | 2018-12-01 | 點序科技股份有限公司 | Flash memory apparatus and data reading method thereof |
US10366763B2 (en) | 2017-10-31 | 2019-07-30 | Micron Technology, Inc. | Block read count voltage adjustment |
CN109933424B (en) * | 2019-01-22 | 2020-11-13 | 浙江工商大学 | PCM memory line multiplexing method based on data cyclic shift |
US10908845B1 (en) * | 2019-08-27 | 2021-02-02 | Micron Technology, Inc. | Managing threshold voltage drift based on a temperature-dependent slope of the threshold voltage drift of a memory sub-system |
KR20220108144A (en) * | 2019-12-03 | 2022-08-02 | 마이크론 테크놀로지, 인크. | Memory device and method of operation thereof |
CN113284533B (en) * | 2020-02-20 | 2023-10-13 | 华邦电子股份有限公司 | Memory device and method of adjusting parameters for memory device |
US11211122B1 (en) * | 2020-08-27 | 2021-12-28 | Micron Technology, Inc. | Increase of a sense current in memory |
US11494114B1 (en) * | 2021-04-26 | 2022-11-08 | Micron Technology, Inc. | Read threshold adjustment techniques for non-binary memory cells |
US11443828B1 (en) * | 2021-04-26 | 2022-09-13 | Micron Technology, Inc. | Read threshold adjustment techniques for memory |
Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4864573A (en) | 1986-09-25 | 1989-09-05 | Robert Bosch Gmbh | Apparatus for reproducing a pcm modulated signal, comprising a muting circuit |
US6486661B2 (en) * | 2001-02-12 | 2002-11-26 | Delphi Technologies, Inc. | Sensor bias drift compensation |
US20070011513A1 (en) | 2005-06-13 | 2007-01-11 | Intel Corporation | Selective activation of error mitigation based on bit level error count |
US7164596B1 (en) * | 2005-07-28 | 2007-01-16 | Texas Instruments Incorporated | SRAM cell with column select line |
US7333364B2 (en) | 2000-01-06 | 2008-02-19 | Super Talent Electronics, Inc. | Cell-downgrading and reference-voltage adjustment for a multi-bit-cell flash memory |
WO2008057822A2 (en) | 2006-11-03 | 2008-05-15 | Sandisk Corporation | Nonvolatile memory with variable read threshold |
US7400526B2 (en) | 2005-06-28 | 2008-07-15 | Infineon Technologies Ag | Memory element, memory read-out element and memory cell |
JP2009099199A (en) | 2007-10-17 | 2009-05-07 | Toshiba Corp | Nonvolatile semiconductor memory device |
US20090164710A1 (en) | 2007-12-20 | 2009-06-25 | Samsung Electronics Co., Ltd. | Semiconductor memory system and access method thereof |
US20090199074A1 (en) | 2008-02-05 | 2009-08-06 | Anobit Technologies Ltd. | Parameter estimation based on error correction code parity check equations |
KR20090089657A (en) | 2008-02-19 | 2009-08-24 | 삼성전자주식회사 | Memory device and memory data read method |
US20090292969A1 (en) | 2008-05-21 | 2009-11-26 | Chun Fung Man | Adjustable read reference for non-volatile memory |
US20090290418A1 (en) | 2008-05-20 | 2009-11-26 | Jung Chul Han | Method of verifying a program operation in a non-volatile memory device |
US20110182119A1 (en) | 2010-01-27 | 2011-07-28 | Fusion-Io, Inc. | Apparatus, system, and method for determining a read voltage threshold for solid-state storage media |
US20110219288A1 (en) | 2010-03-05 | 2011-09-08 | Samsung Electronics Co., Ltd | Method of operating nonvolatile memory device, method of operating controller, and method of operating memory system including the same |
US8380909B2 (en) | 2009-04-08 | 2013-02-19 | Google Inc. | Multiple command queues having separate interrupts |
US8719647B2 (en) | 2011-12-15 | 2014-05-06 | Micron Technology, Inc. | Read bias management to reduce read errors for phase change memory |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102004015928A1 (en) * | 2004-03-31 | 2005-10-27 | Infineon Technologies Ag | Write / erase method for resistively switching memory devices |
US7904788B2 (en) * | 2006-11-03 | 2011-03-08 | Sandisk Corporation | Methods of varying read threshold voltage in nonvolatile memory |
JP5657876B2 (en) * | 2009-10-07 | 2015-01-21 | ピーエスフォー ルクスコ エスエイアールエルPS4 Luxco S.a.r.l. | Semiconductor memory device |
KR101678886B1 (en) * | 2009-11-25 | 2016-11-23 | 삼성전자주식회사 | Multi-level Phase-change Memory Device and Operation Method thereof |
-
2011
- 2011-12-15 US US13/327,673 patent/US8719647B2/en active Active
-
2012
- 2012-11-08 EP EP12858227.7A patent/EP2791942B1/en active Active
- 2012-11-08 WO PCT/US2012/064224 patent/WO2013089950A1/en active Application Filing
- 2012-11-08 JP JP2014547246A patent/JP5735186B2/en active Active
- 2012-11-08 CN CN201280061880.2A patent/CN103988263B/en active Active
- 2012-11-08 KR KR1020147019047A patent/KR101690395B1/en active IP Right Grant
-
2014
- 2014-05-05 US US14/269,869 patent/US9164829B2/en active Active
Patent Citations (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4864573A (en) | 1986-09-25 | 1989-09-05 | Robert Bosch Gmbh | Apparatus for reproducing a pcm modulated signal, comprising a muting circuit |
US7333364B2 (en) | 2000-01-06 | 2008-02-19 | Super Talent Electronics, Inc. | Cell-downgrading and reference-voltage adjustment for a multi-bit-cell flash memory |
US6486661B2 (en) * | 2001-02-12 | 2002-11-26 | Delphi Technologies, Inc. | Sensor bias drift compensation |
US20070011513A1 (en) | 2005-06-13 | 2007-01-11 | Intel Corporation | Selective activation of error mitigation based on bit level error count |
US7400526B2 (en) | 2005-06-28 | 2008-07-15 | Infineon Technologies Ag | Memory element, memory read-out element and memory cell |
US7164596B1 (en) * | 2005-07-28 | 2007-01-16 | Texas Instruments Incorporated | SRAM cell with column select line |
WO2008057822A2 (en) | 2006-11-03 | 2008-05-15 | Sandisk Corporation | Nonvolatile memory with variable read threshold |
JP2009099199A (en) | 2007-10-17 | 2009-05-07 | Toshiba Corp | Nonvolatile semiconductor memory device |
US20090164710A1 (en) | 2007-12-20 | 2009-06-25 | Samsung Electronics Co., Ltd. | Semiconductor memory system and access method thereof |
US20090199074A1 (en) | 2008-02-05 | 2009-08-06 | Anobit Technologies Ltd. | Parameter estimation based on error correction code parity check equations |
KR20090089657A (en) | 2008-02-19 | 2009-08-24 | 삼성전자주식회사 | Memory device and memory data read method |
US7872909B2 (en) | 2008-02-19 | 2011-01-18 | Samsung Electronics Co., Ltd. | Memory device and memory data read method |
US20090290418A1 (en) | 2008-05-20 | 2009-11-26 | Jung Chul Han | Method of verifying a program operation in a non-volatile memory device |
US20090292969A1 (en) | 2008-05-21 | 2009-11-26 | Chun Fung Man | Adjustable read reference for non-volatile memory |
US8380909B2 (en) | 2009-04-08 | 2013-02-19 | Google Inc. | Multiple command queues having separate interrupts |
US20110182119A1 (en) | 2010-01-27 | 2011-07-28 | Fusion-Io, Inc. | Apparatus, system, and method for determining a read voltage threshold for solid-state storage media |
US20110219288A1 (en) | 2010-03-05 | 2011-09-08 | Samsung Electronics Co., Ltd | Method of operating nonvolatile memory device, method of operating controller, and method of operating memory system including the same |
US8719647B2 (en) | 2011-12-15 | 2014-05-06 | Micron Technology, Inc. | Read bias management to reduce read errors for phase change memory |
CN103988263A (en) | 2011-12-15 | 2014-08-13 | 美光科技公司 | Read bias management to reduce read errors for phase change memory |
EP2791942A1 (en) | 2011-12-15 | 2014-10-22 | Micron Technology, INC. | Read bias management to reduce read errors for phase change memory |
Non-Patent Citations (4)
Title |
---|
International Preliminary Report and Written Opinion Appln. No. PCT/US2012/064224, issued on Jun. 17, 2014. |
International Search Report and Written Opinion for Appln. No. PCT/US2012/064224, mailed on Mar. 29, 2013. |
Notice of Allowance issued on Mar. 31, 2015 in corresponding Japanese Patent Application No. 2014-547246. |
Supplementary European Search Report dated Jun. 24, 2015 issued in corresponding European Patent Application No. 12858227.7. |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10929223B2 (en) | 2018-11-19 | 2021-02-23 | Samsung Electronics Co., Ltd. | Memory controller including error correction code circuit, memory system including the memory controller, and operating method of the memory system |
Also Published As
Publication number | Publication date |
---|---|
KR20140102739A (en) | 2014-08-22 |
EP2791942B1 (en) | 2019-05-15 |
EP2791942A4 (en) | 2015-07-22 |
US20130159796A1 (en) | 2013-06-20 |
KR101690395B1 (en) | 2016-12-27 |
US20140325314A1 (en) | 2014-10-30 |
US8719647B2 (en) | 2014-05-06 |
EP2791942A1 (en) | 2014-10-22 |
JP2015500548A (en) | 2015-01-05 |
WO2013089950A1 (en) | 2013-06-20 |
CN103988263B (en) | 2017-03-08 |
CN103988263A (en) | 2014-08-13 |
JP5735186B2 (en) | 2015-06-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9164829B2 (en) | Read bias management to reduce read errors for phase change memory | |
US8913426B2 (en) | Read distribution management for phase change memory | |
KR101970450B1 (en) | System and method for lower page data recovery in a solid state drive | |
JP5478861B2 (en) | How to program phase change materials | |
US9007854B1 (en) | Method and system for optimized soft decoding in a data storage device | |
US11120882B2 (en) | Error recovery of data in non-volatile memory during read | |
US8910000B2 (en) | Program-disturb management for phase change memory | |
US20140359202A1 (en) | Reading voltage calculation in solid-state storage devices | |
US8391076B2 (en) | Nonvolatile memory device using interleaving technology and programming method thereof | |
Namba et al. | Non-binary orthogonal latin square codes for a multilevel phase charge memory (PCM) | |
CN115248744A (en) | Read threshold adjustment techniques for non-binary memory cells | |
Kwon et al. | Reliability enhanced heterogeneous phase change memory architecture for performance and energy efficiency | |
US8869009B2 (en) | Read commands specifying error performance | |
US10691536B2 (en) | Method to select flash memory blocks for refresh after read operations | |
CN115248743A (en) | Read threshold adjustment techniques for memory | |
TWI493562B (en) | Memory with error correction configured to prevent overcorrection | |
WO2018003050A1 (en) | Device including nonvolatile memory device and method for controlling correction of errors | |
Liu et al. | Improving multilevel PCM reliability through age-aware reading and writing strategies | |
Imran et al. | Enrely: A reliable MLC PCM architecture based on data encoding |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FEPP | Fee payment procedure |
Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
AS | Assignment |
Owner name: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT, CALIFORNIA Free format text: SECURITY INTEREST;ASSIGNOR:MICRON TECHNOLOGY, INC.;REEL/FRAME:038669/0001 Effective date: 20160426 Owner name: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGEN Free format text: SECURITY INTEREST;ASSIGNOR:MICRON TECHNOLOGY, INC.;REEL/FRAME:038669/0001 Effective date: 20160426 |
|
AS | Assignment |
Owner name: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT, MARYLAND Free format text: PATENT SECURITY AGREEMENT;ASSIGNOR:MICRON TECHNOLOGY, INC.;REEL/FRAME:038954/0001 Effective date: 20160426 Owner name: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL Free format text: PATENT SECURITY AGREEMENT;ASSIGNOR:MICRON TECHNOLOGY, INC.;REEL/FRAME:038954/0001 Effective date: 20160426 |
|
AS | Assignment |
Owner name: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT, CALIFORNIA Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE REPLACE ERRONEOUSLY FILED PATENT #7358718 WITH THE CORRECT PATENT #7358178 PREVIOUSLY RECORDED ON REEL 038669 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY INTEREST;ASSIGNOR:MICRON TECHNOLOGY, INC.;REEL/FRAME:043079/0001 Effective date: 20160426 Owner name: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGEN Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE REPLACE ERRONEOUSLY FILED PATENT #7358718 WITH THE CORRECT PATENT #7358178 PREVIOUSLY RECORDED ON REEL 038669 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY INTEREST;ASSIGNOR:MICRON TECHNOLOGY, INC.;REEL/FRAME:043079/0001 Effective date: 20160426 |
|
AS | Assignment |
Owner name: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT, ILLINOIS Free format text: SECURITY INTEREST;ASSIGNORS:MICRON TECHNOLOGY, INC.;MICRON SEMICONDUCTOR PRODUCTS, INC.;REEL/FRAME:047540/0001 Effective date: 20180703 Owner name: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT, IL Free format text: SECURITY INTEREST;ASSIGNORS:MICRON TECHNOLOGY, INC.;MICRON SEMICONDUCTOR PRODUCTS, INC.;REEL/FRAME:047540/0001 Effective date: 20180703 |
|
AS | Assignment |
Owner name: MICRON TECHNOLOGY, INC., IDAHO Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT;REEL/FRAME:047243/0001 Effective date: 20180629 |
|
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: MICRON TECHNOLOGY, INC., IDAHO Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT;REEL/FRAME:050937/0001 Effective date: 20190731 |
|
AS | Assignment |
Owner name: MICRON TECHNOLOGY, INC., IDAHO Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT;REEL/FRAME:051028/0001 Effective date: 20190731 Owner name: MICRON SEMICONDUCTOR PRODUCTS, INC., IDAHO Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT;REEL/FRAME:051028/0001 Effective date: 20190731 |
|
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 |