2015-11-22 84 views
0

如何在MIPS中實現LRU?所使用的過程需要進行大量的初始化,並且在嘗試使用其他函數(如排序和其他使用更多變量的程序)來實現LRU時,寄存器的要求相當高。這個問題如何解決?以mips實現LRU

+1

你在說硬件還是軟件?我認爲LRU代表「最近最少使用」?這是一個LRU _cache_?正在存儲什麼類型的對象,它們如何被索引等?請提供更多信息和背景。 – orlp

+0

「其他功能和程序」如何輸入圖片?你在說什麼「註冊」 - GP?也就是說,VM頁面替換的一部分將在中斷時間,在內核模式下,例如TLB未命中或TLB輸入無效,並在定時器中斷/進程切換時進行簿記(TLB條目從頭開始具有PID字段)。 – greybeard

回答

3

由於成本原因,很少有虛擬機實現實際使用LRU。相反,他們傾向於使用NRU(Not Used Used)作爲近似值。將每個映射的頁面與使用該頁面時設置的位(讀取或寫入)相關聯。有一個定期在頁面周圍工作的過程,按循環順序清除這一點。當你想要驅逐一個頁面時,選擇一個沒有這個位的設置,因此從上次循環過程開始就沒有被使用過。如果您甚至沒有硬件支持的「最近未使用」位通過循環過程(有時稱爲時鐘算法)來模擬它,請清除頁表的有效位並使用中斷處理程序訪問在將頁面設置爲有效並重新啓動所捕獲的指令之前,無效頁面設置了一點,表示頁面被引用。

參見例如http://homes.cs.washington.edu/~tom/Slides/caching2.pptx尤其是幻燈片19

+0

一個有效的位是幾乎所有VM頁面替換硬件支持,它們滿足了我用'tlbwr'(寫(僞,請參閱_Random_寄存器)隨機TLB條目打開(R2000)MIPS RISC體系結構手冊的眼睛, )的條目除外)其餘部分。 – greybeard

+0

有效位是我通過快速網絡搜索所能看到的,但是據我所知,MIPS的擴展版本有更多的支持。 – mcdowella