Mostrando entradas con la etiqueta CPU. Mostrar todas las entradas
Mostrando entradas con la etiqueta CPU. Mostrar todas las entradas

jueves, 2 de febrero de 2017

AMD Excavator 28 nm – ProfessionalSAT

Os dejo aquí el enlace a mi último artículo en otro de mis Blogs, LowLevelHardware sobre la nueva microarquitectura de AMD.

Carrizo_Bulldozer_GensLos cores AMD Excavator 28 nm en el nuevo AMD Carrizo.

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

El que tenga dudas o aportaciones tiene para ello la sección de comentarios, intentaré responder a todos y con la máxima claridad. Los Blogs deben de ser lugares de intercambio y agradezco vuestro feedback.

Carlos Yus Valero – informaticapremium      informaticapremium-logo-150px[3]

AMD Zen SMT, los 14 nm y Jim Keller – ProfessionalSAT

AMD tiene unos ambiciosos planes para 2016. Por fin abandona la arquitectura Bulldozer y además dejará de lado los 28 nm gracias al acuerdo con Samsung para explotar su proceso de 14 nm.

AMDZen_640

El problema de lanzar AMD Zen el año próximo es doble: nueva micro arquitectura y nuevo proceso de fabricación en el mismo producto equivale a extremas dificultades para llevarlo al mercado a la frecuencia objetivo.

El nodo GloFo – Samsung 14 nm FinFET y AMD

Intel tiene la maquinaria de sus fabricas de semiconductores bien engrasada y lleva ya dos exitosas generaciones de chips en 22 nm:

  • Ivy Bridge 22 nm, cuarta generación Core y evolución de Sandy Bridge 32 nm. (TICK).

IvyBridge_22nm_640

  • Haswell 22 nm, quinta generación Core y nueva microarquitectura. (TOCK).

haswell_22nm_640

Y podemos decir que ya domina el proceso de 14 nm:

Meses atrás lanzó Broadwell (TICK), la evolución de Haswell en 14 nm:

Broadwel_14nm_640

y recientemente ha puesto en el mercado Skylake 14 nm (TOCK), su sexta generación Core:

Skylake_14nm_640

AMD, por el contrario y en pleno 2015, sigue en los 32 nm con los AMD FX de 8 INT cores Piledriver (Bulldozer de generación 2):

Piledriver_FX8C_32nm_640

y los 28 nm optimizados para GPUs en toda su gama de APUs con GPU Radeon Rx integrada de la serie 7850k 7870k basada en cores Steamroller de tercera generación Bulldozer:

A10_7850k_28nm_640

Los 14 nm no serán tarea fácil para AMD debido al gran salto desde los 28 nm, recordemos que AMD y casi todo el resto de la industria (excepto Intel) se han saltado el nodo de los 20 – 22 nm.

GloFo_SamsungLa asociación entre Samsung y Global Foundries para el nodo de 14 nm.

Depende de múltiples factores, pero a priori la licencia del proceso de 14 nm de Samsung por parte de Global Foundries es una excelente noticia para AMD ya que desarrollar un producto en 14 nm ya lleva más de 3 años de media.

14nmLos 14 nm conllevan más de 3 años de desarrollo de producto.

El SMT de dos vías en AMD Zen

La escalabilidad del SMT por thread y por core depende de la carga de trabajo: lo más común es implementar un diseño con 2 threads por core físico. Zen tendrá 3 pipelines de enteros por core (como los antiguos cores Athlon y Athlon 64 o Phenom) contrariamente a los 2 de Bulldozer y sus derivativas.

Zen, al igual que los Pentium 4 y los Core i3, Core i5 y Core i7 que integran SMT, se decantan por este diseño SMT de dos vías. Para cargas de trabajo de usuario es el valor óptimo en rendimiento IPC y en IPC por watt.

SMT aumenta las prestaciones, hablando generalmente, en entornos de ejecución que no saturan los recursos de procesamiento del core, sobretodo en los siguientes escenarios: Branch mispredictions, cache misses, accesos directos a DRAM, escrituras a RAM…

Pasar de 2 threads por core a un número superior, digamos 4, normalmente no aporta mejoras en IPC. De echo en cargas típicas es claramente más lento y aumenta la disipación térmica y la complejidad del diseño.

El incremento IPC puede llegar al 50% en casos favorables (compresión de datos con determinados algoritmos, algunos casos de multitarea…) Nada desdeñable.

La salida de Jim Keller de AMD

Jim Keller fue uno de los arquitectos de los procesadores AMD K7 (Athlon, Athlon XP) y AMD K8 (Athlon 64) que marcaron el periodo de esplendor de la compañía.

Posteriormente salió de AMD y en 2012 volvió a fichar por AMD encargado de la división de CPUs para diseñar un nuevo core (Zen) que fuese competitivo con las ofertas de Intel.

Para mí, ha sido una sorpresa que Jim Keller no permanezca en la compañía para llevar a su criatura hasta el final de su desarrollo y verlo en el mercado. Puede tener múltiples lecturas pero a mi modo de ver no es positivo.

Lo mejor que puedo decir es que parece ser que la fase de diseño de Zen ha terminado y ahora se están puliendo los últimos detalles y se está trabajando principalmente en su implementación final en el silicio, es decir en los problemas de fabricación en 14 nm de un chip tan complejo.

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

El que tenga dudas o aportaciones tiene para ello la sección de comentarios, intentaré responder a todos y con la máxima claridad. Los Blogs deben de ser lugares de intercambio y agradezco vuestro feedback.

Carlos Yus Valero – informaticapremium      informaticapremium-logo-150px[3]

La arquitectura AMD Zen – Actualizado - ProfessionalSAT

AMD quiere lanzar en 2016 su nueva micro arquitectura Zen en el proceso de manufactura FinFET de 14 nm. Como siempre en AMD, la fabricación con alta probabilidad será confiada a Global Foundries.

amd_client_platform_roadmap 640

La teoría es que en Octubre de 2016 llegará Zen 8 cores, será un AMD FX de alta gama sin GPU. En 2017 llegarán las APUs con cores Zen Y GPU.

AMD 2016 Zen

Se ha hecho eterno pero AMD, al fin, rompe con la línea de cores Bulldozer 32 nm y sus sucesivas derivativas Piledriver 32 nm, Steamroller 28 nm y Excavator 28 nm.

Todos ellos basadas en una micro arquitectura interna poco paralela y de alta frecuencia con algunos puntos débiles muy obvios:

Solamente 2 ALUs por INT core.

1 FPU compartida para 2 cores de enteros (INT cores).

Subsistema de caché lento y de alta latencia con tamaños L1 y L2 poco lógicos.

Elevada disipación térmica.

Baja eficiencia IPC.

Zen 14 nm pretende volver a la senda de diseños alto IPC (instrucciones procesadas por ciclo) y para ello ensanchará el core pasando de 2 a 3 ALUs, un diseño reminiscente de sus anteriores y exitosos cores Athlon, Athlon XP, Athlon 64 y Phenom X4 y X6.

AMD Zen core

2016 AMD Zen 8 core 14 nm SMT 16 threads

El plan inicial de AMD es ofrecer en 2016 una CPU FX dotada de 8 cores Zen sin GPU integrada que procesará 16 threads simultáneos, dos por core.

image

La FPU contendrá 3 pipelines, igual que la de la serie Bulldozer, pero en este caso doblarán su ancho a 256 bit. Habrá el doble de unidades FPU, por cada core. Potencialmente esto significa en pico 4 veces más potencia FPU al lado de un FX8350 por core.

AMD Zen quad core

Ni la caché L2 y ni la FPU serán compartidas como en Bulldozer con otros INT cores lo que las hará más eficientes por thread.

El tamaño L2 regresa a unos más racionales 512KB por core para un total de 4 MB L2 para el chip completo octa core. Al ser la L2 única para cada core reducirá mucho su latencia y aumentará notablemente la tasa de aciertos. Debemos recordar que cada L2 servirá a dos threads debido al SMT.

El tamaño L3 será presumiblemente de 8 MB y mejorará notablemente su latencia respecto a Bulldozer, sobretodo debido a ahorrar muchos ciclos en el L2 miss.

AMD Zen IPC

AMD anuncia un incremento de un 40% en IPC respecto a la actual microarquitectura Excavator 28nm, sería un logro excelente que avivaría la añorada competencia con el gigante de los microprocesadores, Intel.

Por último mencionar la inclusión en el core Zen SMT (2 threads/core), una primicia en AMD, al estilo del Hyper Threading de Intel. Veremos como gestiona AMD la gran complejidad de implementar y validar SMT en uno de sus cores.

Zen soportará desde un inicio RAM DDR4 en socket AM4 y habrán APUs basadas en cores Zen, de hecho, AMD pretende, en un futuro próximo eliminar su línea de cores CAT de bajo consumo y hacer homogéneas todas sus plataformas bajo una microarquitectura común: Zen 14 nm.

Con Zen, todo apunta a una exitosa arquitectura, si es así AMD saldrá de sus problemas financieros y podrá centrarse en su core business, el diseño de procesadores X86 de alto rendimiento y dejarse de experimentos de rentabilidad imposible en el ultracompetitivo mercado de cores ARM.

Conclusiones preliminares

Verdaderamente la serie Bulldozer no ha sido adecuada al momento que atravesaba la industria de semiconductores, me refiero específicamente a los nodos de 32 nm y 28 nm donde AMD se ha visto bloqueada hasta el día de hoy (y estamos casi en Agosto de 2015).

En este punto, la densidad de transistores por mm2 llegaba ya a un punto en el que había que vigilar la disipación térmica por core y por unidad de superficie con mucha más atención que en el nodo de 45 nm, en cambio AMD apostó al contrario.

Bulldozer 32nmAMD Bulldozer 4 módulos 32 nm.

Diseñó Bulldozer para frecuencias sobre los 5 GHz, fue un gran fallo estratégico. (Ya en esa época lo apunté en muchos artículos). Apostaron por un diseño que era imposible hacer competitivo con las alternativas Intel...

Zen, parece que será la alternativa razonable. Buscar alto IPC no resulta sencillo pero tiene mucho más sentido que hacer cores poco eficientes en consumo y en IPC y esperar que a base de frecuencias absurdamente elevadas puedas alcanzar a los cores de la competencia, una competencia, Intel, que quizás tenga 100 veces más presupuesto de i+d y de ingenieros dedicados.

Otro asunto destacable es el uso de memoria HBM en CPUs. Lo más probable es utilizarla en APUs, estoy convencido de que será cuestión de un año o año y medio.

AMD-Carrizo-APU-Stacked-Memory 640AMD, memoria HBM RAM en APUs.

Otra cuestión es su uso en CPUs de alta gama. no lo veo probable, pues es mejor aumentar el número de cores que integrar HBM por tema de superficie.

Tengo esperanzas con AMD Zen, cosa que no pude decir de Bulldozer. Esperemos que sí llegue al mercado en 2016, AMD lo necesita y también la sana competencia.

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

El que tenga dudas o aportaciones tiene para ello la sección de comentarios, intentaré responder a todos y con la máxima claridad. Los Blogs deben de ser lugares de intercambio y agradezco vuestro feedback.

Carlos Yus Valero – informaticapremium      informaticapremium-logo-150px[3]

AMD Steamroller core. AMD Kaveri. Parte 2 – ProfessionalSAT

Os dejo aquí un enlace a la segunda parte en LowLevelHardware  de una serie en la que analizo la nueva iteración de la micro arquitectura Bulldozer, Steamroller, y las consecuencias que traerá consigo para AMD y el mercado de micro procesadores en general.

Kaveri28nmAMD Kaveri 28nm.

AMD Steamroller core. AMD Kaveri. Parte 2 – LowLevelHardware

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

El que tenga dudas o aportaciones tiene para ello la sección de comentarios, intentaré responder a todos y con la máxima claridad. Los Blogs deben de ser lugares de intercambio y agradezco vuestro feedback.

Carlos Yus Valero – informaticapremium      informaticapremium-logo-150px[3]

Temperatura y degradación física en semiconductores –ProfessionalSAT

En este artículo hablaré sobre la dependencia de la velocidad de degradación de los semiconductores con la temperatura y os daré una sencilla manera de calcularla. Como sabréis los que seguís mis Blogs, es un tema que me suscita un gran interés pues diseño y llevo el mantenimiento de un gran número de máquinas sometidas a niveles de stress extremos y continuados en el tiempo.

 semim[6]Termografía del die de un procesador Core 2 Duo en carga máxima, a la derecha los cores.

En mis Sistemas de Altas Prestaciones estoy notando un fenómeno nuevo desde hace un par de años, algunos módulos de memoria DDR3 de 2 y 4 GB fallan tras unos 500 días en carga máxima a temperaturas que rondan los 45 – 60 ºC en el chip DRAM (en carga de saturación). Se trata de sistemas Core i7 serie 900 Nehalem 45 nm con 6 o 12 GB de DDR3.

Últimamente y debido a las ingentes cantidades de DRAM con las que cuenta cada máquina que monto en estos momentos (Ivy Bridge o Haswell 22 nm) y al hecho de que todas montan 16 GB y algunas ya 32 GB temo que este fenómeno vaya a más… y lo hará.

Samsung_DDR3 (2)Uno de los chips DDR3, un  Samsung, presente en muchos de mis sistemas.

En especial este artículo se refiere a la memoria DRAM (DDR3, GDDR5), la memoria Flash presente en los discos SSD y en las tarjetas de memoria y también a las CPUs y demás componentes integrados en nuestras máquinas.

En muchos de mis artículos he escrito hasta la saciedad sobre la importancia de un estricto control térmico en el diseño de los sistemas que se dedican a cálculo intensivo, por ejemplo, en el siguiente detallo la correcta aplicación de la interfaz térmica.

Pasta térmica y transferencia de calor II. Actualizado – ProfessionalSAT
Pasta térmica y transferencia de calor I - ProfessionalSAT

En otros he escrito sobre la degradación física de la memoria DRAM bajo condiciones de stress continuado en muchos de mis Sistemas de Altas Prestaciones:

Degradación física de la memoria DDR3 en cargas de trabajo de saturación – ProfessionalSAT

big_soc-cpu2Termografía de un SOC con dos cores Atom en carga máxima de CPU.

Son máquinas que no pueden fallar y no en el sentido de no arrancar o no ser estables, si no en el sentido de ser estrictamente exactas en sus cálculos, siempre y en cualquier circunstancia. Pensemos que una máquina actual realiza miles de millones de cálculos de coma flotante por segundo por core y en mis Sistemas de Altas Prestaciones lo hacen durante meses o años ininterrumpidamente.

thermal_main_vid_02Termografía de una GPU donde se aprecian los chips DRAM.

Mis clientes exigen exactitud y repetitividad en los cálculos y entre otras consideraciones tengo muy en cuenta la temperatura de cada componente y a esta etapa del diseño le dedico muchas horas.

La Ley de Arrhenius:

Para saber como afecta la temperatura a la velocidad de degradación de cualquier componente electrónico debemos aplicar la Ley de Arrhenius.

Arrhenius 01

Siendo:

k: la velocidad relativa de degradación del componente.

A: factor pre exponencial (una constante dependiente de lo que medimos).

e: número e o número de Euler o constante de Napier (2.7 1828 1828…)

R: constante de los gases ideales (8.31446… J / mol * K)

T: temperaturas en Kelvin, temperatura absoluta (K)

Otra forma de presentar la ecuación de Arrhenius, en su forma logarítmica:

Arrhenius 02

Os ahorraré los cálculos, si asignamos a 25ºC una duración t a un componente, a 125ºC este intervalo se reduce en un alarmante factor 450. Nuestro chip de memoria DRAM, por ejemplo, dará 450 veces más errores a 125ºC que a 25ºC, o dará el primer error en un intervalo de tiempo 450 veces menor.

Es decir, es absolutamente crítico mantener nuestras CPUs, RAM, placa base, GPU y SSD a temperaturas lo más bajas posible para ralentizar su INEVITABLE degradación por electromigración y otros fenómenos (principalmente oxidación por el oxígeno atmosférico, ataque por la humedad del aire, …)

Para más información os recomiendo otro de mis artículos sobre e tema:

Electromigración en microprocesadores – LowLevelHardware

Bild5Micrografía en la que se aprecian los efectos de la electromigración creando un cortocircuito.

Comentarios finales:

La razón última de que el número de fallos vaya en aumento en los sistemas actuales responde a dos factores:

    • El incremento en la cantidad de DRAM por máquina.
    • Las pequeñas geometrías (mayor densidad en bits por mm2) de los chip DRAM (actualmente sobre los 20 nm).

Es un fenómeno a vigilar, absolutamente inevitable,  aunque como consuelo para el común de los mortales, solamente afecta y a largo plazo a máquinas en condiciones especiales de stress y carga (como las mías).

Para terminar y como nota práctica diré que, muy aproximadamente, cada 11ºC de temperatura extra en un componente se reduce a la mitad su vida útil.

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

El que tenga dudas o aportaciones tiene para ello la sección de comentarios, intentaré responder a todos y con la máxima claridad. Los Blogs deben de ser lugares de intercambio y agradezco vuestro feedback.

Carlos Yus Valero – informaticapremium      informaticapremium-logo-150px[3]

Intel Atom Silvermont 22 nm. Introducción – ProfessionalSAT

Largo tiempo ha pasado desde que Intel presentó la primera generación Atom. Ha sido demasiados años para sustituir su arcaica arquitectura Bonnell cuyo diseño databa de 2004 (!!). Bonnell fue lanzado en 2008 en el nodo de 45 nm y evolucionado tímidamente a 32 nm en Saltwell.

En LowLevelHardware estoy escribiendo una serie de artículos detallando la micro arquitectura de este diseño de Intel para los que quieran un análisis más profundo:

Intel Silvermont 22nm. Micro arquitectura. Etapas de Fetching – LowLevelHardware

Atom Tick TockBonnell 45 nm, Saltwell 32nm y el nuevo Silvermont 22 nm.

Por fin este año con Silvermont 22 nm Intel juega la carta out of order (OoO) en el segmento ultra móvil y prepara a Atom para la feroz competencia con ARM.

En LowLevelHardware estoy escribiendo una serie de artículos detallando la micro arquitectura de este diseño de Intel:

Intel Silvermont 22nm. Micro arquitectura. Etapas de Fetching – LowLevelHardware

El arcaico y venerable core Bonnell

Han sido cinco largos años de espera. Debido a la falta de progresos en la micro arquitectura Atom los Netbooks han pasado prácticamente al olvido por su terrible rendimiento y por una plataforma / chipset / GPU que no ayudaba en absoluto al rendimiento y consumo de los anémicos cores Bonnell.

09-intel-atom-470-1108El minimalista core Bonnell de 45 nm de 2008, el primer Atom.

A mi modo de ver es increíble, ms parece mentira hablar de sistemas PC a la venta en pleno 2013 basados en chips con cores con ejecución In Order.

Todas las máquinas actuales basadas en CPUs Atom sean de 45 o 32 nm ejecutan el stream de instrucciones de un programa en estricto orden. Es decir, hasta que la instrucción 1 no ha sido ejecutada no pasa a la instrucción 2 y así sucesivamente.

No hay que pensar mucho para llegar a la conclusión de que no es el modo más rápido de proceder. En el mundo real, las instrucciones no siempre tienen disponibles los datos sobre los que deben operar en tiempo cero sino que deben cargarlos de algún sitio (caché, memoria RAM, disco duro…) que suele estar a varios ciclos de distancia temporal (cachés L1 o L2) o cientos de ciclos en caso de la RAM y muchísimo más de se trata de un acceso a disco duro.

Los procesadores Intel Atom de 45 y 32 nm palían este grave defecto con el Hyper Threading, ejecutan dos threads a la vez, cuando un thread no puede ejecutar una instrucción pasa al otro thread (a ver si hay suerte y tiene los datos disponibles…) En Atom Hyper Threading aporta sobre un 30% de prestaciones adicionales en modo multithread.

Desafortunadamente Hyper Threading no puede hacer nada con el rendimiento single thread, de hecho lo empeora levemente (menos de un 10%).

Intel Atom 22 nm 2013, bienvenido a la Ejecución Fuera de Orden (OoOE)

La forma ideal de operar en cambio, es la Ejecución Fuera de Orden (OoOE Out of Order Execution). Todas las CPUs de alto rendimiento de propósito general actuales funcionan de este modo, incluso ARM desde los Cortex A9 emplea una forma limitada de OoOE y ya en el Cortex A15 de manera completa.

Silvermont DieIntel Silvermont 22 nm die. (A bajísima resolución)

El procesador tiene un buffer (ROB Re Order Buffer) en el que almacena las últimas instrucciones del programa en ejecución (por ejemplo 128) y las analiza para averiguar cual de ellas es la más antigua que está lista para ser ejecutada inmediatamente y a que unidad de ejecución enviarla.

Por si solo, el OoOE supone sobre un 50% de incremento de velocidad de ejecución si se implementa adecuadamente.

Adiós FSB, adiós

Otra mejora fundamental de esta nueva generación Atom en la desaparición del venerable y arcaico Bus FSB. Por fin los cores se comunican con el exterior mediante un bus del siglo XXI. En este caso es un bus punto a punto, IDI, el mismo de Nehalem 45 nm y Westmere 32 nm.

Image1El bus IDI conecta cada módulo dualcore Silvermont con 1 MB L2 al System Agent.

La controladora de memoria DDR3 va integrada en el die del procesador, que a día de hoy es más bien un SoC (System on Chip) y se beneficia de la conexión del bus IDI a los cores X86 y la GPU integrada para aportar baja latencia en los accesos a RAM (que era terrible en los Atom con FSB).

A modo aclaratorio diré que si bien el primer core Atom (Bonnel 45 nm) tenía un chipset (Intel 945GM) al que se comunicaba por FSB y desde ahí accedía ala RAM, en la segunda generación (Saltwell 32 nm) apenas mejoró nada en este sentido ya que aunque la controladora DDR3 se situó en el mismo die, seguía conectada por el arcaico FSB.

En la segunda parte empezaré un análisis de la micro arquitectura del core Silvermont y cómo afecta al rendimiento IPC y a sus frecuencias estimadas así como a su integración en  chips comerciales de 2 a 8 cores.

En LowLevelHardware estoy escribiendo una serie de artículos detallando la micro arquitectura de este diseño de Intel para los que quieran un análisis más profundo:

Intel Silvermont 22nm. Micro arquitectura. Etapas de Fetching – LowLevelHardware

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

El que tenga dudas o aportaciones tiene para ello la sección de comentarios, intentaré responder a todos y con la máxima claridad. Los Blogs deben de ser lugares de intercambio y agradezco vuestro feedback.

Carlos Yus Valero – informaticapremium      informaticapremium-logo-150px[3]

AMD Vishera FX 8350. Primeras impresiones – ProfessionalSAT

Siendo sincero debo admitir que me ha sorprendido gratamente el nivel de prestaciones de la nueva serie de CPUs FX de AMD basadas en el nuevo stepping dotado de cores Piledriver.

En un artículo de LowLevelHardware exploré detalladamente las mejoras que aportaba este core refinado, este nuevo stepping a la conocida micro arquitectura Bulldozer de AMD.

PiledriverCORE_640Piledriver module con sus 2 MB de caché L2.

Podríamos sintetizar las mejoras en dos fundamentales:

- Por un lado una menor disipación térmica por core y un menor voltaje mínimo estable a una frecuencia dada. A igual frecuencia menor consumo y temperatura.

- Por otro lado un aumento IPC de un 5 a 30% en función de la carga de trabajo (enteros, branches, coma flotante, SSE, AVX,…) A igual frecuencia más rendimiento.

Gracias a estas dos mejoras AMD ha conseguido incrementar la frecuencia base del FX 8350 en 400 MHz.

PDvsBSAMD FX8150 vs. FX8350. Bulldozer vs. Piledriver.

En modo Turbo Core Vishera aplica el Turbo máximo en todas las situaciones, es decir, en carga máxima de un thread (ST, single threaded) o de varios threads e incluso 8 threads simultáneos (MT, multi threaded):

BD_TurboTurbo Core en FX8150 Bulldozer.

Podemos decir, para simplificar, que en Vishera el estadio intermedio Turbo Core desaparece.

En la práctica, medido por mí mismo, un Vishera FX8350 a 4 GHz en Prime95 Blend 4 GB consume exactamente lo mismo a un Bulldozer FX8150 a 3.6 GHz a voltajes nominales.

PiledriveModule_640Bulldozer module 32 nm SOI HKMG.

Como deduciréis fácilmente, Vishera aportará un 11% más de frecuencia en cargas paralelas y en cambio no incrementa nada en cargas single threaded. Por ello en cargas ST el rendimiento solo aumentará por el incremento de IPC y en cambio en cargas MT se sumará el 11% de frecuencia nominal al incremento IPC.

Undervolting

A esto debo añadir que tanto en los antiguos FX Bulldozer como en los nuevos Vishera AMD ha sido bastante exagerado en cuanto a los voltajes a los que vende sus CPUs. Normalmente son absolutamente estables a voltajes 0.100 – 1.150 V inferiores a los nominales. Con ello además ganamos unos 20 – 30 W en consumo y 10 – 15 ºC de temperatura. Merece la pena hacerlo aunque con ello perdamos horas o incluso a veces algunos días.

AMD debería hacer este proceso en fábrica pero resulta laborioso y por ello caro. De este modo saca al mercado las CPUs a un voltaje excesivamente prudente para asegurar su estabilidad sin probar individualmente en exceso cada uno de los chips para ajustar individualmente su voltaje.

Piledriver. Mejoras micro arquitecturales respecto a Bulldozer.

AMD ha mejorado Bulldozer en muchos aspectos aunque sin cambiar nada importante del diseño, de hecho Piledriver no es más que un stepping más avanzado del mismo core.

piledriver_enhancements_640

Se ha mejorado el Branch Prediction, algo crítico en este diseño debido a su larguísimo pipeline. Esto mejorará el rendimiento sobretodo en cargas de enteros.

Se ha activado la unidad de división de enteros (INT Div, iDiv) que estaba deshabilitada en Bulldozer por un fallo de diseño, como comenté en Abril de 2011 en mi artículo:

AMD AGLUs, Bulldozer INT cores. Actualizado – LowLevelHardware

“ EX0 contiene una unidad de división de enteros parcialmente pipelinizada y con latencia y capacidad de proceso variable en función de la precisión. Aunque examinando detenidamente la documentación parece que más bien se trata de una unidad “virtual” ya que la instrucción IDIV se decodifica en el Microcode Engine y se secuencia en instrucciones sencillas ALU que se ejecutan en EX0. Además incluye una unidad para LZCNT y POPCNT.

Efectivamente, en Bulldozer, la unidad iDiv no estaba habilitada y por ello la latencia y velocidad de las divisiones de enteros eran tan decepcionantes. Por fin, en Piledriver se encuentra habilitada.

Se ha doblado el tamaño del L1 dTLB (TLB de datos de nivel 1). Para el que quiera amplia información sobre para que sirve un TLB le remito a algunos artículos pasados.

piledriver_enhancements2_640

En total todas estas mejoras aumentan el IPC de un 5 a 30%, en general sobre un 10%. En el caso del 30% es más por un rendimiento terrible de Bulldozer en algunas tareas que por méritos de Piledriver.

En cualquier caso podríamos caracterizar las prestaciones de Piledriver en el AMD FX8350 del siguiente modo:

- Cargas de trabajo de enteros con excelente paralelización y con carga máxima en los 8 INT cores. Ejemplo: compresión de datos en WinRAR o 7zip LZMA2. Prestaciones generalmente muy superiores al Core i5 3570K y superiores al Intel Core i7 3770K.

- Cargas de trabajo de coma flotante con excelente paralelización y con carga máxima en las 4 FPUs FMACs con 8 threads.

  Ejemplo 1: Rendering, cálculo matemático. Prestaciones generalmente bastante superiores al Core i5 3570K y ligeramente inferiores al Core i7 3770K. En PovRay en cambio el más rápido y por buen margen es el FX8350.

   Ejemplo 2: Edición y codificación de video x264 / H264. Prestaciones generalmente superiores al Core i7 3770K y muy superiores al Core i5 3570K.

- Cargas de trabajo principalmente de enteros con baja paralelización y raras veces con carga máxima en 4 INT. Ejemplo: SysMark 2012, compilación y usos multitarea de la máquina en Windows con varias aplicaciones a la vez. Prestaciones muy similares o algo inferiores al Core i5 3570K (como mucho un 10%).

- Cargas de trabajo de enteros single thread o con paralelización muy leve. Ejemplo: instalaciones de software, instalación de sistema operativo, javascript. Prestaciones inferiores a Core i5 3570K hasta un 40% en proceso javascript.

Si hacemos la media el FX8350 nos da un rendimiento superior en un 5% al Core i5 más alto de gama, el i5 3570K que está situado por encima en precio (unos 20 – 30@ más).

El Core i7 3770K se sitúa en un nivel de prestaciones superior gracias al Hyper Threading como atestiguan sus más de 150€ extras de coste.

Conclusiones

Lo más positivo que puedo sacar de Vishera es su notable aumento de velocidad de trabajo en aplicaciones ofimáticas respecto a Bulldozer (ha mejorado más de un 20%) y el hecho de haberse convertido en el rey en prestaciones en temas de video, sobretodo en coding x264. En estos casos supera incluso al excelente y mucho más caro Core i7 3770K.

FX8350_640El die completo del procesador AMD FX 8350 32 nm.

Vishera mantiene exactamente los niveles de consumo y disipación térmica de los anteriores AMD FX con un rendimiento medio en cargas multithread de un 20% (ayudado por los 400 MHz extras) superior y un 5 – 10% en cargas single thread (con igual frecuencia).

Post Scriptum

Animo a los posibles compradores de estas CPUs a cambiar el funcionamiento nominal de Turbo Core. AMD ha dejado invariado el Turbo Core con carga single threaded o dual threaded a 4.2 GHz respecto a Bulldozer.

En Bulldozer FX8150 la disipación térmica y consumo era prácticamente igual con cargas MT de 8 threads (3.6 GHz) que en single o dual threaded (4.2 GHz) e igual a 125W.

En Vishera, en cambio, con cargas de 8 threads (4.0 GHz) llega a los declarados 125W en Prime95 pero con cargas single o dual threaded (4.2 GHz) se queda corto marcando unos 100 – 105W.

Los samples que he probado del AMD FX8350 son absolutamente estables en cargas single o dual threaded a voltaje nominal a 4.6 GHz y manteniendo siempre la disipación térmica por debajo de los 125W nominales. Para ello, en BIOS, cambio manualmente el funcionamiento de Turbo Core aumentando el multiplicador máximo a 46X.

En este caso conseguimos otro 9 – 10 % adicional de velocidad en casos ST (single threaded), el talón de Aquiles de esta micro arquitectura.

Echad un vistazo a la web de mi nueva empresa, un proyecto de gran envergadura que llevo preparando hace más de un año.

Os lo recomiendo para diseño de sistemas de altas prestaciones optimizados al límite:ip16_texto_300px_blanco422222

Allí tenéis a vuestra disposición el formulario de contacto, para consultas sobre este artículo hacedlo más abajo en la sección de comentarios.

Y mi nuevo Blog de contenido muy técnico y actualizado donde encontraréis artículos míos sobre hardware, procesadores y sistemas y también otros posts de expertos programadores e informáticos sobre otros temas de actualidad:

infromaticapremium-blog422222

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

El que tenga dudas o aportaciones tiene para ello la sección de comentarios, intentaré responder a todos y con la máxima claridad. Los Blogs deben de ser lugares de intercambio y agradezco vuestro feedback.

Carlos Yus Valero – informaticapremium      informaticapremium-logo-150px[3]

Memoria Transaccional en Intel Haswell 22 nm – ProfessionalSAT

Intel ha confirmado la inclusión en su nueva micro arquitectura Haswell 22 nm (disponible en 2013) de extensiones de aceleración (Transactional Synchronization o Intel TSX) hardware para acceso a memoria transaccional, un avance significativo y que posibilitará un mejor aprovechamiento del acceso simultáneo a RAM de varios threads o cores.

TSX_Haswell_01Los primeros estudios de Intel en memoria transaccional datan de 2005.

En este artículo de perfil bastante técnico explico en que consiste el concepto de memoria transaccional y las variaciones respecto al manejo actual de la memoria y hago una introducción de la implementación de Intel en sus nuevos cores Haswell 22 nm.

Intel_HaswellIntel Haswell 22 nm.

El modelo actual

Durante años, y en la actualidad, el acceso a memoria concurrente por varios procesos o threads se resolvía mediante locks o bloqueos (Lock-based synchronization of shared data access) de la página de RAM.

Una dirección de memoria a la que un proceso (un thread) accede se bloquea hasta que el thread daba señal de que había acabado su trabajo. Esto se hace para proteger contra colisiones en acceso a memoria: un thread puede intentar escribir (cambiar el valor) en una dirección de memoria mientras otro thread está procesando instrucciones con el valor pasado (el anterior a la escritura) de esa posición.

En este caso podría darse corrupción de datos y un fallo de ejecución en el software. De ahí el lock pues debe siempre respetarse el orden temporal de los accesos a memoria que colisionen. Gracias a Memory disambiguation, sólo el de los que colisiones. Anteriormente todo el proceso de acceso a RAM era en orden (in order).

Digamos que este mecanismo lock-based es altamente pesimista, por algunas veces que pueden haber problemas en el acceso concurrente se prohíbe siempre el acceso simultáneo y se serializa el acceso a memoria. Esto tiene en muchos algoritmos graves consideraciones prestacionales pues limita la ejecución multithread.

La memoria transaccional, de la que hay numerosas implementaciones por software (aquejadas de graves problemas de velocidad), propone un mecanismo para evitar estos locks y con ello conseguir accesos concurrentes a paginas o estructuras en RAM cuando no haya conflictos (colisiones de memoria).

Memoria transaccional en Intel Haswell 22 nm

Intel integra en Haswell una implementación de Intel TSX de dos vías (HLE y RTM) para la memoria transaccional, ambas con soporte de aceleración hardware.

TSX_Haswell_02

En la imagen anterior las cinco operaciones se deben ejecutar de manera secuencial, en orden temporal. Con memoria transaccional pueden ejecutarse simultáneamente por varios threads con la condición de que no se altere el resultado final.

Intel-Tick-Tock

En esencia la memoria transaccional permite un acceso paralelo a RAM por varios threads aunque accedan a la vez a las mismas estructuras o páginas. Y en caso de conflicto proporciona un mecanismo para deshacer los procesos y volver a una ejecución serializada de los accesos a RAM.

HLE (Hardware Lock Elision)

HLE funciona del siguiente modo: mediante prefijos modifican la función normal de las instrucciones de acceso a memoria que bloquean y desbloquean la estructura de datos en RAM.

Para realizar un lock se utiliza el prefijo XACQUIRE, para deshacerlo XRELEASE. Para el thread que utiliza el prefijo XACQUIRE el lock se ejecuta con normalidad (el thread cree que la estructura de datos en RAM está bloqueada para toda la máquina), en realidad no es así y el resto de threads pueden procesar con acceso a dicha estructura.

Cualquier thread puede entonces acceder al lock (con XACQUIRE) y operar, con lo que puede obtenerse un incremento tangible de concurrencia y velocidad.

HLE es un modo en el que el procesador miente a los threads y les concede el lock incondicionalmente y simultáneamente, pero la CPU tiene un mecanismo de resolución de conflictos por si el thread escribe en el lock. De hecho el procesador monitoriza por hardware todas las direcciones RAM que el thread lee o escribe desde el momento en que accede al lock.

En este caso todas las operaciones ejecutadas posteriormente sobre el lock son inválidas y la CPU debe cancelarlas (se aborta la transacción) y precargar los datos anteriores conocidos como correctos antes de realizarse el lock.

En caso (XRELEASE) de ausencia de conflictos todas las operaciones en RAM se ejecutan atómicamente en una sola transacción actualizando así el contenido de la RAM para que el resto de threads puedan acceder a estos datos actualizados.

Lo verdaderamente interesante de HLE es que es compatible con hardware anterior, las CPUs anteriores a Haswell simplemente ignoran los prefijos XACQUIRE y XRELEASE porque para ellas no significan nada y ejecutan el código con el antiguo modelo lock-based.

RTM: Restricted Transactional Memory

RTM es incompatible con procesadores actuales. Los programadores de un software deberán desarrollar dos versiones del código (una con RTM y una lock based). En CPUs Haswell y compatibles se ejecutará la versión optimizada RTM.

A día de hoy RTM tiene un menor interés, sólo comentaré que cuenta con nuevas instrucciones (XBEGIN, XEND, ABORT) que el código utilizará explícitamente. Es decir, es totalmente incompatible con hardware actual y llevará años llegar a ver implementaciones significativas de RTM.

Conclusiones

Intel TSX es otra extensión al juego de instrucciones X86 y ya van… rondamos ya las 1000 instrucciones. La utilidad de TSx se hará evidente en software multi-threaded que compartan datos activamente. Por ejemplo programas que accedan en paralelo a matrices de datos…

Las-CPUs-Intel-Haswell-llegan-en-2013

Habrá que ver aplicación por aplicación los beneficios que aportará, será interesante en bases de datos, en cálculos de simulaciones físicas, incluso en determinadas aplicaciones de Excel.

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

El que tenga dudas o aportaciones tiene para ello la sección de comentarios, intentaré responder a todos y con la máxima claridad. Los Blogs deben de ser lugares de intercambio y agradezco vuestro feedback.

Carlos Yus Valero – informaticapremium      informaticapremium-logo-150px[3]