next up previous contents
Nächste Seite: Virtuelle Speichertechnik Aufwärts: Architekturerweiterung und moderne Konzepte Vorherige Seite: Erhöhung der Wortbreite   Inhalt

Vergrößerung des Adreßraums

Durch Vergrößerung des Adreßraums lassen sich erheblich größere Arbeitsspeicher für umfangreiche System- und Anwendungsprogramme adressieren und externe Datenspeicher besser nutzen. Diese und weitergehende Forderungen nach verschieblichen (relocatable) Programmen und nach Schutzfunktionen für Betriebssystem und Anwenderprogramme führten zur Realisierung einer Speicherverwaltung (memory management). Ein größerer Adreßraum für Programme erfordert zunächst eine längere Adresse, z.B. 20 Bit für 1 MByte Adreßraum oder 24 Bit für 16 MByte. Im einfachsten Fall entspricht jeder logischen Adresse eine gleichlautende physikalische Adresse des Arbeitsspeichers. Diese bei 8-Bit-Mikroprozessoren mit 16-Bit-Adresse übliche Konfiguration ist bei beträchtlich größeren Adreßräumen aus Kostengründen nicht mehr realisierbar und auch nicht unbedingt die zweckmäßigste Lösung. In derartigen Rechnern ist dann eine Speicherverwaltungseinheit (MMU) notwendig. Sie ist zwischen CPU und Speicher angeordnet und transformiert den höherwertigen Adreßteil, womit das Programm im physikalischen Adreßraum verschoben wird. Mit der Speicherverwaltung können also logische und physikalische Adreßräume unterschiedlicher Größe aufeinander abgebildet werden.

Die Abbildung eines kleineren logischen Adreßraumes auf einen größeren physikalischen Adreßraum ist im einfachsten Fall durch eine Speicherbankumschaltung möglich, bei der z.B. mit einem logischen Adreßbereich von 64 kByte mehrere 64 kByte umfassende Speicherblöcke verfügbar sind.

Erwähnt werden soll hier auch noch die Overlay-Technik, bei der der Arbeitsspeicher durch einen externen Speicher ergänzt wird. Dabei wird ein Programm vom Programmierer in Gruppen von solchen Unterprogrammen zerlegt, die jeweils gleichzeitig im Hauptspeicher sein müssen. Das Hauptprogramm bleibt ständig im Arbeitsspeicher. Sprünge auf ein zur Zeit nicht speicherresidentes Unterprogramm werden vom Betriebssystem abgefangen und laden das benötigte Programm, wobei nicht mehr benötigte Programme zunächst aus-, dann überlagert werden. Der Rechneranwender braucht sich dabei nicht um die Transformationstabellen zwischen logischer und physikalischer Adresse zu kümmern.

Seitenadressierung und Segmentierung unterscheiden zwei Teile der logischen Adresse. Der obere Adreßteil beschreibt die Seiten- bzw. Segment-Adresse und der untere Adreßteil gibt die Wortadresse innerhalb der Seite bzw. des Segments an. Während bei Seitenadressierung die Seiten konstante Längen haben, kann die Segmentlänge der Programmsegmentlänge angepaßt werden.

Die Aufteilung der Adresse vergrößert den insgesamt verfügbaren Adreßraum nicht, bewirkt aber eine Verkürzung der Adreßlänge im Befehl. Erst die Zwischenschaltung einer Adreßtabelle bewirkt eine Verlängerung der Adresse und damit eine Vergrößerung des Adreßraums.

Bei beiden Methoden kann durch Austausch der Adreßtabellen dem Programm ein anderer Satz von Seiten oder Segmenten zugänglich gemacht werden. Damit wird der Multitask-Betrieb des Rechners unterstützt, und jede Task kann den vollen logischen Adreßraum ausnutzen. Selbstverständlich müssen gewisse Schutzfunktionen (z.B. Zugriffsrechte) die unerwünschte Beeinflussung zwischen unterschiedlichen Tasks ausschließen.


next up previous contents
Nächste Seite: Virtuelle Speichertechnik Aufwärts: Architekturerweiterung und moderne Konzepte Vorherige Seite: Erhöhung der Wortbreite   Inhalt
Lars Tornow 2003-04-02