Strukturprinzipien von DRAM-Speicher-ICs 7 Hauptspeicher und Speichermodul-Schnittstelle Der Datenfluss zwischen dem Prozessor und dem Hauptspeicher ist durchsatzbestimmend. Der Prozessor gibt dabei gewünschte Zugriffszeiten vor, die von seiner internen Arbeitsgeschwindigkeit abhängen. Der Hauptspeicher kann aber nur bestimmte Zugriffszeiten realisieren, die von seinem Aufbau abhängen. Bedeutet das, dass der Prozessor “ausgebremst” wird? Um das zu klären, sollen zunächst die Bedingungen untersucht werden, welche der Aufbau des Hauptspeichers setzt. 7.1 Strukturprinzipien von DRAM-Speicher-ICs Man unterscheidet Nur-Lese-Speicher (read only memory = ROM) von Schreib-LeseSpeichern (random access memory = RAM). ROMs heißen maskenprogrammiert, weil man ihnen die zu speichernde Information beim Herstellungsprozess einprägt. Die eingeprägte Information ist nach der Herstellung nicht mehr veränderbar. Löschbare und wieder programmierbare EPROMs (erasable and programmable ROM) kann man nach Bedarf programmieren. Programmieren bedeutet in diesem Zusammenhang, eine elektrisch stabile Struktur einzuprägen. RAMs speichern Daten flüchtig, d.h. sie speichern mit Hilfe einer elektrisch instabilen Struktur. Eine Abschaltung der Stromversorgung bedeutet den Verlust der gespeicherten Daten. Man unterscheidet RAMs nach dem Typ ihrer elementaren Speicherzellen. Speicherelemente der dynamischen RAM-Speicher (DRAM) Die elementare Einheit eines DRAMs ist der Kondensator, dessen Ladezustand über den gespeicherten Binärwert entscheidet. Das Einstellen eines Binärwerts (Schreiben) bedeutet physikalisch, dass eine schreibende Schaltung eine Ladungsmenge auf dem Kondensator einprägt. Dabei kann man zwei (einander entgegen gesetzte) Ladungszustände einstellen: keine Ladung oder entladener Zustand, maximal mögliche Ladung oder aufgeladener Zustand. Beim Abfragen eines gespeicherten Binärwerts (Lesen) ist die Wirkungsrichtung umgekehrt: die gespeicherte Ladungsmenge bestimmt, welcher Binärwert zur lesenden Schaltung übertragen wird. Ein Speicherelement besteht aus einem Kondensator und einem Auf/Zu-Schalter. Der Schalter öffnet oder schließt eine Verbindung zwischen dem Kondensator und einer Leitung zum Abfluss oder Zufluss von Ladungen beim Schreiben bzw. beim Lesen. Da der Fluss der Ladungen den geschriebenen bzw. gelesenen Binärwert bestimmt, wird die Leitung Datenleitung genannt (Bild 7.1). Der Schaltwert auf der Steuerleitung des Transistor-Schalters bestimmt über die Verbindung zwischen Datenleitung und Kondensator. Computertechnik 176 Jacob Strukturprinzipien von DRAM-Speicher-ICs Transistor als Schalter Kondensator Auswahlleitung Datenleitung Bild 7.1: Aufbau eines Speicherelements eines DRAMs Ohne die Verbindung ist weder Schreiben noch Lesen möglich. Erst die Verbindung macht das möglich, d.h. das Speicherelement ist für das Schreiben bzw. Lesen ausgewählt. Die Steuerleitung wird deshalb Auswahlleitung genannt. Matrixstruktur der Speicherelemente von DRAMs Wenn man bei einem Auswahlvorgang mehrere Speicherelemente gleichzeitig auswählen will, muss man eine Zeile von Speicherelementen bilden, die alle mit der gleichen Auswahlleitung ausgewählt werden. Um mehr als eine Zeile auswählen zu können, muss man die Zeilen vervielfachen und erhält insgesamt eine MatrixAnordnung (Bild 7.2). Daten-Leitungspaar smax Daten-Leitungspaar 1 Auswahl-Leitung 1 Auswahl-Leitung 2 Auswahl-Leitung zmax-1 Csp Auswahl-Leitung zmax Bild 7.2: Matrix-Anordnung der Speicherelemente An jeder Datenleitung sind gleich viele Speicherelemente angeschlossen, damit keine ungleichen Auf/Entladezeiten nach der Auswahl einer Zeile entstehen. Die paarweise Anordnung der Datenleitungen ist maßgeblich für die Lesefunktion, bei der die Spannungszustände beider Leitungen miteinander verglichen werden, sobald eine Zeile-Auswahlleitung aktiviert wurde. Computertechnik 177 Jacob Strukturprinzipien von DRAM-Speicher-ICs Vertiefung für Interessierte: kein Prüfungsstoff: Angenommen, dass die Versorgungsspannung Vcc ist und dass alle Datenleitungen so eingestellt wurden, dass sie eine Spannung Vcc/2 gegen das Bezugspotential haben. Weiter angenommen, dass kein Speicherelement ausgewählt ist. Sobald nun eine Auswahlleitung aktiviert wird, entsteht an jedem Speicherelement der ausgewählten Zeile eine Verbindung zu seiner Datenleitung im betroffenen Daten-Leitungspaar. Jetzt ist maßgeblich, welchen Ladezustand die ausgewählten Kondensatoren haben: • Wenn ein Kondensator auf Vcc aufgeladen ist, herrscht ein Ladungsungleichgewicht zwischen Kondensator und Datenleitung. Es fließen Ladungen vom Kondensator zur Datenleitung, so dass deren Spannung, von Vcc/2 ausgehend, steigt; • Wenn ein Kondensator keine Ladung enthält, herrscht ebenfalls ein Ladungsungleichgewicht. Da die Leitung auf Vcc/2 aufgeladen ist, der Kondenstor aber keine Ladung enthält, müssen Ladungen zum Kondensator fließen, d.h. die Spannung auf der Leitung fällt, von Vcc/2 ausgehend. Die Spannung zwischen der Datenleitung im Paar, die eine Verbindung mit dem ausgewählten Kondensator hat, und die Spannung Vcc/2 der anderen Datenleitung im Paar bilden nach der Auswahl eine kleine positive (Kondensator aufgeladen) oder kleine negative (Kondensator ohne Ladung) Spannungsdifferenz. Ein Verstärker verstärkt eine kleine positive Differenz, bis sie den Wert +Vcc hat, und eine kleine negative Spannungsdifferenz, bis sie den Wert –Vcc hat. Daten-Leitungspaar smax Daten-Leitungspaar 1 Auswahl-Leitung 1 nicht geladen geladen geladen Auswahl-Leitung 2 Auswahl-Leitung zmax-1 Csp Auswahl-Leitung zmax 0 Vcc Schreib/Lese-Verstärker Vcc 0 Schreib/Lese-Verstärker 0 Vcc Schreib/Lese-Verstärker Bild 7.3: Beispiel für eine Lese-Auswahl mit Verstärkung der Spannungsdifferenzen auf den Datenleitungspaaren gemäß dem jeweils angenommenen Ladungszustand Die Verstärkung sorgt dafür, dass die ausgewählten Kondensatoren alle wieder den ursprünglichen Ladezustand bekommen. Aber alle Datenleitungen verlieren ihren Spannungswert Vcc/2. (Ende der Vertiefung) Computertechnik 178 Jacob Strukturprinzipien von DRAM-Speicher-ICs Der Vergleich der Spannungszustände besteht in der Bildung der Differenz zwischen den Spannungen auf den Leitungen des Leitungspaars, die je nach Ladungszustand der durchgeschalteten Kondensatoren positiv oder negativ ist. Schreib/Lese-Verstärker verstärken auf die positive Spannungsdifferenz Vcc bzw. die negative Spannungsdifferenz –Vcc. Dadurch erhalten alle durchgeschalteten Kondensatoren wieder den ursprünglichen Ladungszustand, aber der ursprüngliche Spannungszustand Vcc/2 geht auf allen Datenleitungen verloren. Zwangsläufige Folge: Solange nur die Speicherelemente der ausgewählten Zeile interessieren, kann der eingestellte Gesamtzustand so bleiben. Wenn aber eine neue Zeile ausgewählt wird, muss zuerst der Grundzustand eingestellt werden, also: Auswahl abstellen und alle Datenleitungen in Spannungszustand Vcc/2 bringen. Man nennt diesen Vorgang Vorladen (Preload). Nach der Zeilen-Auswahl und der Verstärkung stehen die Spannungswerte (=Binärwerte) der ausgewählten Speicherelemente zur Verfügung. Es interessiert davon einer, der beim Lesen auf die Datenleitung zum Memory-Controller geschickt werden soll. Das muss durch eine ergänzende Auswahl der betroffenen Spalte geschehen. Die Kern-Struktur von x1Bit-DRAMs Die Matrix der Speicherelemente muss durch ergänzende Schaltungen zur Kernstruktur von DRAMs erweitert werden Bild 7.4. Die Indizierung in der Matrix erfolgt hier, wie es in der mathematischen Literatur üblich ist. Ein Element in einer Matrix-Struktur wird immer durch die Kombination eines Zeilen- und Spaltenindex identifiziert. Man benutzt die Bezeichnungen i,j. Die Indizes in einer Speichermatrix sind die Zeilen- und die Spaltenadresse (row address, column address). Die Dekodierschaltungen erzeugen aus der entsprechenden dualen Adresse ein eindeutiges einzelnes Auswahlsignal. Die Datenpfad-Schaltung schaltet gemäß der Spaltenadresse beim Schreiben das binäre Signal aus dem Din-Puffer zu dem zuständigen Lese/Schreib-Verstärker. Beim Lesen schaltet sie den Datenpfad in umgekehrter Richtung zum Dout-Puffer. Wenn eine Zeile adressiert ist, kann man so oft und so viele Spalten in der Zeile adressieren, wie man will. Man braucht kein neues Vorladen. Erst wenn man eine neue Zeile adressiert, muss vorher ein Vorladen mit Hilfe der Vorlade-Schaltung erfolgen, um alle Datenleitungen wieder in den Grundzustand bringen. Computertechnik 179 Jacob Strukturprinzipien von DRAM-Speicher-ICs Spalte 1 Spalte 2 Spalte smax Vcc/2 Steuerung des Vorladens VorladeSchaltung Zeile 1 Zeile 2 Zeilendekoder Zeile zmax-1 Zeile zmax Lese/ SchreibVerstärker DinPuffer Lese/ SchreibVerstärker Lese/ SchreibVerstärker IOSchaltung DoutPuffer Spaltendekoder Bild 7.4: Kern-Struktur eines DRAMs (x1Bit-Struktur) mit Speichermatrix, Dekoder-, IODatenpfad- und Vorlade-Schaltungen Computertechnik 180 Jacob Strukturprinzipien von DRAM-Speicher-ICs Die Kern-Struktur von „mal n“-Bit-DRAMs (x4,x8, x16) Bild 7.5 kennzeichnet den Bereich, der vervielfacht werden muss, und den Bereich, der für alle Vielfache gleich ist. Die Parallelisierung für die „mal n“-Bit-Struktur betrifft nur den Bereich der Speichermatrix und der Datenpfad-Schaltung (IO-Schaltung). Spalte 1 Spalte 2 Spalte smax Vcc/2 Steuerung des Vorladens VorladeSchaltung Zeile 1 Zeile 2 Zeilendekoder Zeile zmax-1 Zeile zmax Lese/ SchreibVerstärker DinPuffer Lese/ SchreibVerstärker Lese/ SchreibVerstärker IOSchaltung DoutPuffer Spaltendekoder Bild 7.5: Strukturbereiche für die Vervielfachung und für gemeinsame Schaltungen bei wortweiser Speicherung Bei einem Speicherzugriff gelten die Zeilen- und die Spaltenadresse für alle Bits des transferierten Datenworts gelten. Deshalb gibt es nur einen Zeilen- und nur einen Spalten-Dekoder. Die Dekoder erzeugen jeweils ein Auswahl-Signalpaar, das das in seinem Kreuzungspunkt eindeutig ein Speicherelement auswählt. So können zmax · smax Speicherelemente eindeutig ausgewählt werden. Wenn man die Speichermatrix mit der IO-Schaltung n-Mal vervielfacht, kann man zmax · smax · n Bit gleichzeitig transferieren (Bild 7.6). Computertechnik 181 Jacob Nicht-synchrone DRAMs: EDO-DRAMs Vcc/2 Zei len de ko der vervielfachte Speichermatrizen mit Datenpfadschaltungen Spaltendekoder Bild 7.6: Kern-Struktur eines x4-DRAMs 7.2 Nicht-synchrone DRAMs: EDO-DRAMs Prinzipien des Aufbaus und des Speicherzugriffs Obwohl dieser Speichertyp in aktuellen PCs nicht mehr angewendet wird, sollte man seine prinzipiellen Merkmale kennen, um die technologische Entwicklung einschätzen zu können. Die Kernstruktur wird um die Interfaces zur IC-Pin-Schnittstelle ergänzt (Bild 7.7). 2 MAn/2-1 . . . . MA0 R e g i s t e r n/2 2 Zeilen Lese-/SchreibVerstärker Puffer R HAn/2-1 e . g Spalten. i adreß. s decoder . t HA0 e r WE adressiertes Speicherelement Spalten HAn-1 . . Zeilenadreß. decoder . HAn/2 RAS CAS Din n/2 IOSchaltung Puf- Dout fer WE Control Bild 7.7: 2n x1Bit EDO-DRAM-Speicher-IC mit quadratischer Speichermatrix Computertechnik 182 Jacob Nicht-synchrone DRAMs: EDO-DRAMs • • • • • Da die Zeilenadresse und die Spaltenadresse nacheinander dekodiert werden, kann man sie nacheinander an die gleichen Pins anlegen. Die Begleitsignale /RAS (row address select) und /CAS (column address select) geben bei ihrer Aktivierung an, welcher Adresstyp gerade angeboten wird. Bei einer quadratischen Speichermatrix und einer Adresse mit n Bits, ergeben sich genau n/2 Adresspins. Da man üblicherweise die Adresspins gemäß dem Exponenten des Stellengewichtes numeriert, ergibt sich die Numerierung von 0 bis n/2-1. Bei einer nicht-quadratische Matrix ist die Anzahl der Adressbits der längeren Adresse, in der Regel der Zeilenadresse maßgeblich. Register sind Wort-Speicher. Die angelegte Zeilenadresse verschwindet in dem Moment, wenn die Spaltenadresse angelegt wird. Intern braucht man aber eine stabile Zeilenadresse, um die Zeile ausgewählt zu halten. Deshalb braucht man das Zeilenadress-Register. Das gilt sinngemäß auch für die Spaltenadresse. Das Signal /WriteEnable legt die Übertragungsrichtung fest. Sobald es im LowZustand ist, wird der Daten-in-Puffer aktiviert, sonst der Daten-out-Puffer. Bild 7.8 zeigt den prinzipiellen zeitlichen Ablauf der beteiligten Signale, wobei ein Lesezyklus als Szenario dient. Zeilenadresse gültig Spaltenadresse gültig Daten Vorladen zu Ende = neuer Speicherzugriff möglich gültig Vorladen (wenn nötig) RAS CAS Zeile Spalte Adresspins Dout gültig Bild 7.8: Prinzipielles Signal-Zeit-Diagramm eines DRAM-Lesezugriffs Die Phasen, in denen ein Signal einen undefinierten Zustand haben kann, sind grau gestrichelt. Der Beginn der Pulse ist gegen die Aufschalt-Zeitpunkte der Adressen verzögert, damit diese eingeschwungen sind, wenn der Puls-Beginn ihre Gültigkeit meldet. Das Ende des SpaltenPulses erzeugt nach einer bestimmten Zeit ungültige Daten. Damit bemerkt man, was bei einem DRAM-Speicherzugriff Zeit kostet: • Für die beiden aufeinander folgenden Auswahlphasen braucht man jeweils eine charakteristische Zeit. • Ohne Zeilenwechsel braucht man je Zugriff nur die Spalten-Auswahlzeit. • Bei einem Zeilenwechsel braucht man die Vorladezeit und danach die Zeit für die beiden Auswahlphasen. Am häufigsten kommt der Zugriff zu einer cachebaren Zeile vor, also vier Speicherzugriffe als Burst ohne Zeilenwechsel (Bild 7.9). Computertechnik 183 Jacob Nicht-synchrone DRAMs: EDO-DRAMs Bits gültig Spalte gültig Zeile Spalte Spalte gültig Spalte Bits gültig Bits gültig Spalte gültig Spalte Bits gültig RAS Spalte gültig CAS Spalte Dout Bild 7.9: Lese-Burst einer cachebaren Zeile Spalte gültig erzeugt nach Laufzeit das/die ausgelesenen Datenbit/s (grün). Bits gültig zeigt das Ereignis zur Übernahme des/der gelesenen Bits und das Neu-Einstellen der Spaltenadresse an (rot). Wenn man längere Zeit nicht zu einem DRAM zugreift und damit die Speicherelemente regeneriert, kommt es zur Kondensatorentladung. Das erzwingt eine automatische periodische Regeneration aller Speicherelemente (ein typischer Wert ist in eine Periodendauer von 16 msec, cyclic refresh). 7.3 Statische RAM-Speicher (SRAM) SRAMs speichern je ein Bit “digital” in einem Flip-Flop. Ein Flip-Flop ist ein binäres Speicherglied, das durch eine rückgekoppelte Transistorschaltung realisiert wird. Vertiefung für Interessierte, kein Prüfungsstoff: Die Rückkopplungen erkennt man an den gekreuzten Verbindungen zum Gate des jeweils anderen Transistors. - Die beiden oberen Transistoren realisieren mit Hilfe von Transistoren ohmsche Widerstände. Di und /Di (lies Di nicht) liefern zueinander inverse Schaltzustände. Die Speicherwirkung liegt im stabilen Schaltzustand der Schaltung. + + RL RL Auswahl-Leitung i Di Di Das erkennt man an folgendem Fall-Beispiel. Ein High-Pegel (gleich Versorgungsspannung) an Di bedeutet an /Di einen Low-Pegel (gleich Bezugspotential). Die Grundfunktion der oben eingeführten Transistoren ist: ein High-Pegel am Gate bedeutet einen leitenden Transistor, ein Low-Pegel einen nicht-leitenden Transistor. Wenn die Auswahl-Leitung einen High-Pegel hat, dann sind die Auswahl-Transistoren leitend und schalten die Pegel von Di bzw. /Di durch. Computertechnik 184 Jacob Statische RAM-Speicher (SRAM) Ein High-Pegel an Di macht durch die Kopplung den rechten unteren Transistor leitend. Dadurch entsteht ein „Kurzschluss“ zum Bezugspotential. Durch die Kopplung von Di auf den rechten unteren Transistor entsteht also der Low-Pegel, wie er von /Di durchgeschaltet wird. Der Low-Pegel auf /Di macht den linken unteren Transistor nicht-leitend. Dadurch entsteht eine „Unterbrechung“ zum Bezugspotential. Durch die Kopplung von /Di auf den linken unteren Transistor wird der High-Pegel, der von Di durchgeschaltet wird, nicht beeinflusst, also bestätigt. Da die Schaltzustände der rechten und linken Transistorpaare sich durch die Kopplung gegenseitig bestätigen, bleiben sie auch in dem eingestellten Zustand, wenn man die Verbindungen zu Di bzw. /Di unterbricht. Wenn man während der Unterbrechung die Schaltzustände von Di und /Di umkehrt und die Auswahl-Transistoren wieder durchschaltet, wird die rückgekoppelte Schaltung ihren Schaltzustand invertieren (kippen), weil sie ja symmetrisch aufgebaut ist. Wenn man die Auswahl-Transistoren wieder nicht-leitend macht, bleibt der eingestellte Schaltzustand erhalten, usw. Die Eigenschaft des Kippens hat zur Bezeichnung Flip-Flop geführt. (Ende der Vertiefung) Der Platzbedarf für ein SRAM-Speicherelement ist größer als der für ein DRAMSpeicherelement, weil mehr Transistoren zur Realisierung notwendig sind. Auf einer gegebenen Chipfläche lassen sich also mehr DRAM- als SRAM-Speicherelemente unterbringen. Die maximal erreichbaren Speicherkapazitäten sind bei DRAMs deshalb grundsätzlich größer als bei SRAMs. n/2 MAn-1=HAn-1 . . . MAn/2=HAn/2 Din 2 Spalten Zeilenadreßdecoder n/2 2 Zeilen SchreibVerstärker LeseVerstärker MAn/2-1=HAn/2-1 . Spalten. adreß. decoder MA0=HA0 WE CS Speicherelement Flip-Flop Dout WE=L,CS=L WE-CS Control WE=H,CS=L Bild 7.10: 2n x1Bit SRAM-Speicher-ICs mit quadratischer Speichermatrix Der Vorteil von SRAMs ist, dass sie schneller sind als DRAMs. Gründe: • Die Adresse wird in einer einzigen Phase vollständig an den Speicher-IC gelegt. • Es gibt keinen Vorladevorgang, weil beim Speicherzugriff ein Flip-Flop seinen Speicherzustand nicht ändert, während der Speicherzustand eines Kondensators beim Zeilenwechsel zeitaufwendig wieder hergestellt werden muss. Computertechnik 185 Jacob Synchrone DRAMs (SDRAMs) 7.4 Synchrone DRAMs (SDRAMs) Die Phasen eines Transfers beim Speicherzugriff zu SDRAMs Beim Speicherzugriff wird ein Transfer zwischen dem Initiator des Zugriffs und dem Hauptspeicher ausgeführt. Die Kern-Struktur eines DRAMs bestimmt, dass zuerst die Zeile ausgewählt werden muss und dann die Spalte, und sie bestimmt, wie viel Zeit für jede Phase ablaufen muss. Bei asynchronen DRAMs werden der Beginn und das Ende der einzelnen Phasen durch eindeutig zugeordnete Pulse angezeigt. Ein Speicherzugriff beginnt also, sobald der Puls der Zeilen-Auswahl-Phase beginnt. Die Gültigkeit der Datenbits wird durch das Ende der Spaltenpulse markiert. Die Übertragungsrichtung wird durch das WE/Signal bestimmt. Die Signale RAS/, CAS/ und WE/ bestimmen den Ablauf des Speicherzugriffs Wenn man keine Pulse hat, deren Beginn und Ende gezielt den Beginn bzw. das Ende einer Phase anzeigen, dann kann man den Beginn und das Ende der Phasen auch durch Auszählen von Takten realisieren. Das bedeutet, die Steuerung des Ablaufs der Phasen geschieht synchron zu einem Takt. Die Phasen eines Transfers werden synchron zu einem Takt ausgeführt. Dabei sind drei Phasen zu unterscheiden: die Zeilen-Auswahl-Phase, die Spalten-Auswahl-Phase und die eigentliche Datentransfer-Phase (Bild 7.11) Memory Interface AdressInterface CommandInterface Zeilenadr. Spaltenadr. ActivCommand ReadCommand tRCD CL DatenInterface Takt Bild 7.11: Zeilenauswahl, Spaltenauswahl- und Datenübertragungs-Phase beim lesenden Burst-Speicherzugriff zu einem SDRAM RCD Row Column Delay, CL Column Latency: beide Zeiten sind bedingt durch schaltungstechnische Verarbeitungszeiten und sie sind auf je ein ganzzahliges Vielfaches der Taktzykluszeit aufgerundet. Beim Ablauf der Phasen muss man erkennen können, ob es sich um eine Zeilenauswahl-Phase oder eine Spaltenauswahl-Phase handelt. Außerdem muss man erkennen können, ob es sich um einen lesenden oder einen schreibenden Zugriff handelt. Computertechnik 186 Jacob Synchrone DRAMs (SDRAMs) Das wird mit Hilfe eines Command-Worts mit 3 Bit ermöglicht, das die Übertragung des jeweiligen Adressworts begleitet. In den drei Bits können bis zu 8 unterschiedliche Commands angegeben werden. In Bild 7.11 werden die Commands mit ihren Kurzbezeichnungen angegeben: Activ für das Command zur Zeilenadressierung, Read für das Command zur Spaltenadressierung und die Festlegung der Übertragungsrichtung Lesen. Ein anderes Command ist z.B. Pre für precharge. Wenn zwei Speicherzugriffe unmittelbar nacheinander folgen, muss der zweite warten, bis der vorausgehende beendet ist; denn die Spaltenauswahl darf nicht verändert werden, bevor nicht der ganze Burst fertig ist (Bild 7.12). Zeilenadr. Spaltenadr. Spaltenadr. ActivCommand ReadCommand ReadCommand tRCD CL CL Bild 7.12: Zwei lesende Burst-Zugriffe in derselben Zeile nacheinander Bei einem Zeilenwechsel muss zuerst ein Precharge-Command ausgeführt werden, bevor der Speicherzugriff mit dem Activ-Command beginnen kann (Bild 7.13). Zeilenadr. Spaltenadr. ActivCommand ReadCommand tRCD CL Precharge Command tRP Zeilenadr. Spaltenadr. ActivCommand ReadCommand tRCD CL Bild 7.13 Zwei lesende aufeinander folgende Burst-Zugriffe zu verschiedenen Zeilen RP = repair Eigentlich ist so kein wesentlicher Vorteil gegenüber den EDO-DRAMs erkennbar. Das ergibt sich erst, wenn man die Belegungspausen beim Transfer der Datenbits vermeiden möchte. Wenn man aber in diesen Pausen Datenbits übertragen möchte, dann können die nur aus einem gleichzeitig wirksamen anderen Speicher kommen, der die gleichen Eigenschaften hat wie der betrachtete. Eine Speichereinheit, die Commands empfangen kann und autonom abwickelt, heißt Speicherbank. Da jetzt die Commands gezielt an eine Speicherbank adressiert werden, braucht man auch eine Speicherbank-Adresse. Computertechnik 187 Jacob Synchrone DRAMs (SDRAMs) SDRAMs haben vier (interne) Speicherbänke (Bild 7.14). Je nach Speichertyp Adresswort I n t e r f a c e Speicher -bank 3 Speicher -bank 2 Speicher -bank 1 Speicher -bank 0 I n t e r f a c e ein 1Bit-Datenwort ein 4Bit-Datenwort ein 8Bit-Datenwort pro Taktperiode Zeit in Taktperioden Steuereinheit Command-Wort Takt Bild 7.14: SDRAM-Struktur mit vier internen Speicherbänken Unter diesen Voraussetzungen müssen die bisherigen Zeitdiagramme ergänzt werden, was nur für Bild 7.11 geschehen soll (Bild 7.15). Memory Interface Speicherbankadr. Speicherbankadr. AdressInterface Zeilenadr. Spaltenadr. ActivCommand ReadCommand CommandInterface tRCD CL DatenInterface Takt Bild 7.15: Lesender Burst-Speicherzugriff mit ergänzter Speicherbank-Adressierung Dass sich bei einer Struktur mit mehreren Speicherbänken die Belegungspausen beim Transfer der Datenbits vermeiden lassen, zeigen Bild 7.16 und Bild 7.17. Sobald ein nachfolgendes Command sich an eine nicht belegte Speicherbank richtet, ist eine simultane Bearbeitung unabhängig von den belegten möglich. Der Memory-Controller steuert den Ablauf der Speicherzugriffe. Er bestimmt, wann welche Commands gesendet werden und wann und wie die Daten transferiert werden. Sein Betriebsziel ist, einen Datenstrom ohne Pausen zu erzeugen. Computertechnik 188 Jacob Synchrone DRAMs (SDRAMs) Wenn er ein Activ-Command zur Zeilenauswahl gesendet hat (z.B. an a), kann er eigentlich sofort ein Activ-Command für eine andere Speicherbank senden (z.B. an b). Da der Datenpfad aber durch den ersten Speicherzugriff auf a belegt ist, kann ein ReadCommand für den nachfolgenden Zugriff auf b erst dann wirksam werden, wenn die Kettung an den vorhergehenden Datentransfer möglich ist. Speicherbank adr. a Speicherbank adr. b Speicherbank adr. a Zeilen-Zeilen-Spaltenadr. adr. adr. Activ- ActivCom. Com. ReadCom. Speicherbank adr. b Spaltenadr. ReadCom. Bild 7.16: Zwei aufeinander folgende lesende Speicherzugriffe zu verschiedenen SDRAM-Speicherbänken a und b Man kann auch die Strategie gemäß Bild 7.17 verfolgen, bei der das Activ-Command für die Speicherbank b erst dann gesendet wird, wenn um die Zeit tRCD später das ReadCommand gesendet werden kann. Speicherbank adr. a Zeilenadr. ActivCom. Spei- Speicher- cherbank bank adr. adr. a b Spalten- Zeilenadr. adr. Read- ActivCom. Com. Speicherbank adr. b Spaltenadr. ReadCom. Bild 7.17: Verzögerung des Activ-Commands des nachfolgenden Speicherzugriffs Computertechnik 189 Jacob Synchrone DRAMs (SDRAMs) Struktur von „mal n“ SDRAMs Ein SDRAM mit „mal n“-Struktur muss n Bits pro Speicherbank bereitstellen (Bild 7.18). Zeilenoder SpaltenAdress -wort 4 D atenbits bei x4BitStruktur R e g i s t e r Zeilenadreßdecoder R e g i s t e r Spaltenadreßdecoder Das SpeicherbankAdresswort gibt die Auswahl der Speicherbank vor. Steuereinheit Takt Command-Wort Bild 7.18: SDRAM mit x4Bit-Struktur Die Übertragung der Datenwörter von/zum Speicher-IC erfolgt taktsynchron. Dabei gibt es zwei Alternativen: • ein einziges Wort pro Taktzyklus, synchron zu einer der beiden Taktflanken (Single Data Rate, SDR), und • zwei Wörter pro Taktzyklus, synchron zu den beiden Taktflanken (Double Data Rate, DDR). DDR-SDRAMs Bei DDR-SDRAMs werden die Übertragungszeiten der Commands und der Daten darauf angepasst, dass beide Taktflanken genutzt werden. Die Übertragungszeit beträgt nämlich nur noch die Zeit zwischen zwei Taktflanken, also nur die halbe Periodendauer des Takts (Bild 7.19). Die Nutzung der beiden Taktflanken hat nichts zu tun mit den schaltungstechnischen Verarbeitungszeiten bei der Zeilen- bzw. Spaltenauswahl. Die werden nur dadurch verkürzt, dass man technologische Fortschritte im Speicheraufbau erzielt. Eine Verkürzung vor allem von tRCD ist weiterhin ein mühsamer Weg. Gegenüber einem Memory-Controller für SDR-SDRAMs hat der für DDR-SDRAMs mehr Möglichkeiten, optimale Command-Folgen zu bestimmen. Durch die Halbierung der Übertragungszeit für ein Command und die kaum veränderten Laufzeiten für die Zeilenbzw. Spaltenauswahl entstehen größere Command-Übertragungslücken und damit mehr Variationsmöglichkeiten bei der Zusammenstellung der Command-Folgen. Computertechnik 190 Jacob Synchrone DRAMs (SDRAMs) Speicherbank adr. b Speicherbank adr. b Speicherbank adr. b Zeilen- Spaltenadr. x adr. y Spaltenadr. z Spaltenadr. z+4 Spaltenadr. z+8 Activ- ReadCom. Com. ReadCom. ReadCom. ReadCom. Speicherbank adr. a Speicherbank adr. b Zeilenadr. x ActivCom. Speicherbank adr. a tRCD a CL a tRCD b CL b CL b CL b Bild 7.19: Beispiel für eine Folge von lesenden Speicherzugriffen zu zwei Speicherbänken a und b eines DDR-SDRAMs (Bank b liefert 12 nacheinander gespeicherte Speicherwörter) Beispiel für ein DDR SDRAM Vertiefung für Interessierte, kein Prüfungsstoff Bild 7.20 zeigt das Schaltbild eines DDR-SDRAMs. Es ist sehr komplex. Man kann es aber gemäß der prinzipiellen Einführung in die maßgeblichen Einheiten einteilen: • Die vier internen Speicherbänke mit je einem Row-Address-Register/Decoder und je einem Column-Address-Decoder und einem Column-Address-Latch und Counter. (Ein Latch ist ein Register. Mit der Bezeichnung will man auf eine Besonderheit der Taktung hinweisen: pegelgesteuert.) • Der Adresspfad mit row address A0 bis A12 und column address A0 bis A9, ergibt 8192 Zeilen x 512 Spalten. Dazu kommen die Signale Bank Select 0 und 1. • Wenn die Zeit für die Übertragung eines Datenworts halb so groß ist wie die Zeit für den Speicherzugriff, dann muss man beim Zugriff zur Matrix jeweils zwei Wörter lesen bzw. schreiben, wie z.B. hier durch Speicherung von 2 mal 8 = 16 Bit. Im Lesepfad ist das Read-Latch der Puffer zwischen der Speicher-Matrix und der Außenwelt. Das Read-Latch ist die stabile Datenwort-Quelle für die Treiber (driver) auf die Schnittstelle nach außen. Im Schreib-Pfad ist das Input-Latch der Puffer zwischen Außenwelt und Speichermatrix. Es übernimmt das von der Empfängerschaltung kommende Datenwort und dient danach als stabile Datenquelle beim Schreiben in die Matrix. • Das Command wird über WE/, CAS/ und RAS/ eingeben. Computertechnik 191 Jacob Synchrone DRAMs (SDRAMs) Bild 7.20: Blockdiagramm eines DDR1-SDRAMs (32Mx8Bit, IBM (Ende der Vertiefung) DDR2-SDRAMs Im Sinne dieser Bezeichnung sind die Vorgängertypen, die eben beschrieben wurden, DDR1-SDRAMs. Die folgende Tabelle gibt einen Überblick über die Entwicklung der letzten Jahre und die Ziele, die man mit DDR2 anstrebt. Clock Frequency in MHz, Data Rate in MTransfers/sec, Densities in MegaBit bzw. GigaBit, siehe Kapitel 1: TSOP= Thin Small Outline Package, FBGA= Fine Ball Grid Array. Die Entwicklung bedeutet nun nicht, dass sich die Zugriffszeiten in der Kern-Struktur (siehe Bild 7.4) auf die Hälfte oder ein Viertel gegenüber früher verkleinert hätten. Diese Zugriffszeiten sind aus technologischen Gründen nicht so deutlich reduzierbar. Computertechnik 192 Jacob Synchrone DRAMs (SDRAMs) Trotzdem gelingt es, in der Zeit eines Kern-Zugriffs zwei oder vier Übertragungen nacheinander entweder von oder zum Memory-Controller ausführen. Der Grund ist, dass man bei einem Speicherzugriff die beiden oder die vier übertragenen Wörter zusammen aus den Matrizen liest bzw. in diese schreibt und sie dann einzeln im schnelleren Takt überträgt. Das Lesen/Schreiben von zwei übertragenen Wörtern bei einem Kern-Zugriff wird bei den DDR1-SDRAMs verwendet (siehe Vertiefungsabschnitt), das Lesen/Schreiben von vier übertragenen Wörtern bei einem Kern-Zugriff wird bei den DDR2-SDRAMs verwendet. Die Entwicklung der strukturellen Merkmale, die den Fortschritt der Übertragungsrate von Speicher-ICs bestimmen, zeigt zusammengefasst Bild 7.21 (Quelle: Elpida) Bild 7.21: Vergleich der Geschwindigkeits-Merkmale der Speicher-Generationen (auf der Basis einer Kern-Taktrate von 133 MHz) Für ein transferiertes Bit bei SDR-SDRAMs werden bei DDR(1)-SDRAMs zwei und bei DDR2SDRAMs 4 übertragen. Deshalb spricht man auch von 1Bit-Fetch bzw. 2Bit-Fetch bzw. 4BitFetch. Computertechnik 193 Jacob Speichermodule für synchrone DDR DRAMs (DDR1, DDR2) 7.5 Speichermodule für synchrone DDR DRAMs (DDR1, DDR2) Im Kapitel1 wurden beispielhaft zwei Module vorgestellt, deren Struktur jetzt genauer beschrieben werden soll. Bild 7.22: Typische Memory-Module für DDR(1) bzw. DDR2 SDRAMs Prinzipieller Aufbau von Dual Inline Memory Modulen Ein wesentliches Merkmal für den Aufbau ist die Datenwortbreite, die sich nach der Datenwortbreite des Prozessors richtet. Beim Pentium4 sind es 64 Bit pro Datenwort. Das bedeutet, dass auch die Speichermodule diese Datenwortbreite haben. Jeder Speicher-IC auf einem Modul liefert einen gleichen Anteil an dem Datenwort. Der Anteil wird bestimmt von der Wortbreite, die der IC selbst hat, also entweder x1Bit, x4Bit, x8Bit oder x16Bit. Jedes Beispielmodul in Bild 7.22 hat auf der Vorder- und der Rückseite je 8 gleiche ICs. Die 8 ICs jeder Seite erzeugen je ein 64Bit-Datenwort. Also hat jeder IC eine x8BitStruktur. Die Schaltung jedes Speichermoduls setzt sich also aus 16 ICs zusammen. Das Zusammenwirken der ICs bei einem Speicherzugriff soll nun mit Hilfe von Schaltplänen erläutert werden. Dabei werden die von JEDEC angegebenen Schemata benutzt. Die Schaltung eines DDR1-Moduls Da sich ein Datenwort parallel aus den Signalen von 8 ICs zusammensetzt, muss man die Parallelität auch im Schaltplan erkennen (Bild 7.23). Die Tatsache, dass sie bei einem Speicherzugriff auch gleichzeitig wirken, wird dadurch hervorgerufen, dass sie alle gleichzeitig selektiert werden, um ein Command zu übernehmen. Das Command wird an der Pins RAS/, CAS/ und WE/ empfangen. Die Aktivierung von S0/ geht gleichzeitig an alle SDRAM-ICs und bewirkt die Übernahme. Computertechnik 194 Jacob Speichermodule für synchrone DDR DRAMs (DDR1, DDR2) Bild 7.23:Parallel-Schaltung von 8 DDR1-Speicher-ICs mit x8Bit-Struktur zu einer Speicherbank Die Adressbits BA0, BA1 für die Selektion der internen Speicherbank und die Adressbits A0 bis A13 für die Zeilen-/Spaltenadressierung werden an alle SDRAM-ICs angelegt. Die Selektion einzelner Bytes beim Schreiben wird je ein Auswahlsignal DMi (data mask) pro Byte gesteuert. Jedes SDRAM-IC hat ein eigenes Signal, um das Ab-/Einschalten der Datenbits zu triggern: DQSi (data strobe). Die Taktung kann gruppenweise zuund abgeschaltet werden: CKE (clock enable). Computertechnik 195 Jacob Speichermodule für synchrone DDR DRAMs (DDR1, DDR2) Die Parallelschaltung der SDRAM-ICs wirkt als Verbreiterung der Datenwortbreite der internen Speicherbänke von 8Bit auf 64Bit. Deshalb bildet die Schaltungseinheit in Bild 7.23 eine Speicherbank, die - zur Unterscheidung von den internen Speicherbänken auch physikalische Speicherbank genannt wird.. Würden SDRAM-ICs mit internen Speicherbänken von 214 Zeilen und 214 Spalten eingesetzt, dann erlaubte die Speicherbank Speicherzugriffe zu maximal 22 · 214 · 214 64Bit-Datenwörtern. Der Schaltplan in Bild 7.23 stellt die Schaltung der Speicherbank auf der Vorderseite des Speichermoduls dar. Bezieht man den Schaltplan der Speicherbank auf der Rückseite mit ein, erhält man den Schaltplan in Bild 7.24. Bild 7.24: Schaltplan eines x64Bit DIMM mit je einer Speicherbank vorne und hinten Jede Speicherbank erhält ihr eigenes Selektions-Signal S0/ bzw. S1/. Jedes Speichermodul enthält ein EEPROM mit den charakteristischen Daten des Speichermoduls. Computertechnik 196 Jacob Speichermodule für synchrone DDR DRAMs (DDR1, DDR2) Damit man dieses EEPROM mit wenig Aufwand beim Booten des Computersystems lesen kann, wird es an ein seriell übertragendes Interface (serial PD) angeschlossen, das mit dem Memory-Controller verbunden ist. Dieser liest die Daten gemäß dem standardisierten Protokoll der seriellen Schnittstelle. Würden SDRAM-ICs mit internen Speicherbänken von 214 Zeilen und 214 Spalten eingesetzt, dann hätte das Speichermodul eine Speicherkapazität von 2 · 22 · 214 · 214 23 Byte = 234 Byte = 16 GigaByte: ein zweifelhafter Wert. Tatsächlich muss man die genauen Angaben der Hersteller zu den Modulkonfigurationen beachten. Der Stand der Technik hat z.Zt. folgende Top-Werte: Die Signale, die für die Speicherzugriffe zu den physikalischen Speicherbänken gebraucht werden, müssen über die 184-polige Schnittstelle der Speichermodule bereitgestellt werden. Schnittstelle von 184poligen DDR1-DIMMs Tabelle 7.1 fasst die Signale zusammen. Funktionsgruppe Adressierung Daten Command Clock Pin-Name A0 - A13 BA0 - BA1 DM0 - DM8 S0/ - S1/ DQ0 - DQ63 CB0 - CB7 DQS0 - DQS8 RAS/ CAS/ WE/ CKE0 - CKE1 CK0 - CK2 Funktion SDRAM Adress Bus SDRAM Bank Select SDRAM Data Mask Select der physikalischen Speicherbänke DIMM Memory Data Bus DIMM ECC Check Bits SDRAM Data Strobes SDRAM Row Address Strobe SDRAM Column Address Strobe SDRAM Write Enable SDRAM Clock Enable SDRAM Clock (positive Signale von 3 differentiellen Signalpaaren) SDRAM Clock (positive Signale von 3 differentiellen Signalpaaren) IIC Serial Bus Clock IIC Serial Bus Data Line IIC Slave Address Select CK0/ - CK2/ EEPROM Spannungen, Masse SCL SDA SA0 – SA2 Diverse Pins Tabelle 7.1: Signalfunktionen der 184-poligen Schnittstelle von DDR1-Speichermodulen Schnittstelle von 240-poligen DDR2-DIMMs (Vertiefung für Interessierte, kein Prüfungsstoff) Zum direkten Vergleich wird in Tabelle 7.2 die 240-polige Schnittstelle für DDR2Speichermodule zusammengefasst. Computertechnik 197 Jacob Speichermodule für synchrone DDR DRAMs (DDR1, DDR2) Funktionsgruppe Adressierung Daten Pin-Name A0 - A9, A10/AP A11 - A15 BA0 - BA2 DM0 - DM8 S0/ - S1/ DQ0 - DQ63 CB0 - CB7 DQS0 - DCQ8 DQS0/ - DQS8/ Command Clock RAS/ CAS/ WE/ CKE0 - CKE1 CK0 CK0/ EEPROM SCL SDA SA0 - SA2 ODT0 - ODT1 Spannungen, Masse Diverse Pins Funktion SDRAM Adress Bus AutoPrecharge SDRAM Bank Select SDRAM Data Mask Select der physikalischen Speicherbänke DIMM Memory Data Bus DIMM ECC Check Bits SDRAM Data Strobes (positive Signale von 9 differentiellen Signalpaaren) SDRAM Data Strobes (negative Signale von 9 differentiellen Signalpaaren) SDRAM Row Address Strobe SDRAM Column Address Strobe SDRAM Write Enable SDRAM Clock Enable SDRAM Clock (positives Signal von einem differentiellen Signalpaar) SDRAM Clock (negatives Signal von einem differentiellen Signalpaar) IIC Serial Bus Clock IIC Serial Bus Data Line IIC Slave Address Select je ein On Die Termination Control Signal für die Speicherbänke vorne und hinten Tabelle 7.2: Signalfunktionen der 240-poligen Schnittstelle von DDR2-Modulen Die Zahl der Adressbits ist von 14 auf 16 erhöht: A0 - A15, die Zahl der Bank-Adressbits um 1 auf 3: BA0 – BA2, die Zahl der differentiellen Clock-Signalpaare ist auf 1 reduziert. Zur Verbesserung der Taktung der Daten sind die Daten-Strobe-Signale differentiell ausgelegt: DQS0 und DQS0/ - DQS8 und DQS8/. Die Signalqualität der Datensignale hängt von den Abschlusswiderständen der Datenleitungen ab. Auf den SDRAM-ICs sind geeignete Widerstandskombinationen vorbereitet. Mit Hilfe der Einstellung von Betriebsmodus-Registern in den SDRAM-ICs kann man eine bestimmte Widerstandskombination auswählen. Es gibt Standard-Modusregister und Extended-Modusregister, die jeweils mit einem speziellen Command geladen werden. Die Adresse, die dazu eingestellt wird, definiert gleichzeitig den Inhalt des Modus-Registers. Die Einstellung der on-chip-Widerstände wird im Extended Mode Register 1 mit Hilfe von zwei Adressbits eingestellt: Wenn bei einem Extended-Mode-Register-Command die Adressbits (BA2,BA1,BA0) = (0,0,1) sind, dann wird das Extended Mode Register 1 adressiert. Die Adressbits A13 bis A0 werden als Inhalt des Extended Mode Registers übernommen. Die Adressbits A6 und A2 bestimmen den wirksamen on-chip-Widerstand Rtt. Die anderen Bits bestimmen andere einstellbare Merkmale. Computertechnik 198 Jacob Speichermodule für synchrone DDR DRAMs (DDR1, DDR2) Dies ist ein Beispiel für die Einstellung von Betriebsgrößen in den SDRAM-ICs des Moduls. Bei Aktivierung des ODT-Signals werden die Widerstandswerte der On-Die Termination der betroffenen physikalischen Speicherbank eingeschaltet. Das Signal wirkt wie ein Strobe-Signal. DDR2-SDRAM-Struktur Im Bild 7.25 wird der Schaltplan eines DDR2-SDRAM-ICs angegeben, der 8 interne Speicherbänke enthält. Bild 7.25: Strukturplan eines DDR2-SDRAM-ICs (128Mx8Bit, Hynix) Computertechnik 199 Jacob Dual-Channel-Konfiguration Man erkennt den Pfad, mit dem die Adressbits aus dem Adressregister in die Mode Register übertragen werden (ohne Hinweis auf die Auswahl mit Hilfe der Adressbits BA2-BA0). Das ODT-Signal bewirkt mit Hilfe der ODT-Control-Schaltung das Zu- und Abschalten der Output Buffer. Beim Lesen und Schreiben von/zur Matrix werden 4 mal 8 = 32 Bit übertragen, während über die Pin-Schnittstelle 8 Bit übertragen werden. Die Register werden 4bit-Prefetch-Data-Register genannt. Bei der gegebenen x8-Struktur der Speichermatrizen bedeutet das, dass beim Lesen vier Spalten selektiert werden und damit vier 8Bit-Wörter gelesen und in das 4Bit-Prefetch-LeseRegister übertragen werden. Beim Schreiben müssen zuerst vier 8Bit-Wörter in das 4BitPrefetch-Schreib-Register geschrieben werden, bevor es in vier Spalten der Speichermatrix geschrieben werden kann. Mit diesem DDR2-SDRAM-IC kann man ein 240-poliges DDR2-DIMM vom Typ im Bild 7.25 herstellen, das eine Speicherkapazität von 1GigaByte hat. (Ende der Vertiefung) 7.6 Dual-Channel-Konfiguration Eine bekannte Speicherkonfiguration für Server setzt sich jetzt auch im PC-Bereich durch: der Dual-Channel-Aufbau des Hauptspeichers. Der Memory-Controller im Memory Controller Hub des Chipsatzes ist so aufgebaut, dass er zwei Speicherzugriffe zu zwei Speichern unabhängig voneinander, und damit gleichzeitig ausführen kann (Bild 7.26). Das bedeutet, dass doppelt so viele Speicherzugriffe pro Zeiteinheit ausgeführt werden können, wie in den üblichen Single-Channel-Konfigurationen. Bild 7.26: Auszug aus dem Manual zum Motherboard P5AD2 (ASUS) Die Beschreibung der Folgen für den Aufbau des Memory-Controllers sprengt den Rahmen dieses Skripts. Es soll nur die Umsetzung der Host-Adresse in jedem Kanal diskutiert werden. Computertechnik 200 Jacob Die Umsetzung der FSB-Adresse bei der Adressierung der Speichermodule 7.7 Die Umsetzung der FSB-Adresse bei der Adressierung der Speichermodule Oben wurden 184-polige DDR1-DIMMs mit der Speicherkapazität von 1GByte eingeführt. Das Verhältnis der Adressbits für Zeile bzw. Spalte ist 13:11. Die SDRAMICs haben eine x8-Struktur. Das Schema der Umsetzung der Adressen ist in Bild 7.27 angegeben. high significant bit FSB: A31 R e g i s t e r Zeilenadresse Speicherbankadresse R e g i s t e r Spaltenadresse FSB: A3 low significant bit R e g i s t e r R e g i s t e r R e g i s t e r R e g i s t e r Speicherbank 3 Speicherbank 2 Speicherbank 1 Speicherbank 0 R e g i s t e r R e g i s t e r andere Steuersignale FSBadresse Steuereinheit IC-Funktionsgrenze Command-Wort Takt Bild 7.27: Umsetzung der FSB-Adressen für ein DDR1-DIMM SDRAM-ICs haben 13 Zeilen- und 11 Spalten-Adressbits, 4 interne Speicherbänke mit x8Struktur Das DIMM enthält 8 SDRAM-ICs, die alle wie in Bild 7.27 adressiert werden. • • • Die FSB-Adressbits A29, A30 und A31 müssen in die Einzel-Selektionssignale /S0 bzw. /S1 für die physikalischen Speicherbänke der Module in den ModulSockeln umgesetzt werden. Das Beispiel-DIMM mit 1GByte nutzt das FSB-Adressbit A29 für die Selektion der physikalischen Speicherbänke auf der Vorder- und Rückseite. Vier solche 1GByte-DIMMs nutzen den gesamten Adressenraum, der von 32 Adressbits gebildet wird. Computertechnik 201 Jacob Die Umsetzung der FSB-Adresse bei der Adressierung der Speichermodule • • In einer Speichermatrix werden zuerst die Spalten durchnummeriert, bevor die Zeilennummer inkrementiert wird. Deshalb sind die Spaltenadressbits immer die weniger wertigen und die Zeilenadressbits die höher wertigen. Das nieder wertige Speicherbank-Adressbit setzt nicht an dem höchst wertigen Zeilenadressbit fort. Würde es dort fortsetzen, dann würden die Spalten und die Zeilen der Speichermatrizen der internen Speicherbänke nacheinander aufsteigend durchnummeriert. Bank 0 Zeilenadressen Bank 1 usw. Bank 2 usw. usw. Bank 3 usw. Spaltenadressen Das nieder wertige Speicherbank-Adressbit setzt vielmehr am höchst wertigen Spaltenadressbit fort. Der Grund ist, dass damit beim Durchnummerieren die Zeilennummer konstant bleibt, während die Spaltennummern von Speicherbank zu Speicherbank inkrementiert werden. Es wird nacheinander eine Kettung der Spaltennummern der Speicherbänke erzeugt, die zur selben Zeilennummer gehören. Die Adressen entsprechen der Nummerierung. Bank 0 Zeilenadressen Bank 1 Bank 2 Bank 3 usw. Spaltenadressen Wenn man aufeinander folgende Wörter, dieser Kettung folgend, abspeichert, entsteht ein Wechsel der Zeilenadresse erst, wenn man am Ende der Kettung ankommt. Man nennt diese Art der Speicherung verschränkte Speicherung. • Durch die verschränkte Speicherung entstehen beim Programmablauf im Mittel weniger Zeilenwechsel als bei der unverschränkten. Das FSB-Adressformat enthält nicht die drei niederwertigen Adressbits zur Adressierung der Bytes innerhalb eines 64Bit-Speicherworts. Diese werden als Byte-Selektionsmuster in der zweiten Phase der Adressierung auf den FSB-Adressleitungen übertragen. Das Adressformat, das diese enthält und damit die Gesamtadresse für die Adressierung von Bytes angibt, wird oben zur Unterscheidung Hostadresse genannt. Computertechnik 202 Jacob