La integración de múltiples Instruction Set Architectures (ISAs) en un único núcleo de CPU representa una solución fundamental a la fragmentación del ecosistema de software y a las ineficiencias operativas en entornos de centros de datos. Históricamente, las arquitecturas han competido por la dominancia, forzando a los desarrolladores y operadores a elegir plataformas específicas, lo que a menudo resulta en silos de infraestructura y complejidades de integración. La propuesta de IBM con su z/Architecture de doble ISA (z/Architecture + ARM) busca trascender esta dicotomía, permitiendo que el software compilado para ARM se ejecute de forma nativa junto con las cargas de trabajo tradicionales del mainframe.

Este enfoque aborda directamente el problema de la proximidad de datos y la latencia en sistemas distribuidos. Al permitir que las aplicaciones ARM se ejecuten en el mismo entorno de hardware que los datos transaccionales críticos, se eliminan los cuellos de botella de red y se simplifica la gestión de la seguridad y la disponibilidad. La motivación principal es la consolidación de cargas de trabajo, permitiendo a los clientes ejecutar una gama más amplia de software en una única plataforma de alta fiabilidad, aprovechando la madurez y el vasto ecosistema de software de ARM, especialmente en el contexto de los hyperscalers y las aplicaciones de Linux.

La decisión de IBM de integrar ARM, en lugar de otras ISAs como RISC-V o POWER, se basa en la prevalencia de ARM en el ecosistema de software moderno y su adopción masiva en centros de datos. Este movimiento estratégico busca expandir el alcance del mainframe más allá de sus cargas de trabajo tradicionales, posicionándolo como una plataforma unificada para aplicaciones empresariales críticas y el software de soporte asociado, como herramientas de seguridad, backup y observabilidad, que a menudo son nativas de ARM o x86.

Arquitectura del Sistema

La arquitectura de la nueva generación z/Architecture de IBM implementa un diseño de núcleo de CPU que soporta de forma nativa dos ISAs: z/Architecture y ARM. La clave de esta implementación reside en una pipeline de decodificación compartida, donde gran parte de la lógica es común para ambas arquitecturas. Sin embargo, los decodificadores individuales que realizan la traducción de las instrucciones (de 16-48 bits para z/Architecture y 32 bits para ARM) son unidades separadas. Esta separación en la etapa de decodificación permite manejar las complejidades inherentes a cada ISA, como la longitud variable de las instrucciones CISC de z/Architecture frente a las instrucciones RISC de longitud fija de ARM.

Una de las complejidades resueltas a nivel de hardware es la diferencia en el endianness: z/Architecture es big-endian, mientras que ARM opera predominantemente en little-endian. La unidad de carga/almacenamiento (Load-Store Unit) maneja automáticamente el swapping de bytes necesario para soportar ambas convenciones. Esto se logra dentro de la lógica que formatea los accesos a palabras desde la caché, eliminando la necesidad de software para gestionar esta conversión. Además, la arquitectura mantiene un modelo de consistencia de memoria de orden fuerte (Strong Ordering), similar al Total Store Order (TSO) de x86, incluso para las instrucciones ARM que típicamente operan bajo un modelo de orden débil (Weak Ordering). La infraestructura de especulación existente en z/Architecture se reutiliza para mantener esta fuerte ordenación sin penalizaciones significativas de rendimiento.

La mayoría de las estructuras críticas del núcleo son compartidas y reutilizadas entre ambas ISAs, incluyendo los Translation Lookaside Buffers (TLBs), las cachés de instrucciones y datos, y los archivos de registros físicos (General Purpose Registers y registros vectoriales). Esto minimiza el área adicional de silicio y el consumo de transistores. Las adiciones de hardware se limitan principalmente a los decodificadores específicos de ARM y a la implementación de formatos de punto flotante (BF16 y FP16) que no estaban presentes en z/Architecture pero son necesarios para el ecosistema ARM, especialmente para cargas de trabajo de IA. La integración de High Bandwidth Memory (HBM) en la arquitectura Spyre adyacente también es una evolución impulsada por la creciente demanda de ancho de banda de memoria para modelos de IA más grandes y complejos, como los Large Language Models (LLMs) y flujos de trabajo agentic.

Flujo de Decodificación de Instrucciones Dual-ISA

  1. 1 Fetch Instruction Obtención de instrucción desde la caché de instrucciones.
  2. 2 Shared Decode Pipeline Etapas iniciales de la pipeline de decodificación, comunes para z/Architectur...
  3. 3 ISA-Specific Decoder Decodificación de instrucción por decodificador dedicado (z/Architecture o ARM).
  4. 4 Issue to Execution Units Envío de micro-operaciones a las unidades de ejecución compartidas.
  5. 5 Execute Ejecución de la instrucción en las unidades funcionales (ALU, FPU, etc.).
  6. 6 Load/Store Unit (LSU) Manejo de accesos a memoria, incluyendo swapping de endianness.
  7. 7 Write Back Escritura de resultados a los registros físicos compartidos.
CapaTecnologíaJustificación
compute z/Architecture CPU Core Núcleo de procesamiento principal, ahora con soporte nativo para ARM ISA. vs Diseño de CPU con cores separados para cada ISA, Emulación o virtualización de ARM sobre z/Architecture Dual-ISA (z/Architecture + ARM) con pipeline de decodificación compartida y decodificadores específicos.
storage Load-Store Unit (LSU) Gestiona todas las operaciones de carga y almacenamiento de datos, incluyendo la conversión de endianness en hardware. vs Manejo de endianness a nivel de software, Hardware de conversión de endianness externo a la LSU Soporte automático de big-endian (z/Architecture) y little-endian (ARM) sin intervención de software.
storage Caches (L1, L2, TLBs) Almacenamiento de datos e instrucciones de alta velocidad, compartidas entre ambas ISAs para maximizar la eficiencia. vs Cachés separadas por ISA Estructuras de caché y TLB unificadas para ambas arquitecturas.
storage High Bandwidth Memory (HBM) Memoria de alta velocidad y alto ancho de banda para aceleradores (Spyre), crucial para cargas de trabajo de IA intensivas en datos. vs DDR5/GDDR6, Memoria en chip (eDRAM) Integración de HBM en la arquitectura Spyre para soportar LLMs y flujos de trabajo agentic.

Trade-offs

Ganancias
  • Consolidación de cargas de trabajo
  • Reducción de latencia por proximidad de datos
  • Expansión del ecosistema de software disponible
  • Simplificación de la gestión operativa
Costes
  • Complejidad de diseño de hardware
  • Área de silicio adicional para decodificadores específicos y formatos FP

Fundamentos Teóricos

El concepto de arquitecturas de conjunto de instrucciones (ISA) duales o híbridas ha sido explorado en la academia y la industria durante décadas, a menudo en respuesta a la necesidad de compatibilidad con versiones anteriores o la integración de diferentes paradigmas computacionales. Un ejemplo histórico notable es el procesador Itanium de Intel, que intentó fusionar la compatibilidad x86 con una nueva arquitectura EPIC (Explicitly Parallel Instruction Computing). Aunque el Itanium no tuvo éxito comercial, ilustró los desafíos de diseñar un hardware que pueda ejecutar eficientemente múltiples ISAs.

La gestión de la consistencia de memoria en sistemas multiprocesador es un área fundamental de la investigación en arquitectura de computadoras, con trabajos pioneros como los de Lamport en la década de 1970 sobre la "consistencia secuencial" (Sequential Consistency). La diferencia entre modelos de orden fuerte (como TSO) y orden débil (como los de ARM) es un trade-off bien documentado entre la complejidad de implementación del hardware y la flexibilidad para la optimización del compilador. La decisión de IBM de mantener un orden fuerte para ambas ISAs simplifica el modelo de programación y la depuración, pero requiere un hardware de especulación más sofisticado para mitigar las posibles penalizaciones de rendimiento, un área donde la investigación en predicción de ramas y reordenamiento de instrucciones ha sido clave (ej. Hennessy & Patterson, "Computer Architecture: A Quantitative Approach").

La integración de diferentes endianness también es un problema clásico en la interoperabilidad de sistemas, resuelto a menudo a nivel de software o mediante hardware específico en las unidades de carga/almacenamiento. La solución de IBM de manejar esto completamente en hardware en la Load-Store Unit es una aplicación directa de principios de diseño de microarquitectura para abstraer las diferencias de ISA del software, un principio que se remonta a los primeros diseños de procesadores con soporte para múltiples modos de operación o compatibilidad binaria.