Ogólnie nie sądzę, że jest to możliwe. Działa dla DRAM i pliku stronicowania, ponieważ jest to zasób zarządzany przez system operacyjny, pamięć podręczna jest zarządzana przez sam procesor.
System operacyjny mógłby wykonać wąską pętlę taktowania odczytanej pamięci i spróbować sprawdzić, czy jest wystarczająco szybki, aby znaleźć się w pamięci podręcznej, czy też musiał wyjść do pamięci głównej - byłby bardzo podatny na błędy.
W systemach wielordzeniowych/wielu procesach są używane cache coherency protocols używane między procesorami w celu określenia, kiedy należy unieważnić pamięć podręczną drugiej strony, przypuszczam, że można mieć niestandardowe urządzenie, które mogłoby podsłuchać ten protokół, który system operacyjny zapytał.
Co próbujesz zrobić? Jeśli chcesz wymusić coś w pamięci, obecne procesory x86 obsługują pobieranie wstępnie pamięci w pamięci podręcznej w sposób nieblokujący, na przykład w Visual C++ możesz użyć _mm_prefetch
, aby pobrać linię do pamięci podręcznej.
EDYCJA: Nie zrobiłem tego sam, więc używaj na własne ryzyko. Aby określić chybienia pamięci podręcznej do profilowania, możesz użyć niektórych rejestrów specyficznych dla architektury. http://download.intel.com/design/processor/manuals/253669.pdf, Dodatek A podaje "Wydajność dostrajania wydajności". Nie można tego użyć do określenia, czy indywidualny adres znajduje się w pamięci podręcznej lub kiedy jest on załadowany do pamięci podręcznej, ale można go wykorzystać do ogólnych statystyk. Wierzę, że właśnie to wykorzystuje vTune (fenomenalny profiler dla tego poziomu).
Dzięki. Jestem zainteresowany tym, że bawię się pisząc jądra. Interesuje mnie profilowanie chybienia linii cache na rzeczywistym sprzęcie. Nie zdawałem sobie sprawy, jak bardzo szkodliwe są one na nowoczesnych procesorach, dopóki nie zobaczyłem slajdów Suttera: http://is.gd/oWwp –
Istnieją sposoby na profilowanie tego w sprzęcie, co robi vtune. – Michael
Wiele nowoczesnych procesorów ma liczniki wydajności, które mogą dostarczać wszelkiego rodzaju informacje, w tym statystyki dotyczące pamięci podręcznej. – sigjuice