WO2003032160A2 - Architecture de circuits protegee contre des perturbations - Google Patents

Architecture de circuits protegee contre des perturbations Download PDF

Info

Publication number
WO2003032160A2
WO2003032160A2 PCT/FR2002/003484 FR0203484W WO03032160A2 WO 2003032160 A2 WO2003032160 A2 WO 2003032160A2 FR 0203484 W FR0203484 W FR 0203484W WO 03032160 A2 WO03032160 A2 WO 03032160A2
Authority
WO
WIPO (PCT)
Prior art keywords
circuit
error
outputs
output
circuits
Prior art date
Application number
PCT/FR2002/003484
Other languages
English (en)
Other versions
WO2003032160A3 (fr
Inventor
Michael 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 EP02785543A priority Critical patent/EP1451688A2/fr
Priority to US10/492,294 priority patent/US20040255204A1/en
Publication of WO2003032160A2 publication Critical patent/WO2003032160A2/fr
Publication of WO2003032160A3 publication Critical patent/WO2003032160A3/fr
Priority to US11/904,762 priority patent/US20080028278A1/en

Links

Classifications

    • 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
    • G06F11/141Saving, restoring, recovering or retrying at machine instruction level for bus or memory accesses
    • 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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1012Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
    • G06F11/1016Error in accessing a memory location, i.e. addressing error

Definitions

  • the present invention relates to digital circuits protected against the effects of disturbances such as transient disturbances resulting from external causes or time faults related to the manufacture of the circuits.
  • a transient fault is produced by a localized disturbance originating for example from particle bombardments.
  • the capacities of the nodes and the supply voltages of modern integrated circuits are increasingly low, the charges present on the nodes become very low. Thus, these circuits become sensitive to increasingly weak disturbances.
  • the logical value of a node can be reversed by particles with very low energies. In past technologies of integrated circuits, it was mainly the particles hitting the memory points which produced logical faults.
  • a time fault results from the fact that, while a circuit element is normally designed to have a certain reaction time, this time, as a result of a localized manufacturing defect, may be greater than what was expected by the designer. Thus, if sampling is carried out after the normal reaction time of the circuit, this sampling can occur when the circuit has not yet switched. Due to the increase in density and speed of operation of modern integrated circuits, such faults are becoming more common and very difficult to test by the usual test programs and can therefore remain in a normally tested circuit. .
  • temporary fault or simply fault, a fault resulting from a transient disturbance or a manufacturing defect modifying the response time of a circuit element.
  • an object of the present invention is to simplify the problems of protecting a logic circuit against disturbances.
  • the present invention is essentially based on an analysis of the operation of the various elements of a system and proposes to adopt for the various parts of a system specific treatments for protection against errors or for repairing errors. .
  • the solution at minimum cost will thus be chosen for each block.
  • a detection and recovery mechanism will be used, making it possible to correct the errors produced by a transient fault by repeating a small number of the most recent.
  • recovery mechanisms are provided operating on a small number of operating cycles.
  • a recovery will correct the errors produced by a transient fault.
  • an error detection technique accompanied by a recovery operating on the last k operating cycles.
  • a detection and recovery will not correct errors due to a transient fault. Indeed, an error produced by such a circuit could induce an addressing error during a write operation and destroy data stored at this address for more than k operating cycles.
  • Another fault with a similar consequence is a fault which triggers a write during a read cycle or during a cycle of non-access to the memory.
  • Combinatorial circuits concerned by this solution are, for example, a combinatorial part generating memory addresses or generating write / read signals, address decoders, etc.
  • An error on the write / read signal will have two polarities: error of the type reading at the place of writing (1 instead of 0 on R / W) or of the type writing at the place of reading (0 instead of 1 on R / W).
  • the second polarity is dangerous and must be avoided, while it will be enough to detect the first and trigger a recovery to correct the errors produced.
  • the integration of the MPE mechanisms inside the circuit occupies only a small storage space to save the states necessary for the recovery, the backup can be carried out continuously, and short-term recoveries can be provided.
  • the present invention also provides various embodiments of fault immunization or error avoidance mechanisms suitable, for example, for circuits controlling long-term memories.
  • the present invention more particularly provides a digital circuit architecture comprising combinational circuits, short-term memory circuits not capable of storing data for more than k operating cycles, long-term memory circuits capable of to store data for more than k operating cycles of the circuit, comprising separate interference protection systems for the different types of circuits and according to the functionality of these circuits: a) for long-term storage circuits, means of fault immunization; b) for short-term storage circuits, error detection and recovery mechanisms are used; c) for combinational circuits controlling short-term memories and / or determining only data to be written in long-term memories, error detection and recovery systems are used in the memories concerned.
  • some of the combinational circuits capable of providing control instructions to long-term memories are protected by an avoidance mechanism for errors of polarity, and possibly a mechanism for detecting opposite polarity errors.
  • FIG. 1 represents the structure general of a complex digital circuit
  • FIGS. 2 to 12 illustrate only by way of example various embodiments of error avoidance mechanisms according to the present invention.
  • a complex digital circuit is divided into various blocks which are grouped logically according to their functionalities and their associations with memories. There are four main groups of elements in a complex digital circuit. Each group corresponds to one or more integrated circuits or to one or more parts of integrated circuits.
  • a first group 10 comprises combinational circuits which are either pure combinational circuits which do not act specifically on memories, or else combinative circuits capable of acting on short-term memories or other memory elements (latch) in which it is not possible to find data stored for more than k operating cycles, or alternatively combinational circuits supplying data (data) and not command signals (control) to long-term storage elements.
  • a second group 11 comprises short-term storage elements which are not capable of containing data stored for more than k operating cycles.
  • a third group 12 includes combinational circuits capable of supplying control signals to memories capable of storing data during more than k operating cycles.
  • a fourth group 13 includes long-term storage elements capable of storing data for more than k operating cycles.
  • an error detection and recovery process may be used.
  • one or more state preservation mechanisms 20 save data entering or leaving the storage parts during the last k operating cycles.
  • the value of k will be chosen by the designer who will thus make a selection of the storage elements 11 and of the storage elements 13 taking takes into account the reaction time of the system following an occurrence of a fault, so as to be sure that, after the detection of errors, it can generate an interruption in a duration shorter than the duration of the number of stored operations.
  • this detection and recovery system is the least bulky and least expensive system on the surface in a circuit.
  • the long-term memories will also be associated with a state preservation mechanism saving data among the data of the last k cycles to allow recovery in the event of detection of errors in a combinatorial element recording data in such memories.
  • Various error detection circuits are known in the prior art, in particular as set out by the present inventor in the above referenced patent application.
  • the combinatorial parts 12 capable of supplying control signals (addressing, reading / writing, etc.) to long-term memories and these long-term memories 13 the technique described above for detecting errors and recovery will generally be ineffective as old data may be irretrievably lost. We will therefore provide circuits immune to faults intrinsically or logically.
  • certain errors can be repaired by error detection and recovery type techniques, in particular addressing or reading / writing errors of a certain polarity.
  • the SRAM and DRAM memory blocks used in electronic circuits are most often memories that can store information for a long time and correspond to the fourth group.
  • the flip-flops of a circuit are generally, as mentioned above, short-term memories
  • flip-flops which renew their content at each clock pulse.
  • some flip-flops can be fitted with a hold status command, such that the content of the flip-flop is unchanged as long as the hold command is activated.
  • the flip-flop then becomes, during the activation of the hold command, a long-term memory and will be treated as an element of the fourth group.
  • a fault immunization mode is then to duplicate the scale and, when an error on the scale is detected and the hold signal is activated, to use the duplicated scale to restore the contents of the scale.
  • the flip-flop control signals can be protected by means of fault immunization.
  • the present invention also proposes various embodiments of fault immunization or error avoidance circuits which will be described in relation to FIGS. 2 to 12.
  • an error avoidance mechanism of a polarity for a combinational logic circuit 30 having at least one output comprises a circuit for generating an error control code 40 for said output, and an element forcing state 44 disposed at said output, controlled by the control code generation circuit 40 to be transparent when the control code is correct, and to force said output to a predetermined state, corresponding to a polarity d error opposite to the error polarity which the circuit must avoid, when the control code is incorrect.
  • the error control code generation circuit of the error avoidance mechanism generates an error detection output which takes the value 1 (0) to indicate the occurrence of d 'an error and the value 0 (1) to indicate correct operation
  • said state forcing element is an OR gate (AND) having one of its inputs connected to the output of the combinational logic circuit and the other of its inputs connected to the error detection output of the error control code generation circuit 40, so that when the output of the error control code generation circuit indicates the occurrence of an error , the output of the forcing element state takes the value 1 (0) corresponding to said predetermined state, and when the output of the error control code generation circuit indicates correct operation, the output of the state forcing element takes the same value as the output of the combinational logic circuit.
  • an error control code generation circuit of the error avoidance mechanism for a combinational logic circuit 30 includes a code prediction circuit 45 which calculates an error detecting code (such as a bit parity) for the outputs of the combinatorial circuit from signals other than the output of the combinatorial circuit, a code calculation circuit 47 which calculates the error detector code from the outputs of the combinatorial circuit, and a verification circuit 42 the error detector code generated by the prediction circuit and the error detector code generated by the calculation circuit.
  • an error detecting code such as a bit parity
  • an error detection signal is obtained at the output of circuit 42.
  • This signal is described here in the context of an error avoidance process . This signal could also be used to command a restart.
  • the circuit for generating the error control code of the error avoidance mechanism for a combinational logic circuit 30, comprises a duplicate combinational logic circuit 30 ', the state forcing element 44 being provided for be transparent when the outputs of the combinational logic circuit and of the duplicate combinational logic circuit are identical, and, when these outputs are distinct, produce at its output a predetermined state.
  • the state forcing element is an OR gate (AND) so that, in the absence of error, the output of the state forcing element takes the same value as the outputs of the combinational circuit.
  • the state forcing element 44 of the error avoidance mechanism for a combined logic circuit roof 30 comprises an initialization device 52 which systematically and beforehand puts the output of the state forcing element into said predetermined state, and a modification device 53, which subsequently modifies the value of this output only if the control code supplied by the error control code generation circuit 40 is correct and that said predetermined state is different from the value supplied at the output of the combinational logic circuit.
  • the error control code circuit comprises a duplicate combinational logic circuit
  • said state forcing element is composed of an initialization device putting the output before and systematically the state forcing circuit in the so-called predetermined state, and a modification device which subsequently modifies the value of the output, only if the corresponding outputs of the combinational logic circuit and of the duplicated logic circuit have identical values and said predetermined state is different from the state corresponding to the output values of the combinational logic circuit.
  • the circuit for generating the error control code of the error avoidance mechanism for a combinational logic circuit 30, comprises a duplicate combinational logic circuit 30 '.
  • the modification device 53 is composed of two transistors interconnected in series which connect the output of the state forcing circuit to the voltage Vdd (Gnd) and which are respectively controlled by the output of the combinational logic circuit 30 and by the output of the circuit 30 'duplicated combinatorial logic.
  • the initialization device 52 is composed of a switch which connects the output to the voltage Gnd (Vdd) when a control signal Cl is active, the control signal being activated during a period of the operating cycle called the phase of initialization.
  • a switch 56 is used to disconnect the output of the state forcing circuit of the output of the modification circuit when the control signal C1 is active.
  • the circuit for generating the error control code of the error avoidance mechanism for a combinative logic circuit 30, comprises a delay element 50 which delays the output of the combinative logic circuit by a predetermined duration ⁇ greater the maximum duration of transient errors.
  • the state forcing element 44 is designed to be transparent when the outputs of the combinational logic circuit and of the delay element are identical, and to produce at its output a predetermined state, when these outputs are distinct.
  • the error avoidance mechanism for a combinational logic circuit 30 is combined with an error detection circuit 61 making it possible to initiate a resumption of the most recent operations.
  • the error detection circuit can be implemented by a comparator which signals an error when the outputs of the combinational logic circuit 30 and the delay element 50 are distinct during a part of the operating cycle the duration of which is greater than a certain threshold.
  • the error detection circuit can be produced by a comparator 61 which signals an error when the outputs of the Combinatorial logic circuit and the duplicate combinatorial logic circuit are distinct during a period of the operating cycle whose duration is greater than a certain threshold.
  • a memory decoder generates a plurality of outputs, only one of which takes the value 1 at each cycle of the memory operation.
  • the decoder can be protected by an error avoidance circuit to prevent a type 1 error instead of 0 (polarity error 1) occurs on an output of the decoder, which would lead to the selection of a memory word which should not be selected.
  • a type 1 error avoidance circuit instead of 0 will ensure that this error cannot occur. It is not necessary, especially if the decoder has a very large number of outputs, to correct type 0 errors instead of 1. However, provision may be made to detect them to activate a recovery cycle. This last type of error leads to the situation where all the outputs of the decoder are equal to 0. To detect these errors, it is possible to use a circuit which signals erroneous operation when a number of outputs of the decoder other than 1 takes the value 1. This circuit makes it possible to detect errors of both types on the outputs of the decoder. A simpler circuit making it possible to detect only errors of type 0 instead of 1 (which are the errors which interest us here) consists of a logic OR gate.
  • the combinational logic circuit 30 provides a plurality of the outputs protected by a plurality of state forcing elements 44.
  • Said predetermined state is 0
  • the error detection circuit is an OR (AND) logic gate 61 which signals
  • the error avoidance mechanism comprises a delay element 50 of a predetermined duration greater than the maximum duration of the transient errors, and a state forcing element 44, the circuit also comprises a circuit bypass (mux) 70, making it possible to bypass the delay element when a control signal C2 is active.
  • the state forcing element is intended to be transparent when the outputs of the combinational logic circuit and of the delay element are identical, and to produce at its output a predetermined value when said outputs are distinct.
  • the error avoidance mechanism comprises a delay element 50 of a predetermined duration greater than the maximum duration of the transient errors, a bypass circuit 70 making it possible to force the output of the delay element to the value 1 when a control signal C2 is equal to 1, and a state forcing element 44 produced by an AND gate having an input connected to the output of the combinational logic circuit 30 and another input connected to the output of the circuit 70.
  • the error avoidance mechanism comprises a delay element 50, and a state forcing element 44.
  • the circuit also includes a bypass circuit 70 making it possible to bypass the state forcing element when 'a C2 control signal is active.
  • the state forcing element is intended to be transparent when the outputs of the combinational logic circuit and of the delay element are identical, and to produce at its output a predetermined value when said outputs are distinct.
  • the present invention is susceptible of various variants and modifications which will appear to those skilled in the art. In particular, account may be taken of various specific cases in which it will be possible to use a detection and recovery mechanism rather than providing elements intrinsically immune to faults.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Detection And Correction Of Errors (AREA)
  • Semiconductor Integrated Circuits (AREA)
  • Logic Circuits (AREA)

Abstract

L'invention concerne une architecture de circuit numérique comprenant des circuits combinatoires (10, 12), des circuits de mémoire de courte durée (11) non suseptibles de stocker des données pendant plus de k cycles de fonctionnement, des circuits de mémoire de longue durée (13) susceptibles de stocker des données pendant plus de k cycles de fonctionnement du circuit. Des systèmes de protection contre les perturbations distincts sont utilisées pour les différents types de circuits et selon la fonctionnalité de ces circuits.

Description

ARCHITECTURE DE CIRCUITS PROTEGEE CONTRE DES PERTURBATIONS
La présente invention concerne des circuits numériques protégés contre les effets de perturbations telles que des perturbations transitoires résultant de causes externes ou de fautes temporelles liées à la fabrication des circuits. Une faute transitoire est produite par une perturbation localisée provenant par exemple de bombardements de particules. Les capacités des noeuds et les tensions d'alimentation des circuits intégrés modernes étant de plus en plus faibles, les charges présentes sur les noeuds deviennent très faibles. Ainsi, ces circuits deviennent sensibles à des perturbations de plus en plus faibles. La valeur logique d'un noeud peut être inversée par des particules ayant des énergies très faibles. Dans les technologies passées des circuits intégrés, c'était surtout les particules frappant les points mémoire qui produi- saient des fautes logiques. Avec la sensibilité accrue des technologies modernes, les impulsions transitoires affectant un noeud d'un circuit combinatoire se propagent jusqu'aux entrées des points mémoire ("latches") . En même temps, l'augmentation des vitesses de fonctionnement augmente la probabilité qu'une impulsion transitoire en entrée d'un "latch" soit effectivement échantillonnée par ce dernier, conduisant à une erreur logique. Une faute temporelle résulte du fait que, alors qu'un élément de circuit est normalement conçu pour avoir une certaine durée de réaction, cette durée, par suite d'un défaut de fabrication localisé, peut être plus élevée que ce qui a été prévu par le concepteur. Ainsi, si l'on réalise un échantillonnage après la durée normale de réaction du circuit, cet échantillonnage peut survenir alors que le circuit n'a pas encore commuté. En raison de l'augmentation de la densité et de la vitesse de fonctionnement des circuits intégrés modernes, de telles fautes sont de plus en plus courantes et très difficiles à tester par les programmes de tests usuels et peuvent donc demeurer dans un circuit normalement testé bon.
De façon générale, on appellera ici faute temporaire, ou tout simplement faute, une faute résultant d'une perturbation transitoire ou d'un défaut de fabrication modifiant le temps de réponse d'un élément de circuit.
Il est bien clair que l'occurrence de telles fautes peut amener un circuit logique à fournir des résultats erronés et des mémoires à contenir des données fausses. Ainsi, on a cherché à immuniser des circuits contre les fautes. On peut utiliser des circuits protégés de façon intrinsèque, ou circuits durcis. Une autre technique pour être certain de corriger toute erreur consiste à tripliquer chaque module de base et à utiliser un vote majoritaire pour sélectionner le résultat correct parmi les trois résultats délivrés par les trois circuits en supposant bien entendu que trois circuits identiques ne peuvent pas à un instant donné être affectés par une même faute. De tels systèmes, extrêmement lourds et coûteux ont été essentiellement utilisés pour les circuits numériques incluant des circuits combinatoires ou bien des circuits incluant des circuits combinatoires et des mémoires. Pour des circuits incluant seulement des mémoires, on a développé des procédés moins coûteux consistant à associer à chaque donnée susceptible d'être mémorisée un code correcteur d'erreur. Selon ce principe, les données écrites dans la mémoire sont complétées par un certain nombre de bits de contrôle (code de Hamming, code de Reed Solomon, etc.). A chaque lecture est associée une vérification de cohérence du codage par un circuit dédié qui, s'il existe une erreur, la localise et la corrige. Une autre technique générale de correction d'erreur consiste à utiliser simplement un procédé de détection d'erreurs et de sauvegarde. L'état du système est mémorisé périodiquement et on utilise des codes relativement simples ou des procédés de duplication, tels que décrits par exemple dans la demande de brevet français 9903027 du 9 mars 1999, pour détecter si une faute est survenue. Quand une erreur a été détectée, on interrompt le fonctionnement du système et on remet le système dans l'état qu'il avait au moment de la dernière sauvegarde. Quand on fonctionne ainsi au niveau du système, on est obligé de faire des sauvegardes très importantes d'un grand nombre d'états, ce qui amène en pratique à faire des sauvegardes assez éloignées et donc, en cas de faute, à devoir revenir assez longtemps en arrière .
De façon générale, un objet de la présente invention est de simplifier les problèmes de protection d'un circuit logique contre des perturbations.
Pour atteindre cet objet, la présente invention se base essentiellement sur une analyse du fonctionnement des divers éléments d'un système et propose d'adopter pour les diverses parties d'un système des traitements spécifiques de protection contre des erreurs ou de réparation d'erreurs. On choisira ainsi pour chaque bloc la solution à coût minimal. Chaque fois que possible - et c'est un aspect de la présente invention que de réaliser cette analyse - on utilisera un mécanisme de détection et de reprise, permettant de corriger les erreurs produites par une faute transitoire en répétant un petit nombre des opérations les plus récentes. Pour éviter des interruptions d'une durée élevée, on prévoit des mécanismes de reprise opérant sur un faible nombre de cycles de fonctionnement. La mise en oeuvre de ces mécanismes à 1 ' intérieur du circuit intégré permettra une sauvegarde systématique d'états apparaissant dans le circuit pendant les k derniers cycles de fonctionnement, k étant une valeur choisie par le concepteur, supérieure au nombre de cycles nécessaire pour détecter une erreur et générer une interruption. Selon le cas, un cycle de fonctionnement sera un cycle d'horloge ou un cycle d'exécution d'une instruction.
Néanmoins, ce principe ne peut s'appliquer à toutes les parties d'un circuit. Par exemple, on notera qu'une valeur stockée dans une mémoire depuis plus de k cycles de fonctionnement, si elle est corrompue par une faute, ne peut pas être corrigée par une reprise opérant sur les k derniers cycles de fonctionnement. Ainsi, pour une mémoire pouvant stocker des données pour une durée supérieure à k cycles de fonctionnement (ci-après mémoire de longue durée), une technique d'immunisation aux fautes doit être appliquée au lieu d'une détection de faute et d'une reprise. On peut utiliser, par exemple, un code détecteur et correcteur d'erreurs. Ainsi, une faute affectant une cellule mémoire sera détectée et corrigée. On peut aussi utiliser des cellules de mémorisation durcies aux fautes transitoires. Le coût d'utilisation, en pourcentage de surface occupée, pour les codes détecteurs et correcteurs d'erreurs, devient très faible pour de grandes matrices mémoire mais peut augmenter de façon dramatique pour les petites mémoires. Ainsi, la préférence sera donnée aux codes détecteurs et correcteurs d'erreurs pour les grandes matrices mémoire et aux cellules de mémorisation durcies aux fautes transitoires pour des petites mémoires ou des cellules de mémorisation distribuées.
En ce qui concerne les parties combinatoires, une reprise permettra de corriger les erreurs produites par une faute transitoire. Ainsi, on peut utiliser une technique de détection d'erreurs accompagnée d'une reprise opérant sur les k derniers cycles d'opération. Néanmoins, si un circuit combinatoire contrôle (adressage ou lecture/écriture) une partie mémoire de longue durée, une technique de détection et de reprise ne permettra pas de corriger des erreurs dues à une faute transitoire. En effet, une erreur produite par un tel circuit pourrait induire une erreur d'adressage pendant une opération d'écriture et détruire une donnée stockée à cette adresse depuis plus de k cycles de fonctionnement. Une autre faute ayant une conséquence similaire est une faute qui déclenche une écriture pendant un cycle de lecture ou pendant un cycle de non-accès à la mémoire. Notons qu'une écriture de données correctes à une mauvaise adresse produit des erreurs qui ne sont jamais détectées par un code détecteur/correcteur d'erreurs car les données écrites sont correctement codées. Ainsi, une partie combinatoire contrôlant une mémoire stockant des données pour une durée supérieure à k cycles de fonctionnement, doit être protégée par une technique d'immuni- sation aux fautes. Des circuits combinatoires concernés par cette solution sont, par exemple, une partie combinatoire générant des adresses de mémoire ou générant des signaux d'écriture/lecture, les décodeurs d'adresse, etc.
Même pour ces circuits contrôlant des mémoires de longue durée, on peut éviter de prévoir une immunisation lourde en notant divers cas particuliers.
- Une erreur sur le signal d'écriture/lecture aura deux polarités : erreur du type lecture au lieu d'écriture (1 au lieu de 0 sur R/W) ou du type écriture au lieu de lecture (0 au lieu de 1 sur R/W) . La deuxième polarité est dangereuse et doit être évitée, tandis qu'il suffira de détecter la première et de déclencher une reprise pour corriger les erreurs produites.
- De même, il existe deux types d'erreurs sur les sorties d'un décodeur d'adresses (lignes ou colonnes) : une sortie active devient inactive (polarité d'erreur 0 au lieu de
1) , ou bien une ou plusieurs sorties non-actives deviennent actives (polarité d'erreur 1 au lieu de 0) . On observe de nouveau que la deuxième polarité produit des erreurs non- récupérables et doit être évitée tandis qu'il suffirait de détecter les erreurs de la première polarité et de déclencher une reprise pour pouvoir les corriger. On pourra donc utiliser une technique d'immunisation pour des erreurs d'une certaine polarité et une technique de détection et reprise pour des erreurs de polarité opposée. - Dans certains cas, pour des circuits combinatoires contrôlant des mémoires de longue durée, on pourra utiliser uniquement une technique de détection d'erreurs pour bloquer le fonctionnement de la mémoire avant qu'une destruction de données ne survienne. Ce principe ne peut être utilisé que si les délais de fonctionnement de la mémoire et du mécanisme de détection d'erreurs sont compatibles avec un tel blocage.
Entre le moment d'occurrence d'une faute dans une partie employant un mécanisme de détection et le moment où on interrompt le système pour déclencher une reprise, il s'écoule un certain temps (k cycles d'opération) . Pendant ce temps, pour effectuer une reprise, on doit retrouver le contenu des points de mémorisation (bascules, ensembles de registres, mémoires) qui déterminent un état du circuit avant l'occurrence de la faute, à partir duquel on pourra répéter de façon correcte toutes les opérations successives. Pour ce faire, on utilisera un mécanisme de préservation d'état (MPE) pour chaque partie de mémorisation (bascules, ensembles de registres, mémoires) dont l'état doit être sauvegardé afin de pouvoir effectuer la reprise de 1 'opération du circuit. Le mécanisme MPE conservera à chaque instant des données d'entrée et/ou de sortie de la partie de mémorisation correspondant, durant les k derniers cycles d'opération.
Selon un aspect important de la présente invention, il n'est pas nécessaire de sauvegarder 1 'ensemble des données déterminant l'état du circuit pour pouvoir effectuer la reprise correctement. Certaines données peuvent être perdues à jamais sans empêcher une reprise correcte. Ainsi, il n'est pas nécessaire de sauvegarder l'état complet du circuit à chaque instant. Seules des données utilisées récemment par la partie de mémorisation nécessiteront une sauvegarde. Grâce à cette remarque, l'intégration des mécanismes MPE à l'intérieur du circuit n'occupe qu'un faible espace de mémorisation pour sauvegarder les états nécessaires pour la reprise, la sauvegarde peut être effectuée de façon continue, et des reprises de courte durée peuvent être prévues. Ces avantages ne peuvent pas être obtenus si on effectue la sauvegarde et la reprise au niveau système.
Pour les fautes transitoires, la reprise permettra leur correction car elles ne se manifesteront pas une deuxième fois à cause de leur nature transitoire. Néanmoins, pour les fautes temporelles, la répétition des mêmes opérations aura pour conséquence dans la plupart des cas la manifestation de la faute temporelle durant la reprise, car cette faute est due à des causes permanentes (délai du circuit dépassant la période de l'horloge). Ainsi, selon un aspect de la présente invention, si 1 'on s 'aperçoit qu'après une reprise une erreur survient à nouveau, on ralentira le rythme de l'horloge générale du système de façon à s'assurer que le circuit défaillant aura le temps de fonctionner convenablement. Bien entendu, l'homme du métier pourra utiliser d'autres solutions, par exemple systématiquement après chaque reprise ralentir le rythme de 1 'horloge pour être sûr de réparer aussi bien des fautes transitoires que des fautes temporelles.
Enfin on utilisera un circuit contrôlant l'interruption de reprise. Son rôle est de contrôler le passage du fonctionnement normal au fonctionnement de reprise en cas de détection de faute, le passage en fonctionnement normal à la fin de la procédure de reprise, et le basculement entre les ressources de mémorisation régulières et les ressources de mémo- risation MPE.
La présente invention prévoit aussi divers modes de réalisation de mécanismes d'immunisation aux fautes ou d'ëvitement d'erreurs adaptés, par exemple, à des circuits contrôlant des mémoires de longue durée. Pour atteindre ces objets, la présente invention prévoit plus particulièrement une architecture de circuit numérique comprenant des circuits combinatoires, des circuits de mémoire de courte durée non susceptibles de stocker des données pendant plus de k cycles de fonctionnement, des circuits de mémoire de longue durée susceptibles de stocker des données pendant plus de k cycles de fonctionnement du circuit, comprenant des systèmes de protection contre les perturbations distincts pour les différents types de circuits et selon la fonctionnalité de ces circuits : a) pour les circuits de mémorisation de longue durée, on utilise des moyens d'immunisation aux fautes ; b) pour les circuits de mémorisation de courte durée, on utilise des mécanismes à détection d'erreurs et reprise ; c) pour les circuits combinatoires contrôlant des mémoires de courte durée et/ou déterminant seulement des données à écrire dans des mémoires de longue durée, on utilise des systèmes de détection d'erreurs et de reprise dans les mémoires concernées . Selon un mode de réalisation de la présente invention, certains des circuits combinatoires susceptibles de fournir des instructions de commande à des mémoires de longue durée sont protégés par un mécanisme d'évitentent pour les erreurs d'une polarité, et éventuellement un mécanisme de détection des erreurs de la polarité opposée.
Ces objets, caractéristiques et avantages, ainsi que d'autres de la présente invention seront exposés en détail dans la description suivante de modes de réalisation particuliers faite à titre non-limitatif en relation avec les figures jointes parmi lesquelles : la figure 1 représente la structure générale d'un circuit numérique complexe ; et les figures 2 à 12 illustrent uniquement à titre d'exemple divers modes de réalisation de mécanismes d'évitement d'erreurs selon la présente invention. Comme le représente la figure 1, selon un aspect de la présente invention, un circuit numérique complexe est divisé en divers blocs qui sont groupés logiquement selon leurs fonctionnalités et leurs associations avec des mémoires. On distingue quatre groupes principaux d'éléments dans un circuit numérique complexe. Chaque groupe correspond à un ou plusieurs circuits intégrés ou à une ou plusieurs parties de circuits intégrés .
Un premier groupe 10 comprend des circuits combinatoi- res qui sont ou bien des circuits combinatoires purs n'agissant pas spécifiquement sur des mémoires, ou bien des circuits combinatoires susceptibles d'agir sur des mémoires de courte durée ou autres éléments de mémorisation (latch) dans lesquels on ne peut pas trouver des données stockées depuis plus de k cycles de fonctionnement, ou bien encore des circuits combinatoires fournissant des données (data) et pas des signaux de commande (control) à des éléments de mémorisation de longue durée.
Un deuxième groupe 11 comprend des éléments de mémorisation de courte durée non susceptibles de contenir des données stockées depuis plus de k cycles de fonctionnement.
Un troisième groupe 12 comprend des circuits combinatoires susceptibles de fournir des signaux de commande à des mémoires susceptibles de stocker des données pendant plus de k cycles de fonctionnement. Un quatrième groupe 13 comprend des éléments de mémorisation de longue durée susceptibles de stocker des données pendant plus de k cycles de fonctionnement.
Pour les parties combinatoires 10 et les mémoires 11, on pourra utiliser un processus à détection d'erreurs et reprise. Dans un tel processus, un ou plusieurs mécanismes de préservation d'état 20 sauvegardent des données entrant ou sortant des parties de mémorisation pendant les k derniers cycles de fonctionnement. La valeur de k sera choisie par le concepteur qui réalisera ainsi une sélection des éléments de mémorisation 11 et des éléments de mémorisation 13 en tenant compte du temps de réaction du système suite à une occurrence de faute, de façon à être sûr que, après la détection d'erreurs, il peut générer une interruption en une durée inférieure à la durée du nombre d'opérations mémorisées. En pratique, ce système de détection et de reprise est le système le moins encombrant et le moins coûteux en surface dans un circuit. Les mémoires de longue durée seront également associées à un mécanisme de préservation d'état sauvegardant des données parmi les données des k derniers cycles pour permettre une reprise en cas de détection d'erreurs dans un élément combinatoire inscrivant des données dans de telles mémoires. Divers circuits de détection d'erreurs sont connus dans l'art antérieur, notamment tels qu'exposés par le présent inventeur dans la demande de brevet ci-dessus référencée. En ce qui concerne les parties combinatoires 12 susceptibles de fournir des signaux de commande (adressage, lecture/écriture ... ) à des mémoires de longue durée et ces mémoires de longue durée 13, la technique décrite précédemment de détection d'erreurs et reprise sera généralement inefficace car des données anciennes pourraient être irrémédiablement perdues. On prévoira donc des circuits immunisés aux fautes de façon intrinsèque ou logique. Toutefois, comme on l'a noté précédemment, certaines erreurs pourront être réparées par des techniques de type détection d'erreurs et reprise, notamment des erreurs d'adressage ou de lecture/écriture d'une certaine polarité .
Les blocs mémoire SRAM et DRAM utilisés dans les circuits électroniques sont le plus souvent des mémoires pouvant stocker longtemps des informations et correspondent au quatrième groupe. Par contre les bascules d'un circuit sont généralement, comme on l'a mentionné ci-dessus, des mémoires de courte durée
(deuxième groupe) qui renouvellent leur contenu à chaque impulsion d'horloge. Néanmoins certaines bascules peuvent être munies d'une commande de maintien d'état (hold) , telle que le contenu de la bascule est inchangé tant que la commande hold est activée. La bascule devient alors, pendant l'activation de la commande hold, une mémoire de longue durée et sera traitée comme un élément du quatrième groupe. Un mode d'immunisation aux fautes est alors de dupliquer la bascule et, quand on détecte une erreur sur la bascule et que le signal hold est activé, d'utiliser la bascule dupliquée pour restaurer le contenu de la bascule. De plus, on peut protéger par un moyen d'immunisation aux fautes les signaux de commande de la bascule.
La présente invention propose en outre divers modes de réalisation de circuits d'immunisation aux défauts ou d'évitement d'erreurs qui seront décrits en relation avec les figures 2 à 12.
En figure 2, un mécanisme d'évitement d'erreurs d'une polarité pour un circuit logique combinatoire 30 ayant au moins une sortie, comprend un circuit de génération d'un code de contrôle d'erreurs 40 pour ladite sortie, et un élément de forçage d'état 44 disposé à ladite sortie, commandé par le circuit de génération de code de contrôle 40 pour être transpa- rent lorsque le code de contrôle est correct, et pour forcer ladite sortie à un état prédéterminé, correspondant à une polarité d'erreur opposée à la polarité d'erreur que le circuit doit éviter, lorsque le code de contrôle est incorrect.
Selon un mode de réalisation de la présente invention, le circuit de génération de code de contrôle d'erreurs du mécanisme d'évitement des erreurs génère une sortie de détection d'erreurs qui prend la valeur 1 (0) pour indiquer l'occurrence d'une erreur et la valeur 0 (1) pour indiquer le fonctionnement correct, et ledit élément de forçage d'état est une porte OR (AND) ayant l'une de ses entrées connectée à la sortie du circuit logique combinatoire et 1 'autre de ses entrées connectée à la sortie de détection d'erreurs du circuit de génération de code de contrôle d'erreurs 40, de façon que lorsque la sortie du circuit de génération de code de contrôle d'erreurs indique l'occurrence d'une erreur, la sortie de l'élément de forçage d'état prend la valeur 1 (0) correspondant audit état prédéterminé, et lorsque la sortie du circuit de génération de code de contrôle d'erreurs indique le fonctionnement correct, la sortie de l'élément de forçage d'état prend la même valeur que la sortie du circuit logique combinatoire.
En figure 3, un circuit de génération de code de contrôle d'erreurs du mécanisme d'évitement des erreurs pour un circuit logique combinatoire 30 comprend un circuit de prédiction de code 45 qui calcule un code détecteur d'erreurs (tel qu'un bit de parité) pour les sorties du circuit combinatoire à partir de signaux autres que la sortie du circuit combinatoire, un circuit de calcul de code 47 qui calcule le code détecteur d'erreurs à partir des sorties du circuit combinatoire, et un circuit 42 de vérification du code détecteur d'erreurs généré par le circuit de prédiction et du code détecteur d'erreurs généré par le circuit de calcul.
Dans un circuit du type de celui de la figure 3, un signal de détection d'erreurs est obtenu à la sortie du circuit 42. On décrit ici l'utilisation de ce signal dans le cadre d'un processus d'évitement d'erreurs. Ce signal pourrait également être utilisé pour commander une reprise.
En figure 4, le circuit de génération de code de contrôle d'erreurs du mécanisme d'évitement des erreurs pour un circuit logique combinatoire 30, comprend un circuit logique combinatoire dupliqué 30', l'élément de forçage d'état 44 étant prévu pour être transparent lorsque les sorties du circuit logique combinatoire et du circuit logique combinatoire dupliqué sont identiques, et, quand ces sorties sont distinctes, produire à sa sortie un état prédéterminé. Dans ce mode de réalisation de la présente invention, l'élément de forçage d'état est une porte OU (ET) de façon que, en l'absence d'erreur, la sortie de l'élément de forçage d'état prenne la même valeur que les sorties du circuit combinatoire.
En figure 5, l'élément de forçage d'état 44 du méca- nisme d'évitement des erreurs pour un circuit logique combina- toire 30, comprend un dispositif d'initialisation 52 mettant préalablement et de façon systématique la sortie de l'élément de forçage d'état audit état prédéterminé, et un dispositif de modification 53, qui modifie par la suite la valeur de cette sortie uniquement si le code de contrôle fourni par le circuit de génération de code de contrôle d'erreurs 40 est correct et que ledit état prédéterminé est différent de la valeur fournie à la sortie du circuit logique combinatoire.
Selon ce mode de réalisation de la présente invention, le circuit de code de contrôle d'erreurs comprend un circuit logique combinatoire dupliqué, ledit élément de forçage d'état est composé d'un dispositif d'initialisation mettant préalablement et de façon systématique la sortie du circuit de forçage d'état à l'état dit prédéterminé, et d'un dispositif de modification qui modifie par la suite la valeur de la sortie, uniquement si les sorties correspondantes du circuit logique combinatoire et du circuit logique dupliqué ont des valeurs identiques et ledit état prédéterminé est différent de l'état correspondant aux valeurs de sortie du circuit logique combinatoire .
En figure 6, le circuit de génération de code de contrôle d'erreurs du mécanisme d'évitement des erreurs pour un circuit logique combinatoire 30, comprend un circuit logique combinatoire dupliqué 30'. Le dispositif de modification 53 est composé de deux transistors interconnectés en série qui connectent la sortie du circuit de forçage d'état à la tension Vdd (Gnd) et qui sont respectivement commandés par la sortie du circuit logique combinatoire 30 et par la sortie du circuit logique combinatoire dupliqué 30'. Le dispositif d'initialisation 52 est composé d'un interrupteur qui connecte la sortie à la tension Gnd (Vdd) lorsqu'un signal de contrôle Cl est actif, le signal de contrôle étant activé pendant une période du cycle de fonctionnement dite phase d'initialisation. De façon optionnelle, afin de réduire la consommation de ce circuit, un interrupteur 56 est utilisé pour déconnecter la sortie du circuit de forçage d'état de la sortie du circuit de modification lorsque le signal de contrôle Cl est actif.
En figure 7, le circuit de génération de code de contrôle d'erreurs du mécanisme d'évitement des erreurs pour un circuit logique combinatoire 30, comprend un élément de retard 50 qui retarde la sortie du circuit logique combinatoire d'une durée prédéterminée δ supérieure à la durée maximale des erreurs transitoires. L'élément de forçage d'état 44 est prévu pour être transparent lorsque les sorties du circuit logique combinatoire et de l'élément de retard sont identiques, et pour produire à sa sortie un état prédéterminé, quand ces sorties sont distinctes.
En figure 8, le mécanisme d'évitement des erreurs pour un circuit logique combinatoire 30 est combiné avec un circuit de détection d'erreurs 61 permettant d'initier une reprise des opérations les plus récentes. Pour un mécanisme d'évitement d'erreurs qui comprend un élément de retard 50 et un élément de forçage d'état 44, le circuit de détection d'erreurs peut être réalisé par un comparateur qui signale une erreur lorsque les sorties du circuit logique combinatoire 30 et de l'élément de retard 50 sont distinctes pendant une partie du cycle de fonctionnement dont la durée est supérieure à un certain seuil.
Pour un mécanisme d'évitement d'erreurs qui comprend un circuit logique combinatoire dupliqué 30' et un élément de forçage d'état 44, le circuit de détection d'erreurs peut être réalisé par un comparateur 61 qui signale une erreur lorsque les sorties du circuit logique combinatoire et du circuit logique combinatoire dupliqué sont distinctes pendant une période du cycle de fonctionnement dont la durée est supérieure à un certain seuil. En dehors de ces exemples de réalisation du circuit de détection d'erreurs, il existe d'autres réalisations possibles pour ce circuit. Par exemple, un décodeur de mémoire génère une pluralité de sorties dont une seule prend la valeur 1 à chaque cycle du fonctionnement de la mémoire. Le décodeur peut être protégé par un circuit d'évitement d'erreurs pour éviter qu'une erreur du type 1 au lieu de 0 (erreur de polarité 1) survienne sur une sortie du décodeur, ce qui amènerait à la sélection d'un mot mémoire qui ne devrait pas être sélectionné. Un circuit d'évitement d'erreurs du type 1 au lieu de 0 va assurer que cette erreur ne pourrait pas survenir. Il n'est pas nécessaire, surtout si le décodeur a un très grand nombre de sorties, de corriger les erreurs du type 0 au lieu de 1. On pourra toutefois prévoir de les détecter pour activer un cycle de reprise. Ce dernier type d'erreurs conduit à la situation où toutes les sorties du décodeur sont égales à 0. Pour détecter ces erreurs, on peut utiliser un circuit qui signale un fonctionnement erroné lorsqu'un nombre de sorties du décodeur différent de 1 prend la valeur 1. Ce circuit permet de détecter les erreurs des deux types sur les sorties du décodeur. Un circuit plus simple permettant de détecter uniquement les erreurs du type 0 au lieu de 1 (qui sont les erreurs qui nous intéressent ici) consiste en une porte logique OU.
Ainsi, en figure 9, le circuit logique combinatoire 30 fournit une pluralité des sorties protégées par une pluralité d'éléments de forçage d'état 44. Ledit état prédéterminé est 0
(1). En l'absence d'erreurs, une seule des sorties des éléments de forçage d'état prend la valeur 1 (0) . Le circuit de détection d'erreurs est une porte logique OU (ET) 61 qui signale
1 'occurrence 'une erreur lorsque toutes les sorties des éléments de forçage d'état sont égales à 0 (1) pendant une période du cycle de fonctionnement qui a une durée supérieure à un certain seuil.
Dans certains circuits, certaines erreurs sont dangereuses uniquement pendant certains cycles du fonctionnement. Par exemple, dans une mémoire, les erreurs du type 1 au lieu de 0 sur la sortie du décodeur sont dangereuses uniquement en cycle d'écriture. Ainsi, un élément de retard utilisé dans le circuit d'erreur peut être court-circuité en cycle de lecture pour éviter la diminution de la vitesse du fonctionnement induite par l'élément de retard. Ainsi, en figure 10, le mécanisme d'évitement d'erreurs comprend un élément de retard 50 d'une durée prédéterminée supérieure à la durée maximale des erreurs transitoires, et un élément de forçage d'état 44, le circuit comprend aussi un circuit de dérivation (mux) 70, permettant de contourner 1 ' élément de retard lorsqu 'un signal de contrôle C2 est actif. L'élément de forçage d'état est prévu pour être transparent lorsque les sorties du circuit logique combinatoire et de l'élément de retard sont identiques, et pour produire à sa sortie une valeur prédéterminée quand lesdites sorties sont distinctes .
En figure 11, le mécanisme d'évitement d'erreurs comprend un élément de retard 50 d'une durée prédéterminée supérieure à la durée maximale des erreurs transitoires, un circuit de dérivation 70 permettant de forcer la sortie de l'élément de retard à la valeur 1 lorsqu'un signal de contrôle C2 est égal à 1, et un élément de forçage d'état 44 réalisé par une porte ET ayant une entrée connectée à la sortie du circuit logique combinatoire 30 et une autre entrée connectée à la sortie du circuit 70.
En figure 12, le mécanisme d'évitement d'erreurs comprend un élément de retard 50, et un élément de forçage d'état 44. Le circuit comprend aussi un circuit de dérivation 70 permettant de contourner 1 'élément de forçage d' état lorsqu 'un signal de contrôle C2 est actif. L'élément de forçage d'état est prévu pour être transparent lorsque les sorties du circuit logique combinatoire et de l'élément de retard sont identiques, et pour produire à sa sortie une valeur prédéterminée quand lesdites sorties sont distinctes. Bien entendu, la présente invention est susceptible de diverses variantes et modifications qui apparaîtront à l'homme de l'art. En particulier, on pourra tenir compte de divers cas particuliers dans lesquels il sera possible d'utiliser un mécanisme de détection et de reprise plutôt que de prévoir des éléments intrinsèquement immunisés contre les fautes.

Claims

REVENDICATIONS
1. Architecture de circuit numérique comprenant des circuits combinatoires (10, 12) , des circuits de mémoire de courte durée (11) non susceptibles de stocker des données pendant plus de k cycles de fonctionnement, des circuits de mémoire de longue durée (13) susceptibles de stocker des données pendant plus de k cycles de fonctionnement du circuit, caractérisée en ce qu'elle comprend des systèmes de protection contre les perturbations distincts pour les différents types de circuits et selon la fonctionnalité de ces circuits : a) pour les circuits de mémorisation de longue durée
(13), des moyens d'immunisation aux fautes ; b) pour les circuits de mémorisation de courte durée (11) , des mécanismes à détection d'erreurs et reprise ; c) pour les circuits combinatoires (10) contrôlant des mémoires de courte durée et/ou déterminant seulement des données à écrire dans des mémoires de longue durée, des systèmes de détection d'erreurs et de reprise dans les mémoires concernées.
2. Architecture selon la revendication 1, caractérisée en ce que des bascules comportant une commande de maintien d'état (hold) sont traitées comme des circuits de mémorisation de longue durée quand la commande de maintien est active.
3. Architecture selon la revendication 1, caractérisée en ce que le mécanisme de reprise (20) comporte un mécanisme de répétition des k derniers cycles de fonctionnement.
4. Architecture selon la revendication 3, caractérisée en ce que le mécanisme de répétition des k derniers cycles comporte des mécanismes de préservation d'état associés à des éléments de mémorisation, capables à tout moment de sauvegarder des données entrant et/ou sortant des éléments de mémorisation pendant les k derniers cycles d'opération.
5. Architecture selon la revendication 2, caractérisée en ce qu'elle comporte un mécanisme de contrôle d'horloge pouvant réduire la fréquence de 1 'horloge pendant la phase de répétition des k derniers cycles d'opération.
6. Architecture selon la revendication 1, caractérisée en ce qu'au moins certains des circuits combinatoires susceptibles de fournir des instructions de commande à des mémoires de longue durée sont protégés par un mécanisme d'évitement des erreurs seulement pour des erreurs d'une polarité déterminée.
7. Architecture selon la revendication 6, caractérisée en ce qu'au moins certains desdits au moins certains des circuits combinatoires sont associés à un mécanisme de détection des erreurs de la polarité opposée.
8. Architecture selon la revendication 6, caractérisée en ce que certains des circuits combinatoires susceptibles de fournir des instructions de commande à des mémoires de longue durée sont munis d'un mécanisme de blocage de l'opération de mémoire suite à une détection d'erreurs.
9. Architecture selon la revendication 7, caractérisée en ce que le mécanisme d'évitement des erreurs comprend un circuit de génération d'un code de contrôle d'erreurs (40) pour les sorties du circuit combinatoire (30) , et un élément de forçage d'état (44) disposé aux sorties du circuit combinatoire, commandé par le circuit de génération de code de contrôle pour être transparent lorsque le code de contrôle est correct, et pour forcer ses sorties à un état prédéterminé, correspondant à une polarité d'erreur opposée à la polarité d'erreur que le circuit combinatoire doit éviter, lorsque le code de contrôle est incorrect.
10. Architecture selon la revendication 9, caractérisée en ce que le circuit de génération de code de contrôle d'erreurs (40) génère une sortie de détection d'erreurs qui prend la valeur 1 (0) pour indiquer l'occurrence d'une erreur et la valeur 0 (1) pour indiquer le fonctionnement correct, et ledit élément de forçage d'état (44) est une porte OU (ET) ayant une entrée connectée à la sortie du circuit combinatoire (30) et une autre entrée connectée à la sortie de détection d'erreurs du circuit de génération de code de contrôle d'erreurs (40), de façon que lorsque la sortie du circuit de génération de code de contrôle d'erreurs indique l'occurrence d'une erreur, la sortie de l'élément de forçage d'état prend la valeur 1 (0) correspondant audit état prédéterminé et, lorsque la sortie du circuit de génération de code de contrôle d'erreurs indique un fonctionnement correct, la sortie de l'élément de forçage d'état prend la même valeur que la sortie du circuit combinatoire.
11. Architecture selon la revendication 9, caractérisée en ce que le circuit de génération de code de contrôle d'erreurs (40) comprend un circuit de prédiction (45) qui calcule un code détecteur d'erreurs pour les sorties du circuit combinatoire (30) à partir de signaux autres que les sorties du circuit combinatoire, un circuit de calcul (47) qui calcule ledit code détecteur d'erreurs à partir des sorties du circuit combinatoire, et un circuit (42) de vérification du code détecteur d'erreurs généré par le circuit de prédiction (45) et du code détecteur d'erreurs généré par le circuit de calcul (47) .
12. Architecture selon la revendication 9, caractérisée en ce que le circuit de génération de code de contrôle d'erreurs (40) comprend un circuit combinatoire dupliqué (30'), ledit élément de forçage d'état (44) étant prévu pour être transparent lorsque les sorties du circuit combinatoire (30) et du circuit combinatoire dupliqué sont identiques, et pour produire à sa sortie un état prédéterminé lorsque lesdites sorties sont distinctes.
13. Architecture selon la revendication 9, caractérisée en ce que l'élément de forçage d'état (44) est composé d'un dispositif d'initialisation (52) mettant préalablement et de façon systématique la sortie de l'élément de forçage d'état audit état prédéterminé, et d'un dispositif de modification (53) , qui modifie par la suite la valeur de cette sortie uniquement si le code de contrôle est correct et que ledit état prédéterminé est différent de l'état correspondant à la valeur de sortie du circuit combinatoire.
14. Architecture selon la revendication 9, caractérisée en ce que le circuit de génération de code de contrôle d'erreurs (40) comprend un élément de retard (50) capable de retarder les sorties du circuit combinatoire (30) d'une durée prédéterminée supérieure à la durée maximale des erreurs transitoires, l'élément de forçage d'état (44) étant prévu pour être transparent lorsque les sorties du circuit combinatoire et de l'élément de retard sont identiques, et pour produire à sa sortie un état prédéterminé lorsque lesdites sorties sont distinctes.
15. Architecture selon la revendication 12 ou 14, caractérisée en ce que le mécanisme de détection d'erreurs de la polarité opposée est réalisé par un comparateur (61) qui signale une erreur lorsque les sorties du circuit combinatoire (30) et du circuit de génération de code de contrôle d'erreurs (40) sont distinctes pendant une période du cycle de fonctionnement dont la durée est supérieure à un certain seuil.
16. Architecture selon la revendication 9, caractérisée en ce que le circuit combinatoire (30) fournit une pluralité de sorties protégées par une pluralité d'éléments de forçage d'état (44) ; ledit état prédéterminé est 0 (1) ; en l'absence d'erreurs une seule des sorties des éléments de forçage d'état prend la valeur 1 (0) ; et le mécanisme de détection d'erreurs de la polarité opposée est réalisé par une porte logique OU (ET) (61) qui signale l'occurrence d'une erreur lorsque toutes les sorties des éléments de forçage d'état sont égales à 0 (1) pendant une période du cycle de fonctionnement qui a une durée supérieure à un certain seuil.
17. Architecture selon la revendication 9, caracté- risée en ce que, pendant une phase de fonctionnement, le mécanisme d'évitement d'erreurs est court-circuité par un circuit de dérivation (70) qui impose sur la sortie du mécanisme d'évitement d'erreurs la valeur de la sortie du circuit combinatoire (30) , en présence d'un signal de commande (C2) .
PCT/FR2002/003484 2001-10-12 2002-10-11 Architecture de circuits protegee contre des perturbations WO2003032160A2 (fr)

Priority Applications (3)

Application Number Priority Date Filing Date Title
EP02785543A EP1451688A2 (fr) 2001-10-12 2002-10-11 Architecture de circuits protegee contre des perturbations
US10/492,294 US20040255204A1 (en) 2001-10-12 2002-10-11 Circuit architecture protected against perturbations
US11/904,762 US20080028278A1 (en) 2001-10-12 2007-09-27 Circuit architecture protected against perturbations

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR01/13241 2001-10-12
FR0113241A FR2830972B1 (fr) 2001-10-12 2001-10-12 Architecture de circuits protegee contre des perturbations

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US11/904,762 Division US20080028278A1 (en) 2001-10-12 2007-09-27 Circuit architecture protected against perturbations

Publications (2)

Publication Number Publication Date
WO2003032160A2 true WO2003032160A2 (fr) 2003-04-17
WO2003032160A3 WO2003032160A3 (fr) 2004-06-17

Family

ID=8868280

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR2002/003484 WO2003032160A2 (fr) 2001-10-12 2002-10-11 Architecture de circuits protegee contre des perturbations

Country Status (4)

Country Link
US (2) US20040255204A1 (fr)
EP (1) EP1451688A2 (fr)
FR (1) FR2830972B1 (fr)
WO (1) WO2003032160A2 (fr)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2790887B1 (fr) * 1999-03-09 2003-01-03 Univ Joseph Fourier Circuit logique protege contre des perturbations transitoires
DE102006027448B4 (de) * 2006-06-12 2008-05-15 Universität Potsdam Schaltungsanordnung

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4199810A (en) * 1977-01-07 1980-04-22 Rockwell International Corporation Radiation hardened register file
US4612632A (en) * 1984-12-10 1986-09-16 Zenith Electronics Corporation Power transition write protection for PROM
US5173905A (en) * 1990-03-29 1992-12-22 Micron Technology, Inc. Parity and error correction coding on integrated circuit addresses
EP0547412A2 (fr) * 1991-12-16 1993-06-23 International Business Machines Corporation Conception à tolérance de fautes pour défauts dépendant du temps
US5410550A (en) * 1990-04-13 1995-04-25 Vlsi Technology, Inc. Asynchronous latch circuit and register
US5508634A (en) * 1993-02-10 1996-04-16 Fujitsu Limited Semiconductor integrated circuit device of dual configuration having enhanced soft error withstanding capacity
FR2790887A1 (fr) * 1999-03-09 2000-09-15 Univ Joseph Fourier Circuit logique protege contre des perturbations transitoires

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4942516A (en) * 1970-12-28 1990-07-17 Hyatt Gilbert P Single chip integrated circuit computer architecture
US5336939A (en) * 1992-05-08 1994-08-09 Cyrix Corporation Stable internal clock generation for an integrated circuit
US5699365A (en) * 1996-03-27 1997-12-16 Motorola, Inc. Apparatus and method for adaptive forward error correction in data communications
US5931959A (en) * 1997-05-21 1999-08-03 The United States Of America As Represented By The Secretary Of The Air Force Dynamically reconfigurable FPGA apparatus and method for multiprocessing and fault tolerance
US6519715B1 (en) * 1998-05-22 2003-02-11 Hitachi, Ltd. Signal processing apparatus and a data recording and reproducing apparatus including local memory processor
US6636991B1 (en) * 1999-12-23 2003-10-21 Intel Corporation Flexible method for satisfying complex system error handling requirements via error promotion/demotion

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4199810A (en) * 1977-01-07 1980-04-22 Rockwell International Corporation Radiation hardened register file
US4612632A (en) * 1984-12-10 1986-09-16 Zenith Electronics Corporation Power transition write protection for PROM
US5173905A (en) * 1990-03-29 1992-12-22 Micron Technology, Inc. Parity and error correction coding on integrated circuit addresses
US5410550A (en) * 1990-04-13 1995-04-25 Vlsi Technology, Inc. Asynchronous latch circuit and register
EP0547412A2 (fr) * 1991-12-16 1993-06-23 International Business Machines Corporation Conception à tolérance de fautes pour défauts dépendant du temps
US5508634A (en) * 1993-02-10 1996-04-16 Fujitsu Limited Semiconductor integrated circuit device of dual configuration having enhanced soft error withstanding capacity
FR2790887A1 (fr) * 1999-03-09 2000-09-15 Univ Joseph Fourier Circuit logique protege contre des perturbations transitoires

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
JANUSZ SOSNOWSKI: "TRANSIENT FAULT TOLERANCE IN DIGITAL SYSTEMS" IEEE MICRO, IEEE INC. NEW YORK, US, vol. 14, no. 1, 1 février 1994 (1994-02-01), pages 24-35, XP000433306 ISSN: 0272-1732 *
SAXENA N ET AL: "ERROR DETECTION AND HANDLING IN A SUPERSCALAR, SPECULATIVE OUT-OF-ORDER EXECUTION PROCESSOR SYSTEM" 25TH. INTERNATIONAL SYMPOSIUM ON FAULT TOLERANT COMPUTING. DIGEST OF PAPERS. PASADENA, JUNE 27 - 30, 1995, INTERNATIONAL SYMPOSIUM ON FAULT TOLERANT COMPUTING, LOS ALAMITOS, IEEE COMP. SOC. PRESS, US, vol. SYMP. 25, 27 juin 1995 (1995-06-27), pages 464-471, XP000573655 ISBN: 0-7803-2965-1 *

Also Published As

Publication number Publication date
WO2003032160A3 (fr) 2004-06-17
EP1451688A2 (fr) 2004-09-01
US20040255204A1 (en) 2004-12-16
US20080028278A1 (en) 2008-01-31
FR2830972B1 (fr) 2004-09-10
FR2830972A1 (fr) 2003-04-18

Similar Documents

Publication Publication Date Title
FR2884080A1 (fr) Ensemble de circuits electroniques protege contre des perturbations transitoires
FR2903219A1 (fr) Procede de rafraichissement d'un memoire vive dynamique et dispositif de memoire vive dynamique correspondant,en particulier incorpore dans un telephone mobile cellulaire
JP2005525673A (ja) 連想メモリ(cam)
FR2501891A1 (fr) Memoire semi-conductrice autocorrectrice d'erreurs
FR2948795A1 (fr) Detecteur d'injection de fautes dans un circuit integre
FR2790887A1 (fr) Circuit logique protege contre des perturbations transitoires
EP3633677A1 (fr) Circuit memoire imc a cellules 6t
FR2831971A1 (fr) Procede de memorisation de donnees avec correction d'erreur
EP1417582B1 (fr) Ensemble de circuits electroniques comportant des moyens de decontamination de parties contaminees par des erreurs
FR3039922A1 (fr) Procede d'ecriture dans une memoire du type eeprom et dispositif de memoire correspondant
FR3015103A1 (fr) Systeme d'ecriture de donnees dans une memoire
EP1451688A2 (fr) Architecture de circuits protegee contre des perturbations
FR2875352A1 (fr) Procede de detection et de correction d'erreurs pour une memoire et circuit integre correspondant
EP1880387A1 (fr) Dispositif de protection d'une memoire contre les attaques par injection d'erreur
FR2700056A1 (fr) Procédé de programmation en champ uniforme d'une mémoire électriquement programmable et mémoire mettant en Óoeuvre le procédé.
FR3055735A1 (fr) Amplificateur de detection apte a controler une operation de lecture dans une memoire
EP3680904B1 (fr) Circuit de detection de donnee predominante dans une cellule memoire
EP4195050A1 (fr) Procede et dispositif de correction d'erreurs dans les memoires resistives
FR2656127A1 (fr) Circuit de protection contre une operation d'ecriture incorrecte pour un dispositif de memoire.
WO2010128068A1 (fr) Procede de protection de circuits electroniques, dispositif et systeme mettant en œuvre le procede
EP0765497B1 (fr) Correction d'erreurs dans une memoire
FR2732133A1 (fr) Detecteur de coherence d'informations contenues dans un circuit integre
EP1503288B1 (fr) Cellule de détection d'erreurs pour processeur intégré
FR3126159A1 (fr) Méthode de protection d'un circuit intégré numerique reconfigurable contre les erreurs réversibles
WO2006134308A2 (fr) Circuit integre protege contre les courts-circuits et les erreurs de fonctionnement suite au passage d'une radiation ionisante

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): JP

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): AT BE BG CH CY CZ DE DK EE ES FR GB GR IE IT LU MC NL PT SE SK TR

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: 10492294

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 2002785543

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 2002785543

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: JP

WWW Wipo information: withdrawn in national office

Country of ref document: JP