【计算机组成原理】cache和主存的映射

  • Post author:
  • Post category:其他




一、三种映射模式



1、直接映射

直接映射的地址结构:

标记 chache行号 块内地址

直接映射模式:

在这里插入图片描述



2、组相联映射

组相连映射的地址结构:

标记 chache组号 块内地址

在这里插入图片描述



3、全相联映射

全相联映射的地址结构:

标记 块内地址

在这里插入图片描述

全相联就比较牛逼了,核心思想是,主存块随便往cache里面装,每一块怎么映射呢?答案是不需要映射。全相联采用昂贵的按内容寻址的相联存储器(按照标记内容去寻址),不需要费脑子去映射。但也导致它被考到的频率最低。。如果cache已经装了n块,主存再传一个块过来,无论其地址多少,只要cache还有位置就放在n+1块。



二、cache每行(块)里面的东西

有效位 脏位 替换控制位 标记位 数据

有效位:恒存在,永远占一位

脏位:只有写回法会有,

详情见下面的cache写策略


替换控制位:对于n路组相联,LRU需要



l

o

g

2

n

log_2{n}






l


o



g










2



















n






位(每组的组内地址长度),具体参考《操作系统》中替换算法。

标记位:和主存中的标记位时一回事,标记位的存在将主存块和cache块联系在一起。

数据:虽然看上去俺是最短的,其实俺占的空间是最最最最最最多的。。。前面的都是为俺服务滴!



三、cache写策略



1、全写法(cache命中)

用户往cache写东西同时往主存写东西,二者同时访问。



2、写回法(cache命中)

用户先往cache写东西写完cache里面的东西再往主存传,脏位就是为了看当前cache是不是处于已经被用户写但还没有被传主存状态的一个标志位。



3、写分配法(cache不命中)

先从主存调一块到cache,然后再写。。。



4、非写分配法(cache不命中)

直接写到主存。

其中,

非写分配法+全写法

写分配法+写回法

记忆:非全(非全日制)



版权声明:本文为weixin_39529891原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。