Brevet FR2146330A1 — publié le 19730302

La présente nvention concerne les dispositifs de détection et de correction d'erreurs utilisés dans les systèmes électroniques de traitement de données et, plus carticulièrement, un système de détéection et de correction des erreurs afférentes aux signaux de sortie d'unités fonctionnelles et de traitement, telles que les décodeurs de codes opération, qui possèdent une structure logique non organisée. Afin d'augmenter la fiabilité des opérations effectuées nar les systèmes de traitement de données, on procède à de nombreuses vérifications destinées à détecter les erreurs ainsi qu'à un nombre limité de corrections d'erreurs. Les plus connus des dispositifs employés à cette fin sont les circuits de vérification de parité qui engendrent un bit supplémentaire, dit bit de parité, en fonction d'une longueur fixe de données. Ce bit de parité a pour effet de rendre pair ou impair le nombre de bits contenu dans cette longueur fixe. Cette parité peut être régénérée d'une étape du traitement à la suivante et être comparée avec la parité initiale, un désaccord signifiant qu'une erreur s'est produite au cours de l'étape qui vient de prendre fin. On sait qu'il existe également des procédés et des circuits permettant decorriger des erreurs simples ou multiples se produisant dans des groupes de données grâce à l'emploi de codes de correction d'erreurs comportant, dans la mesure où il s'agit de codes binaires, un ou plusieurs bits redondants ou bits de vérification. Les corrections qui peuvent ainsi être effectuées sont uniquement fonction du nombre admissible de bits redondants pour chacun des différents éléments de traitement du système de traitement de données. Un autre procédé connu de détection d'erreurs utilisé aux fins de la transmission de données consiste à engendrer un numéro de vérification à partir des informations à transmettre et à le transmettre en même temps que ces informations, puis à le comparer avec un autre numéro de vérification engendré à partir des informations reçues, tout désaccord entre les deux numéros significant qu'une erreur s'est produite. Ce procédé présente toutefois l'inconvénient de ne pouvoir être utilisé lorsque les informations à vérifier font l'objet d'un traitement et sont par conséquent modifié's. Elle permet donc uniquement de vérifier et, éventuellement, de corriger les informations qui sont transmises mais non traitées. Le décodage des codes opération, qui constitue une partie essentielle des commandes d'un système de traitement de données et auquel sont affectés un dixième environ des circuits de l'unité centrale de traitement (oeu) d'un tel système, n'a jusqu'à présent oas nu faire l'objet de vérifications en raison du caractère essentiellement non organisé de sa structure logique et de son extrême complexité. ne telles vérifications et, en particulier, la correction d'erreurs afférentes aux signaux de sortie du décodeur de codes opération, ont jusqu'à présent été considérées pratiquement impossibles à effectuer en raison de l'importance des moyens techniques qui devraient être mis en oeuvre. L'absence de ces vérifications et corrections constitue néanmoins un inconvénient important, car la probabilité qu'un élément de commande extrêmement complexe et comportant un nombre relativement élevé de circuits fonctionne de façon erronée est élevée, ce qui diminue évidemment la fiabilité globale d'un système de traitement de données. L'objet de la présente invention est donc-de supprimer cet inconvénient et de fournir un moyen de détecter et, le cas échéant, de corriger les erreurs qui peuvent se produire dans des agencements complexes, dont les signaux de sortie présentent une configuration modifiée par rapport à celle des signaux d'entrée. Le dispositif de détection et de correction d'erreurs de l'invention est caractérisé en ce que: (a) en association logique avec une information d'entrée destinée à un dispositif permettant de modifier cette dernière, un ou plusieurs bits de vérification, préalablement engendrés et signifiant que les signaux de sortie du dispositif ne comportent pas d'erreurs, sont emmagasinés dans une mémoire; (b) un dispositif régénère, conformément aux mêmes critères, les bits de vérification provenant de ces signaux de sortie, et (c) une unité de comparaison permet de comparer les bits de vérification associés aux bits engendrés et fournit un signal d'erreur ou corrige l'erreur en cas de non concordance. L'invention présente un intérêt particulier car elle permet de tester complètement les éléments d'un système électronique de traitement de données, tels que le décodeur de codes opération, qui ne pouvaient jusqu'à présent faire l'objet d'aucune vérification en raison de leur structure logique non organisée et de leur extrême complexité. D'autres objets, caractéristiques et avantages de la présente invention ressortiront mieux de l'exposé qui suit, fait en référence aux dessins annexés à ce texte, qui représentent un mode de réalisation Dréfére de celle-ci. La figure 1 est un schéma synoptique d'un système électronique de traitement de données incorporant la présente invention et dans lequel le bit de vérification engendré et le mot de contrôle qui lui est associé sont emmagasinés dans la mémoire de commande. La figure 2 est un schéma synoptique d'une variante de l'invention dans laquelle le bit de vérification est emmagasiné dans une mémoire séparée. La figure 3 est un schéma synoptique d'une autre variante de & invention dans laquelle les bits de vérification sont répartis en plusieurs groupes. La figure 4 est un schéma synoptique d'une autre variante de l'invention comportant une unité de correction d'erreurs. Le programme de commande est emmagasiné de façon classique dans la mémoire de commande CS du système de la figure 1. L'appel d'instructions est effectué en adressant la position de mémoire emmagasinant l'instruction à exécuter par l'intermédiaire de la ligne d'adresse L-ACP. Pendant le cycle de lecture, cette instruction est lue depuis la mémoire CS, puis transmise au registre d'instruction encore appelé registre d'opérations OP-REG. La représentation de ce registre sur la figure 1 permet également de voir la structure d'un mot instruction, le code opération OP se trouvant dans un premier champ de l bit, les adresses des opérandes OPD dans un autre champ de m bits, et un bit de vérification C et un bit de parité P dans deux champs adjacents de 1 bit chacun. Contrairement aux techniques précédemment employées, un mot de commande comprend donc un bit de vérification C supplémentaire qui est représenté par le bit de parité engendré depuis la totalité des signaux de sortie du décodeur de codes opération OP-OEC pour l'instruction correspondante, en supposant que les signaux de sortie fournis par ce décodeur ne comportent pas d'erreur. Le bit C est donc un bit de parité qui doit être engendré antérieurement à chaque mot instruction et emmagasiné ainsi que le mot instruction associé dans la mémoire CS. Le bit de parité P du mot instruction, qui est engendré en tenant compte du bit C, ainsi que le mot instruction associé, sont également emmagasinés dans la mémoire CS. Pour procéder à une vérification, le bit de parité du mot instruction lu depuis la mémoire CS et emmagasiné dans le registre OP-REG est régénéré dans le générateur de parité PG1 à partir des t bit du code opération, des m bits des adresses du code opération et du bit de vérification C qui sont respectivement transmis par l'intermédiaire des lignes L-OP, L-OPO et L-C, et est comparé dans la porte OU exclusif OEl avec le bit de parité P emmagasiné qui, par l'intermédiaire de la ligne L-P est également transmis à ladite porte. Si les deux bits de arité ne concordent pas, la porte OU exclusif DEl engendre un signal de sortie à partir des informations d'entrée non concordantes. ce signal indiquant qu'une erreur de parité s'est produite. il est de la sorte possible de vérifier le mot instruction contenu dans les informations de commande circulant en amont du décodeur OP-OE-. Les signaux de sortie provenant de ce décodeur, oui sont génzralement des signaux de commande servant à ouvrir et à fermer les portes de commande, permettent de commander la circulation des données vers ou depuis les éléments de traitement tels que les registres d'opérandes R1 et P2, l'unité arithmé tique et logique ALU. les mémoires locales LS et, par exemple, le commutateur d'inverSion INV-S. Sur la figure la ces portes sont désignées #I à & et VALU, Les signaux de commande de porte sont transmis à ces dernières par l'intermédiaire des lignes L- & , L- & , L- & et L- & LU.Le sélecteur DSL, qui permet de sblectionner d'autres sources de données. et le commutateur INV-S, servant à modifier les données d'entrée, sont également commandés par les signaux de sortie du décodeur OP-OEC. Comme le montre la figure 1. ces signaux de commande sont appliqués aus sélecteurs connectés par l'intermédiaire des lignes L-SL et L-INV. Les n-9 lignes de commande restantes des n lignes de sortie du décodeur OP-DEC aboutissent à d'autres éléments de commande qui sont essentiellement des circuits de porte. Le décodeur OP-DEC, qui ne pouvait jusqu'à présent faire l'objet d'aucune vérification ou qui, par suite de son extrême complexité et de la structure logique non organisée de ses circuits, ne pouvait être vérifié qu'en mettant en oeuvre des moyens techniques très importants, peut maintenant l'être à l'aide du bit de vérification C. A cette fin, un bit de parité est régénéré dans un second générateur de parité PG2 depuis les n bits de sortie du décodeur OP-DEC.Le bit C emmagasiné dans le registre OP-REE est ensuite comparé avec le bit de parité régénéré dans la porte OU exclusif OE2. Les deux bits de vérification concordent si la configuration du signal de sortie du décodeur DP-DEC est correcte, auquel cas le même signal d'entrée est appliqué aux deux entrées de la porte OE2, laquelle ne peut de ce fait pas fournir un signal de sortie ou un signal correspondant à un "0" binaire. il peut arriver dans certains cas que la structure du système de traitement de données ou de la mémoire de commande du système ne permette pas l'emmagasinage du bit de vérification C et de son mot instruction dans la mémoire de commande. La figure 2 illustre une solution permettant d'emmagasiner le bit C ailleurs que dans la mémoire de commande sans que ce bit cesse d'être logiquement relié à son mot instruction. Le générateur de tarité PG1 reçoit de nouveau les données d'entrée de façon classique, c'est-à-dire qu'il engendre le bit de parité sans tenir compte du bit de vérification C. Etant donné qu'un même code opération OP exige invariablement que le décodeur OP-DEC engendre une meme configuration de signal de sortie, quels que soient les opérandes à traiter, il n'est pas indispensable que les bits de vérification C soient associés à un mot instruction particulier; il suffit au contraire que ces bits soient associés à un code opération DP donné. Par cnnsequent, les bits C peuvent être emmagasinés dans une autre mémoire PPA qui est adressée par le code opération OP. En utilisant un code OP donné comme adresse, le bit de vérification associé à ce code peut être lu depuis la position de mémoire ainsi adressée.Le reste du traitement de ce bit C est identique à celui précédemment décrit à propos de la figure I et n'est donc pas indiqué de façon détaillée ci-après. La vérification des informations de commande, dans la mesure ou cellesci se présentent sous la forme de signaux de sortie d'un décodeur de codes opération, à l'aide d'un unique bit de vérificationaentralne une diminution importante de la fiabilité lorsque le nombre n de lignes de sortie à vérifier est supérieur, par exemple, à dix. Etant donné que, meme dans les petits systèmes de traitement de données, le décodeur de codes opération peut comprendre quarante lignes de sortie ou davantage, il y a intéret à obtenir les informations transmises sur ces lignes en réunissant ces dernières par groupes de dix lignes chacun et à calculer ou engendrer un bit de vérification propre à chaque groupe. La façon dont ce groupage est effectué est représentée sur la figure 3.Les quarante lignes de sortie supposées du décodeur OP-DEC sont divisées en quatre groupes oeî à GR4 de dix lignes chacun. Pour chaque code OP, la mémoire PPA1 contient quatre bits de vérification C1 à C4 dont chacun st associé à l'un des groupes CRI à GR4. Chacun de ces derniers comporte d'autre part son propre générateur de parité. Par exemple, le générateur de parité PW est affecté au premier groupe CRI, et le générateur de parité PG6 au dernier groupe CR4. Si un bit erroné apparaît dans un ou plusieurs de ces groupes, le générateur de tarité associé engendre un bit de vérification qui diffère du bit de vérification emmagasiné associé Ci, et la porte OU exclusif correspondante engendre un signal de sortie indiquant une erreur pour ce groupe. Dans le cas d'applications n'exigeant pas que le groupe dans lequel une erreur s'est produite soit identifié, les sorties des portes OU exclusif OE3 à OE6 peuvent etre réunies par l'intermédiaire d'une autre porte OU (non représentée), dont le signal de sortie est alors employé pour indiquer une condition d'erreur. Dans le cas des systèmes de traitement de données qui doivent nécessairement fonctionner sans interruption, par exemple pour les besoins du traitement en temps réel des données afférentes aux vols spatiaux, il y a intérêt à prévoir, outre les dispositifs de détection et de vérificatinn d'erreurs des décodeurs de codes OP, un circuit EOC-LOG de correction d'erreurs. Comme. on l'a précédemment mentionné, les codes de correction d'erreurs (ECC3 employés dans les circuits classiques de détection et de correction des erreurs qui se produisent dans les groupes de données est uniquement fonction du nombre de bits redondants, ou bits de vérification. admissible dans chaque cas, c'est-à-dire que plus le nombre de bits redondants inclus dans un groupe de données binaires est élevé, plus le nombre de bits erronés compris dans ce groupe et pouvant être corrigés est élevé. On peut tirer parti de ce fait pour corriger les signaux de sortie du décodeur de codes opération. Comme le montre la figure 4, une mémoire de correction d'erreurs ECS, qui est adressée par le code OP correspondant, est utilisée à cette fin.Au moyen d'une configuration appropriée du signal de sertie engendré par le décodeur 3P-DEC, les bits de vérification -sont engendrés, conformément au code ECC choisi, antérieurement aux différentes opérations considérées et sont emmagasinés à l'adresse du code OP associé dans la mémoire ECS. Si le code OP est décodé par le décodeur OP-DEC pendant l'excoScuti#n d'une instruction, les signaux de sortie de ce décodeur sont transmis à un circuit logique de détection et de correction d'erreurs EDC-LOG, et le code OP est d'autre part utilisé en tant qu'adresse pour adresser la mémoire ECS. Les bits de correction d'erreurs de cette adresse qui sont engendrés dans le cas d'une configuration correcte des signaux de sortie du décodeur DP-DEC et qui sont associés à ce code OP, sont également transmis au circuit EDC-LOG. Si la configuration de signal de sortie composée d'une configuration de bits particulière obtenue à partir de toutes les lignes de sortie indique une valeur de bit erronée dans une ou plusieurs positions de bit, le circuit EDC-LOG peut corriger les valeurs de bit erronées en utilisant les bits de vérification transmis depuis la mémoire ECS, et indiquer si les erreurs dont il s'agit sont des erreurs simples SE, des erreurs doubles DE, ou n erreurs NE. Un indicateur d'erreur EI est prévu, qui, par l'intermédiaire de lignes p, est connecté au circuit EDC-LDG.Comme on l'a précédemment observé, les lettres minuscules (figurant à l'entrée et à la sortie des registres et des éléments fonctionnels) indiquent d'une façon générale le nombre de lignes. Dans les réalisations des figures 2 à 4, les mémoires PPA, PPA1 et ECS servent à emmagasiner les bits de vérification. Ces mémoires peuvent avoir une structure physique arbitraire et fonctionner comme des mémoires de lecture/écriture ou comme des mémoires inaltérables, en fonction de la technologie et du concept fonctionnel du système de traitement de données qui sont utilisés. Bien que l'on ait décrit dans ce qui précède et représenté sur les dessins les caractéristiques essentielles de l'invention appliquées à un mode de réalisation préféré de celle-ci, il est évident que l'homme de l'art peut y apporter toutes modifications de forme ou de détail qu'il juge utiles, sans pour autant sortir du cadre de ladite invention. REVENDICATIONS 1.- Dispositif de détection et de correction d'erreurs pouvant se produire dans une configuration de signaux binaires après passage dans un circuit de traitement de données, dispositif caractérisé en ce qu'il comporte, en plus d'un circuit de contrôle de parité contrôlant les signaux binaires de la configuration de bits entrant dans l'unité de traitement, un premier circuit délivrant à l'entrée du circuit de traitement, et pour chaque configuration de signaux binaires d'entrée, un ou plusieurs bits de vérifi cation CI, C2, ...Cq précalculés suivant certains critères à partir de la configuration correspondante des signaux binaires de sortie que doit fournir le circuit de traitement de données en réponse à cette configuration de signaux d'entrée, un deuxième circuit, à la sortie du circuit de traite ment, recalculant le ou les bits de vérification C'I, C'2, ... C'q, suivant les mêmes critères. à partir de chacune des configurations de signaux binaires de sortie effectivement fournie par le circuit de traitement, un circuit de comparaison comparant les bits de vérification pré calculés et recalculés C1 et C'I, C2 et C'2, ...Cq et C'q et émettant, vers un circuit de correction, un signal d'erreur, en cas de non identité, indiquant ainsi une ou plusieurs erreurs dans la configuration correspondante des signaux binaires de sortie de l'unité de traitement. 2.- Dispositif selon la revendication 1 caractérisé en ce que le ou les bits de vérification sont envoyés au circuit de traitement en même temps que la configuration de signaux binaires d'entrée à laquelle elle correspond, ce ou ces bits ds-vérification étant, à la sortie du circuit de traitement, envoyés au circuit de comparaison. 3.- Dispositif selon la revendication 1 ou 2 caractérisé en ce que les configurations de signaux binaires d'entrée et le ou les bits de vérification qui leur correspondent sont emmagasinés dans une même mémoire à partir du circuit de précalcul de bits de vérification et des circuits d'entrée de mémoire d'un système de traitement de données. 4.- Dispositif selon la revendication 1 ou 2 ou 3 caractérisé en ce que les configurations de signaux binaires d'entrée sont emmagasinées dans une première mémoire et les bits de vérifications correspondants dans une deuxième mémoire. les adresses de ces bits de vérification étant données par les configurations ou une partie des configurations de bits d'entrée correspondantes. 5.- Dispositif selon l'une quelconque des revendications précédentes caractérisé en ce que les q bits de vérification CI, C2, ... Cq correspondent à p groupes de signaux d'une configuration de signaux binaires de sortie, un ou plusieurs bits de vérification étant associés à chacun des groupes de chaque configuration et pouvant être emmagasinés séparément ou avec la configuration d'entrée dans une mémoire, p circuits à la sortie de l'unité de traitement étant prévus pour recalculer les bits de vérification des p groupes de bits, de même que p circuits de comparaison comparant, pour chacun des p groupes de bits de la configuration de bits de sortie, le ou les bits de vérification pré cal culés au ou aux bits de vérification recalculés et délivrant des signaux d'erreurs indiquant ceux des p groupes de signaux de sortie qui ont été trouvés entachés d'erreurs. 6.- Dispositif selon l'une quelconque des revendications précédentes caractérisé en ce que le bit de parité est généré à partir de l'ensemble des bits de la configuration de bits d'entrée, y compris le ou les bits de vérification. 7.- Dispositif de détection et de correction d'erreurs pouvant se produire dans une configuration de signaux binaires après passage dans un circuit de traitement de données, dispositif caractérisé en ce qu'il comporte un circuit de détection et de correction d'erreurs connecté à la sortie du circuit de traitement de façon à recevoir les configurations de signaux de sortie en provenance du circuit de traitement et des bits de vérifications associés précalculés, en provenance soit de ce circuit de traitement, soit d'une mémoire externe adressée par la configuration de bits d'entrée, ce circuit de détection et de correction d'erreurs déterminant, à sartir de ces bits de vérification pré calculés et de bits de vérification recalculés à partir des configurations de signaux de sortie, le ou les bits devant etre inversés dans la configuration de sortie. 8.- Dispositif selon l'une quelconque des revendications précédentes caractérisé en ce que la configuration de bits d'entrée représente une instruction en provenance du registre d'instruction d'un système de traitement de données. 9.- Dispositif selon l'une quelconque des revendications 1 à 7 caractérisé en ce que le circuit de traitement de données est un circuit décodant le code opération des instructions d'un programme d'un système de traitement de données. 1û.- Dispositif selon l'une quelconque des revendications précédentes caractérisé en ce que le ou les bits de vérification sont les bits de parité de la configuration ou de parties de la configuration de signaux binaires de sortie.