You are on page 1of 14

Aritmtica de punto flotante Muchas aplicaciones requieren trabajar con nmeros que no son enteros.

Existen varias formas de representar nmeros no enteros. Una de ellas es usando un punto o coma fijo. Este tipo de representacin ubica siempre el punto o coma en alguna posicin a la derecha del dgito menos significativo. Otra alternativa comnmente usada es la que se conoce como representacin en punto flotante. ajo este esquema! un nmero puede ser expresado mediante un exponente " una mantisa. #or ejemplo El nmero $%.&' puede ser expresado como( $%.&' $.%&' Mantisa $%)% $%)$ Exponente

En general un numero en punto flotante puede ser representado como * d %! d$! d+! d,!-d. x b)exp donde d%! d$! d+! d,!-d. se conoce como mantisa! b es la base " exp es el exponente.
/0u1 se necesita para representar un nmero en punto flotante2 El signo del nmero El signo del exponente 3gitos para el exponente 3gitos para la mantisa

#ara poder llegar a la representacin de nmeros en punto flotante es necesario recordar una importante tener en cuenta que se deben de trabajar con nmeros normali4ados! decimos que es un numero normali4ado si el digito a la i4quierda del punto o coma est5 entre % " la base 6%7digito a la i4quierda del punto7b8. En particular! decimos que un nmero binario est5 normali4ado si el digito a la i4quierda del punto es igual a $. $.%% x $%) 9$ :ormali4ado %.$ x $%) + :o normali4ado

Estndar IEEE-754 para representacin de punto flotante Este est5ndar se desarrollo para facilitar la portabilidad de los programas de un procesador a otro " para alentar el desarrollo de programas num1ricos sofisticados. Este est5ndar ha sido ampliamente adoptado " se utili4a pr5cticamente en todos los procesadores " coprocesadores aritm1ticos actuales. El est5ndar del ;EEE define el formato para precisin simple de ,+ bits " para precisin doble de <= bits. Formato simple El formato simple para los nmeros de de ,+ bits. Esto se refiere a que un nmero en coma flotante se puede almacenar en una palabra de ,+ bits.

>a representacin de un numero en formato simple en el est5ndar ;EEE&'= consta de las siguientes partes( Signo se encuentra en el bit m5s significativo. Exponente de exceso Esta conformado por los siguientes ? bits. Esta ubicacin del exponente en la palabra facilita las comparaciones de nmeros. @i los nmeros se encuentran normali4ados! comparamos los exponentes. @i son iguales pasamos a comparar las mantisas. @i utili4amos complementos a+! los exponentes negativos aparecer5n como ma"ores que los exponentes positivos al usar la circuitera de enteros. #ara evitar ese inconveniente! se utili4a una representacin en exceso : de forma que el exponente m5s negativo posible quede en %%%%%%%$ " el m5s grande de los positivos en $$$$$$$%. El est5ndar ;EEE &'= usa como exceso $+& para precisin simple. Exponentes m5s negativo representable( AB$+&C%%%%%%%$ AC9$+< Exponente m5s grande representable( AB$+&C$$$$$$$% AC$+& !antisa" Est5 formada por el resto de los bits en la palabra 6+,8.

Domo los nmeros se representan de manera normali4ada entonces siempre tendremos un $ a la i4quierda del punto. EEEM#>O(

Formato doble >a representacin de un nmero en formato doble en el est5ndar ;EEE &'= consta de las siguientes partes( Signo( se encuentra en el bit m5s significativo Exponente en exceso( Esta conformado por los siguientes $$ bits. @e utili4a una representacin en exceso $%+, de forma que el exponente m5s negativo posible quede en %%%%%%%%%%$ " el m5s grande de los positivos en $$$$$$$$$$%. !antisa Esta formada por '+ bits mas el bit implcito 6',8.

Segmentacin de instrucciones" Es una t1cnica para aumentar las prestaciones " tambi1n nos sirve para dividir el ciclo de instruccin hasta en $% tareas secuenciales! consiste en reali4ar las tareas de una manera simult5nea. Estrategias de segmentacin de instrucciones" @egmentacin de cause. 77pipeliningFF En este tipo de estrategia se puede trabajar de manera simultanea en varias etapas. En un extremo se aceptan nuevas entradas antes de que algunas entradas aceptadas con anterioridad apare4can como salidas en el otro extremo. Esta t1cnica tambi1n es llamada as porque se asemeja a una tubera.

Segmentacin con dos etapas" @e puede considerar que la subdivisin de procesamiento de una instruccin se da en + etapas( >a captacin de la instruccin " ejecucin de la misma. Gomemos en cuenta que ha" periodos de la ejecucin de una instruccin que no accedemos a la memoria principal. En l o que esto pasa se puede aprovechar el tiempo en captar una segunda instruccin! al mismo tiempo que se ejecuta al primera.

>a primera es captar la instruccin " almacenarla en un buffer ! cuando la segunda etapa 6ejecucin8 est5 libre es pasada la instruccin que se almacen anteriormente " al ejecutar! la primera etapa utili4a un ciclo de memoria para captar " ejecutar la siguiente instruccin. H esto se le llama pre captacin de instruccin o solapamiento del a instruccin.

3ebido a que entre captacin " ejecucin ha" una reduccin de tiempo considerable debera de ser la mitad de tiempo que si se captara " ejecutara una por una las instrucciones! esto no es as por dos ra4ones( $.9 >a ejecucin de una instruccin siempre llevar5 a cabo varias operaciones " tareas como leer " almacenar operandos! por lo tanto la etapa de captacin tendr5 que esperar a que pueda vaciar su buffer. +.9 #resenta problemas al haber una instruccin de salto incondicional "a que no se conoce la siguiente instruccin! " al pasar esto la etapa de captacin debe esperar a que la direccin se la mande de la siguiente instruccin la etapa de ejecucin! " a su ve4 la etapa de ejecucin debe esperar a que la instruccin siguiente sea captada por la primer etapa.

#escomposicin del procesamiento de una instruccin" #ara conseguir una ma"or aceleracin! el cauce debe tener m5s etapas! se puede descomponer en < etapas! las cuales son( Daptar instruccin 6Ietch instruction !I;8( >eer la respuesta siguiente instruccin en un buffer 3ecodificar instruccin 63ecode instruction! 3;8( 3eterminar el cdigo de operacin " los campos de operando. Dalcular operando 6Dalculate operands !DO8( Dalcula la direccin efectiva de cada operando fuente. Daptar operando 6Ietch operands! IO8( Dapta cada operando que resida en memoria. Ejecutar instruccin 6Execude instruction! E;8( Jeali4a la operacin indicada " almacena el resultado. Escribir operando 6Khite operand! KO8( Hlmacena el resultado en memoria.

Hqu est5 un diagrama de cmo se lleva a cabo.

$restaciones de un cauce segmentado" El tiempo de ciclo & de un cauce de instrucciones es el tiempo necesario para que un conjunto de instrucciones avance una etapa atrav1s del cauce! podemos representar el ciclo de tiempo de la siguiente manera(

3onde( Gi C retardo de tiempo de la circuitera dela i91sima etapa del cauce. Gm C m5ximo retardo de etapa. L C nmero de etapas del cauce. d C retardo de tiempo de un registro latch! necesario para que avancen las seMales " datos de una etapa a la siguiente.

%&A%A!IE'%(S #E SA)%(S Uno de los ma"ores problemas del diseMo de un cauce de instrucciones es asegurar un flujo estable de instrucciones en las etapas iniciales del cauce. El principal obst5culo es la instruccin de salto condicional. Nasta que la instruccin no se ejecuta realmente! es imposible determinar si el salto se producir5 o no. #or lo tanto se han considerado varias aproximaciones en el tratamiento de saltos condicionales( Flu*os m+ltiples" Un cauce se ve penali4ado por las instrucciones de salto porque debe escoger una de las dos instrucciones a captar a continuacin " puede hacer una eleccin equivocada. Una solucin es duplicar las partes iniciales del cauce " dejar que este capte las dos instrucciones! utili4ando los dos caminos. Esta aproximacin tiene dos problemas( Na" retardos debido a la competencia por el acceso a los registros " a la memoria. #uede entrar en el cauce instrucciones de salto adicionales antes de que se resuelva la decisin del salto original. Dada una de esas instrucciones exige un flujo adicional.

Ejemplos( El ; M ,&%O$<? " el ; M ,%,, m5quinas con dos o m5s flujos en el cauce. $ercatar el destino del salto" Duando se identifica un salto condicional! se precapta la instruccin destino del salto! adem5s de la siguiente a la de salto. @i se produce el salto! el destino habr5 sido precaptado. Ejemplo( El ; M ,<%OP$ usa este m1todo. ,uffer de bucles" Es una memoria pequeMa de gran velocidad gestionada por la etapa de captacin de instruccin del cauce! que contiene! secuencialmente! la n instrucciones captadas m5s recientemente. El buffer de bucles tiene tres utilidades( $.9 Don el uso de pre captacin! el buffer de bucles contendr5 algunas instrucciones que secuencialmente est5n despu1s de la direccin de donde se capta la instruccin actual. 3e este modo! las instrucciones que se capten secuencialmente estar5n disponibles sin necesitar el tiempo de acceso de memoria habitual. +.9 @i ocurre un salto a un destino a solo unas pocas posiciones m5s all5 de la direccin de la instruccin de salto. Esto es til para el caso bastante comn de las secuencias ;I9GNE: e ;I9GNE:9E>@E. ,.9 Esta estrategia se acomoda particularmente bien al tratamiento de bucles! o interacciones! de ah el nombre de buffer de bucles. @i el buffer de bucles es lo suficientemente grande como para contener todas las instrucciones de un bucle. >a diferencia que existe entre un bucle " una cache de instrucciones! es que el buffer de bucles solo guarda instrucciones consecutivas " que es mucho m5s pequeMo en tamaMo! " por tanto de menor costo. $rediccin de saltos" @e pueden usar varias t1cnicas para predecir si un salto se va a producir. Entre las m5s usuales se encuentran las siguientes( #redecir que nunca se salta. #redecir que siempre se salta. #redecir segn el cdigo de operacin. Donmutador saltarOno saltar. Gabla de historia de saltos.

>as tres primeras soluciones son est5ticasQ no depende de la historia de ejecucin que ha"a tenido lugar hasta la instruccin de salto condicional. >as dos ltimas aproximaciones son din5micasQ dependen de la historia de ejecucin.

,uffer de bucles

#iagrama de flu*o de la produccin de saltos

El proceso de decisin puede representar de manera m5s compacta por medio de una m5quina de estados finitos.

#iagrama de estados de la prediccin de saltos" Salto retardado" @e pueden mejorar las prestaciones de un cauce reordenado autom5ticamente las instrucciones de un programa! de manera que las instrucciones de salto tengan lugar despu1s de lo realmente deseado.

SE-!E'%A.I/' #E) I'%E) 01402 >a segmentacin del ;:GE> ?%=?< incorpora un cauce de ' etapas. .aptacin 3Fetc45 >as instrucciones de captan de la cache o de la memoria externa " se colocan uno de los dos buffers de bsqueda de $< b"tes. @u objetivo es llenar los buffers de pre bsqueda con nuevos datos. En promedio se captan alrededor de cinco instrucciones con cada carga de $< b"tes RDJHKP%S. Etapa de #ecodificacin 6 @e decodifica el cdigo de operacin " la informacin referente al modo de direccionamiento. En los primeros b"tes de informacin est5 contenida la informacin sobre la longitud de instruccin. El 3$ puede indicar a la epata 3+ que capture el resto de la instruccin. Etapa de decodificacin 7 Donvierte cada cdigo de operacin en seMales de control para la H>U. Gambi1n controla el c5lculo de los modos de direccionamiento m5s complejos.

E*ecucin 3Execute8 E95 ;nclu"e operaciones de la H>U! acceso a cach1 " actuali4acin de registros. Escritura 3:rite ,ac;8 :,5 cuando es necesaria actuali4a los registros e indicadores de estado modificados durante la etapa de ejecucin precedente. E*emplo de funcionamiento de cauce"

Donclusin Godo lo visto anteriormente! nos da una idea de cmo funcionan las estrategias de segmentacin de instrucciones! es importante que las instrucciones se procesen de manera r5pida! "a que es necesario para la optimi4acin de las tareas a reali4ar! as como el bajo costo a nivel de consumo de memoria! la cual es sumamente importante que est1 libre lo m5s pronto posible! los registros van a tener una tarea mu" importante que hacer para que se agilice el almacenamiento de datos as como transportarlos a la memoria principal. #reguntas. $.9 /Du5les son las estrategias de segmentacin de instrucciones2 JC segmentacin de cauce " segmentacin con dos etapas. +.9 3escribe la segmentacin por cauce. JC En este tipo de estrategia se puede trabajar de manera simult5nea en varias etapas. En un extremo se aceptan nuevas entradas antes de que algunas entradas aceptadas con anterioridad apare4can como salidas en el otro extremo.

Esta t1cnica tambi1n es llamada as porque se asemeja a una tubera. ,.9 3escribe la segmentacin con dos etapas. JC >a primera es captar la instruccin " almacenarla en un buffer ! cuando la segunda etapa 6ejecucin8 est5 libre es pasada la instruccin que se almacen anteriormente " al ejecutar! la primera etapa utili4a un ciclo de memoria para captar " ejecutar la siguiente instruccin. H esto se le llama pre captacin de instruccin o solapamiento del a instruccin. =.9 /#or qu1 no podemos decir que la segmentacin con dos tapas reduce a la mitad del tiempo el llevar a cabo una tarea de varias instrucciones2 no es as por dos ra4ones( $.9 >a ejecucin de una instruccin siempre llevar5 a cabo varias operaciones " tareas como leer " almacenar operandos! por lo tanto la etapa de captacin tendr5 que esperar a que pueda vaciar su buffer. +.9 #resenta problemas al haber una instruccin de salto incondicional "a que no se conoce la siguiente instruccin! " al pasar esto la etapa de captacin debe esperar a que la direccin se la mande de la siguiente instruccin la etapa de ejecucin! " a su ve4 la etapa de ejecucin debe esperar a que la instruccin siguiente sea captada por la primer etapa. '.9 Menciona las seis tapas en las que se descomponerlas instrucciones. Daptar instruccin 6Ietch instruction !I;8( >eer la respuesta siguiente instruccin en un buffer 3ecodificar instruccin 63ecode instruction! 3;8( 3eterminar el cdigo de operacin " los campos de operando. Dalcular operando 6Dalculate operands !DO8( Dalcula la direccin efectiva de cada operando fuente. Daptar operando 6Ietch operands! IO8( Dapta cada operando que resida en memoria. Ejecutar instruccin 6Execude instruction! E;8( Jeali4a la operacin indicada " almacena el resultado. Escribir operando 6Khite operand! KO8( Hlmacena el resultado en memoria.

<.9 /Du5ntas estepas de cauce incorpora la segmentacin del ;:GE> ?%=?<2 Daptacin 6Ietch8! Etapa de 3ecodificacin $! Etapa de decodificacin +! Ejecucin 6Execute! EA8 " Escritura 6Krite ac.! K 8. &.9 Menciona algunas de las t1cnicas para predecir si un salto se va a producir T #redecir que nunca se salta. T #redecir que siempre se salta. T #redecir segn el cdigo de operacin. T Donmutador saltarOno saltar. T Gabla de historia de saltos. ?.9 /0u1 es un uffer de ucles2 Es una memoria pequeMa de gran velocidad gestionada por la etapa de captacin de instruccin del cauce! que contiene! secuencialmente! la n instrucciones captadas m5s recientemente. P.9 /0u1 es percatar el destino del salto2 Duando se identifica un salto condicional! se precapta la instruccin destino del salto! adem5s de la siguiente a la de salto. @i se produce el salto! el destino habr5 sido precaptado. $%.9 3escribe la etapa de Escritura 6Krite ac.! K 8 Duando es necesaria actuali4a los registros e indicadores de estado modificados durante la etapa de ejecucin precedente.

You might also like