Brevet FR2256475A1 — publié le 19750725

Cette inv#ention porte sur la correction des erreurs dans les calculateurs numeriques, et plus particulièrement sur une méthode permettant d'effectuer une opération de recherche de données spécifiques localisées sur des dispositifs mémoires auxiliaires, et permettant à ladite opération de se poursuivre sans retard, malgré la présence d'erreurs corrigibles dans les données mémorisées. Les systèmes de calcul numérique utilisent communément des dispositifs mémoires pouvant être des disques magnétiques, afin d'augmenter la capacité de stockage/oonnées de la mémoire principale. Les dispositifs de mémoire à accès direct sont particulièrement importants comme mémoires auxiliaires, puisque chaque enregistrement physique possède une position discrète et une adresse particuliers à laquelle il est possible d'accéder, sans passer par la succession des adresses intermédiaires.L'accès aux enregistrements dans les mémoires à accès direct et à grande capacité devient plus facile Si l'on organise les enregistrements en fichiers ou ensembles de données qui sont des collections organisées d'enregistrements présentant un rapport eutre eux, et si l'on réunit les enregistrements physiques des ensembles de données en unités logiques. Des désignations de clés sont souvent attribuées aux unités logiques pour identifier les aires de données et, dans les dispositifs-mémoires à accès direct IBM 2314 et 3330, ces désignations sont chacune localisées sur le dispositif mémoire juste avant la zone de données qu'elles identifient. En outre, les clés peuvent être localisées dans un index, de sorte qu'une recherche d'index permettra de localiser rapidement l'adresse de la clé. L'efficacité d'une organisation de données semblable à celle qui vient d'être décrite provient de la possibilité qui est formée de localiser de grandes quantités de données par la recherche d'un petit identificateur. Un tel système devient inefficace lorsque des erreurs se produisent à l'intérieur de l'identificateur, puisqu'elles peuvent entrainer l'utilisation de données erronées et la perte du pointeur de données . On entend par erreurs, des informations numériques incorrectes résultant d'irrégularités mécaniques ou électriques dans le dispositif d'accès direct, par opposition aux erreurs opératoires pouvant intervenir dans la mise en oeuvre du matériel ou l'emploi des codes.Les erreurs types correspondant à cette définition sont les irrégularités de surface ou les imperfections apparaissant dans un disque magnétique, provoquant la lecture incorrecte des bits mémorisés il s'agit aussi des erreurs résultant des parasites électriques survenant dans les composants qui assurent la liaison des informations avec le disque, et des erreurs résultant de la piste d'enregistrement. Afin de garantir aux usagers de l'ordinateur que les données sur lesquelles ils travaillent ne comportent aucune erreur, différentes techniques ont été élaborées pour résoudre les problèmes d'erreurs. Ainsi, lors de la transmission des données d'un disque à la mémoire principale, chaque portion de données est inspectée, afin de déterminer la présence éventuelle d'erreurs dans ces données, et dans l'affirmative des mesures soient prises pour corriger des erreurs ou pour informer le système que les données ne sont pas fiables et qu'il ne faut pas les utiliser. Cette correction d'erreur est accomplie en divisant lès données en portions, par exemple en portions de 64 multiplets, et en inspectant un multiplet supplémentaire de-code de correction d'erreurs qui est formé pour indiquer si les 64 multiplets précédents sont corrects ou non.Le code de correction d'erreur peut fournir la possibilité d'identifier les bits de données précis qui comportent des erreurs et qui ont besoin d'être corrigés. On se réfèrera à l'article "codes de correction d'erreurs" de W.W. Petersen, publié. dans la MIT Press,- première édition 1961, qui fournit des indications relatives aux codes. Bien que les codes et les techniques de correction d'erreurs soient utilisés depuis déjà un certain temps, on constate des défaillances importantes dans le transfert des données lorsque les erreurs se trouvent dans les zones de comptage ou de clés. Dans le dispositif à disque IBM 2314, la technique utilisée consiste à relire la même zone où l'erreur a été découverte, et cela suppose une nouvelle recherche (positionnement de la tête sur la zone de données) et une nouvelle lecture. Cette technique prend un temps considérable et exige des supports de programmation importants. La technique utilisée sur le dispositif à disque IBM 3330 consiste à éviter la relecture des données sur le disque par une correction de l'erreur sut les données lues initialement. Cette opération est réalisée en mémorisant les données dans un tampon, et après correction, en repositionnant la tête à l'adresse correcte afin d'entreprendre le transfert de données. Evidemment, cette technique implique l'utilisa tion de matériel supplémentaire ainsi que des supports de programmation importants. Aussi la présente invention se propose-t-elle en particulier d'assurer la correction immédiate des erreurs corrigibles survenant dans les zones de clés et de comptage mémorisées sur les dispositifs à accès direct, en corrigeant ces erreurs à mesure qu'elles apparaissent, bit par bit, et en éliminant l'équipement coûteux utilisé dans les techniques antérieures ce qui évite d'importantes pertes de temps. L'objet de l'invention est un procédé permettant de détecter les erreurs à mesure qu'elles apparaissent dans les données recherchées dans un dispositif à disque à accès direct, pendant une opération de recherche, et permettant d'établir si l'erreur peut être corrigée ou non. L'invention exige la comparaison des données et de leur code erreur trouvés sur le disque, avec l'argument de recherche et son code erreur en provenance de l'unité centrale. Lorsque le résultat de la comparaison est positif, la recherche est satisfaite. Lorsqu'une différence importante est détectée, la recherche n'est pas satisfaite. Lorsque la différence apparait comme un groupe, c'est-à-dire une suite de bits non-identiques, et que cette différence est inférieure à une limite arbitraire fixée par le code de correction d'erreur utilisé, on a affaire à une erreur corrigible. La figure 1 est un organigramme des opérations effectuées dans une technique antérieure pour enregistrer une instruction de recherche. La figure 2 composés des figures 2A, 2B et 2C est un organigramme des opérations effectuées selon une autre technique antérieure pour exécuter une instruction de recherche. La figure 3 est un organigramme des opérations d'exécution d'une instruction de recherche, conformément à la méthode de la présente invention. La figure 4 représente un circuit permettant de mettre en oeuvre la méthode de la présente invention. La figure 5 représente un comparateur correspondant à un mode de réalisation spécifique de l'invention. Sur les organigrammes des figures 1, 2 et 3, les diverses opérations sont représentées par des blocs référencés dont la liste est donnée cirdessous. 100 Dès réception d'uns instruction de recherhce, localiser le début de la zone suivante sur le disque 101 Simultanément: lire les données de la zone de clé et les multiplets de contrôle sur le disque accepter les données de l'argument de recherche en provenance du canal . comparer séquentiellement les multiplets de données en provenance du disque avec les multiplets de données de l'unité centrale . utiliser les données et les multiplets de contrôle provenant du disque pour générer un syndrome de détection d'erreur 102 lecture d'erreur du disque ? 103 Séquence d'instruction finale - demande de programme de récupération d'erreur 104 Après comparaison tous les multiplets sont-ils égaux? 105 Recherche terminée non satisfaite 106 Recherche terminée satisfaite 200 Dès réception d'une instruction de recherche, localiser le début de la zone de clé suivante enregistrée sur le disque 201 Conserver la position angulaire de l'enregistrement en cours (mémorisé dans la mémoire de contrôle pendant la recherche d'ID ] 202 Simultanément:: Lire les données de la zone de clé et les multiplets de vérification dans le disque Mémoriser les données de zone de clé dans la mémoire de contrôle . Accepter les données de l'argument de recherche en provenance du canal Utiliser les données et les multiplets de contrôle provenant du disque pour# générer un syndrome de détection et de correction d'erreur 204 Erreur de lecture sur le disque? 204a Tous les multiplets sont-ils égaux? 204b Recherche terminée non satisfaite 204c Recherche terminés satisfaite 205 Suspendre l'exécution de la séquence d'instruction et déconnecter la commande et le contrôle du canal 206 Calculer les informations de correction d'erreur et corriger les données de zone de clé dans la mémoire de contrôle 206e Correction réussie? 206b Erreur nonsorrigible - 207 Calculer la position angulaire du disque pour la reprise de fonctionnement au début de la zone de clé erronée y compris le temps d'avance requis pour reconnecter au canal Positionner secteur pour interruption de l'unité à disque 208 A la position de disque désirée, signaler une interruption au canal 208a Le canal,répond-il? 20bob Attendre une révolution du disque 209 Reconnecter l'unité de commande et de contrôle au canal. Signaler au canal la répétition de l'instruction de recherche. Attendre le début de la zone de clé 210 Simultanément: Explorer toute la zone de clé sans tenir compte des données . Lire les données de la zone de contrôle de touche corrigées dans la mémoire de contrôle . Accepter les données de l'argument de recherche en provenance du canal . Comparer séquentiellement des multiplets de données en provenance de la mémoire de contrôle avec les multiplets de données en provenance du canal 21osa Tous les multiplets de la comparaison sont-ils égaux? 210b Recherche terminée non satisfaite 210c Recherche terminée satisfaite 300 Dès réception d'une instruction de clé de recherche# localiser le commencement de la zone de clé suivante enregistrée sur le disque 301 Simultanément: Lire les données de zone de clé et des multiplets de contrôle sur le disque . Génerer des multiplets de contrôle pour les données de l'argument comme pour une opération d'écriture . Accepter les données de l'argument de recherche en provenance du canal . Comparer séquentiellement les données et les multiplets de contrôle en provenance du disque avec les données et les multiplets de contrôle (générés) en provenance du canal 301a Résultat de la comparaison 302 Recherche terminée non satisfaite 303 Recherche terminée satisfaite 304 Erreur non corrigible Antérieurement, l'équipement était construit pour fonctionner selon les diverses techniques de correction d'erreur évoquées précédemment. La figure 1 fournit une analyse détaillée de la technique utilisée sur le dispositif à disque à accès direct IBM 2314. Au point 100, l'opération commence par la réception d'une instruction de RECHERCHE DE CLE provenant de l'unité centrale afin de comparer les données de clé issues de la mémoire principale avec les données de clé en provenance du dispositif à accès direct, jusqu'à ce qu'une correspondance soit établie. L'opération est détaillée en 101, ou on notera que si un syndrome de détection d'erreur indique une correspondance avec erreur, un branchement d'erreur sera établi en 102 et un programme de récupération d'erreur sera initialisé en 103. La figure 2A fournit une analyse précise de la technique antérieure utilisée sur le dispositif à disque à accès direct IBM 3330. Au point 200, l'opération commence de la même manière qu'à la figure 1 en localisant la zone de clé suivante sur le disque. La procédure exposée en 202, est la même que celle indiquée en 101, à ceci près que les données de la zone de clé sont mémorisées dans la mémoire de contrôle, ainsi que la position angulaire de l'enregistrement contenant la zone de clé, comme indiqué en 201. Si le syndrome d'erreur indique gne correspondance avec erreur, un branchement est établi de 204 à 205 sur la figure 2B pour suspendre le programme de canal et déconnecter du canal le disque et l'unité de contrôle. Des techniques de correction d'erreur sont alors utilisées en 206 pour corriger les données de la zone de clé dans la mémoire de contrôle, et si les résultats sont satisfaisants (dans le 3330 une erreur "corrigible" est une série de moins de 12 bits) la position angulaire actuelle du disque est comparée à la position angulaire de l'enregistrement dans la mémoire centrale, afin de calculer le temps nécessaire pour permettre au disque de se repositionner avec l'enregistrement sous la tête de lecture/écriture, comme indiqué en 207. A la position de disque désirée, une interruption du canal est signalée en 206 pour une reconnexion du canal au disque en 209. L'opération se poursuit en 210 à la figure 2C en utilisant les zones de clé corrigées de la mémoire de contrôle au lieu de la zone de clé incorrecte du disque. Ces techniques antérieures peuvent aisément se comparer à la technique de la présente invention si l'on se réfère à la figure 3. En 300, la première opération consiste à localiser la zone de clé suivante. Ensuite, en 301 Jv la zone de clé et les multiplets de contrôle sont lus sur disque, et les données de la zone de clé sont comparées à l'argument de recherche comme précédemment. Toutefois, dans ce cas, l'argument de recherche est utilisé pour générer des multiplets de contrôle correspondants, de sorte que ces multiplets de contrôle ainsi générés peuvent être comparés aux multiplets de contrôle provenant du disque. Si une erreur "corrigible" est détectée, les données de la zone clé seront immédiatement corrigées et la recherche se terminera. L'invention soit satisfaire six conditions possibles. Le résultat de la comparaison peut être soit: absence d'erreur, soit erreur "corrigible" soit erreur "non corrigible" et l'on peut trouver chacun de ces résultats pour l'argument de recherche égal à la zone de clé et non égal-à la zone de clé. Ces six conditions sont illustrées sur les tables 1 et 2. TABLEAU 1 Exemple 1 Pas d'erreur dans la zone de clé; argument de recherche = clé Bits de données bits de contrôle f- -n I -I 11111111 00001010 00110001 10100010 01100011 Argument ~~~~~~~~~~~~~~~~ Contrôle généré f- t I -11111111 00001010 00110001 10100010 01100011 Différence 00000000 00000000 00000000 00000000 00000000 Exemple 2 Erreur corrigible dans la zone de clé; argument de recherche = clé Bits dé données Bits de contrôle 1111#111 00001010 01101001 10100010 01100011 Erreur Argument Argument t Contrôle généré# I I 11111111 00001010 00110001 10100010 01100011 Différence 00000000 00000000 01011000 00000000 00000000 Corrigible Exemple 3 Erreur non corrigible dans la zone de clé argument de recherche = clé Bits Bitsde données Bits de contrôle t t I--- 7' 11111111 00001010 0110101D 00100010 01100011 Erreur Argument ~ Contrôle généré 11111111 00001010 00110001 10100010 01100011 Différence 00000000 00000000 01011011 10000000 00000000 Non corrigible TABLEAU 2 Exemple 4 Pas d'erreur dans la zone de clé; argument de recherche # clé bits de données Bits de contrôle t L 11111111 0000101010 00110001 10100010 01100011 Argument Contrôle généré 7 11151111 00001010 00110010 11011010 00001100 Différence : 00000000 00000000 00000011 01111000 01101111 Non égal Exemple 5 Erreur corrigible dans la zone de clé; argument de recherche f clé Bits de données Bits de contrôle I I 11111111 00001010 01101001 10100010 01100011 Erreur Argument Controle généré 11111111 00001010 ou110010 11011010 00001100 Différence: 00000000 00000000 - 01011011 01111000 01101111 Non égal Exemple 6 Erreur non corrigible dans la zone de clé; argument de recherche f clé Bits de données Bits de contrôle 11111111 00001010 01101010 00100010 01100011 Erreur Argument Contrôle généré . ~ . 11111111 00001010 00110010 11011010 00001100 Différence: 00000000 00000000 01011000 11111000 011011 Il Non égal Dans l'exemple 1 du tableau 1, tous les bits sont exactement comparables ce qui donne une recherche complète et satisfaisante, comme indiqué en 303, figure 3. Dans l'exemple 2, une petite erreur'corrigible est détectée ~ t4 bits) dans la zone de données; elle est corrigée par les circuits de correction rapide d'erreurs ce qui donne les résultats de recherche complète et ssatisfaisante en 303, figure 3. Dans l'exemple 3, une erreur trop importante pour être corrigée est détectée (6 bits), ce qui se traduit par le branchement d'erreur non corrigible à 304, figure 3. Il convient de noter que la longueur d'une erreur corrigible par rapport à celle d'une erreur non corrigible est arbitrairement une fonction du code de correction d'erreur utilisé, et dans cet exemple, on suppose une erreur de 8 bits non corrigible La théorie de la détermination du code pouvant être utilisée avec la présente invention est développée ciaprès. Dans l'exemple 4, bien q#ue les données de clé et l'argument soient presque identiques, le résultat clairement n'est pas une égalité de l'argument et de la clé avec une petite erreur corrigible comme c'était le cas dans l'exemple 2, puisque les bits de contrôle indiquent une différence importante. Ainsi donc, l'exemple 4 est un cas d'absecne d'erreur ou la recherche complète avec résultat non satisfait est indiquée en 302, figure 3. Dans les exemples 5 et 6 où des erreurs appararaissent dans les données de clé (ainsi que dans les bits de contrôle de l'exemple 6) le résultat est un branchement vers 302, figure 3, en raison de la différence importante résultat; de la différence dans les bits de contrôle. Nous exposerons à présent la théorie permettant de déterminer si une erreur est suffisamment faible pour être corrigible, comme c'est le cas dans l'exemple 2 ou si une erreur n'est pas corrigible comme c'est le cas de l'exemple 3. Considérons A et B comme étant les deux clés distinctes écrites sur un disque où A = 110100010 et B = 011001001. Supposons que ces définitions de bits pour A et B comprennent leurs bits de contré le respectifs pour un code de correction d'erreurs en série, Supposons que le code soit conçu pour corriger toute série unique de b bits d'erreur ou inférieure et qu'il soit capable de détecter une série unique de d bits d'erreur ou moins. La désignation erreur "détectable" suppose que les données lues sur le disque contiennent une erreur, corrigible ou non. Il résulte de ces définitions-que si la clé A est comparés bit par bit à la clé B, la différence entre elles doit être supérieure à bod, sinon le code de correction d'erreur ne remplirait pas sa fonction. Ainsi donc, une gamme de valeurs de clé légitimes est déterminés par les valeurs attribuées au paramètre d'erreur. Pour vérifier cette proposition, supposons le contraire. Supposons b = 3 bits, d = 6 bits et que A et B définies précédemment soient des clés à encodage légitime. Il convient de noter que A vB (en DU exclusif) fournit une différence de 9 bits; en conséquence, la différence entre eux est égale à b+d, soit 9 bits. Ce qui donne la contradiction ci-dessous. Considérons une erreur corrigible dans A, Eb, qui couvre b bits. Supposons aussi que cette erreur apparaisse dans les trois bits d'extrême gauche comme indiqué ci-dessous: A : 110100010 D At:tEb : 011100010 011100010 constituent donc les données lues dans le fichier. Comme une différence de 3 bits est corrigible, un code adéquat établira que les bits qui auraient dû être lus sur le fichier sont 110100010, soit A. Considérons à présent une erreur Ed dans B détectable mais non corrigible, Supposons en outre que l'erreur ait une longueur de 6 bits et qu'elle apparaisse dans les bits d-'extrême-droite comme indiqué cidessous: B : 011001001 Ed : 000101011 BvEd 011100010 En conséquence, 011100010 sont les données en provenance du disque. Mais ce sont les mêmes données qui ont été lues sur le disque lorsqu'une erreur corrigible de-3 bits dans A est apparue. Une contradiction s'est donc manifestée puisqu'une erreur dans B détectable mais non corrigible demeurera non détectée dans la mesure où elle ressemble à une erreur corrigible dans A. Afin de mettre en oeuvre la présente invention, le circuit de la figure 4 qui représente l'itinéraire des données de l'IBM 3330 a été modifié pour inclure un comparateur spécial 400 destiné à examiner le comptage de différence de la c#omparaison. Le générateur ECC 401 qui est généralement utilisé afin de générer les bits de contrôle pour les données en cours d'inscription sur le disque, est utilisé ici afin de générer les bits de contrôle d'erreur pour l'argument de recherche. En conséquence aucun équipement nouveau n'est nécessaire dans ce cas. Dans une opération d'écriture, identifiée par un signal transmis sur la ligne 403, les données amenées par la voie 405 sont, au cours des "périodes de données identifiées par un signal transmis sur la ligne 406, transmises par le circuit ET 407: d'une part (par le circuit OU 408 et les circuits d'écriture 409) à la mémoire 410 de l'unité auxiliaire d'entrée/sortie d'autre part (par le circuit OU 412) au générateur de bits de contrôle 401. Au cours des "périodes de contrôlez identifiées par un signal transmis sur la ligne 413 les signaux élaborés par le générateur 401 sont transmis par les circuits ET 414 et 415, le circuit OU 408 et les circuits d'écriture 409 à la mémoire 410. Dans une opération de lecture identifiée par un signal transmis sur la ligne 420, les données lues dans la mémoire 410 par les circuits de lecture 421 sont transmises, au cours des périodes de données (par le circuit ET 422 et le circuit OU 412) au générateur de bits de contrôle 401. Au cours des périodes de contrôle, ces données sont transmises (par le circuit ET 4233 au circuit OU EXCLUSIF 430. Enfin, durant toute la phase de recherche, identifiée par un signal transmis sur la ligne 424, les données lues sont transmises (par le circuit ET 425, qui est conditionné aussi bien dans la période de données que dans la période de contrôle) au comparateur spécial 400. Pendant cette même période de recherche, les bits de l'argument de recherche fournis par l'unité centrale et transmis sur la vote 405 sont transmis pendant la période de données (par le circuit ET 426 et le circuit OU 4263 au générateur de bits de contrôle 401 qui élabore des bits de contrôle de la même façon que pendant une opération d'écriture. Pendant la période de contrôle, les bits de contrôle élaborés par ce générateur sont transmis par le circuit ET 414: d'une. part (par le circuit ET 427 et le circuit OU 4283 au comparateut spécial 400 d'autre part (par le circuit ET 429 conditionné pendant toute l'opération de lecture) au circuit OU EXCLUSIF 430. La sortie du circuit DU EXCLUSIF 430 est connectée au registre de syndrome 431. Un ensemble de circuits de détection et de correction d'erreurs 432 effectue à partir des informations enregistrées dans le registre 431, les opérations de détection et de correction d'erreurs en conformité avec le code utilisé. La figure 5 représente un mode de réalisation préférée du comparateur 400. Les données du disque sont amenées sur la ligne 500 et l'argument de recherche avec les bits de contrôle générés est amené sur lá ligne 501. Lorsque les deux ensembles de données sont présents, un circuit est autorisé à présenter ces données, bit par bit au comparateur et au compteur 503. Si la comparaison séquentielle révèle une erreur groupée de 1 bit, la ligne 504 sera excitée. Si l'erreur est de 2 bits, la ligne 505 sera excitée, une erreur de 4 bits excitera la ligne 506; une erreur de 8 bits la ligne 507 et de 16 bits la ligne 508. Une erreur de 17 bits excitera les lignes 504 et 506. Une erreur de 20 bits excitera les lignes 506 et 508 et une erreur de 23 bits excitera les lignes 504. 505, 506 et 508. Une telle erreur satisferait le circuit 509, et positionnerait la bascule bistable 510 pour indiquer une erreur de 23 bits ou plus. De même, le circuit 511 est satisfait avec une erreur groupée d'entrée de 12 bits. positionnant la bascule bistable 512, et produisant une indication d'erreur supérieure à 11 bits mais inférieure à 23 bits, c'est-à-dire une erreur détectée mais non corrigible. Un comptage d'erreur inférieur à il bits indiquerait une erreur corrigible. Ainsi donc, le circuit de la figure 5 illustre une.mise en oeuvre de l'invention pour une erreur de groupe détectable de 22 bits~ et une erreur de groupe corrigible de Il bits. L'homme de l'art adaptera sans difficulté le circuit représenté au comptage d'erreur de son choix. Bien que l'on ait décrit dans ce qui précède et représenté sur le dessin les caractéristiques essentielles de l'invention appliquées à un mode de réalisation préféré de celle-ci, il est évident que l'homme de l'art peut y apporter toutes modifications de forme ou de détail qu'il juge utiles, sans pour autant sortir du cadre de ladite invention. REVENDICATIONS 1.- Procédé pour déterminer l'existence d'erreurs dans la représentation électrique de données mémorisées sur un dispositif de mémoire auxiliaire connecté pour opération avec un calculateur numérique, ladite détermination s'effectuant en comparant les données avec un argument de recherche, ce procédé étant caractérisé par les opérations suivantes: lecture desdites données comportant des bits de contrôle à partir du dispositif de mémoire auxiliaire; comparaison bit à bit des données à l'argument de recherché et à des bits de contrôle correspondant à cet argument de recherche; comptage de la longueur du groupe de bits comportant des différences, et détermination, à partir de cette différence, de l'existence d'une erreur corrigible, d'une erreur non corrigible, ou d'une différence entre les données et l'argument de recherche. 2.- Dispositif pour transférer des données entre une unité centrale de calcul et une unité auxiliaire d'entrée-sortie > caractérisé en ce qu'il comporte: a3 un générateur de bits de contrôle capable d'élaborer un groupe de bits de contrôle à partir d'un groupe de bits de données:: b ] des circuits logiques commandés par les circuits de chronologie et les instructions de l'unité centrale pour diriger vers le générateur de bits de contrôle au cours d'une opération d'écriture, dès groupes de bits fournis par l'unité centrale et constituant une clé de recherche à enregistrer sur l'unité auxiliaire; au cours d'une opération de lecture, des groupes de bits fournis par l'unité centrale et constituant un argument de recherche pour identifier les blocs de donnée à lire: c) un comparateur > et des circuits logiques pour diriger sur ce comparateur au cours d'une opération de lecture: d'une part un groupe de bits constitué par l'argument de recherche et par les bits de contrôle élaborés par le générateur de bits de contrôle à partir de cet argument de recherche:: d'autre part un groupe de bits lus à partir de l'unité auxiliaire et formant une clé de recherche comportant des bits de données et des bits de contrôle; ce comparateur fournissant, en fonction des résultats de la comparaison: soit un premier signal indiquant que la clé lue correspond à l'argument de recherche et que l'erreur, si elle existe est corrigible, soit un deuxième signal indiquant que la clé lue ne correspond pas à l'argument de recherche, soit un troisième signal indiquant l'existence d'une erreur non corrigible; d3 un registre de syndrome et des circuits pour diriger vers ce registre, au cours d'une opération de lecture, des bits résultant d'une combinaison entre les bits de contrôle lus à partir de la mémoire auxiliaire et les bits élaborés par le générateur de bits de contrôle; ; e) des circuits de détection et de correction d'erreur connectés audit registre de syndrome. 3.- Dispositif selon la revendication 2, caractérisé en outre en ce que le comparateur compare bit à bit les groupes reçus sur ses deux entrées, compte les irrégularités et fournit: le premier signal si le nombre des inégalités est inférieur ou égal à un nombre donné b; le deuxième signal si le nombre des inégalités est supérieur à b mais ne dépasse pas un autre nombre donné d plus grand que b; le troisième signal si le nombre des inégalités est supérieur à d.