Arquitectura de 64 Bits

Universidad de Cartagena Arquitectura de 64 bits Willian de la espriella avila Martin Elías echavez meza Humberto Cai

Views 138 Downloads 0 File size 103KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

Universidad de Cartagena

Arquitectura de 64 bits

Willian de la espriella avila Martin Elías echavez meza

Humberto Caicedo blanco

Cartagena Colombia 11- mar-2016 Introducción

Los microprocesadores de 64 bits han existido en las supercomputadoras desde 1960 y en servidores y estaciones de trabajo basadas en RISC desde mediados de los años 1990. En 2003 empezaron a ser introducidos masivamente en las computadoras personales (previamente de 32 bits) con las arquitecturas x86-64 y los procesadores PowerPC G5. Aunque una CPU puede ser internamente de 64 bits, su bus de datos o bus de direcciones externos pueden tener un tamaño diferente, más grande o más pequeño y el término se utiliza habitualmente para describir también el tamaño de estos buses. Por ejemplo, muchas máquinas actuales con procesadores de 32 bits usan buses de 64 bits (p.ej. elPentium original y las CPUs posteriores) y pueden ocasionalmente ser conocidas como "64 bits" por esta razón. El término también se puede referir al tamaño de las instrucciones dentro del conjunto de instrucciones o a cualquier otro elemento de datos (p.ej. las cantidades de 64 bits de coma flotante de doble precisión son comunes). Sin más calificaciones, sin embargo, la arquitectura de las computadoras de 64 bits tiene integrados registros que son de 64 bits, que permite procesar (interna y externamente) datos de 64 bits.

Marco teórico

Los microprocesadores de 64 bits constituyen un modelo, una arquitectura y el tamaño de los datos o direcciones de memoria, que ahora se compone de 8 bytes, la tecnología de 64 bits no es nueva en el sentido de su aplicación práctica, esta tecnología está presente desde 1960 en supercomputadoras, también en servidores y estaciones de trabajo basadas en arquitectura RISC implementados en los 90´s. La introducción de esta tecnología en computadores personales, se hace desde 2003 con arquitecturas x86-64 y procesadores PowePC G5. El termino 64 bits puede referirse a la CPU, al tamaño de los buses o al tamaño de las instrucciones, pero realmente se habla de tecnología de 64 aplicada a un equipo de cómputo si el equipo cumple con estos tres parámetros: ·

La CPU internamente debe ser de 64 bits.

·

Los buses deben tener un ancho de 64 bits.

·

Las instrucciones llegan a tamaños de 64 bits.

Tecnología Como se ha expuesto la tecnología de 64 bits se ha extendido desde los años 60’s hasta la actualidad, es muy amplia y compleja las arquitecturas que incorporan tecnología de 64 bits por lo que el estudio requiere una profunda conceptualización en los términos tanto de hardware como de software involucrados, igualmente en la microelectrónica empleada por lo que se invita a los estudiantes a profundizar en esta tecnología comenzando con la literatura que se encuentra en línea y en los fabricantes de estos productos, la siguiente es una condensación de las principales arquitecturas. Arquitectura DEC Alpha: la organización de sus registros es de uso general con una arquitectura que se puede encuadrar como de registroregistro. Esto hace que la memoria de sus instrucciones operen sobre los registros, haciendo uso de la memoria RAM solo para instrucciones de carga y almacenamiento. La razón es que se intenta minimizar los accesos a memoria, puesto que suponen el cuello de botella para los procesadores actuales, la longitud de palabra de los registros es de 64 bits, ya sea desde el PC (Contador de Programa), pasando por los registros de enteros, punto flotante, etc… el primer procesador que hizo gala de la tecnología Alpha fue el 21064 Arquitectura IA-64: Línea de procesadores Itanium e Itanium2. Representan el diseño de producto mas complejo del mundo con mas de 1700 millones de transistores. Esto permite obtener sólidas capacidades de virtualización, mejorar la confiabilidad y niveles de rendimiento lideres del mercado. La arquitectura AMD64: El conjunto de instrucciones del AMD 86x-64 (renombrada posteriormente como AMD64) es una extensión directa de la arquitectura del x86 a una arquitectura de 64 bits, motivado por el hecho de que los 4GB de memoria que son direccionables directamente por una CPU de 32 bits ya no es suficiente para todas las aplicaciones. El primer procesador con soporte para este conjunto de instrucciones fue el Opteron lanzado en 2003. Posteriormente ha sido implementado en múltiples

variantes del Athlon 64 y el Pentium 4 de Intel, en este ultimo caso bajo una versión de Intel llamada EM64T. La arquitectura SPARC: Es la primera arquitectura RISC abierta y como tal las especificaciones de diseño son públicas, así otros fabricantes de microprocesadores pueden desarrollar su propio diseño. Una de las ideas innovadoras de esta arquitectura es la ventana de registros que permite hacer fácilmente compiladores de alto rendimiento y una significativa reducción de memoria en las instrucciones load/restore en relación con otras arquitecturas RISC. Las ventajas se aprecian sobre todo en programas grandes. La CPU SPARC esta compuesta de una unidad entera, UI (Integer Unit) que procesa la ejecución básica y una FPU (Floating-Point Unit) que ejecuta las operaciones y cálculos reales. La UI y la FPU pueden o no estar integradas en el mismo Chip. Aunque no es una parte formal de la arquitectura, las computadoras basadas en sistema SPARC de Sun Microsystem tienen una unidad de manejo de memoria (MMU) y una gran cache de direcciones virtuales (para las instrucciones y los datos) que están dispuestos periféricamente sobre un bus de datos y direcciones de 32 bits. La arquitectura POWER: Es usada en servidores IBM, pero sin embargo hay muchos microprocesadores que son derivados o variantes de este que se encuentra en gran variedad de equipos que van desde computadores para automóviles hasta consolas de videojuegos, su nombre proviene de “PerformanceOptimization With Enhanced RISC”. La arquitectura PA-RISC: Una característica interesante de PA-RISC es que la mayoría de sus microprocesadores no tienen cache L2. En su lugar se implementa un cache L1 mayor, formada por chips separados conectados al microprocesador a través de un bus (actualmente esta integrada en el propio chip). Solo el modelo PA-7300LC tiene cache L2. Otra innovación de esta arquitectura fue la adición de un repertorio de instrucción multimedia (SIMD) conocido como

Ventajas y Desventajas respecto a 32 bits Ventajas 

Se pueden usar más registros.



Manejo de más cantidad de memoria RAM.



La

asignación

en

memoria

de

archivos

es

menos

útil

con

arquitecturas de 32 bits, especialmente con la introducción de tecnología de grabación de DVD relativamente económica. Un archivo de 4 GB ya no es inusual y tales archivos grandes no pueden ser asignados fácilmente con arquitecturas de 32 bits. Sólo se puede asignar una

región del archivo en el espacio de direcciones y para acceder al archivo usando asignación de memoria, estas regiones deben ser localizadas dentro y fuera del espacio de direcciones según sea necesario. Esta es una cuestión clave, ya que la asignación de memoria es uno de los métodos más eficientes para transportar datos del disco a la memoria, cuando es correctamente implementado por el SO. Desventajas La principal desventaja de las arquitecturas de 64 bits es que, con respecto a las de 32 bits, los mismos datos ocupan ligeramente más espacio en memoria debido al crecimiento de los punteros y posiblemente otros tipos y al relleno para alineamiento (dependiendo del tipo de programa, algunos pueden multiplicar su tamaño). Esto incrementa los requisitos de memoria de un proceso dado y puede tener implicaciones para el uso eficiente de la caché del procesador. Mantener un modelo parcial de 32 bits es una manera de manejar esto y es en general razonablemente efectivo. De hecho, el sistema operativo de altas prestaciones Z/OS ha escogido este enfoque actualmente, requiriendo que el código de programa resida en varios espacios de direcciones de 32 bits mientras que los objetos de datos pueden (opcionalmente) residir en regiones de 64 bits. Error de RAM en algunos S.O. Algunos sistemas operativos reservan porciones de espacio de direcciones de procesos para uso del SO, reduciendo el espacio total de direcciones disponible para asignar memoria para programas de usuario. Por ejemplo, las DLLs de Windows XP y los componentes de usuario del SO están asignados en cada espacio de direcciones de proceso, dejando sólo entre 2 y 3.75 GB (dependiendo de la configuración) de espacio de direcciones disponible, incluso si la computadora tiene 4 GB de RAM. Esta restricción solo está presente en las versiones de Windows de 32 bits, que no tiene habilitado el PAE.

Ensamblador Durante años, los programadores de PC utilizan ensamblador x86 para escribir código de rendimiento crítico. Sin embargo, las PC de 32 bits están siendo reemplazadas por otras de 64 bits, y el código de montaje subyacente ha cambiado. Este documento es una introducción al conjunto de x64. No es necesario ningún conocimiento previo de código x86, a pesar de que hace más fácil la transición. 64 es un nombre genérico para las extensiones de 64 bits a Intel y la arquitectura del conjunto de instrucciones x86 de 32 bits de AMD (ISA). AMD presentó la primera versión de x64, x8664 inicialmente llamada y más tarde rebautizado AMD64. Intel nombró su ejecución IA-32e y luego EMT64. Hay algunas pequeñas incompatibilidades

entre las dos versiones, pero la mayoría del código funciona bien en ambas versiones; detalles se pueden encontrar en el Manual Intel® 64 e IA-32 Arquitecturas del desarrollador de software y la Arquitectura AMD64 Tech Docs . Llamamos a este sabor x64 intersecciones. Ninguno de los dos ha de confundirse con la arquitectura Intel Itanium de 64 bits, que se llama IA64. Este papel blanco no cubrirá los detalles de hardware tales como cachés, predicción de saltos y otros temas avanzados. Varias referencias se dan al final del artículo para la lectura adicional en estas áreas. El montaje se utiliza a menudo para las piezas de rendimiento crítico de un programa, aunque es difícil de superar a un buen compilador de C ++ para la mayoría de los programadores. Conocimiento de la asamblea es útil para depurar código - a veces un compilador hace el código de montaje incorrecto y recorrer el código en un depurador ayuda a localizar la causa. Optimizadores de código a veces cometen errores. Otro uso para el montaje de interfaz con una o fijación de código para el que no tiene el código fuente. Desmontaje le permite cambiar / corregir ejecutables existentes. El montaje es necesario si se quiere saber cómo su lengua de la opción funciona bajo el capó - por qué algunas cosas son lentos y otros son rápidos. Finalmente, el conocimiento código de montaje es indispensable en el diagnóstico de malware.