Kapitel 3

Transcrição

Kapitel 3
3. Speicher
3.1. Überblick
• Entwicklung: Speicherchips
− Chip-Kapazität: 256 kBit (ca. 1988) – 4 GBit (2001, nicht in Serie).
− Zugriffszeiten: 250ns (1980), 145 ns (1992), 70ns (1994), 7ns (heute).
− Ursprüngliche einzelne Chips, heute Speichermodule mit mehreren Chips.
• Problem: Kluft zwischen CPU Takt
und Zugriffszeit auf Speicher --> Caches.
• Flüchtige Halbleiterspeicher:
− statisch: SRAM (für Caches).
− dynamisch: DRAM (für Arbeitsspeicher).
• Nicht flüchtige Speicher:
− Nicht löschbar: ROM, PROM (z.B. System).
− löschbar: EPROM, EEPROM, Flash (z.B. BIOS).
Systemprogrammierung II, Winter 2002/03, P. Schulthess & M. Schöttner
71
3.2. DRAM
3.2.1 Aufbau und Funktion
• DRAM = Dynamic Random Access Memory:
− Gespeicherte Information wird durch Ladung eines Kondensators dargestellt.
− Kondensator entlädt sich im Laufe der Zeit Auffrischung notwendig.
− Nicht so schnell wie SRAM, aber günstig typ. Module zu 256/512 MB.
• Einheitsspeicherzelle:
− Besteht aus 1 Kondensator
und 1 Transistor (speichert 1-Bit).
− Anordnung beispielsweise als Matrix
(z.B. 4 MBit Chip = 2048x2048 Zellen).
− Adressierung eines Bits durch Zeile & Spalte.
WL1
Zeile 1
BL1
BL1
Spalte 1
Systemprogrammierung II, Winter 2002/03, P. Schulthess & M. Schöttner
72
• Aufbau (Blockdiagramm):
DRAMSteuerung
Vorladeschaltkreis
Ain
AdreßPuffer
Din
Datenpuffer
Zeilendekoder
RAS
CAS
WE
Speicherzellenfeld
Leseverstärker + I/O-Gatter
Datenpuffer
Spaltendecoder
− Adressen werden immer in zwei Teilen übergeben; Multiplexing mit:
• RAS (Row Address Strobe),
• CAS (Column Address Strobe).
Systemprogrammierung II, Winter 2002/03, P. Schulthess & M. Schöttner
73
Dout
3.2.2 Lesen und Schreiben
• Ablauf beim Lesen:
− Vorladeschaltkreis lädt alle Bitleitungspaare (BL) vor jedem Zugriff auf Vcc/2
(sorgt ferner für exakt gleiches Potential auf allen Bitleitungspaaren).
− Entnahme der Zeilenadresse aus Adreßpuffer und Übergabe an Zeilendecoder.
− Zeilendecoder aktiviert die gewünschten Wortleitungen
Ladungen aller Kondensatoren der adressierten Zeile fließen auf die Bitleitungen
− Kapazität der Kondensatoren sehr gering nur sehr kleine Potentialänderungen
(ohne Vorladeschaltkreis wäre Auslesen fehleranfällig)
− Leseverstärker verstärkt die Potentialdifferenz der Bitleitungspaare.
− Alle Leseverstärker geben das Signal an I/O-Gatter ab.
− Spaltendecoder selektiert I/O-Gatter (Spalte) Ergebnis an Ausgabepuffer.
− Bem.: Schaltung erzeugt beim Auslesen gleichzeitig einen Refresh der Daten!
• Ablauf beim Schreiben:
− Zeilenadresse RAS-Signal mit WE aktivieren.
− Restlicher Ablauf ähnlich wie beim Lesen.
− Am Ende stellt der Vorladeschaltkreis die Bitleitungspaare auf Vcc/2 ein.
der nächste Speicherzyklus kann beginnen
Systemprogrammierung II, Winter 2002/03, P. Schulthess & M. Schöttner
74
• Wichtige Zeiten:
− RAS-Vorladezeit (RAS Precharge Time, tPR) = Zeit für Vorladen & Ausgleichen
erst danach kann der Chip einen Zugriff auf seine Speicherzellen ausführen.
− RAS-Zugriffszeit (RAS active time, tRAS): Zeitspanne zw. Anlegen der
Zeilenadresse und Ausgabe der Daten.
− CAS-Zugriffszeit (CAS access time, tCAS): Zeitspanne zw. dem Anlegen der
Spaltenadresse und der Ausgabe der Daten (wesentlich kürzer als tRAS).
− Zykluszeit = RAS-Zugriffszeit + RAS-Vorladezeit: Zeit, bis Speicher für nächsten
Zugriff wieder bereit ist (ca. 80% für tPR).
• Ansteuerung der Speicherchips durch Memory-Controller:
− in Northbridge integriert.
− Schnittstelle zw. Systembus und Signalleitungen der DRAM-Chips.
− Steuert: Multiplexing (Zeilen-/Spaltenadresse) und Auffrischung (Refresh).
3.2.3 Auffrischung
• Je nach Spezifikation alle 1 – 16ms (beim Lesen automatisch).
• Moderne DRAM-Chips verfügen über mehrere interne Refresh-Modi.
Systemprogrammierung II, Winter 2002/03, P. Schulthess & M. Schöttner
75
• RAS-only-Refresh:
−
−
−
−
Am weitesten verbreitet (beherrschen alle DRAM-Typen).
Durchführen eines Blindlesezyklus.
Nur RAS-Signal wird aktiviert = Refresh-Zeile (CAS bleibt inaktiv).
Zeile wird gelesen und verstärkt, aber nicht zum Ausgangsdatenpuffer übertragen
(wegen fehlendem CAS-Signal).
− Externe Logik notwendig, die alle Zeilen nach und nach selektiert.
(DMA-Chip löst periodisch, mithilfe des Timers, eine Blindübertragung aus).
• CAS-vor-RAS-Refresh:
−
−
−
−
Refresh-Adresse wird von einem internen Adreßzähler hochgezählt
Es sind auch mehrere Refresh-Zyklen hintereinander möglich (bis ca. 200).
Anstoß des Refresh von außen durch Signalfolge CAS vor RAS.
Spart DMA-Zyklen gegenüber RAS-only-Refresh.
• Hidden-Refresh:
−
−
−
−
Refresh wird direkt an den Lesezyklus angehängt (versteckt hinter Lesezugriff).
Effektiver, da kein Refresh beginnt, während Daten ausgelesen werden.
Kein explizites Anstoßen von außen notwendig.
DRAM-Chip hat internen Adreßzähler.
Systemprogrammierung II, Winter 2002/03, P. Schulthess & M. Schöttner
76
3.2.4 Betriebsmodi
• Ziel: Zugriffszeiten verkürzen
• Page-Mode:
− Bei aufeinanderfolgenden Adressen bleibt die Zeilenadresse identisch.
− Zeilenadresse (RAS) einmal angelegen, Spaltenadresse (CAS) ändern.
RAS Vorladezeit entfällt, sowie Übertragung & Dekodierung der Zeilenadresse
− Zykluszeit bis zu 70% weniger (für nachfolgende Zugriffe)
− ca. 200 Zugriffe innerhalb einer Page am Stück möglich, dann Potentialabgleich
notwendig.
− Beispiel: 1 MBit Chip (1024x1024) 1 Page hat 1024 Bits.
(32-Bit Datenbus beim i386 32 Chips 4 KB MMU-Page = 32x1024 Bit)
• Interleave-Mode:
− Ziel: Umgehung der RAS-Vorladezeit.
− Speicherbereiche werden in Blöcke aufgeteilt (z.B. alle geraden Adressen in Bank-0
/ alle ungerade Adressen in Bank-1).
− Bei sequentiellen Adreßzugriffen wird zwischen den Bänken abgewechselt.
während Zykluszeit für Bank-1 noch läuft, bereits Zugriff auf Bank-0 mögl.
Systemprogrammierung II, Winter 2002/03, P. Schulthess & M. Schöttner
77
3.2.5 Speichermodule
• DIPs:
−
−
−
−
Einzelner Speicherchips
In Motherboard eingelötet oder mit Sockel.
DIP = Dual Inline Package.
Bis Ende der 80er Jahre.
• SIP Modul:
−
−
−
−
30 PINs, Datenbreite 8-Bit.
SIP = Single Inline Package.
Für 16-Bit Systeme (286, 386SX).
Kapazitäten: bis 1MB.
• SIMM Modul:
−
−
−
−
−
30 Kontakte, Datenbreite 8-Bit.
SIMM = Single Inline Memory Module.
Paarweise in 16-Bit Systemen (286, 386SX).
Vierfach in 32-Bit Systemen (386DX, 486).
Kapazitäten: 256KB, 1MB, 4MB und sehr selten 16MB.
Systemprogrammierung II, Winter 2002/03, P. Schulthess & M. Schöttner
78
• PS/2 SIMM Modul:
− 72 Kontakte, Datenbreite 32-Bit.
− PS/2 = IBM Personal System/2.
− Kapazitäten: 1-16 MB (FPM RAM) und
64MB (EDO RAM):
− Mind. 1 Modul im 486, ab Pentium paarweise.
• DIMM Modul:
−
−
−
−
−
−
168 Kontakte, Datenbreite 64-Bit.
Kontakte auf beiden Seiten nicht verbunden.
DIMM = Double Inline Memory Module.
Kapazitäten: 8-1024 MB (SDRAMs).
EDO-DIMMs für Apple Rechner.
Primär für Pentium II/III und AMD Systeme.
• RIMM Modul:
−
−
−
−
168 Kontakte, Datenbreite 16-Bit.
184 Kontakte, Datenbreite 32-Bit.
RIMM = Rambus Inline Memory Module.
Für Pentium III und P4; Kapazitäten -1GB.
Systemprogrammierung II, Winter 2002/03, P. Schulthess & M. Schöttner
79
3.2.6 Asynchrone DRAMs
• Merkmale:
− Steuerung erfolgt durch bestimmte Sequenzen von Signalflanken.
− Timing entscheidet über die Funktion.
− Refresh gesteuert durch Signale.
− DRAM, FPM, EDO, BEDO.
FPM RAM
−
−
−
−
−
FPM RAM = Fast Page Mode RAM.
DRAM Baustein, der den Page-Mode nutzt.
Auf SIMM (33 MHz) und PS/2 (66 MHz).
Zugriffszeiten: 60-100ns.
Beispiel: Pentium
mit FSB 66 MHz
60ns FPM RAM
burst read: 5-3-3-3
Systemprogrammierung II, Winter 2002/03, P. Schulthess & M. Schöttner
80
EDO RAM
−
−
−
−
−
EDO RAM = Extended Data Out RAM.
Module: PS/2, SIMM, DIMM.
PS/2 Module (66 MHz) und Zugriffszeiten: 50-70ns.
Zeitliche Überschneidung von aufeinander folgenden Speicherzugriffen mögl.
Chips können Daten noch zum Auslesen bereithalten, während bereits die nächste
Adresse angelegt wird ( Extended Data Out).
− Lesevorgänge können damit bis zu 20 % schneller erfolgen.
− burst-reads: je nach Chipsatz 5-3-3-3 oder 4-2-2-2 (mit 50ns Chips).
Systemprogrammierung II, Winter 2002/03, P. Schulthess & M. Schöttner
81
BEDO RAM
−
−
−
−
BEDO RAM = Burst EDO RAM
Zugriffszeiten: 50ns
Module: PS/2, SIMM.
Burst: Nachdem die Adresse angelegt wurde, können die nächsten drei Daten in
jeweils einem Taktzyklus gelesen werden 5-1-1-1
− Unterschiede zu EDO RAM:
• Lesedaten erst im zweiten CAS-Zyklus verfügbar.
• Interner Adresszähler vorhanden.
− Max. 66 MHz nur kurz auf dem Markt.
− Im Gegensatz zu FP RAM und EDO RAM auch Schreiben in Bursts mögl.
Systemprogrammierung II, Winter 2002/03, P. Schulthess & M. Schöttner
82
3.2.7 Synchrone DRAMs
SDRAM:
• SDRAM = Synchronous DRAM.
• Taktraten: 100-150 MHz; Zugriffszeiten: 7-15 ns.
• Arbeiten synchron mit dem Systemtakt.
• DIMM-Module bis zu 1GB.
• Intern in mehreren Bänken organisiert
Interleaving.
• Refresh erfolgt intern automatisch.
• Befehle über 4-PINs: CS,RAS,CAS,WE.
• Lese- und Schreib-Bursts (4-1-1-1).
• CAS Latency:
− Angabe: CL2 oder CL3 (Taktzyklen).
− Unterschied bei 100 MHz beträgt beim ersten Zugriff eines Bursts nur 10ns.
durchschnittliche Verzögerung 2,5ns.
Systemprogrammierung II, Winter 2002/03, P. Schulthess & M. Schöttner
83
• Typischerweise EEPROM auf Modul:
− Nennt sich SPD = Serial Precence Detect.
− Speichert Konfigurationsinformation.
− Optimale Einstellungen automatisch
und nicht manuell im BIOS-Setup.
• Theoretische Bandbreiten:
− PC66: 528 MB/s; PC100: 800 MB/s
− PC133: 1064 MB/s; PC150: 1200 MB/s
− Reales Beispiel: 4-1-1-1 burst timing
und PC100 ~ 457 MB/s
• Unterscheidung zwischen Modulen:
− „registered“: mit zusätzl. Pufferchips.
− „unbuffered“: ohne Pufferung.
− ECC = Error-Correcting Code
(bessere Fehlererkennung als Parity)
Systemprogrammierung II, Winter 2002/03, P. Schulthess & M. Schöttner
84
DDR-SDRAM
• DDR-SDRAM = Double Data Rate SDRAM.
• DIMM Module haben 184 Kontakte.
• Kapazität derzeit bis 1GB.
• Aufbau und Funktion wie SDRAM, aber Daten werden sowohl bei aufund absteigender Taktflanke übertragen doppelte Datenrate.
• Geschwindigkeitsvorteil nur im Burst-Modus!
• Namen und Daten (theoretische Bandbreiten):
−
−
−
−
DDR200
DDR266
DDR333
DDR400
PC1600
PC2100
PC2700
PC3200
Systemprogrammierung II, Winter 2002/03, P. Schulthess & M. Schöttner
100 MHz
133 MHz
166 MHz
200 MHz
1600 MB/s
2133 MB/s
2700 MB/s
3200 MB/s
85
RDRAM
• RDRAM = Rambus DRAM (www.rambus.com).
• RIMM Module: 16-Bit mit 184 Kontakten und 32-Bit mit 232 Kontakten.
• Taktraten: 400, 533 MHz und Zugriffszeiten: 7-15 ns.
• Speicherarchitektur in Busform.
• Keine neue Technik, bereits im Nintendo-64 verwendet.
• Besteht aus drei Komponenten:
− Memory Controller
− Channel:
• 16-Bit breiten Datenbus.
• 8-Bit Adreßbus (getrennte
Leitungen für Zeilen & Spalten).
• Max. 32 RDRAM-Chips
pro Channel.
− RDRAM: jeder Chip besitzt volle Datenbreite von 16-Bit.
Systemprogrammierung II, Winter 2002/03, P. Schulthess & M. Schöttner
86
• Bem.: Intels 840-Chipsatz unterstützt 2 Channels, der 820 nur einen.
• Hohe Taktung notwendig, da Datenbus nur 16-Bit breit.
• Wie bei DDR SDRAM werden beide Taktflanken genutzt „800 MHz“
(max. 1,6 GByte/s pro Channel möglich).
• Bus-Topologie:
−
−
−
−
Bus muß terminiert werden Vermeidung von Reflexionen.
Unbelegte Sockel müssen überbrückt werden C-RIMM.
Pro Channel max. 2 RIMMs möglich.
Interleaving zwischen Chips.
Systemprogrammierung II, Winter 2002/03, P. Schulthess & M. Schöttner
87
• RDRAM-Chip:
− Datentransfer intern mit Datenbreite 128-Bit und ECC.
− Interne Taktfrequenz = 100 MHz alle 10 ns können 128 Bit von und zur
Speichermatrix transferiert werden (= Channel-Geschw. von 1,6 GByte/s).
− Interne RDRAM-Logik teilt die Daten in 16-Bit-Pakete auf.
− Bis zu 16 Bänke (Interleaving intern).
• Timing-Werte ebenfalls in SPD EPROM auf Modul.
• Nachteile:
− Die hohen Taktraten erfordern sehr genaues Timing.
− Keine großen Geschwindigkeitsvorteile gegenüber SDRAM.
− Hoher Preis im Vergleich zu SDRAM.
• Namen und Daten (theoretische Bandbreiten):
−
−
−
−
RIMM1600
RIMM2100
RIMM3200
RIMM4200
PC800
PC1066
PC3200
PC4266
16-Bit
16-Bit
32-Bit
32-Bit
400 MHz
533 MHz
400 MHz
533 MHz
1600 MB/s
2133 MB/s
3200 MB/s
4266 MB/s
• Wettbewerb zwischen SDRAM und RDRAM unentschieden.
Systemprogrammierung II, Winter 2002/03, P. Schulthess & M. Schöttner
88
3.3. SRAM
3.3.1 Aufbau und Funktion
• SRAM = Static Random Access Memory:
− Gespeicherte Information wird durch Zustand eines Flip-Flops dargestellt.
− Benötigen im Gegensatz zu DRAMs keine Auffrischung.
− Schneller als DRAM, aber geringere Integration:
teurer und weniger Kapazität
WL1
typischerweise für Caches
• Einheitsspeicherzelle:
− Besteht aus 6 Transistoren:
• Zwei für die Auswahl,
• Je zwei T. pro Inverter.
− Adressierung eines Bits
durch Zeile & Spalte.
Zeile 1
BL1
BL1
Spalte 1
Systemprogrammierung II, Winter 2002/03, P. Schulthess & M. Schöttner
89
CS
WE
SRAMSteuerung
Ain
ZeilenPuffer
Din
Datenpuffer
Zeilendekoder
• Aufbau (Blockdiagramm):
Speicherzellenfeld
Leseverstärker + I/O-Gatter
Spaltendecoder
Spalten-Puffer
Ain
− Adressen werden ohne Multiplexing übergeben:
• CS (Chip Select),
• WE (Write Enable).
Systemprogrammierung II, Winter 2002/03, P. Schulthess & M. Schöttner
90
Datenpuffer
Dout
3.3.2 Lesen und Schreiben
• Ablauf beim Lesen:
−
−
−
−
−
−
Kein Vorladeschaltkreis notwendig.
Entnahme der Zeilenadresse aus Adreßpuffer und Übergabe an Zeilendecoder.
Zeilendecoder aktiviert Wortleitungen Auswahltransistoren schalten durch
Nun haben alle Bitleitungen die Zustände der Flip-Flops.
Leseverstärker hebt Signale an (sind bereits viel stärker als bei DRAMs).
Spaltendecoder selektiert I/O-Gatter (Spalte) Ergebnis an Ausgabepuffer.
• Ablauf beim Schreiben:
− Spaltenadresse an Spaltendecoder selektiert Spalte.
− Eingabedaten werden entsprechendem Leseverstärker zugeführt.
− Gleichzeitig aktiviert der Zeilendecoder eine Zeilenadresse
Zugriffstransistoren schalten durch
− Flip-Flop gibt gespeicherte Daten auf Bitleitungen aus.
− Verstärktes Eingabesignal viel stärker überschreibt Zustand des Flip-Flops
• Merkmale:
− Keine RAS-/CAS-Erholzeiten notwendig
− Spezielle Zugriffsmodi z.B. Page-Mode und Interleaving überflüssig.
Systemprogrammierung II, Winter 2002/03, P. Schulthess & M. Schöttner
91
3.4. ROM & Freunde
• Information bleibt auch nach Abschalten der Spannung erhalten.
• ROM:
− ROM = Read Only Memory.
− Zustand einer Speicherzelle definiert durch feste Verdrahtung von Bauelementen
zwischen Wort- und Bitleitungen.
− Daten müssen bereits beim Herstellungsprozeß berücksichtigt werden.
− Vorteil: sehr kompakter Schaltungsaufbau, da optimiert auf zu speichernde Daten.
− Nachteil: sehr unflexibel (für die Änderung eines Bits muß die Schaltung geändert
werden) reine ROMs sind sehr selten.
• PROM:
− PROM = Programmable ROM.
− Information wird „eingebrannt“.
− Hierfür wird eine Maske verwendet, die für die Erzeugung der einzelnen Schichten
des Chips verwendet wird.
− Vorteil: flexibler wie reine ROMs, gleicher Herstellungsprozeß für verschied. Chips
(nur unterschiedl. Maske).
− Nachteil: Programmierung nur durch Hersteller möglich.
Systemprogrammierung II, Winter 2002/03, P. Schulthess & M. Schöttner
92
• EPROM:
−
−
−
−
−
−
−
−
EPROM = Erasable PROM.
Spezielle Speichertransistoren repräsentieren Zustand eines Bits.
Programmierung durch spezielles Gerät.
Löschbar durch Bestrahlung mit UV-Licht
(Chips ist mit lichtdurchlässigem Fenster versehen).
Programmierzeit: 50ms.
Löschzeit: 20 Minuten.
Vorteil: Chip mehrfach nutzbar.
Nachteil: Löschen umständlich und langsam.
• EEPROM:
−
−
−
−
−
−
−
−
EPROM = Electrical EPROM.
Z.B. BIOS von PC.
Bits werden wie beim EPROM in speziellen Speichertransistoren gesichert.
Elektronen werden elektrisch aus Speichertransistor abgesaugt.
Schreiben und Löschen erfolgt byteweise Chip muss ausgebaut werden.
Programmierzeit: 50ms.
Löschzeit: 1ms.
Vorteil: Löschen einfacher und schneller.
Systemprogrammierung II, Winter 2002/03, P. Schulthess & M. Schöttner
93
• Flash-Speicher:
−
−
−
−
−
−
−
−
−
−
−
Verwendet in Memory-Cards, Handys, Modems, BIOS, ...
Ersatz für Festplatten und Disketten weniger empfindlich geg. Stöße etc.
Kapazität bis zu 512 MB.
Speicherfähigkeit: 10-100 Jahre.
Ca. 100.000 Programmier- und Löschzyklen möglich.
Ähnlich wie ein EEPROM aufgebaut.
Blockweiser Zugriff z.B. 512 Byte (im Gegensatz zu EEPROM).
Lesezugriff: ca. 100-200ns
Block-Schreibzeit: 10-200ms
Block-Löschzeit: 2-100ms.
Vorteile:
• Sehr flexibel.
• Chip muss zum programmieren nicht ausgebaut werden.
Systemprogrammierung II, Winter 2002/03, P. Schulthess & M. Schöttner
94