Làm thế nào để CPU ghi thông tin vào ram?


10

Câu hỏi của tôi là, làm thế nào để CPU ghi dữ liệu vào ram?

Theo những gì tôi hiểu, CPU hiện đại sử dụng các mức bộ đệm khác nhau để tăng tốc truy cập ram. RAM nhận lệnh thông tin và sau đó gửi một luồng dữ liệu tới CPU lưu trữ dữ liệu cần thiết (và một loạt dữ liệu bổ sung gần với địa chỉ mà CPU muốn) vào bộ đệm cấp cao nhất, sau đó CPU sẽ hỏi dần dần các bộ đệm khác nhau để gửi các khối dữ liệu nhỏ hơn và nhỏ hơn xuống các mức bộ đệm cho đến khi nó nằm trong bộ đệm cấp 1, sau đó được đọc trực tiếp vào thanh ghi CPU.

Quá trình này hoạt động như thế nào khi CPU ghi vào bộ nhớ? Máy tính có đi ngược xuống các mức của bộ đệm (theo thứ tự ngược so với đọc) không? Nếu vậy, còn việc đồng bộ hóa thông tin trong các bộ đệm khác nhau với bộ nhớ chính thì sao? Ngoài ra, tốc độ của thao tác ghi so với đọc như thế nào? Điều gì xảy ra nếu tôi liên tục ghi vào RAM, chẳng hạn như trong trường hợp sắp xếp xô?

Cảm ơn trước,

-Faken

Chỉnh sửa: Tôi vẫn chưa thực sự nhận được câu trả lời mà tôi hoàn toàn có thể chấp nhận. Tôi muốn biết đặc biệt là về phần đồng bộ hóa của RAM write. Tôi biết rằng chúng tôi ghi vào bộ đệm L1 trực tiếp từ CPU và dữ liệu sẽ bị đẩy xuống các mức bộ đệm khi chúng tôi đồng bộ hóa các mức bộ đệm khác nhau và cuối cùng RAM chính được đồng bộ hóa với bộ đệm cấp cao nhất. Tuy nhiên, những gì tôi muốn biết là KHI lưu trữ đồng bộ hóa và scynocronize với RAM chính và tốc độ của chúng nhanh như thế nào so với đọc lệnh.

Câu trả lời:


11

Ah, đây là một trong những câu hỏi đơn giản có câu trả lời thực sự phức tạp. Câu trả lời đơn giản là, nó phụ thuộc vào cách viết và cách sắp xếp bộ đệm. Đây là một mồi hữu ích về cách bộ nhớ cache hoạt động .

CPU có thể ghi dữ liệu theo nhiều cách khác nhau. Không có bất kỳ bộ nhớ đệm nào, dữ liệu được lưu trữ trong bộ nhớ ngay lập tức và CPU chờ ghi hoàn tất. Với bộ nhớ đệm, CPU thường lưu trữ dữ liệu theo thứ tự chương trình, tức là nếu chương trình ghi vào địa chỉ A thì địa chỉ B thì bộ nhớ A sẽ được ghi vào trước bộ nhớ B, bất kể bộ nhớ đệm. Bộ nhớ đệm chỉ ảnh hưởng khi bộ nhớ vật lý được cập nhật và điều này phụ thuộc vào loại bộ đệm được sử dụng (xem liên kết ở trên). Một số CPU cũng có thể lưu trữ dữ liệu không theo thời gian, nghĩa là, ghi có thể được sắp xếp lại để tận dụng tối đa băng thông bộ nhớ. Vì vậy, viết cho A, sau đó B, sau đó (A + 1) có thể được sắp xếp lại để viết cho A rồi A + 1 trong một lần nổ, sau đó B.

Một sự phức tạp khác là khi có nhiều hơn một CPU. Tùy thuộc vào cách hệ thống được thiết kế, các CPU khác sẽ không được ghi bởi các CPU khác vì dữ liệu vẫn còn trong bộ đệm của CPU đầu tiên (bộ đệm bị bẩn). Trong nhiều hệ thống CPU, làm cho bộ đệm của mỗi CPU khớp với những gì trong bộ nhớ vật lý được gọi là tính nhất quán của bộ đệm. Có nhiều cách khác nhau để có thể đạt được.

Tất nhiên, những điều trên là hướng tới bộ xử lý Pentium. Các bộ xử lý khác có thể làm mọi thứ theo những cách khác. Lấy ví dụ, bộ xử lý Cell của PS3. Kiến trúc cơ bản của CPU Cell là một lõi PowerPC với một số lõi Cell (trên PS3 có tám ô, một trong số đó luôn bị vô hiệu hóa để cải thiện năng suất). Mỗi ô có bộ nhớ cục bộ riêng, loại bộ đệm L1 không bao giờ được ghi vào RAM hệ thống. Dữ liệu có thể được chuyển giữa RAM cục bộ này và RAM hệ thống bằng cách sử dụng truyền DMA (Truy cập bộ nhớ trực tiếp). Các tế bào có thể truy cập RAM hệ thống và RAM của các tế bào khác bằng cách sử dụng đọc và ghi bình thường nhưng điều này chỉ kích hoạt chuyển DMA (vì vậy nên chậm và thực sự nên tránh). Ý tưởng đằng sau hệ thống này là trò chơi không chỉ là một chương trình,

Tóm lại, việc ghi vào RAM đã từng rất đơn giản vào thời mà tốc độ CPU khớp với tốc độ RAM, nhưng khi tốc độ CPU tăng lên và bộ nhớ cache được đưa vào, quá trình này trở nên phức tạp hơn với nhiều phương pháp khác nhau.

Skizz


2

vâng, nó đi ngược xuống các mức của bộ đệm và lưu vào bộ nhớ, nhưng lưu ý quan trọng là trong hệ thống Đa xử lý, bộ đệm được chia sẻ giữa 2 hoặc nhiều bộ xử lý (lõi) và dữ liệu phải nhất quán được thực hiện bằng cách tạo bộ đệm chung cho tất cả bộ xử lý hoặc bộ đệm khác nhau nhưng lưu tính nhất quán bằng cách sử dụng phần Quan trọng (nếu dữ liệu trong một bộ đệm thay đổi, nó buộc nó phải ghi vào bộ nhớ và cập nhật bộ đệm khác)

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.