WO2003015282A2 - Ensemble de circuits electroniques comportant des moyens de decontamination de parties contaminees par des erreurs - Google Patents

Ensemble de circuits electroniques comportant des moyens de decontamination de parties contaminees par des erreurs Download PDF

Info

Publication number
WO2003015282A2
WO2003015282A2 PCT/FR2002/002788 FR0202788W WO03015282A2 WO 2003015282 A2 WO2003015282 A2 WO 2003015282A2 FR 0202788 W FR0202788 W FR 0202788W WO 03015282 A2 WO03015282 A2 WO 03015282A2
Authority
WO
WIPO (PCT)
Prior art keywords
cycles
error
during
backup
flip
Prior art date
Application number
PCT/FR2002/002788
Other languages
English (en)
Other versions
WO2003015282A3 (fr
Inventor
Michel Nicolaidis
Original Assignee
Iroc Technologies
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 Iroc Technologies filed Critical Iroc Technologies
Priority to DE60219324T priority Critical patent/DE60219324D1/de
Priority to EP02794621A priority patent/EP1417582B1/fr
Priority to US10/485,700 priority patent/US7380165B2/en
Priority to AU2002355589A priority patent/AU2002355589A1/en
Publication of WO2003015282A2 publication Critical patent/WO2003015282A2/fr
Publication of WO2003015282A3 publication Critical patent/WO2003015282A3/fr

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline, look ahead using instruction pipelines
    • G06F9/3869Implementation aspects, e.g. pipeline latches; pipeline synchronisation and clocking
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1405Saving, restoring, recovering or retrying at machine instruction level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3861Recovery, e.g. branch miss-prediction, exception handling

Definitions

  • the invention relates to a set of electronic circuits comprising a plurality of blocks connected to each other, means for detecting an error in the data supplied by at least one of the blocks and decontamination means.
  • an error detection mechanism can be used and, if an error is detected, operations can be resumed from a past state of the system. carefully saved.
  • these recoveries are made from the overall state of the system, which care has been taken to save at fairly large intervals of time using software procedures. We must then store large amounts of information representing the overall state of the system.
  • This backup has the advantage of not requiring a particular design of the various parts of the system, in particular of a processor, but requires large material resources, in particular in memory.
  • the backup procedure is long and therefore cannot be performed very frequently, as it significantly affects the computing capacity of the system. Thus, most often, a recovery is carried out from a distant past state and its duration is all the greater.
  • this technique requires the development of a specific software in order to manage this procedure. It therefore implies a recurrent development cost each time a new system is built.
  • the invention aims to reduce the cost of backup in a set of electronic circuits.
  • the decontamination means comprise at least one circuit for saving and reconstituting the past states of a flip-flop associated with a block of the assembly, the circuit for saving and reconstituting comprising a multiplexer and a buffer register, of the first input, first output type, the multiplexer comprising a first input connected directly to the output of the flip-flop and a second input connected to said output via said buffer register.
  • the assembly includes control means for controlling the buffer register and the multiplexer during a normal operating phase and during a decontamination phase, following the detection of an error, so as to:
  • FIG. 1 represents a part of a set of circuits in which the invention can be used.
  • FIG. 2 represents a particular embodiment of the invention for a set of circuits of the type shown in FIG. 1.
  • FIG. 3 represents another set of circuits in which the invention can be implemented.
  • An electronic assembly to which the invention can be applied comprises a plurality of blocks, connected together.
  • a block is generally made up of a logic circuit, a flip-flop or a memory.
  • a rocker is associated with each block.
  • FIG. 1 schematically illustrates part of a set of circuits in which the invention can be implemented.
  • a first logic circuit 1a is connected in series with a first flip-flop 2a (associated with logic circuit 1a), a second logic circuit
  • a block in the assembly produces an error that propagates in the assembly for q operating cycles before the error is detected and a decontamination procedure initiated.
  • an error due to a transient fault, occurring at a cycle n ° 0 can propagate at most during the following q cycles, until the moment when it was detected and a decontamination phase started. This error is therefore present during q + 1 operating cycles.
  • a phase of decontamination must allow recovery from a cycle which precedes cycle n ° 0 in order to correct the error introduced during this cycle.
  • each set when the blocks likely to produce an error at their output are well identified, it is possible to determine which blocks of the set are likely to be affected by this error.
  • d be the distance between two components of the set corresponding to the number of cycles necessary for data coming from one of the components to be taken into account, directly or indirectly, by the other component.
  • the flip-flops associated with the blocks potentially generating error, as well as the flip-flops located downstream and at a distance less than or equal to q can be affected by the error.
  • the closer one of these flip-flops is to a block likely to produce an error the sooner it will be affected by the error.
  • the smallest distance dmin which separates a scale from the blocks likely to produce an error and which are upstream of the scale, will determine the first cycle (cycle n ° dmin) during which the scale will be affected by the fault.
  • local recovery resources intended to save local and recent states
  • the assembly uses backup and reconstitution of the past states of certain blocks to decontaminate the whole and to restore its correct state.
  • the backup and reconstruction circuits must make it possible to save a number k of states, with k> q + 1 in the general case.
  • the output of the flip-flop 2a is connected to the input of an error detection circuit 3, the output of which is connected to the input of a control circuit 4.
  • the detection of a error by the detection circuit causes, via the control circuit 4, the start of a decontamination phase intended to decontaminate the parts of the assembly contaminated by the error.
  • a circuit for saving and reconstituting past states is associated, in FIG. 2, with the flip-flop 2a.
  • This backup and reconstruction circuit comprises a buffer register 5, of the first in, first out type, designated by the usual abbreviation FIFO (first input, first output) and comprising r stages.
  • FIFO first input, first output
  • the backup and reconstruction circuit also includes a multiplexer 6 comprising a first input connected directly to the output of the associated flip-flop 2a and a second input connected to said output via the buffer register 5.
  • the output of the multiplexer is connected to the input of all the blocks to which the output of the associated flip-flop 2a should be connected if there was no backup and reconstruction circuit, that is to say in FIG. 2 at the input of the logic circuit 1b.
  • the buffer register 5 is activated for writing at each cycle. At each instant, it thus saves the states of the last r past cycles of the flip-flop 2a associated.
  • the output of the multiplexer is then connected to its first input, that is to say to the output of the flip-flop 2a associated.
  • the backup and reconstruction circuit must be able to selectively supply some of the r past states that it has saved.
  • the buffer register 5 is therefore activated for reading during selected cycles of the decontamination phase, the number of cycles of the decontamination phase possibly being greater than r.
  • the output of the multiplexer 6 is connected to its second input, that is to say to the output of the buffer register 5, during the selected cycles of the decontamination phase.
  • the output of the multiplexer is connected to its first input, that is to say to the output of the corresponding flip-flop.
  • the flip-flops associated with a backup and reconstruction circuit can be divided into two groups:
  • This second group can itself be divided into two sub-groups, a first sub-group of flip-flops & 2 which are not blocked during certain cycles of the decontamination phase and a second subgroup of flip-flops B2 2 which are blocked during the whole decontamination phase.
  • the flip-flops not likely to be affected by an error are regarded as flip-flops of the second subgroup of flip-flops B2 2 and are blocked during all the phase decontamination to keep their last correct state.
  • These flip-flops, belonging to the first subgroup of flip-flops B2. can then evolve and provide some of their past states useful for finding the correct state of the contaminated flip-flops. For the scales of this first sub-group, the decontamination procedure must be designed so that they recover the last state from which they are made to evolve.
  • the output of the multiplexer 6 is connected to its second input, that is to say to the output of the buffer register 5, from the first cycle of the decontamination phase, during which the register buffer is activated in reading, and until the cycle for unlocking the flip-flop 2a considered After unlocking the flip-flop, the output of the multiplexer can then be connected either to its first or to its second input, that is to say either at the output of the flip-flop 2a, or at the output of the buffer register 5.
  • the flip-flop 2a being no longer blocked, it supplies correct data from correct data supplied to it by stages (not shown ) arranged upstream.
  • the buffer register on 5 which has saved the states of a scale not affected by the error, also provides the correct data required.
  • a flip-flop belonging to group B1 that is to say a flip-flop liable to be affected by the error, this is not blocked by the control circuit 4 during the phase decontamination.
  • the output of the multiplexer 6 is connected to its second input, that is to say to the output of the buffer register 5, except during the last cycles of the decontamination phase where the buffer register 5 can provide erroneous values, i.e.
  • the output of the multiplexer is then connected to its first input, that is to say to the output of the flip-flop 2a associated. This makes it possible to avoid using erroneous data which would have been introduced into the buffer register during the safeguarding of states of the rocker affected by the error.
  • a flip-flop associated with such a block will be called original flip-flop.
  • An error that first appears in an original scale propagates before the triggering of a decontamination phase at the scales located downstream at a distance less than or equal to q.
  • the state of a scale, called target scale, located downstream of an original scale can be restored in various ways, depending on the structure of the assembly and the position of the target scale in the assembly.
  • the erroneous states of the predecessor correspond to the last q + 1 -dminp normal operating cycles, among which q-dminp are saved.
  • the saved states are not used but the states generated by the flip-flop constituting the immediate predecessor during the decontamination phase. In this way, only the correct states are used among the saved states.
  • any block in the set can be considered likely to produce an error and, consequently, any flip-flop in the set can be contaminated, either by an error of which it is itself the source, or by an error produced by the associated logic circuit, or by the propagation of an error produced in a block located upstream and at a short distance.
  • the last q-dmin q saved states can be erroneous
  • the first kq saved states will be used during the first kq cycles of the decontamination phase.
  • the last q cycles of the decontamination phase we will use the states that the corresponding flip-flop generates in its evolution during the decontamination phase.
  • the flip-flop 2b is connected in series with a logic circuit 1c, a flip-flop 2c, a logic circuit 1d and a flip-flop 2d.
  • the output of flip-flop 2d is connected to the input of logic circuit 1a.
  • any flip-flop can be affected as of the first cycle of occurrence of the error (cycle n ° 0) because the error can occur on the flip-flop itself or on the associated logic circuit.
  • the value r must then be greater than or equal to k.
  • an error detection circuit is associated with each block and decontamination means, making it possible to save and reconstruct states are provided to decontaminate the system.
  • a backup and reconstruction circuit (5, 6), of the same type as that described with reference to FIG. 2, is associated with each flip-flop (2a, 2b, 2c and 2d).
  • the decontamination phase then comprises 2 cycles.
  • the buffer register is activated for reading at least during the first cycle.
  • each scale can be affected by an error during the q + 1- dmin last cycles preceding the initiation of the decontamination phase.
  • q 1 and dmin ⁇ O since the tipping itself can be a source of error.
  • a backup and reconstruction circuit (5, 6) with a single flip-flop of the assembly according to FIG. 3, for example with flip-flop 2a.
  • the decontamination phase then has a duration of 5 cycles.
  • the buffer register is activated for reading at least during the first 4 cycles of the decontamination phase.
  • the multiplexer may or may not be activated in reading. This has no effect on the operation of the system because the multiplexer then connects its output to its first input.
  • the flip-flop 2a which can be affected by the error, is part of group B1.
  • the output of the multiplexer 6 is connected to its second input, that is to say to the output of the buffer register 5 during the first 4 cycles of the decontamination phase.
  • the number k of saved states is greater than q + 1.
  • the material cost can be lower although the number of states to be saved is greater.
  • the flip-flop of the set having the smallest number of bits, it is possible to minimize the size of the buffer register. and the associated multiplexer.
  • the assembly does not include a specific error correction circuit.
  • the number k of states to store is then such that k ⁇ q + 1.
  • each state of a flip-flop (2) is not systematically written in the associated buffer register (5), but only the states of the flip-flop corresponding to predetermined cycles are written in the buffer register. This has a double interest:
  • buffer registers (5) of reduced size. Indeed, it suffices then to use a two-stage buffer register (5) for each flip-flop (2) comprising useful states during the cycles chosen as backup cycles.
  • a two-stage buffer register (5) for each flip-flop (2) comprising useful states during the cycles chosen as backup cycles.
  • the assembly having no error correction means but only error detection means.
  • s> q then the error occurred after cycle C2.
  • the states saved during the backup cycle C2 are then correct and can be used to reconstruct the correct state of the assembly.
  • s ⁇ q then the error occurred during or before cycle C2.
  • the states saved in the buffer register (5) during this backup cycle can then be erroneous. It is then necessary to use the states saved during cycle C1 to do the decontamination. A two-stage buffer register (5) is then necessary and these are the states saved in the penultimate backup cycle which are then used. In the case where s> q, each of the states saved in the buffer register can be used, the last state requiring fewer cycles to carry out the decontamination.
  • a use of two-stage buffer registers (5) is moreover sufficient if one chooses consecutive backup cycles Ci and Ci + 1 at least minus q cycles. In this way, at the time of detection, only one stage of the buffer register can be affected by the errors.
  • the buffer registers can have a single stage. Indeed, in this case, even if the detection occurs s cycles after the last backup cycle, with s ⁇ q, the correction means can be used to correct the state saved in each buffer register. However, in this case also, care will be taken to choose consecutive backup cycles at least q cycles apart.
  • a first approach consists in accepting a certain probability of having a decontamination producing erroneous results. For example, if the distance between two backup cycles is at least 100 cycles and if the errors can propagate during a cycle, the use of a single-stage buffer register does not allow to perform correctly decontamination for errors occurring during a backup cycle. However, the probability of such an event is less than 1%, which may be acceptable in many applications. Increasing the distance between two successive backup cycles can reduce this probability in the desired way. Another approach is to reduce the value of q to zero. This means that an error is detected during the cycle during which it occurs and that blocking is carried out before the error propagates from the flip-flop in which it occurred to the flip-flops of the following stages and to the associated buffer register .
  • the delay of the error detection circuit is long and, thus, the calculation of the error detection signal overflows on the cycle following the appearance of the error, - the error detection signal corresponding to the errors which have occurred in a cycle is only generated at the end of this cycle, which makes it possible to check the values produced during this cycle throughout its duration.
  • the duration of the backup cycles that is to say to increase the period of the clock during these cycles. For example, if the distance between two backup cycles is greater than 10 cycles and if the duration of the backup cycles is increased by 30%, the overall performance loss is only 3%.
  • the error detection signal is produced during the backup cycles earlier than in the other cycles. The error detection signal can thus be produced within the backup cycle. Errors occurring at the end of the backup cycle may then go undetected, but this does not affect the detection of errors occurring in other cycles and can be overlooked.
  • the logic signals which control a rocker or which condition a clock signal are generated by certain blocks of the system. Then, in the initial architecture of the system, that is to say before the introduction of the decontamination circuits, the control signals of a flip-flop and the signals which condition its clock are considered as inputs of the flip-flop, of the same way as the signals which carry the data in writing in the rocker.
  • the construction of the decontamination circuits will take account of these signals and add the necessary circuits (as described above) to generate on these signals during the decontamination phase the same values as in normal operation.
  • the buffer registers (or FIFOs), in the description above, they are activated in writing at each cycle of normal operation and in reading during predetermined cycles of the decontamination phase. But this does not take into account the case of the control signals of the flip-flop associated with the FIFO nor the case of the conditioning signals of the clock of this flip-flop. These signals can block the flip-flop during certain cycles of the operating phase and it is necessary that the FIFO generates on its output during decontamination the same values as generates its associated flip-flop in normal operation. To do this, one of the following techniques can be used:
  • the conditioning signals of the clock of the associated flip-flop are ignored and the system clock (ie without conditioning) is sent to the FIFO during the operating phase and during the decontamination phase.
  • the control flip-flop control signals are also ignored, that is to say, these signals are not used in FIFO control, neither in normal operation nor during decontamination.
  • the FIFO is always in writing during normal operation and in reading during the predetermined cycles of the decontamination phase, as described above.
  • the rocker is blocked during a cycle of normal operation (by the “hate” signal or by its clock) it retains its previous value. This value is supplied to the FIFO during the two cycles and is stored in consecutive stages of the FIFO, which will supply it on its output during consecutive cycles of decontamination.
  • the FIFO will provide during decontamination the same values as those provided by the associated flip-flop during normal operation.
  • the control signal of the "hate” type of the flip-flop is used to block the FIFO at the same time as the associated flip-flop, and the same clock is used for the FIFO as for the associated flip-flop (this is ie "hate” type if applicable).
  • two possible cases will be considered.
  • the signal “hates” to control the associated flip-flop and the conditioning signals of the clock of this flip-flop take the same values during decontamination as in normal operation, we will also use during decontamination the same signal "Hates" and the same clock signal for FIFO.

Abstract

l'ensemble comporte un circuit (3) de détection d'erreur dans les données fournies par au moins un des blocs de I'ensemble. Lorsqu'une erreur a été détectée, I'ensemble est décontaminé grâce à au moins un circuit de sauvegarde et de reconstitution des états passés d'une bascule associée à un bloc. le circuit de sauvegarde et de reconstitution comporte un multiplexeur (6) et un registre tampon (5), du type premier entre, premier sorti. Le multiplexeur comporte première entrée connectée directement à la sortie de la bascule (2a) et une seconde entrée connectée à cette sortie par I'intermédiaire du registre tampon. Un circuit de commande (4) contrôle le registre tampon et le multiplexeur de manière à activer en écriture le registre tampon et connecter la sortie du multiplexeur à sa première entrée à chaque cycle, pendant une phase de fonctionnement normal, et à activer en lecture le registre tampon et connecter la sortie du multiplexeur à sa seconde entrée pendant des cycles prédéterminés d'une phase de décontamination.

Description

Ensemble de circuits électroniques comportant des moyens de décontamination de parties contaminées par des erreurs
Domaine technique de l'invention
L'invention concerne un ensemble de circuits électroniques comportant une pluralité de blocs connectés entre eux, des moyens de détection d'erreur dans les données fournies par au moins l'un des blocs et des moyens de décontamination.
État de la technique
Les systèmes électroniques deviennent de plus en plus sensibles aux aléas à cause de leur miniaturisation et ils sont de plus en plus susceptibles de produire des erreurs. L'introduction de mécanismes de tolérances aux fautes devient indispensable.
Dans certains cas, on veut se prémunir contre les erreurs provenant de certaines parties spécifiques et bien définies, tandis que, dans d'autre cas, on veut se prémunir contre les erreurs provenant de n'importe quelle partie du système.
Pour se prémunir contre les erreurs dues à des fautes transitoires on peut utiliser un mécanisme de détection d'erreur et, en cas de détection d'une erreur, on peut reprendre les opérations à partir d'un état passé du système soigneusement sauvegardé. Dans l'art existant ces reprises se font à partir de l'état global du système, qu'on a pris soin de sauvegarder à des intervalles de temps assez grands en utilisant des procédures logicielles. On doit alors stocker de grandes quantités d'informations représentant l'état global du système. Cette sauvegarde a l'avantage de ne pas exiger une conception particulière des diverses parties du système, notamment d'un processeur, mais nécessite des grandes ressources matérielles, notamment en mémoire. De plus, la procédure de sauvegarde est longue et, par conséquent, ne peut pas être effectuée très fréquemment, car elle affecte de façon importante les capacités de calcul du système. Ainsi, le plus souvent, une reprise est effectuée à partir d'un état passé lointain et sa durée est d'autant plus grande. Finalement, cette technique nécessite le développement d'un logiciel particulier afin de gérer cette procédure. Elle implique donc à un coût de développement récurrent chaque fois qu'on construit un nouveau système.
Objet de l'invention
L'invention a pour but de réduire le coût de la sauvegarde dans un ensemble de circuits électroniques.
Selon l'invention, ce but est atteint par le fait que les moyens de décontamination comportent au moins un circuit de sauvegarde et de reconstitution des états passés d'une bascule associée à un bloc de l'ensemble, le circuit de sauvegarde et de reconstitution comportant un multiplexeur et un registre tampon, du type premier entré, premier sorti, le multiplexeur comportant une première entrée connectée directement à la sortie de la bascule et une seconde entrée connectée à ladite sortie par l'intermédiaire dudit registre tampon.
Selon un développement de l'invention, l'ensemble comporte des moyens de commande pour contrôler le registre tampon et le multiplexeur pendant une phase de fonctionnement normal et pendant une phase de décontamination, suivant la détection d'une erreur, de manière à :
- activer en écriture le registre tampon pendant des cycles de sauvegarde prédéterminés pendant la phase de fonctionnement normal, - connecter la sortie du multiplexeur à sa première entrée à chaque cycle, pendant là phase de fonctionnement normal, et
- activer en lecture le registre tampon et connecter la sortie du multiplexeur à sa seconde entrée pendant des cycles prédéterminés de la phase de décontamination.
Description sommaire des dessins
D'autres avantages et caractéristiques ressortiront plus clairement de la description qui va suivre de modes particuliers de réalisation de l'invention donnés à titre d'exemples non limitatifs, et représentés aux dessins annexés, dans lesquels :
La figure 1 représente une partie d'un ensemble de circuits dans lequel l'invention peut être utilisée.
La figure 2 représente un mode particulier de réalisation de l'invention pour un ensemble de circuits du type représenté à la figure 1. La figure 3 représente un autre ensemble de circuits dans lequel l'invention peut être mise en œuvre.
Description de modes particuliers de réalisation.
Un ensemble électronique auquel l'invention peut s'appliquer comporte une pluralité de blocs, connectés entre eux. Un bloc est généralement constitué par un circuit logique, une bascule ou une mémoire. Une bascule est associée à chaque bloc.
La figure 1 illustre schématiquement une partie d'un ensemble de circuits dans lequel l'invention peut être mise en œuvre. Dans le mode de réalisation représenté, un premier circuit logique 1 a est connecté en série avec une première bascule 2a (associée au circuit logique 1a), un second circuit logique
1 b et une seconde bascule 2b (associée au circuit logique 1 b). En fonctionnement normal, la propagation des données dans l'ensemble s'effectue pendant des cycles successifs (cycles d'horloge ou, plus généralement, cycle de fonctionnement).
À un moment donné, un bloc de l'ensemble produit une erreur qui se propage dans l'ensemble pendant q cycles de fonctionnement avant que l'erreur soit détectée et une procédure de décontamination déclenchée. De manière générale, une erreur due à une faute transitoire, se produisant à un cycle n°0, peut se propager au maximum pendant les q cycles suivants, jusqu'à l'instant où elle a été détectée et une phase de décontamination engagée. Cette erreur est donc présente pendant q+1 cycles de fonctionnement. Une phase de décontamination doit permettre d'effectuer une reprise à partir d'un cycle qui précède le cycle n°0 afin de corriger l'erreur introduite pendant ce cycle.
Dans chaque ensemble, lorsque les blocs susceptibles de produire une erreur à leur sortie sont bien identifiés, il est possible de déterminer quels sont les blocs de l'ensemble susceptibles d'être affectés par cette erreur. Soit d la distance entre deux composants de l'ensemble correspondant au nombre de cycles nécessaires pour qu'une donnée provenant de l'un des composants soit prise en compte, directement ou indirectement, par l'autre composant. Dans un ensemble, seules les bascules associées aux blocs potentiellement générateurs d'erreur, ainsi que les bascules situées en aval et à une distance inférieure ou égale à q, peuvent être affectées par l'erreur. De plus, plus une de ces bascules est proche d'un bloc susceptible de produire une erreur, plus tôt elle sera affectée par l'erreur. Ainsi, la distance dmin la plus petite qui sépare une bascule des blocs susceptibles de produire une erreur et qui se trouvent en amont de la bascule, va déterminer le premier cycle (cycle n° dmin) pendant lequel la bascule va être affectée par l'erreur.
Un cas particulier dans lequel seuls certains blocs prédéfinis peuvent être considérés comme source potentielle d'erreur est le cas d'un ensemble dans lequel le concepteur considère que seuls les blocs de mémoire sont sensibles aux fautes transitoires et sont susceptibles de produire des erreurs.
Selon un premier aspect de l'invention, des ressources de reprise locales, destinées à sauvegarder des états locaux et récents, sont associées à différentes parties de l'ensemble. Après déclenchement de la procédure de décontamination, l'ensemble utilise des circuits de sauvegarde et de reconstitution des états passés de certains blocs pour décontaminer l'ensemble et reconstituer son état correct. Les circuits de sauvegarde et de reconstitution doivent permettre de sauvegarder un nombre k d'états, avec k>q+1 dans le cas général.
Sur la figure 2, la sortie de la bascule 2a est connectée à l'entrée d'un circuit 3 de détection d'erreur, dont la sortie est connectée à l'entrée d'un circuit de commande 4. La détection d'une erreur par le circuit de détection provoque, par l'intermédiaire du circuit de commande 4, le début d'une phase de décontamination destinée à décontaminer les parties de l'ensemble contaminées par l'erreur.
Un circuit de sauvegarde et de reconstitution des états passés est associé, sur la figure 2, à la bascule 2a. Ce circuit de sauvegarde et de reconstitution comporte un registre tampon 5, du type premier entré, premier sorti, désigné par l'abréviation usuelle FIFO (first input, first output) et comportant r étages. Dans le cas où r=1 , le registre tampon 5 est alors constitué par une simple bascule. L'entrée du registre tampon 5 est connectée à la sortie de la bascule 2a associée. Le circuit de sauvegarde et de reconstitution comporte également un multiplexeur 6 comportant une première entrée connectée directement à la sortie de la bascule 2a associée et une seconde entrée connectée à ladite sortie par l'intermédiaire du registre tampon 5. La sortie du multiplexeur est connectée à l'entrée de tous les blocs auxquels devrait être connectée la sortie de la bascule 2a associée s'il n'y avait pas de circuit de sauvegarde et de reconstitution, c'est-à-dire sur la figure 2 à l'entrée du circuit logique 1b. Pendant une phase de fonctionnement normal, le registre tampon 5 est activé en écriture à chaque cycle. À chaque instant, il sauvegarde ainsi les états des r derniers cycles passés de la bascule 2a associée. La sortie du multiplexeur est alors connectée à sa première entrée, c'est-à-dire à la sortie de la bascule 2a associée.
Pendant la phase de décontamination, le circuit de sauvegarde et de reconstitution doit être capable de fournir, de façon sélective, certains des r états passés qu'il a sauvegardés. Le registre tampon 5 est donc activé en lecture pendant des cycles sélectionnés de la phase de décontamination, le nombre de cycles de la phase de la décontamination pouvant être supérieur à r. En phase de décontamination, la sortie du multiplexeur 6 est connectée à sa seconde entrée, c'est-à-dire à la sortie du registre tampon 5, pendant les cycles sélectionnés de la phase de décontamination. Pendant le reste des cycles de la phase de décontamination, la sortie du multiplexeur est connectée à sa première entrée, c'est-à-dire à la sortie de la bascule correspondante.
Pour chaque erreur provenant d'un bloc donné, les bascules associées à un circuit de sauvegarde et de reconstitution peuvent être réparties en deux groupes :
- un premier groupe de bascules B1 , qui sont susceptibles d'être affectées par l'erreur.
- un second groupe de bascules B2, qui ne sont pas susceptibles d'être affectées par l'erreur. Ce second groupe peut lui-même être divisé en deux sous-groupes, un premier sous-groupe de bascules &2 qui ne sont pas bloquées pendant certains cycles de la phase de décontamination et un second sous-groupe de bascules B22 qui sont bloquées pendant toute la phase de décontamination.
De manière générale, dans un ensemble où seuls certains blocs sont susceptibles de produire des erreurs, les bascules non susceptibles d'être affectées par une erreur sont considérées comme des bascules du second sous-groupe de bascules B22 et sont bloquées pendant toute la phase de décontamination pour conserver leur dernier état correct. Néanmoins, pour réduire le coût des circuits de sauvegarde et de reconstitution, il peut être souhaitable de ne pas bloquer en permanence, pendant la phase de décontamination, certaines bascules non susceptibles d'être affectées par l'erreur. Ces bascules, appartenant au premier sous-groupe de bascules B2.,, peuvent alors évoluer et fournir certains de leurs états passés utiles pour retrouver l'état correct des bascules contaminées. Pour les bascules de ce premier sous-groupe, la procédure de décontamination doit être conçue de manière à ce qu'elles retrouvent le dernier état à partir duquel on les fait évoluer.
Le choix des cycles sélectionnés de la phase de décontamination se fera de façon différente, selon que la bascule considérée est une bascule B1 , B21 ou
B22.
Dans le cas d'une bascule appartenant au sous-groupe B22, c'est-à-dire qui n'est pas susceptible d'être affectée par l'erreur et qui est bloquée par le circuit de commande 4, pendant toute la phase de décontamination, tous les cycles de la phase de décontamination sont des cycles de blocage pendant lesquels la sortie du multiplexeur 6 est connectée à sa seconde entrée, c'est-à-dire à la sortie du registre tampon 5. Ceci est nécessaire car, la bascule 2a étant bloquée, elle ne peut fournir les données requises. Par ailleurs, toutes les données contenues dans le registre tampon 5 sont correctes car il a sauvegardé les états d'une bascule non susceptible d'être affectée par l'erreur. Si l'on utilise un registre tampon dont la taille est supérieure à la taille nécessaire pour effectuer la décontamination, ce registre tampon peut être activé pendant les cycles où les données qu'il fournit ne sont pas utilisées. Pendant ces cycles, la sortie du multiplexeur est alors connectée à sa première entrée, c'est-à-dire à la sortie de la bascule correspondante.
Dans le cas d'une bascule appartenant au sous-groupe B21 ( c'est-à-dire qui n'est pas susceptible d'être affectée par l'erreur mais qui n'est bloquée par le circuit de commande 4 que pendant certains cycles de la phase de décontamination, la sortie du multiplexeur 6 est connectée à sa seconde entrée, c'est-à-dire à la sortie du registre tampon 5, à partir du premier cycle de la phase de décontamination, pendant lequel le registre tampon est activé en lecture, et jusqu'au cycle de déblocage de la bascule 2a considérée. Après déblocage de la bascule, la sortie du multiplexeur peut alors être connectée indifféremment à sa première ou à sa seconde entrée, c'est-à-dire soit à la sortie de la bascule 2a, soit à la sortie du registre tampon 5. En effet, la bascule 2a n'étant plus bloquée, elle fournit des données correctes à partir de données correctes qui lui sont fournies par des étages (non représentés) disposés en amont. D'autre part, le registre tampon 5, qui a sauvegardé les états d'une bascule non affectée par l'erreur, fournit également les données correctes requises. Dans le cas d'une bascule appartenant au groupe B1 , c'est-à-dire d'une bascule susceptible d'être affectée par l'erreur, celle-ci n'est pas bloquée par le circuit de commande 4 pendant la phase de décontamination. Pendant la phase de décontamination, la sortie du multiplexeur 6 est connectée à sa seconde entrée, c'est-à-dire à la sortie du registre tampon 5, sauf pendant les derniers cycles de la phase de décontamination où le registre tampon 5 peut fournir des valeurs erronées, c'est-à-dire pendant les derniers q-dmin cycles de la phase de décontamination. La sortie du multiplexeur est alors connectée à sa première entrée, c'est-à-dire à la sortie de la bascule 2a associée. Ceci permet d'éviter d'utiliser des données erronées qui auraient été introduites dans le registre tampon lors de la sauvegarde d'états de la bascule affectés par l'erreur.
Grâce à un choix approprié de la disposition des différents circuits de sauvegarde et de reconstitution dans l'ensemble de circuits considéré et de l'enchaînement des opérations pendant la phase de décontamination, la bascule
2a associée qui n'est pas bloquée fournit alors des données correctes qui peuvent être fournies par le multiplexeur 6 aux blocs situés en aval, par exemple au bloc logique 1 b sur la figure 2.
Dans un ensemble où seuls certains blocs bien définis sont susceptibles d'être à l'origine d'une erreur, une bascule associée à un tel bloc sera appelée bascule d'origine. Une erreur apparaissant dans un premier temps dans une bascule d'origine se propage avant le déclenchement d'une phase de décontamination aux bascules situées en aval à une distance inférieure ou égale à q. Pour la bascule d'origine, on doit sauvegarder un nombre k d'états. L'état d'une bascule, dite bascule cible, située en aval d'une bascule d'origine peut être restauré de diverses manières, en fonction de la structure de l'ensemble et de la position de la bascule cible dans l'ensemble.
Dans certains cas, pour restaurer l'état d'une bascule cible il est nécessaire de sauvegarder les états d'une ou de plusieurs bascules constituant des prédécesseurs immédiats de la bascule cible. Si une bascule constituant un prédécesseur immédiat peut également être affectée par l'erreur, le nombre d'états à sauvegarder pour ce prédécesseur immédiat est donné par q+1-dminc, où dminc représente la distance minimum séparant la bascule cible de la bascule d'origine. On peut alors utiliser un circuit de sauvegarde et de restauration associé au prédécesseur immédiat pour sauvegarder q+1 -dminc états de ce prédécesseur immédiat. Celui-ci pouvant être affecté par l'erreur, certains des q+1 -dminc états sauvegardés sont erronés. La distance minimum séparant la bascule constituant le prédécesseur immédiat de la bascule d'origine étant dminp, les états erronés du prédécesseur correspondent aux derniers q+1 -dminp cycles de fonctionnement normal, parmi lesquels q-dminp sont sauvegardés. Ainsi, pendant les derniers q-dminp cycles de la phase de décontamination, on n'utilise pas les états sauvegardés mais les états générés par la bascule constituant le prédécesseur immédiat pendant la phase de décontamination. De cette façon, on n'utilise que les états corrects parmi les états sauvegardés.
Si la bascule constituant le prédécesseur immédiat n'est pas affectée par l'erreur, alors les q+1 -dminc états sauvegardés sont corrects et sont utilisés pendant la phase de décontamination. Dans ce cas, on peut remplacer le circuit de sauvegarde et de reconstitution de la bascule constituant le prédécesseur immédiat par celui d'autres bascules situées en amont. Dans d'autres cas, tout bloc de l'ensemble peut être considéré comme susceptible de produire une erreur et, par conséquent, toute bascule de l'ensemble peut être contaminée, soit par une erreur dont elle est elle-même la source, soit par une erreur produite par le circuit logique associé, soit par la propagation d'une erreur produite dans un bloc situé en amont et à faible distance. Chaque bascule pouvant être une bascule d'origine, dmin=0. Si on sauvegarde k états d'une bascule, les derniers q-dmin=q états sauvegardés peuvent être erronés Ainsi, pendant la phase de décontamination, seuls les premiers k-q états sauvegardés seront utilisés pendant les k-q premiers cycles de la phase de décontamination. Pendant les q derniers cycles de la phase de décontamination, on utilisera les états que la bascule correspondante génère dans son évolution pendant la phase de décontamination.
Un exemple va être explicité plus en détail en référence à la figure 3. Dans l'ensemble selon la figure 3, la bascule 2b est connectée en série avec un circuit logique 1c, une bascule 2c, un circuit logique 1d et une bascule 2d. La sortie de la bascule 2d est connectée à l'entrée du circuit logique 1a. On fait l'hypothèse que tous les blocs de cet ensemble sont susceptibles de produire une erreur due à une faute transitoire.
Dans un tel cas, où tout bloc est susceptible de produire des erreurs, toute bascule peut être affectée dès le premier cycle d'occurrence de l'erreur (cycle n°0) car l'erreur peut survenir sur la bascule elle-même ou sur le circuit logique associé. La valeur r doit alors être supérieure ou égale à k. Dans une première variante de réalisation, un circuit de détection d'erreur est associé à chaque bloc et des moyens de décontamination, permettant de sauvegarder et reconstituer des états sont prévus pour décontaminer le système. Dans un mode de réalisation préférentiel, un circuit de détection d'erreur 3 est connecté à la sortie de chacune des bascules (2a, 2b, 2c et 2d), de manière à détecter toute erreur survenant dans la bascule ou le circuit logique dont la sortie est connectée à l'entrée de la bascule considérée. On suppose également que le délai nécessaire pour la détection de l'erreur par un circuit de détection 3 est tel que l'erreur a le temps de se propager à la bascule suivante (q=1). Une erreur est donc susceptible d'affecter l'ensemble pendant 2 cycles de fonctionnement.
On suppose également que les blocs susceptibles d'être affectés par une erreur ne disposent pas de circuit de correction d'erreur. Dans ce cas, il est nécessaire de sauvegarder au moins les états des k=q+1=2 cycles passés. Dans ces conditions un circuit (5, 6) de sauvegarde et de reconstitution, du même type que celui décrit en regard de la figure 2, est associé à chaque bascule (2a, 2b, 2c et 2d). Pour permettre la sauvegarde des 2 derniers cycles (soit le cycle précédant le cycle n°0 et le cycle précédant le cycle n°1), on choisit des registres tampon ayant chacun une taille r=k=2. La phase de décontamination comporte alors 2 cycles. Le registre tampon est activé en lecture au moins pendant le premier cycle. Il peut également être activé en lecture pendant le cycle suivant, mais ce n'est pas obligatoire. Toutes les bascules étant susceptibles d'être affectées par l'erreur, elles appartiennent toutes au groupe B1. De plus, chaque bascule peut être affectée par une erreur pendant les q+1- dmin derniers cycles précédant le déclenchement de la phase de décontamination. Dans le cas particulier considéré, q=1 et dmin≈O puisque la bascule elle-même peut être une source d'erreur. Ainsi q-dmin=1 et le dernier état sauvegardé dans le registre tampon sera erroné. La sortie de chaque multiplexeur 6 est connectée à sa seconde entrée, c'est-à-dire à la sortie du registre tampon 5 correspondant pendant le premier cycle de la phase de décontamination. Par contre, elle est connectée à sa première entrée, c'est-à- dire à la sortie de la bascule correspondante pendant le dernier cycle (q- dmin=1) de la phase de décontamination.
Dans une seconde variante de réalisation, on choisit d'associer un circuit de sauvegarde et de reconstitution (5, 6) à une seule bascule de l'ensemble selon la figure 3, par exemple à la bascule 2a. Dans ce cas, le nombre d'états passés devant être sauvegardés pour reconstituer l'état de l'ensemble est plus important. Dans l'ensemble représenté sur la figure 3, le registre tampon 5 associé à la bascule 2a aura alors une taille r=5 afin de pouvoir sauvegarder l'état précédant le cycle n°1 (cycle n°0 dont l'état est erroné) ainsi que les états des 4 cycles précédant le cycle n°0. La phase de décontamination a alors une durée de 5 cycles. Le registre tampon est activé en lecture au moins pendant les 4 premiers cycles de la phase de décontamination. Pendant le cycle suivant, il peut ou non être activé en lecture. Ceci est sans effet sur le fonctionnement du système car le multiplexeur connecte alors sa sortie à sa première entrée. La bascule 2a, pouvant être affectée par l'erreur, fait partie du groupe B1. De plus, puisque q=1 , alors q+1 -dmin =2 et elle peut être affectée par un erreur pendant les deux derniers cycles précédant le déclenchement de la phase de décontamination. La sortie du multiplexeur 6 est connectée à sa seconde entrée, c'est-à-dire à la sortie du registre tampon 5 pendant les 4 premiers cycles de la phase de décontamination. Par contre, elle est connectée à sa première entrée, c'est-à-dire à la sortie de la bascule 2a pendant le dernier cycle (q-dmin=1 , car dmin =0 puisque la bascule elle-même peut être une source d'erreur) de la phase de décontamination.
La valeur k=q+1 est généralement la valeur la plus économique en ressources matérielles. Ceci n'est cependant pas toujours vrai ainsi que cela ressort par exemple des deux variantes décrites ci-dessus en référence à la figure 3. Dans la première variante, avec 4 circuits de sauvegarde et de reconstitution (un par bascule) comportant chacun un multiplexeur et un registre tampon à 2 étages, le nombre k d'états sauvegardés est égal à 2, soit k=q+1. Par contre, dans la seconde variante, avec un seul circuit de sauvegarde et de reconstitution, comportant un multiplexeur et un registre tampon à 5 étages, le nombre k d'états sauvegardés, égal à 5, est supérieur à q+1. Ainsi, le coût matériel peut être moindre bien que le nombre d'états à sauvegarder soit plus important. De plus, dans la seconde variante, en choisissant comme bascule à laquelle est associé le circuit de sauvegarde et de reconstitution, la bascule de l'ensemble ayant le plus petit nombre de bits, il est possible de réduire au minimum la taille du registre tampon et du multiplexeur associé.
Dans les exemples décrits ci-dessus, l'ensemble ne comporte pas de circuit spécifique de correction d'erreur. Le nombre k d'états à stocker est alors tel que k≥q+1.
Il est également possible d'utiliser l'invention dans un ensemble comportant des blocs protégés, c'est-à-dire des blocs avec des capacités de détection et de correction d'erreur. Dans l'art antérieur, notamment dans les ensembles comportant des mémoires munies de codes de détection et de correction d'erreur, le fonctionnement de l'ensemble est ralenti pour permettre de corriger une erreur avant sa propagation dans l'ensemble.
Selon un second aspect de l'invention, on laisse alors les données produites par un bloc protégé se propager systématiquement dans l'ensemble sans attendre la correction éventuelle d'une erreur. Si, à un instant donné, une erreur est détectée à la sortie d'un bloc protégé, cette sortie erronée est corrigée par le circuit de correction associé et la sortie corrigée est utilisée en coopération avec des circuits de sauvegarde et de reconstitution d'états passés pour décontaminer les blocs du système qui ont entre temps été contaminés par l'erreur qui s'est propagée. Si l'erreur se produit au cycle n°0 et se propage pendant les q cycles suivants, il faut effectuer la reprise à partir du cycle 0 ou de tout autre cycle le précédant. L'erreur survenue pendant le cycle n°0 étant corrigée par le circuit de correction associé au bloc protégé, il est possible d'effectuer la reprise à partir du cycle n°0. On pourra donc limiter le nombre k d'états à sauvegarder à k≥q et la valeur r à r≥k= q. Le cas dans lequel k=q est généralement le plus économique en ressources matérielles.
Selon un autre mode de réalisation, chaque état d'une bascule (2) n'est pas systématiquement écrit dans le registre tampon (5) associé, mais seuls les états de la bascule correspondant à des cycles prédéterminés sont écrits dans le registre tampon. Ceci présente un double intérêt :
- Tout d'abord, un choix judicieux de ces cycles permet d'ignorer l'état de certaines bascules, réduisant ainsi le coût des moyens de sauvegarde et de reconstitution. À titre d'exemple, l'état de plusieurs bascules internes d'un processeur peut être inutile pendant un premier cycle d'exécution d'une instruction. Ainsi, dans un tel cas, en choisissant toujours comme cycle de sauvegarde le premier cycle d'une instruction, il est possible d'éviter l'utilisation de registres tampons et de multiplexeurs associés à ces bascules.
- De plus, on peut, dans ce cas, utiliser des registres tampons (5) de taille réduite. En effet, il suffit alors d'utiliser un registre tampon (5) à deux étages pour chaque bascule (2) comportant des états utiles pendant les cycles choisis comme cycles de sauvegarde. À titre d'exemple, considérons trois cycles de sauvegarde successifs, C1 , C2 et C3 espacés entre eux de plusieurs cycles, et une détection d'erreur qui survient entre les cycles de sauvegarde C2 et C3, s cycles après le cycle de sauvegarde C2, l'ensemble ne disposant pas de moyens de correction d'erreur mais uniquement de moyens de détection d'erreur. Dans ce cas, si s>q, alors l'erreur est survenue après le cycle C2. Les états sauvegardés pendant le cycle de sauvegarde C2 sont alors corrects et peuvent être utilisés pour reconstituer l'état correct de l'ensemble. Par contre, si s≤q, alors l'erreur est survenue pendant ou avant le cycle C2. Les états sauvegardés dans le registre tampon (5) pendant ce cycle de sauvegarde peuvent alors être erronés. Il est alors nécessaire d'utiliser les états sauvegardés pendant le cycle C1 pour faire la décontamination. Un registre tampon (5) à deux étages est alors nécessaire et ce sont les états sauvegardés à l'avant-dernier cycle de sauvegarde qui sont alors utilisés. Dans le cas où s>q, chacun des états sauvegardés dans le registre tampon peut être utilisé, le dernier état nécessitant moins de cycles pour effectuer la décontamination.
Une utilisation de registres tampons (5) à deux étages est, par ailleurs, suffisant si on choisit des cycles de sauvegarde consécutifs Ci et Ci+1 distants d'au moins q cycles. De cette façon, au moment de la détection, seul un étage du registre tampon peut être affecté par les erreurs.
Dans le cas où l'ensemble dispose de moyens de correction d'erreur associés aux bascules contenant de l'information utile pendant les cycles de sauvegarde, alors les registres tampons peuvent avoir un seul étage. En effet, dans ce cas, même si la détection survient s cycles après le dernier cycle de sauvegarde, avec s≤q, les moyens de correction peuvent être utilisés pour corriger l'état sauvegardé dans chaque registre tampon. Cependant, dans ce cas également, on prendra soin de choisir des cycles de sauvegarde consécutifs distants d'au moins q cycles.
Du point de vue du coût matériel, il est également intéressant de réduire de deux à un le nombre des étages du registre tampon (5) dans le cas où l'ensemble ne dispose que de moyens de détection.
Une première approche consiste à accepter une certaine probabilité d'avoir une décontamination produisant des résultats erronés. À titre d'exemple, si la distance entre deux cycles de sauvegarde est au moins de 100 cycles et si les erreurs peuvent se propager pendant un cycle, l'utilisation d'un registre tampon à un seul étage ne permet pas d'effectuer correctement la décontamination pour des erreurs survenant pendant un cycle de sauvegarde. Cependant, la probabilité d'un tel événement est inférieure à 1%, ce qui peut être acceptable dans de nombreuses applications. L'augmentation de la distance séparant deux cycles de sauvegarde successifs permet de réduire cette probabilité de la manière désirée. Une autre approche consiste à réduire à zéro la valeur de q. Cela signifie qu'une erreur est détectée pendant le cycle au cours duquel elle survient et que le blocage est réalisé avant que l'erreur ne se propage de la bascule dans laquelle elle est survenue vers les bascules des étages suivants et vers le registre tampon associé. Ainsi, si une erreur survient pendant un cycle de sauvegarde, elle n'a pas le temps de se propager dans le registre tampon et l'étage unique de celui-ci contient l'état correct, sauvegardé lors du cycle de sauvegarde précédent. Bien sûr, si l'erreur survient pendant un autre cycle, elle n'affecte pas non plus le registre tampon.
Diverses techniques peuvent être utilisées pour obtenir q=0. Une valeur de q supérieure à zéro peut être due à deux facteurs :
- le délai du circuit de détection d'erreur est long et, ainsi, le calcul du signal de détection d'erreur déborde sur le cycle suivant l'apparition de l'erreur, - le signal de détection d'erreur correspondant aux erreurs survenues dans un cycle n'est généré qu'à la fin de ce cycle, ce qui permet de vérifier les valeurs produites pendant ce cycle pendant toute la durée de celui-ci.
II est nécessaire d'éliminer ces facteurs uniquement pendant les cycles de sauvegarde.
Ainsi, pour éliminer le premier facteur, il est possible d'augmenter la durée des cycles de sauvegarde, c'est-à-dire d'augmenter la période de l'horloge pendant ces cycles. A titre d'exemple, si la distance entre deux cycles de sauvegarde est supérieure à 10 cycles et si la durée des cycles de sauvegarde est augmentée de 30%, la perte globale de performance n'est que de 3%. Pour éliminer le second facteur, le signal de détection d'erreur est produit pendant les cycles de sauvegarde plus tôt que dans les autres cycles. Le signal de détection d'erreur peut ainsi être produit à l'intérieur du cycle de sauvegarde. Des erreurs survenant à la fin du cycle de sauvegarde peuvent alors ne pas être détectées, mais ceci n'affecte pas la détection des erreurs survenant dans d'autres cycles et peut être négligé.
Si les deux facteurs sont présents, il est possible de combiner le principe de l'augmentation de la durée des cycles de sauvegarde et le principe de la production du signal d'erreur plus tôt dans les cycles de sauvegarde que dans les autres cycles.
Dans ce qui précède, nous avons considéré que toutes les bascules auxquelles sont associés des registres tampon reçoivent des entrées à chaque cycle d'horloge. Néanmoins, dans un ensemble certaines bascules peuvent être contrôlées par un signal (« hait ») qui bloque la bascule quand il est actif. La bascule maintient donc son état du cycle précédent quand le signal « hait » est actif. Dans d'autres cas, l'horloge d'une bascule est dérivée de l'horloge du système par le biais d'un circuit logique, par exemple d'une porte OU, qui reçoit en entrée le signal de l'horloge du système et un ou plusieurs signaux logiques et génère en sortie l'horloge (« gated dock ») de la bascule. Ainsi, ces signaux logiques conditionnent l'horloge de la bascule qui sera bloquée pendant les cycles où ces signaux logiques prennent certaines valeurs. Le résultat est que la bascule maintient son état du cycle précédent à chaque cycle pendant lequel son horloge est bloquée. Lors de la construction des circuits de décontamination, il faut tenir compte des différents types de signaux de contrôle de bascule, du type « hait » au autre, ou d'une horloge conditionnée par d'autres signaux logiques (c'est à dire d'une horloge du type « gated dock »). Pour ce faire nous allons procéder de la façon suivante :
En général, les signaux logiques qui contrôlent une bascule ou qui conditionnent un signal d'horloge sont générés par certains blocs du système. Alors, dans l'architecture initiale du système, c'est-à-dire avant l'introduction des circuits de décontamination, les signaux de contrôle d'une bascule et les signaux qui conditionnent son horloge sont considérés comme entrées de la bascule, de la même façon que les signaux qui portent les données en écriture dans la bascule. Ainsi, pour les bascules qui ne sont pas bloquées pendant la décontamination, la construction des circuits de décontamination tiendra compte de ces signaux et rajoutera les circuits nécessaires (comme décrit précédemment) pour générer sur ces signaux pendant la phase de décontamination les mêmes valeurs qu'en fonctionnement normal.
En ce qui concerne les registres tampon (ou FIFO), dans la description ci- dessus, ils sont activés en écriture à chaque cycle du fonctionnement normal et en lecture pendant des cycles prédéterminés de la phase de décontamination. Mais ceci ne prend pas en compte le cas des signaux de contrôle de la bascule associée au FIFO ni le cas des signaux de conditionnement de l'horloge de cette bascule. Ces signaux peuvent bloquer la bascule pendant certains cycles de la phase de fonctionnement et il faut que le FIFO génère sur sa sortie pendant la décontamination les mêmes valeurs que génère sa bascule associée en fonctionnement normal. Pour ce faire, on peut utiliser une des techniques suivantes :
- On ignore les signaux de conditionnement de l'horloge de la bascule associée et on envoie sur le FIFO l'horloge du système (c'est à dire sans conditionnement) pendant la phase de fonctionnement et pendant la phase de décontamination. On ignore aussi les signaux de contrôle de la bascule associée, c'est-à-dire on n'utilise pas ces signaux dans le contrôle du FIFO, ni en fonctionnement normal ni pendant la décontamination. Ainsi, le FIFO est toujours en écriture pendant le fonctionnement normal et en lecture pendant les cycles prédéterminés de la phase de décontamination, comme décrit précédemment. Ainsi, si la bascule est bloquée pendant un cycle du fonctionnement normal (par le signal « hait » ou par son horloge) elle conserve sa valeur précédente. Cette valeur est fournie au FIFO pendant les deux cycles et est stockée dans des étages consécutifs du FIFO, qui va la fournir sur sa sortie pendant des cycles consécutifs de la décontamination. Ainsi le FIFO fournira pendant la décontamination les mêmes valeurs que celles qui sont fournies par la bascule associée pendant le fonctionnement normal.
- Pendant le fonctionnement normal, on utilise le signal de contrôle du type « hait » de la bascule pour bloquer le FIFO en même temps que la bascule associée, et on utilise pour le FIFO la même horloge que pour la bascule associée (c'est-à-dire du type « hait » le cas échéant). Pour le fonctionnement pendant la décontamination, on va considérer deux cas possibles. Dans le cas où le signal « hait » de contrôle de la bascule associée et les signaux de conditionnement de l'horloge de cette bascule prennent les mêmes valeurs pendant la décontamination qu'en fonctionnement normal, on va aussi utiliser pendant la décontamination le même signal « hait » et le même signal d'horloge pour le FIFO. Dans le cas où le signal « hait » de contrôle de la bascule associée ou les signaux de conditionnement de l'horloge de cette bascule ne prennent pas les mêmes valeurs pendant la décontamination et en fonctionnement normal (ce qui peut arriver si ces signaux ne sont pas générés dans le système ou dans le cas où les bascules des étages qui génèrent ces signaux ne sont pas actifs pendant la décontamination), on va alors utiliser un FIFO pour sauvegarder ces signaux pendant le fonctionnement normal et les fournir au système pendant la phase de décontamination, à l'aide d'un multiplexeur, comme décrit précédemment pour d'autres signaux du système. Ce FIFO aura le même nombre d'étages et sera actif pendant les mêmes cycles du fonctionnement normal et de la décontamination que le FIFO à qui sont destinés le signal « hait » et les signaux de conditionnement de l'horloge.

Claims

Revendications
1. Ensemble de circuits électroniques comportant une pluralité de blocs connectés entre eux, des moyens de détection d'erreur dans les données fournies par au moins l'un des blocs et des moyens de décontamination, ensemble caractérisé en ce que les moyens de décontamination comportent au moins un circuit de sauvegarde et de reconstitution des états passés d'une bascule associée à un bloc de l'ensemble, le circuit de sauvegarde et de reconstitution comportant un multiplexeur (6) et un registre tampon (5), du type premier entré, premier sorti, le multiplexeur (6) comportant une première entrée connectée directement à la sortie de la bascule (2a) et une seconde entrée connectée à ladite sortie par l'intermédiaire dudit registre tampon (5).
2. Ensemble selon la revendication 1 , caractérisé en ce que, un bloc étant associé à un circuit de correction d'erreur et l'erreur pouvant se propager pendant q cycles avant détection et déclenchement d'une phase de décontamination, le registre tampon (5) d'un circuit de sauvegarde et de reconstitution d'une bascule associée audit bloc comporte un nombre d'étages permettant de sauvegarder un nombre (k) d'états supérieur ou égal à q.
3. Ensemble selon la revendication 1 , caractérisé en ce que, un bloc étant associé à un circuit de détection d'erreur et l'erreur pouvant se propager pendant q cycles avant détection et déclenchement d'une phase de décontamination, le registre tampon (5) d'un circuit de sauvegarde et de reconstitution d'une bascule associée audit bloc comporte un nombre d'étages permettant de sauvegarder un nombre (k) d'états supérieur ou égal à q+1.
4. Ensemble selon l'une quelconque des revendications 1 à 3, caractérisé en ce qu'il comporte des moyens de commande (4) pour contrôler le registre tampon (6) et le multiplexeur (5) pendant une phase de fonctionnement normal et pendant une phase de décontamination, suivant la détection d'une erreur, de manière à :
- activer en écriture le registre tampon (5) pendant des cycles de sauvegarde prédéterminés pendant la phase de fonctionnement normal,
- connecter la sortie du multiplexeur (6) à sa première entrée à chaque cycle, pendant la phase de fonctionnement normal, et
- activer en lecture le registre tampon (5) et connecter la sortie du multiplexeur (6) à sa seconde entrée pendant des cycles prédéterminés de la phase de décontamination.
5. Ensemble selon la revendication 4, caractérisé en ce que la phase de décontamination commence par lesdits cycles prédéterminés de la phase de décontamination.
6. Ensemble selon l'une des revendications 4 et 5, caractérisé en ce que, le circuit de sauvegarde et de reconstitution étant associé à une bascule (2a) de l'ensemble qui n'est pas susceptible d'être contaminée par l'erreur, lesdits cycles prédéterminés de la phase de décontamination sont des cycles de blocage, qui sont suivis par des cycles de déblocage, le dispositif de commande (4) comportant des moyens de blocage de la bascule (2a) pendant les cycles de blocage et de déblocage de la bascule (2a) pendant les cycles de déblocage.
7. Ensemble selon la revendication 6, caractérisé en ce que le dispositif de commande (4) comporte des moyens de blocage de la bascule (2a) pendant toute la phase de décontamination, tous les cycles de la phase de décontamination étant des cycles de blocage.
8. Ensemble selon l'une des revendications 4 et 5, caractérisé en ce que, le circuit de sauvegarde et de reconstitution étant associé à une bascule de l'ensemble qui est susceptible d'être contaminée par l'erreur, le circuit de commande (4) connecte la sortie du multiplexeur (6) à sa première entrée après lesdits cycles prédéterminés de la phase de décontamination.
9. Ensemble selon l'une quelconque des revendications 1 à 5, caractérisé en ce que chaque bloc de l'ensemble étant susceptible d'être affecté par une erreur, un circuit de sauvegarde et de reconstitution est associé à chacune des bascules associées à des blocs prédéterminés de l'ensemble.
10. Ensemble selon la revendication 9, caractérisé en ce qu'un circuit de sauvegarde et de reconstitution est associé à chacune des bascules de l'ensemble.
11. Ensemble selon l'une quelconque des revendications 4 à 8, caractérisé en ce que deux cycles de sauvegarde consécutifs sont séparés par au moins q cycles.
12. Ensemble selon la revendication 11 , caractérisé en ce que le registre tampon (5) comporte deux étages.
13. Ensemble selon la revendication 11 , caractérisé en ce que le registre tampon (5) comporte un seul étage.
14. Ensemble selon la revendication 13, caractérisé en ce que deux cycles de sauvegarde successifs sont séparés par au moins 10 cycles.
15. Ensemble selon la revendication 13, caractérisé en ce que le signal d'erreur généré en réponse aux états d'un cycle de sauvegarde est produit avant la fin du cycle de sauvegarde.
16. Ensemble selon la revendication 15, caractérisé en ce que la durée d'un cycle de sauvegarde est supérieure à la durée des autres cycles.
17. Ensemble selon l'une des revendications 13 et 15, caractérisé en ce que le signal d'erreur généré en réponse aux états d'un cycle de sauvegarde est produit plus tôt que les signaux d'erreur générés en réponse aux états des autres cycles.
PCT/FR2002/002788 2001-08-10 2002-08-02 Ensemble de circuits electroniques comportant des moyens de decontamination de parties contaminees par des erreurs WO2003015282A2 (fr)

Priority Applications (4)

Application Number Priority Date Filing Date Title
DE60219324T DE60219324D1 (de) 2001-08-10 2002-08-02 Schaltkreiskomplex mit dekontaminierungsmitteln für mit fehlern kontaminierte teile
EP02794621A EP1417582B1 (fr) 2001-08-10 2002-08-02 Ensemble de circuits electroniques comportant des moyens de decontamination de parties contaminees par des erreurs
US10/485,700 US7380165B2 (en) 2001-08-10 2002-08-02 Assembly of electronic circuits comprising means for decontaminating error-contaminated parts
AU2002355589A AU2002355589A1 (en) 2001-08-10 2002-08-02 Electronic circuit assembly comprising means for decontaminating error-contaminated parts

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR01/10734 2001-08-10
FR0110734A FR2828601B1 (fr) 2001-08-10 2001-08-10 Ensemble de circuits electroniques comportant des moyens de decontamination de parties contaminees par des erreurs

Publications (2)

Publication Number Publication Date
WO2003015282A2 true WO2003015282A2 (fr) 2003-02-20
WO2003015282A3 WO2003015282A3 (fr) 2004-02-19

Family

ID=8866475

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR2002/002788 WO2003015282A2 (fr) 2001-08-10 2002-08-02 Ensemble de circuits electroniques comportant des moyens de decontamination de parties contaminees par des erreurs

Country Status (7)

Country Link
US (1) US7380165B2 (fr)
EP (1) EP1417582B1 (fr)
AT (1) ATE358847T1 (fr)
AU (1) AU2002355589A1 (fr)
DE (1) DE60219324D1 (fr)
FR (1) FR2828601B1 (fr)
WO (1) WO2003015282A2 (fr)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010099138A2 (fr) 2009-02-27 2010-09-02 Osi Pharmaceuticals, Inc. Procédés pour l'identification d'agents qui inhibent les cellules tumorales de type mésenchymateuses ou leur formation
WO2010099363A1 (fr) 2009-02-27 2010-09-02 Osi Pharmaceuticals, Inc. Méthodes d'identification d'agents qui inhibent les cellules cancéreuses mésenchymateuses ou leur formation
WO2010099139A2 (fr) 2009-02-25 2010-09-02 Osi Pharmaceuticals, Inc. Thérapie anti-cancer combinée
WO2010099364A2 (fr) 2009-02-27 2010-09-02 Osi Pharmaceuticals, Inc. Méthodes d'identification d'agents qui inhibent les cellules cancéreuses mésenchymateuses ou leur formation
EP2281885A1 (fr) 2003-08-27 2011-02-09 Ophthotech Corporation Combination thérapeutique pour le traitement des troubles oculaires néovasculaires
WO2012149014A1 (fr) 2011-04-25 2012-11-01 OSI Pharmaceuticals, LLC Utilisation de signatures de gènes de tem dans la découverte de médicaments contre le cancer, diagnostics et traitement du cancer
WO2013152252A1 (fr) 2012-04-06 2013-10-10 OSI Pharmaceuticals, LLC Polythérapie antinéoplasique

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8440498B2 (en) 2009-10-28 2013-05-14 Nanosolar, Inc. Thin-film devices formed from solid particles
US20170184664A1 (en) * 2015-12-28 2017-06-29 Michel Nicolaidis Highly efficient double-sampling architectures
FR3065601B1 (fr) * 2017-04-20 2019-05-03 Thales Circuit integre numerique protege contre les erreurs transitoires

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5875346A (en) * 1996-09-13 1999-02-23 International Business Machines Corporation System for restoring register data in a pipelined data processing system using latch feedback assemblies

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1509193A (en) * 1974-04-17 1978-05-04 Nat Res Dev Computer systems
US4562538A (en) * 1983-05-16 1985-12-31 At&T Bell Laboratories Microprocessor having decision pointer to process restore position
JPS63156236A (ja) * 1986-12-19 1988-06-29 Toshiba Corp レジスタ装置
US5119483A (en) * 1988-07-20 1992-06-02 Digital Equipment Corporation Application of state silos for recovery from memory management exceptions
EP1359485B1 (fr) * 2002-05-03 2015-04-29 Infineon Technologies AG Système de commande et surveillance

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5875346A (en) * 1996-09-13 1999-02-23 International Business Machines Corporation System for restoring register data in a pipelined data processing system using latch feedback assemblies

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
ROBERTS M W: "A FAULT-TOLERANT SCHEME THAT COPES WITH INTERMITTENT AND TRANSIENT FAULTS IN SEQUENTIAL CIRCUITS" PROCEEDINGS OF THE MIDWEST SYMPOSIUM ON CIRCUITS AND SYSTEMS. CHAMPAIGN, AUG. 14 - 16, 1989, NEW YORK, IEEE, US, vol. 1 SYMP. 32, 14 août 1989 (1989-08-14), pages 36-39, XP000139611 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2281885A1 (fr) 2003-08-27 2011-02-09 Ophthotech Corporation Combination thérapeutique pour le traitement des troubles oculaires néovasculaires
EP3168304A1 (fr) 2003-08-27 2017-05-17 Ophthotech Corporation Thérapie combinée pour le traitement des troubles néovasculaires oculaires
WO2010099139A2 (fr) 2009-02-25 2010-09-02 Osi Pharmaceuticals, Inc. Thérapie anti-cancer combinée
WO2010099138A2 (fr) 2009-02-27 2010-09-02 Osi Pharmaceuticals, Inc. Procédés pour l'identification d'agents qui inhibent les cellules tumorales de type mésenchymateuses ou leur formation
WO2010099363A1 (fr) 2009-02-27 2010-09-02 Osi Pharmaceuticals, Inc. Méthodes d'identification d'agents qui inhibent les cellules cancéreuses mésenchymateuses ou leur formation
WO2010099364A2 (fr) 2009-02-27 2010-09-02 Osi Pharmaceuticals, Inc. Méthodes d'identification d'agents qui inhibent les cellules cancéreuses mésenchymateuses ou leur formation
WO2012149014A1 (fr) 2011-04-25 2012-11-01 OSI Pharmaceuticals, LLC Utilisation de signatures de gènes de tem dans la découverte de médicaments contre le cancer, diagnostics et traitement du cancer
WO2013152252A1 (fr) 2012-04-06 2013-10-10 OSI Pharmaceuticals, LLC Polythérapie antinéoplasique

Also Published As

Publication number Publication date
US20040219739A1 (en) 2004-11-04
FR2828601A1 (fr) 2003-02-14
US7380165B2 (en) 2008-05-27
ATE358847T1 (de) 2007-04-15
AU2002355589A1 (en) 2003-02-24
EP1417582B1 (fr) 2007-04-04
WO2003015282A3 (fr) 2004-02-19
FR2828601B1 (fr) 2003-11-07
DE60219324D1 (de) 2007-05-16
EP1417582A2 (fr) 2004-05-12

Similar Documents

Publication Publication Date Title
EP2280364B1 (fr) Détecteur d'injection de fautes dans un circuit intégré
EP2612244A1 (fr) Procede de test en ligne des etages de pipeline temporairement non utilises et son dispositif associe
EP1417582B1 (fr) Ensemble de circuits electroniques comportant des moyens de decontamination de parties contaminees par des erreurs
EP1121642A1 (fr) Procede de traitement d'un systeme electronique soumis a des contraintes d'erreurs transitoires et dispositif de surveillance des acces memoire
FR2944620A1 (fr) Dispositif de surveillance du fonctionnement d'un circuit numerique
CA2367151A1 (fr) Circuit logique protege contre des perturbations transitoires
FR2831971A1 (fr) Procede de memorisation de donnees avec correction d'erreur
EP3392773B1 (fr) Circuit integre numerique protege contre les erreurs transitoires
WO2015197979A1 (fr) 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
WO2003014931A2 (fr) Ensemble de circuits electroniques comportant au moins une memoire avec des moyens de correction d'erreur
FR2531824A1 (fr) Circuit et procede de controle de circuits logiques sequentiels
EP0344052B1 (fr) Mémoire modulaire
EP1089175B1 (fr) Système informatique sécurisé
EP2250561B1 (fr) Dispositif permettant l'utilisation d'un composant programmable dans un environnement radiatif naturel
EP1340148B1 (fr) Dispositif et procede de detection et correction d'erreurs memoire dans un systeme electronique
EP1503288B1 (fr) Cellule de détection d'erreurs pour processeur intégré
EP4089559B1 (fr) Microprocesseur équipé d'une unité arithmétique et logique et d'un module matériel de sécurisation
EP1451688A2 (fr) Architecture de circuits protegee contre des perturbations
FR3122753A1 (fr) Procédé d'exécution d'un code binaire par un microprocesseur
EP4137945A1 (fr) Méthode de protection d'un circuit intégré numérique reconfigurable contre les erreurs réversibles
FR2867326A1 (fr) Dispositif de protection contre l'injection d'erreur dans une bascule synchrone d'un module logique elementaire
FR2920894A1 (fr) Architecture de registre memoire a detection d'erreur integre et procede de detection d'erreur associe
FR2759176A1 (fr) Micro-processeur faisant une prediction d'adresse rapide
EP1742075A1 (fr) Procédé de test d'un circuit électronique comprenant un mode de test sécurisé par l'utilisation d'une signature, et circuit électronique associé.
FR2917864A1 (fr) Procede de calcul d'un code de redondance cyclique

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BY BZ CA CH CN CO CR CU CZ DE DM DZ EC EE ES FI GB GD GE GH HR HU ID IL IN IS JP KE KG KP KR LC LK LR LS LT LU LV MA MD MG MN MW MX MZ NO NZ OM PH PL PT RU SD SE SG SI SK SL TJ TM TN TR TZ UA UG US UZ VN YU ZA ZM

Kind code of ref document: A2

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ OM PH PL PT RO RU SD SE SG SI SK SL TJ TM TN TR TT TZ UA UG US UZ VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR IE IT LU MC NL PT SE SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

Kind code of ref document: A2

Designated state(s): GH GM KE LS MW MZ SD SL SZ UG ZM ZW AM AZ BY KG KZ RU TJ TM AT BE BG CH CY CZ DK EE ES FI FR GB GR IE IT LU MC PT SE SK TR BF BJ CF CG CI GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 10485700

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 2002794621

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 2002794621

Country of ref document: EP

REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

NENP Non-entry into the national phase

Ref country code: JP

WWW Wipo information: withdrawn in national office

Country of ref document: JP

WWG Wipo information: grant in national office

Ref document number: 2002794621

Country of ref document: EP