实验六 多cache一致性——监听协议_ARM cache一致性

661ac3a782315eb60abc448b82bcb9c0.png

 cache一致性意味着确保系统中所有处理器或总线主控器看到相同的内存视图。 例如,如果我有一个处理器创建数据结构,再传递到 DMA 引擎以移动它,那么处理器和 DMA 必须看到相同的数据。 如果该数据曾在 CPU 中缓存过,而 DMA 从外部 DDR 中读取,那么 DMA 将读取到过时、陈旧的数据。

维护一致性的机制有三种:

·        禁用缓存是最简单的机制,但可能牺牲大量 CPU 性能。 为获得最高的性能,处理器采用管线结构以在高频率上运行,并从延迟性非常低的缓存运行。 数据缓存可以被多次访问,从而大大提高性能,同时减少 DRAM 访问次数并降低功耗。 将数据标记为非缓存可能会影响性能和功耗。

·        软件管理一致性是数据共享问题的传统解决方案。 此处软件通常指的是设备驱动程序,它们必须从缓存中清理或清空脏数据,使旧数据失效,从而与系统中的其他处理器或主控器实现共享。 这将占用处理器周期、总线带宽和功耗。

·        硬件管理一致性提供可简化软件的替代方式。 使用这一解决方案时,任何标记为共享的缓存数据将始终自动保持最新。 该共享域中的所有处理器和总线主控器看到完全相同的值。

软件一致性的挑战

缓存将外部内存内容存储到靠近处理器的位置,从而缩短访问延迟并降低功耗。 片上内存访问的功耗要远低于外部 DRAM 访问。

软件管理一致性通过两个主要机制管理缓存内容:

·         缓存清理(清空):

o    如果缓存中存储的任何数据被修改,它会标记为,必须在未来某一时点写回到 DRAM 这种清理或清空缓存的过程将强制脏数据写入到外部内存。

·         缓存失效:

o    如果处理器拥有数据的本地副本,但外部代理更新了主内存,那么缓存内容将过期或变得陈旧 在读取这一数据前,处理器必须从缓存删除陈旧的数据,这称为失效(缓存线标记为无效)。 例如,某一内存区域用作网络流量的共享缓冲区,网络流量可能会被网络接口 DMA 硬件更新;想

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值