1. 服务质量信号
本节描述了AXI4协议中支持的额外信号服务质量(QoS)。
1.1 QoS接口信号 AXI4信号集扩展以支持两个4位的QoS标识符:
- AwQOS:4位QoS标识符,针对每个写事务在写地址通道上发送。
- ARQOS:4位QoS标识符,针对每个读事务在读地址通道上发送。
在本规范中,AxQOS指AwQOS或ARQOS。
协议没有指定QoS标识符的确切用途。本规范建议AxQOS被用作相关写入或读取事务的优先级指示器,更高的值表示更高的优先级事务。
默认值0b0000表示该接口没有参与任何QoS方案。
注意
- 可以使用QoS标识符的其他解释。
1.2 master考虑因素
master可以产生自己的AxQOS值,如果它能产生多个流量流(streams of traffic),它可以为不同的流选择不同的QoS值。
支持QoS需要对使用的QoS方案有系统级的理解,以及理解所有参与组件之间的协作。为此,本规范建议master组件包含一些可编程性,可用于控制给定场景使用的确切QoS值。
如果master组件不支持可编程的QoS方案,它可以使用代表其生成的事务的相对优先级的QoS值。如果合适,这些值可以映射到系统级的其他QoS值。
不能产生自己的AxQOS值的master必须使用默认值。
注意
- 本规范预计许多互连组件实现将支持可编程寄存器,这些寄存器可用于为连接的master分配QoS值。这些值替换了由master提供的,无论是编程还是默认的QoS值。
1.3 系统考虑因素
AXI4中定义的QoS信号可以与任何兼容的系统级QoS方法一起使用。
QoS的默认系统级实现是,任何可以选择多个事务进行处理的组件,首先选择处理QoS值更高的事务。只有在没有其他AXI约束要求以特定顺序处理事务时,才进行此选择。
注意
- 这意味着AXI排序规则优先于QoS目的的排序。
可以实施与此默认方案兼容的更复杂的QoS方案。
2. 多区域信号
本节描述了AXI4协议中用于支持多区域接口的可选额外信号。
2.1 额外的接口信号
AXI4接口信号集可以被扩展以支持两个4位区域标识符:
- AWREGION:区域标识符,针对每个写事务在写地址通道上发送。
- ARREGION:区域标识符,针对每个读事务在读地址通道上发送。
在本规范中,AxREGION指AWREGION或ARREGION。
4位区域标识符可以用来唯一标识多达16个不同的区域。区域标识符可以提供更高阶地址位的解码。区域标识符必须在任何4K字节地址空间内保持不变。
使用区域标识符意味着单个物理接口上的slave可以提供多个逻辑接口,每个逻辑接口在系统地址映射中具有不同的位置。使用区域标识符意味着slave不需要支持不同逻辑接口之间的地址解码。
本协议期望互连在执行单个具有多个逻辑接口的slave的地址解码功能时产生AxREGION信号。如果slave在系统地址映射中只有一个物理接口,互连必须使用默认的AxREGION值。
区域标识符的使用模型有很多,包括但不限于以下情况:
- 外设可以在地址映射的不同位置拥有其主数据路径和控制寄存器,并通过单个接口被访问,而不需要slave执行地址解码。
- slave可以在不同的内存区域展现不同的行为。例如,slave可能在一个区域提供读写访问,在另一个区域只提供读访问。
slave必须确保维护正确的协议信号和事务的正确排序。slave必须确保它为具有相同AXI ID的针对不同区域的两个事务提供响应的正确顺序。
slave还必须确保对于任何AxREGION值都维护正确的协议信号。如果slave实现少于16个区域,那么slave必须确保对于任何尝试访问不支持的区域都维护正确的协议信号。如何实现这一点是硬件设计定义的。例如,slave可能通过以下方式确保:
- 对于访问不支持区域的任何事务提供错误响应。
- 将支持的区域别名到所有不支持的区域,以确保对所有访问都给出符合协议的响应。
AxREGION信号仅提供现有地址空间的地址解码,可以被slave用来移除所需的地址解码功能。这些信号不创建新的独立地址空间。
AxREGION必须只在地址解码功能的下游接口上存在。
3. 用户定义信号
AXI4接口信号集可以包括一组用户定义的信号,称为用户信号(User signals),存在于每个AXI4通道上。
通常,本规范建议不使用用户信号,因为AXI协议没有定义这些信号的功能,如果两个组件以不兼容的方式使用相同的用户信号,可能会导致互操作性问题。
3.1 信号命名
为每个AXI4通道定义的用户信号名称是:
- AWUSER:写地址通道用户信号。
- ARUSER:读地址通道用户信号。
- WUSER:写数据通道用户信号。
- RUSER:读数据通道用户信号。
- BUSER:写响应通道用户信号。
在本规范中,AxUSER指AWUSER或ARUSER。
2. 使用考虑
在实现了用户信号的地方,并不要求所有通道都支持用户信号。也就是说,是否包含用户信号的设计决策是每个通道独立做出的。
本规范建议在互连上包含用户信号,但并没有要求在master或slave上包含它们。
本规范建议互连组件包含对用户信号的支持,以便它们可以在master和slave组件之间传递。用户定义信号的宽度是硬件设计定义的,并且每个通道该信号的宽度可以不同。