누군가가 LINUX에서 TLB 미스를 측정하는 명령을 안내해 줄 수 있습니까? TLB가 누락되면 사소한 페이지 오류가 고려(또는 근사화)될 수 있습니까?
답변1
당신은 그것을 사용할 수 있습니다성능하드웨어 성능 카운터에 액세스:
$ perf stat -e dTLB-load-misses,iTLB-load-misses /path/to/command
예를 들어:
$ perf stat -e dTLB-load-misses,iTLB-load-misses /bin/ls > /dev/null
Performance counter stats for '/bin/ls':
5,775 dTLB-load-misses
1,059 iTLB-load-misses
0.001897682 seconds time elapsed
답변2
글리치(Glitch)와 TLB 미스는 좋은 비유가 아닙니다. 요청한 페이지가 메모리에 있지만 현재 페이지 테이블에 매핑되지 않은 경우 사소한 오류가 발생합니다. 물론 결함은 TLB 미스와 연관되지만(TLB 항목은 페이지 테이블 항목에 대한 지름길이기 때문에) TLB 미스는 하드 결함이나 프로그램 지역성 전환과 같은 다른 많은 이유로 발생합니다.
답변3
마이너 페이지 폴트는 페이지가 메모리에 로드되었지만 관련 페이지 테이블 항목이 아직 생성되지 않은 경우 발생합니다. 부작용으로 사소한 페이지 오류로 인해 항상 TLB 누락이 발생합니다. 반면에, TLB 미스는 페이지의 번역 항목이 TLB(즉, 캐시)에 상주하지 않을 때 발생하며, 이는 제한된 TLB 용량으로 인해 해당 TLB 항목이 이전에 제거되었을 때 발생할 수 있습니다.