ieee754

Upload: diego-espinoza

Post on 14-Jul-2015

222 views

Category:

Documents


0 download

TRANSCRIPT

1

Estndar IEEE 754 para aritmtica binaria de punto flotante y el protocolo de Firewire IEEE 1394Espinosa, Diego. [email protected] Universidad Michoacana de San Nicolas de Hidalgo precisin sencilla, 64 bits para precisin doble y 128 bits para precisin quad este ultimo formato no esta especificado por la IEEE 754. Por ejemplo, en precisin sencilla los 32 bits se dividen as: un bit para el signo, 8 bits para el exponente y 23 bits para la mantisa. El bit de signo es 0 si el nmero es positivo o 1 si es negativo. El exponente se guarda en exceso 127, es decir, al valor del exponente se le suma 127. Por ltimo, solo se almacena la parte fraccionaria de la mantisa porque en base 2 la parte entera de un nmero normalizado siempre es 1. Un nmero en coma flotante de precisin simple se almacena en una palabra de 32 bits.S 1 Exp 8 Significante 23

ResumenEl estndar de la IEEE para aritmtica en coma flotante (IEEE 754) es el estndar ms extendido para las computaciones en coma flotante, y es seguido por muchas de las mejoras de CPU y FPU. El estndar define formatos para la representacin de nmeros en coma flotante (incluyendo el cero) y valores desnormalizados, as como valores especiales como infinito y NaN, con un conjunto de operaciones en coma flotante que trabaja sobre estos valores. Tambin especifica cuatro modos de redondeo y cinco excepciones (incluyendo cundo ocurren dichas excepciones y qu sucede en esos momentos). ndice de Trminos Estandar IEEE 754, Firewire IEEE 1394, aritmetica binaria punto flotante

I.

INTRODUCCIN

El standard para aritmtica de punto flotante de la IEEE (Institute of Electrical and Electronic Engineers - Instituto de ingenieros elctricos y electrnicos), conocido como IEEE 754, define tres formatos para representar nmeros binarios de punto flotante normalizados. Un nmero normalizado consta de una mantisa, que tiene un solo dgito distinto de cero en la parte entera, y de un exponente aplicado a la base del nmero. Utiliza notacin exponencial en la forma , con la base binaria Numero=Mantisa implcita. Al igual que el caso anterior se reserva un bit para el signo. El exponente se codifica en representacin sesgada o en exceso como en el formato anterior, el sesgo viene dado por la expresin: 2 1 . Donde m es el nmero de bits reservados para el exponente. As pues el valor guardado en el exponente ser el exponente ms el sesgo. La mantisa se almacena generalmente en posicin normalizada con el primer 1 implcito, es decir la coma fraccionaria va a la derecha de este 1. Para una palabra de n=32 bits, y m=8 de exponente, el tamao de la mantisa ser n-m-1=32-8-1=23 bits ms 1 implcito.m1

Donde S es el bit de signo y Exp es el campo exponente. (Para el signo: 0=Positivo ; 1= Negativo). El exponente es desplazado en el un nmero en precisin simple, un exponente en el rango 126 a +127 es desplazado mediante la suma de 127 para obtener un valor en el rango 1 a 254 (0 y 255 tienen valores especiales descritos ms adelante). Cuando se interpreta el valor en coma flotante, el nmero es desplazado de nuevo para obtener el exponente real. La representacin de un nmero de punto flotante en el standard IEEE 754 se encuentra siguiendo esta serie de pasos. 1. Guardar el bit de signo. 2. Convertir el valor absoluto del nmero a binario. 3. Normalizar el nmero binario. 4. Guardar el exponente. 5. Guardar la parte fraccionaria de la mantisa justificado a la izquierda y rellenando de ceros a la derecha si es necesario. representar 17.15 en el formato de precisin sencilla. 1. El bit de signo es 0. 2. 17.1510 en binario es 10001.00 1001 .. 3. El binario normalizado es 1.000100 10012 . 4. El exponente, 4, en exceso 127 es 131, que convertido a binario es 10000011. 5. La parte fraccionaria de la mantisa, expandida a 23 bits, es 00010010011001100110011 .4

BaseExponente

II.

FORMATOS DE REPRESENTACIN

Los tres formatos difieren entre s en la cantidad de bits utilizados para representar el nmero binario: 32 bits para

2 6. En conclusin, usando precisin sencilla 17.15 se representa en binario como 01000001100010010011001100110011 . Principales caractersticas de la representacin binaria dictada por el Standard IEEE 754 son: A. B. Dos ceros. Cero positivo (+0): signo=0, exponente=0, mantisa=0. Cero negativo (-0): signo=1, exponente=0, mantisa=0. Dos infinitos. Infinito positivo (+) : signo=0, exponente=255, mantisa=0. Infinito negativo () : signo=1, exponente=255, mantisa=0. binario y decimal se debe implementar para cumplir con IEEE 754. La mayora de los microprocesadores son compatibles con punto flotante en el chip.Formato Simple Double Extendido Quad Formato Simple Double Extendido Quad Min. Desnormalizado 1.4 E-45 4.9 E-324 3.6 E-4951 6.5 E-4966 Max. Finito 3.4 E38 1.8 E308 Menor o igual 1.2 E 4932 1.2 E4932 3.4 E38 1.11 E-16 5.42 E-20 9.63 E-53 Min. Normalizado 1.2 E-38 2.2 E-308 3.4 E-4932 3.4 E-4932

2

N

C. Dos formas de representar que el resultado no es un numero. NaN (E, no es un numero, como por ejemplo, la raz cuadrada de un numero negativo). Los NaN's pueden tener un signo y un significando, pero estos no tienen otro significado que el que puedan aportar en pruebas de diagnostico: el primer bit del significando es a menudo utilizado para distinguir NaN's sealizados de NaN's silenciosos. Los NaN's y los infinitos tienen todos los bits a 1 en el campo Exp. D. E. NaN positivo (+NaN): signo=0, exponente=255, mantisa > 0. NaN negativo (-NaN): signo=1, exponente=255, mantisa > 0. Numeros mas grandes.

IV.

EXCEPCIONES

Los intentos de hacer frente dignamente a todas las excepciones, es inevitablemente enfrentarse con dilemas aun no resueltos. A menos que el entorno informtico proporciona lo que es llamado Diagnostico retrospectivo. Estos existen en una forma rudimentaria en Sun Microsystems que operan en SPARC, donde todos los eventos sospechosos se notifican durante los clculos. Estos eventos no son registrados al momento del sucedo ya que podran llenar el disco muy pronto. Un esquema de hash garantiza que los eventos repetidos en el mismo tal vez se actualizaran, pero sin aadir entradas en el registro. A. Operacin NO VALIDA. Sealado por el izamiento de la bandera NO VALIDA cuando los operandos de una operacin se encuentran fuera de su dominio, excepcin por defecto, la entrega slo porque cualquier otro valor real o infinito, se define por NaN, que significa "no es un nmero". La conversin de coma flotante a otros formatos puede no ser vlido tambin, si se violan sus lmites, incluso si no NaN se pueden entregar. NaN tambin significa "Nmero no cualquier"; NaN no representa el conjunto de todos los nmeros reales, que es un intervalo para que la representacin adecuada a los asegurados por un plan denominado "aritmtica del intervalo". NaN no debe confundirse con "Indefinido". Por el contrario, IEEE 754 define NaN perfectamente incluso aunque la mayora de los estndares de lenguaje y compiladores ignoran mucho y se apartan de esa definicin. Las desviaciones por lo general afectan a las expresiones relacionales,

(1224 )2128 3.40282351038Numeros mas pequeos. Normalizados:

2126 1.1754943511038Para nmeros normalizados, los mas comunes, Exp es el exponente desplazado y la fraccin es la parte fraccional del significante (o significando). Desnormalizados:

2149 1.40129851045Los nmeros desnormalizados son iguales excepto que e = -126 y m = 0, Fraccin. (e NO es -127: el significando ha de ser desplazado a la derecha por un bit mas, de forma que incluya el bit principal, que no siempre es 1 en este caso. Esto se balancea incrementando el exponente a -126 para el calculo), -126 es el menor exponente para un numero desnormalizado. III. PRECISIN

La precisin estara enmarcada dentro de un rango con el fin de caracterizar con precisin la forma de conversin entre

3 B. Divicion sobre cero Este es un trmino equivocado perpetrado por razones histricas. Un nombre ms apropiado para esta excepcin es "Resultado infinito calculado exactamente de operadores finitos". Un ejemplo es el 3.0/0.0, para lo cual IEEE 754 especifica un infinito como el resultado por defecto. Los bits de signo de los operandos puesto que 0,0 puede tener cualquier signo, por lo que puede ; de hecho, la divisin por cero es la nica operacin algebraica que revela el signo del cero. Lo ideal sera que ciertas expresiones reales deben ser tratados de la manera IEEE 754 trata las divisiones por cero, en lugar que todo se haya clasificado errneamente como errores o "Undefined", y algunos ejemplos de la sintaxis de Fortran son ... ( 0,0) ** (NegativeNonInteger) = + , ( 0,0) ** (NegativeEvenInteger) = + , ( 0,0) ** (NegativeOddInteger) = resp., ATANH ( 1,0) = resp., LOG ( 0,0) = - . Los compiladores pueden causar accidentes mediante la evaluacin de expresiones sin cuidado. Por ejemplo, cuando y reside en un registro, la evaluacin de xy como - (yx) invierte el signo de cero si y = x, evaluar como -y + x en su lugar. Simplificar x+0 de x se porta mal cuando x es -0. Operaciones que producen un resultado infinito de un operando infinito o dos no debe dar seales de dividir por cero. Los ejemplos incluyen + 3, * , EXP (+ ), LOG (+ ), ... . Tampoco se puede 3.0 / EXP = (- ) = 0,0, ATAN ( ) = / 2. C. Operacin INEXACTA Esto se seala cada vez que el resultado ideal de una operacin aritmtica no encajan en su destino, por lo que el resultado tiene que ser alterado por el redondeo para ajustarse. V. OVERFLOW/UNDERFLOW El Underflow ocurre despus de un intento de aproximarse a un resultado distinto de cero que se encuentra ms cerca de cero que el objeto flotante.

VI.

FIREWIRE IEEE 1394

Es un estndar multiplataforma para entrada/salida de datos en serie a gran velocidad. Suele utilizarse para la interconexin de dispositivos digitales como cmaras digitales y videocmaras a computadoras. Caractersticas: Soporta la conexin de hasta 63 dispositivos con cables de una longitud de 425cm con topologia rbol. Soporte plug&play soporta comunicacin peer-to-peer que permite el enlace entre dispositivos sin necesidad de usar la memoria del sistema o la CPU. Soporta conexin en caliente (80C). Todos los dispositivos Firewire son identificados por un identificador IEEE EUI-64 exclusivo (una extencion de las direcciones MAC Ethernet de 48bits). Tabla comparativa de velocidad de trasferencia.

Tecnologa Apple desktop bus Serial port Ultra SCSI Wide Ultra SCSI Ultra2 SCSI 1394 USB 2.0 (Intel) Wide Ultra2 SCSI 1394a Ultra3 SCSI 1394b

Trasferencia de datos 0.01 Mbps 0.23 Mbps 160 Mbps 320 Mbps 320 Mbps 400 Mbps 480 Mbps 640 Mbps 800 Mbps 1280 Mbps 1600 Mbps

Aplicaciones Teclado, Ratn, Joystick Impresoras, telfonos, modems Controladores alto rendimiento Controladores alto rendimiento Controladores alto rendimiento Discos duros, scanners, video digital Muchos dispositivos Controladores alto rendimiento Discos duros, scanners, video digital Controladores alto rendimiento Discos duros, scanners, video digital

REFERENCIAS

El Overflow ocurre despus de un intento para calcular un resultado finito que se encuentran fuera del alcance limitado de la coma flotante formato para el que est destinado. El valor por defecto especificado en el estndar IEEE 754 es la aproximacin de ese resultado. Ya que es aproximada, el desbordamiento es tambin inexacto. A menudo, esta aproximacin es sin valor, es casi siempre intil en los clculos de la matriz, y pronto se convierte en NaN, o peor, en nmeros engaosos. En consecuencia OVERFLOW es a menudo una trampa en el clculo que se aborda. .

[1] David Goldberg. What every computer scientist should know about floating-point arithmetic. ACM Computing Surveys, 23(1):548, March 1991. [2] Hctor Antonio Villa Martnez. Sistemas de numeracin y aritmtica binaria. Technical report, Universidad de Sonora, Hermosillo, Sonora, 2008. [3] Charles H. Roth Jr. Fundamentos de diseo lgico. Thomson, Mxico, DF, quinta edition, 2005. [4] Standard IEEE 754-2008. http://en.wikipedia.org/wiki/ IEEE_754-2008, Accesado 11-01-2012.