Übergeordnetes Kapitel: Speicher und Cache

<>Der Speicherzugriff

Ein Speichermodul besteht aus mehreren Speicherchips, die wiederum in Bänke organisiert sind. Die Datenbreite des Speicherbusses beträgt bei aktuellen PC-Chipsätzen 64 Bit. Speichermodule in der SIMM-Bauform (72 Anschlüsse) haben eine Datenbusbreite von 32 Bit, weswegen derartige Module auf Sockel-7-Mainboards paarweise verwendet werden müssen. Unten dargestellt ist ein Beispiel mit zwei 16MByte-Modulen, die jeweils 8 Chips haben. Jedes Chip ist hat 16MBit Speicherkapazität (8 Chips mit 16MBit ergeben 16MByte, da 8 Bit = 1 Byte). So ein 16MBit-Chip ist in der Regel 4M x 4 organisiert, das heißt: 4 Millionen Adressen, mit denen sich je 4 Bit ansprechen lassen; jedes Chip trägt also 4 Bit zur Datenbusbreite bei, bei 2 Modulen mit je 8 Chips ergibt das also die erforderlichen 64Bit.

Um 4 MBit Adreßraum anzusprechen, benötigt man theoretisch 22 Adreßleitungen (2 hoch 22 = 4194304), praktisch existieren aus Kostengründen nur 11, denn jedes zusätzliche Pin erhöht die Kosten für Chip und Leiterplatte. Deshalb ist der Chip intern als Quadrat von 11 mal 11 organisiert. Die niederwertigen 11 Bit adressieren die Reihen (rows) und die höherwertigen 11 Bit die Spalten (columns). Um eine Zelle anzusprechen, werden erst die 11 Row-Bits und danach die 11 Column-Bits gesendet. Das nennt man Adreß-Multiplexing.

Der Lesezugriff gestaltet sich vereinfacht dargestellt folgendermaßen:

Vom DRAM zum SDRAM

Alle Speicherchips verfügen über eine feste Latenz-Zeit (Pausenzeit); sie beträgt bei aktuellen Chips zwischen 40 und 60 Nanosekunden für die erste Leseoperation.
Der wesentliche Unterschied zwischen SDRAM und DRAM liegt in der Behandlung der danach folgenden Lesezugriffe. Im FPM-RAM (Fast Page Mode) wird die Column-Adresse mehrmals weitergeschaltet, um auf die nächste Zelle zu zeigen. Danach geht CAS auf Null, und nur dann lassensich die Daten übertragen.
EDO (Extended Data Out) unterscheidet sich insofern davon, daß schon während des Weiterschaltens die DAten transferiert werden. Damit überlagern sich die Zyklen etwas.
SDRAM wiederum besteht intern aus zwei Bänken, wobei die zweite Bank geladen wird (RAS- und CAS-Aktivierung), während aus der ersten Bank die Daten übertragen werden. Diesen Vorgang nennt man auch Interleaving.

<>Speichertypen (SRAM, FPM, EDO, SDRAM, VCM, RDRAM, DDR)

Untergeordnete Kapitel:
Static RAM (SRAM) und Dynamic RAM (DRAM)
Fast Page Mode (FPM)
Extended Data Output (EDO) DRAM
Burst Extended Data Output (BEDO) DRAM
Synchronous DRAM (SDRAM)
Double Data SDRAM (DDR SDRAM)
Direct Rambus DRAM (DR DRAM oder RDRAM)
VC SDRAM (Virtual Channel)

<>Static RAM (SRAM) und Dynamic RAM (DRAM)

Grundsätzlich gibt es lediglich zwei Speichertypen: SRAM (statischer RAM) und DRAM (dynamischer RAM). Dynamisch bedeutet, daß der Speicher seinen Inhalt nur sehr kurze Zeit behält und dann wieder aufgefrischt werden muß. Das liegt daran, daß die einzelnen Bits in Kondensatoren gespeichert sind. Im statischen RAM hingegen wird der aktuelle Zustand in Kippstufen oder Flip-Flops gespeichert, einer Schaltung von mehreren Transistoren, die einen Zustand solange beibehält, bis die Schaltung durch ein Signal gekippt wird. SRAM ist daher generell wesentlich schneller als DRAM, aber auch sehr viel teurer; er findet sich daher nur in Cachespeichern, während der Hauptspeicher auf DRAM basiert. DRAM-Typen sind z.B. FPM, EDO und SDRAM.

<>Fast Page Mode (FPM)

Die klassischen Speicherchips nutzen FPM. Sie gibt es mit 60 oder 70 ns Zugriffszeit. Bei einem Pentium-Mainboard mit 66 MHz Systemtakt sollte man 60 ns Typen verwenden, in der Praxis laufen die 70 ns Typen meistens jedoch auch stabil. Der sogenannte VRAM oder Video-RAM auf älteren Grafikkarten ist nicht viel anders, jedoch mit teilweise schnelleren Zugriffszeiten (bis hinab zu 48 ns) und zweifachen Port, d.h. CPU und RAMDAC können gleichzeitig auf den Speicher zugreifen ohne aufeinander warten zu müssen. "Fast Page Mode" bedeutet, daß das Modul "hofft", daß der nächste Zugriff im gleichen Speicherabschnitt (ROW) stattfindet, damit der Zugriff schneller gelingt. Der schnellste Zugriff in CPU-Zyklen beträgt hier 5-3-3-3 für einen Burst von 4 Daten (Byte / Word / Dword).

<>Extended Data Output (EDO) DRAM

EDO-RAM unterscheidet sich gegenüber FPM in einer Änderung des Timings zwischen CAS#-Signal und Datenausgabe mit Hilfe eines Latches. Hierdurch werden sequentielle Lesezugriffe beschleunigt. Schreibzugriffe bleiben unverändert. Der schnellste Lese-Zugriff in CPU-Zyklen beträgt hier 5-2-2-2. EDO-Module sind bis maximal 66 MHz Systemtakt geeignet. Als Spannungspegel für die Datenleitungen war 5V üblich.

<>Burst Extended Data Output (BEDO) DRAM

BEDO RAM hat gegenüber EDO-RAM zusätzliche Ausgangsregister und einen internen Zähler. Bei einem Burst-Zugriff wird Speicheradresse zu Beginn geladen und intern hochgezählt, so daß der Zugriff ab dem zweiten Datum nur noch einen Systemtakt erfordert. Der schnellste Lese-Zugriff in CPU-Zyklen beträgt hier 5-1-1-1. BEDO-Module sind bis maximal 66 MHz Systemtakt geeignet und werden z.B. von Intels 440FX- und AMDs 640-Chipsatz unterstützt. BEDO-RAM-Module haben sich jedoch nicht durchgesetzt.

<>Synchronous DRAM (SDRAM)

Die Ein- und Ausgangssignale werden mit dem Systemtakt synchronisiert, wobei der Systemtakt wesentlich höher als 66 MHz sein darf (PC-66, PC-100, PC-133). Der schnellste Zugriff in CPU-Zyklen beträgt 5-1-1-1. Mittlerweile hat sich dieser Speichertyp zum Standard etabliert. Der Spannungspegel der Datenleitungen beträgt bei aktuellen SDRAM-Modulen 3,3V.

<>Double Data SDRAM (DDR SDRAM)

Im Gegensatz zu herkömmlichen SDR-SDRAM-Modulen [SDR = Single Data Rate] werden die Daten bei DDR-Speicher nicht nur auf der steigenden, sondern auch auf der fallenden Flanke des Systemtakts übertragen. Damit läuft ein DDR-SDRAM bei einem Bustakt von 100MHz effektiv mit 200 MHz, und die Transferrate steigt gegenüber herkömmlichen SDR-SDRAM von 0,8 auf 1,6 GB/s. Diese Module werden entsprechend ihrer maximalen Übertragungsrate PC1600 genannt. Dementsprechend gibt es für 133MHz Systemtakt auch sogenannte PC2100-Module. Für PC-Hauptspeicher mit DDR-SDRAM existieren die JEDEC-Normen DDR200 und DDR266 für einzelne DDR-SDRAM-Chips sowie die Normen PC1600 und PC2100 für komplette Module. Geplant sind auch DDR-Module mit 166MHz Taktfrequenz (PC2700 bzw. DDR333). Intel bemüht sich um eine genauere Spezifikation dieser Standards.

Zur Verbesserung des Gleichklangs von Takt- und Datensignal setzt man ein differenzielles Taktsignal ein; im Vergleich zum massebezogenen Taktsignal bei SDR-SDRAM ist das differenzielle Signal störfester und lässt sich mit höherer Präzision auswerten. Zusätzlich enthält jedes DDR-Speicherchip eine sogenannte DLL-Schaltung (Delay Locked Loop), welche ein DQS-Impuls (Data Strobe Signal) erzeugt, das die Gültigkeit eines Datenworts anzeigt. Die eigentlichen Speicherzellen von DDR-SDRAMs arbeiten nicht schneller als bei SDR-SDRAM, werden aber paarweise angesprochen und dann nacheinander ausgegeben, so daß die doppelte Datenrate möglich wird.

Der Spannungspegel der Datenleitungen beträgt bei aktuellen DDR-SDRAM-Modulen 2,5V. Shuttle bietet diverse Mainboards mit DDR-Speicher-Unterstützung für Sockel370, Sockel A und Sockel478 an.

<>Direct Rambus DRAM (DR DRAM oder RDRAM)

Basiert auf einem eigenen Speicherbus von 16 Bit Breite, der auf bis zu 4 Kanäle mit je einem Controller erweitert werden kann. Das Dual-Channel-Interface des i850-Chipsatzes unterstützt theoretisch bis zu 3,2GB/s (1,6 pro Kanal, max. 4 Kanäle sind möglich). Der Spannungspegel der Datenleitungen beträgt bei aktuellen RDRAM-Modulen 2,5V. Jedoch konnte sich RDRAM bisher nicht durchsetzen, u.a. weil das Preis/Leistungs-Verhältnis zu gering ist. Weitere Infos unter RIMM.

<>VC SDRAM (Virtual Channel)

Speichertechnologie von NEC. Der Zugriff bei VC-SDRAM auf die eigentlichen Speicherzellen wird über Kanäle gesteuert. Diese Kanäle werden über 16 unabhängige Eingangs-Puffer von je 1kB realisiert, die die internen Vorgänge von der Verbindung mit dem Außenbereich abkoppeln. Dadurch kann man gleichzeitig sowohl interne Vorgänge wie z.B. das Verschieben von Speicherbereichen als auch externe Vorgänge wie Lese-/Schreibzugriffe durchführen. 

Performance-Steigerung: Im Allgemeinen kann man sagen, dass man bis zu 25% mehr Leistung verbuchen kann als bei SDRAM. Beim Test von Anandtech stellte sich jedoch heraus, dass es Situationen gibt, bei denen VC SDRAM langsamer ist, als gewöhnlicher SDRAM. Unterstützt wird VC SDRAM von VIA Apollo Pro Chipsätzen. Der Preis soll nur etwa 5-10% höher liegen als bei PC133 SDRAM, jedoch ist keine Bezugsquelle bekannt.

<>Zeitangaben bei SDRAM-Speicher

Alle Zeitangaben gelten immer ab einem Clock-Signal. Dieser periodische Takt wird von außen an das SDRAM-Modul herangeführt und hat eine Frequenz von z.B. 100MHz, dies entspricht einer Periodendauer von 10ns. Intern ist braucht das Speichermodul für bestimmte Aktionen festgelegte Mindestzeiten. "SDRAM" bedeutet "Synchrones DRAM", d.h.: alle Operationen laufen mit Systemtakt ab und belegen eine oder mehrere Taktperioden. Dauert eine Aktion 8 Nanosekunden, wird (bei 100MHz) ein Taktzyklus von 10 Nanosekunden benötigt. Sind es 11 Nanosekunden, dann sind zwei Taktzyklen (20 Nanosekunden) nötig. Anders ausgedrückt: Wofür ein DRAM 11 Nanosekunden braucht, benötigt ein SDRAM (mit 100 MHz) 20 Nanosekunden. Benötigt eine Aktion 9 oder 10 Nanosekunden, dann müssen übrigens trotzdem 2 Taktzyklen à 10ns veranschlagt werden, weil das Signal einige Zeit benötigt, um sich zu stabilisieren, damit es nicht in die nächste Periode überschwingt. Deshalb ist für PC-100-Chips eine Zykluszeit von kleiner/gleich 8 Nanosekunden spezifiziert.

Die wichtigsten 5 Timing-Werte für SDRAM lauten:

t RP

Row Precharge

Zeitraum zum Umschalten der Bänke über die Zeile

t RCD

RAS CAS Delay

Zeit, die zwischen dem Anlegen des RAS- und des CAS-Signals vergehen muß

t AC

Access Time

Zeitraum, um die Ausgabe im Burst-Modus vorzubereiten

t CAC

Column Access

Die erforderliche Spaltenzugriffszeit

t RCT

Read Cycle Time

Zeitraum, um die Daten für den nächsten Lesezyklus im Burst-Modus bereitzustellen

In der Werbung wird meistens nur die Read Cycle Time angegeben. Dieser Parameter gibt die Zeit an, die ein Baustein auf dem DIMM benötigt, um gültige Daten zu liefern. Ein 'echter' PC-100-SDRAM benötigt nur 6 ns für die Bereitstellung der Daten. Intel hat hier allerdings auch eine Einschränkung zugelassen: In PCs mit nur zwei DIMM-Steckplätzen darf diese Zeit 7 ns betragen. Ein SDRAM-Speichermodul mit 8ns-Angabe reicht nicht für die PC-100-Spezifikation. Allerdings sagt dieser Parameter recht wenig über den kompletten Lesezyklus aus.

Unter CAS versteht man die Anzahl der Taktzyklen vom Aktivieren der CAS-Leitung bis zum Schreiben der Daten in den Ausgabepuffer vergehen. Die Anzahl der Takte für die CAS-Latency hängt direkt von der Spaltenzugriffszeit ab. So gibt es viele PC-100 Speichermodule, die zwar bei 66MHz mit CAS 2 funktionieren, jedoch bei 100MHz auf CAS 3 betrieben werden müssen.

Bei Speicherzugriffen wird die meiste Zeit für den Overhead verbraucht und ein verhältnismäßig geringer Teil für den eigentlichen Datentransfer. Im sogenannten Burst-Modus werden vier aufeinanderfolgende 64-Bit-Blöcke (= 32 Byte) im Stück gelesen oder geschrieben. Dabei wird nur die Adresse für den ersten Block übertragen und im Adreßpuffer des DRAM gespeichert. Für die folgenden drei Blöcke wird nur noch weitergeschaltet. Beschrieben wird ein Burst in der Art x-y-y-y. Das X steht für den ersten Zugriff, die Y beschreiben die restlichen Taktzyklen für jedes weitere 32Bit-Datenwort. Bei einem Burst von 4-1-1-1 werden z.B. 7 Taktzyklen benötigt, um 32 Byte zu übertragen.

Zeit zum Lesen von 32 Bytes im Burst Modus

Nächstes Kapitel: Der "Cacheable Area"


© 2001 Shuttle Computer, letzte Änderung am 14.03.2002
Geschützte Warenzeichen und Handelsnamen sind in diesem Dokument nicht als solche kenntlich gemacht. Dies bedeutet nicht, daß es sich um freie Namen im Sinne des Waren- und Markenzeichenrechts handelt. Druckfehler, Irrtümer, Innovationen und technische Änderungen vorbehalten. Der Verfasser übernimmt keine Verantwortung für den Inhalt dieser Dokumente.