+ All Categories
Home > Documents > Fakultät für informatik informatik 12 technische universität dortmund 2.3...

Fakultät für informatik informatik 12 technische universität dortmund 2.3...

Date post: 05-Apr-2015
Category:
Upload: brunnhilde-lasser
View: 109 times
Download: 0 times
Share this document with a friend
109
fakultät für informatik informatik 12 technische universität dortmund 2.3 Register-Transfer- Strukturen 2012/08/14 (xmas) Sprechstunde:M o 13:00-14:00 E-mail:[email protected] Tel.755 6111 O tto-H ahn-Str.16 Inform atik 12 PeterM arw edel Sprechstunde:M o 13:00-14:00 E-mail:[email protected] Tel.755 6111 O tto-H ahn-Str.16 Inform atik 12 PeterM arw edel
Transcript
Page 1: Fakultät für informatik informatik 12 technische universität dortmund 2.3 Register-Transfer-Strukturen 2012/08/14 (xmas)

fakultät für informatikinformatik 12

technische universität dortmund

2.3 Register-Transfer-Strukturen

2012/08/14(xmas)

Sprechstunde: Mo 13:00-14:00

E-mail: [email protected]

Tel. 755 6111

Otto-Hahn-Str. 16

Informatik 12

Peter Marwedel

Sprechstunde: Mo 13:00-14:00

E-mail: [email protected]

Tel. 755 6111

Otto-Hahn-Str. 16

Informatik 12

Peter Marwedel

Page 2: Fakultät für informatik informatik 12 technische universität dortmund 2.3 Register-Transfer-Strukturen 2012/08/14 (xmas)

- 2 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2012

Externe Architektur interne Architektur

Bislang:Sicht des Programmierers auf den Prozessor: Befehlsschnittstelle,externe Architektur

Jetzt:interne Realisierung:interne Architektur,Mikroarchitektur,Realisierung mit Register-Transfer-Strukturen(der Inhalt welchen Registers wird in welches andere Register transferiert?)

Page 3: Fakultät für informatik informatik 12 technische universität dortmund 2.3 Register-Transfer-Strukturen 2012/08/14 (xmas)

- 3 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2012

Komponenten von RT-Strukturen: Dekoder

Dekoder

y=f(x)

Beispiel 1: 1 aus n-Dekoder

...............

"11...0"wenn"1000...0"

"10...0"wenn"0100...0"

"01...0"wenn"0010...0"

"00...0"wenn"0001...0"

)(

x

x

x

x

xf

Beispiel 2: Prioritätsencoder (m>n)

"00...0" für

ist '1' den für ist,Index größte der wenn))((

xtundefinier

xixfnat i

"01011100" für "101":.z.B xy

x

ixnatxfiy

)( wenn"00...1...00")(

z.B.

n

Anzahl Bits der Bitvektoren

m

nat(a)=ai2i: (Abbildung Bitvektor natürliche Zahl)

Page 4: Fakultät für informatik informatik 12 technische universität dortmund 2.3 Register-Transfer-Strukturen 2012/08/14 (xmas)

- 4 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2012

Komponenten von RT-Strukturen: Multiplexer

y = ei für nat(Kontrolle)=iz.B. 2 auf 1 Multiplexer

01

Kontrolle0 1

01

Kontrolle

z.B. 4 auf 1 Multiplexer

23

3 0

&

&

&

&

Mögliche Realisierung (für einzelnes Bit)

1 aus n

e0

yei, y: einzelne Bits oder Bitvektoren

2Kontrolle

e1

e1

e0

e3

e2

e1

e0

e3

e2

0 3

1

2

1

y

Page 5: Fakultät für informatik informatik 12 technische universität dortmund 2.3 Register-Transfer-Strukturen 2012/08/14 (xmas)

- 5 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2012

Komponenten von RT-Strukturen: ALUs

Addierer, arithmetisch/ logische Einheiten (ALUs)

AL

U

Kontrollez=f(x,y,Kontrolle)

x

y

z

Beispiel

3lle)nat(Kontrowenn

2lle)nat(Kontrowenn

1lle)nat(Kontrowenn

0lle)nat(Kontrowenn

yx

yx

yx

yx

z x.y.z,Kontrolle: Bitvektoren

Page 6: Fakultät für informatik informatik 12 technische universität dortmund 2.3 Register-Transfer-Strukturen 2012/08/14 (xmas)

- 6 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2012

Komponenten von RT-Strukturen: Register

Register

PC

Takt

Daten

Daten

Kontrolle

Übernimmt mit dem Takt die Daten,sofern der Kontrolleingang auf "schreiben" gesetzt ist.Daten: einzelne Bits oder Bitvektoren

1

0

Für jedes einzelne Bit:

Kontrolle=‘schreiben’Daten=‘1’g(Takt)

Kontrolle=‘schreiben’Daten=‘0’g(Takt)

g: modelliert unterschiedliche Taktabhängigkeit

Flankenabhängigkeit: Wechsel nur bei pos. (“positiv flankengetriggert”) oder neg. Flanke)

oder Pegelabhängigkeit: Wechsel sofern Takt=‘1’ oder Takt =‘0’ ist

Page 7: Fakultät für informatik informatik 12 technische universität dortmund 2.3 Register-Transfer-Strukturen 2012/08/14 (xmas)

- 7 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2012

Komponenten von RT-Strukturen: Speicher

Speicher

SpeicherDaten Daten

Takt

Adresse

Kontrolle

Liest ständig die am Adresseingang ausgewählte Speicherzelle aus und stellt ihren Wert am Datenausgang mit gewisser Verzögerung zur Verfügung.Übernimmt mit dem Takt die Daten in die ausgewählte Speicherzelle,sofern der Kontrolleingang auf „Schreiben" gesetzt ist.

Wir stellen den 1-aus-n-Adressdekoder immer explizit dar, um den Adresseingang zu identifizieren.

Page 8: Fakultät für informatik informatik 12 technische universität dortmund 2.3 Register-Transfer-Strukturen 2012/08/14 (xmas)

- 8 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2012

Multiportspeicher

Sp

eic

her

Multiport-Speicher

Besitzt mehrere Adresseingänge, die zu einem zugeordneten Port gehören.Jedes Leseport stellt ständig die gelesene Speicherzelle am Ausgang bereit;jedes Schreibport übernimmt die Eingangdaten in die ausgewählte Speicherzelle, sofern der Kontrolleingang auf "schreiben" gestellt ist.Konflikt, falls mehrere Schreibports dieselbe Zelle auswählen (soll vermieden werden; falls es doch vorkommt: z.B. UND-Verknüpfung der Eingangsdaten)

Page 9: Fakultät für informatik informatik 12 technische universität dortmund 2.3 Register-Transfer-Strukturen 2012/08/14 (xmas)

- 9 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2012

Speichertechnologien

Einige Unterscheidungen:

Flüchtiger (volatile) und nicht-flüchtiger (non-volatile) Speicher:Nicht-flüchtiger Speicher: Information bleibt nach dem Ausschalten des Stromes erhalten

Statischer und dynamischer Speicher:

- Statischer Speicher (SRAM): i.d.Regel 6 Transistoren/Bit.

- Dynamischer Speicher (DRAM): 1 Transistor, 1 Kondensator/Bit,langsamer als SRAM,erfordert periodisches Auffrischen der Information,ist billiger als SRAM

© Photo: P. Marwedel, 2012

Page 10: Fakultät für informatik informatik 12 technische universität dortmund 2.3 Register-Transfer-Strukturen 2012/08/14 (xmas)

- 10 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2012

Zusammenfassung

Jetzt Sicht auf die interne Architektur:

Komponenten von RT-Strukturen

• Speicher

• Register

• Multiplexer

• ALUs

• Dekoder

• …

Page 11: Fakultät für informatik informatik 12 technische universität dortmund 2.3 Register-Transfer-Strukturen 2012/08/14 (xmas)

- 11 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2012

Eine Mikroarchitektur für die MIPS-Maschine

Automatische Erzeugung von Mikroarchitekturen aus ISA heraus (µArchitektursynthese): wurde untersucht, ist abera) im Rahmen einer Erstsemestervorlesung zu kompliziert b) für unsere einfachen Befehle auch nicht nötig.

Mit Erfahrung (Betrachtung wesentlicher Komponenten/Verbindungen): manueller µArchitekturentwurf.Benötigt Minimum an Komponenten.Enthält ein Rechenwerk und ein Steuerwerk.

Verifikation: Befehle: nachweisen, dass die µArchitektur den Befehl ausführen kann.

Vorgehen für die MIPS-Maschine

Page 12: Fakultät für informatik informatik 12 technische universität dortmund 2.3 Register-Transfer-Strukturen 2012/08/14 (xmas)

SteuerwerkB

PC

Be

feh

lsre

gis

ter

IR

Sp

eich

er

Sp

eich

er

alu_

co

ntro

l

T

sign_extend

<<

2

4

*

AL

U

Re

g

0

0

0

0

0

01

1

1

1

1

1

2

2

3

§

31:26

25:21

20:16

25:0

15:0

15:11

i2

a2

a1

i3

a3

a

2

a1

o2

o1

PC

Sou

rce

Tar

getW

rite

ALU

Op

ALU

Sel

A

ALU

Sel

B

Reg

Writ

e

Reg

Des

t

Mem

ToR

eg

IRW

rite

Mem

Rea

d

Mem

Writ

e

PC

Wri

te

PC

Wri

t eC

IorD

*§ 31: 28

"00“

Page 13: Fakultät für informatik informatik 12 technische universität dortmund 2.3 Register-Transfer-Strukturen 2012/08/14 (xmas)

- 13 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2012

Überprüfung der Ausführbarkeit Zustandsgraphder Ausführung einiger MIPS-Befehle

fetch

load store rr2

mar rr1

decode

jump

branch2

branch

instruction decode

Op="10X011" (sw,

lw) Op="000010" (jmp)

Op="000100"

(beq)

memory access

memory access

swlw

Op="000000"

IR:=Speicher[PC];PC:=PC+4;

T:=IR() + Reg[IR(..)]

Reg[IR(..)]:=Speicher[T]

PC:=PC+4;Reg[ra]:=Speicher[const+Reg[rb]]

Page 14: Fakultät für informatik informatik 12 technische universität dortmund 2.3 Register-Transfer-Strukturen 2012/08/14 (xmas)

BP

C

Be

feh

lsre

gis

ter

IR

Sp

eich

er

Sp

eich

er

alu_

co

ntro

l

T

sign_extend

<<

2

4

*

AL

U

Re

g

0

0

0

0

0

01

1

1

1

1

1

2

2

3

§

fetch

IR:=Speicher[PC];PC:=PC+4

31:26

25:21

20:16

25:0

15:0

15:11

i2

a2

a1

i3

a3

a

2

a1

o2

o1

PC

Sou

rce

Tar

getW

rite

ALU

Op

ALU

Sel

A

ALU

Sel

B

Reg

Writ

e

Reg

Des

t

Mem

ToR

eg

IRW

rite

Mem

Rea

d

Mem

Writ

e

PC

Wri

te

PC

Wri

t eC

IorD

010 10 0 + 0 01

1

B=PCWrite v PCWriteC zero

zero

*§ 31: 28

"00“

Ravi microprog

Page 15: Fakultät für informatik informatik 12 technische universität dortmund 2.3 Register-Transfer-Strukturen 2012/08/14 (xmas)

- 15 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2012

Zustandsgraphder Ausführung einiger MIPS-Befehle

fetch

load store rr2

mar rr1

decode

jump

branch2

branch

instruction decode

Op="10X011" (sw,

lw) Op="000010" (jmp)

Op="000100"

(beq)

memory access

memory access

swlw

Op="000000"

Page 16: Fakultät für informatik informatik 12 technische universität dortmund 2.3 Register-Transfer-Strukturen 2012/08/14 (xmas)

SteuerwerkB

PC

Be

feh

lsre

gis

ter

Sp

eich

er

Sp

eich

er

alu_

co

ntro

l

T

sign_extend

<<

2

4

*

AL

U

Re

g

0

0

0

0

0

01

1

1

1

1

1

2

2

3

§

decode

Steuerwerk nutzt Opcode zur Verzweigung.

31:26

25:21

20:16

25:0

15:0

15:11

i2

a2

a1

i3

a3

a

2

a1

o2

o1

PC

Sou

rce

Tar

getW

rite

ALU

Op

ALU

Sel

A

ALU

Sel

B

Reg

Writ

e

Reg

Des

t

Mem

ToR

eg

IRW

rite

Mem

Rea

d

Mem

Writ

e

PC

Wri

te

PC

Wri

t eC

IorD

0 00 0 0 00

*§ 31: 28

"00“

Page 17: Fakultät für informatik informatik 12 technische universität dortmund 2.3 Register-Transfer-Strukturen 2012/08/14 (xmas)

- 17 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2012

Zustandsgraphder Ausführung einiger MIPS-Befehle

fetch

load store rr2

mar rr1

decode

jump

branch2

branch

instruction decode

Op="10X011" (sw,

lw) Op="000010" (jmp)

Op="000100"

(beq)

memory access

memory access

swlw

Op="000000"

Page 18: Fakultät für informatik informatik 12 technische universität dortmund 2.3 Register-Transfer-Strukturen 2012/08/14 (xmas)

BP

C

Be

feh

lsre

gis

ter

Sp

eich

er

Sp

eich

er

alu_

co

ntro

l

T

sign_extend

<<

2

4

*

AL

U

Re

g

0

0

0

0

0

01

1

1

1

1

1

2

2

3

§

mar

Speicher-Adresse

wird in T gespeichert

31:26

25:21

20:16

25:0

15:0

15:11

i2

a2

a1

i3

a3

a

2

a1

o2

o1

PC

Sou

rce

Tar

getW

rite

ALU

Op

ALU

Sel

A

ALU

Sel

B

Reg

Writ

e

Reg

Des

t

Mem

ToR

eg

IRW

rite

Mem

Rea

d

Mem

Writ

e

PC

Wri

te

PC

Wri

t eC

IorD

0 00 0 0 112 +0

*§ 31: 28

"00“

Page 19: Fakultät für informatik informatik 12 technische universität dortmund 2.3 Register-Transfer-Strukturen 2012/08/14 (xmas)

- 19 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2012

Zustandsgraphder Ausführung einiger MIPS-Befehle

fetch

load store rr2

mar rr1

decode

jump

branch2

branch

instruction decode

Op="10X011" (sw,

lw) Op="000010" (jmp)

Op="000100"

(beq)

memory access

memory access

swlw

Op="000000"

Page 20: Fakultät für informatik informatik 12 technische universität dortmund 2.3 Register-Transfer-Strukturen 2012/08/14 (xmas)

BP

C

Be

feh

lsre

gis

ter

Sp

eich

er

Sp

eich

er

alu_

co

ntro

l

T

sign_extend

<<

2

4

*

AL

U

Re

g

0

0

0

0

0

01

1

1

1

1

1

2

2

3

§

load

31:26

25:21

20:16

25:0

15:0

15:11

i2

a2

a1

i3

a3

a

2

a1

o2

o1

PC

Sou

rce

Tar

getW

rite

ALU

Op

ALU

Sel

A

ALU

Sel

B

Reg

Writ

e

Reg

Des

t

Mem

ToR

eg

IRW

rite

Mem

Rea

d

Mem

Writ

e

PC

Wri

te

PC

Wri

t eC

IorD

0 00 0 1 011 1 0

Reg[IR(20:16)]:=Speicher[T] *§

31: 28

"00“

Ravi microprog

Page 21: Fakultät für informatik informatik 12 technische universität dortmund 2.3 Register-Transfer-Strukturen 2012/08/14 (xmas)

- 21 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2012

Zustandsgraphder Ausführung einiger MIPS-Befehle

fetch

load store rr2

mar rr1

decode

jump

branch2

branch

instruction decode

Op="10X011" (sw,

lw) Op="000010" (jmp)

Op="000100"

(beq)

memory access

memory access

swlw

Op="000000"

Page 22: Fakultät für informatik informatik 12 technische universität dortmund 2.3 Register-Transfer-Strukturen 2012/08/14 (xmas)

BP

C

Be

feh

lsre

gis

ter

(IR

)

Sp

eich

er

Sp

eich

er

alu_

co

ntro

l

T

sign_extend

<<

2

4

*

AL

U

Re

g

0

0

0

0

0

01

1

1

1

1

1

2

2

3

§

31:26

25:21

20:16

25:0

15:0

15:11

i2

a2

a1

i3

a3

a

2

a1

o2

o1

PC

Sou

rce

Tar

getW

rite

ALU

Op

ALU

Sel

A

ALU

Sel

B

Reg

Writ

e

Reg

Des

t

Mem

ToR

eg

IRW

rite

Mem

Rea

d

Mem

Writ

e

PC

Wri

te

PC

Wri

t eC

IorD

0 00 0 0 01

*§ 31: 28

"00“

Ravi microprog

store

Page 23: Fakultät für informatik informatik 12 technische universität dortmund 2.3 Register-Transfer-Strukturen 2012/08/14 (xmas)

- 23 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2012

Zustandsgraphder Ausführung einiger MIPS-Befehle

fetch

load store rr2

mar rr1

decode

jump

branch2

branch

instruction decode

Op="10X011" (sw,

lw) Op="000010" (jmp)

Op="000100"

(beq)

memory access

memory access

swlw

Op="000000"

Page 24: Fakultät für informatik informatik 12 technische universität dortmund 2.3 Register-Transfer-Strukturen 2012/08/14 (xmas)

SteuerwerkB

PC

Be

feh

lsre

gis

ter

Sp

eich

er

Sp

eich

er

alu_

co

ntro

l

T

sign_extend

<<

2

4

*

AL

U

Re

g

0

0

0

0

0

01

1

1

1

1

1

2

2

3

§

rr1

31:26

25:21

20:16

25:0

15:0

15:11

i2

a2

a1

i3

a3

a

2

a1

o2

o1

PC

Sou

rce

Tar

getW

rite

ALU

Op

ALU

Sel

A

ALU

Sel

B

Reg

Writ

e

Reg

Des

t

Mem

ToR

eg

IRW

rite

Mem

Rea

d

Mem

Writ

e

PC

Wri

te

PC

Wri

t eC

IorD

0 00 0 0 1100 IR²

² ALU-Funktion durch shamt und funct bestimmt. alu_control nimmt geeignete Umkodierung vor.

*§ 31: 28

"00“

Page 25: Fakultät für informatik informatik 12 technische universität dortmund 2.3 Register-Transfer-Strukturen 2012/08/14 (xmas)

- 25 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2012

Zustandsgraphder Ausführung einiger MIPS-Befehle

fetch

load store rr2

mar rr1

decode

jump

branch2

branch

instruction decode

Op="10X011" (sw,

lw) Op="000010" (jmp)

Op="000100"

(beq)

memory access

memory access

swlw

Op="000000"

Page 26: Fakultät für informatik informatik 12 technische universität dortmund 2.3 Register-Transfer-Strukturen 2012/08/14 (xmas)

BP

C

Be

feh

lsre

gis

ter

IR

Sp

eich

er

Sp

eich

er

alu_

co

ntro

l

T

sign_extend

<<

2

4

*

AL

U

Re

g

0

0

0

0

0

01

1

1

1

1

1

2

2

3

§

rr2

Reg[IR(15:11)]:=T

31:26

25:21

20:16

25:0

15:0

15:11

i2

a2

a1

i3

a3

a

2

a1

o2

o1

PC

Sou

rce

Tar

getW

rite

ALU

Op

ALU

Sel

A

ALU

Sel

B

Reg

Writ

e

Reg

Des

t

Mem

ToR

eg

IRW

rite

Mem

Rea

d

Mem

Writ

e

PC

Wri

te

PC

Wri

t eC

IorD

0 00 0 1 0100

*§ 31: 28

"00“

Ravi microprog

Page 27: Fakultät für informatik informatik 12 technische universität dortmund 2.3 Register-Transfer-Strukturen 2012/08/14 (xmas)

- 27 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2012

Zustandsgraphder Ausführung einiger MIPS-Befehle

fetch

load store rr2

mar rr1

decode

jump

branch2

branch

instruction decode

Op="10X011" (sw,

lw) Op="000010" (jmp)

Op="000100"

(beq)

memory access

memory access

swlw

Op="000000"

Page 28: Fakultät für informatik informatik 12 technische universität dortmund 2.3 Register-Transfer-Strukturen 2012/08/14 (xmas)

BP

C

Be

feh

lsre

gis

ter

Sp

eich

er

Sp

eich

er

alu_

co

ntro

l

T

sign_extend

<<

2

4

*

AL

U

Re

g

0

0

0

0

0

01

1

1

1

1

1

2

2

3

§

Steuerwerk

31:26

25:21

20:16

25:0

15:0

15:11

i2

a2

a1

i3

a3

a

2

a1

o2

o1

PC

Sou

rce

Tar

getW

rite

ALU

Op

ALU

Sel

A

ALU

Sel

B

Reg

Writ

e

Reg

Des

t

Mem

ToR

eg

IRW

rite

Mem

Rea

d

Mem

Writ

e

PC

Wri

te

PC

Wri

t eC

IorD

1 0 0 0 0 20 jump

PC:=PC(31:28)&IR(25:0) &"00" *§

31: 28

"00“

Ravi microprog

Page 29: Fakultät für informatik informatik 12 technische universität dortmund 2.3 Register-Transfer-Strukturen 2012/08/14 (xmas)

- 29 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2012

Zustandsgraphder Ausführung einiger MIPS-Befehle

fetch

load store rr2

mar rr1

decode

jump

branch2

branch

instruction decode

Op="10X011" (sw,

lw) Op="000010" (jmp)

Op="000100"

(beq)

memory access

memory access

swlw

Op="000000"

Page 30: Fakultät für informatik informatik 12 technische universität dortmund 2.3 Register-Transfer-Strukturen 2012/08/14 (xmas)

BP

C

Be

feh

lsre

gis

ter

Sp

eich

er

Sp

eich

er

alu_

co

ntro

l

T

sign_extend

<<

2

4

*

AL

U

Re

g

0

0

0

0

0

01

1

1

1

1

1

2

2

3

§

T:=PC+(sign_ext(IR(15:0))&"00")

Steuerwerk

31:26

25:21

20:16

25:0

15:0

15:11

i2

a2

a1

i3

a3

a

2

a1

o2

o1

PC

Sou

rce

Tar

getW

rite

ALU

Op

ALU

Sel

A

ALU

Sel

B

Reg

Writ

e

Reg

Des

t

Mem

ToR

eg

IRW

rite

Mem

Rea

d

Mem

Writ

e

PC

Wri

te

PC

Wri

t eC

IorD

0 00 0 0 1+030 branch

*§ 31: 28

"00“

Page 31: Fakultät für informatik informatik 12 technische universität dortmund 2.3 Register-Transfer-Strukturen 2012/08/14 (xmas)

- 31 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2012

Zustandsgraphder Ausführung einiger MIPS-Befehle

fetch

load store rr2

mar rr1

decode

jump

branch2

branch

instruction decode

Op="10X011" (sw,

lw) Op="000010" (jmp)

Op="000100"

(beq)

memory access

memory access

swlw

Op="000000"

Page 32: Fakultät für informatik informatik 12 technische universität dortmund 2.3 Register-Transfer-Strukturen 2012/08/14 (xmas)

BP

C

Be

feh

lsre

gis

ter

Sp

eich

er

Sp

eich

er

alu_

co

ntro

l

T

sign_extend

<<

2

4

*

AL

U

Re

g

0

0

0

0

0

01

1

1

1

1

1

2

2

3

§

branch2

if Reg([IR(25:21)]-Reg[IR(20:16)]=0) then PC:=T;

zero

Steuerwerk

² Code, der benötigt wird, um am Ausgang zero eine 1 zu erzeugen, wenn beide Eingänge gleich sind.

31:26

25:21

20:16

25:0

15:0

15:11

i2

a2

a1

i3

a3

a

2

a1

o2

o1

PC

Sou

rce

Tar

getW

rite

ALU

Op

ALU

Sel

A

ALU

Sel

B

Reg

Writ

e

Reg

Des

t

Mem

ToR

eg

IRW

rite

Mem

Rea

d

Mem

Writ

e

PC

Wri

te

PC

Wri

t eC

IorD

0 10 0 0 010 1=/-²0

*§ 31: 28

"00“

Page 33: Fakultät für informatik informatik 12 technische universität dortmund 2.3 Register-Transfer-Strukturen 2012/08/14 (xmas)

- 33 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2012

Das Steuerwerk

fetch

load store rr2

mar

rr1

decode

jump

branch2

branch

lw

jmp

beq

sw

lw

RRR

Verhalten, vereinfacht (mar‘ vermeidet Verzweigung bei mar)

* Folgezustand bestimmt durch Mikropro-grammspeicher, bei decode aus dem Opcode

µPC

TaktStruktur

Ein

ga

be: O

pco

de

PC

Writ

e

PC

Sou

rce

..............

Ausgabe

Zustand

Mikroprogrammspeicher

*

mar'

Page 34: Fakultät für informatik informatik 12 technische universität dortmund 2.3 Register-Transfer-Strukturen 2012/08/14 (xmas)

- 34 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2012

Inhalt des Mikroprogrammspeichers

Zustand Folge-Zustand bzw. – Zustände

fetch decode 1 0 0 0 1 1 X X 0 01 0 + 0 00

decode f(Opcode) 0 0 X 0 0 0 X X 0 XX X X 0 XX

mar, mar‘ load, store 0 0 X 0 0 0 X X 0 10 1 + 1 XX

load fetch 0 0 1 0 1 0 1 0 1 XX X X 0 XX

store fetch 0 0 X 1 0 0 X X 0 XX X X 0 XX

rr1 rr2 0 0 X 0 0 0 X X 0 00 1 IR 1 XX

rr2 fetch 0 0 X 0 0 0 0 1 1 XX X X 0 XX

branch branch2 0 0 X 0 0 0 X X 0 11 0 + 1 XX

branch2 fetch 0 1 X 0 0 0 X X 0 00 1 =/- 0 01

jump fetch 1 0 X 0 0 0 X X 0 XX X X 0 10

PC

Wri

te

PC

Wri

teC

IorD

Me

mW

rite

Me

mR

ead

IRW

rite

Me

m2R

eg

Re

gD

est

Re

gW

rite

AL

US

elB

AL

US

elA

AL

UO

p

Ta

rge

tWri

PC

So

urce

+ A

rt d

er B

estim

mun

g de

s F

olge

zust

ands

Page 35: Fakultät für informatik informatik 12 technische universität dortmund 2.3 Register-Transfer-Strukturen 2012/08/14 (xmas)

- 35 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2012

Mikroprogrammierung

fetch

load store rr2

mar

rr1

decode

jump

branch2

branch

lw

jmp

beq

swlw

RRR

mar'

Page 36: Fakultät für informatik informatik 12 technische universität dortmund 2.3 Register-Transfer-Strukturen 2012/08/14 (xmas)

- 36 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2012

Mikroprogrammierung

fetch

load store rr2

mar

rr1

decode

jump

branch2

branch

lw

jmp

beq

swlw

RRR

mar'

Page 37: Fakultät für informatik informatik 12 technische universität dortmund 2.3 Register-Transfer-Strukturen 2012/08/14 (xmas)

- 37 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2012

Mikroprogrammierung

fetch

load store rr2

mar

rr1

decode

jump

branch2

branch

lw

jmp

beq

swlw

RRR

mar'

Page 38: Fakultät für informatik informatik 12 technische universität dortmund 2.3 Register-Transfer-Strukturen 2012/08/14 (xmas)

- 38 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2012

Mikroprogrammierung

fetch

load store rr2

mar

rr1

decode

jump

branch2

branch

lw

jmp

beq

swlw

RRR

mar'

Page 39: Fakultät für informatik informatik 12 technische universität dortmund 2.3 Register-Transfer-Strukturen 2012/08/14 (xmas)

- 39 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2012

Mikroprogrammierung

fetch

load store rr2

mar

rr1

decode

jump

branch2

branch

lw

jmp

beq

swlw

RRR

mar'

µPC

Takt

Struktur

Ein

ga

be

: Op

cod

e Zustand

Mikroprogrammspeicher

*

Page 40: Fakultät für informatik informatik 12 technische universität dortmund 2.3 Register-Transfer-Strukturen 2012/08/14 (xmas)

- 40 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2012

Zusammenfassung

Mikroprogrammierung gestattet die strukturierte Realisierung von Rechensystemen aus RT-Struktur-Komponenten

Vorteile: einfache, strukturierte Realisierung auch großer, komplexer

Befehlssätze leichte Änderbarkeit

Nachteile: Overhead (fetch und decode enthalten keine Operationen

des auszuführenden Programms) Große CPI-Werte Versuch, Mikroprogramme zu vermeiden

Page 41: Fakultät für informatik informatik 12 technische universität dortmund 2.3 Register-Transfer-Strukturen 2012/08/14 (xmas)

- 41 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2012

Mikroprogrammierung Fließbandverarbeitung

fetch

load store rr2

mar

rr1

decode

jump

branch2

branch

lw

jmp

beq

swlw

RRR

mar'

Page 42: Fakultät für informatik informatik 12 technische universität dortmund 2.3 Register-Transfer-Strukturen 2012/08/14 (xmas)

- 42 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2012

Mikroprogrammierung Fließbandverarbeitung

fetch

load store rr2

mar

rr1

decode

jump

branch2

branch

lw

jmp

beq

swlw

RRR

mar'

Page 43: Fakultät für informatik informatik 12 technische universität dortmund 2.3 Register-Transfer-Strukturen 2012/08/14 (xmas)

- 43 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2012

Mikroprogrammierung Fließbandverarbeitung

fetch

load store rr2

mar

rr1

decode

jump

branch2

branch

lw

jmp

beq

swlw

RRR

mar'

Page 44: Fakultät für informatik informatik 12 technische universität dortmund 2.3 Register-Transfer-Strukturen 2012/08/14 (xmas)

- 44 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2012

Mikroprogrammierung Fließbandverarbeitung

fetch

load store rr2

mar

rr1

decode

jump

branch2

branch

lw

jmp

beq

swlw

RRR

mar'

Page 45: Fakultät für informatik informatik 12 technische universität dortmund 2.3 Register-Transfer-Strukturen 2012/08/14 (xmas)

- 45 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2012

Mikroprogrammierung Fließbandverarbeitung

fetch

load store rr2

mar

rr1

decode

jump

branch2

branch

lw

jmp

beq

swlw

RRR

mar'

Flash-Animation

www.it.lth.se/courses/dsi/material/Lectures/Lecture6.pdf

Page 46: Fakultät für informatik informatik 12 technische universität dortmund 2.3 Register-Transfer-Strukturen 2012/08/14 (xmas)

- 46 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2012

2.3.2 Fließbandverarbeitung

Fließband-Architektur (engl. pipeline architecture): Bearbeitung mehrerer Befehle gleichzeitig, analog zu Fertigungsfließbändern. Beispiel MIPS:

instruction fetch Memory access

(register) writeback

instruction decode/ register read

instruction execution/ address calculation

Sp

eich

er

sign

_ex

tend

AL

U

Re

g0

1

0

1

Sp

eich

er

DM

em 1

+

0

1

PC

IF/ID ID/EX EX/MEM MEM/WBzero

0

IMe

m

25

:21

15

:11

15:0

20

:16

4

Page 47: Fakultät für informatik informatik 12 technische universität dortmund 2.3 Register-Transfer-Strukturen 2012/08/14 (xmas)

- 47 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2012

Änderungengegenüber der Struktur ohne Fließband

Separater Addierer für Programm-Folgeadressen. Konzeptuelle Aufteilung des Speichers in Daten- und

Befehlsspeicher. Aufteilung des Rechenwerks in Fließbandstufen,

Trennung durch Pufferregister,T und Befehlsregister werden Pufferregistern.

Spe

iche

rsi

gn_

exte

nd

AL

U

Reg

0

1

0

1

Spe

iche

rD

Mem 1

+

0

1

PC

IF/ID ID/EX EX/MEM MEM/WBzero

0

IMem

25:2

115

:11

15:0

20:1

6

4

Steuer-werk nicht dar-gestellt

Page 48: Fakultät für informatik informatik 12 technische universität dortmund 2.3 Register-Transfer-Strukturen 2012/08/14 (xmas)

- 48 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2012

Aufgaben der einzelnen Phasen bzw. Stufen

BefehlsholphaseLesen des aktuellen Befehls; separater Speicher, zur Vermeidung von Konflikten mit Datenzugriffen ( Cache).

Dekodier- und Register-Lese-PhaseLesen der Register möglich wegen fester Plätze für Nr.

Ausführungs- und AdressberechungsphaseBerechnung arithmetischer Funktion bzw. Adresse für Speicherzugriff.

SpeicherzugriffsphaseWird nur bei Lade- und Speicherbefehlen benötigt.

AbspeicherungsphaseSpeichern in Register, bei Speicherbefehlen nicht benötigt.

Page 49: Fakultät für informatik informatik 12 technische universität dortmund 2.3 Register-Transfer-Strukturen 2012/08/14 (xmas)

- 49 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2012

Idealer Fließbanddurchlauf

sig

n_

ext

en

d

AL

U

Re

g

0

1

0

1

DM

em

1

+

0

1

PC

IF/ID ID/EX EX/MEM MEM/WBzero

0

IMe

m

25

:21

15

:11

15:0

20

:16

4

Zyklus 1

Befehl 1

Page 50: Fakultät für informatik informatik 12 technische universität dortmund 2.3 Register-Transfer-Strukturen 2012/08/14 (xmas)

- 50 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2012

Idealer Fließbanddurchlauf

sig

n_

ext

en

d

AL

U

Re

g

0

1

0

1

DM

em

1

+

0

1

PC

IF/ID ID/EX EX/MEM MEM/WBzero

0

IMe

m

25

:21

15

:11

15:0

20

:16

4

Zyklus 2

Befehl 2 Befehl 1

Page 51: Fakultät für informatik informatik 12 technische universität dortmund 2.3 Register-Transfer-Strukturen 2012/08/14 (xmas)

- 51 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2012

Idealer Fließbanddurchlauf

sig

n_

ext

en

d

AL

U

Re

g

0

1

0

1

DM

em

1

+

0

1

PC

IF/ID ID/EX EX/MEM MEM/WBzero

0

IMe

m

25

:21

15

:11

15:0

20

:16

4

Zyklus 3

Befehl 3 Befehl 2 Befehl 1

Page 52: Fakultät für informatik informatik 12 technische universität dortmund 2.3 Register-Transfer-Strukturen 2012/08/14 (xmas)

- 52 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2012

Idealer Fließbanddurchlauf

sig

n_

ext

en

d

AL

U

Re

g

0

1

0

1

DM

em

1

+

0

1

PC

IF/ID ID/EX EX/MEM MEM/WBzero

0

IMe

m

25

:21

15

:11

15:0

20

:16

4

Zyklus 4

Befehl 4 Befehl 3 Befehl 2 Befehl 1

Page 53: Fakultät für informatik informatik 12 technische universität dortmund 2.3 Register-Transfer-Strukturen 2012/08/14 (xmas)

- 53 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2012

Idealer Fließbanddurchlauf

sig

n_

ext

en

d

AL

U

Re

g

0

1

0

1

DM

em

1

+

0

1

PC

IF/ID ID/EX EX/MEM MEM/WBzero

0

IMe

m

25

:21

15

:11

15:0

20

:16

4

Zyklus 5

Befehl 5 Befehl 4 Befehl 3 Befehl 2 Befehl 1

Page 54: Fakultät für informatik informatik 12 technische universität dortmund 2.3 Register-Transfer-Strukturen 2012/08/14 (xmas)

- 54 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2012

Idealer Fließbanddurchlauf

sig

n_

ext

en

d

AL

U

Re

g

0

1

0

1

DM

em

1

+

0

1

PC

IF/ID ID/EX EX/MEM MEM/WBzero

0

IMe

m

25

:21

15

:11

15:0

20

:16

4

Zyklus 6

Befehl 6 Befehl 5 Befehl 4 Befehl 3 Befehl 2

Page 55: Fakultät für informatik informatik 12 technische universität dortmund 2.3 Register-Transfer-Strukturen 2012/08/14 (xmas)

- 55 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2012

Pipeline-Hazards

Structural hazards(deutsch: strukturelle Abhängigkeiten oder Gefährdungen).

Verschiedene Fließbandstufen müssen auf dieselbe Hardware-Komponente zugreifen, weil diese nur sehr aufwändig oder überhaupt nicht zu duplizieren ist.

Beispiele:

Speicherzugriffe, sofern für Daten und Befehle nicht über separate Pufferspeicher (caches) eine weitgehende Unabhängigkeit erreicht wird.

Bei Gleitkommaeinheiten lässt sich häufig nicht mit jedem Takt eine neue Operation starten (zu teuer).

Eventuell Anhalten des Fließbandes (pipeline stall) nötig.

Page 56: Fakultät für informatik informatik 12 technische universität dortmund 2.3 Register-Transfer-Strukturen 2012/08/14 (xmas)

- 56 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2012

Datenabhängigkeiten (1)

Def.: Ein Befehl j heißt von einem vorausgehenden Befehl i datenabhängig, wenn i Daten bereitstellt, die j benötigt.

Gegeben sei eine Folge von Maschinen-Befehlen.

Diese Art der Abhängigkeit heißt (bei Hennessy und anderen) read after write- (oder RAW-) Abhängigkeit.

Beispiel:add $12,$2,$3sub $4,$5,$12and $6,$12,$7or $8,$12,$9xor $10,$12,$11

Diese 4 Befehle sind vom add-Befehl wegen $12 datenabhängig

Page 57: Fakultät für informatik informatik 12 technische universität dortmund 2.3 Register-Transfer-Strukturen 2012/08/14 (xmas)

- 57 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2012

Datenabhängigkeiten (2)

Def.: Ein Befehl i heißt von einem nachfolgenden Befehl j antidatenabhängig, falls j eine Speicherzelle beschreibt, die von i noch gelesen werden müsste.

Gegeben sei wieder eine Folge von Maschinen-Befehlen.

Diese Art der Abhängigkeit heißt (bei Hennessy und anderen) write after read - (oder WAR-) Abhängigkeit.

Diese Art der Abhängigkeit heißt (bei Hennessy und anderen) write after read - (oder WAR-) Abhängigkeit.

Beispiel:add $12,$2,$3sub $4,$5,$12and $6,$12,$7or $12,$12,$9xor $10,$12,$11

Diese 2 Befehle sind vom or-Befehl wegen $12 antidatenabhängig

Diese 2 Befehle sind vom or-Befehl wegen $12 antidatenabhängig

Page 58: Fakultät für informatik informatik 12 technische universität dortmund 2.3 Register-Transfer-Strukturen 2012/08/14 (xmas)

- 58 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2012

Datenabhängigkeiten (3)

Def.: Zwei Befehle i und j heißen voneinander Ausgabe-abhängig, falls i und j dieselbe Speicherzelle beschreiben.

Gegeben sei (wieder) eine Folge von Maschinen-Befehlen.

Diese Art der Abhängigkeit heißt (bei Hennessy und anderen) write after write - (oder WAW-) Abhängigkeit.

Diese Art der Abhängigkeit heißt (bei Hennessy und anderen) write after write - (oder WAW-) Abhängigkeit.

Beispiel:add $12,$2,$3sub $4,$5,$12and $6,$12,$7or $12,$12,$9xor $10,$12,$11

Voneinander ausgabeabhängig.Voneinander ausgabeabhängig.

pipeline1

Page 59: Fakultät für informatik informatik 12 technische universität dortmund 2.3 Register-Transfer-Strukturen 2012/08/14 (xmas)

- 59 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2012

Bypässe, forwarding:Behandlung des data hazards bei and und sub

sig

n_

ext

en

d

AL

U

Re

g

DM

em

1

+

0

1

PC

IF/ID ID/EX EX/MEM MEM/WBzero

0

IMe

m

25

:21

15

:11

15:0

20

:16

4

Zyklus 1

add $1,$2,$3

Page 60: Fakultät für informatik informatik 12 technische universität dortmund 2.3 Register-Transfer-Strukturen 2012/08/14 (xmas)

- 60 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2012

Bypässe, forwarding:Behandlung des data hazards bei and und sub

sig

n_

ext

en

d

AL

U

Re

g

DM

em

1

+

0

1

PC

IF/ID ID/EX EX/MEM MEM/WBzero

0

IMe

m

25

:21

15

:11

15:0

20

:16

4

Zyklus 2

sub $4,$5,$1 add $1,$2,$3

Page 61: Fakultät für informatik informatik 12 technische universität dortmund 2.3 Register-Transfer-Strukturen 2012/08/14 (xmas)

- 61 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2012

Bypässe, forwarding:Behandlung des data hazards bei and und sub

sig

n_

ext

en

d

AL

U

Re

g

DM

em

1

+

0

1

PC

IF/ID ID/EX EX/MEM MEM/WBzero

0

IMe

m

25

:21

15

:11

15:0

20

:16

4

Zyklus 3

and $6,$1,$7 sub $4,$5,$1 add $1,$2,$3

Page 62: Fakultät für informatik informatik 12 technische universität dortmund 2.3 Register-Transfer-Strukturen 2012/08/14 (xmas)

- 62 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2012

Bypässe, forwarding:Behandlung des data hazards bei and und sub

sig

n_

ext

en

d

AL

U

Re

g

DM

em

1

+

0

1

PC

IF/ID ID/EX EX/MEM MEM/WBzero

0

IMe

m

25

:21

15

:11

15:0

20

:16

4

Zyklus 4

add $1,$2,$3sub $4,$5,$1and $6,$1,$7or $8,$1,$9

Page 63: Fakultät für informatik informatik 12 technische universität dortmund 2.3 Register-Transfer-Strukturen 2012/08/14 (xmas)

- 63 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2012

Bypässe, forwarding:Behandlung des data hazards bei and und sub

sig

n_

ext

en

d

AL

U

Re

g

DM

em

1

+

0

1

PC

IF/ID ID/EX EX/MEM MEM/WBzero

0

IMe

m

25

:21

15

:11

15:0

20

:16

4

Zyklus 5

add $1,$2,$3sub $4,$5,$1and $6,$1,$7or $8,$1,$9xor $10,$1,$11

Page 64: Fakultät für informatik informatik 12 technische universität dortmund 2.3 Register-Transfer-Strukturen 2012/08/14 (xmas)

- 64 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2012

Bypässe, forwarding:Behandlung des data hazards bei and und sub

sig

n_

ext

en

d

AL

U

Re

g

DM

em

1

+

0

1

PC

IF/ID ID/EX EX/MEM MEM/WBzero

0

IMe

m

25

:21

15

:11

15:0

20

:16

4

Zyklus 6

? xor $10,$1,$11 or $8,$1,$9 and $6,$1,$7 sub $4,$5,$1

Page 65: Fakultät für informatik informatik 12 technische universität dortmund 2.3 Register-Transfer-Strukturen 2012/08/14 (xmas)

- 65 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2012

sig

n_

ext

en

d

AL

U

Re

g

DM

em

1

+

0

1

PC

IF/ID ID/EX EX/MEM MEM/WBzero

0

IMe

m

25

:21

15

:11

15:0

20

:16

4

Übernahme in die Pipeline-Register

Taktung zur Behandlung des data hazards bei or

Takt

Zyklus 1

add $1,$2,$3

Page 66: Fakultät für informatik informatik 12 technische universität dortmund 2.3 Register-Transfer-Strukturen 2012/08/14 (xmas)

- 66 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2012

sig

n_

ext

en

d

AL

U

Re

g

DM

em

1

+

0

1

PC

IF/ID ID/EX EX/MEM MEM/WBzero

0

IMe

m

25

:21

15

:11

15:0

20

:16

4

Übernahme in die Pipeline-Register

Taktung zur Behandlung des data hazards bei or

Takt

Zyklus 2

sub $4,$5,$1 add $1,$2,$3

Page 67: Fakultät für informatik informatik 12 technische universität dortmund 2.3 Register-Transfer-Strukturen 2012/08/14 (xmas)

- 67 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2012

sig

n_

ext

en

d

AL

U

Re

g

DM

em

1

+

0

1

PC

IF/ID ID/EX EX/MEM MEM/WBzero

0

IMe

m

25

:21

15

:11

15:0

20

:16

4

Taktung zur Behandlung des data hazards bei or

Takt

Zyklus 3

and $6,$1,$7 sub $4,$5,$1 add $1,$2,$3

Page 68: Fakultät für informatik informatik 12 technische universität dortmund 2.3 Register-Transfer-Strukturen 2012/08/14 (xmas)

- 68 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2012

sig

n_

ext

en

d

AL

U

Re

g

DM

em

1

+

0

1

PC

IF/ID ID/EX EX/MEM MEM/WBzero

0

IMe

m

25

:21

15

:11

15:0

20

:16

4

Taktung zur Behandlung des data hazards bei or

Takt

Zyklus 4

add $1,$2,$3sub $4,$5,$1and $6,$1,$7or $8,$1,$9

Page 69: Fakultät für informatik informatik 12 technische universität dortmund 2.3 Register-Transfer-Strukturen 2012/08/14 (xmas)

- 69 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2012

sig

n_

ext

en

d

AL

U

Re

g

DM

em

1

+

0

1

PC

IF/ID ID/EX EX/MEM MEM/WBzero

0

IMe

m

25

:21

15

:11

15:0

20

:16

4

Übernahme in die Pipeline-Register

Taktung zur Behandlung des data hazards bei or

Takt

Zyklus 5add $1,$2,$3sub $4,$5,$1and $6,$1,$7or $8,$1,$9xor $10,$1,$11

Zyklus 4

Page 70: Fakultät für informatik informatik 12 technische universität dortmund 2.3 Register-Transfer-Strukturen 2012/08/14 (xmas)

- 70 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2012

sig

n_

ext

en

d

AL

U

Re

g

DM

em

1

+

0

1

PC

IF/ID ID/EX EX/MEM MEM/WBzero

0

IMe

m

25

:21

15

:11

15:0

20

:16

4

Übernahme in die Pipeline-Register

Taktung zur Behandlung des data hazards bei or

Takt

Zyklus 5add $1,$2,$3sub $4,$5,$1and $6,$1,$7or $8,$1,$9xor $10,$1,$11

Zyklus 4

Page 71: Fakultät für informatik informatik 12 technische universität dortmund 2.3 Register-Transfer-Strukturen 2012/08/14 (xmas)

- 71 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2012

sig

n_

ext

en

d

AL

U

Re

g

DM

em

1

+

0

1

PC

IF/ID ID/EX EX/MEM MEM/WBzero

0

IMe

m

25

:21

15

:11

15:0

20

:16

4

Übernahme in die Pipeline-Register

Übernahme inReg, Dmem und PC

Taktung zur Behandlung des data hazards bei or

Takt

Zyklus 6sub $4,$5,$1and $6,$1,$7or $8,$1,$9xor $10,$1,$11?

pipeline2

Page 72: Fakultät für informatik informatik 12 technische universität dortmund 2.3 Register-Transfer-Strukturen 2012/08/14 (xmas)

- 72 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2012

Alle data hazards durch Bypässe behandelbar?

sig

n_

ext

en

d

AL

U

Re

g

DM

em

1

+

0

1

PC

IF/ID ID/EX EX/MEM MEM/WBzero

0

IMe

m

25

:21

15

:11

15:0

20

:16

4

Zyklus 1

lw $1,0($2)

Zyklus 2

sub $4,$5,$1 lw $1,0($2)

Zyklus 3

and $6,$1,$7 sub $4,$5,$1 lw $1,0($2)

Zyklus 4

or $8,$1,$9 and $6,$1,$7 sub $4,$5,$1 lw $1,0($2)

Zyklus 5

xor $10,$1,$11 or $8,$1,$9 and $6,$1,$7 sub $4,$5,$1 lw $1,0($2)

Zyklus 6

? xor $10,$1,$11 or $8,$1,$9 and $6,$1,$7 sub $4,$5,$1

Speicherwort wird am Ende des Zyklus 4 gespeichert, steht für Differenz noch nicht bereit.Speicherwort wird am Ende des Zyklus 4 gespeichert, steht für Differenz noch nicht bereit.

Page 73: Fakultät für informatik informatik 12 technische universität dortmund 2.3 Register-Transfer-Strukturen 2012/08/14 (xmas)

- 73 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2012

Lösung durch Anhalten des Fließbandes(pipeline stall, hardware interlocking, bubbles)

sig

n_

ext

en

d

AL

U

Re

g

DM

em

1

+

0

1

PC

IF/ID ID/EX EX/MEM MEM/WBzero

0

IMe

m

25

:21

15

:11

15:0

20

:16

4

Zyklus 1

lw $1,0($2)

Page 74: Fakultät für informatik informatik 12 technische universität dortmund 2.3 Register-Transfer-Strukturen 2012/08/14 (xmas)

- 74 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2012

Lösung durch Anhalten des Fließbandes(pipeline stall, hardware interlocking, bubbles)

sig

n_

ext

en

d

AL

U

Re

g

DM

em

1

+

0

1

PC

IF/ID ID/EX EX/MEM MEM/WBzero

0

IMe

m

25

:21

15

:11

15:0

20

:16

4

Zyklus 2

sub $4,$5,$1 lw $1,0($2)

Page 75: Fakultät für informatik informatik 12 technische universität dortmund 2.3 Register-Transfer-Strukturen 2012/08/14 (xmas)

- 75 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2012

Lösung durch Anhalten des Fließbandes(pipeline stall, hardware interlocking, bubbles)

sig

n_

ext

en

d

AL

U

Re

g

DM

em

1

+

0

1

PC

IF/ID ID/EX EX/MEM MEM/WBzero

0

IMe

m

25

:21

15

:11

15:0

20

:16

4

Zyklus 3

and $6,$1,$7 sub $4,$5,$1 lw $1,0($2)

Page 76: Fakultät für informatik informatik 12 technische universität dortmund 2.3 Register-Transfer-Strukturen 2012/08/14 (xmas)

- 76 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2012

Lösung durch Anhalten des Fließbandes(pipeline stall, hardware interlocking, bubbles)

sig

n_

ext

en

d

AL

U

Re

g

DM

em

1

+

0

1

PC

IF/ID ID/EX EX/MEM MEM/WBzero

0

IMe

m

25

:21

15

:11

15:0

20

:16

4

Zyklus 4

or $8,$1,$9 and $6,$1,$7 sub $4,$5,$1 lw $1,0($2)NOOP NOOP NOOP

Page 77: Fakultät für informatik informatik 12 technische universität dortmund 2.3 Register-Transfer-Strukturen 2012/08/14 (xmas)

- 77 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2012

Lösung durch Anhalten des Fließbandes(pipeline stall, hardware interlocking, bubbles)

sig

n_

ext

en

d

AL

U

Re

g

DM

em

1

+

0

1

PC

IF/ID ID/EX EX/MEM MEM/WBzero

0

IMe

m

25

:21

15

:11

15:0

20

:16

4

Zyklus 5

or $8,$1,$9 and $6,$1,$7 sub $4,$5,$1 NOOP lw $1,0($2)

Page 78: Fakultät für informatik informatik 12 technische universität dortmund 2.3 Register-Transfer-Strukturen 2012/08/14 (xmas)

- 78 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2012

Lösung durch Anhalten des Fließbandes(pipeline stall, hardware interlocking, bubbles)

sig

n_

ext

en

d

AL

U

Re

g

DM

em

1

+

0

1

PC

IF/ID ID/EX EX/MEM MEM/WBzero

0

IMe

m

25

:21

15

:11

15:0

20

:16

4

Zyklus 6

xor $10,$1,$11 or $8,$1,$9 and $6,$1,$7 sub $4,$5,$1 NOOP

„bubble“, durch intelligen-te Compiler vermeiden!

pipeline3

Page 79: Fakultät für informatik informatik 12 technische universität dortmund 2.3 Register-Transfer-Strukturen 2012/08/14 (xmas)

- 79 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2012

Kontrollfluss-Abhängigkeiten oder - Gefährdungen, control hazards (1)

Beispielprogramm:

beq $12,$2,t -- springe zur Marke t, falls Reg[12]=Reg[2]sub .......

t:add ..

Wir versuchen zunächst, durch Einfügen von NOOPs, die intuitive Bedeutung des Programms zu realisieren...

Page 80: Fakultät für informatik informatik 12 technische universität dortmund 2.3 Register-Transfer-Strukturen 2012/08/14 (xmas)

- 80 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2012

Kontrollfluss-Abhängigkeiten oder - Gefährdungen, control hazards (2)

sig

n_

ext

en

d

AL

U

Re

g

DM

em

1

+

0

1

PC

IF/ID ID/EX EX/MEM MEM/WBzero

0

IMe

m

25

:21

15

:11

15:0

20

:16

4

Zyklus 1

beq $1,$2,t

Zyklus 2

sub beq $1,$2,t

Zyklus 3

NOOP NOOP beq $1,$2,t

Zyklus 4

sub oder add NOOP NOOP beq $1,$2,t

Zyklus 5

... sub oder add NOOP NOOP beq $1,$2,t

Zyklus 6

... ... sub oder add NOOP NOOP

Takt 3: ALU müsste sowohl Vergleich wie auch das Sprungziel ausrechnen können

Takt 4: Mit fallender Flanke wird PC getaktet, mit steigender IF/ID-Register.

Takt 2: Sprung wird erkannt, deshalb werden zwei NOOP-Befehle eingefügt.

Page 81: Fakultät für informatik informatik 12 technische universität dortmund 2.3 Register-Transfer-Strukturen 2012/08/14 (xmas)

- 81 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2012

Kontrollfluss-Abhängigkeiten oder - Gefährdungen, control hazards (3)

Probleme beim gezeigten Ansatz: Leistungsverlust durch 2 NOOPs (branch delay penalty). ALU/Multiplexer in der gezeigten Form nicht ausreichend,

um Test und Sprungzielberechnung in einem Takt auszuführen.

Lösungsansatz: Gleichheit der Register wird schon in der instruction

decode-Stufe geprüft. Sprungziel wird in separatem Adressaddierer ebenfalls

bereits in der instruction decode-Stufe berechnet. Sofern weiterhin noch Verzögerungen auftreten:

• nächsten Befehl einfach ausführen (delayed branch).• oder weiterhin NOOP(s) einfügen (stall).

Page 82: Fakultät für informatik informatik 12 technische universität dortmund 2.3 Register-Transfer-Strukturen 2012/08/14 (xmas)

- 82 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2012

Reduktion der branch delay penalty;delayed branch

sig

n_

ext

en

d

AL

U

Re

g

DM

em

1

+

0

1

PC

IF/ID

ID/EX

EX/MEM MEM/WB

0

IMe

m

25:21

15

:11

15

:02

0:1

64 =

*

*

+

Zyklus 1

beq $1,$2,t

Zyklus 2

sub beq $1,$2,t

Zyklus 3

add sub beq $1,$2,t

Zyklus 4

... add sub beq $1,$2,t

Zyklus 5

... add sub beq $1,$2,t

Zyklus 6

... ... add sub

Am Ende des Zyklus 2 gültig

Folgeadresse bei fallender Flanke über-

nommen.

Page 83: Fakultät für informatik informatik 12 technische universität dortmund 2.3 Register-Transfer-Strukturen 2012/08/14 (xmas)

- 83 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2012

Beim gezeigten Beispiel wird der auf den Sprungbefehl folgende Befehl immer noch ausgeführt. beq $12,$2,t

sub ... # wird immer noch ausgeführt....

t: add ..Einen Platz für die Aufnahme eines solchen Befehls nenntman delay slot, die Sprünge delayed branches.Manche Maschinen haben mehrere delay slots.Delay slots sollten von Übersetzern mit nützlichen Befehlen gefüllt werden. Nur notfalls sollte es ein NOOP sein.Die MIPS-Maschine hat ein delay slot, welches aber vom Assembler verdeckt wird.

Delayed Branches, verzögerte Sprünge

„It‘s not a bug, it‘s a feature“

pipeline3

Page 84: Fakultät für informatik informatik 12 technische universität dortmund 2.3 Register-Transfer-Strukturen 2012/08/14 (xmas)

- 84 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2012

Typen von Fließband-Gefährdungen (hazards)

Strukturelle Abhängigkeiten/Gefährdungen(structural hazards)

Datenfluß- Abhängigkeiten/Gefährdungen (data hazards)

• aufgrund von Datenabhängigkeiten (RAW) forwarding, pipeline stalls

• aufgrund von Antidatenabhängigkeiten (WAR)(erst bei komplizierteren Systemen wichtig)

• aufgrund von Ausgabeabhängigkeiten (WAW)(erst bei komplizierteren Systemen wichtig)

Kontrollfluß-Abhängigkeiten/Gefährdungen (control hazards) delayed branches, pipeline stalls, spekulative Ausführung, Sprungvorhersage

Page 85: Fakultät für informatik informatik 12 technische universität dortmund 2.3 Register-Transfer-Strukturen 2012/08/14 (xmas)

- 85 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2012

Zusammenfassung

Die Fließbandverarbeitung (engl. pipelining) ermöglicht es,in jedem Takt die Bearbeitung eines Befehls abzuschließen, selbst wenn die Bearbeitung eines Befehls 1Takte dauert.

Bei mehreren Fließbändern pro Takt können mehrere Befehle beendet werden.

3 Typen von Gefährdungen des Fließbandbetriebs:- resource hazards- data hazards (RAW, WAR, WAW)- control hazards

Gegenmaßnahmen:- pipeline stall- forwarding/bypassing- branch prediction, delayed branches,- out-of-order execution, dynamic scheduling

www.it.lth.se/courses/dsi/material/Lectures/Lecture6.pdf

Page 86: Fakultät für informatik informatik 12 technische universität dortmund 2.3 Register-Transfer-Strukturen 2012/08/14 (xmas)

- 86 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2012

Prozessortrends

Page 87: Fakultät für informatik informatik 12 technische universität dortmund 2.3 Register-Transfer-Strukturen 2012/08/14 (xmas)

- 87 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2012

Interne Struktur von Pentium-Prozessoren

Fließbandverarbeitung bringt Performancegewinn.Fließbandverarbeitung nur bei RISC-Befehlssätzen einigermaßen überschaubar.Interne Umkodierung alter CISC-Befehle in RISC-Befehle.Beispiel:

Umkodierung von x86-Befehlen zu internen RISC-Befehlen

x86-Befehle

Puffer Puffer

Fließband 1 Fließband 2

Ergebnisspeicher

... ggf. weitere Fließbänder

Movie

Page 88: Fakultät für informatik informatik 12 technische universität dortmund 2.3 Register-Transfer-Strukturen 2012/08/14 (xmas)

- 88 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2012

Einige Eigenschaften 2007 aktueller Prozessoren

Beispiel: Intel® Core™ 2 Extreme Quad-Core QX6000:

4 Prozessoren auf einem Chip Jeder Prozessor kann pro Takt bis zu 4 Befehle

beenden Befehle können sich gegenseitig überholen

(dynamic scheduling, out-of-order execution) Sprungvorhersage 64-bit und 32-bit Operationen Bis zu 3 GHz ext. Takt Verlangt thermischen Entwurf für 130 W

Leistungsaufnahme Stromaufnahme bis zu 125 A Spannungsversorgung 0,85-1,6 V je nach Anforderung 775 Anschlüsse, davon ~2/3 für die Spannungsversorgung

[www.intel.com][http://

media.schottenland.de/pi/

IntelCore2ExtremeQx6700.jpg]

Page 89: Fakultät für informatik informatik 12 technische universität dortmund 2.3 Register-Transfer-Strukturen 2012/08/14 (xmas)

- 89 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2012

Einige Eigenschaften 2011 aktueller Prozessoren

Beispiel: Intel® Core™ i7-980X Processor Extreme Edition: 6 Prozessoren auf einem Chip Hyperthreading: 2 threads/Prozessor überlapp. Befehle können sich gegenseitig überholen Fertigung im 32 nm Prozess 1,17 x 109 Transistoren 64-bit und 32-bit Operationen 3,33 GHz (Turbo 3,6 GHz) ext. Takt Maximale Leistungsaufnahme (TDP): 130 W Stromaufnahme bis zu 181,1 A Spannungsversorgung 0,8-1,375 V je nach Anforderung 1366 Anschlüsse, incl. 435 für die Spannungsversorgung

[http://download.intel.com/design/processor/datashts/323252.pdf]

Page 90: Fakultät für informatik informatik 12 technische universität dortmund 2.3 Register-Transfer-Strukturen 2012/08/14 (xmas)

- 90 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2012

Vorhersage der Entwicklung gemäß ITRS-Roadmap

ITRS= International Technology Roadmap for Semiconductors:Vereinigung der Halbleiterhersteller mit dem Zwecke, Ziele und Engpässe zu definieren (siehe http://public.itrs.net)Beispiel: Leistungsaufnahme von Systemen gemäß Update 2008:

Fraglich, ob weitere Leistungs-steigerung akzeptiert wird.

[ITR

S U

pdat

e 20

08]

Page 91: Fakultät für informatik informatik 12 technische universität dortmund 2.3 Register-Transfer-Strukturen 2012/08/14 (xmas)

- 91 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2012

Leistungsaufnahme mobiler Systeme

[ITR

S U

pdat

e 20

10]

Page 92: Fakultät für informatik informatik 12 technische universität dortmund 2.3 Register-Transfer-Strukturen 2012/08/14 (xmas)

- 92 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2012

Anzahl der Komponenten stationärer Systeme

[ITR

S U

pdat

e 20

10]

Page 93: Fakultät für informatik informatik 12 technische universität dortmund 2.3 Register-Transfer-Strukturen 2012/08/14 (xmas)

- 93 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2012

Vorhersage der Taktfrequenzen

[ITRS, 2011 Overall Roadmap Technology Characteristics (ORTC) Tables ]

Interner Takt [GHz]

0

1

2

3

4

5

6

7

8

2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 2026

Steigerungsraten reduziert.

Page 94: Fakultät für informatik informatik 12 technische universität dortmund 2.3 Register-Transfer-Strukturen 2012/08/14 (xmas)

- 94 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2012

Vorhersage der Zellgrößen

[ITR

S 2

009]

Page 95: Fakultät für informatik informatik 12 technische universität dortmund 2.3 Register-Transfer-Strukturen 2012/08/14 (xmas)

- 95 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2012

Vorhersage der Anzahl der Anschlüsse

[ITRS Roadmap 2009]

Page 96: Fakultät für informatik informatik 12 technische universität dortmund 2.3 Register-Transfer-Strukturen 2012/08/14 (xmas)

- 96 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2012

Vorhersage der Anzahl der Funktionen pro Chip

[ITR

S 2

009]

Page 97: Fakultät für informatik informatik 12 technische universität dortmund 2.3 Register-Transfer-Strukturen 2012/08/14 (xmas)

- 97 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2012

Alternative Architekturen

DSP: Digitale Signalprozessoren; Prozessoren, die auf die Verarbeitung digitaler Signale (Sprache, Video) optimiert sind

VLIW: very long instruction word –Prozessoren; Prozessoren, die mit breiten Paketen von Befehlen mehrere Befehle gleichzeitig starten können

ASIP: application specific instruction set processors; Prozessoren, die für bestimmte Anwendungen (z.B. MPEG) optimiert sind

FPGA: field programmable gate array; Schaltung, deren Verhalten man durch Programmierung verändern kann.

ASIC: application specific integrated circuit; speziell für eine Anwendung entwickelter integrierter Schaltkreis

Page 98: Fakultät für informatik informatik 12 technische universität dortmund 2.3 Register-Transfer-Strukturen 2012/08/14 (xmas)

- 98 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2012

Trend hinsichtlich Energieeffizienz© H

ugo

De

Man

, IM

EC

, 2

007

GO

PS

/J

Page 99: Fakultät für informatik informatik 12 technische universität dortmund 2.3 Register-Transfer-Strukturen 2012/08/14 (xmas)

- 99 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2012

Trend zu Multiprozessor-Systemen

Grenzen der effizienten Realisierbarkeit von Einzelprozessoren erreicht:

- Höhere Taktraten nur schwer zu erreichen- Höhere Taktraten nicht mehr energieeffizient

(Kriterium Watt/Millionen Operationen)- Sprungvorhersage wird immer komplizierter- …

Bei Multiprozessor-Systemen werden mehrere Prozessoren zusammengeschaltet:

- Gleiche Multiprozessorsysteme: homogene Multiprozessoren

- Unterschiedliche Multiprozessorsysteme: heterogene Multiprozessoren

Page 100: Fakultät für informatik informatik 12 technische universität dortmund 2.3 Register-Transfer-Strukturen 2012/08/14 (xmas)

- 100 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2012

Gründe für die Einführung von Parallelität

BasisgleichungenLeistung: P ~ VDD² ,Maximale Taktfrequenz: f ~ VDD ,Energiebedarf für ein Programm: E = P t, mit: t = Laufzeit (fest)Zeitbedarf für ein Programm: t ~ 1/f

Änderungen durch Parallelverarbeitung, mit Operationen pro Takt:

Taktfrequenz reduziert auf: f’ = f / ,Spannung kann reduziert werden auf: VDD’ = VDD / ,Leistung für Parallelausführung: P ° = P / ² pro Operation,Leistung für Operationen pro Takt: P’ = P ° = P / , Zeit zur Ausführung des Programms: t’ = t,Energie zur Ausführung des Programms: E’ = P’ t = E / Es ist effizienter, Operationen parallel auszuführen

als diese sequentiell in einem –ten Teil der Zeit auszuführen.

Rechnen mit niedrigen Taktraten energetisch effizienter:

Page 101: Fakultät für informatik informatik 12 technische universität dortmund 2.3 Register-Transfer-Strukturen 2012/08/14 (xmas)

- 101 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2012

Klassifikation von Multiprozessorsystemennach Daten- und Befehlsströmen [Flynn]

Befehlsströme

1 >1

Daten-ströme

1 SISD MISD

>1 SIMD MIMD

SISD Bislang besprochene Einzelrechner

MIMD Netze aus Einzelrechnern; sehr flexibel

SIMD Ein Befehlsstrom für unterschiedliche Daten;identische Befehle bilden starke Einschränkung

MISD Mehrere Befehle für ein Datum: Kann als Fließband von Befehlen auf demselben Datenstrom ausgelegt werden. Ist etwas künstlich.

Klassifikation hat nur begrenzte Aussagekraft; keine bessere vorhanden.

Page 102: Fakultät für informatik informatik 12 technische universität dortmund 2.3 Register-Transfer-Strukturen 2012/08/14 (xmas)

- 102 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2012

Multiprocessor Systems On A Chip (MPSoCs)- Beispiele -

© Hug

o D

e M

an,

IME

C,

200

7

Page 103: Fakultät für informatik informatik 12 technische universität dortmund 2.3 Register-Transfer-Strukturen 2012/08/14 (xmas)

- 103 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2012

Wie viele Cores werden es werden?

2

Aufgrund der Probleme mit der Wärmeabfuhr kann man bei maximaler Taktrate von ~200 Prozessoren nur 10 mit Strom versorgen

dark silicon

Page 104: Fakultät für informatik informatik 12 technische universität dortmund 2.3 Register-Transfer-Strukturen 2012/08/14 (xmas)

- 104 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2012

Niedrigere Spannung, langsamerer Takt?

2

Sieht im ersten Moment besser aus

Page 105: Fakultät für informatik informatik 12 technische universität dortmund 2.3 Register-Transfer-Strukturen 2012/08/14 (xmas)

- 105 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2012

Niedrigere Spannungen reduzieren auch die Kommunikationsbandbreite

2

Grenze durch

verfügbare Bandbreite (klein bei

wenig Cores)

Page 106: Fakultät für informatik informatik 12 technische universität dortmund 2.3 Register-Transfer-Strukturen 2012/08/14 (xmas)

- 106 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2012

Bestes Ergebnis bei 44 Cores

Nur FlächenbeschränkungTaktung mit 10 GHz

Optimaler Takt

Bandbreiten-grenze

Weitere Performance-steigerungen bleiben begrenzt

Page 107: Fakultät für informatik informatik 12 technische universität dortmund 2.3 Register-Transfer-Strukturen 2012/08/14 (xmas)

- 107 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2012

Programmierung von Mehrprozessor-Systemen

Übliche imperative Sprachen (C, C++, Java, …):Abstraktion der seq. Ausführung in von-Neumann Maschine.

für Programmierung von 1 Maschinen konzipiert. Existierende Anwendungen für Programmierung von

parallelen Maschinen konzipiert. Kann man aus existierenden Anwendungen automatisch

Parallelität extrahieren?- Auf der Basis riesigen Aufwandes begrenzte Erfolge

im „high performance computing“(HPC; Simulationen in Physik, Chemie usw.)

- Für allgemeine Anwendung weitgehend ein Fehlschlag

Page 108: Fakultät für informatik informatik 12 technische universität dortmund 2.3 Register-Transfer-Strukturen 2012/08/14 (xmas)

- 108 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2012

Lösungsansätze

Alternative Berechungsmodelle- Funktionale Sprachen- Datenflusssprachen- Signalflussgraphen- Task-Graphen als Anwendungsmodellierung

Bislang keine allgemein nutzbare Lösung,Prozessorhersteller setzen große Summen auf MP-Technologie

seq. Prozess

Page 109: Fakultät für informatik informatik 12 technische universität dortmund 2.3 Register-Transfer-Strukturen 2012/08/14 (xmas)

- 109 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2012

Zusammenfassung

Vorhergesagt wird ein weiteres Skalieren der Prozessoren

Allerdings ist das Ende des Skalierens absehbar

Unklare Situation hinsichtlich der Richtung- Geeignetes Berechungsmodell?- Geeignete Architekturen?- Geeignete Sprachen?

Mögliches Ende des „Paradieses“, in dem immer komplexere Softwarearchitekturen durch immer leistungsfähigere Hardware möglich werden.


Recommended