5.1.3 Multiplicación de números enteros. - uv.es · PDF fileAmpliación de...

22
Ampliación de Estructura de Computadores. Curso 2010-11 3º de Ingeniería Informática. Vicente Arnau Llombart 25/10/2010 5.1.3 Multiplicación de números enteros. El algoritmo de la multiplicación tal y como se realizaría manualmente con operandos positivos de cuatro bits es el siguiente: 1 1 0 1 x 1 0 1 1 1 1 0 1 + 1 1 0 1 0 0 0 0 1 1 0 1 1 0 0 0 1 1 1 1 Al realizar la multiplicación se ve claro que si inicialmente tenemos dos números de n bits se obtiene un número de 2*n bits como máximo. Además dado el multiplicando realizar la operación por un bit del multiplicador es fácil. Si el bit multiplicador es uno, el multiplicando se introduce en su posición, desplazado adecuadamente para realizar la suma. Si el bit multiplicador es 0, entonces se introducen ceros en la suma, también desplazados adecuadamente, aunque realmente en este caso se puede elegir realizar la suma con operando cero o directamente no realizarla y pasar al siguiente operando. En una primera realización podemos realizar la multiplicación binaria de operandos positivos en un array lógico puramente combinacional. Sean M y m los números a multiplicar, cada bit del producto parcial Pij=mi*Mj se genera en una puerta AND. La generación de los n productos parciales y su suma se realiza en una red de n*(n-1) sumadores . Tal como muestra la figura: M3 M2 M1 M0 m3 m2 m1 m0 P03 P02 P01 P00 + P13 P12 P11 P10 P23 P22 P21 P20 P33 P32 P31 P30 P7 P6 P5 P4 P3 P2 P1 P0 (Ver dibujo en página siguiente).

Transcript of 5.1.3 Multiplicación de números enteros. - uv.es · PDF fileAmpliación de...

Page 1: 5.1.3 Multiplicación de números enteros. - uv.es · PDF fileAmpliación de Estructura de Computadores. Curso 2010-11 3º de Ingeniería Informática. Vicente Arnau Llombart 25/10/2010

Ampliación de Estructura de Computadores. Curso 2010-11 3º de Ingeniería Informática.

Vicente Arnau Llombart 25/10/2010

5.1.3 Multiplicación de números enteros.

El algoritmo de la multiplicación tal y como se realizaría manualmente con operandos positivos de

cuatro bits es el siguiente:

1 1 0 1

x 1 0 1 1

1 1 0 1

+ 1 1 0 1

0 0 0 0

1 1 0 1

1 0 0 0 1 1 1 1

Al realizar la multiplicación se ve claro que si inicialmente tenemos dos números de n bits se

obtiene un número de 2*n bits como máximo. Además dado el multiplicando realizar la operación por

un bit del multiplicador es fácil. Si el bit multiplicador es uno, el multiplicando se introduce en su

posición, desplazado adecuadamente para realizar la suma. Si el bit multiplicador es 0, entonces se

introducen ceros en la suma, también desplazados adecuadamente, aunque realmente en este caso se

puede elegir realizar la suma con operando cero o directamente no realizarla y pasar al siguiente

operando.

En una primera realización podemos realizar la multiplicación binaria de operandos positivos

en un array lógico puramente combinacional. Sean M y m los números a multiplicar, cada bit del

producto parcial Pij=mi*Mj se genera en una puerta AND. La generación de los n productos parciales

y su suma se realiza en una red de n*(n-1) sumadores. Tal como muestra la figura:

M3 M2 M1 M0

m3 m2 m1 m0

P03 P02 P01 P00

+ P13 P12 P11 P10

P23 P22 P21 P20

P33 P32 P31 P30

P7 P6 P5 P4 P3 P2 P1 P0

(Ver dibujo en página siguiente).

Page 2: 5.1.3 Multiplicación de números enteros. - uv.es · PDF fileAmpliación de Estructura de Computadores. Curso 2010-11 3º de Ingeniería Informática. Vicente Arnau Llombart 25/10/2010

Ampliación de Estructura de Computadores. Curso 2010-11 3º de Ingeniería Informática.

Vicente Arnau Llombart 25/10/2010

Podemos apreciar el retardo existente en este circuito, donde los acarreos de los sumadores son

propagados a través de todos ellos.

Page 3: 5.1.3 Multiplicación de números enteros. - uv.es · PDF fileAmpliación de Estructura de Computadores. Curso 2010-11 3º de Ingeniería Informática. Vicente Arnau Llombart 25/10/2010

Ampliación de Estructura de Computadores. Curso 2010-11 3º de Ingeniería Informática.

Vicente Arnau Llombart 25/10/2010

La realización de los SCA en este ejemplo puede presentar varias realizaciones.

En la figura anterior vemos una forma de organizar los sumadores completos de los CSA para

conseguir que el sumador con acarreo anticipado del final tenga el menor número de bits a sumar, y

por tanto finalice lo antes posible.

En la figura siguiente se muestra otra estructura muy similar de utilización de los CSA.

Page 4: 5.1.3 Multiplicación de números enteros. - uv.es · PDF fileAmpliación de Estructura de Computadores. Curso 2010-11 3º de Ingeniería Informática. Vicente Arnau Llombart 25/10/2010

Ampliación de Estructura de Computadores. Curso 2010-11 3º de Ingeniería Informática.

Vicente Arnau Llombart 25/10/2010

Problema: Realizar la multiplicación de dos números de 8 bits. Seguir el esquema visto en el

ejemplo anterior. Decir cuantos niveles de puertas lógicas posee el circuito.

Page 5: 5.1.3 Multiplicación de números enteros. - uv.es · PDF fileAmpliación de Estructura de Computadores. Curso 2010-11 3º de Ingeniería Informática. Vicente Arnau Llombart 25/10/2010

Ampliación de Estructura de Computadores. Curso 2010-11 3º de Ingeniería Informática.

Vicente Arnau Llombart 25/10/2010

Algoritmo de Booth

Hay algoritmos más directos para la obtención de multiplicaciones con números negativos, uno de

estos es el algoritmo de Booth. El cual genera multiplicaciones de 2n bits y trata por igual tanto

números positivos como negativos. Este algoritmo se basa en el hecho de que cuando tenemos un

multiplicando el cual tiene una serie de unos en su representación, este valor se puede descomponer en

la resta de otros dos números con una cantidad de unos menor, por ejemplo:

0 0 1 1 1 1 0 = 0 1 0 0 0 0 0 - 0 0 0 0 0 1 0

Así la multiplicación se puede descomponer en una operación de adición para el primer número

y de una resta para el segundo:

M * (0 0 1 1 1 1 0) = M * (0 1 0 0 0 0 0) – M * (0 0 0 0 0 1 0)

El nuevo multiplicador lo podemos representar por:

m’ = 0 1 0 0 0 -1 0

Pero este método se puede generalizar para cualquier cadena de bits en el multiplicando. Para

ello realizamos un algoritmo de forma que cuando realicemos la multiplicación, nos fijaremos en el

multiplicador viendo los bits de dos en dos: mi y mi-1, de forma que cuando tengamos estas cuatro

posibles secuencias, determinarán el valor de m’i, y realizaremos las acciones indicadas:

00 ó 11 : m’i = 0 : Solo desplazaremos el multiplicador --> poner ceros.

01 : m’i = 1 : Realizaremos el producto por 1 y desplazado.

10 : m’i = -1 : Realizaremos el complemento a dos del multiplicador

con extensión de signo y desplazado.

Pero surge el problema del primer bit, para lo cual introducimos un bit previo a m0, el m-1. En

la página siguiente se muestra el algoritmo.

Para entender por que se realiza esta asignación, hay que fijarse que todo número binario puede

ser expresado como resta de dos números y una forma de obtenerlos es aplicar la anterior codificación.

Ejemplo:

m = 1 0 1 1 0 1 0 1(0) = mpos - mneg

m’ =-1 1 0-1 1-1 1-1

mpos = 0 1 0 0 1 0 1 0 (unos en los 1’s de m’)

mneg = 1 0 0 1 0 1 0 1 (unos en los -1’s de m’)

Para realizar la multiplicación podemos utilizar dos métodos, codificar el el multiplicador como

hemos visto antes (con signos negativos en los unos) o no codificarlo asi y tener en cuenta la secuencia

de bits de dos en dos como hemos visto.

Para comprenderlo mejor veremos el mismo ejemplo de las dos formas.

Page 6: 5.1.3 Multiplicación de números enteros. - uv.es · PDF fileAmpliación de Estructura de Computadores. Curso 2010-11 3º de Ingeniería Informática. Vicente Arnau Llombart 25/10/2010

Ampliación de Estructura de Computadores. Curso 2010-11 3º de Ingeniería Informática.

Vicente Arnau Llombart 25/10/2010

Ejemplo: de multiplicación con el algoritmo de Booth:

A=0 1 0 1 1 0 1 B=0 0 1 1 1 1 0

1º) Codificamos B como ya se ha indicado:

B = 0 1 0 0 0 -1 0

Luego realizamos la operación de sumas parciales como en el caso del multiplicador por sumas

parciales haciendo el complemento a dos de los multiplicandos que sean necesarios restar

0 1 0 1 1 0 1

0+1 0 0 0-1 0

0 0 0 0 0 0 0 0 0 0 0 0 0

1 1 1 1 1 1 0 1 0 0 1 1 (complemento a dos)

0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0

0 0 1 0 1 1 0 1

0 0 0 0 0 0 0

0 0 1 0 1 0 1 0 0 0 1 1 0

2º) Utilizar el segundo método basado en el algorimo vista en la hoja anterior.

Ambos métodos son equivalentes e iguales en su realizacición, veamoslo:

A=0 1 0 1 1 0 1 B=0 0 1 1 1 1 0

0 1 0 1 1 0 1

0 0 1 1 1 1 0(0)

0 0 0 0 0 0 0 0 0 0 0 0 0

1 1 1 1 1 1 0 1 0 0 1 1 (complemento a dos)

0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0

0 0 1 0 1 1 0 1

0 0 0 0 0 0 0

0 0 1 0 1 0 1 0 0 0 1 1 0

Page 7: 5.1.3 Multiplicación de números enteros. - uv.es · PDF fileAmpliación de Estructura de Computadores. Curso 2010-11 3º de Ingeniería Informática. Vicente Arnau Llombart 25/10/2010

Ampliación de Estructura de Computadores. Curso 2010-11 3º de Ingeniería Informática.

Vicente Arnau Llombart 25/10/2010

Ejemplo: Vamos algunas equivalencias para calcular la forma del multiplicador. Sea B=53 y A=21,

calculamos la exprersión de B y luego realizamos la multiplicación de ambas formas.

B = 0 0 1 1 0 1 0 1 ==> B = 0 0 1 1 0 1 0 1(0)

B = 0 1 0-1 1-1 1-1

O también:

B = 0 0 1 1 0 1 0 1 ==> B = (01001010)-(00010101)

0 0 0 1 0 1 0 1 (A=21) (-A=11101011)

* 0 1 0-1 1-1 1-1

1 1 1 1 1 1 1 1 1 1 0 1 0 1 1

0 0 0 0 0 0 0 0 0 1 0 1 0 1

1 1 1 1 1 1 1 1 0 1 0 1 1

0 0 0 0 0 0 0 1 0 1 0 1

1 1 1 1 1 1 0 1 0 1 1

0 0 0 0 0 0 0 0 0 0

0 0 0 0 1 0 1 0 1

0 0 0 0 0 0 0 0

0 0 0 0 1 0 0 0 1 0 1 1 0 0 1

Page 8: 5.1.3 Multiplicación de números enteros. - uv.es · PDF fileAmpliación de Estructura de Computadores. Curso 2010-11 3º de Ingeniería Informática. Vicente Arnau Llombart 25/10/2010

Ampliación de Estructura de Computadores. Curso 2010-11 3º de Ingeniería Informática.

Vicente Arnau Llombart 25/10/2010

Hasta ahora hemos visto el caso de operandos positivos, veamos el caso de multiplicador

negativo y como se obtiene el valor correcto. Para multiplicadores positivos existe por lo menos un

cero en la última posición (bit de signo) que hace que la secuencia de unos tenga un final. Para el caso

de multiplicadores negativos no existe este último cero y por lo tanto el multiplicando para su

codificación puede presentar un número distinto de sumas y restas.

Pero si aplicamos el segundo método este problema no se plantea, lo que sucede es que

simplemente la última secuecnia de dos cifras será 10 o 11, con lo cual realizaremos o bien el C2 o

sumaremos todo 0.

Ejemplo: A=0 1 1 0 1 B=1 1 0 1 0

1º) Con este método codificamos B: B = 1 1 0 1 0(0)

B = 0-1+1-1 0

0 1 1 0 1 (A=13) (-A=10011)

0-1+1-1 0

0 0 0 0 0 0 0 0 0 0

1 1 1 1 1 0 0 1 1

0 0 0 0 1 1 0 1

1 1 1 0 0 1 1

0 0 0 0 0 0

1 1 1 0 1 1 0 0 1 0

Que es el resultado esperado.

La transformación del multiplicador del algoritmo de Booth recibe el nombre de técnica de

saltar unos, y es así porque para las series de unos que presenta el multiplicador sólo se necesita

considerar el primero y el último. Sin embargo hay casos en los que esta técnica aumenta el número de

unos con lo cual no se gana en velocidad a la hora de calcular el resultado, por ejemplo:

B= 0 1 0 1 0

B=+1 -1 +1 -1 0

Page 9: 5.1.3 Multiplicación de números enteros. - uv.es · PDF fileAmpliación de Estructura de Computadores. Curso 2010-11 3º de Ingeniería Informática. Vicente Arnau Llombart 25/10/2010

Ampliación de Estructura de Computadores. Curso 2010-11 3º de Ingeniería Informática.

Vicente Arnau Llombart 25/10/2010

Versión combinacional del algoritmo de Booth.

Page 10: 5.1.3 Multiplicación de números enteros. - uv.es · PDF fileAmpliación de Estructura de Computadores. Curso 2010-11 3º de Ingeniería Informática. Vicente Arnau Llombart 25/10/2010

Ampliación de Estructura de Computadores. Curso 2010-11 3º de Ingeniería Informática.

Vicente Arnau Llombart 25/10/2010

Ejemplo 1: Utilizamos sumadores completos de 3 o 2 entradas.

M3 M2 M1 M0

m3 m2 m1 m0

P03 P03 P03 P03 P02 P01 P00 C0

+ P13 P13 P13 P12 P11 P10 C1

P23 P23 P22 P21 P20 C2

P33 P32 P31 P30 C3

P6 P5 P4 P3 P2 P1 P0

P03 P03 P03 P03 P02 P01 P00

+ P13 P13 P13 P12 P11 P10 C0

P23 P23 P22 P21 P20 C1

P33 P32 P31 P30 C2

C3

P03

P33 P03 P31 P12 P02

S S S S S Acc

Acc Acc Acc Acc Acc S S

P03

S S S S Acc

Acc Acc Acc Acc S S S

S S S S

Acc Acc Acc Acc S S S

∑ AA-4bits P6 P5 P4 P3 P2 P1 P0

Page 11: 5.1.3 Multiplicación de números enteros. - uv.es · PDF fileAmpliación de Estructura de Computadores. Curso 2010-11 3º de Ingeniería Informática. Vicente Arnau Llombart 25/10/2010

Ampliación de Estructura de Computadores. Curso 2010-11 3º de Ingeniería Informática.

Vicente Arnau Llombart 25/10/2010

Ejemplo 2: Utilizamos sumadores completos siempre con 3 entradas.

M3 M2 M1 M0

m3 m2 m1 m0

P03 P03 P03 P03 P02 P01 P00 C0

+ P13 P13 P13 P12 P11 P10 C1

P23 P23 P22 P21 P20 C2

P33 P32 P31 P30 C3

P6 P5 P4 P3 P2 P1 P0

P03 P03 P03 P03 P02 P01 P00

+ P13 P13 P13 P12 P11 P10 C0

P23 P23 P22 P21 P20 C1

P33 P32 P31 P30 C2

C3

P03

P33 P03 P31 P12 P02

S S S S S P00

Acc Acc Acc Acc Acc S C0

P03

S S S S P00

Acc Acc Acc Acc S S C0

S S S S P00

Acc Acc Acc Acc S S C0

∑ AA-7bits P6 P5 P4 P3 P2 P1 P0

Page 12: 5.1.3 Multiplicación de números enteros. - uv.es · PDF fileAmpliación de Estructura de Computadores. Curso 2010-11 3º de Ingeniería Informática. Vicente Arnau Llombart 25/10/2010

Ampliación de Estructura de Computadores. Curso 2010-11 3º de Ingeniería Informática.

Vicente Arnau Llombart 25/10/2010

PROBLEMA 1: Realizar el producto de (6)*(-5) usando representaciones de 4 bits en C-2 y una realización combinacional basada en el algoritmo de Booth.

0110 (-6)C1 = 1001

* 1011

0 1 1 0

* -1+1 0-1

1 1 1 1 0 0 1 C0 = 1

0 0 0 0 0 0 C1 = 0 PRODUCTOS

0 0 1 1 0 C2 = 0 PARCIALES

1 0 0 1 C3 = 1

1 1 1 1 0 0 1

0 0 0 0 0 0 1

0 0 1 1 0 0 CSA

1 0 0 1 0

1

1

1 1 0 0 0

1 0 0 1 0 0 CSA

0 1 1 0 0 1 0

1

0 0 1 1 0 CSA

1 0 0 0 0 1 0

1 0 1 0

0 0 1 0 0 1 0 ∑ AA-4bits

1 1 0 0 0 1 0 (-30)

PROBLEMA 2: Realizar el producto de (10)*(-7) usando representaciones de 6 bits en C-2 y una realización combinacional basada en el algoritmo de Booth. PROBLEMA 3: Realizar el producto de (-20)*(+6) usando representaciones de 6 bits en C-2 y una realización combinacional basada en el algoritmo de Booth.

Page 13: 5.1.3 Multiplicación de números enteros. - uv.es · PDF fileAmpliación de Estructura de Computadores. Curso 2010-11 3º de Ingeniería Informática. Vicente Arnau Llombart 25/10/2010

Ampliación de Estructura de Computadores. Curso 2010-11 3º de Ingeniería Informática.

Vicente Arnau Llombart 25/10/2010

PROBLEMA 2: Producto de (10) * (-7) con 6 bits y C-2.

SOLUCIÓN:

(10) = 001010 (10)C1 = 110101 (10)C2 = 110110

( 7) = 000111 (-7)C1 = 111000 (-7)C2 = 111001

M = 0 0 1 0 1 0

m = * 1 1 1 0 0 1

0 0 1 0 1 0

* 0 0-1 0 1-1

1 1 1 1 1 1 1 1 0 1 0 1 C0= 1

0 0 0 0 0 0 0 1 0 1 0 C1= 0

0 0 0 0 0 0 0 0 0 0 C2= 0

1 1 1 1 1 0 1 0 1 C3= 1 GPP = 2 0 0 0 0 0 0 0 0 C4= 0

0 0 0 0 0 0 0 C5= 0

1 1 1 1 1 1 1 1 0 1 0 1

0 0 0 0 0 0 0 1 0 1 0 1

0 0 0 0 0 0 0 0 0 0 0 CSA = 2 1 1 1 1 1 0 1 0 1 0

0 0 0 0 0 0 0 0 1

0 0 0 0 0 0 0 0

0

1

1 1 1 1 1 0 1 0

1 1 1 1 1 1 0 0 1 0

0 0 0 0 0 0 0 0 1 0 1 CSA = 2 0 0 0 0 0 0 1 0 1 0 0 1

1

1 1 1 1 1 0 1 0

1 1 1 1 1 1 1 0 1 1 CSA = 2 0 0 0 0 0 0 0 1 0 0 0 1

1

0 0 0 0 0 1 0 1 1 CSA = 2 1 1 1 1 0 1 0 0 1 0 0 1

1 1 1 1 0 0 1 1 -AA-12bits = 8 0 0 0 0 1 0 0 1 1 0 0 1

1 1 1 1 1 0 1 1 1 0 1 0 (-70)C2

Page 14: 5.1.3 Multiplicación de números enteros. - uv.es · PDF fileAmpliación de Estructura de Computadores. Curso 2010-11 3º de Ingeniería Informática. Vicente Arnau Llombart 25/10/2010

Ampliación de Estructura de Computadores. Curso 2010-11 3º de Ingeniería Informática.

Vicente Arnau Llombart 25/10/2010

PROBLEMA 3: Producto de (-20) * ( 6) con 6 bits y C-2.

SOLUCIÓN:

(20) = 010100 (20)C1 = 101011 (20)C2 = 101100

( 6) = 000110

M = 1 0 1 1 0 0

m = * 0 0 0 1 1 0

1 0 1 1 0 0

* 0 0 1 0-1 0

0 0 0 0 0 0 0 0 0 0 0 0 C0= 0

0 0 0 0 0 0 1 0 0 1 1 C1= 1

+ 0 0 0 0 0 0 0 0 0 0 C2= 0 PP = 2τ

1 1 1 1 0 1 1 0 0 C3= 0

0 0 0 0 0 0 0 0 C4= 0

0 0 0 0 0 0 0 C5= 0

0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 1 0 0 1 1 0

0 0 0 0 0 0 0 0 0 0 1 CSA = 2 τ

1 1 1 1 0 1 1 0 0 0

0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0

1

1 1 1 1 0 0 1 0

0 0 0 0 0 1 0 0 0 0

0 0 0 0 0 0 0 0 0 1 0 CSA = 2 τ 0 0 0 0 0 0 0 0 0 1 0 0

0

0 0 0 0 0 1 0 0

0 0 0 0 0 0 1 0 1 0 CSA = 2 τ 1 1 1 1 0 0 1 0 0 0 0 0

0

1 1 1 1 0 1 0 0 0 CSA = 2 τ 0 0 0 0 0 1 0 0 1 0 0 0

1 1 1 1 0 0 0 0 Σ-AA-12bits = 8 τ 0 0 0 0 1 0 0 0 1 0 0 0

1 1 1 1 1 0 0 0 1 0 0 0 (120)C2

Page 15: 5.1.3 Multiplicación de números enteros. - uv.es · PDF fileAmpliación de Estructura de Computadores. Curso 2010-11 3º de Ingeniería Informática. Vicente Arnau Llombart 25/10/2010

Ampliación de Estructura de Computadores. Curso 2010-11 3º de Ingeniería Informática.

Vicente Arnau Llombart 25/10/2010

Algoritmo de Booth modificado.

Para acelerar el proceso de la multiplicación vamos a describir una nueva técnica que garantiza

que un multiplicador de n bits necesitará como máximo n/2 sumandos, ya que permite reducir a la

mitad el número de productos parciales, duplicando así la velociadad del multiplicador. Además este

nuevo método maneja operandos con signo. La forma de acelerar el algoritmo es mediante la suma en

un sólo paso de varias sumas parciales.

El algotimo de Booth modificado divide el multiplicador en cadenas de 3 bits. Para ello se

seleccionan los n/2 sumandos por parejas de bits de la siguiente forma: (x1,x0), (x2,x3), (x4,x5), etc, es

por esto por lo que se le llama método de codificación por pares de bits. Veamos el ejemplo del caso

anterior codificado mediante el algoritmo de Booth:

1 1 1 0 1 0

0 0-1+1-1 0

Las parejas de bits formadas en este caso son:

(-1, 0) => este par equivale a -2* (el multiplicando)

(-1,+1) => -1* (el multiplicando)

( 0, 0) => 0* (el multiplicando)

Si en lugar de la codificación de Booth tomamos los valores iniciales de número a codificar tenemos:

(1,0) con 0 a la derecha=>-2*(el multiplicando)

(1,0) con 1 a la derecha=> -1*(el multiplicando)

(1,1) con 1 a la derecha=> 0*(el multiplicando)

Podemos mostrar la tabla de codificaciones en función de los bits del multiplicador original:

Multiplicador pares de bits

(i+1, i)

Bit de la derecha

i-1

Valor de la suma parcial para ese par de bits

0,0 0 0*M ==> (0*2i+1

+ 0*2i )*M

0,0 1 +1*M ==> (0*2i+1

+ 1*2i )*M

0,1 0 +1*M==> (1*2i+1

- 1*2i )*M

0,1 1 +2*M==> (1*2i+1

+ 0*2i )*M

1,0 0 -2*M==> (-1*2i+1

+ 0*2i )*M

1,0 1 -1*M==> (-1*2i+1

+ 1*2i )*M

1,1 0 -1*M==> (0*2i+1

- 1*2i )*M

1,1 1 0*M==> (0*2i+1

+ 0*2i )*M

Tabla de codificaciones.

Page 16: 5.1.3 Multiplicación de números enteros. - uv.es · PDF fileAmpliación de Estructura de Computadores. Curso 2010-11 3º de Ingeniería Informática. Vicente Arnau Llombart 25/10/2010

Ampliación de Estructura de Computadores. Curso 2010-11 3º de Ingeniería Informática.

Vicente Arnau Llombart 25/10/2010

Ejercicio: Para representaciones de 6 bits realizar las multiplicaciones siguientes:

(10)*(-9) y (-10)*(9)

Realización: (10) = (001010) (-10) = (110110)

(9) = (001001) (-9) = (110111)

1ª) (10)*(-9): 0 0 1 0 1 0 * -1 +2 -1 1 1 1 1 1 1 1 1 0 1 1 0 + 0 0 0 0 0 1 0 1 0 0 1 1 1 1 0 1 1 0 1 1 1 1 1 1 0 1 0 0 1 1 0 2º) (-10)*(9): 1 1 0 1 1 0 * +1 -2 +1 1 1 1 1 1 1 1 1 0 1 1 0 + 0 0 0 0 0 1 0 1 0 0 1 1 1 1 0 1 1 0 1 1 1 1 1 1 0 1 0 0 1 1 0

Ejercicio: Para representaciones de 4 bits realizar las multiplicaciones siguientes:

(6)*(3) (6)*(-3) (-6)*(3) (-6)*(-3)

Realización: (6) = (0110) (-6) = (1010)

(3) = (0011) (-3) = (1101)

Realización combinacional del Algoritmo de Booth Modificado.

Ejemplo: A = 0 1 1 0 1 B = 1 1 0 1 0

Primero codificamos B = 0 -1 -2, la multiplicación a realizar es:

0 1 1 0 1 A= 13

* 0 -1 -2 B= -6

1 1 1 1 1 0 0 1 1 0 Z= -78

1 1 1 1 0 0 1 1

0 0 0 0 0 0

1 1 1 0 1 1 0 0 1 0

Del ejemplo podemos ver que los sumando ahora al pertenecer a parejas de bits, hay que

desplazarlos para que se ajuste a la posición correspondiente del primer bit de que forma la pareja.

Page 17: 5.1.3 Multiplicación de números enteros. - uv.es · PDF fileAmpliación de Estructura de Computadores. Curso 2010-11 3º de Ingeniería Informática. Vicente Arnau Llombart 25/10/2010

Ampliación de Estructura de Computadores. Curso 2010-11 3º de Ingeniería Informática.

Vicente Arnau Llombart 25/10/2010

Page 18: 5.1.3 Multiplicación de números enteros. - uv.es · PDF fileAmpliación de Estructura de Computadores. Curso 2010-11 3º de Ingeniería Informática. Vicente Arnau Llombart 25/10/2010

Ampliación de Estructura de Computadores. Curso 2010-11 3º de Ingeniería Informática.

Vicente Arnau Llombart 25/10/2010

Page 19: 5.1.3 Multiplicación de números enteros. - uv.es · PDF fileAmpliación de Estructura de Computadores. Curso 2010-11 3º de Ingeniería Informática. Vicente Arnau Llombart 25/10/2010

Ampliación de Estructura de Computadores. Curso 2010-11 3º de Ingeniería Informática.

Vicente Arnau Llombart 25/10/2010

PROBLEMA 1: Realizar el producto de (23)*(-7)= -161 usando representaciones de 6 bits en C-2 y una realización combinacional basada en el algoritmo de Booth Modificado.

0 1 0 1 1 1 (-23)C1 = 101000

* 1 1 1 0 0 1

0 1 0 1 1 1

* 0 -2 1

0 0 0 0 0 0 1 0 1 1 1 C0 = 0 Des0=0

1 1 1 0 1 0 0 0 0 C1 = 1 Des1=1

0 0 0 0 0 0 0 C2 = 0 Des2=0

0 0 0 0 0 0 1 0 1 1 1 C0 = 0 Des0=0

1 1 1 0 1 0 0 0 0 0 0 C1 = 1 Des1=1

0 0 0 0 0 0 0 1 0 C2 = 0 Des2=0

0 0

0 1

1 1 1 0 1 0 0 1 1 1

0 0 0 0 0 0 0 0 0 0 1

1 1 1 0 1 0 1 1 1

0 0 0 0 0 0 0 0 0 1 1

1 1 1 0 1 0 1 1 1 1 1 (-161)

Retardo = ¿______?

PROBLEMA 2: Realizar el producto de (10)*(-7) usando representaciones de 6 bits en C-2 y una realización combinacional basada en el algoritmo de Booth Modificado. Da el tiempo de retardo total (= Niveles de puertas lógicas). PROBLEMA 3: Realizar el producto de (-20)*(+6) usando representaciones de 6 bits en C-2 y una realización combinacional basada en el algoritmo de Booth. Da el tiempo de retardo total (= Niveles de puertas lógicas).

Page 20: 5.1.3 Multiplicación de números enteros. - uv.es · PDF fileAmpliación de Estructura de Computadores. Curso 2010-11 3º de Ingeniería Informática. Vicente Arnau Llombart 25/10/2010

Ampliación de Estructura de Computadores. Curso 2010-11 3º de Ingeniería Informática.

Vicente Arnau Llombart 25/10/2010

PROBLEMA 2: Producto de (10) * (-7) con 6 bits y C-2 con Booth M.

SOLUCIÓN:

(10) = 001010 (10)C1 = 110101 (10)C2 = 110110

( 7) = 000111 (-7)C1 = 111000 (-7)C2 = 111001

M = 0 0 1 0 1 0

m = * 1 1 1 0 0 1

0 0 1 0 1 0

P’ij * 0 -2 1

0 0 0 0 0 0 0 0 1 0 1 0 C0= 0 Des0= 0

+ 1 1 1 1 1 0 1 0 1 0 C1= 1 Des1= 1

0 0 0 0 0 0 0 0 C2= 0 Des2= 0

en realidad es así :

Pij 0 0 0 0 0 0 0 0 1 0 1 0

+ 1 1 1 1 1 0 1 0 1 0 0 0

0 0 0 0 0 0 0 0 1 0

0 0

0 0

1 1 1 1 1 0 1 0 1 1 0

0 0 0 0 0 0 0 1 0 0 0 0

1 1 1 1 1 0 1 1 1 0

0 0 0 0 0 0 0 1 0 0 0 0

1 1 1 1 1 0 1 1 1 0 1 0 (-70)C2

Retardos: 6 de Productos Parciales

2*2 de CSAs

8 de AA de 12 bits. 18 Retardos.

Page 21: 5.1.3 Multiplicación de números enteros. - uv.es · PDF fileAmpliación de Estructura de Computadores. Curso 2010-11 3º de Ingeniería Informática. Vicente Arnau Llombart 25/10/2010

Ampliación de Estructura de Computadores. Curso 2010-11 3º de Ingeniería Informática.

Vicente Arnau Llombart 25/10/2010

PROBLEMA 3: Producto de (-20) * ( 6) con 6 bits y C-2.

Con Booth Modificado

SOLUCIÓN:

(20)= 010100 (20)C1= 101011 (20)C2= 101100

( 6)= 000110

M = 1 0 1 1 0 0

m = * 0 0 0 1 1 0

1 0 1 1 0 0

* 0 2 -2

0 0 0 0 0 0 1 0 0 1 1 0 C0= 1 Des0= 1

+ 1 1 1 1 0 1 1 0 0 0 C1= 0 Des1= 1

0 0 0 0 0 0 0 0 C2= 0 Des2= 0

0 0 0 0 0 0 1 0 0 1 1 0

+ 1 1 1 1 0 1 1 0 0 0 1 0

0 0 0 0 0 0 0 0 0 0

0 0

0 0

+ 1 1 1 1 0 1 0 0 0 1 0

0 0 0 0 0 1 0 0 0 1 1 0

+ 1 1 1 1 0 0 0 0 1 0

0 0 0 0 1 0 0 0 0 1 1 0

1 1 1 1 1 0 0 0 1 0 0 0 (120)C2

Page 22: 5.1.3 Multiplicación de números enteros. - uv.es · PDF fileAmpliación de Estructura de Computadores. Curso 2010-11 3º de Ingeniería Informática. Vicente Arnau Llombart 25/10/2010

Ampliación de Estructura de Computadores. Curso 2010-11 3º de Ingeniería Informática.

Vicente Arnau Llombart 25/10/2010

PROBLEMAS PROPUESTOS PARA CASA.

P1/ Especifica cuantos niveles de puertas lógicas se necesitan para realizar un multiplicador de números de 16 bits, según el Algoritmos de Booth y el de Booth Modificado. P2/ Realiza la multiplicación según la realización combinacional del algoritmo de Booth Modificado de los siguientes números.

(23) * (-117) con N= 8 bits (resultado en 16 bits).

( 6) * ( -5) con N= 6 bits (y resultado en 12 bits).

(21) * ( -23) con N= 8 bits (y resultado en 16 bits). P3/ Realiza la multiplicación según la realización combinacional del algoritmo de Booth Modificado de los siguientes números.

(-33) * (-10) con N= 8 bits (y resultado en 16 bits). P4/ Que diferencias has encontrado entre las dos realizaciones con lógica combinacional estudiadas para la multiplicación de números en complemento a 2. Es decir, diferencias entre la realización combinacional del algoritmo de Booth y la realización de de Booth Modificado. P5/ Tienes que multiplicar dos números de 32 bits. Da los niveles de retardo de la realización combinacional del algoritmo de Booth y la realización de Booth Modificado. Da una tabla en la que se muestre que realización es más conveniente según el número de bits a multiplicar.