martes, 29 de abril de 2008
1.1.- INTRODUCCIÓN
En 1En 1987, Sun Microsystems anunció una arquitectura RISC abierta denominada SPARC (Scalable Processor ARChitecture, o en español Arquitectura de Procesador Escalable), la cual sería la base de futuros productos de la empresa.
Alrededor de media docena de distribuidores de SPARC obtuvieron la licencia para fabricar pastillas SPARC usando diferentes tecnologías (CMOS, ECL, GaAs, Arreglos de compuertas, VLSI, etc.). La intención fue alentar la competencia entre los distribuidores de pastillas, a fin de mejorar en el desempeño, reducir precios y hacer el intento de establecer la arquitectura SPARC como estándar en la industria.
La tecnología Sun, con respecto al SPARC, comenzó con una arquitectura de 32 bits, la cual es la que usan la mayoría de los procesadores fabricados actualmente, pero luego se expandió a una tecnología de 64 bits, lo cual significa el doble de tamaño de los registros y de bus de datos. Nosotros nos centraremos en la arquitectura inicial de Sun de 32 bits.
En primer lugar veremos como funciona el CPU SPARC, desde la longitud de sus buses hasta la codificación de sus instrucciones, haciendo referencia a sus registros y a la manera en que el Procesador accede a los mismos.
Luego estudiaremos cada una de sus instrucciones en detalle, y sus modos de direccionamiento, explicaremos como se distribuyen los bits en las mismas para los distintos modos de direccionar las instrucciones.
También veremos y daremos una breve explicación de cada una de las partes que compone al CPU SPARC.
1.1.1OBJETIVOS
Conocer la estructura y las partes de un CPU SPARC.
Comprender el funcionamiento del CPU SPARC.
Observar las diferencias que presenta el CPU SPARC, respecto con otros CPUs.
Conocer sus instrucciones y la estructura de las mismas
Observar las aplicaciones y usos del CPU SPARC.
Conocer las características mas relevantes de la arquitectura SPARC–V9
Conocer los soportes para procesadores superescalares de la arquitectura SPARC-V9
Conocer la tolerancia a fallas de la arquitectura
2.1.- SUN SPARC
SPARC (del inglés Scalable Processor ARChitecture) es una arquitectura RISC big-endian. Es decir, una arquitectura con un conjunto reducido de instrucciones.
ESPECIFICACIONES DE LOS MICROPROCESADORES SPARC
TABLA DE ESPECIFICACIONES DEL SUN ULTRA SPARCII
Core Frequency: 300 MHz |
Board Frequency: 100 MHz |
Clock Multiplier: 3.0 |
Data bus (ext.): 64 Bit |
Core Frequency: 300 MHz |
Board Frequency: 100 MHz |
Clock Multiplier: 3.0 |
Data bus (ext.): 64 Bit |
Address bus: 64 Bit |
Transistor: 5, 400,000 |
Circuit Size: 0.35 µ |
Voltage: 2.5 V |
Introduced: 1997 |
Manufactured: week 50/1999 |
Made in: USA |
L1 Cache: 16+16 KB |
L2 Cache: 4 MB ext. |
CPU Code: Blackbird |
Package Type: Ceramic |
Heat Spreader |
LGA-787 |
La empresa Sun Microsystems diseñó esta arquitectura y la licenció a otros fabricantes como Texas Instruments, Cypress Semiconductor, Fujitsu, LSI Logia entre otros.
SPARC es la primera arquitectura RISC abierta y como tal las especificaciones de diseño están publis, 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 de reales. La IU y la FPU pueden o no estar integradas en el mismo chip.
La arquitectura SPARC se ha definido con mucho cuidado para permitir la implantación de procesamiento en serie muy avanzado. Entre otros aspectos, define retardos en carga y almacenamiento, bifurcaciones, llamadas y retornos. La implantación típica tiene un procesamiento en serie de cuatro etapas (como se muestra en la siguiente figura). Durante el primer ciclo se extrae de la memoria la palabra de la instrucción; en el segundo se decodifica; durante el tercero se ejecuta; por último en el cuarto ciclo se escribe el resultado otra vez en la memoria.
Arquitectura Sparc de procesamiento en serie.
2.1.1.- PRINCIPALES CARACTERISTICAS
Su característica distintiva es utilizar ventanas de registros.
32 registros de enteros de 32 bits.
16 registros de punto flotante de 64 bits (para el caso de doble precisión) que se pueden utilizar como 32 registros de 32 bits (para precisión simple).
Modos de direccionamiento:
Inmediato, (constantes de 13 bits).
Directo, (offset de 13 bits).
Indirecto, (registro + offset de 13 bits o registro + registro).
Utiliza instrucciones retardadas (saltos, load y store).
Manejo de memoria:
Espacio virtual de 4 Gigabytes.
Unidad de manejo de memoria (MMU) que trabaja con páginas de tamaño configurable.
Otra característica importante de los procesadores SPARC es que son procesadores RISC (Computadora con reducido conjunto de instrucciones). Para que un procesador sea considerado RISC debe cumplir, entre otras cosas, que el tamaño de sus instrucciones no sea variable, y que en consecuencia estas se completen en un solo ciclo (entendiendo por ciclo la extracción de los operando de un registro, colocarlos en el bus, ejecutarlos en la ALU, y guardar el resultado en un registro).
2.1.2.- DESCRIPCIÓN DE SUS PARTES
Componentes
Un procesador SPARC comprende una Unidad de Enteros (UE), una Unidad de Punto Flotante (UPF) y un Co-Procesador opcional, cada uno de ellos con sus propios registros. Ésta organización permite una máxima coordinación entre la ejecución de instrucción de enteros, de punto flotante y de co-procesador. Todos los registros, con la posible excepción de los del co-procesador, tienen una longitud de 32 bits.
El procesador puede estar en uno de dos modos: usuario o supervisor. En el modo supervisor el procesador puede ejecutar cualquier instrucción, incluyendo aquellas privilegiadas (sólo-supervisor). En el modo de usuario, un intento de ejecutar una instrucción privilegiada causaría una trap (señal) al software supervisor.
Programas de tipo “Aplicación de usuario” son aquellos que se ejecutan mientras el procesador está en modo de usuario.
Diagrama de un procesador SPARC
A continuación se describen cada una de las partes que conforman a un procesador SPARC
Unidad de Enteros (UE)
La UE contiene los registros de propósito general y controla todas las operaciones del procesador. La UE ejecuta instrucciones aritméticas de enteros y computa direcciones de memoria para cargas y almacenamientos. También mantiene el contador de programa y controla la ejecución de instrucciones de la UPF y el CP. Una UE puede contener desde 40 hasta 520 registros r de propósito general de 32 bits cada uno. Esto corresponde a una agrupación de los registros en 8 registros r globales, más un stack circular de entre 2 y 32 sets de 26 registros cada uno, conocido como ventanas de registros.
Unidad de Punto Flotante (UPF)
La UPF tiene 32 registros de punto flotante de 32 bits cada uno. Para almacenar valores de doble precisión se utilizan 2 registros, y valores de cuádruple precisión ocupan un grupo de 4 registros adyacentes. En consecuencia, los registros de punto flotante pueden contener un máximo de 32 valores de simple precisión, 16 de doble precisión, u 8 de cuádruple precisión.
Las instrucciones de carga y almacenamiento en punto flotante son usadas para mover datos entre la UPF y la memoria. La dirección de memoria es calculada por la UE.
Co-Procesador (CP)
El Co-Procesador tiene su propio set de registros de normalmente 32 bits. Instrucciones de carga/almacenamiento del Co-Procesador son las que se usan para mover datos entre los registros del Co-Procesador y la memoria. Para cada instrucción de carga/almacenamiento de punto flotante, hay una instrucción de carga/almacenamiento del Co-Procesador análoga.
2.1.3.- CATEGORÍAS DE INSTRUCCIONES
La arquitectura SPARC tiene cerca de 50 instrucciones enteras, unas pocas más que el anterior diseño RISC, pero menos de la mitad del número de instrucciones enteras del 68000 de Motorola.
Las instrucciones de SPARC se pueden clasificar en cinco categorías:
LOAD y STORE (La única manera de acceder a la memoria). Estas instrucciones usan dos registros o un registro y una constante para calcular la dirección de memoria a direccionar.
Instrucciones Aritméticas/Lógicas/Shift. Ejecutan operaciones aritméticas, lógicas y operaciones de cambio. Estas instrucciones calculan el resultado si es una función de 2 operandos y guardan el resultado en un registro.
Operaciones del Coprocesador. La IU extrae las operaciones de punto flotante desde las instrucciones del bus de datos y los coloca en la cola para la FPU. La FPU ejecuta los cálculos de punto flotante con un número fijo en unidad aritmética de punto flotante, (el número es dependiente de la aplicación). Las operaciones de punto flotante son ejecutadas concurrentemente con las instrucciones de la IU y con otras operaciones de punto flotante cuando es necesario. La arquitectura SPARC también especifica una interfaz para la conexión de un coprocesador adicional.
Instrucciones de Control de Transferencia. Estas incluyen jumps, calls, traps y branches. El control de transferencia es retardado usualmente hasta después de la ejecución de la próxima instrucción, así el pipeline no es vaciado porque ocurre un control de tiempo. De este modo, los compiladores pueden ser optimizados por ramas retardadas.
Instrucciones de control de registros Read/Write. Estas instrucciones se incluyen para leer y grabar el contenido de varios registros de control. Generalmente la fuente o destino está implícito en la instrucción.
De este modo existen instrucciones para cargar y almacenar cantidades de 8, 16 ,32 y 64 bits, en los registros de 32 bits, usando en este último caso dos registros consecutivos.
Una diferencia de los procesadores CISC (Computadora con complejo conjunto de instrucciones) a los procesadores RISC es que una gran parte no poseen “stack”.
Dado que una de las características que se desea en un procesador es rapidez, debe tenerse en cuenta que las instrucciones que extraen sus operandos de los registros y almacenan los resultados también en ellos, se pueden manejar en un solo ciclo. Sin embargo, aquellas que cargan información desde la memoria o almacenan en ésta consumen demasiado tiempo. Es por ello que los procesadores RISC, incluyendo el SPARC, poseen una alta cantidad de registros internos de tal manera que las instrucciones ordinarias tienen operandos provenientes de los mismos
Suscribirse a:
Entradas (Atom)