Ausgelöst durch die Kommentare zu dieser Antwort , wie viele Speicherbänke hat Opportunity? Ich interessiere mich besonders für den Flash-Speicher, aber auch andere Informationen sind willkommen.
Laut dieser JPL-Pressemitteilung hat das Reparieren von Speicherbank 7 Opportunity mit 6 nutzbaren Bänken belassen.
Das Team erhielt am 20. März die Bestätigung von Mars, dass die Neuformatierung erfolgreich abgeschlossen wurde. Der Rover wechselte Anfang dieses Monats zu einer aktualisierten Software , die die Verwendung einer der sieben Bänke des integrierten Flash-Speichers vermeidet. Einige der Flash-Speicherprobleme, die das Team Ende 2014 dazu veranlassten, einen No-Flash-Betriebsmodus einzuführen, wurden auf Bank 7 zurückgeführt. Die verbleibenden sechs Bänke bieten mehr nichtflüchtige Speicherkapazität, als der Rover bis auf wenige Tage seither verwendet hat Landung auf dem Mars im Januar 2004 .
Aber jedem Informatiker erscheint das etwas verdächtig:
Es kann durchaus sein, dass sie Bank 0 aus technischen Gründen übersprungen haben oder dass sie auf eine bestimmte Verwendung beschränkt ist, sodass sie sich normalerweise nicht darauf verlassen können, aber alles deutet darauf hin, dass jemand bei PR einen verständlichen Fehler gemacht hat.
Wie im Bild unten gezeigt, gibt es 8 Flash-Bänke, von denen 7 Bänke als Datenspeicher verwendet werden und Bank 0 für Flugsoftware (FSW) und Entry, Descent and Landing (EDL) verwendet wird.
Quelle: R. Sosland, M. Seibert, E. Ferguson, R. Steele und K. Zittle, „Getting back on the road: Reformatting Flash memory on-board the Mars Exploration Rover Opportunity“, 2015 IEEE Aerospace Conference, Big Sky, MT, 2015, S. 1-12. doi: 10.1109/AERO.2015.7119257
Glenn Reeves spricht über die Fehlerbehebung des Flash-Problems und erwähnt insbesondere ein 224-MB-Flash-Dateisystem. Bei 7x32 MB sieht das tatsächlich so aus, als wären es 7 Bänke.
In einer wissenschaftlicheren Arbeit bestätigt er die dem Dateisystem zugewiesenen 224 MB.
Ich kann mir vorstellen, dass die 8. Flash-Bank die Spirit-Firmware enthält, kein Dateisystem. Spirit hat >30 MB Code, und das muss irgendwo gespeichert werden. Eine alternative Erklärung wäre, dass die letzten 32 MB für Wear Levelling verwendet werden.
Dies ist ein umfassenderer Blick auf die Computerhardware von Opportunity und ihre Funktionsweise , da ich eine Reihe dieser Quellen gefunden hatte, bevor @wooooooooosh die richtige Antwort veröffentlichte. Scheint eine Schande, es nicht irgendwo zu posten.
Ein früherer Artikel ( https://www.jpl.nasa.gov/news/news.php?feature=4406 ) sagt auch 7:
Die Vorfälle, bei denen der Flash-Speicher von Opportunity keine Daten zur Speicherung akzeptierte, traten nur in einer der sieben Bänke von Flash-Mikrochip-Schaltkreisen an Bord auf .
Dies stimmt mit dem Satz „ eine der sieben Bänke des Onboard-Flash-Speichers “ im zitierten Artikel überein. Leider stellt sich heraus, dass dies eine falsche Darstellung ist . Die erste Bank (Bank 0) ist nicht Teil des 7 x 32 MB großen Dateisystems, das zum Speichern wissenschaftlicher Daten verwendet wird, aber sie existiert und ist auch NAND-Flash.
Wahrscheinlich denken sie separat darüber nach, weil sie die Firmware (~ 30 MiB) enthält: den Programmcode, der auf der CPU ausgeführt wird, und die Daten, die er benötigt. Bank 0 als schreibgeschützt zu belassen (außer für Firmware-Updates) bedeutet, dass es sehr unwahrscheinlich ist, dass diese Flash-Chips durch zu viele Schreibzyklen abgenutzt werden. Schlechte Bits oder andere Fehler in Bank 0 aus anderen Gründen könnten möglicherweise durch Booten von einer anderen Bank behoben werden, wenn das System weit genug booten kann, um aus der Ferne neu programmiert zu werden und den Bootloader zu aktualisieren.
NAND-Flash kann nur in großen Blöcken gelesen werden (z. B. 512 oder 4096 Byte). Ich kenne die Seitengröße des in Spirit / Opportunity verwendeten Flash nicht, aber laut einer Quelle verwenden sie von AMD hergestellte Flash-Chips.
Die HW von Spirit ist ähnlich, aber nicht identisch mit der von Opportunity. Ich konnte diese Details über ihre Hardware ausgraben, die meisten davon konsistent :
EETimes: Flash-Memory-Snafu lähmt den Mars-Rover Spirit, sagt die NASA :
Die beiden Mars-Rover bestehen aus einem Einplatinencomputer namens RAD6000, der Berichten zufolge von BAE Systems in Manassas, Virginia, gebaut wird. Der Mikroprozessor auf dem System ist ein älteres 25-MHz-Teil, das auf der PowerPC-Familie von IBM Corp. basiert. Es ist ein strahlungsgeschütztes Gerät.
Das RAD6000 verwendet keine Festplatte zum Speichern. Stattdessen werden die Daten in einem 128-MB-Speicher mit wahlfreiem Zugriff gespeichert, obwohl unklar ist, welcher Anbieter diese Teile liefert. Auf dem Computer läuft ein Echtzeitbetriebssystem von Wind River Systems Inc.
[... auch kundenspezifisches Intersil-Silizium und Xilinx-FPGAs in Motorsteuerungen usw.]
Sowohl Opportunity als auch Spirit werden von einem strahlungsfesten 20-MHz-BAE-RAD6000-Computer mit 128 MB RAM, 3 MB EEPROM (Firmware) und 256 MB NAND-Flash betrieben . Das Betriebssystem (VxWorks) und kritische Subroutinen werden im nichtflüchtigen EEPROM gespeichert , während der Flash-Speicher zum Speichern weniger wichtiger Daten verwendet wird – hauptsächlich erfasster Bilder und anderer wissenschaftlicher Daten – während er auf den Upload zum NASA-Hauptquartier über Mars Global wartet Surveyor Orbiter oder das erdbasierte Deep Space Network. Curiosity hat übrigens ein praktisch identisches Setup – aber es verwendet eine schnellere CPU (132 MHz) und hat viel mehr RAM und Flash. Curiosity hat auch einen identischen ausfallsicheren Backup-Computer, der bei Auftreten eines Fehlers hinzugeschaltet werden kann – die früheren Rover haben nur einen einzigen Computer.
Bestätigt, dass es NAND-Flash hat. Und dass das Betriebssystem VxWorks von Wind River ist .
(Eine andere Quelle sagte, dass Spirit kein EEPROM hat.) Der Artikel enthält ein Bild eines BAE-Einplatinencomputers, ähnlich dem in Opportunity.
Tom's IT Pro: NASA hat eine SSD neu formatiert ... auf dem Mars!
... wobei der Schuldige höchstwahrscheinlich tote NAND-Flash- Zellen sind ...
Eine weitere Bestätigung für die Verwendung von NAND-Flash im Gegensatz zu Byte-adressierbarem NOR-Flash, das eine Ausführung aus dem Flash ermöglichen würde. Wir wissen also, dass es beim Booten Code von NAND in RAM kopieren muss.
Opportunity enthält 8 Speicherbänke mit 4 Modulen in jeder Bank und vier Flash-Chips in jedem Modul für insgesamt 256 MB Speicher, hergestellt von AMD . Der Rover enthält außerdem 128 MB RAM, 3 MB EEPROM und läuft auf einer 20-MHz-CPU.
ITworld: Der Tag, an dem ein Softwarefehler den Rover Spirit fast getötet hätte
Spirit führte eine zusammengehackte Software aus, die das DOS-Dateisystem (FAT16, schätze ich?) im RAM spiegelte, was fehlschlug, als das FS größer als die RAM-Kapazität war.
ein Konstruktionsfehler der DOS-Bibliothek, ein Fehler in Software von Drittanbietern und mehrere Konfigurationsfehler
Autsch. Vermutlich verwendet auch Opportunity FAT16 als Flash-Dateisystem.
Die RAD6000 -CPUs verfügen über 8 KB einheitlichen L1-Cache. Der PowerPC 601, auf dem es basiert, verwendet ebenfalls einen einheitlichen Cache, nicht geteilte Befehls-/Daten-Caches wie die meisten CPU-Designs.
Einige frühere Vermutungen wären unwahrscheinliche oder unmögliche Designs gewesen :
Jetzt wissen wir, dass Bank 0 etwas Besonderes ist.
Bevor wir das wussten, gab es Spekulationen, dass es als Parität für die anderen 7 Banken verwendet wurde. Das wäre ein unwahrscheinliches Design: Es würde 7-mal so viele Schreibvorgänge erhalten wie andere Banken. (Die verteilte Parität im RAID-5-Stil wäre theoretisch möglich, um diesen Verschleiß zu verteilen, aber da Flash-Löschblöcke viel größer als Schreibblöcke sind, nicht wirklich. z. B. 256k-Löschblock vs. 4k-Schreibblock. Und außerdem wäre es so die gleichen Zellen jedes Mal, wenn die zusätzlichen Schreibvorgänge in jedem Stripe erhalten werden.)
Ich vermutete, dass die 8. Bank vielleicht RAM war und sich auf demselben Bus wie Flash befand. Aber das ist für NAND-Flash nicht plausibel. Es ist nicht byteadressierbar; nur in ganzen Seiten durch einen Flash-Controller-Chip lesbar, der Fehlerkorrekturcodes mit Seitengranularität verarbeitet. Es würde keinen Sinn machen, es an die gleichen Adressleitungen wie das System-RAM anzuschließen.
Execute-from-Flash, auch Execute-in-Place genannt, wird nur mit NOR-Flash durchgeführt, nicht mit NAND . Der Rover muss also eine Kopie + Daten kopieren, die er für jede Aufgabe benötigt (z. B. orbitale Einfügung vs. Eintritt vs. Roving am Boden) von der Flash-Bank 0 in den RAM kopieren. Vermutlich bedeutete der "No-Flash-Modus" nur, dass keine Daten auf den Flash geschrieben wurden, ohne das Lesen von Bank 0 zu vermeiden.
NAND-Flash kann nur in großen Blöcken gelöscht werden , z. B. 256 kB, und kann nur in Seiten geschrieben werden (z. B. 4 kB auf einmal).
Das Betriebssystem selbst (VxWorks, ein Echtzeit-Embedded-Betriebssystem) läuft wahrscheinlich sogar im normalen Betrieb direkt aus dem 3-MB-EEPROM. Diese zählt zur Firmware, obwohl sie getrennt von Code+Daten in Flashbank 0 gespeichert ist. Code kann direkt aus einem EEPROM laufen; Es ist byteadressierbar wie RAM. Wahrscheinlich gehören dazu Boot-Time-Funktionen, die Flash in den RAM laden.
Ich weiß nicht, ob Updates von der Erde jemals den EEPROM-Inhalt geändert haben, aber das ist plausibel, weil EEPROM = Electrically Erasable Programmable ROM . Aber es ist riskant: Jede Unterbrechung oder Beschädigung könnte den Rover beschädigen, genauso wie die Aktualisierung des BIOS auf Ihrem Motherboard Sie warnt, den Strom nicht auszuschalten und sicherzustellen, dass der Strom stabil ist. Dennoch würde das Hochladen eines neuen Bildes in den RAM des Rovers und das anschließende Erstellen einer Prüfsumme ein Update ziemlich sicher machen und nach dem Start nicht von irgendetwas Externem abhängig sein. Sie würden es wahrscheinlich nur tun, wenn es nötig wäre, um ein Problem zu beheben, das sie auf andere Weise nicht lösen könnten.
Anscheinend hat Spirit kein separates EEPROM, nur Opportunity hat eins. Also IDK wie Spirit Stiefel. Es muss etwas geben , um Spirit booten zu lassen, es sei denn, der NAND-Flash-Controller kopiert automatisch etwas Flash in den RAM oder unterstützt das Lesen von speicherabgebildetem Flash.
Weitere Verbindungen
Der Onboard-Speicher umfasst 128 Megabyte Direktzugriffsspeicher, ergänzt um 256 Megabyte Flash-Speicher und kleinere Mengen anderer nichtflüchtiger Speicher, wodurch das System Daten auch ohne Strom speichern kann.
Jack
Uwe
Peter Kordes
Peter Kordes