La evolución de la arquitectura de procesadores, especialmente en el ámbito de los sistemas distribuidos a gran escala, se enfrenta a un problema fundamental: cómo diseñar un core que sea eficiente tanto para cargas de trabajo de alto rendimiento computacional (HPC) intensivas en vectores como para aplicaciones de propósito general que demandan baja latencia y alta eficiencia en la ejecución de instrucciones escalares. Históricamente, los diseños se han polarizado, con CPUs optimizadas para un tipo de carga u otro. El Fujitsu Monaka aborda este dilema mediante un diseño híbrido que intenta cerrar la brecha, aprovechando la madurez del ISA Arm (aarch64) y la modularidad de los chiplets.

Este esfuerzo es crucial en un panorama donde la convergencia de HPC, IA y computación en la nube exige plataformas más versátiles. La adopción de aarch64 por parte de Fujitsu, tras su experiencia con SPARC, subraya la importancia de un ecosistema de software robusto y bien soportado. El desafío radica en integrar características como predicción de saltos de última generación, pipelines de ejecución más anchos y gestión de memoria flexible (DDR5 y NUMA) sin comprometer la eficiencia energética y la densidad de cómputo vectorial, que son pilares en el diseño de supercomputadoras.

Arquitectura del Sistema

El core Monaka de Fujitsu presenta una arquitectura de ejecución out-of-order con un pipeline de fetch desacoplado y una caché de instrucciones de 64 KB. El predictor de saltos es un TAGE de tres niveles, un algoritmo de predicción de última generación que utiliza múltiples tablas indexadas con diferentes longitudes de historial para mejorar la precisión. Esto contrasta con el predictor basado en perceptrones del A64FX, que ha caído en desuso en diseños modernos. El backend del core incluye seis ALUs, lo que sugiere un diseño de al menos 6-wide, una mejora significativa respecto al A64FX de 4-wide.

Las unidades vectoriales/FP son de 256 bits de ancho, a diferencia de los 512 bits del A64FX. Esta decisión se basa en la observación de que la mayoría del software Arm de propósito general no aprovecha unidades vectoriales más anchas, permitiendo ahorros en potencia y área. Para la eficiencia energética, Monaka incorpora un caché de registros flotantes y optimizaciones para evitar lecturas/escrituras innecesarias en registros vectoriales con patrones comunes (ej. todos ceros o todos unos). A nivel de sistema, Monaka utiliza un diseño de chiplet hub-and-spoke: un die de IO de 5nm conecta dies de cómputo de 2nm (cada uno con 36 cores Monaka) a la memoria y IO, y estos se apilan sobre dies de 5nm que contienen la caché de último nivel (L3). La memoria es DDR5, ofreciendo mayor capacidad y flexibilidad que el HBM del A64FX. Monaka también ofrece múltiples modos NUMA para optimizar el acceso a memoria, desde un nodo único hasta ocho nodos por chip, adaptándose a diversas cargas de trabajo.

CapaTecnologíaJustificación
compute Armv8-A (aarch64) ISA base para el core Monaka, proporcionando un ecosistema de software robusto y bien soportado. vs SPARC
compute TAGE Branch Predictor Algoritmo de predicción de saltos de última generación para minimizar las burbujas del pipeline y mejorar el rendimiento de ejecución out-of-order. vs Perceptron Predictor (A64FX) Implementación de 'tres niveles' con múltiples tablas indexadas por diferentes longitudes de historial.
storage DDR5 Memoria principal del sistema, elegida por su alta capacidad, flexibilidad y compatibilidad con plataformas de servidor estándar. vs HBM (A64FX) Permite configuraciones de memoria variables y actualizaciones.
compute SVE (Scalable Vector Extension) Extensión de instrucciones vectoriales de Arm, fundamental para el rendimiento HPC, con un enfoque agnóstico a la longitud del vector. Unidades vectoriales de 256 bits en Monaka, frente a 512 bits en A64FX.
security Hardware Root of Trust (TPM) Proporciona una base de confianza para la seguridad del sistema, permitiendo la verificación de la integridad del software en entornos potencialmente inseguros.
security Pointer Authentication (PAC) Característica del ISA Arm para mitigar ataques de Return-Oriented Programming (ROP) mediante la firma y verificación de punteros.

Trade-offs

Ganancias
  • Rendimiento en cargas de propósito general
  • Flexibilidad de memoria (capacidad y actualizabilidad)
  • Seguridad y RAS a nivel de mainframe
  • Eficiencia energética (por core, en cargas vectoriales no máximas)
Costes
  • Ancho de banda vectorial máximo (por core)
  • Frecuencia de reloj máxima (single thread performance)
  • Latencia de memoria (DDR5 vs HBM en A64FX)

Fundamentos Teóricos

La evolución de los predictores de saltos, como el TAGE (Talent, A. et al., 2006), es un campo de investigación activa en la arquitectura de computadoras. El TAGE se basa en la idea de combinar múltiples predictores con diferentes sensibilidades al historial, una extensión de los predictores híbridos que se remontan a los trabajos de McFarling (1993). La complejidad de la predicción de saltos es un problema clásico en la computación, ya que las ramificaciones en el flujo de instrucciones pueden causar burbujas en el pipeline, reduciendo el rendimiento efectivo de la CPU. La transición de perceptrones a TAGE refleja la búsqueda continua de mayor precisión con menor coste de hardware.

El diseño de chiplets y la gestión de la jerarquía de memoria, incluyendo NUMA, se conecta con principios fundamentales de sistemas distribuidos y arquitectura de memoria. La optimización de la localidad de datos y la reducción de la latencia de acceso a memoria son desafíos abordados en trabajos como los de Hennessy y Patterson (2007) sobre arquitectura de computadoras. La decisión de Fujitsu de usar DDR5 y ofrecer modos NUMA configurables es una aplicación directa de estos principios para adaptar el hardware a las características de acceso a memoria de diversas aplicaciones, desde HPC con acceso predecible hasta cargas de propósito general con patrones de acceso más dispersos.