CPU GRUNDLAGEN -2zai/HTL/SYT... · CPU GRUNDLAGEN -2 V20.01 H. Zainzinger, Februar 2020 Prozessor...

29
CPU GRUNDLAGEN - 2 V20.01 H. Zainzinger, Februar 2020 Prozessor-Busse (WH) klassische CPU kommuniziert nach außen über Busse = logisch zusammengehörige Leitungen Datenbus: Zur Übertragung von Daten (z.B. mit Hauptspeicher) Ein Datenzugriff überträgt ein Wort Wortbreite = Anzahl der Datenleitungen Adressbus: Definiert Adresse der Speicherzelle, auf die zugegriffen wird Busbreite bestimmt maximale Anzahl der Speicherzellen Bestimmt wieviel Speicher der Prozessor (physisch, linear = direkt) adressieren kann. n Leitungen 2 n Speicherzellen können direkt physisch adressiert werden Steuerbus: Definiert Art der Peripherieanschlüsse des Prozessors Diverse Leitungen zur Steuerung des Prozessorsystems Bsp: Clock, Reset, Interrupt, ALE, … CPU Grundlagen, ZAI HTL Rennweg 2020-02 Seite 2

Transcript of CPU GRUNDLAGEN -2zai/HTL/SYT... · CPU GRUNDLAGEN -2 V20.01 H. Zainzinger, Februar 2020 Prozessor...

Page 1: CPU GRUNDLAGEN -2zai/HTL/SYT... · CPU GRUNDLAGEN -2 V20.01 H. Zainzinger, Februar 2020 Prozessor -Busse (WH) klassische CPU kommuniziert nach außen über Busse = logisch zusammengehörige

CPUGRUNDLAGEN - 2

V20.01

H. Zainzinger, Februar 2020

Prozessor-Busse (WH)

klassische CPU kommuniziert nach außen über Busse = logisch zusammengehörige Leitungen

Datenbus:• Zur Übertragung von Daten (z.B. mit Hauptspeicher)• Ein Datenzugriff überträgt ein Wort• Wortbreite = Anzahl der Datenleitungen

Adressbus:• Definiert Adresse der Speicherzelle, auf die zugegriffen wird• Busbreite bestimmt maximale Anzahl der Speicherzellen • Bestimmt wieviel Speicher der Prozessor (physisch, linear = direkt) adressieren kann.• n Leitungen ➔ 2n Speicherzellen können direkt physisch adressiert werden

Steuerbus:• Definiert Art der Peripherieanschlüsse des Prozessors• Diverse Leitungen zur Steuerung des Prozessorsystems • Bsp: Clock, Reset, Interrupt, ALE, …

CPU Grundlagen, ZAI HTL Rennweg 2020-02 Seite 2

Page 2: CPU GRUNDLAGEN -2zai/HTL/SYT... · CPU GRUNDLAGEN -2 V20.01 H. Zainzinger, Februar 2020 Prozessor -Busse (WH) klassische CPU kommuniziert nach außen über Busse = logisch zusammengehörige

von Neumann und Harvard Architektur

von Neumann CPU

ArbeitsspeicherDaten

Programm

Daten

Programm

Daten

Programm

Adressbus

Steuerbus

Datenbus

Bus für Daten und Code=Programme

von Neumann Architektur:• Daten und Code im selben Speicher• Gemeinsamer Bus für Daten und Code• Kein gleichzeitiger Zugriff auf Code und Daten

→ von Neumann Flaschenhals• geringere Betriebssicherheit (Daten können

Code überschreiben → Pufferüberlauf)• einfache Architektur (weniger Bus-Leitungen)

HarvardCPU

Datenspeicher

DatenAdressbus

Steuerbus

Datenbus

Programm- Speicher

Programm = Code

Steuerbus

Datenbus

Bus für Programmcode

Bus für Daten

Adressbus

Harvard Architektur:• Daten und Code in getrenntem Speicher• Getrennte Bus für Daten und Code• Gleichzeitiger Zugriff auf Code und Daten• unbenutzter Datenspeicher kann nicht als

Programmspeicher verwendet werden• keine Probleme durch Pufferüberlauf

CPU Grundlagen, ZAI HTL Rennweg 2020-02 Seite 3

Grundaufbau Prozessor

CPU Grundlagen, ZAI HTL Rennweg 2020-02 Seite 4

Page 3: CPU GRUNDLAGEN -2zai/HTL/SYT... · CPU GRUNDLAGEN -2 V20.01 H. Zainzinger, Februar 2020 Prozessor -Busse (WH) klassische CPU kommuniziert nach außen über Busse = logisch zusammengehörige

Detaillierterer Grundaufbau Prozessor (v. Neumann Arch.)

Adressbus Datenbus Steuerbus

Arbeitsregister 1

Arbeitsregister n

Status-Register (PSW, Flag)

Befehlszähler (PC, IP)

Stapelzeiger = Stackpointer

Befehlsregister

CPU Grundlagen, ZAI HTL Rennweg 2020-02 Seite 5

Datenpfad

Datenpfad = Die für die eigentlichen Berechnungen erforderlichen Bestandteile einer CPU.

CPU Grundlagen, ZAI HTL Rennweg 2020-02 Seite 6

Page 4: CPU GRUNDLAGEN -2zai/HTL/SYT... · CPU GRUNDLAGEN -2 V20.01 H. Zainzinger, Februar 2020 Prozessor -Busse (WH) klassische CPU kommuniziert nach außen über Busse = logisch zusammengehörige

Grundlegende Befehlstypen

Übernehmen Speicherwörter in Register

oder schreiben Registerinhalte in Speicherwörter

„Wort“ = Dateneinheit, die zwischen Speicher und Register bewegt wird

Bsp (8085):

LDA adr … Kopiert Inhalt der Speicherzelle adr in das Register A

STA adr … Kopiert Inhalt von Register A in die Speicherzelle adrMVI A,$08 … Schreibt den Wert $08 ins Register A (A = 8) „move immediately"

Register – Speicher Befehle

•Führt Operation mit einem oder mehreren Registern durch

•und speichert Ergebnis in einem Register ab.

•Bsp (8085):

•MOV L, A … Kopiert Inhalt von Register A nach L (L = A) „move“

•INR A … Increment A (A = A +1 oder A++)

•ADD B … Addiert Register B zu Register A hinzu (A = A + B oder A+=B)

Register-Register Befehle

CPU Grundlagen, ZAI HTL Rennweg 2020-02 Seite 7

Befehlskategorien

• Arithmetische Operationen: Führen Berechnungen durch (ADD, ADC, SUB, DIV, MUL, INC, DEC)

• Logische Operationen: Verknüpfen Bitfelder logisch miteinander (AND, OR, XOR, NOT)

• Bit-orientierte Operationen: Mit ihnen kann man einzelne Bits in einem Bitfeld genau ansprechen, auslesen, verschieben (Shift und Rotate) bzw. manipulieren

• Speicheroperationen: Übertragen Daten zwischen Prozessorregistern (MOV, MVI, XCHG), innerhalb eines Registers (BSWAP), sowie Registern und Speicher (LDA, STA)

• Vergleichsoperationen: Vergleich von Werten mittels <, >, sowie = (CMP, TEST)

• Steueroperationen: Verzweigungen, die den Ablauf des Programms beeinflussen (JC,JNZ,...)

• Datenkonvertierung: Diese Befehle wandeln Werte von einer Darstellung in eine andere um, u. U. auch mit Verlust. Zum Beispiel: ein Byte in ein Word, einen Long-Integer in ein Byte oder eine doppelte genaue Fließkommazahl in einen Integer. Bsp: DAA (BCD → Binär)

• Kombinierte Befehle aus Vergleichsoperationen, arithmetischen Operationen, und Datenaustausch (XADD, CMPXCHG)

CPU Grundlagen, ZAI HTL Rennweg 2020-02 Seite 8

Page 5: CPU GRUNDLAGEN -2zai/HTL/SYT... · CPU GRUNDLAGEN -2 V20.01 H. Zainzinger, Februar 2020 Prozessor -Busse (WH) klassische CPU kommuniziert nach außen über Busse = logisch zusammengehörige

Shift - Operationen

= ≠

Multiplikation mit 2

Division durch 2mit Abrunden nach - im2er KomplementSAL

Java: <<

SARJava: >>

SHRJava: >>>

Division durch 2mit Abrunden ohne2er Komplement

CPU Grundlagen, ZAI HTL Rennweg 2020-02 Seite 9

Shift-OperationenBeispiel Java

public static void main(String[] args) {int shift1=1, shift2=1<<31; // shift2=1000000…00bfor(int j=0; j<32; j++){

int sh1 = shift1 << j; // Links Shiftint sh2 = shift2 >> j; // Rechts-shift mit 2er Komplementint sh3 = shift2 >>> j; // Rechts-Shift ohne 2er Komplem.System.out.println(String.format("%2d %11d %11d %11d",

j, sh1, sh2, sh3));}

}

CPU Grundlagen, ZAI HTL Rennweg 2020-02 Seite 10

Page 6: CPU GRUNDLAGEN -2zai/HTL/SYT... · CPU GRUNDLAGEN -2 V20.01 H. Zainzinger, Februar 2020 Prozessor -Busse (WH) klassische CPU kommuniziert nach außen über Busse = logisch zusammengehörige

Rotations- Operationen

CPU Grundlagen, ZAI HTL Rennweg 2020-02 Seite 11

LOAD/Store Architektur

LOAD / STORE Architektur

• = Register / Register Architektur

• Hauptspeicherzugriffe erfolgen ausschließlich mit speziellen Load (Lade-) und Store (Speicher-) Befehlen

• Ergebnisse werden in Register zwischengespeichert

• Viele Register erforderlich

• Meist RISC-Architektur (Reduced Instruction Set Computer)

• BSP: ARM Prozessoren (→ fast alle Smartphones)

Klassische Architektur

• Viele Maschinenbefehle erlauben Speicherzugriff

• ➔ Unterschiedliche Adressierungsmodi

• Meist CISC-Architektur (Complex Instruction Set Computer)

• Bsp: x86 und Nachfolger (Core i9, Ryzen)

CPU Grundlagen, ZAI HTL Rennweg 2020-02 Seite 12

Page 7: CPU GRUNDLAGEN -2zai/HTL/SYT... · CPU GRUNDLAGEN -2 V20.01 H. Zainzinger, Februar 2020 Prozessor -Busse (WH) klassische CPU kommuniziert nach außen über Busse = logisch zusammengehörige

Adressierungsarten von Prozessoren

Die meisten Maschinenbefehl arbeiten mit Operanden (=womit wird etwas berechnet?)➔Ort des Operanden muss spezifiziert werden.Unterschiedliche Adressierungsmodi

• Implizite Adressierung (Implied Mode)• Unmittelbare Adressierung (Immediate Mode)• Registeradressierung (Register Mode)• Direkte Adressierung (Direct Mode)• Indirekte Registeradressierung (Register-Indirect Mode)• Indizierte Adressierung (Indexed Mode)• Indirekte Adressierung (Indirect Mode)

CPU Grundlagen, ZAI HTL Rennweg 2020-02 Seite 13

Implizite Adressierung (Implied Mode)

• Implizite Adressierung (Implied Mode = Implicit Mode)• Kein Operand erforderlich -- Operand steckt bereits im OP-Code• Ist genau genommen gar keine Adressierung• Beispiele (8085)

• NOP → 00 (No Operation)• EI → FB (Enable Interrupt)

Operator

1 Byte

CPU Grundlagen, ZAI HTL Rennweg 2020-02 Seite 14

Page 8: CPU GRUNDLAGEN -2zai/HTL/SYT... · CPU GRUNDLAGEN -2 V20.01 H. Zainzinger, Februar 2020 Prozessor -Busse (WH) klassische CPU kommuniziert nach außen über Busse = logisch zusammengehörige

Register-Adressierung

• Register-Adressierung (Register Mode)• Operand steht in einem Register• Sonderfall der impliziten Adressierung• VT: sehr schnell

• z.B. (8085):• MOV A,D → 7A

• MOV …. Operator• A … Ziel-Register• D … Quell-Register

Register

A 0

B 0

C 0

D 7B

Register

A 7B

B 0

C 0

D 7B

MOV A,D

Operator

1 Byte

MOV A,B → 78MOV A,C → 79MOV A,D → 7AMOV A,E → 7B

CPU Grundlagen, ZAI HTL Rennweg 2020-02 Seite 15

Unmittelbare Adressierung

• Unmittelbare Adressierung (Immediate Mode)• Operand ist eine Konstante und wird im Speicher nach dem Maschinenbefehl

abgelegt (also nach dem OP-Code)• VT: Speicherzugriff nur auf benachbarte Zelle erforderlich (➔ relativ schnell)• NT: funktioniert nur mit Konstanten.• z.B. (8085): MVI A,02 → 3E02 oder: MVI B,0AFh → 06AF

Register

A 0

B 0

C 0

D 0

Register

A 02

B 0

C 0

D 0

MVI A,02

Operator

1 Byte

Operand = Konstante

1 Byte

CPU Grundlagen, ZAI HTL Rennweg 2020-02 Seite 16

Page 9: CPU GRUNDLAGEN -2zai/HTL/SYT... · CPU GRUNDLAGEN -2 V20.01 H. Zainzinger, Februar 2020 Prozessor -Busse (WH) klassische CPU kommuniziert nach außen über Busse = logisch zusammengehörige

Direkte Adressierung

• Direkte Adressierung (Direct Addressing Mode)• Operand wird aus Hauptspeicher gelesen• Im Befehl ist die Adresse des Operanden (=Speicherzelle) angegeben• NT: Zugriff immer auf die selbe Speicherstelle• NT: funktioniert nur mit globalen Variablen, deren Position im Speicher zum

Zeitpunkt der Übersetzung des Programmes (= Compile-Time) bekannt ist!• z.B. (8085): LDA 1240h→ 3A4012

→ Lade Inhalt der Speicherstelle 1240in das Register A

Memory Address

A 0 123E

123F

74 1240

1241

Memory Address

A 74 123E

123F

74 1240

1241

LDA 1240h

Operator Adresse des Operanden

1 Byte 2 Byte

CPU Grundlagen, ZAI HTL Rennweg 2020-02 Seite 17

Indirekte RegisterAdressierung

• Indirekte Registeradressierung (Register-Indirect Mode)• Quelle oder Ziel des Befehls befinden sich im Speicher• Adresse des Operanden wird aus Register (oder Registerpaar) ausgelesen (ist also

nicht fest codiert) ➔ Zeiger (Pointer)• VT: Befehl kann mit jedem Aufruf eine andere Speicherzelle dereferenzieren (=

über einen Zeiger auf eine Speicherzelle zugreifen)

z.B. (8085): MOV A, M

→ A … Ziel, →M = Speicherstelle, die durch Registerpaar H,L bestimmt wird

Memory Address

A 0 123E

47 123F

H 12 1240

L 3F 1241

Memory Address

A 47 123E

47 123F

H 12 1240

L 3F 1241

MOV A,M

CPU Grundlagen, ZAI HTL Rennweg 2020-02 Seite 18

Page 10: CPU GRUNDLAGEN -2zai/HTL/SYT... · CPU GRUNDLAGEN -2 V20.01 H. Zainzinger, Februar 2020 Prozessor -Busse (WH) klassische CPU kommuniziert nach außen über Busse = logisch zusammengehörige

Indizierte Adressierung

• Indizierte Adressierung (Indexed Mode)• Quelle oder Ziel des Befehls befinden sich im Speicher• Adresse des Operanden wird berechnet:• Adresse = Basisadresse + Index• Basisadresse ist eine Konstante • Index = Displacement = Offset• Index wird in einem Register gespeichert

Bsp: MOV A, 123Eh[R] (gibt es nicht beim 8085)• Kopiert den Wert von der Adresse (123E + R )ins Register A

MOV A, 123Eh[R]

Memory Address

A 0 41 123E

12 123F

R 2 74 1240

47 1241

Memory Address

A 74 41 123E

12 123F

R 2 74 1240

47 1241

+2

CPU Grundlagen, ZAI HTL Rennweg 2020-02 Seite 19

Indirekte Zeiger-Adressierung

• Indirekte Zeiger-Adressierung (Indirect Pointer-Mode)• Quelle oder Ziel des Befehls befinden sich im Speicher• Adresse des Operanden wird aus dem Speicher ausgelesen (ist also nicht fest

codiert) ➔ Zeiger (Pointer) = Wert, dessen Bedeutung eine Speicheradresse ist. VT: Befehl kann mit jedem Aufruf eine andere Speicherzelle dereferenzieren (= über einen Zeiger auf eine Speicherzelle zugreifen)

• NT: langsam (2 Speicherzugriffe erforderlich)Bsp: MOV A, [123Eh] (gibt es nicht beim 8085)• Kopiert den Wert von jener Adresse, die in Speicherstelle 123E steht

MOV A, [123Eh]

Memory Address

A 0 41 123E

12 123F

74 1240

47 1241

Memory Address

A 47 41 123E

12 123F

74 1240

47 1241

CPU Grundlagen, ZAI HTL Rennweg 2020-02 Seite 20

Page 11: CPU GRUNDLAGEN -2zai/HTL/SYT... · CPU GRUNDLAGEN -2 V20.01 H. Zainzinger, Februar 2020 Prozessor -Busse (WH) klassische CPU kommuniziert nach außen über Busse = logisch zusammengehörige

CISC Architektur

Ziel: komplexere Funktionen direkt durch den Prozessor mit einem Maschinenbefehl durchführen (Complex Instruction Set Computer)

CISC Eigenschaften

• Große Anzahl an Maschinenbefehlen (>100)

• Komplexe Operationen direkt in der Hardware

• Unterschiedliche Befehlslänge

• Unterschiedliche Ausführungszeiten für die einzelnen Befehle

• Große Anzahl unterschiedlicher Adressierungsarten

• Kleine Anzahl von Registern

• Die meisten Register werden für spezielle Aufgaben eingesetzt

• Unterstützung mehrerer Datentypen direkt durch die Hardware (z.BString-Befehle, Gleitkommabefehle)

• Interpretation der einzelnen Befehle (Microcodes) in der CPU durch Mikroprogramm

CPU Grundlagen, ZAI HTL Rennweg 2020-02 Seite 21

RISC Architektur

Ziel: wenige, dafür aber schnell auszuführende Befehle (Reduced Instruction Set Computer)

RISC Eigenschaften

• Wenige, schnell ausführbare Maschinenbefehlen (Low RISC-Prozessor: ca. 20 Befehle)

• Einfache Operationen, in einem Verarbeitungsschritt ausführbar

• Gleiche Ausführungszeiten für die einzelnen Befehle

• Schnelle Decodierung (Maschinenbefehle sind gleich lang)

• Geringe Anzahl unterschiedlicher Adressierungsarten (z.B. Load/Store Architektur)

• Große Anzahl von Registern, die meisten sind frei verwendbar → weniger Zugriffe auf (langsameren) Hauptspeicher erforderlich

• Feste Verdrahtung des Steuerwerks (kein Mikroprogramm)

• Einfacher im Entwurf → kleinerer Chip

• höhere Taktfrequenz oder geringerer Energieverbrauch möglich

• Mehr Platz für schnellen Speicher auf dem Chip (z.B.: viele Register, Cache)

• Ermöglicht einfaches Pipelining

CPU Grundlagen, ZAI HTL Rennweg 2020-02 Seite 22

Page 12: CPU GRUNDLAGEN -2zai/HTL/SYT... · CPU GRUNDLAGEN -2 V20.01 H. Zainzinger, Februar 2020 Prozessor -Busse (WH) klassische CPU kommuniziert nach außen über Busse = logisch zusammengehörige

Leistungsmerkmale CPU

Wortbreite der Arbeitsregister (incl. AKKU):• Definiert Wertebereich von Ganzzahlen und • Genauigkeit / Wertebereich von Gleitpunktzahlen

Wortbreite des Datenbusses• Wie viele Bits werden gleichzeitig aus Speicher übertragen• → Entscheidend für Geschwindigkeit des Datenaustausches

Wortbreite des Adressbusses:• →Max. Größe des physischen Arbeitsspeichers.

Taktfrequenz (Clock-rate):• Rechengeschwindigkeit der CPU• Meist Vielfaches der Mainboard-Taktfrequenz• „Overclocking“ führt zu Überhitzung

CPU Grundlagen, ZAI HTL Rennweg 2020-02 Seite 23

CPU-Funktionsblöcke Intel-Core

Quelle: c’t 2016, Heft 11

BPU: Branch Prediction Unit

µOP = Micro-Operation

CPU Grundlagen, ZAI HTL Rennweg 2020-02 Seite 24

Page 13: CPU GRUNDLAGEN -2zai/HTL/SYT... · CPU GRUNDLAGEN -2 V20.01 H. Zainzinger, Februar 2020 Prozessor -Busse (WH) klassische CPU kommuniziert nach außen über Busse = logisch zusammengehörige

CPU-Funktionsblöcke Intel-Core

Quelle: c’t 2016, Heft 11

Quelle: c’t 2016, Heft 11

CPU Grundlagen, ZAI HTL Rennweg 2020-02 Seite 25

Kontrollfragen zum Handout CPU- Prozessorfassungs-Grundlagen

1. Was sind die wesentlichen Aufgaben des CPU Front-Ends?2. Was bedeutet Pipelining?3. Wozu wird die BPU (Branch Prediction Unit) verwendet?4. Was sind Befehle in Zwei-Operanden-Form / Drei-Operanden Form?5. Was ist ein µOP?6. Was bedeutet Out-of-Order Execution (OoO)?7. Was ist In-Order-Technik?8. Wozu dient der Reorder Buffer (ROB)?9. Was ist der Loop-Stream-Detector?10. Was macht ein TLB (=Translation Lookaside Buffer)?11. Was sind: FPU, AGU? (→Wikipedia)12. Wozu gibt es deutlich mehr (versteckte) physische Register als sichtbare (logische)

Architektur-Register?13. Was macht die Allocate und Rename-Einheit?14. Warum gibt es zwei Level 1 Caches (L1-D-Cache und L1-I-Cache) → Um welche wesentliche

Rechnerarchitektur handelt es sich dabei?15. Was wird im (unified) Level 2 Cache gespeichert?16. Warum sind die Kontakte einer CPU vergoldet?17. Wozu befinden sich direkt auf der CPU-Unterseite Kondensatoren?18. Was ist ein Integrated Heat Spreader (IHS)?19. Warum haben moderne CPUs über 100 Anschlüsse (=Pins) für die Stromversorgung?20. Wie hoch ist die typische Versorgungsspannung eines modernen Prozessors? 21. Wie viel Strom fließt dabei (größenordnungsmäßig) bei Voll-Last?

CPU Grundlagen, ZAI HTL Rennweg 2020-02 Seite 26

Page 14: CPU GRUNDLAGEN -2zai/HTL/SYT... · CPU GRUNDLAGEN -2 V20.01 H. Zainzinger, Februar 2020 Prozessor -Busse (WH) klassische CPU kommuniziert nach außen über Busse = logisch zusammengehörige

Benchmarks

Benchmark = Referenzprogramme, zur Messung der Leistung eines Computers Dabei wird die Ausführungsdauer (von Start bis Ende) des Programms gemessen

MIPS • „Million Instructions Per Second“• Anzahl der Befehle, die eine CPU pro Sekunde ausführen kann

FLOPS• „Floating Point Operations Second“• Anzahl der Gleitpunktoperationen, die eine CPU pro Sekunde ausführen kann

SPEC-Benchmarak (Standard Performance Evaluation Corporation)• besteht aus mehrere Kategorien, z.B.:

• SPECint: Integer-Leistung• SPECfp: Gleitkomma-Leistung• SPECvirt: Leistung von Datacenter-Server für virtuelle Umgebungen• SPECviewperf: Grafik-Leistung• SPECpower: Energieeffizienz = Rechenleistung pro Watt

CPU Grundlagen, ZAI HTL Rennweg 2020-02 Seite 27

aus c’t 2015, Heft 27

Thermal Design Power (TDP)Wird CPU zu heiß ➔ Taktfrequenz wird gesenktTurbo-Boost: Bei Bedarf wird CPU kurzfristig höher getaktet (z.B. bei komplexen Berechnungen)

CMOS-Gleichung: 𝑷 ~ 𝑪𝑳 ∙ 𝑼𝟐 ∙ 𝒇CPU Grundlagen, ZAI HTL Rennweg 2020-02 Seite 28

Page 15: CPU GRUNDLAGEN -2zai/HTL/SYT... · CPU GRUNDLAGEN -2 V20.01 H. Zainzinger, Februar 2020 Prozessor -Busse (WH) klassische CPU kommuniziert nach außen über Busse = logisch zusammengehörige

CPU Grundlagen, ZAI HTL Rennweg 2020-02 Seite 29

Befehlsstufen (Stages)

• Der durch den Befehlszähler adressierte Befehl wird aus dem Arbeitsspeicher geladen.

• Der Befehlszähler wird anschließend hochgezählt.

Befehlsbereitstellungsphase: Befehlscode laden (IF, Instruction Fetch)

• Der geladene Befehl wird dekodiert

• Notwendige Daten aus Arbeitsspeicher oder Registersatz laden (=Operanden abrufen)

Instruktion dekodieren und Laden der Daten (ID, Instruction Decoding)

• Der dekodierte Befehl wir ausgeführt und das Ergebnis gepuffert.

Befehl ausführen (EX, Execution)

• Ergebnis in den Arbeitsspeicher oder in den Registersatz zurückschreiben

Ergebnisse zurückschreiben (WB, Write Back)

CPU Grundlagen, ZAI HTL Rennweg 2020-02 Seite 30

Page 16: CPU GRUNDLAGEN -2zai/HTL/SYT... · CPU GRUNDLAGEN -2 V20.01 H. Zainzinger, Februar 2020 Prozessor -Busse (WH) klassische CPU kommuniziert nach außen über Busse = logisch zusammengehörige

Pipeline

Befehlsverarbeitung ohne Pipelining

IF ID EX WBIF ID EX WB

IF ID EX WBIF ID EX WB

Befehl Nr.

1234

ZeitTaktzyklen

Unterschiedliche Phasen werden von verschiedenen Schaltkreisen innerhalb der CPU abgearbeitetIdee: Phasen der Befehlsabarbeitung parallelisieren (wie bei Fließband)Pipeline mit mehreren Stufen =Stages (hier: 4 Stages)

Befehlsverarbeitung mit Pipelining

Befehl Nr.

IF ID EX WBIF ID EX WB

IF ID EX WBIF ID EX WB

1234

ZeitTaktzyklen

CPU Grundlagen, ZAI HTL Rennweg 2020-02 Seite 31

Pipeline Hazards (=Konflikte)

Data Hazard = Datenabhängigkeit• Bei 2 aufeinanderfolgenden Befehlen kann passieren, dass der 2. Befehl das

Ergebnis des ersten Befehls benötigt.• Durch die parallele Befehlsausführung ist es möglich, dass der erste Befehl noch

nicht abgeschlossen ist.Vermeidung von Data Hazards:• Einfügen von Wartezyklen (NOP)• Befehlsreihenfolge ändern (s.u.)

Parallele Befehlsausführung: Problem

Befehl 2 verwendet A-Register, nochbevor Befehl 1 das Ergebnis ausgeführt hat

MVI A,5 ;Befehl 1

ADD B ;Befehl 2

Befehl Nr.

Zeit

MVI A,5

ADD B

IF ID EX WBIF ID EX WB

IF ID EX WBIF ID EX WB

1234

Befehl Nr.

Zeit

MVI A,5IF ID EX WBIF ID EX WB

IF ID EX WBIF ID EX WB

1234

NOP

NOP

ADD B

CPU Grundlagen, ZAI HTL Rennweg 2020-02 Seite 32

Page 17: CPU GRUNDLAGEN -2zai/HTL/SYT... · CPU GRUNDLAGEN -2 V20.01 H. Zainzinger, Februar 2020 Prozessor -Busse (WH) klassische CPU kommuniziert nach außen über Busse = logisch zusammengehörige

Pipeline Hazards (=Konflikte)

Control Hazard bei bedingten Sprungbefehlen• Bei Verzweigungen, die von Bedingungen abhängen• Zuerst muss Bedingung ausgewertet werden• Danach erst kann entschieden werden, an welche Stelle zu springen istVermeidung von Control Hazards:• Einfügen von Wartezyklen (NOP)• Spekulative Befehlsausführung = Out of Order Execution (OoO): CPU führt den

wahrscheinlichsten Folgebefehl aus. Wurde mit der falschen Befehlssequenz weitergerechnet → Pipeline muss geleert werden (=pipeline flush)

Parallele Befehlsausführung: Problem

Nachdem JC Ziel die IF Phase verlassen hat, kann nicht sofort der nächste Befehl (DCR A) geladen werden, weil ja noch nicht bekannt ist, ob gesprungen werden muss.

ADD B ;Befehl 1:A=A+B

JC Ziel ;Springe bei Übertrag

DCR A ;A=A-1

Ziel:

ADD B

JC Ziel

DCR A

Befehl Nr.

Zeit

IF ID EX WBIF ID EX WB

IF ID EX WBIF ID EX WB

1234

CPU Grundlagen, ZAI HTL Rennweg 2020-02 Seite 33

Piepline Stages in Intel Prozessoren

Quelle: https://en.wikipedia.org/wiki/List_of_Intel_CPU_microarchitectures

CPU Grundlagen, ZAI HTL Rennweg 2020-02

Year Micro-architecturePipelinestages

MHz [nm]

19788086 (8086, 8088) 2 530001982186 (80186, 80188) 2 253000

1982286 (80286) 3 2515001985386 (80386) 3 331500

1989486 (80486) 5 10010001993P5 (Pentium) 5 2008001995P6 (Pentium Pro) 14 450500

1997P5 (Pentium MMX) 6 2333501999P6 (Pentium III) 12 1400250

2000Pentium 4 (Willamette)20

2000180

2002Pentium 4 (Northwood, Gallatin)

3466130

2003Pentium M 10 23331302004Pentium 4 (Prescott) 31 3800902006Intel Core

12300065

2007Penryn 333345

2008Nehalem 20 3600

Bonnell 16 2100

Year Micro-architecturePipelinestages

MHz [nm]

2010Westmere 20 373032

2011Saltwell 16 2130Sandy Bridge

144000

2012Ivy Bridge 410022

2013Silvermont 17 2670Haswell

144400

2014Broadwell 3700

14

2015Airmont 17 2640

Skylake 14 4200

2016Goldmont 20 2600

Kaby Lake14

4500

2017Coffee Lake 5000Goldmont Plus 20 2800

2018Cannon Lake

14

320010Whiskey Lake 4800

14Amber Lake 4200

2019Cascade Lake 4400Comet Lake 4900

Ice Lake, Lakefield 14 410010

Seite 34

Page 18: CPU GRUNDLAGEN -2zai/HTL/SYT... · CPU GRUNDLAGEN -2 V20.01 H. Zainzinger, Februar 2020 Prozessor -Busse (WH) klassische CPU kommuniziert nach außen über Busse = logisch zusammengehörige

CPU mit mehreren Pipelines

Vorteil• mehrere Befehle können gleichzeitig ausgeführt werdenNachteil• Vervielfachung der Hardware (von S2 bis S5)

CPU Grundlagen, ZAI HTL Rennweg 2020-02 Seite 35

Superskalare Architektur

• während Befehl 1 z.B. in der Gleitkommaeinheit ausgeführt wird (viele Taktzyklen), kann der nächste (kurze) Befehl 2 in der ALU berechnet werden

• Achtung: Falls Befehl 2 das Ergebnis von Befehl 1 benötigt ➔ Befehl 2 muss warten!

CPU Grundlagen, ZAI HTL Rennweg 2020-02 Seite 36

Page 19: CPU GRUNDLAGEN -2zai/HTL/SYT... · CPU GRUNDLAGEN -2 V20.01 H. Zainzinger, Februar 2020 Prozessor -Busse (WH) klassische CPU kommuniziert nach außen über Busse = logisch zusammengehörige

Beschleunigung von Prozessoren

•höhere Leistungsaufnahme (→kürzere Akkulaufzeit)

•höhere Wärmeentwicklung (→ schneller drehende = lautere Lüfter)→Man versucht, die Versorgungsspannung zu reduzieren (CMOS-Gleichung!)

Taktfrequenz erhöhen

•Pipeline Hazards machen Vorteil wieder zunichte

Größere Anzahl an Pipeline-Stufen / mehrere Pipelines / Superskalar-Architektur

•Software muss diese auch wirklich verwenden

Zusätzliche Funktionseinheiten einbauen

•größere Chipfläche → höhere Herstellungskosten

Mehrere CPUs (Kerne) auf dem selben Chip integrieren

•ein zweiter Thread (=paralleler Programmablauf) kann Hardware nutzen, die ein beschäftigter erster Thread gerade nicht benötigt

Multithreading

CPU Grundlagen, ZAI HTL Rennweg 2020-02 Seite 37

Beispiel: Zusätzliche Funktionseinheiten (Intel)

→ neue, leistungsfähige Maschinenbefehleaktuelle Beispiele:

AVX-2 (Advanced Vector Extensions)Zur besonders schnellen Verarbeitung von Gleitkomma- und Integer-Zahlen.• Nützlich für gleitkommaintensive Berechnung, vor allem im Multimedia-,

wissenschaftlichen oder Finanzberechnungen. • Neue Befehle der Form C = A + B (nicht destruktive Drei-Operanden-Form):

Rechenergebnis zerstört das Quellregister nicht → Verringert die Registerlast• Erhöhte Parallelität und Durchsatz von Gleitkommaberechnungen• Größere Registerbreite (z.B.: AVX-512 mit 512 bit Registerbreite in Xeon Phi Knights

Landing)

TSX (Transactional Synchronization Extensions)• Beschleunigt die Ausführung von Software auf Mehrkern-Prozessoren • Code wird parallel ausgeführt auch dann, wenn SW nicht in mehrere Prozesse oder

Threads aufgeteilt wurde• Anwendung besonders bei Datenbanksystemen• Wurde nachträglich auf mehreren Prozessoren per Microcode-Update deaktiviert• heißt bei AMD: Advanced Synchronization Facility (ASF)

CPU Grundlagen, ZAI HTL Rennweg 2020-02 Seite 38

Page 20: CPU GRUNDLAGEN -2zai/HTL/SYT... · CPU GRUNDLAGEN -2 V20.01 H. Zainzinger, Februar 2020 Prozessor -Busse (WH) klassische CPU kommuniziert nach außen über Busse = logisch zusammengehörige

Multi-Core Prozessoren

Ein Chip mit einem CPU-Kern und mehreren Pipelines

Mehrere Befehle (aus mehreren Prozessen) können gleichzeitig ausgeführt werden, sofern diese nicht die selben Funktionseinheiten auf der CPU benötigen

Ein Chip mit zwei CPU-Kernen (und je einer Pipeline)

Mehrere Prozesse können gleichzeitig ausgeführt werden (ohne gegenseitige Beeinflussung)

CPU Grundlagen, ZAI HTL Rennweg 2020-02 Seite 39

Multi-Core Prozessoren

CPU Grundlagen, ZAI HTL Rennweg 2020-02 Quelle: https://en.wikichip.org/wiki/amd/microarchitectures/zen_2

Quelle: https://www.microway.com/hpc-tech-tips/amd-epyc-rome-cpu-review/

Bsp. Serverprozessor AMD EPYC 7702 ES• 1 I/O Die:

• 128 Lanes PCIe V4 • Kanal DDR V4)

• 8 Compute Dies = CPU Chiplets• Compute Die-Size 10.32 mm × 7.34 mm• Wieviele Kerne hat ein Compute Die?

Seite 40

Page 21: CPU GRUNDLAGEN -2zai/HTL/SYT... · CPU GRUNDLAGEN -2 V20.01 H. Zainzinger, Februar 2020 Prozessor -Busse (WH) klassische CPU kommuniziert nach außen über Busse = logisch zusammengehörige

Quelle: c't 2018/10 Seite 108

CPU Grundlagen, ZAI HTL Rennweg 2020-02 Seite 41

Multithreading

Mehrere Prozesse (oder Threads) können (scheinbar) gleichzeitig ausgeführt werden!Bsp ohne Multithreading: 3 Threads (a), (b) (c).

Befehl A1 benötigt 1 Taktzyklus (auch A3, A4, A6-A8, B3-B8, C1-C3, C5, C7, C8)Befehl A2 greift auf Speicher zu, muss warten und benötigt 3 Zyklen

(auch A5, B1, B2, C4, C6)

→ Multithreading:Befehle von mehreren Threads abwechselnd hintereinander auf 1 Kern ausführen:

CPU Grundlagen, ZAI HTL Rennweg 2020-02 Seite 42

Page 22: CPU GRUNDLAGEN -2zai/HTL/SYT... · CPU GRUNDLAGEN -2 V20.01 H. Zainzinger, Februar 2020 Prozessor -Busse (WH) klassische CPU kommuniziert nach außen über Busse = logisch zusammengehörige

Multithreaded Programming

CPU Grundlagen, ZAI HTL Rennweg 2020-02 Seite 43

Hyperthreading (Intel)Simultaneous Multithreading (AMD)

Hyperthreading (HT) = Simultaneous Multithreading (SMT):Multithreading bei Intel Prozessoren („Gleichzeitig“ mehrere Threads ausführen)

Für Betriebssystem sieht ein Core-i7-Chip mit Hyperthreading wie ein Dual-Prozessor aus, in dem beide CPUs einen allgemeinen Cache und den Hauptspeicher gemeinsam nutzen.

CPU Grundlagen, ZAI HTL Rennweg 2020-02 Seite 44

Page 23: CPU GRUNDLAGEN -2zai/HTL/SYT... · CPU GRUNDLAGEN -2 V20.01 H. Zainzinger, Februar 2020 Prozessor -Busse (WH) klassische CPU kommuniziert nach außen über Busse = logisch zusammengehörige

Info: Typennummern von Prozessoren

Quelle: c't 2018/10 Seite 103

CPU Grundlagen, ZAI HTL Rennweg 2020-02 Seite 45

Benchmarksaus c’t 2015, Heft 27

CPU Grundlagen, ZAI HTL Rennweg 2020-02 Seite 46

Page 24: CPU GRUNDLAGEN -2zai/HTL/SYT... · CPU GRUNDLAGEN -2 V20.01 H. Zainzinger, Februar 2020 Prozessor -Busse (WH) klassische CPU kommuniziert nach außen über Busse = logisch zusammengehörige

aus c’t 2015, Heft 27

Was bedeuten Intel Prozessornummer? Siehe: https://www.intel.de/content/www/de/de/processors/processor-numbers.htmlBsp: Intel Core i7-4600U

CPU Grundlagen, ZAI HTL Rennweg 2020-02 Seite 47

Prozessorarchitektur Intel Core-i7

jeder Kern (hier: 4) hat privaten L1 Daten und L1 Befehls-cache und L2 Cache

CPU Grundlagen, ZAI HTL Rennweg 2020-02 Seite 48

Page 25: CPU GRUNDLAGEN -2zai/HTL/SYT... · CPU GRUNDLAGEN -2 V20.01 H. Zainzinger, Februar 2020 Prozessor -Busse (WH) klassische CPU kommuniziert nach außen über Busse = logisch zusammengehörige

Prozessorarchitektur Intel Core-i9

CPU Grundlagen, ZAI HTL Rennweg 2020-02

https://www.anandtech.com/show/11550/the-intel-skylakex-review-core-i9-7900x-i7-7820x-and-i7-7800x-tested/5

Seite 49

Prozessorarchitektur AMD Ryzen Threadripper

Abbildungen: c’t 2017, Heft 18

Ryzen Threadripper:• bis zu 4 aktive Dies• bis zu 32 Kerne• 64 Threads (SMT)• 64 PCI-Express-Lanes• 4 DDR4- Speicherkanäle

Als variablen Turbo gibt es obendrein die Funktion Extended Frequency Range (XFR): Hat der verwendete Kühler noch Reserven, dürfen der Threadripper 1950X und 1920X in 25-MHz-Schritten bis zu 200 MHz über die genannten Werte hinausgehen.

CPU Grundlagen, ZAI HTL Rennweg 2020-02 Seite 50

Page 26: CPU GRUNDLAGEN -2zai/HTL/SYT... · CPU GRUNDLAGEN -2 V20.01 H. Zainzinger, Februar 2020 Prozessor -Busse (WH) klassische CPU kommuniziert nach außen über Busse = logisch zusammengehörige

Prozessorarchitektur AMD Ryzen Threadripper

Quelle: c’t 2019, Heft 16

Quelle: c’t 2017, Heft 18

1950X

CPU Grundlagen, ZAI HTL Rennweg 2020-02 Seite 51

Fachartikel: "Transistor-Wettrüsten bei Prozessoren"

CPU Grundlagen, ZAI HTL Rennweg 2020-02

Satte 35 Milliarden Transistoren quetscht

Xilinx auf das Silizium-Die des kommenden FPGA Virtex UltraScale+ VU19P. Das ist der

Rekordwert für einen „normalen“ Prozessor,

also einen Logikchip.

Bei DRAM lassen sich Transistoren zwar noch dichter packen, aber die Silizium-Dies sind

kleiner, sonst würden sie zu teuer. Mit Die-

Stapeln und Chiplets bekommt man jedoch viel mehr Transistoren in ein Bauelement –

und dann gibt es noch Spezialkonstruktionen,

die komplette Wafer nutzen, etwa im Heidelberger BrainScaleS-Computer oder

beim KI-Monster von Cerebras mit 400.000

Rechenkernen aus 1,2 Billionen Transistoren. […]

Zitiert aus c't Heft 20/2019 Seite 28

Seite 52

Page 27: CPU GRUNDLAGEN -2zai/HTL/SYT... · CPU GRUNDLAGEN -2 V20.01 H. Zainzinger, Februar 2020 Prozessor -Busse (WH) klassische CPU kommuniziert nach außen über Busse = logisch zusammengehörige

Fachartikel: AMD setzt auf Chiplets und 7 Nanometer

CPU Grundlagen, ZAI HTL Rennweg 2020-02

[…] Anders als in den letzten Jahren kann AMD einen

Fertigungsvorteil in die Waagschale werfen. Denn bei Intel

halten die Schwierigkeiten mit der eigentlich schon vor

Jahren fest eingeplanten 10-nm-Herstellung an, während die

von AMD beauftragte Chipschmiede TSMC bereits

Schaltkreise mit 7 nm feinen Strukturen liefert. Die sollen

doppelt so viele Transistoren pro Quadratmillimeter packen

wie die hauseigene 14-nm-Technik. AMD nutzt diesen Vorteil

bei Zen 2 auf geschickte Weise und dekonstruiert den

Prozessor namens „Rome“. Denn nur die eigentlichen

Rechenkerne samt Cache und Infinity-Fabric-(IF-)Link zur

Anbindung werden in 7 nm bei TSMC hergestellt, ein

Compute-Cache-Die (CCD) gewissermaßen. Bis zu acht

dieser kleinen Chip-chen (Chiplets) mit je acht CPU-Kernen

sind via IF-Link mit einem zentralen I/O-Die verbunden, das

Fertigungspartner Globalfoundries in 14 nm herstellt. Der

beherbergt außer den acht Speichercontrollern und den PCI-

Express Root-Hubs, die erstmals in der x86-Welt auch PCIe

4.0 beherrschen, auch den IF-Switch. Über ihn

kommunizieren die Rechenkerne miteinander. AMD schlägt

zwei Fliegen mit einer Klappe, da im I/O-Die auch die

analogen Schaltungen sitzen, die schlechter als reine Logik

oder Cache von der kleineren Fertigungsgeometrie

profitieren würden. Zum genauen Aufbau schweigt sich der

Hersteller noch aus.

Auf Nachfrage gab AMD immerhin zu Protokoll, dass

Programmierer nun mit deterministischen Latenzen beim

Speicherzugriff rechnen können. […]

Nicht nur Prozessoren, auch Grafikchips hat AMD

überarbeitet und lässt diese in 7-nm-Technik fertigen. Sie

sollen als Radeon Instinct MI50 und MI60,

Beschleunigerkarten für Machine Learning, noch 2018 auf

den Markt kommen. Die 13,2 Milliarden Transistoren quetscht

AMD auf 331 Quadratmillimeter – zum Vergleich: Nvidias

Tesla V100 ist 146 Prozent größer. Dank der kleineren

Chipfläche kann AMD Nvidia vor allem preislich unter Druck

setzen.

Die neue AMD-GPU basiert auf der Vega-GPU, hat aber einige

Neuerungen bekommen. Statt zwei arbeiten nun vier

Speichercontroller, was außer verdoppelter Transferrate von

bis zu 1 TByte/s auch die zweifache Speichermenge von 32

GByte ermöglicht. Zudem sind nun sämtliche Caches und

Register ECC-geschützt. Die 4096 Shader-Recheneinheiten

schaffen bei doppelter Gleitkommagenauigkeit nun 50

Prozent des regulären FP32-Durchsatzes und toppen mit 7,4

TFlops Nvidias PCIe-Version der Tesla V100 knapp. Fürs

Machine Learning hat AMD die Shader-Einheiten umgebaut,

sodass sie nun auch INT8 (59 Tera-Ops/s) und INT4 (118

TOPS) beherrschen. […]

Zitiert aus c't Heft 25/2018 Seite 22 bzwhttps://www.heise.de/select/ct/2018/25/1544258829095894

Seite 53

Strukturgrößen = kleinste Struktur auf Halbleiterchip. Derzeit: 10 nm (z.B. Samsung S8, Apple iPhone 8) → Haar ist 5000x so dickab Juli 2019: 7nm in CPU (AMD) erwartet → deutlich weniger Energieverbrauch!

Quelle: Frank Klemm in der Wikipedia auf Deutsch, CC BY-SA 3.0, https://commons.wikimedia.org/w/index.php?curid=36936777

CPU Grundlagen, ZAI HTL Rennweg 2020-02 Seite 54

Page 28: CPU GRUNDLAGEN -2zai/HTL/SYT... · CPU GRUNDLAGEN -2 V20.01 H. Zainzinger, Februar 2020 Prozessor -Busse (WH) klassische CPU kommuniziert nach außen über Busse = logisch zusammengehörige

Harddisks: Preis/Leistungsverhältnis verbessert jährlich um ca. 50%

Speicherchips (DRAM)→ Ca. alle 3 Jahre eine neue Generation an Speicherchips mit 4-facher Speicherkapazität→ Anzahl der Transistoren verdoppelt sich ungefähr alle 1,5 Jahre:

Mooresches „Gesetz“→ über viele Jahre verdoppelte sich im gleichen Zeitraum die Komplexität der

Computerchips bei gleichbleibenden Kosten (Gordon Moore 1965)

Anzahl der Transistoren bei Speicherchips (Quelle: Tanenbaum/Austin: Rechnerarchitekturen, Pearson 2014)

Faktor 1024 = 210

→ 10 mal verdoppelt

ca. 15 Jahre

CPU Grundlagen, ZAI HTL Rennweg 2020-02 Seite 55

Strukturgrößen

Quelle: https://medium.com/stoned-immaculate/the-120-years-of-moores-law-fccddc16dc76

CPU Grundlagen, ZAI HTL Rennweg 2020-02 Seite 56

Page 29: CPU GRUNDLAGEN -2zai/HTL/SYT... · CPU GRUNDLAGEN -2 V20.01 H. Zainzinger, Februar 2020 Prozessor -Busse (WH) klassische CPU kommuniziert nach außen über Busse = logisch zusammengehörige

Wachstumsspirale

technologischer Fortschritt (z.B. mehr Transistoren pro Chip)

bessere Produkte zu niedrigeren Preisen

neue Anwendungen

neue Märkte,neue Firmen

größerer Wettbewerb

CPU Grundlagen, ZAI HTL Rennweg 2020-02 Seite 57

Nathans 1. Gesetz: Software ist wie ein ideales Gas und füllt jeden „Container“ ausProgramme werden immer komplexer und "ressourcenhungriger" programmiert. Egal wie viele Ressourcen vorhanden sind, die Programme benutzen alle vorhandenen Ressourcen (Hauptspeicher, Festplattenspeicher, CPU Performance, …)

Nathans 2. Gesetz: Software wächst, bis sie durch das Mooresche Gesetz begrenzt wird→ zwingt jeden Prozessor in die Knie, bevor neues Modell verfügbar ist

Nathans 3. Gesetz: Durch Software-Wachstum wird Mooresches Gesetz „ermöglicht“→ Software zu ressourcenhungrig (zu groß / zu langsam)→ Bedarf nach leistungsfähigeren Chips (bei gleichem Preis)

Nathans 4. Gesetz: SW ist nur durch menschliche Ambitionen und Erwartungen limitiert

Nathans Software „Gesetze“→ Nathan Myhrvold, 1997 CTO von Microsoft

CPU Grundlagen, ZAI HTL Rennweg 2020-02 Seite 58