Brevet FR2473753A1 — publié le 19810717

La présente invention se rapporte d'une façon générale à des systèmes de traitement de données et elle a trait plus particulièrement à un procédé et un dispositif pour fournir un groupe de données corrigées à un circuit de destination. Comme cela est bien connu dans le domaine, différents composants de systèmes de traitement de données doivent commu- niquer. Il peut se produire différentes erreurs, provoquées par exemple par la présence de parasites ou par une panne d'équipe- ment. En conséquence, des groupes de données incorrects peuvent être transmis entre différents composants du système de traite- ment de données. Par exemple des systèmes de traitement de données utilisent généralement des signaux correspondant à un état de haut niveau et à un état de bas niveau. Des parasites ou des pannes d'équipement peuvent provoquer la réception d'un niveau haut alors qu'un niveau bas a été en fait transmis. Un groupe de données ou un groupe de mots se compose d'une pluralité de niveaux hauts et bas, qui sont généralement désignés par "1" et "O". Par exemple, le mot de trois bits "101" représente correctement la quantité 5. Si une erreur se produit en cours de transmission, le groupe de bits peut être reçu sous la forme "100", ce qui correspond à la quantité 4. On a mis au point différents codes pour permettre à la fois la détection et la correction d'erreurs. On sait utiliser des dispositifs de détection et de correction d'erreurs pour vérifier et corriger les données fournies par une mémoire principale à d'autres composants, tels que l'unité centrale de traitement du système de traitement de données. En général, on a utilisé des dispositifs de détection et de correction d'erreurs pour corriger des erreurs avant que le groupe de données soit appliqué à l'unité centrale de trai- tement. Un exemple de ce type d'appareil a été décrit dans le brevet des EUA no 4.058.851. Dans ce brevet, on a décrit un système o la mémoire principale fournit chaque groupe de données lues à la fois pour un dispositif de correction d'erreurs et pour un registre d'interface. Si l'erreur peut être corrigée, le-demandeur, tel que l'unité centrale de traitement, est averti et le groupe de données est à nouveau extrait de la mémoire. Le signal de sortie du dispositif de correction d'erreurs, lorsque ce dispositif indique que l'erreur est corrigible, est transmis au registre d'interface et finalement au demandeur, tel que l'unité centrale de traitement. En conséquence, les données non corrigées qui contiennent une erreur ne sont pas transmises à l'unité demanderesse. Cette unité demanderesse doit à nouveau adresser ledit groupe de données dans la mémoire principale pour recevoir ensuite les données corrigées. On sait également appliquer le groupe de données prove- nant de la mémoire à un commutateur de données ainsi qu'à un circuit de détection et de correction d'erreur. Le commutateur de données sélectionne alors le groupe de données provenant de la mémoire ou bien le groupe de données corrigé provenant du circuit de détection et de correction d'erreur. Un système d'un autre type a été décrit dans la demande de brevet des EUA ayant le numéro de série 940.965. Quand la vitesse de fonction- nement des différents composants du système de traitement de données augmente, il est souhaitable que les données ne soient pas retardées pendant la période o le circuit de détection et de correction d'erreur remplit sa fonction. Aucune des réalisations du domaine connu ne décrit un dispositif permettant de transmettre un groupe de données corrigé d'une mémoire à un circuit de destination tout en permettant aux données non corrigées d'être acheminées jusqu'au circuit de destination par l'intermédiaire d'un commutateur de données, le groupe de données corrigé étant reçu, en même temps que des groupes de données suivants, par le commutateur de données en provenance du circuit de détection et de correction d'erreur. Des groupes de données représentant des informations adressées à l'intérieur d'une mémoire apparaissent à sa sortie de façon à former une suite de groupes de données. LEgroupes de données sont répartis par la mémoire dans une séquence pré- déterminée qui peut par exemple être une séquence demandée par un circuit de destination, tel qu'une unité centrale de traite- ment. Les groupes de données transmis dans cette séquence prédé- terminée sont appliqués simultanément à un circuit de détection et de correction d'erreur et à un commutateur de données par la mémoire. La suite de données suit par conséquent deux trajets pour parvenir au circuit de destination. Le commutateur de données applique les groupes de don- nées à un circuit de destination, par exemple une unité centrale de traitement. Le circuit de détection et de correction d'erreur EDAC comprend un registre recevant les groupes de données dans ladite séquence prédéterminée ainsi qu'une unité de détection et de correction d'erreur. Le registre de retenue et l'unité de détection et de correction d'erreur reçoivent les groupes de données dans la séquence prédéterminée. Le signal de sortie du registre de retenue est appliqué à une unité de détection et de correction d'erreur ainsi qu'à une unité de détection d'erreur. L'unité de détection d'erreur détermine si le groupe de données contient ou non une erreur. Un signal de symptôme est appliqué par l'unité de détection d'erreur à un registre de symptôme si une erreur est détectée. Le signal de symptôme indique au dispositif de correction de données, lorsque l'erreur est corrigible, quel bit de données dudit groupe doit être modifié. L'unité de détection d'erreur fournit également à sa sortie un signal d'erreur indiquant qu'une erreur a été détectée dans le groupe de données. Le registre de symptôme est relié par sa sortie à la fois au dispositif de correction de données et à un décodeur. Si l'erreur est corrigible, le dispositif de correction utilise le signal de symptôme pour modifier le bit détecté à l'intérieur du groupe de données. Le signal de sortie du dispositif de correction de données, qui constitue le groupe de données corrigé, est transféré dans un registre de sortie. En consé- quence, le groupe de données corrigé a remplacé le groupe de données erroné dans la suite de données. Le registre de sortie est relié à son tour au commuta- teur de données. En conséquence, le commutateur de données est en liaison électrique avec le registre de sortie du dispositif EDAC et il peut sélectivement transférer les groupes de données à partir de la mémoire ou les groupes de données chargés dans le registre de sortie du dispositif de détection et de correc- tion d'erreurs. Même si le signal de symptôme indique qu'aucun des bits de données n'a besoin d'être modifié, c'est-à-dire que le groupe de données ne contient pas d'erreur, ce groupe est transféré sans changement, de la mémoire au commutateur de données par l'intermédiaire du registre de retenue, du disposi- tif de correction de données et du registre de sortie. Comme indiqué ci-dessus, la sortie du registre de symptôme est également reliée au décodeur qui reçoit les signaux de symptômes correspondants. La sortie du décodeur indique si l'erreur particulière indiquée par le signal de symptôme est ou non corrigible. Le signal de sortie du décodeur et le signal d'erreur provenant de l'unité de détection sont appliqués à une unité logique qui fournit les signaux indiquant s'il existe une erreur et si l'erreur est corrigible ou non. Cette unité logique transmet les signaux à une unité de commande. Certains des signaux de sortie de l'unité logique sont retardés d'une ou plusieurs impulsions d'horloge à partir de leur réception. Une unité de commande connectée à l'unité logique utilise les signaux de sortie de cette-unité logique pour commander le commutateur de données et pour informer le circuit de destination tel qu'une unité centrale de traitement, que le groupe de données ne contient pas d'erreur ou bien, lorsqu'il en contient une, si cette erreur est corrigible ou non. Dans le cas o l'erreur n'est pas corrigible, l'unité centrale de traitement peut arrêter l'opération et envoyer une autre demande à la mémoire pour le groupe de données ou bien utiliser tout autre système de récupération approprié. Un avantage procuré par la présente invention consiste en ce que, après la détection et la correction d'une erreur dans un groupe de données, le commutateur de données continue à transmettre le signal de sortie du circuit de détection et de correction d'erreur-, qui contient la suite des données dans la séquence prédéterminée, au circuit de destination. - D'autres avantages et caractéristiques de l'invention seront mis en évidence dans la suite de la description, donnée à titre d'exemple non limitatif, en référence aux dessins annexés dans lesquels la fig. 1 est un schéma synoptique montrant les composants fondamentaux du système selon l'invention, avec des éléments associés; la fig. 2 est un schéma synoptique plus détaillé des composants indiqués sur la fig. 1, la fig. 3 montre le format d'un groupe de données et d'une adresse mémorisés dans la mémoire, et les fig. 4, 5 et 6 sont des organigrammes permettant la descrip- tion du fonctionnement du dispositif conforme à la présente invention. En considérant plus particulièrement la fig. 1, on voit qu'une mémoire 10 est connectée par ses sorties et par l'inter- médiaire de canaux multilignes 12 et 14 à un circuit de détec- tion et de correction d'erreur 16 (qui sera désigné dans la suite par EDAC) ainsi qu'à un commutateur de données 18. Il est à noter que, bien que les canaux multilignes des fig. 1 et 2 soient représentés par une seule ligne, ils sont en réalité composés d'une pluralité de lignes de sorte que les groupes de données peuvent être transférés en parallèle. Le circuit de la fig.1 peut être agencé de façon que chaque canal comporte une seule ligne en vue d'un transfert en série. Le commutateur de données 18 est connecté de manière à recevoir les signaux de sortie du circuit EDAC 16 par l'inter- médiaire du canal multilignes 20. Le circuit EDAC 16 est également connecté par sa sortie, par l'intermédiaire du canal multilignes 22, à une unité de commande 24. Le commutateur de données 18 et l'unité de commande 24 sont reliés respectivement, par l'intermédiaire des canaux multilignes 26 et 28 à un circuit de destination 30. Ce circuit de destination 30 peut être cons- titué par tout type de circuit utilisant des groupes de données mais, comme cela sera précisé dans la suite, le circuit de destination 30 est constitué, comme indiqué sur la fig. 2, par une unité centrale de traitement 34 (fig. 2) d'un système de traitement de données. Le circuit de destination 30 peut être agencé pour assurer l'adressage du groupe de données et établir alors l'ordre séquentiel dans lequel les groupes de données sont mémorisés dans la mémoire par l'intermédiaire du canal multi- lignes 32. Comme le montre la fig. 2, la mémoire 10 comprend une unité de mémoire 40 et des registres de données 42 et 44. Cette unité de mémoire 40 est divisée en deux sections, dont l'une applique des groupes de données au registre supérieur 42 de données de mémoire tandis que l'autre applique des groupes de données au registre inférieur 44 de données de mémoire. Chaque bloc de données se trouvant dans l'unité de mémoire 40 contient, comme cela sera précisé en détail dans la suite, des groupes de données se trouvant dans les deux sections de l'unité de mémoire. En conséquence, quand un bloc de données est adressé, des groupes de données situés dans le bloc sont positionnés et mémorisés dans les registres de données 42 et 44. La séquence d'entrée et de sortie des groupes de données dans les registres peut être spécifiée par l'unité centrale de traitement 34. La sortie du registre de données 42 est connectée par l'intermédiaire de canaux multilignes 46 et 47 respectivement à un commutateur de EDAC 50 (placé à l'intérieur du circuit EDAC 16) et au commutateur de données 1$. Le registre de données 44 est connecté, par l'intermédiaire de canaux multilignes 52 et 53 respectivement au commutateur de EDAC 50 et au commutateur de données 18. Les registres de données 42 et 44 sont également connectés par leurs sorties et par l'intermédiaire de canaux multilignes 47 et 53 à un autre commutateur de données 55. Les canaux multilignes 47 et 53 constituent le canal multilignes indiqué en 14 sur la fig.1. Les canaux multilignes 46 et 52 constituent le canal multilignes indiqué en 12 sur la fig. 1. Le commutateur de EDAC 50, qui opère d'une manière essentiellement identique à celle des commutateurs 18 et 55, peut sélectionner comme signal de sortie les contenus des registres 42 ou 44 par l'intermédiaire de leurs canaux corres- pondants. Les commutateurs de données peuvent être de tout type connu permettant d'effectuer une sélection entre deux ou plusieurs séries de signaux d'entrée de manière à produire la série de signaux de sortie correspondante. Les signaux de sortie sélec- tionnés du commutateur de EDAC 50 sont appliqués aux entrées d'une unité de détection d'erreur 58 et d'un registre de retenue 60. Les signaux de sortie du commutateur de données 50 sont chargés dans le registre de retenue 60 à raison d'un groupe de données à la fois. En conséquence, les signaux de sortie de celui des registres de données 42 ou 44 qui a été sélectionné sont chargés dans le registre de retenue 60. L'uni- té de détection d'erreur 58 reçoit également les signaux de sortie des registres de données 42 et 44 par]'intermédiaire du commutateur de EDAC 50. L'unité de détection d'erreur 58 examine le groupe de données provenant du commutateur 50 en vue de déceler des erreurs. Un exemple de codes de correction d'erreur de distance minimale a été décrit dans l'article de Hamming, "Error Detecting and Error Correcting Codes", Revue "Bell System Technical Journal" volume 29, 1950, pages 147 et 160. Le code de correction d'erreur n'est pas chargé dans le registre de retenue 60. Ce code de correction d'erreur est seulement fourni à l'unité 58 par l'intermédiaire du commuta- teur de données 50. Les bits de données du groupe sont examinés pour déter- miner si la parité est correcte et si les bits représentant des données sont corrects pour le code de correction d'erreur. S'il s'est produit une erreur, l'unité de détection d'erreur 58 fournit un signal de manière à indiquer cette erreur sur une ligne 63. Un signal de symptôme est également engendré par l'unité de détection d'erreur 58. Le signal de symptôme est mémorisé dans le registre de symptôme 65 par l'intermédiaire de canaux multilignes 67. Le signal de symptôme mémorisé dans le registre 65 est appliqué au décodeur 69 et au correcteur de données de EDAC 71 par l'intermédiaire du canal multilignes 70. Le correcteur de données 71 est également connecté de manière à recevoir les signaux de sortie du registre de retenue 60, qui contient le groupe de données, par l'intermédiaire du canal multilignes 72. Le correcteur 71 utilise le signal de sortie du registre de symptôme 65 pour corriger les données mémorisées dans le registre de retenue 60 s'il existe une erreur qui est corrigible. Le signal de symptôme provenant du registre 65 indique. un bit de données spécifique du groupe mémorisé dans le registre de retenue 60, si l'erreur est corrigible. Ce bit de données est modifié pour produire à la sortie du correcteur 71 un groupe de données corrigé dans lequel le bit de données erroné a été corrigé. Si par exemple l'erreur affecte le bit 9 du groupe de données, et si ce bit doit avoir normalement la valeur "1", le correcteur 71 fait passer le bit 9 à la valeur "0". Le signal de sortie du correcteur 71 est chargé dans le registre de sortie de EDAC 73 par l'intermédiaire du canal multilignes 75. Le groupe de données corrigé est transféré par l'intermé- diaire du canal multilignes 20 du registre de sortie 73 dans les commutateurs de données 18 et 55. Si le groupe de données se trouvant dans le registre de retenue 60 ne contient pas une erreur, le correcteur 71 transmet les données contenues dans le registre 60 sans modification et le groupe de données correspondant est chargé dans le registre de sortie 73. En conséquence, un groupe de données qui ne contient pas d'erreur peut être transmis au commutateur de données 18 soit par J'in-, termédiaire de la voie établie par le canal multilignes 47 soit par l'intermédiaire de la voie comprenant le circuit EDAC. Le commutateur de données peut sélectionner l'une ou l'autre voie pour transmettre les signaux de sortie du commutateur de données 18 à l'unité centrale de traitement 34. Comme décrit ci-dessus, le décodeur 69 fournit des signaux à une unitélogique 78. Cette unité logique 78 reçoit également le signal d'erreur provenant de l'unité de détection d'erreur 58 par l'intermédiaire de la ligne 63. Le décodeur 69 est agencé pour recevoir le signal de symptôme en provenance du registre 65 et pour décoder ce signal en vue de déterminer si l'erreur est corrigible ou non. Si l'erreur ne peut pas être corrigée (comme cela sera précisé dans un exemple donné dans la suite), le décodeur 69- l'indique à l'unité logique 78 par l'intermédiaire d'une ligne 80. Si l'erreur est corrigible, le décodeur 69 l'indique à l'unité logique 78 par l'intermédiaire d'une ligne 82. Il est à noter que le signal de sortie de l'unité de détection d'erreur 9 2473753 58, qui indique qu'il existe une erreur, se produit pour une impulsion d'horloge alors que le signal de sortie du décodeur 69 dans les lignes 80 et 82 se produit pour l'impulsion d'hor- loge suivante. L'unité logique 78 applique des signaux de sortie à l'unité de commande 24 par l'intermédiaire des lignes 85 à 88 qui constituent le canal 22. Les lignes 87 et 88 sont reliées à un registre de commande d'entrée 110. La sortie du registre de commande 110 est connectée par l'intermédiaire du canal multilignes 28 à la mémoire de piles d'entrée 112. Le canal multilignes 28 comporte une ligne 114 et le canal d'adresse d'écriture 116. Le registre de commande d'entrée 110 fournit à la ligne 114 un signal de validation d'écriture qui précise qu'un groupe de données corrigé est contenu dans le registre de sortie de EDAC 73. Les signaux transmis par le registre 110 au canal 116 indiquent l'adresse des données non corrigées, qui correspondent au groupe de données corrigé se trouvant dans le registre 73 dans la mémoire de piles d'entrée 118. Le signal d'adresse ou d'écriture est transmis au registre de commande d'entrée 118 à partir de l'unité logique 78 par l'intermédiaire des lignes 87 et 88. En conséquence, les données corrigées sont écrites sur les données non corrigées. Il est évidemment possible d'envisager d'autres agencements, par exemple l'extraction des données non corrigées de la pile et la mise en place des signaux de sortie du registre 73 dans la position de mémoire suivante disponible. L'adresse o chaque groupe de données doit être mémorisé est transmise à l'unité logique de 78 par l'intermédiaire du canal multilignes118. Les deux sorties restantes de l'unité logique 78, reliées aux lignes 85 et 86 et qui indiquent respectivement l'existence d'une erreur et le fait qu'elle est incorrigible, sont connectées à l'unité de commande d'entrée 120. L'unité de commande d'entrée 120 fournit à la ligne 122 un signal qui permet à l'unité centrale de traitement d'utiliser le groupe de données. L'unité de commande d'entrée 120 informe l'unité centrale de traitement qu'un groupe de données parti- culier est erroné et que le groupe de données contenant l'erreur n'est pas libéré. Si les données sont incorrigibles, l'unité centrale de traitement en est informée et elle n'utilise pas les données non corrigées. Si l'erreur est incorrigible, l'opération est arrêtée et différentes mesures compensatrices, bien connues des spécialistes, sont prises. La sortie du commutateur de données 18 est connectée par l'intermédiaire du canal multilignes 26 à l'unité de mémoire de piles d'entrée 112 et au registre de dérivation 124 de l'unité centrale de traitement 34. La fonction du registre de dérivation 124 est de retarder le passage des données d'une impulsion d'horloge. La sortie du registre de dérivation 124 est connectée par l'intermédiaire du canal multilignes 126 au registre distributeur 129. Pendant l'impulsion d'horloge suivante, le groupe de données mémorisé dans le registre de dérivation 124 est chargé dans le registre distributeur 129. Avant que le groupe de données se trouvant dans le registre distributeur 129 soit transféré à l'unité centrale de traitement en vue de son utilisation dans celle-ci, le signal de sortie de l'unité de commande d'entrée 120, transmis par la ligne 122, est utilisé pour déterminer si les données contiennent une erreur. Si les données ne contiennent pas d'erreur, l'information est alors transférée du registre distributeur 129 à d'autres composants de l'unité centrale de traitement (non représentée). Si l'information contenue dans le registre distributeur 129 est erronée, le groupe de données se trouvant dans ce registre distributeur 129 n'est pas utilisé et,pendant l'impulsion d'horloge suivante, le groupe de données contenu dans le registre de dérivation 124 est chargé dans le registre 129. Les procédures de réparation sont alors effectuées. La sortie du registre distributeur 129 est connectée par l'intermédiaire du canal multilignes 131 aux autres compo- sants de l'unité centrale de traitement 34, par exemple le registre d'instruction (non représenté). La mémoire de piles d'entrée 112 peut être reliée par sa sortie, par l'intermé- diaire d'un canal multilignes 133, à l'anté-mémoire (non-repré- sentée) de l'unité centrale de traitement ou à un autre compo- sant. Le commutateur de données 55 est connecté par il l'intermédiaire du canal multilignes 135 à un autre circuit de distribution (non représenté), tel qu'une autre unité centrale de traitement. En se référant plus particulièrement à la fig. 3, on voit qu'on a représenté un groupe de données ayant une longueur de 80 bits (0-79). Le groupe de données particulier et l'adresse indiqués sur la fig. 3 sont donnés seulement à titre d'exemple et on peut adopter tout agencement approprié. Les bits 0 à 71 du groupe de données contiennent des informations, soit sous la forme de données soit sous la forme d'instructions, ces informa- tions étant mémorisées dans la mémoire 40 (fig.2). Les bits 72 à 78 représentent un code de correction d'erreur qui a été établi lorsque le groupe de données a été introduit dans la mémoire 40 (fig.2). Ce code de correction d'erreur peut être de tout type bien connu. Bien qu'on ait précisé dans la suite un exemple spécifique de codage particulier, il va de soi qu'on peut utiliser n'importe quel type connu de codage. Le bit de données 79 est un bit de parité globale à la fois pour les informations contenues dans les bits 0 à 71, pour le code de correction d'erreur défini par les bits 72 à 78 et pour les 24 premiers bits 0 à 23 de l'adresse du groupe de données. Les 24 premiers bits de l'adresse du groupe de données sont également utilisés en meme temps que les bits d'information 0 à 71 pour engendrer le code de correction d'erreur des bits 72 à 78 quand le groupe de données est introduit dans la mémoire 40. Le code de correction d'erreur et les informations contenues dans le groupe de données sont transmis en même temps que l'adresse du groupe de données à l'unité de détection d'erreur 58. L'adresse est mémorisée dans le registre (non représenté) et elle est appliquée à l'unité 58, lorsque cela est nécessaire, par l'in- termédiaire d'un canal 137. L'unité de détection d'erreur 58 utilise les bits 72 à 79 pour déterminer si l'un quelconque des bits 0 à 71 du groupe de données est erroné ou bien si l'un quelconque des bits 0 à 23 de leadresse est erroné. Dans l'exemple qui va suivre, les bits ne sont pas représentés par des "1" et des "0" mais ils sont représentés en code octal et en conséquence chaque chiffre représente 12 2473753 l'équivalent de trois bits en binaire. Le groupe de données est par exemple 123,456,701,234 - 070,505,030,101. Les données se trouvant dans la mémoire 10 peuvent être réparties en blocs de quatre groupes chacun. Dans certaines applications, il peut être souhaitable de spécifier l'ordonnancement des groupes de données dans le bloc se composant de quatre groupes de données de 80 bits en vue de leur transmission à l'unité centrale de traitement. L'adresse pour le groupe particulier de données est 3262,274,153. Le code de correction d'erreur pour la combinaison est 032. Ce code est établi avant l'entrée dans la mémoire 40. En supposant que le bit 19 du premier mot de données est 0, ce qui correspond à une erreur, et qu'il a été détecté dans l'unité de détection 58, un signal de symptôme est engendré et est mémorisé dans le registre de symptôme 65 par l'unité de détection d'erreur 58. Ce signal d'erreur est décodé par le correcteur 71 de manière que le bit de données 19 du groupe contenu dans le registre 60 soit inversé. En conséquence, lorsque le bit 19 apparaît comme un "0", le correcteur 71 change ce bit 19 en un "1". Le groupe de données corrigé est mémorisé dans le registre de sortie 73. Il s'est avéré utile que l'adresse soit utilisée par le dispositif de détection et de correction d.'erreur4mais, le cas échéant, on peut ne pas la faire intervenir. Si par exemple le bit d'adresse 23 est égal à "1" du fait d'une erreur de décodage d'adresse dans la mémoire 10, l'unité de détection d'erreur 58 produit alors un autre signal de symptôme. Le correcteur 71 tente de décoder ce signal de symptôme; cepen- dant il est incapable de le faire du fait que les seuls bits qu'il corrige sont ceux contenus dans le groupe de données qui est mémorisé dans le registre de retenue 60. Le décodeur 69 décode cette erreur comme incorrigible et il l'indique par l'intermédiaire d'un signal transmis par la ligne 80. L'unité logique 78 remplit alors sa fonction de distribution et de fourniture des signaux nécessaires à l'unité de commande 24. Dans le premier exemple, lorsque le signal de symptôme indique une erreur corrigible, le décodeur 69 l'indique à l'unité logique 78 par l'intermédiaire de la ligne 82. L'unité logique 58 indique alors le groupe de données corrigé existant dans le registre de sortie 73 à l'unité de commande 24. L'insertion du groupe de données corrigé dans la suite de données produit une suite de données corrigées à la sortie du correcteur 71. La séquence du groupe de données est maintenue pour le groupe de données suivant. Le commutateur de données 10 continue à transmettre les signaux de sortie du registre 73 à l'unité centrale de traitement 34jusqu'à ce qu'une demande soit faite par l'autre unité centrale de traitement (non représentée) en vue de la réception de groupes de données par la ligne 135 et par l'intermédiaire du commutateur de données 55. Ce commu- tateur de données utilise les groupes de données se trouvant dans le canal 14 jusqu'à ce qu'une erreur soit détectée et corrigée. La suite de données corrigées est alors utilisée. Les fig. 4, 5 et 6 sont des organigrammes mettant en évidence le fonctionnement des différentes parties du dispositif représenté sur la fig. 2. Deux dispositifs, non visibles sur la fig. 2, interviennent dans les opérations mises en évidence sur les fig. 4, 5 et 6. Ces dispositi s comportent un certain e un nombre de contrôleurs de temps d'accès/compteur d'extension qui peut être positionné, par exemple, à l'intérieur de la mémoi- re l0,ou bien à l'intérieur du circuit de détection et de correction d'erreur (EDAC) 16. Un contrôleur de temps d'accès est déclenché et des blocs de quatre groupes de données sont demandés à la mémoire 10. Un organigramme de fonctionnement de la logique de chargement des groupes de données de la mémoire dansl'unité centrale de traitement 34 a été représenté sur la fig. 4. Cette logique commence au bloc 150 et elle progresse au bloc 152. Dans le bloc 152, un contrôle est fait pour déterminer s'il s'est produit une demande de lecture de groupes de données dans la mémoire. Si une telle demande n'a pas été produite, la logique suit le trajet 154 et repénètre dans le bloc 150. S'il s'est produit un cycle de mémoire, la logique part du bloc 152 et pénètre dans le bloc 156. Dans le bloc 156, le contrôleur de temps d'accès (désigné par AT sur les figures) est déclenché pour un nombre approprié supérieur à 10. La logique part ensuite du bloc 156 et pénètre dans le bloc 158.Dans le bloc 158, le temps de sortie du contrôleur de temps d'accès est contrôlé pour déterminer si la valeur de temps du contrôleur est égale à 10. Si le temps de sortie est égal à 10, la logique part du bloc 158 et pénètre dans le bloc 160. Si le temps d'accès n'est pas égal à 10, la logique resuit le trajet 162 et repénètre dans le bloc 158. Dans le bloc 160, la mémoire (fig.2) fait l'objet d'une recherche des groupes de données demandés. A mesure que la recherche s'effectue, la logique pénètre dans le bloc 164. Dans ce bloc 164, le temps de sortie du contrôleur de temps d'accès est examiné pour déterminer si le contrôleur a effectué un comptage décroissant jusqu'à 5. Si le temps de sortie du contrôleur de temps d'accès n'est pas égal à 5, la logique reprend le trajet 166 et revient au bloc 164. Lorsque le contrôleur de temps d'accès atteint un temps de sortie égal à 5, la logique passe du bloc 164 au bloc 168. L'intervalle entre le moment o le contrôleur de temps d'accès a son temps de sortie égal à.10 et o son temps de sortie est égal à 5 est suffisant pour permettre une exploration complète de la mémoire 40 et de l'emplacement des groupes de données demandés. Dans le bloc 168, deux groupes de données sont verrouil- lés dans les registres 42 et 44. La logique sort alors du bloc 168 et pénètre dans le bloc 170. Dans ce bloc 170, la sortie du contrôleur de temps d'accès est à nouveau examinée. Si le temps de sortie du contrôleur de temps d'accès n'est pas égal à 4, la logique reprend le trajet 172 et repénètre dans le bloc 170. Lorsque le temps de sortie du contrôleur de temps d'accès est égal à 4, la logique part du bloc 170 et pénètre dans le bloc 174. Dans le bloc 174, il se produit un chargement des registres 124 et de la mémoire de piles 112 à raison d'un grou- pe de données à la fois à partir de l'un des registres 42 et 44 et dans une certaine séquence. La logique prend alors la voie 176 et pénètre dans le bloc 178. Dans ce bloc 178, la sortie du contrôleur de temps d'accès est vérifiée pour déterminer si ce contrôleur a effectué un comptage décroissant jusqu'à 3. Si le temps de sorti-e du contrôleur n'est pas égal à 3, la logique reprend son cycle par l'intermédiaire de la voie 180 et repénètre dans le bloc 178. Quand le temps d'accès atteint la valeur 3, la logique sort du bloc 178 et pénètre dans le bloc 182. Dans ce bloc 182, il se produit un chargement du registre 124 et de la mémoire de piles d'entrée 112 avec les groupes de données se trouvant dans celui des deux registres 42 et 44 qui n'a pas été chargé dans le bloc 174 et ces re- gistres 42 et 44 sont à nouveau verrouillés sur les signaux de sortie de la mémoire 40. Il est à noter que, dans la des- cription qui va suivre, on accède à quatre groupes de données à la fois dans la mémoire; cependant cela ne constitue qu'un exemple d'application et il va de soi qu'on peut accéder dans la mémoire à n'importe quel nombre de groupes de données ou bien à une suite continue de groupes de données. Après que les deux groupes de données suivants ont été verrouillés dans les registres 42 et 44, la logique part du bloc 182 et pénètre dans le bloc 184. Dans ce bloc 184, la sortie du contrôleur de temps d'accès est à nouveau examinée. Si le contrôleur de temps d'accès n'a pas encore effectué un comptage décroissant jusqu'à 2, la logique suit le trajet 196 et repénètre dans le bloc 184. Cependant, si le contrôleur de temps d'accès est arrivé à la valeur 2, la logique part du bloc 184 et pénètre dans le bloc 188. Dans ce bloc 188, un groupe de données se trouvant dans les registres 42 et 44 est chargé dans le registre 124 et dans la mémoire de piles d'entrée 112 suivant une séquence prédéterminée. La logique part ensuite du bloc 188 et pénètre dans le bloc 190. Dans ce bloc 190, la sortie du contrôleur de temps d'accès est examinée pour déterminer s'il a effectué un comptage décroissant jusqu'à 1. Dans la négative, la logique suit le trajet 192 et repénètre dans le bloc 190. Si le contrôleur de temps d'accès a compté jusqu'à 1, la logique franchit le bloc 194 et pénètre dans le bloc 196. Dans le bloc 194 le registre 124 et la mémoire de piles d'entrée 112 sont chargés avec le groupe de données qui n'a pas été chargé dans le bloc 188. On va maintenant décrire le fonctionnement séquentiel de l'unité de commande 24, de l'unité centrale de traitement 16- 6473753 34 et du commutateur de données 18 en référence à l'organi- gramme de la fig. 5. Fondamentalement, la fig. 5 montre le chargement des groupes de données et le remplacement des groupes de données erronés dans la mémoire de piles d'entrée 112. Cependant, il est à noter que, si les données contiennent une erreur, le groupe correspondant ne passe pas par le canal 131 en provenance du registre de distribution 124 et ne devient pas un groupe d'entrée pour les autres composants de l'unité centrale de traitement 34. La logique de la fig. 5 commence au bloc 200. Cette logique progresse à partir du bloc 200 et pénètre dans le bloc 202. Pendant que la logique se trouve au bloc 202, la sortie du contrôleur de temps d'accès est examinée et, quand le contrôleur de temps d'accès atteint le compte de valeur 5, la logique quitte le bloc 202 et pénètre dans le bloc 206. Si le contrôleur de temps d'accès n'est pas revenu au compte de 5, la logique reprend le-trajet 208 et repénètre dans le bloc 202. Dans le bloc 206, un des groupes de données se trouvant dans les registres 42 et 44 est transmis à l'unité centrale de traitement par l'intermédiaire du commutateur de données 18 de façon à être appliqué aux entrées du registre 124 et de la mémoire de piles d'entrée 112. Le commutateur de données 18, comme cela sera précisé dans la suite, sélectionne le registre 42 ou 44 pour le relier au registre 124 et à la mémoire de piles d'entrée 112. La logique part du bloc 206 et pénètre dans le bloc 210. Dans l'état 210, la logique reprend le trajet 212 de façon à repénétrer dans le bloc 210 jusqu'à ce que le temps de sortie du contrôleur de temps d'accès soit égal à 4. La logique passe alors au bloc 214. Dans le bloc 214, la pile d'entrée est chargée à l'adresse établie par le canal 114 et le registre 124 est chargé avec les données de sortie de celui des registres 42 ou 44 qui a été sélectionné. La logique passe ensuite au bloc 216 et pénètre dans le bloc 218. Dans le bloc 216, l'adresse établie par le registre de commande d'entrée 110 est avancée d'un groupe.de données. L'adresse de chargement de la pile d'entrée est fournie à l'unité logique 78 par l'intermédiaire du canal 118 par l'unité centrale de traitement. Cette unité centrale de traitement définit l'emplacement particulier de la mémoire de piles d'entrée 112 dans lequel chaque groupe de données doit être chargé. L'adresse est mémorisée dans l'unité logique 78 et elle est transférée par l'intermédiaire du canal 22 au registre de commande d'entrée 110. Pendant que la logique se trouve dans le bloc 218, la sortie du contrôleur de temps d'accès est vérifiée. Si le temps de cette sortie n'est pas égal à 3, la logique reprend le trajet 220 et repénètre dans le bloc 218. Quand le compte du contrô- leur de temps d'accès prend la valeur 3, la logique progresse dans le bloc 222 et pénètre dans le bloc 224. Dans le bloc 222, la mémoire de piles d'entrée 112 et le registre 124 sont chargés avec le groupe de données se trouvant dans celui des registres 42 ou 44 pour lequel un groupe de données n'a pas été sélectionné par le commutateur de données 18 dans le bloc 206. Le commutateur de données 18 effectue évidemment la sélection du nouveau groupe de données après que le groupe précédent a été chargé dans le registre 124 et dans la mémoire de piles d'entrée 112. Dans le bloc 224, la sortie du circuit EDAC 16 est examinée pour déterminer si une erreur s'est produite. Si l'unité de commande 24 reçoit une information précisant que le circuit EDAC 16 n'a pas détecté d'erreur, la logique part du bloc 224 et pénètre dans le bloc 226. Dans ce bloc 226, l'adresse établie par le registre 110 est avancée d'un groupe de données. La logique passe ensuite au bloc 228. Dans ce bloc 228, le contrôleur de temps d'accès est examiné pour déterminer si le temps de sa sortie est égal à 2. Si le temps de sortie n'est pas égal à 2, la logique reprend le trajet 230 et repénètre dans le bloc 228. Lorsque le temps de sortie du contrôleur de temps d'accès est égal à 2, la logique passe dans le bloc 234 et pénètre dans le bloc 236. Dans ce bloc 236, la sortie du circuit EDAC 16 est examinée pour déterminer s'il existe une erreur dans le groupe de données. S'il n'existe pas d'erreur, la logique passe par le bloc 238 et pénètre dans le bloc 240. Dans le bloc 238, l'adresse four- nie par le registre 110 à la mémoire de piles d'entrée 112 est avancée jusqu'à celle du groupe de données suivant à charger. Dans le bloc 240, le temps de sortie du contrôleur de temps d'accès est examiné pour déterminer s'il est égal à 1. S'il n'est pas égal à 1, la logique reprend le trajet 242 et repénètre dans le bloc 240. Dans le bloc 238, l'adresse fournie par le registre 110 à la mémoire de piles d'entrée est avancée jusqu'au groupe de données suivant. Dans le bloc 240, le temps de sortie du contrôleur de temps d'accès est examiné pour déterminer sril est égal à 1 S'il n'est pas égal à 1, la logique reprend le trajet 242 et repénètre dans le bloc 240. Si le contrôleur a effectué un comptage décroissant jusqu'à 1, la logique part de l'état 240 et pénètre dans le bloc 244 par l'intermédiaire du bloc 243. Dans le bloc 243, le groupe de données se trouvant dans les registres 42 et 44 et qui n'a pas été sélectionné et appliquéau registre 124 et à la mémoire de piles d'entrée 112 dans le bloc 234 est maintenant sélectionné comme entrée par le commutateur de données 18. Egalement dans le bloc 243, le groupe de données sélectionné est mémorisé dans la mémoire de piles d'entrée 112 et le registre 124. Dans le bloc 244, la sortie du circuit EDAC 16 est examinée pour déter- miner s'il existe une erreur. S'il n'existe pas d'erreur, la logique progresse dans le bloc 246. Dans ce bloc 246, l'adresse fournie par le registre de commande d'entrée à la mémoire de piles d'entrée 112 est avancée jusqu'à l'emplacement de mémoire suivant, qui représente l'emplacement du premier des quatre groupes de données suivants à mémoriser dans la mémoire de piles d'entrée 112. La logique part du bloc 246 et pénètre dans le bloc 248. Dans le bloc 248, le temps de sortie du contrôleur de temps d'accès est examiné pour déterminer si le contrôleur a effectué un comptage décroissant jusqu'à 0. Si ce compte de 0 est atteint, la logique suit le trajet 250 et pénètre dans le bloc 248. A partir du bloc 248, la logique progresse jusqu'au bloc 252 quand le contrôleur de temps d'accès a atteint le compte de 0. Dans le bloc 252, la sortie du circuit EDAC 16 est examinée pour déterminer si une erreur a été détectée dans un groupe de données par l'unité de commande 24. Si le groupe de données n'est pas erroné, la logique part du bloc 252 et pénètre dans le bloc 298. Si, pendant que la logique se trouve dans le bloc 224, une erreur affectant le premier groupe de données qui a été envoyé à la mémoire de piles d'entrée 112 et au registre 124 est détectée,la logique passe dans le bloc 254 et pénètre dans le bloc 256. Dans ce bloc 254, l'adresse fournie par le registre de commande d'entrée à la mémoire de piles d'entrée 112 devient l'adresse du groupe de données erroné. Pendant que la logique se trouve dans le bloc 256, la sortie du contrôleur de temps d'accès est examinée pour déterminer si le contrôleur a atteint le compte de 2. Si le contrôleur n'a pas effectué un comptage décroissant jusqu'à 2, la logique reprend le trajet 258 et repénètre dans le bloc 256. Après que le contrôleur a atteint le compte de 2, la logique passe dans les blocs 262 et 263 et pénètre dans le bloc 265. Dans le bloc 262, le commutateur de données 18 sélectionne les signaux de sortie du registre 73 comme signaux d'entrée pour la mémoire de piles d'entrée 112 et le registre 124 et le groupe de données corrigé est chargé dans ces éléments. Dans le bloc 263, qui succède au bloc 262, l'adresse fournie par le registre 110 est avancée jusqu'au groupe de données suivant. La logique passe alors dans le bloc 265 o la sortie du contrôleur de temps d'accès est analysée pour déterminer si le contrôleur a atteint la valeur 1 en comptage décroissant. Si ce contrôleur n'a pas atteint la valeur 1, la logique reprend le trajet 267 et repénètre dans le bloc 265. Si, pendant que la logique se trouve dans le bloc 236, une erreur a été détectée dans le second groupe de données chargé dans la mémoire de piles d'entrée 112 et le registre 124, la logique sort du bloc 236 et pénètre dans le bloc 265 par l'intermédiaire du bloc 269. Dans le bloc 269, l'adresse fournie par le registre 110 à la mémoire de piles d'entrée 112 est ramenée à l'état initial de sorte qu'elle définit maintenant le groupe de données erroné. Après que la logique est sortie du bloc 265, elle passe dans les blocs 271 et 272 et pénètre dans le bloc 274. Après que le contrôleur de temps d'accès a atteint la valeur 1 par comptage décroissant et après que la logique est sortie du bloc 265 pour pénétrer dans le bloc 271, le registre 124 et la mémoire de piles d'entrée 112 sont chargés avec les signaux de sortie du registre 73. Il est à noter que, une fois qu'une erreur s'est produite, les signaux de sortie du registre 73 sont chargés dans la mémoire de piles d'entrée 112 et le registre 124. Si le groupe de données ne contient pas d'erreur, aucun des bits n'est changé mais il est transféré du registre 60 jusque dans le registre 73 par l'intermédiaire du correcteur de données 71 sans modification. Dans le bloc 272, l'adresse fournie par le registre 110 est avancée jusqu'au groupe de données suivant. Si, pendant que la logique se trouvait dans le bloc logique 224, une erreur a été détectée dans le troisième groupe de données chargé dans la mémoire de piles d'entrée 112 et le registre 124, la logique suit le trajet 276 et pénètre dans le bloc 278. Dans ce bloc 278, l'adresse fournie par le registre 110 est ramenée à l'adres- se définissant l'emplacement dans la mémoire de piles d'entrée 112 du troisième groupe de données intervenant dans l'ensemble de quatre groupes de données. La logique progresse ensuite pour pénétrer dans le bloc 274. Dans ce bloc 274, le contrôleur de temps d'accès est examiné pour déterminer si son temps de sortie est de 0. Si le temps de sortie n'est pas égal à 0, la logique suit le trajet 280 et repénètre dans le bloc 274. Après que le temps de sortie du contrôleur de temps d'accès a pris la valeur 0, la logique passe dans les blocs 283, 284 et 285 et pénètre dans le bloc 288. Dans le bloc 283, le registre 124 et la mémoire de piles d'entrée 112 sont chargés par la sortie du registre 73. Si la logique a progressé du bloc 244 dans le bloc 278, le groupe de données est un groupe corrigé. Cependantsi la logique a progressé par les blocs 271 et 272, le groupe de données chargé à partir du registre 273 peut être soit un groupe corrigé, soit le groupe de données non corrigé initial qui a été chargé dans le registre 60. Si, pendant que la logique se trouvait dans le bloc 252, une erreur a été détectée dans le quatrième groupe de données dudit ensemble de quatre groupes chargés dans l'unité centrale de traitement 34, la logique passe dans le bloc 290 et pénètre dans le bloc 285. Dans ce bloc 290, l'adresse fournie par le registre 110 est ramenée à la valeur correspondantede l'adresse du quatrième groupe de données. Pendant que la logique se trouve dans le bloc 284, l'adresse fournie par le registre 110 est changée en l'adresse du groupe suivant à charger dans la mémoire de piles d'entrée 112. Dans le bloc 285, un autre compteur, appelé le compteur d'extension, est remis à 0. Il est à noter que ce compteur effectue un comptage progressif. Dans le bloc 288, le compte de sortie du compteur d'extension est examiné pour déterminer s'il est égal à 1. S'il n'est pas égal à 1, la logique reprend le trajet 292 et repénètre dans le bloc 288. Après que le compteur d'extension a atteint la valeur 1, la logique sort du bloc 288 et passe dans le bloc 294 pour pénétrer dans le bloc 296. Dans le bloc 294, le groupe de données se trouvant dans le registre de sortie 73 est chargé dans le registre 124 et dans la mémoire de piles d'entrée 112 par l'intermédiaire du commu- tateur de donnnées 18. Comme indiqué ci-dessus, le groupe de données.. peut être soit un groupe de données corrigé, soit un groupe de données initial qui ne contient pas d'erreur. La logique passe ensuite du bloc 294 au bloc 296. Dans ce bloc 296, l'adresse fournie par le registre 110 est avancée jusqu'à l'emplacement o doit être mémorisé le groupe de données suivant qui est reçu par l'unité centrale de traitement 34. La logique sort ensuite du bloc 296 et pénètre dans le bloc 298. On a mis en évidence sur la fig. 6 le fonctionnement des différentes unités se trouvant dans le circuit EDAC 16. Les fonctions de commande dans le circuit EDAC 16 sont commandées par l'unité logique 78. La logique commence au bloc 310. Bien que la fonction de ce bloc ne soit pas indiquée, celui-ci permet de produire d'abord un chargement de groupe de données dans les registres 42 et 44. La logique sort du bloc 310 et pénètre dans le bloc 312. Le commutateur de données 50 sélec- tionne la sortie de l'un ou l'autre des registres 42, 44. Cette sélection s'effectue en même temps que la sélection du commuta- teur de données 18. En d'autres termes, le registre 124 et la mémoire de piles d'entrée 112 reçoivent le même groupe de 2473? 53 données que celui qui est appliqué au registre de retenue 60 et à l'unité de détection d'erreur 58. Il est;évident que, si le commutateur de données 18 a sélectionné la sortie du registre 73, le commutateur de données 50 effectue alors seul la sélection des sorties des registres 42 et 44. Cependant, on conserve la même séquence que sur la fig. 5, c'est-à- dire que l'unité centrale de traitement sélectionne un certain ordonnan- cement séquentiel des groupes de données et que des groupes de données se trouvant dans les registres 42 et 44 sont sélection- nés en correspondance à cet ordonnancement séquentiel prédéter- miné. Si le registre 42 doit être sélectionné, la logique passe dans le bloc 314 o le registre 42 est sélectionné et elle pénètre dans le bloc 316. Si le registre 44 doit être sélectionné, la logique passe dans le bloc 318 et la sortie du registre 44 est sélectionnée. La logique passe ensuite dans le bloc 316. Dans ce bloc 316, la sortie du contrôleur de temps d'acces est examinée pour déter- miner si ce contrôleur a atteint la valeur 3 en comptage décroissant. Si le contrôleur n'a pas atteint la valeur 3, la logique reprend le trajet 320 et repénètre dans le bloc 316. Si le contrôleur a atteint la valeur 3, la logique sort du bloc 316 par 1 'intermédiaire des blocs 323 et 324 et pénètre dans le bloc 326. Dans le bloc 323, le registre 60 et l'unité de détection d'erreur 58 sont chargés avec le groupe de données sélectionné. Dans le bloc 324, le groupe de données. se trouvant maintenànt sélectionné dans les registres 42 et 44 et qui n'a pas été sélectionne est7en sortie du commutateur de données 50. En d'autres termes, si le bloc 314 a été exécuté, le registre 44 est alors sélectionné. Dans le bloc 326, l'unité logique 78 examine le signal de sortie de l'unité de détection d'erreur 58 qui est transmis par la ligne 63 afin de déterminer si une erreur a été détectée. Si une erreur n'a pas été détectée dans le premier groupe de données, la logique prend le trajet 328 et pénètre dans le bloc 330. Dans ce bloc 330, la sortie du contrôleur de temps d'accès est examinée pour déterminer si le contrôleur a atteint la valeur 2 en comptage décroissant. Si-le contrôleur n'a pas atteint la valeur 2, la logique reprend le trajet 332 et repé- nètre dans le bloc 330. Après que le contrôleur a atteint la valeur 2, la logique sort du bloc 330 par l'intermédiaire des blocs 335 et 336 et pénètre dans le bloc 338. Dans le bloc 335, le registre 60 et l'unité de détection d'erreur 58 sont chargés avec le groupe de données suivant. Le registre 73 est également chargé avec le signal de sortie du correcteur de données 71. * Comme indiqué sur la fig. 4, pendant le bloc 182, les deux groupes de données suivants sont verrouillés dans les registres 42 et 44. Dans le bloc 336, le groupe de données suivant (troisième) intervenant dans la séquence prédéterminée est sélectionné par le commutateur de données 50. La logique passe alors dans le bloc 338 o une vérification est faite pour déterminer si l'unité de détection d'erreur a trouvé une erreur. Si une erreur n'a pas été trouvée dans le second groupe de données chargé dans l'unité de détection d'erreur, la logique passe au bloc 340. Dans ce bloc 340, une vérification est faite pour déterminer si le contrôleur de temps d'accès a atteint le compte de 1. Si ce contrôleur n'a pas atteint le compte de 1, la logique reprend le trajet 342 et repénètre dans le bloc 340. Quand le contrôleur de temps d'accès a atteint le compte de 1, la logique passe dans le bloc 344 et pénètre dans le bloc 346. Dans le bloc 344, le groupe de données sélectionné par le commutateur de données 50 clns le bloc 336 est chargé dans le registre 60 et l'unité de détection d'erreur 58. Dans le bloc 346, le commutateur de données 50 sélectionne l'autre groupe de données (quatrième) qui n'a pas été précé- demment sélectionné. Il est clair que la logique intervenant dans cette boucle particulière est répétitive et que les séquences de vérification et de chargement se poursuivent jusqu'à ce que la logique repénètre dans le bloc 310. Si, pendant que la logique se trouvait dans le bloc 326, une erreur a été détectée dans le premier groupe de données sélectionné, la logique sort du bloc 326 et pénètre dans le bloc 352. Dans ce bloc 352, la sortie du décodeur 69 est examinée pour déterminer si l'erreur est ou non corri- gible. Si le décodeur 69 détermine à partir du symptôme engen- 24 2473753 dré par l'unité de détection d'erreur 58 et mémorisé dans le registre de symptôme 65 que l'erreur est corrigible, la logique suit le trajet 354 et pénètre dans le bloc 356. Si l'erreur-a été déterminée comme étant incorrigible, la logique sort du bloc 352 et pénètre dans le bloc 358. Dans ce bloc 358, l'unité de commande d'entrée 120 informe l'unité centrale de traitement 34, par l'intermédiaire d'une ligne 122, qu'une erreur incorri- gible a été détectée et que les procédures appropriées de répa- ration doivent être lancées. La logique sort alors du bloc 358 et pénètre dans le bloc 389. Dans le bloc 356, l'erreur est corrigée par le correcteur 71 en utilisant le symptôme établi par l'unité de détection d'erreur 58 et chargé dans le registre de symptôme 65. Le groupe de données corrigé est chargé dans le registre de sortie 73. La logique sort alors du bloc 356 et pénètre dans le bloc 360. Dans ce bloc 360, la sortie du contrôleur de temps d'accès est examinée pour déterminer si le contrôleur a effec- tué un comptage décroissant jusqu'à 2. Si le compte du contrô- leur n'est pas égal à 2, la logique suit le trajet 362 et repénètre dans le bloc 360. Lorsque le contrôleur de temps d'accès a atteint le compte de 2, la logique passe par les blocs 365, 366 et 367 et pénètre dans le bloc 369. Dans le bloc 365, le registre de retenue 60 et l'unité de détection d'erreur 58 sont chargés avec le groupe de données sélectionné par le commutateur de données 50. Dans le bloc 366, les données corri- gées sont chargées dans la mémoire de piles d'entrée 112 et le registre 124 par l'intermédiaire du commutateur de données 18. Le groupe de données suivant est sélectionné par le commutateur de données 50 dans le bloc 367. Si une erreur est détectée dans le bloc 338, la logique suit le trajet 371 et pénètre dans le bloc 369. Dans ce bloc 369, la sortie du décodeur est examinée par l'unité logique 78 pour déterminer si l'erreur est corrigible. Si l'erreur est incorrigible, la logique suit le trajet 373 et pénètre dans le bloc 375. Dans ce bloc 375, l'unité centrale de traitement 34 est avertie qu'il existe une erreur incorrigible, que l'opération doit être arrêtée et que les procédures appropriées de réparation sont lancées. A 2473753 partir du bloc 375, la logique progresse et repénètre dans le bloc 389. Si une erreur corrigible est détectée dans le bloc 369, la logique passe par le bloc 377 et pénètre dans le bloc 379. Si, dans le bloc 377, il n'existe pas d'erreur à corriger, les signaux de sortie du registre de retenue 60 sont chargés par J'intermédiaire du correcteur 71 dans le registre 73 sans modi- fication. Dans le bloc 379, la sortie du contrôleur de temps d'accès estcontrôlée pour déterminer si le contrôleur a atteint la valeur 1 en comptage décroissant. Si le compte du contrôleur n'est pas égal à 1, la logique suit le trajet 381 et repénètre dans le bloc 379. La logique sort du bloc 379 et progresse, par l'inter- médiaire des blocs 384 et 385, jusque dans le bloc 387. Dans le bloc 384, le groupe de données sélectionné par le commuta- teur de données 50 est chargé dans l'unité de détection d'erreur 58 et le registre 60. Dans le bloc 385, le contenu du registre 73 est chargé, par l'intermédiaire du commutateur de données 18, dans la mémoire de piles d'entrée 112 et le registre 124. Dans le bloc 387, qui suit le bloc 385, le groupe de données suivant est sélectionné dans la séquence prédéterminée par le commutateur de données 50. Comme le montrent les situations décrites ci-dessus, le reste de la logique est répétitif et la séquence d'évènements reste la même jusqu'à ce que tous les groupes de données aient été chargés dans l'unité centrale de traitement 34 ou bien jusqu'à la détection d'une erreur incorrigible. La logique passe alors dans le bloc 389. Le contrôleur de temps d'accès pour le cycle de mémoire suivant, c'est-àdire l'extraction d'un bloc de quatre groupes de données hors de la mémoire 10, est déclenché quand le contrôleur de temps d'accès du cycle en cours a atteint, en comptage décroissant, la valeur 5 à partir de son point de départ dans le bloc 156 (fig. 4). Si une erreur s'est produite, le bloc de données suivant est chargé à partir du registre 73 (fig. 2), comme s'il s'était produit une erreur dans les blocs 224 (fig. 5) et 326 (fig. 6). Bien entendu l'invention n'est pas limitée aux exemples de réalisation ci-dessus décrits et représentés à partir - desquels on pourra p7évoird'autres modes et d'autres formes de réalisation, sans pour cela sortir du cadre de l'invention. REVENDICATIONS 1. Dispositif pour fournir au moins un groupe de données corrigé à un circuit de destination (30), chaque groupe de données étant transféré à partir d'une mémoire (10), caractérisé en ce qu'il comprend: (a) un premier trajet (14) reliant la mémoire au circuit de destination, (b) un second trajet (12, 16, 22) reliant la mémoire au circuit de destination, ledit second trajet comprenant un circuit de détection et de correction d'erreur EDAC (16) servant à détec- ter au moins un groupe de données provenant de ladite mémoire et contenant une erreur et à le remplacer par un groupe de données corrigé, et (c) une unité de commande (24) reliée fonctionnellement audit circuit de détection et de correction d'erreur (16) et audit circuit de destination (30) en vue d'indiquer ladite erreur, ledit circuit de destination répondant à l'unité de commande pour remplacer ledit groupe de données par ledit groupe corrigé et pour recevoir des groupes de données suivants en provenance dudit circuit de détection et de correction d'erreur. 2. Dispositif pour fournir au moins un groupe de données corrigé, à un circuit de destination (30), chaque groupe de données étant transféré à partir d'une mémoire (10), caractérisé en ce qu'il comprend: (a) un commutateur de données (18) qui est connecté de manière à recevoir et transférer à sa sortie des groupes de données provenant de ladite mémoire (10), (b) un circuit de détection et de correction d'erreur EDAC (16) connecté fonctionnellement à ladite mémoire (10) et audit com- mutateur de données (18) pour transmettre chaque groupe de données corrigé audit commutateur si un des groupes contient une erreur corrigible, ledit commutateur de données répondant audit circuit de détection et de correction d'erreur qui a corrigé ladite erreur en recevant et en transférant ledit groupe de données corrigé et des groupes de données suivants qui provien- nent séquentiellement dudit circuit de détection et de correc- tion d'erreur. 28 2473753 3. Dispositif pour fournir à un circuit de destination (30) une suite de groupes de données corrigés à partir d'une suite de groupes de données provenant d'une mémoire (10) dans une séquence prédéterminée, caractérisé en ce qu'il comprend (a) un circuit de détection et de correction d'erreur EDAC (16> connecté de manière à recevoir lesdits groupes de données dans ladite séquence prédéterminée en vue de remplacer chaque groupe de données qui contient une erreur par un groupe corrigé dans ladite séquence prédéterminée, et (b) un commutateur de données (18) connecté fonctionnellement de façon à transférer sélectivement les groupes de données provenant de la mémoire dans ladite séquence prédéterminée, et les groupes de données provenant du circuit de détection et de correction d'erreur dans ladite séquence prédéterminée, comprenant ledit groupe de données corrigé après la détection d'une erreur corrigible. 4. Dispositif pour fournir à un circuit de destination (30) une suite de groupes de données corrigés dans une séquence prédéterminée à partir d'une suite de groupes de données prove- nant d'une mémoire (10), caractérisé en ce qu'il comprend (a) un circuit de détection et de correction d'erreur EDAC (16) connecté fonctionnellement de manière à recevoir ladite suite de données de mémoire en vue de remplacer des groupes de données contenant des erreurs, dans ladite séquence prédé- terminée, par des groupes de données corrigés, ledit circuit de détection et de correction d'erreur engendrant un signal lors de chaque substitution d'un groupe de données par un groupe de données corrigé. (b) un commutateur de données (18) connecté fonctionnellement pour recevoir la suite des groupes de données provenant de la mémoire (10) et la suite des groupes de données-corrigés provenant du circuit de détection et de correction d'erreur (16), ledit commutateur de données étant connecté audit circuit de destination (30) pour lui fournir sélectivement la suite des groupes de données et, en réponse à chaque signal provenant du circuit EDACla suite des groupes de données corrigés. 5. Dispositif selon la revendication 4, caractérisé en ce qu'il comprend un second commutateur de données (55), qui est connecté pour recevoir la suite des groupes de données provenant de la mémoire (10) dans ladite séquence prédéterminée et provenant dudit circuit de détection et de correction d'erreur EDAC (16) en vue de fournir sélectivement la suite des groupes de données à un second circuit de destination et, en réponse auxdits signaux, la suite des groupes de données corrigés. 6. Dispositif selon la revendication 4, caractérisé en ce que ledit circuit de détection et de correction d'erreur (16) comprend un moyen (69) pour produire un premier signal (80), si une erreur incorrigible est détectée et en ce que ledit circuit de destination arrête de fonctionner en réponse à ce signal. 7. Dispositif selon la revendication 4, caractérisé en ce que ledit circuit de détection et de correction d'erreur (16) comprend un moyen (69) pour produire un second signal (82) quand un groupe de données a été remplacé par un groupe de données corrigé et en ce que ledit circuit de destination (30) est connecté fonctionnellement de manière à recevoir ledit second signal afin d'ignorer le groupe de données de mémoire correspondant audit groupe de données corrigé. 8. Dispositif selon la revendication 4, caractérisé en ce que ledit circuit de détection et de correction d'erreur (16) reçoit une adresse pour chaque groupe de données se trouvant dans la mémoire en vue de la détection d'erreurs d'adressage. 9. Procédé pour fournir au moins un groupe de données corrigé à un circuit de destination (30) à partir de groupes de données provenant d'une mémoire (10), caractérisé en ce qu'il comprend les opérations suivantes: (a) application d'une suite de groupes de données à un circuit de détection et de correction d'erreur EDAC (16) et à un commu- tateur de données (18). (b) transfert de la suite jusqu'au circuit de destination (30) par l'intermédiaire dudit commutateur de données (18) (c) correction de chaque groupe de données erroné en le remplaçant par un groupe de données corrigé correspondant dans la suite, et (d) sélection de la suite de données provenant du circuit de détection et de correction d'erreur pour son transfert vers le circuit de destination en réponse à la substitution d'un groupe de données corrigé.