En electrónica e informática, un error soft (del inglés, soft error) hace referencia a un tipo de error en el que una señal o dato es incorrecto. Típicamente, los errores pueden ser causados por un defecto de diseño o de fabricación, o bien por la presencia de un componente dañado. Sin embargo, el término error soft se refiere únicamente a una modificación de la señal o dato (los electrones), sin que tenga que existir un problema en la electrónica o hardware subyacente (los átomos). En este caso, la detección de un error de este tipo no es un indicio de que el sistema sea menos fiable. Los errores soft son tratados con especial atención en la industria aeroespacial, debido a la fuerte radiación a la que son sometidos los equipos.
El hecho de que un error soft se produzca en la memoria de un computador supone la modificación de algún dato o instrucción. En este último caso, el procesador podría comenzar a ejecutar instrucciones que no pertenecen al programa en ejecución, o tratar de ejecutar alguna instrucción ilegal, produciendo un cuelgue del sistema. Comúnmente, la recuperación de uno de estos errores solo requiere el reinicio del sistema. Puesto que los errores soft no afectan al hardware, el único daño producido por los mismos es la pérdida de los datos que se estuvieran procesando en el momento del error.
Los errores soft pueden clasificarse en dos tipos, dependiendo del lugar físico en el que se produzcan y de la causa que los origina. Los errores soft a nivel de chip ocurren cuando alguna partícula impacta contra el chip. Por ejemplo, en el espacio exterior los circuitos son continuamente bombardeados por partículas alfa (entre otras) provenientes de los rayos cósmicos. Dado que las partículas alfa tienen una carga positiva, si estas impactan contra una celda de memoria pueden hacer que cambie de estado, por ejemplo, haciendo que haya un 0 en el lugar en que antes había un 1. De este modo, se modifica el contenido de la memoria. Por otro lado, los errores soft a nivel de sistema ocurren cuando el circuito es expuesto a algún tipo de interferencia electromagnética, típicamente cuando los datos viajan a través de un bus. La interferencia o ruido modificará la tensión al otro lado del bus, por lo que el valor recibido puede ser diferente al enviado. Si el dato recibido de forma errónea se almacena en la memorial, puede ocurrir que el error no sea detectado hasta mucho después de haberse originado.
Si se detecta, un error soft puede corregirse reemplazando el dato erróneo por el dato correcto, mediante la reescritura del mismo. Los sistemas que requieren un grado elevado de fiabilidad usan códigos de corrección de errores, con los que es posible detectar y corregir un gran número de estos sobre la marcha. Sin embargo, en la mayoría de sistemas es imposible determinar cuál es el dato correcto, o incluso saber si se ha producido un error.
Los errores soft se popularizaron con la introducción de la tecnología RAM dinámica en la década de 1970. En estos primeros dispositivos, los materiales usados en la fabricación del encapsulado del chip contenían pequeñas cantidades de elementos radioactivos. La radiación emitida por estos elementos, en especial de partículas alfa, es suficiente para modificar el estado de la memoria, provocando este tipo de errores. Elevar la pureza de los materiales en el proceso de fabricación, para evitar la presencia de contaminantes radiactivos, es uno de los grandes retos que la industria electrónica ha debido afrontar.
Los errores soft producidos por la actividad radiactiva del encapsulado electrónico se deben, en su mayoría, a la emisión de partículas alfa. Las partículas alfa, que tienen una carga positiva, viajan a través del semiconductor, perturbando la distribución de electrones en el mismo. Si esta perturbación es suficientemente importante, una señal digital puede cambiar de 0 a 1 o viceversa. En lógica combinacional, este efecto es transitorio y puede durar una fracción de nanosegundo. Por este motivo, los errores soft pasaron desapercibidos hasta la llegada de la lógica secuencial. En este tipo de lógica, en el que se incluyen los biestables y las memorias RAM, estas pequeñas perturbaciones pueden quedar registradas de forma indefinida, afectando a la respuesta del circuito cuando la señal es leída. Por este motivo, en el diseño de los circuitos de almacenamiento tratarse este efecto con mucho más cuidado.
Isaac Asimov recibió una carta felicitándole por su predicción accidental de los errores ocasionados por las partículas alfa en una novela de la década de 1950.[1]
Cuando la industria electrónica había determinado cómo controlar los contaminantes en el empaquetado electrónico, aparecieron evidencias de la existencia de otros factores que afectaban a la aparición de errores soft. James F. Ziegler dirigió un programa de trabajo en IBM qué culminado en la publicación de un número de artículos (Ziegler y Lanford, 1979) demostrando que los rayos cósmicos también podían causar errores soft. De hecho, en los dispositivos modernos, los rayos cósmicos pueden ser la causa predominante. A pesar de que las partículas primarias de los rayos cósmicos generalmente no alcanzan la superficie de la Tierra, crean una ducha de partículas secundarias muy energéticas. En la superficie de la Tierra, aproximadamente el 95% de las partículas capaces de causar errores soft son neutrones energéticos, y presentan una gran capacidad de ionización.[2] IBM estimó en 1996 que la tasa de errores debidos a los rayos cósmicos esperada en ordenadores de sobremesa era de un error al mes por cada 256 MiB de RAM. Este flujo de los neutrones de alta energía es típicamente referido como "rayos cósmicos" en la literatura de error soft. Aunque los neutrones no tienen carga neta, y por tanto no pueden perturbar a un circuito eléctrico por ellos mismos, estos neutrones de alta energía pueden ser capturados por el núcleo de un átomo del chip. En este proceso pueden producirse partículas secundarias eléctricamente cargadas, como las partículas alfa o núcleos de oxígeno, que sí pueden causar errores soft.
La incidencia de los rayos cósmicos depende de la altitud. Para la ubicación de referencia común de 40.7° N, 74° W en nivel de mar (Ciudad de Nueva York, NY, EE. UU.) el flujo es aproximadamente 14 neutrones por centímetro cuadrado y hora. Enterrando un sistema en una cueva reduce el índice de errores debidos a los rayos cósmicos a un nivel insignificante. En los niveles más bajos de la atmósfera, un ascenso de 1000m supone un aumento del flujo en un factor de 2.2 aproximadamente. Cuando un computador es usado en altitudes elevadas, como en una montaña, el número de errores soft que este experimenta es un orden de magnitud superior al que se obtiene al nivel del mar. El índice de perturbaciones en las aeronaves puede ser más de 300 veces superior al experimentado al nivel del mar. En cambio, el número de errores producidos por la radiactividad del encapsulado no depende de la ubicación.[3] Con el incremento en la densidad de los chips, Intel espera que los errores causados por rayos cósmicos incrementen hasta suponer un factor limitante en el diseño.[4]
Los neutrones energéticos producidos por los rayos cósmicos pueden perder la mayoría de su energía cinética hasta llegar al equilibrio térmico con su entorno al dispersarse en los materiales. Los neutrones resultantes son referidos como neutrones térmicos y tienen una energía cinética media de unos 0,025 eV a 25 °C. Los neutrones térmicos son también producidos por fuentes de radiación medioambiental como la desintegración nuclear del uranio o el torio encontrados en la naturaleza. El flujo de neutrones térmicos de fuentes distintas a las duchas de rayos cósmicos puede apreciarse incluso en ubicaciones subterráneas, produciendo una contribución importante a la tasa de errores soft en algunos circuitos.
Los neutrones que han perdido energía cinética hasta lograr el equilibrio térmico con su entorno son una causa importante de errores soft en algunos circuitos. En energías bajas, muchas reacciones de captura neutrónica se vuelven mucho más probables, provocando la fisión de los materiales y dando lugar a partículas secundarias cargadas eléctricamente. Para algunos circuitos, la captura de un neutrón térmico por el núcleo del isótopo de boro 10B es particularmente importante. Esta reacción nuclear es produce una partícula alfa, un núcleo 7Li y un rayo gamma. Cualquiera de las partículas cargadas (alfa o 7Li) puede causar un error soft si esta se produce en la proximidad de un nodo crítico del circuito (aproximadamente 5 µm).
Los errores soft también pueden ser causados por ruido aleatorio o por problemas de integridad de la señal, como alguna diafonía capacitiva o inductiva. Aun así, en general, estas fuentes representan una contribución pequeña al índice de error soft global cuando se compara con los efectos de radiación.