Académique Documents
Professionnel Documents
Culture Documents
Martín Vázquez
Curso 2016
Multiplicación
Notación dot
● ● ● ● a ● ● ● ● a
x ● ● ● ● b x ● ● ● ● b
● ● ● ● b0 .a.100 ● ● ● ● b0.a.20
● ● ● ● b1 .a.101 ● ● ● ● b1.a.21
● ● ● ● b2 .a.102 ● ● ● ● b2.a.22
● ● ● ● b3 .a.103 ● ● ● ● b3.a.23
● ● ● ● ● ● ● ● p ● ● ● ● ● ● ● ● p
Multiplicación 2
1
Multiplicación
Independientemente de la base (2, 10, u otra), es un
algoritmo clásico de desplazamiento y suma (shift and add)
Multiplicación 3
Multiplicación binaria
Ejemplo
Multiplicación 4
2
Multiplicación binaria
Multiplicación 5
Multiplicación binaria
Algoritmo shift left
Sea p = a.b, con b de 4 bits, entonces
p = a.b3.23 + a.b2.22 + a.b1.21 + a.b0
p = ( ( (a.b3).2 + a.b2 ).2 + a.b1 ).2 + a.b0 (Expansión de Hörner)
Multiplicación 6
3
Multiplicación binaria
Algoritmo shift left
Sea p = a.b, con b de 4 bits, entonces
p = a.b3.23 + a.b2.22 + a.b1.21 + a.b0
p = ( ( (a.b3).2 + a.b2 ).2 + a.b1 ).2 + a.b0 (Expansión de Hörner)
p(1) p(1) = p (0).2 + a.b3
p(2) p(2) = p (1).2 + a.b2
p(3) p(3) = p (2).2 + a.b1
p(4) p(4) = p (3).2 + a.b0
Multiplicación 7
Multiplicación binaria
Algoritmo shift left
Generalizando p = a.b, con a de n bits y b de m bits
Multiplicación 8
4
Multiplicación binaria
Algoritmo shift left
Determinar p = a.b, con a = 10102 y b=11102
Multiplicación 9
Multiplicación binaria
Algoritmo shift left
Determinar p = a.b, con a = 10102 y b=11102
1010
x 1110
0000 p(0).2
1010 a.b3
1010 p(1)
Multiplicación 10
5
Multiplicación binaria
Algoritmo shift left
Determinar p = a.b, con a = 10102 y b=11102
1010 1010
x 1110 x 1110
0000 p(0).2 10100 p(1).2
1010 a.b3 1010 a.b2
1010 p(1) 11110 p(2)
Multiplicación 11
Multiplicación binaria
Algoritmo shift left
Determinar p = a.b, con a = 10102 y b=11102
Multiplicación 12
6
Multiplicación binaria
Algoritmo shift left
Determinar p = a.b, con a = 10102 y b=11102
Multiplicación binaria
Implementación de multiplicador binario
Tamaño del resultado n −1 m −1
a = ∑ a j .2 j b = ∑ b j .2 j
j =0 j =0
Multiplicación 14
7
Multiplicación binaria
Implementación de multiplicador binario
Tamaño del resultado n −1 m −1
a = ∑ a j .2 j b = ∑ b j .2 j
j =0 j =0
Multiplicación 15
Multiplicación binaria
Implementación de multiplicador binario
Tamaño del resultado n −1 m −1
a = ∑ a j .2 j b = ∑ b j .2 j
j =0 j =0
carry carry
Multiplicación 16
8
Multiplicación binaria
Implementación de multiplicador binario shift left
Versión Secuencial (serie)
Multiplicación 17
Multiplicación binaria
Algoritmo shift right
Sea p = a.b, con b de 4 bits, entonces
p = (a.b3.23 + a.b2.22 + a.b1.21 + a.b0).2-3.23
p = ( ( ( (a.b0).2-1 + a.b1 ).2-1 + a.b2).2-1 + a.b3 ).23
Multiplicación 18
9
Multiplicación binaria
Algoritmo shift right
Sea p = a.b, con b de 4 bits, entonces
p = (a.b3.23 + a.b2.22 + a.b1.21 + a.b0).2-3.23
p = ( ( ( (a.b0).2-1 + a.b1 ).2-1 + a.b2).2-1 + a.b3 ).23
p(1) p(1) = p (0).2-1 + a.b0.23
p(2) p(2) = p (1).2-1 + a.b1.23
p(3) p(3) = p (2).2-1 + a.b2.23
p(4) p(4) = p (3).2-1 + a.b3.23
Multiplicación 19
Multiplicación binaria
Algoritmo shift right
Generalizando p = a.b, con a de n bits y b de m bits
Multiplicación 20
10
Multiplicación binaria
Algoritmo shift right
Análisis de la suma involucrada en en cálculo de p(j+1) = p(j).2-1+ a.bj.2m-1
Multiplicación 21
Multiplicación binaria
Algoritmo shift right
Análisis de la suma involucrada en en cálculo de p(j+1) = p(j) + a.bj.2m-1
x7 x6 x5 x4 x3 x2 x1 x0
+
y’3 y’2 y’1 y’0 0 0 0 0
x3 x2 x1 x0
Solo se necesita un sumador de 4 bits en lugar de uno de 8 bits.
Multiplicación 22
11
Multiplicación binaria
Algoritmo shift right
Análisis de la suma involucrada en en cálculo de p(j+1) = p(j) + a.bj.2m-1
x7 x6 x5 x4 x3 x2 x1 x0
+
y’3 y’2 y’1 y’0 0 0 0 0
x3 x2 x1 x0
Solo se necesita un sumador de 4 bits en lugar de uno de 8 bits.
Multiplicación binaria
Algoritmo shift right
Determinar p = a.b, con a = 10102 y b=11112
Multiplicación 24
12
Multiplicación binaria
Algoritmo shift right
Determinar p = a.b, con a = 10102 y b=11112
1010
x 1111
0000 p(0).2-1
1010 a.b0
0 1010 p(1)
Multiplicación 25
Multiplicación binaria
Algoritmo shift right
Determinar p = a.b, con a = 10102 y b=11112
1010 1010
x 1111 x 1111
0000 p(0).2-1 01010 p(1).2-1
1010 a.b0 1010 a.b1
0 1010 p(1) 0 11110 p(2)
Multiplicación 26
13
Multiplicación binaria
Algoritmo shift right
Determinar p = a.b, con a = 10102 y b=11112
Multiplicación 27
Multiplicación binaria
Algoritmo shift right
Determinar p = a.b, con a = 10102 y b=11112
14
Multiplicación binaria
Implementación de multiplicador binario shift right
Versión Secuencial (serie)
Multiplicación 29
Multiplicación binaria
Implementación de multiplicador binario shift right
Versión Secuencial (serie)
15
Multiplicación binaria
Implementación de multiplicador binario shift left
Versión Secuencial (serie)
Multiplicación 31
Multiplicación 32
16
Multiplicación con signo
(complemento a la base)
Multiplicación 33
Ejemplo 1:
Multiplicación 34
17
Multiplicación con signo
(complemento a la base)
Ejemplo 1:
Determinar p = a.b, a = -1210 (101002) y b = 710 (01112)
10100
x 0111
(0) -1
00000 p .2
10100 a.b 0
10100 p(1)
no hay overflow y
resultado negativo,
conserva signo
1
Multiplicación 35
Ejemplo 1:
Determinar p = a.b, a = -1210 (101002) y b = 710 (01112)
10100 10100
x 0111 x 0111
(0) -1
00000 p .2 110100 p(1).2-1
10100 a.b0 10100 a.b1
10100 p(1) 011100 p(2)
no hay overflow y hay overflow y resultado
resultado negativo, positivo,
Multiplicación 36
18
Multiplicación con signo
(complemento a la base)
Ejemplo 1:
Determinar p = a.b, a = -1210 (101002) y b = 710 (01112)
Multiplicación 37
Ejemplo 1:
Determinar p = a.b, a = -1210 (101002) y b = 710 (01112)
19
Multiplicación con signo
(complemento a la base)
Ejemplo 2:
Determinar p = a.b, a = 1210 (011002) y b = -510 (10112)
01100
x 1011
00000 p(0).2-1
01100 a.b0
01100 p(1)
no hay overflow y
resultado positivo,
conserva signo
0
Multiplicación 39
Ejemplo 2:
Determinar p = a.b, a = 1210 (011002) y b = -510 (10112)
01100 01100
x 1011 x 1011
00000 p(0).2-1 (1) -1
001100 p .2
01100 a.b0 01100 a.b1
01100 p(1) 100100 p(2)
no hay overflow y hay overflow y resultado
resultado positivo, negativo,
Multiplicación 40
20
Multiplicación con signo
(complemento a la base)
Ejemplo 2:
Determinar p = a.b, a = 1210 (011002) y b = -510 (10112)
Multiplicación 41
Ejemplo 2:
Determinar p = a.b, a = 1210 (011002) y b = -510 (10112)
21
Multiplicación con signo
(complemento a la base)
Ejemplo 3:
Determinar p = a.b, a = -1210 (101002) y b = -510 (10112)
Ejemplo 4:
Determinar p = a.b, a = 1210 (011002) y b = 710 (01112)
22
Multiplicación con signo
(complemento a la base)
Implementación de multiplicador binario con signo shift right
Versión Secuencial (serie)
shr
a b
n
n m ciclos de latencia
sign
sumador/restador n bits
p shr
Multiplicación 45
23