Brevet FR2722897A1 — publié le 19960126

La présente invention concerne un micro-or- dinateur qui peut exécuter des opérations CRC (contrôle par redondance cyclique), qu'on utilise dans le contrôle des er- reurs de données de transmission, etc., et qui peut produire des codes CRC pour telles opérations CRC. Les microprocesseurs classiques produisent et contrôlent des codes CRC de données de transmission en utilisant un matériel de production et de contrôle de codes CRC spécialisé ou en employant un circuit arithmétique exis- tant à l'intérieur d'une unité logique et arithmétique (désignée ci-après par "ULA") en conjonction avec un logi- ciel de production et de contrôle de code CRC qu'on a formé en combinant des ordres existants qui correspondent à chacun des circuits arithmétiques. Cependant, étant donné qu'un bloc de cir- cuits fonctionnels pour produire et contrôler les codes CRC, séparément du bloc fonctionnel du microprocesseur, doit être ajouté comme dans le premier cas o un matériel spécialisé pour la production et le contrôle des codes CRC est employé, des problèmes sont soulevés tels que le travail d'assemblage compliqué et les coûts plus élevés dus à l'addition du bloc fonctionnel pour le CRC; par exemple, le cas o un réseau local monté sur véhicule (qu'on désigne ci-après par "RL") est construit en connectant divers dispositifs de commande par l'intermédiaire des lignes de communication o chaque bloc fonctionnel doit être relié à chacun des dispositifs de commande. D'autre part, dans le second cas o la pro- duction et le contrôle des codes CRC sont basés dans un lo- giciel, il n'est pas nécessaire de fournir un bloc fonction- nel CRC spécial, ce qui se traduit par une construction plus simple pour l'appareil. Par exemple, l'assemblage du RL monté sur véhicule devient plus simple; cependant, comme des opérations informatiques compliquées doivent être exécutées pour produire et contrôler les codes CRC utilisant un logi- ciel, il faut du temps pour produire et vérifier les codes et donc, il se produit des problèmes tels que des chutes de la vitesse de transmission et de réception. En d'autres termes, dans l'exécution de la production et du contrôle des codes CRC, étant que le trai- tement de la donnée de transmission doit être exécuté en utilisant un polynôme compliqué, cette exécution avec l'em- ploi de l'approche basée sur logiciel demandera beaucoup de temps et par conséquent cette approche ne peut être employée dans les cas o des réponses rapides des commandes sont né- cessaires comme dans le cas du système de commande d'automo- bile qu'on décrit ci-dessus. Compte tenu des problèmes précédents, un premier objet de la présente invention est d'exécuter la production et le contrôle de codes CRC à haute vitesse par l'addition au microprocesseur d'une section de production et de contrôle de code CRC. Un autre objet de la présente in- vention est de fournir un microprocesseur qui peut être mis en ouvre avec une structure simple et à un faible coat. Dans un premier aspect, la présente inven- tion atteint ces objets en fournissant un microprocesseur qui comporte une unité logique et arithmétique ayant un cir- cuit arithmétique CRC de production de code CRC comportant un circuit OU exclusif exécutant des opérations OU exclusif sur des données qui lui sont appliquées, le circuit OU ex- clusif étant formé sur une partie d'un trajet pour l'entrée de données binaires, ou chaque donnée binaire du mot ou don- née à octet dans un circuit de décalage qui décale le mot ou donnée à octet comportant la donnée binaire et dont les en- trées comprennent un bit de donnée qui correspondant au tra- jet, donnée binaire qui est sortie vers l'extérieur par dé- calage du mot ou de la donnée à octet, et de la donnée bi- naire. Comme on l'a décrit ci-dessus, en prévoyant à une partie d'un trajet destiné à fournir chaque donnée bi- naire du mot ou donnée à octet qui doit être décalée et chaque mot ou donnée à octet qui décale chaque donnée bi- naire vers un circuit de décalage d'une unité arithmétique et logique (ULA), un circuit OU exclusif, qui calcule le OU exclusif du bit de donnée qui correspond au trajet, la don- née binaire du mot ou donnée à octet que le circuit à déca- lage sort par son opération de décalage et la donnée bi- naire, un circuit arithmétique CRC qui produit et contrôle les circuits CRC est formé à l'intérieur de l'unité ULA. En bref, en combinant le circuit à décalage, qui est généralement installé à l'intérieur de l'ULA et em- ployé pour exécuter les ordres de décalage, l'un des ordres de base du microprocesseur, et le circuit OU exclusif, qui est également installé généralement à l'intérieur de l'ULA, le circuit arithmétique CRC destiné au calcul des codes CRC est formé à l'intérieur de l'ULA. De cette façon, la circuit arithmétique CRC situé à l'intérieur de l'ULA exécute les fonctions de calcul pour le calcul du code CRC en utilisant le circuit arithmé- tique CRC en réponse à un ordre de calcul CRC, et la produc- tion et le contrôle du code CRC à grande vitesse peuvent être réalisés. Comme on l'a décrit ci-dessus, étant donné que le circuit arithmétique CRC est formé par la combinaison des circuits à décalage et OU exclusif qui sont, par conven- tion, généralement installés à l'intérieur de l'ULA, le cir- cuit arithmétique CRC peut être facilement mis en oeuvre en changeant seulement une partie de l'ULA du microprocesseur classique sans agrandir l'ULA ou augmenter le coûts de sa fabrication. Selon un autre aspect de la présente inven- tion, un circuit sélecteur est prévu dans le trajet d'entrée o se trouve le circuit OU exclusif, fait une sélection entre les données sorties par le circuit OU exclusif et la donnée binaire qui correspond au trajet en conformité avec l'ordre de sélection, et fournit la donnée sélectionnée au circuit à décalage. De préférence, tous les trajets d'entrée des données dans le circuit à décalage sont connectés au circuit OU exclusif et aux circuits du sélecteur. Ainsi, un circuit de sélection qui entre la donnée dans le circuit à décalage en effectuant un choix entre la donnée sortie par le circuit OU exclusif et la don- née binaire qui correspond au trajet d'entrée conformément au signal de sélection est établi au trajet d'entrée pour la donnée appliquée au circuit à décalage dans lequel le cir- cuit OU exclusif est formé. De cette façon, si le circuit de sélection choisit la donnée qui correspond au trajet en utilisant un ordre de sélection, le circuit à décalage fonctionnera en circuit à décalage normal qui décale la donnée en conformité avec l'ordre de décalage. D'autre part, si le circuit de sé- lection choisit la donnée sortie par le circuit OU exclusif, le circuit à décalage fonctionnera en circuit arithmétique CRC pour calculer les codes CRC. En bref, selon la présente invention, le circuit arithmétique CRC peut être amené à fonctionner soit en circuit arithmétique CRC soit en circuit à décalage nor- mal par l'intermédiaire d'une commutation à base de logi- ciel. Par conséquent, il n'est pas nécessaire de fournir un circuit à décalage séparé pour le calcul des codes CRC en dehors du circuit à décalage normal se trouvant à l'inté- rieur de l'ULA; ainsi, la construction de l'ULA peut être simplifiée. Comme un circuit OU exclusif et un circuit sélecteur sont prévus pour chacun des trajets d'entrée des données dans le circuit à décalage, non seulement le circuit à décalage peut être amené à fonctionner soit en circuit arithmétique CRC soit en circuit à décalage normal, mais en- core, lorsque le circuit de décalage est amené à fonctionner comme le circuit arithmétique CRC, le type de code CRC à produire par le circuit de production CRC peut être établi arbitrairement en établissant les valeurs à sélectionner par chacun des circuits de sélection d'une façon arbitraire. En d'autres termes, lorsque le circuit arithmétique CRC comporte un circuit OU exclusif au trajet d'entrée des données vers le circuit à décalage, étant donné que le polynôme pour la production du code CRC est déterminé par le trajet fourni avec le circuit OU exclusif, la fourni- ture d'un circuit OU exclusif et des circuits de sélection pour chacun de la totalité des trajets d'entrée et la possi- bilité d'établissement de chacune des données à sélectionner par chacun des circuits de sélection par l'intermédiaire de l'ordre de sélection, l'équation polynomiale de la produc- tion du code CRC peut être établie par le logiciel et par conséquent il est possible d'établir arbitrairement le type de code CRC obtenu par l'intermédiaire de l'ordre de calcul. Ainsi, dans un mode de réalisation préféré de la présente invention, le polynôme de production qu'on emploie pour la production et le contrôle du code CRC peut être changé ou modifié en conformité avec l'application du microprocesseur, le format de transmission du RL relié au microprocesseur, etc.; ainsi, le domaine d'utilisation du microprocesseur est élargi. La présente invention sera bien mieux com- prise lors de la description suivante faite en liaison avec les dessins annexés dans lesquels: La figure 1 représente la construction et le fonctionnement d'un circuit arithmétique CRC selon un mode de réalisation préféré de la présente invention; La figure 2 est un schéma sous forme de blocs représentant la construction d'un microprocesseur se- lon le présent mode de réalisation; La figure 3 représente la construction et le fonctionnement d'un circuit à décalage classique; La figure 4 représente un organigramme de la procédure de traitement lorsqu'un code CRC est produit en utilisant le circuit de calcul CRC de ce mode de réalisa- tion; Les figures 5A et 5B représentent un exemple d'un code CRC produit en suivant l'organigramme de la figure 4; La figure 6 représente un organigramme de la procédure de traitement lorsqu'un code CRC est contrôlé en utilisant le circuit de calcul CRC de ce mode de réalisa- tion; et La figure 7 représente un exemple d'un code CRC employé pour contrôle qui est produit en suivant l'orga- nigramme de la figure 6. On décrira ci-dessous un mode de réalisation ayant généralement la préférence en liaison avec les figures annexées. La figure 2 est un schéma sous forme de bloc qui représente un microprocesseur à une puce selon un mode de réalisation de l'invention. Comme représenté en figure 2, le micropro- cesseur de ce mode de réalisation de l'invention est un mi- croprocesseur à octet, qui comporte une unité centrale de traitement 10, une mémoire 12 de programme constituée d'une mémoire morte, d'une mémoire de données 14 constituée d'une mémoire vive, d'une section d'entrée/sortie 16, d'un généra- teur de synchronisation (non représenté) qui produit un si- gnal de commutation UCT qu'on expliquera ultérieurement, d'un bus 18 pour données à octet qui envoie et reçoit des données, un bus d'adresses 20 qui envoie et reçoit un signal d'adresse et des bus de commande 22, 24 qui envoient et re- çoivent des signaux de lecture et d'écriture, respective- ment. En outre, pour exécuter le traitement pipe- lines en parallèle à répartition dans le temps des deux types de tâches (qu'on désigne ci-après par tâche L et tâche A), l'unité centrale de traitement (UCT) est équipée de deux registres d'adresses 26, 28 et de deux registres arithmé- tiques 30, 32 et par commutation alternée ces registres d'adresses 26, 28 et des registres arithmétiques 30, 32 uti- lisant le signal de commutation UCT produit par le généra- teur de synchronisation, l'unité centrale de traitement fonctionne effectivement comme si elle était deux unités UCT0 etUCT1 alors qu'il y a une commutation alternée entre elles. En outre, dans ce mode de réalisation, le registre d'adresses 26 et le registra arithmétique 30 sont les registres pour l'UCTO (pour la tâche L), alors que l'autre registre d'adresses 28 et le registre arithmétique 32 sont les registres pour l'UCT1 (pour la tâche A). La va- leur du compteur d'instructions 34 (c'est-à-dire l'adresse de l'ordre suivant à prendre en charge) est mise à jour en conformité avec la commutation des registres d'adresses 26, 28, et les signaux d'adresse de l'UCT0 (pour la tâche L) et de l'UCT1 (pour la tâche A) sont sortis alternativement du compteur 34 pour la mémoire de programme 12. En outre, un circuit de détection d'erreur 36, qui identifie le type de tâche auquel l'ordre lu dans la mémoire appartient et détecte les erreurs qu'elle comporte, et un décodeur/séquenceur d'ordre 38, qui décode l'ordre qui est passé par le circuit 36 de détection d'erreur, sont éta- blis à l'intérieur de l'UCT 10. Sur la base du contenu de l'ordre décodé par l'ensemble décodeur/séquenceur 38, des calculs sont exécutés en utilisant les registres arithmé- tiques 30, 32 de l'unité arithmétique 40 qui agit en unité arithmétique et logique, et des signaux de lecture ou d'écriture sont sortis pour application aux bus de commande 22, 24. D'autre part, une zone programme 42 pour l'UCT0 (pour la tâche L), une zone programme 44 pour l'UTCl (pour la tâche A) et une zone 46 de donnée de table d'adresse immédiate sont établies dans la mémoire 12. Dans ce cas, la tâche L stockée dans la zone 42 pour l'UCTO est constituée d'un programme à boucle fixe qui interdit les instructions de branchement pouvant conduire à des pro- grammes intempestifs. En conséquence, lors du passage des programmes de la tâche L, l'exécution commence à l'adresse 0 et se poursuit avec l'exécution séquentielle des ordres dans l'adresse 1, l'adresse 2, l'adresse 3,... jusqu'à at- teindre une adresse prédéterminée o le compteur d'instruc- tions 34 déborde et revient à l'adresse 0, avec les ordres exécutés de façon répétée dans la même séquence que celle décrite ci-dessus. On doit noter que pour la tâche L, les ordres sont limités à des ordres à un mot. La raison en est que dans un système d'ordres o le nombre de mots pour l'ordre n'est pas fixe (par exemple, un système d'ordres dans lequel il y a des ordres à un mot ainsi que des ordres à deux mots), si un ordre à deux mots est lu incorrectement et est interprété comme un ordre à un mot, étant donné que le mot suivant n'est pas nécessairement un ordre significa- tif, il n'y aura aucune indication de ce qu'il y a ensuite à exécuter. Le programme de la tâche L, qui est destiné à exécuter des processus commandés séquentiellement, contient un sous-programme pour le contrôle des échappements intempestifs de l'autre tâche, qui est la tâche A, et un sous-programme de séquence de secours pour mettre en oeuvre des fonctions de sécurité intégrées dans le système. En outre, cette tâche L est également équipée d'une fonction de synchronisation mise en oeuvre en employant une boucle fixe, par exemple, en provoquant une interruption d'horloge lorsque le compteur atteint une valeur prédéterminée après le passage d'ordres d'incrémentation ou de décrémentation et ainsi, un traitement à temps fixe équivalent à une interrup- tion d'horloge est possible. D'autre part, la tâche A permet le branche- ment d'instructions interdites dans la tâche L et convient pour un traitement analytique et mathématique complexe. De la même façon que pour la tâche L, la longueur des ordres pour la tâche A est également limitée à un mot pour chacun. Pour les tâches A et L, le code d'opération et l'opérande (adresse) sont tous deux alloués dans un mot pour chacun. De plus, un bit d'identification de tâche afin d'identifier le type de tâche pour chacun des ordres de l'UCT0 et de l'UCT1 qui sont à l'intérieur de la mémoire de programme 12, est fourni, par exemple, comme le bit de poids fort ("MSB"). Dans ce mode de réalisation, le bit d'identi- fication de tâche est instauré comme bit de parité o la tâche L doit avoir une parité impaire, alors que la tâche A doit avoir une parité paire. Pour ce cas, non seulement d'identification de la tâche, mais aussi le contrôle du code de commande est réalisé. En conformité avec cet objectif, le circuit 36 de détection d'erreur identifie le type de tâche auquel l'ordre lu dans la mémoire 12 appartient par l'inter- médiaire du contrôle de parité, détecte ses erreurs et dé- termine si oui ou non une erreur imprévisible a provoqué l'exécution d'une autre tâche démarrée de façon erronée. Plus précisément, le circuit 36 de détection d'erreur, qui est constitué d'un circuit d'identification de tâche, d'un circuit à drapeau d'erreur, d'un circuit de code opération inéffective ("NOP"), de paires de portes de trans- fert des types à taux de mouvement élevé et à bas taux de mouvement, etc. (non représentées), identifie le type de tâche auquel l'ordre lu dans la mémoire de programme 12 ap- partient par l'intermédiaire d'un contrôle de parité (à sa- voir, si la parité est impaire, la tâche est alors identi- fiée comme une tâche L; si la parité est paire est elle alors identifiée comme tâche A). Le résultat de l'identifi- cation est comparé au signal de commutation UCT pour déter- miner si une erreur s'est produite ou non, et si une erreur s'est produite, un signal d'erreur (par exemple un signal de niveau haut) est sorti pour application au circuit à drapeau d'erreur en même temps que la remise à l'état initial du re- gistre d'adresses de la tâche o l'erreur s'est produite et en même temps, le signal d'erreur est également appliqué à la borne de commande de la paire de portes de transfert, avec la porte de transfert du type à taux de mouvement élevé fermée et le signal de code Opération Ineffective sorti du circuit Opération Effective pour application à l'ensemble décodeur d'ordre/séquenceur d'ordre 38 tout en rendant non passante la porte de transfert du type à faible taux de mouvement, ce qui évite le passage d'ordres pour application au décodeur/séquenceur 38. Il en résulte que dans le cas o une erreur imprévisible comme un bruit, etc. qui conduit au branchement sur l'adresse d'une autre tâche par erreur et au commencement de l'exécution de l'ordre, s'est produite, l'Opération Ineffective est effectuée immédiatement dans un seul cycle d'ordre et on évite ainsi la destruction de la mémoire et de la donnée d'accès avant que cela ne se pro- duise. En outre, lorsqu'aucune erreur ne s'est produite, le circuit 36 de détection d'erreur maintient la sortie du cir- cuit d'identification de tâche à un niveau bas, rend non passante la porte de transfert du type à taux de mouvement élevé et empêche le passage du code NOP tout en rendant pas- sante la porte de transfert du type à faible taux de mouve- ment et permettant le passage des ordres jusqu'au séquenceur 38. De cette façon, selon ce mode de réalisa- tion, l'UCT semble fonctionner comme si elle faisait une commutation et déplaçait deux UCT, rendant ainsi possible l'exécution du traitement pipeline et en outre, avec la lon- gueur de tous les ordres fixée à un mot par affectation tant du code opération que de l'opérande à un mot, les problèmes se produisant lorsque l'ordre correspond à une construction à plusieurs mots (par exemple, programmes d'échappement, destruction d'une information vitale dans la mémoire de don- nées à cause d'erreurs dans la reconnaissance du code opéra- tion et de l'opérateur, ou les problèmes provoqués par des erreurs d'adresse ou analogues qui ont pour effet de bran- cher l'adresse du programme à celle de la zone tabulaire immédiate des données 46 avec le commencement de l'exécution du programme avec la valeur immédiate 46 de la table traitée comme code opération) peuvent être évités au préalable. La structure de l'unité logique et arithmétique 40, qui consti- tue une partie principale de la présente invention, fera l'objet ci-dessous d'une explication. Par l'intermédiaire de la section d'en- trée/sortie 16, le microprocesseur peut échanger des données avec d'autres microprocesseurs et dans l'exécution de cet échange de données, l'unité arithmétique et logique 40 est équipée du circuit arithmétique CRC qui produit le code CRC devant être attaché à la donnée pour transmission afin de vérifier si la donnée est ou non correcte et qui vérifie le code CRC attaché à la donnée reçue. Ce circuit arithmétique CRC, comme repré- senté en figure 1, est formé en combinant le circuit à déca- lage SFT, qui décale les données à octet, y compris la don- née binaire, conformément à un ordre dé décalage et qui a été installé de la façon classique dans l'unité arithmétique et logique 40 pour exécuter les ordres du microprocesseur, le circuit OU exclusif, EXOR, pour exécuter les calculs OU exclusif sur la donnée d'entrée en conformité avec les ordres OU exclusif, et le sélecteur SL, qui choisit l'une de deux entrées de données conformément à un ordre de sélec- tion. Comme représenté en figure 3, alors que le circuit à décalage décale la donnée [0]-[7] vers le côté du bit de poids fort [7] ou du bit de poids faible [0] un bit à la fois à la suite de l'ordre de décalage, et établit le bit de poids fort [7] (ou le bit de poids faible [0]) déplacé par le décalage comme la donnée binaire après calcule (RR) en entrant la donnée binaire stockée dans la zone de sto- ckage des données binaires à l'intérieur du registre arith- métique [RR] vers le bit de poids faible [0] (ou le bit de poids fort [7]) de la donnée à octet stockée dans la zone de stockage des données à octet du registre arithmétique, le circuit arithmétique CRC de ce mode de réalisation utilise, comme son circuit de décalage, le circuit de décalage (en bref, le circuit de décalage représenté en figure 3) qui dé- cale la donnée vers le côté du bit de poids fort. Le circuit arithmétique CRC est formé en plaçant sur chaque trajet de donnée jusqu'au circuit à déca- lage SFT (plus spécialement, sur chacun de ces trajets, qui entrent la donnée binaire [RR], la seconde donnée provenant du fond de la donnée à octet [1], la troisième donnée et la quatrième donnée [3], des circuits OU exclusif EXORa-EXORd qui calculent l'opération OU exclusif de la donnée qui cor- respond à chaque trajet [RR], [1], [2], [3] avec la donnée binaire [RR] et la donnée du bit de poids fort [7] déplacées vers l'extérieur lorsque le circuit à décalage SFT exécute les opérations de décalage, deux sélecteurs SLa-SLd qui choisissent soit les sorties de chacun des circuits OU ex- clusif EXORa-EXORd ou la donnée [RR], [1], [2] ou [3] qui correspond à chacun des trajets correspondants pour l'entrée des données dans le circuit à décalage SFT, et en outre, le sélecteur SLe, qui fait un choix entre le bit de poids fort [7] déplacé lorsque le circuit à décalage SFT exécute ses calculs et la donnée binaire [RR] et qui entre son choix dans le circuit SFT. Pour le circuit arithmétique CRC de ce mode de réalisation ayant la construction précédente, dans le cas o l'ordre de décalage est entré, la totalité des sélecteurs SLa-SLe sont commutés sur le côté o ils choisissent la don- née d'entrée présentée au côté droit (à savoir, la donnée [RR], [1], [2], [3] et [7] qui correspondent à chacun des trajets) des sélecteurs correspondants de la figure 1, et le circuit de décalage exécutera l'opération de décalage. Comme résultat, le circuit arithmétique CRC fonctionnera comme le circuit à décalage normal représenté en figure 3 o les don- nées à octet [0][7] sont décalées d'un bit chacune vers le côté du bit de poids fort en utilisant la donnée binaire [RR]. D'autre part, pour le circuit arithmétique CRC, si l'ordre arithmétique CRC est entré, tous les sélec- teurs SLa-SLe sont commutés sur le côté o ils choisissent la donnée d'entrée présentée au côté gauche (à savoir, la donnée de sortie des circuits OU exclusif EXORa-EXORd et la donnée binaire [RR]) des sélecteurs de la figure 1 et avec le circuit à décalage SFT exécutant les opérations de déca- lage, les données à octet [0]-[7], après l'exécution de l'opération arithmétique, sont établies au moyen des équa- tions (1)-(8). Il y a lieu de remarquer que les équations (1)-(8) indiquent les contenus des opérations effectuées sur les données [0]-[7] et le donnée binaire [RR] en utilisant les ordres arithmétiques CRC du circuit arithmétique CRC et que le symbole E représente l'opération OU exclusif. Donnée [0] e- Donnée [7] G Donnée binaire [RR]... (1) Donnée [1] e- Donnée [0]... (2) Donnée [2] e- Donnée [7] e Donnée binaire [RR] @ Donnée binaire [1]... (3) Donnée [3] v- Donnée [7] e Donnée binaire [RR] e Donnée binaire [2]...(4) Donnée [4] v- Donnée [7] G Donnée binaire [RR] e Donnée binaire [3]...(5) Donnée [5] e- Donnée [4]... (6) Donnée [6] e- Donnée [5]...(7) Donnée [7] e- Donnée [6]...(8) Ces opérations de données correspondent au polynôme de production de code CRC [X8+X4+X3+ X2+1] et les données à octet après le calcul utilisant ce circuit arith- métique CRC [0]-[7] deviennent les données de production CRC. En bref, si le circuit arithmétique CRC est amené à fonctionner comme ci-dessus en réponse à l'ordre de calcul CRC, le circuit arithmétique CRC, en conformité avec la po- sition des bits (dans ce mode de réalisation, [1], [2], [3], [4]) des données à octet pendant l'opération de décalage après l'addition (donnée [7] G donnée binaire [RR]]par l'utilisation des circuits OU exclusif EXORa-EXORb, devient un circuit qui réalise un polynôme de production et à la suite de ce polynôme de production, les données de produc- tion CRC peuvent être faites. Pour le polynôme de production [X8+X4+X3+ X2+1] réalisé par le circuit arithmétique CRC, le terme [X8] exprime un polynôme de production du huitième de- gré qui ne chevauche pas la position du circuit OU exclusif EXOR. Ensuite, en utilisant le circuit arithmé- tique CRC de ce mode de réalisation, on expliquera la procé- dure de production de code CRC pour fixer des codes CRC aux données de transmission et la procédure de contrôle CRC, qui utilise le code CRC fixé à la donnée reçue pour déterminer si oui ou non il y a une irrégularité dans la donnée reçue due au bruit ou analogue pendant la transmission des don- nées. La figure 4 est un organigramme qui repré- sente les étapes de production du code CRC. Comme représenté en figure 4, pendant la production du code CRC, toutd'abord à une étape 110, l'adresse de la mémoire de données 14 pour stocker le code CRC est établie à, par exemple, [$CRC.G] et ensuite, dans l'étape 120,1a valeur initiale de la zone de stockage de l'adresse [$CRC.G] est établie comme [FF]. [FF] dans l'ex- pression hexadécimale alors que l'expression binaire équiva- lente serait [11111111]. Alors, dans l'étape 130, un bit de la donnée transmise est transféré en commençant avec le bit de poids fort à la zone de stockage de la donnée binaire [RR] des re- gistres arithmétiques 30 ou 32. Par exemple, aussitôt après le commencement de la production du code CRC, la donnée du bit de poids fort est transférée à l'un ou l'autre registre * arithmétique 30 ou 32 comme la donnée binaire [RR]. De cette façon, après le transfert d'un bit de la donnée de transmission à l'un ou l'autre registre arithmétique 30 ou 32 comme la donnée binaire [RR], l'étape est alors exécutée dans laquelle la donnée à l'intérieur de [$CRC.G], qui fut établie comme la zone de stockage dans l'étape 110 ci-dessus pour le code CRC, est instaurée comme donnée à octet et l'ordre CRC pour exécuter l'opération arithmétique du circuit arithmétique CRC, par exemple, [CRC $CRC.G] est produit. Alors, dans l'étape 150 suivante, la donnée transférée comme la donnée binaire [RR] à l'un ou l'autre des registres arithmétiques 30 ou 32 dans l'étape 130 est examinée pour déterminer si elle est la donnée de poids faible; en d'autres termes, on la vérifie pour voir si elle est le dernier bit de la production du code CRC et sinon, $CRC.G est instauré dans le code CRC calculé dans l'étape , et l'étape 130 est de nouveau exécutée dans laquelle un bit, qui est une position plus bas que la donnée précédente transférée au registre 30 ou 32 comme la donnée binaire [RR], est transféré au registre 30 ou 32 comme la nouvelle donnée binaire [RR] et alors, à une étape 140, il y a pro- duction d'un ordre arithmétique CRC. Comme résultat, pour le circuit arithmétique CRC, avec la valeur [FF] (expression hexadécimale) comme va- leur initiale (donnée à octet), le code CRC est calculé sé- quentiellement, en commençant avec le bit de poids fort de la donnée de transmission par emploi du polynôme de produc- tion ci-dessus. D'autre part, dans l'étape 150, s'il y a dé- termination du fait que la donnée binaire transmise au re- gistre 30 ou 32 comme la donnée binaire [RR] est le bit fi- nal pendant la production du code CRC, l'étape 160 suit alors. Dans cette étape, chacun des bits de la valeur produite du code CRC dérivé par l'opération de calcul du code CRC est inversée et cette valeur inversée est établie comme le code CRC devant être attaché à la donnée de transmission. De cette façon, la production du code CRC est exécutée par le mode opératoire suivant, dans lequel, en premier lieu, [FF] est établi comme la valeur initiale du code CRC (en bref, la donnée à octet) et, comme la donnée binaire [RR], la donnée de transmission est envoyée séquen- tiellement un bit en commençant par le bit de poids fort de la donnée de transmission, le calcul CRC étant exécuté suc- cessivement par le circuit arithmétique CRC jusqu'à l'achè- vement du calcul pour tous les bits de la donnée de trans- mission. Lorsque le calcul est achevé, la valeur produite du code CRC est inversée. Pour cette raison, le CRC peut être calculé pour n'importe quel nombre d'octets de la donnée de transmission en utilisant le polynôme de production. Par exemple, la figure 5 montre la donnée de transmission et le code CRC produit en utilisant le circuit de calcul de ce mode de réalisation et à partir de là, on peut voir que, même si la donnée à octet comporte trois oc- tets de donnée entre la donnée DATA0 et la donnée DATA2 ou même quatre octets de donnée entre la donnée DATA0 et la donnée DATA3, le code CRC peut être produit en exécutant le calcul CRC pour chacune des données à octet en commençant par le bit de poids fort. La figure 5A représente la structure de la donnée de transmission pendant la transmission des données. La donnée de transmission entre la donnée à octet DATA0 et la donnée à octet DATAn attachée au code CRC (CRC.G), qui est produite par le procédé de production de code CRC qu'on décrit ci-dessus, est transmise aux autres unités comme la donnée de transmission. De plus, la figure 5B représente le résultat du calcul du code CRC, par exemple, si la donnée de transmission est constituée de trois octets de donnée DATA0- DATA3, qui en hexadécimale sont [F2], [01] et [83], l'ex- pression hexadécimale [37] est alors établie comme le code CRC. La figure 6 est un organigramme représentant la procédure de contrôle CRC pour exécuter les contrôles CRc sur la donnée reçue. Comme représenté en figure 6, lors de l'exé- cution des contrôles CRC, tout d'abord, dans l'étape 210, l'adresse de la mémoire de données 14 pour le stockage du code CRC aux fins du crontrôle CRC (qu'on désigne ci-après simplement par code de contrôle) est établie, par exemple, sous la forme [$CRC.C] et dans l'étape 220 suivante, une va- leur initiale [FF] est établie à l'adresse [$CRC.C]. Alors, dans l'étape 230 suivante, un bit de la donnée reçue, en commençant par le bit de poids fort, est transféré à la zone de stockage de la donnée binaire [RR] du registre 30 ou 32 et dans l'étape ultérieure, l'étape 240, avec la donnée stockée à l'intérieur de [$CRC. C], qui a été établie dans l'étape 210 ci-dessus comme zone de stockage du code de contrôle de la mémoire 14, établie comme la donnée à octet, l'ordre de calcul CRC pour que le circuit arithmé- tique CRC exécute l'oprération arithmétique du code CRC, par exemple [CRC, $CRC.C], est produit. Ensuite, dans l'étape 250, la donnée envoyée dans l'étape 230, comme donnée binaire [RR] du registre 30 ou 32, est vérifiée pour voir s'il s'agit du bit final de la donnée reçue; en d'autres termes, la donnée est examinée pour voir si elle est le bit de poids faible du code CRC at- taché à la donnée reçue et si tel n'est pas le cas, $CRC.G est établi à la valeur du code CRC calculé et la commande est de nouveau transférée à l'étape 230 et un bit de donnée, qui est plus bas d'une position que le bit de donnée envoyé précédemment à l'un ou l'autre des registres arithmétiques ou 32 comme la donnée binaire [RR], est envoyé à l'un ou l'autre registre arithmétique 30 ou 32 comme la nouvelle donnée binaire [RR] et dans l'étape suivante, étape 240, l'ordre de calcul CRC est produit. Comme résultat, dans le circuit arithmétique CRC, avec la valeur [FF] (expression hexadécimale) comme la valeur initiale (donnée à octet), le code de contrôle est calculé en utilisant le polynôme de production cidessus, en commençant séquentiellement par le bit de poids fort de la donnée reçue. D'autre part, dans l'étape 250, s'il y a dé- termination du fait que le bit de donnée envoyé à l'un ou l'autre registre arithmétique 30 ou 32 comme la donnée bi- naire [RR] est le bit final de la donnée reçue, la commande est alors transférée à l'étape 260. Alors, dans l'étape 260, le code de contrôle, qui a été obtenu par les opérations arithmétiques ci-dessus, est vérifié pour voir s'il est égal à une valeur prédéterminée (qui est l'expression hexadéci- male [C4] dans ce mode de réalisation) et si le code de contrôle est égal à la quantité prédéterminée [C4], alors, dans l'étape 270, la donnée reçue est considérée comme nor- male; si le code de contrôle n'est pas égal à la quantité prédéterminée [C4], alors dans l'étape 280, la donnée reçue est considérée comme anormale. Après toutes ces opérations, le processus de contrôle CRC est terminé. En bref, comme représenté en figures 5A et B, lorsque la donnée de transmission attachée à un code CRC est reçue, si la transmission des données est exécutée nor- malement, le code de contrôle (CRC.C) produit comme dans le procédé décrit ci-dessus est égal à la quantité prédétermi- née comme représenté en figure 7, et ainsi pour le procédé de contrôle CRC, l'exactitude de la donnée reçue est déter- minée en vérifiant si le code de contrôle produit de la ma- nière ci-dessus à partir de la donnée reçue est égal ou non à la quantité prédéterminée [C4]. On doit remarquer que le code de contrôle est [C4] parce que le polynôme de production du code CRC a été établi comme [X8+X4+X3+X2+1] et ainsi, si un polynôme différent est utilisé, alors, un code de contrôle correspon- dant à ce polynôme doit être établi comme la valeur prédé- terminée. Comme on l'a expliqué ci-dessus, pour le mi- croprocesseur de ce mode de réalisation, le circuit arithmé- tique CRC qui suit les ordres de calcul CRC dans l'exécution de la production et du contrôle des codes CRC est installé à l'intérieur de l'élément de calcul 40, qui agit en unité arithmétique et logique (UAL). Par conséquent, dans un microprocesseur se- lon la présente invention, lors de l'exécution de la produc- tion et du contrôle des codes CRC, il n'est pas nécessaire de fournir un bloc spécial séparé pour le CRC et ainsi, la production et le contrôle du code CRC peuvent être effectués avec un microprocesseur à une seule puce. De plus, dans un microprocesseur selon la présente invention, comme le calcul utilisant le polynôme de production pour produire et contrôler le code CRC, contrai- rement à l'appareil classique dans lequel cela est exécuté par l'intermédiaire du procédé à base de logiciel consistant à combiner des ordres de base, peut être exécuté simplement par le fonctionnement du circuit arithmétique CRC placé à l'intérieur de l'unité arithmétique et logique 40 en em- ployant les ordres de calcul CRC, non seulement la produc- tion et le contrôle du code CRC peuvent être exécutés avec un microprocesseur à une seule puce, mais encore le calcul pour la production et le contrôle du code CRC peuvent être effectués à haute vitesse. Par conséquent, un microprocesseur selon la présente invention peut être utilisé dans les cas o une transmission des données à haute vitesse est nécessaire, par exemple, dans un dispositif de commande qui constitue un noeud du réseau local monté sur véhicule. En outre, le circuit arithmétique CRC de ce mode de réalisation, par l'intermédiaire des ordres de cal- cul CRC, effectue non seulement les opérations pour la pro- duction et le contrôle du code CRC, mais encore, si un ordre de décalage est entré et que le trajet des données vers le circuit à décalage SFT est commuté par l'intermédiaire des sélecteurs SLa-SLt vers une direction différente de celle du calcul CRC, il fonctionne, par l'intermédiaire du circuit à décalage SFT, comme circuit à décalage normal qui décale les données à octet, dont la donnée binaire. Pour cette raison, il n'est pas nécessaire de fournir un circuit à décalage normal, séparé du circuit arithmétique CRC, à l'intérieur de l'unité arithmétique et logique 40. En outre, comme le circuit arithmétique CRC est réalisé en combinant les circuits à décalage, OU exclu- sif et du sélecteur, qui tous correspondent à des ordres de base fournis dans l'unité arithmétique et logique, il peut être alors formé en modifiant seulement une partie de l'ULA dans des microprocesseurs classiques et ainsi le circuit arithmétique CRC peut être mis en oeuvre simplement sans agrandir l'ULA ou augmenter les coûts de fabrication. Alors que le circuit arithmétique CRC de la présente invention a été construit de façon à exécuter le calcul du code CRC en employant le polynôme de production [X8+X4+X3+X2+1], étant donné que ce polynôme a été déterminé sur la base de l'emplacement d'installation du circuit OU exclusif avec le trajet d'entrée du circuit à décalage SFT et étant donné que cela change lorsque l'emplacement est mo- difié, alors le polynôme de production employé dans la géné- ration et le contrôle du code CRC doit être établi en conformité avec l'emplacement et le nombre des circuits OU exclusif. De plus, si, par exemple, les circuits OU exclusif EXOR et les sélecteurs SL sont installés dans tous les trajets d'entrée des données vers le circuit à décalage ââ et si le sélecteur SL, qui choisit la sortie du circuit OU exclusif EXOR, est établi en utilisant un logiciel pour exé- cuter les calculs CRC en employant le circuit arithmétique CRC, alors, le polynôme de production employé dans le calcul du code CRC peut être établi par l'intermédiaire d'un logi- ciel. D'une façon identique, dans ce cas d'instal- lation des circuits OU exclusif EXOR et des sélecteurs SL pour tous les trajets d'entrée des données dans le circuit SL du sélecteur, par exemple, en établissant de multiples ordres de calcul CRC à l'avance avec le stockage des sélec- teurs SL qui choisiront la sortie du circuit OU exclusif à l'intérieur des registres, etc., le sélecteur SL correspon- dant au code d'ordre peut aussi être amené à suivre la don- née à l'intérieur du registre de façon qu'il commute automa- tiquement lorsqu'un ordre de calcul CRC est produit. La présente invention n'est pas limitée aux exemples de réalisation qui viennent d'être décrits, elle est au contraire susceptible de variantes et de modifica- tions qui apparaîtront à l'homme de l'art. REVENDICATIONS 1 - Circuit de calcul pour microprocesseur, caractérisé en ce qu'il comprend: une multitude de lignes d'entrée (7-0, RR) pouvant recevoir des données d'entrée qui leur sont présen- tées; un moyen de production de fonction (EXOR), connecté aux lignes d'entrée (7-0, RR), pour produire une valeur basée sur les données d'entrée à une multitude de ses sorties; une section de sélection (SL) connectée aux lignes d'entrée (7-0, RR) et aux sorties du moyen de produc- tion de fonction (EXOR) pour fournir sélectivement à ses sorties des signaux à partir des lignes d'entrée (7-0, RR) et des signaux à partir des sorties du moyen de production de fonction en réponse à un ordre de sélection; et une multitude de lignes de sortie (7-0, RR) connectées aux sorties de la section de sélection (SL). 2 - Circuit selon la revendication 1, ca- ractérisé en ce que le moyen de production de fonction (EXOR) comprend une porte OU exclusif (d-a). 3 - Circuit de calcul pour microprocesseur, caractérisé en ce qu'il comprend: une multitude de lignes d'entrée (7-0, RR) pouvant recevoir des données d'entrée qui leur sont présen- tées; - une porte OU exclusif (EXORd-a) ayant au moins une entrée reliée à ligne d'entrée correspondante (7- 0, RR); un premier circuit de sélecteur (SLe-a) ayant une première entrée reliée à une sortie de la porte OU exclusif (EXORd-a) et une seconde entrée connectée à une ligne correspondante de la multitude de lignes d'entrée (7- 0, RR), ledit premier circuit sélecteur (SLe-a) fournissant l'une desdites première et seconde entrées (EXORd-a, 7-0, RR) à l'une de ses sorties en réponse à un ordre de sélec- tion; et une multitude de lignes de sortie (7-0, RR) comprenant une ligne de sortie connectée à une sortie cor- respondante du premier circuit sélecteur. 4 - Circuit selon la revendication 3, carac- térisé en ce qu'il comprend en outre: un second circuit sélecteur (SLe-a) ayant des première et seconde entrées connectées à des lignes cor- respondantes de la multitude de lignes d'entrée (7-0, RR) et une sortie connectée à une ligne correspondante des lignes de sortie (7-0, RR) Circuit selon la revendication 3, carac- térisé en ce qu'au moins une ligne de la multitude de lignes d'entrée (7-0, RR) est reliée à une ligne correspondante de la multitude de lignes de sortie (7-0, RR). 6 - Circuit selon la revendication 3, carac- térisé en ce qu'il comprend en outre: un second circuit sélecteur (SLe- a) ayant des première et seconde entrées connectées à des lignes cor- respondantes de la multitude de lignes d'entrée (7-0, RR) et une sortie connectée à une ligne correspondante des lignes de sortie (7-0, RR); dans lequel au moins l'une de la multitude des lignes d'entrée (7-0, RR) est connectée à une ligne cor- respondante de la multitude des ligne de sortie (7-0, RR) 7 - Circuit selon la revendication 6, carac- térisé en ce que les premier et second circuits sélecteurs (SLe-a) et ladite au moins ligne d'entrée (7-0, RR) connec- tée à une ligne correspondante des lignes de sortie (7-0, RR) sont agencés conformément à un polynôme de production de code CRC. 8 - Circuit selon la revendication 3, carac- térisé en ce qu'il agit sélectivement en registre à décalage et en circuit de production de code CRC en réponse audit ordre de sélection. 9 - Circuit selon la revendication 3, carac- térisé en ce que: la multitude de lignes d'entrée ((7-0, RR) comporte une multitude de lignes d'entrée correspondant à des données à octet (7- 0) et une ligne d'entrée correspon- dant à des données binaires (RR), et la multitude de lignes de sortie (7-0, RR) comporte une multitude de lignes de sortie correspondant à des données à octet (7-0) et une ligne de sortie correspon- dant aux données binaires (RR). - Circuit selon la revendication 3, ca- ractérisé en ce qu'il comporte une porte OU exclusif (EXORd- a) ayant au moins deux entrées connectées à des lignes d'en- trée différentes. 11 - Procédé pour produire des données de contrôle par redondance cyclique, caractérisé en qu'il com- prend les étapes consistant à: établir (120) la valeur binaire initiale comme valeur de base; fournir (120) la valeur de base à un circuit de production de code; calculer (140) une valeur de contrôle par redondance cyclique en utilisant le circuit de production de code sur la base de ladite valeur de base et d'un bit de données de transmission commençant avec son bit de poids fort (130); affecter (150) ladite valeur de contrôle par redondance cyclique à la valeur de base et exécuter les étapes de fourniture (120) et de calcul (140) en utilisant le bit de poids fort suivant de la donnée de transmission si ce bit des données de transmission n'est pas un bit de poids faible; et sortir (160) une valeur représentative de la valeur calculée de contrôle par redondance cyclique si le bit des données de transmission est au moins un bit de poids faible. 12 - Procédé selon la revendication 11, ca- ractérisé en ce que ladite étape de fourniture comprend une étape consistant à présenter (120) ladite valeur de base à un circuit de production de code comportant une multitude de lignes d'entrée, une multitude de portes OU exclusif connec- tées aux lignes d'entrée, une multitude de circuits de sé- lection reliés aux portes OU exclusif et aux lignes d'en- trée, et une multitude de lignes de sortie reliées aux cir- cuits de sélection, la multitude de portes OU exclusif et la multitude de circuits de sélection étant disposées de ma- nière à correspondre à un polynôme de production de code de contrôle par redondance cyclique. 13 - Procédé selon la revendication 11, ca- ractérisé en ce qu'il comprend en outre l'étape consistant à répéter lesdites étapes de fourniture (120), de calcul (140) et d'affectation (150) d'une manière séquentielle en utili- sant chaque bit des données de transmission. 14 - Procédé selon la revendication 11, ca- ractérisé en ce qu'il comprend en outre l'étape consistant à inverser (160) la valeur calculée de contrôle par redondance cyclique afin d'obtenir ladite valeur représentative. - Procédé de contrôle de données de ré- ception comprenant des données de contrôle par redondance cyclique, caractérisé en ce qu'il comporte les étapes consistant: établir (220) une valeur binaire initiale comme valeur de base; fournir (220) ladite valeur de base à un circuit de production de code; calculer (240) une valeur de contrôle par redondance cyclique en utilisant le circuit de production de code basée sur ladite valeur de base et sur un bit d'une donnée de réception commençant avec son bit de poids fort (230); affecter (250) la valeur calculée de contrôle par redondance cyclique à ladite valeur de base et exécuter les étapes de fourniture (220) et de calcul (240) en utilisant le bit de poids fort suivant de la donnée de réception si ce bit de la donnée de réception n'est pas un bit de poids faible; contrôler (260) si la valeur calculée du contrôle par redondance cyclique est égale à une valeur pré- déterminée si ledit bit de la donnée de réception est un bit de poids faible; déterminer (270) le fait que la donnée de réception est normale si la valeur calculée de contrôle par redondance cyclique est égale à ladite valeur prédéterminée; et déterminer (280) le fait que la donnée de réception est erronée si la valeur calculée de contrôle par redondance cyclique n'est pas égale à la valeur prédétermi- née 16 - Procédé selon la revendication 15, ca- ractérisé en ce que l'étape de fourniture (220) comprend une étape consistant à présenter ladite valeur de base à un cir- cuit de production de code comportant une multitude de lignes d'entrée, une multitude de portes OU exclusif connec- tées aux lignes d'entrée, une multitude de circuits de sé- lection connectés aux portes OU exclusif et aux lignes d'en- trée, et une multitude de lignes de sortie reliées aux cir- cuits de sélection, la multitude de portes OU exclusif et la multitude de circuits de sélection étant disposées de ma- nière à correspondre à un polynôme de production de code de contrôle par redondance cyclique. 17 - Procédé selon la revendication 15, ca- ractérisé en ce qu'il comprend en outre l'étape consistant à répéter les étapes de fourniture (220), de calcul (240) et d'affectation (250) en utilisant séquentiellement chaque bit de la donnée de réception.