MAXQ
Aus der Mikrocontroller.net Artikelsammlung, mit Beiträgen verschiedener Autoren (siehe Versionsgeschichte)
MAXQ ist eine Mikrocontrollerfamilie von Maxim, ungefähr in der PIC/AVR/MSP430-Klasse. Ungewöhnlich ist allerdings die Architektur, in mehrerlei Hinsicht.
Es gibt nur einen einzigen Befehl im klassischen Sinne. Das Befehlswort ist 16 Bit breit und besteht aus:
- einer 7 Bit breiten Zieladresse
- einer 8 Bit breiten Quelladresse oder einer 8 Bit breiten Konstante
- einem Bit das angibt ob es sich um eine Quelladresse oder eine Konstante handelt.
Rechenoperationen werden durch den Zugriff auf spezielle Steuerregister realisiert, Sprünge durch Schreibzugriffe auf die Adresse des Program Counters, für Speicherzugriffe kann man z. B. einen Teil des Speichers in den Befehls-Adressbereich einblenden.
Weitere Besonderheiten:
- Sowohl byte- als auch wortadressierend. Bytes werden byteweise, Worte wortweise adressiert, daher ist nur die erste Hälfte des 64KW grossen Datenadressraums byteweise verwendbar und um ein Wort byteweise adressieren zu können, muss die Adresse umgerechnet werden.
- Wird RAM im Codeadressraum eingeblendet, liegt es an einer andere Adresse als im Datenadressraum. Das gilt umgekehrt auch für Flash-ROM im Datenadressraum.
- Code im Flash-ROM kann nicht auf Daten im Flash-ROM zugreifen, Code im RAM nicht auf Daten im RAM. Deshalb existiert ein separater ROM-Speicher mit Hilfsfunktionen für Datenzugriffe.