lunes, 24 de noviembre de 2008

La verdadera latencia L3 de Core i7. Actualizado - LowLevelHardware

Intel ha conseguido un diseño brillante para la caché compartida de 8 MB de los procesadores Core i7. Ha superado a AMD con su núcleo Barcelona, cuya L3 apenas destaca en ancho de banda de lectura frente a la memoria principal y más bien sirve de buffer para evitar / disminuir la carga en la RAM del sistema.

PIC01478a

En este caso analizamos el Core i7 920, el benjamín de la familia. La latencia en el 940 será peor (mayor frecuencia de núcleos, misma del Uncore) y algo mejor en el 965 EE.

Relación de frecuencia entre cores:uncore en la gama Core i7:

  • Core i7 920. Cores:Uncore 20:16 (5:4)
  • Core i7 940. Cores:Uncore 22:16 (11:8)
  • Core i7 965 EE. Cores:Uncore 24:20 (6:5)

A valor más bajo mejor rendimiento y menor latencia.

Latencia con software convencional: CPUZ 1.23.

CPUZ_lat_3ch_NOTurbo

Según CPUZ, el core Nehalem disfruta de una ajustadísima latencia de 36 ciclos para su tercer nivel de caché. Una latencia verdaderamente brillante (solo añade 22 ciclos per se).

Análisis con software especializado: RMMA 3.8.

rmma_20081122_113011_0656

En la gráfica ya observamos una latencia inicial de 42 ciclos que va empeorando conforme se van dando más y más fallos del D-TLB.

Haciendo un análisis más pormenorizado, descubrimos el verdadero valor de la latencia L3 en Nehalem:

rmma_20081124_103334_0953

El punto de cruce de las cuatro gráficas corresponde con el valor real efectivo de la latencia L3 en condiciones reales: 49 ciclos.

Cierto es, que en caso de aciertos de D-TLB, curva verde (acceso pseudo-aleatorio) tenemos una latencia de 42 ciclos, este sería la latencia efectiva en el caso de software excelentemente programado.

Conclusiones:

De este análisis, resulta un valor cercano al de la L3 del AMD Phenom Barcelona de 65nm, unos 49 - 50 ciclos.

rmma_20080512_214303_0609

Lo que sí es cierto es que Nehalem supera amplísimamente a Barcelona en el ancho de banda de su L3 (de un artículo anterior):

" Al llegar al LLC (Last Level Cache) o último nivel de caché, en este caso la caché L3 la diferencia se torna abismal en favor de Core i7. En lectura de L3, Core i7 transfiere 8.40 Bytes/ciclo (8.08 B/ciclo al superar los 2 MB) mientras que Phenom se queda en unos anémicos e insuficientes 3.59 B/ciclo para atender un dual channel DDR2 1066. "

" 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 menos de la mitad (transferencia del bus L2-L3) que en su nuevo rival, Core i7. "

Según los diseñadores de Nehalem, con el próximo Tick en su cadencia Tick-Tock, esperan reducir la latencia de L3 y, sobretodo, aumentar considerablemente su tamaño.

Este nuevo procesador Westmere, la versión de 32 nm de Nehalem, es esperado para Q4 2009 - Q1 2010 e incluirá estas innovaciones entre otras.

viernes, 21 de noviembre de 2008

AMD Phenom II. Actualizado - LowLevelHardware

En poco más de un mes, en enero de 2009, AMD empezará a comercializar los AMD Phenom II basados en el core Shanghai de 45 nm y 6 MB de caché L3.

amd_02[1]

En un principio saldrán a la luz las versiones AM2+ para memoria dual DDR2 1066 compatibles con las actuales placas base y más adelante los AM3 para DDR3.

Shanghai

Con Shanghai, AMD fabrica el procesador que habría deseado sacar al mercado a finales de 2007. El tamaño de caché L3 de Barcelona (Phenom 65 nm) es, como todos sabéis, insuficiente para el software actual.

amd_analyst_day_banner

Más todavía, Barcelona tiene una grave carencia de ancho de banda de caché L3, tanto que ahoga sus prestaciones. Esto es debido al pequeño ancho del bus L2-L3 (128 bit bidireccional)  y a su baja frecuencia (1.8 GHz y 2 GHz en los Phenom actuales).

1237333[1]

En los nuevos Phenom II habrá modelos (como el 940 BE) que contarán con una frecuencia del Uncore de 2.2 GHz, lo que permitirá mayores velocidades de su L3 y menores latencias.

El overclock, con refrigeración convencional, se extenderá hasta los 4 GHz y con medios más exóticos rondará los 5 GHz hasta los casi 6 GHz con LN2 según pruebas realizadas el día 13 en el AMD Financial Analyst Day con chips stepping C2-H, un stepping inferior al que tendremos en retail en Enero.

1237334[1]

En términos sencillos, una L3 de gran tamaño, ayuda sobretodo en casos de acceso aleatorio a datos, proceso de enteros (ofimática, compresión y descompresión de ficheros, ...) y menos en situaciones de coma flotante y streaming (vídeo).

1237344[1]

En valores absolutos ni Intel ni AMD están satisfechos con sus tamaños presentes de caché por núcleo. Tamaño de LLC (Last Level Cache) por núcleo en procesadores actuales:

  • Core 2 Penryn 45nm: 3 MB por core
  • Core i7 45 nm: 2 MB por core
  • AMD Barcelona 65 nm: 1 MB por core (512 KB+ 512 KB)
  • AMD Shanghai 45 nm: 2 MB por core (512 KB + 1536 KB)

Los arquitectos de CPU consideran estos valores insuficientes y esperan a los 32 nm para poder implantar en sus diseños L3s de tamaños más eficientes.

Recordar que doblar el tamaño de una caché multiplica su tasa de acierto por 1.41 (raíz cuadrada de 2) y más aciertos de caché significan menos accesos a memoria con su dilatada latencia de 150 - 200 ciclos.

1237345[1]

En Q1 2009  AMD lanzará la plataforma AM3 con dual channel DDR3, que convivirá con el actual AM2+. Los modelos acabados en 5 corresponden a AM3.

1237350[1]

Y será ya en el nodo de 32 nm cuando AMD lance el six-core nativo Orochi (antes conocido como Istambul) con una L3 de más de 6 MB y yo creo que más de 8 MB (aunque depende de la geometría final del diseño) y de la densidad de la L3 de AMd en 32 nm.

amd_roadmap_2008_2011

Y todo esto nos lleva a la reestructuración total de AMD debido a sus problemas financieros. Recordemos que se desprende de sus fábricas de semiconductores y funda junto a otros grupos inversores The Foundry Company, que será la que desde ahora se ocupará de la fabricación en sí de los diseños de AMD.

Para más información ver este artículo pasado en ProfessionalSAT.

AMD_manuf

Aquí podemos ver el roadmap para 2009 - 2010 de fabricación de The foundry Company. Esperemos que este cambio estratégico sea beneficioso y AMD pueda centrarse en el diseño puro de procesadores.

AMD_manufB

La división gráfica de AMD, ATI, podrá acceder también a recursos de The foundry Company, aunque siempre en proceso Bulk o proceso general.

 amd_phenom_2_logo

En resumen, buenas expectativas para los Phenom II que esperemos se materialicen en Enero. Según AMD, en el diseño de este procesador han puesto énfasis en el ahorro energético y la baja disipación térmica y en la optimización de los puntos que hacían de Barcelona un mediocre overclocker.

Post scriptum:

Un AMD Phenom II 940BE a 3 GHz tendrá prestaciones similares a un Phenom actual a unos 3.5 - 3.6 GHz. En Fritz Chess Benchmark espero índices sobre los  8500 - 9000 puntos. Es decir, sobre la velocidad de un C2Q 9450 o 9550, lo cual para AMD es todo un salto en prestaciones (un Phenom 9950BE obtiene unos 6100 puntos).

miércoles, 19 de noviembre de 2008

Core i7 vs Phenom en dual channel. Ancho de banda de cachés y memoria. Actualizado - LowLevelHardware

En este artículo utilizo el excelente software RMMA 3.8 (RightMark Memory Analyzer).

Microarquitectura - Ancho de banda de memoria SSE 128bit

  • Core i7 920 (Cores 2.66 GHz / Uncore 2.13 GHz)
  • RAM 2 x 1 GB dual channel DDR3 1066 7-7-7-20
  • Sin Turbo mode para mantener la exactitud de resultados

rmma_20081120_110524_0921_400

Resultados:

Los tamaños relativos de las cachés son los publicados por Intel:

  • L1 32 KB
  • L2 256 KB
  • L3 8192 KB

Y su diseño inclusivo, es decir, copias de los niveles inferiores residen en los superiores.

Comparemos con los resultados obtenidos por un Phenom 9600 B2 (sin TLB Patch) a 2.3 GHz y Uncore 1.8 GHz.

Phenom_rmma_20080512_214049_0609_400

Ancho de banda de cachés:

En lectura de caché L1 ambos procesadores llegan al dato teórico: 16 Bytes / ciclo para Core i7 y 32 bytes / ciclo para Phenom. Esto es debido al diferente ancho de fetch de cada CPU (Phenom dispone de dos puertos de lectura de 128 bit, es decir 256 bit/ciclo).

En escritura L1 ambos llegan a los 16 Bytes/ciclo, en cada procesador hasta su tamaño de L1 (32 KB en Core i7 y 64 KB en Phenom).

En lectura de  caché L2 continúan las diferencias: Phenom raspa los 8 Bytes/ciclo (7.97) mientras que Core i7 le supera ampliamente con 10.60 Bytes/ciclo.

En escritura L2 Core i7 se destaca (9.60 Bytes/ciclo) y prácticamente humilla a Phenom (5.05 Bytes/ciclo) indicando una implementación muy superior en este área.

Al llegar al LLC (Last Level Cache) o último nivel de caché, en este caso la caché L3 la diferencia se torna abismal en favor de Intel y su procesador Core i7. En lectura de L3, Core i7 transfiere 8.40 Bytes/ciclo (8.08 B/ciclo al superar los 2 MB) mientras que Phenom se queda en unos anémicos e insuficientes 3.59 B/ciclo para atender un dual channel DDR2 1066.

En escritura Core i7 transfiere a L3 5.57 B/ciclo mientras que Phenom consigue solo 3.26 B/ciclo.

Ancho de banda de memoria:

Datos obtenidos en single thread, es decir un solo núcleo accede a memoria. Se obtendrían resultados superiores en tests multithreaded en los que se diese un acceso concurrente de todos los núcleos a memoria.

Core i7 consigue más de 3.97 B/ciclo o 10600 MB/s  con un doble canal DDR3 1066 (7-7-7-20) y Phenom logra 2.60 B/ciclo o 6000 MB/s con un doble canal DDR2 800 4-4-4-12.

Conclusiones:

Intel ha diseñado una máquina ganadora  con Core i7, superando holgadamente en cualquier medición al AMD Barcelona excepto en la transferencia en lectura de L1 en modo SSE2 128 bit.

die

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.

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.

martes, 4 de noviembre de 2008

Imágenes alta calidad Intel Core i7 - LowLevelHardware

Para empezar una imagen del die de Nehalem quadcore:die

Uno de los cuatro núcleos de la primera versión, Core i7:

 core

Podemos ver los dos arrays de la pequeña L2 de únicamente 256 KB.

El die de Nehalem a escala sobre el chip:

encapsulado

El die desnudo, sin el heat-spreader:

Neh_desnudo

El nuevo socket LGA 1366:

sockel_1366

Los 1366 pads son necesarios debido a los tres canales DDR3 on die.

S1366

El próximo "objeto de deseo" de todo "entusiasta":

core_i7_frontal

Los 1366 pads, ahora son ovalados para un mejor contacto eléctrico:

Core-i7-pads

Vista cercana de los pads:

Core-i7-pads2

Hasta la próxima.