Zum Inhalt springen

Arbeitsspeicher: Unterschied zwischen den Versionen

Aus Foxwiki
 
(22 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
'''Arbeitsspeicher'''  
'''Arbeitsspeicher''' - [[Datenspeicher|Speicher]] eines [[Computer]]s, der auszuführenden [[Computerprogramm|Programme]] und [[Daten]] enthält


== Beschreibung ==
== Beschreibung ==
Der Arbeitsspeicher enthält die benötigten Daten der aktuell ausgeführten Programme bzw. Programmteile.
Arbeitsspeicher ist eine Komponente der [[Zentraleinheit]]
* Da die CPU direkt auf den Arbeitsspeicher zugreift beeinflusst der Arbeitsspeicher die Leistung des ganzen PCs.


== Charakteristik ==
Da der [[Prozessor]] unmittelbar auf den Hauptspeicher zugreift, beeinflussen dessen Leistungsfähigkeit und Größe in wesentlichem Maße die Leistungsfähigkeit der gesamten Rechenanlage
Jede Speicherzelle kann über ihre Speicheradresse direkt angesprochen werden, der Speicher muss nicht sequenziell oder in Blöcken ausgelesen werden (bei großen Speicherbausteinen findet die Adressierung jedoch nicht über die einzelnen Zellen statt, sondern über ein Wort, dessen Breite von der Speicherarchitektur abhängt).
* Random Access memory (RAM) wird heute immer im Sinne von Read-Write Random Access Memory (RWRAM) verwendet. Der Begriffsinhalt des Speichers mit wahlfreiem Zugriff trifft auch auf andere Speicherformen zu, insbesondere Speicherbausteine vom Typ Read Only Memory (ROM).
* Da die Bezeichnung '''RAM''' missverständlich ist, wurde zeitweise versucht, den Begriff Read-Write Memory (RWM) zu etablieren, der sich jedoch nicht durchsetzen konnte.


== Geschichte ==
; Bezeichnungen
* Zu Anfang hatten Computer keine internen Arbeitsspeicher.
[[Datei:RAM Module (SDRAM-DDR4).jpg|mini|DDR4-SDRAM-Modul mit [[Heatspreader]], für gewöhnlich in [[Computerspiel|Gaming]]- oder Desktop-[[Personal Computer|PCs]] verbaut]]
* Zu der Zeit wurden Arbeitsschritte auf Floppy Discs und Lochkarten gespeichert.
* Arbeitsspeicher
* Die erste Form von Arbeitsspeicher wurde in 1947 erfunden und benutzte eine Kathodenstrahlröhre.
* Hauptspeicher
* Auch in 1947 erfunden wurde der Magnetkernspeicher.
* core
* Arbeitsspeicher wie wir es kennen wurde erstmalig in 1968 erfunden.
* main store
* Dieser nennt sich Festkörperspeicher und hatte noch Pins als Anschluss.
* main memory
* Diese Pins wurden kurze Zeit später mit Kontakten ersetz.
* primary memory
* 1980 kam man auf die Idee das Betriebssystem und Programme auf den Arbeitsspeicher zu kopieren.
* RAM = Random Access Memory
* Was den PC deutlich schneller und ruckelfreier machte.


; Geschichte
== Zugriff ==
[[Datei:Core memory.jpg|mini|Magnetkernspeicherelement, um 1971, Kapazität 16 Kibibyte]]
Arbeitsspeicher wird charakterisiert durch die ''[[Zugriffszeit]]'' bzw. Zugriffsgeschwindigkeit und (damit verbunden) die ''Datenübertragungsrate'' sowie die ''[[Speicherkapazität]]''
* Die Zugriffsgeschwindigkeit beschreibt die Dauer, bis angefragte Daten gelesen werden können
* Die Datenübertragungsrate gibt an, welche Datenmenge pro Zeit gelesen werden kann
* Es können getrennte Angaben für Schreib- und Lesevorgang existieren
* Zur Benennung der Arbeitsspeichergröße existieren zwei unterschiedliche Notationsformen, die sich aus der verwendeten Zahlenbasis ergeben
* Entweder wird die Größe zur Basis 10 angegeben (als [[Dezimalpräfix]]; 1&nbsp;kByte oder kB = 10<sup>3</sup> Bytes = 1000 [[Byte]]s, [[Internationales Einheitensystem|SI]]-Notation) oder zur Basis 2 (als [[Binärpräfix]]; 1&nbsp;[[Binärpräfix|KiB]] = 2<sup>10</sup> Bytes = 1024 Bytes, [[International Electrotechnical Commission|IEC]]-Notation)
* Aufgrund der binärbasierten Struktur und Adressierung von Arbeitsspeichern (Byte-adressiert bei 8-[[Bit]]-Aufteilung, wortadressiert bei 16-Bit-Aufteilung, doppelwortadressiert bei 32-Bit-Aufteilung usw.) ist letztere Variante die üblichere Form, die zudem ohne [[Dezimalbruch|Brüche]] auskommt


Die ersten Computer hatten keinen Arbeitsspeicher, nur einige [[Register (Computer)|Register]], die mit der gleichen Technik wie das Rechenwerk aufgebaut waren, also [[Elektronenröhre|Röhren]] oder [[Relais]]
; Physischem Speicher
* Programme waren fest verdrahtet („gesteckt“) oder auf anderen Medien, wie zum Beispiel Lochstreifen oder [[Lochkarte]]n gespeichert und wurden nach dem Lesen direkt ausgeführt
Soweit Arbeitsspeicher über den [[Adressbus]] des Prozessors angesprochen wird oder direkt im Prozessor integriert ist, spricht man von '''physischem Speicher'''
* Modernere Prozessoren und [[Betriebssystem]]e können durch [[virtuelle Speicherverwaltung]] mehr Arbeitsspeicher bereitstellen, als physischer Speicher vorhanden ist, indem sie Teile des [[Adressraum]]s mit anderen Speichermedien hinterlegen (etwa mit einer [[Auslagerungsdatei]], ''pagefile'' oder ''swap'' u.&nbsp;a.)
* Dieser zusätzliche Speicher wird '''virtueller Speicher''' genannt
* Zur Beschleunigung des Speicherzugriffs – physisch oder virtuell – kommen heute zusätzliche [[Cache|Pufferspeicher]] zum Einsatz


„In Rechenanlagen der 2.&nbsp;Generation dienten [[Magnettrommelspeicher|Trommelspeicher]] als Hauptspeicher“ (Dworatschek)
== Grundlagen ==
* Zusätzlich wurde in der Anfangszeit auch mit eher exotischen Ansätzen experimentiert, beispielsweise mit Laufzeitspeichern in Quecksilberbädern oder in Glasstabspiralen (mit Ultraschallwellen beschickt)
[[Datei:Arbeitsspeicher.JPG|mini|Verschiedene Arten von Arbeitsspeicher (v.&nbsp;l.&nbsp;n.&nbsp;r.) SIMM 1992, SDRAM 1997, DDR-SDRAM 2001, DDR2-SDRAM 2008]]
* Später wurden [[Kernspeicher|Magnetkernspeicher]] eingeführt, die die Information in kleinen [[Ferrite|Ferritkernen]] speicherten
* Diese waren in einer kreuzförmigen [[Matrixschaltung|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
* Solange der Speicher nicht beschrieben oder gelesen wurden, floss kein Strom
* Er ist um einige Größenordnungen voluminöser und teurer herzustellen als moderne Halbleiterspeicher


Typische [[Großrechner]] waren Mitte der 1960er Jahre mit 32 bis 64 Kibibyte großen Hauptspeichern ausgestattet (zum Beispiel [[System/360|IBM 360-20 oder 360-30]]), Ende der 1970er Jahre (zum Beispiel die [[Telefunken]] [[TR 440]]) mit 192.000 Worten à 52&nbsp;Bit (netto 48&nbsp;Bit), also mit über 1&nbsp;Megabyte
Der Arbeitsspeicher des Computers ist ein durch Adressen (in Tabellenform) strukturierter Bereich, der [[Datenwort|Binärwörter]] fester Größe aufnehmen kann
* Durch die binäre Adressierung bedingt hat Arbeitsspeicher praktisch immer eine 'binäre' (auf Potenzen von 2 basierende) Größe, da andernfalls Bereiche ungenutzt blieben


Der Kernspeicher als Ganzes bot ausreichend Platz, neben dem [[Betriebssystem]], das aktuell auszuführende Programm zunächst von einem externen Medium in den Arbeitsspeicher zu laden und alle Daten zu halten
Der Arbeitsspeicher moderner Computer ist ''flüchtig'', d.&nbsp;h., dass alle Daten nach dem Abschalten der Energieversorgung verloren gehen – der Hauptgrund dafür liegt in der Technologie der [[Dynamic Random Access Memory|DRAMs]]
* Programme und Daten liegen in diesem Modell aus Sicht des Prozessors im gleichen Speicher, die heute am weitesten verbreitete [[Von-Neumann-Architektur]] wurde eingeführt
* Verfügbare Alternativen wie etwa [[Magnetoresistive Random Access Memory|MRAM]] sind allerdings für die Verwendung als Arbeitsspeicher noch zu langsam
* Deshalb enthalten Computer auch [[Nichtflüchtiger Datenspeicher|Festspeicher]] in Form von [[Festplattenlaufwerk|Festplatten]] oder [[Solid-State-Drive|SSDs]], auf dem das Betriebssystem und die Anwendungsprogramme und Dateien beim Abschalten erhalten bleiben


[[Datei:Chip ram.jpg|mini|Arbeitsspeicher in Form eines [[Integrierter Schaltkreis|ICs]] auf einem SDRAM-Modul]]
Die häufigste Bauform für den Einsatz in Computern ist das [[Speichermodul]]
* Es ist zwischen verschiedenen [[Random-Access Memory|RAM]]-Typen zu unterscheiden
Waren in den 1980ern noch übliche Bauweisen Speicher in Form von [[Zig-zag in-line package|ZIP]]-, [[Single Inline Memory Module|SIPP]]- oder [[Dual in-line package|DIP]]-Modulen, so wurden in den 1990ern vorwiegend [[Single Inline Memory Module|SIMMs]] mit FPM- oder [[Extended Data Output Random Access Memory|EDO-RAM]] genutzt
* Heute kommen in Computern in erster Linie [[Dual Inline Memory Module|DIMMs]] mit z.&nbsp;B. [[Synchronous Dynamic Random Access Memory|SD]]-, [[DDR-SDRAM|DDR-SD-, DDR2-SD-, DDR3-SD oder DDR4-SDRAMs]] zum Einsatz


Mit Einführung der Mikroelektronik wurde der Arbeitsspeicher zunehmend durch integrierte Schaltungen ([[Integrierter Schaltkreis|Chips]]) ersetzt
== Virtueller Arbeitsspeicher ==
* Jedes Bit wurde in einem bistabilen Schalter ([[Flipflop]]) gespeichert, das mindestens zwei, mit Ansteuerlogik aber bis zu sechs Transistoren benötigt und relativ viel Chipfläche verbraucht
; Physischer und virtueller Arbeitsspeicher
* Solche Speicher verbrauchen immer Strom
Um den physischen Arbeitsspeicher zu erweitern, können moderne Betriebssysteme zusätzlichen [[Virtuelle Speicherverwaltung|virtuellen Arbeitsspeicher]] auf [[Massenspeicher]]n [[Allokation (Informatik)|allozieren]] (platzieren, zuteilen)
* Typische Größen waren [[Integrierter Schaltkreis|integrierte Schaltungen]] (ICs) mit 1&nbsp;KiBit, wobei jeweils acht ICs gemeinsam adressiert wurden
* Diesen Speicher nennt man auch ''[[Swapping|Swapspeicher]]''
* Die Zugriffszeiten lagen bei einigen 100 Nanosekunden und waren schneller als die [[Prozessor]]en, die um ein Megahertz getaktet waren
* Das ermöglichte zum einen die Einführung von Prozessoren mit sehr wenigen Registern wie dem [[MOS Technology 6502]] oder dem [[TMS9900]] von [[Texas Instruments]], die ihre Berechnungen größtenteils im Arbeitsspeicher durchführten
* Zum anderen ermöglichte es den Bau von [[Heimcomputer]]n, deren Videologik einen Teil des Arbeitsspeichers als [[Bildschirmspeicher]] verwendete und parallel zum Prozessor darauf zugreifen konnte


Ende der 1970er Jahre wurden dynamische Arbeitsspeicher entwickelt, die die Information in einem [[Kondensator (Elektrotechnik)|Kondensator]] speichern und nur noch einen zusätzlichen [[Feldeffekttransistor]] pro Speicherbit benötigen
Um diese Erweiterung [[Transparenz (Computersystem)|transparent]] zu realisieren, bedient sich das [[Betriebssystem]] eines virtuellen [[Adressraum#Adressraum in der Informationstechnologie|Speicherraumes]], in dem sowohl der physische als auch der virtuelle Speicher vorhanden sind
* Sie können sehr klein aufgebaut werden und benötigen sehr wenig Leistung
* Teile dieses virtuellen Speicherraumes – eine oder mehrere [[Speicherseite]]n – werden dabei entweder in das physisch vorhandene RAM oder in den Auslagerungsspeicher (Swapspace) abgebildet
* Der Kondensator verliert die Information allerdings langsam, die Information muss daher in Abständen von einigen Millisekunden immer wieder neu geschrieben werden
* Die Nutzungsrate der einzelnen Seiten bestimmt, welche Speicherseiten ausgelagert und nur auf Massenspeichern und welche im schnellen RAM existieren
* Das geschieht durch eine externe Logik, die den Speicher periodisch ausliest und neu zurückschreibt (Refresh)
* Diese Funktionen werden von heutigen [[Prozessor|CPUs]] unterstützt, wobei die Menge des unterstützten Gesamtspeichers im Laufe der Entwicklung deutlich gestiegen ist
* Durch die höhere Integration in den 1980er Jahren konnte diese Refreshlogik preiswert aufgebaut und in den Prozessor integriert werden
* Typische Größen Mitte der 1980er waren 64&nbsp;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 GBit pro Chip gewachsen
[[Datei:Ram-not22233.jpg|mini|Arbeitsspeicher für Notebooks ([[SO-DIMM]])
* Die Prozessoren werden heute nicht mehr im Megahertz-, sondern im Gigahertz-Bereich getaktet
* Oben SD-RAM und unten DDR-RAM]]
* Daher werden, um die durchschnittliche Zugriffszeit zu reduzieren, [[Cache]]s verwendet und sowohl die Taktrate als auch die Breite der Anbindung des Arbeitsspeichers an den Prozessor erhöht (siehe [[Front Side Bus]])


Im Juni 2012 wurde bekannt gegeben, dass mit dem sogenannten ''Speicherwürfel'' (englisch ''Hybrid Memory Cube'' und kurz ''HMC'' genannt) eine neue kleinere und leistungsstärkere Bauform für Arbeitsspeicher entwickelt werden soll, bei der ein Stapel aus mehreren [[Die (Halbleitertechnik)|Dies]] genutzt werden soll
Der Auslagerungsspeicher stellt eine sehr preiswerte, aber mit extrem schlechter Leistung verbundene Erweiterung zum physischen Arbeitsspeicher dar
* Eigens dafür wurde das ''Hybrid Memory Cube Konsortium'' gegründet, dem unter anderem ''[[ARM Limited|ARM]]'', ''[[Hewlett-Packard]]'' und ''[[SK Hynix|Hynix]]'' beigetreten sind
* 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 mehreren Millisekunden sehr lange, um die Daten bereitzustellen
* Die [[Zugriffszeit]] auf den Arbeitsspeicher beträgt nur wenige Nanosekunden, was einem Millionstel der Festplatte entspricht


== Cache ==
Zugriffe auf den Arbeitsspeicher durch den [[Hauptprozessor]] werden zumeist über ein oder mehrere Pufferspeicher oder ''Cache-RAMs'' (kurz „Cache“) optimiert
* Im [[Cache]] hält und benutzt der Rechner die am häufigsten angesprochenen Speicherbereiche, stellvertretend für die originären Hauptspeicherbereiche
* Der Cache ist im Verhältnis zu anderen Speichern sehr schnell, da er möglichst direkt am Prozessor angebunden ist (bzw.&nbsp;sich in modernen Prozessoren direkt auf dem [[Die (Halbleitertechnik)|Die]] befindet)
* Allerdings ist er in der Regel nur wenige Megabyte groß


Bei geringem Speicherbedarf können Programme oder Teile davon fast ausschließlich im Cache laufen, ohne dass der Hauptspeicher 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 Bit (sogenannter [[Burst-Modus (Datenübertragung)|Burst-Modus]]), da es sehr wahrscheinlich ist, dass in Kürze auch Daten vor oder hinter den gerade benötigten gelesen werden sollen
== Anbindung ==
; Anbindung des Arbeitsspeichers
Die klassische Anbindung von physischem Speicher erfolgt über einen (bei [[Von-Neumann-Architektur]]) oder mehrere (bei der heute im PC-Bereich nicht mehr verwendeten [[Harvard-Architektur]] bzw. [[Super-Harvard-Architektur]]) Speicherbusse
* Speicherbusse übertragen Steuerinformationen, Adressinformationen und die eigentlichen Nutzdaten
* Eine von vielen Möglichkeiten ist es, für diese unterschiedlichen Informationen getrennte Leitungen zu nutzen und den Datenbus sowohl zum Lesen wie zum Schreiben von Nutzdaten zu verwenden
Der [[Bus (Datenverarbeitung)#Datenbus|Datenbus]] übernimmt dann den eigentlichen Datentransfer
Aktuelle PC-Prozessoren benutzen zwischen zwei und vier 64-Bit-Speicherbusse, die aber seit etwa dem Jahr 2000 keine generischen Speicherbusse mehr sind, sondern direkt die Protokolle der verwendeten Speicherchips sprechen
* Der [[Bus (Datenverarbeitung)#Adressbus|Adressbus]] dient zur Auswahl der angeforderten [[Halbleiterspeicher#Speicherzelle|Speicherzellen]]; von seiner Busbreite (in [[Bit]]) ist die maximal ansprechbare Anzahl von Speicherworten abhängig
* An jeder Adresse sind bei heute üblichen Systemen meist 64 Bit abgelegt (siehe [[64-Bit-Architektur]]), früher wurden auch 32 Bit ([[Intel 80386]]), 16 Bit ([[Intel 8086]]) und 8 Bit ([[Intel 8080]]) verwendet
* Viele, aber nicht alle Prozessoren unterstützen feiner granulare Zugriffe, meist auf Byteebene, durch ihre Art der Interpretation von Adressen ([[Endianness]], „Bitabstand“ von Adressen, misalignte-Zugriffe) auf Software-Ebene wie auch durch das Hardware-Interface (Byte-Enable-Signale, Nummer der niederwertigsten Adressleitung)
; Beispiel: [[Intel 80486]]
* Adressbus: A31 bis A2
* Datenbus: D31 bis D0
* Byte-Enable: BE3 bis BE0
* Endianness: Little Endian
* Unterstützung von misalignten Zugriffen: ja
* ansprechbarer Speicher: 4 Gi × 8 Bit als 1 Gi × 32 Bit
<!--
so dass sich dieser „Adressraum“ gemäß der folgenden Tabelle ergibt:
{| class="wikitable"
! Adressbus
! Adressierbarer Speicher
! Beispiel
|-
| 14 Bit
| 16 KiB
| [[Intel 8008]]
|-
| 16 Bit
| 64 KiB
| Die meisten [[8-Bit-Architektur]]en
|-
| 20 Bit
| 1 MiB
| Bei den ersten [[Personal Computer|PCs]] der Adressraum des [[Intel 8086]], damit auch maximal nutzbarer Speicher der frühen [[MS-DOS]]-Ära
* Weiterhin die externe Adressbusgröße des [[Motorola 68008]]
|-
| 24 Bit
| 16 MiB
| Bei PCs der Adressraum des [[Intel 80286|80286]], bei [[Apple]] der Adressraum der ersten [[Apple Macintosh|Macintosh]]-Computer, bei Commodore dito der alten AMIGA-Computer (A500, A1200 (020EC)) und bei Atari dito der ST-Reihe (alle [[Motorola 68000]])
* Weiterhin die externe Adressbusgröße des [[Intel 80386SX]]
|-
| 32 Bit
| 4 GiB
| Bei PCs der Adressraum von [[Intel 80386|80386]] bis [[Pentium]]
* Bei [[Apple]] Adressraum bis Macintosh [[PowerPC G4|G4]]
|-
| 36 Bit
| 64 GiB
| Bei PCs der Adressraum von [[Pentium Pro]] bis [[Intel Pentium&nbsp;4]]/[[Athlon|AMD Athlon]]
* Hierfür muss das Betriebssystem in der Lage sein, [[Physical-Address Extension]] (PAE) zu nutzen
|-
| bis zu 64 Bit<br>(Meist&nbsp;sind&nbsp;nicht<br>alle&nbsp;Adressleitungen<br>herausgeführt.)
| bis zu 16 EiB
| Bei PCs der Adressraum von [[AMD64]] und [[Intel 64]], bei Apple sind aktuelle Rechner technisch ebenfalls PCs mit Intel 64
* Bei PCs der Adressraum von [[Intel Itanium]], bei Apple der Adressraum des Macintosh [[PowerPC G5|G5]]
|}
-->
Einer der wesentlichen Unterschiede der beiden bei PCs aktuellen Prozessorgenerationen „[[32-Bit]]“ und „[[64-Bit]]“ ist also der bereits angesprochene maximal ansteuerbare Arbeitsspeicher, der jedoch zum Teil mit Hilfe von ''[[Physical-Address Extension]]'' noch etwas über das übliche Maß hinaus erweitert werden kann
* Allerdings ist mit der Anzahl der Bits einer Prozessorgeneration im Allgemeinen die Breite des [[Bus (Datenverarbeitung)#Datenbus|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 [[Intel 8086|8086]] nicht nur 64&nbsp;KiB (theoretischer 16-Bit-Adressbus), sondern 1&nbsp;MiB (tatsächlicher 20-Bit-Adressbus) adressieren
Der [[Bus (Datenverarbeitung)|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
* Das ermöglicht überlappenden Zugriff (Interleaved) bei Burst-Zugriffen
Innerhalb der Speicherchips werden ganze Adresszeilen in [[Schieberegister]]n gespeichert
* Ein 1-MiBit-Chip kann zum Beispiel 1024 Zeilen mit 1024 Bit 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
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. [[Cache#Prozessor-Cache|Prozessor-Cache]])
== Hersteller ==
Die größten Speicher''chip''hersteller sind:
* [[Nanya Technology]]
* [[Hynix Semiconductor]]
* [[Micron Technology]]
* [[Promos]]
* [[Samsung]]
* [[Toshiba]]
* [[Winbond]]
* [[Etron]]
* [[Fujitsu Siemens Computers]]
Diese Hersteller teilen sich 97 Prozent Marktanteil
* Anbieter von Speicher''modulen'', wie [[Corsair Memory|Corsair]], [[Kingston Technology]], [[MDT (Unternehmen)|MDT]], [[OCZ Technology|OCZ]], [[A-DATA Technology|A-Data]] usw. (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äß ihren eigenen Spezifikationen, die durchaus ''schärfer'' eingestellt sein können als die der Originalhersteller
[[Datei:DDR2 RAM PC5300 IMGP1059.jpg|mini|DDR2-Speicher mit identischer Spezifikation und Verkaufsbezeichnung, jedoch unterschiedlicher Bestückung]]
Für [[Dual Channel|Dual-Channel]]- oder [[Triple Channel|Triple-Channel]]-Betrieb sollten nach Möglichkeit annähernd baugleiche Module verwendet werden, damit die Firmware (bei PCs das [[BIOS]] oder [[Unified Extensible Firmware Interface|UEFI]]) den Parallel-Betrieb nicht aufgrund von unvorhersehbaren Inkompatibilitäten verweigert oder das System dadurch instabil läuft
* Es ist gängige Praxis, dass ein Hersteller beim selben Produkt im Laufe der Produktion andere Chips auf seine Module lötet bzw
* umgekehrt unterschiedliche Hersteller die gleichen Chips verwenden
* Da diese Informationen jedoch in so gut wie allen Fällen nicht zugänglich sind, ist man beim Kauf von Speicher-''Kits'' auf der sicheren Seite – obwohl der Dual-/Triple-Channel-Modus normalerweise auch mit unterschiedlichen Modulen funktioniert
Als Mittler zwischen den großen Speicherchip- und Modulherstellern einerseits und dem Handel und den Verbrauchern andererseits haben sich in Deutschland Anbieter wie z.&nbsp;B.&nbsp;CompuStocx, CompuRAM, MemoryXXL und [[Kingston Technology|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är]]e Spezifikationen erfüllt


<noinclude>
<noinclude>
Zeile 78: Zeile 192:
=== Links ===
=== Links ===
==== Weblinks ====
==== Weblinks ====
# https://de.wikipedia.org/wiki/Arbeitsspeicher


[[Kategorie:Arbeitsspeicher]]
[[Kategorie:Arbeitsspeicher]]


</noinclude>
</noinclude>

Aktuelle Version vom 15. September 2025, 13:02 Uhr

Arbeitsspeicher - Speicher eines Computers, der auszuführenden Programme und Daten enthält

Beschreibung

Arbeitsspeicher ist eine Komponente der Zentraleinheit

Da der Prozessor unmittelbar auf den Hauptspeicher zugreift, beeinflussen dessen Leistungsfähigkeit und Größe in wesentlichem Maße die Leistungsfähigkeit der gesamten Rechenanlage

Bezeichnungen
DDR4-SDRAM-Modul mit Heatspreader, für gewöhnlich in Gaming- oder Desktop-PCs verbaut
  • Arbeitsspeicher
  • Hauptspeicher
  • core
  • main store
  • main memory
  • primary memory
  • RAM = Random Access Memory

Zugriff

Arbeitsspeicher wird charakterisiert durch die Zugriffszeit bzw. Zugriffsgeschwindigkeit und (damit verbunden) die Datenübertragungsrate sowie die Speicherkapazität

  • Die Zugriffsgeschwindigkeit beschreibt die Dauer, bis angefragte Daten gelesen werden können
  • Die Datenübertragungsrate gibt an, welche Datenmenge pro Zeit gelesen werden kann
  • Es können getrennte Angaben für Schreib- und Lesevorgang existieren
  • Zur Benennung der Arbeitsspeichergröße existieren zwei unterschiedliche Notationsformen, die sich aus der verwendeten Zahlenbasis ergeben
  • Entweder wird die Größe zur Basis 10 angegeben (als Dezimalpräfix; 1 kByte oder kB = 103 Bytes = 1000 Bytes, SI-Notation) oder zur Basis 2 (als Binärpräfix; 1 KiB = 210 Bytes = 1024 Bytes, IEC-Notation)
  • Aufgrund der binärbasierten Struktur und Adressierung von Arbeitsspeichern (Byte-adressiert bei 8-Bit-Aufteilung, wortadressiert bei 16-Bit-Aufteilung, doppelwortadressiert bei 32-Bit-Aufteilung usw.) ist letztere Variante die üblichere Form, die zudem ohne Brüche auskommt
Physischem Speicher

Soweit Arbeitsspeicher über den Adressbus des Prozessors angesprochen wird oder direkt im Prozessor integriert ist, spricht man von physischem Speicher

  • Modernere Prozessoren und Betriebssysteme können durch virtuelle Speicherverwaltung mehr Arbeitsspeicher bereitstellen, als physischer Speicher vorhanden ist, indem sie Teile des Adressraums mit anderen Speichermedien hinterlegen (etwa mit einer Auslagerungsdatei, pagefile oder swap u. a.)
  • Dieser zusätzliche Speicher wird virtueller Speicher genannt
  • Zur Beschleunigung des Speicherzugriffs – physisch oder virtuell – kommen heute zusätzliche Pufferspeicher zum Einsatz

Grundlagen

Verschiedene Arten von Arbeitsspeicher (v. l. n. r.) SIMM 1992, SDRAM 1997, DDR-SDRAM 2001, DDR2-SDRAM 2008

Der Arbeitsspeicher des Computers ist ein durch Adressen (in Tabellenform) strukturierter Bereich, der Binärwörter fester Größe aufnehmen kann

  • Durch die binäre Adressierung bedingt hat Arbeitsspeicher praktisch immer eine 'binäre' (auf Potenzen von 2 basierende) Größe, da andernfalls Bereiche ungenutzt blieben

Der Arbeitsspeicher moderner Computer ist flüchtig, d. h., dass alle Daten nach dem Abschalten der Energieversorgung verloren gehen – der Hauptgrund dafür liegt in der Technologie der DRAMs

  • Verfügbare Alternativen wie etwa MRAM sind allerdings für die Verwendung als Arbeitsspeicher noch zu langsam
  • Deshalb enthalten Computer auch Festspeicher in Form von Festplatten oder SSDs, auf dem das Betriebssystem und die Anwendungsprogramme und Dateien beim Abschalten erhalten bleiben

Die häufigste Bauform für den Einsatz in Computern ist das Speichermodul

  • Es ist zwischen verschiedenen RAM-Typen zu unterscheiden

Waren in den 1980ern noch übliche Bauweisen Speicher in Form von ZIP-, SIPP- oder DIP-Modulen, so wurden in den 1990ern vorwiegend SIMMs mit FPM- oder EDO-RAM genutzt

Virtueller Arbeitsspeicher

Physischer und virtueller Arbeitsspeicher

Um den physischen Arbeitsspeicher zu erweitern, können moderne Betriebssysteme zusätzlichen virtuellen Arbeitsspeicher auf Massenspeichern allozieren (platzieren, zuteilen)

Um diese Erweiterung transparent zu realisieren, bedient sich das Betriebssystem 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 in das physisch vorhandene RAM oder in den Auslagerungsspeicher (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
Arbeitsspeicher für Notebooks (SO-DIMM) * Oben SD-RAM und unten DDR-RAM

Der Auslagerungsspeicher stellt eine sehr preiswerte, aber mit extrem schlechter Leistung verbundene Erweiterung zum physischen 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 mehreren Millisekunden sehr lange, um die Daten bereitzustellen
  • Die Zugriffszeit auf den Arbeitsspeicher beträgt nur wenige Nanosekunden, was einem Millionstel der Festplatte entspricht

Cache

Zugriffe auf den Arbeitsspeicher durch den Hauptprozessor werden zumeist über ein oder mehrere Pufferspeicher oder Cache-RAMs (kurz „Cache“) optimiert

  • Im Cache hält und benutzt der Rechner die am häufigsten angesprochenen Speicherbereiche, stellvertretend für die originären Hauptspeicherbereiche
  • Der Cache ist im Verhältnis zu anderen Speichern sehr schnell, da er möglichst direkt am Prozessor angebunden ist (bzw. sich in modernen Prozessoren direkt auf dem Die befindet)
  • Allerdings ist er in der Regel nur wenige Megabyte groß

Bei geringem Speicherbedarf können Programme oder Teile davon fast ausschließlich im Cache laufen, ohne dass der Hauptspeicher 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 Bit (sogenannter Burst-Modus), da es sehr wahrscheinlich ist, dass in Kürze auch Daten vor oder hinter den gerade benötigten gelesen werden sollen

Anbindung

Anbindung des Arbeitsspeichers

Die klassische Anbindung von physischem Speicher erfolgt über einen (bei Von-Neumann-Architektur) oder mehrere (bei der heute im PC-Bereich nicht mehr verwendeten Harvard-Architektur bzw. Super-Harvard-Architektur) Speicherbusse

  • Speicherbusse übertragen Steuerinformationen, Adressinformationen und die eigentlichen Nutzdaten
  • Eine von vielen Möglichkeiten ist es, für diese unterschiedlichen Informationen getrennte Leitungen zu nutzen und den Datenbus sowohl zum Lesen wie zum Schreiben von Nutzdaten zu verwenden

Der Datenbus übernimmt dann den eigentlichen Datentransfer Aktuelle PC-Prozessoren benutzen zwischen zwei und vier 64-Bit-Speicherbusse, die aber seit etwa dem Jahr 2000 keine generischen Speicherbusse mehr sind, sondern direkt die Protokolle der verwendeten Speicherchips sprechen

  • Der Adressbus dient zur Auswahl der angeforderten Speicherzellen; von seiner Busbreite (in Bit) ist die maximal ansprechbare Anzahl von Speicherworten abhängig
  • An jeder Adresse sind bei heute üblichen Systemen meist 64 Bit abgelegt (siehe 64-Bit-Architektur), früher wurden auch 32 Bit (Intel 80386), 16 Bit (Intel 8086) und 8 Bit (Intel 8080) verwendet
  • Viele, aber nicht alle Prozessoren unterstützen feiner granulare Zugriffe, meist auf Byteebene, durch ihre Art der Interpretation von Adressen (Endianness, „Bitabstand“ von Adressen, misalignte-Zugriffe) auf Software-Ebene wie auch durch das Hardware-Interface (Byte-Enable-Signale, Nummer der niederwertigsten Adressleitung)
Beispiel
Intel 80486
  • Adressbus: A31 bis A2
  • Datenbus: D31 bis D0
  • Byte-Enable: BE3 bis BE0
  • Endianness: Little Endian
  • Unterstützung von misalignten Zugriffen: ja
  • ansprechbarer Speicher: 4 Gi × 8 Bit als 1 Gi × 32 Bit

Einer der wesentlichen Unterschiede der beiden bei PCs aktuellen Prozessorgenerationen „32-Bit“ und „64-Bit“ ist also der bereits angesprochene maximal ansteuerbare Arbeitsspeicher, der jedoch zum Teil mit Hilfe von Physical-Address Extension noch etwas über das übliche Maß hinaus erweitert werden kann

  • 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
  • Das 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 Bit 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

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)

Hersteller

Die größten Speicherchiphersteller sind:

Diese Hersteller teilen sich 97 Prozent Marktanteil

  • Anbieter von Speichermodulen, wie Corsair, Kingston Technology, MDT, OCZ, A-Data usw. (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äß ihren eigenen Spezifikationen, die durchaus schärfer eingestellt sein können als die der Originalhersteller
DDR2-Speicher mit identischer Spezifikation und Verkaufsbezeichnung, jedoch unterschiedlicher Bestückung

Für Dual-Channel- oder Triple-Channel-Betrieb sollten nach Möglichkeit annähernd baugleiche Module verwendet werden, damit die Firmware (bei PCs das BIOS oder UEFI) den Parallel-Betrieb nicht aufgrund von unvorhersehbaren Inkompatibilitäten verweigert oder das System dadurch instabil läuft

  • Es ist gängige Praxis, dass ein Hersteller beim selben Produkt im Laufe der Produktion andere Chips auf seine Module lötet bzw
  • umgekehrt unterschiedliche Hersteller die gleichen Chips verwenden
  • Da diese Informationen jedoch in so gut wie allen Fällen nicht zugänglich sind, ist man beim Kauf von Speicher-Kits auf der sicheren Seite – obwohl der Dual-/Triple-Channel-Modus normalerweise auch mit unterschiedlichen Modulen funktioniert

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. CompuStocx, CompuRAM, MemoryXXL 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


Anhang

Siehe auch


Links

Weblinks

  1. https://de.wikipedia.org/wiki/Arbeitsspeicher