Single-particle simulation acceleration method based on multi-point fault injection
By dividing the single simulation time of a register into multiple time intervals and setting a checkpoint in each time interval, the problem of low simulation efficiency in the existing technology is solved, and efficient simulation acceleration and accuracy improvement are achieved.
Patent Information
- Application Number
- CN202510844110.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-06-23
- Publication Date
- 2025-10-17
AI Technical Summary
The existing single-event simulation method based on register injection errors has low simulation efficiency when evaluating the reliability and radiation resistance of integrated circuits, especially for large-scale and complex integrated circuits.
A single-particle simulation acceleration method based on multi-point fault injection is adopted. The single simulation time of the register is divided into multiple time intervals, and a checkpoint is set at the end of each time interval. Through multi-point fault injection and checkpoint monitoring, the simulation efficiency is improved while ensuring the simulation accuracy and coverage.
It improves simulation efficiency, reduces computational workload and storage requirements, ensures simulation coverage and accuracy, and reduces simulation costs.
Smart Images

Figure CN120805807A_ABST
Abstract
Description
TECHNICAL FIELD
[0001] Embodiments of the present application relate to the technical field of fault simulation, in particular to a single event simulation acceleration method based on multi-point fault injection. BACKGROUND
[0002] Single event effects are caused by high-energy particles hitting the internal semiconductor devices in integrated circuits, which can cause faults such as single event upset (SEU) and single event transient (SET), etc. These faults can cause data errors and logic lock, and seriously affect the normal operation of integrated circuits.
[0003] At present, the single event simulation method based on register error injection is widely used in evaluating the reliability and radiation resistance of integrated circuits under high-energy particle bombardment. This method can effectively evaluate the radiation resistance of integrated circuits by simulating the situation that single event effects cause register errors, and provide strong guidance for reinforcement design.
[0004] However, the existing single event simulation method based on register error injection generally has the problem of low simulation efficiency, especially for larger-scale and more complex integrated circuits for spaceflight, etc. SUMMARY
[0005] The single event simulation acceleration method based on multi-point fault injection provided by embodiments of the present application can improve simulation efficiency while ensuring simulation accuracy and simulation coverage.
[0006] In a first aspect, an embodiment of the present application provides a single particle simulation acceleration method based on multi-point fault injection, comprising: dividing a single simulation duration of the register into a plurality of time intervals, and setting a checkpoint at an end time of each of the time intervals; wherein a duration of each of the time intervals does not exceed a first duration, and the first duration refers to a propagation duration of a register fault-induced integrated circuit system fault; in a case where an error rate of the register is less than or equal to a preset error rate, determining a first fault injection quantity according to the error rate of the register and in combination with first relationship information; wherein the first relationship information is used to indicate a one-to-one correspondence relationship between a plurality of error rate intervals and a plurality of fault injection quantities, and a product of each of the error rate intervals and a corresponding fault injection quantity is 1; the error rate of the register is obtained based on a historical error rate of a register of the same attribute; performing a selection step, the selection step comprising selecting a corresponding number of injection points of the register that have not been injected with faults as to-be-injected points according to the first fault injection quantity; performing a single simulation on the register by performing multi-point fault injection on the to-be-injected points, and monitoring whether the integrated circuit has a system fault at each of the checkpoints; if the integrated circuit does not have a system fault at each of the checkpoints, marking the to-be-injected points as having been injected with faults, ending the fault injection of the to-be-injected points, and proceeding to the selection step until all of the injection points of the register have been injected with faults; wherein the integrated circuit comprises the register.
[0007] Optionally, the method further comprises: if the integrated circuit has a system fault at at least one of the checkpoints, constructing a to-be-processed fault group through the to-be-injected points; performing a grouping simulation step, the grouping simulation step comprising dividing the to-be-processed fault group into a plurality of fault groups, respectively performing a single simulation on the register according to each of the fault groups and in combination with the multi-point fault injection, monitoring whether the integrated circuit has a system fault at each of the checkpoints, and determining a fault group that causes the integrated circuit to have a system fault at the checkpoint as a first fault group; determining whether a grouping simulation stop condition is met; if not, taking the first fault group as the to-be-processed fault group and proceeding to the grouping simulation step; if so, performing a simulation on the register according to the first fault group and in combination with single-point fault injection to locate a fault point of the register in the first fault group.
[0008] Optionally, the method further comprises: after locating the fault point of the register, marking the to-be-injected points as having been injected with faults and proceeding to the selection step until all of the injection points of the register have been injected with faults.
[0009] Optionally, the simulation of the registers according to each of the fault groups and in combination with the multi-point fault injection respectively, and the monitoring of whether the integrated circuit has a system fault at each of the checkpoints, and the determination of the fault group causing the system fault of the integrated circuit at the checkpoint as the first fault group comprise: determining the priority of each of the fault groups according to whether the integrated circuit has a system fault at each of the checkpoints in the simulation process; wherein the higher the priority of the fault group, the higher the probability of the fault point appearing in the fault group, and the lower the priority of the fault group, the lower the probability of the fault point appearing in the fault group; taking the fault group with the highest priority as a second fault group, and combining the fault groups other than the second fault group in the plurality of fault groups into a third fault group; simulating the registers according to the second fault group and the third fault group and in combination with the multi-point fault injection respectively, and monitoring whether the integrated circuit has a system fault at each of the checkpoints, and determining the fault group causing the system fault of the integrated circuit as the first fault group from the second fault group and the third fault group.
[0010] Optionally, the closer the fault group to the first checkpoint, the higher the priority of the fault group, and the farther the fault group from the first checkpoint, the lower the priority of the fault group; wherein the first checkpoint is a checkpoint indicating that the integrated circuit has a system fault.
[0011] Optionally, the selecting of the corresponding number of injection points of the registers without fault injection as the injection points to be injected according to the first fault injection number comprises: selecting the corresponding number of injection points of the registers without fault injection as the injection points to be injected according to the first fault injection number and in combination with the distribution information of the fault points of the registers with the same attribute.
[0012] Optionally, the judgment of whether the grouping simulation stop condition is met comprises: judging whether the grouping number reaches a preset grouping number; or judging whether the number of injection points to be injected in the first fault group is less than a preset number; or judging whether the number of injection points to be injected in each group obtained after grouping any one of the first fault groups is 1.
[0013] Optionally, the type of the system fault comprises: an abnormal fault and an error result.
[0014] In a second aspect, an embodiment of the present application provides an electronic device, comprising a memory and a processor; the memory is used to store a computer program; the processor is used to implement the single particle simulation acceleration method based on multi-point fault injection according to any one of the first aspect when the computer program is executed.
[0015] In a third aspect, the embodiments of the present application provide a computer readable storage medium, and the storage medium stores a computer program. When the computer program is executed by a processor, the computer program implements the single event simulation acceleration method based on multi-point fault injection in any of the first aspect.
[0016] The single event simulation acceleration method based on multi-point fault injection in the embodiments of the present application has the following beneficial effects:
[0017] The single simulation duration of the register is divided into multiple time intervals, and a checkpoint is set at the end of each time interval. The duration of each time interval does not exceed the first duration, and the first duration refers to the propagation duration of the integrated circuit system fault caused by the register fault. Therefore, when simulating the register, if the fault of at least one injection point in any time interval causes an integrated circuit system fault, the system fault will propagate to the checkpoint corresponding to the time interval. In this way, when simulating the register, by monitoring at each checkpoint, the fault of the injection point in the corresponding time interval can be accurately determined according to the monitoring result of each checkpoint, ensuring the reliability and feasibility of the embodiments of the present application.
[0018] Since the error rate of the register is based on the historical error rate of registers with the same attribute, the accuracy and reliability of the error rate of the register are guaranteed, providing data support for the implementation of subsequent embodiments.
[0019] By determining the first fault injection number when the error rate of the register is less than or equal to the preset error rate, and selecting and simulating the to-be-injected points, the feasibility and reliability of the embodiments of the present application are ensured.
[0020] Since the first relationship information is used to indicate the one-to-one correspondence between the multiple error rate intervals and the multiple fault injection numbers, the product of each error rate interval and the corresponding fault injection number is 1. Therefore, by determining the first fault injection number based on the first relationship information and the error rate of the register, and selecting a corresponding number of injection points of the register without injected faults as to-be-injected points according to the first fault injection number, the number of to-be-injected points to be injected and the number of times of selecting to-be-injected points can be limited within a reasonable range, providing feasibility for subsequent improvement of simulation efficiency.
[0021] The fault injection of the to-be-injected points is ended in the case that no system failure of the integrated circuit occurs at each checkpoint. That is, in the case that no fault of the to-be-injected points can cause the system failure of the integrated circuit, the fault injection simulation of all the to-be-injected points can be completed through one multi-point fault injection simulation. Compared with the related art, the fault injection simulation of all the to-be-injected points can be completed through one multi-point fault injection simulation without the same number of simulation times as the to-be-injected points, thereby improving the simulation efficiency and simulation accuracy and reducing the calculation amount, storage demand and simulation cost.
[0022] In combination with the above description of the checkpoint and in the simulation of the multi-point fault injection, the integrated circuit is monitored only at each checkpoint to determine whether a system failure occurs. Therefore, compared with the related art in which the integrated circuit is monitored at the end of each clock cycle to determine whether a system failure occurs, the number of checkpoints is reduced, the simulation efficiency and simulation accuracy are further improved, and the calculation amount, storage demand and simulation cost are further reduced.
[0023] After the fault injection of the to-be-injected points is ended, the to-be-injected points are marked as having been injected with faults, and the process proceeds to the selecting step, that is, according to the first fault injection number, a corresponding number of registers are selected as to-be-injected points, and multi-point fault injection simulation is performed based on the to-be-injected points until all the injection points of the registers are injected with faults, thereby ensuring that each injection point of the registers is injected with faults and ensuring the coverage and accuracy of the simulation. BRIEF DESCRIPTION OF DRAWINGS
[0024] Figure 1 A flowchart of a single particle simulation acceleration method based on multi-point fault injection provided by an embodiment of the present application is shown in the figure;
[0025] Figure 2 A schematic diagram of a time interval and a checkpoint provided by an embodiment of the present application is shown in the figure;
[0026] Figure 3 A grouping schematic diagram of a to-be-processed fault group provided by an embodiment of the present application is shown in the figure;
[0027] Figure 4 A flowchart of a grouping simulation provided by an embodiment of the present application is shown in the figure;
[0028] Figure 5 A schematic diagram of a time interval, a checkpoint and a fault group provided by an embodiment of the present application is shown in the figure;
[0029] Figure 6 A structural schematic diagram of an electronic device provided by an embodiment of the present application is shown in the figure. DETAILED DESCRIPTION
[0030] In order to make the above objectives, characteristics and advantages of the present application more obvious and easy to understand, specific embodiments of the present application are described in detail below with reference to the drawings. Although some embodiments of the present application are shown in the drawings, it should be understood that the present application can be implemented in various forms, and should not be interpreted as being limited to the embodiments described herein, but rather, these embodiments are provided to more thoroughly and completely understand the present application. It should be understood that the drawings and embodiments of the present application are for exemplary purposes only, and are not intended to limit the scope of protection of the present application.
[0031] It should be understood that each step described in the method embodiments of the present application can be performed in different order and / or in parallel. In addition, the method embodiments can include additional steps and / or omit the steps shown. The scope of the present application is not limited in this respect.
[0032] The term "comprising" and variations thereof as used herein are open-ended, that is "including but not limited to"; the term "based on" is "based, at least in part, on"; the term "one embodiment" means "at least one embodiment"; the term "another embodiment" means "at least one additional embodiment"; the term "some embodiments" means "at least some embodiments"; the term "optional" means "optional in at least some embodiments". Related definitions will be given in the description below. It should be noted that the concepts of "first", "second", etc. mentioned in the present application are only used to distinguish different devices, modules or units, and are not intended to limit the order or interdependence of the functions performed by these devices, modules or units.
[0033] It should be noted that the modification of "one" or "multiple" mentioned in the present application is illustrative and not limiting, and those skilled in the art should understand that unless otherwise explicitly indicated in the context, it should be understood as "one or more".
[0034] The names of the messages or information exchanged between the devices in the embodiments of the present application are only for illustrative purposes, and are not intended to limit the scope of the messages or information.
[0035] Single event effects are caused by high-energy particle impacts on semiconductor devices inside integrated circuits, which can cause faults such as single event upset (SEU), single event transient (SET), etc., which can cause data errors, logic lock, and seriously affect the normal operation of integrated circuits.
[0036] Currently, the single event simulation method based on register error injection is widely used in evaluating the reliability and radiation resistance of integrated circuits under high-energy particle impacts. This method can effectively evaluate the radiation resistance performance of integrated circuits by simulating the situation that single event effects cause register errors, and provide strong guidance for reinforcement design.
[0037] In a first related technology, a specific implementation of the single event simulation method based on register fault injection is as follows: fault injection simulation is performed on all injection points of each register in the integrated circuit respectively. The single simulation duration of a register includes multiple clock cycles, and the rising edge of each clock cycle is an injection point. Thus, all injection points of a register include the rising edges of all clock cycles in the single simulation duration of the register.
[0038] Based on this, the way of performing fault injection simulation on all injection points of a register is as follows: multiple simulations are performed on the register respectively, wherein the multiple simulations correspond to the multiple injection points (i.e., all injection points) one by one, and fault injection is performed only on the corresponding injection point in one simulation, that is, fault injection is performed only at one injection point in one simulation. In this way, since the duration of one simulation is the duration of the single simulation described above, the duration required to complete the fault injection simulation of all injection points of the register is the product of the number of all injection points and the single simulation duration.
[0039] Obviously, although this way can perform fault injection on each injection point of the register, ensuring the coverage and accuracy of the simulation, it reduces the simulation efficiency and has a high time cost. Moreover, in each simulation process, the output result of the integrated circuit at the end of each clock cycle needs to be monitored to determine whether the fault of the injection point of the register will cause a fault of the integrated circuit system, which further reduces the simulation efficiency. In this way, if the fault injection simulation of all registers in the integrated circuit is to be completed, the simulation efficiency will be further reduced.
[0040] In a second related technology, the difference from the first related technology is that, for a register, if the faults of different injection points of the register have high similarity in the propagation path, the execution control flow influence and the final result change in the integrated circuit, one injection point is selected for simulation to avoid a large number of repeated injection point simulations and improve the simulation efficiency. However, since the similarity is not easy to determine, the coverage and accuracy of the simulation are reduced.
[0041] To solve the above technical problems, an embodiment of the present application provides a single event simulation acceleration method based on multi-point fault injection, which can improve the simulation efficiency while ensuring the simulation accuracy and coverage. The execution subject of the method can be an electronic device, including but not limited to a notebook computer and a desktop computer and other specific data processing devices.
[0042] Figure 1 A flowchart of a single event simulation acceleration method based on multi-point fault injection provided by an embodiment of the present application is shown in FIG. 1. The method can include the following steps. Figure 1
[0043] S101. Divide the single simulation duration of the register into a plurality of time intervals, and set a checkpoint at the end of each time interval.
[0044] The duration of each time interval is not more than a first duration, and the first duration refers to the propagation duration of the integrated circuit system fault caused by the register fault.
[0045] It should be noted that the durations of different time intervals can be the same or different, and the present application embodiment does not make special limitations thereon.
[0046] The single simulation of the register can include a plurality of clock cycles. The rising edge of each clock cycle is an injection point of the register, so that the injection points of the register are a collection of all rising edges in the single simulation.
[0047] Since the integrated circuit system fault caused by the register fault will continue to propagate in the time dimension, and the influence gradually decreases until it disappears as the propagation duration continues. Therefore, the propagation duration of the integrated circuit system fault caused by the register fault (i.e. the first duration) can be determined first, and then the single simulation duration is divided into a plurality of time intervals based on the first duration, to ensure that the duration of each time interval is not more than the first duration. Finally, a checkpoint is set at the end of each time interval to monitor whether the system fault occurs in the simulation process of the integrated circuit at the checkpoint.
[0048] It should be noted that each time interval includes a plurality of clock cycles. That is, each time interval includes a plurality of injection points.
[0049] Obviously, since the duration of the time interval is less than the propagation duration of the integrated circuit system fault caused by the register fault, in the case that the fault of any injection point in the time interval causes the integrated circuit system fault, the system fault can be detected at the checkpoint at the end of the time interval, so that whether there is a fault point in the corresponding time interval can be determined according to whether the system fault occurs at the checkpoint. Wherein, in the case that the fault of the injection point causes the integrated circuit system fault, the injection point is the fault point.
[0050] For example, as shown in Figure 2 The single simulation includes 32 clock cycles, and one grid represents one clock cycle. The duration of each time interval is four clock cycles, that is, each time interval includes 4 injection points (i.e. four rising edges). The single simulation duration is divided into 8 time intervals in total, which are time interval 1-time interval 8. A checkpoint is set at the end of each time interval, as shown in Figure 2As shown, a total of 8 checkpoints are set, which are checkpoint 1 to checkpoint 8. That is, 8 time intervals correspond to 8 checkpoints one by one.
[0051] S102. In a case where the error rate of the register is less than or equal to the preset error rate, the first fault injection quantity is determined according to the error rate of the register and in combination with the first relationship information.
[0052] The error rate of the register is obtained based on the historical error rate of the register with the same attribute. The register with the same attribute refers to a register similar to the register in function, connection mode, position in the circuit, and fault propagation path. Since the error rate of the register is obtained based on the historical error rate of the register with the same attribute, the accuracy and reliability of the error rate of the register are guaranteed.
[0053] The error rate of the register refers to the ratio of the number of fault points of the register to the total number of injection points of the register. The fault point of the register is an injection point that can cause a fault of the integrated circuit system.
[0054] The specific value of the preset error rate can be determined through experimental tests. It should be noted that the preset error rate cannot be set too large. In a case where the error rate is less than or equal to the preset error rate, the simulation efficiency can be improved and the simulation coverage and simulation accuracy can be ensured through the embodiments of the present application. Exemplarily, the preset error rate can be 10%.
[0055] The first relationship information can be used to indicate a one-to-one correspondence between a plurality of error rate intervals and a plurality of fault injection quantities, and the product of each error rate interval and the corresponding fault injection quantity is 1. It should be noted that the product of 1 here can be understood as approximately 1 or equal to 1.
[0056] Exemplarily, Table 1 shows a first relationship information. As shown in Table 1, the product of the error rate interval and the corresponding fault injection quantity is approximately 1.
[0057]
[0058] Table 1
[0059] Specifically, in S102, in a case where the error rate of the register is less than or equal to the preset error rate, the error rate of the register is compared with each error rate interval in the first relationship information, and the fault injection quantity corresponding to the error rate interval to which the error rate of the register belongs is determined as the first fault injection quantity.
[0060] It should be noted that in a case where the error rate of the register is greater than the preset error rate, the register is subjected to fault injection simulation by using the related technologies in the above.
[0061] S103. Perform a selecting step, which includes: according to the first fault injection quantity, selecting the injection points of the non-injected faults of the corresponding quantity of registers as the to-be-injected points.
[0062] In a possible implementation, the injection points of the non-injected faults of the corresponding quantity of registers can be randomly selected as the to-be-injected points according to the first fault injection quantity.
[0063] It should be noted that when the quantity of the remaining injection points of the non-injected faults of the registers is less than the first fault injection quantity, all the remaining injection points of the non-injected faults are selected as the to-be-injected points. It can be understood that the quantity of the to-be-injected points selected by S103 is equal to or less than the first fault injection quantity.
[0064] In another possible implementation, the injection points of the non-injected faults of the corresponding quantity of registers can also be selected as the to-be-injected points according to the first fault injection quantity and the distribution information of the fault points of the registers with the same attribute.
[0065] Since the distribution information of the fault points of the registers with the same attribute is considered when the to-be-injected points are selected, the to-be-injected points that can cause the integrated circuit system fault can be controlled to be at most one, so as to further improve the simulation efficiency.
[0066] S104. Perform a simulation on the registers by performing multi-point fault injection on the to-be-injected points, and monitor whether the integrated circuit has a system fault at each checkpoint.
[0067] The multi-point fault injection refers to performing fault injection on multiple injection points of the registers respectively in a single simulation on the registers.
[0068] Based on this, the specific implementation process of S104 can be as follows:
[0069] Perform a simulation on the registers, and in the simulation process, perform fault injection on each to-be-injected point according to the chronological order of the to-be-injected points, and in the simulation process, obtain the output data of the integrated circuit at each checkpoint, and compare the output data of the integrated circuit at each checkpoint with the output data of each checkpoint when the simulation on the registers is performed without fault injection, and when the data of the checkpoint is consistent, it indicates that the integrated circuit does not have a system fault at the checkpoint, and when the data of the checkpoint is inconsistent, it indicates that the integrated circuit has a system fault at the checkpoint.
[0070] The type of the system fault can include: abnormal fault and error result. The abnormal fault refers to the interruption of the integrated circuit program after the fault injection at the to-be-injected point. The error result refers to the inconsistency between the integrated circuit output and the expectation.
[0071] S105. If the integrated circuit does not have a system failure at each checkpoint, mark the to-be-injected point as having been injected with a fault, end the fault injection of the to-be-injected point, and go to the selecting step until the injection points of the registers are all injected with faults. The integrated circuit includes the registers.
[0072] If the integrated circuit does not have a system failure at each checkpoint during the simulation, it indicates that the faults of each to-be-injected point do not cause the integrated circuit to fail, that is, there is no fault point in the to-be-injected point. Therefore, end the fault simulation of the to-be-injected point, and jump to the selecting step until the injection points of the registers are all injected with faults.
[0073] Obviously, by dividing the single simulation duration of the register into multiple time intervals and setting a checkpoint at the end of each time interval, the duration of each time interval does not exceed the first duration, and the first duration refers to the propagation duration of the system failure of the integrated circuit caused by the fault of the register. Therefore, in the simulation of the register, if the fault of at least one injection point in any time interval causes a system failure of the integrated circuit, the system failure will propagate to the checkpoint corresponding to the any time interval. In this way, in the simulation of the register, by monitoring at each checkpoint, the fault of the injection point in the corresponding time interval can be accurately determined according to the monitoring result of each checkpoint, ensuring the reliability and feasibility of the embodiments of the present application.
[0074] Since the error rate of the register is based on the historical error rate of registers with the same attribute, the accuracy and reliability of the error rate of the register are guaranteed, providing data support for the implementation of subsequent embodiments.
[0075] By determining the first fault injection number when the error rate of the register is less than or equal to the preset error rate, and selecting and simulating the to-be-injected point, the feasibility and reliability of the embodiments of the present application are ensured.
[0076] Since the first relationship information is used to indicate the one-to-one correspondence between the multiple error rate intervals and the multiple fault injection numbers, the product of each error rate interval and the corresponding fault injection number is 1. Therefore, by determining the first fault injection number through the first relationship information and the error rate of the register, and selecting a corresponding number of injection points of the registers that have not been injected with faults as to-be-injected points according to the first fault injection number, the number of to-be-injected points to be injected in the simulation and the number of times of selecting to-be-injected points can be limited within a reasonable range, providing feasibility for subsequent improvement of simulation efficiency.
[0077] The multiple-point fault injection is performed on the to-be-injected point, one simulation is performed on the register, and the fault injection of the to-be-injected point is ended in a case that no system failure of the integrated circuit occurs at each checkpoint. That is, in a case that no system failure of the integrated circuit is caused by the fault of the to-be-injected point, the fault injection simulation of all to-be-injected points can be completed through one multiple-point fault injection simulation. Compared with the related art, the fault injection simulation of all to-be-injected points can be completed through one multiple-point fault injection simulation without the same number of simulation times as the to-be-injected points, the simulation efficiency and simulation accuracy are improved, and the calculation amount, storage demand, and simulation cost are reduced.
[0078] In combination with the foregoing description of the checkpoint and in the simulation of the multiple-point fault injection, only whether the system failure of the integrated circuit occurs at each checkpoint is monitored, therefore, compared with the related art in which whether the system failure of the integrated circuit occurs at the end time of each clock cycle is monitored, the number of checkpoints is reduced, the simulation efficiency and simulation accuracy are further improved, and the calculation amount, storage demand, and simulation cost are further reduced.
[0079] After the fault injection of the to-be-injected point is ended, the to-be-injected point is marked as having been injected with the fault, and the selecting step is turned to, that is, according to the first fault injection number, a corresponding number of registers of the injection point not injected with the fault are selected as the to-be-injected point, and the multiple-point fault injection simulation is performed based on the to-be-injected point, until the injection point of the register is injected with the fault, which can ensure that the fault injection is performed on each injection point of the register, and the coverage and accuracy of the simulation are ensured.
[0080] In some possible implementation manners, as shown in Figure 1 The method further includes:
[0081] S106. If the system failure of the integrated circuit occurs at at least one checkpoint, a to-be-processed fault group is constructed by the to-be-injected point. That is, the to-be-injected point is collected to obtain the to-be-processed fault group.
[0082] S107. The grouping simulation step includes dividing the to-be-processed fault group into a plurality of fault groups, performing one simulation on the register according to each fault group and in combination with the multiple-point fault injection, monitoring whether the system failure of the integrated circuit occurs at each checkpoint, and determining the fault group causing the system failure of the integrated circuit at the checkpoint as the first fault group.
[0083] Each fault group includes at least two to-be-injected points. The number of fault groups can be two, three, or four, which is not specially limited in the embodiments of the application. For example, referring to Table 1, the to-be-processed fault group can be grouped by trichotomy or tetartomy.
[0084] In S107, the simulation process of one fault group can be shown as follows:
[0085] In one simulation of the register, in the simulation, according to the order of the injection points in the fault group in time, the fault injection is performed on the injection points in turn, and the system failure of the integrated circuit is monitored at each checkpoint. If the integrated circuit fails at at least one checkpoint, that is, the fault injection of at least one injection point in the fault group causes the system failure of the integrated circuit, the fault group is determined as the first fault group. If the integrated circuit does not fail at each checkpoint, that is, the fault injection of each injection point in the fault group does not cause the system failure of the integrated circuit, the fault injection simulation of the injection points in the fault group is stopped.
[0086] S108. Determine whether the grouping simulation stop condition is met.
[0087] For example, the specific implementation of S108 can include at least the following three ways:
[0088] The first way is to determine whether the grouping number reaches the preset grouping number.
[0089] The preset grouping number can be determined according to the total number of injection points of the register, combined with the error rate and the number of selected injection points each time.
[0090] For example, if the preset grouping number is four times, and two times of grouping have been completed, the grouping simulation stop condition is not met, and if the preset grouping number is four times, and four times of grouping have been completed, the grouping simulation stop condition is met.
[0091] The second way is to determine whether the number of injection points in the first fault group is less than the preset number.
[0092] The preset number can be set by the developer according to experience, for example, it can be 4, 5, 6 or 7, and the present embodiment does not specially limit it.
[0093] It should be noted that the number of injection points in the first fault group should ensure that after grouping, each group obtained includes at least two injection points.
[0094] Specifically, if the number of injection points in the first fault group is less than the preset number, the grouping simulation stop condition is met. If the number of injection points in the first fault group is greater than or equal to the preset number, the grouping simulation stop condition is not met.
[0095] The third way is to determine whether the number of injection points in each group obtained after grouping of any one first fault group is 1.
[0096] Specifically, if the number of the to-be-injected points in each group is 1, the grouping simulation stop condition is met. If the number of the to-be-injected points in each group is not 1, that is, greater than 1, the grouping simulation stop condition is not met.
[0097] S109. If not, the first fault group is taken as a to-be-handled fault group, and the grouping simulation step is proceeded to.
[0098] S110. If yes, the register is simulated according to the first fault group and in combination with single-point fault injection, so as to locate the fault point of the register in the first fault group.
[0099] Specifically, the register is simulated once according to each to-be-injected point in the first fault group, that is, only one to-be-injected point is injected with faults in one simulation. And the integrated circuit is monitored at the end of each clock cycle to see if a system fault occurs, and the to-be-injected point that causes the system fault of the integrated circuit is determined as the fault point.
[0100] S111. After the fault point of the register is located, the to-be-injected point is marked as having been injected with faults, and the selecting step is proceeded to, until all the to-be-injected points of the register are injected with faults.
[0101] Obviously, in the case that the integrated circuit has a system fault at at least one checkpoint, that is, there is a fault point in the to-be-injected points, the fault point needs to be determined in the to-be-injected points. In order to improve the simulation efficiency and simulation accuracy, the to-be-handled fault group constructed from the to-be-injected points can be processed in groups to obtain a plurality of fault groups, and the register can be simulated once in combination with multi-point fault injection in units of fault groups, and only the fault group that causes the system fault of the integrated circuit at the checkpoint (i.e., the first fault group) is focused on, and the simulation of the fault group that does not cause the system fault of the integrated circuit at the checkpoint is ended, which improves the simulation efficiency and simulation accuracy.
[0102] And, since the integrated circuit is only monitored at each checkpoint during the simulation to see if a system fault occurs, compared with the related art in which the integrated circuit is monitored at the end of each clock cycle to see if a system fault occurs, the simulation efficiency and simulation accuracy are further improved.
[0103] And, for the first fault group, if the grouping stop condition is not met, the first fault group is taken as a to-be-handled fault group, and the grouping simulation step is proceeded to. If the grouping stop condition is met, the register is simulated according to the first fault group and in combination with single-point fault injection, which not only can locate the fault point of the register in the first fault group, but also can accurately locate the fault point on the basis of ensuring the simulation coverage.
[0104] For example, the number of the to-be-injected points in each group is 1, the grouping simulation stop condition is met, and the register is simulated according to the first fault group and in combination with single-point fault injection, so as to locate the fault point of the register in the first fault group. Figure 3As shown, if the to-be-processed fault group includes 9 to-be-injected points, the to-be-processed fault group is divided into three fault groups, each of which includes 3 to-be-injected points. Since the number of to-be-injected points is determined based on the first relationship information, and the product of each error rate interval in the first relationship information and the corresponding fault injection number is 1, the to-be-injected points are likely to include only one fault point. Therefore, after three simulations of the register according to the three fault groups respectively, only one fault group will be determined as the first fault group. For the other two fault groups, the simulation of the two fault groups is ended.
[0105] As shown in FIG. 4, after the first fault group is determined, no grouping is performed, and the register is simulated according to the first fault group and combined with single-point fault injection. That is, the register is simulated three times, and in each simulation, one to-be-injected point in the first fault group is injected, and the fault point is located by monitoring the end of each clock cycle. Figure 3
[0106] Obviously, for the 9 to-be-injected points, if fault injection simulation is performed by related technologies, 9 simulations are required, and in each simulation, the results at the end of each clock cycle need to be monitored. If the grouping simulation method is used, 7 simulations are required, and only the checkpoints need to be monitored in the first 4 simulations. On the basis of ensuring the simulation coverage, the simulation efficiency is improved, and the storage demand and the number of examples are reduced.
[0107] It should be noted that in some extreme cases, there may be a situation that all selected to-be-injected points are fault points. Therefore, the number of simulations required to locate the fault point of the selected to-be-injected point by the above grouping simulation method is greater than the number of to-be-injected points. However, since the to-be-injected points are all fault points, the probability of the fault point appearing in other selected to-be-injected points is very small. Therefore, for other selected to-be-injected points, fault injection of the to-be-injected point can be completed by one simulation. Therefore, from the perspective of fault injection simulation of all injection points of the register, on the basis of ensuring the simulation coverage, the simulation efficiency is also improved in general.
[0108] In some possible implementation manners, as shown in FIG. 5, the register is simulated once according to each fault group and combined with multi-point fault injection, and whether the integrated circuit appears a system fault at each checkpoint is monitored, and the fault group that causes the integrated circuit to appear a system fault at the checkpoint is determined as the first fault group, and the method includes the following steps. Figure 4
[0109] S401. Determine the priority of each fault group according to whether the integrated circuit appears a system fault at each checkpoint in the simulation process.
[0110] The higher the priority of the fault group, the higher the probability of the fault point appearing in the fault group, and the lower the priority of the fault group, the lower the probability of the fault point appearing in the fault group.
[0111] For example, the closer the fault group is to the first checkpoint, the higher the priority of the fault group, and the farther the fault group is from the first checkpoint, the lower the priority of the fault group. The first checkpoint is a checkpoint indicating that the integrated circuit has a system fault.
[0112] It should be noted that in the case that the distances of two fault groups from the first checkpoint are the same, since the system fault propagates in the time dimension, the priority of the fault group located before the first checkpoint is higher than the priority of the fault group located after the first checkpoint in the two fault groups.
[0113] It should be noted that if the distances of two fault groups from different checkpoints are the same, and the two fault groups are both located before the corresponding checkpoints, the priorities of the two fault groups are the same.
[0114] For example, in Figure 5 , a single simulation includes 9 time intervals and 9 checkpoints, and the 9 checkpoints correspond to the 9 time intervals one by one. The checkpoints are set at the end of the corresponding time intervals.
[0115] On the basis of Figure 5 , the register is simulated once according to the to-be-injected point and combined with multi-point fault injection, and whether the integrated circuit has a system fault is monitored at each checkpoint.
[0116] If the monitored result is: exception111110000, where exception indicates that a system fault occurs and the type of the system fault is an abnormal fault. The following 9 digits respectively indicate whether the integrated circuit has a system fault at checkpoint 1 to checkpoint 9. Wherein, 1 indicates that the integrated circuit does not have a system fault at the checkpoint, and 0 indicates that the integrated circuit has a system fault at the checkpoint. Obviously, the integrated circuit has a system fault at checkpoint 6 to checkpoint 9, combined with the setting rule of the priority in the above and the checkpoints covered by each fault group, it can be known that the priority of fault group two is the highest, the priority of fault group three is the second, and the priority of fault group one is the lowest.
[0117] If the monitored result is: wrongresult110111111, where wrongresult indicates a system failure and the type of system failure is an incorrect result, the following nine digits indicate whether the integrated circuit experienced a system failure at checkpoints 1 to 9. 1 indicates that the integrated circuit did not experience a system failure at checkpoint 1, and 0 indicates that the integrated circuit experienced a system failure at checkpoint 3. Clearly, the integrated circuit failed at checkpoint 3. Based on the priority determination principles described above and the checkpoints covered by each fault group, fault group 1 has the highest priority, fault group 2 has the second highest priority, and fault group 3 has the lowest priority.
[0118] S402. The fault group with the highest priority is set as the second fault group, and the fault groups other than the second fault group in the multiple fault groups are merged into the third fault group.
[0119] S403. Based on the second fault group and the third fault group, and in combination with multi-point fault injection, the registers are simulated once respectively, and the integrated circuit is monitored at each checkpoint to see whether a system fault occurs, and the fault group in the second fault group and the third fault group that causes the integrated circuit to have a system fault at the checkpoint is determined as the first fault group.
[0120] Obviously, the higher the priority of a fault group, the higher the probability of a fault point appearing in the fault group, and the lower the priority of a fault group, the lower the probability of a fault point appearing in the fault group. Therefore, by determining the priority of each fault group, the probability of a fault point appearing in each fault group can be determined.
[0121] In this way, the fault group with the highest priority is selected as the second fault group, and the fault groups other than the second fault group are merged into the third fault group. Simulations are then performed on the registers based on the second and third fault groups, combined with multi-point fault injection. This means that a fault injection simulation is performed on the fault group with the highest probability of a fault point, and a simulation is performed on all other fault groups with potential fault points. Furthermore, the probability of a fault point appearing in the third fault group is relatively low, which can further reduce the number of simulations and improve simulation efficiency.
[0122] like Figure 6 As shown, an electronic device 600 provided by an embodiment of the present invention may include a processor 610 and a memory 620; the memory 620 is used to store a computer program; the processor 610 is used to implement the single-particle simulation acceleration method based on multi-point fault injection as described above when executing the computer program.
[0123] The embodiment of the present application provides a computer readable storage medium, and the storage medium stores a computer program. When the computer program is executed by a processor, the single particle simulation acceleration method based on multi-point fault injection is realized.
[0124] An electronic device 600, which can be a server or a client of the present application, will now be described, which is an example of a hardware device that can be applied to aspects of the present application. The electronic device 600 is intended to represent various forms of digital electronic computer devices, such as laptops, desktops, tablets, personal digital assistants, servers, blade servers, mainframes, and other appropriate computers. The electronic device 600 can also represent various forms of mobile devices, such as personal digital assistants, cellular telephones, smartphones, wearable devices, and other similar computing devices. The components shown here, their connections and relationships, and their functions, are meant to be examples only, and are not meant to limit implementations of the present application described and / or claimed in this document.
[0125] The electronic device 600 includes a computing unit that can perform various appropriate actions and processes according to a computer program stored in a read-only memory (ROM) or a computer program loaded into a random access memory (RAM) from a storage unit. In the RAM, various programs and data required for device operation can also be stored. The computing unit, the ROM, and the RAM are connected to each other through a bus. An input / output (I / O) interface is also connected to the bus.
[0126] Those skilled in the art can understand that all or part of the processes in the above-mentioned embodiment methods can be completed by instructing related hardware through a computer program, and the program can be stored in a computer readable storage medium. When the program is executed, the processes of the above-mentioned embodiment methods can be included. The storage medium can be a magnetic disc, an optical disc, a read-only memory (ROM) or a random access memory (RAM), etc. In the present application, the units described as separate components can be or can not be physically separated, and the components shown as units can be or can not be physical units, that is, they can be located in one place, or can be distributed on multiple network units. Part or all of the units can be selected according to actual needs to achieve the purpose of the embodiment of the present application. In addition, the functional units in each embodiment of the present application can be integrated in one processing unit, or each unit can exist physically, or two or more units can be integrated in one unit. The integrated unit can be realized in the form of hardware or in the form of a software functional unit.
[0127] Although the present application has been disclosed with reference to the above embodiments, the scope of the present application is not limited to the above. Various changes and modifications can be made to the present application without departing from the spirit and scope thereof, and such changes and modifications are intended to fall within the scope of the present application.
Claims
1. A single-event simulation acceleration method based on multi-point fault injection, characterized in that: include: Dividing a single simulation duration of the register into a plurality of time intervals, and setting a checkpoint at the end of each of the time intervals; The duration of each of the time intervals does not exceed a first duration, where the first duration refers to a propagation duration of an integrated circuit system fault caused by a register fault; When the error rate of the register is less than or equal to a preset error rate, determining a first fault injection quantity according to the error rate of the register and in combination with the first relationship information; The first relationship information is used to indicate a one-to-one correspondence between multiple error rate intervals and multiple fault injection quantities, where the product of each error rate interval and the corresponding fault injection quantity is 1; and the error rate of the register is obtained based on the historical error rate of the register with the same attribute; Executing a selection step, the selection step comprising selecting, according to the first fault injection quantity, a corresponding number of injection points of the registers into which faults have not been injected as injection points; By injecting multiple faults into the points to be injected, simulating the register once, and monitoring whether a system fault occurs in the integrated circuit at each of the checkpoints; If the integrated circuit does not have a system fault at each of the check points, marking the point to be injected as having been injected with a fault, ending the fault injection at the point to be injected, and proceeding to the selection step until all the injection points of the register have been injected with a fault; Wherein, the integrated circuit includes the register.
2. The method according to claim 1, characterized in that The method further comprises: If a system fault occurs in at least one of the checkpoints of the integrated circuit, a fault group to be processed is constructed through the points to be injected; performing a group simulation step, the group simulation step comprising dividing the to-be-processed fault group into a plurality of fault groups, simulating the registers once according to each fault group in combination with the multi-point fault injection, monitoring whether a system fault occurs in the integrated circuit at each checkpoint, and determining the fault group that causes the system fault of the integrated circuit at the checkpoint to be a first fault group; Determine whether the group simulation stop condition is met; If not, taking the first fault group as the to-be-processed fault group and proceeding to the group simulation step; If it does, the register is simulated according to the first fault group and in combination with single-point fault injection to locate the fault point of the register in the first fault group.
3. The method according to claim 1, characterized in that The method further comprises: After locating the fault point of the register, the point to be injected is marked as having been injected with a fault, and the process proceeds to the selection step until all the injection points of the register are injected with a fault.
4. The method according to claim 2, characterized in that The performing a simulation on the registers according to each of the fault groups and in combination with the multi-point fault injection, monitoring whether a system fault occurs in the integrated circuit at each of the checkpoints, and determining the fault group that causes the system fault of the integrated circuit at the checkpoint as the first fault group includes: determining a priority of each of the fault groups according to whether a system fault occurs in the integrated circuit at each checkpoint during the simulation process; The higher the priority of the fault group, the higher the probability that the fault point appears in the fault group, and the lower the priority of the fault group, the lower the probability that the fault point appears in the fault group; taking the fault group with the highest priority as the second fault group, and merging the fault groups other than the second fault group in the multiple fault groups into a third fault group; According to the second fault group and the third fault group, and in combination with the multi-point fault injection, the register is simulated once respectively, and the integrated circuit is monitored at each checkpoint to see whether a system fault occurs, and the fault group in the second fault group and the third fault group that causes the integrated circuit system fault is determined as the first fault group.
5. The method according to claim 4, characterized in that The closer the fault group is to the first checkpoint, the higher the priority of the fault group is; and the farther the fault group is from the first checkpoint, the lower the priority of the fault group is. The first checkpoint is a checkpoint indicating a system failure of the integrated circuit.
6. The method according to claim 1, characterized in that The selecting, according to the first fault injection quantity, a corresponding number of injection points of the registers into which faults have not been injected as injection points includes: According to the first fault injection quantity and in combination with the distribution information of the fault points of the registers with the same attribute, a corresponding number of injection points of the registers into which no faults have been injected are selected as the injection points to be injected.
7. The method according to claim 2, characterized in that Determining whether the packet emulation stopping condition is met includes: Determine whether the number of groupings reaches the preset number of groupings; or Determine whether the number of the to-be-injected points in the first fault group is less than a preset number; or After any one of the first fault groups is grouped, it is determined whether the number of the to-be-injected points in each group obtained is 1.
8. The method according to claim 1, characterized in that The types of system failures include: abnormal failures and erroneous results.
9. An electronic device, characterized in that: including memory and processor; The memory is used to store computer programs; The processor is configured to implement a single-particle simulation acceleration method based on multi-point fault injection according to any one of claims 1 to 8 when executing the computer program.
10. A computer-readable storage medium, characterized in that The storage medium stores a computer program, and when the computer program is executed by the processor, the single-particle simulation acceleration method based on multi-point fault injection according to any one of claims 1 to 8 is implemented.