jueves, 2 de febrero de 2017

AMD Bulldozer. Prestaciones estimadas - LowLevelHardware

En el tercero de esta serie de artículos dedicados a la próxima micro arquitectura de AMD voy a aventurar mis previsiones sobre su nivel prestacional. Además lo compararé con los diseños actuales y con su muy evolucionado y perfeccionado futuro competidor, Intel Sandy Bridge.

Bulldozer_server AMD Bulldozer, la próxima micro arquitectura.

Bulldozer module, el módulo Bulldozer:

BulldozerModuleAMD Bulldozer module.

AMD llama módulo al conjunto siguiente:

  • Las etapas de Fetching
  • La circuitería de Decodificación X64
  • Los tres Schedulers independientes
  • Las cachés L1i
  • Los 2 cores de enteros compuestos de 2 ALUs y 2 AGUs
  • Una doble FPU con capacidad FMAC de 128 bit
  • Las cachés L1d
  • La L2 compartida para todas las unidades funcionales dentro del módulo

Este concepto se contrapone a la actual acepción de core. En los actuales diseños entendemos como core al conjunto del procesador excluyendo las interfaces externas, el North Bridge y en todo caso la caché L3 compartida (de haberla).

AMD nos obliga a cambiar el concepto para subrayar que cada módulo contiene dos cores funcionales e independientes de proceso de enteros.

Prestaciones por ciclo esperadas

A estas alturas tengo absolutamente claro que el tamaño en mm2 de la parte lógica (excluyendo L2 e interfaces) de Bulldozer será notable, claramente superior a sus actuales cores K10.5.

AMD ha comunicado que su núcleo K10 fabricado en 32 nm SOI HKMG por GloFo ocupa solamente 9.69 mm2 para 35 M Transistores, 17.7 mm2 incluyendo 1 MB de L2 (110 MT).

AMD_K10_32nm AMD K10 32 nm core 1 MB L2.

Estimo que el área lógica (ALUs + FPU) de Bulldozer se irá a la zona de los 20 mm2 en 32 nm, el doble que K10 32 nm y más área de die que los actuales cores K10.5 de 45 nm de Phenom II (unos 17 mm2).

K10.5_45nm_1MBAMD K10.5 45 nm 1 MB de L2.

Prestaciones en coma flotante (FPU)

Donde habrá un gran incremento en número de transistores será en la gran FPU doble de 128 bit con capacidad FMAC.

La actual implementación en K10.5 de 45 nm (Phenom II) comprende 3 pipelines de coma flotante especializados de 128 bit:

  • FMUL
  • FADD
  • FMISC

Esta limitación reduce su capacidad de proceso FPU puesto que cada unidad procesa un tipo de instrucciones y cada tipo de instrucción debe ir a su unidad y no otra.

En Bulldozer ambos pipelines son generales (ejecutan cualquier instrucción FPU) y simétricos y por ello resulta una arquitectura mucho más potente en cálculo matemático.

En coma flotante espero un gran avance en prestaciones clock for clock respecto a los actuales diseños de AMD, cifrado en torno a un 50% para 4 módulos Bulldozer con sus 4 FPUs dobles frente a las 6 FPUs con 3 pipelines de 128 bit cada una del hexacore Istambul.

Istambul45nm AMD Istambul hexacore, Bulldozer lo superará en un 50% en potencia FPU.

Prestaciones en proceso de enteros

Los Int cores muy probablemente serán más cortos en transistores que los actuales cores de enteros de Phenom II. De hecho reducen su capacidad de 3 ALUs mas 3 AGUs a 2 mas 2 respectivamente. AMD claramente apuesta por un futuro multithread…

Las prestaciones por Int core en cambio serán muy probablemente inferiores a las actuales en Phenom II.

Según las propias estimaciones de AMD, un MCM Bulldozer con 16 Int cores será un 37% más rápido que el doble hexa core Magny Cours. Si calculamos, a igualdad de cores, llegamos a un empate técnico.

Es decir, las prestaciones multithreaded en proceso de enteros serán equivalentes. En cambio, en algoritmos single threaded parece que Bulldozer será inferior a los actuales cores de AMD. Me puedo equivocar pero a la luz de los datos conocidos…

Frecuencias estimadas

La frecuencia de trabajo de un microprocesador actual la determinan numerosos factores:

  • La capacidad de la lógica de procesamiento (ALUs, FPUs…) de funcionar con corrección y estabilidad a esa frecuencia con un voltaje razonable.
  • La capacidad de realizar las comunicaciones inter core en un tiempo suficientemente corto para finalizar la transferencia antes del siguiente tick de reloj.
  • Frecuencia máxima de las cachés a la latencia y voltaje estipulado.
  • Entrar dentro del TDP de diseño (Thermal envelope) a esa frecuencia y voltaje en carga máxima combinada.

Como vemos, por un lado la frecuencia viene determinada por las capacidades del chip, del “silicio”, y por otro lado de no excederse en disipación térmica.

La velocidad de propagación de las señales eléctricas es limitada (y muy, muy inferior a la de la luz contrariamente a lo que algunos piensan) y por ello transcurre un tiempo finito desde que una unidad envía un resultado hasta que otra unidad lo recibe y puede comenzar su procesamiento sobre él. Esto limita la frecuencia de los procesadores y motiva que su diseño sea extremadamente complejo pues hay que posicionar las unidades que necesitan comunicación mutua lo más cerca posible (no en distancia, sino en tiempo – latencia –).

La disipación térmica depende de la frecuencia linealmente y del voltaje. La dependencia del voltaje es con una potencia entre 2 y 3:

  • Doble frecuencia, doble disipación.
  • Doble voltaje, de 4 a 8 veces mayor disipación térmica.

Como todos sabéis, a mayor voltaje (dentro de las limitaciones del diseño y el proceso de fabricación) mayor fiabilidad y linealidad en el rendimiento de los transistores de los que está compuesto el chip.

Todos estos condicionantes dan un rango de voltaje utilizable en el procesador, cuanto más nos acercamos al máximo obtendremos una mayor frecuencia estable pero con un gran consumo y en cambio, en la parte baja del rango obtendremos una menor frecuencia pero un excelente performance per watt.

Estimo que las frecuencias de Bulldozer se moverán en el mismo rango que los actuales cores Shanghai y Interlagos, sus frecuencias máximas rondarán los 3+ GHz. No veo probable cruzar los 4 GHz con TDPs razonables (máximo de 140W).

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