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à thời gian truy cập same.The kinh nghiệm của khác nhau
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 bộ xử lý khác nhau tùy theo khu vực mà 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.
• Cache-mạch lạc Numa (CC-Numa):. Một hệ thống NUMA trong đó bộ nhớ cache gắn kết được duy trì trong bộ nhớ cache của các bộ vi xử lý khác nhau
Một hệ thống mà không cần bộ nhớ cache Numa sự gắn kết 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 tiếc là không phải luôn luôn, 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 bộ xử lý và memory.As chính số bộ xử lý tăng lên, giao thông xe buýt này cũng tăng lên. 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 giảm hiệu suất 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 thúc đẩy sự phát triển 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 chứ không phải là hardware.This bộ nhớ granularity ảnh hưởng đến hiệu suất và, để đạt được hiệu suất tối đa, phần mềm phải phù hợp với môi trường này. 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 độc lập, mỗi trong số đó là, có hiệu lực, một tổ chức SMP. Như vậy, mỗi nút chứa nhiều bộ xử lý, 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, 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ù việc triển khai 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ự sau đây 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.
đang được dịch, vui lòng đợi..
