|
Da der Prozessor 6502 einen 16 Bit breiten Adreßbus besitzt, kann er höchstens
65536 Bytes RAM direkt ansprechen. Beim C64 mit seinen 64 KByte RAM zuzüglich
der 20 KByte ROM für Betriebssystem und Zeichensatz war der
Prozessor also bereits an seinem Limit angelangt, wobei man hier schon ein wenig
tricksen mußte um sowohl ROM als auch RAM ansprechen zu können. Beim C128 mit seinem
doppelt so großen Hauptspeicher mußte man sich etwas anderes einfallen lassen.
Der C64 besitzt einen PLA-Baustein, der in Zusammenarbeit mit dem Prozessorport des 6510 das An- und
Abschalten der Betriebssystem-ROMs sowie des I/O Bereichs regelt. Dies ist zum Ansprechen
des Speichers "unter" den ROMs nötig. Aus Kompatibilitätsgründen (C64-Modus!)
wurde an diesem Mechanismus nichts geändert, sondern man entwarf einen neuen Baustein für die
Verwaltung des Speichers im C128. Heraus kam eine sogenannte MMU, eine Memory Management
Unit (Speicherverwaltungseinheit). Dieser Bausteins ist in der Lage, dem Prozessor
die 128 KByte des C128 stückweise zur Verfügung zu stellen. Der Prozessor selbst
bekommt davon nichts mit, er "sieht" immer nur 64 KByte Speicher. Wo sich dieser
Speicher tatsächlich befindet, das steuert die MMU.
Fähigkeiten der MMU
Dazu gibt es mehrere Möglichkeiten. Zum einen kann man zwischen maximal 4 verschiedenen
RAM-Bänken zu je 64 KByte umschalten. Der C128 verfügt in seiner Grundausstattung
über 2 Bänke, wovon eine dem Prozessor zur Verfügung gestellt werden
kann. Um die Datenübergabe zu vereinfachen, gibt es die Möglichkeit eine
sogenannte Common Area einzurichten, in der eine andere Speicherbank
"durchscheint". Diese Common Area kann sowohl am oberen als auch am unteren
Ende des Adreßbereichs eingerichtet werden und jeweils 1, 4, 8 oder 16 KByte
groß sein. Darüber hinaus kann man noch die Zeropage und den Stapelbereich
innerhalb des Adreßraums in 256 Byte-Schritten verschieben.
Die wichtigsten Einstellungen können über ein Konfigurationsregister getätigt
werden. Dazu gehören die Auswahl der Speicherbank und die Auswahl der
einzublendenden ROMs. Außerdem können 4 dieser Konfigurationen in MMU-
Registern gespeichert werden und mit einem einfachen Speicherzugriff
eingeschaltet werden. Um zu vermeiden dass man den Ast auf dem man sitzt absägt
finden sich 5 Register (das Konfigurationsregister sowie die 4
Prekonfigurationsregister) in jeder Konfiguration ab der Adresse $ff00 wieder.
Das Moduskonfigurationsregister beinhaltet einige spezielle Optionen wie die Auswahl
des zu verwendenden Prozessors (8502 oder Z-80), die Rechnerbetriebsart (C64 oder C128), der
Status der 80-Zeichen Taste und mehr.
Im RAM-Konfigurationsregister kann man noch die Position und Größe der Common Area einstellen sowie
die für den VIC-Chip zu verwendende Speicherbank.
Die MMU im 128er ist zwar ein wirklich interessanter Baustein, trotz ihres Namens ermöglicht sie aber nicht
die bei heutigen PMMUs gängige seitenweise Umsetzung von Virtuellen Speicheradressen in Physikalische, wie sie
beispielsweise für virtuellen Speicher benötigt wird. Auch gibt es keinen Speicherschutz oder ähnliches.
|