Brevet FR2645293A1 — publié le 19901005

La présente invention concerne le- domaine des micropro- cesseurs à semiconducteurs. La présente invention se rapporte à une inrstruc-tion d'échange d'octets qui peut être mise en oek-rú dans Il'ar- chitecture d'un microprocesseur. Le microprocesseur utilisé avec la présente invention est le microprocesseur Intel 80486 , souvent appelé processeur 486@. Le processeur 486 est une version améliorée du microprocesseur Intel 80386 , également connu sous le nom-de processeur 356 (Intel, 80386, 386, 80486 et 486 sont des marques déposées de Intel Corporation). En général, l'information est conservé dans!. mémoire d'un système à microprocesseur sous forme de structures de données dont la longueur es_ une valeur quelconque variant, typiquement, entre 8 et 64 bits. Dans le microprocesseur 486, un "mot" est défini comme ayant une largeur de 16 bits, tandis qu'un "double mot" est défini comme ayant une largeur de 32 bits. Les mots sont conservés en mermoire sur deux octets (8 bits) consécutifs, l'octet de poids le plus faible étant à l'adresse inférieure et l'octet de poids le plus fort étant à l'adresse supérieure. Les double mots sont con- serves en mémoire sur quatre octets consécutifs, l'octet de poids le plus faible étant à l'adresse inférieure et i'octet de poids le plus fort étant à l'adresse supérieure. L'a- dresse d'un élément de donnée constitué d'un mnt ou d'un double mot est, dans le microprocesseur, l'adresse d'octet de l'octet de poids le plus faible. Ce type d'adressage, en particulier en ce qui concerne un élément de donnée en forme de double mot, est appelé procédé little-endian ou procédé "faibles en premier" de mémorisation dés types de données de taille supérieure à un octet. Tous les éléments de la famille Intel x86 utilisent le procédé "faibles en premier" pour mémoriser les types de données. L'autre procédé de mémorisation de ce type de données dans une mémoire d'un microprocesseur est appelé procédé big-endian ou procédé "forts en premier". Dans le procédé "forts en premier", on mémorise les données ayant les bits de poids le plus fort à l'octet présentant l'adresse la plus 2645293- faible. Ainsi, le format "forts en premier" est le contraire du format opposé "faibles en premier". La distinction entre les deux tient simplement au point de savoir quel octet d'une quantité de plusieurs octets on affecte à.l'adresse la plus faible, et quel octet on affecte à l'adresse la plus élevée. En format "forts en premier", comme son nom l'indi- que, les octets de poids le plus fort viennent les premiers, c'est-à-dire que les bits de poids le plus fort se trouvent aux adresses les plus faibles. Le format de mémoire "forts en premier" est utilisé par le série d'ordinateurs 370 d'IBM ainsi que par la série de microprocesseurs 68000 fabriqués par Motorola. En outre, de nombreux processeurs RISC (Redu- ced Instruction Set Computer: calculateur à jeu d'instruc- tions réduit) utilisent le format "forts en premier". Très souvent, un programmeur souhaite former une base de données comprenant plusieurs formats mémoire de données mélangés. D'autres programmeurs souhaitent souvent envoyer sur un réseau des données depuis un ordinateur mémorisant des données entières sous un format "forts en premier" vers 2C un autre ordinateur qui mémorise les.données entières sous un format "faibles en premier". Ainsi, à un certain moment, il faut exécuter une conversion pour transformer les données conservées dans un format mémoire en l'autre format mémoire. Dans un environnement 16 bits, la.conversion entre formats mémoire est directe. Un certain nombre d'instruc- tions sont généralement disponibles dans un microprocesseur pour, simplement, faire tourner ou permuter des registres sur 8 bits. En d'autres termes, les quantités sur 8 bits qui forment l'élément de donnée sur 16 bits peuvent simplement être permutées ou échangées. Les permutations d'octets d'un nombre plus élevé de bits, par exemple de quantité sur 32 ou. 64 bits posent plus de problèmes. Par exemple, une méthode que peut utiliser un microprocesseur de l'art antérieur pour exécuter cette opération de permutation d'octets sur un élément de 32 bits consiste à exécuter tout d'abord une.permutation d'octets des deux octets inférieurs, puis à les faire tourner de 16 positions, puis à exécuter une seconde permutation d'octets sur les octets restants. Il faut donc trois instructions séparées pour exécuter une conversion. Chaque instruction ayant besoin de deux cycles d'horloge pour être opérée, il faut un total de six cycles d'horloge pour ia conversion complète. En outre, du fait que chaque instruction a céné- ralement une longueur de deux à trois octets, il faut pro- duire un volume important de code - vraisemblablement neuf octets d'instruction - pour ces trois instructions de rotation. Une autre manière de procéder consisterait à effectuer la conversion du format mémoire par des étapes consécutives de microcode. Cependant, l'utilisation du mi.crocode prendrait toujours' six cycles d'horloge ou plus, avec un nombre important d'octets d'instructior.s. C'est pourquoi, pour exé- cuter des conversions de format mémoire de "forts en premier" à "faibles en premier", ou vice versa, les machines connues nécessitent un volume important de mémoire interne et grèvent notablement les perfcrmances. Une manière de procéder différente qui est utilisée par certains processeurs RISC est appelée "brochace variable" cu pin-srrapping. Le brochage variable consiste tout simplement en une commutation statique càblée sur la carte de circuit supportant le microprocesseur. L'option de câblage variable force l'ordinateur à traiter la mémoire soit d'une façon soit d'une autre, par exemple soit sous un format "forts en premier" soit sous un format "faibles en- premier". Cette manière de procéder par câblage possède l'inconvénient évi- dent qu'elle est statique et donc insusceptible d'être prc- grammée ou commandée dynamiquement par le microprocesseur ou par l'utilisateur. Comme on le verra, la présente invention remplace ces manières de procéder antérieures par une unique instruction de permutation d'octets capable de convertir un double mct d'un format "forts en premier" en un format "faibles en premier". Cette instruction assure une conversion rapide entre les deux formats sans grever le matériel ou les per- formances. On a constaté une amélioration approximative de % de la vitesse pour des programmes qui font un usage intensif de données- en format "forts en premier" lorsaue l'on exécute ces programmes sur un processeur 486 (c'est- à-dire une machine fonctionnant en "faibles en premier"). On va maintenant décrire une instruction spécialisée de microprocesseur optimisée pour l'exécution d'une permutation sur place d'octets sur un type de données sur 32 bits. Cette opération de permutation d'octets est particulièrement utile pour convertir des données conservées dans un format mémoire "forts en premier" en un format mémoire "faibles en pre- 1 mier", ou vise versa. L'invention comporte-un décaleur cir- culaire modifié qui comprend une pluralité de multiplexeurs permettant de relier sélectivement des données d'un ou plusieurs bus d'entrée à un bus de sortie. Le couplage des diverses lignes de bits des bus de données est conçu de S manière que les bits 0-7, 8-15, 16-23 et 34-31 du bus d'en- trée soient reliées aux bits correspondant 24-31, 16-23, 8-15 et 0-7, respectivement. Les lignes de commande reliées à chacun des multiplexeurs procurent un moyen de contrôler l'opération de permutation d'octets. L'i-nstructionr. de permutation d'octets que l'on décrira ici permet au programmeur de convertir des données d'un format mémoire 'forts en premier" en un format de données "faibles en premier", et inversement, sans subir les pénali- sations des performances que l'on rencontrait avec les microprocesseurs antérieurs. En outre, cette instruction unicue ne nécessite qu'un seul cycle d'horloge pour exécuter la conversion, tandis que les microprocesseurs de l'art antérieur nécessitaient habituellement trois instructions et six cycles d'horloge. La présente invention sera mieux comprise à la lecture de ea description détaillée ci-dessous et des dessins anhexés du mode de réalisation préféré de l'invention, aqui ne devra cependant pas être considéré comme limitant l'invention à ce mode de réalisation particulier, mais simplement pour les besoins de l'explication et de la compréhension de l'in- vention. La figure 1 est une comparaison entre lés formats mémoire "faibles en premier" et "forts en premier". Les deux formats mémoire sont illustrés avec les adresses mémoire corres- pondantes et leur numérotation des bits. Le bit de poids le plus fort est représenté par le bit 31, tandis que le bit de poids le plus faible est le bit 0. La figure 2 est un schéma par blocs illustrant le flux de données dans le décaleur circulaire du micrc-crocesseur de l'invention. Les figures 3A à 3L, considérées dans leur ensemble, correspondent à un schéma de circuit du décaleur circulaire utilisé dans le mode de réalisat. on actuellement préféré de la présente invention. La figure 4 montre le schéma du circuit pour le multiplexeur 4x4 utilisé dans le décaleur circulaire de la ficure 3. 2^ Cn va décrire un r. m-croprocesseur comprenant une instruc- tion de permutation d'octets servant à convertir les formats de données mémoire d'un type en un autre. Dans la des- cription qui va suivre, on donnera de nombreux détails particuliers tels que des longueurs en nombre de bits, etc. afin de permettre une compréhension complête de la présente invention. Il est bien entendu évident pour l'homme du mé- tier que ces détails particuliers n'ont pas besoin d'être repris pour mettre en oeuvre la présente inver.tion. Inver- sement, des structures. et des circuits bien connus n'ont pas été décrits en détail afin de ne pas alourdir inutilement la description de la présente invention. La figure 1 illustre les différences entre les formats mémoire "forts en premier" et "faibles en premier" pour des doubles mots ayant une longueur de 32 bits. Sur la figure 1, aussi bien pour le format mémoire "faibles en premier" qua pour le format mémoire "forts en premier", les 32 bits de donnée ont été représentés avec le bit de poids le plus faible portant le numéro 0, le bit de poids le plus fort pcrtant le numéro 31, et les adresses mémoire étant numé- ro_ées en partie supérieure. Comme illustré, chaque double mot de 32 bits est partitionné en quatre octets de 8 bits. Ceux-ci sont désignés par les lettres majuscules A-D sur la figure 1. Dans le format mémoire "faibles en premier", les doubles mots sont conservés en mémoire sur quatre octets consécu- tifs, avec l'octet de poids le plus faible placé à l'adresse inférieure et l'octet de poids le plus fort placé à l'adresse supérieure. Ceci est illustré sur la figure 1 o, pour un format mémoire "faibles en premier", les bits 0-7 sont conservés à l'adresse mémoire M, les bits 8-15 sont conservés à l'adresse mémoire M+1, les bits 16-22 sont conservés à l'adresse mémoire M+2 et les bits 24-31 sont conservés à l'adresse mémoire M+3. L'adresse d'un élément de dcnnée de double mot en format "'faibles en premier" est l'adresse d'octet de l'octet de rang inférieur (par exemple, l'adresse mémoire "M") Dans le format mémoire de données "forts en premier", les bits sont disposés en ordre inverse. En d'autres termes, une donnée en "forts en premier" est conservée avec les bits de poids le plus fort dans l'octet d'adresse inférieure, et les bits de poids le plus faible, dans l'octet d'adresse mémoire supérieure. Ainsi, comme illustré figure 1, dans un format "forts en premier", les bits 0-7 sont conservés à l'adresse mémoire M+3, les bits 8-15 sont conservés à l'adresse mémoire M+2, les bits 16-23 sont conservés à l'adresse mémoire M+1 et les bits 24-31 sont conservés à l'adresse mémoire M. L'adresse d'un élément de donnée sous forme de double mot en format mémoire "forts en premier" est l'adresse d'octet de l'octet de poids le plus fort. Pour exécuter une conversion d'un format mémoire "forts en premier" à un format mémoire "faibles en premier", il faut suivre le processus que l'on va indiquer. Tout d'abord, l'élément de donnée est déplacé de la mémoire vers un registre interne. Ensuite, l'octet A, correspondant aux bits 2431 en format "forts en premier", a besoin d'être l transféré ou permuté avec le contenu de l'octet D, cor- respondant aux bits 0-7. De la même façon, l'octet B a besoin d'être permuté avec l'octet C. Cette opération de permutation d'octets es_ exécutée, dans le mode de réalisation préféré, en utilisant le décaleur circulaire situé à l'intérieur de l'unité d'exécution des calculs sur nombres entiers du microprocesseur. Enfin, l'élément de don- née permuté est verrouillé dans un registre ou verrou tempo- raire afin d'être ultérieurement réinscrit en mémoire dans le registre source/destination. Si l'on se réfère maintenant à la figure 2, on y a illustré un schéma par blocs montrant le flux de données dans le décaleur circulaire utilisé pour mettre en oeuvre l'instruction de permutation d'octets de la présente invention. Le déealeur circulaire 20 est un composant bien connu de la technique, et on le trouve habituellement dans la plupart des microprocesseurs. Le décaleur circulaire 20 peut effectuer un décalage/rotation d'un mot de données de N positions en une seule opération - N pouvant varier de 0 à la dimension du mot. Habituellement, le décaleur circui-_re est utilisé pour des opérations. très diverses. Par exem- ple, on utilise le décaleur circulaire 20 pour des ins- tructions de décalage, des instructions de rotation, des scrutations de bits, etc. Dans ie microprocesseur de l'inventicn, li décaleur circulaire 20 est formé de deux parties: un élément matri- ciel 23 et un arbre 24. La matrice 23 reçoit des entrées de données sur des bus de 32 bits 21 et 22, désignés respec- tivement DSMA et DSbM. En général, les.données délivrées sur la ligne de bus 21 sont identiques aux données délivrées sur la ligne de bus 22. Ceci facilite une rotation ou un déca- lage rapide des données, comme on le verra. La matrice 23 reçoit ces entrées de données et exécute une opération de décalage par fractions de demi-octet (c'est-à-dire que l'on décale la donnée d'un multiple de 4). De cette manière, à la première étape de l'opération de décalage les données sont initialement décalées de multiples de 4 (par exemple 4, 8, 12, 16, etc.). Un décalage supplémentaire d'une quantité quelconque inférieure à 4 (c'est-à-dire comprise entre 0 et 3) est exécutée par l'arbre 24. La matrice 23 est reliée à l'arbre 24 par le bus 24 désigné DST. L'arbre 24 délivre alors au registre de sortie de _ inité arithmétique et logaique 27 une donnée de sortie sur un bus 26 de 32 bits désigné DSL. Si l'on se réfère maintenant aux figures 3A à 3L, on y a représenté un schéma de circuit détaillé du décaleur cir- culaire 20 utilisé dans le mode de réalisation actuellement préféré de la présente invention. Le décaleur circulaire 20 comporte une pluralité de lignes d'entrée verticales reliées aux lignes de bus DSMA et DSMB 21 et 22, respectivement. Ces lignes d'entrée de données sont illustrées constituées de lignes de bits individuelles DSMAO-31 et DS-BO-31. Chaque î5 ligne est reliée aux entrées d'une pluralité de multiple- xeurs 4x4. Par exemple, DSM31 est relié à l'entrée 14 des multiplexeurs 42 à 49. On a également indiqué sur les figures 3A à 3L une pluralité de lignes de sortie de données horizontales. Ces lignes de bits de données horizontales forment le bus DST25 et sont reliées aux sorties d'une pluralité de multi- plexeurs. Les diverses lignes de bit du bus DST25 ont été représentées avec les références DST0-31 et sont reliées au registre de sortie 27 de l'unité arithmétique et logique, comme on l'a exposé à propos de la figure 2. On a représenté des lignes supplémentaires, par exemple DST35, mais comme elles sont sans rapport avec l'invention, on ne les décrira pas). Par exemple, on a représenté DST31 relié aux multi- plexeurs 42, 59, 68, 77, 86, 95, 104 et 113. Une commande est appliquée à chacun des multiplexeurs du décaleur circu- laire 20 par l'intermédiaire de lignes de commande désignées DSMC0-22. Chacun des multiplexeurs 41 à 119 (à l'exclusion des composants 57, 66, 75, 84, 93, 102 et 111 qui ne sont utilisés qu'à l'égard de l'arbre 24) comprend un multi- ziexeur à quatre broches d'entrée (par exemple Il à I4), quatre broches de sortie (par exemple 01 à 04) et une broche de co.mmande (par exemple C) . En fonctionnement, lorsque l'on applique un signal à la ligne de commande d'un multiplexeur donné, les lignes de données d'entrée sont électri;uement couplées aux lignes de données de sortie. Par exempie, lorsque la ligne d'entrée de commande du mul__tlexeur 110 reçoit un signal, les données présentent sur la broche d'entrée Il (par exemple, DSMBO)0 sont électriquement appliquées à la borne de sortie CO (par exemple, DST0). De façon semblable, les données associées aux broches I2, I3 et I4 (par exemple, DSMB!, DSMB2 et SMB;3, respectivement), sont électriquement reliées aux broches de sortie 02, 03 et 04, respectivement (par exemple DSTI, DST2 et DST3, respec- tivement-). Ainsi, chaque multiplexeur donné situé àà l'int-é- rieur du décaleur circulaire 20 fonctionne en tant qu'élé- ment de commutaz on reliant des groupes d'entrée de données à des lignes de sortie correspondantes. Si l'on se réfere maintenant à la figure 4, on y a illustré un schéma de circuit du multiplexeur 4x4 utilisé pour le mode de réalisation actuellement préféré de la pré- sente invention. Ce multiplexeur ccmprend des composants à effet de champ 120-123 qui sont de préférence constitués de composants MOS à canal n ordinalres. La grille de chacun de ces transistors à effet de champ est reliée à la ligne de commande 124. Les régions de drain et de source de chaque transistor sont reliées à une paire differente de lignes 2 5 d'entrée et de sortie. Par exemple, le transistor 123 a sa source reliée à la ligne d'entrée 128 réféeencée Il, et son drain relié à la ligne de sortie 129 référencée 01. Lorsque la ligne de commande 124 reçoit un signal en l'amenant à un potentiel haut positif, il se forme un canal conducteur entre les régions de source et de drain des composants 120 à 123. Ce canal conducteur réalise une liaison électrique entre les broches d'entrée et de sertie correspondantes. Ainsi, un potentiel positif élevé sur la liane de commande 124 réalise une liaison électrique entre les lignes 128 et 129, 127 et 130, 126 et 131 et 125 et 132. Le décaleur circulaire 20 du microprocesseur de l'inven- tion est semblable aux décaleurs circulaires que l'on peut trouver dans les microprocesseurs de l'art antérieur tel que le 80386, à l'exception du fait que certains signaux de- commande ont été fractionnés afin de pouvoir tenir compte de la convertion de format selon la présente invention. Le signal de commande de matrice d'origine DSMC2 du processeur 386 a été fractionné en trois signaux de commande DSMC2a, DSMC2b et DSMC2c afin de faciliter la réalisation en un cycle d'horloge d'exécution de l'instruction de permutation d'octets BSWAP. En outre, le signal DSMC17 a été représenté fractionné en trois signaux DSMC17a-c. Pour des opérations C ordinaires (tout sauf une permutation d'octets BSWAP), ces lignes de commande sont fusionnées sous leur forme d'origine et le décaleur circulaire 20 opère de façon normale. Ce n'est que lors de l'exécution de l'exécution BSWAP de permu- tation d'octets que le fractionnement en lignes distinctes devient important. A la phase n l du cycle d'horloge d'exécution de l'instruction BSWAP, on n'applique que quatre des signaux de ccmmande de matrice. Tous les autres signaux de commande de la matrice sont supprimes. Les quatre signaux de la matrice 23 qui sont appliqués comprennent DSM-21 (qui multiplexe les bits 24-31 du bus DSMB sur les bits 0-7 du bus DST de sortie de la matrice), DSMC17b (qui multiplexe les bits 16 à 23 du bus DSMB sur les bits 8-15 du bus DST de sortie de la matrice), DSMC2b (qui multiplexe les bits 8 à 15 du bus DSMA sur les bits 16-23 du bus DST de sortie de la matrice) et DSMCI7c (qui multiplexe les bits 0 à 7 du bus DSMA sur les bits 24-31 du bus DST de sortie de la matrice). A la phase n 2 du cycle d'horloge d'exécution, le décaleur circulaire reçoit les entrées de données sur les bus DSMA et DSMB et permute les octets en réalisant simplement une liaison élec- trique appropriée entre les bus DSMA, DSMB et les lignes de sortie DST. Ainsi, le format de données mémoire est auto- matiquement converti soit de "forts en premier" à "faibles en premier", soit de "faibles en premier" à "forts en pre- mier". Les données de sortie converties par la matrice traversent l'arbre du décaleur sans décalage supplémentaire, et sont ensuite chargées dans le -verrou de sortie 27 de l'unité arithmétique et logique. Z1 Dans le mode de réalisation actuellement préféré, l'instruction BSWAP est constituée de deux octets d'instruction sur 8 bits. Treize des bits do l'instruction sont définis comme constituant le code d'opération, tandis que les quatre bits inférieurs du second octet spécifient le registre devant participer à l'opération. Un aspect important de la présente invention est que l'instruction BSWAP a le mrne effet que l'instruction qui en serait la réciproque, de sorte qu'il n'est pas nécessaire de prévoir une instruction différente pour effectuer une con- version inverse à partir d'un format précédemm.ent converti. En d'autres termes, les données délivrées sur les bus d'en- trée de données 21 et 22 peuvent être-converties par la même instruction aussi bien de "forts en premier" à "faibles en premier" que de "faibles er. premier" à "forts en premier". Une autre opération o l'instruction BSWAP s'avère utile a lieu lors des opérations de chargemnent/mérmorisaion. -Con- sidérons le cas o un utilisateur souhaite exécuter des opérations sur une mac..-ine qui mémorise toutes les données en un format "faibles en premier". Si l'utilisateur exécute un chargement normal dans un registre suivi d'une ins- truction BSWAP, le format "forts en premier" est traduit automatiquement en format "faibles en premier", ce qui permet au processeur d'opérer dessus immédiatement (c'est-à- dire de procéder a une addition, une soustraction, une mul- tiplication, etc.). -Une fcis achevées toutes les opérations arithmétiques, le programmeur peut exécuter un autre BSWAP suivi d'une mémorisation normale en mémoire, qui restaure les données en mémoire à leur format originel. Si l'on veut réaliser une séquence d'opérations identiques sur un micro- processeur de l'art antérieur tel que le 80386, il faut bien plus de temps et de place mémoire. Bien que l'instruction de permutation d'octets de la présente invention soit définie ici pour des doubles mots de 32 bits, elle constitue également un bloc de base pour des conversions de forma, mémoire d'ordre supérieur (par exemple sur 64 bits et plus). Lors de l'exécution d'une permutation sur 64 bits, la machine commence par charger la quantité sur 64 bits dans deux registres. Ensuite, elle exécute des instructions BSWAP sur chacun des registres. Après cela, le processeur renomme simplement les registres dans l'ordre inverse. En d'autres termes, le registre contenant les bits de poids le plus fort est renommé comme étant le registre deÀ poids le plus faible, et vice versa. Cette manière de pro- céder o l'on renomme les registres évite d'avoir à permuter physiquement les registres. Les avantages en termes de per- formances deviennent considérables lorsque l'on met en oeuvre l'invention pour des conversions sur 64 bits et plus. 13 2645293 REVENDICATIONs 1. Des moyens d'exécution d'instruction pour permuter l'ordre des octets (A-D)d'un éliment àe dcr.nnée sur 32 bits conservé dans un registre d'un microprocesseur, caractérisé en ce qu'ils ccmprennenrt: - des moyens de couplage(20;23,24) pour coupler cet éloentde donnée présent sur une pluralité de lignes de données d'entrée (21,22; DSMA, DSMB)à une pluralité correspondante de lignes de données desortie (26;DSL),ie couplage étant conçu de ma- nière que les bits 0-7, 8-15, 16-23 et 24-31 de cet élément de donnée soient couplés, respectivement, aux positions bi- naires correspondantes 24-31, 16-23, 8-15, et 0-7 des lignes de données de sortie, et -des moyens de commande, reliés à ces moyens de couplage afin de commander cette permutation de l'ordre des octets de. l'élément de donnée. 2. Les moyens d'exécution d'instruction de la revendica- tion 1, comprenant en outre des moyens formant registre (27), couplés aux lignes de données de sortie (26;DSL) pour mémoriser l'élément de donrée permuté. 3. Les moyens d'exécution d'instruction de la revendica- tion 2, dans lesquels les moyens de couplage comprennent un décaleur circulaire-(20) comportant une pluralité de multi- plexeurs (41-119) couplant chacun au moins un bit de l'élé- ment de donnée présent sur les lignes de données d'entrée (21,22; DSMA, DSMB) à ladite ligne de données de sortie (26; DSL) correspondante. 4. Les moyens d'exécution d'instruction de la revendica- tion 2, dans lesquels l'instruction (BSWAP) comprend deux octets d'instruction. 5. Les moyens d'exécution d'instruction de la revendica- tion 2, dans lesquels la permutation de l'ordre des octets (A-D) est opérée en un cycle d'exécution d'horloge. 6. Un microprocesseur comprenant une mémoire, un décaleur circulaire (20) per-mettantde décaler un double mot'de donnée, ce décaleur recevant des données d'entrée sur un premier et un sezond bus (21,22;DSMA,DSM) et produisant une sortie avec déca- lage ou rotation sur un troisième bus (26;DSL), t conprenant des moyens d'exécution d'instruction pour modifier le format d'un élément de donnée sur 32 bits d'un premier format en un second format, caractérisé en ce que lesdits moyens d'exécution d'ins- truction comprennent: - un décaleur circulaire (20) comprenant une pluralité de lignes d'entrée, une pluralité de lignes de sortie, une plu- ralité de multiplexeurs (41-119), ces multiplexeurs reliant électriquement les bits de rang 0-7, 8-15, 16-23 et 24-31 à des positions binaires de rang 24-31, 16-23, 8-15 et 0-7, respectivement, des lignes de données de sortie lorsque les- dits multiplexeurs sont activés, et - des moyens de commande, couplés à cette pluralité de multiplexeurs pour activer ceux-ci. 7. Le microprocesseur de la revendication 6, dans lequel lesdits moyens d'exécution d'instruction modifient également le format de l'élément de donnée dudit second format en ledit premier format. 8. Le microprocesseur de la revendication 7, dans lequel ledit premier format est le format "forts en premier" et ledit second format est le format "faibles en premier". 9. Le microprocesseur de la revendication 8, dans lequel l'instruction comprend deux octets d'instruction. 10. Le microprocesseur de la revendication 7, dans lequel la modification desdits formats est opérée en un cycle d'horloge d'exécution. - 11. Un procédé pour convertir, dans un microprocesseur comprenant un jeu de registres internes et un décaleur circulaire (20), un élément de donnée mémorisé sous un premier format mémoire en un second format mémoire, caractérisé en ce qu'il comprend les étapes consistant à a: - appliquer en entrée ledit élément de donnée au décaleur circulaire sur une paire de bus d'entrée (DSMA, DSMB), - appliquer certains signaux de comr.ande au décaleur circulaire de manière à déclencher une conversion, - relier les bits de rang 0-7, 8-15, 16-23 et 24-31 dudit élément de donnée présents sur les bus d'entrée aux posi- tions binaires correspondantes de rang 24-31, 16-23, 8-15 et 0-7, respectivement, d'un bus de données de sortie DSLO, de manière à produire ainsi un élément de donnée converti. 12. Le procédé de la revendication 1l, comportant en outre une étape consistant à verrouiller ed élément de donnée converti dans un emplacement de mémore (27). 13. Un procédé pour convertir, dans un crdinateur com- portant une mémoire o les données sont mémorisées selon un premier format mémoire, un élément de donnée sur 32 bits en un second format mémoire, caractérisé en ce qu'il comprend les étapes consistant - déplacer ledit élément de donnée de la memoire vers un registre, - permuter l'ordre des octets de cet élément de donnée de manière que les bits de rang 0-7, 8-15, 16-23 et 23-31 de cet élément de donnée sous le premier format correspondent aux positions binaires de rang 24-31, 16-23, 8-15 et 0-7, respectivement, dudit registre, l'élément de donnée ainsi permuté étant sous ledit second format, et - verrouiller dans un verrou (27) cet élément de donnée per- muté. 14. Le procédé de la revendication 13, dans lequel, l'ordinateur comprenant en outre un déealeur circulaire (20) comportant une pluralité de lignes de bits d'entrée (CSA, DSMB) et une pluralité de lignes de bits de sortie (DSL), l'etape de permutation comprend les étapes consistant à - appliquer des signaux de commande à ce décaleur circu- faire de manière à relier électriquement les positions bi- naires de rang 0-7, 8-15, 16-23 et 24-31 desdites lignes de bit d'entrée aux positions binaires correspondantes de rang 24-31, 16-23, 8-15 et 0-7, respectivement, desdites lignes de bits de sortie, et - lire sur ces lignes de bits de sortie l'élément de donnée. 15. Le procédé de la revendication 14, dans lequel l'étape de permutation a lieu au cours d'un unique cycle d'horloge d'exécution. 16. Le procédé de la revendication 15, dans lequel ledit permier formar est le format "faibles en premier" et ledit- second format est le format "forts en premier".