0
我已經給出了一個分配,我需要使用Java來模擬關聯緩存。 我們給了一組字節地址,我們需要找出每個地址是一個命中還是未命中。 緩存由32塊,每塊爲8個字節關聯緩存
所以方案是這樣的:
- 來自地址計算組地址(組地址是由每個的大小分割的地址塊在高速緩存中,例如組地址爲地址950將8分之950)
- 使用整個組的地址作爲標籤
- 掃描整個高速緩存,看看標籤已經在高速緩存
- 如果標籤被找到,記錄一打
- 如果沒有找到標記,記錄小姐,標籤存儲在第一可用塊
- 如果沒有可用的空間,從緩存中刪除最近最少使用(LRU)塊
- 更新緩存,以便存儲新標籤(如果有未命中)並記住這個塊是最近使用的最新的。
- 將有效位設置爲true,將標記存儲在塊中,記住最初使用的是哪個地址。
我遇到的問題是做最近最少使用位。我們要求實現LRU的方法是保持塊從最近使用到最近最少使用,並且當我們需要替換塊時,我們從最後刪除舊塊,並將新塊添加到開始。然後,當我們得到一擊時,我們將命中移動到緩存的開頭。
什麼,具體來說,是這樣的問題? –
如何實現一種模擬LRU模式的方法 –
[你將如何在Java 6中實現LRU緩存?](http://stackoverflow.com/questions/221525/how-would-you-implement-an -ru-cache-in-java-6) –