扫码加入

  • 正文
  • 相关推荐
申请入驻 产业图谱

AMBA AXI协议窄带传输详解(八)

2025/12/18
686
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

欢迎各位朋友关注“郝旭帅电子设计团队”公众号,本公众号会定时更新相关技术类资料、软件等等,感兴趣的朋友可以浏览一下本公众号的其他“模块”,希望各位朋友都能在本公众号获得一些自己想要的“东西”。

本篇主要是AMBA AXI协议窄带传输详解(八)

1. 核心概念:什么是窄带传输?

窄带传输 是指数据总线宽度大于单次传输所需数据大小时发生的传输。

简单来说,就是“杀鸡用牛刀”——你有一条很宽的数据通道(比如 128 位),但只需要传输一小部分数据(比如 8 位或 16 位)。AXI 协议通过一套精巧的机制,允许你高效、精确地利用宽数据总线进行小数据量的传输,而无需改变总线宽度或进行额外的数据重组。

2. 为什么需要窄带传输?

系统效率:现代 SoC 中,为了获得高带宽,系统总线(如连接 DRAM 控制器的总线)通常设计得很宽(64 位、128 位、256 位甚至更宽)。然而,系统中存在大量低速外设(如 UARTI2CGPIO),它们只需要访问单个字节或字。窄带传输允许这些低速代理高效地共享宽总线。

节省面积和功耗:为每个外设提供与其数据宽度完全匹配的专用总线是不现实的。窄带传输实现了总线资源的共享和复用。

对齐访问:它使得非对齐的访问(即起始地址不是数据总线宽度整数倍的访问)能够在一个周期内完成,提高了效率。

3. 实现窄带传输的关键机制

AXI 协议通过以下三个信号的协同工作来实现窄带传输:

a) 地址总线 (AWADDR / ARADDR) 作用:确定本次传输在数据总线上的起始位置。  地址指定了传输的字节地址。数据总线上的哪几个字节通道(Byte Lane)参与本次传输,由地址的低位和传输大小共同决定。

b) 传输大小 (AWSIZE / ARSIZE) 作用:定义单次传输中数据的字节数(1, 2, 4, 8, … 字节)。  它决定了本次“窄带”到底有多“窄”。例如,SIZE = 0b010 表示本次传输 4 个字节。

c) 字节选通信号 (WSTRB) 作用:这是实现窄带传输最核心的信号。它是一个位宽与 WDATA 总线字节数相等的信号,每一位对应 WDATA 的一个字节。  WSTRB[n] 为 1:表示 WDATA[(8*n)+7 : (8*n)] 这个字节通道上的数据是有效的,需要被写入。  WSTRB[n] 为 0:表示对应的字节通道上的数据是无效的,从机应忽略它。  在读取传输中,主机不需要提供选通信号,从机会根据地址和 SIZE 返回有效数据,主机从宽数据中提取所需部分。

4. 工作机制详解(以写操作为例)

假设一个系统:  数据总线宽度:WDATA = 32 位(4 个字节通道,索引为 [3], [2], [1], [0])。  传输请求:向地址 0x1001 写入 2 个字节的数据(SIZE = 1)。

步骤分析:

地址解析:地址 0x1001 的二进制低 2 位是 01。这表示传输从第 1 个字节通道(索引 [1])开始。

确定活跃通道:因为 SIZE=1(2 字节),所以需要占用连续的 2 个字节通道。起始通道是 [1],所以活跃通道是 [2] 和 [1]。

设置字节选通:主机将 WSTRB[2] 和 WSTRB[1] 置为 1,其余 (WSTRB[3] 和 WSTRB[0]) 置为 0。

放置数据:主机将待传输的 2 字节数据,分别放置到 WDATA[23:16](对应通道 [2])和 WDATA[15:8](对应通道 [1])上。WDATA 的其他位可以是任意值(“无关项”)。

从机响应:从机看到 WSTRB 后,只更新地址 0x1001 和 0x1002 对应的字节(通道 [1] 和 [2]),忽略通道 [0] 和 [3] 的数据。

5. 读取传输的特点

对于读操作,主机同样通过 ARADDR 和 ARSIZE 发起一个窄带读请求。从机必须根据这些信息,将正确的数据放在 RDATA 总线的相应字节通道上返回。

协议规定,从机可以将有效数据放置在正确的字节通道上,而其他通道返回任意值。

更常见且高效的做法是,从机(尤其是存储器控制器)总是返回完整宽度的对齐数据(例如,总是返回整个 32 位字),然后由主机内部的互联组件或主机本身,根据原始的地址和 SIZE,从宽数据中提取(切片)出所需的窄带数据,交给发出请求的主机。

6. 优势总结

灵活性:允许不同数据宽度的主从设备无缝通信。

高效率:避免了为小数据量访问而多次切分总线事务,减少了延迟和总线占用。

支持非对齐访问:通过结合起始地址和选通信号,单次传输即可完成非对齐的数据访问,而无需拆分成两次对齐访问。

降低功耗:无效的字节通道可以被关闭(通过 WSTRB=0 或从机忽略部分读数据),减少了不必要的电路翻转,节省了动态功耗。

总而言之

窄带传输是 AXI 协议高效性和实用性的关键体现。它通过 WSTRB 等精妙的设计,解决了宽总线系统中小数据量、非对齐访问的核心难题,是复杂 SoC 能够高效运转的重要基石。

本篇内容中有部分资源来源于网络,如有侵权,请联系作者。

相关推荐