Die Komponenten des von Neumann Rechners: Der Hauptspeicher

Vorgestellt wird, wie der Hauptspeicher vom Prozessor über die Schnittstelle Adressregister und Datenregister angesprochen wird. Der Hauptspeicher kann als statischer oder dynamischer Speicher realisiert sein (SRAM oder DRAM).

Einordnung des Artikels

Übersicht

Der Hauptspeicher ist im Gegensatz zum permanenten Speicher (HD, siehe Die Komponenten des von Neumann Rechners: Externe Geräte) meist ein flüchtiger Speicher — ohne Stromversorgung gehen seine Inhalte nach kürzester Zeit verloren. Im Hauptspeicher werden die auszuführenden Programme und die von ihnen benötigten Daten abgelegt.

Für diese Einführung in die Informatik werden nur die wichtigsten Aspekte des Hauptspeichers erläutert:

Verbindung zum Prozessor

Der Prozessor kann den Hauptspeicher direkt ansprechen und dabei entweder den Inhalt einer Speicherzelle lesen (R = read) oder eine Speicherzelle beschreiben (W = write). Die Schnittstelle dazu sind das Adressregister und das Datenregister. Wie diese eingesetzt werden und welche Aufgabe dabei das Bussystem übernimmt, zeigt die folgende Abbildung.

Abbildung 1: Der Prozessor ist über Datenbus, Steuerbus und Adressbus mit dem Hauptspeicher verbunden. Soll eine Zelle des Hauptspeichers gelesen oder beschrieben werden, wird die Adresse zuerst im Adressregister abgelegt; soll eine Speicherzelle überschrieben werden, wird der neue Inhalt zunächst im Datenregister abgelegt. Über der Steuerbus erhält der Hauptspeicher den Befehl, ob die Speicherzelle gelesen (R) oder beschrieben (W) werden soll. Im Fall von R wird die Speicherzelle angesprochen (hier kommt der Adressdecoder AD zum Einsatz) und der Inhalt über den Datenbus zum Prozessor geschickt. Im Fall von W enthält der Datenbus das zu schreibende Byte, das zunächst im Datenregister abgelegt wird. Die Speicherzelle wird über den Adressdecoder angesprochen und mit dem Inhalt des Datenregisters überschrieben.Abbildung 1: Der Prozessor ist über Datenbus, Steuerbus und Adressbus mit dem Hauptspeicher verbunden. Soll eine Zelle des Hauptspeichers gelesen oder beschrieben werden, wird die Adresse zuerst im Adressregister abgelegt; soll eine Speicherzelle überschrieben werden, wird der neue Inhalt zunächst im Datenregister abgelegt. Über der Steuerbus erhält der Hauptspeicher den Befehl, ob die Speicherzelle gelesen (R) oder beschrieben (W) werden soll. Im Fall von R wird die Speicherzelle angesprochen (hier kommt der Adressdecoder AD zum Einsatz) und der Inhalt über den Datenbus zum Prozessor geschickt. Im Fall von W enthält der Datenbus das zu schreibende Byte, das zunächst im Datenregister abgelegt wird. Die Speicherzelle wird über den Adressdecoder angesprochen und mit dem Inhalt des Datenregisters überschrieben.

Statische und dynamische Hauptspeicher (SRAM und DRAM)

Man unterscheidet zwei Speicherzellen, die im Hauptspeicher verwendet werden können:

1. SRAM (static random access memory):

Jede Speicherzelle ist aus einem Flip-Flop aufgebaut, das vier oder sechs Transistoren enthält. Der Vorteil ist die hohe Geschwindigkeit, mit der eine Speicherzelle gelesen oder beschrieben werden kann der SRAM wird daher meist für Cache-Speicher eingesetzt). Der Nachteil ist, dass die Schaltungen eher aufwendig sind, viel Platz einnehmen und sehr teuer sind.

2. DRAM (dynamic random access memory):

Eine Speicherzelle enthält einen Kondensator und einen Transistor (als Schalter, der den Kondensator auf- oder entlädt) und ist somit im Prinzip wie eine monostabile Kippstufe aufgebaut. Allerdings wird der Kondensator mit einem Feldeffekt-Transistor (MOSFET) realisiert.

Der Nachteil des DRAM ist offensichtlich: Der Kondensator muss regelmäßig aufgefrischt (refresh) werden (in der Größenordnung von Milli-Sekunden), da er sich sonst entladen würde. Und dies macht die Kontrolle des Speichers deutlich schwieriger: Zum einen muss das Auffrischen organisiert werden, zum anderen ist der Speicher während des Auffrischens nicht ansprechbar; macht man die refresh-Periode zu lang, drohen Datenverluste.

Dem stehen als Vorteile gegenüber: Der DRAM ist deutlich kleiner und billiger als der SRAM und kann daher sehr leicht mit viel höheren Speicherkapazitäten als ein SRAM gebaut werden.

Die Bezeichnung dynamisch soll ausdrücken, dass der Speicher ständig in Bewegung gehalten werden muss, damit keine Daten verloren gehen: Die Speicherzellen sind in einer Matrix angeordnet, von der immer eine Zeile kopiert, verstärkt und wieder zurückgeschrieben wird.

Abbildung 2: Übersicht über die Arten von RAM.Abbildung 2: Übersicht über die Arten von RAM.

Speicherhierarchie

In der von Neumannschen Rechnerarchitektur werden einerseits logische und arithmetische Operationen und andererseits Speicher klar voneinander getrennt. Dies kann leicht dazu führen, dass Programme und Daten nicht schnell genug zum Prozessor geschickt werden können — die Zugriffszeit auf den Hauptspeicher kann somit eine Größe werden, die die Geschwindigkeit der Rechenoperationen maßgeblich bestimmt. Und die Tendenz geht dahin, dass die Prozessoren immer schneller und die Hauptspeicher immer größer werden, was das Problem nur verschärft. (Größere Hauptspeicher erfordern längere Adressen und damit wächst automatisch die Zugriffszeit.)

Man kann dem durch eine hierarchische Struktur des Speichers entgegenwirken. Dazu müssen mehrere Stufen (Hierarchien) von Speichern angeboten werden, wobei die schnellsten Speicher die geringste Speicherkapazität besitzen — dafür aber die am häufigsten benötigten Programmcodes und Daten beinhalten. Die folgende Abbildung zeigt diesen hierarchischen Aufbau.

Abbildung 3: Hierarchische Organisation des Speichers, auf den die ALU zugreifen muss. In den Registern befinden sich die schnellsten Speicher, nämlich Flip-Flops. Der Cache-Speicher ist in zwei Stufen zerlegt, die unterschiedlich groß sind und daher unterschiedliche Zugriffszeiten besitzen; beide sind als SRAM realisiert. Der Hauptspeicher ist ein DRAM und damit noch langsamer. Falls der Hauptspeicher nicht ausreicht, kann sogenannter virtueller Speicher auf der Festplatte gebildet werden, was aber noch langsameren Zugriff bedeutet.Abbildung 3: Hierarchische Organisation des Speichers, auf den die ALU zugreifen muss. In den Registern befinden sich die schnellsten Speicher, nämlich Flip-Flops. Der Cache-Speicher ist in zwei Stufen zerlegt, die unterschiedlich groß sind und daher unterschiedliche Zugriffszeiten besitzen; beide sind als SRAM realisiert. Der Hauptspeicher ist ein DRAM und damit noch langsamer. Falls der Hauptspeicher nicht ausreicht, kann sogenannter virtueller Speicher auf der Festplatte gebildet werden, was aber noch langsameren Zugriff bedeutet.

Der ALU werden zunächst die schnellsten Speicher zur Verfügung gestellt (Flip-Flops). Die Programmteile und Daten, die im Prozessor sehr oft benötigt werden, sind im Cache-Speicher abgelegt, auf den der Prozessor schneller zugreifen kann als auf den Hauptspeicher und so weiter. Es entsteht eine Hierarchie von Speichern, die nahe an der ALU sehr wenig Speicherkapazität besitzen (in Abbildung 3 symbolisiert durch ihre Größe), auf die aber sehr schnell zugegriffen werden kann (symbolisiert durch die Entfernung). Die größer werdende Speicherkapazität ist immer mit langen Zugriffszeiten verbunden. Bei einem geschickten Speichermanagement können kurze Zugriffszeiten (wie auf die Register) auf nahezu beliebig große Speicherkapazitäten realisiert werden.