lunes, 15 de diciembre de 2008

Phenom X2: AMD Athlon X2 serie 7000 - LowLevelHardware

El fabricante alemán de microprocesadores nos sorprende con una nueva gama de CPUs dualcore derivadas de los conocidos núcleos Barcelona de 65 nm con sólo dos núcleos activos, se trata de la nueva gama Athlon X2 serie 7000.

Después de esta nueva incorporación, los procesadores derivados del núcleo Barcelona quadcore quedan distribuidos en tres series:

  • Phenom X4 Serie 9000: Quadcore.
  • Phenom X3 Serie 8000: Quadcore con tres núcleos activos.
  • Athlon X2 Serie 7000: Quadcore con dos núcleos activos.

43494A_QuadCore_Opt_Die_BLK

El procesador Kuma: los AMD Athlon X2 7750 y 7550 están basados en dies Barcelona de 65 nm.

El procesador AMD Barcelona quadcore, por todos conocido en las gamas Phenom y Opteron, posee cuatro núcleos de procesamiento y una caché L3 compartida de 2 MB. En las series 7x50 se mantiene la caché L3 de 2 MB con sólo dos cores activos, es decir, un Barcelona stepping B3 con dos cores deshabilitados (mediante fusibles integrados en el die). A este procesador, AMD le llama Kuma:

  • AMD Athlon X2 7750 BE: 2.7 GHz cores, 2 GHz Uncore. 2 x 512 KB L2, 2 MB L3. Multiplicadores desbloqueados (Black Edition).
  • AMD Athlon X2 7550: 2.5 GHz cores, 2 GHz Uncore. 2 x 512 KB L2, 2 MB L3

Las prestaciones de Kuma son un 15 % superiores a las de un Athlon 64 X2 basado en el núcleo Brisbane (stepping G2) clock-for-clock. En tareas que demuestran las ventajas de la L3 por su set de trabajo, la ventaja de Kuma llega al 25 - 30 % (compresión de vídeo y juegos). Con ello demuestra las numerosas mejoras introducidas por AMD en los K10 respecto al original diseño K8.

El TDP de estas CPUs será de 95 W, superior al de la gama K8 Brisbane aunque inferior al clásico Athlon 64 X2 6400+ de 90 nm a 3200 MHz con dos L2 de 1 MB (TDP 125W).

En prestaciones, el modelo 7750 (2.7 GHz) compite con los Intel Pentium Dual Core 5200 y 5300 (45 nm, 2 MB L2) a 2.6 y 2.5 GHz respectivamente, aunque en el terreno del consumo se queda atrás. Recordemos que está basado en una CPU quad de 450 M (!!) transistores con dos núcleos desactivados.

amd_01[1]

En todo caso, la verdadera novedad de AMD recae en los nuevos procesadores de 45 nm, los Phenom II quadcore están al caer y que con su L3 de 6 MB sí supondrán un claro salto prestacional.

miércoles, 10 de diciembre de 2008

Análisis wafer Intel Beckton 8 cores - LowLevelHardware

Intel mostró en el último IDF wafers de su último procesador, derivado de la arquitectura Nehalem, el monstruoso Intel Beckton octacore.

Gelsinger_Beckton

Patrick Gelsinger enseña orgulloso un wafer de dies de Beckton.

Beckton será un octacore nativo, compartirá arquitectura con los actuales Core i7 y disfrutará de una masiva caché L3 de 24 MB (!!), cuatro enlaces QPI (lo que permitirá sistemas de 4 sockets totalmente conectados) y cuatro controladoras de memoria FB-DIMM DDR2.

Cada uno de los ocho núcleo de Beckton constará de:

  • 32 + 32 KB caché L1
  • 256 KB de L2 privada
  • 24 MB de caché L3 compartida entre los 8 núcleos
  • Probablemente los procesadores permanecerán invariados respecto a los conocidos en los Core i7 y contarán con SMT de dos vías (HyperThreading) para un total de 16 threads por socket.
  • El ancho de banda de memoria será ingente con valores de 25.6 GB/s con FB DIMM DDR2 800.
  • Se fabricará en el actual nodo de 45 nm.

HiResBecktonWafer

Como podemos ver, el tamaño de este procesador va a ser enorme, alrededor de 600 mm2.

En cada wafer de 300 mm caben solamente unos 13 x 9 procesadores (para un total de dies completas), lo que elevará enormemente su coste de fabricación debido a su superficie de alrededor de 600 mm2. Obviamente irá destinado a servidores y estaciones de trabajo de gama alta.

Si nos fijamos atentamente en la fotografía anterior, vemos que el die Beckton o Nehalem EX está subdividido en ocho sectores.

Beckton1_624

Probablemente los cuatro sectores centrales serán los ocho procesadores en grupos de dos y los cuatro de la periferia incluirán:

  • La caché L3 de 24 MB en varios bancos (probablemente cuatro bancos de 6 MB)
  • Los cuatro enlaces QPI
  • Las cuatro controladoras de memoria FB-DIMM DDR2 800

HiResBecktonWaferEnhanced

Imagen en la que se aprecia "algo mejor" la estructura interna.

En cualquier caso todo esto es mera especulación por mi parte. También pudiera ser que los sectores centrales integren tanto los ocho núcleos de procesamiento como los cuatro bancos de la L3. Quién sabe ... aunque en unos meses lo veremos.

Beckton_enhanced2

Del tamaño del die podemos estimar en unos 72 a 77 dies completos por wafer de 300 mm, de ahí deberemos descontar las que no sean funcionales por defectos puntuales o de proceso (yield) que en diseños tan masivos suelen ser un porcentaje elevado, sobretodo en los primeros steppings.

Para el que desee profundizar en el conocimiento del coste de producción de un microprocesadors recomiendo el siguiente PDF de la Universidad de Berkeley:

Lecture 5: Cost, Price, and Price for Performance
Professor Randy H. Katz
Computer Science 252
Spring 1996

http://bnrg.eecs.berkeley.edu/~randy/Courses/CS252.S96/Lecture05.pdf

Image1 

Como vemos, el coste de un procesador depende directamente del coste del wafer (la oblea de silicio).

Image2

A menor superficie menor coste.

Image3

Para definir el concepto de yield o rendimiento entran en juego los defectos (puntos rojos) por cm2.

Image4

Ejemplos de costes del die de algunos procesadores comerciales con sus tasas de defectos y yields.

viernes, 5 de diciembre de 2008

Hyperthreading en Core i7. Análisis - LowLevelHardware

Los procesadores Intel Core i7 basados en núcleos Nehalem incorporan SMT de dos vías (Hyperthreading) en cada uno de sus cores, obteniendo así un total de ocho CPUs lógicas para cuatro núcleos físicos.

PIC01477a

El brillo dorado de Nehalem

En sistemas operativos actuales de la familia Windows (léase XP, XP64, Vista o Vista64) no hay manera de diferenciar qué es un procesador físico y cual uno lógico. De este modo Windows, en su torpeza, asigna los threads a las CPUs lógicas sin saber realmente si son o no núcleos físicos con la consiguiente degradación de las prestaciones.

Sistema de pruebas:

  • Core i7 920 @ 3.33 GHz / 2.66 GHz Uncore (Voltaje nominal)
  • Turbo mode multithreaded 3.5 GHz
  • Turbo mode single threaded 3.66 GHz
  • BClock 167 MHz
  • Placa Intel DX58SO Intel X58 - ICH10 (Voltajes nominales)
  • 3 canales Kingston DDR3 1333 8-8-8-24-1T @ 1.62V
  • Western Digital 500 GB WD5000AAKS 7200 rpm 16 MB SATA2
  • Grabadora DVD SATA LG
  • ATI Radeon 4850 512 MB GDDR3 625 MHz / 2 GHz
  • F/A Tacens Radix 520W
  • Instalación limpia con drivers Windows XP Home SP3

PIC01482

Core i7 triple channel DDR3 1333 MHz

Image1

Core i7 920. Captura de CPU-Z 1.48 en Turbo mode x22 single thread a 3666 MHz

En un sistema Core i7, en el Administrador de Tareas de Windows, encontramos ocho CPUs lógicas como podéis observar en la siguiente captura de ocho instancias de Memtest Windows:

MemtestWIN_X8

Core i7 al 100% de uso en las ocho CPUs lógicas.

Hace unos meses ya hice una evaluación similar analizando el comportamiento de los procesadores quadcore (Phenom y C2Q) en Windows y su optimización asignando manualmente cada proceso a un core.

Caso 1: Un thread - single threaded

Limitamos manualmente WinRAR para que utilice sólo la CPU lógica 0.

WRAR_1THREAD

La velocidad obtenida en el test de WinRAR 3.80 es de 1143 KB/s utilizando solo uno de los ocho cores lógicos de Nehalem.

Caso 2: Dos threads - dual threaded

Limitamos a WinRAR a utilizar las CPUs lógicas 0 y 1:

WRAR_2THREAD_0_1

Obtenemos una velocidad de 1908 KB/s. Estamos utilizando dos procesadores distintos.

Ahora asignamos WinRAR a las CPUs lógicas 0 y 4:

WRAR_2THREAD_0_4

Obtenemos una velocidad inferior al caso anterior. Señal inequívoca de que la CPU lógica 0 y la 4 forman parte del mismo núcleo de procesamiento, el primer núcleo del Core i7. Pese a asignar a dos CPUs lógicas, estamos utilizando un solo procesador (con SMT).

En cambio cuando asignamos a las CPUs lógicas 0 y 1 estamos asignando a dos núcleos diferentes y de ahí el aumento de velocidad.

Caso 3: Cuatro threads - Four threaded

Asignamos manualmente WinRAR a las CPUs lógicas 0, 1, 2 y 3.

WRAR_4THREAD_0_1_2_3

Obtenemos un índice de 3157 KB/s con cuatro CPUs lógicas que corresponden a cuatro procesadores físicos. El caso óptimo.

En cambio, si seleccionamos las CPUs lógicas 0, 1 y 4, 5 obtenemos el siguiente resultado:

WRAR_4THREAD_0_1_4_5

Solamente 2884 KB/s porque en este caso hemos seleccionado 4 CPUs lógicas que corresponden sólo a dos núcleos físicos con HyperThreading (SMT).

Caso 4: Ocho Threads - Eight threaded

Dejando ejecutar por defecto a WinRAR 3.80 en un sistema Core i7, obtenemos la siguiente captura:

WRAR_8THREAD_01234567

Como decía, por defecto, queda asignado a las ocho CPUs lógicas (0, 1, 2, 3, 4, 5, 6 y 7) dando un rendimiento excepcional de casi 4200 KB/s. Recordemos que estamos en un sistema Core i7 a 3.5 GHz y Uncore a 2.66 GHz con triple canal DDR3 1333 8-8-8-24 1T.

Caso 5: Dos instancias de WinRAR - Eight threaded

Lanzando dos instancias de WinRAR y dejando todo por defecto obtenemos lo siguiente:

2xWRAR_2x8THREAD_01234567_01234567

Ambas instancias de WinRAR están asignadas a las ocho CPUs lógicas. En este caso obtenemos 2410 y 2512 KB/s. Un total de 4930 KB/s, lo que demuestra que una sola instancia de WinRAR no es capaz de saturar un Core i7 con sus ocho threads.

Podemos también asignar cada instancia de WinRAR a cuatro CPUs lógicas para "balancear la carga" obteniendo resultados similares:

2xWRAR_2x4THREAD_0145_2367

Conclusiones:

Hay que ser consciente de la complejidad de los procesadores actuales y en especial del procesador Nehalem de Intel. Al haber ocho CPUs lógicas pero sólo cuatro físicas hay que ser cuidadoso si deseamos extraer el máximo rendimiento de aplicaciones mal adaptadas a ocho threads.

Image2

KB/s en WinRAR 3.80 beta

Como vemos, la escalada de  rendimiento de uno a ocho threads es ejemplar y es debida al ingente ancho de banda de esta plataforma.

Image1

Debemos saber que las CPUs lógicas 0, 1, 2 y 3 tienen sus parejas en las 4, 5, 6 y 7. Es decir la CPU lógica 0 y la 4 forman parte del mismo procesador físico y así sucesivamente.

CPUsLogicasNEHdie

Las ocho CPUs lógicas y los cuatro núcleos de Nehalem 

Y por ello, asignando correctamente los procesos podremos extraer hasta la última gota de las prestaciones de estos excelentes procesadores.