• Keine Ergebnisse gefunden

Beispiel für eine R‐Typ‐Instruktion

N/A
N/A
Protected

Academic year: 2022

Aktie "Beispiel für eine R‐Typ‐Instruktion"

Copied!
41
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Beispiel für eine R‐Typ‐Instruktion

add $t1, $t2, $t3

• Instruktion wird gefetched und PC um 4 erhöht

• Instruktion wird gefetched und PC um 4 erhöht.

• Die Register $t2 (Instruction [25‐21]) und $t3 

(I t ti [20 16]) d d R i t Fil (Instruction [20‐16]) werden aus dem Register‐File  geladen.

f h d d ld (

• Die ALU führt die in dem Function‐Field (Instruction [5‐0]) codierte Operation auf den gelesenen Register‐

D t

Daten aus.

• Das Ergebnis der ALU wird in Register $t (Instruction

[15‐11]) zurück geschrieben.

(2)

Beispiel für eine Load/Save‐Instruktion

lw $t1, 8($t2)

• Instruktion wird gefetched und PC um 4 erhöht

• Instruktion wird gefetched und PC um 4 erhöht.

• Das Register $t2 (Instruction [25‐21]) wird aus dem  Register‐File geladen

Register‐File geladen.

• Die ALU addiert das Register‐Datum und den 32‐Bit Sign‐

exteded 16‐Bit‐Immediate‐Wert 8 (Instruction [15‐0]) exteded 16 Bit Immediate Wert 8 (Instruction [15 0]).

• Die Summe aus der ALU wird als Adresse für den  Datenspeicher verwendet.

Datenspeicher verwendet.

• Das Datum aus dem Datenspeicher wird in das Register‐File  geschrieben. Das Register in das geschrieben wird ist $t1 

g g g $

(Instruction [20‐16]).

(3)

Beispiel für eine Branch‐Instruktion

beq $t1, $t2, 42

• Instruktion wird gefetched und PC um 4 erhöht

• Instruktion wird gefetched und PC um 4 erhöht.

• Die Register $t1 (Instruction [25‐21]) und $t2 (Instruction [20‐16]) werden aus dem Register‐File geladen.

[ ]) g g

• Die Haupt‐ALU subtrahiert die ausgelesenen Register‐Daten  voneinander.

Di ät li h ALU ddi t PC+4 f d 32 Bit Si

Die zusätzliche ALU addiert PC+4 auf den 32‐Bit Sign‐

exteded und um 2 nach links geshiftete 16‐Bit‐Immediate‐

Wert 42 (Instruction [15‐0]). ( [ ])

• Das Zero‐Ergebins der Haupt‐ALU entschiedet ob der PC auf  PC+4 oder auf das Ergebnis der zusätzliche ALU gesetzt 

i d

wird.

(4)

Eine Übung zum Abschluss

In der vorigen „Übung zum Abschluss“ wurde das Blockschaltbild  des Datenpfads so erweitert, sodass auch die MIPS‐Instruktion j unterstützt wird.

Wie müssen Control und Alu Control modifiziert werden (wenn Wie müssen Control und Alu‐Control modifiziert werden (wenn  überhaupt), damit die MIPS‐Instruktion j auch von Seiten des  Control unterstützt wird?

Control unterstützt wird?

Erinnerung:

j addr # Springe nach Adresse addr

000010 address

Opcode Bits 31‐26

Adresse Bits 25‐0

J‐Typ

(5)

Pipelining

(6)

Pipelining

k kl

Instruktionszyklen

(7)

MIPS‐Instruktionszyklus

Ein MIPS‐Instruktionszklus besteht aus:

1 I t kti d S i h h l

1. Instruktion aus dem Speicher holen (IF: Instruction‐Fetch)

2 Instruktion decodieren und Operanden aus Register lesen 2. Instruktion decodieren und Operanden aus Register lesen

(ID: Instruction‐Decode/Register‐File‐Read)

3. Ausführen der Instruktion oder Adresse berechnen (EX: Execute/Address‐Calculation)

4. Datenspeicherzugriff

(MEM M A )

(MEM: Memory‐Access)

5. Resultat in Register abspeichern (WB: Write‐Back)

(WB: Write Back)

(8)

Instruktionszyklen in unserem Blockschaltbild

(9)

Instruktionszyklen generell

• Instruktionszyklen anderer moderner CPUs haben  diese oder eine sehr ähnliche Form von 

Instruktionszyklen.

U t hi d i d B

• Unterschiede sind z.B.:

– Instruktion decodieren und Operanden lesen sind zwei  getrennte Schritte. Dies ist z.B. notwendig,

• wenn Instruktionen sehr komplex codiert sind (z.B. x86  Instruktionen der Länge 1 bis 17 Byte)

• wenn Instruktionen Operanden im Speicher anstatt Register 

h b ( k b )

haben (z.B. einige Instruktionen bei x86)

(10)

Pipelining

l d

Die Pipelining‐Idee

(11)

Single‐Cycle‐Performance

Annahme die einzelnen Abschnitte des MIPS‐Instruktionszyklus  benötigen folgende Ausführungszeiten:

h d

Instruction‐Fetch 200ps, Register‐Read 100ps, ALU‐Operation 200ps,  Data‐Access 200ps, Register‐Write 100ps.

Wie hoch dürfen wir unseren Prozessor (ungefähr) Takten?

Die längste Instruktion benötigt 800ps. Also gilt für den Clock‐Cycle c:

Bildquelle: David A. Patterson und John L. Hennessy, „Computer Organization and Design“, Fourth Edition, 2012

(12)

Die Pipelining‐Idee am Beispiel Wäsche waschen

Waschen Trocknen Bearbeitungszeit pro 

Wäscheladung bleibt 

Falten

Einräumen dieselbe (Delay).

Gesamtzeit für alle  Wäscheladungen sinkt 

Bildquelle: David A. Patterson und John L. Hennessy, „Computer Organization and Design“, Fourth Edition, 2012

Einräumen (Throughput).

(13)

Was ist die Performance‐Ratio?

Annahme jeder Arbeitsgang beansprucht dieselbe Zeit. Was ist die  Performance‐Ratio für n Wäscheladungen?

Generell für k „Pipeline‐Stufen“, d.h. k Arbeitsgänge und gleiche  Anzahl Zeiteinheiten t pro Arbeitsgang?

(14)

Pipelining für unseren MIPS‐Prozessor

Im Folgenden betrachten wir zunächst ein ganz einfaches  Programm:

l $1 100($0) lw $1, 100($0) lw $2, 200($0) lw $3, 300($0) lw $3, 300($0) lw $4, 400($0) lw $5, 500($0)

Bemerkung: Da die MIPS‐Registernamen im Folgenden nicht von 

B d t i d b i i d P b i i l hä fi

Bedeutung sind, geben wir in den Programmbeispielen häufig nur  noch die Registernummern (z.B. wie oben $0 und $1) an. Außerdem  betrachten wir das spezielle Zero‐Register momentan nicht

betrachten wir das spezielle Zero Register momentan nicht.

Wie kann man die Pipelining‐Idee im Falle unseres MIPS‐Prozessors  anwenden?

(15)

Die Pipeline nach den ersten drei Instruktionen

Annahme:

IF = 200ps ID = 100psp EX = 200ps MEM = 200ps WB = 100ps

Bildquelle: David A. Patterson und John L. Hennessy, „Computer Organization and Design“, Fourth Edition, 2012

WB   100ps

(16)

Was ist die Performance‐Ratio?

Wie eben gezeigt wäre für k Pipeline‐Stufen und eine große Zahl an  ausgeführten Instruktionen die Performance‐Ratio gleich k, wenn  jede Pipeline Stufe dieselbe Zeit beanspruchen würde

jede Pipeline‐Stufe dieselbe Zeit beanspruchen würde.

Allerdings brauchen die einzelnen Stufen s1,...,sk unterschiedliche  Z it i h it t t S it i t di P f R ti fü

Zeiteinheiten: t1,..., tk. Somit ist die Performance‐Ratio für n  Instruktionen:

Mit den Zeiten aus dem vorigen Beispiel für n → ∞ also:

Die Performance‐Ratio wird durch die langsamste Stufe bestimmt.

(17)

Taktung

Annahme die einzelnen Abschnitte des MIPS‐Instruktionszyklus  benötigen bisher betrachteten Ausführungszeiten:

Instruction Fetch 200ps Register Read 100ps ALU Operation 200ps Instruction‐Fetch 200ps, Register‐Read 100ps, ALU‐Operation 200ps,  Data‐Access 200ps, Register‐Write 100ps.

Wi h h dü f i P ( fäh ) T kt ? Di

Wie hoch dürfen wir unseren Prozessor (ungefähr) Takten? Die  längste Stufe benötigt 200ps. Also gilt für den Clock‐Cycle c:

Achtung: Maximal mögliche Taktung hängt aber auch von anderen  Faktoren ab. (Erinnerung: Power‐Wall).

(18)

Quiz

Welchen CPI‐Wert suggeriert das MIPS‐Pipelining‐Beispiel?

Achtung: der CPI‐Wert ist in der Regel höher, wie wir noch sehen.

(19)

Der Ansatz ist noch zu naiv

lw $1 100($0) lw $2 200($0)

lw $3 300($0) lw $4 400($0)

l $5 500($0)

B i i l lw $5, 500($0) lw $4, 400($0) lw $3, 300($0) lw $2, 200($0) lw $1, 100($0) Beispiel:

IF      ID       EX       MEM      WB

Bildquelle: David A. Patterson und John L. Hennessy, „Computer Organization and Design“, Fourth Edition, 2012

(20)

Pipelining

l

Pipeline‐Register

(21)

Pipeline‐Stufen brauchen Pipeline‐Register

Bildquelle: David A. Patterson und John L. Hennessy, „Computer Organization and Design“, Fourth Edition, 2012

(22)

Pipeline‐Stufen brauchen Pipeline‐Register

Control

Write‐Register  darf erst in der  WB‐Stufe gesetzt  werden.

Änderung

RegDst steht mit der Entscheid ng on Wird durchgereicht

Bildquelle: David A. Patterson und John L. Hennessy, „Computer Organization and Design“, Fourth Edition, 2012

im Tafelbild RegDst steht mit der Entscheidung von 

Control erst in der EX‐Stufe fest.

(23)

Was speichern die Pipeline‐Register?

Wir schauen uns den Weg einer einzigen Instruktion durch die  Pipeline an; und zwar der Load‐Word‐Instruktion lw.

Auf dem Weg durch die Pipeline überlegen was alles in den Pipeline‐

Registern IF/ID, ID/EX, EX/MEM und MEM/WB stehen muss.

Registern IF/ID, ID/EX, EX/MEM und MEM/WB stehen muss.

In der Darstellung verwenden wir folgende Konvention.

Bedeutet: Register/Speicher wird gelesen Bedeutet: Register/Speicher wird beschrieben

(24)

Was speichern die Pipeline‐Register?

IF/ID:

Instruktion

PC+4 (z B für beq)

PC+4 (z.B. für beq)

Bildquelle: David A. Patterson und John L. Hennessy, „Computer Organization and Design“, Fourth Edition, 2012

(25)

Was speichern die Pipeline‐Register?

ID/EX:

PC+4 (z.B. für beq)

Inhalt Register 1

Inhalt Register 1

Inhalt Register 2

Sign‐ext. Immediate (z.B. für beq)

Das Write‐Register Generell: Alles was in einem späteren Clock‐Cycle  noch verwendet werden könnte muss

Das Write‐Register

(wird im Letzten Zyklus von lw gebraucht)

noch verwendet werden könnte muss  durchgereicht werden.

Bildquelle: David A. Patterson und John L. Hennessy, „Computer Organization and Design“, Fourth Edition, 2012

(26)

Was speichern die Pipeline‐Register?

EX/MEM:

Ergebnis von PC+4+

Offset (z B für beq) Offset (z.B. für beq)

Zero der ALU (z.B. für beq)

Result der ALU Register 2 Daten (z.B. für sw)

D W i R i ( i d i L Z kl l b h )

Result der ALU

Bildquelle: David A. Patterson und John L. Hennessy, „Computer Organization and Design“, Fourth Edition, 2012

Das Write‐Register (wird im Letzten Zyklus von lw gebraucht)

(27)

Was speichern die Pipeline‐Register?

MEM/WB:

Das gelesene Datum aus dem Datum aus dem

Speicher (wird dann von

lw im nächsten Zyklus ins Write‐Register geschrieben)

Das Ergebnis der ALU‐Operation (für die

Das Ergebnis der ALU‐Operation (für die arithmetisch‐logischen Instruktionen)

Bildquelle: David A. Patterson und John L. Hennessy, „Computer Organization and Design“, Fourth Edition, 2012

(28)

Was speichern die Pipeline‐Register?

Für die letzte  Pipeline‐Stufe  braucht man kein braucht man kein  Pipeline‐Register.

Bildquelle: David A. Patterson und John L. Hennessy, „Computer Organization and Design“, Fourth Edition, 2012

(29)

Zusätzlich wird noch Control‐Info gespeichert

Control

Bildquelle: David A. Patterson und John L. Hennessy, „Computer Organization and Design“, Fourth Edition, 2012

(30)

Zusätzlich wird noch Control‐Info gespeichert

Werden durch Werden durch‐

gereicht.

Control hängt Das ID/EX‐ Das EX/MEM‐ Das MEM/WB‐

Control hängt  von der 

Instruktion ab. 

Damit muss

Das ID/EX Register muss  bereitstellen:

RegDst

Das EX/MEM Register muss  bereit stellen:

Branch

Das MEM/WB Register muss  bereit stellen:

MemtoReg Damit muss 

Control‐Info erst  ab ID/EX‐

Register 

RegDst

ALUOp (2)

ALUSrc

Branch

•MemRead

•MemWrite

MemtoReg

RegWrite g

gespeichert  werden.

Bildquelle: David A. Patterson und John L. Hennessy, „Computer Organization and Design“, Fourth Edition, 2012

(31)

Pipelining

l l

Pipelining‐Visualisierung

(32)

Pipelining‐Visualisierung

Zusammenfassung der vorhin implizit eingeführten Visualisierungen  und Einführung einer neuen Visualisierung.

Wir betrachten folgenden Beispiel‐Code:

lw $10, 20($1) sub $11, $2, $3$ , $ , $ add $12, $3, $4 lw $13, 24($1) add $14, $5, $6

Wir unterscheiden generell zwischen zwei Visualisierungs Arten:

Wir unterscheiden generell zwischen zwei Visualisierungs‐Arten:

Single‐Clock‐Cylce‐Pipeline‐Diagramm und Multiple‐Clock‐Cycle‐Pipeline‐Diagrammp y p g

(33)

Single‐Clock‐Cycle‐Pipeline‐Diagramm

Bildquelle: David A. Patterson und John L. Hennessy, „Computer Organization and Design“, Fourth Edition, 2012

(34)

Einfaches Multiple‐Clock‐Cycle‐Pipeline‐Diagramm

Bildquelle: David A. Patterson und John L. Hennessy, „Computer Organization and Design“, Fourth Edition, 2012

(35)

Detaillierteres Multiple‐Clock‐Cycle‐Pipeline‐Diagramm

IF ID EX MEM WB

IF ID EX MEM WB

Bildquelle: David A. Patterson und John L. Hennessy, „Computer Organization and Design“, Fourth Edition, 2012

(36)

Pipelining

l l

Komplexere Pipelines

(37)

Komplexere Piplelines

Pi li S f i d i h f 5 f l !

Pipeline‐Stufen sind nicht auf 5 festgelegt!

z.B. weitere Unterteilung von IF, ID, EX, MEM, WB Erlaubt höhere Taktung

Kann aufgrund der Instruktions‐Komplexität erforderlich sein

Kann aufgrund von Instruktionen mit zeitlich unbalancierten Stufen erforderlich sein

Wie Pipelined man x86 ISA mit Instruktionslängen zwischen 1 und 17 Bytes?

l k l k k

Komplexe Instruktionen der x86 ISA werden in Folge von Mikroinstruktionen  übersetzt

Mikroinstruktionssatz ist vom Typ RISC

Pipelining findet auf den Mikroinstruktionen statt Pipelining findet auf den Mikroinstruktionen statt

Beispiel AMD Opteron X4:

Was das ist sehen wir noch im Kapitel Multiple‐Issuep p

Bildquelle: David A. Patterson und John L. Hennessy, „Computer Organization and Design“, Fourth Edition, 2012

(38)

Pipeline‐Stufen einiger ausgewählter Prozessoren

Mikroprozesor Jahr Taktrate Pipeline‐Stufen Leistung

Intel 486 1989 25 MHz 5 5 W

I t l P ti 1993 66 MH 5 10 W

Intel Pentium 1993 66 MHz 5 10 W

Intel Pentium Pro 1997 200 MHz 10 29 W

Intel Pentium 4 Willamette 2001 2000 MHz 22 75 W Intel Pentium 4 Willamette 2001 2000 MHz 22 75 W Intel Pentium 4 Prescott 2004 3600 MHz 31 103 W

Intel Core 2006 2930 MHz 14 75 W

Intel Core 2006 2930 MHz 14 75 W

UltraSPARC IV+ 2005 2100 MHz 14 90 W

Sun UltraSPARC T1 (Niagara) 2005 1200 MHz 6 70 W

Pipeline‐Stufen sinken wieder?

Aggressives Pipelining ist sehr Leistungshungrig

Aktueller Trend eher zu Multi‐Cores mit geringerer Leist ngsa fnahme pro Core

Leistungsaufnahme pro Core.

(39)

Data‐Hazards

(40)

Motivation

Ist die Pipelined‐Ausführung immer ohne Probleme möglich?

Beispiel:p

sub $2, $1, $3 and $12, $2, $5

$13 $6 $2 sub $2, $1, $3 and $12, $2, $5 or $13, $6, $2 add $14, $2, $2 sw $15 100($2)

or $13, $6, $2 add $14, $2, $2 sw $15 100($2) sw $15, 100($2)

Also, alle vier nachfolgenden Instruktionen hängen von der sub‐

sw $15, 100($2)

Instruktion ab.

Annahme:

$2 speichert 10 vor der sub‐Instruktion.

$2 speichert ‐20 nach der sub‐Instruktion.

Betrachten wir die Pipeline:

(41)

Problem Rückwärtsabhängigkeiten  

Instr Sollte aus Liest Instr.‐

Zeile

Sollte aus 

$2 lesen

Liest  aus $2 and

or add sw sw

Data‐Hazard Data Hazard

Bildquelle: David A. Patterson und John L. Hennessy, „Computer Organization and Design“, Fourth Edition, 2012

Referenzen

ÄHNLICHE DOKUMENTE

CRT- 14 provides the user with the ability to completely edit his program , display the results, and generate hard copy of the program in ladder diagram form.. Once the user has

APPLICABILITY: Design Engineers and System Installers are responsible for abiding by the requirementa defined in this standard for all hardware released that

– Wenn eine Transaktion eine X-Sperre auf einem Objekt hält, kann keine andere Transaktion eine (S oder X-) Sperre auf diesem Objekt erwerben.. • Nur Striktes 2PL erlaubt

DOMESTIC ORDERS - are orders placed by Control Data personnel within the territorial I imits of the United States. {2} Publication number and full description of

Some of the answers are provided by solid-state digital logic deSigned for the industrial environment, and solid state analog- digital conversion to link analog

When the extend mode is disabled, the effective address in the autoindex location points to memory bank o.. The EMA whi ch was zeroed in order to address

The LPCC character is written and write operat ion terminates, The tape continues in the forward motion unt i I the read circuits detect the end-of-record

An obvious question is “How does Offshore Control work in that case?” More pointedly, one might ask, “If the United States adopted Offshore Control, could China present a