Der Arbeitsspeicher oder Hauptspeicher ist in der Informationstechnik der Speicher eines Computers, in dem Datenobjekte, also Programme und die von diesen in Mikroprozessoren zu verarbeitenden Nutzdaten, abgelegt und zu einem späteren Zeitpunkt (unverändert) abgerufen werden können. Der Unterschied zu Festplatten, die formal dieselbe Funktion erfüllen, liegt im ungleich schnelleren Zugriff und der fehlenden Fähigkeit, die Daten trotz Stromunterbrechung weiterzuspeichern. Die Informationspsychologie verwendet den Ausdruck „Arbeitsspeicher“ als ein Synonym für den menschlichen „Kurzspeicher“ oder „Kurzzeitspeicher“.
Inhaltsverzeichnis |
Der Arbeitsspeicher des Computers ist ein durch Adressen (in Tabellenform) strukturierter Bereich, welcher Binärwörter fester Größe aufnehmen kann. Der Arbeitsspeicher moderner Computer ist flüchtig, d. h. dass alle Daten nach dem Abschalten der Energieversorgung verloren gehen – der Hauptgrund hierfür liegt in der Technologie der DRAMs. Verfügbare Alternativen wie etwa MRAM sind allerdings für die Verwendung als Arbeitsspeicher noch zu langsam.
Die häufigste Bauform für den Einsatz in Computern ist das Speichermodul. Es ist zwischen verschiedenen RAM-Typen zu unterscheiden. Während bis Ende der 1990er vorwiegend SIMMs mit FPM- oder EDO-RAM üblich waren, kommen in heutigen Computern in erster Linie DIMMs mit z. B. SD-, DDR-, DDR2- oder DDR3-SDRAMs zum Einsatz.
Um den physischen Arbeitsspeicher zu erweitern, können moderne Betriebssysteme zusätzlichen virtuellen Arbeitsspeicher auf Massenspeichern allozieren (platzieren, zuteilen). Diesen Speicher nennt man auch Swapspeicher.
Um diese Erweiterung transparent zu realisieren, bedient man sich eines virtuellen Speicherraumes, in dem sowohl der physische als auch der virtuelle Speicher vorhanden sind. Teile dieses virtuellen Speicherraumes – eine oder mehrere Speicherseiten – werden dabei entweder auf physikalisch vorhandenem RAM oder auf dem Swapspace abgebildet. Die Nutzungsrate der einzelnen Seiten bestimmt, welche Speicherseiten ausgelagert und nur auf Massenspeichern und welche im schnellen RAM existieren. Diese Funktionen werden von heutigen CPUs unterstützt, wobei die Menge des unterstützten Gesamtspeichers im Laufe der Entwicklung deutlich gestiegen ist.
Der Swapspeicher stellt eine sehr preiswerte, aber mit extrem schlechter Leistung verbundene Erweiterung zum physikalischen Arbeitsspeicher dar. Ein Missverhältnis zwischen beiden Speicherarten ist an häufigem „Swappen“, also dem Verschieben von Daten zwischen Massen- und physischem Arbeitsspeicher, zu erkennen. Verglichen mit dem Arbeitsspeicher benötigt die Festplatte mit ca. 8 Millisekunden sehr lange, um die Daten bereitzustellen. Die Zugriffszeit auf den Arbeitsspeicher beträgt dagegen nur ca. 25 Nanosekunden, was einem Dreihunderttausendstel davon entspricht.
Die Leistung von Speichermodulen misst sich vor allem in der absoluten Latenz.
Ein weit verbreiteter Mythos ist, dass höhere Schaltzeitverhalten (Timings) eine schlechtere Leistung zur Folge hätten. Dem ist jedoch nicht so, da sich die absolute Latenz aus den Faktoren (effektiver) Takt und Schaltzeitverhalten (Timing) ergibt.
Daraus ergibt sich die Konsequenz, dass DDR2 und DDR3-SDRAM, obwohl sie höhere Schaltzeitverhalten (Timings) als DDR-SDRAM aufweisen, teilweise erheblich schneller sind und eine deutlich höhere Bandbreite zur Verfügung stellen.
Es existieren einige Speicherhersteller, die die offiziellen Spezifikationen der JEDEC nicht einhalten und Module mit weitaus höheren Taktraten oder besseren Schaltzeitverhalten (Timings) anbieten. Während DDR3-1600 CL9-9-9 einer offiziellen Spezifikation unterliegt, handelt es sich bei DDR2-1066 CL4-4-4-12 nicht um standardkonforme Speichermodule. Diese schnellen Speicher werden oft als Speichermodule für Übertakter bezeichnet. Aufgrund der Neuheit von DDR3 ist zu erwarten, dass aufgrund der stetigen Verbesserung der Fertigungsverfahren in naher Zukunft deutlich schnellere Speichermodule angeboten werden. Diese werden anfangs jedoch außerhalb der offiziellen Spezifikation arbeiten. Die JEDEC könnte diese Speichermodule in die offizielle Spezifikation aufnehmen, allerdings geschieht dies oft erst Jahre nach der ersten Verfügbarkeit.
In der Praxis können aktuelle FSB1333-Prozessoren von Intel mit ihrem Front Side Bus maximal 10 GB/sec an Daten empfangen, dieser wird im üblichen DualChannel Betrieb mit zwei Speicher-Riegeln bereits von DDR2/667 (10,6 GB/s) ausgereizt.
Der Zugriff auf den Arbeitsspeicher durch die CPU wird zumeist durch ein oder mehrere Cache-RAMs (kurz „Cache“) abgefedert, um die Leistung beim Zugriff auf häufig genutzte Speicherstellen nochmals stark zu verbessern. Der Cache ist im Verhältnis zu anderen Speichern sehr schnell, da er möglichst direkt am Prozessor angebunden ist. Allerdings ist er nur wenige Kilo- bzw. Megabyte groß.
Bei geringem Speicherbedarf können Programme bzw. Teile davon fast ausschließlich im Cache laufen, ohne dass das RAM angesprochen werden muss.
Der Cache ist als Assoziativspeicher ausgeführt, kann also entscheiden, ob die Daten einer Adresse schon im Cache gespeichert sind oder noch vom Arbeitsspeicher geholt werden müssen. Dann wird ein anderer Teil des Caches aufgegeben. Der Cache wird dabei stets mit mehreren aufeinander folgenden Worten gefüllt, beispielsweise stets mit mindestens 256 Bits (so genannter Burst-Modus), da es sehr wahrscheinlich ist, dass in Kürze auch Daten vor oder hinter den gerade benötigten gelesen werden sollen.
Die Anbindung des physikalischen Speichers erfolgt durch Adress- und Datenbus. Der Datenbus übernimmt den eigentlichen Datentransfer. In allen aktuellen PC-Architekturen werden dabei 64-Bit auf einmal transferiert. Der Adressbus dient zur Auswahl der angeforderten Speicherzellen; von seiner Busbreite (in Bit) ist der der maximal ansprechbare Speicher eines Prozessors abhängig. An jeder Adresse ist stets ein Byte (nicht nur ein Bit) abgelegt, so dass sich dieser "Adressraum" gemäß der folgenden Tabelle ergibt:
Einer der wesentlichen Unterschiede der beiden bei PCs aktuellen Prozessorgenerationen „32-Bit“ und „64-Bit“ ist also der bereits angesprochene maximal ansteuerbare Arbeitsspeicher. Allerdings ist mit der Anzahl der Bits einer Prozessorgeneration im Allgemeinen die Breite des Datenbusses gemeint, die nicht notwendigerweise mit der Breite des Adressbusses übereinstimmt. Allein die Breite des Adressbusses bestimmt jedoch die Größe des Adressraums. Aus diesem Grund konnte beispielsweise der „16-Bit“-Prozessor 8086 nicht nur 64 KiB (theoretischer 16-Bit-Adressbus), sondern 1 MiB (tatsächlicher 20-Bit-Adressbus) adressieren.
Der Bus moderner Computer vom Cache zum Arbeitsspeicher wird schnell ausgeführt, also mit hoher Taktrate und Datenübertragung bei steigender und fallender Taktflanke (DDR: Double Data Rate). Er ist synchron und mit großer Wortbreite, zum Beispiel 64 Bit pro Adresse. Werden mehrere Speichersteckplätze auf der Hauptplatine eines PCs eingesetzt, so werden aufeinander folgende Adressen in verschiedenen Steckplätzen gespeichert. Dies ermöglicht überlappenden Zugriff (Interleaved) bei Burst-Zugriffen.
Innerhalb der Speicherchips werden ganze Adresszeilen in Schieberegistern gespeichert. Ein 1-Megabit-Chip kann zum Beispiel 1024 Zeilen mit 1024 Bits haben. Beim ersten Zugriff wird ein schnelles, internes 1024-Bit-Register mit den Daten einer Zeile gefüllt. Bei Burst-Zugriffen sind die Daten der folgenden Adressen dann bereits im Schieberegister und können mit sehr geringer Zugriffszeit von diesem gelesen werden.
Durch diese Maßnahmen ist es möglich, die mittlere Zugriffszeit pro Bit drastisch auf unter eine Nanosekunde zu verringern, obwohl der Zugriff auf ein bestimmtes Bit im Speicher immer noch rund 25 Nanosekunden beträgt.
Sinnvollerweise überträgt man daher nicht nur das angeforderte Bit zum Prozessor, sondern gleich eine sogenannte "Cache-Line", die heute 512 Bit beträgt (vgl. Prozessor-Cache).
Die ersten Computer hatten keinen Arbeitsspeicher, nur einige Register, die mit derselben Technik wie das Rechenwerk aufgebaut waren, also Röhren oder Relais. Programme wurden auf gänzlich anderen Medien, wie zum Beispiel Lochkarten, gespeichert oder als feste Verdrahtung.
Später wurden Magnetkernspeicher eingeführt, die die Information in Form kleiner Ferritkerne speicherten. Diese waren in einer kreuzförmigen Matrix aufgefädelt, wobei sich je eine Adressleitung und eine Wortleitung in der Mitte eines Ferritkerns kreuzten. Der Speicher war nicht flüchtig, die Information ging jedoch beim Lesen verloren und wurde anschließend von der Ansteuerungslogik sofort wieder zurückgeschrieben. Daneben wurde kein Strom verbraucht, solange der Speicher nicht beschrieben oder gelesen wurde. Für heutige Verhältnisse ist er sehr voluminös und in der Herstellung auch sehr teuer. Ein typischer Großcomputer Ende der 1970er Jahre wie die Telefunken TR 440 konnte Kernspeicher mit 192.000 Worten à 52 Bit (netto 48 Bit), also über 1 MByte haben.
Der Kernspeicher als Ganzes bot ausreichend Platz das aktuell auszuführende Programm zunächst von einem externen Medium in den Arbeitsspeicher zu laden und alle Daten zu halten. Programme und Daten liegen in diesem Modell aus Sicht des Prozessors im selben Speicher, die heute am weitesten verbreitete von-Neumann-Architektur wurde eingeführt.
Mit Einführung der Mikroelektronik wurde der Arbeitsspeicher zunehmend durch integrierte Schaltungen (Chips) ersetzt. Zunächst als Flipflop, das mindestens zwei, mit Ansteuerlogik aber bis zu sechs Transistoren benötigt und relativ viel Chipfläche verbraucht. Solche Speicher verbrauchen immer Strom. Typische Größen waren integrierte Schaltungen (ICs) mit 1 Kibibit, wobei jeweils acht ICs gemeinsam adressiert wurden. Die Zugriffszeiten lagen bei einigen 100 Nanosekunden und waren schneller als die Prozessoren, die um ein Megahertz getaktet waren. Dies ermöglichte zum einen die Einführung von Prozessoren mit sehr wenigen Registern wie dem MOS Technologies 6502 oder dem Texas Instruments TMS 9000, die ihre Berechnungen größtenteils im Arbeitsspeicher durchführten. Zum anderen ermöglichte es den Bau von Heimcomputern, deren Videologik einen Teil des Arbeitsspeichers als Bildschirmspeicher verwendete und parallel zum Prozessor darauf zugreifen konnte.
Ende der 1970er wurden dynamische Arbeitsspeicher entwickelt, die die Information in einem Kondensator speichern und nur noch einen zusätzlichen Feldeffekttransistor pro Speicherbit benötigen. Sie können sehr klein aufgebaut werden und benötigen sehr wenig Leistung. Der Kondensator verliert die Information allerdings langsam, die Information muss daher in Abständen von einigen Millisekunden immer wieder neu geschrieben werden. Dies geschieht durch eine externe Logik, die den Speicher periodisch ausliest und neu zurückschreibt (Refresh). Durch die höhere Integration in den 1980er Jahren konnte diese Refreshlogik preiswert aufgebaut werden. Typische Größen in den 1980ern waren 64 Kbit pro IC, wobei jeweils acht Chips gemeinsam adressiert wurden.
Die Zugriffszeiten der dynamischen RAMs lagen bei preiswertem Aufbau ebenfalls bei einigen 100 Nanosekunden und haben sich seitdem nur wenig verändert, die Größen sind jedoch auf einige Gigabit pro Chip gewachsen. Die Prozessoren werden heute nicht mehr im Megahertz-, sondern im Gigahertz-Bereich getaktet, weshalb Maßnahmen erforderlich sind, die durchschnittliche Zugriffszeit pro Bit zu verkürzen.
Aus diesem Grunde werden sowohl die Taktrate der Anbindung des Arbeitsspeichers an den Prozessor (siehe Front Side Bus) als auch die Größe des Caches erhöht.
Insgesamt gibt es auf der Welt nur noch neun Speicherchiphersteller:
Diese Hersteller teilen sich 97 Prozent Marktanteil. Anbieter von Speichermodulen, wie Corsair, Kingston Technology, MDT, OCZ, A-Data etc. (sogenannte Third-Party-Hersteller) kaufen Chips bei den genannten Herstellern und löten diese auf ihre Platinen, wofür sie ein eigenes Layout entwerfen. Außerdem programmieren sie die SPD-Timings gemäß ihrer eigenen Spezifikationen, die durchaus "spitzer" eingestellt sein können als die der Originalhersteller.
Für Dual-Channel-Betrieb zweier Module ist bei diesen Third-Party-Herstellern darauf zu achten, dass Modul-Paare (sogenannte "KITs") gekauft werden, damit nicht das BIOS den Betrieb verweigert, weil der Hersteller zwischenzeitlich andere Chips auf seine Module lötet. Bei Modulen der Originalhersteller ist das nicht nötig, da die Spezifikationen stets den aktuellen Datenblättern entsprechen, die u.a. auch die SPD-Timings festlegen und ausweisen. Diese Module funktionieren daher immer im Dual-Channel-Betrieb, auch wenn sie aus unterschiedlichen Quellen stammen.
Als Mittler zwischen den großen Speicherchip- und Modulherstellern einerseits und dem Handel und den Verbrauchern andererseits haben sich in Deutschland Anbieter wie z. B. CompuRAM und Kingston etabliert, die für die gängigsten Systeme spezifizierte Speichermodule anbieten. Das ist deshalb notwendig, weil einige Systeme durch künstliche Beschränkungen durch den Hersteller nur mit Speicher arbeiten, der proprietäre Spezifikationen erfüllt. Diese Spezifikationen dienen nicht der Leistungssteigerung, sondern nur der Inkompatibilität zu normalem Speicher, der nur die JEDEC-Spezifikationen erfüllt, um mit den Lizenzen Geld verdienen zu können.