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