Un barrel shifter est un circuit électronique capable d'effectuer des opérations de décalage et de rotation binaires. Ce circuit est très souvent utilisé dans un processeur. Il peut être intégré dans une unité de calcul, ou constituer une unité de calcul à part entière.
Il existe deux grands types de décalages : les décalages logiques, et les décalages arithmétiques.
Le décalage logique, aussi appelé logical shift, consiste à décaler tous les chiffres d'un ou plusieurs crans vers la gauche ou la droite. Lors du décalage, des vides apparaissent dans la représentation binaire du nombre : ceux-ci sont alors remplis avec des zéros.
Grâce à ce remplissage par des zéros, un décalage vers la gauche de n rangs est équivalent à une multiplication par pour des entiers non-signés ou pour des entiers signés positifs. Même chose pour le décalage vers la droite qui revient à diviser un nombre entier par . Avec des nombres signés, ce n'est pas le cas : on obtient un résultat qui n'a pas grand sens mathématiquement.
Cette propriété est souvent utilisée par certains compilateurs, qui préfèrent utiliser des instructions de décalages (qui sont des instructions très rapides) à la place d'instructions de multiplication ou de division qui ont une vitesse qui va de moyenne (multiplication) à particulièrement lente (division).
Il faut remarquer un petit détail : lorsqu'on effectue un décalage à droite -, certains bits de notre nombre vont sortir du résultat et être perdus. Cela a une conséquence : le résultat est tronqué ou arrondi. Plus précisément, le résultat d'un décalage à droite de n rangs sera égal à la partie entière du résultat de la division par .
Les décalages arithmétiques sont similaires aux décalages logiques, à un détail près : pour les décalages à droite, le bit de signe de notre nombre n'est pas modifié, et on remplit les vides laissés par le décalage avec le bit de signe.
Ces instructions sont équivalentes à une multiplication/division par , que le nombre soit signé ou non, à un détail près : l'arrondi n'est pas fait de la même façon pour les nombres positifs et négatifs.
Cette page est générée automatiquement et peut contenir des informations qui ne sont pas correctes, complètes, à jour ou pertinentes par rapport à votre recherche. Il en va de même pour toutes les autres pages de ce site. Veillez à vérifier les informations auprès des sources officielles de l'EPFL.
Couvre la conception des sous-systèmes de chemin de données, en se concentrant sur les composants combinatoires de base et diverses options de mise en œuvre pour les additionneurs, les multiplicateurs et les leviers de vitesses.
En logique, une opération bit à bit est un calcul manipulant les données directement au niveau des bits, selon une arithmétique booléenne. Elles sont utiles dès qu'il s'agit de manipuler les données à bas niveau : codages, couches basses du réseau (par exemple TCP/IP), cryptographie, où elles permettent également les opérations sur les corps finis de caractéristique 2. Les opérations bit à bit courantes comprennent des opérations logiques bit par bit et des opérations de décalage des bits, vers la droite ou vers la gauche.
Un barrel shifter est un circuit électronique capable d'effectuer des opérations de décalage et de rotation binaires. Ce circuit est très souvent utilisé dans un processeur. Il peut être intégré dans une unité de calcul, ou constituer une unité de calcul à part entière. Il existe deux grands types de décalages : les décalages logiques, et les décalages arithmétiques. Le décalage logique, aussi appelé logical shift, consiste à décaler tous les chiffres d'un ou plusieurs crans vers la gauche ou la droite.