jueves, 2 de febrero de 2017

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

En mi vida profesional mi dedicación principal consiste en garantizar la estabilidad y exactitud en cálculo de las máquinas que diseño: mis Sistemas de Altas Prestaciones.

Por ello siempre me encuentro en una constante búsqueda de mejores y más perfectos métodos de validación de sistemas (de lo que hablo en SATSoftware) y en el estudio de todos los procesos que influyen en su tasa de fallos, entre ellos la electromigración.

Una gran parte de los errores de cálculo que aparecen en un sistema tras un largo periodo de uso intensivo se deben a la degradación eléctrica de los chips de DRAM DDR3 de los módulos DIMM de la máquina.

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

En mis Sistemas de Altas Prestaciones suelo utilizar módulos de 2 GB y 4 GB de DDR3 1333 o 1600 normalmente de marca Kingston (módulos Kingston, los chips son de varios fabricantes: Elpida, Hynix, Samsung, Kinston…)

Valoro especialmente un voltaje de operación bajo, normalmente 1.50V, por encima de timings extraordinarios (por su limitadísimo efecto sobre el tiempo de cálculo).

3DIMM_4GB_DDR3_1333_thumb[1]12 GB de DDR3 Kingston a 1333 MHz.

En todas mis máquinas utilizo 6 o 12 GB en triple channel DDR3 a frecuencias que oscilan entre los 1450 y los 1600 MHz con latencias típicas de 8-8-8-24-1N y como he comentado a 1.50V.

Parámetros que influyen en la degradación de los chips DRAM DDR3

Son varios los aspectos que marcan la velocidad de deterioro de las constantes eléctricas de los semiconductores, para alargar su vida en lo posible hay que tenerlos en cuenta y trabajar sobre cada uno de ellos para limitar los daños.

Primer factor: El voltaje. Cuanto más bajo es el voltaje menor degradación eléctrica se producirá en los chips DDR3 debido al proceso de electromigración.

Los electrones golpean (literalmente) a los átomos metálicos de cobre o aluminio y los desplazan de sus posiciones originales, degradando las características eléctricas de los data paths (aumentando la resistencia de los conductores eléctricos, así como la disipación térmica y produciendo errores de datos).

Además, a mayor voltaje, mayor consumo y disipación térmica lo que causa un aumento de temperatura.

Segundo factor: La temperatura. A menor temperatura menor degeneración física de los chips DDR3. Se produce menos leakage en los transistores y menor disipación térmica y consumo eléctrico. En todos mis sistemas intento conseguir temperaturas sobre los 30ºC en los DIMM en carga 100% sostenida.

A mayor temperatura, más vibraciones de los átomos metálicos de los conductores en las celdas DRAM y con ello mayor intensidad de electromigración.

Tercer factor: La carga de trabajo. Partamos de la base de un software de cálculo matemático FPU que utilice al 100% los todos los threads disponibles en la máquina, es decir, cargas de saturación 100% en CPU.

Lógicamente no será lo mismo un software de cálculo que acceda a la RAM, digamos cada cien millones de ciclos de CPU porque obtenga tasas de aciertos de caché L1, L2 y L3 combinadas del 99.999% (por ejemplo) que otro algoritmo de cálculo que por su set de trabajo enorme de tasas de fallo de cachés de un 15%.

Sinus_8X_2min_2_thumb[3]Carga de trabajo de saturación conjunta CPU y DRAM DDR3.

Este último caso presentará tasas de acceso a RAM que saturarán todas las controladoras DDR3 presentes y con ello una muy intensa carga en los DIMM DDR3. Ningún problema si no fuese porque estas cargas, yo y muchos de mis clientes, las aplicamos durante años seguidos (sin pausas ni reinicios) sobre nuestras máquinas, mis ya habituales Sistemas de Altas Prestaciones.

Mis observaciones

En un conjunto formado por 36 máquinas Core i7 de la serie 900 pertenecientes al stepping D0 de Nehalem 45 nm configuradas todas ellas con 3 módulos DDR3 de 2 GB (total 6 GB) o de 4 GB (total 12 GB) he observado lo siguiente:

En ocho de estos sistemas han fallado simultáneamente 15 módulos DDR3 de 2 GB y 4 GB tras unos tiempos de cálculo acumulados de 12 a 21 meses (cálculo continuo sin pausas ni reinicios, estos sistemas sólo se apagan para tareas de mantenimiento cuando hay algún fallo hardware).

De estos 36 equipos únicamente dos de ellos se han apagado para sustituir dos discos duros averiados (de los 72 discos totales) y dos más por avería en la fuente de alimentación.

Para la limpieza periódica de radiadores y ventiladores se mantienen los sistemas encendidos en cálculo y se efectúa el mantenimiento con aire comprimido, normalmente cada mes.

En resumen, tras una media de 11500 horas de cálculo continuo han dado errores de cálculo 8 de las 36 máquinas.

Tras exhaustivos tests, que han durado 3 semanas, se ha localizado la avería limitada a 15 DIMMs DDR3. Ningún otro componentes de las máquinas ha sufrido daños.

Uno de ellos, el que daba el error más grave, fallaba Memtest en el test 0, no duraba ni un segundo.

P95B2048_Fallo_18h30A las 7:35AM falló esta máquina tras 18h 30 min de tests.

El que daba el error más rebelde falló en Prime 95 tras 18h de test Blend con set de trabajo de 2048 MB y Round off checking y SUM(INPUTS) error checking activados.

P95X64

En todos ellos he sustituido los 3 DIMMs por nuevos (24 DIMMs en total) y tras 120h de testeo se han incorporado de nuevo a sus tareas de cálculo sin presentar nuevos fallos.

P95B2048_121h42minPrime95: 121h y 42 minutos de test. 2832 tests por thread sin errores.

Tras unos 20000 tests de cálculo por sistema en Prime 95 X64 ejecutados en unas 120 horas por equipo he dado por estables las máquinas y ya están de nuevo desempeñando su trabajo.

Conclusiones

En las próximas semanas o meses preveo el fallo de más DIMMs DDR3 hasta llegar al total de la población de estos sistemas (108 DIMMs, 3 DIMMs por 36 máquinas).

Consulta mi nuevo artículo sobre electromigración en 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]