簡體   English   中英

虛擬索引物理標記和虛擬索引物理標記與分頁之間有什么區別?

[英]What's the difference between Virtually Indexed Physically tagged and Virtually Indexed and Virtually Tagged Paging?

另外,請說明是否還有其他索引和標記方法?

CPU緩存分為多個緩存行 ,這些緩存行具有固定大小(通常為64個字節)。 通常,我們可以說每個高速緩存行都由它所引用的內存地址來標識(最后6位被丟棄,因為它們引用了高速緩存行內部的偏移量)。

為了使查找更快,地址分為兩部分: indextag 索引指向一已知的高速緩存行:訪問一確實非常快。 N向關聯集中,您有N條緩存行(沒有特定順序),這些行將使用tag進行標識。

現在我們說標簽索引是內存地址的一部分,但是什么類型的地址呢? 物理還是虛擬?

從理論上講,您可以使用物理索引 (PI), 物理標記 (PT), 虛擬索引 (VI)和虛擬標記 (VT)的任意組合。 每個組合都有其優點和缺點。 通常,我們可以說使用物理地址的缺點是必須等待虛擬地址被轉換(在TLB丟失的情況下可能會很昂貴),另一方面,使用虛擬地址雖然速度更快,但可以會導致一致性問題,因為多個虛擬地址可以映射到同一物理地址,並且映射會隨着時間的推移而變化,從而需要進行緩存刷新。

由於這些原因,PIPT僅用於慢速緩存(例如L2 / L3),很少使用VIVT,幾乎不使用PIVT,而VIPT用於快速 (小緩存)。

使用VIPT的優點是,雖然查找可以與地址轉換並行開始(因此比PIPT快),但它為查找的最后部分使用了物理地址,因此為索引正確選擇了大小,它可以防止一致性問題。 索引的正確大小取決於頁面大小 :如果在選擇索引時始終以引用頁面內部高速緩存行的偏移量的方式選擇索引 ,則虛擬地址和物理地址之間的轉換是在頁面級別進行的。如果我們使用物理地址或虛擬地址,則沒有任何區別。 不幸的是,這限制了緩存的大小,因此限制了它僅用於快速和小型緩存(例如L1)的原因。

暫無
暫無

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

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