官方文档列举出了18条 feature,其中一些feature其实在一些公司内部可能是通过自定义User域已经支持了,AXI5根据整个系统的需求,提炼出一些功能增加到已有的5个通道中去控制。这里先罗列出来,有个初步的印象,有些特性需要展开学习,并且结合其它组件或者系统特性来学习。这18个feature分别如下:
- 支持Atomic transaction:在访问过程中,还会对数据做一些操作。具体包含四种:atomic store、atomic load、atomic swap、atomic compare。要联合lock和exclusive实现读改写的过程,来理解atomic对性能提升的方式。
- 增加数据检查(data check)信号:检测和纠正(potentially correct)发生错误的数据。完成该功能的模块叫做EDC,看协议里面主要是通路上有组件实现了奇校验。协议没有规定检测到parity错误后,组件或者系统的行为。相关的信号是由CHK后缀标识的。该特性目前在我接触的系统里面还没有用到,但像自动驾驶这种对数据安全有严格要求的系统,会关注该特性,对所有控制信号和数据信号都做parity check。
- 增加Poison标识位:标识数据在之前已经被破坏,这样数据获取端就可以知道哪些数据被破坏。每64bit数据,用1bit poison标识。对应的信号分别为:R通道的rpoison、W通道的wpoison,以及ACE协议中的snoop CD通道的cdpoison。
- 增加两个额外的QoS信号:用于下游标识可接受的最小Qos的传输。
- 增加Trace信号:每个通道都会有trace信号,用于调试、追踪和性能观测。
- 增加loopback信号:在AXI4中,我们一般是通过ID去索引一些存储好的信息,现在可以通过loopback信号,把数据带给下游,要求下游在返回数据和响应的时候,直接把loopback信号带回来。怎么说呢,减少了master的设计复杂度/逻辑量,但是增加了下游(总线/slave)的逻辑量。
- 增加wakeup信号:通常是和低功耗控制相关。
- 增加untranslated transaction:扩展对SMMU的支持,比如增加AxMMUSID、AxMMUSSID、AxMMUFLOW等信号,指示SMMU应该怎么操作。这样就实现了同一接口上,可以灵活控制具体的地址翻译操作过程。
- 支持非安全访问:对应的信号是awnsaid[4:0]、arnsaid[4:0]、acnsaid[4:0](ACE的AC channel)。
- 支持MPAM:MPAM,即Memory System Resource Partitioning and Monitoring,是Arm Architecture v8.4 的 Extension 特性,其目的是用于解决服务器系统中,混部不同类型业务时,由于 CPU 访存过程中共享资源的竞争带来的某些关键应用性能下降或者系统整体性能下降的问题。 CPU共享资源隔离的利器MPAM特性介绍-电子发烧友网 。
- 支持Unique ID的标识:AXI4有个重要特性就是同ID需要保序,此时总线需要跟踪每个ID的完成情况,以及顺序保障。如果master明确不需要,那就可以省去ID跟踪逻辑资源,或者说同ID保序资源的分配。
- 支持disable读间插:我们知道AXI4中取消了写间插,AXI5中提供了master明确标识取消读间插的能力。
- 支持Read Data Chunk特性
- 支持MTE。MTE,即Memory Tagging Extension,是一种内存访问安全控制机制。
- 标识是否只支持Regular type传输。
- 用户定义master是否会发出exclusive操作,以及slave是否可以接收exclusive操作。
- 定义最大传输Size。
- 定义下游是否在读写的所有cycle都发出一致的DECERR信号
额外多说一句,我们习惯把组件称为master和slave,但是在最新的ARM文档里面,会相应的称为manager和subordinate。