Barrel-Shifter

Ein Barrel-Shifter ist ein Bauteil aus der Digitaltechnik. Es handelt sich dabei um eine spezielle Art einer kombinatorischen Schaltung, mit der binäre Verschiebungen oder Rotationen um eine beliebige, einstellbare Anzahl von Stellen erfolgen kann. Im Gegensatz zu Schieberegistern, welche wesentlich aus getakteten Flipflops wie dem D-Flipflop bestehen, ist der Barrel-Shifter eine kombinatorische Schaltung ohne Flipflops als Speicherelement. Bei Bedarf können in der digitalen Schaltung getaktete Flipflops nachgeschaltet werden, welche aber nicht für die eigentlich Funktion zwingend notwendig sind.

Sind die Bits innerhalb des Barrel-Shifters zyklisch miteinander verbunden, so spricht man auch von einem Barrel-Rotator.

Allgemeines

Im Unterschied zu gewöhnlichen Schieberegistern kann ein Barrel-Shifter in einem Schritt eine Verschiebung um mehrere Bit durchführen und vermeidet somit zeitaufwendige Schleifen bei der Durchführung mehrbittiger Schiebeoperationen. Je nach Anwendungsbereich kann dies einen erheblichen Geschwindigkeitsvorteil für das jeweilige Rechenwerk bedeuten, da diese Funktion meist in einem einzelnen Systemtakt ausgeführt werden kann.

Einen 4-Bit breiter Barrel-Rotator als einfachste Form besitzt vier Dateneingänge, zwei Steuereingänge und vier Datenausgänge. Wenn bei den Eingängen die Folge „ABCD“ anliegt, so kann als Funktion der möglichen 4 Zustände an den beiden Steuereingängen folgende Ausgangsfolgen erzeugt werden: ABCD, DABC, CDAB oder BCDA.

Der Barrel-Shifter ist häufig Bestandteil von Mikroprozessoren. Ebenso kann diese Logikfunktion in einem programmierbaren Logikbaustein (PLD), einem FPGA oder einem ASIC als Teil einer Gesamtschaltung realisiert werden. Mit diskreten Logikbauelementen wird diese Schaltungsfunktion heute kaum mehr realisiert, da mit diesen Bauelementen die erforderlichen meist hohen Taktfrequenzen nicht erreicht werden können und der Schaltungsaufwand für den Aufbau und die Verdrahtung viel zu groß ist.

Realisierung

Barrel-Shifter können verschiedenartig aufgebaut werden. Eine übliche Variante ist mittels Multiplexern, welche durch entsprechende Verschaltung und Steuerlogik eine Verschiebung um eine einstellbare Stellenanzahl bewirken. Um unterschiedliche Laufzeiten zu vermeiden, werden typischerweise 2-aus-1-Multiplexer kaskadiert. Je nach Breite des Barrel-Shifters werden verschieden viele 2-aus-1-Multiplexer benötigt, deren Anzahl überproportional steigt und daher für breite Barrel-Shifter zu einem entsprechend großen Schaltungsaufwand führt:

  • 64-bit – \scriptstyle 64 \cdot \log_2(64) = 64 \cdot 6 = 384
  • 32-bit – \scriptstyle 32 \cdot \log_2(32) = 32 \cdot 5 = 160
  • 16-bit – \scriptstyle 16 \cdot \log_2(16) = 16 \cdot 4 = 64
  • 8-bit – \scriptstyle   8 \cdot \log_2(8)  =  8 \cdot 3 = 24

Eine weitere Realisierungsmöglichkeit besteht in Form in digitalen Multiplizierwerken. Insbesondere wenn die digitale Schaltung, wie beispielsweise ein FPGA, nicht genutzte Hardware-Multiplizierer besitzt, lassen sich damit effizient Barrel-Shifter ohne Multiplexer realisieren.[1]

Daneben gibt es auch Barrel-Shifter als einzelne integrierte Schaltungen, wie beispielsweise der Baustein SN74AS897 welcher einen 8 Bit breiten Barrel-Shifter bietet.

Einzelnachweise

  1. Implementing Barrel Shifters Using Multipliers, Xilinx Application Note, Paul Gigliotti, 2004 (engl.)

Wikimedia Foundation.

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Barrel shifter — A barrel shifter is a digital circuit that can shift a data word by a specified number of bits in one clock cycle. It can be implemented as a sequence of multiplexers (MUX), and in such an implementation the output of one MUX is connected to the… …   Wikipedia

  • Barrel shifter — Принцип действия устройства быстрого сдвига …   Википедия

  • Barrel-shifter — Ein Barrel shifter ist ein Bauteil aus der Digitaltechnik. Es handelt sich dabei um eine Schiebelogikschaltung. Er besteht aus 2 auf 1 Multiplexern und Dekodern. Im Unterschied zu gewöhnlichen Schieberegistern kann ein Barrel shifter in einem… …   Deutsch Wikipedia

  • Barrel shifter — Ein Barrel shifter ist ein Bauteil aus der Digitaltechnik. Es handelt sich dabei um eine Schiebelogikschaltung. Er besteht aus 2 auf 1 Multiplexern und Dekodern. Im Unterschied zu gewöhnlichen Schieberegistern kann ein Barrel shifter in einem… …   Deutsch Wikipedia

  • barrel shifter — ● ►en /bar ail (ch)if t*r/ loc. m. ►PUCE câblage interne à un microprocesseur lui permettant de réaliser plusieurs shifts en un seul cycle machine (jusqu à 8 d un coup sur certains processeurs Motorola). Extrêmement rapidement, donc …   Dictionnaire d'informatique francophone

  • Barrel rotator — Ein Barrel shifter ist ein Bauteil aus der Digitaltechnik. Es handelt sich dabei um eine Schiebelogikschaltung. Er besteht aus 2 auf 1 Multiplexern und Dekodern. Im Unterschied zu gewöhnlichen Schieberegistern kann ein Barrel shifter in einem… …   Deutsch Wikipedia

  • FPU — Gleitkommaeinheit ist ein Begriff aus der Computertechnik und bezeichnet einen speziellen Prozessor, der mathematische Funktionen oder Gleitkommazahlen verarbeitet. Bei vielen modernen CPUs ist die FPU als Koprozessor realisiert. FPU oder NPU… …   Deutsch Wikipedia

  • Floating Point Unit — 80287, FPU einer 80286 CPU mit 6 MHz. Gleitkommaeinheit ist ein Begriff aus der Computertechnik und bezeichnet einen speziellen Prozessor, der mathematische Funktionen oder Gleitkommazahlen verarbeitet. Bei vielen modernen CPUs ist die FPU als… …   Deutsch Wikipedia

  • Gleitkomma-Einheit — 80287, FPU einer 80286 CPU mit 6 MHz. Gleitkommaeinheit ist ein Begriff aus der Computertechnik und bezeichnet einen speziellen Prozessor, der mathematische Funktionen oder Gleitkommazahlen verarbeitet. Bei vielen modernen CPUs ist die FPU als… …   Deutsch Wikipedia

  • Gleitkommazahl-Koprozessor — 80287, FPU einer 80286 CPU mit 6 MHz. Gleitkommaeinheit ist ein Begriff aus der Computertechnik und bezeichnet einen speziellen Prozessor, der mathematische Funktionen oder Gleitkommazahlen verarbeitet. Bei vielen modernen CPUs ist die FPU als… …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”