Esercizio 5algoritmo di Booth (temi d'esame gennaio 2021, gennaio 2022, gennaio 2023 e gennaio 2026)
In questa pagina 6
Testo (temi d'esame gennaio 2021 problema P1.3, gennaio 2022 P1.3, gennaio 2023 P3, gennaio 2026 P4). Applicando l'algoritmo di Booth si calcolino i prodotti seguenti di numeri interi con segno su 5 bit, riportando i prodotti parziali ottenuti al termine di ogni iterazione, cioè dopo lo scorrimento (con il moltiplicatore nella parte bassa):
(a) (gennaio 2021); (b) (gennaio 2022); (c) (gennaio 2023); (d) (gennaio 2026).
Teoria usata: Moltiplicazione e algoritmo di BoothLa moltiplicazione hardware imita il calcolo a mano: somme e shift ripetuti. Per numeri senza segno si somma il moltiplicando se il bit del moltiplicatore è 1 e si fa shift a destra del prodotto parziale; il moltiplicatore sta nella metà bassa del registro del prodotto. Per i numeri con segno serve l'algoritmo di Booth: si guardano i bit del moltiplicatore a coppie (bit corrente, bit precedente, all'inizio 0): 10 → si sottrae il moltiplicando, 01 → si somma, 00/11 → niente; poi shift aritmeticoscorrimento che conserva il segno: a destra ripete il bit di segno a destra. Dopo $n$ passi si hanno $2n$ bit in complemento a 2. Va eseguito sui compiti d'esame a mano con lo schema di registri $A,|,Q,|,q_{-1}$.Moltiplicazione e algoritmo di Booth →, Numeri binari e complemento a dueI processori lavorano con un numero fisso di bit $n$. I naturali vanno da $0$ a $2^n-1$; per i negativi si usa il complemento a due: $C_2(N)=2^n-N=\overline N+1$ (si invertono tutti i bit e si somma 1). Con $n$ bit rappresenta $-2^{n-1}\le N\le2^{n-1}-1$, ha un solo zero e unifica somma e sottrazione. Quando il risultato esce dall'intervallo c'è overflow; gli overflow intermedi si compensano se il risultato finale è rappresentabile. La lunghezza di parola non è l'accuratezza.Numeri binari e complemento a due →.
Schema di lavoro
Registri (5 bit, parte alta del prodotto, all'inizio 0), (5 bit, moltiplicatore), bit e moltiplicando . A ogni passo si guarda la coppia : 10 → ; 01 → ; 00 o 11 → nulla; poi shift aritmetico a destra di . Dopo 5 passi (10 bit) è il prodotto in complemento a 2. Per ogni prodotto si assume il primo fattore come moltiplicando e il secondo come moltiplicatore (la scelta inversa dà prodotti parziali diversi ma lo stesso risultato).
I valori: , , , , , , .
(a) : ,
| Passo | Azione | dopo lo shift | |
|---|---|---|---|
| 1 | 00 | nulla | |
| 2 | 10 | ||
| 3 | 01 | ||
| 4 | 00 | nulla | |
| 5 | 10 |
Risultato ✓ ().
(b) : ,
| Passo | Azione | dopo lo shift | |
|---|---|---|---|
| 1 | 10 | ||
| 2 | 11 | nulla | |
| 3 | 01 | ||
| 4 | 10 | ||
| 5 | 11 | nulla |
Risultato ✓.
(c) , con e
| Passo | Azione | dopo lo shift | |
|---|---|---|---|
| 1 | 10 | ||
| 2 | 01 | ||
| 3 | 10 | ||
| 4 | 01 | ||
| 5 | 00 | nulla |
Risultato ✓ (in complemento a 2 su 10 bit: ). Qui il moltiplicatore ha 4 transizioni, quindi sono necessarie 4 somme/sottrazioni: la sequenza alternata non è favorevole a Booth.
(d) : ,
| Passo | Azione | dopo lo shift | |
|---|---|---|---|
| 1 | 00 | nulla | |
| 2 | 10 | ||
| 3 | 11 | nulla | |
| 4 | 01 | ||
| 5 | 10 |
Risultato ✓ (). Il prodotto non entrerebbe in 8 bit con segno () ma entra nei bit.
Errori comuni
- Non scorrere a destra quando l'azione è "nulla".
- Shift logico invece di aritmetico: a lo shift logico darebbe invece di .
- Sottrarre quando la coppia è 01: 10 sottrae, 01 somma.
- Dimenticare i bit scartati dalla somma oltre il bit più alto (il riporto uscente da non va conservato).
- Leggere il risultato su 5 bit invece che su 10.
Versione ripasso
Testo. Booth su 5 bit: , , , , con i prodotti parziali dopo lo shift (gennaio 2021, 2022, 2023, 2026).
- Regola: ; 10 → , 01 → , 00/11 nulla; shift aritmetico sempre (Moltiplicazione e algoritmo di BoothLa moltiplicazione hardware imita il calcolo a mano: somme e shift ripetuti. Per numeri senza segno si somma il moltiplicando se il bit del moltiplicatore è 1 e si fa shift a destra del prodotto parziale; il moltiplicatore sta nella metà bassa del registro del prodotto. Per i numeri con segno serve l'algoritmo di Booth: si guardano i bit del moltiplicatore a coppie (bit corrente, bit precedente, all'inizio 0): 10 → si sottrae il moltiplicando, 01 → si somma, 00/11 → niente; poi shift aritmeticoscorrimento che conserva il segno: a destra ripete il bit di segno a destra. Dopo $n$ passi si hanno $2n$ bit in complemento a 2. Va eseguito sui compiti d'esame a mano con lo schema di registri $A,|,Q,|,q_{-1}$.Moltiplicazione e algoritmo di Booth →).
- (a) righe
0000001001, 0001000100, 1111100010, 1111110001, 0000111000→ 56. (b)0001101101, 0000110110, 1110111011, 0000111101, 0000011110→ 30. (c)0001100010, 1111010001, 0001001000, 1111000100, 1111100010→ −30. (d)0000001011, 0011110101, 0001111010, 1101001101, 0010010110→ 150. - Errori: niente shift su nulla; shift logico; 10/01 scambiati; risultato su 5 bit (Numeri binari e complemento a dueI processori lavorano con un numero fisso di bit $n$. I naturali vanno da $0$ a $2^n-1$; per i negativi si usa il complemento a due: $C_2(N)=2^n-N=\overline N+1$ (si invertono tutti i bit e si somma 1). Con $n$ bit rappresenta $-2^{n-1}\le N\le2^{n-1}-1$, ha un solo zero e unifica somma e sottrazione. Quando il risultato esce dall'intervallo c'è overflow; gli overflow intermedi si compensano se il risultato finale è rappresentabile. La lunghezza di parola non è l'accuratezza.Numeri binari e complemento a due →).