Implementierung: Direkt abgebildeter Cache



Ähnliche Dokumente
7b. Rechnerarchitektur

Einführung in die technische Informatik

Johann Wolfgang Goethe-Universität

1 Aufgaben zu Wie funktioniert ein Computer?

Systeme 1. Kapitel 6. Nebenläufigkeit und wechselseitiger Ausschluss

(Prof. Dr. J. Schlichter, WS 2011 / 2012) Übungsleitung: Dr. Wolfgang Wörndl (gbs-ws11@mailschlichter.informatik.tu-muenchen.de)

Die Mikroprogrammebene eines Rechners

Lehrer: Einschreibemethoden

Das Prinzip an einem alltäglichen Beispiel

Virtueller Speicher. SS 2012 Grundlagen der Rechnerarchitektur Speicher 44

Einführung in die Systemprogrammierung

Rechner Architektur. Martin Gülck

RS-Flip Flop, D-Flip Flop, J-K-Flip Flop, Zählschaltungen

Instruktionssatz-Architektur

OPERATIONEN AUF EINER DATENBANK

etax.schwyz: Suche nach Steuerfalldateien

Wie man Registrationen und Styles von Style/Registration Floppy Disketten auf die TYROS-Festplatte kopieren kann.

Hardware/Software-Codesign

Neue Prozessor-Architekturen für Desktop-PC

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

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

Architektur Verteilter Systeme Teil 2: Prozesse und Threads

Synchronisations- Assistent

12. Rechnerarchitektur und Assemblerprogrammierung

Kontakte Dorfstrasse 143 CH Kilchberg Telefon 01 / Telefax 01 / info@hp-engineering.com

Technische Informatik 2 Adressierungsarten

Einführung in. Logische Schaltungen

Webalizer HOWTO. Stand:

Mikroprozessor als universeller digitaler Baustein

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

moderne Prozessoren Jan Krüger

Zur drittletzten Zeile scrollen

QTrade GmbH Landshuter Allee München Seite 1

Grundlagen verteilter Systeme

Kapitel VI. Speicherverwaltung. Speicherverwaltung

PVS Grobkonzept: Strukturelle und funktionale Erweiterungen bei der Verwaltung der Arbeitszeit und der organisatorischen Zuordnung

3 Wie bekommen Sie Passwortlevel 3 und einen Installateurscode?

Computer-Architektur Ein Überblick

Transaktionsempfehlungen im ebase Online nutzen

Mikrocomputertechnik. Adressierungsarten

Teil VIII Von Neumann Rechner 1

Lieferschein Dorfstrasse 143 CH Kilchberg Telefon 01 / Telefax 01 / info@hp-engineering.com

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Name: Vorname: Matr.-Nr.: 4. a) RISC-Architekturen müssen zur Decodierung von Maschinenbefehlen stets ein mikroprogrammierbares Steuerwerk verwenden.

RO-Serie CAN-Übertragungsprotokoll

Integrated Services Realtime Remote Network

Massenversand Dorfstrasse 143 CH Kilchberg Telefon 01 / Telefax 01 / info@hp-engineering.com

Ein mobiler Electronic Program Guide

Kurzanleitung LFB-Online für Schulen

Pflegeberichtseintrag erfassen. Inhalt. Frage: Antwort: 1. Voraussetzungen. Wie können (Pflege-) Berichtseinträge mit Vivendi Mobil erfasst werden?

Betriebssysteme. Dipl.-Ing.(FH) Volker Schepper

5 Speicherverwaltung. bs-5.1 1

A. Ersetzung einer veralteten Govello-ID ( Absenderadresse )

Ein Blick voraus. des Autors von C++: Bjarne Stroustrup Conrad Kobsch

Datenbank LAP - Chefexperten Detailhandel

Umzug der abfallwirtschaftlichen Nummern /Kündigung

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:

Um eine Person in Magnolia zu erfassen, gehen Sie wie folgt vor:

Bedienungsanleitung Anlassteilnehmer (Vereinslisten)

LU-Zerlegung. Zusätze zum Gelben Rechenbuch. Peter Furlan. Verlag Martina Furlan. Inhaltsverzeichnis. 1 Definitionen.

Handbuch für Redakteure

Fragebogen zur Diplomarbeit von Thomas Friedrich

Kapitel 6 Anfragebearbeitung

Versetzungsregeln in Bayern

Technische Informatik I. Übung 3 Speicherhierarchie. v t d 0 d 1 d 2 d Technische Informatik I Übung 3. Technische Informatik I Übung 3

Arbeiten mit Standorten und Freimeldungen

Algorithmen zur Integer-Multiplikation

ecaros2 Installer procar informatik AG 1 Stand: FS 09/2012 Eschenweg Weiterstadt

Installation OMNIKEY 3121 USB

Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015

MS Excel 2010 Kompakt

Softwarelösungen: Versuch 4

Handbuch für Nutzer von Zertifikaten der Zertifizierungsstellen (CAs) des Bayerischen Behördennetzes (BYBN) zur Sicherung von s Teil C3:

Anleitung für die Online-Bewerbung über LSF auf Lehrveranstaltungen aller Lehramtsstudiengänge

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler

Technische Informatik II Wintersemester 2002/03 Sommersemester Heiko Holtkamp

Um ein solches Dokument zu erzeugen, muss eine Serienbriefvorlage in Word erstellt werden, das auf die von BüroWARE erstellte Datei zugreift.

Kap 4. 4 Die Mikroprogrammebene eines Rechners

Speicher Virtuelle Speicherverwaltung. Speicherverwaltung

Installationsanleitung für Update SC-Line

SMS/ MMS Multimedia Center

Zahlenwinkel: Forscherkarte 1. alleine. Zahlenwinkel: Forschertipp 1

1. Übung aus Digitaltechnik Aufgabe. Die folgende CMOS-Anordnung weist einen Fehler auf:

Elektrische Logigsystem mit Rückführung

Handbuch. NAFI Online-Spezial. Kunden- / Datenverwaltung. 1. Auflage. (Stand: )

Datenexport aus JS - Software

Kurzdokumentation AO Bodenbuch Serienbrief Land-Data Eurosoft GmbH & Co.KG Rennbahnstr Pfarrkirchen

BANKETTprofi Telefonschnittstelle

Lösungsvorschlag zur 4. Übung

Anforderungsanalyse: Tutor

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten

1. Speicherbausteine JK-RS-Master-Slave-Flip-Flop

Physischer Datenbankentwurf: Datenspeicherung

Transkript:

Implementierung: Direkt abgebildeter Cache Direkt-abgebildeter Cache von 64 KB mit 16-Byte-Linien (Adress- und Wortlänge 32 Bit, Byteadressierung) Address (showing bit positions) 31 30 29 28..... 19 18 17 16 15 14 13 12... 7 6 5 4 3 2 1 0 Byte offset Hit Tag 16 Index 12 2 Block offset Data V 16 bits Tag 128 bits Data 4K entries 16 32 32 32 32 = Mux 32 36 Implementierung: Direkt abgebildeter Cache Funktionsweise des direkt-abgebildeten Caches: - Valid Flag (V) zeigt an, ob die Cache-Linie gültig ist. - Index-Feld (12 Bit) adressiert direkt die Cache-Linie. - Ausgelesenes Tag wird mit Tag-Feld der Adresse (obere 16 Bit) verglichen (bei Gleichheit: Cache Hit) Gewünschtes Wort innerhalb der Linie wird anhand des Block-Offsets mit einem Multiplexer (Mux) ausgewählt 37

Implementierung: Mengen-assoziativer Cache 4-fach assoziativer Cache von 4 KB mit 1-Wort-Linien (Adress- und Wortlänge 32 Bit, Byteadressierung) 31 30 29 28 27........ 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Index 0 1 2 253 254 255 V Tag = Data 22 Address V Tag Data V Tag Data V Tag = = = 8 22 Data 32 L=4 Linien je Satz: deshalb 4-Wege assoziativ, oder 4- fach assoziativ S=256 Sätze (Sets, Mengen): Dann auch als 256- Mengen-assoziativ bezeichnet 4-to-1 M ultiplexer Hit Data 38 Implementierung: Mengen-assoziativer Cache Funktionsweise des 4-fach assoziativen Caches: - Valid-Flag zur Anzeige einer gültigen Cache-Linie. - Set-Feld (8 Bit) adressiert parallel alle 4 Linien innerhalb der Menge. - Die 4 ausgelesenen Tags werden parallel mit dem Tag-Feld der Adresse (22 Bit) verglichen (bei Gleichheit Cache Hit). - Bei Cache Hit wird die gefundene Cache Linie mittels eines 4-zu-1-Multiplexers ausgewählt (alternative Implementierung über Chip Select der Speicherchips). Langsamer als direkt-abgebildeter Cache durch Tag-Vergleich vor Auswahl der Linie. 39

Virtueller Speicher (1) Grundprinzip der Umsetzung der virtuellen Adresse (VA) zu einer physikalischen Adresse (PA) VA msb Seiten-Nr Adressbereiche Offset lsb Seitentabelle physikalischer Speicher Kachel-Nr PA Kachel 40 Virtueller Speicher (2) Grundprinzip wird um Eingabe des Prozess-Id erweitert. Damit entstehen unter verschiedenen Prozessen unterschiedliche physikalische Adressen für gleiche virtuelle Adressen. Prozeß -ID VA msb Seiten-Nr Adressbereiche Seitentabelle für PID Kachel-Nr Offset lsb physikalischer Speicher PA Kachel 41

Virtueller Speicher (3) Typischerweise wird eine mehrstufige Umsetzung durch kaskadierte Seitentabellen vorgenommen. VA msb Tabellen-Nr Adressbereiche Seiten-Nr Offset lsb 1. Stufe Tab-Nr 2. Stufe Kachel-Nr physikalischer Speicher PA Kachel Vorteil: Für nicht benutzte Speicherbereiche können Tabellen auf 2. Stufe fehlen. Damit weniger Speicheraufwand für Verwaltung. 42 Zusammenspiel von Caches und virtuellem Speicher Caches für physikalische Adressen: Cache sequentiell hinter der MMU im Speicherzugriffspfad Logische (virtuelle) Adresse A wird erst in physikalische Adresse (Real Adress RA) übersetzt, dann diese im Cache gesucht. Cache Hit CPU VA MMU RA Memory 43

Zusammenspiel von Caches und virtuellem Speicher Parallel zur MMU: Während die oberen Bits der virtuellen Adresse VBA (z. B. Seiten-Nummern) in die physikalische RBA (z. B. Kachel-Nummern) durch die MMU umgesetzt werden, werden aus dem Cache mittels der niederwertigen Bits die zugehörigen Linien ausgelesen (Anzahl = Größe der assoziativen Menge bzw. eindeutig bei direkt abgebildetem Cache). Zur Entscheidung, ob ein Treffer vorliegt, muss noch die im Cache-Tag enthaltene RBA mit der von der MMU verglichen werden. CPU VA VBA RBA MMU Vorteil: Adressräume mehrerer Memory Prozesse können gleichzeitig im Cache liegen (inkl. gemeinsamer Compare OK Speicherbereiche) Nachteil: Physikalische Adresse muss von MMU vorliegen D Cache RBA Line of data Beispiel: 88 110 L1-Cache des Motorola 44 TLB TLB: Translation Lookaside Buffer zur Umsetzung der logischen in die physikalische Adresse Assoziativspeicher in der MMU oft umgesetzte Adressen werden einem Cache-artigen Speicher entnommen Nicht gefundene Adressen sind über Seitentabellen nachzuschlagen Virtuelle Adresse 20 7 2 3 Bild: Zusammenwirken der MMU mit dem Cache, Tags werden entsprechend einer physikalischen Adresse gewertet TLB Mengenauswahl Tags 0 1 2 3 4 5 6 7 Hit / Miss? Wortauswahl innerhalb Cache-Linie Line Select Line 0 Line 1 64 Data (Instructions) 45

Zusammenspiel von Caches und virtuellem Speicher Caches für logische Adressen Cache kann auch im virtuellen Adressraum vor der MMU angeordnet sein CPU VA Cache MMU RA Memory Vorteil: Keine Verzögerung durch MMU, daher besonders für On-Chip- L1-Caches geeignet Nachteil: Bei Prozessen mit eigenen virtuellen Adressräumen entspricht die gleiche logische Adresse i. Allg. mehreren physikalischen Adressen. Der Cache ist deshalb nach jedem Prozess-wechsel komplett zu löschen (Cache Flush/Kaltstart nach Prozess-wechsel) oder es ist ein zusätzliches Tag mit Prozess-Id (Linien mehrerer Prozesse gleichzeitig im Cache/Speicheraufwand) zu verwalten. 46 Geschwindigkeitsgewinn durch Caches Effektive Zugriffszeit mit Cache T s H T 1 H T1 T2 T1 H T2 1 1 T s: System-Zugriffszeit (mit Cache) T 1 : Cache-Zugriffszeit T 2 : Hauptspeicher-Zugriffszeit H: Cache-Trefferrate (Hit ratio) Zugriffseffizienz des Cache E c T T 1 s T 1 T 1 1 1 1 H 1 H T T2 1 r 1 H 2 T 1 1 mit r T 2 T 1 47

Cache-Zugriffseffizienz Cache-Zugriffseffizienz als Funktion der Trefferrate H bei verschiedenen relativen Cache-Geschwindigkeiten r T 2 T 1. 48 Beschleunigungstechniken für den Prozessor Verschiedene Techniken: Befehlsphasenpipelining Befehlspipelining VLIW SIMD 49

Befehlsphasenpipelinig (1) Zeitlich überlappte Ausführung von Befehlshol- und verschiedenen Ausführungsphasen: Instr. Fetch (IF), Instr. Decode (ID), Operand Fetch (OF), Execute (E), Store (S) Sequentiell I 3 I 2 I 1 Befehlsphasenpipelining I 3 I 2 I 1 3 Befehle in 15 Takten, 5 Takte je Befehl (CPI=5) Ziel: CPI=1. (CPI: Clocks per Instruction) 3 Befehle in 7 Takten, 2.3 Takte je Befehl, 1 Takt je Befehl wenn Pipeline gleichmäßig gefüllt 50 Befehlsphasenpipelinig (2) Pipelines in Universalprozessoren jedoch meist nur ungenügend gefüllt Grund: Pipeline-Konflikte Datenabhängigkeiten: Bsp: add R1,R2 ; R1=R1+R2 mul R1,R3 ; R1 = R1*R3; mul add Steuerflussabhängigkeiten: cmp R4,R5 bne ende add R1,R2 ende:... add bne cmp Ausweg: Befehlsumordnung im Compiler, Spekulative Befehlsausführung 51

Superskalarität (1) Superskalar, wenn Befehlsphasen-Pipeline mit mehreren Funktionseinheiten für die Ausführung der Kernaktivitäten kombiniert ist und dynamische Zuweisung von Befehlen an die Funktionseinheiten erfolgt Instruction Fetch Instruction Decode and Rename Instruction Window Issue Execution Execution Retire and Write Back In Order Out of Order In Order Quelle: T.Ungerer, U. Brinkschulte Mikrocontroller und Mikroprozessoren, Springer Verlag 2002 52 Superskalarität (2) Befehlshole-Stufe lädt Befehle aus dem Code-Cache, je Takt werden mindestens so viele Befehle geholt, wie den Ausführungseinheiten zugewiesen werden können. Ggf. wird Sprungvorhersage benutzt, um zu entscheiden, welche Befehle zu holen sind Ein Befehlsholepuffer entkoppelt Befehlsholestufe von der Decodierstufe Die Bandbreite der Dekodierstufe entspricht meist der maximalen Zuordnungsbandbreite. Operanden und Resultatregister werden umbenannt, d.h. die in den Befehlen angegebenen Register werden auf die physikalisch vorhandenen Register abgebildet. Befehlsfenster: Befehlsmenge mit umbenannten Registern und frei von Steuerflussabhängigkeiten 53

Superskalarität (3) Im Befehlsfenster müssen nur noch Datenabhängigkeiten und Strukturkonflikte aufgelöst werden. Issue: Zuweisung wartender Befehle an Verarbeitungseinheiten (Reihenfolge der Befehle im Originalprogramm wird im Rückordnungspuffer abgelegt) Zuweisung der Befehle in Umordnungspuffern vor den Ausführungseinheiten, Befehle warten dort solange, bis alle Operanden verfügbar sind (Datenflussprinzip). Danach: Befehlsvervollständigung und Rückordnung der Befehle Befehlsresultate werden gültig gemacht, sofern diese von keiner Spekulation mehr abhängen 54 RISC (1) RISC: Reduced Instruction Set Computer Design-Philosophie wenige einfache Befehle, anstatt vieler verschiedenartiger Befehle Befehle haben dann gleiche Länge Einfachere und schnellere Realisierung einer superskalaren Pipeline Lade- und Speicher-Befehle: Rest der Befehle arbeitet auf Registern Großer Satz an Universalregistern Viele innovative Befehlssatzarchitekturen sind RISC- Architekturen, z.b. DLX, MIPS Dennoch hoher Anteil von CISC Architekturen, durch x86- Vorherrschaft 55

RISC (2) Vergleich CISC - RISC: summe = a; summe = summe + b; summe = summe + c; summe = summe + d; x86 CISC mov eax,[a] add eax,[b] add eax,[c] add eax,[d] mov [s],eax MIPS RISC load R1,[a] load R2,[b] add R1,R1,R2 load R2, [c] add R1,R1,R2 load R2, [d] add R1,R1,R2 store R1, [s] 56 VLIW VLIW-Very Long Instruction Word Breites Befehlsformat, das mehrere unabhängige Befehle kodiert, die parallel auf den Funktionseinheiten des Prozessors ausgeführt werden Bündelung der Befehle erfolgt durch Compiler Original-VLIW ist starr bzgl. Anzahl und Art der Befehle Im wesentlichen bei Signalprozessoren und Multimediaprozessoren eingesetzt, typischerweise mit RISC-Konzept gekoppelt. EPIC-Technik (Explicitly Parallel Instruction Computing) hat sich aus Konzepten von VLIW entwickelt. 57

EPIC (1/4) Explicitly Parallel Instruction Computing: Explizite Spezifikation des Parallelismus im Maschinencode (wie VLIW, jedoch weniger starr) Bedingte Ausführung von Befehlen (Prediction) Spekulative Ausführung von Ladeoperationen (Data Speculation) Gruppierung von Befehlen zur parallelen Ausführung durch Zusammenwirken von Compiler und Hardware In IA-64 Architektur implementiert (Intel/HP). 58 EPIC (2/4) IA 64 Befehlsformat (41 Bit) Opcode Register1 Register2 Register3 Predicate 14 Bits 7 Bits 7 Bits 7 Bits 6 Bits IA 64 Befehle werden von Compiler in sogenannte Bundles gepackt Befehl 1 41 Bits Befehl 2 41 Bits 128 Bits Befehl 3 41 Bits Template 5 Bits Template zeigt an, ob Befehle gleichzeitig ausgeführt werden dürfen, oder ob benachbarte Bundles parallel ausgeführt werden können 59

Beispiel Itanium: Anstoßen der Befehle zur Ausführung Bundle 1 Slot 0 Slot 1 Slot 2 Bundle 2 Slot 0 Slot 1 Slot 2 Dynamische Zuordnung zur Laufzeit (Unterschied zu reinem VLIW) EPIC (3/4) Funktionseinheiten Mem0 Mem1 Integer0 Integer1 FPU0 FPU1 FPU2 Br0 Br1 Br2 Es können bis zu sechs Befehle je Takt zur Ausführung angestoßen werden 60 EPIC (4/4) Skalierbarkeit: Bei IA64 dürfen n Mengen von jeweils drei Befehlen gebündelt werden. Itanium: n=2, d.h. 6 Befehle Bundle-Codierung mit Raum für breitere EPIC-Realisierungen Der Code wird dichter, d.h. mehr Befehle werden in einer betrachteten Anzahl von Zyklen decodiert und ausgeführt Schwierigkeiten: Sprünge verhindern ausreichende Füllung der Bundles Wartezeiten auf Load-Operationen würden mehr Verluste bringen 61

EPIC Bedingte Befehlsausführung Beispiel (aus W. Karl: Rechnerarchitektur): if (R1==R2) R9 = R10 R11; else R5= R6 + R7; Bedingte Befehlsfolge: cmp.eq p1,p2 = r1, r2;; (p1) sub r9 = r10, r11 (p2) add r5 = r6, r7 Jeder Befehl hat ein Predicate-Feld (6Bit) zur Angabe des Predicate-Registers (z.b. P0 bis P63 vorhanden) Befehl wird ausgeführt, ohne das Ergebnis des Vergleichs zu kennen (Elimination von Sprüngen) In Phase Befehlsvervollständigung werden nur Ergebnisse jener Befehle zurück geschrieben, deren Prädikat zutrifft 62 EPIC Spekulatives Laden Vorziehen von Ladeoperationen Spekulation, um für Unterbrechungen korrekte Programmausführung zu erhalten bei einem Überschreiben der Speicherzelle aktuelle Inhalte nachzuladen Instr A Instr B Branch Store Ld8 r1=[r2] Instr (benutzt r1) Ladeoperation kann normalerweise nicht vor (einige) Store-Befehle und nicht vor Sprungbefehle gezogen werden. Ausweg: Spekulatives Laden Ld8.a r1=[r2] Instr A Instr B Branch Store chk.a Instr (benutzt r1) 63

SIMD Single Instruction Multiple Data (Klassifikation nach Flynn), d.h. ein Leitwerk und mehrere Operationswerke, die gleichen Befehl durch mehrere Operationswerke parallel auf verschiedenen Daten ausführen. Heute ist SIMD-Prinzip als Erweiterung in Standardprozessoren enthalten. Nutzung breiter Register, Datenpfade (64/128 Bit) für parallele Speicherung, Verknüpfung und Transport kurzer Datentypen (8/16/32 Bit) Beispiele: Sun VIS Instruction Set (siehe SAD-Unterstützung) Intel MMX, Intel SSE (Streaming SIMD Extensions) Athlon 3D/NOW AltiVec (Motorola, PowerPC) 64 MMX: SIMD-Erweiterung für Pentium Prozessoren Spezielle Befehle für Multimedia- und Grafik-Algorithmen (z. B. MPEG-Kompression). Auch in RISC-Prozessoren zu finden (z. B. VIS beim Ultra Sparc) Konzept: Ein einzelner Befehl bearbeitet mehrere Daten in einem 64-Bit- Register gleichzeitig (z. B. 8 Byte oder 4 Worte à 16 Bit) MMX-Datentypen Es entsteht SIMD-Parallelarbeit, die vor allem für Multimedia-Anwendungen (8-Bit-Pixel, 16 Bit-Voice-Samples) gut genutzt werden kann 65

MMX-Befehlssatz Register: 8 FP-Register (64 oder 80 Bit) Insgesamt 57 Befehle Geschwindigkeitssteigerung von 50-100% für typische Multimedia- Anwendungen. 66 SSE (SIMD Streaming Extension) SSE-Register 70 zusätzliche Befehle für Multimedia-Anwendungen Eigener Satz von 8 Registern à 128 Bit, eigene Funktionseinheit SIMD-Operationen auch für Gleitkomma-Operanden Prefetch-Instruktionen (Memory Streaming) Leistungssteigerung bei MultimediaMark 99 von 29% gegenüber Pentium bei gleicher Taktfrequenz Weiterentwicklung für Pentium 4 zu SSE 2 (114 neue Befehle) 67