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