Warum sind kritische Flugcomputer überflüssig?

Zumindest in Flugzeugen sind die wirklich kritischen Computer redundant. Typischerweise laufen drei identische Kopien der Autopilot-Computer parallel und vergleichen die Ergebnisse; Wenn ein Computer mit den anderen beiden nicht übereinstimmt, wird seine Ausgabe ignoriert. Das System lässt zu, dass einige Prozessoren fehlerhaft sind, während es den Betrieb des Gesamtsystems aufrechterhält.

Aber warum? Ich habe noch nie von Mikroprozessoren gehört, die plötzlich ausfallen. Sicher, es könnte Herstellungsfehler geben, aber diese wären im Werk aufgefallen. Vielleicht ist das Programm (und sein Beweis) falsch, aber es wäre auf die gleiche Weise über die Prozessoren hinweg falsch. In ähnlicher Weise würde eine schlechte Eingabe eine schlechte Ausgabe auf allen drei Computern verursachen. Vor welcher Art von Fehlern schützt diese Redundanz? Rechnen Mikroprozessoren manchmal einfach falsch?

Wenn ein Mikroprozessor überhitzt oder überlastet ist und spontan ausfällt, würde ich erwarten, dass er aufhört, irgendetwas zu tun, und keine Ausgabe erzeugt. Um mit dieser Art von Fehlern fertig zu werden, würden Sie einen Backup-Prozessor haben wollen, aber Sie müssten nicht die Ausgaben von drei Computern vergleichen – jede erzeugte Ausgabe würde als korrekt angesehen, also würden Sie den gerne direkt verwenden Ausgabe jedes Prozessors, der eine Ausgabe produzierte.

Siehe auch: Die Antwort auf Was ist der Zweck mehrerer Autopiloten? sagt einfach "Redundanz", bevor Sie darauf eingehen, wie dies erreicht wird.

Ich werde auf maßgebliche Antworten warten, aber auf den Systemen, an denen ich beteiligt war, lief auf den drei Computern unterschiedliche Software, die von unabhängigen Teams erstellt wurde und nachweislich die gleichen Ausgaben für die gleichen Eingaben erzeugt.
@Simon Ich weiß, dass das Shuttle Backup-Software hatte ("Designvielfalt"), aber Wikipedia behauptet, dass diese Praxis immer seltener wird.
Es könnte sein, dass ich seit ungefähr 20 Jahren nicht mehr auf dem Laufenden bin. Übrigens, ich bin jetzt Softwareentwickler und habe gesehen, wie Prozessoren und häufiger RAM-Chips ausfallen.
@Simon Aber RAM kann ECC haben, oder? Im schlimmsten Fall ist das Duplizieren von RAM viel einfacher und billiger als das Duplizieren des gesamten Computers. Der Ausfall des Prozessors ist viel besorgniserregender. Glaubst du, du könntest eine Antwort darüber schreiben, wie Prozessoren versagen?
Meine Frage ist im Wesentlichen die gleiche wie die Frage, die ich gerade verlinkt habe. Soll ich dies als Duplikat des anderen schließen und dann dem anderen ein Kopfgeld hinzufügen? Sollte ich die andere Frage bearbeiten, um mich darauf zu konzentrieren, wie die Redundanz erreicht wird, um besser mit der Antwort übereinzustimmen?
Meiner Meinung nach ist Ihre Frage so berechtigt, und ich bin an den Antworten interessiert. Wie Prozessoren ausfallen, ist keine Antwort wert. Ich habe 2 aus dem Gedächtnis gesehen. Einer war ein Lüfterausfall und der Chip hat sich einfach selbst gebraten und der andere war unbekannt. Äußerten sich als zunehmend seltsame Fehler und Bluescreens gefolgt von einem Totalausfall. RAM wird mit ziemlicher Sicherheit ECC haben, aber das kann nur Einzelbitfehler korrigieren und Doppelbitfehler melden. Wenn mehr Bits ausfallen, was bei einem physikalischen Fehler einfach ist, ist ECC nutzlos.
@raptortech97: Autopilot ist nicht so kritisch; Das Flugzeug kann von Hand geflogen werden. Die wirklich kritischen Systeme sind Fly-by-Wire-Steuerungen. Bei Airbus laufen sie auf Paaren unterschiedlicher Platinen (i386 und m68k) mit unabhängig geschriebener Software, die sich gegenseitig überprüfen, diese Paare werden für Failover multipliziert und es gibt einen unabhängigen Satz für primäre Flugsteuerungen (Höhenruder und Querruder) und einen anderen für abwechselnd (Spoiler und horizontaler Stabilisator), so dass, wenn einer ausfällt, der andere immer noch sowohl Nicken als auch Rollen steuern kann. Ich glaube, das Boeing-System auf 777 und 787 ist ähnlich.
@JanHudec Ich stimme zu, dass der Autopilot normalerweise nicht kritisch ist, aber ein Ausfall während eines Cat III-Autolandes wird als katastrophal angesehen.
Ich finde die Wahl der Verwendung von 3 etwas seltsam. Um damit umzugehen, dass einer von ihnen auf willkürliche Weise versagt, benötigen Sie byzantinische Resilienz, die mit weniger als 4 nicht erreicht werden kann.
@kasperd Ich könnte mich irren, aber ich denke, das ist nur dann der Fall, wenn Nachrichten gefälscht werden können. Mit dedizierten physischen Verbindungen können Sie Nachrichten nicht wirklich fälschen.
@raptortech97 Die Analyse von Systemen ohne byzantinische Resilienz geht davon aus, dass jeder Knoten entweder perfekt funktioniert oder die Kommunikation vollständig eingestellt hat. Es braucht nur einen einzigen zufälligen Bitflip, um die Analyse solcher Systeme ungültig zu machen.
@kasperd, darum geht es nicht. Die Art der byzantinischen Widerstandsanalyse, die Sie vorschlagen, beruht auf der Annahme, dass Computer lügen und Nachrichten von anderen Computern fälschen können. Das Dreiparteiensystem ist lösbar, wenn Sie kryptografische Hashes zur Überprüfung der Identität haben.
@raptortech97 Es ist nur lösbar, wenn Sie davon ausgehen, dass der fehlerhafte Knoten keine Nachrichten mehr sendet. Wenn ein einzelner Knoten so ausfällt, dass er inkonsistente Nachrichten sendet, verlieren Sie alle Garantien.
@kasperd Lassen Sie uns diese Diskussion im Chat fortsetzen .
Hast du noch nie vom guten alten Murphy gehört?Anything that can go wrong will go wrong
" Ich habe noch nie von Mikroprozessoren gehört, die plötzlich ausfallen ". Das liegt daran, dass Sie sich mit Elektronik nicht auskennen. Fragen Sie hier und Sie werden aufgeklärt. Außerdem besteht ein Flugcomputer nicht nur aus einer CPU/MCU. Tastatur, Display, Anschlüsse, Speicher, Uhr, andere Chips, andere elektronische Komponenten, Netzteil ... nennen Sie es.
Diese Frage ist schlecht formuliert – erschreckenderweise. Der Fragesteller scheint zu meinen, dass Flugcomputer Redundanz verwenden . Aber was er tatsächlich fragt, ist, warum sie veraltet sind?

Antworten (12)

Zu berücksichtigende Ausfallarten:

  • Überhitzung. Dies ändert die Timing-Eigenschaften des Chips und führt schließlich zu Fehlern. Dies kann sich als Einzelbitfehler mitten im scheinbar normalen Betrieb äußern; Es wird schließlich abstürzen, kann aber zuerst schlechte Daten ausgeben.
  • Wasserschaden. Manifestiert sich als parasitärer Widerstand auf der Platine und kann dazu führen, dass Sie Bits als hoch oder niedrig falsch interpretieren. Mögliche Ursachen sind undichte Gehäuse, Kondenswasser etc.
  • Elektromagnetische Interferenz. (Das System soll dagegen resistent sein, aber es lohnt sich trotzdem, darüber nachzudenken).
  • Physikalische Verbindungsprobleme. Entweder während der Konstruktion (Lötfehler) oder nachträglich induziert (Hitze, Vibration). Mikroskopisch kleine Risse in Platten oder Verbindungen können die QS bestehen, führen aber zu zeitweiligen Fehlern. Auch dies kann Sie ein einzelnes Bit auf einmal verlieren. Dies hängt mit dem Xbox-Problem „Red Ring of Death“ zusammen.
  • Ausfall anderer Komponenten. Kondensatoren sind die üblichen Verdächtigen; Elektrolyt, Tantal, Keramik haben alle unterschiedliche Fehlermodi. Auch dies kann zu einem System führen, das meistens funktioniert, aber dazu neigt, Randwerte falsch zu interpretieren oder unter einer Zeitabweichung leidet.
  • Seltsame Materialkunde ( "Purple Plague" , Zinnwhisker durch bleifreies Lot)
  • Die Teile-QA entspricht möglicherweise nicht den von Ihnen erwarteten Standards (Lieferanten versenden minderwertige Teile mit einem falschen Etikett „Luft- und Raumfahrtqualität“). Selbst nachdem es passiert ist, ist es schwer zu erkennen.

Es ist wichtig zu erkennen, dass Sie in digitalen Hochgeschwindigkeitssystemen keine sauberen „Eins“ und „Null“ erhalten, sondern eine Reihe von ansteigenden und abfallenden Flanken, die durch die parasitäre Kapazität und Induktivität der Verdrahtung verschmiert werden. Dies ist von Natur aus anfällig für Fehlinterpretationen unter elektrischen Randbedingungen.

Wow, danke für das tolle Detail! Ich möchte anmerken, dass es mir schwer fällt zu glauben, dass die Teile nicht dem Standard entsprochen hätten. In der Luftfahrt mussten das ursprüngliche Design und jedes Ersatzteil FAA-zertifiziert werden, und es gibt eine große Papierspur, die alles verfolgt. Die Schein-Ersatzteilindustrie ist heutzutage eher klein.
Ich komme hier eher aus der Elektronik als aus der Luftfahrt, daher bin ich nicht damit vertraut, wie gut die Papierspur funktioniert, aber Sie könnten dies interessant finden, wenn Sie Details mögen: bunniestudios.com/blog/?page_id=1022
(Anekdotisch denke ich, dass die Mehrheit der Fehler "in der QA gearbeitet, die früh in der Produktion fehlschlagen" mechanische Fehler an Lötstellen sind; ich glaube, die Luftfahrt / MILSPEC hat früher Wire-Wrap für genau diesen Zweck bevorzugt, aber das ist bei winzigen Gehäusen nicht mehr praktikabel)
Dies ist die beste Antwort. Die einfache Tatsache ist, dass CPUs falsche Antworten produzieren können und dies häufig tun, wenn sie außerhalb ihrer angegebenen Spannung/Temperatur/usw. betrieben werden. reicht, weil es mit den Timings durcheinander kommt. Ein Zeitunterschied von Pikosekunden kann dazu führen, dass Sie den falschen Wert aus einer Zeile ablesen. Ebenso kann eine sehr kleine Spannungsdifferenz dazu führen, dass ein Wert als 1 statt als 0 gelesen wird oder umgekehrt. Aus diesem Grund führen die Leute beim Testen von Übertaktungen Burn-In-Tests durch, die stundenlang so schnell wie möglich rechnen und auf falsche Antworten achten.
Soweit zu sagen, dass es irgendwann abstürzen wird ... es könnte irgendwann abstürzen, oder es könnte einfach weiterhin schlechte Ergebnisse produzieren. Wenn CPUs beispielsweise zu heiß werden, führen sie ihren Code oft den ganzen Tag fröhlich aus und produzieren falsche Antworten, insbesondere wenn eine oder mehrere ALUs oder FPUs außerhalb der Spezifikation arbeiten, der Befehlsdecoder jedoch nicht (was kein schreckliches Problem ist). ungewöhnlicher Fehlermodus.)
Und einrasten . Wenn von nichts anderem, dann von kosmischer Strahlung (wie in RedGrittyBricks Antwort erwähnt).

Als andere Antwort darauf hingewiesen: Eine CPU kann ausfallen. Entweder teilweise (mit fehlerhaften Antworten) oder vollständig.

Außerdem sind alle Computer kosmischen Strahlungen ausgesetzt, die hin und wieder den Speicher etwas umkippen können (neben anderen Fehlerquellen wie Kurzschluss, ...). Aus diesem Grund verwenden wissenschaftliche Experimente und langlebige Server ECC - Speicher. Raumschiffe verwenden auch speziell gehärtete CPUs , um diesen Effekt zu begrenzen, da sie weniger vor solchen Störungen abgeschirmt sind. Flugzeuge fliegen in großen Höhen und sind mehr dieser Störungen ausgesetzt als Ihr erdgebundener Computer.

Auch wenn dieses Ereignis sehr ungewöhnlich (aber nicht unerhört) ist, MÜSSEN Sie sicherstellen, dass die Ergebnisse zu 100 % genau sind. Ein bisschen umgedreht könnte das Verhalten Ihres Flugzeugs auf unvorhersehbare Weise verändern, wie das Umkehren der Steuerung, das Umkehren des Flughüllenschutzgesetzes, ...

Kosmische Strahlung kann nicht nur im Speicher ein bisschen kippen, sondern auch in der CPU. Jetzt ist ECC für den Speicher immer noch sinnvoll, da der Speicher weitaus mehr Bits hat, aber das Risiko für CPUs besteht immer noch.
Ja, das war ECC-Speicher UND gehärtete CPUs :)
Ich denke, das ist der wichtigste Grund. Wenn der schlechte Arbeitsspeicher das einzige Problem wäre, könnten wir den Arbeitsspeicher einfach verdreifachen, aber eine einzige CPU haben. Aber wenn ein kosmischer Strahl das falsche Bit in der CPU umdreht und die CPU nicht verdreifacht wird, könnte das Ergebnis katastrophal sein.
Im Vergleich dazu gibt es in einem typischen Passagierflugzeug auf Reiseflughöhe mehr Hintergrundstrahlung als heute am Ground Zero in Hiroshima.
Dies wird als Single Event Upset bezeichnet. Es werden oft 3 Kopien der gleichen Daten im Speicher gespeichert sowie eine andere Einheit, die im Falle eines kritischen Fehlers übernommen wird.

Warum sind kritische Flugcomputer überflüssig?

Software

Ein Punkt, der übersehen wurde, ist, dass die redundanten Systeme oft eigenständige Designs sind, insbesondere die Software. Dies schützt vor Konstruktionsfehlern (oder Softwarefehlern), die andernfalls unter selten auftretenden Kombinationen von Umständen Probleme verursachen könnten.

Hardware

Auch wenn ein Mikroprozessor sehr zuverlässig ist, gibt es eine Reihe von Faktoren, die relevant sein können

  • Flugzeuge fliegen in großer Höhe, wo die Atmosphäre weniger Schutz vor kosmischer Strahlung bietet . Dies wirkt sich nicht nur auf die Gesundheit der Besatzung aus, sondern kann auch elektronische Geräte stören .
  • Avioniksysteme bestehen aus mehr als nur Mikroprozessoren, es gibt sicherlich auch andere, störanfälligere Geräte – wie etwa Kondensatoren. Es gibt unzählige Möglichkeiten, wie Elektronik ausfallen kann, z. B. durch Vibration verursachter Erdungsausfall, der zu Störungen auf Datenleitungen (z. B. von analogen Sensoren) führt.

Ich habe noch nie von Mikroprozessoren gehört, die plötzlich ausfallen.

Zuverlässigkeit ≠ Sicherheit

  • Viele Unfälle ereignen sich ohne „Ausfall“ einer Komponente
    • Verursacht durch Gerätebetrieb außerhalb von Parametern und Zeitgrenzen, auf denen Zuverlässigkeitsanalysen basieren.
    • Verursacht durch Wechselwirkungen von Komponenten, die alle gemäß Spezifikation arbeiten.
    • Hochzuverlässige Komponenten sind nicht unbedingt sicher

Von Nancy Leveson, MIT, über UCSD

"Ich habe noch nie von Mikroprozessoren gehört, die plötzlich ausfallen." Ich hatte einmal einen Fehler in einem Desktop. Ich tippe irgendetwas weg, und der Bildschirm wurde einfach schwarz. Nach den üblichen Tests haben wir es zurückgeschickt, sie sagten, wir bräuchten eine neue CPU.
Leute, die noch nie von CPU-Ausfällen gehört haben, haben noch nie die Tage von AMD Athlon/Pentium4 erlebt, in denen das Braten einer CPU nicht ungewöhnlich war
Danke für die Erwähnung, dass die Software tatsächlich nicht identisch ist, aber unterschiedliche Teams für unterschiedliche Hardware schreiben, aber mit den gleichen Spezifikationen. Die ursprüngliche Frage ist, gelinde gesagt, irreführend.

Ich weiß, dass diese Frage bereits eine Handvoll Antworten erhalten hat, aber keine davon scheint sich mit der Frage zu befassen, warum es drei Systeme im redundanten Satz gibt und nicht nur zwei.

Zunächst einmal, wie von Simon , Jan Hudec und RedGrittyBrick betont wurde, sind die Designs überhaupt nicht identisch. Tatsächlich sind sie aus gutem Grund oft völlig unterschiedlich : Die Wahrscheinlichkeit, dass ein bestimmtes Problem alle redundanten Systeme betrifft und insbesondere alle redundanten Systeme in gleicher Weise betrifft, reicht von "gering" bis "völlig winzig, fast nicht vorhanden". Vergleichen Wie unterschiedlich sind redundante Flugsteuerungscomputer?

Zweitens, warum es drei gibtSysteme in jeder redundanten Konfiguration. Wenn alles gut funktioniert und sich das Flugzeug im stabilen Flug befindet, melden alle Systeme für einen bestimmten Wert und einen bestimmten Satz von Eingaben, dass eine Korrektur von 0 (von welcher Einheit auch immer) erforderlich ist. An diesem Punkt gibt es kein Problem, und die Computer dienen nur dazu, den gegenwärtigen Zustand beizubehalten. Jetzt versagt eines der Komponentensysteme aus irgendeinem Grund und meldet, dass eine Korrektur von +50 Einheiten erforderlich ist. Das heißt, der Satz von Antworten ändert sich von [0,0,0] zu [0,0,+50]. Zwei Systeme stimmen überein und das dritte meldet etwas anderes, sodass wir den Ausreißer wahrscheinlich ignorieren und mit den beiden Systemen fortfahren können, die dasselbe melden: Behandeln Sie das Ergebnis als [0,0, falsch] und ignorieren Sie das falsche Ergebnis, während Sie technische Details protokollieren und eine Art auffällige Warnung anzeigen, dass die Systeme so schnell wie möglich überprüft werden müssen. Aber was wäre, wenn wir von Anfang an nur zwei Systeme hätten und eines der beiden auf die gleiche Weise ausfällt? Die ermittelte benötigte Korrektur reicht von [0,0] bis [0,+50]. Jetzt schnell: Welcher Wert ist richtig? Sollten Sie den Zustand beibehalten oder um +50 korrigieren?

An diesem Punkt gibt es keine Möglichkeit zu wissen, ob eine Korrektur um 0 oder +50 die richtige Vorgehensweise ist. Sie könnten einen Durchschnitt nehmen, aber die Verwendung eines Durchschnitts aus zwei Zahlen (von denen eine wahrscheinlich falsch ist) könnte tatsächlich schlechter sein als jeder Wert für sich.

Indem Sie dem redundanten Satz ein drittes System hinzufügen, fügen Sie einen Tie-Breaker für die Situation hinzu, in der es ein fehlerhaftes System gibt. Nur wenn zwei der drei Systeme gleichzeitig zu versagen beginnen, haben Sie ein echtes Problem, und wenn das Flugzeug solche Probleme hat, dass zwei von drei redundanten Systemen fehlerhafte Ausgaben liefern, dann haben Sie wahrscheinlich zunächst ernsthafte Probleme .

Die meisten Antworten drehten sich um das Potenzial für Computerhardwarefehler und ähnliche Dinge. Während all das wahr ist, hat niemand erwähnt, was die Computer tatsächlich betrachten.

Angenommen, Sie befinden sich im Anflug und bereiten sich auf eine CAT III-Autolandung vor, und Sie haben nur zwei Computersysteme. Beide Computersysteme vergleichen die Funkhöhenmessersysteme Nr. 1 und Nr. 2. Nur gibt es eine Fehlfunktion bei einem der Funkhöhenmessersysteme, die eine Abweichung von einem willkürlichen Wert verursacht, der nicht innerhalb der Grenzen liegt.

Woher weiß der Computer, was falsch ist? Ein Computer schaut auf Funkhöhenmessersystem Nr. 1 und sieht 500 Fuß. Der andere schaut auf System Nr. 2 und sieht 1000 Fuß. Welches ist richtig und welches falsch? Wie konnte der Computer diese Entscheidung treffen?

Geben Sie den dritten Computer ein. Wenn der Wert dessen, was er sieht, mit dem eines der anderen beiden Computer übereinstimmt, kann er effektiv für den ungültigen Messwert „außerhalb der Insel“ „stimmen“.

Ich sollte anmerken, dass die meisten dieser Computer zwischen zwei und vier Prozessoren haben, die alle ihre eigenen Ergebnisse vergleichen. Das ist die INTERNE Redundanz, um Hardwarefehler zu vermeiden, aber zahlreiche Quervergleiche externer Systeme zu haben, ist größtenteils der Grund, warum ein drittes System existiert.

Hinweis: Als A&P-Mechaniker ist es in 9 von 10 Fällen, dass eines der externen Systeme ausgefallen ist (Funkhöhenmesser, MMR/ILS-Fehlvergleich usw.), was zu einer Verschlechterung der Fähigkeiten führt – NICHT der Computer selbst.

Computer fallen ständig spontan aus. Daran sind Sie nicht gewöhnt, weil Sie nicht viele Computer benutzt haben. Aber stellen Sie sich jemanden wie Google vor, der riesige Rechenzentren mit Tausenden von Computern betreibt. Die Software, die Google ausführt, basiert auf der expliziten Annahme, dass Computer ausfallen, weil dies mehrmals am Tag passiert. Nun, ein Flugzeug enthält nicht sehr viele Computer, aber die darin enthaltenen sind sicherheitskritisch. Sie werden also dupliziert, um sicherzustellen, dass ihr Ausfall kein Problem verursacht.

Ich denke, das OP hat besonders nach der Tatsache gefragt, dass es drei gibt, die verglichen werden, anstatt nur zwei, falls die Hardware stirbt.
Nach allem, was ich über die Systeme von Google gehört habe, sind sie darauf ausgelegt, den Totalausfall eines beliebigen Computers zu bewältigen, nicht Computer, die sich schlecht benehmen
Hmm. Ich denke, der Umgang mit Fehlfunktionen und nicht mit einem völligen Ausfall ist in meiner Antwort implizit enthalten, aber Sie haben beide Recht, dass es nicht sehr gut auf die Frage zugeschnitten ist. Ich werde es mir überlegen und entweder verbessern oder löschen.
Die Systeme von Google basieren auf Fail-and-Retry, da dies in alle Internetprotokolle integriert ist. Andere große Systeme sind ähnlich und umfassen sogar einen „Crash-only“-Betrieb (siehe Netflix „Chaos Monkey“). Dies ist für sicherheitskritische Echtzeitsysteme nicht geeignet. Es ist ein interessanter Kontrast zwischen einem billigen System, das in der Praxis fast immer funktioniert, und einem viel schwieriger zu entwickelnden und teureren System, das Designgarantien bieten kann.

Wenn wir dies von einem rein technischen Standpunkt aus betrachten, haben Mikroprozessoren wie alles andere eine Zykluslebensdauer. Im Allgemeinen ist es sehr lang, und der PC, von dem Sie dies posten, wird höchstwahrscheinlich veraltet sein, lange bevor es die Zykluslebensdauer erreicht. Obwohl ein Mikroprozessor keine beweglichen Teile hat, nimmt er Eingaben von verschiedenen Sensoren entgegen. Ich kann nur davon ausgehen, dass die Eingänge irgendwie abgesichert sind, aber das bedeutet nicht, dass eventuell auftretende Spikes vollständig eliminiert und isoliert werden. Für das, was es wert ist, werden selbst relativ kleine Überspannungen einen Mikroprozessor braten. In Anbetracht dessen werden mehrere Systeme verwendet, um auf Nummer sicher zu gehen. Mit der immer kleiner werdenden Größe der Technologie ist es einfacher und billiger geworden, ein Ersatzteil mitzuführen, sodass Sie vom Verkaufsstandpunkt aus beruhigt sein können. Wieder es'

Um direkt auf Ihre Frage einzugehen, ich beschäftige mich schon lange mit Mikroprozessoren, Mikrocontrollern und dergleichen. In dieser Zeit hatte ich vielleicht zwei oder drei spontane Ausfälle, normalerweise im Zusammenhang mit Hitze. In einem Flugzeug scheint dies kein Problem zu sein, aber tatsächlich kann extreme Kälte Probleme verursachen, ebenso wie extreme Hitze, wenn es um Elektronik geht. Abgesehen davon habe ich unzählige Einheiten geröstet, indem ich sie mit überladenen Eingängen getroffen habe. Nehmen wir an, Ihr Flugzeug wurde von einem Blitz getroffen (ich weiß, dass moderne Fluggesellschaften dagegen geschützt sind), aber nehmen wir der Argumentation halber an, dass ein Boden schlecht war: Dies würde leicht eine Einheit anstoßen.

Nebenbemerkung: Heutzutage kommt es häufiger vor, dass Speicherchips/Laufwerke ausfallen. Dies ist etwas, das Sie vielleicht nie erfahren werden, da die meisten modernen Computer mit totem Speicher umgehen können, sei es auf der Festplatte oder im Systemspeicher.

Die Avionik befindet sich im Allgemeinen im Avionikschacht unter dem Cockpit oder im Cockpit selbst, sodass die extreme Kälte kein Problem darstellt, aber bei unzureichender Kühlung könnten sie überhitzen. Was ich nicht klargestellt habe, war, dass es möglich sein sollte, wenn ein Mikroprozessor spontan ausfällt, dies zu erkennen und auf ein Backup umzuschalten. Das verwendete System vergleicht die drei Ausgaben, was impliziert, dass ein Mikrocontroller eine falsche Ausgabe erzeugen könnte, anstatt einfach keine Ausgabe zu erzeugen.
Ich finde die Aussage, dass "die meisten modernen Computer mit totem Speicher umgehen können", bestenfalls zweifelhaft. Vielleicht im strengen Sinne, dass "wenn eine Speicherzelle kaputt geht, der Computer nicht sofort abstürzt", aber es wird einen fehlerhaften Betrieb verursachen, sobald dieser Speicher tatsächlich für etwas verwendet wird. Die Rettung besteht in gewisser Weise darin, dass in modernen PCs der Löwenanteil des Arbeitsspeichers nicht aktiv genutzt wird; es wird für den Cache verwendet. Was ebenso schlecht sein kann, wenn Sie keine Möglichkeit haben, ein Problem zu erkennen (was in der Praxis bedeutet, dass Sie Nicht-ECC-RAM verwenden, was die meisten Desktop-Systeme nicht tun).
Das ist falsch, PCs sind in der Lage, fehlerhafte Sektoren auf der Festplatte zu überspringen und zu ignorieren, siehe hier en.wikipedia.org/wiki/Bad_sector . Ebenso unterstützt der Linux-Kernel jetzt Badram und Badmem, die dem System mitteilen können, beschädigte Adressen zu überspringen, was ist das, worauf ich mich bezog. Sie haben jedoch Recht, dass ein schlechter Speicher zu unberechenbarem Verhalten führen kann, dies ist jedoch nicht immer der Fall.
@ user16230: Und wer sagt dem Kernel, dass er diesen Speicher ausschließen soll? sicherlich nicht das Programm, das gerade von diesem Speicher abläuft. Dies ist eine reine Offline-Maßnahme als letzter Ausweg, die durchgeführt wird, nachdem festgestellt wurde, dass ein Speicherbit auf andere Weise als durch ein aktuell darauf ausgeführtes Programm defekt ist. Selbst bei fehlerhaften Sektoren ist das Ergebnis Datenverlust . Nichts, was mitten im Flug behoben werden kann, indem das System neu geflasht wird. Außerdem können sich Bits nur unter den seltsamsten Bedingungen falsch verhalten, die selbst von den besten Speichertestprogrammen nicht erkannt werden können. Oder warum wurde Rowhammer Ihrer Meinung nach erst kürzlich entdeckt?
Auch hier stimme ich zu, aber ich habe lediglich darauf hingewiesen, dass es möglich ist, mit schlechtem Gedächtnis umzugehen (nicht, dass ich dazu rate, es im Flug zu tun).
@user16230: Du verstehst es immer noch nicht. Es ist nicht möglich, mit schlechtem Gedächtnis umzugehen, wenn Sie keine Ahnung haben, dass es schlecht ist oder in 5 Minuten schlecht wird. Sie benötigen Mittel, um fehlerhaften Speicher zu erkennen, gespeicherte Daten wiederherzustellen und neu zuzuordnen. Das ist nicht nur deutlich teurer als drei redundante Systeme, es ist auch für alle Ausfallszenarien völlig unmöglich. Daher ist der Umgang mit Speicherausfällen während des Flugs möglicherweise möglich, aber Sie müssen für die Ereignisse planen, bei denen dies nicht möglich ist, indem Sie Mehrheitsentscheidungen implementieren, die eine weitaus geringere Fehlerrate aufweisen.
@PlasmaHH Sie könnten vermutlich ein paar Speicherchips zusammenfassen und sie mit einer einzelnen CPU verbinden, ohne die Kosten für drei Speicherchips und drei CPUs.
@raptortech97: Du brauchst immer noch drei RAM-Module, sonst hast du kein Mehrheitsvotum und könntest höchstens erkennen, dass ein Bit schief gelaufen ist. Ja, Sie könnten ein benutzerdefiniertes System erstellen, das einen Hamming-Code oder einen anderen perfekten Code höherer Ordnung verwendet, aber was dann? Sie haben immer noch mögliche Bits, die Register oder Caches umdrehen könnten. Hamming-Code diese auch? Was tun mit Bitflips im Decoder? Auch dies würde viel mehr kosten als nur eine Mehrheitsredundanz. Und es wird sich nicht mit Dingen wie analogen Auslesefehlern befassen (z. B. höhere Impedanz vom Sensor zum ADC).

Bei spezifischer Redundanz ist die Installationsumgebung dieser Systeme wahrscheinlich der größte Faktor. Viele Systeme sind nicht nur auf engstem Raum eng zusammengepfercht, sondern der Luftstrom ist dort oft sehr begrenzt. Hitze ist ein großer Zerstörer vieler Mikroprozessoren. Flugzeuge vibrieren auch stark aufgrund von drehenden Triebwerken, Turbulenzen während des Fluges und einfach beim Landen. Schlechte Lötverbindungen und unterdurchschnittliche Crimp-Arbeiten oder ein lockeres Anschlussgehäuse, und Sie haben eine schlechte Verbindung, oder schlimmer noch, eine zeitweilige .

Zur Entlassung im Allgemeinen: Wenn Sie einen BSOD bei der Arbeit erleben, ist das vergleichsweise keine große Sache. Möglicherweise haben Sie das Dokument verloren, an dem Sie gearbeitet haben, aber das war es auch schon. Wenn Flugzeugsysteme ausfallen, haben Sie ein echtes Problem. Es ist schwer zu erreichen, aber die Redundanz ist da, weil das Leben von Hunderten von Menschen davon abhängt .

Die Wahrscheinlichkeit eines Prozessorausfalls ist zwar sehr gering, aber nicht null. Was passiert bei Ausfall des Prozessors während der Übergangszeit zwischen Ausfall und voller Funktionalität nach dem Neustart? Könnten wir bei einem seltenen Ereignis wie diesem jemals genug Erfahrung sammeln, um sicher zu sein, dass wir unter allen Umständen getestet haben? Wir reden über < 10 9 Zahlen hier.

Backups sind anfällig für versteckte Fehler. Die Sicherung wird normalerweise nicht verwendet und nur bei Bedarf eingeschaltet - aber ist etwas durchgerostet, oder hat sich ein fieser Schimmel an einem wohlig warmen Plätzchen eingenistet und beim Einschalten einen Kurzschluss verursacht? Murphy verfolgt immer noch Luft- und Raumfahrtanwendungen. Das Backup kann vor dem Start getestet werden, aber was ist, wenn es sich löst und der Hauptprozessor ausfällt? Die Chancen sind gering, aber alle größeren Unfälle werden heutzutage durch unwahrscheinliche Aneinanderreihungen von Ereignissen wie diesem verursacht.

Redundanz ist nützlich, da sie kontinuierlich zeigt, dass die Hauptgeräte ordnungsgemäß funktionieren, und sie wird für flugkritische Umstände verwendet. Backup-Systeme können verwendet werden, wenn auf das Hauptgerät verzichtet werden kann oder wenn sichergestellt ist, dass das Backup immer funktioniert, wie z. B. die manuelle Betätigung von Flugsteuerungen.

Ein Autopilot im Reiseflug ist nicht flugkritisch und kann ohne schwerwiegende Folgen abgeschaltet werden. Bei einer CAT-III-Landung, bei der die Start- und Landebahn erst beim Befahren einsehbar ist, sind sie unabdingbar. Sie möchten nicht, dass der Autopilot 10 Meter über der Landebahn abschaltet, keine Sicht, böiger Seitenwind - es bleibt keine Zeit, den Backup einzuschalten.

Ich schätze die Antwort. Beachten Sie, dass ich sie/sie Pronomen verwende, nicht er/ihn.
Ich habe es bemerkt und geändert.
" Ein Autopilot im Reiseflug ist nicht flugkritisch und kann ohne schwerwiegende Folgen abgeschaltet werden ", das stimmt zwar theoretisch, war aber einmal tödlich, wenn es mit einem Ausfall der Fluggeschwindigkeitsanzeige verbunden war.
@mins In Wirklichkeit erhält jedes Ereignis wie das Abschalten des Autopiloten während der Kreuzfahrt eine Sicherheitsstufe und muss diese Sicherheitsstufe erfüllen. Das Maß an Redundanz und Strenge wird angepasst, um das erforderliche Sicherheitsniveau zu erreichen. Das Abschalten des Autopiloten während des Reiseflugs ist ernst, ja, aber nicht „katastrophal“ und wird daher während der Sicherheitsanalyse nur als „kleines“ oder „großes“ Problem gekennzeichnet. Dieselbe Sicherheitsanalyse kann die Trennung des Autopiloten und den Ausfall der Fluggeschwindigkeitsanzeige als gemeinsames Problem mit größeren Konsequenzen markieren, wenn es eine signifikante Wechselwirkung zwischen den beiden gibt.

Wenn ein Mikroprozessor überhitzt oder überlastet ist und spontan ausfällt, würde ich erwarten, dass er aufhört, irgendetwas zu tun, und keine Ausgabe erzeugt.

Haben Sie jemals eine CPU übertaktet oder zugesehen, wie ein altes Stück Hardware starb? Sie können alle möglichen seltsamen Artefakte erhalten, während die CPU noch läuft.

CPUs, die für sicherheitskritische Aufgaben verwendet werden, sind mit einem Watchdog gekoppelt, einem (einfachen) System, das dem Totmannschalter der Eisenbahnindustrie ähnelt . Dies stoppt/setzt die CPU zurück, sobald sie einen vordefinierten Handshake nicht ausführen kann (z. B. um eine Kapazität zu entladen, bevor sie vollständig geladen ist).

In einem Flugzeug ist die Sicherheit wichtiger als jeder andere Faktor (danach kommt das optimale Gewicht für die Kraftstoffeffizienz, und die Gesamtkosten sind das dritte). Wenn Flugzeuge nicht sicher wären, würden nicht genug Menschen fliegen und die Luftfahrtindustrie würde zusammenbrechen. Deshalb gibt es FAA-Vorschriften, und deshalb gibt es so viele Regeln für die Fluggesellschaften. (Die Sicherheitskontrolle am Flughafen ist ein weiteres Thema, das sich auf die nationale/politische Sicherheit bei der Einwanderung usw. bezieht. Wenn wir also von „Sicherheit“ des Flugzeugs sprechen, meine ich die Technik.)

Kritische Systeme an Bord (dh Systeme, die zum Fliegen des Flugzeugs erforderlich sind ) benötigen Redundanz. So wie der Brenner im Strahltriebwerk 2 Zünder hat, obwohl einer reicht. Auch wenn ein Triebwerk ausfällt, kann das andere Triebwerk das Flugzeug fliegen, und der Computer kompensiert das Links/Rechts-Kraftungleichgewicht. Viele Systeme im Flugzeug verlassen sich auf den Computer, daher muss er einen „Plan B“ haben (Redundanz ist einer der „Plan B“).

Dies beantwortet nicht die vollständige Frage. Ich weiß, dass die meisten Dinge in der Luftfahrt redundant sind, aber all diese Redundanz hat einen bestimmten Grund - eine Art des Versagens, die die Redundanz nützlich machen könnte. Ich habe gefragt, vor welcher Art von Fehlern Chip-Redundanz schützt.

Denn obwohl die Theorie gut ist, ist die Realität, dass nicht alle Computerkomponenten gleich sind.

Ein konkretes Beispiel aus den frühen 90er Jahren: Intel produzierte die 486/33-CPU (sie war für damalige Verhältnisse ziemlich modern und blitzschnell). Die meisten verließen die Fabrik problemlos, aber einige hatten einen esoterischen Fehler in der FPU, der falsche Antworten erzeugte. Die Zeitschriften des Tages waren voll von Berechnungen, die Sie in Ihre Tabellenkalkulation einfügen konnten, die X ergeben würden, wenn Ihre CPU gut war, oder Y, wenn sie den Fehler hatte.

Wenn Ihr Flugzeug zufällig mit einer der fehlerhaften CPUs läuft und gerade die richtigen Daten gesammelt und in eines der Flugsteuerungsprogramme eingespeist werden und auf diesen FPU-Fehler stoßen, werden Sie froh sein, dass die Die anderen beiden CPUs berechneten den richtigen Wert und warf die fehlerhafte aus der Schleife.

Ich finde dein Beispiel irreführend. Erstens denke ich, dass Sie tatsächlich über den Pentium FDIV-Bug sprechen . Das war ein Konstruktionsfehler, kein zufälliger Herstellungsfehler. Jeder ausgelieferte Prozessor hatte den Fehler, bis das Design korrigiert wurde. In diesem Fall hätte Redundanz nicht geholfen: Sie würden nur mehrere Kopien derselben falschen Antwort erhalten.
Es ist entweder der von @DavidRicherby erwähnte Pentium FDIV-Fehler oder so etwas wie das 80386-Doppel-Sigma-Problem . Ich glaube nicht, dass der 486 jemals die in dieser Antwort beschriebenen Probleme hatte.
@MichaelKjörling Es klingt sehr nach einer Verschmelzung des 386-Doppel-Sigma (das eine scheinbar zufällige Stichprobe hergestellter Einheiten betrifft) und des Pentium-FDIV-Fehlers (Gleitkomma und viel öffentliche Aufmerksamkeit).
Unabhängig davon wäre es billiger, jeden Prozessor gründlich zu testen, als ihn zu verdreifachen.
@MichaelKjörling, hier geht es darum, Designs auf Strahlungstoleranz zu testen, nicht darum, jedes Produktionsmuster grundlegenden Betriebstests zu unterziehen
@DavidRicherby, das OP könnte den Pentium FDIV-Fehler mit dem Ursprung des 486SX verschmelzen, bei dem 486DXs mit einer fehlerhaften FPU die FPU deaktiviert hatten und als Nur-Ganzzahl-CPUs verkauft wurden.