|Número de publicación||US9235459 B2|
|Tipo de publicación||Concesión|
|Número de solicitud||US 14/255,510|
|Fecha de publicación||12 Ene 2016|
|Fecha de presentación||17 Abr 2014|
|Fecha de prioridad||5 Jun 2009|
|También publicado como||US8046628, US8707092, US20100313067, US20120042201, US20140229762|
|Número de publicación||14255510, 255510, US 9235459 B2, US 9235459B2, US-B2-9235459, US9235459 B2, US9235459B2|
|Inventores||David R. Resnick|
|Cesionario original||Micron Technology, Inc.|
|Exportar cita||BiBTeX, EndNote, RefMan|
|Citas de patentes (35), Citada por (3), Clasificaciones (5), Eventos legales (4)|
|Enlaces externos: USPTO, Cesión de USPTO, Espacenet|
This application is a continuation of U.S. application Ser. No. 13/279,926, filed on Oct. 24, 2011, which is a continuation of U.S. application Ser. No. 12/479,530, filed Jun. 5, 2009, now issued as U.S. Pat. No. 8,046,628, both of which are incorporated herein by reference in their entirety.
Various embodiments described herein relate to apparatus, systems, and methods associated with semiconductor memories.
A number of configurations in computer memory exist to protect data against errors or failure of memory devices. Error Check and Correcting (ECC) configurations such as Chipkill™ exist that protect computer memory systems from any single memory chip failure as well as multi-bit errors from any portion of a single memory chip. In Chipkill™, bits of multiple ECC words are scattered across multiple memory chips, such that the failure of any one memory chip will affect each ECC value looking like multiple correctable errors. This allows memory contents to be reconstructed despite the complete failure of one chip. ECC implementations more complex than Chipkill™ are seldom done with most current high density memory integrated circuits because of the additional memory and chip area required. Simpler detection/correction schemes such as parity check or single bit correction are often implemented.
In computer hard drive memory, Redundant Arrays of Inexpensive Disks (RAID) configurations allow backup of data when multiple drives are arranged in parallel, where n+1 drives are used to store data. The extra memory of the “1” drive of n+1 in a RAID 4 or RAID 5 configuration is used to store the ECC data. However, RAID configurations are often relatively slow during write operations because each write requires updating of the ECC data, such that two writes are required for every operation (one for the data being written, and another for the updated ECC being written). Performance of a RAID 5 configuration when writing is approximately one half the performance of reading. Other operations of a parallel RAID configuration, such as data recovery, can be much slower than half the speed of a read operation.
The inventor has realized that improved memory configurations with error recovery are desired that reduce the amount of memory needed to store error recover data (e.g., ECC data) for cases where recovery from failures of memory components is required. The inventor has further realized that improved memory configurations with error recovery are desired that reduce any impact to operating speed during error recovery, data write operations, etc. The inventor has further realized that memory configurations are desired that allow ECC to be included or left out without needing differing kinds of components, or adding expense if ECC is not required.
In the following detailed description of the invention, reference is made to the accompanying drawings that form a part hereof and in which are shown, by way of illustration, specific embodiments in which the invention may be practiced. These embodiments are described in sufficient detail to enable those skilled in the art to practice the invention. Other embodiments may be utilized and structural, logical, and electrical changes may be made.
In one example, error recovery data in the ECC device 122 is formed as the sum of the data written to the same address of all the other data units in the group. For example the address (100) in the ECC device 122 is written with A(100)+B(100)+C(100) . . . for as many memory devices (A, B, C, etc.) as there are in the chain. Thus ECC(n)=A(n)+B(n)+ . . . +M(n) for any number of memory devices A through M and for each data address within the memory devices. A common example of summing to form error recovery data includes performing an exclusive or (XOR) operation on incoming data. Individual error recovery data from each memory device 120 can be combined to form error recovery data in the ECC device 122. In the event of a failure in any given memory device 120, data can be reconstructed using the error recovery data in the ECC device 122 at the end of the chain.
The memory devices 120 of the memory system 110 are shown serially coupled together in the chain. The serial connection includes a request path 102 (which can also be referred to as an outgoing path) from the host 100, and a response path 104 (which can also be called a return path). In one embodiment, memory requests are sent from the host 100 down the request path 102. In one example the memory request is in packet form, and may include both data, and address and control information to indicate a particular memory device 120 and a location within the particular memory device 120.
In one embodiment, a request travels down the request path 102 until it reaches the ECC device 122, then it returns on the response path 104. For example, a write request travels down the request path 102 including the data to be written, along with address information. As the data is written in the particular memory device 120, an ECC update operation is sent to the ECC device 122 and a completion signal is returned to the host on the response path 104. If a read operation is requested, the data is returned on the response path.
In one example when new data is to be written to a given memory device 120 in the chain, corresponding error recovery data is updated. In one example, all memory devices 120 in the chain closer to the host controller than the addressed device merely pass the write request down the chain. Once the given memory device in the chain is reached, old data that is currently at the location to be written in the given memory device 120 is subtracted from the new data to be written at the location in the given memory device 120. The data to be written is then written into the location in the given memory device 120.
The difference is then passed down the remaining devices, if any, to the ECC device 122. In one example the ECC device then adds the difference that has been passed down, to the ECC data for the location to be written. In this way, the ECC data is updated to reflect the write operation. Because the error recovery data includes information from each memory device 120 in the chain, the data in any one failing memory device 120 can be reconstructed using the error recovery data.
In one embodiment the memory device 120 includes local storage coupled to the first and/or second logic blocks 210, 220. Embodiments with local storage capacity allow error recovery data operations to take place independently within the memory device 120, without otherwise impacting other read or write operations or their timing. One configuration for local storage includes a register or similar memory capability within the first and/or second logic blocks 210, 220.
In one example, a specially configured ECC unit is installed in the chain of memory devices 120 as the ECC device 122. In another example, all memory devices 120 including the ECC device 122 have identical hardware, and the ECC device 122 is put into a mode that indicates that it is the ECC device 122. Embodiments using identical hardware for all memory devices 120 are more efficient for manufacturing purposes.
The embodiment illustrated in
In operation 320, new error recovery data is calculated as the new data passes along the chain using data currently in the memory devices in the chain and the new data. In one example, old data is read at the selected device, and an ECC data update is calculated within the selected memory device by subtracting the old data from the new data. In one example, calculating new error recovery data includes an XOR operation. In one example, only the selected memory device in the chain performs the ECC data calculation, while other memory devices in the chain merely pass the request along the chain. One of ordinary skill in the art, having the benefit of the present disclosure will recognize that ECC operations other than XOR are also within the scope of the invention.
In operation 330, the new data is written in the selected memory device along the chain, and in operation 340, the new error recovery data is passed down the chain of memory devices to the ECC device at the end of the chain. In one embodiment, the new data is written at the same time that the new error recovery data is passed down the chain. Once the new error recovery data reaches the ECC device, in operation 350, the old error recovery data stored in the ECC device is modified by adding the new recovery data to the ECC data at the same address, generally the addition is a boolean XOR operation. Using the error recovery data and data from non-failing memory devices, data from any single failing memory device can be reconstructed.
In one example, if a device determines it has an unrecoverable data error, that device responds to the host or chain controller which then starts a recovery sequence.
In operation 430, after the recovery request reaches the ECC device at the end of the chain, the requested error recovery data is returned back up the chain. In operation 440 the data is combined from the local logic blocks as described in operation 420 in each memory device, except the failing device, with the error recovery data to reconstruct the data from the failing device. In one example, combining the data from the local logic blocks includes an XOR operation. After the individual XOR operations at each memory device, when the data finishes traveling back up the chain, the data from the failing memory device is recovered.
Using the methods and serially interconnected devices as described in examples above, the extra read and write operations that are burdensome in a parallel configuration happen automatically and without any effort or time taken by a memory controller at a host. Because extra operations in the described serial configurations take place further down the chain from a write operation, the extra operations are largely hidden from a performance standpoint. Further, using the serial methods and devices described in examples above, a memory controller does not have to generate multiple read requests in a recovery operation as is needed in a parallel configuration.
A number of types of memory devices are possible for use in methods and device configurations described above. Some examples include, but are not limited to, dynamic random access memory (DRAM), static random access memory (SRAM), flash memory such as NAND or NOR, etc.
The illustrated stacked chip memory device embodiment aggregates control logic that is normally located on each individual memory array die. The memory vaults 506 shown in the illustrated example share common control logic. The memory vault architecture strategically partitions memory control logic to increase energy efficiency while providing a finer granularity of powered-on memory banks. Embodiments shown also enable a standardized host processor to memory system interface. The standardized interface may reduce re-design cycle times as memory technology evolves.
The apparatus and systems of various embodiments may be useful in applications other than a high-density, multi-link, high-throughput semiconductor memory subsystem. Thus, various embodiments of the invention are not to be so limited. The illustrations of the stacked chip memory device 500 are intended to provide a general understanding of the structure of various embodiments. They are not intended to serve as a complete description of all the elements and features of apparatus and systems that might make use of the structures described herein.
The novel apparatus and systems of various embodiments may comprise or be incorporated into electronic circuitry used in computers, communication and signal processing circuitry, single-processor or multi-processor modules, single or multiple embedded processors, multi-core processors, data switches, and other information handling systems.
Examples of such systems, include, but are not limited to supercomputers, televisions, cellular telephones, personal data assistants (PDAs), personal computers (e.g., laptop computers, desktop computers, handheld computers, tablet computers, etc.), workstations, radios, video players, audio players (e.g., MP3 (Motion Picture Experts Group, Audio Layer 3) players), vehicles, medical devices (e.g., heart monitor, blood pressure monitor, etc.), set top boxes, and others.
While a number of embodiments of the invention are described, the above lists are not intended to be exhaustive. Although specific embodiments have been illustrated and described herein, it will be appreciated by those of ordinary skill in the art that any arrangement that is calculated to achieve the same purpose may be substituted for the specific embodiment shown. This application is intended to cover any adaptations or variations of the present invention. It is to be understood that the above description is intended to be illustrative and not restrictive. Combinations of the above embodiments, and other embodiments, will be apparent to those of skill in the art upon studying the above description.
|Patente citada||Fecha de presentación||Fecha de publicación||Solicitante||Título|
|US5928343||16 Jun 1998||27 Jul 1999||Rambus Inc.||Memory module having memory devices containing internal device ID registers and method of initializing same|
|US6683372||18 Nov 1999||27 Ene 2004||Sun Microsystems, Inc.||Memory expansion module with stacked memory packages and a serial storage unit|
|US7000062||10 Feb 2005||14 Feb 2006||Rambus Inc.||System and method featuring a controller device and a memory module that includes an integrated circuit buffer device and a plurality of integrated circuit memory devices|
|US7206962||25 Nov 2003||17 Abr 2007||International Business Machines Corporation||High reliability memory subsystem using data error correcting code symbol sliced command repowering|
|US7363533||20 Abr 2006||22 Abr 2008||International Business Machines Corporation||High reliability memory module with a fault tolerant address and command bus|
|US7484161||7 Sep 2007||27 Ene 2009||International Business Machines Corporation||System, method and storage medium for providing fault detection and correction in a memory subsystem|
|US7676729||23 Ago 2006||9 Mar 2010||Sun Microsystems, Inc.||Data corruption avoidance in DRAM chip sparing|
|US7701251||6 Mar 2008||20 Abr 2010||Xilinx, Inc.||Methods and apparatus for implementing a stacked memory programmable integrated circuit system in package|
|US7746095||8 Jun 2009||29 Jun 2010||Round Rock Research, Llc||Memory module and method having improved signal routing topology|
|US7779292||10 Ago 2007||17 Ago 2010||International Business Machines Corporation||Efficient storage of metadata in a system memory|
|US7840860||7 Ago 2008||23 Nov 2010||International Business Machines Corporation||Double DRAM bit steering for multiple error corrections|
|US8046628||5 Jun 2009||25 Oct 2011||Micron Technology, Inc.||Failure recovery memory devices and methods|
|US8707092||24 Oct 2011||22 Abr 2014||Micron Technology, Inc.||Failure recovery memory devices and methods|
|US20050105350||13 Nov 2003||19 May 2005||David Zimmerman||Memory channel test fixture and method|
|US20050162882||10 May 2004||28 Jul 2005||Advanced Micro Devices, Inc.||Method for initializing a system including a host and plurality of memory modules connected via a serial memory interconnect|
|US20060146637||30 Dic 2004||6 Jul 2006||Vogt Pete D||I/O data interconnect reuse as repeater|
|US20060179362||9 Feb 2005||10 Ago 2006||International Business Machines Corporation||Double DRAM bit steering for multiple error corrections|
|US20060271720||10 May 2006||30 Nov 2006||Ralph James||System and method for transmitting data packets in a computer system having a memory hub architecture|
|US20070136537||14 Dic 2005||14 Jun 2007||Sun Microsystems, Inc.||System memory board subsystem using dram with stacked dedicated high speed point to point links|
|US20080101104||18 Oct 2007||1 May 2008||Elpida Memory, Inc.||Stacked memory|
|US20080307252||6 Jun 2007||11 Dic 2008||Gerald Keith Bartley||Method and Apparatus for Implementing Redundant Memory Access Using Multiple Controllers on the Same Bank of Memory|
|US20080307253||15 Oct 2007||11 Dic 2008||International Business Machines Corporation||Method and Apparatus for Implementing Redundant Memory Access Using Multiple Controllers on the Same Bank of Memory|
|US20090006886||28 Jun 2007||1 Ene 2009||International Business Machines Corporation||System and method for error correction and detection in a memory system|
|US20090049365||13 Ago 2007||19 Feb 2009||International Business Machines Corporation||System and method for providing error correction and detection in a memory system|
|US20090193315 *||24 Ene 2008||30 Jul 2009||Gower Kevin C||System for a Combined Error Correction Code and Cyclic Redundancy Check Code for a Memory Channel|
|US20090237971||6 Feb 2009||24 Sep 2009||Samsung Electronics Co., Ltd.||Semiconductor memory devices with interface chips having memory chips stacked thereon|
|US20090276609 *||30 Abr 2008||5 Nov 2009||Moyer William C||Configurable pipeline based on error detection mode in a data processing system|
|US20100042889||15 Ago 2008||18 Feb 2010||Micron Technology, Inc.||Memory system and method using a memory device die stacked with a logic die using data encoding, and system using the memory system|
|US20100217915||23 Feb 2009||26 Ago 2010||International Business Machines Corporation||High availability memory system|
|US20100240205||9 Mar 2010||23 Sep 2010||Samsung Electronics Co., Ltd.||Methods of fabricating three-dimensional nonvolatile memory devices using expansions|
|US20100251036 *||31 Mar 2009||30 Sep 2010||Moyer William C||Implementation of multiple error detection schemes for a cache|
|US20100299576||31 Ene 2008||25 Nov 2010||International Business Machines Corporation||System to Improve Miscorrection Rates in Error Control Code Through Buffering and Associated Methods|
|US20100313067||5 Jun 2009||9 Dic 2010||Micron Technology, Inc.||Failure recovery memory devices and methods|
|US20110231735||28 Ene 2011||22 Sep 2011||Samsung Electronics Co., Ltd.||Stacked semiconductor memory device and related error-correction method|
|US20120042201||24 Oct 2011||16 Feb 2012||Resnick David R||Failure recovery memory devices and methods|
|Patente citante||Fecha de presentación||Fecha de publicación||Solicitante||Título|
|US9495231||17 Mar 2016||15 Nov 2016||International Business Machines Corporation||Reestablishing synchronization in a memory system|
|US9535778||15 Mar 2013||3 Ene 2017||International Business Machines Corporation||Reestablishing synchronization in a memory system|
|US9594646||31 Ago 2016||14 Mar 2017||International Business Machines Corporation||Reestablishing synchronization in a memory system|
|Clasificación internacional||G06F11/10, G06F11/07, G06F11/00|
|Clasificación cooperativa||G06F11/1044, G06F11/073|
|30 May 2014||AS||Assignment|
Owner name: MICRON TECHNOLOGY, INC., IDAHO
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:RESNICK, DAVID R.;REEL/FRAME:032998/0266
Effective date: 20090602
|12 May 2016||AS||Assignment|
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
|2 Jun 2016||AS||Assignment|
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
|8 Jun 2017||AS||Assignment|
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