Consideraciones acerca del Estándar IEEE 754 


 
 

   Conceptos 
   Problemas con la Aritmética en Punto Flotante 
   Operaciones Aritméticas en Punto Flotante 

Bits de Guarda, Redondeo, Infinito, NaN, Números denormalizados 
 

 



 
 
 

Conceptos

Dentro del estándar IEEE 754, se definen varios formatos, como ser el simple de 32 bits, el doble de 64 bits, además de los conocidos como simple ampliado y doble ampliado.
El formato que se implementará en este trabajo práctico es conocido como el formato simple, de 32 bits de representación en punto flotante.
Este formato, como muestra la figura 1, tiene un bit para el signo, 8 bits para el exponente y 23 bits para la parte fraccionaria o mantisa. El exponente es sesgado (“biased”); esto significa que un valor constante, llamado sesgo, se resta del campo del exponente para conseguir el valor del exponente verdadero. En el caso del formato simple, el valor del sesgo es 127.
 
 
Las características más importantes del formato IEEE 754 en su formato simple se citan a continuación:
    • Los números en punto fijo normalizados se representan con exponentes desde 1 hasta 254 (el cero y el 255 se utilizan para casos especiales, como se verá mas adelante.). Como ya se dijo, el exponente está sesgado, siendo el rango de exponentes de  (1-127 = )  –126 a  (254-127 = ) 127.
    • Un número normalizado debe contener un bit 1 a la izquierda del punto binario correspondiente a la mantisa; este se encuentra implícito, de manera a tener una mantisa efectiva de 24 bits:
    • 1, x x x x x x x . . . . . . . . . . x 
    • Un exponente cero junto con una parte fraccionaria cero representa el cero positivo o negativo, dependiendo del bit de signo.
    • Un exponente todo unos junto con una mantisa cero representa, dependiendo también del bit de signo, infinito positivo o negativo. Como en el caso del cero, el infinito se utiliza para redondeo de números muy pequeños o muy grandes, que no se pueden representar con este formato.
    • Un exponente cero junto con una parte fraccionaria distinta de cero representa lo que se conoce como un número no normalizado (se explicará más adelante).
    • A un exponente de todo unos junto con una parte fraccionaria distinta de cero se le da el nombre de NaN, que significa “no representa un número” (Not a Number), que se emplean para señalar varias condiciones de excepción.
En la TABLA I se resumen las distintas representación de estos casos, teniendo en cuenta que “e” representa el exponente y  “f” la mantisa.
 Tabla I
 
Signo
Exponente
Sesgado
Mantisa
Valor
Cero positivo
0
0
0
0
Cero negativo
1
0
0
- 0
Más infinito
0
255 (todos 1s)
0
µ 
Menos infinito
1
255 (todos 1s)
0
- µ 
NaN silencioso
0 o 1
255 (todos 1s)
¹ 0
NaN
NaN indicador
0 o 1
255 (todos 1s)
¹ 0
NaN
Positivo normalizado ¹ 0
0
0 < e 255
f
(1,f) * 2e-127
Negativo normalizado ¹ 0
1
0 < e 255
f
- (1,f) * 2e-127
Positivo denormalizado
0
0
f ¹ 0
(0,f) * 2-126
Negativo denormalizado
1
0
f ¹ 0
- (0,f) * 2-126
 
 
 
 

      Problemas con la aritmética en punto flotante

    Cuando se realizan operaciones aritméticas en punto flotante, pueden surgir problemas como resultado de estas operaciones. Estos pueden ser:
      • Desbordamiento del exponente: un exponente positivo que excede el valor máximo representable. Este casos se puede representar como + ? ó ? ?.
      • Desbordamiento a cero del exponente: un exponente negativo que exceda el valor máximo permitido. Esto quiere decir que el número es demasiado pequeño para ser representado, y puede ser aproximado por +0 ó ?0.
      • Desbordamiento a cero de la mantisa: debido a que en la operación de suma y resta los exponentes se deben igualar, pueden perderse dígitos por la parte derecha de la mantisa, durante el proceso de alineación de la misma.
      • Desbordamiento de la mantisa: la suma de dos mantisas del mismo signo puede producir un acarreo debido al bit más significativo.
 
 
 
 

      Operaciones aritméticas en punto flotante

    Consideraciones sobre precisión

Bits de guarda

Para la operación en punto flotante, los exponentes y las mantisas son cargados en registros de la ALU. En el caso de la mantisa, el tamaño del registro es casi siempre mayor que la longitud de la mantisa. Así, el registro contiene bits adicionales, llamados bits de guarda o de respaldo, que se añaden a la derecha de la mantisa en forma de ceros.
Estos bits se agregan para evitar la perdida de precisión, cuando se igualan los exponentes (se hace correr la coma binaria).
En este trabajo no se utilizan para ninguna operación los bits de guarda.

Redondeo

Otro detalle que afecta a la precisión del resultado de las operaciones aritméticas es la política de redondeo utilizada. Esto ocurre ya que  el resultado de cualquier operación sobre las mantisas se almacena en un registro más grande, y cuando el resultado se pone de nuevo en el formato de punto flotante, hay que eliminar los bits extras.
El estándar IEEE 754 enumera cuatro tipos de redondeo:
    • Redondeo al más próximo: el resultado se redondea al número exacto más próximo representable. Si ambos valores se encuentran igualmente próximos, se aproxima a aquel cuyo bit menos significativo sea 0.
    • Redondeo hacia + infinito : el resultado se redondea por exceso hacia más infinito.
    • Redondeo hacia - infinito el resultado se redondea por defecto hacia menos infinito. Este como el redondeo hacia + infinito se utilizan en lo que se conoce como aritmética de intervalos, que consiste en obtener primero el resultado utilizando el redondeo hacia redondeo hacia - infinito, que indica el límite inferior del resultado; luego se repite la operación, utilizando el redondeo hacia - infinito, obteniendo así el límite inferior del resultado. Así entonces, el resultado final de la operación, se da como un rango entre dos números representables.
    • Redondeo hacia cero: el resultado se redondea hacia cero. Es simplemente un truncamiento, en el cual se ignoran los bits extra. Es la más utilizada.
El tipo de redondeo utilizado en este trabajo es el Redondeo al más próximo.
 
 

Otras consideraciones

Infinito

Las operaciones aritméticas con infinito son tratadas como casos límite de la aritmética real, dándose la siguiente interpretación a los valores de infinitos:
- µ < (cualquier número finito) < + µ 
 
 Algunas operaciones con infinitos son:
número + (+µ ) = +µ
número - (+µ ) = - µ
número + (- µ ) = - µ
número - (- µ ) = +µ
(+µ ) + (+µ ) = +µ
(- µ ) + (- µ ) = - µ
(- µ ) - (+µ ) = - µ
(+µ ) - (- µ ) = +
 

NaN indicadores y silenciosos

Es una entidad simbólica (representa algo). Existen dos tipos. Un NaN indicador señala una condición de operación no válida siempre que aparece como operando. Un NaN silencioso se propaga entre la mayoría de operaciones si señalización alguna. Es importante indicar, que ambos NaN tienen la misma representación y su implementación depende de cada caso en particular. 
En el caso de nuestro trabajo, es utilizado un solo tipo de NaN. Este NaN es el silencioso, ya que siempre se pueden saber si el resultado de la operación realizada fue un NaN. Además, si uno de los operando es NaN, el resultado automáticamente es un NaN, como se explicará mas adelante. 
Las operaciones que produce un NaN se muestran en la Tabla II. 
Tabla II 
 
Suma o Resta:
(+µ ) + (- µ )
 
(- µ ) + (+µ )
 
(+µ ) - (+µ )
 
(- µ ) - (- µ )
Multiplicación:
0 x µ 
División:
0 / 0
  

Números denormalizados

Se incluyen en el IEEE 754 para tratar situaciones de desbordamiento de exponentes, es decir, cuando el resultado es demasiado pequeño (exponente negativo con magnitud muy grande). En este caso, el resultado se desnormaliza desplazando a la derecha la parte fraccionaria (a la izquierda la coma binaria) e incrementando el exponente una vez por cada desplazamiento, hasta que dicho exponente esté dentro de un rango representable.
Para un mejor entendimiento, se muestra en la figura 2 el efecto de la denormalización. Los números normalizados pueden agruparse en intervalos de la forma [2n, 2n+1]. Dentro de cada uno de estos intervalos, la parte del exponente de los número es la misma para todos ellos, y solo varía la parte fraccionaria, produciéndose así un espaciado uniforme entre cada número representable dentro de ese intervalo. A medida que nos aproximamos a cero, cada intervalo sucesivo es la mitad de ancho que el precedente, pero contiene la misma cantidad de números representables.
Existe así una zona que no se utiliza, muy próxima a cero. El menor número positivo representable en forma normalizada es 2- 126. Sin embargo, al considerar los números denormalizados, se añaden 223 números uniformemente distribuidos entre 0 y 2- 126, como se muestra en la figura 2. 

  

  
En este trabajo, los números denormalizados no son implementados. 
 
 
 
EN RESUMEN, lo implementado en este trabajo, con respecto al formato IEEE 754 son los siguientes aspectos:
    • Formato simple de 32 bits de la IEEE 754, con exponente sesgado, con sesgo de 127.
    • Se utilizan representación para:
      • números normalizados positivos
      • números normalizados negativos.
      • cero positivo
      • cero negativo
      • infinito positivo
      • infinito negativo
      • NaN silencioso
    • Estas representaciones no solo se utilizan como resultado de una operación, sino que se los puede utilizar también como operando de cualquiera de las operaciones, como se detallará mas adelante.
    • El desbordamiento a cero (underflow) se toma, dependiendo del signo, como cero positivo o negativo.
    • El desbordamiento (overflow) se toma, dependiendo del signo, como infinito positivo o negativo.
    • No se utilizan bits de guarda
    • Se utiliza la representación del redondeo al más próximo.
    • No se utilizan números denormalizados.
Volver arriba
Volver al sitio de 
la Materia Micro II 
Inicio