martes, 29 de abril de 2008

3.1.- Arquitectura SPARC-V9

SPARC-V9 supuso un cambio realmente significativo a la arquitectura SPARC desde su lanzamiento en 1987 [1], poniendo a esta arquitectura en la cima del altamente competitivo mundo de los microprocesadores RISC [2]. SPARC-V9 extiende el espacio de direcciones a 64 bits, añade nuevas instrucciones, e incorpora algunas mejoras realmente significativas.

Se han implementado procesadores SPARC (Scalable Processor ARChitecture) usados en un amplio rango de computadores que abarca desde pequeñas consolas a supercomputadores [1]. SPARC-V9 mantiene la compatibilidad binaria para las aplicaciones software desarrolladas para implementaciones anteriores de SPARC, incluyendo microSPARC y SuperSPARC.

SPARC-V9, como su predecesor SPARC-V8, es una especificación de microprocesador creada por The SPARC Architecture Committee de SPARC International, por lo que cualquiera puede realizar una implementación del microprocesador y obtener una licencia de SPARC International. SPARC International es un consorcio de fabricantes de computadores, que permite la asociación a cualquier compañía del mundo.

SPARC-V9 mejora la versión 8, proporcionando soporte explícito para:

Direcciones y datos enteros de 64 bits.

Prestaciones de sistema mejoradas.

Compiladores optimizantes avanzados.

Implementaciones superescalares.

Sistemas operativos avanzados.

Tolerante a fallos.

Cambios de contexto y manejo de traps extremadamente rápido.

Admite ordenación de bytes big-endian y little endian.

SPARC-V9 soporta directamente direcciones virtuales de 64 bits y tamaños de datos enteros de hasta 64 bits, incorporando varias instrucciones que manejan de forma explicita valores de 64 bits. Por ejemplo, las instrucciones LDX y STX cargan y almacenan respectivamente valores de 64 bits.

3.1.1.- CARACTERISTICAS MAS RELEVANTES

A pesar de estos cambios, los microprocesadores de 64-bits SPARC-V9 podrán ejecutar programas compilados para procesadores SPARC-V8 de 32 bits. Esto se logra asegurando que las antiguas instrucciones continuan generando el mismo resultado en los 32 bits de menor orden de los registros. No obstante, y para aprovechar mejor la extensión de dirección y las capacidades avanzadas de SPARC-V9, es recomendable recompilar los programas escritos para SPARC-V8.

Para aumentar las prestaciones, el juego de instrucciones ha sido mejorado introduciendo las siguientes características:

Instrucciones de división y multiplicación enteras.

Instrucciones de LOAD y STORE de cuádruples palabras en coma flotante.

Predicción de saltos establecidos por software, lo que da al hardware una gran probabilidad de mantener el pipeline del procesador lleno.

Saltos condicionales en función del contenido de un registro, lo que elimina la necesidad de ejecutar una instrucción de enteros que actualice dicho código de condición. De esta forma, se elimina un cuello de botella potencial y se crean mayores posibilidades de paralelismo.

Instrucciones de move condicionales, que ayudan a minimizar saltos en el código de las aplicaciones.

SPARC-V9 contiene instrucciones específicas que permiten al hardware detectar solapamiento de punteros, ofreciendo al compilador una solución sencilla para este complejo problema. Pueden compararse dos punteros, y almacenar en un registro de enteros el resultado de la comparación. La instrucción FMOVRZ podría mover condicionalmente un registro de coma flotante basandose en el resultado de la comparación anterior.

Esta instrucción puede ser usada para corregir problemas de solapamiento, permitiendo adelantar las instrucciones LOAD tras los STORES. Todo esto supone una diferencia significativa en las prestaciones globales de los programas.

Se ha añadido un registro TICK que es incrementado una vez por cada ciclo de máquina. Este registro puede ser leido por una aplicación de usuario para realizar medidas simples y precisas de las prestaciones de un programa.

3.1.2.- SOPORTE PARA PROCESADORES SUPERESCALARES

En este apartado desarrollaremos todos aquellos puntos relacionados con las características superescalares de la arquitectura. SPARC sólo supone una serie de especificaciones a nivel arquitectural, pero no presupone una implementación determinada. De igual forma que SPARC-V8 incluye soporte para implementaciones segmentadas (aunque existen versiones sin segmentar), SPARC-V9 incluye soporte para el diseño de procesadores superescalares avanzados. La arquitectura SPARC-V9 esta eventualmente preparada para ejecutar de ocho a diesiseis instrucciones simultaneamente.

Muchos de los cambios añadidos para suportar más eficientemente la ejecución superscalar provienen de la experiencia ganada en la implementación del SuperSPARC&trade de Texas Instrument, y del HyperSPARC de Ross Technologie [1]. Ambos procesadores fueron implementaciones superescalares. Como resultado, SPARC-V9 incluye soporte para una decodificación sencilla, instrucciones de longitud fija, y unidades de enteros y coma flotante separadas, cosas que llevan por si mismas a tecnologías superescalares. Ademas, para el sistema de memoria, ha sido añadido una sofisticada instrucción de memoria que permite a los programadores especificar la mínima sincronización necesaria para

No hay comentarios: