Câu hỏi ôn tập và đáp án chương 3, 4
Trang 1M C L C ỤC LỤC ỤC LỤC
CHƯƠNG 3 3
CÂU 1: Trình bày về Định luật grosch 3
Câu 2: Trình bày Định luật Amdahl 5
Câu 3: Trình bày Định Luật Gustafson-Barsis 7
CHƯƠNG 4 8
Câu 1: Trình bày các cách phân loại hệ thống bộ nhớ dùng chung 8
Câu 2: Trình bày cấu trúc và đặc điểm hệ thống truy cập bộ nhớ đồng đều (UMA) 9
Câu 3: Trình bày đặc điểm, cấu trúc Bộ nhớ truy cập không đồng đều (NUMA) 11
Câu 4: Trình bày các hệ đa xử lý dựa trên BUS 13
Câu 5: Trình bày sự tương hợp bộ nhớ Cache 15
Câu 6: Trình bày sự tương hợp cache- cache 16
Câu 7: Trình bày tính tương hợp của hệ thống bộ nhớ dùng chung 17
Câu 8: Trình bày giao thức Write-Update và Write- Back 19
BÀI TẬP CHƯƠNG 3 21
Bài tập ví dụ câu 4(Chương 4) 26
Trang 3CHƯƠNG 3 CÂU 1: Trình bày về Định luật grosch
toán và giá thành theo quy luật Grosch được biểu diễn trong hình 3.2
Hình 3.2 Mối quan hệ công suất và giá thành theo định luật Grosch
Theo định luật Grosch, để bán một máy tính với giá cao gấp đôi, thì côngsuất của nó phải nhanh gấp 4 lần Ngoài ra, để làm một phép tính rẻ gấp 2 lần,người ta phải làm cho công suất của máy tính đó chậm hơn bốn lần Với nhữngtiến bộ về máy tính, thì dễ dàng thấy rằng định luật Grosch dễ bị loại bỏ, và theothời gian chúng ta có thể phát triển những máy tính với công suất nhanh hơn và
Trang 5Câu 2: Trình bày Định luật Amdahl
Như chúng ta đã biết hệ số tăng tốc của một hệ thống song song là tỷ lệgiữa thời gian thực hiện bởi một bộ đơn xử lý nhằm giải quyết một phép toán vớithời gian thực hiện bởi một hệ thống song song bao gồm n bộ vi xử lý để giảiquyết bài toán tương tự
tỷ lệ với kích thước, n Tuy nhiên, thực tế cho thấy một số thuật toán song songthực có một phần là một hàm của n Chúng ta hãy giả sử f là một hàm của n saocho:
Rõ ràng, điều này mâu thuẫn với định luật Amdahl Do đó có thể đạt được
Trang 6Chẳng hạn, chúng ta hãy xét bài toán kỹ thuật điển hình là phép nhân một
ma trận vuông lớn A(m x m) với một vector X(m) để được một véc tơ, có nghĩa
là, C(m) = A (m x m) x X(m) Giả sử thêm rằng việc giải một bài toán như vậyđược thực hiện dựa trên một kiến trúc cây nhị phân bao gồm n nút (các bộ xửlý) Ban đầu, nút gốc lưu trữ vector X (m) và ma trận A (mxm) được phân tántheo hàng trong n bộ vi xử lý sao cho số hàng tối đa trong bất kỳ bộ vi xử lý nào
là
m
n +1 Một thuật toán đơn giản để thực hiện tính toán như vậy bao gồm ba
bước sau đây:
1 Nút gốc sẽ gửi vector X(m) tới tất cả các bộ vi xử lý O(m log n)
Amdahl, một phép toán cỡ lớn như vậy có thể đạt được tốc độ tăng tuyến tính
Trang 7Câu 3: Trình bày Định Luật Gustafson-Barsis
Trả lời:
Trong quá trình rút ra định luật của mình, Gustafson thừa nhận rằng mộtphần tác vụ không chia được trong một thuật toán nhất định có thể không đượcbiết trước Họ cho rằng trong thực tế, kích thước bài toán tỉ lệ với số bộ vi xử lý
n Điều này mâu thuẫn với các nội dung cơ bản của định luật Amdahl Nhưchúng ta đã biết định luật Amdahl giả sử rằng lượng thời gian dành cho cácphần của chương trình có thể được thực hiện song song, (1 - f), không phụthuộc vào số bộ vi xử lý, n Gustafson và Brasis mặc nhiên công nhận rằng khi
sử dụng một bộ xử lý mạnh hơn, phép toán có xu hướng sử dụng nhiều tàinguyên hơn Họ nhận thấy rằng trong gần đúng bậc nhất, phần song song củachương trình, không phải phần nối tiếp, tỷ lệ với kích thước bài toán Họ chorằng nếu s và p là các đại lượng tương ứng biểu diễn thời gian nối tiếp và song
song trên một hệ thống song song, thế thì s + p × n là thời gian cần thiết để một
bộ xử lý nối tiếp thực hiện tính toán Do đó họ đưa vào một hệ số mới, được gọi
là hệ số tăng tốc tỷ lệ, SS (n), có thể được tính như sau:
Trang 8CHƯƠNG 4
Câu 1: Trình bày các cách phân loại hệ thống bộ nhớ dùng chung
Hệ thống bộ nhớ dùng chung đơn giản bao gồm một mô-đun bộ nhớ (M) cóthể do hai bộ vi xử lý truy cập (P1 và P2) Yêu cầu đến các mô-đun bộ nhớ thôngqua hai cổng của nó Một khối phân xử trong các mô-đun bộ nhớ cho các yêucầu đến bộ điều khiển bộ nhớ Nếu các mô-đun bộ nhớ không bận và một yêucầu đến, thì khối phân xử cho yêu cầu đó vào bộ điều khiển bộ nhớ và các yêucần được đáp ứng Các mô-đun được đặt ở trạng thái bận trong khi một yêu cầuđang được xử lý Nếu một yêu cầu mới đến trong khi bộ nhớ đang bận phục vụ(xử lý) một yêu cầu trước đó, các mô-đun bộ nhớ sẽ gửi một tín hiệu chờ, qua
bộ điều khiển bộ nhớ, đến bộ xử lý thực hiện một yêu cầu mới Đáp lại, bộ xử lýyêu cầu có thể giữ yêu cầu của nó trên hàng cho đến khi bộ nhớ rỗi hoặc nó cóthể lặp lại yêu cầu một thời gian sau đó Nếu khối phân xử nhận hai yêu cầu, thì,
nó chọn một trong hai yêu cầu đó và cho vào bộ điều khiển bộ nhớ Một lần nữa,yêu cầu bị từ chối có thể được giữ lại để xử lý sau hoặc nó có thể được lặp lạivào một thời điểm sau đó Dựa trên mạng liên thông được sử dụng, hệ thống bộnhớ dùng chung có thể được phân loại như sau:
- Truy cập bộ nhớ đồng đều (UMA)
- Bộ nhớ truy cập không đồng đều(NUMA)
- Kiến thức bộ nhớ chỉ dùng Cache (COMA)
Trang 9Câu 2: Trình bày cấu trúc và đặc điểm hệ thống truy cập bộ nhớ đồng đều (UMA)
Trong hệ thống UMA, một bộ nhớ dùng chung có thể được tất cả các bộ xử lýtruy cập qua một mạng liên thông tương tự như một bộ xử lý truy cập bộ nhớcủa nó Tất cả các bộ vi xử lý có thời gian truy cập như nhau vào bất kỳ vị trí nhớnào Mạng liên thông được sử dụng trong UMA có thể là bus đơn, đa bus, haymột chuyển mạch điểm chéo Vì truy cập vào bộ nhớ dùng chung được cânbằng, các hệ thống này còn được gọi là SMP(hệ đa xử lý đối xứng) Mỗi bộ xử lý
có cơ hội bình đẳng để đọc / ghi vào bộ nhớ, kể cả tốc độ truy cập cũng bằngnhau Các ví dụ thương mại của SMPS là các server đa xử lý Sun Microsystems
và Silicon Graphics Inc Một máy tính SMP cấu trúc bus điển hình, như biểudiễn trong hình 4.3, có nhiệm vụ giảm tranh chấp cho bus bằng cách lấy (truycập, truy xuất) lệnh và dữ liệu trực tiếp từ mỗi cache riêng biệt, càng nhiều càngtốt Trong những trường hợp đặc biệt, sự tranh chấp bus có thể giảm đến khôngsau khi các bộ nhớ cache được tải từ bộ nhớ toàn cục, bởi vì có thể tất cả cáclệnh và dữ liệu hoàn toàn được chứa trong bộ nhớ cache Tổ chức bộ nhớ nàyphổ biến nhất trong số các hệ thống bộ nhớ dùng chung Ví dụ về kiến trúc này
là các server Sun Starfire , seri HP V, và Compaq AlphaServer GS
Hình 4.2 Bộ nhớ dùng chung qua hai cổng
Trang 10Hình 4.3 Hệ thống bộ nhớ dùng chung UMA dựa trên bus (SMP).
Trang 11Câu 3: Trình bày đặc điểm, cấu trúc Bộ nhớ truy cập không đồng đều
(NUMA)
Trong hệ thống Numa, mỗi bộ xử lý có một phần bộ nhớ dùng chung đi kèm
Bộ nhớ có một không gian địa chỉ duy nhất Vì vậy, bất kỳ bộ vi xử lý nào cũng
có thể truy cập vào bất kỳ vị trí bộ nhớ nào một cách trực tiếp sử dụng địa chỉthực của nó Tuy nhiên, thời gian truy cập vào các module phụ thuộc vào khoảngcách đến bộ xử lý Điều này dẫn đến thời gian truy cập bộ nhớ không giốngnhau Một số kiến trúc được sử dụng để kết nối các bộ xử lý với các mô-đun bộnhớ trong Numa Trong số đó có các mạng bus cây và thứ bậc Ví dụ về kiến trúc Numa là BBN TC-2000, SGI Origin 3000, và Cray T3E Hình 4.4 biểu diễn tổchức hệ Numa
Hình 4.4 Hệ thống bộ nhớ dùng chung Numa
Trang 13Câu 4: Trình bày các hệ đa xử lý dựa trên BUS
Các hệ thống bộ nhớ dùng chung có thể được thiết kế sử dụng các mạng liênthông dựa trên chuyển mạch hoặc dựa trên bus Mạng đơn giản nhất đối với các
hệ thống bộ nhớ dùng chung là bus Kiến trúc bus / cache giúp chúng ta khôngcần dùng các bộ nhớ nhiều cổng và các mạch giao diện đắt tiền cũng như sựcần thiết phải áp dụng một mô hình truyền thông báo khi phát triển phần mềmứng dụng Tuy nhiên, bus có thể bị bão hòa nếu nhiều bộ xử lý cùng truy cậpvào bộ nhớ dùng chung (thông qua bus) Thông thường, thiết kế dựa trên bus sẽ
sử dụng cache để giải quyết vấn đề tranh chấp bus Các cache tốc độ cao đượckết nối với mỗi bộ xử lý ở một phía và bus ở phía còn lại có nghĩa là các bản saolệnh và dữ liệu cục bộ được cung cấp với tốc độ cao nhất có thể có
Nếu bộ xử lý cục bộ tìm thấy tất cả các lệnh và dữ liệu của nó trong cacheriêng, chúng ta nói hit rate (tốc độ tìm thấy dữ liệu trong cache) là 100% Missrate (Tỉ lệ phần trăm truy cập bộ nhớ không được tìm thấy trong 1 cấp độ bộnhớ) của cache là các phần của các tham chiếu (chuẩn) không được thỏa mãnbởi cache), và do đó phải được sao chép từ bộ nhớ toàn cục, qua bus, vàocache, và sau đó chuyển cho các bộ xử lý cục bộ Một trong những mục tiêu củacache là duy trì hit rate cao, hoặc miss rate thấp trong điều kiện tải xử lý cao Hitrate cao có nghĩa là các bộ xử lý không dùng bus nhiều Hit rate được xác địnhbởi một số yếu tố khác nhau, từ các chương trình ứng dụng đang chạy đến cáchthức thực thi phần cứng cache
Một bộ xử lý đi qua một chu trình làm việc, trong đó nó thực thi lệnh một sốlần nhất định trong một chu kỳ đồng hồ Thông thường, mỗi bộ vi xử lý thực hiện
Trang 14Chúng ta định nghĩa các biến hit rate, số bộ vi xử lý, tốc độ xử lý, tốc độ bus,
và tốc độ chu trình làm việc của bộ vi xử lý như sau:
• N = số bộ xử lý;
• h = hit rate của mỗi cache, được
giả sử là giống nhau đối với tất cả
các cache;
• (1 - h)= miss rate của tất cả các
cache;
• B = băng thông của bus, được đo
theo chu kỳ / giây;
• I = chu trình làm việc của bộ xử lý,được giả sử là giống nhau đối vớitất cả các bộ vi xử lý, tính theo lầntruy cập / chu kỳ; và
• V = tốc độ vi xử lý cực đại, tínhtheo số lần truy cập / giây
Băng thông hiệu dụng của BUS là BI lần truy cập / giây Nếu mỗi bộ xử
lý đang chạy với tốc độ V, thì một số lượt bỏ lỡ được tạo ra ở tốc độ V (1 h) Đối với một hệ N-bộ xử lý, số lượt bỏ lỡ được tạo ra đồng thời với tốc
-độ N (1 - h) V Điều này dẫn đến sự bão hòa của bus khi N bộ xử lý cùngtruy cập vào bus Có nghĩa là, N (1 - h) V <BI Số bộ vi xử lý tối đa cùngvới các bộ nhớ cache mà bus có thể hổ trợ được tính bằng CT:
(1−h)v
Trang 15Câu 5: Trình bày sự tương hợp bộ nhớ Cache
Trong một hệ thống bộ nhớ cache đơn lẻ, sự tương hợp giữa bộ nhớ
và cache được duy trì bằng cách sử dụng hai phương pháp: (1) through (ghi hoàn toàn), và (2) write-back (ghi lại, viết ngược) Chẳng hạn,khi một tác vụ đang chạy trên một bộ xử lý P yêu cầu dữ liệu ở vị trí nhớ
write-X, nội dung của X được sao chép vào cache, ở đó nó được đưa vào P.Khi P cập nhật giá trị của X trong cache, bản sao còn lại trong bộ nhớcũng cần được cập nhật để duy trì tính nhất quán Trong write-through, bộnhớ được cập nhật mỗi khi cache được cập nhật, trong khi trong chế độwrite-back, bộ nhớ được cập nhật chỉ khi khối trong cache đang được thaythế Bảng 4.1 biểu diễn các chế độ write-through và write-back
Bảng 4.1 Write-through và write-back
Trang 16Câu 6: Trình bày sự tương hợp cache- cache
Trong hệ thống đa xử lý, chẳng hạn khi một tác vụ đang chạy trên bộ vi
xử lý P yêu cầu dữ liệu trong vị trí nhớ toàn cục X, nội dung của X đượcsao chép vào cache cục bộ của bộ xử lý P, sau đó nó được chuyển sang
P Bây giờ, giả sử bộ xử lý Q cũng truy cập vào X Điều gì xảy ra nếu Qmuốn viết một giá trị mới lên giá trị X cũ?
Có hai phương pháp tương hợp cache cơ bản: (1) write-invalidate
(ghi-vô hiệu hóa), và (2) write-update (ghi- cập nhật) Write-invalidate duy trìtính tương hợp bằng cách đọc từ các cache cục bộ cho đến khi quá trìnhviết xuất hiện Khi bất kỳ bộ vi xử lý nào cập nhật giá trị của X qua quátrình viết, đưa một bit dirty cho X làm mất hiệu lực tất cả các bản sao khác
Ví dụ, bộ vi xử lý Q làm mất hiệu lực tất cả các bản sao khác của X khi viếtmột giá trị mới vào cache của nó Điều này thiết lập một dirty bit cho X Q
có thể tiếp tục thay đổi X mà không cần thông báo thêm cho các cachekhác bởi vì Q chỉ có một bản sao X có hiệu lực (có giá trị) Tuy nhiên, khi
bộ xử lý P muốn đọc X, nó phải đợi cho đến khi X được cập nhật và dirtybit bị xóa Viết cập nhật duy trì tính nhất quán bằng cách cập nhật ngay tất
cả các bản sao trong tất cả các cache Tất cả các dirty bit được thiết lậptrong mỗi hoạt động viết Sau khi tất cả các bản sao đã được cập nhật, tất
cả dirty bit sẽ bị xóa
Trang 17Câu 7: Trình bày tính tương hợp của hệ thống bộ nhớ dùng chung
Bốn sự kết hợp để duy trì tính tương hợp giữa tất cả các cache và bộnhớ toàn cục là:
mở rộng các giá trị không nhất quán của X, nhưng tại một số điểm, cácbản sao không nhất quán phải được cập nhật
Trang 19Câu 8: Trình bày giao thức Write-Update và Write- Back
Giao thức này cũng tương tự như trước, ngoại trừ việc thay vìviết trực tiếp vào bộ nhớ bất cứ khi nào khối dùng chung được cập nhật,quá trình cập nhật bộ nhớ được thực hiện chỉ khi khối được thay thế Cáctrạng thái khối và giao thức được tóm tắt trong bảng 4.12
Sự kiện Hoạt động
Read-Hit Sử dụng bản sao cục bộ từ bộ nhớ cache
Read-Miss Nếu bản Dirty không tồn tại, thì cung cấp một phiên bản
từ bộ nhớ toàn cục Đặt trạng thái của bản sao này thành hợp lệ Nếu mộtbản sao dirty tồn tại, tạo một bản sao từ bộ nhớ cache, các cache chuyển
Trang 20Valid, thì phát ra một lệnh không hợp lệ cho các bộ nhớ cache Cập nhật
bộ nhớ toàn cục và chuyển sang trạng thái Reserved
Write-Miss Nhận một bản sao từ cache với bản sao dirty hoặc từchính bộ nhớ toàn cục Phát đi một bản sao không hợp lệ cho các bộ nhớcache Cập nhật các bản sao cục bộ và thiết lập trạng thái sang Dirty
Thay thế khối Nếu một bản sao ở trạng thái Dirty, nó phải được viếttrở lại bộ nhớ chính nếu khối được thay thế Nếu bản sao ở các trạng tháiValid, Reserved, hoặc Invalid, thao tác viết lại không cần thiết khi khốiđược thay thế Mô tả trạng thái sử dụng bản sao cục bộ từ bộ nhớ cache.Trạng thái không thay đổi
Trang 21BÀI TẬP CHƯƠNG 3
Các công thức:
Bài toán xử lý song song:
1 Thời gian xử lý của một bộ vi xử lý con:
t m=t s
n+t c
Trong đó:
tm là thời gian xử lý của một bộ vi xử lý con
ta là thời gian xử lý của toàn bộ vi xử lý
Trang 22Bài tập ví dụ:
Bài 1: cho một hệ VXL có hệ số tăng tốc 10 Thời gian để 1 VXL hoàn thành tác vụ là 20s Hãy thực hiện các yêu cầu sau trong trường hợp đối với bài toán xử lý song song, phí tổn truyền thông 0.5s
a) Trường hợp không có phí tổn truyền thông Tính số lượng bộ vi xử lý? Thời gian thực hiện của hệ? hiệu suất của hệ vi xử lý?
b) Trường hợp có phí tổn truyền thông Tính thời gian thực hiện của hệ? hệ số tăng tốc?hiệu suất của hệ?
Với trường hợp không có phí tổn truyền thông, tính n, tm, ε
Với bài toán có phí tổn truyền thông, tính tm, S(n), ε
a) Với bài toán không có phí tổn truyền thông
Tính thời gian thực hiện của hệ:
Ta áp dụng công thức tính hệ số tăng tốc S(n)=t s
t m (1)Trong đó S(n) là hệ số tăng tốc, ts là thời gian để 1 bộ VXL hoàn thành tác
vụ, tm là thời gian thực hiện của hệ
Trang 23Áp dụng công thức ε= S(n)
Trong đó ε là hiệu suất của hệ
Thay số vào công thức (3) ta được: ε=10
Như vậy hiệu suất của hệ là 100%
b) Với bài toán có phí tổn truyền thông
Tính thời gian thực hiện của hệ
Ta có công thức t ' m=t s
n+t c (4)trong đó t’m là thời gian thực hiện của hệ khi có phí tổn truyền thôngThay số vào công thức (4) và kết quả ở câu a) ta được:
Trang 24Câu 2: cho số bộ vi xử lý là 30, thời gian cần thiết cho 1 bộ VXL hoàn thành
tác vụ là 60s hãy thực hiện các yêu cầu sau đối với mô hình từng phần nối tiếp, cho f=0,5
a) Trường hợp không có phí tổn truyền thông Tính hệ số tăng tốc? Thời gian thực hiện của hệ? hiệu suất của hệ vi xử lý?
b) Trường hợp có phí tổn truyền thông Tính thời gian thực hiện của hệ? hệ số tăng tốc?hiệu suất của hệ? cho phí tổn truyền thông bằng 0,5
Bài giải:
Tóm tắt: n=30, ts=60s, f=0,5
a) Trường hợp không có phí tổn truyền thông
Tính thời gian thực hiện của hệ
Áp dụng công thức t m=f t s+(1−f ) t s
n+t c
Trong đó: tm là thời gian thực hiện của hệ
ts là thời gian thực hiện xong toàn bộ tác vụ của bộ VXL,
f là xử lý tuyến tình
n là số bộ vi xử lý con
trường hợp không có phí tổn truyền thông thì tc =0
thay số vào công thức trên ta được:
t m=0,5.60+(1−0,5).60
Tính hệ số tăng tốc