Speicher - CCS Labs
Transcription
Speicher - CCS Labs
Speicher Einführung in die Technische Informatik Falko Dressler, Stefan Podlipnig Universität Innsbruck Übersicht • • • • • • Historische Entwicklung Begriffe SRAM DRAM Nichtflüchtige Speicher Caches Einführung in die Technische Informatik - WS 11/12 Speicher 2 Lernziele • Begriffe: SRAM, DRAM, SDRAM, DDR-SDRAM, PROM, EPROM, ... • Aufbau, Organisation und Arbeitsweise von statischem und dynamischem Speicher • Kennenlernen moderner DRAM-Varianten und ihrer wichtigsten Charakteristika • Vorteile und Eigenschaften einer Cache-Hierarchie • Aufbau, Arbeitsweise und Unterschiede von vollassoziativem Cache, n-Wege teilassoziativem Cache und direkt abbildendem Cache • Optimierung von Programmen bzgl. Cache Einführung in die Technische Informatik - WS 11/12 Speicher 3 HISTORISCHE ENTWICKLUNG Einführung in die Technische Informatik - WS 11/12 Speicher 4 Historische Entwicklung (1) • Im Laufe der Geschichte wurden verschiedene Technologien eingesetzt, um Informationen zu speichern: Modifikation von Strukturen: Lochkarte, Schallplatte Rückkopplung: Flip-Flops, SRAM Elektrische Ladungen: Kondensator, DRAM Magnetismus: Magnetkernspeicher, Magnetband, Diskette, Festplatte, MRAM Optik: Bar-Codes, CD-ROM, DVD • Kriterien zum Vergleich von Speichertechnologien: Geschwindigkeit, Kapazität, Dichte, Energiebedarf, Robustheit, Kosten Einführung in die Technische Informatik - WS 11/12 Speicher 5 Historische Entwicklung (2) • Entwicklung der Komplexität von CPU und Speicher seit 1980: Mooresches Gesetz : Verdopplung der Transistoranzahl alle 2 Jahre Einführung in die Technische Informatik - WS 11/12 Speicher 6 Historische Entwicklung (3) • Entwicklung der relativen Leistung von CPU und Speicher seit 1980: Einführung in die Technische Informatik - WS 11/12 Speicher 7 Historische Entwicklung (4) • In heutigen Rechnersystemen findet man eine mehrstufige Speicherhierarchie: Einführung in die Technische Informatik - WS 11/12 Speicher 8 BEGRIFFE Einführung in die Technische Informatik - WS 11/12 Speicher 9 Begriffe (1) • RAM (Random Access Memory) Speicher mit wahlfreiem Zugriff auf beliebige Adressen • SRAM (Static RAM) Statischer RAM-Speicher • DRAM (Dynamic Random Access Memory) Dynamischer RAM-Speicher • SDRAM (Synchronous DRAM) Synchroner dynamischer RAM-Speicher • DDR-SDRAM (Double Data Rate SDRAM) Synchroner dynamischer RAM-Speicher mit doppelter Datenrate Einführung in die Technische Informatik - WS 11/12 Speicher 10 Begriffe (2) • ROM (Read-Only Memory) • PROM (Programmable ROM) Einmalig programmierbarer Speicher, z.B. durch Masken-Programmierung bei der Chip-Herstellung. • EPROM (Erasable PROM) Mit UV-Licht löschbares und elektrisch (durch zusätzliche Steuerleitungen und Überspannungen) programmierbares PROM. • EEPROM (Electrically Erasable PROM) Elektronisch löschbares und danach wieder programmierbares PROM. • Flash (Eigenname), ähnliche Eigenschaften wie EEPROM Einführung in die Technische Informatik - WS 11/12 Speicher 11 Begriffe (3) • Speicher werden eingeteilt in Flüchtige Speicher: SRAM, DRAM, SDRAM, ... Informationen gehen nach Ausschalten der Versorgungsspannung verloren! Nichtflüchtige Speicher: PROM, EPROM, EEPROM, ... Informationen bleiben auch ohne Versorgungsspannung über längere Zeit (typischerweise einige Jahre) erhalten! • Die Kapazität von Speicherbausteinen wird (noch immer) in KByte (bzw. KBit), MByte (bzw. MBit) oder GByte (bzw. GBit) angegeben: Einführung in die Technische Informatik - WS 11/12 Speicher 12 Begriffe (4) • SI-Präfixe Verwendet z.B. in der Datenübertragung oder auch (!) bei Speichermedien Exp. Langform Präfix Exp. Langform Präfix 10-3 0,001 Milli 103 1.000 10-6 0,000001 Mikro 106 1.000.000 10-9 0,000000001 Nano 109 1.000.000.000 Giga 10-12 0,000000000001 Pico 1012 1.000.000.000.000 Tera 10-15 0,000000000000001 Femto 1015 1.000.000.000.000.000 Peta 10-18 0,000000000000000001 Atto 1018 1.000.000.000.000.000.000 10-21 0,000000000000000000001 Zepto 1021 1.000.000.000.000.000.000.000 Zetta 10-24 0,000000000000000000000001 Yocto 1024 1.000.000.000.000.000.000.000.000 Yotta Kilo Mega Exa • Besondere, an die SI-Präfixe angelehnte, explizite Binärpräfixe Sollten in Zukunft verwendet werden. Beispiele: Kibibyte = 210 Bytes Mebibyte = 220 Bytes Gibibyte = 230 Bytes usw. Einführung in die Technische Informatik - WS 11/12 Speicher 13 Begriffe (5) • Als Zugriffszeit tac bezeichnet man die Zeitspanne vom Anlegen einer Adresse bis zur Gültigkeit der ausgelesenen Daten. • Als Zykluszeit tcycle bezeichnet man die Zeitspanne vom Anlegen einer Adresse bis zum möglichen Anlegen der nächsten Adresse. • Mögliches Zeitdiagramm eines Lesezyklus: • Zykluszeit ist oft (z.B. bei DRAMs) größer als die Zugriffszeit! Einführung in die Technische Informatik - WS 11/12 Speicher 14 Begriffe (6) • Zwei Arten der Realisierung flüchtiger Speicher: • Statischer Speicher Speicherung durch 4 bis 6 Transistoren je Bit. Kein Refresh notwendig. Bausteine: SRAM, Dual-ported SRAM. Zugriffs- und Zykluszeit: ca. 10 ns als externe Bausteine (schneller, wenn sie direkt in den Prozessor integriert werden, z.B. als Cache). • Dynamischer Speicher Speicherung durch einen Transistor und einen Kondensator je Bit. Refresh notwendig, da der Kondensator im Verlauf der Zeit (Größenordnung: einige ms) seine Ladung verliert. Sehr hohe Datendichte (Kapazität je mm2 Chipfläche) möglich. Bausteine: DRAM, SDRAM, DDR-SDRAM, RDRAM Zugriffszeit für erstes Datenwort: ca. 40 ns, Zykluszeit: ca. 60 ns Einführung in die Technische Informatik - WS 11/12 Speicher 15 SRAM Einführung in die Technische Informatik - WS 11/12 Speicher 16 SRAM (1) • Idee: Auf einem Flip-Flop basierender Speicherbaustein, z.B. ein DFlip-Flop für ein Bit: • Bei Write = 1 wird Information von Din gespeichert und steht am Ausgang Dout zur Verfügung. • Information bleibt gespeichert, auch wenn sich Din bei Write = 0 wieder ändern sollte (solange Versorgungsspannung anliegt). Einführung in die Technische Informatik - WS 11/12 Speicher 17 SRAM (2) • SRAM-Bausteine basieren jedoch nicht auf vollständigen D-FlipFlops, sondern auf einfacheren SRAM-Zellen. • Vereinfachter Aufbau einer typischen SRAM-Zelle mit FETTransistoren: • Zwei Inverter repräsentieren bistabile Kippstufe. • Bei Select = 1 leiten FETs und verbinden die bistabile Kippstufe mit den Leitungen Bit und Bit, bei Select = 0 sperren FETs. Einführung in die Technische Informatik - WS 11/12 Speicher 18 SRAM (3) • Beschreiben einer SRAM-Zelle: Bit-Leitungen werden mit Bit = 1 und Bit = 0 (zum Speichern einer „1“), bzw. mit Bit = 0 und Bit = 1 (zum Speichern einer „0“) geladen. Auswahl-Leitung wird auf Select = 1 gesetzt. Kippstufe schwingt gegebenenfalls in den anderen stabilen Zustand. Rücksetzen der Pegel auf Select-Leitung und danach auf Bit-Leitungen. Zustand bleibt erhalten, solange Versorgungsspannung anliegt. Einführung in die Technische Informatik - WS 11/12 Speicher 19 SRAM (4) • Auslesen einer SRAM-Zelle: Bit-Leitungen werden mit Bit = 1 und Bit = 1 geladen („Precharging“). Auf Auswahl-Leitung wird ein kurzer Impuls gegeben. Resultierender geringer Spannungsabfall auf Bit oder Bit wird durch Verstärkerschaltung erkannt, die eine entsprechende Ausgabe generiert. Einführung in die Technische Informatik - WS 11/12 Speicher 20 SRAM (5) • Organisation eines SRAM-Bausteins: m n Speichermatrix (m Speicherzeilen mit je n SRAM-Zellen) Auswahl einer der m = 2k Zeilen über k Adressleitungen sowie einem k-zu-m Adress-Dekoder. Alle Zellen einer Spalte nutzen die gleichen Bit-Leitungen. • Steuerlogik eines SRAMs mit einigen weiteren Steuerleitungen: CS (Chip Select) zur Auswahl und Aktivierung eines SRAM-Bausteins. WE (Write Enable) zum Speichern eines Wertes. OE (Output Enable) zum Lesen und Freischalten der Ausgänge. Einführung in die Technische Informatik - WS 11/12 Speicher 21 SRAM (6) • Vereinfachte Architektur eines m 4 SRAM-Bausteins: Einführung in die Technische Informatik - WS 11/12 Speicher 22 SRAM (7) • SRAM-Bausteine gibt es in verschiedenen Organisationsformen, und Kapazitäten, z.B.: 128k 4 512k 8 1M 8 2M 16 128k Worte à 4 Bit (17 Adress-, 4 Datenleitungen, 64 KByte) 512k Worte à 8 Bit (19 Adress-, 8 Datenleitungen, 512 KByte) 1M Worte à 8 Bit (20 Adress-, 8 Datenleitungen, 1 MByte) 2M Worte à 16 Bit (21 Adress-, 16 Datenleitungen, 4 MByte) • Auch synchrone (d.h. getaktete) SRAMs verfügbar. Arbeiten synchron mit Prozessortakt. Sehr kurze Zugriffszeiten (weniger als 5 ns). • Viele für DRAMs eingeführte Verbesserungen (Burst-Modus, Double Data Rate, ..) mittlerweile auch bei SRAMs erhältlich. Werden im nächsten Abschnitt besprochen. Einführung in die Technische Informatik - WS 11/12 Speicher 23 SRAM (8) • Vor-/Nachteile von SRAMs + Schneller Zugriff (weniger als 5 ns möglich) + Unempfindlich gegen elektromagnetische Strahlung - Geringe Datendichte auf dem Chip (hoher Flächenbedarf: ca. 4-fach im Vergleich zu DRAM) - Energiebedarf hoch (bei vielen Zugriffen), niedrig (im Standby) - Hoher Preis • Typischer Einsatz von SRAMs Mobile Geräte Netzwerkkomponenten (z.B. Switches, Router) Weltraumgeräte Höchstgeschwindigkeitsrechner (z.B. Vektorrechner) L1, L2 und L3 Cachespeicher (mit synchronen SRAMs) Einführung in die Technische Informatik - WS 11/12 Speicher 24 DRAM Einführung in die Technische Informatik - WS 11/12 Speicher 25 DRAM (1) • Benötigt zur Speicherung eines Bits nur einen Transistor und einen Kondensator. • Patent im Jahre 1968, verfügbar seit 1970. • Aufbau einer DRAM-Zelle: • Extrem hohe Speicherkapazität durch geringen Flächenbedarf einer DRAM-Zelle. Einführung in die Technische Informatik - WS 11/12 Speicher 26 DRAM (2) • Schreiben einer DRAM-Zelle: Bit-Leitung wird auf Bit = 1 oder Bit = 0 gesetzt. Auswahlleitung Select = 1 setzen. Transistor leitet und Kondensator wird aufgeladen oder entladen. • Auslesen einer DRAM-Zelle: Auswahlleitung Select = 1 setzen. Transistor leitet Falls Kondensator aufgeladen war, erzeugt die Ladung einen kurzen Impuls auf der Bit-Leitung. Impuls kann durch Leseverstärker erkannt werden, der eine logische 1 am Ausgang erzeugt. Der Kondensator wird jedoch beim Auslesen entladen. Daher muss die DRAM-Zelle nach jedem Lesen wieder mit dem zuvor gelesenen Wert beschrieben werden! Einführung in die Technische Informatik - WS 11/12 Speicher 27 DRAM (3) • Organisation eines m2 1 DRAMs (vereinfacht): • Multiplex-Interface: Jede 2k-Bit Adresse (mit m = 2k) besteht aus Zeilen- und Spaltenadressteil. Um E/A-Pins einzusparen, werden beide Teile sequentiell über k Adressleitungen übertragen (zusätzliche Steuersignale CAS, RAS nötig). Einführung in die Technische Informatik - WS 11/12 Speicher 28 DRAM (4) • Lesen eines Wertes aus einem 64k 1 DRAM-Baustein: Zuerst werden die Adressbits 15 bis 8 an A7 bis A0 angelegt. Das Signal RAS (Row Address Strobe) wird aktiviert und alle 256 Bits der Speicherzeile werden von den Leseverstärkern ausgelesen. Dann werden die Adressbits 7 bis 0 an A7 bis A0 angelegt. Das Signal CAS (Column Address Strobe) wird aktiviert, wodurch aus den Ausgängen der 256 Leseverstärker das gewünschte Bit ausgewählt und am Pin D ausgegeben wird. Ein weiteres Bit aus der gleichen Zeile (Page) kann ausgelesen werden, indem CAS deaktiviert, eine andere Spaltenadresse angelegt wird und CAS wieder aktiviert wird (Fast Page Mode, FPM). Nach Deaktivierung von RAS und CAS wird die Zeile zurückgeschrieben. Einführung in die Technische Informatik - WS 11/12 Speicher 29 DRAM (5) • Schreiben eines Wertes in einen 64k 1 DRAM-Baustein: Zuerst werden die Adressbits 15 bis 8 an A7 bis A0 angelegt. Das Signal RAS (Row Address Strobe) wird aktiviert und alle 256 Bits der Speicherzeile werden von den Leseverstärkern ausgelesen. Die Adressbits 7 bis 0 an A7 bis A0 werden angelegt. Die Signal CAS (Column Address Strobe) und WE werden aktiviert und das zu schreibende Bit wird an D angelegt; im Leseverstärker wird das ausgewählte Bit durch das Signal an D überschrieben. In der ausgewählten Zeile können gegebenenfalls weitere Bits geschrieben werden (Fast Page Mode, siehe vorherige Folie). Nach Deaktivierung von RAS und CAS wird modifizierte Zeile in die Speichermatrix zurückgeschrieben. Einführung in die Technische Informatik - WS 11/12 Speicher 30 DRAM (6) • Kapazität C des Kondensators einer DRAM-Zelle ist sehr gering. • Ladungsverlust nicht nur bei jedem Lesen, sondern auch langsam mit der Zeit aufgrund eines geringen Leckstroms im Transistor (Größenordung: einige ms), durch elektromagnetische Strahlung. • Periodischer Refresh erforderlich, um Zelleninhalt über längere Zeit zu speichern: Jede Zeile muss regelmäßig in Abständen von typischerweise 32 bis 64 ms gelesen werden, wodurch ihr Inhalt erneut geschrieben wird. Dies wird implementiert durch einen in das DRAM integrierten Zähler, dessen Zählerstand die nächste aufzufrischende Zeilenadresse angibt. Der Memory-Controller erzeugt periodisch (z.B. alle 15.6 s, BIOS) eine bestimmte Kombination der Steuersignale (z.B. CAS-before-RAS ), durch die ein Blindlesezyklus ausgelöst und der Zähler inkrementiert wird. Einführung in die Technische Informatik - WS 11/12 Speicher 31 DRAM (7) • Der Zugriff auf eine beliebige Speicheradresse benötigt ca. 60 ns. Da Auslesen der sehr geringen Ladung über Leitungen mit hohem Widerstand und das Verstärken eine gewisse Zeit benötigen. Folgezugriffe mit anderen Spaltenadressen in der gleichen Speicherzeile benötigen jeweils ca. 30 ns. • DRAM-Bausteine sind wie SRAMs in unterschiedlichen Organisationen verfügbar. z.B. kann ein 16 MBit Speicher als 1M 16, 2M 8, 4M 4 oder auch als 16M 1 organisiert sein. • Bei einer Kapazität c und einer Wortbreite von n Bit benötigt man n Speichermatrizen aus m m DRAM-Zellen mit m = 𝑐 𝑛 • Erfüllen einzelne DRAM-Bausteine nicht die Anforderungen bezüglich Wortbreite oder Adressraum, so können mehrere DRAMBausteine geeignet zusammengeschaltet werden. Einführung in die Technische Informatik - WS 11/12 Speicher 32 DRAM (8) • Möglichkeiten der Zusammenschaltung von DRAM-Bausteinen: 1) Vergrößern der Wortbreite: Identische Adress- und Steuerleitungen zu allen Speicherbausteinen, Datenleitungen werden aufgeteilt. Beispiel: Speicher mit 256k Worten à 16 Bit Auch die Speicherbandbreite (Anzahl übertragbarer Bytes je Sekunde zwischen CPU und Speicher) wird hierdurch erhöht! Einführung in die Technische Informatik - WS 11/12 Speicher 33 DRAM (9) 2) Vergrößern des Adressraums: Datenleitungen und untere Adressleitungen an allen Bausteinen identisch; obere Adressleitungen dienen dem Multiplexen der Steuersignale. Beispiel: Speicher mit 64M Worten à 8 Bit • Möglichkeiten 1) und 2) werden oft kombiniert ! Einführung in die Technische Informatik - WS 11/12 Speicher 34 DRAM (10) • Vor-/Nachteile von DRAM-Bausteinen - Periodischer Refresh erforderlich ( kostet Energie, auch bei Nichtbenutzung des Speichers!) - Hohe Zugriffszeit von ca. 60 ns für das erste Datenwort, dank FPM kürzere Zugriffszeit von ca. 30 ns für folgende Datenworte der gleichen Zeile. + Ca. 4-fach höhere Datendichte als bei SRAM. + Geringer Preis je Mbit. • Typischer Einsatz von DRAMs Hauptspeicher in PCs und Workstations Pufferspeicher, z.B. in Druckern • „Einfache“ DRAMs sind heute nicht mehr erhältlich, sondern nur noch die schnelleren DRAM-Varianten ... Einführung in die Technische Informatik - WS 11/12 Speicher 35 DRAM-Varianten (1) • Möglichkeiten der Beschleunigung des Zugriffs auf Daten aus DRAM-Bausteinen: Überlappung: Auslesen eines Datenwortes erfolgt simultan zum Anlegen der Adresse für den nächsten Zugriff. Burst-Modus: Eine festgelegte Anzahl von Daten wird aus aufeinander folgenden Spaltenadressen gelesen oder geschrieben, wobei nur die Startadresse bereitgestellt wird. Pipelining: Durch eine mit dem Systemtakt synchrone Arbeitsweise kann je Taktzyklus ein neuer Spaltenzugriff initialisiert bzw. abgeschlossen werden. Einführung in die Technische Informatik - WS 11/12 Speicher 36 DRAM-Varianten (2) • SDRAM (Synchronous DRAM, 1999) Getakteter Speicherbus (typisch 100, 133 oder 166 MHz) Alle Signale werden nur bei steigender Taktflanke als gültig betrachtet. Kombination von Signalen auf CS, RAS, CAS, WE definiert Buszyklus und wird als Steuerbefehl bezeichnet. Arbeitet mit Pipelining: In jedem Taktzyklus kann eine neue Spaltenadresse angelegt werden, wobei die zugehörigen Daten eine bestimmte Anzahl von Takten später am Ausgang bereitstehen. Kann im Burst Modus arbeiten: Lesen oder Schreiben einer bestimmten, einstellbaren Anzahl von Datenworten von benachbarten Spaltenadressen (meist 2, 4 oder 8 Datenworte). Zugriffszeit im Burst-Modus: ca. 6 bis 10 ns Entspricht einer maximalen Speicherbandbreite von 400 bis 666 MByte/s bei Einsatz eines 32-Bit Speicherbusses, bzw. von 800 bis 1,33 GByte/s bei einem 64Bit Speicherbus. Einführung in die Technische Informatik - WS 11/12 Speicher 37 DRAM-Varianten (3) • Nomenklatur von SDRAMs: PC-xxx CL a-b-c xxx gibt die maximale Taktfrequenz des Speicherbusses an. a gibt die CAS-Latenzzeit (CAS Latency) an, d.h. die Zeit tCL (in Taktzyklen) von der fallenden Flanke des CAS-Signals bis zur Ausgabe der Daten. b gibt die RAS-zu-CAS-Verzögerung (RAS-to-CAS Delay) an, d.h. die minimale Zeit tRCD (in Taktzyklen) zwischen Anlegen von RAS und CAS. c gibt die RAS-Vorladezeit (RAS Precharge Time) an, d.h. die Zeit tRP (in Taktzyklen) zum Beenden des letzten Zugriffszyklus und Vorbereiten des nächsten Zeilenzugriffes (Precharging). • Oft wird nur die CAS-Latenzzeit tCL angegeben (z.B. als CL2 oder CL3). Einführung in die Technische Informatik - WS 11/12 Speicher 38 DRAM-Varianten (4) • Beispiel: Burst-Lesezyklus bei PC-133 CL 2-2-2 SDRAM: mit den Steuerbefehlen: Activate (CS = 0, RAS = 0, CAS = 1, WE = 1) Read (CS = 0, RAS = 1, CAS = 0, WE = 1) Precharge (CS = 0, RAS = 0, CAS = 1, WE = 0) Einführung in die Technische Informatik - WS 11/12 Speicher 39 DRAM-Varianten (5) • DDR-SDRAM (Double Data Rate SDRAM, 2001) Bei jedem Zugriff auf eine Speichermatrix werden zwei benachbarte Bits ausgelesen (2-Bit Prefetch). Pro Takt wird bei der steigenden und bei der fallenden Taktflanke übertragen. Verdopplung der Datenrate im Burst-Modus. • Nomenklatur bei DDR-SDRAMs: DDR-xxx xxx bezeichnet die doppelte Taktfrequenz. Zusätzliche Angaben in der Form CL a-b-c bedeuten a = tCL, b = tRCD und c = tRP (vgl. SDRAMs). Einführung in die Technische Informatik - WS 11/12 Speicher 40 DRAM-Varianten (6) • Beispiel: Burst-Lesezyklus bei DDR -266 CL 2-3-3 Baustein, Burstlänge = 4, Zugriff auf zwei Spalten a und b in einer Zeile. Einführung in die Technische Informatik - WS 11/12 Speicher 41 DRAM-Varianten (7) • DDR2-SDRAM (2004) Weiterentwicklung des DDR-SDRAM Standards. Übertragen wie DDR-SDRAMs Daten sowohl bei der steigenden als auch bei der fallenden Taktflanke. Geringere Versorgungsspannung: 1,8 Volt anstatt 2,5 Volt Geringe Stromaufnahme, geringere Wärmeentwicklung Bei jedem Zugriff auf die Speichermatrix werden 4 benachbarte Datenbits ausgelesen bzw. geschrieben (4-Bit Prefetch). Im Vergleich zu DDR halber interner Speichertakt, nur noch Burstlänge von 4 und 8. • Nomenklatur wie bei DDR-SDRAMs: DDR2-xxx xxx bezeichnet die doppelte Taktfrequenz des Speicherbusses. Einführung in die Technische Informatik - WS 11/12 Speicher 42 DRAM-Varianten (8) • DDR3-SDRAM (2007) Weiterentwicklung des DDR2-SDRAM Standards. Übertragen wie DDR-SDRAMs Daten sowohl bei der steigenden als auch bei der fallenden Taktflanke. Noch geringere Versorgungsspannung: 1,5 Volt anstatt 1,8 Volt Bei jedem Zugriff auf die Speichermatrix werden 8 benachbarte Datenbits ausgelesen bzw. geschrieben (8-Bit Prefetch). Im Vergleich zu DDR ist interner Speichertakt um Faktor 4 kleiner. • Nomenklatur wie bei DDR-SDRAMs: DDR3-xxxx xxxx bezeichnet die doppelte Taktfrequenz des Speicherbusses. Zusätzliche Angaben in der Form CL a-b-c bedeuten a = tCL, b = tRCD und c = tRP. Einführung in die Technische Informatik - WS 11/12 Speicher 43 DRAM-Varianten (9) • Zusammenfassung typischer Werte: Variante DRAM (FPM) SDRAM PC-133 DDR-400 2,5-3-3 DDR2-800 6-6-6 DDR3-1066 7-7-7 DDR3-1600 9-9-9 externer Zykluszeit Zugriffszeit SpaltenTakt Zugriffszeit 80 ns 60 ns 30 ns 133 MHz 60 ns 40 ns 15 ns 200 MHz 55 ns 30 ns 12,5 ns 400 MHz 45 ns 30 ns 15 ns 533 MHz 40 ns 26 ns 13 ns 800 MHz 34 ns 23 ns 11 ns BurstZugriffszeit 30 ns 7,5 ns 2,5 ns 1,25 ns 0,94 ns 0.63 ns • Eine einzelne DRAM-Speicherzelle ist kaum schneller geworden; lediglich das Interface wurde so verbessert, dass die Zugriffszeit im Burst-Modus erheblich reduziert wurde! Einführung in die Technische Informatik - WS 11/12 Speicher 44 Speichermodule (1) • Speicherbausteine werden nicht einzeln verwendet, sondern als Module: • SIMM (Single Inline Memory Module) oder PS/2-Modul Einseitig bestückt, 72 Kontakte nur auf einer Seite der Speicherplatine, 32 Datenbits Jeweils 2 identische Module für 64-Bit Bus erforderlich. • DIMM (Dual Inline Memory Module) Kontakte beidseitig, meist zweiseitig bestückt, 64 Datenbits Bei Verwendung von SDRAMS: 168 Kontakte, bei DDR-SDRAMs: 184 Kontakte, bei DDR2- und DDR3-SDRAMs: 240 Kontakte Einführung in die Technische Informatik - WS 11/12 Speicher 45 Speichermodule (2) • Neben den normalen („unbuffered“) Speichermodulen gibt es auch solche mit zusätzlichen Registern („registered “) zum Aufbau von Servern mit sehr großem Arbeitsspeicher. • Auch Speichermodule mit Fehlererkennung oder Fehlerkorrektur verfügbar: Zusätzlicher Speicherbaustein für Prüfbits erforderlich. Parity-Module gestatten eine Fehlererkennung. 1 zusätzliches Prüfbit ECC-Module (Error Correcting Code) gestatten eine Fehlerkorrektur. 8 zusätzliche Prüfbits bei 64-Bit Modulen Einführung in die Technische Informatik - WS 11/12 Speicher 46 NICHTFLÜCHTIGE SPEICHER Einführung in die Technische Informatik - WS 11/12 Speicher 47 Nichtflüchtige Speicher (1) • Ein Festwertspeicher (ROM = Read Only Memory) hat auch eine matrixartige Architektur. Der FET in einer jeden Zelle wird über eine Maske bei der Produktion permanent leitend oder sperrend. Einführung in die Technische Informatik - WS 11/12 Speicher 48 Nichtflüchtige Speicher (2) • Bei einem PROM (Programmable ROM) sind die Transistoren nur über eine sehr dünne Metallschicht (fuse) mit der Bitleitung verbunden. Bipolare Transistoren anstatt FETs Alle Transistoren eines PROMs sind zunächst leitend. Durch einen kurzen Überspannungsimpuls auf der Bitleitung kann die Metallschicht verdampft werden (Transistor sperrt). Programmierung ist irreversibel. Sehr kurze Zugriffszeiten (ca. 5 ns) beim Lesen möglich. Auch zur Realisierung logischer Schaltungen geeignet. Einführung in die Technische Informatik - WS 11/12 Speicher 49 Nichtflüchtige Speicher (3) • Ein EPROM (Erasable PROM) basiert auf Floating Gate FETs: FET ist zunächst leitend. Bei Anlegen einer hohen Spannung VGS (12V) an gate2 entsteht ein elektrisches Feld, das die Elektronen auf das „Floating Gate“ (gate1) springen lässt (FET sperrt). Ladung auf „Floating Gate“ bleibt einige Jahre erhalten. Erst durch UV Licht werden Elektronen wieder freigesetzt (FET leitet). Programmierung erfordert spezielles Programmiergerät. Lebensdauer: einige 100 Lösch-/Brennvorgänge Einführung in die Technische Informatik - WS 11/12 Speicher 50 Nichtflüchtige Speicher (4) • Ein EEPROM (Electronically Erasable PROM) basiert auf Floating Gate Tunnel Oxide FET Transistoren: Dünne Oxidschicht, durch die bei Anlegen negativer Spannungen VGS die Elektronen zurückspringen können. Bis zu 10000 Schreibvorgänge möglich. Löschen einzelner Werte möglich. Zeit für das Lesen eines Wertes: 35 ns Zeit für das Schreiben eines Wertes: 5 bis 10 ms Einführung in die Technische Informatik - WS 11/12 Speicher 51 Nichtflüchtige Speicher (5) • Flash-Speicher arbeiten ähnlich wie EEPROMs, haben jedoch günstigere Eigenschaften. Zwei Technologien: NOR (1998, Intel) und NAND (1999, Toshiba) Zugriffszeit beim Lesen: NOR: 25 bis 70 ns (wahlfrei) NAND: 50 ns (seriell in einer Seite aus z.B. 512 Byte) Zeit für Schreibvorgang: NOR: 5 bis 10 s je Wort NAND: ca. 200 s je Seite (z.B. 512 Byte) Bis zu 1000000 Schreibvorgänge sind möglich (bei NAND). Typische Speicherdauer: ca. 10 Jahre NAND Flash-Speicherbausteine bieten dank kleinerer Speicherzellen eine höhere Kapazität. Nur blockweises Löschen möglich, bei NAND wesentlich schneller. Einführung in die Technische Informatik - WS 11/12 Speicher 52 Nichtflüchtige Speicher (6) • Typische Anwendungen von Festwertspeichern: Speicherung des BIOS (Basic Input/Output System) beim PC. Speicherung von Programmen bei eingebetteten Systemen. In Geräten der Kommunikationstechnik zur Speicherung von Rufnummern, Senderfrequenzen, … Als Flashkarten zur Speicherung von Bildern in digitalen Fotoapparaten, für Musikdateien beim MP3-Player, … In USB Memory-Sticks oder SSDs zur Speicherung von Daten oder Programmen. • MRAM-Technologie (Magnetoresistive RAM) ermöglicht nichtflüchtige Speicher mit magnetischen Ladungselementen. Erster Prototyp 2004 von Freescale, heute bis zu 4 Mbit per Chip, 35 ns Lese/Schreibzyklus, recht teuer (von einigen Firmen aufgegeben); Einführung in die Technische Informatik - WS 11/12 Speicher 53 CACHES Einführung in die Technische Informatik - WS 11/12 Speicher 54 Caches (1) • Aufgrund immer höherer Leistung moderner CPUs nehmen die Anforderungen an den Speicher ständig zu - benötigt werden: Kurze Zugriffszeit Hohe Transferrate • Speichermodule aus aktuellen DRAM-Varianten erreichen zwar eine relativ hohe Transferrate; die Zugriffszeit ist bei wahlfreier Adressierung jedoch völlig unzureichend! • Durch Einsatz einer Speicherhierarchie (aus gestaffelt schnellen Speichern) soll ein Speicher aus DRAM-Bausteinen ähnlich schnell werden wie ein Speicher aus SRAM-Bausteinen. Einführung in die Technische Informatik - WS 11/12 Speicher 55 Caches (2) • Grundidee: Programme verfügen meist über eine hohe Lokalität, d.h. sie greifen in einer Zeitspanne nur auf einen kleinen Teil des Adressraums zu. • Es gibt zwei Arten von Lokalität: Zeitliche Lokalität: Wenn Zugriff auf ein Element im Speicher erfolgt, ist die Wahrscheinlichkeit groß, dass dieses Element noch einmal verwendet wird (z.B. bei Schleifen). Räumliche Lokalität: Nach Zugriff auf ein Element aus dem Speicher ist die Wahrscheinlichkeit groß, dass auch auf benachbarte Elemente zugegriffen wird (z.B. bei Arrays). • Bei Zugriff auf Speicheradresse a wird daher nicht nur ein einzelnes Speicherwort gelesen. Es werden auch alle benachbarten Speicherworte gelesen und im Cache gespeichert (hohe Übertragungsrate im DRAM Burst-Modus kann ausgenutzt werden!). Einführung in die Technische Informatik - WS 11/12 Speicher 56 Speicherhierarchie (1) • Heutige Rechner verfügen über eine mehrstufige Speicherhierarchie: Prozessorinterne L1 Caches für Code und Daten: Zugriff in 1-3 Takten Typische Größe von 864 KByte, SRAM Prozessorexterner, aber jedoch auf dem gleichen Chip integrierter (für Code und Daten gemeinsamer) L2 Cache Zugriff in 4-15 Takten Typische Größe von 256 KByte bis 16 MByte, SRAM Mittlerweile zusätzlicher (externer) L3 Cache Typische Größe 2-64 Mbyte Hauptspeicher (DRAM) mit einigen (z.B. 8,16) Gbyte Zugriff in ca. 40 ns Einführung in die Technische Informatik - WS 11/12 Speicher 57 Speicherhierarchie (2) • Cache auf Ebene i + 1 ist größer und langsamer als auf Ebene i. • Jeder Cache arbeitet wie ein Assoziativspeicher für Speichereinträge des Hauptspeichers: Über einen Schlüssel wird auf ein Datenfeld zugegriffen. Der Schlüssel entspricht der Speicheradresse. Das Datenfeld enthält den Speicherinhalt. • Bei jedem Speicherzugriff wird beginnend beim Cache auf der Ebene i = 1 überprüft, ob die Speicheradresse als Schlüssel gespeichert ist: Falls vorhanden (Cache Hit), enthält der Cache der Ebene i eine Kopie des Speicherinhaltes. Falls nicht vorhanden (Cache Miss), wird der Cache auf Ebene i + 1 bzw. der Hauptspeicher konsultiert und die adressierten Daten werden für spätere Zugriffe im Cache der Ebene i gespeichert. Einführung in die Technische Informatik - WS 11/12 Speicher 58 Cache-Aufbau • Ein Cache besteht aus c = 2k Cache-Zeilen. • Jede Cache-Zeile (Cache Line oder Cache Block) besteht aus einem t-Bit Identifikator (Tag), einem Datenbereich, einem Index und Gültigkeits-Flag V (Valid Bit): • Datenbereich besteht aus m = 2d Bytes (typisch: m = 8, 16, 32); m wird Eintragsgröße (Block Size oder Line Size) genannt. • Der Tag enthält einen Teil der Speicheradresse. • Größe des Cache-Speichers: Sc = c m Nur für Datenbereich, zusätzlicher Speicherbedarf von c t Bit für Tags und c Bit für Valid Bits. Einführung in die Technische Informatik - WS 11/12 Speicher 59 Vollassoziativer Cache (1) • Beim vollassoziativen Cache wird eine Hauptspeicherzeile in beliebiger Cache-Zeile abgelegt: Bei Zugriff auf ein Wort auf beliebiger Adresse a werden m = 2d Bytes ab der Adresse a' = a – a mod m in den Cache geladen. • Für eine CPU mit Adressen der Breite w bit (Größe des Adressraums ist SM = 2w) ist ein Tag von t = w – d Bit erforderlich. Beispiel: 32-Bit Adressen (w = 32) Cache mit Zeilen aus je m = 16 Bytes (d = 4) • Niedrige d Bit einer Adresse nicht im Tag enthalten; sie dienen der Auswahl eines Bytes aus Cache-Zeile. Einführung in die Technische Informatik - WS 11/12 Speicher 60 Vollassoziativer Cache (2) • Aufbau und Arbeitsweise eines vollassoziativen 4 KByte Caches mit 256 Zeilen à 16 Byte für eine 32-bit CPU: Einführung in die Technische Informatik - WS 11/12 Speicher 61 Vollassoziativer Cache (3) • Bei Zugriff auf Adresse a wird das Tag aller gültigen Cache-Zeilen meist gleichzeitig (vollparallel) mit den entsprechenden AdressBits von a verglichen. • Aufwand: (w d) c Bit-Vergleicher Ein c-Bit Treffer-Register Ein Baum aus UND- und ODER-Gattern zur Bestimmung eines Cache Hit Signals für CPU aus Treffer-Registern. • Vollassoziativer Cache wird nur für kleine Caches verwendet! Ansonsten ist Aufwand zu hoch und die Trefferbestimmung aufgrund der aufwendigen Logik zu langsam. Einführung in die Technische Informatik - WS 11/12 Speicher 62 Direkt abbildender Cache (1) • Beim direkt abbildenden Cache (direct mapped cache) kann jede Hauptspeicherzeile nur auf eine bestimmte Cache-Zeile abgebildet werden. • Die Cache-Zeile wird direkt durch den Index-Anteil einer Adresse festgelegt! • Bei einem Hauptspeicher der Größe SM = 2w Byte und einem Cache mit c = 2k Zeilen aus jeweils m = 2d Byte ist ein Tag von nur noch t = w – k – d Bit erforderlich. Beispiel: 32-Bit Adressen (w = 32) 64 KByte Cache mit 4096 Zeilen (k = 12) aus je 16 Bytes (d = 4) Einführung in die Technische Informatik - WS 11/12 Speicher 63 Direkt abbildender Cache (2) • Aufbau und Arbeitsweise eines direkt abbildenden 64 KByte Caches mit 4096 Zeilen à 16 Byte für eine 32-Bit CPU: Einführung in die Technische Informatik - WS 11/12 Speicher 64 Direkt abbildender Cache (3) • Man kann sich den Hauptspeicher in gleich große Segmente unterteilt vorstellen: Größe des Hauptspeichers SM = 2w Byte. Aufteilung in s = 2t der Cachegröße SC entsprechende Segmente. • Insgesamt s Hauptspeicherzeilen mit gleichem Indexanteil (d.h. mit Adress-Distanz 2w-t) konkurrieren um eine Cache-Zeile. Die i-te Hauptspeicherzeile eines jeden Segmentes kann nur in der CacheZeile i gespeichert werden. Bei einem Konflikt muss entsprechende Zeile erst freigegeben werden, bevor sie erneut belegt wird. • Bei Cache-Zugriff muss nur ein t-Bit Tag mit den zugehörigen t Bit der Adresse verglichen werden. Aufwand: t Bit-Vergleicher, kein Assoziativspeicher! Einführung in die Technische Informatik - WS 11/12 Speicher 65 n-Wege teilassoziativer Cache (1) • Mischform aus einem vollassoziativen und einem direkt abbildenden Cache: Der Cache wird nun in n Partitionen (Sets) der Größe SC / n unterteilt (n-Way Set-Associative Cache). Jede Partition ist ein direkt abbildender Cache; assoziativer Zugriff auf entsprechende Zeilen aller n Partitionen. • Jede Hauptspeicherzeile kann in einer beliebigen Partition, dort aber nur in einer bestimmten Cache-Zeile abgespeichert werden. Bei einer Kollision kann eine andere Partition ausgewählt werden, sofern dort in der entsprechenden Zeile ein Eintrag kollisionsfrei möglich ist. Einführung in die Technische Informatik - WS 11/12 Speicher 66 n-Wege teilassoziativer Cache (2) • Bei einem Hauptspeicher der Größe SM = 2w Byte und einem nWege teilassoziativem Cache mit c = 2k Zeilen je Partition und Cache-Zeilen aus m = 2d Byte ist ein Tag von t = w – k – d Bit erforderlich. Resultierende Cache-Gesamtgröße: SC = n c m Byte = n 2k 2m Byte Beispiel: 32-Bit Adressen (w = 32), 2-Wege teilassoziativer Cache der Größe 128 KByte, d.h. 2 Partitionen à 64 KByte mit jeweils c = 4096 Zeilen (k = 12) und Cache-Zeilen aus m = 16 Bytes (d = 4) • Adressbildung erfolgt somit wie bei einem direkt abbildendem Cache der Größe SC / n. Einführung in die Technische Informatik - WS 11/12 Speicher 67 n-Wege teilassoziativer Cache (3) • Aufbau und Arbeitsweise eines 2-Wege teilassoziativen Caches der Größe 128 KByte mit Zeilen à 16 Byte: Einführung in die Technische Informatik - WS 11/12 Speicher 68 n-Wege teilassoziativer Cache (4) • Insgesamt s Hauptspeicherzeilen mit gleichem Indexanteil (d.h. mit Adress-Distanz 2w t) konkurrieren um n Cache-Zeilen! Allgemein gilt n << s, d.h. Konflikte sind möglich, aber seltener als beim direkt abbildenden Cache. • Man kann sich Hauptspeicher wie beim direkt abbildendem Cache in s = 2t Segmente der Größe SM / s unterteilt vorstellen: Beim Eintrag der i-ten Hauptspeicherzeile des j-ten Segmentes entspricht i dem Index. Es wird eine Partition ermittelt, in der eine Cache-Zeile mit Index i frei ist, j wird dort als Tag eingetragen. • Bei einem Cache-Zugriff müssen die t-Bit Tags aller n Zeilen mit den zugehörigen t Bit der Adresse verglichen werden. n parallele Vergleiche, Aufwand: n t Bit-Vergleicher Einführung in die Technische Informatik - WS 11/12 Speicher 69 Lese- und Schreibzugriffe (1) • Folgende Situationen können bei einem Lesezugriff auf eine Cache-Zeile auftreten: Read Hit: Bei einem erfolgreichen Lesezugriff (d.h. Tag und die zugehörigen Adress-Bits stimmen überein) wird ein Datum aus typisch 1, 2, 4, 8 oder m Bytes aus der Cache-Zeile in den Befehlspuffer bzw. in ein Register der CPU geladen. Read Miss: Bei einem erfolglosen Lesezugriff auf Adresse a wird stets eine komplette Cache-Zeile mit m Bytes (Burst-Modus!) ab der Adresse a – a mod m aus dem Hauptspeicher bzw. aus dem Cache der nächsten Hierarchie-Stufe eingelesen. muss gegebenenfalls eine Cache-Zeile ersetzt werden, typischerweise gemäß der LRU-Strategie (Least Recently Used ). – Ersetze jene Zeile, auf die am längsten nicht mehr zugegriffen wurde. – In der Praxis oft nur approximierter LRU oder zufälliges Ersetzen. Einführung in die Technische Informatik - WS 11/12 Speicher 70 Lese- und Schreibzugriffe (2) • Folgende Situationen können bei einem Schreibzugriff auf eine Cache-Zeile auftreten: Write Hit : Bei erfolgreichem Schreibzugriff auf Adresse a wird ein Datum aus typisch 1, 2, 4 oder 8 Byte im Cache aktualisiert und die komplette Cache-Zeile wird entweder unmittelbar in den Hauptspeicher zurück geschrieben (Write Through), oder durch ein zusätzliches Flag (Dirty Bit) markiert und erst später bei Verdrängung in den Hauptspeicher zurück geschrieben (Write Back). Write Miss : Bei erfolglosem Schreibzugriff wird entweder der Eintrag zunächst aus dem Speicher geholt und dann wie bei einem Write Hit aktualisiert (Fetch on Write), oder der Eintrag wird nur im Hauptspeicher ohne Modifikation des Caches aktualisiert (Write Around). • Hinweis: Bei modernen Multicore-Prozessoren wird die Verwaltung noch komplizierter da jeder Core einen eigenen Cache besitzt. Zusätzliche Cache-Kohärenz Protokolle! Einführung in die Technische Informatik - WS 11/12 Speicher 71 Verhalten von Caches (1) • Faustregeln Ein 2-Wege teilassoziativer Cache hat typischerweise eine Miss Rate wie ein doppelt so großer direkt abbildender Cache! Ein 8-Wege teilassoziativer Cache weist für die meisten Anwendungen ungefähr eine Miss Rate wie ein vollassoziativer Cache auf! • 3 Ursachen für Cache-Fehlzugriffe (3 „C“s) Bei Erstbelegung nach Programmstart (Compulsory) Wenn wegen zu geringer Kapazität Verdrängungen benötigter Zeilen auftreten (Capacity). Wenn benötigte Zeilen wegen Konflikten verdrängt werden (Conflict). Einführung in die Technische Informatik - WS 11/12 Speicher 72 Verhalten von Caches (2) • Miss-Rate in Abhängigkeit von der Cache-Größe und der Assoziativität (für bestimmte Benchmarks): Einführung in die Technische Informatik - WS 11/12 Speicher 73 Verhalten von Caches (3) • Typische Fehlzugriffsrate in Abhängigkeit von Ursache, CacheGröße und -Typ (ermittelt für Spec2000 Benchmark, Patterson 2009) • Fehlzugriffsrate sinkt deutlich bei Vergrößerung des Caches! • Fehlzugriffe durch Erstbelegung sind für viele Anwendungen vernachlässigbar! Einführung in die Technische Informatik - WS 11/12 Speicher 74 Verhalten von Caches (4) • Fazit: Eine gut dimensionierte Cache-Hierarchie kann durch Ausnutzung von zeitlicher und räumlicher Lokalität in Programmen und des Burst-Modus bei ausreichend hoher Eintragsgröße die Nachteile von langsamen DRAM-Bausteinen weitgehend verdecken! Einführung in die Technische Informatik - WS 11/12 Speicher 75 Cache-Optimierungen in Programmen (1) • Einfügen von Prefetch-Instruktionen, d.h. benötigte Daten werden schon vorab in den Cache geholt. Automatisch vom Compiler oder manuell im Assemblerprogramm! • Erhöhung der Lokalität beim Zugriff auf Daten: Beispiel 1: Merging Beispiel 2: Loop Interchange /* vorher: */ char *name[100]; int personalnummer[100]; /* vorher: */ for (j=0;j<100;j=j+1) for (i=0;i<5000;i=i+1) x[i][j] = 2*x[i][j] /* nachher: */ struct person { char *name; int personalnummer; }; struct person personal[100]; Einführung in die Technische Informatik - WS 11/12 /* nachher: */ for (i=0;i<5000;i=i+1) for (j=0;j<100;j=j+1) x[i][j] = 2*x[i][j] Speicher 76 Cache-Optimierungen in Programmen (2) • Vermeidung von Cache-Konflikten Die Wahrscheinlichkeit für Verdrängungen durch Cache-Konflikte kann z.B. steigen, wenn die Größe einer Dimension eines mehrdimensionalen Feldes einer Zweierpotenz entspricht, die Elemente mehrerer Felder, deren Größe jeweils einer Zweierpotenz entspricht, verknüpft werden. Lösung: Einfügen von Füllworten (Padding), z.B. Durch Erhöhen der Feldgröße auf einen Wert, der keine Zweierpotenz darstellt. Durch Einfügen zusätzlicher Variablen zwischen der Deklaration von Feldern. Einige Compiler für Höchstleistungscomputer können ein Padding auch automatisch durchführen. Einführung in die Technische Informatik - WS 11/12 Speicher 77 Speicherarchitektur eines PC (1) Einführung in die Technische Informatik - WS 11/12 Speicher 78 Speicherarchitektur eines PC (2) • Beispiel: Floorplan (Core i7) Einführung in die Technische Informatik - WS 11/12 Speicher 79 Speicherarchitektur eines PC (3) • Beispiel: Cache-Hierarchie eines Intel Core i7 Prozessors: L1 Cache-Typ 4-Wege (I) / 8-Wege (D) Cache-Größe 32 KB (I) / 32 KB (D) Zugriffslatenz 4 Zyklen, pipelined Ersetzung Pseudo-LRU Einführung in die Technische Informatik - WS 11/12 L2 8-Wege 256 KB 10 Zyklen Pseudo-LRU Speicher L3 16-Wege 2 MB (per Core) 35 Zyklen Pseudo-LRU (+ zusätzlicher Algorithmus) 80