axi3 和 axi4 总线的区别

axi3 和 axi4 总线的区别

1. burst_length 的变化

  1. axi3 burst_length 为4bit, 支持最大AxLEN为16
  2. axi4 burst_length 扩展为8bit,支持最大AxLEN为256
    • 只有INCR传输支持超过16长度的burst,wrap和fixed最大burst还是16
    • exclusive access的burst length长度小于16

2. axi4 增加了2个4bit的 qos命令信号

  • qos 简单介绍
    • awqos
    • arqos
    • 信号范围从0x0-0xf,值越大表示优先级越高
    • qos默认值为0x0,表示未参与任何qos方案
    • 应用场景
      • 访问冲突:多个设备同时请求访问,qos可以确保高优先级的事务先处理
      • 延迟优势:优先通过高优先级事务,减少关键数据流的延迟
      • 带宽管理:可以为不同的事务分配不同的带宽
    • 优势
      • 提高系统响应速度
      • 优化资源分配
      • 提高系统灵活性

3. axi4新增Multiple region interfaces

  • 可选信号,默认为0
  • 标识逻辑区域,支持多从设备共享接口和动态地址映射
  • 核心功能
    • 通过 REGION 信号 动态标识目标区域,允许 重叠的地址空间 被区分
      • ARADDR = 0x1000, ARREGION = 1 → 访问 区域1 的 0x1000
      • ARADDR = 0x1000, ARREGION = 2 → 访问 区域2 的 0x1000(实际物理地址可能不同)
    • 动态地址重映射
      • 虚拟化(同一逻辑地址映射到不同物理地址)
      • 安全域隔离(不同 REGION 对应不同的安全权限)

4. write interleaving

  • axi4 去掉了WID信号,不再支持write interleaving
  • 为什么?
    1. 写交织增加了设计的复杂性,尤其处理多个事务,需要额外的缓存逻辑来管理不同事务的顺序
    2. 去掉写交织可以减少缓存需求,降低了硬件的成本和功耗
    3. 实际的应用比较少,大多数情况下,主设备可以通过缓存数据并以连续的Burst发送
    4. 写交织在axi3中引入了许多约束,导致死锁问题
  • 尽管axi4 不支持写交织,但任然支持乱序响应,这意味着写地址和数据是顺序的,但是响应可以乱序返回,在简化设计的同时保留了一定的灵活性

5. writer response

  • axi4对 write response 的产生做了更加严格的限制
    1. axi3 必须等到wvalid和wready后才能把bvalid置高
    2. axi4 规定,必须等到awvalid,awready,wvalid,wready,wlast都为高,slave才可以拉高bvalid响应

6. user signals

  • axi4 新增了user 信号,该信号为用户自定义信号

7. locked transactions

  • axi4去掉了对locked transaction的支持,axlock从2bit 减少到1bit,仅支持exclusive访问
  • 变化原因:lock access效率比较低,exclusive提供了更加灵活的访问机制
  • exclusive access介绍
    • 用于实现原子操作,允许在特定内存位置上执行一系列操作,而这些操作不会被其它master干扰,它可以确保数据操作的原子性,同时也不会影响总线性
    • 过程
      1. exclusive read
        1. Master发送一个读exclusive操作
        2. Slvae需要记住该操作的,ARID 和ADDR
        3. 如果slave可以支持该访问,则响应EXOKY,表示独占成功
      2. Exclusive write
        1. 在随后的时间,该master对该地址进行exclusive 写操作
        2. AWID和RID必须一致
        3. 期间是否有其它设备访问过该地址?
        4. 成功返回EXOKY,否则返回OKAY表示独占写失败
    • 优势
      • 更高的效率
      • 更好的性能
      • 更加灵活
    • 应用场景
      • 在多核系统,独占访问可以确保对共享资源的原子操作
      • 原子更新操作,在对内存中的某个变量进行修改,读取,确保这些操作不会被其它设备干扰

axi3 和 axi4的连接

  1. axi4没有wid信号,直接floating
  2. axi4 slave的 axlock[0] = axlock[0]
  3. axi4 slave的 axlen[7:4] = 4’h0
  4. qos/user/region信号需要额外处理
  5. axi4 master必须不支持write interleaving

axi3 和 axi4信号区别总结

signalaxi3axi4备注
arlen/awlen4bit8bitaxi4支持256bit的burst
arqos/awqosNA4bit服务质量,用于优先级控制
arregion/awregionNA可选区域信号,用于访问控制
aruser/awuserNA可选用户定义
arlock/awlock2bit1bitaxi4去掉了locked access,仅保留Exclusive acess
wid4bitNAaxi4去掉了wid,不支持乱序写数据