Varför är kritiska flygdatorer överflödiga?

19

Minst i flyglinjen är de verkligt kritiska datorerna överflödiga. Typiskt löper tre identiska kopior av autopilotdatorerna parallellt och jämför resultat. Om en dator inte håller med de andra två ignoreras dess produktion. Systemet tillåter vissa processorer att vara felaktiga samtidigt som det övergripande systemet upprätthålls.

Men varför? Jag har aldrig hört talas om att mikroprocessorer plötsligt misslyckas. Visst kan det finnas tillverkningsfel, men de skulle ha fångats på fabriken. Kanske är programmet (och dess bevis) fel, men det skulle vara fel på samma sätt över processorerna. På samma sätt skulle dålig ingång orsaka dålig utmatning på alla tre datorer. Vilken typ av fel skyddar denna redundans mot? Gör mikroprocessorer ibland bara matte fel?

Om en mikroprocessor är överhettad eller överbelastad och spontant misslyckas, förväntar jag mig att den slutar göra någonting och producerar ingen produktion. För att hantera denna typ av fel skulle du vilja ha en backupprocessor, men du skulle inte behöva jämföra utdata från tre datorer. En produkt som produceras skulle antas vara korrekt, så du skulle gärna direkt använda utgången från vilken processor som producerar produktionen.

Relaterat: Svaret på Vad är syftet med av flera autopiloter? säger helt enkelt "redundans" innan man går in på hur detta uppnås.

    
uppsättning raptortech97 24.03.2015 22:56

12 svar

29

Felaktigheter att överväga:

  • Överhettning. Detta ändrar chipets timingegenskaper och resulterar så småningom i fel. Detta kan manifesteras som enstaka fel i mitten av till synes normal operation; Det kommer att så småningom krascha, men kan lämna ut dåliga data först.
  • Vattenskador. Manifesterar som ett parasitiskt motstånd på tavlan och kan få dig att tolka bitarna lika högt eller lågt. Kan vara läckande höljen, kondensation etc.
  • Elektromagnetisk störning. (Systemet är tänkt att vara motståndskraftigt mot detta, men det är fortfarande värt att tänka på).
  • Problem med fysisk anslutning. Antingen under konstruktion (lödfel) eller inducerad efteråt (värme, vibration). Mikroskopiska sprickor i skivor eller leder kan passera QA men resultera i intermittenta fel. Återigen kan detta förlora dig en enda bit åt gången. Det här är relaterat till Xbox "Red Ring of Death" problemet.
  • Fel på andra komponenter. Kondensatorer är vanliga misstänkta; elektrolytisk, tantal, keramik har alla olika fellägen. Återigen kan detta resultera i ett system som för det mesta fungerar men är benäget att missförstå marginella värden eller lider av tidsstyrning.
  • Kuslig materialvetenskap ( "Lila pest" , tin whiskers på grund av blyfritt lödd)
  • Del QA kanske inte överensstämmer med de standarder som du förväntar dig (leverantörer levererar sämre delar med en falsk märkning av "rymdkvalitet"). Svår att upptäcka även efter det att det hände.

Det är viktigt att erkänna att i höghastighets digitala system får du inte snygg ren "en" och "noll", får du en serie stigande och fallande kanter som smutsas ut av den parasitiska kapacitansen och induktansen hos ledningar. Detta är i sig sårbart för felintolkning under marginella elektriska förhållanden.

    
svaret ges 25.03.2015 12:54
27

Som annat svar påpekade: En CPU kan misslyckas. Endera delvis (ger felaktiga svar), eller helt.

Dessutom är all dator utsatt för kosmiska strålningar som en gång i taget kan vända lite i minnet (förutom andra felkällor som kortslutning, ...). Det är därför som vetenskapliga experiment och långa servrar använder ECC -minnet. Spaceships använder också specifika härdade processorer för att begränsa denna effekt eftersom de är mindre skyddade mot sådana störningar. Planen flyger på höga höjder och är föremål för mer av dessa störningar än din jordbundna dator.

Även om händelsen av detta händer är mycket ovanligt (men inte oerhört), måste du se till att resultaten är 100% korrekta. En liten omgång kan förändra ditt flygs beteende på oförutsägbara sätt, som att invertera kontrollerna, invertera skyddsrätten för flygkuvertet, ...

    
svaret ges 25.03.2015 06:47
11

Why are critical flight computers redundant?

Mjukvara

En sak som missats är att de redundanta systemen ofta är oberoende mönster, speciellt programvaran. Detta skyddar mot konstruktionsfel (eller programvaruproblem) som annars kan orsaka problem vid sällan förekommande kombinationer av omständigheter.

Maskinvara

Även om en mikroprocessor är mycket tillförlitlig, finns det ett antal faktorer som kan vara relevanta

  • Flygplan flyger vid hög höjd där atmosfären ger mindre skydd mot kosmiska strålar . Detta påverkar inte bara besättningshälsa men har potential att interfere med elektroniska enheter .
  • Avionicsystem består av mer än bara mikroprocessorer, det finns säkert andra, mer felaktiga enheter, som kondensatorer. Det finns otaliga sätt att elektronik kan misslyckas, t.ex. vibrationsinducerat fel vid jordning som leder till störningar på datalinjer (t ex från analoga sensorer).

I've never heard of microprocessors suddenly failing.

Tillförlitlighet ≠ Säkerhet

  • Many accidents occur without any component “failure”
    • Caused by equipment operation outside parameters and time limits upon which reliability analyses are based.
    • Caused by interactions of components all operating according to specification.
    • Highly reliable components are not necessarily safe

Från Nancy Leveson, MIT , via UCSD

    
svaret ges 25.03.2015 10:17
11

Jag vet att den här frågan redan har fått en handfull svar, men ingen av dem tycks ta upp frågan om varför det finns tre system i den redundanta uppsättningen, i stället för bara två.

Först och främst, som påpekades av Simon , Jan Hudec och RedGrittyBrick , är mönstren inte identiska alls. Faktum är att de ofta är helt annorlunda av mycket bra skäl: sannolikheten för att ett givet problem kommer att påverka alla överflödiga system och särskilt påverkar alla överflödiga system på samma sätt från "liten" till "fullständigt miniscule som gränsar till obefintlig". Jämför Hur olika är överflödiga flygkontrolldatorer?

För det andra varför finns det tre system i varje redundant setup. När allt fungerar bra och flygplanet är i stadig flygning, för något värde och vissa givna uppsättningar av ingångar, rapporterar alla system att en korrigering av 0 (av vilken enhet som helst) behövs. Vid denna tidpunkt finns det inga problem, och datorerna tjänar bara för att behålla nuvarande tillstånd. Nu misslyckas ett av komponentsystemen att göra jobbet ordentligt av någon anledning, och börjar rapportera att en korrigering av +50 enheter krävs. Det vill säga, uppsättningen svar förändras från [0,0,0] till [0,0, + 50]. Två system är överens och den tredje rapporterar något annat, så vi kan sannolikt säkert ignorera outlieren och gå med de två systemen som rapporterar samma: behandla resultatet som [0,0, felaktigt] och ignorera det felaktiga resultatet när du loggar tekniska detaljer och visar någon form av framstående varning om att systemen måste ses över ASAP. Men vad händer om vi bara hade två system för att börja med, och en av de två misslyckas på samma sätt? Den nödvändiga korrigeringen som krävs är från [0,0] till [0, + 50]. Snabb nu: vilket värde är korrekt? Ska du behålla staten eller korrigera med +50?

Vid den punkten är det finns inget sätt att veta om korrigering med 0 eller +50 är rätt handlingsåtgärd. Du kan ta ett medelvärde, men att använda ett genomsnitt på två siffror (varav en är sannolikt felaktig) kan faktiskt sämre än värdet av sig själv.

Genom att lägga till ett tredje system till den redundanta uppsättningen lägger du till en slitsbrytare för situationen där det finns ett funktionsfel. Endast om två av de tre systemen börjar fungera på samma gång har du ett verkligt problem och om flygplanet har sådana problem att två av tre redundanta system ger felaktiga utgångar så har du troligen några allvarliga problem att börja med .

    
svaret ges 25.03.2015 13:51
5

De flesta svaren har vridit sig kring potentialen för fel på datorer och saker av den typen. Medan allt som är sant, har ingen nämnt vad datorerna faktiskt tittar på.

Låt oss säga att du är på väg, gör dig redo att göra en CAT III-bil, och du har bara två datorsystem. Båda datorsystemen jämför radiotelefonens # 1 och # 2-system. Endast det är ett fel i ett av radiomätare system som orsakar en motsättning av något godtyckligt värde som inte ligger inom gränserna.

Hur vet datorn vilken som är fel? En dator tittar på radiohöjdmätarsystemet # 1 och ser 500 ft. Den andra tittar på system nr 2 och ser 1000 ft. Vilken är rätt och vilken är fel? Hur kan datorn eventuellt göra det beslutet?

Ange den tredje datorn. Om värdet av vad det ser är commiserate med det av någon av de andra två datorerna, kan det effektivt "rösta" den ogiltiga behandlingen "utanför ön".

Jag bör observera att de flesta av dessa datorer har någonstans mellan två och fyra processorer, alla jämför sina egna resultat. Det är den interna redundansen för att undvika hårdvarufel, men att ha många kors jämförelser av externa system är i stor utsträckning anledningen till att ett tredje system finns.

Obs! Som en A & P-mekaniker, 9 gånger av 10 är det ett av de externa systemen som misslyckats (radiohöjdmätare, MMR / ILS miscompare etc ...) som orsakar en försämring av funktionerna - INTE själva datorn .

    
svaret ges 05.06.2017 10:56
4

Datorer misslyckas spontant hela tiden. Du är inte van vid det eftersom du inte har använt många datorer. Men överväga någon som Google, som driver massiva datacenter som innehåller tusentals datorer. Programvaran som körs Google är utformad kring det uttryckliga antagandet att datorer misslyckas eftersom det händer flera gånger per dag. Nu innehåller ett flygplan inte mycket datorer, men de som innehåller den är säkerhetskritiska. Så de dupliceras för att se till att deras misslyckande inte orsakar ett problem.

    
svaret ges 25.03.2015 09:39
2

Om vi tittar på detta från en strikt teknisk synpunkt, har mikroprocessorer som någonting en livstidscykel. Generellt sett är det väldigt länge, och den dator som du skickar ut detta kommer sannolikt att vara daterad länge innan den träffar är cykeltid. Även om en mikroprocessor inte har några rörliga delar tar det ingång från olika sensorer. Jag kan bara anta att ingångarna är smält på något sätt, men det betyder inte att en spikar helt elimineras och isoleras om de uppstår. För vad det är värt, kommer även relativt små överskott att steka en mikroprocessor. Med detta i åtanke, att fel på försiktighetssidan används flera system. Med den ständigt krympande storleken på teknik har det blivit enklare och billigare att bära ett reserv, så ur en säljposition är freden i sinnet där. Återigen är det bättre att ha det och inte använda det än att inte ha det när du behöver det.

För att direkt ta upp din fråga har jag länge varit kring mikroprocessorer, mikrokontroller och liknande. På den tiden har jag kanske haft två eller tre misslyckas spontant, vanligtvis relaterad till värme. I ett plan ser det inte ut som ett problem men faktiskt extrem kyla kan orsaka problem samt extrem värme när det gäller elektronik. Med detta sagt har jag rostat otaliga enheter genom att slå dem med överbelastade ingångar. Låt oss säga att ditt flyg slogs av belysning (jag vet att moderna flygbolag är skyddade mot detta) men för argumentets skull låt oss säga att en mark var dålig: det här skulle lätt rosta en enhet.

Sidnot: Det är vanligare att minneskretsar / -drifter misslyckas i dessa dagar. Det här är något du kanske aldrig vet eftersom de flesta moderna datorer kan hantera dött minne om det är på disken eller i systemminnet.

    
svaret ges 25.03.2015 01:36
2

På specifika redundans är installationsmiljön av dessa system förmodligen den största faktorn. Inte bara är många system hopfällda nära varandra i trånga utrymmen, men luftflödet är ofta mycket begränsat däri. Värme är en stor förstörare av många mikroprocessorer. Flygplan vibrerar också mycket, på grund av snurrande motorer, turbulens i flyg och helt enkelt landning. Dåliga lödförband och sub-par-krympningsjobb eller en lös kopplingsbackshell, och du har en dålig anslutning, eller värre, en intermittent .

På redundans i allmänhet, om du upplever en BSOD på jobbet, är det relativt sakligt. Du kanske har tappat bort dokumentet du arbetade med, men det handlar om det. Om flygplanssystemen går ut har du ett verkligt problem. Det är svårt att uppnå, men redundansen är där för att hundratals människors liv är beroende av det.

    
svaret ges 25.03.2015 13:51
2

Chansen att processorn misslyckas är mycket låg, men inte noll. När processorn misslyckas, vad händer under övergångstiden mellan fel och full funktionalitet efter omstart? Med en sällsynt händelse som denna, kan vi någonsin bygga upp tillräckligt med erfarenhet för att vara säker på att vi har testat under alla omständigheter? Vi pratar om < $ 10 ^ {- 9} $ tal här.

Backups är benägna att dölja fel. Säkerhetskopieringen används normalt inte och slås bara på när det behövs - men har något rostigt eller har en funkig mögel inbäddat i en bekväm varmpunkt och orsakar en kort vid aktivering? Murphy stöter fortfarande på rymdapplikationer. Backupen kan testas före start, men vad händer om det skakar loss och misslyckas huvudprocessorn? Chanserna är smala, men alla större olyckor är idag orsakade av osannolika strängar av händelser som detta.

Redundans är användbar eftersom det kontinuerligt visar att de viktigaste enheterna fungerar som de ska, och används för flygkritiska omständigheter. Back-up-system kan användas om du kan göra det utan huvudenheten, eller om det är garanterat att säkerhetskopieringen alltid kommer att fungera, som manuell aktivering av flygkontrollerna.

En autopilot i kryssning är inte flykritisk och kan kopplas från utan grav konsekvenser. I en CAT III landning där landningsbanan endast kan observeras när du kör på den är de absolut nödvändiga. Du vill inte att autopiloten ska koppla loss 10 meter över banan, ingen synlighet, gusty sidvind - det finns ingen tid att koppla in backupen.

    
svaret ges 05.06.2017 06:42
1

If a microprocessor is overheated or overloaded and spontaneously fails, I would expect it to stop doing anything and produce no output.

Har du någonsin överklockat en CPU, eller tittat på en gammal maskinvara? Du kan få alla sorters konstiga saker medan cpu fortfarande körs.

    
svaret ges 25.03.2015 23:24
1

I ett flygplan är säkerheten viktigare än någon annan faktor (efter det kommer optimal vikt för bränsleeffektivitet och den totala kostnaden är tredje). Om flygplanet inte skulle vara säkert skulle inte tillräckligt många människor flyga och flygbranschen skulle kollapsa. Därför finns det FAA-regler, och det är därför det finns så många regler för flygbolagen. (Flygplatsens säkerhetskontroll är ett annat ämne, relaterat till nationell / politisk säkerhet med invandring mm, så när vi säger "säkerhet" på flygplanet menar jag ingenjörskonst)

Kritiska system ombord (dvs. system som är krävs för att flyga flygplanet) behöver redundans. Liksom brännaren i jetmotorn har 2 tändare, även om man är tillräckligt. Även om en motor misslyckas kan den andra motorn flyga flygplanet, och datorn kommer att kompensera för obalansen i vänster / höger kraft. Många system i flygplanet är beroende av datorn, så det behöver ha en "plan b" (redundans är en av "plan b").

    
svaret ges 08.04.2015 21:24
-1

Eftersom teorin är bra är realiteten att inte alla datorkomponenter är lika.

Ett specifikt exempel från början av 90-talet: Intel producerade 486/33 CPU (det var ganska skäre och snabbt snabbt för dagen). De flesta lämnade fabriken bra, men vissa hade en esoterisk bugg i FPU som skulle ge upphov till felaktiga svar. Dagens tidningar fylldes med beräkningar du kunde lägga in i ditt kalkylblad som skulle producera X om din CPU var bra, eller Y om den hade felet.

Om ditt plan råkar vara igång med en av de felaktiga CPU: erna i den, och just den rätta uppsättningen data råkar hämtas och matas in i något av flygkontrollprogrammen och går in i denna FPU-bugg, blir du glad att de andra två CPU: erna beräknade det korrekta värdet och sparkade utjämningsenheten en ur slingan.

    
svaret ges 25.03.2015 06:37