FR 2770661 A1 19990507 FR 9713758 A 19971103 MICROPROCESSEUR COMPRENANT DES MOYENS DE CONCATENATION DE BITS La présente invention concerne les microprocesseurs, et plus particulièrement la réalisation au moyen d'un microprocesseur d'une opération de concaténation d'au moins un bit d'un premier mot binaire avec des bits d'un deuxième mot binaire. La concaténation de bits est une opération fréquemment utilisée en informatique industrielle. En particulier, les codes d'authentification émis par les cartes à microprocesseur comme les cartes bancaires sont générés par des algorithmes de cryptographie nécessitant de nombreuses opérations de concaténation de bits. Or, les microprocesseurs classiques présentent l'inconvénient de consommer plusieurs périodes d'horloges et plusieurs octets de code programme pour réaliser cette opération. Par exemple, avec un microprocesseur du type 6805 la concaténation de bits est faite au moyen des instructions "BRSET" et "BCLR" et nécessite tout d'abord la mise à 1 des bits d'une zone mémoire destinée à contenir le résultat de l'opération. Ensuite, on teste la valeur d'un premier bit à concaténer et on met à O le premier bit de la zone mémoire si le bit à concaténer est égal à O. Puis, on teste la valeur d'un deuxième bit à concaténer et on met à O le deuxième bit de la zone mémoire si le deuxième bit à concaténer est égal â 0, etc.. La concaténation de chaque bit dans la zone mémoire nécessite cinq octets de code programme (instructions et adressage de la mémoire compris) et le temps d'exécution est de dix cycles machine environ. Dans un microprocesseur du type 8051, on charge tout d'abord le bit à concaténer dans un drapeau ("flat"), par exemple le drapeau CRY ("Carry"). Ensuite, on insère le bit dans le registre de travail du microprocesseur, par décalage à droite du registre au moyen de l'instruction "ROR" ou par insertion directe au moyen de l'instruction "MOV". Enfin, le contenu du registre de travail est chargé en mémoire. Ces opérations consomment également plusieurs octets de code et plusieurs cycles machine. En définitive, les microprocesseurs de l'art antérieur exécutent avec lenteur un programme contenant un grand nombre d'opérations de concaténation et nécessitent, pour chaque opération de concaténation, l'écriture de plusieurs codes programme. Ainsi, la présente invention a pour objectif de prévoir un microprocesseur pouvant réaliser rapidement, et d'une façon simple pour le programmeur, une opération de concaténation. Cet objectif est atteint par la prévision d'un microprocesseur comprenant des moyens de décodage et des moyens de traitement d'une instruction compacte de concaténation d'au moins un bit d'un premier mot binaire avec au moins un bit d'un deuxième mot binaire, l'instruction comportant au moins un code de l'instruction de concaténation, une adresse compacte de lecture du premier mot binaire, et une adresse de sélection, dans le premier mot binaire, du bit à concaténer. Selon un mode de réalisation, le microprocesseur comprend des moyens de décodage d'une instruction de concaténation comportant une adresse compacte d'enregistrement du résultat de la concaténation. Selon un mode de réalisation, le microprocesseur comprend des moyens de décodage d'une instruction de concaténation dont le code comporte une adresse compacte prédéterminée d'enregistrement du résultat de la concaténation. Selon un mode de réalisation, les moyens de décodage de l'instruction de concaténation sont agencés pour générer une adresse fixe d'enregistrement du résultat de la concaténation. Selon un mode de réalisation, le deuxième mot binaire est lu à l'adresse d'enregistrement du résultat de la concaténation. Selon un mode de réalisation, les adresses présentes dans l'instruction compacte de concaténation sont appliquées à une banque de registres du microprocesseur. La présente invention concerne également un microprocesseur comprenant des moyens de décodage d'une instruction de concaténation dsau moins un bit d'un premier mot binaire avec au moins un bit d'un deuxième mot binaire, et des moyens de traitement de l'instruction de concaténation comprenant des moyens de présentation en parallèle des deux mots binaires sur le chemin de données du microprocesseur, des moyens de sélection du bit à concaténer du premier mot binaire, et des moyens pour décaler des bits du deuxième mot binaire sur le chemin de données et insérer dans le deuxième mot binaire le bit sélectionné du premier mot binaire. Selon un mode de réalisation, les moyens pour décaler comprennent un circuit à commutation matérielle de fils agencé pour, sur réception d'un signal de décalage, décaler le rang des fils du chemin de données et connecter à un fil du chemin de données la sortie des moyens de sélection du bit à concaténer. Selon un mode de réalisation, les moyens de sélection comprennent un circuit multiplexeur agencé sur le chemin de données pour recevoir en entrée le premier mot binaire. Selon un mode de réalisation, le microprocesseur comprend une banque de registres dans laquelle sont lus les premier et deuxième mots binaires et dans laquelle est enregistré le résultat de la concaténation. Selon un mode de réalisation, le résultat de la concaténation est enregistré dans la banque de registres à l'adresse où est lu le deuxième mot binaire. Selon un mode de réalisation, le deuxième mot binaire est lu à une adresse fixe et prédéterminée dans la banque de registre. Selon un mode de réalisation, les moyens de traitement sont agencés pour lire les premier et deuxième mots binaires et exécuter l'instruction de concaténation au cours d'un premier demi-cycle d'horloge, et enregistrer le résultat de la concaténation au cours du demi-cycle d'horloge suivant. Selon un mode de réalisation, le microprocesseur comprend un premier étage pipeline comprenant des moyens de décodage de l'instruction de concaténation, et un deuxième étage pipeline contigu au premier étage, comprenant les moyens de traitement de l'instruction de concaténation. Selon un mode de réalisation, le deuxième étage pipeline comprend une banque de registres dans laquelle sont lus les premier et deuxième mots binaires et dans laquelle est enregistré le résultat de la concaténation. Selon un mode de réalisation, le premier et le deuxième étages pipeline comprennent chacun un premier et un deuxième secteurs, le premier secteur de chaque étage étant actif à chaque demi-cycle d'horloge du microprocesseur et le deuxième secteur étant actif à chaque demi-cycle d'horloge suivant. Ces caractéristiques ainsi que d'autres de la présente invention seront exposées plus en détail dans la description suivante, faite à titre non limitatif, d'un exemple de réalisation d'un microprocesseur selon l'invention, en relation avec les figures jointes parmi lesquelles - la figure 1 représente sous forme de blocs les principaux éléments d'un microprocesseur selon l'invention, - la figure 2 représente un circuit à décalage selon l'invention, représenté schématiquement en figure 1, et - la figure 3 représente un élément interrupteur du circuit à décalage de la figure 2. La figure 1 représente un microptocesseur MP selon l'invention, fonctionnant ici sous 16 bits et du type pipeline, c'est-à-dire à chevauchement d'instructions. Le microprocesseur est organisé pour exécuter des instructions compactes se présentant sous le format suivant CODE p ADRd | ADRs Ces instructions, codées ici sur 16 bits, comprennent un code CODEop de l'opération à exécuter, codé sur 4 bits, l'adresse ADRd d'un registre Rd de destination du résultat, sur 4 bits, et l'adresse ADRs d'un registre source Rs, sur 4 bits (ici, le dernier champ de l'instruction n'est pas utilisé). L'opération est par exemple l'addition ADD (additionner Rs et Rd et stocker le résultat dans Rd), la soustraction SUB (scustraire Rs à Rd et stocker le résultat dans Rdl, , le OU logique (stocker dans Rd le résultat de Rs OU Rd), le ET logique, etc.. Selon l'invention, le microprocesseur est également organisé pour exécuter une instruction compacte de concaténation BMV, selon le format suivant ADRà T-I ADRs ADbi CODEBMV ADRd ADRs ADbi Cette instruction comprend le code CODEBMV de l'opération de concaténation, sur 4 bits, l'adresse ADRd du registre Rd de destination du résultat de la concaténation, sur 4 bits, l'adresse ADRs d'un registre source Rs, sur 4 bits, et l'adresse (ou rang) ADbi d'un bit bi du registre source Rs. Cette instruction signifie ici, de façon non limitative 1) concaténer ("accoler") le bit bi d'un mot binaire W1 contenu dans le registre Rs avec le bit de plus fort poids d'un mot binaire W2 contenu dans le registre Rd, 2) enregistrer le mot W3 comprenant le résultat de la concaténation dans le registre Rd. Comme on le verra plus loin, ces diverses étapes sont avantageusement réalisées en un seul cycle d'horloge. On décrira tout d'abord la structure générale du microprocesseur selon l'invention. Essentiellement, le microprocesseur comprend une mémoire programme MEM, une banque de registres REGBANK, une unité de calcul arithmétique et logique ALU, un compteur ordinal PC, un circuit SPC d'incrémentation du compteur ordinal PC et un décodeur DEC1 d'instructions. Le microprocesseur comprend également des moyens de concaténation prenant la forme d'un circuit à décalage BSHIFT et un circuit MUX de sélection, en fonction de l'adresse ADbi, du bit bi à concaténer. Le décodeur DEC1, l'unité ALU et la banque REGBANK, représentés sous forme de blocs, sont bien connus de l'homme de l'art et leur structure interne ne sera pas décrite. Le décodeur DEC1 est connecté à la sortie de la mémoire MEM pour recevoir les instructions d'un programme à exécuter. L'unité ALU comporte ici deux entrées INl, IN2, une sortie OUT, et est pilotée par un décodeur DEC2. La banque de registres REGBANK contient divers registres de travail, par exemple seize registres RO à R15 (non représentés). La banque REGBANK comporte une entrée IADRs pour l'adresse ADRs du registre source Rs, une entrée IADRd pour l'adresse du registre de destination Rd, une sortie OUTRs de lecture du registre source Rs, une sortie OUTRd de lecture du registre de destination Rd, et une entrée INRd pour l'écriture d'un résultat dans le registre de destination Rd. La sortie OUTRd de la banque REGBANK est connectée à l'entrée IN1 de l'unité ALU. La sortie OUTRs est connectée à l'entrée IN2 de l'unité ALU et à l'entrée du circuit MUX. Le circuit BSHIFT comprend seize entrées de bits e0 à e15 connectées à la sortie OUT de l'unité ALU, une entrée auxiliaire e16 connectée à la sortie du circuit MUX, et seize sorties de bits so à s15 formant la terminaison du chemin de données DPTH du microprocesseur, ces sorties étant connectées à l'entrée INRd de la banque REGBANK. Ainsi, le chemin de données DPTH du microprocesseur comprend tout d'abord deux voies de seize fils à la sortie de la banque REGBANK, puis une voie de seize fils et un fil auxiliaire à l'entrée du circuit BSHIFT, et enfin une voie de seize fils de la sortie du circuit BSHIFT jusqu'à l'entrée de la banque REGBANK. D'autres connexions de la terminaison du chemin de données DPTH sont bien entendu envisageables, par exemple une connexion à la mémoire MEM ou à une autre mémoire de stockage de données. Le circuit BSHIFT est piloté par un signal SR. Quand ce signal est à O, le circuit BSHIFT est transparent et les sorties s15 à 5o recopient les entrées e15 à eO. Quand le signal BSHIFT est à 1, le circuit décale ses sorties relativement à ses entrées. Les sorties sl4 à so recopient les entrées e15 à e1, respectivement, et la sortie s15 recopie l'entrée auxiliaire e16. Dans ce cas, l'entrée eO est déconnectée du chemin de données. Le microprocesseur est par ailleurs organisé en deux étages pipeline ST1, ST2 contigus, délimités par des registres à verrouillage Bi, B3 (ou "latch") . Ces registres B1, B3 sont déverrouillés par le front montant d'un signal d'horloge H1. La mémoire MEM et le décodeur DEW1 sont agencés dans le premier étage ST1. La banque REGBANK, l'unité ALU, le multiplexeur MUX et le circuit BSHIFT sont agencés dans le deuxième étage ST2. Les deux étages ST1, ST2 sont divisés chacun en deux secteurs ST11/ST12, respectivement ST21/ST22. Les secteurs ST11/ST12 sont délimités par un registre B2 agencé entre la sortie de la mémoire MEM et le décodeur DEC1. Les secteurs ST21/ST22 sont délimités par un registre B4 agencé entre les sorties so à s15 du circuit BSHIFT et l'entrée INRd de la banque REGBANK. Le registre B2 est un registre à verrouillage déverrouillé par le front montant d'un signal H2 déphasé de 180 relativement au signal H1. Le registre B4 est de préférence un tampon trois états ("bouffer tristate") transparent quand le signal H2 est à 1, et dans l'état haute impédance quand le signal H2 est à O. Ainsi, le signal d'horloge H1 synchronise le transfert des données de l'étage ST1 vers l'étage ST2, et le signal H2 synchronise le transfert des données du premier secteur ST11, ST21 vers le deuxième secteur ST12, ST22 de chaque étage pipeline. Pour fixer les idées, les signaux d'horloge H1 et de transfert H2 sont représentés au bas de la figure 1. La banque REGBANK est commandée en lecture par un signal RDH1 et en écriture par un signal WRH2. Ces signaux sont envoyés par le décodeur DEC1. Le signal de lecture RDH1 est émis quand le signal d'horloge H1 passe à 1 et le signal d'écriture WRH2 est émis quand le signal H2 passe à 1. La banque REGBANK appartient ainsi, en lecture, au premier secteur ST21 de l'étage ST2 et, en écriture, au deuxième secteur ST22 de l'étage ST2. Enfin, la mémoire MEM délivre l'instruction contenue à l'adresse fournie par le compteur ordinal PC sur réception du signal de lecture RDH1. Pour illustrer le fonctionnement du microprocesseur selon l'invention, on se référera par exemple à la séquence d'instructions suivante (1) SUB R1,R2 (soustraire R2 à R1 et stocker le résultat dans R1) (2) BMV RO,R1,12 (concaténer dans RO le bit de rang 12 contenu dans R1). Ces instructions sont délivrées par la mémoire MEM sous la forme suivante CODESUB ADR1 ADR2 - CODEBMV ADRO ADR1 12 La séquence est exécutée par le microprocesseur selon des étapes 1.1 à 1.4 et 2.i à 2.4 décrites ciaprès. Les diverses opérations réalisées au cours de chacune de ces étapes se déroulent de façon asynchrone selon le flot des données à travers les portes logiques des éléments du microprocesseur, et sont considérées comme achevées à la fin de chaque étape. 1.1 - H1 = 1, H2 = 0, registre B1 déverrouillé, secteur ST11 actif - le décodeur DEC1 émet le signal de lecture RDH1 et l'instruction SUB R1, R2 est lue dans la mémoire MEM. 1.2 - H1 = 0, H2 = 1, registre B2 déverrouillé, secteur ST12 actif - le décodeur DEC1 décode l'instruction SUB R1, R2, met le signal SR à 0, envoie les adresses ADR1 et ADR2 vers la banque REGBANK et envoie le code opération CODESUB de la soustraction vers l'unité ALU, - le circuit SPC incrémente le compteur ordinal PC. 1.3 - H1 = 1, H2 = O, registre B3 déverrouillé, secteur ST21 actif - la banque REGBANK reçoit les adresses ADR1, ADR2, le décodeur DEC2 reçoit le code CODEsUB et le décodeur DECl émet le signal de lecture RDH1, - les registres R1 et R2 sont lus et leur contenu appliqué sur les entrées IN1, IN2 de l'unité ALU, - l'unité ALU délivre le résultat de la soustraction [R1 R2]. 1.4 - H1 = O, H2 = 1, registre B4 transparent, secteur ST22 actif - le décodeur DEC1 émet le signal d'écriture WRH2, - le circuit BSHIFT étant transparent (SR=O), le résultat de la soustraction [R1-R2] se retrouve sur l'entrée INRd de la banque REGBANK, - le résultat de la soustraction [R1-R2] est enregistré dans le registre R1. 2.1 - H1 = 1, H2 = O, registre B1 déverrouillé, secteur ST11 actif - le décodeur DEC1 émet le signal de lecture RDH1 et l'instruction BMV RO,R1,12 est lue dans la mémoire MEM. 2.2 - H1 = O, H2 = 1, registre B2 déverrouillé, secteur ST12 actif - le décodeur DEC1 décode l'instruction BMV RO,R1,12, met le signal SR à 1, envoie les adresses ADR1 et ADR2 vers la banque REGBANK, envoie l'adresse ADbi = 12 vers le multiplexeur MUX, et envoie le code opération CODEBMV de la concaténation vers l'unité ALU, - le circuit SPC incrémente le compteur ordinal PC. 2.3 - H1 = 1, H2 = 0, registre B3 déverrouillé, secteur ST21 actif - la banque REGBANK reçoit les adresses ADR1, ADR2, le décodeur DEC2 reçoit le code CODEBMV, le circuit MUX reçoit l'adresse ADBi (ici 12), le circuit BSHIFT reçoit le signal SR à 1 et le décodeur DEC1 émet le signal de lecture RDH1, - le mot binaire W1 contenu dans le registre R1 est appliqué sur l'entrée du multiplexeur MUX et le mot binaire W2 contenu dans le registre RC est appliqué sur l'entrée IN1 de l'unité ALU, - selon l'invention, l'unité ALU recopie sur sa sortie OUT le mot W2 présent sur son entrée IN1, - le multiplexeur MUX sélectionne le bit bl2 qui se retrouve sur l'entrée auxiliaire e16 du circuit BSHIFT, - le circuit BSHIFT connecte les sorties sl4 à so aux entrées e15 à e1, connecte la sortie s15 à l'entrée auxiliaire e16 et délivre un mot binaire W3 de la forme suivante W3 = b12 c15 c14 cl3 c12 c11 c10 cg c8 c7 c6 c5 c4 c3 C2 cl, dans lequel le bit de plus fort poids est le bit b12 sélectionné dans le mot Wl. Les autres bits du mot W3 sont des bits c15 à c1 du mot W2, le bit de plus faible poids c0 ayant été supprimé par le décalage. 2.4 - H1 = 0, H2 = 1, tampon B4 transparent, secteur ST22 actif - le mot W3 est appliqué sur l'entrée INRd de la banque REGBANK, - le décodeur DEC1 émet le signal d'écriture WRH2 et le mot W3 est enregistré dans le registre RO de la banque REGBANK. Dans le microprocesseur pipeline selon l'invention, les étapes qui viennent d'être décrites se chevauchent comme indiqué dans le tableau 1 ci-après. Tableau 1 Cycle pipeline Cycle pipeline Cycle pipeline 1/2 cycle 1/2 cycle 1/2 cycle 1/2 cycle 1/2 cycle 1/2 cycle H1=1 H2=1 H1=1 H2=1 Hl=l H2=1 étape 1.1 étape 1.2 étape 1.3 étape 1.4 étape 2.1 étape 2.2 étape 2.3 étape 2.4 étape 3.1 étape 3.2 Dans ce tableau, les étapes 3.1 et 3.2 sont des étapes de lecture et de décodage d'une nouvelle instruction (auelconque) suivant l'instruction BMV. On voit que les étapes 2.3 et 2.4 sont réalisées en un seul cycle d'horloge. Par ailleurs, en raison du fonctionnement pipeline du microprocesseur, les étapes de lecture 2.1 et décodage 2.2 chevauchent les étapes 1.3 et 1.4 de l'instruction précédente et ne consomment pas le temps d'horloge. La figure 2 représente un mode de réalisation avantageux du circuit BSHIFT, au moyen de seize interrupteurs 10 à I15 commandés par le signal SR. Chaque interrupteur Ii est agencé pour connecter une sortie si de rang i à une entrée ei de même rang ou à une entrée seize de rang supérieur, selon la valeur du signal SR. Comme illustré par la figure 3, les interrupteurs Ii peuvent être réalisés au moyen de deux interrupteurs CMOS Ti et Ti+1 agencés entre la sortie si et les entrées ei et ei+l. Le signal SR est appliqué au transistor NMOS de l'interrupteur Ti+1 et au transistor PMOS de l'interrupteur Ti. Un signal inverse /SR, délivré par une porte inverseuse, est appliqué au transistor PMOS de l'interrupteur T1+1 et au transistor NMOS de 1' interrupteur Ti. Ce circuit BSHIFT à décalage de bits par commutation matérielle de fils présente l'avantage, par rapport à un registre à décalage classique, de pouvoir recevoir le signal de décalage SR au commencement du cycle d'horloge H1 avant que les données ne soient stabilisées sur les entrées e16 à eO. La prévision d'un registre à décalage classique reste toutefois envisageable, à la condition de prévoir un circuit à retard pour l'application du signal SR. Pour fixer les idées sur les applications pratiques de l'invention, le tableau 2 ci-après décrit la séquence de concaténation suivante "Concaténer dans RO = 1010 1010 1010 1010 le bit 12 de R1 = 0001 0010 0011 0100, puis le bit 0 de R2 = 0010 0011 0100 0101, puis le bit 14 de R3 = 0011 0100 0101 0110, puis le bit 2 de R1 = 0001 0010 0011 0100". Tableau 2 R E G I S T R E R O I (rang) j14 13121110 9 8 7 6 5 4 3 2 1 0 JBits I 010101010101010 RO,R2,0 |1 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 |1 0 1 MV RO,R3,14 ~ O 1 1 1 0 1 0 1 0 1 0 1 0 1 0 1 O 1 0 RO,R1, 2 1 O 1 1 1 0 1 0 1 0 1 0 1 0 1 0 |1 i O i O Les bits concaténés dans le registre RO sont en caractères gras. Les bits en italiques sont les bits de poids faible perdus par décalage à droite. Au total, la concaténation des quatre bits ne nécessite que quatre cycles d'horloge pipeline et un programme de quatre instructions seulement. La séquence décrite par le tableau 2 montre qu'une opération répétitive de concaténation fait intervenir le même registre de destination Rd (ici RO) . Après seize concaténations, ce registre est "plein". Si l'on souhaite produire des chaînes de bits concaténés de grande longueur, par exemple de 16, 32, 64 bits ou plus, on peut changer de registre de destination Rd après chaque cycle de 16 concaténations. Une autre solution consiste à conserver le même registre Rd en sauvegardant son contenu après chaque cycle de 16 concaténations. Ainsi, une variante de l'invention permettant de simplifier encore plus le format de l'instruction BMV consiste à imposer l'adresse du registre de destination Rd. Dans ce cas, l'instruction BMV est codée de la façon suivante CODEBMV ADRs ADbi Dans ce cas, l'adresse ADRd du registre Rd, par exemple le registre RO, est générée automatiqement par le décodeur DEC1 sur réception du code CODEBMV. L'adresse ADRd peut aussi être comprise dans le code CODEBMV qui peut alors être codé sur 8 bits au lieu de 4. Il apparaîtra clairement à l'homme de l'art que la présente invention est susceptible de nombreuses autres variantes de réalisation et perfectionnements. En particulier, et comme représenté en traits pointillés sur la figure 1, le bit de poids faible présent sur l'entrée eO du circuit BSHIFT peut être conservé au moyen d'un registre LTCH en tant que drapeau CRY ("Carry") du microprocesseur. La sortie du registre LTCH contient le drapeau CRY et est connectée à l'entrée e16 du circuit BSHIFT par l'intermédiaire d'un tampon BUF1, pour l'injection éventuelle du drapeau CRY dans le chemin de données. Un deuxième tampon BUF2 est interposé entre la sortie du circuit MUX et l'entrée e16, pour éviter les collisions entre le bit sélectionné bi et le drapeau CRY. Le décodeur DEC1 pilote les tampons BUF1 et BUF2 en fonction du type d'instruction reçue. Egalement, le décodeur DEC1 envoie le signal d'écriture WRH2 au registre LTCH pour la mise à jour du drapeau CRY au moment de l'activation du secteur ST22, quand un décalage à droite a été effectué dans le secteur ST21 au cours du demi-cycle d'horloge précédent. D'autre part, le circuit BSHIFT peut être utilisé pour réaliser des opérations arithmétiques comme la division ou la multiplication, qui nécessitent de facon classique des décalages de bits. Sinon, le circuit BSHIFT peut être disposé en d'autres points du chemin de données, par exemple entre la sortie OTTTRd de la banque REGBANK et l'entrée IN1 de l'unité ALU. Egalement, il est bien entendu que la concaténation du bit bi peut aussi être faite par insertion du bit bi en tant que poids faible sur l'entrée eO du circuit BSHIFT et rotation à gauche des bits du mot binaire W2. Par ailleurs, l'opération de concaténation du bit bi peut être étendue de façon simple à la concaténation simultanée de plusieurs bits du registre source Rs, sélectIonnés simultanément par le circuit MUX. Par exemple, ia prévision de plusieurs circuits BSHIFT en cascade peut permettre de choisir entre la concaténation d'un seul bit, de deux bits à la fois, de trois bits, etc.. Le choix du nombre de bits à concaténer peut être codé dans le champ CODEBMV de l'instruction. Enfin, d'autres agencements pipeline peuvent être envisagés. Le microprocesseur qui vient d'être décrit comporte dans le même étage pipeline ST2 la banque REGBANK et les circuits BSHIFT, MUX assurant l'exécution de la concaténation. Dans ce microprocesseur, les étapes de lecture des mots Wl et W2, d'exécution de la concaténation, et d'enregistrement du résultat W3 sont donc effectuées au cours du même cycle d'horloge, comme on l'a vu plus haut. Toutefois, ces trois étapes peuvent être effectuées dans des étages pipeline distincts, le fonctionnement pipeline assurant un temps de traitement global des trois étapes assimilable à un cycle d'horloge. De façon générale, on a décrit dans ce qui précède diverses caractéristiques d'un microprocesseur permettant d'accélérer et de simplifier les programmes informatiques comportant de nombreuses opérations de concaténation. Ces caractéristiques peuvent être résumées, de façon non exhaustive et non limitative, comme suit i) la prévision d'une instruction de concaténation et les moyens de décodage et de traitement de cette instruction, ce qui permet de simplifier l'écriture des programmes et d'accélérer leur exécution, ii) la prévision d'une telle instruction sous une forme compacte incorporant au moins une adresse de lecture d'un bit à concaténer et le rang de ce bit, ce qui permet d'accélérer la lecture et le traitement de l'instruct,on, iii) la lecture des mots W1, W2 et l'enregistrement du résultat W3 dans la banque de registre REGBANK du microprocesseur, ce qui permet de réduire la taille des champs adresses de l'instruction, iv) l'exécution de l'opération de concaténation "en ligne" sur le chemin de données du microprocesseur, en un cycle d'horloge, avec présentation en parallèle des mots W1 et W2, v) la réalisation des trois étapes de lectu dans les instructions peuvent aussi permettre d'adresser le plan mémoire du microprocesseur. Dans ce cas, ces adresses doivent être transformées en adresses réelles du plan mémoire par une unité de gestion mémoire MMU ("Memory Management Unit"), connue également sous le nom de convertisseur d'adresses. Bien entendu, les diverses caractéristiques énoncées ci-dessus peuvent être combinées de diverses autres manières, en fonction - du résultat essentiel recherché, - des contraintes rencontrées dans la réalisation du microprocesseur, qui dépendent notamment des autres instructions du microprocesseur, et - du type de microprocesseur que l'on souhaite réaliser (pipeline ou non). Par exemple, on pourra préférer une instruction non compacte nécessitant deux lignes de programme et deux cycles d'horloge pour être lue si l'on souhaite étendre les possibilités d'adressage du résultat (par exemple dans une mémoire auxiliaire) ou si une unité de gestion mémoire MMU n'est pas associée au microprocesseur. Inversement, on pourra préférer une instruction compacte pouvant être lue en un cycle d'horloge par un microprocesseur sans chevauchement d'instructions si la priorité est donnée à la simplicité des programmes plutôt qu'à la vitesse d'exécution. Finalement, on a décrit dans ce qui précède une combinaison optimale de ces caractéristiques mais il entre dans le cadre de la présente invention de prévoir d'autres combinaisons et agencements des moyens de l'invention. On a décrit un microprocesseur simplifié ne comportant que les éléments nécessaires à la description et la compréhension de l'invention. En pratique, un microprocesseur selon l'invention pourra comprendre divers autres moyens et autres étages pipeline, par exemple des moyens de décodage d'instruction complexes, des moyens d'écriture de données dans une mémoire, agencés par exemple dans un troisième étage pipeline, etc.. Enfin, il convient de noter que le microprocesseur selon l'invention est d'une structure particulièrement simple garantissant une faible consommation de courant. Une mesure supplémentaire pour limiter la consommation électrique consiste à disposer sur les sorties OUTRs et OUTRd de la banque REGBANK des circuits tampons pilotés par un signal H1' décalé d'une durée At relativement au signal H1. De cette manière, l'unité ALU n'est connectée aux sorties OUTRs, OUTRd qu'au moment ou celles-ci sont stabilisées. Le signal décalé H1' peut être obtenu simplement au moyen d'un circuit à retard, par exemple des portes inverseuses en cascade. REVENDICATIONS 1. Microprocesseur 2. Microprocesseur selon la revendication 1, comprenant des moyens de décodage (DEC1) d'une instruction de concaténation (BMV) comportant une adresse compacte (ADRd) d'enregistrement du résultat (W3) de la concaténation. 3. Microprocesseur selon la revendication 1, comprenant des moyens de décodage (DEC1) d'une instruction de concaténation (BMV) dont le code (CODEBMV) comporte une adresse compacte (ADRd) prédéterminée d'enregistrement du résultat (W3) de la concaténation. 4. Microprocesseur selon la revendication 1, dans lequel les moyens de décodage (DEC1) de l'instruction de concaténation (BMV) sont agencés pour générer une adresse (ADRd) fixe d'enregistrement du résultat (W3) de la concaténation. 5. Microprocesseur selon l'une des revendications 2 à 4, dans lequel le deuxième mot binaire (W2) est lu à l'adresse (ADRd) d'enregistrement du résultat (W3) de la concaténation. 6. Microprocesseur selon l'une des revendications précédentes, dans lequel les adresses (ADRs, ADRd) présentes dans l'instruction compacte de concaténation (BMV) sont appliquées à une banque (REGBANK) de registres du microprocesseur. 7. Microprocesseur 8. Microprocesseur selon la revendication 7 dans lequel lesdits moyens pour décaler comprennent un circuit (BSHIFT) à comr.lutation matérielle de fils agencé pour, sur réception d'un signal de décalage (SR), décaler le rang des fils du chemin de données (DPTH) et connecter à un fil (spi5) du chemin de données la sortie (e16) des moyens (MUX) de sélection du bit (bi) à concaténer. 9. Microprocesseur selon l'une des revendications 7 et 8, dans lequel les moyens de sélection comprennent un circuit multiplexeur (MUX) agencé sur le chemin de données (DPTH) pour recevoir en entrée le premier mot binaire (W1). 10. Microprocesseur selon l'une des revendications 7 à 9, comprenant une banque de registres (BANKREG) dans laquelle sont lus les premier (W1) et deuxième (W2) mots binaires et dans laquelle est enregistré le résultat (W3) de la concaténation. 11. Microprocesseur selon la revendication 10, dans lequel le résultat de la concaténation (W3) est enregistré dans la banque de registres (REGBANK) à l'adresse (ADRd) ou est lu le deuxième mot binaire. 12. Microprocesseur selon lune des revendications 10 et 11, dans lequel le deuxième mot binaire (W2) est lu à. une adresse (ADRd) fixe et prédéterminée dans la banque de registre (REGBANK). 13. Microprocesseur selon l'une des revendications 7 à 12, dans lequel les moyens de traitement sont agencés pour - )ire les premier (W1) et deuxième (W2) mots binaires et exécuter l'instruction de concaténation au cours d'un premier demi-cycle d'horloge, et - enregistrer le résultat (W3) de la concaténation au cours du demi-cycle d'horloge suivant. 14. Microprocesseur selon l'une des revendications 7 à 13, comprenant - un premier étage pipeline (ST1) comprenant des moyens de décodage (DEC1) de l'instruction de concaténation, et - un deuxième étage pipeline (ST2) contigu au premier étage, comprenant les moyens de traitement (REGBANK, MUX, BSHIFT) de l'instruction de concaténation. 15. Microprocesseur selon la revendication 14, dans lequel le deuxième étage pipeline (ST2) comprend une banque de registres (BANKREG) dans laquelle sont lus les premier (W1) et deuxième (W2) mots binaires et dans laquelle est enregistré le résultat (W3) de la concaténation. 16. Microprocesseur selon l'une des revendications 14 et 15, dans lequel le premier et le deuxième étages pipeline (ST1, ST2) comprennent chacun un premier et un deuxième secteurs (STlî, ST12, ST21, ST22) , le premier secteur de chaque étage étant actif à chaque demi-cycle d'horloge du microprocesseur et le deuxième secteur étant actif à chaque demi-cycle d'horloge suivant.