22.08.2013 Aufrufe

Speicher

Speicher

Speicher

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!