Nói chung, tôi không nghĩ điều này là có thể. Nó hoạt động với DRAM và pagefile vì đó là một tài nguyên được quản lý bởi hệ điều hành, bộ nhớ cache được quản lý bởi chính bản thân CPU.
Hệ điều hành có thể thực hiện một vòng lặp thời gian chặt chẽ của bộ nhớ đọc và thử xem nó có đủ nhanh để nằm trong bộ nhớ đệm hay không. Trên các hệ thống đa lõi/đa proc, có cache coherency protocols được sử dụng giữa các bộ xử lý để xác định khi nào chúng cần phải làm mất hiệu lực bộ nhớ cache của nhau, tôi cho rằng bạn có thể có một thiết bị tùy chỉnh có thể bẫy giao thức này mà hệ điều hành sẽ truy vấn.
Bạn đang cố gắng làm gì? Nếu bạn muốn ép buộc thứ gì đó vào bộ nhớ, bộ vi xử lý x86 hiện tại hỗ trợ tìm nạp trước bộ nhớ vào bộ nhớ đệm theo cách không chặn, ví dụ với Visual C++ bạn có thể sử dụng _mm_prefetch
để tìm một dòng vào bộ đệm.
EDIT: Tôi chưa tự làm điều này, vì vậy hãy tự chịu rủi ro. Để xác định bộ nhớ cache bị thiếu cho lược tả, bạn có thể sử dụng một số sổ đăng ký kiến trúc cụ thể. http://download.intel.com/design/processor/manuals/253669.pdf, Phụ lục A cung cấp "Hiệu suất điều chỉnh sự kiện". Điều này không thể được sử dụng để xác định nếu một địa chỉ riêng lẻ nằm trong bộ nhớ cache hoặc khi nó được tải trong bộ nhớ cache, nhưng có thể được sử dụng cho các số liệu thống kê tổng thể. Tôi tin rằng đây là những gì vTune (một hồ sơ hiện tượng cho cấp độ này) sử dụng.
Cảm ơn bạn. Tôi quan tâm vì tôi đang đùa giỡn với việc viết hạt nhân. Tôi quan tâm đến dòng bộ nhớ cache profiling bỏ lỡ trên phần cứng thực tế. Tôi đã không nhận ra họ rất bất lợi trên các CPU hiện đại cho đến khi tôi thấy các slide của Herb Sutter: http://is.gd/oWwp –
Có nhiều cách để cấu hình nó trong phần cứng, vtune. – Michael
Rất nhiều CPU hiện đại có bộ đếm hiệu suất có thể cung cấp tất cả các loại thông tin, bao gồm cả số liệu thống kê liên quan đến bộ nhớ cache. – sigjuice