6. Cấu trúc của luận án
3.2.1. Khái quát
Bước 2.5:Mức độ sử dụng tại các nút i ir ir ir i λ U =
μ m với mi là số server của nút i (3.30)
3.2. Mô hình tổ chức cache trong kiến trúc chip đa xử lý, đa luồng
3.2.1. Khái quát
Công nghệ vi xử lýhiện nay tập trung vào đa lõi và đa luồng cho mỗi lõi trong một chip. CMP đa luồng cho phép đa lõi nằm trong cùng một chip để chia sẻ tài nguyên và cải thiện mức độ sử dụng. Kỹ thuật đa luồng đồng thời (SMT) cho phép các lõi xử lý riêng trong một chip để thực hiện các lệnh từ nhiều luồng đơn cùng một lúc (2, 4 hoặc 8-luồng) còn gọi là siêu luồng [37, 52, 53].
Phần lớn các CMP đa luồnghiện nay sử dụng 2 cấp cache: L1 cache riêng cho từng lõi, L2 cache chia sẻ chung cho các lõi. Khi số lượng lõi tăng lên, do có nhiều lõi truy nhập đồng thời tại L2 cache chia sẻ, làm xuất hiện trạng thái nghẽn nút cổ
chai, dẫn đến tắc nghẽn lưu lượng dữ liệu và giảm hiệu năngcủa bộ xử lý.
Kiến trúc CMP đa luồng yêu cầu phân cấp cache để quản lý độ trễ và băng
thông. Trên mỗi chip thường có 2 hoặc 3 cấp cache, L1 cache riêng cho mỗi lõi, L2 cache có thể là riêng hay chia sẻ cho 2 hoặc 4-lõi, L3 cache và bộ nhớ chính luôn luôn được chia sẻ.
Cache riêng có lợi thế: chúng gần lõi, do đó truy nhập nhanh hơn, và làm giảm
tranh chấp. Ngoài ra, cache riêng cũng có được vị trí khoảng cách tốt hơn, tất cả các
dữ liệu cần thiết qua lõi luôn được đưa vào cache của lõi. Cache riêng dễ dàng để đạt được hiệu năng cao hơn cache chia sẻ, do ranh giới tự nhiên giữa các cache sắp
xếp cạnh nhau. Nhưng với kiến trúc cache riêng, vấn đề kết nối cache cần phải sử
dụng các giao thức cache phù hợp để giữ dữ liệu ổn định qua các cache, giới hạn không gian cache được dùng không thể chia sẻ các dữ liệu cùng cache đến các
luồng trên các lõi khác nhau dẫn đến không đồng đều mức độ sử dụng của toàn bộ
không gian cache [1, 32]. Mức độ sử dụng cache không đồng đều như vậy có thể
dẫn đến suy giảmđáng kể tổng hiệu năng của hệ thống.
CMP đa luồng sử dụng cache chia sẻ có lợi thế: độ trễ của thông tin ít, một lõi có thể tìm nạp trước dữ liệu cho lõi khác có kích thước cache nhỏ hơn cần thiết, tắc
nghẽn trên phạm vi kết nối bộ nhớ ít hơn, chia sẻ động cho phép sử dụng hiệu quả
chia sẻ không gian cache [1, 32]. Tuy nhiên, với số lượng lõi cao đòi hỏi băng thông và kích thước cache cao hơn. Độ trễ trúng cache sẽ cao hơn do chuyển đổi logic trên bộ nhớ cache. Mặt khác, khi thực hiện đồng thời các luồng được tạo ra từ các ứng
dụng khác nhau, tổng hiệu năng của một CMP đa luồng có thể suy giảm do các xung đột giữa các các luồng trong không gian cache chia sẻ, một luồng của một lõi có thể truy xuất các dữ liệu của một luồng khác và thời gian thực hiện của nó trở nên dài hơn so với cache riêng [1].