Bài giảng Kiến trúc máy tính - Chương 2: Hiệu suất - Võ Tấn Phương

dce  
2015  
KIẾN TRÚC MÁY TÍNH  
KHOA HỌC & KỸ THUẬT MÁY TÍNH  
BK  
TP.HCM  
Võ Tấn Phương  
dce  
2015  
Chương 2  
Hiệu suất  
Kiến trúc Máy tính– Chương 2  
© Fall 2015  
2
dce  
2015  
Hiệu suất ???  
Chúng ta lựa chọn máy tính theo tiêu chí gì?  
Tại sao máy tính chạy chương trình này tốt nhưng  
không tốt đối với chương trình khác?  
Làm sao để đo hiệu suất của một máy tính?  
Phần cứng và phần mềm ảnh hưởng như thế nào?  
Tập lệnh của máy tính ảnh hưởng như thế nào?  
Hiểu hiệu suất sẽ biết được động cơ của việc cải tiến sẽ  
tập trung vào công việc gì  
Kiến trúc Máy tính– Chương 2  
© Fall 2015  
3
dce  
2015  
Thời gian đáp ứng & Thông lượng  
Thời gian đáp ứng (response time)  
Khoản thời gian từ lúc bắt đầu đến khi kết thúc một công việc  
Response Time = CPU Time + Waiting Time (I/O, OS scheduling, etc.)  
Thông lượng (throughput)  
Số lượng công việc giải quyết trong một khoản thời gian  
Giảm thời gian thực thi sẽ cải thiện thông lượng  
Ví dụ: sử dụng bộ xử lý nhanh hơn  
Thời gian thực hiện một công việc ít nhiều công việc được thực hiện  
Tăng thông lượng cũng giảm thời gian đáp ứng  
Ví dụ: Tăng số lượng nhân của bộ xử lý  
Nhiều công việc thực thi song song  
Thời gian thực thi của một công việc (CPU Time) không thay đổi  
Thời gian chờ trong hàng đợi định thời giảm (OS scheduling)  
Kiến trúc Máy tính– Chương 2  
© Fall 2015  
4
dce  
2015  
Định nghĩa hiệu suất (performance)  
Một chương trình A chạy trên máy tính X  
1
PerformanceX =  
Execution timeX  
X nhanh hơnY n lần (cùng chạy chương trình A)  
PerformanceX  
PerformanceY  
Execution timeY  
Execution timeX  
=
= n  
Kiến trúc Máy tính– Chương 2  
© Fall 2015  
5
dce  
2015  
Thời gian thực thi “Execution Time”?  
Thời gian trôi qua (elapsed time)  
Tính tấc cả:  
. CPU time, Waiting time, Input/output, disk access, OS scheduling,  
… etc.  
Con số hữu ích, nhưng không phù hợp cho mục đích  
đánh giá CPU  
Execution Time ~ CPU Execution Time  
Chỉ tính thời gian thực thi các lệnh của chương trình  
Không tính: thời gian chờ I/O hoặc OS scheduling  
Được tính bằng “giây”, hoặc  
Thể hiện thông qua số lượng chu kỳ xung nhịp khi CPU  
thực thi chương trình A (CPU clock cycles)  
Kiến trúc Máy tính– Chương 2  
© Fall 2015  
6
dce  
2015  
Số chu kỳ xung nhịp (Clock Cycles)  
Clock cycle = Clock period = 1 / Clock rate  
Cycle 1  
Cycle 2  
Cycle 3  
Clock rate = Clock frequency = Cycles per second  
1 Hz = 1 cycle/sec  
1 KHz = 103 cycles/sec  
1 MHz = 106 cycles/sec 1 GHz = 109 cycles/sec  
2 GHz clock has a cycle time = 1/(2×109) = 0.5  
nanosecond (ns)  
Dùng số chu kỳ xung nhịp thể hiện CPU execution time  
Clock cycles  
=
CPU Execution Time = Clock cycles × cycle time  
Clock rate  
Kiến trúc Máy tính– Chương 2  
© Fall 2015  
7
dce  
2015  
Cải tiến hiệu suất  
Để cải tiến hiệu suất:  
Giảm số chu kỳ xung nhịp cần thiết để thực thi một chương  
trình, hoặc  
Giảm thời gian một chu kỳ (tăng tần số xung nhịp)  
Ví dụ:  
Chương trình A chạy mất 10 giây trên máy tính X với tần số 2 GHz  
Số lượng chu kỳ xung nhịp để chạy chương trình A trên máy X ?  
Yêu cầu thiết kế máy tính Y chạy cùng chương trình A trong 6 giây  
Máy tính Y cần thêm 10% số chu kỳ xung nhịp  
Hỏi máy tính Y cần xung nhịp có tần số bao nhiêu ?  
Lời giải:  
Clock cycles trên máy X = 10 sec × 2 × 109 cycles/s = 20 × 109  
Clock cycles trên máy Y = 1.1 × 20 × 109 = 22 × 109 cycles  
Clock rate cho máy Y = 22 × 109 cycles / 6 sec = 3.67 GHz  
Kiến trúc Máy tính– Chương 2  
© Fall 2015  
8
dce  
2015  
Clock Cycles per Instruction (CPI)  
Chương trình là một chuỗi các lệnh  
CPI là số trung bình của số chu kỳ xung nhịp trên lệnh  
I1  
I2  
I3 I4 I5 I6  
I7  
CPI = 14/7 = 2  
cycles  
1
2
3
4
5
6
7
8
9 10 11 12 13 14  
Kiến trúc Máy tính– Chương 2  
© Fall 2015  
9
dce  
2015  
Thời gian thực thi  
Thông tin từ chương trình A được thực thi …  
Số lượng lệnh (lệnh dạng ngôn ngữ máy hoặc hợp ngữ)  
Số lượng chu kỳ xung nhịp CPU thực thi  
Thời gian thực thi  
Liên hệ giữa CPU clock cycles đến Instruction Count  
CPU clock cycles = Instruction Count × CPI  
Thời gian thực thi: (liên quan đế số lượng lệnh)  
Time = Instruction Count × CPI × cycle time  
Kiến trúc Máy tính– Chương 2  
© Fall 2015  
10  
dce  
2015  
Ví dụ  
Máy A và B có chung kiến trúc tập lệnh (ISA)  
Chương trình P chạy trên A và P  
Máy A có clock cycle time: 250 ps và CPI: 2.0  
Máy B có clock cycle time: 500 ps và CPI: 1.2  
Máy nào chạy P nhanh hơn và bao nhiêu lần?  
Lời giải:  
Chung ISA => chung số lệnh IC  
CPU execution time (A) = IC × 2.0 × 250 ps = 500 × IC ps  
CPU execution time (B) = I C × 1.2 × 500 ps = 600 × IC ps  
600 × IC  
Máy A nhan hơn máy B =  
= 1.2  
500 × IC  
Kiến trúc Máy tính– Chương 2  
© Fall 2015  
11  
dce  
2015  
Xác định CPI  
Phân biệt CPI trung bình của chương trình và lệnh  
CPIi = số chu kỳ xung nhịp của loại lệnh i  
Ci  
= số lệnh của loại lệnh i  
n
(CPI × C)  
∑
i
i
n
i = 1  
CPI =  
CPU cycles = (CPI × C)  
∑
n
i
i
i = 1  
C
∑
i
i = 1  
Kiến trúc Máy tính– Chương 2  
© Fall 2015  
12  
dce  
2015  
Kiến trúc Máy tính– Chương 2  
© Fall 2015  
13  
dce  
2015  
Ví dụ: CPI trung bình  
Sau khi biên dịch 1 chương trình với 3 loại lệnh  
A, B, C cho kết quả:  
Kết quả biên dịch 1: IC = 5  
Kết quả biên dịch 2: IC = 6  
Clock Cycles  
= 2×1 + 1×2 + 2×3  
= 10  
Clock Cycles  
= 4×1 + 1×2 + 1×3  
= 9  
Avg. CPI = 10/5 = 2.0  
Avg. CPI = 9/6 = 1.5  
14  
© Fall 2015  
Kiến trúc Máy tính– Chương 2  
14  
dce  
2015  
Ví dụ 2  
Cho các thông số của chương trình như bảng dưới  
CPI trung bình?  
Tỉ lệ % thời gian của từng nhóm lệnh?  
%Time  
Classi  
Freqi  
CPIi CPIi × Freqi  
0.5/2.2 = 23%  
1.0/2.2 = 45%  
0.3/2.2 = 14%  
0.4/2.2 = 18%  
ALU  
50%  
20%  
10%  
20%  
1 0.5×1 = 0.5  
5 0.2×5 = 1.0  
3 0.1×3 = 0.3  
2 0.2×2 = 0.4  
Load  
Store  
Branch  
Average CPI = 0.5+1.0+0.3+0.4 = 2.2  
Tính speed up trong trường hợp CPI của lệnh load = 2?  
Tính speed up trong trường hợp 2 lệnh ALU thực thi trong  
1 chu kỳ xung nhịp?  
Kiến trúc Máy tính– Chương 2  
© Fall 2015  
15  
dce  
2015  
Thông số MIPS – Triệu lệnh trên giây  
MIPS: Millions Instructions Per Second  
Được dùng làm thông số đo hiệu suất  
Máy chạy nhanh hơn MIPS lớn hơn  
MIPS đo tốc độ xử lý lệnh  
Instruction Count  
Execution Time × 106  
Clock Rate  
CPI × 106  
MIPS =  
=
Thời gian thực thi tính theo MIPS  
Inst Count × CPI  
Inst Count  
MIPS × 106  
Execution Time =  
=
Clock Rate  
Kiến trúc Máy tính– Chương 2  
© Fall 2015  
16  
dce  
2015  
Hạn chế của thông số MIPS  
Ba vấn đề của thông số MIPS  
1. Không tính đến số lượng lệnh  
Không thể dung MIPS để so sánh các máy tính có tập lệnh khác  
nhau vì IC sẽ khác  
2. MIPS thay đổi trên cùng một máy tính  
Một máy tính không thể có thông số MIPS chung cho tất cả  
chương trình  
3. MIPS có thể đối lập với thông số hiệu suất  
MIPS cao không đồng nghĩa hiệu suất tốt hơn  
Xem ví dụ ở slide kế  
Kiến trúc Máy tính– Chương 2  
© Fall 2015  
17  
dce  
2015  
Ví dụ về thông số MIPS  
Hai compiler được so sánh khi biên dịch cùng một  
chương trình chạy trên một máy tính 4 GHz với 3 nhóm  
lệnh: Class A, Class B và Class C; CPI tương ứng 1, 2  
và 3 chu kỳ xung nhịp  
Compiler 1 sinh ra 5 tỉ lệnh Class A, 1 tỉ lệnh Class B và  
1 tỉ lệnh Class C.  
Compiler 2 sinh ra 10 tỉ lệnh Class A, 0.5 tỉ lệnh Class B  
và 1 tỉ lệnh Class C.  
Compiler nào sinh ra chương trình có thông số MIPS  
cao hơn?  
Compiler nào sinh ra chương trình có thời gian thực thi  
tốt hơn?  
Kiến trúc Máy tính– Chương 2  
© Fall 2015  
18  
dce  
2015  
Lời giải  
Số chu kỳ xung nhịp tương ứng  
CPU cycles (compiler 1) = (5×1 + 1×2 + 1×3)×109 = 10×109  
CPU cycles (compiler 2) = (10×1+0.5×2+1×3)×109 = 14×109  
Thời gian thực thi tương ứng  
Execution time (compiler 1) = 10×109 cycles / 4×109 Hz = 2.5 sec  
Execution time (compiler 2) = 14×109 cycles / 4×109 Hz = 3.5 sec  
Compiler1 sinh ra chương trình chạy nhanh hơn  
Thông số MIPS tương ứng  
MIPS = Instruction Count / (Execution Time × 106)  
MIPS (compiler 1) = (5+1+1) × 109 / (2.5 × 106) = 2800  
MIPS (compiler 2) = (10+0.5+1) × 109 / (3.5 × 106) = 3286  
Compiler2 sinh ra chương trình có thông số MIPS cao hơn!!!  
Kiến trúc Máy tính– Chương 2  
© Fall 2015  
19  
dce Các yếu tố tác động đến thời gian thực thi  
2015  
Time = Instruction Count × CPI × cycle time  
I-Count  
CPI  
Cycle  
Program  
Compiler  
ISA  
X
X
X
X
X
X
X
X
X
Organization  
Technology  
Kiến trúc Máy tính– Chương 2  
© Fall 2015  
20  
Tải về để xem bản đầy đủ
pdf 22 trang Thùy Anh 15700 Free
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Kiến trúc máy tính - Chương 2: Hiệu suất - Võ Tấn Phương", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfbai_giang_kien_truc_may_tinh_chuong_2_hieu_suat_vo_tan_phuon.pdf