Khoa KH & KT Khoa thuaä ä moânmoân KyõKyõ thua BoBoä

KH & KT MMááyy ttíínhnh ùyy ttíínhnh ätt MaMaù

PhaPhaïïmm TTööôôøøngng HaHaûûii Nguyeãn QuoQuoáácc TuaTuaáánn Nguyeãn

Tài liệu tham khảo

(cid:41) “Computer Organization and Design: the hardware/software

interface”, John L. Hennessy & David A. Patterson, Second Edition, MORGAN KAUFMANN PUBLISHERS, INC. 1998

(cid:41) “Computer Architecture: a quantitative approach”,

2

John L. Hennessy & David A. Patterson, Third Edition, MORGAN KAUFMANN PUBLISHERS, INC. 2002

Kiến trúc Máy tính - Chap 02

Chương 2.

3

Kiến trúc Máy tính - Chap 02

2.1 Dẫn nhập

(cid:41) 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 ?

(cid:41) 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

(cid:41) 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

(cid:214) được cả người bán lẫn người mua quan tâm ! (cid:41) Hiệu suất càng được các nhà thiết kế máy tính (trong đó

4

có chúng ta ☺ !) quan tâm

Kiến trúc Máy tính - Chap 02

• 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

(cid:41) Việc đánh giá hiệu suất máy tính không hề đơn giản

(cid:41) Ở góc độ nhà thiết kế máy tính (phần cứng/phần mềm),

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

5

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

Kiến trúc Máy tính - Chap 02

...

• 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

(cid:41) Định nghĩa về hiệu suất

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:

(cid:42) Máy bay có tốc độ cao nhất ? (cid:42) Máy bay có dung lượng lớn nhất ? (cid:42) Máy bay chuyên chở nhanh nhất ?

6

Kiến trúc Máy tính - Chap 02

...

• 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 (cid:214) 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 (cid:214) 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 ? (cid:42) Thay CPU hiện hành bằng 1 CPU nhanh hơn (cid:42) 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)

7

Kiến trúc Máy tính - Chap 02

...

• Trước tiên chúng ta đánh giá hiệu suất thông qua thời gian thực

thi (cid:42) 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 (cid:42) Quan hệ giữa hiệu suất và thời gian thực thi ở máy tính X sẽ là

Performanc

e

=

X

1 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

Performanc

e

X

n

=

Performanc

e 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 ?

8

Kiến trúc Máy tính - Chap 02

2.2 Đo đạc hiệu suất

(cid:41) Thời gian được sử dụng làm thước đo cho hiệu suất

máy tính

(cid:41) Tuy nhiên thời gian ở đây được định nghĩa theo nhiều

(response time) (elapsed time)

cách khác nhau, tùy theo mục đích đo đạc • Thời gian theo đồng hồ • Thời gian đáp ứng • Thời gian trôi qua

(cid:41) 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

(cid:214) Có thể chỉ giới hạn xem xét đối với CPU mà thôi

9

(cid:41) 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...)

Kiến trúc Máy tính - Chap 02

...

(cid:41) 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

(cid:41) Thí dụ đo đạc thời gian khi thực thi lệnh time trên hệ

điều hành Unix

user CPU time

phần trăm thời gian có ích

system CPU time

elapsed time

90.7u 12.9s 2 : 39 65%

(cid:213) (cid:213) thời gian trôi qua thời gian CPU

10

(cid:41) Hiệu suất hệ thống (cid:41) Hiệu suất CPU (cid:41) 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

2.3 Liên quan đến các hệ đo

=

Clock cycle time

×

CPU execution time for a program

CPU clock cycles for program

(cid:41) Tính CPU time theo xung đồng hồ

CPU clock cycles for a program

=

CPU execution time for a program

Clock rate

hay

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 ?

11

(cid:41) Thí dụ:

Kiến trúc Máy tính - Chap 02

...

(cid:41) CPI (clock cycle per instruction) (cid:214) số chu kỳ clock

CPI

CPU clock cycles

=

×

Instructions for a program

trung bình cần thiết để thực thi 1 câu lệnh

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 ?

12

(cid:41) Thí dụ:

Kiến trúc Máy tính - Chap 02

...

(cid:41)Tính CPU time theo CPI

CPU time =

CPI

Clock cycle time

Instruction count ×

×

CPI

Instruction count ×

CPU time =

Clock rate

(cid:41) Đơ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

?

13

Kiến trúc Máy tính - Chap 02

...

CPU

clock

cycle

(cid:41) Tập lệnh có thể được phân chia thành các nhóm lệnh (cid:41) Có thể tính toán hiệu suất

)

i C ×

i

n ( CPI = ∑ 1 i =

theo các nhóm lệnh

Nhóm lệnh A

CPI 1

B

2

3

C

Xét 1 máy tính có đặc điểm tập lệnh như sau: 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

(cid:41) Thí dụ:

Mã lệnh

Số câu lệnh theo nhóm lệnh B

C

A

Compiler 1

1

2

2

Compiler 2

1

1

4

Đ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 ?

14

Kiến trúc Máy tính - Chap 02

...

(cid:41) Một chỉ số hiệu suất khác là MIPS (million instructions

Instruction count

MIPS =

Execution time

106

×

per second)

(cid:41) Thí dụ:

Cũng với thí dụ vừa rồi, xét bảng số liệu sau

Mã lệnh

Số câu lệnh (109) theo nhóm lệnh B

A

C

Compiler 1

5

1

2

Compiler 2

10

1

1

15

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

2.4 Chọn chương trình để đo

(cid:41) 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

(cid:41) 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 (cid:41) 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 (cid:214) 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 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, ...

16

(cid:41) Các thể loại benchmark

Kiến trúc Máy tính - Chap 02

2.5 So sánh và tổng hợp hiệu suất

(cid:41) 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 (cid:214) cần phải tổng hợp kết quả

(cid:41) 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

(cid:41) Sử dụng giá trị trung bình (mean) để tổng hợp và so

sánh hiệu suất

R

=

1 n

n ∑ iR 1 i =

m

R

=

(cid:41) Trung bình số học (arithmetic mean)

(cid:41) Trung bình hài

1 iR

⎛ ⎜ ⎝

⎞ ⎟ ⎠

n ∑ 1

R

1 nR

(harmonic mean)

n ∏= 1

17

(cid:41) Trung bình hình học (geometric mean)

Kiến trúc Máy tính - Chap 02

...

(cid:41) Sử dụng giá trị trung bình nào cho thích hợp ?

(cid:41) Thí dụ:

Máy A

Máy B

Máy C

2

1

4

3

5

2

C. trình P1 C. trình P2

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

18

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

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

19

(cid:41) 2.1 , 2.2 , 2.3 , 2.4 (cid:41) 2.10 , 2.13 (cid:41) 2.15 , 2.18 (cid:41) 2.26

Kiến trúc Máy tính - Chap 02