AMBA4 AXI 突发传输


1. AXI 中的突发传输

1.1 4KB 地址边界

  • 单次突发传输的地址不能跨越 4KB 地址边界。
    • 与AHB 中突发传输的 1KB 地址边界类似。
    • page的地址空间单位为4KB对齐,为了防止一次burst传输访问了两个slave。
      • 具体相关解释可以看另一篇博客,或是那篇博客参考的文章,文章讲的更详细一些。
  • 一次突发传输不能在传输完成前提前终止,即使发生错误,也要完成全部传输。

1.2 突发传输相关信号

  • 传输长度
    • ARLEN/AWLEN:从0开始,实际长度值为AxLEN + 1.
  • 传输宽度
    • 每周期传输数据的字节数量,具体的传输宽度 = 2^AxSIZE.
  • 传输类型
    • FIXED
      • 所有数据都使用起始地址,可用于对某个固定地址进行多次数据更新。例如:FIFO的读写
    • INCR
      • 初始地址进行递增,例如:RAM的读写
    • WRAP
      • 例如:Cache Line访问,用于存放循环使用的数据。

1.3 读写数据结构

  • 窄位宽写数据传输(Narrow Transfer)
    • 传输的数据位宽比通道的数据位宽小。
    • 需要通过WSTRB[n]信号置高,设置WDATA从LSB到MSB方向,第n个字节有效。
    • 对于读数据传输,从机没有STRB信号,只能主机计算有效数据的位置,进行读取。
  • 非对齐传输(Unaligned Transfer)
    • 对齐:设总线位宽为32bit,32bit/1byte = 4,所以地址能够被4整除,即对齐。
    • AXI允许突发传输的起始地址不对齐。
    • 对于非对齐的传输,主机会填充数据,将突发传输中的第一个数据对齐,并使用WSTRB信号置填充数据为无效。
  • 混合的大小端模式
    • 大端:低地址写高位;小端:低地址写低位。
      • 对于大端小端转换具体数据排列网上给出了很多答案,这里放出《硬件架构艺术》这本书中这部分的描述,以字节为单位摆放:
    • AXI设定的要求是:
      • 数据结构按照大小端模式决定字节的存储顺序。
      • 传输时不考虑大小端。
      • 网上有提到AXI的这种方案可以防止大小端共存产生数据覆盖,没有看懂是什么意思。

1.4 读写回复结构

  • RESP 信号
Signal Value Description
OKAY 00 常规访问成功
EXOKAY 01 独占访问成功
SLVERR 10 从机响应错误
DECERR 11 解码错误,一般由interconnect模块产生,主机给出的传输地址无效

如有问题,请指正

posted @ 2023-06-08 14:18  可达达鸭  阅读(202)  评论(0编辑  收藏  举报