Bài giảng Vi xử lý nâng cao - Phần 1: Thiết kế CPU RISC - Bài 07: Hiệu suất
Định nghĩa hiệu suất (tốc độ)
Thường quan tâm đến việc giảm
Thời gian đáp ứng (thời gian thực thi) – thời gian từ khi bắt đầu
đến khi hoàn tất một công việc.
- Quan trọng đối với những người sử dụng riêng rẽ.
Do vậy, để cực đại hóa hiệu suất, cần tối thiểu hóa thời gian thực thi.
Thông lượng – lượng tổng công việc được thực hiện trong thời gian
cho trước.
- Quan trọng đối với những người quản lý trung tâm dữ liệu.
Việc giảm thời gian đáp ứng hầu như luôn luôn cải thiện thông
lượng.
Bạn đang xem tài liệu "Bài giảng Vi xử lý nâng cao - Phần 1: Thiết kế CPU RISC - Bài 07: 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_vi_xu_ly_nang_cao_phan_1_thiet_ke_cpu_risc_bai_07.pdf
Nội dung text: Bài giảng Vi xử lý nâng cao - Phần 1: Thiết kế CPU RISC - Bài 07: Hiệu suất
- Bài giảng “Vi xử lý nâng cao” Phần 1: Thiết kế CPU RISC Bài 07: Hiệu suất 1
- Các yếu tố của hiệu suất Ta muốn phân biệt thời gian trôi qua (elapsed time) và thời gian sử dụng cho công việc. Thời gian thực thi của CPU (thời gian CPU) – thời gian mà CPU dùng vào việc thực hiện công việc. Không bao gồm thời gian chờ I/O hoặc chạy các chương trình khác. CPU execution time # CPU clock cycles = x clock cycle time for a program for a program hoặc CPU execution time # CPU clock cycles for a program = for a program clock rate Có thể cải thiện hiệu suất bằng cách giảm chiều dài của chu kỳ clock hoặc số chu kỳ clock được yêu cầu cho chương trình. 3
- Số chu kỳ clock mỗi lệnh Không phải tất cả lệnh đều phải mất cùng lượng thời gian như nhau để thực thi. Một phương pháp để nghĩ về thời gian thực thi là: thời gian thực thi bằng số lệnh được thực thi nhân với thời gian trung bình mỗi lệnh. # CPU clock cycles # Instructions Average clock cycles = x for a program for a program per instruction Số chu kỳ clock mỗi lệnh (CPI) – số chu kỳ clock trung bình mà mỗi lệnh cần để thực thi. Một phương pháp để so sánh hai thực hiện khác nhau của cùng một ISA. CPI cho mỗi loại lệnh này ABC CPI 1 2 3 5
- Phương trình hiệu suất Phương trình hiệu suất cơ bản là CPU time = Instruction_count x CPI x clock_cycle or Instruction_count x CPI CPU time = clock_rate Các phương trình này tách rời ba yếu tố chính ảnh hưởng đến hiệu suất. Có thể đo thời gian thực thi của CPU bằng cách chạy chương trình. Tốc độ clock thường được cho trước. Có thể đo tổng số lệnh bằng cách sử dụng các profiler/ simulator mà không cần biết mọi chi tiết của việc thực hiện. CPI thay đổi theo loại lệnh và việc thực hiện ISA, ta cần biết các chi tiết thực hiện của chúng. 7
- Thí dụ đơn giản Op Freq CPI i Freq x CPI i ALU 50% 1 . Load 20% 5 Store 10% 3 Branch 20% 2 Σ = Máy sẽ nhanh hơn bao nhiêu nếu cache dữ liệu tốt hơn làm giảm thời gian nạp trung bình đến 2 chu kỳ? Điều này so sánh ra sao với việc sử dụng dự đoán rẽ nhánh để lấy một chu kỳ khỏi thời gian rẽ nhánh ? Điều gì xảy ra nếu hai lệnh của ALU có thể được thực thi đồng thời ? 9
- So sánh và tóm tắt hiệu suất Ta tóm tắt hiệu suất ra sao đối với benchmark set có con số đơn? Trung bình của các thời gian thực thi, tỉ lệ thuận với thời gian thực thi tổng, là trị trung bình số học (AM). n Σ AM = 1/n Time i i = 1 th Trong đó Time i là thời gian thực thi của chương trình thứ i trong tổng n chương trình trong workload. Trị trung bình nhỏ chỉ ra thời gian thực thi trung bình nhỏ và như vậy cải thiện hiệu suất. Việc hướng dẫn nguyên tắc báo cáo các phép đo hiệu suất là khả năng tái sản xuất – liệt kê mọi thứ mà người thử nghiệm khác cần sao chép thí nghiệm (phiên bản của hệ điều hành, các thiết lập của trình biên dịch, tập đầu vào được sử dụng , cấu hình cụ thể của máy tính (tốc độ clock, kích thước của các cache và tốc độ, kích thước bộ nhớ và tốc độ, etc.)). 11
- Thí dụ phân loại SPEC 13
- Tóm tắt : Đánh giá ISA Đại lượng thời gian thiết kế: ISA có thể thực hiện được không , trong bao lâu , giá thành ? ISA có thể được lập trình không ? Có dễ biên dịch không ? Đại lượng tĩnh: Chương trình chiếm bao nhiêu byte trong bộ nhớ? Đại lượng động : Bao nhiêu lệnh được thực thi ? Bộ xử lý tìm nạp bao nhiêu byte để thực thi chương trình ? Bao nhiêu clock được cần đến cho mỗi lệnh ? Đại lượng tốt nhất : Thời gian để thực thi chương trình ! phụ thuộc vào tập lệnh , tổ chức của bộ CPI xử lý và các kỹ thuật biên dịch. . Inst. Count Cycle Time 15