2014-12-01 58 views
2

我想了解關於緩存的整個結構和概念。當我們使用TLB將虛擬地址快速映射到物理地址時,如果我們使用虛擬索引的物理標記的L1高速緩存,可以將虛擬地址轉換與L1高速緩存訪​​問重疊嗎?翻譯旁視緩衝區(TLB)與L1緩存到CPU相同嗎?那麼,我可以將虛擬地址轉換與L1緩存訪問重疊嗎?

+0

參見第2.1節(https://www.academia.edu/29585076/A_Survey_of_Techniques_for_Architecting_TLBs)。它討論了VIPT/PIPT/VIVT/PIVT設計及其折衷。通常使用VIPT設計,因爲它允許重疊VA轉換與L1訪問。雖然VIVT設計可能會減少TLB訪問,但它受到同義詞問題的困擾。 – user984260 2017-07-20 09:45:32

回答

3

是的,這是一個VIPT緩存的整點。

由於虛擬地址和物理一場比賽在低位(頁面偏移是一樣的),你不需要給他們翻譯。大多數VIPT高速緩存解決此建(注意,這限制了臺,你可以使用數字,但可以改爲種植它們的結合),所以你可以使用較低位進行查找在緩存中,你發現了翻譯,甚至前TLB。

這是關鍵的,因爲TLB查找自身花費時間,和L1高速緩存通常被設計爲提供儘可能多的BW和低延遲儘量避免失速經常備受更快的執行。

如果您錯過了TLB並承受更大的延遲(無論是某個level2 TLB還是上帝禁止的頁面遍歷),它並不重要,因爲在比較標記之前,您無法對緩存查找進行任何操作,但是您在TLB命中+緩存命中情況下保存的幾個週期應該是許多應用程序的常見情況,因此通常認爲值得優化和對齊管道。我的[調查紙張上的TLB]

+0

有(如你所示)處理VIPT緩存中別名的方法,這些緩存不是PIPT。通過方式預測,可以增加翻譯延遲,同時仍然使用物理標籤;使用部分虛擬標籤可允許進一步的翻譯延遲。 (再有就是雙標籤的選項,這可能會在技術上仍然被認爲VIPT尤其是在物理性的標籤是由處理器使用,並且不只是相干系統)。當然,這種樂趣的複雜性很可能超出了這個問題的範圍。 – 2014-12-02 23:50:27