WO2024205574A1 - Fast recovery for dual core lock step - Google Patents
Fast recovery for dual core lock step Download PDFInfo
- Publication number
- WO2024205574A1 WO2024205574A1 PCT/US2023/016561 US2023016561W WO2024205574A1 WO 2024205574 A1 WO2024205574 A1 WO 2024205574A1 US 2023016561 W US2023016561 W US 2023016561W WO 2024205574 A1 WO2024205574 A1 WO 2024205574A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- processor pipeline
- stage
- writeback
- store data
- signals
- 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.)
- Pending
Links
Classifications
-
- 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/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/554—Detecting local intrusion or implementing counter-measures involving event detection and direct action
-
- 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
-
- 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/74—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 operating in dual or compartmented mode, i.e. at least one secure mode
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
- G06F9/3869—Implementation aspects, e.g. pipeline latches; pipeline synchronisation and clocking
Definitions
- This disclosure relates generally to fault-tolerant computing.
- Fault-tolerant computing is computer-implemented processing in the presence of a fault.
- a processing fault may result from a hardware error.
- a failing hardware component such as a defective memory device may result in a processor reading invalid data.
- Such an invalid data read may result in system state corruption.
- a processor reading invalid data may then generate invalid data that may corrupt the system when written to memory.
- an environmental factor such as a cosmic ray may corrupt data and result in a processing fault.
- Some computing systems operate in mission critical roles. A computing system operating in a safety critical application may need to be halted when a fault is detected, to prevent a catastrophic result. Recovering safe and correct system operation after a fault is detected may be time-consuming or difficult.
- An exemplary fault-tolerant computing system comprises a secondary processor configured to execute in delayed lock step with a primary processor from a common program store, comparators in the store data and writeback paths to detect a fault based on comparing primary and secondary processor states, and a writeback path delay permitting aborting execution when a fault is detected, before writeback of invalid data.
- the secondary processor execution and the primary processor store data and writeback may be delayed a predetermined number of cycles, permitting fault detection before writing invalid data.
- Store data and writeback paths may include triple module redundancy configured to pass only majority data through the store data and writeback path delay stages. Some implementations may forward data from the store data path delay stages to the writeback stage or memory if the load data address matches the address of data in a store data path delay stage.
- An example implementation in accordance with the present disclosure may comprise a primary processor and a secondary processor.
- the primary processor and the secondary processor may be pipelined processors.
- the primary processor pipeline and the secondary processor pipeline may comprise a respective plurality of sequential pipeline stages.
- the primary and secondary processor pipelines may comprise, in sequence, a fetch stage, a decode stage, an execute stage, a load/store stage, and a writeback stage.
- the primary and secondary processor pipeline load/store stages may be operably coupled to respective data memories.
- the primary and secondary processor pipeline writeback stages may be operably coupled to respective writeback caches.
- the primary and secondary processor pipeline store data paths comprise a delay module connected between the execute and load/store stages of the respective pipelines.
- the primary processor pipeline store data path delay may be a three-stage delay.
- the secondary processor pipeline store data path delay may be a one-stage delay, permitting the secondary processor to execute from a common program store with the primary processor, delayed by two cycles from the primary processor.
- a store data comparator receives delayed input signals and data from the primary and secondary processor pipelines. The store data comparator is configured to output the result of comparing the delayed input signals and data from the primary and secondary processors. The output of the store data path comparator indicates whether the primary processor and secondary processor states agree. When the primary processor and secondary processor states do not agree, the store data path comparator output indicates a fault is present.
- the store data path comparator output is connected to a control gate configured to govern memory write operation through the load/store stage and block memory write when a fault is present.
- the delayed lock step execution between the processors and the store data path delays permit preventing system state corruption before invalid data is written to memory, based on blocking a memory write operation while invalid data is still in the store data path delay stages.
- the primary and secondary processor pipeline writeback paths comprise a delay module connected between the load/store and writeback stages of the respective pipelines.
- the primary processor pipeline writeback path delay may be a three-stage delay.
- the secondary processor pipeline writeback path delay may be a one-stage delay, permitting the secondary processor to execute from a common program store with the primary processor, delayed by two cycles from the primary processor.
- a writeback comparator receives delayed input signals and data from the primary and secondary processor pipelines.
- the writeback comparator is configured to output the result of comparing the delayed input signals and data from the primary and secondary processors.
- the output of the writeback path comparator indicates whether the primary processor and secondary processor states agree.
- the writeback path comparator output indicates a fault is present.
- the writeback path comparator output is connected to a control gate configured to govern writeback operation through the writeback stage and block writeback when a fault is present.
- the delayed lock step execution between the processors, the store data path delay, and the writeback delay permit preventing system state corruption before invalid data is written to memory or to the writeback cache, based on blocking memory write and writeback operations while invalid data is still in the store data path and writeback path delay stages.
- the delay module configured in the primary processor pipeline writeback data path may comprise multiple buffer stages configured with triple module redundancy designed to pass only majority data to the next stage.
- the primary processor pipeline and the secondary processor pipeline store data paths may be configured to forward data from the store data path delay stages to the writeback stage or memory if the load data address matches the address of data in a store data path delay stage.
- Various implementations may achieve one or more technical effect. For example, some implementations may improve fault detection reliability. This facilitation may be a result of fault detection implemented in the store data stage and the writeback stage, increasing the likelihood of fault detection with multiple comparisons.
- fault recovery may be faster, based on resuming execution from a known clean point that may have been more recently passed by a program. Such faster fault recovery may be a result of preventing system state corruption before invalid data is written to memory, register file, or to the writeback cache, permitting resuming execution at a more recent clean point determined based on known good data in the delay stages.
- An implementation in accordance with the present disclosure may ensure data agreement between two processor cores before write back into a register file or data store to memory, permitting recovery time to be reduced on a fault detection.
- fast recovery from a fault may be performed as follows when a mismatch between the primary core pipeline and secondary core pipeline is detected before writeback by a store data comparator or writeback comparator as disclosed herein: the pipeline is flushed and the pipeline begins fetching the instruction where the mismatch occurred, from the instruction memory. Since the pipeline was flushed before writeback, the detected invalid data was not written to the register file, thus protecting the register file from corruption.
- the instructions needed to recover quickly may be in cache with very high probability, and the cycle loss to recover normal execution may be less than 10 cycles using the fault-tolerant fast recovery techniques according to the present disclosure.
- an apparatus may comprise: a primary processor comprising a primary processor pipeline, wherein the primary processor pipeline comprises an execute stage and a load/store stage; a secondary processor comprising a secondary processor pipeline, wherein the secondary processor pipeline comprises an execute stage and a load/store stage; a store data comparator having a first input operably coupled with the primary processor pipeline, a second input operably coupled with the secondary processor pipeline, and an output, wherein the store data comparator is configured to indicate at the output a result of comparing delayed primary processor pipeline signals with delayed secondary processor pipeline signals; a primary processor pipeline store data control gate configured to output delayed primary processor pipeline signals to the primary processor pipeline load/store stage only if the store data comparator output indicates agreement between the delayed primary processor pipeline signals and the delayed secondary processor pipeline signals compared by the store data comparator; and a secondary processor pipeline store data control gate configured to output delayed secondary processor pipeline signals to the secondary processor pipeline load/store stage only if the store data comparator output indicates agreement between the delayed primary processor pipeline signals and the delayed secondary processor pipeline signals compared by the store data comparator
- the primary processor pipeline execute stage may have an output operably connected through a primary processor pipeline store data path delay module to a first input of the primary processor store data control gate.
- the primary processor pipeline store data path delay module may be a three-stage buffer delay module.
- the primary processor pipeline store data path delay module may be a three-stage triple module redundancy buffer delay module wherein each stage may be configured to pass only majority data.
- the primary processor pipeline may further comprise a writeback stage, wherein the primary processor pipeline may be configured to forward data from the primary processor pipeline store data path delay module to the writeback stage if a load data address matches the address of data in the primary processor pipeline store data path delay module.
- the secondary processor pipeline execute stage may have an output operably connected through a secondary processor pipeline store data path delay module to a first input of the secondary processor store data control gate.
- the secondary processor pipeline store data path delay module may be a one-stage buffer delay module.
- the delayed primary processor pipeline signals compared by the store data comparator may be connected to the store data comparator first input through a primary processor store data comparison delay module operably coupled to the primary processor pipeline execute stage.
- the primary processor store data comparison delay module may be a three-stage buffer delay module.
- an apparatus may comprise: a primary processor comprising a primary processor pipeline, wherein the primary processor pipeline comprises, operably connected in sequence, a fetch stage, a decode stage, an execute stage, a load/store stage, and a writeback stage; a secondary processor comprising a secondary processor pipeline, wherein the secondary processor pipeline comprises, operably connected in sequence, a fetch stage, a decode stage, an execute stage, a load/store stage, and a writeback stage; a store data comparator having a first input operably coupled with an output of the primary processor pipeline execute stage to receive delayed primary processor pipeline signals through a primary processor store data comparison delay module comprising a three-stage buffer delay, a second input operably coupled with the secondary processor pipeline execute stage to receive delayed secondary processor pipeline signals through a secondary processor store data comparison delay module comprising a one-stage buffer delay, and an output, wherein the store data comparator is configured to indicate at the output a result of comparing the delayed primary processor pipeline signals with the delayed secondary processor pipeline signals; a
- the primary processor pipeline fetch stage and the secondary processor pipeline fetch stage may be operably coupled to a program store common to the primary processor and the secondary processor.
- the secondary processor pipeline may execute in delayed lock step with the primary processor pipeline, wherein the secondary processor pipeline execution is delayed from the primary processor pipeline execution by at least two cycles.
- the delayed primary processor pipeline signals and the delayed secondary processor pipeline signals compared by the store data comparator may further comprise handshake signals and data between a data cache and a core, or handshake signals between a data memory and the core.
- the delayed primary processor pipeline signals and the delayed secondary processor pipeline signals compared by the writeback comparator may further comprise handshake signals and data between a register file, a data cache, a data memory, and a core.
- the primary processor pipeline store data path delay module may further comprise a three-stage triple module redundancy buffer delay module wherein each stage may be configured to pass only majority data.
- the primary processor pipeline writeback path delay module may further comprise a three-stage triple module redundancy buffer delay module wherein each stage may be configured to pass only majority data.
- an apparatus may comprise: a primary processor comprising a primary processor pipeline, wherein the primary processor pipeline comprises, operably connected in sequence, a fetch stage, a decode stage, an execute stage, a load/store stage, and a writeback stage; a secondary processor comprising a secondary processor pipeline, wherein the secondary processor pipeline comprises, operably connected in sequence, a fetch stage, a decode stage, an execute stage, a load/store stage, and a writeback stage, wherein the primary processor pipeline fetch stage and the secondary processor pipeline fetch stage are operably coupled to a program store common to the primary processor and the secondary processor; a store data comparator having a first input operably coupled with an output of the primary processor pipeline execute stage to receive delayed primary processor pipeline signals through a primary processor store data comparison delay module comprising a three-stage buffer delay, a second input operably coupled with the secondary processor pipeline execute stage to receive delayed secondary processor pipeline signals through a secondary processor store data comparison delay module comprising a one-stage buffer delay, and an output, wherein
- the program store may further comprise processor executable instructions configured to cause the apparatus to resume execution from a known clean program point in response to a fault indication determined as a function of disagreement between primary processor pipeline signals and secondary processor pipeline signals.
- processor executable instructions configured to cause the apparatus to resume execution from a known clean program point in response to a fault indication determined as a function of disagreement between primary processor pipeline signals and secondary processor pipeline signals.
- One or more of the primary processor or the secondary processor may further comprise a superscalar processor.
- the apparatus may further comprise a C200 processor.
- FIG. 1 depicts a block diagram of an exemplary fault-tolerant computing system having delayed lock step execution between primary and secondary processors, a store data path delay, and a writeback path delay, configured to prevent system corruption when a fault is detected based on comparing primary and secondary processor states.
- FIG. 2 depicts a block diagram of an exemplary primary processor and secondary processor state comparison design.
- FIG. 3 depicts a block diagram of an exemplary processor pipeline.
- FIG. 4 depicts a block diagram of a portion of a processor pipeline configured with exemplary store data path and writeback path delay modules.
- FIG. 5 depicts a block diagram of an exemplary writeback path delay module design.
- FIG. 6 depicts a block diagram of an exemplary store data path delay module design.
- FIG. 7 depicts an exemplary fault-tolerant computing system having delayed lock step execution between primary and secondary processors, a store data path delay, and a writeback path delay configured to prevent system corruption when a fault is detected based on comparing primary and secondary processor states in accordance with the present disclosure.
- various features may be described as being optional, for example, through the use of the verb “may;” or, through the use of any of the phrases: “in some implementations,” “in some designs,” “in various implementations,” “in various designs,” “in an illustrative example,” or, “for example.”
- the present disclosure does not explicitly recite each and every permutation that may be obtained by choosing from the set of optional features.
- the present disclosure is to be interpreted as explicitly disclosing all such permutations.
- a system described as having three optional features may be implemented in seven different ways, namely with just one of the three possible features, with any two of the three possible features or with all three of the three possible features.
- the respective implementation features even those disclosed solely in combination with other implementation features, may be combined in any configuration excepting those readily apparent to the person skilled in the art as nonsensical.
- the present disclosure teaches a fault-tolerant computing system.
- the fault-tolerant computing system may comprise at least one processor.
- the at least one processor may comprise a pipelined processor.
- the at least one pipelined processor may comprise multiple pipeline stages. Each stage of the multiple pipeline stages may be configured to perform an operation. Each stage of the multiple pipeline stages may be configured with at least one input. Each stage of the multiple pipeline stages may be configured with at least one output. Each stage of the multiple pipeline stages may be configured to perform an operation in one clock period, with the operation result available at the output.
- One or more stage of the multiple pipeline stages may be a buffer stage configured to pass input to output in one clock period.
- the at least one pipelined processor may comprise a plurality of pipelines.
- the at least one pipeline may comprise a fetch stage.
- the at least one pipeline may comprise a decode stage.
- the at least one pipeline may comprise an execute (EX) / address generation (AG) stage.
- the at least one pipeline may comprise a store data stage.
- the store data stage may be a memory access stage.
- the at least one pipeline may comprise a writeback stage.
- the writeback stage may be operably coupled with a writeback cache.
- the at least one processor may be a superscalar processor.
- the superscalar processor may comprise multiple processor cores. Each processor core may be implemented using a superscalar architecture.
- the superscalar processor may be a RISCY processor according to the specification of https://riscv.org/technical/specifications/.
- the superscalar processor may be a C200 processor or successor, as described in https://www.intel.com/content/dam/www/public/us/en/documents/specification-updates/6-and- c200-chipset-specification-update.pdf.
- the at least one processor may comprise a primary processor.
- the at least one processor may comprise a secondary processor.
- the fault-tolerant computing system may comprise a primary processor and a secondary processor.
- the at least one processor may be implemented as at least one processor core.
- the primary processor may be implemented as a primary core.
- the secondary processor may be implemented as a secondary core.
- the fault- tolerant computing system may be implemented as a dual core computing system.
- the at least one processor may be operably coupled with a memory.
- the memory may be an instruction memory.
- the instruction memory may be a program store.
- the memory may be a data memory.
- the memory may comprise an instruction memory and a data memory.
- the at least one processor may be configured to execute processor executable program instructions from the instruction memory.
- the at least one processor may be configured to perform operations on data in the data memory.
- the at least one processor core may be operably coupled with at least one cache.
- the at least one cache may be a writeback cache.
- At least one processor may be configured with local data memory.
- At least one processor may be configured with a data cache.
- At least one processor may be configured with local data memory and a data cache.
- Some fault- tolerant computing designs in accordance with the present disclosure may be implemented using a processor without a cache.
- An implementation in accordance with the present disclosure using a processor without a cache may be configured to apply the disclosed fault detection and fast recovery techniques disclosed herein to a processor having only a data memory and not a cache.
- the memory may comprise processor executable program instructions and data that jointly program and configure the at least one processor to perform operations.
- the operations performed by the at least one processor may comprise resuming execution from a known clean program point.
- the at least one processor may resume execution from the known clean point in response to a fault indication
- the primary processor and the secondary processor may be configured to execute program instructions from the same memory common to the primary processor and the secondary processor.
- the secondary processor may be configured to execute program instructions from the memory in delayed lock step with the primary processor.
- One or more processors may be configured with one or more delay module.
- the one or more delay module may comprise one or more buffer stage.
- the one or more delay module may comprise a series of buffer stages each configured to pass input to output in one clock period.
- One buffer stage may delay input to output for one clock cycle.
- the fault-tolerant computing system may comprise a store data comparator.
- the store data comparator may have a first input connected through a delay module to the primary processor pipeline to receive delayed primary processor pipeline signals, a second input connected through a delay module to the secondary processor pipeline to receive delayed secondary processor pipeline signals, and an output.
- the delay module configured to delay the primary processor pipeline signals input to the store data comparator may be a three-stage delay buffer connected to the primary core execution / address generation stage.
- the delay module configured to delay the secondary processor pipeline signals input to the store data comparator may be a one-stage delay buffer connected to the secondary core execution / address generation stage.
- the primary processor pipeline store data path may be configured with a delay module connecting the primary pipeline execution / address generation stage to the primary pipeline store data / memory access stage.
- the delay module configured in the primary processor pipeline store data path may be a three-stage delay buffer.
- the delay module configured in the primary processor pipeline store data path may comprise multiple buffer stages configured with triple module redundancy.
- the primary processor pipeline store data path may be configured to forward data from the store data path delay stages to the writeback stage or memory if the load data address matches the address of data in a store data path delay stage.
- the secondary processor pipeline store data path may be configured with a delay module connecting the secondary pipeline execution / address generation stage to the secondary pipeline store data / memory access stage.
- the secondary processor pipeline store data path may be configured to forward data from the store data path delay stages to the writeback stage or memory if the load data address matches the address of data in a store data path delay stage.
- the delay module configured in the secondary processor pipeline store data path may be a one-stage delay buffer.
- the store data comparator may be configured to indicate on the output the result of the store data comparator comparing the primary processor pipeline signals and the secondary processor pipeline signals from the respective store data paths. A fault may be indicated if the store data comparator output indicates disagreement between the primary processor pipeline signals and the secondary processor pipeline signals from the respective store data paths.
- the primary processor pipeline signals and the secondary processor pipeline signals compared by the store data comparator may comprise pipeline internal signals or boundary signals.
- the processor pipeline signals compared by the store data comparator may comprise handshake signals and data between data cache and core, and handshake signals between data memory and core.
- the handshake signals and data between data cache and core compared by the store data comparator may comprise request signals, data valid signal, data, data address, and cache hit.
- the handshake signals between data memory and core compared by the store data comparator may comprise request signal, data valid, data and data address.
- the store data path comparator output may be connected to a control gate connected in the primary processor pipeline store data path and a control gate connected in the secondary processor pipeline store data path.
- the control gate in the primary processor pipeline store data path may be configured to govern primary processor pipeline write operation to the primary processor pipeline store data / memory access stage, determined as a function of the store data path comparator output indication.
- the store data path comparator output governing primary processor pipeline write operation may indicate fault or no fault.
- the control gate in the primary processor pipeline store data path may be configured to permit the primary processor pipeline to write data to the primary pipeline store data / memory access stage only when the store data path comparator output indicates no fault is present.
- the control gate in the secondary processor pipeline store data path may be configured to govern secondary processor pipeline write operation to the secondary processor pipeline store data / memory access stage, determined as a function of the store data path comparator output indication.
- the store data path comparator output governing secondary processor pipeline write operation may indicate fault or no fault.
- the control gate in the secondary processor pipeline store data path may be configured to permit the secondary processor pipeline to write data to the secondary pipeline store data / memory access stage only when the store data path comparator output indicates no fault is present.
- the fault-tolerant computing system may comprise a writeback comparator.
- the writeback comparator may have a first input connected through a delay module to the primary processor pipeline to receive delayed primary processor pipeline signals, a second input connected through a delay module to the secondary processor pipeline to receive delayed secondary processor pipeline signals, and an output.
- the delay module configured to delay the primary processor pipeline signals input to the writeback comparator may be a three-stage delay buffer connected to the primary core store data / memory access stage.
- the delay module configured to delay the secondary processor pipeline signals input to the writeback comparator may be a one-stage delay buffer connected to the secondary core store data / memory access stage.
- the primary processor pipeline writeback data path may be configured with a delay module connecting the primary pipeline store data / memory access stage to the primary processor pipeline writeback stage.
- the delay module configured in the primary processor pipeline writeback data path may be a three-stage delay buffer.
- the secondary processor pipeline writeback data path may be configured with a delay module connecting the secondary pipeline store data / memory access stage to the secondary processor pipeline writeback stage.
- the delay module configured in the primary processor pipeline writeback data path may comprise one or more buffer stage configured with triple module redundancy.
- the delay module configured in the secondary processor pipeline writeback data path may be a one-stage delay buffer.
- the writeback comparator may be configured to indicate on the output the result of the writeback comparator comparing the primary processor pipeline signals and the secondary processor pipeline signals from the respective writeback data paths. A fault may be indicated if the writeback comparator output indicates disagreement between the primary processor pipeline signals and the secondary processor pipeline signals from the respective writeback data paths.
- the processor pipeline signals compared by the writeback comparator may comprise pipeline internal signals or boundary signals.
- the processor pipeline signals compared by the writeback comparator may comprise handshake signals and data between register fde, data cache, data memory, and core.
- the handshake signals and data between the register fde, data cache, data memory, and core compared by the writeback comparator may comprise data valid, register fde ids, data, control register id, data for control register and valid for control register.
- the register fde may have one or more write ports.
- the number of data handshake signals and data inputs between the register fde, data cache, data memory, and core compared by the writeback comparator may be expanded per a multiple of the respective number of register fde write ports.
- the data handshake signals and data between the register fde, data cache, data memory, and core compared by the writeback comparator may comprise two data valid signals, two register fde ids, two data inputs, control register id, data for control register and valid for control register.
- a register fde may comprise two write ports, which may be used when the ALU path produces double precision data, or when there is one ALU operation and one Load data operation; however in such case, cache and data memory write is performed one data operation per cycle.
- the writeback comparator output may be connected to a control gate connected in the primary processor pipeline writeback path and a control gate connected in the secondary processor pipeline writeback path.
- the control gate in the primary processor pipeline writeback path may be configured to govern primary processor pipeline writeback operation to the primary processor pipeline cache, determined as a function of the writeback path comparator output indication.
- the writeback path comparator output governing primary processor pipeline writeback operation may indicate fault or no fault.
- the control gate in the primary processor pipeline writeback path may be configured to permit the primary processor pipeline to write back data to the primary pipeline cache only when the writeback path comparator output indicates no fault is present.
- the control gate in the secondary processor pipeline writeback path may be configured to govern secondary processor pipeline writeback operation to the secondary processor pipeline cache, determined as a function of the writeback path comparator output indication.
- the writeback path comparator output governing secondary processor pipeline writeback operation may indicate fault or no fault.
- the control gate in the secondary processor pipeline writeback path may be configured to permit the secondary processor pipeline to write back data to the secondary pipeline cache only when the writeback path comparator output indicates no fault is present.
- FIG. 1 depicts a block diagram of an exemplary fault-tolerant computing system having delayed lock step execution between primary and secondary processors, a store data path delay, and a writeback path delay, configured to prevent system corruption when a fault is detected based on comparing primary and secondary processor states.
- the system 100 includes the primary core pipeline 105 and the secondary core pipeline 110.
- the primary core pipeline 105 includes, operably connected in sequence, the primary core fetch stage 115A, the primary core decode stage 120A, the primary core execution (EX) / address generation (AG) stage 125 A, the primary core load/store stage 130A, and the primary core writeback stage 135A.
- the secondary core pipeline 110 includes, operably connected in sequence, the secondary core fetch stage 115B, the secondary core decode stage 120B, the secondary core execution (EX) / address generation (AG) stage 125B, the secondary core load/store stage DOB, and the secondary core writeback stage 135B.
- the primary core pipeline 105 and the secondary core pipeline 110 execute from a common program store in delayed lock step.
- the same data will be provided to the secondary core pipeline 110 after two cycle delays.
- the system 100 may be configured that the primary core pipeline 105 and the secondary core pipeline 110 have separate caches that remain synchronized subject to the lock step delay between the primary core pipeline 105 and the secondary core pipeline 110.
- the system 100 may be configured that all input/output (I/O) and interrupt signals pass through a single point accessed only by the primary core pipeline 105.
- I/O input/output
- the secondary core pipeline 110 will experience the same I/O, exception, or interrupt activity after the delay between the processor pipelines.
- the length of the delay between the processor pipelines is a design choice and may be any number of cycles.
- the store data comparator 140 receives primary core pipeline 105 signals delayed by the primary core store data comparison delay module 145A, and secondary core pipeline 110 signals delayed by the secondary core store data comparison delay module 145B.
- the store data comparator 140 compares the states of the primary core pipeline 105 and the secondary core pipeline 110 by comparing the delayed primary core pipeline 105 signals and the delayed secondary core pipeline 110 signals.
- Store data operations in the primary core pipeline 105 and the secondary core pipeline 110 are controlled by the result of comparing the delayed primary core pipeline 105 signals and the delayed secondary core pipeline 110 signals.
- the primary core pipeline 105 store data path is delayed by the store data path delay module 150A.
- the secondary core pipeline 110 store data path is delayed by the secondary core store data path delay module 150B.
- the secondary core pipeline 110 writeback path is delayed by the secondary core writeback path delay module 165B.
- store data or writeback operation may be blocked while invalid data is in the store data path or writeback delay modules, preventing system state corruption and preserving the integrity of system data in a register file, cache, or memory.
- the system 100 may be able to restart more quickly from a more recent known clean point.
- the primary core fetch stage 115A and the secondary core fetch stage 115B read instructions from an instruction memory common to the primary core pipeline 105 and the secondary core pipeline 110.
- the primary core decode stage 120A and the secondary core decode stage 120B perform instruction decoding comprising parsing operand register sources, determining operation type, and identifying the operation destination.
- the primary core execution (EX) / address generation (AG) stage 125 A and the secondary core execution (EX) / address generation (AG) stage 125B perform the operations based on operands from the respective decode stages and the operand type.
- FIG. 2 depicts a block diagram of an exemplary primary processor and secondary processor state comparison design.
- the primary core pipeline 105 and the secondary core pipeline 110 are configured to execute a few cycles apart from a common program store.
- the delay between the primary core pipeline 105 and the secondary core pipeline 1 10 may be governed by the delays configured in the respective store data path and writeback paths of the primary core pipeline 105 and the secondary core pipeline 110.
- the execution delay between the processor pipelines may be set at system initialization by techniques known in the art of processor system design, such as holding one processor pipeline in reset for a predetermined number of cycles.
- the primary core store data comparison delay module 145A includes, operably connected in sequence, the primary core store data comparison delay module stage one 145A1, the primary core store data comparison delay module stage two 145A2, and the primary core store data comparison delay module stage three 145A3.
- the primary core store data comparison delay module 145A receives the primary core store data comparison signals 205A.
- the secondary core store data comparison delay module 145B receives the secondary core store data comparison signals 205B.
- the primary core store data comparison signals 205 A and the secondary core store data comparison signals 205B may comprise pipeline internal key signals or key boundary signals, such as, for example, handshake signals and data between data cache and core, and handshake signals between data memory and core.
- the handshake signals and data between data cache and core may comprise request signals, data valid signal, data, data address, and cache hit result.
- the handshake signals between data memory and core compared by the store data comparator may comprise, for example, a request signal, data valid, data, or data address
- the primary core store data comparison delay module 145A outputs the delayed primary core store data comparison signals 210A delayed by three cycles from the input.
- the secondary core store data comparison delay module 145B outputs the delayed secondary core store data comparison signals 210B delayed by one cycle from the input.
- the store data comparator 140 compares the delayed primary core store data comparison signals 210A and the delayed secondary core store data comparison signals 210B.
- the store data comparator 140 is configured to indicate on the output the resulting store data comparison decision 21
- the primary core writeback comparison delay module 160A includes, operably connected in sequence, the primary core writeback comparison delay module stage one 160A1, the primary core writeback comparison delay module stage two 160A2, and the primary core writeback comparison delay module stage three 160A3.
- the primary core writeback comparison delay module 160A receives the primary core writeback comparison signals 220A.
- the secondary core writeback comparison delay module 160B receives the secondary core writeback comparison signals 220B.
- the primary core writeback comparison signals 220A and the secondary core writeback comparison signals 220B may comprise pipeline internal key signals or key boundary signals, such as, for example, handshake signals and data between a register fde, data cache, data memory, and core.
- the handshake signals and data between the register file, data cache, data memory, and core may comprise data valid, register file ids, data, control register id, data for control register and valid for control register.
- the primary core writeback comparison delay module 160A outputs the delayed primary core writeback comparison signals 225A delayed by three cycles from the input.
- the secondary core writeback comparison delay module 160B outputs the delayed secondary core writeback comparison signals 225B delayed by one cycle from the input.
- the writeback comparator 155 compares the delayed primary core writeback comparison signals 225A and the delayed secondary core writeback comparison signals 225B.
- the writeback comparator 155 is configured to indicate on the output the resulting writeback comparison decision 230.
- the primary core decode stage 120A includes the primary core decode 120A stage one 315A and the primary core decode 120A stage two 320A.
- the primary core decode 120A stage one 315A decodes instructions from the instruction fetch buffer and determines which execution pipeline can be used.
- the primary core decode 120A stage two 320A obtains the necessary operands for the issued instructions.
- an instruction execution requires a pipeline resource that is unavailable, or an operand that is not available from the primary core register file 360A or the pipeline, then the pipeline needs to wait to execute the instruction until the pipeline resource is available or the operand condition can be fulfilled, resulting in a pipeline stall.
- the primary core execution (EX) / address generation (AG) stage 125 A includes the primary core execution / address generation stage 125 A execution stage one 325A and the primary core execution / address generation stage 125A execution stage two 330A configured in the Arithmetic Logic Unit (ALU) pipe to execute integer arithmetic operations such as multiplication, addition, and subtraction as well as logical and shift operations.
- ALU Arithmetic Logic Unit
- the primary core execution (EX) / address generation (AG) stage 125 A includes the primary core execution / address generation stage 125 A floating point execution stage one 335A, the primary core execution / address generation stage 125A floating point execution stage two 340A, and the primary core execution / address generation stage 125A floating point execution stage three 345A configured to perform floating point operations in the floating point (FP) pipe.
- floating point operations may require three cycles to be executed by the FP pipe.
- the primary core execution (EX) / address generation (AG) stage 125 A includes the primary core execution / address generation stage 125A address generation 35OA stage and the primary core execution / address generation stage 125 A data memory table look ahead (TA) 355 A stage configured in the load/store pipe to access a data memory using the primary core load/store stage 130A.
- the data memory may be a data memory common to the primary core pipeline 105 and a secondary core pipeline 110 (depicted at least in FIG. 1).
- the primary core execution / address generation stage 125A address generation 350A stage performs address calculations and the primary core execution / address generation stage 125A data memory table look ahead (TA) 355A performs address translation to a physical address from a virtual address calculated by the primary core execution / address generation stage 125A address generation 35OA stage.
- the virtual address is determined as a function of a Memory Management Unit (MMU) configured in the processor.
- MMU Memory Management Unit
- the virtual address is converted to a physical address by the primary core execution / address generation stage 125 A data memory table look ahead (TA) 355 A stage.
- the physical address target may be in data cache, or non-cacheable memory.
- the operation is a load operation (for example, a read operation from memory)
- data is obtained from the data memory using the primary core load/store stage 130A, and the data may be saved into the primary core register file 360A using the primary core writeback stage 135A.
- the operation is a store instruction and the data is in memory
- the data is stored to the data memory using the primary core load/store stage 130A.
- the operation is a store instruction for a cacheable area, then the data is stored into the data cache using the primary core writeback stage 135 A.
- the primary core pipeline 105 depicted by FIG. 3 illustrates one pipeline of a superscalar processor comprising dual processor pipeline cores.
- Each of the elements 305A, 310A, 315A, 320A, 325A, 330A, 335A, 340A, 345A, 350A, 355A, and 360A in the primary core pipeline 105 depicted by FIG. 3 have corresponding secondary core pipeline 110 elements 305B, 310B, 315B, 320B, 325B, 330B, 335B, 340B, 345B, 350B, 355B, and 360B depicted at least by FIG. 7.
- the exemplary superscalar processor may be a dual in-order issue and in-order completion superscalar processor.
- the superscalar processor may be a RISCV-based multithread processor, such as, for example, a C200 processor.
- FIG. 4 depicts a block diagram of a portion of a processor pipeline configured with exemplary store data path and writeback path delay modules.
- the primary core pipeline 105 store data and writeback detail 400 depicts a portion of the primary core pipeline 105 depicted by FIG. 1.
- the primary core store data path delay module 150A includes, operably connected in sequence, the primary core store data path delay module stage one 150A1, the primary core store data path delay module stage two 150A2, and the primary core store data path delay module stage three 150A3.
- the primary core store data path delay module 150A receives the primary core store data comparison signals 205A and outputs the primary core store data comparison signals 205A delayed by three cycles to the primary core store data control gate 405A.
- the primary core store data control gate 405 A receives the store data comparison decision 215 from a store data comparator 140 (depicted at least in FIG. 2).
- the primary core store data control gate 405A is configured to output the delayed primary processor pipeline store data path signals to the primary core load/store stage 130A only if the store data comparison decision 215 indicates agreement between the primary processor pipeline state and the secondary processor pipeline state.
- the primary core writeback path delay module 165 A includes, operably connected in sequence, the primary core writeback path delay module stage one 165 Al, the primary core writeback path delay module stage two 165A2, and the primary core writeback path delay module stage three 165 A3.
- the primary core writeback path delay module 165A receives the primary core writeback comparison signals 220A and outputs the primary core writeback comparison signals 220A delayed by three cycles to the primary core writeback control gate 410A.
- the primary core writeback control gate 410A receives the writeback comparison decision 230 from a writeback comparator 155 (depicted at least in FIG. 2).
- the primary core writeback control gate 410A is configured to output the delayed primary core writeback comparison signals 220A to the primary core writeback stage 135A only if the writeback comparison decision 230 indicates agreement between the primary processor pipeline state and the secondary processor pipeline state.
- the primary core pipeline 105 is configured to forward load data through the primary core load data read path 415 A through the primary core load data majority multiplexer 420A to the primary core writeback stage 135A if a cache data address or memory data address matches the address of data in a primary core store data path delay module 150A delay stage.
- the primary core pipeline 105 is configured to forward store data through the primary core load forward 430A path to memory or to the primary core writeback stage 135A if a load data address matches the address of data in a primary core store data path delay module 150A delay stage.
- the primary core store data path delay module 150A may be configured with triple module redundancy in multiple buffer stages designed to pass only majority data from each triple redundant buffer stage.
- the primary core writeback path delay module 165 A may be configured with triple module redundancy in multiple buffer stages designed to pass only majority data from each triple redundant buffer stage.
- additional primary core dummy pipeline stage 425A is configured as a three-stage delay in the writeback path, to delay data update to the external store or writeback cache until a store data comparator and writeback comparator confirm the primary core and secondary core states are in agreement.
- update is executed. If the store data comparator and writeback comparator do not confirm the primary core and secondary core states are in agreement, then a fault was detected. If a fault was detected, then the update will be cancelled with all the instructions in the pipeline and an exception will be triggered to the processor. The exception will be a precise exception that will require a period of time that can be precisely and accurately predicted.
- the instructions not completed may be cancelled and the Program Counter (PC) of the last-executed instruction may be saved at the exception handling routing. Since fraudulent data was not updated in the processor, the system restart will be very immediate after the trap software logged the malfunctioned point and the PC. In some implementations, the malfunctioned point and the PC may be logged to report the failure, and the failure log may be used to determine if the failure is a permanent failure, based on identifying if the same failure point with the same address in the PC causes the trap again.
- PC Program Counter
- the portion of the primary core pipeline 105 depicted by FIG. 4 illustrates one portion of a pipeline of a superscalar processor comprising dual processor pipeline cores.
- Each of the elements 405 A, 410A, 415A, 420A, 425 A, and 430A in the portion of the primary core pipeline 105 depicted by FIG. 4 have corresponding secondary core pipeline 110 elements 405B, 410B, 415B, 420B, 425B, and 430B depicted at least by FIG. 7.
- FIG. 5 depicts a block diagram of an exemplary writeback path delay module design.
- the primary core writeback path delay module 165 A detail 500 depicts an exemplary primary core writeback path delay module 165 A in a triple module redundancy implementation designed to pass only majority data through each stage.
- the depicted primary core writeback path delay module 165 A includes, operably connected in sequence, the primary core writeback path delay module stage one 165 Al, the primary core writeback path delay module stage two 165A2, and the primary core writeback path delay module stage three 165 A3.
- the depicted primary core writeback path delay module stage one 165 Al includes the delay module stage one triple mode redundant module one 505A, the delay module stage one triple mode redundant module two 505B, and the delay module stage one triple mode redundant module three 505C, crossbar connected into the delay module stage one triple mode redundant comparator one 510A, the delay module stage one triple mode redundant comparator two 51 OB, and the delay module stage one triple mode redundant comparator three 5 IOC.
- the depicted primary core writeback path delay module stage two 165A2 includes the delay module stage two triple mode redundant module one 5O5D, the delay module stage two triple mode redundant module two 505E, and the delay module stage two triple mode redundant module three 505F, crossbar connected into the delay module stage two triple mode redundant comparator one 510D, the delay module stage two triple mode redundant comparator two 510E, and the delay module stage two triple mode redundant comparator three 51 OF.
- the depicted primary core writeback path delay module stage three 165 A3 includes the delay module stage three triple mode redundant module one 505G, the delay module stage three triple mode redundant module two 505H, and the delay module stage three triple mode redundant module three 5051, crossbar connected into the delay module stage three triple mode redundant comparator 510G.
- data is copied into 3 buffers in each stage and the three values are compared into the next stage. Only the majority data determined by the comparators will be passed to the next stage, to improve data safety by preventing invalid data write to memory or cache if a fault occurs in a store data path delay module or writeback path delay module.
- FIG. 6 depicts a block diagram of an exemplary store data path delay module design.
- the primary core store data path delay module 150A detail 600 depicts an exemplary primary core store data path delay module 150A in a triple module redundancy implementation designed to pass only majority data through each stage and forward data from the store data path delay stages to the writeback stage or memory if a load data address matches the address of data in a store data path delay stage.
- the depicted primary core store data path delay module 150A includes, operably connected in sequence, the primary core store data path delay module stage one 150A1 , the primary core store data path delay module stage two 150A2, and the primary core store data path delay module stage three 15OA3.
- the primary core store data path delay module stage one 150A1, the primary core store data path delay module stage two 150A2, and the primary core store data path delay module stage three 150A3 include the triple module redundancy features disclosed with reference to FIG. 5, and also include data forwarding features.
- the primary core store data path delay module 150A includes the primary core store data path delay module triple mode redundant majority multiplexer 605 configured to pass majority data matched in the delay stages by the primary core store data path delay module triple mode redundant stage one comparator 610A, the primary core store data path delay module triple mode redundant stage two comparator 61 OB, and the primary core store data path delay module triple mode redundant stage three comparator 610C.
- data in memory or data cache may be old data and the data in the primary core store data path delay module 150A buffer stages may be newer data.
- the load data address is matched to the store data in these stages, then the data may be forwarded to the writeback stage, permitting faster recovery from a more recent clean point by preserving the integrity of data in the delay stages.
- FIG. 7 depicts an exemplary fault-tolerant computing system having delayed lock step execution between primary and secondary processors, a store data path delay, and a writeback path delay configured to prevent system corruption when a fault is detected based on comparing primary and secondary processor states in accordance with the present disclosure.
- the depicted system 100 includes the primary core pipeline 105 and the secondary core pipeline 110 incorporating the features presented with reference to FIGs. 1-6.
- any may be understood as designating any number of the respective elements, that is, as designating one, at least one, at least two, each or all of the respective elements.
- any may be understood as designating any collection(s) of the respective elements, that is, as designating one or more collections of the respective elements, a collection comprising one, at least one, at least two, each or all of the respective elements.
- the respective collections need not comprise the same number of elements.
- components A, B and C can consist of (i.e., contain only) components A, B and C, or can contain not only components A, B, and C but also contain one or more other components.
- the defined steps can be carried out in any order or simultaneously (except where the context excludes that possibility), and the method can include one or more other steps which are carried out before any of the defined steps, between two of the defined steps, or after all the defined steps (except where the context excludes that possibility).
- the term “at least” followed by a number is used herein to denote the start of a range beginning with that number (which may be a range having an upper limit or no upper limit, depending on the variable being defined). For example, “at least 1” means 1 or more than 1.
- the term “at most” followed by a number (which may be a range having 1 or 0 as its lower limit, or a range having no lower limit, depending upon the variable being defined). For example, “at most 4” means 4 or less than 4, and “at most 40%” means 40% or less than 40%.
- a range is given as “(a first number) to (a second number)” or “(a first number) - (a second number),” this means a range whose limit is the second number.
- 25 to 100 mm means a range whose lower limit is 25 mm and upper limit is 100 mm.
- block diagrams or flowchart illustrations may depict methods, apparatuses (i.e., systems), and computer program products.
- Each element of the block diagrams or flowchart illustrations, as well as each respective combination of elements in the block diagrams and flowchart illustrations, illustrates a function of the methods, apparatuses, and computer program products.
- Any and all such functions (“depicted functions”) can be implemented by computer program instructions; by special-purpose, hardware-based computer systems; by combinations of special purpose hardware and computer instructions; by combinations of general purpose hardware and computer instructions; and so on - any and all of which may be generally referred to herein as a “circuit,” “module,” or “system.”
- each element in flowchart illustrations may depict a step, or group of steps, of a computer-implemented method. Further, each step may contain one or more sub-steps. For the purpose of illustration, these steps (as well as any and all other steps identified and described above) are presented in order. It will be understood that an implementation may include an alternate order of the steps adapted to a particular application of a technique disclosed herein. All such variations and modifications are intended to fall within the scope of this disclosure. The depiction and description of steps in any particular order is not intended to exclude implementations having the steps in a different order, unless required by a particular application, explicitly stated, or otherwise clear from the context.
- a programmable apparatus may include one or more microprocessors, microcontrollers, embedded microcontrollers, programmable digital signal processors, programmable devices, programmable gate arrays, programmable array logic, memory devices, application specific integrated circuits, or the like, which can be suitably employed or configured to process computer program instructions, execute computer logic, store computer data, and so on.
- a computer can include any and all suitable combinations of at least one general purpose computer, special-purpose computer, programmable data processing apparatus, processor, processor architecture, and so on.
- a computer can include a computer-readable storage medium and that this medium may be internal or external, removable, and replaceable, or fixed. It will also be understood that a computer can include a Basic Input/Output System (BIOS), firmware, an operating system, a database, or the like that can include, interface with, or support the software and hardware described herein.
- BIOS Basic Input/Output System
- Implementations of the system as described herein are not limited to applications involving conventional computer programs or programmable apparatuses that run them. It is contemplated, for example, that implementations of the disclosure as claimed herein could include an optical computer, quantum computer, analog computer, or the like.
- a primary core execution / address generation stage 125 A data memory table look ahead (TA)
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Mathematical Physics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Multi Processors (AREA)
Abstract
Description
Claims
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/US2023/016561 WO2024205574A1 (en) | 2023-03-28 | 2023-03-28 | Fast recovery for dual core lock step |
| KR1020257035324A KR20250163384A (en) | 2023-03-28 | 2023-03-28 | Fast recovery of dual-core lockstep |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/US2023/016561 WO2024205574A1 (en) | 2023-03-28 | 2023-03-28 | Fast recovery for dual core lock step |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2024205574A1 true WO2024205574A1 (en) | 2024-10-03 |
Family
ID=92906543
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/US2023/016561 Pending WO2024205574A1 (en) | 2023-03-28 | 2023-03-28 | Fast recovery for dual core lock step |
Country Status (2)
| Country | Link |
|---|---|
| KR (1) | KR20250163384A (en) |
| WO (1) | WO2024205574A1 (en) |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20040239397A1 (en) * | 2003-03-20 | 2004-12-02 | Arm Limited | Data retention latch provision within integrated circuits |
| US20170102950A1 (en) * | 2003-05-23 | 2017-04-13 | Ip Reservoir, Llc | Intelligent Data Storage and Processing Using FPGA Devices |
| US20180365014A1 (en) * | 2013-08-19 | 2018-12-20 | Shanghai Xinhao Microelectronics Co. Ltd. | Processor system and method based on instruction read buffer |
-
2023
- 2023-03-28 WO PCT/US2023/016561 patent/WO2024205574A1/en active Pending
- 2023-03-28 KR KR1020257035324A patent/KR20250163384A/en active Pending
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20040239397A1 (en) * | 2003-03-20 | 2004-12-02 | Arm Limited | Data retention latch provision within integrated circuits |
| US20170102950A1 (en) * | 2003-05-23 | 2017-04-13 | Ip Reservoir, Llc | Intelligent Data Storage and Processing Using FPGA Devices |
| US20180365014A1 (en) * | 2013-08-19 | 2018-12-20 | Shanghai Xinhao Microelectronics Co. Ltd. | Processor system and method based on instruction read buffer |
Also Published As
| Publication number | Publication date |
|---|---|
| KR20250163384A (en) | 2025-11-20 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN111164578B (en) | Error recovery in in-core lockstep mode | |
| US6772368B2 (en) | Multiprocessor with pair-wise high reliability mode, and method therefore | |
| Ray et al. | Dual use of superscalar datapath for transient-fault detection and recovery | |
| US10289469B2 (en) | Reliability enhancement utilizing speculative execution systems and methods | |
| US7478276B2 (en) | Method for checkpointing instruction groups with out-of-order floating point instructions in a multi-threaded processor | |
| US6598122B2 (en) | Active load address buffer | |
| US20050138478A1 (en) | Error detection method and system for processors that employ alternating threads | |
| CN101933002A (en) | Processors that include hybrid redundancy for logical error protection | |
| JP2001297010A (en) | Computer and its error recovery method | |
| US8301992B2 (en) | System and apparatus for error-correcting register files | |
| US9740557B2 (en) | Pipelined ECC-protected memory access | |
| US20050108509A1 (en) | Error detection method and system for processors that employs lockstepped concurrent threads | |
| US10817369B2 (en) | Apparatus and method for increasing resilience to faults | |
| CN117667477A (en) | A design method and system for a fine-grained lock-step fault-tolerant superscalar out-of-order processor | |
| US9594648B2 (en) | Controlling non-redundant execution in a redundant multithreading (RMT) processor | |
| CN105260256B (en) | A kind of fault detect of duplication redundancy streamline and backing method | |
| US20080177990A1 (en) | Synthesized assertions in a self-correcting processor and applications thereof | |
| US10289332B2 (en) | Apparatus and method for increasing resilience to faults | |
| US10185635B2 (en) | Targeted recovery process | |
| CN115080315B (en) | Fault detection and processing method and device, processor and electronic equipment | |
| US12242849B1 (en) | Synchronization of asymmetric processors executing in quasi-dual processor lock step computing systems | |
| US11928475B2 (en) | Fast recovery for dual core lock step | |
| WO2024205574A1 (en) | Fast recovery for dual core lock step | |
| CN107168827B (en) | Dual-redundancy pipeline and fault-tolerant method based on check point technology | |
| US10346171B2 (en) | End-to end transmission of redundant bits for physical storage location identifiers between first and second register rename storage structures |
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: 23931121 Country of ref document: EP Kind code of ref document: A1 |
|
| WWE | Wipo information: entry into national phase |
Ref document number: KR1020257035324 Country of ref document: KR |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 2023931121 Country of ref document: EP |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| ENP | Entry into the national phase |
Ref document number: 2023931121 Country of ref document: EP Effective date: 20251028 |