Trong điều kiện của sản phẩm thương mại, hai cách tiếp cận phổ biến để cung cấp một
hệ thống đa bộ xử lý để hỗ trợ các ứng dụng là SMPS và cụm. Đối với một số
năm, cách tiếp cận khác, được gọi là truy cập bộ nhớ không đồng dạng (NUMA), đã được
các đối tượng nghiên cứu và NUMA thương mại các sản phẩm đang có sẵn.
Trước khi tiếp tục, chúng ta cần xác định một số thuật ngữ thường được tìm thấy trong Numa
văn học.
• truy cập bộ nhớ Uniform ( UMA): Tất cả các bộ vi xử lý có thể truy cập tất cả các phần của
bộ nhớ chính bằng cách sử dụng tải và các cửa hàng. Thời gian truy cập bộ nhớ của một bộ xử lý
cho tất cả các vùng của bộ nhớ là như nhau. Thời gian truy cập khác nhau kinh nghiệm của
bộ vi xử lý đều giống nhau. Các tổ chức SMP thảo luận tại mục 17.2 và
17.3 là UMA.
• truy cập bộ nhớ không đồng dạng (NUMA): Tất cả các bộ vi xử lý có thể truy cập tất cả các phần
của bộ nhớ chính bằng cách sử dụng tải và các cửa hàng. Thời gian truy cập bộ nhớ của một proces-sor khác nhau tùy thuộc vào khu vực của bộ nhớ chính được truy cập. Cuối cùng
tuyên bố là đúng cho tất cả các bộ vi xử lý; Tuy nhiên, đối với các bộ xử lý khác nhau, trong đó
khu vực bộ nhớ chậm hơn và nhanh hơn là khác nhau.
• Numa Cache-kết hợp (Numa-CC):. Một hệ thống NUMA trong đó bộ nhớ cache đồng herence được duy trì trong bộ nhớ cache của các bộ vi xử lý khác nhau
Một hệ thống NUMA mà không có sự gắn kết bộ nhớ cache là nhiều hơn hoặc ít tương đương với một cluster.
Các sản phẩm thương mại đã nhận được rất nhiều sự chú ý gần đây là CC-NUMA
hệ thống, đó là khá khác biệt từ cả hai SMPS và cụm. Thông thường, nhưng unfortu-nately không phải lúc nào, hệ thống này trên thực tế được đề cập trong các tài liệu thương mại như
hệ thống CC-NUMA. Phần này là có liên quan chỉ với các hệ thống CC-NUMA.
Động lực
Với một hệ thống SMP, có một giới hạn thực tế về số lượng các bộ vi xử lý có thể
được sử dụng. Một chương trình bộ nhớ cache hiệu quả làm giảm lưu lượng xe buýt giữa bất kỳ một proces-sor và bộ nhớ chính. Vì số lượng các bộ xử lý tăng lên, giao thông xe buýt này cũng trong nếp gấp. Ngoài ra, các xe buýt được sử dụng để trao đổi tín hiệu bộ nhớ cache chặt chẽ, tiếp tục thêm vào
gánh nặng. Tại một số điểm, xe buýt sẽ trở thành một nút cổ chai hiệu suất. Suy thoái perfor-mance dường như hạn chế số lượng bộ vi xử lý trong một cấu hình SMP
17.6 / không đồng dạng bộ nhớ truy cập 661
đến nơi nào đó giữa 16 và 64 bộ xử lý. Ví dụ, Silicon Graphics 'Power
Challenge SMP được giới hạn đến 64 bộ vi xử lý R10000 trong một hệ thống duy nhất; vượt ra ngoài này
làm giảm hiệu suất số lượng đáng kể.
Giới hạn bộ xử lý trong một SMP là một trong những động lực đằng sau de-velopment của hệ thống cluster. Tuy nhiên, với một cụm, mỗi node có riêng của nó
bộ nhớ chính; các ứng dụng không thấy một bộ nhớ lớn toàn cầu. Trong thực tế, sự liên lạc được
duy trì trong phần mềm hơn là phần cứng. Granularity bộ nhớ này ảnh hưởng đến perfor-mance và, để đạt được hiệu suất tối đa, phần mềm phải được thiết kế để này ronment-môi. Một cách tiếp cận để đạt được quy mô lớn đa trong khi giữ lại
hương vị của SMP là Numa. Ví dụ, hệ thống Silicon Graphics xứ Numa được
thiết kế để hỗ trợ lên đến 1.024 bộ vi xử lý MIPS R10000 [WHIT97] và Sequent
hệ thống NUMA-Q được thiết kế để hỗ trợ lên đến 252 bộ vi xử lý Pentium II [LOVE96].
Mục tiêu với NUMA là để duy trì một bộ nhớ rộng hệ thống minh bạch
trong khi cho phép nhiều nút đa, mỗi xe buýt riêng của mình hoặc khác
hệ thống kết nối nội bộ.
Tổ chức
Hình 17.13 mô tả một tổ chức CC-NUMA điển hình. Có nhiều nút indepen-vết lõm, mỗi trong số đó là, có hiệu lực, một tổ chức SMP. Như vậy, mỗi nút xử lý con-địa bao gồm nhiều, mỗi với cache L1 và L2 của riêng mình, cộng với bộ nhớ chính.
Các nút là các khối xây dựng cơ bản của các tổ chức CC-NUMA tổng thể. Đối với
ví dụ, mỗi nút Silicon Graphics xứ bao gồm hai bộ xử lý MIPS R10000;
mỗi Sequent nút NUMA-Q bao gồm bốn bộ vi xử lý Pentium II. Các nút được
kết nối với nhau bằng các phương tiện của một số cơ sở truyền thông, mà có thể là một cơ chế chuyển đổi-ing, một chiếc nhẫn, hoặc một số thiết bị mạng khác.
Mỗi nút trong hệ thống CC-NUMA bao gồm một số bộ nhớ chính. Từ
quan điểm của các bộ vi xử lý, tuy nhiên, chỉ có một bộ nhớ địa chỉ duy nhất,
với mỗi vị trí có một hệ thống duy nhất địa chỉ rộng. Khi một bộ xử lý khởi tạo
một truy cập bộ nhớ, nếu các vị trí bộ nhớ được yêu cầu không có trong bộ nhớ cache của bộ xử lý,
sau đó bộ nhớ cache L2 khởi tạo một hoạt động lấy. Nếu dòng mong muốn là trong phần địa phương
của bộ nhớ chính, dòng được lấy trên xe buýt địa phương. Nếu dòng mong muốn là trong một
phần từ xa của bộ nhớ chính, sau đó là một yêu cầu tự động được gửi ra để lấy
dòng trên mạng kết nối, cung cấp nó cho các xe buýt địa phương, và sau đó
cung cấp nó cho các yêu cầu bộ nhớ cache trên xe buýt đó. Tất cả các hoạt động này là tự động và
minh bạch để xử lý và bộ nhớ cache của nó.
Trong cấu hình này, bộ nhớ cache sự gắn kết là một mối quan tâm chính. Mặc dù imple-mentations khác nhau như thông tin chi tiết, nói chung chúng ta có thể nói rằng mỗi nút phải
duy trì một số loại thư mục đó cung cấp cho nó một dấu hiệu của các vị trí khác nhau của
các phần của bộ nhớ và các thông tin trạng thái của bộ nhớ cache. Để xem cách chương trình này
hoạt động, chúng tôi cung cấp một ví dụ lấy từ [PFIS98]. Giả sử rằng bộ xử lý 3 vào nút
2 (P2-3) yêu cầu một vị trí bộ nhớ 798, đó là trong bộ nhớ của nút 1. Trình tự fol-rống xảy ra:
1. P2-3 đưa ra một yêu cầu đọc trên xe buýt lục lạo của nút 2 cho vị trí 798.
2. Các thư mục trên nút 2 thấy yêu cầu và nhận ra rằng vị trí là ở
nút 1.
662 Chương 17 / PARALLEL CHẾ BIẾN
3. Thư mục của nút 2 sẽ gửi một yêu cầu đến nút 1, mà là chọn của nút 1 của
thư mục.
4. Thư mục của nút 1, hoạt động như một đại diện của P2-3, yêu cầu nội dung của 798,
như thể nó là một bộ xử lý.
5. Bộ nhớ chính Node 1 của phản ứng bằng cách đưa dữ liệu yêu cầu trên xe buýt.
6. Thư mục Node 1 của chọn lên các dữ liệu từ xe buýt.
7. Các giá trị được chuyển trở lại vào thư mục của nút 2.
8. Thư mục Node 2 của đặt dữ liệu trở lại trên xe buýt nút 2, hoạt động như một thay thế
cho bộ nhớ mà ban tổ chức nó.
9. Các giá trị được chọn và được đặt trong bộ nhớ cache P2-3 và giao cho P2-3.
L1 cache
xử lý
1-1
Main
Memory 1
bộ xử lý
1-m
L1 cache
L2 Cache L2 Cache thư mục
I / O
I / O
L1 cache
xử lý
N- 1
Main
bộ nhớ N
Processor
Nm
L1 cache
L2 Cache L2 Cache
thư mục
cache L1
xử lý
2-1
Main
Memory 2
bộ xử lý
2-m
L1 cache
L2 Cache L2 Cache thư mục
I / O
Interconnect
Mạng
Hình Tổ chức 17,13 CC-NUMA
17,6 / không đồng dạng bộ nhớ truy cập 663
Các dãy đầu giải thích cách dữ liệu được đọc từ bộ nhớ từ xa
bằng cách sử dụng các cơ chế phần cứng mà thực hiện giao dịch minh bạch để xử lý.
Trên đầu trang của các cơ chế này, một số hình thức của giao thức bộ nhớ cache chặt chẽ là cần thiết. Hệ thống Var-ious khác nhau về cách chính xác này được thực hiện. Chúng tôi làm chỉ có một vài nhận xét chung
ở đây. Đầu tiên, như một phần của dãy đầu, thư mục nút 1 của giữ một kỷ lục mà
một số bộ nhớ cache từ xa có một bản sao của dòng có chứa vị trí 798. Sau đó, có nhu cầu
là một giao thức hợp tác xã để chăm sóc sửa đổi. Ví dụ, nếu một modifi-cation được thực hiện trong một bộ nhớ cache, thực tế này có thể được phát sóng đến các nút khác. Mỗi nút di-xứ đó nhận được một chương trình như vậy sau đó có thể xác định nếu bất kỳ bộ nhớ cache địa phương có mà
dòng, và nếu như vậy, nguyên nhân gây ra nó để được thanh lọc. Nếu các vị trí bộ nhớ thực tế là tại nút tái ceiving thông báo phát sóng, sau đó thư mục của nút mà cần phải duy trì một
entry chỉ ra rằng dòng bộ nhớ không hợp lệ và vẫn như vậy cho đến khi một viết lại
xảy ra. Nếu một bộ xử lý (địa phương hoặc từ xa) yêu cầu các dòng không hợp lệ, sau đó các địa phương
thư mục phải buộc một viết lại để cập nhật bộ nhớ trước khi cung cấp dữ liệu.
Numa Ưu và khuyết điểm
Ưu điểm chính của một hệ thống CC-NUMA là nó có thể cung cấp perfor hiệu quả -mance ở mức cao hơn song song hơn SMP, mà không cần phần mềm lớn
thay đổi. Với nhiều nút NUMA, giao thông xe buýt trên bất kỳ nút cá nhân là lim-hạn ở một nhu cầu mà các xe buýt có thể xử lý. Tuy nhiên, nếu nhiều truy cập bộ nhớ
là các nút điều khiển từ xa, hiệu suất bắt đầu bị phá vỡ. Có lý do để tin
rằng sự cố hiệu suất này có thể tránh được. Đầu tiên, việc sử dụng cache L1 và L2
được thiết kế để giảm thiểu tất cả các truy cập bộ nhớ, bao gồm cả những người từ xa. Nếu phần lớn các
phần mềm có địa phương thời gian tốt, sau đó bộ nhớ từ xa các truy cập không nên
quá mức. Thứ hai, nếu phần mềm có địa phương không gian tốt, và nếu bộ nhớ ảo là
trong sử dụng, sau đó dữ liệu cần thiết cho một ứng dụng sẽ nằm trên một số giới hạn của
trang thường được sử dụng mà ban đầu có thể được nạp vào bộ nhớ địa phương để chạy-ning ứng dụng . Các nhà thiết kế Sequent báo cáo rằng địa phương không gian như không xuất hiện
trong các ứng dụng đại diện [LOVE96]. Cuối cùng, chương trình bộ nhớ ảo có thể được
tăng cường bằng cách bao gồm trong hệ điều hành một cơ chế di chuyển trang đó
sẽ di chuyển một trang bộ nhớ ảo để một nút đó là thường xuyên sử dụng nó; Silicon
Graphics thiết kế báo cáo thành công với phương pháp này [WHIT97].
Ngay cả khi sự cố hiệu suất do truy cập từ xa được giải quyết, có
hai nhược điểm khác để tiếp cận CC-NUMA. Hai đặc biệt là dis-bàn đến chi tiết trong [PFIS98]. Đầu tiên, một CC-NUMA không minh bạch trông giống như một
SMP; thay đổi phần mềm sẽ được yêu cầu để di chuyển một hệ điều hành và đơn xin-tions từ một SMP với một hệ thống CC-NUMA. Chúng bao gồm phân bổ trang, đã được
đề cập, phân bổ quá trình, và cân bằng tải bởi hệ điều hành. Một
mối quan tâm thứ hai là sự sẵn có. Đây là một vấn đề khá phức tạp và phụ thuộc
vào việc thực hiện chính xác của hệ thống CC-Numa; người đọc quan tâm được
gọi [PFIS98].
Vector xử lý Simulator
đang được dịch, vui lòng đợi..