This application relates to a method of testing electronic equipment for single upset event resistance.
Single Upset Events (SEUs) are changes of state caused by ions or electro-magnetic radiation striking an electric device, which can cause an error or malfunction in hardware device output and can in turn affect software operation. Airborne and space systems are susceptible to SEUs. SEUs can be mitigated by parity protection or certain Error Correction Code (ECC) on memory.
Predicting the impact of SEUs becomes increasingly important as the complexity of electronics increases, and as they become more compact. One common way to test the impact of SEUs is to expose the electronics to radiation, such as in a particle accelerator.
A system for simulating an event according to an exemplary embodiment of the present disclosure includes a memory system, a parity generator/validator, and a fault injector. The fault injector is configured to inject bits at an address in the memory system when the parity generator/validator is in an disabled state.
A method of injecting a fault according to an exemplary embodiment of the present disclosure includes determining an address, disabling a parity generator/validator, determining a bit, and writing the bit to the address.
These and other features may be best understood from the following drawings and specification.
The memory sub-systems 12 can be external or internal memory on any subcomponent of an electronic device 10. Thus a specific subcomponent of an electronic device can be targeted for SEU injection by the SEU injector 16 by selecting which of the memory sub-systems 12 to target.
The parity generator/validator 14 provides the parity bit to the memory subsystems 12 by generating parity bits during memory writing operations or reading parity bits during memory reading operations. The generator/validator 14 can detect discrepancies in parity caused by an error such as an SEU. The SEU injector 16 includes a primary system 18 which provides the software/logic for a random event generator 20, which performs a timekeeper function to determine when faults should be injected, or added to the memory sub-systems 12 of the electronic device 10 by adding, deleting, or changing bits. The injector 16 also includes a random address generator 22 and a random bit generator 24. The random address generator 22 generates a random address in the memory sub-systems 12 into which to inject a random bit generated by the random bit generator 24. The random bit is injected into the memory subs-systems 12 of the electronic device 10 via a memory bus 26.
The SEU injector 16 is employed by the method 100 of
In step 104, the method 100 determines whether time indicates fault injection. Said another way, the method 100 determines how often faults should be injected. How often faults are injected simulates different real-world conditions in which SEUs can affect the electronic device 10. For example, higher-frequency fault injection may simulate high-altitude aircraft flight conditions, whereas lower-frequency fault injection may simulate lower-altitude flight conditions.
If in step 104 the time indicates fault injection, in step 106 an address for fault injection is determined by the random address generator 22. The address can by within a bounded range of addresses in the memory sub-systems 12.
In step 108, a bit is determined by the random bit generator 24. The bit can be any kind of bit, including a parity bit, a redundant protection bit, etc.
In step 110, the parity generator/validator 14 is disabled. This allows the fault to be injected into the electronic device 10. In step 112, the address from step 108 is read. In step 114, the bit at the address it toggled. That is, the bit is changed from a “one” to a “zero” or vice versa. In step 116, the bit determined in step 108 is written to the address determined in step 106. In step 118, the parity generator/validator 14 is re-enabled. In one example, steps 110 through 118 comprise an atomic operation. That is, steps 110 through 118 are effectively performed as a single step that does not allow other processes to read or write to the memory sub-systems 12 during its duration.
In step 120, the method 100 determines a time for the next fault to be injected. The method then repeats by performing step 102, fault injection, again. Likewise, if in step 102 the time does not indicate fault injection, the method repeats.
The system 5 and method 100 allows simulation of various real-world conditions under which electronic devices may be susceptible to SEUs. As the method 100 is repeated, data about the behavior of the electronic device 10 in response to fault injection can be collected and analyzed to allow for the design of improved electronic devices that can better withstand SEUs. Such data can be collected under various simulated operating conditions depending on the expected application of the electronic device 10.
Although an embodiment of this invention has been disclosed, a worker of ordinary skill in this art would recognize that certain modifications would come within the scope of this disclosure. For that reason, the following claims should be studied to determine the true scope and content of this disclosure.
Number | Name | Date | Kind |
---|---|---|---|
4786865 | Arimura et al. | Nov 1988 | A |
5606662 | Wisor | Feb 1997 | A |
5903717 | Wardrop | May 1999 | A |
5929645 | Aton | Jul 1999 | A |
6085350 | Emmert et al. | Jul 2000 | A |
6326809 | Gambles et al. | Dec 2001 | B1 |
6696873 | Hazucha et al. | Feb 2004 | B2 |
6963217 | Samudrala et al. | Nov 2005 | B2 |
7036059 | Carmichael et al. | Apr 2006 | B1 |
7167404 | Pathak et al. | Jan 2007 | B2 |
7249010 | Sundararajan et al. | Jul 2007 | B1 |
7627840 | Kleinosowski et al. | Dec 2009 | B2 |
7673202 | Chung | Mar 2010 | B2 |
8189367 | Lawson et al. | May 2012 | B1 |
8522074 | Markison | Aug 2013 | B2 |
20070096754 | Johnson et al. | May 2007 | A1 |
20080046136 | Leonard | Feb 2008 | A1 |
20100163756 | McPeak | Jul 2010 | A1 |
20110219208 | Asaad | Sep 2011 | A1 |
20120084628 | Cox | Apr 2012 | A1 |
20120144244 | Dan | Jun 2012 | A1 |
20120239993 | Chung | Sep 2012 | A1 |
Number | Date | Country |
---|---|---|
100576221 | Dec 2009 | CN |
102096627 | Jun 2011 | CN |
102169022 | Aug 2011 | CN |
102521467 | Apr 2013 | CN |
103198868 | Jul 2013 | CN |
Entry |
---|
CAFC, Intellectual Ventures v. Capital One, pp. 1-18 (Year: 2017). |
Dutton, Bradley et al., Embedded Processor Based Fault Injections and SEU Emulation for FPGAs, International Conf. on Embedded Systems and Applications, pp. 183-189, 2009. |
Rebaudengo, M. et al., “Accurate Analysis of Single Event Upsets in a Pipelined Microprocessor” Dipartimento di Automatica e Informatica, Torino, Italy, www.cad.polito.it. |
Ziade, Haissam et al., “A New Fault Injection Approach to Study the Impact of Bitflips in the Configuration of SRAM-Based FPGAs, ” The International Arab Journal of Information Technology, vol. 8, No. 2, pp. 155-162, Apr. 2011. |
Number | Date | Country | |
---|---|---|---|
20160224449 A1 | Aug 2016 | US |