2012-02-18 22 views
9

Chcę oszacować obciążenie związane z TLB na komputerze z procesorem x86-64 (Intel Nehalem) z systemem Linux. Chcę uzyskać to oszacowanie za pomocą niektórych liczników wydajności. Czy ktoś ma jakieś wskazówki na temat tego, jak najlepiej to oszacować?Pomiar kosztu brakującej TLB w x86-64

Dzięki Arka

+0

To może się przydać: http://oprofile.sourceforge.net/docs/intel-corei7-events.php –

Odpowiedz

15

Jeśli można uzyskać dostęp do „Westmere” w oparciu systemu charakterystyka wydajności kodu powinny być bardzo podobne do tego, co masz na „Nehalem”, ale będziesz mieć dostęp do nowe zdarzenie licznika wydajności sprzętu, które mierzy prawie dokładnie to, co chcesz.

Na Westmere najlepszym oszacowaniem wydajności utraconej podczas czekania na pominięcia TLB jest prawdopodobnie z licznika wydajności sprzętu Event 08H, Maska 04H "DTLB_LOAD_MISSES.WALK_CYCLES", która jest opisana jako liczenie "Cycles Page Miss Handler is zajęte przez chodzenie ze względu na brak obciążenia w TLB drugiego poziomu ". Jest to opisane w "Intel® 64 oraz IA-32 architektury Software Developer Obsługi tom 3B: System Programming Guide, Part 2" (dokument nr: 253669), dostępny na stronie internetowej http://www.intel.com/content/www/us/en/architecture-and-technology/64-ia-32-architectures-software-developer-vol-3b-part-2-manual.html

Powodem tego zdarzenia jest konieczne jest to, że czas przetwarzania brakujących TLB jest zdominowany przez czas wymagany do odczytania linii pamięci podręcznej zawierającej wpis tablicy strony. Jeśli linia pamięci podręcznej znajduje się w pamięci podręcznej L2, to narzut pamięci TLB będzie bardzo mały (rzędu 10 cykli). Jeśli linia jest w pamięci podręcznej L3, to może 25 cykli. Jeśli linia jest w pamięci, to ~ 200 cykli.

  • Jeśli istnieje również brakuje w górnym poziomie skrytek tłumaczeń strona, to zajmie wiele wyjazdów do pamięci, aby znaleźć i pobrać odpowiednią stronę wpisu tablicy (np https://stackoverflow.com/a/9674980/1264917).
  • W przypadku niektórych procesorów liczniki pamięci podręcznej L2 mogą informować o liczbie trafień i pominięć stołów w L2, ale nie o Nehalem. (To nie pomogłoby w tym przypadku, ponieważ TLB kieruje się tym hitem w L3 są również dość szybkie i naprawdę zależy Ci na walkach TLB, które muszą przejść do pamięci.)