FR 2604542 A1 19880401 FR 8712279 A 19870904 PHN 11 583 1 Dispositif de traitement de données composé de quatre modules de trai- tement de données de construction en substance identique, avec une pro- tection à la fois contre des défaillances simultanées portant sur un seul bit dans plusieurs modules de traitement de données et contre la défaillance d'un seul module de traitement de données ARRIERE-PLAN DE L'INVENTION. La présente invention concerne un dispositif de traitement de données qui est composé de quatre modules de traitement, de construction en substance identique, avec une protection à la fois contre des défaillances colncidentes portant sur un seul bit dans plusieurs modules de traitement de données et contre une défaillance arbitraire de données dans un seul module de traitement de données. Un dispositif de ce type est décrit dans le brevet des Etats-Unis d' Amérique N 4 512 020 (PHN 10 155) de la Demanderesse. Le dispositif connu fonctionne sur la base de symboles dits de quatre bits, tandis qu'un code optimum, tel qu'il est présenté, permet dans un mode dit "normal" de corriger deux erreurs arbitraires portant sur un seul bit, à une distance de Hamming minimum de cinq. Dans un mode "d'effacement", un des modules de traitement des données est ignoré, tandis que le code sur les trois symboles de quatre bits restants a une distance de Hamming de trois, ce qui permet de corriger une erreur de bit supplémentaire. Si deux quelconques des modules de traitement de données venaient à faire défaut simultanément, alors que leur identité est connue, les deux modules de traitement de données restants, en l'absence d'autres erreurs, pourraient encore fonc- tionner et atteindre les résultats corrects. La capa- cité de protection contre les erreurs mentionnée plus haut peut être exprimée dans le profil de distance minimum de ce code à une redondance de 100% comme étant de (5, 3, 1). La définition du profil de distance minimum est donnée ci-après. RESUME DE L'INVENTION. La technologie de traitement de données a évolué jusqu'à mener à des processeurs ayant une largeur de bits accrue. L'invention a pour but d'amé- liorer la capacité de protection contre les erreurs précitée pour la même valeur de redondance en utilisant des symboles de 8 bits pour réaliser de manière opti- male un profil de distance minimum de (7, 4, 1). C'est- à-dire que, dans le mode normal, la distance est de 7, permettant la correction de trois erreurs arbitraires portant sur un seul bit. Il est bien connu que ce degré de protection peut aussi être utilisé pour corriger jusqu'à deux erreurs arbitraires portant sur un seul bit et pour détecter jusqu'à quatre erreurs arbitraires portant sur un seul bit. D'autres permutations entre correction et détection sont bien connues. Dans le mode d'effacement, la distance de Hamming minimum de quatre permet une correction portant sur un seul bit, une détection d'erreur portant sur deux bits ou, en variante, une détection d'erreur portant sur trois bits. Le fait d'ignorer toute combinaison de deux modules de traitement de données en l'absence de toute autre erreur permet encore aux deux modules de traite- ment de données restants d'atteindre des. résultats corrects. Le but de l'invention est réalisé par un dispositif de traitement de données composé de quatre modules de traitement de données (100, 102, 104, 106) comprenant des dispositifs de traitement de données correspondants (12, 14, 16, 18) présentant une largeur de trajet de données d'au moins 2n bytes, des modules de codeur respectifs (20, 22, 24, 26) alimentés par les dispositifs de traitement de données associés pour. coder par byte un résultat de traitement de 2n bytes en un résultat de codage de n bytes, des modules de mémoire respectifs (28, 30, 32, 34) alimentés par le module de codeur associé pour stocker le résultat de codage, un réseau d'interconnexion (82, 84, 86, 88) alimenté par les modules de traitement de données respectifs pour appliquer des résultats de codage entre tous les modules de traitement de données, et des décodeurs d'entrée respectifs (54, 56, 58, 60) alimentés par le réseau d'interconnexion pour recevoir les résultats de codage en des groupes de quatre bytes et pour reconstituer, à partir de ceux-ci, un mot de données de deux bytes représentant le résultat de traitement à présenter au dispositif de traitement de données associé, le dispositif de traitement de données comprenant, en outre, un registre de mode destiné à commander les décodeurs d'entrée, respectivement, dans un premier, un deuxième et un troisième mode pour, dans un premier mode, accepter et assimiler tous les bytes d'un groupe, pour, dans chacun de quatre - deuxièmes modes respectifs, accepter et assimiler trois bytes d'un dit groupe, mais en rejetant un quatrième byte associé du groupe en question, et pour, dans chacun de six troisièmes modes respectifs, accepter et assimiler deux bytes d'un dit groupe, mais en rejetant une combinaison associée de deux bytes restants du groupe en question, et dans lequel les modules de codeur multiplient chaque byte d'un mot de données par une matrice régulière et additionnent les bytes de multi- plication pour produire un byte de code, les quatre bytes de code ainsi engendrés par les modules de codeur respectifs constituant le mot de code d'un code présen- tant une distance de Hamming minimum sur les bits de sept, les trois bytes de code acceptés dans un quel- conque deuxième mode constituant un mot de code partiel avec une distance de Hamming minimum sur les bits de quatre, les deux bytes acceptés dans un quelconque troisième mode constituant une représentation de tous les bits du résultat de traitement associé. r a BREVE DESCRIPTION DES FIGURES. L'invention sera expliquée ci-après pour une forme d'exécution préférée, à titré d'exemple, avec référence aux figures suivantes des dessins annexes: la Fig. 1 représente un dispositif de trai- tement de données conforme à l'invention; la Fig. 2 représente des matrices de contrôle de parité de neuf codes par rapport aux bases B43 et B95 ayant un profil de distance minimum de (7, 4, 1); les Fig. 3a, 3'b, 3c donnent les représen- tations binaires des éléments d'un champ de Galois particulier Gf(28); la Fig. 3d est une matrice dite de contrôle de parité redondante; la Fig. 4a donne un jeu de définitions de décodage; la Fig. 4b donne un jeu d'estimations de message; les Fig. 5a, 5b donnent une liste de toutes les classes d'erreurs corrigibles, de leur détection et de leur sélection d'estimation de message; la Fig. 6 donne les règles à mettre en oeuvre par un décodeur, et la Fig. 7 illustre une conception de décodage globale. DESCRIPTION D'UNE FORME D'EXECUTION PREFEREE. La Fig. 1 illustre un dispositif de traitement de données conforme à l'invention. Les données sont constituées de mots, chaque mot comportant seize bits et représentant deux symboles d'un champ de Galois expliqué plus loin. Les mots de données apparaissent sur les lignes 62, 64, 66, 68. Ils sont traités dans les éléments de traitement respectifs 12, 14, 16, 18. En réaction, les éléments de traitement produisent des mots de résultat de données sur les lignes 90, 92, 94, 96 ou des mots d'adresse sur les lignes 70, 72, 74, 76. Une unité de gestion de mémoire connue (non repré- sentée) peut être prévue pour chaque module de mémoire. Les mémoires locales 28, 30, 32, 34 sont adressées par l'intermédiaire de décodeurs d'adresse 27, 29, 31, 33. A partir de chaque mot de données de seize bits reçu, un symbole de code de huit bits est formé dans chacun des générateurs de code 20, 22, 24, 26, de sorte que les symboles de code formés à partir d'un mot de données forment ensemble un mot de code. Ces symboles de code sont présentés aux mémoires 28, 30, 32, 34, afin d'être stockés. Après lecture, les symboles de code sont régénérés dans les amplificateurs de lecture 36, 38, 40, 42. La régénération peut, en variante, être réalisée sans stockage intermédiaire dans les mémoires. Les symboles de code peuvent tous être appliqués à tous les registres 46, 48, 50, 52. Ces registres sont connectés aux dispositifs de reconstruction ou déco- deurs 54, 56, 58, 60 pour reconstuire les mots de données à partir des mots de code en vue d'une présen- tation aux lignes 62, 64, 66, 68. La combinaison des éléments 46, 54, 12, 20, 28 et 36 est incluse dans une seule zone d'isolation d'erreur séparée et il en va de même pour les zones suivantes. On suppose que les erreurs dans deux zones différentes sont indépendantes; dans de nombreux cas, cette exigence est satisfaite pour de nombreuses catégories d'erreurs, si chaque zone d'isolation d'erreur couvre, par exemple, une plaque à circuit imprimé séparée plus des composants, ou en variante, un circuit intégré séparé. Lecircuit repré- senté dans la figure forme donc quatre zones d'iso- lation d'erreur respectives. La synchronisation des opérations dans les quatre zones d'isolation d'erreur a été omise par souci de clarté. Les processeurs fonc- tionnent conformément à des programmes. La construction des sous-systèmes dans les zones d'isolation d'erreur en question est identique, sauf en ce qui concerne les générateurs de code 20,, 22, 24, 26, qui mettent chacun en oeuvre un algorithme différent pour former les quatre symboles de code respectifs à partir du mot de données de seize bits. De plus, la commande des dispo- sitifs de reconstruction de données 54, 56, 58, 60 pet différer en fonction du mode de commande du système informatique. On a constaté que le mode normal, qui est à même de corriger jusqu'à trois erreurs de bit situées de manière arbitraire ou une erreur portant sur un seul symbole, est bien adapté à la correction d'erreurs se présentant dans la mémoire. Ces dernières erreurs sont habituellement indépendantes les unes des autres et de plus sont souvent qualifiées "d'erreurs temporaires". Des erreurs de symbole qui rendent un symbole entier non fiable sont habituellement causées par un proces- seur défectueux. Ces erreurs peuvent être traitées dans un mode d'effacement dans lequel toutes les données 23 et/ou tous les signaux de commande produits par une zone d'isolation d'erreur ou un module de traitement de données pouvant être sélectionné sont ignorés. On a constaté que ces erreurs de symbole sont habituellement d'une nature permanente. Cependant, elles ne doivent pas être réparées à court terme dans ce système infor- matique parce que les décodeurs peuvent commuter sur le mode d'effacement. On a constaté qu'il est avantageux de commuter sur le mode d'effacement aussitôt que nécessaire. De plus, chaque zone d'isolation d'erreur de la Fig. 1 comprend un registre d'erreurs séparé 148, , 152, 154 qui est commandé par des signauk de sortie provenant du décodeur en question 54, 56, 58, 60 et dont les signaux de sortie sont appliqués à l'unité de commande centrale 44. Finalement, des lignes de retour à l'état initial sont représentées pour les registres d'erreurs au départ de l'unité de commande centrale 44. La multiplicité de ces lignes de commande n'est pasreprésentée. De plus, chaque zone d'isolation d'erreur comprend un registre de mode à 4 bits respec- tivement 140, 142, 144, 146. Les registres de mode sont commandés par des signaux de sortie provenant des décodeurs associés 54, 56, 58, 60. Le contenu de chaque registre de mode commande le mode de fonctionnement du décodeur associé. Le réglage du registre d'erreurs est co-commandé par le contenu du registre de mode associé. Cette relation est indiquée chaque fois par une flèche supplémentaire. Finalement, chaque registre de mode reçoit des signaux de commande de l'unité de commande centrale 44. Dans. une- autre réalisation, la commande centrale est aussi répartie sur les quatre modules de traitement de données. Le système de communication destiné à la communication des messages de- commande entre ces modules de commande répartis (non repré- sentés) peut fonctionner conformément la demande de brevet neerlandais antérieure N 84 02472 de la Demanderesse. Le plan de communication prévoit un mau- vais fonctionnement arbitraire d'un module de traitement de données. Dans le système de la figure 1, dans l'état exempt d'erreur, le même programme est exécuté dans toutes les zones d'isolation. Ceci est aussi d'appli- cation dans le mode normal. Cependant, si une pertur- bation systématique apparaît dans une zone d'isolation d'erreur donnée, l'erreur de symbole résultante présen- tant un poids binaire pouvant atteindre 8 est détectée dans les autres zones d'isolation; ces zones commutent sur le mode d'effacement, de sorte que la zone d'iso- lation défectueuse n'entre plus en ligne de compte. lation défectueuse n'entre plus en ligne de compte. Dans la zone d'isolation défectueuse elle-même, la signalisation ne doit pas être correcte; il peut même arriver qu'une commande entièrement différente se produise (par exemple, suite à une défectuosité du registre de mode). Cependant, le système continue dans son ensemble à fonctionner correctement, grâce aux trois autres zones d'isolation d'erreur. CONSTRUCTION DE CODES POSSIBLES. Dans cette section, les constructions de codes D4,23 sur le champ de Galois GF(28) présentant un profil de distance minimum de (7, 4, 1) sont décrites. A titre d'alphabet, on a pris GF(28) = 0,1,o, North Holland Publ. Cy. Amsterdam 1977). Par rapport à une base de GF(28) sur GF(2), les éléments de GF(28) peuvent être représentés comme des vecteurs binaires de longueur 8. Pourï GF2(8), (a0,al,...,a7) est la représentation binaire de si T= ai" b(i) i=0 Un code t4,22 sur GF(28) a une matrice de contrôle de parité systématique de la forme suivante: Pl0 P12 1 0H = H = P21 P22 O 1 c . Il est possible de prouver que le profil de distance minimum d'un quelconque code C4,22 sur GF(28) ne comporte pas d'éléments supérieurs à ceux du profil de (8, 4, 1). Aucune expression analytique n'existe cependant pour le profil de distance minimum qui peut être réellement atteint. Les éléments du profil de distance minimum constituent une série décroissante. Le champ de Galois GF(28) a un très grand nombre (1012) de bases, de sorte qu'il est irréa- lisable de les évaluer toutes. De plus, chaque base différente donne lieu à un nombre appréciable de codes différents, comme il ressort de la description d'une forme d'exécution donnée ci-après. Par ailleurs, quoique la fraction de codes à profil de distance optimum soit très peu élevée, en lui-même le nombre de ces codes optima est important. Cela étant, la stra- tégie de recherche suivante est présentée. En premier lieu, nous nous sommes limités aux bases normales de GF(28) qui ne sont qu'au nombre de 16: Bj: = , o j = 5,9,11,15,21,29,39,43,47,53,55,61,63,87,91,95. En soi, ces bases normales sont connues. Par rapport à chacune de ces bases normales, on a recherché des quadruples (PllP12,P21,P22) qui donnent de "bons" codes. Ces bases normales, en combinaison avec les 2554 quadruples possibles, donnent 2554x16 codes candidats. Chacun de ces très nombreux codes donne lieu à un profil de distance minimum particulier. Il est possible de postuler une opération de recherche pour trouver des quadruples qui donnent des bons codes. Cette opération est décrite plus loin. Le résultat de cette recherche comprend tous les quadruples pour lesquels le code (4,2] correspondant produit un profil de distance minimum de (7, 4, 1) par rapport à une base normale donnée. Par rapport aux bases Bi, = i = 5,9,15,21,29,39,53,55,61,63,87,91, aucun code ( 4,22 présentant un profil de distance minimum de (7, 4, 1) ou (8, 4, 1) n'existe sur GF(28). Par rapport aux bases Bll et B47, essentiel- lement un seul code [4,23 ayant un profil de distance minimum de (7, 4, 1) existe, à savoir celui qui présente la matrice de contrôle de parité: _ 0 H= O 1 _/ 3 p 4 oỦi:é1l7 (de sorte quef E GF(24): est un élément d'un sous-champ. Par rapport aux bases B43 et B95, essentiel- lement 9 codes ayant un profil de distance minimum de (7, 4, 1) existent, à savoir ceux présentant les matrices de contrôle de parité représentées sur la Fig. 2. On peut obtenir d'autres codes équivalents en permutant des colonnes de la matrice H associée et/ou en prémultipliant cette matrice H par des matrices 2 fois 2 régulières sur GF(28). Par rapport aux bases normales de GF(28), des codes E4,2_ présentant un profil de distance minimum de (8, 4, 1) n'existent pas. La description qui précède est une démonstration limitée de la stratégie de recherche de codes. Par souci de concision, aucun autre code n'a été présenté. On considère qu'il est extrê- mement peu probable qu'un code (8, 4, 1) pourrait réellement exister pour une autre base quelconque. CONSTRUCTION DE DECODEUR. La construction d'une forme d'exécution d'un décodeur sera examinée ci-après. Considérons le code t4,22 C sur le champ de Galois F: = GF(28) avec la matrice de contrôle de parité: Hs = [ H 1[ P 6p2 La matrice P6l _/2-A 1 0 Gs = s 2 1 est une matrice de générateur de ce code, qui possède un profil de distance minimum de (7, 4, 1) par rapport a la base 843 = | M2 M 0 I et l'image binaire de Hs est I 0 MT (MT)2 Hbin = O0I (MT)6 MT Pour le décodage, on utilise la matrice de contrôle de parité "redondante" représentée sur la Fig. 3d. Un mot de code c = (Clc2,c3,c4) du code ÀC4,2_7 C sur GF(28) est constitué de quatre symboles ci, i = 1,2,3,4 de 8 bits chacun. Le syndrome d'un mot de code altéré r = (rlr2,r3,r4) = (c1,c2,c3,c4) + (el'e2,e3'e4) est défini par O I M6 M A = (S1,s2,s3,s4) =I O M M2 (rlr2,r3,r4) x M6 M O I M M2 I 0 Pour un vecteur binaire x, le poids wt(x) de x est défini comme étant le nombre de composantes dans x égales à un (_ différentes de zéro). On définira à présent un certain nombre d'ensembles. L'ensemble (*000) est défini par {(x,0,0,0: xeF,x*O)3. Ceci correspond à une configu- ration d'erreur qui n'altérerait que le premier symbole du mot de code. D'une manière analogue, les ensembles (0*00), (00*0) et (000*) sont définis. Les ensembles (ijkm), i,j,k,mE 0,1,21 sont définis par {((u,v,w,x):u,v,W, xE F,wt(u) = i,wt(v) = j,wt(w) = k wt(x) = m}. Ces ensembles définissent des configurations d'erreur qui perturberaient tout au plus deux bits dans un symbole de code quelconque. Un effacement, c'est-à-dire un module de traitement de données connu qui a fait défaut au-delà de ce qui est corrigible, sera désigné par "E". Les ensembles (Ejkm), j,k,m (0,1) sont définis par t(u,v,w,x):u,v,w,xeF,wt(v) = j,wt(w) = k,wt(x) = m} Dans cet ensemble, aucune limitation n'est imposée sur u parce qu'il est considéré comme un effacement et qu'il est complètement ignoré. Ces ensembles définissent des configurations d'erreur comportant tout au plus une erreur portant sur un seul bit en dehors du symbole de code effacé. (iEjk), (ijEk) et (ijkE) sont définis de manière analogue. Les ensembles définis par tous les quadruples précités sont qualifiés de classes d'erreurs. L'ensemble U de confi- gurations d'erreur corrigibles est la réunion des classes d'erreurs illustrées sur les Fig. 5a, 5b (première colonne). Un astérisque représente un symbole d'erreur arbitraire et un E, un symbole d'effacement, et des nombres entiers indiquent le nombre d'erreurs de bit dans le symbole associé. Pour une classe d'erreurs fixe dans l'ensemble U de configurations d'erreur corrigibles, les syndromes de ses éléments ont certaines propriétés en commun. Par exemple, toutes les configurations d'erreur e dans la classe d'erreurs (*000) ont en commun le fait que leurs syndromes s = (sl,s2,s3,s4) satisfont à sl = O,s2#O,s3t0,s4i0. Toutes les configurations d'erreur e dans la classe d'erreurs (iOjO) ont en commun le fait que leurs syndromes s = (s1,s2,s3ts4) satisfont à wt(slM-6) = j et wt(s3M-6) = i. On utili- sera ces propriétés communes par des éléments d'une classe d'erreurs dans le processus de décodage. A cet effet, on a construit un ensemble d'expressions booléennes, une pour chaque classe d'erreurs contenue dans l'ensemble U de configurations d'erreur corri- gibles, qui est tel que ces expressions booléennes soient mutuellement exclusives et que chaque configu- ration d'erreur dans une classe d'erreurs U satisfasse à l'expression booléenne correspondant à cette classe d'erreurs. Ces expressions booléennes sont données à titre d'exemple, en premier lieu parce qu'elles se - rapportent au code spécifique donné plus haut (qui est un code parmi un grand nombre), en second lieu parce que d'autres ensembles d'expressions booléennes peuvent être choisis pour ce code particulier. Pour toutes les classes d'erreurs contenant des éléments dont au moins deux symboles sont corrects, ceci peut être effectué facilement. S'il s'agit d'une configuration d'erreur qui a été prédite comme devant se trouver dans une telle classe d'erreurs, l'esti- mation du message est aussi directe, parce qu'au moins deux symboles (les symboles corrects) du mot de code altéré du code [4,2 J déterminent le message corres- pondant de manière unique. Pour des classes d'erreurs contenant des éléments parmi lesquels trois symboles ont le poids un, il faut déterminer l'erreur de bit dans un des symboles. Si cette détermination est effectuée, on obtient deux symboles de mot de code corrects. Le message émis est estimé à partir de ces symboles. Pour construire les variables booléennes mentionnées plus haut, les définitions suivantes sont nécessaires. Par uj, on entend le vecteur binaire de longueur 8 comportant un un sur la j-ième position et des zéros partout ailleurs. DEFINITIONS. La Fig. 4a donne un ensemble de définitions pour le démarrage. Les modes suivants du décodeur sont définis: RM = 1 si, et uniquement si, le décodeur fonctionne dans un mode aléatoire, c'est-à-dire si toutes les sorties des quatre tranches (modules de traitement de données) sont considérées dans le processus de décodage; EMi = 1 si, et uniquement si, le décodeur fonctionne dans le mode d'effacement i, c'est-à-dire si la tranche i est considérée comme fonc- tionnant mal (produisant un effacement); SMij = 1 si, et uniquement si, le décodeur fonctionne dans un mode simple, c'est-à-dire si seules les tranches i et j sont considérées comme fonctionnant correctement; 29 la Fig. 4b donne un ensemble d'estimations pour le message. Les Fig. 5a, 5b donnent une liste de toutes les classes d'erreurs (EC) corrigibles, l'expression booléenne correspondante à utiliser (BE) et l'esti- mation de message associé (ME) pour toutes les classes d'erreurs de configurations d'erreur corrigibles. Un astérisque indique à nouveau une erreur de symbole arbitraire. Un "E" indique un symbole d'effacement dont l'emplacement est connu. Les nombres entiers 0,1,... indiquent le nombre d'erreurs de bit dans le symbole associé. (Zéro indique un symbole correct). Les nombres entiers 3,4,... seraient représentés par un astérisque. Trois ou plus de trois erreurs de bit dans un symbole (non-effacement), combinées avec une quelconque confi- guration d'erreur différente de zéro dans les autres symboles ne pourraient pas être corrigées avec 100% d'efficacité. Par exemple, une configuration d'erreur e dans (1100) satisfait à l'expression booléenne RM fll f21 = 1, et le message peut être estime par m, (il con- vient de noter que les points faisant l'expression ET n'ont pas été représentés). Une configuration d'erreur e dans (10EO) satisfait à l'expression booléenne EM 3 h31 = 1, et le message peut être estimé par m24. Une configu- ration d'erreur e dans (1101) satisfait à l'expression booléenne RM t4j = 1 pour exactement un j dans (1,...,8), et le message peut être estimé par n4j. Il ressort des Fig. 5a, 5b que le décodeur doit mettre en oeuvre les expressions logiques repré- sentées sur la Fig. 6. La dernière expression de cette figure indique la condition à respecter pour la géné- ration d'un indicateur de détection si le syndrome produit est un syndrome différent de zéro qui ne correspond pas à une configuration d'erreur corrigible. La Fig. 7 illustre une conception globale d'un décodeur. Le décodeur comporte un registre de mode 202 contenant les valeurs de RM, EMi et SMij pour i,j = 1,2,3,4,i#j. Après une opération de décodage, le registre de mode est aussi mis à jour. Une des stra- tégies possibles pourrait consister à commuter du mode aléatoire au mode d'effacement dans le cas d'une erreur portant sur un seul symbole qui n'est pas une erreur portant sur un seul bit. D'autres stratégies de commu- tation dépendent de la statistique des erreurs de l'ensemble du système. Par souci de concision, elles ne font pas l'objet d'une plus ample description. Dans le décodeur, d'autres types de registres pourraient aussi être mis en oeuvre, par exemple un registre stockant les positions et les fréquences des erreurs de bit. En particulier, sur la Fig. 7, sur les entrées 210 apparaissent les quatre symboles de code rl,r2,r3,r4 éventuellement altérés. Dans le bloc 200 est présent un réseau destiné à déterminer les quan- tités binaires fijgijhijtiij. Dans le bloc 204 est présent un réseau pour, sur la base de ces 60 valeurs, produire les signaux de prise de décision DSEL** et ISEL**, et pour mettre à jour le registre de mode et d'autres registres mentionnés plus haut. A cet effet, le bloc 204 reçoit également les signaux de commande de mode du registre de mode 202. Dans le bloc 208, sur la base des quatre symboles de code rl...r4, les six valeurs estimées possibles sur base de deux symboles corrects sont produites, de même que les trente-deux valeurs estimées pour chaque symbole présentant une correction portant sur un seul bit en position j. Sur la ligne 212, ces trente-huit valeurs estimées pos- sibles sont produites, tandis que les signaux de sélection apparaissentsur les lignes 214. Dans le bloc 206, un réseau est présent pour aiguiller la valeur estimée correcte qui apparaît sur la ligne 218 (il convient de noter que cette sélection ne doit pas toujours être unique), tandis que sur la sortie 216, est produit également un indicateur de détection destiné à signaler une erreur détectée incorrigible (il serait également possible qu'une erreur indétectable se présente). On a supposé dans ce qui précède qu'un mot de traitement comporte seize bits (c'est-à- dire deux bytes) et qu'un mot de code comporte trente-deux bits. Si le trajet de données dans le (micro)'processeur est encore plus large, d'une part, une transition vers des symboles de seize bits pourrait être envisagée, ce qui permettrait d'atteindre une capacité de protection contre les erreurs encore davantage accrue. D'autre part, l'appareil pourrait encore fonctionner avec des mots de code de quatre symboles, chaque mot de code ne se rapportant, par exemple, qu'à une moitié d'un mot d'ordinateur. L'avantage en résiderait dans le trai- tement simplifié de symboles de huit bits plutôt que de symboles de seize bits. LE PROCESSUS DE RECHERCHE DE BONS CODES. Le processus de recherche de bons codes sera décrit ci-après. Au départ d'une base C -LP21 P22 o i ait un profil de distance minimum d'au moins (7,4,1) par rapport à la base . Ceci peut être effectué par vérification d'un certain nombre de conditions sur les quadruples (Pll,P12,P21,P22)' A cet effet, les définitions suivantes sont néces- saires: V1: = {i: wt(oi) = 1} = {b(O),b(l),....b(7)}, V2 = {i: wt(i) = 21, W1: = {(Vl-v) mod 255: vl,vl Vll, W2:= {(v2-v2) mod 255: v2,v2 V2], W12: = {(Vl-v2) mod 255: vl Vliv2EV21, U = {(v2-vl) mod 255: vle V,1v2 EV2 3 Pour tous les v EV2: Xv: = {(u-v) mod 255: uE V2}. Pour un ensemble X E{0,1,2,....,254}, X désigne le complément de X par rapport à {0,1,2,...,254: X = t0,1,2,...,254}11X. La fonction Z(.) désigne le loga- rithme de Zech qui est défini par l'équation: 1 + n =K Z(n){ 1 +: Le code 4,2 7 à matrice de contrôle de parité Hc présente un profil de distance minimum mdp par rapport la base , qui satisfait à * mdp> (3,2,1) si, et uniquement si, (A): Pll-P12 ' P21-P22; * mdp >,(4,3,1) si, et uniquement si, (A) et (B1): PllPl2,P21,P22 Wl; et (B2): Pll-P12,Pll-P22,P22-P2,P22-P21EW1;i et (B3): P12+Z(Pll+P22-Pl2-P21), P21+Z(Pll+P22-P12-P21), Pll+Z(-Pll-P22+Pl2+P21), P22+Z(-Pll-P22+P12+P21) E W1; * mdp >,(5,3,1) si, et uniquement si, (A) et (B1,B2,B3) et (C): Pour tous les i,j EVlxV1: i+Pll+Z(j-i+P12-Pll) G V1 ou i+p21+Z(j-i+P22- P21) V1; * mdp >,(6,4,1) si, et uniquement si, (A) et (B1,2,3) et (C) et (D1): PllP12,P21,P226E.W12; et (D2): Pll-P12,Pll-P21,P22-P12,P22-P21îEW12; et (D3): P12+Z(Pll+P22-_Pl2-P21), P21+Z(Pll+P22-Pl2-P21), Pll+Z(-Pll-P22+ P12+P21) P22+Z(-Pll-P22+Pl2+P21)E W12; et (D4): Pour tous les i,j EVlxV1: i+p21+Z(j-i+P22-P21), i+Pll+Z(j-i+P12-Pll), i-P12-Z(Pll+P22-P12-P21)+Z(ji+Pil-P21), i-Pll-Z(-Pll-P22+Pl2+P21)+Z(j-i+Pl2-P22) E VUi; *mdp>/(7,4,1) si, et uniquement si, (A) et (Bl,2,3).et (C) et (D1,2,3,4) et (El): Pour tous les u GV2: (PllE Xu ou P216 Xu) et (P126 Xu ou P226eXu) et (P12+ Z(Pll+P22-P12-P21)E Xu ou P22-P21E Xu) et (P22+Z(-Pll-P22+P12+P21)E Xu ou P12-Pll X7); et (E2): Pour tous les (i,j)IVlxV1: i+pll+Z(j-i+P12-Pll)e V2 ou i+P21+Z(j-i+Pl2-P21)E V2; et (E3): Pour tous les (u,v)E V2xV2: (u-v = P12-Pll) ou (u-v = P22-P21) ou ((u-v É P12-Pll) et (u-v # P22-P21) et (u+ pll+Z(v-u+Pl2-Pll)ú V1 ou u+p21+Z(v-u+p22-p2l)E Vl)); 2 et (E4): Pour tous les i EV1 et u eV2: (i+Pll+Z(u-i+P12-Pll) CV2 ou i+p21+Z(u-i+p22-P2l) E V2), et (i+p12+Z(u-i+Pll-P12)e V1 ou i+P22+Z(u-i+P21-P22) E V2, et (i+ p21+Z(u-i+p22-p21)lV1 ou i+Pll+Z(u-i+P12-Pll) V2) et (i+P22+Z(U-i+P21-P22) e I1 ou i+p12+Z(u-i+pll-p12) E V2)- DEFINITION ET PROPRIETES DU PROFIL DE DISTANCE MINIMUM D'UN CODE. Une définition exacte du profil de distance minimum d'un code est donnée ci-après, de même que certaines de ses propriétés. On prend en considération un code linéaire n,mJ de longueur n et de dimension m sur le champ F: =GF(2k) ayant une distance (de symbole) minimum S. Les éléments de F sont des symboles. Tout symbole c peut être représenté par un vecteur k binaire c. Le poids (binaire) wt(c) d'un symbole cE F par rapport à la représentation vectorielle choisie est défini comme étant le nombre de uns dans la représentation vecto- rielle binaire c de c. Le poids (binaire) d'un vecteur de symboles est défini comme étant la somme des poids (binaires) de ses composants. Le profil pondéral d'un vecteur n c= (c0,c1...i.,cnl) de symboles de F, qu'on qualifie de mot, est défini comme étant le vecteur wp(c): = (wp(clO) , wp(cil),...,wp(clS-l)) o la composante wp(clj) est définie par wp(clj) : = minimum {Zi ^wt(ci) n aç A Aj -,l, 1...,n-l],IAj = n-j, i = 0,1,...,S-1i. Par conséquent, wp(clj) est le minimum des poids de tous les vecteurs de longueur n-j obtenus à partir de c par suppression de j composantes de c. Par exemple, c = (1001,1101,0010) a un profil pondéral wp(c) = (6,3,1). Le profil de distance minimum d(C) du code linéaire C est défini par d(C) : = ((d(CIO),d(Cll),...d(CIS-i)), o d(Cij): = minimum{wp(clj): cEC, c # 0}, j = 0,1,...,S-l. Si l'on prend n-j composantes arbitraires d'un mot de code différent de zéro arbitraire dans C, la somme des poids de ces n-j composantes est d'au moins d(CIj). Il existe aussi un mot de code dans le code C comportant n-j composantes dont les poids s'additionnent pour donner exactement d(CIj). Une paire (s,t) est qualifiée de description d'un mot xSFn, s'il est possible de supprimer s composantes différentes de zéro de x, de telle sorte que la somme des poids des composantes restantes soit égale à t. L'ensemble de toutes les descriptions possibles de x est qualifié d'ensemble de descriptions de x. Par exemple, l'ensemble de descriptions de (1001,1101,0010) est t(0,6), (1;3), (1,4), (1,5), * (2,1), (2,2), (2,3), (3,O)} et l'ensemble de descrip- tions de (0000,1001,1000) est {(0,3), (1,1), (1,2), (2,O)]. Un ensemble fini A ={(al,bl),(a2,b2),.... (ajAI,blAI)1 de paires de nombres naturels est qualifié de liste de paires si toutes les premières composantes ai,i=l,..., IAI des paires - dans A sont mutuellement différentes. Il est dit qu'un mot x est couvert par A, A étant une liste de paires, si au moins une de ses descriptions (s,t) est couverte par au moins une paire dans A, c'est-à-dire si au moins une paire (ai,bi) de A satisfait à ai" s,bi>,t. Considérons que T et U soient deux listes de paires. Le code C est dit simultanément correcteur de T et détecteur de U, s'il corrige toutes les erreurs e couvertes par T et s'il détecte toutes les erreurs e couvertes par U et non couvertes par T. Si U = 0, C est dit correcteur de T, si T = 0, C est dit détecteur de U. Il est immédiatement évident que C est simultanément correcteur de T et détecteur de U si, et uniquement si, 1. aucun de ses co-ensembles ne contient plus d'un mot couvert par T; 2. si un co-ensemble contient un mot couvert par T, il ne contient pas de mot couvert par U et non couvert par T. Ceci équivaut à dire qu'aucune différence entre deux mots différents dont l'un est couvert par T et l'autre par T ou U n'est un mot de code. La propriété suivante est une conséquence directe de ces remarques. Le code C est simultanément correcteur de T et détecteur de U si, et uniquement si, pour une paire quelconque (s,t) dans T et une paire quelconque (u,v) dans la réunion de T et de U, la composante d(CIs+u) de d(C) satisfait à l'inégalité d(CIs+u) > t+v+l Si, dans un mot de code quelconque, e compo- santes, o e d(C'lj) >,d(Clj+e). REVENDICATIONS R E V E N D I C A T I O N S 1.- Dispositif de traitement de données composé de quatre modules de traitement de données (100, 102, 104, 106) comprenant des dispositifs de traitement de données correspondants (12, 14, 16, 18) présentant une largeur de trajet de données d'au moins 2n bytes, des modules de codeur respectifs (20, 22, 24, 26) alimentés par les dispositifs de traitement de. données associés pour coder par byte un résultat de traitement de 2n bytes en un résultat de codage de n bytes, des modules de mémoire respectifs-(28, 30, 32, 34) alimentés par le module de codeur associé pour stocker le résultat de codage, un réseau d'intercon- 1 nexion (82, 84, 86, 88) alimenté par les modules de traitement de données respectifs pour appliquer des résultats de codage entre tous les modules de trai- tement de données, et des décodeurs d'entrée respectifs (54, 56, 58, 60) alimentés par le réseau d'intercon- nexion pour recevoir les résultats de codage en des groupes de quatre bytes et pour reconstituer, à partir de ceux-ci, un mot de données de deux bytes repré- sentant le résultat de traitement à présenter au dispositif de traitement de données associé, le dispo- sitif de traitement de données comprenant, en outre, un registre de mode destiné à commander les décodeurs d'entrée, respectivement, dans un. premier, un deuxième et un troisi&me mode pour, dans un premier mode, accepter et assimiler tous les bytes d'un groupe, pour, dans chacun de quatre deuxièmes modes respectifs, accepter et assimiler trois bytes d'un dit groupe, mais en rejetant un quatrième byte associé du groupe en question, et pour, dans chacun de six troisièmes modes respectifs, accepter et assimiler deux bytes d'un dit groupe, mais en rejetant une combinaison associée de deux bytes restants du groupe en question, et dans lequel les modules de codeur multiplient chaque byte d'un mot de données par une matrice régulière et additionne les bytes de multiplication pour produire un byte de code, les quatre bytes de code ainsi engendrés par les modules de codeur respectifs constituant le mot de code d'un code présentant une distance de Hamming minimum sur les bits de sept, les trois bytes de code acceptés dans un quelconque deuxième mode constituant un mot de code partiel avec une distance de Hamming minimum sur les bits de quatre, les deux bytes acceptés dans un quelconque troisième mode constituant une représentation de tous les bits acceptés du résultat de traitement associé. 2.- Dispositif de traitement de données suivant la revendication 1, dans lequel les symboles de code sont définis dans un champ de Galois qui comporte une base normale. 3.- Dispositif de traitement de données suivant la revendication 1 ou 2, dans lequel le déco- deur comprend: - une entrée pour recevoir un quelconque byte de code d'un mot de code; - un premier module de décodeur (200) alimenté par l'entrée pour déterminer des symboles de syndrome et au moyen de diverses multiplications de ces symboles par des puissances d'une matrice r2 engendrant des quantités booléennes caractéristiques (fijgijhijtij); - un deuxième module de décodeur alimenté par le premier module de décodeur (204) et interconnecté de manière bidirectionnelle à un registre de mode (202) pour, sous la commande du contenu d'un registre de mode et des quantités booléennes caractéristiques, engendrer un signal de sélection (DSEL**, ISEL**); - un troisième module de décodeur (208) alimenté en parallèle au moyen du premier module de décodeur par l'entrée pour émuler 32 valeurs estimées par correction pour autant d'erreurs portant sur un seul bit; - un module de sélection alimenté par l'entrée et par le troisième module de décodeur pour recevoir tous les symboles de code réels et émulés d'un mot de code, et également alimenté par le deuxième module de décodeur, pour, sous la commande d'un signal de sélec- tion "vrai" parmi une série de signaux exclusivement "faux", sélectionner au moins un symbole de code non émulé correct et un autre symbole de code correct, ce. dernier étant émulé ou non et pour sortir ces deux symboles de code sur une sortie d'utilisateur (218). 4.- Dispositif suivant la revendication 3, dans lequel le module de sélection comporte une sortie d'erreur pour, sous la commande de signaux de sélection "faux" reçus de manière exclusive, sortir un indicateur de détection d'erreur tout en bloquant la sortie de tout symbole de code.