.,ӂ175Ò&0È<7Ë1+
ET4270
761JX\ӉQĈӭF Minh
[Adapted from Computer Organization and Design, 4
th
Edition, Patterson & Hennessy, © 2008, MK]
[Adapted from Computer Architecture lecture slides, Mary Jane Irwin, © 2008, PennState University]
7ә FKӭF OӟS
6ӕ tín FKӍ 3 (3-1-1-6)
*LҧQJ viên 761JX\ӉQĈӭF Minh
9ăQ phòng C9-401
Email minhnd1@gmail,com
Website /> Username:
Pass: dungkhoiminh
Sách Computer Org and Design, 3
rd
Ed., Patterson &Hennessy, ©2007
Digital Design and Computer Architecture, David Money Harris
Thí QJKLӋP 3 bài
Bài WұS Theo FKѭѫQJ, ÿӅ bài xem trên trang web
HUST-FET, 13/03/2011
2
*LӟL WKLӋX
ĈLӇP Vӕ
ĈLӅX NLӋQ thi Lab
Bài thi JLӳD NǤ 30%
Bài WұS 20% (7ӕL ÿD 100 ÿLӇP)
7LӃQtrình 10%
7ӕL ÿD: 100 ÿLӇP,
%ҳW ÿҫX: 50 ÿLӇP
Tích ONJ\, WUӯ qua WUҧ OӡL câu KӓL trên OӟS và ÿyQJ góp Wә FKӭF OӟS
Bài thi FXӕL NǤ 70%
HUST-FET, 13/03/2011
3
*LӟL WKLӋX
/ӏFK KӑF
7KӡL gian:
7ӯ 14h00 ÿӃQ 17h20
Lý WKX\ӃW: 11 EXәL x 135 phút / 1 EXәL
Bài WұS:4 EXәL x 135 phút / 1 EXәL
Thay ÿәL OӏFK (QJKӍ, KӑF bù) VӁ ÿѭӧF thông báo trên website
WUѭӟF 2 ngày
HUST-FET, 13/03/2011
4
*LӟL WKLӋX
.ӃW OXұQ FKѭѫQJ 2
'ӳ OLӋX và FKӍ WKӏ cho máy tính ÿѭӧF ELӇX GLӉQ EҵQJ các FKXӛL bit.
Giá WUӏ FӫD Gӳ OLӋX, ý QJKƭD FӫD FKӍ WKӏ máy ÿѭӧF quy ÿӏQK trong
SKѭѫQJ pháp mã hóa.
7KLӃW NӃ NLӃQ trúc WұS OӋQK:
Kích WKѭӟF và NLӇX Gӳ OLӋX
Phép toán: ORҥL nào ÿѭӧF Kӛ WUӧ
ĈӏQK GҥQJ và mã hóa FKӍ WKӏ: &KӍ WKӏ ÿѭӧF JLҧL mã WKӃ nào?
9ӏ trí toán KҥQJ và NӃW TXҧ
¾ 6ӕ OѭӧQJ toán KҥQJ?
¾ Giá WUӏ toán KҥQJ ÿѭӧF OѭX ӣÿkX?
¾ .ӃW TXҧ ÿѭӧF OѭX ӣYӏ trí nào?
¾ Các toán KҥQJ Eӝ QKӟ ÿѭӧF ÿӏQK Yӏ WKӃ nào?
.LӃQ trúc WұS OӋQK MIPS(RISC) ÿѭӧF WKLӃW NӃ GӵD trên 4 nguyên
WҳF Fѫ EҧQ.
%ӝ FӝQJ WUӯ nhân chia ÿѭӧF WULӇQ khai EҵQJ các SKҫQ WӱORJLFKD\
EҵQJ WKXұW toán.
HUST-FET, 13/03/2011
5
&KѭѫQJ 3. %ӝ [ӱ lý - Processor
Nguyên WҳF WKLӃW NӃ MIPS (RISC)
HUST-FET, 13/03/2011
6
&KѭѫQJ 3. %ӝ [ӱ lý - Processor
Tính ÿѫQ JLҧQ quan WUӑQJ KѫQ tính quy WҳF(Simplicity favors regularity)
&KӍ WKӏ kích WKѭӟF Fӕ ÿӏQK (32 bit)
Ít ÿӏQK GҥQJ FKӍ WKӏ (3 ORҥL ÿӏQK GҥQJ)
Mã OӋQK ӣYӏ trí Fӕ ÿӏQK (6 bit ÿҫX)
1Kӓ KѫQ thì nhanh KѫQ
6ӕ FKӍ WKӏ JLӟL KҥQ
6ӕ thanh ghi JLӟL KҥQ
6ӕ FKӃ ÿӝ ÿӏD FKӍ JLӟL KҥQ
7ăQJ WӕF các WUѭӡQJ KӧS thông GөQJ
Các toán KҥQJ Vӕ KӑF Oҩ\ Wӯ thanh ghi (máy tính GӵD trên Fѫ FKӃ load-
store)
Các FKӍ WKӏ có WKӇ FKӭD toán KҥQJ WUӵF WLӃS
7KLӃW NӃ WӕW ÿzL KӓL Vӵ WKӓD KLӋS
3 ORҥL ÿӏQK GҥQJ FKӍ WKӏ
1ӝL dung
ĈѭӡQJ Gӳ OLӋX Eӝ [ӱ lý MIPS
ĈѫQ xung QKӏS
ĈD xung QKӏS
+LӋX QăQJ
.ӻ WKXұW ÿѭӡQJ ӕQJ
Nguyên WҳF KRҥW ÿӝQJ
+LӋX QăQJ
Xung ÿӝW trong ÿѭӡQJ ӕQJ
HUST-FET, 13/03/2011
7
%ӝ [ӱ lý: ĈѭӡQJ Gӳ OLӋX và ÿLӅX NKLӇQ
HUST-FET, 13/03/2011
8
7ULӇQ khai các OӋQK
z /ӋQK truy FұS Eӝ QKӟ: lw, sw
z /ӋQK Vӕ KӑF và logic: add, sub, and, or, slt
z /ӋQK ÿLӅX NKLӇQ dòng FKѭѫQJ trình: beq, j
7ULӇQ khai các pha KRҥW ÿӝQJ
z Dùng thanh ghi PC ÿӇ OѭX ÿӏD FKӍ OӋQK
ĈӑF OӋQK Wӯ Eӝ QKӟ, và FұS QKұW giá WUӏ PC
z *LҧL mã OӋQK và ÿӑF các thanh ghi
z 7KӵF KLӋQ OӋQK
z /ѭX NӃW TXҧ
Instruction
Fetch
Instruction
Decode
Operand
Fetch
Execute
Result
Store
Next
Instruction
Fetch
PC = PC+4
Decode
Exec,
Store
7KLӃW NӃ ÿӗQJ Eӝ theo ÿӗQJ Kӗ
HUST-FET, 13/03/2011
9
0ҥFK ÿӗQJ Eӝ theo ÿӗQJ Kӗ: WKӡL ÿLӇP Gӳ OLӋX trong 1
SKҫQ WӱWUҥQJ thái là KӧS OӋ và әQ ÿӏQK ÿѭӧF quy ÿӏQK EӣL
xung ÿӗQJ Kӗ
z 3KҫQ WӱWUҥQJ thái - SKҫQ WӱQKӟ - VD. thanh ghi, FF
z Kích KRҥW theo sѭӡQ ± các WUҥQJ thái thay ÿӕL khi có [ѭӡQ xung
+RҥW ÿӝQJ thông WKѭӡQJ:
z ÿӑF QӝL dung FӫD SKҫQ WӱWUҥQJ thái -> tính giá WUӏ EҵQJ logic Wә KӧS
-> ghi NӃW TXҧ vào SKҫQ WӱWUҥQJ thái
State
element
1
State
element
2
Combinational
logic
clock
one clock cycle
Các SKҫQ WӱWUҥQJ thái ÿѭӧF ghi ӣWҩW Fҧ các chu NǤ
ÿӗQJ Kӗ. 1ӃX không: FҫQ tín KLӋX ÿLӅX NKLӇQ YLӋF ghi
1ҥS OӋQK
HUST-FET, 13/03/2011
10
z ĈӑF OӋQK WҥL ÿӏD FKӍ (OѭX trong) PC Wӯ Eӝ QKӟ OӋQK (eng.
Instruction Memory)
z &ұS QKұW giá WUӏ PC WӟL ÿӏD FKӍ FӫD OӋQK NӃ WLӃS
Read
Address
Instruction
Instruction
Memory
Add
PC
4
z PC ÿѭӧF FұS QKұW ӣPӑL chu NǤ Î không FҫQ tín KLӋX ÿLӅX
NKLӇQ ghi PC.
z ĈӑF Wӯ Eӝ QKӟ OӋQK ÿѭӧF WKӵF KLӋQ EҵQJ logic Wә KӧS
clock
Fetch
PC = PC+4
Decode
Exec,
Store
*LҧL mã OӋQK
HUST-FET, 13/03/2011
11
z &KX\ӇQ các bit WKXӝF WUѭӡQJ mã OӋQK và WUѭӡQJ mã FKӭF
QăQJ WӟL NKӕL ÿLӅX NKLӇQ
Instruction
Write Data
Read Addr 1
Read Addr 2
Write Addr
Register
File
Read
Data 1
Read
Data 2
Control
Unit
z ĈӑF 2 giá WUӏ toán KҥQJ QJXӗQ Wӯ WӋS thanh ghi
- &KӍ Vӕ các thanh ghi QҵP trong OӋQK
Fetch
PC = PC+4
Decode
Exec,
Store
7KӵF KLӋQ OӋQK ORҥL R
HUST-FET, 13/03/2011
12
/ӋQK ÿӏQK GҥQJ R (add, sub, slt, and, or)
z 7KӵF KLӋQ phép toán (mã hóa EӟL op và funct) trên giá WUӏ WRҥQ KҥQJ
trong rs và rt
z Ghi NӃW TXҧ vào WӋS thanh ghi (WҥL Yӏ trí rd)
Instruction
Write Data
Read Addr 1
Read Addr 2
Write Addr
Register
File
Read
Data 1
Read
Data 2
ALU
overflow
zero
ALU control
RegWrite
R-type:
31 25 20 15 5 0
op rs rt rd functshamt
10
z 7ӋS thanh ghi không ÿѭӧF ghi ӣPӑL chu NǤ Î FҫQ tín KLӋX
ÿLӅX NKLӇQ ghi riêng ELӋW.
Fetch
PC = PC+4
DecodeExec
7KӵF KLӋQ OӋQK ÿӑF ghi Eӝ QKӟ
HUST-FET, 13/03/2011
13
z Tính ÿӏD FKӍ Eӝ QKӟ EҵQJ cách FӝQJ thanh ghi Fѫ Vӣ (ÿӑF Wӯ WӋS thanh
ghi khi JLҧL mã OӋQK) YӟL giá WUӏ offset
z ghi (sw) giá WUӏ (ÿѭӧF ÿӑF Wӯ WӋS thanh ghi khi JLҧL mã OӋQK) vào Eӝ
QKӟ Gӳ OLӋX
z ÿӑF (lw) giá WUӏ Wӯ Eӝ QKӟ Gӳ OLӋX vào WӋS thanh ghi
Instruction
Write Data
Read Addr 1
Read Addr 2
Write Addr
Register
File
Read
Data 1
Read
Data 2
ALU
overflow
zero
ALU controlRegWrite
Data
Memory
Address
Write Data
Read Data
Sign
Extend
MemWrite
MemRead
7KӵF KLӋQ OӋQK UӁ nhánh có ÿLӅX NLӋQ
HUST-FET, 13/03/2011
14
z so sánh toán KҥQJ ÿӑF Wӯ WӋS thanh ghi khi JLҧL mã
z tính ÿӏD FKӍ ÿtFK EҵQJ cách FӝQJ giá WUӏ PC (sau khi FұS nhât) YӟL
WUѭӡQJ offset 16 bit ÿm ÿѭӧF Pӣ UӝQJ GҩX.
Instruction
Write Data
Read Addr 1
Read Addr 2
Write Addr
Register
File
Read
Data 1
Read
Data 2
ALU
zero
ALU control
Sign
Extend
16 32
Shift
left 2
Add
4
Add
PC
Branch
target
address
(to branch
control logic)
7KӵF KLӋQ OӋQK QKҧ\ không ÿLӅX NLӋQ
HUST-FET, 13/03/2011
15
z Thay 28 bit WKҩS FӫD PC EҵQJ 26 bít WKҩS FӫD OӋQK ÿѭӧF QҥS và 2 bít 0
Read
Address
Instruction
Instruction
Memory
Add
PC
4
Shift
left 2
Jump
address
26
4
28
ĈѭӡQJ Gӳ OLӋX
HUST-FET, 13/03/2011
16
Ghép các SKҫQ FӫD ÿѭӡQJ Gӳ OLӋX thêm các ÿѭӡQJ tín
KLӋX ÿLӅX NKLӇQ và Eӝ ghép (multiplexors)
7KLӃW NӃ ÿѫQ xung QKӏS ± các pha WKӵF KLӋQ: QҥS, JLҧL mã
and WKӵF KLӋQ, ghi FӫD PӛL OӋQK trong PӝW chu NǤ ÿӗQJ Kӗ
z Các tài nguyên SKҫQ FӭQJ FӫD ÿѭӡQJ Gӳ OLӋX không WKӇ tái Vӱ
GөQJ cho cùng 1 OӋQK, PӝW Vӕ tài nguyên SKҧL nhân ÿ{L (VD., Eӝ
QKӟ OӋQK và Gӳ OLӋX riêng ELӋW, PӝW vài Eӝ FӝQJ)
z Eӝ ghép ÿѭӧF dùng ӣÿҫX vào FӫD các tài nguyên dùng chung và
ÿѭӧF ÿLӅX NKLӇQ EҵQJ tín KLӋX ÿLӅX NKLӇQ
Chu NǤ ÿӗQJ Kӗ: xác ÿӏQK EҵQJ ÿӝ dài ÿѭӡQJ Gӳ OLӋX dài
QKҩW
ĈѭӡQJ Gӳ OLӋX: 3KҫQ QҥS, WKӵF KLӋQ OӋQK R, lw,sw
Các tín KLӋX ÿLӅX NKLӇQ Eӝ ghép: OӵD FKӑQ ÿҫX vào cho các
NKӕL FKӭF QăQJ Î ÿѭӧF tính EҵQJ NKӕL ÿLӅX NKLӇQ Wӯ
WUѭӡQJ mã OӋQK (opcode) và WUѭӡQJ FKӭF QăQJ OӋQK (funct)
HUST-FET, 13/03/2011
17
MemtoReg
Read
Address
Instruction
Instruction
Memory
Add
PC
4
Write Data
Read Addr 1
Read Addr 2
Write Addr
Register
File
Read
Data 1
Read
Data 2
ALU
ovf
zero
ALU control
RegWrite
Data
Memory
Address
Write Data
Read Data
MemWrite
MemRead
Sign
Extend
16 32
ALUSrc
%ӝ [ӱ lý ÿѫQ xung QKӏS (1) ± /ӋQK R
HUST-FET, 13/03/2011
18
Read
Address
Instr[31-0]
Instruction
Memory
Add
PC
4
Write Data
Read Addr 1
Read Addr 2
Write Addr
Register
File
Read
Data 1
Read
Data 2
ALU
ovf
zero
RegWrite
Data
Memory
Address
Write Data
Read Data
MemWrite
MemRead
Sign
Extend
16 32
MemtoReg
ALUSrc
Shift
left 2
Add
PCSrc
RegDst
ALU
control
1
1
1
0
0
0
0
1
ALUOp
Instr[5-0]
Instr[15-0]
Instr[25-21]
Instr[20-16]
Instr[15
-11]
Control
Unit
Instr[31-26]
Branch
BXL ÿѫQ xung QKӏS (3) ± /ӋQK lw, sw
HUST-FET, 13/03/2011
19
Read
Address
Instr[31-0]
Instruction
Memory
Add
PC
4
Write Data
Read Addr 1
Read Addr 2
Write Addr
Register
File
Read
Data 1
Read
Data 2
ALU
ovf
zero
RegWrite
Data
Memory
Address
Write Data
Read Data
MemWrite
MemRead
Sign
Extend
16 32
MemtoReg
ALUSrc
Shift
left 2
Add
PCSrc
RegDst
ALU
control
1
1
1
0
0
0
0
1
ALUOp
Instr[5-0]
Instr[15-0]
Instr[25-21]
Instr[20-16]
Instr[15
-11]
Control
Unit
Instr[31-26]
Branch
BXL ÿѫQ xung QKӏS (4) ± /ӋQK UӁ nhánh
HUST-FET, 13/03/2011
20
Read
Address
Instr[31-0]
Instruction
Memory
Add
PC
4
Write Data
Read Addr 1
Read Addr 2
Write Addr
Register
File
Read
Data 1
Read
Data 2
ALU
ovf
zero
RegWrite
Data
Memory
Address
Write Data
Read Data
MemWrite
MemRead
Sign
Extend
16 32
MemtoReg
ALUSrc
Shift
left 2
Add
PCSrc
RegDst
ALU
control
1
1
1
0
0
0
0
1
ALUOp
Instr[5-0]
Instr[15-0]
Instr[25-21]
Instr[20-16]
Instr[15
-11]
Control
Unit
Instr[31-26]
Branch
BXL ÿѫQ xung QKӏS ± Thêm OӋQK QKҧ\
HUST-FET, 13/03/2011
21
Read
Address
Instr[31-0]
Instruction
Memory
Add
PC
4
Write Data
Read Addr 1
Read Addr 2
Write Addr
Register
File
Read
Data 1
Read
Data 2
ALU
ovf
zero
RegWrite
Data
Memory
Address
Write Data
Read Data
MemWrite
MemRead
Sign
Extend
16 32
MemtoReg
ALUSrc
Shift
left 2
Add
PCSrc
RegDst
ALU
control
1
1
1
0
0
0
0
1
ALUOp
Instr[5-0]
Instr[15-0]
Instr[25-21]
Instr[20-16]
Instr[15
-11]
Control
Unit
Instr[31-26]
Branch
Shift
left 2
0
1
Jump
32
Instr[25-0]
26
PC+4[31-28]
28
Tính chu ky ÿӗQJ Kӗ T
c
± ĈѭӡQJ dài QKҩW
HUST-FET, 13/03/2011
22
Instr. I Mem Reg Rd ALU Op D Mem Reg Wr Total
R-
type
load
store
beq
jump
Tính chu NǤ ÿӗQJ Kӗ trong WUѭӡQJ KӧS Eӓ qua WUӉ ӣEӝ
ghép, NKӕL ÿLӅX NKLӇQ, NKӕL Pӣ UӝQJ GҩX, NKӕL ÿӑF PC, NKӕL
GӏFK 2, dây GүQ, WKӡL gian WKLӃW OұS và JLӳ. Cho ELӃW ÿӝ WUӉ:
z Truy FұS Eӝ QKӟ OӋQK và Eӝ QKӟ Gӳ OLӋX (200 ps)
z .KӕL Vӕ KӑF logic và Eӝ FӝQJ (200 ps)
z Truy FұS WӋS thanh ghi (ÿӑF KRһF ghi) (100 ps)
Ví Gө 3.1 ± +LӋX QăQJ WKLӃW NӃ ÿѫQ xung QKӏS
HUST-FET, 13/03/2011
23
Ĉӝ WUӉ logic khi
Truy FұS OӋQK 2 ns
ĈӑF thanh ghi 1 ns
+RҥW ÿӝQJ ALU 2 ns
Truy FұS Eӝ QKӟ DL 2 ns
Ghi thanh ghi 1 ns
7әQJ 8 ns
7ӕF ÿӝ ÿӗQJ Kӗ =
P
C
P
C
P
C
P
C
P
C
ALU-type
Load
Store
Branch
Jum p
Not
used
Not
used
Not
used
Not
used
Not
used
Not
used
Not
used
Not
used
Not
used
(and jr)
(except
jr & jal)
Các ORҥL OӋQK:
R-type 44% 6 ns
Load 24% 8 ns
Store 12% 7 ns
Branch 18% 5 ns
Jump 2% 3 ns
Trung bình #
7KLӃW NӃ ÿѫQ xung QKӏS ± ѬX QKѭӧF ÿLӇP
HUST-FET, 13/03/2011
24
6ӱ GөQJ chu NǤ ÿӗQJ Kӗ không KLӋX TXҧ ± chu NǤ ÿӗQJ Kӗ
ÿѭӧF ÿһW theo OӋQK FKұP QKҩW
z 9ҩQ ÿӅ ÿһF ELӋW FӫD các OӋQK SKӭF WҥS QKѭ OӋQK nhân GҩX SKҭ\
ÿӝQJ
7ӕQ GLӋQ tích WKLӃW NӃ vì FҫQ nhân ÿ{L PӝW Vӕ NKӕL FKӭF
QăQJ (VD. Eӝ FӝQJ) vì chúng không WKӇ ÿѭӧF chia Vҿ trong
cùng 1 chu NǤ ÿӗQJ Kӗ
1KѭQJ
ĈѫQ JLҧQ và GӉ KLӇX
Clk
lw sw Waste
Cycle 1 Cycle 2
So sánh ÿiQK giá WKLӃW NӃ ÿѫQ xung QKӏS
HUST-FET, 13/03/2011
25
Instruction access 2 ns
Register read 1 ns
ALU operation 2 ns
Data cache access 2 ns
Register write 1 ns
Total 8 ns
Single-cycle clock = 125 MHz
ĈӗQJ Kӗ WӕF ÿӝ 125 MHz là bình WKѭӡQJ
So sánh YӟL các Eӝ [ӱ lý trên WKӏ WUѭӡQJ:
Không WӗL QӃX so sánh ÿӝ WUӉ WKӵF KLӋQ 1 OӋQK
0ӝW Eӝ [ӱ lý 2.5 GHz YӟL 20 giai ÿRҥQ pipeline có ÿӝ WUӉ NKRҧQJ:
0.4 ns/cycle u 20 cycles = 8 ns
/ѭXOѭӧQJFӫDEӝ[ӱOêFySLSHOLQHWӕWKѫQUҩWQKLӅX
7ӕWKѫQWӟLOҫQYӟLFiFEӝ[ӱOêSKiWKjQKÿѫQOӋQK
7ӕWKѫQWӟLOҫQYӟLFiFEӝ[ӱOêSKiWKjQKÿDOӋQK