FR 2565002 A1 19851129 FR 8408267 A 19840525 PROCESSEUR DE DETECTION ET DE CORRECTION D'ERREURS SELON UN CODE PRODUIT REED SOLOMON ENTRELACE L'invention a pour objet un processeur de détection et de correction d'erreurs selon un code produit Reed Solomon entrelacé. L'invention s'applique sur des données transitant entre une unité centrale et une unité de mémoire d'un système informatique. Elle est utilisée notamment dans les contrôleurs de disques, désignés ordinairement par MSC (Mass Storage Controller). Le code produit Reed Solomon entrelacé est bien connu dans la technique de la détection et de la correction d'erreurs et inclut de nombreuses variantes. L'invention est applicable à l'une quelconque de ces variantes. Des processeurs de détection et de correction d'erreurs mettant en oeuvre ce type de code sont couramment employés dans les systèmes informatiques pour travailler sur une suite d'octets de longueur variable et inférieure à une longueur prédéterminée. L'invention s'applique aux processeurs opérant sur des caractères de deux octets (16 bits), du type comprenant au moins trois blocs de génération de cinq caractères de contrôle par cinq registres associes à deux matrices, et un dispositif générateur de signaux de détection de zéro. Autrement dit, les trois blocs comprennent nécessairement un bloc de clé de parité à deux registres, et deux blocs de produit incluant respectivement un registre et une matrice et deux registres et une matrice.On y ajoute souvent un quatrième bloc a' un registre et une matrice pour accroître la qualité de correction d'erreurs sur une suite d'octets inférieure à une même longueur prédéterminée des données. Les processeurs ordinaires de ce type se présentent sous la forme d'une plaque de circuits imprimés d'environ 30 x 25 centimètres de côté. L'évolution actuelle des circuits imprimés de haute intégration (VLSI) a fait envisager l'intégration d'un tel processeur dans une puce (chip). Pour une puce de 40 bornes d'entrée - sortie, le bottier standard correspondant n'occupe qu'environ 5 x 1,5 centimètres. Mais les problèmes d'intégration font qu'il n'existe pas encore de telle puce sur le marché. Le premier problème réside dans l'impossibilité d'un simple report des circuits classiques sur une telle puce à prix compétitif. La surface disponible sur la puce s'avère trop petite pour contenir tous les circuits classiques d'un processeur performant. Ce report ne peut donc être fait qu'en supprimant des circuits et en diminuant ainsi les performances du processeur résultant au point de n'avoir qu'un faible impact commercial, ou en concevant une architecture originale appropriée. Le second problème naît de l'exigence d'ajouter sur une puce des circuits de test relativement élaborés qui restreignent encore la surface disponible pour les circuits de traitement proprement dits. L'invention résoud ces problèmes grâce à une architecture nouvelle et permet la fabricatioi d'un processeur intégré de haute performance et offrant lors des tests une visibilité totale sur l'ensemble Ses circuits de la puce. Selon l'invention, un processeur de détection et de correction d'erreurs sur des données selon un code produit Reed Solomon entrelacé opérant sir des caractères de deux octets, du type comprenant au moins trois blocs de génération de cinq caractères de contrôle par cinq registres associés à deux matrices et un dispositif générateur de signaux de détection de zéro, est caractérisé en ce qu'il comporte un multiplexeur ayant un bus de sortie desservant les trois blocs, une borne d'entrée des caractères, au moins cinq bornes d'entrée correspondant aux caractères de contrôle, une borne d'entrée d'un signal de commande incluant les signaux de détection de zéro, et trois bits de sélection qui, pendant la phase d'écriture des données, distribuent sur le bus les caractères l'un après l'autre et, pendant la phase de lecture des caractères de contrôle, envoient sur les registres les caractères de contrôle correspondant à ceux qu'ils ont produits pendant la phase d'écriture et qui, pendant les fonctions de correction et de comparaison, respectivement sélectionnent l'un des blocs et comparent l'un des registres avec un registre prédéterminé de ceuxci. Les caractéristiques# et avantages de l'invention ressortiront clairement de la description qui suit, faite en référence aux dessins annexés. Dans les dessins - la figure 1 est une vue synoptique d'un système informatique mettant en oeuvre un processeur de détection et de correction d'erreurs conforme à l'invention - la figure 2 illustre en partie sous forme schématique et en partie sous forme synoptique un exemple de réalisation d'un processeur conforme à l'invention - la figure 3 illustre schématiquement un registre quelconque des registres inclus dans le processeur représenté sur la figure 2 - la figure 4 illustre schématiquement l'un quelconque des détecteurs de zéro présents dans la figure 2 - la figure 5 illustre un exemple de réalisation de la structure du multiplexeur alimentant le bus de sélection de données dans le processeur représenté sur la figure 2 - les figures 6A - 6D illustrent par parties respectives un exemple de réalisation du bloc de commande inclus dans le processeur représenté sur la figure 2 - la figure 7 est un tableau des commandes illustrant à titre d'exemple le fonctionnement du processeur représenté sur les figures 2 et 6A - 6D - la figure 8 décrit sous forme globale un exemple d'algorithme de détection et de correction d'erreurs pouvant être mis en oeuvre par le processeur représenté sur les figures 2 et 6A - 6D ; et - les figures 9 à 16 représentent en détail les organigrammes mettant en oeuvre l'algorithme représenté sur la figure 8. La figure 1 représente sous forme synoptique un système informatique mettant en oeuvre un processeur de détection et de correction d'erreurs (10) conforme à l'invention. Dans le système informatique représenté sous sa forme la plus simple, le processeur (10) opère sur :es données transitant entre une unité centrale (11) et uze unité de mémoire à disques (12) par l'intermédiaire d'un contrôleur de disques (13). Dans le contrôleur de disqt (13) le processeur (10) coopère avec une unité de commande (14) des opérations de détection et de correction d'erreurs. Le contrôleur de disques (13) est aussi en liais # avec les unités (11) et (12) par l'intermédiaire de bu; (15, 15') respectifs. Le rôle du processeur (10) dans le système informatique représenté sur la figure 1 se résume ainsi. Dans une phase d'écriture, les données (I) délivrées par l'unité centrale (11) sont appliquées sur le bus (15) pour être écrites dans l'unité de mémoire (12) et être entrées dans le processeur (10). Pendant cette phase, l'unité de commande (14) agit sur le processeur (10) pour inhiber sa sortie et élaborer les caractères de contrôle. A la fin de l'écriture des données dans l'unité de mémoire (12), l'unité de commande (14) valide la sortie des octets de contrôle, qui sont alors injectés dans le bus (15') pour être écrits dans l'unité de mémoire (12) à la suite des données qui viennent d'être écrites.En phase de lecture des données contenues dans l'unité de mémoire (12), les données sont appliquées sur le bus (15') pour être envoyées sur l'unité centrale (11) et sur l'entrée du processeur (10). Celui-ci a sa sortie inhibée par l'unité de commande (14) tandis qu'il procède à l'élaboration d'un signal d'erreur qu'il fournit à l'unité de commande (14). Si l'état du signal d'erreur est représentatif de données correctes, l'unité (14) peut procéder aux opérations d'écriture/lecture suivantes. En cas contraire, et après plusieurs tentatives de relecture, l'unité (14) déclenche dans le processeur (10) les fonctions de détection et de correction d'erreurs conformément à un processus tel que celui décrit ultérieurement en référence aux figures 9 4 12. La figure 2 illustre un exemple de réalisation d'un processeur de détection et de correction d'erreurs (10) conforme à l'invention. Les bornes d'entrée du processeur (10) sont placées à gauche en regardant la figure et les bornes de sortie sont à droite. Les données (I) sont entrées par octets 1(0:8) sur la borne d'entrée (IN) et sortent par octets sur la borne de sortie (OUT). En plus, on trouve cinq bornes d'entrée et quatre bornes de sortie reliées à l'unité de commande (14) de la figure 1.Les cinq bornes d'entrée sont respectivement prévues pour recevoir les signaux suivants : un signal d'horloge externe CP (Clock Pulse) ; un signal de test (TS) ; un signal d'initialisation générale MR (Master Reset) ; trois signaux de sélection de fonction C (0:3) ; et quatre signaux de sélection du chemin de données A (4:4). Les quatre bornes de sortie du processeur (10) autres que (OUT) fournissent les signaux suivants : les signaux MS et M6 ( "MATCH" ) utilisés pour déterminer la place d'une erreur détectée dans un champ de données ; un signal de détection d'erreur ER ; et un signal OD (Odd Length) de contrôle d'imparité de la longueur du champ de données mesurée en nombre de caractères de 16 bits. Le processeur (10) conforme à l'invention s'applique, de manière classique, sur des données (I) formées par une suite d'octets et opère sur des caractères de 16 bits. Par conséquent, le processeur inclut un convertisseur d'entrée (16) effectuant d'une manière classique le changement de format 8/16 bits et un convertisseur de sortie (16') effectuant la conversion 16/8 bits. Le convertisseur d'entrée (16) est un registre tampon de 8 bits mémorisant un octet des données (I) sur deux et monté en parallèle sur la voie directe pour appairer les octets mémorisés (BI) aux autres octets pour former ainsi une suite de caractères (I, BI) de 16 bits.Pour celà, il est commandé par le signal d'horloge ~CIB* produit de la manière décrite en référence à la figure 6A, et par le signal d'initialisation générale (MR). Le convertisseur de sortie (16') est un multiplexeur à deux entrées de 8 bits et commandé par un bit de sélection S3 explicité par la suite en référence à la figure 6B. D'autre part, le processeur (10) fait la détection et la correction d'erreurs selon un code produit Reed Solomon entrelacé et est du type comprenant au moins trois blocs de génération de cinq caractères de contrôle, 4 savoir un bloc de clé de parité incluant deux registres délivrant respectivement deux caractères de contrôle, un bloc simple à une matrice et un registre fournissant un caractère de contrôle, et un bloc à une matrice et deux registres produisant les deux autres caractères de contrôle. Le processeur est ainsi adapté à détecter et corriger des erreurs sur des enregistrements de longueur variable pouvant atteindre la longueur maximale de 262 140 octets. Le mode de réalisation du processeur (10) représenté sur la figure 2 comporte quatre blocs (B1-B4) pour la génération de six caractères de contrôle (Elle6) par six registres (R1-R6) associés 4 trois matrices. Il est préféré à ce dernier en ce qu'il garantit une couverture de correction de qualité supérieure. Dans l'ensemble illustré, les blocs (B1-B4) utilisent un code à trois polynômes, dont les coefficients générateurs sont a = (C081) H b = (2109) H c = (0999) H où H signifie que ces coefficients se réfèrent au système de numération hexadécimal. Le processeur (10) crée ainsi, associé à tout champ de données, six caractères de contrôle (soit douze octets) définis comme suit où N1 = E (N+l) 2 où [a-1], Lb ] , Ec ] sont des matrices construites à partir des coefficients a, b, c ; xi est le ième caractère du champ de données ; E désigne la partie entière de la division entre parenthèses ; et le signe (+) précédant un caractère contrôle est, comme dans tout corps de Galois, une loi d'addition modulo 2 correspondant à la fonction OU exclusif. Ce code détecte une erreur sur des enregistrements de 262 140 octets maximum et corrige une erreur comprise au plus sur deux caractères de 16 bits. Sachant qu'un bit en erreur crée un caractère en erreur, la correction se fait pour toute erreur simple égale ou inférieure à 17 bits, jusqu'à 32 bits maximum. Les six registres R1-R6 des quatres blocs (B1-B4) contiennent respectivement les six caractères de contrôle (E1-E6). Les blocs tBl) et (B2) contiennent respectivement les registres R1 et R2 et reçoivent tous les caractères du champ de données en les multipliant respectivement par [ a#1 ] et Eb ] . Le bloc (B3) contient les registres R3 et R4 et le bloc (B4) contient les registres R5 et R6. La mise en oeuvre des blocs (B3) et (B4) est représentative d'une structure entrelacée. L'entrelacement revient à diviser artificiellement le champ de données en deux sous-champs, ce qui permet de multiplier par deux la portée de l'enregistrement protégé et le nombre de caractères erronnés que l'on peut corriger.Dans de telles structures entrelacées, les caractères de rang impair et les caractères de rang pair sont respectivement combinés entre eux. Le bloc (B3) multiplie les caractères par les coefficients de la matrice Lc ] . Le quatrième bloc (B4) constitue une clé de parité et contient l'erreur éventuelle en fin de lecture. La structure des blocs (B1-B4) ainsi conçus est bien connue. Les caractères de 16 bits qui entrent dans les blocs (B1-B4) sont respectivement appliqués à une borne d'entrée de portes OU Exclusif (G1-G4). Dans le bloc (B1), les caractères de 16 bits (I,BI), sortant de la porte (G1) traversent successivement la matrice Ea -1 ] et le registre R1, dont la sortie (ri1) est rebouclée sur la seconde borne d'entrée de la porte (G1). De même, dans le bloc (B2), les caractères sortant de la porte (G2) traversent successivement la matrice Cbl et le registre R2, dont la sortie (R02) est rebouclée sur la seconde borne d'entrée de la porte (G2).Dans le bloc (B3), les caractères sortant de la porte (G3) traversent successivement la matrice Lc ] , le registre R3 pourvu de sa sortie (RO3), et le registre R4 dont la sortie (R04) est rebouclée sur la seconde borne d'entrée de la porte (G3). Enfin, dans le bloc (B4), les caractères sortant de la porte (G4) sont accessibles à la sortie (GO4) du bloc (B4) et sont appliqués successivement au registre R5 pourvu de sa sortie (ROS) et au registre R6, dont la sortie (R06) est rebouclée sur la seconde borne d'entrée de la porte (G4). Les sorties RO1-RO6 fournissent respectivement les caractères de contrôle E1-E6. La structure des registres (R1-R6) est bien connue. La figure 3 illustre de manière symbolique un tel registre, pourvu de ses bornes d'entrée et de sortie de 16 bits, d'une borne d'initialisation recevant le signal d'initialisation générale (MR) appliqué à rentrée du processeur (10), et d'une borne d'horloge recevant un signal #d'horloge (CL) produit de la manière décrite ultérieurement. D'une manière connue également, les registres Rl-R6appliqués aux entrées de détecteurs de zéro (ZD1-ZD6) d'un dispositif générateur (17) de signaux de détection de zéro (Z1-Z6) (STATUS en terminologie anglo-saxonne). La structure d'un détecteur de zéro ZD est illustrée schématiquement à titre d'exemple dans la figure 4. Selon cet exemple, les 16 bits de chaque caractère entrant dans un détecteur de zéro ZD sont partagés en huit groupes de deux bits appliqués sur huit portes NOR respectives (Yl), dont les sorties sont réparties en deux groupes connectés respectivement 4 deux portes NAND (T1) dont les sorties inversées par (VO) attaquent une troisième porte NAND (T'1) qui délivre le signal de détection de zéro Z. Les détecteurs de zéro (ZD1-ZD6) fournissent ainsi respectivement les signaux de détection de zéro (Z1-Z6). Les signaux (Z1-Z6) sont appliqués respectivement aux entrées d'une porte OU (19) qui délivre le signal d'erreur (ER) en sortie du processeur (10). Ainsi, le signal (ER) indique si 4 la fin d'une opération de lecture des données (I) puis des octets de contrôle (E1-E6), il y a eu une erreur dans le champ qui vient d'être lu. Lorsque le signal (ER) a la valeur logique 1, une erreur est présente et il convient de mettre alors en oeuvre la routine de correction décrite ultérieurement. De manière classique également, le caractère de contrôle ES sortant du registre R5 est comparé avec des caractères de contrôle prédéterminés, explicités par la suite, dans une porte OU Exclusif (G5), dont la sortie à 16 bits est appliquée sur un détecteur de zéro (ZD7) fournissant le signal (M5) de sortie du processeur. D'autre part, la sortie (G04) de la porte (G4) du bloc (B4) représentative de la sortie du registre R6 est appliquée à -un détecteur de zéro (ZD8) fournissant le signal (M6) de sortie du processeur (10). Les signaux (M5) et (M6) sont utilisés pendant la phase de correction pour déterminer la place de l'erreur dans le champ de données, comme indiqué ultérieurement. L'invention se distingue de la technique antérieure par le fait que les blocs (B1-B4) reçoivent leurs caractères d'entrée (I,BI) d'un bus de sélection de données (DSL) alimenté par un multiflexeur (MX) pourvu de huit bornes d'entrée de données, à savoir : une borne recevant les caractères d'entrée (I, BI) à 16 bits formés à partir des données d'entrée (I) à 8-bits présents sur la borne (IN) une borne d'entrée d'un signal de commande (CS), et six bornes recevant respectivement les caractères de contrôle (E1-E6). Les données présentes sur ces bornes d'entrée sont naturellement au format de 16 bits, comme celles circulant dans le bus (DSL). Le signal de commande (CS) inclut nécessairement les signaux de détection de zéro (Z1-Z6) et sa composition est exposée plus loin en référence à la figure 6D.Le multiplexeur (MX) est commandé par trois bits de sélection (50, Slr S2) produits de la manière décrite en référence à la figure 6B. Le bus (DSL) alimente aussi les deux bornes d'entrée à 8 bits du multiplexeur faisant office de convertisseur 16/8 bits (16') délivrant l'information de sortie à 8 bits sur la borne (OUT) en fonction d'un bit de sélection (53) indiqué à la figure 6B. La structure du multiplexeur (MX) est représentée sur la figure 5. Dans cet exemple, il se compose de sept multiplexeurs à deux entrées (0-1) de 16 bits et une sortie de 16 bits (mxl-mx7) et répartis en trois groupes respectivement commandés par les bits de sélection (S0,S1 et 52). Dans le groupe d'entrée sous contrôle de SOI les bornes (0-1) du multiplexeur mxl reçoivent respectivement les caractères d'entrée (I, BI) et le signal de commande (CS) et les multiplexeurs mx2, mx3 et mx4 se repartissent les six caractères de contrôle E1-E6. Plus précisément, mx4 reçoit en (1) le caractère El et en (0) le caractère E2, mx3 reçoit en (0) le caractère E3 et en (1) le caractère E4, et mx2 reçoit en (0) le caractère E5 et en (1) le caractère E6.Les multiplexeurs mx5 et mx6 sont pilotés par le bit de sélection (S1) et reçoivent respectivement sur leurs bornes (0-1) les sorties des multiplexeurs mxl, mx2 et mx3, mx4. Le multiplexeur de sortie mx7 est piloté par le bit de sélection (52), il reçoit respectivement sur ses bornes (0-1) les sorties des multiplexeurs mx5 et mx6 et alimente ainsi le bus DSL. Le processeur (10) représenté sur la figure 2 contient enfin un bloc de commande (20) dont un exemple de réalisation va maintenant être décrit en détail en référence aux figures 6A, 6B, 6C et 6D. Dans ces figures, les bornes d'entrée et de sortie du bloc de commande (20) sont représentées comme sur la figure 2 par un petit cercle et son centre. Les signaux internes sont simplement indiqués par des flèches mises en bout de fils de connexion de la façon indiquant leur sens de transmission pour servir de liaison entre ces figures. De même qu'à la figure 2, les bornes d'entrée du bloc de commande 20 sont placées à gauche en regardant les figures, tandis que les bornes de sortie sont placées à droite. Sur la figure 6A, on retrouve les signaux d'entrée du processeur (10) représenté sur la figure 2, à savoir les signaux CP, MR, TS, C (0:3), soit, (C0, Cl, C2).Les signaux A (4:4), soit (A4, AS, A6, A7), sont appliqués sur les bornes d'entrée représentées sur la figure 6B. En outre, les signaux de détection de zéro (zl-z6) sont appliqués sur les bornes représentées sur la figure 6D. En sortie du bloc (20), on trouve les bits de sélection (80, S1, S2 et S3) sur la figure 6B, les quatre signaux d'horloge (CL1, CL2, CL34 et CL56) pour les registres (R1-R6) tels qu'illustrés 4 la figure 3 et la sortie (OD) sur la figure 6C, le signal (CIB*) -figure 6A- pour le registre tampon (16) représenté sur la figure 2, et le signal de commande (CS) sur la figure 6D. Sur la figure 6A, une première bascule D (21) a son entrée d'horloge connectée directement à la borne d'entrée du signal d'horloge externe (CP), son entrée de positionnement (entrée "set") connectée à une borne du UN logique (1L) formé à l'intérieur du processeur (10), son entrée de remise à zéro (entrée "reset") reliée à la borne d'entrée du signal d'initialisation générale (MR) 4 travers une porte NOR (Y2) recevant comme seconde entrée le signal de test (TS), et son entrée D rebouclée sur sa sortie inversée (2B*). La sortie directe de la bascule (21) fournit le signal d'horloge de caractères (2B). Le signal de sortie inversée (2B*) et le signal d'horloge externe (CP) inversé en (V1) sont appliqués sur une porte NAND (T2) délivrant le signal (CIB*).Le signal de sortie directe (2B) de la bascule (21) et le signal d'horloge externe inversé sont appliqués avec le bit d'entrée CO sur une porte NAND (T3) fournissant un signal d'horloge (CRCL*) d'un compteur (CR) à trois bits. Le compteur (CR) est formé de manière classique de trois bascules D (22, 23, 24), dont les entrées d'horloge reçoivent le signal (CRCL*), les entrées de positionnement reçoivent le signal (1L) et les entrées de remise à zéro sont connectées à la borne du signal d'entrée MR. Les sorties directes des bascules (22, 23, 24) délivrent trois bits de compteur (CR0, CR1, CR2). L'interconnexion des trois bascules est bien connue.La sortie inversée de la bascule (22) est appliquée à une entrée d'une porte OU exclusif (G6), dont la sortie est connectée sur l'entrée (D) de la bascule, Les sorties directes CR1 et CR2 des bascules (23) et (24) sont appliquées aux deux entrées d'une porte NAND (T4) dont la sortie est connectée à la seconde entrée de la porte (G6). Les signaux CR1 et CR2 sont aussi appliqués à une porte OU exclusif (G7) dont la sortie est mise sur l'entrée (D) de la bascule (23). L'entrée (D) de la troisième bascule (24) est simplement constituée par rebouclage de son signal de sortie inversée #(CR2*). A partir du compteur (CR) sont produits des signaux de validation KO, Kl et K23 des signaux d'horloge CL1, CL2, CL34 et CL56 pour les registres R1-R6. Les sorties inversées des trois bascules du compteur (CR) sont appliquées sur une porte ET (U1). Les sorties inversées des bascules (22) et (23)et et la sortie directe (CR2) de la bascule (24) forment les entrées d'une seconde porte ET (U2). La sortie inversée de la bascule (22) et la sortie directe (CR1) de la bascule (23) forment les entrées d'une porte ET (U3). Les sorties des portes (Ul, U2, U3) délivrent respectivement les signaux de validation (KO, K1, K23).Ainsi, quand le compteur (CR) se positionne sur la valeur 0, (CR0 = CR1 = CR2 = 0), KO = 1 : sur la valeur 1, K1 = 1 ; et sur la valeur 2 ou 3, K23 = 1. En ce qui concerne le traitement des signaux de sélection de fonction (COI Cl et C2), le signal (CO) inversé par (V2), ainsi que le signal (C1) inversé par (V3) forment les entrées d'une porte ET (U4) qui fournit le signal de calcul (COMP) "COMPUTE". L'entrée (C2) inversée par (V4) et l'entrée (C1) sont appliquées sur une porte ET (U5) délivrant le signal de comparaison et de visualisation (DC*) "DISPLAY/COMPARE". Les entrées (C1) et (C2) sont appliquées sur une porte ET (U6) délivrant le signal de correction (COR).L'entrée (C1) inversée par (V3) et les entrées (C0) et (C2) sont appliquées sur une porte ET (U7) formant le signal de lecture des caractères de contrôle (RCB) "Read Check Byte" qui, appliqué avec le signal d'horloge de caractère (2B) sur une porte ET (U8), forme le signal (RCB2B) de lecture des caractères de contrôle au rythme de 2B. La figure 6 B représente le dispositif de génération (25) des quatre bits de sélection (sO-S3), (S0, S1, et S2) étant destinés au multiplexeur (MX) de la figure 2 et le bit (S3) étant destiné au multiplexeur de sortie (16') de la figure 2. Un multiplexeur (26) reçoit de quatre bornes d'entrée du processeur (10) les quatre bit#s (A4-A7) du signal de sélection du chemin de données (A) indiqué à la figure 2. Sur quatre autres bornes d'entrée internes, il reçoit le signal d'horloge de caractère (2B) et les trois bits de compteur (CR0, CR1 et CR2). Le bit de sélection du multiplexeur (26) est formé par le signal (DC*).Les quatre sorties de ce multiplexeur sont appliquées respectivement sur une borne d'entrée de quatre portes NAND (T5-T8) recevant sur leur autre entrée un signal commun sortant d'une porte ET (U9) et désigné comme signal (FZS) de forçage à zéro ou#d'état des registres ( "Status" ). La porte (U9) reçoit les signaux (COMP, RCB et COR) respectivement inversés par V5, V6 et V7. Les sorties des portes (T5, T6, T8) représentent respectivement les bits de sélection (80, Slr S3). Le bit de sélection (52) est prélevé de la sortie d'une porte OU exclusif (G8) recevant la sortie de la porte (T7) et le signal de correction (COR). La figure 6C représente de manière schématique le dispositif de génération (27) des quatre signaux d'horloge : pour le registre R1, CL2 pour le registre R2, CL34 pour les registres R3 et R4, et CL56 pour les registres R5 et R6. Ce dispositif de génération est composé de seize portes NAND (T9-T24) et de trois inverseurs V8, V9 et V10. Le signal interne (COMP) entre sur (T9) avec le signal d'horloge de caractère 2B également appliqué sur la porte (T16). Le signal RCB2B est appliqué sur les portes T101 T12 et T14 et est inversé par V8 pour application sur T20. Les signaux KO, K1 et K2 sont respectivement appliqués sur T10, T12 et T14. Le signal de correction (COR) est appliqué sur les portes Tll, T13 et T15. Les bits A4, AS et A6 du signal (A) extérieur au processeur (10) sont respectivement appliqués sur les portes Tll, T13 et T15. La porte T16 reçoit, en plus du signal 2B, lé bit de commande CO, le bit C2 inversé par V9 et le bit de compteur CR0*. La sortie de la porte T9 est entrée sur les portes T17, T18, T19 et T20. Les sorties des portes T10 et Tll sont appliquées sur la porte T17, celles des portes T12 et T13 sur la porte T18 et celles des portes T14 et T15 sur la porte T19. La porte T20 reçoit en plus la sortie de la porte T16. Les sorties des portes( T17-T20) sont respectivement appliquées sur les portes (T21-T24) qui reçoivent d'autre part en commun le signal d'horloge externe (CP) inversé par V10 et qui délivrent respectivement les bits d'horloge de registre CL1, CL2, CL34 et CL56. Le dispositif (27) tel que décrit est de conception classique. La figure 6C représente aussi le dispositif de génération (28) du signal (OD). Ce dispositif est formé par une bascule D, dont la borne d'entrée (D) reçoit le signal d'horloge de caractère (2B), la borne d'horloge reçoit le signal d'horloge (CL56) des registres R5 et R6, la borne de positionnement reçoit le signal (1L), la borne de remise à zéro reçoit le signal d'initialisation générale (MR), et la sortie directe fournit le signal (OD). Enfin, la figure 6D illustre un exemple de formation du signal de commande (CS). Celui-ci est un signal complexe, dont les composantes sont appliquées sur la borne de sortie, représentée par un simple trait (29), du signal de commande (CS) au niveau du bloc de commande (20) représenté sur la figure 2. Les composantes significatives du signal de commande sont constituées dans cet exemple par dix signaux STFZ (détection de zéro ou forçage à zéro) rangés dans l'ordre STFZ (0:6), puis STFZ (12:4). Ces signaux sont les sorties de portes NOR respectives (Y3-Y12) dont une de leurs deux entrées reçoit le signal de correction COR pour forcer à zéro le bus DSL pendant la fonction de correction.Les autres entrées de ces portes reçoivent respectivement les signaux de détection de zéro Z (1:6) issus des détecteurs de zéro respectifs ZD1-ZD6 représentés sur la figure 2 et inversés par des inverseurs respectifs (Vll-V16), les valeurs inverses du compteur CR (0:3)*, et la valeur inverse 2B* du signal d'horloge de caractère 2. L'ensemble dessignaux STFZ est complété avec des zéro logiques de façon à obtenir le signal de commande de 16 bits (CS) composé de STFZ (0:6), six fois le zéro logique OL et STFZ (12:4). Le signal de commande (CS) inclut nécessairement les signaux de détection de zéro (Z1-Z6). Le fonctionnement du processeur (10) représenté sur les figures 2 et 6A-6D va maintenant être présenté. D'une manière générale, ce fonctionnement est déterminé par le multiplexeur (MX) et, par conséquent, par les trois bits de sélection (S0, Sl et S2) qui le commandent. Cette commande se fait fondamentalement de la manière suivante. Pendant la phase d'écriture des données (I), ils distribuent sur le bus (DSL) les caractères (I, BI) l'un après l'autre. Le quatrième bit de sélection S3 commande le convertisseur de sortie (16') pendant la phase d'écriture des données pour sélectionner dans chaque caractère l'octet de poids fort et l'octet de poids faible pour délivrer les caractères de contrôle E1-E6 et fournir en sortie (OUT) les octets de contrôle correspondants ; pendant la phase de lecture des octets de contrôle, ils envoient sur les registres (R1-R6) les caractères de contrôle (#E1-E6) correspondant à ceux que ces registres ont produit pendant la phase d'écriture ; et lors de la fonction de correction ils sélectionnent l'un des blocs (B1-B4) et lors de la fonction de comparaison ils comparent l'un des registres avec un registre prédéterminé de ceux-ci (R1-R6). Le registre prédéterminé est l'un des registres (R5, R6) du bloc de clé de parité (B4). Pour ce faire, les bits de sélection (50, Slr S2 et S3) sont fournis par le multiplexeur (26) qui prend en compte selon l'état du signal de sélection et, de comparaison (DC*), soit les bits (CR0, CR1 et CR2) du compteur (CR) et le signal d'horloge de caractère (2B) pendant la- phase d'écriture des caractères de contrôle, soit les signaux de sélection du chemin de données A (4:4) pendant la fonction de correction ou pendant la fonction de comparaison qui sert aussi de fonction de visualisation, de façon 4 visualiser l'un quelconque des caractères de contrôle (E1-E6). Avantageusement, les signaux A (4::4) seront# conçus pour que les bits de sélection (S0, S1 et 52) permettent aussi la visualisation des signaux de détection de zéro (Z1-Z6), des caractères d'entrée (I, BI), des bits (CRO-CR2) du compteur (CR) et du signal d'horloge de caractère (2B). Le fonctionnement détaillé qui va être présenté ci-après du processeur (10) montrera qu'il permet d'obtenir tous ces avantages. Un autre avantage de l'emploi du multiplexeur (MX) et de son bus (DSL) est de pouvoir fournir au bloc (B4) les caractères de contrôle des autres registres (Rl-R4), sans circuit supplémentaire. En effet, il ressort des formules des caractères de contrôle (E5) et (E6) que l'ensemble de ces caractères fait intervenir les autres caractères. Par conséquent, grâce au multiplexeur (MX) et à son bus (DSL), l'envoi des caractères de contrôle (E1-E4) pendant la phase d'écriture des caractères de contrôle peut se faire simultanément sur le multiplexeur 16' et sur les registres R5, R6. D'autre palt,le signal de test TS agit avantageusement sur les trois matrices pour les inhiber, de façon à pouvoir forcer n'i-iporte quel bit de n'importe quel registre 4 la valeur 0 oit 1 désirée. Un exemple, de mode de fonctionnement du processeur (10) conforme . l'invention va maintenant être donné, en référence au tableau de la figure 6 qui fait partie intégrante du texte de la description. Les valeurs des signaux soit exprimées en numération hexadécimale. Pendant 1 écriture des données, on a C (0:3) = O et A (4:4) = O. Les caractères sont envoyés sur les quatre blocs (B1-B4). Chaque registre contient 4 tout instant le résultat du champ de données qu'il a reçu. A la fin' de l'écriture du champ de données, on peut ainsi immédiatement écrire les caractères de contrôle sous la condition C (0:3) = 4 et A (4:4) = O. Les caractères de contrôle sortent octet par octet en ordre croissant de El à E6 si le signal (OD) = 0. Pendant la lecture des données, sous la condition C (0:3) = 1 et A (4:4) = 0, chaque bloc reçoit tous les caractères comme pendant l'écriture des données. Pendant la lecture des octets de contrôle, sous la condition C (0:3) = 5 et A (4:4) = 0, chacun des trois premiers blocs ne reçoit que le caractère qu'il a délivre lors de l'écriture : le registre R1 reçoit le premier caractère de contrôle El, R2 reçoit E2, et la paire des registres R3 et R4 reçoit E3 et E4. Le quatrième bloc reçoit les six caractères du champ (E1-E6). La lecture des octets de contrôle doit se terminer avec le signal ER = 0, sinon il y a une erreur dans le champ de données. La fonction de correction est donc déclenchée. La fonction de correction, sous la condition C (0:3) = 3, débute donc si le signal ER = 1 en fin de lecture. Elle permet d'envoyer des coups d'horloge sur l'un quelconque des trois blocs (B1#-B3), au registre R1 pour A (4:4) = 8, à R2 pour A (4:4) -= 4 et aux registres R3 et R4 pour A (4:4) = 2. Le quatrième bloc qui contient l'erreur reste inchangé lors de la fonction de correction. La fonction de comparaison et la fonction de visualisation se correspondent,# puisqu'elles sont faites sous la condition C (0:3) = 2. La comparaison permet de comparer le contenu de n'importe quel registre avec les registres R5 et R6 (voir au tableau de la figure 6 les commandes pour les valeurs appropriées de A [ 4:43). Le résultat est donné par les signaux M5 et M6 de la figure 2. Ainsi, en alternant les fonctions de comparaison et de correction, on peut déterminer la position exacte de l'erreur dans le champ de données, comme cela sera détaillé plus tard. Quant à la visualisation offerte par l'exemple de réalisation présentement décrit du processeur (10) conforme à l'invention, elle permet de connaitre le contenu, non seulement de l'un quelconque des caractères de contrôle (E1-E6), mais aussi le contenu des signaux de détection de zéro (Z1-Z6), des données d'entrée I (0:8), des données d'entrée BI (0:8) stockées en (16), du compteur (CR) qui permet d'extraire les caractères de contrôle pendant l'écriture et de les distribuer pendant la lecture, et de la bascule (21) qui permet de passer de l'horloge externe (CP) au rythme des octets à l'horloge interne (2B) au rythme des caractères. On a ainsi la possibilité d'observer sur les bornes de sortie l'état de toutes les bascules et des détecteurs de zéro lors du test du processeur (10) en agissant sur la borne (TS). Les figures 9 à 16 se rapportent à un exemple d'organigramme de correction mis en oeuvre par le processeur (10) qui vient d'être décrit. Avant la description de ces figures, quelques remarques préliminaires doivent être faites. D'une part, on dispose dans le processeur (10) de quatre blocs (B1-B4) indépendants pour la génération de six caractères de contrôle (E1-E6). Les deux derniers blocs (B3 et B4) sont entrelacés et à tout instant les registres R3 et R5 d'une part et les registres R4 et R6 d'autre part ont reçu les mêmes caractères (I, BI). On peut donc directement comparer le contenu de ces registres. Par contre, les deux premiers registres (R1 et R2) reçoivent tous les caractères alors que les registres (R5 et R6) reçoivent un caractère sur deux. Il est donc nécessaire de calculer une référence pour le traitement des deux premiers registres. D'autre part, la description qui suit fait intervenir des symboles pour désigner les variables et paramètres suivants. EP : configuration d'erreur ( "Error Pattern" ). D1 : distance calculée 4 partir du registre R1. D34 : distance calculée à partir des registres R3 et R4. D : distance réelle de l'erreur dans le champ calculée à partir de D34 et D1. DEB : valeur de début pour le calcul de N1. Ni : valeur du compteur d'horloge appliquée sur le registre Ri. Nil : valeur mémorisée de Ni. Réf.Ei : référence pour le caractère de contrôle Ei avec i = 1 ou 2. Réf.Ei,Rj : comparaison de Réf.Ei par rapport au regis tre Rj ST : octet de détermination du type d'erreur "STATUS") égal à Z1, Z2, Z4, Z3, Z6, ZS, OL, OL. Un exemple d'algorithme de correction est illustré schématiquement à la figure 8. En premier lieu, la valeur de l'octet ST permet de différencier une erreur dans les données ou dans les caractères de contrôle. En fonction du résultat, cinq cas peuvent se présenter. Si une erreur est dans les données du registre R6 seul, on compare R6 avec R4 et on calcule les valeurs de N4, des références de El et de E2, de la configuration d'erreur (EP) et de la distance D34. Si l'erreur est dans les données de R5 seulement, on compare R5 avec R3 et on calcule les valeurs de N3, des références de El et de E2, de la configuration EP et de la distance D34.Si l'erreur est dans les données des registres R5 et R6 du bloc B4, on compare R5 avec R3 et R6 avec R4 et on calcule les valeurs de N3 et N4, des références de El et de E2, de la configuration EP et de la distance D34. En dehors de ces cas se présentent le cas où l'erreur est dans les caractères de contrôle ou à cheval entre les données et les caractères de contrôle et le cas où l'erreur est incorrigible. Le traitement des trois premiers cas peut du reste aboutir 4 une erreur incorrigible. Sinon, on compare la référence de El avec R1 et la référence de E2 avec R2 et on calcule N1, N2 et la distance D1. Ce traitement aboutit au calcul de la distance D à partir des distances D34 et Dl. Les figures 9 à 16 représentent de manière conventionnelle un exemple d'organigramme de correction d'erreur. Par conséquent, les blocs rectangulaires correspondent à une assignation d'une variable à une valeur donnée, tandis que les blocs en forme de losange correspondent à des opérations de test. D'autres part, les chiffres des parties terminales permettent de faire la liaison entre les différentes parties de l'organigramme constitué par l'ensemble des figures 9 à 16. Cet organigramme se déroule en quatre phases successives. En référence à la figure 9 on analyse d'abord la valeur des octets ST et on différencie les trois cas od, respectivement, une erreur se présente sur un caractère, sur deux caractères, ou dans les caractères de contrôle. On distingue ainsi les valeurs suivantes de l'octet ST ST = 28 erreur dans R5 et non dans R6 ST = 14 erreur dans R6 et non dans RS ST = 00 erreur dans R5 et R6. Ces trois cas renvoient sur trois routines de traitement distinctes, correspondant aux étapes 1, 2 et 3 représentés sur les figures 10, 11 et 12. On examine par la suite Si ST = 78, B4, E4, D4, F8, F4, 30, CO, F0, AO, DO, 20. A ce stade, l'erreur est dans les caractères de contrôle ou est incorrigible.Le traitement des erreurs dans les caractères de contrôle peut être fait de la manière suivante ST = 78 et R1 = R5 [a-1] Erreur dans R1 R1 # RS [a-1] Erreur incorrigible ST = B4 et R2 = R6 E b 3 Erreur dans R2 R2 # R6 E b 3 Erreur incorrigible ST = E4 et R3 = R5 E c ] Erreur dans R3 R3 i R5 [ c 3 Erreur incorrigible ST = D4 et R4 = R6 E c 3 Erreur dans R4 R4 i R6 E c 3 Erreur incorrigible ST = F8 Erreur dans R5 ST = F4 Erreur dans R6 ST = 30 et R1 = R5 [a-1] Erreur dans R1 et R2 et R2 = R6 E b ] autres Erreur incorrigible ST = CO et R3 = R5 [ c ] Erreur dans R3 et R4 et R4 = R6 [ c ] autres Erreur incorrigible ST = F0 Erreur dans R5 et R6 ST = A0 et R3 = R5 [ c ] Erreur dans R2 et R3 et R2 = R6 [ b ] autres Erreur incorrigible ST = DO et R4 = R6 E c ] Erreur dans R5 et R4 autres Erreur incorrigible ST = 20 et R1 = R5 (a-1 ] Erreur à cheval EP = R5 D1 = D34 = D = 1 La deuxième phase de l'organigramme concerne le traitement des caractères de contrôle E3 et E4. Celui-ci est différent selon que l'erreur est sur un caractère ou sur deux caractères. On a vu à la figure 9 qu'une erreur est sur un caractère si ST = 14 ou ST = 28.On sait alors que l'erreur n'affecte que le registre R5 ou R6. On compare donc la valeur de ce registre à son équivalent respectif R3 ou R4. La figure 10 se rapporte au registre R3 et la figure 11 au registre R4. Pour la comparaison précitée, on sélectionne le registre R3 et le registre R4 avec la condition C(0:3) = 2 et A(4:4) = 4 et on teste le résultat de la comparaison en examinant les signaux respectifs MS ou M6 qui sortent du processeur (10). Si M5 (ou M6) = O (inégalité), on incrémente le compteur d'horloge M3 (ou M4) et on se place sur le caractère suivant en donnant deux coups d'horloge sur les registres R3 et R4, avec C(0:3) = 3 et A(4:4) = 2.Si au bout de 255 comparaisons, c'est-à-dire au delà de la période du polynome créé à partir de la matrice E c ] , l'égalité n'est pas atteinte, il y a alors plus d'une erreur dans le champ de données et on déclare l'erreur incorrigible. Une erreur sur deux caractères entraine le déroulement du processus représenté sur la figure 12. Le raisonnement général est strictement identique à celui qui vient d'être examiné, sauf que l'on mémorise le nombre de coups d'horloge (N3 et N4) et que l'on interroge succesivement M5 et M6. Plus précisément, en suivant le processus de la figure 12, on commence par les assignations suivantes N31 = 0, N4I = 0, N3 = O et N4 = 0. On commence par sélectionner le registre R3 et on vérifie si la valeur de N3 = 255. Si oui, l'erreur est incorrigible. Sinon, on voit si M6 = 1. Sinon, on incrémente N3 et on sélectionne R4. Si oui, N3I = N3 et on sélectionne R4. On compare alors la valeur de N4 avec 255. Si oui, l'erreur est incorrigible, sinon on vérifie si M5 =1.Sinon, on incrémente N4 et on vérifie si N3I = 0. Si oui, on dit que N4 I = N4 et on compare si N31 = 0. Si oui, on se place sur le caractère suivant en donnant deux coups d'horloge sur les registres R3 et R4. Si non, DEB = 255, ce qui conduit au processus- représenté sur la figure 13 qui va maintenant être examiné. Une fois traités les caractères de contrôle E3 et E4 par rapport à ES et E6, on traite les caractères de contrôle El et E2. I1 faut pour cela calculer les références respectives Réf.El et Réf.E2. En effet, les caractères de contrôle El et E2 recouvrent tous les caractères du champ de données, alors que les caractères de contrôle ES et E6 reçoivent un caractère sur deux. Si l'erreur est sur un caractère, il n'y a pas de problème puisqu'alors ES et E6 portent seuls l'erreur. On a- donc ST = 28 Réf.El = R5 Réf.E2 = R5 ST = 14 Réf.El = R6 Réf.E2 = R6 Si l'erreur est sur deux caractères, on doit alors tenir compte de la longueur du champ de données pour établir la correspondance entre les registres R5 et R6 et la réalité logique de ES et de E6. On désigne alors par (R3), (R4), (R5), et (R6) les valeurs figurant en fin de lecture dans les registres physiques R3, R4, R5 et R6. Les valeurs logiques des caractères de contrôle E3, E4, E5, et E6 sont bien sûr définies par le code tel que formulé au début du texte. Les différents cas de figure résultant se présentent comme suit. OD Dernier Référence caractère I O | 0 (R3) = E4 Ref.El = ES [a-1]+E6 2:-2 2n-1 2n (R5) = E6 = (R6) [a-1]+(R5) (R6) = E5 E.P = (R6), (R5) O 0 (R3) = E4 Ref.El = E6 [a-1]+E5 2n-2 2n-1 2n (R5) = E6 =(R5) [a-1]+(R6) (R6) = ES E.P = (R5, R6 1 | J | 1(R3) = E3 Ref.El = E6 [a-1]+E5 2n-1 2n 2n+l (R5) = ES = (R6) (a-1 ] +(R5) (R6) - E6 E.P = (R6), (RS) 1 | | 1 (R3) = E3 Ref.El = ES [a-1]+E6 2n-1 2n 2n+1 (R5) = ES = (R5) [a-1]+R6 (R6) = E6 E.P = (R5), (R6) Lorsqu'une erreur est du type 2n-1, 2n, c'est-à-dire lorsqu'elle arrive sur un caractère de rang impair puis sur un caractère de rang pair, elle correspond à une réalité logique ES (a-1) + E6, puisque le caractère de contrôle El a reçu d'abord la partie de l'erreur contenue dans un caractère de rang impair puis la partie de l'erreur contenue dans un caractère de rang pair. En fonction de la longueur du champ de données déterminé par la parité ou l'imparité du nombre de caractères, on sait dans quel registre physique on trouve le caractère de con trôle logique. Puisque les registres physique R3 et R5 reçoivent le dernier caractère, on a (R5) = E6 et (R3) = E4 si le dernier caractère est de rang pair. Si le dernier de caractère est de rang impair, on a le symétrique, soit (R5) = E5... Le calcul des références de El et de E2 est nécessairement fait par logiciel et peut être représenté par l'organigramme sur la~ figure 13. Ainsi, partant de l'organigramme de la figure 12 indiquant le début de l'opération ne 5 après assignation DEB = 257 lorsque N31 n'est pas égal a zéro, on commence (figure 13) par comparer les valeurs de N31 et N4I. Si elles sont égales, on calcule les références de El et de E2 selon les formules Réf.El = R6 (a-1 ] + R5 et Réf.E2 = R6 (b) + R5, puis on détermine la configuration d'erreur relativement à R6 et R5 et on calcule la distance D34 = 2 x (254 - N3). La fin de cette opération conduit à l'étape n0 4 de la figure 14. Si on contraire N3I est différent de N4I, on vérifie si N31 = N4I-1. Sinon, l'erreur est incorrigible. Si oui, on calcule les références de El et dé E2 en employant les formules Réf.El = R5 Ca-ll + R6 et Réf.E2 = R5 Cbl + R6, on détermine la configuration d'erreur EP relativement à R5 et R6 et on- calcule la distance D34 selon la formule D34 = 2 x (254-N4) + 1. La fin de cette opération conduit à l'étape n0 4 représentée sur la figure 14. On a-rive ainsi à la troisième phase de l'organigramme, qui lorte sur le traitement des caractères de contrôle El et E2. Les processus de traitement des caractères de contrôle El et E2 sont respectivement représentés sur les figues 14 et 15. Ces processus sont identiques à ceux décrits précédemment. Pour celui de la figure 14, on donne à N1 la valeur zéro et l'on compare la référence de El avec R1. L'égalité conduit à l'étape n0 6 représentée sur la figure 15. Sinon, sachant que la période de polynome créant les caractères de contrôle El et E2 est de 257, on s'interroge jusqu'à cette valeur en comparant la référence de El avec R1. Ainsi, si Ni = 257, l'erreur est déclarée incorrigible.Si au contraire la comparaison n'est pas bonne, on incrémente la valeur de N1 et on donne un coup d'horloge sur R1 puis on se replace au début du processus. L'étape ne 6 illustrée à la figure 15 se rapporte à R2 et N2 de la même façon que l'étape n0 4 par rapport à El et N1. Ainsi, on donne à N2 la valeur zéro et l'on compare la référence de E2 par rapport à R2. L'égalité conduit à voir si N1 = N2, c'est-4-dire si les compteurs d'horloge sur les caractères de contrôle El et E2 correspondent. Si oui, on calcule la distance de l'erreur D en passant à l'étape ne 7 représentée sur la figure 16. Sinon, l'erreur est déclarée incorrigible. D'autre part, si la comparaison de la référence de E2 par rapport à R2 n'est pas bonne en s'interrogeant jusqu'à la valeur de N2 = 257, on incrémente N2 et on donne un coup d'horloge sur R2 puis on se replace au début du processus. Si elle s'avère bonne, l'erreur est déclarée incorrigible. Enfin, la quatrième et dernière phase de l'organigramme de correction porte sur le calcul de la distance D où se situe l'erreur à partir de D1 et D 34. Ce calcul correspond à l'étape n0 7 de l'organigramme représenté sur la figure 16. Ainsi, on commence par calculer la distance D1, calculée à partir du registre R1, par la formule D1 = DEB - N1. Dès lors, on a D = (32.640 D1 - 32.639 D34) modulo (131.070). De la sorte, la distance D est calculée en caractères de deux octets et se compte à partir du dernier caractère des données. Un processeur conforme à l'invention offre ainsi l'avantage de pouvoir être intégré dans une puce semiconductrice tout en conservant les performances d'un processeur classique en circuits imprimés du même type. REVENDICATIONS 1. Processeur de détection et de correction d'erreurs sur des données (I) selon un code produit Reed Solomon entrelacé opérant sur des caractères de deux octets (I, BI), du type comprenant au moins trois blocs (B2, B3, B4) de génération de cinq caractères de contrôle (E2-E6) par cinq registres (R2-R6) associés à deux matrices (b, c), et un dispositif générateur de signaux de détection de zéro (Z2-Z6), caractérisé en ce qu'il comporte un multiplexeur (MX) ayant un bus de sortie (DSL) desservant les trois blocs, une borne d'entrée des caractères (I, BI), au moins cinq bornes d'entrée correspondant aux caractères de contrôle (E2-E6), une borne d'entrée d'un signal de commande (CS) incluant les signaux de détection de zéro (Z2-Z6), et trois bits de sélection (50, S1, S2) qui, pendant la phase d'écriture des données, distribuent sur le bus (DSL) les caractères l'un après l'autre et pendant la phase de lecture des caractères de contrôle, envoient sur les registres (R2-R6) les caractères de contrôle correspondant à ceux qu'ils ont produits pendant la phase d'écriture et qui, pendant les fonctions de correction et de comparaison, respectivement sélectionnent l'un des blocs et comparent l'un des registres avec un registre prédéterminé de ceux-ci. 2. Processeur selon la revendication 1, caractérisé en ce que ledit registre prédéterminé est l'un des registres (R5, R6) du bloc de clé de parité (B4) desdits blocs. 3. Processeur selon la revendication 1 ou 2, du type opérant sur des données d'entrée (I) de 8 bits et incluant un convertisseur d'entrée 8/16 bits (16) et un convertisseur de sortie 16/8 bits (16'), caractérisé en ce qu'un quatrième bit de sélection (S3) commande le convertisseur de sortie (16') pendant la phase d'écriture des données pour sélectionner dans chaque caractère (I, BI) l'octet de poids fort et l'octet de poids faible pour délivrer en sortie (OUT) des octets de contrôle à partir des caractères de contrôle (E2-E6). 4. Processeur selon l'une des revendications 1 à 3, caractérisé en ce que les bits de sélection sont fournis par un second multiplexeur (26) qui prend en compte, selon l'état d'un signal de sélection (DC*), soit les bits (CRO, CR1, CR2) d'un compteur (CR) et la valeur d'un signal d'horloge de caractère (2B) pendant la phase d'écriture des caractères de contrôle, soit des signaux de sélection du chemin de données (A (4:4)) pendant la fonction de correction ou pendant la fonction de comparaison qui sert aussi de fonction de visualisation, de façon à visualiser l'un quelconque des caractères de contrôle (E2-E6). 5-. Processeur selon la revendication 4, caractérisé en ce que les bits de sélection (50, Slr S2) permettent aussi la visualisation des signaux de détection de zéro (Z1-Z6), des caractères de données (I, BI), des bits (CR01 CR1, CR2) du compteur (CR) et d'un signal d'horloge de caractère (2B). 6. Processeur selon la revendication 4 ou 5, caractérisé en ce que le signal de sélection (Dc*) du second multiplexeur est issu d'une porte NAND recevant deux signaux de sélection de fonction (Cl, C2). 7. Processeur selon l'une des revendications 1 à 6, du type selon lequel l'enseit#1le des caractères de contrôle (E5, E6) délivrés par les leux registres (R5, R6) du bloc de clé de parité (B4) des lits blocs incluent les autres caractères de contrôle, carletérisé en ce que le bus (DSL fournit au bloc (B4) lesdits (B4)autres caractères de contrôle pendant la phase d'écriture des caractères -de contrôle. 8. Processeur selon l'un des revendications 1 à 7, caractérisé en ce qu'il reçoit un signal de test (TS) agissant sur l'entrée de remise à zéro de la bascule (21) génératrice du signal d'horloge de caractère (2B). 9. Processeur selon la revendication 8, caractérisé en ce qu'il comporte un dispositif de test incluant une porte NAND (Y2) recevant le signal de test (TS) et un signal d'initialisation générale (MR). 10. Processeur selon la revendication 8 ou 9, caractérisé en ce que le signal de test (TS) agit sur au moins les deux matrices (b, c > précitées pour les inhiber. 11. Processeur selon d'une des revendications 1 à 10, caractérisé en ce qu'il comporte un dispositif (28) de mesure de l'imparité de la longueur, mesurée en caractères, du champ de données.