Saltar al contenido
ᐅ HielosMendez – Información digital que te dejara helado 🧊🥶

Shadows of Itanium: la firma rusa estrena CPU VLIW Elbrus 4 con emulación x86 integrada

Investigadores del Centro de Moscú para Tecnologías SPARC (MCST) han anunciado que un nuevo núcleo de CPU de cosecha propia está listo para el mercado masivo. Apodado Elbrus-4C, este nuevo chip se basa en una arquitectura VLIW (Very Long Instruction Word) e incluye la capacidad de emular instrucciones x86. La mayoría de nuestras discusiones en ExtremeTech involucran arquitecturas de AMD, Intel o ARM, pero esta es una oportunidad interesante para ver algo completamente diferente.

El Elbrus-4C es similar al Itanium de Intel en varios aspectos. Itanium tenía su propia arquitectura, apodada Epic, pero al igual que Elbrus, su diseño se basaba en los principios y enfoques de VLIW.

VLIW: El camino no tomado

Los procesadores de texto de instrucciones muy largas están diseñados para ejecutar muchas instrucciones simultáneamente. Un procesador moderno fuera de servicio, como el Haswell de Intel, puede ejecutar hasta ocho instrucciones (uops) por ciclo de reloj. El Elbrus-4C, por el contrario, puede ejecutar hasta 23 instrucciones por ciclo (de nuevo, en condiciones óptimas). La enorme diferencia en IPC está destinada a compensar la brecha de frecuencia: el Elbrus-4C tiene una frecuencia de 800MHz, en comparación con 3GHz-4.4GHz para un Haswell moderno.

merced

Esta diapositiva describe el Itanium de Intel, pero los chips VLIW utilizan métodos similares.

Los principios de los procesadores VLIW son muy diferentes a los que impulsan las CPU modernas. Cuando debutó el enfoque VLIW, a principios de la década de 1980, muchos de los enfoques que ahora utilizan incluso los chips de bajo consumo como la familia Cortex de ARM eran prohibitivamente caros en términos de potencia, tamaño de la matriz o costos de memoria. Técnicas como la ejecución fuera de orden, que debutó en los productos de consumo con el Pentium Pro de Intel, eran inicialmente muy caras y requerían grandes presupuestos de transistores.

El objetivo de un diseño VLIW es simplificar el llamado front-end del procesador, donde las instrucciones se decodifican, programan y ejecutan. Incluso hoy en día, existe un límite en cuanto a la amplitud realista que puede tener un chip moderno fuera de servicio como Haswell. Si desea decodificar y enviar más instrucciones por ciclo, necesita rastrear más datos relacionados con qué instrucciones se están ejecutando en qué canalizaciones. Los requisitos de memoria y energía necesarios para mantener más instrucciones en vuelo escalan mucho más rápido que la cantidad de trabajo que teóricamente puede realizar por ciclo.

VLIW ataja este problema trasladando todo el trabajo pesado y la paralelización al compilador y simplificando los recursos en el chip. Es una idea atractiva: use la CPU para lo que es realmente bueno (ejecutar código) y cambie la complicada tarea de extraer el paralelismo a una interfaz de software flexible que, en teoría, se puede actualizar y mejorar mucho más fácilmente que la arquitectura de la CPU. . ¿Necesita un mejor rendimiento de su CPU VLIW? Cree un mejor compilador que pueda extraer más paralelismo, y lo tiene: no es necesario cambiar sus CPU de clase empresarial por variantes más nuevas.

Desafortunadamente, los compiladores necesarios para que VLIW sea viable para la computación de propósito general nunca se materializaron. Trasladar la carga de la optimización del código a la pila de software podría haber sido una gran idea en teoría hace 30 años, cuando la ejecución fuera de orden era extremadamente costosa, pero el hardware mejoró mucho más rápido que el software en este frente.

Los últimos 40 años han visto aparecer y desaparecer varias empresas de VLIW. Las primeras empresas emergentes de supercomputadoras Cydrome y Multiflow fracasaron después de unos años, y el i860 de Intel (una CPU que una vez flotó como posible reemplazo de x86) tuvo cierto éxito en el mercado de DSP, pero nunca se hizo popular. La arquitectura Itanium de Intel, denominada Epic, está relacionada con VLIW, pero incluye algunas características de las que normalmente carecían las CPU VLIW.

Rendimiento y emulación x86

En código VLIW nativo, el Elbrus-4C puede realizar un máximo de 50 GFLOPS en total (25 GFLOPS de doble precisión). Un Core i7-4770K moderno, por el contrario, alcanza alrededor de 176GFLOPS cuando se ejecuta código optimizado para AVX2 en los cuatro núcleos y aproximadamente 50 GFLOPS por núcleo según las pruebas optimizadas realizadas por Puget Sound. Si bien el Elbrus-4C es solo una fracción del rendimiento de un núcleo Intel moderno, el chip en sí está construido con tecnología de 65 nm y funciona a una fracción del reloj de la CPU Intel, sin ningún soporte para los conjuntos de instrucciones SIMD que le dan a Intel una ventaja adicional. En relación con el nodo de proceso y la frecuencia a la que se registra, los 50GFLOPS reclamados por quad-core son bastante buenos.

El siguiente diagrama muestra cómo Elbrus puede convertir código x86 para que se ejecute en su propia plataforma o ejecutar instrucciones VLIW nativas (gracias a Anshel Sag, de Moore Insights & Strategy por la traducción inicial al ruso) y a eonvee375 y Aaronb por reemplazar el texto de la imagen. con ingles:

VLIW_Elbrus_4_CPU_with_onboard_x86_emulation

Al igual que el antiguo Transmeta Efficeon, el Elbrus puede emular la instrucción x86, pero los datos sobre cómo funciona con un núcleo moderno son limitados. Las viejas diapositivas del Elbrus-2C + muestran el rendimiento de ese chip en relación con el Atom D510 (una variante Pineview de doble núcleo con una frecuencia de 1,66 GHz) y lo que parece ser un Pentium M de un solo núcleo con una frecuencia de 1 GHz.

elbrus-int

Rendimiento entero de Elbrus-2C. La variante 4C sería más rápida, pero esto aún nos da un estadio de béisbol.

Rendimiento de punto flotante de Elbrus.  El chip se ve mejor aquí, aunque no mucho.

Rendimiento de punto flotante de Elbrus. El chip se ve mejor aquí, aunque no mucho.

La especificación CPU2000 está completamente desactualizada, pero lo que vemos aquí todavía nos dice algo. A 500MHz, el viejo Elbrus-2C era significativamente más rápido que el Atom o el Pentium M en código de punto flotante x86. En código entero, el Elbrus-2C estaba por todo el mapa, a veces superando al Intel Atom de doble núcleo, a menudo perdiendo ante el Pentium M. (Es una pregunta abierta qué tan enhebradas eran las cargas de trabajo tan antiguas de manera realista).

Según se informa, el Elbrus-4C aumenta la caché de instrucciones L1 a 128 KB, frente a los 64 KB del Elbrus-2C. También aumenta el tamaño de la caché L2 a 8 MB, compartido entre los cuatro núcleos. El controlador DDR3 de tres canales ofrece hasta 38,4 GB / s de ancho de banda de memoria.

No está claro si el MCST tiene la intención de llevar Elbrus-4C al mercado masivo, o si el chip fue desarrollado para supercomputadoras propias o aplicaciones militares. Tener su propio diseño de chip le da a Rusia una forma de asegurarse de que sus computadoras no funcionen en procesadores “extranjeros” que podrían tener puertas traseras integradas o estar comprometidas de alguna otra manera. Vale la pena señalar que a pesar de gastar colectivamente miles de millones en investigación y desarrollo de VLIW durante las últimas décadas, ningún diseñador de CPU importante logró construir un chip de propósito general VLIW para el mercado masivo. (AMD adoptó VLIW para varias generaciones de GPU antes de alejarse de la arquitectura con la llegada de GCN).