jueves, 27 de marzo de 2008

El resurgir de Phenom. El Stepping B3 y el futuro Shanghai 45nm.

El esperado Phenom B3 está en la calle, el TLB bug, por fin forma parte de un pasado de auténtica pesadilla para AMD. Gracias a el, 2008 pinta mejor para el segundo mayor fabricante de microprocesadores de consumo.

Die del core Barcelona 65nm del AMD Phenom.


Todos los procesadores tienen, han tenido y siempre tendrán bugs, funcionamientos erróneos que se apartan de lo esperado en ciertas condiciones. Algunos se solucionan con parches (patches) en los sistemas operativos, otros mediante guías para los programadores en las que se les enseña como evitarlos y otros mediante cambios en las BIOS de las placas base.

El problema con el famosísimo bug 298, es que puede producir corrupción de datos y bloqueos / cuelgues del sistema en circunstancias muy concretas e infrecuentes. Los actuales procesadores AMD poseen una compleja estructura de caché exclusiva, a diferencia de su rival, Intel, que utiliza cachés inclusivas.

Una caché exclusiva como la del AMD Phenom funciona del siguiente modo. Tiene tres niveles (L1, L2 y L3), cada vez de mayor tamaño pero menor velocidad y mayor latencia que en ningún caso albergan los mismos datos, con lo que el tamaño de caché efectivo es la suma de los niveles.

Latencias de las cachés en Phenom stepping B2 y B3 (datos obtenidos con un 9600 Black Edition stepping B2):

  • L1: 3 ciclos.
  • L2: de 9 a 15 ciclos.
  • L3: de 20 a 49 ciclos.
  • Memoria principal: más de 125 ciclos a 2.3 GHz con DDR2 800 4 4 4 12 1T unganged.

Cuando un procesador requiere un dato de memoria primero busca en las cachés en orden ascendente, si no lo encuentra va pasando de un nivel a otro (L1 -> L2 -> L3) y si no hay suerte debe ir a memoria principal. En el caso de Phenom a través de sus dos controladoras integradas DDR2 @ 800 o 1066 MHz.

La organización exclusiva tiene la ventaja de que el tamaño efectivo es igual a la suma de L1 + L2 + L3. En Phenom este tamaño global es 64 + 512 + 2048 = 2624 KB. Pero tiene la clara desventaja de requerir mucha más lógica (más transistores, más superfície en el diseño) y crear un gran tráfico de coherencia entre niveles de caché.

En este tipo de arquitecturas hay un gran transvase bidireccional de datos entre niveles de caché, pues la información nunca está duplicada en más de un nivel. Al entrar una línea de caché en L1 se fuerza la expusión (eviction) de otro a L2.


Descripción del bug en la pág. 39 de la guía "Revision Guide for AMD Family 10h Processors".


El problema con ERRATA 298 reside en el TLB L2 de Phenom y su relación con la L3. Digamos, para no profundizar demasiado, que dos procesos pueden obtener datos diferentes acerca de la misma dirección de memoria, unos correctos, los otros erróneos. Estos últimos son los que generan el problema.

Más técnicamente: Una linea de L2 TLB usada por el sistema operativo para traducir las páginas de memoria virtual a memoria física puede ser duplicada en L3 (¿arquitectura exclusiva?) y si en ese momento otro proceso utiliza esa línea de L3 con datos erroneos ...

Para los autenticos adictos recomiendo el siguiente artículo de LostCircuits del siempre excelente Michael Schuette.

Con el stepping B3 se corrige este error y por fortuna para AMD, abre una nueva etapa para su procesador estralla, el AMD Phenom.

Con el B3 surgen dos nuevos modelos:

  • Phenom 9850 Black Edition. 2.5 GHz Cores / 2.0 GHz NB/L3/Controladoras RAM.
  • Phenom 9750. 2.4 GHz / 1.8 GHz.

Que se añaden a los ya existentes stepping B2:

  • Phenom 9500. 2.2 GHz / 1.8 GHz.
  • Phenom 9600. 2.3 GHz / 1.8 GHz.
  • Phenom 9600 Black Edition. 2.3 GHz / 1.8 GHz.

Como podemos observar el sufijo -50 marca el nuevo stepping B3. Además y al mismo tiempo AMD lanza los Phenom X3, quadcores con un núcleo desactivado: Será la serie 8000, por ahora todos ellos continúan siendo B2.

En cuanto a prestaciones, no hay diferencia entre el antiguo B2 sin el TLB patch y el nuevo B3. El Phenom 9850 BE es el actual sweet spot de la gama dado su relativamente alta frecuencia y sus multiplicadores desbloqueados que permiten un sencillo overclocking hasta los 2.7 - 2.8 GHz.

El core Shanghai.

Así se denomina el nuevo procesador quadcore de 45nm de AMD. Es un core shrink del núcleo Barcelona de 65nm. Incluye pequeñas mejoras respecto al core Barcelona de Phenom 65nm y aumenta muy significativamente la L3 de 2 a 6 MB, además de permitir frecuencias de funcionamiento más elevadas y disipaciones térmicas significativamente menores.


Die del nuevo core AMD Shanghai. Pulse en la imagen para obtener una en alta resolución 2088x1612.


Con Shanghai, AMD pretende competir en mejores condiciones con Intel y su Penryn QuadCore, pero lo tendrá más difícil con Nehalem, la siguiente microarquitectura de Intel. Según estimaciones del fabricante Shanghai será sobre un 15% superior al actual núcleo de 65nm clock for clock.

Hay un parámetro en el que AMD sí tiene una clara ventaja como señala hoy Johan de Gelas en AnandTech, se trata del TLB. Hablando de cargas de trabajo propias de servidores utilizando virtualización, un TLB de gran capacidad como el de Barcelona o Shanghai puede aportar un incremento del 10-20% en prestaciones, debido al particionamiento de este recurso entre las distintas máquinas virtuales.

Press KIT dónde se explican las peculiaridades del proceso de 45nm de AMD-IBM.

Más imágenes de alta resolución de Shanghai y del wafer de procesadores.

Shanghai tendrá una superficie estimada de 240 mm2, similar a Intel Nehalem, y una desidad de caché L3 de unos 7-8 mm2/MB. Recordemos que el actual Phenom 65nm (core Barcelona) tiene la friolera de 283 mm2 (!).

Todo parece indicar que AMD ha dado en el clavo con el Phenom B3, recordemos que el más alto de la gama, el 9850 BE tiene un precio inferior al quadcore más económico de Intel, el Q6600.

Prestacionalmente el 9850BE es similar al Intel Core2Quad Q6600 a un precio ligeramente inferior. AMD ahora sí está en el buen camino.

Carlos Yus Valero – informaticapremium informaticapremium-logo-150px

domingo, 23 de marzo de 2008

Impacto de la frecuencia de la L3 y controladoras RAM en AMD Phenom.

Como destaqué en un artículo anterior, una característica clave de Phenom es su asincronía. Aquí estudiaré el caso del 9600 Black Edition, actualmente la versión más alta del fabricante de semiconductores con base en Dresden, Alemania. Al final del artículo analizo la influencia comparativa entre el reloj de la memoria (DDR2 800 / 1066 MHz) y la frecuencia del NB/L3(1.8 / 2.0 / 2.2 GHz).

AMD Phenom B2 die. Fuente: AMD.

Sombreados en verde los cuatro núcleos que trabajan a 2.3 GHz, el resto del procesador (NB, L3, controladoras RAM DDR2) funciona a 1.8 GHz de frecuencia nominal. Veamos como afecta a las prestaciones el reloj de la controladora de memoria y la caché L3.

Utilizaremos SuperPi mod1.5 XS 2M y el benchmark integrado en WinRAR 3.71.

Sistema de pruebas:

  • Fuente alimentación: Tacens Aeris 680W cobre.
  • Placa base: Gigabyte GA-MA790FX-DS3 Rev.1.0.
  • CPU: AMD Phenom 9600 Black Edition.
  • Disipador / ventilador: AMD stock Cobre + Heatpipes.
  • Memoria: 2 módulos Corsair CM2X2048-6400C5 (total 4GB).
  • Timings: 5 5 5 18 2T 800 MHz.
  • Controladora de memoria: Unganged.
  • SVGA: Ati Radeon 3870 512 MB GDDR4.
  • HD: WD 5000 AAKS 16 MB modelo nuevo (platos de 320 GB).

Resultados:

Como vemos las diferencias son mínimas. En SuperPi 2M son menores al 1% y en WinRAR sobre un 4,5% entre extremos. Con tamaños mayores hubieramos visto diferencias más abultadas en SuperPi, pero siempre menores que con WinRAR.

Resultados WinRAR 3.71 en KB/s.


Resultados SuperPi 2M en segundos.


El aumento de rendimiento es mayor en WinRAR porque es muy sensible a la latencia de memoria, y esta disminuye al aumentar la frecuencia de la caché L3 como podemos ver en las sigientes imágenes.

Phenom 9600 BE de serie. 2.3 / 1.8 GHz.

Phenom 9600 BE con controladoras y L3 @ 2 GHz.

Phenom 9600 BE con controladoras y L3 @ 2.2 GHz.

Resultados obtenidos con el software CacheBurst32. Como podemos observar al aumentar la frecuencia del NB se reducen las latencias L3 y aumenta el ancho de banda de este nivel de caché (lo que se observa en el gráfico cian).


Comparativa reloj RAM - reloj NB / L3 / Controladoras RAM:

El sistema de pruebas es idéntico al anterior excepto la memoria. En este caso son:
  • Dos módulos Kingston HyperX 1 GB 1066 DDR2.
  • Timings @ 800 MHz. 4 4 4 12 1T @2.0 V.
  • Timings @ 1066 MHz: 5 5 5 15 2T @ 2.2 V.
  • Modo unganged.

Compresión con 7zip de 700 MB repartidos en ocho archivos. Opciones de compresión:

  • LZMA / Ultra / Diccionario: 64 MB / Palabra: 273.

Resultados. Tiempo de compresión en segundos.

Globalmente podríamos decir que el AMD Phenom a las frecuencias de núcleo actuales no está apenas limitado por el reloj de su L3 y sus controladoras de memoria (1.8GHz), cosa que cambiaría si pretende pasar a DDR3 con su mayor ancho de banda. Recordemos que el bus de 64 bit de la L3 de Phenom 9600 BE (2.3 GHz) llega a 14.4 GB/s (1.8 GHz * 64bit / 8bit / byte).

A modo de apunte, ancho de banda de memoria DDR2 dual channel:

  • @800 equivale a 12.8 GB/s, cuando
  • @1066 equivale a 17 GB/s, sobrepasando el actual ancho de banda interno del Phenom con NorthBridge a 1.8 GHz.

Los futuros Phenom 9700 (2.4 GHz) y 9900 (2.6 GHz) aumentan la frecuencia del NB/L3/Ctrl.RAM a 2 GHz, resultando todavía insuficiente para la DDR2 1066.

Conclusiones:

Como vemos el paso de DDR2 800 con buenos timings ( 4 4 4 12 1T) a DDR2 1066 con tiempos más relajados ( 5 5 5 18 2T) no aporta gran cosa, podemos decir que aporta prestaciones equivalentes y además requiere más voltaje en los módulos (2.2 V frente a 2.0 V), por lo cual recomiendo la primera opción.

El incremento de prestaciones variando el reloj de NB/L3 a 2 GHz o mejor a 2.2 GHz proporciona mejoras apreciables en algunos tipos de software dependientes de la latencia. Sólamente con el NB/L3 a 2.2 GHz es posible encauzar el ancho de banda del dual channel DDR2 1066, eso sí, a costa de una mayor disipación térmica por el mayor voltaje necesario en el NB.

Carlos Yus Valero – informaticapremium

martes, 18 de marzo de 2008

Nehalem. Intel despliega su poder.

Con Nehalem, la saga Core 2 llega a su fin. Basado en los cimientos de su antecesor y en una evolución similar al cambio del K7 al K8 en AMD, Nehalem contará con controladoras de memoria y caché L3 integrados en el die. Los primeros integrantes de la saga serán los quadcores nativos de 45nm y 8 MB L3 y más adelante llegarán los octacore de 16 MB L3.
 

Intel roadmap hasta 2012. Gesher es una nueva Microarquitectura post-Nehalem.


Primera imagen disimulada del die de Nehalem. Fuente: Intel IDF.

Probablemente serán conocidos por el gran público como Core3Quad. Su arquitectura es una demostración de la potencia y el dominio de Intel como fabricante. En mi modesta opinión su arquitectura resulta, además de potente y evolucionaria, súmamente elegante.

Partiendo de los excelentes Core2 (Conroe y Penryn), Nehalem sienta las bases de un verdadero salto cualitativo en prestacónes. Aúna los mejores núcleos de procesamiento del mercado con un extraordinario diseño de baja latencia (siguiendo la estela de AMD) y altísimo ancho de banda.

Antecedentes. La era netburst.

Pocos años atras Intel estuvo contra las cuerdas. AMD llegó primero en la carrera del gigahertz (con su flamante K7 Thunderbird 1000 MHz), dominó con sus procesadoras K7 Athlon a los Intel Pentium III, Athlon XP peleó sin complejos con los primeros Pentium 4 Willamette de 180nm, Intel recuperó terreno con el núcleo Northwood Hyperthreading de 130nm, pero se hundió con Prescott 90nm al competir con el entonces novedoso y veloz K8 Athlon 64 130nm.

Para conseguir las máximas prestaciones, ya en la fase de concepción del procesador, hay dos caminos:

  • Crear un procesador ancho (Brainiac) que procese el mayor número de instrucciones en paralelo y consiga el mayor rendimiento por ciclo.
  • Diseñar una CPU de la máxima frecuencia posible (Speed Demon), eliminando toda la lógica innecesaria de las etapas críticas de ejecución y diseñar circuitería agresiva específica con el único objetívo de minimizar el tiempo de ciclo.

El segundo camino fué el elegido por Intel en la concepción del Pentium 4 Willamette, una CPU basada en un mal diseño de sus arquitectos (20!! etapas de pipeline con dos Replay system) salvada por los excelentes técnicos e ingenieros de procesos y circuitos de Intel.

Justificación de la arquitectura Netburst.


Netburst fué una huída hacia adelante. Una bonita idea teórica que las leyes de la física (concretamente la termodinámica) se encargaron de enterrar. Los planes de Intel eran espectaculares, se hablaba de CPUs a más de 10GHz. El propio Prescott debía llegar a los 5 GHz y Tejas, su sucesor, rondaría los +7 GHz. Pipelines cada vez más largos, mayores latencias, ... solo suplidos por más y más frecuencia con L2 de más y más capacidad. Este fué el plan de Intel y se plasmó en sus roadmap de la época.

Pero un día Intel despertó y, en un giro radical, canceló fulminantemente Tejas (ya en fase de pruebas, prácticamente terminado), dando por finalizada esta arquitectura. Emprendió la senda dual core con Smithfield 90nm (dos dies Prescott 1MB), modificó su derivativa, Presler 65nm, para favorecer un menor consumo y no una brutal y a cualquier precio escalada de reloj.

Prescott (31!!! etapas de ejecución con un Replay system, Replay buffer, 90nm 1 MB L2, tercera generación) sufrió graves problemas de consumo y disipación térmica que no pudieron ser solucionados y marcó el fin de una era, el fin de netburst. De toda la saga destacaría Northwood (130nm 512KB L2, la segunda generación) y el mencionado doble núcleo Presler (65nm 2 + 2 MB L2).

La arquitectura Core y Core 2.

Anteriormente, Intel tenía dos diseños diferenciados: uno para sobremesa y servidores (Netburst) y el segundo para portátiles (Core). Resulta muy costoso mantener y evolucionar dos productos tan divergentes, y en aquella tesitura y con los problemas de Prescott y el exagerado consumo de Tejas (se hablaba de más de 150W), se decidió muy acertadamente dar preferencia a la segunda opción, la llamada arquitectura Core.

Primero fué Banias (130nm), un descendiente directo del Pentium III Tualatin (130nm 512KB L2), integraba 1 MB de L2 y llegó a los 1.6GHz. Fué el procesador que dió prestigio a la conocida plataforma Centrino. Le siguió Dothan (90nm) con 2 MB L2 y ciertas mejoras internas y por fin Yonah (90nm, 12 etapas), conocido como CoreDuo, el primer dual core para portatiles. Integraba una caché L2 de 2 MB unificada y mejoras en el proceso SSE.



Tick-Tock. El imparable ritmo de Intel. Fuente: Intel IDF Sept. 2007.

En el centro de Intel en Israel (cuna de los procesadores de la plataforma Centrino) se llevaron a cabo los trabajos que conducirían al actual Core 2 Duo y Core 2 Quad (14 etapas, 65nm), un diseño universal, que abarca desde portátiles a servidores.

Se especuló que podía haber versiones de sobremesa de Yonah con frecuencias más elevadas, pero Intel esperó al Core 2. Con su núcleo Conroe, protagonizó una revolución, batió a los AMD Athlon 64 que durante tres años habían dominado el mercado aplastantemente.

Cuando Intel desveló las primeras estimaciones de prestaciones de Conroe, debo decir que todos fuimos escépticos. La diferencia era demasiada para ser verdad, superaba demasiado al excelente AMD Athlon64 clock for clock. ¿Se trataba de un truco de marketing? Resultó ser totalmente cierto.

Harpertown, dos dies Penryn, la derivativa de 45nm. Fuente: Intel IDF Sept2007.


El primer Nehalem. Core ¿3? Quad.


Fuente: Intel. Modificada para resaltar en amarillo las cuatro nuevas L2 256 KB.

La superficie estimada de Nehalem son alrededor de 240 mm2, un gran chip, nada barato de fabricar. Con una densidad en su L3 inferior a 6 mm2/MB, un resultado excelente y muy superior a su competidor, el AMD Shanghai. Intel demuestra su maestría en el diseño de las cachés.

AMD, en sus cores Barcelona y Shanghai, utiliza las mismas células para la L2 y la L3. Intel, al contrario, fabrica diferentemente ambas estructuras.

Foto de Nehalem. Fuente Intel IDF 2007.

 

El die monolítico de Nehalem, un quadcore nativo, consta de:

  • Cuatro procesadores derivados del núcleo Penryn (con numerosas mejoras).
  • Cuatro L2 de únicamente 256KB de bajísima latencia, dedicadas, una por núcleo.
  • 8 MB de L3 caché compartida (shared) por los cuatro núcleos.
  • Estructura de caché inclusiva, clásica de Intel.
  • QPI. QuickPath Interconect. Similarmente al HT3.0 de AMD.
  • 3 (!) controladoras de 64 bit DDR3 1333.
  • Multithreading de dos vías por núcleo.
  • En principio la L1 sigue en los niveles de Core2Duo: 32 + 32 KB.

Tres canales DDR3 1333 dan un ancho de banda agregado de 32GB/s. Compárese con, por ejemplo, un dual channel DDR2 800, 12.8GB/s. A 3GHz, un bus de 128bit, transfiere unos 48 GB/s, a 4GHz son 64 GB/s. Estos serán, si no me falla la intuición, los datos del bus de L3 de Nehalem. Un bus L3 de 64 bit sería claramente insuficiente.

En Nehalem, Intel añade entre otras novedades ya citadas:

  • Desaparece el FSB. Nehalem se comunica con el exterior mediante sus 3 controladoras de memoria DDR3 y los buses QPI.
  • Un nuevo TLB de segundo nivel (de mayor tamaño, más lento pero mucho más preciso) que actúa en caso de fallo del TLB primario aumentando el rendimiento y disminuyendo las latencias. En este particular Intel se acerca a AMD, con Conroe o Penryn era claramente inferior.
  • Un predictor de saltos (Branch Predictor) de segundo nivel, que apoya al principal y mejora las tasas de acierto.
  • Aumenta el nivel de paralelismo interno de cada procesador (recordemos que incorpora multithreading de dos vías) pudiendo analizar una ventana de ejecución de 128 (en lugar de 96 en Core2) instrucciones para extraer el máximo rendimiento.

Según Intel las nuevas L2 de 256 KB serán de baja latencia. Recordemos que en Core2Duo las L1 tienen 3 ciclos y las L2 14 ciclos. Si mantiene la latencia L1 (lo más probable), la L2 sin duda decrecerá, pero es difícil saber cuanto. Los Pentium III Coppermine con sus 256 KB tenían 10 ciclos de latencia, por ahí podría ir la de Nehalem. Yo apostaría por unos 9 ciclos.

Carlos Yus Valero – informaticapremium

domingo, 16 de marzo de 2008

QuadCores y multithreading en Windows XP. Aplicación Single Threaded.

Windows XP SP2 soporta nativamente los actuales procesadores AMD Phenom e Intel Core2Quad, ambos de ellos con cuatro nucleos de procesamiento. La pregunta que muchos se plantean es: ¿Está realmente optimizado su rendimiento? Aquí intentaré responderla y dar algunas claves para aumentar la efectividad de los micros Quad Core sean estos Intel o AMD.

Equipo Quad Core en el Administrador de Tareas de WinXP.
 
El administrador de tareas de Windows XP SP2 (Professional en este caso) es una importante herramienta en la optimización de este tipo de sistemas. Avanzándonos un poco, podemos decir que Windows XP, no sin buena voluntad, intercambia los threads entre núcleos sin un orden muy concreto ni coherente, generando con ello varios problemas.

Intel Core 2 Quad 6600 vs. AMD Phenom 9600 Black Edition

Sistema Intel:
  • Core 2 Quad 6600. Núcleo Conroe, stepping G0 (2.4GHz 2*4MB L2 / 266 QPB FSB)
  • Placa base Gigabyte GA-P35 DS3R rev3.1
  • 2*1GB Kingston HyperX DDR2 800 @ 5 6 6 18 2T (SPD)
Sistema AMD:
  • Phenom 9600 BE stepping B2. Núcleo Barcelona (2.3GHz 4*512KB L2 / 1.8GHz NorthBridge y 2MB L3, HT3 3.6 GHz).
  • Placa base Gigabyte GA-MA770DS3.
  • 2*1GB Kingston HyperX DDR2 800 @ 5 5 5 18 1T (SPD).
  • TLB Patch deshabilitado.
  • Controladoras de memoria Unganged.
  • Driver CPU AMD Phenom instalado. Descarga.
  • El resto de componentes es irrelevante para el resultado e identico en ambos sistemas.

Cálculo SuperPi mod1.5 XS 1M. Descarga.

SuperPi mod1.5 XS

Tiempos en segundos. SuperPi es un benchmark que claramente se ejecuta más rapido en la arquitectura Core2, con la elección de otro test cambiarían los resultados.


Tiempos de cálculo con el sistema por defecto.

T1, T2, ... T6 son las seis ejecuciones del test, siendo MED la media de los resultados. Como vemos, consistentemente acaba antes el cálculo el Core2Quad y por un buen margen, pero aquí no quiero resaltar diferencias de rendimiento entre las dos arquitecturas sino analizar su comportamiento en XP.

Corriendo el programa por defecto los resultados son:

  • Core2Quad 6600: 22,75s (media)
  • Phenom 9600 BE: 35,65s (media)

Ahora vamos al Administrador de tareas y hacemos click derecho en el ejecutable Super_pi_mod.exe, seleccionamos Establecer afinidad ...

Y nos aparecerá la siguiente ventana, seleccionamos CPU 0 (o cualquier otra), ya que SuperPi es single threaded (es decir, solo utiliza un núcleo), es del año 1995...

Processor Affinity CPU 0.

Los nuevos resultados son:

Tiempos de cálculo asignando manualmente la afinidad.

  • Core2Quad 6600: 21,06s (media)
  • Phenom 9600 BE: 33,85s (media)

Ambos tiempos de ejecución decrecen, claramente aumenta el rendimiento al asignar manualmente los procesos a los núcleos cuando el número de threads es inferior al de procesadores en el sistema. El equipo AMD mejora sus tiempos un 7,5% y el Intel un 5% debido a diferencias arquitecturales.

Conclusiones:

Al asignar manualmente los recursos físicos a las aplicaciones que no utilizan los cuatro núcleos podemos fácilmente aumentar el rendimiento de nuestra aplicación favorita. Y no solo eso, además conseguimos una excelente repetitividad de los resultados (desviaciones standard bajas) consiguiendo una buena trazabilidad y ahorrándonos tiempo de testeo.

Intel Core2Quad. Dos dies Conroe cada uno de ellos con 4MB de L2. Las dos cachés L2 de 4MB son independientes. Podemos diferenciar dos casos asignando la afinidad manualmente:

  • Datos compartidos entre core0 y core1 o core2 y core3. Los datos de la aplicación se cachean en la L2 compartida y se intercambian con latencias muy bajas entre los dos núcleos (del orden de 14 ciclos). La caché efectiva son 4MB.
  • Datos comunes entre núcleos que no comparten caché L2, por ejemplo Core0 y Core 3. Los datos de la aplicación se cachean en ambas L2 de 4MB (siendo el tamaño efectivo igualmente 4MB). La latencia core-core es del orden de 50-60 ciclos. Cuando un núcleo requiere un dato presente el la L2 del otro die debe acceder a él a través del FSB.

AMD Phenom. Un único die monolítico integra los cuatro nucleos y el uncore. Éste último consta principalmente del NorthBridge, la caché L3 de 2MB y 32 vías, las dos controladoras RAM DDR2 de 64bit y el HyperTransport3. Todo ello a una frecuencia inferior a la de los núcleos.

Al asignar SuperPi manualmente al core0, favorecemos los aciertos de caché L2 de este núcleo (las L2 de Phenom ,4 de 512 KB, son 1/8 de las dos del Core2Quad y es exclusiva por núcleo. Dado su pequeño tamaño y menor tasa de aciertos agradece más nuestra ayuda...), no siendole necesario "salir" a L3 o RAM y consiguientemente aumentando el rendimiento.

La penalización es mayor en este caso debido al escaso ancho del bus de L3 (64 bits) y su funcionamiento asíncrono respecto a los procesadores.

Con solo 64 bits AMD ha creado un futuro bottleneck en su arquitectura que si bien ahora no es muy notorio, con el paso a DDR3 y altas frecuencias en el bus de memoria deberán revisar y ampliar. A modo de curiosidad, a 1.8GHz y 64 bits, el ancho de banda (bandwidth) es algo superior a un dual channel DDR2 800.

En un próximo artículo analizaré la dinámica de estos procesadores en situaciones de multithreading con datos compartidos en sus cachés L2 / L3, con interesantes datos de rendimiento. Las aplicaciones seran 7zip (dualthreaded) y WinRar (multithreaded).

Carlos Yus Valero – informaticapremium

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.

Carlos Yus Valero – informaticapremium