天天看點

Cache 三種的映射方法

轉眼都期末了,而Cache的三種映射方式還沒有搞清楚,好在看到了這篇簡潔的文章,感覺比書上啰啰嗦嗦的好幾頁講的清楚多了。

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

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

直接映射(directmapping)

将一個主存塊存儲到唯一的一個Cache行。

全相聯映射(fullyassociative mapping)

可以将一個主存塊存儲到任意一個Cache行。

組相聯映射(setassociative mapping)

可以将一個主存塊存儲到唯一的一個Cache組中任意一個行。

直接映射

多對一的映射關系,但一個主存塊隻能拷貝到cache的一個特定行位置上去。

cache的行号i和主存的塊号j有如下函數關系:i=j mod m  (m為cache中的總行數)

優點:硬體簡單,容易實作

缺點:命中率低, Cache的存儲空間使用率低

Cache 三種的映射方法

全相聯映射

主存的一個塊直接拷貝到cache中的任意一行上

優點:命中率較高,Cache的存儲空間使用率高

缺點:線路複雜,成本高,速度低

Cache 三種的映射方法

組相聯映射

将cache分成u組,每組v行,主存塊存放到哪個組是固定的,至于存到該組哪一行是靈活的,即有如下函數關系:cache總行數m=u×v       組号q=j mod u

組間采用直接映射,組内為全相聯

硬體較簡單,速度較快,命中率較高

繼續閱讀