Arbeitsspeicher

Nicht nur die Rechenleistung der CPU eines Rechners ist für die Performance ausschlaggebend, sondern auch der Arbeitsspeicher. Neue Technologien, schnellere Chips und verschiedene Bauarten machen es immer schwieriger, das richtige Speichermodul für den jeweiligen Rechner zu finden. Einige typische Begriffe sind in diesem Kapitel beschrieben.

 

Speichertechnologien

Prinzipiell kann man zwischen statischen, dynamischen und nicht flüchtigen Speichertechnologien unterscheiden.

Nicht flüchtige Speicher

Allen nicht flüchtigen Speichern ist gemeinsam, dass sie ihren Inhalt, also die abgespeicherten Daten, auch dann behalten, wenn die Betriebsspannung abgeschaltet wird. Als Beispiele seien hier EEPROMs und die zu dieser Gruppe gehörenden Flash-Speicher genannt.

EEPROM, E²PROM: Electrically Erasable Programmable Read- Only Memory Als EEPROM werden sämtliche nicht flüchtigen Speicher bezeichnet, deren Inhalt auf elektrischem Wege (und nicht z.B. durch Bestrahlung mit UV-Licht wie bei seinem Vorgänger, dem EPROM) verändert bzw. gelöscht werden kann. Es gibt mehrere Architekturen, die sich durch unterschiedliche elektrische Eigenschaften unterscheiden. EEPROMs finden sich z.B. auf diversen Speichermodulen, wo die jeweiligen Moduleigenschaften (Betriebsspannung, Zugriffszeiten, Bankaufbau, Fehlerkorrektur usw. bis hin zum Hersteller) in codierter Form abgespeichert sind. (z.B. SPDs auf SDRAM DIMMs)

Flash Memory Flash-Speicher sind dadurch gekennzeichnet, dass einzelne Bytes adressiert und ausgelesen, Schreib- und Löschvorgänge aber nur blockweise erfolgen können. Die Lese-Zugriffszeiten betragen etwa das Doppelte von dynamischen Speichern und liegen derzeit bei etwa 100ns. Die Anzahl der Programmier- und Löschzyklen ist begrenzt und liegt etwa bei 100.000. Im Allgemeinen wird ein Datenerhalt über einen Zeitraum von 10 Jahren garantiert. Flash Memory ist u.a. als SIMM, PC-Card (PCMCIA), Compact Flash (CF) Card, Miniature Card (MC) und Solid State Floppy Disc Card (SSFDC) erhältlich. Unabhängig vom Äusseren gibt es zwei Haupttypen von Flash-Speichermodulen: Linear Flash und ATA Flash. Linear Flash Module besitzen einen "linearen" Adressraum, wobei jede beliebige Adresse von aussen direkt angesprochen werden kann. Im Gegensatz hierzu findet bei ATA-Flashkarten intern eine Adressumsetzung statt, so dass diese Variante mehr wie eine Festplatte angesprochen werden kann, was u.U. die Treiberprogrammierung vereinfacht. Flash-Module werden z.B. in Notebooks, Network-Routern, Druckern, PDAs und Digitalkameras als Massen- oder Programmspeicher verwendet.

Dynamische Speicher

DRAM: Dynamic Random Access Memory DRAM ist ein dynamischer Speicher mit wahlfreiem Zugriff. Dieser Speichertyp wird im Allgemeinen als Hauptspeicher eingesetzt.

Dynamische Speicher sind gekennzeichnet durch die Speicherung der Information in einem Kondensator, der ähnlich wie ein Akku Energie aufnehmen und eine gewisse Zeit halten kann. Soll z.B. eine logische Eins gespeichert werden, wird dieser Kondensator aufgeladen, bei einer logischen Null entladen. Die Kondensatoren sind in einer Matrix aus Reihen und Spalten angeordnet. Um die Chips mechanisch klein zu halten und um Anschlüsse und damit Kosten zu sparen, erfolgt die elektrische Ansteuerung dieser Bausteine in zwei Stufen: Die Adresse eines Datums wird entsprechend der Matrix aufgeteilt in eine Reihen- (Row-) Adresse und eine Spalten- (Column-) Adresse, die nacheinander über die gleichen Anschlüsse am Chip übermittelt werden. Der Vorteil dieser Technologie ist, dass sie relativ preiswert und mit grossen Dichten hergestellt werden kann. Der Nachteil ist, dass der Kondensator nicht ideal produziert werden kann: Wiederum ähnlich einem Akku, der lange Zeit nicht benutzt wird, entlädt sich dieser Kondensator. Um zu verhindern, dass die Daten unbrauchbar werden, müssen sie in regelmässigen Abständen aufgefrischt werden (Refresh). Es gibt mehrere Weiterentwicklungen dieser grundlegenden Architektur, die kurz angesprochen werden sollen:

FPM: Fast Page Mode Speicherbausteine mit Fast Page Mode sind eine Weiterentwicklung der "Standard"-DRAM Speicher, die durch eine besondere Ansteuermöglichkeit die technologiebedingten Verzögerungszeiten bei bestimmten Anwendungen beschleunigen. Meistens werden innerhalb von Computerprogrammen zusammenhängende Speicherinhalte vom Prozessor bearbeitet. Bei einem Zugriff auf eine Speicherbank wird normalerweise zuerst die Reihen- und dann die Spaltenadresse übertragen. Bei aufeinander folgenden Speicheradressen ändert sich hingegen nur die Spaltenadresse, weil die aufeinander folgenden Daten in der gleichen Reihe (in der gleichen "page") liegen: Ein erneutes Übertragen der nicht veränderten Reihenadresse ist eigentlich unnötig. Diesen Umstand macht sich der Fast Page Mode zunutze. Dabei werden nur beim ersten Zugriff die Reihen- und die Spaltenadressen übertragen, bei den darauf folgenden Zugriffen nur noch die Spaltenadressen, so dass die Zykluszeit bis zum Anliegen der Daten an den Ausgängen der Speicherbank verkürzt wird. Dieser Modus muss natürlich vom verwendeten System und dessen Chipsatz unterstützt werden.

EDO: Extended Data Output Speicherbausteine mit EDO stellen eine Weiterentwicklung gegenüber den FPM-Speichern dar, wo ebenfalls durch bestimmte Ansteuertechniken der Speicherzugriff beschleunigt wird. Bei FPM-Speichern wird das elektrische Signal der Datenleitungen gelöscht (nicht zu verwechseln mit dem Inhalt der Speicherzelle, dieser bleibt erhalten!), wenn eine neue Adressinformation angelegt wird. Da die Weiterverarbeitung der Daten eine gewisse Zeitspanne in Anspruch nimmt, gibt es einen Zeitraum, in dem der Speicher "stillgehalten" werden muss, damit die an den Datenleitungen anliegenden elektrischen Signale aufgenommen und weiterverarbeitet werden können. Bei EDO-Speichern ist die Ausgangsstufe so gestaltet, dass anliegende Informationen auch dann beibehalten werden, wenn eine neue Adresse übertragen wird. Auf diese Weise kann simultan das anliegende Datenwort verarbeitet und die nächste angeforderte Adresse in den Speicherbaustein geladen werden. Auch hierdurch werden die Zykluszeiten verkürzt.

BEDO: Burst Extended Data Output Als eine Weiterentwicklung der EDO Speichermodule gilt der BEDO als der letzter asynchrone DRAM. Durch sein zeitgleiches Erscheinen mit den SDRAM Modulen hatte er nie eine Gelegenheit, sich auf dem Markt durchzusetzen. Er ist durch einen zusätzlichen Burst-Modus gekennzeichnet. Nach einer Adressübermittlung gibt das Modul den Zelleninhalt wie bei einem EDO-RAM aus, hängt aber die folgenden drei Zelleninhalte mit einem Taktzyklus von einem Takt pro Wert an.

SDRAM: Synchronous Dynamic Random Access Memory Ähnlich wie FPM und EDO stellt die SDRAM-Technologie eine Weiterentwicklung bereits vorhandener Speicherarchitekturen bzw. deren Zugriffsmodi dar. Anders als bei FPM oder EDO ist die SDRAM-Technologie allerdings nicht rückwärtskompatibel, d.h. SDRAM-Speicher können nur in solchen Rechnersystemen eingesetzt werden, die diese Technologie auch ausdrücklich unterstützen. Die Weiterentwicklung bei SDRAM stellt nichts anderes dar als die Verlagerung eines Teils des Memory-Controllers auf den Speicherchip. Dieser Schritt ist in etwa vergleichbar mit der Einführung von IDE-Festplatten (SCSI Platten sind hier vielleicht ein besseres Beispiel), die ja auch den auf ihre speziellen Bedürfnisse zugeschnittenen Controller mit im Gehäuse eingebaut haben. Wie auch die FPM- oder EDO-Zugriffsarten kann die SDRAM-Technologie ihre Stärken bei im Adressraum aufeinander folgenden Daten ausspielen. Der typische SDRAM-Zugriff erfolgt, wie bei allen DRAM-Typen, mit der aufeinander folgenden Übermittlung der Reihen- und der Spaltenadresse. Anders als bei bisherigen Technologien erfolgt während dieser Adressierung auch eine "Befehlsübermittlung" an das SDRAM, wobei auf dem Speicherchip je nach Befehl festgelegte Abläufe in Gang gesetzt werden. Ein typischer Befehl könnte z.B. etwa lauten: Auslesen der Adresse X und der drei darauf folgenden Adressen. In diesem Fall wird mit dem Befehl zusammen der Wert für die Startadresse X übermittelt und ohne weiteres Zutun werden die Inhalte der vier aufeinander folgenden Adressen übermittelt. Da der Zeitpunkt, zu dem die angeforderten Daten Gültigkeit besitzen, feststehen muss, werden SDRAM-Bausteine mit einem Taktsignal versorgt, mit dem alle Vorgänge synchronisiert werden. Die Verwendung von SDRAM-Speichern bringt dann Geschwindigkeitsvorteile, wenn grosse Datenmengen blockweise übertragen werden müssen, z.B. bei grossen Grafiken.

DDR SDRAM: Double Data Rate SDRAM Der DDR SDRAM, meist auch SDRAM II genannt, ist eine schnellere Version des SDRAMs. Er wurde dahingehend weiterentwickelt, dass er Daten auf der steigenden und auf der abfallenden Flanke der System-Clock lesen kann und somit die Transferrate des Speichers verdoppelt. Die maximale Transferrate dieser Technologie liegt bei 1 GB/s.

RDRAM: Rambus DRAM Rambus DRAM basiert auf einer von der Firma Rambus Inc. entwickelten komplett neuen Technologie. Durch die grundlegende Überarbeitung und Neudefinition seiner inneren Struktur wie Leiterbahnlängen, Pin-Kapazitäten und Spannungsschwankungen ist der RDRAM in der Lage, sehr hohen Leistungsansprüchen gerecht zu werden. Der Speicher wird auf der steigenden und auf der abfallenden Flanke der System-Clock angesprochen. Ein Einkanal-Rambus-Speicher liefert mit 1,6 GB/s eine um den Faktor 3 höhere Leistung als ein 64-bit-100-MHz-SDRAM-Modul. Der Hauptvorteil der Rambus-Technologie liegt darin, dass 2 Rambus Kanäle (demnächst auch 4 Kanäle) parallel genutzt werden können. Somit sind mit 2 Kanälen eine Bandbreite von 3,2 GB/s und mit 4 Kanälen eine Bandbreite von 6,4 GB/s erreichbar.

Statische Speicher

Statische Speicher werden aufgrund ihrer Schnelligkeit als Cache-Speicher eingesetzt. Im Gegensatz zu den dynamischen Speichern brauchen sie keinen Refresh (Auffrischung) des Speicherinhaltes. Ein statischer Speicher arbeitet pro Speicherzelle mit einer aus mehreren Bauelementen bestehenden Schaltung, die - ausgehend vom zu speichernden Datum - einen bestimmten Zustand einnimmt und sich dann selbst verriegelt, so dass eine Zustandsänderung nur von aussen vorgenommen werden kann. Ein statischer Speicher verliert seinen Dateninhalt erst, wenn die Versorgungsspannung zusammenbricht. Aufgrund des komplexeren Aufbaus der Speicherzelle können statische Speicher nur mit geringeren Dichten gebaut werden als dynamische Speicher. Ausserdem sind sie - bei vergleichbarer Speicherkapazität - wesentlich teurer als dynamische Speicher.

 

Modulbauformen

Warum Module? Moderne Rechnersysteme verlangen nach Speichergrössen, die in Datenbreite (also der Anzahl der verwendeten Datenbits) und Adressraumtiefe (also der Anzahl der Datenwörter, die im Speicher untergebracht werden können) nicht mit einem einzelnen Speicherchip realisiert werden können. Daher werden aus einzelnen Speicherchips Module gebaut, die elektrisch quasi wie ein grosser Chip angesteuert werden können. Man unterscheidet zwischen folgenden verbreitet eingesetzten Bauformen:

SIMM: Single Inline Memory Module SIMMs haben auf beiden Seiten der Platine Kontaktflächen, die jedoch miteinander verbunden sind. Demnach hat ein 72-Pin-SIMM 144 Kontaktflächen, von denen jedoch nur 72 elektrisch relevant sind.

DIMM: Dual Inline Memory Module Ein DIMM hat auf beiden Seiten der Platine Kontaktflächen, wobei hier allerdings gegenüberliegende Kontakte elektrisch voneinander isoliert sind. Dadurch steht bei gleicher Modulgrösse eine grössere Anzahl von elektrischen Anschlüssen (= doppelt so viele wie bei einem vergleichbaren SIMM) zur Verfügung, so dass auch eine grössere Anzahl von Datenbits oder ein grösserer Adressraum angesprochen werden kann. Darüber hinaus wird die Anzahl von Anschlüssen für Betriebsspannungen und Steuersignalen vergrössert, was Vorteile hinsichtlich des Designs der Platine und somit der elektrischen Eigenschaften des Modules mit sich bringt. DIM-Module sind mittlerweile Standard im PC- und Workstation-Bereich.

PC-100 Die ersten verfügbaren SDRAM Chips und -Module wurden mit einer Taktfrequenz von 66 MHz betrieben - eine Geschwindigkeit, bei der EDO Speicher in etwa auch betrieben werden können. Von Intel wurden allerdings bald Versuche unternommen, diese Taktfrequenz und damit die Zugriffsgeschwindigkeit zu erhöhen. Diese Versuche resultierten in der sog. PC-100-Norm, die von einer Memory-Taktfrequenz von 100 MHz ausgeht, und mit der Intel Spezifikationen hinsichtlich der zu verwendenden Speicherchips, des Aufbaus der Platine, der Topologie der Leiterbahnen usw. veröffentlichte. Die geringfügige Erhöhung der Taktfrequenz um den Faktor 1,5 verursacht allerdings eine weitaus grössere Zunahme der technologischen Probleme, die dieser Frequenzbereich mit sich bringt. So müssen PC-100 taugliche Speichermodule mit einer vielfach grösseren Genauigkeit entwickelt und gefertigt werden als vergleichbare bisherige Modelle. Mittlerweile sind von mehreren Herstellern Chipsätze auf dem Markt, die 100 MHz Bustakt unterstützen. In diesem Zusammenhang ist jedoch wichtig, dass auch die verwendeten Prozessoren dafür ausgelegt sein müssen.

PC-133 Wie auch in der Prozessorweiterentwicklung immer höhere Taktraten erzielt werden, bleibt die Speicherentwicklung auch nicht stehen. Kontinuierliche qualitative Verbesserungen haben es ermöglicht, die PC-133-Norm zu verabschieden. Die Speicher haben die gleiche Bauform wie die PC-100-Module, werden jedoch mit 133 MHz Takt betrieben.

 

Begriffe rund um den Speicher

Cache Ein Cache ist ein relativ kleiner Hochgeschwindigkeitsspeicher, üblicherweise SRAM, der häufig benötigte Daten zwischen der CPU und dem Hauptspeicher puffert. Die CPU kann auf Daten im Cache sehr viel schneller zugreifen als auf Daten aus dem Hauptspeicher. Ein kleiner Cache-Speicher kann daher die Performance eines Computers ohne grosse zusätzliche Kosten erheblich verbessern. Bei Cache wird - je nach Position des Speichers im Datenstrom - zwischen verschiedenen Levels unterschieden.

Level 0 Cache: Entkoppelt den Datenstrom der unterschiedlichen Recheneinheiten innerhalb der CPU. Seine Grösse liegt bei etwa 1 Byte bis 128 Byte.

Level 1 Cache: Entkoppelt den Datenstrom innerhalb der CPU von der Aussenwelt, Grösse von wenigen Bytes (128) bis zu mehreren KBs.

Level 2 Cache: Entkoppelt den Datenstrom der CPU vom Memory Bus, an dem der Hauptspeicher angeschlossen ist. Grösse von 256 KBs bis zu mehreren MBs.

Level 3 Cache: Entkoppelt bei Mehrprozessorsystemen den separaten Systembus vom Memory Bus.

Parity/Non-Parity Durch äussere Einflüsse (elekto-magnetische Felder, Spannungsschwankungen, radioaktive Strahlung (natürliche Höhenstrahlung, etc.) können einzelne Datenbits "umkippen": Aus einer logischen Null wird eine Eins und umgekehrt. Dadurch werden die gespeicherten Daten verändert. Non-Parity-Module speichern nur Daten und bieten keine Fehlerfeststellung. Parity-Module hingegen speichern Daten- und Prüfsummen-Informationen. Dies geschieht derart, dass bei einer geraden Anzahl von gesetzten bits das Parity-bit ebenfalls gesetzt ist: Bei einer ungeraden Anzahl von gesetzten bits ist es gelöscht. Mit Hilfe der Parity Technik werden Ein-bit-Fehler erkannt. Da keine Fehlerkorrektur stattfindet, werden die meisten Systeme beim Auftreten eines Parity-Fehlers mit einer Fehlermeldung angehalten. Normalerweise wird ein Parity-bit pro Byte (8 bit) Daten gespeichert. Vorsicht: Wenn durch äussere Einflüsse zwei bits in einem Datenwort ihren Inhalt geändert haben, bleibt die Prüfsumme gleich und der Fehler bleibt unbemerkt! Die Gefahr, dass so etwas passiert, ist allerdings sehr gering.

ECC: Error Checking and Correcting Das ECC-Verfahren ermöglicht, Ein- und Zwei-bit-Fehler zu erkennen. Ein-bit-Fehler können darüber hinaus sogar korrigiert werden. Gelegentlich wird das zugrunde liegende Verfahren auch als EDC, Error Detection and Correction, bezeichnet. Mit Hilfe entsprechender Algorithmen werden blockweise Prüfsummen (ähnlich wie beim CRC-Verfahren) gebildet und in eigenen Speicherbereichen abgelegt. Anhand dieser Prüfsummen können einzelne Bitfehler erkannt und korrigiert werden. Der Software-Anwender merkt wie bei der Fehlerkorrektur der Audio-CD nichts von diesem Vorgang.

Memorybus

Der Memorybus ist der Systembus zwischen I/O und CPU, der mit Hilfe des Chipsets den Hauptspeicher (Memory) ansteuert. Er besteht aus dem Adressbus und dem Datenbus.

SOJ Small Outline J-Lead (Chip).

TSOP Thin Small Outline Package (Chips).

Welcher Speichertyp für welchen Rechner? Prinzipiell kommen die Vorgaben, welchen Speichertyp man verwenden kann, vom Hardwarehersteller, der den Speicher anhand seiner System-Spezifikationen festlegt. Server sollten nach Möglichkeit immer mit ECC ausgestattet sein. Innerhalb einer Speicherbank müssen die Module identisch sein. Die verschiedenen Bänke können jedoch je nach Systemvorgaben im Allgemeinen mit Speichermodulen unterschiedlicher Kapazität und Hersteller bestückt werden. Im Zweifelsfall sollte allerdings das Handbuch des Systems zu Rate gezogen werden.