Mostrando entradas con la etiqueta 45 nm. Mostrar todas las entradas
Mostrando entradas con la etiqueta 45 nm. Mostrar todas las entradas

jueves, 2 de febrero de 2017

Análisis de algoritmos de inteligencia artificial mediante PerfMonitor – LowLevelHardware

Este análisis lo he llevado a cabo en uno de mis sistemas Intel Core 2 Quad de la serie 9000 (stepping E0) con 12 MB (6 + 6) caché de L2 basado en núcleos Penryn de 45 nm a 3.4 GHz y con memoria de 4 GB a 1066 MHz, FSB1600 y Performance Level 5 para una excelente latencia de memoria de solamente 52 ns en Everest.

PIC03281

El software escogido es PerfMonitor, una aplicación freeware y portable que analicé someramente en un artículo anterior.

La carga de trabajo analizada son los algoritmos de cálculo utilizados en el sistema analizado en los siguientes artículos de ProfessionalSAT:

Core i7 @ 4.2 GHz. Algoritmos de inteligencia artificial. Parte III – ProfessionalSAT

Core i7 @ 4.2 GHz. Algoritmos de inteligencia artificial. Parte II – ProfessionalSAT

Sistemas de Altas Prestaciones, algoritmos de Inteligencia Artificial. Parte I – ProfessionalSAT

Todos los resultados son del Core 0 del procesador Core 2 Quad, aunque se pueden extrapolar a los demás pues son idénticos.

Image2

En primer lugar observamos cuatro lecturas:

  • Non Halted Clock Cicles: ciclos del procesador en actividad. Podemos ver que lo 3400 M de ciclos por segundo la CPU está ocupada. Uso de CPU: 100%.
  • Instructions Decoded: número total de instrucciones descodificadas por segundo. Vemos unos 4070M de instrucciones por segundo, más de una por ciclo (1.19 por ciclo).
  • Bus Clock Cicles: ciclos de uso del FSB. 100% de uso del FSB.
  • IPC: 0.9 instrucciones/ciclo ejecutadas.

Image3

En esta captura podemos ver:

  • Retired Mispredicted Branches: fallos de predicción del Branch prediction. 21.3 M por segundo.
  • Retired Branches: Branches (en millones) retiradas (procesadas) por segundo. 373 M Branch/s.
  • Retired Instructions: total de instrucciones procesadas y retiradas por segundo en millones. 2345 M instrucciones/s.
  • Branch Prediction Success Rate: tasa de acierto de los predictores de saltos del procesador Core i7 en este algoritmo: 94.3 %.

Image6 

Aquí observamos:

  • Retired Instructions: total de instrucciones procesadas y retiradas por segundo en millones. 2345 M instrucciones/s.
  • LLC Request: peticiones del procesador al LLC (Last Level Caché), en este caso las L2 unificadas de 6 MB, en millones por segundo. 145.9 M/s. Esto indica una importante tasa de fallos de las pequeñas L1 de 32 KB como ya he comentado en otros artículos hablando de los procesadores Core2.
  • LLC Mises: fallos de la L2 de 6 MB. 1.9 M/s. En este caso el procesador hace una petición por el FSB al chipset para pedir un acceso a RAM.
  • LLC Success Rate: Tasa de aciertos de la L2. 98.7 %. Excelente tasa gracias al gran tamaño de 6 MB para cada dos núcleos.

PIC03241

En un sentido más práctico comentar que esta carga de trabajo contiene un mix de instrucciones de enteros y su velocidad de ejecución viene marcada por la altísima cantidad de branches en el código lo que hace inevitable un alto número absoluto de fallos de predicción que acarrean latencias de “recuperación” del fallo de predicción.

Para minimizar esta latencia es crítica una configuración extrema en la frecuencia del Uncore y en las latencias y anchos de banda de L3 y memoria y también del subsistema de disco.

Si consideras útil el contenido de este Blog, ayuda a mantenerlo ojeando algunas de las ofertas que consideres interesantes de nuestros anunciantes.

Athlon II X4, IBM Power 7 e Intel Nehalem EX – LowLevelHardware

Desde hace ya unos años los fabricantes de semiconductores están dando un giro copernicano a su estrategia de prestaciones a toda costa a cambio de una moderación clara en la disipación térmica de sus diseños.

AMD Athlon X4

Ya en un artículo anterior de Junio 2009 hablé ligeramente sobre estos nuevos procesadores de AMD. Su comercialización está prevista para Septiembre.

PhenomII_NO_L3AMD Athlon X4 de 45 nm. Cuatro núcleos con 512 KB de L2 cada uno.

AMD ha decidido reducir costes eliminando la caché L3 de 6 MB de los Phenom II X4 y prescinde además de tres de los enlaces HT (HyperTransport) quedando uno para comunicación con el chipset. La superficie estimada para este procesador ronda los 160 – 170 mm2 proporcionando una gran reducción de costes respecto a Phenom II.

Los precios serán muy reducidos y habrá variantes Triple core con uno  de los procesadores desactivado:

Gama de procesadores Athlon II X2, X3 y X4.

Se rumorean precios inferiores en unos 25€ al quad más barato de Intel. inicialmente su frecuencia máxima será de 2.6 GHz, pero sin duda será sencillo dejarlos sobre los 3.8 GHz con un trivial overclock.

La era del performance per watt

Intel, con su “right hand turn”, acabó con su microarquitectura Netburst (la línea Pentium 4) cancelando el procesador Tejas de 90 – 65 nm (el cuarto integrante de la saga) y dando paso a la exitosa (y derivada de la anterior microarquitectura Pentium III) línea Core 2 Conroe 65 nm y Penryn 45 nm.

Ahora es IBM quien adopta esta línea de moderación en consumo huyendo de sus anteriores speed demons (IBM Power 6). Power 7 será un diseño mucho más equilibrado, con ocho cores en un die y con la novedad de utilizar eDRAM para el último nivel de caché (con el doble de densidad por mm2).

Power6 IBM Power6, un masivo dual core con un consumo eléctrico desmesurado y casi 5 GHz.

Probablemente contará con 24 MB de eDRAM para los ocho procesadores con SMT de dos o quizás cuatro vías (para un total de 16 o 32 threads por chip). El ancho de banda por socket excederá los 300 GB/s de Power6 (ya de por sí todo un record).

Personalmente espero un rendimiento sobresaliente para estos procesadores (no como en su día para el Power6, que no me gustó nada cuando en su día su microarquitectura fue hecha pública) que a mi juicio retoman una línea de trabajo más lógica para IBM, ya que el mundo x86 está presionando fuertemente.

Intel Nehalem EX

El rival del anteriormente mencionado IBM Power7 será un procesador de ocho cores con SMT de dos vías para 16 threads por chip. Contará con 24 MB de L3 compartida y cachés L2 de 256 KB para cada core.

Se alojará en el nuevo socket 1566 LGA. Ya hablé de este procesador en un artículo anterior.

Image1 Intel Nehalem EX.

Con 2.3 BT (2.300.000.000 transistores) fabricados en el nodo de 45 nm cuenta con ocho núcleos basados en la arquitectura Nehalem (similar a los Core i7 de sobremesa) y cuatro enlaces QPI para comunicación con otros tres sockets y el chipset.

Image2 Diagrama del die.

Los tamaños de caché. La L3 de 24 MB

Una cuestión interesante es la inclusión de una L3 de 24 MB con acceso compartido por ocho núcleos. Teniendo en cuenta que las L2 son de solo 256 KB sus tasas de acierto no serán espectaculares y esto nos lleva a pensar que la L3 tendrá mucho trabajo.

Hace unos meses haciendo profiling comparativo en máquinas Core 2 y Athlon64 comprobé que los Core 2 fuerzan mucho más (en el sentido de acceder muchas más veces) su L2 de 6 MB que los AMD Athlon64. Esto es debido a que los Athlon64 cuentan con una L1 de 64 KB que mitiga mucho (dada su mayor tasa de aciertos) los accesos a L2, en cambio, los Core 2 con su pequeña L1 de 32 KB hacen un uso intensivo de su excelente (rapidísima para su tamaño) y gigantesca L2 de 6 MB.

Sin duda, con Beckton (Nehalem EX) el extenso equipo de ingeniería de Intel ha hecho un excelente trabajo en la identificación de los más favorables tamaños relativos de sus cachés y han llegado al diseño final de 24 MB de L3 (LLC) para 8 cores con 16 threads.

Caché de cuarto nivel, L4

Lo que sí es cierto es que espero, en generaciones posteriores y ya con un número de núcleos mayor, la aparición de masivas cachés L4 compartidas (de tamaños sobre los 48 - 64 MB) probablemente con buses ring-bus.

Para mitigar los accesos hacia ellas habrá cachés L3 compartidas parciales (entre unos 4 – 8 núcleos por L3) de menor tamaño (sobre 4 – 8 MB) y mejor latencia que las actuales L3 de Beckton.

Por supuesto, todo esto nos espera en los 22nm y más allá …

LGA 1156. Intel Core i3, Core i5 y Core i7 – LowLevelHardware

Intel ha desvelado sus planes finales para los sustitutos de sus exitosas líneas Core 2 Duo y Quad, todos ellos serán procesadores de socket LGA 1156 con dos canales de memoria DDR3 y con conexión con el nuevo chipset Intel P55 mediante un simple enlace DMI de 2 – 4 GB/s.

LGA1156 LGA 1156, el nuevo socket mainstream de Intel.

Todos ellos estarán basados en la arquitectura Nehalem ya conocida en los actuales Core i7 LGA 1366. En cuanto a la caché L3, los quad core contarán con 8 MB de L3 y los dual core con la mitad, 4 MB.

Tech_IntelTechnology@Intel

Core i7 LGA 1366 serie 900

La actual serie 900 que todos conocemos con triple canal DDR3 y bus QPI para comunicación con el Intel X58. Seguirá manteniendo el liderato en prestaciones y el mayor precio.

Core i7 LGA 1156 serie 800

i7 Los actuales procesadores Core i7 de socket LGA 1366 quedan como gama alta (serie 900) y se lanzarán varios modelos para placas de socket 1156 y chipset P55 (serie 800) con doble canal DDR3.

Contarán con cuatro núcleos con HyperThreading y Turbo Mode para un total de ocho threads como en la actual gama 900.

Core i5 LGA 1156 serie 600

i5 Habrá modelos de dos y cuatro núcleos, los de dos núcleos contaran con HyperThreading (SMT) y en cambio los quad cores lo llevarán deshabilitado para diferenciarlos de los Core i7. Todos ellos contarán con Turbo Mode.

También como chipset con el Intel P55 mediante DMI.

Core i3 LGA 1156 serie 500

i3 Serán idénticos a los i5 pero con Turbo Mode deshabilitado y seguramente frecuencias inferiores. Igualmente con el Intel P55.

Phenom II X2, Athlon II X2 y el futuro Athlon II X4. Nuevos cores de AMD – LowLevelHardware

Advanced Micro Devices está ejecutando su roadmap admirablemente, de una manera que pocos esperaban teniendo en cuenta el gran éxito y presión ejercida por su rival y mayor fabricante mundial, Intel Corp.

AthlonIIAthlon II X2: el dual core nativo de 45 nm, codename: Regor.

En las últimas semanas AMD ha presentado tres nuevos diseños:

  • Un hexacore nativo con L3 de 6 MB: AMD Istambul
  • Un dual core nativo con dos L2 de 1 MB: AMD Regor o Athlon II X2
  • Un quad core nativo con cuatro L2 de 512 MB y sin L3: Athlon II X4

En un artículo anterior esbozaba las nuevas estrategias de futuro y la visión más técnica y práctica del nuevo CEO de AMD, Dirk Meyer, todo un profesional del diseño de procesadores.

PhenomII_NO_L3 Athlon II X4: Quad core nativo sin caché L3 y con un solo bus HT bidireccional, codename Propus.

Hablando de un futuro próximo, en breve tendremos en el mercado los nuevos Athlon II X4, de los que os presento arriba fotografía del die y donde observamos que carece de caché L3 y solo cuenta con un link HT. Además las cachés L2 son de 512KB como en Shanghai.

Y en presente… AMD, ya de lleno en el nodo de 45 nm, nos presenta hoy su nueva gama de procesadores dual core para el segmento medio del mercado, compuesta por dos series.

AMD core Regor - Athlon II X2 serie 200

Con este procesador AMD quiere sustituir todos los procesadores basados en los antiguos núcleos Athlon64 X2 Brisbane de 65 nm todavía en el mercado migrando toda la gama X2 a 45 nm y núcleos de arquitectura K10.5.

Sus prestaciones son claramente superiores a los anteriores núcleos K8 y K10 (los primeros Phenom Barcelona de 65 nm) y cuentan con una arquitectura de procesamiento actualizada e idéntica a los Phenom II X4 de 45 nm basados en el núcleo Shanghai.

Analizando el díe observamos algunas características notables:

  • Es un diseño dual core nativo, compacto y muy optimizado en superficie.
  • Se ha reducido notablemente el tamaño del Uncore respecto a Shanghai al no necesitar toda la lógica de gestión de la caché L3.
  • Cuenta con dos L2 discretas e independientes aumentadas a 1 MB y con 16 vías de asociatividad como en los Phenom, Phenom II y en los antiguos Athlon64.
  • Hay dos controladoras de DDR2/DDR3, como en Shanghai (Phenom II).
  • No hay caché L3 para optimizar su tamaño.
  • El número de enlaces HyperTransport se reduce a uno a una frecuencia de 2 GHz.
  • La superficie estimada ronda los 117 mm2 para 234M de transistores, un resultado muy satisfactorio.
  • Las frecuencias iniciales rondan los 3 GHz.

AthlonII_croquis Esquema del procesador Athlon II.

Su disipación térmica se reduce a un TDP máximo de 65W, siendo (ahora sí) una excelente opción para sistemas destinados a reproducción BluRay o DVD de salón.

En pruebas reales ha dado sobre unos 30 – 35 W en carga máxima (consumo aislado del procesador) y en reposo memos de 10W. Realmente podemos decir que es un procesador fácil de refrigerar.

AMD core Callisto - Phenom II X2 serie 500

El procesador Phenom II X2 no es un dual core nativo y por ello su disipación térmica es más elevada que en el caso del nuevo Athlon II, aunque no por ello es excesiva. En medidas reales ronda los 50 W en carga 100 % de los dos núcleos.

Shanghai Die de Shanghai quadcore de 45 nm y 6 MB de caché L3.

El Phenom II X2, igual que el Phenom II X3, comparten die con el “completo” Phenom II X4 quadcore. De hecho todos ellos son el mismo procesador, lo que ocurre es que AMD desactiva respectivamente dos o uno de los núcleos.

Esta inactivación de cores puede responder a dos razones:

  • Alguno de los núcleos no es funcional.
  • Por razones económicas o de stock (exceso de quads o falta de X2s) necesita producir mayor número de CPUs dual core.

El lado positivo es que el AMD Phenom II X2 goza de una caché L3 completa de 6 MB para tan solo dos núcleos (3 MB de L3 por procesador) lo que aumenta sus prestaciones de media sobre un 5 a 8 % sobre el Athlon II X2 clock for clock. En pico llega a ser hasta un 18 % más rápido.

Por contra, al ser un chip de 751M de transistores, su consumo y disipación térmica no pueden ser tan contenidos como en el caso del Athlon II X2 y se acerca incluso a sus parientes quadcore con un TDP de 80W. Siendo para AMD el TDP la potencia máxima teórica consumida por el procesador en carga máxima y en condiciones críticas de temperatura y alimentación eléctrica.

El tesoro oculto en Phenom II X2

Al ser un quadcore nativo con dos núcleos deshabilitados es posible, en ocasiones, volver a activar estos dos procesadores. Para ello necesitamos una placa base que tenga en BIOS la opción del ACC (Advanced Clock Calibration).

Al activar esta opción nos podemos encontrar con dos situaciones:

  • Tenemos un flamante quadcore con 6 MB de L3 perfectamente funcional a precio de dual core.
  • Alguno de los núcleos activados es defectuoso y obtendremos errores, cuelgues o incluso fallos en el arranque.

Ciertamente no hay otro modo de averiguarlo que probar… Sin duda que ahora que salen al mercado hay más probabilidades de que sean quad cores funcionales y conforme avance el proceso de fabricación iremos encontrando más CPUs con núcleos defectuosos.

Nehalem-EX Beckton - LowLevelHardware

Ayer expiró la NDA referente a la publicación de las primeras imágenes, aunque de bajo detalle, del octal core nativo Nehalem-EX. En este artículo esbozo algunas peculiaridades y característica de este nuevo procesador que se comercializará a finales de año.

NHM-EX Nehalem-EX. Se aprecia su gran tamaño para el socket LGA-1566.

Que nadie se lleve a engaño pues jamás tendremos un procesador Beckton en nuestro sistema personal, está diseñado con otras cargas de trabajo en  mente e incorpora tecnologías RAS (novedad en el mundo X86) de la familia Itanium.

NehalemEX_Nehalem_Tukwilla_Dunnington La maestría de Intel diseñando procesadores para entorno empresarial.

En la captura superior apreciamos Nehalem-EX junto a Nehalem y debajo Tukwilla (Itanium quad core de 65 nm) y Dunnington (Xeon hexa core nativo con 16 MB L3 basado en núcleos Penryn de 45 nm).

Presentación Presentación de los nuevos Nehalem-EX octal core nativos.

Hace unos meses (en diciembre de 2008) realicé un análisis muy arriesgado, aunque iba bien encaminado, del die de Beckton basándome en las muy lejanas y de mala calidad fotografías de un wafer de procesadores que sostenía un orgulloso Patrick Gelsinger. y no era para menos.

[Gelsinger_Beckton3.jpg]

2.3 millones de transistores en 45 nm

Beckton constituye un procesador monstruoso, 2.3 millones de transistores para:

  • Ocho núcleos de arquitectura Nehalem con SMT de dos vías.
  • 24 MB de caché L3 distribuidos en bancos independientes.
  • 4 enlaces QPI.
  • 4 controladoras de memoria DDR3 asociadas a chips externos (SMB, Scalable Memory Buffer).

Image3 La grandeza de Beckton.

La elección de los arquitectos de procesadores de Intel de implementar una caché de tercer nivel de 24 MB ya posiciona de por sí el producto orientándolo hacia cargas de trabajo de servidor.

En Beckton 24 MB son 3 MB por núcleo (o 1.5 MB por thread), un paso adelante desde Nehalem con sus 2 MB por core. Bien es cierto que una caché de tal magnitud no puede tener unos tiempos de acceso fulgurantes, pero en entorno servidor esto es menos importante que acceder constantemente a memoria y más todavía a memoria no local.

Además, recordemos que la función del LLC (Last Level Cache), en este caso la L3, es también evitar tráfico de coherencia de cachés de niveles inferiores.

BECKTON_02 Los cuatro QPI permitirán sistemas de cuatro sockets totalmente conectados.

Análisis del die

die1 Die de Beckton, intencionadamente ocultado por los señores de Intel.

Como vemos, los núcleos han pasado a la periferia en grupos de dos colocados simétricamente respecto al centro del chip. Es una buena opción para evitar hot spots térmicos distribuyendo mejor la generación de calor en el procesador (como es sabido las cachés consumen comparativamente muchos menos W/cm2 que la lógica).

La superficie estimada ronda los 600 mm2, partiendo de los 246 mm2 del actual Nehalem quad core que encontramos en los procesadores Core i7.

Los núcleos serán prácticamente idénticos a los conocidos de Nehalem en los Core i7, con SMT de dos vías para un total de 16 threads por chip y por socket. Las cachés L1 y L2 serán respectivamente de 32 + 32 KB y 256 KB la L2 de baja latencia (exacto a Core i7).

En la parte superior de die encontramos los cuatro enlaces QPI para comunicación con otros procesadores y con el chipset o IO Hub.

En la parte inferior se sitúan las controladoras de memoria que se conectan a cuatro procesadores externos llamados SMB o Scalable Memory Buffer que permitirán hasta 16 (!!) DIMMs por socket.

Image2 Ubicación de los chips SMB.

En el centro encontramos la interfaz de sistema, el antiguamente llamado North Bridge, que incluye toda la lógica y buffers de comunicación con el exterior, en este caso habrá variaciones muy importantes respecto a Nehalem por las funcionalidades RAS añadidas para acceder a mercados hasta ahora reservados a procesadores Itanium o competidores RISC como IBM Power y otros.

cache1 Uno de los dos bloques de caché de 12 Mb, dividida en cuatro bancos de 3 MB.

Debo decir que han hecho un buen trabajo ocultando detalles en las fotografías… a juzgar por ellas todos los sub arrays de 3 MB (hay ocho de ellos) son morfológicamente idénticos. Veremos con el tiempo qué estructura interna ocultan, aunque en la fotografía inferior ya se aprecian más claramente y parecen bloques típicos de caché:

Beckton_Esquema_DieEsquema del die de Nehalem-EX.

En esta fotografía se aprecian mejor los ocho núcleos Nehalem y sobretodo los ocho arrays de caché L3 de 3 MB para un total de 24 MB. Nótese la gran cantidad de lógica adicional a lo largo del centro del die.

Intel podrá, en caso necesario desactivas independientemente núcleos defectuosos o arrays de L3 de 3 MB que presenten defectos funcionales.

Frecuencias esperadas de Nehalem-EX

Lógicamente, un octal core nativo compuesto de 2.9M de transistores, debe de ir limitado por TDP, lo que nos indica que inicialmente no veremos los 3 GHz. Lo esperable son frecuencias sobre los 2.13 – 2.26 GHz, quizás con los topes de gama a unos 2.66 GHz.

isscc_05[1] Proceso de Low Leakage especial para Dunnington, también aplicado a Beckton.

Intel, como era de esperar dada su maestría en estas lides, ha desarrollado un nuevo proceso de fabricación de 45 nm específico para Beckton con un Leakage menor, permitiendo frecuencias superiores que si se tratase simplemente de dos dies Nehalem en un chip más la lógica adicional y con 24 MB de L3.

quad_beckton Quad Nehalem-EX / Beckton en carga máxima. 64 threads (!!).

Estará disponible a finales de este año para servidores de alta gama, y especialmente utilizado en virtualización, además al incorporar características RAS dotará a estos entornos de una robustez añadida nunca vista en la arquitectura X86.

Image1 Capacidades RAS en Nehalem-EX.

Podrá no solo detectar sino aislar y corregir errores tanto de procesamiento como de memoria o I/O.

Core i5: Primeras imágenes de Lynnfield – LowLevelHardware

En numerosos artículos he analizado en profundidad la microarquitectura de los procesadores basados en el núcleo Nehalem de Intel y he hecho múltiples pruebas de hardware Core i7 en varios speed bins así como en sus últimos steppings (D0).

1 Intel Lynnfield quadcore, nuevo formato cuadrado.

Lynnfield, al contar con solo dos canales DDR3 y prescindir del QPI no necesita tantos pines de interconexión y se conforma con 1156 lo que le permite un formato cuadrado más reducido que a Core i7 con su conocida forma rectangular.

Lynnfield es la segunda derivativa del núcleo Nehalem, será conocido como Core i5 e irá destinado al segmento medio del mercado (mainstream), en la práctica sustituirá paulatinamente a los exitosos Core 2 Quad Penryn.

2 Nuevo socket LGA 1156 con dos canales DDR3.

Core i5, aún siendo el benjamín de la familia, será funcionalmente idéntico a Core i7 excepto en algunos detalles:

  • No cuenta con enlaces QPI
  • Integra el puente PCIEx en el die
  • Interfaz de memoria doble canal DDR3

En Core i7, la actual versión de sobremesa de Nehalem, el bus QPI se utiliza exclusivamente para comunicar con el Intel X58 a frecuencias de 4.8 a 6.4 GHz. En Core i5 no es necesario pues cuenta con la interfaz PCIEx integrada y únicamente se comunica con el southbridge por DMI.

3 Sujeción trasera del socket LGA 1156, anteriormente 1160.

Le auguro un rotundo éxito comercial debido a sus prestaciones muy cercanas a Core i7, su precio mucho más reducido y a una plataforma de muy menor complejidad, por solo necesitar un chipset compuesto por un chip y por utilizar un dual channel.

4 Dual channel DDR3.

5 Una placa prototipo de Intel con el nuevo microprocesador.

Le corresponde a Intel decir cuando desea traer al mercado esta familia de CPUs ya que debido al enorme éxito de los Core2 Quad basados en núcleos Penryn y a su muy bajo coste de fabricación (por su reducida área de die) no veo al fabricante estadounidense con grandes prisas…

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...