jueves, 2 de febrero de 2017

AMD Bulldozer: HotChips23 – LowLevelHardware

Estos días se está celebrando el HotChips 23, una de las convenciones anuales donde se discuten los nuevos diseños de procesadores de sobremesa, servidores, memorias, procesadores de bajo consumo para dispositivos móviles… todo lo relacionado con el mundo del silicio en 2011.

Y claro está, también ha habido alguna nueva información sobre Bulldozer y mucha viejas ideas “refritas” sobre este nuevo core. Lamentablemente, ninguna estimación prestacional, puro silicon para entendidos en la materia.

AMD ha entrado en detalle en algunos aspectos del diseño del chip Zambezi (4 módulos y 8 INT cores) fabricado por Global Foundries en 32 nm SOI HKMG.

Nuevas fotografías del die de Bulldozer

En este slide de la presentación en HotChips vemos una nueva toma del die de Bulldozer.

640_1

Aparece con mayor altura que en anteriores vistas, si comparáis con anteriores artículos míos veréis claramente la diferencia. No hay modo de saber cual es la correcta, si esta o las antiguas (más alargadas), hasta que haya samples comerciales.

Ampliación del die:

640_2

Lo que me llama poderosamente la atención es la grandísima cantidad de espacio desaprovechado: No utilizado ni por cores (lógica) ni cachés ni por las controladoras de memoria y buses Hyper Transport 3.

En varios de mis numerosos artículos sobre Intel Sandy Bridge, mencioné el enrutado de todo el cableado del Ring Bus bajo la caché L3. Todo este esfuerzo de ingeniería se realizó para ahorrar espacio de die y reducir el tamaño de Sandy Bridge. Cito textualmente (Extraído de Microarquitectura Intel Sandy Bridge. Parte 1. Actualizado – LowLevelHardware. Martes 14 de septiembre de 2010):

Lo más llamativo del bus en anillo de Sandy Bridge (y Nehalem EX) es su implementación respetuosa con el consumo y el área de die, me explico:

Todos recordamos el famoso procesador Radeon HD 2900 de ATI con un ring bus de 512 bits, que debido a su desmesurada disipación térmica y consumo no pudo competir con sus análogos de nVidia hasta que ATI lo eliminó sustituyéndolo por una arquitectura convencional en su serie Radeon HD 3800.

En Sandy Bridge Intel ha utilizado power gating y clock gating extensivamente, además de aplicar un voltaje bajísimo al ring bus para conseguir una disipación térmica muy baja.

Por otro lado, es un dato muy importante, según los ingenieros de Intel, no ha representado un incremento de área ya que la infinidad de conductores necesarios para el Ring Bus se enrutan por otras capas del diseño bajo la caché L3. “

AMD simplemente no dispone de los extensos recursos económicos y humanos de Intel y no puede permitirse el lujo de este tipo de optimizaciones, bastante tiene con llevar a cabo el diseño de un semiconductor de tal complejidad como Bulldozer.

El espacio “muerto” lo he coloreado en GRIS, son muchos, muchos mm2:

640_2B

Superficie del die de AMD Bulldozer

Por fin conocemos el verdadero tamaño de Bulldozer y debo decir que estoy algo decepcionado: nada menos que 315 mm2… muy caro de producir.

Bulldozer_Die_size

Estoy convencido de que AMD sin duda optimizará este diseño en sucesivas iteraciones (con el paso a 22 nm en un par de años) e incluso antes con el lanzamiento de la versión de 5 módulos y 20 cores producida también en 32 nm.

Infraestructura de AMD Zambezi. AM3+

640_3

Como vemos la versión de sobremesa de Bulldozer solo activa uno de los 4 enlaces HT3 para comunicación con el chipset (los demás permanecen deshabilitados, en su versión Opteron se utilizan como conexión directa con hasta tres chips más).

La latencia L3 se me antoja como he comentado en numerosas ocasiones muy alta, creo firmemente que rondará los 50+ ciclos.

640_4

Ni rastro de las extrañas AGLU, ahora las llaman AGen, es decir una normal y corriente AGU. Además solamente hay dos pipes de enteros (INT pipes) una con circuitería MUL y la otra según AMD con un divisor por hardware (DIV). Viendo las latencias de división entera de Bulldozer me da la impresión de que tal divisor no existe y la división se ejecuta por micro código o tiene un diseño extremadamente simplificado y poco efectivo.

AMD Turbo Core en Bulldozer

En Bulldozer, AMD presenta un Turbo Core de dos niveles.

640_5

All Core Boost: Todos los módulos (conjuntos de dos cores con su SIMD FPU Unit y los 2 MB de L2) aumentan su frecuencia por encima de la nominal si el TDP y la temperatura lo permite.

Se da en cargas de trabajo que implique a TODOS los cores, sea con carga parcial elevada o máxima 100%.

Max Turbo Boost: Si dos de los módulos (cuatro INT cores, dos SIMD FPUs y dos L2 de 2 MB) se hallan en estado Sleep C6 (power gated) el resto (los otros dos módulos) pueden incrementar su frecuencia hasta en 1 GHz sobre la nominal.

Esto conlleva algunas consideraciones prestacionales extrañas y fastidiosas que detallaré cuando tenga hardware funcional comercial en las manos. A ver si en un mes y algo…

En múltiples artículos he analizado en detalle el diseño interno de BD 32 nm. Cito los más destacables:

AMD Bulldozer. Perspectivas – LowLevelHardware

La L3 cache multibanco en AMD Bulldozer. Actualizado – LowLevelHardware

AMD AGLUs, Bulldozer INT cores. Actualizado – LowLevelHardware

AMD Bulldozer. Primeros benchmarks. Actualizado – LowLevelHardware

AMD Bulldozer – ProfessionalSAT

La micro arquitectura de AMD Bulldozer. Actualizado – LowLevelHardware

Novedades y expectativas 2010. Actualizado – LowLevelHardware

AMD Bulldozer. Prestaciones estimadas – LowLevelHardware

Micro arquitectura AMD Bulldozer 2011. Actualizado – LowLevelHardware

Previo AMD Bulldozer. Actualizado – LowLevelHardware

Conclusiones

Poco se puede concluir hasta que no haya datos objetivos de steppings finales. Los actuales samples de Bulldozer son realmente lentos debido a numerosos bugs en los primeros steppings A y B1 que han hecho necesario deshabilitar características clave de las controladoras de memoria, cachés, TLBs, etc.

Queda ver como será Bulldozer con todos sus subsistemas a punto y cuales son las frecuencias finales comerciales. Sin duda estas no serán indicativas del verdadero potencial final en frecuencia de Bulldozer en 32 nm; AMD mejora sus procesos paso a paso a lo largo del tiempo en que este está en el mercado.

La historia fue realmente brillante en 90 nm cuando culminó en unos excelentes 3.2 GHz con el Athlon 64 X2 6400+ partiendo de los iniciales 1.8 GHz.

En el proceso de 65 nm SOI la historia fue diferente y empezó realmente mal. Los primeros Athlon 64 X2 eran claramente más lentos por ciclo (IPC) que los anteriores de 90 nm y les era imposible llegar a los 3 GHz. Con el tiempo llegaron a 3.1 GHz, un mal resultado e inferior al anterior de 90 nm SOI.

En aquel tiempo AMD lanzó Barcelona (Phenom) quad core también en 65 nm con unas frecuencias decepcionantes de 2.3 GHz en pico y una ridículamente pequeña caché L3 de 2 MB y elevada latencia. Con los meses llegó a 2.6 GHz y por fin llegaron los 45 nm.

Los 45 nm para AMD han sido un éxito rotundo, los Phenom II Shanghai subieron rápidamente de frecuencia y el incremento a 6M de la caché L3 le permitió ganar prestaciones por ciclo (IPC) respecto a Barcelona. A esto se añadió la excelente versión de 6 cores con Turbo Core, el Phenom II X6, también con 6 MB de L3.

Gracias al exitoso proceso de 45 nm AMD ha podido sobrevivir con un anticuado diseño de CPU que data de 2003, (remozado en 2007 con Barcelona, aunque igual en la parte de enteros) y esto lo escribo en Agosto de 2011…

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

12 comentarios:

  1. Creo que en la conclusion remarcas mucho que AMD no cambio prácticamente la arquitectura (cosa que Intel si hace debido a que ... bueno es una empresa apenas ... 7 VECES MAS GRANDE).
    Pero dejando esto de lado te pregunto: que conclusión sacas del futuro nuevo diseño?

    ResponderEliminar
  2. Si es mas grande pero cuando amd estaba re bien epoca p4 amd se compro ati en vez de seguir optimizando y asegurando una posicion en el mercado, eso le costo decadas de evolucion que creo que podra capitalizar con los apu recien ahora si te fijas intel tiene el 60% del mercado grafico y es solo por la placa de video incorporada gratis digamoslo asi ya que en esa gama de procesador el rendimiento es similar en amd y intel. Y yo armo pc como nuestro amigo carlos se de lo que te digo. el procesador va a ser bueno de eso seguro pero se les acaba el tiempo y lo sacan antes de terminado por eso carlos aclara lo bueno llegara 6 meses despues con el steping 2

    ResponderEliminar
  3. K8 anticuado?. Se hizo hace tiempo eso sí, pero fue un acierto. Admite aún, muchas mejoras, probablemente, costosas de implementar.
    Ahora todo es Brazos bajo consumo, llano, rango medio y bajo y bulldozer rango medio y alto. Quizás, no haya lugar para el K8. Un núcleo K8, es sumamente pequeño, comparado con las soluciones de Intel. Intel no puede (sería realmente grande), construir un I7 de 6 núcleos con Hyper threding en 45n ... y el Thuban existe y de 45n y 6 núcleos ... Intel ya está en 32n y va por 22n. Acá está la diferencia y no tanto en las arquitecturas.

    ResponderEliminar
  4. Zergiuz,

    No voy a sumarizar mi opinión sobre un diseño tan complejo como Bulldozer en cuatro líneas. Te remito a mis numerosos artículos al efecto en los que tienes información de sobra para crearte una opinión propia.

    En cualquier caso reitero que lo mejor que podría pasar para el usuario medio y también para la industria de semiconductores en general es que Bulldozer pueda competir con los diseños de Intel en precio a un coste de fabricación razonable para AMD.

    Un saludo,

    Carlos Yus.

    ResponderEliminar
  5. 1er Anónimo,

    No es que Bulldozer salga siendo un diseño "sin terminar", más bien es que AMD no tiene los recursos suficientes para redondear al 100% un diseño cuando lo sacan al mercado. Esto sucede con steppings posteriores y normalmente sobre un año después.

    Saludos,

    Carlos Yus.

    ResponderEliminar
  6. 2o Anónimo,

    AMD K8 es indudablemente un diseño anticuado, data comercialmente de 2003 y su diseño es obviamente anterior.

    En su día fue un gran producto y un éxito comercial.

    Como dices admite muchas mejoras pero su núcleo de ejecución de enteros tiene un rígido diseño de 3 pipelines ALU con 3 AGUs gemelas y entre estos canales no hay posibilidad de intercambio de instrucciones.

    Un diseño simple en gestión y con un despliegue masivo de unidades de ejecución simétricas con un pobre y poco eficiente branch prediction.

    El Branch Prediction de K8 es muy, muy inferior al del 1er Core 2 (Conroe 65 nm). Poco ha mejorado en este aspecto AMD en Barcelona y posteriormente en Shanghai o Thuban.

    Bulldozer marca un punto de inflexión pero quedan huellas del "diseño K8", por ejemplo la terrible caché L1i de 64KB y asociatividad de 2 vías para dos INT cores... no tiene sentido.

    Sobre el tamaño de un core K8, muchas veces lo he apuntado como la ÚNICA ventaja competitiva de AMD frente a Intel.

    Si yo condujese AMD mi plan B sería un Phenom X8 en 32 nm con pequeñas mejoras micro arquitecturales, una caché L3 de 8 MB y cachés L2 de solo 512 KB. Lo crítico para este diseño sería un Sistema Turbo Core competente en cargas single threaded y parciales.

    Un saludo,

    Carlos Yus.

    ResponderEliminar
  7. Hola amigo, disculpa hace rato que veo que no escribes y te quería preguntar si ya sabes algo acerca de piledriver. No se, alguna filtración o proyección tuya. Te pregunto pues veo que eres bastante bueno entendiendo las arquitecturas y en consecuencia aciertas muy bien en tus predicciones. saludos.

    ResponderEliminar
  8. Oye, también te quería preguntar si es posible que exista alguna vez algo así como un hypertrathing inverso (es decir 2 o mas núcleos o módulos trabajando en un mismo hilo y actuando como un procesador mucho mas potente por ciclo de reloj)o eso es físicamente imposible. Yo anteriormente había entendido que esa sería la gracia de bulldozer, pero veo que no es así en la actualidad, eso me decepcionó bastante, pero a lo mejor siempre estuve emocionado en balde debido a mi ignorancia respecto al hardware y sus fundamentos. De antemano te agradezco mucho la respuesta ;) saludos!

    ResponderEliminar
  9. Davidcianorris,

    Respondiendo a tu demanda, en este mismo Blog he publicado una introducción al core Piledriver.

    Sobre el hyper Threading inverso, sería difícil de implementar, habría que sincronizar dos cores y asegurar la corrección del resultado conjunto de las operaciones. No es nada fácil. pero sí es posible.

    De todos modos hay soluciones parciales a este problema, como lanzar threads en el otro core (si este está vacante) para que precarguen en las cachés los datos necesitados por el trhead principal.

    Un saludo,

    Carlos Yus.

    ResponderEliminar
  10. Pero y entonces ¿que pasó?. Mucho se habló del Hyper threading inverso, también de algo así como "speculative multithreading", fusión de instrucciones y otras características que nunca llegaron y que sonaban como verdaderos avances. Para mi esa era la única esperanza de que AMD pudiera competir con intel (que es un verdadero mostruo, con recursos casi ilimitados) que para efectos prácticos es un monopolio, y la verdad no me gustan nada los monopolios.

    ResponderEliminar
  11. davidcianorris,

    Intel está en otro nivel, tiene recursos de ingeniería inconcebibles para otras compañías y un arsenal de patentes increíble. Investiga en muchos frentes continuamente para en el futuro utilizar sólo algunos de estos hallazgos patentados (los mejores) en nuevos procesadores.

    Hablando de AMD, sería concebible un SpMT en cores derivados de Bulldozer ya que comparten el front end (L1i cache, fetching, decoding, branch prediction). Ahora, es difícil de implementar y AMD no creo que esté por la labor.

    Su filosofía actual es llevar a cabo todas las mejoras posibles en sus cores que son rápidas en time to market, y sobretodo pensar en una mentalidad SOC (system on chip). Integración total.

    Menor optimización de cada elemento, incluso no compensa gastar muchos $ en lograr una superficie mínima del die del SOC sino un time to market mínimo y rápidamente comercializar chips competitivos en performance per watt per dollar.

    Yo sinceramente creo que hay un espacio comercial para esta filosofía como demuestra el mercado de smartphones y tablets y lo que se avecida en próximos años con los procesadores ARM A15 con ejecución fuera de orden (OoOE).

    Saludos,

    Carlos Yus.

    ResponderEliminar
  12. davidcianorris,

    Por cierto, en ProfessionalSAT he hecho un análisis del modelo de Memoria Transaccional que integrará Intel Haswell en 2013 y allí habloe pasada de SpMT.

    Saludos,

    Carlos Yus.

    ResponderEliminar

Nota: solo los miembros de este blog pueden publicar comentarios.