目录
https://blog.csdn.net/weixin_45792450/article/details/109314693
主存与缓存之间的映射
映射方式:全相联映射,直接映射,组映射
全相联映射
CPU在内存寻址时,计算访问存储字对应内存数据块的块号,然后去缓存中查找,看是否有对应数据块,若有,则命中进行操作;否则,继续访问内存。
offset是块内偏移,用于命中后找到指定数据块,去数据块内部找到指定的字(word)
直接映射
标记Tag,索引Index,Offset块内偏移
组相联映射
直接映射简单直接,但是若两块活跃数据块映射到同一位置时就影响效率;全相联实现灵活,但是在缓存内查找数据块是否存在时,是顺序进行的,代价较高。那么,可以采取折中的办法,将两者结合,由此产生了组相联映射。
组相联就是将数据块分组,组间实现直接映射,组内实现全相联映射,由此结合了直接映射和全相联映射的优点。
缓存的组内有多少数据块就称多少路,比如一组10个,就称一组10路
缓存与内存都分成K组,分的组数是一样的。
组相联映射的地址结构
用上述的样例进行分析,即组内块地址12位,组地址4位,块内地址8位。
如果用16进制表示,每个16进制数等于4个二进制数,那么组内地址为3位16进制数,组地址为1位16进制数,块内地址为2位16进制数,共需6位16进制数,具体如下:
高3位为组内地址,中1位为组地址,低2位为块内地址