Arquitectura UltraSPARC Sun Microsystems, Inc.

Anuncio
Arquitectura UltraSPARC
Sun Microsystems, Inc.
Introducción.
El crecimiento en las redes globales está transformando la naturaleza de la computación.
Hoy, la mayoría de las redes están dominadas por el flujo de pura información alfanumérica, con
sólo un fragmento pequeño dedicado al imaging, video, geometria, audio o datos de los nuevomedios de comunicación. En el futuro cercano, esta proporción se invertirá y la mayoría de los
computadores deberán estar optimos para rendir con eficiencia el procesamiento de ese tipo de
datos.
El crecimiento exponencial de nuevas aplicaciones de los medios de comunicación
necesitan de procesadores con más fuerza y los sistemas en que ellos residen se echan en la
espalda la responsabilidad por los gráficos de gran velocidad, 2-D y 3-D , imaging, procesos de
video, condensación de imagen y descompresión. Aunque algunas cosas son funcionamientos
típicos , en gran cantidad genera un diluvio de datos.
SPARC™ continúa siendo el abanderado procesador de Sun Microsystems con su
tecnología y su refinamiento continuo está claro de estos cambios y siempre con un compromiso a
la arquitectura en el diseño de procesadores.
En este trabajo de analizará la estructura de procesadores, desde el punto de vista de la
Arquitectura y Organización de Computadores vista este semestre, hechos por Sun Microsystem,
Inc. con su linea UltraSPARC.
Sun Microsystems, Inc. enfoca sus productos y estrategias al mercado de las estaciones
de trabajo y grandes servidores, este mercado se ha ido paulatinamente acercando al de las
máquinas de escritorio gracias a que estas últimas máquinas han aumentado su desempeño en
forma dramática en corto plazo, pero en este mercado también existen particularidades, en este
caso el hecho más relevante tiene que ver con el sistema operativo, ya que, en este mundo se
utiliza en forma masiva diferentes sabores de UNIX.
Sun Microsystems, Inc. nos presenta su camino futuro en cuanto a la familia de
procesadores UltraSPARC. En el futuro de las frecuencias de reloj de los procesadores van ha
pasar con creces la marca de los 1.0 GHz, en particular se espera que el procesador UltraSPARC
IV alcance los 1.0 GHz para el año 2.000 y el procesador UltraSPARC V alcance los 1.5 GHz para
el 2002.
La estrategia de Sun durante el desarrollo de esta línea de procesadores SPARC ha sido
siempre de estar avanzando y logrando mejoras en el desempeño que generan mejores
proyecciones para la línea de procesadores. Esta estrategia conlleva riesgos, por cuanto, se
apuesta a la confiabilidad de los usuarios, en todo caso, todos los avances mantienen la
compatibilidad con los precedentes.
Sun ha divido su estrategia de desarrollo en tres áreas:
i)
Diseño de procesadores.
ii)
Tecnología de procesos
iii)
Arquitectura de conjunto de instrucciones .
Pero sólo una a la vez es atendida, así las generaciones impares (UltraSPARC I, III, V)
desarrollan nuevas arquitecturas de pipeline, en cambio las generaciones pares (UltraSPARC II,
IV) desarrollan el área de tecnología de procesos. De esta manera Sun mantiene 100% de
compatibilidad de los binarios, lo cual protege a los consumidores de transiciones caras en cuanto
a sistemas operativos y aplicaciones.
Sun ofrece tecnología a un amplio rango de soluciones, para afrontar este desafío se
desarrollan tres series de procesadores:
• Serie S (UltraSPARC I, II, III), especializada en servidores y estaciones de trabajo
escalables.
• Serie I (UltraSPARC IIi), integra muchas funciones en un solo procesador, para entregar
una solución de bajo costo.
• Serie E (microSPARC, ultraSPARC), dedicada a soluciones integras.
Para la fabricación de los procesadores Sun tiene un arreglo con Texas Instrumen ts,
según el cual esta provee de facilidades para la fabricación a cambio de usar parte de la
tecnología.
Dentro de las visiones de procesadores veremos el procesador UltraSPARC, luego un
vistazo UltraSPARC-II y profundamente el procesador UltraSPARC-IIi.
La arquitectura de SPARC™.
•
Performance y Economía: Con un set de instrucciones simplificado, los procesadores SPARC
logran un gran número de instrucciones por segundo con muy pocos transistores. La
simplicidad de diseño es la base de SPARC™, permitiendo ciclos de desarrollo más cortos,
tamaños pequeños y un creciente performance.
•
Escalabilidad: SPARC es escalable dentro de una amplia gamma de tecnologías en sus
semiconductores, implementaciones en el chip y configuraciones de sus sistemas. Un beneficio
de SPARC es la flexible integración de su cache, manejo de memoria y unidades de punto
flotante, creando procesadores con precio/performance desde laptops hasta
supercomputadores.
•
Arquitectura abierta: Los usuarios involuntariamente no quieren pagar los costos de los dueños
de estas tecnologías. Comprendiendo esto, SUN Microsystems, Inc. Fue el pionero en crear el
concepto de “arquitectura abierta” a inicios de 1980, desvelando un programa de tecnologías
más importantes que se comercializan actualmente. Sun cree que utilizando básicas
tecnologías standards, se desarrollarán más tecnologías manteniendo bajos costos. Otro
elemento importante de SPARC es la compatibilidad con múltiples tecnologías de múltiples
vendedores. Hoy, la unidad Sun's SPARC Technology Business (STB) autoriza
especificaciones, planes, máscaras, y componentes de los chips para SPARC.
•
Grandes herramientas de desarrollo y despliegue de ambientes: El ambiente SOLARIS™,
aplicación gráfica de SUN para el OS UNIX ha estado funcionando desde hace décadas con
muchas horas de trabajo corriendo aplicaciones sobre sistemas basados en SPARC, el tiempo
que se ha probado dá seguridad, confianza, un producto de gran refinación que corre críticas
aplicaciones y miles de transacciones y negocios.
Un completo set de herramientas de desarrollo de SUNSOFT™, SMCC, y otros están
disponibles para el desarrollo de software y desarrollo de sistemas SPARC. Los productos
incluyen optimización, compiladores cruzados, depuradores, emuladores de sistemas y
sistemas de manejo de códigos.
La arquitectura de SPARC V-9.
SPARC Versión 9 (SPARC-V9) es el cambio más significante a la arquitectura de SPARC
desde que su lanzamiento en 1987. Diseñado para permanecer bien competitivo en el próximo
siglo reforzando el SPARC-V8, SPARC-V9 incorpora varios perfeccionamientos importantes:
•
•
•
•
•
•
•
Direccionamiento de 64-bits y 64-bits para datos enteros.
Mejor desempeño del sistema.
Soporte para la optimización de compiladores y alta performance con sistemas operativos.
Implementación Superscalar.
Tolerancia en los fallos.
Rápido manejo de trabas y cambiante contexto.
Grande y pequeño “endian” ,byte de la clasificación.
El procesador UltraSPARC-I.
Una de las primeras aplicaciones de la arquitectura SPARC-V9, UltraSPARC-I mantiene la
compatibilidad de 32-bits del SPARC-V8 asegurando la compatibilidad binaria con las aplicaciones
existentes. UltraSPARC-I no solo provee de 64-bit para datos y 64-bits para direccionamiento, sino
que agrega varios otros rasgos para mejorar el sistema operativo y el funcionamiento de la
aplicación, entre ellos están:
•
•
•
•
•
•
•
•
•
•
9 fases de pipeline, puede emitir 4 instrucciones por ciclo.
Mejor administración del cache y reducción en la latencia de memoria.
16K de datos y 16K de instrucciones en el chip, permitiendo hasta 4MB de cache externo.
Integra soporte para multi-procesador con una baja latencia a los datos compartidos.
Gráficos y soporte de imágenes en el chip.
Implementado usando 0.5micron, 4 capas de metal con tecnología CMOS operando con
3.3voltios.
Empaquetado usando un plástico de 521-pins(BGA).
Alto performance en ambos casos: SPECint>250 y SPECfp>350 a 167 Mhz.
Alta velocidad en la transferencia de memoria (1.3GB/seg).
Interconección entre los implementos del nuevo Ultra Port Architecture (UPA).
Estrategia del microprocesador SPARC™.
La arquitectura de SPARCTM es una especificación abierta diseñada para fomentr una
ancha disponibilidad. Desarrollado por el Sun Microsystems™ en el medio años ochenta, la
arquitectura de SPARC se transfirió a SPARC International con el fin de aumentar la evolución de
SPARC y promover los sistemas abiertos. Volviéndo a la definición de SPARC como cuerpo de una
industria, Sun Microsystems ha asegurado que SPARC es una norma abierta, no controlada por su
diseñador de manera estricta.
SPARC International pone hardware y " normas de compatibilidad de software, y fomenta
a los vendedores independientes de software (ISVs) para desarrollar para ello colocando siempre
en frente al SPARC International "SPARC-compilant" la norma de la aplicación standard. Para
asegurar que los productos binarios o programas de SPARC sean compatible, SPARC
International estableció la SPARC Compilance Definition (SCD), una especificación de software
común del sistema e interfaces de hardware.
La disponibilidad abierta.
SUN cree que la disponibilidad abierta es crítica para el éxito tecnológico. La clave de esta
estrategia es que múltiples vendedores y aplicaciones para generarán competencia e innovación.
Juntas, estas metodologías aumentan la disponibilidad abierta de especificaciones e
implementaciones o aplicaciones.
SPARC™ Performance Escalable.
La arquitectura de SPARC habilita una única combinación de semiconductor y diseño de
escalabilidad. Con sus capacidades de multiprocesamiento, un gran bus que soporta un gran
ancho de banda, diseño de una ventana de registros, el diseño de SPARC permite las aplicaciones
a través de un rango de niveles que considera siempre precio/performance.
Diseño de un procesador y multiples procesadores.
El diseño de SPARC asume linealmente un direccionamiento virtual de 32-bits (64-bits en
el SPARC-V9) para programas de aplicación de usuarios y un flexible bus de datos para la
optimización en la arquitectura del sistema. En la figura 2-2 se muestra el esquema conceptual del
diagrama de bloques.
SPARC define instrucciones, estructuras de registros y tipos de datos enteros (IU).Las
instrucciones son simples, la mayoría tiene un solo ciclo de ejecución. Enteros y puntos flotantes
puedes ser secuencialmente ejecutados con el apoyo de una arquitectura para programas
secuenciales. Las unidades de enteros usan un modelo de una ventana de registro. Aunque la
estructura de los registros está definida por SPARC, los fabricantes de componentes tienen la
libertad de llevar a cabo un número óptimo de ventanas de registros para reunir los requisitos de
precio/performance para un mercado en particular.
SPARC define instrucciones, estructuras de registros y tipos de datos de punto flotante.
Con 32-bits de registros, el SPARC V-8 FPU puede tener registro para la precision de la siguiente
manera :32 registros para single, 16 para double o 8 para quad. El SPARC de punto flotante puede
cargar y almacenar operadores double que mejoran el funcionamiento de programas con double o
quad precisión. SPARC V-9 dobla el numero de registros y agrega carga (load) para punto flotante
y almacenamiento(store) para operaciones quad.
Mientras la especificación de SPARC define una aplicación del uniprocessor, las
instrucciones de soporte o apoyo lo hacen escalable a sistemas de multiprocesador. Programas
que corren en una aplicación de SPARC ejecutan sólo unos poco mas de instrucciones que en un
chip de CISC y tiene mucho menos referencias de memoria de datos. Particularmente importante
para las aplicaciones de multiprocesos es la instrucción atómica swap y en SPARC-V9, una
comparación atómica y operación swap.
Consideraciones de Cache.
Los cache mejoran su actuación proporcionando un acceso más rápido a los datos porque
se exigen menos ciclos para acceder a la cache en un acceso de memoria. Algunas arquitecturas
de cache normalmente usadas, individualmente o en combinación incluyen un set asociativo datos
separados e instrucciones de cache y un esquema de mapeo directo de cache.
La arquitectura SPARC puede implementar o unificar una Harvard cache organization. La
Harvard cache organization, utiliza una instrucción independiente(I-cache) y el cache de datos (Dcache), el cual podría soportar cada dato pedido sobre buses de datos independientes al mismo
tiempo. En cualquier ciclo de reloj, el procesador puede sacar una instrucción desde el I-cache y el
D-cache.
Capacidades de manejo de memoria.
Los procesadores SPARC acceden a memoria principal a través de un acceso de cache
virtual. La memoria virtual es un método por el cual las aplicaciones son escritas asumiendo un
completo direccionamiento de 32-bits de espacio (64-bit en SPARC V-9). Los sistemas operativos,
como Solaris, trabajan con las capacidades de memoria virtuales de SPARC permitiendo el
espacio de dirección virtual a un total mayor que es físicamente el que está presente en todo
momento.
Arquitectura de UltraSPARC.
Filosofia del diseño de UltraSPARC.
La proporción de ejecución de “Compute-Bound” es un producto de tres factores: el
número de instrucciones copiladas y generadas en un trazo de ejecución (NI), la proporción
sostenida de instrucciones completada por ciclo (IPC), y la tasa de reloj ha sido posible por la
tecnología del circuito integrada. [Patterson 1989].
Alto performance requiere adelantos en los tres frentes anteriores. Los planes benefician
de los mejores copiladores y las mejoras en las tasas de reloj . Sin embargo, los sistemas
rentables no se pueden confiar exclusivamente, de altas tasas de reloj. Para beneficiar las
economías a escala, deben ser empeladas tecnologías de semiconductores principales. Los
sistemas de UltraSPARC proporciona un alto performance a tasas de reloj razonables
perfeccionando el IPC. Este acercamiento presenta los desafíos del diseño por manejar el pipeline
del procesador y la jerarquía de memoria. El tiempo promedio de acceso de memoria debe
reducirse y el número de instrucciones entregadas por ciclo debe subir, performance creciente sin
dejar de lado la complejidad o el diseño del procesador.
Diseño de criterio y diseño de opciones.
Los conocidos cuellos de botella generados por múltiples instrucciones incluyen las
dependencias de control, dependencias de los datos, el número de puertos a los registros del
procesador, el número de puertos a la jerarquía de memoria, y el número de pipelines de punto
flotante. La investigación comprensiva de SUN indica que muchas aplicaciones se pueden
beneficiar en un procesador que emite múltiples instrucciones por ciclo. La tabla 3-1 ilustra una
mezcla de la instrucción de enteros y punto flotante.
Integer
Applicaton
Instruction Class
Integer Arithmetic
Floating-Point Arithmetic
Loads
Stores
Branches
50%
0%
17%
8%
25%
Floating-Point
Application
25%
30%
25%
15%
5%
Tabla 3-1 Típicas instrucciones para aplicacionesde enteros y punto flotante
Esta mezcla representa muchos desafíos para un diseño superscalar que ejecuta el código
a la proporción máxima. Las consideraciones como el procesador global y el costo del sistema,
mientras tanto se mantienen un razonable performance de punto flotante, tamaños de cache y
tiempo a la venta afectan al costo y al performance del chip. Con UltraSPARC-I, SUN ha intentado
mejorar el performance en áreas dónde la economía no se vería afectada. Para investigar estos
desafíos esperados, se diseñaron algunas decisiones que definían las características de
UltraSPARC-I:
•
•
•
•
•
•
Cache en el chip.
Una ancha instrucción fetch (128-bits).
Dinámica predicción del Branch.
Optimización de funcionamiento del pipeline.
Acceso a memoria de punto flotante.
Escritura del buffer en la realización de Store.
Procesador UltraSPARC-I.
UltraSPARC-I es el más nuevo miembro de la familia SUN de CPUs SPARC. Diseñado para
apoyar ambos sistemas: uni y multi-procesador. UltraSPARC-I es ideal para el aplicaciones de
redes con gran poder, grandes capacidades en multimedios, y con un throughput de datos
perfeccionado. El procesador más integrado hasta la fecha de la familia SPARC. UltraSPARC-I
incorporó algunos rasgos claves:
•
•
•
•
•
•
•
•
•
•
Alta performance, entregando más de 250 SPECint92 y 350 SPECfp92 a 167 MHz.
Construido usando 0.5 micra CMOS, innovador proceso de la tecnología.
Opración a bajo costo (Energy Star Compilance).
Un diseño totalmente estático, permitiendo las economías de poder significativas.
9 fases de pipeline, emitiendo a 4 instrucciones por ciclo.
La predicción dinámica del Branch.
Instrucciones en el chip y D-caches.
Manejo de memoria en el chip(MMU).
Soporte de gráficos e imágenes en el chip.
Implementación de una nueva arquitectura del bus UPA.
El procesador UltraSPARC-I está altamente integrado, SPARC-V9 consiste en un Prefetch and
Dispatch Unit (Unidad de la Expedición), una Integer Execution Unit (Unidad de Ejecución de
enteros), una Floating Point(Unidad de punto flotante), una Memory Management Unit (Unidad de
Dirección de Memoria), una Load and Store Unit( Carga y almacenaje), una externel Cache
Unit(Unidad de cache Externa), una Graphics Unit(Unidad de Gráficos) y una Instruction and Data
Caches( Instrucción y Datos de cache). Ver figura 3-1.
Figura 3-1: Diagrama Funcional de Bloques del procesador UltraSPARC-I
Prefetch and Dispatch Unit.
El UltraSPARC-I Prefetch and Dispatch Unit (PDU) asegura que todas las unidades de
ejecución permanecen ocupadas sacando las instrucciones antes de que se les necesite en el
pipeline. Las instrucciones pueden ser prefetched de todos los niveles de jerarquía de memoria,
incluso el I-cache, E-cache y la memoria principal. El PDU se diseñó con varios rasgos para apoyar
los requisitos del alto performance de UltraSPARC-I:
•
•
•
•
•
Un Buffer prefetch de 12-entradas prefetching, que previene los encierros en el pipeline.
Un I-cache de 16KB asociativo de 2 vías.
Se pre-decodifican instrucciones en el I-cache.
9 fases en el pipeline que minimizan la latencia.
Una predicción dinámica del Branch para permitir la exactitud de la predicción mayor.
Integer Execution Unit.
La Integer Execution Unit(IEU) se diseña para aumentar al máximo el performance
mientras se mantiene llena la compatibilidad del software, minimizando al procesador los cambios
arquitectónicos para organizar el software. El UltraSPARC-I Integer Exetuction Unit incorpora
varios rasgos importantes:
•
•
•
•
2 ALUs para cálculos aritméticos, cálculos lógicos, y operaciones de cambio.
8 archivos de registros ventana.
Resultados desviados.
Una completa unidad que permite un pipeline de 9 fases con desviaciones mínimas.
Floating Point Unit.
El UltraSPARC-I floating-point unit es una unidad en pipeline del procesador para punto
flotante que tiene la arquitectura SPARC V-9. Su plan IEEE-compilant consiste en cinco unidades
funcionales separadas para dar soporte a puntos flotantes y multimedia. La separación de
unidades de ejecución permite al UltraSPARC-I emitir y ejecutar dos instrucciones de punto flotante
por ciclo. La fuente y resultados de los datos son guardados en un archivo de registro de 32entrada. La mayoría de las instrucciones de punto flotante tienen una salida en de un ciclo, una
latencia de tres ciclos, y son totalmente manejados en el pipeline. El FPU puede operar a la vez en
número de precisión normal (single) ( 32-bit) y en precisión doble (double) ( 64-bit), normalizados o
desnormalizados en el hardware, y precisión cuádruple (quad) (128-bit) operando en el software.
Los análisis estadísticos muestran que en promedio, el 94% de instrucciones de FPU
completarán dentro del ciclo normal. La tabla 3-2 muestra los valores esperados de UltraSPARC-I
para el performance del FPU.
Throughput
(Cycles)
Operation
Add (Single Precision)
Add (Double Precision)
Multiply (Single Precision)
Multiply (Double Precision)
Divide (Single Precision)
Divide (Double Precision)
Square Root
(Single Precision)
Square Root
(Double Precision)
Latency
(Cycles)
1
1
1
1
12
22
3
3
3
3
12
22
12
12
22
22
Tabla 3-2 muestra los tiempos de ejecución del FPU de UltraSPARC-I asumiendo resultados de puntos flotantes normales
Memory Management Unit.
El performance del Superscalar sólo puede mantenerse si el IEU puede proporcionarse con
las instrucciones y datos apropiados (trabajo realizado por la jerarquía de memoria). El
UltraSPARC-I Memory Management Unit (MMU) proporciona la funcionalidad de una referencia
MMU y un IOMMU, ocupándose de todas las operaciones de memoria así como el manejo de
datos almacenados y memoria
.
En resumen, el MMU realiza la función de manejo entre I/O, D-cache, I-cache, y
referencias de TLB a la memoria. En esencia el MMU lleva a cabo la función de un "policía de
tráfico", controlando y priorizando el acceso a la memoria principal. En cualquier momento dado,
una disputa por el acceso de memoria puede ocurrir entre un acceso I/O que involucra el bus así
como los accesos internos pedidos por el I-cachee, D-cachee, y referencias de TLB.
La figura 3-3 muestra las principales funciones del manejo de memoria
Memory Interface Unit.
El UltraSparc-I emplea una Memory Interface Unit. Este subsistema de I/O maneja los recursos
locales entre la entrada y la salida, incluyendo el procesador, memoria principal, control de espacio
y todos los recursos externos del sistema. Específicamente, todas las transacciones al sistema,
como los misses (fallas) del E-cache, interrupciones, etc. manejados por el MIU.
Cache Architecture.
La mayoría de microprocesadores de alto performance usan cache para reducir el tráfico
en los buses y un aumento de productividad del sistema. La elección cuando se actualiza o se
invalidan copias de bloque modificados es llamada protocolo de consistencia de cache (cache
consistency protocol). Éstos protocolos de consistencia aseguran que la copia de datos
permanezcan consistentes con las copias en la memoria principal. La consistencia puede apoyarse
por write-invalide, write-through, y competitvos algoritmos de cache. UltraSPARC-I emplea grandes
separadas instrucciones y write-through en los D-caches para asegurar un diseño competitivo.
Referencia: SUN url:
http://www.sun.com/microelectronics/databook/datasheets.html
http://www.sun.com/microelectronics/whitepapers/UltraSPARCtechnology/ultra_arch_contents.html
Procesador UltraSPARC-II
El procesador UltraSPARC II, que pertenece a la segunda generación de la familia
UltraSPARC, tiene gran escalabilidad y esta pensado para mantener estaciones de trabajo y
llevarlas a mejoras importantes en sus desempeños.
En la figura 1 se muestra el diagrama de bloques de éste procesador.
Figura 1. Diagrama de bloques del Procesador UltraSPARC-II
El procesador soporta múltiples L2 caches y permite gran desempeño en sistemas con
multiprocesamiento. Sus principales características son:
•
•
•
•
•
•
Implementación completa de 64-bit con arquitectura V9.
Escalabilidad (rango de frecuencias: 250-480 MHz; cache L2 soporta: 256KB-16 Mb).
Instrucciones de aceleración multimedia VIS.
Verificación y corrección de errores (ECC).
Tecnología de .25 micrones.
Arquitectura Superscalar/Superpipelined.
Finalmente, se estima un desempeño asumiendo:
UltraSPARC-II 250Mhz with UPD-II "111" Mode, SRAMís 4ns, 2Meg ECache, SW Prefetch support,
Clock Ratio of 3:1
• 350-420 SPECInt92.
• 550-660 SPECFp92.
Referencia: SPARC url:
http://www.sun.com/microelectronics/roadmap/;$sessionid$V3J13ZAACPFN1AMUVFZE45UBSSU
XE
Procesador UltraSPARC-IIi
La misión central del UltraSPARC-IIi es optimizar el precio/rendimiento y facilitar el uso
para el diseñador de sistemas. Dicho de otro modo, la CPU debe entregar rendimiento con un
impacto mínimo sobre el costo total del sistema y también disponer de un diseño simplificado del
sistema.
Una estrategia importante para disponer de sistemas basados en SPARC de bajo costo
consiste en influenciar la economía de la industria de los PC's con el uso de bus PCI I/O estándar.
La integración ataca al costo total del sistema, pero demasiada integración o un tipo
erróneo de funcionalidad puede ser contraproducente. El rendimiento absoluto es obviamente
importante, pero en UltraSPARC-IIi se intenta conseguir el punto más alto de la curva
costo/rendimiento.
El UltraSPARC-IIi es un sistema con los beneficios de rendimiento y ancho de banda del
UltraSPARC además de disponer de un costo-efectivo en el uso de los componentes del sistema.
Soporta plenamente el sistema operativo Sun Solaris, y todo el software UltraSPARC es
compatible. UltraSPARC-IIi es una máquina SPARC V9 superescalar de 64 bit, dirigida para el uso
de sistemas con un procesador. UltraSPARC-IIi es un ejemplo de un sistema de alto rendimiento
en un chip.
En resumen, este procesador usa una significante cantidad de integración y otras técnicas
para permitir la construcción de sistemas computacionales SPARC de costo-eficientes que
conserven un excelente rendimiento.
El resultado es una muy buena plataforma de costo-eficientes para escritorio, servidor, y de
alto rendimiento en redes, telecomunicaciones, y sistemas de representaciones empotrados.
Procesador UltraSPARC-IIi
Microarquitectura
El núcleo de la CPU es una máquina SPARC V9 con extensión VIS. VIS ofrece
excelente flexibilidad y aceleración de gráficos en 2D y 3D, procesamiento de imágenes,
compresión y descompresión en tiempo real, y aplicaciones de efectos de video.
Para el desarrollo de la UltraSPARC-IIi se influenció el núcleo de la UltraSPARC-II y se
modificó la interfaz y controlador del caché de segundo nivel (L2), la unidad de lectura y
escritura, y otros cambios necesarios para acomodarlo a los requerimientos de muchas de
las nuevas funciones del sistema integrado. El núcleo tiene un espacio de direcciones
virtuales de 44 bits y un espacio de direcciones físico de 41 bits con punteros de
direcciones de 64 bits. Hay 6 pipelines: dos para enteros, dos para gráficos y punto
flotante, uno para load/store y uno para branch.
•
Procesador pipeline.
El procesador principal tiene un pipeline de 9 etapas. Una instrucción se considera
terminada apenas se llega directamente a la etapa de escritura, donde los registros de
enteros y punto flotante son actualizados. En otras palabras, el estado del procesador
es actualizado apenas finalizada la etapa de escritura.
•
Cachés L1.
El UltraSPARC-IIi usa separadamente cachés de 1° nivel para instrucciones y
datos. Los 16 Kb de caché para instrucciones es asociativa de 2-vías con bloques de
32 bytes. Los 16 KB de caché para datos de escritura directa es nonallocating (no
asignada) y mapeada directamente con 2 subbloques por línea de 16 bytes.
•
Unidad de control de caché externo L2 (ECU).
Aunque su principal rol es manejar la pérdida de eficiencia de los caché de datos
e instrucciones, la ECU es la unidad central que controla los cachés externos L2. La
ECU maneja todos los accesos directamente a memoria y mantiene la coherencia de
datos entre la caché L2 y la memoria principal.
•
Unidad de control de memoria (MCU).
Una de las nuevas y mayores funciones integradas en el UltraSPARC-IIi es la
MCU, la cual maneja todas las transacciones hacia la interfaz del bus UPA64S y la
DRAM. Ambos accesos a estos espacios ocurren en forma multiplexada con un bus de
datos simple de 8 bytes (plus ECC). Sin embargo, existen buses de direcciones
separados para la UPA64S y la DRAM.
•
Unidad Load/Store (LSU).
La LSU genera direcciones virtuales de todos los loads y stores para accesar
la caché de datos. El LSU soporta un load o store por ciclo.
•
Unidad de prefetch y dispatch (PDU).
La PDU trae las instrucciones antes que sean necesarias en el pipeline y tal que,
la unidad de instrucciones no quede vacía o muera de hambre.
•
Unidad de ejecución de enteros (IEU).
La IEU contiene dos ALU's completas; un multiciclo, un multiplicador de enteros
no-pipeline y multiciclo, un divisor de enteros no-pipeline, y ocho ventanas de registros.
Dos instrucciones de enteros pueden ejecutarse en ciclos paralelos, con lo que más de
una instrucción de enteros se completa en un solo ciclo del reloj.
•
Unidad de punto flotante y gráfica (FGU).
La separación de la unidad de ejecución en la FGU le permite a la CPU ejecutar
dos instrucciones de punto flotante por cada ciclo, o una de punto flotante y una de
gráfica cada ciclo. Las instrucciones de punto flotante, tanto las fuentes como los
destinos, son almacenadas en un arreglo de 32 entradas de registros de punto flotante
con doble precisión.
•
Módulo de bus PCI (PBM).
La PBM interfiere la CPU directamente con un bus PCI de 32 bits que es
compatible con las especificaciones PCI.
•
Unidad de administración de memoria de I/O (IOM).
La IOM traduce una dirección PCI de I/O de 32 bits a una dirección física de 41
bits, del mismo modo, dirige la protección de memoria para I/O.
Diagrama de Bloques de la microarquitectura.
Diagrama de Bloques de la microarquitectura
Las 9 etapas del PIPELINE
1) Fetch. Hasta cuatro instrucciones son leídas desde la caché de instrucciones.
2) Decode. Después de la etapa fetch, las instrucciones son predecodificadas y
entonces insertadas en el buffer de instrucciones.
3) Group. La tarea principal aquí es ensamblar un grupo de hasta cuatro instrucciones
y todas ellas son despachadas en un solo ciclo. De este grupo de cuatro, dos
pueden ser de enteros y dos pueden ser de punto flotante o gráficas. El archivo de
registro de enteros es accesado en esta etapa.
4) Execute. Las dos ALU's de enteros procesan datos desde el archivo de registro de
enteros. Los resultados son computados y, vía bypassing, se ponen a disposición
de otras instrucciones dependientes en el siguiente ciclo. En esta etapa también se
calcula las direcciones virtuales para las operaciones de memoria, en paralelo con
la computación de la ALU. En cuanto a punto flotante y gráficas, el archivo de
registro de punto flotante es accesado durante esta etapa.
5) Cache. La dirección virtual de las operaciones de memoria calculadas en la etapa
de execute es enviada al tag de la RAM para determinar si el acceso (load o store)
es un acierto o desacierto en el caché de datos. En forma paralela, la dirección
virtual es también enviada a la unidad de administración de memoria de datos
(DMMU) para ser traducidas en un dirección física. Las operaciones ALU de la etapa
execute generan códigos de condiciones en esta etapa. Estos códigos son enviados
a la unidad de prefecth y dispatch (PDU), el cual chequea si un salto condicional en
el grupo fue correctamente predecido. En caso de una mala predicción, las
instrucciones en el pipeline son limpiadas, y las instrucciones correctas son traídas.
Las instrucciones de punto flotante y gráficas comienzan su ejecución durante la
etapa X1.
6) N1. Un caché de dato acertado o errado es determinado en esta etapa. Si un load
erra un caché de dato, entra al load buffer. La dirección física de un store es
enviada al store buffer en esta etapa.
7) N2. El pipe de enteros espera el pipe de punto flotante. La mayoría de las
instrucciones de punto flotante y gráficas finalizan su ejecución durante esta etapa.
Después de N2, los datos pueden ser desviados a otras etapas.
8) N3. Los bloqueos son resueltos en esta etapa.
9) Write. En esta etapa todos los resultados son escritos en los archivos de registros
de la arquitectura (enteros y punto flotante). Una vez completada esta etapa, las
instrucciones son consideradas terminadas
Esta figura representa las 9 etapas del PIPELINE para el procesador UltraSPARC-Iii
Implementación.
El UltraSPARC-IIi es fabricado en un proceso Texas Instruments Epic 4-GS2.
Este proceso CMOS de 0.25 micrones (polisilicona) tiene cinco capas metálicas. El
núcleo del procesador opera a 2.6 V, mientras la entrada/salida es una mezcla entre
2.6 V y 3.3 V. Los 3.3 V es un requerimiento de la especificación del bus PCI.
El nivel más alto del diseño consta de 36 bloques de capas (donde un bloque de
capa puede actuar como un cluster por sí mismo; la FGU por ejemplo, se cuenta como
un bloque), 35 canales, y sobre7300 redes.
Para disminuir el sesgo del reloj a nivel del sistema, se colocaron dos loops de
fase bloqueada en la matriz, uno para soportar el reloj del núcleo de la CPU, y el otro,
la PCI. Para minimizar el retardo de la comunicación interna entre la CPU y el reloj de
la PCI, el reloj interno de la PCI corre dos veces más rápido que el reloj del bus PCI.
El UltraSPARC-IIi esta empaquetado en un avanzado chip (tipo flip) de
37.5x37.5 mm, que es una grilla de esferas pláticas (PBGA) con un total de 587
esferas. El paquete consiste de una superficie de circuito laminar y una cubrimiento
metálico para proteger el chip y para disipar el calor mientras el procesado está en
operación.
Sistema.
El UltraSPARC-IIi reside en un módulo con el caché L2 y lógica para generar la
CPU, PCI, y los relojes UPA64S. En este aspecto, el módulo esta insertado en la tarjeta
madre del sistema. El uso de módulos permite fáciles upgrades para procesadores más
rápidos que estén disponibles.
La figura 2 muestra un ejemplo de un sistema basado en el UltraSPARC-IIi. Este
sistema incluye un chip APB (Puente PCI Avanzado), el cual se diseño
concurrentemente con el proyecto UltraSPARC-IIi.
Los bus de 32 bits/66 MHz/3.3 V conecta directamente tanto al bus PCI físico
como al UltraSPARC-IIi. El APB también tiene dos buses PCI secundarios
completamente independientes, los cuales son de 32 bits/33 MHz y 5 V/3.3V. Cada
uno de estos bus secundarios pueden soportar hasta cuatro PCI maestros.
figura 2: ejemplo de un sistema basado en el UltraSPARC-IIi
Especificaciones.
•
Arquitectura SPARC V9 / Diseño Monoprocesador.
•
Reloj del Procesador de 270/300/333 MHz.
•
Compatibilidad Binaria con todo el código de aplicaciones SPARC.
•
Set de instrucciones VIS (V9).
•
Diseño SuperEscalar de 4-vías.
•
Arquitectura 64 bits.
•
Punteros de direcciones de 64 bits.
•
Tamaño del Caché Externo: 256 KB - 2 MB.
•
Velocidad del Caché Externo: 135-167 MHz.
•
Configuraciones DRAM: 16 MB - 1 GB.
•
Bus de Datos DRAM de 144 bit con 8 bit ECC para cada 64 bits de datos.
•
Caché de Datos Non-blocking de 16 KB.
•
Caché de Instrucciones de 16 KB.
•
Controlador de Caché de 2° nivel integrado soporta hasta 2 MB de SRAM
sincronizada.
•
Subsistema de Memoria EDO DRAM de 400 MB/seg.
•
Instrucciones Load/Store de bloques de 64 bytes Soporta interfaz esclava de 800
MB/seg UPA64s de 64 bits para subsistemas gráficos o similares.
•
Caché coherente PCI DMA, con su propio TLB para proveer mapeo y protección.
•
Suministro de poder es 2.5V en el núcleo y 3.3V en I/O.
•
Disponible en módulos integrados de 256, 512 y 2 MB .
Rendimiento estimado.
•
Rendimiento del Sistema a 333 MHz con 2 MB de Caché Externo:
SpecInt95: 14.2
SpecFP95: 16.9
•
Rendimiento del VIS es 3 a 7 veces el rendimiento de un procesador tradicional
•
Rendimiento de Ancho de Banda:
PCI bus DMA:
PCI bus PIO:
UPA64:
Memoria lectura/escritura:
150 MB/seg @ 300MHz núcleo
200 MB/seg @ 300MHz núcleo
800 MB/seg @ 300MHz núcleo
400 MB/seg @ 300MHz núcleo
Diagrama de Bloques del Procesador UltraSPARC-IIi
Diagrama de Bloques del Procesador UltraSPARC
Referencias: SUN url:
http://www.sun.com/microelectronics/UltraSPARC-IIi/
http://www.sun.com/microelectronics/UltraSPARC-II/
Descargar