Bài giảng Kiến trúc máy tính - Chương 2: 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ì
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ì
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", để 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:
- bai_giang_kien_truc_may_tinh_chuong_2_hieu_suat.pdf
Nội dung text: Bài giảng Kiến trúc máy tính - Chương 2: Hiệu suất
- dce 2017 Chương 2 Hiệu suất Kiến trúc Máy tính– Chương 2 © Fall 2017 2
- dce 2017 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 2017 4
- dce 2017 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 2017 6
- dce 2017 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 2017 8
- dce 2017 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 2017 10
- dce 2017 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 ) n ∑ i i i = 1 CPU cycles = ∑ (CPIi × Ci) CPI = n i = 1 ∑ Ci i = 1 Kiến trúc Máy tính– Chương 2 © Fall 2017 12
- dce 2017 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 Clock Cycles = 2×1 + 1×2 + 2×3 = 4×1 + 1×2 + 1×3 = 10 = 9 Avg. CPI = 10/5 = 2.0 Avg. CPI = 9/6 = 1.5 14 Kiến trúc Máy tính– Chương 2 © Fall 2017 14
- dce 2017 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 Clock Rate MIPS = = Execution Time × 106 CPI × 106 Thời gian thực thi tính theo MIPS Inst Count Inst Count × CPI Execution Time = = MIPS × 106 Clock Rate Kiến trúc Máy tính– Chương 2 © Fall 2017 16
- dce 2017 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 2017 18
- dce 2017 Các yếu tố tác động đến thời gian thực thi Time = Instruction Count × CPI × cycle time I-Count CPI Cycle Program X Compiler X X ISA X X X Organization X X Technology X Kiến trúc Máy tính– Chương 2 © Fall 2017 20
- dce 2017 Ví dụ về Amdahl's Law Một chương trình chạy mất 100 giây, phần phép nhân tốn 80 giây. Cần cải tiến phép nhân bao nhiêu lần để chương trình chạy nhanh hơn 4 lần? Lời giải: giả sử phép nhân được cải thiện s lần 25 sec (4 times faster) = 80 sec / s + 20 sec s = 80 / (25 – 20) = 80 / 5 = 16 Cần cải tiến phép nhân nhanh hơn s = 16 lần Chương trình chạy nhanh hơn 5 lần? 20 sec ( 5 times faster) = 80 sec / s + 20 sec s = 80 / (20 – 20) = ∞ Không thể! Kiến trúc Máy tính– Chương 2 © Fall 2017 22