Vous êtes sur la page 1sur 6

Algoritmo de Booth

El algoritmo de Booth es una aproximacin ms elegante para


multiplicar nmeros signados. Comienza haciendo la observacin de
que con la posibilidad de sumar y restar hay mltiples formas de

calcular un producto. Suponer que queremos multiplicar:


Booth observo que una ALU que pudiera sumar o restar poda
obtener el mismo resultado de ms de una manera. Por ejemplo,
como podemos sustituir una cadena de "unos" del multiplicador por
una resta inicial cuando veamos primero un uno y ms tarde
sumamos el bit despus del ltimo uno. Por ejemplo:

La clave de la idea de Booth, esta en sus grupos de clasificacin de


bits al comienzo, en medio o al final de una ejecucin de unos. Por
supuesto, una cadena de ceros evita ya aritmtica, as que podemos
dejar estos slos.
El algoritmo en s tiene dos pasos:

1-Dependiendo de los bits actuales y


anteriores hacer:
2-00 Ninguna operacin aritmtica.
01 Suma el multiplicando a la mitad izquierda del
producto. 10 Resta el multiplicando de la mitad
izquierda del producto. 11 Ninguna operacin
aritmtica.

3-Desplaza el producto a la derecha.


Humberto Cruz Sanabria

Si se adapta este algoritmo al circuito de sumas y restas sucesivas,


hay que introducir la correccin A*2n cuando Bn-1=1, es decir, para
multiplicandos negativos. Por tanto, eliminando el ltimo paso del
algoritmo de sumas y restas, se obtiene un algoritmo adecuado para
trabajar en complemento a dos.
Adaptacin al circuito de la figura 2:
Inicializar: A<-0 , el contador de fases I<-N, el multiplicardor B<Multiplicador, y

Humberto Cruz Sanabria

el multiplicando MQ<Multiplicando Comparar el


bit MQ0 con el MQ-1.
Si es principio de cadena de "unos", restar A<-A-B
Si es final de cadena de "unos" (esto es, es el primer 0 despus
de uno o varios 1), sumar A<-A+B
Decrementar: I<-I-1
Desplazar aritmticamente a la derecha el conjunto
concatenado A||MQ0||MQ-1. Observar el contador I.
Si es menor que 0, volver al
segundo paso. Si es igual a 0,
terminar.

El algoritmo de Booth permite multiplicar nmeros positivos y negativos


representados en complemento a 2. Existen 2 posibles arquitecturas:
Empleando el registro R2 para almacenar el multiplicador y mantenerlo la final
de la operacin. R1 contiene el multiplicando y C-R3-R4 contiene el resultado.
R1
CONT
Operacin
{+,-}

R2

Humberto Cruz Sanabria

R3

R4

R2 -1

Empleando el registro R4 para almacenar el multiplicador. El valor del multiplicador se pierde


al final de la operacin. R1 contiene el multiplicando y C-R3-R4 contiene el resultado.

R1
CONT
Operacin
{+,-}

R3

R4

R4 -1

Principio de funcionamiento (empleando la primera arquitectura):


Se analizan el bit menos significativo de R2 (R20) y R2-1 y se establecen los siguientes casos:

R20

R2-1

Operacin
No se realiza ninguna operacin

R3=R3+R1 (Inicio cadena 0s)

R3=R3-R1 (Inicio cadena 1s)

No se realiza ninguna operacin

En cada iteracin se incrementa el contador (CONT), se desplaza C-R3-R4 a la derecha y


se rota circularmente a la derecha R2.

Humberto Cruz Sanabria

An B m
Ci

Sumador
completo

Ap B q

Ci+1

S
Con ayuda de estas clulas podemos construir un circuito que implemente la operacin anterior
de multiplicacin
A3B0 A2B0 A1B0 A0B0

A3B1 A2B1 A1B1 A0B1

A3B2 A2B2 A1B2 A0B2

+
A3B3 A2B3 A1B3 A0B3

P7

P6

P5

Humberto Cruz Sanabria

P4

P3

P2

P1

P0

Humberto Cruz Sanabria