Hoofdcategorieën
Device Settings

Problemen Mars Rover Spirit uitgelegd

Door Hielko van der Hoorn, zondag 22 februari 2004 13:50
Bron: EE Times, submitter: Bigs, views: 20.134

Bij de EE Times is een artikel verschenen waarin wordt uitgelegd waarom eind vorige maand het contact verloren werd met de Mars Rover en wat de NASA gedaan heeft om het probleem op te lossen. Kort samengevat was de oorzaak van de crash een gebrek aan geheugen. De rover is in totaal uitgerust met 128MB RAM-geheugen en 256MB flashgeheugen. Van de 256MB flashgeheugen wordt circa 230MB gebruikt om databestanden, zoals foto's, op te slaan om verstuurd te worden naar aarde. Foto's en dergelijke blijven bewaard in het geheugen totdat er van aarde signaal komt dat het bestand succesvol ontvangen is. Deze beveiliging tegen gegevensverlies en een brakke afhandeling van geheugenallocatiefouten werden de Mars Rover bijna fataal.

Nasa logoAl vlak na de lancering van de Spirit werd het besturingssysteem geüpgrade naar een nieuwe versie. Het resultaat was dat er verschillende bestanden in het flashgeheugen achterbleven die niet meer nodig waren. Op de vijftiende dag op Mars werden er een tweetal programmaatjes naar de Spirit verstuurd om deze troep op te ruimen. Eén van deze twee programmaatjes werd echter niet succesvol ontvangen waardoor er bestanden bleven staan. Hier werd geen rekening mee gehouden door de berekeningen van NASA's data management team, waardoor een paar dagen later door de Spirit geprobeerd werd om meer geheugen te gebruiken dan er aanwezig was.

Het gevolg was een Mars Rover die geen signalen meer uitzond en slechts in een loop bezig was met rebooten. Gelukkig luisterde de Spirit nog wel naar commando's waardoor het team van de NASA in staat was om op de gok een serie low level commando's te versturen om een flink aantal bestanden te verwijderen. Vervolgens kon het bestandsysteem weer gemount worden en zonder problemen gebruikt worden na het draaien van een checkdisk programma. Om dergelijke problemen in de toekomst te voorkomen wordt door de NASA gewerkt aan een betere afhandeling van geheugenfouten.

Mars rover
Volgende 16:27 Intel laat IEEE voorlopig links liggen bij draadloos USB
Vorige 12:41 Supercomputer van IBM binnenkort naar Nederland
Advertentie

Reacties

«  1  2  3  4  5  »

Er is een miljard dollar in dat ding gestopt. En dan zit er 'maar' 384MB aan geheugen in :?.

Allereerst werd de Rover natuurlijk al jaren en jaren geleden gebouwd en toen was 384MB alles behalve weinig. Daarnaast moet er wel rekening mee gehouden worden dat geheugen gebakken op kleinere productieprocede's (en dus meer capaciteit) gevoeliger zijn voor straling enzo wat een reeel probleem is in space.

Ik weet niet of dit echt een argument is. Men kan schijnbaar wel vlak voor de lancering de gehele software upgraden (zonder het fatsoenlijk te testen!) maar niet een flashkaartje bijprikken?

Ik kan me niet voorstellen dat ze het niet door en door getest hebben.
Over het algemeen woordt de door nasa geschreven code voor dit soort dingen gezien als een van de zuiverste en beste.

Het probleem zat m ook niet in het feit dat er niet getest was, maar dat er een paar files overbodig waren geworden die niet verwijderd waren.
Ze kunnen nou eenmaal geen volledige installer omhoog sturen ;)

ff bijprikken is geen optie op een custom build robot, deze robot is gebouwd op 384 mb. de kosten om alles te vervangen en zodoende meer geheugen te krijgen zijn gewoon te hoog. reken maar uit: nieuw (custom build)moederbord, aangepaste software, aangepaste (custom build?)bios en extra(custom build?) geheugen en dan heb ik waarschijnlijk ook nog enkele dingen over het hoofd gezien

Reactie op brainball:

Moesten ze bij de NASA echt zeer goed en nauwkeurig getest hebben, dan snap ik niet waarom ze een half mislukte upload zomaar over het hoofd zien.

In principe stel je bij dergelijke voorbereidingen en testen verschillende scenario's voor wat er mogelijk allemaal kan mis gaan. Een half mislukte upload zou daar zeer zeker in thuis horen vind ik persoonlijk.

Op het moment van lanceren was de software nog niet eens af. Dit hebben ze gewoon als firmware update verstuurt vlak voordat hij moest landen.

Op dat moment de geheugen modules vervangen gaat een beetje lastig ;).

Daarnaast gaat het hier om een embedded systeem. Er draait geen fullblown windows achtig operating system op. Het gebruikte geheugen is daarnaast ook niet hetgeen je om de hoek bij de pcboer koopt. Het moet bestand zijn tegen de hoge radioactiviteit en enorme temperatuur verschillen die er in de ruimte heersen.

Het is natuurlijk geen consumenten flashkaartje wat je er even bij prikt.

Dit flash moet aan space kwalificaties voldoen, dat is dus iets anders dan 0-55 graden celcius waarop consumenten elektronica is gespecificeerd.

'Geen fullblown operating system'?!? Juist wel! Het is alleen niet bloated: het zou wel ERG onzinnig zijn om er een GUI om heen te hangen.
Die dingen draaien een commercieel OS hoor, VxWorks. Hier kan je meer vinden: http://www.windriver.com/. Dat OS wordt ook voor medische applicaties e.d. gebruikt. 'niet fullblown....' ......voordat ze in Redmond zover zijn als bij Windriver zijn we nog heel wat jaren verder hoor!

Dat is wel speciaal geheugen dat beschermd is tegen straling.

En dit betekent, 10mm Aluminium errond of zoiets, om de geladen deeltjes uit de zonnewind tegen te houden (= protonen, electronen en nog wat ionen aan 500-800km/s, dit kan wel tellen dus). Het geheugen moet er echt niet voor aangepast worden, en zo heb je tegelijk een mooie koelblok eraan om te ocen :9~
http://www.oma.be/BIRA-IASB/Public/Research/Belts/Particles1.nl.html

Leuk en aardig, maar dat had dan prima een module van 512 of zelfs 1024 MB kunnen zijn. Met zon budget kan je alles op maat laten maken, zelfs 'jaren later' ..

Trouwens,
Eén van deze twee programmaatjes werd echter niet succesvol ontvangen waardoor er bestanden bleven staan
Ik dacht dat er 'geen bit verloren' was gegaan binnen het eerste interplanetaire netwerk, zoals ons onlangs hier werd bericht..

En waaraan moet die warmte worden afgestaan ?
Het is sowieso behoorlijk koud daar, koeling is vanzelf al aanwezig.

Reactie op Strijder:

Koud, maar ook wel warm en bij hoge straling. De temperatuur op Mars (afhankelijk van welk gebied) kan dacht ik iets van 150 graden tussen dag en nacht varieren (ik dacht dat het was +40gr C en -110 gr C). Kan dus beide kanten opgaan...

Koeling gaat door lucht, en die is er in de ruimte niet dus....

@ Crash, misschien mierenneukerij, maar je bedoelt dat vaccuum niet geleid. Koeling is niets meer of minder dan warmte afvoeren, en dat kan op verschillende manieren. Lucht wordt vaak gebruikt, maar ook water, stikstof. Tweakers zouden dat toch moeten weten.

De temperatuur op Mars is niet eens zo belangrijk, het is de temperatuur onderweg. Daar is het 4 Kelvin (vlakbij het absolute nulpunt dus). Bovendien kunnen er onderweg enorme bombardementen met röntgenstraling plaatsvinden, iets waar elektronische circuits (en ook mensen) slecht tegen kunnen.

Dat betekent dat de ontwerpspecificaties bijzonder streng zijn. Ook al kost een flashkaartje nauwelijks geld, om te testen of zo'n ding aan de specificaties voldoet ben je miljoenen euro en maanden testwerk kwijt. 'Effe' upgraden is er dus niet bij.

hmm, volgens mij klopt dat niet. Er bestaat altijd nog zoiets als stralingswarmte. Als ik me niet vergis is er in de ruimte sprake van enorme variaties, welke bepaald worden door de hoeveelheid zonlicht (straling) waar je 'in' zit.

4 Kelvin zal best voorkomen, maar zal niet de constante temperatuur zijn.

Een giga zou waarschijnlijk teveel stroom trekken, vergeet niet dat het ding moet draaien van wat zonneënergie.
Verder zou het ook kunnen dat men aan het project begonnen is toen 384MB aan geheugen nog ontzettend veel was }:O. Vergeet niet dat de NASA nog altijd 286s gebruikt in zijn spaceshuttles, omdat de laatste ontwerpwijziging kennelijk in de tijd van deze proc gebeurd was...
Het was eig idd wel wat onvoorzienig om zo'n kleine marge te laten in zijn geheugen, in het vervolg zullen ze toch moeten rekening houden met het feit dat wanneer er zo'n zaken optreden (overbodige files) dat ze dus niet al het geheugen functionneel kunnen inzetten.

Je moet op mars rekenen dat een zonnecel ongeveer 0.7 watt levert, als je ziet hoeveel cellen ze hebben is er wel een wattje of 100 zeker aanwezig.
Ik denk niet dat een GB aan flash dusdanig meer stroom trekt dat er problemen optreden.
Wat wel een feit is is dat die dingen zo minimalistisch als mogelijk ontworpen worden om elke gram massa te sparen.
Als je denkt uit te kunnen met 384MB is er geen reden om er 1GB in te stoppen. Dat maakt het alleen maar lastiger om je schijf op te ruimen.

komt nog bij dat flash geheugen geen stroom trekt als er geen read/write operaties op worden losgelaten :)

Vergeet niet dat de NASA nog altijd 286s gebruikt in zijn spaceshuttles
Waren dat geen 8086 processors?

http://www.tweakers.net/nieuws/21786/?highlight=8086

Er is een miljard dollar in dat ding gestopt. En dan zit er 'maar' 384MB aan geheugen in
Het hoe wat en waarom, zie hieronder.

Plok schreef:
Probleem is dus dat de componenten in de ruimte stralingshard moeten zijn. Moderne componenten zijn dat in de regel niet, zodat de kans groot is dat componenten gaan sneuvelen. Vrijwel alle microprocessoren die in zogenaamde space qualified hardware zit is daarom ook een electronica die je bij je electronicaboer op de hoek kan kopen, maar is militair spul. Er zijn maar een beperkt aantal fabrikanten die productielijnen hebben hiervoor. Op dit moment loopt er dus een project om een 486 achtige processor door de qualificatie heen te slepen.
Ook geheugen is dus een probleem in de ruimte. Of je hebt zware (dus dure) afscherming nodig, of je neemt speciaal geheugen (wat dus meestal vrij klein is). Processoren in satellieten bijvoorbeeld draaien meesal op 16 tot 40 MHz en hebben meestal niet meer dan 64 of 128 kB aan geheugen. Meer komt soms wel voor, maar het gevolg is meestal dat een paar keer per maand zogenaamde bit-flips gedetecteerd worden. Hier kan weer voor worden gecorrigeerd, maar met ennige regelmaat komen zelfs dubbele flips voor, waardoor instrumenten voor de zekerheid maar gereboot worden.

Military/Aerospace-elektronica is goedgekeurde elektronica. (lees: chips die een burnin-test krijgen van 24 uur) Door de burn-in-test weet men zeker dat een stuk elektronica probleemloos werkt.

De commerciële elektronica (die wij gebruiken) is bijna alleen op productie gericht en als er een kapotte stuk elektronica tussen zit, dan verwachten ze die in de RMA-afdeling. Military/Aerospace kan niet op de RMA wachten...

Bovendien kan je niet een stuk Military/Aerospace-elektronica kopen bij je elektronicaboer, want de klant bepaalt meestal zelf de omstandigheden waaronder een stuk elektronica probleemloos moet werken.

Military/Aerospace-uitvoering van een stuk commercieel elektronica kost minstens paar keren meer, testen/keuren kost tijd en geld.

Als je straling op geheugenchips zet, dan kunnen er paar bits verkeerd staan wegens straling en hoe kleiner de productieproces (nanometers), hoe meer problemen. En als er paar bits verkeerd staan, dan kan er veel misgaan.

Aan de ene kant probeer men de straling zoveel mogelijk buitenhouden (bv lood houdt per millimeter de meeste straling tegen, maar veel te zwaar voor in de ruimte, loden platen worden wel gebruikt in kerncentrales).

Aan de andere kant test men elektronica op stralingsgevoeligheid.

Meestal wordt Military/Aerospace-elektronica 2- of 3-dubbel gemaakt, zodat als er iets kapot gaat, dat er nog genoeg hotspares zijn die ervoor zorgen dat het nog probleemloos werkt.

Onderdelen gemaakt voor militaire doeleinden, of beter gezegd, geproduceerd volgens militaire specificaties, zijn voor een belangrijk deel zo duur vanwege het produktieproces. Alles, maar dan ook echt alles moet volgens speciaal gedefinieerde regels uitgevoerd worden ("mil-specs"). Tevens moet elke sample ook precies aan allerlei strenge regels en specificaties voldoen, voor, tijdens en na elke stap in het productieproces.

Er komt wel "net iets meer" bij te pas dan enkel een 24u burnin test hoor. Bij moderne ontwerpen moet dit vanaf design-niveau worden voorzien omdat de componenten te klein worden, waardoor bij een impact van een ioon (dat meer dan 100m beton kan penetreren met de snelheid die die halen in space) meerdere bits zouden kunnen corrupten, of zelfs in het logische circuit iets kunnen wijzigen waardoor een berekening een fout resultaat geeft (wat rampzalige en dure gevolgen kan hebben in de ruimte :)) Bij de oudere ontwerpen kon men - door de grootte - door een specifieke (en dure) productietechniek te gebruiken dit bekomen met slechts kleine wijzigingen aan het ontwerp. Bij nieuwe productietechnieken echter - om hogere (en benodigde) snelheden te halen is dit echter niet meer mogelijk. Dit weekend hier nog een interessante presentatie over gezien op fosdem...

De redenen dat er trouwens maar zo weinig geheugen opzit zijn:
- Full-tolerance military compliance
- stroomverbruik - elke milliwatt meer is er eentje teveel
- gewicht - meer chips = meer gewicht, meer stroomverbruik = meer gewicht voor stroombron
- fout tolerantie: meer componenten, meer kans dat er iets kapotgaat waardoor er enkele miljarden de ruimte zijn ingeschoten die ze dan beter gewoon aan mij hadden gegeven :+

"Mission Control to Mars Rover, we need you to Check Disk"

Jammer dat ze niet vermelden van welk Operating System er gebruikt word gemaakt.

Als je het artikel van de EE Times leest dan zie je dat er gebruikt gemaakt wordt van Wind River Systems' Vx-Works version 5.3.1 real time OS.

Vast niet "You will be assimilated'" Windows CE }>

Wat zou er eigenlijk draaien op die schroothoop? RoverOS, een soort custom embedded linux ofzo? Of nog veel meer custom?

zo weinig intern geheugen maar

euhm, ik weet niet wat jij gewend bent, maar op simpele os-en (en niet windows meuk of iets dergelijks...) heb je aan 128mb werkgeheugen MEER dan genoeg.

256mb flash is aan de krappe kant (vanwege foto's en geografische meuk), maar ook nog steeds goed mogelijk

Programmeurs zijn ook mensen. Leuk dat ze bij een bedrijf als Nasa 'gewoon' problemen hebben met geheugen allocatie.
Zelf zie ik dat ook regelmatig, dat programmatuur bij klanten vaak draait op het niet goed gebuiken van memory resources.

Zo zie je maar weer; computer-problemen zijn overal in het heelal van dezelfde aard. :)
Zo'n ding heeft trouwens minder geheugen dan ik dacht. Is toch best wel weinig 256+128mb

heb nog wel wat geheugen liggen... toch maar doneren aan de NASA ;)

iemand het adres?

Ik heb nog een reepje 512 MB liggen, waar kan ik het naartoe sturen ? :P arme stakkers

Denk erbij na dat het gehuegen moet werken onder 'extreme' omstandigheden. In de ruimte heerst bijna het absolute nul punt (0 Kelvin, -273 graden). Ene wanneer de marslander door de atmosfeer gaat komen weer extreme hittes voor. Een reepje van 512 MB zal het wel niet overleven.
:7

0 Kelvin? Nou, dan hebben ze in ieder geval geen koelingsproblemen :)

Jawel, want er is niets om je warmte aan kwijt te kunnen! Er is geen lucht om de warmte af te voeren. De enige manier is om het als stralingswarmte af te stoten.

ik had eens ergens gezien\gelezend dat het in de ruimte 4 kelvin was, de laatste restjes van de oerknal.

het reepje dat ik wil doneren heeft mijn 'ex' overleefd, dus de ruimte zal dan geen probleem meer zijn

tis maar wat je extreem noemt ;)

Vergeet ook de prettige straling waar alle objecten in de ruimte aan blootgesteld worden niet... Het is echt geen geheugen wat je in de pricewatch kan terugvinden.

Ik heb trouwens begrepen dat die karretjes als CPU een speciale radiation-hardened PowerPC-chip hebben. Even zoeken...

gevonden: http://www.macdailynews.com/comments.php?id=P1907_0_1_0
The computer in each Mars Exploration Rover runs with a 32-bit Rad 6000 microporcessor, a radiation-hardened version of the PowerPC chip used in some models of Macintosh computers, operating at a speed of 20 million instructions per second. Onboard memory includes 128 megabytes of random access memory, augmented by 256 megabytes of flash memory and smaller amounts of non-volatile memory, which allows the system to retain data even without power.

Hmm.. volgens mij is de R6000 toch echt een MIPS chip. PowerPC modelnummers zijn heel anders.

Het is niet R6000 maar RAD6000!

De MARS Rover gebruikt een PowerPC gebaseerde processor:

http://www.iews.na.baesystems.com/business/04_news/009-2004.htm
We are proud to be part of the NASA's Jet Propulsion Laboratory (JPL) Rover program," said Vic Scuderi, manager, space products, BAE Systems Information and Electronic Warfare Systems (IEWS) unit. "This has been a tremendous team effort and we are honored that JPL selected the RAD6000 as their single spacecraft computer on-board the Rovers.
The RAD6000 is a high-performance 32-bit Reduced Instruction Set Computer (RISC) that operates in the heavily radiated space environment and is based on the IBM PowerPC architecture. The RAD6000 is one of a family of radiation-hardened protected computers developed and produced by BAE Systems with the support of NASA's JPL and the U.S. Air Force Research Laboratory.
«  1  2  3  4  5  »

Op dit item kan niet meer gereageerd worden.

Volgende 16:27 Intel laat IEEE voorlopig links liggen bij draadloos USB
Vorige 12:41 Supercomputer van IBM binnenkort naar Nederland
VNU Media logo Hosted by True

© 1998 - 2012 Tweakers.net B.V. - Alle rechten voorbehouden - Contact - Jouw privacy - Algemene Voorwaarden

Uitgever van:

Website van het jaar 2011