EP2437172A1 - RAM single event upset (SEU) method to correct errors - Google Patents
RAM single event upset (SEU) method to correct errors Download PDFInfo
- Publication number
- EP2437172A1 EP2437172A1 EP11178698A EP11178698A EP2437172A1 EP 2437172 A1 EP2437172 A1 EP 2437172A1 EP 11178698 A EP11178698 A EP 11178698A EP 11178698 A EP11178698 A EP 11178698A EP 2437172 A1 EP2437172 A1 EP 2437172A1
- Authority
- EP
- European Patent Office
- Prior art keywords
- data
- parity
- parity information
- logic
- edac
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims description 8
- 230000015654 memory Effects 0.000 claims abstract description 68
- 238000001514 detection method Methods 0.000 claims abstract description 22
- 238000012937 correction Methods 0.000 claims abstract description 18
- 238000012360 testing method Methods 0.000 claims description 9
- 230000004044 response Effects 0.000 claims description 6
- 230000006399 behavior Effects 0.000 claims description 3
- 230000000694 effects Effects 0.000 abstract description 4
- 238000002347 injection Methods 0.000 description 6
- 239000007924 injection Substances 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000006854 communication Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 230000000116 mitigating effect Effects 0.000 description 3
- 239000002245 particle Substances 0.000 description 3
- 101001122448 Rattus norvegicus Nociceptin receptor Proteins 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000004308 accommodation Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007175 bidirectional communication Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 239000000243 solution Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1048—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
-
- G—PHYSICS
- 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
- G06F11/167—Error detection by comparing the memory output
Definitions
- the present invention is related to memory systems and in particular to redundant memory systems for mitigating the effect of single event upset (SEU).
- SEU single event upset
- EDAC error detection and correction
- the EDAC circuit mitigates the effect of single event upsets (SEUs) in a redundant memory system.
- the EDAC circuit includes a first input for receiving first data and parity information stored by a first memory device and a second input for receiving second data and parity information stored by a second memory device.
- a first output provides the data selected by the EDAC circuit onto a data bus.
- the EDAC circuit includes a first parity check logic that calculates whether parity is 'good' or 'bad' in the received first data and parity information.
- Second parity check logic calculates whether parity is 'good' or 'bad' in the received second data and parity information.
- Bit comparison logic detects differences between the first data and the second data, and between the first parity bits and the second parity bits. Based on the parity check calculated for the first and second data, and the bit comparison, data select logic selects either the first data or the second data for provision to the data bus.
- FIG. 1 is a block diagram of a memory system having an error correction and detection (EDAC) circuit for mitigating single event upsets (SEUs) according to an embodiment of the present invention.
- EDAC error correction and detection
- FIG. 2 is a logic/block diagram illustrating operations performed by the EDAC according to an embodiment of the present invention.
- the present invention provides a memory system that mitigates the effect of single event upsets (SEUs).
- SEUs single event upsets
- the present invention employs redundant memory (e.g., first and second memory devices storing identical data) in combination with an error detection and correction (EDAC) circuit to mitigate the consequences of a SEU event.
- EDAC error detection and correction
- traditional EDAC circuits attempt to correct errant data by reconstructing the original data using error correction codes
- the EDAC circuit as described in greater detail herein performs correction by correctly selecting a redundant copy of the data. Storing redundant data ensures that even if an SEU event occurs on one of the memory devices, identical and presumably good data can be retrieved from the second memory.
- the function of the EDAC circuit is to identify when data on one or both of the redundant memories is 'bad', and select ⁇ good' data from the other memory to propagate to other systems.
- the EDAC circuit is responsible for recognizing when neither of the available data is 'good'.
- FIG. 1 is a block diagram of a memory system having an error correction and detection (EDAC) circuit for mitigating single event upsets (SEUs) according to an embodiment of the present invention.
- EDAC error correction and detection
- SEUs single event upsets
- memory system 10 is employed in an electronic engine control system for an aerospace application.
- the present invention may be applicable in a variety of applications, but is particularly suited for aerospace applications exposed to stray neutrons and other particles that are often associated with the presence of SEU errors.
- System 10 includes first processor 12, and second processor 14, first memory 16 (i.e., memory copy A), second memory 18 (i.e., memory copy B), error detection and correction (EDAC) circuit 20, oscillator 22, and low skew buffer 24.
- first and second processors 12 and 14 provide additional redundancy to the system, but in other embodiments a single processor (e.g., first processor 12) may be employed.
- First memory 16 and second memory 18 are redundant memory devices, meaning identical data is maintained in both devices.
- memory devices 16 and 18 are static random access memory (SRAM) devices, but other types of memory devices may be employed depending on the application.
- SRAM static random access memory
- EDAC circuit 20 is implemented with a field programmable gate array (FPGA) device, but in other embodiments may be implemented with a combination of various hardware and software components. Additionally, it will be understood that each of the first memory 16 and second memory 18 can include multiple memory devices, where one or more memory devices holding a first copy of data and parity information are referred to as first memory 16 or first memory device 16, and one or more memory devices holding a second copy of data and parity information are referred to as second memory 18 or second memory device 18.
- FPGA field programmable gate array
- First processor 12 includes external bus interface (EBI) 26 and phase lock loop (PLL) 28, with second processor 14 similarly including EBI 30 and PLL 32.
- EBIs 26 interface first processor 12 to second processor 14, first memory 16, second memory 18, and EDAC circuit 20 via control bus 34, address bus 36 and data bus 38, respectively.
- Control bus 34 communicates control instructions from first processor 12 (or second processor 14) to components such as the redundant memories 16 and 18, and EDAC circuit 20. Control instructions may include read commands, write commands, and test commands.
- Address bus 36 dictates the address to be accessed within the redundant memories 16 and 18.
- Data bus 38 communicates data to and from the redundant memories 16, 18 and EDAC circuit 20.
- Arbitration bus 40 is employed in embodiments relying on dual processors to determine which processor has priority over use of the control, address and data buses 34, 36, 38.
- Oscillator 22 provides a clock frequency for use in system 10.
- Low skew buffer 24 operates in conjunction with the system clock to distribute a synchronous clock signal to first processor 12, second processor 14, memory device 16, memory device 18 and EDAC circuit 20. In this way, synchronous communication is maintained between devices in memory system 10.
- memory system 10 The most common operations performed by memory system 10 are read/write operations. For example, to write data to memory first processor 12 (or second processor 14) places a 'write' command on control bus 34, an address identifying the location in memory data should be written to on address bus 36, and the data to be written on data bus 38. Commands/addresses/data placed on the respective buses 34, 36, 38 are communicated to both the first memory device 16 and second memory device 18. In this way, data placed on data bus 38 is written to both the first memory device 16 and second memory device 18, thereby maintaining redundant data in both devices.
- first processor 12 (or second processor 14) places a 'read' command on control bus 34 along with an address on address bus 36 that identifies the location in memory from which data should be read. Based on the received read command and address, the corresponding data is retrieved by both the first memory 16 and second memory 18 and communicated to EDAC circuit 20 for error detection and correction.
- EDAC circuit 20 checks for errors in the received data and makes a determination regarding which data to provide onto data bus 38 for readout by the respective processor. Operations performed by EDAC circuit 20 include identifying whether data from first memory 16 or second memory 18 have errors, what data is to be provided onto data bus 38, or whether the data is uncorrectable such that the system should be reset and default data should be provided onto data bus 38.
- FIG. 2 is a logic/block diagram illustrating operations performed by EDAC circuit 20 according to an embodiment of the present invention.
- EDAC circuit 20 encodes data (e.g., adding parity) used to identify errors during readback, determines whether the errors are correctable, selects data for output onto data bus 38, and determines when it is necessary to reset the memory system 12, 14, 16, 18, 20 of FIG. 1 .
- EDAC circuit 20 includes interfaces for bi-directional communication with first memory device 16, second memory device 18, and data bus 38.
- EDAC circuit 20 further includes a plurality of registers R1-R12 for capturing inputs and outputs provided to and from EDAC circuit 20, as well as for capturing internal data checks and comparisons within EDAC circuit 20.
- registers R1-R12 allow EDAC circuit 20 to pipeline the error detection and correction process.
- register R9 is used to latch data received from data bus 38 for subsequent provision to multiplexers 72 and 74, and parity generator 62. The data is subsequently latched along with generated parity bits by registers R1, R3, R5, and R7 for provision to the respective memory devices 16, 18. Similarly, data and parity bits read from the memory devices 16 and 18 are latched by registers R2, R4, R6, and R8, respectively.
- Additional registers R11 and R12 are employed within EDAC circuit 20 for storing the results of various comparisons and calculations associated with the error detection and correction functionality.
- EDAC circuit 20 operates to encode data received from data bus 38 with error correction bits that are subsequently used during read operations to determine whether the data is 'good' or 'bad'.
- EDAC circuit 20 employs parity generator 62 for appending parity bits to the received data. For each set of data bits, a parity bit is added to make the number of zeros or ones in the data either an even or an odd number. The parity bits are stored along with the data bits, and during readback the parity bits can be used to determine whether the data is 'good' or 'bad'.
- each data word is comprised of thirty-two bits divided into four 8-bit bytes.
- a parity bit is generated with respect to each 8-bit byte, resulting in four parity bits being associated with each thirty-two bit data word.
- the use of parity bits may result in simplified logic, reduced gate count, and increased throughput as compared to the use of more elaborate error correction codes or cyclic redundancy checks that can require more complex logic and/or additional clock cycles to complete.
- EDAC circuit 20 compares the data bits from both memories to one another to detect the number of bits that are different, checks the parity associated with each data word, and based on the results determines which copy of the data to use or whether neither copy of the data should be employed.
- the following table illustrates the behavior of EDAC circuit 20 as illustrated in FIG. 2 according to an embodiment of the present invention.
- the column 'Data Compare Output' is a function of a comparison of data bits from first memory 16 and second memory 18 that indicates the number of bits that are different between the respective data.
- the column 'Parity Compare Output' is a function of a comparison of parity A and parity B bits, with the output 'yes' indicating that no difference exists between the compared bits and 'no' indicating that a difference does exist between the parity bits.
- Cross-checking parity A bits and parity B bits provides increased error detection and accommodation coverage for faults in the check data in addition to handling errors in the data itself.
- the column 'Parity Check A Output' indicates the result of a parity check performed on the data word from first memory 16 based on the parity data from first memory 16.
- the column 'Copy to Use' indicates the memory from which data should be selected, and the column 'Reset' indicates whether neither set of data is 'good' such that the system 10 is reset.
- data A is selected to be provided to data bus 38. If there is a difference in the compared parity bits (but not in the compared data bits), indicating an error in either parity A bits or parity B bits, then EDAC circuit 20 selects data corresponding to whichever parity check comes out 'good' (rows 2, 3). That is, if the parity check for copy A is 'bad', then the error in the parity bits was likely in the parity A bits and therefore data B is provided to data bus 38.
- EDAC circuit 20 selects data based on which parity check indicates good parity (rows 4, 5). If neither the data comparison nor the parity comparison indicates any differences between the data provided by first memory 16 and second memory 18, but both parity checks are 'bad', this indicates a multiple-bit error between the data words, and neither copy of data is selected (row 6). In this instance, a reset signal is generated that indicates the system should be reset. In the event a single bit error is detected between data A and data B, as well as a difference between the parity bits, EDAC circuit 20 cannot determine which data copy is good and so default data is selected (row 7). Once again, a reset signal is generated indicating that the system should be reset. If a multiple bit error is detected between data A and data B, then EDAC circuit 20 selects default data and resets the system (row 8).
- Parity checker 50a receives the data word (labeled 'DataA') and parity bits (labeled 'ParityA') and performs a parity check to determine whether the parity is 'good'. In this way, parity checker 50a detects situations in which a single bit in the data is incorrect. In this embodiment, parity checker 50a checks the parity with respect to each 8-bit word and associated parity bit. In other embodiments, additional parity bits may be employed to improve the detection of errors.
- parity checker 50a determines that the parity of the data word is 'good', then the output ParChkA would indicate that all bytes within the data word is good (e.g., '0000').
- parity checker 50a determines that the parity of the first byte of the data word is 'bad', then the output would indicate an error in the first byte (e.g., '1000').
- the output of parity checker 50a is supplied to data select logic 54.
- Parity checker 50b performs the same function as that performed by parity checker 50a, but performs the parity check on data received from second memory device (e.g., data word labeled ⁇ DataB').
- the output of parity checker 50b (labeled ⁇ ParChkB') is supplied to single/multibit error status logic 56 and data select logic 54.
- single bit errors are detected by parity checker 50b, but multi-bit errors (within an individual byte of the data word) and errors within the parity bits are not detected.
- Bit compare logic 52 acts to compare the data word and parity bits from first memory device 16 to the data word and parity bits from second memory device 18. In this way, differences between individual bits can be detected.
- logic gate XOR1 compares data A from first memory 16 to data B from second memory 18 and generates an output (labeled 'Cmp_data') that identifies differences between the respective data words. If no errors exist, the data words stored in first memory 16 and second memory 18 are identical (i.e., redundant). If there are differences between the data words, those are indicated on a bit-by-bit basis in the bit compare output 'Cmp_data' provided to byte error detection logic 53 and single bit / multiple bit error detect logic 58.
- Logic gate XOR2 similarly compares parity bits from first memory 16 to parity bits from second memory 18 and generates an output (labeled 'Cmp_par') that identifies differences between the respective parity bits.
- the outputs provided by bit compare logic 52 are provided to both byte error detection logic 53 and to single bit/multiple bit error detection logic 58.
- Byte error detection logic 53 detects errors within the compared data and parity bits and provides an output indicating the bytes that contain errors to data select logic 54. Based on the received inputs, data select logic 54 selects either data A or data B. In one embodiment, in the event data select logic 54 determines that neither set of data is good, data A is nonetheless selected as a default. To select a particular copy of the data to be used, data select logic 54 provides a data select signal (e.g., DataSe10, DataSe11) to data multiplexer 70. Based on the received data select signal, data multiplexer 70 provides at its output the selected data (labeled 'Data_Out'). The selected data is registered by latch R10 and provided onto data bus 38 for readout by the processor.
- a data select signal e.g., DataSe10, DataSe11
- Byte error detection logic 53 cannot determine which copy of data or parity bits holds the error, only that a discrepancy exists between the compared bits.
- data select logic 54 selects the data word to provide onto data bus 38. For example, if no data errors or parity errors (i.e., discrepancies) are detected by byte error detection logic 53, then data select logic 54 selects by default data A provided by first memory 16 (Table 1, row 1). If errors are detected in the parity bits, but not in the data bits, then data select logic 54 selects data A if the parity check associated with data A is 'good' (row 2).
- data select logic 54 selects data B (row 3). If errors are detected in the data word, but not in the parity bits, then data select logic 54 selects the data A if the parity check associated with data A is 'good' (row 5). Otherwise data select logic 54 selects data B (row 6). If errors are detected in both the data bits and the parity bits, then data select logic 54 is unable to determine which copy of data is 'good', and therefore selects invalid data A with a system reset (row 7). Finally, if multiple bit errors are detected within the data word, then no information is valid and the EDAC circuit issues a system reset. (row 8).
- single bit/multiple bit error detect logic 58 includes XOR logic tree 60, AND logic tree 63, and AND logic tree 64 for determining whether a single or multiple bit error exists.
- the result of the data bit comparison provided by XOR1 is provided as an input to XOR logic tree 60 and AND logic tree 63.
- the result of the parity bit compare provided by XOR2 and the output of XOR logic tree 60 are combined by AND logic 64 to detect the presence of single bit/multiple bit errors that extend to the parity bits as well.
- single bit/multiple bit error detect logic 58 provides an indication to single/multibit error status logic 56 that determines whether, in the presence of multiple bit errors, the system 10 needs to be reset via the 'Reset' command.
- the memory devices 16, 18 may be rewritten, erased, or powered down and copied over with new data.
- the address at which the errors occurred (as provided by address bus 36) is latched by address latch on error logic 58 and provided as an input to single/multi-bit error status logic 56.
- the location of the detected error is provided by single/multi-bit error status logic 56 as part of the EDAC status output provided to data multiplexer 70, and in turn provided onto data bus 38 for communication to the processor.
- software error injection logic 66 and software parity error injection logic 80 act to inject or insert errors into data stored by memory devices 16 and 18. During subsequent readout, the response by EDAC circuit 20 can be monitored to ensure the injected errors are properly identified and handled.
- software error injection logic 66 includes data A overwrite module 76, data B overwrite module 78, and multiplexers 72 and 74. Data provided by data bus 38 as part of a write operation is provided to data overwrite modules 76 and 78, and multiplexers 72 and 74.
- data stored in data overwrite modules 76 and 78 are ignored, and the correct data is selected via multiplexers 72 and 74 for communication to memory devices 16 and 18, respectively.
- multiplexers 72 and 74 are configured to select data from data overwrite modules 76 and 78, respectively, for communication to memory devices 16 and 18, respectively.
- Data overwrite modules 76 and 78 can be controlled via control signals received from I/O decode processor interface 68 to modify the stored data, allowing software error injection module 66 to inject errors into the stored data (e.g., inject errors in one copy of the data to test the bit comparison function) before stored to memory devices 16 and 18.
- software parity error injection logic 80 allows errors to be injected into the parity bits prior to storage to memory devices 16 and 18.
- Software parity error injection module 80 likewise receives commands from I/O decode processor interface 68. In response, errors are selectively injected into one of the four bit positions for each data word. The injected error is combined by XOR logic 82 with the normally generated parity bits provided by parity generator 62 to generate the desired parity bits with injected errors for storage to memory devices 16 and 18.
- the present invention provides a system and method for detecting and correcting errors in a redundant memory system. While the invention has been described with reference to an exemplary embodiment(s), it will be understood by those skilled in the art that various changes may be made and equivalents may be substituted for elements thereof without departing from the scope of the invention. In addition, many modifications may be made to adapt a particular situation or material to the teachings of the invention without departing from the essential scope thereof. Therefore, it is intended that the invention not be limited to the particular embodiment(s) disclosed, but that the invention will include all embodiments falling within the scope of the appended claims.
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
Description
- The present invention is related to memory systems and in particular to redundant memory systems for mitigating the effect of single event upset (SEU).
- Memory systems oftentimes employ an error detection and correction (EDAC) circuit to ensure that data read from memory circuitry is correct. That is, the EDAC detects the presence of errors in the data received from the memory system and to the extent possible acts to correct the detected errors.
- In aerospace applications, this problem is of particular importance. Memory devices used in aerospace applications are subject to high-energy neutrons and/or other particles that have the ability to flip or change the state of a particular memory cell in what is a called a 'single-event upset'. In the past, risks associated with SEU events were avoided by using 'hardened' memory devices resistant to these particles. Past solutions include 'hardening' of the memory devices such that they are less susceptible to SEU events. However, 'hardened' memory devices are typically much more expensive than traditional memory devices. It would therefore be beneficial if traditional memory devices could be employed while still providing the required protection from SEU events.
- An error detection and correction (EDAC) circuit mitigates the effect of single event upsets (SEUs) in a redundant memory system. The EDAC circuit includes a first input for receiving first data and parity information stored by a first memory device and a second input for receiving second data and parity information stored by a second memory device. A first output provides the data selected by the EDAC circuit onto a data bus. The EDAC circuit includes a first parity check logic that calculates whether parity is 'good' or 'bad' in the received first data and parity information. Second parity check logic calculates whether parity is 'good' or 'bad' in the received second data and parity information. Bit comparison logic detects differences between the first data and the second data, and between the first parity bits and the second parity bits. Based on the parity check calculated for the first and second data, and the bit comparison, data select logic selects either the first data or the second data for provision to the data bus.
-
FIG. 1 is a block diagram of a memory system having an error correction and detection (EDAC) circuit for mitigating single event upsets (SEUs) according to an embodiment of the present invention. -
FIG. 2 is a logic/block diagram illustrating operations performed by the EDAC according to an embodiment of the present invention. - The present invention provides a memory system that mitigates the effect of single event upsets (SEUs). In particular, the present invention employs redundant memory (e.g., first and second memory devices storing identical data) in combination with an error detection and correction (EDAC) circuit to mitigate the consequences of a SEU event. While traditional EDAC circuits attempt to correct errant data by reconstructing the original data using error correction codes, the EDAC circuit as described in greater detail herein performs correction by correctly selecting a redundant copy of the data. Storing redundant data ensures that even if an SEU event occurs on one of the memory devices, identical and presumably good data can be retrieved from the second memory. The function of the EDAC circuit is to identify when data on one or both of the redundant memories is 'bad', and select `good' data from the other memory to propagate to other systems. In addition, the EDAC circuit is responsible for recognizing when neither of the available data is 'good'.
-
FIG. 1 is a block diagram of a memory system having an error correction and detection (EDAC) circuit for mitigating single event upsets (SEUs) according to an embodiment of the present invention. In the embodiment shown inFIG. 1 ,memory system 10 is employed in an electronic engine control system for an aerospace application. The present invention may be applicable in a variety of applications, but is particularly suited for aerospace applications exposed to stray neutrons and other particles that are often associated with the presence of SEU errors. -
System 10 includesfirst processor 12, andsecond processor 14, first memory 16 (i.e., memory copy A), second memory 18 (i.e., memory copy B), error detection and correction (EDAC)circuit 20,oscillator 22, andlow skew buffer 24. In this embodiment, first andsecond processors First memory 16 andsecond memory 18 are redundant memory devices, meaning identical data is maintained in both devices. In this embodiment,memory devices FIG. 1 , EDACcircuit 20 is implemented with a field programmable gate array (FPGA) device, but in other embodiments may be implemented with a combination of various hardware and software components. Additionally, it will be understood that each of thefirst memory 16 andsecond memory 18 can include multiple memory devices, where one or more memory devices holding a first copy of data and parity information are referred to asfirst memory 16 orfirst memory device 16, and one or more memory devices holding a second copy of data and parity information are referred to assecond memory 18 orsecond memory device 18. -
First processor 12 includes external bus interface (EBI) 26 and phase lock loop (PLL) 28, withsecond processor 14 similarly including EBI 30 andPLL 32. EBIs 26 interfacefirst processor 12 tosecond processor 14,first memory 16,second memory 18, and EDACcircuit 20 viacontrol bus 34,address bus 36 anddata bus 38, respectively.Control bus 34 communicates control instructions from first processor 12 (or second processor 14) to components such as theredundant memories circuit 20. Control instructions may include read commands, write commands, and test commands.Address bus 36 dictates the address to be accessed within theredundant memories Data bus 38 communicates data to and from theredundant memories circuit 20.Arbitration bus 40 is employed in embodiments relying on dual processors to determine which processor has priority over use of the control, address anddata buses Oscillator 22 provides a clock frequency for use insystem 10.Low skew buffer 24 operates in conjunction with the system clock to distribute a synchronous clock signal tofirst processor 12,second processor 14,memory device 16,memory device 18 andEDAC circuit 20. In this way, synchronous communication is maintained between devices inmemory system 10. - The most common operations performed by
memory system 10 are read/write operations. For example, to write data to memory first processor 12 (or second processor 14) places a 'write' command oncontrol bus 34, an address identifying the location in memory data should be written to onaddress bus 36, and the data to be written ondata bus 38. Commands/addresses/data placed on therespective buses first memory device 16 andsecond memory device 18. In this way, data placed ondata bus 38 is written to both thefirst memory device 16 andsecond memory device 18, thereby maintaining redundant data in both devices. - To read data from memory, first processor 12 (or second processor 14) places a 'read' command on
control bus 34 along with an address onaddress bus 36 that identifies the location in memory from which data should be read. Based on the received read command and address, the corresponding data is retrieved by both thefirst memory 16 andsecond memory 18 and communicated toEDAC circuit 20 for error detection and correction. EDACcircuit 20 checks for errors in the received data and makes a determination regarding which data to provide ontodata bus 38 for readout by the respective processor. Operations performed by EDACcircuit 20 include identifying whether data fromfirst memory 16 orsecond memory 18 have errors, what data is to be provided ontodata bus 38, or whether the data is uncorrectable such that the system should be reset and default data should be provided ontodata bus 38. -
FIG. 2 is a logic/block diagram illustrating operations performed by EDACcircuit 20 according to an embodiment of the present invention. In the embodiment shown inFIG. 2 ,EDAC circuit 20 encodes data (e.g., adding parity) used to identify errors during readback, determines whether the errors are correctable, selects data for output ontodata bus 38, and determines when it is necessary to reset thememory system FIG. 1 . EDACcircuit 20 includes interfaces for bi-directional communication withfirst memory device 16,second memory device 18, anddata bus 38.EDAC circuit 20 further includes a plurality of registers R1-R12 for capturing inputs and outputs provided to and fromEDAC circuit 20, as well as for capturing internal data checks and comparisons withinEDAC circuit 20. The use of registers R1-R12 allowsEDAC circuit 20 to pipeline the error detection and correction process. For example, register R9 is used to latch data received fromdata bus 38 for subsequent provision tomultiplexers parity generator 62. The data is subsequently latched along with generated parity bits by registers R1, R3, R5, and R7 for provision to therespective memory devices memory devices EDAC circuit 20 for storing the results of various comparisons and calculations associated with the error detection and correction functionality. - During write operations EDAC
circuit 20 operates to encode data received fromdata bus 38 with error correction bits that are subsequently used during read operations to determine whether the data is 'good' or 'bad'. In the example provided inFIG. 2 ,EDAC circuit 20 employsparity generator 62 for appending parity bits to the received data. For each set of data bits, a parity bit is added to make the number of zeros or ones in the data either an even or an odd number. The parity bits are stored along with the data bits, and during readback the parity bits can be used to determine whether the data is 'good' or 'bad'. In the embodiment shown inFIG. 2 , each data word is comprised of thirty-two bits divided into four 8-bit bytes. A parity bit is generated with respect to each 8-bit byte, resulting in four parity bits being associated with each thirty-two bit data word. The use of parity bits may result in simplified logic, reduced gate count, and increased throughput as compared to the use of more elaborate error correction codes or cyclic redundancy checks that can require more complex logic and/or additional clock cycles to complete. - During data read operations, data and parity bits stored by first memory 16 (data A and parity A) and second memory 18 (data B and parity B) are pipelined through
EDAC circuit 20.EDAC circuit 20 compares the data bits from both memories to one another to detect the number of bits that are different, checks the parity associated with each data word, and based on the results determines which copy of the data to use or whether neither copy of the data should be employed. The following table illustrates the behavior ofEDAC circuit 20 as illustrated inFIG. 2 according to an embodiment of the present invention. In particular, the column 'Data Compare Output' is a function of a comparison of data bits fromfirst memory 16 andsecond memory 18 that indicates the number of bits that are different between the respective data. The column 'Parity Compare Output' is a function of a comparison of parity A and parity B bits, with the output 'yes' indicating that no difference exists between the compared bits and 'no' indicating that a difference does exist between the parity bits. Cross-checking parity A bits and parity B bits provides increased error detection and accommodation coverage for faults in the check data in addition to handling errors in the data itself. The column 'Parity Check A Output' indicates the result of a parity check performed on the data word fromfirst memory 16 based on the parity data fromfirst memory 16. The column 'Copy to Use' indicates the memory from which data should be selected, and the column 'Reset' indicates whether neither set of data is 'good' such that thesystem 10 is reset.TABLE 1 Row Case Data Compare Output Parity Compare Output Parity Check A Output Parity Check B Output Copy to Use Reset 1 Normal -No Error 0 Yes OK OK A No 2 Single Bit Error in Parity B 0 No OK Odd Parity Bad Even Parity A No 3 Single Bit Error in Parity A 0 No Bad Even Parity OK Odd Parity B No 4 Single Bit Error on B 1 Yes OK Odd Parity Bad Even Parity A No 5 Single Bit Error on A 1 Yes Bad Even Parity OK Odd Parity B No 6 Multi-Bit Error 0 Yes Bad Even Parity Bad Even Parity Default * Yes 7 Multi Bit Error 1 No Don't Care Don't Care Default * Yes 8 Multi Bit Error 2-8 Don't Care Don't Care Don't Care Default * Yes *Default could be either data - As a default, if no errors exist in the data or the parity bits (row 1) then data A is selected to be provided to
data bus 38. If there is a difference in the compared parity bits (but not in the compared data bits), indicating an error in either parity A bits or parity B bits, thenEDAC circuit 20 selects data corresponding to whichever parity check comes out 'good' (rows 2, 3). That is, if the parity check for copy A is 'bad', then the error in the parity bits was likely in the parity A bits and therefore data B is provided todata bus 38. If there is a single-bit error in either data A or data B as indicated by the data compare output (but the parity compare indicates no errors), thenEDAC circuit 20 selects data based on which parity check indicates good parity (rows 4, 5). If neither the data comparison nor the parity comparison indicates any differences between the data provided byfirst memory 16 andsecond memory 18, but both parity checks are 'bad', this indicates a multiple-bit error between the data words, and neither copy of data is selected (row 6). In this instance, a reset signal is generated that indicates the system should be reset. In the event a single bit error is detected between data A and data B, as well as a difference between the parity bits,EDAC circuit 20 cannot determine which data copy is good and so default data is selected (row 7). Once again, a reset signal is generated indicating that the system should be reset. If a multiple bit error is detected between data A and data B, thenEDAC circuit 20 selects default data and resets the system (row 8). - The block diagram in
FIG. 2 illustrates logic employed to achieve the desired behavior, along with additional built-in test operations used to ensureEDAC circuit 20 is operating correctly.Parity checker 50a receives the data word (labeled 'DataA') and parity bits (labeled 'ParityA') and performs a parity check to determine whether the parity is 'good'. In this way,parity checker 50a detects situations in which a single bit in the data is incorrect. In this embodiment,parity checker 50a checks the parity with respect to each 8-bit word and associated parity bit. In other embodiments, additional parity bits may be employed to improve the detection of errors. However, situations in which either multiple-bit errors exist in the data word or single-bit errors exist in the parity bits, then the output ofparity checker 50a will not correctly identify whether the data is 'good' or 'bad'. The output provided byparity checker 50a (labeled ParChkA) is a four-bit output, with each bit corresponding to one of the four bytes associated with each data word. For example, ifparity checker 50a determines that the parity of the data word is 'good', then the output ParChkA would indicate that all bytes within the data word is good (e.g., '0000'). Ifparity checker 50a determines that the parity of the first byte of the data word is 'bad', then the output would indicate an error in the first byte (e.g., '1000'). The output ofparity checker 50a is supplied to data selectlogic 54. -
Parity checker 50b performs the same function as that performed byparity checker 50a, but performs the parity check on data received from second memory device (e.g., data word labeled `DataB'). The output ofparity checker 50b (labeled `ParChkB') is supplied to single/multibiterror status logic 56 and data selectlogic 54. As described with respect toparity checker 50a, single bit errors are detected byparity checker 50b, but multi-bit errors (within an individual byte of the data word) and errors within the parity bits are not detected. - Bit compare
logic 52 acts to compare the data word and parity bits fromfirst memory device 16 to the data word and parity bits fromsecond memory device 18. In this way, differences between individual bits can be detected. In particular, logic gate XOR1 compares data A fromfirst memory 16 to data B fromsecond memory 18 and generates an output (labeled 'Cmp_data') that identifies differences between the respective data words. If no errors exist, the data words stored infirst memory 16 andsecond memory 18 are identical (i.e., redundant). If there are differences between the data words, those are indicated on a bit-by-bit basis in the bit compare output 'Cmp_data' provided to byteerror detection logic 53 and single bit / multiple bit error detectlogic 58. Logic gate XOR2 similarly compares parity bits fromfirst memory 16 to parity bits fromsecond memory 18 and generates an output (labeled 'Cmp_par') that identifies differences between the respective parity bits. The outputs provided by bit comparelogic 52 are provided to both byteerror detection logic 53 and to single bit/multiple biterror detection logic 58. - Byte
error detection logic 53 detects errors within the compared data and parity bits and provides an output indicating the bytes that contain errors to data selectlogic 54. Based on the received inputs, data selectlogic 54 selects either data A or data B. In one embodiment, in the event data selectlogic 54 determines that neither set of data is good, data A is nonetheless selected as a default. To select a particular copy of the data to be used, data selectlogic 54 provides a data select signal (e.g., DataSe10, DataSe11) todata multiplexer 70. Based on the received data select signal,data multiplexer 70 provides at its output the selected data (labeled 'Data_Out'). The selected data is registered by latch R10 and provided ontodata bus 38 for readout by the processor. - Byte
error detection logic 53 cannot determine which copy of data or parity bits holds the error, only that a discrepancy exists between the compared bits. Based on the error output provided by byteerror detection logic 53 and parity check data provided byparity checkers logic 54 selects the data word to provide ontodata bus 38. For example, if no data errors or parity errors (i.e., discrepancies) are detected by byteerror detection logic 53, then data selectlogic 54 selects by default data A provided by first memory 16 (Table 1, row 1). If errors are detected in the parity bits, but not in the data bits, then data selectlogic 54 selects data A if the parity check associated with data A is 'good' (row 2). Otherwise data selectlogic 54 selects data B (row 3). If errors are detected in the data word, but not in the parity bits, then data selectlogic 54 selects the data A if the parity check associated with data A is 'good' (row 5). Otherwise data selectlogic 54 selects data B (row 6). If errors are detected in both the data bits and the parity bits, then data selectlogic 54 is unable to determine which copy of data is 'good', and therefore selects invalid data A with a system reset (row 7). Finally, if multiple bit errors are detected within the data word, then no information is valid and the EDAC circuit issues a system reset. (row 8). - In addition, single bit/multiple bit error detect
logic 58 includes XOR logic tree 60, ANDlogic tree 63, and AND logic tree 64 for determining whether a single or multiple bit error exists. The result of the data bit comparison provided by XOR1 is provided as an input to XOR logic tree 60 and ANDlogic tree 63. In addition, the result of the parity bit compare provided by XOR2 and the output of XOR logic tree 60 are combined by AND logic 64 to detect the presence of single bit/multiple bit errors that extend to the parity bits as well. In response, single bit/multiple bit error detectlogic 58 provides an indication to single/multibiterror status logic 56 that determines whether, in the presence of multiple bit errors, thesystem 10 needs to be reset via the 'Reset' command. In the event of a reset, thememory devices error logic 58 and provided as an input to single/multi-biterror status logic 56. The location of the detected error is provided by single/multi-biterror status logic 56 as part of the EDAC status output provided todata multiplexer 70, and in turn provided ontodata bus 38 for communication to the processor. - In addition, the embodiment shown in
FIG. 2 provides built-in test ofEDAC circuit 20. Softwareerror injection logic 66 and software parityerror injection logic 80 act to inject or insert errors into data stored bymemory devices EDAC circuit 20 can be monitored to ensure the injected errors are properly identified and handled. In the embodiment shown inFIG. 2 , softwareerror injection logic 66 includes data Aoverwrite module 76, dataB overwrite module 78, andmultiplexers data bus 38 as part of a write operation is provided to data overwritemodules multiplexers modules multiplexers memory devices modules memory devices modules decode processor interface 68 to modify the stored data, allowing softwareerror injection module 66 to inject errors into the stored data (e.g., inject errors in one copy of the data to test the bit comparison function) before stored tomemory devices - Similarly, software parity
error injection logic 80 allows errors to be injected into the parity bits prior to storage tomemory devices error injection module 80 likewise receives commands from I/Odecode processor interface 68. In response, errors are selectively injected into one of the four bit positions for each data word. The injected error is combined byXOR logic 82 with the normally generated parity bits provided byparity generator 62 to generate the desired parity bits with injected errors for storage tomemory devices - In this way, the present invention provides a system and method for detecting and correcting errors in a redundant memory system. While the invention has been described with reference to an exemplary embodiment(s), it will be understood by those skilled in the art that various changes may be made and equivalents may be substituted for elements thereof without departing from the scope of the invention. In addition, many modifications may be made to adapt a particular situation or material to the teachings of the invention without departing from the essential scope thereof. Therefore, it is intended that the invention not be limited to the particular embodiment(s) disclosed, but that the invention will include all embodiments falling within the scope of the appended claims.
Claims (11)
- An error detection and correction (EDAC) circuit (20) for use in a redundant memory system (10), the EDAC circuit comprising:a first input for receiving first data and parity information stored by a first memory device (16);a second input for receiving second data and parity information stored by a second memory device (18);a first output for providing either the first data or the second data onto a data bus (38);first parity check logic (50a) that calculates whether parity is 'good' or 'bad' in the received first data and parity information;second parity check logic (50b) that calculates whether parity is 'good' or 'bad' in the received second data and parity information;bit comparison logic (52) that detects differences between the first data and the second data, and between the first parity information and the second parity information; anddata select logic (54) that selects either the first data or the second data for provision to the first output based on the calculated parity of the first data and the second data and the differences between the first data and the second data, and between the first parity information and the second parity information.
- The EDAC circuit of claim 1, further including:single bit/multiple bit error detect logic (58) that detects the presence of multiple bits errors in the first and second data and parity information based on the detected differences between the first data and the second data, and between the first parity information and the second parity information; andsingle/multibit error logic (56) that resets the memory system in response to detected multiple bit errors.
- The EDAC circuit of claim 2, wherein the behavior of the EDAC circuit is defined by the following table:
Case Data Compare Output Parity Compare Output Parity Check A Output Parity Check B Output Copy to Use Reset Normal -No Error 0 Yes OK OK A No Single Bit Error in Parity B 0 No OK Odd Parity Bad Even Parity A No Single Bit Error in Parity A 0 No Bad Even Parity OK Odd Parity B No Single Bit Error on B 1 Yes OK Odd Parity Bad Even Parity A No Single Bit Error on A 1 Yes Bad Even Parity OK Odd Parity B No Multi-Bit Error 0 Yes Bad Even Parity Bad Even Parity Neither Yes Multi Bit Error 1 No Don't Care Don't Care Neither Yes Multi Bit Error 2-8 Don't Care Don't Care Don't Care Neither Yes - The EDAC circuit of any preceding claim, further including: built-in test logic (66) for selectively injecting errors into the first and second parity information provided to the first and second memories, respectively.
- The EDAC circuit of claim 4, wherein the built-in test logic selectively injects errors into the first and second data provided to the first and second memories, respectively.
- A redundant memory system (10) comprising:a first memory device (16) for storing first data and parity information;a second memory device (18) for storing second data and parity information redundant to the first data and parity information; andan error detecting and correction (EDAC) circuit as recited in any preceding claim,wherein the error detection and correction (EDAC) circuit during write operations encodes parity information in data being written to the first memory device and the second memory device and during read operations determines whether to select data from the first memory device or the second memory device to provide onto a data bus.
- The redundant memory system of claim 6, wherein the first and second memory devices are single event susceptible (SEU) devices.
- A method of reducing single event upset (SEU) errors in memory systems (10) with an error detection and correction (EDAC) circuit (20), the method comprising:retrieving first data and parity information from a first memory device (16);retrieving second data and parity information from a second memory device (18), wherein the second data is redundant to the first data retrieved from the first memory device;calculating whether the parity of the first data is 'good' or 'bad' based on the retrieved first data and parity information;calculating whether the parity of the second data is 'good' or 'bad' based on the retrieved second data and parity information;detecting differences between the first data the second data, and between the first parity information and the second parity information; andselecting either the first data or the second data for provision to a data bus (38) based on the calculated parity of the first data and the second data and the differences between the first data and the second data, and between the first parity information and the second parity information.
- The method of claim 8, further including:detecting the presence of multiple bits errors in the first and second data and
parity information based on the detected differences between the first data and the second data, and between the first parity information and the second parity information; andresetting the memory system in response to detected multiple bit errors - The method of claim 8 or 9, further including:operating the EDAC circuit in a test mode in which errors are deliberately injected into the parity information associated with the first and second data; andchecking the output of EDAC circuit to determine whether the injected errors were correctly identified during readout by the EDAC circuit.
- The method of claim 8, 9 or 10, further including operating the EDAC circuit in a test mode in which errors are deliberately
injected into the first and second data; and
checking the output of EDAC circuit to determine whether the injected errors
were correctly identified during readout by the EDAC circuit.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/896,348 US8589759B2 (en) | 2010-10-01 | 2010-10-01 | RAM single event upset (SEU) method to correct errors |
Publications (2)
Publication Number | Publication Date |
---|---|
EP2437172A1 true EP2437172A1 (en) | 2012-04-04 |
EP2437172B1 EP2437172B1 (en) | 2013-08-21 |
Family
ID=44677550
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EP11178698.4A Active EP2437172B1 (en) | 2010-10-01 | 2011-08-24 | RAM single event upset (SEU) method to correct errors |
Country Status (2)
Country | Link |
---|---|
US (1) | US8589759B2 (en) |
EP (1) | EP2437172B1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106844281A (en) * | 2016-11-22 | 2017-06-13 | 北京控制工程研究所 | A kind of highly reliable Instruction Cache suitable for Power PC Processor |
CN108763148A (en) * | 2018-05-31 | 2018-11-06 | 西安微电子技术研究所 | A kind of fault tolerant memory controller for supporting to note |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8954806B2 (en) * | 2010-12-07 | 2015-02-10 | Cisco Technology, Inc. | Single event-upset controller wrapper that facilitates fault injection |
US8589775B2 (en) * | 2011-03-14 | 2013-11-19 | Infineon Technologies Ag | Error tolerant flip-flops |
JP5925909B2 (en) * | 2011-12-29 | 2016-05-25 | インテル コーポレイション | Secure error handling |
JP5910356B2 (en) * | 2012-06-29 | 2016-04-27 | 富士通株式会社 | Electronic device, electronic device control method, and electronic device control program |
US9229825B2 (en) * | 2013-06-28 | 2016-01-05 | International Business Machines Corporation | Quick failover of blade server |
KR102067040B1 (en) * | 2014-04-23 | 2020-01-16 | 한국전자통신연구원 | Apparatus for the tolerant cache controller and method thereof |
US9575834B2 (en) | 2014-05-16 | 2017-02-21 | International Business Machines Corporation | Detecting single event upsets and stuck-at faults in RAM-based data path controllers |
CN105093244A (en) * | 2014-11-10 | 2015-11-25 | 航天恒星科技有限公司 | GNSS real time orbital determination system and orbital determination method |
JP6455168B2 (en) * | 2015-01-16 | 2019-01-23 | 株式会社デンソー | Memory device system |
US10956265B2 (en) * | 2015-02-03 | 2021-03-23 | Hamilton Sundstrand Corporation | Method of performing single event upset testing |
JP2017151785A (en) * | 2016-02-25 | 2017-08-31 | ルネサスエレクトロニクス株式会社 | Semiconductor device |
US10496484B2 (en) * | 2016-08-05 | 2019-12-03 | Sandisk Technologies Llc | Methods and apparatus for error detection for data storage devices |
US10635550B2 (en) * | 2017-12-08 | 2020-04-28 | Ge Aviation Systems Llc | Memory event mitigation in redundant software installations |
US10452505B2 (en) * | 2017-12-20 | 2019-10-22 | Advanced Micro Devices, Inc. | Error injection for assessment of error detection and correction techniques using error injection logic and non-volatile memory |
US11392452B2 (en) | 2018-06-26 | 2022-07-19 | Rambus, Inc. | Serializing and deserializing stage testing |
US10949295B2 (en) | 2018-12-13 | 2021-03-16 | International Business Machines Corporation | Implementing dynamic SEU detection and correction method and circuit |
US10896081B2 (en) | 2018-12-13 | 2021-01-19 | International Business Machines Corporation | Implementing SEU detection method and circuit |
CN110109619B (en) * | 2019-04-25 | 2022-07-29 | 北京遥测技术研究所 | Closed-loop multistage storage system resistant to single event upset effect and implementation method |
CN111597073B (en) * | 2020-06-24 | 2021-08-03 | 上海安路信息科技股份有限公司 | FPGA single event upset error correction method and circuit |
KR102379448B1 (en) * | 2020-09-09 | 2022-03-29 | 주식회사에델테크 | Apparatus for handling single event effects in satellite data processing system and method using the same |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5905854A (en) * | 1994-12-23 | 1999-05-18 | Emc Corporation | Fault tolerant memory system |
US20040225928A1 (en) * | 2000-11-16 | 2004-11-11 | Hiroshi Miyagi | Memory system |
US20090249148A1 (en) * | 2008-03-25 | 2009-10-01 | Micorn Technology, Inc. | Error-correction forced mode with m-sequence |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5490155A (en) * | 1992-10-02 | 1996-02-06 | Compaq Computer Corp. | Error correction system for n bits using error correcting code designed for fewer than n bits |
US5574855A (en) | 1995-05-15 | 1996-11-12 | Emc Corporation | Method and apparatus for testing raid systems |
US5872910A (en) | 1996-12-27 | 1999-02-16 | Unisys Corporation | Parity-error injection system for an instruction processor |
US6751756B1 (en) | 2000-12-01 | 2004-06-15 | Unisys Corporation | First level cache parity error inject |
US7401269B2 (en) | 2003-05-10 | 2008-07-15 | Hewlett-Packard Development Company, L.P. | Systems and methods for scripting data errors to facilitate verification of error detection or correction code functionality |
DE102006001873B4 (en) * | 2006-01-13 | 2009-12-24 | Infineon Technologies Ag | Apparatus and method for checking an error detection functionality of a memory circuit |
JP4936746B2 (en) * | 2006-03-08 | 2012-05-23 | ルネサスエレクトロニクス株式会社 | Semiconductor device |
US7890836B2 (en) * | 2006-12-14 | 2011-02-15 | Intel Corporation | Method and apparatus of cache assisted error detection and correction in memory |
-
2010
- 2010-10-01 US US12/896,348 patent/US8589759B2/en active Active
-
2011
- 2011-08-24 EP EP11178698.4A patent/EP2437172B1/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5905854A (en) * | 1994-12-23 | 1999-05-18 | Emc Corporation | Fault tolerant memory system |
US20040225928A1 (en) * | 2000-11-16 | 2004-11-11 | Hiroshi Miyagi | Memory system |
US20090249148A1 (en) * | 2008-03-25 | 2009-10-01 | Micorn Technology, Inc. | Error-correction forced mode with m-sequence |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106844281A (en) * | 2016-11-22 | 2017-06-13 | 北京控制工程研究所 | A kind of highly reliable Instruction Cache suitable for Power PC Processor |
CN108763148A (en) * | 2018-05-31 | 2018-11-06 | 西安微电子技术研究所 | A kind of fault tolerant memory controller for supporting to note |
CN108763148B (en) * | 2018-05-31 | 2021-11-30 | 西安微电子技术研究所 | Fault-tolerant memory controller supporting upper notes |
Also Published As
Publication number | Publication date |
---|---|
EP2437172B1 (en) | 2013-08-21 |
US20120084628A1 (en) | 2012-04-05 |
US8589759B2 (en) | 2013-11-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2437172B1 (en) | RAM single event upset (SEU) method to correct errors | |
US10838808B2 (en) | Error-correcting code memory | |
JP4071940B2 (en) | Shared error correction for memory design | |
US9965356B2 (en) | Method and system of high-availability PCIE SSD with software-hardware jointly assisted implementation to enhance immunity on multi-cell upset | |
CN107436821B (en) | Apparatus and method for generating error codes for blocks comprising a plurality of data bits and address bits | |
US8185800B2 (en) | System for error control coding for memories of different types and associated methods | |
US7587658B1 (en) | ECC encoding for uncorrectable errors | |
US8352806B2 (en) | System to improve memory failure management and associated methods | |
US8176391B2 (en) | System to improve miscorrection rates in error control code through buffering and associated methods | |
US8181094B2 (en) | System to improve error correction using variable latency and associated methods | |
US20100287445A1 (en) | System to Improve Memory Reliability and Associated Methods | |
US9208027B2 (en) | Address error detection | |
US8918707B2 (en) | Codeword error injection via checkbit modification | |
US9665423B2 (en) | End-to-end error detection and correction | |
US8185801B2 (en) | System to improve error code decoding using historical information and associated methods | |
US9948322B1 (en) | High performance read-modify-write system providing line-rate merging of dataframe segments in hardware | |
US8707133B2 (en) | Method and apparatus to reduce a quantity of error detection/correction bits in memory coupled to a data-protected processor port | |
US12111726B2 (en) | Error rates for memory with built in error correction and detection | |
CN111459712A (en) | SRAM type FPGA single event upset error correction method and single event upset error correction circuit | |
US10108486B2 (en) | Error protection | |
US11069421B1 (en) | Circuitry for checking operation of error correction code (ECC) circuitry | |
EP3977622A1 (en) | Error detection and correction with integrity checking | |
KR920010972B1 (en) | Fault tolerant computer memory systems | |
WO2024023737A1 (en) | Error detection, error correction or error detection and correction (edac) for electronic devices, electronic circuits or electronic systems | |
Wei | Design of External Memory Error Detection and Correction and Automatic Write-back |
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 |
|
AK | Designated contracting states |
Kind code of ref document: A1 Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR |
|
AX | Request for extension of the european patent |
Extension state: BA ME |
|
RIN1 | Information on inventor provided before grant (corrected) |
Inventor name: HARMAN, DAVID S. Inventor name: SENDLEIN, KIMBERLY K. Inventor name: GOSSE, JAMES A. Inventor name: COX, ROBERT E. |
|
17P | Request for examination filed |
Effective date: 20121004 |
|
GRAP | Despatch of communication of intention to grant a patent |
Free format text: ORIGINAL CODE: EPIDOSNIGR1 |
|
INTG | Intention to grant announced |
Effective date: 20130325 |
|
GRAS | Grant fee paid |
Free format text: ORIGINAL CODE: EPIDOSNIGR3 |
|
GRAA | (expected) grant |
Free format text: ORIGINAL CODE: 0009210 |
|
AK | Designated contracting states |
Kind code of ref document: B1 Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR |
|
REG | Reference to a national code |
Ref country code: GB Ref legal event code: FG4D |
|
REG | Reference to a national code |
Ref country code: CH Ref legal event code: EP |
|
REG | Reference to a national code |
Ref country code: AT Ref legal event code: REF Ref document number: 628451 Country of ref document: AT Kind code of ref document: T Effective date: 20130915 |
|
REG | Reference to a national code |
Ref country code: IE Ref legal event code: FG4D |
|
REG | Reference to a national code |
Ref country code: DE Ref legal event code: R096 Ref document number: 602011002676 Country of ref document: DE Effective date: 20131017 |
|
REG | Reference to a national code |
Ref country code: NL Ref legal event code: VDEP Effective date: 20130821 Ref country code: AT Ref legal event code: MK05 Ref document number: 628451 Country of ref document: AT Kind code of ref document: T Effective date: 20130821 |
|
REG | Reference to a national code |
Ref country code: LT Ref legal event code: MG4D |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: HR Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20130821 Ref country code: SE Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20130821 Ref country code: LT Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20130821 Ref country code: AT Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20130821 Ref country code: CY Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20130821 Ref country code: NO Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20131121 Ref country code: IS Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20131221 Ref country code: PT Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20131223 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: PL Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20130821 Ref country code: BE Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20130821 Ref country code: SI Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20130821 Ref country code: FI Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20130821 Ref country code: GR Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20131122 Ref country code: LV Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20130821 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: CZ Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20130821 Ref country code: EE Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20130821 Ref country code: SK Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20130821 Ref country code: DK Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20130821 Ref country code: RO Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20130821 Ref country code: NL Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20130821 |
|
REG | Reference to a national code |
Ref country code: IE Ref legal event code: MM4A |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: IT Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20130821 Ref country code: ES Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20130821 Ref country code: MC Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20130821 |
|
PLBE | No opposition filed within time limit |
Free format text: ORIGINAL CODE: 0009261 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: NO OPPOSITION FILED WITHIN TIME LIMIT |
|
26N | No opposition filed |
Effective date: 20140522 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: IE Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20130824 |
|
REG | Reference to a national code |
Ref country code: DE Ref legal event code: R097 Ref document number: 602011002676 Country of ref document: DE Effective date: 20140522 |
|
REG | Reference to a national code |
Ref country code: CH Ref legal event code: PL |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: LI Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20140831 Ref country code: CH Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20140831 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: SM Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20130821 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: MT Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20130821 Ref country code: TR Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20130821 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: BG Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20130821 Ref country code: LU Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20130824 Ref country code: RS Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20131121 Ref country code: MK Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20130821 Ref country code: HU Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT; INVALID AB INITIO Effective date: 20110824 |
|
REG | Reference to a national code |
Ref country code: FR Ref legal event code: PLFP Year of fee payment: 6 |
|
REG | Reference to a national code |
Ref country code: DE Ref legal event code: R082 Ref document number: 602011002676 Country of ref document: DE Representative=s name: SCHMITT-NILSON SCHRAUD WAIBEL WOHLFROM PATENTA, DE |
|
REG | Reference to a national code |
Ref country code: FR Ref legal event code: PLFP Year of fee payment: 7 |
|
REG | Reference to a national code |
Ref country code: FR Ref legal event code: PLFP Year of fee payment: 8 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: AL Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20130821 |
|
P01 | Opt-out of the competence of the unified patent court (upc) registered |
Effective date: 20230522 |
|
PGFP | Annual fee paid to national office [announced via postgrant information from national office to epo] |
Ref country code: DE Payment date: 20240723 Year of fee payment: 14 |
|
PGFP | Annual fee paid to national office [announced via postgrant information from national office to epo] |
Ref country code: GB Payment date: 20240723 Year of fee payment: 14 |
|
PGFP | Annual fee paid to national office [announced via postgrant information from national office to epo] |
Ref country code: FR Payment date: 20240723 Year of fee payment: 14 |