Schimbător de butoi

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare

Un schimbător de baril este un circuit digital conceput pentru a efectua operații de schimbare a biților pe un cuvânt de date (constând dintr-un număr specific de biți) într-un timp corespunzător unui ciclu de ceas. Poate fi implementat ca o secvență multiplexor în care ieșirea unui multiplexor dat este conectată la intrarea următorului.

Ca un exemplu, ia în considerare un sistem de operare baril schimbator de viteze pe un ABCD cuvânt de 4 biți: circuitul se poate roti ordinea biților ABCD prin a face una sau mai multe schimburi la dreapta , fără nici o pierdere de biți, în scopul de a obține DABC, ieșire CDAB , BCDA sau ABCD . Schimbatorul cu butoi este utilizat în diverse aplicații, în special ca componentă în microprocesoare (împreună cu ALU ).

Implementare

Un schimbător de cilindri este adesea implementat ca o conexiune paralelă a multiplexoarelor cu 2 intrări și 1 ieșiri. Într-un schimbător de baril cu 4 biți de intrare, se utilizează un semnal intermediar care se deplasează cu 2 biți sau transmite aceleași date, în funcție de valoarea lui S [1]. Acest semnal este apoi mutat de un alt multiplexor, controlat de S [0]:

 im = IN, dacă S [1] == 0
     = IN << 2, dacă S [1] == 1
 OUT = im, dacă S [0] == 0
     = im << 1, dacă S [0] == 1

Schimbatoarele cu butoaie mai mari au trepte suplimentare.

Cheltuieli

Numărul multiplexoarelor necesare procesării unui cuvânt n- bit este . În funcție de dimensiunea cuvântului de intrare (de obicei 128, 64, 32, 16 sau 8 biți), pentru a face un schimbător de butoaie va fi nevoie de:

  • pentru 128 biți: multiplexor
  • pentru 64 de biți: multiplexor
  • pentru 32 biți: multiplexor
  • pentru 16 biți: multiplexor
  • pentru 8 biți: multiplexor

Utilizări

Un schimbător de baril este utilizat în mod obișnuit pentru implementarea hardware a aritmeticii în virgulă mobilă . Într-o operație de adunare sau scădere în virgulă mobilă, mantisele celor 2 operanzi trebuie aliniate, ceea ce necesită deplasarea celui mai mic dintre cei 2 operanzi la dreapta, mărind exponentul acestuia, până când coincide cu exponentul operandului mai mare. Acest lucru se realizează prin scăderea exponenților și utilizarea schimbătorului de butoaie pentru a deplasa operandul mai mic spre dreapta într-un singur ciclu de ceas. Folosind un schimbator simplu, o deplasare de n biți ar necesita n cicluri de ceas.

linkuri externe