Cache與主存的映射方式


Cache行中的信息是主存中的某個塊的副本,地址映射就是把主存地址空間映射到Cache地址空間,即把存放在主存中的信息按照某種方式裝入Cache中。

Cache要為每一塊加一個標記,指明它是主存中的那一塊

為了說明Cache中的信息是否有效,Cache行需要一個有效位

1.直接映射

  主存中的每一行之裝入到Cache中的唯一位置,如果發生塊沖突,原來的塊將會被無條件的換出,無需使用替換算法

  

  直接映射的關系可以定義為:

  Cache行號=主存塊號 mod Cache總行數

  直接映射地址結構:

  

  CPU的訪存過程:

  

  1)首先根據訪存地址中間的c位,找到對應的Cache行。

  2)與對應Cache行中的標記和主存地址的高t位標記進行比較

  3)若相等,且有效位為1,則訪問Cache命中,測試在根據主存地址中低位的塊內地址,在對應的Cache行中存取信息。

   若不相等,或有效位為0,則不命中,此時CPU從主存中讀出該地址所在的一塊信息送到對應的Cache行中,將有效為置1,並將標記設置為地址中的高t位,同時將該地址中的內容送到CPU。 

2.全相聯映射:

  主存中的每一塊都可以裝入Cache中的任何位置,每行的標記用於指出該行取主存的那一塊,所以CPU訪問時需要與所有的Cache行的標記進行比較。

  

 

  地址結構:

  

 

3.組相聯映射:

  將Cache分成Q個大小相等的組,每個主存塊可以裝入固定組中的任意一行,即組間采用直接映射,而組內采用全相聯映射的方式。假設每組有r個Cache行,則稱之為r路組相連。

  

 

  組相聯映射的關系可以定義為:

  Cache組號 = 主存塊號 mod Cache組數(Q)

  組相聯映射的地址結構:

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM