sábado, 15 de marzo de 2008

Microarquitectura del AMD Phenom

En este artículo trataré extensamente el procesador que continúa la saga del Athlon64. Hablaremos de sus detalles internos, desvelaremos peculiaridades interesantes de su diseño y lo compararemos con su rival, el Core2Quad con resultados interesantes para los estudiosos de la microarquitectura de CPUs.

El core Barcelona de AMD.

Mucha controversia ha habido en torno al último lanzamiento del fabricante de microprocesadores con base en Alemania, una CPU incialmente conocido como K8L o K10. Tras disiparse la polvareda empezamos a ver la verdadera dimensión del lanzamiento, que como AMD afirma, es el procesador de consumo más complejo hasta la fecha.

El AMD Phenom


Siendo el primer quadcore monolítico, el AMD Barcelona, fabricado en el nodo de 65nm, es un diseño radicamente diferente al de su competidor, el Core2Quad, éste último constando de dos dies Core2Duo en el mismo chip compartiendo el acceso al FSB.

En el caso de Phenom tenemos cuatro núcleos de procesamiento derivados de los actuales K8 (Athlon 64) con sus correspondientes caches L1 (datos 64KB e instrucciones 64KB) y L2 512KB dedicadas por core, y aquí reside la novedad, un uncore (similarmente al antiguo Xeon Tulsa) en el que encontramos la caché compartida L3 de 2MB y 32vías y las dos controladoras de memoria de 64 bit además del NorthBridge con los buses HyperTransport 3.

Los cuatro núcleos y sus cachés privadas (L1 y L2) funcionan a una frecuencia dada (actualmente 2.3 y 2.2 GHz) y el resto, el uncore (controladoras de memoria DDR2 y caché unificada L3), a una frecuencia inferior (1.8GHz en los 9500 y 9600) con un multiplicador fraccionario. Este diferencial de frecuencia aumenta significativamente la complejidad del diseño dadas las resincronizaciones necesarias en los intercambios de datos entre los dominios de reloj.

Las eficiencias de las caches L1 y L2 han aumentado considerablemente respecto al Athlon64, así como ha decrecido significativamente la latencia L2 (unos 14 ciclos random), ha mejorado mucho la eficacia del Hardware Prefetch (ahora no solo trabaja en memoria sino también en L2 y L3 por primera vez en un procesador AMD) y ligeramente la tasa de aciertos de la predicción de saltos (Branch Prediction). La operación con SSE se ha rediseñado totalmente llegando a niveles similares o algo superiores al Core2Quad a igualdad de reloj (núcleo Conroe, Penryn mejora notablemente en este aspecto con sus SSE4.1 y sus nuevas unidades de ejecución).

Añade las nuevas SSE4A, que por ahora no aportan demasiado. No confundir con las SSE4.1 de los micros Intel Penryn (una especie de SSE2 mejoradas y adaptadas a su nueva arquitectura).

AMD y los 65nm

Los micros Athlon64, inicialmente de 130nm, lograron una exitosa migración a los 90nm con el famoso núcleo Venice en los tiempos que Intel sufría con su core de 90nm, Prescott. Venice era mejor clock for clock respecto al Athlon64 original, consumía menos, escalaba mejor en frecuencia y dió a AMD una ventaja competitiva importante.

No sucedió lo mismo con la transición a 65nm. Actualmente los micros de mayor frecuencia de AMD todavía se fabrican con tecnología de 90nm (léase A64 6400+ a 3.2GHz, 2 L2 de 1MB). La misma CPU fabricada en 65nm (Brisbane 2L2 de 512KB) ráramente escala pasados los 3GHz (por otro lado Brisbane es algo más lento a la misma frecuencia)

Posiblemente sea la falta de recursos (económicos y técnicos) para la optimización y correcta migración al proceso de 65nm, pero estos son los hechos. Recordemos la bajísima capitalización actual de AMD (Nasdaq: AMD) en bolsa y la adquisición de ATI a un precio que luego se ha visto excesivo.

Las CPUs probadas (Phenom 9500 y 9600 Black Edition) funcionan respectivamente a 2.2 y 2.3GHz respectivamente (1,25V). Siendo el reloj de las controladoras de memoria y la L3 en ambos casos 1.8GHz (1,20V) y el HT3 3.6GHz. El 9600 BE permite además la libre selección de los multiplicadores de CPU y de la L3 y controladoras RAM.

Fuente: AMD.


La gran superficie y alto coste del chip ha marcado el tamaño de sus cachés. La L2 es de 512 KB, cuando los Athlon64 de gama alta gozan de 1MB por procesador. En cuanto a la L3, solamente 2MB para cuatro núcleos se antoja una cantidad insuficiente, dado lo extendido del software multithread y el uso del PC en los sistemas operativos actuales. Esto es en parte compensado por su alta asociatividad de 32 vías que aumenta la tasa de aciertos.

AMD ha dado a conocer que con Shanghai, el sustituto de 45nm de Barcelona (el actual Phenom), integrará 6 MB de L3 junto a otras mejoras. Este tamaño ya estará en competencia directa con Intel Nehalem y sus 8MB L3. Aunque mucho me temo que la L3 de Nehalem será bastante más rápida dada la maestría de Intel en este tema. Lo veramos en su momento.

La asincronía de Phenom

Pocos análisis se encuentran de esta característica tan singular y que marca definitivamente su diseño, disipación térmica, y prestaciones así como su discreta escalada de reloj.

Die del microprcesador Phenom.

Como anteriormente señalamos, tenemos dos frecuencias diferenciadas y un flujo de datos bidireccional entre ambos dominios de reloj. Lo que acarrea latencias de sincronización, un conocido enemigo del rendimiento. Es el precio a pagar por mantener a raya el consumo.

La "extrañamente" elevada latencia de la caché L3 (sobre los 49 ciclos) y la degradación de algunos parámetros de acceso a memoria respecto a su antecesor, el K8 (empeora ligerísimamente la latencia de memoria principal) se explican por esta asincronía.

La adición de un tercer nivel de caché tiene ventajas e inconvenientes, entre las ventajas destacaremos la coherencia de los datos de los cuatro núcleos al nivel de L3, ahorrando tráfico a la controladora de memoria y como desventajas la adición del chequeo de L3 en los accesos a memoria. (En los K8 no era necesario puesto que no había L3).

En un artículo analizaré la influencia de la frecuencia de la caché L3 y las controladoras RAM. Las frecuencias probadas serán 1.8 GHz (la nominal) , 2.0 GHz y 2.2 GHz.

Sensaciones personales

En el uso diario Phenom desprende un "aire de familia" herencia del Athlon 64, el equipo es más responsivo que un Core 2 Quad. Es más una sensación que una realidad, en general un Core 2 Qaud a la misma frecuencia suele ser más rápido, acaba antes la tarea. Al que le guste el automovil, es similar a esos coches que "parecen" acelerar de maravilla, pero luego el cronómetro demuestra que no era para tanto, el sonido del motor, la entrega de potencia ... sensaciones.

Sustituyendo un Athlon 64 6400+ (dos núcleos K8 90nm a 3.2 GHz y dos L2 de 1 MB) por un Phenom 9600 BE se percibe una gran mejora desde el primer momento (TLB Patch desactivado, RAM unganged) sin ningún cambio de configuración. Comprimiendo archivos, la velocidad (WinRAR) es sobre un 50% superior. La multitarea es mucho más fluida y las temperaturas de CPU son algo inferiores.

El bug TLB o Errata 298

TLB es una pequeña caché (Tranlation Lookaside Buffer) integrada en el procesador, que guarda la traducción de direcciones de memoria, cuando se produce un fallo del TLB se incurre en una penalización importante en el acceso a memoria (unos 30 ciclos en un Phenom).

En la práctica, el TLB Patch que implementan las placas de AMD Phenom, hace un bypass en el TLB, y fuerza siempre el acceso a las tablas de páginas memoria incurriendo en una notable reducción de las prestaciones.

Para un uso doméstico, recomiendo deshabilitarlo, en pruebas intensas y continuadas de cinco sistemas Phenom no he encontrado ninguna anomalía atribuible a dicho bug. Según AMD el fallo es extremadamente poco frecuente, requiere unas condiciones muy concretas que ráramente se dan en un ambiente doméstico.

Conclusiones

Sin duda alguna, este procesador diseñado por AMD y fabricado por Intel, habría sido demoledor en todos los sentidos. Qué duda cabe sobre el aplastante dominio de Intel en cuanto a tecnología de fabricación, que le otorga una gran ventaja competitiva.

AMD (y el resto de la industria) siempre llega de 6 a 12 meses tarde a cada generación o nodo. Intel ya tiene en el mercado CPUs de 45nm con núcleo Penryn dual y quadcore, con nada menos que 6 o 12MB (6 + 6 MB) de L2 integrada gracias al minúsculo tamaño de sus transistores.

Intel además goza de una gran ventaja en cuanto a consumo y disipación térmica por los mismos motivos. La siguiente generación, Nehalem, no solo es una amenaza para AMD, sino incluso para el mercado como lo conocemos. Puede ser peligroso un dominio aplastante que relegue al segundo fabricante a la gama baja o la desaparición.

Me queda la esperanza en el nuevo núcleo de AMD: Bulldozer. La información sobre este último es escasísima, pero se sabe que será más eficiente, con cachés más amplias, algunas versiones integrarán en el die aceleradores para tareas específicas (fusion).

A Intel le costó despertar tras la era netburst, canceló lanzamientos y proyectos (Tejas, el sustituto de Prescott ya estaba prácticamente listo) y dió un golpe de timón (el famoso right hand turn). AMD necesita algo similar ¿Tendrá la capacidad y los medios para lograrlo?

Actualizado 22 marzo 2008:

Hoy AMD publica su nuevo roadmap en el que detalla que el último stepping de Phenom 65nm será el B3 (corrige el TLB bug) y la máxima frecuencia 2.6GHz. Habrá que esperar a los 45nm (según AMD en Q4 2008) para ver frecuencias superiores.

En Abril AMD lanzará el Phenom 9550 y el 9650 (el sufijo -50 denota el stepping B3) con TDP 95W y a lo largo del año lanzará el 9750 (2.4 / 2 GHz) y el 9850 (2.5 / 2 GHz) con TDP de 125W y en Q4 2008 el 9950 (2.6 GHz / 2 GHz) TDP 140W (!).

Ver el siguiente artículo.