Wie viele Speicherbänke hat Opportunity?

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:

  1. Informatiker beginnen bei 0 zu zählen, also wäre Bank 7 tatsächlich die 8. Bank im Bereich, wodurch mindestens weitere 7 Banken verfügbar bleiben.
  2. Computer mögen Zweierpotenzen und keine Primzahlen. 7 ist zu nah an 8, um es zu ignorieren.
  3. Laut NASA hat der Rover 256 MB. Das ist nicht durch 7 teilbar.
  4. Für alle, die nicht daran gewöhnt sind, von 0 an zu zählen, wäre Bank 7 tatsächlich die 7. Bank, sodass 6 davor bleibt.

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.

Ich stimme zu - es sieht sehr nach einem Fehler bei der Berichterstattung aus
Es ist aber auch möglich, eine Dekodierung für maximal acht Speicherbänke vorzusehen und nur sieben Bänke zu verbauen und die achte Bank frei zu lassen. 256 MB wären das Maximum an installierbarem Flash-Speicher und 224 MB installiertem Speicher. Wenn Bank sieben defekt ist, bleiben sechs Banken übrig.
@Uwe: Die NASA sagt, sie hat 256 MiB installiert. Ich habe meine Antwort umfassend aktualisiert, nachdem ich beide Links in der Frage gelesen und festgestellt hatte, dass es immer noch ein echtes Rätsel gibt.
@Uwe und Diego: Ich habe meine Antwort mit Dingen aus Links aktualisiert, die ich bei der Recherche gefunden habe, falls jemand an einem größeren Bild der Hardware / Software von Opportunity interessiert ist.

Antworten (3)

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.

Opportunity Rover Flash-Dateisystem

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

Alle 8 Bänke sind also Flash-Speicher, aber Bank 0 wird für selten wechselnde Software verwendet, und die Bänke 1 bis 7 werden für häufig wechselnde Datenspeicher verwendet. Das Risiko von Speicherverschleiß ist für Bank 0 nahe null. Die Hardware für alle Bänke könnte identisch sein.

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.

Ihre Wear-Leveling-Hypothese lautet, dass jede Bank ihre eigene Flash-Übersetzungsschicht haben könnte, die 32 MB logische Bytes von 32 + 4 MB physikalischen Bytes verfügbar macht? Wenn die Nivellierung auf der Ebene der gesamten Bank erfolgte, würden Sie erwarten, dass die Neuzuordnung der Bank das Problem einfacher gelöst hätte, indem Sie einfach die fehlerhafte Bank nicht zugeordnet hätten.
Aber nette Entdeckung, 7 x 32 MB Flash für ein Dateisystem + separate 32 MB für die Firmware, erklärt alles gut. Ich hatte vermutet, dass dies eine weniger wahrscheinliche Konfiguration wäre, weil es diese eine 32-MB-Region zu etwas Besonderem machen und nicht durch eine noch funktionierende Bank ersetzt werden könnte. (Wir wissen, dass es 3 MB EEPROM gibt, also könnte der Wiederherstellungsmodus-Code für den Fall eines fehlerhaften Programmspeicher-Flash dorthin gehen. Meine Antwort war die Annahme, dass die gesamte Firmware wahrscheinlich in diese 3 MB passt, also kein Wunder, dass ich mit Rätseln zurückgelassen wurde: P)
@PeterCordes: Spekulation, wirklich, ich kann keine Informationen über die tatsächliche Zuordnung finden.
Ich habe meine Antwort mit Dingen aus Links aktualisiert, die ich bei der Recherche gefunden habe, falls jemand an einem größeren Bild der Hardware / Software von Opportunity interessiert ist.

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.]

  • ExtremeTech: Der ultimative Remote-Administrator: Die NASA formatiert den zwielichtigen Flash-Speicher von Opportunity aus 125 Millionen Meilen Entfernung neu

    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 CPU:

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.

  • Der Wikipedia-Artikel von Opportunity besagt, dass es 3 MB EEPROM enthält, das weniger leicht gelöscht / neu geschrieben werden kann als Flash.
Ein Zitat aus Wikipedia : "128 MB DRAM, 3 MB EEPROM und 256 MB Flash-Speicher". Es gibt mehr DRAM als 1/8 von 256 MB, es sind 4/8.
Ein paar Dinge, die man im Hinterkopf behalten sollte: Dieser kleine Kerl wurde 2003 auf den Markt gebracht, denke spätestens Ende der 90er Jahre. Außerdem wird Flash-Speicher speziell für die Speicherung verwendet; Es kann alle seine Aufgaben mit deaktiviertem Blitz erfüllen (wie es mehrere Monate lang der Fall war), es muss nur Daten sofort zur Erde senden.
Nur eine Vermutung, aber sie könnten mit ihrer ursprünglichen Konfiguration (z. B. Speicherplatz, Leistung) an eine Grenze gestoßen sein, die dazu geführt hat, dass sie die Anzahl der installierten Chips und/oder die Größe einiger der einzelnen Chips reduziert haben. Oder vielleicht stammen die Chips aus Redundanzgründen alle von verschiedenen Herstellern und einige Hersteller boten nicht die gewünschte Kapazität.
@Rikki-Tikki-Tavi: Nichts davon erklärt 256 MiB Flash insgesamt gegenüber 32 MiB pro Bank. 7 Bänke mit 32 MB wären einfach zu erklären, wie es die erste Hälfte meiner Antwort tut.
@DiegoSánchez: Wissen wir sicher, dass der gesamte integrierte Flash-Speicher deaktiviert war? Wir wissen, dass die 7 Bänke des Datenspeicher-Flash deaktiviert waren, aber ist es möglich, dass die fehlenden 32 MiB Flash auf andere Weise angeschlossen sind? Ich bin mir nicht sicher, warum Sie das Tech-Level der späten 90er erwähnen; Ich glaube nicht, dass irgendetwas in dieser Antwort damit unvereinbar ist. (Ich habe den Triple-Level-Cell-Blitz erwähnt, aber ich habe nicht vorgeschlagen, dass er plausibel ist; ich denke, Sie würden ihn sogar im Jahr 2018 vermeiden, wenn er existiert, wegen der vermutlich geringeren Toleranz gegenüber Strahlung und anderen Rauschquellen.)
Die RAD6000-CPU ist vom PowerPC 601 abgeleitet. Diese CPU hat eine von Neumann-Architektur und eine physikalische 32-Bit-Speicheradresse für bis zu 4 GB Speicher. Kein Problem, 128 MB DRAM, 3 MB EEPROM und 256 MB Flash-Speicher anzusprechen. All das adressierbar mit 29 Bit für bis zu 512 MB. 3 des 32-Bit-Adressbusses bleibt ungenutzt.
@PeterCordes Das Tech-Level wurde nur als etwas erwähnt, das man im Auge behalten sollte, da wir uns jetzt fest im Spekulationslager befinden.
Ein Artikel , der über acht Speicherbänke schreibt, aber auch über die verbleibenden sechs, nachdem der Fehler in Bank 7 isoliert wurde.
Vielleicht ist die Zahl 0 für die Parität? Wieder Spekulation.
@Rikki-Tikki-Tavi: Ich denke, mit der Antwort von MSalters, die bestätigt, dass der Flash-FS 7 x 32 MB groß ist, können wir vermuten, dass Bank 0 RAM ist oder dass sie die Firmware enthält.