AXI总线协议简述

前言

AXI(Advanced eXtensible Interface)是 AMBA(Advanced Microcontroller Bus Architecture)协议家族的一部分,由 ARM 公司制定。AXI 是一种高性能、可扩展的总线协议,广泛用于 SoC(System on Chip) 设计中,特别适用于高带宽、低延迟的应用。它主要用于在系统中不同组件之间传输数据和控制信号,尤其是 CPU、内存、外设之间的通信。

AXI 协议的特点是支持 高吞吐量低延迟 的数据传输,具备 多主多从结构,并且支持 独立的读写通道,从而提高总线的效率。下面是对 AXI 协议的详细介绍。

AXI 总线的核心特性

  1. 独立的读写通道
    AXI 协议将读操作和写操作分成了两个完全独立的通道,分别通过 读通道写通道 传输。这意味着读和写操作可以同时进行,彼此互不干扰,极大提高了系统的吞吐量和性能。

  2. 握手机制
    AXI 使用 validready 信号来协调数据的传输,确保发送方和接收方在数据传输前都准备好。valid 信号表明数据有效,ready 信号表明接收方准备好接受数据,只有两者同时为高电平时,数据传输才会进行。这种握手机制保证了通信的可靠性和同步性。

  3. 地址与数据分离
    AXI 协议将地址和数据分为不同的信号通道,地址的传输与数据的传输是独立的。它采用地址提前机制,即地址通道先行,数据通道随后,这种设计减少了数据传输的等待时间。

  4. 突发传输(Burst Transfer):
    AXI 支持突发传输,一次传输可以连续发送多笔数据,且这些数据共享同一个起始地址。突发传输有三种类型:

    • 固定突发:每次传输的地址保持不变。
    • 递增突发:每次传输的地址递增。
    • 包装突发:地址以固定的包长度循环变化。
  5. 低延迟高带宽
    AXI 协议通过分离地址和数据通道、独立的读写通道,以及支持突发传输的特性,能够提供低延迟和高带宽的数据传输能力。

AXI 通道

AXI 协议将总线操作分为以下 5 个独立的通道

  1. 读地址通道(Read Address Channel):

    • 用于发送读操作的地址。
    • 信号主要有:ARADDR(读地址)、ARVALID(地址有效信号)、ARREADY(地址准备好信号)等。
  2. 读数据通道(Read Data Channel):

    • 用于从从设备返回读操作的数据。
    • 信号主要有:RDATA(读数据)、RVALID(数据有效信号)、RREADY(接收端准备好信号)、RRESP(读响应)等。
  3. 写地址通道(Write Address Channel):

    • 用于发送写操作的地址。
    • 信号主要有:AWADDR(写地址)、AWVALID(地址有效信号)、AWREADY(地址准备好信号)等。
  4. 写数据通道(Write Data Channel):

    • 用于发送写操作的数据。
    • 信号主要有:WDATA(写数据)、WSTRB(写数据的字节掩码)、WVALID(数据有效信号)、WREADY(接收端准备好信号)等。
  5. 写响应通道(Write Response Channel):

    • 用于从从设备返回写操作的结果。
    • 信号主要有:BVALID(写响应有效信号)、BREADY(接收端准备好信号)、BRESP(写响应信号)等。

AXI 信号详细说明

每个通道都使用 VALIDREADY 信号来进行握手,确保主设备和从设备双方都准备好进行数据传输。

  • VALID:发送方用来指示当前信号有效。
  • READY:接收方用来指示它准备好接收数据。

VALIDREADY 同时为高时,数据或地址才能传输。下面是每个通道的具体信号:

  1. **读地址通道 (Read Address Channel)**:

    • ARADDR:读地址。
    • ARVALID:读地址有效。
    • ARREADY:从设备准备好接收地址。
  2. **读数据通道 (Read Data Channel)**:

    • RDATA:读数据。
    • RVALID:数据有效。
    • RREADY:主设备准备好接收数据。
    • RRESP:读响应(通常表示是否读取成功,如 OKAYSLVERRDECERR)。
  3. **写地址通道 (Write Address Channel)**:

    • AWADDR:写地址。
    • AWVALID:写地址有效。
    • AWREADY:从设备准备好接收地址。
  4. **写数据通道 (Write Data Channel)**:

    • WDATA:写数据。
    • WSTRB:写数据的字节掩码,用来指示哪些字节有效。
    • WVALID:数据有效。
    • WREADY:从设备准备好接收数据。
  5. **写响应通道 (Write Response Channel)**:

    • BRESP:写响应,表示写入操作的状态(如 OKAYSLVERR)。
    • BVALID:写响应有效。
    • BREADY:主设备准备好接收写响应。

典型 AXI 读写操作流程

读操作流程:

  1. 主设备发送读地址 (ARADDR) 并通过 ARVALID 表示地址有效。
  2. 从设备通过 ARREADY 表示准备好接收地址。
  3. 从设备准备好数据,并通过 RVALID 表示数据有效。
  4. 主设备通过 RREADY 表示准备好接收数据。
  5. 数据传输完成后,从设备通过 RRESP 发送读响应。

写操作流程:

  1. 主设备发送写地址 (AWADDR) 并通过 AWVALID 表示地址有效。
  2. 从设备通过 AWREADY 表示准备好接收地址。
  3. 主设备发送写数据 (WDATA) 并通过 WVALID 表示数据有效。
  4. 从设备通过 WREADY 表示准备好接收数据。
  5. 数据写入后,从设备通过 BVALID 发送写响应,主设备通过 BREADY 接收响应。

AXI 突发传输

AXI 支持突发传输,可以在一次请求中传输多个数据包,从而提高效率。突发传输可以是固定突发(地址不变)、递增突发(地址递增)或包装突发(地址循环变化)。

AXI 总线的应用场景

AXI 协议由于其高效的数据传输机制和多通道支持,广泛应用于各种 SoC 设计中,特别是在需要高带宽、低延迟的场景下,例如:

  • CPU 和内存的交互。
  • 高性能外设(如 DMA、GPU)和系统总线之间的数据传输。
  • 多核处理器和共享内存之间的通信。

总结

AXI 总线协议提供了强大的高性能通信机制,支持多主多从、突发传输、独立的读写通道,并通过握手机制确保数据传输的同步和可靠性。AXI 是现代 SoC 设计中重要的基础技术,被广泛应用于各种高带宽、低延迟的数据传输场景。


AXI总线协议简述
http://blog.luliang.online/2024/10/28/AXI总线协议/
作者
Luyoung
发布于
2024年10月28日
许可协议