Indietro

ⓘ Barrel shifter




                                     

ⓘ Barrel shifter

Un barrel shifter è un circuito digitale progettato per eseguire operazioni di bit shift su un data word in un tempo corrispondente ad un ciclo di clock. Può essere implementato come una sequenza di multiplexer in cui luscita di un dato multiplexer è connessa allingresso di quello successivo.

Come esempio, si consideri un barrel shifter che opera su una word di 4 bit ABCD: il circuito può ruotare lordine dei bit ABCD effettuando uno o più spostamenti verso destra senza alcuna perdita di bit, in modo da ottenere in uscita DABC, CDAB, BCDA o ABCD. Il barrel shifter viene impiegato in diverse applicazioni, in particolare come componente nei microprocessori insieme allALU.

                                     

1. Implementazione

Un barrel shifter è spesso implementato come collegamento in parallelo di multiplexer a 2 ingressi ed 1 uscita. In un barrel shifter con 4 bit in ingresso viene usato un segnale intermedio che effettua lo shift di 2 bit, o fa passare lo stesso dato, in base al valore di S == 1

Barrel shifter di dimensioni maggiori presentano dei passi aggiuntivi.

                                     

2. Costi

Il numero di multiplexer richiesti per elaborare una word di n bit è n log 2 ⁡ n {\displaystyle \scriptstyle n\log _{2}n}. A seconda della dimensione della word in ingresso solitamente 128, 64, 32, 16 o 8 bit, per realizzare un barrel shifter ci vorranno:

  • per 16 bit: 16 × log 2 ⁡ 16 = 16 × 4 = 64 {\displaystyle \scriptstyle 16\times \log _{2}16=16\times 4=64} multiplexer
  • per 32 bit: 32 × log 2 ⁡ 32 = 32 × 5 = 160 {\displaystyle \scriptstyle 32\times \log _{2}32=32\times 5=160} multiplexer
  • per 128 bit: 128 × log 2 ⁡ 128 = 128 × 7 = 896 {\displaystyle \scriptstyle 128\times \log _{2}128=128\times 7=896} multiplexer
  • per 64 bit: 64 × log 2 ⁡ 64 = 64 × 6 = 384 {\displaystyle \scriptstyle 64\times \log _{2}64=64\times 6=384} multiplexer
  • per 8 bit: 8 × log 2 ⁡ 8 = 8 × 3 = 24 {\displaystyle \scriptstyle 8\times \log _{2}8=8\times 3=24} multiplexer
                                     

3. Usi

Un barrel shifter viene usato comunemente per limplementazione hardware dellaritmetica in virgola mobile. In unoperazione di addizione o sottrazione in virgola mobile, le mantisse dei 2 operandi devono essere allineate, il che richiede lo shift del più piccolo dei 2 operandi verso destra, incrementando il suo esponente, finché non coincide con lesponente delloperando più grande. Ciò viene realizzato sottraendo gli esponenti ed usando il barrel shifter per spostare loperando più piccolo verso destra in un solo ciclo di clock. Impiegando un semplice shifter, uno spostamento di n bit richiedebbe invece n cicli di clock.

                                     
  • sono più lente, come ad esempio lo shift, dovuto alla mancanza di un barrel shifter che era incorporato in ogni CPU dall 80386. All interno della cache
  • hardware dello scroll fluido gestione di alcuni operatori raster Barrel shifter gestione di schermo suddiviso font software Le schede VGA gestiscono