Bộ Nhớ Cache Trong CPU Và GPU: Nó Dùng để Làm Gì - ITIGIC

Bộ nhớ Cache lần đầu tiên được triển khai trong Intel 80486, nhưng nguồn gốc của nó bắt nguồn từ IBM S / 360, nơi lần đầu tiên ý tưởng về bộ nhớ đệm được thực hiện. Ngày nay do khoảng cách giữa CPU, GPU và các bộ vi xử lý khác có bộ nhớ, nó đã trở thành một phần không thể thiếu của mỗi bộ vi xử lý.

Bộ nhớ đệm trong CPU và GPU

Tại sao bộ nhớ cache lại cần thiết?

Bộ xử lý RAM khoảng cách

Bộ nhớ cache là cần thiết do thực tế là RAM bộ nhớ quá chậm để CPU có thể thực thi các lệnh của nó với đủ tốc độ và chúng tôi không thể tăng tốc nó thêm nữa. Giải pháp? Thêm một bộ nhớ trong tốt trong bộ xử lý cho phép bạn phóng to dữ liệu và hướng dẫn mới nhất.

Vấn đề là làm điều này là cực kỳ phức tạp, vì nó buộc chính các chương trình phải làm việc đó, do đó làm tốn nhiều chu kỳ CPU. Giải pháp? Tạo bộ nhớ với cơ chế sao chép dữ liệu và hướng dẫn gần nhất với những gì hiện đang được thực thi.

Bởi vì bộ nhớ đệm nằm bên trong bộ xử lý, một khi CPU tìm thấy dữ liệu bên trong nó, nó sẽ thực thi nó nhanh hơn nhiều so với khi nó có quyền truy cập tự nhiên vào RAM.

Bộ nhớ đệm hoạt động như thế nào?

Bộ nhớ đệm Microscopio

Trước hết chúng ta phải lưu ý rằng bộ nhớ đệm không phải là một phần của bộ nhớ RAM và nó không hoạt động như vậy, ngoài ra, nó không thể được kiểm soát như RAM nơi các chương trình có thể chiếm và giải phóng bộ nhớ khi chúng cần. . Nguyên nhân? Bộ nhớ đệm hoạt động hoàn toàn tách biệt với RAM.

Công việc của bộ đệm là di chuyển dữ liệu từ bộ nhớ sang bộ xử lý. Điều thông thường trong một chương trình là mã được thực thi theo trình tự, nghĩa là, nếu lệnh hiện tại ở dòng 1000 thì lệnh tiếp theo sẽ ở dòng 1001 trừ khi đó là lệnh nhảy. Ý tưởng về bộ nhớ đệm? Tốt, hãy chuyển một phần dữ liệu và hướng dẫn vào bộ nhớ trong của bộ xử lý.

Khi CPU hoặc GPU tìm kiếm dữ liệu hoặc lệnh, điều đầu tiên nó sẽ làm là xem xét bộ đệm gần nhất với bộ xử lý và do đó bộ nhớ đệm có mức thấp nhất sẽ tăng lên cho đến khi đạt được dữ liệu mong đợi. Ý tưởng là bạn không phải truy cập bộ nhớ.

Mức bộ nhớ đệm trên CPU và GPU

GPU CPU Cachés

Trong một hệ thống đa lõi, nơi chúng ta có hai hoặc nhiều lõi, chúng tôi thấy rằng tất cả chúng đều truy cập tốt vào cùng một bộ nhớ RAM, có một giao diện duy nhất cho bộ nhớ và một số bộ xử lý đang tranh giành quyền truy cập vào nó. Tại thời điểm này, cần tạo thêm một mức bộ đệm, giao tiếp với bộ điều khiển bộ nhớ và điều này với các mức bộ đệm cao hơn.

Thông thường, các CPU đa lõi thường có hai cấp bộ nhớ đệm, nhưng trong một số thiết kế, những gì chúng ta có là các cụm, dựa trên các nhóm của một số CPU có bộ nhớ cache L2 được chia sẻ, nhưng chia sẻ không gian với các cụm khác, đôi khi buộc phải bao gồm bộ nhớ cache cấp ba.

Mặc dù không phổ biến, bộ nhớ đệm cấp 3 xuất hiện ngay khi giao diện bộ nhớ là một nút thắt cổ chai đủ lớn để thêm một cấp bổ sung trong hệ thống phân cấp sẽ giúp hiệu suất.

Hệ thống phân cấp bộ nhớ

Bộ đệm Jerarquia

Các quy tắc của hệ thống phân cấp bộ nhớ rất rõ ràng, nó bắt đầu từ các thanh ghi của bộ xử lý và kết thúc ở bộ nhớ chậm nhất trong cùng một bộ nhớ và luôn tuân theo các quy tắc giống nhau:

  • Mức hiện tại của hệ thống phân cấp có nhiều dung lượng hơn mức trước nhưng ít hơn mức tiếp theo.
  • Khi chúng ta rời khỏi CPU, độ trễ của các lệnh sẽ tăng lên.
  • Khi chúng ta rời khỏi CPU, băng thông với dữ liệu sẽ giảm.

Trong trường hợp cụ thể của các mức bộ nhớ cache, chúng lưu trữ các phần thông tin ngày càng nhỏ hơn nhưng luôn chứa một phần của mức tiếp theo. Vì vậy, bộ đệm L1 là một tập hợp con của dữ liệu bộ đệm L2, đến lượt nó là một tập hợp con của dữ liệu bộ đệm L1 và một tập con của dữ liệu bộ đệm L3 nếu có.

Tuy nhiên, bộ nhớ đệm cấp cuối cùng, bộ nhớ đệm gần nhất với bộ nhớ, không phải là một tập hợp con của RAM, mà chỉ là một bản sao của trang bộ nhớ hoặc tập hợp những bộ nhớ này gần bộ xử lý nhất.

Bỏ lỡ bộ nhớ cache hoặc khi không tìm thấy dữ liệu

bộ nhớ đệm

Một trong những vấn đề về hiệu suất lớn nhất là khi Miss Cache xảy ra khi dữ liệu không được tìm thấy ở mức cache. Điều này cực kỳ nguy hiểm đối với hiệu suất của một CPU lỗi thời vì hậu quả là rất nhiều chu trình xử lý bị mất, nhưng cũng không kém phần nguy hiểm đối với một CPU không có thứ tự.

Đối với thiết kế của một CPU, thực tế là tổng thời gian tìm kiếm của tất cả Cache Miss kết hợp với thời gian tìm kiếm lớn hơn tìm kiếm dữ liệu trực tiếp trong cache là một thất bại. Nhiều thiết kế CPU đã phải quay trở lại bảng thiết kế do thực tế là thời gian tìm kiếm lâu hơn thời gian truy cập vào RAM.

Đó là lý do tại sao các kiến ​​trúc sư rất miễn cưỡng bổ sung các cấp độ bổ sung trong một kiến ​​trúc bởi vì đúng vậy, nó phải hợp lý khi đối mặt với hiệu suất được cải thiện.

Tính liên kết với trí nhớ

RAM CPU

Bởi vì bộ nhớ cache có các bản sao dữ liệu từ RAM, nhưng không phải là bản thân RAM, điều này gây ra nguy cơ dữ liệu sẽ không khớp, không chỉ giữa bộ nhớ cache và RAM, mà còn giữa các mức bộ nhớ cache khác nhau, nơi một số được tách biệt. .

Đó là lý do tại sao các cơ chế là cần thiết chịu trách nhiệm duy trì sự gắn kết của dữ liệu ở mọi cấp với nhau. Một cái gì đó giả sử việc triển khai một hệ thống cực kỳ phức tạp tăng theo số lượng lõi của bộ xử lý.

Từ khóa » Bộ Nhớ đệm Cpu Bao Nhiêu Là đủ