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.