Electrically Erasable Programmable Read-Only Memory

EEPROM (Electrically Erasable Programmable Read-Only Memory, wörtlich: elektrisch löschbarer, programmierbarer Nur-Lese-Speicher, auch E2PROM genannt) ist ein nichtflüchtiger, elektronischer Speicherbaustein, der unter anderem in der Computertechnik und dort hauptsächlich in eingebetteten Systemen eingesetzt wird. Ursprünglich wurde dieser Bausteintyp mittels eines Programmiergerätes mit beliebigen Daten gefüllt, inzwischen kann dies auch von der angeschlossenen CPU im System bewerkstelligt werden.
Ein EEPROM besteht aus einer Feldeffekt-Transistorenmatrix mit isoliertem Floating Gate, in welcher jeder Transistor ein Bit repräsentiert. Beim Programmiervorgang wird auf dem Gate eine Ladung gespeichert (der Transistor sperrt). Beim Löschen wird diese Ladung wieder entfernt, indem durch einen hohen Spannungspuls die Ladung der Sperrschicht in den Ursprungszustand versetzt wird. Dieser Löschvorgang kann entweder durch ein Programmiergerät oder auch direkt im System erfolgen. Bei EPROMs ist hingegen zum Löschen eine UV-Lampe nötig. Um den gesamten Inhalt eines EEPROMs zu löschen werden deshalb nur einige Sekunden benötigt - verglichen mit 10 bis 30 Minuten beim EPROM.
Nach dem „Brennvorgang“ des EEPROMs werden die geschriebenen Daten durch ein Bitmuster geladener/ungeladener Transistoren repräsentiert. Diese Daten lassen sich nun beliebig oft auslesen. Die Lesespannung liegt dabei unterhalb der Programmierspannung. Die Anzahl der möglichen Schreibvorgänge ist allerdings begrenzt. Die Hersteller garantieren typischerweise mindestens 1.000.000 Schreibzyklen (Stand 2006). Früher war zum Programmieren eine höhere Spannung erforderlich, diese wird inzwischen bausteinintern erzeugt.
EEPROMs können wie Flash-Speicher byteweise beschrieben werden. Ein Nachteil von Flash-Speicher ist allerdings, dass er vor dem Schreiben nur blockweise gelöscht werden kann (wobei die Blockgröße variiert). EEPROMs können hingegen auch byteweise gelöscht werden. Andererseits kann Flash-Speicher deutlich schneller beschrieben werden: Ein Schreibzyklus benötigt hier nur zwischen 1 µs und 1 ms, im Gegensatz zu 1 ms bis 10 ms bei EEPROMs. EEPROMs verwendet man deshalb bevorzugt, wenn einzelne Datenbytes in größeren Zeitabständen verändert und netzausfallsicher gespeichert werden müssen (zum Beispiel Konfigurationsdaten oder Betriebsstundenzähler).
Die Nachfolge des EPROM anzutreten, ist im Gegensatz zum Flash Speicher dem EEPROM aufgrund der deutlich höheren Herstellungskosten nie gelungen. Statt dessen haben EEPROMs eine Nische gefunden in Anwendungen in denen kleinere Datenmengen die sich häufiger verändern gespeichert werden müssen. So besaßen denn auch die Mehrzahl der bis zum Jahre 2005 erschienenen Mikrocontroller einen kleinen EEPROM Speicher für veränderliche, nichtflüchtige Daten. Bis gegen Ende des Jahre 2007 hat sich diese Entwicklung umgekehrt und die Mehrzahl aller neu erschienenen Controller hat kein EEPROM mehr. Begünstigt durch die fallenden Preise konnte der in den Microcontollern ebenfalls enthaltene Flashspeicher erheblich vergrößert werden. Ursprünglich nur für Programm- und statische Daten zuständig, kann dieser auch nun für die veränderlichen Daten verfügbar gemacht werden. Hierzu wird ein Teilbereich des inzwischen vergrößerten Flashspeichers reserviert und mit neuen Algorithmen[1], beschrieben und gelesen. Hierbei muss eine Page vor der Löschung ebenso wie der gesamte reservierte Bereich erst komplett ausgenutzt sein, bevor neu beschrieben wird. Dieses Verfahren macht in den großen Mehrheit der Fälle das EEPROM in neueren Microcontrollern überflüssig. In den wenigen Fällen, wo es erforderlich bleibt, wird es extern geroutet.