Xem mẫu
- Khoa KH & KT Máy tính
Khoa
Boä moân Kyõ thuaät Maùy tính
Phaïm Töôøng Haûi
ng
Nguyeãn Quoác Tuaán
- Tài liệu tham khảo
“Computer Organization and Design: the hardware/software
interface”,
John L. Hennessy & David A. Patterson, Second Edition,
MORGAN KAUFMANN PUBLISHERS, INC. 1998
“Computer Architecture: a quantitative approach”,
John L. Hennessy & David A. Patterson, Third Edition,
MORGAN KAUFMANN PUBLISHERS, INC. 2002
Kiến trúc Máy tính - Chap 02 2
- Chương 2.
Kiến trúc Máy tính - Chap 02 3
- 2.1 Dẫn nhập
Làm sao để có thể đo đạc, đánh giá hiệu suất
(performance) và định ra được những yếu tố quyết định
đến hiệu suất của 1 máy tính ?
Lý do chính để khảo sát về hiệu suất là vì hiệu suất của
phần cứng máy tính thường là yếu tố mấu chốt quyết
định đến tính hiệu quả trong hoạt động của 1 một hệ
thống bao gồm cả phần cứng lẫn phần mềm
Hiệu suất luôn là một thuộc tính quan trọng trong việc
lựa chọn, mua bán các máy tính
được cả người bán lẫn người mua quan tâm !
Hiệu suất càng được các nhà thiết kế máy tính (trong đó
có chúng ta ☺ !) quan tâm
Kiến trúc Máy tính - Chap 02 4
- …
Việc đánh giá hiệu suất máy tính không hề đơn giản
• Hiệu suất không chỉ có được do các cải tiến phần cứng mà cũng
có thể nhờ vào các phần mềm thông minh hay cả hai
• Tùy góc độ ứng dụng khác nhau, hiệu suất hoàn toàn có thể
được đánh giá theo những phương cách, những chỉ số khác
nhau
Ở góc độ nhà thiết kế máy tính (phần cứng/phần mềm),
chúng ta cần nắm rõ
• Các vấn đề liên quan đến việc đánh giá hiệu suất máy tính
• Hoạt động của các thành phần khác nhau (phần cứng/phần
mềm) và ảnh hưởng của chúng đến hiệu suất
• Trong mỗi ứng dụng cụ thể, xác định phương pháp đánh giá hiệu
suất phù hợp
Kiến trúc Máy tính - Chap 02 5
- ...
Định nghĩa về hiệu suất
• Khi ta nói “máy tính này có hiệu suất cao hơn máy tính kia”, điều
đó mang ý nghĩa gi ?
• Chúng ta xem xét thí dụ sau đây
Airplane Passenger capacity Cruising range (mile) Cruising speed (m.p.h)
Boeing 777 375 4630 610
Boeing 747 470 4150 610
BAC/Sud Concorde 132 4000 1350
Douglas DC-8-50 146 8720 644
thử xác định máy bay có hiệu suất cao nhất trong trường hợp:
Máy bay có tốc độ cao nhất ?
Máy bay có dung lượng lớn nhất ?
Máy bay chuyên chở nhanh nhất ?
Kiến trúc Máy tính - Chap 02 6
- ...
• Khi chúng ta chạy cùng 1 chương trình trên 2 máy trạm
(workstation) khác nhau, ta kết luận máy nhanh hơn là máy có
thể kết thúc thực thi chương trình sớm hơn
thời gian đáp ứng (response time) hay thời gian thực thi
(execution time), là thời gian từ khi bắt đầu đến khi kết thúc
chương trình
• Khi so sánh 2 hệ thống máy tính với nhau, ta kết luận hệ thống
nhanh hơn là hệ thống hoàn tất thực thi nhiều chương trình hơn
trong cùng một ngày
throughput , là tổng số các chương trình thực thi xong trong
một đơn vị thời gian
• Thay đổi nào sau đây ảnh hưởng đến thời gian thực thi,
throughput hoặc cả hai ?
Thay CPU hiện hành bằng 1 CPU nhanh hơn
Tăng số lượng CPU trong 1 máy chủ (server) có nhiều CPU (giả sử
mỗi chương trình được thực thi trên 1 CPU)
Kiến trúc Máy tính - Chap 02 7
- ...
• Trước tiên chúng ta đánh giá hiệu suất thông qua thời gian thực
thi
Cực đại hóa hiệu suất đồng nghĩa với tối thiểu hóa thời gian thực thi
Quan hệ giữa hiệu suất và thời gian thực thi ở máy tính X sẽ là
1
Performance =
X Execution time
X
• Ta nói máy tính X có hiệu suất cao hơn máy tính Y n lần đồng
nghĩa với máy tính X nhanh hơn máy tính Y n lần
Performance
X =n
Performance
Y
• Thí dụ: nếu máy tính A thực thi chương trình mất 10s và máy
tính B thực thi cùng chương trình mất 15s, A nhanh
hơn B bao nhiêu lần ?
Kiến trúc Máy tính - Chap 02 8
- 2.2 Đo đạc hiệu suất
Thời gian được sử dụng làm thước đo cho hiệu suất
máy tính
Tuy nhiên thời gian ở đây được định nghĩa theo nhiều
cách khác nhau, tùy theo mục đích đo đạc
• Thời gian theo đồng hồ
• Thời gian đáp ứng (response time)
• Thời gian trôi qua (elapsed time)
Các máy tính hoạt động theo nguyên lý chia thời gian
(timesharing), bộ xử lý làm việc đồng thời cho nhiều
chương trình
Thời gian thực thi chương trình bao gồm thời gian thực
thi bởi CPU lẫn các thiết bị khác (bộ nhớ, đĩa cứng,
v.v...)
Có thể chỉ giới hạn xem xét đối với CPU mà thôi
Kiến trúc Máy tính - Chap 02 9
- ...
Có thể đo đạc hiệu suất qua thời gian thực thi của CPU
(CPU execution time) hay còn gọi là thời gian CPU (CPU
time)
• User CPU time
• System CPU time
Thí dụ đo đạc thời gian khi thực thi lệnh time trên hệ
điều hành Unix
90.7u 12.9s 2 : 39 65%
user CPU time phần trăm thời gian có ích
system CPU time elapsed time
Hiệu suất hệ thống thời gian trôi qua
Hiệu suất CPU thời gian CPU
Thời gian còn có thể đo thông qua xung đồng hồ (clock)
Kiến trúc Máy tính - Chap 02 10
- 2.3 Liên quan đến các hệ đo
Tính CPU time theo xung đồng hồ
CPU execution time CPU clock cycles
×
= Clock cycle time
for a program for program
hay
CPU clock cycles for a program
CPU execution time
=
for a program Clock rate
Thí dụ:
Thời gian thực thi chương trình trên máy tính A, tần số
400MHz, là 10s. Chúng ta muốn thiết kế máy tính B có thể
thực thi chương trình trên trong 6s. Để đạt được điều này, cần
phải tăng tần số clock của máy B và vì vậy số chu kỳ clock
thực thi chương trinh bị tăng lên 1,2 lần.
Hãy xác định tần số clock của máy B ?
Kiến trúc Máy tính - Chap 02 11
- ...
CPI (clock cycle per instruction) số chu kỳ clock
trung bình cần thiết để thực thi 1 câu lệnh
Instructions for a
× CPI
CPU clock cycles =
program
Thí dụ:
Xét 2 máy tính A và B có cùng kiến trúc tập lệnh. Máy A có chu
kỳ clock là 1ns và đạt được CPI là 2,0 khi chạy chương trình P.
Máy B có chu kỳ clock là 2ns và đạt được CPI bằng 1,2 khi
chạy chương trình P.
Máy nào thực thi chương trình P nhanh hơn và nhanh hơn
bao nhiêu lần ?
Kiến trúc Máy tính - Chap 02 12
- ...
Tính CPU time theo CPI
= Instruction count × CPI × Clock cycle time
CPU time
Instruction count × CPI
CPU time =
Clock rate
Đơn vị đo
Tham số Đơn vị đo Cách đo
Thời gian CPU thực thi chương trình giây ?
Số câu lệnh số nguyên ?
CPI số nguyên ?
Chu kỳ clock giây ?
Kiến trúc Máy tính - Chap 02 13
- ...
Tập lệnh có thể được phân chia thành các nhóm lệnh
n
Có thể tính toán hiệu suất CPU clock cycle = ∑ (CPI × C )
i i
theo các nhóm lệnh i =1
Nhóm lệnh CPI
A 1
Thí dụ: B 2
Xét 1 máy tính có đặc điểm tập lệnh như sau: C 3
Khi biên dịch cùng 1 chương trình nguồn bằng 2 compiler khác
nhau, ta được 2 đoạn mã lệnh như sau
Mã lệnh Số câu lệnh theo nhóm lệnh
A B C
Compiler 1 2 1 2
Compiler 2 4 1 1
Đoạn mã nào thực hiện nhiều câu lệnh hơn ? chạy nhanh hơn ?
Tính CPI cho từng đoạn mã lệnh ?
Kiến trúc Máy tính - Chap 02 14
- ...
Một chỉ số hiệu suất khác là MIPS (million instructions
per second) Instruction count
MIPS =
× 106
Execution time
Thí dụ:
Cũng với thí dụ vừa rồi, xét bảng số liệu sau
Số câu lệnh (109) theo nhóm lệnh
Mã lệnh
A B C
Compiler 1 5 1 2
Compiler 2 10 1 1
giả sử máy trên có tần số clock là 500MHz.
Cho biết đoạn mã nào thực thi nhanh hơn nếu tính theo
thời gian thực thi ? nếu tính theo MIPS ?
Kiến trúc Máy tính - Chap 02 15
- 2.4 Chọn chương trình để đo
Tập hợp các chương trình tiêu biểu mà người sử dụng
phải thực thi hàng ngày được gọi là workload
Có thể đánh giá hiệu suất của 2 máy tính bằng cách đo
thời gian thực thi cùng 1 workload của 2 máy tính này
Trong thực tế, không phải người sử dụng máy tính nào
cũng có thể xác định được workload để đánh giá hiệu
suất máy tính của mình
dựa vào các chương trình mà người ta hy vọng có thể
làm workload trong một số trường hợp, các benchmark
Các thể loại benchmark
• Các chương trình ngắn: érastosthène, puzzle, sort, ...
• Các nhân chương trình: Livermore, Linpack, ...
• Các ứng dụng thực tế: Spec, Splash, ...
• Các chương trình tổng hợp: Whetstone, Dhrystone, ...
Kiến trúc Máy tính - Chap 02 16
- 2.5 So sánh và tổng hợp hiệu suất
Việc đo đạt hiệu suất được thực hiện trên một tập hợp
nhiều chương trình cần phải tổng hợp kết quả
Kết quả tổng hợp phải có thể được sử dụng để so sánh
hiệu suất giữa nhiều máy tính với nhau
Sử dụng giá trị trung bình (mean) để tổng hợp và so
sánh hiệu suất
1n
Trung bình số học (arithmetic mean) R = ∑ Ri
n i =1
m
R=
Trung bình hài n
∑ ⎛ 1R ⎞
⎜ ⎟
(harmonic mean) ⎝ ⎠
i
1
Trung bình hình học n 1
R=∏ Rn
(geometric mean) 1
Kiến trúc Máy tính - Chap 02 17
- ...
Sử dụng giá trị trung bình nào cho thích hợp ?
Thí dụ:
Cho cả 3 máy tính A, B và C thực thi lần lượt các
chương trình P1 , P2 người ta đo được các CPI theo
bảng sau
Máy A Máy B Máy C
C. trình P1 2 1 4
C. trình P2 3 5 2
So sánh hiệu suất các máy trên và cho biết chúng hơn
kém nhau bao nhiêu lần ?
Kiến trúc Máy tính - Chap 02 18
- Bài tập
“Computer Organization and Design: the hardware/software
interface”,
John L. Hennessy & David A. Patterson, Second Edition,
MORGAN KAUFMANN PUBLISHERS, INC. 1998
2.1 , 2.2 , 2.3 , 2.4
2.10 , 2.13
2.15 , 2.18
2.26
Kiến trúc Máy tính - Chap 02 19
nguon tai.lieu . vn