Brevet FR2805360A1 — publié le 20010824

DOMAINE TECHNIQUE La présente invention concerne de façon générale le domaine de la conception des processeurs. La présente invention concerne en particulier un rotateur d'octets à deux ports. CONTEXTE Un rotateur est utilisé dans un processeur pour la rotation et le transfert mot de données, qui contient un ou plusieurs octets d'informations, depuis un registre d'origine vers un registre destination. Dans les processeurs à pipelines multiples classiques, ces registres correspondent à des verrous d'étages de pipelines. Les données sont "mise en tube" depuis un etage de tube (registre d'origine) vers un autre étage de tube (registre destination) pour préparer leur écriture ultérieure dans l'antémémoire. En se basant sur un signal (ou des signaux) de commande, les octets du registre font l'objet d'une rotation de 0 à n emplacements dans une direction prédéfinie (par exemple, vers la gauche) lorsqu'ils sont mémorisés dans le registre destination. Dans certains cas, le rotateur peut également avoir la possibilité de mémoriser le mot ayant fait l'objet de la rotation dans format little ou big endian. La Figure 1 montre respectivement un premier et un second registres de 8 octets (64 bits) 40 et 60, pour représenter un registre de 8 octets et illustrer la différence entre les formats littie et big endian. Chaque registre comporte les octets A à H, où A correspond à l'adresse d'octet la plus basse registre et H correspond à l'adresse d'octet la plus haute à l'intérieur de celui-ci. En général, little ou big endian se réfèrent aux octets qui sont les plus significatifs dans des types de données à plusieurs octets. Dans les architectures endian, les octets d'adresse inférieure sont les plus significatifs. Inverse ment, dans les architectures little endian, les octets d'adresse supérieure sont plus significatifs. Ainsi, sur la Figure 1, le registre 40 est en format little endian et le registre 60 est en format big endian. La Figure 2 montre une représentation par blocs d'un rotateur de port unique 70 destiné à faire tourner et transférer les octets A à H du registre d'origine 62 de 8 octets vers un registre destination correspondant 64 de 8 octets. Le rotateur 70 comporte une entrée en 72 pour recevoir les octets du registre d'origine et une sortie en 74 pour fournir les octets du registre desti nation ayant fait l'objet de la rotation. Le rotateur 70 comporte également entrée en 75 pour recevoir un signal de mode endian (le/be) et entrée en 77 pour recevoir un signal de commande de rotation (sel[0:7]). Le signal de commande de rotation en 77 (qui comporte sel 0 à 7) définit un octet (ou vecteur) one-hot indiquant de combien d'emplacements octets doivent faire l'objet d'une rotation dans un aménagement de rotation à rebouclage. Un one-hot ou vecteur, se réfère au fait qu'un seul des 8 du signal de commande de rotation est actif. Ce bit actif correspond à l'emplacement de destination désiré de l'octet d'origine le moins significatif apres avoir fait l'objet d'une rotation avant tout changement de format endian. (Il est supposé que le registre d'origine est dans le format little endian ; ainsi, le bit one-hot identifie l'emplacement destination de l'octet A (ou octet apres rotation avant tout changement de format endian.) Par exemple, valeur d'octet de commandes de rotation de 0000001 indique que l'octet d'origine A doit se terminer dans l'octet de destination A (c'est-à-dire, sans rotation). Un autre exemple est une valeur de commande de rotation de 10000000, indiquant que l'octet d'origine A doit se terminer dans l'octet de destination H, qui correspond à une rotation vers la gauche de sept emplacements. Dans cet exemple, l'octet d'origine H se termine dans l'octet de destination G, l'octet d'origine G se termine dans l'octet de destination F et ainsi de suite, l'octet d'origine B se terminant dans l'octet de destination A. 11 faut remarquer que ceci est équivalent à la rotation d'un emplacement vers la droite. La direction de la rotation est une aide conceptuelle arbitraire. Le signal de mode endian (Ie/be) en 75 est une valeur d'un bit qui déter mine si le mot faisant l'objet de la rotation dans le registre destination doit être dans le format little ou big endian. Si little endian (le) est actif, le mot faisant l'objet de la rotation doit être transféré dans le registre destination dans format little endian. Comme alternative, si big endian (be) est actif, le mot faisant l'objet de la rotation dans le registre destination doit être dans le format big endian. La Figure 3 montre un rotateur de port unique classique 115 de 8 octets, pour transférer et faire tourner des données provenant d'un registre d'origine 103 vers un registre destination 133. Le registre d'origine 103 com- porte huit verrous d'octets d'origine 103A 103H et le registre destination comporte huit verrous d'octets destination 133A à 133H. Le rotateur 115 comporte huit multiplexeurs d'octets 8:1 de rotateur little endian ("LER") 117A à 117H, huit multiplexeurs d'octets 8:1 de rotateur big endian ("BER") 119A à 119H et huit multiplexeurs d'octets 2:1 de sélection de mode endian ("EMS") 121A à 121H. Il faut comprendre qu'un verrou d'octet comprend 8 verrous de bits individuels pour verrouiller un octet de données. Toutefois, les verrous sont représentés et il y est référé en termes d'octets, car les bits situés à l'intérieur d'un octet donné (par exemple, l'octet 0) sont traités de façon égale, c'est-à-dire restent ensemble. Le même concept s'ap plique pour les multiplexeurs d'octets 117, 119 et 121. C'est-à-dire qu'ils sont traités comme des multiplexeurs d'octets 8:1 ou 2:1 pour multiplexer des octets plutôt que des bits. Les multiplexeurs d'octets 8:1 comportent en fait 64 entrées de ligne de données et 8 sorties de ligne de données et les multiplexeurs d'octets 2:1 comportent 16 entrées de ligne de données et 8 sorties de ligne de données. Chacune des 8 sorties des huit verrous d'origine, 103A à H, est respecti vement connectée comme entrée à chacun multiplexeurs de rotateur little et big endian 11 7A à 117H et 119A à 119H. De cette manière, chacun de ces multiplexeurs peut transmettre l'un quelconque des octets 0 à 7. Chaque sortie de multiplexeur de rotateur est connectée comme entrée à un multiplexeur de sélection de mode endian associé. En conséquence, les sorties du multiplexeur LER 117A et du multiplexeur BER 119A sont délivrées dans les entrées d'octets du multiplexeur EMS 121 A ; les sorties du multiplexeur LER 117B et du multiplexeur BER 119B sont délivrés dans les entrées d'octets du multiplexeur EMS 121 B et ainsi de suite avec les sorties du multiplexeur LER 11 7H et du multiplexeur BER 119H délivrées dans les entrées d'octets du multiplexeur EMS 121 H. Les sorties de chacun des multiplexeurs EMS sont à leur tour délivrées dans leurs verrous de destination associés. C'est-à-dire que la sortie du multiplexeur EMS 121 A est connectée à l'entrée de la bascule D 33A, la sortie du multiplexeur EMS 121B est connectée à l'entrée de fa bascule D 33B et ainsi de suite avec la sortie du multiplexeur EMS 121 H connectée à l'entrée de la bascule D 33H. Les lignes de commande du rotateur (seI[7:0]) sont connectées à chacune des entrées de sélection des multiplexeurs LER BER pour commander l'octet traversant chacun de ces multiplexeurs pour mettre en oeuvre convenablement des rotations à la fois dans les formats littie (multiplexeur 117) et big (multiplexeur 119) endian. Les lignes mode little endian (mode le) et de mode big endian (mode be) sont connectées aux entrées de sélection de chacun des multiplexeurs EMS, 121A à 121 H, pour sélectionner les sorties de multiplexeur du rotateur little ou endian. Les lignes de mode endian provoquent la traversée vers le registre destination des octets ayant fait l'objet de la rotation, dans le format little big endian. Ainsi, les signaux de commande de mode endian et de rotateur provoquent la transmission des octets appropriés vers le registre destination pour effectuer une rotation désirée dans un mode endian sélectionné. Les entrées de sélection des multiplexeurs LER et BER sont configurées chacune de la même façon pour les lignes de commande du rotateur sel[7:0]. Toutefois, les entrées de données d'octets pour chacun de ces multiplexeurs sont configurées différemment les unes des autres pour mettre en oeuvre les diverses rotations. Elles reçoivent chacune l'ensemble des huit octets d'origine octet 0 à octet 7, mais elfes sont agencées dans un ordre légèrement différent pour effectuer les diverses combinaisons de rotation. Malheureusement, le rotateur 115 est seulement capable de faire tourner des données dans un port unique. Pour faire tourner et transférer des données à l'intérieur d'un système à ports multiples, le rotateur 115 doit etre dupliqué, un pour chaque port. Par exemple, pour faire tourner des octets situés entre les doubles registres d'origine/destination, deux ensembles de multiplexeurs de rotateur little et big endian et deux ensembles de multiplexeurs sélection de mode endian sont nécessaires. Ceci constitue des inconvénients à cette mise en oeuvre. Elle est, par exemple, très coûteuse du point de vue matériel. La duplication complète de tous les verrous, de tous les multiplexeurs, du câblage, est requise. En particulier, cette duplication est extrêmement coûteuse du point de vue des connexions filaires. En conséquence, ce qui est nécessaire est un rotateur amélioré capable de faire tourner et transférer des octets de données dans plus d'un port. RÉSUMÉ DE L'INVENTION buts, caractéristiques et avantages techniques, ainsi que d'autres sont obtenus par un système et un procédé pour transférer et faire tourner des octets données dans un premier et un second ports avec un rotateur unique par l'intermédiaire d'un multiplexage temporel. Avec le rotateur de la presente invention, des octets de données provenant des premier et second registres d'origine font l'objet d'une rotation et sont transférés respectivement vers un premier et un second registres destination. Une horloge ayant une première et une seconde phases est utilisée. Les octets du premier registre d'origine sont multiplexés dans le rotateur lorsque l'horloge se trouve dans sa première phase. Les octets multiplexés du premier registre d'origine font ensuite l'objet d'une rotation en se basant sur un signal de commande de rotation pour les premiers registres d'origine/destination. Les octets ayant fait l'objet de la rotation sont transférés vers le premier registre destination en réponse à la transition d'horloge de la première à la seconde phase. Les seconds octets d'origine sont multiplexés vers le rotateur lorsque l'horloge se trouve dans la seconde phase. Les octets multiplexés font ensuite l'objet d'une rotation en se basant sur un signal de commande de rotation pour les seconds registres d'origine/destination et les octets ayant subi la rotation sont transférés vers le second registre destination en réponse à fa transition d'horloge en retour de la seconde à la première phase. Ce qui précède a souligné relativement grossièrement les caractéristiques et avantages techniques de la présente invention pour que la description détaillée de l'invention qui suit puisse être mieux comprise. D'autres caracté ristiques avantages de l'invention vont être décrits ci-après, faisant l'objet des revendications de l'invention. Les hommes de l'art comprendront fa conception et le mode de réalisation spécifiques décrits peuvent être facile ment utilisés comme base pour modifier ou concevoir d'autres structures pour exécuter mêmes buts de la présente invention. Les hommes de l'art doivent également comprendre que ces constructions équivalentes ne s'écartent de l'esprit et la portée de l'invention tels que présentés dans les revendications annexées. BRÈVE DESCRIPTION DES DESSINS Pour une compréhension plus complète de fa présente invention de ses avantages, il est maintenant fait référence aux descriptions suivantes, effectuées conjointement avec les dessins annexés, dans lesquels - la Figure 1 montre les formats little et big endian ; - la Figure 2 montre un schéma d'un rotateur classique ; - la Figure 3 montre une représentation schématique générale rota teur de l'art antérieur ; - la Figure 4 montre une représentation par blocs d'un mode de réalisation du rotateur à deux ports de la présente invention ; et - les Figures 5A et 5B montrent un mode de réalisation du rotateur à deux ports de la Figure 4. DESCRIPTION DÉTAILLÉE La présente invention fournit un aménagement pour faire tourner et transférer des données entre des registres d'origine et destination dans un premier et un second port avec essentiellement un circuit rotateur commun. Ceci est obtenu par multiplexage temporel. Avec un signal d'horloge classique à deux phases pour commander le rotateur, les octets de données du premier sont tournés/transférés avec la première phase de l'horloge et les octets de données du second port sont tournés/transférés avec la seconde phase de l'horloge. Ces première et seconde phases d'horloge correspondent respecti vement aux signaux "CLK" et "NCLK" actifs. La Figure 4 montre un schéma synoptique d'un mode de réalisation d'un rotateur à deux ports 215 de la présente invention. Le rotateur 215 transfère/ fait tourner les octets de données des registres d'origine, 203, 207, port 0 et du port 1, vers leurs registres destination respectifs, 233, 237, du port 0 et du port 1. Le rotateur 215 représenté est généralisé pour admettre des registres de N octets et la logique est adressée par octet. II faut comprendre que bien qu'un "octet" de données soit normalement considéré comme étant constituées de 8 bits de données, un octet est un paramètre de conception arbitraire pouvant être constitué d'un ou plusieurs bits de données. Les registres 203, 207, 233 et 237, sont des registres classiques de N octets (ou matrices de verrous) pour mémoriser et transmettre N octets de données, chaque octet étant maintenu et accessible séparément. Le registre d'origine 203 du port 0 comporte une sortie à "NBPO" pour fournir les octets de données du port 0 et le registre d'origine 207 du port 1 comporte une sortie "NBPI" pour fournir les octets de données de Pl. Chacun des registres d'origine 203, 207, est synchronisé avec les signaux CLK. Le registre destination 233 du port 0 et le registre destination 237 du port 1 ont une entrée commune en "NBytes R". Toutefois, le registre destination 233 du port 1 comporte un étage de registre de seconde phase ', qui est synchro nisé avec le signal d'horloge NCLK et un étage de registre de première phase 233', qui est synchronisé avec le signal CLK. Le registre destination 237 du port comprend un étage de registre de première phase unique, qui est synchronisé avec le signal d'horloge CLK. Les termes première phase" et "seconde phase" indiquent que le dispositif (registre) est synchronisé avec une transition d'horloge respectivement vers la première ou la seconde phase. rotateur 215 comporte une matrice de multiplexeurs de port 217, une matrice de multiplexeurs de rotateur 220 et une logique de commande 225. matrice de multiplexeurs de port 217 est un multiplexeur 2:l de N octets pour transmettre N octets de données de l'une ou l'autre d'une pre mière entrée ou d'une deuxième entrée vers une sortie dépendant de laquelle de ses deux lignes de sélection one-hot est sélectionnée. première entrée en NBPO connectée à la sortie du registre d'origine 203 du port 0 pour recevoir ses N octets de données : octet 0 à octet N-1. De même, la seconde entrée en NBP 1 est connectée à la sortie du registre d'origine 207 du port 1 pour recevoir ses N octets de données : octet 0 à octet N-1. Le signal CLK est connecté à la première entrée de sélection pour sélectionner l'entrée NBPO (octets du port 0) et le signal NCLK est connecté à la seconde ligne de sélection pour sélectionner l'entrée NBP1 (octets de données du port 1). La matrice de multiplexeurs de rotateur 220 comporte des multiplexeurs pour le placement sélectif des N octets d'origine du port 0 et du port 1 à des emplacements appropriés à l'intérieur de leurs registres destination respectifs du port 0 et du port 1 pour mettre en oeuvre une rotation désirée dans un mode endian désiré. La matrice de multiplexeurs de rotateur 220 comporte une entrée en "NBytes NR" qui est connectée la sortie du multiplexeur de port 217 pour recevoir séparément les octets de données du port 0 et du port 1. Elle comporte également une entrée "Rotator Select" pour recevoir un signal "MUX Select" de la logique de commande 225, qui reçoit à son tour des signaux "PO/P 1 Endian" et "PO/P 1 Rotation Control" pour déterminer la rotation et le mode endian désirés à la fois pour les ports 0 et 1. Enfin, la matrice de multiplexeurs de rotateur 220 comporte une sortie en "NByte R" pour fournir respectivement les N octets de données ayant fait l'objet d'une rotation provenant du port 0 et du port 1 vers leurs registres destination 233 et 237. La sortie de la matrice de multiplexeurs de rotateur 220 est connec tée aux entrées des deux registres destination 233, 237, de PO et Pl en NBytes R. En fonctionnement, lorsque CLK est active, les octets de données du port 0 sont transmis par l'intermédiaire de la matrice de multiplexeurs de port 217 à la matrice de multiplexeurs de rotateur 220 en NBytes R. À ce moment, en se basant sur les entrées Rotator Select de la logique de commande 225, la matrice de multiplexeurs rotateur 220 est configurée (ou sélectionnée) pour transmettre les N octets de données de PO ayant convenablement tourné et dans le mode endian approprié. Ces N octets de données ayant tourné sont générés à la sortie NBytes R, qui est délivrée aux deux registres destination 233, 237, du 0 et du port 1. Toutefois, puisque ceci se produit dans une (première) phase de CLK, l'horloge effectue ensuite une transition vers la (seconde) phase de NCLK, provoquant seulement le blocage des octets de données du port 0 par le registre destination 233 du port 0 (son étage de première, seconde phase 233'). En d'autres termes, les données ne sont saisies que par le registre destination du port 0 et non par celui du port 1. Pendant la phase NCLK, la même opération de rotation se produit maintenant pour les octets de données du port 1, faisant l'objet d'une rotation et étant transférés dans le registre destination 237 du port 1 à la transition d'horloge suivante, qui s'effectue en retour de la seconde phase (NCLK) vers la première phase (CLK). Avec cette transition, les données du port 0 du premier étage 233' du registre destination 233 du port 0 sont bloquées dans le second étage du registre destination 233" du port 0 pour les synchroniser avec les octets de données du port 1. II faut comprendre que pendant la première phase (lorsque CLK est active), les signaux PO/Pl endian et PO/Pl Rotation Control pour le port 0 sont actifs. Inversement, pendant la seconde phase (lorsque NCLK est active), les signaux PO/Pl endian et PO/P1 Rotation Control pour le port 1 sont actifs. Les Figures 5A et 5B montrent un mode de réalisation d'un rotateur deux ports 315 de 8 octets de la présente invention. Le rotateur 315 est un mode de réalisation du rotateur de la Figure 4. Le rotateur 315 fait tourner/transfère respectivement les octets 0 à 7 des registres d'origine 303, 307 port 0 et du port 1 vers les registres destination 333, 337 du port 0 et du port 1. Comme représenté sur les Figures 5A et 58, le registre d'origine 303 du port 0 comporte le verrou d'octet 303A (octet 0), le verrou d'octet 303B (octet 1) et ainsi de suite jusqu'au verrou d'octet 303H (octet 7). De même le registre d'origine 307 du port 1 comporte le verrou d'octet 307A (octet le verrou d'octet 307B (octet 1) et ainsi de suite jusqu'au verrou d'octet 307H (octet 7). Le registre destination 337 du port 1 comporte le verrou d'octet 337A (octet 0), le verrou d'octet 337B (octet 1) et ainsi de suite jusqu'au verrou d'octet 337H (octet 7). Chacun de ces verrous d'octet (situés l'intérieur des registres 303, 307 et 337) est un verrou d'octet de première phase, c'est-à-dire qu'il "bloque" lorsque l'horloge effectue une transition vers la première phase. Ainsi, comme pour le rotateur de la Figure 4, chacun des verrous d'octet des registres d'origine du port 0 et du port 1 est synchronisé par le signal d'horloge CLK. Chacun des verrous d'octet du registre destination du port 1 est également synchronisé par l'horloge CLK. Le registre destination 333 du port 0 comporte un verrou d'octet de premier étage de seconde phase 333A' en série avec un verrou d'octet de second étage de première phase 333A" (octet 0) ; un verrou d'octet de premier étage de seconde phase 333B' en série avec un verrou d'octet de second étage de première phase 333B" (octet 1) ; et ainsi de suite jusqu'au verrou d'octet de premier étage de seconde phase 333H' en série avec un verrou d'octet de second étage de première phase 333H" (octet 7). Par opposition au verrou d'octet de première phase, les verrous d'octet de seconde phase "bloquent" leurs octets en réponse à une transition vers la seconde phase d'horloge (c'est-à-dire, NCLK active). De façon cohérente avec le rotateur de la Figure 4, les verrous d'octet de premier étage de seconde phase du port 0 sont synchronisés avec NCLK (transition vers la seconde phase) et les verrous destination de second étage de premiere phase du port 0 sont synchronisés avec CLK (transition vers la première phase d'horloge). Le rotateur 315 comporte une matrice de multiplexeurs de port 317, une matrice de multiplexeurs de rotateur 320 et une section logique de commande 325. La matrice de multiplexeurs de port 17 comprend des multiplexeurs d'octets 2:1 317A, 317B et ainsi de suite jusqu'à 317H. De façon similaire, la matrice de multiplexeurs de rotateur 320 comprend des multiplexeurs d'octets 8:1 320A, 320B et ainsi de suite jusqu'à 320H. La section logique de commande 325 comprend un multiplexeur d'octets 2:1 326, un multiplexeur de bits 2:1 327 et huit multiplexeurs d'octets 2:1 328A, 8B et ainsi de suite jusqu'à 328H. Les registres d'origine 303, 307 du port 0 et du port 1 sont envoyés vers les entrées de la matrice de multiplexeurs de port 317. C'est-à-dire que le verrou d'octet 303A du port 0 et le verrou d'octet 307A du port 1 sont connectés aux première et seconde entrées du multiplexeur d'octets 317A ; le verrou d'octet 303B du port 0 et le verrou d'octet 307B du port 1 sont connectés aux première et seconde entrées du multiplexeur d'octets 317B ; et ainsi de suite avec le verrou d'octet 303H du port 0 et le verrou d'octet 307H du port 1 connecté aux première et seconde entrées du multiplexeur d'octets 317H. Chaque multiplexeur de port 317A à 317H comporte des entrées de sélection CLK et NCLK pour sélectionner respectivement les chemins de données du port 0 et du port 1. Lorsque CLK est active, les octets du port 0 sont commutés vers les sorties des multiplexeurs de port 31 7A à 317H. Inversement, lorsque NCLK est active, les octets du port 1 sont commutés vers ces sorties. En référence à la section de commande 325, le multiplexeur de bits 2:1 326 comporte des première et seconde entrées qui sont respectivement alimentées par les entrées de mode endian du port 0 et du port 1, PO belle et P1 belle. Chacun de ces signaux est un signal d'un bit, l'état bas correspon dant au mode big endian et l'état haut correspondant au mode little endian. Les signaux CLK et NCLK servent de signaux de sélection pour ces entrées. Ainsi, lorsque CLK est active, le signal de mode endian du port 0 est commuté vers la sortie du multiplexeur 326 et lorsque NCLK est active, le signal de mode endian du port 1 est commuté vers cette sortie. De façon similaire, les signaux de commande de rotation du port 0 (PO-Sel[0:7]) et du port l (P1 Sel[0:7]) sont délivrés respectivement dans les première et seconde entrées du multiplexeur d'octets 2:1 327. Chacun de ces signaux de commande de rotation est un vecteur one-hot de 8 bits. Les signaux CLK et NCLK sont utilisés comme entrées de sélection pour sélectionner ces signaux de commande de rotation du port 0 et du port 1. Lorsque CLK active, le signal PO Sel[0:7] est commuté vers la sortie du multiplexeur 327. Inversement, lorsque NCLK est active, le signal Pl Sel[0:7] est commuté à la sortie. Les entrés vers les huit multiplexeurs 2:1 de sélection d'octet 328A à 328H sont chacune délivrées depuis la sortie du multiplexeur 32 , qui fournit les signaux de commande de rotation pour les ports 0 et 1. Comme représenté sur les Figures 5A et 5B, chacune de ces entrées est câblée différemment pour obtenir les diverses combinaisons de rotation et de mode endian. signaux de commande de rotation configurés différemment servent d'entrée de sélection pour les multiplexeurs de rotateur dans la matrice de multiplexeurs de rotateur 320. Les sorties de chacun des multiplexeurs de sélection 328A à 328H fournissent ces signaux de sélection de rotateur dans les modes soit big, soit little endian. L'entrée de sélection décodée pour chacun des huit multiplexeurs de sélection 328A à 328H provient du signal de mode endian, belle, la sortie du multiplexeur de bits 326. En référence au dessin, le premier signal de sélection de rotateur (ou supérieur) pour chaque multi- plexeur 328 (par exemple, sel[6:0,7] en 328 A) est sélectionné lorsque belle est à l'état bas. Ceci correspond à un résultat de rotation dans le format big endian. Inversement, le deuxième signal de sélection de rotateur (ou inférieur) du multiplexeur 328 est sélectionné lorsque belle est à l'état haut, ce qui correspond aux résultats de rotation dans le format little endian. L'ordre des bits de sélection à l'intérieur de chaque signal de sélection de rotateur est différent pour chaque multiplexeur de sélection 328. Comme représenté sur le dessin, les lignes de sélection pour le mode big endian du multiplexeur 328A sont sel[6:0,7]. Ceci indique que les lignes de sélection dans cet octet sont agencées dans l'ordre suivant : sel 6, sel 5, sel4 ... sel 0, sel 7. Les lignes de sélection pour le mode little endian du multiplexeur 328A sont sel[0,7:1 ], indiquant que les lignes de sélection sont ordonnées comme suit : sel 0, sel 7, sel 6 ... sel 1. Dans le multiplexeur 328B, le signal de sélection rotateur pour le mode big endian est sel[5:0,7,6] et pour le mode little endian est sel[1:0,7:2]. Ce motif se poursuit pour les multiplexeurs de sélection 328C 328H, le signal de sélection de rotateur du multiplexeur 328H pour le mode big endian étant sel[7:0] et pour le mode little endian étant sel[7:0]. En référence aux multiplexeurs de rotateur 320A à 320H, chacun de ces multiplexeurs d'octets 8:1 comporte une première jusqu'à une huitième entrees de données qui sont respectivement sélectionnées par une première jusqu'à une huitième entrées de sélection one-hot. Sur le dessin représenté, la première jusqu'à la huitième entrées de données sont indiquées par BO:B7 (octet 0 à octet 7). La première jusqu'à la huitième entrées de sélection sont lues gauche à droite pour sélectionner respectivement la première jusqu'à la huitième entrées de données (octet 0 à octet 7). Les sorties du multiplexeur de ports (317A à 317H) sont connectées chacune de la même façon en séquence à chacune de ces entrées de données en BO:B7. Les entrées de sélection pour les multiplexeurs de rotateur 320A à 320H sont respective ment commandées par les signaux de sélection de rotateur provenant des sorties des multiplexeurs de sélection 328A à 328H. Ainsi, les entrées de sélection des multiplexeurs de rotateur sont configurées différemment pour chaque multiplexeur de rotateur, ce qui permet à la matrice de multiplexeurs de rotateur 320 de mettre en oeuvre les diverses combinaisons de rotation à la fois pour les modes little et big endian. Les sorties des multiplexeurs de rotateur (320A à 320H) sont connectées aux registres destination 333 et 337 du port 0 et du port 1. En particulier, les sorties des multiplexeurs de rotateur 320A à 320H sont connectées aux entrées des verrous d'octet seconde phase (NCLK) 333A' à 333H' du port 0 et aux entrées des verrous d'octets de première phase 337A à 337H du port 1. Pendant le fonctionnement, le rotateur 315 fait tourner les octets entre les registres d'origine et destination du port 0 et du port 1, chaque tournant au niveau de la phase. Pendant la première phase (lorsque l'horloge est à l'état haut, c'est-à-dire que CLK est active), les octets du port 0 sont multiplexés par les multiplexeurs de ports 317A à 317H vers les multiplexeurs de rotateur correspondants 320A à 320H. Cette première phase d'horloge provoque également le multiplexage des signaux de mode endian du port 0 et de commande de rotation, PO_be/fe et PO sel[0:7], respectivement par les multiplexeurs 326 et 327, à l'intérieur de la logique de commande 325. Pendant cette première phase d'horloge, les multiplexeurs de rotateur 320A 320H sont sélectionnés avec les signaux de sélection de rotateur du port pour le mode endian approprié. Ainsi, pendant cette première phase d'horloge, lorsque CLK est à l'état haut, les octets du port 0 sont transmis de façon sélective par les multiplexeurs de rotateur 320A à 320H pour effectuer la rotation convenable dans le mode endian convenable. C'est-à-dire qu' niveau de chaque multiplexeur de rotateur, l'octet approprié de l'octet 0 à l'octet 7 est sélectionné pour mettre en oeuvre la rotation globale. Avant la transition d'horloge de la première à la seconde phase, les octets appropriés sont presents sur les sorties des multiplexeurs de rotateur 320 À 320H. En conséquence, en réponse à la transition d'horloge de la première à la seconde phase (de l'état haut à l'état bas, c'est-à-dire que NCLK devient active), les octets du port 0 ayant tourné sont transférés dans les verrous de seconde phase 333A' à 333H' du registre destination 333 du port 0. Puis, lors d'une transition de la seconde à la première phase, ils sont transférés vers les verrous de première phase 333A' à 333H' du registre destination du port 0. Cette transition finale synchronise les octets de destination du port 0 avec ceux du signal , ainsi que le registre destination du port 1. Une autre manière d'envisager ceci consiste à considérer les verrous de la seconde phase (premier étage) 333A' à 333 H' du registre destination du port 0 comme un registre préliminaire ou tampon vers le registre destination du port 0, qui peuvent simple ment être considérés comme les verrous de la première phase 333A" à 333H". Les octets du port 1 font l'objet d'une rotation et sont transférés dans le registre destination du port 1 de la même manière mais avec quelques excep tions. Les octets d'origine du port 1 et les signaux de commande du port 1 (be/Ie et P1 sel[0:7]) sont multiplexés vers les multiplexeurs de rotateur 320A à 320H pendant la seconde phase d'horloge (l'horloge est à l'état bas) plutôt que la première phase d'horloge. Les octets du port 1 ayant fait l'objet d'une rotation sont à leur tour délivrés en sortie au niveau des sorties des multiplexeurs de rotateur pendant la seconde phase. En conséquence, les verrous préliminaires (ou de premier étage) de seconde phase ne sont pas requis pour le registre destination du port 1, car les octets ayant faits l'objet d'une rotation sont capturés avec les verrous de première phase du registre 337. La présente invention soulage un grand nombre des problèmes associés aux conceptions de rotateurs classiques. L'invention, en particulier, divise deux le nombre de fils. De plus, puisque les diverses combinaisons de rotation sont obtenues en faisant varier les lignes de sélection des multiplexeurs rotateur au lieu d'avoir des configurations d'entrée de données séparées (qui nécessitent un multiplexeur de rotateur séparé pour chaque mode endian), nombre de multiplexeurs de rotateur requis est sensiblement réduit. Cette économie de circuit est doublée en prenant en compte le fait qu'un rotateur de la présente invention peut desservir deux ports plutôt qu'un seul. En conséquence, le rotateur à deux ports de la présente invention convient de façon idéale pour un processeur parallèle (à pipelines multiples), le port correspondant à un premier pipeline et le port 1 correspondant à un second pipeline. II n'y a pas de pénalisation de pipeline, car les deux rotations (port et port 1) se produisent pendant un cycle de pipeline, de sorte qu'il n'y a pas de pénalité de performance pour la mise en ceuvre de cette fonctionnalité particulière dans la mesure où les dispositifs sont suffisamment "rapides" pour fonctionner avec une période d'horloge suffisamment minimale. Bien la présente invention et ses avantages aient été décrits en détail, il faut comprendre que diverses modifications, remplacements et variantes peuvent y etre apportés sans s'écarter de l'esprit et de la portée de l'invention tels que définis par les revendications annexées. De plus, la portée de la présente demande n'est pas destinée à être limitée aux modes de réalisation particuliers processus, machines, fabrication, composition des éléments, moyens, procédés et étapes décrits dans la spécification. Comme le compren dront facilement les hommes de l'art d'après la description de la présente invention, processus, machines, fabrication, composition des éléments moyens, procédés ou étapes présentement existants ou destinés à être réalisés ultérieurement qui exécutent sensiblement la même fonction ou obtiennent sensiblement mêmes résultats, que les modes de réalisation correspondants ici décrits, peuvent être utilisés selon la présente invention. En conséquence, les revendications annexées sont destinées à comporter à l'intérieur de leur portée ces processus, machines, fabrications, compositions d'éléments moyens, procédés ou étapes. REVENDICATIONS 1. Rotateur à deux ports (215) pour transférer et faire tourner des octets de données provenant d'un premier et d'un second registres d'origine (203, 207) respectivement vers un premier et second registres destination (233, 237), comprenant (a) une matrice de multiplexeurs de (217) connectée fonctionnelle- ment aux premier et second registres d'origine pour recevoir des octets de données depuis chaque registre, matrice de multiplexeurs de ports étant connectée à une horloge qui possède une première et une seconde phases, dans lequel la matrice de multiplexeurs de port fournit sur une sortie les octets du premier registre d'origine lorsque l'horloge est dans sa première phase et les octets du second registre d'origine lorsque l'horloge est dans sa seconde phase ; (b) une logique de commande (225) comportant une entrée pour recevoir un signal de commande de rotation qui indique une rotation des octets des registres d'origine désirée pour chacun des premier et second registres d'origine et une sortie pour fournir un signal de sélection de rotateur pour effectuer la rotation désirée ; et (c) une matrice de multiplexeurs de rotateur (220) connectée fonctionnelle- ment à la sortie de la matrice de multiplexeurs de ports pour recevoir séparément les octets des premier et second registres d'origine en se basant sur la phase du signal d'horloge, la matrice de multiplexeurs de rotateur ayant une entrée connectée à la sortie de la logique de commande pour recevoir le signal de "lection de rotateur, la matrice de multiplexeurs de rotateur ayant une sortie connectée fonctionnellement aux premier et second registres destination pour fournir les octets des premier et second registres d'origine tournés en fonction du signal de commande de rotation, en réponse signal de sélection de rotateur, dans lequel le premier registre destination reçoit les octets tournés du premier registre d'origine en réponse à la transition d'horloge de la première à la seconde phase et le second registre destination reçoit les octets tournés du second registre d'origine en réponse ' la transition d'horloge de la seconde vers la première phase. 2. Rotateur selon la revendication 1, caractérisé en ce que premier et second registres d'origine (203, 207) sont chacun des registres de N octets, la matrice de multiplexeurs de ports comprenant des multiplexeurs de N octets, chacun des N multiplexeurs étant connecté à un octet à l'intérieur de chacun premier et second registres d'origine. 3. Rotateur selon la revendication 2, caractérisé en ce que chacun des N multiplexeurs de ports (217) est un multiplexeur 2:1 d'octets avec une première entrée de sélection pour sélectionner le premier registre d'origine (203) et une seconde entrée de sélection pour sélectionner le second registre d'origine (207), dans lequel le signal d'horloge est connecté a la première entrée de sélection et un signal d'horloge inverse est connecté à la seconde entrée de sélection. 4. Rotateur selon la revendication 1, caractérisé en ce que la matrice de mul tiplexeurs de rotateur (220) comprend un ou plusieurs multiplexeurs d'octets. 5. Rotateur selon la revendication 4, les registres d'origine (203, 207) ayant chacun N octets, caractérisé en ce que la matrice de multiplexeurs de rotateur (220) comporte au moins N multiplexeurs d'octets N: l qui sont chacun connectés fonctionnellement à la matrice de multiplexeurs de ports 217 pour recevoir les N octets à la fois du premier et du second registres d'origine. 6. Rotateur selon la revendication 5, caractérisé en ce la logique de commande (225) fournit un signal de sélection de rotateur unique pour chaque multiplexeur de rotateur (220) pour faire en sorte sélectionne un octet approprié pour mettre en oeuvre la rotation désirée. 7. Rotateur selon la revendication 1, caractérisé en ce la logique de commande (225) comporte en outre une entrée pour recevoir un signal de mode endian pour chaque registre d'origine, dans lequel logique de commande incorpore le signal de mode endian en fournissant le signal de sélection de rotateur pour faire en sorte que les octets du registre d'origine ayant fait l'objet d'une rotation se trouvent dans un mode endian convenable.