viernes, 30 de mayo de 2008

Baterías de litio explosivas

Las celdas de Li-ion han significado una revolución en la portabilidad (por su baja densidad) y duración de batería de numerosos gadgets, teléfonos móviles, PCs portátiles y otros.

Tienen una densidad de energía muy alta por gramo, apenas padecen el "efecto memoria", todo parecen ventajas ...

Pero también tienen un pero: Su peligrosidad.

El litio (Li, número atómico 3) es un metal alcalino, altamente reactivo con el aire o el agua, se oxida con violencia, a veces en forma explosiva.

Las baterías de litio están compuestas de celdas, a mayor número de celdas, mayor capacidad en mAh y destacan por su ligereza, tres veces la del NiCd / NiMH.

Para conservar su capacidad se deben observar precauciones en cuanto a temperatura:

  • Al cargar: de 0 a 45ºC.
  • Almacenamiento: 0 a 20ºC. Solamente hasta 20ºC (!!)

El problema de los incendios o explosiones, se debe a la alta tasa de descarga que producen en las baterías los modernos dispositivos de alto consumo, lo que produce sobrecalentamiento y fallo de los sellados, entrada de aire y reacción química exotérmica ...

Suele ser fruto del ahorro de costes, el mal aislamiento entre celdas, y la mala conductividad térmica de los encapsulados empleados.

Redordemos que normalmente las celdas las produce algún fabricante de primera línea conocido en algún país occidental / industrializado pero su ensamblaje, encapsulado y sellado se hace en paises como China que adolecen de falta de controles de calidad y seguridad ... que se lo digan a Mattel!

Perfmonitor. Introducción

Perfmonitor es una aplicación muy sencilla que permite acceder a los performance counters de cada core del procesador de nuestro sistema.

 Image1

4 instancias de PerfMonitor en Core2Quad. Sistema idle.

Los performance counters son registros internos del procesador que miden y almacenan parámetros críticos del funcionamiento del núcleo de ejecución, cachés, TLBs, uso del FSB, memoria, ... cualquier dato imaginable, lo dificil es acceder a ellos.

Image2

4 instancias de Perfmonitor en Core2Quad Prime95 small FFTs.

Con PerfMon esto es sencillo, descomprimimos el software, ejecutamos y listo.

Image3

Opciones de click izquierdo para Core2Quad.

Para un análisis pormenorizado de cada uno de los performance counters en dos arquitecturas diferentes vea la segunda y tercera parte del artículo.

viernes, 23 de mayo de 2008

Sobre la cache de Nehalem

En un artículo anterior hice una extensa discusión sobre la siguiente microarquitectura de Intel, conocida como Nehalem. Aquí querría puntualizar algunos hechos sobre su estructura de cache y aventurar algunas posibilidades en cuanto a latencias.

Die de Nehalem quad core.

Las caches de Nehalem quad core son:

  • Cache L1i: 32 KB, 4 vías.
  • Cache L1d: 32 KB, 8 vías, dual ported. Latencia 4 ciclos.
  • Cache L2: 256 KB, 8 vías, baja latencia.
  • LLC, Cache L3 UNIFICADA para 4 cores: 8 MB compartida para los 4 cores, 16 vías.

En los Core 2:

  • Cache L1i: 32 KB, 8 vías.
  • Cache L1d: 32 KB, 8 vías, dual ported. Latencia: 3 ciclos.
  • LLC, Cache L2 UNIFICADA para 2 cores: 2 o 4 MB o 3 o 6 MB según versión del núcleo. Latencia 14 o 15 ciclos.

Como comenté en su momento, Nehalem cuenta con una arquitectura de cache inclusiva, es decir, los datos residentes en L1 están copiados en L2 y los de L2 también en L3.

Esta distribución tiene ventajas (poco tráfico de coherencia de L1 y L2 internúcleo) y desventajas (tamaño efectivo de caché igual al tamaño del LLC o último nivel de caché).

Caches L2 privadas de baja latencia de 256 KB

Las L2 independientes o privadas para cada core, aportarán un almacenamiento de tamaño intermedio y de muy baja latencia según Intel.

Intel asegura que tendrán latencias Load to use inferiores a 12 ciclos, yo espero razonablemente que más bien estén en el entorno de los 10 ciclos.

Cache L3 compartida de 8 MB

La latencia de la L3 en Nehalem será comparable a la de AMD Barcelona o AMD Shanghai, es decir muy elevada.

La latencia efectiva de Barcelona se sitúa en el rango de los 48 ciclos. Según los ingenieros de Intel, la L3 de Nehalem andará por los 30 ciclos en el caso óptimo y más de 40 en el caso general.

Extraído de:

http://lowlevelhardware.blogspot.com/2008/03/peculiaridades-microarquitectura-phenom.html

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 las controladoras 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 resumen, con Nehalem Intel prosigue su imparable ritmo de mejoras microarquitecturales a un paso hoy por hoy imposible de seguir por sus competidores.

jueves, 22 de mayo de 2008

Cores y pasta térmica–LowLevelHardware

El tema de la disipación térmica y la transmisión de calor en las interfases heterogéneas de un disipador de procesador actual podría dar para muchos artículos.

Aquí solamente pondré un ejemplo práctico de un efecto que ocurre con frecuencia con las pastas térmicas tras un periodo prolongado de uso que incluya ciclos de encendido - apagado.
Al aplicar la pasta térmica, con más o menos pulcritud y corrección según el procesador que tengamos entre manos, debemos prestar atención a varios puntos:

No es lo mismo un die desnudo (Pentium III, Athlon Thunderbird, Duron, Athlon XP, CPUs de portátil ...) que uno con heat spreader (Pentium 4, Pentium D, Core 2, Athlon64, Phenom ...).

Poner la pasta sobre los cores o núcleos del procesador.

Si el disipador es de calidad y su superficie lisa y sin rayas (pulida) poner la menor cantidad de pasta e ir incrementando en función de la irregularidad de la superficie.

En este caso, el procesador es un quad core Core 2 Quad Q6600 (hand picked, V nominal 1,20 V) a 3.2 GHz @ 1.35Vcon FSB 1.6 GHz y dual channel DDR2 800 4-4-4-12 @ 2.0 V.



Pump out sobre la zona que ocupan los dos dies Core2Duo.

Podemos ver dos "claros" que marcan donde están los dos dies Core2Duo que componen un Core2Quad.

Este efecto se denomina pump out y describe como la pasta térmica debido a los ciclos de calor - frío y expansión - contracción del IHS (integrated heat spreader) del procesador es expulsada de la zonas más calientes.

PIC01357

PIC01356

La pasta sale de las zonas críticas produciendo un dry out (secado) y subida de temperatura, y en caso extremo un fallo de algún core de la CPU.

Etiquetas de Technorati: ,,

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

El que tenga dudas o aportaciones tiene para ello la sección de comentarios, intentaré responder a todos y con la máxima claridad. Los Blogs deben de ser lugares de intercambio y agradezco vuestro feedback.

domingo, 18 de mayo de 2008

El TLB secreto de AMD. Parte III.

En los dos artículos anteriores (1, 2) hemos introducido la existencia de una estructura oculta, no documentada en las controladoras de memoria integradas en los procesadores AMD K8 y K10. En este artículo analizaré 3 procesadores, dos A64 X2 AM2 y el Phenom 9600 BE con el TLB patch activado y sin el.

Controladora de memoria de 128 bit DDR de un AMD A64 939 130nm.


Controladora de memoria de 128 bit DDR de un AMD A64 X2 939 90nm.


Controladora de memoria de 128 bit DDR2 de un AMD A64 AM2 65nm.


La motivación de esta serie de artículos es conocer más a fondo el comportamiento de las controladoras de memoria integradas de los procesadores AMD, gracias a su integración en el procesador han obtenido ventajas competitivas importantes y han podido mantener en el mercado arquitecturas obsolescentes (léase K8 Athlon64) frente a los nuevos y más depurados núcleos de la serie Core2 de Intel.

Sistemas probados:

Sistema AM2:

  • Placa Gigabyte MA-790X DS4 R1.0 AM2+
  • 1 x 2 GB DDR2 800 5-6-6-18 Kingston HyperX
  • AMD A64 X2 5600+ Brisbane G2, 65 nm, 2.9 GHz, 2 x 512 KB L2
  • AMD A64 X2 5600+ Windsor F2, 90 nm, 2.8 GHz, 2 x 1024 KB L2

Sistema AM2+:

  • Placa Gigabyte MA-790X DS4 R1.0 AM2+
  • 2 x 1 GB DDR2 1066 @ 800 4-4-4-12-1T Kingston HyperX
  • AMD Phenom 9600 Barcelona B2, 65nm, 2.3 GHz, 1.8 GHz NB, 4 x 512 KB L2, 2048 KB L3
  • Con el TLB BIOS Patch aplicado y sin él.

Para mayor información sobre el TLB patch, errata 298 y los stepping B2 y B3 de AMD Barcelona recomiendo leer este artículo anterior.

Resultados experimentales


Todos los resultados y gráficas obtenidos con el software RMMA 3.8, descarga.


RightMark Memory Analyzer 3.8.

Athlon64 X2 5600+ Windsor, F2, 90 nm, 2.8 GHz, 2 x 1 MB L2

D-TLB test de 16384 entradas. Tamaño tercer D-TLB 16384 entradas.

Test I-TLB de 16384 entradas. Tamaño tercer I-TLB 16384 entradas.

L2 D-TLB miss latency: sobre 38 ciclos.

Tercer nivel D-TLB miss latency: más de 100 ciclos. Tamaño estimado 16384 entradas.

L2 I-TLB miss latency: sobre 40 ciclos.

Tercer nivel I-TLB miss latency: más de 280 ciclos. Tamaño estimado 16384 entradas.

Athlon64 X2 5600+ Brisbane, G2, 65 nm, 2.9 GHz, 2 x 512 KB L2

Test D-TLB de 16384 entradas. Tamaño tercer D-TLB 8192 entradas.

Test I-TLB de 16384 entradas. Tamaño tercer I-TLB 8192 entradas.

L2 D-TLB miss latency: sobre 42 ciclos.

Tercer nivel D-TLB miss latency: más de 260 ciclos. Tamaño estimado 8192 entradas.

L2 I-TLB miss latency: sobre 56 ciclos.

Tercer nivel I-TLB miss latency: más de 340 ciclos. Tamaño estimado 8192 entradas.

AMD Phenom 9600 Barcelona B2, 65nm, 2.3 GHz, 1.8 GHz NB, 4 x 512 KB L2, 2 MB L3 sin TLB BIOS Patch

Test D-TLB de 16384 entradas. Tamaño del tercer D-TLB 8192 entradas.

Test I-TLB de 16384 entradas. Tamaño tercer I-TLB 4096 entradas.

L2 D-TLB miss latency: sobre 52 ciclos.

Tercer nivel D-TLB miss latency: más de 100 ciclos. Tamaño estimado 8192 entradas.

L2 I-TLB miss latency: sobre 68 ciclos.

Tercer nivel I-TLB miss latency: más de 150 ciclos. Tamaño estimado 4096 entradas.

AMD Phenom 9600 Barcelona B2, 65nm, 2.3 GHz, 1.8 GHz NB, 4 x 512 KB L2, 2 MB L3 con TLB BIOS Patch

Test D-TLB de 16384 entradas. El tercer D-TLB ha perdido su eficacia.

Test I-TLB de 16384 entradas. El tercer I-TLB ha perdido su eficacia.

L2 D-TLB miss latency: sobre 387 ciclos.

Tercer nivel D-TLB miss latency: más de 460 ciclos. Tamaño estimado 8192 entradas.

L2 I-TLB miss latency: sobre 414 ciclos.

Tercer nivel I-TLB miss latency: más de 460 ciclos. Tamaño estimado 8192 entradas.

Conclusiones y comentarios

Como podemos ver en los gráficos y en los resultados hay tres hechos importantes a señalar:

  • Los A64 X2 del antiguo core Windsor de 90 nm son más rápidos y eficientes en relación a la memoria (y tambien con la caché L2). Sus miss penalties (latencia acumuladad en caso fallo del TLB) son siempre menores, a veces 3 veces inferiores.
  • Los Phenom stepping B2 sufren una brutal degradación en su velocidad y latencia de memoria debido a una gradísima penalización en caso de fallo de sus L2 TLBs.
  • Por último queda demostrada la existencia de una estructura a modo de gran TLB o tercer nivel TLB, tanto para instrucciones como datos y que mitiga la penalización en caso de fallo de los L2 TLBs. Su tamaño es variable, entre 4K entradas y 16K entradas según las pruebas.

Como comentario final, puntualizar que el TLB Patch disminuye la eficiencia de este gran TLB prácticamente a cero, provocando miss penalties en el entorno de los 400 (!!) ciclos de CPU en caso de fallo de los L2 TLB.

Parece demostrado que el fallo que provoca la errata 298 está localizado físicamente en esta estructura oculta localizada en la controladora de memoria integrada.

Podemos decir que por fortuna AMD ha tardado poco en ultimar y comercializar su core Barcelona B3, libre ya del infame TLB bug o errata 298. Recordemos que los primeros diseños de Shanghai 45 nm también poseen este defecto y AMD ha tenido también que modificarlos y ello retrasará en alguna medida su time to market.

Para una descripción de la arquitectura del AMD Phenom, consulte este artículo.

Pra un análisis y discusión de errata 298 y los stepping B2 y B3, consulte este enlace.

domingo, 11 de mayo de 2008

El TLB secreto de AMD. Parte II.

En esta segunda parte desvelamos los resultados experimentales que prueban la existencia de una estructura oculta en las controladoras de memoria integradas en toda la gama K8 y K10. Aquí nos centramos en el Athlon64 X2 de 90nm core Manchester de socket 939 con dos canales DDR 400.


Die del Athlon64 X2 1 + 1 MB L2. Pulsa para ampliar.


Sistema de pruebas:
  • Athlon64 X2 3800+ S939 Manchester (512 + 512 KB L2) @ 2.5 GHz.
  • 2 x 1 GB Kingston HyperX DDR 400 @ 2.5 3 3 8 1T.
  • Frecuencias de memoria: 416 MHz dual channel.

Resultados RMMA 3.8:


RMMA D-TLB test. Pulsa para ampliar.

Vemos el comportamiento normal:

  • Hasta los 32 bloques actúa el L1 D-TLB con su bajísima latencia (unos 3 ciclos totales)
  • De 32 a 512 bloques actúa el L2 D-TLB con unos 8 ciclos de latencia.

De aquí en adelante empieza el comportamiento anómalo:

  • De 512 bloques en adelante la latencia va aumentando hasta estabilizarse en unos 40 ciclos en el rango de los 1536 a 8192 bloques. ¿Será un L3 D-TLB? Pero si no hay caché L3, este super-TLB se encuentra en la controladora de memoria y tiene una miss penalty de más de 100 ciclos, es decir, en caso de fallo se incurre en una penalización en el cálculo de la dirección física de memoria de más de 100 ciclos.
  • De 8192 bloques en adelante la latencia aumenta hasta los 200 ciclos aproximadamente.

Funcionamiento de los niveles de TLB:

  • Si se da un fallo de L1 D-TLB y un acierto de L2 D-TLB se acumula una latencia de 5 ciclos, resultando una latencia total de unos 8 ciclos (latencia caché L1 + L1 D-TLB miss penalty).
  • Si se da un fallo de L2 D-TLB se acumula una latencia de unos 17 ciclos más, dando una latencia efectiva máxima de unos 40 ciclos.

Como podemos ver hay alguna estructura fuera del núcleo de ejecución que reduce la penalización del fallo del L2 D-TLB hasta un tamaño de 8192 bloques a un máximo de solamente unos 40 ciclos.

Por encima de los 8192 bloques la latencia aumenta hasta los 200 ciclos, típica latencia de acceso a memoria en modo aleatorio (random) con fallo de TLB.

RMMA I-TLB test. Pulsa para ampliar.

En el caso del I-TLB los resultados son análogos, con latencias algo superiores.

Conclusiones:

La controladora de memoria de los microprocesadores Athlon64 X2 en su versión de 90 nm contiene un gran TLB, eficaz tanto en operaciones con datos como con instrucciones y con un tamaño efectivo de unos 8192 Bloques.

Su missprediction penalty es mayor de 100 ciclos, pero siendo sinceros, su tasa de fallos debe ser ínfima, cercana a cero.

Ahora nos queda resolver el enigma de las bajas prestaciones de Brisbane y el origen del TLB bug de los Barcelona stepping B1 y B2. Serán cuestiones para el siguiente artículo.

El TLB secreto de AMD. Parte I.

En este artículo desvelamos una estructura oculta en las controladoras de memoria integradas en toda la gama de procesadores AMD desde el primer K8 Athlon64 de 130 nm hasta los actuales AMD K10 Barcelona de 65 nm. En esta primera parte analizo el aspecto teórico del problema, en el segundo y tercero los resultados experimentales.


D-TLB test de RMMA con tamaños hasta 16 MB. ¿Otra inflexión en 8192 KB?

¿Qué es el TLB?

El TLB o Translation Lookaside Buffer es una caché que almacena las traducciones de memoria virtual (con las que internamente trabaja el procesador) a memoria física. Las direcciones de memoria física son las direcciones de la RAM del sistema.
Al igual que con las cachés tradicionales, los TLB se pueden dividir entre datos e instrucciones y puede haber varios niveles de TLB.
.
El TLB hace referencia en sus tablas a direcciones físicas, contiene entradas de las Tablas de Paginación (PTE, Page Table Entry) del sistema operativo. Las tablas de paginación son utilizadas por el subsistema de memoria virtual del sistema operativo y mantienen una relación de correspondencia entre entradas de memoria virtual (paginación) y memoria física (RAM).
.
Los TLB tienen un tamaño limitado (KB), una asociatividad (en vias, ways) y una tasa de aciertos con su latencia de fallo (miss penalty o missprediction latency).
.
El núcleo AMD K8:
.
El AMD K8 fue un procesador que marcó una época, arrasó a la competencia de su archirival Intel y se convirtió en el rey en los segmentos de consumo y estaciones de trabajo / servidores. Marcó unos años dulces y de grandes beneficios para AMD , lo que se reflejó en su cotización bursátil.
.
El primer núcleo K8 (130 nm, 1 MB L2). Fuente: AMD. Pulsa para ampliar.
.
El revolucionario concepto de la controladora de memoria integrada, primicia en el mundo x86, disparó brutalmente las prestaciones del núcleo K8, que no era más que un AthlonXP remozado y mejorado.
.
El K7 siempre adujo de elevadas latencias en su subsistema de memoria, una caché L2 muy lenta y con alta latencia y un hardware prefetch ineficiente con una implementación simplista hacían del AMD Athlon un gran procesador ávido de datos e instrucciones.
.
Llegó el chipset nVidia nForce2 con dual channel DDR 400. NForce2 incluía en su Northbridge un "preprocesador", se encargaba de predecir los accesos a memoria del AthlonXP realizando lecturas especulativas en ambos canales de memoria. AthlonXP llegó a mejorar un 10% sus prestaciones gracias a nForce2.
.
K8 acabó con la gran limitación de K7 y lo hizo a lo grande. Integró la controladora de memoria en la cpu:


Núcleo del AMD K8 130 nm. Abajo podemos ver la controladora de memoria.

La implementación TLB de AMD K8 es como sigue:
  • L1 D-TLB: 32 / 4 entradas. Full associative. Miss penalty de 5 ciclos.
  • L1 I-TLB: 32/ 4 entradas. Full associative. Miss penalty de 4 ciclos.
  • L2 D-TLB: 512 entradas. Asociatividad de 4 vías. Miss penalty de 17 ciclos.
  • L2 I-TLB: 512 entradas. Asociatividad de 4 vías. Miss penalty de 25 ciclos.
Captura de RMMA, RightMark Memory Analyzer. Descarga.

Podemos decir que es una implementación bastante potente. Claramente superior a la de su competidor, el Intel Pentium 4 core Willamette/Northwood/Prescott.
.
El núcleo AMD K10 Barcelona 65 nm:


Arquitectura del AMD Barcelona Quadcore 65 nm.

.

Bloques funcionales del AMD Barcelona 65nm.

Implementación TLB en AMD Barcelona:

  • L1 D-TLB: 48 entradas. Full associativity. Miss penalty 5 ciclos.
  • L1 I-TLB: 48 entradas. Full associativity. Miss penalty 4 ciclos.
  • L2 D-TLB: 512 / 128 entradas. Asociatividad 4 vías. Miss penalty 28 ciclos.
  • L2 I-TLB: 512 / 128 entradas. Asociatividad 4 vías. Miss penalty 36 ciclos.

AMD y los 65 nm:

Este texto está tomado del siguiente artículo en este mismo sitio: http://lowlevelhardware.blogspot.com/2008/03/peculiaridades-microarquitectura-phenom.html.

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.

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.

Los K8 de 65nm, AMD Brisbane:

Brisbane es el stepping G del Athlon64 X2 AM2 con controladora de 128 bit DDR2 800, sustituye al stepping F, el primer AM2.

Todo el mundo conoce el hecho siguiente: un procesador AMD Athlon64 X2 de 65nm (core Brisbane) es más lento por ciclo que uno de la generación anterior de 90 nm. Empeora la velocidad de la caché L2, empeora su latencia y aumenta catastróficamente la latencia de memoria en accesos aleatorios (random).

¿Porqué es más lento Brisbane clock for clock que sus antecesores de 90 nm?

¿Qué ha ocurrido en la migración del núcleo K8 a 65nm?

¿A qué se debe el TLB bug de los primeros AMD Barcelona?

En la siguiente entrega analizamos el núcleo K8 en su variante de 90 nm, core Manchester. En la tercera analizaremos el core Barcelona que podemos encontrar en los Phenom y Opteron. quadcore de 65 nm.

Descarga de RMMa 3.8.

Página de DigitLife, desarolladores de RMMA.

sábado, 10 de mayo de 2008

El nuevo roadmap de AMD, Mayo 2008.

Se veía venir: cambio de planes para el diseñador y fabricante de procesadores con base en Alemania. AMD ha reestructurado su roadmap, retrasando la salida a la luz de los núcleos sucesores del K10 quadcore sustituyéndolos por derivativas del core Shanghai de 45nm.
.
Whitepaper de AMD sobre el proceso de 45 nm.
.

Actual roadmap de AMD. Mayo 2008. Fuente: AMD.


Novedades más importantes del último roadmap:

  • AMD elimina el procesador sustituto de Shanghai, Montreal, que iba a contar con 1 MB de L2 por núcleo (Shanghai cuenta con 512 KB L2 por núcleo).
  • Reposiciona Shanghai para finales del 4º cuatrimestre de 2008 (inicialmente estaba programado para Q2 2008).
  • Se eliminan los octacores monolíticos (un die, ocho núcleos) dando paso a un hexacore nativo llamado Istambul para 3Q 2009 con soporte DDR2 y la misma arquitectura y cachés que Shanghai (6 MB L3).
  • En 2010 AMD propone un dual-hexacore llamado Magni-Cours compuesto por dos dies Istambul y 6 + 6 MB de L3 y soporte DDR3, Probe filter, 4 enlaces HT3.


Anterior roadmap de AMD. Diciembre 2007. Fuente AMD.



La desaparición de Montreal quadcore en mi opinión no es significativa, pues no iba a aportar demasiado en el terreno prestacional y nada en cuanto a arquitectura. Más lamento la pérdida del octacore nativo (un solo die) con 12 MB L3 unificada y 1 MB por núcleo. AMD está dejando el camino peligrosamente despejado al procesador Intel Nehalem.

.
El 12-núcleos Magni-Cours contará con un Probe filter para evitar en parte el tráfico de coherencia de cachés entre las dos L3 de 6 MB de dos los dies de 6 núcleos. Me gustaría saber si contará con dos o cuatro controladoras de DDR3, doce núcleos son demasiados para únicamente dos canales pese a las altísimas frecuencias de DDR3.

.
En cuanto al segmento de sobremesa, no nos depara novedades en 2008. A principios de 2009 llegará Suzuka, un Shanghai (4 núcleos) con soporte DDR3 y 6 MB L3 con velocidades de reloj en torno alos 3 GHz.
.

Die de Shanghai quadcore 45 nm. Fuente AMD.
.

Para más información acerca de los planes futuros de AMD e Intel recomiendo estos enlaces a artículos de esta misma página:

Por cierto, en ningún lugar se cita la transición a 32 nm, y eso que el roadmap se adentra en 2010. En esos momentos Intel estará de lleno en los 32 nm con Nehalem-c y la nueva arquitectura Gesher que en 2011 se prevee migre a los 22nm.



Roadmap de Intel hasta 2012.

domingo, 4 de mayo de 2008

Memory disambiguation o Intel SMA.

Los procesadores Intel Core 2, en todas sus variantes, incorporan una potente capacidad que les permite minimizar la penalización de continuar utilizando el arcaico sistema de FSB para comunicar con el NorthBridge, hablamos de Memory Disambiguation.


White paper sobre Intel SMA por Jack Doweck.


Die de Conroe, el Core 2 Duo de 65 nm y 4 Mb L2. Pulsa para ampliar.
.

Die de Penryn, el Core 2 Duo de 45 nm y 6 MB L2. Pulsa para ampliar.

La arquitectura Core 2 de Intel posee una característica que es responsable de buena parte de sus excelentes prestaciones y en parte gracias a estas técnicas ha demostrado su superioridad desde su introducción hasta el presente.

Memory disambiguation es una técnica de ejecución especulativa de las instrucciones que tengan que ver con la memoria, Intel lo llama SMA (por sus siglas en Inglés, Smart Memory Access).

Reordenando las lecturas y las escrituras en memoria y agrupándolas reduce el uso del FSB y optimiza el rendimiento. Cuando un procesador ejecuta una instrucción debe tener disponibles los datos sobre los que operar y si no es así disponer de ellos lo antes posible.

Esquema de SMA. Fuente: Intel corp.

Intel SMA trabaja del siguiente modo:

  • Especulativamente carga (load) los datos para las instrucciones listas para ejecución antes de ejecutar todas las escrituras (stores) pendientes.
  • Incluye un prefetcher que precarga datos/instrucciones de memoria antes de que estos sean requeridos siendo almacenados en caché L1 para su uso posterior.
  • De este modo se reduce muy notoriamente la latencia media de acceso a memoria (tanto que se acerca mucho a los AMD K8 o K10 que gozan de controladora de memoria integrada).

Según estudios de Intel Corp. un 38% de las instrucciones x86 son operaciones de memoria (loads o stores), siendo el número de loads doble al de stores. Lógicamente, para prevenir locks y corrupción de datos en el sistema, las escrituras y lecturas normalmente se hacen en orden de programa.

Una escritura en memoria cuya dirección no sea conocida puede colisionar con una lectura a esa misma dirección, por lo tanto, clásicamente se ejecutan todas en orden y siempre primero las escrituras.

Intel SMA rompe esta tendencia y permite así al Core 2 desplegar todo su ancho de banda de ejecución (es un procesador four-issue) especulando sobre si colisionarán o no las escrituras pendientes con las lecturas. En el caso general permite a las lecturas ejecutarse fuera de orden previamente a las escrituras (estadísticamente es improbable la colisión) y provee de un mecanismo para recuperación en caso de fallo en la predicción.

Referencia. documento sobre Intel SMA. Fotografías: fuente Intel corp.