EP2097821A1 - Single channel memory mirroring - Google Patents
Single channel memory mirroringInfo
- Publication number
- EP2097821A1 EP2097821A1 EP07847469A EP07847469A EP2097821A1 EP 2097821 A1 EP2097821 A1 EP 2097821A1 EP 07847469 A EP07847469 A EP 07847469A EP 07847469 A EP07847469 A EP 07847469A EP 2097821 A1 EP2097821 A1 EP 2097821A1
- Authority
- EP
- European Patent Office
- Prior art keywords
- memory
- communications channel
- duplicate data
- data
- single communications
- 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.)
- Withdrawn
Links
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/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1666—Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
-
- 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/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
Definitions
- the present invention relates to the field of memory fault tolerance in high performance computing and more particular to memory redundancy through memory mirroring.
- Memory refers to an electronic device configured to store information—generally in binary form. Memory often refers to dynamic memory including dynamic random access memory (DRAM) in which charges within small capacitors are continually refreshed selectively to store high and low signals representative of binary values. In as much as the ultimate representation of a binary value is physical in nature, errors can occur. In that the integrity of values in memory reflect the most critical aspect of any computing system, it is imperative that errors in memory are identified immediately and handled accordingly.
- DRAM dynamic random access memory
- Hard errors refer to structural imperfections in the memory module itself in which the memory stores a particular value irrespective of the value written to memory. In the case of a hard error, the symptoms are repeatable and persistent. Soft errors, by comparison, often are transient and result from logical imperfections in controlling reading to and writing from memory. In that soft errors generally are transient in nature, soft error can be very difficult to diagnose and correct.
- Memory fault tolerance refers to mechanisms established to cope with hard errors and soft errors in memory in order to remediate and recover where possible. Memory fault tolerance often begins with the detection of a memory error. Early forms of detection utilize parity bit checking. The parity bit, as it is well-known, indicates either an even or odd parity for stored information. The parity of retrieved information can be compared to the parity bit value to readily detect an obvious failure where no match occurs. Error correction code (ECC) processing, by comparison, involves the generation of a single sum for all bits (checksum) that can be compared to the sum of all bits for retrieved information. Again, the failure to match will indicate a memory failure.
- ECC Error correction code
- ECC utilization can be effective for small, isolated soft errors in memory. For very large systems, however, multiple, soft errors are more common and ECC utilization cannot correct so many soft errors. Accordingly, more advanced forms of fault tolerance have become prevalent in larger computing systems. The most common form of fault tolerance in the latter circumstance is memory redundancy. Memory redundancy refers to the deployment of more memory than utilized to provide for failover in the event of a faulty bank of memory. One such form of memory redundancy includes spare-bank memory, while another form includes memory redundant array of independent dual inline memory modules (RAID).
- RAID memory redundant array of independent dual inline memory modules
- a third form of memory redundancy includes memory mirroring.
- Memory mirroring refers to the use of redundant copies of system memory. In memory mirroring, when a multi-bit error is detected when memory is accessed, the system instead of performing a hard stop, can immediately fail over to a read from a mirror image of the failed memory. Consequently, memory mirroring can provide a high level of fault tolerance. Notwithstanding, memory mirroring can consume substantial resources in that two or more channels of memory are required to achieve mirroring with one channel including memory allocated for operational data and one channel including memory allocated for duplicate data. Even in the instance where half of all memory across both channels is allocated for mirroring, half of the available memory bandwidth is consumed with writing duplicate data leaving only half of the available memory bandwidth for use in writing operational data.
- a single channel memory mirroring system can be provided.
- the single channel memory mirroring system can include a memory controller, a single communications channel, and an operational data portion of memory, and a duplicate data portion of memory, both portions being communicatively coupled to the memory controller over the single communications channel.
- the system can include single channel memory mirror logic.
- the logic can include program code enabled to mirror data in the operational data portion of memory in the duplicate data portion of memory.
- the operational data portion of memory can be disposed in a first memory module coupled to the memory controller over the single communications channel.
- the duplicate data portion of memory can be disposed in a second memory module coupled to the memory controller over the single communications channel.
- the operational data portion of memory can be disposed across a first grouping of memory modules and the duplicate data portion of memory can be disposed across a second grouping of memory modules both over the single communications channel.
- the operational data portion of memory can be disposed in a first portion of a single memory module and the duplicate data portion of memory can be disposed in a second portion of the single memory module.
- a single channel memory mirroring method can be provided and can include writing operational and duplicate data during memory mirroring to respective operational data and duplicate data portions of memory concurrently over a single communications channel.
- Writing operational and duplicate data during memory mirroring to respective operational data and duplicate data portions of memory concurrently over a single communications channel can include, for instance, first retrieving a location of operational data in a first memory module, second retrieving a location of duplicate data in a second memory module, activating a chip select for each of the memory modules, and writing data to both locations simultaneously over the single communications channel.
- FIGS. IA through IE taken together, are a schematic illustration of a single channel memory mirroring system.
- Figure 2 is a flow chart illustrating a process for single channel memory mirroring.
- Embodiments of the invention provide a method, system and computer program product for a single channel memory mirror.
- memory can be coupled to a memory controller over a single channel of communication.
- the memory can include, for example, one or more memory modules and can be partitioned into operational data and duplicate data portions.
- the controller can select the operational data portion for the read operation.
- the controller can select both the operational data portion and the duplicate data portion for a single write operation over the single channel of communication. In this way, the full available memory bandwidth can be utilized on both read and write operations irrespective of memory mirroring.
- Figure IA is a schematic illustration of a single channel memory mirroring system utilizing pairs of memory modules.
- the system can include a memory controller 100 coupled to a pair of memory modules HOA, HOB over a single communications channel 120.
- the memory controller 100 can be configured to manage read and write operations to selected ones of the memory modules HOA, HOB through the operation of the chip select 130A, 130B for each respective one of the memory modules 11OA, HOB.
- the memory controller 100 can be configured to manage read and write operations to the memory modules 11OA, HOB over a point-to-point bus supporting bi-directional communication, or uni-directional communication in which case separate busses will be required — one for reading and one for writing.
- memory module 11OA can be assigned to store operational data whereas memory module HOB can be assigned to store duplicate data mirrored during write operations to memory module 11OA. It is to be recognized by the skilled artisan that although only two memory modules 11OA, HOB are shown in Figure IA, in which memory module 11OA stores operational data while memory module HOB stores duplicate data, the invention is not so limited and multiple memory modules coupled to the single communications channel 120 can be assigned to store operational data whereas an equal number of memory modules coupled to the single communications channel 120 can be assigned to store corresponding duplicate data.
- any one memory module on the single communications channel 120 can be assigned to store operational data, while the remaining portion of the memory module on the single communications channel 120 can be assigned to store corresponding duplicate data.
- the assignment of memory module portions to store either operational data or duplicate data can be recorded in location data store 140 coupled to the memory controller 100.
- the memory modules can be disposed across multiple different single communications channels, either configured in traditional mode or independent single channels mode.
- single channel memory mirror logic 200 can be coupled to the memory controller 100.
- the single channel memory mirror logic 200 can include program code enabled to simultaneously activate chip selects 130A, 130B for corresponding memory modules 11OA, 11OB in order to write data both to the operational data portion of memory module 11OA and the duplicate data portion of the memory module HOB without consuming excess channel bandwidth and without requiring separate channels for the memory module HOA and the memory module HOB. Rather, the write to both memory modules 11OA, HOB can occur simultaneously by way of a dual selection of both chip selects 130A, 130B.
- a single memory module 150 can be partitioned into a separate operational data portion 150A and a duplicate data portion 150B.
- the location of each portion 150A, 150B can be recorded in the location data store 140.
- the program code of the single channel memory mirror logic 200 can be enabled, in the alternative embodiment, to concurrently write data both the operational data portion 150A and the duplicate data portion 150B by activating chip selects 160A, 160B for each portion
- duplicate data portions of a module can support the operational data portions of other memory modules over the single communications channel.
- a duplicate data portion in a single module can support the operational data not only within the same module, but also in addition to the operational data in another module over the single communications channel.
- Figure 2 is a flow chart illustrating a process for single channel memory mirroring.
- one or more memory modules coupled to the controller over a single communications channel can be initialized for storing both operational data and duplicate data for memory mirroring.
- the memory modules can include any combination of dual inline memory modules (DIMMs), Flash memory, programmable read-only memories, fixed disks and the like.
- DIMMs dual inline memory modules
- Flash memory Flash memory
- programmable read-only memories fixed disks and the like.
- a location for the operational data in the memory modules can be determined as can a location for the duplicate data in the memory modules in block 220B.
- the respective locations can be within different memory modules on the single communications channel, or within the same memory module on the single communications channel.
- a command can be received to either read data from or write data to the memory module.
- decision block 240 if the command is a write command, in block 250 the chip select for both the operational data portion of the memory module and the duplicate data portion of the memory module can be selected concurrently. Thereafter, the data can be written to memory.
- decision block 240 if the command is a read command, in block 260, the chip select only for the operational data portion of the memory module can be selected and data read therefrom into a buffer.
- the data in the buffer can be subjected to error detection and, in decision block 280, if an error is detected, in block 290, the data can be read from the duplicate data portion of the memory module.
- the embodiments of the invention can take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment containing both hardware and software elements.
- the invention is implemented in software, which includes but is not limited to firmware, resident software, microcode, and the like.
- the invention can take the form of a computer program product accessible from a computer-usable or computer-readable medium providing program code for use by or in connection with a computer or any instruction execution system.
- a computer-usable or computer readable medium can be any apparatus that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device.
- the medium can be an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system (or apparatus or device) or a propagation medium.
- Examples of a computer-readable medium include a semiconductor or solid state memory, magnetic tape, a removable computer diskette, a random access memory (RAM), a read-only memory (ROM), a rigid magnetic disk and an optical disk.
- Current examples of optical disks include compact disk - read only memory (CD-ROM), compact disk - read/write (CD-R/W) and DVD.
- a data processing system suitable for storing and/or executing program code will include at least one processor coupled directly or indirectly to memory elements through a system bus.
- the memory elements can include local memory employed during actual execution of the program code, bulk storage, and cache memories which provide temporary storage of at least some program code in order to reduce the number of times code must be retrieved from bulk storage during execution.
- I/O devices including but not limited to keyboards, displays, pointing devices, etc.
- Network adapters may also be coupled to the system to enable the data processing system to become coupled to other data processing systems or remote printers or storage devices through intervening private or public networks. Modems, cable modem and Ethernet cards are just a few of the currently available types of network adapters.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
Embodiments of the invention address deficiencies of the art in respect to memory fault tolerance, and provide a novel and non-obvious method, system and apparatus for single channel memory mirroring. In one embodiment of the invention, a single channel memory mirroring system can be provided. The single channel memory mirroring system can include a memory controller, a single communications channel, and an operational data portion of memory, and a duplicate data portion of memory, both portions being communicatively coupled to the memory controller over the single communications channel. Finally, the system can include single channel memory mirror logic. The logic can include program code enabled to mirror data in the operational data portion of memory in the duplicate data portion of memory.
Description
SINGLE CHANNEL MEMORY MIRRORING
Field of the Invention
The present invention relates to the field of memory fault tolerance in high performance computing and more particular to memory redundancy through memory mirroring.
Background of the Invention
Memory refers to an electronic device configured to store information—generally in binary form. Memory often refers to dynamic memory including dynamic random access memory (DRAM) in which charges within small capacitors are continually refreshed selectively to store high and low signals representative of binary values. In as much as the ultimate representation of a binary value is physical in nature, errors can occur. In that the integrity of values in memory reflect the most critical aspect of any computing system, it is imperative that errors in memory are identified immediately and handled accordingly.
Memory can be susceptible to two basic types of errors: hard and soft. Hard errors refer to structural imperfections in the memory module itself in which the memory stores a particular value irrespective of the value written to memory. In the case of a hard error, the symptoms are repeatable and persistent. Soft errors, by comparison, often are transient and result from logical imperfections in controlling reading to and writing from memory. In that soft errors generally are transient in nature, soft error can be very difficult to diagnose and correct.
Memory fault tolerance refers to mechanisms established to cope with hard errors and soft errors in memory in order to remediate and recover where possible. Memory fault tolerance often begins with the detection of a memory error. Early forms of detection utilize parity bit checking. The parity bit, as it is well-known, indicates either an even or odd parity for stored information. The parity of retrieved information can be compared to the parity bit value to readily detect an obvious failure where no match occurs. Error correction code
(ECC) processing, by comparison, involves the generation of a single sum for all bits (checksum) that can be compared to the sum of all bits for retrieved information. Again, the failure to match will indicate a memory failure.
It is well-known that ECC utilization can be effective for small, isolated soft errors in memory. For very large systems, however, multiple, soft errors are more common and ECC utilization cannot correct so many soft errors. Accordingly, more advanced forms of fault tolerance have become prevalent in larger computing systems. The most common form of fault tolerance in the latter circumstance is memory redundancy. Memory redundancy refers to the deployment of more memory than utilized to provide for failover in the event of a faulty bank of memory. One such form of memory redundancy includes spare-bank memory, while another form includes memory redundant array of independent dual inline memory modules (RAID).
A third form of memory redundancy includes memory mirroring. Memory mirroring refers to the use of redundant copies of system memory. In memory mirroring, when a multi-bit error is detected when memory is accessed, the system instead of performing a hard stop, can immediately fail over to a read from a mirror image of the failed memory. Consequently, memory mirroring can provide a high level of fault tolerance. Notwithstanding, memory mirroring can consume substantial resources in that two or more channels of memory are required to achieve mirroring with one channel including memory allocated for operational data and one channel including memory allocated for duplicate data. Even in the instance where half of all memory across both channels is allocated for mirroring, half of the available memory bandwidth is consumed with writing duplicate data leaving only half of the available memory bandwidth for use in writing operational data.
SUMMARY OF THE INVENTION
Embodiments of the invention address deficiencies of the art in respect to memory fault tolerance, and provide a novel and non-obvious method, system and apparatus for single channel memory mirroring. In one embodiment of the invention, a single channel memory mirroring system can be provided. The single channel memory mirroring system
can include a memory controller, a single communications channel, and an operational data portion of memory, and a duplicate data portion of memory, both portions being communicatively coupled to the memory controller over the single communications channel. Finally, the system can include single channel memory mirror logic. The logic can include program code enabled to mirror data in the operational data portion of memory in the duplicate data portion of memory.
In one aspect of the embodiment, the operational data portion of memory can be disposed in a first memory module coupled to the memory controller over the single communications channel. Likewise, the duplicate data portion of memory can be disposed in a second memory module coupled to the memory controller over the single communications channel. In another aspect of the invention, the operational data portion of memory can be disposed across a first grouping of memory modules and the duplicate data portion of memory can be disposed across a second grouping of memory modules both over the single communications channel. Finally, in yet another aspect of the invention, the operational data portion of memory can be disposed in a first portion of a single memory module and the duplicate data portion of memory can be disposed in a second portion of the single memory module.
In another embodiment of the invention, a single channel memory mirroring method can be provided and can include writing operational and duplicate data during memory mirroring to respective operational data and duplicate data portions of memory concurrently over a single communications channel. Writing operational and duplicate data during memory mirroring to respective operational data and duplicate data portions of memory concurrently over a single communications channel can include, for instance, first retrieving a location of operational data in a first memory module, second retrieving a location of duplicate data in a second memory module, activating a chip select for each of the memory modules, and writing data to both locations simultaneously over the single communications channel.
Additional aspects of the invention will be set forth in part in the description which follows, and in part will be obvious from the description, or may be learned by practice of
the invention. The aspects of the invention will be realized and attained by means of the elements and combinations particularly pointed out in the appended claims. It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory only and are not restrictive of the invention, as claimed.
BRIEF DESCRIPTION OF THE DRAWINGS
Embodiments of the invention will now be described, by way of example only, with reference to the accompanying drawings in which:
Figures IA through IE, taken together, are a schematic illustration of a single channel memory mirroring system; and,
Figure 2 is a flow chart illustrating a process for single channel memory mirroring.
DETAILED DESCRIPTION OF THE INVENTION
Embodiments of the invention provide a method, system and computer program product for a single channel memory mirror. In accordance with an embodiment of the present invention, memory can be coupled to a memory controller over a single channel of communication. The memory can include, for example, one or more memory modules and can be partitioned into operational data and duplicate data portions. When reading data from memory, the controller can select the operational data portion for the read operation. However, when writing data to memory, the controller can select both the operational data portion and the duplicate data portion for a single write operation over the single channel of communication. In this way, the full available memory bandwidth can be utilized on both read and write operations irrespective of memory mirroring.
In further illustration, Figure IA is a schematic illustration of a single channel memory mirroring system utilizing pairs of memory modules. As shown in Figure IA, the system can include a memory controller 100 coupled to a pair of memory modules HOA, HOB over a single communications channel 120. The memory controller 100 can be
configured to manage read and write operations to selected ones of the memory modules HOA, HOB through the operation of the chip select 130A, 130B for each respective one of the memory modules 11OA, HOB. The memory controller 100 can be configured to manage read and write operations to the memory modules 11OA, HOB over a point-to-point bus supporting bi-directional communication, or uni-directional communication in which case separate busses will be required — one for reading and one for writing.
Importantly, memory module 11OA can be assigned to store operational data whereas memory module HOB can be assigned to store duplicate data mirrored during write operations to memory module 11OA. It is to be recognized by the skilled artisan that although only two memory modules 11OA, HOB are shown in Figure IA, in which memory module 11OA stores operational data while memory module HOB stores duplicate data, the invention is not so limited and multiple memory modules coupled to the single communications channel 120 can be assigned to store operational data whereas an equal number of memory modules coupled to the single communications channel 120 can be assigned to store corresponding duplicate data.
Likewise, only a portion of any one memory module on the single communications channel 120 can be assigned to store operational data, while the remaining portion of the memory module on the single communications channel 120 can be assigned to store corresponding duplicate data. In all cases, the assignment of memory module portions to store either operational data or duplicate data can be recorded in location data store 140 coupled to the memory controller 100. Finally, the memory modules can be disposed across multiple different single communications channels, either configured in traditional mode or independent single channels mode.
In accordance with the invention, single channel memory mirror logic 200 can be coupled to the memory controller 100. The single channel memory mirror logic 200 can include program code enabled to simultaneously activate chip selects 130A, 130B for corresponding memory modules 11OA, 11OB in order to write data both to the operational data portion of memory module 11OA and the duplicate data portion of the memory module HOB without consuming excess channel bandwidth and without requiring separate channels
for the memory module HOA and the memory module HOB. Rather, the write to both memory modules 11OA, HOB can occur simultaneously by way of a dual selection of both chip selects 130A, 130B.
In an alternative embodiment of the invention, a single memory module 150 can be partitioned into a separate operational data portion 150A and a duplicate data portion 150B. The location of each portion 150A, 150B can be recorded in the location data store 140. The program code of the single channel memory mirror logic 200 can be enabled, in the alternative embodiment, to concurrently write data both the operational data portion 150A and the duplicate data portion 150B by activating chip selects 160A, 160B for each portion
150A, 150B.
Referring to Figure 1C, as another alternative embodiment, it will be understood by the skilled artisan that only selected memory modules on the single communications channel need be partitioned so long as the duplicate data portion of the module is allocated enough size to accommodate a corresponding operational data portion. Likewise, in Figure ID, duplicate data portions of a module can support the operational data portions of other memory modules over the single communications channel. Finally, as shown in Figure IE, a duplicate data portion in a single module can support the operational data not only within the same module, but also in addition to the operational data in another module over the single communications channel.
In yet further illustration, Figure 2 is a flow chart illustrating a process for single channel memory mirroring. Beginning in block 210, one or more memory modules coupled to the controller over a single communications channel can be initialized for storing both operational data and duplicate data for memory mirroring. The memory modules can include any combination of dual inline memory modules (DIMMs), Flash memory, programmable read-only memories, fixed disks and the like. In block 220A, a location for the operational data in the memory modules can be determined as can a location for the duplicate data in the memory modules in block 220B. Notably, the respective locations can be within different memory modules on the single communications channel, or within the same memory module on the single communications channel.
In block 230, a command can be received to either read data from or write data to the memory module. In decision block 240, if the command is a write command, in block 250 the chip select for both the operational data portion of the memory module and the duplicate data portion of the memory module can be selected concurrently. Thereafter, the data can be written to memory. By comparison, in decision block 240, if the command is a read command, in block 260, the chip select only for the operational data portion of the memory module can be selected and data read therefrom into a buffer. In decision block 270, the data in the buffer can be subjected to error detection and, in decision block 280, if an error is detected, in block 290, the data can be read from the duplicate data portion of the memory module.
The embodiments of the invention can take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment containing both hardware and software elements. In a preferred embodiment, the invention is implemented in software, which includes but is not limited to firmware, resident software, microcode, and the like. Furthermore, the invention can take the form of a computer program product accessible from a computer-usable or computer-readable medium providing program code for use by or in connection with a computer or any instruction execution system.
For the purposes of this description, a computer-usable or computer readable medium can be any apparatus that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device. The medium can be an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system (or apparatus or device) or a propagation medium. Examples of a computer-readable medium include a semiconductor or solid state memory, magnetic tape, a removable computer diskette, a random access memory (RAM), a read-only memory (ROM), a rigid magnetic disk and an optical disk. Current examples of optical disks include compact disk - read only memory (CD-ROM), compact disk - read/write (CD-R/W) and DVD.
A data processing system suitable for storing and/or executing program code will include at least one processor coupled directly or indirectly to memory elements through a
system bus. The memory elements can include local memory employed during actual execution of the program code, bulk storage, and cache memories which provide temporary storage of at least some program code in order to reduce the number of times code must be retrieved from bulk storage during execution. Input/output or I/O devices (including but not limited to keyboards, displays, pointing devices, etc.) can be coupled to the system either directly or through intervening I/O controllers. Network adapters may also be coupled to the system to enable the data processing system to become coupled to other data processing systems or remote printers or storage devices through intervening private or public networks. Modems, cable modem and Ethernet cards are just a few of the currently available types of network adapters.
Claims
1. A single channel memory mirroring system comprising: a memory controller; a single communications channel; an operational data portion of memory, and a duplicate data portion of memory, both portions being communicatively coupled to the memory controller over the single communications channel; and, single channel memory mirror logic comprising program code enabled to mirror data in the operational data portion of memory in the duplicate data portion of memory.
2. The system of claim 1, wherein the operational data portion of memory is disposed in a first memory module coupled to the memory controller over the single communications channel, and wherein the duplicate data portion of memory is disposed in a second memory module coupled to the memory controller over the single communications channel.
3. The system of claim 1, wherein the operational data portion of memory is disposed across a first grouping of memory modules coupled to the memory controller over the single communications channel, and wherein the duplicate data portion of memory is disposed across a second grouping of memory modules coupled to the memory controller over the single communications channel.
4. The system of claim 1, wherein the operational data portion of memory is disposed in a first portion of a single memory module coupled to the memory controller over the single communications channel, and wherein the duplicate data portion of memory is disposed in a second portion of the single memory module coupled to the memory controller over the single communications channel.
5. The system of claim 1, wherein the operational data portion of memory is disposed in both a first memory module coupled to the memory controller over the single communications channel, and also in a second memory module coupled to the memory controller over the single communications channel, and wherein the duplicate data portion of memory is disposed in the second memory module coupled to the memory controller over the single communications channel.
6. The system of claim 2, wherein the program code of the single channel memory mirror logic is enabled to mirror data in the operational data portion of memory in the duplicate data portion of memory by concurrently selecting chip selects for each of the first and second memory modules during a write operation.
7. A single channel memory mirroring method comprising writing operational and duplicate data during memory mirroring to respective operational data and duplicate data portions of memory concurrently over a single communications channel.
8. The method of claim 7, wherein writing operational and duplicate data during memory mirroring to respective operational data and duplicate data portions of memory concurrently over a single communications channel, comprises: first retrieving a location of operational data in a first memory module; second retrieving a location of duplicate data in a second memory module; activating a chip select for each of the memory modules; and, writing data to both locations simultaneously over the single communications channel.
9. The method of claim 7, wherein writing operational and duplicate data during memory mirroring to respective operational data and duplicate data portions of memory concurrently over a single communications channel, comprises: first retrieving a location of operational data in a first grouping of memory modules; second retrieving a location of duplicate data in a second grouping of memory modules; activating chip selects for each of the groupings; and, writing data to both locations simultaneously over the single communications channel.
10. The method of claim 7, wherein writing operational and duplicate data during memory mirroring to respective operational data and duplicate data portions of memory concurrently over a single communications channel, comprises: first retrieving a location of operational data in a single memory module; second retrieving a location of duplicate data in the single memory module; activating a chip select for the single memory module; and, writing data to both locations simultaneously over the single communications channel.
11. A computer program product comprising a computer usable medium embodying computer usable program code for single channel memory mirroring, the computer program product comprising computer usable program code which when executed on a computer causes the computer to perform the steps of any of claims 7 to 10.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/567,964 US9262284B2 (en) | 2006-12-07 | 2006-12-07 | Single channel memory mirror |
PCT/EP2007/062951 WO2008068176A1 (en) | 2006-12-07 | 2007-11-28 | Single channel memory mirroring |
Publications (1)
Publication Number | Publication Date |
---|---|
EP2097821A1 true EP2097821A1 (en) | 2009-09-09 |
Family
ID=39226614
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EP07847469A Withdrawn EP2097821A1 (en) | 2006-12-07 | 2007-11-28 | Single channel memory mirroring |
Country Status (3)
Country | Link |
---|---|
US (1) | US9262284B2 (en) |
EP (1) | EP2097821A1 (en) |
WO (1) | WO2008068176A1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9547449B2 (en) | 2014-11-12 | 2017-01-17 | International Business Machines Corporation | Performance optimization of read functions in a memory system |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7769972B2 (en) * | 2007-01-18 | 2010-08-03 | Lsi Corporation | Storage system management based on a backup and recovery solution embedded in the storage system |
US8200925B2 (en) * | 2008-10-31 | 2012-06-12 | Mosaid Technologies Incorporated | Data mirroring in serial-connected memory system |
TWI417893B (en) * | 2009-05-06 | 2013-12-01 | Silicon Motion Inc | Data accessing apparatus and data accessing method |
JP5949540B2 (en) * | 2012-12-27 | 2016-07-06 | 富士通株式会社 | Information processing apparatus and stored information analysis method |
US9606944B2 (en) * | 2014-03-20 | 2017-03-28 | International Business Machines Corporation | System and method for computer memory with linked paths |
CN104252419B (en) | 2014-09-16 | 2017-09-19 | 华为技术有限公司 | A kind of method and device of Memory Allocation |
US9747035B2 (en) * | 2014-12-17 | 2017-08-29 | Empire Technology Development Llc | Reducing memory overhead associated with memory protected by a fault protection scheme |
WO2017007487A1 (en) * | 2015-07-09 | 2017-01-12 | Hewlett Packard Enterprise Development Lp | Non-volatile memory die data mirroring |
US9996411B1 (en) * | 2016-11-29 | 2018-06-12 | International Business Machines Corporation | In-channel memory mirroring |
Family Cites Families (69)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US257617A (en) * | 1882-05-09 | Dredging-machine | ||
JPS5423270B1 (en) * | 1970-03-13 | 1979-08-13 | ||
US3744919A (en) * | 1971-07-16 | 1973-07-10 | Hanscom G | Color measuring with memory |
BE789234A (en) * | 1971-09-29 | 1973-01-15 | Colorant Schmuckstein G M B H | METHOD AND DEVICE FOR REGISTRATION OF THE QUALITIES OF JEWELERY STONES |
AT344419B (en) * | 1973-03-20 | 1978-07-25 | Dihaco Diamanten Handels Co | DEVICE FOR DETERMINING THE EVALUATION DATA OF COLORED GEMS, IN PARTICULAR DIAMONDS |
US3944368A (en) * | 1973-07-11 | 1976-03-16 | Beesley Casper R | Apparatus for color analysis of precious stones |
IL43465A (en) * | 1973-10-23 | 1976-12-31 | Yeda Res & Dev | Gem identification |
JPS5290372A (en) * | 1976-01-23 | 1977-07-29 | Okuda Kazumi | Patter embossed diamond |
IT1085202B (en) * | 1976-02-05 | 1985-05-28 | Dihaco Diamanten Handels Co | PROCEDURE AND DEVICE FOR THE DETERMINATION OF ESTIMATE DATA OF PRECIOUS STONES |
US4033683A (en) * | 1976-07-14 | 1977-07-05 | Tancredi Henry J | Image viewing apparatus |
ZA765149B (en) * | 1976-08-27 | 1978-04-26 | De Beers Ind Diamond | Measurement of optical properties |
US4280625A (en) * | 1978-04-03 | 1981-07-28 | Grobbelaar Jacobus H | Shade determination |
US4330062A (en) * | 1978-06-21 | 1982-05-18 | Sunkist Growers, Inc. | Method and apparatus for measuring the surface color of an article |
US4266871A (en) * | 1978-07-28 | 1981-05-12 | Gem Instruments Corporation | Apparatus for visually duplicating gemstones |
US4291975A (en) * | 1979-10-03 | 1981-09-29 | Scientific Gem Identification, Inc. | Apparatus for determining the color characteristics of a gem |
US4476982A (en) * | 1981-04-01 | 1984-10-16 | Sunkist Growers, Inc. | Method and apparatus for grading articles according to their surface color |
US4461568A (en) * | 1981-06-10 | 1984-07-24 | Welbourn Christopher M | Assessing the color of gemstones and the like |
JPS58728A (en) * | 1981-06-25 | 1983-01-05 | Shimadzu Corp | Diamond color measuring device |
JPS5892920A (en) * | 1981-11-30 | 1983-06-02 | Karuniyuu Kogaku Kogyo Kk | Measuring device for diamond color |
US4527895A (en) * | 1983-01-25 | 1985-07-09 | Gemdialogue Systems, Inc. | Method of characterizing the colored appearance of a gemstone |
US4534644A (en) * | 1983-03-22 | 1985-08-13 | Beesley Casper R | Guides for color grading faceted gemstones |
JPS60109041U (en) * | 1983-12-27 | 1985-07-24 | 有限会社 ジエイ デイ− エム | Instrument for determining the brilliance of gemstones such as diamonds |
US4615902A (en) * | 1985-09-03 | 1986-10-07 | E. I. Du Pont De Nemours And Company | Color panel standards sorting system |
ZA867411B (en) * | 1985-09-30 | 1987-09-30 | Cra Services | Classifier |
US5072368A (en) | 1985-10-31 | 1991-12-10 | International Business Machines Corporation | Immediate duplication of I/O requests on a record by record basis by a computer operating system |
GB8531330D0 (en) * | 1985-12-19 | 1986-01-29 | British Petroleum Co Plc | Differentiation process |
GB8700917D0 (en) * | 1987-01-16 | 1987-02-18 | British Petroleum Co Plc | Separation process |
US5143212A (en) * | 1989-10-05 | 1992-09-01 | K. G. Roberts & Associates, Inc. | Gemstone color communication kits |
IL92133A (en) * | 1989-10-27 | 1993-01-31 | Uri Neta Haifa And Aharon Yifr | Method and apparatus for identifying gemstones, particularly diamonds |
JP2512979Y2 (en) * | 1989-12-14 | 1996-10-02 | 諏訪貿易株式会社 | Gem guarantee |
EP0475554B1 (en) * | 1990-02-05 | 1997-08-06 | Scitex Corporation Ltd. | Apparatus and method for colour calibration |
US5044123A (en) * | 1990-03-22 | 1991-09-03 | Douglas Hoffman | Concave-convex faceting method and apparatus |
US5835200A (en) * | 1990-04-24 | 1998-11-10 | Gersan Establishment | Method and apparatus for examining an object |
US5064281A (en) * | 1990-07-03 | 1991-11-12 | Davis Charles E | Method and apparatus for simplifying and improving consistency of color grading of gemstones |
US5005971A (en) * | 1990-07-03 | 1991-04-09 | Davis Charles E | Method and apparatus for simplifying and improving consistency of color grading of gemstones |
US5182616A (en) * | 1991-04-03 | 1993-01-26 | K. G. Roberts & Associates | Color communication kits |
IL98622A (en) * | 1991-06-25 | 1996-10-31 | Scitex Corp Ltd | Method and apparatus for employing neural networks in color image processing |
US5579407A (en) * | 1992-04-21 | 1996-11-26 | Murez; James D. | Optical character classification |
US5335293A (en) * | 1992-06-16 | 1994-08-02 | Key Technology, Inc. | Product inspection method and apparatus |
JPH0711488B2 (en) * | 1992-12-18 | 1995-02-08 | 株式会社泰光 | A jewel magnifying device with a cut surface |
JPH074934A (en) * | 1993-02-12 | 1995-01-10 | General Electric Co <Ge> | Classification and sorting of crystalline material body |
US5694581A (en) * | 1993-09-07 | 1997-12-02 | Industrial Technology Research Institute | Concurrent disk array management system implemented with CPU executable extension |
KR100269924B1 (en) * | 1993-10-08 | 2000-11-01 | 하지메 히토추야나기 | A synthetic diamond and process for producing the same |
US5422711A (en) * | 1993-10-18 | 1995-06-06 | Can; Hanna | Gem viewing and manipulation apparatus |
GB9417665D0 (en) * | 1994-09-02 | 1994-10-19 | Gersan Ets | Distinguishing natural from synthetic diamond |
US5615005A (en) * | 1995-01-23 | 1997-03-25 | Ugts, Inc. | Gemstone evaluation system |
CA2162532C (en) * | 1995-11-09 | 2001-01-30 | Dana J. Vanier | Gemstone registration system |
US5818953A (en) * | 1996-04-17 | 1998-10-06 | Lamb-Weston, Inc. | Optical characterization method |
US5796176A (en) * | 1996-07-11 | 1998-08-18 | Donnelly Corporation | Memory mirror system for vehicles |
JPH10138665A (en) * | 1996-11-11 | 1998-05-26 | Taidou Fumie | Written statement of expert opinion for jewel |
US5812469A (en) | 1996-12-31 | 1998-09-22 | Logic Vision, Inc. | Method and apparatus for testing multi-port memory |
US5966673A (en) * | 1997-01-10 | 1999-10-12 | Diamond Technologies, Inc. | System and method for computerized evaluation of gemstones |
US5950178A (en) * | 1997-07-29 | 1999-09-07 | Borgato; Sergio | Data processing system and method for facilitating transactions in diamonds |
US6223301B1 (en) * | 1997-09-30 | 2001-04-24 | Compaq Computer Corporation | Fault tolerant memory |
US6020954A (en) * | 1997-12-18 | 2000-02-01 | Imagestatistics, Inc. | Method and associated apparatus for the standardized grading of gemstones |
US5983238A (en) * | 1997-12-26 | 1999-11-09 | Diamond Id | Gemstons identification tracking and recovery system |
US6473165B1 (en) * | 2000-01-21 | 2002-10-29 | Flex Products, Inc. | Automated verification systems and methods for use with optical interference devices |
US6854070B2 (en) | 2000-01-25 | 2005-02-08 | Hewlett-Packard Development Company, L.P. | Hot-upgrade/hot-add memory |
US6813688B2 (en) * | 2000-12-04 | 2004-11-02 | Sun Microsystems, Inc. | System and method for efficient data mirroring in a pair of storage devices |
JP4061272B2 (en) | 2002-01-09 | 2008-03-12 | 株式会社ルネサステクノロジ | Memory system and memory card |
US6813689B2 (en) | 2002-03-29 | 2004-11-02 | Emc Corporation | Communications architecture for a high throughput storage processor employing extensive I/O parallelization |
US7506130B2 (en) * | 2002-05-22 | 2009-03-17 | Hewlett-Packard Development Company, L.P. | Mirrored computer memory on split bus |
US20030221058A1 (en) * | 2002-05-22 | 2003-11-27 | Rentschler Eric M. | Mirrored computer memory on single bus |
US6954832B2 (en) | 2002-05-31 | 2005-10-11 | Broadcom Corporation | Interleaver for iterative decoder |
US7130229B2 (en) | 2002-11-08 | 2006-10-31 | Intel Corporation | Interleaved mirrored memory systems |
US20040172508A1 (en) * | 2003-02-27 | 2004-09-02 | Vincent Nguyen | System and method for memory mirroring |
US7143250B1 (en) * | 2003-06-02 | 2006-11-28 | Lsi Logic Corporation | Methods and systems for improving mirror performance via optimized multi-channel utilization |
US7237056B2 (en) * | 2003-11-17 | 2007-06-26 | Hewlett-Packard Development Company, L.P. | Tape mirror interface |
US7555579B2 (en) | 2004-05-21 | 2009-06-30 | Nortel Networks Limited | Implementing FIFOs in shared memory using linked lists and interleaved linked lists |
-
2006
- 2006-12-07 US US11/567,964 patent/US9262284B2/en active Active
-
2007
- 2007-11-28 WO PCT/EP2007/062951 patent/WO2008068176A1/en active Application Filing
- 2007-11-28 EP EP07847469A patent/EP2097821A1/en not_active Withdrawn
Non-Patent Citations (1)
Title |
---|
See references of WO2008068176A1 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9547449B2 (en) | 2014-11-12 | 2017-01-17 | International Business Machines Corporation | Performance optimization of read functions in a memory system |
Also Published As
Publication number | Publication date |
---|---|
WO2008068176A1 (en) | 2008-06-12 |
US20080140961A1 (en) | 2008-06-12 |
US9262284B2 (en) | 2016-02-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9262284B2 (en) | Single channel memory mirror | |
US7694093B2 (en) | Memory module and method for mirroring data by rank | |
US7840860B2 (en) | Double DRAM bit steering for multiple error corrections | |
US7587625B2 (en) | Memory replay mechanism | |
US8869007B2 (en) | Three dimensional (3D) memory device sparing | |
CN101477480B (en) | Memory control method, apparatus and memory read-write system | |
US10754724B2 (en) | Memory device for detecting a defective memory chip | |
TW201003662A (en) | Memory malfunction prediction system and method | |
US9042191B2 (en) | Self-repairing memory | |
US11036597B2 (en) | Semiconductor memory system and method of repairing the semiconductor memory system | |
CN112579342B (en) | Memory error correction method, memory controller and electronic equipment | |
US7076686B2 (en) | Hot swapping memory method and system | |
US20060077750A1 (en) | System and method for error detection in a redundant memory system | |
US20080256416A1 (en) | Apparatus and method for initializing memory | |
US9037948B2 (en) | Error correction for memory systems | |
US8176388B1 (en) | System and method for soft error scrubbing | |
US11681458B2 (en) | Memory device and method reading data | |
CN116783654A (en) | Adaptive error correction to improve system memory reliability, availability and serviceability (RAS) | |
US9043655B2 (en) | Apparatus and control method | |
CN113495673B (en) | Read-write method and memory device | |
US10998081B1 (en) | Memory storage device having automatic error repair mechanism and method thereof | |
CN109753239B (en) | Semiconductor memory module, semiconductor memory system, and method of accessing the same | |
CN112542202A (en) | Memory system and method of operating the same | |
CN103514961B (en) | Selfreparing memorizer, the calculating device comprising this memorizer and the method for operation memorizer | |
US11586360B2 (en) | Hybrid memory mirroring using storage class memory |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
17P | Request for examination filed |
Effective date: 20090701 |
|
AK | Designated contracting states |
Kind code of ref document: A1 Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LI LT LU LV MC MT NL PL PT RO SE SI SK TR |
|
17Q | First examination report despatched |
Effective date: 20090925 |
|
DAX | Request for extension of the european patent (deleted) | ||
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN |
|
18D | Application deemed to be withdrawn |
Effective date: 20100730 |