第八章AXI
AXI总线接口设计
CPU通过总线与系统中的内存、外设进行交互。
- CPU内部进行调整适应总线接口下的访存行为
- 设计遵循AXI总线协议的接口
8.1 类SRAM总线
AXI:主方一旦发起某一地址或数据的传输,在该传输握手成功前,不得更改传输的地址或数据。
8.2 类SRAM总线的设计
8.3 AXI总线协议
AXI(高级可扩展接口)总线是一种高性能、高带宽、低延迟的片商总线。
地址/控制和数据总线分离,支持不对齐的数据传输 ,同时在突发传输中只需要传送首地址,且使用分离的读写数据通道并支持乱序访问。
特点
- 信息流单向传输
- 支持多项数据交换,通过并行执行burst操作,极大地提高了数据吞吐能力。
- 独立的地址和数据通道,可根据需要对每个通道单独优化,插入流水,提高时钟频率。
五个通道
- 写请求 AW开头
- 写数据 W开头
- 写响应 B开头
- 读请求 AR开头
- 读响应 R开头
AXI架构
AXI一次完整读写过程称为一个总线事务(transaction),传输一个周期的数据称为一次传输(transfer)。
AXI使用双向握手协议,每次传输都需要主从双方给出确认信号。
互联架构
AXI的互联结构可以共享地址和数据通道,或共享地址通道但使用多个数据通道。
高频设计
可针对某通道进行优化设计插入寄存器提高频率。
基本事务
只有valid和ready同时为高,才进行数据传输。
AXI可以实现重叠事务,事务A的读数据还没传输完,从设备就已经接收读事务B的地址信息,可降低B事务的完成时间。传输过程中通过ID对不同的事务加以区别。
每一个读写事务都有一个ID标签,通过ID进行区分,因此支持读写事务乱序完成。
传输机制
传输类型:回绕(wrapping),顺序(incrementing),固定(fix)
回绕适合高速缓存行传输,顺序传输适合较长的内存访问,固定传输适合对外设FIFO的访问。
传输长度和传输数据宽度都可配置。
支持原子操作、安全和特权访问、不对齐访问,支持错误报告
AXI深入理解
1.握手
AXI采用握手机制实现主从交互。
其中为了避免死锁,AXI规范中明确规定valid有效不能依赖于ready,ready有效可以依赖于valid。
2. 总线事务和总线传输
因为AXI同一时刻可能进行多个不同的读写操作,因此采用更高层次的抽象”事务“来描述总线行为。一个总线事务包含多个总线传输,总线传输只针对valid和ready同时有效的那个时钟周期。
3. 地址、大小、数据
- 通过地址区分数据
- 寻址粒度是字节
- 主设备告诉从设备每次传输数据量的大小
4.多个通道
读写分离和读写合并是总线传输性能的权衡。
5.多通道间的事务握手依赖关系
6.并发访问
由于控制信号和数据信号分离,因此主机可连续发出多个请求。
7. 乱序响应
定义:后发出的请求可能先返回数据。乱序响应可提高总线的传输性能。
8.ID
通过ID来确定请求和响应之间的对应关系。但AXI规定,不同的事务也可以设置相同ID。
9。写响应通道的作用
在先写后读的场景下,容易读到旧值。
10、突发传输模式
一次32bit,一共读512bit的话,如果每次都要发送请求,需要16次握手。但突发传输模式只需要握手一次即可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】