La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

PUNTO FIJO - PUNTO FLOTANE

Presentaciones similares


Presentación del tema: "PUNTO FIJO - PUNTO FLOTANE"— Transcripción de la presentación:

1 PUNTO FIJO - PUNTO FLOTANE
REPRESENTACIÓN DIGITAL DE NÚMEROS FRACCIONARIOS

2 ¿Qué hacer cuando una aplicación requiere
Punto flotante ¿Qué hacer cuando una aplicación requiere operar con números que no son enteros? ¿Cómo los representamos? Sistemas Digitales - FIUBA

3 Representación de números fraccionarios
Punto flotante Representación de números fraccionarios Punto fijo Se usa aritmética entera y se imagina el punto binario en algún otro lugar que no sea a la derecha del bit menos significativo Punto flotante - Es la representación que se ha adoptado para este tipo de números - El valor representado se divide en dos partes, un exponente y un significand Ejemplo: exponente = -4 significand = 1,7 Sistemas Digitales - FIUBA

4 REPRESENTACIÓN DIGITAL DE NÚMEROS FRACCIONARIOS
PUNTO FIJO REPRESENTACIÓN DIGITAL DE NÚMEROS FRACCIONARIOS Sistemas Digitales - FIUBA

5 Punto fijo Punto fijo - El punto decimal se encuentra fijo , siempre en la misma posición - Existen m bits para la parte entera y n bits para la parte decimal - Casos particulares: M = 0 (parte entera nula, por ejemplo 0,125) N = 0 (parte decimal nula, por ejemplo 3,0) M bits bn+m bn+1 bn bn-1 bn-2 b1 b0 N bits Punto fijo Sistemas Digitales - FIUBA

6 Punto fijo: Notaciones
- Qn Representa un número con n bits en la parte fraccionaria. No especifica el largo de la palabra (se desprende del tamaño de los operandos que maneja la arquitectura). Ej: Q15 representa un número con 15 bits de parte fraccionaria - Qm.n Representa un número con n bits en la parte fraccionaria y m bits en la parte entera. Si se representa un número con signo la cantidad de bits necesarios será m+n+1 (el bit de signo está implícito). Ej: en números de 16 bits Q1.14 representa un número con un bit para la parte entera y 14 bits para la parte fraccionaria. El bit restante para completar los 16 es el correspondiente al signo. Sistemas Digitales - FIUBA

7 Punto fijo: Notaciones
- Casos especiales - Numero entero de 16 bits (N = 16) => Q15.0 - Número fraccionario de 16 bits (N = 16) => Q0.15 (también se puede encontrar como Q.15 o Q15) Sistemas Digitales - FIUBA

8 Punto fijo Punto fijo: Rango El rango representable de números signados en el formato Qm.n es: -2m .. +2m - 2-n Ej: rango representable en el formato Q3.4 con N = 8 1 -2m = -23 = -8 2m - 2-n = = 7,9375 Sistemas Digitales - FIUBA

9 Punto fijo: Multiplicación
Sean los operandos A y B representados en formato Q3.12 : 15 14 12 11 X 31 27 26 24 23 12 11 Sistemas Digitales - FIUBA

10 Punto fijo: Multiplicación
Sean los operandos A y B representados en formato Q3.12 : 15 14 12 11 1 (Q3.12) X 1 7.25 (Q3.12) 1 31 27 26 24 23 12 11 (Q7.24) Sistemas Digitales - FIUBA

11 Punto fijo: Multiplicación
Sean los operandos A y B representados en formato Q3.12 : 15 14 12 11 1 (Q3.12) X 1 7.25 (Q3.12) 1 31 27 26 24 23 12 11 (Q3.12) Sistemas Digitales - FIUBA

12 Punto fijo: Multiplicación
Sean los operandos A y B representados en formato Q3.12 : 15 14 12 11 1 (Q3.12) X 1 7.25 (Q3.12) 1 31 27 26 24 23 12 11 (Q7.8) Sistemas Digitales - FIUBA

13 REPRESENTACIÓN DIGITAL DE NÚMEROS FRACCIONARIOS
PUNTO FLOTANTE REPRESENTACIÓN DIGITAL DE NÚMEROS FRACCIONARIOS Sistemas Digitales - FIUBA

14 ¿Existe más de un formato de punto flotante?
¿El formato es estándar o existe más de uno? - En el pasado el comportamiento de las operaciones de punto flotante variaban considerablemente de una familia de computadoras a otra. - Las variaciones incluían cosas tales como número de bits utilizados para el exponente y el significand, el rango del exponente, cómo se implementa el redondeo y las acciones que se toman ante condiciones excepcionales (underflow, overflow). - En la actualidad se convergió al formato especificado por el estándar IEEE 754 Sistemas Digitales - FIUBA

15 ±(d0+d1.b-1+d2b-2+…+dp-1.b-(p-1)) x be (0 ≤ di < b)
Punto flotante Representación de un número en punto flotante - Un número en punto flotante se puede expresar como: ±d0.d1d2d3d4…dp-3dp-2dp-1 x be donde el número d0.d1d2d3d4…dp-3dp-2dp-1 se denomina significand y p es la cantidad de dígitos para representarlo. ±(d0+d1.b-1+d2b-2+…+dp-1.b-(p-1)) x be (0 ≤ di < b) - El exponente e puede tomar valores entre emax y emin. - Teniendo en cuenta que puede haber bp valores distintos de significands y emax- emin+1 valores de exponente, un número en punto flotante puede ser representado por: log2(emax-emin+1) + log2(bp) + 1 bits Sistemas Digitales - FIUBA

16 Representación de un número en punto flotante
- Veamos un ejemplo: b = 2, p = 3, emin = -1, emax = 2 Cuántos números en punto flotante normalizados podemos representar (un número normalizado posee un 1 como bit más significativo, es decir ±1,_ _ x 2e)? Sistemas Digitales - FIUBA

17 Campos del formato Punto flotante Signo Exponente Mantisa Bit de signo
MSB LSB s e f Signo Exponente Mantisa Bit de signo 0 para los positivos 1 para los negativos Exponente Representación en exceso Mantisa Normalizada Sistemas Digitales - FIUBA

18 Ventajas de usar el mismo formato
Punto flotante Ventajas de usar el mismo formato - Los analistas numéricos pueden construir bibliotecas de cálculo de alta calidad - Los diseñadores de computadoras pueden desarrollar técnicas para implementar hardware de altas prestaciones - Se pueden intercambiar los resultados de los programas ejecutados en distintas arquitecturas Sistemas Digitales - FIUBA

19 Diferencias de la aritmética IEEE
Punto flotante Diferencias de la aritmética IEEE La aritmética IEEE difiere con respecto a las anteriores en lo siguiente: - Cuando se redondea un resultado de medio camino al número de punto flotante más cercano, toma el que es par - Incluye los valores especiales NaN, infinito y -infinito - Utiliza números desnormalizados para representar valores menores que 1.0 x 2Emin - Redondea al valor más cercano por defecto, pero tiene además otros tres modos de redondeo - Tiene facilidades para el manejo de excepciones Sistemas Digitales - FIUBA

20 Números desnormalizados (Denormals)
Punto flotante Números desnormalizados (Denormals) - En muchos sistemas de punto flotante si Emin es el exponente más chico, un número menor a 1.0 x 2Emin no puede ser representado. Por lo que si una operación presenta un valor así se lo lleva a cero. - En el estándar IEEE los números menores a 1.0 x 2Emin son representados usando significands menores que 1 (es lo que se denomina como gradual underflow) Sistemas Digitales - FIUBA

21 Números desnormalizados (Denormals)
Punto flotante Números desnormalizados (Denormals) Ejemplo 1: se tiene el número x = x 10Emin, con un significand de cuatro dígitos en base 10 . - Si se divide por 10, se redondea a x 10Emin - Si se divide por 100, se redondea a x 10Emin - Si se divide por 1000, se redondea a x 10Emin - Si se divide por 10000, se redondea a x 10Emin Sistemas Digitales - FIUBA

22 Números desnormalizados (Denormals)
Punto flotante Números desnormalizados (Denormals) Ejemplo 2: se tienen dos números x = x 10Emin , y = x 10Emin, con un significand de cuatro dígitos en base 10 . - La operación x – y = 0 (sistema sin denormal) - La operación x – y = x 10Emin (sistema con denormals) En el ejemplo se puede observar que en el primer sistema, aún cuando x <> y la operación x – y = 0. Sistemas Digitales - FIUBA

23 Números desnormalizados (Denormals)
Punto flotante Números desnormalizados (Denormals) Sistemas Digitales - FIUBA

24 Parámetros del estándar IEEE 754
Punto flotante Parámetros del estándar IEEE 754 Simple Simple extendida Doble Doble extendida p (bits de precisión) 24 32 53 64 Emax 127 1023 16383 Emin -126 ≤ -1022 -1022 Bias Bits del exponente 8 ≤ 11 11 15 Bits totales 43 79 Sistemas Digitales - FIUBA

25 Representación de valores
Punto flotante Representación de valores Exponente Fracción Representa e = Emin - 1 f = 0 ±0 f ≠ 0 0.f x 2Emin Emin ≤ e ≤ Emax -- 1.f x 2e e = Emax + 1 ±  NaN Sistemas Digitales - FIUBA

26 Operación de multiplicación
Punto flotante Operación de multiplicación Sistemas Digitales - FIUBA

27 Multiplicación Sean n1 y n2 dos números binarios en punto flotante:
n1 = s1 x 2e1 , n2 = s2 x 2e2 La multiplicación de estos dos números será: n1 x n2 = (s1 x 2e1) x (s2 x 2e2) = (s1 x s2) x 2e1+e2 Sistemas Digitales - FIUBA

28 Multiplicación: Pasos
Punto flotante Multiplicación: Pasos Multiplicar los significands utilizando multiplicación entera Redondear el resultado Calcular el nuevo exponente Sistemas Digitales - FIUBA

29 Multiplicación: Casos
Punto flotante Multiplicación: Casos P A X0 X1. X2 X3 X4 X5 X6 X7 g r s Producto rnd sticky Caso 1: X0 = 0 X1. X2 X3 X4 X5 X6 X7 g El bit más significativo de P es 0. Se desplaza P a izquierda un bit, introduciendo en P el bit g de A. El bit más significativo de P es 1. Hacer s := s v r y r := g, y sumar 1 al exponente. rnd sticky Caso 2: X0 = 1 X0. X1 X2 X3 X4 X5 X6 X7 Sistemas Digitales - FIUBA

30 Multiplicación: Ejemplo
Punto flotante Multiplicación: Ejemplo Operación: A x B Operandos: A y B (23 bits, 6 de exponente) A = B = 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 A = 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 B = Sistemas Digitales - FIUBA

31 Multiplicación: Ejemplo
Punto flotante Multiplicación: Ejemplo 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 A = Signo A = 1 Exponente A = 62 – Bias = 62 – 31 = 31 A = -1, x 231 Mantisa A = 0, 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 B = Signo B = 0 Exponente B = 30 – Bias = 30 – 31 = -1 B = +1, x 2-1 Mantisa B = 0, Sistemas Digitales - FIUBA

32 Multiplicación: Ejemplo
Punto flotante Multiplicación: Ejemplo - Cálculo del exponente: Exponente = Exponente A + Exponente B = 31 – 1 = 30 - Cálculo del producto de las mantisas (incluyendo el 1): El bit más significativo del resultado es igual a 1, por lo tanto se incrementa el exponente calculado anteriormente en 1: Exponente = Exponente + 1 = = 31 33 32 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 X Sistemas Digitales - FIUBA

33 Multiplicación: Ejemplo
Punto flotante Multiplicación: Ejemplo - Empaquetado del exponente: Exponente = 31 + Bias = = 62 - Cálculo del signo: Signo A * Signo B = 1 - Resultado final: 5 4 3 2 1 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 Sistemas Digitales - FIUBA

34 Punto flotante Operación de suma Sistemas Digitales - FIUBA

35 Suma: Ejemplo Operación: A + B Punto flotante
Operandos: A y B (32 bits, 8 de exponente) A = B = 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 A = 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 B = Sistemas Digitales - FIUBA

36 Suma: Ejemplo Punto flotante A = B = Signo A = 0
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 A = Signo A = 0 Exponente A = 125 – Bias = 125 – 127 = -2 A = +1,5 x 2-2 Mantisa A = 0,5 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 B = Signo B = 0 Exponente B = 133 – Bias = 133 – 127 = 6 B = +1,5625 x 26 Mantisa B = 0,5625 Sistemas Digitales - FIUBA

37 Suma: Pasos Punto flotante PASO 1
Si eA < eB intercambiar los operados. Colocar el exponente del resultado tentativamente en eA El eA es menor al eB por lo que intercambiamos los operandos B = +1,5 x 2-2 A = +1,5625 x 26 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 A = 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 B = Sistemas Digitales - FIUBA

38 Suma: Pasos Punto flotante PASO 1
Si eA < eB intercambiar los operados. Colocar el exponente del resultado tentativamente en eA Establecemos como exponente del resultado al del operando A: exp = 6 Sistemas Digitales - FIUBA

39 Suma: Pasos Punto flotante PASO 2
Si los signos de los operandos son distintos reemplazar el significand B por su complemente a dos. Los signos de los operandos son iguales, por lo tanto no se hace nada Sistemas Digitales - FIUBA

40 Suma: Pasos Punto flotante PASO 3
Colocar el significand B (sB) en un registro de p bits y desplazarlo a la derecha eA-eB posiciones (introduciendo 1’s si fue complementado en el paso anterior). Con los bits desplazados fuera del registro setear los flags g (bit más significativo, r (siguiente bit) y s (restantes bits). Se coloca el significand B (sB) en un registro de 24 bits 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 Sistemas Digitales - FIUBA

41 En el paso 2 no hubo complementación por lo que se rellena con 0’s
Punto flotante Suma: Pasos PASO 3 Colocar el significand B (sB) en un registro de p bits y desplazarlo a la derecha eA-eB posiciones (introduciendo 1’s si fue complementado en el paso anterior). Con los bits desplazados fuera del registro setear los flags g (bit más significativo, r (siguiente bit) y s (restantes bits). Se desplaza el contenido del registro a derecha eA - eB posiciones (8 posiciones) 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 g r s En el paso 2 no hubo complementación por lo que se rellena con 0’s Sistemas Digitales - FIUBA

42 Suma: Pasos Punto flotante PASO 3
Colocar el significand B (sB) en un registro de p bits y desplazarlo a la derecha eA-eB posiciones (introduciendo 1’s si fue complementado en el paso anterior). Con los bits desplazados fuera del registro setear los flags g (bit más significativo, r (siguiente bit) y s (restantes bits). Se desplaza el contenido del registro a derecha eA - eB posiciones (8 posiciones) 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 g r s Sistemas Digitales - FIUBA

43 Suma: Pasos Punto flotante PASO 4
Calcular un significand preliminar S = sA + sB sumando sA al registro de p bits que contiene sB. Si los signos de los operandos A y B son diferentes, el MSB de S es 1, y no hubo carry-out entonces S es negativo. Reemplazar S por su complemento a dos. 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 + sA sB S Los signos de los operandos son iguales por lo que el S queda como está Sistemas Digitales - FIUBA

44 El número está normalizado
Punto flotante Suma: Pasos PASO 5 Desplazar S de la siguiente manera: - Si los signos de los operandos son iguales y hubo carry-out en el paso 4 desplazar S una posición a derecha, colocando en la posición más significativa un 1 (el carry-out). - Si no se cumple cualquiera de las condiciones anteriores desplazar S a izquierda hasta que esté normalizado. En el primer desplazamiento introducir en el bit menos significativo el valor de g, luego introducir 0’s. Ajustar el valor del exponente de acuerdo a los desplazamientos realizados. 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 El número está normalizado Sistemas Digitales - FIUBA

45 No hubo desplazamiento en el paso 5 por lo que:
Punto flotante Suma: Pasos PASO 6 Ajustar r y s. - Si S fue desplazado a derecha en el paso 5: r := LSB de S antes del desplazamiento s := or(g, r, s) - Si no hubo desplazamiento en el paso 5: r := g s := or(r, s) - Si hubo un sólo desplazamiento a izquierda en el paso 5 dejar r y s como están - Si hubo dos o más desplazamientos a izquierda en el paso 5: r := 0 s := 0 No hubo desplazamiento en el paso 5 por lo que: r = g = 0 y s = or(r, s) = or(0, 0) = 0 Sistemas Digitales - FIUBA

46 Signo del resultado < 0
Punto flotante Suma: Pasos PASO 7 Redondear S utilizando la tabla de modos de redondeo. Si el redondeo provoca un carry-out, desplazar S a derecha y ajustar el exponente. Luego de estos pasos se obtiene el significand del resultado de la operación suma. Modo de redondeo Signo del resultado ≥ 0 Signo del resultado < 0 - +1 si (r or s) + Más cercano +1 si (r and p0) or (r and s) Sistemas Digitales - FIUBA

47 Suma: Pasos Punto flotante PASO 8 Calcular el signo del resultado.
Si los operandos tienen el mismo signo, éste es el signo del resultado. En caso contrario el signo del resultado depende de cuál de los operandos es negativo, si hubo un intercambio de operandos en el paso 1, y si S fue reemplazado por su complemento a dos en el paso 4 (ver tabla de signos) Swap Compl Signo Op1 Signo Op2 Signo resultado + - No Sistemas Digitales - FIUBA

48 Suma: Pasos Punto flotante PASO 8 Calcular el signo del resultado.
Si los operandos tienen el mismo signo, éste es el signo del resultado. En caso contrario el signo del resultado depende de cuál de los operandos es negativo, si hubo un intercambio de operandos en el paso 1, y si S fue reemplazado por su complemento a dos en el paso 4 (ver tabla de signos) Ambos operando son positivos, por lo que el resultado de la operación de suma será positivo Sistemas Digitales - FIUBA

49 Suma: Pasos Punto flotante Resultado Final signo = + + BIAS exp = 6
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 exp = 6 + BIAS exp = signo = + Resultado de la suma de los significands = Sistemas Digitales - FIUBA

50 Punto flotante FIN Sistemas Digitales - FIUBA


Descargar ppt "PUNTO FIJO - PUNTO FLOTANE"

Presentaciones similares


Anuncios Google