当前位置:   article > 正文

【总线】AXI4第七课时:AXI的额外的控制信息(PROT和CACHE)_axi4 prot

axi4 prot

         大家好,欢迎来到今天的总线学习时间!如果你对电子设计、特别是FPGA和SoC设计感兴趣,那你绝对不能错过我们今天的主角——AXI4总线。作为ARM公司AMBA总线家族中的佼佼者,AXI4以其高性能和高度可扩展性,成为了现代电子系统中不可或缺的通信桥梁。

        上课时我们讲了AXI的寻址选项,本章节讲一下AXI的额外的控制信息

        大家可能经常看到AXI使用的程序里有未连接的信号,如*_prot、*_cache,这些信号为什么不连接,AXI总线也可以工作呢?本章节就来解释下这个问题。

  • *_prot:AXI总线的保护单元支持,
  • *_cache:系统级缓存和其他性能增强组件的支持

        这里会有一系列的课程,和大家分享AMBA总线家族,欢迎大家一起学习,收藏点赞。

 系列文章

【总线】AMBA总线架构的发展历程-CSDN博客

【总线】设计fpga系统时,为什么要使用总线?-CSDN博客

【总线】AXI总线:FPGA设计中的通信骨干-CSDN博客

【总线】AMBA总线家族的明星成员:AXI协议简介-CSDN博客

【总线】AXI4第一课时:揭秘AXI4总线的五大独立通道-CSDN博客

【总线】AXI4第二课时:深入AXI4总线的基础事务-CSDN博客

【总线】AXI4第三课时:握手机制-CSDN博客

【总线】AXI4第五课时:信号描述-CSDN博客

【总线】AXI4第六课时:寻址选项深入解析-CSDN博客

【总线】AXI4第七课时:AXI的额外的控制信息(PROT和CACHE)-CSDN博客


原理

缓存支持

        系统级缓存和其他性能增强组件的支持是由缓存信息信号 ARCACHE 和 AWCACHE 提供的。这些信号提供了关于事务可以如何处理的额外信息。

        ARCACHE[3:0] 或 AWCACHE[3:0] 信号通过提供以下事务属性来支持系统级缓存:

  • 可缓冲 (B) 位,ARCACHE[0] 和 AWCACHE[0]:当此位为高时,意味着互连体或任何组件可以延迟事务到达其最终目的地,延迟的周期可以是任意的。这通常仅与写入有关。
  • 可缓存 (C) 位,ARCACHE[1] 和 AWCACHE[1]:当此位为高时,意味着在最终目的地的事务不需要与原始事务的特性相匹配。

        对于写入,这意味着可以合并多个不同的写入。

         对于读取,这意味着可以为多个读取事务预取一个位置,或者只为一个位置获取一次。

  • 读分配 (RA) 位,ARCACHE[2] 和 AWCACHE[2]:当 RA 位为高时,意味着如果传输是一个缓存未命中的读取,则应该进行分配。如果 C 位为低,则 RA 位不能为高。
  • 写分配 (WA) 位,ARCACHE[3] 和 AWCACHE[3]:当 WA 位为高时,意味着如果传输是一个缓存未命中的写入,则应该进行分配。如果 C 位为低,则 WA 位不能为高。

        在写事务的情况下,AWCACHE 信号可以用来确定哪个组件提供写响应。如果写事务被标记为可缓冲的,那么由桥接或系统级缓存提供写响应是可以接受的。然而,如果事务被标记为不可缓冲的,那么写响应必须来自事务的最终目的地。

        AXI协议并不决定缓冲或缓存数据到达目的地的机制。例如,系统级缓存可能有控制器来管理清除、冲刷和使缓存条目无效。另一个例子是包含写缓冲区的桥接器,如果它接收到一个具有匹配事务ID的不可缓冲写入,它可能有控制逻辑来排空缓冲区。

保护单元支持

        为了支持复杂的系统设计,通常需要互连体和系统中其他设备提供对非法事务的保护。AWPROT 或 ARPROT 信号提供了三个级别的访问保护:

  • 普通或特权,ARPROT[0] 和 AWPROT[0]:

        低电平表示普通访问。

        高电平表示特权访问。这被一些主设备用来表示它们的处理模式。特权处理模式通常在系统中拥有更高级别的访问权限。

  • 安全或非安全,ARPROT[1] 和 AWPROT[1]:

       低电平表示安全访问。

        高电平表示非安全访问。这在需要更高程度区分处理模式的系统中使用。

  • 指令或数据,ARPROT[2] 和 AWPROT[2]:

        低电平表示数据访问。

        高电平表示指令访问。这个位提供了事务是指令访问还是数据访问的指示。

为什么可以不连ARCACHE和ARPROT

        在实际应用中,可能会发现某些AXI信号,如ARCACHE和ARPROT,没有被所有系统或设计所使用。这种情况的原因可能包括:

  1. 系统简化:在一些简单的系统设计中,可能不需要复杂的缓存策略或保护机制。因此,设计者可能会选择忽略这些信号以简化设计和减少开销。
  2. 性能考虑:实现这些信号可能需要额外的硬件资源和逻辑。在对性能要求不高或对成本敏感的应用中,可能会省略这些功能。
  3. 特定应用:有些应用可能有特定的缓存或保护需求,这可能由软件或操作系统管理,而不是通过硬件信号控制。
  4. 安全和可靠性:在安全关键的应用中,可能会更加谨慎地使用这些信号,以确保系统的安全和可靠性。
  5. 特定类型的AXI:AXI协议有多个变种(如AXI, AXI-Lite, AXI-Stream等),某些变种可能不支持或不需要所有的AXI信号。

        重要的是要理解,AXI协议提供了一套丰富的信号和特性,以支持广泛的应用场景。设计者可以根据他们的具体需求选择性地实现这些特性。在学习过程中,了解这些信号的完整功能和潜在用途是有价值的,即使在某些实际应用中它们可能不被使用

应用案例

 应用案例 1:多核处理器系统中的缓存一致性

场景描述:在一个多核处理器系统中,每个核心都有自己的缓存。当一个核心的数据被修改后,系统需要确保其他核心的相应缓存行是一致的。

应用点:使用 ARCACHE 和 AWCACHE 信号来标识数据的缓存属性,如是否可以被合并或分配,从而帮助维护缓存一致性。

 应用案例 2:嵌入式系统中的内存保护

场景描述:在嵌入式系统中,不同的软件模块可能需要不同级别的访问权限,如操作系统内核和用户应用程序。

应用点:利用 ARPROT 信号中的保护级别来确保安全访问,防止用户级应用程序访问或修改内核数据。

应用案例 3:高性能计算中的缓存策略

场景描述:在高性能计算(HPC)系统中,缓存的使用对于系统性能至关重要。系统需要智能地管理数据的缓存,以减少内存访问延迟。

应用点:通过 ARCACHE 和 AWCACHE 信号的配置,实现高效的缓存策略,如写回(write-back)或写穿透(write-through)。

应用案例 4:虚拟化环境中的内存管理

场景描述:在虚拟化环境中,多个虚拟机(VM)共享同一个物理硬件资源。每个VM都需要有自己的内存空间和保护级别。

应用点:使用 ARPROT 信号来区分不同VM的访问权限,确保虚拟化环境中的内存安全和隔离。

应用案例 5:实时系统中的确定性响应

场景描述:在实时系统中,对任务的完成时间有严格的要求。系统需要快速响应外部事件,如传感器数据的采集和处理。

应用点:通过优化 ARCACHE 和 AWCACHE 信号的使用,减少缓存引起的不确定性,确保系统能够提供确定性的响应。

应用案例 6:分布式共享内存系统中的一致性

场景描述:在分布式共享内存(DSM)系统中,多个处理器或节点共享同一块内存区域。

应用点:利用 ARCACHE 和 AWCACHE 信号来维护数据在不同节点间的一致性,确保所有节点看到的是最新的数据副本。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/秋刀鱼在做梦/article/detail/999994
推荐阅读
相关标签
  

闽ICP备14008679号