Ist das ROM eines MCU NAND FLASH?

Ich verstehe, dass Binärcode im ROM-Bereich einer MCU gespeichert ist. Typischerweise haben die meisten MCUs FLASH EEPROMS. Ist dies wirklich der FLASH-Speicher vom NAND-Typ, den wir in den meisten SSDs finden?

Wenn nicht, was sind die Unterschiede?

Antworten (2)

Nein. NAND-Flash ist ungeeignet zum Speichern von Code, der direkt von einer CPU ausgeführt wird. Nand-Flash kann nur zum Speichern von Code verwendet werden, der zuerst in den RAM kopiert und dann vom RAM ausgeführt wird. Dafür gibt es zwei Gründe: Erstens ist NAND-Flash nicht wortweise zugänglich; es wird in Blöcken zugegriffen. Zweitens sind Daten in NAND-Flashes eigentlich ziemlich flüchtig und das Lesen eines Datenblocks nur ein paar Millionen Mal führt dazu, dass sich Bitfehler in die Daten einschleichen. Dies ist kein Problem für den Plattenzugriff, bei dem die Daten nicht so oft gelesen und geschrieben werden und zwischendurch durch Fehlerkorrekturalgorithmen repariert werden können. Bei der Ausführung direkt vom NAND-Flash können einige Millionen Lesezyklen jedoch nur etwa eine Sekunde dauern.

Wenn Codes direkt von einem Flash-Chip ausgeführt werden, muss dieser Chip ein NOR-Flash-Chip sein. Die meisten Mikrocontroller enthalten auch ein echtes ROM im Chip, um Bootloader usw. zu speichern. Dieses ROM ist oft ein Masken-ROM, das wirklich ein ROM ist, "Nur-Lese-Speicher", was bedeutet, dass es vom Benutzer überhaupt nicht beschrieben werden kann, sein Inhalt ist im gespeichert Chipdesign mit einer Via-Maske. Eine andere Alternative, stattdessen oder zusätzlich, ist PROM, Programmamble ROM, das aus Transistoren mit schwachen Emittern besteht, die einzeln gebrannt werden können. Diese Art von Speicherbit kann einmal beschrieben, aber nicht gelöscht werden.

Einige Hintergrundinfos:

Zum Ausführen von Code benötigen alle Prozessoren Speicher, auf den Byte für Byte zugegriffen werden kann. Heutzutage ist dieser Speicher am häufigsten der L1-Cache-RAM, der dem Prozessor auf dem (Befehls-) Datenbus "am nächsten" angeordnet ist. Weiter entfernt von der CPU können andere Arten von Speicher mit vielen Arten von Bussen verbunden sein.

Wenn Sie nach einer bestimmten MCU fragen, wäre es hilfreich zu wissen, welche. Einige von ihnen kombinieren verschiedene Arten von nichtflüchtigen Speichern. EEPROM und Flash sind unterschiedliche Arten von Speicher. Zum Beispiel die (derzeit) beliebten Mikrocontroller der Tiva C-Serie von TIkombinieren EEPROM- und FLASH-Speicher, während FLASH hauptsächlich für die ausführbare Binärspeicherung (aber nicht darauf beschränkt) und das EEPROM für die anwendungsspezifische Datenspeicherung verwendet wird. Diese spezifischen Chips haben NOR-Flash anstelle von NAND, was für MCUs von Vorteil ist, insbesondere für RAM-beschränkte, da die NOR-Speicher normalerweise das direkte Abrufen und Ausführen von CPU-Befehlen ermöglichen, was beim NAND nicht der Fall ist. Wenn ein Programm in NAND gespeichert ist, ist es nicht ausführbar und muss in den RAM kopiert werden, um es auszuführen. Einige MCUs verwenden es jedoch trotzdem, hauptsächlich solche, die für die Arbeit mit extern erweitertem RAM ausgelegt sind.

Das EEPROM der Tiva C-Serie ist eigentlich eine NOR-Flash-Bank mit zusätzlicher Steuerlogik, die darum gewickelt ist.
@AdamHaun Kannst du bitte zeigen, wo diese Informationen zu finden sind?
Schauen Sie unter der Überschrift Betriebstheorie in Abschnitt 8.2.4.1 des Datenblatts nach (Seite 551). Beachten Sie die Erwähnung der Sektorlöschung, die das bestimmende Merkmal von Flash ist. Dies ist eine Beschreibung der Hardware-EEPROM-Emulation. Außerdem habe ich an dem 65-nm-Prozessknoten gearbeitet, in dem die Tiva-C-Chips hergestellt werden, und ich kann Ihnen sagen, dass es dort kein echtes Byte-löschbares EEPROM gibt. :-)
@AdamHaun Ok, das ist eine interessante Information, nicht sicher, wie nützlich sie ist :) Danke.