Hệ thống đa xử lý NUMA

Một phần của tài liệu Hệ Điều Hành Học Viện Công Nghệ Bưu Chính Viễn Thông (Trang 148 - 149)

- Đọc/Ghi ngày, tháng, năm

HỆ ĐIỀU HÀNH NHIỀU BỘ VI XỬ LÝ

6.1.4. Hệ thống đa xử lý NUMA

Các hệ thống đa xử lý UMA dùng bus thƣờng bị giới hạn tối đa khoảng vài tá CPU, cịn các hệ

thống dùng chuyển mạch chéo hoặc chuyển mạch đa tầng thì cần nhiều phần cứng hỗ trợ. Để cho phép một hệ thống cĩ thể hỗ trợ tốt với trên 100 CPU, ngƣời ta đƣa ra một cách tiếp cận khác. Với cách tiếp cận này, việc truy xuất bộ nhớ cục bộ sẽ nhanh hơn việc truy xuất bộ nhớ ở xa. Nhƣ vậy, các chƣơng trình hỗ trợ UMA sẽ chạy tốt trên các máy hỗ trợ NUMA mà khơng cĩ sự thay đổi nào. Trong khi đĩ, các chƣơng chƣơng trình đƣợc hỗ trợ NUMA sẽ giảm hiệu suất thực thi khi chạy trên các máy hỗ trợ UMA ở cùng một tốc độ đồng hồ.

Các máy NUMA cĩ 3 đặc điểm chính cĩ thể phân biệt với các hệ thống đa xử lý khác, đĩ là: Cĩ một khơng gian địa chỉ duy nhất cĩ thể nhìn thấy bởi tất cả các CPU.

Truy xuất bộ nhớ ở xa thơng qua hai lệnh LOAD và STORE. Truy xuất bộ nhớ ở xa chậm hơn truy xuất bộ nhớ cục bộ.

Khi thời gian truy xuất bộ nhớ ở xa cĩ sự khác biệt lớn so với thời gian truy xuất bộ nhớ cục bộ (bởi vì khơng cĩ cơ chế caching) thì hệ thống đƣợc gọi là NC-NUMA (NonCaching NUMA).

Ngƣợc lại, khi cĩ các bộ nhớ cache, thì hệ thống đƣợc gọi là CC-NUMA (Cache Coherent

NUMA).

Hình 6.4. (a) Hệ thống đa xử lý sử dụng Directory – 256 node. (b) Phân chia địa chỉ ơ nhớ 32-bit thành các trƣờng. (c) Cấu trúc Directory của node 36.

Cách tiếp cận phổ biến nhất để xây dựng một hệ thống đa xử lý CC-NUMA hiện nay là sử dụng một cơ sở dữ liệu để lƣu vị trí của các khối cache và trạng thái của chúng. Khi một khối cache đƣợc tham chiếu, cơ sở dữ liệu đƣợc yêu cầu đƣợc truy vấn để tìm ra vị trí và trạng thái của nĩ là nguyên bản hay đã bị sửa đổi. Vì cơ sở dữ liệu này phải đƣợc truy vấn bởi mọi chỉ thị lệnh tham chiếu đến bộ nhớ, nên nĩ phải đƣợc lƣu giữ trong một thiết bị phần cứng đặc biệt hỗ trợ tốc độ truy xuất cực nhanh.

Để làm rõ hơn ý tƣởng của hệ thống này, chúng ta xét ví dụ đơn giản đƣợc mơ tả nhƣ trong hình 6-5. Một hệ thống gồm 256 node, mỗi node gồm một CPU và 16MB bộ nhớ RAM đƣợc kết nối đến CPU thơng qua một bus cục bộ. Tổng bộ nhớ là 232 byte, đƣợc chia làm 226 khối cache, mỗi khối 64 byte. Bộ nhớ đƣợc định vị cố định tại mỗi node, với 0-16MB cho node 0, 16MB–32MB

cho node 1 … Các node đƣợc kết nối với nhau nhƣ trong hình 6-5(a). Ngồi ra, mỗi node cũng lƣu giữ các thực thể (entry) trong thƣ mục (directory) cho 218

khối cache 64-byte (hình thành bộ nhớ 224

byte) tƣơng ứng.

Để thấy rõ cơ chế làm việc của hệ thống này, thực hiện theo vết lệnh LOAD từ CPU 20 nhƣ sau. Đầu tiên, CPU sẽ phát chỉ thị lệnh đến đơn vị quản lý bộ nhớ của nĩ (MMU), đơn vị này sẽ chuyển chỉ thỉ lệnh đĩ sang một địa chỉ vật lý (giả sử là 0x24000108). MMU tiếp tục chia địa chỉ này thành 3 phần nhƣ trong hình 6-5(b). Giả sử 3 phần này lần lƣợt cĩ giá trị là node 36, khối cache 4 và offset 8. Nhƣ vậy, MMU nhận thấy rằng, word đƣợc tham chiếu là từ node 36, khơng

phải node 20, do vậy nĩ gởi một message yêu cầu đến node 36, là node quản lý khối cache 4, hỏi xem khối 4 cĩ đƣợc cache hay khơng, nếu cĩ thì nĩ đƣợc cache ở đâu.

Khi yêu cầu này đến node 36, nĩ sẽ đƣợc chuyển đến phần cứng Directory. Phần cứng này sẽ dị

trong bảng gồm 218

thực thể của nĩ để tìm ra thực thể 4. Từ hình 6-5(c), chúng ta thấy rằng khối 4 khơng đƣợc cache, do vậy phần cứng sẽ nạp dịng 4 từ bộ nhớ RAM cục bộ và gởi ngƣợc lại node 20, đồng thời cập nhật Directory ở thực thể 4 và chỉ ra rằng khối này bây giờ đƣợc cache ở node

20.

Bây giờ, chúng ta xem xét một yêu cầu khác, lần này node 20 hỏi về khối cache 2 của node 36. Từ hình 6-5(c), chúng ta thấy rằng khối này đƣợc cache tại node 82. Nhƣ vậy, phần cứng phải cập nhật thực thể 2 trong Directory để chỉ ra rằng khối này đang đƣợc cache ở node 20 đồng thời vơ hiệu hĩa cache của nĩ.

Một phần của tài liệu Hệ Điều Hành Học Viện Công Nghệ Bưu Chính Viễn Thông (Trang 148 - 149)

Tải bản đầy đủ (PDF)

(200 trang)