Departamento de Informática. Curso 2006-20071 LA UNIDAD ARITMÉTICA Y LÓGICA LECCIÓN 4. CIRCUITOS...
-
Upload
enrique-tomas-saez-de-la-fuente -
Category
Documents
-
view
226 -
download
5
Transcript of Departamento de Informática. Curso 2006-20071 LA UNIDAD ARITMÉTICA Y LÓGICA LECCIÓN 4. CIRCUITOS...
Departamento de Informática. Curso 2006-2007 1
LA UNIDAD ARITMÉTICA Y LÓGICA
LECCIÓN 4. 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
CIRCUITO DEL SEMISUMADOR BINARIO
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
OTRO CIRCUITO SUMADOR BINARIO
Departamento de Informática. Curso 2006-2007 7
SUMADOR BINARIO PARALELO (CPA)
Tsumador = N x Tbit
Departamento de Informática. Curso 2006-2007 8
CIRCUITO DE SUMA Y RESTA
A-B = A+(-B) = A+(B’+1) = A+B’+1
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
Pi = ai bi variable propagada
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:
Si = Pi ci
Ci+1 = ai bi + ci (ai + bi ) = Gi + ci Pi
Departamento de Informática. Curso 2006-2007 11
ECUACIONES DEL BIT DE CARRY
Departamento de Informática. Curso 2006-2007 12
CÉLULA SUMADORA RÁPIDA
Departamento de Informática. Curso 2006-2007 13
CIRCUITO GENERADOR DE LLEVADAS
Departamento de Informática. Curso 2006-2007 14
CIRCUITO GENERADOR DE LLEVADAS
Departamento de Informática. Curso 2006-2007 15
CIRCUITO GENERADOR DE LLEVADAS
Departamento de Informática. Curso 2006-2007 16
CIRCUITO SUMADOR CLA
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 los carrys c4 , c8 , c12 y c16
Departamento de Informática. Curso 2006-2007 18
CIRCUITOS LAC DE GRUPO
C4 = G3 + P3 G2 + P3 P2 G1 + P3 P2 P1 G0 + P3 P2 P1 P0 c0
Llamando G0
G = G3 + P3 G2 + P3 P2 G1 + P3 P2 P1 G0
P0G = P3 P2 P1 P0
Podemos escribir: C4 = G0
G + P0G c0
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 Generar todos los bits del resultado
Departamento de Informática. Curso 2006-2007 20
SUMADOR CON SELECCIÓN DE ARRASTRE
Departamento de Informática. Curso 2006-2007 21
SUMADOR CON PUENTEO DE ARRASTRES
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
CELULA DEL SUMADOR CONDICIONAL
Departamento de Informática. Curso 2006-2007 24
SUMADOR CONDICIONAL DE 2 BITS
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
SUMADOR CONDICIONAL DE 8 BITS
Departamento de Informática. Curso 2006-2007 27
TABLA DEL SUMADOR CONDICIONAL
Departamento de Informática. Curso 2006-2007 28
SUMADORES MULTIOPERANDO CSA
Departamento de Informática. Curso 2006-2007 29
ARBOLES DE WALLACE
Departamento de Informática. Curso 2006-2007 30
LA UNIDAD ARITMÉTICA Y LÓGICA
LECCIÓN 5. CIRCUITOS ARITMÉTICOS DE MULTIPLICACIÓN DE ENTEROS
Departamento de Informática. Curso 2006-2007 31
MULTIPLICACION DE NÚMEROS NATURALES
Departamento de Informática. Curso 2006-2007 32
CIRCUITOS NMM
Departamento de Informática. Curso 2006-2007 33
CÉLULA ELEMENTAL DEL MULTIPLICADOR
Departamento de Informática. Curso 2006-2007 34
MATRIZ SUMADORA
Departamento de Informática. Curso 2006-2007 35
MULTIPLICADORES DE 8 BITS
Departamento de Informática. Curso 2006-2007 36
MULTIPLICADORES DE 8 BITS
Departamento de Informática. Curso 2006-2007 37
HARDWARE PARA ALGORITMOS DE MULTIPLICACIÓN
Departamento de Informática. Curso 2006-2007 38
MULTIPLICACIÓN POR SUMA Y DESPLAZAMIENTO
Sea la operación 13x11
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 I2. Analizar bit MQ0
1. Si MQ0 = 0 Ir a 32. Si MQ0 = 1 (A) + (B) (A) e ir a 3
3. Desplazar C-A-MQ un bit a la derecha4. Decrementar I5. Comprobar I
1. Si I = 0 Terminar2. Si I 0 Ir a 2
Departamento de Informática. Curso 2006-2007 40
EJEMPLO
Departamento de Informática. Curso 2006-2007 41
ALGORITMO DE ROBERTSON
Sirve para multiplicar un número positivo y un número negativo
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
El resultado es un número negativo
Departamento de Informática. Curso 2006-2007 43
JUSTIFICACIÓN DEL ALGORITMO DE ROBERTSON
Departamento de Informática. Curso 2006-2007 44
REGLA DE LA CADENA
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 extender el signo en los sumandos.
Departamento de Informática. Curso 2006-2007 46
ALGORITMO DE BOOTH
Departamento de Informática. Curso 2006-2007 47
DIAGRAMA DE FLUJO
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
OTRA RECODIFICACIÓN DEL MULTIPLICADOR
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 I5. Si I0 ir a 2, en otro caso Fin.
Departamento de Informática. Curso 2006-2007 51
DIAGRAMA DE FLUJO
Departamento de Informática. Curso 2006-2007 52
CIRCUITOS MULTIPLICADORES EN COMPLEMENTO A DOS
Departamento de Informática. Curso 2006-2007 53
MULTIPLICACION DE NUMEROS ENTEROS CON SIGNO
Departamento de Informática. Curso 2006-2007 54
PLANTEAMIENTO DEL PROBLEMA
Departamento de Informática. Curso 2006-2007 55
POSIBLE SOLUCIÓN
Departamento de Informática. Curso 2006-2007 56
MULTIPLICADOR DE PEZARIS
Departamento de Informática. Curso 2006-2007 57
ALGORITMO DE BAUGH-WOOLEY
Departamento de Informática. Curso 2006-2007 58
MULTIPLICADOR DE BAUGH-WOOLEY
Departamento de Informática. Curso 2006-2007 59
LA UNIDAD ARITMÉTICA Y LÓGICA
LECCIÓN 6. 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 A4. Comprobar si A<0 :
1. Si es cierto Restaurar el dividendo A+ B A2. Si no es cierto 1 MQ0
5. Decrementar contador I6. Comprobar si I =0
1. Si es cierto FIN2. Si no es cierto Ir al paso 2
Al final de la operación tenemos el cociente en MQ y el resto en A.
Departamento de Informática. Curso 2006-2007 61
Departamento de Informática. Curso 2006-2007 62
EJEMPLO
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),
desplazamos 2(A + B) y restamos B (2A + 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-MQ3. Restar A-B A4. 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 I6. Si I >0 ir a 47. Analizar A:
1. Si A <0 sumar A+B A2. Si A >0 1 MQ0
8. FIN
Departamento de Informática. Curso 2006-2007 65
Departamento de Informática. Curso 2006-2007 66
EJEMPLO
Departamento de Informática. Curso 2006-2007 67
MÉTODO DE DIVISIÓN POR CONVERGENCIA
Departamento de Informática. Curso 2006-2007 68
ELECCIÓN DE LOS VALORES DE Ri
Departamento de Informática. Curso 2006-2007 69
DIAGRAMA DE FLUJO DEL PROCESO
Departamento de Informática. Curso 2006-2007 70
METODO DE DIVISIÓN MEDIANTE EL INVERSO DEL DIVISOR
Departamento de Informática. Curso 2006-2007 71
APLICACIÓN DEL MÉTODO DE NEWTON-RAPHSON
Departamento de Informática. Curso 2006-2007 72
ELECCIÓN DEL VALOR INICIAL
Departamento de Informática. Curso 2006-2007 73
PROCEDIMIENTO DE CALCULO DEL INVERSO
Departamento de Informática. Curso 2006-2007 74
DIAGRAMA DE FLUJO
Departamento de Informática. Curso 2006-2007 75
CELDA BÁSICA DEL DIVISOR COMBINACIONAL
Departamento de Informática. Curso 2006-2007 76
DIVISIÓN COMBINACIONAL
Departamento de Informática. Curso 2006-2007 77
LA UNIDAD ARITMÉTICA Y LÓGICA
LECCIÓN 7. ARITMÉTICA DE PUNTO FLOTANTE
Departamento de Informática. Curso 2006-2007 78
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 79
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 80
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 81
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 82
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 disminución del rango.
Departamento de Informática. Curso 2006-2007 83
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
Denormales E = 0 F > 0
Departamento de Informática. Curso 2006-2007 84
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 Normalizar si fuera preciso
Departamento de Informática. Curso 2006-2007 85
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 Determinar el signo del resultado
Departamento de Informática. Curso 2006-2007 86
Departamento de Informática. Curso 2006-2007 87