Sunteți pe pagina 1din 69

SISTEMAS DIGITALES AVANZADOS

ARITMTICA (M. Valencia)


Universidad de Sevilla E.T.S. I. Informtica Dpto. de Tecnologa Electrnica
Dpto. Tecnologa Electrnica SISTEMAS DIGITALES AVANZADOS Aritmtica - 2
OBJETIVO y GUIN
Objetivo:
Presentar realizaciones de circuitos aritmticos
Guin
1. Introduccin
2. Representacin de nmeros
3. Suma/resta
4. Multiplicacin
5. Divisin/raz cuadrada
6. Operaciones en punto flotante
7. Otras operaciones (CORDIC, etc.)
Dpto. Tecnologa Electrnica SISTEMAS DIGITALES AVANZADOS Aritmtica - 3
BIBLIOGRAFA:
Cavanagh1986: Digital Computer Arithmetic. Design and Implementation. McGraw-Hill.
Cavanagh2010: Computer Arithmetic and Verilog HDL Fundamentals. CRC Press.
Ercegovac&Lang2004: Digital Arithmetic. Morgan Kaufmann Publishers.
Koren1993: Computer Arithmetic Algorithms. 2nd ed., Englewood Cliffs, NJ : Prentice-
Hall.
Omondi1994: Computer Arithmetic Systems. Algorithms, Architecture and Implementa-
tion. Prentice Hall.
Parhami2000: Computer Arithmetic: Algorithms and Hardware Designs. Oxford Univer-
sity Press.
PattersonHennessy1995: Organizacin y diseo de computadores. La interfaz hard-
ware-software. McGraw-Hill.
PattersonHennessy2011: Estructura y diseo de computadores. La interfaz hardware-
software. Revert.
Rabaey, Chandrakasan & B. Nicolic2004: Circuitos Integrados Digitales. Pearson/Pren-
tice-Hall, 2 ed.
Dpto. Tecnologa Electrnica SISTEMAS DIGITALES AVANZADOS Aritmtica - 4
1. INTRODUCCIN
Implementar en hardware funciones aritmticas
Objetivos principales: Velocidad, coste, simplicidad, otros
Campos de aplicacin muy diversos y amplios:
CPUs
Procesamiento digital de seal
Audio/video digital
Criptografa
Telefona mvil
Dpto. Tecnologa Electrnica SISTEMAS DIGITALES AVANZADOS Aritmtica - 5
Principales rasgos distintivos de la Aritmtica
digital clsica frente a la Aritmtica de papel y lpiz:
La base del sistema de numeracin es B = 2 (binaria).
La representacin de nmeros con signo normalmente no es con signo-magnitud.
Aunque no siempre, tambin la aritmtica a utilizar es la binaria.
Representaciones de nmeros fraccionarios:
punto fijo: normalmente mayor velocidad y precisin fija
punto flotante: mayor rango y precisin variable
El nmero de bits de los datos est acotado, lo que introduce errores de desbor-
damiento, de precisin y de cumplimiento de propiedades algebraicas (las operaciones
se vuelven no-cerradas y pueden incumplirse las propiedades asociativas y distribu-
tiva).
Dpto. Tecnologa Electrnica SISTEMAS DIGITALES AVANZADOS Aritmtica - 6
Importancia, errores, falacias, pifias, etc.:
Ver mi documento: Computer Arithmetic Tragedies page of Kees Vuik.fm
(http://ta.twi.tudelft.nl/nw/users/vuik/wi211/disasters.html) y otros desastres computacionales.
* Patriot Missile Failure * Explosion of the Ariane 5
* EURO page: Conversion Arithmetics * The Vancouver Stock Exchange
* Rounding error changes Parliament makeup * The sinking of the Sleipner A offshore platform
* Tacoma bridge failure (wrong design) * Collection of Software Bugs
Ver Parhami2000:
* pg. 3: El problema de Pentium
* pg. 5: El problema de hallar (...(x
1/2
)
1/2
...)
1/2
10 veces y recuperar x
2
10 veces
Ver Patterson&Hennessy1995 (y 2011):
* Pg. 217: Falacias y Pifias: 1/No es asociativa; 2/Dividir por 2 no es desplazar a derecha
* Pg. 219 y ss: Perspectiva histrica... : Aritmtica entera frente a Punto flotante; la Portabilidad y la
precisin, etc (!!!)
Dpto. Tecnologa Electrnica SISTEMAS DIGITALES AVANZADOS Aritmtica - 7
GUIN
1. Introduccin
2. Representacin de nmeros
3. Suma/resta
4. Multiplicacin
5. Divisin/raz cuadrada
6. Operaciones en punto flotante
7. Otras operaciones (CORDIC, etc.)
Dpto. Tecnologa Electrnica SISTEMAS DIGITALES AVANZADOS Aritmtica - 8
Tipos de representaciones
Punto fijo
Posicional de magnitudes enteras y fraccionarias
Nmeros con signo: Notaciones s-M, Ca1, Ca2, Biased (ponderada, sesgada)
Punto flotante:
Estndar IEEE 754
Otras representaciones:
Representaciones con posiciones de peso redundante
Representaciones con posiciones de peso con signo (GSD: Generalized signed-bit)
Representaciones Logartmicas
Representaciones RNS (Residue Number Sistems)
Dpto. Tecnologa Electrnica SISTEMAS DIGITALES AVANZADOS Aritmtica - 9
Representacin posicional de magnitudes en base r (punto fijo)
Magnitud entera, para n bits
M = d
n-1
d
n-2
... d
1
d
0

(r
debiendo cumplir:
Magnitud fraccionaria, para n bits de parte entera y m en la
parte fraccionaria:
M = d
n-1
d
n-2
... d
1
d
0
. d
-1
d
-2
... d
-m

(r
M d
j
r
j

j 0 =
n 1

=
M d
j
r
j

j m =
n 1

=
Dpto. Tecnologa Electrnica SISTEMAS DIGITALES AVANZADOS Aritmtica - 10
La precisin es 2
-m
y rango es [0, 2
n
- 2
-m
]
Los nmeros en punto fijo son tratables como nmeros enteros
que conservan la posicin del punto fraccionario en un lugar prefi-
jado (fijo en la suma/resta, como suma de los bits fraccionarios en
la multiplicacin, etc.)
En adelante trataremos con palabras de n bits, fijando la posicin
como si todos ellos fueran parte entera
Posicin: n-1 n-2 ... 2 1 0
Peso (entero): 2
n-1
2
n-2
... 2
2
2
1
2
0

MSB LSB
Dpto. Tecnologa Electrnica SISTEMAS DIGITALES AVANZADOS Aritmtica - 11
Representacin de nmeros con signo (palabras de n bits):
Signo-magnitud: N sbbb... = sM
donde s: bit de signo (0: positivo, 1: negativo)
M= bbb...: magnitud (n-1 bits)
El rango es [- (2
(n-1)
-1), + 2
(n-1)
-1] y posee dos CEROS (0000... y 1000...)
Operaciones aritmticas: Opuesto es fcil, Suma y Resta son poco eficientes
Dpto. Tecnologa Electrnica SISTEMAS DIGITALES AVANZADOS Aritmtica - 12
Complemento a 1: N sbbb...
donde s: bit de signo (0: positivo, 1: negativo)
bbb...: indica la magnitud (n-1 bits) de la siguiente forma:
bbb... = |N| si N > 0 (N es positivo)
bbb... = Ca1(|N|) si N < 0 (N es negativo),
siendo Ca1 la operacin unaria del complemento a 1:
Ca1 (M) = 2
n
-

2
-m
- M
para una magnitud M de n bits enteros y m fraccionarios
El rango es [- (2
(n-1)
-1), + 2
(n-1)
-1] y posee dos CEROS (0000... y 1111...)
Operaciones aritmticas: Opuesto es fcil, Suma y Resta son eficientes
Dpto. Tecnologa Electrnica SISTEMAS DIGITALES AVANZADOS Aritmtica - 13
Complemento a 2: N sbbb...
donde s: bit de signo (0: positivo, 1: negativo)
sbbb...: indica la magnitud (n bits) de la siguiente forma:
0bbb... = |N| si N > 0 (N es positivo)
1bbb... = Ca2(|N|) si N < 0 (N es negativo),
siendo Ca2 la operacin unaria del complemento a 2:
Ca2 (M) = (2
n
- M)
mod.2
n
para una magnitud M de n bits enteros y m fraccionarios
El rango es asimtrico [- 2
(n-1)
, + 2
(n-1)
-1] y solo posee un CERO (0000...)
Operaciones aritmticas: Opuesto no es fcil, Suma y Resta son muy eficientes
La representacin de nmeros en Complemento a 2 corresponde a un peso negativo
en el MSB. Ejemplo (4 bits): -3 1101 (= -12
3
+ 12
2
+ 12
0
= -8 + 4 + 1 = -3)
Dpto. Tecnologa Electrnica SISTEMAS DIGITALES AVANZADOS Aritmtica - 14
Polarizada (biased) o exceso a B: N sbbb... = (N + B)
(2
Para n bits y usando el desplazamiento B = 2
n-1
- 1 (B = 0111...111),
El bit s, bit de signo, es 1: positivo no-nulo, 0: negativo o cero:
Ejemplos (4 bits, B=7): +81111, +71110, +11000, 00111, 70000
El rango es asimtrico [- (2
(n-1)
-1), + 2
(n-1)
] y solo posee un CERO (0111...)
Eficiente en las comparaciones.
Uso en el estndar IEEE de punto flotante
Dpto. Tecnologa Electrnica SISTEMAS DIGITALES AVANZADOS Aritmtica - 15
Estndar IEEE 754 simple precisin
N 1 manf , ( )
2 ( )
2
ex
=
Dpto. Tecnologa Electrnica SISTEMAS DIGITALES AVANZADOS Aritmtica - 16
Valores representados:
Estndar IEEE 754 simple precisin
0/1
s ex +127 manf
Nmeros normales:
[1,254]
cualquiera
0/1
+ y - 1111 1111
0000 0000 0000 0000 0000 000
0/1
+0 y -0 0000 0000
0000 0000 0000 0000 0000 000
0/1
Desnormalizados 0000 0000
0/1
N a N 1111 1111
0
0
N 1 manf , ( )
2 ( )
2
ex
=
signo + (0) o - (1)
s
manf [23] ex + 127 [8]
1
23
8
oculto
Doble precisin:
1 + 11 + 52
Dpto. Tecnologa Electrnica SISTEMAS DIGITALES AVANZADOS Aritmtica - 17
RESUMEN
CIRCUITOS ARITMTICOS DEL COMPUTADOR
Se les exige grandes prestaciones y exactitud
Existen muchas formas de representacin y de aritmtica
Hay diversos tipos y causas de errores:
Tipos: desbordamientos, redondeos, aproximaciones, bugs (mezclar factores de con-
versin de diferentes unidades; errar en la programacin de un bit; etc.)
Causas: Conversin entre representaciones; operaciones aritmticas; escalados; apli-
cacin indebida de leyes aritmticas; etc.
Dpto. Tecnologa Electrnica SISTEMAS DIGITALES AVANZADOS Aritmtica - 18
GUIN
1. Introduccin
2. Representacin de nmeros
3. Suma/resta
4. Multiplicacin
5. Divisin/raz cuadrada
6. Operaciones en punto flotante
7. Otras operaciones (CORDIC, etc.)
Dpto. Tecnologa Electrnica SISTEMAS DIGITALES AVANZADOS Aritmtica - 19
2. SUMA/RESTA
SUMA DE NMEROS CON SIGNO
Con papel y lpiz los operandos se representan en signo-magnitud
y operamos con ellos. En binario esto no es eficiente.
En binario, la forma ms eficiente de realizar la suma/resta es ope-
rando con representaciones basadas en el Ca2:
0bbb... = |N| si N > 0 (N es positivo)
1bbb... = Ca2(|N|) si N < 0 (N es negativo)
El opuesto se obtiene como: - N = Ca2(N)
Dpto. Tecnologa Electrnica SISTEMAS DIGITALES AVANZADOS Aritmtica - 20
La suma de dos nmeros representados en complemento a 2 se
realiza con un sumador de magnitudes, como si los nmeros
fueran sin signo, sin considerar el acarreo de salida.
A B
+
C
in
C
out
S
1001 0101
1110
1001
0101
0
0
C
out
0 0 C
in
1110
Sin signo:
A = 9
B = 5
S = 14
C a 2:
A = - (0111) = -7
B = 5
S = - (0010) = - 2
Dpto. Tecnologa Electrnica SISTEMAS DIGITALES AVANZADOS Aritmtica - 21
La resta de magnitudes puede seguir un proceso anlogo al de
la suma. Aqu veremos la solucin de nmeros con signo.
La resta de nmeros con signo se reduce a sumas
A, B
s/r
B -B
S =A +B
0 (s)
1 (r)
Sumador/Restador en C a 2:
Sumador paralelo de n bits
A
Y
B
Complementador
de n bits
C
in
s/r
C
S
C
out
En general,
A - B =A +(-B)
Dpto. Tecnologa Electrnica SISTEMAS DIGITALES AVANZADOS Aritmtica - 22
Siendo A y B datos representables, se produce desbordamiento
cuando el valor de A + B no cabe en S
Si A y B son magnitudes, el desbordamiento es observable en C
out
:
C
out
=0 S = A + B C
out
= 1 S A +B
Si A y B son nmeros con signo, se aade un bit de salida (V: oVerflow)
para que el desbordamiento sea observable:
V = 0 S = A +B V
out
= 1 S A +B
A B
+/-
s/r
C
out
S
V
V = C
out
C
signo

FA
a
n-2
b
n-2
S
n-2
C
n-2
C
n-1
FA
a
n-1
b
n-1
S
n-1
C
n
= C
out
. . .
=1
V
Bit de Signo (en su caso)
Dpto. Tecnologa Electrnica SISTEMAS DIGITALES AVANZADOS Aritmtica - 23
Aritmtica BCD
K
p
K
p-1
... K
1
0
A
p-1
... A
1
A
0
B
p-1
... B
1
B
0

p-1
...
1

0
A
i
+ B
i
+ K
i
= (K
i+1

i
)
4 3
5 0
9 3
0 1 0 1 0 0 0 0
0 1 0 0 0 0 1 1
1 0 0 1 0 0 1 1 93 en cdigo BCD
6
7
1 3
0 1 1 1
0 1 1 0
1 1 0 1 Cdigo BCD no vlido
0 1 1 1
0 1 1 0
1 1 0 1
0 1 1 0
0 0 1 1 0 0 0 1
13 en cdigo BCD
2 3 4
5 8 4
8 1 8
0 1 0 1 1 0 0 0
0 0 1 0 0 0 1 1
0 1 1 1 1 0 1 1
0 1 0 0
0 1 0 0
1 0 0 0
0 1 1 0 1
1 0 0 0 0 0 0 1
1 0 0 0
Suma incorrecta
8 1 8 en cdigo BCD
2 9
5 8
8 7
0 1 0 1 1 0 0 0
0 0 1 0 1 0 0 1
1 0 0 0 0 0 0 1
0 1 1 0
1
1 0 0 0 0 1 1 1
Suma incorrecta
8 7 en cdigo BCD
(a)
(b)
(c)
6
7
1 3
0 1 1 1
0 1 1 0
1 1 0 1 Cdigo BCD no vlido
0 1 1 1
0 1 1 0
1 1 0 1
0 1 1 0
0 0 1 1 0 0 0 1
2 3 4
5 8 4
8 1 8
0 1 0 1 1 0 0 0
0 0 1 0 0 0 1 1
0 1 1 1 1 0 1 1
0 1 0 0
0 1 0 0
1 0 0 0
0 1 1 0 1
1 0 0 0 0 0 0 1
1 0 0 0
Suma incorrecta
8 1 8 en cdigo BCD
2 9
5 8
8 7
0 1 0 1 1 0 0 0
0 0 1 0 1 0 0 1
1 0 0 0 0 0 0 1
0 1 1 0
1
1 0 0 0 0 1 1 1
Suma incorrecta
8 7 en cdigo BCD
(a)
(b)
Dpto. Tecnologa Electrnica SISTEMAS DIGITALES AVANZADOS Aritmtica - 24
sumador binario
4 4
a
3-0
b
3-0
S
3-0
K
in
de 4 bits
C
out
sumador binario
4

3-0
C
in
=0
de 4 bits
0 0
&
>1
K
out
&
S
1
S
3
S
2
K
out
sumador BCD
4 4
B
0
A
0
K
0
K
1
de 1 dgito

0
sumador BCD
4 4
B
i
A
i
K
i
K
i+1
de 1 dgito
sumador BCD
4 4
B
n-1
A
n-1
K
n-1
K
n
de 1 dgito

n-1
. . .

i
. . .
4 4
4
Sumador BCD de n dgitos
A
Y
B
Transfiere/complementa a 9
K
in
s/r
C

K
out

n
*
4
n
*
4 n
*
4
n
*
4
Sumador BCD de 1 dgito Sumador paralelo en BCD
Sumador/restador BCD en Complemento a 10
Dpto. Tecnologa Electrnica SISTEMAS DIGITALES AVANZADOS Aritmtica - 25
SUMA DE MAGNITUDES: SEMISUMADOR
En aritmtica binaria la suma de dos bits, a
i
+b
i
, es:
a
i
+ b
i
= (C
i+1
S
i
)
(2 ,
siendo C
i+1
el acarreo y S
i
la suma
El circuito que suma dos bits es el Half Adder (HA) o semisumador
HA
a
i
b
i
S
i
C
i+1
a
i
b
i
C
i+1
S
i

0 0 0 0
0 1
1 0
1 1
0 1
0 1
1 0
C
i+1
=a
i
b
i
S
i
= a
i
b
i
=1
S
i
a
i
b
i
&
C
i+1
a
i
b
i
Dpto. Tecnologa Electrnica SISTEMAS DIGITALES AVANZADOS Aritmtica - 26
Sumador Completo
Salvo en la columna LSB (Least Significative Bit), al sumar 2 datos binarios hay que
sumar 3 bits: uno de cada sumando y el acarreado desde la columna anterior. Esta
suma es:
a
i
+ b
i
+ C
i
= (C
i+1
S
i
)
(2
El circuito correspondiente es el Full Adder (FA) o sumador completo
FA
a
i
b
i
S
i
C
i+1
C
i
a
i
b
i
C
i
C
i+1
S
i

0 0 0
0 0

0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
0 1
0 1
1 0
0 1
1 0
1 0
1 1
C
i+1
=a
i
b
i
+a
i
C
i
+b
i
C
i
S
i
= a
i
b
i
C
i
Dpto. Tecnologa Electrnica SISTEMAS DIGITALES AVANZADOS Aritmtica - 27
Realizaciones de Sumador Completo
HA
a
i
b
i
S
i
C
i+1
HA
C
i
S
i
C
i+1
>1
C
i+1
S
i
=1
a
i
b
i
C
i
=1
S
i
&
a
i
b
i
a
i
C
i
C
i+1
C
i
b
i
&
&
&
0
1
2
3
10
10
a
i
b
i
C
i
C
i
0
C
i
C
i
1
0
1
2
3
C
i+1
S
i
C
i
Dpto. Tecnologa Electrnica SISTEMAS DIGITALES AVANZADOS Aritmtica - 28
Ms ecuaciones:
Las funciones de generacin (G), propagacin (P) y anulacin (K)
de acarreo:
Salida de suma:
Si = AiBiCi = (AiBi)Ci = AiBiCi+AiBiCi+AiBiCi+AiBiCi = {usando Ci+1}=
= AiBiCi+ Ci+1(Ai+Bi+Ci) = {usando Gi, Pi, Ki}= Pi Ci
Acarreo de salida:
Ci+1 = AiBi + AiCi + BiCi = AiBi + Ci(Ai+Bi) = AiBi + Ci(AiBi) =
= {usando Gi, Pi, Ki}= Gi + PiCi
a
i
b
i
G
i
P
i
K
i
0 0 1
0 1 1
1 0 1
1 1 1
G
i
= a
i
b
i
Genera acarreo C
i+1

P
i
= a
i
b
i
Propaga C
i
a C
i+1

K
i
= a
i
+ b
i
Nunca genera acarreo C
i+1

Dpto. Tecnologa Electrnica SISTEMAS DIGITALES AVANZADOS Aritmtica - 29
Diferentes realizaciones de FA [Parra-tesis]:
a
i
b
i
b
i
a
i
a
i
b
i
b
i
a
i
a
i
b
i
a
i
b
i
a
i
b
i
a
i
b
i
c
i
c
i+1
c
i
c
i
c
i
c
i
si
b
i
b
i
a
i
a
i
a
i
a
i
a
i
a
i
b
i
s
i
c
i
c
i+1
c
i+1
s
i
a
i
a
i
a
i
a
i
b
i
b
i
b
i
b
i
a
i
a
i
c
i
c
i
c
i
c
i
c
i
c
i
c
i
b
i
a
i
a
i
a
i
a
i
b
i
b
i
b
i
b
i
a
i
b
i
a
i
b
i
b
i
a
i
a
i
b
i
s
i
s
i
c
i c
i
c
i
c
i
b
i
b
i
a
i
a
i
b
i
b
i
a
i
a
i
a
i
b
i b
i
a
i
b
i
b
i
b
i
a
i
a
i
b
i
b
i
a
i
a
i
a
i
b
i
a
i
c
i+1
c
i
c
i
c
i+1
c
i
c
i
b
i
a
i
s
i
c
i+1
c
i
a
i
b
i
s
i
c
i
c
i+1
Dpto. Tecnologa Electrnica SISTEMAS DIGITALES AVANZADOS Aritmtica - 30
Sumadores de 2 magnitudes de n bits
El de menor hardware es el sumador serie
... pero es muy lento: n ciclos de reloj aproximadamente
a
i
b
i
C
i
C
i+1
S
i
FA
EM
in
out
. . . 0, 1, 1, (0)
. . . 1, 1, 0, 0
. . . 1, 0, 0, 1
. . . 0, 0, 1, 1
t
. . . 0, 1, 1
. . . 0 1 1 (0)
. . . 1 0 0 1
. . . 0 0 1 1
. . . 1 1 0 0
+
Acarreos C
i
A
B
Dpto. Tecnologa Electrnica SISTEMAS DIGITALES AVANZADOS Aritmtica - 31
El ms intuitivo y de coste razonablemente bajo es el sumador
paralelo con acarreo serie
C
out
marca el Desbordamiento (n bits) y el propio valor S
n
FA
a
1
b
1
S
1
C
2
C
1
S
0
C
1
FA
a
n-1
b
n-1
S
n-1
C
out
=C
n
C
n-1
. . . .
FA
a
2
b
2
S
2
C
3
C
2
FA
a
0
b
0
C
0
=C
in
A B
C
in
C
out
S
Dpto. Tecnologa Electrnica SISTEMAS DIGITALES AVANZADOS Aritmtica - 32
... pero,aunque mucho ms rpido que el sumador serie, tam-
bin es lento debido a la propagacin serie del acarreo
El tiempo de propagacin de acarreo es el principal problema de
los sumadores paralelo. Algunas soluciones se tratan tras la suma/
resta con signo
FA
a
1
b
1
S
1
C
2
C
1
S
0
C
1
FA
a
n-1
b
n-1
S
n-1
C
out
=C
n
C
n-1
. . . .
FA
a
2
b
2
S
2
C
3
C
2
FA
a
0
b
0
C
0
=C
in
Dpto. Tecnologa Electrnica SISTEMAS DIGITALES AVANZADOS Aritmtica - 33
AUMENTO DE PRESTACIONES
OBJ ETIVO: Disminuir el tiempo de propagacin de acarreo
No importa tanto si es acosta de aumentar t
sumai

FA
a
1
b
1
S
1
C
2
C
1
S
0
C
1
FA
a
n-1
b
n-1
S
n-1
C
out
=C
n
C
n-1
. . . .
FA
a
2
b
2
S
2
C
3
C
2
FA
a
0
b
0
C
0
=C
in
S
i C
i+1
FA
a
i
b
i
C
i
t
sumai
t
C
t
suma
= (n-1)t
C
+ t
sumai
Dpto. Tecnologa Electrnica SISTEMAS DIGITALES AVANZADOS Aritmtica - 34
Tcnicas para reducir t
C
SUMADOR MANCHESTER: propaga el acarreo a travs de
switches, ganando velocidad. Para ello que crea las funciones G
i
,
P
i
y K
i

a
i
b
i
G
i
P
i
K
i
0 0 1
0 1 1
1 0 1
1 1 1
G
i
= a
i
b
i
Genera acarreo C
i+1

P
i
= a
i
b
i
Propaga C
i
a C
i+1

K
i
= a
i
+ b
i
Nunca genera acarreo C
i+1

"1" "0"
G
i
K
i
P
i
c
i
c
i+1
Dpto. Tecnologa Electrnica SISTEMAS DIGITALES AVANZADOS Aritmtica - 35
SUMADORES Carry Skip
La expresin ya tratada, C
i+1
= G
i:j
+ P
i:j
C
j
, es usada para imple-
mentar la idea de carry skip.
i j
C
j
G
i:j
P
i:j
C
i+1
i j
C
j
G
i:j
P
i:j
C
i+1
i j
C
j
G
i:j
P
i:j
C
i+1
i j
C
j
G
i:j
P
i:j
C
i+1
Se aplica a grupos de bits, y los sumadores de cada grupo se
implementan con cualquiera de las tcnicas.
Dpto. Tecnologa Electrnica SISTEMAS DIGITALES AVANZADOS Aritmtica - 36
SUMADORES Carry Select
sumador con acarreo
4 4
b
7-4
a
7-4
S
7-4
H
C
4
=1
4 4
b
7-4
a
7-4
S
7-4
L
C
4
=0
sumador de 4 bits
con arrastre anticipado
4 4
b
3-0
a
3-0
S
3-0
C
0
=0
valor alto
sumador con acarreo
valor bajo
C
4
0
1
4
4
4
C
8
C
8
H
C
8
L
S
7-4
C
4
1 0
Dpto. Tecnologa Electrnica SISTEMAS DIGITALES AVANZADOS Aritmtica - 37
SUMADORES Carry Save
b
a
C
in
C
out
S
FA
b
a
C
in
C
out
S
FA
b
a
C
in
C
out
S
FA
b
a
C
in
C
out
S
FA
b
a
C
in
C
out
S
FA
b
a
C
in
C
out
S
FA
b
a
C
in
C
out
S
FA
b
a
C
in
C
out
S
FA
b
a
C
in
C
out
S
FA
0
0
b
a
C
in
C
out
S
FA
S
2
S
1
S
0
S
3
C
out
D
0
C
0
A
0
B
0
D
1
C
1
A
1
B
1
D
2
C
2
A
2
B
2
0
Para 3 o ms
sumandos
Dpto. Tecnologa Electrnica SISTEMAS DIGITALES AVANZADOS Aritmtica - 38
SUMADOR PARALELO CON ACARREO ANTICIPADO
No se basa en las ecuaciones directas para C
i+1
y S
i
, sino en las
funciones llamadas de generacin (G
i
) y de propagacin de
acarreo (P
i
)
C
1
G
0
P
0
C
0
+ =
C
2
G
1
P
1
C
1
+ G
1
P
1
G
0
P
1
P
0
C
0
+ + = =
C
3
G
2
P
2
C
2
+ G
2
P
2
G
1
P
2
P
1
G
0
P
2
P
1
P
0
C
0
+ + + = =
C
4
G
3
P
3
C
3
+ G
3
P
3
G
2
P
3
P
2
G
1
P
3
P
2
P
1
G
0
P
3
P
2
P
1
P
0
C
0
+ + + + = =
P
i
a
i
b
i
=
S
i
P
i
C
i
=
C
i 1 +
G
i
P
i
C
i
+ =
G
i
a
i
b
i
=
Dpto. Tecnologa Electrnica SISTEMAS DIGITALES AVANZADOS Aritmtica - 39
=1 a
i
b
i
Ci
=1
S
i
P
i
&
G
i
a
i
b
i
S
i
P
i
Ci
G
i

a
0
b
0
S
0
P
0
G
0
a
1
b
1
S
1
P
1
C
1
G
1
a
2
b
2
S
2
P
2
C
2
G
2
&
>1
&
>1
&
&
&
&
>1
P
0
G
0
G
1
C
0
C
0
C
1
C
2
C
3
G
0
P
1
C
0
P
1
P
0
G
2
P
2
G
1
C
0
P
1
P
0
P
2
G
0
P
1
P
2
&
>1
P
3
G
3
C
out
a
3
b
3
S
3
P
3
C
3
G
3
Sumador paralelo de 4 bits con acarreo adelantado
Dpto. Tecnologa Electrnica SISTEMAS DIGITALES AVANZADOS Aritmtica - 40
La idea del acarreo anticipado se generaliza desde el concepto de
G
i
y P
i
a nivel de bit al nivel de grupos de bits, p. ej. G(3-0) y P(3-0)
El valor de C
4
se obtiene en dos niveles a partir de las nuevas funciones G(3-0) y P(3-
0) y el acarreo de entrada C
0
.
Las nuevas funciones G(3-0) y P(3-0) se realizan en dos niveles en el sumador. Un cir-
cuito LAC (Look Ahead Carry), que es una generalizacin del circuito en dos niveles
a nivel de bit, proporciona los acarreos de salida de grupo.
Los sumadores con acarreo anticipado se asocian:
con acarreo serie de uno al siguiente
usando un circuito LAC
G 3 0 ( ) G
3
P
3
G
2
P
3
P
2
G
1
P
3
P
2
P
1
G
0
+ + + =
P 3 0 ( ) P
3
P
2
P
1
P
0
=
C
4
G 3 0 ( ) P 3 0 ( ) C
0
+ =
Dpto. Tecnologa Electrnica SISTEMAS DIGITALES AVANZADOS Aritmtica - 41
sumador de 4 bits
con arrastre anticipado
4 4
b
3-0
a
3-0
sumador de 4 bits
con arrastre anticipado
4 4
b
7-4
a
7-4
sumador de 4 bits
con arrastre anticipado
4 4
b
11-8
a
11-8
sumador de 4 bits
con arrastre anticipado
4 4
b
15-12
a
15-12
S
15-12
P(15-12)G(15-12)
C
0
=0
C
4 C
8
C
12
C
16
S
11-8
P(11-8) G(11-8) S
7-4
P(7-4) G(7-4) S
3-0
P(3-0) G(3-0)
Sumador de 16 bits
con acarreo serie
entre cada sumador
de 4 bits
sumador de 4 bits
con arrastre anticipado
4 4
b
3-0
a
3-0
sumador de 4 bits
con arrastre anticipado
4 4
b
7-4
a
7-4
sumador de 4 bits
con arrastre anticipado
4 4
b
11-8
a
11-8
sumador de 4 bits
con arrastre anticipado
4 4
b
15-12
a
15-12
S
11-8
P(11-8) G(11-8)
S
7-4
P(7-4) G(7-4)
S
3-0
P(3-0) G(3-0)
S
15-12
P(15-12) G(15-12)
C
0
=0
C
4 C
8
C
12
C
16
Unidad de arrastre anticipado (LAC)
Sumador de 16 bits
con LAC
Dpto. Tecnologa Electrnica SISTEMAS DIGITALES AVANZADOS Aritmtica - 42
SUMADOR DE LING
Modifica el sumador de acarreo adelantado obteniendo un
pequeo ahorro en la eficiencia del circuito
Usa los siguientes conceptos:
Funcin de transmisin: t
i
= x
i
+ y
i
(+ es OR)
Propaga dos acarreos consecutivos: h
i
= C
i
+ C
i+1
La ecuacin de propagacin es:
h
i+1
= g
i
+ g
i-1
t
i-1
+ g
i-2
t
i-2
t
i-1
+ g
i-3
t
i-3
t
i-2
t
i-1
+ h
i-3
t
i-4
t
i-3
t
i-2
t
i-1

ms simple que la equivalente de carry look-ahead, pero con algoritmo ms difcil
La suma se complica un poco: S
i
= (t
i
h
i-1
) + (h
i
g
i
t
i-1
)
Dpto. Tecnologa Electrnica SISTEMAS DIGITALES AVANZADOS Aritmtica - 43
SUMADORES PARALELOS PREFIJ O
Retomemos la generalizacin de los grupos Generador y Propaga-
dor de acarreo: (G(3-0) y P(3-0) desde el bit 0 al bit 3, valan:
Consideremos un grupo de bits i:j (adaptamos la notacin leve-
mente), G
i:j
= G(i-j) y P
i:j
= P(i-j):
P
i:j
= P
i
P
(i-1):j

G
i:j
= G
i
+ G
(i-1):j
P
i

C
i+1
= G
i:j
+ P
i:j
C
j


G 3 0 ( ) G
3
P
3
G
2
P
3
P
2
G
1
P
3
P
2
P
1
G
0
+ + + =
P 3 0 ( ) P
3
P
2
P
1
P
0
=
C
4
G 3 0 ( ) P 3 0 ( ) C
0
+ =
Dpto. Tecnologa Electrnica SISTEMAS DIGITALES AVANZADOS Aritmtica - 44
Obsrvese que se cumple:
Esta operacin por parejas P y G se denomina operacin fundamental del acarreo ():
(P
i:j
, G
i:j
) = (P
i:m
, G
i:m
) (P
(m-1):j
, G
(m-1):j
) =
= ( P
i:m
P
(m-1):j
, G
i:m
+ P
i:m
G
(m-1):j
La operacin cumple las propiedades de idempotencia y asociativa (pero no es
conmutativa), lo que permite generalizar la obtencin de los grupos G y P asociando
grupos intermedios aunque estn solapados:
i i-1 ... m ... j
C
j
C
i+1
P
i:j
= P
i:m
P
(m-1):j
G
i:j
= G
i:m
+ P
i:m
G
(m-1):j
Dpto. Tecnologa Electrnica SISTEMAS DIGITALES AVANZADOS Aritmtica - 45
Esta forma de operar permite ir obteniendo en paralelo los bits
(computacin prefijada) y da lugar a diferentes tipos de sumadores
como son:
i ... j
C
j
C
i+1
i m
v i
Condiciones:
i > m > j
i > v > j
v > m-1
(P
i:j
, G
i:j
) = (P
i:m
, G
i:m
) (P
v:j
, G
v:j
)
Dpto. Tecnologa Electrnica SISTEMAS DIGITALES AVANZADOS Aritmtica - 46
Sumador [16] paralelo prefijo de R.P. Brent y H.T. Kung
p
0
g
0
p
1
g
1
p
2
g
2
p
4
g
4
p
3
g
3
p
5
g
5
p
6
g
6
p
7
g
7
p
8
g
8
p
9
g
9
p
10
g
10
p
11
g
11
p
12
g
12
p
13
g
13
p
14
g
14
p
15
g
15
C
1
G
[1:0]
,P
[1:0]
C
2
G
[3:2]
,P
[3:2]
G
[5:4]
,P
[5:4]
G
[7:6]
,P
[7:6]
G
[9:8]
,P
[9:8]
G
[11:10]
,P
[11:10]
G
[13:12]
,P
[13:12]
G
[15:14]
,P
[15:14]
G
[3:0]
,P
[3:0]
C
4
G
[7:4]
,P
[7:4]
G
[11:8]
,P
[11:8]
G
[15:12]
,P
[15:12]
G
[7:0]
,P
[7:0] C
8
G
[15:8]
,P
[15:8]
G
[15:0]
,P
[15:0] C
16
G
[2:0]
,P
[2:0] C
3
G
[4:0]
,P
[4:0] C
5
G
[5:0]
,P
[5:0]
C
6
G
[6:0]
,P
[6:0] C
7
G
[8:0]
,P
[8:0] C
9
G
[9:0]
,P
[9:0]
C
10
G
[10:0]
,P
[10:0]
C
11
G
[11:0]
,P
[11:0]
C
12
G
[12:0]
,P
[12:0]
C
13
G
[13:0]
,P
[13:0]
C
14
G
[14:0]
,P
[14:0]
C
15
stage
1
stage
2
stage
3
stage
4
stage
5
stage
6
stage
7
Dpto. Tecnologa Electrnica SISTEMAS DIGITALES AVANZADOS Aritmtica - 47
y muy diferentes formas de prefijar la computacin:
Brent & Kung Kogge & Stone
Ladner & Fisher
Han & Carlson
Dpto. Tecnologa Electrnica SISTEMAS DIGITALES AVANZADOS Aritmtica - 48
GUIN
1. Introduccin
2. Representacin de nmeros
3. Suma/resta
4. Multiplicacin
5. Divisin/raz cuadrada
6. Operaciones en punto flotante
7. Otras operaciones (CORDIC, etc.)
Dpto. Tecnologa Electrnica SISTEMAS DIGITALES AVANZADOS Aritmtica - 49
MULTIPLICACIN BINARIA DE MAGNITUDES:
Es una extensin de la multiplicacin en decimal...
La realizacin de multiplicadores tiene muchas visiones diferentes,
como son:
Como problema lgico es una funcin combinacional mltiple de n + m salidas siendo
n y m el nmero de bits del multiplicando y del multiplicador. Incluso para valores
1 0 0 1
1 0 1 1
1 0 0 1
1 0 0 1
0 0 0 0
1 0 0 1
0 1 1 0 0 0 1 1
A : multiplicando
B : multiplicador
P : producto Primer producto parcial
Segundo producto parcial
Tercer producto parcial
Cuarto producto parcial
con una tabla de multiplicar extremadamente fcil: 0 A = 0
x x
1 A = A
Dpto. Tecnologa Electrnica SISTEMAS DIGITALES AVANZADOS Aritmtica - 50
realtivamente pequeos de n y m se trata de un problema complejo con soluciones
sin regularidad.
Tambin se trata de un problema de mltiples sumas (m sumandos de n bits en
paralelo).
Tambin puede verse como un problema secuencial: el de ir sumando dos a dos oper-
andos, pero realizando las sumas sucesivamente (secuencia de sumas)
Ahora presentamos una solucin secuencial (en el aptdo. 4 se plantean otras imple-
mentaciones): Multiplicador de magnitudes basado en sumas y desplazamientos a
derecha (vase laboratorio multiplicador 4x4)
Dpto. Tecnologa Electrnica SISTEMAS DIGITALES AVANZADOS Aritmtica - 51
Algoritmo
0 1 1 0
1 0 1 1
0 1 1 0
0 1 1 0
0 1 1 0
0 1 0 0 0 0 1 0
+
+
x
A
B
B
1
= 1
B
0
= 1
0 1 0 0 1
B
2
= 0
No +
0 1 0 0 1
=
B
3
= 1
0 0 0 0
0 0 1 1 0
+
Dpto. Tecnologa Electrnica SISTEMAS DIGITALES AVANZADOS Aritmtica - 52
Algoritmo
0 1 1 0
1 0 1 1
0 1 1 0
0 1 1 0
0 1 1 0
0 1 0 0 0 0 1 0
+
+
x
A
B
B
1
= 1
B
0
= 1
0 1 0 0 1
B
2
= 0
No +
0 1 0 0 1
=
B
3
= 1
0 0 0 0
0 0 1 1 0
+
Los bits menos significativos
que van apareciendo en las
sumas parciales, pasan a ser
resultado sin posteriores
transformaciones.
Dpto. Tecnologa Electrnica SISTEMAS DIGITALES AVANZADOS Aritmtica - 53
Algoritmo
0 1 1 0
1 0 1 1
0 1 1 0
0 1 1 0
0 1 1 0
0 1 0 0 0 0 1 0
+
+
x
A
B
B
1
= 1
B
0
= 1
0 1 0 0 1
B
2
= 0
No +
0 1 0 0 1
=
B
3
= 1
0 0 0 0
0 0 1 1 0
+
0 1 1 0
1 0 1 1
0 1 1 0
0 1 1 0
0 1 0 0 0 0 1 0
+
x
A
B
B
1
= 1
B
0
= 1
0 1 0 0 1 0
B
2
= 0
B
3
= 1
0 0 0 0
0 0 1 1 0
+
0 0 1 1 0
SHR
0 1 1 0
+
0 1 0 0 1 0 SHR
SHR
0 0 1 0 0 1 0
SHR 0 1 0 0 0 0 1 0
Dpto. Tecnologa Electrnica SISTEMAS DIGITALES AVANZADOS Aritmtica - 54
Multiplicador
Para B
0
, B
1
, B
2
,... B
m-1
B
i
=1 B
i
=0
SUMAR
Desplazar a la dcha.
Siguiente B
i

Multiplicando
Multiplicador
Productos
+
C
out
Desplazamiento
a derecha
B
i
Dpto. Tecnologa Electrnica SISTEMAS DIGITALES AVANZADOS Aritmtica - 55
MULTIPLICACIN DE NMEROS CON SIGNO
Dos formas de solucin:
Multiplicando las magnitudes
1. De A y B, obtener signo (sA, sB) y magnitudes (MA y MB)
2. Obtener magnitud del producto: MP = MA MB con el multiplicador
3. Obtener el signo del producto: sP = sA sB
4. Obtener la representacin del Producto como nmero con signo
Si se trabaja con nmeros con signo bajo la notacin Ca2, usar el algoritmo de Booth
Dpto. Tecnologa Electrnica SISTEMAS DIGITALES AVANZADOS Aritmtica - 56
Algoritmo de Booth
Puede usarse el multiplicador anterior con Sumador/Restador y
pequeas modificaciones en el algoritmo
B: .........0 1 1 1 1 0 0 ........
......... k .... i .......
2
k+1
: .........1 0 0 0 0 0 0 ........
2
i
: .........0 0 0 0 1 0 0 ........
....0 1 1 1 1 0 0 .. = 2
k+1
- 2
i
B
j+1
B
j
= 0 0 Ninguna operacin aritmtica (en medio de cadenas de 0s)
0 1 Sumar multiplicando (fin de cadena de unos) en posicin K+1
1 0 Restar multiplicando (comienzo de cadena de unos) en posicin j
En esta resta debe conservarse el signo (extensin de signo)
1 1 Ninguna operacin aritmtica (en medio de cadenas de 1s)
Dpto. Tecnologa Electrnica SISTEMAS DIGITALES AVANZADOS Aritmtica - 57
DIVISIN BINARIA ENTRE MAGNITUDES
Dados: D (dividendo) y d (divisor), el resultado de la divisin pro-
porciona dos valores: un cociente C y un resto r
.
D d C r + =
1 0 0 1 1 0 0 1 0 0 1 1 0 0 0 divisor
- 1 1 0 0 0
0 1 1 0 0 1 Cociente
0 0 1 1 1 0 0
- 1 1 0 0 0
0 0 1 0 0 1 0 0
- 1 1 0 0 0
0 0 1 1 0 0 Resto
Dpto. Tecnologa Electrnica SISTEMAS DIGITALES AVANZADOS Aritmtica - 58
Comparacin con la multiplicacin:
Se distinguen en:
Hay que mirar si el divisor es 0, pues da un resultado ilegal
Hay que restar el divisor al dividendo por partes, pero si la resta sale negativa hay
que restaurar la parte del dividendo
Se parece en que es una sucesin de restas sucesivas entre lo que va quedando del
dividendo (resto) y el divisor completo.
Dpto. Tecnologa Electrnica SISTEMAS DIGITALES AVANZADOS Aritmtica - 59
Divisor: Dividendo [n] bits; cociente y resto de n/2 bits
Durante n/2 veces
Resto>0
Desplaza Resto con
Divisor
Cociente Resto
Sum/Res Bw
out
Desplazamiento
a izquierda
Cociente
i
D i v i d en d o
Divisor = 0? S: STOP; No: seguir
RESTAR
Resto<0
Cociente
i
= 1
Sumar y desplazar
Cociente
i
= 0
Dpto. Tecnologa Electrnica SISTEMAS DIGITALES AVANZADOS Aritmtica - 60
LA DIVISIN DE NMEROS CON SIGNO
Se hace convirtiendo los nmeros con signo a la notacin signo
magnitud.
Se dividen entonces las magnitudes.
Se tratan los signos del cociente de la forma clsica (cociente pos-
itivo si y slo si son iguales los signos de Dividendo y divisor).
Se trata el signo del resto igual al signo del Dividendo.
Dpto. Tecnologa Electrnica SISTEMAS DIGITALES AVANZADOS Aritmtica - 61
AUMENTO DE PRESTACIONES EN CIRCUITOS
MULTIPLICADORES
Existe una gran diversidad de circuitos de multiplicacin
1
, de los
que slo presentamos algunas implementaciones. Para clasificar-
los los dividimos en:
* Combinacionales
* Secuenciales
Los combinacionales son de ms coste y ms veloces
A veces se busca ms un buen throughput que un pequeo retraso
de multiplicacin
1. Ver Boemo, E.I. et al: Taxonoma de multiplicadores. DCIS-1993, http://www.ii.uam.es/~ivan/
Dpto. Tecnologa Electrnica SISTEMAS DIGITALES AVANZADOS Aritmtica - 62
Multiplicadores combinacionales
Multiplicador combinacional paralelo como Circuito Combinacional :
&
p
3
a
1
a
0
b
1
b
0
a
1
&
&
> 1
p
2
b
1
a
0
a
1
b
1
b
0
a
1
&
&
> 1
p
1
b
0
a
0
a
1
b
1
b
0
&
a
0
b
1
b
0
&
a
1
b
1
a
0
&
p
0
a
0
b
0
0 0 0 1 1 1 1 0
0 0 0 0
0 0 0 0
0 0 0 1
0 0 1 1
a
1
a
0
p
2
b
1
b
0
0 0
0 1
1 1
1 0
0 0 0 1 1 1 1 0
0 0 0 0
0 0 0 0
0 0 1 0
0 0 0 0
a
1
a
0
p
3
b
1
b
0
0 0
0 1
1 1
1 0
0 0 0 1 1 1 1 0
0 0 0 0
0 1 1 0
0 1 1 0
0 0 0 0
a
1
a
0
p
0
b
1
b
0
0 0
0 1
1 1
1 0
0 0 0 1 1 1 1 0
0 0 0 0
0 0 1 1
0 1 0 1
0 1 1 0
a
1
a
0
p
1
b
1
b
0
0 0
0 1
1 1
1 0
Dpto. Tecnologa Electrnica SISTEMAS DIGITALES AVANZADOS Aritmtica - 63
Multiplicador Look-up-table:
ROM (2
8

*
8)
4
4
A
B
8
P
A B P
0000 0000 00000000
0000 0001 00000000
... ... ...
1010 1101 10000010
1010 1110 10001100
... ... ...
1111 1110 11010010
1111 1111 11100001
Tabla de contenido de la ROM
Dpto. Tecnologa Electrnica SISTEMAS DIGITALES AVANZADOS Aritmtica - 64
Multiplicadores basados en circuitos iterativos: rbol de Wallace
B
i
M
ij
A
j
K
ij
C
ij
S
ij
FA
&
a b C
in
A
j
K
ij
M
ij
S
ij
B
i
C
ij
A
j
A
j
A
3
A
2
A
1
A
0
B
3
B
2
B
1
B
0
A
0
B
0
A
1
B
0
A
2
B
0
A
3
B
0
A
0
B
1
A
1
B
1
A
2
B
1
A
3
B
1
A
0
B
2
A
1
B
2
A
2
B
2
A
3
B
2
A
0
B
3
A
1
B
3
A
2
B
3
A
3
B
3
P
6
P
5
P
4
P
3
P
2
P
1
P
0
P
7
*
B
1
P
0
M
3
A
3
B
0
M
2
A
2
M
1
A
1
M
0
A
0
B
2
B
3
K
0
K
1
K
2
K
3
P
1
P
2
P
3
P
4
P
5
P
6
P
7
Celda iterativa
Dpto. Tecnologa Electrnica SISTEMAS DIGITALES AVANZADOS Aritmtica - 65
Multiplicadores basados en circuitos iterativos: array
Dpto. Tecnologa Electrnica SISTEMAS DIGITALES AVANZADOS Aritmtica - 66
Tcnicas para reducir costes:
Particionado (divide y vencers): consiste en dividir los datos de entradas en palabras
ms pequeas de forma que se realizarn productos parciales y posteriormente sumas
parciales
A
x B
AH AL
BH BL
AL x BL
AH x BL
AL x BH
AH x BH
A x B
Dpto. Tecnologa Electrnica SISTEMAS DIGITALES AVANZADOS Aritmtica - 67
Redondeo: consiste en destinar para el resultado un nmero de bits menor que el que
realmente se necesita. De esta forma se reduce el tamao de la memoria a costa de
conformarse con resultados aproximados a los verdaderos
Multiplicacin logartmica: Consiste en convertir multiplicaciones en sumas a base de
usar logaritmos. Habra que almacenar los logaritmos y los antilogaritmos de los distin-
tos nmeros, lo que requiere menor capacidad de memoria pero supone un aumento
en el tiempo de obtencin del resultado final.
Dpto. Tecnologa Electrnica SISTEMAS DIGITALES AVANZADOS Aritmtica - 68
Multiplicadores secuenciales:
Los ya tratados del algoritmo Sumas y desplazamientos.
Multiplicadores bit-serial: de gran sencillez
Multiplicadores con pipeline y estructuras iterativas: throughput alto.
Dpto. Tecnologa Electrnica SISTEMAS DIGITALES AVANZADOS Aritmtica - 69

Brent & Kung Kogge & Stone


Ladner & Fisher
Han & Carlson

S-ar putea să vă placă și