Arbeitsspeicher / Hauptspeicher

Der Arbeitsspeicher ist ein wichtiger Teil eines Computers und ein wesentlicher Faktor für die Leistungsfähigkeit eines Computersystems, wenn es um die Verarbeitung von großen Datenmengen geht. Hier spielt die Lese- und Schreibgeschwindigkeit und auch die Speicherkapazität ein große Rolle.
Da der interne Speicher eines Prozessors in der Regel zu klein und der Zugriff auf die Festplatte zu langsam ist, dient der Arbeitsspeicher als Ablage für Daten und Programmcode, der verarbeitet werden muss oder verarbeitet und zwischengespeichert werden muss. Der Arbeitsspeicher dient als Zwischenspeicher auf dem Weg zwischen Prozessor und Festplatte oder Ein- und Ausgabeeinheiten.

Speicherkonzept eines Computers

Der Arbeitsspeicher wird auch als Hauptspeicher bezeichnet. Manchmal verwendet man auch RAM, die Abkürzung für Random Access Memory. Obwohl RAM einen Halbleiterspeicher bezeichnet, ist diese Benennung nicht falsch. In praktisch jedem Computer, sowohl in der Vergangenheit, heute und auch in der Zukunft, wird eine Art von RAM als Arbeitsspeicher verwendet. RAM zeichnet sich durch den wahlfreien Zugriff, sowohl lesend, als auch schreibend, aus. Das ist das, was ein Arbeitsspeicher im wesentlichen können muss.

Virtueller Arbeitsspeicher

Prinzipiell ist der physikalische Arbeitsspeicher auf die Größe des eingebauten Arbeitsspeichers begrenzt. Doch Computersysteme mit Festplatte oder Massenspeicher können ihren Arbeitsspeicher virtuell vergrößern. Dazu bekommen die Applikationen nicht den physischen Speicher, sondern nur einen eigenen virtuellen Adressraum zu sehen. Der wird vom Betriebssystem zur Verfügung gestellt. Dabei kommt es vor, dass den Applikationen mehr virtueller Speicher zur Verfügung steht, als Arbeitsspeicher physikalisch vorhanden ist. Wenn alle gestarteten Applikationen mehr physischen Speicher benötigen als vorhanden ist, dann lagert das Betriebssystem die Daten auf die Festplatte aus. Das bedeutet aber auch, dass das Gesamtsystem langsamer wird. Denn Festplatten-Zugriffe benötigen mehr Zeit, als der Zugriff auf den Arbeitsspeicher.

Speichermodule / Speicherriegel

Speichermodule
Um Computer flexibel mit Arbeitsspeicher auszustatten, wird der Arbeitsspeicher nicht fest im Computer eingebaut, sondern auf Speichermodule ausgelagert. Das sind kleine steckbare Platinen, auf denen die Speicherchips gelötet sind. Man bezeichnet diese Bauform als Speichermodul. Diese Speichermodule werden in die dafür vorgesehenen Steckplätze auf dem Motherboard gesteckt. Da nicht alle Speichermodule identisch sind, sondern für verschiedene Anwendungen optimiert und von verschiedenen Hersteller gefertigt werden, muss der Speichercontroller mit unterschiedlich vielen Bausteinen zurechtkommen. Damit das gelingt sind die Speichermodule und die Speicherorganisation in der PCxxxx-Spezifikation der JEDEC standardisiert.

Speicher-Controller

Die Speichermodule haben keine eigene Logik. Es sind nur Platinen mit Speicherchips drauf. Den Zugriff auf den Speicher koordiniert deshalb ein Speicher-Controller. Der Speicher-Controller ist das Bindeglied zwischen Prozessor und Arbeitsspeicher oder zwischen Chipsatz und Arbeitsspeicher.

Speicher-Controller binden die Speichermodule in einem oder mehreren Speicherkanälen an. Die Speicherkanäle sind mit einem oder mehreren Speichermodulen bestückt. Der Speicher-Controller liest zu Beginn des Bootvorgangs die zulässigen Betriebsparameter vom Speichermodul aus und wählt diese nach den des Speichermoduls aus. Welche Werte der Speicher-Controller ausgewählt hat, kann man zum Beispiel mit dem Programm CPU-Z (Windows) ermitteln.
Speicher-Controller im Chipsatz
In der Anfangszeit war der Speicher-Controller im Chipsatz integriert. Daten und Programmcode musste deshalb immer den Umweg über den Chipsatz machen. Mit zunehmender Taktfrequenz und Integrationsdichte wurden Prozessoren bei der Datenverarbeitung immer schneller. Deshalb musste die Geschwindigkeit des Arbeitsspeichers im Laufe der Zeit immer wieder angehoben werden.
Kann der Prozessor die Daten aus dem Arbeitsspeicher nicht schnell genug lesen, dann sinkt die effektive Rechenleistung des Prozessors. Deshalb sind die Prozessor-Hersteller diejenigen, die an der Beschleunigung des Arbeitsspeichers am meisten interessiert sind. Schließlich wollen sie, dass ihre Prozessoren ihre Leistungsfähigkeit optimal ausreizen können.

Speicher-Controller im Prozessor
Doch nicht nur an der Beschleunigung des Arbeitsspeichers, sondern auch an der Beschleunigung der Verbindung zwischen Prozessor und Arbeitsspeicher sind die Prozessor-Hersteller interessiert. Deshalb bauen die Prozessor-Hersteller den Speicher-Controller gleich in den Prozessor mit ein, um den Arbeitsspeicher auf möglichst kurzem und schnellem Wege an den Prozessor anzubinden.
Der im Prozessor eingebaute Speicher-Controller hat positive Auswirkungen auf das Gesamtsystem. Zum Einen, verkürzt die direkte Anbindung des Speichers an den Prozessor die Latenzzeit bei den Zugriffen. Das bedeutet auch, dass der Prozessor insgesamt mit kleineren Caches auskommt. Außerdem ist der Datenverkehr zwischen CPU, Speicher und Peripherie entkoppelt. Der Datentransfer der Peripherie kann jetzt dem Datenverkehr zum Speicher nicht mehr in die Quere kommen.

Mit jeder neuen Prozessor-Generation wächst die Zahl der Prozessorkerne. Und verbesserte Prozessor-Architekturen erhöhen die Anforderungen an die Datentransferleistung des Arbeitsspeichers. Der Prozessor hat neben mehr Kernen auch immer mehr und immer breitere Speicherkanäle, mit denen er die Speichermodule anbindet.

32-Bit-Grenze / 4-GByte-Beschränkung

Viele Fragen sich: Warum kann ich in meinem Computer nicht 4 GByte Arbeitsspeicher ansprechen? Das Betriebssystem zeigt mir nur etwas über 3,5 GByte an.

Die Grenze eines 32-Bit-Windows liegt übrigens nicht bei 4, sondern bei 2 GByte. Die meisten 32-Bit-Anwendungen können unter Windows nicht mehr als 2 GByte virtuellen Speicher nutzen. Der virtuelle Speicher bezieht neben dem physikalischen Arbeitsspeicher auch die Auslagerungsdatei mit ein. Windows legt eine Auslagerungsdatei an, um wenig genutzte Teile des Arbeitsspeichers in eine Datei auf der Festplatte auszulagern, um so den physikalischen Arbeitsspeicher möglichst groß zu halten.
Während also normale Programme nur 2 GByte zu sehen bekommen, können es bei speziellen Programmen auch mehr als 2 GByte sein. Dazu muss das Programm entsprechend compiliert sein und Windows mit bestimmten Bootoptionen ausgeführt werden. Das Verfahren nennt sich Physical Adress Extension (PAE). Es arbeitet mit eingeblendeten Speicherfenstern und erinnert an EMS aus DOS-Zeiten. PAE ist genauso umständlich und zeitraubend.
Der PAE-Modus wurde entwickelt, um Speicher- und Schnittstellenadressen bis 36 Bit (64 GByte) adressieren zu können. Doch dabei müssen CPU, Chipsatz und Betriebssystem mitspielen. Weil manche Treiber und Anwendungen bei PAE-Zugriffen auf hohe Adressen abstürzen, ist der Adressraum bei Windows XP und Vista auf 32 Bit beschränkt.

Zwar reichen die 32 Bit mit PAE für 4 GByte Arbeitsspeicher aus, doch es will nicht nur der Arbeitsspeicher, sondern auch die anderen Hardware-Komponenten adressiert werden. Die Speichergröße des Arbeitsspeichers ist hauptsächlich von der Speichergröße der Grafikkarte abhängig. Zusätzliche I/O-Adressen von Erweiterungskarten und Schnittstellen belegen weitere Adressen unterhalb der 4-GByte-Grenze. Deshalb kann man unter einem 32-Bit-Windows in der Regel nur auf etwas über 3 GByte Arbeitsspeicher zugreifen.
Es lohnt sich also kaum, in einem Computer mit einem 32-Bit-Windows mehr als 3 GByte Arbeitsspeicher einzubauen. Allein der Ausbau des Arbeitsspeichers auf mehr als 2 GByte ist nur in wenigen Fällen sinnvoll. Nämlich dann, wenn mehrere speicherintensive Programme gleichzeitig laufen. 2 GByte Arbeitsspeicher gelten als vernünftige und praktische Grenze für ein 32-Bit-Windows.

Wer mehr als 32 Bit braucht, der sollte gleich ein 64-Bit-Betriebssystem einsetzen. Doch auch allein mit einem 64-Bit-Betriebssystem kommt man nicht weit. Denn ein 64-Bit-Betriebssystem erkennt unter Umständen auch nur 7,2 von 8 GByte Arbeitsspeicher. Woran kann das liegen? Es ist das gleiche Problem wie mit einem 32-Bit-Betriebssystem.
Die I/O-Adressbereiche von Erweiterungskarten und Schnittstellen überlagern die Speicheradressen unterhalb der 32-Bit-Grenze. Und die kann Windows dann nicht für den Arbeitsspeicher verwenden. Alle Komponenten in einem PC werden über den I/O-Adressbereich angesprochen, der unterhalb der 32-Bit-Grenze liegen muss. Je mehr Komponenten ein PC enthält, desto größer fällt der I/O-Adressbereich aus und desto mehr Adressen fehlen dann für den Arbeitsspeicher. Je nach Ausstattung und BIOS des PCs kann ein Adressbereich blockiert sein, der 0,5 bis 1,2 GByte entspricht.
Damit der voll Arbeitsspeicher erkannt und genutzt werden kann, muss das BIOS mit Memory Remapping (Memory Hoisting oder Reclaim) den Adressbereich des physischen RAM über die höchste Adresse des eingebauten RAMs verlagern. In der Regel über 32 Bit (4 GByte). Doch wenn 8 GByte RAM eingebaut sind, dann müssen die verlagerten Adressen über 33 liegen. Doch das unterstützt nicht jedes BIOS und auch nicht jeder Speicher-Controller. Es tritt das gleiche Problem auf, wie schon bei der 32-Bit-Grenze.

Die Voraussetzung um den ganzen Arbeitsspeicher über 2 GByte nutzen zu können ist nicht nur ein 64-Bit-Betriebssystem. Es ist auch ein dafür geeignetes Motherboard notwendig, das Adressen jenseits von 32 Bit unterstützt und auch Remapping-Funktionen enthält.

Übersicht: Halbleiterspeicher