Mikrocontroller?

4 Antworten

Zur "Geschichte":

Zuerst gab es ROM und PROM Speicher als einzelne Bauteile zusammen gelötet

. Beim ROM besteht jede Speicherzelle aus einer Diode oder "nichts". Für eine "1" ist da eine Diode eingelötet, für eine "0" nichts. Bei PROM (Programmable ROM) sind alle Dioden bestückt. Beim beschreiben hat man dann da wo man eine "0" haben wollte einen starken Strom durch gejagt so dass die Diode einfach durchgebrannt ist.

Später kamen dann Chips wo man dann entweder das Programm durch auflegen einer Maske bei der Fertigung die Stellen mit einer "0" abgedeckt hat so dass dort keine Diode entsteht oder eben alles bestückt und dann die 0en rein gebrannt.

Um Zwecks "ausprobieren" oder "updates" nicht immer den ganzen Speicher weg werfen zu müssen wurde dann das EPROM (Erasable ROM) erfunden, das war was das lesen angeht auch kompatibel zu normalen (P)ROM Bausteinen. Hier hat man dann statt einen Strom durchzujagen eine höhere Spannung (12V statt 5V) unter die Speicherzelle gelegt die sich dann sozusagen statisch aufgeladen hat und blockiert wurde. Die blockaden konnte man dann löschen in dem man den CHip mit hartem UV Licht bestrahlt hat so dass die Ladungen die die Speicherzellen blockieren abfließen können. Dazu hatten die ICs ein Fenster aus speziellem und sehr teurem Germaniumglas. Ein OTP (One Time Programmable) ohne Fenster hat dann damals typisch DM20,- (also von der Kaufkraft her über €20) weniger gekostet als der selbe IC mit Fenster!

Dann, so Anfang der 1990er Jahre kamen dann die EEPROMs (Electrical Erasable PROM) auf. Hier konnte man die Blockade durch das Programmieren auch wieder elektrisch löschen. Wenige Jahre später gab es dann welche, die komplett mit 5V liefen, also keine hohe Spannung zum beschreiben und löschen brauchen.

Das Problem war hier aber, dass die nach noch nicht mal 100x löschen immer noch Speicherzellen die blockiert blieben aufwiesen. Hier musste man sich dann immer gut überlegen, ob man den Inhalt wieder löschen wollte oder nicht. Das Beschreiben selber, vor allem auch "nach und nach" war dagegen kein Problem. So konnte man mit einigen Tricks das Programm nach und nach erweitern ohne einen "teuren" Löschzyklus zu opfern.

Moderne EEPROMs können 1 bis 10 Millionen mal gelöscht werden.

Flash Speicher arbeiten ähnlich, sind aber anders aufgebaut so dass man viel größere Speicherdichten viel billiger herstellen kann als bei EEPROMs. Daher haben USB-Sticks und SSD alle Flash-Speicher eingebaut. Der kann aber nur etwa 100.000 mal beschrieben werden.

Im Mikrocontroller bedeutet das:

  1. EEPROM ist teuer und verbraucht viel Chipfläche und hat daher typisch max 256 oder 512 Bytes während der Flash ROM viele Kilobytes haben kann.
  2. Zwar hat man nicht viel EEPROM, kann das aber mindestens 10x öfter beschreiben als den Flash. Daher für sich oft ändernde Daten besser geeignet, dafür muss man damit aber viel sparsamer sein!
  3. Das EEPROM lässt sich schneller löschen und wieder beschreiben, die Gefahr, dass zwischen löschen und schreiben ein Stromausfall kommt ist viel geringer!
  4. Um den Preis für FLASH weiter zu senken ist die Löschschaltung in Blöcke unterteilt. Man kann immer nur einen ganzen Block löschen. Möchte man nur ein Byte ändern, muss der gesamte Block im RAM zwischengespeichert werden. Beim EEPROM das sowieso teuer ist wird die Löschschaltung Byteweise eingebaut, man kann also jedes beliebige Byte löschen und neu schreiben ohne andere Daten zwischenspeichern zu müssen. Das macht den Unterschied bei Punkt (3) noch gewaltiger!
Woher ich das weiß:Berufserfahrung

Die Speichertechnolgie/ Speicherzellen sind prinzipiell gleich - also funktionieren nach dem gleichen physikalischen Prinzip. Der Aufbau ist aber anders. Flash ist darauf ausgelegt, ganze Blöcke zu schreiben (und zu lesen), EEPROM wird auch blockweise bearbeitet, aber die Blockgröße ist wesentlich kleiner. Oft kann jedes Byte separat geschrieben/ gelesen werden.

Flash ist prinzipiell langsamer als EEPROM, aber durch die Blockweise Zugriffsweise, etc... lässt sich der Geschwindigkeitsnachteil wieder aufholen.

Grob:
Flash: Günstiger, schneller, kann nur in ganzen Sektoren gelöscht werden und nicht Zellenweise
EEPROM: langsamer, einzelne Bytes/Zellen lassen sich ändern, komplexer aufgebaut

Im Prinzip sind die einzelnen Speicherzellen bei beiden die selben, also auch prinzipiell in deren Eigenschaften. Der eigentliche Unterschied entsteht durch die Ansteuerelektronik.

Ein EEPROM ist, wie der Name schon sagt, prinzipiell ein ROM (read only memory) Speicher.

Man kann zwar seinen Inhalt ändern, aber nicht dynamisch und nur mit relativ viel Aufwand.

Der Flash Speicher hingegen ist ein RAM Speicher, der beliebig beschrieben werden kann.


Commodore64  19.06.2022, 23:32

Flash ist auch ein ROM!

0