在教材上学习了Direct Mapped Cache, Fully Associate Cache, set Associate Cache三种映射策略,但这三种映射策略中,主存地址与映射之后的二进制信息的长度居然是一样的。我的疑惑是这样的:这个映射策略是这么使用的,CPU给出它要访问的主存的地址A,但是在访问之前,先经过映射策略将这个地址转换为对应在高速缓存中的地址B。检查B中是否装载有有效数据。如果有,则直接读这个数据,也就是说hit。如果没有,miss,去主存里找。考虑主存中可以容纳2^14个字,因此A要有14个bit,这很好理解,但是B和A的长度是相等的,B也有14个bit,这不就意味着主存和高速缓存的容量一样大了么?既然如此,我还需要你主存干什么,全部高速缓存不就好了?而如果地址B并非是高速缓存中存储单元的地址,而是高速缓存中存储单元中存储的内容,那就更加莫名其妙了。我CPU一开始就已经给出了要访问的存储单元(虽然是在主存中)的地址,然后你让我绕道高速缓存一趟,又返回给我一个地址,我最后还是要去访问主存,那我绕这个道做什么啊?请问我到底哪里想错?谢谢
添加回答
举报
0/150
提交
取消