簡體   English   中英

L1 / 2緩存問題

[英]L1/2 cache problem

L1 / L2高速緩存行能否每個高速緩存主內存數據字的多個副本?

主內存可能在緩存中不止一次。 顯然,這是正確的,並且在多處理器計算機中很常見。 但是即使在單處理器計算機上,也可能發生這種情況。

考慮一個具有分離的L1指令/數據高速緩存的奔騰CPU。 指令僅進入I緩存,數據僅進入D緩存。 現在,如果OS允許自我修改代碼,則可以將同一個內存既作為數據又作為指令一次加載到I和D緩存中。 現在,您在L1緩存中有兩次該數據。 因此,具有這種拆分式高速緩存體系結構的CPU必須采用高速緩存一致性協議,以避免競爭情況/損壞。

否-如果MMU已在緩存中,則它將使用該副本而不是創建另一個副本。

每個高速緩存基本上都存儲整個內存的一小部分。 當CPU需要內存中的一個字時,它首先進入L1,然后進入L2高速緩存,依此類推,然后再檢查主存儲器 因此,一個特定的存儲字可以同時在L2和L1中,但是不能在L1中存儲兩次,因為這不是必需的。

是的,它可以。 L1副本已更新,但尚未刷新到L2。 僅當L1和L2是非獨占緩存時,才會發生這種情況。 對於單處理器而言,這是顯而易見的,但對於通常為每個內核擁有自己的L1高速緩存的多處理器而言,則更為明顯。

這完全取決於緩存體系結構-它是否可以保證任何事情。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM