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

本文探讨了多Cache一致性的问题,强调了硬件管理一致性的优势,尤其是监听过滤器在减少功耗和提高性能方面的贡献。硬件一致性简化了软件管理,解决了软件复杂性和性能功耗挑战。CoreLink CCI-500作为示例,展示了如何通过监听过滤器实现高效、节能的一致性解决方案,特别适用于移动应用和big.LITTLE处理技术。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

661ac3a782315eb60abc448b82bcb9c0.png

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

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

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

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

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

软件一致性的挑战

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

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

·         缓存清理(清空):

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

·         缓存失效:

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

处理机系统中,由于每个处理器都有自己的Cache缓存,可能存在缓存中数据和主存数据不一致的情况。为了保证数据的一致性,需要使用监听协议来实现Cache之间的通信和协调。 监听协议的基本思想是,所有的Cache都会监听总线上的请求和响应信号,当有任何一个Cache对共享的数据进行修改时,会发送一个写请求信号到总线上,其他Cache监听到这个写请求,然后对缓存中相应的数据进行更新者失效操作,以保证数据的一致性。 具体来说,监听协议主要包括以下几个步骤: 1. 当一个处理器对共享的数据进行修改时,会发送一个写请求信号到总线上。 2. 其他处理器会监听到这个写请求,然后检查自己的Cache中是否有相应的数据,如果有的话就进行更新者失效操作。 3. 如果写请求涉及到的数据没有被其他处理器缓存,那么就直接将数据写入主存中。 4. 当一个处理器需要读取共享的数据时,会发送一个读请求信号到总线上。 5. 如果其他处理器已经缓存了相应的数据,则直接从缓存中读取;如果没有缓存,则从主存中读取并将数据保存到自己的Cache中。 通过监听协议,可以保证处理器系统中的Cache缓存数据的一致性,从而避免了数据不一致导致的问题。但是,监听协议也存在一些缺点,比如会增加总线的负载和延迟,从而影响系统的性能。因此,在设计处理器系统时,需要综合考虑各种因素,选择合适的Cache一致性协议
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值