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
- Einführung in die Informatik
- Rechnerarchitektur
- Die Komponenten des von Neumann Rechners: Der Hauptspeicher
- Rechnerarchitektur
Ü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:
- Da der Hauptspeicher zusammen mit dem Prozessor die Zentraleinheit eines Computers bildet, ist insbesondere der Datenaustausch zwischen Hauptspeicher und Prozessor relevant, um die von Neumann Rechnerarchitektur besser zu verstehen. Im Kapitel Die Komponenten des von Neumann Rechners: Der Prozessor wird dies nochmals aus der Sicht des Prozessors beschrieben.
- Durch die Organisation einer Speicherhierarchie vermeidet man, dass ein Computer einen Hauptspeicher mit fester Speicherkapazität besitzt. Die Hierarchie sorgt dafür, dass der Hauptspeicher (nahezu) beliebig groß ist und dennoch auf häufig benötigte Inhalte schnell zugegriffen werden kann.
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.
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.
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.
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.