내가이 문제를 해결하기 위해 내 머리를 두드리는했다, 심지어 한 단계를 진행할 수없는, 문제는 같은 수 있습니다 :가상 메모리 시스템 페이지 테이블 및 TLB
int X[N];
int i;
int step = M; // M is some predefined constant
for (i = 0; i < N; i += step) X[i] = X[i] + 1;
:
다음 C 프로그램을 고려
이 프로그램이 4KB 페이지 크기와 64 항목 TLB가있는 시스템에서 실행되는 경우 M과 N의 어떤 값으로 인해 내부 루프가 실행될 때마다 TLB 누락이 발생합니까?
아무도 나에게 어떤 힌트를 주어도 될까요? 어떻게 해결합니까?
TLB 크기가 64 페이지입니다. –
네가 맞습니다. 하지만 65 항목을 사용하여 TLB 캐시를 놓치는 것에 대해 이야기하고있었습니다. 나는 그것에 대한 설명을 업데이트했다. – Raj
이 줄을'TLB에 있기 때문에 놓치지 않습니다. (TLB 크기가 4096 = 4KB이기 때문에 기억하십시오)' –