主存和cache的地址映射


 

cache是一種高速緩沖寄存器,是為解決CPU和主存之間速度不匹配而采用的一項重要技術。

主存與cache的地址映射方式有全相聯方式、直接方式和組相聯方式三種。

直接映射(directmapping):將一個主存塊存儲到唯一的一個Cache行。

 全相聯映射(fullyassociative mapping):可以將一個主存塊存儲到任意一個Cache行。

組相聯映射(setassociative mapping):可以將一個主存塊存儲到唯一的一個Cache組中任意一個行。

1.直接映射

多對一的映射關系,但一個主存塊只能拷貝到cache的一個特定行位置上去。
cache的行號i和主存的塊號j有如下函數關系:i=j mod m  (m為cache中的總行數)
優點:硬件簡單,容易實現
缺點:命中率低, Cache的存儲空間利用率低

 

直接映射的cache檢索過程

在直接映射方式中,首先用r位行號找到cache中的對應行,然后用地址中的s-r位標記部分與此行的標記在比較器中做比較。若符合命中,在cache中找到了對應的塊,然后用地址中最低位w讀取所需的字。若未命中,按內存地址從主存中讀取這個字。

2.全相聯映射

主存的一個塊直接拷貝到cache中的任意一行上
優點:命中率較高,Cache的存儲空間利用率高
缺點:線路復雜,成本高,速度低

全相聯映射方式檢索過程

 

在全相聯映射方式中,將內存地址的s位塊號與cache中所有行的標記同時在比較器中做比較。若塊號命中,按w位字地址從cache中讀取一個字;若未命中,則按內存地址從主存中讀取這個字。

3.組相聯映射

將cache分成u組,每組v行,主存塊存放到哪個組是固定的,至於存到該組哪一行是靈活的,即有如下函數關系:cache總行數m=u×v       組號q=j mod u
組間采用直接映射,組內為全相聯
硬件較簡單,速度較快,命中率較高

 

 組相聯cache的檢索過程

在組相聯映射方式中,首先用給定s位塊號的低d位找到cache的相應組,然后將塊號的高s-d位與該組v(=2d)行中的所有標記同時比較,哪一行的標記相符即該行命中。再以內存地址的低w位檢索此行對應的字。


免責聲明!

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



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