früher: CISC ( Complex Instruction Set Computer )



Ähnliche Dokumente
CISC ( Complex Instruction Set Computer ) mächtige Instruktionssätze zur Unterstützung von Hochsprachenkonstrukten

Teil 1: Prozessorstrukturen

Umsetzung in aktuellen Prozessoren

Neue Prozessor-Architekturen für Desktop-PC

Instruktionen pro Takt

DIGITALE SCHALTUNGEN II

ARM: Befehlssatz (Forts.)

ARM: Befehlssatz (Forts.)

Mikroprozessoren. Aufbau und Funktionsweise. Christian Richter. Ausgewählte Themen der Multimediakommunikation SS 2005

Arbeitsfolien - Teil 4 CISC und RISC

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

Technische Informatik 1 Übung 8 Instruktionsparallelität (Rechenübung) Andreas Tretter 8./9. Dezember Bitte immer eine Reihe freilassen

Technische Informatik 1 - HS 2016

Sprungvorhersagestrategien für Befehlspipelines

Lehrveranstaltung: PR Rechnerorganisation Blatt 8. Thomas Aichholzer

Beispiele von Branch Delay Slot Schedules

Hochschule Düsseldorf University of Applied Sciences HSD RISC &CISC

Seminar Parallele Rechnerarchitekturen SS04 \ SIMD Implementierung aktueller Prozessoren 2 (Dominik Tamm) \ Inhalt. Seite 1

Prozessorarchitektur. Sprungvorhersage. M. Schölzel

Teil 1: Prozessorstrukturen

Technische Informatik - Eine Einführung

Teil 1: Prozessorstrukturen

Instruktionssatz-Architektur

Was ist die Performance Ratio?

Technische Informatik I - HS 18

Allgemeine Lösung mittels Hazard Detection Unit

Implementierung: Direkt abgebildeter Cache

Vorlesung "Struktur von Mikrorechnern" (SMR)

Rechnerorganisation. (10,11) Informationskodierung (12,13,14) TECHNISCHE UNIVERSITÄT ILMENAU. IHS, H.- D. Wuttke `09

L3. Datenmanipulation

Technische Informatik 1 - HS 2016

Grundlagen der Informationsverarbeitung:

Kap.2 Befehlsschnittstelle. Prozessoren, externe Sicht

CPU-Technik. Stand der Technik, Trends und Entwicklungen. Vortrag im Informatikseminar WS 2000/2001. (C) 2000 Heiko Panther

Pipelining. Die Pipelining Idee. Grundlagen der Rechnerarchitektur Prozessor 45

Echtzeit Videoverarbeitung

RISC: Reduced Instruction Set Computer. Technische Informatik I Wintersemester 14/15 1. J. Kaiser, IVS-EOS

CISC-RISC-EPIC. eine Zwangs-Evolution?! Jörg Spilling - DECUS Frankfurter Treffen Seite: 1

Technische Informatik 1 Übung 7 Pipelining (Rechenübung) Balz Maag 22./23. November 2018

Das Prinzip an einem alltäglichen Beispiel

Institut für Informatik Prof. Dr. D. Hogrefe Dipl.-Inf. R. Soltwisch, Dipl.-Inform. M. Ebner, Prof. Dr. D. Hogrefe Informatik II - SS 04.

Teil 1: Prozessorstrukturen

Technische Informatik 1 Übung 6 Pipelining (Rechenübung) Andreas Tretter 24./25. November 2016

Kapitel 11 RISC-Rechner

Rechner Architektur. Martin Gülck

Vorlesung "Struktur von Mikrorechnern" (SMR)


Der von Neumann Computer

Die HAM. Die Hypothetische Akku-Maschine

Computer-Architektur Ein Überblick

RISC: Reduced Instruction Set Computer. Technische Informatik I Wintersemester 12/13 1. J. Kaiser, IVS-EOS

Rechnerorganisation. H.-D. Wuttke `

H. Intel x86 CPU. Höhere Informatik. Systemprogrammierung: - Betriebssystemkonzepte, Ein- & Ausgabe

Itanium 2. Götz Becker Lehrstuhl für Rechnerarchitektur

Struktur der CPU (1) Die Adress- und Datenpfad der CPU: Befehl holen. Vorlesung Rechnerarchitektur und Rechnertechnik SS Memory Adress Register

Auch hier wieder. Control. RegDst Branch MemRead MemtoReg ALUOp MemWrite ALUSrc RegWrite. Instruction[31 26] (also: das Opcode Field der Instruktion)

System-Architektur und -Software

moderne Prozessoren Jan Krüger

Benchmarking Intel Pentium III-S vs. Intel Pentium 4

Technische Grundlagen der Informatik 2 SS Einleitung. R. Hoffmann FG Rechnerarchitektur Technische Universität Darmstadt E-1

Inhalt. Prozessoren. Curriculum Manfred Wilfling. 28. November HTBLA Kaindorf. M. Wilfling (HTBLA Kaindorf) CPUs 28. November / 9

Kontrollpfad der hypothetischen CPU

Kontrollpfad der hypothetischen CPU

9. Fließbandverarbeitung

Technische Informatik 1 - HS 2017

Datenpfaderweiterung Der Single Cycle Datenpfad des MIPS Prozessors soll um die Instruktion min $t0, $t1, $t2 erweitert werden, welche den kleineren

Grundlagen der Rechnerarchitektur

6. CPU, die Zweite. Ausgangspunkt. Stand der Technik. Vorlesung Rechnerstrukturen Wintersemester 2002/03. Tanenbaum-CPU. 3 sichtbare Register

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

Transkript:

Hochleistungs-CPUs früher: CISC ( Complex Instruction Set Computer ) mächtige Instruktionssätze zur Unterstützung von Hochsprachenkonstrukten durch Hardware (Idee: don t do in software what you can do in hardware ) resultierender Code ist kompakt Compiler kann jedoch i.a. die Möglichkeiten des Instruktionssatzes nicht richtig ausnutzen Beispiele: DEC VAX, Motorola 680x0, Intel Pentium heute: RISC ( Reduced Instruction Set Computer ) einfacher Instruktionssatz: kleine Anzahl an Instruktionen und Adressierungsarten einfacher Entwurf hohe Registeranzahl erspart viele Speicherzugriffe einheitliche Instruktionslänge, Register/Register-Operationen und separate Load/Store-Befehle ermöglichen effizientes Instruktions-Pipelining Beispiele: SPARC, MIPS, DEC Alpha, HP PA-Risc, IBM RS-6000, PowerPC 18 Hochleistungs-CPUs: RISC Architektur einer einfachen RISC-CPU: interne Harvard-Architektur durch separate D- und I-Caches ( entschärft von Neumann Flaschenhals ) großer Registersatz mindestens 1 Integer Unit und 1 Floating Point Unit je Takt eine Instruktion angestrebt, d.h. CPI = 1 19 1

Hochleistungs-CPUs: Instruktionspipelining bei hohen Taktraten reicht eine Taktzykluszeit nicht mehr aus für Holen, Dekodieren und Ausführen einer Instruktion k-facher Durchsatz durch k-phasiges Instruktionspipelining: Beispiel mit k=5: (IF = Instruction Fetch, ID = Instruction Decode, OF = Operand Fetch, EX = Execute, WB = Write Back ) Probleme: Datenabhängigkeiten aufeinander folgender Befehle, unbedingte und bedingte Sprünge, langsamer Speicherzugriff 20 Hochleistungs-CPUs: Sprünge ISAs vieler RISC-CPUs verwenden Delayed Branches : ein Branch Delay Slot besteht aus den einem Sprung folgenden q Instruktionen Compiler muß hier q Instruktionen einfügen, die unabhängig vom Sprungverhalten in jedem Fall ausgeführt werden können! Hardware für Sprungvorhersage ( Branch Prediction Unit ) : Branch Target Address Cache (BTAC) enthält die zuletzt verwendeten Sprungzieladressen Branch Target Buffer (BTB) enthält für jeden Sprungbefehl zusätzliche lokale Sprunghistorie ( accuracy 85%) (z.b. 11 = strongly taken, 10 = taken, 01 = not taken, 00 = strongly not taken ) Branch History Table (BHT) mit Zugriff über globale Sprunghistorie ( accuracy 95%) 21 2

Hochleistungs-CPUs: Konzepte p-fache Superskalarität ( Instruction Level Parallelism, ILP): (p aufeinander folgende sequentielle Instruktionen werden gleichzeitig dekodiert und bei Unabhängigkeit gleichzeitig ausgeführt, CPI min = 1/p) Problem: Datenabhängigkeiten falsche Sprungvorhersagen erhöhen CPI! Out-Of-Order Befehlsausführung: (Hardware sucht automatisch in einem Puffer mit bereits dekodierten Instruktionen nach unabhängigen Instruktionen; spätere Instruktionen können ggf. spekulativ ausgeführt werden) 22 Hochleistungs-CPUs: Konzepte (Forts.) zweistufige oder dreistufige Cache-Hierarchien mit großer Kapazität verstecken weitgehend hohe Speicherzugriffszeiten spekulatives Laden von Daten mittels Prefetch Instruktionen gepufferte Load/Store-Einheiten Lade- oder Schreiboperation aus/in den Hauptspeicher (z.b. bei cache miss ) werden separat ausgeführt Instruktions-Pipeline kann nachfolgende Befehle ausführen, bis Ergebnis benötigt wird interner Puffer für mehrere Speicherzugriffe Funktions-Einheiten mit separaten arithmetischen Pipelines insbesondere für Gleitkomma-Operationen Ausführung wird in Phase EX der Instruktionspipeline gestartet; Ergebnis liegt zu einem späteren Zeitpunkt vor i.a. ein Ergebnis je Takt 23 3

Hochleistungs-CPUs: Konzepte (Forts.) bedingte Befehlsausführung durch Prädikate ersetzt Sprünge: Beispiel: if (a<b) kann wie folgt kodiert werden: test a<b a=c if TRUE a=c else if FALSE a=d a=d SIMD-Parallelität ( Data Level Parallelism, DLP): (sogenannte Multimedia- oder Vektoreinheiten gestatten die datenparallele Ausführung von arithmetischen Operationen auf mehrere in ein 64-Bit oder 128-Bit Register gepackte 8-, 16- oder 32-Bit Daten) Beispiele: Intel MMX, Intel SSE, AMD 3DNow!, Sun VIS Superpipelining: Instruktions-Pipelining mit k» 5 Phasen (höherer Durchsatz, aber größerer Leistungsverlust bei Pipeline-Konflikten) EPIC ( Explicitly Parallel Instruction Computing ) (statt Out-Of-Order Befehlsausführung muß Compiler unabhängige parallel ausführbare Instruktionen finden und entsprechend kodieren) 24 Beispiel 1: Sun UltraSPARC III CPU-Architektur: 25 4

Beispiel 1: Sun UltraSPARC III (Forts.) Instruktionspipeline mit bis zu 14 Phasen: separate Pipelines für Gleitkomma- und Load/Store-Befehle charakteristische Zeiten: misprediction penalty : 7 Takte misfetch penalty : 3 Takte D-cache latency : 2 Takte floating point divide latency : 20 Takte (ohne Pipeline) integer mult / divide latency : 6 / 64 Takte (ohne Pipeline) 26 Vergleich UltraSPARC III, Pentium, Alpha Pentium III UltraSparc III Alpha 21264 Superskalarität 3-fach 4-fach 4-fach Pipelinestufen 12-17 10-14 7-10 Out-of-Order ja nein ja Reorder Buffer Size 40 80 Funktionseinheiten Int/FP, Int, 3LS 4 Int, 2 FP, 1 LS 4 Int, 2 FP, 2 LS SIMD-Erweiterungen 2 MMX / 1 SSE 2 VIS 1 MVI Register 8(+40) Int, 8 FP 136 Int, 32 FP 32(+48) Int, 32(+40) FP Caches (I, D, L2) 16k, 16k, 512k 64k, 64k, 0.5-8M 64k, 64k, 1-16M Branch Prediction 0.5k BTAC + BHT 16k BHT 4k BHT Anzahl Transistoren 9.5M 16M 15.2M Taktfrequenz (MHz) 500-1G 750-1G 500-1G SPECint2000 (1 GHz) 408 610 679 SPECfp2000 (1 GHz) 264 827 960 27 5

Beispiel 2: IA-64 HP und Intel entwickelten gemeinsam IA-64 Architektur, bei dem der Compiler unabhängige Instruktionen ermittelt (hat umfassendere Sicht auf Programm; einfachere Scheduling-Hardware) zentrale Ideen: 64-Bit Architektur, EPIC-Konzept 128-Bit Instruktionswort ( Bundle ): drei 41-Bit Instruktionen, RISC-ähnlich kodiert ein 5-Bit Template, in dem festgelegt wird, 1) von welchen Funktionseinheiten die drei Instruktionen ausgeführt werden (M=Memory, I=Complex Integer, A=Integer, F=Floating Point, B=Branch) 2) welche Instruktionen unabhängig und somit parallel ausführbar sind (durch Einfügen eines Break Bits S zwischen abhängigen Befehlen) nicht alle Kombinationen im Template kodierbar! 28 Beispiel 2: IA-64 (Forts.) IA-64 ISA: fast alle Instruktionen mittels Prädikate bedingt ausführbar Beispiel: (p1) add r1=r2,r3 viele Register: 128 Integer-Register (64 Bit + 1 NaT-Bit, NaT= Not a Thing ), 128 Gleitkomma-Register (82 Bit), 128 Applikations-Register (64 Bit Spezialregister, enthalten u.a. IA-32 Register) 64 Prädikat-Register (1 Bit) für Ergebnisse von Vergleichsbefehlen Compiler setzt bei Sprung-Befehlen Branch Hint Bits zur statischen Vorhersage des Sprungverhaltens spezielle loop Befehle Befehle ld.s und chk.s zum spekulativen Laden von Daten Compiler kann bei allen load/store-befehlen Cache Hint Bits setzen Register-Stack: Subroutine kann mit alloc neuen Registersatz anfordern automatische Entrollen von Schleifen mittels Register-Rotation 29 6

Beispiel 2: IA-64 (Forts.) Intel Itanium: erster Prozessor für IA-64 ISA mit 800 MHz 6-fache Befehlsparallelität: Prozessor kann alle 6 Instruktionen aus zwei Bundles gleichzeitig beginnen 10-phasige Instruktionspipeline: viele Funktionseinheiten: 4 Integer- und Multimedia-Einheiten 2 Load/Store Einheiten 3 Sprungvorhersage-Einheiten 2 Gleitkomma-Einheiten (enthalten SIMD-EInheiten) 16 KByte L1-Caches, 96 KByte L2-Cache, 4 MByte L3-Cache Systembus für bis zu 4 CPUs vorgesehen max. 6.4 GFlop/s (32-Bit), SPECint2000: 342, SPECfp2000: 645 30 Beispiel 2: IA-64 (Forts.) Architektur der CPU Itanium: 31 7

Hochleistungs-CPUs: Ausblick Hauptprobleme von Hochleistungs-CPUs: Forderung nach (binärer) Kompatibilität hohe Zugriffszeit auf Hauptspeicher p-facher DLP: SIMD-Einheiten ermöglichen zwar einen p-fachen Leistungsgewinn, aber maschinennahe Programmierung erforderlich p-facher ILP: bedingt durch falsche Sprungvorhersagen und hohe Datenabhängigkeiten ist CPI-Wert von 1/p nicht erreichbar! schlechte Auslastung der vorhandenen Funktionseinheiten! OOO-Ausführung findet i.a. zu wenige unabhängige Instruktionen! ist Aufgabenverlagerung in Compiler (Bsp. IA-64) eine gute Alternative? neue Ideen für zukünftige Hochleistungs-CPUs: Multithreading-Architekturen mit mehrfach vorhandenen Registersätzen für schnellem Thread-Wechsel (z.b. nach cache miss ) OnChip-Multiprozessoren mit mehreren CPUs auf einem Chip 32 8