2017-04-03 74 views
0

的填寫內容,我準備在計算機體系結構的考試。我瞭解緩存的工作原理以及數據如何從主內存複製到緩存,具體取決於地址。直接映射高速緩存,主內存

但是,我無法弄清楚如何根據地址的主存儲器的內容填寫。例如,在鏈接到下面的圖像中,我可以輕鬆地填寫緩存內容,但我不明白我應該如何填充指向箭頭的單元格。

我的教授並沒有真正多談那一部分,沒有進一步的幫助,我無法完成的實際問題。請幫我理解我應該如何填寫主內存的內容!

enter image description here

回答

0

有幾個方法,你可以填寫主存儲器。

  1. 當緩存條目被逐出時,它被存儲在主存儲器中。
  2. 當你的程序從一個文件加載數據到內存。比方說你有一個你想要處理的圖像,你可以將它加載到內存並進行處理,而不是每次都從文件中訪問數據,這比較慢。
  3. 直接內存訪問(DMA)操作 - 這些是有沒有CPU交互來讀/寫存儲器。你可能有一個DMA操作,填寫一個輸入緩衝區,然後CPU進行處理。
  4. 你可以有多個程序一起工作,一個生產數據和其他消費它。例如,您的第一個程序可能正在進行矩陣乘法,第二個程序正在使用該結果。所以第一個程序會把它的結果寫到主存中,並且會傳遞第二個程序的引用來使用它。
+0

在該具體示例中,如果所訪問的第一存儲器插槽旁邊FFFFFC地址之一,並要被提供用於數據需要存儲器的值?如果不是,我將如何知道它究竟存儲在什麼中? –

+0

假設你的程序請求地址爲0xFFFFF8的數據,並且你的緩存行是兩個字的寬度。因此無論位於0xFFFFF8還是0xFFFFFC都會被轉發到緩存。如果程序從不寫入位置,則0xFFFFFC存儲在該存儲單元中的位值將被轉發。 –