Speicher: Unterschied zwischen den Versionen

Aus der Mikrocontroller.net Artikelsammlung, mit Beiträgen verschiedener Autoren (siehe Versionsgeschichte)
Wechseln zu: Navigation, Suche
(typo)
K (→‎WOM: - Do it yourself)
Zeile 237: Zeile 237:


Derzeit ist nur ein Modell bekannt: Signetics 25120 9046xN ([http://www.national.com/rap/files/datasheet.pdf Datenblatt (PDF)]). Weitere Berichte zu diesem zukunftsträchtigen Bauteil siehe [http://www.national.com/rap/Story/WOMorigin.html The origin of the WOM - the "Write Only Memory"] von Bob Pease. ;-)
Derzeit ist nur ein Modell bekannt: Signetics 25120 9046xN ([http://www.national.com/rap/files/datasheet.pdf Datenblatt (PDF)]). Weitere Berichte zu diesem zukunftsträchtigen Bauteil siehe [http://www.national.com/rap/Story/WOMorigin.html The origin of the WOM - the "Write Only Memory"] von Bob Pease. ;-)
WOMs lassen sich allerdings auch leicht selbst herstellen indem z.B. bei SRAMs der /OE-Pin entfernt wird.


[[Category:Bauteile]]
[[Category:Bauteile]]

Version vom 9. Mai 2009, 10:02 Uhr

Im Bereich der Mikrocontroller gibt es viele verschiedene Arten von Speicher.

Typ Geschwindigkeit Größe Schreibzugriffe Datenerhalt ohne Spannung
RAM ++++ ++++ beliebig oft nein
EPROM + +++ ~1000 ja
EEPROM + +++ 10.000-1.000.000 ja
FLASH-ROM ++ +++++ 1000-10.000 ja
OTP-ROM + +++ einmal ja
Register ++++++ + beliebig oft nein

Die Angaben von Geschwindigkeit und Größe sind nur prinzipiell dargestellt.

RAM

Random Access Memory - Speicher mit wahlfreiem Zugriff.

Damit ist gemeint, daß man beim Zugriff keine Reihenfolge einhalten muß und jederzeit auf alle Daten zugreifen kann, lesend und schreibend. Allerdings trifft diese Eigenschaft mittlerweile auf viele Speichertypen zu. Spricht man heutzutage von RAM, dann meint man damit meistens Speicher, den man beliebig oft lesen und beschreiben kann und der zum Datenerhalt Strom benötigt. Es gibt auch Speichertypen, die diese Eigenschaften nicht haben, aber trotzdem "RAM" im Namen tragen, z.B. FRAM. Über diese Speicher spricht man dann in ihrer vollen Form (z.B. FRAM), man nennt sie nicht einfach nur RAM.

SRAM

Static RAM - statischer RAM.

Hat man SRAM als einzelne ICs, dann liegt ihr Vorteil darin, dass sie zum Datenerhalt nur eine Versorgungsspannung brauchen und keinen Refresh (siehe DRAM weiter unten). Das hat unter anderem den Vorteil, daß ein Mikrocontroller beliebig langsam getaktet werden kann (z.B. 32,768 kHz Uhrenquarz) bzw. im Schlafmodus mit vollkommen gestopptem Takt betrieben werden kann, ohne die Daten zu verlieren. Er kann mit einer hohen Geschwindigkeit gelesen und geschrieben werden, ohne Begrenzung an Lese-/Schreibzyklen.

Bei Mikrocontrollern und auch bei Mikroprozessoren (wie x86-kompatiblen) wird diese Speichertechnologie als RAM eingesetzt. Bei den heutigen Hochleistungsprozessoren, die im oberen MHz bis GHz-Bereich arbeiten und viel RAM benötigen ist meist jedoch nur ein kleiner Teil als SRAM ausgeführt: Der Cache, der auf dem CPU-IC untergebracht ist.

SRAM-Zellen benutzen als Grundprinzip der Speicherung FlipFlops, was ihn sehr schnell macht, er aber deswegen seine Daten nur mit Spannungsversorgung speichern kann. Technisch gesehen besteht ein SRAM-Bit meist aus 4 oder 6 Transistoren, wodurch relativ viel Platz verbraucht wird. Die Stromaufnahme ist im inaktiven Zustand meist sehr gering (einige zehn Mikroampere oder weniger).

Anschluss an den Mikrocontroller

Ein typischer SRAM-IC

Der Speicher wird über einen Daten- und einen Adressbus sowie die Steuerleitungen /OE (output enable, manchmal auch als /RD read enable bezeichnet), /WE (write enable) und /CS (chip select) angeschlossen. Der Datenbus für einen Speicher der Organisation 32k x 8 Bit hat eine Breite von 8 Bit, der Adressbus ist dann 15 Bit breit. Um den Speicher zu aktivieren, muß /CS auf LOW (Masse) gelegt werden. Dies kann verwendet werden, um mehrere Speicher- oder andere Bausteine am selben Bus zu betreiben. Hierbei muß sichergestellt sein, daß jeweils nur ein IC zur gleichen Zeit ein low-aktives /CS-Signal erhält, damit es nicht zum Kurzschluss auf dem Datenbus kommt (siehe Ausgangsstufen Logik-ICs). Ist außer dem Controller nur ein einziges IC an den Bus angeschlossen, kann /CS auch fest mit Masse verbunden und der Speicher somit permanent aktiviert werden. Das /OE-Signal dient hierbei dem Zweck, nach Anlegen einer Adresse am Adressbus den Speicher zum Übertragen eines Datenworts über den Datenbus zu veranlassen (Lesezugriff). Sollen Daten in das SRAM geschrieben werden, legt der Controller die Adresse und dann die Daten an, um den Speicher dann mit einem Low-Signal auf der /WE-Leitung zum Speichern zu bringen.

Die Reihenfolge der einzelnen Daten- und Adresspins am RAM kann nach Belieben variiert werden, wenn dadurch das Layout der Platine vereinfach wird. D.h. D0 des RAMs kann auch an D5 des Controllers gehen. Der Grund dafür ist folgender: Die Daten werden zwar verstreut im RAM gespeichert (Adressleitungen vertauscht) oder in falscher Anordnung im Speicher angelegt (Datenleitungen vertauscht), jedoch kompensiert sich diese Unordnung beim Auslesen wieder. ACHTUNG, das geht nur bei einfachen SRAMs. DRAM oder neuere Speicher nehmen das fix übel, weil die Ansteuerung durcheinander kommt (Adressmultiplexing, Pagemodus, Byteslanes bei DDR-RAM etc.). Bei diesen ICs kann man bestenfalls Datenleitungen tauschen, bei DDR-RAMs nur innerhalb einer Byte-Lane. Prinzipiell sollte man davon aber nur sparsam Gebrauch machen, wenn es dem Layout wirklich hilft.

Ohne Latch

Die einfachste Art einen externen SRAM an den Mikrocontroller anzubinden ist die direkte Verkabelung. Jeder Pin des SRAMs bekommt einen Pin am MC. Jedoch verschwendet diese Anschlußweise auch ziemlich viele IO-Pins. Bei dem nebenstehenden 32-KiBi-RAM verbraucht der Anschluß so 8+15+2 (25) Pins.

Am sinnvollsten verwendet man einen ganzen Port für die acht Datenleitungen, damit man schnell darauf zugreifen kann. Die Adressleitungen A0 bis A7 werden auch möglichst auf einen Port gelegt. An einen dritten Port wiederum werden A8-A14 angeschlossen; /WR und /OE können dann mit zwei weiteren freien Pins verbunden werden. Zusammen belegt diese Methode also 25 Pins für 32 KiBi. Auf diese Weise kann man an praktisch jeden Mikrocontroller einen SRAM anschließen, die Ansteuerung kann dann rein in Software vorgenommen werden. Das ist jedoch relativ aufwendig, in der Anwendung umständlich und langsam. Sinnvollerweise sollte der Mikrocontroller eine eingebaute Speicherschnittstelle haben, um den SRAM per Hardware direkt und schnell ansprechen zu können.

Mit Latch

Will man wertvolle Pins einsparen so benutzt man am besten ein Latch, das die Signale zwischenspeichert. Man kann wählen, ob nur A0-A7 eingespart werden soll, oder gleich alle Adressleitungen. Für den ersten Fall benötigt man ein 8-Bit Latch das ausreichend schnell schalten kann, für den zweiten Fall zwei Latches.

Die Eingänge des Latches werden mit den Datenleitungen des Mikrocontrollers verbunden und das Enable-Signal bekommt einen eigenständigen Pin. Die Einsparungen an Pins geht jedoch auf Kosten der Geschwindigkeit, da zuerst das Latch mit der Adresse geladen werden muß bevor die eigentliche Aktivierung des SRAMs beginnen kann. Bei einem 32-KiB-SRAM werden mit einem Latch nur noch 8+7+3 (18) Pins gebraucht, gegenüber der Variante ohne Latch also eine Einsparung von sieben Pins mit einem Bauteil.

Mit XMEM-Interface
Verbindung zwischen einem AVR und einem 32-KiB-SRAM mit Latch und dem XMEM-Interface

Viele Controller (AVR, 8051) besitzen ein Speicherinterface, das es ermöglicht SRAM anzuschließen und diesen als Erweiterung des internen RAMs zu benutzen. Dieser wird dann mit einem Latch angeschlossen, um Pins zu sparen. Das Enable-Signal des Latch muß mit dem Ausgang ALE (Address Latch Enable) verbunden werden, wie es im Schema gezeigt wird. Nach der Initialisierung des externen Speicherinterfaces steht der Software auch der externe SRAM zu Verfügung.

BRAM

Block RAM - Block RAM.

Damit wird ein Speicher bezeichnet, welcher sich in FPGAs befindet. Die Blöcke von RAM sind physikalisch wie SRAM aufgebaut, sehr leicht anzusteuern und sehr schnell (200MHz++). Die Ansteuerung erfolgt jedoch synchron wie bei SDRAM mit einem Taktsignal. Die meisten FPGAs besitzen BRAM, welcher über zwei komplette Schnittstellen verfügt, (engl. Dual Port Memory). Damit ist es möglich von zwei Seiten gleichzeitig auf die Daten zuzugreifen. Das ist sehr vorteilhaft für FIFOs, da hier gleichzeitig Daten gelesen und geschrieben werden können. Bei den meisten FPGAs sind die beiden Ports komplett unabhängig und können mit unterschiedlichen Takten betrieben werden, was imense Vorteile für asynchrone FIFOs bringt.

DRAM

Dynamic RAM - dynamischer RAM.

Ein DRAM-Bit besteht aus einem Transistor und einem Kondensator, wodurch man es sehr klein bauen kann. Allerdings kann der Kondensator seine Ladung nicht unbegrenzt lange halten, weswegen diese regelmäßig erneuert werden muß. Diese Erneuerung (englisch Refresh) macht DRAMs im Mikrocontrollerbereich etwas unbeliebt. Bei großen 16/32-Bit-Controllern befinden sich oft DRAM-Controller mit auf dem IC (on chip) die sich um den Refresh kümmern, da nur als DRAM große, schnelle und billige RAMs verfügbar sind. Heutzutage wird fast nur noch SDRAM hierfür verwendet, der klassiche DRAM ist ein Auslaufmodell. Auch einige 8-Bit Prozessoren wie der Z80 unterstützten DRAM hardwareseitig. DRAM war bis zum Anfang der Pentium-Zeit der Hauptspeicher in PCs (EDO-RAM). Die Ansteuerung erfolgt asynchron über verschiedene Steuersignale. Die Adressen werden dabei gemultiplext.

SDRAM

Synchronous DRAM - synchroner DRAM.

Dabei handelt es sich um die Weiterentwicklung von DRAM. Wie der Name verrät ist dieser Speicher synchron, d.h. sämtliche Steuer -und Datentransfers zwischen SDRAM und Speichercontroller erfolgen synchron zu einem Taktsignal. Das vereinfacht das Design wesentlich und ermöglicht höhere Datentransfergeschwindigkeiten (Taktfrequenz, typisch bis 133 MHz).

DDR-SDRAM

Double Data Rate SDRAM - SDRAM mit doppelter Datenrate.

Oft als DDR-RAM abgekürzt. Hierbei handelt es sich um eine Weiterentwicklung von SDRAM. Dabei werden im Gegensatz zum Vorgänger Daten mit jeder Taktflanke übertragen, so dass pro Taktzyklus zwei Datenworte übertragen werden. Z.B. arbeitet DDR266 mit 133 MHz Taktfrequenz, DDR400 demzufolge mit 200 MHz. Die Steuerung erfolgt jedoch nach wie vor nur mit einfacher Taktfrequenz. Die höhere Taktfrequenz wird durch eine neue IC-Technologie, niedrigere Betriebsspannung (2,5V anstatt 3,3V) und andere IO-Standards (SSTL-2,5 anstatt 3,3V CMOS) erreicht. Das ist auch nötig, weil bei diesen Datenraten das Thema Wellenwiderstand bereits eine elementare Rolle spielt.

DDR2-SDRAM

Dabei handelt es sich um die Weiterentwicklung von DDR-SDRAM. Durch weitere Verbesserungen der IC-Technologie, vor allem durch kleinere Strukturgrößen und niedrigere Betriebsspannung (1,8V anstatt 2,5V). Das Protokoll ist ähnlich zu DDR-RAM, die Taktfrequenzen sind höher als bei DDR-RAM.

DDR3-SDRAM

Hierbei handelt es sich um eine Weiterentwicklung der DDR2-Architektur. Jedoch noch nicht sehr weit verbreitet, weil sie noch zu teuer sind.

PSRAM

Pseudo Static RAM

Pseudostatisches RAM ist intern ein DRAM, kann aber wie ein normales asynchrones SRAM angesteuert werden. Um den Refresh braucht man sich nicht zu kümmern. Der Nachteil ist die verglichen mit SRAMs langsame Zugriffszeit (z.B. 70 ns).

Manche PSRAMs, z.B. das CellularRAM von Micron, implementieren zusätzlich einen synchronen Betriebsmodus der schnelle Burst-Zugriffe erlaubt. Um den Refresh kümmert sich das PSRAM auch hier intern, allerdings muss der Benutzer ggf. Wartezeiten beim Zugriff einhalten oder Busy-Leitungen abfragen.

FRAM

Ferroelectric RAM - Ferroelektrischer RAM.

FRAM is a registered trademark of Ramtron International Corporation (U.S.A.)

Bekannte Hersteller:

Links:

MRAM

Magnetic RAM - magnetischer RAM.

Hierbei handelt es sich um Speicher, der die Daten nicht elektrisch sondern magnetisch speichert werden. MRAMs behalten ihren Speicherinhalt auch ohne Stromversorgung.

NVRAM

Non Volatile RAM - nichtflüchtiger Speicher.

NVRAM bezeichnet keine bestimmte Speichertechnologie sondern allgemein ein RAM das seinen Speicherinhalt beim Wegfall der Versorgungsspannung beibehält.

Realisierungmöglichkeiten:

  • SRAM mit Lithiumbatterie, Speicherdauer mehrere Jahre; Hersteller: STM, Maxim
  • SRAM mit Goldcap, Speicherdauer mehrere Wochen bis Monate
  • FRAM, Speicherdauer 10 - 100 Jahre; Hersteller: Fujitsu, RamTron
  • RAM mit automatischem EEPROM-Backup, Speicherdauer bis zu 100 Jahre; Hersteller: Intersil

Speichermodul

Bei einem Speichermodul sind mehrere einzelne Speicherchips zu einem handlichen, steckbaren Bauteil zusammengefaßt, wie sie z.B. in PCs zum Einsatz kommen.

EPROM

Erasable Programmable Read-Only Memory" - löschbarer, programmierbarer Nur-Lese-Speicher.

EPROMs sind elektronische Speicher, die in einem entsprechenden Programmiergerät elektrisch programmiert und mit UV-Licht eines Löschgeräts wieder gelöscht werden können. Dazu hat der IC ein Fenster aus UV-durchlässigem Quarzglas. Da dies aber relativ umständlich ist und diese Gehäuse groß und teuer sind, werden heutzutage auch oft andere Speicherformen benutzt, z.B. EEPROMs oder FLASH-ROMs.

Was in den Speicherbaustein geschrieben oder von dort gelesen wird, kann als Binärdatei oder Textdatei definiert werden. Bei Textdateien werden oft Formate mit einer Fehlerkontrollmöglichkeit verwendet. Gängig sind die Formate Intel-HEX (IHEX) und Motorola S-Record.

EEPROM

Electrically Erasable Programmable Read Only Memory") - elektrisch löschbarer, programmierbarer Nur-Lese-Speicher.

Im Gegensatz zu FLASH-ROMs muß man bei EEPROMs nicht immer einen ganzen Block auf einmal löschen sondern kann auch einzelne Bytes löschen und neu beschreiben.

Die meisten AVR-Controller haben ein integriertes EEPROM als Datenspeicher, es gibt jedoch auch externe EEPROMs die über den I²C- oder SPI-Bus angeschlossen werden können. Serielle EEPROMs können beispielsweise mit dem universellen und frei verfügbaren Programmer PonyProg programmiert und ausgelesen werden. Eine Einführung dazu findet man im Pony-Prog Tutorial.

Wie oft ein EEPROM beschrieben werden kann, steht im Datenblatt. Typische Werte sind 10.000 bis 1 Million Schreibzugriffe. Danach kann es zu Datenverlusten kommen. Wer regelmäßig in ein EEPROM schreiben will sollte unbedingt nachrechnen wie viele Schreibzugriffe er denn konkret machen will. Schreibt man z.B. jede Sekunde auf die gleiche Stelle, dann macht man in drei Stunden 10.800 Schreibzugriffe und damit kann das EEPROM schon kaputt sein.

EEPROM Schreibzugriffe minimieren

Sinnvollerweise schreibt man Daten nur direkt ins EEPROM, wenn man sicher ist, dass dies nur selten vorkommt. Anderenfalls speichert man die Daten im RAM und kopiert sie erst in den EEPROM, wenn die Versorgungsspannung ausfällt. Allerdings muss man durch eine Pufferschaltung gewährleisten, dass die Versorgungsspannung noch ein paar (hundert) Millisekunden stabil ist, nachdem das Netzteil ausgeschaltet wurde. Das kann man mit grossen Elektrolytkondensatoren, Goldcaps oder kleinen Batterien (Lithiumzellen) erreichen. Ein Schaltungsbeispiel findet man in er folgenden Schaltung.

Eeprom power fail.png

Wenn die Versorgungsspannung plötzlich abgeklemmt oder kurzgeschlossen wird, verhindert Diode D1 zunächst, dass sich der Pufferkondensator C2 sofort entlädt. Über R1 wird ein externer Interrupt im Prozessor ausgelöst (auf fallende Flanke oder Low Level einstellen!). Dort muss nun der Datensatz aus dem RAM ins EEPROM kopiert werden. Doch das darf nicht zu lange dauern, denn der Pufferkondensator C2 kann nur für ein paar Dutzend Millisekunden die Betriebsspannung aufrecht erhalten. Berechnet werden kann das durch

[math]\displaystyle{ t=\frac{C \cdot \Delta V}{I} }[/math]

  • t : Pufferzeit
  • ΔV : Spannungsabfall während der Pufferzeit
  • I : Stromaufnahme der Schaltung

Beispiel:

  • Verbraucher: ATtiny2313@1 MHz, 5V ca. 0,9mA
  • Datensatz: 32 Byte
  • Schreibdauer / Byte: ca. 3,4 ms

Wir brauchen also ca. 32x3,4ms=108,8ms, um die Daten im EEPROM zu speichern. Wenn wir den AVR mit 5V betreiben und zulassen, dass die Spannung bis auf 3V sinkt (ΔV=2V) ergibt sich daraus eine minimale Kapazität für C2 von

[math]\displaystyle{ C=\frac{I \cdot t}{\Delta V}=\frac{0,9mA \cdot 108,8ms}{2V}=48,9\mu F }[/math]

Das ist das rechnerische Minimum! Real wird man eher den 2..5 fachen Wert wählen müssen, weil

  • man Reserven haben will
  • besonders Elektrolytkondensatoren SEHR grosse Toleranzen haben (+20/-60%!!!)
  • besonders Elektrolytkondensatoren bei niedrigen Temperaturen massiv an Kapazität verlieren
  • während des Schreibens des EEPROMs mehr Strom benötigt wird.

Verbraucht die Schaltung nun mehr Strom oder muss man grössere Datensätze speichern werden die Kapazitäten bisweilen sehr gross. Was kann man tun? Aus der Formel oben geht hervor, dass durch ein Erhöhen des zulässigen Spannungsabfalls die Kapazität verringert werden kann. Doch unser Controller benötigt eine Mindestspannung, kann aber auch nicht mit 10V betrieben werden. Ja, der Controller nicht, aber ein Spannungsregler! Dieser kommt mit stark schwankenden Eingangsspannungen problemlos klar! Es sollte hier aber auf jeden Fall ein Typ mit geringem Stromverbrauch genutzt werden, wie z.B. der LP2950 (siehe Versorgung aus einer Zelle). Noch effizienter wäre der Einsatz eines Schaltreglers. Sinnvollerweise werden nur der Prozessor und minimal notwenig Komponenten von diesem Spannungsregler versorgt, Verbraucher mit hohem Stromverbrauch (LEDs, Relais, etc.) werden über einen zweiten Spannungsregler oder direkt vom Spannungseingang versorgt. Der Spannungsteiler aus R1 und R2 muss so berechnet sein, das beim Erreichen der minimalen Versorgungsspannung Vin ein Interrupt ausgelöst wird. Dazu kann man im AVR den Analogcomparator verwenden. Oder man rechnet mit einer Schaltschwelle von Vcc/2 und verwendet einen normalen externen Interrupteingang.

Eeprom puffer vreg.png

Eine andere Lösung ist die Verwendung einer kleinen Lithiumzelle. Dabei springt diese nur ein, wenn sie wirklich gebraucht wird, sprich die Hauptstromversorgung ausfällt. Die unterbrechungsfreie Umschaltung wird durch zwei Dioden erreicht. Der Spannungsabfall über den Dioden diese Typs beträgt ca. 320mV bei 1mA und und 400mV bei 10mA. Wesentlicher Vorteil dieser Schaltung ist die um Grössenordungen längere Pufferzeit von Sekunden bis Minuten. Der Nachteil ist, dass sie, wenn sie oft genutzt wird irgendwann einmal leer ist, nicht mehr als Backup dienen kann.

Battery-backup.png

Flash-ROM

Flash-ROMs sind nichtflüchtige Datenspeicher ähnlich zu EEPROMs, die elektrisch lösch- und beschreibbar sind. Sie können Daten auch ohne Stromversorgung speichern. Man kann sie beliebig oft auslesen, aber nicht beliebig oft beschreiben. Wie oft genau ist unterschiedlich und steht normalerweise im Datenblatt (1.000-10.000 mal). Ein Flash-ROM kann im Gegensatz zum EEPROM nur sektorweise gelöscht werden, außerdem ist die Anzahl der erlaubten Lösch-/Schreibzyklen meist deutlich niedriger. Flash-ROMs sind als Programmspeicher in Mikrocontrollern weit verbreitet. Der Name FLASH (engl. Blitz) kommt daher, daß dieser Speicher wesentlich schneller als EEPROM geschrieben und gelesen werden kann.

OTP-ROM

One Time Programmable-Read Only Memory - einmal programmierbarer Nur-Lese-Speicher.

Bisweilen auch als PROM bezeichnet. Ein Speicher der nur einmal beschrieben werden kann. Das bedeutet natürlich, daß man sich vorher sicher sein muß, daß die Daten bzw. das Programm korrekt sind.

Die interne Struktur besteht aus Leiterbahnen auf dem Chip, die beim Programmieren durchgebrannt werden und danach eine der Diodenmatrix ähnliche Verschaltung bilden. Diese Technik wurde auch bei PALs verwendet. Heute ist sie nur noch sehr selten anzutreffen. Bausteine die durch ihre einmalige Programmierbarkeit ein OTP-PROM vermuten lassen, wie z.B. die PIC-Controller, benutzen meist die Eprom-Technik bei der einfach das Quarzglasfenster zum Löschen weggelassen wird. Mikrocontroller mit OTP-ROM benutzt man z.B. in der industriellen Serienfertigung. Dazu entwickelt man die Software auf relativ teuren Controllern mit wiederbeschreibbarem Speicher (FLASH-ROM) und wenn man fertig ist kommen die billigeren Versionen mit OTP-ROM zum Einsatz.

Register

Die Register eines Prozessors sind Speicher mit geringer Kapazität und kürzester Zugriffszeit. Sie dienen zur vorübergehenden Speicherung von Informationen, welche im Moment verarbeitet werden sollen. Viele CPU-Befehle funktionieren nur mit Registern. Will man z.B. zwei Zahlen addieren dann müssen sich die beiden Summanden bei den meisten Controllern in Registern befinden. Befinden sich die Summanden im RAM, dann müssen sie vor der Addition in Register kopiert werden. Die Klassifizierung der CPU bzw. des Mikrocontrollers gibt die Breite dieser Register an (8/16/32/64 Bit CPU).

Weiterhin haben alle Mikrocontroller sogenannte Special Function Register (SFR, spezielle Funktionsregister). Das sind spezielle Register, welche sämtliche Funktionen und Module des Mikrocontrollers steuern ( IO-Pins, UART, SPI, Timer, etc.). Diese befinden sich physisch zwar auf dem Mikrocontroller-IC, logisch allerdings ausserhalb der CPU und werden über andere Befehle angesprochen als die normalen CPU-Register.

WOM

Write Only Memory - Nur Schreib-Speicher.

Derzeit ist nur ein Modell bekannt: Signetics 25120 9046xN (Datenblatt (PDF)). Weitere Berichte zu diesem zukunftsträchtigen Bauteil siehe The origin of the WOM - the "Write Only Memory" von Bob Pease. ;-)

WOMs lassen sich allerdings auch leicht selbst herstellen indem z.B. bei SRAMs der /OE-Pin entfernt wird.