15
RW- Systemarchitektur Kap. 5 Kapitel 3 5 Rechnerorganisation 5.1 Leistung 5.2 Pipelining

Kapitel 3 5 Rechnerorganisation 5.1 Leistung 5.2 Pipelining

Embed Size (px)

Citation preview

Page 1: Kapitel 3 5 Rechnerorganisation 5.1 Leistung 5.2 Pipelining

RW-Systemarchitektur Kap. 5

Kapitel 3

5 Rechnerorganisation

5.1 Leistung5.2 Pipelining

Page 2: Kapitel 3 5 Rechnerorganisation 5.1 Leistung 5.2 Pipelining

5.1 Leistung

Wiederholung und Diskussion

Page 3: Kapitel 3 5 Rechnerorganisation 5.1 Leistung 5.2 Pipelining

RW-Systemarchitektur Kap. 5

Zyklen, Taktraten Zeit im Rechner schreitet in diskreten Schritten fort, gesteuert durch

eine Uhr. Das Zeitintervall zwischen zwei Uhrticks ist ein Takt, ein Zyklus (cycle);

seine Länge ist die Zykluszeit. Die Ausführung eines Maschinenbefehls braucht mehrere Zyklen. Dies ist bei vielen Architekturen verschieden für verschiedene Befehle

und nicht mal konstant für einen individuellen Befehl. Für einen gegebenen Befehl hängt diese Zahl vom Zustand ab, in dem

der Befehl ausgeführt wird. Man betrachtet wieder

die durchschnittliche Zahl bei universellen Rechnern bei Echtzeitsystemen :

die Zahl bei gegebenem Zustand die Zahl im schlechtest möglichen Fall die Zahl im schlechtesten Fall bei gegebener Menge von Zuständen

CPI (cycles per instruction) wird i.A. für die durchschnittliche Zahl von Zyklen pro Befehl verwendet.

Warnung: Name passt bei Fließbandverarbeitung nicht mehr!

Page 4: Kapitel 3 5 Rechnerorganisation 5.1 Leistung 5.2 Pipelining

RW-Systemarchitektur Kap. 5

Leistung auf der Befehlsebene

Bisherige Leistungsmaße bezogen sich nicht auf die ausgeführten Befehle

Anzahl CPU-Zyklen für die Ausführung eines Programms =Zahl der ausgeführten Befehle Zahl der Zyklen pro Befehl

Also insgesamt:CPU-Ausführungszeit =

Zahl der ausgeführten Befehle Zahl der Zyklen pro Befehl Zykluszeit

Einfluss des Rechnerarchitekten auf die drei Parameter1. Zahl der ausgeführten Befehle 2. Zahl der Zyklen pro Befehl 3. Zykluszeit

Page 5: Kapitel 3 5 Rechnerorganisation 5.1 Leistung 5.2 Pipelining

RW-Systemarchitektur Kap. 5

1. Zahl der ausgeführten Befehle

Schleifengrenzen und Rekursionstiefe bleiben fest Änderung in der Zahl der erzeugten Befehle

führt zum Unterschied von Reduced Instruction Set Computer (RISC), z.B. MIPS,

SPARC, PowerPC kleiner Befehlsvorrat, wenige Adressierungsarten einfache Logik zur Implementierung, viel Platz für Register

Complex Instruction Set Computer (CISC); z.B. Pentium komplexe Instruktionen, viele Adressierungsarten Implementierung über Mikroprogramme wenig Platz für Register

Für ein Quellprogramm und einen CISC-Zielrechner werden i.A. Maschinenprogramme mit weniger Befehlen erzeugt.

Page 6: Kapitel 3 5 Rechnerorganisation 5.1 Leistung 5.2 Pipelining

RW-Systemarchitektur Kap. 5

Adressierungsmodi im MC 68000

1. Data register direct 2. Address register direct 3. Register indirect 4. Register indirect with post-increment 5. Register indirect with pre-decrement 6. Register indirect with displacement 7. Register indirect with index

8. Absolute short 9. Absolute long 10. PC relative with displacement 11. PC relative with index 12. Immediate 13. Quick Immediate 14. Implied register

Beispiel:d(An, Ix) scaled Address register indirect with Index and Address distance: St(cont(An) + cont(Ix) + d) mit An benutzt als Basis Register, Ix IndexRegister, 8-Bit-Versatz d.

Page 7: Kapitel 3 5 Rechnerorganisation 5.1 Leistung 5.2 Pipelining

RW-Systemarchitektur Kap. 5

Adressierungsmodi im MIPS Register Addressing in Sprungbefehlen PC-Relative Addressing in bedingten Sprüngen Pseudo-direct Addressing in Sprungbefehlen Base Addressing für Datenzugriff über

Basisadresse und Versatz (Offset)

SpeicherBasisadresse

Versatz

effektive Adresse

Page 8: Kapitel 3 5 Rechnerorganisation 5.1 Leistung 5.2 Pipelining

RW-Systemarchitektur Kap. 5

2. Zahl der Zyklen pro Befehl und 3. Zykluszeit

Single-Cycle Datenpfad führt jeden Befehl in einem Taktzyklus

aus; Taktzyklus kann kann sehr lange

dauern

Multi-Cycle Datenpfad hat viel kürzeren Taktzyklus (höhere

Taktrate) jeder Befehl benötigt mehrere

Taktzyklen

Single-Cycle Datenpfad Quelle: K. Diepold

Page 9: Kapitel 3 5 Rechnerorganisation 5.1 Leistung 5.2 Pipelining

RW-Systemarchitektur Kap. 5

Single-Cycle und Multi-Cycle-Datenpfad

Single-Cycle Datenpfad Bearbeitungszeit für alle Befehle

gleich lang, der langsamste bestimmt das

Tempo, Zykluszeit durch “kritischen Pfad”

bestimmt

Multi-Cycle-Datenpfad Befehlsausführung in mehrere Phasen

mit Zwischenspeicherung aufgeteilt, braucht mehrere Takte, kritischer Pfad und damit Takt verkürzt. Pro Phase nur ein Teil des Datenpfades

aktiv.

kritischer Pfad: der Pfad, dessen Länge die Gesamtdauer bestimmt

Multi-

Cycle-

Daten-

pfad

Quelle: K. Diepold

Page 10: Kapitel 3 5 Rechnerorganisation 5.1 Leistung 5.2 Pipelining

RW-Systemarchitektur Kap. 5 Kap. 5 10

Fließbandverarbeitung (Pipelining)

Pipelining verbindet beide Konzepte Taktzyklus wird kurz gehalten hohe Taktrate In jedem Taktzyklus kann ein Befehl abgearbeitet

werdenVorsicht:

der Übergang vom Single-Cycle Datenpfad zum Multi-Cycle Datenpfad erhöht den CPI!

Er verkürzt aber die Zykluszeit! Produkt, also Ausführungszeit des Befehls evtl. leicht

größer.Wodurch?

Page 11: Kapitel 3 5 Rechnerorganisation 5.1 Leistung 5.2 Pipelining

RW-Systemarchitektur Kap. 5 Kap. 5 11

Das Prinzip an einem alltäglichen Beispiel

Personen A, B, C, D kommen aus dem Urlaub; es ist vielschmutzige Wäsche zu waschen!

Zur Verfügung stehen: eine Waschmaschine (1/2 Stunde Laufzeit) ein Trockner (1/2 Stunde Laufzeit) eine Bügelmaschine (1/2 Stunde Arbeit zum Bügeln) ein Wäscheschrank (1/2 Stunde Arbeit zum

Einräumen)

jeder der Personen A, B, C, D aus dem Haushalt wäscht seine Wäsche selbst

Es gibt zwei Möglichkeiten, die vier Waschvorgänge auszuführen!

Page 12: Kapitel 3 5 Rechnerorganisation 5.1 Leistung 5.2 Pipelining

Dauer der Arbeiten: 8 Stunden

Dauer der Arbeiten: 3 1/2 Stunden

Das Prinzip an einem Beispiel

Time 76 PM 8 9 10 11 12 1 2 AM

ABCD

Time 76 PM 8 9 10 11 12 1 2 AM

ABCD

Taskorder

Taskorder

mit Pipelining

Time76 PM 8 9 10 11 12 1 2 AM

A

B

C

D

Taskorder

Page 13: Kapitel 3 5 Rechnerorganisation 5.1 Leistung 5.2 Pipelining

RW-Systemarchitektur Kap. 5 Kap. 5 13

Aufteilung der Befehlsabarbeitung in Phasen

Abarbeitung eines Maschinenbefehls in mehrere Phasen mit möglichst gleicher Dauer aufgeteilt.

Eine sinnvolle Aufteilung ist abhängig vom Befehlssatz und der verwendeten Hardware.

Beispiel: Abarbeitung in 5 Schritten: Befehls-Hole-Phase (instruction fetch) Dekodier-Phase / Lesen von Operanden aus Registern Ausführung / Adressberechnung (execute) Speicherzugriff (memory access) Abspeicher-Phase (result write back phase)

Page 14: Kapitel 3 5 Rechnerorganisation 5.1 Leistung 5.2 Pipelining

RW-Systemarchitektur Kap. 5

Aufteilung des Datenpfades in 5 Phasen

Instructionmemory

Address

4

32

0

Add Addresult

Shiftleft 2

Instruction

Mux

0

1

Add

PC

0Writedata

Mux

1Registers

Readdata 1

Readdata 2

Readregister 1

Readregister 2

16Sign

extend

Writeregister

Writedata

ReaddataAddress

Datamemory

1

ALUresult

Mux

ALUZero

IF: Instruction fetch ID: Instruction decode/register file read

EX: Execute/address calculation

MEM: Memory access WB: Write back

Page 15: Kapitel 3 5 Rechnerorganisation 5.1 Leistung 5.2 Pipelining

RW-Systemarchitektur Kap. 5 Kap. 5 16

Pipelining: Illustration

Annahme: Aufteilung der Befehlsabarbeitung in 5 gleichlange Phasen

Befehl 1: P1 P2 P3 P4 P5

Befehl 2: P1 P2 P3 P4 P5

Befehl 3: P1 P2 P3 P4 P5

Befehl 4: P1 P2 P3 P4 P5

Befehl 5: P1 P2 P3 P4 P5

Befehl 6: P1 P2 P3 P4 P5

Befehl 7: P1 P2 P3 P4 P5

Zeitschritt: 1 2 3 4 5 6 7 8 9 10 11

11 = (7-4) + 2 (5-1) Zyklen