bg3 datapath control
TRANSCRIPT
-
8/13/2019 BG3 Datapath Control
1/28
Hc k 2 2010-2011 T chc my tnh
T chc my tnhHc k 2 2010-2011
Bi 3: Datapath v Control(c ch4: 4.1 4.5)
H Vit VitThS. GVC
B mn K thut my tnh, Khoa in t Vin thng
i hc Bch khoa Nng
-
8/13/2019 BG3 Datapath Control
2/28
Hc k 2 2010-2011 T chc my tnh
Mc tiu Bi 3
Thit k phn cng cho mt cu lnh c th i vi mtb x l MIPS single-cycle c tp lnh n gin
-
8/13/2019 BG3 Datapath Control
3/28
Hc k 2 2010-2011 T chc my tnh
Gian bp ca Von Neumann
Cc thanh ghi
ALU
Control
Memor
y
Outpu
t
Program
Dat
a
Chn mnPC
Bt u
Processo
r
Inpu
t
-
8/13/2019 BG3 Datapath Control
4/28
Hc k 2 2010-2011 T chc my tnh
S vic bt u t u?
T mt thanh ghi:program counter (PC).PC cha a ch ca lnh k tip cn phi
thc hin.u tin, PC cha a ch ca v tr nh
bt u chng trnh.
-
8/13/2019 BG3 Datapath Control
5/28
Hc k 2 2010-2011 T chc my tnh
Chng trnh u?
M my ca
chng trnh
B nh
Bt u
Programcounter
(PC)
Processo
r
-
8/13/2019 BG3 Datapath Control
6/28
Hc k 2 2010-2011 T chc my tnh
Chng trnh c thc hin?Bt u
PC cha a ch bt u chng trnh
Ly t lnh ti v tr nh c a ch PC
v PC PC + 4 chun b cho lnh k tip
Gii m lnh
Xong
chng
trnh
XongChaST
OP
Thc hin lnh
Lu kt qu vo thanh ghi hoc b nh
-
8/13/2019 BG3 Datapath Control
7/28
Hc k 2 2010-2011 T chc my tnh
Datapath v Control
Datapath: B nh, Cc thanh ghi, Cc b cng, ALU, v ccbus thng tin. Mi bc (Ly lnh, gii m, thc hin, lukt qu) cn truyn d liu gia b nh, cc thanh ghi v
ALU.
Control: Datapath cho mi bc c duy tr bi cc tnhiu iu khin . Cc tn hiu iu khin c to ra t n
v control nhm ch hng truyn d liu trn bus thng tin
v ch nh chc nng cho ALU v b nh
-
8/13/2019 BG3 Datapath Control
8/28
Hc k 2 2010-2011 T chc my tnh
Datapath cho Ly lnh
PC B nh lnh
4
a ch
T lnh i ti
cc thanh ghi v Control
Add
-
8/13/2019 BG3 Datapath Control
9/28
Hc k 2 2010-2011 T chc my tnh
File thanh ghi: mt thnh phn ca
Datapath
32 Registers
(reg. file)Write
register
reg 1 data
reg 2 data
5
5
5
3
2
3
2
3
2
reg 1
reg 2
Read
registers
Write
data
RegWrite
n t Control
-
8/13/2019 BG3 Datapath Control
10/28
Hc k 2 2010-2011 T chc my tnh
ALU c th thc hin nhiu
php ton
ALU
3
zero kt qu
overflow
Cc tn hiu chn php tonn t Control
Chn php tonALU
000AND
001OR
010Add
110Subtract
111Set on less than
zero = 1, khi mi bit ca kt qu bng 0
-
8/13/2019 BG3 Datapath Control
11/28
Hc k 2 2010-2011 T chc my tnh
Cc lnh kiu R
Cc lnh s hc v logicadd, sub, sltV d: add $t0, $s1, $s2oM my ca lnh
00000010001 10010 01000 00000 100000
Opcode$s1 $s2 $t0 function
oc 2 thanh ghi t File thanh ghi
oGhi kt qu vo 1 thanh ghi
oOpcodev functioni ti Control to ra tn
hiu RegWrite v cc tn hiu chn php ton
-
8/13/2019 BG3 Datapath Control
12/28
Hc k 2 2010-2011 T chc my tnh
Datapath cho lnh kiu R
32 Registers(reg. file)
Write
reg.
number
5
5
5
3
2
3
2
$s1
$s2
Read
register
numbers
Writedata
ALU
3
zer
o result
overflow
Cc tn hiu chnPhp ton
10001
10010
01000
RegWrite
3
2$t
0
000000 10001 10010 01000 00000 100000
opcode $s1 $s2 $t0 function (add)
-
8/13/2019 BG3 Datapath Control
13/28
Hc k 2 2010-2011 T chc my tnh
Load v Store
Cc lnh kiu Ilw $t0, 1200 ($t1)10001101001 01000 0000 0100 1011 0000
opcode $t1 $t0 1200
sw $t0, 1200 ($t1)10101101001 01000 0000 0100 1011 0000
opcode$t1 $t0 1200
-
8/13/2019 BG3 Datapath Control
14/28
Hc k 2 2010-2011 T chc my tnh
Datapath cho lw
Operation
select
from control
(add)
32 Registers
(reg. file)
Write reg.
number
5
5
5
3
2
3
2
$t
1Read
register
numbers
Write data
AL
U
3
zeroresult
overflow
0100
1
0100
0
RegWritefrom control
activated
3
2Sign
exten
d1
6
100 1011
Data
memory
Addr.
Read
data
MemWrite
MemRead
activated
$t
0 Write
data
100011 01001 01000 0000 0100 1011 0000
opcode$t1 $t0 1200
mem. data to $t0
-
8/13/2019 BG3 Datapath Control
15/28
Hc k 2 2010-2011 T chc my tnh
Datapath cho sw
Operation
select
from control
(add)
32 Registers
(reg. file)
Write reg.
number
5
5
5
3
2
3
2
$t
1
$t
0
Read
register
numbers
Write data
AL
U
3
zeroresult
overflow
0100
1
RegWrite
from control
3
2Sign
exten
d1
6
100 1011
Data
memory
Addr.
Read
data
$t0data to
mem.
0100
0
MemWrite
activated
MemRead
Write
data
101011 01001 01000 0000 0100 1011 0000
opcode$t1 $t0 1200
3
2
-
8/13/2019 BG3 Datapath Control
16/28
Hc k 2 2010-2011 T chc my tnh
Lnh r nhnh (kiu I)
beq $s1, $s2, 25 # nu $s1 = $s2, PC bqua 25 lnh
16-bits
00010010001 10010 0000 0000 0001 1001
opcode$s1 $s2 25
Lu : C th r nhnh trong phm vi 215lnh t a ch hin
thi trong PC.
-
8/13/2019 BG3 Datapath Control
17/28
Hc k 2 2010-2011 T chc my tnh
Datapath cho beq
Operation
select
from control (subtract)
32 Registers
(reg. file)
Write reg.
number
5
5
5
3
2
3
2
$s
1Read
register
numbers
Write data
AL
U
3
zeroresult
overflow
1000
1
1001
0
RegWrite
from control
3
2
Sign
exten
d
1
60 0000 0001
1
Shift
left 2
Ad
d
16-bits
00010010001 10010 0000 0000 0001 1001opcode $s1 $s2 25
$s
2
3
2
3
2
3
2
To
branch
cont ro l
log ic
PC+
4From inst ruc t ionfetch datapath
Branc
h
target3
2
-
8/13/2019 BG3 Datapath Control
18/28
Hc k 2 2010-2011 T chc my tnh
Lnh J (kiu J)
j 2500 # nhy n lnh ti 1000026-bits
0000100000 0000 0000 0010 0111 0001 00opcode2,500
0000 0000 0000 0000 0010 0111 00010000bits 28-31 from PC+4
32-bit jump
address
-
8/13/2019 BG3 Datapath Control
19/28
Hc k 2 2010-2011 T chc my tnh
Datapath cho J
PCInstruction
MemoryAddressInstruction
word to
control and
registers
4Add
1
mux
0
0
mux1
opcode (bits 26-31)
to control
Shift
left 2
6
2
6
Branc
h
addr.
Branc
h Jum
p
3
2
3
2
3
2
2
8
4
3
2
3
2
PC+
4
3
2
-
8/13/2019 BG3 Datapath Control
20/28
Hc k 2 2010-2011 T chc my tnh
Instr.
mem.PC
Add
Reg. File
Data
mem.
1 mux 0
1 mux 0
0 mux 1
4
1 mux 0
Sig
n
ext.
Shift
left 2
ALU
Cont.
CONTROLopcode
MemWrit
e
MemReadALU
Branc
h
zero
0-15
0-5
11-15
16-20
21-25
26-31
ALU
0 mux 1
Shift
left2
0-25 Jum
p
RegDs
t
MemtoReg
-
8/13/2019 BG3 Datapath Control
21/28
Hc k 2 2010-2011 T chc my tnh
Control
Contro
l
Logic
Instruction
bits 26-31
opcode
RegDst
Jump
Branch
MemRead
MemtoReg
ALUOp
MemWrite
ALUSrc
RegWriteALU
Contro
l
Instruction
bits 0-5
funct.
2
to ALU
-
8/13/2019 BG3 Datapath Control
22/28
Hc k 2 2010-2011 T chc my tnh
Control Logic: Truth Table
Instr
type
Inputs: instr. opcode bits Outputs: control signals
31 30 29 28 27 26Re
gD
st
Ju
mp
AL
US
rc
Me
mt
oR
eg
Re
gW
rite
Me
m
Re
ad
Me
m
Wri
te
Br
an
ch
AL
O
Op
1
AL
UO
p2
R 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0
lw 1 0 0 0 1 1 0 0 1 1 1 1 0 0 0 0
sw 1 0 1 0 1 1 X 0 1 X 0 0 1 0 0 0
beq 0 0 0 1 0 0 X 0 0 X 0 0 0 1 0 1
j 0 0 0 0 1 0 X 1 X X 0 X 0 X X X
-
8/13/2019 BG3 Datapath Control
23/28
Hc k 2 2010-2011 T chc my tnh
Thi gian cho mt lnh?
Gi s control hot ng nhanh th thigian dnh cho mt lnh ch yu l thigian lm vic ca ALU, thi gian c/ghi
b nh v thi gian c/ghi thanh ghi.
Lnh s hc (kiu R) Ly lnh (c b nh) 2ns
c thanh ghi 1ns
Hot ng ca ALU 2ns
Ghi thanh ghi 1ns
Tng cng 6ns
-
8/13/2019 BG3 Datapath Control
24/28
Hc k 2 2010-2011 T chc my tnh
Thi gian cho lw v sw (Kiu I)
Lnh s hc (kiu R) 6nsLoad word (kiu I)oLy lnh (c b nh) 2ns
oc thanh ghi 1nsoHot ng ALU 2ns
oLy d liu (c b nh ) 2ns
oGhi thanh ghi 1ns
oTng cng 8ns
Store word (khng ghi thanh ghi) 7ns
-
8/13/2019 BG3 Datapath Control
25/28
Hc k 2 2010-2011 T chc my tnh
Thi gian cho beq (Kiu I)
S hc (R) 6nsLoad word (I) 8ns
Store word (I) 7nsBranch on equal (I)oLy lnh (c b nh) 2ns
oc thanh ghi 1ns
oHot ng ALU 2ns
oTng cng 5ns
-
8/13/2019 BG3 Datapath Control
26/28
Hc k 2 2010-2011 T chc my tnh
Thi gian cho Jump (Kiu J)
S hc (R) 6nsLoad word (I) 8ns
Store word (I) 7nsBranch on equal (I) 5nsJump (J):oLy lnh (c b nh) 2ns
oTng cng 2ns
-
8/13/2019 BG3 Datapath Control
27/28
Hc k 2 2010-2011 T chc my tnh
Chu k ng h phi bng ?
Nu mi lnh phi c thc hin trongmt chu k ng h th:oChu k ng h t nht phi bng 8ns c th
hon tt lnh lu nht l lnh lw.
oy gi l b x l Single-Cycle.
oCc lnh khc cng tn chng y thi gian.
Phng php tng tc: B x l Multicyclev Pipelining.
-
8/13/2019 BG3 Datapath Control
28/28
Hc k 2 2010-2011 T chc my tnh
Tm tt
c th thit k datapath v control cnphi bit khun dng (kiu) ca cc culnh: R, I, J
Tt c cc lnh ca mt b x l Single-Cycle u c thc hin trong mt chu k
ng h (mc d thi gian cn thit c th
b hn)