主存與cache的位址映射方式有全相聯方式、直接方式群組相聯方式三種。
-
直接映射(directmapping)
将一個主存塊存儲到唯一的一個Cache行。
-
全相聯映射(fullyassociative mapping)
可以将一個主存塊存儲到任意一個Cache行。
-
組相聯映射(setassociative mapping)
可以将一個主存塊存儲到唯一的一個Cache組中任意一個行。
1、 直接映射
多對一的映射關系,但一個主存塊隻能拷貝到cache的一個特定行位置上去。
cache的行号i和主存的塊号j有如下函數關系:
i=j mod m(m為cache中的總行數)
優點:硬體簡單,容易實作
缺點:命中率低, Cache的存儲空間使用率低
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZuBnLwATNwADO0EjM3EDNwEjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
2、 全相聯映射
主存的一個塊直接拷貝到cache中的任意一行上
優點:命中率較高,Cache的存儲空間使用率高
缺點:線路複雜,成本高,速度低
3、組相聯映射
将cache分成u組,每組v行,主存塊存放到哪個組是固定的,至于存到該組哪一行是靈活的,即有如下函數關系:
cache總行數m=u×v
組号q=j mod u
組間采用直接映射,組内為全相聯
硬體較簡單,速度較快,命中率較高
原文連結:https://blog.csdn.net/qq_25406563/article/details/85011454