AMBA4 AXI-Stream

发布时间 2023-06-12 17:12:27作者: 可达达鸭

1. 关于AXI-Stream

  • 数据流的处理一般和DMA一起使用,对数据位宽的对齐处理和流传输方式更关注。
  • 相较于AXI,砍掉了地址的概念,没有AW/AR通道,而是点对点的数据流通信协议。比较适合于FIFO这类没有地址概念的存储介质。
  • 单向传输,读写通道只留下一个。
  • 取消读及写回复响应(BRESP/RRESP)。

2. 数据流

  • 就像前面介绍的,流传输更关心是否对齐,而且AXI-Stream中砍掉了控制信息通道(AXI控制信息在AW/AC通道中),流传输添加一些传输类型来包含这部分信息以及对数据进行补全对齐。
  • AXI Stream传输的数据流主要有
    • Data type:有意义的数据;
    • Position type:占位符,用于表征data type相对位置。
    • Null type:不包含有用信息。
  • 数据流结构根据数据流传输类型组合有很多种
    • 连续对齐流:可以只传数据,即都是data type,不包括position type和null type。数据本身就是对齐的,可以直接存入内存中。
    • 字节流:可以将data type和null type混着传。
    • 连续不对齐流:例如数据包只有16Byte,对齐需要20Byte,此时需要引入占位字节,放在传输的开头或结束,进行对齐。
    • 稀疏流:连续不对齐流的推广,允许在数据流的中间也存在占位字节。

3. 接口信号

  • TVALID,TREADY:握手信号。两者同时为高,进行数据的传输。
  • TDATA:数据位宽为Byte的整数倍。
  • TLAST:表示当前的数据是该包数据中最后一个数据。
  • TKEEP,TSTRB:可以用来区分前面介绍的数据流传输类型。
    • TKEEP:区分对应byte是否需要保留传输到接收方,如果为低,表明数据为Null byte,可以将该byte从数据流中删除。
    • TSTRB:区分对应byte为data byte还是position byte。不再像AXI中表示某字节是否有效。
    • 以字节为单位,TKEEP和TSTRB每1bit共同决定TDATA的每个字节的数据类型。
    • 对应关系如下
  • TID,TDEST
    • 前者指示数据来源;
    • 后者提供路由信息,指示数据目的地,在Interconnect中请求接收的从端。

4. Stream 术语

  • Transfer:类似突发传输中Beat。
  • Packet:类似突发传输中Burst的概念,一个Packet包含多个Transfer。
  • Frame:该协议中数据分组的最高级别,一个Frame可以包含多个Packet,例如一帧视频数据。