Zum Inhalt springen

Arbeitsspeicher

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 24. Oktober 2007 um 14:32 Uhr durch 62.134.40.252 (Diskussion). Sie kann sich erheblich von der aktuellen Version unterscheiden.

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. Die Informationspsychologie verwendet den Ausdruck „Arbeitsspeicher“ als ein Synonym für den menschlichen „Kurzspeicher“ oder „Kurzzeitspeicher“.

Details

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- oder DDR2-SDRAMs zum Einsatz.

Virtueller und physischer Arbeitsspeicher

Um den physischen Arbeitsspeicher zu erweitern, können moderne Betriebssysteme zusätzlichen virtuellen Arbeitsspeicher auf Massenspeichern allozieren. 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 Arbeitsspeichers dar. Ein Missverhältnis ist an häufigem „Swappen“, also dem Verschieben von Daten zwischen Massen- und physischem Arbeitsspeicher, leicht zu erkennen.

Leistung von Speichermodulen (Schaltzeitverhalten / Timing)

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.

Beispiele

DDR400 CL2-2-2-5
10 ns - 10 ns - 10 ns - 25 ns (CAS-TRCD-TRP-TRAS)
DDR500 CL3-3-2-8
12 ns - 12 ns - 8 ns - 32 ns
DDR777 CL2-3-2-9
14 ns - 14 ns - 6 ns - 46 ns
DDR2-667 CL4-4-4-12
12 ns - 12 ns - 12 ns - 36 ns
DDR2-667 CL5-5-5-15
15 ns - 15 ns - 15 ns - 45 ns
DDR2-800 CL4-4-4-12
10 ns - 10 ns - 10 ns - 30 ns
DDR2-800 CL5-5-5-15
12,5 ns - 12,5 ns - 12,5 ns - 37,5 ns
DDR2-1066 CL4-4-4-12
7,5 ns - 7,5 ns - 7,5 ns - 22,5 ns
DDR2-1066 CL5-5-5-15
9,38 ns - 9,38 ns - 9,38 ns - 28,13 ns
DDR3-1333 CL8-8-8
12 ns - 12 ns - 12 ns
DDR3-1600 CL7-7-7
8,75 ns - 8,75 ns - 8,75 ns
DDR3-1600 CL9-9-9
11,25 ns - 11,25 ns - 11,25 ns

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, das 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.

CAS (column access strobe) - latency (CL)
Gibt an, wieviele Taktzyklen der Speicher benötigt, um Daten bereit zu stellen. Niedrigere Werte bedeuten höhere Speicherleistung.
RAS (row access strobe) - precharge delay (tRP)
Bezeichnet die Zeit, die der Speicher benötigt um den geforderten Spannungszustand zu liefern. Erst nach Erreichen des gewünschten Ladezustandes kann das RAS-Signal gesendet werden. Niedrigere Werte bedeuten höhere Speicherleistung.
RAS to CAS Delay (tRCD)
Hierbei wird über die Abtastsignale „Spalten“ und „Zeilen“ eine bestimmte Speicherzelle lokalisiert, der Inhalt dieser kann dann bearbeitet werden (Auslesen/Beschreiben). Zwischen der Abfrage „Zeile“ und der Abfrage „Spalte“ befindet sich eine festgelegte Verzögerung ==> Delay. Niedrigere Werte bedeuten höhere Speicherleistung.
Row-Active-Time (tRAS)
Erlaubte Neuzugriffe nach festgelegter Anzahl von Taktzyklen, setzt sich rein rechnerisch aus CAS + tRP + Sicherheit zusammen. Niedrigere Werte bedeuten höhere Speicherleistung.

Praxis

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.

Cache

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.

Anbindung des Arbeitsspeichers

Die Anbindung des physikalischen Speichers erfolgt durch den Adressbus, dessen „Breite“ in Bits angegeben wird:

  1. 16 Bit: Maximal 64 KiB. Generation der s. g. 8-Bit-Computer
  2. 20 Bit: Maximal 1 MiB. Generation des PC/XT-Standards und der DOS-Ära.
  3. 24 Bit: Maximal 16 MiB. Bei PCs der Adressraum des 80286, bei Apple der Adressraum der ersten Macintosh-Computer, bei Commodore dito der alten AMIGA-Computer (A500, A1200 (020EC)) und bei Atari dito der ST-Reihe (alle Motorola 68000).
  4. 32 Bit: Maximal 4 GiB. Bei PCs der Adressraum von 80386 bis Pentium 4/Athlon. Bei Apple Adressraum bis Macintosh G4.
  5. 48 Bit: Maximal 256 TiB. PCs der Adressraum von AMD64 sowie Intel Prozessoren mit Intel 64 Erweiterung.
  6. 64 Bit: Maximal 16 EiB. Bei PCs der Adressraum Intel Itanium, bei Apple der Adressraum des Power Mac G5.

Siehe: Binärpräfix

Einer der wesentlichen 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 Prozessorgeneration im Allgemeinen 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.)

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 (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.

Geschichte

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, 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.

Handel

Insgesamt gibt es auf der Welt nur noch neun Speicherchiphersteller:

Diese Hersteller teilen sich 97 Prozent Marktanteil. Die eigentlichen Hersteller der Speichermodule, wie Corsair, Kingston Technology, MDT, OCZ, A-Data etc. suchen sich jeweils nur die besten Chips (Takt, Latenz) heraus und bezahlen dafür einen Aufpreis.

Als Mittler zwischen den grossen Speicherchip- /Modulherstellern und dem Handel/Verbraucher 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, damit man mit den Lizenzen Geld verdienen kann.

Siehe auch