Khoa K ! thu"t Máy tính – #$i h%c Công Ngh& Thông Tin 2015
g1 Bài T!p Ch"# ng n ---oOo--Các bài t!p ch"# ng n g này $"% c trích d&n và d'ch l(i t) : Computer Organization and Design: The Hardware/Software Interface ,
Patterson, D. A., and J. L. Hennessy, Morgan Kaufman, Kaufman,
Revised Fourth
Edition, 2011. ---------------------Bài 1. Tìm t' ho(c c)m t' trong danh sách sao cho phù h* p nh+t cho các câu h,i bên d-. i (Sinh viên s/ d)ng các s0 th1 t2 bên c$nh t'/c)m t' 3ó 34 tr 5 l6 i). i). Ch7 s/ d)ng 01 l2a ch%n phù h* p nh+t cho câu tr 5 l6 i. i.
1. 2. 3. 4. 5.
Máy tính 3-* c dùng 34 gi5i quy9t các v+n 3: l. n và thông th-6 ng ng truy c" p qua m$ng. (5 – supercomputer) 1015 byte ho(c 250 byte (7 – petabyte) Máy tính có s2 k 9t h * p c ;a hàng tr và hàng terabyte b= nh . . (3 server) Các 1ng d)ng mang tính khoa h%c vi?n t-@ ng ng ngày nay có lA sA 3-* c hi&n di&n trong t-B ng ng lai gCn.(1 – virtual worlds) M=t lo$i b= nh. 3-* c g%i là b= nh. truy truy xu+t ngDu nhiên. (12 – RAM)
DEch: Nguy?n HFu Nhân & Tr Cn ThE Nh- Nguy&t
Page 1
Khoa K ! thu"t Máy tính – #$i h%c Công Ngh& Thông Tin 2015
6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
21. 22. 23. 24. 25.
26.
M=t phCn c;a m=t máy tính 3-* c g%i là 3B n vE x/ l> trung tâm. (13 – CPU) Hàng ngàn b= vi x/ l> t$o thành m=t cluster (bó, c)m) l. n. (8 – datacenters) M=t vi x/ l> ch1a vài b= x/ l> trong cùng m=t chip. (10 – multicore processors) Máy tính 34 bàn không có màn hình ho(c bàn phím th-6 ng 3-* c truy c" p qua m$ng. (4 – low-end servers) #ây là l. p máy tính có s0 l-* ng l. n nh+t hi&n này, và ch7 ch$y m=t 1ng d)ng ho(c m=t nhóm 1ng d)ng liên quan. (9 – Embedded Computer) Ngôn ngF 3(c bi&t 3-* c s/ d)ng 34 di?n t5 các thành phCn phCn c1ng. (11 – VHDL) Máy tính cá nhân có hi&u n dF li&u th-B ng m$i. (25 – Cobol) Ngôn ngF nhE phân mà b= x/ l> có th4 hi4u. (19 – Machine language) Các l&nh mà các b= x/ l> có th4 hi4u. (17 – Instruction) Ngôn ngF c+ p cao cho tính toán khoa h%c. (26 – Fortran) Ngôn ngF mô t 5 l&nh nhE phân c;a máy tính thông qua kí hi&u bi4u di?n (symbol) (18 – Assembly language) Ch-B ng trình làm nhi&m v) giao ti9 p giFa ch-B ng trình ng-6 i dùng c+ p cao và phCn c1ng, cung c+ p các dEch v) khác nhau và các ch1c n
Bài 2. 2.1 Cho m=t màn hình màu s/ d )ng 8 bit 34 hi 4n th E m =t màu cB b 5n ( 3, (Red), xanh lá (Green), xanh 3"m (Blue)) trong mHi pixel v. i 3= phân gi5i 1280x800 pixel. Hãy cho bi9t 3= l. n nh, nh+t c;a b= 3&m 34 có th4 ch1a m=t khung 5nh? Tr* l+ i : 3,072,000 byte (Kho5ng 3 Mbyte) DEch: Nguy?n HFu Nhân & Tr Cn ThE Nh- Nguy&t
Page 2
Khoa K ! thu"t Máy tính – #$i h%c Công Ngh& Thông Tin 2015
2.2 N9u m=t máy tính có b= nh. chính là 2048 Mbyte, nó có th4 ch1a t0i 3a bao nhiêu khung 5nh, gi5 s/ b= nh. không ch1a gì khác? Tr* l+ i : s0 l-* ng khung (frame) = 2048 Mbyte/ 3 Mbyte = 683 khung 5nh. 2.3 M =t máy tính 3ã k 9t n 0i v . i m =t m $ng Ethernet v. i t 0c 3= 1Gb cCn g /i t & p (file) có dung l-* ng 256 KB. Hãy cho bi9t cCn bao nhiêu th6 i gian 34 hoàn thành? Tr* l+ i : T0c 3= m$ng: M$ng 1 gigabit ==> có th4 truy:n 1 gigabit/giây = 125 Mbyte/ giây. Kích th-. c File: 256 Kbyte = 0.256 Mbyte. Th6 i gian truy:n 0.256 Mbyte = 0.256/125 = 2.048 ms 2.4 Tìm th6 i gian cCn 3%c m=t t& p t' DRAM, b= nh. Flash, #I a t' n9u ta cCn 2Js t' b= nh. cache. Hình bên d-. i cho bi9t t0c 3= truy c" p 30i v. i mHi lo$i b= nh. : Cache
DRAM
Flash Memory
5ns
50 ns
5 µs
34 3%c
Magnetic Disk 5 ms
(B5ng trên cho ta bi9t t 0c 3= 3%c c ;a các lo$i b = nh . , chú > b = nh . cache nhanh hB n 10 lCn b= nh. DRAM, b= nh. DRAM nhanh hB n 100.000 lCn t0c 3= 3I a t', b= nh. flash nhanh hB n 1000 lCn 3I a t') Tr* l+ i : 2 Js t' b= nh. cache ==> 20 Js t' DRAM. 20 Js t' DRAM ==> 2 giây t' 3I a t'. 20 Js t' DRAM ==> 2 ms t' b= nh. flash.
Bài 3. Cho 3 b= x/ l> P1, P2 và P3: cùng ch$y m=t t" p l&nh v. i các tCn s0/t0c 3= xung clock và CPI 3-* c cho nh- b5ng bên d-. i. B, x- l.
Clock Rate
CPI
P1
2 Ghz
1.5
P2
1.5 Ghz
1.0
P3
3 Ghz
2.5
3.1 B= x/ l> nào có hi&u su+t cao nh+t d2a theo tiêu chí s0 l&nh th2c thi trong 1 giây (IPS) và s0 tri&u l&nh th2c thi trong m=t giây (MIPS)? DEch: Nguy?n HFu Nhân & Tr Cn ThE Nh- Nguy&t
Page 3
Khoa K ! thu"t Máy tính – #$i h%c Công Ngh& Thông Tin 2015
Tr* l+ i : IPS(P1) = 2Ghz / 1.5 = 1.33 K 109 MIPS(P1) = 1.33 K 103 IPS(P2) = 1.5Ghz/1.0= 1.5 K 109 MIPS(P2) = 1.5 K 103 IPS(P3) = 3Ghz/2.5= 1.2 K 109 MIPS(P3) = 1.2 K 103 B, x - l . nào th/ c thi nhi0u l 1nh trong m,t giây nh2t s 3 là b, x - l . có hi1u su 2t cao nh2t. P2 có hi1u su2t cao nh2t 3.2 N 9u các b= x / l > ch $y 1 ch-B ng trình nào 3ó h 9t 10 giây, tìm tLng s 0 chu kì và tLng s0 l-* ng l&nh t-B ng 1ng. Tr* l+ i
Execution time =
Number of cycles Clock rate
TLng s0 chu kì(P1) = 10 K 2 K 109= 20 K 109 (chu kì) TLng s0 chu kì(P2) = 10 K 1.5 K 109= 15 K 109 (chu kì) TLng s0 chu kì(P3) = 10 K 3 K 109= 30 K 109 (chu kì) Number of cycle = Number of instructions x CPI Number of instructions
=
Number of cycles CPI
TLng s0 l&nh (P1) = 20 K 109/1.5 = 13.33 K 109 (l&nh) TLng s0 l&nh (P2) = 15 K 109/1 = 15 K 109 (l&nh) S0 l-* ng l&nh (P3) = 30 K 109/2.5 = 12 K 109 (l&nh) 3.3 N 9u chúng ta c0 gi 5m 30% th6 i gian th2c thi sA dDn t. i vi&c t t-B ng 1ng ph5i là bao nhiêu? L! u ": s# d $ng d % li&u ' câu 3.2 Tr* l+ i : Ta có: (CPI m4 i ) = (CPI c5) x 1.2 CPI m. i c;a P1 = 1.5 x 1.2 = 1.8 CPI m. i c;a P2 = 1 x 1.2 = 1.2 DEch: Nguy?n HFu Nhân & Tr Cn ThE Nh- Nguy&t
Page 4
Khoa K ! thu"t Máy tính – #$i h%c Công Ngh& Thông Tin 2015
CPI m. i c;a P3 = 2.5 x 1.2 = 3 Th+ i gian th/ c thi m4 i = (th+ i gian c5) x 0.7 = 10 x 0.7 = 7 (giây) Number of intructions x CPI Execution time =
!
Clock rate
Clock rate
=
Number of intructions x CPI Execution time
(Number of instructions l ( y ' câu 3.2) Thay s0 vào ta có t0c 3= m. i c;a các b= x/ l>: Clock rate(P1) = 13.33 x 109 x 1.8/7 = 3.43 GHz Clock rate(P2) = 15 x 109 x 1.2 / 7 = 2.57 GHz Clock rate(P3) = 12 x 109 x 3 / 7 = 5.14 Ghz Các câu bên d"4 i s- d6ng d7 li1u 8 b*ng sau. Processor Rate
Clock
No. Instructions
Time
P1
2 GHz
20.109
7s
P2
1.5 GHz
30.109
10s
P3
3 GHz
90.109
9s
3.4 Tìm IPC (s0 l&nh 3-* c th2c hi&n trong m=t chu kì – instruction per cycle) cho mHi b= x/ l>. Tr* l+ i : IPC = 1/CPI = Number of instructions/(Execution time K clock rate) IPC(P1) = 20.109 / (7 x 2Ghz) = 1.42 IPC(P2) = 30.109 / (10 x 1.5Ghz) = 2 IPC(P3) = 90.109 / (9 x 3Ghz)= 3.33 3.5 Tìm t0c P1. Tr* l+ i :
3=/tCn s0 xung clock m. i cho P2 34 P2 có th4 gi5m th6 i gian th2c thi bMng
Number of intructions x CPI Execution time =
!
Clock rate
=
Clock rate Number of intructions x CPI Execution time
DEch: Nguy?n HFu Nhân & Tr Cn ThE Nh- Nguy&t
Page 5
Khoa K ! thu"t Máy tính – #$i h%c Công Ngh& Thông Tin 2015
Clock rate (new) = Number of instructions K CPI/ Execution time (new) Clock rate (old) = Number of instructions K CPI/ Execution time (old) Clock rate (new)/ Clock rate (old) = Execution time (old)/ Execution time (new) Clock rate (new) = (Clock rate (old) x 10/7) = 1.5 Ghz x10/7 = 2.14 Ghz
3.6 Tìm s0 l-* ng l&nh cho P2 mà gi5m th6 i gian th2c thi c;a nó t. i bMng c;a P3. Tr* l+ i : Number of instructions(new) = (clock rate x execution time(new)) / CPI Number of instructions(old) = (clock rate x execution time(old)) / CPI Number of instructions(new)/Number of instructions(old)= execution time(new)/ execution time(old) Number of instructions(new) = Number of instructions(old) x 9/10 = 30 x 109 x 9 / 10 = 27 x 109
Bài 4. Xét 2 cách thi9t k 9 và hi&n th2c khác nhau c;a cùng ki9n trúc b= l&nh lên hai b= x/ l> P1 và P2. Có 4 l. p l &nh: A, B, C và D. T0c 3= clock và CPI c;a mHi cách thi9t k 9 3-* c cho nh- b5ng bên d-. i. B= x/ l>
Clock rate
CPI Class A
CPI Class B CPI Class C
CPI Class D
P1
1.5 Ghz
1
2
3
4
P2
2 Ghz
2
2
2
3
4.1 Cho m=t ch-B ng trình v. i 106 l&nh 3-* c chia thành các l. p sau: 10% l. p A, 20% l. p B, 50% l. p C và 20% l. p D. Cách thi9t k 9 và hi&n th 2c nào sA ch $y nhanh hB n (hay b= x/ l> nào sA ch$y nhanh hB n) v. i ch-B ng trình này? Tr* l+ i : S0 l-* ng các l&nh t-B ng 1ng v. i các l. p: Class A: 105 l&nh Class B: 2 K 105 l&nh Class C: 5 K 105 l&nh Class D: 2 K 105 l&nh Number of intructions x CPI Execution time =
Clock rate
DEch: Nguy?n HFu Nhân & Tr Cn ThE Nh- Nguy&t
Page 6
Khoa K ! thu"t Máy tính – #$i h%c Công Ngh& Thông Tin 2015
V. i b= x/ l> P1: Th6 i gian các l&nh thu=c nhóm A ch$y = (105/1.5 x 109) = 0.66 K 10-4 Th6 i gian các l&nh thu=c nhóm B ch$y = 2.66 K 10-4 Th6 i gian các l&nh thu=c nhóm C ch$y = 10 K 10-4 Th6 i gian các l&nh thu=c nhóm D ch$y = 5.33 K 10-4 Th6 i gian th2c thi ch-B ng trình trên b= x/ l> P1 = 18.65 K 10-4 V. i b= x/ l> P2: Th6 i gian các l&nh thu=c nhóm A ch$y = 10-4 Th6 i gian các l&nh thu=c nhóm B ch$y = 2 K 10-4 Th6 i gian các l&nh thu=c nhóm C ch$y = 5 K 10-4 Th6 i gian các l&nh thu=c nhóm D ch$y = 3 K 10-4 Th6 i gian th2c thi ch-B ng trình trên b= x/ l> P2 = 11 K 10-4 ! P2 nhanh h# n 4.2 Tìm CPI chung/trung bình c;a mHi b= x/ l> v. i ch-B ng trình trên? Tr* l+ i : CPI =
Execution time x Clock rate Number of instructions
CPI(P1) = 18.65 K 10-4 K 1.5 K 109/106 = 2.79 CPI(P2) = 11 K 10-4K 2 K 109/106= 2.2 4.3 Tìm tLng s0 chu kì xung clock c;a ch-B ng trình trên P1 và P2. Tr* l+ i : Number of clock cycles = Number of instructions x CPI Number of clock cycles(P1) = Number of instructionsA x CPIA + Number of instructionsB x CPIB + Number of instructionsC x CPIC + Number of instructionsD x CPID = 105 K 1 + 2 K 105K 2 + 5 K 105K 3 + 2 K 105K 4 = 28 K 105 Number of clock cycles (P2): t-B ng t2 4.4 Gi5 s / r Mng l&nh toán h%c (Arith) cCn 1 chu kì; 3%c dF li&n t' b= nh. (Load) và ghi dF li&u vào b= nh. (Sw) trong 5 chu kì; các l&nh nhánh (Branch) trong 2 chu kì. Tìm th6 i gian th2c thi c;a m=t ch-B ng trình ch$y trên b= x/ l> 2 GHz? Bi9t s0 l&nh t'ng lo$i trong ch-B ng trình ch$y nh- b5ng: Arith
Store
Load
Branch
Total
500
50
100
50
700
DEch: Nguy?n HFu Nhân & Tr Cn ThE Nh- Nguy&t
Page 7
Khoa K ! thu"t Máy tính – #$i h%c Công Ngh& Thông Tin 2015
Tr* l+ i : Number of intructions x CPI Execution time =
Clock rate
= (500 x 1 + 50 x 5 + 100 x 5 + 50 x 2) / (2 x109) = 675 x 10-9 s = 675 ns 4.5 Tìm CPI cho ch-B ng trình trên. Tr* l+ i : CPI =
Execution time x Clock rate Number of instructions
CPI = 675 K 10-9 K 2 K 109 /700 = 1.92
4.6 N9u s0 l-* ng c;a các l&nh load có th4 gi5m m=t n/a, ch-B ng trình t
Clock rate
Execution Time = (500 K 1 + 50 K 5 + 50 K 5 + 50 K 2) K 0.5 K 10-9 = 550 ns Speed-up = 675 ns/550 ns = 1.23 CPI = 550 K 10-9 K 2 K 109 /700 = 1.57
Bài 5. Xét 2 cách thi9t k 9 và hi&n th2c khác nhau (b= x/ l> P1 và P2) c;a cùng m=t t" p l&nh. Có 5 l. p l&nh (A, B, C, D và E) trong t " p l&nh. T0c 3=/TCn s0 xung clock và CPI c;a mHi l. p 3-* c cho nh- b5ng d-. i. Clock Rate Câu a
Câu b
CPI Class A
CPI Class B
CPI Class C
CPI Class D
CPI Class E
P1 1.0 GHz
1
2
3
4
3
P2 1.5 Ghz
2
2
2
4
4
P1 1.0 GHz
1
1
2
3
2
P2 1.5 Ghz
1
2
3
4
3
DEch: Nguy?n HFu Nhân & Tr Cn ThE Nh- Nguy&t
Page 8
Khoa K ! thu"t Máy tính – #$i h%c Công Ngh& Thông Tin 2015
5.1 Khi m=t máy tính th2c thi b+t k N chuHi l&nh nào, n9u nó 3$t m=t t0c 3= nhanh nh+t thì máy tính 3-* c xem là 3$t hi&u su+t 37nh 3i4m (peak performance) Tính s0 l-* ng l&nh th2c thi trong 1 giây khi P1 và P2 3$t hi&u su+t 37nh 3i4m. Tr* l+ i : a. Hi&u su +t 37nh 3i4m c ;a P1 x5y ra ch7 khi P1 ch$y m =t 3o$n l &nh mà t+t c 5 các l&nh 3:u nMm trong l. p l&nh A (vì A có CPI nh, nh+t). Khi 3ó: S0 l-* ng l&nh th2c thi trong 1 giây(P1) = number of instructions/execution time = clock rate(P1)/CPI(A) = 109/1 = 109 l&nh/giây = 1 G l&nh/giây T-B ng t2, hi &u su +t cao nh+t c ;a P2 x5y ra ch7 khi P2 ch$y m =t 3o$n l &nh mà t+t c 5 các l&nh 3:u nMm trong l. p l&nh A ho(c l. p l&nh B ho(c l. p l&nh C, vì chúng có CPI nh, nh+t. S0 l-* ng l&nh th2c thi trong 1 giây(P2) = number of instructions/execution time = clock rate(P2)/CPI(A) = 0.75G l&nh/giây b. S0 l-* ng l&nh th2c thi trong 1 giây(P1) = 1G inst/sec S0 l-* ng l&nh th2c thi trong 1 giây(P2) = 1.5G inst/sec 5.2 N 9u s0 l&nh cCn th2c thi c;a m=t ch-B ng trình 3-* c chia 3:u cho các l. p l&nh, ngo$i tr ' l. p l&nh A có s0 l&nh g+ p 3ôi các l. p l&nh khác. Máy tính nào ch$y nhanh hB n và nhanh hB n bao nhiêu lCn? Tr* l+ i : a. G%i I là t Lng s0 l&nh c;a ch-B ng trình. S0 l&nh cho mHi l. p l&nh B, C, D, E: I/6 = 0.167I S0 l&nh cho l. p A: 0.333I s0 l&nh Class
Number of Instructions
P1
P2
CPI
Number of Instructions x CPI
CPI Number of Instructions x CPI
A
0.333I
1
0.333I
2
0.666I
B
0.167I
2
0.334I
2
0.334I
C
0.167I
3
0.501I
2
0.334I
D
0.167I
4
0.668I
4
0.668I
E
0.167I
3
0.501I
4
0.668I
Total
2.337I
DEch: Nguy?n HFu Nhân & Tr Cn ThE Nh- Nguy&t
2.67I
Page 9
Khoa K ! thu"t Máy tính – #$i h%c Công Ngh& Thông Tin 2015
Ta có: Number of intructions x CPI Execution time =
Clock rate
Execution time (P1) = 2.337 I / 1 GHz = 2.337 x 10-9 x I (s) Execution time (P2) = 2.67 I / 1.5GHz = 1.78 x 10-9 x I (s) Máy P2 ch$y nhanh hB n P1 và nhanh hB n 2.337/1.78 = 1.3 lCn b. P1 nhanh hB n P2 1.03 lCn (SV t2 tính) 5.3 N9u s0 l-* ng l&nh cCn th2c thi c;a m=t ch-B ng trình 3-* c chia 3:u cho các l. p l&nh, ngo$i tr ' l. p E có s0 l&nh g+ p 3ôi các l. p l&nh khác. Máy tính nào ch$y nhanh hB n và nhanh hB n bao nhiêu lCn? Tr* l+ i : Gi0ng câu 5.2 a. P2 is 1.31 times faster than P1 b. P1 is 1.00 times faster than P2 B5ng d -. i cho bi9t s 2 phân chia s0 l -* ng l &nh theo nhóm l&nh c;a 2 ch-B ng trình khác nhau. Sinh viên s/ d )ng d F li &u này cho các câu bên d-. i 34 tìm hi4u s 2 5nh h -@ ng 39n hi&u n MIPS. S0 l&nh Compute
Load
Store
Branch
total
Program 1
1000
400
100
50
15500
Program 2
1500
300
100
100
1750
5.4 Gi5 s/ r Mng l&nh tính toán (Compute) m+t 1 chu kì, l&nh 3%c dF li&u t' b= nh. (Load) và ghi dF li &u vào b= nh . (Store) m+t 10 chu kì và l&nh r A nhánh (Branch) m+t 3 chu kì. D2a vào b5ng dF li&u trên hãy tính th6 i gian th2c thi c;a m=t b= x/ l> MIPS 3 GHz. Tr* l+ i : P1
P2
Lo$i l&nh
CPI
S0 l&nh t'ng nhóm (Program 1)
S0 chu k N xung clock t-B ng 1ng t'ng nhóm Number of instructions x CPI
S0 l&nh t'ng nhóm (Program 2)
S0 chu k N xung clock t-B ng 1ng t'ng nhóm Number of instructions x CPI
Comput e
1
1000
1000
1500
1500
Load
10
400
4000
300
3000
Store
10
100
1000
100
1000
DEch: Nguy?n HFu Nhân & Tr Cn ThE Nh- Nguy&t
Page 10
Khoa K ! thu"t Máy tính – #$i h%c Công Ngh& Thông Tin 2015
Branch
3
50
150
T:ng:
100
300
6150
Execution time =
5800
Number of cycles Clock rate
Execution time (P1) = 6150/3 Ghz = 2.05 x 106s = 2.05 Js Execution time (P2) = 5800/3 Ghz = 1.93 Js 5.5 Gi 5 s / r Mng l &nh tính toán (Cmpute) m+t 1 chu kì, l&nh 3%c d F li &u t ' b = nh . (Load) và ghi vào b= nh . (Store) m+t 2 chu kì và l&nh r A nhánh (Branch) m+t 3 chu kì. D2a vào b5ng dF li&u trên hãy tính th6 i gian th2c thi c;a m=t b= x/ l> MIPS 3GHz. Tr* l+ i : P1 Lo$i l&nh CPI
P2
Number of instructions1
CPI x Number of instruction1
Number of instruction2
CPI x Number of instruction2
Compute
1
1000
1000
1500
1500
Load
2
400
800
300
600
Store
2
100
200
100
200
Branch
3
50
150
100
300
T:ng
2150
2600
Execution time (P1) = 2150/3 Ghz = 716 x 106s = 0.71 Js Execution time (P2) = 2600/3 Ghz = 0.86 Js
DEch: Nguy?n HFu Nhân & Tr Cn ThE Nh- Nguy&t
Page 11