バレルシフタ
バレルシフタ(英: barrel shifter)は、ある特定のビット数分だけワードデータをシフトできるデジタル回路である。これはマルチプレクサを並べたものとして実装できる。この実装では一つのマルチプレクサの出力はシフト距離に依存するウェイ数分離れた段のマルチプレクサの入力に接続されている。必要なマルチプレクサの数はnビットワードに対しては、n*log2(n)である。よくある4つのワードサイズとそれに必要なマルチプレクサの数を以下に示す。
64-bit — 64 ∗ log 2  ( 64 ) = 64 ∗ 6 = 384 {\displaystyle 64*\log _{2}(64)=64*6=384}
32-bit — 32 ∗ log 2  ( 32 ) = 32 ∗ 5 = 160 {\displaystyle 32*\log _{2}(32)=32*5=160}
16-bit — 16 ∗ log 2  ( 16 ) = 16 ∗ 4 = 64 {\displaystyle 16*\log _{2}(16)=16*4=64}
8-bit — 8 ∗ log 2  ( 8 ) = 8 ∗ 3 = 24 {\displaystyle 8*\log _{2}(8)=8*3=24}
例えば、4入力A、B、C、Dを持つ4ビットのバレルシフタは、ABCDの順にビットを回転させることができる。つまり、3つのビット位置をすべて右にシフトすることができる(したがってA、B、C、Dのいずれも循環させることができる)。バレルシフタは(ALUと並んで)マイクロプロセッサ内の非常に重要なパーツに含まれ、様々な分野に応用されている。