Moltiplicazione:
Algoritmo di Booth
CDL Spec. Ing. Informatica - Prof. Antonino Mazzeo - Architettura dei Sistemi di Elaborazione
Algoritmo di Booth
L’algoritmo di Booth estende gli algoritmi di
moltiplicazione ideati
E’ utilizzabile nella moltiplicazione di
numeri con segno
Dato
moltiplicando di m bit e il moltiplicatore di
n bit+
Genera un prodotto di m+n bit
E’ molto efficiente nella moltiplicazione di
numeri che presentano sequenze ripetute
di 1
Algoritmo di Booth: Esempio
Si consideri una moltiplicazione il cui
moltiplicatore è 0011110
Per effettuare il prodotto con gli algoritmi di
moltiplicazione standard, dobbiamo
effettuare la somma 4 volte del
moltiplicando(shiftato)
E´ possibile ridurre il numero di somme
richieste
Algoritmo di Booth: Esempio
E’ possibile infatti esprimere il moltiplicatore
come differenza tra due numeri
0100000
(32)
-0000010
(2)
_____________
0011110 (30)
Algoritmo di Booth: Esempio
Il prodotto generato può quindi essere
scritto come la somma del
moltiplicando per 25 sommato al
complemento a 2 del moltiplicando
shiftato di 1 (ovvero moltiplicato per 21 )
Algoritmo di Booth: Esempio
È
conveniente descrivere la sequenza
delle operazioni utilizzando un
apposito codice per la scrittura del
moltiplicatore, che metta in evidenza
le operazioni da eseguire
0011110 può essere espresso come
0 +1 0 0 0 -1 0
Algoritmo di Booth:
Funzionamento
Considera
i bit del moltiplicatore due
alla volta e, in base alla composizione
della coppia, decide il da farsi:
Algoritmo di Booth:
Funzionamento
Se
il bit corrente è 1 e il precedente è
0, il moltiplicando viene sottratto al
prodotto parziale;
Ovvero
si segue l’addizione con il
complemento a 2 del moltiplicando
Se
il bit corrente è 0 e il precedente è
1, il moltiplicando viene sommato al
prodotto parziale;
Algoritmo di Booth:
Funzionamento
Nell’esempio
che segue si illustrerà
l’applicazione dell’algoritmo di
moltiplicazione standard e
dell’algoritmo di Booth per eseguire la
moltiplicazione
0101101
0011110
X
=
Algoritmo di Booth:Esempio
Standard
Booth
Algoritmo di Booth:
Considerazioni
Booth ha ideato questo algoritmo osservando
che la fattorizzazione in somme e differenze
di potenze di 2 del moltiplicatore si può
automatizzare valutando la sequenza dei
bit del moltiplicatore stesso
Nella maggior parte dei casi, questo
approccio consente la riduzione del numero
di operazioni di somma necessarie al calcolo
del prodotto.
Algoritmo di Booth:
Considerazioni
La riduzione del numero di somme necessarie
dipende però dalla disposizione dei bit
Il numero di somme necessarie è quindi
notevolmente ridotta in caso di sequenze
ripetute di 1 (es:“1011110”)
non c’è riduzione delle somme quando il
moltiplicatore presenti alternanze di 0 e 1
(es:“1010101”)
Algoritmo di Booth:
Considerazioni
Quindi:
L’incremento di prestazioni che si ottiene
eliminando gli 1 dipende dai dati
In media, la velocità di calcolo di una
moltiplicazione eseguita con l’algoritmo di
Booth è uguale a quella che si raggiunge con
gli algoritmi standard