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 Automated method of manufacturing an electronic circuit adapted to detect or mask faults by time redundancy, computer program and associated electronic circuit
La présente invention concerne le domaine des circuits numériques électroniques adaptés pour détecter ou masquer des fautes. The present invention relates to the field of electronic digital circuits adapted to detect or mask faults.
Il existe différentes techniques, dans les circuits électroniques, permettant de détecter ou masquer des erreurs passagères (en anglais « soft errors ») causées par des activités radioélectriques ou électromagnétiques de type effet singulier transitoire (SEU, « Single Event Upset » en anglais ou SET, « Single Event Transient »). There are different techniques, in electronic circuits, for detecting or masking transient errors (in English "soft errors") caused by transient singular effect electromagnetic or electromagnetic activities (SEU, "Single Event Upset" in English or SET , "Single Event Transient").
Une première technique est la redondance modulaire triple ou TMR (en anglais « Triple Modular Redundancy »), dans laquelle les éléments matériels d'un circuit électronique sont triplés, les mêmes données d'entrée sont fournies en parallèle à chacun des composants triplés, et des modules de vote associés à ces composants triplés sélectionnent comme résultat fourni par le triplet de composants le résultat commun fourni en parallèle par au moins deux des composants. Cette première technique nécessite cependant un grand nombre de composants, ce qui est un inconvénient important, notamment en termes de compacité des circuits électroniques. A first technique is the triple modular redundancy or TMR (in English "Triple Modular Redundancy"), in which the hardware elements of an electronic circuit are tripled, the same input data are provided in parallel with each of the triplet components, and voting modules associated with these triplet components select as the result provided by the component triplet the common result provided in parallel by at least two of the components. This first technique, however, requires a large number of components, which is a significant drawback, particularly in terms of compactness of the electronic circuits.
Une deuxième technique est la redondance temporelle, typiquement la redondance temporelle triple (TTR), selon laquelle les mêmes données d'entrée sont fournies trois fois successivement au même composant matériel qui délivre trois résultats, et des modules de vote associés au composant sélectionnent comme résultat fourni par le composant le résultat fourni au moins deux fois par le composant parmi les trois résultats. A second technique is time redundancy, typically triple time redundancy (TTR), in which the same input data is provided three times in succession to the same hardware component that delivers three results, and voting modules associated with the component select as a result. provided by the component the result provided at least twice by the component among the three results.
La présente invention concerne plus particulièrement cette deuxième technique, et notamment un procédé de synthèse automatisée d'un circuit électronique adapté pour détecter ou masquer des fautes par redondance temporelle, ledit procédé comprenant une étape mise en œuvre par ordinateur, selon laquelle pour mettre en œuvre une fonction de cellule mémoire du circuit électronique, on insère dans le circuit électronique un bloc mémoire comprenant une chaîne de retard comportant N cellules mémoires en série, N≥2, et un bloc de sélection (voteur / détecteur) qui, dans un mode de fonctionnement correspondant à une redondance temporelle d'ordre n1, impliquant n1 réexécutions, n1e[1,N], compare le contenu courant des n1 cellules mémoires stockant n1 données d'entrée redondantes successivement fournies au bloc mémoire, et
- si n1>2, sélectionne comme données de sortie de la fonction de cellule mémoire, le contenu majoritaire des n1 cellules mémoires et optionnellement délivre en outre un signal de faute si les contenus de deux cellules mémoires diffèrent ; The present invention more particularly relates to this second technique, and in particular to a method of automated synthesis of an electronic circuit adapted to detect or hide faults by time redundancy, said method comprising a computer implemented step, according to which to implement a memory cell function of the electronic circuit is inserted in the electronic circuit a memory block comprising a delay chain comprising N series memory cells, N≥2, and a selection block (voter / detector) which, in a mode of operation corresponding to a time redundancy of order n1, involving n1 reruns, n1e [1, N], compares the current contents of the n1 memory cells storing n1 redundant input data successively supplied to the memory block, and if n1> 2, selects as output data of the memory cell function, the majority content of the n1 memory cells and optionally additionally delivers a fault signal if the contents of two memory cells differ;
- si n1=2, délivre comme données de sortie de la fonction de cellule mémoire, le contenu d'une des deux cellules mémoires contenant la donnée redondante courante et délivre en outre un signal de faute si les contenus de ces deux cellules mémoires diffèrent ; - If n1 = 2, delivers as output data of the memory cell function, the contents of one of the two memory cells containing the current redundant data and further delivers a fault signal if the contents of these two memory cells differ;
- si n1=1, délivre comme donnée de sortie de la fonction de cellule mémoire, le contenu de la cellule mémoire déterminée. - If n1 = 1, delivers as output data of the memory cell function, the contents of the memory cell determined.
n\— \ n\ n \ - \ n \
Si n1>2, le circuit masque E[— -— fautes et optionnellement détecte E[— ] fautes, où £ est la fonction « partie entière ». Si n2=1, délivre comme donnée de sortie de la fonction de cellule mémoire, le contenu de la cellule mémoire déterminée. If n1> 2, the mask circuit E [- - faults and optionally detects E [-] faults, where £ is the function "integer part". If n2 = 1, delivers as output data of the memory cell function, the contents of the memory cell determined.
Le document US 7,200,822 B1 est un exemple de circuits avec redondance temporelle triple et plus. La technique qui y est décrite diminue cependant le débit de traitement du circuit. US 7,200,822 B1 is an example of circuits with triple time redundancy and more. The technique described therein, however, decreases the processing rate of the circuit.
A cet effet, suivant un premier aspect, l'invention propose un procédé de synthèse automatisée d'un circuit électronique adapté pour détecter ou masquer des fautes par redondance temporelle du type précité caractérisé en ce qu'on insère en outre un bloc de contrôle du circuit adapté pour émettre des signaux de commande des blocs mémoires, et en ce que le bloc de mémoire inséré est adapté pour, en fonction d'un signal de commande de basculement reçu du bloc de contrôle, basculer entre ledit mode de fonctionnement correspondant à une redondance temporelle d'ordre n1 et un autre mode de fonctionnement correspondant à une redondance temporelle d'ordre n2 e [1,N] selon lequel le circuit effectue n2 réexécutions, n2≠n1, dans lequel le bloc de sélection compare le contenu courant de n2 cellules déterminées parmi les N cellules mémoires stockant n2 données d'entrée redondantes successivement fournies au bloc mémoire, et : For this purpose, according to a first aspect, the invention proposes a method of automated synthesis of an electronic circuit adapted to detect or mask faults by time redundancy of the aforementioned type, characterized in that a control block of the above-mentioned type is furthermore inserted. circuit adapted to transmit control signals of the memory blocks, and in that the inserted memory block is adapted to switch, according to a toggle command signal received from the control block, between said operating mode corresponding to a temporal redundancy of order n1 and another mode of operation corresponding to a time redundancy of order n2 e [1, N] according to which the circuit performs n2 reruns, n2 ≠ n1, in which the selection block compares the current content of n2 determined cells among the N memory cells storing n2 redundant input data successively supplied to the memory block, and:
si n2>2, sélectionne comme donnée de sortie de la fonction de cellule mémoire, le contenu majoritaire desdites n2 cellules mémoires ; if n2> 2, selects as output data of the memory cell function, the majority content of said n2 memory cells;
si n2=2, délivre comme donnée de sortie de la fonction de cellule mémoire, le contenu d'une des deux cellules mémoires et délivre un signal de faute si les contenus des deux cellules mémoires diffèrent ; if n2 = 2, delivers as output data of the memory cell function, the contents of one of the two memory cells and delivers a fault signal if the contents of the two memory cells differ;
si n2=1, délivre comme donnée de sortie de la fonction de cellule mémoire, le contenu de la cellule mémoire déterminée.
L'invention permet d'adapter dynamiquement le compromis entre les corrections/détections de fautes et le débit de sortie du circuit. if n2 = 1, delivers as output data of the memory cell function, the contents of the memory cell determined. The invention makes it possible to dynamically adapt the compromise between the corrections / fault detections and the output rate of the circuit.
Une telle redondance temporelle dynamique permet de changer en cours d'exécution le nombre de réexécutions. Quand ce nombre est égal à 1, le circuit fonctionne sans réexécution et sans surcoût. Such dynamic time redundancy makes it possible to change the number of reruns during execution. When this number is 1, the circuit operates without replay and without additional cost.
L'adaptation dynamique du niveau de redondance temporelle mise en œuvre selon l'invention permet notamment d'adapter le fonctionnement du circuit fabriqué selon l'invention aux fluctuations des radiations dans l'environnement du circuit. The dynamic adaptation of the level of temporal redundancy implemented according to the invention makes it possible in particular to adapt the operation of the circuit manufactured according to the invention to the fluctuations of the radiation in the environment of the circuit.
Une telle redondance temporelle dynamique permet notamment d'obtenir des circuits masquant une erreur à l'aide de moyens équivalent à une redondance temporelle double au lieu de triple. Le principe est de tirer parti des K cycles d'horloge suivant l'occurrence d'une faute pendant lesquels, par hypothèse, aucune nouvelle faute n'aura lieu. Dans un circuit selon l'invention, suite à une détection d'erreur dans un mode de redondance double, le circuit bascule en mode non redondant pour faire une troisième exécution du calcul erroné, sans que le débit observé en sortie du circuit ne change (voir la section « Combinaison de la redondance temporelle dynamique double et de l'enregistrement avec retour arrière » ci-après). Such dynamic temporal redundancy makes it possible in particular to obtain circuits masking an error using means equivalent to a double temporal redundancy instead of triple. The principle is to take advantage of the K clock cycles following the occurrence of a fault during which, hypothetically, no new fault will occur. In a circuit according to the invention, following an error detection in a double redundancy mode, the circuit switches to non-redundant mode to make a third execution of the erroneous calculation, without the flow observed at the output of the circuit changing ( see "Combining Dual Dynamic Time Redundancy and Rewind Recording" below).
Dans des modes de réalisation, le procédé de synthèse automatisée d'un circuit électronique tolérant aux fautes par redondance temporelle suivant l'invention comporte en outre une ou plusieurs des caractéristiques suivantes : In embodiments, the automated synthesis method of a temporally redundant fault tolerant electronic circuit according to the invention further comprises one or more of the following features:
- le bloc de mémoire inséré comporte en outre, quand N>2, un bloc de retard supplémentaire disposé en sortie de la chaîne de retard et comportant au moins the inserted memory block furthermore comprises, when N> 2, an additional delay block disposed at the output of the delay chain and comprising at least
N - l N - l
E[— -— cellules mémoires ; en mode de fonctionnement correspondant à une redondance temporelle d'ordre n, n>2, tous les n cycles, le bloc de sélection sélectionne comme donnée de sortie de la fonction de cellule mémoire, le contenu majoritaire des n cellules mémoires de la chaîne de retard, et chaque me cycle suivant lesdits n cycles, avec 1≤i<n, sélectionne comme donnée de sortie de la fonction de cellule mémoire, le contenu majoritaire d'un ensemble de dernières cellules de la chaîne de retard et de cellules du bloc de retard supplémentaire, lesdites cellules de l'ensemble stockant des données d'entrée redondantes ayant été successivement fournies au bloc mémoire ; cet ensemble comporte par exemple audit me cycle, les (n-i) dernières cellules de la chaîne de retard et de /' cellules du bloc à retard supplémentaire ;
-N=3, n1=1, n1=2, ou n1=3 et n2, n2≠n1, prend une valeur égale à 1, 2 ou 3 en fonction de la commande de basculement ; ce mode de réalisation correspond à une redondance dynamique triple, qui inclut donc les modes de fonctionnement d'ordre n=1, n=2 et n=3 ainsi que toutes les transitions possibles entre ces trois modes de fonctionnement ; E [- - memory cells; in operation mode corresponding to a time redundancy of order n, n> 2, every n cycles, the selection block selects as output data from the memory cell function, the majority content of the n memory cells of the memory channel. delay, and each me next cycle of said n cycles, 1≤i <n, selects as output data of the memory cell function, the majority content of a set of last cells of the delay chain and block the cells additional delay, said cells of the set storing redundant input data having been successively supplied to the memory block; this set comprises, for example me said cycle, (or) the last cells of the delay chain and / 'cells additional delay block; -N = 3, n1 = 1, n1 = 2, or n1 = 3 and n2, n2 ≠ n1, takes a value equal to 1, 2 or 3 depending on the tilt command; this embodiment corresponds to a triple dynamic redundancy, which therefore includes the operating modes of order n = 1, n = 2 and n = 3 as well as all possible transitions between these three modes of operation;
-N=2, n1=1 ou n1=2 et n2, n2≠n1, prend une valeur égale à 7 ou 2 en fonction de la commande de basculement ; ce mode de réalisation correspond à une redondance dynamique double, qui inclut donc les modes de fonctionnement d'ordre n=1 et n=2 ainsi que toutes les transitions possibles entre ces deux modes de fonctionnement ; -N = 2, n1 = 1 or n1 = 2 and n2, n2 ≠ n1, takes a value equal to 7 or 2 depending on the toggle command; this embodiment corresponds to a double dynamic redundancy, which therefore includes the operating modes of order n = 1 and n = 2 as well as all possible transitions between these two modes of operation;
- la commande de basculement du mode de fonctionnement selon une redondance temporelle d'ordre 2 vers le mode de fonctionnement selon une redondance temporelle d'ordre 1, et réciproquement, est déclenchée suite à la réception par le bloc de commande d'un signal de faute délivré par un des blocs mémoires ; the operating mode switching command according to a time redundancy of order 2 to the operating mode according to a time redundancy of order 1, and vice versa, is triggered following the reception by the control block of a signal of fault issued by one of the memory blocks;
- la deuxième cellule de la chaîne de retard mémorise, à chaque cycle d'horloge du circuit, le contenu mémorisé au cycle d'horloge précédent, dans la première cellule de la chaîne de retard, le bloc de mémoire inséré comporte en outre une chaîne d'enregistrement adaptée pour, sur réception d'un signal de commande d'enregistrement du bloc de contrôle, mémoriser la valeur de signal d'entrée du bloc mémoire également fournie en parallèle à la première cellule de la chaîne de retard, et en mode de fonctionnement selon une redondance d'ordre 2, le signal de commande d'enregistrement est émis tous les deux cycles de sorte que, lorsque des données redondantes mémorisées dans les deux cellules mémoires de la chaîne de retard sont comparées par le bloc de sélection, la dernière cellule de la chaîne d'enregistrement comporte en mémoire les données qui étaient mémorisées deux cycles auparavant dans chacune des deux cellules mémoires de la chaîne de retard ; the second cell of the delay chain stores, at each clock cycle of the circuit, the content stored in the previous clock cycle, in the first cell of the delay chain, the inserted memory block further comprises a chain for receiving, on receiving a control signal from the control block, storing the input signal value of the memory block also supplied in parallel with the first cell of the delay chain, and in the according to a redundancy of order 2, the recording control signal is output every two cycles so that when redundant data stored in the two memory cells of the delay chain are compared by the selection block, the last cell of the recording chain contains in memory the data which were stored two cycles previously in each of the two memory cells of the delay chain ;
- suite à la réception par le bloc de commande d'un signal de faute délivré par un bloc mémoire signalant que des données redondantes mémorisées dans les deux cellules mémoires de la chaîne de retard diffèrent, le bloc de commande fournit au bloc de mémoire une commande de retour arrière suite à laquelle le bloc mémoire délivre comme donnée de sortie de la fonction de cellule mémoire, le contenu courant de la dernière cellule de la chaîne d'enregistrement; ce mode de réalisation permet de masquer une erreur avec seulement une redondance double au lieu de triple ;
- on insère en outre à l'entrée du circuit électronique un bloc d'entrée du circuit recevant la donnée extérieure courante à traiter suréchantillonnée deux fois, following reception by the control block of a fault signal delivered by a memory block signaling that redundant data stored in the two memory cells of the delay chain differ, the control block supplies the memory block with a command backward response following which the memory block delivers as output data of the memory cell function, the current contents of the last cell of the recording string; this embodiment makes it possible to mask an error with only double redundancy instead of triple; an input block of the circuit receiving the current external data item to be oversampled twice is also inserted at the input of the electronic circuit,
le bloc d'entrée, dans le mode de fonctionnement selon une redondance temporelle d'ordre 2, mémorisant la donnée extérieure courante reçue et fournissant en outre simultanément au circuit ladite donnée extérieure courante reçue et, le bloc d'entrée, dans le mode de fonctionnement selon une redondance temporelle d'ordre 1, fournissant au circuit des données extérieures successives non redondantes précédemment mémorisées par le bloc d'entrée pour permettre une troisième exécution de ces données par le circuit ; et the input block, in the mode of operation according to a second order temporal redundancy, storing the current external data item received and also supplying the circuit with said current external data received and, the input block, with the mode of reception. operation according to a first order time redundancy, providing the circuit with successive non-redundant external data previously stored by the input block to allow a third execution of these data by the circuit; and
selon lequel on insère en outre à la sortie du circuit électronique un bloc de sortie du circuit recevant la donnée délivrée par le circuit, ledit bloc de sortie, dans le mode de fonctionnement selon une redondance temporelle d'ordre 2, mémorisant les données délivrées par le circuit et appliquant un retard donné avant de les délivrer, et le bloc de sortie, dans le mode de fonctionnement selon une redondance temporelle d'ordre 1, délivrant sans retard les données délivrées par le circuit, dupliquant des données délivrées par le circuit et délivrant les données dupliquées, according to which is further inserted at the output of the electronic circuit an output block of the circuit receiving the data output by the circuit, said output block, in the operating mode according to a time redundancy of order 2, storing the data delivered by the circuit and applying a given delay before delivering them, and the output block, in the mode of operation according to a temporal redundancy of order 1, delivering without delay the data delivered by the circuit, duplicating data delivered by the circuit and delivering the duplicate data,
le recouvrement de fautes par le circuit étant ainsi masqué vis-à-vis de l'amont du circuit et de l'aval du circuit par lesdits blocs d'entrée et de sortie. Les blocs d'entrée et de sortie permettent en mode sans redondance temporelle (n2=1) de rendre l'étape de retour en arrière et de recalcul transparent vis-à-vis de l'environnement extérieur. the fault recovery by the circuit is thus masked vis-à-vis the upstream circuit and downstream of the circuit by said input and output blocks. The input and output blocks allow in non-redundant mode (n2 = 1) to make the step of backtracking and recalculation transparent vis-à-vis the external environment.
Suivant un deuxième aspect, la présente invention propose un programme d'ordinateur à installer dans un outil de fabrication automatisée d'un circuit électronique adapté pour détecter ou masquer des fautes par redondance temporelle, ledit programme comportant des instructions pour mettre en œuvre les étapes d'un procédé selon le premier aspect de l'invention lors d'une exécution du programme par des moyens de traitement de l'outil de fabrication automatisé de circuit électronique. According to a second aspect, the present invention proposes a computer program to be installed in an automated manufacturing tool of an electronic circuit adapted to detect or hide faults by time redundancy, said program comprising instructions for implementing the steps of FIG. a method according to the first aspect of the invention during execution of the program by processing means of the automated electronic circuit manufacturing tool.
Suivant un troisième aspect, la présente invention propose un circuit électronique adapté pour détecter ou masquer des fautes par redondance temporelle comprenant un ensemble de bloc(s) mémoire(s), chaque bloc mémoire dudit ensemble comprenant une chaîne de retard comportant N cellules mémoires en série, N≥2, et un bloc de sélection qui, dans un mode de fonctionnement correspondant à une redondance temporelle d'ordre n1, n1 e [1,N], compare le contenu courant de n1 desdites N cellules mémoires stockant n1 données d'entrée redondantes successivement fournies au bloc mémoire, et
- si n1>2, sélectionne comme donnée de sortie de la fonction de cellule mémoire, le contenu majoritaire des n1 cellules mémoires et optionnellement délivre en outre un signal de faute si les contenus de deux cellules mémoires diffèrent ; According to a third aspect, the present invention proposes an electronic circuit adapted to detect or mask faults by time redundancy comprising a set of memory block (s), each memory block of said set comprising a delay chain comprising N memory cells in memory. series, N≥2, and a selection block which, in an operating mode corresponding to a time redundancy of order n1, n1 e [1, N], compares the current contents of n1 of said N memory cells storing n1 data d redundant inputs successively supplied to the memory block, and if n1> 2, selects as output data from the memory cell function, the majority content of the n1 memory cells and optionally additionally delivers a fault signal if the contents of two memory cells differ;
- si n1=2, délivre comme donnée de sortie de la fonction de cellule mémoire, le contenu d'une des deux cellules mémoires et délivre en outre un signal de faute si les contenus des deux cellules mémoires diffèrent ; - If n1 = 2, delivers as output data of the memory cell function, the contents of one of the two memory cells and further delivers a fault signal if the contents of the two memory cells differ;
- si n1=1, délivre comme donnée de sortie de la fonction de cellule mémoire, le contenu de la cellule mémoire déterminée ; ledit circuit électronique étant caractérisé en ce qu'il comporte un bloc de contrôle du circuit adapté pour émettre des signaux de commande desdits blocs mémoires, et en ce que chacun desdits blocs mémoires est adapté pour, en fonction d'un signal de commande de basculement reçu du bloc de contrôle, basculer entre ledit mode de fonctionnement correspondant à une redondance temporelle d'ordre n1 et un autre mode de fonctionnement correspondant à une redondance temporelle d'ordre n2 e [1,N], n2≠n1, dans lequel le bloc de sélection compare le contenu courant de n2 cellules déterminées, parmi lesdites N cellules mémoires, stockant n2 données d'entrée redondantes successivement fournies au bloc mémoire, et : - If n1 = 1, delivers as output data of the memory cell function, the contents of the memory cell determined; said electronic circuit being characterized in that it comprises a control block of the circuit adapted to transmit control signals of said memory blocks, and in that each of said memory blocks is adapted to, according to a failover control signal received from the control block, switch between said operating mode corresponding to a time redundancy of order n1 and another operating mode corresponding to a time redundancy of order n2 e [1, N], n2 ≠ n1, in which the selection block compares the current contents of n2 determined cells, among said N memory cells, storing n2 redundant input data successively supplied to the memory block, and:
- si n2>2, sélectionne comme donnée de sortie de la fonction de cellule mémoire, le contenu majoritaire desdites n2 cellules mémoires ; if n2> 2, selects as output data of the memory cell function, the majority content of said n2 memory cells;
- si n2=2, délivre comme donnée de sortie de la fonction de cellule mémoire, le contenu d'une des deux cellules mémoires et délivre un signal de faute si les contenus des deux cellules mémoires diffèrent ; if n2 = 2, delivers as output data of the memory cell function, the content of one of the two memory cells and delivers a fault signal if the contents of the two memory cells differ;
- si n2=1, délivre comme donnée de sortie de la fonction de cellule mémoire, le contenu de la cellule mémoire déterminée. - If n2 = 1, delivers as output data of the memory cell function, the contents of the memory cell determined.
Ces caractéristiques et avantages de l'invention apparaîtront à la lecture de la description qui va suivre, donnée uniquement à titre d'exemple, et faite en référence aux dessins annexés, sur lesquels : These features and advantages of the invention will appear on reading the description which follows, given solely by way of example, and with reference to the appended drawings, in which:
- la figure 7 est une représentation d'un circuit numérique avant transformation selon l'invention ; FIG. 7 is a representation of a digital circuit before transformation according to the invention;
la figure 2 est une vue d'un outil de synthèse automatisée de circuits électroniques tolérants aux fautes dans un mode de réalisation de l'invention ; la figure 3 est une vue d'un circuit numérique après transformation dans un mode de réalisation de l'invention ;
la figure 4 est une vue d'un bloc mémoire de la figure 3 dans un mode de réalisation de l'invention ; Figure 2 is a view of an automated synthesis tool of fault-tolerant electronic circuits in one embodiment of the invention; Figure 3 is a view of a digital circuit after transformation in an embodiment of the invention; Figure 4 is a view of a memory block of Figure 3 in one embodiment of the invention;
la figure 5 est une vue du bloc mémoire de la figure 3 dans un mode de réalisation de l'invention correspondant à une redondance temporelle dynamique double ; FIG. 5 is a view of the memory block of FIG. 3 in one embodiment of the invention corresponding to a dual dynamic time redundancy;
la figure 6 est une vue du bloc mémoire de la figure 3 dans un mode de réalisation de l'invention correspondant à une redondance temporelle dynamique triple ; FIG. 6 is a view of the memory block of FIG. 3 in one embodiment of the invention corresponding to a triple dynamic time redundancy;
la figure 7 représente un exemple de voteur utilisé en figure 6 ; Figure 7 shows an example of voter used in Figure 6;
la figure 8 est une vue d'un bloc mémoire de la figure 3 disposant d'un mécanisme d'enregistrement/retour arrière dans un mode de réalisation de l'invention ; Figure 8 is a view of a memory block of Figure 3 having a recording / reverse mechanism in one embodiment of the invention;
la figure 9 est une vue d'un bloc mémoire de la figure 3 dans un mode de réalisation de l'invention combinant les fonctionnalités de redondance temporelle dynamique double et de mécanisme d'enregistrement/retour arrière ; Fig. 9 is a view of a memory block of Fig. 3 in an embodiment of the invention combining dual dynamic time redundancy and back-up / recording mechanism features;
la figure 10 est une vue d'un circuit numérique dans un mode de réalisation de l'invention correspondant à une redondance temporelle double avec retour arrière ; FIG. 10 is a view of a digital circuit in one embodiment of the invention corresponding to a dual time redundancy with backtracking;
la figure 11 représente une mémoire tampon d'entrée dans un mode de réalisation de l'invention de redondance dynamique double avec retour arrière ; Fig. 11 shows an input buffer in one embodiment of the dual dynamic redundancy with backtracking invention;
la figure 12 représente une mémoire tampon de sortie dans un mode de réalisation de l'invention de redondance dynamique double avec retour arrière ; Fig. 12 shows an output buffer in one embodiment of the dual dynamic redundancy with backtracking;
la figure 13 est une vue d'une machine à états finis d'un bloc de contrôle dans un mode de réalisation de l'invention de redondance dynamique double avec retour arrière ; Fig. 13 is a view of a finite state machine of a control block in an embodiment of the invention of double reverse dynamic redundancy;
la figure 14 représente des étapes d'un procédé dans un mode de mise en œuvre de l'invention ; Figure 14 shows steps of a method in one embodiment of the invention;
la figure 15 décrit des étapes d'un flot de conception de circuits intégrés dans un mode de réalisation de l'invention. Figure 15 depicts steps of an integrated circuit design flow in one embodiment of the invention.
Dans les figures, des références identiques repèrent des éléments similaires.
La figure 7 est une représentation générale d'un circuit numérique 10, comprenant une partie combinatoire 77 et une partie séquentielle 72, pilotées par un signal d'horloge clk. In the figures, identical references identify similar elements. FIG. 7 is a general representation of a digital circuit 10, comprising a combinational part 77 and a sequential part 72, driven by a clk clock signal.
La partie combinatoire 77, comportant des portes combinatoires AND, OR, NOT etc., réalise une fonction booléenne sans mémoire φ. The combinatorial part 77, comprising combinatorial gates AND, OR, NOT, etc., performs a Boolean function without memory φ.
La partie séquentielle 72 comporte des cellules mémoires ou Flip-Flops (FF) qui mémorisent chacune un bit, ou Flip-Flops (FF) destinées à mémoriser les données délivrées par la partie combinatoire 77. Une cellule mémoire 73 est représentée en figure 7. Elle reçoit sur un fil d'entrée D un signal si et délivre sur un fil de sortie Q un signal de sortie so (on notera qu'ici une flip-flop de type D est décrite, mais l'invention est bien sûr applicable à tout type de cellule mémoire). The sequential part 72 comprises memory cells or Flip-Flops (FF) which each memorize a bit, or Flip-Flops (FF) intended to memorize the data delivered by the combinatorial part 77. A memory cell 73 is represented in FIG. It receives on an input wire D a signal IF and delivers on an output wire Q an output signal SO (note that here a flip-flop of type D is described, but the invention is of course applicable to any type of memory cell).
Le circuit numérique 10 prend en entrée un vecteur de bits d'entrée primaire PI et délivre en sortie un vecteur de bits de sortie primaire PO à chaque cycle d'horloge. The digital circuit 10 takes as input a primary input bit vector PI and outputs a primary output bit vector PO at each clock cycle.
On note Cl , respectivement CO , le vecteur de bits d'entrée, respectivement le vecteur de bits de sortie, de la partie combinatoire 77. On note SI , respectivement SO , le vecteur de bits d'entrée, respectivement le vecteur de bits de sortie, de la partie séquentielle 72. The input bit vector, respectively the output bit vector, of the combinatorial part 77 is denoted by Cl or CO respectively. The input bit vector, respectively the bit vector of output, of the sequential part 72.
Ces vecteurs satisfont les égalités suivantes : These vectors satisfy the following equalities:
CO = (p(CI) CÎ = PÎ ® SÔ CÔ = PÔ ® SÎ (1 ) où ® est l'opération de concaténation de vecteur. CO = (p (CI) C i = P i S S C C = = P ® S (1) where est is the vector concatenation operation.
On note v, la valeur du vecteur de bits v au me cycle d'horloge dans le circuit. On nomme v une composante quelconque du vecteur de bits v . We denote v the value of the bit vector v at my clock cycle in the circuit. We call v any component of the bit vector v.
Les modèles de faute considérés sont de la forme « au plus m effets singuliers transitoires (SET) tous les K cycles d'horloge », dénotés SET(m,K). Ceci englobe les SEUs directes d'une cellule mémoire et les SEUs conséquence d'un SET dans la partie combinatoire. Selon le modèle de faute SET(1,K), il n'y a pas d'occurrence de faute dans les cycles d'horloge suivant la dernière occurrence de faute. The fault models considered are of the form "at most m transient singular effects (SET) every K clock cycles", denoted SET (m, K). This includes the direct SEUs of a memory cell and the SEUs resulting from a SET in the combinatorial part. According to the SET (1, K) fault model, there is no fault occurrence in the clock cycles following the last fault occurrence.
Un SET dans la partie combinatoire 77 d'un circuit peut conduire à la corruption non déterministe de n'importe quelle cellule mémoire connectée (par un trajet purement combinatoire) à l'endroit où le SET a eu lieu. Un SET dans la partie combinatoire 77 à un cycle /' peut provoquer la corruption de sortie(s) dans POi et d'entrée(s) dans Sh , ce qui alors cause la corruption de cellules mémoires dans la partie séquentielle 72. Cette
dernière corruption est visible au cycle d'horloge Un SET peut arriver sur n'importe quel fil du circuit (connexions entre portes logiques, cellules mémoire, entrées, sorties). A SET in the combinatorial portion 77 of a circuit may lead to non-deterministic corruption of any connected memory cell (by a purely combinatorial path) at the location where the SET occurred. A SET in the combinatorial portion 77 to a cycle / ' may cause output corruption (s) in POi and input (s) in Sh, which then causes the corruption of memory cells in the sequential portion 72. last corruption is visible in the clock cycle A SET can happen on any wire of the circuit (connections between logic gates, memory cells, inputs, outputs).
La figure 2 représente un outil 1 de synthèse automatisée de circuits électroniques tolérants aux fautes dans un mode de réalisation de l'invention. Cet outil 1 comprend un microprocesseur 2 et une mémoire 3. Dans la mémoire 3, un programme d'instructions logicielles P est stocké qui, lorsqu'il est exécuté par le microprocesseur 2, est adapté pour mettre en œuvre les étapes indiquées ci-dessous de transformation automatique du design du circuit. FIG. 2 represents a tool 1 for automated synthesis of fault-tolerant electronic circuits in one embodiment of the invention. This tool 1 comprises a microprocessor 2 and a memory 3. In the memory 3, a program of software instructions P is stored which, when it is executed by the microprocessor 2, is adapted to implement the steps indicated below. automatic transformation of the design of the circuit.
Un tel outil 1 est adapté pour, à partir d'une description d'un circuit numérique de type réseau de portes logiques (en anglais « netlist ») comprenant des portes AND, OR, NOT et des cellules mémoires ou Flip-Flops, effectuer une étape de transformation automatique du design du circuit pour obtenir un circuit transformé, puis pour fabriquer un circuit FGPA ou un circuit ASIC à partir du circuit transformé sous forme de netlist. Such a tool 1 is adapted for, from a description of a digital circuit of the type of logic gate network (in English "netlist") comprising AND, OR, NOT and memory cells or Flip-Flops, perform a stage of automatic transformation of the design of the circuit to obtain a transformed circuit, then to manufacture a circuit FGPA or an ASIC circuit from the transformed circuit in netlist form.
Les vecteurs en lettres minuscules, par exemple pi , po , représentent les signaux dans un circuit numérique transformé par l'outil de fabrication de circuit numérique qui correspondent aux vecteurs en lettres majuscules, par exemple PI , PO . Ils satisfont aux mêmes égalités (1) indiquées précédemment. The lowercase vectors, for example pi, po, represent the signals in a digital circuit transformed by the digital circuit fabrication tool that correspond to the uppercase letter vectors, for example PI, PO. They satisfy the same equalities (1) indicated above.
Redondance temporelle dynamique Dynamic temporal redundancy
Suivant un premier aspect de l'invention, l'outil 1 met en œuvre une étape de transformation automatique 100 du design du circuit pour obtenir un circuit à tolérance aux fautes par redondance temporelle dynamique. According to a first aspect of the invention, the tool 1 implements an automatic transformation step 100 of the circuit design to obtain a fault-tolerant circuit by dynamic temporal redundancy.
Un circuit tel qu'obtenu après transformation est adapté pour basculer, sans interruption de calcul, d'un mode de fonctionnement selon une redondance temporelle d'ordre n à un mode de fonctionnement selon une redondance temporelle d'ordre m, avec n≠m, suite à un signal de commande de basculement de mode indiquant le passage de l'ordre n à l'ordre m, ce qui permet un compromis dynamique entre le débit et la tolérance aux fautes. A circuit as obtained after transformation is adapted to switch, without any interruption of calculation, from an operating mode according to a time redundancy of order n to an operating mode according to a time redundancy of order m, with n ≠ m , following a mode switching control signal indicating the transition from the order n to the order m, which allows a dynamic compromise between the flow rate and the fault tolerance.
Dans cette étape de transformation 100, l'outil 1 remplace chaque cellule mémoire 13 d'entrée SI, de sortie SO et prévue dans le circuit d'origine, par un bloc mémoire 14 d'entrée si et de sortie so et ajoute en outre un bloc de contrôle 15 qui génère des signaux de contrôle, comme représenté par les modules 12 et 15 de la figure 3.
Le bloc mémoire 14 implémente un mécanisme de redondance temporelle dynamique adapté pour masquer et/ou détecter des fautes causées par des SETs dans au moins un des modes de fonctionnement du bloc mémoire 14. Le bloc mémoire 14 est adapté pour basculer au cours du fonctionnement opérationnel du circuit, d'un mode de fonctionnement selon une redondance temporelle d'ordre n à un mode de fonctionnement selon une redondance temporelle d'ordre m, avec n et m nombres entiers et n≠m, suite à une commande de basculement de mode indiquant le passage de l'ordre n à l'ordre m. In this transformation step 100, the tool 1 replaces each input memory cell 13, output S0, and provided in the original circuit, with a memory block 14 of input S1 and output N0 and additionally a control block 15 which generates control signals, as represented by the modules 12 and 15 of FIG. The memory block 14 implements a dynamic temporal redundancy mechanism adapted to mask and / or detect faults caused by SETs in at least one of the operating modes of the memory block 14. The memory block 14 is adapted to switch during operational operation. of the circuit, from an operating mode according to an n-order time redundancy to a mode of operation according to a time redundancy of order m, with n and m integers and n ≠ m, following a mode switching command indicating the transition from order n to order m.
Dans un mode de réalisation, le bloc de contrôle 15 détermine les signaux de commande du bloc mémoire 14 en fonction notamment de l'ordre n de la redondance temporelle couramment sélectionné pour le circuit. Il est implémenté par exemple à l'aide d'une machine à états finis, par exemple elle-même protégée par TMR. In one embodiment, the control block 15 determines the control signals of the memory block 14 in particular according to the order n of the time redundancy currently selected for the circuit. It is implemented for example using a finite state machine, for example itself protected by TMR.
Ci-après on nomme mode n le mode de fonctionnement avec redondance temporelle d'ordre n (n entier naturel) : Hereinafter n mode is defined as the mode of operation with time redundancy of order n (n natural number):
- le flux d'entrée PI du circuit est sur-échantillonné n fois et noté pi , le débit du circuit initial est n fois plus important que le débit du circuit transformé ; the input flux PI of the circuit is oversampled n times and noted pi, the flow rate of the initial circuit is n times greater than the flow rate of the transformed circuit;
n le bloc mémoire 14 est adapté pour détecter ou masquer jusqu'à ^[—] fautes n the memory block 14 is adapted to detect or hide up to ^ [-] faults
[E[.] représente la fonction « partie entière ») quand n est supérieur ou égal à 2, en fonction de comparaisons entre elles, tous les n cycles d'horloge, des n données successivement mémorisées par le bloc mémoire et correspondant aux n signaux d'entrée si, redondants (dans le cas d'un masquage de faute, la donnée de sortie sélectionnée par le bloc mémoire est la donnée majoritaire parmi les n données comparées). Un bloc mémoire 14 comporte un pipeline de retard dynamique, une ligne de retard supplémentaire et un voteur/détecteur. [E] represents the function "integer part") when n is greater than or equal to 2, as a function of comparisons between them, all the n clock cycles, of the n data successively stored by the memory block and corresponding to the n if redundant input signals (in the case of a fault mask, the output data selected by the memory block is the majority data among the n compared data). A memory block 14 includes a dynamic delay pipeline, an additional delay line and a voter / detector.
Le pipeline de retard dynamique est adapté pour, dans un mode de redondance temporelle d'ordre n, mémoriser n signaux successifs fournis en entrée du bloc mémoire. Il est adapté pour modifier dynamiquement sa fonction de retard n en fonction de signaux de commande transmis par le bloc de contrôle 15. The dynamic delay pipeline is adapted to, in an n-order time redundancy mode, storing n successive signals supplied at the input of the memory block. It is adapted to dynamically modify its delay function n as a function of control signals transmitted by the control block 15.
La chaîne de retard supplémentaire est adaptée pour, dans un mode de n -\ The additional delay chain is suitable for, in a mode of n - \
redondance temporelle d'ordre n, mémoriser E\ signaux ayant été successivement fournis en entrée du bloc mémoire 14, de manière à permettre la réalisation par le
voteur/détecteur 18 de n décisions de vote/détection successives (dans d'autres modes ation, la ligne de retard supplémentaire est adaptée pour sauvegarder plus de signaux ayant été successivement fournis).temporal redundancy of order n, storing E \ signals having been successively supplied at the input of the memory block 14, so as to allow the realization by the Voter / detector 18 of n successive voting / detection decisions (in other modes, the additional delay line is adapted to save more signals that have been successively supplied).
Le bloc mémoire 14 comporte un voteur/détecteur adapté pour déterminer n décisions de type masquage ou/et détection de fautes, successives, en mode de redondance temporelle d'ordre n, en fonction de données mémorisées dans le pipeline et/ou dans la ligne de retard supplémentaire. The memory block 14 comprises a voter / detector adapted to determine n decisions of the type masking or / and detection of faults, successive n-mode time redundancy mode, according to data stored in the pipeline and / or in the line additional delay.
Un bloc de mémoire 14 est représenté dans un mode de réalisation, en figure 4. A memory block 14 is shown in one embodiment, in FIG. 4.
Le pipeline 76 de retard dynamique comporte N (N≥2) cellules mémoires 13 disposées en cascade et N-2 multiplexeurs 20 (on notera que d'autres implantations sont possibles : par exemple, on pourrait ne pas utiliser de multiplexeurs 20 et changer le voteur/détecteur pour sélectionerles cellules à comparer/voter. The dynamic delay pipeline 76 has N (N≥2) memory cells 13 arranged in cascade and N-2 multiplexers 20 (it should be noted that other implementations are possible: for example, one could not use multiplexers 20 and change the voter / detector to select cells to compare / vote.
Les N cellules mémoires successives sont nommées respectivement di, d2, dN-The N successive memory cells are named respectively di, d 2 , d N -
Un multiplexeur 20 est disposé entre chaque cellule d, et chaque cellule di+1, \e[1,N-2] (quand N>2). La cellule d-i a pour signal d'entrée le signal si. La cellule dN a pour signal d'entrée le signal de sortie de dN-i- La sortie de chaque cellule d,, ie[1,N-2], est délivrée sur l'entrée 0 du multiplexeur 20 disposé entre chaque cellule d, et chaque cellule dj+i. Le signal si est délivré sur l'entrée 7 du multiplexeur 20 disposé entre chaque cellule d, et chaque cellule di+i. La sortie du multiplexeur 20 disposé entre les cellules d, et di+i cellule d,, ie[1,N-2], est délivrée sur l'entrée de la cellule di+i. A multiplexer 20 is disposed between each cell d, and each cell d i + 1 , \ e [1, N-2] (when N> 2). The cell di has for signal input the signal if. The cell d N has for its input signal the output signal of d N-1. The output of each cell d 1, ie [1, N-2], is delivered to the input 0 of the multiplexer 20 placed between each cell d, and each cell dj + i. The signal if is delivered to the input 7 of the multiplexer 20 disposed between each cell d, and each cell d i + i. The output of the multiplexer 20 disposed between the cells d, and d i + i cell d ,, ie [1, N-2], is delivered to the input of the cell d i + i.
De façon connue, un bus de contrôle, nommé ici modeS, indique à chaque multiplexeur 20, celle de ses entrées 0 et 7 qui doit être délivrée en sortie du multiplexeur 20 (si le signal du bus de contrôle modeS est égal à 7 : l'entrée 7, recevant si est délivrée en sortie du multiplexeur ; si le signal du bus de contrôle modeS est égal à 0 : l'entrée 0, recevant la sortie de la cellule précédente, est délivrée en sortie du multiplexeur). Ce fonctionnement connu d'un multiplexeur est aussi celui des autres multiplexeurs décrits plus loin et ne sera donc pas rappelé systématiquement. In known manner, a control bus, named here modeS, indicates to each multiplexer 20, that of its inputs 0 and 7 to be output from the multiplexer 20 (if the signal of the control bus modeS is equal to 7: 1 input 7, receiving if is outputted from the multiplexer, if the signal of the control bus modeS is equal to 0: the input 0, receiving the output of the previous cell, is output from the multiplexer). This known operation of a multiplexer is also that of the other multiplexers described below and therefore will not be recalled systematically.
La sortie des cellules d,, i=1 à N, est en outre fournie au voteur/détecteur 18 sur le bus de données dataA. The output of the cells d ,, i = 1 to N, is further provided to the voter / detector 18 on the dataA data bus.
Les signaux de contrôle modeS sont fonction du mode de redondance temporelle sélectionné.
n -\ The modeS control signals are a function of the selected time redundancy mode. not -\
La ligne de retard supplémentaire 77 comporte k= E\ cellules mémoires d, , dk en série. L'entrée de d^ est alimentée par la sortie de dN. L'entrée de ofy+1 est alimentée par la sortie de d , avec j≥1. Les contenus de ces cellules sont fournis sur le n -\ The additional delay line 77 has k = E \ memory cells d 1, d k in series. The input of d ^ is fed by the output of d N. The input of of y + 1 is fed by the output of d, with j≥1. The contents of these cells are provided on the n - \
bus de données dataB. El de ces cellules sont utilisées par le voteur/détecteur 18 dataB bus. El of these cells are used by the voter / detector 18
2 2
pour réaliser les n-1 dernières décisions relatives à n données redondantes en entrée du bloc mémoire 14. to make the n-1 last decisions relating to n redundant data at the input of the memory block 14.
Le voteur/détecteur 18 est adapté pour déterminer le signal de sortie so en fonction de données redondantes présentes sur les bus dataA et dataB et pour prendre des décisions de masque et/ou détection d'erreur suivant l'ordre n courant de redondance temporelle. Dans une décision de masquage, le voteur/détecteur compare les entrées qui lui sont fournies et sélectionne comme signal so la valeur majoritaire parmi ces entrées. The voter / detector 18 is adapted to determine the output signal so as a function of redundant data present on the dataA and dataB buses and to make mask decisions and / or error detection in the order n current time redundancy. In a masking decision, the voter / detector compares the entries supplied to him and selects as signal n the majority value among these entries.
Si n=1 (mode de fonctionnement = mode 7), il n'y a pas de redondance temporelle. Le débit du circuit transformé est le même que le débit du circuit initial. Il n'y a pas détection, ni correction de fautes. If n = 1 (operating mode = mode 7), there is no time redundancy. The flow rate of the transformed circuit is the same as the flow of the initial circuit. There is no detection or correction of mistakes.
Dans le mode de réalisation décrit, le signal si est fourni en entrée de la cellule dN- par contrôle des multiplexeurs 20 (dans d'autres modes de réalisation, par exemple sans multiplexeur 20, il est fourni à chaque cellule). C'est le contenu de la cellule dN-i qui est délivré comme signal so par le voteur/détecteur 18 (ainsi le signal so au cycle / est le signal fourni en entrée du bloc mémoire 14 au cycle i-1). In the embodiment described, the signal if is supplied at the input of the cell D N - by control of the multiplexers 20 (in other embodiments, for example without multiplexer 20, it is provided to each cell). It is the content of the cell d N- i which is delivered as signal n0 by the voter / detector 18 (thus the signal SO at the cycle / is the signal supplied at the input of the memory block 14 at the cycle i-1).
Si n=2 (mode de fonctionnement = mode 2), le signal si est fourni en entrée de la cellule dN.i à un cycle pair 2/ ; au cycle 2Ί+1, le signal si redondant est à son tour fourni en entrée de la cellule dN-i tandis que la sortie de la cellule dN-i est fournie en entrée de la cellule dN. Le voteur/détecteur 18 fournit comme signal so le contenu de dN à chaque cycle. Il compare, au cycle 2/', les données (issues de données d'entrée redondantes) mémorisées dans les cellules dN.i et dN mémoire après qu'elles aient été fournies en entrée du bloc mémoire 14 au cycle 2Ί-1 et 2/'-2, et délivre un signal fail indiquant 0 si les données comparées sont égales (aucune faute détectée) et indiquant 1 si les données comparées ne sont pas égales (faute détectée). Aux cycles impairs, la valeur du signal fail est ignorée car la comparaison effectuée porte sur des données non redondantes. La valeur de ce signal fail est par exemple fournie au bloc de contrôle 15 ou en sortie du circuit.
Si n=3 (mode de fonctionnement = mode 3), les cellules dN.2, dN-i et dN sont utilisées ainsi que , similairement aux cellules respectives d, d', d" et s de la figure 6 dont le fonctionnement est décrit plus bas. If n = 2 (operating mode = mode 2), the signal if is supplied at the input of the cell d N .i to an even cycle 2 /; in the cycle 2Ί + 1, the signal if redundant is in turn provided at the input of the cell d N -i while the output of the cell d N -i is provided at the input of the cell d N. The voter / detector 18 provides as a signal so the content of d N each cycle. It compares, in cycle 2 / ' , the data (derived from redundant input data) stored in the memory cells N .i and d N after they have been inputted from memory block 14 to cycle 2Ί-1. and 2 / ' -2, and outputs a fail signal indicating 0 if the compared data is equal (no fault detected) and indicating 1 if the compared data is not equal (fault detected). At odd cycles, the value of the signal fail is ignored because the comparison is made with non-redundant data. The value of this signal fail is for example supplied to the control block 15 or to the output of the circuit. If n = 3 (operating mode = mode 3), the cells d N. 2 , d N-1 and d N are used as well as, similarly to the respective cells d, d ', d "and s of Figure 6 whose operation is described below.
De façon générale, en redondance temporelle d'ordre n≥3 (mode de fonctionnement = mode n), les cellules du pipeline dN.n+i, dN-i et dN sont utilisées, ainsi que les cellules de la ligne de retard supplémentaire d^ , d n l . Si n est l'ordre du In general, in time redundancy of order n≥3 (operating mode = mode n), the cells of the pipeline d N. n + i, -i d N and d N are used, as well as cells of the line of further delay d ^, d nl. If n is the order of the
ΕίΎ] Εί Ύ ]
mode de redondance couramment sélectionné pour le fonctionnement du circuit, les mêmes données d'entrée sont fournies n fois à la partie combinatoire 11 du circuit qui recalcule n fois le même résultat, qui se retrouve alors progressivement sauvé dans les n cellules mémoires d d2, dn du pipeline 16. Ces n résultats redondants constituent le jeu courant de résultats redondants redundancy mode currently selected for the operation of the circuit, the same input data are provided n times to the combinatorial part 11 of the circuit which recalculates the same result n times, which is then found gradually saved in the n memory cells dd 2 , a n n pipeline 16. These results represent the current redundant set of redundant results
Lorsque ces n résultats redondants sont stockés dans les n cellules d d2, dn, le voteur/détecteur 18 prend une première décision en fonction de ces n résultats qui lui sont fournis en entrée sur le bus dataA. Puis les données redondantes en sortie de la cellule dN sont successivement mémorisées dans la ligne de retard supplémentaire 17, When these n redundant results are stored in the n cells dd 2 , d n, the voter / detector 18 makes a first decision based on these n results which are inputted to it on the dataA bus. Then the redundant data at the output of the cell d N are successively stored in the additional delay line 17,
n -\ not -\
qui vont en contenir jusqu'à E\ dans les n-1 cycles suivants au cours desquels le which will contain up to E \ in the following n-1 cycles during which the
2 2
décideur/voteur prend n-1 décisions sur les résultats redondants du jeu courant mémorisés dans les cellules mémoires du pipeline 16 et de la ligne de retard supplémentaire 17, via les bus de données dataA et dataB. Ainsi au me (i<n) cycle suivant, la décision porte sur la valeur majoritaire parmi les (n-i) résultats redondants du The decision maker / voter makes n-1 decisions on the redundant results of the current game stored in the memory cells of the pipeline 16 and the additional delay line 17 via the dataA and dataB data buses. So to me (i <n) the next cycle, the decision relates to the majority value from (or) redundant results
n -\ jeu courant de résultats redondants dans les cellules dNn.i+i, dN et les min(i , El ) n - \ current set of redundant results in the d cells Nn .i + i , d N and the min (i, El)
2 premières cellules de la ligne de retard supplémentaire 17 stockant également ce résultat redondant (soit d d η ). Ainsi au (n-1)eme cycle suivant, la décision porte sur le mm(i,E[—— ]) seul résultat redondant du jeu courant de résultats redondants dans la cellule dN et sur les First 2 cells of the additional delay line 17 also storing this redundant result (ie dd η ). Thus (n-1) th next cycle, the decision relates to the mm (i, E [-]) single redundant result of the current set of redundant results in the cell and the N
n -\ not -\
résultats redondants du jeu courant de résultats redondants dans les E cellules de redundant results of the current set of redundant results in the E cells of
2 2
la ligne de retard supplémentaire 17 considérées. Alors, dans le pipeline 16, les n-1 résultats redondants du jeu suivant de résultats redondants sont contenus dans les cellules dN.n+i et dN-i-the additional delay line 17 considered. Then, in the pipeline 16, the n-1 redundant results of the following set of redundant results are contained in the N cells. n + i and d N -i-
Les signaux de commande fetchA indiquent à chaque cycle d'horloge, en fonction de l'ordre de redondance temporelle couramment sélectionné, celle(s) des sorties des
cellules mémoires sur les bus dataA, dataB, que le voteur/décideur 18 doit considérer dans sa décision courante. The fetchA control signals indicate at each clock cycle, according to the currently selected time redundancy order, that (s) of the outputs of the memory cells on dataA buses, dataB, that the voter / decision-maker 18 must consider in his current decision.
A titre d'illustration d'un mode de réalisation de l'invention, un circuit est produit avec des modes alternatifs de fonctionnement 2 et 5, qui ainsi soit détecte un seul SET (mode 2), soit masque jusqu'à deux SETs (mode 5). As an illustration of an embodiment of the invention, a circuit is produced with alternative modes of operation 2 and 5, which thus detects a single SET (mode 2), or masks up to two SETs ( mode 5).
Les signaux de contrôle modeS, fetchA sont déterminés par le bloc de contrôle 15, en fonction notamment du mode de redondance temporelle sélectionné et du cycle courant. Un changement de mode temporel est réalisé, selon les modes de réalisation, de façon automatisée ou non, par exemple lors du franchissement d'un seuil de radiations dans l'environnement du circuit ou suivant l'occurrence d'une faute. The modeS, fetchA control signals are determined by the control block 15, in particular according to the selected time redundancy mode and the current cycle. Depending on the embodiments, a temporal mode change is made automatically or not, for example when crossing a radiation threshold in the environment of the circuit or following the occurrence of a fault.
Lors des changements de modes, les modules interfacés au circuit doivent s'adapter aux changements d'ordre de redondance, notamment le niveau de suréchantillonnage doit suivre l'ordre de redondance. During the mode changes, the modules interfaced to the circuit must adapt to the redundancy order changes, in particular the level of oversampling must follow the redundancy order.
Les cas N=2 et N=3 sont détaillés ci-après. The cases N = 2 and N = 3 are detailed below.
Redondance temporelle dynamique double Dynamic dual time redundancy
Dans un mode de réalisation de l'invention considéré à présent, la valeur de N est choisie égale à 2, le circuit fabriqué selon l'invention disposant ainsi d'un mécanisme de redondance temporelle dynamique double selon le principe exposé ci-dessus conformément auquel le fonctionnement du circuit peut basculer entre les modes de redondance temporelle d'ordre n=1 et n=2. In one embodiment of the invention now considered, the value of N is chosen to be equal to 2, the circuit manufactured according to the invention thus having a dual dynamic redundancy mechanism according to the principle explained above according to which the operation of the circuit can switch between time redundancy modes of order n = 1 and n = 2.
La transformation 100 comprend donc la mise en œuvre de moyens de suréchantillonnage double du flux d'entrée PI qui sont activés lorsque n=2, la substitution de chaque cellule mémoire prévue dans le circuit original par un bloc mémoire 140 et l'ajout d'un bloc de contrôle 15. The transformation 100 therefore comprises the implementation of double oversampling means of the input stream PI which are activated when n = 2, the substitution of each memory cell provided in the original circuit by a memory block 140 and the addition of a control block 15.
Dans ce circuit, en référence à la figure 5, le bloc mémoire 140, remplaçant chaque cellule mémoire prévue dans le circuit original, comporte un pipeline 16 comportant les cellules d et d', correspondant respectivement aux cellules dN-i, dN de la figure 4 et un voteur/détecteur 18. In this circuit, with reference to FIG. 5, the memory block 140, replacing each memory cell provided in the original circuit, comprises a pipeline 16 comprising the cells d and d ', respectively corresponding to the cells of N- i, d N of Figure 4 and a voter / detector 18.
Le voteur/détecteur 18 comporte un multiplexeur 21 et un comparateur 22. The voter / detector 18 comprises a multiplexer 21 and a comparator 22.
Le multiplexeur 21 comporte deux entrées 0 et 1. Le signal de sortie so du bloc mémoire est le signal de sortie du multiplexeur. Il est égal soit à l'entrée 1, soit à l'entrée 0 en fonction des signaux de contrôle modeS. Le signal si est fourni en entrée de la cellule d, la sortie de la cellule d est fournie en entrée de la cellule d', en entrée du comparateur
22 et en entrée 0 du multiplexeur 27. La sortie de la cellule d' est fournie en entrée 7 du multiplexeur 27. The multiplexer 21 has two inputs 0 and 1. The output signal so of the memory block is the output signal of the multiplexer. It is equal to either input 1 or input 0 depending on the modeS control signals. The signal if is provided at the input of the cell d, the output of the cell d is provided at the input of the cell of, at the input of the comparator 22 and input 0 of the multiplexer 27. The output of the cell is supplied as input 7 of the multiplexer 27.
Le comparateur 22 est adapté pour comparer les valeurs fournies à chaque cycle d'horloge sur ses deux entrées, et délivrer un signal fail=0 quand les valeurs sont égales et un signal fail=1 quand les valeurs diffèrent. The comparator 22 is adapted to compare the values supplied with each clock cycle on its two inputs, and to deliver a signal fail = 0 when the values are equal and a signal fail = 1 when the values differ.
Mode n=1 Mode n = 1
En mode n=1, p/', = P\ , V/' entier non nul. Au cycle /', le bit s/, est donné en entrée de la cellule d. Dans ce mode, le multiplexeur 27 est piloté, par le signal modeS=0 émis par le bloc de contrôle 75, de sorte que la sortie multiplexeur 27, Le., le signal so, soit toujours égale à l'entrée 0 du multiplexeur Le., à la sortie de la cellule d. In mode n = 1, p / ' , = P \, V / ' nonzero integer. At the cycle / ' , the bit s /, is given at the input of the cell d. In this mode, the multiplexer 27 is controlled by the modeS = 0 signal transmitted by the control block 75, so that the multiplexer output 27, Le.sub.1, the signal so, is always equal to the input 0 of the multiplexer Le. at the exit of the cell d.
Mode n=2 Mode n = 2
En mode n=2, le flux d'entrée du circuit est suréchantillonné deux fois : p/2 = pi In mode n = 2, the input stream of the circuit is oversampled twice: p / 2 = pi
Les cellules d et d' contiennent donc des données redondantes à chaque cycle pair (par convention, le premier cycle est numéroté 0). Par exemple, si =u, si2=u, alors la paire (d, d') va contenir successivement les valeurs (0,0), (u,0), (u,u) ... en supposant que les valeurs initiales dans (d, d') étaient (0,0). The cells d and d thus contain redundant data at each even cycle (by convention, the first cycle is numbered 0). For example, if = u, if 2 = u, then the pair (d, d ') will successively contain the values (0,0), (u, 0), (u, u) ... assuming that the initial values in (d, d ') were (0,0).
Le voteur/détecteur 18 fournit comme signal so à chaque cycle le contenu de d'. The voter / detector 18 provides as signal each cycle the content of d.
Dans ce mode, le multiplexeur 27 est piloté, par le signal modeS émis par le bloc de contrôle 75, de sorte que sa sortie, Le., le signal so, soit toujours égale à l'entrée 7 du multiplexeur. In this mode, the multiplexer 27 is controlled by the modeS signal emitted by the control block 75, so that its output, Le., The signal so, is always equal to the input 7 of the multiplexer.
La valeur du signal fail retournée par le comparateur 22 n'est pas significative aux cycles impairs, puisqu'alors d et d' ne contiennent pas des données redondantes. The value of the signal fail returned by the comparator 22 is not significant to the odd cycles, since then d and d do not contain redundant data.
A un cycle pair 2/', une valeur de signal fail égale à 7 signale la détection d'une erreur dans la redondance des données alors mémorisées dans d et d', Le., fournies en entrée du bloc mémoire 740 aux cycles 2/ et 2/'-7. At an even cycle 2 / ' , a signal value fail equal to 7 signals the detection of an error in the redundancy of the data then stored in d and d', Le., Supplied at the input of the memory block 740 in cycles 2 / and 2 / '-7.
La redondance temporelle dynamique double selon l'invention permet, en mode n=2, de détecter des erreurs dans le modèle de faute SET(1,K) pour tout K≥2, et en mode n=1 d'avoir le même débit que le circuit initial. The double dynamic time redundancy according to the invention makes it possible, in mode n = 2, to detect errors in the fault model SET (1, K) for all K≥2, and in mode n = 1 to have the same bit rate than the initial circuit.
Redondance temporelle dynamique triple Triple Dynamic Time Redundancy
Dans un autre mode de réalisation de l'invention considéré à présent, la valeur de N est choisie égale à 3, le circuit fabriqué selon l'invention disposant ainsi d'un
mécanisme de redondance temporelle dynamique triple selon le principe général exposé ci-dessus, selon lequel le fonctionnement du circuit peut basculer entre les modes de redondance temporelle d'ordre n=1, n=2 et n=3. In another embodiment of the invention now considered, the value of N is chosen equal to 3, the circuit manufactured according to the invention thus having a triple dynamic time redundancy mechanism according to the general principle explained above, according to which the operation of the circuit can switch between time redundancy modes of order n = 1, n = 2 and n = 3.
La transformation 100 comprend donc la mise en œuvre de moyens de suréchantillonnage (x n) qui sont activés lorsque n=2 ou n=3, la substitution de chaque cellule mémoire prévue dans le circuit original par un bloc mémoire 141 et l'ajout d'un bloc de contrôle 15. The transformation 100 therefore comprises the implementation of oversampling means (xn) which are activated when n = 2 or n = 3, the substitution of each memory cell provided in the original circuit by a memory block 141 and the addition of a control block 15.
Dans ce circuit, en référence à la figure 6, le bloc mémoire 141, remplaçant chaque cellule mémoire prévue dans le circuit original, comporte un pipeline 16 comportant les cellules d, d' et d", correspondant respectivement aux cellules dN.2, dN- dN de la figure 4, la ligne de retard supplémentaire 13 et un voteur/détecteur 18. In this circuit, with reference to Figure 6, the memory block 141, replacing each memory cell provided in the original circuit includes a pipeline 16 having the cells d, d 'and d ", respectively corresponding to the cells of N. 2, d N - d N of FIG. 4, the additional delay line 13 and a voter / detector 18.
Un multiplexeur 20, comportant deux entrées 0 et 1, est disposé en amont de l'entrée de la cellule d'. L'entrée de d' est la sortie du multiplexeur 20. Le multiplexeur 20 reçoit sur son entrée 1 le signal si et sur son entrée 0 la sortie de la cellule d. Le signal de commande modeS indique celle des entrées 0 ou 1 à laquelle la sortie du multiplexeur 20 est égale : modeS=0 (n=3), la longueur du pipeline 16 est 3 : la sortie du multiplexeur est fixée égale à l'entrée 0 ; modeS=1 (n=1 ou n=2), la longueur active du pipeline 16 est 2 : la sortie du multiplexeur est fixée égale à l'entrée 1. A multiplexer 20, comprising two inputs 0 and 1, is arranged upstream of the input of the cell. The input of d is the output of the multiplexer 20. The multiplexer 20 receives on its input 1 the signal if and on its input 0 the output of the cell d. The modeS control signal indicates that of the inputs 0 or 1 at which the output of the multiplexer 20 is equal: modeS = 0 (n = 3), the length of the pipeline 16 is 3: the output of the multiplexer is set equal to the input 0; modeS = 1 (n = 1 or n = 2), the active length of the pipeline 16 is 2: the output of the multiplexer is set equal to the input 1.
La ligne de retard supplémentaire 13 comporte une cellule mémoire s correspondant à la cellule représentée en figure 4. The additional delay line 13 comprises a memory cell corresponding to the cell shown in FIG.
Le voteur/détecteur 18 comporte deux multiplexeurs 23, 23' et un voteur 24. The voter / detector 18 comprises two multiplexers 23, 23 'and a voter 24.
Le voteur 24 reçoit 3 entrées. Ces 3 entrées sont les sorties de d' et des multiplexeurs 23, 23'. Le voteur 24 compare les trois entrées, sélectionne parmi elles la valeur d'entrée majoritaire, cette valeur sélectionnée constituant le signal de sortie so délivré par le bloc mémoire 141. Le voteur 24 compare en outre les sorties de d' et d" et délivre un signal fail=0 si elles sont égales et un signal fail=1 dans le cas contraire. Voter 24 receives 3 entries. These 3 inputs are the outputs of d 'and multiplexers 23, 23'. The voter 24 compares the three entries, selects among them the majority input value, this selected value constituting the output signal so delivered by the memory block 141. The voter 24 further compares the outputs of d 'and d "and delivers a signal fail = 0 if they are equal and a signal fail = 1 otherwise.
Un exemple de structure d'un tel voteur 24 est représenté en figure 7, où le signal fail est le résultat d'une comparaison entre a et b, et so est le résultat du vote majoritaire effectué sur les entrées a, b et c. An exemplary structure of such a voter 24 is shown in Figure 7, where the signal fail is the result of a comparison between a and b, and so is the result of the majority vote made on the entries a, b and c.
Mode n=3 Mode n = 3
En mode n=3 (redondance d'ordre 3), en fonctionnement normal (i.e., sans le comportement de tous les blocs mémoires est décrit par les équations suivantes
V/' entier non nul, s/ , = = d'i+2 = d"i+3 = s,+4 = so ,+3 (2) In mode n = 3 (redundancy of order 3), in normal operation (ie, without the behavior of all memory blocks is described by the following equations V / ' non-zero integer, s /, = = of i + 2 = d " i + 3 = s, + 4 = so, + 3 (2)
Les signaux d'entrée et de sortie suréchantillonnés du circuit satisfont les équations {1), à savoir : The oversampled input and output signals of the circuit satisfy the equations {1), namely:
coi = (p(cii) cii = pii ® SOÎ coi = poi ® sii (3) coi = (p (cii) cii = pi i ® SO Î coi = po i ® sii (3)
Le flux de bits d'entrée d'ori ine PI est suréchantillonné 3 fois :The input bit stream of the original PI is oversampled 3 times:
Le signal de contrôle modeS est égal à 0. The control signal modeS is equal to 0.
A partir des équations (2), (3) et (4), il découle que le flux de bits de sortie de la partie combinatoire co après la transformation 100 du circuit est le flux de sortie CO du circuit original suréchantillonné trois fois : From equations (2), (3) and (4), it follows that the output bitstream of the combinatorial part co after the transformation 100 of the circuit is the output stream CO of the original circuit oversampled three times:
COîi-2 = COîi-l = COîi = COi COl-2 = COl-l = COl = COi
Dans ce mode de fonctionnement, les trois cellules d, d', d" ont un contenu égal tous les (3/'-2) cycles, soit : d3j_2 = d'3j_2 = d"3j_2 . In this mode of operation, the three cells d, d ', d "have an equal content all (3 /' -2) cycles, as follows: d 2 = d 3j _ '_ 3j 2 = d" 3j _ 2.
A chaque cycle, un vote du voteur/détecteur 18 sélectionnant la valeur majoritaire parmi les contenus des trois cellules d, d', d" masque ainsi une faute. Et seul le résultat de ce vote est fourni via so à la partie combinatoire du circuit. At each cycle, a vote of the voter / detector 18 selecting the majority value among the contents of the three cells d, d, masks a fault and only the result of this vote is provided via so to the combinatorial part of the circuit. .
Au premier cycle suivant chaque cycle spécifique où les trois cellules d, d', d" ont un contenu égal, la cellule s mémorise la valeur redondante stockée au cycle spécifique dans d", puis au deuxième cycle suivant, la cellule s mémorise la valeur redondante stockée au cycle spécifique dans d', soit : s3j _ = d"3j_2 et s3j = d'3j_2 , ce qui permet de garder le niveau de redondance nécessaire dans le bloc mémoire. In the first cycle following each specific cycle where the three cells d, d ', d "have an equal content, the cell s stores the redundant value stored in the specific cycle in d", then the next second cycle, the cell s stores the value redundant stored at the specific cycle in d ', ie: s 3j _ = d " 3j _ 2 and s 3j = d' 3j _ 2 , which keeps the level of redundancy required in the memory block.
Le vote au cycle spécifique 3/'-2 est réalisé sur les contenus des cellules d, d' et d" et le vote est réalisé à la place sur le contenu des cellules d', d" et s les deux cycles suivants, sélectionnant la valeur majoritaire parmi ces trois contenus. Cette fonctionnalité est mise en œuvre à l'aide du signal de commande fetchA émis par le bloc de contrôle 15 : fetchA=1 à chaque cycle 3Ί-2 (i.e. sortie du multiplexeur 23 est fixée égale à l'entrée 1 du multiplexeur 23) et fetchA=0 les cycles 3Ί-1 et 3/ (i.e. sortie du multiplexeur 23 est fixée égale à l'entrée 0 du multiplexeur 23). The vote in the specific cycle 3 / ' -2 is carried out on the contents of the cells d, d' and d "and the vote is made instead on the contents of the cells d, d" and s the following two cycles, selecting the majority value among these three contents. This functionality is implemented using the fetchA control signal emitted by the control block 15: fetchA = 1 at each cycle 3Ί-2 (ie output of the multiplexer 23 is set equal to the input 1 of the multiplexer 23) and fetchA = 0 cycles 3Ί-1 and 3 / (ie output of the multiplexer 23 is set equal to the input 0 of the multiplexer 23).
Supposons qu'au cycle 3/'-2, d, d' et d" comportent une valeur correcte redondante a ; le vote a lieu sur (a, a, a) stocké dans {d, d', d") ; le vote au cycle 3Ί-1 aura lieu sur (a, a, a) stocké dans (d d", s), d contenant alors la prochaine valeur du bit sur le flux initial, appelons-le b ; et au cycle 3i, le vote a lieu sur (b, a, a) stocké dans (cf, d", s), d et d' contenant alors chacun la valeur b. Ainsi si d" est corrompu à ce cycle 3/, le vote peut
retourner une valeur erronée qui sera propagée au bloc suivant. Mais cette valeur erronée étant précédée de deux valeurs correctes, elle sera corrigée au prochain cycle dans le bloc suivant (un SET supplémentaire ne pouvant survenir alors selon le modèle de faute considéré). Suppose that in cycle 3 / ' -2, d, d, and d' have a correct redundant value a, the vote takes place on (a, a, a) stored in {d, d ', d "); the vote in cycle 3Ί-1 will take place on (a, a, a) stored in (dd ", s), d then containing the next bit value on the initial stream, let's call it b, and in cycle 3i, the Voting takes place on (b, a, a) stored in (cf, d ", s), d and d, then each containing the value b. So if d "is corrupt at this cycle 3 /, the vote can return an erroneous value that will be propagated to the next block. But this erroneous value being preceded by two correct values, it will be corrected at the next cycle in the next block (an additional SET can not then occur according to the fault model considered).
Mode n=2 Mode n = 2
En mode n=2 (redondance d'ordre 2), en fonctionnement normal (i.e., sans faute), le comportement de tous les blocs est décrit par les égalités suivantes : In mode n = 2 (redundancy of order 2), in normal operation (i.e., without fault), the behavior of all the blocks is described by the following equalities:
V/' entier non nul, sii = dm = d'i+2 = d"i+3 = si+4 = soi+2 V / ' nonzero integer, sii = dm = d' i + 2 = d " i + 3 = s i + 4 = so i + 2
Pour fixer la sortie du multiplexeur 20 égale à l'entrée 7 du multiplexeur 20, le signal de control modeS est donc fixé à 7 par le bloc de contrôle 15 dans ce mode. To set the output of the multiplexer 20 equal to the input 7 of the multiplexer 20, the control signal modeS is therefore set to 7 by the control block 15 in this mode.
Le signal fetchA est fixé égal à 1. The fetchA signal is set equal to 1.
La cellule s ne participa pas aux décisions. The cell did not participate in the decisions.
En mode n=2, le flux d'entrée du circuit est suréchantillonné deux fois : p/ 2 = pi 21 = Pl > ■ In mode n = 2, the input flow of the circuit is oversampled twice: p / 2 = pi 21 = Pl > ■
Le flux de bits de sortie de la partie combinatoire co après la transformation 100 du circuit est le flux de sortie CO du circuit original suréchantillonné deux fois : The output bit stream of the combinational part co after the transformation 100 of the circuit is the output stream CO of the original circuit oversampled twice:
iétés de détection sont basées sur l'égalité suivante : V/' entier non nul,
detection cases are based on the following equality: V / ' non-zero integer,
Une nouvelle valeur a sur si est fournie à d et d', puis au cycle suivant est propagée à d" tandis qu'une donnée redondante de valeur a est à nouveau fournie sur si à d et d'. A new value on is supplied to d and d, then the next cycle is propagated to d while redundant data of value a is again provided on if d and d '.
La détection d'erreur est réalisée par le voteur/détecteur 18 en comparant d' et d" chaque (2i-1)ème cycle, puisqu'en l'absence de faute, leur contenu devrait être égal d'après l'équation (5). Si leur contenu n'est pas égal, un signal fail=1 est émis. The error detection is carried out by the voter / detector 18 by comparing d 'and d' each (2i-1) th cycle, since in the absence of fault, their content should be equal according to the equation ( 5) If their content is not equal, a signal fail = 1 is sent.
so est le résultat du vote (sélectionnant la valeur majoritaire) sur d, d', d" à chaque cycle. so is the result of voting (selecting the majority value) on d, d ', d "at each cycle.
Un SET sur si peut corrompre à la fois d et d' et le vote ne masquera pas cette faute. Mais si un SEU a lieu sur l'une des trois cellules d, d', d" lors d'un cycle impair, il sera masqué par le vote.
Mode n=1 A SET on if can corrupt both d and d 'and the vote will not hide this fault. But if a SEU takes place on one of the three cells d, d ', d "during an odd cycle, it will be masked by the vote. Mode n = 1
En mode n=1 (pas de redondance), en fonctionnement normal (i.e. sans faute), le comportement de chaque bloc de mémoire est décrit par les équations suivantes : In mode n = 1 (no redundancy), in normal operation (i.e. without fault), the behavior of each block of memory is described by the following equations:
V/' entier non nul, sii = di+i = d'i+i = d"i+2 = si+3 = soi+i (6) V / ' nonzero integer, sii = d i + i = d i + i = d i + 2 = s i + 3 = so i + i (6)
Pour fixer la sortie du multiplexeur 20 égale à l'entrée 7 du multiplexeur 20, le signal de control modeS est donc fixé à 7 par le bloc de contrôle 15 dans ce mode. To set the output of the multiplexer 20 equal to the input 7 of the multiplexer 20, the control signal modeS is therefore set to 7 by the control block 15 in this mode.
Le signal fetchA est fixé égal à 1. The fetchA signal is set equal to 1.
En mode n=1, le flux d'entrée du circuit n'est pas suréchantillonné : p/' , = PI ,■ . Le flux de bits de sortie de la partie combinatoire co après la transformation 100 du circuit est le flux de sortie CO du circuit original : co, = CO, . Dans ce mode, le circuit ne dispose pas de propriété de détection de faute, ni de masquage de faute. In mode n = 1, the input stream of the circuit is not oversampled: p / ' , = PI, ■ . The output bit stream of the co-combinational part after the transformation 100 of the circuit is the output stream CO of the original circuit: co, = CO,. In this mode, the circuit does not have fault detection or fault masking properties.
Les signaux de contrôle correspondants sont fetchA=1 et modeS=1. The corresponding control signals are fetchA = 1 and modeS = 1.
D'après l'équation (6), en l'absence de faute, d égale d' à chaque cycle d'horloge. Par conséquent, le vote par le voteur/détecteur 18 retourne la valeur de d (et d à chaque cycle. Formellement co, = c ,+i = o",+i = d"i+2 = c/',+i . Si d et/ou c/' sont corrompues alors le vote sur {d, d', d"} peut retourner une valeur erronée (sans mettre le signal fail à 1). C'est pourquoi ce mode ne masque ni ne détecte les fautes. According to equation (6), in the absence of fault, d equals each clock cycle. Therefore, the vote by the voter / detector 18 returns the value of d (and d at each cycle.) Formally co, = c, + i = o ", + i = d" i + 2 = c / ' , + i If d and / or c / 'are corrupted then the vote on {d, d', d "} may return an erroneous value (without setting the signal fail to 1), which is why this mode does not mask or detect mistakes.
La redondance temporelle dynamique triple selon l'invention permet de masquer les SETs du modèle SET(1,K) pour tout K supérieur à 4 cycles. The triple dynamic time redundancy according to the invention makes it possible to mask the SETs of the SET model (1, K) for any K greater than 4 cycles.
Mécanisme d'enregistrement avec retour arrière Recording mechanism with backspace
Suivant un autre aspect de l'invention qui peut être mis en œuvre indépendamment de la redondance temporelle dynamique exposée précédemment, l'outil 1 met en œuvre une étape de transformation automatique 101 du design du circuit pour obtenir un circuit doté d'un mécanisme d'enregistrement de l'état du circuit, cet enregistrement étant déclenché par un signal de commande nommé save, et doté en outre d'un mécanisme de retour arrière de l'état du circuit dans l'état ainsi enregistré, ce retour arrière étant déclenché ultérieurement par un signal de commande nommé rollBack. According to another aspect of the invention that can be implemented independently of the dynamic temporal redundancy described above, the tool 1 implements a step of automatic transformation 101 of the design of the circuit to obtain a circuit with a mechanism of recording of the state of the circuit, this recording being triggered by a control signal named save, and furthermore provided with a feedback mechanism of the state of the circuit in the state thus recorded, this backtrack being triggered later by a command signal named rollBack.
Pour ce faire, dans une étape de transformation 101, l'outil 1 remplace chaque cellule mémoire 13 d'entrée si, de sortie so et prévue dans le circuit d'origine représenté en figure 1, par un bloc mémoire 30 d'entrée si et de sortie so comme représenté en
figure 8, et ajoute en outre un bloc de contrôle qui génère des signaux de contrôle save et rollBack. To do this, in a transformation step 101, the tool 1 replaces each input memory cell 13 if, so output and provided in the original circuit shown in FIG. 1, by an input memory block 30 if and output so as shown in Figure 8, and further adds a control block which generates control signals save and rollBack.
Le bloc mémoire 30 comporte une cellule mémoire 13 recevant sur son entrée D un signal si, délivrant sur sa sortie Q un signal à l'entrée 0 d'un multiplexeur mux. Le bloc mémoire 30 comporte en outre un bloc d'enregistrement 29 adapté pour enregistrer le signal si qui lui est fourni en entrée quand un signal save égal à 1 lui est adressé. Le signal si ainsi enregistré par le bloc d'enregistrement est fourni en entrée 1 du multiplexeur mux. The memory block 30 comprises a memory cell 13 receiving on its input D a signal if, delivering on its output Q a signal to the input 0 of a multiplexer mux. The memory block 30 further comprises a recording block 29 adapted to record the signal if it is input to it when a signal save equal to 1 is addressed to it. The signal, if so recorded by the record block, is supplied at input 1 of the multiplexer mux.
Le bloc d'enregistrement 29, comporte, dans le cas présent, une cellule mémoire 31, nommée copy. La cellule mémoire 31 stocke, quand un signal save égal à 1 lui est fourni sur son entrée E (enable), le signal si qui lui est fourni sur son entrée D, en parallèle de sa fourniture sur l'entrée D de la cellule 13. Quand save est égal à 0, le signal si n'est pas mémorisé dans la cellule mémoire copy 31. The record block 29, in this case, comprises a memory cell 31, named copy. The memory cell 31 stores, when a signal save equal to 1 is provided on its input E (enable), the signal if supplied to it on its input D, in parallel with its supply on the input D of the cell 13 When save is equal to 0, the signal if is not stored in the memory cell copy 31.
La sortie Q de la cellule copy 31 est fournie en entrée 1 du multiplexeur mux. The Q output of the copy cell 31 is provided at input 1 of the mux multiplexer.
Le multiplexeur mux délivre en sa sortie le signal so. Le signal so est égal à l'entrée 0 du multiplexeur lorsque rollBack est égal à 0 et est égal à l'entrée 1 du multiplexeur 31 lorsque rollBack est égal à 1. The mux multiplexer delivers at its output the signal so. The signal so is equal to the input 0 of the multiplexer when rollBack is equal to 0 and is equal to the input 1 of the multiplexer 31 when rollBack is equal to 1.
Ainsi, tant que rollBack est égal à 0, la sortie so est égale au contenu de la cellule 13. Quand rollBack devient égal à 1, c'est le contenu de la cellule copy, correspondant à la dernière mise à 1 du signal save, qui est fourni en sortie so. Thus, as long as rollBack is equal to 0, the so output is equal to the content of cell 13. When rollBack becomes equal to 1, it is the content of the copy cell, corresponding to the last setting of the save signal, which is outputted so.
Un même signal save à 1 fourni au cycle / à l'ensemble (ou à un sous-ensemble) des blocs mémoires 30 du circuit permet d'enregistrer dans les cellules copy 31 l'état courant des cellules 13 du circuit au cycle /'. Cet état reste mémorisé tant qu'un nouvel signal save à 1 n'est pas fourni. The same signal save at 1 supplied to the cycle / to the set (or to a subset) of the memory blocks 30 of the circuit makes it possible to record in the cells copy 31 the current state of the cells 13 of the circuit to the cycle / ' . This state remains stored as long as a new save signal at 1 is not supplied.
Combinaison de la redondance temporelle dynamique double et de l'enregistrement avec retour arrière Combining Dual Dynamic Time Redundancy and Rewind Recording
Dans un mode de réalisation de l'invention considéré à présent, les aspects de redondance temporelle dynamique double et d'enregistrement avec retour arrière sont combinés. In one embodiment of the invention now considered, the aspects of dual dynamic time redundancy and backward recording are combined.
La valeur de N est choisie égale à 2, le fonctionnement du circuit peut basculer entre les modes de redondance temporelle d'ordre n=1 et n=2. The value of N is chosen equal to 2, the operation of the circuit can switch between the modes of temporal redundancy of order n = 1 and n = 2.
Un tel circuit est adapté pour masquer des erreurs en utilisant seulement une redondance temporelle de niveau 2 au lieu d'une redondance temporelle de niveau 3.
Pour ce faire, dans une étape de transformation 102, l'outil 1 remplace chaque cellule mémoire 13, d'entrée si et de sortie so, prévue dans le circuit d'origine représenté en figure 1, par un bloc mémoire 40, d'entrée si et de sortie so comme représenté en figure 9, et ajoute en outre un bloc de contrôle 15 qui génère des signaux de contrôle save et rollBack. Une vue du circuit transformé résultant de cette transformation est représentée en figure 10. Such a circuit is adapted to mask errors using only a level 2 time redundancy instead of a level 3 time redundancy. To do this, in a transformation step 102, the tool 1 replaces each memory cell 13, of the input if and of the output so, provided in the original circuit represented in FIG. 1, by a memory block 40, of input si and output so as shown in Figure 9, and further adds a control block 15 which generates control signals save and rollBack. A view of the transformed circuit resulting from this transformation is shown in FIG.
Une telle transformation implique la mise en œuvre de moyens de suréchantillonnage double des entrées primaires du circuit qui, dans le mode de réalisation considéré, sont toujours activées indépendamment de la valeur de l'ordre de redondance actif, l'ajout de mémoires tampons d'entrée à tous les entrées primaires PI du circuit initial, et enfin l'ajout de mémoires tampons de sortie à tous les sorties primaires PO du circuit initial. Such a transformation involves the implementation of double oversampling means of the primary inputs of the circuit which, in the embodiment under consideration, are always activated independently of the value of the active redundancy order, the addition of buffer memories of input to all the primary inputs PI of the initial circuit, and finally the addition of output buffers to all the primary outputs PO of the initial circuit.
<p(c/') est calculé deux fois, les résultats sont comparés et si une erreur est détectée, <p(c/') est calculée une troisième fois, grâce au contenu des mémoires tampons d'entrée. <p (c / ' ) is computed twice, the results are compared and if an error is detected, <p (c / ' ) is computed a third time, thanks to the contents of the input buffers.
Le flux d'entrée, suréchantillonné deux fois, vérifie : pi2l = pi2i = PI , . The input stream, oversampled twice, checks: pi 2l = pi 2i = PI ,.
Le bloc mémoire 40 comporte ainsi les cellules d et d' disposées en série pour sauvegarder des données redondantes. Il comporte en outre un comparateur EQ comparant le contenu des cellules d et d' avec émission d'un signal fail indiquant le résultat de la comparaison. The memory block 40 thus comprises cells d and d arranged in series to save redundant data. It furthermore comprises an EQ comparator comparing the contents of the cells d and the emission of a signal fail indicating the result of the comparison.
Le bloc mémoire 40 comporte en outre un bloc d'enregistrement 29 adapté pour mémoriser le signal si qui lui est fourni en entrée quand le signal de contrôle save est mis à 1. La sortie du bloc d'enregistrement est fournie à l'entrée 1 du multiplexeur muxA, tandis que la sortie de la cellule d est fournie sur l'entrée 0 du multiplexeur muxA. Le multiplexeur muxA est piloté par le signal save également. The memory block 40 further comprises a recording block 29 adapted to store the signal if it is input to it when the control signal save is set to 1. The output of the recording block is supplied to the input 1 the muxA multiplexer, while the output of the cell d is provided on the input 0 of the multiplexer muxA. The muxA multiplexer is controlled by the signal save as well.
Dans le mode de réalisation considéré, le bloc d'enregistrement 29 comporte les cellules r et r' disposées en série, le signal si est fourni en entrée D de la cellule r, la sortie Q de la cellule r est fournie en entrée D de la cellule r', la sortie Q de la cellule r' est la sortie du bloc d'enregistrement 29. La mémorisation par les cellules r et r' du signal qui leur est fourni sur leur entrée D n'a lieu que lorsque le signal de commande save fourni sur leur entrée £ est mis à 1. In the embodiment considered, the recording block 29 has the cells r and r 'arranged in series, the signal if supplied at the input D of the cell r, the output Q of the cell r is supplied at the input D of the cell r ', the output Q of the cell r' is the output of the recording block 29. The storage by the cells r and r 'of the signal supplied to them on their input D takes place only when the signal save command provided on their input £ is set to 1.
Un multiplexeur muxB reçoit sur son entrée 1 la sortie mu du multiplexeur muxA et reçoit sur son entrée 0 la sortie de la cellule d'. Le multiplexeur muxB est piloté par le signal de contrôle rollBack. Quand rollBack=0 (similaire au cas modeS=1 dans la
redondance dynamique double), la sortie so du multiplexeur muxB est égale à son entrée 0 et quand rollBack=1, la sortie so du multiplexeur muxB est égale à son entrée 1. A muxB multiplexer receives at its input 1 the mu output of the multiplexer muxA and receives on its input 0 the output of the cell. The muxB multiplexer is controlled by the rollBack control signal. When rollBack = 0 (similar to the case modeS = 1 in the double dynamic redundancy), the so output of the muxB multiplexer is equal to its input 0 and when rollBack = 1, the so output of the muxB multiplexer is equal to its input 1.
Quand le signal de contrôle rollback=0 (similaire au cas modeS=1 dans la redondance dynamique double), le mode de fonctionnement est une redondance temporelle d'ordre 2 et la sortie du bloc mémoire so est égale au contenu de la cellule d'. When the control signal rollback = 0 (similar to the case modeS = 1 in the dual dynamic redundancy), the operating mode is a time redundancy of order 2 and the output of the memory block so is equal to the contents of the cell of .
Quand le signal de contrôle rollback=1 (ce qui équivaut au signal modeS=0), le mode de fonctionnement est sans redondance temporelle (i.e., d'ordre 1). La sortie du bloc mémoire so est égale au contenu de la cellule d quand save est égal à 0 et la sortie du bloc mémoire so est égale à la sortie du bloc d'enregistrement, i.e., dans le mode de réalisation considéré au contenu de la cellule r' quand save est égal à 1. When the control signal rollback = 1 (which is equivalent to the signal modeS = 0), the operating mode is without time redundancy (i.e., of order 1). The output of the memory block so is equal to the content of the cell d when save is equal to 0 and the output of the memory block so is equal to the output of the recording block, ie, in the embodiment considered to the content of the cell r 'when save is equal to 1.
Le bloc d'enregistrement 29 permet de mémoriser la valeur de si pendant 4 cycles d'horloge et de permettre au circuit de se repositionner sur cette valeur mémorisée en cas de détection d'erreur. Comme indiqué plus haut, une mémoire tampon d'entrée 50 est en outre insérée après chaque entrée primaire PI du circuit d'origine pour mémoriser les deux derniers bits du flux d'entrée (chaque entrée correspond à une composante du vecteur pi ). Cette mémoire tampon d'entrée 50, représentée en figure 11 dans un mode de réalisation, est implémentée par un pipeline de deux cellules mémoires b et b', pi désigne l'entrée primaire du circuit original. Le signal de contrôle rB est mis à 1 par le bloc de contrôle pendant la phase de récupération, après une détection d'erreur réalisée par le comparateur EQ pendant un cycle impair. Le contenu des cellules b et b' n'est utilisé que lors de la phase de récupération pour ré-exécuter les deux derniers cycles. Ces bits sont fournis à la partie combinatoire 11 du circuit à la place des bits du flux d'entrée. Les cellules b et b' servent aussi à stocker les entrées qui sont fournies pendant ces deux cycles. Pendant la phase de récupération, le vecteur ci comprend ainsi le vecteur p/' qui vient des mémoires tampons d'entrée et le vecteur so en provenance des blocs de mémoire repositionnés. Si l'erreur est détectée au cycle /', alors le retour arrière est réalisé au cycle i+1 et le vecteur ρ/',. _1 ® so, -i est fourni à la partie combinatoire, soit exactement le vecteur d'entrée déjà fourni deux cycles auparavant. The recording block 29 makes it possible to memorize the value of if during 4 clock cycles and to allow the circuit to reposition itself on this memorized value in the event of error detection. As indicated above, an input buffer 50 is further inserted after each primary input P1 of the original circuit for storing the last two bits of the input stream (each input corresponds to a component of the vector pi). This input buffer 50, shown in FIG. 11 in one embodiment, is implemented by a pipeline of two memory cells b and b ', pi denotes the primary input of the original circuit. The control signal rB is set to 1 by the control block during the recovery phase, after an error detection performed by the comparator EQ during an odd cycle. The contents of cells b and b 'are used only during the recovery phase to re-run the last two cycles. These bits are supplied to the combinatorial part 11 of the circuit in place of the bits of the input stream. The cells b and b 'are also used to store the inputs that are provided during these two cycles. During the recovery phase, the vector ci thus comprises the vector p / ' which comes from the input buffers and the vector so from the repositioned memory blocks. If the error is detected at the cycle / ' , then the backspace is performed at cycle i + 1 and the vector ρ / ' ,. _ 1 ® n, -i is supplied to the combinatorial portion, exactly the input vector already provided two cycles previously.
De pi 2j_ = pi 2i = PI , , il s'ensuit que b et b' représentent deux bits suréchantillonnés identiques (respectivement distincts) à chaque cycle impair (respectivement pair) : i> 2/-i = b'2i_^ . Puisqu'une faute est détectée au cycle impair, la phase de récupération qui commence un cycle plus tard, va alors lire deux entrées
différentes (i.e., pas la même entrée suréchantillonnée) dans b et b', ce qui est pertinent avec le mode sans redondance, i.e., accéléré, mis en œuvre pendant la phase de récupération. Le comportement des mémoires tampons d'entrée est illustré dans les tableaux 7 et 2. From pi 2j _ = pi 2i = PI, it follows that b and b 'represent two oversampled bits identical (respectively distinct) to each odd cycle (respectively even): i> 2 / -i = b' 2i _ ^ . Since a fault is detected in the odd cycle, the recovery phase that starts a cycle later, will then read two entries different (ie, not the same oversampled input) in b and b ', which is relevant with the mode without redundancy, ie, accelerated, implemented during the recovery phase. The behavior of the input buffers is shown in Tables 7 and 2.
La phase de récupération (mode sans redondance temporelle) perturbe le flux des vecteurs co du circuit par rapport au mode de fonctionnement normal (mode en redondance d'ordre 2). Pour masquer cet effet au niveau des sorties primaires, une mémoire tampon de sortie est insérée avant chaque sortie primaire po (chaque sortie po correspond à une composante du vecteur po ). Une telle mémoire tampon de sortie 60 est représentée dans un mode de réalisation en figure 72. Le signal co provient de la partie combinatoire 77. La mémoire tampon 60 est adaptée pour être tolérante à un SET survenant dans la mémoire tampon 60 ou sur ses sorties. Pour cela, les sorties primaires sont triplées : poA, poB et poC sont les sorties primaires du circuit transformé correspondant à la sortie primaire po du circuit initial. The recovery phase (mode without temporal redundancy) disturbs the flow of the vectors co of the circuit relative to the normal operating mode (mode of redundancy of order 2). To mask this effect at the primary outputs, an output buffer is inserted before each primary output po (each output po corresponds to a component of the vector po). Such an output buffer 60 is shown in one embodiment in FIG. 72. The signal co comes from the combinatorial part 77. The buffer memory 60 is adapted to be tolerant to a SET occurring in the buffer memory 60 or its outputs. . For this purpose, the primary outputs are tripled: poA, poB and poC are the primary outputs of the transformed circuit corresponding to the primary output po of the initial circuit.
Les mémoires tampons de sortie garantissent qu'au moins deux des sorties triplées sont correctes à chaque cycle pair. Le circuit environnant peut ainsi lire ces sorties au cycle pair et procéder à un vote sur ces sorties lues pour masquer tout SET. Dans des modes de réalisation différents, d'autres blocs de sortie (par exemple, ignorant les fautes aux sorties) ou d'autres spécifications d'interface pourraient être utilisées. Output buffers ensure that at least two of the tripled outputs are correct on every even cycle. The surrounding circuit can read these outputs in the even cycle and vote on these outputs read to hide any SET. In different embodiments, other output blocks (eg, ignoring faults in the outputs) or other interface specifications could be used.
Le comportement des mémoires tampons de sortie pendant la phase de récupération est également illustré dans le tableau 2. The behavior of the output buffers during the recovery phase is also shown in Table 2.
Les tableaux 7 et 2 ci-dessous illustrent un cas de détection de faute au cycle /'. Dans les tableaux 7 et 2, un vecteur v corrompu par un nombre de bits corrompus quelconque est noté†v . Tables 7 and 2 below illustrate a case fault detection cycle /. In Tables 7 and 2, a vector v corrupted by any number of corrupted bits is noted † v.
Dans les tableaux grisés 7a et 2b sont indiquées les valeurs des signaux qui auraient été obtenues en l'absence de détection de faute.
clk pî b V d 7' r r' fail save rollBackIn the shaded tables 7a and 2b are indicated the values of the signals that would have been obtained in the absence of fault detection. clk pb b V d 7 'rr' fail save rollBack
1-3 PÎi-3 pîi-4 PÎi-5 PÎi-3 » SI -S sîi-4 SI -S sîi-5 sîi-7 ? 1 01-3, 3-4, or 5, 7, 7, 7 or 7; 1 0
1-2 pîi-2 PÎi-3 PÎi-4 Ρΐ;- θ sîi-4 sîi-3 sîi-4 sîi-3 sîi-5 0 0 01-2 β-1-β-2-dihydro-4-dihydro-4-dihydro-diol
1-1 pîi-1 pîi-2 PÎi-3 pîi-1 ® sîi-3 sîi-2 SÎi-3 sîi-3 sîi-5 ? 1 0 i pî; pîi-1 Pîi-2 pîB t sîi-2 fsîi-l fsii-2 fsîi-l SÎi-3 1 0 0 i+i pîi+1 pî; pîi-1 pîi-1 sîi-3 tsîi fsîi-l fsîi-l SÎi-3 ? 1 1 i+2 pîi+2 pîi+1 pît pîi+i ® sîi-1 sîi-2 tsîi sîi-2 fsîi-l ? 0 1 i+3 pîi+3 pîi+2 pîi+1 PÎi+3 e ~sîi+l sîi+i SÎi-2 sîi-2 fsîi-l ? 0 1 i+4 pîi+4 pîi+3 Pîi+2 PÎi+4e ~sîi+3 sîi+3 sîi+i sîi-2 fsîi-l ? 0 1 i+5 PÎi+5 pîi+4 Pîi+3 PÎi+5e ~sîi+3 SÎj+4 SÎi+3 sîi-i fsîi-l ? 1 0 i+e pîi+e PÎi+5 Pîi+4 pîi+e si i+4 Sli+5 SÎj+4 sîi+5 sîi-2 0 0 0 i+7 PÎi+7 pîi+e PÎi+5 PÎi'-7 ~SÎi'+5 SÎi+6 Sli+5 sîi+5 sîi-2 ? 1 0 i+8 pîi+8 PÎi+7 pîi+e PÎ i+8 « si i+e Sli+7 SÎi+6 sîi+7 sîi+5 0 0 0 1-1- (1H) -3- I pI; PII PII-1 PI-2 B t SII-2 FSII FSII-l-2-l FSII SII-3 1 0 0 i + i + 1 PI PII; 1 - 3, 3, 5, 7, 7 1 1 i + 2 + 2 Pii Pii Pii PIT + 1 + i ® SII-1 Sii Sii-2 tsii FSII-2-l? 0 1 i + 3 + 3 Pii Pii Pii + 1 + 2 + 3 IIP e ~ SII + l + i sii sii sii-2-FSII 2-l? 1 0 i + 4 + 4 pii pii pii + 3 + 2 + 4e ~ pii IIC IIC + 3 + 3 + i IIC IIC-2 FSII-l? 0 1 i + 5 + 5 pii pii pii + 4 + 3 + 5e ~ Pii Sii + 3 Sij + 4 + 3 IIC IIC FSII-i-l? I + e + i + i + i + i + i + i + 4 i + i + i + i + i + i -7 ~ Is + 5 Is + 6 Sli + 5 Is + 5 Is-2? 1 + 8 + 8 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 5 +
Tableau 1 Table 1
Tableau 1 a Table 1 a
Les sigles† et correspondent à deux cas exclusifs de fautes (qui ne peuvent arriver en même temps).
The acronyms † and correspond to two exclusive cases of faults (which can not happen at the same time).
i pîi ignore 0 0 0 0 0 i ignore 0 0 0 0 0
Tableau 2 Table 2
Tableau 2b Table 2b
Les sigles† et correspondent à deux cas de fautes (qui ne peuvent arriver en même temps). ( <- ) indique une substitution de données réalisée par les multiplexeurs muxAs, muxBs, muxCs, muxDs d'une mémoire tampon de sortie 60. The acronyms † and correspond to two cases of faults (which can not happen at the same time). (<-) indicates a data substitution performed by the muxAs, muxBs, muxCs, muxDs multiplexers of an output buffer 60.
Les signaux de contrôle save, rollBack, rB et subst sont générés par le bloc de contrôle 15 pour mettre en œuvre la fonctionnalité du circuit transformé pendant le mode de fonctionnement normal et la phase de récupération. L'entrée du bloc de contrôle 15 est le signal fail de détection de faute (des signaux fail disjoints proviennent des différents blocs mémoire 14 et des mémoires tampons de sortie 60)
La figure 13 représente la machine à états finis (FSM) du bloc de contrôle 15 dans un mode de réalisation de l'invention. La notation a b indique ici que le changement d'état est réalisé si la condition est a=b est vraie, par exemple si un signal fail est détecté égal àThe control signals save, rollBack, rB and subst are generated by the control block 15 to implement the functionality of the transformed circuit during the normal operating mode and the recovery phase. The input of the control block 15 is the fault detection signal fail (disjoint fail signals come from the different memory blocks 14 and the output buffer memories 60) Fig. 13 shows the finite state machine (FSM) of the control block 15 in one embodiment of the invention. The notation ab indicates here that the change of state is realized if the condition is a = b is true, for example if a signal fail is detected equal to
0 dans le cas fail 1 0. Le signe = indique l'action d'affecter une valeur à un signal, par exemple si un signal fail est détecté égal à 1, on affecte la valeur 1 aux signaux rB, save, rollBack et subst pendant le cycle suivant. Sur cette figure, tous les signaux de commande émis par le bloc de contrôle 15 et non mentionnés lors d'un changement d'état sont mis à 0. Les états norml et norm2 correspondent au mode de fonctionnement normal, qui donne lieu à la mise à 1 alternée du signal save. Quand une faute est détectée (réception d'un signal fail égal à 1), la FSM entre en phase de récupération pour 4 cycles correspondant aux états successifs « error », « recovl », « recov2 », « recov3 ». 0 in the case fail 1 0. The sign = indicates the action of assigning a value to a signal, for example if a signal fail is detected equal to 1, we assign the value 1 to the signals rB, save, rollBack and subst during the next cycle. In this figure, all the control signals transmitted by the control block 15 and not mentioned during a change of state are set to 0. The states norm1 and norm2 correspond to the normal operating mode, which gives rise to the setting at 1 alternating of the signal save. When a fault is detected (reception of a signal fail equal to 1), the FSM enters the recovery phase for 4 cycles corresponding to the successive states "error", "recovl", "recov2", "recov3".
Le bloc de contrôle 15 lui-même n'est pas protégé contre les SETs par redondance temporelle. Dans un mode de réalisation, il est protégé par TMR. Les valeurs prises par les signaux de commande dans les différents états sont indiquées dans les tableaux 1 et 2. The control block 15 itself is not protected against the SETs by time redundancy. In one embodiment, it is protected by TMR. The values taken by the control signals in the different states are shown in Tables 1 and 2.
Mode de fonctionnement normal Normal operating mode
Tant qu'aucune faute n'est détectée aux cycles impairs, le mode de fonctionnement du circuit est le mode de fonctionnement normal (mode en redondance d'ordre 2). As long as no fault is detected in the odd cycles, the operating mode of the circuit is the normal operating mode (2nd order redundancy mode).
Pendant ce mode, la valeur du signal de commande rollBack est toujours positionnée à 0 par le bloc de contrôle 15. During this mode, the value of the rollBack control signal is always set to 0 by the control block 15.
Le signal save est positionné à 1 à chaque cycle pair : save2j^ = 0 et save2j = 1 .The save signal is set to 1 at every even cycle: save 2j ^ = 0 and save 2j = 1.
Comme save est le signal (signal « enable ») de déclenchement de mémorisation des cellules r et r', il est mis en place un retard de quatre cycles entre si et r' en mode de fonctionnement normal. Since save is the signal (enable signal) for triggering storage of the cells r and r ', a delay of four cycles is set between if and r in the normal operating mode.
Le comportement interne de chaque bloc mémoire 40 en mode de fonctionnement normal est alors décrit par les équations suivantes (7) : The internal behavior of each memory block 40 in normal operating mode is then described by the following equations (7):
roll = 0
roll = 0
save2i_l = 0 , save2j = 1 . save 2i _ l = 0, save 2j = 1.
Comme vu précédemment, la comparaison de d et d' n'est pertinente que lors des cycles impairs, les cellules d et d' comportant alors, sauf faute, des données redondantes.
Le circuit transformé vérifie les mêmes équations (1 ) que le circuit d'origine : As seen above, the comparison of d and d is relevant only in odd cycles, the cells d and d then having, failing fault, redundant data. The transformed circuit satisfies the same equations (1) as the original circuit:
coi = (p(cii) c = pii Θ soi coi = poi Θ su (8) coi = (p (cii) c = pi i Θ self coi = po i Θ su (8)
Des équations (7) et (8) et de l'égalité pi2i_ = pi2i = Pli dérivent deux propriétés du mode fonctionnement normal. Equations (7) and (8) and equality pi 2i = pi 2i = P1 derive two properties of the normal operating mode.
Propriété 1 : tout d'abord le flux de bits de sortie co de la partie combinatoire 11 après la transformation du circuit est un suréchantillonnage double du flux de bits CO du circuit original. Formellement : cou i = cou = COi pour tout /' entier naturel. Property 1: first of all, the output bit stream co of the combinatorial part 11 after the transformation of the circuit is a double oversampling of the bit stream CO of the original circuit. Formally: Neck neck = i = COi for all / 'natural number.
Propri en outre, à chaque cycle impair, les sorties des cellules d et d' sont égales : du-ι
pour tout /' entier naturel. In addition, for each odd cycle, the outputs of cells d and d are equal: du-ι for all / 'natural number.
La détection d'erreur correspond à une détermination d'une violation de cette propriété 2 par le comparateur EQ. The error detection corresponds to a determination of a violation of this property 2 by the comparator EQ.
Si, lors d'un cycle impair, les contenus des cellules d et d' diffèrent, une erreur est ainsi détectée et le signal fail est mis à 1 (fail2j-i=1). Le circuit doit alors effectuer un retour arrière à l'état correct enregistré dans r' et recalculer le pas précédent. Le retour arrière est réalisé en propageant le contenu de la cellule r' à so . If, during an odd cycle, the contents of the cells d and differ, an error is thus detected and the signal fail is set to 1 (fail 2j -i = 1). The circuit must then backtrack to the correct state stored in r 'and recalculate the previous step. The backtracking is performed by propagating the contents of the cell r 'to so.
Il découle des équations (17) que r'u-i =
, ce qui signifie qu'au moment d'une détection de faute (et au cycle d'horloge qui suit), le contenu de la cellule mémoire de récupération /-' est égal à la valeur qu'avait le signal d'entrée 3 cycles auparavant. Phase de récupération It follows from equations (17) that r'u-i = , which means that at the time of fault detection (and at the following clock cycle), the contents of the recovery memory cell / - 'are equal to the value of the input signal 3 cycles before. Recovery phase
Quand une faute est détectée, le circuit effectue un retour arrière lors du cycle suivant la détection de faute, puis effectue trois cycles consécutifs pendant lesquels la redondance temporelle d'ordre 2 dans les blocs mémoires est remplacée par un mode sans redondance temporelle et par l'application par le bloc de contrôle 15 de la séquence des signaux de commande save, rollBack, subst et rB représentée en figure 13 entre l'état « error » jusqu'à revenir à l'état « norm2 ». When a fault is detected, the circuit backtracks during the cycle following the fault detection, then performs three consecutive cycles during which the second order time redundancy in the memory blocks is replaced by a mode without time redundancy and by application by the control block 15 of the sequence of the save, rollBack, subst and rB control signals shown in FIG. 13 between the "error" state until it returns to the "norm2" state.
Le tableau 1 contient les valeurs des vecteurs de bits dans le circuit transformé cycle par cycle quand une faute est détectée au cycle /'. Le comportement du circuit en mode normal (i.e., en l'absence de faute) est indiqué dans le tableau 1 a. Table 1 contains the values of the bit vectors in the transformed circuit cycle by cycle when a fault is detected at the cycle / ' . The behavior of the circuit in normal mode (ie, in the absence of fault) is indicated in Table 1a.
En mode normal, le vecteur ci au cycle /' est tel cU = pi( ® soi = pii ® sii-2 . Le principe de retour arrière est que les blocs de mémoire 40 ré-injectent le dernier état
sauvé dans les cellules r' (vecteur si ) tandis que les mémoires tampons d'entrée réinjectent les entrées primaires correspondantes ( vecteur pi ) qui y étaient mémorisées. In normal mode, the vector ci at the cycle / ' is such that cU = pi ( ® soi = pi i ® sii-2) The principle of backtracking is that the memory blocks 40 re-inject the last state saved in the cells r '(vector si) while the input buffers reinject the corresponding primary inputs (vector pi) stored therein.
Au cycle (i+1) qui suit la détection d'erreur du cycle /', la phase de récupération débute et l'état correct mémorisé dans la cellule r' est propagé à travers le signal so. En conséquence, soi+ι =
= sii-3 à la place de S A attendu dans le mode de fonctionnement normal. Par conséquent, la seconde composante de c//+i est sus . Le vecteur d'entrée primaire est aussi remplacé par le vecteur mémorisé dans la mémoire tampon d'entrée : ainsi au cycle i+1, p/' ,+1 est remplacé par pi l On rappelle que, pendant la phase de récupération, le circuit opère avec le débit du circuit d'origine, qui est deux fois plus rapide que dans le mode normal. En particulier, pendant les cycles i+2, i+3 et i+4, le contenu de la cellule mémoire d est propagé directement à travers les sorties so de chaque bloc mémoire 40, en court-circuitant les cellules mémoires d'. Ceci est mis en œuvre en fixant le signal de commande rollBack à 1, en gardant à 0 le signal save qui commande les multiplexeurs muxA et muxB de façon appropriée. Ceci est sans conséquence puisque le modèle de faute SET(1,K) garantit qu'aucune faute additionnelle ne survient pendant les K cycles après un SET. At the cycle (i + 1) following the error detection of the cycle / ' , the recovery phase begins and the correct state stored in the cell r' is propagated through the signal so. As a result, se + ι = = sii-3 instead of SA expected in the normal operating mode. Therefore, the second component of c // + i is sus. The primary input vector is also replaced by the vector stored in the input buffer: thus at the cycle i + 1, p / ' , +1 is replaced by pi l It is recalled that, during the recovery phase, the circuit operates with the flow of the original circuit, which is twice as fast as in the normal mode. In particular, during the cycles i + 2, i + 3 and i + 4, the contents of the memory cell d are propagated directly through the outputs so of each memory block 40, by short-circuiting the memory cells of. This is implemented by setting the rollBack control signal to 1, keeping the save signal at 0 which controls the muxA and muxB multiplexers appropriately. This is of no consequence since the SET fault pattern (1, K) ensures that no additional fault occurs during K cycles after a SET.
Au cycle i+2, la seconde composante de c +2 est SUA (s -2 , qui est identique à sii-i , a été sautée). De façon similaire, le vecteur d'entrée primaire est remplacé par p/ i+1 puisque, dans les mémoires tampons d'entrée, b'i+2 = pi , et p/ i+1 = p/' , . Il s'ensuit que C//+1 = pi ® si i-3 et ci i+2 = pi ,+1 ® si ,-1 . At cycle i + 2, the second component of c + 2 is SUA (s -2, which is identical to sii-i, has been skipped). Similarly, the primary input vector is replaced by p / i + 1 since, in the input buffers, b'i + 2 = pi, and p / i + 1 = p / ' ,. It follows that C // + 1 = pi ® if i-3 and ci i + 2 = pi, +1 ® if, -1.
Tous les signaux corrompus ont disparu du circuit dans les 6 cycles suivant la détection d'erreur. Le circuit complet retourne dans un état correct après au plus 8 cycles après la détection. Dans d'autres modes de réalisation d'un circuit transformé par combinaison des aspects de redondance temporelle dynamique double et d'enregistrement avec retour arrière sont combinés, une seule cellule r' est utilisée à la place des cellules r et r'. Le signal de commande save est mis à 1 tous les deux cycles. La détection d'erreur et la fonctionnalité de récupération demeurent moyennant un amoindrissement de la tolérance aux fautes. Un SET sur le fil si , par exemple causée par un SET dans la logique combinatoire, peut dans ce cas corrompre simultanément r' et d si save=1. L'erreur est détectée au cycle suivant et la récupération a lieu en utilisant l'information corrompue de la cellule r'.
La cellule r joue en réalité un rôle d'isolation qui empêche une ré-écriture du bit de récupération jusqu'à ce que cette information ait été vérifiée par le comparateur EQ. All corrupted signals disappeared from the circuit within 6 cycles after error detection. The complete circuit returns to a correct state after at most 8 cycles after detection. In other embodiments of a circuit transformed by combining dual dynamic redundancy and backtracking aspects are combined, a single cell r 'is used in place of the cells r and r'. The save command signal is set to 1 every two cycles. Error detection and retrieval functionality remain with reduced fault tolerance. A SET on the wire if, for example caused by a SET in the combinatorial logic, can in this case simultaneously corrupt r 'and d if save = 1. The error is detected in the next cycle and the recovery takes place using the corrupted information of the cell r '. The cell r actually plays an isolation role which prevents a re-write of the recovery bit until this information has been verified by the comparator EQ.
Dans des modes de réalisation, les architectures des mémoires tampon de sortie sont simplifiées, la fonction principale étant maintenue : mettre en œuvre un retard sur le signal co en mode de fonctionnement normal avec un mécanisme pour propager co à po pendant la phase de récupération. In embodiments, the architectures of the output buffers are simplified, the main function being maintained: implement a delay on the signal co in normal operating mode with a mechanism for propagating co to po during the recovery phase.
Un circuit transformé selon ce mode de réalisation de l'invention réalise la propagation du signal à travers la partie combinatoire du circuit deux fois avant la comparaison, avec un retour arrière et une réexécution quand une erreur est détectée. Selon un modèle de faute SET(1, K), aucune erreur ne survenant dans les cycles après la dernière occurrence de faute, le mécanisme de redondance de niveau 2 est alors supprimé et le circuit est accéléré deux fois. Il retourne dans son état correct (Le., l'état du circuit si aucune erreur n'était survenue) après 8 cycles après détection ou 10 cycles après l'occurrence du SET. A circuit converted according to this embodiment of the invention realizes the propagation of the signal through the combinational part of the circuit twice before the comparison, with a backtracking and replaying when an error is detected. According to a SET fault model (1, K), no error occurring in the cycles after the last fault occurrence, the level 2 redundancy mechanism is then removed and the circuit is accelerated twice. It returns to its correct state (Le., The state of the circuit if no error had occurred) after 8 cycles after detection or 10 cycles after the occurrence of the SET.
Un circuit transformé selon ce mode de réalisation peut également fonctionner en mode accéléré (n=7) lorsque la tolérance aux fautes n'est pas nécessaire. A circuit converted according to this embodiment can also operate in accelerated mode (n = 7) when the fault tolerance is not necessary.
La figure 14 représente des étapes d'un procédé de fabrication automatisée d'un circuit électronique tolérant aux fautes par redondance temporelle, qui est mis en œuvre dans un mode de réalisation de l'invention. FIG. 14 represents steps of a method of automated manufacturing of a fault tolerant electronic circuit by time redundancy, which is implemented in one embodiment of the invention.
Ces étapes, par exemple mises en œuvre par un outil de synthèse automatisée de circuits électroniques, sont : These steps, for example implemented by an automated synthesis tool of electronic circuits, are:
étape 80 de réception d'un design du circuit original au niveau logique ; step 80 of receiving an original circuit design at the logic level;
étape 90 de choix de la transformation requise et du type de redondance dynamique (niveau de redondance, modes de fonctionnement et propriétés de tolérance aux fautes) ; step 90 of choosing the required transformation and the type of dynamic redundancy (redundancy level, modes of operation and fault tolerance properties);
étape 700 de transformation des blocs mémoires du circuit original en blocs mémoires pour la mise en œuvre de la redondance dynamique choisie, comprenant : step 700 of transforming the memory blocks of the original circuit into memory blocks for implementing the dynamic redundancy chosen, comprising:
i/ étape 101 : génération du bloc mémoire ; i / step 101: generation of the memory block;
ii/ étape 102 : remplacement de chaque cellule mémoire du circuit original par le bloc mémoire généré dans le design du circuit ; ii / step 102: replacing each memory cell of the original circuit by the memory block generated in the circuit design;
Ni/ étape 103 : génération du bloc de contrôle (et pour la redondance dynamique double avec retour arrière, des mémoires tampons d'entrée et de sortie) ; Ni / step 103: generation of the control block (and for the double dynamic redundancy with backtracking, input and output buffers);
iv/ étape 104 : insertion du bloc de contrôle (et dans le cas de redondance dynamique double avec retour arrière, des mémoires tampons d'entrée et de
sortie) dans le design du circuit et interconnexions entre le bloc de contrôle et les blocs de mémoire transformés du circuit (et dans le cas de la redondance dynamique double avec retour arrière, avec les mémoires tampons d'entrée et de sortie). iv / step 104: insertion of the control block (and in the case of double dynamic redundancy with backtracking, input buffers and output) in the design of the circuit and interconnections between the control block and the transformed memory blocks of the circuit (and in the case of the double reverse dynamic redundancy with the input and output buffers).
La figure 15 décrit différentes étapes du flot de conception (en anglais « design flow ») de circuits intégrés correspondant à différents niveaux d'abstraction dans un mode de réalisation de l'invention : FIG. 15 describes different stages of the design flow of integrated circuits corresponding to different levels of abstraction in one embodiment of the invention:
étape 201 : synthèse au niveau système, sur la base de spécifications du circuit, comprenant l'allocation ou la répartition entre logiciel et matériel, dont un des résultats est une description haut-niveau et comportementale du circuit ; step 201: synthesis at the system level, based on circuit specifications, including allocation or distribution between software and hardware, one of whose results is a high-level and behavioral description of the circuit;
étape 202 : synthèse du circuit de haut niveau sur la base de cette description (transformation, planification, sélection de modules), dont un des résultats est une description architecturale, au niveau « Transfert de registres » ou RTL : cette modélisation revient à décrire l'implémentation sous forme d'éléments séquentiels (registres, bascules) et de combinaisons logiques entre les différentes entrées/sorties des éléments séquentiels et des entrées/sorties primaires du circuit : step 202: synthesis of the high-level circuit on the basis of this description (transformation, planning, selection of modules), one of whose results is an architectural description, at the level of "Transfer of registers" or RTL: this modeling amounts to describing the implementation in the form of sequential elements (registers, flip-flops) and logical combinations between the different inputs / outputs of the sequential elements and the primary inputs / outputs of the circuit:
étape 203 : synthèse logique du circuit en fonction de cette description RTL, qui transforme la description RTL du circuit en une description au niveau logique, en termes de portes logiques (Gâte netlist) : cette étape 203 comprenant les sous-étapes successives suivantes : step 203: logical synthesis of the circuit as a function of this description RTL, which transforms the description RTL of the circuit into a description at the logic level, in terms of logical gates (netlist gate): this step 203 comprising the following successive substeps:
fonctions de RTL vers Booléen ; functions from RTL to Boolean;
optimisations indépendantes de la technologie ; optimizations independent of the technology;
transformation 100 du circuit pour la redondance dynamique selon l'invention ; transformation 100 of the circuit for dynamic redundancy according to the invention;
mise en correspondance de technologie (« mapping technology ») ; technology mapping ("mapping technology");
optimisations dépendantes de la technologie ; technology-dependent optimizations;
étape 204 : synthèse de masque physique du circuit sur la base de la description logique. Pour des circuits VLSI, cette synthèse comprend la description du circuit au niveau des transistors (placement, routage, distribution d'horloge) et délivre une description du circuit au niveau du masque. Pour des circuits FPGA, cette synthèse comprend la traduction, la topographie (placement, routage) et délivre un fichier de programmation.
La transformation 100 apporte les propriétés de tolérance aux fautes au circuit. Dans le mode de réalisation décrit, elle est mise en œuvre après les optimisations indépendantes de la technologie (les propriétés seront donc préservées par les étapes ultérieures) et avant la séparation du flot en technologie VLSI ou technologie FPGA, ce qui permet de l'appliquer conjointement aux deux technologies.
step 204: physical mask synthesis of the circuit based on the logical description. For VLSI circuits, this synthesis includes the description of the circuit at the level of the transistors (placement, routing, clock distribution) and delivers a description of the circuit at the level of the mask. For FPGA circuits, this synthesis includes translation, topography (placement, routing) and delivers a programming file. Transform 100 brings the fault tolerance properties to the circuit. In the embodiment described, it is implemented after the independent optimizations of the technology (the properties will thus be preserved by the subsequent steps) and before the separation of the flow in VLSI technology or FPGA technology, which makes it possible to apply it. jointly with both technologies.