Aritmetica en Punto Flotante

6
 TRABAJO EN GRUPO Nº 1: ARITMETICA EN PUNTO FLOTANTE INDICE Puntos vistos anteriormente en clase:  Introducción  Representación en coma flotante  El estándar IEEE-754 Puntos a tratar en nuestro trabajo:  Aritmética en punto flotante atendiendo a las operaciones o Suma y resta o Multiplicación o Modos de precisión en pu nto flotan te (seg ún IE EE-754) o Infinitos y NaN  Aritmética en punto flotante atendiendo al hardware que la realiza o Arquitectura de pu nto flotante en el Intel 8086 y Pow erPC o Vision general de la FPU (Unidad de punto flotante) BIBLIOGRAFIA  Estructura y diseño de computadores.- Patterson, Hennessy  Arquitectura de computadores: Diseño desde un punto de vista cuantitativo – Patterson, Hennessy  Organización y arquitectura de computadores - Stallings MIEMBROS DEL GRUPO Jesús Antolín García Carlos González Gómez Eneas Puertas Kreusch

Transcript of Aritmetica en Punto Flotante

5/13/2018 Aritmetica en Punto Flotante - slidepdf.com

http://slidepdf.com/reader/full/aritmetica-en-punto-flotante 1/6

TRABAJO EN GRUPO Nº 1:

ARITMETICA EN PUNTO FLOTANTE

INDICE 

Puntos vistos anteriormente en clase:

• Introducción

• Representación en coma flotante

• El estándar IEEE-754

Puntos a tratar en nuestro trabajo:

• Aritmética en punto flotante atendiendo a las operacioneso Suma y restao Multiplicacióno Modos de precisión en punto flotante (según IEEE-754)o Infinitos y NaN

• Aritmética en punto flotante atendiendo al hardware que la realizao Arquitectura de punto flotante en el Intel 8086 y PowerPCo Vision general de la FPU (Unidad de punto flotante)

BIBLIOGRAFIA

• Estructura y diseño de computadores.- Patterson, Hennessy

• Arquitectura de computadores: Diseño desde un punto de vistacuantitativo – Patterson, Hennessy

• Organización y arquitectura de computadores - Stallings

MIEMBROS DEL GRUPO 

Jesús Antolín García 

Carlos González Gómez 

Eneas Puertas Kreusch 

5/13/2018 Aritmetica en Punto Flotante - slidepdf.com

http://slidepdf.com/reader/full/aritmetica-en-punto-flotante 2/6

 

SUMA Y RESTA

Para sumar o restar con aritmética en punto flotante, podemos dividir el algoritmoutilizado en cuatro fases:

• Paso 1: Comprobación de cero:

Al ser la resta igual a la suma excepto por el cambio del signo, hemos de comenzarcambiando el signo del substraendo cuando nos encontremos con una resta, y además deesto, si alguno de los operandos es cero daremos automáticamente el otro como resultado.

• Paso 2: Alineación de las mantisas:

Para realizar este paso, debemos alinear la coma decimal del número que tenga elexponente más pequeño. Se necesita por tanto, una forma del número menor que encaje conel de mayor exponente.

• Paso 3: Suma de las mantisas:

Se suman las partes significativas, y además, después de la suma puede que tengamos

que desplazar el resultado para normalizarlo. Cada vez que incrementemos o decrementemosel exponente debemos comprobar que dicho exponente cabe todavía en su campo, es decir,que no hemos tenido desbordamiento.

• Paso 4: Normalización:

Consiste en desplazar a la izquierda los dígitos de la mantisa hasta que el mássignificativo sea distinto de cero.

Imágenes: Diagrama de bloques de la suma y diagrama de una unidad aritmética en coma flotante dedicada a la suma  

5/13/2018 Aritmetica en Punto Flotante - slidepdf.com

http://slidepdf.com/reader/full/aritmetica-en-punto-flotante 3/6

 

MULTIPLICACION 

Como comprobaremos a continuación en este resumen, la multiplicación es un procesomenos complicado que la suma o resta en coma flotante.

Al igual que en la suma plantearemos el algoritmo de la multiplicación en tres pasosdiferenciados:

• Paso 1: Obtenemos el exponente de la multiplicación sumando para ello losexponentes de ambos operandos. Debemos tener en cuenta que los exponentespueden estar guardados en forma sesgada y que además el resultado puededesbordar el campo del exponente.

• Paso 2: Multiplicamos las mantisas teniendo en cuenta el signo

• Paso 3: Si el producto no esta normalizado debemos corregirlo, pudiendodesplazar este producto a la derecha o a la izquierda y modificando elexponente, teniendo en cuenta que no haya desbordamiento.

• Paso 4: Redondeamos el resultado según las reglas que hayamos establecido

• Paso 5: El signo del producto vendrá dado por los signos de los operandos. Sison iguales el signo es positivo, si no, será negativo.

Imagen: diagrama de bloques de la multiplicación

5/13/2018 Aritmetica en Punto Flotante - slidepdf.com

http://slidepdf.com/reader/full/aritmetica-en-punto-flotante 4/6

PRECISION Y REDONDEO 

• Bits de guarda: 

Antes de realizar una operación en coma flotante se cargan en sendos registros tanto el

exponente como la parte significativa. El registro que contiene la parte significativa poseetambién bits adicionales denominados bits de guarda, que se añaden a la derecha de la partesignificativa en forma de ceros.

• Redondeo:

Un elemento muy a tener en cuenta en la precisión que obtenemos es la técnica deredondeo que empleamos en la operación.

Según el estándar IEEE-754 tenemos cuatro posibles alternativas a la hora de realizareste redondeo:

o Redondeo al más próximo: El resultado se redondea al número representablemás próximo.

o Redondeo hacia infinito: el resultado se redondea por exceso hacia mas infinito

o Redondeo hacia menos infinito: el resultado se redondea por defecto haciamenos infinito

o Redondeo hacia cero: el resultado se redondea hacia cero.

Debemos tener en cuenta que el modo de redondeo que se asume por defecto es elredondeo al más próximo en el cual deberemos tomar el valor representable más próximo alresultado exacto.

En el caso en el que el resultado se encuentre exactamente en la mitad de dos valoresrepresentables posibles, la aproximación tomada en el estándar es forzar que el resultado seapar, de forma que el valor se redondea por exceso cuando el ultimo bit representable actual es1 y se deja como esta si es 0.

INFINITO Y NaN 

Aparte del redondeo (previamente comentado), el IEEE 754 detalla más procedimientospara que la aritmética en punto flotante produzca resultados uniformes y predecibles. Estosprocedimientos son: el infinito y los NaN (Not a Number).

Infinito: estas operaciones se tratan como casos límite de la aritmética real. Salvo enalgún caso especial, en cualquier operación en la que aparece el infinito el resultado es el queconocemos:

+∞=+∞×

+∞=−∞−

−∞=−∞+

−∞=+∞−

+∞=+∞+

)(7

)(7

)(7

)(7

)(7

 

NaN: es una entidad simbólica codificada en formato de punto flotante. Hay dos tipos:indicadores y silenciosos.

Un NaN indicador señala una condición de operación no válida siempre que aparececomo operando; además permiten representar valores de variables no inicializadas ytratamientos de tipo aritmético, que no aparecen en el estándar. Un NaN silencioso se propagaen la mayoría de las operaciones sin señalar excepción alguna.

5/13/2018 Aritmetica en Punto Flotante - slidepdf.com

http://slidepdf.com/reader/full/aritmetica-en-punto-flotante 5/6

PROCESADORES EN COMA FLOTANTE 

Ahora vamos a comentar como trabajan algunos procesadores con esta aritmética puntoflotante. Trataremos el PowerPC y el 80×86, y es que ambos tienen instrucciones regulares demultiplicación y división que operan sobre sus registros. Se diferencian en las instrucciones de

punto flotante. El PowerPC tiene 32 registros de punto flotante de precisión simple y 32 deprecisión doble; por otro lado podemos decir que el 80×86 es diferente al resto deordenadores.

PowerPC: en cuanto a instrucciones tiene una operación de multiplicación y sumafusionada: Multiply-Add. Esta operación lee 3 comandos, multiplica dos de ellos, suma eltercero al producto y guarda la suma en el operando destino. De esta forma se mejora elrendimiento del punto flotante ya que reducimos el número de instrucciones a realizar conrespecto, por ejemplo, de MIPS. Otra diferencia es que esta operación fusionada redondeadespués de realizar ambas operaciones, sin embargo cuando la suma y la multiplicación serealizan por separado, el redondeo se realiza al finalizar cada una.

80×86: el coprocesador de punto flotante Intel 8087 extendía el 8086 con unas 60instrucciones. Intel propuso una arquitectura de tipo pila con instrucciones de punto flotante:los load apilaban números en la pila, las operaciones tomaban los operandos de las dosúltimas posiciones de la pila y los store sacaban elementos de la pila. Intel complementó estaarquitectura de pila con instrucciones y modos de direccionamiento que permitían algunas delas ventajas del modelo registro-memoria. Este híbrido aún es un modelo registro-memoriarestringido. Los load siempre mueven datos a la cima de la pila y los store solo pueden moverdatos de la cima de la pila a memoria. Intel usa la notación ST para indicar la cima de la pila yST(i) para indicar el i-ésimo registro debajo de la cima. Otra diferencia con respecto a MIPS yPowerPC es que los operandos de punto flotante de 80×86 tienen 80 bits cuando están en lapila. Las operaciones de punto flotante del 80×86 se pueden dividir en 4 grupos:

• Instrucciones de movimiento de datos, que incluyen load, load de constante y store.

• Instrucciones aritméticas, que incluyen suma, resta, multiplicación, división raízcuadrada y valor absoluto.• Comparación, que incluyen instrucciones para enviar un resultado al procesadoraritmético para que pueda saltar.• Instrucciones trascendentales, que incluyen seno, coseno, logaritmo y exponenciación.

FPU (UNIDAD DE PUNTO FLOTANTE) 

Es una parte del procesador especialmente diseñada para llevar a cabo operaciones de

punto flotante, tales como suma, resta, división, multiplicación y raíz cuadrada. Las FPU’santiguas hacían operaciones exponenciales o trigonométricas que en la actualidad estánincluidas en librerías de rutinas de software.

En el pasado, la FPU se utilizaba como un coprocesador, en la actualidad se encuentranembebido dentro de la propia CPU.

No todas las arquitecturas de computadores disponen de FPU, ya que las operacionesque esta realiza se pueden emular, lo cual produce una gran perdida de rendimiento.

En las arquitecturas de computadores mas modernas, las operaciones en punto flotantese diferencian del resto, llegando a utilizar registros específicos para ellas en arquitecturascomo la x86 de Intel.

5/13/2018 Aritmetica en Punto Flotante - slidepdf.com

http://slidepdf.com/reader/full/aritmetica-en-punto-flotante 6/6

Cuando un ordenador moderno tiene que ejecutar una operación de punto flotante, tiene3 posibilidades para llevar a cabo dicha tarea:

1- Emulación

Las FPU’s tienen un numero finito de operaciones implementadas. Mediante laemulación por software se puede aumentar el numero de operaciones posibles pese a costa de

un menor rendimiento. Dichas operaciones se implementan como operaciones simples deenteros que se llevan a cabo en la ALU (unidad aritmético-lógica).

2- FPU integrada

Las FPU’s disponen de instrucciones que pueden dividirse en simples (suma, resta..) ycomplejas (división). En algunos casos las FPU’s solo integran las operaciones simplesmientras que las complejas son emuladas vía software

3- FPU’s añadidas (coporocesadores)

Durante la década de los 80 era bastante común encontrar FPU’s como coprocesadores,entidades separadas de la CPU que generalmente eran adquiridas cuando se necesitaba hacerun uso intensivo de operaciones en punto flotante. Dichos coprocesadores se encontrabandisponibles para la línea Motorola 680x0, ordenadores gama alta Apple Macintosh y la serie

comodore amiga.

También había FPU’s para microcontroladores.

Los procesadores actuales llevan la FPU integrada

Whetstone FPU benchmark

Comparativas de procesadores en punto flotante