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 1
EL SEMISUMADOR BINARIO S = ab + ba = a b C = ab Departamento de Informática. Curso 2006-2007 2
CIRCUITO DEL SEMISUMADOR BINARIO Departamento de Informática. Curso 2006-2007 3
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 4
ECUACIONES DEL SUMADOR BINARIO COMPLETO S = c ( a b ) C = a b + c ( a b) Departamento de Informática. Curso 2006-2007 5
OTRO CIRCUITO SUMADOR BINARIO Departamento de Informática. Curso 2006-2007 6
SUMADOR BINARIO PARALELO (CPA) T sumador = N x T bit Departamento de Informática. Curso 2006-2007 7
CIRCUITO DE SUMA Y RESTA A-B = A+(-B) = A+(B +1) = A+B +1 Departamento de Informática. Curso 2006-2007 8
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 9
ECUACIONES DEL BIT DE CARRY Sustituyendo estas variables en las ecuaciones lógicas del sumador binario tendremos: S i = P i c i C i+1 = a i b i + c i (a i + b i ) = G i + c i P i Departamento de Informática. Curso 2006-2007 10
ECUACIONES DEL BIT DE CARRY Departamento de Informática. Curso 2006-2007 11
CÉLULA SUMADORA RÁPIDA Departamento de Informática. Curso 2006-2007 12
CIRCUITO GENERADOR DE LLEVADAS 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 SUMADOR CLA Departamento de Informática. Curso 2006-2007 16
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 c 4, c 8, c 12 y c 16 Departamento de Informática. Curso 2006-2007 17
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 0G = G 3 + P 3 G 2 + P 3 P 2 G 1 + P 3 P 2 P 1 G 0 P 0G = P 3 P 2 P 1 P 0 Podemos escribir: C 4 = G 0G + P 0G c 0 Departamento de Informática. Curso 2006-2007 18
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 19
SUMADOR CON SELECCIÓN DE ARRASTRE Departamento de Informática. Curso 2006-2007 20
SUMADOR CON PUENTEO DE ARRASTRES Departamento de Informática. Curso 2006-2007 21
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 22
CELULA DEL SUMADOR CONDICIONAL Departamento de Informática. Curso 2006-2007 23
SUMADOR CONDICIONAL DE 2 BITS Departamento de Informática. Curso 2006-2007 24
SEGUNDA ETAPA DE UN SUMADOR CONDICIONAL DE 4 BITS Departamento de Informática. Curso 2006-2007 25
SUMADOR CONDICIONAL DE 8 BITS Departamento de Informática. Curso 2006-2007 26
TABLA DEL SUMADOR CONDICIONAL Departamento de Informática. Curso 2006-2007 27
SUMADORES MULTIOPERANDO CSA Departamento de Informática. Curso 2006-2007 28
ARBOLES DE WALLACE Departamento de Informática. Curso 2006-2007 29
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 30
MULTIPLICACION DE NÚMEROS NATURALES Departamento de Informática. Curso 2006-2007 31
CIRCUITOS NMM Departamento de Informática. Curso 2006-2007 32
CÉLULA ELEMENTAL DEL MULTIPLICADOR Departamento de Informática. Curso 2006-2007 33
MATRIZ SUMADORA Departamento de Informática. Curso 2006-2007 34
MULTIPLICADORES DE 8 BITS Departamento de Informática. Curso 2006-2007 35
MULTIPLICADORES DE 8 BITS Departamento de Informática. Curso 2006-2007 36
HARDWARE PARA ALGORITMOS DE MULTIPLICACIÓN Departamento de Informática. Curso 2006-2007 37
MULTIPLICACIÓN POR SUMA Y DESPLAZAMIENTO Sea la operación 13x11 Departamento de Informática. Curso 2006-2007 38
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 39
EJEMPLO Departamento de Informática. Curso 2006-2007 40
ALGORITMO DE ROBERTSON Sirve para multiplicar un número positivo y un número negativo Departamento de Informática. Curso 2006-2007 41
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 42
JUSTIFICACIÓN DEL ALGORITMO DE ROBERTSON Departamento de Informática. Curso 2006-2007 43
REGLA DE LA CADENA Departamento de Informática. Curso 2006-2007 44
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 45
ALGORITMO DE BOOTH Departamento de Informática. Curso 2006-2007 46
DIAGRAMA DE FLUJO Departamento de Informática. Curso 2006-2007 47
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 48
OTRA RECODIFICACIÓN DEL MULTIPLICADOR Departamento de Informática. Curso 2006-2007 49
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 5. Si I 0 ir a 2, en otro caso Fin. Departamento de Informática. Curso 2006-2007 50
DIAGRAMA DE FLUJO Departamento de Informática. Curso 2006-2007 51
CIRCUITOS MULTIPLICADORES EN COMPLEMENTO A DOS Departamento de Informática. Curso 2006-2007 52
MULTIPLICACION DE NUMEROS ENTEROS CON SIGNO Departamento de Informática. Curso 2006-2007 53
PLANTEAMIENTO DEL PROBLEMA Departamento de Informática. Curso 2006-2007 54
POSIBLE SOLUCIÓN Departamento de Informática. Curso 2006-2007 55
MULTIPLICADOR DE PEZARIS Departamento de Informática. Curso 2006-2007 56
ALGORITMO DE BAUGH-WOOLEY Departamento de Informática. Curso 2006-2007 57
MULTIPLICADOR DE BAUGH-WOOLEY Departamento de Informática. Curso 2006-2007 58
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 59
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 Al final de la operación tenemos el cociente en MQ y el resto en A. Departamento de Informática. Curso 2006-2007 60
Departamento de Informática. Curso 2006-2007 61
EJEMPLO Departamento de Informática. Curso 2006-2007 62
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 63
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 64
Departamento de Informática. Curso 2006-2007 65
EJEMPLO Departamento de Informática. Curso 2006-2007 66
MÉTODO DE DIVISIÓN POR CONVERGENCIA Departamento de Informática. Curso 2006-2007 67
ELECCIÓN DE LOS VALORES DE R i Departamento de Informática. Curso 2006-2007 68
DIAGRAMA DE FLUJO DEL PROCESO Departamento de Informática. Curso 2006-2007 69
METODO DE DIVISIÓN MEDIANTE EL INVERSO DEL DIVISOR Departamento de Informática. Curso 2006-2007 70
APLICACIÓN DEL MÉTODO DE NEWTON-RAPHSON Departamento de Informática. Curso 2006-2007 71
ELECCIÓN DEL VALOR INICIAL Departamento de Informática. Curso 2006-2007 72
PROCEDIMIENTO DE CALCULO DEL INVERSO Departamento de Informática. Curso 2006-2007 73
CELDA BÁSICA DEL DIVISOR COMBINACIONAL Departamento de Informática. Curso 2006-2007 74
DIVISIÓN COMBINACIONAL Departamento de Informática. Curso 2006-2007 75
LA UNIDAD ARITMÉTICA Y LÓGICA LECCIÓN 4. ARITMÉTICA DE PUNTO FLOTANTE Departamento de Informática. Curso 2006-2007 76
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 77
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 78
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 79
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 80
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 81
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 E = 255 F =0 (-1)S x existe +infinito y infinito Infinitos No reales ( not a number) E = 255 F >0 Denormales E = 0 F > 0 Departamento de Informática. Curso 2006-2007 82
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 83
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 84
Departamento de Informática. Curso 2006-2007 85
Departamento de Informática. Curso 2006-2007 86