Kategorie

A B C D E
F G H I J
K L M N O
P Q R S T
U V W X Y
Z 0      

arbeitsspeicher

aa ab ac ad ae af ag ah ai aj ak al am
an ao ap aq ar as at au av aw ax ay az

Arbeitsspeicher

Der Arbeitsspeicher (auch Hauptspeicher) eines Computers ist der Speicher, in dem Datenobjekte, also Programme und die von diesen im Mikroprozessor verarbeiteten 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.

Arbeitsspeicher besteht heute meist aus dem Speichermedium RAM, das zwar schnell arbeitet, aber vergleichsweise teuer ist. Der Arbeitsspeicher ist meistens flüchtig, d.h. dass alle Daten nach dem Abschalten der Energieversorgung verloren gehen.

Siehe auch: Speicherschutz, Massenspeicher, Kurzspeicherkapazität des menschlichen Gedächtnisses, Speichermedium, Speichern

Daneben gibt es Hintergrundspeicher, zur kostengünstigeren, dauerhaften Ablage großer Datenmengen. Das bekannteste Beispiel dafür sind Festplatten.

Eine weitere Speicherart heißt ROM, ein Nur-Lese-Speicher, der Daten und Programme wie z.B. das BIOS in einem nichtflüchtigen Speicherbausteinen dauerhaft hält.

Table of contents
1 Arbeitsspeicher eines Computers aus Sicht des Anwenders
2 Arbeitsspeicher in der Speicherhierarchie
3 Geschichte

Arbeitsspeicher eines Computers aus Sicht des Anwenders

Wird oft verwechselt mit Massenspeicher, insbesondere dem Speicher der Festplatte. Die drei wichtigsten Unterschiede:

  1. Arbeitsspeicher ist (meist) flüchtig. Wenn der Computer ausgeschaltet wird oder bei Stromverlust ist sein Inhalt gelöscht.
  2. Arbeitsspeicher wird überwiegend elektronisch, durch RAM 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.
  3. Auf Arbeitsspeicher wird in kleinen Einheiten, je nach CPU in der Grösse von einem oder mehreren Byte zugegriffen. Auf Massenspeicher wird zumeist in grossen Einheiten( Dateien, engl. Files) zugegriffen.

Die Grösse des Arbeitsspeichers wird (wie Massenspeicher auch) in Byte gemessen. Bei den meisten Systemen stellt der Arbeitspeicher zuerst einmal einen rein virtuell mehrere GByte grossen Speichers dar. Die Menge des physikalischen und virtuellen Speichers der durch die CPU adressiert werden kann ist im Laufe der Entwicklung immer weiter gestiegen. Teile, ein oder mehrere Speicherseiten, dieses virtuellen Speichers werden dann entweder auf physikalisch vorhandenen RAM oder auf Swapspace abgebildet. Die Nutzungsrate der einzelnen Seiten bestimmt welche Speicherseiten ausgelagert nur auf der Festplatte und welche im schnellen RAM existieren. Die Vorgänge dahinter werden vom Betriebssystem geregelt und von Funktionen der CPU unterstützt. Swapspeicher stellt damit eine sehr preiswerte aber mit extrem schlechter Performance verbundene Erweiterung des physikalischen Arbeitsspeichers da. Ein Missverhältniss ist an häufigem "swappen" leicht zu erkennen.

Der Zugriff auf den physikalische RAM durch die CPU wird zumeist durch ein oder mehrere Cache-RAM's (kurz "Cache") abgefedert um die Performance beim Zugriff auf häufig genutzte Speicherstellen normals stark zu beschleunigen. Der Cache ist meist sehr klein und kommt nur bei einigen Serverprozessoren auf eine Grösse von einigen Megabyte. Bei kleinem Speicherbedarf können Programme bzw. teile davon fast ausschliesslich im Cache laufen ohne das der RAM angesprochen werden muss.

Im Grossen und Ganzen sinkt die Performance der beteiligten Speicher also mit steigender Grösse. Die Arbeitsgeschwindigkeit eines Programms variiert also erheblich mit seinem Speicherbedarf, oft viel mehr, als mit dem eingebauten Prozessor.

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

  1. 16 Bit: Maximal 64KiB. Generation der s.g. 8-Bit-Computern
  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 (Motorola 68000)
  4. 32 Bit: Maximal 4 GiB. Bei PCs der Adressraum von 80386 bis Pentium4/Athlon. Bei Apple Adressraum bis Macintosh G4.
  5. 64 Bit: Maximal 16 ExaBinaryByte (EiB). Bei PCs der Adressraum von AMD64 und Intel Itanium, bei Apple der Adressraum des Macintosh G5.

Einer der wesentlichsten Unterschied der beiden Prozessorgenerationen "32-Bit" und "64-Bit" ist also der maximal ansteuerbare Arbeitsspeicher.

Arbeitsspeicher in der Speicherhierarchie

Moderne Computer verarbeiten Daten im Bereich von Nanosekunden. Das Hauptproblem ist dabei, eine ausreichende Menge an Daten zur Verfügung zu stellen, um die Recheneinheiten des Prozessors zu versorgen.

Der ideale Speicher ist

und
  • preiswert.

Da dies unerreichbar ist, verwendet man eine Speicherhierarchie, die große, nichtflüchtige, billige aber langsame Speicher mit schnellen, dafür jedoch kleinen aber schnellen verbindet.

Ein typisches Computersystem hat heute (2004)

  • Recheneinheit (1-2 Prozessoren, flüchtig, Nanosekunden)
  • Register (ca. 4 bis 128, 32-64 Bits, flüchtig, Nanosekunden)
  • Cache (32 KBytes bis wenige Megabytes, flüchtig, ca. 10 Nanosekunden)
  • Arbeitsspeicher (512 MiBytes bis 4 GiByte, flüchtig, ca. 100 Nanosekunden)
  • Festplattenspeicher (80 GBytes bis 1 Terabyte, nichtflüchtig, wenige Millisekunden)
  • Bandlaufwerke (Bänder mit bis zu mehreren Terabyte, nichtflüchtig, Minuten)

Bei PCs wird häufig auf Bandlaufwerke verzichtet.

Geschichte

Die ersten Computer hatten keinen Arbeitsspeicher, nur einige Register, die mit derselben Technik wie das Rechenwerk aufgebaut wurden, also Röhrenn oder Relais. Programme wurden auf gänzlich anderen Medien 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 je eine Adressleitung und eine Wortleitung sich in der Mitte eines Ferritkerns kreuzten. Der Speicher war nichtflüchtig, die Information ging jedoch beim Lesen verloren, wurde jedoch von der Ansteuerungslogik sofort wieder zurückgeschrieben. Daneben wird kein Strom verbraucht, solange der Speicher nicht beschrieben oder gelesen wird. 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 in 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 ziehen immer Strom. Typische Größen waren integrierte Schaltungen (IC) mit 1 KBit, 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 alle paar Millisekunden 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 kann 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 liegen bei preiswertem Aufbau ebenfalls bei einigen 100 Nanosekunden und haben sich seitdem nur wenig verändert, die Größen sind jedoch auf mehrere MBit 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.

Zunächst wird ein Cache, also ein kleiner, sehr schneller, aber relativ teurer Zwischenspeicher zwischen Prozessor und Arbeitsspeicher geschaltet, der einen kleinen Teil des Arbeitsspeichers enthält und auf den innerhalb weniger Nanosekunden zugegriffen werden kann. Manchmal werden sogar mehrere, verschieden schnelle und große Cachespeicher hierarchisch verwendet.

Dieser 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 aufeinanderfolgenden Worten gefüllt, beispielsweise stets mit mindestens 256 Bits (so genannte Burst-Zugriffe)

Der Bus vom Cache zum Arbeitsspeicher wird schnell ausgeführt, also mit hoher Taktrate und Datenübertragung bei steigender und fallender Taktflanke (Double Data Rate). Er ist jetzt synchron und mit großer Wortbreite, z. B. 64 Bit/Adresse. Werden mehrere Speichersteckplätze auf der Hauptplatine eines PCs eingesetzt, so werden aufeinanderfolgende 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 MiBit-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: Electronic 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.

Impressum

Datenschutzerklärung