L'invention sera décrite en se référant à un dispositif réalisé dans un ordinateur numérique contenant une mémoire de commande inaltérable qui commande l'exécution des instructions de programmes mis en mémoire. Cependant, on peut utiliser l'invention dans des machines de traitement de données qui n'u-5 tilisent pas une mémoire rfe commande inaltérable et dans des calculateurs spécialisés qui sont construits particulièrement pour réaliser une seule tâche ou un nombre limité de tâches et qui ont un programme incorporé à la machine." Les ordinateurs numériques traitent les données conformément à des instructions disposées en un certain nombre de programmes. Les données et les ins-10 tructions sont représentées par des impulsions électriques, chaque impulsion se voyant attribuer suivant sa valeur, la quantité binaire 0 Cbit 0) ou à la quantité binaire 1 (bit 1). Plusieurs de ces bits (chiffres binaires) sont disposés pour représenter un mot de données ou un mot d'instruction. Les mots de données sont traités dans le système en fonction des mots d'instruction; les 15 mots d'instruction étant exécutés un à la fois, successivement, au fur et à mesure qu'ils sont pris à partir d'un programme. Les instructions sont généralement exécutées sous forme d'une série d'étapes séparées dans le temps. Pendant l'exécution d'une quelconque de ces étapes, il est possible qu'il y ait un mauvais fonctionnement dans le système. Les mau-20 vais fonctionnements ou erreurs peuvent être de courte durée (erreur passagère) ou de longue durée (erreur permanente). Une erreur passagère peut être par exemple, le résultat de fluctuation soudaine de la puissance d'alimentation ou le résultat d'un choc mécanique. Une panne d'un composant, tel qu'un tube à vide ou un transistor, peut donner une erreur permanente. 25 Dans l'art antérieur, l'apparition d'une erreur est généralement traitée indépendamment de sa classification comme erreur passagère ou permanente. Dans un dispositif connu de l'art antérieur, la détection d'une erreur arrête complètement le système. Il en résulte une non utilisation coûteuse du système jusqu'à ce que l'opérateur puisse corriger l'erreur Cla correction consiste 30 souvent à recommencer le travail à son début) même si l'erreur est due à une condition passagère qui a disparu. Le problème de la perte de temps provoqué la nécessité de recommencer un travail à partir da son déhut a conduit à une technique connue sous le nom de technique du "point de contrôle dans un programme" dans laquelle, à des intervalles de temps, toute l'information nécessaire 35 pour recommencer le travail depuis le moment auquel est placé le point de contrôle sera envoyée à une mémoire auxiliaire telle qu'une mémoire à bande magnétique ou à disque^ Cette information comprend généralement: le contenu total de la mémoire du calculateur; l'état de tous les indicateurs d'état du calculateur, l'identité du dernier enregistrement des données d'entrée traitées d'une" 40 manière satisfaisante Cceci doit être réalisé pour chaque unité qui envoie une 69 2Û452 2 2012948 entrée au calculateur) et l'identité du dernier enregistrement des données de sortie fournies par le calculateur à chaque dispositif de sortie. Ainsi, si une erreur arrête le système, toutes les parties du système peuvent être restaurées dans l'état où elles se trouvaient au moment où le point de contrôle 5 est pris, et le traitement continuera à partir de ce point. Bien que la technique du point de contrôle offre des avantages lorsque les travaux longs sont exécutés sur uncalculateur, elle présente cependant plusieurs inconvénients. Par exemple, la fait de ramener le système à un point d=contrôle précédent donne une perte de temps importante et les programmeurs sont parfois contraints d'é-10 crire des programmes longs de telle manière que les points de contrôle puissent être pris d'une manière commode. L'inconvénient le plus notoire de cette technique du point de contrôle est dû au fait que même lorsque l'on ne détecte pas d'erreur pendant l'exécution d'un travail (et ceci est le plus souvent le cas) une quantité excessive de temps et de ressource du système est utilisée d'une 15 manière non productive pour prendre les points de contrôle non utilisés. Même dans ces ca&, lorsqu'une erreur du système nécessite l'utilisation d'un point de contrôle, les points de contrôle précédents qui ne sont pas utilisés représentent une utilisation non productive du temps et des ressources du système. Plus récemment, des systèmes de l'art antérieur ont été inventés qui font 20 la différence entre les erreurs passagères et les erreurs permanentes. Par exemple, on connaît diverses techniques qui font répéter l'exécution d'une instruction pendant l'exécution de laquelle une erreur a été détectée par l'ordinateur. Si l'erreur était d'une nature passagère, des essais successifs devraient permettre d'exécuter l'instruction d'une manière satisfaisante. Dans la plu-'25 part des systèmes dans lesquels on essaie de réexcécuter une instruction pendant l'exécution de laquelle une erreur a été détectée, après un nombre prédéterminé d'échecs, l'erreur est elassifiée comme permanente et le système signale à l'opérateur qu'une action de correction est nécessaire. Les solutions de l'art antérieur aux problèmes posés par les erreurs per-30 manentes peuvent être groupées en général en deux classes: Les systèmes redondants, et les systèmes d' "émulation". Un système redondant est un système qui contient plus d'unités fonctionnelles qu'il est nécessaire quand le système fonctionne dans son état normal exempt d'erreurs» Par exemple, bien que le système n'ait besoin que d'un additionneur, deux additionneurs distincts y sont 35 compris. Ensuite, si un mauvais fonctionnement permanent se présente dans un des additionneurs} l'autre additionneur prendra automatiquement sa place dans le flux de données. Dans un système d'émulation, des unités fonctionnelles diverses du système sont réalisées d'une telle manière qu'elles puissent faire le travail exécuté normalement par une autre unité. Dans ce genre de système, 40 si une unité a un mauvais fonctionnement permanent, une autre unité s'occupera 69 20452 3 2012948 de son travail. Le système redondant est en général le plus coûteux des deux'systèmes cités mais son fonctionnement est plus sûr-si une erreur permanente se présente. Le système d'émulation sera moins sûr- puisque dans le cas d'un mauvais fonc-5 tionnement au moins une unité du système exécutera deux tâches; car elle aura sa propre fonction à exécuter en plus de la fonction de l'unité défectueuse. Les deux systèmes de l'art antérieur sont en général coûteux, le système redondant est plus coûteux à cause des unités fonctionnelles supplémentaires qui sont exigées; le système.d'émulation est coûteux à cause de la flexibilité supp-10 lémentaire incorporée dans les diverses unités fonctionnelles. En utilisant le parallélisme inhérent des divers trajets de données d'un ensemble de traitement d'information, cette invention permst à un ensemble de continuer son opération malgré la présence d'un mauvais fonctionnement. Plusieurs des unités fonctionnelles présentes dans un ensemble de traitement d'in--15 formations (par l'exemple, l'additionneur, le dispositif de déplacement, les registres) traitent en parallèle lss bits qui font partie d'un mot d'information. La plupart de ces unités peuvent être divisées en deux, quatre, huit, etc.. parties identiques. Selon un aspect de l'invention, la détection d'un mauvais fonctionnement dans une unité fonctionnelle (par exemple une erreur4 de parité) 20 fera déterminer par le système si une moitié de l'unité fonctionne correctement. Si une moitié de l'unité fonctionne correctement, la bonne partie sera utilisée deux fois, traitant la moitié d'un mot de données à la fois, afin de produire le résultat correct. Si ni l'une ni l'autre des moitiés de l'unité fonctionne correctement, l'invention déterminera si un quart de l'unité fonc-25 tionne correctement. Si un quart de l'unité fonctionne correctement, le traitement d'information peut continuer utilisant la bonne partie quatre fois. C'est-à-dire, un quart de l'information passera par la bonne partie de l'unité quatre fois afin de produire un résultat correct. Dans le cas du système ici décrit, cela veut dire que l'information sera traitée un multiplet à la fois. La divi-30 sion répétitive de l'unité fonctionnelle.peut être continuée jusqu'à la limite voulue, mais il est en général préféré de ne pas employer une partie d=l'unité fonctionnelle plus petite que la plus petite partie qui peut être vérifiée. Les données seront généralement envoyées à l'unité fonctionnelle par un registre ou un autre bloc émetteur situé autre part dans l'ensemble de traite-35 ment d'informations. Généralement la parité de données aura déjà été vérifiée et on saura que les données sont exempte's d'erreurs. Pour les cas où les données d'origine peuvent être changées avant la détection d'une erreur, un registre auxiliaire est fourni pour emmagasiner les données d'origine. Dans le cas d'une erreur les données emmagasinées sont envoyées directement à l'unité fonction-40 nelle par le registre auxiliaire. Conformément à la connexion entre le régis- é»9 20.452 4 2012940 tre auxiliaire et les unités fonctionnelles, un ou plusieurs registres supplémentaire peut être nécessaires dont chacun est capable d'emmagasiner" une partie des données d'origine. " ' L'action de correction nécessaire commence par la détection de l'erreur. 5 Dans le système ici décrit, divers circuits de conditionnement sont compris dans la mémoire inaltérable de commande (ROS). Le signal d'erreur peut être utilisé pour faire commander le. système par une partie appropriée de la mémoire ROS. Dans la réalisation préférée de cette invention, le premier mot de commande de la mémoire inaltérable,. qui est utilisé dans le cas d'une erreur, est 10 situé dans la position zéro de la mémoire ROS. La manière préférée pour permettre au mot à la position zéro de la mémoire ROS de se charger de la commande du système est d'employer le signal d'erreur pour bloquer les signaux d'entrée normaux du registre de données de la mémoire ROS. Il en résulte que le mot à la position zéro de la mémoire ROS sera choisi pour transfert au registre 15 ROSDR durant le cycle prochain de la mémoire ROS. La mémoire ROS commandera ensuite le déclenchement des données dans le système qui permettra aux sections du mot de données de passer plusieurs fois par l'unité fonctionnelle qui a un mauvais fonctionnement. Cette invention résoud la plupart des problèmes dûs à des mauvais fonc-20 tionnements de la machine. Des réalisations de cette invention seront en général moins cher que les réalisations des solutions de l'art antérieur citées ci-dessus. Nettement, l'addition d'un nombre faible de portes et de registres sera moins coûteuse que l'addition d'une unité fonctionnelle entière exigée par les systèmes redondants. Le prix de l'addition des portes et des registres 25 peut aussi être bien souvent moindre que le prix de dessins et de réalisations des divers systèmes d'émulation. Bien qu'avec cette invention, là détection d'une erreur réduise un peu l'efficacité du système, la réduction sera plus petite que celle introduits par les divers systèmes d'émulation. Naturellement,, puisque l'invention permet à un ensemble de traitement de données de fonction-30 ner malgré un mauvais fonctionnement, elle est meilleure que le système dans lequel un mauvais fonctionnement permanent arrête le système complètement. 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 a ce texte, qui représentent un mode de réalisation.préféré de celle-ci. 35 La figure 1 est un diagramme schématique d'un ensemble.de traitement de . données dans lequel l'invention peut .être utilisée. • • •' '• La figure 2 est un diagramme de l'arrangement général des: commandes de séquences de l'unité centrale de traitement du système. £ La figure 3 est un diagramme des temps du circuit de synchronisation 306 40 illustré dans la figure 2. , ... V- .. . .. •" 69 20452 5 2012948 La figure 4 est un diagramme schématique montrant la façon générale de réaliser l'invention dans une unité fonctionnelle de l'ensemble de traitement d'informat ions. La figure 5 montre la façon d'utiliser les divers indicateurs d'erreurs 5 pour commander le flux de données dans l'unité fonctionnelle quand une erreur est détectée. La figure 6 montre un compteur d'erreurs et un verrou qui peut être utilisé pour détecter les erreurs permanentes. La figure 7 montre une réalisation particulière de l'invention quand elle 10 est utilisée avec l'additionneur du système de la figure 1. La présente invention s'emploie dans un système de traitement d'informations comprenant typiquement, un emmagasinage, une unité centrale de traitement (CPU), une unité de commande du système et une unité d'entrée/sortie (I/O). Les détails du système de base décrit dans les références ci-dessus, sont 15 inclus dans cette description en vue d'enseigner le fonctionnement de ce système. En se référant à la figure 1, le système d'emmagasinage comprend une mémoire principale (MS) 12 et une mémoire spécialisée (LS) 13. Bien que des unités d'entrée/sortie spéciales ne soient pas illustrées, de telles unités sont con-20 nues et communiquent avec le système de la figure 1, par l'intermédiaire du réseau de portes 216 relié aux bascules de sortie de l'additionneur 217 elles-mêmes reliées au "bus" (groupes de lignes} 221. L'unité de commande du système commande l'opération du système en ouvrant et fermant des portes et en engendrant des autres signaux de commande à plusieurs positions du système. Puisque 25 ces signaux de déclenchement et de commande et leurs réalisations sont bien connus, ils sont représentés collectivement par le bus de sortie 15. On va décrire ci-dessous des signaux de commande particuliers qui sont importants pour cette invention. On considère en général que le reste des circuits illustrés dans la figure 1 font partie de l'unité centrale de traitement CPU. L'unité 30 de traitement centrale CPU et le système peuvent obéir à des instructions enregistrées. La. mémoire principale (MS) 12 peut être incorporée physiquement dans le CPU ou construite comme une unité indépendante. La vitesse du cycle d'emmagasinage n'est pas directement reliée au cycle interne du CPU, ce qui permet une 35 bonne relation entre la vitesse du CPU et les dimensions de la mémoire. La recherche et l'emmagasinage des données par le CPU ne sont pas affectés par un transfert de données I/O simultané. La mémoire principale 12 est de préférence un ensemble de tores magnétiques où on choisit une adresse dans l'ensemble par des signaux du registre d'adresses d'emmagasinage 00. Quand le registre SAR 40 90 contient une adresse de la mémoire principale, la mémoire principale 12, 69 20452 6 2012948 commandée par sa propre synchronisation interne, transmet l'information par des lignes de sortie 95 au registre de données d ' errmmagasinage (SDR) 91. en employant son cycle de mémoire de base. A partir du registre les données peuvent être renvoyées à la mémoire MS 12, et par.1'intermédiaire du circuit de 5 déclenchement 216, et les bascules 217, elles peuvent être envoyées sur le bus de sortie de l'additionneur 221. Le cycle de mémoire de base comprend un demi-cycle de lecture dans lequel les données sont lues d'une manière destructive dans la mémoire principale et enregistrées dans le registre 91 suivi par un dsmi-cycle d'écriture dans lequel 10 l'information présente dans le registre 91 est renvoyée à la mémoire principale. En plaçant des donnée différentes dans le registre 9(1 avant le renvoi du cycle d'écriture, les données qui étaient dans la mémoire principale peuvent être changées effectivement. En même temps que le cycle de régénération, l'information dans le registre 91 devient disponible pour le système sur le bus AOB 15 221. Dans le format de l'information du système, les bits d'information sont groupés par multiplets» de 8 bits. Chaque multiplet contient aussi un neuvième bit de parité qui est utilisé dans la détection d'erreurs. Le bit de parité n'est pas affecté par le programme, son seul but est d'arrêter le système quand 20 une erreur d= parité se présente. On suppose aussi que le bit de parité est associé avec des multiplets et que des circuits ordinaires de vérification de parité sont inclus en divers points du système, d'une manière bien connue. Deux multiplets sont disposés dans un champ plus large, qu'on appelle un demi-mot, et quatre multiplets ou deux demi-mots font un champ même plus large 25 qu'on appelle un mot. Plus particulièrement, dans ce système un mot est défini comme quatre multiplets consécutifs et sera ainsi traité dans cette invention. Cependant, on comprend que des mots ou des multiplets pourraient contenir n'importe quel nombre de bits. Divers formats de données peuvent être employés dans le système de façon 30 que les instructions et les opérandes puissent être de longueurs différentes selon l'opération particulière qu'il exécute. Des positions dans la mémoire numérotées consécutivement à partir de zéro, sont affectées aux multiplets. On considère que chaque numéro est l'adresse du multiplet correspondant. Un groupB de multiplets dans la mémoire est adressé 35 par le multiplet le plus à gauche du groupe. Le nombre de multiplets dans le groupe est défini implicitement ou explicitement par l'opération déterminée par l'instruction. L'ensemble d'adressage emploie une adresse binaire de 24 bits qui permet un maximum de 18 777 216 adresses de multiplets. Cette série d'adresses de la mémoire principale comprend certaines positions réservées à 40 des fins particulières. 69 20452 7 2012940 L'adressage de la mémoire retourne en boucle l'adresse maximum du multiplet à l'adresse zéro. Des opérandes de longueurs variables peuvent être situés en partie dans la dernière position et en partie dans la première position de la mémoire, et sont traités sans indication spéciale du passage de la liftiite 5 d'adresse maximum. Les champs de longueurs fixes, tels que les demi-mots et les double-mots, doivent être placés dans la mémoire principale dans un "domaine entier" pour cette unité d'information. Un "domaine entier" pour une unité d'information a une adresse dans la 10 mémoire qui est un multiple de la longueur en multiplets de l'unité. Par exemple, des mots (4 multiplets) doivent être placés dans la mémoire de manière que leur adresse soit un multiplet du numéro 4. Des champs de longueurs variables ne sont pas limités à des domaines entiers, et peuvent commencer à n'importe quelle position de multiplets. 15 La mémoire spécialisée (LS) 13 consiste en 64 registres qui ont une capa cité d'un mot, qui sont adressés par le registre d'adresses de mémoire spécialisée 120. Le registre 120 est chargé par le registre J 121 qui à son tour est alimenté par le bus 221 ou le bus de sortie du dispositif de déplacement 222. Quand une opération de lecture est déterminée par la mémoire LS 13, le mot ad-20 ressé dans la mémoire LS 13 est transmis au registre L 126 ou au registre R 124. Les registres L et R ont leurs sorties connectées à la mémoire LS 13 ou à l'additionneur 210. La mémoire spécialisée 13 a une opération de LECTURE et d'ECRITURE comme celle de la mémoire principale 12. 25 Seize des 64 positions de mot dans la mémoire LS 13 sont en général des registres utilisés comme registres d'index dans l'arithmétique d*adresse et indexage, et utilisés comme accumulateurs-dans l'arithmétique en virgule fixe, et les opérations logiques. Ces registres généraux sont identifiés par les numéros 0 à 15 et sont déterminés par un champ de 4 bits dans les instructions. 30 De plus, la mémoire LS 13 comprend des positions de mémoire de travail qui sont utilisées à diverses fins partout.dans le traitement. On a trois lignes de bus de données de base qui sont toutes d'une largeur différente, et par lesquelles les données sont acheminées à partir d'un registre à un autre. Ceux-ci sont le bus de sortie de l'additionneur à 32 bits 221, 35 le bus d'adresse d'instruction à 24 bits 223, et le- bus de sortie du dispositif de déplacement à B. bits 222. Le système de flux de données consiste principalement en deux trajets parallèles qui peuvent être excités en même temps. L'un est le trajet de l'additionneur à 32 bits comprenant l'additionneur 210 qui est alimenté par plusieurs 40 registres de 32 bits, L, R, M et H. L'autre trajet est le trajet du. dispositif' 69 20452 2012948 de déplacement logique d'une largeur de 8 bits comprenant le dispositif de déplacement de 8 bits 213 alimenté par les registres L, R et M. Le dispositif de déplacement traite des blocs de un multiplet par incrément de demi-multiplet. Outre le trajet de l'additionneur et celui du dispositif de déplacement, 5 il y a quatre autres trajets de données importants dans le système de base. Ce sont les trajets de données du dispositif de décalage, de l'adresse d'instruction, de la mémoire spécialisée, et de la mémoire principale. L'additionneur peut utiliser l'arithmétique binaire et l'arithmétique décimale. L'arithmétique décimale est réalisée en effectuant l'addition binai-10 re (exacte ou complémentaire) et en engendrant un facteur de correction décimale dans le registre L, dans le même cycle de l'unité centrale CPU. On a besoin d'un autre cycle pour soustraire du résultat du cycle précédent le facteur de correction. L'additionneur 210 comprend, ainsi que les 32 unités d'addition individuelles, quatre circuits de vérification de parité (un pour chaque mul-15 tiplet), quatre circuits de production de parité (un pour chaque multiplet), et des circuits de prévision de report. Durant l'exécution des fonctions arithmétiques, les données sont envoyées à l'entrée Y de l'additionneur de droite à partir du registre de 32 bits H; M, ou R. L'entrée de l'additionneur de gauche XG comprend une porte exacte/complémentaire 220 et est alimentée par le 20 registre L 123 de 32 bits. Dans un seul cycle de l'unité centrale CPU, deux opérandes ds 32 bits sont envoyés aux entrées des additionneurs XG et Y, passent par l'additionneur et enclenchent les bascules de sortie de l'additionneur 217. A la fin du cycle du CPU, la sortie de l'additionneur est dans les bascules 217, prête à être 25 envoyée à un registre d'opération. Dans le système décrit, on soustrait en utilisant le complément de deux qui est commandé par la porte 210 exacte/complémentaire de l'entrée XG. Quand la porte complémentaire est enclenchée, les bits renvoyés à XG sont inversés (c'est-à-dire les uns deviennent des zéros et les zéros deviennent des uns), ainsi formant le "complément à un" du signal d'en-30 trée original XG. Le "complément à deux" est réalisé en mettant un report dans le signal d'entrée de l'additionneur XG. La multiplication et la division sont réalisées par l'additionneur par des additions et des soustractions successives. Les divers signaux de conditionnement et de commande qui sont nécessaires pour réaliser des fonctions de l'additionneur décrites proviennent de l'unité de 35 commande du système 11 qui sera décrite avec plus de détails ci-dessus. Le trajet de données du dispositif de décalage va de l'additionneur 210 aux bascules 217 et permet le décalage du signal de sortie de l'additionneur vers la gauche ou vers la droite de une ou quatre places. De plus, le dispositif de décalage 215 comprend aussi des moyens pour conserver et emmagasiner 40 les parties superflues des données décalées. Le dispositif de décalage est è9 20452 9 2012948 aussi commandé par l'unité de commande du système 11. Le trajet de données du dispositif de déplacement est utilisé principalement pour exécuter les instructions de champs à longueurs variables. Deux émetteurs de multiplets peuvent être choisis à la fois par le dispositif de dé-5 placement pour une opération logique. Le signal d'entrée du dispositif de déplacement à gauche, U, peut être un multiplet sélectionné parmi les registres R ou L commandé par un des deux compteurs de mutliplet 101 et 102 ou par un multiplet formé par le contenu des deux registres à quatre bits MD 103 et F 104. Le signal d'entrée du dispositif de déplacement à droite, V, est un multiplet 10 sélectionné du registre M 211 commandé par un des deux compteurs de bit 101 ou 102. Le dispositif de déplacement, comme les autres trajets des données, est commandé par l'unité de commande du système 11. Le trajet des données d'adressage d'instructions est large de 24 bits pour déplacer et mettre à jour l'instruction à 24 bits contenue dans le registre 15 218 d'adresses d'instructions. La première instruction est d'abord mise dans le registre d'adresse d'instruction 218 par l'unité de commande du système 11. Des instructions sont envoyées à partir du registre 218 au compteur d'adresses d'instruction et aux bascules 219. Le compteur d'adresses d'instructions ajoute un nombre approprié de multiplets (6 multiplets dans le cas des instructions 20 de remise en place ou instructions SS) à l'adresse d'instructions et met l'adresse mise à jour dans le registre 218 par l'intermédiaire du bus 226. L'adresse d'instruction, avant la mise à jour, représente la position dans la mémoire principale 12 de l'instruction courante à exécuter et elle est lue au registre d^adresses de mémoire 90, envoyés à la mémoire principale 12, et fait 25 lire l'instruction adressée au registre de données emmagasinées 91. Les instructions transmises de la mémoire principale 12 au registre 91 passent par les circuits de portes 216 aux bascules 217. La séquence pour conditionner une instruction, qu'on appelle la recherche d'instructions consiste .en un premier et en un deuxième niveau de recherche d'instructions. Durant la recherche d'ins-30 tructions, l'instruction est lue et utilisée pour conditionner l'unité CPU et les mémoires spécialisées avant le commencement d'une exécution.. L'unité de corrmande du système 11 comprend une unité de commande de séquence 302, des convertisseurs série-parallèle à usage général 303, un registre de mots d'état de programme 304, et des circuits de détection d'erreurs 35 305. On se réfère maintenant aux figures 2 et 3 qui représentent las commandes de séquences du système de traitement d'informations. Les commandes de séquences comprennent une mémoire inaltéralble à condensateur GROS) 300 d'un genre connu. Les circuits de commande comprennent aussi une bascule de mode 307, des 40 bascules de condition 303, qu'on appelle des STATS, et des circuits de synchro 69 20452 10 2012948 nisation 306, Les circuits de synchronisation 306 produisent cinq signaux cycliques à la fréquence de l'unité CPU qui sont déphasés par rapport au temps zéro d8 référence de chaque cycle de l'unité CPU de la manière illustrée dans la figure 3. 5 Les données dans la mémoire inaltérable sont adressées par un registre de sélection à douze bits (ROAR) 306. Des signaux d1adresse pour le registre peuvent provenir de diverses sources comprenant l'information de commande de sortie du registre de données de la mémoire inaltérable 310 dans chaque cycle de l'unité CPU pour sélectionner un des 2816 mots de commande à 90 bits at pour 10 enregistrer ce mot dans le registre de données de la mémoire inaltérable 310. Chaque mot, qu'on appelle une micro-instruction, est transféré au registre de données de la mémoire inaltérable 310 au temps de FENETRE DE DETECTION qui arrive juste avant le commencement du cycle prochain du CPU, et il commande le fonctionnement da l'unité de traitement centrale durant le cycle prochain. 15 L'état du registre d'adresses 306 est déterminé avant l'arrivée de l'impul sion de la rangée de commande (figure 33 et commande l'état du registre 310 au temps de FENETRE DE DETECTION prochain. Ainsi, chaque signal d'entrée dans le registre d'adresses de la mémoire inaltérable 308 commande d'habitude le fonctionnement de l'unité CPU durant le cycle suivant de l'unité CPU. 20 Chaque entrée dans le registre 306 est déterminée d'une ou de plusieurs façons par les signaux d'entrée envoyés aux portes 312 par le réseau ds portes OU 314. D"habitude las seuls bits envoyés sur le réseau OU 314 proviennent par l'intermédiaire des portes 316 d'une ou ds plusieurs sources comprenant un segment du registre 310, des conditions de sortie enregistrées par les STATS 303 25 en condition de sélection et 1'information da branchement du programme sélectionné (codes d'opérations d'instruction de programmes). On a supposé dans lrexposé qu précède que la "bascule ds mode 307 est réglée pour le mode de l'unité CPU et que le fonctionnement de l'unité CPU n'a pas été interrompu par les unités d'entrée/sortie. Les requêtes provenant de ces 30 unités sont reconnues par un signal Routine Reçue (RTNE RCl, Les entrées des portes ET, 331 dans la figura 2, montrent que, si l'unité CPU est dans le mode CPU quand elle reçoit un signal RTNE RC, la bascule de mode 307 n'est pas enclenchée au mode I/O jusqu'au temps du cycle suivant la montée de RTNE RC. Cela permet à l'unité CPU de finir l'exécution de la micro-instruction courante. 35 Si le mode de l'unité GPU est haut quand le signal RTNE RC est reçu, la porte ET 333 es conditionnée pour fournir un niveau de sortie qui est haut, et ce niveau interdit le circuit ET 332, supprimant ainsi le signal de FENETRE DE DETECTION des portes de détection 334 qui fournissent normalement des signaux d'entrée au registre 310 à partir de la mémoire inaltérable 300. Cela permet 40 de réaliser lea demandes des unités d'entrée/sortie. 69 20452 11 2012940 En se référant à la figure 4, des détails divers de l'invention peuvent être vus. On trouve une unité fonctionnelle 402 qui reçoit des données provenant d'un registre 404 et envoie des données à un autre registre 406. L'Unité fonctionnelle 402 peut être une unité qui traite et change les données (telles 5 qu'un additionneur) ou elle peut être une unité qui ne change pas les données qu'elle transmet (telle qu'un registre ou un bus de données). Le registre 404 peut très bien être une autre source de données (telle qu'une unité entrée/ sortie, une mémoire ou un additionneur), et le registre 406 peut aussi être n'importe quelle unité qui reçoit des données. Les unités 404 et 406 seront 10 appellées dorénavant des registres pour faciliter d'explication, mais l'homme de l'art comprendra qu'elles ne sont pas limitées à des registres. Durant le fonctionnement normal du système, pendant que les données sortent du registre 4uQ 404, leur parité est vérifiée par un circuit de vérification de parité/réalisé de n'importe quelle manière connue. Les données seront envoyées, sous commande 15 d'un mot dans la mémoire ROS dans le registre 310 par l'intermédiaire d'une porte 410 à l'unité fonctionnelle 402. Ensuite, les données seront envoyées au registre 406. La parité de chaque multiplet de données provenant de la sortie de l'unité 402 sera vérifiée. Si la parité d'un multiplet n'est pas correct, un indicateur de vérification de parité associé 411, 412, 413 ou 414 sera en -30 clenché. On a supposé que les éléments décrits ci-dessus seraient déjà présents dans le système. Cependant, l'homme de l'art comprendra que la position du circuit de vérification de parité dans un ensemble de traitement d'informations dépendra pour une grande partie d'autres critères de dessins. Bien qu'il soit 25 préféré que les données entrant dans une unité fonctionnelle avec laquelle cette invention est associée aient leur parité vérifiée, on comprend qu'il n'est pas toujours absolument nécessaire que la vérification de>parité se fasse juste avant l'entrée dans l'unité fonctionnelle particulière. L'homme de l'art comprendra aussi qu'en réalisant cette invention dans un ensemble de traitement 30 de données qui ne comprend pas déjà assez de circuits de vérification de parité, de tels circuits peuvent être ajoutés facilement où nécessaire. En prévision du cas où les données d'origine contenues dans le registre 404 peuvent être changées avant la détection d'une erreur, on a ajouté un registre auxiliaire 416 qui a les même dimensions que le registre 404. Pendant 35 que les données sont envoyées du registre 404 à l'unité 402, les mêmes données seront à la fois envoyées au registre 416 sous commande d'un mot de la mémoire ROS dans le registre 310. Les données dans la moitié droite du registre 416 ( d'ordre inférieur) peuvent être envoyées par l'intermédiaire de la porte 418 à l'une ou l'autre des moitiés de l'unité 402 par l'intermédiaire des portes 40 420 et 421. Selon la réalisation préférée de cette invention, seule la moitié 20452 12 2012948 du registre 416 d'ordre inférieur peut envoyer des données à l'unité 402. Ainsi, un registre supplémentaire 422 la moitié moins grande que le registre 416 est fourni. Les données qui sont envoyées de la moitié d'ordre inférieur du registre 416 à l'unité 402 seraient envoyées en même temps par l'intermédiaire de 5 la porte 424 au registre 422. Les données dans la moitié d'ordre supérieur du registre 416 peuvent être envoyées par l'intermédiaire de portes 426 et 428 à la moitié d'ordre inférieur du registre 416 pour le deuxième passage par l'unité 402. Les données originellement dans la moitié d'ordre inférieur du registre 416 peuvent être ré-emmagasinées plutard si voulu en envoyant le contenu 10 du registre 422 à la moitié d'ordre inférieur du registre 416 par l'intermédiaire des portes 430 et 428. Si ni l'une ni l'autre des moitiés de l'unité 402 fonctionne correctement, cette invention permettra l'utilisation d'un quart de l'unité 402. Dans le système décrit, cela veut dire qu'un multiplet de donnée sera traité durant chaque 15 passage. Dans cette situation, la moitié d'ordre inférieur du registre 416 sera reliée au registre 422. La moitié d'ordre inférieur du registre 422 peut être reliée par l'intermédiaire de la porte 432 à n'importe quel quart de l'unité 402 par l'intermédiaire d'une des portes 434, 435, 436, ou 437. Les données dans la moitié d'ordre inférieur du registre 422 seront envoyées en même temps 20 à encore un registre supplémentaire 438 par l'intermédiaire de la ports 440. Après que le premier multiplet de données ait été traité de façon satisfaisante par l'unité fonctionnelle 402, les contenus d'ordre supérieur du registre 422 sont envoyés par l'intermédiaire des portes 442 et 444 aux positions d'ordre inférieur du registre 422 d'où ils sont envoyés à l'unité fonctionnelle 25 402. La moitié d'ordre supérieur du mot de données originelles sera envoyée à la moitié d'ordre inférieur du registre 416 par l'intermédiaire des portes 426 et 428. Après que le deuxième multiplet de données ait été traité d'une manière satisfaisante, la moitié d'ordre supérieur du mot de donnée est envoyé . au registre 422, et le troisième et le quatrième multiplet de données sont en~ 30 voyés à la partie de l'unité 402 qui fonctionne correctement. Pendant que des multiplets ou des moitiés de mots de données passent par l'unité 402, ils sont envoyés à des parties du registre 406 approprié. Les connexions de sortie de l'unité 402 consiste en 4 portes 446, 447, 448 et 449 dont chacune peut laisser passer un multiplet (un quart de mot) de données. Les connexions d'entrée du 35 registre 406 consiste en 4 portes 450, 451, 542 et 543 dont chacune envoie un multiplet de données au registre 406. On trouve connectées entre les séries de portes 446-449 et 450-453, une série de portes supplémentaires 454 qui sont utilisées pour diriger chacun des multiplets de données provenant de i'unité 402 vers la position appropriée dans le registre 406. La manière exacte ds réa-40 lisation des diverses portes illustrées dans la figure 4 n'est pas importante 69 20452 13 2012948 pourvu que la connexion soit satisfaisante pour permettre à chaque partie des mots de données d'arriver à la destination appropriée. La manière dont une mémoire de commande peut être utilisée pour commander le conditionnement du genre décrit ci-dessus est bien connue on n'a pas besoin de la décrire de nou-5 veau. En se référant à la figure 5, on y trouve des diverses bascules et circuits logiques qui peuvent être utilisés pour déterminer la condition de l'unité fonctionnelle 402 (figure 4). Le signal de sortie de chaque indicateur de vérification de parité 411-414 (figure 4) est alimenté à un circuit OU 456. 10 La sortie 458 du circuit OU 456 est utilisée pour signaler au système qu'une erreur est présentée. Ce signal peut être utilisé pour bloquer les portes d'entrée du registre ROSDR et pour faire commander le système le mot dans la position zéro de la mémoire ROS. Tous les signaux d'erreur de parité sont alimentés au circuit ET 460, dont la sortie est utilisée pour enclencher une bascule 462 15 qui produit un signal indiquant qu'aucune partie de l'unité fonctionnelle fonctionne correctement. Dans cette situation, la solution de l'art antérieur d'arrêter le système serait employée. Le circuit ET 464 reçoit le signal d'erreur et les sorties inverties des indicateurs d'erreur de parité 411 et 412. Le signal de sortie du circuit ET 464 est utilisé pour enclencher une bascule 466 26 qui, quand enclenchée, indique que la partie à gauche de l'unité fonctionnelle fonctionne correctement. De la même manière, le signal d'erreur 458 et les signaux de sortie inversée des indicateurs d'erreur d= parité 413 et 414 alimentent un circuit ET 468, dont la sortie est utilisée pour enclencher une bascule 470 qui, quand enclenchée, indique que la moitié à droite de l'unité fonctionnelle 25 fonctionne correctement. De la mâne manière, le signal d'erreur 458 est alimenté à une entrée de chacun des circuits ET 472, 474, 476 et 478. Ces circuits ET reçoivent, comme deuxième entrée, les sorties inverties des indicateurs d'erreur de parité 411, 412, 413 et 414 respectivement. Le signal de sortie du circuit ET 472 peut être utilisé pour enclencher une bascule 480 qui indique qu= 30 le premier multiplet de l'unité fonctionnelle fonctionne correctement; le signal de sortie du circuit ET 474 peut être utilisé pour enclencher une bascule 482 qui indique que le deuxième multiplet de l'unité fonctionnelle fonctionne correctement; le signal de sortie du circuit ET 476 peut être utilisé pour enclencher une bascule 484 qui indique le troisième multiplet de l'unité fonctionnelle fonctionne correctement; et le signal de sortie du circuit ET 478 35 peut être utilisé pour indiquer qu= le quatrième multiplet de l'unité fonctionnelle fonctionne correctement. Après que les données aient été passées par l'unité fonctionnelle de manière satisfaisante, chacune des bascules 406, 470, 480, 482, 484 et 486 est restaurée par une impulsion sur la ligne 430. Cela restaurera le système à son mode-normal d'opération de traitement et* la pro- 40 69 204.52 14 2012948 chaine fois que le système essaie d'utiliser l'unité fonctionnelle 402 (figure 4), le pouvoir entier de l'unité sera utilisé. Cela est désirable puisque l'erreur détectée pouvait être une erreur passagère qui aurait disparue subséquem-ment. Dans une telle situation, le pouvoir entier de l'unité fonctionnelle est 5 utilisé.. En se référant à la figure 6, afin de détecter une situation dans laquelle l'erreur est vraiment permanente, et dans laquelle il serait une perte de temps d'essayer d'utiliser le pouvoir entier de l'unité fonctionnelle, un compteur d'erreur 490 est aussi compris dans la réalisation préférée. Chaque fois qu'une 10 erreur est détectée par l'unité fonctionnelle, le signal d'erreur 458 décale le compteur 490. Après qu'un nombre prédéterminé N d'erreurs ait été détecté, une bascule 492 est enclenchée. Le signal de sortie de la bascule 492 est utilisé pour interdire l'impulsion de restauration 488 et sera aussi envoyé à un circuit ET 494. Dès que la bascule 432 a été enclenchée, le signal de sortis du 15 circuit ET 494 produira un signal d'erreur chaque fois que l'on essaie d'utiliser l'unité fonctionnelle. Les essais d'utilisation ds l'unité fonctionnelle seront détectés par un signal qui apparaîtra sur la ligna 496 qui peut, être couplé, par exemple, au signal qui est utilisé pour conditionner la porte d'entrée 410 de l'unité fonctionnelle 402 illustrée en figure 4. Puisque les bascules 466, 20 470, 480, 482» 484 et 486 n'auront pas été restaurées depuis la dernière fois qu'une erreur a été détectée, le système sera déjà conditionné pour l'opération de l'unité fonctionnelle 402, à passage multiple. Le signal d'erreur produit à la sortie du circuit ET 494 peut être utilisé exactement de la même manière que l'était le signal d'erreur 458 pour obliger le mot situé dans la position 25 zéro de la mémoire ROS à prendre en charge la commande du système. L'homme de l'art comprendra que certains aspects de l'invention comme décrit ci-dessus en se référant aux figures 4, 5 et 6, sont des questions de choix et de convenance qui peuvent subir plusieurs variations. Par exemple, dans un système dans lequel les données contenues dans le registre 404 ne peu-30 vent pas être changées avant la détection d'une erreur, et où les portes de sortie du registre 404 sont dessinées de telle sorte qu'une partie fractionnelle du registre peut être envoyée, on pourrait se passer du registre auxiliaire 416. Aussi, si le registre 404 (ou le registre auxiliaire 416Î était dessiné d'une telle manière que toute partie des données contenues dedans pour-35 rait être envoyée à une porte d'entrée appropriée de l'unité fonctionnelle 402, on aurait pu se passer d'un ou des deux des registres auxiliaires supplémentaires. Cependant, dans le système décrit ainsi que dans plusieurs systèmes où l'invention peut être utilisée, le contenu du registre 404 pourra en général subir des opérations avant la détection d'une erreur, et le registre auxiliaire 406 40 sera donc nécessaire. Aussi la réalisation de l'invention sera souvent facilité 69 20452 15 2012946! par un ensemble de registres, tel que celui illustré dans la figure 4, plutôt que par la fourniture de tout le conditionnement nécessaire à un registre. En général, chaque unité fonctionnelle avec laquelle l'invention sera utilisée aura besoin de circuits supplémentaires tels que ceux illustrés dans la figure 5 4 et 6. Des circuits tels que ceux illustrés dans la figure 5 peuvent être partagés par plusieurs unités fonctionnelles ou peuvent être fournis à chaque unité comme désiré. On va décrire le fonctionnement de l'invention en se référant aux figures 4, 5 et 6. Dans cet exemple, on va supposer que les données provenant du regis-10 tre 404 contiennent des parités correctes. On va supposer aussi que les multiplets 1 et 3 de l'unité fonctionnelle 402 sont défectueux. Enfin on va supposer que la bascule d'erreurs 492 (figure 6) n'a pas été enclenchée. On désire que les données contenues dans le registre 404 soieht transférés à l'unité fonctionnelle 402 et éventuellement traitées par cette unité 15 puis transmis au registre 406. L'unité de commande de séquence 302 (figure 1) du système conditionnera la porte 410 pour passer les données provenant du registre 404 à l'unité fonctionnelle 402 et fera passer les mêmes données par l'intermédiaire de la porte 411 au registre auxiliaire 41 S. Ces portes sont conditionnées de préférence en parallèle (par exemple, en liant leurs circuits 20 de commande ensemble) de telle sorte que le rendement du système dans l'état normal du système d'erreurs ne soit pas diminué. Pendant que les données passent de la sortie de l'unité 402 au registre 40B, des indicateurs d'erreurs de parité 411 et 413 se mettront à fonctionner. En se référant à la figure 5, les entrées et P^ du circuit OU 456 engendrent le signal d'erreur 458. Cela 25 entraînera l'unité de commande de séquence à prendre ces instructions du mot de la mémoire ROS de la positio zéro. Les bascules 482 et 4B6 seront enclen-t chées pendant que les bascules 462, 466, 470, 480 et 484 resteront déclenchées. Ces bascules seront interrogées d'une façon connue par l'unité de commande de séquence afin de déterminer la manière selon laquelle les données seront ai-30 guillées dans le système. Si les bascules sont interrogées dans la séquence illustrée dans la figure 5 (de haut en bas), la bascule 482 sera la première que l'on détectera comme "haute". Ainsi, le multiplet 2 de l'unité fonctionnelle 402 sera utilisé pour traiter le mot de données. En se référant de nouveau à la figure 4, les partes 418 et 424 seront au-35 vertes pour permettre aux données de passer de la moitié d'ordre inférieur du registre 416 au registre 422. Ensuite, les portes 423, 440 et 435 seront ouvertes pour permettre au multiplet d'ordre inférieur à passer du registre 422 à la partie de multiplet 2 de l'unité fonctionnelle 402 et dans le registre 438. Ce multiplet de données sera traité par l'unité fonctionnelle 402 et ensuite 40 passé à travers les portes 447, 454 et 453 à la position de multiplet de l'or 69 20452 16 2012948 dre le plus inférieur du registre 406. Dans la réalisation préférée de l'invention, pendant que les données sont passées de l'unité 402 au registre 406, les portes 442 et 444 s'ouvriront afin de permettre au multiplet d'ordre 2 (en comptant à partir del 'ordre le plus bas) de passer de la moitié d'ordre supé-5 rieur du registre 422 à la moitié de l'ordre inférieur de celui-ci. (Bien qu'il soit préférable que certaines des opérations ici décrites soient exécutées en parallèle avec d'autres; l'homme de l'art comprendra qu'elles peuvent être exécutées en série si désiré). Le multiplet de donnée de deuxième ordre sera ensuite envoyé par l'intermédiaire des portes 423 et 435 au multiplet 2 de 10 l'unité fonctionnelle 402, et de là par l'intermédiaire des portes 447, 454 et 452 à la position d'ordre 2 du registre 406. Pendant que l'opération ci-dessus se déroule, les portes 426, 428 sont conditionnées de sorte que les données contenues dans la moitié d'ordre supérieur du registre 416 soient transférées à la moitié d'ordre inférieur de celui-ci. Les portes 418 et 424 seront 15 ensuite conditionnées pour faire passer les données au registre 422. Le multiplet de données d'ordre trois (en comptant toujours à partir de l'ordre le plus bas provenant du registre 422, passera par l'intermédiaire des portes 432 et 435 au multiplet 2 de l'unité fonctionnelle 402 d'où il passera par l'intermédiaire des portes 447, 454 et 451 à la partie de multiplet d'ordre 3 du re-20 gistre 406. Durant le temps que les données de résultat sont passées au registre 406, les portes 442 et 444 seront conditionnées afin ds passer le multiplet de données d'ordre supérieur à la moitié d'ordre inférieur du registre 422. Ensuite, ce dernier multiplet de données sera aussi envoyé par l'intermédiaire des portes 432 et 435 au multiplet 2 de l'unité fonctionnelle 402 d'où 25 il passera par l'intermédiaire des portes 447, 454 et 450 à la partie du registre de multiplet d'ordre le plus supérieur. Durant toute l'opération de ci-dessus, des moyens (qui ne sont pas illustrés) dans les commandes de séquences du système de traitement d'information examineront l'unité de détection d'erreur de parité 412 afin d'assurer que les erreurs supplémentaires ne se sont 28 pas présentées. Si pendant une des opérations de ci-dessus, un signal 412 de détection d'erreurs de parité se présenterait, les commandes de séquence du système interrogeraient la bascule 484 (qui est bloquée), et ensuite la bascule 486 (qui est bloquée). Dans un tel cas, le multiplet de données qu'on traite quand le signal 412 s'était mis à fonctionner serait traité à nouveau 35 par la position du multiplet 4 de l'unité fonctionnelle 402 et tout multiplet de données subséquent serait traité par l'intermédiaire de la position de multiplet 4 de l'unité fonctionnelle 402. Si le signal 414 d'erreur de multiplet 4 se mettait aussi en fonctionnement, la sortie de la bascule 462 de la figure 5 signalerait au système qu'aucun multiplet de l'unité 402 ne fonctionnait et 40 l'opération du système s'arrêterait. Après que le mot de donnée ait été traité 69 20452 17 2012948 de manière satisfaisante et que le résultat soit emmagasiné dans le registre 406, un signal sur la ligne 488 restaure les bascules 466, 470, 480, 482, 484 et 486. Ce signal est utilisé aussi pour restaurer chacun des indicateurs d'erreur de parité 411, 412, 413 et 414. 5 On note que dans l'exemple ci-dessus, bien que l'on ait supposé que les deux multiplets 2 et 4 de l'unité fonctionnelle 402 fonctionnaient correctement, on a utilisé qu'un seul. Ainsi, si les deux multiplets 2 et 3 de l'unité 402 fonctionnaient correctement, seul le multiplet 2 aurait été utilisé. Bien que l'on puisse utiliser deux positions de multiplet de l'unité 402 qui fonc-10 tionne correctement en même temps [même si les positions ne sont pas adjacentes), cela n'est pas fait dans la réalisation préférée à cause de la complexité supplémentaire des commandes et des circuits de portes qui sont exigés. Cepai-dant, à la lumière de la description ci-dessus, de la réalisation préférée» l'homme de l'art pourra produire une telle réalisation. L'homme de l'art corn-15 prendra qu'une telle réalisation ne sort pas de l'esprit et de la portée de cette invention. Bien que la description ci-dessus s'applique d'une manière générale aux réalisations de cette invention avec une unité fonctionnelle d'un ensemble de traitement d'informations, l'homme de l'art comprendra que certains aspects 20 de l'invention peuvent dépendre à un certain degré de la nature exacte de l'unité fonctionnelle avec laquelle elle est utilisée. Cela est particulièrement important dans le cas des unités fonctionnelles dans lesquelles las fonctions réalisées dans une partie de l'unité peuvent affecter les données traitées dans une autre partie de l'unité. Par exemple, quand deux mots de données sont addi-25 tionnés dans l'additionneur du système, les reports peuvent aller d'une partie de l'additionneur à une autre. Aussi, dans le cas de l'additionneur, on aura en général.deux sources indépendantes d'information utilisées dans l'opération d'addition. La figure 7 montre une réalisation préférée de cette invention quand elle 30 est utilisée avec l'additionneur du système. Dans la réalisation illustrée dans la figure 7, on suppose que deux mots de données que l'on va additionner se trouvent dans le registre 126 et le registre 124. Les deux mots de données seront additionnés dans l'additionneur 210 et le signal de sortie sera emmagasiné dans les bascules 207 du bus de sortie de l'additionneur CAOB), droù il sera 35 transféré au registre 211. Bien qu'il soit reconnu que l'additionneur puisse recevoir ces signaux d'entrée à partir d'autres sources que les registres 124 et 126, et qu'il puisse avoir sa sortie connectée à autre destination que le registre 211, le diagramme simplifié illustré dans la figure 7 et la description suivante de celui-ci suffiront pour enseigner à l'homme de l'art la manière 40 de réaliser l'invention avec un additionneur qui reçoit les données provenant 69 20452 13 2012948 de plusieurs sources et qui peut envoyer des données à plusieurs destinations. La seule différence significative entre le système simplifié illustré dans la figure 7 et un système plus complexe est la complexité du système de portes nécessaire. 5 Afin de préserver les données d'origine qui sont contenues dans le regis tre 124, un registre auxiliaire 502 est fourni. Les données d'origine contenues originellement dans le registre 126 seront préservées dans le registre auxiliaire 504. Les données sont envoyées à partir du registre 124 par l'intermédiaire de la porte 506 et l'additionneur 210, et elles sont envoyées en même 10 temps au registre 502 par l'intermédiaire de la porte 508. Un mot de données envoyé à partir du registre 126 à l'additionneur 210 par l'intermédiaire de la porte 510 sera aussi envoyé en mime temps au registre 504 par l'intermédif aire de la porte 512. A cause du fait que chaque registre auxiliaire 503 et 504 na peut envoyer que les données contenues dans sa moitié d'ordre inférieur 15 à l'additionneur 210, un troisième registre auxiliaire 514 est fourni. Ce registre 514 réalise la mime fonction que le registre 422 décrit avant en rapport à la figure 4. Les registres auxiliaires 502 et 504 ont les mêmes dimensions que les registres de données d'origine 124 et 126s le registre 514 est moitié moins grand que les autres. La connexion entre îa sortie du registre 514 et 20 les entrées des registres 502 et 504 diffèrent de celle illustrée dans la figure 4 en ce que le signal de sortis du registre 514 est envoyé à la moitié d'ordre supérieur des registres 502 et 504. Dans le système de portes illustré dans la figure 4, la moitié d'ordre supérieur et la moitié d'ordre inférieur du régis tre 502 peuvent être échangées comme les moitiés d'ordre supérieur et d'ordre 25 inférieur du registre 504. L'homme de l'art comprendra qu'au lieu d'avoir le registre 514 partagé par les autres registres auxiliaires, un registre da demi-mot comme le registre 514 peut être fourni pour chacun des autres registres auxiliaires si voulu. Pendant que les données passent à travers l'additionneur 210, les erreurs 30 de parité seront signalées par un indicateur d'erreur d=parité de gauche 516 ou un indicateur d'erreur de-parité de droite 518. Puisque la sortie de l'additionneur 210 du système contient 4 circuits de vérification de parité ( un pour chaque multiplet) l'indication de parité de gauche peut être obtenue en faissant passer par un circuit OU des signaux de sortie des deux indicateurs 35 d'erreurs ds parité d'ordre supérieur et l'indication d'erreurs de parité de droite peut être obtenue en faisant passer par des circuits DU les signaux de sortie des deux indicateurs de parité d'ordre inférieur. Les signaux de sortie des indicateurs d'erreurs de parité à gauche et è droite sont tous les deux envoyés à un circuit OU 520, dont le signal de sortie 522 est utilisé pour 40 arrêter le fonctionnement normal du système ds traitement d'informations ds 20452 19 2012948 la mSme manière que celle décrite en rapport au signal d'erreurs 458 illustré dans la figure 5. Les deux signaux de sortie des indicateurs d'erreurs de parité sont aussi envoyés à un circuit ET 524 dont le signal de sortie peut être utilisé pour signaler que ni l'une ni l'autre des moitiés de l'additionneur 5 ne fonctionne correctement. Le signal de sortie de l'indicateur d'erreurs de parité à droite 518 est envoyé à un circuit ET 528, et après inversion dans un inverseur 523, à un circuit ET 530. Le signal de sortie de l'indicateur de parité à gauche est à envoyé à un circuit ET 530, et, après inversion dans un inverseur 532, à un circuit ET 52B. Quand le circuit ET 526 est conditionné, 10 son signal de sortie indique que la partie à gauche de l'additionneur fonctionne correctement et que la partie à droite ne fonctionne pas; le signal de sortie du circuit ET 530 indique que la moitié à droite de l'additionneur fonctionne correctement tandis que la moitié à gauche ne fonctionne pas. Les signaux de sortie des circuits ET 524, 526 et 530 peuvent être utilisés pour 15 conditionner des bascules qui sont interrogées par les commandes de séquences du système.. L'additionneur 210 du système contient à son extrémité d'ordre supérieur un basculeur de report 534 qui est utilisé normalement par le système pour identifier les dépassements de capacité de l'additionneur. Dans les situations où seule la partie à gauche (d'ordre supérieure) de l'additionneur 20 fonctionne correctement, cette invention utilisera la bascule 534 pour se tenir aux aguets d'un report possible de la moitié d'ordre inférieur de l'addition à la moitié d'ordre supérieur. Dans les cas où seule la moitié à droite (d'ordre inférieur) de l'additionneur fonctionne correctement, une bascule de report auxiliaire 518 est fournie pour ne pas oublier le transfert d'un report 25 de l'ordre inférieur à la moitié d'ordre supérieur de l'addition. La réalisation illustrée dans la figure 7 fonctionnera de presque la même manière presque la même que celle illustrée dans la figure 4. Les données sont envoyées à partir des registres de données d'origine 124 et 126 à l'additionneur 210, et elles sont envoyées en même temps au registre auxiliaire 502 et 30 au registre auxiliaire 504. La détection d'une erreur de parité engendre un signal d'erreurs 522 qui est utilisé pour arrêter le traitement normal du système et pour transférer le mot dans la position zéro de la mémoire RDS au registre 310. En supposant que l'invention est utilisée en connexion avec plusieurs unités fonctionnelles du système de traitement d'information, on peut 35 déterminer quelle unité est défectueuse, en interrogeant les divers indicateurs d'erreurs de parité d'une manière connue. Dès que l'on a déterminé que l'erreur se trouve dans l'additionneur, les sorties des circuits ET 524, 526 et 530 indiqueront si une moitié de l'additionneur fonctionne correctement ou non, et aussi qu'elle moitié fonctionne. Si seulement la moitié à droite de la dernière 40 fonctionne correctement, il y aura un signal présent sur la sortie du circuit 69 20452 20 2012948 ET 530 et il n'y aura pas de signal sur la sortie des circuits 524 et 526. La moitié d'ordre inférieur du registre XR 502 sera envoyée par l'intermédiaire des portes 536 et 538 à une des entrées de la moitié droite de l'additionneur 210 et en même temps le contenu de la moitié d'ordre inférieur du registre XL 5 [504) sera envoyée par l'intermédiaire des portes 540 et 542' à l'autre entrée de la moitié droite de l'additionneur 210. L'additionneur 210 produira la moitié d'ordre inférieur de l'addition voulue et l'enverra par l'intermédiaire des portes 544 et 546 à la moitié d'ordre inférieur des bascules 217. Si ce premier passage par l'additionneur 210 engendre un report de la moitié d'ordre 10 inférieur de l'addition, la bascule de report auxiliaire 536 sera enclenchée. Afin de faire tourner le contenu du registre XR le contenu d'ordre inférieur de celui-ci sera envoyé par l'intermédiaire des portes 536 et 548 au registre X ensuite les portes 550 et 552 seront ouvertes afin de transférer les données de la moitié d'ordre supérieur du registre XR à la moitié d'ordre inférieur 15 de celui-cij le contenu du registre XR sera ensuite autorisé à passer par l'intermédiaire des portes 554 et 556 à la moitié d'ordre supérieur du registre XR. De mime, le contenu du registre XL tournera ainsi: les portes 540 et 548 seront conditionnées, les portes 558 et 560 seront ensuite conditionnées et enfin les portes 554 et 552 seront conditionnées. Les moitiés originelles 20 d'ordre supérieur des mots de données seront alors contenues dans les moitiés d'ordre inférieur des registres auxiliaires 502 et 504. Les données contenues dans les moitiés d'ordre inférieur des registres auxiliaires 502 et 504 seront ensuite envoyées par l'intermédiaire des entrées de la moitié à droite de l'additionneur 210 et transmises par l'intermédiaire des portes 544 et 564 à la 25 moitié d'ordre supérieur des bascules 217. Duraie deuxième passage par l'additionneur, si la bascule 536 n'a pas été enclenchée, une impulsion supplémentaire "plus un" sera engendrée sur la ligne 566 et agira comme le report de la moitié d'ordre inférieur de l'addition à la moitié d'ordre supérieur. Après-la réalisation correcte de l'addition, les indicateurs d'erreurs de parité 516 30 et 518, et les bascules de report 534 et 536 seront restaurées, le contenu des bascules 217 sera transmis au registre M (211), et le traitement normal continuera. Si seulement la moitié à gauche de l'additionneur 210 fonctionnait correctement, le fonctionnement de l'invention serait à peu près comme déjà décrit sauf les détails suivants: 35 1. Le signal d'entrée de l'additionneur serait reçu par l'intermédiaire des portes de la moitié à gauche 568 et 570s 2. Les signaux de sortie seraient transmis par l'intermédiaire de la porte 572 des bascules 217; et 40 3. La bascule 534 aurait été utilisée pour signaler un report de la moitié d'ordre inférieur de l'addition à la moitié d'ordre supérieur. 69 20452 21 2012948 Naturellement, si seul la moitié à gauche de l'additionneur fonctionnait correctement, l'indicateur d'erreurs de parité à gauche 516 serait allumé et l'indicateur d'erreurs de parité à droite 518 serait éteint. Il y aura aussi un signal sur la sortie du circuit ET 530 et il n'y en aura pas sur la sortie 5 ducircuit ET 526. Comme on a déjà cité, plusieurs variations de formes et de détails de cette invention sont possibles dans toutes les réalisations particulières de celles-ci. Plusieurs de ces modifications sont citées ci-dessous. L'homme de l'art comprendra que les modifications suivantes sont à titre d'exemple et ne sont 10 pas exhaustives. Partout dans cette description de l'invention, on a supposé que le système était muni d'une mémoire inaltéralble CRÛS). Naturellement, l'invention aurait pu également être réalisée dans un système contenant une mémoire altérable Ce -à-dire une mémoire qui comprend, par exemple, une matrice de tores magnétiques 15 dans laquelle les mots de commande appropriée peuvent être introduits selon la nature de l'erreur détectée). Dans un système dans lequel une ou plusieurs unités fonctionnelles sont associées avec cette invention, la division et le passage d'une unité fonctionnelle peut être commandé par des instructions programmées. Dans ce cas, les instructions programmées réaliseront la fonction 20 d'une unité de commande de séquence. Une autre variante concerne les circuits de vérification d'erreurs utilisés dans le système. Au lieu d'utiliser une correction d'erreur de parité ( qui détecte mais ne corrige pas les fautes) toute méthode de détection ou de correction d'erreur peut être utilisée. Si des circuits qui peuvent corriger 25 des erreurs sont utilisés, il peut être souhaitable d'utiliser des circuits de correction pour corriger les erreurs quand elles portent sur un faible nombre de bits et d'utiliser la division et les passages multiplet de l'invention quand on a un nombre important d'erreurs. De même, il n'est pas absolument nécessaire de vérifier les données juste avant leur entrée dans une unité fonctionnelle 30 si la vérification d'erreurs est faite à un point dans le flux de données et assez proche de l'unité fonctionnelle qu'on puisse être raisonnablement sur que les données sont correctes. Dans la division répétée d'une unité fonctionnelle, pour réaliser un fonctionnement à passage multiple, il ne sera pas en général souhiatble d'utiliser 35 un segment des données qui soit trop petit pour permettre une vérification d'erreurs. Cependant, dans des cas exceptionnels cela pourrait être fait. Dans encore une autre variante de l'invention, les données ayant passa par la partie de l'unité fonctionnelle qui fonctionnait correctement, pourraient être retenues. Ensuite, seules les données ayant passé originellement 40 par la partie de l'unité fonctionnelle qui ne fonctionnait pas. correctement 69 20452 22 2012946 seraient repassées par la bonne partie. Quand une unité fonctionnelle doit être divisée et utilisée en passages multiples à cause d'une erreur, il n'est pas nécessaire que la division soit binaire (deux, quatre, huit, etc..). L'unité pourrait être divisée aussi faci-5 lement en trois, cinq, ou toute autre fraction de sa capacité entière. En pratique, il sera généralement miéux de diviser l'unité fonctionnelle d'une manière se rapportant aux nombres de segments dans un mot de données que le système va vérifier. Encore une autre variante de cette invention pourrait êtrs réalisée dans 10 un système comme celui illustré dans le brevet N° 1 3B4 132 déposé le 25 Novembre 1953 par la demanderesse en France . Ce brevet décrit un système dans lequel la détection d'une erreur entraînera, dans certaines circonstances, l'effet de ré-exécution par le système de l'instruction durant l'exécution de laquelle l'erreur était détectée,, Si cette invention était réalisée dans un 15 tel système, plusieurs erreurs passagères pourraient être traitées par le pouvoir de ré-exécution normal du système, et les autres erreurs pourraient être surmontées par cette invention. 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 20 de réalisation préféré de celle-ci, il est évident que l'honnie de l'art pourrait y apporter toutes modifications de forme ou de détail qu'il juge utiles sans pour autant sortir du cadre de ladite invention. 69 20452 23 2012948 REVENDICATIONS 1.- Dans un système de traitement de données qui comporte une unité fonctionnelle dans laquelle des données constituant un ensemble passent normalement en parallèle, cette unité fonctionnelle étant formée de plusieurs sections et des 5 moyens de contrôle fournissent des signaux indiquant le fonctionnement défectueux d'une ou plusieurs sections et identifiant cette ou ces sections, - un dispositif mis en action par les signaux fournis par lesdits moyens de contrôle et commandant une modification du mode de passage des données, le nouveau mode étant tel que les données passent seulement dans une partie de 10 l'unité fonctionnelle ne comportant pas la ou les sections défectueuses, et que l'ensemble de données est divisé en groupes de données, les groupes passant en série et les données d'un même groupe passant en parallèle. 2.- Dans un système de traitement de données du type défini dans la revendication 1 et dans lequel les moyens de contrôle sont susceptibles de détecter une 15 défectuosité de fonctionnement pendânt ou après le passage des données dans l'unité fonctionnelle. - un dispositif caractérisé par la combinaison d'un dispositif conforme à la revendication 1 et de moyens d'emmagasinage enregistrant les données . avant leur passage dans l'unité fonctionnelle pour permettre de les faire pas-20 ser à nouveau dans cette unité, selon le nouveau mode, en cas de fonctionnement défectueux. 3.- Dispositif conforme à la revendication 2 et caractérisé en outre en ce que les détections de fonctionnement défectueux sont enregistrées dans des éléments de mémoire qui prennent un état sous l'action des signaux fournis par les mo- 25 yens de contrôle sus-mentionnés et sont restaurés à un autre état après le passage suivant le nouveau mode provoqué par cette détection. 4.- Dispositif caractérisé par la combinaison d'un dispositif conforme à la revendication 3, d'un compteur comptant les détections de fonctionnement défectueux, et d'un organe d'enregistrement changeant d'état lorsque le nombre 30 enregistré dans le compteur atteint une certaine valeur et fournissant, dans son nouvel état, un signal qui empêche la restauration desdits éléments de mémoire.