Hãy cho ví dụ minh hoạ trường hợp nào hệ thống áp dụng ngắt (interrupt) cho thời gian chờ IO ngắn và trường hợp nào cho cho thời gian chờ IO dài (tham khảo Figure 3.7 trong tài liệu) Theo định luật Amdahl, tại sao số lượng CPU càng lớn vẫn không thể tăng tốc độ xử lý lên cao hơn. Chủ một cửa hàng nhận xét rằng trung bình có 10 khách hàng trong cửa hàng và thời gian trung bình mà mỗi khách hàng trong cửa hàng là 15 phút. Vậy trung bình có bao nhiêu khách hàng mỗi giờ đến cửa hàng?
Trang 1BÀI TẬP LỚN
Câu 1 Kiến trúc máy tính IAS được thiết kế theo đặc tả chuẩn gì?
Trang 2Kiến trúc máy tính IAS ( Princeton Institute for Advanced Studies ) được thiết kế theo đặc
tả chuẩn John Von Neumann trong đó một máy tính IAS bao gồm :
+ Một bộ nhớ chính, lưu trữ cả dữ liệu và hướng dẫn
+ Một đơn vị xử lý số học (ALU : Arithmetic And Logic Unit ) có khả năng điều khiển
để tính toán trên dữ liệu nhị phân
+ Bộ điều khiển dịch các tập lệnh trong bộ nhớ và thi hành, điều khiển hoạt động của các thiết bị vào ra
Trang 3+ Thiết bị đầu vào - đầu ra (I / O) do thiết bị điều khiển vận hành.
Chương trình được lưu trong bộ nhớ, bộ điều khiển sẽ lấy lệnh và biến đổi giá trị của dữ liệu trong phần bộ nhớ, bộ làm toán và luận lý (ALU: Arithmetic And Logic Unit) được điều khiển để tính toán trên dữ liệu nhị phân, điều khiển hoạt động của các thiết bị vào ra
Câu 2 Bộ nhớ cache là gì, nêu đặc điểm của cache.
- Bộ nhớ cache là một bộ nhớ nhỏ hơn, nhanh hơn, lưu trữ các bản sao dữ liệu từ các vị trí
bộ nhớ chính được sử dụng thường xuyên nhất để máy tính có thể truy cập lại dữ liệu ngay lập tức thay vì đọc lại dữ liệu từ nguồn ban đầu, nó là bộ nhớ bán dẫn có tốc độ nhanh và chúng được đặt giữa CPU và bộ nhớ chính nhằm tăng tốc truy xuất của CPU tới bộ nhớ chính
- Đặc điểm của bộ nhớ cache :
+ Nhiều lớp bộ nhớ giữa bộ xử lý và bộ nhớ chính
+ Thời gian truy cập nhỏ
+ Nhỏ hơn và nhanh hơn bộ nhớ chính
+ Trung gian giữa bộ nhớ chính và thanh ghi trong CPU
+ Được sử dụng để tăng tốc độ truy cập bộ nhớ bằng cách đặt vào bộ nhớ đệm dữ liệu từ
bộ nhớ chính có khả năng được sử dụng trong tương lai gần
+ Cải thiện hiệu suất lớn hơn có thể đạt được bằng cách sử dụng nhiều cấp bộ nhớ đệm, với cấp 1 (L1) gần lõi nhất và các cấp bổ sung (L2, L3, v.v.) xa dần với lõi
+ Cache có thể có hoặc không
Câu 3 Mô tả vị trí của bộ nhớ cache (gợi ý: xem Figure 1.2 trong tài liệu)
- Cache là bộ nhớ nằm ở phía bên trong của Processor Chip hoặc CPU
- Đối với hình 1.2 ở trên thì mức đầu tiên của bộ đệm là L1 gần nhất với mỗi lõi và có thể được truy cập ít nhất một lần trong một chu kỳ và sẽ phản hồi một lần truy cập đọc trong một số ít chu kỳ Bộ nhớ đệm L1 thường được phân chia giữa các truy cập lệnh (L1-I) và dữ liệu (L1-D) Bộ đệm L2 gần với mỗi lõi và gần L1 bộ đệm này thường là riêng tư hoặc được chia sẻ bởi một nhóm lõi Bộ nhớ đệm L2 thường chứa
Trang 4cả hướng dẫn và dữ liệu nhưng đôi khi được phân chia trong đó L2-D là riêng tư cho một lõi và L2-I được chia sẻ giữa một nhóm lõi Bộ nhớ đệm L3 nằm gần các lõi và
bộ đệm này thường được chia sẻ bởi tất cả các lõi trên bộ xử lý và lớn hơn nhiều so với dung lượng tổng hợp của tất cả L1 và L2
- Bộ nhớ cache nào nằm càng gần với đơn vị xử lý số học (ALU) thì lớp càng thấp, nằm càng xa thì lớp nó càng cao
- Bộ nhớ cache càng cao thì đường truy xuất từ (ALU) để lấy dữ liệu nó nhanh hơn so với việc là (ALU) phải lấy dữ liệu từ bộ nhớ bên ngoài và tính toán
Câu 4 Hãy cho ví dụ minh hoạ trường hợp nào hệ thống áp dụng ngắt (interrupt) cho thời gian chờ I/O ngắn và trường hợp nào cho cho thời gian chờ I/O dài (tham khảo Figure 3.7 trong tài liệu)
- Hình 3.7 (b) ( Thời gian chờ I/O ngắn) : 1, 2 ,3 là đoạn lệnh của chương trình cpu ;
3,4 là đoạn lệnh của I/O commad Đầu tiên sau khi chạy đoạn lệnh 1 gặp lệnh write nên chuyển sang đoạn lệnh 4 (I/O command) để chạy ( lúc này CPU không làm gì
cả ) không để CPU phải đợi nên chuyển về lại đoạn lệnh 2 để tiếp tục thực thi đoạn lệnh 2a của chương trình, sau đó khi đoạn lệnh 4(I/O command) đã hoàn thành thì CPU sẽ bị ngắt để chuyển qua đoạn lệnh 5(Interrupt Handler) để kết thúc lệnh write sau đó lại chuyển về đoạn lệnh 2b để tiếp tục chương trình , sau đó lại gặp lệnh write
số 2 nên lại chuyển sang đoạn lệnh 4 (I/O command) để chạy ( lúc này CPU không làm gì cả ) không để CPU phải đợi nên chuyển về lại đoạn lệnh 3a để tiếp tục thực thi đoạn chương trình chưa xong sau đó khi đoạn lệnh 4(I/O command) đã hoàn thành thì CPU sẽ bị ngắt để chuyển qua đoạn lệnh 5(Interrupt Handler) để kết thúc lệnh write số 2 sau đó lại chuyển về đoạn lệnh 3b vừa nảy để tiếp tục chương trình và khi gặp lệnh write số 3 thì tiếp tục lặp lại như trên
Trang 5- Hình 3.7 (c) ( Thời gian chờ I/O dài ) : sau khi chạy đoạn lệnh 1 gặp lệnh write
nên chuyển sang đoạn lệnh 4 (I/O command) để chạy ( lúc này CPU không làm gì
cả ) không để CPU phải đợi nên chuyển về lại đoạn lệnh 2 để tiếp tục , sau khi chạy đoạn lệnh 2 xong khi đó gặp lệnh write lúc này CPU phải đợi ( 4 chưa hoàn thành ) khi đoạn lệnh 4(I/O command) đã hoàn thành thì chuyển qua đoạn lệnh 5(Interrupt Handler) để kết thúc lệnh write , sau đó mới có thể thực hiện lệnh write số 2, tiếp tục chuyển sang đoạn lệnh số 4 (I/O command) để chạy không để CPU phải đợi nên chuyển về lại đoạn lệnh 3 để tiếp tục , sau khi chạy đoạn lệnh 3 xong khi đó CPU phải đợi( 4 chưa hoàn thành ) khi đoạn lệnh 4(I/O command) đã hoàn thành thì chuyển qua đoạn lệnh 5 (Interrupt Handler) để kết thúc lệnh write số 2 và khi gặp lệnh write số 3 thì tiếp tục lặp lại như trên
Câu 5 Nêu và giải thích các kỹ thuật thường dùng tăng tốc độ xử lý CPU.
- Pipelining( Kĩ thuật ống dẫn ): Bộ xử lý di chuyển dữ liệu hoặc hướng dẫn vào một đường ống khái niệm với tất cả các giai đoạn của quá trình xử lý đường ống đồng thời
- Dự đoán rẽ nhánh: Bộ xử lý nhìn trước mã lệnh được tìm nạp từ bộ nhớ và dự đoán các nhánh hoặc nhóm lệnh nào có khả năng được xử lý tiếp theo
- Thực thi siêu cấp (Superscalar execution) F : Đây là khả năng đưa ra nhiều hơn một lệnh trong mỗi chu kỳ xung nhịp của bộ xử lý (Trên thực tế, nhiều đường ống song song được sử dụng.)
- Phân tích luồng dữ liệu: Bộ xử lý phân tích các cấu trúc này phụ thuộc vào kết quả hoặc
dữ liệu của nhau để tạo ra một lịch trình hướng dẫn được tối ưu hóa
- Thực thi suy đoán: Sử dụng dự đoán nhánh và phân tích luồng dữ liệu, một số bộ xử lý thực thi các lệnh một cách phỏng đoán trước khi xuất hiện thực tế trong quá trình thực thi chương trình, giữ các kết quả ở các vị trí tạm thời, giữ cho các công cụ thực thi bận rộn nhất
có thể
Câu 6 Theo định luật Amdahl, tại sao số lượng CPU càng lớn vẫn không thể tăng tốc
độ xử lý lên cao hơn.
Trang 6- Theo giảng đồ Amadahl, f là số lượng của chương trình được xử lý song song nếu tăng số lượng CPU chỉ có 5% chương trình được xử lý song song thì tốc độ tăng không lên bao nhiêu gần như là bão hòa Tuy nhiên, nếu như 95% chương trình được
xử lý song song thì tốc độ tăng lên gần 20 lần nếu như tăng tốc độ CPU lên
( Nguồn : Sách Computer organization and Architecture Designing for Performance
tenth edition )
- Khi f nhỏ, việc sử dụng bộ xử lý song song có ít tác dụng
- Khi N tiến đến vô cùng, tốc độ tăng bị giới hạn bởi 1 / (1 - f), do đó khả năng xử lý giảm dần khi sử dụng nhiều bộ xử lý hơn
Vì trong chương trình luôn có một phần phải xử lý tuần tự Tăng số lượng CPU sẽ làm giảm thời gian xử lý những phần có thể chạy song song, tuy nhiên thời gian
xử lý phần yêu cầu tuần tự sẽ không giảm được => tốc độ xử lý chỉ có thể tăng tối
đa đến một mức nào đó (điểm giới hạn là vị trí mà tất cả các phần xử lý song song đều được hoàn thành trong một chu trình xử lý)
Câu 7 Để gia tăng băng thông kết nối giữa bộ xử lý và bộ nhớ, các phương pháp nào được sử dụng?
- Tăng băng thông kết nối giữa bộ xử lý và bộ nhớ bằng cách sử dụng các bus tốc độ cao hơn và hệ thống phân cấp các bus để đệm và cấu trúc luồng dữ liệu
Trang 7Câu 8 Lý thuyết hàng đợi (queuing) được áp dụng trong định luật Little như thế nào.
Lý thuyết hàng đợi (queuing): dùng để xác định và tìm các phương án tối ưu để hệ thống giải quyết các vấn đề tốt hơn
- Nếu máy chủ không hoạt động, lệnh đến sẽ được thực thi ngay lập tức, nếu máy chủ bận thì tất cả các lệnh đến hệ thống đều nằm trong hàng đợi
- Có thể có một hàng đợi cho một máy chủ hoặc cho nhiều máy chủ, hoặc nhiều hàng với một hàng cho mỗi máy chủ
Ví dụ:
- Khi một lệnh đến CPU thì phía trước CPU sẽ có L các lệnh đang chờ, thì lệnh đó sẽ nằm trong hàng đợi và chờ đến lượt mình được thực thi
- Khi một lệnh được thực thi rời khỏi hệ thống, nó sẽ để lại trung bìn h cùng một số lượng lệnh trong hệ thống cụ thể là L, vì L được định nghĩa là số lượng lệnh trung bình đang chờ
- Thời gian trung bình mà các lệnh trong hệ thống là W
- Các lệnh đến với tốc độ λ, Chúng ta có thể suy luận rằng trong thời gian W, tổng số các lệnh phải đến λW Điều này L=λW
Câu 9 Hãy cho biết công thức mô tả định luật Little và ý nghĩa các tham số trong công thức này.
Công thức mô tả định luật Little : L = λ.W
- Tốc độ của các lệnh đến với hệ thống trung bình là λ trên một đơn vị thời gian
- Thời gian trung bình mà các lệnh ở lại trong hệ thống là W đơn vị thời gian
- Trong hệ thống này có trung bình L đơn vị được xử lý cùng một khoảng thời gian
Câu 10 Chủ một cửa hàng nhận xét rằng trung bình có 10 khách hàng trong cửa hàng
và thời gian trung bình mà mỗi khách hàng trong cửa hàng là 15 phút Vậy trung bình
có bao nhiêu khách hàng mỗi giờ đến cửa hàng?
Trung bình có 10 khách hàng trong cửa hàng : L =10
Mỗi khách hàng trong cửa hàng là 15 phút : W = 15 phút = 14 giờ
L= λ W
10= 14.λ
λ=40
Vậy trung bình có 40 khách hàng mỗi giờ đến cửa hàng
Câu 11 Cho một chương trình máy tính thực hiện 2 triệu lệnh (instructions) dùng CPU 400-MHz Chương trình gồm có bốn loại lệnh khác nhau Các lệnh này có CPI và
tỷ lệ theo bảng như sau:
Trang 8CPI Clock cycles per instruction
Số chu kỳ xung clock cần để thực thi một lệnh
CPI = Tổng (Số lượng chỉ thị (hàng triệu) nhân Chu kỳ mỗi chỉ thị) chia tổng Số lượng chỉ thị (hàng triệu)
MIPS Million instructions per second
Một cách đo tốc độ thực thi của chương trình dựa trên số lượng triệu lệnh trên giây Yêu cầu: tính CPI trung bình và MIPS.
- CPI trung bình = ( 2 0,5 ) + (2 0,18 ) + (4 0,22 ) + ( 8 0,1 ) = 3,04
- MIPS = CPI 10 f 6 = 400 106
2,54 106 131,58
Câu 12 Xác định CPI trung bình của chương trình đo hiệu năng thực hiện của máy tính được chạy trên một bộ xử lý 50 MHz Chương trình có 110.000 lần thực hiện câu lệnh, với sự pha trộn nhiều loại lệnh và và số chu kỳ đồng hồ cần thực hiện lệnh là:
CPI trung bình là :
CPI=∑
i=1
n
(CPI i × I i)
110.000
CPI ≈ 1 45
Câu 13 Tính tỷ lệ MIPS và thời gian thực hiện chương trình trong câu 12.
Tỷ lệ MIPS :
- MIPS= f
CPI ×106
Trang 9¿ 50× 106
1.45× 106≈ 34
Thời gian thực hiện chương trình :
- T = I c ×CPI
f
Câu 14 Bảng sau đây hiển thị thời gian thực thi tính bằng giây cho năm chương trình
đo hiệu năng (benchmark) khác nhau trên ba máy tính.
Tính chỉ số tốc độ (speed metric) cho từng máy tính cho mỗi chương trình benchmark khi dùng máy tính R là máy tham chiếu (reference system) Tức là, các giá trị tỷ lệ cho
R đều bằng 1 Sau đó, tính toán giá trị trung bình cộng (arithmetic mean) cho mỗi máy tính.
Chỉ số tốc độ :
r i=Tre f i
Tsut i
Chuẩn hóa về R
Máy tính M : 1.71 1.19 0.43 1.11 2.10 Máy tính Z : 3.11 1.19 0.49 0.6 2.09
AM = Tổng chỉ số tốc độ chia tổng số chương trình của máy
Trung bình cộng máy tính M :
AM=1.71+1.19+0.43+1.11+2.105 =1.308
Trung bình cộng máy tính R :
AM=1+1+1+1+1
Trang 10Trung bình cộng máy tính Z :
AM=3.11+1.19+0.49+0.6+2.095 =1.496
Câu 15 Làm lại câu 14 với máy tính M.
Chỉ số tốc độ :
r i=Tre f i
Tsut i
Chuẩn hóa về M
Máy tính R : 0.59 0.84 2.32 0.90 0.48
Trung bình cộng máy tính M :
AM=1+1+1+1+1
Trung bình cộng máy tính R :
AM=0.59+0.84+2.32+0.90+0.485 =1.026
Trung bình cộng máy tính Z :
AM=1.82+1+1.13+0.54 +1
Câu 16 Máy tính nào chậm nhất sau khi có kết quả thực hiện câu 14, 15.
Sau khi có kết quả câu 14 thì máy tính chậm nhất là máy tính R Sau khi có kết quả câu 15 thì máy tính chậm nhất là máy tính M
Câu 17 Làm lại câu 14, 15 bằng cách sử dụng trung bình nhân.
Chuẩn hóa về R
Máy tính M : 1.71 1.19 0.43 1.11 2.10 Máy tính Z : 3.11 1.19 0.49 0.6 2.09
Trang 11GM = Căn bậc n của tích các chỉ số tốc độ
n là tổng số chương trình
Trung bình nhân của máy tính R
Trung bình nhân của máy tính M
Trung bình nhân của máy tính Z
GM =√53.11× 1.19× 0.49 ×0.6× 2.09=1.18
Chuẩn hóa về M
Máy tính R : 0.59 0.84 2.32 0.90 0.48
Trung bình nhân của máy tính M
Trung bình nhân của máy tính R
GM =√50.59× 0.84 ×2.32 × 0.90× 0.48=0.87
Trung bình nhân của máy tính Z
GM =√51.82×1×1.13 × 0.54 ×1=1.02
Câu 18 Máy tính nào chậm nhất sau khi có kết quả thực hiện câu 17.
- Sau khi có kết quả thực hiện câu 17 thì máy tính chậm nhất là máy tính R
Câu 19 Xét hai máy tính với hai tập lệnh khác nhau, cả hai đều có một tốc độ đồng
hồ là 100 MHz Xác định chỉ số CPI và tỷ lệ MIPS.
Các phép đo sau đây được ghi lại trên hai máy chạy một tập hợp các chương trình đo hiệu năng thực hiện của máy tính :
Trang 12CPI A=∑
i=1
n
CPI i × I i
MIPS A= f
CPI A × 106= 100 × 106
1.57 × 106≈ 63 CPI B=∑
i=1
n
CPI i × I i
MIPS B= f
CPI B ×106= 100× 106
1.5× 106 ≈ 66
Câu 20 Tính thời gian thực hiện chương trình trong câu 19 Cho nhận xét về kết quả.
Thời gian thực hiện chương trình Máy A :
T A=I c ×CPI A
6×1.57
Thời gian thực hiện chương trình Máy B :
T B=I c × CPI f B = 16×106×1.5
Nhận xét : Mặc dù máy B có MIPS cao hơn máy A, nhưng nó cần thời gian thực hiện chương trình lâu hơn để thực thi bộ chương trình điểm chuẩn (hướng dẫn) tương tự
Câu 21 Một bộ vi xử lý có câu lệnh trực tiếp giảm giá trị bộ nhớ (trừ 1 cho giá trị bộ nhớ) Lệnh này có năm giai đoạn: nạp mã lệnh (4 chu kỳ đồng hồ bus), nạp địa chỉ toán hạng (3 chu kỳ), nạp toán hạng (3 chu kỳ), toán hạng trừ 1 (2 chu kỳ), và lưu toán hạng (3 chu kỳ) Hãy cho biết phần trăm thời gian thực hiện lệnh này sẽ gia tăng
là bao nhiêu nếu hệ thống phải chèn một trạng thái chờ bus cho từng hoạt động đọc
và ghi bộ nhớ.
Có 4 trạng thái chờ được thêm vào, vì có 4 hoạt động bộ nhớ xử lý việc đọc và ghi 15 chu
kỳ cho lệnh :
- 4 chu kỳ đồng hồ bus để nạp mã lệnh
Trang 13- 3 chu kỳ để nạp địa chỉ toán hạng.
- 3 chu kỳ để nạp toán hạng
- 2 chu kỳ để toán hạng trừ 1
- 3 chu kỳ để lưu toán hạng
Phần trăm thời gian thực hiện lệnh này sẽ gia tăng là : 154 100 = 26,67%
Câu 22 Xét bộ xử lý 32 bit, trong đó mã lệnh 32 bit bao gồm 2 trường: byte đầu tiên chứa mã lệnh và phần còn lại chứa toán hạng và toán tử Bộ nhớ tối đa của bộ xử lý là bao nhiêu (tính theo byte).
Bộ nhớ tối đa của bộ xử lý là:
2(32−8)=224=16777216 byte = 16 MB ( 8 bit = 1 byte chứa mã lệnh )
Câu 23 Xét bộ xử lý có 16 bit địa chỉ (giả sử thanh ghi địa chỉ và bộ đếm chương trình có độ rộng 16 bits) và bus dữ liệu 16-bit Xác định bộ nhớ tối đa của bộ xử lý nếu kết nối với bộ nhớ 16-bit.
Bộ nhớ tối đa của bộ xử lý nếu kết nối với bộ nhớ 16-bit là :
216=6 4 Kbyte
Câu 24 Hãy cho biết 3 đặc điểm quan trọng của Liên kết nối nhanh (QuickPath Interconnect - QPI).
QPI là đường bus nối từ CPU đến I/O hub Nó là một bus 2 chiều rộng 20-bit được tích
hợp ngay vào trong CPU mỗi chiều đều là một đường 20 bits nhờ vậy QPI cho phép truyền/nhận đồng thời 20 bits cùng lúc Trong 20 bits này thì chỉ có 16 bits data còn 4 bits gọi là overhead bits dùng cho các mục đích kiểm tra và sửa lỗi
- Nhiều kết nối trực tiếp (Multiple direct connections) : Các kết nối từng cặp trực tiếp tới các thành phần khác giúp loại bỏ việc phân xử thường thấy trong các hệ thống truyền dẫn chia sẻ
- Kiến trúc giao thức phân lớp (Layered protocol architecture) : Các kết nối của bộ xử lý sử dụng kiến trúc giao thức phân lớp chứ không chỉ đơn giản sử dụng tín hiệu điều khiển thường thấy trong sắp xếp các bus chia sẻ
- Truyền dữ liệu đóng gói (Packetized data transfer) : Dữ liệu được gửi thành 1 chuỗi các gói chứa tiêu đề điều khiển (header) và mã kiểm soát lỗi
Câu 25 Nêu 4 trường hợp xảy ra ngắt ở bộ xử lý (gợi ý: tham khảo Table 3.1 trong tài liệu).
- Ngắt chương trình: Gây ra bởi lỗi thi hành lệnh, ví dụ như tràn số học, lỗi chia cho 0, cố tình thực hiện các lệnh máy không hợp lệ, hoặc tham chiếu ngoài phạm vi bộ nhớ mà người
sử dụng được phép