EP3161691A1 - Procédé de fabrication automatisée d'un circuit électronique adapté pour détecter ou masquer des fautes par redondance temporelle, programme d'ordinateur et circuit électronique associés - Google Patents

Procédé de fabrication automatisée d'un circuit électronique adapté pour détecter ou masquer des fautes par redondance temporelle, programme d'ordinateur et circuit électronique associés

Info

Publication number
EP3161691A1
EP3161691A1 EP15753710.1A EP15753710A EP3161691A1 EP 3161691 A1 EP3161691 A1 EP 3161691A1 EP 15753710 A EP15753710 A EP 15753710A EP 3161691 A1 EP3161691 A1 EP 3161691A1
Authority
EP
European Patent Office
Prior art keywords
memory
block
circuit
data
output
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.)
Withdrawn
Application number
EP15753710.1A
Other languages
German (de)
English (en)
Inventor
Pascal Fradet
Dmitry BURLYAEV
Alain Girault
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Institut National de Recherche en Informatique et en Automatique INRIA
Universite Grenoble Alpes
Original Assignee
Universite Joseph Fourier Grenoble 1
Institut National de Recherche en Informatique et en Automatique INRIA
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Universite Joseph Fourier Grenoble 1, Institut National de Recherche en Informatique et en Automatique INRIA filed Critical Universite Joseph Fourier Grenoble 1
Publication of EP3161691A1 publication Critical patent/EP3161691A1/fr
Withdrawn legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K3/00Circuits for generating electric pulses; Monostable, bistable or multistable circuits
    • H03K3/02Generators characterised by the type of circuit or by the means used for producing pulses
    • H03K3/027Generators characterised by the type of circuit or by the means used for producing pulses by the use of logic circuits, with internal or external positive feedback
    • H03K3/037Bistable circuits
    • H03K3/0375Bistable circuits provided with means for increasing reliability; for protection; for ensuring a predetermined initial state when the supply voltage has been applied; for storing the actual state when the supply voltage fails
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/327Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/18Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
    • G06F11/183Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits by voting, the voting not being performed by the redundant components

Definitions

  • the present invention relates to the field of electronic digital circuits adapted to detect or mask faults.
  • a first technique is the triple modular redundancy or TMR (in English “Triple Modular Redundancy"), in which the hardware elements of an electronic circuit are tripled, the same input data are provided in parallel with each of the triplet components, and voting modules associated with these triplet components select as the result provided by the component triplet the common result provided in parallel by at least two of the components.
  • TMR triple modular redundancy
  • voting modules associated with these triplet components select as the result provided by the component triplet the common result provided in parallel by at least two of the components.
  • a second technique is time redundancy, typically triple time redundancy (TTR), in which the same input data is provided three times in succession to the same hardware component that delivers three results, and voting modules associated with the component select as a result. provided by the component the result provided at least twice by the component among the three results.
  • TTR triple time redundancy
  • the present invention more particularly relates to this second technique, and in particular to a method of automated synthesis of an electronic circuit adapted to detect or hide faults by time redundancy, said method comprising a computer implemented step, according to which to implement a memory cell function of the electronic circuit is inserted in the electronic circuit a memory block comprising a delay chain comprising N series memory cells, N ⁇ 2, and a selection block (voter / detector) which, in a mode of operation corresponding to a time redundancy of order n1, involving n1 reruns, n1e [1, N], compares the current contents of the n1 memory cells storing n1 redundant input data successively supplied to the memory block, and if n1> 2, selects as output data of the memory cell function, the majority content of the n1 memory cells and optionally additionally delivers a fault signal if the contents of two memory cells differ;
  • n1 1, delivers as output data of the memory cell function, the contents of the memory cell determined.
  • US 7,200,822 B1 is an example of circuits with triple time redundancy and more. The technique described therein, however, decreases the processing rate of the circuit.
  • the invention proposes a method of automated synthesis of an electronic circuit adapted to detect or mask faults by time redundancy of the aforementioned type, characterized in that a control block of the above-mentioned type is furthermore inserted.
  • circuit adapted to transmit control signals of the memory blocks, and in that the inserted memory block is adapted to switch, according to a toggle command signal received from the control block, between said operating mode corresponding to a temporal redundancy of order n1 and another mode of operation corresponding to a time redundancy of order n2 e [1, N] according to which the circuit performs n2 reruns, n2 ⁇ n1, in which the selection block compares the current content of n2 determined cells among the N memory cells storing n2 redundant input data successively supplied to the memory block, and:
  • n2> 2 selects as output data of the memory cell function, the majority content of said n2 memory cells
  • n2 2
  • n2 2
  • n2 1
  • the invention makes it possible to dynamically adapt the compromise between the corrections / fault detections and the output rate of the circuit.
  • the dynamic adaptation of the level of temporal redundancy implemented according to the invention makes it possible in particular to adapt the operation of the circuit manufactured according to the invention to the fluctuations of the radiation in the environment of the circuit.
  • Such dynamic temporal redundancy makes it possible in particular to obtain circuits masking an error using means equivalent to a double temporal redundancy instead of triple.
  • the principle is to take advantage of the K clock cycles following the occurrence of a fault during which, hypothetically, no new fault will occur.
  • the circuit switches to non-redundant mode to make a third execution of the erroneous calculation, without the flow observed at the output of the circuit changing ( see “Combining Dual Dynamic Time Redundancy and Rewind Recording” below).
  • the automated synthesis method of a temporally redundant fault tolerant electronic circuit further comprises one or more of the following features:
  • the inserted memory block furthermore comprises, when N> 2, an additional delay block disposed at the output of the delay chain and comprising at least
  • the operating mode switching command according to a time redundancy of order 2 to the operating mode according to a time redundancy of order 1, and vice versa is triggered following the reception by the control block of a signal of fault issued by one of the memory blocks;
  • the second cell of the delay chain stores, at each clock cycle of the circuit, the content stored in the previous clock cycle, in the first cell of the delay chain
  • the inserted memory block further comprises a chain for receiving, on receiving a control signal from the control block, storing the input signal value of the memory block also supplied in parallel with the first cell of the delay chain, and in the according to a redundancy of order 2, the recording control signal is output every two cycles so that when redundant data stored in the two memory cells of the delay chain are compared by the selection block, the last cell of the recording chain contains in memory the data which were stored two cycles previously in each of the two memory cells of the delay chain ;
  • control block supplies the memory block with a command backward response following which the memory block delivers as output data of the memory cell function, the current contents of the last cell of the recording string;
  • the input block in the mode of operation according to a second order temporal redundancy, storing the current external data item received and also supplying the circuit with said current external data received and, the input block, with the mode of reception. operation according to a first order time redundancy, providing the circuit with successive non-redundant external data previously stored by the input block to allow a third execution of these data by the circuit;
  • an output block of the circuit receiving the data output by the circuit, said output block, in the operating mode according to a time redundancy of order 2, storing the data delivered by the circuit and applying a given delay before delivering them, and the output block, in the mode of operation according to a temporal redundancy of order 1, delivering without delay the data delivered by the circuit, duplicating data delivered by the circuit and delivering the duplicate data,
  • the fault recovery by the circuit is thus masked vis-à-vis the upstream circuit and downstream of the circuit by said input and output blocks.
  • the present invention proposes a computer program to be installed in an automated manufacturing tool of an electronic circuit adapted to detect or hide faults by time redundancy, said program comprising instructions for implementing the steps of FIG. a method according to the first aspect of the invention during execution of the program by processing means of the automated electronic circuit manufacturing tool.
  • the present invention proposes an electronic circuit adapted to detect or mask faults by time redundancy comprising a set of memory block (s), each memory block of said set comprising a delay chain comprising N memory cells in memory. series, N ⁇ 2, and a selection block which, in an operating mode corresponding to a time redundancy of order n1, n1 e [1, N], compares the current contents of n1 of said N memory cells storing n1 data d redundant inputs successively supplied to the memory block, and if n1> 2, selects as output data from the memory cell function, the majority content of the n1 memory cells and optionally additionally delivers a fault signal if the contents of two memory cells differ;
  • n1 1, delivers as output data of the memory cell function, the contents of the memory cell determined;
  • said electronic circuit being characterized in that it comprises a control block of the circuit adapted to transmit control signals of said memory blocks, and in that each of said memory blocks is adapted to, according to a failover control signal received from the control block, switch between said operating mode corresponding to a time redundancy of order n1 and another operating mode corresponding to a time redundancy of order n2 e [1, N], n2 ⁇ n1, in which the selection block compares the current contents of n2 determined cells, among said N memory cells, storing n2 redundant input data successively supplied to the memory block, and:
  • n2> 2 selects as output data of the memory cell function, the majority content of said n2 memory cells
  • n2 2
  • n2 2
  • n2 1, delivers as output data of the memory cell function, the contents of the memory cell determined.
  • FIG. 7 is a representation of a digital circuit before transformation according to the invention.
  • Figure 2 is a view of an automated synthesis tool of fault-tolerant electronic circuits in one embodiment of the invention
  • Figure 3 is a view of a digital circuit after transformation in an embodiment of the invention
  • Figure 4 is a view of a memory block of Figure 3 in one embodiment of the invention
  • FIG. 5 is a view of the memory block of FIG. 3 in one embodiment of the invention corresponding to a dual dynamic time redundancy
  • FIG. 6 is a view of the memory block of FIG. 3 in one embodiment of the invention corresponding to a triple dynamic time redundancy
  • Figure 7 shows an example of voter used in Figure 6
  • Figure 8 is a view of a memory block of Figure 3 having a recording / reverse mechanism in one embodiment of the invention
  • Fig. 9 is a view of a memory block of Fig. 3 in an embodiment of the invention combining dual dynamic time redundancy and back-up / recording mechanism features;
  • FIG. 10 is a view of a digital circuit in one embodiment of the invention corresponding to a dual time redundancy with backtracking
  • Fig. 11 shows an input buffer in one embodiment of the dual dynamic redundancy with backtracking invention
  • Fig. 12 shows an output buffer in one embodiment of the dual dynamic redundancy with backtracking
  • Fig. 13 is a view of a finite state machine of a control block in an embodiment of the invention of double reverse dynamic redundancy
  • Figure 14 shows steps of a method in one embodiment of the invention
  • Figure 15 depicts steps of an integrated circuit design flow in one embodiment of the invention.
  • FIG. 7 is a general representation of a digital circuit 10, comprising a combinational part 77 and a sequential part 72, driven by a clk clock signal.
  • the combinatorial part 77 comprising combinatorial gates AND, OR, NOT, etc., performs a Boolean function without memory ⁇ .
  • the sequential part 72 comprises memory cells or Flip-Flops (FF) which each memorize a bit, or Flip-Flops (FF) intended to memorize the data delivered by the combinatorial part 77.
  • a memory cell 73 is represented in FIG. It receives on an input wire D a signal IF and delivers on an output wire Q an output signal SO (note that here a flip-flop of type D is described, but the invention is of course applicable to any type of memory cell).
  • the digital circuit 10 takes as input a primary input bit vector PI and outputs a primary output bit vector PO at each clock cycle.
  • the input bit vector, respectively the output bit vector, of the combinatorial part 77 is denoted by Cl or CO respectively.
  • v the value of the bit vector v at my clock cycle in the circuit.
  • v any component of the bit vector v.
  • the fault models considered are of the form "at most m transient singular effects (SET) every K clock cycles", denoted SET (m, K). This includes the direct SEUs of a memory cell and the SEUs resulting from a SET in the combinatorial part. According to the SET (1, K) fault model, there is no fault occurrence in the clock cycles following the last fault occurrence.
  • a SET in the combinatorial portion 77 of a circuit may lead to non-deterministic corruption of any connected memory cell (by a purely combinatorial path) at the location where the SET occurred.
  • a SET in the combinatorial portion 77 to a cycle / ' may cause output corruption (s) in POi and input (s) in Sh, which then causes the corruption of memory cells in the sequential portion 72. last corruption is visible in the clock cycle
  • a SET can happen on any wire of the circuit (connections between logic gates, memory cells, inputs, outputs).
  • FIG. 2 represents a tool 1 for automated synthesis of fault-tolerant electronic circuits in one embodiment of the invention.
  • This tool 1 comprises a microprocessor 2 and a memory 3.
  • a program of software instructions P is stored which, when it is executed by the microprocessor 2, is adapted to implement the steps indicated below. automatic transformation of the design of the circuit.
  • Such a tool 1 is adapted for, from a description of a digital circuit of the type of logic gate network (in English "netlist”) comprising AND, OR, NOT and memory cells or Flip-Flops, perform a stage of automatic transformation of the design of the circuit to obtain a transformed circuit, then to manufacture a circuit FGPA or an ASIC circuit from the transformed circuit in netlist form.
  • logic gate network in English "netlist”
  • netlist the type of logic gate network
  • Such a tool 1 is adapted for, from a description of a digital circuit of the type of logic gate network (in English "netlist”) comprising AND, OR, NOT and memory cells or Flip-Flops, perform a stage of automatic transformation of the design of the circuit to obtain a transformed circuit, then to manufacture a circuit FGPA or an ASIC circuit from the transformed circuit in netlist form.
  • the lowercase vectors for example pi, po, represent the signals in a digital circuit transformed by the digital circuit fabrication tool that correspond to the uppercase letter vectors, for example PI, PO. They satisfy the same equalities (1) indicated above.
  • the tool 1 implements an automatic transformation step 100 of the circuit design to obtain a fault-tolerant circuit by dynamic temporal redundancy.
  • a circuit as obtained after transformation is adapted to switch, without any interruption of calculation, from an operating mode according to a time redundancy of order n to an operating mode according to a time redundancy of order m, with n ⁇ m , following a mode switching control signal indicating the transition from the order n to the order m, which allows a dynamic compromise between the flow rate and the fault tolerance.
  • the tool 1 replaces each input memory cell 13, output S0, and provided in the original circuit, with a memory block 14 of input S1 and output N0 and additionally a control block 15 which generates control signals, as represented by the modules 12 and 15 of FIG.
  • the memory block 14 implements a dynamic temporal redundancy mechanism adapted to mask and / or detect faults caused by SETs in at least one of the operating modes of the memory block 14.
  • the memory block 14 is adapted to switch during operational operation.
  • control block 15 determines the control signals of the memory block 14 in particular according to the order n of the time redundancy currently selected for the circuit. It is implemented for example using a finite state machine, for example itself protected by TMR.
  • n mode is defined as the mode of operation with time redundancy of order n (n natural number):
  • the input flux PI of the circuit is oversampled n times and noted pi, the flow rate of the initial circuit is n times greater than the flow rate of the transformed circuit;
  • the memory block 14 is adapted to detect or hide up to ⁇ [-] faults
  • [E] represents the function "integer part") when n is greater than or equal to 2, as a function of comparisons between them, all the n clock cycles, of the n data successively stored by the memory block and corresponding to the n if redundant input signals (in the case of a fault mask, the output data selected by the memory block is the majority data among the n compared data).
  • a memory block 14 includes a dynamic delay pipeline, an additional delay line and a voter / detector.
  • the dynamic delay pipeline is adapted to, in an n-order time redundancy mode, storing n successive signals supplied at the input of the memory block. It is adapted to dynamically modify its delay function n as a function of control signals transmitted by the control block 15.
  • the additional delay chain is suitable for, in a mode of n - ⁇
  • the memory block 14 comprises a voter / detector adapted to determine n decisions of the type masking or / and detection of faults, successive n-mode time redundancy mode, according to data stored in the pipeline and / or in the line additional delay.
  • a memory block 14 is shown in one embodiment, in FIG. 4.
  • the dynamic delay pipeline 76 has N (N ⁇ 2) memory cells 13 arranged in cascade and N-2 multiplexers 20 (it should be noted that other implementations are possible: for example, one could not use multiplexers 20 and change the voter / detector to select cells to compare / vote.
  • the N successive memory cells are named respectively di, d 2 , d N -
  • a multiplexer 20 is disposed between each cell d, and each cell d i + 1 , ⁇ e [1, N-2] (when N> 2).
  • the cell di has for signal input the signal if.
  • the cell d N has for its input signal the output signal of d N-1.
  • the output of each cell d 1, ie [1, N-2], is delivered to the input 0 of the multiplexer 20 placed between each cell d, and each cell dj + i.
  • the signal if is delivered to the input 7 of the multiplexer 20 disposed between each cell d, and each cell d i + i.
  • the output of the multiplexer 20 disposed between the cells d, and d i + i cell d ,, ie [1, N-2] is delivered to the input of the cell d i + i.
  • a control bus indicates to each multiplexer 20, that of its inputs 0 and 7 to be output from the multiplexer 20 (if the signal of the control bus modeS is equal to 7: 1 input 7, receiving if is outputted from the multiplexer, if the signal of the control bus modeS is equal to 0: the input 0, receiving the output of the previous cell, is output from the multiplexer).
  • modeS indicates to each multiplexer 20, that of its inputs 0 and 7 to be output from the multiplexer 20 (if the signal of the control bus modeS is equal to 7: 1 input 7, receiving if is outputted from the multiplexer, if the signal of the control bus modeS is equal to 0: the input 0, receiving the output of the previous cell, is output from the multiplexer).
  • This known operation of a multiplexer is also that of the other multiplexers described below and therefore will not be recalled systematically.
  • the modeS control signals are a function of the selected time redundancy mode. not - ⁇
  • the input of d ⁇ is fed by the output of d N.
  • the input of of y + 1 is fed by the output of d, with j ⁇ 1.
  • the contents of these cells are provided on the n - ⁇
  • the voter / detector 18 is adapted to determine the output signal so as a function of redundant data present on the dataA and dataB buses and to make mask decisions and / or error detection in the order n current time redundancy. In a masking decision, the voter / detector compares the entries supplied to him and selects as signal n the majority value among these entries.
  • the signal if is supplied at the input of the cell D N - by control of the multiplexers 20 (in other embodiments, for example without multiplexer 20, it is provided to each cell). It is the content of the cell d N- i which is delivered as signal n0 by the voter / detector 18 (thus the signal SO at the cycle / is the signal supplied at the input of the memory block 14 at the cycle i-1).
  • the signal if is supplied at the input of the cell d N .i to an even cycle 2 /; in the cycle 2 ⁇ + 1, the signal if redundant is in turn provided at the input of the cell d N -i while the output of the cell d N -i is provided at the input of the cell d N.
  • the voter / detector 18 provides as a signal so the content of d N each cycle. It compares, in cycle 2 / ' , the data (derived from redundant input data) stored in the memory cells N .i and d N after they have been inputted from memory block 14 to cycle 2 ⁇ -1.
  • the cells d N. 2 , d N-1 and d N are used as well as, similarly to the respective cells d, d ', d "and s of Figure 6 whose operation is described below.
  • the same input data are provided n times to the combinatorial part 11 of the circuit which recalculates the same result n times, which is then found gradually saved in the n memory cells dd 2 , a n n pipeline 16. These results represent the current redundant set of redundant results
  • the voter / detector 18 makes a first decision based on these n results which are inputted to it on the dataA bus. Then the redundant data at the output of the cell d N are successively stored in the additional delay line 17,
  • the decision maker / voter makes n-1 decisions on the redundant results of the current game stored in the memory cells of the pipeline 16 and the additional delay line 17 via the dataA and dataB data buses. So to me (i ⁇ n) the next cycle, the decision relates to the majority value from (or) redundant results
  • n-1 redundant results of the following set of redundant results are contained in the N cells. n + i and d N -i-
  • the fetchA control signals indicate at each clock cycle, according to the currently selected time redundancy order, that (s) of the outputs of the memory cells on dataA buses, dataB, that the voter / decision-maker 18 must consider in his current decision.
  • a circuit is produced with alternative modes of operation 2 and 5, which thus detects a single SET (mode 2), or masks up to two SETs ( mode 5).
  • the modeS, fetchA control signals are determined by the control block 15, in particular according to the selected time redundancy mode and the current cycle.
  • a temporal mode change is made automatically or not, for example when crossing a radiation threshold in the environment of the circuit or following the occurrence of a fault.
  • the modules interfaced to the circuit must adapt to the redundancy order changes, in particular the level of oversampling must follow the redundancy order.
  • the memory block 140 replacing each memory cell provided in the original circuit, comprises a pipeline 16 comprising the cells d and d ', respectively corresponding to the cells of N- i, d N of Figure 4 and a voter / detector 18.
  • the voter / detector 18 comprises a multiplexer 21 and a comparator 22.
  • the multiplexer 21 has two inputs 0 and 1.
  • the output signal so of the memory block is the output signal of the multiplexer. It is equal to either input 1 or input 0 depending on the modeS control signals.
  • the output of the cell is supplied as input 7 of the multiplexer 27.
  • the bit s / is given at the input of the cell d.
  • the voter / detector 18 provides as signal each cycle the content of d.
  • the multiplexer 27 is controlled by the modeS signal emitted by the control block 75, so that its output, Le., The signal so, is always equal to the input 7 of the multiplexer.
  • the value of the signal fail returned by the comparator 22 is not significant to the odd cycles, since then d and d do not contain redundant data.
  • a signal value fail equal to 7 signals the detection of an error in the redundancy of the data then stored in d and d', Le., Supplied at the input of the memory block 740 in cycles 2 / and 2 / '-7.
  • N 3
  • the memory block 141 replacing each memory cell provided in the original circuit includes a pipeline 16 having the cells d, d 'and d ", respectively corresponding to the cells of N. 2, d N - d N of FIG. 4, the additional delay line 13 and a voter / detector 18.
  • a multiplexer 20, comprising two inputs 0 and 1, is arranged upstream of the input of the cell.
  • the input of d is the output of the multiplexer 20.
  • the multiplexer 20 receives on its input 1 the signal if and on its input 0 the output of the cell d.
  • the additional delay line 13 comprises a memory cell corresponding to the cell shown in FIG.
  • the voter / detector 18 comprises two multiplexers 23, 23 'and a voter 24.
  • the input bit stream of the original PI is oversampled 3 times:
  • the control signal modeS is equal to 0.
  • the cell s stores the redundant value stored in the specific cycle in d"
  • the vote in the specific cycle 3 / ' -2 is carried out on the contents of the cells d, d' and d "and the vote is made instead on the contents of the cells d, d" and s the following two cycles, selecting the majority value among these three contents.
  • control signal modeS is therefore set to 7 by the control block 15 in this mode.
  • the fetchA signal is set equal to 1.
  • the output bit stream of the combinational part co after the transformation 100 of the circuit is the output stream CO of the original circuit oversampled twice:
  • a new value on is supplied to d and d, then the next cycle is propagated to d while redundant data of value a is again provided on if d and d '.
  • control signal modeS is therefore set to 7 by the control block 15 in this mode.
  • the fetchA signal is set equal to 1.
  • n 1
  • the circuit does not have fault detection or fault masking properties.
  • the triple dynamic time redundancy according to the invention makes it possible to mask the SETs of the SET model (1, K) for any K greater than 4 cycles.
  • the tool 1 implements a step of automatic transformation 101 of the design of the circuit to obtain a circuit with a mechanism of recording of the state of the circuit, this recording being triggered by a control signal named save, and furthermore provided with a feedback mechanism of the state of the circuit in the state thus recorded, this backtrack being triggered later by a command signal named rollBack.
  • the tool 1 replaces each input memory cell 13 if, so output and provided in the original circuit shown in FIG. 1, by an input memory block 30 if and output so as shown in Figure 8, and further adds a control block which generates control signals save and rollBack.
  • the memory block 30 comprises a memory cell 13 receiving on its input D a signal if, delivering on its output Q a signal to the input 0 of a multiplexer mux.
  • the memory block 30 further comprises a recording block 29 adapted to record the signal if it is input to it when a signal save equal to 1 is addressed to it. The signal, if so recorded by the record block, is supplied at input 1 of the multiplexer mux.
  • the record block 29, in this case, comprises a memory cell 31, named copy.
  • the memory cell 31 stores, when a signal save equal to 1 is provided on its input E (enable), the signal if supplied to it on its input D, in parallel with its supply on the input D of the cell 13 When save is equal to 0, the signal if is not stored in the memory cell copy 31.
  • the Q output of the copy cell 31 is provided at input 1 of the mux multiplexer.
  • the mux multiplexer delivers at its output the signal so.
  • the signal so is equal to the input 0 of the multiplexer when rollBack is equal to 0 and is equal to the input 1 of the multiplexer 31 when rollBack is equal to 1.
  • the same signal save at 1 supplied to the cycle / to the set (or to a subset) of the memory blocks 30 of the circuit makes it possible to record in the cells copy 31 the current state of the cells 13 of the circuit to the cycle / ' . This state remains stored as long as a new save signal at 1 is not supplied.
  • Such a circuit is adapted to mask errors using only a level 2 time redundancy instead of a level 3 time redundancy.
  • the tool 1 replaces each memory cell 13, of the input if and of the output so, provided in the original circuit represented in FIG. 1, by a memory block 40, of input si and output so as shown in Figure 9, and further adds a control block 15 which generates control signals save and rollBack.
  • FIG. 1 A view of the transformed circuit resulting from this transformation is shown in FIG.
  • Such a transformation involves the implementation of double oversampling means of the primary inputs of the circuit which, in the embodiment under consideration, are always activated independently of the value of the active redundancy order, the addition of buffer memories of input to all the primary inputs PI of the initial circuit, and finally the addition of output buffers to all the primary outputs PO of the initial circuit.
  • ⁇ p (c / ' ) is computed twice, the results are compared and if an error is detected, ⁇ p (c / ' ) is computed a third time, thanks to the contents of the input buffers.
  • the memory block 40 thus comprises cells d and d arranged in series to save redundant data. It furthermore comprises an EQ comparator comparing the contents of the cells d and the emission of a signal fail indicating the result of the comparison.
  • the memory block 40 further comprises a recording block 29 adapted to store the signal if it is input to it when the control signal save is set to 1.
  • the output of the recording block is supplied to the input 1 the muxA multiplexer, while the output of the cell d is provided on the input 0 of the multiplexer muxA.
  • the muxA multiplexer is controlled by the signal save as well.
  • the recording block 29 has the cells r and r 'arranged in series, the signal if supplied at the input D of the cell r, the output Q of the cell r is supplied at the input D of the cell r ', the output Q of the cell r' is the output of the recording block 29.
  • the storage by the cells r and r 'of the signal supplied to them on their input D takes place only when the signal save command provided on their input £ is set to 1.
  • a muxB multiplexer receives at its input 1 the mu output of the multiplexer muxA and receives on its input 0 the output of the cell.
  • the muxB multiplexer is controlled by the rollBack control signal.
  • the operating mode is a time redundancy of order 2 and the output of the memory block so is equal to the contents of the cell of .
  • the operating mode is without time redundancy (i.e., of order 1).
  • the output of the memory block so is equal to the content of the cell d when save is equal to 0 and the output of the memory block so is equal to the output of the recording block, ie, in the embodiment considered to the content of the cell r 'when save is equal to 1.
  • the recording block 29 makes it possible to memorize the value of if during 4 clock cycles and to allow the circuit to reposition itself on this memorized value in the event of error detection.
  • an input buffer 50 is further inserted after each primary input P1 of the original circuit for storing the last two bits of the input stream (each input corresponds to a component of the vector pi).
  • This input buffer 50 shown in FIG. 11 in one embodiment, is implemented by a pipeline of two memory cells b and b ', pi denotes the primary input of the original circuit.
  • the control signal rB is set to 1 by the control block during the recovery phase, after an error detection performed by the comparator EQ during an odd cycle.
  • the vector ci thus comprises the vector p / ' which comes from the input buffers and the vector so from the repositioned memory blocks. If the error is detected at the cycle / ' , then the backspace is performed at cycle i + 1 and the vector ⁇ / ' ,. _ 1 ® n, -i is supplied to the combinatorial portion, exactly the input vector already provided two cycles previously.
  • the recovery phase (mode without temporal redundancy) disturbs the flow of the vectors co of the circuit relative to the normal operating mode (mode of redundancy of order 2).
  • an output buffer is inserted before each primary output po (each output po corresponds to a component of the vector po).
  • Such an output buffer 60 is shown in one embodiment in FIG. 72.
  • the signal co comes from the combinatorial part 77.
  • the buffer memory 60 is adapted to be tolerant to a SET occurring in the buffer memory 60 or its outputs. .
  • the primary outputs are tripled: poA, poB and poC are the primary outputs of the transformed circuit corresponding to the primary output po of the initial circuit.
  • Output buffers ensure that at least two of the tripled outputs are correct on every even cycle.
  • the surrounding circuit can read these outputs in the even cycle and vote on these outputs read to hide any SET.
  • other output blocks eg, ignoring faults in the outputs
  • other interface specifications could be used.
  • Tables 7 and 2 below illustrate a case fault detection cycle /.
  • a vector v corrupted by any number of corrupted bits is noted ⁇ v.
  • ( ⁇ -) indicates a data substitution performed by the muxAs, muxBs, muxCs, muxDs multiplexers of an output buffer 60.
  • the control signals save, rollBack, rB and subst are generated by the control block 15 to implement the functionality of the transformed circuit during the normal operating mode and the recovery phase.
  • the input of the control block 15 is the fault detection signal fail (disjoint fail signals come from the different memory blocks 14 and the output buffer memories 60)
  • Fig. 13 shows the finite state machine (FSM) of the control block 15 in one embodiment of the invention.
  • FSM finite state machine
  • the sign indicates the action of assigning a value to a signal, for example if a signal fail is detected equal to 1, we assign the value 1 to the signals rB, save, rollBack and subst during the next cycle.
  • all the control signals transmitted by the control block 15 and not mentioned during a change of state are set to 0.
  • the states norm1 and norm2 correspond to the normal operating mode, which gives rise to the setting at 1 alternating of the signal save.
  • the control block 15 itself is not protected against the SETs by time redundancy. In one embodiment, it is protected by TMR.
  • the values taken by the control signals in the different states are shown in Tables 1 and 2.
  • the operating mode of the circuit is the normal operating mode (2nd order redundancy mode).
  • the value of the rollBack control signal is always set to 0 by the control block 15.
  • Property 1 first of all, the output bit stream co of the combinatorial part 11 after the transformation of the circuit is a double oversampling of the bit stream CO of the original circuit.
  • the error detection corresponds to a determination of a violation of this property 2 by the comparator EQ.
  • the circuit backtracks during the cycle following the fault detection, then performs three consecutive cycles during which the second order time redundancy in the memory blocks is replaced by a mode without time redundancy and by application by the control block 15 of the sequence of the save, rollBack, subst and rB control signals shown in FIG. 13 between the "error" state until it returns to the "norm2" state.
  • Table 1 contains the values of the bit vectors in the transformed circuit cycle by cycle when a fault is detected at the cycle / ' .
  • the behavior of the circuit in normal mode ie, in the absence of fault is indicated in Table 1a.
  • the principle of backtracking is that the memory blocks 40 re-inject the last state saved in the cells r '(vector si) while the input buffers reinject the corresponding primary inputs (vector pi) stored therein.
  • the contents of the memory cell d are propagated directly through the outputs so of each memory block 40, by short-circuiting the memory cells of. This is implemented by setting the rollBack control signal to 1, keeping the save signal at 0 which controls the muxA and muxB multiplexers appropriately. This is of no consequence since the SET fault pattern (1, K) ensures that no additional fault occurs during K cycles after a SET.
  • the architectures of the output buffers are simplified, the main function being maintained: implement a delay on the signal co in normal operating mode with a mechanism for propagating co to po during the recovery phase.
  • a circuit converted according to this embodiment of the invention realizes the propagation of the signal through the combinational part of the circuit twice before the comparison, with a backtracking and replaying when an error is detected.
  • a SET fault model (1, K) no error occurring in the cycles after the last fault occurrence, the level 2 redundancy mechanism is then removed and the circuit is accelerated twice. It returns to its correct state (Le., The state of the circuit if no error had occurred) after 8 cycles after detection or 10 cycles after the occurrence of the SET.
  • FIG. 14 represents steps of a method of automated manufacturing of a fault tolerant electronic circuit by time redundancy, which is implemented in one embodiment of the invention.
  • step 90 of choosing the required transformation and the type of dynamic redundancy (redundancy level, modes of operation and fault tolerance properties);
  • step 700 of transforming the memory blocks of the original circuit into memory blocks for implementing the dynamic redundancy chosen comprising:
  • step 101 generation of the memory block
  • step 102 replacing each memory cell of the original circuit by the memory block generated in the circuit design;
  • Ni / step 103 generation of the control block (and for the double dynamic redundancy with backtracking, input and output buffers);
  • iv / step 104 insertion of the control block (and in the case of double dynamic redundancy with backtracking, input buffers and output) in the design of the circuit and interconnections between the control block and the transformed memory blocks of the circuit (and in the case of the double reverse dynamic redundancy with the input and output buffers).
  • FIG. 15 describes different stages of the design flow of integrated circuits corresponding to different levels of abstraction in one embodiment of the invention:
  • step 201 synthesis at the system level, based on circuit specifications, including allocation or distribution between software and hardware, one of whose results is a high-level and behavioral description of the circuit;
  • step 202 synthesis of the high-level circuit on the basis of this description (transformation, planning, selection of modules), one of whose results is an architectural description, at the level of "Transfer of registers" or RTL: this modeling amounts to describing the implementation in the form of sequential elements (registers, flip-flops) and logical combinations between the different inputs / outputs of the sequential elements and the primary inputs / outputs of the circuit:
  • step 203 logical synthesis of the circuit as a function of this description RTL, which transforms the description RTL of the circuit into a description at the logic level, in terms of logical gates (netlist gate): this step 203 comprising the following successive substeps:
  • mapping technology mapping technology
  • step 204 physical mask synthesis of the circuit based on the logical description.
  • this synthesis includes the description of the circuit at the level of the transistors (placement, routing, clock distribution) and delivers a description of the circuit at the level of the mask.
  • this synthesis includes translation, topography (placement, routing) and delivers a programming file.
  • Transform 100 brings the fault tolerance properties to the circuit. In the embodiment described, it is implemented after the independent optimizations of the technology (the properties will thus be preserved by the subsequent steps) and before the separation of the flow in VLSI technology or FPGA technology, which makes it possible to apply it. jointly with both technologies.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Hardware Redundancy (AREA)

Abstract

Procédé de fabrication automatisée d'un circuit électronique tolérant aux fautes par redondance temporelle d'ordre maximal N, comprenant une étape mise en œuvre par ordinateur, selon laquelle on remplace toute cellule mémoire du circuit par un bloc mémoire (40) comprenant une chaîne de cellules mémoires en série, et un bloc de sélection qui, dans un mode de redondance temporelle d'ordre n1, n1 ∈ [1,N], sélectionne comme donnée de sortie du bloc mémoire, le contenu majoritaire de n1 cellules du bloc, et peut délivrer en outre un signal de faute si les contenus des n1cellules diffèrent. Ledit procédé est caractérisé en ce que les blocs mémoire insérés permettent de basculer dynamiquement d'un mode de redondance temporelle d'ordre n1à tout autre mode d'ordre n2. Ledit procédé pour N=2, en association avec un mécanisme d'enregistrement avec retour arrière, permet de masquer une erreur avec seulement une redondance double au lieu d'une redondance triple.

Description

Procédé de fabrication automatisée d'un circuit électronique adapté pour détecter ou masquer des fautes par redondance temporelle, programme d'ordinateur et circuit électronique associés
La présente invention concerne le domaine des circuits numériques électroniques adaptés pour détecter ou masquer des fautes.
Il existe différentes techniques, dans les circuits électroniques, permettant de détecter ou masquer des erreurs passagères (en anglais « soft errors ») causées par des activités radioélectriques ou électromagnétiques de type effet singulier transitoire (SEU, « Single Event Upset » en anglais ou SET, « Single Event Transient »).
Une première technique est la redondance modulaire triple ou TMR (en anglais « Triple Modular Redundancy »), dans laquelle les éléments matériels d'un circuit électronique sont triplés, les mêmes données d'entrée sont fournies en parallèle à chacun des composants triplés, et des modules de vote associés à ces composants triplés sélectionnent comme résultat fourni par le triplet de composants le résultat commun fourni en parallèle par au moins deux des composants. Cette première technique nécessite cependant un grand nombre de composants, ce qui est un inconvénient important, notamment en termes de compacité des circuits électroniques.
Une deuxième technique est la redondance temporelle, typiquement la redondance temporelle triple (TTR), selon laquelle les mêmes données d'entrée sont fournies trois fois successivement au même composant matériel qui délivre trois résultats, et des modules de vote associés au composant sélectionnent comme résultat fourni par le composant le résultat fourni au moins deux fois par le composant parmi les trois résultats.
La présente invention concerne plus particulièrement cette deuxième technique, et notamment un procédé de synthèse automatisée d'un circuit électronique adapté pour détecter ou masquer des fautes par redondance temporelle, ledit procédé comprenant une étape mise en œuvre par ordinateur, selon laquelle pour mettre en œuvre une fonction de cellule mémoire du circuit électronique, on insère dans le circuit électronique un bloc mémoire comprenant une chaîne de retard comportant N cellules mémoires en série, N≥2, et un bloc de sélection (voteur / détecteur) qui, dans un mode de fonctionnement correspondant à une redondance temporelle d'ordre n1, impliquant n1 réexécutions, n1e[1,N], compare le contenu courant des n1 cellules mémoires stockant n1 données d'entrée redondantes successivement fournies au bloc mémoire, et - si n1>2, sélectionne comme données de sortie de la fonction de cellule mémoire, le contenu majoritaire des n1 cellules mémoires et optionnellement délivre en outre un signal de faute si les contenus de deux cellules mémoires diffèrent ;
- si n1=2, délivre comme données de sortie de la fonction de cellule mémoire, le contenu d'une des deux cellules mémoires contenant la donnée redondante courante et délivre en outre un signal de faute si les contenus de ces deux cellules mémoires diffèrent ;
- si n1=1, délivre comme donnée de sortie de la fonction de cellule mémoire, le contenu de la cellule mémoire déterminée.
n\— \ n\
Si n1>2, le circuit masque E[— -— fautes et optionnellement détecte E[— ] fautes, où £ est la fonction « partie entière ». Si n2=1, délivre comme donnée de sortie de la fonction de cellule mémoire, le contenu de la cellule mémoire déterminée.
Le document US 7,200,822 B1 est un exemple de circuits avec redondance temporelle triple et plus. La technique qui y est décrite diminue cependant le débit de traitement du circuit.
A cet effet, suivant un premier aspect, l'invention propose un procédé de synthèse automatisée d'un circuit électronique adapté pour détecter ou masquer des fautes par redondance temporelle du type précité caractérisé en ce qu'on insère en outre un bloc de contrôle du circuit adapté pour émettre des signaux de commande des blocs mémoires, et en ce que le bloc de mémoire inséré est adapté pour, en fonction d'un signal de commande de basculement reçu du bloc de contrôle, basculer entre ledit mode de fonctionnement correspondant à une redondance temporelle d'ordre n1 et un autre mode de fonctionnement correspondant à une redondance temporelle d'ordre n2 e [1,N] selon lequel le circuit effectue n2 réexécutions, n2≠n1, dans lequel le bloc de sélection compare le contenu courant de n2 cellules déterminées parmi les N cellules mémoires stockant n2 données d'entrée redondantes successivement fournies au bloc mémoire, et :
si n2>2, sélectionne comme donnée de sortie de la fonction de cellule mémoire, le contenu majoritaire desdites n2 cellules mémoires ;
si n2=2, délivre comme donnée de sortie de la fonction de cellule mémoire, le contenu d'une des deux cellules mémoires et délivre un signal de faute si les contenus des deux cellules mémoires diffèrent ;
si n2=1, délivre comme donnée de sortie de la fonction de cellule mémoire, le contenu de la cellule mémoire déterminée. L'invention permet d'adapter dynamiquement le compromis entre les corrections/détections de fautes et le débit de sortie du circuit.
Une telle redondance temporelle dynamique permet de changer en cours d'exécution le nombre de réexécutions. Quand ce nombre est égal à 1, le circuit fonctionne sans réexécution et sans surcoût.
L'adaptation dynamique du niveau de redondance temporelle mise en œuvre selon l'invention permet notamment d'adapter le fonctionnement du circuit fabriqué selon l'invention aux fluctuations des radiations dans l'environnement du circuit.
Une telle redondance temporelle dynamique permet notamment d'obtenir des circuits masquant une erreur à l'aide de moyens équivalent à une redondance temporelle double au lieu de triple. Le principe est de tirer parti des K cycles d'horloge suivant l'occurrence d'une faute pendant lesquels, par hypothèse, aucune nouvelle faute n'aura lieu. Dans un circuit selon l'invention, suite à une détection d'erreur dans un mode de redondance double, le circuit bascule en mode non redondant pour faire une troisième exécution du calcul erroné, sans que le débit observé en sortie du circuit ne change (voir la section « Combinaison de la redondance temporelle dynamique double et de l'enregistrement avec retour arrière » ci-après).
Dans des modes de réalisation, le procédé de synthèse automatisée d'un circuit électronique tolérant aux fautes par redondance temporelle suivant l'invention comporte en outre une ou plusieurs des caractéristiques suivantes :
- le bloc de mémoire inséré comporte en outre, quand N>2, un bloc de retard supplémentaire disposé en sortie de la chaîne de retard et comportant au moins
N - l
E[— -— cellules mémoires ; en mode de fonctionnement correspondant à une redondance temporelle d'ordre n, n>2, tous les n cycles, le bloc de sélection sélectionne comme donnée de sortie de la fonction de cellule mémoire, le contenu majoritaire des n cellules mémoires de la chaîne de retard, et chaque me cycle suivant lesdits n cycles, avec 1≤i<n, sélectionne comme donnée de sortie de la fonction de cellule mémoire, le contenu majoritaire d'un ensemble de dernières cellules de la chaîne de retard et de cellules du bloc de retard supplémentaire, lesdites cellules de l'ensemble stockant des données d'entrée redondantes ayant été successivement fournies au bloc mémoire ; cet ensemble comporte par exemple audit me cycle, les (n-i) dernières cellules de la chaîne de retard et de /' cellules du bloc à retard supplémentaire ; -N=3, n1=1, n1=2, ou n1=3 et n2, n2≠n1, prend une valeur égale à 1, 2 ou 3 en fonction de la commande de basculement ; ce mode de réalisation correspond à une redondance dynamique triple, qui inclut donc les modes de fonctionnement d'ordre n=1, n=2 et n=3 ainsi que toutes les transitions possibles entre ces trois modes de fonctionnement ;
-N=2, n1=1 ou n1=2 et n2, n2≠n1, prend une valeur égale à 7 ou 2 en fonction de la commande de basculement ; ce mode de réalisation correspond à une redondance dynamique double, qui inclut donc les modes de fonctionnement d'ordre n=1 et n=2 ainsi que toutes les transitions possibles entre ces deux modes de fonctionnement ;
- la commande de basculement du mode de fonctionnement selon une redondance temporelle d'ordre 2 vers le mode de fonctionnement selon une redondance temporelle d'ordre 1, et réciproquement, est déclenchée suite à la réception par le bloc de commande d'un signal de faute délivré par un des blocs mémoires ;
- la deuxième cellule de la chaîne de retard mémorise, à chaque cycle d'horloge du circuit, le contenu mémorisé au cycle d'horloge précédent, dans la première cellule de la chaîne de retard, le bloc de mémoire inséré comporte en outre une chaîne d'enregistrement adaptée pour, sur réception d'un signal de commande d'enregistrement du bloc de contrôle, mémoriser la valeur de signal d'entrée du bloc mémoire également fournie en parallèle à la première cellule de la chaîne de retard, et en mode de fonctionnement selon une redondance d'ordre 2, le signal de commande d'enregistrement est émis tous les deux cycles de sorte que, lorsque des données redondantes mémorisées dans les deux cellules mémoires de la chaîne de retard sont comparées par le bloc de sélection, la dernière cellule de la chaîne d'enregistrement comporte en mémoire les données qui étaient mémorisées deux cycles auparavant dans chacune des deux cellules mémoires de la chaîne de retard ;
- suite à la réception par le bloc de commande d'un signal de faute délivré par un bloc mémoire signalant que des données redondantes mémorisées dans les deux cellules mémoires de la chaîne de retard diffèrent, le bloc de commande fournit au bloc de mémoire une commande de retour arrière suite à laquelle le bloc mémoire délivre comme donnée de sortie de la fonction de cellule mémoire, le contenu courant de la dernière cellule de la chaîne d'enregistrement; ce mode de réalisation permet de masquer une erreur avec seulement une redondance double au lieu de triple ; - on insère en outre à l'entrée du circuit électronique un bloc d'entrée du circuit recevant la donnée extérieure courante à traiter suréchantillonnée deux fois,
le bloc d'entrée, dans le mode de fonctionnement selon une redondance temporelle d'ordre 2, mémorisant la donnée extérieure courante reçue et fournissant en outre simultanément au circuit ladite donnée extérieure courante reçue et, le bloc d'entrée, dans le mode de fonctionnement selon une redondance temporelle d'ordre 1, fournissant au circuit des données extérieures successives non redondantes précédemment mémorisées par le bloc d'entrée pour permettre une troisième exécution de ces données par le circuit ; et
selon lequel on insère en outre à la sortie du circuit électronique un bloc de sortie du circuit recevant la donnée délivrée par le circuit, ledit bloc de sortie, dans le mode de fonctionnement selon une redondance temporelle d'ordre 2, mémorisant les données délivrées par le circuit et appliquant un retard donné avant de les délivrer, et le bloc de sortie, dans le mode de fonctionnement selon une redondance temporelle d'ordre 1, délivrant sans retard les données délivrées par le circuit, dupliquant des données délivrées par le circuit et délivrant les données dupliquées,
le recouvrement de fautes par le circuit étant ainsi masqué vis-à-vis de l'amont du circuit et de l'aval du circuit par lesdits blocs d'entrée et de sortie. Les blocs d'entrée et de sortie permettent en mode sans redondance temporelle (n2=1) de rendre l'étape de retour en arrière et de recalcul transparent vis-à-vis de l'environnement extérieur.
Suivant un deuxième aspect, la présente invention propose un programme d'ordinateur à installer dans un outil de fabrication automatisée d'un circuit électronique adapté pour détecter ou masquer des fautes par redondance temporelle, ledit programme comportant des instructions pour mettre en œuvre les étapes d'un procédé selon le premier aspect de l'invention lors d'une exécution du programme par des moyens de traitement de l'outil de fabrication automatisé de circuit électronique.
Suivant un troisième aspect, la présente invention propose un circuit électronique adapté pour détecter ou masquer des fautes par redondance temporelle comprenant un ensemble de bloc(s) mémoire(s), chaque bloc mémoire dudit ensemble comprenant une chaîne de retard comportant N cellules mémoires en série, N≥2, et un bloc de sélection qui, dans un mode de fonctionnement correspondant à une redondance temporelle d'ordre n1, n1 e [1,N], compare le contenu courant de n1 desdites N cellules mémoires stockant n1 données d'entrée redondantes successivement fournies au bloc mémoire, et - si n1>2, sélectionne comme donnée de sortie de la fonction de cellule mémoire, le contenu majoritaire des n1 cellules mémoires et optionnellement délivre en outre un signal de faute si les contenus de deux cellules mémoires diffèrent ;
- si n1=2, délivre comme donnée de sortie de la fonction de cellule mémoire, le contenu d'une des deux cellules mémoires et délivre en outre un signal de faute si les contenus des deux cellules mémoires diffèrent ;
- si n1=1, délivre comme donnée de sortie de la fonction de cellule mémoire, le contenu de la cellule mémoire déterminée ; ledit circuit électronique étant caractérisé en ce qu'il comporte un bloc de contrôle du circuit adapté pour émettre des signaux de commande desdits blocs mémoires, et en ce que chacun desdits blocs mémoires est adapté pour, en fonction d'un signal de commande de basculement reçu du bloc de contrôle, basculer entre ledit mode de fonctionnement correspondant à une redondance temporelle d'ordre n1 et un autre mode de fonctionnement correspondant à une redondance temporelle d'ordre n2 e [1,N], n2≠n1, dans lequel le bloc de sélection compare le contenu courant de n2 cellules déterminées, parmi lesdites N cellules mémoires, stockant n2 données d'entrée redondantes successivement fournies au bloc mémoire, et :
- si n2>2, sélectionne comme donnée de sortie de la fonction de cellule mémoire, le contenu majoritaire desdites n2 cellules mémoires ;
- si n2=2, délivre comme donnée de sortie de la fonction de cellule mémoire, le contenu d'une des deux cellules mémoires et délivre un signal de faute si les contenus des deux cellules mémoires diffèrent ;
- si n2=1, délivre comme donnée de sortie de la fonction de cellule mémoire, le contenu de la cellule mémoire déterminée.
Ces caractéristiques et avantages de l'invention apparaîtront à la lecture de la description qui va suivre, donnée uniquement à titre d'exemple, et faite en référence aux dessins annexés, sur lesquels :
- la figure 7 est une représentation d'un circuit numérique avant transformation selon l'invention ;
la figure 2 est une vue d'un outil de synthèse automatisée de circuits électroniques tolérants aux fautes dans un mode de réalisation de l'invention ; la figure 3 est une vue d'un circuit numérique après transformation dans un mode de réalisation de l'invention ; la figure 4 est une vue d'un bloc mémoire de la figure 3 dans un mode de réalisation de l'invention ;
la figure 5 est une vue du bloc mémoire de la figure 3 dans un mode de réalisation de l'invention correspondant à une redondance temporelle dynamique double ;
la figure 6 est une vue du bloc mémoire de la figure 3 dans un mode de réalisation de l'invention correspondant à une redondance temporelle dynamique triple ;
la figure 7 représente un exemple de voteur utilisé en figure 6 ;
la figure 8 est une vue d'un bloc mémoire de la figure 3 disposant d'un mécanisme d'enregistrement/retour arrière dans un mode de réalisation de l'invention ;
la figure 9 est une vue d'un bloc mémoire de la figure 3 dans un mode de réalisation de l'invention combinant les fonctionnalités de redondance temporelle dynamique double et de mécanisme d'enregistrement/retour arrière ;
la figure 10 est une vue d'un circuit numérique dans un mode de réalisation de l'invention correspondant à une redondance temporelle double avec retour arrière ;
la figure 11 représente une mémoire tampon d'entrée dans un mode de réalisation de l'invention de redondance dynamique double avec retour arrière ;
la figure 12 représente une mémoire tampon de sortie dans un mode de réalisation de l'invention de redondance dynamique double avec retour arrière ;
la figure 13 est une vue d'une machine à états finis d'un bloc de contrôle dans un mode de réalisation de l'invention de redondance dynamique double avec retour arrière ;
la figure 14 représente des étapes d'un procédé dans un mode de mise en œuvre de l'invention ;
la figure 15 décrit des étapes d'un flot de conception de circuits intégrés dans un mode de réalisation de l'invention.
Dans les figures, des références identiques repèrent des éléments similaires. La figure 7 est une représentation générale d'un circuit numérique 10, comprenant une partie combinatoire 77 et une partie séquentielle 72, pilotées par un signal d'horloge clk.
La partie combinatoire 77, comportant des portes combinatoires AND, OR, NOT etc., réalise une fonction booléenne sans mémoire φ.
La partie séquentielle 72 comporte des cellules mémoires ou Flip-Flops (FF) qui mémorisent chacune un bit, ou Flip-Flops (FF) destinées à mémoriser les données délivrées par la partie combinatoire 77. Une cellule mémoire 73 est représentée en figure 7. Elle reçoit sur un fil d'entrée D un signal si et délivre sur un fil de sortie Q un signal de sortie so (on notera qu'ici une flip-flop de type D est décrite, mais l'invention est bien sûr applicable à tout type de cellule mémoire).
Le circuit numérique 10 prend en entrée un vecteur de bits d'entrée primaire PI et délivre en sortie un vecteur de bits de sortie primaire PO à chaque cycle d'horloge.
On note Cl , respectivement CO , le vecteur de bits d'entrée, respectivement le vecteur de bits de sortie, de la partie combinatoire 77. On note SI , respectivement SO , le vecteur de bits d'entrée, respectivement le vecteur de bits de sortie, de la partie séquentielle 72.
Ces vecteurs satisfont les égalités suivantes :
CO = (p(CI) CÎ = PÎ ® SÔ CÔ = PÔ ® SÎ (1 ) où ® est l'opération de concaténation de vecteur.
On note v, la valeur du vecteur de bits v au me cycle d'horloge dans le circuit. On nomme v une composante quelconque du vecteur de bits v .
Les modèles de faute considérés sont de la forme « au plus m effets singuliers transitoires (SET) tous les K cycles d'horloge », dénotés SET(m,K). Ceci englobe les SEUs directes d'une cellule mémoire et les SEUs conséquence d'un SET dans la partie combinatoire. Selon le modèle de faute SET(1,K), il n'y a pas d'occurrence de faute dans les cycles d'horloge suivant la dernière occurrence de faute.
Un SET dans la partie combinatoire 77 d'un circuit peut conduire à la corruption non déterministe de n'importe quelle cellule mémoire connectée (par un trajet purement combinatoire) à l'endroit où le SET a eu lieu. Un SET dans la partie combinatoire 77 à un cycle /' peut provoquer la corruption de sortie(s) dans POi et d'entrée(s) dans Sh , ce qui alors cause la corruption de cellules mémoires dans la partie séquentielle 72. Cette dernière corruption est visible au cycle d'horloge Un SET peut arriver sur n'importe quel fil du circuit (connexions entre portes logiques, cellules mémoire, entrées, sorties).
La figure 2 représente un outil 1 de synthèse automatisée de circuits électroniques tolérants aux fautes dans un mode de réalisation de l'invention. Cet outil 1 comprend un microprocesseur 2 et une mémoire 3. Dans la mémoire 3, un programme d'instructions logicielles P est stocké qui, lorsqu'il est exécuté par le microprocesseur 2, est adapté pour mettre en œuvre les étapes indiquées ci-dessous de transformation automatique du design du circuit.
Un tel outil 1 est adapté pour, à partir d'une description d'un circuit numérique de type réseau de portes logiques (en anglais « netlist ») comprenant des portes AND, OR, NOT et des cellules mémoires ou Flip-Flops, effectuer une étape de transformation automatique du design du circuit pour obtenir un circuit transformé, puis pour fabriquer un circuit FGPA ou un circuit ASIC à partir du circuit transformé sous forme de netlist.
Les vecteurs en lettres minuscules, par exemple pi , po , représentent les signaux dans un circuit numérique transformé par l'outil de fabrication de circuit numérique qui correspondent aux vecteurs en lettres majuscules, par exemple PI , PO . Ils satisfont aux mêmes égalités (1) indiquées précédemment.
Redondance temporelle dynamique
Suivant un premier aspect de l'invention, l'outil 1 met en œuvre une étape de transformation automatique 100 du design du circuit pour obtenir un circuit à tolérance aux fautes par redondance temporelle dynamique.
Un circuit tel qu'obtenu après transformation est adapté pour basculer, sans interruption de calcul, d'un mode de fonctionnement selon une redondance temporelle d'ordre n à un mode de fonctionnement selon une redondance temporelle d'ordre m, avec n≠m, suite à un signal de commande de basculement de mode indiquant le passage de l'ordre n à l'ordre m, ce qui permet un compromis dynamique entre le débit et la tolérance aux fautes.
Dans cette étape de transformation 100, l'outil 1 remplace chaque cellule mémoire 13 d'entrée SI, de sortie SO et prévue dans le circuit d'origine, par un bloc mémoire 14 d'entrée si et de sortie so et ajoute en outre un bloc de contrôle 15 qui génère des signaux de contrôle, comme représenté par les modules 12 et 15 de la figure 3. Le bloc mémoire 14 implémente un mécanisme de redondance temporelle dynamique adapté pour masquer et/ou détecter des fautes causées par des SETs dans au moins un des modes de fonctionnement du bloc mémoire 14. Le bloc mémoire 14 est adapté pour basculer au cours du fonctionnement opérationnel du circuit, d'un mode de fonctionnement selon une redondance temporelle d'ordre n à un mode de fonctionnement selon une redondance temporelle d'ordre m, avec n et m nombres entiers et n≠m, suite à une commande de basculement de mode indiquant le passage de l'ordre n à l'ordre m.
Dans un mode de réalisation, le bloc de contrôle 15 détermine les signaux de commande du bloc mémoire 14 en fonction notamment de l'ordre n de la redondance temporelle couramment sélectionné pour le circuit. Il est implémenté par exemple à l'aide d'une machine à états finis, par exemple elle-même protégée par TMR.
Ci-après on nomme mode n le mode de fonctionnement avec redondance temporelle d'ordre n (n entier naturel) :
- le flux d'entrée PI du circuit est sur-échantillonné n fois et noté pi , le débit du circuit initial est n fois plus important que le débit du circuit transformé ;
n le bloc mémoire 14 est adapté pour détecter ou masquer jusqu'à ^[—] fautes
[E[.] représente la fonction « partie entière ») quand n est supérieur ou égal à 2, en fonction de comparaisons entre elles, tous les n cycles d'horloge, des n données successivement mémorisées par le bloc mémoire et correspondant aux n signaux d'entrée si, redondants (dans le cas d'un masquage de faute, la donnée de sortie sélectionnée par le bloc mémoire est la donnée majoritaire parmi les n données comparées). Un bloc mémoire 14 comporte un pipeline de retard dynamique, une ligne de retard supplémentaire et un voteur/détecteur.
Le pipeline de retard dynamique est adapté pour, dans un mode de redondance temporelle d'ordre n, mémoriser n signaux successifs fournis en entrée du bloc mémoire. Il est adapté pour modifier dynamiquement sa fonction de retard n en fonction de signaux de commande transmis par le bloc de contrôle 15.
La chaîne de retard supplémentaire est adaptée pour, dans un mode de n -\
redondance temporelle d'ordre n, mémoriser E\ signaux ayant été successivement fournis en entrée du bloc mémoire 14, de manière à permettre la réalisation par le voteur/détecteur 18 de n décisions de vote/détection successives (dans d'autres modes ation, la ligne de retard supplémentaire est adaptée pour sauvegarder plus de signaux ayant été successivement fournis).
Le bloc mémoire 14 comporte un voteur/détecteur adapté pour déterminer n décisions de type masquage ou/et détection de fautes, successives, en mode de redondance temporelle d'ordre n, en fonction de données mémorisées dans le pipeline et/ou dans la ligne de retard supplémentaire.
Un bloc de mémoire 14 est représenté dans un mode de réalisation, en figure 4.
Le pipeline 76 de retard dynamique comporte N (N≥2) cellules mémoires 13 disposées en cascade et N-2 multiplexeurs 20 (on notera que d'autres implantations sont possibles : par exemple, on pourrait ne pas utiliser de multiplexeurs 20 et changer le voteur/détecteur pour sélectionerles cellules à comparer/voter.
Les N cellules mémoires successives sont nommées respectivement di, d2, dN-
Un multiplexeur 20 est disposé entre chaque cellule d, et chaque cellule di+1, \e[1,N-2] (quand N>2). La cellule d-i a pour signal d'entrée le signal si. La cellule dN a pour signal d'entrée le signal de sortie de dN-i- La sortie de chaque cellule d,, ie[1,N-2], est délivrée sur l'entrée 0 du multiplexeur 20 disposé entre chaque cellule d, et chaque cellule dj+i. Le signal si est délivré sur l'entrée 7 du multiplexeur 20 disposé entre chaque cellule d, et chaque cellule di+i. La sortie du multiplexeur 20 disposé entre les cellules d, et di+i cellule d,, ie[1,N-2], est délivrée sur l'entrée de la cellule di+i.
De façon connue, un bus de contrôle, nommé ici modeS, indique à chaque multiplexeur 20, celle de ses entrées 0 et 7 qui doit être délivrée en sortie du multiplexeur 20 (si le signal du bus de contrôle modeS est égal à 7 : l'entrée 7, recevant si est délivrée en sortie du multiplexeur ; si le signal du bus de contrôle modeS est égal à 0 : l'entrée 0, recevant la sortie de la cellule précédente, est délivrée en sortie du multiplexeur). Ce fonctionnement connu d'un multiplexeur est aussi celui des autres multiplexeurs décrits plus loin et ne sera donc pas rappelé systématiquement.
La sortie des cellules d,, i=1 à N, est en outre fournie au voteur/détecteur 18 sur le bus de données dataA.
Les signaux de contrôle modeS sont fonction du mode de redondance temporelle sélectionné. n -\
La ligne de retard supplémentaire 77 comporte k= E\ cellules mémoires d, , dk en série. L'entrée de d^ est alimentée par la sortie de dN. L'entrée de ofy+1 est alimentée par la sortie de d , avec j≥1. Les contenus de ces cellules sont fournis sur le n -\
bus de données dataB. El de ces cellules sont utilisées par le voteur/détecteur 18
2
pour réaliser les n-1 dernières décisions relatives à n données redondantes en entrée du bloc mémoire 14.
Le voteur/détecteur 18 est adapté pour déterminer le signal de sortie so en fonction de données redondantes présentes sur les bus dataA et dataB et pour prendre des décisions de masque et/ou détection d'erreur suivant l'ordre n courant de redondance temporelle. Dans une décision de masquage, le voteur/détecteur compare les entrées qui lui sont fournies et sélectionne comme signal so la valeur majoritaire parmi ces entrées.
Si n=1 (mode de fonctionnement = mode 7), il n'y a pas de redondance temporelle. Le débit du circuit transformé est le même que le débit du circuit initial. Il n'y a pas détection, ni correction de fautes.
Dans le mode de réalisation décrit, le signal si est fourni en entrée de la cellule dN- par contrôle des multiplexeurs 20 (dans d'autres modes de réalisation, par exemple sans multiplexeur 20, il est fourni à chaque cellule). C'est le contenu de la cellule dN-i qui est délivré comme signal so par le voteur/détecteur 18 (ainsi le signal so au cycle / est le signal fourni en entrée du bloc mémoire 14 au cycle i-1).
Si n=2 (mode de fonctionnement = mode 2), le signal si est fourni en entrée de la cellule dN.i à un cycle pair 2/ ; au cycle 2Ί+1, le signal si redondant est à son tour fourni en entrée de la cellule dN-i tandis que la sortie de la cellule dN-i est fournie en entrée de la cellule dN. Le voteur/détecteur 18 fournit comme signal so le contenu de dN à chaque cycle. Il compare, au cycle 2/', les données (issues de données d'entrée redondantes) mémorisées dans les cellules dN.i et dN mémoire après qu'elles aient été fournies en entrée du bloc mémoire 14 au cycle 2Ί-1 et 2/'-2, et délivre un signal fail indiquant 0 si les données comparées sont égales (aucune faute détectée) et indiquant 1 si les données comparées ne sont pas égales (faute détectée). Aux cycles impairs, la valeur du signal fail est ignorée car la comparaison effectuée porte sur des données non redondantes. La valeur de ce signal fail est par exemple fournie au bloc de contrôle 15 ou en sortie du circuit. Si n=3 (mode de fonctionnement = mode 3), les cellules dN.2, dN-i et dN sont utilisées ainsi que , similairement aux cellules respectives d, d', d" et s de la figure 6 dont le fonctionnement est décrit plus bas.
De façon générale, en redondance temporelle d'ordre n≥3 (mode de fonctionnement = mode n), les cellules du pipeline dN.n+i, dN-i et dN sont utilisées, ainsi que les cellules de la ligne de retard supplémentaire d^ , d n l . Si n est l'ordre du
ΕίΎ]
mode de redondance couramment sélectionné pour le fonctionnement du circuit, les mêmes données d'entrée sont fournies n fois à la partie combinatoire 11 du circuit qui recalcule n fois le même résultat, qui se retrouve alors progressivement sauvé dans les n cellules mémoires d d2, dn du pipeline 16. Ces n résultats redondants constituent le jeu courant de résultats redondants
Lorsque ces n résultats redondants sont stockés dans les n cellules d d2, dn, le voteur/détecteur 18 prend une première décision en fonction de ces n résultats qui lui sont fournis en entrée sur le bus dataA. Puis les données redondantes en sortie de la cellule dN sont successivement mémorisées dans la ligne de retard supplémentaire 17,
n -\
qui vont en contenir jusqu'à E\ dans les n-1 cycles suivants au cours desquels le
2
décideur/voteur prend n-1 décisions sur les résultats redondants du jeu courant mémorisés dans les cellules mémoires du pipeline 16 et de la ligne de retard supplémentaire 17, via les bus de données dataA et dataB. Ainsi au me (i<n) cycle suivant, la décision porte sur la valeur majoritaire parmi les (n-i) résultats redondants du
n -\ jeu courant de résultats redondants dans les cellules dNn.i+i, dN et les min(i , El )
2 premières cellules de la ligne de retard supplémentaire 17 stockant également ce résultat redondant (soit d d η ). Ainsi au (n-1)eme cycle suivant, la décision porte sur le mm(i,E[—— ]) seul résultat redondant du jeu courant de résultats redondants dans la cellule dN et sur les
n -\
résultats redondants du jeu courant de résultats redondants dans les E cellules de
2
la ligne de retard supplémentaire 17 considérées. Alors, dans le pipeline 16, les n-1 résultats redondants du jeu suivant de résultats redondants sont contenus dans les cellules dN.n+i et dN-i-
Les signaux de commande fetchA indiquent à chaque cycle d'horloge, en fonction de l'ordre de redondance temporelle couramment sélectionné, celle(s) des sorties des cellules mémoires sur les bus dataA, dataB, que le voteur/décideur 18 doit considérer dans sa décision courante.
A titre d'illustration d'un mode de réalisation de l'invention, un circuit est produit avec des modes alternatifs de fonctionnement 2 et 5, qui ainsi soit détecte un seul SET (mode 2), soit masque jusqu'à deux SETs (mode 5).
Les signaux de contrôle modeS, fetchA sont déterminés par le bloc de contrôle 15, en fonction notamment du mode de redondance temporelle sélectionné et du cycle courant. Un changement de mode temporel est réalisé, selon les modes de réalisation, de façon automatisée ou non, par exemple lors du franchissement d'un seuil de radiations dans l'environnement du circuit ou suivant l'occurrence d'une faute.
Lors des changements de modes, les modules interfacés au circuit doivent s'adapter aux changements d'ordre de redondance, notamment le niveau de suréchantillonnage doit suivre l'ordre de redondance.
Les cas N=2 et N=3 sont détaillés ci-après.
Redondance temporelle dynamique double
Dans un mode de réalisation de l'invention considéré à présent, la valeur de N est choisie égale à 2, le circuit fabriqué selon l'invention disposant ainsi d'un mécanisme de redondance temporelle dynamique double selon le principe exposé ci-dessus conformément auquel le fonctionnement du circuit peut basculer entre les modes de redondance temporelle d'ordre n=1 et n=2.
La transformation 100 comprend donc la mise en œuvre de moyens de suréchantillonnage double du flux d'entrée PI qui sont activés lorsque n=2, la substitution de chaque cellule mémoire prévue dans le circuit original par un bloc mémoire 140 et l'ajout d'un bloc de contrôle 15.
Dans ce circuit, en référence à la figure 5, le bloc mémoire 140, remplaçant chaque cellule mémoire prévue dans le circuit original, comporte un pipeline 16 comportant les cellules d et d', correspondant respectivement aux cellules dN-i, dN de la figure 4 et un voteur/détecteur 18.
Le voteur/détecteur 18 comporte un multiplexeur 21 et un comparateur 22.
Le multiplexeur 21 comporte deux entrées 0 et 1. Le signal de sortie so du bloc mémoire est le signal de sortie du multiplexeur. Il est égal soit à l'entrée 1, soit à l'entrée 0 en fonction des signaux de contrôle modeS. Le signal si est fourni en entrée de la cellule d, la sortie de la cellule d est fournie en entrée de la cellule d', en entrée du comparateur 22 et en entrée 0 du multiplexeur 27. La sortie de la cellule d' est fournie en entrée 7 du multiplexeur 27.
Le comparateur 22 est adapté pour comparer les valeurs fournies à chaque cycle d'horloge sur ses deux entrées, et délivrer un signal fail=0 quand les valeurs sont égales et un signal fail=1 quand les valeurs diffèrent.
Mode n=1
En mode n=1, p/', = P\ , V/' entier non nul. Au cycle /', le bit s/, est donné en entrée de la cellule d. Dans ce mode, le multiplexeur 27 est piloté, par le signal modeS=0 émis par le bloc de contrôle 75, de sorte que la sortie multiplexeur 27, Le., le signal so, soit toujours égale à l'entrée 0 du multiplexeur Le., à la sortie de la cellule d.
Mode n=2
En mode n=2, le flux d'entrée du circuit est suréchantillonné deux fois : p/2 = pi
Les cellules d et d' contiennent donc des données redondantes à chaque cycle pair (par convention, le premier cycle est numéroté 0). Par exemple, si =u, si2=u, alors la paire (d, d') va contenir successivement les valeurs (0,0), (u,0), (u,u) ... en supposant que les valeurs initiales dans (d, d') étaient (0,0).
Le voteur/détecteur 18 fournit comme signal so à chaque cycle le contenu de d'.
Dans ce mode, le multiplexeur 27 est piloté, par le signal modeS émis par le bloc de contrôle 75, de sorte que sa sortie, Le., le signal so, soit toujours égale à l'entrée 7 du multiplexeur.
La valeur du signal fail retournée par le comparateur 22 n'est pas significative aux cycles impairs, puisqu'alors d et d' ne contiennent pas des données redondantes.
A un cycle pair 2/', une valeur de signal fail égale à 7 signale la détection d'une erreur dans la redondance des données alors mémorisées dans d et d', Le., fournies en entrée du bloc mémoire 740 aux cycles 2/ et 2/'-7.
La redondance temporelle dynamique double selon l'invention permet, en mode n=2, de détecter des erreurs dans le modèle de faute SET(1,K) pour tout K≥2, et en mode n=1 d'avoir le même débit que le circuit initial.
Redondance temporelle dynamique triple
Dans un autre mode de réalisation de l'invention considéré à présent, la valeur de N est choisie égale à 3, le circuit fabriqué selon l'invention disposant ainsi d'un mécanisme de redondance temporelle dynamique triple selon le principe général exposé ci-dessus, selon lequel le fonctionnement du circuit peut basculer entre les modes de redondance temporelle d'ordre n=1, n=2 et n=3.
La transformation 100 comprend donc la mise en œuvre de moyens de suréchantillonnage (x n) qui sont activés lorsque n=2 ou n=3, la substitution de chaque cellule mémoire prévue dans le circuit original par un bloc mémoire 141 et l'ajout d'un bloc de contrôle 15.
Dans ce circuit, en référence à la figure 6, le bloc mémoire 141, remplaçant chaque cellule mémoire prévue dans le circuit original, comporte un pipeline 16 comportant les cellules d, d' et d", correspondant respectivement aux cellules dN.2, dN- dN de la figure 4, la ligne de retard supplémentaire 13 et un voteur/détecteur 18.
Un multiplexeur 20, comportant deux entrées 0 et 1, est disposé en amont de l'entrée de la cellule d'. L'entrée de d' est la sortie du multiplexeur 20. Le multiplexeur 20 reçoit sur son entrée 1 le signal si et sur son entrée 0 la sortie de la cellule d. Le signal de commande modeS indique celle des entrées 0 ou 1 à laquelle la sortie du multiplexeur 20 est égale : modeS=0 (n=3), la longueur du pipeline 16 est 3 : la sortie du multiplexeur est fixée égale à l'entrée 0 ; modeS=1 (n=1 ou n=2), la longueur active du pipeline 16 est 2 : la sortie du multiplexeur est fixée égale à l'entrée 1.
La ligne de retard supplémentaire 13 comporte une cellule mémoire s correspondant à la cellule représentée en figure 4.
Le voteur/détecteur 18 comporte deux multiplexeurs 23, 23' et un voteur 24.
Le voteur 24 reçoit 3 entrées. Ces 3 entrées sont les sorties de d' et des multiplexeurs 23, 23'. Le voteur 24 compare les trois entrées, sélectionne parmi elles la valeur d'entrée majoritaire, cette valeur sélectionnée constituant le signal de sortie so délivré par le bloc mémoire 141. Le voteur 24 compare en outre les sorties de d' et d" et délivre un signal fail=0 si elles sont égales et un signal fail=1 dans le cas contraire.
Un exemple de structure d'un tel voteur 24 est représenté en figure 7, où le signal fail est le résultat d'une comparaison entre a et b, et so est le résultat du vote majoritaire effectué sur les entrées a, b et c.
Mode n=3
En mode n=3 (redondance d'ordre 3), en fonctionnement normal (i.e., sans le comportement de tous les blocs mémoires est décrit par les équations suivantes V/' entier non nul, s/ , = = d'i+2 = d"i+3 = s,+4 = so ,+3 (2)
Les signaux d'entrée et de sortie suréchantillonnés du circuit satisfont les équations {1), à savoir :
coi = (p(cii) cii = pii ® SOÎ coi = poi ® sii (3)
Le flux de bits d'entrée d'ori ine PI est suréchantillonné 3 fois :
Le signal de contrôle modeS est égal à 0.
A partir des équations (2), (3) et (4), il découle que le flux de bits de sortie de la partie combinatoire co après la transformation 100 du circuit est le flux de sortie CO du circuit original suréchantillonné trois fois :
COîi-2 = COîi-l = COîi = COi
Dans ce mode de fonctionnement, les trois cellules d, d', d" ont un contenu égal tous les (3/'-2) cycles, soit : d3j_2 = d'3j_2 = d"3j_2 .
A chaque cycle, un vote du voteur/détecteur 18 sélectionnant la valeur majoritaire parmi les contenus des trois cellules d, d', d" masque ainsi une faute. Et seul le résultat de ce vote est fourni via so à la partie combinatoire du circuit.
Au premier cycle suivant chaque cycle spécifique où les trois cellules d, d', d" ont un contenu égal, la cellule s mémorise la valeur redondante stockée au cycle spécifique dans d", puis au deuxième cycle suivant, la cellule s mémorise la valeur redondante stockée au cycle spécifique dans d', soit : s3j _ = d"3j_2 et s3j = d'3j_2 , ce qui permet de garder le niveau de redondance nécessaire dans le bloc mémoire.
Le vote au cycle spécifique 3/'-2 est réalisé sur les contenus des cellules d, d' et d" et le vote est réalisé à la place sur le contenu des cellules d', d" et s les deux cycles suivants, sélectionnant la valeur majoritaire parmi ces trois contenus. Cette fonctionnalité est mise en œuvre à l'aide du signal de commande fetchA émis par le bloc de contrôle 15 : fetchA=1 à chaque cycle 3Ί-2 (i.e. sortie du multiplexeur 23 est fixée égale à l'entrée 1 du multiplexeur 23) et fetchA=0 les cycles 3Ί-1 et 3/ (i.e. sortie du multiplexeur 23 est fixée égale à l'entrée 0 du multiplexeur 23).
Supposons qu'au cycle 3/'-2, d, d' et d" comportent une valeur correcte redondante a ; le vote a lieu sur (a, a, a) stocké dans {d, d', d") ; le vote au cycle 3Ί-1 aura lieu sur (a, a, a) stocké dans (d d", s), d contenant alors la prochaine valeur du bit sur le flux initial, appelons-le b ; et au cycle 3i, le vote a lieu sur (b, a, a) stocké dans (cf, d", s), d et d' contenant alors chacun la valeur b. Ainsi si d" est corrompu à ce cycle 3/, le vote peut retourner une valeur erronée qui sera propagée au bloc suivant. Mais cette valeur erronée étant précédée de deux valeurs correctes, elle sera corrigée au prochain cycle dans le bloc suivant (un SET supplémentaire ne pouvant survenir alors selon le modèle de faute considéré).
Mode n=2
En mode n=2 (redondance d'ordre 2), en fonctionnement normal (i.e., sans faute), le comportement de tous les blocs est décrit par les égalités suivantes :
V/' entier non nul, sii = dm = d'i+2 = d"i+3 = si+4 = soi+2
Pour fixer la sortie du multiplexeur 20 égale à l'entrée 7 du multiplexeur 20, le signal de control modeS est donc fixé à 7 par le bloc de contrôle 15 dans ce mode.
Le signal fetchA est fixé égal à 1.
La cellule s ne participa pas aux décisions.
En mode n=2, le flux d'entrée du circuit est suréchantillonné deux fois : p/ 2 = pi 21 = Pl >
Le flux de bits de sortie de la partie combinatoire co après la transformation 100 du circuit est le flux de sortie CO du circuit original suréchantillonné deux fois :
iétés de détection sont basées sur l'égalité suivante : V/' entier non nul,
Une nouvelle valeur a sur si est fournie à d et d', puis au cycle suivant est propagée à d" tandis qu'une donnée redondante de valeur a est à nouveau fournie sur si à d et d'.
La détection d'erreur est réalisée par le voteur/détecteur 18 en comparant d' et d" chaque (2i-1)ème cycle, puisqu'en l'absence de faute, leur contenu devrait être égal d'après l'équation (5). Si leur contenu n'est pas égal, un signal fail=1 est émis.
so est le résultat du vote (sélectionnant la valeur majoritaire) sur d, d', d" à chaque cycle.
Un SET sur si peut corrompre à la fois d et d' et le vote ne masquera pas cette faute. Mais si un SEU a lieu sur l'une des trois cellules d, d', d" lors d'un cycle impair, il sera masqué par le vote. Mode n=1
En mode n=1 (pas de redondance), en fonctionnement normal (i.e. sans faute), le comportement de chaque bloc de mémoire est décrit par les équations suivantes :
V/' entier non nul, sii = di+i = d'i+i = d"i+2 = si+3 = soi+i (6)
Pour fixer la sortie du multiplexeur 20 égale à l'entrée 7 du multiplexeur 20, le signal de control modeS est donc fixé à 7 par le bloc de contrôle 15 dans ce mode.
Le signal fetchA est fixé égal à 1.
En mode n=1, le flux d'entrée du circuit n'est pas suréchantillonné : p/' , = PI , . Le flux de bits de sortie de la partie combinatoire co après la transformation 100 du circuit est le flux de sortie CO du circuit original : co, = CO, . Dans ce mode, le circuit ne dispose pas de propriété de détection de faute, ni de masquage de faute.
Les signaux de contrôle correspondants sont fetchA=1 et modeS=1.
D'après l'équation (6), en l'absence de faute, d égale d' à chaque cycle d'horloge. Par conséquent, le vote par le voteur/détecteur 18 retourne la valeur de d (et d à chaque cycle. Formellement co, = c ,+i = o",+i = d"i+2 = c/',+i . Si d et/ou c/' sont corrompues alors le vote sur {d, d', d"} peut retourner une valeur erronée (sans mettre le signal fail à 1). C'est pourquoi ce mode ne masque ni ne détecte les fautes.
La redondance temporelle dynamique triple selon l'invention permet de masquer les SETs du modèle SET(1,K) pour tout K supérieur à 4 cycles.
Mécanisme d'enregistrement avec retour arrière
Suivant un autre aspect de l'invention qui peut être mis en œuvre indépendamment de la redondance temporelle dynamique exposée précédemment, l'outil 1 met en œuvre une étape de transformation automatique 101 du design du circuit pour obtenir un circuit doté d'un mécanisme d'enregistrement de l'état du circuit, cet enregistrement étant déclenché par un signal de commande nommé save, et doté en outre d'un mécanisme de retour arrière de l'état du circuit dans l'état ainsi enregistré, ce retour arrière étant déclenché ultérieurement par un signal de commande nommé rollBack.
Pour ce faire, dans une étape de transformation 101, l'outil 1 remplace chaque cellule mémoire 13 d'entrée si, de sortie so et prévue dans le circuit d'origine représenté en figure 1, par un bloc mémoire 30 d'entrée si et de sortie so comme représenté en figure 8, et ajoute en outre un bloc de contrôle qui génère des signaux de contrôle save et rollBack.
Le bloc mémoire 30 comporte une cellule mémoire 13 recevant sur son entrée D un signal si, délivrant sur sa sortie Q un signal à l'entrée 0 d'un multiplexeur mux. Le bloc mémoire 30 comporte en outre un bloc d'enregistrement 29 adapté pour enregistrer le signal si qui lui est fourni en entrée quand un signal save égal à 1 lui est adressé. Le signal si ainsi enregistré par le bloc d'enregistrement est fourni en entrée 1 du multiplexeur mux.
Le bloc d'enregistrement 29, comporte, dans le cas présent, une cellule mémoire 31, nommée copy. La cellule mémoire 31 stocke, quand un signal save égal à 1 lui est fourni sur son entrée E (enable), le signal si qui lui est fourni sur son entrée D, en parallèle de sa fourniture sur l'entrée D de la cellule 13. Quand save est égal à 0, le signal si n'est pas mémorisé dans la cellule mémoire copy 31.
La sortie Q de la cellule copy 31 est fournie en entrée 1 du multiplexeur mux.
Le multiplexeur mux délivre en sa sortie le signal so. Le signal so est égal à l'entrée 0 du multiplexeur lorsque rollBack est égal à 0 et est égal à l'entrée 1 du multiplexeur 31 lorsque rollBack est égal à 1.
Ainsi, tant que rollBack est égal à 0, la sortie so est égale au contenu de la cellule 13. Quand rollBack devient égal à 1, c'est le contenu de la cellule copy, correspondant à la dernière mise à 1 du signal save, qui est fourni en sortie so.
Un même signal save à 1 fourni au cycle / à l'ensemble (ou à un sous-ensemble) des blocs mémoires 30 du circuit permet d'enregistrer dans les cellules copy 31 l'état courant des cellules 13 du circuit au cycle /'. Cet état reste mémorisé tant qu'un nouvel signal save à 1 n'est pas fourni.
Combinaison de la redondance temporelle dynamique double et de l'enregistrement avec retour arrière
Dans un mode de réalisation de l'invention considéré à présent, les aspects de redondance temporelle dynamique double et d'enregistrement avec retour arrière sont combinés.
La valeur de N est choisie égale à 2, le fonctionnement du circuit peut basculer entre les modes de redondance temporelle d'ordre n=1 et n=2.
Un tel circuit est adapté pour masquer des erreurs en utilisant seulement une redondance temporelle de niveau 2 au lieu d'une redondance temporelle de niveau 3. Pour ce faire, dans une étape de transformation 102, l'outil 1 remplace chaque cellule mémoire 13, d'entrée si et de sortie so, prévue dans le circuit d'origine représenté en figure 1, par un bloc mémoire 40, d'entrée si et de sortie so comme représenté en figure 9, et ajoute en outre un bloc de contrôle 15 qui génère des signaux de contrôle save et rollBack. Une vue du circuit transformé résultant de cette transformation est représentée en figure 10.
Une telle transformation implique la mise en œuvre de moyens de suréchantillonnage double des entrées primaires du circuit qui, dans le mode de réalisation considéré, sont toujours activées indépendamment de la valeur de l'ordre de redondance actif, l'ajout de mémoires tampons d'entrée à tous les entrées primaires PI du circuit initial, et enfin l'ajout de mémoires tampons de sortie à tous les sorties primaires PO du circuit initial.
<p(c/') est calculé deux fois, les résultats sont comparés et si une erreur est détectée, <p(c/') est calculée une troisième fois, grâce au contenu des mémoires tampons d'entrée.
Le flux d'entrée, suréchantillonné deux fois, vérifie : pi2l = pi2i = PI , .
Le bloc mémoire 40 comporte ainsi les cellules d et d' disposées en série pour sauvegarder des données redondantes. Il comporte en outre un comparateur EQ comparant le contenu des cellules d et d' avec émission d'un signal fail indiquant le résultat de la comparaison.
Le bloc mémoire 40 comporte en outre un bloc d'enregistrement 29 adapté pour mémoriser le signal si qui lui est fourni en entrée quand le signal de contrôle save est mis à 1. La sortie du bloc d'enregistrement est fournie à l'entrée 1 du multiplexeur muxA, tandis que la sortie de la cellule d est fournie sur l'entrée 0 du multiplexeur muxA. Le multiplexeur muxA est piloté par le signal save également.
Dans le mode de réalisation considéré, le bloc d'enregistrement 29 comporte les cellules r et r' disposées en série, le signal si est fourni en entrée D de la cellule r, la sortie Q de la cellule r est fournie en entrée D de la cellule r', la sortie Q de la cellule r' est la sortie du bloc d'enregistrement 29. La mémorisation par les cellules r et r' du signal qui leur est fourni sur leur entrée D n'a lieu que lorsque le signal de commande save fourni sur leur entrée £ est mis à 1.
Un multiplexeur muxB reçoit sur son entrée 1 la sortie mu du multiplexeur muxA et reçoit sur son entrée 0 la sortie de la cellule d'. Le multiplexeur muxB est piloté par le signal de contrôle rollBack. Quand rollBack=0 (similaire au cas modeS=1 dans la redondance dynamique double), la sortie so du multiplexeur muxB est égale à son entrée 0 et quand rollBack=1, la sortie so du multiplexeur muxB est égale à son entrée 1.
Quand le signal de contrôle rollback=0 (similaire au cas modeS=1 dans la redondance dynamique double), le mode de fonctionnement est une redondance temporelle d'ordre 2 et la sortie du bloc mémoire so est égale au contenu de la cellule d'.
Quand le signal de contrôle rollback=1 (ce qui équivaut au signal modeS=0), le mode de fonctionnement est sans redondance temporelle (i.e., d'ordre 1). La sortie du bloc mémoire so est égale au contenu de la cellule d quand save est égal à 0 et la sortie du bloc mémoire so est égale à la sortie du bloc d'enregistrement, i.e., dans le mode de réalisation considéré au contenu de la cellule r' quand save est égal à 1.
Le bloc d'enregistrement 29 permet de mémoriser la valeur de si pendant 4 cycles d'horloge et de permettre au circuit de se repositionner sur cette valeur mémorisée en cas de détection d'erreur. Comme indiqué plus haut, une mémoire tampon d'entrée 50 est en outre insérée après chaque entrée primaire PI du circuit d'origine pour mémoriser les deux derniers bits du flux d'entrée (chaque entrée correspond à une composante du vecteur pi ). Cette mémoire tampon d'entrée 50, représentée en figure 11 dans un mode de réalisation, est implémentée par un pipeline de deux cellules mémoires b et b', pi désigne l'entrée primaire du circuit original. Le signal de contrôle rB est mis à 1 par le bloc de contrôle pendant la phase de récupération, après une détection d'erreur réalisée par le comparateur EQ pendant un cycle impair. Le contenu des cellules b et b' n'est utilisé que lors de la phase de récupération pour ré-exécuter les deux derniers cycles. Ces bits sont fournis à la partie combinatoire 11 du circuit à la place des bits du flux d'entrée. Les cellules b et b' servent aussi à stocker les entrées qui sont fournies pendant ces deux cycles. Pendant la phase de récupération, le vecteur ci comprend ainsi le vecteur p/' qui vient des mémoires tampons d'entrée et le vecteur so en provenance des blocs de mémoire repositionnés. Si l'erreur est détectée au cycle /', alors le retour arrière est réalisé au cycle i+1 et le vecteur ρ/',. _1 ® so, -i est fourni à la partie combinatoire, soit exactement le vecteur d'entrée déjà fourni deux cycles auparavant.
De pi 2j_ = pi 2i = PI , , il s'ensuit que b et b' représentent deux bits suréchantillonnés identiques (respectivement distincts) à chaque cycle impair (respectivement pair) : i> 2/-i = b'2i_^ . Puisqu'une faute est détectée au cycle impair, la phase de récupération qui commence un cycle plus tard, va alors lire deux entrées différentes (i.e., pas la même entrée suréchantillonnée) dans b et b', ce qui est pertinent avec le mode sans redondance, i.e., accéléré, mis en œuvre pendant la phase de récupération. Le comportement des mémoires tampons d'entrée est illustré dans les tableaux 7 et 2.
La phase de récupération (mode sans redondance temporelle) perturbe le flux des vecteurs co du circuit par rapport au mode de fonctionnement normal (mode en redondance d'ordre 2). Pour masquer cet effet au niveau des sorties primaires, une mémoire tampon de sortie est insérée avant chaque sortie primaire po (chaque sortie po correspond à une composante du vecteur po ). Une telle mémoire tampon de sortie 60 est représentée dans un mode de réalisation en figure 72. Le signal co provient de la partie combinatoire 77. La mémoire tampon 60 est adaptée pour être tolérante à un SET survenant dans la mémoire tampon 60 ou sur ses sorties. Pour cela, les sorties primaires sont triplées : poA, poB et poC sont les sorties primaires du circuit transformé correspondant à la sortie primaire po du circuit initial.
Les mémoires tampons de sortie garantissent qu'au moins deux des sorties triplées sont correctes à chaque cycle pair. Le circuit environnant peut ainsi lire ces sorties au cycle pair et procéder à un vote sur ces sorties lues pour masquer tout SET. Dans des modes de réalisation différents, d'autres blocs de sortie (par exemple, ignorant les fautes aux sorties) ou d'autres spécifications d'interface pourraient être utilisées.
Le comportement des mémoires tampons de sortie pendant la phase de récupération est également illustré dans le tableau 2.
Les tableaux 7 et 2 ci-dessous illustrent un cas de détection de faute au cycle /'. Dans les tableaux 7 et 2, un vecteur v corrompu par un nombre de bits corrompus quelconque est noté†v .
Dans les tableaux grisés 7a et 2b sont indiquées les valeurs des signaux qui auraient été obtenues en l'absence de détection de faute. clk pî b V d 7' r r' fail save rollBack
1-3 PÎi-3 pîi-4 PÎi-5 PÎi-3 » SI -S sîi-4 SI -S sîi-5 sîi-7 ? 1 0
1-2 pîi-2 PÎi-3 PÎi-4 Ρΐ;- θ sîi-4 sîi-3 sîi-4 sîi-3 sîi-5 0 0 0
1-1 pîi-1 pîi-2 PÎi-3 pîi-1 ® sîi-3 sîi-2 SÎi-3 sîi-3 sîi-5 ? 1 0 i pî; pîi-1 Pîi-2 pîB t sîi-2 fsîi-l fsii-2 fsîi-l SÎi-3 1 0 0 i+i pîi+1 pî; pîi-1 pîi-1 sîi-3 tsîi fsîi-l fsîi-l SÎi-3 ? 1 1 i+2 pîi+2 pîi+1 pît pîi+i ® sîi-1 sîi-2 tsîi sîi-2 fsîi-l ? 0 1 i+3 pîi+3 pîi+2 pîi+1 PÎi+3 e ~sîi+l sîi+i SÎi-2 sîi-2 fsîi-l ? 0 1 i+4 pîi+4 pîi+3 Pîi+2 PÎi+4e ~sîi+3 sîi+3 sîi+i sîi-2 fsîi-l ? 0 1 i+5 PÎi+5 pîi+4 Pîi+3 PÎi+5e ~sîi+3 SÎj+4 SÎi+3 sîi-i fsîi-l ? 1 0 i+e pîi+e PÎi+5 Pîi+4 pîi+e si i+4 Sli+5 SÎj+4 sîi+5 sîi-2 0 0 0 i+7 PÎi+7 pîi+e PÎi+5 PÎi'-7 ~SÎi'+5 SÎi+6 Sli+5 sîi+5 sîi-2 ? 1 0 i+8 pîi+8 PÎi+7 pîi+e PÎ i+8 « si i+e Sli+7 SÎi+6 sîi+7 sîi+5 0 0 0
Tableau 1
Tableau 1 a
Les sigles† et correspondent à deux cas exclusifs de fautes (qui ne peuvent arriver en même temps).
i pîi ignore 0 0 0 0 0
Tableau 2
Tableau 2b
Les sigles† et correspondent à deux cas de fautes (qui ne peuvent arriver en même temps). ( <- ) indique une substitution de données réalisée par les multiplexeurs muxAs, muxBs, muxCs, muxDs d'une mémoire tampon de sortie 60.
Les signaux de contrôle save, rollBack, rB et subst sont générés par le bloc de contrôle 15 pour mettre en œuvre la fonctionnalité du circuit transformé pendant le mode de fonctionnement normal et la phase de récupération. L'entrée du bloc de contrôle 15 est le signal fail de détection de faute (des signaux fail disjoints proviennent des différents blocs mémoire 14 et des mémoires tampons de sortie 60) La figure 13 représente la machine à états finis (FSM) du bloc de contrôle 15 dans un mode de réalisation de l'invention. La notation a b indique ici que le changement d'état est réalisé si la condition est a=b est vraie, par exemple si un signal fail est détecté égal à
0 dans le cas fail 1 0. Le signe = indique l'action d'affecter une valeur à un signal, par exemple si un signal fail est détecté égal à 1, on affecte la valeur 1 aux signaux rB, save, rollBack et subst pendant le cycle suivant. Sur cette figure, tous les signaux de commande émis par le bloc de contrôle 15 et non mentionnés lors d'un changement d'état sont mis à 0. Les états norml et norm2 correspondent au mode de fonctionnement normal, qui donne lieu à la mise à 1 alternée du signal save. Quand une faute est détectée (réception d'un signal fail égal à 1), la FSM entre en phase de récupération pour 4 cycles correspondant aux états successifs « error », « recovl », « recov2 », « recov3 ».
Le bloc de contrôle 15 lui-même n'est pas protégé contre les SETs par redondance temporelle. Dans un mode de réalisation, il est protégé par TMR. Les valeurs prises par les signaux de commande dans les différents états sont indiquées dans les tableaux 1 et 2.
Mode de fonctionnement normal
Tant qu'aucune faute n'est détectée aux cycles impairs, le mode de fonctionnement du circuit est le mode de fonctionnement normal (mode en redondance d'ordre 2).
Pendant ce mode, la valeur du signal de commande rollBack est toujours positionnée à 0 par le bloc de contrôle 15.
Le signal save est positionné à 1 à chaque cycle pair : save2j^ = 0 et save2j = 1 .
Comme save est le signal (signal « enable ») de déclenchement de mémorisation des cellules r et r', il est mis en place un retard de quatre cycles entre si et r' en mode de fonctionnement normal.
Le comportement interne de chaque bloc mémoire 40 en mode de fonctionnement normal est alors décrit par les équations suivantes (7) :
roll = 0
save2i_l = 0 , save2j = 1 .
Comme vu précédemment, la comparaison de d et d' n'est pertinente que lors des cycles impairs, les cellules d et d' comportant alors, sauf faute, des données redondantes. Le circuit transformé vérifie les mêmes équations (1 ) que le circuit d'origine :
coi = (p(cii) c = pii Θ soi coi = poi Θ su (8)
Des équations (7) et (8) et de l'égalité pi2i_ = pi2i = Pli dérivent deux propriétés du mode fonctionnement normal.
Propriété 1 : tout d'abord le flux de bits de sortie co de la partie combinatoire 11 après la transformation du circuit est un suréchantillonnage double du flux de bits CO du circuit original. Formellement : cou i = cou = COi pour tout /' entier naturel.
Propri en outre, à chaque cycle impair, les sorties des cellules d et d' sont égales : du-ι pour tout /' entier naturel.
La détection d'erreur correspond à une détermination d'une violation de cette propriété 2 par le comparateur EQ.
Si, lors d'un cycle impair, les contenus des cellules d et d' diffèrent, une erreur est ainsi détectée et le signal fail est mis à 1 (fail2j-i=1). Le circuit doit alors effectuer un retour arrière à l'état correct enregistré dans r' et recalculer le pas précédent. Le retour arrière est réalisé en propageant le contenu de la cellule r' à so .
Il découle des équations (17) que r'u-i = , ce qui signifie qu'au moment d'une détection de faute (et au cycle d'horloge qui suit), le contenu de la cellule mémoire de récupération /-' est égal à la valeur qu'avait le signal d'entrée 3 cycles auparavant. Phase de récupération
Quand une faute est détectée, le circuit effectue un retour arrière lors du cycle suivant la détection de faute, puis effectue trois cycles consécutifs pendant lesquels la redondance temporelle d'ordre 2 dans les blocs mémoires est remplacée par un mode sans redondance temporelle et par l'application par le bloc de contrôle 15 de la séquence des signaux de commande save, rollBack, subst et rB représentée en figure 13 entre l'état « error » jusqu'à revenir à l'état « norm2 ».
Le tableau 1 contient les valeurs des vecteurs de bits dans le circuit transformé cycle par cycle quand une faute est détectée au cycle /'. Le comportement du circuit en mode normal (i.e., en l'absence de faute) est indiqué dans le tableau 1 a.
En mode normal, le vecteur ci au cycle /' est tel cU = pi( ® soi = pii ® sii-2 . Le principe de retour arrière est que les blocs de mémoire 40 ré-injectent le dernier état sauvé dans les cellules r' (vecteur si ) tandis que les mémoires tampons d'entrée réinjectent les entrées primaires correspondantes ( vecteur pi ) qui y étaient mémorisées.
Au cycle (i+1) qui suit la détection d'erreur du cycle /', la phase de récupération débute et l'état correct mémorisé dans la cellule r' est propagé à travers le signal so. En conséquence, soi+ι = = sii-3 à la place de S A attendu dans le mode de fonctionnement normal. Par conséquent, la seconde composante de c//+i est sus . Le vecteur d'entrée primaire est aussi remplacé par le vecteur mémorisé dans la mémoire tampon d'entrée : ainsi au cycle i+1, p/' ,+1 est remplacé par pi l On rappelle que, pendant la phase de récupération, le circuit opère avec le débit du circuit d'origine, qui est deux fois plus rapide que dans le mode normal. En particulier, pendant les cycles i+2, i+3 et i+4, le contenu de la cellule mémoire d est propagé directement à travers les sorties so de chaque bloc mémoire 40, en court-circuitant les cellules mémoires d'. Ceci est mis en œuvre en fixant le signal de commande rollBack à 1, en gardant à 0 le signal save qui commande les multiplexeurs muxA et muxB de façon appropriée. Ceci est sans conséquence puisque le modèle de faute SET(1,K) garantit qu'aucune faute additionnelle ne survient pendant les K cycles après un SET.
Au cycle i+2, la seconde composante de c +2 est SUA (s -2 , qui est identique à sii-i , a été sautée). De façon similaire, le vecteur d'entrée primaire est remplacé par p/ i+1 puisque, dans les mémoires tampons d'entrée, b'i+2 = pi , et p/ i+1 = p/' , . Il s'ensuit que C//+1 = pi ® si i-3 et ci i+2 = pi ,+1 ® si ,-1 .
Tous les signaux corrompus ont disparu du circuit dans les 6 cycles suivant la détection d'erreur. Le circuit complet retourne dans un état correct après au plus 8 cycles après la détection. Dans d'autres modes de réalisation d'un circuit transformé par combinaison des aspects de redondance temporelle dynamique double et d'enregistrement avec retour arrière sont combinés, une seule cellule r' est utilisée à la place des cellules r et r'. Le signal de commande save est mis à 1 tous les deux cycles. La détection d'erreur et la fonctionnalité de récupération demeurent moyennant un amoindrissement de la tolérance aux fautes. Un SET sur le fil si , par exemple causée par un SET dans la logique combinatoire, peut dans ce cas corrompre simultanément r' et d si save=1. L'erreur est détectée au cycle suivant et la récupération a lieu en utilisant l'information corrompue de la cellule r'. La cellule r joue en réalité un rôle d'isolation qui empêche une ré-écriture du bit de récupération jusqu'à ce que cette information ait été vérifiée par le comparateur EQ.
Dans des modes de réalisation, les architectures des mémoires tampon de sortie sont simplifiées, la fonction principale étant maintenue : mettre en œuvre un retard sur le signal co en mode de fonctionnement normal avec un mécanisme pour propager co à po pendant la phase de récupération.
Un circuit transformé selon ce mode de réalisation de l'invention réalise la propagation du signal à travers la partie combinatoire du circuit deux fois avant la comparaison, avec un retour arrière et une réexécution quand une erreur est détectée. Selon un modèle de faute SET(1, K), aucune erreur ne survenant dans les cycles après la dernière occurrence de faute, le mécanisme de redondance de niveau 2 est alors supprimé et le circuit est accéléré deux fois. Il retourne dans son état correct (Le., l'état du circuit si aucune erreur n'était survenue) après 8 cycles après détection ou 10 cycles après l'occurrence du SET.
Un circuit transformé selon ce mode de réalisation peut également fonctionner en mode accéléré (n=7) lorsque la tolérance aux fautes n'est pas nécessaire.
La figure 14 représente des étapes d'un procédé de fabrication automatisée d'un circuit électronique tolérant aux fautes par redondance temporelle, qui est mis en œuvre dans un mode de réalisation de l'invention.
Ces étapes, par exemple mises en œuvre par un outil de synthèse automatisée de circuits électroniques, sont :
étape 80 de réception d'un design du circuit original au niveau logique ;
étape 90 de choix de la transformation requise et du type de redondance dynamique (niveau de redondance, modes de fonctionnement et propriétés de tolérance aux fautes) ;
étape 700 de transformation des blocs mémoires du circuit original en blocs mémoires pour la mise en œuvre de la redondance dynamique choisie, comprenant :
i/ étape 101 : génération du bloc mémoire ;
ii/ étape 102 : remplacement de chaque cellule mémoire du circuit original par le bloc mémoire généré dans le design du circuit ;
Ni/ étape 103 : génération du bloc de contrôle (et pour la redondance dynamique double avec retour arrière, des mémoires tampons d'entrée et de sortie) ;
iv/ étape 104 : insertion du bloc de contrôle (et dans le cas de redondance dynamique double avec retour arrière, des mémoires tampons d'entrée et de sortie) dans le design du circuit et interconnexions entre le bloc de contrôle et les blocs de mémoire transformés du circuit (et dans le cas de la redondance dynamique double avec retour arrière, avec les mémoires tampons d'entrée et de sortie).
La figure 15 décrit différentes étapes du flot de conception (en anglais « design flow ») de circuits intégrés correspondant à différents niveaux d'abstraction dans un mode de réalisation de l'invention :
étape 201 : synthèse au niveau système, sur la base de spécifications du circuit, comprenant l'allocation ou la répartition entre logiciel et matériel, dont un des résultats est une description haut-niveau et comportementale du circuit ;
étape 202 : synthèse du circuit de haut niveau sur la base de cette description (transformation, planification, sélection de modules), dont un des résultats est une description architecturale, au niveau « Transfert de registres » ou RTL : cette modélisation revient à décrire l'implémentation sous forme d'éléments séquentiels (registres, bascules) et de combinaisons logiques entre les différentes entrées/sorties des éléments séquentiels et des entrées/sorties primaires du circuit :
étape 203 : synthèse logique du circuit en fonction de cette description RTL, qui transforme la description RTL du circuit en une description au niveau logique, en termes de portes logiques (Gâte netlist) : cette étape 203 comprenant les sous-étapes successives suivantes :
fonctions de RTL vers Booléen ;
optimisations indépendantes de la technologie ;
transformation 100 du circuit pour la redondance dynamique selon l'invention ;
mise en correspondance de technologie (« mapping technology ») ;
optimisations dépendantes de la technologie ;
étape 204 : synthèse de masque physique du circuit sur la base de la description logique. Pour des circuits VLSI, cette synthèse comprend la description du circuit au niveau des transistors (placement, routage, distribution d'horloge) et délivre une description du circuit au niveau du masque. Pour des circuits FPGA, cette synthèse comprend la traduction, la topographie (placement, routage) et délivre un fichier de programmation. La transformation 100 apporte les propriétés de tolérance aux fautes au circuit. Dans le mode de réalisation décrit, elle est mise en œuvre après les optimisations indépendantes de la technologie (les propriétés seront donc préservées par les étapes ultérieures) et avant la séparation du flot en technologie VLSI ou technologie FPGA, ce qui permet de l'appliquer conjointement aux deux technologies.

Claims

REVENDICATIONS
1 .- Procédé de fabrication automatisée d'un circuit électronique adapté pour détecter ou masquer des fautes par redondance temporelle,
ledit procédé comprenant une étape mise en œuvre par ordinateur, selon laquelle pour mettre en œuvre une fonction de cellule mémoire du circuit électronique, on insère dans le circuit électronique un bloc mémoire (14) comprenant une chaîne de retard (76) comportant N cellules mémoires en série, N≥2, et un bloc de sélection (18) qui, dans un mode de fonctionnement correspondant à une redondance temporelle d'ordre n1, n1 e [1,N], compare le contenu courant de n1 desdites N cellules mémoires stockant n1 données d'entrée redondantes successivement fournies au bloc mémoire, et
- si n1>2, sélectionne comme donnée de sortie de la fonction de cellule mémoire, le contenu majoritaire des n1 cellules mémoires et optionnellement délivre en outre un signal de faute si les contenus de deux cellules mémoires diffèrent ;
- si n1=2, délivre comme donnée de sortie de la fonction de cellule mémoire, le contenu d'une des deux cellules mémoires et délivre en outre un signal de faute si les contenus des deux cellules mémoires diffèrent ;
- si n1=1, délivre comme donnée de sortie de la fonction de cellule mémoire, le contenu de la cellule mémoire déterminée ;
ledit procédé étant caractérisé en ce qu'on insère en outre un bloc de contrôle du circuit adapté pour émettre des signaux de commande des blocs mémoires, et en ce que le bloc mémoire inséré est adapté pour, en fonction d'un signal de commande de basculement reçu du bloc de contrôle, basculer entre ledit mode de fonctionnement correspondant à une redondance temporelle d'ordre n1 et un autre mode de fonctionnement correspondant à une redondance temporelle d'ordre n2 e [1,N], n2≠n1, dans lequel le bloc de sélection compare le contenu courant de n2 cellules déterminées, parmi lesdites N cellules mémoires, stockant n2 données d'entrée redondantes successivement fournies au bloc mémoire, et :
si n2>2, sélectionne comme donnée de sortie de la fonction de cellule mémoire, le contenu majoritaire desdites n2 cellules mémoires ;
si n2=2, délivre comme donnée de sortie de la fonction de cellule mémoire, le contenu d'une des deux cellules mémoires et délivre un signal de faute si les contenus des deux cellules mémoires diffèrent ;
si n2=1, délivre comme donnée de sortie de la fonction de cellule mémoire, le contenu de la cellule mémoire déterminée.
2. - Procédé de fabrication automatisée d'un circuit selon la revendication 1 , selon lequel le bloc mémoire inséré comporte en outre, quand N>2, un bloc de retard supplémentaire
Λ/ - 1
(17) disposé en sortie de la chaîne de retard et comportant au moins E[ ] cellules mémoires,
en mode de fonctionnement correspondant à une redondance temporelle d'ordre n, n>2, tous les n cycles, le bloc de sélection sélectionne comme donnée de sortie de la fonction de cellule mémoire, le contenu majoritaire des n cellules mémoires de la chaîne de retard, et chaque me cycle suivant lesdits n cycles, avec 1≤i<n, sélectionne comme donnée de sortie de la fonction de cellule mémoire, le contenu majoritaire d'un ensemble de dernières cellules de la chaîne de retard et de cellules du bloc de retard supplémentaire, lesdites cellules de l'ensemble stockant des données d'entrée redondantes ayant été successivement fournies au bloc mémoire.
3. - Procédé de fabrication automatisée d'un circuit selon la revendication 1 ou 2, selon lequel N=3, n1=1, n1=2, ou n1=3 et n2, n2≠n1, prend une valeur égale à 1, 2 ou 3 en fonction de la commande de basculement.
4. - Procédé de fabrication automatisée d'un circuit électronique selon la revendication 1 ou 2, selon lequel N=2, n1= 1 ou 2 et n2= 1 ou 2, n2≠n1.
5. - Procédé de fabrication automatisée d'un circuit électronique selon la revendication 4, selon lequel la commande de basculement du mode de fonctionnement selon une redondance temporelle d'ordre 2 vers le mode de fonctionnement selon une redondance temporelle d'ordre 1, et réciproquement, est déclenchée suite à la réception par le bloc de commande d'un signal de faute délivré par un des blocs mémoires (40).
6. - Procédé de fabrication automatisée d'un circuit électronique selon la revendication 4 ou 5,
selon lequel la deuxième cellule (32) de la chaîne de retard (29) mémorise, à chaque cycle d'horloge du circuit, le contenu mémorisé au cycle d'horloge précédent, dans la première cellule (31) de la chaîne de retard,
selon lequel le bloc mémoire inséré (40) comporte en outre une chaîne d'enregistrement (30) adapté pour, sur réception d'un signal de commande d'enregistrement du bloc de contrôle, mémoriser la valeur de signal d'entrée du bloc mémoire également fournie en parallèle à la première cellule de la chaîne de retard, selon lequel en mode de fonctionnement selon une redondance d'ordre 2, le signal de commande d'enregistrement est émis tous les deux cycles de sorte que, lorsque des données redondantes mémorisées dans les deux cellules mémoires de la chaîne de retard sont comparées par le bloc de sélection, la dernière cellule de la chaîne d'enregistrement comporte en mémoire les données qui étaient mémorisées deux cycles auparavant dans chacune des deux cellules mémoires de la chaîne de retard.
7. - Procédé de fabrication automatisée d'un circuit électronique selon la revendication 6, selon lequel suite à la réception par le bloc de commande d'un signal de faute délivré par un bloc mémoire (40) signalant que des données redondantes mémorisées dans les deux cellules mémoires de la chaîne de retard diffèrent, le bloc de commande fournit au bloc de mémoire une commande de retour arrière suite à laquelle le bloc mémoire délivre comme donnée de sortie de la fonction de cellule mémoire, le contenu courant de la dernière cellule de la chaîne d'enregistrement, ledit procédé permettant ainsi de masquer une erreur avec seulement une redondance double au lieu d'une redondance triple.
8. - Procédé de fabrication automatisée d'un circuit électronique selon l'une des revendications 4 à 7, selon lequel on insère en outre à l'entrée du circuit électronique un bloc d'entrée (50) du circuit recevant la donnée extérieure courante à traiter suréchantillonnée deux fois,
le bloc d'entrée, dans le mode de fonctionnement selon une redondance temporelle d'ordre 2, mémorisant la donnée extérieure courante reçue et fournissant en outre simultanément au circuit ladite donnée extérieure courante reçue et, le bloc d'entrée, dans le mode de fonctionnement selon une redondance temporelle d'ordre 1, fournissant au circuit des données extérieures successives non redondantes précédemment mémorisées par le bloc d'entrée pour permettre une troisième exécution de ces données par le circuit ; et
selon lequel on insère en outre à la sortie du circuit électronique un bloc de sortie (60) du circuit recevant la donnée délivrée par le circuit, ledit bloc de sortie, dans le mode de fonctionnement selon une redondance temporelle d'ordre 2, mémorisant les données délivrées par le circuit et appliquant un retard donné avant de les délivrer, et le bloc de sortie, dans le mode de fonctionnement selon une redondance temporelle d'ordre 1, délivrant sans retard les données délivrées par le circuit, dupliquant des données délivrées par le circuit et délivrant les données dupliquées,
le recouvrement de fautes par le circuit étant ainsi masqué vis-à-vis de l'amont du circuit et de l'aval du circuit par lesdits blocs d'entrée et de sortie.
9. - Programme d'ordinateur à installer dans un outil de fabrication automatisée d'un circuit électronique adapté pour détecter ou masquer des fautes par redondance temporelle, ledit programme comportant des instructions pour mettre en œuvre les étapes d'un procédé selon l'une des revendications 1 à 8 lors d'une exécution du programme par des moyens de traitement de l'outil de fabrication automatisé de circuit électronique.
10. - Circuit électronique adapté pour détecter ou masquer des fautes par redondance temporelle, comprenant un ensemble de bloc(s) mémoire(s), chaque bloc mémoire (14) dudit ensemble comprenant une chaîne de retard (76) comportant N cellules mémoires en série, N≥2, et un bloc de sélection (78) qui, dans un mode de fonctionnement correspondant à une redondance temporelle d'ordre n1, n1 e [1,N], compare le contenu courant de n1 desdites N cellules mémoires stockant n1 données d'entrée redondantes successivement fournies au bloc mémoire, et
- si n1>2, sélectionne comme donnée de sortie de la fonction de cellule mémoire, le contenu majoritaire des n1 cellules mémoires et optionnellement délivre en outre un signal de faute si les contenus de deux cellules mémoires diffèrent ;
- si n1=2, délivre comme donnée de sortie de la fonction de cellule mémoire, le contenu d'une des deux cellules mémoires et délivre en outre un signal de faute si les contenus des deux cellules mémoires diffèrent ;
- si n1=1, délivre comme donnée de sortie de la fonction de cellule mémoire, le contenu de la cellule mémoire déterminée ; ledit circuit électronique étant caractérisé en ce qu'il comporte un bloc de contrôle du circuit adapté pour émettre des signaux de commande desdits blocs mémoires, et en ce que chacun desdits blocs mémoires est adapté pour, en fonction d'un signal de commande de basculement reçu du bloc de contrôle, basculer entre ledit mode de fonctionnement correspondant à une redondance temporelle d'ordre n1 et un autre mode de fonctionnement correspondant à une redondance temporelle d'ordre n2 e [1,N], n2≠n1, dans lequel le bloc de sélection compare le contenu courant de n2 cellules déterminées, parmi lesdites N cellules mémoires, stockant n2 données d'entrée redondantes successivement fournies au bloc mémoire, et :
si n2>2, sélectionne comme donnée de sortie de la fonction de cellule mémoire, le contenu majoritaire desdites n2 cellules mémoires ; si n2=2, délivre comme donnée de sortie de la fonction de cellule mémoire, le contenu d'une des deux cellules mémoires et délivre un signal de faute si les contenus des deux cellules mémoires diffèrent ;
si n2=1, délivre comme donnée de sortie de la fonction de cellule mémoire, le contenu de la cellule mémoire déterminée.
.- Circuit électronique selon la revendication 10, dans lequel le bloc mémoire comporte outre, quand N>2, un bloc de retard supplémentaire {17) disposé en sortie de la
Λ/ - 1
chaîne de retard et comportant au moins E[ ] cellules mémoires,
2
en mode de fonctionnement correspondant à une redondance temporelle d'ordre n, n>2, tous les n cycles, le bloc de sélection sélectionne comme donnée de sortie de la fonction de cellule mémoire, le contenu majoritaire des n cellules mémoires de la chaîne de retard, et chaque me cycle suivant lesdits n cycles, avec 1≤i<n, sélectionne comme donnée de sortie de la fonction de cellule mémoire, le contenu majoritaire d'un ensemble de dernières cellules de la chaîne de retard et de cellules du bloc de retard supplémentaire, lesdites cellules de l'ensemble stockant des données d'entrée redondantes ayant été successivement fournies au bloc mémoire. 12.- Circuit électronique selon la revendication 10 ou 1 1 , dans lequel N=3, n1=1, 2, ou 3 et n2, n2≠n1, prend une valeur égale à 1, 2 ou 3 en fonction de la commande de basculement.
13. - Circuit électronique selon la revendication 10 ou 1 1 , dans lequel N=2, n1=1 ou 2 et n2=1 ou 2, n2≠n1
14. - Circuit électronique selon la revendication 13, adapté pour déclencher, suite à la réception par le bloc de commande d'un signal de faute délivré par un des blocs mémoires (40), la commande de basculement du mode de fonctionnement selon une redondance temporelle d'ordre 2 vers le mode de fonctionnement selon une redondance temporelle d'ordre 1, et réciproquement.
15.- Circuit électronique selon la revendication 13 ou 14, dans lequel la deuxième cellule (32) de la chaîne de retard (29) mémorise, à chaque cycle d'horloge du circuit, le contenu mémorisé au cycle d'horloge précédent, dans la première cellule (31) de la chaîne de retard,
chacun desdits blocs mémoires (40) comporte en outre une chaîne d'enregistrement (30) adapté pour, sur réception d'un signal de commande d'enregistrement du bloc de contrôle, mémoriser la valeur de signal d'entrée du bloc mémoire également fournie en parallèle à la première cellule de la chaîne de retard,
en mode de fonctionnement selon une redondance d'ordre 2, le signal de commande d'enregistrement est émis tous les deux cycles de sorte que, lorsque des données redondantes mémorisées dans les deux cellules mémoires de la chaîne de retard sont comparées par le bloc de sélection, la dernière cellule de la chaîne d'enregistrement comporte en mémoire les données qui étaient mémorisées deux cycles auparavant dans chacune des deux cellules mémoires de la chaîne de retard. 16.- Circuit électronique selon la revendication 15, dans lequel suite à la réception par un bloc de commande d'un signal de faute délivré par un bloc mémoire (40) signalant que des données redondantes mémorisées dans les deux cellules mémoires de la chaîne de retard diffèrent, le bloc de commande fournit au bloc de mémoire une commande de retour arrière suite à laquelle le bloc mémoire délivre comme donnée de sortie de la fonction de cellule mémoire, le contenu courant de la dernière cellule de la chaîne d'enregistrement, ledit circuit électronique permettant ainsi de masquer une erreur avec seulement une redondance double au lieu d'une redondance triple.
17.- Circuit électronique selon l'une des revendications 13 à 16, comprenant un bloc d'entrée du circuit recevant la donnée extérieure courante à traiter suréchantillonnée deux fois,
le bloc d'entrée (50), dans le mode de fonctionnement selon une redondance temporelle d'ordre 2, mémorisant la donnée extérieure courante reçue et fournissant en outre simultanément au circuit ladite donnée extérieure courante reçue et, le bloc d'entrée, dans le mode de fonctionnement selon une redondance temporelle d'ordre 1, fournissant au circuit des données extérieures successives non redondantes précédemment mémorisées par le bloc d'entrée pour permettre une troisième exécution de ces données par le circuit ; et
ledit circuit électronique comprenant à la sortie du circuit électronique un bloc de sortie (60) du circuit recevant la donnée délivrée par le circuit, ledit bloc de sortie, dans le mode de fonctionnement selon une redondance temporelle d'ordre 2, mémorisant les données délivrées par le circuit et appliquant un retard donné avant de les délivrer, et le bloc de sortie, dans le mode de fonctionnement selon une redondance temporelle d'ordre 1, délivrant sans retard les données délivrées par le circuit, dupliquant des données délivrées par le circuit et délivrant les données dupliquées,
le recouvrement de fautes par le circuit étant ainsi masqué vis-à-vis de l'amont du circuit et de l'aval du circuit par lesdits blocs d'entrée et de sortie.
EP15753710.1A 2014-06-27 2015-06-24 Procédé de fabrication automatisée d'un circuit électronique adapté pour détecter ou masquer des fautes par redondance temporelle, programme d'ordinateur et circuit électronique associés Withdrawn EP3161691A1 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1456080A FR3023038B1 (fr) 2014-06-27 2014-06-27 Procede de fabrication automatisee d'un circuit electronique adapte pour detecter ou masquer des fautes par redondance temporelle, programme d'ordinateur et circuit electronique associes
PCT/FR2015/051698 WO2015197979A1 (fr) 2014-06-27 2015-06-24 Procédé de fabrication automatisée d'un circuit électronique adapté pour détecter ou masquer des fautes par redondance temporelle, programme d'ordinateur et circuit électronique associés

Publications (1)

Publication Number Publication Date
EP3161691A1 true EP3161691A1 (fr) 2017-05-03

Family

ID=52003907

Family Applications (1)

Application Number Title Priority Date Filing Date
EP15753710.1A Withdrawn EP3161691A1 (fr) 2014-06-27 2015-06-24 Procédé de fabrication automatisée d'un circuit électronique adapté pour détecter ou masquer des fautes par redondance temporelle, programme d'ordinateur et circuit électronique associés

Country Status (4)

Country Link
US (1) US20170294900A1 (fr)
EP (1) EP3161691A1 (fr)
FR (1) FR3023038B1 (fr)
WO (1) WO2015197979A1 (fr)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10325046B2 (en) * 2016-09-20 2019-06-18 Synopsys, Inc. Formal method for clock tree analysis and optimization
US10775433B1 (en) * 2018-04-10 2020-09-15 Flex Logix Technologies, Inc. Programmable/configurable logic circuitry, control circuitry and method of dynamic context switching
CN111310246B (zh) * 2020-03-23 2023-06-27 能科科技股份有限公司 高压动态无功补偿装置安全保护系统
US11985226B2 (en) * 2020-12-23 2024-05-14 Intel Corporation Efficient quantum-attack resistant functional-safe building block for key encapsulation and digital signature

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7093204B2 (en) 2003-04-04 2006-08-15 Synplicity, Inc. Method and apparatus for automated synthesis of multi-channel circuits
US8191021B2 (en) * 2008-01-28 2012-05-29 Actel Corporation Single event transient mitigation and measurement in integrated circuits
US8296604B1 (en) * 2009-10-12 2012-10-23 Xilinx, Inc. Method of and circuit for providing temporal redundancy for a hardware circuit
JP5421152B2 (ja) * 2010-03-08 2014-02-19 ルネサスエレクトロニクス株式会社 半導体集積回路
US9075111B2 (en) * 2013-10-07 2015-07-07 King Fahd University Of Petroleum And Minerals Generalized modular redundancy fault tolerance method for combinational circuits

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
None *
See also references of WO2015197979A1 *

Also Published As

Publication number Publication date
FR3023038B1 (fr) 2016-07-22
US20170294900A1 (en) 2017-10-12
FR3023038A1 (fr) 2016-01-01
WO2015197979A1 (fr) 2015-12-30

Similar Documents

Publication Publication Date Title
EP3161691A1 (fr) Procédé de fabrication automatisée d&#39;un circuit électronique adapté pour détecter ou masquer des fautes par redondance temporelle, programme d&#39;ordinateur et circuit électronique associés
EP2983156B1 (fr) Système et procédé de protection de circuit
FR2964482A1 (fr) Procede de test en ligne des etages de pipeline temporairement non utilises et son dispositif associe
US6910173B2 (en) Word voter for redundant systems
JP2006309643A (ja) 遅延計算装置
EP3392773B1 (fr) Circuit integre numerique protege contre les erreurs transitoires
FR2888014A1 (fr) Procede et dispositif pour determiner l&#39;emplacement de defauts de collage dans des chaines de cellules utilisant des chaines de test
WO2015197813A1 (fr) Procédé de gestion du fonctionnement d&#39;un circuit redondant à vote majoritaire et dispositif associé
EP1417582B1 (fr) Ensemble de circuits electroniques comportant des moyens de decontamination de parties contaminees par des erreurs
WO2003014931A2 (fr) Ensemble de circuits electroniques comportant au moins une memoire avec des moyens de correction d&#39;erreur
EP3427383B1 (fr) Communications asynchrones résistant aux rayonnements
Sheikh et al. Double modular redundancy (dmr) based fault tolerance technique for combinational circuits
FR2655748A1 (fr) Circuit decaleur avec generateur de bits de parite.
CA2892502C (fr) Procede de durcissement logique par partitionnement d&#39;un circuit electronique
Ruano et al. Automatic insertion of selective TMR for SEU mitigation
Kourfali et al. Superimposed in-circuit fault mitigation for dynamically reconfigurable fpgas
Suresh et al. Optimised fault tolerant core-based ASIC design for SRAM
EP4137945A1 (fr) Méthode de protection d&#39;un circuit intégré numérique reconfigurable contre les erreurs réversibles
Pratt Analysis and Mitigation of SEU-induced Noise in FPGA-based DSP Systems
Panhofer et al. Self-healing circuits for space-applications
Chipana et al. SET susceptibility analysis in buffered tree clock distribution networks
EP1340148B1 (fr) Dispositif et procede de detection et correction d&#39;erreurs memoire dans un systeme electronique
NAVINER Conception robuste de circuits numériques à technologie nanométrique
Marques et al. A method for efficient implementation of reliable processors
FR3028066A1 (fr) Procede et dispositif de tolerance aux fautes sur des composants electroniques

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 20170110

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR

AX Request for extension of the european patent

Extension state: BA ME

DAV Request for validation of the european patent (deleted)
DAX Request for extension of the european patent (deleted)
RAP1 Party data changed (applicant data changed or rights of an application transferred)

Owner name: INRIA - INSTITUT NATIONAL DE RECHERCHE EN INFORMAT

Owner name: UNIVERSITE GRENOBLE ALPES

17Q First examination report despatched

Effective date: 20171113

GRAP Despatch of communication of intention to grant a patent

Free format text: ORIGINAL CODE: EPIDOSNIGR1

RIC1 Information provided on ipc code assigned before grant

Ipc: G06F 30/00 20200101AFI20200114BHEP

Ipc: H03K 3/037 20060101ALI20200114BHEP

INTG Intention to grant announced

Effective date: 20200205

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN

18D Application deemed to be withdrawn

Effective date: 20200616