Ế
KI N TRÚC MÁY TÍNH
Tu n 11ầ
Ộ Ử
ế
B X LÝ PROCESSOR (Ti p theo)
Copyrights 2017 CEUIT. All Rights Reserved. 1 03/2017
Ộ Ử B X LÝ
ụ
M c đích:
ế ự
ệ
ơ
ướ
ü Hi u c ch th c thi l nh và các quy
ề c v thi
ế ế t k
ể logic ́
́
ơ ả
ộ ộ ử ệ ü Thiê t kê Datapath v i 8 l nh c b n cho m t b x ế ế
ự
ệ
ớ lý và cách hi n th c thi
t k này.
1. Computer Organization and Design: The Hardware/Software Interface, Patterson,
ả ừ Slide tham kh o t :
2. NUS, Singapore
D. A., and J. L. Hennessy, Morgan Kaufman, Revised Fourth Edition, 2011.
Copyrights 2017 CEUIT. All Rights Reserved. 2 03/2017
Ộ Ử B X LÝ
ớ
ệ
1. Gi
i thi u
ắ ạ
ướ
ế ế
2. Nh c l
i các quy
c thi
t k logic
ự
ườ
ữ ệ
ơ
ả
3. Xây d ng đ
ng d li u (datapath) đ n gi n
ự
ơ
ệ
ỳ
4. Hi n th c datapath đ n chu k
Copyrights 2017 CEUIT. All Rights Reserved. 3 03/2017
ệ
ự Hi n th c datapath
ủ
ố
1. Inputs c a kh i “Registers”, “Control” và “Signextend”
ớ ầ ủ ữ ệ
ừ
ố Datapath v i đ y đ d li u input cho t ng kh i
4 03/2017
ệ
ự Hi n th c datapath
ủ
ố
1. Inputs c a kh i “Registers”, “Control” và “Signextend”
MUX có 0 thêm ở và 1 các ngõ vào ???
ớ ầ ủ ữ ệ
ừ
ố Datapath v i đ y đ d li u input cho t ng kh i
????
5 03/2017
ệ
ự Hi n th c datapath
ườ
ứ
ừ
v Tr
ng op (hay opcode) luôn ch a bits t
31:26.
ể ọ
ấ ả
ệ
ạ ị
v Hai thanh ghi dùng đ đ c trong t
t c các l nh luôn luôn là rs và rt, t
i v trí
ừ
bits t
25:21 và 20:26.
ề
ạ ị
ệ v Thanh ghi n n cho l nh load và store luôn là
rs và t
i v trí bits 25:21.
ạ ị
v 16 bits offset cho beq, lw và sw thì luôn t
i v trí 15:0.
ể
ế
ị
v Các thanh ghi đích dùng đ ghi k t qu vào
hai v trí: V i
ệ
ố ọ ở
ầ ử ụ
ể ự
ộ
i v trí bits t ở ị v trí
ớ lw, thanh ghi đích ở ả ớ ừ 20:16 (rt), trong khi v i nhóm l nh logic và s h c, thanh ghi đây đ l a 15:11 (rd). Vì v y, m t multiplexer c n s d ng
ẽ ượ
ạ ị t đích ọ ch n thanh ghi nào s đ
ậ c ghi.
6
ệ
ự Hi n th c datapath
ớ ầ ủ ữ ệ
ừ
ố Datapath v i đ y đ d li u input cho t ng kh i
7 03/2017
ệ
ự Hi n th c datapath
ố
2. Kh i “ALU Control”
????
8 03/2017
ệ
ự Hi n th c datapath
ủ ứ ự ề ể ầ ộ ồ B ALU c a MIPS g m 6 ch c năng tính toán d a trên 4 bits đi u khi n đ u vào:
ộ ứ ệ ệ ầ
ầ ẽ ẽ ự Tùy thu c vào t ng nhóm l nh mà ALU s th c hi n 1 trong 5 ch c năng đ u (NOR s ượ đ ừ c dùng cho các ph n khác)
v V i các l nh ị
ử ụ ứ ớ load word và store word, ALU s d ng ch c năng ể ‘add’ đ tính
ớ
v V i các l nh thu c
ệ ỉ ủ ộ toán đ a ch c a b nh ệ ớ ự ộ nhóm logic và s h c
ị ủ ườ ộ ố ọ , ALU th c hi n 1 trong 5 ch c năng ệ ng
ứ (AND, OR, subtract, add, và set on less than), tùy thu c vào giá tr c a tr funct (6 bits) trong mã máy l nh.ệ
ự ứ ệ ề ằ , ALU th c hi n ch c năng ể ‘subtract’ đ xem đi u
ớ ệ v V i l nh ằ ệ ế ả nh y n u b ng khi n b ng có đúng không.
Copyrights 2017 CEUIT. All Rights Reserved. 9 03/2017
ệ
ự Hi n th c datapath
ể ư ậ ự ệ ể ể ố
ộ ề ể
ủ ừ ườ tr
ờ ự ể ng ể ừ ề ố ồ funct c a mã máy, đ ng th i d a vào 2 bits kh i “Control” đ sinh ra output là 4 bits đi u khi n ALU, theo
ượ ư ả ử ộ Nh v y, đ sinh ra 4 bits đi u khi n ALU, m t trong s các cách hi n th c có th là s ố ề ụ d ng thêm m t kh i đi u khi n “ALU Control” ậ “ALU Control” nh n input là 6 bits t “ALUOp” đ c sinh ra t ắ quy t c nh b ng sau:
ộ ợ ự ể ề ể ườ ườ M t g i ý đ sinh ra 4 bits đi u khi n ALU d a vào tr ng “opcode” và tr ng “funct”
ủ c a mã máy.
Copyrights 2017 CEUIT. All Rights Reserved. 10 03/2017
ệ
ự Hi n th c datapath
ả ự ậ ạ ộ ừ ả ắ ố ự ậ g i ýợ cho kh i “ALU Control”
B ng s th t: T quy t c ho t đ ng, b ng s th t nh sauư
Copyrights 2017 CEUIT. All Rights Reserved. 11 03/2017
ệ
ự Hi n th c datapath
ố
ề
ể 3. Kh i đi u khi n chính “Control”
???
12 03/2017
ệ
ự Hi n th c datapath
ề
ở ứ
ở ứ
ộ Tác đ ng khi
m c
ộ Tác đ ng khi
m c cao
ệ Các tín hi u đi u khi nể
th pấ
ẽ ừ
ừ
Thanh ghi đích cho thao tác ghi s t
thanh ghi
rd (bits t
15:11)
RegDst
ẽ ừ
ừ
Thanh ghi đích cho thao tác rt (bits t ghi s t thanh ghi 20:16)
ố
ứ
ẽ ự
RegWrite
ố ệ
ứ c đ a vào t
ỉ ự Kh i “Registers” ch th c ọ ứ ỗ hi n m i ch c năng đ c thanh ghi
ừ ượ ấ ừ c l y t
ệ ọ Ngoài ch c năng đ c, kh i “Register” s th c hi n thêm ch c năng ỉ ố ượ ư ượ c ghi là thanh ghi có ch s đ ngõ ghi. Thanh ghi đ ữ ệ “Write register” và d li u dùng ghi vào thanh ghi này đ ngõ “Write data”
ứ
ế ừ
ế ừ
ứ
ủ
ALUSrc
Input th hai cho ALU đ n t
ố output c a kh i “Signextend”
ủ
ố
Input th hai cho ALU đ n t “Read data 2” c a kh i “Registers”
ạ
ế ệ
ạ
ệ
ề
ệ
ằ
Branch
t l nh n p vào không
ớ ế
ế
ả
ằ
ị ệ
ậ
Cho bi ả ph i “beq”. Thanh ghi PC ị ậ nh n giá tr là PC + 4
ế ả ủ ộ ộ
ế ợ ệ L nh n p vào là l nh “beq”, k t h p v i đi u ki n b ng thông qua ỉ ị ệ ổ c ng AND nh m xác đ nh xem l nh ti p theo có nh y đ n đ a ch ị ớ ừ ằ ệ ớ m i hay không. N u đi u ki n b ng đúng, PC nh n giá tr m i t ế k t qu c a b c ng “Add”
ứ
ị
MemRead
(Không)
ọ ượ ư
ộ
ọ ữ ệ ngõ “Address” và n i dung đ c đ
ệ ự ừ c đ a vào t
c
ố ệ ầ ấ
ỉ ữ Kh i “Data register” th c hi n ch c năng đ c d li u. Đ a ch d ọ ượ li u c n đ c đ xu t ra ngõ “Read data”
ứ
ị
MemWrite
(Không)
ữ ệ ộ
ượ ư
ệ ừ
ự c đ a vào t
ố ỉ ữ Kh i “Data register” th c hi n ch c năng ghi d li u. Đ a ch d ệ ầ li u c n ghi đ ngõ “Address” và n i dung ghi vào ấ ừ l y t
ngõ “Write data”
ị ư
ế ừ ố
ị ư
MemtoReg
Giá tr đ a vào ngõ “Write data” đ n t
kh i “Data memory”
Giá tr đ a vào ngõ “Write data” đ n t
ALU ộ
ủ
ệ
ề
ể
ế ừ Tác đ ng c a các tín hi u đi u khi n
13 03/2017
ệ
ự Hi n th c datapath
ể ươ ứ
ớ ỗ ệ
ư
ề
ị
ệ Giá tr các tín hi u đi u khi n t
ng ng v i m i l nh nh sau:
ậ ố Kh i “Control” trong datapath nh n input là 6 bits t
ể ượ ự ệ ng “opcode” c a ươ ứ mã máy, d a vào đó các tín hi u đi u khi n đ ừ ườ tr c sinh ra t ủ ư ng ng nh
ề b ng.ả
Copyrights 2017 CEUIT. All Rights Reserved. 14 03/2017
ệ
ự Hi n th c datapath
ự ậ
ố
ả
B ng s th t kh i “Control”:
ự ậ ả ố B ng s th t kh i “Control”
Copyrights 2017 CEUIT. All Rights Reserved. 15 03/2017
ệ
ự Hi n th c datapath
ố
ề
ể 3. Kh i đi u khi n chính “Control”
???
16 03/2017
ệ
ự Hi n th c datapath
ố
ề
ể 3. Kh i đi u khi n chính “Control”
17 03/2017
ệ
ự Hi n th c datapath
ệ
ự ộ ử
ơ
v Hi n th c b x lý đ n chu k
ự
ứ
ộ ử ỏ
ệ ỳ
ự
ỳ
ỉ
ỗ ả ằ
ủ ệ
ệ ờ
ấ
ỳ (Singlecycle implementation hay single clock cycle implementation): là cách hi n th c sao cho b x lý đáp ng đòi h i chu k xung th c thi m i câu l nh ch trong 1 chu k xung clock clock ph i b ng th i gian c a l nh dài nh t.
v
ệ
ộ ử
ư
ự
ệ
ơ ự đ n chu
Cách hi n th c b x lý nh đã trình bày trên là cách hi n th c kỳ:
L nh dài nh t là
ệ ồ ấ
ở ạ i “Registers”, trong khi các l nh khác không đòi h i t
ạ ệ ả ằ ỏ ấ ự ế ế ờ ỳ lw, g m truy xu t vào “Instruction memory”, “Registers”, “ALU”, t t k ph i b ng th i gian th c thi chu k xung clock thi
ơ
ặ
ệ
ự ộ ử
ấ ấ
ư
ỳ
ộ
ệ ự
ề
ả
ắ
ờ
ớ ệ
lw. ấ “Data memory” và quay tr l ả c các công đo n trên l nh ệ
ượ ử ụ
ặ
c s d ng (ho c
i không còn đ
ỳ ệ ạ ậ ệ
ỏ
ỳ v M c dù hi n th c b x lý đ n chu k có CPI = 1 nh ng hi u su t r t kém, ệ vì m t chu k xung clock quá dài, các l nh ng n đ u ph i th c thi cùng th i ấ gian v i l nh dài nh t. Vì v y, ậ Hi n th c đ n chu k hi n t ệ ự ơ ậ ể ấ ch có th ch p nh n cho các t p l nh nh )
Copyrights 2017 CEUIT. All Rights Reserved. 18
ỉ 03/2017
ạ
ệ
Xem l
ớ ừ i Datapath v i t ng nhóm l nh
ườ
ỏ
ườ
ạ ộ
ệ
ự
Các đ
ng đ là các đ
ng ho t đ ng khi l nh thu c
ố ọ th c thi
ộ nhóm logic và s h c 19
03/2017
ạ
ệ
Xem l
ớ ừ i Datapath v i t ng nhóm l nh
ườ
ỏ
ườ
ạ ộ
ệ
Các đ
ng đ là các đ
ng ho t đ ng khi l nh
ự lw th c thi
20 03/2017
ạ
ệ
Xem l
ớ ừ i Datapath v i t ng nhóm l nh
ườ
ậ
ỏ
ườ
ạ ộ
ệ
Các đ
ng đ m nét (đ ) là các đ
ng ho t đ ng khi l nh
ự sw th c thi 21
03/2017
ạ
ệ
Xem l
ớ ừ i Datapath v i t ng nhóm l nh
ườ
ậ
ỏ
ườ
ạ ộ
ệ
Các đ
ng đ m nét (đ ) là các đ
ng ho t đ ng khi l nh
ự beq th c thi 22
03/2017
Ộ Ử B X LÝ
ổ
ơ ả
ế ỉ
ệ
T ng k t: Hoàn ch nh datapath cho 8 l nh c b n:
• add, sub, and, or, slt
• lw, sw
• beq
ể
ơ ả
ứ
ệ
ố
ố
ố ự Hi u cách hi n th c các kh i ch c năng c b n trong datapath (kh i Control, kh i ALU Control)
23
03/2017
Copyrights 2017 CEUIT. All Rights Reserved.
Ộ Ử B X LÝ
ả ọ v Lý thuy t: Đ c sách tham kh o
ế ụ • M c: 4.4
•
Sách: Computer Organization and Design: The Hardware/Software Interface, Patterson, D. A., and J. L. Hennessy, Morgan Kaufman, Revised Fourth Edition, 2011.
v Bài t p: ậ file đính kèm
03/2017
Copyrights 2017 CEUIT. All Rights Reserved.
24