¿Por qué las computadoras de vuelo críticas son redundantes?

Al menos en los aviones comerciales, las computadoras verdaderamente críticas son redundantes. Por lo general, tres copias idénticas de las computadoras del piloto automático se ejecutan en paralelo y comparan los resultados; si una computadora no está de acuerdo con las otras dos, se ignora su salida. El sistema permite que algunos procesadores estén defectuosos mientras mantiene el funcionamiento del sistema en general.

¿Pero por qué? Nunca he oído hablar de microprocesadores que fallan repentinamente. Claro, podría haber errores de fabricación, pero esos se habrían detectado en la fábrica. Tal vez el programa (y su prueba) esté mal, pero lo estaría de la misma manera en todos los procesadores. Del mismo modo, una mala entrada provocaría una mala salida en las tres computadoras. ¿Contra qué tipo de errores protege esta redundancia? ¿Los microprocesadores a veces simplemente hacen mal las matemáticas?

Si un microprocesador se sobrecalienta o sobrecarga y falla espontáneamente, espero que deje de hacer cualquier cosa y no produzca ningún resultado. Para lidiar con este tipo de falla, le gustaría tener un procesador de respaldo, pero no necesitaría comparar las salidas de tres computadoras; cualquier salida producida se asumiría correcta, por lo que estaría feliz de usar directamente el salida de cualquier procesador que estaba produciendo salida.

Relacionado: La respuesta a ¿Cuál es el propósito de varios pilotos automáticos? simplemente dice "redundancia" antes de entrar en cómo se logra esto.

Esperaré respuestas autorizadas, pero en los sistemas en los que he estado involucrado, las 3 computadoras ejecutaron un software diferente, producido por equipos independientes y se demostró que generan los mismos resultados para las mismas entradas.
@Simon, sé que el transbordador tenía un software de respaldo ("diversidad de diseño"), pero Wikipedia afirma que esta práctica se está volviendo menos común.
Puede ser, he estado fuera del circuito durante unos 20 años. Por cierto, ahora soy ingeniero de software y he visto fallar los procesadores y, más comúnmente, fallan los chips de RAM.
@Simon Pero la RAM puede tener ECC, ¿verdad? En el peor de los casos, duplicar la memoria RAM es mucho más fácil y económico que duplicar toda la computadora. La falla del procesador es mucho más preocupante. ¿Crees que serías capaz de escribir una respuesta sobre cómo fallan los procesadores?
Mi pregunta es esencialmente la misma que la pregunta que acabo de vincular. ¿Debería cerrar esto como un duplicado del otro y luego agregar una recompensa al otro? ¿Debería editar la otra pregunta para centrarme en cómo se logra la redundancia, para que coincida mejor con la respuesta?
En mi opinión, su pregunta es válida tal como es, y estoy interesado en las respuestas. En cuanto a cómo fallan los procesadores, no vale la pena responder. He visto 2 de memoria. Uno fue una falla del ventilador, y el chip simplemente se frió solo y el otro era desconocido. Se manifestó como errores cada vez más extraños y pantallas azules seguidas de una falla total. Es casi seguro que la RAM tendrá ECC, pero eso solo puede corregir errores de un solo bit e informar errores de doble bit. Si fallan más bits, lo cual es fácil con un error físico, entonces ECC no sirve.
@raptortech97: El piloto automático no es tan crítico; el avión se puede volar a mano. Los sistemas realmente críticos son los controles fly-by-wire. En Airbus, se ejecutan en pares de placas diferentes (i386 y m68k) con software escrito de forma independiente que se verifican entre sí, estos pares se multiplican para fallas y hay un conjunto independiente para controles de vuelo primarios (elevador y alerón) y otro para alternan (alerones y estabilizador horizontal), por lo que si alguno falla, el otro aún puede controlar tanto el cabeceo como el balanceo. Creo que el sistema Boeing en 777 y 787 es similar.
@JanHudec Estoy de acuerdo en que el piloto automático no suele ser crítico, pero una falla durante un aterrizaje automático Cat III se considera catastrófico.
Encuentro que la elección de usar 3 es un poco extraña. Para lidiar con uno de ellos que falla de manera arbitraria, se necesita una resiliencia bizantina, que no se puede lograr con menos de 4.
@kasperd Puede que me equivoque, pero creo que eso es solo cuando se pueden falsificar los mensajes. Con conexiones físicas dedicadas, realmente no puedes falsificar mensajes.
@ raptortech97 El análisis de sistemas sin resiliencia bizantina asume que cada nodo está funcionando perfectamente o ha dejado de comunicarse por completo. Solo se necesita un solo bitflip aleatorio para invalidar el análisis de tales sistemas.
@kasperd de eso no se trata. El tipo de análisis de resistencia bizantina que sugiere se basa en la suposición de que las computadoras pueden mentir y falsificar mensajes de otras computadoras. El sistema tripartito se puede resolver si tiene hashes criptográficos para verificar la identidad.
@ raptortech97 Solo se puede solucionar si asume que el nodo defectuoso deja de enviar mensajes. Si un solo nodo falla de una manera que hace que envíe mensajes inconsistentes, pierde todas las garantías.
@kasperd Continuemos esta discusión en el chat .
¿No has oído hablar del bueno de Murphy?Anything that can go wrong will go wrong
" Nunca he oído hablar de microprocesadores que fallan repentinamente ". Eso es porque no estás familiarizado con la electrónica. Pregunta aquí y te aclararán. Además, una computadora de vuelo no está hecha solo de una CPU/MCU. Teclado, pantalla, conectores, memoria, reloj, otros chips, otros componentes electrónicos, unidad de potencia... nómbralo.
Esta pregunta está mal expresada, terriblemente. El investigador parece querer decir que las computadoras de vuelo emplean redundancia . Pero lo que en realidad pregunta es ¿por qué están obsoletos?

Respuestas (12)

Modos de falla a considerar:

  • Calentamiento excesivo. Esto cambia las propiedades de temporización del chip y eventualmente da como resultado un error. Esto puede manifestarse como errores de un solo bit en medio de una operación aparentemente normal; eventualmente fallará , pero puede generar datos incorrectos primero.
  • Daños por agua. Se manifiesta como una resistencia parásita en el tablero y puede hacer que malinterprete los bits como altos o bajos. Pueden ser carcasas con fugas, condensación, etc.
  • Interferencia electromagnetica. (Se supone que el sistema es resistente a esto, pero vale la pena pensar en ello).
  • Problemas de conexión física. Ya sea durante la construcción (fallos de soldadura) o inducidos posteriormente (calor, vibración). Las grietas microscópicas en tableros o juntas pueden pasar el control de calidad, pero dan como resultado fallas intermitentes. De nuevo, esto puede hacerte perder un solo bit a la vez. Esto está relacionado con el problema del "anillo rojo de la muerte" de Xbox.
  • Fallo de otros componentes. Los condensadores son el sospechoso habitual; electrolítico, tantalio, cerámica, todos tienen diferentes modos de falla. Una vez más, esto puede dar como resultado un sistema que en su mayoría funciona, pero es propenso a malinterpretar los valores marginales o sufre de desviación de tiempo.
  • Ciencia de materiales extraños ( "Peste púrpura" , bigotes de estaño debido a la soldadura sin plomo)
  • Es posible que el control de calidad de la pieza no cumpla con los estándares esperados (proveedores que envían piezas inferiores con una etiqueta falsa de "grado aeroespacial"). Difícil de detectar incluso después de que haya ocurrido.

Es importante reconocer que en los sistemas digitales de alta velocidad no se obtiene un "uno" y un "cero" limpios y agradables, se obtiene una serie de flancos ascendentes y descendentes que están manchados por la capacitancia parásita y la inductancia del cableado. Esto es inherentemente vulnerable a ser malinterpretado en condiciones eléctricas marginales.

Wow, gracias por el gran detalle! Quiero señalar que me resulta difícil creer que las piezas no hubieran estado a la altura. En aviación, el diseño original y todas las piezas de repuesto tenían que obtener la certificación de la FAA, y hay un gran rastro en papel que rastrea todo. La industria de repuestos falsos es bastante pequeña hoy en día.
Vengo del lado de la electrónica en lugar del lado de la aviación aquí, por lo que no estoy familiarizado con lo bien que funciona el rastro en papel, pero puede encontrar esto interesante si le gustan los detalles: bunniestudios.com/blog/?page_id=1022
(Como anécdota, creo que la mayoría de las fallas "trabajadas en el control de calidad fallan al principio de la producción" son fallas mecánicas de las uniones de soldadura; creo que la aviación/MILSPEC solía preferir la envoltura de alambre exactamente para este propósito, pero eso ya no es práctico con paquetes pequeños)
Esta es la mejor respuesta. El simple hecho es que las CPU pueden producir respuestas incorrectas y , a menudo, lo hacen cuando se operan fuera de su voltaje/temperatura/etc. especificados. rangos porque interfiere con los tiempos. Una diferencia de tiempo de picosegundos puede hacer que lea el valor incorrecto de una línea. De manera similar, una diferencia de voltaje muy pequeña puede hacer que un valor se lea como 1 en lugar de 0 o viceversa. Es por eso que cuando las personas están probando overclocking, ejecutan pruebas de quemado lo más rápido posible durante horas y horas y buscan respuestas incorrectas.
En cuanto a decir que eventualmente fallará... eventualmente podría fallar, o podría seguir produciendo una mala salida. Cuando las CPU se calientan demasiado, por ejemplo, a menudo continúan ejecutando felizmente su código durante todo el día mientras producen respuestas incorrectas, especialmente si una o más ALU o FPU están funcionando fuera de las especificaciones, pero el decodificador de instrucciones no lo está (lo cual no es un problema terrible). modo de falla poco común.)
Y enganche . Si de nada más, entonces de los rayos cósmicos (como se menciona en la respuesta de RedGrittyBrick).

Como señaló otra respuesta: una CPU puede fallar. Ya sea parcialmente (dando respuestas erróneas), o totalmente.

Además, todas las computadoras están sujetas a radiaciones cósmicas que pueden cambiar de vez en cuando un poco en la memoria (además de otras fuentes de error como cortocircuito, ...). Es por eso que los experimentos científicos y los servidores de larga duración usan memoria ECC . Las naves espaciales también usan CPU reforzadas específicas para limitar este efecto, ya que están menos protegidas de tales interferencias. Los aviones vuelan a gran altura y están sujetos a más de estas interferencias que su computadora terrestre.

Incluso si el evento de que esto suceda es muy poco común (pero no desconocido), DEBE asegurarse de que los resultados sean 100% precisos. Un bit volteado podría cambiar el comportamiento de su avión de manera impredecible, como invertir los controles, invertir la ley de protección de la envolvente de vuelo, ...

La radiación cósmica no solo puede cambiar un poco en la memoria, sino que también puede cambiar un poco en la CPU. Ahora ECC para la memoria todavía tiene sentido ya que la memoria tiene muchos más bits, pero el riesgo aún existe para las CPU.
Sí, eso fue que hay memoria ECC Y CPU endurecidas :)
Creo que esta es la razón más importante. Si la mala memoria fuera la única preocupación, podríamos simplemente triplicar la RAM pero tener una sola CPU. Pero si un rayo cósmico voltea el bit equivocado en la CPU y la CPU no se triplica, el resultado podría ser catastrófico.
En comparación, hay más radiación de fondo en un jet de pasajeros típico a altitud de crucero que la que hay hoy en día en la zona cero de Hiroshima.
Esto se llama malestar por evento único. A menudo habrá 3 copias de los mismos datos almacenados en la memoria, así como otra unidad que se hará cargo en caso de una falla crítica.

¿Por qué las computadoras de vuelo críticas son redundantes?

Software

Un punto que se ha pasado por alto es que los sistemas redundantes suelen ser diseños independientes, especialmente el software. Esto protege contra fallas de diseño (o errores de software) que de otro modo podrían causar problemas en combinaciones de circunstancias que rara vez ocurren.

Hardware

Incluso si un microprocesador es altamente confiable, hay una serie de factores que pueden ser relevantes

  • los aviones vuelan a gran altura donde la atmósfera ofrece menos protección contra los rayos cósmicos . Esto no solo afecta la salud de la tripulación, sino que tiene el potencial de interferir con los dispositivos electrónicos .
  • Los sistemas de aviónica se componen de algo más que microprocesadores, seguramente también hay otros dispositivos más propensos a fallas, como los condensadores. Hay innumerables formas en que la electrónica puede fallar, por ejemplo, la falla de la conexión a tierra inducida por vibraciones que conduce a interferencias en las líneas de datos (por ejemplo, de sensores analógicos).

Nunca he oído hablar de microprocesadores que fallan repentinamente.

Fiabilidad ≠ Seguridad

  • Muchos accidentes ocurren sin que ningún componente “falle”
    • Causado por la operación del equipo fuera de los parámetros y límites de tiempo en los que se basan los análisis de confiabilidad.
    • Causado por las interacciones de los componentes, todos funcionando de acuerdo con las especificaciones.
    • Los componentes altamente confiables no son necesariamente seguros

De Nancy Leveson, MIT, vía UCSD

"Nunca he oído hablar de microprocesadores que fallan repentinamente". Tuve una falla en un escritorio una vez. Estaba escribiendo lo que sea y la pantalla se volvió negra. Después de las pruebas habituales, lo devolvimos, dijeron que necesitábamos una nueva CPU.
Las personas que nunca han oído hablar de las fallas de las CPU nunca han pasado por los días de AMD Athlon/Pentium4 en los que freír una CPU no era poco común.
Gracias por mencionar que, de hecho, el software no es idéntico, pero diferentes equipos escriben para hardware diferente, pero con las mismas especificaciones. La pregunta original es engañosa, por decir lo menos.

Sé que esta pregunta ya ha recibido un puñado de respuestas, pero ninguna de ellas parece abordar el problema de por qué hay tres sistemas en el conjunto redundante, en lugar de solo dos.

En primer lugar, como señalaron Simon , Jan Hudec y RedGrittyBrick , los diseños no son idénticos en absoluto. De hecho, a menudo son completamente diferentes por una muy buena razón: la probabilidad de que un problema dado afecte a todos los sistemas redundantes, y especialmente a todos los sistemas redundantes de la misma manera, va de "pequeño" a "absolutamente minúsculo al borde de la inexistencia". Comparar ¿Qué tan diferentes son las computadoras de control de vuelo redundantes?

En segundo lugar, en cuanto a por qué hay tressistemas en cada configuración redundante. Cuando todo funciona bien y la aeronave está en vuelo constante, para algún valor y algún conjunto dado de entradas, todos los sistemas informan que se necesita una corrección de 0 (de cualquier unidad). En este punto no hay problema, y ​​las computadoras solo sirven para mantener el estado actual. Ahora, uno de los componentes del sistema no logra hacer su trabajo correctamente por cualquier motivo y comienza a informar que se requiere una corrección de +50 unidades. Es decir, el conjunto de respuestas cambia de [0,0,0] a [0,0,+50]. Dos sistemas están de acuerdo y el tercero informa algo más, por lo que probablemente podamos ignorar el valor atípico de manera segura e ir con los dos sistemas que informan lo mismo: tratar el resultado como [0,0, incorrecto] e ignore el resultado incorrecto mientras registra los detalles técnicos y muestra algún tipo de advertencia destacada de que los sistemas deben revisarse lo antes posible. Pero, ¿y si tuviéramos solo dos sistemas para empezar y uno de los dos falla de la misma manera? La corrección necesaria determinada va de [0,0] a [0,+50]. Rápido ahora: ¿qué valor es correcto? ¿Debería mantener el estado o corregirlo en +50?

En ese punto, no hay forma de saber si corregir por 0 o por +50 es el curso de acción adecuado. Podría tomar un promedio, pero usar un promedio de dos números (uno de los cuales probablemente sea incorrecto) en realidad podría ser peor que cualquier valor por sí mismo.

Al agregar un tercer sistema al conjunto redundante, agrega un desempate para la situación en la que hay un sistema que no funciona correctamente. Solo si dos de los tres sistemas comienzan a funcionar mal al mismo tiempo, tiene un problema real, y si la aeronave tiene tales problemas que dos de los tres sistemas redundantes están dando resultados erróneos, entonces es probable que tenga problemas serios para empezar. .

La mayoría de las respuestas han girado en torno a la posibilidad de errores de hardware informático y cosas de esa naturaleza. Si bien todo eso es cierto, nadie ha mencionado lo que las computadoras realmente están mirando.

Supongamos que se está aproximando, preparándose para hacer un aterrizaje automático CAT III y solo tiene dos sistemas informáticos. Ambos sistemas informáticos comparan los sistemas de radioaltímetro n.° 1 y n.° 2. Solo hay un mal funcionamiento con uno de los sistemas de radioaltímetro que provoca una discrepancia de algún valor arbitrario que no está dentro de los límites.

¿Cómo sabe la computadora cuál está mal? Una computadora mira el sistema de radioaltímetro #1 y ve 500 pies. La otra mira el sistema #2 y ve 1000 pies. ¿Cuál está bien y cuál está mal? ¿Cómo es posible que la computadora tome esa decisión?

Introduzca la tercera computadora. Si el valor de lo que ve es comparable con el de cualquiera de las otras dos computadoras, puede "votar" efectivamente la lectura inválida "fuera de la isla".

Debo señalar que la mayoría de estas computadoras tienen entre dos y cuatro procesadores, todos comparando sus propios resultados. Esa es la redundancia INTERNA para evitar fallas de hardware, pero tener numerosas comparaciones cruzadas de sistemas externos es en gran parte la razón por la que existe un tercer sistema.

Nota: Como mecánico de A&P, 9 de cada 10 veces es uno de los sistemas externos que ha fallado (altímetro de radio, falta de comparación de MMR/ILS, etc.) lo que causa una degradación en las capacidades, NO la computadora en sí.

Las computadoras fallan, espontáneamente, todo el tiempo. No estás acostumbrado a eso porque no has usado muchas computadoras. Pero considere a alguien como Google, que administra centros de datos masivos que contienen miles de computadoras. El software que ejecuta Google está diseñado en torno a la suposición explícita de que las computadoras fallan porque sucede varias veces al día. Ahora, un avión no contiene muchas computadoras, pero las que contiene son críticas para la seguridad. Por lo tanto, se duplican para asegurarse de que su falla no cause un problema.

Creo que el OP estaba preguntando especialmente sobre el hecho de que hay tres que se comparan en lugar de solo dos en caso de que el hardware falle.
Por todo lo que he oído sobre los sistemas de Google, están diseñados para manejar la falla total de cualquier computadora, no las computadoras que se están portando mal.
Mmm. Creo que lidiar con el mal funcionamiento en lugar de la falla absoluta está implícito en mi respuesta, pero ambos tienen razón en que no está muy bien adaptado a la pregunta. Lo pensaré y lo mejoraré o lo eliminaré.
Los sistemas de Google se basan en fallar y reintentar, ya que está integrado en todos los protocolos de Internet. Otros sistemas grandes son similares e incluso adoptan la operación de "solo bloqueo" (ver Netflix "chaos monkey"). Esto no es apropiado para sistemas en tiempo real críticos para la seguridad. Es un contraste interesante entre un sistema barato que en la práctica funciona casi todo el tiempo frente a un sistema mucho más difícil de desarrollar y más caro que puede ofrecer garantías de diseño.

Si miramos esto desde un punto de vista estrictamente de ingeniería, los microprocesadores tienen un ciclo de vida. En términos generales, es muy largo, y la PC desde la que está publicando esto probablemente estará desactualizada mucho antes de que llegue a su ciclo de vida. Aunque un microprocesador no tiene partes móviles, recibe información de varios sensores. Solo puedo suponer que las entradas están fusionadas de alguna manera, pero eso no significa que los picos estén completamente eliminados y aislados si ocurren. Por lo que vale, incluso las sobretensiones relativamente pequeñas freirán un microprocesador. Teniendo eso en cuenta, para errar por el lado de la precaución, se utilizan múltiples sistemas. Con el tamaño cada vez más reducido de la tecnología, se ha vuelto más fácil y económico llevar un repuesto, por lo que, desde el punto de vista de las ventas, la tranquilidad está ahí. otra vez

Para abordar directamente su pregunta, he estado usando microprocesadores, microcontroladores y similares durante mucho tiempo. En ese tiempo he tenido tal vez dos o tres fallas espontáneas, generalmente relacionadas con el calor. En un avión, esto puede no parecer un problema, pero en realidad el frío extremo puede causar problemas, así como el calor extremo cuando se trata de componentes electrónicos. Dicho esto, he brindado por innumerables unidades golpeándolas con entradas sobrecargadas. Digamos que su avión fue golpeado por un rayo (sé que las aerolíneas modernas están protegidas contra esto), pero por el bien de los argumentos, digamos que una tierra estaba mal: esto fácilmente tostaría una unidad.

Nota al margen: es más común que los chips/unidades de memoria fallen en estos días. Esto es algo que quizás nunca sepa, ya que la mayoría de las computadoras modernas pueden lidiar con la memoria muerta, ya sea en el disco o en la memoria del sistema.

La aviónica generalmente estará en la bahía de aviónica debajo de la cabina, o en la propia cabina, por lo que el frío extremo no será un problema, pero con un enfriamiento inadecuado podrían sobrecalentarse. Lo que no aclaré fue que si un microprocesador falla espontáneamente, debería ser posible detectarlo y cambiar a una copia de seguridad. El sistema en uso compara las tres salidas, lo que implica que un microcontrolador podría producir una salida incorrecta, en lugar de simplemente no producir ninguna salida.
Encuentro la afirmación de que "la mayoría de las computadoras modernas pueden lidiar con la memoria muerta" en el mejor de los casos, dudosa. Tal vez en el sentido estricto de que "si una celda de memoria falla, no hará que la computadora se bloquee de inmediato", pero causará un funcionamiento errático tan pronto como esa memoria se use para algo. La gracia salvadora en cierto modo es que en las PC modernas, la mayor parte de la RAM no se usa activamente; se usa para el caché. Lo que puede ser igualmente malo si no tiene forma de detectar un problema (lo que en la práctica significa que está usando RAM que no es ECC, que la mayoría de los sistemas de escritorio no usan).
Eso es incorrecto, las PC son capaces de omitir e ignorar los sectores defectuosos en el disco. Consulte aquí en.wikipedia.org/wiki/Bad_sector . Del mismo modo, el kernel de Linux ahora es compatible con badram y badmem, que son capaces de indicarle al sistema que omita las direcciones corruptas, lo que es a lo que me referia. Sin embargo, tiene razón en que la mala memoria puede causar un comportamiento errático, sin embargo, no siempre es así.
@user16230: ¿Y quién le dice al kernel que excluya esa memoria? ciertamente no el programa que se está ejecutando actualmente desde esa memoria. Esta es una medida de último recurso puramente fuera de línea que se realiza después de detectar que un bit de memoria está defectuoso por otros medios que no sean un programa que se está ejecutando actualmente en él. Incluso para los sectores defectuosos, el resultado es la pérdida de datos . Nada que se pueda arreglar a mitad del vuelo volviendo a flashear el sistema. Además, los bits pueden comportarse mal solo en las condiciones más extrañas, que ni siquiera los mejores programas de prueba de memoria pueden detectar. ¿O por qué crees que Rowhammer se descubrió recientemente?
Una vez más, estoy de acuerdo, sin embargo, simplemente estaba señalando que es posible lidiar con la mala memoria (no es que aconseje hacerlo en vuelo).
@ user16230: Todavía no entiendes el punto. No es posible lidiar con la mala memoria, si no tienes idea de que es mala, o que empeorará en 5 minutos. Necesita medios para detectar mala memoria, recuperar datos almacenados y reasignar. Esto no solo es mucho más costoso que tener tres sistemas redundantes, sino que también es totalmente imposible para todos los escenarios de falla. Como tal, podría ser posible lidiar con fallas de memoria en pleno vuelo, pero debe planificar los eventos en los que no es posible, implementando decisiones de voto mayoritario, que tienen una tasa de error mucho menor.
@PlasmaHH, presumiblemente, podría RAID algunos chips de memoria juntos y conectarlos a una sola CPU sin el gasto de tener tres chips de memoria y tres CPU.
@ raptortech97: aún necesita tres módulos ram, de lo contrario, no tiene un voto mayoritario y, como máximo, podría detectar que un bit salió mal. Sí, podría crear un sistema personalizado que use un código Hamming u otro código perfecto de orden superior, pero ¿entonces qué? Todavía tiene posibles bits que podrían voltearse en registros o cachés. Hamming código estos también? ¿Qué hacer con bitflips en el decodificador? Además, esto costaría mucho más que el simple despido de la mayoría. Y no se ocupará de cosas como errores de lectura analógica (por ejemplo, mayor impedancia del sensor al adc)

En cuanto a la redundancia específica, el entorno de instalación de estos sistemas es probablemente el factor más importante. No solo hay muchos sistemas amontonados en espacios reducidos, sino que el flujo de aire a menudo es muy limitado allí. El calor es un gran destructor de muchos microprocesadores. Los aviones también vibran mucho debido al giro de los motores, la turbulencia en vuelo y el simple aterrizaje. Uniones de soldadura deficientes y trabajos de crimpado por debajo del par o una carcasa trasera de conector suelta, y obtuvo una mala conexión, o peor aún, una intermitente .

Sobre la redundancia en general, si experimenta un BSOD en el trabajo, comparativamente no es gran cosa. Es posible que haya perdido el documento en el que estaba trabajando, pero eso es todo. Si los sistemas de la aeronave fallan, tiene un problema real. Es difícil de lograr, pero la redundancia está ahí porque la vida de cientos de personas depende de ella .

La posibilidad de que falle el procesador es muy baja, pero no cero. Ante la falla del procesador, ¿qué sucede durante el tiempo de transición entre la falla y la funcionalidad completa después de reiniciar? Con un evento raro como este, ¿podríamos acumular suficiente experiencia para estar seguros de que hemos probado en todas las circunstancias? Estamos hablando de < 10 9 números aquí.

Las copias de seguridad son propensas a fallas ocultas. La copia de seguridad normalmente no se usa y solo se enciende cuando es necesario, pero ¿se ha oxidado algo o tiene un molde funky ubicado en un lugar cálido y cómodo que causa un cortocircuito al activarse? Murphy todavía frecuenta las aplicaciones aeroespaciales. La copia de seguridad se puede probar antes del despegue, pero ¿qué pasa si se suelta y el procesador principal falla? Las posibilidades son escasas, pero todos los accidentes importantes en la actualidad son causados ​​por una serie de eventos improbables como este.

La redundancia es útil porque demuestra continuamente que los dispositivos principales funcionan correctamente y se utiliza para circunstancias críticas de vuelo. Los sistemas de respaldo pueden usarse si puede prescindir del dispositivo principal, o si se garantiza que el respaldo siempre funcionará, como la activación manual de los controles de vuelo.

Un piloto automático en crucero no es crítico para el vuelo y puede desconectarse sin consecuencias graves. En un aterrizaje CAT III en el que la pista solo se puede observar una vez que estás conduciendo por ella, son absolutamente vitales. No desea que el piloto automático se desconecte 10 metros por encima de la pista, sin visibilidad, ráfagas de viento lateral: no hay tiempo para activar el respaldo.

Agradezco la respuesta. Tenga en cuenta que uso los pronombres they/them, no he/him.
He notado y corregido.
" Un piloto automático en crucero no es crítico para el vuelo y puede desconectarse sin consecuencias graves ", de hecho es cierto en teoría, pero una vez ha sido letal cuando se combina con una falla en la indicación de velocidad aerodinámica.
@mins En realidad, cada evento, como la desactivación del piloto automático durante el crucero, recibe un nivel de seguridad y debe cumplir con ese nivel de seguridad. El nivel de redundancia y rigor se ajusta para cumplir con el nivel de seguridad requerido. La desactivación del piloto automático durante el crucero es grave, sí, pero no "catastrófica" y, por lo tanto, se marca durante el análisis de seguridad como un problema "menor" o "mayor". El mismo análisis de seguridad puede marcar la desconexión del piloto automático y la falla de la indicación de velocidad aérea como un problema conjunto con mayores consecuencias si hay una interacción significativa entre los dos.

Si un microprocesador se sobrecalienta o sobrecarga y falla espontáneamente, espero que deje de hacer cualquier cosa y no produzca ningún resultado.

¿Alguna vez has overclockeado una CPU o has visto morir una vieja pieza de hardware? Puede obtener todo tipo de artefactos extraños mientras la CPU aún está funcionando.

Las CPU utilizadas en tareas críticas para la seguridad se combinan con un perro guardián , un sistema (simple) similar al interruptor de hombre muerto de la industria ferroviaria. Esto detiene/restablece la CPU tan pronto como no puede realizar un protocolo de enlace predefinido (por ejemplo, para descargar una capacidad antes de que esté completamente cargada)

En un avión, la seguridad es más importante que cualquier otro factor (luego viene el peso óptimo para la eficiencia del combustible y el costo total es el tercero). Si el avión no fuera seguro, no volaría suficiente gente y la industria de las aerolíneas colapsaría. Por eso existen las regulaciones de la FAA, y por eso hay tantas reglas para las aerolíneas. (el control de seguridad del aeropuerto es otro tema, relacionado con la seguridad nacional/política con inmigración, etc., así que cuando decimos 'seguridad' del avión, me refiero a la ingeniería)

Los sistemas críticos a bordo (es decir, los sistemas que se requieren para volar el avión) necesitarán redundancia. Al igual que el quemador en el motor a reacción, tiene 2 encendedores, aunque uno es suficiente. Además, si un motor falla, el otro motor puede hacer volar el avión y la computadora compensará el desequilibrio de fuerzas izquierda/derecha. Muchos sistemas en el avión dependen de la computadora, por lo que debe tener un 'plan b' (la redundancia es uno de los 'plan b')

Esto no responde la pregunta completa. Sé que la mayoría de las cosas en la aviación son redundantes, pero toda esa redundancia tiene una razón específica: algún modo de falla que podría hacer que la redundancia sea útil. Estaba preguntando contra qué modo de falla protege la redundancia del chip.

Porque, a pesar de que la teoría es buena, la realidad es que no todos los componentes del ordenador son iguales.

Un ejemplo específico de principios de los 90: Intel produjo la CPU 486/33 (era bastante innovadora y extremadamente rápida para la época). La mayoría salió bien de fábrica, pero algunos tenían un error esotérico en la FPU que generaba respuestas incorrectas. Las revistas del día estaban llenas de cálculos que podía poner en su hoja de cálculo que producirían X si su CPU funcionaba bien, o Y si tenía el error.

Si sucede que su avión está funcionando con una de las CPU defectuosas, y se recopila el conjunto correcto de datos y se alimenta a cualquiera de los programas de control de vuelo y se encuentra con este error de FPU, se alegrará de que el otras dos CPU calcularon el valor correcto y expulsaron al errante del bucle.

Creo que tu ejemplo es engañoso. Primero, creo que en realidad estás hablando del error Pentium FDIV . Eso fue un error de diseño, no un error de fabricación aleatorio. Cada procesador que se envió tenía el error, hasta que se corrigió el diseño. En ese caso, la redundancia no habría ayudado: simplemente obtendría múltiples copias de la misma respuesta incorrecta.
Es el error Pentium FDIV mencionado por @DavidRicherby, o algo así como el problema de doble sigma 80386 . No creo que el 486 haya tenido nunca el tipo de problemas descritos en esta respuesta.
@MichaelKjörling Se parece mucho a una combinación de 386 doble sigma (que afecta a una muestra aparentemente aleatoria de unidades fabricadas) y el error Pentium FDIV (coma flotante y mucha atención pública).
De todos modos, sería más barato probar a fondo cada procesador que triplicarlos.
@MichaelKjörling se trata de probar diseños para la tolerancia a la radiación, no de ejecutar cada muestra de producción a través de pruebas operativas básicas
@DavidRicherby, el OP podría estar combinando el error Pentium FDIV con el origen del 486SX , donde los 486DX con una FPU defectuosa tenían la FPU deshabilitada y se vendían como CPU de solo números enteros.