我敲我的頭要解決這個問題,甚至無法進行一步到位,問題是這樣的:虛擬內存系統,頁表和TLB
考慮下面的C程序:
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;
如果此程序在具有4 KB頁面大小和64條目TLB的計算機上運行,則M和N的哪些值會導致每次執行內部循環時都會丟失TLB?
任何人都可以請給我一些提示如何解決它?
TLB大小是64頁的條目我猜 –
是的,你是對的。但我正在談論使用65個條目來使TLB緩存未命中。我更新了該說明。 – Raj
看到你的這一行'它不會被錯過,因爲它存在於TLB中(記住這是因爲TLB大小爲4096 = 4KB)' –