COMPUTING

Los fabricantes de CPU están superando los límites de CMOS y comienzan a pagar por ello

Crédito: Laura Ockel / Unsplash, PCMag

Las CPU casi nunca fallan. De todos los componentes de una PC determinada, la CPU ha sido históricamente uno de los que menos probabilidades tiene de sufrir una falla. Esto aún no ha cambiado, pero hay evidencia preocupante que sugiere que a medida que los nodos de proceso se reducen, la confiabilidad se vuelve más difícil de garantizar para AMD e Intel.

Los investigadores de Google tienen publicado un artículo que describe lo que ellos llaman núcleos “mercuriales”. Los núcleos mercuriales son núcleos que están sujetos a lo que Google llama “errores de ejecución corruptos” o CEE. Un componente crítico de los CEE es que guardan silencio.

Esperamos que las CPU fallen de alguna manera notable cuando calculan mal un valor, ya sea que resulte en un reinicio del sistema operativo, un bloqueo de la aplicación, un mensaje de error o una salida confusa. Eso no sucede en estos casos. Los CEE son síntomas de lo que Google llama “corrupción de datos silenciosa”, o la capacidad de que los datos se corrompan cuando se escriben, leen o están en reposo sin que la corrupción se detecte de inmediato.

Este trabajo se encuentra todavía en las primeras etapas y los autores subrayan que hay mucho que desconocen. Lo que han hecho es crear un modelo de cómo se ve generalmente una falla de CEE:

La tasa de CEE detectada por el verificador automático de Google está aumentando, pero la compañía aún no sabe si eso se debe a que las CPU están empeorando o porque su software de detección continúa mejorando.

Las fallas parecen no ser deterministas y aparecen a tasas variables. Los núcleos defectuosos fallan repetida e intermitentemente. El problema tiende a agravarse con el tiempo. Escriben:

Tenemos alguna evidencia de que el envejecimiento es un factor. En un procesador multinúcleo, normalmente solo falla un núcleo, a menudo de forma constante. Los CEE parecen ser un problema de toda la industria, no específico de ningún proveedor, pero la tasa no es uniforme en todos los productos de CPU.

Se dice que las tasas de corrupción difieren en “muchos órdenes de magnitud” entre los núcleos defectuosos. El tipo de carga de trabajo, la frecuencia, el voltaje y la temperatura pueden afectar si un núcleo arroja una CEE. Los autores observaron tasas de falla “del orden de unos pocos núcleos mercuriales por varios miles de máquinas”. Tenga en cuenta que es probable que una máquina tenga entre ocho y 64 núcleos de CPU, dependiendo de la antigüedad.

Google tiene evidencia de núcleos mercuriales que violan la semántica de bloqueo; corromper los datos durante las operaciones de carga, almacenamiento y vector; corromper los datos durante la recolección de basura de almacenamiento; voltear la misma posición de bit en múltiples cadenas; y corromper el estado del kernel. Hay un problema observado que vale la pena citar directamente:

Un cálculo erróneo determinista de AES, que era “autoinvertido”: cifrar y descifrar en el mismo núcleo produjo la función de identidad, pero el descifrado en otros lugares produjo un galimatías.

La idea de generar código que solo pueda ser descifrado por una CPU en la Tierra es fascinante desde el punto de vista de la seguridad y aterradora desde el punto de vista operativo. Google no revela cómo se dio cuenta de este problema, pero un problema como este sin duda provocaría un análisis detallado de la causa subyacente.

Google todavía está recopilando datos sobre este problema. La empresa no cree que haya detectado necesariamente todos los tipos de ECO o identificado los rasgos que hacen que un chip en particular tenga más probabilidades de desarrollar uno en el futuro. Hay varias referencias en el texto a la idea de que este problema puede desencadenarse cuando la optimización de la aplicación hace que se utilicen nuevas instrucciones con más frecuencia.

Google no indica si la optimización para conjuntos de instrucciones SIMD como AVX-512 o AVX2 se ha identificado como la causa de estos problemas, o si se refería a otras instrucciones. Pero sí confirma que los cambios de código que enfatizan diferentes instrucciones pueden desencadenar un problema donde antes no se sabía que existía una.

Nos advirtieron que esto sucedería

Este no es un desarrollo particularmente sorprendente. Cuantos más transistores hay en un chip, mayor es la probabilidad de que algunos de esos transistores tengan algún defecto. Los arquitectos de chips modernos duplican algunas características con un diseño, bajo el supuesto de que algunos transistores no funcionarán correctamente. Esto consume muy poco espacio de troquel adicional y aumenta el rendimiento.

La idea de que las CPU se volverían menos confiables a medida que aumentara la densidad de transistores es un tema del que hablaban personas como Bob Colwell, el diseñador principal del Pentium Pro 1995 de Intel, hace 20 años. Este es el primer informe que he visto en ese tiempo que sugiere que las CPU de AMD e Intel ahora podrían sufrir varios errores silenciosos que, de lo contrario, podrían pasar desapercibidos en el momento y que el problema afecta a toda la industria.

Este incidente tiene algunas similitudes con el antiguo error Pentium FDIV, pero solo nominalmente. La falla de FDIV fue silenciosa en la mayoría de los casos, pero el problema afectó a todos los Pentium que Intel había construido y los afectó de inmediato. Según Google, algunos chips no muestran evidencia de fallas hasta que alcanzan cierta edad. Google está trabajando activamente en la escritura de software para detectar CEE y pide tanto a Intel como a AMD que prueben las CPU de manera más efectiva antes de enviarlas.

Crédito: Laura Ockel / Unsplash, PCMag

Ahora lee:

  • RISC vs.CISC es la lente equivocada para comparar CPUs ARM x86 modernas
  • AMD Demos 3D Stacked Ryzen 9 5900X: 192 MB de caché L3 a 2 TB / s
  • Tiger Lake H de 8 núcleos de Intel aporta rendimiento y consumo de energía

Publicaciones relacionadas

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba
Cerrar
Cerrar