WO2023218158A1 - Run-time modification of a field programmable gate array or a coarse grained reconfigurable array to duplicate the most vulnerable functional circuits behaviour - Google Patents
Run-time modification of a field programmable gate array or a coarse grained reconfigurable array to duplicate the most vulnerable functional circuits behaviour Download PDFInfo
- Publication number
- WO2023218158A1 WO2023218158A1 PCT/GB2023/050504 GB2023050504W WO2023218158A1 WO 2023218158 A1 WO2023218158 A1 WO 2023218158A1 GB 2023050504 W GB2023050504 W GB 2023050504W WO 2023218158 A1 WO2023218158 A1 WO 2023218158A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- circuit
- vulnerable
- behaviour
- functional
- circuitry
- 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.)
- Ceased
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/76—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in application-specific integrated circuits [ASIC] or field-programmable devices, e.g. field-programmable gate arrays [FPGA] or programmable logic devices [PLD]
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/34—Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
- G06F30/347—Physical level, e.g. placement or routing
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/002—Error detection; Error correction; Monitoring protecting against parasitic influences, e.g. noise, temperatures
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/008—Reliability or availability analysis
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/14—Error detection or correction of the data by redundancy in operations
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/142—Reconfiguring to eliminate the error
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/1629—Error detection by comparing the output of redundant processing systems
- G06F11/1637—Error detection by comparing the output of redundant processing systems using additional compare functionality in one or some but not all of the redundant processing components
Definitions
- the present disclosure relates to data processing and particularly the resilience of data processing circuits.
- a data processing apparatus comprising: determination circuitry configured to perform a determination of a vulnerability of each of a plurality of functional circuits in a processing circuit; and modification circuitry configured to modify a behaviour of a reprogrammable circuit to match an architectural behaviour of a vulnerable functional circuit in the functional circuits in response to the determination.
- a data processing method comprising: performing a determination of a vulnerability of each of a plurality of functional circuits in a processing circuit; and modifying a behaviour of a reprogrammable circuit to match an architectural behaviour of a vulnerable functional circuit in the functional circuits in response to the determination.
- a computer program for controlling a host data processing apparatus to provide an instruction execution environment comprising: determination logic configured to perform a determination of a vulnerability of each of a plurality of functional circuits in a processing circuit; and modification logic configured to modify a behaviour of reprogrammable logic to match an architectural behaviour of a vulnerable functional circuit in the functional circuits in response to the determination.
- Figure 1 illustrates a system comprising an apparatus according to some examples
- Figure 2 illustrates an example of different functional units and their vulnerabilities according to one example
- Figure 3 illustrates how the vulnerability of a functional circuit can change over time
- Figure 4 gives an example of the changing assessment with regards to vulnerability
- Figure 5 illustrates an example in which any number of the individual functional circuits can have their architectural behaviour copied by the reprogrammable circuitry
- Figure 6 illustrates example behaviour of the arbitration circuitry in arbitrating between results produced from the reprogrammable circuitry and the CPU
- Figure 7 illustrates a simulator implementation that may be used.
- a data processing apparatus comprising: determination circuitry configured to perform a determination of a vulnerability of each of a plurality of functional circuits in a processing circuit; and modification circuitry configured to modify a behaviour of a reprogrammable circuit to match an architectural behaviour of a vulnerable functional circuit in the functional circuits in response to the determination.
- the above embodiment makes use of reprogrammable circuitry in order to replicate the architectural behaviour (but not necessarily other behaviours) of a functional circuit in the processing circuitry that is determined to be vulnerable.
- a functional circuit can be considered to be an element of the processing circuitry that performs a specific function. For instance, this might be an integer unit, a floating-point unit, a load/store unit, and so on.
- the modification circuitry causes the reprogrammable circuit to behave in a manner that is consistent with the requirements of the vulnerable functional circuit. That is, the input- to-output mapping will be the same for both circuits. However, other behaviour (e.g. the specific way in which outputs are produced for particular inputs) may be different.
- AVF architectural vulnerability factor
- AVF and other measurements of vulnerability
- the data processing apparatus comprises arbitration circuitry configured to arbitrate between results of the vulnerable functional circuit and between the reprogrammable circuit that matches the architectural behaviour of the vulnerable functional circuit.
- the arbitration circuitry determines how to reconcile the vulnerable functional circuit with the reprogrammable circuit whose behaviour has been reprogrammed to architecturally behave in the same way as the vulnerable functional circuit. There are a number of ways in which this can be done.
- the arbitration circuitry is configured to compare a result of the reprogrammable circuit that matches the architectural behaviour of the vulnerable functional circuit with a result of the vulnerable functional circuit and to perform an error action in response to a mismatch.
- both the vulnerable functional circuit and the reprogrammable circuit that is reprogrammed to match the architectural behaviour of the vulnerable circuit are used to perform particular operations. The results are then compared with each other. If the results match, then the result is permitted to continue. Otherwise, an error action occurs.
- some element of pre-emption may be permitted. That is to say that it could be assumed that the operation is performed correctly by the vulnerable functional circuit.
- the error action comprises activating a substitution mode in which a result of the reprogrammable circuit that matches the architectural behaviour of the vulnerable functional circuit is used in place of a result of the vulnerable functional circuit. Having determined that there is a mismatch between the result produced by the vulnerable functional circuit and the reprogrammable circuit that is reprogrammed to match the architectural behaviour of the vulnerable functional circuit, the reprogrammable circuit effectively ‘replaces’ the vulnerable functional circuit - whose architectural behaviour has been shown to be potentially unreliable.
- the error action comprises raising an exception.
- particular behaviour can be programmed into the software to handle in the most appropriate manner given the software being executed. This also makes it possible to, for instance, alert a user.
- the reprogrammable circuit that matches the architectural behaviour of the vulnerable functional circuit has different micro-architectural behaviour to the vulnerable functional circuit.
- Micro-architectural behaviour can be considered to include implementation detail regarding how, precisely, the architectural behaviour is achieved. This can include optimisations and improvements to the operation of the system that do not affect the overall result produced for a particular input.
- An example of a micro-architectural improvement could be in a multiplication circuit where the detection of an input parameter of ‘0’ immediately causes a result of ‘0’ to be output (since any multiplication by 0 is 0). This optimisation can improve the speed at which particular multiplications are performed (specifically multiplications by zero).
- the modification circuitry is configured to modify the architectural behaviour of the reprogrammable circuit dynamically at runtime. The reprogrammable circuit can therefore be changed to match the architectural behaviour of one functional circuit at one particular time and to match the architectural behaviour of another functional circuit at a different time - while the data processing apparatus is in active use.
- the determination circuitry comprises storage circuitry to store heuristic data and the determination of the vulnerability is made using the heuristic data.
- the heuristic data could be derived, for instance, via offline analysis of either specific programs or a wide range of different programs, and can be used to indicate circumstances in which a particular circuit is likely to become vulnerable.
- the heuristic data comprises instruction sequences that increase a vulnerability of at least some of the functional circuits.
- An offline heuristical analysis could indicate that certain sequences or combinations of instructions lead to an increased vulnerability of functional circuits. For instance, this could arise due to certain code sequences necessitating the activation of certain sub-circuits within functional circuits that cause vulnerability to increase because as more sub-circuits are activated, the number of transistors and flops being used increases. This increase leads to a greater number of attack vectors being available and the increased number of transistors and flops means that more transistors/flops become susceptible to errors due to transient inadvertent bit transitions.
- a particular code sequence could have been determined as being a possible attack vector by a malicious third party.
- a still further possibility is that a particular code sequence leads to slightly riskier behaviour taking place - for instance, the use of data speculation might be required for certain code sequences. Architecturally, incorrect data speculation should eventually be eliminated. However, the fact that incorrect data values may be used for a brief period could be said to increase the vulnerability of functional circuits. The heuristic data could therefore indicate that, for instance, the instruction sequence SUB, ADD, MUL leads to increased vulnerability. This sequence can therefore be detected at a decoder and the determination circuitry can be informed of the consequential increase.
- the data processing apparatus comprises: compression circuitry to compress one or more signals of the vulnerable functional circuit to produce one or more compressed signals; and decompression circuitry to decompress the one or more compressed signals and to provide one or more decompressed signals to the reprogrammable circuit that matches the architectural behaviour of the vulnerable functional circuit.
- the reprogrammable circuit can therefore be made to operate on the same signals provided to the vulnerable functional circuit even though the extent of those signals (the number of bits to be transferred) is large.
- the one or more signals of the vulnerable functional circuit are signals produced internally to the processing circuitry.
- the signals between functional circuits can be extensive. Consequently, in order to emulate or replicate the behaviour of a vulnerable functional circuit, it can be necessary to duplicate a large quantity of the signals provided to that vulnerable functional circuit. This differs from a situation in which the processing circuitry itself is replicated. In this situation, only the interface signals to the processing circuitry (which are typically smaller) need to be replicated. Since, in these examples, the signals are intensive, the provision of compression and decompression circuitry can be used to lessen the bandwidth requirements.
- the reprogrammable circuit is a field programmable gate array or a coarse grained reconfigurable array.
- Other types of reprogrammable computational circuits or general purpose processors can be provided, which enables the exact functionality of that circuit to be controlled and/or changed at runtime - thereby enabling the system to arbitrarily change which of the functional circuits is duplicated.
- the reprogrammable circuit may therefore not have one single function, but may have many possible functions.
- the modification circuitry is configured to modify the behaviour of the reprogrammable circuit to match a plurality of architectural behaviours of vulnerable functional circuits in the functional circuits in response to the determination.
- the reprogrammable circuit can therefore be capable of simultaneously replicating several functional circuits specifically when those functional circuits have been deemed to be vulnerable.
- the vulnerable functional circuits make up at most a subset of the functional circuits. That is, the reprogrammable circuit is not used to architecturally replicate the entire functionality of the processing circuit, but instead architecturally replicates only a proportion of the circuit depending on those circuits that are deemed to be most vulnerable at a particular moment in time.
- the modification circuitry in response to the determination circuitry determining that multiple of the plurality of functional circuits are vulnerable, is configured to modify those of the functional circuits that are determined to be most vulnerable. This could be by ‘synthesising’ the behaviour of all of the functional circuits whose vulnerability is over a threshold or by ‘synthesising’ the behaviour of the top x most vulnerable functional circuits.
- Figure 1 illustrates a system 100 comprising an apparatus 105 according to some examples, reprogrammable circuitry 150 used by that apparatus 105, a CPU 110, and memory (which could be a cache, a DRAM-backed memory, another type of memory, or a hierarchy or hybrid system comprising several such storage circuits).
- the processing circuitry contains a number of functional circuits 115, 120, 125. Each of these functional circuits may be response for performing distinct operations within the CPU 110. For instance, one of the functional circuitry 115 might perform integer operations while another 120 might be responsible for memory operations. While operating, determination circuitry 130 in the apparatus 105 might determine that one or more of these functional circuits 115, 120, 125 is vulnerable.
- the determination circuitry 130 might determine that there is a potential for an error to occur that is visible to the underlying program executing using the CPU 110. This determination can be made using heuristic data stored in storage circuitry 135.
- the heuristic data can contain, for instance, details about the number of flops or transistors in each functional circuit 115, 120, 125 of the CPU 110 and/or details about particular sequences of instructions, behaviours, parameters (or combinations of parameters) etc. that are known to render or are likely to increase the probability with which a functional circuit 115, 120, 125 becomes vulnerable.
- modification circuitry 140 is instructed to modify reprogrammable circuitry 150 to adopt the same architectural behaviour of the vulnerable circuit. This can be achieved using configuration data 145 stored within configuration storage 145 that stores hardware description language (HDL) files for versions of the functional circuits 115, 120, 125.
- HDL hardware description language
- the reprogrammable circuitry 150 is shown to have architectural equivalents 155, 160 of two 115, 125 of the functional circuits.
- Such “replicas” are architecturally the same in the sense that for a given set of input signals, these “replicas” will produce the same outputs.
- the manner in which those outputs are produced and in particular, optimisations that might be performed in the functional circuitry 115, 125 might not be performed (which is to say that micro-architecturally, there may be a difference).
- Arbitration circuitry is provided to arbitrate between results produced by the CPU 110 and the “replicas” within the reprogrammable circuitry 150. There are a number of ways in which this arbitration might be performed, as will be discussed in more detail below.
- the result of the arbitration can, for instance, be written to (or result in reading from) a memory system 180.
- functionality of the apparatus 105 shown in Figure 1 is the presence of compression circuitry 165 and decompression circuitry 170. Since the apparatus 105 modifies the reprogrammable circuitry 150 to architecturally correspond with the behaviour of the individual functional circuits 115, 120, 125 of the processing circuitry, it is possible that it will be necessary for signal inputs to individual functional circuits 115, 120, 125 to be provided to parts of the reprogrammable circuitry 155, 160. However, the width of data buses within the CPU 110 tend to be very large in comparison to the width of the data bus on which the CPU 110 and reprogrammable circuitry 150 lie.
- this bus might be sufficient if the CPU 110 were to be replicated wholescale, it may (in some situations) ironically be insufficient for supporting the replication of the architectural behaviour of individual functional circuits 115, 125. Consequently, compression circuitry 165 and decompression circuitry 170 are provided so that the signals that would be internal to the CPU 110 can be compressed when being passed along a narrow width bus to the reprogrammable circuitry 150.
- Figure 2 is of a table 200 that illustrates an example of different functional units 210 and the architectural vulnerability factor (AVF), which is one particular way of characterising the probability that a fault in a structure (e.g. a flop) of that functional circuit will lead to an error that is visible at the application level. A higher score therefore indicates a more vulnerable circuit. It will be appreciated that the number of flops in each structure can provide an indication of the vulnerability of the functional circuit.
- Figure 2 illustrates a number of different AVF values 230 for different components in a CPU design while executing different benchmarks.
- Figure 3 illustrates how, for a given processing circuit, the vulnerability of a particular functional circuit can differ over time.
- the graph of Figure 3 has been generated according to the techniques described in US 10,747,601 (the contents of which are incorporated herein), which describes how formal methods rather than fault injection experiments can be used in order to express reliability.
- these techniques look at a series of instructions and firstly determine the contribution of each of a set of circuit blocks according to how often each of those circuit blocks is used in executing that series of instructions. Then, it is possible to determine a failure mode for each instruction by considering the failure rate of each block used by that instruction divided by the total number of circuit blocks used by each of the instructions in the series of instructions.
- Figure 3 shows how the data processing unit’s vulnerability (expressed as 1 - Fsafe, which is approximately the same as AVF) changes over a number of clock cycles, depending on whether the vulnerability is estimated according to a more conservative approach or a less conservative approach.
- Figure 3 therefore serves to show that the current vulnerability of a given circuit depends not only on the nature of that circuit but also the actual code being executed.
- Figure 4 gives an example of the changing assessment with regards to vulnerability.
- two applications APP1 and APP2 execute.
- Each application has a number of phases (Pl and P2 in the case of APP1 and Pl, P2, and P3 in the case of APP2).
- This example assumes that there are three functional circuits (FUNCTION A, FUNCTION B, FUNCTION C) and that the reprogrammable circuitry 150 is able to replicate the architectural functionality of exactly one of these circuits.
- functional circuit A is considered to be highly vulnerable
- functional circuit C is considered to be moderately vulnerable
- functional circuit B is considered to have low vulnerability. Consequently, functional circuit A is selected to have its architectural behaviour copied in the reprogrammable circuitry 150.
- a second phase of a first application functional circuit C is considered to be highly vulnerable, functional circuit B is considered to be of moderate vulnerability, and functional circuit A is considered to be of low vulnerability. Consequently, the reprogrammable circuitry 150 is reprogrammed to copy the architectural behaviour of functional circuit C.
- functional circuit B is high vulnerability
- functional circuit A is moderate vulnerability
- functional circuit C is low vulnerability, leading to replication of the architectural behaviour of functional circuit B.
- functional circuit A becomes the highest vulnerability
- in the third phase of the second application functional circuit B becomes the highest vulnerability leading to the architectural replication of functional circuitry A and B, respectively, in the second the third phases of the second application.
- the reprogrammable circuitry 150 may be able to replicate the architectural behaviour of two of the functional circuits, in which case the high vulnerability circuit and medium vulnerability circuit could have their architectural behaviour duplicated.
- Figure 5 illustrates an example in which any number of the individual functional circuits can have their architectural behaviour copied by the reprogrammable circuitry.
- the operations being performed in respect of a given functional circuit are considered. This can be achieved by calculating, for instance, the AVF for that component at the present moment in the runtime of the system. Although this value is calculated at runtime (since the instructions being executed and therefore the vulnerability will vary over the runtime of the application), it may make use of heuristic or structural data that can be determined offline. For instance, the heuristic data might consider the underlying vulnerability (e.g. the number of flops) in each functional circuit.
- the heuristic data might consider the underlying vulnerability (e.g. the number of flops) in each functional circuit.
- the heuristic data could alternatively or additionally consider particular sequences of instructions or behaviours that alter the vulnerability profile. This might not only include, for instance, the recognition that code sequences that don’t use a vulnerable circuit essentially render that circuit low vulnerability, but might also include code sequences that are known to be problematic or that represent (for instance) known attack vectors for a malicious third party. In any event, all of these factors are combined to produce a vulnerability score.
- the vulnerability score (AVF in this example) is compared to a threshold and if the threshold is exceeded then at step 530, that architectural behaviour of that circuit (but not its micro-architectural behaviour) is replicated by reprogramming the reprogrammable circuitry. The process then proceeds to step 550.
- step 540 the replicated behaviour is removed from the reprogrammable circuitry (if present) and the process continues to step 550.
- step 550 it is determined whether there are more functional circuits to consider. If so, the process returns to step 510. Otherwise, the process ends at step 560 until the next assessment period.
- Figure 6 illustrates example behaviour of the arbitration circuitry 175 in arbitrating between results produced from the reprogrammable circuitry 150 and the CPU 110.
- the example behaviour is illustrated in the form of a flowchart 600.
- the results from the CPU 110 and the reprogrammable circuitry 150 are provided to the arbitration circuitry 175.
- the CPU is able to take advantage of micro-architectural improvements that mean that the result has already been used, or may allow future operations to be performed more efficiently.
- the process then returns to step 610. If the results are not identical, then an error action occurs. In this example, the error action contains three parts. Firstly, at a step 660, an exception is raised. This allows the user (or the underlying program) to be alerted to the vulnerability. The program can thereby decide whether to take further action, depending on the nature of the operation being performed and how critical it is (for instance, tuning a radio in a car might not be considered sufficiently safety critical to bother doing anything, whereas an airbag deployment system might be considered critical such that some action must be taken).
- the result of the reprogrammable circuit 150 is used. This is selected over the CPU 110 since the lack of optimisations make it more likely that the reprogrammable circuit 150 result is correct.
- the substitute mode is activated. This means that, until deactivated, the reprogrammable circuit 150 will continue to be used over the functional circuit in the CPU 110. Depending on any underlying policy, this process could continue indefinitely, until a firmware ‘fix’ is implemented, for a time period, until the software indicates otherwise, and so on. The process then returns to step 610.
- the substitute mode might be enabled immediately. For instance, if certain attack vectors become known such that certain functional circuits are “always” vulnerable, then the substitute mode might be permanently enabled for that functional circuit (or possibly until/unless a firmware fix can be provided). In some embodiments, in the substitute mode, the operation of the original vulnerable functional circuit is disabled and therefore no result is produced.
- FIG. 7 illustrates a simulator implementation 700 that may be used. Whilst the earlier described embodiments implement the present invention in terms of apparatus and methods for operating specific processing hardware supporting the techniques concerned, it is also possible to provide an instruction execution environment in accordance with the embodiments described herein which is implemented through the use of a computer program. Such computer programs are often referred to as simulators, insofar as they provide a software based implementation of a hardware architecture. Varieties of simulator computer programs include emulators, virtual machines, models, and binary translators, including dynamic binary translators. Typically, a simulator implementation may run on a host processor 740, optionally running a host operating system 730, supporting the simulator program 720.
- a host processor 740 optionally running a host operating system 730, supporting the simulator program 720.
- the hardware there may be multiple layers of simulation between the hardware and the provided instruction execution environment, and/or multiple distinct instruction execution environments provided on the same host processor.
- powerful processors have been required to provide simulator implementations which execute at a reasonable speed, but such an approach may be justified in certain circumstances, such as when there is a desire to run code native to another processor for compatibility or re-use reasons.
- the simulator implementation may provide an instruction execution environment with additional functionality which is not supported by the host processor hardware, or provide an instruction execution environment typically associated with a different hardware architecture.
- An overview of simulation is given in “Some Efficient Architecture Simulation Techniques”, Robert Bedichek, Winter 1990 USENIX Conference, Pages 53 - 63.
- the simulator program 720 may be stored on a computer-readable storage medium (which may be a non-transitory medium), and provides a program interface (instruction execution environment) to the target code 710 (which may include applications, operating systems and a hypervisor) which is the same as the interface of the hardware architecture being modelled by the simulator program 720.
- the program instructions of the target code 710 may be executed from within the instruction execution environment using the simulator program 720, so that a host computer 730 which does not actually have the hardware features of the apparatus 105 discussed above can emulate these features.
- the simulator code 720 includes determination logic 750 that is used for determining the vulnerability of a (simulated) functional component within processing circuit logic 760.
- Modification logic 770 is also provided for dynamically reprogramming reprogrammable logic 780 to perform (architecturally) the same behaviour as one or more of the functional components within the (simulated) processing circuit logic 760. This can be achieved by generative programming, or by activating particular libraries of code that are available to emulate architectural behaviours of the (simulate) processing circuit logic 760, which is the code in the simulator used to execute the target code 710.
- the words “configured to. ..” are used to mean that an element of an apparatus has a configuration able to carry out the defined operation.
- a “configuration” means an arrangement or manner of interconnection of hardware or software.
- the apparatus may have dedicated hardware which provides the defined operation, or a processor or other processing device may be programmed to perform the function. “Configured to” does not imply that the apparatus element needs to be changed in any way in order to provide the defined operation.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Mathematical Physics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Geometry (AREA)
- Evolutionary Computation (AREA)
- Hardware Redundancy (AREA)
Abstract
Description
Claims
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US18/863,873 US20250298953A1 (en) | 2022-05-13 | 2023-03-03 | Run-time modification of a field programmable gate array or a coarse grained reconfigurable array to duplicate the most vulnerable functional circuits behaviour |
| CN202380038740.1A CN119173858A (en) | 2022-05-13 | 2023-03-03 | Run-time modification of field-programmable gate arrays or coarse-grained reconfigurable arrays to replicate the most vulnerable functional circuit behavior |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| EP22305712.6 | 2022-05-13 | ||
| EP22305712 | 2022-05-13 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2023218158A1 true WO2023218158A1 (en) | 2023-11-16 |
Family
ID=82492864
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/GB2023/050504 Ceased WO2023218158A1 (en) | 2022-05-13 | 2023-03-03 | Run-time modification of a field programmable gate array or a coarse grained reconfigurable array to duplicate the most vulnerable functional circuits behaviour |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US20250298953A1 (en) |
| CN (1) | CN119173858A (en) |
| GB (1) | GB2618628B (en) |
| WO (1) | WO2023218158A1 (en) |
Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US10747601B2 (en) | 2018-11-30 | 2020-08-18 | Arm Limited | Failure estimation in circuits |
-
2022
- 2022-10-14 GB GB2215225.0A patent/GB2618628B/en active Active
-
2023
- 2023-03-03 CN CN202380038740.1A patent/CN119173858A/en active Pending
- 2023-03-03 US US18/863,873 patent/US20250298953A1/en active Pending
- 2023-03-03 WO PCT/GB2023/050504 patent/WO2023218158A1/en not_active Ceased
Patent Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US10747601B2 (en) | 2018-11-30 | 2020-08-18 | Arm Limited | Failure estimation in circuits |
Non-Patent Citations (3)
| Title |
|---|
| HONGYAN ZHANG: "Cross-Layer Dependability for Runtime Reconfigurable Architectures", 11 May 2017 (2017-05-11), XP093042604, Retrieved from the Internet <URL:https://publikationen.bibliothek.kit.edu/1000082041/7797902> [retrieved on 20230427] * |
| NAVAS NAVAS BYRON BYRON ET AL: "Cognitive and Self-Adaptive SoCs with Self-Healing Run-Time-Reconfigurable RecoBlocks", 17 December 2015 (2015-12-17), Stockholm, XP093042323, ISBN: 978-91-7-595768-5, Retrieved from the Internet <URL:https://www.diva-portal.org/smash/get/diva2:875482/FULLTEXT01.pdf> [retrieved on 20230426] * |
| ROBERT BEDICHEK: "Some Efficient Architecture Simulation Techniques", WINTER 1990 USENIX CONFERENCE, pages 53 - 63 |
Also Published As
| Publication number | Publication date |
|---|---|
| GB2618628A (en) | 2023-11-15 |
| GB2618628B (en) | 2024-11-20 |
| CN119173858A (en) | 2024-12-20 |
| GB202215225D0 (en) | 2022-11-30 |
| US20250298953A1 (en) | 2025-09-25 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| He et al. | Understanding and mitigating hardware failures in deep learning training systems | |
| RU2385484C2 (en) | Reduced frequency of non-corrected errors generation in system of double-module redundancy in inflexibility of configuration | |
| Koch et al. | Efficient hardware checkpointing: concepts, overhead analysis, and implementation | |
| Calhoun et al. | FlipIt: An LLVM based fault injector for HPC | |
| CN106997441B (en) | Method and apparatus for automatically detecting and eliminating functional trojans in integrated circuit design | |
| Fetzer et al. | AN-encoding compiler: Building safety-critical systems with commodity hardware | |
| Herdt et al. | Efficient cross-level testing for processor verification: A risc-v case-study | |
| Lee et al. | A novel simulation fault injection method for dependability analysis | |
| Pattabiraman et al. | Dynamic derivation of application-specific error detectors and their implementation in hardware | |
| WO2022146790A1 (en) | Providing host-based error detection capabilities in a remote execution device | |
| Nikiema et al. | Towards dependable RISC-V cores for edge computing devices | |
| Anjankar et al. | FPGA based multiple fault tolerant and recoverable technique using triple modular redundancy (FRTMR) | |
| Foutris et al. | Accelerating microprocessor silicon validation by exposing ISA diversity | |
| US8453082B2 (en) | Soft error verification in hardware designs | |
| Heida | Towards a fault tolerant RISC-V softcore | |
| US20250298953A1 (en) | Run-time modification of a field programmable gate array or a coarse grained reconfigurable array to duplicate the most vulnerable functional circuits behaviour | |
| JP2008097611A (en) | Method and system for generating a valid signal | |
| Chaudhari et al. | A framework for low overhead hardware based runtime control flow error detection and recovery | |
| Pflanz et al. | Online check and recovery techniques for dependable embedded processors | |
| JP2005339562A (en) | Method and system for checking rotation, shift and code expansion function using modulo function, | |
| Campelo et al. | DICOS: a real-time distributed industrial control system for embedded applications | |
| CN119201155A (en) | Firmware update by logical address remapping | |
| Mestiri et al. | An AOP-Based Security Verification Environment for KECCAK Hash Algorithm. | |
| Bartsch et al. | A HW/SW cross-layer approach for determining application-redundant hardware faults in embedded systems | |
| Na | A novel simulation fault injection using electronic systems level simulation models |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 23708883 Country of ref document: EP Kind code of ref document: A1 |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 18863873 Country of ref document: US |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 23708883 Country of ref document: EP Kind code of ref document: A1 |
|
| WWP | Wipo information: published in national office |
Ref document number: 18863873 Country of ref document: US |