Phân loại giao thức

Một phần của tài liệu Các hệ vi xử lý tiên tiến (Trang 67)

Lối vào thư mục (đường dẫn thư mục) đối với mỗi khối dữ liệu chứa một số con trỏ để xác định các vị trí của các bản sao của khối. Mỗi lối vào (đường dẫn) chỉ có thể chứa một dirty bit để xác định một cache duy nhất có được phép viết vào khối bộ nhớ này hay không. Hầu hết các giao thức dựa trên thư mục có thể được chia thành ba loại: thư mục ánh xạ hoàn toàn, thư mục hạn chế, và thư mục chuỗi.

Các thư mục ánh xạ hoàn toàn Dưới dạng ánh xạ hoàn toàn, mỗi lối vào thư mục chứa N con trỏ, trong đó N là số bộ xử lý. Do đó, cần phải có N bản sao cache của một khối cụ thể được chia sẻ (được dùng chung) bởi tất cả các bộ vi xử lý. Đối với mỗi khối bộ nhớ, một vector N-bit được duy trì, trong đó N là số bộ vi xử lý trong

Read-Miss Nếu không tồn tại bản sao cache khác, thì cung cấp một bản sao từ bộ nhớ toàn cục. Chuyển trạng thái của bản sao này sang Valid Exclusive. Nếu một bản sao cache tồn tại, tạo một bản sao từ bộ nhớ cache. Chuyển trạng thái sang Shared Clean. Nếu các bản sao bộ nhớ cache đang cung cấp là Valid Exclusion hoặc Shared Clean, trạng thái mới của nó trở thành Shared Clean. Nếu các bản sao bộ nhớ cache cung cấp ở trạng thái Dirty hoặc Shared Dirty, trạng thái mới của nó trở thành Shared Dirty.

Write-Hit Nếu trạng thái là Valid Exclusive hoặc Dirty, thực hiện viết cục bộ và chuyển trạng thái sang Dirty. Nếu trạng thái là Shared Clean hoặc Shared Dirty, thực hiện cập nhật và thay đổi trạng thái thành Shared Dirty. Truyền khối cấp nhật cho tất cả các cache khác. Các cache này nằm sẵn trên bus và cập nhật bản sao của chúng, sau đó chuyển trạng thái của chúng thành Shared Clean.

Write-Miss Khối copy họăc xuất phát từ cache khác họăc từ bộ nhớ toàn cục.Nếu khối xuất phát từ bộ nhớ cache khác, thực hiện cập nhật, chuyển trạng thái sang Shared Dirty, và truyền khối cập nhật cho các cache khác. Các cache khác nằm sẵn trên bus, cập nhật bản sao của chúng, và thay đổi trạng thái của chúng thành Shared Clean. Nếu các bản sao đến từ bộ nhớ, thực hiện ghi và chuyển trạng thái sang Dirty.

Thay thế khối Nếu một bản sao ở trạng thái Dirty họăc Shared Dirty, nó phải được viết vào lại bộ nhớ chính nếu khối đang được thay thế.Nếu bản sao ở trạng thái Valid Exclusive, không cần ghi lại khi khối được thay thế.

hệ thống bộ nhớ dùng chung. Mỗi bit trong vector tương ứng với một bộ xử lý. Nếu bit i* được đặt là một, có nghĩa là bộ vi xử lý i có bản sao của khối này trong bộ nhớ cache của nó. Hình 4.7 minh họa sơ đồ ánh xạ hoàn toàn. Trong hình, vector gắn với khối X trong bộ nhớ cho thấy rằng X ở Cache C0 và Cache C2. Rõ ràng, không gian không được tận dụng hiệu quả trong phương pháp này, đặc biệt nếu không có nhiều bộ xử lý chia sẻ cùng một khối.

Các thư mục giới hạn Các thư mục giới hạn có số con trỏ trên một cổng vào thư mục không đổi bất kể số bộ xử lý. Hạn chế số lượng đồng thời các bản sao cache của bất kỳ khối nào nên giải quyết vấn đề kích thước thư mục có thể tồn tại trong các thư mục ánh xạ hoàn toàn. Hình 4.8 minh họa sơ đồ thư mục hạn chế. Trong ví dụ này, số lượng bản sao chia sẻ được giới hạn ở hai. Đây là lý do tại sao vector gắn với khối X trong bộ nhớ chỉ có hai vị trí. Vector chỉ ra rằng X ở trong cache C0 và Cache C2.

BẢNG 4.12 Ví dụ 6 (Write-Update Write-Back)

Hình 4.7 Thư mục ánh xạ hoàn toàn

Hình 4.8 Thư mục giới hạn (chia sẻ tối đa = 2).

Thư mục chuỗi Các thư mục chuỗi giả lập ánh xạ hoàn toàn bằng cách phân phối thư mục giữa các cache. Chúng được thiết kế để giải quyết vấn đề kích thước thư mục mà không hạn chế số bản sao khối dùng chung. Các thư mục chuỗi theo dõi bản sao dùng chung

của một khối đặc biệt bằng cách duy trì một chuỗi các con trỏ thư mục. Hình 4.9 cho thấy lối vào thư mục gắn với X có một con trỏ hướng đến Cache C2, do đó nó sẽ có một con trỏ hướng đến cache C0. Tức là, khối X tồn tại trong hai Caches C0 và Cache C2. Con trỏ từ cache C0 đang hướng đến terminator (CT), cho thấy sự kết thúc của danh sách. Terminator: thiết bị kết thúc, phần tử kết thúc

Một phần của tài liệu Các hệ vi xử lý tiên tiến (Trang 67)