ca8
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