Mối quan hệ giữa dòng bộ đệm và trang bộ nhớ


9
  1. Nếu tôi đúng, một trang trong bộ nhớ chính là đơn vị đơn vị nhỏ nhất để truyền dữ liệu giữa bộ nhớ chính và thiết bị lưu trữ ngoài, chẳng hạn như đĩa cứng. Một dòng bộ đệm của bộ nhớ chính là đơn vị nhỏ nhất để truyền dữ liệu giữa bộ nhớ chính và bộ đệm cpu.

  2. Tôi tự hỏi nếu một kích thước trang luôn luôn hoặc tốt nhất là một số lượng kích thước dòng bộ đệm tự nhiên? Nếu kích thước dòng bộ đệm là 64 byte và kích thước trang bộ nhớ là 4KB, thì mỗi trang có 4KB / 64 byte == 64 dòng bộ đệm trong đó.

  3. Là một trang và một dòng bộ đệm cả hai đối tượng cố định trong một bộ nhớ? Hay chúng chỉ là bất kỳ khối liền kề nào của bộ nhớ có kích thước nhất định, có thể bắt đầu và trôi nổi ở bất cứ đâu trong bộ nhớ?

  4. Có phải luôn luôn là một dòng bộ đệm không thể kéo dài hơn một trang, tức là một phần của dòng bộ đệm nằm trong một trang và phần khác của dòng bộ đệm nằm trong một trang khác?

Cảm ơn.


2
Các câu trả lời cho câu hỏi của bạn phụ thuộc nhiều vào kiến ​​trúc CPU.
TMN

Câu trả lời:


8
  1. Một dòng bộ đệm là đơn vị nhỏ nhất mà bạn có thể chạm vào bộ nhớ vật lý. Có nghĩa là khi bạn đọc / ghi 1 byte, một dòng bộ đệm đầy đủ chứa nó được đọc vào bộ đệm cpu và được ghi lại. Lưu ý rằng ngay cả các hướng dẫn bỏ qua bộ đệm để ghi (hướng dẫn phát trực tiếp) ghi theo kích cỡ dòng bộ đệm. Tùy thuộc vào CPU, kích thước dòng bộ đệm thường là 32/64/128 byte. Khi các trang Bộ nhớ được ghi vào đĩa, chúng được ghi toàn bộ. Điều này sẽ xảy ra khi áp suất bộ nhớ quá cao hoặc với các quá trình ngủ đông (và có thể cho các mục đích sử dụng khác). Họ cũng sẽ được đọc toàn bộ khi cần một lần nữa. Điều này chủ yếu là do kernel không có cách nào để biết liệu trang được sử dụng một phần hay toàn bộ. Các hoạt động đọc / ghi lưu trữ ngoài khác có thể có độ chi tiết tùy ý (ví dụ: fwrite (..)).

  2. Kích thước trang phụ thuộc vào CPU / GPU. Đối với hầu hết các CPU, kích thước trang sẽ tối thiểu là 4KB và thường hỗ trợ kết hợp 4KB / 64KB / 2MB / 4MB / 16MB / 1GB (không nhất thiết phải được hỗ trợ cùng một lúc). Kích thước sẽ luôn là một sức mạnh của hai.

  3. Cả một trang và một dòng bộ đệm đều liền kề nhau và yêu cầu phải được căn chỉnh theo kích thước tương ứng của chúng. Một dòng bộ đệm 64 byte luôn được căn chỉnh 64 byte và một trang 2 MB luôn được căn chỉnh 2 MB.

  4. Vì số 3, một dòng bộ đệm không bao giờ có thể kéo dài 2 trang vì kích thước trang sẽ luôn lớn hơn một dòng bộ đệm và sẽ luôn là bội số của một dòng bộ đệm.

Xem nguồn tuyệt vời này để biết nhiều thông tin liên quan đến bộ nhớ: http://lwn.net/Articles/250967/

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.