Các giao thức vô hiệu

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

Vô hiệu hoá thư mục tập trung Khi một yêu cầu viết được phát đi, thư mục trung tâm được sử dụng để xác định các bộ vi xử lý nào có một bản sao của khối.

Tín hiệu vô hiệu và một con trỏ tới bộ xử lý yêu cầu được chuyển tiếp đến tất cả các bộ vi xử lý có một bản sao của khối. Mỗi bộ nhớ cache bị vô hiệu gửi một xác nhận đến bộ xử lý yêu cầu. Sau khi quá trình vô hiệu hoá hoàn thành, chỉ có bộ xử lý viết có cache cùng với bản sao của khối. Hình 4.10 biểu diễn yêu cầu write-miss từ Cache C3. Khi nhận được yêu cầu, bộ nhớ sẽ gửi tín hiệu vô hiệu và một con trỏ đến cache C3 rồi đến cache C0 và Cache C2. Các cache này vô hiệu hoá chính chúng và gửi xác nhận đến cache C3. Sau khi quá trình vô hiệu được thực hiện, Cache C3 sẽ có quyền truy cập đọc-ghi độc quyền vào X.

Giao diện tương hợp có thể mở rộng (SCI) Giao thức giao diện tương hợp có thể mở rộng dựa trên một danh sách liên kết kép của các thư mục phân tán. Mỗi khối cache được nhập vào một danh sách các bộ xử lý dùng chung khối đó. Đối với mọi địa chỉ khối, các lối vào bộ nhớ và cache có thêm các tag bit. Một phần của tag bộ nhớ chỉ định bộ vi xử lý đầu tiên trong danh sách dùng chung (đứng đầu). Một phần của mỗi tag cache chỉ định các lối vào danh sách dùng chung trước và sau. Nếu không tính đến số bit cần thiết trong các cache cục bộ đối với các con trỏ, kích thước thư mục trong bộ nhớ bằng số khối bộ nhớ nhân log2 (số lượng cache).

Ban đầu bộ nhớ ở trạng thái không cache và các bản sao cache không hợp lệ. Một yêu cầu đọc được hướng từ bộ vi xử lý đến bộ điều khiển bộ nhớ. Các dữ liệu yêu cầu được trả lại cho bộ nhớ cache của đối tượng yêu cầu và trạng thái vào của nó thay đổi từ trạng thái vô hiệu sang trạng thái đầu. Điều này thay đổi trạng thái bộ nhớ từ không cache sang có cache. Khi một đối tượng yêu cầu đưa yêu cầu đọc của nó đến bộ nhớ, bộ nhớ trả về một con trỏ cho đầu (head). Một yêu cầu đọc từ cache sang cache (được gọi là Prepend) được gửi từ đối tượng yêu cầu đến cache đầu. Khi nhận được yêu cầu, cache đầu hướng con trỏ ngược của nó đến cache của đối tượng yêu cầu. Các dữ liệu yêu cầu được trả lại cho cache của đối tượng yêu cầu và trạng thái vào của nó được chuyển sang trạng thái đầu. Phần đầu của danh sách có quyền lọc (tẩy, xoá) các mục khác trong danh sách để thu được mục exclusive (read-write). Giao tác ban đầu chuyển sang đối tượng trong danh sách chia sẻ thứ hai lọc (tẩy, xoá) đối tượng đó trả về con trỏ thuận của nó. Con trỏ thuận được sử dụng để lọc (tẩy, xoá) entry tiếp theo và v.v….. Các entry cũng có thể tự xoá chính chúng từ danh sách khi

chúng cần cache các địa chỉ khối khác. Hình 4.11 biểu diễn sự thêm vào và loại bỏ các phép toán trong danh sách chia sẻ trong SCI.

Hình 4.10 Vô hiệu hoá thư mục tập trung.

Entry: lối vào, đường dẫn, đối tượng thư mục phân phối Stanford (SDD) Giao thức thư mục phân phối Stanford (SDD) dựa trên danh sách liên kết đơn của các thư mục phân phối. Cũng giống như giao thức SCI, bộ nhớ hướng đến đầu của danh sách chia sẻ. Mỗi bộ vi xử lý chỉ hướng đến bộ vi xử lý trước nó. Việc thêm vào và loại bỏ từ danh sách chia sẻ được xử lý rất khác so với giao thức SCI.

Trên read-miss, một đối tượng yêu cầu mới gửi một thông điệp read-miss vào bộ nhớ. Bộ nhớ cập nhật con trỏ đầu của nó hướng đến bộ yêu cầu và gửi tín hiệu read-miss- forward (chuyển tiếp read-mis) đến đầu cũ. Khi nhận được yêu cầu, đầu cũ trả về dữ liệu yêu cầu cùng với địa chỉ của nó dưới dạng read-miss-reply (trả lời read-miss). Khi đã nhận được trả lời (đáp ứng), tại cache của đối tượng yêu cầu, dữ liệu được sao chép và con trỏ được hướng đến đầu cũ.

Trên (khi) write-miss, một yêu cầu gửi một thông điệp write-miss vào bộ nhớ. Bộ nhớ cập nhật con trỏ đầu của nó hướng đến đối tượng yêu cầu và gửi một tín hiệu write- miss-forward (chuyển tiếp write miss) tới đầu cũ. Đầu cũ vô hiệu hoá chính nó, trả về dữ liệu yêu cầu dưới dạng tín hiệu dữ liệu đáp ứng write-miss, và gửi một tín write-miss-

forward đến cache tiếp theo trong danh sách. Khi bộ nhớ cache tiếp theo nhận tín hiệu write- miss-forward, nó làm mất hiệu lực chính nó và gửi một tín hiệu write-miss-forward đến cache tiếp theo trong danh sách. Khi tín hiệu write-miss-forward nhận được bởi đuôi hoặc bởi một cache không có bản sao của khối, tín hiệu đáp ứng write-miss được gửi tới đối tượng yêu cầu. Quá trình ghi hoàn chỉnh khi đối tượng yêu cầu nhận được cả dữ liệu đáp ứng write-miss và đáp ứng write-miss.

Hình 4.12 biểu diễn việc thêm vào và loại bỏ các phép toán từ danh sách chia sẻ trong SDD.

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