Seguimiento del viaje de AMD a Zen: de FX a Ryzen; Diferencias entre los dos

Seguimiento del viaje de AMD a Zen: de FX a Ryzen; Diferencias entre los dos

Antes de que las CPU Ryzen basadas en Zen aterrizaran en 2017, AMD se encontraba en una situación muy precaria, casi al borde de la bancarrota. Las CPUs FX “Bulldozer” más antiguas eran lentas, ineficientes y, en general, un desastre arquitectónico. De hecho, Ryzen no habría tenido el impacto que tuvo si no fuera por Bulldozer. Echemos un vistazo a las diferencias entre los procesadores Ryzen y FX “Bulldozer”.

Historia de las CPU AMD: Bulldozer y la línea FX

Después de la arquitectura K10 de tercera generación, AMD, debido a la falta de fondos, decidió invertir en un diseño estrecho, de bajo IPC y alta velocidad de reloj. Básicamente, intentaron hacer una arquitectura de CPU con un rendimiento de un solo subproceso relativamente menor y una lote de los hilos. Esperaban compensar el primero utilizando velocidades de reloj más altas y esperaban que las aplicaciones se volvieran cada vez más multiproceso.

Eso, por supuesto, no sucedió, y el resultado fue el desastre conocido como la arquitectura Bulldozer que dio origen a los procesadores FX. Para que este diseño fuera viable, los ingenieros de AMD tuvieron que aumentar el número de núcleos y las velocidades de reloj. Esto condujo a una arquitectura de CPU que consumía mucha energía y que funcionaba muy bien y no funcionaba tan bien como los chips Intel Core de la competencia.

Para tener una idea más clara de cuán en desventaja estaban las CPU Bulldozer de AMD, aquí hay un ejemplo: para ofrecer un rendimiento en línea con los procesadores Phenom II más antiguos, FX necesitaba tener una velocidad de operación 40% más alta (en promedio).

Las velocidades de reloj más altas requieren un mayor consumo de energía que da como resultado directamente mayores térmicas y estrangulamiento. Esto hizo que los procesadores FX y la arquitectura Bulldozer en general no fueran adecuados para computadoras portátiles y dispositivos portátiles, mientras que los recuentos de núcleos superiores a 8 eran inviables incluso para partes de escritorio.

Créditos

Como puede ver en el gráfico anterior, el IPC realmente cayó con la primera generación de procesadores Bulldozer. Se necesitaron tres ciclos de actualización para que volviera a estar a la par con K10. La compañía comenzó a moverse en la dirección correcta con Steamroller and Excavator, pero se encontró con un obstáculo poco después. Las limitaciones de diseño de la arquitectura Bulldozer impidieron que el equipo de diseño de AMD hiciera más mejoras sin revisar el diseño. Esto marcó el final de Bulldozer y sus derivados.

Luego vino la microarquitectura Zen con el objetivo de rectificar las deficiencias del diseño de Bulldozer, y aquí estamos hoy, con la línea Ryzen 5000 basada en el núcleo Zen 3 de 7 nm.

CPU AMD FX vs Ryzen: comparación de Bulldozer y Zen Core

Pongamos las dos arquitecturas una al lado de la otra y analicemos la diferencia central entre el Bulldozer y el núcleo Zen. En resumen, el primero tenía tantos cuellos de botella que era imposible hacer un chip de sonido sin revisar todo el diseño. Algunas de las principales limitaciones fueron:

  • Pobres capacidades de coma flotante
  • Lógica compartida (entre dos “núcleos”)
  • Mayor latencia y tamaño de caché
  • Frontal más estrecho
  • Programador de Windows 7

Pobres capacidades de coma flotante

Desde el principio, una de las opciones de diseño más desastrosas de Bulldozer fue el esquema de lógica compartida. Solo había una unidad de punto flotante (y un programador) compartida entre dos supuestos núcleos. Además de eso, esta FPU no podría ejecutar instrucciones AVX256 (AVX-2) sin dividirlas en dos segmentos de 128 bits. Sandy Bridge de Intel tenía un modelo de ejecución AVX256 bastante robusto, capaz de realizar multiplicación de 256 bits + adición de 256 bits en cada ciclo (por núcleo). Bulldozer de AMD, por otro lado, tenía dos unidades de acumulación múltiple fusionadas (FMAC) de 128 bits compartidas entre dos núcleos. Bastante triste, ¿no?

Sandy Bridge tiene tres puertos para ejecutar microoperaciones. Cada uno tiene tres EU para ejecutar datos de tres tipos diferentes, a saber, INT, SIMD INT y FP. La pila INT tiene un ancho de 64 bits y maneja GPIO (operaciones enteras de propósito general) mientras que las pilas SIMD INT y FP tienen un ancho de 128 bits. Para realizar operaciones AVX de 256 bits, el motor de ejecución utiliza la unidad SIMD entera para la mitad inferior de 128 bits y la unidad FP para la parte superior de 128 bits. De esta manera, Sandy Bridge puede realizar un MUL de 256 bits junto con un ADD de 256 bits por ciclo.

Sandy Bridge

Lógica compartida (entre dos núcleos)

El diseño de front-end compartido no solo condenó las capacidades de punto flotante de Bulldozer, sino que también se vio comprometida la computación de números enteros.

Excavadora

Como puede ver, donde Zen puede ejecutar cuatro microoperaciones enteras (más la generación de dos direcciones), un clúster Bulldozer solo podría ejecutar la mitad. Además, carece de la complejidad del planificador Zen, que puede tener hasta 56 colas de instrucciones enteras y 28 colas de generación de direcciones.

zen

Mayor latencia y tamaño de caché

Continua en la siguiente pagina…

0 0 votes
Puntuación de la entrada
Subscribe
Notify of
0 Comentarios
Inline Feedbacks
View all comments
A %d blogueros les gusta esto: