1. Trang chủ
  2. » Luận Văn - Báo Cáo

Báo cáo tiểu luận Đề tài Đa xử lý và các cấp Độ phân cấp luồng song song

136 0 0
Tài liệu được quét OCR, nội dung có thể không chính xác
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Đa Xử Lý Và Các Cấp Độ Phân Cấp Luồng Song Song
Tác giả Lấ Trấn Song Phương, Ho Hue Quan Nguyen Minh Quan, Lấ Hỏng Quí, Lấ Bảo Quyen, Dang Thi Diem Quynh, Nguyen The Son, Vo Van Son, Bui Nhan Phuc Tan
Người hướng dẫn PGS. TS. Trần Cảnh Hùng
Trường học The Saigon International University
Thể loại báo cáo tiểu luận
Thành phố Sai Gon
Định dạng
Số trang 136
Dung lượng 13,86 MB

Nội dung

Với sự gia tăng nhanh chóng về hiệu suất của bộ xử lý và sự gia tăng liên quan đến yêu cầu băng thông bộ nhớ của bộ xử lý, quy mô của bộ đa xử lý mà bộ nhớ phân tán được ưu tiên hơn một

Trang 1

v29

DAI HOC QUOC TE SAI GON KHOA KY THUAT VA KHOA HOC MAY TINH

The Saigon International

University

BAO CAO TIEU LUAN

Dé tai: DA XU LY VA CAC CAP DO PHAN CAP LUONG SONG SONG

Giảng viên hướng dẫn: PGS TS TRÀN CÔNG HÙNG

Sinh viên thực hiện:

@® LÊ TRẤN SONG PHƯƠNG (nhóm trưởng)

HO HUE QUAN

NGUYEN MINH QUAN

LÊ HỎNG QUÍ

LÊ BẢO QUYEN

NGUYEN THE SON

VO VAN SON BUI NHAN PHUC TAN

Trang 2

Mục lục

6 ĐA XỬ LÝ VÀ CẤP XỬ LÝ SONG SONG 0 22H ng 1 geeerrerrerree 3 89)/909:10 0100027 .4dŒdđŒŒŒœ-:,L HẬ),)H,) 4 8:70:09, 800.0 10100800)100)0 900101077 A 17 6.3 NHỮNG KIÊN TRÚC ĐÓI XỨNG BỘ NHỚ ĐƯỢC CHIA SẺ 22 2555 ccicccrrrrrrrrrrrrrre 27 6.4 HIỆU SUÁT CỦA BỘ ĐA XỬ LÝ BỘ NHỚ DÙNG CHUNG ĐỐI XỨNG ccccccccecee 42 6.5 CẤU TRÚC BỘ NHỚ PHÂN TÁN 0c 02c 22t 22 Hành HH n2 E1 reo 60 6.6 HIỆU SUÁT CỦA BỘ ĐA XỬ LÝ VÙNG NHỚ CHIA SẺ PHẦN TÁN oc52cccccccrcerrrce 69 6:00:91 0 001086 6 44đăägœgœgẸ à,.à),.HậHẬĂHẬH,H,à 78 6.8 GIỚI THIỆU CÁC MÔ HÌNH VỀ TÍNH ÔN ĐỊNH CỦA BỘ NHỚ ccccccicccrreerrree 94 6.9 ĐÁ LUÔNG: KHAI THÁC SONG SONG MỨC LUÒNG TRONG MỘT BỘ XỬ LÝ 97

5110 (9A2/06)040 406) 0 90 .H, 101

6.11 PUTTING IT ALL TOGETHER: SUN?S WILDFIEIRE PROTOTYPE -5-ccccccccce- 108 6.12 ANOTHER VIEW: MULTITHREADING IN A COMMERCIAL SERVER -. - 124

E9 0900000 0/069 9.6 92 ẽ 1+£ŒgằäđA— HHẬH)H)H , 125 SEN 00Ð41908.9 0000 0057876 ẽ-.41+‹.7ŒAŒ H)HẰHàà , 130

Trang 3

6 DA XU LY VA CAP XU LY SONG SONG

Sự chuyên biến của các tô chức thông thường được diễn ra vào giữa những năm 1960, khi quy luật hiệu suất giảm dần bắt đầu có hiệu lực trong nỗ lực tăng cường hoạt động tốc độ của máy

tính Các mạch điện tử cuối cùng bị giới hạn về tốc độ hoạt động bằng tốc độ ánh sang va

nhiều mạch đã hoạt động trong phạm vi nano giây

Bouknight et al, Hé théng Illiac IV [1972]

Máy tính tuần tự đăng đạt đến một giới hạn vật lý về tiềm năng của chúng về khả năng

tính toán Ciới hạn như vậy được gọi là tốc độ ánh sáng

A.L Doregama, Công nghệ xử lý song song, Tập [ (1989)

Các bộ đa xử lý ngày nay đang gần đi đến bề tắc khi các công nghệ đang đến gần với tốc độ ánh sáng Ngay cả khi các thành phần của bộ xử lý tuần tự có thể hoạt động nhanh như vậy, việc tốt nhất ta có thê mong đợi là không quá vài triệu số chỉ thị mỗi giây

Mitchell, Máy truyền tin: Thời gian là bây giờ [1989]

e© Sự thay đổi chính

1 Chia các phần dài nhất

2 Thảo luận rõ ràng hơn về khái niệm luồng và quy trình

3 Phần Công Nghệ dán bề mặt (SMT) và đa luồng

4 Hai góc nhìn khác

5 Sắp xếp lại thứ tự các vấn đề xuyên suốt - không có thay đối lớn, chỉ được sắp xếp lại

Trang 4

6.1 GIỚI THIỆU

Như phần trích dẫn mở đầu chương này cho thấy, quan điểm cho rằng những tiến bộ trong

kiến trúc bộ xử lý gần như kết thúc đã được phô biến rộng rãi ở nhiều mức độ khác nhau Đề phản

bác lại quan điểm này, chúng tôi quan sat thay rằng trong giai đoạn 1985-2000, tốc độ tăng trưởng

hiệu suất của bộ vi xử lý, do bộ vi xử lý thúc đây, đang ở mức tỷ lệ cao nhất kê từ những máy tính bán dẫn đầu tiên vào cuối những năm 1950 và đầu những năm 1960

Tuy nhiên, về mặt cân bằng, các tác giả tin rằng các bộ xử lý song song chắc chắn sẽ có vai trò lớn hơn trong tương lai Quan điểm này được củng cô bởi ba kết luận có được nhờ quan sát Đầu tiên, vì bộ vi xử lý có khả năng vẫn là công nghệ đơn xử lý thống trị duy nhất, nên cách

hop ly dé cai thiện hiệu suất ngoài một bộ xử lý đơn lẻ là kết nối nhiều bộ vi xử lý với nhau Sự

kết hợp này có thể là tiết kiệm chỉ phí hơn so với việc thiết kế một bộ xử lý tùy chính Thứ hai,

nó không rõ ràng là liệu tốc độ đổi mới kiến trúc đã được mười lăm năm với việc tăng cường khai

thác song song mức lệnh có thê được duy trì vô thời hạn Như chúng ta đã thấy trong Chương 3

và 4, các bộ vi xử lý hiện đại đã trở nên cực kỳ phức tạp và sự gia tăng trong hiệu suất đề tăng độ phức tạp, tăng silicon và tăng sức mạnh dường như đang giảm dân Thứ ba, dường như có sự tiễn triển chậm nhưng ôn định về trở ngại lớn cho việc sử dụng rộng rãi các bộ xử lý song song, cụ thê

là phần mềm Tiến trình này có lẽ nhanh hơn trong thị trường máy chủ và nhúng, như chúng ta đã thảo luận trong Chương 3 và 4 Máy chủ và các ứng dụng nhúng thê hiện tính song song tự nhiên

có thê được khai thác mà không cần phải viết lại một số cơ sở phần mềm Đây là một thách thức trong không gian máy tính để bàn

Tuy nhiên, các tác giả cực kỳ miễn cưỡng trong việc dự đoán cái chết của những tiến bộ trong kiến trúc đơn xử lý Thật vậy, chúng tôi tin rằng tốc độ tăng trưởng hiệu quả hoạt động nhanh chóng sẽ tiếp tục ít nhất trong 5 năm tới Cho dù với tốc độ này Việc đối mới có thê được duy trì lâu hay không là điều khó dự đoán nhưng rất khó đề đánh cược Tuy nhiên, nếu tốc độ phát triên của các bộ vi xử lý chậm lại, thì các kiến trúc đa xử lý sẽ ngày càng trở nên hấp dẫn Điều đó nói rằng, chúng ta còn lại hai vấn đề Đầu tiên, kiến trúc đa xử lý là một lĩnh vực rộng lớn và đa dạng, và phần lớn lĩnh vực này đang ở độ tuổi thanh xuân, với những ý tưởng đến vả tiếp tục, cho đến gần đây, nhiều kiến trúc thất bại xuất hiện hơn là thành công Cho rằng chúng ta

đã ở trang 636, toàn bộ phạm vi thiết kế bộ xử lý không gian và sự đánh đối của nó sẽ cần thêm một chương khác (That vay, Culler, Singh,va Gupta [1999] chi dé cap đến các bộ đa xử ly trong

cuốn sách 1000 trang của họ!) Thứ hai, phạm vi bảo hiểm như vậy nhất thiết sẽ đòi hỏi phải thảo

luận về các phương pháp tiếp cận khi mà chúng ta đang đứng trước thử thách về thời gian, điều

mà chúng tôi đã phần lớn tránh được cho đến thời điểm này Vì những lý do này, chúng tôi đã

chọn tập trung vào xu hướng chủ đạo của thiết kế đa xử lý: đa xử lý với số lượng bộ xử lý vừa và nhỏ (<=128) Thiết kế như vậy chiếm ưu thể lớn về cả đơn vị và đô la Chúng tôi sẽ chí chú ý một

chút đến không gian thiết kế đa bộ xử lý quy mô lớn hơn (=> 128 bộ xử lý) Tại hiện tại, kiến trúc

Trang 5

tương lai của các bộ đa xử lý như vậy vẫn chưa được giải quyết và thậm chí khả năng tổn tại của thị trường đó đang bị nghi ngờ Chúng tôi sẽ trở lại chủ đề này một thời gian ngắn tại cuối chương, trong mục 6.15

® Phân loại các kiên trúc song song

Chúng tôi bắt đầu chương này bằng cách phân loại để bạn có thê đánh giá cao cả phạm vi rộng của các lựa chọn thay thể thiết kế cho đa xử lý và bối cảnh đã dẫn đến sự phát triển của dạng đa

xử lý chiếm ưu thế Chúng tôi mô tả ngắn gọn các lựa chọn thay thế và lý do đằng sau chúng: một

mô tả dài hơn về cách những các mô hình khác nhau được sinh ra (và thường chết) có thê được tìm thấy trong các quan điểm lịch sử ở cuối chương

Ý tưởng sử dụng nhiều bộ vi xử lý đề tăng hiệu suất và cải thiện tính khả dụng đã có từ những chiếc máy tính điện tử đầu tiên Khoảng 30 năm trước đây, Flynn đã đề xuất một mô hình đơn

giản đề phân loại tất cả các máy tính vẫn hữu ích cho đến ngày hôm nay Anh ấy đã xem xét sự song song trong các luông dữ liệu và hướng dẫn được yêu cầu bởi các hướng dẫn tại thành phần

bị hạn chế nhất của bộ đa xử lý và dat tat cả các máy tính vào một trong bồn loại:

1 Dong lệnh đơn, dong dir ligu don (SISD) —Danh muc nay là bộ xử lý đơn

2 Mét luéng lénh, nhiéu luéng dit ligu (SIMD) —Cac lénh giéng nhau duoc thyc hién béi nhiều bộ xử lý sử dụng các luồng dữ liệu khác nhau Mỗi bộ xử lý có bộ nhớ dữ liệu riêng (do đó có nhiều đữ liệu), nhưng có một bộ nhớ lệnh và bộ xử lý điều khién, tìm nạp và gửi

các lệnh Các phần mở rộng đa phương tiện mà chúng ta đã xem xét trong Chương 2 là một dạng giới hạn của song song SIMD Kiến trúc vectơ là lớp lớn nhất của bộ xử lý loại này 3 Nhiều luồng hướng dẫn, một luồng dữ liệu (MISD) —Không thương mại đa bộ xử lý của loại này đã được xây dựng cho đến nay, nhưng có thể là trong tương lai Một số bộ xử lý dòng mục đích đặc biệt gần đúng với dạng giới hạn của điều này (chỉ có một luồng dữ liệu

duy nhất được vận hành bởi chức năng liên tiếp các đơn vi)

4 Nhiều luỗng lệnh, nhiều luồng dữ liệu (MIMD) —Mỗi bộ xử lý tìm nạp các hướng dẫn của

riêng nó và hoạt động trên dữ liệu của chính nó Bộ vi xử lý thường là những bộ v1 xử lý không có sẵn

Đây là một mô hình thô, vì một số bộ xử lý đa xử lý là con lai của những danh mục này Tuy

nhiên, sẽ rất hữu ích khi đặt một khuôn khô vào không gian thiết kẻ

Như đã thảo luận ở khía cạnh lịch sử, nhiều bộ đa xử ly ban đầu là SIMD, và mô hình

SIMD đã nhận được sự chú ý mới trong những năm 1980, và ngoại trừ bộ xử lý vectơ, đã biến mất vào giữa những năm 1990 MIMD rõ ràng có nôi lên như một kiến trúc được lựa chọn cho các bộ vi xử lý da năng thông thường Hai yếu tổ chịu trách nhiệm chính cho sự gia tăng của

các bộ đa xử lý MIMD:

Trang 6

1 MIMD cung cấp tính linh hoạt Với sự hỗ trợ phần cứng và phần mềm chính xác, MIMD

có thê hoạt động như một bộ xử lý đa người dùng tập trung vảo hiệu suất cao cho một ứng dụng, như các bộ xử lý đa lập trình đang chạy nhiều tác vụ đồng thời hoặc dưới dạng một

số kết hợp của các chức năng này

2 MIMD cé thé xây dựng dựa trên lợi thế về chỉ phí / hiệu suất của các sản phâm có sẵn bộ

vi xử lý Trên thực tế, gần như tất cả các bộ xử lý đa xử lý được xây dựng ngày nay đều sử dụng bộ vi xử lý được tìm thấy trong máy trạm và máy chủ bộ xử lý đơn

Với MIMD, mỗi bộ xử lý đang thực hiện luồng lệnh riêng của nó Trong nhiều trường hợp, mỗi bộ xử lý thực hiện một quá trình khác nhau Nhớ lại lần cuối cùng rằng một quy trình là một đoạn mã có thê được chạy độc lập, và rằng trạng thái của quy trình chứa tất cả thông tin cần thiết

đề thực hiện chương trình trên một bộ xử lý Trong môi trường đa chương trình, nơi các bộ xử lý

có thê đang chạy các tác vụ độc lập, mỗi quá trình thường độc lập với các quy trình trên các bộ

xử lý khác

Nó cũng hữu ích khi có thể có nhiều bộ xử lý thực hiện một chương trình duy nhất và chia sẻ

mã và hầu hết không gian địa chỉ của chúng Khi nhiều quy trình chia sẻ mã và dữ liệu theo cách này, chúng thường được gọi là luồng Trời đẹp luồng thuật ngữ thường được sử dụng theo cách thông thường đê chỉ nhiều lô thực thi có thê chạy trên các bộ xử lý khác nhau, ngay cả khi chúng

không chia sẻ vùng địa chỉ

Đề tận dụng lợi thế của bộ đa xử lý MIMD với n bộ xử lý, chúng ta phải thường có ít nhất n

luồng hoặc quy trình đề thực thi Các chủ đề độc lập thường được xác định bởi lập trình viên hoặc

do trình biên dịch tạo ra Kế từ khi song song trong tình huống này được chứa trong các luồng, nó được gọi là mức luồng sự song song

Các luồng có thê khác nhau từ các quy trình quy mô lớn, độc lập — ví dụ: các chương trình độc lập chạy theo kiểu đa chương trình trên các bộ xử lý khác nhau — đến các lần lặp song song

của một vòng lặp, được tạo tự động bởi trình biên dịch và mỗi lần thực thi có lẽ ít hơn một nghìn

hướng dẫn Mặc dù kích thước của một luông rất quan trọng trong việc xem xét làm thế nào để khai thác tính song song mức luồng một cách hiệu quả, sự khác biệt quan trọng về mặt định tính

là tính song song đó được xác định ở cấp độ cao bởi hệ thông phần mềm và các chủ đề bao gồm hàng trăm đến hàng triệu lệnh có thê được thực hiện song song Ngược lại, song song mức hướng dẫn được xác định chủ yếu bởi phần cứng, mặc dù với phần mềm trợ giúp trong một số trường

hợp, và được tìm thấy và khai thác một chỉ dẫn tại một thời điểm

Các bộ đa xử lý MIMD hiện tại được chia thành hai lớp, tùy thuộc vào số lượng bộ xử ly tham

gia, từ đó quyết định tổ chức bộ nhớ và chiến lược kết nối liên thông Chúng tôi đề cập đến các

bộ đa xử lý theo bộ nhớ của chúng tô chức, bởi vì những gì tạo nên một số lượng nhỏ hoặc lớn

các bộ xử lý là có khả năng thay đổi theo thời gian.

Trang 7

Nhóm đầu tiên, chúng tôi gọi là kiến trúc bộ nhớ chia sẻ tập trung, có nhiều nhất là vài chục

bộ xử lý vào năm 2000 Đối với bộ đa xử lý có bộ xử lý nhỏ số lượng, bộ xử lý có thê chia sẻ một

bộ nhớ tập trung duy nhất và đề kết nối bộ xử lý và bộ nhớ bằng một bus Với bộ nhớ đệm lớn,

bus và bộ nhớ duy nhất, có thể có nhiều ngân hàng, có thể đáp ứng nhu cầu bộ nhớ của một số

lượng nhỏ bộ vi xử lý Bằng cách thay thế một bus đơn bằng nhiều bus, hoặc thậm chí một bộ

chuyên mạch, một thiết kế bộ nhớ chia sẻ tập trung có thể được mở rộng thành vài chục bộ xử lý

Mặc dù về mặt kỹ thuật có thê mở rộng quy mô vượt quá mức đó,chia sẻ bộ nhớ tập trung, thậm chí được tổ chức thành nhiều ngân hàng, trở nên kém hấp dẫn hơn khi số lượng bộ xử lý chia sẻ

là chủ đề của phần 6.3.

Trang 8

HÌNH 6.1 Cấu trúc cơ bản của bộ đa xử lý bộ nhớ dùng chung tập trung Nhiều các hệ thông con

bộ xử lý-bộ nhớ cache chia sẻ cùng một bộ nhớ vật lý, thường được kết nỗi bằng một bus Trong các thiết kế lớn hơn, nhiều bus hoặc thậm chí một switch có thể được sử dụng, những kiến trúc

chính thuộc tính: thời gian truy cập thống nhất o tất cả bộ nhớ từ tất cả các bộ xử lý vẫn còn Nhóm thứ hai bao gồm các bộ xử lý đa xử lý được phân phối vật lý ki niệm Đề hỗ trợ số lượng bộ xử lý lớn hơn, bộ nhớ phải được phân phối giữa các bộ xử lý thay vì tập trung; nếu không

hệ thống bộ nhớ sẽ không có thé hỗ trợ nhu cầu băng thông của một số lượng lớn hơn các bộ xử

lý mà không cần gây ra độ trễ truy cập quá lâu Với sự gia tăng nhanh chóng về hiệu suất của bộ

xử lý và sự gia tăng liên quan đến yêu cầu băng thông bộ nhớ của bộ xử lý, quy mô của bộ đa xử

lý mà bộ nhớ phân tán được ưu tiên hơn một bộ nhớ tập trung duy nhất tiếp tục giảm số lượng (đó

là một lý do không sử dụng quy mô nhỏ và lớn) Tất nhiên, số lượng bộ xử lý lớn hơn làm tăng nhu cầu kết nỗi băng thông cao, trong đó chúng tôi đã thấy các ví dụ trong Chương 7 Cả mạng kết nồi trực tiếp (tức là chuyên mạch) và gián tiếp mạng (thường là các mắt lưới đa chiều) được

sử dụng Hình 6.2 cho thấy các bộ đa xử lý này trông như thế nào

Trang 9

HÌNH 6.2 Kiến trúc cơ bản của bộ đa xử lý bộ nhớ phân tán bao gồm các nút riêng lẻ có chứa bộ

xử lý, một số bộ nhớ, thường là một số I/O là giao điện với một mạng liên kết kết nối tất cả các nút Các nút riêng lẻ có thê chứa một số lượng nhỏ bộ xử lý, có thê được kết nối với nhau bằng

một bus nhỏ hoặc công nghệ kết nối khác nhau, ít khả năng mở rộng hơn so với kết nối toàn cầu mạng

Phân phối bộ nhớ giữa các nút có hai lợi ích chính Đầu tiên, nó là một cách hiệu quá về chỉ phí để mở rộng băng thông bộ nhớ, nếu hầu hết các truy cập là bộ nhớ cục bộ trong nút Thứ

hai, nó làm giảm độ trễ khi truy cập vào bộ nhớ cục bộ Hai ưu điểm nảy làm cho bộ nhớ phân tán

trở nên hấp dẫn ở bộ xử lý nhỏ hơn được tính là bộ xử lý ngày càng nhanh hơn và yêu cầu nhiều

băng thông bộ nhớ hơn và độ trễ bộ nhớ thấp hơn Diém bat lợi chính cho một phân phối kiến trúc

bộ nhớ là việc giao tiếp dữ liệu giữa các bộ xử lý trở thành hơi phức tạp hơn và có độ trễ cao hơn,

ít nhất là khi không có tranh cãi, vì các bộ xử lý không còn chia sẻ một bộ nhớ tập trung duy nhát Như chúng ta sẽ thấy ngay sau đây, việc sử dụng bộ nhớ phân tán dẫn đến hai mô hình khác nhau

để giao tiếp giữa các bộ xử lý

Thông thường, I / O cũng như bộ nhớ được phân phối giữa các nút của bộ đa xử lý và các nút

có thể là các SMP nhỏ (2-8 bộ xử lý) Mặc dù việc sử dụng nhiều bộ xử lý trong một nút cùng với bộ nhớ và giao diện mạng có thể khá hữu ích từ quan điểm hiệu quả về chỉ phí, nó không phải

là cơ bản để cách thức hoạt động của các bộ đa xử lý này, và vì vậy chúng tôi sẽ tập trung vào thiết kế một bộ xử lý-pernod cho hầu hết chương này

e Mô hình cho kiến trúc giao tiếp và bộ nhớ

Trang 10

Như đã thảo luận trước đó, bất kỳ bộ đa xử lý quy mô lớn nào đều phải sử dụng nhiều bộ nhớ được phân phối vật lý với bộ xử lý Có hai cách tiếp cận kiến trúc thay thế khác nhau về phương

pháp được sử dụng đề truyền dữ liệu giữa các bộ xử lý

Trong phương pháp đầu tiên, giao tiếp xảy ra thông qua một không gian địa chỉ dùng chung

Đó là, những ký ức riêng biệt về mặt vật lý có thể được giải quyết như một không gian địa chỉ dùng chung, nghĩa là bất kỳ bộ xử lý nào cũng có thê thực hiện một tham chiếu bộ nhớ tới bất kỳ

vị trí bộ nhớ nào, giả sử nó có quyền truy cập chính xác Này Đa xử lý được gọi là kiến trúc bộ nhớ dùng chung (DSM) phân tán Các Thuật ngữ bộ nhớ dùng chung đề cập đến thực tế là không

gian dia chỉ được chia sẻ; đó là,cùng một địa chỉ vật lý trên hai bộ xử ly dé cap dén cùng một vị

trí trong bộ nhớ.Bộ nhớ dùng chung không có nghĩa là có một bộ nhớ tập trung duy nhất Ngược

lại với các bộ đa xử lý chia sẻ bộ nhớ đối xứng, còn được gọi là UMA(truy cập bộ nhớ đồng nhất),

đa xử lý DSM còn được gọi là NUMA.truy cập bộ nhớ không đồng nhất, vì thời gian truy cập phụ

thuộc vào vị trí của dữ liệu từ trong bộ nhớ

Ngoài ra, không gian địa chỉ có thê bao gồm nhiều không gian địa chỉ riêng chúng rời rạc về mặt logic và không thể được xử lý bằng bộ xử lý từ xa Trong như vậy đa bộ xử lý, cùng một dia

chỉ vật lý trên hai bộ xử lý khác nhau đề cập đến hai địa điểm khác nhau trong hai ký ức khác

nhau Mỗi mô-đun bộ xử lý-bộ nhớ về cơ bản là một máy tính riêng biệt; do đó các bộ xử lý song song này có được gọi là đa máy tính Như đã chỉ ra trong chương trước, một máy tính đa máy tính thậm chí có thê bao gồm các máy tính hoàn toàn riêng biệt được kết nối trên một máy tính cục bộ mạng khu vực, ngày nay, được gọi phố biến là các cụm Đối với các ứng dụng yêu cầu ít hoặc không cần giao tiếp và có thể sử dụng các bộ nhớ riêng biệt, chăng hạn như các cụm bộ xử lý, cho

dù sử dụng kết nối liên kết được tiêu chuẩn hóa hay tùy chỉnh, có thê hình thành một cách tiếp

cận rất hiệu quả về chi phi (xem Phan 7.x)

Với mỗi tô chức này cho không gian địa chỉ, có một cơ chế giao tiếp Đối với một bộ đa xử lý

có không gian địa chỉ dùng chung, không gian địa chỉ đó có thể được sử dụng đề giao tiếp dữ liệu một cách ngầm định thông qua tải và lưu trữ các hoạt động: do đó có tên bộ nhớ dùng chung cho

các bộ đa xử lý như vậy Đối với một bộ đa xử lý có nhiều không gian địa chỉ, việc giao tiếp dữ

liệu được thực hiện bằng cách chuyên các thông điệp giữa các bộ xử lý một cách rõ ràng Do đó, các bộ đa xử lý thường được gọi là thông điệp truyền qua các bộ đa xử lý

Trong thông điệp truyền qua các bộ đa xử lý, giao tiếp xảy ra bằng cách gửi các thông báo yêu cầu hành động hoặc cung cấp dữ liệu giỗng như với các giao thức mạng được thảo luận trong phần

7.2 Ví dụ: nếu một bộ xử ly muốn truy cập hoặc hoạt động trên dữ liệu trong bộ nhớ từ xa, nó có thé gui tin nhan dé yêu cầu dữ liệu hoặc đề thực hiện một số thao tác trên dữ liệu Trong những

trường hợp như vậy, thông báo có thê được coi là cuộc gọi thủ tục từ xa (RPC) Khi bộ xử lý đích nhận được thông báo, bằng cách bỏ phiếu cho nó hoặc thông qua một ngất, nó thực hiện hoạt động hoặc truy cập thay mặt cho bộ xử lý từ xa và trả về kết quả kèm theo một câu trả lời thông điệp

Trang 11

Kiểu truyền thông điệp này còn được gọi là đồng bộ, vì bộ xử lý khởi tạo sẽ gửi một yêu cầu và đợi cho đến khi trả lời được trả lại trước đó.đang tiếp tục Hệ thông phần mềm đã được xây dựng

để đóng gói các chỉ tiết về gửi và nhận thông báo, bao gồm chuyên các đối số phức tạp hoặc trả

về, trình bày một cơ sở RPC sạch cho lập trình viên

Giao tiếp cũng có thé xảy ra từ quan điểm của người viết dữ liệu hơn là hơn đầu đọc và điều

này có thể hiệu quả hơn khi bộ xử lý tạo ra dữ liệu biết bộ xử lý nào khác sẽ cần dữ liệu Trong

những trường hợp như vậy, dữ liệu có thể được gửi trực tiếp đến quy trình của người tiêu dùng

mà không cần phải yêu cầu trước Thông thường có thể thực hiện gửi thông điệp không đồng bộ, cho phép người gửi tiếp tục ngay lập tức Thường thì người nhận sẽ muốn chặn nếu nó cô gắng nhận được tin nhắn trước khi nó đến; trong trường hợp khác, người đọc có thê kiêm tra liệu một tin nhắn có đang chờ xử lý hay không trước khi thực sự cố gắng thực hiện chặn nhận Ngoài ra, người gửi phải chuẩn bị chặn nếu người nhận chưa sử dụng một tin nhắn trước đó và không có không gian đệm Tin nhắn đi quacác tiện ích được cung cấp trong các bộ đa xử lý khác nhau khá

đa dạng Đề giảm bớt chương trình tính di động, thư viện truyền thông báo tiêu chuẩn (ví dụ, giao diện truyền thông báo, hoặc MPI) đã được đề xuất Những thư viện như vậy hy sinh một số hiệu

suất để đạt được một giao điện chung

e Chỉ số hiệu suất cho cơ chế giao tiếp

Ba chỉ số hiệu suất rất quan trọng trong bất kỳ cơ chế giao tiếp nào:

1 Băng thông truyền thông — Lý tưởng nhất là băng thông truyền thông bị giới hạn bởi bộ xử lý, bộ nhớ và băng thông kết nối, thay vì một số khía cạnh của cơ chế giao tiếp Băng thông phân giác (xem Phần 7.x) được xác định bởi mạng kết nối Băng thông vào hoặc ra của một nút duy nhất, thường quan trọng như băng thông phân giác, bị ảnh hưởng bởi cả kiến trúc bên trong nút và giao tiếp cơ chế Cơ chế truyền thông ảnh hưởng như thế nào đến băng thông truyền thông của một nút? Khi giao tiếp xảy ra, các tài nguyên trong các nút liên quan đến giao tiếp bị ràng buộc hoặc bị chiếm dụng, ngăn cản của giao tiếp đi hoặc đến Khi công suất này được phát sinh chuỗi từ của một tin nhắn, nó đặt ra một giới hạn tuyệt đối về băng thông liên lạc Giới hạn này thường thấp hơn những gì hệ thông mạng hoặc bộ nhớ có thể cung cấp Việc chiếm giữ cũng có thê có một thành phần phát

sinh cho mỗi sự kiện giao tiếp, chăng hạn như một yêu cầu gửi đến hoặc gửi ổI Trong

trường hợp sau.tỷ lệ lap đầy giới hạn tốc độ truyền thông và tác động của việc sử dụng trên băng thông truyền thông tổng thẻ phụ thuộc vào kích thước của thông điệp

2 Độ trễ giao tiếp — Lý tưởng nhất là độ trễ càng thấp càng tốt Như chúng tôi

sẽ xem trong Chương 8, độ trễ giao tiếp bằng

Chi phí người gửi + Thời gian bay + Thời gian truyền + Chi phí người nhận

Trang 12

Thời gian của chuyến bay là cô định và thời gian truyền được xác định bởi mạng kết nói Chi phí phần mềm và phần cứng trong việc gửi và nhận thông điệp phần lớn được xác định bởi cơ chế giao tiếp và thực hiện Tại sao độ trễ lại quan trọng? Độ trễ ảnh hưởng

đến cả hiệu suất và việc lập trình một bộ đa xử lý dễ dàng như thế nào Trừ khi độ trễ bị

ân, nếu không, độ trễ sẽ ảnh hưởng trực tiếp đến hiệu suất bằng cách buộc tài nguyên bộ

xử lý hoặc gây ra bộ xử lý đề chờ Tông chỉ phí và công suất sử dụng có liên quan chặt chẽ với nhau, vì nhiều các hình thức chi phí cũng buộc một số phần của nút, gây ra tình trạng chiếm dụng chi phí, do đó hạn chế băng thông Các tính năng chính của cơ chế giao tiếp

có thê ảnh hưởng trực tiếp đến chỉ phí và công suất sử dụng Ví dụ, làm thế nào là địa chi

đích cho một liên lạc từ xa được đặt tên và cách bảo vệ thực hiện? Khi cơ chế đặt tên và

bảo vệ được cung cấp bởi bộ xử lý, như trong không gian địa chỉ dùng chung, chỉ phí bỗ sung là nhỏ Ngoài ra, nếu các cơ chế này phải được hệ điều hành cung cấp cho mỗi lần truyền thông, điều này làm tăng chi phí truyền thông và chiếm dụng của truyền thông, do

đó làm giảm băng thông và tăng độ trễ

3 Ấn độ trễ giao tiếp — Cơ chế giao tiếp có thê che giấu độ trễ tốt như thế nào bằng cách giao tiếp chồng chéo với tính toán hoặc và giao tiếp khác? Mặc dù đo điều này không đơn giản như đoan chỉ số đầu tiên, đó là một đặc điểm quan trọng có thê được định lượng bằng đo thời gian chạy trên nhiều bộ xử lý có cùng giao tiếp độ trễ nhưng hỗ trợ

khác nhau cho việc ân độ trễ Chúng ta sẽ xem các ví dụ về kỹ thuật ấn độ trễ cho bộ nhớ

ding chung trong phan 6.8 va 6.10 Mặc dù ấn độ trễ chắc chắn là một ý tưởng hay, nó tạo thêm gánh nặng cho hệ thông phần mềm và cuối cùng là lập trình viên Hơn nữa, lượng độ trễ có thể bị ẩm phụ thuộc vào ứng dụng Vì vậy, nó thường là tốt nhất để giảm độ trễ nêu

có thê

Mỗi thước đo hiệu suất này bi ảnh hưởng bởi các đặc điểm của thông tin liên lạc cần thiết trong ứng dụng Kích thước của các mục dữ liệu đang được truyền thông là rõ ràng nhất, vì nó ảnh hưởng trực tiếp đến cả độ trễ và băng thông, cũng như ảnh hưởng đến hiệu quả của các phương pháp ân độ trễ khác nhau Tương tự, tính thường xuyên trong các mẫu giao tiếp ảnh hưởng đến chi phí đặt tên và bảo vệ, và do đó là chị phí liên lạc Nhìn chung, các cơ chế hoạt động tốt với các yêu cầu giao tiếp dữ liệu nhỏ hơn cũng như lớn hơn, các mẫu giao tiếp không thường xuyên cũng như thông thường, linh hoạt và hiệu quá hơn cho nhiều loại ứng dụng hơn

Tất nhiên, khi xem xét bất kỳ giao tiếp nào cơ chế, nhà thiết kế phải xem xét chỉ phí cũng như hiệu suất

® Ưu điểm của các cơ chế giao tiếp khác nhau

Mỗi một trong hai cơ chế giao tiếp chính này đều có những ưu điểm của nó Vì giao tiếp bộ

nhớ chia sẻ, các lợi thê bao gôm

Trang 13

Khả năng tương thích với các cơ chế được hiểu rõ đang được sử dụng trong tập trung đa

xử lý, tất cả đều sử dụng giao tiếp bộ nhớ dùng chung

Dễ dàng lập trình khi các mẫu giao tiếp giữa các bộ xử lý phức tạp hoặc thay đổi động

trong quá trình thực thi.Ưu điểm tương tự đơn giản hóa thiết kế trình biên dịch

Khả năng phát triển các ứng dụng bằng cách sử dụng mô hình bộ nhớ dùng chung quen thuộc,chỉ tập trung sự chú ý vào những truy cập quan trọng về hiệu suất

Chi phí thấp hơn để liên lạc và sử dụng băng thông tốt hơn khi giao tiếp các mục nhỏ Điều

này phát sinh từ bản chất tiềm ân của giao tiếp và việc sử dụng ánh xạ bộ nhớ để triển khai

bảo vệ trong phần cứng, thay vì thông qua hệ thống I / O

Khả năng sử dụng bộ nhớ đệm được điều khiên bằng phần cứng đề giảm tần suất giao tiếp

từ xa bằng cách hỗ trợ bộ nhớ đệm tự động của tất cả dữ liệu, cả hai đều được chia sẻ và

riêng tư Như chúng ta sẽ thấy, bộ nhớ đệm giảm cả độ trễ và tranh chấp khi truy cập dữ liệu được chia sẻ Ưu điểm này cũng đi kèm với nhược điểm, mà chúng tôi đề cập bên dưới

Những lợi thế chính cho giao tiếp truyền thông điệp bao gồm

Phần cứng có thê đơn giản hơn, đặc biệt là khi so sánh với triển khai bộ nhớ dùng chung

có thê mở rộng hỗ trợ bộ nhớ đệm nhất quán của dữ liệu từ xa

Giao tiếp rõ ràng, có nghĩa là nó dé hiểu hơn; trong chia sẻ mô hình bộ nhớ, có thê khó biết khi nào giao tiếp đang xảy ra khi nào thì không, cũng như chỉ phí truyền thông như thế nào Giao tiếp rõ ràng tập trung sự chú ý của lập trình viên vào khía cạnh tốn kém này của tính toán song song, đôi khi dẫn đến cải tiến cầu trúc trong một chương trình đa xử lý Đồng bộ hóa được liên kết tự nhiên với việc gửi tin nhắn, giảm khá năng xảy ra lỗi do đồng

bộ hóa không chính xác

Nó làm cho việc sử dụng giao tiếp do người gửi khởi tạo dễ dàng hơn, có thê có một số lợi

thế về hiệu suất,

Tắt nhiên, mô hình giao tiếp mong muốn có thê được tạo trên mô hình phần cứng hỗ trợ một

trong hai cơ chế này Hỗ trợ chuyên tin nhắn trên bộ nhớ được chia sẻ dễ đàng hơn đáng kể: Vì

về cơ bản, các tin nhắn gửi dữ liệu từ bộ nhớ này sang bộ nhớ khác, gửi tin nhắn có thê được thực

hiện bằng sao chép từ một phần của không gian địa chỉ sang phần khác Những khó khăn lớn nảy

sinh từ việc xử lý các thông điệp có thể bị lệch và tùy ý độ dài trong hệ thống bộ nhớ thường được định hướng theo hướng chuyền giao được căn chỉnh khối đữ liệu được tổ chức dưới dạng khối bộ

nhớ cache Những khó khăn này có thê được khắc phục bằng các hình phạt hiệu suất nhỏ trong phần mèm hoặc về cơ bản là không có hình phạt nào,sử dụng một lượng nhỏ hỗ trợ phần cứng

Hỗ trợ hiệu quá bộ nhớ được chia sẻ trên phần cứng đề truyền tin nhắn khó hơn nhiều Không

có hỗ trợ phần cứng rõ ràng cho bộ nhớ dùng chung, tất cả các tham chiêu bộ nhớ dùng chung cần

liên quan đến hệ điều hành đề cung cấp tính năng dịch địa chỉ và bảo vệ bộ nhớ, cũng như dịch

Trang 14

các tham chiếu bộ nhớ thành các lần gửi và nhận thông báo Tải trọng và cửa hàng thường di chuyền nhỏ lượng dữ liệu, vì vậy chi phí cao của việc xử lý các thông tin liên lạc này trong phần mềm hạn chế nghiêm trọng phạm vi ứng dụng mà hiệu suất của bộ nhớ dùng chung dựa trên phần

mềm có thể chấp nhận được Một lĩnh vực nghiên cứu đang diễn ra là thăm dò khi nào một mô hình dựa trên phần mềm được chấp nhận và liệu một cơ chế dựa trên phần mềm có thể sử dụng

được cho mức giao tiếp cao nhất trong một hệ thông có cầu trúc phân cấp hay không Một hướng khả thi là sử dụng bộ nhớ ảo cơ chế chia sẻ các đối tượng ở cấp độ trang, một kỹ thuật được gọi

là chia sé ảo kỉ niệm; chúng ta sẽ thảo luận về cách tiếp cận này trong phân 6 I0

Trong các bộ đa xử lý bộ nhớ phân tán, mô hình bộ nhớ và cơ chế giao tiếp phân biệt các bộ

đa xử lý Ban đầu, bộ nhớ phân tán đa xử lý được xây dựng với tính năng truyền thông điệp, vì nó

rõ ràng đơn giản hơn và nhiều nhà thiết kế và nhà nghiên cứu không tin rằng không gian địa chỉ

dùng chung có thé duoc xây dựng với bộ nhớ phân tán Giao tiếp bộ nhớ chia sẻ đã được hỗ trợ

trong hầu hết mọi bộ xử lý đa xử lý được thiết kế từ năm 1995 Phần cứng nào các cơ chế giao tiếp sẽ được hỗ trợ trong các bộ đa xử lý lớn nhất (được gọi là bộ xử lý song song lớn hoặc MPP), thường có nhiều hơn 100 bộ xử lý, không rõ ràng: bộ nhớ chia sẻ, truyền thông điệp và phương pháp tiếp cận kết hợp đều là những đối thủ Bất chấp tầm quan trọng mang tính biêu tượng của các MPP, như đã xử lý là một phần nhỏ của thị trường và có ít hoặc không có ảnh hưởng trên các

bộ đa xử lý chính với hàng chục bộ xử lý Chúng tôi sẽ trở lại một thảo luận về các khả năng và

xu hướng đối với các MPP trong phần nhận xét kết luận và quan điểm lịch sử ở cuỗi chương này SMP, mà chúng tôi tập trung vào trong Phần 6.3, chiếm ưu thé rat lớn trong các bộ đa xử lý DSM về quy mô thị trường (cả đơn vị và đô la) và SMP có thể sẽ kiến trúc được lựa chọn cho các

bộ đa xử lý trên chip Đối với các bộ đa xử lý quy mô vừa phải (> 8 bộ xử lý), xu hướng kỹ thuật dài hạn ưu tiên phân phối bộ nhớ,đây cũng có thể là cách tiếp cận chủ đạo khi các SMP trên chip được sử dụng như các khối xây dựng trong tương lai Các bộ đa xử lý bộ nhớ dùng chung phân tán này là một phần mở rộng tự nhiên của các bộ đa xử lý tập trung thống trị thị trường, vì vậy chúng ta sẽ thảo luận về các kiến trúc này trong phần 6.5 Ngược lại, đa máy tính hoặc đa xử lý truyền thông điệp được xây dựng dựa trên những tiến bộ trong công nghệ mạng, như chúng ta đã thảo luận trong chương trước Vì các công nghệ được sử dụng là được mô tả kỹ trong chương cuối, chúng tôi tập trung chú ý vào các phương pháp tiếp cận bộ nhớ dùng chung trong phần còn lại của chương này

© Những thách thức của xử lý song song

Hai rào cản quan trọng, đều có thê giải thích được bằng Amdahl°s Law, khiến việc xử lý song song trở nên khó khăn Đầu tiên phái làm với tính song song hạn chế có sẵn trong chương trình

và thứ hai phát sinh từ chi phí truyền thông tương đối cao Những hạn chế trong chế độ song song

có sẵn làm cho việc đạt được tốc độ tốt trong bat kỳ bộ xử lý song song nào, như Ví dụ đầu tiên

của chúng tôi cho thay

Trang 15

VÍ DỤ: Giả sử bạn muốn tăng tốc độ 80 với 100 bộ vi xử lý Phân số của phép tính ban đầu có

thê được tuần tự?

ĐÁP ÁN: Định luật Amdahl là

1 tăng tốc = c 5

ph mn nhang cao

tốc độmggạạo Ô ( — PHẨM nhỏnng cạo)

Để đơn giản trong ví dụ này, hãy gia sử rằng chương trình chỉ hoạt động trong hai chế độ: song song với tất cả các bộ xử lý được sử dụng đây đủ, đó là chế độ nâng cao hoặc nối tiếp với chỉ một bộ xử lý được sử dụng Với sự đơn giản hóa này, tăng tốc trong chế độ nâng cao chỉ đơn giản là số lượng bộ xử lý, trong khi phần nhỏ của chế độ nâng cao là thời gian dành cho chế độ song song Thay thế vào phương trình trên:

80 = '

7 phần NNOsong song 100 + (1— phần nhỏyong song) ` >

Don giản hóa phương trình này sẽ mang lại

0.8 x phần nhỏng song + SỐ x (L— ph nhỏyøg song) = |

80 — 79.2 x phi nhỏ»ng sạng =

° 5 80 - 1

phầm nhang song = 79.9 PAM NNO gong song = 0.9975

Do đó, để đạt được tốc độ 80 với 100 bộ xử lý, chỉ có thê thực hiện tuần tự 0,25% tính toán ban đầu Tất nhiên, để đạt được tốc độ tuyến tính (tăng tốc độ của n với n bộ xử lý), toàn bộ

chương trình thường phải song song không có phân nối tiếp (Một ngoại lệ cho điều này là tăng

tốc độ siêu tuyến tínhđiều đó xảy ra do bộ nhớ tăng lên và bộ nhớ đệm có sẵn khi số lượng bộ xử

lý được tăng lên Hiệu ứng này thường không lớn lắm và hiếm khi chia tỷ lệ tuyến tính với số bộ

xử lý.) Trong thực tế, các chương trình không chỉ hoạt động ở chế độ hoàn toàn song song hoặc tuần tự, nhưng thường sử dụng ít hơn sự bô sung đầy đủ của các bộ vi xử lý khi chạy ở chế độ song song Bài tập 6.2 yêu cầu bạn mở rộng Luật Amdahl đề giải quyết một trường hợp như vậy Thách thức lớn thứ hai trong xử lý song song liên quan đến độ trễ lớn truy cập từ xa trong một bộ xử lý song song Trong các bộ đa xử lý bộ nhớ dùng chung hiện có, giao tiếp dữ liệu giữa

các bộ xử lý có thê có giá từ 100 chu kỳ xung nhịp đến hơn 1.000 chu kỳ xung nhịp, tùy thuộc

vào cơ chế giao tiếp, loại mạng kết nỗi và quy mô của bộ đa xử lý Hình 6.3 cho thấy sự chậm trễ

Trang 16

khứ hồi điển hình đề truy xuất một từ từ điều khiển từ xa bộ nhớ cho một số bộ xử lý song song dùng chung bộ nhớ khác nhau

Ảnh hưởng của sự chậm trễ liên lạc kéo dài rõ ràng là rất đáng kê Hãy xem xét một ví dụ đơn giản

VÍ DỤ:

Giả sử chúng ta có một ứng dụng chạy trên bộ đa xử lý 32 bộ xử lý, có thời gian 400 ns

đề xử lý tham chiếu đến bộ nhớ từ xa Vì Ứng dụng này, giả định rang tat cả các tham chiếu ngoại trừ những liên quan đến giao tiếp đạt được trong hệ thông phân cấp bộ nhớ

cục bộ, điều này

Nămvận SMP Bộxử mg kết nỗi Thời gian truy cập bộ chuyển hoặc lý nhớ từ xa điển hình

Sun Starfire 1996 SMP 64 Multiple 500 ns

SGI Origin 3000 1999 NUMA 512 Fat 500 ns

hypercube Cray T3E 1996 NUMA — 2,048 2-way 3D 300 ns

Có thê chỉ hơi bi quan Bộ xử lý bị dừng theo yêu cầu từ xa và tốc độ xung nhịp của bộ xử

lý là IGHz Nếu IPC cơ sở (giả sử rằng tất cả các tham chiếu được truy cập trong bộ nhớ cache)

là 2, thì bộ đa xử lý sẽ nhanh hơn bao nhiêu nêu có không giao tiếp so với nếu 0,2% hướng dẫn liên quan đến điều khiến từ xa tham chiếu giao tiếp?

ĐÁP ÁN: Dầu tiên đơn giản hơn là tính CPI CPI hiệu quá cho bộ đa xử lý có tham chiếu từ xa

Trang 17

= 0.5 x0.2% x Chi phí yêu cầu từ xa

Chi phí yêu cầu từ xa là

Chỉ phí yêu cu từ xa _ 400ns

= 400 chu kỳ

Thơi gian chu kỳ lns on KY

Do đó, chúng tôi có thé tinh toan CPI:

CPI = 0.5 + 0.8 = 1.3

Bộ đa xử lý với tất cả các tham chiêu cục bộ nhanh hơn I,3 / 0,5 = 2,6 lần Trong thực tế,

phân tích hiệu suất phức tạp hơn nhiều, vì một số một phần nhỏ của các tham chiếu phi thông tin

sẽ bị thiếu trong hệ thông phân cấp cục bộ và thời gian truy cập từ xa không có một giá trị hằng

số duy nhất Ví dụ: chi phí của một tham chiếu từ xa có thê tệ hơn một chút,vì tranh cãi gây ra bởi

nhiều tham chiếu cô găng sử dụng kết nối toàn cầu có thê dẫn đến sự chậm trễ gia tăng Những vấn đề này — không đủ song song và giao tiếp từ xa có độ trễ dài — là hai thách thức lớn nhất trong việc sử dụng đa xử lý Vấn đề của ứng dụng song song không đầy đủ phải bị tấn công chủ yếu trong phần mềm với các thuật toán mới có thê có hiệu suất song song tốt hơn Giảm tác động của độ trễ từ xa dài có thé bi tan công bởi cả kiến trúc và lập trình viên Ví dụ: chúng tôi có thể giảm tần suất truy cập từ xa bằng cơ chế phần cứng, chẳng hạn như bộ nhớ đệm

dữ liệu được chia sẻ hoặc với cơ chế phần mềm, chăng hạn như cơ cấu lại đữ liệu để tạo nhiều truy cập cục bộ hơn Chúng tôi có thê có gắng chịu đựng độ trễ bằng cách sử dụng tìm nạp trước hoặc đa luông, mà chúng tôi đã kiêm tra trong Chương 4 và 5

Phần lớn chương này tập trung vào các kỹ thuật đề giảm tác động của độ trễ truyền thông

từ xa kéo dài Ví dụ, phần 6.3 và 6.5 thảo luận về cách Bộ nhớ đệm có thê được sử dụng để giảm tần suất truy cập từ xa, đồng thời duy trì một cái nhìn nhất quán về bộ nhớ Phần 6.7 thảo luận về đồng bộ hóa, vì nó vốn dĩ liên quan đến giao tiếp giữa các bộ xử lý, là một nút thắt cô chai tiềm

ân bồ sung Phần 6.8 nói về kỹ thuật ân độ trễ và mô hình nhất quán bộ nhớ cho bộ nhớ dùng

chung Trước khi đi sâu vào các chủ đề này, điều hữu ích là có một số hiểu biết về các đặc điểm của các ứng dụng song song, cho cả hiểu rõ hơn về kết quả chúng tôi hiển thị bằng cách sử dụng một số ứng dụng này và đề hiệu rõ hơn về những thách thức trong việc viết song song hiệu quả các chương trình

6.2 DAC DIEM CUA MIEN UNG DUNG

Trong các chương trước, chúng tôi đã xem xét hiệu suất và đặc điểm của các ứng dụng chỉ với một phần nhỏ cái nhìn sâu sắc về cấu trúc của các ứng dụng Đề hiểu các yếu tố chính của hiệu suất bộ xử lý, chăng hạn như bộ nhớ đệm và pipelining, kiến thức chung về một ứng dụng

thường là đầy đủ, mặc dù chúng tôi thấy rằng kiến thức ứng dụng sâu hơn là cần thiết đề khai thác

cac cap cao hon cua ilp

Trang 18

Trong quá trình xử lý song song, các đặc tính quan trọng về hiệu suất bổ sung—chẳng hạn như cân bằng tải, đồng bộ hóa và độ nhạy với độ trễ của bộ nhớ — thường phụ thuộc vào các đặc tính cấp cao của ứng dụng Những đặc điểm này bao gồm các yếu tô như cách dữ liệu được phân phối, cầu trúc của một thuật toán và các mẫu truy cập theo thời gian và không gian vào dữ liệu

Do đó tại điểm chúng tôi dành thời gian đề kiểm tra ba lớp khối lượng công việc khác nhau

Ba miền khác nhau của khối lượng công việc đa xử lý mà chúng tôi khám phá là khối lượng công việc thương mại, bao gồm xử lý giao dịch, hỗ trợ quyết định và tìm kiếm trên web; khối lượng công việc được lập trình nhiều với hành vi của hệ điều hành bao gồm; và khối lượng công việc bao gồm các chương trình song song riêng lẻ từ miền kỹ thuật tin học

e Khối lượng công việc thương mại

Khối lượng công việc thương mại của chúng tôi bao gôm ba ứng dụng:

1 Khối lượng công việc xử lý giao dịch trực tuyên (OLTP) được mô phỏng theo TPC-B (có hành vị bộ nhớ tương tự như người anh em họ TPC-C mới hơn của nó) và sử dung Oracle 7.3.2 làm cơ sở dữ liệu cơ bản Khối lượng công việc bao gồm một tập hợp các quy trình khách tạo ra các yêu cầu và một tập hợp các máy chủ xử lý chúng Có Các quy trình máy chủ tiêu tốn 85% thời gian của người dùng, phần còn lại sẽ của khách hàng Mặc dù độ trễ I/O được ân bằng cách điều chỉnh cần thận và đủ yêu cầu giữ cho CPU bận, các quá trình may chủ thường chặn [ / O sau khoảng 25.000 lệnh

2 Khối lượng công việc của hệ thống hỗ trợ quyết định (DSS) dựa trên TPC-D và cũng sử dụng Oracle 7.3.2 làm cơ sở dữ liệu cơ bản Khối lượng công việc chỉ bao gồm sáu trong sốL7 truy vấn đọc trong TPC-D, mặc dù sáu truy vẫn được kiểm tra trong điểm chuân mở rộng phạm vi hoạt động trong toàn bộ điểm chuẩn Đề ân độ trễ IC,song song được khai thác cả trong các truy vấn, nơi mà song song được phát hiện trong quá trình xây dựng truy vấn và trên các truy vấn Chặn cuộc gọi nhiều ít thường xuyên hơn trong tiêu chuân OLTP; sáu truy vấn trung bình khoảng l,5triệu hướng dẫn trước khi chặn

3 Điểm chuân tìm kiếm chỉ mục web (Altavista) dựa trên việc tìm kiếm bộ nhớ phiên bản

được ánh xạ của cơ sở dữ liệu Altavista (200 GB) Vòng lặp bên trong rất nhiều được tối

ưu hóa Vì cầu trúc tìm kiếm là tĩnh nên cần ít đồng bộ hóa giữa các luồng

Phân thời gian dành cho chế độ người dùng, trong hạt nhân và trong vòng lặp nhàn rỗi là được thê hiện trong Hình 6.4 Tần suất I / O tăng cả thời gian hạt nhân và thời gian nhàn rỗi (xem mục nhập OLTP, mục nhập có tỷ lệ I / O trên tính toán lớn nhất) Altavista, ánh xạ toàn bộ cơ sở dữ

liệu tìm kiếm vào bộ nhớ và đã được điều chỉnh rộng rãi, hiển thị ít nhân nhất hoặc thời gian nhàn

roi

Trang 19

Điểm chuẩn %4 Chế độ người % Nhân thời % Thời gian CPU

dùng thời gian gian không hoạt động

DSS (pham vi cho sáu 82-94% 3-5% 4-13%

truy van)

DSS (trung binh trén tat ca 87% 3.7% 9.3%

cac truy van)

HINH 6.4 Su phan bé thoi gian thực hiện trong các khối lượng công việc thương mại Điểm chuẩn

OLTP có giá trị lớn nhất một phần của cả thời gian hệ điều hành và thời gian nhàn rỗi của CPU (là thời gian chờ I/ O) Điểm chuân DSS cho thấy thời gian sử dụng hệ điều hành ít hơn nhiều, vì

nó thực hiện ít HO hơn, nhưng vẫn còn hơn 9% thời gian nhàn rỗi Việc điều chỉnh rộng rãi của

công cụ tìm kiếm Altavista là rõ ràng trong các phép đo này Dữ liệu cho khối lượng công việc này được thu thập bởi Barroso et al [1998] trén Alphaserver 4100 4 bộ xử ly

® Khối lượng công việc đa chương trình và hệ điều hành

Đối với các bộ đa xử lý quy mô nhỏ, chúng tôi cũng sẽ xem xét khối lượng công việc được lập trình đa bao gồm cả hoạt động của người dùng và hoạt động của hệ điều hành Khối lượng công

việc được sử dụng là hai các bản sao độc lập của giai đoạn biên dịch của điểm chuẩn Andrew

Biên dịch giai đoạn bao gồm một chế tạo song song sử dụng tám bộ xử lý Khối lượng công việc chạy cho 5,24 giây trên tám bộ xử lý, tạo ra 203 quy trình và thực hiện 787 yêu cầu đĩa trên ba hệ thống tệp khác nhau Khối lượng công việc được chạy với 12§MB bộ nhớ và không có hoạt động phân trang nào diễn ra

Khối lượng công việc có ba giai đoạn riêng biệt: biên soạn các điểm chuẩn, liên quan đến hoạt

động tính toán đáng kế: cài đặt các tệp đối tượng trong thư viện; và xóa các tệp đối tượng Giai

đoạn cuối hoàn toàn bị chi phối bởi I / O và chỉ hai quá trình đang hoạt động (một cho mỗi lần

chạy) Trong giai đoạn giữa, I/ O cũng đóng một vai trò quan trọng và CPU phần lớn không hoạt

động

Bởi vì cả thời gian nhàn rỗi của CPU và hiệu suất bộ đệm lệnh điều quan trong trong khối

lượng công việc này, chúng tôi kiểm tra hai vẫn đề này ở đây, tập trung vào bộ nhớ đệm dữ liệu biểu diễn ở phần sau của chương Đối với các phép đo khối lượng công việc, chúng tôi giá định

sau bộ nhớ và hệ thống 1/O:

Trang 20

Hệ thống I / O Bộ nhớ

Bộ đệm lệnh cấp I 32K byte, kết hợp bộ hai chiều với khối 64 byte, thời gian truy cập một

chu ky dong ho

Bộ nhớ đệm dữ liệu 32K byte, kết hợp bột hai chiều với khối 32bit, thời gian truy cập một

cap | chu ky dong ho

Bộ nhé dém cap2 1 Mbyte hợp nhất, bộ hai chiều liên kết với khối 128 byte, thời gian truy

cap 10 chu ky dong ho

Bộ nhớ chính Bộ nhớ duy nhất trên xe buýt với thời gian truy cập là 100 chu kỳ cộng

hòa

Hệ thống đĩa Độ trễ truy cập cô định là 3 ms (ít hơn bình thường đề giảm thời gian

nhàn rỗi) Hình 6.5 cho thấy thời gian thực thi được chia nhỏ như thế nào đối với tám bộ xử lý bằng cách sử

dụng các tham số vừa được liệt kê Thời gian thực thi được chia thành bốn thành phan:nhan roi

— thực thi trong vòng lặp nhàn rỗi của chế độ hạt nhân; người dùng — thực thi trong mã người

dùng; đồng bộ hóa — thực hiện hoặc chờ đợi các biến đồng bộ hóa; và hạt nhân—thực thi trong

hệ điều hành không nhàn rỗi hoặc không truy cập đồng bộ hóa

Không giống như khối lượng công việc khoa học song song, khối lượng công việc đa

chương trình này có mắt hiệu suất bộ nhớ cache hướng dẫn đáng kẻ, ít nhất là đối với hệ điều hành Hướng dẫn tỷ lệ bỏ lỡ bộ nhớ cache trong hệ điều hành đối với kích thước khôi 64 byte, hai

bộ đệm kết hợp bộ khác nhau từ 1,7% đối với bộ đệm 32 KB đến 0.2% đối với bộ đệm 256 KB Cấp độ người dùng, hướng dẫn số lần bỏ sót bộ nhớ cache chiếm khoảng một phần sáu tỷ lệ hệ điều hành, trên nhiều kích thước bộ nhớ cache khác nhau

Người dùng Thực thihạt ng bộ hóa CPU Idle (chờ

thực hiện

HÌNH 6.5 Sự phân bồ thời gian thực hiện song song đa chương trình tạo nên khối lượng công việc Phần cao thời gian nhàn rỗi là do độ trễ của đĩa khi chí một trong tám quy trình hoạt động Những dữ liệu này và các phép đo tiếp theo cho khối lượng công việc này được thu thập bằng hệ

thống SimOS [Rosenblum 1995] Cac lần chạy và thu thập dữ liệu thực tế là được thực hiện bởi

M Rosenblum, S Herrod và E Bugnion của Đại học Stanford, sử dụng hệ thống mô phỏng SimOS

Trang 21

e Ung dụng Khoa học / Kỹ thuật

Khối lượng công việc song song khoa học / kỹ thuật của chúng tôi bao gồm hai ứng dụng và

hai hạt nhân tính toán Các hạt nhân là một FFT (biến đôi Fourier nhanh) và sự phân hủy LU,

được chọn vì chúng thường đại diện cho các kỹ thuật được sử dụng trong nhiều ứng dụng khác nhau và có các đặc tính hiệu suất tiêu biêu cho nhiều ứng dụng khoa học song song Ngoài ra, các nhân có các phân đoạn mã nhỏ có hành vi mà chúng tôi có thể hiểu và trực tiếp theo dõi đến các đặc điểm kiến trúc cụ thê Giống như nhiều ứng dụng khoa học, I / O là về cơ bản không tồn tại trong khối lượng công việc này

Hai ứng dụng mà chúng tôi sử dụng trong chương này là Barnes và Ocean,đại diện cho hai kiểu tính toán song song quan trọng nhưng rất khác nhau chúng tôi mô tả ngắn gọn từng ứng dụng và hạt nhân này và mô tả hành vi cơ bản của chứng về tính song song và giao tiếp Chúng tôi mô tả các vấn đề được giải quyết cho một bộ đa xử lý bộ nhớ dùng chung phân tán; chắc chắn phân tách đữ liệu mà chúng tôi mô tả là không cần thiết trên các bộ xử lý đa có một bộ nhớ tập trung duy nhất

e@ Nhan FFT

Biến đôi Fourier nhanh (FFT) là hạt nhân quan trọng trong các ứng dụng sử dụng phương pháp quang phố, phát sinh trong các lĩnh vực từ xử lý tín hiệu đến dòng chất lỏng đến mô hình khí hậu Ứng dụng FFT mà chúng tôi nghiên cứu ở đây là phiên bản một chiều của thuật toán song song

cho FFT số phức Nó có thời gian thực hiện tuần tự cho n điểm dữ liệu của n log n Thuật toán sử

dụng cơ số cao (bằng n) dé giảm thiểu giao tiếp Các phép đo được trình bày trong chương này là

được thu thập cho tập dữ liệu đầu vào triệu điểm

Co ba câu trúc dữ liệu chính: mảng đầu vào và đâu ra của đữ liệu được biên đôi và là gôc của

ma trận thông nhât, được tính toán trước và chỉ đọc trong quá trình thực hiện Tât cả các mảng

được tô chức dưới dạng ma trận vuông Sáu bước trong thuật toán như sau:

1 Chuyển đối ma trận dữ liệu

2 Thực hiện ID FFT trên mỗi hàng của ma trận dữ liệu

3 Nhân các gốc của ma trận thống nhất với ma trận dữ liệu và viết kết quả vào ma trận dữ liệu

4 Chuyên đối ma trận dữ liệu

5 Thực hiện ID FFT trên mỗi hàng của ma trận dữ liệu

6 Chuyên đối ma trận dữ liệu

Ma trận dữ liệu và gốc của ma trận thống nhất được phân vùng giữa các bộ xử lý theo các phần hàng liền kề, để mỗi phân vùng của bộ xử lý nằm trong bộ nhớ cục bộ riêng Hàng đầu tiên của gốc của ma trận thông nhất được truy cập nhiều bởi tất cả các bộ xử lý và thường được sao chép,

Trang 22

như chúng tôi làm, trong bước đầu tiên của thuật toán vừa được hiển thị Dữ liệu chuyên vị đảm bảo tính cục bộ tốt trong các bước FFT riêng lẻ, nếu không sẽ truy cập dữ liệu phi địa phương Thông tin liên lạc duy nhất là trong các giai đoạn chuyên vị, đòi hỏi tất cả các truyền thông số

lượng lớn dữ liệu Các cột con liền kề trong các hàng được chỉ định cho một bộ xử lý được nhóm

thành các khối, được chuyển vị và đặt vào vị trí thích hợp của ma trận đích Mỗi bộ xử lý chuyên đổi một khối cục bộ và gửi một khối đến từng bộ xử lý khác trong hệ thống Mặc dù không sử

dụng lại các từ riêng lẻ trong chuyên đoạn, với bộ nhớ cache dài ngăn chặn chuyên vị đề tận dụng lợi thế của không gian địa phương được cung cấp bởi các khối dài trong ma trận nguồn

e Nhan LU

LU la nhan tu hoa LU cua m6t ma trận dày đặc và là đại diện của nhiều tính toán đại số tuyến

tính, chăng hạn như thừa số hóa QR, thừa số hóa Cholesky,và các phương pháp eigenvalue Đối với ma trận có kích thước n * n thời gian chạy là n3 và độ song song tỉ lệ với n2 Việc phân tích

thừa số LU day đặc có thê được thực hiện một cách hiệu quả bằng cách chặn thuật toán, sử dụng

các kỹ thuật trong Chương 5, dẫn đến cho hành vi bộ nhớ cache hiệu quả cao và giao tiếp thấp Sau khi chặn thuật toán, phép tính chi phối là một phép nhân ma trận dày đặc xảy ra trong vòng

trong cùng Kích thước khối được chọn đủ nhỏ để giữ bộ nhớ đệm tỷ lệ bỏ lỡ thấp và đủ lớn để

giảm thời gian dành cho các phần ít song song hơn của tính toán Kích thước khối tương đối nhỏ (8 * 8 hoặc I6 * 16) có xu hướng đáp ứng cả hai tiêu chí

Hai chi tiết rat quan trọng để giảm giao tiếp giữa các bộ xử lý Ngày thứ nhất,các khối của ma trận được chí định cho các bộ xử lý bằng cách sử dụng xếp lớp 2D:nB*nB (trong đó mỗi khối là

B *B) ma trận các khối được phân bồ bằng cách đặt một lưới có kích thước p*p trên ma trận các

khối theo kiểu cắt cookie cho đến khi tat cả các khối được phân bổ cho một bộ xử lý Thứ hai,

phép nhân ma trận dày đặc được thực hiện bởi bộ xử lý sở hữu khối đích Với việc chặn và phân

bồ này kế hoạch, thông tin liên lạc trong quá trình giảm vừa thường xuyên vừa có thê dự đoán được Đối với các phép đo trong chương này, đầu vào là ma trận 512*512 và khối I6*16 được sử

dụng

Một cách tự nhiên để mã hóa nhân tử LU bị chặn của ma trận 2D trong một chia sẻ không gian

địa chỉ là sử dụng một mảng 2D đề biểu diễn ma trận Bởi vì các khối là được phân bồ theo kiểu phân tách lát gạch và một khối không liền nhau trong địa chỉ không gian trong một mảng 2D, rất khó phân bồ các khối trong bộ nhớ cục bộ của bộ xử lý sở hữu chúng Giải pháp là đảm bảo rằng các khối được gán cho bộ xử lý được phân bô cục bộ và liền kề bằng cách sử dụng mảng 4D (với

hai thứ nguyên đầu tiên chỉ định số khối trong lưới 2D các khối và hai tiếp theo chỉ định phần tử

trong khối)

e Ứng dụng Barnes

Trang 23

Barnes là một triển khai của thuật toán n-body Barnes-Hut giải quyết một vấn đề trong quá trình tiễn hóa thiên hà Các thuật toán N-body mô phỏng sự tương tác giữa các cột số lượng lớn các vật thê có lực tương tác giữa chúng Trong trường hợp này, các thiên thê đại diện cho tập hợp các ngôi sao và lực là lực hấp dẫn Giảm Thời gian tính toán cần thiết để mô hình hóa hoàn toàn tất cả các tương tác riêng lẻ giữa các cơ thể, chúng phát triên như n2, thuật toán n-body tận dụng lợi thế thực tế là các lực giảm theo khoảng cách (Ví dụ: trọng lực giảm xuống như | / d2, trong

đó d là khoảng cách giữa hai phần tử.) Thuật toán Barnes-Hut tận dụng đặc tính này bằng cách xử

lý một tập hợp các phần tử là"Ở xa" từ vật thê khác như một điểm duy nhất ở tâm khối lượng của

bộ sưu tập và có khối lượng bằng khối lượng của bộ sưu tập Nếu cơ thê đủ xa so với bất kỳ trong

bộ sưu tập, sau đó lỗi được đưa vào sẽ không đáng kẻ Các bộ sưu tập được cầu trúc theo kiểu

phân cấp, có thể được thê hiện trên cây Thuật toán này mang lại thời gian chạy n log n với độ song song ty lệ với n

Thuật toán Barnes-Hut sử dụng một octree (mỗi nút có tôi đa tám nút con)đề đại diện cho tam hình khối trong một phần không gian Mỗi nút sau đó đại diện cho tập hợp các phần trong cây con

bắt nguồn từ nút đó, mà chúng ta gọi là một ô Bởi vì mật độ không gian khác nhau và lá đại diện

cho các cơ thê riêng lẻ,độ sâu của cây khác nhau Cây được đi ngang một lần trên mỗi thân để

tính lưới lực tác dụng lên vật đó Thuật toán tính toán lực cho một cơ thê bắt đầu ở gốc của cây Đối với mọi nút trong cây mà nó truy cập, thuật toán xác định xem khối lượng tâm của ô được đại

diện bởi cây con bắt nguồn từ nút là "xa đủ xa ”khỏi cơ thể Nếu vậy, toàn bộ cây con dưới nút đó

được xấp xi bởi một điểm duy nhất tại tâm khối lượng của ô và lực ở tâm này của khối lượng tác

động lên cơ thê được tính toán Mặt khác, nếu khối tâm không đủ xa, ô phải được "mở” và từng cây con của nó được truy cập.Khoảng cách giữa phần thân và ô, cùng với dung sai lỗi,xác định ô

nảo phải được mở G1ai đoạn tính toán lực lượng nào chiếm ưu thế thời gian thực hiện Chương

này thực hiện các phép đo bằng cách sử dụng các cơ thê 16K; tiêu chí để xác định xem một ô có cần được mở hay không được đặt ở giữa phạm vi thường được sử dụng trong thực tế

Đạt được hiệu suất song song hiệu quả trên Barnes-Hut là một thách thức vì sự phân bố của các cơ quan không dong đều và thay đôi theo thời gian, làm cho phân chia công việc giữa các bộ

xử lý và duy trì vị trí tốt của tham khảo khó Chúng tôi được giúp đỡ bởi hai thuộc tính: hệ thông phát triển chậm; và bởi vì lực hấp dẫn rơi xuống nhanh chóng, với xác suất cao, mỗi ô yêu cầu chạm vào một số lượng nhỏ các ô khác, hầu hết trong số đó đã được sử dụng trên bước thời gian cuối cùng Cây có thể được phân vùng bằng cách cấp cho mỗi bộ xử lý một cây con.Nhiều quyền truy cập cần thiết dé tính toán lực lên một cơ thể trong cây con sẽ đến các cơ quan khác trong cây con Vì khối lượng công việc được liên kết với một cây con khác nhau (các ô ở phần không gian dày đặc sẽ cần truy cập vào nhiều ô hơn), kích thước của cây con được phân bô cho một bộ xử lý dựa trên một số thước đo của công việc có phải làm (ví dụ: nó cần bao nhiêu ô khác đề truy cập), thay vì chỉ vào số lượng nút trong cây con Bằng cách phân vùng biểu diễn octree, chúng tôi có thê có được cân bằng tải tốt và vị trí tham chiếu tốt, trong khi vẫn giữ chi phí phân vùng thấp

Trang 24

Mặc dù sơ đồ phân vùng này dẫn đến kết quả tốt tham chiêu, các tham chiếu dữ liệu kết quả có

xu hướng dành cho một lượng nhỏ dữ liệu và không có cấu trúc Do đó, kế hoạch này đòi hỏi một

sự triển khai hiệu qua giao tiếp bo nhé chia sẻ

e Ung dung Đại dương

Dai dương mô phỏng ảnh hưởng của dòng xoáy và dòng ranh giới đối với dòng chảy quy mô lớn trong lòng đại dương Nó sử dụng kỹ thuật đa lưới Gauss-Seidel màu đỏ-đen bị hạn chế để giải một tập hợp các phương trình đạo hàm riêng elip Gauss-Seidel đỏ-đen là một kỹ thuật lặp lại

tô màu các điểm trong lưới để cập nhật nhất quán từng điểm dựa trên các giá trị trước đó của các

điểm lân cận Multigrid Phương pháp giải phương trình sai phân hữu hạn bằng cách lặp lại sử

dụng lưới phân cấp.Mỗi lưới trong hệ thông phân cấp có ít điểm hơn lưới bên dưới và là một giá

trị gần đúng với lưới thấp hơn Lưới mịn hơn làm tăng độ chính xác và do đó tốc độ hội tụ, đồng

thời yêu cầu nhiều thời gian thực hiện hơn, vì nó có nhiều điểm dữ liệu hơn Có đi chuyên lên hay xuống trong hệ thống phân cấp của lưới được sử dụng cho lần lặp tiếp theo hay không được xác

định bởi tốc độ thay đối của các giá trị dữ liệu Ước tính của lỗi tại mỗi bước thời gian được sử

dụng đề quyết định có ở lại cùng một lưới hay không, chuyên sang lưới thô hơn hoặc chuyên sang lưới mịn hơn Khi sự lặp lại hội tụ ở mức tốt nhất cấp, một giải pháp đã đạt được Mỗi lần lặp có n2 công việc cho một lưới nền và lượng song song nhu nhau

Các mảng đại diện cho mỗi lưới được phân bố động và định kích thước cho Vấn đề cụ thé

Toàn bộ lưu vực đại dương được phân chia thành các phân con hình vuông (như đóng càng tốt) được cấp phát trong phần không gian địa chỉ tương ứng với bộ nhớ cục bộ của các bộ xử lý riêng

lẻ, được gán trách nhiệm cho mạng con Đối với các phép đo trong chương này, chúng tôi sử dụng đầu vào có 130*130 điểm lưới Có năm bước trong một lần lặp thời gian Từ Dữ liệu được trao

đôi giữa các bước, tất cả các bộ xử lý hiện tại sẽ đồng bộ hóa tại cuối mỗi bước trước khi chuyên

sang bước tiếp theo Giao tiếp xảy ra khi các điểm ranh giới của một lưới con được truy cập bởi

lưới con liền kề theo kiểu gần nhất

Tính toán / Giao tiếp cho các chương trình song song Một đặc điểm chính trong việc xác định hiệu suất của các chương trình song song là tỷ lệ giữa tính toán và giao tiếp Nếu tỷ lệ này cao, điều đó có nghĩa là ứng dụng có rất nhiều tính toán cho mỗi dữ liệu được giao tiếp Như chúng ta

đã thay trong phan 6.1, giao tiếp là một phần tốn kém của tính toán song song: do đó tỷ lệ tính toán trên giao tiếp cao rất có lợi Đang xử lý song song môi trường, chúng tôi quan tâm đến việc

tỷ lệ tính toán trên giao tiếp thay đôi như thế nào khi chúng tôi tăng số lượng bộ xử lý, quy mô

của vấn đề hoặc cả hai Biết tỷ lệ thay đổi như thế nào khi chúng tôi tăng số lượng bộ xử lý làm

sáng tỏ mức độ ứng dụng có thê được tăng tốc Bởi vì chúng tôi thường quan tâm đến việc giải

quyết các vấn đề lớn hơn, điều quan trọng là phải hiểu cách thay đối kích thước tập dữ liệu ảnh

hưởng đến tý lệ này

Trang 25

Đề hiểu điều gì xảy ra một cách định lượng với tỷ lệ tính toán trên truyền thông khi chúng tôi thêm bộ xử lý, hãy xem xét điều gì xảy ra riêng biệt với tính toán và giao tiếp khi chúng tôi thêm

bộ xử lý hoặc tăng kích thước sự cố Hình 6.6 cho thấy rằng khi chúng tôi thêm bộ xử lý, đối với

các ứng dụng này, lượng tính toán trên mỗi bộ xử lý giảm tương ứng và lượng giao tiếp trên mỗi

bộ xử lý giảm chậm hơn Khi chúng ta tăng kích thước vấn đề, tính toán sẽ thay đôi theo độ phức

tap O () của thuật toán Liên lạc tỉ lệ phức tap hơn và phụ thuộc vào chỉ tiết của thuật toán; chúng tôi mô tả các hiện tượng cơ bản cho từng ứng dụng trong chú thích của hình 6.6

Tỷ lệ tính toán tông thê trên giao tiếp được tính toán từ tốc độ tăng trưởng của cá nhân trong lĩnh vực tính toán và giao tiếp Nhìn chung, tỷ lệ này tăng từ từ với sự gia tăng về kích thước tập

dữ liệu và giảm khi chúng tôi thêm bộ xử lý Đây Nhắc nhở chúng tôi rằng việc thực hiện một vẫn

đề kích thước cô định với nhiều bộ xử lý hơn dẫn đến tăng tính kém hiệu quả vì lượng giao tiếp

giữa các bộ xử lý ngày càng tăng Nó cũng cho chúng ta biết chúng ta phải thay đối kích thước

tập dữ liệu nhanh như thế nào khi chúng ta thêm bộ xử lý, để giữ cho phần thời gian giao tiếp cô

định Sau Ví dụ minh họa sự cân bằng này

VÍ DỤ:

Giả sử chúng ta biết rằng đối với một bộ đa xử lý nhất định, ứng dụng Ocean Dành 20% thời gian thực thi dé đợi liên lạc khi chạy trên bốn bộ xử lý Giả sử rằng chỉ phí của mỗi

sự kiện truyền thông là độc lập với số lượng bộ xử lý, điều này nói chung là không đúng,

vi chi phi truyền thông tăng theo số bộ xử lý Chúng ta có thể nhanh hơn bao nhiêu mong đợi Ocean chạy trên một máy 32 bộ xử lý với cùng một vấn đề kích thước? Phân thời gian thực hiện được dành cho giao tiếp trong trường hợp này? Chúng ta nên chạy một vận đề lớn hơn bao nhiêu nếu chúng ta muốn phân thời gian dành cho giao tiếp giống nhau?

DAP AN:

Tỷ số tính toán trên truyền thông của Ocean là níp, vì vậy nếu quy mô vấn đề là như nhau, tần số giao tiếp mở rộng bằng p

Trang 26

Chương Tỷ lệ tính Mở rộng quy mô giao Tỷ lệ tính toán-giao tiếp

đó, nó mở rộng với kích thước tập dữ liệu tỷ lệ tỷ lệ với cạnh của hình vuông có n điểm, cụ thể là;

vì lý do tương tự, giao tiếp trong hai ứng dụng này tỷ lệ nghịch với p Barnes có phức tạp nhất tính chất mở rộng Do sự tương tác giữa các cơ thể với nhau, số lượng cơ bản của tương tác giữa các cơ quan, đòi hỏi giao tiếp, quy mô như n Một yếu tô bố sung của log n là cần thiết để duy trì mỗi quan hệ giữa các phan tử Khi số lượng bộ xử lý tăng lên, tý lệ giao tiếp tỷ lệ nghịch với p Điều này có nghĩa là thời gian giao tiếp tăng lên 8 lần Chúng ta có thê sử dụng một biến thê trên Amdahl°s Law, thừa nhận rằng việc tính toán được giảm xuống nhưng thời gian giao tiếp

được tăng lên Nếu T là tong thoi gian thyc thi cho 4 bộ xử lý, thì thời gian thực hiện cho 32 bộ

Trang 27

mô Chúng tôi sẽ quay lại vấn đề quan trọng của việc mở rộng ứng dụng cho các bộ đa xử lý trong

cả các Vấn đề Cắt ngang và Sai lầm và Cạm bấy

6.3 NHỮNG KIÊN TRÚC ĐÓI XỨNG BỘ NHỚ ĐƯỢC CHIA SẺ

Đa nhân là thê loại máy tính mới dựa trên đa vi xử lý Sự nhỏ gọn, ít chỉ phí và hiệu suất

cao của vi xử lý có thê cho phép thiết kế và xây dựng bộ cấu trúc máy tính khiến nó có thể mang lại các điểm lợi trong việc sản xuất, tỉ lệ giữa chỉ phí và hiệu năng và độ tín cậy thông qua truyền thống của các nhà sản xuất máy tính Đa xử lý nó có thê trả thành cơ sở của tương lai, thứ 5 và

là thế hệ của dòng máy tính

Bell [1985]

Qua chương 5 ta đã thấy được sự sử dụng của bộ nhớ đệm lớn, đa cấp có thể làm giảm

đáng kê nhu cầu băng thông bộ nhớ của một bộ xử lý Nếu nhu cầu băng thông bộ nhớ chính của

một đơn xử lý giảm, đa xử lý có thê được cho phép để chia sẻ cùng bộ nhớ Bắt đầu những năm

1980, sự chú ý này, kết hợp với sự quy mô mới nỗi của vi xử lý, đã thúc đây những nhà thiết kế

dé tao ra những đa vi xử lý với kích thước nhỏ nơi vài bộ xử lý chia sẻ một bộ nhớ đơn vật lý kết nối bởi bus được chia sẻ Kiêu thiết kế này được gọi là bộ nhớ đối xứng được chia sẻ, bởi vì với mỗi bộ xử lý đều có quan hệ với bộ nhớ duy nhất được chia sẻ Bởi vì bộ xử lý kích thước nhỏ và

sự giảm sút quan trọng yêu cầu của băng thông bus đã đạt được bộ nhớ đệm lớn, các xử lý đôi xứng rất tiết kiệm chi phí, thê hiện sự hợp lý của số lượng băng thông bộ nhớ tồn tại Những mẫu

thiết kế gần đây như là đa xử lý có thể đặt cả bộ CPU và hệ thống con bộ nhớ đệm trên bảng mạch,

cái được gắn vào bus bộ gắn đa năng Những mẫu thiết kế gần đây được đặt tới 4 bộ xử lý trên một bảng mạch, và trong những thông báo gần đây của IBM bao gồm 2 bộ xử lý trên cùng die

Hình trên 6 [ trên trang 639 cho thấy một sơ đồ đơn giản của một bộ đa xử lý

Các bộ máy bộ nhớ được chia sẻ cỡ nhỏ thường hỗ trợ đệm bộ nhớ cho cả hai dữ liệu được chia sẻ và dữ liệu bí mật Dữ liệu bí mật được sử dụng bởi một bộ xử lý trong khi bộ nhớ được

chia sẻ được sử dụng bởi đa xử lý, chủ yếu cung cấp sự liên thông giữa bộ xử lý thông qua bộ đọc

và viết của dữ liệu được chia sẻ Khi một mục riêng tư được đệm bộ nhớ, giảm vừa phải lượng

thời gian truy cập cũng như băng thông bộ nhớ được yêu cầu Bởi vì không có bộ xử lý nào sử

dụng dữ liệu, biểu hiện của chương trình giống với hành vi của bộ xử lý đơn Khi đữ liệu được

Trang 28

chia sẻ được đệm bộ nhớ, giá trị được chia sẻ có thé duoc sao chép trong đa bộ nhớ đệm Ngoài

sự giảm thiêu độ trễ truy cập và băng thông bộ nhớ được yêu cầu, bản sao này cũng tạo ra sự

thuyên giảm trong sự tranh chấp có thê tổn tại trơn các mục dữ liệu được chia sẻ được đọc bởi đa

xử lý một cách đồng thời Việc đệm bộ nhớ của dữ liệu được chia sẻ, tuy nhiên tạo ra một van dé

mới, tính liên kết của bộ nhớ đệm

Tính liên kết của bộ nhớ đệm đa xử lý là gì?

Như chúng ta đã biết ở chương 6, sự giới thiệu của bộ nhớ đệm dẫn đến tính liên kết của

vấn đề trong các hoạt động in out, trong khi toàn cảnh của bộ nhớ thông qua bộ nhớ đệm có thê khác so với toàn cảnh của bộ nhớ thu được thông qua hệ thống con in/out Và giống với vấn đề

đó nó cũng tồn tại trong trường hợp của da xử lý, bởi vi toàn cảnh của bộ nhớ được diễn ra trong hai bộ xử lý khác nhau thông qua bộ nhớ đệm riêng biệt của nó Hình 6.7 minh họa vấn đề này và cho thấy làm cách nào hai bộ xử lý khác nhau có thê có được 2 giá trị khác nhau trong cùng một

vị trí Khó khăn này thường được gọi là vẫn đề liên kết của bộ nhớ đệm

Thời Bié Ẩ Bộ nhớ đệm nội dung Bộ nhớ đệm nội dung Kỉ niệm nội dung cho

HÌNH 6.7 Vấn đề liên kết bộ nhớ cache với duy nhất vị trí bộ nhớ (X), được đọc và ghi bởi hai

bộ xử lý (A và B) chúng ta giả định rằng cả bộ nhớ cache bao gồm cả hai biến và cả biển X có

được giá trị l Chúng ta cũng giả định một bộ nhớ cache được write-through; một bộ nhớ cache

write-back được thêm một số giá trị được thêm vào những biến chứng tương tự Sau khi giá trị của X được ghi lại bởi biến A, bộ nhớ đệm của A và bộ nhớ đều chứa giá trị mới, nhưng bộ nhớ đệm của B thì lại không, và nếu biến B đọc giá trị của biến X, nó sẽ nhận được gia tri 1! Một cách không chính thức, chúng ta có thê nói rằng hệ thống bộ nhớ là có tinh liên kết néu

bat ky lần đọc nào của một mục dữ liệu trả về giá trị đã được ghi gần đây của mục dữ liệu đó

Định nghĩa này, mặc dù hấp dẫn về mặt trực quan, khá mơ hồ và đơn giản hóa; thực tế rằng nó khá phức tạp hơn nhiều Cái định nghĩa đơn giản này bao gồm hai khía cạnh khác nhau của hanh

vi của bộ nhớ hệ thống, cả hai đều có khả năng viết các chương trình bộ nhớ dùng chung một cách chính xác Khía cạnh đầu tiên, được gọi là tính liên kết, nó xác định những giá trị nào có thể được

Trang 29

trả về bởi việc đọc Khía cạnh thứ hai, được gọi là Tính nhất quán, nó xác định khi giá trị được

viết sẽ được trả về bởi việc đọc Trước tiên, hãy nhìn vào tính nhất quán trước

e Một hệ thống bộ nhớ là có tính liên kết nếu:

1 Một lần đọc bởi bộ xử ly, P, đến vị trí X nó theo sau quá trình ghi của P đến X, với không

có lần ghi nào của X bởi một bộ xử lý khác xảy ra giữa lần đọc và ghi bởi P, nó luôn trả về giá

trị được ghi bởi P

2 Một bộ xử lý đọc đến vị trí X theo sau việc ghi của một bộ xử ly khác đến X sẽ trả về giá

trị ghi nếu việc đọc và ghi được phân tách đủ thời gian và không có lần ghi nào khác vào X diễn ra giữa hai lần truy cập

3 Viết đến cùng một vị trí được gọi là tuần hoàn hóa: nghĩa là hai lần ghi vào cùng một vị trí

bởi bất kỳ hai bộ xử lý nào được thấy theo cùng một thứ tự bởi tất cả các bộ xử lý Ví dụ: nếu

các giá tri 1 va sau đó 2 được ghi vào một vị trí, bộ xử lý không bao giờ có thê đọc được giá trị

cua vi tri la 2 va sau d6 doc no 1a 1

Thuộc tính đầu tiên đơn giản chỉ là duy trì thứ tự chương trình — chúng tôi mong đợi thuộc tính này đúng ngay cả trong bộ xử lý đơn Thuộc tính thứ hai xác định khái niệm về ý nghĩa của

việc có một cái nhìn có tỉnh liên kết về bộ nhớ: Nếu một bộ xử lý có thể liên tục đọc một giá trị

dữ liệu cũ, chúng ta sẽ nói rõ ràng rằng bộ nhớ là không liên kết

Sự cần thiết của việc viết tuần hoàn là no sé tinh tế hơn, nhưng cũng không kém phần quan trọng Giả sử chúng ta không tuần hoàn hóa việc ghi, và bộ xử lý PI ghi vị trí X nối theo là vị trí

ghi P2 ghi vị trí X Việc tuần hoàn hóa các lần ghi đảm bảo rằng mọi bộ xử lý sẽ thấy việc đã được ghi xong thực hiện bởi P2 tại một thời điểm nào đó Nếu chúng tôi không tuần hoàn hóa các

lần ghi, có thể xảy ra vài trường hợp bộ xử lý nào đó có thể nhìn thấy quá trình ghi của P2 trước

rồi mới xem lần ghi của PI, duy trì giá trị được ghi bởi P1 vô thời hạn Cách đơn giản nhất để

tránh những khó khăn đó là tuần hoàn hóa các lần ghi, sao cho tất cả các lần ghi vào cùng một vị

trí đều được xem theo củng một thứ tự; tài sản này được gọi là viết tuần hoàn hóa

Mặc dù ba thuộc tính vừa mô tả là đủ để đảm bảo tính liên kết, nhưng câu hỏi về thời điểm

một giá trị đã được ghi sẽ được nhìn thấy cũng rat quan trong Dé biét lý do tại sao, hãy quan sát rằng chúng ta không thê yêu cầu đọc X ngay lập tức đề xem giá trị được ghi cho X bởi một số bộ

xử ly khác Ví dụ: nêu một lần ghi X trên một bộ xử lý trước một lần đọc X trên một bộ xử ly khác trong một khoảng thời gian rat nhỏ, thi co thể không thể đảm bảo rằng việc đọc trả về giá trị của dữ liệu đã được ghi, vì dữ liệu đã được ghi có thê không đã rời khỏi bộ xử lý tại thời điểm đó

Vấn đề chính xác là khi nào một giá trị đã được ghi phải được cái đã đọc nhìn thấy được xác định

bởi mô hình nhất quán bộ nhớ —một chủ đề được thảo luận trong phan 6.8

Trang 30

Tính liên kết và tính nhất quán được bô sung cho nhau: Tính nhất quán xác định hành vi đọc

và ghi vào cùng một vị trí bộ nhớ, trong khi tính nhất quán xác định hành vị đọc và ghi với sự liên

quan đôi với các truy cập đến các vị trí bộ nhớ khác Đề cho đơn giản, và bởi vì chúng tôi không thê giải thích vấn đề một cách chỉ tiết tại điểm này, giả sử rằng chúng tôi yêu cầu một quá trình

ghi không thể hoàn thành cho đến khi tất cả các bộ xử lý đã thấy tác dụng của việc ghi và bộ xử

lý không thay đôi thứ tự của bất ky lần ghi nào với bất kỳ quyền truy cập bộ nhớ nào khác Điều

này cho phép bộ xử lý sắp xếp lại các lần đọc, nhưng buộc bộ xử lý phải hoàn thành việc ghi theo thứ tự chương trình Chúng tôi sẽ dựa trên giả định này cho đến khi chúng tôi đến phần 6.8, nơi chúng tôi sẽ thấy chính xác ý nghĩa của định nghĩa này, cũng như các lựa chọn thay thế

e Các lược đồ cơ bản để tăng cường sự gắn kết

Vấn đề kết hợp đối với đa xử lý và [/ O, mặc dù có nguồn gốc giống nhau, nhưng có những đặc điểm khác nhau ảnh hưởng đến các giải quyết thích hợp Không giống như [ / O, trong đó

nhiều bản sao dữ liệu là một sự kiện hiểm gặp - một sự kiện cần tránh bất cứ khi nào có thể - một

chương trình chạy trên nhiều bộ xử lý thông thường sẽ có các bản sao của cùng một dữ liệu trong

một số bộ nhớ cache Trong một bộ đa xử lý liên kết , bộ nhớ đệm cung cấp cả hai sự di cư và

nhân rộng trong tổng số các mục dữ liệu được chia sẻ Bộ nhớ đệm nhất quán cung cấp khả năng

di chuyén, vì một mục dữ liệu có thể được di chuyên đến bộ đệm cục bộ và được sử dụng ở đó

theo cách trong suốt Việc di chuyển này làm giảm cả độ trễ đề truy cập mục dữ liệu chia sẻ được cấp phát từ xa và nhu cầu băng thông trên bộ nhớ dùng chung

Bộ nhớ đệm kết hợp cũng cung cấp bản sao cho dữ liệu được chia sẻ đang được đọc đồng thời,

vì bộ đệm tạo bản sao của mục đữ liệu trong bộ đệm cục bộ Việc sao chép làm giảm cả độ trễ của quyền truy cập và sự tranh chấp đối với một mục dữ liệu được chia sẻ đã đọc Việc hỗ trợ di

chuyền và nhân rộng này là rất quan trọng đối với hiệu suất trong việc truy cập dữ liệu được chia

sẻ Do đó, thay vì cố gắng giải quyết vấn đề bằng cách tránh nó trong phần mềm, các bộ đa xử lý quy mô nhỏ áp dụng giải pháp phần cứng bằng cách đưa ra một giao thức đề duy trì bộ nhớ đệm

có tỉnh liên kết

Các giao thức để duy trì tính liên kết cho nhiều bộ xử lý được gọi là giao thức liên tục của bộ nhớ cache Chìa khóa đề triển khai giao thức gắn kết bộ nhớ cache là theo dõi trạng thái của bất

kỳ hoạt động chia sẻ khối dữ liệu nào Có hai lớp giao thức, sử dụng các kỹ thuật khác nhau để

theo dõi trạng thái chia sẻ, đang được sử dụng:

Trang 31

Dựa trên danh mục—Cải trạng thái chia sẻ của một khối bộ nhớ vật ly chi được lưu giữ ở một

vị trí, được gọi là danh mục; chúng tôi tập trung vào cách tiếp cận này trong phân 6.5, khi chúng

tôi thảo luận về kiến trúc bộ nhớ chia sẻ có thể mở rong

Snooping —Moi bé dém ấn có bản sao dữ liệu từ một khối bộ nhớ vật lý cũng có một bản sao

trạng thái chia sẻ của khối và không có trạng thái tập trung nào được lưu giữ Bộ nhớ đệm thường

nằm trên một bus bộ nhớ chia sẻ và tất cả các bộ điều khiển bộ nhớ đệm đều giám sát hoặcrinh

motrén bus dé xac định xem họ có bản sao của khối được yêu cầu trên bus hay không Chúng tôi tập trung vào cách tiếp cận nay trong phan nay

Các giao thức Snooping trở nên phô biến với các bộ đa xử lý sử dụng bộ vi xử lý và bộ nhớ đệm được gắn vào một bộ nhớ dùng chung duy nhất bởi vì các giao thức này có thê sử dụng kết

nối vật lý có từ trước — bus tới bộ nhớ — để thâm vấn trạng thái của các bộ nhớ đệm

® Giao thức Snooping

Có hai cách đề duy trì yêu cầu về tính liên kết được mô tả trong tiêu mục trước Một phương pháp là đảm báo rằng bộ xử lý có quyền truy cập độc quyền vào một mục đữ liệu trước khi nó ghi mục đó Phong cách giao thức này được gọi là viết giao thức vô hiệu hóa bởi vì nó làm mắt hiệu lực của các bản sao khác trên một bản ghi Cho đến nay nó là nhiều nhất giao thức phô biến, cả

để theo dõi và cho các lược đồ thư mục Quyền truy cập độc quyền đảm bảo rằng không tồn tại

các bản sao có thê đọc hoặc ghi khác của một mục khi quá trình ghi xảy ra: tất cả các bản sao được lưu trong bộ nhớ cache khác của mục đó đều bị vô hiệu

Hình 6.8 cho thay một ví dụ về giao thức vô hiệu hóa cho một bus snoopiIng với bộ nhớ đệm

ghi lại đang hoạt động Để xem giao thức này đám bảo tính liên kết như thế nào, hãy xem xét một lần ghi theo sau bởi một bộ xử lý khác đọc: Vì quá trình ghi yêu cầu quyền truy cập độc quyên, bat ky bản sao nào được giữ bởi bộ xử lý đọc phải bị vô hiệu (do đó có tên giao thức) Do đó, khi

quá trình đọc xảy ra, nó sẽ bị thiểu trong bộ nhớ cache và buộc phải tìm nạp một bản sao mới của

dữ liệu Đề ghi, chúng tôi yêu cầu bộ xử lý ghi có quyền truy cập độc quyền, ngăn không cho bất

kỳ bộ xử lý nào khác có thê ghi đồng thời Nếu hai bộ xử lý cố găng ghi cùng một dữ liệu đồng

thời, một trong số chúng sẽ thắng cuộc đua (chúng ta sẽ xem cách chúng tôi quyết định ai sẽ thang trong thời gian ngắn), khiến bản sao của bộ xử lý kia bị vô hiệu Đề bộ xử lý khác hoàn thành việc ghi, nó phải có được một bản sao dữ liệu mới, hiện phải chứa giá trị được cập nhật Do đó, giao

thức này thực thĩ tuần tự hóa ghi

Trang 32

Nội dung của Bộ Nội dung của Bộ Nội dung của Hoạt động của bộ Hoạt động bus nhớ đệm củaCPU nhớ đệm của bộ nhớ địa

HINH 6.8 Một ví dụ về vô hiệu hóa giao thức hoạt động trên bus snooping cho một khối bộ nhớ

đệm đơn (X) với bộ nhớ đệm được ghi lại Chúng tôi giả định rằng ban đầu không có bộ đệm nào

giữ X và giá trị của X trong bộ nhớ là 0 CPU và nội dung bộ nhớ hiển thị giá trị sau khi cả bộ xử

lý và hoạt động của bus đều hoàn thành Khoảng trồng cho biết không có hoạt động nào hoặc

không có bản sao nào được lưu trong bộ nhớ cache Khi lần bỏ lỡ thứ hai của B xảy ra, CPU A

phản hồi với giá trị hủy phản hồi khỏi bộ nhớ Ngoài ra, cả nội dung bộ nhớ đệm của B và nội

dung bộ nhớ của X đều được cập nhật Cập nhật bộ nhớ này, xảy ra khi một khối được chia sẻ, là

điện hình trong hầu hết các giao thức và đơn giản hóa giao thức, như chúng ta sẽ thấy ngay sau đây

Giải pháp thay thế cho một giao thức vô hiệu là cập nhật tất cả các bản sao được lưu trong

bộ nhớ cache của một mục dữ liệu khi mục đó được ghi lại Loại giao thức này được gọi là viết

cập nhật hoặc viết chương trình phát sóng giao thức Đề kiểm soát các yêu cầu về băng thông của giao thức này, điều hữu ích là theo dõi xem một từ trong bộ nhớ cache có được chia sẻ hay không,

có được chứa trong các bộ nhớ đệm khác hay không Nếu không, thì không cần phát sóng hoặc

cập nhật bat kỳ bộ đệm nào khác Hình 6.8 cho thay một ví dụ về giao thức ghi cập nhật đang hoạt

động Trong thập kỷ kê từ khi các giao thức này được phát triển, tính năng vô hiệu hóa đã nôi lên như là người chiến thắng cho phần lớn các thiết kế Để hiểu lý do tại sao, chúng ta hãy xem xét

sự khác biệt về chất lượng hiệu suất Sự khác biệt về hiệu suất giữa ghi cập nhật và ghi các giao

thức vô hiệu phát sinh từ ba đặc điểm:

Trang 33

Nội dung của Nội dung của Nội dung của Hoạt động của bộ Hoạt động bus Bộ nhớ đệm của Bộ nhớ đệmbộ nhớ địa

xử lý CPU A ciaCPUB điểm X

HÌNH 6.9 Một ví dụ về giao thức ghi cập nhật hoặc phát sóng hoạt động trên bus snooping cho

một khối bộ nhớ đệm đơn (X) có bộ nhớ đệm ghi lại.Chúng tôi giả định rằng ban đầu không có

bộ đệm nào giữ X và giá trị của X trong bộ nhớ là 0 Nội dung CPU và bộ nhớ hiển thị gia tri sau

khi cả bộ xử lý và hoạt động của bus đều hoàn thành Khoảng trồng cho biết không có hoạt động

nảo hoặc không có bản sao nào được lưu vào bộ nhớ đệm Khi CPU A phát hành ghi, cả bộ nhớ đệm trong CPU B và vị trí bộ nhớ của X đều được cập nhật

1 Nhiều lần ghi cho cùng một từ mà không có lần đọc xen vào yêu cầu nhiều lần phát ghi trong một giao thức cập nhật, nhưng chỉ một lần hủy hợp lệ ban đầu trong một giao thức viết không hợp lệ

2 Với các khối bộ đệm nhiều từ khóa, mỗi từ được viết trong khối bộ đệm yêu cầu phát sóng

ghi trong giao thức cập nhật, mặc dù chỉ lần ghi đầu tiên vào bất kỳ từ nào trong khối mới cần tạo ra một lệnh không hợp lệ trong một giao thức vô hiệu Một giao thức vô hiệu hoạt động trên các khối bộ nhớ cache, trong khi một giao thức cập nhật phải hoạt động trên các từ riêng

lẻ (hoặc các byte, khi các byte được ghi) Có thể cô gắng hợp nhất các lần ghi trong một lược

đồ phát sóng ghi, giống như chúng ta đã làm đôi với bộ đệm ghi trong Chương 5, nhưng sự

khác biệt cơ bản vẫn còn

3 Độ trễ giữa việc ghi một từ trong một bộ xử lý và đọc giá trị được ghi trong một bộ xử lý

khác thường ít hơn trong một sơ đồ cập nhật ghi, vì dữ liệu đã viết được cập nhật ngay lập tức trong bộ nhớ đệm của trình đọc (giả sử rằng bộ xử lý đọc có bản sao của dữ liệu) Đề so sánh,

trong một giao thức vô hiệu hóa, đầu đọc bị vô hiệu hóa trước, sau đó đọc dữ liệu sau đó và bị dừng cho đến khi một bản sao có thê được đọc và trả lại cho bộ xử ly

Bởi vì băng thông bộ nhớ và bus thường là hàng hóa được yêu cầu nhiều nhất trong một bộ đa

xử ly dựa trên bus va các giao thức vô hiệu hóa tạo ra ít lưu lượng bus và bộ nhớ hơn, nên việc

Trang 34

hủy bỏ hiệu lực đã trở thành giao thức được lựa chọn cho hầu hết các bộ đa xử lý Các giao thức

cập nhật cũng gây ra các vấn đề đối với các mô hình nhất quán bộ nhớ, làm giảm hiệu suất tiềm năng của việc cập nhật, thậm chí còn được đề cập trong điểm 3 Trong các thiết kế có số lượng bộ

xử lý rất nhỏ (2 hoặc nhiều nhất là 4) trong đó các bộ xử lý được kết hợp chặt chẽ (thậm chí có

thê trên cùng một chip), nhu cầu băng thông lớn hơn của bản cập nhật có thê được chấp nhận Tuy nhiên, với xu hướng tăng hiệu suất bộ xử lý và tăng băng thông liên quan nhu câu, chúng tôi có thê mong đợi các chương trình cập nhật được sử dụng rất thường xuyên Vì lý do này, chúng tôi

sẽ chỉ tập trung vào các giao thức vô hiệu cho phần còn lại của chương

e Các kỹ thuật thực hiện cơ bản

Chia khóa đề thực hiện một giao thức vô hiệu hóa trong một bộ đa xử lý quy mô nhỏ là việc

sử dụng bus đề thực hiện việc hủy bỏ hiệu lực Đề thực hiện việc vô hiệu hóa, bộ xử lý chỉ cần có

được quyền truy cập bus và phát địa chỉ bị hủy bỏ trên bus Tất cả các bộ xử lý liên tục rình mò

trên bus để xem các địa chỉ Bộ xử ly kiểm tra xem địa chỉ trên bus có trong bộ nhớ cache của

chúng hay không Nếu vậy, dữ liệu tương ứng trong bộ nhớ cache bị vô hiệu

Việc tuần tự hóa quyền truy cập được thực thi bởi bus cũng buộc tuần tự hóa các lần ghi, vì khi hai bộ xử lý cạnh tranh đề ghi vào cùng một vị trí, một bộ xử lý phải có được quyền truy cập bus trước bộ xử lý kia Bộ xử lý đầu tiên có được quyên truy cập bus sẽ làm cho bản sao của bộ

xử lý khác bị mất hiệu lực, khiến việc ghi được tuần tự nghiêm ngặt Một hàm ý của lược đồ này

là việc ghi vào một mục đữ liệu được chia sẻ không thể hoàn thành cho đến khi nó có được quyền

nạp (Bộ đệm ghi có thê dẫn đến một số phức tạp bô sung, được thảo luận trong phân 6.8.)

Tuy nhiên, đối với cache ghi lại, vẫn đề tìm kiếm giá trị dữ liệu gần đây nhất khó hơn, vì giá

tri gan day nhất của một mục dữ liệu có thê nằm trong bộ nhớ cache chứ không phải trong bộ nhớ Thật may mắn là các bộ nhớ đệm ghi lại có thé str dụng cùng một lược đồ theo dõi cả cho các lần

bỏ lỡ bộ nhớ đệm và cho các lần ghi: Mỗi bộ xử lý dò tìm mọi địa chỉ được đặt trên bus Nếu một

bộ xử lý nhận thấy rằng nó có một bản sao bắn của khối bộ đệm được yêu cầu, nó sẽ cung cấp

khối bộ đệm đó đề đáp ứng yêu cầu đọc và khiến quyền truy cập bộ nhớ bị hủy bỏ Vì bộ nhớ đệm

ghi lại tạo ra các yêu cầu thấp hơn về băng thông bộ nhớ, chúng rất thích hợp trong một bộ đa xử

Trang 35

lý, mặc dù độ phức tạp tăng lên một chút Do đó, chúng tôi tập trung vào việc triển khai với bộ

nhớ đệm ghi lại

Các thẻ bộ nhớ cache thông thường có thể được sử dụng đề thực hiện quá trình rình mo va bit hợp lệ cho mỗi khối giúp việc vô hiệu hóa dễ đàng thực hiện Các lần bỏ lỡ đọc, cho dù được tạo

ra bởi sự vô hiệu hoặc bởi một số sự kiện khác, cũng rất đơn giản vì chúng chỉ dựa vào khả năng

rình mò Đối với việc ghi, chúng tôi muốn biết liệu có bất kỳ bản sao nào khác của khối được lưu vào bộ nhớ đệm hay không, bởi vì, nếu không có bản sao được lưu trong bộ nhớ cache nào khác, thì việc ghi không cần phải được đặt trên bus trong bộ nhớ đệm ghi lại Việc không gửi ghi sẽ giảm cả thời gian ghi và băng thông cần thiết

Để theo dõi xem khối bộ nhớ đệm có được chia sẻ hay không, chúng ta có thê thêm một bit

trạng thái bố sung được liên kết với mỗi khối bộ đệm, giống như chúng ta có một bít hợp lệ và

mot bit ban Bang cách thêm một chút cho biết liệu khối có được chia sẻ hay không, chúng ta có

thê quyết định liệu một lần ghi có phải tạo ra một lệnh không hợp lệ hay không Khi ghi vào một

khối ở trạng thái cha sẻ xảy ra, bộ nhớ cache tạo ra sự vô hiệu trên bus và đánh dấu khối là riêng

tư Bộ xử lý đó sẽ không gửi thêm bất hợp lệ nào cho khối đó Bộ xử lý có bản sao duy nhất của

khối bộ nhớ cache thường được gọi là chủ nhân của khối bộ nhớ cache

Khi thông báo vô hiệu được gửi đi, trạng thái của khối bộ nhớ cache của chủ sở hữu được thay

đối từ chia sẻ thành không chia sẻ (hoặc độc quyền) Nếu một bộ xử lý khác sau đó yêu cầu khôi

bộ nhớ cache này, trạng thái phải được chia sẻ lại Vì bộ nhớ cache rình mò của chúng tôi cũng

nhìn thấy bất kỳ lần bỏ sót nao, nó biết khi nào khối bộ nhớ cache độc quyền đã được yêu cầu bởi

một bộ xử ly khác và trạng thái nên được chia sẻ

Mọi giao dịch bus đều phải kiêm tra các thẻ địa chỉ bộ nhớ cache, các thẻ này có thê gây trở ngại cho việc truy cập bộ nhớ cache của CPU Sự can thiệp tiềm ân này được giảm thiêu bằng một

trong hai kỹ thuật: sao chép các thẻ hoặc sử dụng bộ đệm đa cấp vớibao gom,theo đó các mức gần

CPU hơn là một tập con của những mức ở xa hơn Nếu các thẻ bị trùng lặp, thì CPU và hoạt động theo dõi có thé tiến hành song song tất nhiên, trên một bộ nhớ cache, bộ xử lý cần phải phân xử

và cập nhật cả hai bộ thẻ Tương tự như vậy, nêu người rình mò tìm thấy một mục nhập thẻ phù

hợp, nó cần phải phân xử và truy cập vào cả hai bộ thẻ bộ nhớ cache (dé thực hiện vô hiệu hóa

hoặc để cập nhật bit được chia sẻ), cũng như có thể là mảng dữ liệu bộ nhớ cache đề truy xuất bản

sao của một khối Vì vậy, với các thẻ trùng lặp, bộ xử lý chỉ cần dừng lại khi nó thực hiện truy cập vào bộ đệm cùng lúc mà một kẻ rỉnh mò đã phát hiện ra một bản sao trong bộ đệm Hơn nữa, hoạt động theo dõi chỉ bị trì hoãn khi bộ nhớ cache xử lý lỗi

Trang 36

Nếu CPU sử dụng bộ đệm đa cấp với thuộc tính bao gom, thì mọi mục nhập trong bộ đệm

chính bắt buộc phải nằm trong bộ đệm phụ Do đó, hoạt động rình mò có thê được hướng đến bộ đệm ân cấp hai, trong khi hầu hết hoạt động của bộ xử lý được hướng đến bộ đệm chính Nếu bộ

nhớ đệm gặp sự cô trong bộ đệm phụ, thì nó phải phân xử bộ đệm chính đề cập nhật trạng thái và

có thê truy xuất dữ liệu, điều này thường yêu cầu bộ xử lý ngừng hoạt động Vì nhiều bộ xử lý sử

dụng bộ đệm đa cấp để giảm nhu cầu băng thông của các bộ xử lý riêng lẻ, nên giải pháp này đã

được áp dụng trong nhiều thiết kế Đôi khi nó thậm chí có thê hữu ích khi sao chép các thẻ của bộ

đệm phụ đề giảm thêm sự tranh chấp giữa CPU và hoạt động rình mò Chúng ta sẽ thảo luận chỉ tiết hơn về thuộc tính bao gồm trong phần 6

e Một giao thức mẫu

Giao thức kết hợp dựa trên bus thường được thực hiện bằng cách kết hợp một bộ điều khiên

trạng thái hữu hạn trong mỗi nút Bộ điều khiển này đáp ứng các yêu cầu từ bộ xử lý và từ bus,

thay đôi trạng thái của khối bộ đệm được chọn, cũng như sử dụng bus dé truy cập dữ liệu hoặc

làm mất hiệu lực của nó Hình 6.10 cho thấy các yêu cầu được tạo ra bởi mô-đun bộ xử lý-bộ nhớ cache trong một nút, ở nửa trên của bảng, cũng như những yêu cầu đến từ bus, ở nửa dưới của bảng Vì đơn giản, giao thức mà chúng tôi giải thích không phân biệt giữa một lần ghi và một lần ghi nhớ đối với khối bộ đệm được chia sẻ: trong cả hai trường hợp, chúng tôi coi một truy cập

như vậy là một lần ghi lỗi Khi lỗi ghi được đặt trên bus, bất kỳ bộ xử lý nào có bản sao của khối

bộ đệm sẽ làm mắt hiệu lực của nó Trong bộ đệm ghi lại, nếu khối chỉ có trong một bộ đệm duy

nhất, bộ đệm đó cũng ghi lại khối Xử lý các lần truy cập ghi vào các khối được chia sẻ khi bộ nhớ cache bỏ lỡ làm giảm số lượng các giao dịch bus khác nhau và đơn giản hóa bộ điều khiên

Trong các giao thức phức tạp hơn, những "lần bỏ sót" này được coi là các yêu cầu nâng cấp tạo

ra giao dịch bus và làm mắt hiệu lực, nhưng không thực sự chuyển dữ liệu, vì bản sao trong bộ nhớ cache của anh ay đã được cập nhật

Trang 37

Trạng thái đã

Lời yêu iai quyét

su Nguồn a ếi bộ “hồ Chức năng và giải thích

Viêtlỡ lý — Không hợp lệ Nơi ghi nhớ trên bus 6 "

‹; Hộ xử t 121312 ny at ask ¬

Việt lỡ „ ¬ Dia chỉ bỏ lỡ xung đột: địa điểm ghi nhớ trên bus

Đọc có Cô găng chia sẻ dữ liệu: đặt khôi bộ nhớ cache trên bus và : Bus Loại trừ Ae Peas ~ 1s 8

Miss thay đôi trạng thái thành Đã chia sẻ

Viếtlỡ Bus Được chia sẻ Cổ găng viết khôi chia sẻ; làm mắt hiệu lực của khối

Viết lỡ Bus Loại trừ Có găng ghi khôi độc quyên ở nơi khác: ghi lại khối bộ nhớ

cache và làm cho trạng thái của nó là Không hợp lệ

HÌNH 6.10 Cơ chế kết hợp bộ nhớ cache nhận các yêu cầu từ cả bộ xử lý và bus và đáp ứng các

yêu cầu này dựa trên loại yêu cầu, cho dù nó truy cập hay bỏ sót trong bộ nhớ cache và trạng thái

của khối bộ nhớ cache được chỉ định trong yêu cầu Đối với các lỗi đọc hoặc ghi bị rình mò từ bus, bạn phải thực hiện một hành độngchỉ cónếu địa chí đọc hoặc ghi khớp với một khối trong bộ

Trang 38

đệm và khối đó hợp lệ Đặt lỗi ghi trên bus khi ghi xảy ra ở trạng thái Chia sẻ, đảm bảo một bản

sao độc quyên, mặc dù đữ liệu không thực sự cần được chuyền Day duoc coi la ban nang cap va

một số giao thức phân biệt nó với lỗi ghi dé tranh truyền dữ liệu

Hinh 6.11 cho thay một sơ đỗ chuyên đôi trạng thái hữu hạn cho một khối bộ nhớ cache

duy nhất sử dụng giao thức hủy bỏ ghi và bộ nhớ đệm ghi lại Để đơn giản, ba trạng thái của giao

thức được nhân đôi để đại diện cho quá trình chuyên đổi dựa trên yêu cầu CPU (ở bên trái, tương

ứng với nửa trên của bảng trong Hình 6.11), trái ngược với chuyên đổi dựa trên yêu cầu bus (ở bên phải, tương ứng xuống nửa dưới của bảng trong Hình 6.I1) Kiểu chữ in đậm được sử dụng

đề phân biệt các hành động của bus, trái ngược với các điều kiện mà sự chuyển đổi trạng thái phụ

thuộc vào đó Trạng thái trong mỗi nút đại diện cho trạng thái của khối bộ đệm được chọn được

chi định bởi bộ xử lý hoặc yêu cầu bus

HÌNH 6.11 Một giao thức ghi-làm mat hiệu lực, kết hợp bộ nhớ cache cho một bộ nhớ cache ghi

lại hiển thị các trạng thái và chuyên đổi trạng thái cho mỗi khối trong bộ nhớ cache Các trang thái bộ nhớ cache được hiển thị trong các vòng tròn với bất kỳ quyên truy cập nào được CPU cho

phép mà không có sự chuyên đôi trạng thái được hiển thị trong ngoặc đơn dưới tên của trạng thái

Kích thích gây ra sự thay đôi trạng thái được hiển thị trên các cung chuyển tiếp ở loại thông thường

và bất kỳ hành động bus nào được tạo ra như một phần của quá trình chuyên đối trạng thái đều được in đậm trên cung chuyên tiếp Các hành động kích thích áp dụng cho một khối trong bộ đệm,

không áp dụng cho một địa chỉ cụ thê trong bộ đệm Do đó, việc bỏ lỡ đọc đối với một khối ở

Trang 39

trạng thái chia sẻ là bỏ lỡ khối bộ nhớ cache đó nhưng đối với một địa chỉ khác Phía bên trái của

biểu đồ hiển thị các chuyên đôi trạng thái dựa trên các hoạt động của CPU được liên kết với bộ

đệm này: bên phải hiển thị các chuyền đổi dựa trên các hoạt động trên bus Lỗi đọc ở trạng thái độc quyền hoặc chia sẻ và bỏ lỡ ghi ở trạng thái độc quyền xảy ra khi địa chỉ được yêu cầu bởi CPU không khớp với địa chi trong khôi bộ đệm Một lần bỏ lỡ như vậy là một lần bỏ lỡ thay thé

bộ nhớ cache tiêu chuẩn Nỗ lực ghi một khối ở trạng thái chia sẻ luôn tạo ra lỗi, ngay cả khi khối

đó có trong bộ đệm, vì khối phải được tạo riêng Bất cứ khi nào một giao dịch bus xảy ra, tất cả các cache có chứa khối cache được chí định trong giao dịch bus sẽ thực hiện hành động được chỉ

định bởi nửa bên phải của sơ đồ Giao thức giả định rằng bộ nhớ cung cấp dữ liệu trên một lần bỏ

lỡ đọc cho một khối sạch trong tất cả các bộ nhớ đệm Trong triển khai thực tế, hai bộ sơ đồ trạng thái này được kết hợp với nhau Giao thức này có phần đơn giản hơn so với những giao thức đang

được sử dụng trong các bộ đa xử ly hiện có Một lần bỏ lỡ như vậy là một lần bỏ lỡ thay thế bộ

nhớ cache tiêu chuẩn Nỗ lực ghi một khối ở trạng thái chia sẻ luôn tạo ra lỗi, ngay cả khi khối đó

có trong bộ đệm, vì khối phải được tạo riêng Bất cứ khi nào một giao dịch bus xảy ra, tất cả các cache có chứa khối cache được chí định trong giao dịch bus sẽ thực hiện hành động được chỉ định

bởi nửa bên phải của sơ đồ Giao thức giả định rằng bộ nhớ cung cấp dữ liệu trên một lần bỏ lỡ

đọc cho một khối sạch trong tất cả các bộ nhớ đệm Trong triển khai thực tế, hai bộ sơ đồ trạng

thái này được kết hợp với nhau Giao thức này có phần đơn giản hơn so với những giao thức đang

được sử dụng trong các bộ đa xử ly hiện có Một lần bỏ lỡ như vậy là một lần bỏ lỡ thay thế bộ nhớ cache tiêu chuẩn Nỗ lực ghi một khối ở trạng thái chia sẻ luôn tạo ra lỗi, ngay cả khi khối đó

có trong bộ đệm, vì khối phải được tạo riêng Bất cứ khi nào một giao dịch bus xảy ra, tất cả các cache có chứa khối cache được chí định trong giao dịch bus sẽ thực hiện hành động được chỉ định

bởi nửa bên phải của sơ đồ Giao thức giả định rằng bộ nhớ cung cấp dữ liệu trên một lần bỏ lỡ

đọc cho một khối sạch trong tất cả các bộ nhớ đệm Trong triển khai thực tế, hai bộ sơ đồ trạng

thái này được kết hợp với nhau Giao thức này có phần đơn giản hơn so với những giao thức đang

được sử dụng trong các bộ đa xử lý hiện có tất cả các bộ đệm chứa khối bộ đệm được chỉ định trong giao dịch bus thực hiện hành động được chỉ định bởi nửa bên phải của sơ đồ Giao thức gia dinh rang bộ nhớ cung cấp dữ liệu trên một lần bỏ lỡ đọc cho một khối sạch trong tất cả các bộ nhớ đệm Trong triển khai thực tế, hai bộ sơ đồ trạng thái này được kết hợp với nhau Cao thức

này có phần đơn giản hơn so với những giao thức đang được sử dụng trong các bộ đa xử lý hiện

có tất cá các bộ đệm chứa khối bộ đệm được chỉ định trong giao dịch bus thực hiện hành động

được chỉ định bởi nửa bên phải của sơ đồ Giao thức giá định rằng bộ nhớ cung cấp dữ liệu trên

một lần bỏ lỡ đọc cho một khối sạch trong tất cả các bộ nhớ đệm Trong triển khai thực tế, hai bộ

sơ đồ trạng thái này được kết hợp với nhau Giao thức này có phần đơn giản hơn so với những giao thức đang được sử dụng trong các bộ đa xử lý hiện có

Tất cả các trạng thái trong giao thức bộ nhớ cache này sẽ cần thiết trong bộ nhớ cache đơn

bộ xử lý, nơi chúng sẽ tương ứng với các trạng thái không hợp lệ, hợp lệ (và sạch) và bản Những

Trang 40

trạng thái Tất cả các thay đôi trạng thái được chỉ ra bởi các vòng cung ở nửa bên trái của Hình

6.11 sẽ cần thiết trong một bộ đệm đơn xử lý ghi lại; sự khác biệt duy nhất trong một bộ đa xử ly

có tính liên kết là bộ điều khiến phải tạo ra lỗi ghi khi bộ điều khiển có một lần ghi cho khối bộ

nhớ cache ở trạng thái chia sẻ Các thay đối trạng thái được biểu thị bằng các vòng cung ở nửa bên phải của Hình 6 II chỉ cần thiết cho sự nhất quán và hoàn toàn không xuất hiện trong bộ điều khiển bộ nhớ đệm đơn xử lý

Trong thực tế, chỉ có một máy trạng thái hữu hạn trên mỗi bộ nhớ cache, với các kích thích

đến từ CPU hoặc từ bus Hình 6.12 cho thấy trạng thái

HÌNH 6.12 Biểu đồ trang thái kết hợp bộ nhớ đệm với các chuyền đôi trạng thái được tạo ra bởi

bộ xử lý cục bộ được hiển thị bằng màu đen và các hoạt động của bus được hiển thị bằng mảu

xám Như trong Hình 6.11, các hoạt động trên quá trình chuyển đổi được thê hiện bằng chữ in đậm

Ngày đăng: 09/01/2025, 16:05

HÌNH ẢNH LIÊN QUAN

HÌNH  6.1  Cấu  trúc  cơ  bản  của  bộ  đa  xử  lý  bộ  nhớ  dùng  chung  tập  trung.  Nhiều  các  hệ  thông  con - Báo cáo tiểu luận Đề tài  Đa xử lý và các cấp Độ phân cấp luồng song song
6.1 Cấu trúc cơ bản của bộ đa xử lý bộ nhớ dùng chung tập trung. Nhiều các hệ thông con (Trang 8)
HÌNH  6.2  Kiến  trúc  cơ  bản  của  bộ  đa  xử  lý  bộ  nhớ  phân  tán  bao  gồm  các  nút  riêng  lẻ  có  chứa  bộ - Báo cáo tiểu luận Đề tài  Đa xử lý và các cấp Độ phân cấp luồng song song
6.2 Kiến trúc cơ bản của bộ đa xử lý bộ nhớ phân tán bao gồm các nút riêng lẻ có chứa bộ (Trang 9)
HÌNH  6.3  Thời  gian  truy  cập  từ  xa  điện  hình  đề  truy  xuất  một  từ  từ  bộ  nhớ  từ  xa  trong  bộ  đa  xử - Báo cáo tiểu luận Đề tài  Đa xử lý và các cấp Độ phân cấp luồng song song
6.3 Thời gian truy cập từ xa điện hình đề truy xuất một từ từ bộ nhớ từ xa trong bộ đa xử (Trang 16)
Hình  6.5  cho  thấy  thời  gian  thực  thi  được  chia  nhỏ  như  thế  nào  đối  với  tám  bộ  xử  lý  bằng  cách  sử - Báo cáo tiểu luận Đề tài  Đa xử lý và các cấp Độ phân cấp luồng song song
nh 6.5 cho thấy thời gian thực thi được chia nhỏ như thế nào đối với tám bộ xử lý bằng cách sử (Trang 20)
HÌNH  6.7  Vấn  đề  liên  kết  bộ  nhớ  cache  với  duy  nhất  vị  trí  bộ  nhớ  (X),  được  đọc  và  ghi  bởi  hai - Báo cáo tiểu luận Đề tài  Đa xử lý và các cấp Độ phân cấp luồng song song
6.7 Vấn đề liên kết bộ nhớ cache với duy nhất vị trí bộ nhớ (X), được đọc và ghi bởi hai (Trang 28)
HÌNH  6.9  Một  ví  dụ  về  giao  thức  ghi  cập  nhật  hoặc  phát  sóng  hoạt  động  trên  bus  snooping  cho  một  khối  bộ  nhớ  đệm  đơn  (X)  có  bộ  nhớ  đệm  ghi  lại.Chúng  tôi  giả  định  rằng  ban  đầu  không  có - Báo cáo tiểu luận Đề tài  Đa xử lý và các cấp Độ phân cấp luồng song song
6.9 Một ví dụ về giao thức ghi cập nhật hoặc phát sóng hoạt động trên bus snooping cho một khối bộ nhớ đệm đơn (X) có bộ nhớ đệm ghi lại.Chúng tôi giả định rằng ban đầu không có (Trang 33)
HÌNH  6.10  Cơ  chế  kết  hợp  bộ  nhớ  cache  nhận  các  yêu  cầu  từ  cả  bộ  xử  lý  và  bus  và  đáp  ứng  các  yêu  cầu  này  dựa  trên  loại  yêu  cầu,  cho  dù  nó  truy  cập  hay  bỏ  sót  trong  bộ  nhớ  cache  và  trạng  thái  của  khối  bộ  nhớ - Báo cáo tiểu luận Đề tài  Đa xử lý và các cấp Độ phân cấp luồng song song
6.10 Cơ chế kết hợp bộ nhớ cache nhận các yêu cầu từ cả bộ xử lý và bus và đáp ứng các yêu cầu này dựa trên loại yêu cầu, cho dù nó truy cập hay bỏ sót trong bộ nhớ cache và trạng thái của khối bộ nhớ (Trang 37)
HÌNH  6.37  Các  bước  kết  hợp  bộ  nhớ  cache  và  lưu  lượng  bus  cho  ba  bộ  xử  ly,  P0,  PI  và  P2 - Báo cáo tiểu luận Đề tài  Đa xử lý và các cấp Độ phân cấp luồng song song
6.37 Các bước kết hợp bộ nhớ cache và lưu lượng bus cho ba bộ xử ly, P0, PI và P2 (Trang 83)
HÌNH  6.41  Một  khóa  quay  có  lùi  theo  cấp  số  nhân.  Khi  lưu  trữ  có  điều  kiện  không  thành  công, - Báo cáo tiểu luận Đề tài  Đa xử lý và các cấp Độ phân cấp luồng song song
6.41 Một khóa quay có lùi theo cấp số nhân. Khi lưu trữ có điều kiện không thành công, (Trang 89)
HÌNH  6.43  Mã  cho  một  rảo  cản  đáo  ngược  cảm  giác  sử  dụng  tìm  nạp  và  tăng  để  thực  hiện  việc  đêm - Báo cáo tiểu luận Đề tài  Đa xử lý và các cấp Độ phân cấp luồng song song
6.43 Mã cho một rảo cản đáo ngược cảm giác sử dụng tìm nạp và tăng để thực hiện việc đêm (Trang 94)