ca8

January 8, 2018 | Author: Anonymous | Category: Engineering & Technology, Elektrotechniek, Microelectronics
Share Embed Donate


Short Description

Download ca8...

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.

ca8-1

Inhoud • • • • • •

Sequentiële logica Het datapad Eén-cyclus-per-instructiemachine Meer-cycli-per-instructiemachine Microcodering RISC vs. CISC

ca8-2

Sequentiële logica i1 … ik

Combinatorische functie

f1 … fm

s1

… sn

klok

ca8-3

S-R Latch (NOR) S Q

S R

Q

R

Q A

B

A+B

0 0 1 1

0 1 0 1

1 0 0 0

Q



ca8-4

S-R Latch S Q

Q

R

Qt 0 0 0 0 1 1 1 1

S 0 0 1 1 0 0 1 1

R 0 1 0 1 0 1 0 1

Qt+1 0 0 1 1 0 1 ca8-5

S-R Latch (NAND) S Q

S R

Q R

Q A

B

AB

0 0 1 1

0 1 0 1

1 1 1 0

Q



ca8-6

Geklokte S-R Latch S Q

clk Q

R

ca8-7

D-Latch D

Q clk

Q D Q C Q ca8-8

D-Latch

D

C

Q

ca8-9

Sequentiële logica i1 … ik

Combinatorische functie

f1 … fm

Q1 D1 s1



Qn Dn sn

klok

ca8-10

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

D Q

C Q

C Q

D Q Flip-flop: D

Q ca8-11

D-Flip-Flop

D

C

Q setup-tijd hold tijd ca8-12

J Q

J-K Flip-Flop

K Q

J

S Q

K

R Q

Qt 0 0 0 0 1 1 1 1

J K 0 0 0 1 1 0 1 1 0 0 0 1 1 0 1 1

Qt+1 0 0 1 1 1 0 1 0

Flip-flop: JK ca8-13

T

Q

T Flip-Flop

Q 1 S Q clk R Q 1 Flip-flop: T ca8-14

Register clk

a31 d30

d31

a30

a0

d0

D Q

D Q

D Q

Q

Q

Q

w

ca8-15

clk

w

Reg 1

Din

Reg 2 …

Multiplexer 1

Reg 1

Reg n-1 1 schrijfpoort

2 leespoorten

Registerbestand

Dout1

Reg 2 Multiplexer 2

d

decoder

Reg 0

Dout2

ca8-16

Inhoud • • • • • •

Sequentiële logica Het datapad Eén-cyclus-per-instructiemachine Meer-cycli-per-instructiemachine Microcodering RISC vs. CISC

ca8-17

Von Neumann-machine Fysiek zicht BUS adres data controle

CVE

Controle controle klok

cache

registers Geheugen Geheugen:bau-cellen RAM Invoer/Uitvoer ca8-18

De klok

ca8-19

Voorbeelden Merk

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 ca8-20

Processor Data-geheugen

Datapad

Controle-eenheid

Instructie-geheugen ca8-21

Laden van een instructie

+ 4 PC

leesadres geheugen

instructie

ca8-22

ALU-instructie: RRR Alu

regW ra rb

Registerbestand

rd Din

b.v. : add r1, r2, r3 ca8-23

ALU-instructie: RRI Alu

regW ra rb

Registerbestand

rd Din letterlijke operand

b.v. : addi r1, 10, r3 ca8-24

MEM-instructie add

MemW

MemR

ra rb

Registerbestand

rd Din

geheugen regW

offset

b.v. : ld r1, 10(r3) ca8-25

controletransferinstructie cmpge ra conditie

Registerbestand

1

0 0

4

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

add +

PC Offset ca8-26

Inhoud • • • • • •

Sequentiële logica Het datapad Eén cyclus-per-instructiemachine Meer cycli-per-instructiemachine Microcodering RISC vs. CISC

ca8-27

Eén cyclus-perinstructiemachine 4

0 Cmp

+ Data geheugen

rb

offset RegW

Res

Registerbestand

Alu

Din

MemR

rd

MemW

instructiegeheugen

S1

PC

S2

0

decoder

ra

PC

Controle-eenheid ca8-28

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

ca8-29

Controle

Add 000

0110001xxx001

Addi 001

0111001xxx001

Load 010

0111001xxx010

Store 011

0011001xxx10x

Jump 100

1001001111001

Brge 101

1001001110001

ca8-30

Inhoud • • • • • •

Sequentiële logica Het datapad Eén-cyclus-per-instructiemachine Meer-cycli-per-instructiemachine Microcodering RISC vs. CISC

ca8-31

rb

A

Din

4

B

S2

PCSrc

offset

R

Alu

rd

S1

RegW

LMDR

0

IRW

MemR

decoder

IR

geheugen MemW

Mar

PCW

PC

ra Registerbestand

Meer-cycli-per-instructiemachine

cond

C

Controle-eenheid ca8-32

rb

A

Din

4

B

S2

PCSrc

offset

R

Alu

rd

S1

RegW

LMDR

0

IRW

MemR

decoder

IR

geheugen MemW

Mar

PCW

PC

ra Registerbestand

Instructie: eerste cyclus

Cond

C

Mar=0 MemR=1 IRW=1 S1=0 S2=1 Alu=add PCSrc=1 Cond=0 PCW=1 memW=0 RegW=0 IRW=0 ca8-33

rb

A

Din

4

B

S2

PCSrc

offset

R

Alu

rd

S1

RegW

LMDR

0

IRW

MemR

decoder

IR

geheugen MemW

Mar

PCW

PC

ra Registerbestand

Instructie: tweede cyclus

Cond

C

S1=0 S2=2 Alu=add memW=0 RegW=0 IRW=0 PCW=0 ca8-34

rb

A

Din

4

B

S2

PCSrc

offset

R

Alu

rd

S1

RegW

LMDR

0

IRW

MemR

decoder

IR

geheugen MemW

Mar

PCW

PC

ra Registerbestand

ADD: derde cyclus

Cond

C

S1=2 S2=0 Alu=add memW=0 RegW=0 IRW=0 PCW=0 ca8-35

rb

A

Din

4

B

S2

PCSrc

offset

R

Alu

rd

S1

RegW

LMDR

0

IRW

MemR

decoder

IR

geheugen MemW

Mar

PCW

PC

ra Registerbestand

ADDI: derde cyclus

Cond

C

S1=2 S2=2 Alu=add memW=0 RegW=0 IRW=0 PCW=0 ca8-36

rb

A

Din

4

B

S2

PCSrc

offset

R

Alu

rd

S1

RegW

LMDR

0

IRW

MemR

decoder

IR

geheugen MemW

Mar

PCW

PC

ra Registerbestand

ADD/ADDI: vierde cyclus

Cond

C

C=1 RegW=1 memW=0 IRW=0 PCW=0 ca8-37

rb

A

Din

4

B

S2

PCSrc

offset

R

Alu

rd

S1

RegW

LMDR

0

IRW

MemR

decoder

IR

geheugen MemW

Mar

PCW

PC

ra Registerbestand

LOAD/STORE: derde cyclus

Cond

C

S1=2 S2=2 Alu=add memW=0 RegW=0 IRW=0 PCW=0 ca8-38

rb

A

Din

4

B

S2

PCSrc

offset

R

Alu

rd

S1

RegW

LMDR

0

IRW

MemR

decoder

IR

geheugen MemW

Mar

PCW

PC

ra Registerbestand

STORE: vierde cyclus

Cond

C

Mar=1 MemW=1 RegW=0 IRW=0 PCW=0 ca8-39

rb

A

Din

4

B

S2

PCSrc

offset

R

Alu

rd

S1

RegW

LMDR

0

IRW

MemR

decoder

IR

geheugen MemW

Mar

PCW

PC

ra Registerbestand

LOAD: vierde cyclus

Cond

C

Mar=1 MemR=1 memW=0 RegW=0 IRW=0 PCW=0 ca8-40

rb

A

Din

4

B

S2

PCSrc

offset

R

Alu

rd

S1

RegW

LMDR

0

IRW

MemR

decoder

IR

geheugen MemW

Mar

PCW

PC

ra Registerbestand

LOAD: vijfde cyclus

Cond

C

C=0 RegW=1 memW=0 IRW=0 PCW=0 ca8-41

rb

A

Din

4

B

S2

PCSrc

offset

R

Alu

rd

S1

RegW

LMDR

0

IRW

MemR

decoder

IR

geheugen MemW

Mar

PCW

PC

ra Registerbestand

JUMP: derde cyclus

Cond

C

PCSrc=0 PCW=1 Cond=0 memW=0 RegW=0 IRW=0 ca8-42

rb

A

Din

4

B

S2

PCSrc

offset

R

Alu

rd

S1

RegW

LMDR

0

IRW

MemR

decoder

IR

geheugen MemW

Mar

PCW

PC

ra Registerbestand

BRGE: derde cyclus

Cond

C

S1=1 S2=0 Alu=cmpge PCSrc=0 PCW=1 Cond=1 memW=0 RegW=0 IRW=0 ca8-43

Samenvatting controlesignalen Cyclus 1

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

Cyclus 2

S1=0 S2=2 Alu=add (1)

S1=2 S1=2 S2=0 S2=2 Cyclus 3 Alu=add Alu=add (1) (1) Cyclus 4

Cyclus 5

C=1 RegW=1 (3)

PCSrc=0 S1=2 S2=2 Alu=add PCW=1 (1) Cond=0 (4)

S1=1 S2=0 Alu=cmpge PCSrc=0 PCW=1 Cond=1 (4)

Mar=1 Mar=1 (1) memW=0 RegW=0 MemW=1 MemR=1 IRW=0 PCW=0 (2) (1) (2) RegW=0 IRW=0 PCW=0 C=0 RegW=1 (3)

(3) memW=0 IRW=0 PCW=0 (4) memW=0 RegW=0 IRW=0

ca8-44

Samenvatting controlesignalen 0

1 S1=0 S2=2 Alu=add (1)

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

10

2

3

S1=2 S2=0 Alu=add (1)

S1=2 S2=2 Alu=add (1)

5 S1=2 S2=2 Alu=add (1)

6 4

load

store

MemW=1 Mar=1 (2)

S1=1 S2=0 Alu=cmpge PCSrc=0 PCW=1 Cond=1(4)

7 MemR=1 Mar=1 (1)

C=1 RegW=1 (3) 8

9 PCSrc=0 PCW=1 Cond=0 (4)

C=0 RegW=1 (3) ca8-45

Controle-uitgangen uitgang

bijhorende toestanden

PCW

0 1

Cond

0

Mar

0

MemW

0 1

MemR

0

IRW

0 1

2

3

4 5 6

7 8

9 10 9 10

6 2

3

4 5 6

7 7 8

9 10

7

2

3

C

4 5 6 4

7 8

9 10

8

RegW

0 1

2

3

4 5 6

7 8

9 10

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 ca8-46

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 001

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

PCSrc

0

0

Alu

1 0

S2

0 0 0 0

S1

toestand

PCW Cond Mar MemW MemR IRW C RegW

Controle-uitgangen

ca8-47

Volgende-toestanduitgangen toestand 0 0 0 0

voorwaarde

volgende toestand 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 0

0 0 0 0

0 1 0 1

op = store

0 1 1 0

0 1 0 1

op = load

0 1 1 1

0 1 1 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

ca8-48

output

input Op3..Op0

S3..S0

IR

toestand

PCW Cond Mar MemW MemR IRW C RegW S1 S2 Alu PCSrc NS3 NS2 NS1 NS0

Controleeenheid

ca8-49

ROM-Implementatie ROM1 16x16 bits ROM2 256x4 bits

toestand

IR

ca8-50

Inhoud van ROM1 0000

1000 1100

0001 0011

0001

0000 0000 0010 0010

0010

0000 0000 1000 0010

0011

0000 0000 1010 0100

0100

0000 0011

0101

0000 0000 1010 0010

0110

0011 0000 0000 0000

0111

0010 1000 0000 0000

1000

0000 0001 0000 0000

1001

1000 0000 0000 0000

1010

1001 0000 0100 1000

1011

0000 0000 0000 0000

1100

0000 0000 0000 0000

1101

0000 0000 0000 0000

1110

0000 0000 0000 0000

1111

0000 0000 0000 0000

0000 0000

ca8-51

Inhoud • • • • • •

Sequentiële logica Het datapad Eén cyclus-per-instructiemachine Meer cycli-per-instructiemachine Microcodering RISC vs. CISC

ca8-52

Sequencer-implementatie ROM1 16x18 bits

1

toestand + 0 Tabel 1

16x4 bits

Tabel 2

IR ca8-53

Samenvatting controlesignalen 0

00

1 01 S1=0 S2=2 Alu=add (1)

Mar=0 MemR=1 IRW=1 S1=0 S2=1 Alu=plus PCSrc=1 Cond=0, PCW=1 (4) 2

4

S1=2 S2=0 Alu=add (1)

S1=2 S2=2 Alu=add (1)

00

00

6 10 S1=2 S2=2 Alu=add (1)

7

3

5

RegW=1 C=1 (3)

RegW=1 C=1 (3)

11

11

11

S1=1 S2=0 Alu=cmpge PCSrc=0 PCW=1 Cond=1 (4)

load

store

11 Mar=1 MemW=1 (1)

11

8 00 MemR=1 Mar=1 (1) 9

11

10 PCSrc=0 11 PCW=1 Cond=0 (4)

C=0 RegW=1 (3) ca8-54

Microcode controle +

datapad 1

ALU

μPC A microcode

Registers

C

B jump tabel 1 jump tabel 2 temp

jump tabel 3

PC mar

geheugen

mdr tekenuitb

IR ca8-55

Microcodeprogramma μPC 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 000A 000B 000C 000D

Label Fetch LdSt Brge Jump Add Addi Load

ALU

S1

ADD ADD S1 ADD ADD

PC A A PC A

ADD S1

Wb2 Store S2 Store2

S2

A MDR

Dest ExtIR Const JCond Mbusy Const PC 4 Jump1 IR MAR Word Jump2 LT IR PC Word True B C True IR C Word True Mbusy C True B MDR Mbusy True

Opcode LD ST ADD ADDI BRGE JUMP

Jump Table 1 LdSt LdSt Add Addi Brge Jump

Adr Fetch

Mem RW

MAdr PC

MDest Regs IR RR

Fetch Fetch Fetch Wb2 Load

WF3 RW

MAR

Fetch

Store2 WW Fetch

MDR WF2

MAR

Jump Table 2 Load Store

ca8-56

Onderbrekingen en excepties Nieuwe PC

0

1 S1=0 S2=2 Alu=add (1)

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

Nieuwe PC 10 5

2

3

S1=2 S2=0 Alu=add (1)

S1=2 S2=2 Alu=add (1)

S1=2 S2=2 Alu=add (1)

overflow

6 4

load

store

Mar=1 MemW=1 (2)

S1=1 S2=0 Alu=cmpge PCSrc=0 PCW=1 Cond=1 (4)

7 Mar=1 MemR=1 (1)

C=1 RegW=1 (3) 8

9 PCSrc=0 PCW=1 Cond=0 (4)

C=0 RegW=1 (3)

Nieuwe PC

Nieuwe PC ca8-57

Inhoud • • • • • •

Sequentiële logica Het datapad Eén cyclus-per-instructiemachine Meer cycli-per-instructiemachine Microcodering RISC vs. CISC

ca8-58

Evolutie van instructiesets Single Accumulator (EDSAC 1950) Accumulator + Index Registers (Manchester Mark I, IBM 700 series 1953) Separation of Programming Model from Implementation High-level Language Based (B5000 1963)

Concept of a Family (IBM 360 1964)

General Purpose Register Machines Complex Instruction Sets (Vax, Intel 432 1977-80)

Load/Store Architecture (CDC 6600, Cray 1 1963-76)

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

Instructiegebruik Instructie

aandeel

Toewijzing

47

If

23

Call

15

Lus

6

Goto

3

Andere

7 ca8-60

Complexiteit Toewijzing

Lok. var Parameters

0

-

22

41

1

80

17

19

2

15

20

15

3

3

14

9

4

2

8

7

20

8

≥5 0

ca8-61

Strafverhouding uitvoeringstijd machinetaal uitvoeringstijd hoge-niveautaal Processor

.

Strafverhouding

Berkeley RISC II

0.90

Motorola M68000

0.34

C is een alternatief voor assembler ca8-62

Kenmerken • Voornamelijk instructies die ‘echt’ nodig zijn • Vooral instructies die effectief gebruikt worden, eenvoudig decodeerbaar • Groot aantal registers, RRRmachinemodel • Geen complexe adresseermodes

ca8-63

Eenvoudige decodering instructies: vaste lengte + gealigneerd 31

25

20

15

opcode

D

S1

opcode

B5

S1

opcode

D/B5/M5

S1

opcode

B5/M5

S1

opcode opcode

0

subopcode subopcode

S2 immediate

immediate subopcode

vector

D26 D

S1

op

sfu

crs/crd

S2

32-bit loads minder efficiënt ca8-64

Sparc Registervensters Niveau 1 %l0-%l7 Niveau 2 %o0-%o7 %i0-%i7 %l0-%l7 Niveau 3 %o0-%o7 %i0-%i7 %l0-%l7 %o0-%o7

2-32 vensters 40-520 registers %g0-%g7 %g0-%g7 %g0-%g7 ca8-65

ARM Thumb ARM State (T=0) 32-bit ARM-instructies Conditionele uitvoering 16 registers RRR-instructies Default toestand bij opstarten

Thumb State (T=1) 16-bit Thumb-instructies Niet-conditioneel 8 registers RR-instructies Kleine letterlijke operandi Tijdens uitvoering geëxpandeerd naar ARMinstructies 30% compacter dan ARM-code 40% meer instructies nodig: 40% trager Goed voor niet-kritische code

ca8-66

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) ca8-67

Pauze

ca8-68

View more...

Comments

Copyright � 2017 NANOPDF Inc.
SUPPORT NANOPDF