Concept

Barrel shifter

Résumé
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.
À propos de ce résultat
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.