Les 8: Datapad & Controle

68
ca8-1 Les 8: Datapad & Controle “A man with a watch knows what time it is. A man with two watches is never sure.” Wet van Segal.

description

Les 8: Datapad & Controle. “A man with a watch knows what time it is. A man with two watches is never sure.” Wet van Segal. Inhoud. Sequentiële logica Het datapad Een-cyclus-per-instructiemachine Meer-cycli-per-instructiemachine Microcodering RISC vs. CISC. s 1. …. s n. klok. - PowerPoint PPT Presentation

Transcript of Les 8: Datapad & Controle

Page 1: Les 8: Datapad & Controle

ca8-1

Les 8: Datapad & Controle

“A man with a watch knows what time it is. A man with two watches is never sure.”

Wet van Segal.

Page 2: Les 8: Datapad & Controle

ca8-2

Inhoud

• Sequentiële logica

• Het datapad

• Een-cyclus-per-instructiemachine

• Meer-cycli-per-instructiemachine

• Microcodering

• RISC vs. CISC

Page 3: Les 8: Datapad & Controle

ca8-3

Sequentiële logica

Combinatorische functie

Combinatorische functie

i1

ik…

f1

fm

klok

s1

sn

Page 4: Les 8: Datapad & Controle

ca8-4

S-R Latch (NOR)

S

RQ

Q S

R

Q

Q

A B A+B

0 0 10 1 01 0 01 1 0

Page 5: Les 8: Datapad & Controle

ca8-5

S-R Latch

S

RQ

Q

Qt S R Qt+1

0 0 0 00 0 1 0 0 1 0 10 1 1 -1 0 0 11 0 1 0 1 1 0 11 1 1 -

Page 6: Les 8: Datapad & Controle

ca8-6

S-R Latch (NAND)

S

RQ

Q S

R

Q

Q

A B AB

0 0 10 1 11 0 11 1 0

Page 7: Les 8: Datapad & Controle

ca8-7

Geklokte S-R Latch

S

RQ

Q

clk

Page 8: Les 8: Datapad & Controle

ca8-8

D-Latch

D

Q

Qclk

D Q

C Q

Page 9: Les 8: Datapad & Controle

ca8-9

D-Latch

D

C

Q

Page 10: Les 8: Datapad & Controle

ca8-10

Sequentiële logica

Combinatorische functie

Combinatorische functie

i1

ik…

f1

fm

klok

Q1 D1

s1

Qn Dn

sn

Page 11: Les 8: Datapad & Controle

ca8-11

Master-Slave D-Latch(D-Flip Flop)

D Q

C Q

D Q

C Q

D Q

QFlip-flop: D

Page 12: Les 8: Datapad & Controle

ca8-12

D-Flip-Flop

D

C

Q

setup-tijd hold tijd

Page 13: Les 8: Datapad & Controle

ca8-13

J-K Flip-Flop

Qt J K Qt+1

0 0 0 00 0 1 0 0 1 0 10 1 1 11 0 0 11 0 1 0 1 1 0 11 1 1 0

J Q

K Q

S Q

R Q

J

K

Flip-flop: JK

Page 14: Les 8: Datapad & Controle

ca8-14

T Flip-Flop

1

1

clk

Q

Q

T

S Q

R Q

Flip-flop: T

Page 15: Les 8: Datapad & Controle

ca8-15

Register

D Q

Q

D Q

Q

D Q

Q

d31 d30 d0a31 a30 a0clk

w

Page 16: Les 8: Datapad & Controle

ca8-16

Registerbestand

Reg 0

Reg 1

Reg 2

Reg n-1

deco

der

w

d

Din

Mul

tiple

xer

1M

ultip

lexe

r 2

Dout2

Dout1

clk

Reg 1

Reg 2

1 schrijfpoort

2 leespoorten

Page 17: Les 8: Datapad & Controle

ca8-17

Inhoud

• Sequentiële logica

• Het datapad

• Een-cyclus-per-instructiemachine

• Meer-cycli-per-instructiemachine

• Microcodering

• RISC vs. CISC

Page 18: Les 8: Datapad & Controle

ca8-18

Von Neumann-machineFysiek zicht

Invoer/Uitvoer

Geheugen:bau-cellen

RAM

adres

controle

data

BUS

controlecontrole

klokklok

registersregistersALU

Invoer/Uitvoer

ControleControle

klokklok

registersregisters

Geheugen

CVEadres

controle

dataALU

BUS

cachecache

Page 19: Les 8: Datapad & Controle

ca8-19

De klok

http://smoothspan.wordpress.com/2007/09/06/a-picture-of-the-multicore-crisis/

Page 20: Les 8: Datapad & Controle

ca8-20

VoorbeeldenMerk Type Freq (GHz)

Intel Core i7-2600K 3,4

Intel Core i7-2630QM 2,0

Intel Xeon E3-1220L 2,2

AMD Phenom II X6 1090T BE 3,2

AMD E2-3000M 1,8

AMD Atlon 64 FX-76 3,2

IBM Power7 795 Turbo Core 4,25

ARM Cortex-A15 1-1,5

Page 21: Les 8: Datapad & Controle

ca8-21

Processor

Data-geheugen

Instructie-geheugen

Datapad

Controle-eenheid

Page 22: Les 8: Datapad & Controle

ca8-22

Laden van een instructie

PC

geheugen

4

+

leesadres

instructie

Page 23: Les 8: Datapad & Controle

ca8-23

ALU-instructie: RRR

Register-bestand

ra

rb

rd

Din

Alu

b.v. : add r1, r2, r3

regW

Page 24: Les 8: Datapad & Controle

ca8-24

ALU-instructie: RRI

Register-bestand

ra

rb

rd

Din

Alu

letterlijkeoperand

b.v. : addi r1, 10, r3

regW

Page 25: Les 8: Datapad & Controle

ca8-25

MEM-instructie

Register-bestand

ra

rb

rd

Din

add

geheugen

offset

MemW MemR

b.v. : ld r1, 10(r3)

regW

Page 26: Les 8: Datapad & Controle

ca8-26

controletransferinstructie

ra

cmpge

PC

Offset

add

conditieRegister-bestand

0

b.v.: brge r1,16(pc) 4

+

0

1

Page 27: Les 8: Datapad & Controle

ca8-27

Inhoud

• Sequentiële logica

• Het datapad

• Een cyclus-per-instructiemachine

• Meer cycli-per-instructiemachine

• Microcodering

• RISC vs. CISC

Page 28: Les 8: Datapad & Controle

ca8-28

instructie-geheugen

4+

deco

der

Register-bestand

ra

rb

rd

Din

Datageheugen

offset

PC

0

Controle-eenheidS

1S

2

Res

PC

RegW

Alu

Mem

W

Mem

R

0

Cmp

Eén cyclus-per-instructiemachine

Page 29: Les 8: Datapad & Controle

ca8-29

Controletabel

add 0 1 1 0 001 xxx 0 0 1

addi 0 1 1 1 001 xxx 0 0 1

load 0 1 1 1 001 xxx 0 1 0

store 0 0 1 1 001 xxx 1 0 x

jump 1 0 0 1 001 111 0 0 1

brge 1 0 0 1 001 110 0 0 1

PC

RegW

S1 S2 Alu Mem

W

Mem

R

Res

Cmp

Page 30: Les 8: Datapad & Controle

ca8-30

Controle

0110001xxx001

0111001xxx001

0111001xxx010

0011001xxx10x

1001001111001

1001001110001

Add 000

Addi 001

Load 010

Store 011

Jump 100

Brge 101

Page 31: Les 8: Datapad & Controle

ca8-31

Inhoud

• Sequentiële logica

• Het datapad

• Een-cyclus-per-instructiemachine

• Meer-cycli-per-instructiemachine

• Microcodering

• RISC vs. CISC

Page 32: Les 8: Datapad & Controle

ca8-32

gehe

ugen

deco

der

Reg

iste

r-be

stan

d

ra

rb

rd

Dinoffset

PC

0

S1

S2

Reg

W Alu

Mem

W

Mem

RIR A

B

4LMD

R

R

C

IRWPC

W

Mar

PC

Src

Controle-eenheid

cond

Meer-cycli-per-instructiemachine

Page 33: Les 8: Datapad & Controle

ca8-33

gehe

ugen

deco

der

Reg

iste

r-be

stan

d

ra

rb

rd

Dinoffset

PC

0

S1

S2

Reg

W Alu

Mem

W

Mem

RIR A

B

4LMD

R

R

C

IRWPC

W

Mar

PC

Src

Mar=0 MemR=1 IRW=1 S1=0 S2=1 Alu=add PCSrc=1 Cond=0, PCW=1

Con

dInstructie: eerste cyclus

Page 34: Les 8: Datapad & Controle

ca8-34

gehe

ugen

deco

der

Reg

iste

r-be

stan

d

ra

rb

rd

Dinoffset

PC

0

S1

S2

Reg

W Alu

Mem

W

Mem

RIR A

B

4LMD

R

R

C

IRWPC

W

Mar

PC

Src

S1=0 S2=2 Alu=add

Instructie: tweede cyclusC

ond

Page 35: Les 8: Datapad & Controle

ca8-35

gehe

ugen

deco

der

Reg

iste

r-be

stan

d

ra

rb

rd

Dinoffset

PC

0

S1

S2

Reg

W Alu

Mem

W

Mem

RIR A

B

4LMD

R

R

C

IRWPC

W

Mar

PC

Src

S1=2 S2=0 Alu=add

ADD: derde cyclusC

ond

Page 36: Les 8: Datapad & Controle

ca8-36

gehe

ugen

deco

der

Reg

iste

r-be

stan

d

ra

rb

rd

Dinoffset

PC

0

S1

S2

Reg

W Alu

Mem

W

Mem

RIR A

B

4LMD

R

R

C

IRWPC

W

Mar

PC

Src

S1=2 S2=2 Alu=add

ADDI: derde cyclusC

ond

Page 37: Les 8: Datapad & Controle

ca8-37

gehe

ugen

deco

der

Reg

iste

r-be

stan

d

ra

rb

rd

Dinoffset

PC

0

S1

S2

Reg

W Alu

Mem

W

Mem

RIR A

B

4LMD

R

R

C

IRWPC

W

Mar

PC

Src

C=1 RegW=1

ADD/ADDI: vierde cyclusC

ond

Page 38: Les 8: Datapad & Controle

ca8-38

gehe

ugen

deco

der

Reg

iste

r-be

stan

d

ra

rb

rd

Dinoffset

PC

0

S1

S2

Reg

W Alu

Mem

W

Mem

RIR A

B

4LMD

R

R

C

IRWPC

W

Mar

PC

Src

S1=2 S2=2 Alu=add

LOAD/STORE: derde cyclusC

ond

Page 39: Les 8: Datapad & Controle

ca8-39

gehe

ugen

deco

der

Reg

iste

r-be

stan

d

ra

rb

rd

Dinoffset

PC

0

S1

S2

Reg

W Alu

Mem

W

Mem

RIR A

B

4LMD

R

R

C

IRWPC

W

Mar

PC

Src

Mar=1 MemW=1

STORE: vierde cyclusC

ond

Page 40: Les 8: Datapad & Controle

ca8-40

gehe

ugen

deco

der

Reg

iste

r-be

stan

d

ra

rb

rd

Dinoffset

PC

0

S1

S2

Reg

W Alu

Mem

W

Mem

RIR A

B

4LMD

R

R

C

IRWPC

W

Mar

PC

Src

Mar=1 MemR=1

LOAD: vierde cyclusC

ond

Page 41: Les 8: Datapad & Controle

ca8-41

gehe

ugen

deco

der

Reg

iste

r-be

stan

d

ra

rb

rd

Dinoffset

PC

0

S1

S2

Reg

W Alu

Mem

W

Mem

RIR A

B

4LMD

R

R

C

IRWPC

W

Mar

PC

Src

C=0 RegW=1

LOAD: vijfde cyclusC

ond

Page 42: Les 8: Datapad & Controle

ca8-42

gehe

ugen

deco

der

Reg

iste

r-be

stan

d

ra

rb

rd

Dinoffset

PC

0

S1

S2

Reg

W Alu

Mem

W

Mem

RIR A

B

4LMD

R

R

C

IRWPC

W

Mar

PC

Src

PCSrc=0 PCW=1 Cond=0

JUMP: derde cyclusC

ond

Page 43: Les 8: Datapad & Controle

ca8-43

gehe

ugen

deco

der

Reg

iste

r-be

stan

d

ra

rb

rd

Dinoffset

PC

0

S1

S2

Reg

W Alu

Mem

W

Mem

RIR A

B

4LMD

R

R

C

IRWPC

W

Mar

PC

Src

S1=1 S2=0 Alu=cmpge PCSrc=0 PCW=1 Cond=1

BRGE: derde cyclusC

ond

Page 44: Les 8: Datapad & Controle

ca8-44

Samenvatting controlesignalenMar=0 MemR=1 IRW=1 S1=0 S2=1 Alu=add PCSrc=1 Cond=0, PCW=1

S1=0 S2=2 Alu=add

S1=2 S2=0

Alu=add

C=1 RegW=1

S1=2 S2=2 Alu=add

Mar=1 MemW=1

Mar=1 MemR=1

C=0 RegW=1

PCSrc=0 PCW=1Cond=0

S1=1 S2=0 Alu=cmpge PCSrc=0

PCW=1 Cond=1

Cyclus 1

Cyclus 2

Cyclus 3

Cyclus 4

Cyclus 5

S1=2 S2=2

Alu=add

Page 45: Les 8: Datapad & Controle

ca8-45

Samenvatting controlesignalen

Mar=0 MemR=1 IRW=1 S1=0 S2=1 Alu=add PCSrc=1 Cond=0, PCW=1

S1=0 S2=2 Alu=add

S1=2 S2=0 Alu=add

C=1 RegW=1

S1=2 S2=2 Alu=add

Mar=1 MemW=1

Mar=1 MemR=1

C=0 RegW=1

PCSrc=0 PCW=1Cond=0

S1=1 S2=0 Alu=cmpge PCSrc=0

PCW=1 Cond=1

add

Load

/sto

re

jump

brge

storeload

0 1

2

4

5

67

8

9

10

S1=2 S2=2 Alu=add

3

addi

Page 46: Les 8: Datapad & Controle

ca8-46

Controle-uitgangen

PCW 0 9 10

Cond 0 9 10

Mar 0 6 7

MemW 6

MemR 0 7

IRW 0

C 4 8

RegW 4 8

S1 0 1 2 3 5 10

S2 0 1 2 3 5 10

Alu 0 1 2 3 5 10

PCSrc 0 9 10

PCW 0 9 10

Cond 0 9 10

Mar 0 6 7

MemW 6

MemR 0 7

IRW 0

C 4 8

RegW 4 8

S1 0 1 2 3 5 10

S2 0 1 2 3 5 10

Alu 0 1 2 3 5 10

PCSrc 0 9 10

uitgang bijhorende toestanden

Page 47: Les 8: Datapad & Controle

ca8-47

Controle-uitgangen

0 0 0 0 1 0 0 0 1 1 X 0 00 01 001 1

0 0 0 1 0 X X 0 0 0 X 0 00 10 001 X

0 0 1 0 0 X X 0 0 0 X 0 10 00 001 X

0 0 1 1 0 X X 0 0 0 X 0 10 10 010 X

0 1 0 0 0 X X 0 0 0 1 1 XX XX 000 X

0 1 0 1 0 X X 0 0 0 X 0 10 10 001 X

0 1 1 0 0 X 1 1 0 0 X 0 XX XX 000 X

0 1 1 1 0 X 1 0 1 0 X 0 XX XX 000 X

1 0 0 0 0 X X 0 0 0 0 1 XX XX 000 X

1 0 0 1 1 0 X 0 0 0 X 0 XX XX 000 0

1 0 1 0 1 1 X 0 0 0 X 0 01 00 100 0

0 0 0 0 1 0 0 0 1 1 X 0 00 01 001 1

0 0 0 1 0 X X 0 0 0 X 0 00 10 001 X

0 0 1 0 0 X X 0 0 0 X 0 10 00 001 X

0 0 1 1 0 X X 0 0 0 X 0 10 10 010 X

0 1 0 0 0 X X 0 0 0 1 1 XX XX 000 X

0 1 0 1 0 X X 0 0 0 X 0 10 10 001 X

0 1 1 0 0 X 1 1 0 0 X 0 XX XX 000 X

0 1 1 1 0 X 1 0 1 0 X 0 XX XX 000 X

1 0 0 0 0 X X 0 0 0 0 1 XX XX 000 X

1 0 0 1 1 0 X 0 0 0 X 0 XX XX 000 0

1 0 1 0 1 1 X 0 0 0 X 0 01 00 100 0

PC

W

Con

d

Mar

Mem

W

Mem

R

IRW

C Reg

W

S1

S2

Alu

PC

Src

toestand

Page 48: Les 8: Datapad & Controle

ca8-48

Volgende-toestanduitgangen

0 0 0 0 0 0 0 1

0 0 0 1 op = add 0 0 1 0

0 0 0 1 op = addi 0 0 1 1

0 0 0 1 op = load/store 0 1 0 1

0 0 0 1 op = jump 1 0 0 1

0 0 0 1 op = brge 1 0 1 0

0 0 1 0 0 1 0 0

0 0 1 1 0 1 0 0

0 1 0 1 op = store 0 1 1 0

0 1 0 1 op = load 0 1 1 1

0 1 0 0 0 0 0 0

0 1 1 1 1 0 0 0

1 0 0 0 0 0 0 0

1 0 0 1 0 0 0 0

1 0 1 0 0 0 0 0

0 0 0 0 0 0 0 1

0 0 0 1 op = add 0 0 1 0

0 0 0 1 op = addi 0 0 1 1

0 0 0 1 op = load/store 0 1 0 1

0 0 0 1 op = jump 1 0 0 1

0 0 0 1 op = brge 1 0 1 0

0 0 1 0 0 1 0 0

0 0 1 1 0 1 0 0

0 1 0 1 op = store 0 1 1 0

0 1 0 1 op = load 0 1 1 1

0 1 0 0 0 0 0 0

0 1 1 1 1 0 0 0

1 0 0 0 0 0 0 0

1 0 0 1 0 0 0 0

1 0 1 0 0 0 0 0

toestand voorwaarde volgende toestand

Page 49: Les 8: Datapad & Controle

ca8-49

Controle-eenheid

PCWCondMarMemWMemRIRWCRegWS1S2AluPCSrcNS3NS2NS1NS0

IR toestand

input

output

S3..S0Op3..Op0

Page 50: Les 8: Datapad & Controle

ca8-50

ROM-Implementatie

IRtoestand

ROM116x16

bits

ROM2

256x4 bits

Page 51: Les 8: Datapad & Controle

ca8-51

Inhoud van ROM11000 1100 0001 0011

0000 0000 0010 0010

0000 0000 1000 0010

0000 0000 1010 0100

0000 0011 0000 0000

0000 0000 1010 0010

0011 0000 0000 0000

0010 1000 0000 0000

0000 0001 0000 0000

1000 0000 0000 0000

1001 0000 0100 1000

0000 0000 0000 0000

0000 0000 0000 0000

0000 0000 0000 0000

0000 0000 0000 0000

0000 0000 0000 0000

1000 1100 0001 0011

0000 0000 0010 0010

0000 0000 1000 0010

0000 0000 1010 0100

0000 0011 0000 0000

0000 0000 1010 0010

0011 0000 0000 0000

0010 1000 0000 0000

0000 0001 0000 0000

1000 0000 0000 0000

1001 0000 0100 1000

0000 0000 0000 0000

0000 0000 0000 0000

0000 0000 0000 0000

0000 0000 0000 0000

0000 0000 0000 0000

0000

0001

0010

0011

0100

0101

0110

0111

1000

1001

1010

1011

1100

1101

1110

1111

Page 52: Les 8: Datapad & Controle

ca8-52

Inhoud

• Sequentiële logica

• Het datapad

• Een cyclus-per-instructiemachine

• Meer cycli-per-instructiemachine

• Microcodering

• RISC vs. CISC

Page 53: Les 8: Datapad & Controle

ca8-53

Sequencer-implementatie

IR

toestand

ROM116x18

bits

1

+

Tabel 1

0

Tabel 2

16x4 bits

Page 54: Les 8: Datapad & Controle

ca8-54

Samenvatting controlesignalen

Mar=0 MemR=1 IRW=1 S1=0 S2=1 Alu=plus PCSrc=1 Cond=0, PCW=1

S1=0 S2=2 Alu=add

S1=2 S2=0 Alu=add

C=1 RegW=1

S1=2 S2=2 Alu=add

Mar=1 MemW=1

Mar=1 MemR=1

C=0 RegW=1

PCSrc=0 PCW=1Cond=0

S1=1 S2=0 Alu=cmpge PCSrc=0

PCW=1 Cond=1

add

Load

/sto

re

jump

brge

storeload

0 1

2

3

6

78

9

10

11

S1=2 S2=2 Alu=add

4

addi

C=1 RegW=1

5

01

10

11

11

11

11

11

11

00

00

0000

Page 55: Les 8: Datapad & Controle

ca8-55

Microcode

A

BRegisters C

temp

PC

mar

mdr

IR

geheugen

tekenuitb

+1

μPC

microcode

jump tabel 1

jump tabel 2

jump tabel 3

controle datapad

ALU

Page 56: Les 8: Datapad & Controle

ca8-56

μPC Label ALU S1 S2 Dest ExtIR Const JCond Adr Mem MAdr MDest Regs0000 Fetch Mbusy Fetch RW PC IR 0001 ADD PC Const PC 4 Jump1 RR 0002 LdSt ADD A IR MAR Word Jump2 0003 Brge S1 A LT Fetch 0004 Jump ADD PC IR PC Word True Fetch 0005 Add ADD A B C 0006 True Fetch WF3 0007 Addi ADD A IR C Word True Wb2 0008 Load Mbusy Load RW MAR MDR 0009 S1 MDR C 000A Wb2 True Fetch WF2 000B Store S2 B MDR 000C Store2 Mbusy Store2 WW MAR 000D True Fetch

Opcode Jump Table 1 Jump Table 2 LD LdSt Load ST LdSt Store ADD Add ADDI Addi BRGE Brge JUMP Jump

Microcodeprogramma

Page 57: Les 8: Datapad & Controle

ca8-57

Onderbrekingen en excepties

Mar=0 MemR=1 IRW=1 S1=0 S2=1 Alu=plus PCSrc=1 Cond=0, PCW=1

S1=0 S2=2 Alu=add

S1=2 S2=0 Alu=add

C=1 RegW=1

S1=2 S2=2 Alu=add

Mar=1 MemW=1

Mar=1 MemR=1

C=0 RegW=1

PCSrc=0 PCW=1Cond=0

S1=1 S2=0 Alu=cmpge PCSrc=0

PCW=1 Cond=1

add

Load

/sto

re

jump

brge

storeload

0 1

2

4

5

67

8

9

10

S1=2 S2=2 Alu=add

3

addi

ongeldigNieuwe

PC

NieuwePC

over

flow

overflow

NieuwePC

geheugenfout

NieuwePC

onde

rbre

king

Page 58: Les 8: Datapad & Controle

ca8-58

Inhoud

• Sequentiële logica

• Het datapad

• Een cyclus-per-instructiemachine

• Meer cycli-per-instructiemachine

• Microcodering

• RISC vs. CISC

Page 59: Les 8: Datapad & Controle

ca8-59

Evolutie van instructiesetsSingle Accumulator (EDSAC 1950)

Accumulator + Index Registers(Manchester Mark I, IBM 700 series 1953)

Separation of Programming Model from Implementation

High-level Language Based Concept of a Family(B5000 1963) (IBM 360 1964)

General Purpose Register Machines

Complex Instruction Sets Load/Store Architecture

RISC

(Vax, Intel 432 1977-80) (CDC 6600, Cray 1 1963-76)

(Mips,SPARC,HP-PA,IBM RS6000, . . .1987)

Page 60: Les 8: Datapad & Controle

ca8-60

Instructiegebruik

Instructie aandeel

Toewijzing 47

If 23

Call 15

Lus 6

Goto 3

Andere 7

Page 61: Les 8: Datapad & Controle

ca8-61

Complexiteit

Toewijzing Lok. var Parameters

- 22 41

80 17 19

15 20 15

3 14 9

2 8 7

0 20 8

0

1

2

3

4

≥ 5

Page 62: Les 8: Datapad & Controle

ca8-62

Processor Strafverhouding

Berkeley RISC II 0.90

Motorola M68000 0.34

uitvoeringstijd machinetaal .

uitvoeringstijd hoge-niveautaal

C is een alternatief voor assembler

Strafverhouding

Page 63: Les 8: Datapad & Controle

ca8-63

Kenmerken

• Voornamelijk instructies die ‘echt’ nodig zijn

• Vooral instructies die effectief gebruikt worden, eenvoudig decodeerbaar

• Groot aantal registers, RRR-machinemodel

• Geen complexe adresseermodes

Page 64: Les 8: Datapad & Controle

ca8-64

instructies: vaste lengte + gealigneerd

32-bit loads minder efficiënt

Eenvoudige decodering

15 031 25 20

opcode D S1 subopcode S2

opcode B5 S1 subopcode immediate

opcode D/B5/M5 S1 immediate

opcode B5/M5 S1 subopcode vector

opcode D26

opcode D S1 op sfu crs/crd S2

Page 65: Les 8: Datapad & Controle

ca8-65

Sparc Registervensters

%l0-%l7

%o0-%o7

%g0-%g7

Niveau 1

%g0-%g7

%l0-%l7

%o0-%o7

%i0-%i7Niveau 2

%l0-%l7

%o0-%o7

%i0-%i7

%g0-%g7

Niveau 3

2-32 vensters40-520 registers

Page 66: Les 8: Datapad & Controle

ARM Thumb

ca8-66

ARM State (T=0) Thumb State (T=1)

32-bit ARM-instructies

Conditionele uitvoering16 registers

RRR-instructies

Default toestand bij opstarten

16-bit Thumb-instructiesNiet-conditioneel8 registersRR-instructiesKleine letterlijke operandi

Tijdens uitvoering geëxpandeerd naar ARM-instructies

30% compacter dan ARM-code40% meer instructies nodig: 40% trager

Goed voor niet-kritische code

Page 67: Les 8: Datapad & Controle

ca8-67

Processorfabrikanten

• SUN: Sparc• [COMPAQ (Nu Intel): Alpha-processor]• HP: PA-RISC• Freescale + IBM: PowerPC• MIPS: MIPS• Intel+HP: Itanium (VLIW)• Intel: IA32 / x86-64 (CISC)• AMD: IA32 / x86-64 (CISC)

Page 68: Les 8: Datapad & Controle

ca8-68

Pauze