Departamento de Informática. Curso 2006-2007 1
LA UNIDAD ARITMÉTICA Y LÓGICA
LECCIÓN 1.
CIRCUITOS ARITMÉTICOS DE SUMA Y
RESTA DE ENTEROS
Departamento de Informática. Curso 2006-2007 2
EL SEMISUMADOR BINARIO
S = ab’ + ba’ = a
⊕
b
C = ab
Departamento de Informática. Curso 2006-2007 3
Departamento de Informática. Curso 2006-2007 4
EL SUMADOR BINARIO COMPLETO
S = a’ b’ c + a’ b c’ + a b’ c’ + a b c
C = a’ b c + a b’ c + a b c’ + a b c
Departamento de Informática. Curso 2006-2007 5
ECUACIONES DEL SUMADOR BINARIO COMPLETO
S = c
⊕
( a
⊕
b )
C = a b + c ( a
⊕
b)
Departamento de Informática. Curso 2006-2007 6
Departamento de Informática. Curso 2006-2007 7
SUMADOR BINARIO PARALELO (CPA)
Departamento de Informática. Curso 2006-2007 8
CIRCUITO DE SUMA Y RESTA
Departamento de Informática. Curso 2006-2007 9
CIRCUITOS SUMADORES RÁPIDOS
La causa del retardo es la propagación del acarreo
entre etapas.
Solución: cálculo anticipado del acarreo
Definimos
Gi = ai x bi variable generada
Departamento de Informática. Curso 2006-2007 10
ECUACIONES DEL BIT DE CARRY
Sustituyendo estas variables en las
ecuaciones lógicas del sumador binario
tendremos:
S
i
= P
i
⊕
c
i
Departamento de Informática. Curso 2006-2007 11
Departamento de Informática. Curso 2006-2007 12
Departamento de Informática. Curso 2006-2007 13
Departamento de Informática. Curso 2006-2007 14
Departamento de Informática. Curso 2006-2007 15
Departamento de Informática. Curso 2006-2007 16
Departamento de Informática. Curso 2006-2007 17
SUMADORES RÁPIDOS DE 16 BITS
Circuito LAC de 16 bits es excesivamente
complejo
Se buscan soluciones a partir de LAC de 4
bits
El problema es la generación anticipada de
Departamento de Informática. Curso 2006-2007 18
CIRCUITOS LAC DE GRUPO
C
4
= 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
Llamando
G
0
G
= G
3
+ P
3
G
2
+ P
3
P
2
G
1
+ P
3
P
2
P
1
G
0
P
0
G
= P
3
P
2
P
1
P
0
Podemos escribir:
C
4
= G
0
G
+ P
0
G
c
0
Departamento de Informática. Curso 2006-2007 19
CIRCUITO SUMADOR RAPIDO DE 16 BITS
Generar las funciones G y P para cada bit a
partir de a y b y el carry inicial
Generar las funciones G y P de grupo a partir
de G y P
Generar los bits de carry de grupo (c4 , c8 ,
c12 , c16 )
Generar el resto de las llevadas
Departamento de Informática. Curso 2006-2007 20
Departamento de Informática. Curso 2006-2007 21
Departamento de Informática. Curso 2006-2007 22
SUMADORES CONDICIONALES
Son una evolución de los sumadores con
selección de llevada. Las ecuaciones de las
salidas en función del carry entrante son:
Departamento de Informática. Curso 2006-2007 23
Departamento de Informática. Curso 2006-2007 24
Departamento de Informática. Curso 2006-2007 25
SEGUNDA ETAPA DE UN SUMADOR CONDICIONAL DE 4 BITS
Departamento de Informática. Curso 2006-2007 26
Departamento de Informática. Curso 2006-2007 27
Departamento de Informática. Curso 2006-2007 28
Departamento de Informática. Curso 2006-2007 29
Departamento de Informática. Curso 2006-2007 30
LA UNIDAD ARITMÉTICA Y LÓGICA
LECCIÓN 2.
CIRCUITOS ARITMÉTICOS DE
MULTIPLICACIÓN DE ENTEROS
Departamento de Informática. Curso 2006-2007 31
Departamento de Informática. Curso 2006-2007 32
Departamento de Informática. Curso 2006-2007 33
Departamento de Informática. Curso 2006-2007 34
Departamento de Informática. Curso 2006-2007 35
Departamento de Informática. Curso 2006-2007 36
Departamento de Informática. Curso 2006-2007 37
Departamento de Informática. Curso 2006-2007 38
MULTIPLICACIÓN POR SUMA Y DESPLAZAMIENTO
Departamento de Informática. Curso 2006-2007 39
ALGORITMO DE MULTIPLICACIÓN POR SUMA Y
DESPLAZAMIENTO
1.
Inicialización: 0
→
A ; Multiplicando
→
B ;
Multiplicador
→
MQ ; N
→
I
2.
Analizar bit MQ0
1.
Si MQ0 = 0
⇒
Ir a 3
2.
Si MQ0 = 1
⇒
(A) + (B)
→
(A) e ir a 3
3.
Desplazar C-A-MQ un bit a la derecha
4.
Decrementar I
5.
Comprobar I
1.
Si I = 0
⇒
Terminar
2.
Si I
≠
0
⇒
Ir a 2
Departamento de Informática. Curso 2006-2007 40
Departamento de Informática. Curso 2006-2007 41
ALGORITMO DE ROBERTSON
Sirve para multiplicar un número positivo y un
Departamento de Informática. Curso 2006-2007 42
ALGORITMO DE ROBERTSON
Sólo sirve para el caso de multiplicando
positivo y multiplicador negativo.
Para los n-1 primeros bits del multiplicador se
utiliza el algoritmo anterior.
Para el bit de signo del multiplicador se pone
el complemento a dos del multiplicando
Departamento de Informática. Curso 2006-2007 43
Departamento de Informática. Curso 2006-2007 44
Departamento de Informática. Curso 2006-2007 45
MULTIPLICADORES BINARIOS RECODIFICADOS
Recodificar el multiplicador para evitar las
cadenas de “1”
Efectuar la multiplicación tradicional donde el
sumando correspondiente es 0, Mcando
ó-Mcando en función de que el bit
correspondiente del multiplicador sea 0, 1, -1.
Tenemos presente siempre la necesidad de
Departamento de Informática. Curso 2006-2007 46
Departamento de Informática. Curso 2006-2007 47
Departamento de Informática. Curso 2006-2007 48
CASOS ESPECIALES
Caso de “1” aislado 00100
→
01-100
→
00100 Solución: No codificar
Caso de “0” aislado
11011
→
0-1100
→
00-100 Solución : Cambiar el 0
por –1
Departamento de Informática. Curso 2006-2007 49
Departamento de Informática. Curso 2006-2007 50
ALGORITMO DE SOLAPAMIENTO DE TERNAS
1.
Inicialización ( Similar a casos anteriores
salvo que ahora N/2
→
I)
2.
Analizar el valor numérico de MQ1 – MQ0 –
MQ-1 y actuar como en la tabla precedente
3.
Desplazamiento aritmético de A-MQ de 2
bits a la derecha.
4.
Decrementar I
Departamento de Informática. Curso 2006-2007 51
Departamento de Informática. Curso 2006-2007 52
CIRCUITOS MULTIPLICADORES EN COMPLEMENTO A DOS
Departamento de Informática. Curso 2006-2007 53
Departamento de Informática. Curso 2006-2007 54
Departamento de Informática. Curso 2006-2007 55
Departamento de Informática. Curso 2006-2007 56
Departamento de Informática. Curso 2006-2007 57
Departamento de Informática. Curso 2006-2007 58
Departamento de Informática. Curso 2006-2007 59
LA UNIDAD ARITMÉTICA Y LÓGICA
LECCIÓN 3.
CIRCUITOS ARITMÉTICOS Y
ALGORITMOS DE DIVISION DE
ENTEROS
Departamento de Informática. Curso 2006-2007 60
ALGORITMO DE DIVISIÓN CON RESTAURACIÓN
Es el algoritmo de división convencional. Los pasos a seguir son los
siguientes:
1.
Inicialización: Dividendo
→
MQ ; Divisor
→
B ; N
→
I ;
0
→
A
2.
Desplazamiento de A-MQ a la izquierda 1 bit.
3.
Restar A-B
→
A
4.
Comprobar si A<0 :
1.
Si es cierto
⇒
Restaurar el dividendo A+ B
→
A
2.Si no es cierto
⇒
1
→
MQ0
5.
Decrementar contador I
6.
Comprobar si I =0
1.
Si es cierto
⇒
FIN
2.
Si no es cierto
⇒
Ir al paso 2
Departamento de Informática. Curso 2006-2007 62
Departamento de Informática. Curso 2006-2007 63
ALGORITMO DE DIVISIÓN SIN RESTAURACIÓN
Es una mejora del algoritmo anterior que se
basa en lo siguiente: si seguimos el diagrama
de flujo del algoritmo sin restauración a partir
del momento en que se comprueba el valor
del bit de menor peso del divisor la operación
a realizar es :
Si A > 0
⇒
desplazamos (2ª) y restamos
(2A – B)
Si A < 0
⇒
sumamos B (A + B),
Departamento de Informática. Curso 2006-2007 64
ALGORITMO DE DIVISIÓN SIN RESTAURACIÓN
1.
Inicialización: Dividendo
→
MQ ; Divisor
→
B ; N-1
→
I ;
0
→
A
2.
Desplazamiento a la izquierda de A-MQ
3.
Restar A-B
→
A
4.
Analizar A:
1.
Si A <0 desplaz a la izquierda de A-MQ y sumar A+B
→
A
2.Si A >0 1
→
MQ0 desplaz a la izquierda de A-MQ y restar
A-B
→
A
5.
Decrementar el contador I
6.
Si I >0 ir a 4
7.
Analizar A:
1.Si A <0 sumar A+B
→
A
2.Si A >0 1
→
MQ0
8.
FIN
Departamento de Informática. Curso 2006-2007 66
Departamento de Informática. Curso 2006-2007 67
Departamento de Informática. Curso 2006-2007 68
Departamento de Informática. Curso 2006-2007 69
Departamento de Informática. Curso 2006-2007 70
METODO DE DIVISIÓN MEDIANTE EL INVERSO DEL
Departamento de Informática. Curso 2006-2007 71
Departamento de Informática. Curso 2006-2007 72
Departamento de Informática. Curso 2006-2007 73
Departamento de Informática. Curso 2006-2007 74
Departamento de Informática. Curso 2006-2007 75
Departamento de Informática. Curso 2006-2007 76
LA UNIDAD ARITMÉTICA Y LÓGICA
LECCIÓN 4.
Departamento de Informática. Curso 2006-2007 77
REPRESENTACION BINARIA DE NUMEROS REALES
Un número real consta de parte entera y
parte fraccionaria y su representación
binaria es la siguiente:
En la práctica para representar en binario un
número real trabajamos por separado con su
parte entera y su parte fraccionaria
Departamento de Informática. Curso 2006-2007 78
EJEMPLO
Sea por ejemplo 23.85 La parte entera 23 = 10111 y la parte
fraccionaria la pasamos a binario multiplicando por 2 y
quedándonos con la parte fraccionaria:
.85 x 2 = 1.70
.70 x 2 = 1.40
.40 x 2 = 0.80
.80 x 2 = 1.60
.60 x 2 = 1.20
.20 x 2 = 0.40
.40 x 2 = 0.80
Luego 0.85 = 0.1101100 ….
Por tanto 23.85 = 10111.1101100
Departamento de Informática. Curso 2006-2007 79
REPRESENTACION NORMALIZADA. NORMA IEEE-754
En simple precisión la longitud de palabra
es de 32 bits
Vemos que la mantisa está normalizada de
modo que 1
≤
F
≤
2 y que el exponente se
almacena en exceso a 127 para evitar tener
que usar otro bit de signo
Departamento de Informática. Curso 2006-2007 80
REPRESENTACION NORMALIZADA. NORMA IEEE-754
En doble precisión la longitud de palabra es
64 bits
Ahora el exponente está en exceso a 1023 y
la mantisa está normalizada lo mismo que en
el punto anterior
Departamento de Informática. Curso 2006-2007 81
REPRESENTACION APROXIMADA DE NUMEROS REALES
Rango : Nos da el conjunto de intervalos
donde existen números representables,
depende del exponente
Precisión : Nos da la diferencia entre dos
números representables consecutivos,
depende del número de bits de la mantisa.
El rango y la precisión son conceptos
antagónicos pues para mejorar la precisión
habría que aumentar la mantisa y por tanto
reducir el exponente lo que lleva a una
Departamento de Informática. Curso 2006-2007 82
TIPOS DE NUMEROS REALES
Normalizados:
0 < E < Emax
1
≤
1.F < 2
Cero :
E = 0 F = 0 (-1)S x 0 existe +0 y –0
Infinitos
E = 255 F =0 (-1)S x
∝
existe
+infinito y – infinito
No reales ( not a number)
E = 255 F >0
Departamento de Informática. Curso 2006-2007 83
SUMA Y RESTA DE NÚMEROS EN PUNTO FLOTANTE
Alinear mantisas : Tomar el número con
menor exponente y desplazar su mantisa a la
derecha hasta igualar los exponentes
Sumar o restar mantisas
Normalizar el resultado si fuera necesario
Redondear la mantisa al número de bits
apropiado
Departamento de Informática. Curso 2006-2007 84
MULTIPLICACION Y DIVISIÓN DE NÚMEROS EN PUNTO
FLOTANTE
Sumar o restar los exponentes (y restar o
sumar el exceso)
Multiplicar o dividir las mantisas
Normalizar el resultado
Redondear la mantisa al número apropiado de
bits
Normalizar si es preciso
Departamento de Informática. Curso 2006-2007 85
Departamento de Informática. Curso 2006-2007 86