Cache超清晰逻辑详解----不一致性(待更)

Cache超清晰逻辑详解

Cache是在主存和CPU之间设置的一个高速的、容量相对较小的存储器(SRAM)。
题外话扯一下SRAM和DRAM的特点:
SRAM:断电后会消失,
DRAM:刷新,电容,周期性地更新,访问速度较慢,耗电量较大


正常情况下,Cache中的内容应该是主存内容的副本,但有时会出现Cache与主存内容不一致的情况,这就是Cache的一致性问题。

造成Cache与主存内容不一致的原因主要有两个:

  • CPU写Cache,cache中的内容改了,但是没有立即写主存,主存没有变
  • I/O处理机或I/O设备写主存,主存中的内容修改了,cache中的内容没有修改

分别对应下面两幅图
在这里插入图片描述
在这里插入图片描述
还有别的原因:
在多机系统中,通常各个CPU都拥有自己的私有Cache
在这里插入图片描述

cache更新协议中的算法

  • 写回法WB:指处理机把数据写入Cache的同时,也将数据写入主存。
  • 写直达WT:指在CPU执行写操作时,只写入Cache,不写入主存。

写回法:
当Cache没有命中且已满时,将置换出去的、已被修改的块写入主存。在采用这种更新算法的Cache块表中,有一个“脏位”,当一个块中有数据被修改时,脏位被置为1。

When a processor writes a new value into its cache, the new value is also written into the memory module that holds the cache block being changed. Some copies of this block may exist in other caches, these copies must be updated to reflect the change caused by the write operation.

写直达:

When a processor writes a new value into its cache, this value is written into the memory and all other copies in other caches are invalidated. This also done by broadcasting the invalidation request through the system. All caches receives this invalidation request and the cache which contains the updated data flushes its cache line.

WB和WT的优缺点:

  • 可靠性:写直达法优于写回法。因为写直达法始终能够保证Cache是主存的副本,如果Cache中发生错误,还可以从主存中得到纠正。对于写回法,在数据被修改后、写回到主存之前,Cache中存放的并不是主存的副本。

  • 控制的复杂性:写直达法比写回法简单。对于写回法必须为每个块设置一个脏位,并且要对脏位进行管理和判断,为了保证Cache的正确性,通常要采用纠错码。
    对于写直达法,不需要设置脏位,只需要采用简单的奇偶校验就可保证Cache中是主存的副本。

  • 与主存的通信量:写回法少于写直达法。对于写直达法,每次执行写操作都必须写、且只写一个字到主存。对于写回法,大部分的写操作只需要写Cache,不需要写主存。

  • 硬件实现的代价:写回法优于写直达法。对于写直达法,每次写操作都要写主存,为了节省写主存花费的时间,通常会采用一个高速小容量的缓冲存储器,把要写主存的数据和地址先放到这个缓冲存储器中,每次读主存时,也要首先判断所读的数据是否在这个缓冲存储器内。写回法不需要设置缓冲存储器。

解决Cache不命中的情况:

  • 不按写分配法:在写Cache不命中时,只把所要写的字写入主存不需要将这个字所在的块读入到Cache中,在写直达法中采用。

  • 按写分配法:在写Cache不命中时,除了把所要写的字写入主存外,还要把包括所写字在内的一个块从主存读入Cache,在写回法中采用。

那为什么写直达采用不按写分配的方式呢?

假设写直达法采用按写分配法,(1)第一次写Cache不命中,则需要更新主存,并将此块调入Cache;(2)然后再对这个块写n次,命中,按写直达法,需要写主存和Cache各n次。
在这里插入图片描述

写回法采用按写分配的方式呢?
在这里插入图片描述
在这里插入图片描述


在多机系统中解决不一致性:

1.共享cache法

在这里插入图片描述

2. 共享数据不放私有cache中

在这里插入图片描述


为了解决多核以及多处理器的多个缓存之间的数据不一致提出来的,缓存一致性协议分为两种,第一种是基于窥探的协议(snoop-based),第二种是基于目录的协议(directory-based)

3. 监视法Snooping

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.目录法

  • 5
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值