Mostrando entradas con la etiqueta asincono. Mostrar todas las entradas
Mostrando entradas con la etiqueta asincono. Mostrar todas las entradas

jueves, 2 de febrero de 2017

Uncore clock en Core i7 920 stepping D0. Actualizado - LowLevelHardware

El procesador Core i7 es un complejísimo ingenio con una estructura eminentemente modular. Los ingenieros de Intel lo diseñaron de este modo para dotar de flexibilidad al producto pudiendo así fabricar diversas versiones para distintos nichos de mercado.

En este artículo analizo en profundidad la influencia de la frecuencia del Uncore en las prestaciones de un Core i7 920 fuera de especificación con los núcleos a 3.5 GHz y 3.628 GHz, con multiplicador de cores X20 y Uncore X20 con BCLK de 175 y 181 MHz respectivamente sin Turbo Mode en Memtest86+ 2.11.

En Windows, en cambio con Turbo Mode X21 en cores.

UncoreColoreados los cuatro núcleos de Nehalem. El resto es el uncore.

Una característica clave de todos los procesadores actuales es su naturaleza asíncrona. En el procesador Core i7 hay tres frecuencias de reloj diferenciadas por su multiplicador derivado de un reloj maestro, el BCLK:

  • Frecuencia de los núcleos de ejecución
  • Frecuencia del uncore
  • Frecuencia de los enlaces QPI

La frecuencia de los núcleos es la más conocida e inmediatamente relacionamos su incremento con mayor capacidad de cálculo. En el procesador Core i7 este dominio de reloj comprende los cuatro procesadores con SMT y sus cachés privadas L1 y L2.

En el sistema fuera de especificación que estoy preparando, la frecuencia objetivo es de 3.8 GHz (BCLK 181 y multiplicador X21 Turbo Mode).

PIC02645 Pasando Prime 95 Blend en Windows XP Pro 24h.

Por su parte, la frecuencia del buses QPI no tiene gran importancia en sistemas de un solo socket, pues solo se utiliza para la comunicación con el chipset X58. En sistemas multiprocesador (varios sockets) su función principal es la comunicación entre varios chips Nehalem (Xeon), por ello incorporan tres enlaces de 4.8 a 6.4 GHz.

Frecuencia del uncore en Core i7

En cambio, mucho menos conocida es la influencia de la frecuencia del uncore, o lo que no son los cores (núcleos). El Uncore comprende la caché L3 de 8 MB y sus buses y también las tres controladoras de memoria DDR3 integradas con sus buffers de escritura y los mecanismos de hardware prefetch.

En el modelo i7 920, la frecuencia nominal del uncore son unos meros 2133 MHz para 2666 MHz en los cores sin turbo mode (2.8 GHz en turbo Mode).

Si incrementamos este parámetro obtenemos un claro incremento de prestaciones en software que haga un uso intensivo de la caché L3 y de la RAM e incluso podemos llegar a un diseño síncrono con los núcleos.

Datos experimentales obtenidos en Memtest86+ 2.11 sin Turbo Mode:

Multiplicador CPU X20, Uncore X16 – X20. Las cinco primeras configuraciones con BCLK 175 MHz, la última 181 MHz. En las dos últimas obtenemos sincronía entre los núcleos y el Uncore con multiplicador en ambos casos X20.

Image1 Velocidades en MB/s de los diferentes niveles de caché y memoria para distintos ajustes.

La velocidad de acceso a la L3 compartida (shared) de 8 MB se incrementa en cuanto superamos el multiplicador 2:1 con la memoria (memoria 1400 MHz, uncore 2800 MHz) y a partir de ahí se mantiene en un valor constante, en este sistema 34314 MB/s. (Todas las medidas con BCLK 175 MHz):

imageVelocidad de la caché L3 de 8 MB para distintas frecuencias del Uncore. Cores a 3.5 GHz.

En cambio, la velocidad de acceso a memoria principal por el triple canal DDR3 tiene un comportamiento más curioso con dos inflexiones:

Empieza en 14286 MB/s para un multiplicador Uncore:RAM de 2:1, incrementándose a 15555 MB/s a frecuencias de 2982, 3158 y 3333 MHz del uncore. En cambio cuando sincronizamos el Uncore con los núcleos se incrementa notablemente su velocidad hasta los 17157 MHz.

Esto es debido a que no es necesaria ya resincronización alguna entre los dos dominios de frecuencia, con la latencia añadida que este proceso comporta.

imageVelocidad de la RAM para diferentes frecuencias del Uncore. Cores a 3.5 GHz.

Más de 17 GB/s es un excelente resultado teniendo en cuenta que he utilizado 3 GB en un triple canal de DDR3 1333 normal y corriente Kingston CAS 9 (9-9-9-24 2T). Eso sí, las latencias las he configurado manualmente a 7-7-7-21 con 1T de acceso con una modificación manual de todos los parámetros relevantes en BIOS incluyendo los voltajes.

Capturas de pantalla Memtest86+ 2.11:

PIC02637Cores 3.5 GHz, Uncore 2.8 GHz, memoria triple channel 1400 MHz 7-7-7-21 1T.

Con todo optimizado al máximo incluidos los timings de memoria a 7-7-7-21 1T, el resultado son 14286 MB/s con la memoria en triple channel 1400 MHz. La caché L3 llega a unos 32 GB/s.

PIC02638Cores 3.5 GHz, Uncore 2.98 GHz, memoria triple channel 1400 MHz 7-7-7-21 1T.

Aquí vemos el primer incremento de velocidad en lectura de memoria y caché L3. Respectivamente de 14286 a 15556 MB/s y de 32 a 34 GB/s para la L3.

PIC02779 Cores 3.5 GHz, Uncore 3.50 GHz, memoria triple channel 1400 MHz 7-7-7-21 1T.

Aquí tenéis el segundo punto de inflexión con un gran incremento de ancho de banda (de 15555 a 17157 MB/s), con relojes síncronos cores-uncore a 3.5 GHz.

PIC02644 Core i7 920 @ 3620 MHz cores y 3620 MHz Uncore. Core i7 síncrono (!!).

Estos hechos me hacen sospechar una importante reducción de latencia con estos ajustes; lo comprobaré en unos días ya en Windows.

El diseño asíncrono

Como siempre se ha demostrado estos resultados apoyan la mayor velocidad de los diseños síncronos, aunque por consideraciones de consumo y disipación térmica son más adecuados los diseños asíncronos como Phenom II y core i7.

Señalar por último, que el incremento de la frecuencia del uncore debe de ir acompañado a su vez de un incremento en su voltaje de alimentación, con lo que crece también el consumo y disipación térmica de esta parte del procesador. Por lo que es crítico contar con un adecuado sistema de refrigeración.

Nota: No existe método de conocer la temperatura del uncore o de la caché L3 de 8 MB (no poseen sensores térmicos, al menos visibles al usuario…) con lo que recomiendo prudencia.

Para la segunda parte de este artículo visita este enlace de ProfessionalSAT, con resultados prestacionales excepcionales en Windows.

Phenom II X4 @ 3.6 GHz. Análisis microarquitectural en RMMA – LowLevelHardware

En este artículo analizo en profundidad el subsistema de memoria de un AMD Phenom II X4 940 fuera de especificación con el reconocido software RMMA, RightMark Memory Analyzer.

Image1

Configuración del sistema:

  • Uncore (literalmente “lo que no son los núcleos”) a 2.4 GHz
  • Placa Base ASUS AM2+/AM3 M4A79-Deluxe AMD 790FX – AMD 750
  • 4 GB en dos módulos Kingston HyperX DDR2 1066 5-5-5-15 2T 2.2V

Debo destacar que en este procesador he llevado a cabo un incremento de frecuencia diferenciado en los núcleos de ejecución y en el uncore:

  • De 3 a 3.6 GHz para los cuatro núcleos (un +20%)
  • De 1.8 a 2.4 GHz para el uncore que incluye la caché L3 de 6 MB y las controladoras de memoria DDR2 (un +33%)

Con lo que las prestaciones computacionales puras mejorarán de un 20 % a un 33 % sobre el rendimiento nominal en función del tipo de cálculo. Recordad que todos los análisis son en modo single-threaded, es decir, solo actúa uno de los cuatro núcleos. Para análisis multi-threaded ver el artículo anterior realizado con RMMT.

RMMA es un software diseñado para investigar cualquier pequeña peculiaridad del subsistema de memoria y las unidades de ejecución de cualquier procesador. Pueden incluso descubrirse detalles “no públicos”.

Latencia de D-cache y memoria:

rmma_20090227_143034_0281

Phenom II X4 @ 3.6 GHz / 2.4 GHz. Latencia D-Caché en RMMA

Podemos ver delimitadas con claridad cuatro zonas:

Primera zona: desde los 4 KB a los 64 KB la zona de caché L1D con 3 ciclos de latencia.

Segunda zona: desde los 64 KB hasta los 640 KB (64 + 512 KB) la zona de caché L2.

  1. Con una latencia mínima de unos 9.2 ciclos en acceso forward o backward (actuando eficientemente el hardware prefetch).
  2. En acceso pseudo-random obtenemos unos 12.2 ciclos, caso real en software bien programado.
  3. Y por último, en acceso púramente aleatorio (Random access) llegamos hasta los 15 ciclos.

Tercera zona: de los 640 KB a los 6720 KB (64 + 512 + 6144 KB) la zona de la caché L3 de 6 MB.

  1. El hardware prefetch se muestra altamente efectivo para accesos secuenciales forward o backward dando una latencia de solo 21 ciclos.
  2. En acceso pseudo aleatorio obtenemos unos 34.8 ciclos, caso real en software bien programado (programas científicos, algunos juegos…)
  3. Para el acceso aleatorio obtenemos unos 52 ciclos hasta que llegamos a los 2048 KB y desbordamos el D-TLB y aumenta progresivamente pasando por los 70 ciclos para accesos con bloques de 4 MB hasta los 78 ciclos para 6 MB.

Cuarta zona: de los 6720 KB en adelante la zona de memoria principal.

  1. El hardware prefetch se muestra extremadamente efectivo para accesos secuenciales forward o backward dando una latencia de solo 41 ciclos.
  2. En acceso pseudo-random (pseudo aleatorio) obtenemos unos 93 ciclos.
  3. Para el acceso puramente aleatorio, siendo un caso absolutamente extremo (worst case scenario) obtenemos unos 205 ciclos para un acceso respectivo de 8 MB, 230 para 16 MB y unos 236 para 32 MB.

Ya visualmente, para el familiarizado con estos términos, vemos que en el Phenom II X4 se ha implantado un muy eficiente mecanismo de hardware prefetch. Además, actúa no solo en memoria principal sino en las L2 privadas de 512 KB y lo más importante de cara a ocultar su latencia en la caché L3 compartida de 6 MB.

En el terreno de la caché L3, en estos procesadores se trata de un diseño compartido y su reloj asíncrono a los núcleos (en este caso con una relación núcleo : L3 de 3 : 2 para unas frecuencias respectivas de 3.6 y 2.4 GHz) lo que le otorga unas características peculiares.

Empíricamente, y por los tests realizados en éste y el anterior artículo, podemos aventurar la organización de sus buses L2 - L3. Muy probablemente son buses a cada core de 64 bit a frecuencia del uncore (2.4 GHz en este sistema), y con penalización en latencia por resincronización, y por ello limitan el ancho de banda de memoria por núcleo a un valor inferior al dual channel DDR3 1066.

Bus de datos caché L1 – caché L2

rmma_20090227_145303_0171

Bus L1 – L2 de 128 bits en AMD Phenom II X4.

El intercambio efectivo de datos entre la L1 y la L2 alcanza los 7.98 – 7.99 bytes / ciclo en lectura y los 4.68 – 4.73 bytes / ciclo en escritura.

Recordemos que la L1, la L2 y su bus de comunicaciones funcionan todos ellos a la frecuencia de los cores, en este caso 3.6 GHz.

Bus de datos caché L2 – caché L3 unificada

rmma_20090227_145643_0234

Bus L2 – L3 de 64 bits @ frecuencia del uncore (2.4 GHz) en AMD Phenom II X4.

La caché L2, al estar dentro de cada núcleo de ejecución, opera a la frecuencia de éste, a 3.6 GHz. Por el contrario la masiva caché L3 de 6 MB unificada se encuentra en el uncore y por ello es asíncrona a los núcleos y en este caso su frecuencia es de 2.4 GHz.

Como vemos en la gráfica, el bus L2 – L3, logra transmitir de 3.24 a 3.44 bytes / ciclo o unos 25.92 – 27.52 bits / ciclo contados a 3.6 GHz por un bus de 64 bit a cada uno de los cores.

En cambio si referimos estos datos al reloj del uncore, se convierten en 4.87 - 5.18 bytes / ciclo o 38.96 – 41.44 bits / ciclo.

Estos datos son claramente inferiores a los obtenidos en los procesadores Intel Core i7 que cuentan con un bus L2 – L3 más eficiente y con un ancho doblado a 128 bits.

Extraído de Core i7 vs Phenom en dual channel. Ancho de banda de cachés y memoria. 19/11/2008

“ La caché L3 de Phenom es claramente el punto débil de la arquitectura K10. AMD ha dotado de un bus de solo 64 bit a su L3 y esto limita gravemente sus prestaciones, siendo su transferencia del bus L2-L3 menos de la mitad que la de su nuevo rival, Core i7.

phenom_rmma_20080512_214024_0171

Como vemos en Phenom la caché L3 apenas mejora las prestaciones de la memoria principal y esto es además agravado por su pequeño tamaño (2 MB) mostrándose únicamente efectiva en escritura. Digamos que en el AMD Phenom la L3 sirve para reducir el acceso a memoria o la carga de trabajo sobre las controladoras de memoria.

Corei7_rmma_20081120_110524_0921_400

Como vemos la L3 de core i7 es extremadamente útil para mejorar la velocidad respecto al acceso a memoria principal y además cuenta con un tamaño considerable, 8 MB.

Aún así tengo ciertas esperanzas depositadas en los nuevos Phenom II basados en el nuevo Core Shanghai de 45 nm con 6 MB de L3 del que he hablado extensamente y que tendremos oportunidad de probar en Enero de 2009.”

Panorámica Caché L2 – Caché L3 – memoria principal:

rmma_20090227_145808_0078

Panorámica L2 – L3 – RAM en Phenom II X4 @ 3.6 / uncore 2.4 GHz.

Asociatividad caché L3

rmma_20090227_143417_0937

La teoría: caché L3 de 48 vías y 6 MB.

La asociatividad “total” debería ser de 2 + 16 + 48 = 66 vías, debido al diseño exclusivo de la arquitectura de cachés en los procesadores AMD.

De todos modos, al ser un procesador con la L3 no síncrona con los núcleos y por la peculiar forma de trabajar de la L3 (según AMD no es estrictamente exclusiva) que en ciertos casos puede duplicar datos de niveles inferiores es difícil realizar un análisis efectivo.

Latencia real efectiva caché L2

rmma_20090227_144308_0218

Latencia efectiva L2 en Phenom II X4.

En el punto de cruce de las cuatro gráficas obtenemos los 12 ciclos de acceso, la verdadera latencia L2.

Latencia real efectiva caché L3

rmma_20090227_144930_0750

Latencia efectiva L3 en Phenom II X4 3.6 GHz con uncore a 2.4 GHz.

El punto de cruce se encuentra en los 53 – 54 ciclos para esta configuración (núcleos a 3.6 GHz y L3 a 2.4 GHz).

Ancho de banda de memoria efectivo

Con un dual channel DDR2 1066 5-5-5-18 2T obtenemos un máximo teórico de 17 GB/s, veamos el ancho de banda efectivo en acceso de un solo núcleo (single threaded).

rmma_20090227_145340_0343

Ancho de banda single threaded Phenom II X4.

Limitado por un bus de solo 64 bit y además una frecuencia de ese bus (o al menos parte de él) a 2.4 GHz el ancho de banda efectivo es de unos 8.5 GB/s. Más o menos la mitad del dato teórico.

Simplemente AMD no ha creído necesario dotar a cada core de mayor ancho de banda y yo soy de la misma opinión en la actualidad.

En cualquier caso, si habéis echado un vistazo al artículo anterior en el que analizo el subsistema de memoria de este mismo equipo en modo multithreaded, es decir, en acceso concurrente de los cuatro núcleos, podemos observar valores mucho más cercanos al pico teórico de 17 GB/s (concretamente 15 GB/s efectivos):

32768x4_131072KB

Tamaño 131072 KB. Lectura de 15024 MB/s en memoria multithreaded x4.

Aquí doy por finalizado el análisis de este sistema, han sido con este ya cuatro artículos, creo que me doy por satisfecho...

miércoles, 5 de noviembre de 2008

La caché L3 de Core i7 Nehalem. Actualizado - LowlevelHardware

Intel ha echado el resto en el diseño y realización efectiva de la caché L3 de su nuevo procesador Core i7, antes conocido como Nehalem.

L3_400

La caché L3 de Nehalem, como todos sabéis de 8 MB y asociatividad de 16 vías, es compartida entre los cuatro núcleos y de naturaleza inclusiva. Está dividida en cuatro arrays de 2 MB:

2MB_L3array

Array de 2 MB de L3 de Nehalem.

Siendo el tercer nivel de caché el número de peticiones que recibe de los cuatro procesadores a los que sirve se ve muy reducido debido a las pequeñas y rápidas L2 de 256 KB de 8 vías lo que permite no saturar su bus de datos. Pensemos que la tasa de aciertos de la L2 debe rondar el 80 - 90% dependiendo del software.

Pondré un ejemplo, en numeroso software comercial la caché L2 de un Core2Duo mantiene un 300% más de peticiones que la L2 de un Athlon64 X2.

Esto es debido a la mayor tasa de aciertos de las L2 de los A64 X2 en comparación con los Core2Duo por su mayor tamaño (64 - 64 KB contra 32 + 32 KB).

En este sentido podemos considerar la necesidad de la pequeña L2 en los procesadores Intel Core i7 como un medio para mitigar el tráfico desde y hacia la L3 que, recordemos, sirve a cuatro procesadores muy eficientes sedientos de datos e instrucciones.

La L3 en AMD Barcelona Phenom

En su día critiqué el ,para mi, mayor defecto de la microarquitectura del AMD K10: su asincronía y sobretodo sus abultadas latencias de sincronización.

El K10, en su actual modelo superior, el Phenom 9950 BE mantiene su L3 y controladoras de memoria a 2 GHz mientras que los cuatro núcleos procesan a 2.6 GHz.

Esto provoca unas latencias de L3 que rondan los 45 - 50 ciclos y más grave todavía un ancho de banda de L3 en lectura realmente mediocre debido a su raquítico bus interno de únicamente 64 bit como podemos observar en el cuadro siguiente.

  Lectura GB/s Latencia ns Latencia ciclos
Caché L1 79.8 1.2 3
Caché L2 20.0 3.7 10
Caché L3 8.5 7.9 20
Memoria 8.0 55.0 138
Resultados obtenidos con Everest 4.50 en un AMD Phenom 9850 BE (2.5 GHz cores / 2 GHz L3 & MC) con 2 x DDR2 1066 5-5-5-16-2T.
 
La L3 de Intel Core i7 Nehalem:

El ingente equipo de arquitectos e ingenieros en Intel ha dado a luz un prodigio en forma de L3 para su nuevo procesador.

 

Lectura GB/s

Latencia ns

Latencia ciclos

Caché L1

51.2

1.2

4

Caché L2

34.1

3.2

10

Caché L3

18.2

5.7

18

Memoria

14.3

42.2

135

 

 

 

 

 

 

Resultados obtenidos con Everest 4.50 en un Intel Core i7 965 EE (3.2 GHz cores / 2.133 GHz L3 & MC) con 3 x DDR3 1066 7-7-7-20.

Si cambiamos la frecuencia del uncore a 2667 MHz (la nominal en el 965 EE) obtenemos ligeras mejoras en los datos de L3 y memoria principal:

  Lectura GB/s Latencia ns Latencia ciclos
Caché L1 51.2 1.2 4
Caché L2 34.1 3.2 10
Caché L3 18.9 5.2 17
Memoria 14.9 39.0 125
Resultados obtenidos con Everest 4.50 en un Intel Core i7 965 EE (3.2 GHz cores / 2.667 GHz L3 & MC) con 3 x DDR3 1066 7-7-7-20.

Conclusiones:

Intel ha dotado a Nehalem de un uncore con buses bien dimensionados para no ahogar a sus potentes núcleos de procesamiento.

Unas matemáticas elementales nos indican que el bus de L3 de Nehalem debe ser de 128 bit:

(2.133 GHz * 128 bit) / (8 bit / 1 byte) = 34.8 GB/s

34.8 GB/s es el ancho de banda asignado por Intel al bus de L3 en los modelos Core i7 920 y 940, lo que le da un margen de ampliación considerable y supera con creces el ancho de banda de tres canales de DDR3 1066 (25.5 GB/s).

En el Extreme Edition 965:

(2.666 GHz * 128 bit) / (8 bit / 1 byte) = 42.656 GB/s

Supera el ancho de banda de un triple canal DDR3 1333 (32 GB/s). Como vemos las frecuencias de Uncore no han sido escogidas por Intel al azar, sino para dotar de margen al diseño y ha fijado su frecuencia por defecto en el doble (2X) del valor de frecuencia de la DDR3 utilizada.

En resumen, una gran flexibilidad y un buen margen de ampliación sobretodo teniendo en cuenta el reloj dinámico del uncore y su funcionamiento comprobado sin fallos hasta los 4 GHz para hacer frente a 3 canales DDR3 a 2 GHz a 1.65 V.

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