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
EL SEMISUMADOR BINARIO S = ab’ + ba’ = a b C = ab Departamento de Informática. Curso 2006-2007
CIRCUITO DEL SEMISUMADOR BINARIO Departamento de Informática. Curso 2006-2007
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
ECUACIONES DEL SUMADOR BINARIO COMPLETO S = c ( a b ) C = a b + c ( a b) Departamento de Informática. Curso 2006-2007
OTRO CIRCUITO SUMADOR BINARIO Departamento de Informática. Curso 2006-2007
SUMADOR BINARIO PARALELO (CPA) Tsumador = N x Tbit Departamento de Informática. Curso 2006-2007
CIRCUITO DE SUMA Y RESTA A-B = A+(-B) = A+(B’+1) = A+B’+1 Departamento de Informática. Curso 2006-2007
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 No MELO CREO Departamento de Informática. Curso 2006-2007
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
ECUACIONES DEL BIT DE CARRY Departamento de Informática. Curso 2006-2007
CÉLULA SUMADORA RÁPIDA Departamento de Informática. Curso 2006-2007
CIRCUITO GENERADOR DE LLEVADAS Departamento de Informática. Curso 2006-2007
CIRCUITO GENERADOR DE LLEVADAS Departamento de Informática. Curso 2006-2007
CIRCUITO GENERADOR DE LLEVADAS Departamento de Informática. Curso 2006-2007
Departamento de Informática. Curso 2006-2007 CIRCUITO SUMADOR CLA Departamento de Informática. Curso 2006-2007
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
Departamento de Informática. Curso 2006-2007 CIRCUITOS LAC DE GRUPO C4 = G3 + P3 G2 + P3 P2 G1 + P3 P2 P1 G0 + P3 P2 P1 P0 c0 Llamando G0G = G3 + P3 G2 + P3 P2 G1 + P3 P2 P1 G0 P0G = P3 P2 P1 P0 Podemos escribir: C4 = G0G + P0G c0 Departamento de Informática. Curso 2006-2007
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
SUMADOR CON SELECCIÓN DE ARRASTRE Departamento de Informática. Curso 2006-2007
SUMADOR CON PUENTEO DE ARRASTRES Departamento de Informática. Curso 2006-2007
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
CELULA DEL SUMADOR CONDICIONAL Departamento de Informática. Curso 2006-2007
SUMADOR CONDICIONAL DE 2 BITS Departamento de Informática. Curso 2006-2007
SEGUNDA ETAPA DE UN SUMADOR CONDICIONAL DE 4 BITS Departamento de Informática. Curso 2006-2007
SUMADOR CONDICIONAL DE 8 BITS Departamento de Informática. Curso 2006-2007
TABLA DEL SUMADOR CONDICIONAL Departamento de Informática. Curso 2006-2007
SUMADORES MULTIOPERANDO CSA Departamento de Informática. Curso 2006-2007
Departamento de Informática. Curso 2006-2007 ARBOLES DE WALLACE Departamento de Informática. Curso 2006-2007
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
MULTIPLICACION DE NÚMEROS NATURALES Departamento de Informática. Curso 2006-2007
Departamento de Informática. Curso 2006-2007 CIRCUITOS NMM Departamento de Informática. Curso 2006-2007
CÉLULA ELEMENTAL DEL MULTIPLICADOR Departamento de Informática. Curso 2006-2007
Departamento de Informática. Curso 2006-2007 MATRIZ SUMADORA Departamento de Informática. Curso 2006-2007
MULTIPLICADORES DE 8 BITS Departamento de Informática. Curso 2006-2007
MULTIPLICADORES DE 8 BITS Departamento de Informática. Curso 2006-2007
HARDWARE PARA ALGORITMOS DE MULTIPLICACIÓN Departamento de Informática. Curso 2006-2007
MULTIPLICACIÓN POR SUMA Y DESPLAZAMIENTO Sea la operación 13x11 Departamento de Informática. Curso 2006-2007
ALGORITMO DE MULTIPLICACIÓN POR SUMA Y DESPLAZAMIENTO Inicialización: 0 A ; Multiplicando B ; Multiplicador MQ ; N I Analizar bit MQ0 Si MQ0 = 0 Ir a 3 Si MQ0 = 1 (A) + (B) (A) e ir a 3 Desplazar C-A-MQ un bit a la derecha Decrementar I Comprobar I Si I = 0 Terminar Si I 0 Ir a 2 Departamento de Informática. Curso 2006-2007
Departamento de Informática. Curso 2006-2007 EJEMPLO Departamento de Informática. Curso 2006-2007
ALGORITMO DE ROBERTSON Sirve para multiplicar un número positivo y un número negativo Departamento de Informática. Curso 2006-2007
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
JUSTIFICACIÓN DEL ALGORITMO DE ROBERTSON Departamento de Informática. Curso 2006-2007
Departamento de Informática. Curso 2006-2007 REGLA DE LA CADENA Departamento de Informática. Curso 2006-2007
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
Departamento de Informática. Curso 2006-2007 ALGORITMO DE BOOTH Departamento de Informática. Curso 2006-2007
Departamento de Informática. Curso 2006-2007 DIAGRAMA DE FLUJO Departamento de Informática. Curso 2006-2007
Departamento de Informática. Curso 2006-2007 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
OTRA RECODIFICACIÓN DEL MULTIPLICADOR Departamento de Informática. Curso 2006-2007
ALGORITMO DE SOLAPAMIENTO DE TERNAS Inicialización ( Similar a casos anteriores salvo que ahora N/2 I) Analizar el valor numérico de MQ1 – MQ0 – MQ-1 y actuar como en la tabla precedente Desplazamiento aritmético de A-MQ de 2 bits a la derecha. Decrementar I Si I0 ir a 2, en otro caso Fin. Departamento de Informática. Curso 2006-2007
Departamento de Informática. Curso 2006-2007 DIAGRAMA DE FLUJO Departamento de Informática. Curso 2006-2007
CIRCUITOS MULTIPLICADORES EN COMPLEMENTO A DOS Departamento de Informática. Curso 2006-2007
MULTIPLICACION DE NUMEROS ENTEROS CON SIGNO Departamento de Informática. Curso 2006-2007
PLANTEAMIENTO DEL PROBLEMA Departamento de Informática. Curso 2006-2007
Departamento de Informática. Curso 2006-2007 POSIBLE SOLUCIÓN Departamento de Informática. Curso 2006-2007
MULTIPLICADOR DE PEZARIS Departamento de Informática. Curso 2006-2007
ALGORITMO DE BAUGH-WOOLEY Departamento de Informática. Curso 2006-2007
MULTIPLICADOR DE BAUGH-WOOLEY Departamento de Informática. Curso 2006-2007
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
ALGORITMO DE DIVISIÓN CON RESTAURACIÓN Es el algoritmo de división convencional. Los pasos a seguir son los siguientes: Inicialización: Dividendo MQ ; Divisor B ; N I ; 0 A Desplazamiento de A-MQ a la izquierda 1 bit. Restar A-B A Comprobar si A<0 : Si es cierto Restaurar el dividendo A+ B A Si no es cierto 1 MQ0 Decrementar contador I Comprobar si I =0 Si es cierto FIN 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
Departamento de Informática. Curso 2006-2007
Departamento de Informática. Curso 2006-2007 EJEMPLO Departamento de Informática. Curso 2006-2007
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
ALGORITMO DE DIVISIÓN SIN RESTAURACIÓN Inicialización: Dividendo MQ ; Divisor B ; N-1 I ; 0 A Desplazamiento a la izquierda de A-MQ Restar A-B A Analizar A: Si A <0 desplaz a la izquierda de A-MQ y sumar A+B A Si A >0 1 MQ0 desplaz a la izquierda de A-MQ y restar A-B A Decrementar el contador I Si I >0 ir a 4 Si A <0 sumar A+B A Si A >0 1 MQ0 FIN Departamento de Informática. Curso 2006-2007
Departamento de Informática. Curso 2006-2007
Departamento de Informática. Curso 2006-2007 EJEMPLO Departamento de Informática. Curso 2006-2007
MÉTODO DE DIVISIÓN POR CONVERGENCIA Departamento de Informática. Curso 2006-2007
ELECCIÓN DE LOS VALORES DE Ri Departamento de Informática. Curso 2006-2007
DIAGRAMA DE FLUJO DEL PROCESO Departamento de Informática. Curso 2006-2007
METODO DE DIVISIÓN MEDIANTE EL INVERSO DEL DIVISOR Departamento de Informática. Curso 2006-2007
APLICACIÓN DEL MÉTODO DE NEWTON-RAPHSON Departamento de Informática. Curso 2006-2007
ELECCIÓN DEL VALOR INICIAL Departamento de Informática. Curso 2006-2007
PROCEDIMIENTO DE CALCULO DEL INVERSO Departamento de Informática. Curso 2006-2007
Departamento de Informática. Curso 2006-2007 DIAGRAMA DE FLUJO Departamento de Informática. Curso 2006-2007
CELDA BÁSICA DEL DIVISOR COMBINACIONAL Departamento de Informática. Curso 2006-2007
DIVISIÓN COMBINACIONAL Departamento de Informática. Curso 2006-2007
LA UNIDAD ARITMÉTICA Y LÓGICA LECCIÓN 7. ARITMÉTICA DE PUNTO FLOTANTE Departamento de Informática. Curso 2006-2007
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
Departamento de Informática. Curso 2006-2007 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 Luego 0.85 = 0.1101100 …. Por tanto 23.85 = 10111.1101100 Departamento de Informática. Curso 2006-2007
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
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
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
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
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
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
Departamento de Informática. Curso 2006-2007
Departamento de Informática. Curso 2006-2007