Top Ad unit 728 × 90

Latest news

recent

Vấn đề đồng bộ Cache (Cache Coherency)


Thông thường khi nhiều thiết bị như CPU, hay các thiết bị ngoại vi chia sẽ cùng một vùng nhớ có khả năng được nạp vào cache thì giá trị giữa cache và bộ nhớ có thể bị không đồng bộ (giải thích kỉ hơn chút: Cache là một vùng nhớ phụ được tích hợp trong CPU nhằm chứa các dữ liệu, hàm tạm thời phục vụ trong xử lý tính tóan, nó giúp quá trình trao đổi dữ liệu với CPU nhanh hơn, làm tăng hiệu năng tính tóan). Quan sát quá trình trong hình ở trên, chúng ta thấy rằng CPU truy xuất vào giá trị của bộ nhớ đã được đặt trong cache, tuy nhiên trước đó thì một thao tác ngoại vi đã ghi dữ liệu vào cùng vị trí được đọc và xử lý của CPU này. Vì vùng nhớ đã lưu trữ trong cache nên CPU đọc dữ liệu củ thay vì dữ liệu mới. Vấn đề tương tự xãy ra nếu CPU ghi vào vùng nhớ đã được cache và dữ liệu lại được đọc sau đó bởi các thiếu bị, thao tác ngoại vi khác. Tình huống này cache và CPU được gọi là bất đồng bộ hay không liền mạch (incoherent).

Vấn đề đồng bộ (Cohenrence) cần được quan tâm trong điều kiện sau:
  • Nhiều đối tượng (CPU data path, CPU fetch path, các thiết bị ngoại vi, DMA controllers, các thực thể khác) cùng chia sẽ vùng nhớ vì mục tiêu trao đổi dữ liệu.
  • Vùng nhớ này có khả năng cache bởi ít nhất 1 thiết bị, đối tượng sử dụng.
  • Một vị trí trong vùng nhớ đã được cache.
  • Và ví trí trong vùng nhớ này đã được chỉnh sửa bởi một thiết bị hay đối tượng nào đó
Như vậy nếu một vị trí trong bộ nhớ được chia sẽ mà được cache, hay thay đổi bởi thiết bị khác thì sẽ gây ra vấn đề đồng bộ cache. Để tránh tình hưống này, chúng ta cần nạp lại cache (invalidate) trước khi làm việc với nó và cập nhật cache (writeback) sau khi tiến hành xử lý với nó.



Binh Nguyen - Bioz
Vấn đề đồng bộ Cache (Cache Coherency) Reviewed by Bioz Nguyen on 9:27:00 AM Rating: 5
All Rights Reserved by IEEV © 2009 - 2016
Powered By Blogger, Designed by Sweetheme

Contact Form

Name

Email *

Message *

Powered by Blogger.