jueves, 2 de febrero de 2017

Los 60000 ciclos AVX 256 bit perdidos en Intel Skylake – LowLevelHardware

Como todos conocéis, desde Sandy Bridge 32 nm, Intel introdujo las instrucciones AVX FPU de 256 bit en sus procesadores aumentando con ello en un factor 2 la potencia de cálculo FPU de sus CPUs respecto a Nehalem 45 nm y Westmere 32 nm.

Skylake core 14nmUno de los cores Skylake 14nm.

Con la microarquitectura Haswell 22 nm, Intel añadió el juego de instrucciones AVX2 y FMA FPU, que proporcionan proceso vectorial de enteros de 256 bit y unidades FPU Fused Multiply Accumulate combinadas respectivamente.

Intel Skylake Core i7 6700K

Hasta el momento, el Core i7 6700K es la CPU x86 quad core más rápida que he probado y además con un consumo de energía excelente. Y muy adecuada para cálculo matemático gracias al soporte AVX 256 bit y FMA junto a sus 8 threads simultáneos y el brutal ancho de banda de un dual channel DDR4 a frecuencias superiores a los 3 GHz.

En este artículo quiero resaltar una particularidad de los últimos procesadores Skylake 14 nm(Intel Core de sexta generación) que he comprobado en samples de Core i7 6700K configurados a 4.4 GHz.

Esta peculiaridad es el ahorro de energía en el que mantienen las unidades de cálculo vectorial de 256 bit cuando no están en uso, es decir, en las tareas más habituales del sistema operativo que no suelen involucrar cálculos FPU.

Es en el momento de lanzar un cálculo que actiave estas unidades de 256 bit, cuando se produce un fenómeno curioso.

Los 60000 ciclos AVX perdidos en Intel Skylake

Al inicio, y de manera sorprendente, la velocidad de proceso es de unas 4 a 6 veces inferior a la nominal en proceso AVX FPU, debido a que las unidades permanecen en ese estado latente de bajo consumo, probablemente con los 128 bit superiores deshabilitados y los datapath de 256 bit desactivado.

Tras un tiempo, dependiente de múltiples factores (la frecuencia de nuestro procesador, quizás de ajustes en la BIOS de nuestro sistema y también de peculiaridades o ajustes de nuestro sistema operativo) la velocidad de cálculo llega a su valor típico y normal y se mantiene ahí hasta finalizar el cálculo.

Skylake14nm 640Intel Skylake quad core 14 nm

Este tiempo de rendimiento reducido ronda los 60000 ciclos (unos 13 microsegundos en una CPU a 4.4 GHz).

Puede parecer poco tiempo, pero si nuestro cálculo consiste en pequeñas ráfagas de código AVX intercaladas entre otros fragmentos de código de otro tipo, puede provocar que nuestro cálculo sea globalmente unas 2 a 5 veces más lento de lo esperado (!!).

Como solución podemos hacer que estos cálculos en ráfaga procesen a velocidad nominal (elevada) si los mantenemos próximos en el tiempo, ya que estas unidades FPU AVX de 256 bit mantienen su velocidad de proceso durante unos 3 000 000 de ciclos (equivalentes a unos 600 micro segundos en una CPU a 4.4 GHz), después de los cuales retornan al estado de reposo y bajo rendimiento.

Otra solución consistiría en ir lanzando “de vez en cuando” algunas instrucciones AVX 256 bit para “despertar” las unidades FPU momentos antes (unos 60000 ciclos) de que lleguemos a ejecutar nuestro importante código AVX 256 bit.

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:

ip16_texto_300px_blanco[4][2][2][2]

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-blog[4][2][2][2]

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.

BIOS y ahorro de energía memoria en DDR3 o DDR4 – LowLevelHardware

Si somos usuarios de un sistema con una placa base de gama media o gama alta tendremos a nuestra disposición cientos de ajustes en BIOS para optimizar nuestra máquina.

20151130_085658Ajustes manuales DDR3.

Estos ajustes finos ciertamente pueden marcar la diferencia y hacer que nuestro sistema sea muy superior en todos los aspectos a uno configurado con los mismos componentes por defecto:

  • Rendimiento y velocidad de proceso muy superior (más del 50%).
  • Temperaturas mucho más controladas en cada componente.
  • Menor nivel de ruido de refrigeración.
  • Consumo total de la máquina muy reducido (en ocasiones en cientos de watt).

Sería fácilmente cuestión de cientos de artículos y cientos de miles de palabras detallar estos ajustes y todas sus posibles combinaciones en función del hardware específico, requiere un minucioso estudio de los whitepapers de cada procesador, chipset, placa base e implementación específica de cada BIOS.

En este artículo me referiré a una máquina con un procesador Core i7 3770K hand picked (seleccionado entre decenas de samples) configurada a 4.4 GHz a un voltaje muy reducido de solo 0.020 V superior al nominal mediante offset y con estabilidad absoluta con estos ajustes.

DRAM Power Management and Initialization

Aquí dejo enlaces a los Datasheet PDF relativos a:

La tercera generación Intel Core, Ivy Bridge 22 nm. (parte 1, parte 2).

La cuarta generación Intel Core, Haswell 22 nm. (parte 1, parte 2).

La quinta generación Intel Core, Broadwell 14 nm. (parte 1, parte 2).

La sexta generación Intel Core, Skylake 14 nm. (parte 1, parte 2).

En la sección 4.3.2 del manual en PDF 3rd-gen-core-desktop-vol-1-datasheet.pdf se detallan los ajustes que nos interesan relativos a la gestión de energía de las controladoras de memoria del procesador y de los módulos DDR3.

DRAM_Power_Management_and_Initialization_01DRAM Power Management and Initialization

En síntesis, los ajustes posibles serían:

Deshabilitar totalmente la gestión de energía para obtener las máximas prestaciones (opción 1 de la captura inferior).

Buscar un compromiso óptimo entre prestaciones y consumo (APD – PPD, opción 5).

Ir al máximo ahorro energético, menor consumo y disipación térmica (opción 4).

DRAM_Power_Management_and_Initialization_02DIMM Power Down modes.

En todas las máquinas que diseño me decanto por el ajuste central, el punto 5, APD – PPD, el óptimo compromiso.

DDR3_APD-PPDEl modo APD – PPD ofrece el compromiso perfecto.

En el caso que nos ocupa se consiguen ahorrar 6W de consumo en reposo (idle) y en uso normal (internet, compresión de datos, …) se mantiene en valores similares.

Es importante configurar el siguiente ajuste:

DDR3_Fast_ExitDDR DIMM Fast Exit Mode proporciona ahorro de energía con baja latencia de salida.

Con el ajuste de ahorro de energía deshabilitado no se consigue más velocidad de proceso ni mejores tiempos de cálculo en coma flotante o compresión de datos… pese a lo que sea lógico pensar.

Por ejemplo en WinRAR 5.21 x64, las velocidades y consumos son los siguientes:

Ajuste APD – PPD. Consumo de 94 a 109W y velocidad máxima 10459 KB/s.

Ajuste disabled. Consumo de 98 a 112 W y velocidad máxima 10467 KB/s.

Como podéis ver, no hay cambios significativos en la velocidad de compresión de datos y en cambio se ahorran 3 – 4 W en este test intensivo de memoria.

WinRARWinRAR en modo APD – PPD.

Como antes he señalado, en modo de reposo en el escritorio de Windows, se consiguen 6 W de bajada de consumo en el enchufe para un total de 48W (con 16 GB DDR3 2133 y el ajuste @ 4.4 GHz, SSD Samsung Evo 850 250 GB, disco duro 4 TB WD Caviar Black, tarjeta gráfica AMD 260X GCN 2 GB, tarjeta de sonido SB X-Fi y unidad óptica) desde los 54W con el ahorro de energía de la memoria DDR deshabilitado.

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.

Memoria G.Skill DDR4 4133 – LowLevelHardware

G.Skill ha lanzado al mercado módulos DDR4 de 8 GB @ 4.133 GHz y 1.40 V para los procesadores Core i7 de sexta generación Skylake de 14 nm, los Core i7 6700K.

Core_i7_6700K_4GHzCore i7 Skylake 14 nm 6700K funcionando a 4.2 GHz.

Los roadmap oficiales JEDEC para DDR4 ya apuntaban desde los inicios del standard a velocidades máximas nominales de 4.266 GHz, del mismo modo que en su día, al lanzar en sus inicios la DDR3 se habló de 1.6 GHz y posteriormente 2.133 GHz.

A día de hoy, módulos de este tipo son de una utilidad limitada por sus pésimos timings, llevados al límite para lograr estabilidad a frecuencias superiores a los 4 GHz:

GSkill_DDR4_4133_8GB_Timnings_640Memory timings de G.Skill DDR4 4133.

Como vemos a 3.6 GHz todavía conserva buenos timings de 16 16 16 36 2N pero al llegar a 3.866 GHz y 4.0 GHz se degradan mucho hasta los 18 22 22 42 2N y 19 21 21 41 2N respectivamente.

GSkill_DDR4_4133_8GB_XMPPerfiles XMP del módulo 8 GB DDR4 G.Skill 4.133 GHz.

Lo notable es el voltaje de solo 1.35 V, que no es elevado pensando en las altísimas frecuencias.

En el ajuste de 4.133 GHz necesitan ya un voltaje de 1.40 V y empeoran las latencias hasta 19 25 25 45 2N… simplemente para “homologar” que llegan a esa frecuencia para un ancho de banda por canal de 33.064 GB/s (66.128 GB/s en dual channel).

GSkill_DDR4_4133_8GB_TimingsA 4.133 GHz se degradan en gran manera los timings.

Seguramente yo me quedaría con el ajuste a 3.6 GHz a 16 16 16 36 2N @ 1.35 V en dual channel por su baja latencia. Este ajuste daría un ancho de banda de 28.8 GB/s por canal para un total de 57.6 GB/s, ¡¡simplemente brutal!!

GSkill_DDR4_4133_8GB_640[3]

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.

AMD Excavator 28 nm – LowLevelHardware

Ya a finales de 2015, AMD nos trae la cuarta y última iteración de su arquitectura Bulldozer inicialmente lanzada en el nodo 32 nm HKMG de Global Foundries.

Carrizo coresDos módulos AMD Excavator (cada uno con 2 INT cores) con 2 cachés L2 de 1MB.

Tras eliminar numerosos bugs, activar unidades deshabilitadas en Bulldozer (generación 1) como la IDIV y reducir paulatinamente el consumo con Piledriver 32 nm (generación 2) y Steamroller 28 nm (generación 3) además de ir lentamente aumentando el IPC, llega Excavator 28 nm con mejoras incrementales en muchos aspectos y también alguna pequeña revolución.

Excavator. los cambios más importantes respecto a las generaciones anteriores:

  • Reducción de la caché L2 de 2 MB a 1 MB por módulo con una importante reducción de área y mejorando la latencia. 2 MB L2 era demasiado para este tipo de cores fabricados en 28 nm, un mal compromiso área / prestaciones.

CarrizoL1d_32KB_8víasAMD Excavator L1d: 32 KB 8 vías.

  • Por fin se dobla el tamaño de la caché L1d de 16 KB a 32 KB por INT core y su asociatividad aumenta hasta las 8 vías. Por fin AMD ha visto la luz en cuanto al diseño de la caché L1… 32 KB con 8 vías es un excelente diseño. Era una mejora muy necesaria.

Kaveri 2 Clusters 2xL2Dos módulos AMD Steamroller (cada uno con 2 INT cores) con 2 cachés L2 de 2 MB.

Desgraciadamente, AMD no puede fabricar actualmente en nodos de 20 / 22 nm ni en los nuevos nodos de 14 nm (como su rival Intel) con el fin de reducir el área de sus productos y con ello su coste de fabricación.

Solución de los ingenieros de AMD: seguir en los 28 nm pero reduciendo el área (superficie) de sus chips implementando librerías de alta densidad procedentes del mundo del diseño de GPUs:

LibreríaAltaDensidad640Con el uso de librerías de alta densidad AMD logra reducir el área de Excavator.

Gracias a estas mejoras se cifra en un 30% la reducción de superficie.

A todas estas nuevas técnicas se añaden las mejoras importantes que Steamroller 28 nm ya introdujo respecto a sus antecesores de 32 nm, Piledriver y Bulldozer:

  • La L1i compartida para los 2 INT cores aumentó a los 96 KB y una asociatividad de 3 vías (representó un gran avance sobre los 64 KB / 2 vías, aunque 3 vías sigue siendo poco, muy poco para dos threads).
  • El decoding doble por módulo, uno para cada INT core, un cambio que esta microarquitectura (Bulldozer) pedía a gritos…

Excavator y el segmento de 15 watt:

Hay que tener claro que AMD busca reducir el consumo y disipación térmica de sus SOCs por todos los medios posibles y por ello ha optimizado críticamente Excavator y su primera implementación comercial, las APU Carrizo con 4 INT cores y 8 clústeres GCN 2 (Radeon R7).

Por ello ha optimizado el conjunto de 4 INT cores + 8 clústeres GCN 2 + controladoras DDR3 y resto de circuitería para un TDP de 15 watt, que se extenderá fácilmente a los 35 watt.

Carrizo15_640AMD Excavator: excepcional rendimiento en 15 watt. Con 35 watt menor ventaja.

Esto significa que cuanto mayor frecuencia le pidamos a Excavator, menor ventaja mostrará respecto a sus antecesores. No esperéis diseños de Carrizo de 100 watt a frecuencias de 4 GHz o más.

Las frecuencias iniciales rondarán a 35 watt los 2.1 GHz con Turbo hasta 3.4 GHz con los cores gráficos a 800 MHz y soporte de DDR3 2133 en el modelo tope de gama, el FX-8800P.

Frecuencias640

No está nada mal para 35 watt, un excelente resultado.

Conclusiones

AMD prepara el desembargo de Zen 14 nm, seguro que no sin numerosos problemas. Recordemos que va a utilizar el nodo de 14 nm de Samsung (ya fabrica los SOCs de los Galaxy S6 con esta tecnología) y no estará exento de dificultades el diseñar un chip tan complejo como Zen en un nodo y proceso de fabricación tan sumamente diferente de los actuales.

El puente hacia Zen son los chips con cores Excavator y AMD ha demostrado que ve claras las necesidades del mercado con su enfoque en el segmento de los 15 watt.

Excavator parece que dará mucha guerra en el segmento de los UltraBooks, será un chip muy equilibrado en TDPs de 15 a 35 watt, en este sentido, incluso creo que puede ser un gran rival respecto a los Core i5 de la serie U.

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.

AMD Steamroller core. AMD Kaveri. Parte 2 – LowLevelHardware

La primera implementación comercial de los cores Steamroller 28 nm es en las nuevas APU Kaveri, formadas por 2 clústers de 2 INT cores y una FPU y dos cachés L2 de 2 MB junto con la GPU integrada basada en la última generación de gráficas Radeon GCN 2.0.

Kaveri28nmDie de AMD Kaveri 28nm. En naranja la GPU Radeon R7.

El proceso de fabricación de 28 nm SHP de Global Foundries

AMD ha dado un paso decidido que marca una nueva etapa para la compañía: deja los procesos de fabricación orientados solamente a altísimas frecuencias (superiores a los 4 GHz) y opta por el contrario por procesos Bulk dirigidos a menor consumo, menor área con una penalización en frecuencia máxima.

Es decir, un procesador fabricado en el nuevo nodo de 28 nm SHP presenta mayor densidad de transistores por mm2, menor coste de fabricación, menor consumo a una frecuencia dada (por ejemplo en el rango hasta los 4 GHz aprox.) a costa de frecuencias pico inferiores.

A mi modo de ver una sabia y completamente acertada decisión, ya que, anteriormente, AMD no podía desplegar el potencial verdadero de frecuencia de la microarquitectura Bulldozer debido a su excesivo consumo al ir subiendo la frecuencia de funcionamiento con el necesario aumento exponencial de voltaje.

Es de esperar por ello, que desde ahora AMD se dedique a integrar más funcionalidades en cada uno de sus chips (más cores, más potencia de GPU…) ya que tiene un nuevo margen de disipación térmica máxima o TDP.

El core Steamroller

EN la tercera iteración de la familia de cores 15h, microarquitectura Bulldozer para los amigos, AMD ha hecho cambios realmente importantes respecto a la primera y segunda generación.

Steamroller Compute UnitUn cluster de arquitectura Steamroller: 2 INT cores, 1 FPU y 2 MB de L2.

Steamroller Cluster 640Fotografía de un clúster Steamroller perteneciente a un die AMD Kaveri 28nm.

EN AMD Kaveri se integran dos Clústers completos para un total de 4 INT cores:

Kaveri 2 Clusters 2xL2AMD Kaveri: Dos clústers Steamroller 28nm con sus cachés L2 enfrentadas.

En el siguiente artículo me centraré en las mejoras, muy extensas, introducidas por AMD en Steamroller.

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.

AMD Steamroller. Introducción. – LowLevelHardware

El 14 de Enero AMD sacó al mercado su tercera iteración de la micro arquitectura Bulldozer en la forma de la APU Kaveri fabricada por Global Foundries es el nodo Bulk SHP (Super High Performance) de 28 nm. En este caso se trata de una implementación de dos módulos con dos INT cores y una FPU compartida junto con una excelente GPU GCN 1.1 de 512 SPs.

excavator

La micro arquitectura AMD Bulldozer

Primero fue Bulldozer 32 nm HKMG, después Piledriver 32 nm HKMG y ahora Steamroller 28 nm Bulk SHP. Posteriormente, 2015, está previsto Excavator, la evolución final y que pondrá término a esta micro arquitectura. Después preveo que AMD, por fin, se centrará en diseñar cores de alto IPC y menor consumo para competir con mayor igualdad con los cores contemporáneos de Intel.

Como muchas veces ha sucedido con los diseños de AMD, en su primera versión.

En este caso Bulldozer 32 nm HKMG (AMD FX 8150) las prestaciones, consumo y disipación térmica no fueron las esperadas.

Piledriver 32 nm HKMG (AMD FX 8350) alivió ligeramente los problemas de consumo y mejoró las prestaciones.

Con Steamroller AMD plantea un cambio mucho más profundo:

  • Una evolución de la micro arquitectura mayor que en el caso de Bulldozer a Piledriver, con claras mejoras en algunos campos y otros cambios no tan claros en otros aspectos.
  • Un nuevo nodo de fabricación: del ya antiguo nodo premium HKMG 32 nm de Global Foundries utilizado en Bulldozer y Piledriver se pasa al nodo de 28 nm Bulk SHP, más orientado a menor consumo y mayor densidad (más transistores por mm2), es decir menor coste por chip y menor TDP, es decir, mayor performance per watt.

module-block

En la segunda parte de esta serie de artículos detallaré las mejoras implementadas en Steamroller por AMD y lo que significan de cara a sus encarnaciones presentes:

La APU Kaveri y los futuros chips FX Steamroller de alto rendimiento del que parece que están preparando una versión con 8 módulos y 16 INT cores con controladoras PCIex 3.0 integradas en el die del chip (lo que permitiría deshacerse del  North Bridge del chipset) que probablemente funcionará a frecuencias conservadoras en carga full threaded aunque con agresivos modos Turbo.

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.

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

En un artículo de ProfessionalSAT he hecho una introducción al nuevo procesador Atom Silvermont de 22 nm de Intel. Recomiendo la lectura de ese texto para estar familiarizado con algunos de los conceptos que son utilizados en el presente.

El mayor cambio en Silvermont respecto a los anteriores cores de la familia Atom es el cambio al procesamiento Out of Order (OoO) desde el primitivo concepto de ejecución In Order.

Ahora voy a describir, paso a paso, el pipeline de ejecución de Silvermont y las mejoras que aporta respecto a los antiguos cores (Bonnell 45 nm, Saltwell 32 nm).

Mejoras en las etapas de Fetch

Las etapas de fetching o carga de instrucciones son las primeras del pipeline de ejecución de cualquier procesador.

En Silvermont se ha llevado a cabo un rediseño profundo encaminado a alimentar adecuadamente de instrucciones a la nueva maquinaria de procesamiento out of Order.

Silvertmont_FetchFetch en Atom Silvermont 22 nm.

La predicción de saltos o Branch Prediction ha sido totalmente reconstruida de un modo distinto a los antiguos Atom. Se ha dividido en dos componentes independientes que actúan cada uno por separado y están situados en diferentes etapas del pipeline de procesamiento.

El primer componente es el Predictor de Fetching (Fetch Predictor). Es un Branch Target Buffer, un predictor de baja latencia y con una precisión elevada pero no extrema.

La unidad de Fetching carga cada ciclo 16 bytes de instrucciones desde la caché L1i con ayuda del L1 iTLB en los 6 Prefecth Buffers. Estos buffers aíslan las etapas de fetch de las posteriores etapas de decodificación X86 y así puede adelantarse a estas en el stream de instrucciones.

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.

Electromigración en microprocesadores – LowLevelHardware

Todos los componentes, tanto los mecánicos como los electrónicos, están sometidos a un desgaste por el uso y en este grupo incluyo a los microprocesadores, cachés y chips de memoria DRAM y Flash.

Bild5Microfotografía: creación de un cruce entre dos conductores por electromigración.

En un nuevo artículo en ProfessionalSAT profundizo en la relación temperatura – degradación física de semiconductores:

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

Recientemente he sufrido personalmente los efectos de la electromigración en varios de mis sistemas junto con otros de mis clientes, todos ellos de una antigüedad similar. En este caso, la degradación y posterior avería se ha producido en la memoria DDR3 de algunos de mis Sistemas de Altas Prestaciones basados en CPUs Core i7 de la serie 900.

Por ejemplo, un disco duro se degrada día a día durante su utilización normal y conforme pasan los meses podemos seguir la variación de sus parámetros de funcionamiento mediante la tecnología SMART que nos informa crípticamente del estado de salud del dispositivo. (Prometo un artículo sobre SMART cuando tenga tiempo…)

Electromigración

En dispositivos altamente miniaturizados como una CPU / GPU o un chip DRAM DDR3 o GDDR5 (memoria actual de las GPUs) se da una degradación constante de sus características eléctricas. La electromigración es el proceso causante de la mayoría de fallos en este tipo de dispositivos.

1153426521

La electromigración consiste en el arrastre y transporte de los átomos metálicos del conductor por el constante flujo de alta intensidad de electrones que lo atraviesa.

Se da una transferencia de momento (cantidad de movimiento) del electrón al núcleo metálico (literalmente lo golpean mayoritariamente en una dirección y sentido) y el núcleo va avanzando paso a paso en el sentido de la corriente creando dos tipos de anomalías:

Huecos: hay zonas que literalmente se vacían de metal, incrementando la resistencia del conductor y eventualmente provocando un fallo total del dispositivo por corte de corriente.

Void_formationFormación de huecos por electromigración.

576804216Este hueco ha causado un fallo total en el dispositivo al interrumpir la corriente.

Acumulaciones: en otras zonas, el material metálico se agrega y crea áreas de mayor contenido metálico, se incrementa la sección del conductor y puede llegar a crear puentes de conducción con líneas adyacentes llevando también al fallo del dispositivo.

atwu-2Puente metálico entre dos conductores creando un corto circuito.

En casos extremos la creación de acumulaciones puede llegar a fracturar el aislante y crear corto circuitos con zonas vecinas.

Factores que influyen en el proceso de electromigración

Favorecen la electromigración:

Las altas temperaturas. Se produce un incremento en la resistencia eléctrica del conductor metálico y aumentan las vibraciones atómicas de los núcleos metálicos.

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

Las corrientes elevadas (altas intensidades). A mayor flujo electrónico, mayor transferencia de momento de los electrones a los átomos metálicos de cobre o aluminio.

La poca sección de los conductores. A menor sección mayor densidad de corriente y más electromigración. En microprocesadores contemporáneos, de 32 nm (o 28 y 22nm), está claro que este factor es importante.

Minimizar los efectos de la electromigración

Está claro que debemos hacer lo posible para eludir los catastróficos efectos de la electromigración:

PIC03263

Debemos reducir la temperatura de funcionamiento de nuestros procesadores y memorias DRAM al mínimo posible:

Mediante el uso de los mejores sistemas de refrigeración disponibles.

El uso de una pasta térmica adecuada a la superficie del radiador de CPU (según la rugosidad de la base).

DSCF2366Un detallado estudio del flujo de aire es necesario en ciertos sistemas.

Y el exhaustivo estudio de la circulación del aire en la torre y la optimización de las presiones y flujos de aire.

PIC03259Uno de mis Sistemas de Altas Prestaciones con 6 DIMM DDR3 refrigerados por dos Noctua.

En el caso de los módulos DIMM de memoria DRAM DDR3 o la memoria GDDR5 presente en las GPUs actuales, lo único que podemos hacer es garantizar sobre ellas el mayor flujo de aire posible y a una temperatura adecuada. (Fotografía superior).

EMDaños en un conductor por electromigración.

Es importante mantener el voltaje de alimentación del dispositivo en el mínimo posible que garantice la estabilidad del sistema y la exactitud total en nuestros cálculos o procesos.

A ser posible es recomendable escoger manualmente los procesadores y los módulos de memoria (hand picking) seleccionando los que posean las mejores características eléctricas (menor voltaje de funcionamiento a la frecuencia deseada u objetivo).

EM1Proceso de electromigración, creación de un hueco.

En mis Sistemas de Altas Prestaciones sigo todas estas directrices a rajatabla y aún así no me he librado de los efectos de la electromigración como podéis observar en mi artículo de ProfessionalSAT.

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 con exquisito cuidado en las temperaturas de los componentes y siempre con los menores voltajes posibles para garantizar la mejor durabilidad y rendimiento:

ip16_texto_300px_blanco[4][2][2][2]

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-blog[4][2][2][2]

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.

nVidia Kepler 28 nm – LowLevelHardware

Por fin ha llegado la nueva serie 600 de nVidia, su primer integrante es la GTX680 fabricada en el nodo de 28 nm en TSMC. En este conciso artículo esbozaré los importantes cambios arquitecturales respecto a la anterior generación 500 Fermi de 40 nm y la motivación tras ellos.

Kepler_28nm_GTX680El die del procesador gráfico Kepler.

El nuevo proceso de fabricación de 28 nm ha proporcionado grandes avances para la industria de semiconductores después de los terribles problemas y largos retrasos de TSMC en el nodo de 40 nm.

Cambios de micro arquitectura en Kepler

nVidia deseaba para Kepler un masivo incremento en prestaciones gráficas, de hecho, en cada punto del diseño se aprecia un decidido énfasis en el aspecto gráfico dejando claramente descuidada la parte GPGPU.

Kepler01

Se ha conseguido un aumento notable de la densidad de transistores y con ello una apreciable reducción de la superficie del chip: nVidia ha integrado 3500 millones de transistores en tan solo 294 mm2. Recordad que Fermi (GTX 580) era un chip de más de 500 mm2, muy caro de producir.

La GTX680 es un avance significativo para nVidia en el aspecto gráfico, integra 1536 SPs (stream processors), un aumento espectacular (3X) desde los 512 SPs de la GTX580 Fermi.

Todo ha sido posible por el abandono del shader clock, que era el doble de la frecuencia principal y aumentaba mucho el consumo del chip y hacía necesario el uso de transistores especiales para los SPs ya que funcionaban sobre los 1.5 GHz.

Kepler02

Sin duda en unos meses nVidia sacará a la luz otra revisión de Kepler, probablemente sobre los 500 - 600 mm2, enfocada a proceso general para sus líneas de computación Tesla y Quadro y para la gama más alta de sobremesa.

Será el llamado Big Kepler y conllevará un aumento en el ancho del bus GDDR5 a 384 o incluso 512 bits y sobretodo un incremento notable en la tasa de cálculo FP64 (que en Kepler ha sido reducida al 33% de la de Fermi por SP).

Además Kepler integra un modo “Turbo” llamado Boost Clock. Si la disipación térmica y la temperatura lo permiten, Kepler aumenta su frecuencia desde la nominal hasta alrededor de los 1150 MHz, según las cargas de trabajo.

El SMX, sustituto del SM

En Kepler nVidia llama SMX a la unidad funcional principal del diseño, en el SMX reside todo el poder de cálculo del chip.

El SMX es el heredero del SM de las GTX 480 y GTX 580. nVidia ha duplicado los recursos de cada SM para producir un SMX.

Kepler04

En un SMX reside un gran número de unidades de todo tipo:

Desde la segunda revisión del PolyMorph engine (con un throughput doble respecto a la generación anterior),

Pasando por la caché de instrucciones,

Los 4 Warp Schedulers,

8 unidades Dispatch (Dispatch Units),

El Register File (RF) duplicado a 64K entradas de 32 bit,

192 CUDA Cores (SPs),

32 unidades Load Store (LSUs)

16 SFUs para interpolación,

16 SFUs para funciones especiales,

16 TUs (unidades de textura),

Por último 8 CUDA FP64 cores.

Kepler GTX 680

En esta implementación nVidia integra lo siguiente:

Kepler03

4 GPCs que integran cada uno 2 SMX junto con un Raster Engine encargado de la rasterización.

Kepler05

También integra la caché L2 y las cuatro controladoras GDDR5 de 64 bit a 6 GHz.

En Kepler nVidia ha decidido simplificar absolutamente sus schedulers respecto a los de Fermi. En Fermi se realizaba scheduling por hardware dinámicamente, en cambio en Kepler nVidia ha movido el scheduling al driver gráfico, es decir, se ejecuta por software en tiempo real en el procesador.

Este hecho ha permitido, por un lado reducir mucho la complejidad del diseño y por otro reducir el consumo, disipación térmica y el área del chip.

GPU Boost

Podemos decir que en esta primera implementación “limitada” de GPU Boost su efecto es limitado, nVidia lo cifra en un 5% de incremento de velocidad en juegos (FPS).

Mientras haya margen de consumo y temperatura disponible, Kepler puede aumentar su frecuencia hasta los 1150 MHz en pico (sobre un 15 %). Siempre dependiendo de la carga de trabajo.

La frecuencia media en modo Boost llega a los 1058 MHz y se incrementa desde los 1006 MHz en escalones de 13 MHz. En la práctica es crítico mantener bajas temperaturas para que GPU Boost sea efectivo, a temperaturas >70ºC la GPU se ve obligada a ir reduciendo paulatinamente la frecuencia y el voltaje para “evitar sustos”.

Conclusiones

Kepler (GTX 680) es más rápido en juegos (en general) que AMD GCN (HD7900). AMD ha diseñado una arquitectura de carácter general, excelente en computación FP (GPGPU, OpenCL) y muy buena en proceso gráfico (juegos).

Por su parte nVidia ha optado por poner énfasis en la parte gráfica y ha diseñado Kepler para el gamer que nunca o raramente usará OpenCL o programas de coproceso GPGPU.

Hoy por hoy Kepler es más eficiente que AMD GCN en juegos y es la elección óptima para este uso. En proceso general – computación GPU, en cambio, AMD GCN es infinitamente superior.

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.

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

AMD Piledriver core. Actualizado 04/03/2012 – LowLevelHardware

Chip

En este artículo voy a describir alguna de las mejoras micro arquitecturales implementadas por AMD en la primera evolución de la arquitectura Bulldozer que próximamente verá la luz en los APU Trinity 32 nm.

Al final del artículo comento la adopción de AMD para Piledriver de la nueva tecnología RCM (Resonant Clock Mesh) de distribución de señal de reloj de Cylos Semiconductor.

He modificado totalmente la sección de conclusiones con los cambios que considero necesarios a esta micro arquitectura para que algún día despliegue toda su potencia oculta. La arquitectura Bulldozer es capaz de mucho más.

Por cierto, echad un vistazo a los comentarios de este artículo, pues hay información muy interesante y respuestas a algunas preguntas comunes.

Piledriver_coreLa fotografía de Piledriver muestra algunos cambios frente a Bulldozer.

Estos nuevos cores de procesamientos estarán disponibles en dos variantes no idénticas:

- Primero aparecerán en Trinity 32nm, el sustituto de los actuales Llano 32 (AMD A8, A6 y A4) con GPU Radeon integrada.

- En una segunda etapa, hacia Q3 2012, se actualizarán los cores Bulldozer de los chips AMD FX 32 nm con núcleos Piledriver de segunda generación derivados de los integrados en Trinity. Son los que considero más interesantes.

La nueva AMD

Tras la salida de Dirk Meyer, AMD ha cambiado de manera importante sus objetivos, ahora ya no pretende alcanzar a Intel en prestaciones puras por core (IPC). Dirk luchó por ello con los pocos recursos que le dejó la desastrosa gestión anterior de sus antecesores.

Fueron años de despilfarros que malgastaron los enormes beneficios de la época de gloria de los AMD Athlon, Athlon64 y Opteron.

La lucha en IPC se antojaba imposible y aunque lo pretendiesen es simplemente absurdo dado el altísimo perfeccionamiento alcanzado por Intel y su arrolladora cadencia de producción de nueva micro arquitectura y nuevo proceso de fabricación en años alternos (Intel Tick Tock). Sobretodo sabiendo que actualmente Intel ostenta de un 20 a un 50% de ventaja en IPC por core y a igualdad de reloj.

AMD_2012_2013_DesktopRoadmap de sobremesa 2012 – 2013. A finales de año llega Piledriver.

AMD con su nueva estrategia ve un futuro para sus procesadores con un diseño SOC, muchos de ellos fabricados en procesos Bulk (más dirigidos a bajos consumos y no tan altas frecuencias) y no los caros SOI HKMG actuales, pensando más en el rendimiento por watt que en rendimientos absolutos.

AMD Piledriver core

Toda la información expuesta a continuación ha sido extraída de la reciente revisión de la Guía de Optimización Software para la Familia 15h de AMD:

AMD_15hSoftware Optimization Guide for AMD Family 15h Processors.

Los integrantes de la micro arquitectura Bulldozer estan divididos en varias familias y estas a su vez en modelos:

- Los actuales cores Bulldozer (AMD FX 32 nm) son denominados familia 15h y modelos 00h - 0fh (0xh). Incluyen caché L3 de 8 MB:

- Los cores integrados próximamente en Trinity son familia 15h y modelos 10h - 1fh (1xh). No llevarán caché L3 e ira´n acompañados de una GPU integrada de la familia Radeon HD6000.

- Los cores integrados en el sustituto de AMD FX 32 nm serán familia 15h y modelos 20h - 2fh (2xh), contarán con caché L3, muy probablemente igual a la actual (8 MB).

Los modelos 10h - 1fh (1xh) y 20h - 2fh (2xh) incorporan cores Piledriver, de primera y segunda generación respectivamente, estos últimos con algunas mejoras adicionales.

Trinity_Die_Low_wmPrimera imagen de Trinity 32 nm, dos módulos Piledriver y GPU AMD serie 6000.

Las diferencias de Piledriver respecto a los actuales cores Bulldozer son las siguientes:

PiledriverMejoras micro arquitecturales en AMD Piledriver 32nm.

Entre las diferencias importantes puedo señalar las siguientes:

- El soporte para nuevos juegos de instrucciones, entre los más destacados el FMA3 de Intel.

- La ampliación de la cola de precarga de instrucciones (load queue) de la FPU de 40 a 44 entradas.

- El soporte para los formatos FPU de 16 bit.

- La ampliación del buffer L1 DTLB (el translation lookaside buffer de datos de nivel 1) de 32 a 64 entradas. 32 entradas era claramente insuficiente.

El resto de cambios serán menores y poco significativos prestacionalmente hablando.

También espero y digo espero porque no sé si AMD lo implementará o no, una sustancial mejora en la velocidad de escritura de las cachés L1d y L2 de Piledriver respecto a los horribles ratios de Bulldozer.

Esto exigiría un rediseño de las WCC (write combining caches) de Bulldozer, unos pequeños buffers de 4 KB por core (2 por módulo) que consolidan las escrituras desde las dos L1d de cada core (dentro del módulo) hacia la L2 compartida de 2 MB.

En la práctica es una caché L1.5d. El flujos de datos pasa desde la L1d de 16 KB a la WCC de 4 KB y de ahí a la L2 de 2048 KB.

Conclusiones e ideas generales

No me gusta Bulldozer. Es simplemente así, en 2012 la evolución de las micro arquitecturas sigue la dirección opuesta: pipelines cortos, cachés L1 de 32 KB con alta asociatividad (8 vías) y mecanismos branch prediction muy muy avanzados.

Bulldozer y Piledriver tienen un grave fallo, el Front End no es capaz de alimentar tres schedulers con 4 pipes cada uno (los dos INT cores y la unidad SIMD FMAC), nada menos que doce unidades de ejecución se alimentan de él.

Los Decoders sólo son capaces de descodificar 4 instrucciones/ciclo a partir de un fetch de 32 bytes/ciclo desde la L1i de 64 KB y dos vías, en el caso de ser instrucciones X86 simples que generen sólo una macro op.

Si hay una instrucción X86 más compleja que genera 2 macro ops, el ratio de decoding se reduce a 2 simples y una doble macro op y no 3 + 1 como sería deseable.

Y si son instrucciones X86 complejas que generen más de 2 macro ops y deban usar el microcode engine solamente se descodifica en pico una instrucción/ciclo y lo normal es que tarde bastantes ciclos en secuenciar una instrucción compleja X86 en macro ops. Y en ese tiempo no entran instrucciones en los pipes… Todo el front end se bloquea y los demás threads tienen que esperar.

Además, los decoders procesan instrucciones, hasta 4 en paralelo si son simples, pero NO pueden descodificar instrucciones de dos threads diferentes. El funcionamiento es en ciclos alternos (ciclo 1, thread 1; ciclo 2, thread 2; …) Si los dos INT cores están activos, los decoders sirven a cada INT core cada dos ciclos, dando un pico de 2 instrucciones por ciclo por INT core, insuficiente pues cada INT core posee 4 pipes.

Los INT cores poseen 4 pipes, dos de ejecución (EX0 procesa ALU y IDIV, EX1 procesa ALU, IMULT, JUMP) y dos para operaciones de lectura de memoria (AGLU0, AGLU1). En total 4 unidades de ejecución por INT core.

AMD debe trabajar en ensanchar los decoders, debería ir hacia un diseño de 6 instrucciones/ciclo y reducir el numero de instrucciones X86 que utilizan micro código. La tasa de Fetch actual (32 bytes/ciclo) es suficiente.

El diseño actual de la caché L1i (L1 de instrucciones) debe desecharse. 64 KB no son necesarios pero sí elevar su asociatividad a 8 vías (tened en cuenta que sobre ella se ejecutan 2 threads). 32 KB y 8 vías sería lo óptimo.

El diseño de las L1d me gusta pero debe aumentarse a 32 KB y sería bueno llegar a las 8 vías, aunque 4 es satisfactorio, suficiente.

Hay que trabajar en los anchos de banda en escritura, Bulldozer arroja resultados terribles en escritura o copia en L1d y L2. Hay que revisar el funcionamiento de las WCC de 4 KB por INT core.

La caché L2 debería reducirse a 1 MB o incluso 512 KB manteniendo las 16 vías y reduciendo el acceso load to use a 10 – 12 ciclos.

La política de acceso a L3 y su manejo de la coherencia deben modificarse. Los bits per core de Nehalem y Sandy Bridge deben de ser incorporados a su diseño. AMD debería ya de una vez desechar las cachés exclusivas.

También debe mejorarse la latencia de activación del Turbo Core y debe reducirse el voltaje cuando se activa. Ahora mismo un Phenom II X6 o un Bulldozer FX 8150 con Turbo core activado trabajan a voltajes de 1.35 a 1.50V, es absurdo.

En mis ensayos personales con multitud de CPUs de ambas familias consigo estabilidad absoluta a 0.10V, 0.15V o incluso 0.20V menos que los nominales a frecuencias iguales a las de Turbo Core reduciendo la temperatura y el consumo radicalmente.

Lo esencial de los modos Turbo es una respuesta instantánea de la subida de frecuencia, si no, muchas veces la frecuencia se incrementa cuando el proceso crítico ya ha concluido y lo peor, a frecuencia reducida y con sensación de lentitud para el usuario.

Se denomina Race To Idle y consiste en incrementar la frecuencia al máximo para acabar rápido el proceso y volver lo antes posible al estado mínimo de frecuencia y voltaje para ahorrar energía. AMD debería implementar esta técnica.

El Branch Prediction también reside en el Front End y es compartido por los dos INT cores y la SIMD FMAC. Carece de predicción para Loops por lo que los predice generalmente mal. Su precisión general es buena (mucho mejor que la de los antiguos Phenom II) pero le penaliza la longitud del el pipeline de enteros, la penalización tras un fallo de predicción Branch asciende de 19 a 22 ciclos (!!).

Una hipotética macro op cache implementada en las primeras etapas del pipeline de cada INT core haría milagros en Bulldozer, su efecto sería mayor que el de la micro code caché de Sandy Bridge.

AMD_16core_Opteron_62XXDos chips Orochi 32nm forman el nuevo Opteron Interlagos 16 cores.

De todos modos AMD está realizando progresos que quizás hagan que en un futuro próximo sea un core más equilibrado. La actualidad de Bulldozer es poca potencia de proceso single thread y un nivel de prestaciones aceptable solamente cuando el software carga los ocho threads por chip a fondo… un escenario que se da en pocas cargas de trabajo.

Nos guste o no, y estamos en 2012, el mundo sigue dominado por la velocidad de respuesta de la máquina a cargas de 1 thread. AMD debe mejorar en este sentido y en Bulldozer hay claras áreas mejorables sin mucha inversión.

Sigo siendo de la opinión de que AMD tiene un mejor core que Bulldozer, el venerable K10 de 65 nm, K10.5 de 45 nm y actualmente “K11” de 32 nm (el incluido en Llano). Con las lógicas mejoras, sobretodo en el terreno de Branch Prediction, mejora de la velocidad L2, aumento de ancho de la FPU a 256 bit y con las nuevas (y excelentes) controladoras de memoria de AMD.

Con sus pequeños cores (poco más de 9 mm2) sería factibles integrar 8 con 8 L2 de 512 KB y una L3 de 8 MB en un die con una superficie moderada… sería un muy competente rival para Intel Sandy Bridge.

El problema más grave de AMD continúa siendo el de siempre: Intel. Estoy asombrado de los progresos que llegan en alrededor de un año con Haswell 22nm… entre ellos la implementación de memoria transaccional.

Es una verdadera pesadilla para AMD tener a Intel como rival con sus agresivas políticas de desarrollo y su brutal gasto en I+D además de su ingente capacidad de ingeniería. Cada dos años lleva al mercado una nueva micro arquitectura (TOCK) que mejorar sustancialmente la anterior y encima en los años alternos, puntualmente, comercializa un nuevo proceso de fabricación (TICK) ( … 180nm > 130nm > 90nm > 65nm > 45nm > 32nm > 22nm > 14nm …) que deja prácticamente en ridículo al resto de la industria de semiconductores mundial…

AMD Piledriver RCM (Resonant Clock Mesh)

AMD y Cylos Semiconductor han informado que Piledriver integra una nueva metodología para la transmisión de la señal de reloj a todos los transistores del die.RMC Schematic

Se denomina RCM (Resonant Clock Mesh) y permite una reducción de un 24% en el consumo de la red de distribución de reloj y globalmente un 10% global de reducción de consumo.

Sin duda es una excelente noticia, pues AMD, actualmente está limitada por disipación térmica y consumo en Bulldozer y un recorte sólo por la adopción de RCM junto con otro tanto por ciento debido al refinamiento del proceso de fabricación de 32nm HKMG SOI de Global Foundries puede dar a Piledriver una nueva vida tanto en Trinity como en el futuro AMD FX octal core.

Sin duda permitirá unas frecuencias mayores manteniendo el TDP y quizás pueda, un AMD FX basado en cores Piledriver, coquetear con los 4.6 – 4.8 GHz.

En fin… más en breve.

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:

ip16_texto_300px_blanco[4][2][2]

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-blog[4][2][2]

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.