martes, 18 de marzo de 2008

Nehalem. Intel despliega su poder.

Con Nehalem, la saga Core 2 llega a su fin. Basado en los cimientos de su antecesor y en una evolución similar al cambio del K7 al K8 en AMD, Nehalem contará con controladoras de memoria y caché L3 integrados en el die. Los primeros integrantes de la saga serán los quadcores nativos de 45nm y 8 MB L3 y más adelante llegarán los octacore de 16 MB L3.
 

Intel roadmap hasta 2012. Gesher es una nueva Microarquitectura post-Nehalem.


Primera imagen disimulada del die de Nehalem. Fuente: Intel IDF.

Probablemente serán conocidos por el gran público como Core3Quad. Su arquitectura es una demostración de la potencia y el dominio de Intel como fabricante. En mi modesta opinión su arquitectura resulta, además de potente y evolucionaria, súmamente elegante.

Partiendo de los excelentes Core2 (Conroe y Penryn), Nehalem sienta las bases de un verdadero salto cualitativo en prestacónes. Aúna los mejores núcleos de procesamiento del mercado con un extraordinario diseño de baja latencia (siguiendo la estela de AMD) y altísimo ancho de banda.

Antecedentes. La era netburst.

Pocos años atras Intel estuvo contra las cuerdas. AMD llegó primero en la carrera del gigahertz (con su flamante K7 Thunderbird 1000 MHz), dominó con sus procesadoras K7 Athlon a los Intel Pentium III, Athlon XP peleó sin complejos con los primeros Pentium 4 Willamette de 180nm, Intel recuperó terreno con el núcleo Northwood Hyperthreading de 130nm, pero se hundió con Prescott 90nm al competir con el entonces novedoso y veloz K8 Athlon 64 130nm.

Para conseguir las máximas prestaciones, ya en la fase de concepción del procesador, hay dos caminos:

  • Crear un procesador ancho (Brainiac) que procese el mayor número de instrucciones en paralelo y consiga el mayor rendimiento por ciclo.
  • Diseñar una CPU de la máxima frecuencia posible (Speed Demon), eliminando toda la lógica innecesaria de las etapas críticas de ejecución y diseñar circuitería agresiva específica con el único objetívo de minimizar el tiempo de ciclo.

El segundo camino fué el elegido por Intel en la concepción del Pentium 4 Willamette, una CPU basada en un mal diseño de sus arquitectos (20!! etapas de pipeline con dos Replay system) salvada por los excelentes técnicos e ingenieros de procesos y circuitos de Intel.

Justificación de la arquitectura Netburst.


Netburst fué una huída hacia adelante. Una bonita idea teórica que las leyes de la física (concretamente la termodinámica) se encargaron de enterrar. Los planes de Intel eran espectaculares, se hablaba de CPUs a más de 10GHz. El propio Prescott debía llegar a los 5 GHz y Tejas, su sucesor, rondaría los +7 GHz. Pipelines cada vez más largos, mayores latencias, ... solo suplidos por más y más frecuencia con L2 de más y más capacidad. Este fué el plan de Intel y se plasmó en sus roadmap de la época.

Pero un día Intel despertó y, en un giro radical, canceló fulminantemente Tejas (ya en fase de pruebas, prácticamente terminado), dando por finalizada esta arquitectura. Emprendió la senda dual core con Smithfield 90nm (dos dies Prescott 1MB), modificó su derivativa, Presler 65nm, para favorecer un menor consumo y no una brutal y a cualquier precio escalada de reloj.

Prescott (31!!! etapas de ejecución con un Replay system, Replay buffer, 90nm 1 MB L2, tercera generación) sufrió graves problemas de consumo y disipación térmica que no pudieron ser solucionados y marcó el fin de una era, el fin de netburst. De toda la saga destacaría Northwood (130nm 512KB L2, la segunda generación) y el mencionado doble núcleo Presler (65nm 2 + 2 MB L2).

La arquitectura Core y Core 2.

Anteriormente, Intel tenía dos diseños diferenciados: uno para sobremesa y servidores (Netburst) y el segundo para portátiles (Core). Resulta muy costoso mantener y evolucionar dos productos tan divergentes, y en aquella tesitura y con los problemas de Prescott y el exagerado consumo de Tejas (se hablaba de más de 150W), se decidió muy acertadamente dar preferencia a la segunda opción, la llamada arquitectura Core.

Primero fué Banias (130nm), un descendiente directo del Pentium III Tualatin (130nm 512KB L2), integraba 1 MB de L2 y llegó a los 1.6GHz. Fué el procesador que dió prestigio a la conocida plataforma Centrino. Le siguió Dothan (90nm) con 2 MB L2 y ciertas mejoras internas y por fin Yonah (90nm, 12 etapas), conocido como CoreDuo, el primer dual core para portatiles. Integraba una caché L2 de 2 MB unificada y mejoras en el proceso SSE.



Tick-Tock. El imparable ritmo de Intel. Fuente: Intel IDF Sept. 2007.

En el centro de Intel en Israel (cuna de los procesadores de la plataforma Centrino) se llevaron a cabo los trabajos que conducirían al actual Core 2 Duo y Core 2 Quad (14 etapas, 65nm), un diseño universal, que abarca desde portátiles a servidores.

Se especuló que podía haber versiones de sobremesa de Yonah con frecuencias más elevadas, pero Intel esperó al Core 2. Con su núcleo Conroe, protagonizó una revolución, batió a los AMD Athlon 64 que durante tres años habían dominado el mercado aplastantemente.

Cuando Intel desveló las primeras estimaciones de prestaciones de Conroe, debo decir que todos fuimos escépticos. La diferencia era demasiada para ser verdad, superaba demasiado al excelente AMD Athlon64 clock for clock. ¿Se trataba de un truco de marketing? Resultó ser totalmente cierto.

Harpertown, dos dies Penryn, la derivativa de 45nm. Fuente: Intel IDF Sept2007.


El primer Nehalem. Core ¿3? Quad.


Fuente: Intel. Modificada para resaltar en amarillo las cuatro nuevas L2 256 KB.

La superficie estimada de Nehalem son alrededor de 240 mm2, un gran chip, nada barato de fabricar. Con una densidad en su L3 inferior a 6 mm2/MB, un resultado excelente y muy superior a su competidor, el AMD Shanghai. Intel demuestra su maestría en el diseño de las cachés.

AMD, en sus cores Barcelona y Shanghai, utiliza las mismas células para la L2 y la L3. Intel, al contrario, fabrica diferentemente ambas estructuras.

Foto de Nehalem. Fuente Intel IDF 2007.

 

El die monolítico de Nehalem, un quadcore nativo, consta de:

  • Cuatro procesadores derivados del núcleo Penryn (con numerosas mejoras).
  • Cuatro L2 de únicamente 256KB de bajísima latencia, dedicadas, una por núcleo.
  • 8 MB de L3 caché compartida (shared) por los cuatro núcleos.
  • Estructura de caché inclusiva, clásica de Intel.
  • QPI. QuickPath Interconect. Similarmente al HT3.0 de AMD.
  • 3 (!) controladoras de 64 bit DDR3 1333.
  • Multithreading de dos vías por núcleo.
  • En principio la L1 sigue en los niveles de Core2Duo: 32 + 32 KB.

Tres canales DDR3 1333 dan un ancho de banda agregado de 32GB/s. Compárese con, por ejemplo, un dual channel DDR2 800, 12.8GB/s. A 3GHz, un bus de 128bit, transfiere unos 48 GB/s, a 4GHz son 64 GB/s. Estos serán, si no me falla la intuición, los datos del bus de L3 de Nehalem. Un bus L3 de 64 bit sería claramente insuficiente.

En Nehalem, Intel añade entre otras novedades ya citadas:

  • Desaparece el FSB. Nehalem se comunica con el exterior mediante sus 3 controladoras de memoria DDR3 y los buses QPI.
  • Un nuevo TLB de segundo nivel (de mayor tamaño, más lento pero mucho más preciso) que actúa en caso de fallo del TLB primario aumentando el rendimiento y disminuyendo las latencias. En este particular Intel se acerca a AMD, con Conroe o Penryn era claramente inferior.
  • Un predictor de saltos (Branch Predictor) de segundo nivel, que apoya al principal y mejora las tasas de acierto.
  • Aumenta el nivel de paralelismo interno de cada procesador (recordemos que incorpora multithreading de dos vías) pudiendo analizar una ventana de ejecución de 128 (en lugar de 96 en Core2) instrucciones para extraer el máximo rendimiento.

Según Intel las nuevas L2 de 256 KB serán de baja latencia. Recordemos que en Core2Duo las L1 tienen 3 ciclos y las L2 14 ciclos. Si mantiene la latencia L1 (lo más probable), la L2 sin duda decrecerá, pero es difícil saber cuanto. Los Pentium III Coppermine con sus 256 KB tenían 10 ciclos de latencia, por ahí podría ir la de Nehalem. Yo apostaría por unos 9 ciclos.

Carlos Yus Valero – informaticapremium