AXI学习记录(6)------AXI附加信号介绍
文章目录
前言
下面将介绍AXI4中新增的3种信号机制,用于拓展AXI协议的功能性和灵活性。
1 Quality of Service(QoS)信令
AXI4协议通过QoS信令支持服务质量机制,允许系统为不同事务分配优先级,优化资源分配和延迟敏感性操作的性能。
1.1 信号定义
- AWQOS[3:0]:4位写地址通道信号,为每个写事务提供QoS标识符。
- ARQOS[3:0]:4位读地址通道信号,为每个读事务提供QoS标识符。
上述两个信号值越高,表示事务优先级越高。
1.2 系统设计考虑
优先级处理原则:
- 当组件需要从多个待处理事务中选择处理一个时,必须选择QoS值更高的事务。
- AXI协议规则优先,如果存在AXI协议规定的顺序约束,则优先遵循AXI协议规则,再考虑QoS规则。
兼容性:
- QoS信令兼容多种系统级QoS策略(如固定优先级,加权轮询级),但需符合默认实现原则(就是上面描述的值越大,优先级越高)。
- 如未实现QoS功能,组件可以选择忽略QoS功能,但是必须正确处理QoS默认值0x0。
信号传递要求:
- 事务的QoS值在传递过程中必须保持不变,即互联组件不能更改QoS值。
- 同一ID的多个事务,QoS值必须相同,否则可能违反AXI顺序模型。
1.3 实例
- 高优先级事务中,为实时数据处理,中断相应等低延迟需求事务分配大的QoS值;
- 在带宽受限制的场景(例如共享内容控制器)中,优先调度大QoS值的事务;
- 根据负载动态调整QoS值。
简单总结一下,QoS可以看做你去银行办理事务。如果你是非会员(QoS值很小),好的,你排队去吧;如果你是金卡会员(QoS值很大),麻烦您跟我到后台来,我们优先帮您处理哦。。。
2 多区域(Multiple Region)信令
2.1 信号定义
AxREGION[3:0]:4bits信号,作用是在每个读/写事务地址通道上发送的区域标识符。最多可标识16个区域。区域标识符在同一4K空间内必须保持不变。
2.2 具体描述
为什么有这种东西?可以缓解Slave解码地址的负担,直接利用AxREGION[3:0]的值来区分不同逻辑接口即可。例如:某个外设的数据和控制寄存器分布在不同地址区域,通过AxREGION[3:0]标识后,只需要使用一个物理端口连接访问即可。
Slave的要求如下:
- 访问区域数量可以小于16,访问不支持的区域,返回Error。
- 以正确的响应顺序(和事务顺序相同)对相同AXI ID的不同区域事务需要响应。
简单总结一下:AxREGION[3:0]信号使得Slave设备可以通过单一物理接口连接多个逻辑区域,显著降低硬件复杂度。
3 用户自定义(User-Defined)信号
这些信号是在AXI4中新引入的拓展机制,简单来说就是纯自定义的东西,AXI4中没有规范如何使用,因此在使用时需要特别注意(Spec中建议一般不要使用。但是这里又提及怎么使用,很明显肯定有厂商用了)。
3.1 信号定义
各个通道用户自定义信号描述如下:
通道类型 | 信号 | 描述 |
---|---|---|
写地址通道 | AWUSER | 写地址自定义信号,附加写请求数据 |
读地址通道 | ARUSER | 读地址自定义信号,附加读请求数据 |
写数据通道 | WUSER | 写数据自定义信号,附加写数据 |
写响应通道 | BUSER | 附加写响应数据 |
读响应通道 | RUSER | 附加读响应数据 |
3.2 使用注意事项
- 对于上述用户自定义信号,可以单独在某一个通道使用,并不要求在所有通道中使用。这些自定义信号的宽度对于每个通道也是不同的。
- Spec中建议在互联组件中包含这些自定义信号,不要求在Master或者Slave中包含这些信号。
总结
本文主要描述了3种附加信号,其中QoS则用来指定优先级、Multiple Region则用于同一物理接口多地址区域划分、而User Defined则完全是用户自定义信号,非必要不使用。