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