Tổ chức phân cấp cache trong các chip đa xử lý

Một phần của tài liệu Tối ưu hoá và đánh giá hiệu năng của tổ chức cache trong hệ thống vi xử lý thế hệ sau (Trang 68 - 70)

6. Cấu trúc của luận án

2.5.1. Tổ chức phân cấp cache trong các chip đa xử lý

Trong các CMP đa luồng, mỗi lõi xử lý có L1I cache và L1D cache riêng,

nhưng L2 cache hoặc có thể riêng cho từng lõi [11, 29, 38, 50] hoặc có thể chia sẻ

cho tất cả các lõi [2, 8, 16, 17, 29, 38, 72] như hình 2.15.

Hình 2.15: CMP đa luồng hai cấp cache; a) với L2 cache riêng và (b) với L2 cache chung cho tất cả các lõi [38,72].

Trong một số CMPđa luồng có thể có L3 cache chia sẻ cho các lõi, khi đó L2

cache là riêng cho từng lõi như hình 2.16.

Hình 2.16: Tổ chức cache trong các bộ xử lý 8-lõi của Intel Xeon họ 5500 [13, 14, 64, 65].

Với xu hướng công nghệ là tăng số lượng lõi để tiết kiệm không gian, các kiến

trúc đa lõi hiện nay hầu hết sử dụng L2 cache chia sẻ. Các lõi với L1 Icache và L1 Dcache riêng kết hợp vào trong chip và các lõi chia sẻ L2 cache. Ví dụ, kiến trúc

Tiled CMP 16-lõi như hình 2.17. Ở đây, L2 cache được tổ chức thành các mảnh

phân bố đều theo các lõi được chia sẻ, một mảnh L2 cache chia sẻ cho 4-lõi kề.

Kiến trúc này cho phép linh hoạt trong cấu hình lại L2 cache chia sẻ cho các lõi theo nhu cầu dung lượng, giảm đáng kể yêu cầu băng thông tổng thể, và tăng hiệu năng của hệ thống [9, 49, 50].

Hình 2.17: Tiled CMP 16-lõi với kiến trúc L2 cache chia sẻ [49, 50].

2.5.2. Cache chia sẻ thông minh

Cache thông minh đầu tiên được đưa ra bởi kiến trúc Intel® Advanced Smart

Cache có cache chia sẻ ở cấp cuối cùng, từ kiến trúc Nehalem họ Xeon 5500 và tiếp

tục đến các kiến trúc Corei (L3 smart cache) [66]. AMD và Sun cũng đưa ra các đặc

tính thông minh của cache chia sẻ ở cấp cache cuối. Cache chia sẻ thông minh có

những đặc điểm sau đây:

Cache chia sẻ cho tốc độ chuyển dữ liệu giữa các lõi nhanh hơn so với bộ

nhớ chính.

Kiến trúc cache chia sẻ đem lại nhiều lợi ích và đảm bảo tỷ số hiệu năng/chi

phí tốt hơn so với cache riêng.

Sử dụng hiệu quả cache chia sẻ

- Nếu một lõi rỗi, lõi còn lại chiếm lấy toàn bộ dung lượng của cache chia sẻ. - Giảm sự không sử dụng của cache chia sẻ.

Linh hoạt cho người lập trình

- Có nhiều khả năng chia sẻ dữ liệu cho các luồng chạy trên từng lõi riêng mà chúng cùng chia sẻ cache.

- Một lõi có thể xử lý trước hoặc xử lý sau dữ liệu cho các lõi còn lại.

- Có các cơ chế truyền thông thay phiên nhau giữa các lõi.

Giảm được sự phức tạp của liên kết logic cache

- Giảm sự chia sẻ bị lỗi của cache chia sẻ.

- Tải nhỏ hơn cho duy trì sự kết dính với nhau so với kiến trúc cache riêng.

Giảm dư thừa lưu trữ dữ liệu

- Cùng một dữ liệu chỉ cần lưu trữ một lần.

- Các luồng lệnh giống nhau chạy ở các lõi riêng nhưng trên dữ liệu khác

nhau cùng chia sẻ các địa chỉ lệnh. Khi đó, các địa chỉ lệnh được sao chép cho tất cả

các cache (riêng và chia sẻ) sẽ gây ra sự lãng phí, mà chỉ cần có một bản sao của các lệnh trên cache chia sẻ.

Giảm lưu lượng của bus bộ nhớ

Chia sẻ dữ liệu hiệu quả giữa các lõi, cho phép dữ liệu yêu cầu được giải

quyết ở cấp cache chia sẻ cuối cùng thay vì tất cả đi đến bộnhớ chính.

Một phần của tài liệu Tối ưu hoá và đánh giá hiệu năng của tổ chức cache trong hệ thống vi xử lý thế hệ sau (Trang 68 - 70)

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

(153 trang)