US8161334B1 - Externally maintained remap information - Google Patents
Externally maintained remap information Download PDFInfo
- Publication number
- US8161334B1 US8161334B1 US12/495,032 US49503209A US8161334B1 US 8161334 B1 US8161334 B1 US 8161334B1 US 49503209 A US49503209 A US 49503209A US 8161334 B1 US8161334 B1 US 8161334B1
- Authority
- US
- United States
- Prior art keywords
- memory
- memory device
- remap
- address
- information
- 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, expires
Links
Images
Classifications
-
- 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/70—Masking faults in memories by using spares or by reconfiguring
- G11C29/76—Masking faults in memories by using spares or by reconfiguring using address translation or modifications
-
- 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
- G11C2029/0409—Online test
Definitions
- Subject matter disclosed herein relates to remapping memory devices.
- Memory devices are employed in many types of electronic devices, such as computers, cell phones, PDA's, data loggers, and navigational equipment, just to name a few examples.
- electronic devices such as computers, cell phones, PDA's, data loggers, and navigational equipment, just to name a few examples.
- various types of nonvolatile memory devices may be employed, such as NAND or NOR flash memories, SRAM, DRAM, and phase-change memory, just to name a few examples.
- writing or programming processes may be used to store information in such memory devices, while a read process may be used to retrieve stored information.
- Such nonvolatile memory devices may comprise memory cells that slowly deteriorate over time, leading to an increasing probability that a read and/or write error may occur upon accessing such a memory cell. Errors may also result from manufacture defects and/or marginal memory device construction, just to name a few examples. Accordingly, an error correction process may be employed to correct such errors as they occur.
- an error correction coding (ECC) engine may be employed in a memory device in order to correct errors generated in the memory device.
- ECC engine may be limited in its ability to correct errors. If the number of errors increases beyond such a limit, such errors may become difficult or impossible to correct. Regions of a memory device that produce such a high number of errors may be subsequently avoided during read/write processes, for example. In such a case, spare regions of the memory device may then replace such error-prone memory regions. Accordingly, a memory address directed to an error-prone memory region may be remapped to a replacement memory region.
- FIG. 1 is a schematic view of a memory configuration, according to an embodiment.
- FIG. 2 is a flow diagram of a memory read/write process, according to an embodiment.
- FIG. 3 is a flow diagram of a memory read/write process, according to another embodiment.
- FIG. 4 is a schematic view of a vector remap table, according to an embodiment.
- FIG. 5 is a schematic block diagram of a memory system, according to an embodiment.
- FIG. 6 is a schematic block diagram of a memory system, according to another embodiment.
- FIG. 7 is a schematic block diagram of a computing system and a memory device, according to an embodiment.
- remap information regarding a memory device may be maintained in a storage unit external to the memory device.
- Such remap information may comprise remap vectors that provide a remap address to substitute for an address provided by a processor, for example, as part of a read/write request directed to the memory device.
- Maintaining remap information external to the memory device may provide finer-grained control of which areas of memory may be remapped. For example, such an external storage unit may allow discrete addressing to store remap vectors in relatively small portions of a memory space.
- a memory device may utilize block and/or sector addressing so that storing merely a single remap vector, for example, may occupy a relatively large portion of the memory device. Accordingly, storing and maintaining remap information external to such a memory device may provide a way to optimize memory space utilization of the memory device.
- a memory device may comprise a volatile memory if an external storage unit comprises a non-volatile storage unit, since remap information may be maintained in the external storage unit even during a power-down.
- a memory device may physically comprise such an external storage unit, such that a single die or integrated circuit chip comprises both a memory device and an external storage unit.
- a memory device may be distinct from an external storage unit and such a memory device and external storage unit may be separately accessed through a processor and/or memory controller, for example. In other words, such an external storage unit may be processed independently of a memory device.
- a memory device may comprise RAM that is part of a host memory which is distinct from an external storage unit comprising a disk drive: accordingly, such an external storage unit and a memory device may be individually accessed through separate processors and/or memory controllers via a bus.
- an external storage unit may reside on a memory device but still be distinct from such a memory device.
- such a memory device may comprise a memory module that includes multiple memory dice: while the memory dice may be accessed via a single processor and/or memory controller, an external storage unit may be accessed through a separate processor and/or memory controller.
- Externally storing and maintaining remap information regarding a memory device may also result in reduced latency and/or increased use of available memory capacity compared to maintaining remap information within the memory device.
- computing power and memory bandwidth inside a memory device is a fraction of that available externally, there may be advantages to processing remap information externally. If remap information comprises a relatively large information or requires a complex algorithm to process, then significant increases in computing power may increase the speed at which remap information is found to satisfy a given request. If an external CPU and memory is faster than that available internally then the latency to lookup remap information may be much lower if using the external CPU.
- such remap information may be generated on-the-fly, for example, during run-time processes such as read/write processes initiated by a processor, wherein data read from a memory device is checked for errors, as described below.
- an initialization process may be performed by a system to include scanning for error-prone portions of a memory device.
- a memory device may comprise memory cells that slowly deteriorate over time, which may lead to an increased probability that one or more errors may occur while reading such a memory device.
- a memory device may also comprise defective and/or marginally functional memory cells as a result of their manufacture.
- ECC error correction codes
- a determination may be made as to whether or not to continue to utilize such error-prone cells. As will be explained in further detail below, such a determination may be based, at least in part, on a comparison of the number of such errors to an error threshold, which may be defined during a design stage of a memory device, for example.
- use of particular memory cells may be discontinued before such cells display an excess number of errors.
- use of error-prone memory cells may be discontinued if such memory cells produce a number of errors that approaches an error threshold.
- Such a threshold need not be reached, for example, in order to determine that use of memory cells may be discontinued. Accordingly, observing a number of errors approaching an error threshold may be a way to predict that particular memory cells may soon produce too many errors, so use of such error-prone memory cells may be stopped before the memory cells actually begin to critically malfunction, for example. If use of particular memory cells is to be discontinued, then replacement memory cells may be selected in a manner that maintains an overall memory device capacity.
- a process to maintain a size capacity of a memory device may include remapping an error-prone memory location to a properly functioning memory location, without a loss of overall system memory space (e.g., storage device capacity). Such remapping may be based, at least in part, on information regarding a quantity and/or frequency of errors occurring as a result of reading from an error-prone memory location.
- memory location refers to a portion of a memory device that may be accessed, e.g., via a read and/or write process, using an address or addresses to identify such a memory location and/or portion.
- an ECC engine may be used to determine a bit error rate and/or the number of bit errors associated with reading a particular portion of a memory. Subsequently, the bit error rate and/or number of bit errors may be compared to an error threshold, which may comprise a substantial limit to an acceptable number of errors, for example. Depending on an outcome of such a comparison, a decision may be made regarding whether to retire, e.g., discontinue use of, the particular portion of memory producing the errors.
- a process of retiring a portion of a memory device may include moving digital signals representative of data stored in the to-be-retired portion of the memory device to another portion of the memory device.
- such digital signals representing data relocated from a retired portion of a memory device may be moved to a spare portion of the memory device.
- a spare portion of memory may include a physical location of the memory device not initially recognized or considered as part of the full capacity of the memory device, as explained in more detail below.
- a process of retiring a portion of a memory device may also include remapping an address of a to-be-retired portion of the memory device to correspond to an address of a new, spare portion of the memory device.
- Such remapped addresses may be stored in a storage unit external to the memory device, for example, as explained in detail below.
- Such processes are merely examples, and claimed subject matter is not so limited.
- a process such as that described above may involve a memory device comprising a phase-change memory (PCM) device.
- PCM phase-change memory
- a bit error rate and/or a number of bit errors produced by portions of the PCM may increase.
- Such errors may be corrected using an ECC engine and/or other such error correcting techniques, for example.
- a number of errors may increase beyond a capability of such error-correcting techniques. Therefore, it may be desirable to retire such memory portions upon an indication of a trend that such memory portions have been or are beginning to produce an excessive number of errors.
- Embodiments such as those described above, may allow successful use of storage devices involving relatively less reliable technologies. For example, a die previously considered unusable may be employed using embodiments described herein. Also, such embodiments may extend a lifetime of a storage device to that of a majority of its memory cells rather than the life of a relatively few of its memory cells.
- FIG. 1 is a schematic view of a memory configuration, according to an embodiment.
- a memory device 100 may be partitioned into a main memory 110 and a spare memory 120 .
- Memory device 100 may comprise NAND or NOR flash memories, SRAM, DRAM, or PCM, just to name a few examples.
- Memory device 100 may comprise a user-addressable memory space including such main and spare memory portions and/or one or more other memory portions, which may or may not be contiguous with one another, and may or may not reside on a single device.
- Main memory 110 and spare memory 120 may comprise independent addressable spaces that may be accessed by read, write, and/or erase processes, for example.
- one or more portions of memory device 100 may store digital signals representative of data and/or information as expressed by a particular state of memory device 100 .
- an electronic signal representative of data and/or information may be “stored” in a portion of memory device by affecting or changing the state of such portions of memory device 100 to represent data and/or information as binary information (e.g., ones and zeros).
- binary information e.g., ones and zeros.
- such a change of state of the portion of memory to store a signal representative of data and/or information constitutes a transformation of memory device 100 to a different state or thing.
- Memory device 100 may be configured to initially comprise main memory 110 corresponding to the fully usable capacity of memory device 100 .
- Such an initial configuration may additionally comprise spare memory 120 that need not be included in determining memory device capacity.
- spare memory 120 may be used to replace portions of main memory 110 .
- details of such a memory configuration are merely examples, and claimed subject matter is not so limited.
- FIG. 2 is a flow diagram of a memory read/write process 200 , according to an embodiment.
- a read/write process to read from or to write to a portion of a memory device may be initiated, for example, by a system application that provides one or more addresses to respectively identify one or more memory locations from where stored data is to be read or to where write data is to be stored.
- one or more such addresses may be provided to a controller, for example, where a search may be conducted for possible remapped addresses corresponding to the provided addresses.
- a controller may maintain remap information regarding a memory device to which a read/write process is directed.
- Such remap information may comprise remap vectors to direct a read/write process to a portion of the memory device that is a substitute for a retired portion of the memory device.
- Such remap information may also comprise a database to track which portions of the memory device are retired and/or a table that associates original addresses with corresponding remapped addresses.
- Such remap information, maintained by a controller may be stored in a storage unit or medium that is external to a memory device to which such remap information is directed.
- a storage unit being external to a memory device means that the storage unit is operationally separated from the memory device by at least one memory controller, for example.
- remap information may be maintained on a memory device, but may be stored in such a way that it is not useful to the memory device itself.
- a remap table may be read from extra space on a memory device to RAM during a boot process, and subsequently update the on-device-copy as remap table contents change.
- a search through externally stored remap information may be performed to find a possible remap address that corresponds to an original address included with a read/write request.
- a determination may be made, at block 230 , whether an incoming original address is associated with a corresponding remapped address stored in the external memory. If not, wherein a search for a remapped address associated with a particular original address returned a null result, then read/write process 200 may proceed to block 240 , where the original address may be used to direct the read/write process to a main portion of a memory device.
- data read from the original address of the memory device may be provided to error-checking hardware and/or software, such as an ECC engine, an ECC decoder, and/or other such error correcting algorithms, for example.
- error-checking hardware and/or software such as an ECC engine, an ECC decoder, and/or other such error correcting algorithms, for example.
- data may be read from the original address of the memory device subsequent to a data write, in order to confirm correct storage of the data, for example.
- data read from the original address of the memory device may be provided to error-checking hardware and/or software.
- read/write process 200 may proceed to block 245 , where the remapped address may be substituted for the original address.
- the remapped address may be used to read/write from/to a memory device.
- a spare portion of the memory device may be read from or written to if a remapped address is utilized, but such a limitation is merely an example.
- data read from the remapped address of the memory device may be provided to error-checking hardware and/or software, such as an ECC engine and/or other such error correcting techniques, for example.
- error-checking hardware and/or software such as an ECC engine and/or other such error correcting techniques, for example.
- FIG. 3 is a flow diagram of a memory read/write process 300 , according to an embodiment.
- a read process to read digital signals representative of information stored in a portion of a memory device may be initiated, for example, by a system application that provides one or more addresses to respectively identify one or more memory locations from where stored digital signals representative of data is to be read.
- a write process at block 305 such a process to write digital signals representative of information to be stored in a portion of a memory device may be initiated, for example, by a system application that provides one or more addresses to respectively identify one or more memory locations to where stored digital signals representative of data is to be written.
- ECC hardware and/or software by parity checking read data for example, may be used to check and/or correct errors in the data.
- read data may comprise recently written data in order to confirm accuracy of the writing process, for example.
- initially read data may be compared to corrected read data, thus determining the number of errors that occurred in the memory read/write process, as at block 310 .
- Such a number of errors may be expressed as a bit error rate (BER), which may comprise a ratio of the number of error bits to the total number of read bits, for example.
- BER bit error rate
- a BER or number of errors resulting from reading from a portion of a memory device may be compared to an error threshold value, which may comprise a value that represents a maximum acceptable BER or maximum acceptable number of errors, beyond which, for example, additional errors may not be successfully corrected: such an error threshold value may comprise a number that represents a substantially upper limit of a BER or a number of errors that are acceptable for a particular memory device, such as memory device 100 shown in FIG. 1 , for example. At or below such an error threshold value, ECC hardware and/or software may be capable of correcting read errors. But above such an error threshold, there may be a relatively high probability that at least some read errors may not be correctable, or worse, data may be lost.
- a decision is made as to whether to retire a portion of a memory device based at least in part on whether reading from or writing to such a portion of memory results in too many errors. If such a number of errors is at or below an error threshold, then read/write process 300 may continue to be directed to an original address of a memory device provided by an application that initiated the read/write process, as at block 340 . On the other hand, if such a number of errors is above an error threshold, then read/write process 300 may proceed to block 350 , where, for example, a process may begin to retire a portion of memory that leads to too many errors.
- data initially stored in such an error-prone memory portion may be moved to another memory portion that is known to be functional and/or healthy.
- a new memory portion may comprise a portion of spare memory, such as spare memory 120 shown in FIG. 1 , for example.
- a memory address, or multiple memory addresses, to identify the original memory location(s) of the data may be remapped to identify the new memory portion to where data is relocated.
- remapping may comprise assigning a new address to correspond, via a vector for example, to an original address so that a call directed to the original address may be redirected to a new address specifying the location of relocated data.
- remapping may comprise assigning a new address to correspond, via a vector for example, to an original address so that the write request directed to the original address may be redirected to a new address specifying the location where data is to be written.
- read/write process 300 may continue, as at block 340 .
- details of such a memory read/write process are merely examples, and claimed subject matter is not so limited.
- FIG. 4 is a schematic view of a vector remap table 400 , according to an embodiment.
- Information included in table 400 need not be formatted in a table; such information, for example, may comprise an array or other techniques for organizing such information. Such information and organization regarding same, may be stored as digital signals representing such information in an external memory, for example.
- Column 410 may comprise a list of original addresses 440 , such as addr 1 , addr 2 , addr 3 , and so on; status column 420 may comprise information regarding whether a corresponding original address listed in column 410 has been remapped; and column 430 may comprise a list of remapped addresses 450 , such as addr 1 ′, addr 2 ′, addr 3 ′, and so on, corresponding to original addresses 440 , listed in column 410 .
- original addresses 440 may comprise one or more addresses included in a read request by an application and/or system inquiring about information stored in memory device 100 at the location of the one or more addresses.
- original addresses 440 may comprise one or more addresses included in a write request by an application and/or system requesting a process to store information in memory device 100 at the location of the one or more addresses.
- Status column 420 may comprise metadata to describe whether an original address 440 has been remapped. If such remapping has occurred, then column 430 may comprise a remapped address 450 corresponding to an original address 440 . To illustrate by an example according to FIG.
- a driver may receive a logical address and subsequently forward a physical address and a vector 460 to a memory device.
- a vector may comprise information to allow the memory device to internally decode a read operation.
- Such a vector may also be used for ECC, for example.
- ECC ECC
- FIG. 5 is a block diagram of a memory system 500 , according to an embodiment.
- a controller 510 may be configured to receive one or more signals indicative of a read/write request 505 that comprises an address specifying a location of a memory device 525 where data is to be read or written.
- Memory device 525 may comprise main memory 520 and spare memory 530 , as described above, for example.
- Controller 510 may compare incoming addresses accompanying read/write requests with contents stored in external memory 515 , which may include remapped addresses associated with original addresses.
- External memory 515 may be operationally separated from memory 525 by controller 510 , for example. Using such a comparing process, controller 510 may determine whether read/write request 505 comprises an address that has been remapped.
- controller 510 may direct read/write request 505 to either main memory 520 or spare memory 530 to read or write data. For example, if the address of read/write request 505 has not been remapped, then controller 510 may forward the read/write request to main memory 520 , whereas if such an address has been remapped, then controller 510 may modify read/write request 505 to comprise a remapped address that may be directed to spare memory 530 . Subsequently, either main memory 520 or spare memory 530 may provide read data 535 to an error detection block 540 , which may comprise an error counter and/or an ECC engine, for example.
- error detection block 540 which may comprise an error counter and/or an ECC engine, for example.
- error detection block 540 comprising an ECC engine may be disposed in a die element of memory device 525 .
- error detection block 540 comprising an ECC engine may be provided at a system level, such as in an application, for example. Error detection block 540 may detect and/or correct any errors present in read data 535 , and may express such detected errors as a BER and/or number of bit errors. Accordingly, error detection block 540 may provide corrected read data 545 to an entity that introduced read/write request 505 , such as an application and/or host system. Error detection block 540 may also provide information regarding the number of errors present in read data 535 to a compare engine 550 .
- error detection block 540 comprises an ECC engine disposed in a die element of memory device 525
- error information may be accessible by a compare engine application at a system level.
- an ECC engine may include an error information register available for access by compare engine 550 , which may compare the number of detected errors to an error threshold.
- such an error threshold may comprise a limit on an acceptable BER or number of errors.
- Compare engine 550 may provide results 560 of such a comparison to controller 510 . Based at least in part on such comparison results, controller 510 may determine whether to retire a particular portion of memory device 525 . If such a comparison indicates that a particular portion of memory device 525 resulted in an excess number of bit errors during a read/write process, for example, then controller 510 may initiate a process to retire the error-prone portion of memory.
- Such a retiring process may include relocating data stored in the retiring portion of memory to another portion of memory. For example, digital signals representative of data may be moved from a particular portion of main memory 520 to be stored in spare memory 530 .
- controller 510 may modify an address that identified the retiring portion of memory to an address that identifies the new portion of memory to contain the relocated data. Such a modified, remapped address may then be written into external memory 515 , where it may be associated with the original address, as described above.
- external memory 515 such an implementation of a memory system is merely an example, and claimed subject matter is not so limited.
- FIG. 6 is a schematic block diagram of a system 600 , according to an embodiment.
- a user application may be implemented in a processor 610 to provide a read or write request to controller 620 .
- a read/write request may accompany an original read or write address.
- controller 620 may compare an original read or write address to remap information stored in external memory 625 , which may include a table listing original read/write addresses and corresponding remapped read/write addresses, for example. Accordingly, controller 620 may provide to memory 630 a read/write request comprising an original read/write address or a remapped read/write address, depending, at least in part, on whether a particular original read/write address has been remapped.
- External memory 625 may be operationally separated from memory 630 by controller 620 , for example.
- Memory 630 may comprise a main memory portion and/or a spare memory portion, as shown in FIG. 1 for example.
- memory 630 may provide read data to an ECC engine 635 , which may comprise an error counter and/or an ECC engine, for example.
- ECC engine 635 may be disposed in a die element of memory 630 .
- ECC engine 635 may detect and/or correct any errors present in read data, and may express such detected errors as a BER and/or number of bit errors, for example. Accordingly, ECC engine 635 may provide corrected read data to processor 610 and also provide information regarding the number of errors present in read data to controller 620 .
- controller 620 may, based at least in part on the number of such errors, determine whether to retire a particular portion of memory 630 using one or more remap processes described above, for example. Remap information resulting from such remap processes may then be stored in external memory 625 .
- remap processes described above, for example.
- FIG. 7 is a schematic diagram illustrating an exemplary embodiment of a computing system 700 including a memory device 710 , which may be partitioned into main and spare portions as discussed above, for example.
- a computing device 704 may be representative of any device, appliance and/or machine that may be configurable to manage memory device 710 .
- Memory device 710 may include a memory controller 715 and a memory 722 .
- computing device 704 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 704 may include at least one processing unit 720 that is operatively coupled to memory 722 through a bus 740 and a host or memory controller 715 .
- Processing unit 720 is representative of one or more circuits configurable to perform at least a portion of a data computing procedure or process.
- processing unit 720 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 720 may communicate with memory controller 715 to process memory-related operations, such as read, write, and/or erase, as well as memory partition processes discussed above, for example.
- Processing unit 720 may include an operating system configured to communicate with memory controller 715 . Such an operating system may, for example, generate commands to be sent to memory controller 715 over bus 740 .
- Such commands may include instructions to partition at least a portion of memory 722 , to associate one or more attributes to particular partitions, and to program a particular partition based at least in part on the type of data to be programmed and stored, for example.
- Memory 722 is representative of any data storage mechanism.
- Memory 722 may include, for example, a primary memory 724 and/or a secondary memory 726 .
- memory 722 may comprise memory that may be partitioned based at least in part on one or more attributes of the memory and/or a memory management process, as described above.
- Primary memory 724 may include, for example, a random access memory, read only memory, etc. While illustrated in this example as being separate from processing unit 720 , it should be understood that all or part of primary memory 724 may be provided within or otherwise co-located/coupled with processing unit 720 .
- Secondary memory 726 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 726 may be operatively receptive of, or otherwise configurable to couple to, a computer-readable medium 728 .
- Computer-readable medium 728 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 700 .
- Computing device 704 may include, for example, an input/output 732 .
- Input/output 732 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 732 may include an operatively configured display, speaker, keyboard, mouse, trackball, touch screen, data port, etc.
- such quantities may take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared or otherwise manipulated. It has proven convenient at times, principally for reasons of common usage, to refer to such signals as bits, data, values, elements, symbols, characters, terms, numbers, numerals, or the like. It should be understood, however, that all of these or similar terms are to be associated with appropriate physical quantities and are merely convenient labels. Unless specifically stated otherwise, as apparent from the following discussion, it is appreciated that throughout this specification discussions utilizing terms such as “processing,” “computing,” “calculating,” “determining” or the like refer to actions or processes of a specific apparatus, such as a special purpose computer or a similar special purpose electronic computing device.
- such a special purpose computer or special purpose electronic computing device may comprise a general purpose computer programmed with instructions to perform one or more specific functions.
- a special purpose computer or a similar special purpose electronic computing device is capable of manipulating or transforming signals, typically represented as physical electronic or magnetic quantities within memories, registers, or other information storage devices, transmission devices, or display devices of the special purpose computer or similar special purpose electronic computing device.
- Embodiments described herein may include machines, devices, engines, or apparatuses that operate using digital signals.
- Such signals may comprise electronic signals, optical signals, electromagnetic signals, or any form of energy that provides information between locations.
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
Description
Claims (21)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/495,032 US8161334B1 (en) | 2009-06-30 | 2009-06-30 | Externally maintained remap information |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/495,032 US8161334B1 (en) | 2009-06-30 | 2009-06-30 | Externally maintained remap information |
Publications (1)
Publication Number | Publication Date |
---|---|
US8161334B1 true US8161334B1 (en) | 2012-04-17 |
Family
ID=45931520
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/495,032 Active 2030-07-01 US8161334B1 (en) | 2009-06-30 | 2009-06-30 | Externally maintained remap information |
Country Status (1)
Country | Link |
---|---|
US (1) | US8161334B1 (en) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140136925A1 (en) * | 2012-11-14 | 2014-05-15 | SK Hynix Inc. | Method of operating a data storage device |
CN104143356A (en) * | 2014-07-25 | 2014-11-12 | 记忆科技(深圳)有限公司 | DRAM with storage controller |
US9274715B2 (en) | 2013-08-02 | 2016-03-01 | Qualcomm Incorporated | Methods and apparatuses for in-system field repair and recovery from memory failures |
US9558064B2 (en) * | 2015-01-28 | 2017-01-31 | Micron Technology, Inc. | Estimating an error rate associated with memory |
US9727409B2 (en) | 2014-06-17 | 2017-08-08 | Samsung Electronics Co., Ltd. | Device and system including adaptive repair circuit |
US20190163557A1 (en) * | 2017-11-30 | 2019-05-30 | Microsoft Technology Licensing, Llc | Error recovery in volatile memory regions |
US20200409787A1 (en) * | 2019-06-28 | 2020-12-31 | Western Digital Technologies, Inc. | Error correction scheme in flash memory |
US20230185466A1 (en) * | 2012-06-19 | 2023-06-15 | Dongsik Cho | Memory system and soc including linear address remapping logic |
US11989417B1 (en) * | 2022-10-31 | 2024-05-21 | Nxp Usa, Inc. | Column repair in a memory system using a repair cache |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5764878A (en) * | 1996-02-07 | 1998-06-09 | Lsi Logic Corporation | Built-in self repair system for embedded memories |
US5974564A (en) * | 1997-07-31 | 1999-10-26 | Micron Electronics, Inc. | Method for remapping defective memory bit sets to non-defective memory bit sets |
US6236602B1 (en) * | 2000-05-25 | 2001-05-22 | Robert Patti | Dynamic configuration of storage arrays |
US6651202B1 (en) * | 1999-01-26 | 2003-11-18 | Lsi Logic Corporation | Built-in self repair circuitry utilizing permanent record of defects |
US7757135B2 (en) * | 2006-09-11 | 2010-07-13 | Mentor Graphics Corporation | Method and apparatus for storing and distributing memory repair information |
US7908530B2 (en) * | 2009-03-16 | 2011-03-15 | Faraday Technology Corp. | Memory module and on-line build-in self-test method thereof for enhancing memory system reliability |
-
2009
- 2009-06-30 US US12/495,032 patent/US8161334B1/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5764878A (en) * | 1996-02-07 | 1998-06-09 | Lsi Logic Corporation | Built-in self repair system for embedded memories |
US5974564A (en) * | 1997-07-31 | 1999-10-26 | Micron Electronics, Inc. | Method for remapping defective memory bit sets to non-defective memory bit sets |
US6651202B1 (en) * | 1999-01-26 | 2003-11-18 | Lsi Logic Corporation | Built-in self repair circuitry utilizing permanent record of defects |
US6236602B1 (en) * | 2000-05-25 | 2001-05-22 | Robert Patti | Dynamic configuration of storage arrays |
US7757135B2 (en) * | 2006-09-11 | 2010-07-13 | Mentor Graphics Corporation | Method and apparatus for storing and distributing memory repair information |
US7908530B2 (en) * | 2009-03-16 | 2011-03-15 | Faraday Technology Corp. | Memory module and on-line build-in self-test method thereof for enhancing memory system reliability |
Non-Patent Citations (5)
Title |
---|
Patent Application filed Jun. 30, 2009 in co-pending U.S. Appl. No. 12/494,830, 34 pages. |
Patent Application filed Jun. 30, 2009 in co-pending U.S. Appl. No. 12/494,904, 31 pages. |
Patent Application filed Jun. 30, 2009 in co-pending U.S. Appl. No. 12/494,950, 36 pages. |
Patent Application filed Jun. 30, 2009 in co-pending U.S. Appl. No. 12/494,994, 49 pages. |
Patent Application filed Jun. 30, 2009 in co-pending U.S. Appl. No. 12/495,081, 31 pages. |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230185466A1 (en) * | 2012-06-19 | 2023-06-15 | Dongsik Cho | Memory system and soc including linear address remapping logic |
KR20140062332A (en) * | 2012-11-14 | 2014-05-23 | 에스케이하이닉스 주식회사 | Operating method for data storage device |
US20140136925A1 (en) * | 2012-11-14 | 2014-05-15 | SK Hynix Inc. | Method of operating a data storage device |
US9274715B2 (en) | 2013-08-02 | 2016-03-01 | Qualcomm Incorporated | Methods and apparatuses for in-system field repair and recovery from memory failures |
US10296414B2 (en) | 2014-06-17 | 2019-05-21 | Samsung Electronics Co., Ltd. | Device and system including adaptive repair circuit |
US9727409B2 (en) | 2014-06-17 | 2017-08-08 | Samsung Electronics Co., Ltd. | Device and system including adaptive repair circuit |
US10678631B2 (en) | 2014-06-17 | 2020-06-09 | Samsung Electronics Co., Ltd. | Device and system including adaptive repair circuit |
CN104143356A (en) * | 2014-07-25 | 2014-11-12 | 记忆科技(深圳)有限公司 | DRAM with storage controller |
CN104143356B (en) * | 2014-07-25 | 2017-11-07 | 记忆科技(深圳)有限公司 | A kind of DRAM with storage control |
US9558064B2 (en) * | 2015-01-28 | 2017-01-31 | Micron Technology, Inc. | Estimating an error rate associated with memory |
US10572338B2 (en) | 2015-01-28 | 2020-02-25 | Micron Technology, Inc. | Estimating an error rate associated with memory |
US10061643B2 (en) * | 2015-01-28 | 2018-08-28 | Micron Technology, Inc. | Estimating an error rate associated with memory |
US11334413B2 (en) | 2015-01-28 | 2022-05-17 | Micron Technology, Inc. | Estimating an error rate associated with memory |
US20170097859A1 (en) * | 2015-01-28 | 2017-04-06 | Micron Technology, Inc. | Estimating an error rate associated with memory |
US20190163557A1 (en) * | 2017-11-30 | 2019-05-30 | Microsoft Technology Licensing, Llc | Error recovery in volatile memory regions |
US10713128B2 (en) * | 2017-11-30 | 2020-07-14 | Microsoft Technology Licensing, Llc | Error recovery in volatile memory regions |
US20200409787A1 (en) * | 2019-06-28 | 2020-12-31 | Western Digital Technologies, Inc. | Error correction scheme in flash memory |
US10936415B2 (en) * | 2019-06-28 | 2021-03-02 | Western Digital Technologies, Inc. | Error correction scheme in flash memory |
US11989417B1 (en) * | 2022-10-31 | 2024-05-21 | Nxp Usa, Inc. | Column repair in a memory system using a repair cache |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8412987B2 (en) | Non-volatile memory to store memory remap information | |
US20100332950A1 (en) | Bit error threshold and content addressable memory to address a remapped memory device | |
US20100332894A1 (en) | Bit error threshold and remapping a memory device | |
US8799717B2 (en) | Hardwired remapped memory | |
US8161334B1 (en) | Externally maintained remap information | |
US9239759B2 (en) | Switchable on-die memory error correcting engine | |
US10102059B2 (en) | Data storage device capable of preventing a data retention fail of a nonvolatile memory device and operating method thereof | |
US10923192B2 (en) | Memory system and operating method thereof | |
US20100269000A1 (en) | Methods and apparatuses for managing bad memory cell | |
US9460816B2 (en) | Semiconductor memory devices and memory systems including the same | |
US8572466B2 (en) | Apparatuses, systems, devices, and methods of replacing at least partially non-functional portions of memory | |
US11467758B2 (en) | Data writing method using different programming modes based on the number of available physical erasing units, memory control circuit unit and memory storage device | |
US20190179548A1 (en) | Memory system and operating method thereof | |
US10783074B2 (en) | Controller for performing garbage collection, method for operating the same, and memory system including the same | |
US11487634B2 (en) | Apparatus and method for handling error in volatile memory of memory system based on a type of data and a state of data | |
US8738847B2 (en) | Data writing method, and memory controller and memory storage apparatus using the same | |
US11586379B2 (en) | Memory system and method of operating the same | |
US11442662B2 (en) | Data writing method, memory control circuit unit and memory storage apparatus | |
KR20200142698A (en) | Data storage device and operating method thereof | |
US11403038B2 (en) | Controller, a memory system including the controller, and method of operating the controller | |
US11354188B2 (en) | Data processing system including host with reliability management of memory systems and method for the same | |
US20240152289A1 (en) | Storage device and method thereof | |
US20210357145A1 (en) | Data writing method, memory storage device and memory control circuit unit |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: NUMONYX B.V., SWITZERLAND Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:HULBERT, JARED E.;POST, SAMUEL DAVID;REEL/FRAME:024760/0089 Effective date: 20090629 |
|
AS | Assignment |
Owner name: MICRON TECHNOLOGY, INC., IDAHO Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:NUMONYX B.V.;REEL/FRAME:027126/0176 Effective date: 20110930 |
|
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 |
|
FPAY | Fee payment |
Year of fee payment: 4 |
|
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 |
|
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 |
|
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 |
|
AS | Assignment |
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 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 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 12TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1553); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 12 |