Arbeitsspeicher
Der Arbeitsspeicher (auch Hauptspeicher) eines Computers ist der Speicher, in dem Datenobjekte, also Programme und die von diesen im Mikroprozessor zu verarbeitenden Nutzdaten, abgelegt und zu einem späteren Zeitpunkt (unverändert) abgerufen werden können. Der Arbeitsspeicher ist ein durch Adressen strukturierter Bereich, der Binärwörter fester Größe aufnehmen kann. Der physische Arbeitsspeicher ist heutzutage normalerweise ein Random Access Memory, der zwar schnell arbeitet, aber im Vergleich zu magnetischen Speichermedien teuer ist. Der Arbeitsspeicher moderner Computer ist flüchtig, d.h. dass alle Daten nach dem Abschalten der Energieversorgung verloren gehen. Die häufigste Bauform für den Einsatz in Computern ist das Speichermodul.
Mittlerweile muss man zwischen verschiedenen RAM-Speichern unterscheiden wie z.B: SDR ("Synchronous Dynamic Random Access Memory") und DDR (DDR-SDRAM) welche jeweils für andere Systeme konfiguriert wurden.
Daneben gibt es Massenspeicher, zur kostengünstigeren, dauerhaften Ablage großer Datenmengen. Das bekannteste Beispiel dafür sind Festplatten.
Eine weitere Speicherart heißt Read-Only-Memory, ein Nur-Lese-Speicher, der Daten und Programme wie z.B. das BIOS in einem nichtflüchtigen Speicher dauerhaft hält.
Arbeits- vs. Massenspeicher
Der Arbeitsspeicher wird oft mit Massenspeicher verwechselt, insbesondere dem Speicher der Festplatte. Die drei wichtigsten Unterschiede:
- Arbeitsspeicher ist (meist) flüchtig. Wird der Computer ausgeschaltet oder kommt es zu einem Stromausfall, so wird der Inhalt des Arbeitsspeichers gelöscht.
- Arbeitsspeicher wird überwiegend elektronisch durch Transistoren und/oder Kondensatoren realisiert. Massenspeicher wird meist durch magnetische (Festplatten, Disketten, Bandspeicher) oder optische (CD-ROM, DVD) Medien realisiert. Das Prinzip wird allerdings neuerdings durch die Speicherkarte aufgeweicht: Sie ist ein nicht-flüchtiger RAM-Baustein.
- Auf Arbeitsspeicher wird in kleinen Einheiten, je nach CPU, in der Größe von einem oder mehreren Byte zugegriffen. Auf Massenspeicher wird zumeist in großen Einheiten (Dateien, engl. files) auf Daten an beliebiger Stelle im Speicher zugegriffen (daher stammt der Begriff Random Access Memory), während Massenspeicher relativ lange Zeit benötigen, bis nach einer Anfrage die ersten Daten kommen - daher erreichen sie ihre volle Geschwindigkeit nur beim Übertragen großer, zusammenhängender Datenbereiche.
Virtueller und physischer Arbeitsspeicher
Um den physischen Arbeitsspeicher zu erweitern, können moderne Betriebssysteme zusätzlichen (virtuellen) Speicher auf Massenspeichern allokieren. 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ützen Gesamtspeichers im Laufe der Entwicklung deutlich gestiegen ist.
Swapspeicher stellt eine sehr preiswerte, aber mit extrem schlechter Performance verbundene Erweiterung des physikalischen Arbeitsspeichers dar. Ein Missverhältnis ist an häufigem "Swappen", also dem Verschieben von Daten zwischen Massen- und physischem Arbeitsspeicher leicht zu erkennen.
Der Zugriff auf den physikalischen RAM durch die CPU wird zumeist durch ein oder mehrere Cache-RAMs (kurz "Cache") abgefedert, um die Performance 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 meistens nur einige Mebi-Byte groß.
Bei kleinem Speicherbedarf können Programme bzw. Teile davon fast ausschließlich im Cache laufen, ohne dass der 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.
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, z. B. 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 (EDO: Extended Data Out).
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 mehrere 100 Nanosekunden beträgt.
Anbindung des Arbeitsspeichers
Die Anbindung des physikalischen Speichers erfolgt durch den Adressbus, dessen "Breite" in Bits angegeben wird:
- 16 Bit: Maximal 64 KiB. Generation der s.g. 8-Bit-Computer
- 20 Bit: Maximal 1 MiB. Generation des PC/XT-Standards und der DOS-Ära.
- 24 Bit: Maximal 16 MiB. Bei PCs der Adressraum des 80286, bei Apple der Adressraum der ersten Macintosh-Computer (Motorola 68000)
- 32 Bit: Maximal 4 GiB. Bei PCs der Adressraum von 80386 bis Pentium 4/Athlon. Bei Apple Adressraum bis Macintosh G4.
- 64 Bit: Maximal 16 EiB. Bei PCs der Adressraum von AMD64 und Intel Itanium, bei Apple der Adressraum des Macintosh G5.
Siehe: Vorsilben der 1024er-Größenordnungen
Einer der wesentlichsten Unterschiede der beiden Prozessorgenerationen "32-Bit" und "64-Bit" ist also der bereits angesprochene maximal ansteuerbare Arbeitsspeicher. (Allerdings ist mit der Anzahl der Bits einer Prozessorgenerationen i. A. die Breite des Datenbusses gemeint, die nicht notwendigerweise etwas mit der Breite des Adressbusses zu tun hat. Die Breite des Adressbusses, nicht die des Datenbusses, bestimmt jedoch die Größe des Adressraums.)
Geschichte
Die ersten Computer hatten keinen Arbeitsspeicher, nur einige Register, die mit derselben Technik wie das Rechenwerk aufgebaut wurden, also Röhren oder Relais. Programme wurden auf gänzlich anderen Medien, wie zum Beispiel Lochkarten, gespeichert.
Später wurden Magnetkernspeicher eingeführt, die die Information in Form von kleinen Ferritkernen 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 nichtflü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 groß und in der Herstellung auch sehr teuer. Ein typischer Großcomputer wie die Telefunken TR440 konnte Ende der 1970er Jahre Kernspeicher mit 192.000 Worten à 48 Bit, also über 1 MByte haben.
Der Kernspeicher war groß genug, 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 (IC) 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 Kibibit pro IC, wobei jeweils acht Chips gemeinsam adressiert wurden.
Die Zugriffszeiten der dynamischen RAMs liegen bei preiswertem Aufbau ebenfalls bei einigen 100 Nanosekunden und haben sich seitdem nur wenig verändert, die Größen sind jedoch auf einige Gibibit pro Chip gewachsen. Die Prozessoren werden heute nicht mehr im Megahertz, sondern im Gigahertz-Bereich getaktet, dadurch sind Maßnahmen erforderlich, 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 Cache erhöht.
Siehe auch
- Random Access Memory, Speicherausrichtung
- Standby-Modus, Ruhezustand für energiesparende Techniken, um mit dem Arbeitsspeicher umzugehen
- Liste der Vorsilben für Maßeinheiten für die Vorsilben der Angabe der Größe des Arbeitsspeichers (nahezu ausschließlich in Bit oder Byte)
- Speicherschutz, Massenspeicher, Kurzspeicherkapazität des menschlichen Gedächtnisses, Speichermedium, Speichern