El SPARC64 V ( Zeus ) es un microprocesador SPARC V9 diseñado por Fujitsu . [1] El SPARC64 V fue la base de una serie de procesadores sucesivos diseñados para servidores y, más tarde, supercomputadoras.
Las series de servidores son SPARC64 V+, VI, VI+, VII, VII+, X, X+ y XII. El SPARC64 VI y sus sucesores hasta el VII+ se utilizaron en los servidores SPARC Enterprise M-Series de Fujitsu y Sun (posteriormente Oracle ) . Además de en servidores, una versión del SPARC64 VII también se utilizó en la supercomputadora Fujitsu FX1 disponible comercialmente. A partir de octubre de 2017, el SPARC64 XII es el procesador de servidor más reciente y se utiliza en los servidores Fujitsu y Oracle M12.
La serie de supercomputadoras se basó en el SPARC64 VII y son las SPARC64 VIIfx, IXfx y XIfx. El SPARC64 VIIIfx se utilizó en la computadora K y el SPARC64 IXfx en la PRIMEHPC FX10 disponible comercialmente . A partir de julio de 2016, el SPARC64 XIfx es el procesador de supercomputadora más reciente y se utiliza en la supercomputadora Fujitsu PRIMEHPC FX100.
A finales de los años 1990, HAL Computer Systems , una subsidiaria de Fujitsu, estaba diseñando un sucesor del SPARC64 GP como SPARC64 V. Anunciado por primera vez en el Microprocessor Forum de 1999, el HAL SPARC64 V habría operado a 1 GHz y habría tenido una amplia organización superescalar con superespeculación , un caché de seguimiento de instrucciones L1 , un caché de datos L1 pequeño pero muy rápido de 8 KB y cachés L2 separados para instrucciones y datos. Fue diseñado en el proceso CS85 de Fujitsu, un proceso CMOS de 0,17 μm con seis niveles de interconexión de cobre; y habría consistido en 65 millones de transistores en una matriz de 380 mm2 . Originalmente programado para un lanzamiento a fines de 2001 en servidores Fujitsu GranPower, fue cancelado a mediados de 2001 cuando HAL fue cerrado por Fujitsu y reemplazado por un diseño de Fujitsu. [2]
Los primeros Fujitsu SPARC64 V se fabricaron en diciembre de 2001. [3] Operaban entre 1,1 y 1,35 GHz. La hoja de ruta de Fujitsu para el SPARC64 en 2003 mostraba que la empresa planeaba lanzar una versión de 1,62 GHz a finales de 2003 o principios de 2004, pero se canceló en favor del SPARC64 V+. [4] Fujitsu utilizó el SPARC64 V en sus servidores PRIMEPOWER.
El SPARC64 V se presentó por primera vez en el Microprocessor Forum 2002. [5] En su presentación, tenía la frecuencia de reloj más alta de los procesadores SPARC y de servidor de 64 bits en producción, y la calificación SPEC más alta de todos los procesadores SPARC. [5]
El SPARC64 V es un microprocesador superescalar de cuatro núcleos con ejecución fuera de orden . Se basa en el microprocesador para mainframe Fujitsu GS8900 . [6]
SPARC64 V obtiene hasta ocho instrucciones de la caché de instrucciones durante la primera etapa y las coloca en un búfer de instrucciones de 48 entradas. En la siguiente etapa, se toman cuatro instrucciones de este búfer, se decodifican y se envían a las estaciones de reserva adecuadas. SPARC64 V tiene seis estaciones de reserva, dos que sirven a las unidades de números enteros, una para los generadores de direcciones, dos para las unidades de punto flotante y una para las instrucciones de bifurcación. Cada unidad de números enteros, generadores de direcciones y de punto flotante tiene una estación de reserva de ocho entradas. Cada estación de reserva puede enviar una instrucción a su unidad de ejecución. La instrucción que se envía primero depende de la disponibilidad de los operandos y, luego, de su antigüedad. Las instrucciones más antiguas tienen mayor prioridad que las más nuevas. Las estaciones de reserva pueden enviar instrucciones de forma especulativa (envío especulativo). Es decir, se pueden enviar instrucciones a las unidades de ejecución incluso cuando sus operandos aún no están disponibles, pero lo estarán cuando comience la ejecución. Durante la etapa seis, se envían hasta seis instrucciones.
Los archivos de registro se leen durante la etapa siete. La arquitectura SPARC tiene archivos de registro separados para instrucciones de números enteros y de punto flotante. El archivo de registro de números enteros tiene ocho ventanas de registro. El JWR (Joint Work Register) contiene 64 entradas y tiene ocho puertos de lectura y dos puertos de escritura. El JWR contiene un subconjunto de las ocho ventanas de registro, las ventanas de registro anterior, actual y siguiente. Su propósito es reducir el tamaño del archivo de registro para que el microprocesador pueda operar a frecuencias de reloj más altas. El archivo de registro de punto flotante contiene 64 entradas y tiene seis puertos de lectura y dos puertos de escritura.
La ejecución comienza durante la etapa nueve. Hay seis unidades de ejecución, dos para números enteros, dos para cargas y almacenamientos, y dos para coma flotante. [7] Las dos unidades de ejecución de números enteros se denominan EXA y EXB. Ambas tienen una unidad lógica aritmética (ALU) y una unidad de desplazamiento, pero solo EXA tiene unidades de multiplicación y división. Las cargas y los almacenamientos se ejecutan mediante dos generadores de direcciones (AG) denominados AGA y AGB. Se trata de ALU simples que se utilizan para calcular direcciones virtuales.
Las dos unidades de punto flotante (FPU) se designan FLA y FLB. Cada FPU contiene un sumador y un multiplicador, pero solo FLA tiene una unidad gráfica adjunta. Ejecutan instrucciones de suma, resta, multiplicación, división, raíz cuadrada y multiplicación-suma . A diferencia de su sucesor SPARC64 VI , el SPARC64 V realiza la multiplicación-suma con operaciones de multiplicación y suma separadas, por lo tanto con hasta dos errores de redondeo. [8] La unidad gráfica ejecuta instrucciones del Conjunto de instrucciones visuales (VIS), un conjunto de instrucciones de una sola instrucción, múltiples datos (SIMD). Todas las instrucciones se canalizan excepto la división y la raíz cuadrada, que se ejecutan utilizando algoritmos iterativos. La instrucción FMA se implementa leyendo tres operandos del registro de operandos, multiplicando dos de los operandos, reenviando el resultado y el tercer operando al sumador y sumándolos para producir el resultado final.
Los resultados de las unidades de ejecución y las cargas no se escriben en el archivo de registros. Para mantener el orden del programa, se escriben en los búferes de actualización, donde residen hasta que se confirman. SPARC64 V tiene búferes de actualización separados para unidades de números enteros y de punto flotante. Ambos tienen 32 entradas cada uno. El registro de números enteros tiene ocho puertos de lectura y cuatro puertos de escritura. La mitad de los puertos de escritura se utilizan para los resultados de las unidades de ejecución de números enteros y la otra mitad para los datos devueltos por las cargas. El búfer de actualización de punto flotante tiene seis puertos de lectura y cuatro puertos de escritura.
La confirmación se lleva a cabo durante la etapa diez como mínimo. El SPARC64 V puede confirmar hasta cuatro instrucciones por ciclo. Durante la etapa once, los resultados se escriben en el archivo de registros, donde se vuelven visibles para el software. [9]
SPARC64 V tiene una jerarquía de caché de dos niveles. El primer nivel consta de dos cachés, un caché de instrucciones y un caché de datos. El segundo nivel consta de un caché unificado integrado.
Las cachés de nivel 1 (L1) tienen una capacidad de 128 KB cada una. Ambas son asociativas por conjuntos bidireccionales y tienen un tamaño de línea de 64 bytes. Están indexadas virtualmente y etiquetadas físicamente. Se accede a la caché de instrucciones a través de un bus de 256 bits. Se accede a la caché de datos con dos buses de 128 bits. La caché de datos consta de ocho bancos separados por límites de 32 bits. Utiliza una política de escritura diferida. La caché de datos escribe en la caché L2 con su propio bus unidireccional de 128 bits.
El caché de segundo nivel tiene una capacidad de 1 o 2 MB y la asociatividad establecida depende de la capacidad.
El microprocesador tiene un bus de sistema de 128 bits que opera a 260 MHz. El bus puede operar en dos modos, velocidad de datos única (SDR) o velocidad de datos doble (DDR), produciendo un ancho de banda máximo de 4,16 o 8,32 GB/s, respectivamente.
El SPARC64 V constaba de 191 millones de transistores, de los cuales 19 millones están contenidos en circuitos lógicos. [10] Se fabricó en un proceso de metalización de cobre de ocho capas de 0,13 μm , [11] de semiconductor de óxido metálico complementario (CMOS) de silicio sobre aislante (SOI). La matriz medía 18,14 mm por 15,99 mm para un área de matriz de 290 mm 2 . [10]
A 1,3 GHz, el SPARC64 V tiene una disipación de potencia de 34,7 W. [10] Los servidores Fujitsu PrimePower que utilizan el SPARC64 V suministran un voltaje ligeramente superior al microprocesador para permitirle funcionar a 1,35 GHz. El aumento del voltaje de suministro de energía y la frecuencia de funcionamiento aumentaron la disipación de potencia a ~45 W. [12]
El SPARC64 V+ , cuyo nombre en código es "Olympus-B", es un desarrollo posterior del SPARC64 V. Las mejoras con respecto al SPARC64 V incluyen frecuencias de reloj más altas de 1,82 a 2,16 GHz y un caché L2 más grande de 3 o 4 MB. [1]
El primer SPARC64 V+, una versión de 1,89 GHz, se envió en septiembre de 2004 en los Fujitsu PrimePower 650 y 850. En diciembre de 2004, se envió una versión de 1,82 GHz en el PrimePower 2500. Estas versiones tienen una caché L2 de 3 MB. [13] En febrero de 2006, se introdujeron cuatro versiones: versiones de 1,65 y 1,98 GHz con 3 MB de caché L2 enviadas en los PrimePower 250 y 450; y versiones de 2,08 y 2,16 GHz con 4 MB de caché L2 enviadas en los modelos de gama media y alta. [14]
Contenía aproximadamente 400 millones de transistores en una matriz de 18,46 mm por 15,94 mm para un área de 294,25 mm 2 . Fue fabricado en un proceso CMOS de 90 nm con diez niveles de interconexión de cobre . [6]
El SPARC64 VI , cuyo nombre en código es Olympus-C, es un procesador de dos núcleos (el primer procesador SPARC64 multinúcleo) que sucedió al SPARC64 V+ . Fujitsu lo fabrica con un proceso de silicio sobre aislante (SOI) CMOS de 10 capas de cobre de 90 nm , que permitió integrar dos núcleos y una caché L2 en una matriz. Cada núcleo es un procesador SPARC64 V+ modificado. Una de las principales mejoras es la adición de multihilo de grano grueso bidireccional (CMT), que Fujitsu llamó multihilo vertical (VMT). En CMT, el hilo que se ejecuta se determina mediante el tiempo compartido, o si el hilo está ejecutando una operación de latencia larga, entonces la ejecución se cambia al otro hilo. [15] La adición de CMT requirió la duplicación del contador de programa y los registros de control, entero y de punto flotante, por lo que hay un conjunto de cada uno para cada hilo. También se agregó una instrucción de multiplicación-suma fusionada de punto flotante (FMA), siendo el primer procesador SPARC en hacerlo. [8]
Los núcleos comparten una caché L2 unificada en chip de 6 MB. La caché L2 es asociativa por conjuntos de 12 vías y tiene líneas de 256 bytes. Se accede a la caché a través de dos buses unidireccionales, un bus de lectura de 256 bits y un bus de escritura de 128 bits. El SPARC64 VI tiene un nuevo bus de sistema, el Jupiter Bus. El SPARC64 VI constaba de 540 millones de transistores. El chip mide 20,38 mm por 20,67 mm (421,25 mm 2 ).
El SPARC64 VI originalmente iba a ser introducido a mediados de 2004 en los servidores PrimePower de Fujitsu. El desarrollo de los PrimerPowers fue cancelado después de que Fujitsu y Sun Microsystems anunciaran en junio de 2004 que colaborarían en nuevos servidores llamados Advanced Product Line (APL). Estos servidores estaban programados para ser introducidos a mediados de 2006, pero se retrasaron hasta abril de 2007, cuando fueron presentados como SPARC Enterprise . Los procesadores SPARC64 VI incluidos en el SPARC Enterprise en su anuncio eran una versión de 2,15 GHz con una caché L2 de 5 MB, y versiones de 2,28 y 2,4 GHz con cachés L2 de 6 MB. [16]
El SPARC64 VII (anteriormente llamado SPARC64 VI+), [17] cuyo nombre en código era Jupiter , [18] es un desarrollo posterior del SPARC64 VI anunciado en julio de 2008. [18] Es un microprocesador de cuatro núcleos. Cada núcleo es capaz de ejecutar múltiples hilos simultáneamente (SMT), lo que reemplaza al multihilo de grano grueso bidireccional , denominado multihilo vertical (VMT) por Fujitsu. Por lo tanto, puede ejecutar ocho hilos simultáneamente. [19] Otros cambios incluyen más funciones RAS ; el archivo de registro de enteros ahora está protegido por ECC y el número de verificadores de errores se ha incrementado a alrededor de 3400. Consta de 600 millones de transistores, tiene un tamaño de 21,31 mm × 20,86 mm (444,63 mm 2 ) y está fabricado por Fujitsu en su proceso de interconexión de cobre CMOS de 65 nm .
El SPARC64 VII se incluyó en el SPARC Enterprise . Es compatible con su predecesor, el SPARC64 VI, y se puede actualizar en campo. Los SPARC64 VII podían coexistir, mientras operaban a su frecuencia de reloj nativa, junto con los SPARC64 VI. [20] Las primeras versiones del SPARC64 VII fueron una versión de 2,4 GHz con una caché L2 de 5 MB utilizada en el SPARC Enterprise M4000 y M5000, y una versión de 2,52 GHz con una caché L2 de 6 MB. [18] El 28 de octubre de 2008, se introdujo una versión de 2,52 GHz con una caché L2 de 5 MB en el SPARC Enterprise M3000. [21] El 13 de octubre de 2009, Fujitsu y Sun presentaron nuevas versiones del SPARC64 VII (nombre en código Jupiter+ ), [22] una versión de 2,53 GHz con una caché L2 de 5,5 MB para el M4000 y el M5000, y una versión de 2,88 GHz con una caché L2 de 6 MB para el M8000 y el M9000. [23] El 12 de enero de 2010, se presentó una versión de 2,75 GHz con una caché L2 de 5 MB en el M3000. [24]
El SPARC64 VII+ ( Jupiter-E ), [25] conocido como M3 por Oracle, [25] es un desarrollo posterior del SPARC64 VII. La frecuencia de reloj se incrementó hasta 3 GHz y el tamaño de caché L2 se duplicó a 12 MB. Esta versión se anunció el 2 de diciembre de 2010 para los servidores SPARC Enterprise M8000 y M9000 de gama alta. [26] Estas mejoras dieron como resultado un aumento de aproximadamente el 20% en el rendimiento general. Una versión de 2,66 GHz fue para los modelos M4000 y M5000 de gama media. [25] El 12 de abril de 2011, se anunció una versión de 2,86 GHz con dos o cuatro núcleos y una caché L2 de 5,5 MB para el M3000 de gama baja. [27] [25] El VII+ es compatible con sockets con su predecesor, el VII. Los servidores SPARC Enterprise M-Series de gama alta existentes pueden actualizarse a los procesadores VII+ en el campo. [28]
El SPARC64 VIIIfx ( Venus ) es un procesador de ocho núcleos basado en el SPARC64 VII diseñado para computación de alto rendimiento (HPC). [29] Como resultado, el VIIIfx no sucedió al VII, sino que existió simultáneamente con él. Consta de 760 millones de transistores, mide 22,7 mm por 22,6 (513,02 mm 2 ;), está fabricado en el proceso CMOS de 45 nm de Fujitu con interconexiones de cobre y tiene 1271 pines de E/S. El VIIIfx tiene un rendimiento máximo a 2 GHz de 128 GFLOPS y un consumo de energía típico de 58 W a 30 °C para una eficiencia de 2,2 GFLOPS/W. El VIIIfx tiene cuatro controladores de memoria integrados para un total de ocho canales de memoria . Se conecta a 64 GB de SDRAM DDR3 y tiene un ancho de banda de memoria máximo de 64 GB/s. [30]
El VIIIfx fue desarrollado para el Proyecto de Supercomputadora de Próxima Generación (también llamado Kei Soku Keisenki y Proyecto Keisoku) iniciado por el Ministerio de Educación, Cultura, Deportes, Ciencia y Tecnología de Japón en enero de 2006. El proyecto tenía como objetivo producir la supercomputadora más rápida del mundo con un rendimiento de más de 10 PFLOPS para marzo de 2011. Las empresas contratadas para desarrollar la supercomputadora fueron Fujitsu, Hitachi y NEC . La supercomputadora originalmente fue concebida para tener una arquitectura híbrida que contuviera procesadores escalares y vectoriales . El VIIIfx diseñado por Fujitsu iba a ser el procesador escalar, y el procesador vectorial iba a ser diseñado conjuntamente por Hitachi y NEC. Sin embargo, debido a la crisis financiera de 2007-2008 , Hitachi y NEC anunciaron en mayo de 2009 que abandonarían el proyecto porque fabricar el hardware del que eran responsables les causaría pérdidas financieras. Posteriormente, Fujitsu rediseñó la supercomputadora para utilizar el VIIIfx como su único tipo de procesador.
En 2010, la supercomputadora que se construiría en el marco del proyecto se denominó computadora K. Ubicada en el Instituto Avanzado de Ciencias Computacionales (AICS) de RIKEN en Kobe , Japón; [31] [32] [33] obtiene su rendimiento de 88.128 procesadores VIIIfx. En junio de 2011, el Comité del Proyecto TOP500 anunció que la computadora K (aún incompleta con solo 68.544 procesadores) superó el punto de referencia LINPACK con 8,162 PFLOPS , alcanzando el 93% de su rendimiento máximo, lo que la convirtió en la supercomputadora más rápida del mundo en ese momento. [32] [34] [35] [36]
El núcleo VIIIfx se basa en el del SPARC64 VII con numerosas modificaciones para HPC, a saber, las Extensiones de cálculo aritmético de computación de alto rendimiento (HPC-ACE), una extensión diseñada por Fujitsu para la arquitectura SPARC V9. Se eliminó el procesamiento multihilo de grano grueso del front-end, se redujo a la mitad el tamaño de la caché de instrucciones L1, a 32 KB, y se redujo el número de entradas de caché de direcciones de destino de ramificación (BTAC) de 8192 a 1024, y su asociatividad se redujo de ocho a dos; y se insertó una etapa de canalización adicional antes del decodificador de instrucciones. Esta etapa acomodó la mayor cantidad de registros de números enteros y de punto flotante definidos por HPC-ACE. La arquitectura SPARC V9 fue diseñada para tener solo 32 registros de números enteros y 32 de punto flotante. La codificación de instrucciones SPARC V9 limitó la cantidad de registros que se pueden especificar a 32. Para especificar los registros adicionales, HPC-ACE tiene una instrucción de "prefijo" que seguiría inmediatamente a una o dos instrucciones SPARC V9. La instrucción de prefijo contenía (principalmente) las partes de los números de registro que no cabían en una instrucción SPARC V9. Esta etapa de canalización adicional era donde se combinaban hasta cuatro instrucciones SPARC V9 con hasta dos instrucciones de prefijo en la etapa anterior. Las instrucciones combinadas se decodificaban luego en la siguiente etapa de canalización.
El back-end también fue modificado en gran medida. El número de entradas de estación de reserva para instrucciones de ramificación y de enteros se redujo a seis y diez, respectivamente. Se agregaron registros a los archivos de registros de enteros y de punto flotante: el archivo de registros de enteros ganó 32, y hubo un total de 256 registros de punto flotante. Los registros de enteros adicionales no son parte de las ventanas de registros definidas por SPARC V9, pero siempre son accesibles a través de la instrucción de prefijo; y los 256 registros de punto flotante podrían ser utilizados tanto por instrucciones de punto flotante escalares como por instrucciones SIMD de enteros y de punto flotante. Se agregó una etapa de canalización adicional al comienzo de la canalización de ejecución de punto flotante para acceder al archivo de registros de punto flotante más grande. Las instrucciones SIMD de 128 bits de HPC-ACE se implementaron agregando dos unidades de punto flotante adicionales para un total de cuatro. La ejecución de SIMD puede realizar hasta cuatro operaciones de multiplicación-suma fusionada de precisión simple o doble (ocho FLOP) por ciclo. La cantidad de entradas de la cola de carga se incrementó de 16 a 20, y el tamaño de la caché de datos L1 se redujo a la mitad, a 32 KB. La cantidad de entradas de la pila de confirmación, que determinaba la cantidad de instrucciones que podían estar en proceso en el back-end, se redujo de 64 a 48.
El SPARC64 IXfx es una versión mejorada del SPARC64 VIIIfx diseñado por Fujitsu y LSI [37] revelado por primera vez en el anuncio de la supercomputadora PRIMEHPC FX10 el 7 de noviembre de 2011. [38] Junto con el PRIMEHPC FX10, es una comercialización de las tecnologías que aparecieron por primera vez en la computadora VIIIfx y K. En comparación con el VIIIfx, las mejoras organizativas incluyeron duplicar el número de núcleos a 16, duplicar la cantidad de caché L2 compartida a 12 MB y aumentar el ancho de banda máximo de la memoria DDR3 SDRAM a 85 GB/s. El IXfx opera a 1,848 GHz, tiene un rendimiento máximo de 236,5 GFLOPS y consume 110 W para una eficiencia energética de más de 2 GFLOPS por vatio. [39] [37] Consistía en mil millones de transistores y se implementó en un proceso CMOS de 40 nm con interconexiones de cobre. [40]
El SPARC64 X es un microprocesador de servidor de 16 núcleos anunciado en 2012 y utilizado en los servidores M10 de Fujitsu (que también son comercializados por Oracle). El SPARC64 X se basa en el SPARC64 VII+ con mejoras significativas en su núcleo y organización del chip. Los núcleos se mejoraron con la inclusión de una tabla de historial de patrones para predicción de bifurcaciones , ejecución especulativa de cargas , más unidades de ejecución, soporte para la extensión HPC-ACE (originalmente del SPARC64 VIIIfx), una canalización más profunda para una frecuencia de reloj de 3,0 GHz y aceleradores para criptografía , base de datos y funciones de conversión y aritmética de números decimales en coma flotante. Los 16 núcleos comparten una caché L2 unificada de 24 MB y 24 direcciones asociativa por conjuntos. Las mejoras en la organización del chip incluyen cuatro controladores de memoria SDRAM DDR3 integrados, multiprocesamiento simétrico de cuatro vías sin pegamento , diez canales SERDES para escalabilidad de multiprocesamiento simétrico a 64 zócalos y dos controladores PCI Express 3.0 integrados . El SPARC64 X contiene 2.95 mil millones de transistores, mide 23,5 mm por 25 mm (587,5 mm 2 ) y está fabricado en un proceso CMOS de 28 nm con interconexiones de cobre. [41] [40]
El SPARC64 X+ es un procesador SPARC64 X mejorado anunciado en 2013. Presenta pequeñas mejoras en la organización del núcleo y una frecuencia de reloj más alta de 3,5 GHz obtenida mediante un mejor diseño y disposición de circuitos. Contiene 2990 millones de transistores, mide 24 mm por 25 mm (600 mm 2 ), y se fabrica con el mismo proceso que el SPARC64 X. [42] [43] El 8 de abril de 2014, las piezas con velocidad de 3,7 GHz estuvieron disponibles en respuesta a la introducción de los nuevos modelos Xeon E5 y E7 por parte de Intel ; y la inminente introducción del POWER8 por parte de IBM . [44]
Fujitsu presentó el SPARC64 XIfx en agosto de 2014 en el simposio Hot Chips . [45] Se utiliza en la supercomputadora Fujitsu PRIMEHPC FX100, que sucedió a la PRIMEHPC FX10 . [46] [47] El XIfx opera a 2,2 GHz y tiene un rendimiento máximo de 1,1 TFLOPS. [48] Consta de 3750 millones de transistores y es fabricado por Taiwan Semiconductor Manufacturing Company en su proceso de compuerta metálica de alta κ (HKMG) de 20 nm . El Microprocessor Report estimó que la matriz tiene un área de 500 mm2 y un consumo de energía típico de 200 W. [45]
El XIfx tiene 34 núcleos, 32 de los cuales son núcleos de cómputo utilizados para ejecutar aplicaciones de usuario y 2 núcleos asistentes utilizados para ejecutar el sistema operativo y otros servicios del sistema. La delegación de aplicaciones de usuario y sistema operativo a núcleos dedicados mejora el rendimiento al garantizar que las cachés privadas de los núcleos de cómputo no se compartan con instrucciones y datos que no sean de aplicación ni se interrumpan con ellos. Los 34 núcleos se organizan además en dos grupos de memoria de núcleo ( CMG ), cada uno de los cuales consta de 16 núcleos de cómputo y 1 núcleo asistente que comparten una caché unificada L2 de 12 MB. La división de los núcleos en CMG permitió integrar 34 núcleos en un solo chip al facilitar la implementación de la coherencia de caché y evitar la necesidad de que la caché L2 se comparta entre 34 núcleos. Los dos CMG comparten la memoria a través de una organización ccNUMA .
El núcleo XIfx se basó en SPARC64 X+ con mejoras organizativas. XIfx implementa una versión mejorada de las extensiones HPC-ACE (HPC-ACE2), que duplicaron el ancho de las unidades SIMD a 256 bits y agregaron nuevas instrucciones SIMD. En comparación con SPARC64 IXfx, XIfx tiene una mejora de un factor de 3,2 para precisión doble y 6,1 para precisión simple. Para complementar el aumento del ancho de las unidades SIMD, el ancho de banda de la caché L1 se incrementó a 4,4 TB/s.
Las mejoras en la organización del SoC se centraron en la memoria y las interfaces de interconexión. Los controladores de memoria integrados se reemplazaron por cuatro interfaces Hybrid Memory Cube (HMC) para reducir la latencia de la memoria y mejorar el ancho de banda de la memoria. Según el Microprocessor Report , el IXfx fue el primer procesador en utilizar HMC. [45] El XIfx está conectado a 32 GB de memoria proporcionada por ocho HMC de 4 GB. Los HMC son versiones de 16 carriles, y cada carril funciona a 15 Gbit/s. Cada CMG tiene dos interfaces HMC, y cada interfaz HMC está conectada a dos HMC a través de sus propios puertos. Cada CMG tiene 240 GB/s (120 GB/s de entrada y 120 GB/s de salida) de ancho de banda de memoria.
XIfx reemplazó los diez canales SERDES de un controlador de interconexión Tofu externo con un controlador integrado de diez puertos para la interconexión Tofu2 de segunda generación. Tofu2 es una red de malla/toro 6D con un ancho de banda full-duplex de 25 GB/s (12,5 GB/s por dirección, 125 GB/s para diez puertos) y una arquitectura de enrutamiento mejorada.
Fujitsu anunció en la Conferencia Internacional de Supercomputación de junio de 2016 que su futura supercomputadora a exaescala contará con procesadores de su propio diseño que implementan la arquitectura ARMv8 . El A64FX implementará extensiones de la arquitectura ARMv8, equivalentes a HPC-ACE2, que Fujitsu está desarrollando con ARM Holdings . [49]
SPARC64 XII se lanzó en 2017 con los servidores SPARC M12 de Fujitsu. Nominalmente cuenta con 12 núcleos, pero al igual que el POWER9 de IBM que se lanzó el mismo año, cada uno de los doce núcleos consta de dos canales separados, y los únicos recursos compartidos entre los canales del núcleo SPARC64 XII son el TLB , la caché de instrucciones L1 y la caché L2, y como resultado, el rendimiento de un solo subproceso es casi inalterado con respecto a SPARC64 X. SPARC64 XII opera a una frecuencia base de hasta 4,25 GHz y una frecuencia de impulso de 4,35 GHz. El tamaño del chip es de 25,8 mm × 30,8 mm (795 mm 2 ), que contiene 5,45 mil millones de transistores fabricados en el proceso de 20 nm de TSMC . Cada uno de los dos canales de un núcleo puede obtener 8 instrucciones, decodificar 4 instrucciones y ejecutar 6 instrucciones por ciclo, y admite 4 subprocesos SMT (para 96 subprocesos por CPU). Cada canal tiene su propia caché de datos L1 de 32 MB y 4 vías, y dos canales comparten una caché de instrucciones L1 asociativa de 64 MB y 4 vías y una caché L2 de 512 MB y 16 vías. SPARC64 XII es la primera CPU SPARC de Fujitsu con caché L3 (32 MB y 16 vías). El número de puertos PCIe 3.0 de 8 carriles se ha duplicado a 4 por chip. La velocidad de la memoria se ha incrementado en un 50% a 2400 MT/s, lo que lleva el ancho de banda combinado teórico de los 8 canales DDR4 del chip a 153 GB/s, y la capacidad por CPU es de hasta 1,5 TB en 24 ranuras. Se pueden conectar dos CPU en un Building Block, y se pueden conectar hasta 16 Building Blocks para crear un servidor de 32 CPU con hasta 48 TB de memoria. [50] [51]
{{cite web}}
: CS1 maint: URL no apta ( enlace )