LA UNIDAD ARITMÉTICA Y LÓGICA

1 LA UNIDAD ARITMÉTICA Y LÓGICALECCIÓN 4. CIRCUITOS ARITM...
Author: Enrique Tomás Sáez de la Fuente
0 downloads 2 Views

1 LA UNIDAD ARITMÉTICA Y LÓGICALECCIÓN 4. CIRCUITOS ARITMÉTICOS DE SUMA Y RESTA DE ENTEROS Departamento de Informática. Curso

2 EL SEMISUMADOR BINARIOS = ab’ + ba’ = a  b C = ab Departamento de Informática. Curso

3 CIRCUITO DEL SEMISUMADOR BINARIODepartamento de Informática. Curso

4 EL SUMADOR BINARIO COMPLETOS = 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

5 ECUACIONES DEL SUMADOR BINARIO COMPLETOS = c  ( a  b ) C = a b + c ( a  b) Departamento de Informática. Curso

6 OTRO CIRCUITO SUMADOR BINARIODepartamento de Informática. Curso

7 SUMADOR BINARIO PARALELO (CPA)Tsumador = N x Tbit Departamento de Informática. Curso

8 CIRCUITO DE SUMA Y RESTAA-B = A+(-B) = A+(B’+1) = A+B’+1 Departamento de Informática. Curso

9 CIRCUITOS SUMADORES RÁPIDOSLa 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

10 ECUACIONES DEL BIT DE CARRYSustituyendo 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

11 ECUACIONES DEL BIT DE CARRYDepartamento de Informática. Curso

12 CÉLULA SUMADORA RÁPIDADepartamento de Informática. Curso

13 CIRCUITO GENERADOR DE LLEVADASDepartamento de Informática. Curso

14 CIRCUITO GENERADOR DE LLEVADASDepartamento de Informática. Curso

15 CIRCUITO GENERADOR DE LLEVADASDepartamento de Informática. Curso

16 Departamento de Informática. Curso 2006-2007CIRCUITO SUMADOR CLA Departamento de Informática. Curso

17 SUMADORES RÁPIDOS DE 16 BITSCircuito 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

18 Departamento de Informática. Curso 2006-2007CIRCUITOS 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

19 CIRCUITO SUMADOR RAPIDO DE 16 BITSGenerar 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

20 SUMADOR CON SELECCIÓN DE ARRASTREDepartamento de Informática. Curso

21 SUMADOR CON PUENTEO DE ARRASTRESDepartamento de Informática. Curso

22 SUMADORES CONDICIONALESSon 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

23 CELULA DEL SUMADOR CONDICIONALDepartamento de Informática. Curso

24 SUMADOR CONDICIONAL DE 2 BITSDepartamento de Informática. Curso

25 SEGUNDA ETAPA DE UN SUMADOR CONDICIONAL DE 4 BITSDepartamento de Informática. Curso

26 SUMADOR CONDICIONAL DE 8 BITSDepartamento de Informática. Curso

27 TABLA DEL SUMADOR CONDICIONALDepartamento de Informática. Curso

28 SUMADORES MULTIOPERANDO CSADepartamento de Informática. Curso

29 Departamento de Informática. Curso 2006-2007ARBOLES DE WALLACE Departamento de Informática. Curso

30 LA UNIDAD ARITMÉTICA Y LÓGICALECCIÓN 5. CIRCUITOS ARITMÉTICOS DE MULTIPLICACIÓN DE ENTEROS Departamento de Informática. Curso

31 MULTIPLICACION DE NÚMEROS NATURALESDepartamento de Informática. Curso

32 Departamento de Informática. Curso 2006-2007CIRCUITOS NMM Departamento de Informática. Curso

33 CÉLULA ELEMENTAL DEL MULTIPLICADORDepartamento de Informática. Curso

34 Departamento de Informática. Curso 2006-2007MATRIZ SUMADORA Departamento de Informática. Curso

35 MULTIPLICADORES DE 8 BITSDepartamento de Informática. Curso

36 MULTIPLICADORES DE 8 BITSDepartamento de Informática. Curso

37 HARDWARE PARA ALGORITMOS DE MULTIPLICACIÓNDepartamento de Informática. Curso

38 MULTIPLICACIÓN POR SUMA Y DESPLAZAMIENTOSea la operación 13x11 Departamento de Informática. Curso

39 ALGORITMO DE MULTIPLICACIÓN POR SUMA Y DESPLAZAMIENTOInicialización:  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

40 Departamento de Informática. Curso 2006-2007EJEMPLO Departamento de Informática. Curso

41 ALGORITMO DE ROBERTSONSirve para multiplicar un número positivo y un número negativo Departamento de Informática. Curso

42 ALGORITMO DE ROBERTSONSó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

43 JUSTIFICACIÓN DEL ALGORITMO DE ROBERTSONDepartamento de Informática. Curso

44 Departamento de Informática. Curso 2006-2007REGLA DE LA CADENA Departamento de Informática. Curso

45 MULTIPLICADORES BINARIOS RECODIFICADOSRecodificar 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

46 Departamento de Informática. Curso 2006-2007ALGORITMO DE BOOTH Departamento de Informática. Curso

47 Departamento de Informática. Curso 2006-2007DIAGRAMA DE FLUJO Departamento de Informática. Curso

48 Departamento de Informática. Curso 2006-2007CASOS ESPECIALES Caso de “1” aislado   Solución: No codificar Caso de “0” aislado   Solución : Cambiar el 0 por –1 Departamento de Informática. Curso

49 OTRA RECODIFICACIÓN DEL MULTIPLICADORDepartamento de Informática. Curso

50 ALGORITMO DE SOLAPAMIENTO DE TERNASInicializació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 I0 ir a 2, en otro caso Fin. Departamento de Informática. Curso

51 Departamento de Informática. Curso 2006-2007DIAGRAMA DE FLUJO Departamento de Informática. Curso

52 CIRCUITOS MULTIPLICADORES EN COMPLEMENTO A DOSDepartamento de Informática. Curso

53 MULTIPLICACION DE NUMEROS ENTEROS CON SIGNODepartamento de Informática. Curso

54 PLANTEAMIENTO DEL PROBLEMADepartamento de Informática. Curso

55 Departamento de Informática. Curso 2006-2007POSIBLE SOLUCIÓN Departamento de Informática. Curso

56 MULTIPLICADOR DE PEZARISDepartamento de Informática. Curso

57 ALGORITMO DE BAUGH-WOOLEYDepartamento de Informática. Curso

58 MULTIPLICADOR DE BAUGH-WOOLEYDepartamento de Informática. Curso

59 LA UNIDAD ARITMÉTICA Y LÓGICALECCIÓN 6. CIRCUITOS ARITMÉTICOS Y ALGORITMOS DE DIVISION DE ENTEROS Departamento de Informática. Curso

60 ALGORITMO DE DIVISIÓN CON RESTAURACIÓNEs 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

61 Departamento de Informática. Curso 2006-2007

62 Departamento de Informática. Curso 2006-2007EJEMPLO Departamento de Informática. Curso

63 ALGORITMO DE DIVISIÓN SIN RESTAURACIÓNEs 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

64 ALGORITMO DE DIVISIÓN SIN RESTAURACIÓNInicializació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

65 Departamento de Informática. Curso 2006-2007

66 Departamento de Informática. Curso 2006-2007EJEMPLO Departamento de Informática. Curso

67 MÉTODO DE DIVISIÓN POR CONVERGENCIADepartamento de Informática. Curso

68 ELECCIÓN DE LOS VALORES DE RiDepartamento de Informática. Curso

69 DIAGRAMA DE FLUJO DEL PROCESODepartamento de Informática. Curso

70 METODO DE DIVISIÓN MEDIANTE EL INVERSO DEL DIVISORDepartamento de Informática. Curso

71 APLICACIÓN DEL MÉTODO DE NEWTON-RAPHSONDepartamento de Informática. Curso

72 ELECCIÓN DEL VALOR INICIALDepartamento de Informática. Curso

73 PROCEDIMIENTO DE CALCULO DEL INVERSODepartamento de Informática. Curso

74 Departamento de Informática. Curso 2006-2007DIAGRAMA DE FLUJO Departamento de Informática. Curso

75 CELDA BÁSICA DEL DIVISOR COMBINACIONALDepartamento de Informática. Curso

76 DIVISIÓN COMBINACIONALDepartamento de Informática. Curso

77 LA UNIDAD ARITMÉTICA Y LÓGICALECCIÓN 7. ARITMÉTICA DE PUNTO FLOTANTE Departamento de Informática. Curso

78 REPRESENTACION BINARIA DE NUMEROS REALESUn 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

79 Departamento de Informática. Curso 2006-2007EJEMPLO Sea por ejemplo La parte entera 23 = 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 = …. Por tanto = Departamento de Informática. Curso

80 REPRESENTACION NORMALIZADA. NORMA IEEE-754En 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

81 REPRESENTACION NORMALIZADA. NORMA IEEE-754En 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

82 REPRESENTACION APROXIMADA DE NUMEROS REALESRango : 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

83 TIPOS DE NUMEROS REALESNormalizados: 0 < E < Emax  1.F < 2 Cero : E = 0 F = (-1)S x existe +0 y –0 Infinitos E = F = (-1)S x  existe +infinito y – infinito No reales ( not a number) E = F >0 Denormales E = 0 F > 0 Departamento de Informática. Curso

84 SUMA Y RESTA DE NÚMEROS EN PUNTO FLOTANTEAlinear 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

85 MULTIPLICACION Y DIVISIÓN DE NÚMEROS EN PUNTO FLOTANTESumar 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

86 Departamento de Informática. Curso 2006-2007

87 Departamento de Informática. Curso 2006-2007