, Franz J. Hauck, Verteilte Systeme, Univ. Ulm, [2005w-TI2-E-Mem.fm, ]

Ähnliche Dokumente
6 Exkurs: Assoziativspeicher

6 Exkurs: Assoziativspeicher (2) 6 Exkurs: Assoziativspeicher. 7.1 Speicherhierarchie. 7 Caches

B Hauptspeicher und Cache

B Hauptspeicher und Cache

E Hauptspeicher und Cache

E Hauptspeicher und Cache

RO-Tutorien 3 / 6 / 12

Hauptspeicher H.1.1 Einordnung Organisation und Verhalten von Hauptspeichermodulen. Caches und assoziative Speicherung. Höhere Informatik :

Besprechung des 7. Übungsblattes Speicheraufbau Speichertypen DRAM Speicherbelegung

Rechnerstrukturen. 5. Speicher. Inhalt. Vorlesung Rechnerstrukturen Wintersemester 2002/03. (c) Peter Sturm, Universität Trier 1.

Erweiterung von Adressraum und Bit Tiefe

Speicher: RAMs, ROMs PROMS, EPROMs, EEPROMs, Flash EPROM

Speicher Typen. TI-Übung 5. Speicher SRAM. Speicher DRAM. SRAM vs. DRAM (EEP)ROM, NV-RAM, Flash,... Speicher, Caches

Rechnerstrukturen Winter SPEICHER UND CACHE. (c) Peter Sturm, University of Trier 1

Digitaltechnik II SS 2007

Digitaltechnik II SS 2007

Mikroprozessortechnik Grundlagen 1

Rechnerorganisation. 1. Juni 201 KC Posch

Ergänzung: RAM und ROM. SS 2012 Grundlagen der Rechnerarchitektur Speicher 72

Fachbereich Medienproduktion

G. Caches. G.1.1 Kontext & Orientierung

4 DRAM-Varianten (2) 4 DRAM-Varianten. 4 DRAM-Varianten (4) 4 DRAM-Varianten (3)

Quiz. Gegeben sei ein 16KB Cache mit 32 Byte Blockgröße. Wie verteilen sich die Bits einer 32 Bit Adresse auf: Tag Index Byte Offset.

Grob-Struktur des Prozessor-Speichersystems

Virtueller Speicher und Memory Management

Tutorium Rechnerorganisation

Rechnernetze und Organisation

In heutigen Computern findet man schnellen/teuren als auch langsamen/billigen Speicher

Cache Grundlagen. Schreibender Cache Zugriff. SS 2012 Grundlagen der Rechnerarchitektur Speicher 22

Besprechung des 8. Übungsblattes Einführung in Caches Cache-Organisation Cache-Ersetzungsstrategien Aufgaben (an der Tafel) Testklausur

Digital Design Entwicklung der DRAMs. Richard Roth / FB Informatik und Mathematik Speicher 1

Speicher (1) zur Realisierung eines Rechnerspeichers benötigt man eine Materie mit physikalischen Eigenschaften, die

RAM - Random Access Memory

einfache DRAMs sind heute nicht mehr erhältlich, sondern nur noch die schnelleren DRAM-Varianten...

Ram/Rom/EPRom WIRTSCHAFTSINGENIEURSWESEN. Ausbildungsschwerpunkte: BETRIEBSMANAGEMENT LOGISTIK. Xaver Schweitzer. Jahr: 2011/12

2. Ansatzpunkt: Reduktion der Penalty Early Restart und critical word first

Grundlagen der Rechnerarchitektur. Speicher

G. Caches. G.1.1 Kontext & Orientierung

CPU Speicher I/O. Abbildung 11.1: Kommunikation über Busse

é Er ist software-transparent, d.h. der Benutzer braucht nichts von seiner Existenz zu wissen. Adreßbus Cache- Control Datenbus

RO-Tutorien 15 und 16

Tutorium Rechnerorganisation

Cache-Speicher. Design Digitaler Systeme. Prof. Dr.-Ing. Rainer Bermbach

Cache Blöcke und Offsets

Proseminar Konzepte von Betriebssystem- Komponenten (KVBK) Vortrag zum Thema: Speicheraddressierung, Segmentierung, Paging

Technische Grundlagen der Informatik

Adressierung von Speichern und Eingabe- Ausgabegeräten

Elektrizitätslehre und Elektronik. Halbleiterspeicher

Arithmetische und Logische Einheit (ALU)

Elektronischer Speicher

, 2014W Übungsgruppen: Mo., Mi.,

Besprechung des 9. Übungsblattes Virtuelle Speicherverwaltung Aufgaben

Technische Informatik 1 - HS 2017

F Programmierbare Logikbausteine

DIE EVOLUTION DES DRAM

Teil 2: Speicherstrukturen

Vorlesung: Rechnerstrukturen, Teil 2 (Modul IP7)

Halbleiterspeicher. Halbleiterspeicher

Vorlesung: Rechnerstrukturen, Teil 2 (Modul IP7)

Enterprise Computing Einführung in das Betriebssystem z/os. Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth WS2012/13

F Programmierbare Logikbausteine

Mikroprozessoren Grundlagen AVR-Controller Input / Output (I/O) Interrupt Mathematische Operationen

Modul 304: Personalcomputer in Betrieb nehmen Thema: Speicher. Speicher / Memory V 1.0. Technische Berufsschule Zürich IT Seite 1

Grundlagen der Rechnerarchitektur

Speicherkapazität und Zugriffszeit einiger. Informationsspeicher. Informationsspeicher

Technische Grundlagen der Informatik

Übung Praktische Informatik II

Speicherhierarchie. [Technische Informatik Eine Einführung] Univ.-Prof. Dr. Paul Molitor

Speicher. Speicher. Speicherhierarchie. Speicher. Interessante Zahlen:

Speicherverwaltung. Design Digitaler Systeme. Prof. Dr.-Ing. Rainer Bermbach

Rechnerstrukturen. 5. Speicher. Inhalt. Vorlesung Rechnerstrukturen. Motivation. Speichertypen. Cache-Speicher. Virtueller Speicher

Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung

Wie groß ist die Page Table?

Vorlesung. Technologische Grundlagen der Informationsverarbeitung. Speicherung von Daten. Dipl.-Ing. Gert Martin

Naiver Ansatz. Blöcke und Seiten. Betriebssysteme I Sommersemester 2009 Kapitel 6: Speicherverwaltung und Dateisysteme

Halbleiterspeicher. Halbleiterspeicher Michael Kuhfahl 1

Grundlagen der Informatik III Wintersemester 2010/2011

Notizen-Neuerungen PC- HAUPTSPEICHER

Proseminar Konzepte von Betriebssystem-Komponenten (KVBK) Vortrag zum Thema: Speicheraddressierung, Segmentierung, Paging Von Christian Hubert

Zwei Möglichkeiten die TLB zu aktualisieren

In diesem Abschnitt werden wir einige Schaltwerke kennenlernen, die als Basisbauteile überall im Aufbau digitaler Schaltungen verwendet werden.

Grundlagen der Rechnerarchitektur. Speicher

2. Halbleiterspeicher

Betriebssysteme BS-S SS Hans-Georg Eßer. Foliensatz S: Speicherverwaltung. Dipl.-Math., Dipl.-Inform. v1.0, 2015/04/14

Teil 1: Digitale Logik

Software ubiquitärer Systeme

5 Zusammengesetzte und reguläre Schaltungsstrukturen

1,8V Flash and SRAM 28F3208W30

Tutorium Rechnerorganisation

Grundlagen der Informationsverarbeitung:

Grundlagen der Informatik III Wintersemester 2010/ Vorlesung Dr.-Ing. Wolfgang Heenes

Leichtgewichtsprozesse

Leichtgewichtsprozesse

, 2015W Übungsgruppen: Mo., Mi.,

Transkript:

E Hauptspeicher E.1 1 Einordnung Ebene 1 Ebene 6 Ebene 5 Ebene 4 Problemorientierte Sprache Assemblersprache Betriebssystem Ebene 3 ISA (Instruction Set Architecture) Ebene 2 Ebene 1 Ebene Mikroarchitektur Digitale Logik Physik E.2

2 Einführung Technologien zum Speichern von Daten Modifikation von Strukturen: Lochkarte, Schallplatte Rückkopplung: Flip-Flops, SRAM elektrische Ladungen: Kondensator, DRAM Magnetismus: Magnetkernspeicher, Magnetband, Diskette, Festplatte Optik: Bar-Codes, CD-ROM, DVD Vergleichskriterien Kapazität Geschwindigkeit Speicherdichte Energiebedarf Robustheit Kosten E.3 2 Einführung (2) Speicherhierarchie bis zu sechs Ebenen in modernen Systemen unterscheidbar 1 ns Register Zugriffsart 1 Byte 5 ns Cache wahlfrei 1 MByte Zugriffszeit 5 ns 1 ms Hauptspeicher Festplatte 1 GByte 1 GByte Kapazität 1 ms CD-ROM/DVD seriell [1 GByte] 1 s Magnetbänder 1 TByte E.4

2.1 Begriffe RAM (Random Access Memory) wahlfreier Zugriff Zugriffe dauern alle etwa gleich lang vgl. Plattenzugriffe, Bandzugriffe lesende und schreibende Zugriffe möglich SRAM (Static RAM) statischer RAM-Speicher DRAM (Dynamic RAM) dynamischer RAM-Speicher E.5 2.1 Begriffe (2) ROM (Read Only Memory) zur lesender Zugriff möglich PROM (Programmable Read Only Memory) programmierbarer ROM-Speicher (einmalig beschreibbar) z.b. maskenprogrammiert bei Chip-Herstellung EPROM (Eraseable PROM) mit UV-Licht löschbarer PROM-Speicher elektrisch programmierbar (durch zusätzliche Steuerleitungen) EEPROM (Electrically Eraseable PROM) elektrisch lösch- und beschreibbarer Speicher E.6

2.1 Begriffe (3) Flash-Speicher Eigenname wie EEPROM jedoch höhere Packungsdichte NV-RAM (Non Volatile RAM) normalerweise SRAM mit eingebautem EEPROM zur Rettung der Daten bei Stromverlust Batteriegepuffertes RAM integrierte Batterie sorgen für Erhalt der Daten E.7 2.1 Begriffe (4) Einteilung des Speichers in flüchtigen Speicher: SRAM, DRAM, SDRAM, Informationen gehen nach Ausschalten der Versorgungsspannung verloren! nichtflüchtige Speicher: PROM, EPROM, EEPROM, Informationen bleiben auch ohne Versorgungsspannung über längere Zeit (typischerweise einige Jahre) erhalten! Messung der Kapazität von Speicherbausteinen in kbyte: 1 kbyte = 124 Byte = 2 1 Byte MByte: 1 MByte = 124 KByte = 124 x 124 Byte = 2 2 Byte = = 1.48.576 Byte GByte: 1 GByte = 124 MByte = 124 x 124 x 124 Byte = 2 3 Byte = = 1.73.741.824 Byte E.8

2.2 Geschwindigkeit Zugriffszeit, t ac Zeitspanne vom Anlegen einer Speicheradresse bis zum Vorliegen der Daten (Lesezugriff) Zykluszeit, t cycle Zeitspanne vom Anlegen einer Adresse bis zum möglichen Anlegen der nächsten Adresse Beispiel für Zeitdiagramm CS Adressen Daten t ac t cycle E.9 3 SRAM Static Random Access Memory (SRAM) auf Flip-Flop-Prinzip basierender Speicher (vgl. TI1 Folie H.6 vom SS 25) Write D in D Q C D out Aufbau einer Speicherzelle in verschiedenen Technologien z.b. in CMOS-Technik E.1

3.1 SRAM-Zelle SRAM-Zelle mit zwei Invertern Select bit bit Inverterausgänge werden stabil (Flip-Flop, zwei stabile Zustände) mit Select-Leitung kann Flip-Flop mit Leitungen bit und bit verbunden werden E.11 3.1 SRAM-Zelle (2) Schreiben in Zelle Leitungen bit und bit werden verschieden beschaltet (,1) oder (1,) Select-Leitung wird auf 1 gesetzt Inverter schwingen in den einen bzw. anderen stabilen Zustand ein Rücknahme der Select-Leitung möglich Zustand bleibt erhalten solange Betriebsspannung angelegt Lesen von Zelle Leitungen bit und bit werden mit 1 beschaltet und Select wird kurz mit 1 beschaltet Inverter versuchen eine der beiden Leitungen auf Masse zu ziehen geringer Spannungsabfall kann registriert werden oder 1 wird erkannt aufwändige Verstärkerschaltung notwendig E.12

3.1 SRAM-Zelle (3) Schreiben einer SRAM-Zelle 1 Select bit bit Inverter schwingen sich schnell ein Inverter halten Zustand auch nach Abschalten von Select E.13 3.1 SRAM-Zelle (4) Typischer Aufbau mit 6 Transistoren Vcc Select Gnd bit bit MOSFET-Transistoren (Polung vereinfacht dargestellt) E.14

3.2 SRAM-Speicher Typischer Aufbau eines SRAM-Speichers WE D3 D2 D1 RW-Logik RW-Logik RW-Logik D RW-Logik A A1 Adress-Decoder Zelle Zelle Zelle Zelle R-Sensor Zelle Zelle Zelle Zelle R-Sensor Zelle Zelle Zelle Zelle R-Sensor Zelle Zelle Zelle Zelle R-Sensor Wort Wort 1 Wort 2 Wort 3 D3 D2 WE (Write Enable) zeigt Schreibvorgang an D1 D E.15 3.2 SRAM-Speicher (2) Datenleitungen gemeinsame Nutzung einer Leitung für Lesen und Schreiben CS (Chip Select) zeigt an, ob Chip angesprochen oder nicht zusammen mit WE ergibt sich Signal zur Freischaltung der Datenleitung für Lesezugriff: WE CS (Datenleitung wird Ausgang) D i SRAM-Spalte WE CS E.16

3.2 SRAM-Speicher (3) Chip-Aufbau Zellen sind zeilen- und spaltenweise angeordnet für jede Spalte eine Datenleitung notwendig für 2 n Zeilen sind n Adressleitungen notwendig Beispiele für Chip-Aufbau von MBit-Speicherchips 256k x 4 256 x 124 Worte à 4 Bit (18 Adress-, 4 Datenleitungen) 512k x 2 512 x 124 Worte à 2 Bit (19 Adress-, 2 Datenleitungen) 1M x 1 124 x 124 Worte à 1 Bit (2 Adress-, 1 Datenleitung) Geschwindigkeit typische Zugriffs- und Zykluszeit: 1ns E.17 3.3 Verbesserungen Output-Enable-Steuerleitung (OE) eigene Steuerleitung zum Schalten des Tri-State-Puffer zur Ausgabe Überlappung von Adressdecodierung, Speicherzugriff und Ausgabe auf Datenbus möglich SSRAM (Synchronous SRAM) Taktleitung Synchronität mit Prozessortakt gesteuerte Überlappung möglich Burst-Modus interner Zähler sorgt für Inkrementierung der Adresse kein Anlegen einer neuen Adresse erforderlich Speicher liefert zwei oder vier Datenworte von aufeinanderfolgenden Adressen (setzt Taktung voraus) E.18

3.4 Einsatz SRAM-Eigenschaften schneller Zugriff z.b. 1ns auf externem Baustein im Prozessor integriert noch schneller großer Platzbedarf auf dem Chip großer Energiebedarf unempfindlich gegen Strahlung und Einstreuung teuer Einsatz schneller Hauptspeicher (z.b. Hochleistungsrechner) Cachespeicher (Level 1 und 2 Caches) Mission-Critical-Applications (z.b. Weltraumanwendung) E.19 4 DRAM Dynamic Random Access RAM (DRAM) Speicher basiert auf in einem Kondensator gespeicherter Ladung Problem: Ladung hält sich nur wenige Millisekunden Speicher muss periodisch aufgefrischt werden 4.1 DRAM-Zelle Transistor und Kondensator Bit Kondensator / Kapazität Select Gnd C E.2

4.1 DRAM-Zelle (2) Schreiben einer DRAM-Zelle Bit-Leitung auf 1 oder setzen (mit Vcc oder Gnd verbinden) Select-Leitung ansteuern Kapazität aufladen oder entladen Lesen einer DRAM-Zelle Select-Leitung ansteuern Ladung des Kondensators über Bit-Leitung messen einfache Verstärkerschaltung Lesevorgang zerstört Ladung anschließendes Rückschreiben des gelesenen Wertes Auffrischung periodisches Lesen der DRAM-Zelle gleicht Ladungsverlust aus E.21 4.2 Typischer DRAM-Speicher Matrixaufbau eines DRAM-Speichers A5 A4 A3 Zeilen-Adress-Decoder Spalten-Adress-Decoder / RW-Logik A2 A1 A D RAS CAS WE E.22

4.2 Typischer DRAM-Speicher (2) Multiplexed Interface anlegen der ersten Hälfte der Adressbits im ersten Schritt Steuerleitung RAS (Row Access Strobe) signalisiert anlegen der zweiten Hälfte der Adressbits im zweiten Schritt Steuerleitung CAS (Column Access Strobe) signalisiert Erster Schritt Zeilenadressdecoder liefert Select-Leitung für eine Zeile komplette Zeile wird in einen Zwischenpuffer übernommen und zurückgeschrieben Zweiter Schritt aus dem Zwischenpuffer wird ein Bit ausgelesen Schritt kann mehrfach wiederholt werden (mehrere aufeinanderfolgende Bits können gelesen werden) E.23 4.2 Typischer DRAM-Speicher (3) Chip-Aufbau ähnlich SRAM gibt es verschiedene Konfigurationen Datenbreite kann unterschiedlich sein für jedes Datenbit gibt es eine Matrix (Pane) Auffrischung heute auf dem DRAM-Speicher integriert früher durch externe Bausteine ausgelöst 4.3 Eigenschaften von DRAM-Speichern Weniger Platzbedarf Integrationsdichte höher (25% von SRAM Speichern) langsamerer Zugriff E.24

4.4 Zusammenschaltung von Speicherbausteinen Verbreitern des Datenwortes z.b. vier Bausteine mit 256k Worten à 4 Bit für Speicher mit 256k Worten à 16 Bit A 17 A 256k x 4 256k x 4 256k x 4 256k x 4 RAS CAS D 15 D 12 D 11 D 8 D 7 D 4 D 3 D alle Bausteine gleich beschaltet Zusammenfassen der Datenleitungen E.25 4.4 Zusammenschalten von Speicherbausteinen (2) Erhöhung der Anzahl der Speicherworte z.b. vier Bausteine mit 256k Worten à 4 Bit für Speicher mit 1M Worten à 4 Bit A 17 A A 19 A 18 RAS CAS S1 S S1 S 1 2 3 1 2 3 Decoder 256k x 4 256k x 4 256k x 4 256k x 4 D 3 D E.26

4.5 Verbesserungen Mehrfache Anwendung des zweiten Zugriffschrittes Halbierung der Zugriffszeit (bei ständigen Zugriffen auf aufeinanderfolgende Adressen) normal 6 7 ns auf Folgeadressen 3 35 ns Überlappung der Zugriffe Daten stehen länger am Datenbus CAS-Schritt kann überlappend für nächsten Zugriff erfolgen EDO-DRAM (Extended Data Out DRAM) E.27 4.5 Verbesserungen (2) SDRAM (Synchronous DRAM) getaktetes DRAM alle Steuerleitungen werden getaktet verwendet Daten werden bei steigender Taktflanke ausgegeben Dauer zwischen CAS-Schaltung und Datenausgabe 2 3 Takte abhängig von eingestellter CAS-Latenz automatische Ausgabe der Folgedaten durch Stehenlassen des CAS-Signals in weiteren Takten schneller Zugriff, da Pufferregister in SRAM-Technologie Zugriffszeit erstes Wort: 6 ns (16 MWorte/s) Folgewort: 7,5 ns (133 MWorte/s) E.28

4.5 Verbesserungen (3) DDR-SDRAM (Data Double Rate SDRAM) gleicher Systemtakt jedoch doppelte Datenrate Auslesen von zwei aufeinanderfolgenden Adressen Datenwort bei steigender und fallender Taktflanke Zugriffszeit erstes Wort: 6 ns (16 MWorte/s) Folgewort: 3,75 ns (266 MWorte/s) Achtung Versprechen aus der Werbung: 3,75 ns Zugriffszeit tatsächlich nur für Folgezugriffe mit aufsteigenden Adressen erster Zugriff kostet nach wie vor 6 ns DRAM-Prinzip unverändert E.29 4.5 Verbesserungen (4) RAMBUS (Eigenname) Vorschlag von Intel und Rambus komplexes Speicherinterface Pipelining-Technik beim Speicherzugriff 8 überlappend ausgeführte Speicherzugriffe höherer Systemtakt bis zu 8 MHz doppelter Datenbus 16 Bit statt 8 Bit Zugriffszeit erstes Wort: <4 ns (>25 MWorte/s) Folgewort: 1,25 ns (8 MWorte/s) E.3

4.5 Verbesserungen (5) Hauptsächlich Verbesserungen an der Speicherschnittstelle Kern des DRAM ist im Wesentlichen gleich geblieben Verbesserungen nur bei Folgezugriffen wahlfreie Zugriffe brauchen immer noch lange Folgezugriffe jedoch häufig durch Einsatz von Caches Caches speichern nicht individuelle Speicherstellen sondern Zeilen à 16 Byte E.31 5 Exkurs: Assoziativspeicher Inhaltsadressierbarer Speicher, CAM (Content-Adressed Memory) Adressierung herkömmlichen Speichers: Adresse Speicherinhalt (genau ein Ergebnisdatum) Adressierung eines Assoziativspeichers: Schlüsseldaten Speicherinhalt (kein Ergebnis, ein Ergebnis, mehrere Ergebnisse) Schneller Zugriff auf Daten, die teilweise bekannt, deren Adressen im Speicher jedoch unbekannt sind. Konzept bereits 1943 durch Konrad Zuse bekannt gemacht erst mit Halbleitertechnik in Hardware implementiert E.32

5 Exkurs: Assoziativspeicher (2) Einsatz effizientes Suchen (z.b. Datenbanken, Künstlicher Intelligenz ) Heute weitgehend ersetzt durch schnelle Algorithmen unter Verwendung konventionellen Speichers z.b. Hashing-Techniken Aufbau eines Assoziativspeichers zeilenweiser Aufbau Zeile besteht aus k Bit Schlüssel (Key) und n Bit Daten E.33 5 Exkurs: Assoziativspeicher (3) Aufbau (fortges.) Key Maske Binärcodierung 1111 111 11111 111 1111 1111 11111 111 111111 11111 11111111 11111 111111 11111111 Kontrolllogik 1 Trefferregister binäre Codierung der Daten, des Schlüssels und der Suchmaske Suche durch Maske eingeschränkt auf bestimmte Bits des Schlüssels 1111 11111 k Bit n Bit Ausgaberegister E.34

5 Exkurs: Assoziativspeicher (4) Suche Eingabe des Suchschlüssels und einer Suchmaske z.b. speicheradressiert über spezielle Adresse parallele oder teilparallele Suche in allen Zeilen nach passendem Muster Trefferregister hat jeweils 1 Bit für alle gefundenen Zeilen Auslesen der Ergebnisse sequentielles Ergebnisauslesen anhand Trefferregister gesteuert durch spezielle Steuerlogik Auslesen durch spezielles Ausgaberegister z.b. speicheradressiert über spezielle Adresse E.35 6 Caches Erhöhte Anforderungen an Speicher superskalare Prozessoren und Out-Of-Order-Execution benötigen mehr Befehle pro Zeiteinheit kürzere Zugriffszeit höhere Transferrate Verbesserungen an der DRAM-Speichertechnik sind nicht ausreichend Ziel trotz DRAM-Speicher soll Speicherzugriff ähnlich schnell wie auf SRAM-Speicher funktionieren Einsatz einer Speicherhierarchie mit gestaffelt schnellen Speichertechnologien E.36

6.1 Speicherhierarchie Speicherhierarchie eines modernen Prozessorsystems CPU-Kern L1-Cache L1-Cache Daten- und Befehlszugriffe getrennt SRAM (8 64 kbyte, 1 3 Takte Zugriffszeit) L2-Cache SRAM (256 16386 kbyte, 3 6 Takte) L3-Cache SRAM (4 64 MByte, 12 15 Takte) Hauptspeicher DRAM (64 MByte 8 GByte, 25 4 Takte) L3-Cache nur bei einigen Prozessoren (z.b. Intel XEON SMP) SMP = Symmetric Multiprocessing E.37 6.2 Cache-Aufbau Cache ist ein Assoziativspeicher für Speichereinträge des Hauptspeichers Schlüssel (Key, Tag) entspricht Speicheradresse Daten entsprechen dem Speicherinhalt Ungültige Einträge werden nicht aus dem Cache gelöscht stattdessen V-Flag (Valid) pro Eintrag wird gelöscht Aufbau im Detail üblicherweise c = 2 d Einträge (Zeilen, Cache-Lines, Cache-Blocks) Datenbereich der Breite m = 2 n (üblich 8, 16, 32 Bytes, d.h. 64, 128, 256 Bits) Schlüsselbereich der Breite t 1 V-Flag pro Eintrag Cache-Größe: S C = m c E.38

6.3 Vollassoziativer Cache Cache-Zeile kann entsprechende Hauptspeicherinhalte speichern Hauptspeicherinhalt von m = 2 n ab Adresse a wird in beliebiger Cache-Zeile gespeichert es muss gelten amod m= ansonsten Speicherung über zwei Cache-Zeilen Schlüsselbreite t ergibt sich aus Hauptspeichergröße S M = 2 w (in Byte) mit t = w n Beispiel: 32 Bit Adressen, 16 MByte Hauptspeicher ( w = 24), 4 kbyte Cache-Größe (256 Einträge à 16 Byte, n = 4) Adressbildung 31 23 15 7 3 Tag unbenutzt Byteauswahl in der Cache-Zeile E.39 6.3 Vollassoziativer Cache (2) Cache-Aufbau Index V Tag Daten 3 2 44 94 a9 11 a1 8a 1 1 3 2 12 94 38 ef a1 c9 8a 2 1 2 48 61 6b 6b 7 1 ff 1 48a 1 2 3 4 ff fe Cache Hauptspeicher 1 2 3 b a 2 3 4 ff fe 48 61 6b 6b 7 1 2 12 94 38 ef a1 c9 8a E.4

6.3 Vollassoziativer Cache (3) Niedrigen n Bits der Adresse nicht im Tag enthalten dienen zur Auswahl eines Bytes aus Cache-Zeile Cache-Zugriff alle Einträge mit V-Flag = 1 werden parallel mit Zugriffsadressen verglichen, um Cache-Zeile zu finden Aufwand: ( w n) c 1 Bit Vergleicher, c Bit breites Trefferregister, UND- und ODER-Kaskade zur Erzeugung eines Cache Hit -Signals Alternative teilparallele oder sequentielle Vergleiche erhebliche Ineffizienz Vollassoziative Caches nur bei kleinen Caches möglich sonst zu langsam wg. Gatterlaufzeiten (Takt!) E.41 6.4 Direkt abgebildeter Cache Unterteilung des Hauptspeichers in gleich große Segmente Hauptspeichergröße S M = (in Byte) Aufteilung in s gleich große Segmente (Größe des Caches) es muss gelten S M = s S C Beispiel: 32 Bit Adressen, 16 MByte Hauptspeicher ( w = 24), 4 kbyte Cache-Größe (256 Einträge à 16 Byte, n = 4), Anzahl der Segmente s = 496 ( s = 2 12 ) Adressbildung 2 w 31 23 15 7 3 Tag Index unbenutzt Byteauswahl in der Cache-Zeile Index-Anteil bestimmt Cache-Zeile für Speicherung im Cache E.42

6.4 Direkt abgebildeter Cache (2) Cache-Aufbau Index V Tag Daten Hauptspeicher 1 1 1 1 2 ff 1 fff Cache 2 12 94 ff c9 8a 2 ce 94 38 c9 8a 2 12 94 38 c9 8a 33 1 2 a fe 1 1 ff 1 1ff 2 44 94 a9 de 8a 2 ce 94 38 c9 8a 71 1 2 ff fe 2 12 94 ff c9 8a 33 1 2 a fe Tags fff ff f ff fff 2 12 d a c9 8a 44 33 a 89 ff fe E.43 6.4 Direkt abgebildeter Cache (3) Nur eine Cache-Zeile für s Hauptspeicherzeilen vorhanden alle Hauptspeicherzeilen mit gleichem Index-Anteil der Adresse teilen sich eine Cache-Zeile mit gleichem Index (Konflikte möglich) Zugriff auf Hauptspeicher Auswahl der i-ten Hauptspeicherzeile im j-ten Segment i entspricht Index im Cache j entspricht Tag im Cache Suche im Cache kein Assoziativspeicher lediglich Vergleich ob Tag bei Index i gleich j Konfliktauflösung z.b. Cache-Eintrag freigeben und erneut belegen E.44

6.5 n-wege teilassoziativer Cache Mischung von vollassoziativem und direkt abgebildetem Cache Zerteilung des Caches in n gleich große Partitionen (Sets) der Größe Engl.: n-way Set-Associative Cache jedes Set bildet einen direkt abgebildeten Cache zwischen den Sets zeilenweise assoziativer Zugriff S C n Cache-Eintrag mit bestimmtem Index kann theoretisch in jedem der Sets gespeichert werden bei Kollisionen: Suche eines Sets, in dem Eintrag kollisionsfrei möglich ist E.45 6.5 n-wege teilassoziativer Cache (2) Beispiel: 32 Bit Adressen, 16 MByte Hauptspeicher ( w = 24), 8 kbyte Cache-Größe (2 Sets, insgesamt 512 Einträge à 16 Byte, n = 4), Anzahl der Segmente s = 496 ( s = 2 12 ) Cache-Größe verdoppelt, damit Anzahl der Segment gleich bleibt (Indizes von bis 255) Adressbildung nach wie vor 31 23 15 7 3 Tag Index unbenutzt Byteauswahl in der Cache-Zeile E.46

6.5 n-wege teilassoziativer Cache (3) Cache-Aufbau Index V Tag Daten Hauptspeicher 1 2 ff 1 ff 1 1 1 1 fff 1 1 2 12 94 ff c9 8a 2 ce 94 38 c9 8a 2 12 94 38 c9 8a 33 1 2 a fe 2 44 94 a9 de 8a 2 12 94 38 c9 8a 22 43 ab 2 a fe 1 fff 1 ff 1 1ff ff f 2 44 94 a9 de 8a 2 ce 94 38 c9 8a 71 1 2 ff fe 2 12 94 ff c9 8a 33 1 2 a fe 2 12 d a c9 8a 2-Wege teilassoziativer Cache Tags ff fff 44 33 a 89 ff fe E.47 6.5 n-wege teilassoziativer Cache (4) Zeilen mit gleichem Index von allen Sets bilden Assoziativspeicher Zugriff auf Hauptspeicher Auswahl der i-ten Hauptspeicherzeile im j-ten Segment i entspricht Index im Cache j entspricht Tag im Cache Suche im Cache Assoziativspeicher: alle Sets untersuchen Zeilen i jedes Sets auf Tag j vergleichen Aufwand n t Bit-Vergleicher notwendig Aufwand pro Zugriff auf n parallele Vergleiche beschränkt E.48

6.5 n-wege teilassoziativer Cache (5) Konflikte Anzahl der Sets wesentlich kleiner als Verhältnis Hauptspeicher zu Setgröße S M genauer: n «--------------- = s n S C im Beispiel: 2 «496 Konflikte möglich, jedoch seltener s Hauptspeicherzeilen konkurrieren um n Cache-Zeilen E.49 6.6 Lese- und Schreibzugriffe Lesezugriff auf Adresse a Read Hit: Übereinstimmung des Tags, Daten können zur CPU-transportiert werden (schneller Zugriff) Read Miss: die m Byte Daten werden ab Adresse a a mod m in den Cache geladen (Burst-Mode, schneller Speicherzugriff) gegebenenfalls muss Cache-Zeile ersetzt werden, z.b. nach LRU-Verfahren (Least-Recently-Used) E.5

6.6 Lese- und Schreibzugriffe (2) Schreibzugriff auf Adresse a Write Hit: Übereinstimmung des Tags, Daten werden im Cache aktualisiert (schneller Zugriff) und entweder unmittelbar in den Hauptspeicher zurückgeschrieben (Write Through) oder markiert (Dirty-Bit) und bei Verdrängung der Zeile zurückgeschrieben (Write Back) Write Miss: entweder wird der Cache-Eintrag aus dem Speicher geholt und wie bei Write Hit bearbeitet (Fetch on Write) oder der Speicherzugriff wird direkt im Hauptspeicher ohne Cache- Aktualisierung durchgeführt (Write Around) Statt auf Hauptspeicher kann der Zugriff natürlich auf einen Cache der nächsten Ebene erfolgen E.51 6.7 Verhalten von Caches Faustregeln Ein 2-Wege teilassoziativer Cache hat typischerweise eine Miss Rate wie ein doppelt großer direkt abgebildeteter Cache. Ein 8-Wege teilassoziativer Cache hat für die meisten Anwendungen eine Hit Rate wie ein vollassoziativer Cache. Zugriffszeiten mittlere Speicherzugriffszeit auf L1-Cache: t access = t L1 + mr L1 t Mem mit mr L1 Miss Rate des L1-Cache mittlere Speicherzugriffszeit auf L2-Cache: t access = t L1 + mr L1 ( t L2 + mr L2 t Mem ) mit mr L2 gleich L2 Miss Rate E.52

6.7 Verhalten von Caches (2) Drei Arten von Fehlzugriffen (3 C s) Erstbelegung (Compulsory) erste Einlagerung in Cache nach Programmstart Kapazität (Capacity) zu wenig Cache-Zeilen, daher Verdrängung notwendiger Zeilen Konflikte (Conflict) Verdrängung notwendiger Cache-Zeilen durch Konflikte Fehlzugriffe durch Erstbelegung im Allgemeinen vernachlässigbar Vergrößerung des Caches reduziert Fehlzugriffe erheblich E.53 6.7 Verhalten von Caches (3) Zusammenhang in Grafik veranschaulicht die drei Fehlzugriffs-Ursachen im Zusammenhang mit Cache-Größe und -Typ Fehlzugriffsrate,14,12,1,8,6,4,2 nach Patterson 1998 1-Wege (direkt abgebildet) Spec92 Benchmark 2-Wege Conflicts 4-Wege 8-Wege vollassoziativ Capacity Erstbelegung Compulsory 1 2 4 8 16 32 64 128 Cache-Größe in kbyte E.54

6.8 Cache-Implementierung Internes Pipelining beim Cache-Zugriff pro Takt ein Zugriff fertig Dauer eines Zugriffs ingesamt jedoch mehrere Takte Virtuelle oder physikalische Cache-Adressierung Speicheradressen entweder logisch/virtuell oder physikalisch logische Adressierung meist im L1-Cache Vorteil: keine Speicherabbildung notwendig Nachteil: Prozessumschaltung muss L1-Cache löschen physikalische Adressierung in L2/L3-Caches Vorteil: Prozessumschaltung transparent Nachteil: vorherige Speicherabbildung notwendig E.55 6.9 Optimierungen im Programm Prefetch-Instruktionen holen benötigte Daten schon vorab in Cache Erhöhung der Lokalität mehr Zugriffe auf weniger Adressen Beispiel: geschickte Schleifenkonstruktion statt long matrix[dim][dim]; for( j= ; j< DIM; j++ ) for( i= ; i< DIM; i++ ) matrix[i][j]= 1; besser for( i= ; i< DIM; i++ ) for( j= ; j< DIM; j++ ) matrix[i][j]= 1; E.56

6.9 Optimierungen im Programm (2) Variante 1 greift versetzt ständig auf den gesamten Speicherbereich zu Variante 2 geht sequentiell durch den Speicher Beispiel: matrix[4][4] und die ersten fünf Zugriffe Variante 1 1 5 2 3 4 Variante 2 1 2 3 4 5 im Beispiel: bei Größe des Datentyps long gleich 4 Byte und 16 Byte Cache-Zeilengröße sind ersten vier Zugriffe u.u. auf die gleiche Cachezeile E.57 6.9 Optimierungen im Programm (3) Erhöhung der Lokalität (fortges.) Beispiel: Zusammenfassung von gemeinsam genutzten Daten (in Java) statt String [] Name; int [] PersonalNr; besser class Person { String Name; int PersonalNr; } Person [] Personal; zusammengehörige Daten liegen eng beisammen E.58

6.9 Optimierungen im Programm (4) Verminderung von Konflikten Effekt: Veränderung der Elementgröße eines Feldes führt zu signifikantem Effizienzeinbruch in wissenschaftlichen Berechnungen Problem: Cache-Konflikte Ausrichtung der Elemente großer Felder Einfügen von Füllbytes (Padding) Vermeidung von Elementgrößen die Zweierpotenzen entsprechen E.59 7 Logische Adressräume Wiederholung (von Technische Informatik I) Logische und physikalische Hauptspeicheradressen Umsetzung logischer in physikalische Adressen durch Hardware Memory-Management-Unit Segmentierung Seitenadressierung E.6

7.1 Segmentierung Umsetzung für Speicherbereiche (Segmente) Addition einer Konstante auf logische Adresse ergibt physikalische Adresse logischer Adressraum physikalischer Adressraum x45 x54ffff x45 xfffff x1 RAM x1fffff x1 Das Segment des logischen Adressraums kann an jeder beliebige Stelle im physikalischen Adressraum liegen. E.61 7.2 Seitenadressierung Umsetzung für Seiten gleicher Größe Addition einer Konstanten pro Seite des logischen Adressraums logischer Adressraum physikalischer Adressraum Kacheln (Frames) Seiten (Pages) RAM Abbildung auf Kacheln des physikalischen Speichers E.62

7.3 Motivation Zugriffschutz kein Zugriff auf fremde Adressräume Zugriffsarten einschränkbar (z.b. nur lesbar) Einfachere Speicherverwaltung Ein- und Auslagerung von Speicherbereichen (Segmente und/oder Seiten) Unabhängigkeit von der konkreten physikalischen Adresse (Relokationsproblem) einfache Speicherbelegung bei Seitenadressierung (aber interner Verschnitt am Ende der letzten Seite eines Bereichs) Virtueller Speicher Unabhängigkeit von tatsächlich vorhandener Hauptspeichergröße E.63 8 Fallstudie: Pentium Physikalische Adresse 32 bit breit Segmente als Teil des Programmiermodells des Prozessors CS Codesegment: enthält Instruktionen DS Datensegment SS Stacksegment ES, FS, GS zusätzliche Segmente Befehle beziehen sich auf eines oder mehrere der Segmente Segmentadressierung Segmentselektor zur Auswahl eines Segments: 16 Bit bezeichnen das Segment Selektoren durch Maschinenbefehle veränderbar E.64

8.1 Real Mode Adressierung Adressgenerierung im Real Mode 16 Bit breiter Segmentselektor wird als 2 Bit breite Adresse interpretiert und auf die logische Adresse addiert Segmentselektor 19 3 19 15 logische Adresse 2 physikalische Adresse kein Zugriffschutz da Selektor vom Programmierer veränderbar E.65 8.2 Protected Mode Adressierung Vier Betriebsmodi (Stufen von Privilegien) Stufe : höchste Privilegien (privilegierte Befehle, etc.): BS Kern Stufe 1: BS Treiber Stufe 2: BS Erweiterungen Stufe 3: Benutzerprogramme Speicherverwaltung kann nur in Stufe konfiguriert werden Segmentselektoren enthalten Privlegierungsstufe Stufe des Codesegments entscheidet über Zugriffserlaubnis Segmentselektoren werden als Indizes interpretiert geschützte Tabellen von Segmentdeskriptoren Globale Deskriptor Tabelle Lokale Deskriptor Tabelle E.66

8.2 Protected Mode Adressierung (2) Deskriptortabelle enthält bis zu 8192 Segmentdeskriptoren Inhalt des Segmentdeskriptors: physikalische Basisadresse Längenangabe Granularität (Angaben für Bytes oder Seiten) Präsenzbit Privilegierungsstufe globale Deskriptortabelle für alle Prozesse zugänglich (Register GDTR) lokale Deskriptortabelle pro Prozess möglich (Register LDTR gehört zum Prozesskontext) E.67 8.3 Adressberechnung bei Segmentierung Verwendung der Protected mode Adressierung Segmentselektor logische Adresse 15 3 31 Basisadr. Länge 32 bit 2 bit wähle aus LDTR GDTR x 496 ja Unterbrechung 31 physikalische Adresse E.68

8.4 Adressberechnung bei Paging Seitenadressierung wird der Segmentierung nachgeschaltet Segmentselektor logische Adresse 15 3 31 segmentierte Adresse Segmentierung: 31 21 11 CR3 (Page directory base register) Page Directory Page Table 31 physikalische Adresse E.69 8.4 Adressberechnung bei Paging (2) Zweistufige Seitenadressierung Directory Page table Seitengröße fest auf 496 Bytes Inhalt des Seitendeskriptor Kacheladresse Dirty Bit: Seite wurde beschrieben Access Bit: Seite wurde gelesen oder geschrieben Schreibschutz: Seite nur lesbar Präsenzbit: Seite ausgelagert (31 Bits für BS-Informationen nutzbar) Kontrolle des Prozessorcaches Getrennte TLBs für Codesegment und Datensegmente 64 Einträge für Datenseiten; 32 Einträge für Codeseiten E.7

8.5 Physical-Address-Extension (PAE) Nachgeschaltete dreistufige Seitenadressierung Segmentselektor logische Adresse 15 3 31 CR3 segmentierte Adresse Segmentierung: 31 29 2 11 Page Dir. Pointers Page Dir. Page Table 35 physikalische Adresse E.71 8.5 Physical-Address-Extension (PAE) (2) Ab Pentium Pro vierelementige Tabelle von Page-Directory-Pointers 24 statt 2 Bit breite physikalische Adressumsetzung für den Seitenanfang 64 Bit statt 32 Bit breite Tabelleneinträge spezieller Chipsatz erforderlich Adressierbarer Hauptspeicher von 64 GByte 36 Bit breite physikalische Adresse E.72