AXI学习笔记

AXI通道

• read address    读地址

• read data          读数据

• write address    写地址

• write data          写数据

• write response  写响应

为什么没有读响应信号呢?

        因为VALID/READY握手机制只允许一个方向的数据流,对于读事务,数据(data和resp)从slave流向master,而对于写事务,数据从master流向slave。读事务时,slave会断言RLAST信号,以表明最后一个数据项正在被传输。所以写事务必须有专门的写响应信号,来指示当前写事务完成,否则在下一次读事务时,可能读到原来的信息。

        每个独立通道由一组信息信号以及VALID和READY信号组成,这些信号提供了双向握手机制(仅当 VALID 和 READY 信号均为高电平时才会发生传输)

读数据通道和写数据通道都包括一个LAST信号来指示事务中最后数据项的传输

Interface and interconnect

接口和互连

AXI为interface提供的接口定义:

• between a master and the interconnect

• between a slave and the interconnect

• between a master and a slave

系统常用的Interconnect:

1.共享地址和数据总线

2.共享地址总线和多条数据总线

3.多层,具有多个地址和数据总线。

AXI总线信号

所有的信号都在时钟上升沿时进行采样

AWID WID ARID RID BID(写响应):

  1. 通过ID的值来指示特殊传输任务的顺序,
  2. 同一个master中,具有相同ARID(ARID)值的读(写)事务序列的数据传输必须按照主服务器发出地址的顺序返回
  3. WID、BID必须与AWID对应;RID必须与ARID对应。

RRESP --- read response 、BRESP --- write response:

他们都有四个值来指示读写状态:OKEY、EXOKEY、SLVERR、DECERR

OKAY响应表明:

  1. 正常访问成功
  2. 独占访问失败
  3. 对不支持独占访问的从属设备的独占访问。

Exclusive OKAY 表明:

  1. 独占访问的成功

Slave error 表明:

  1. FIFO/缓冲区溢出或欠载情况
  2. 尝试了不支持的传输大小
  3. 尝试对只读位置进行写访问
  4. 从站中的超时条件
  5. 尝试访问不存在寄存器的地址
  6. 试图访问已禁用或断电的功能。

Decode error 表明:

  1. 在没有完全解码的地址映射的系统中,可能存在没有从设备响应事务的地址。(当互连无法成功解码从属访问时,它会有效地将访问路由到默认从属,并且默认从属返回DECERR响应)

通道握手

source(请求方)生成VALID信号以指示数据或控制信息何时可用。

destination(接受方)生成READY信号以指示它接受数据或控制信息。

        仅当VALID和READY信号均为高电平时才会发生传输

        图一:协议规定在这种情况下,VALID 信号一旦置起就不能置低,直到完成握手(handshake occurs),至少传输一周期数据

        协议另外规定:发送方不能通过等待接收方 READY 信号来确定置起 VALID 信号的时机

        这句原文为:A source is not permitted to wait until READY is asserted before asserting VALID.

        意思是,READY 信号可能先到达,如上图二的情况。但是设计发送方逻辑时,不能将 READY 信号作为置高 VALID 逻辑的条件,比如将 READY 信号通过组合逻辑生成 VALID 信号。

        换句话说,发送方准备发送置起 VALID 信号是完全主动与独立的过程。接收方 READY 信号按照协议可以依赖发送方 VALID 信号,但如果此时发送方也依赖接收方信号,就会造成死锁的情况,所以协议在这里强调了 VALID 信号的主动性。

实现细节:

        READY 信号原则上由接收方自身的接收状况以及 VALID 信号控制。(或者仅由接收方自身的接收状况决定)协议中没有规定 READY 信号的默认状态,即未进行传输时的电平状态(default value)。

        协议建议AW/AR,READY 信号的默认电平为高电平。若默认电平为低,则每次传输至少需要 2 个周期才能完成,第一个周期置高 VALID 信号,第二个周期从机才会置高 READY 信号。相当于每次传输增加 1 个周期时间开销,这在某些情况下会对传输效率有较大的影响。

握手依赖关系

单箭头表示其指向的信号可以在箭头起始信号置起之前或之后置起;

双箭头表示其指向的信号必须在箭头起始信号置起之后置起


        slave必须在断言BVALID之前等待WLAST被断言,因为写响应BRESP必须在写事务的最后一次数据传输之后才发出信号

Burst传输

        burst传输是一种适用于AMBA协议的规则,通过这种规则,我们可以控制AMBA进行具体的数据传输活动,在这种规则下,主设备发送控制信息和首地址信息,从设备根据这些信号计算接下来的地址信息。

        换言之,在这种规则下,主设备只需要发送一拍信息,就可以通过计算,决定未来数拍,写入或读出的地址。下图中的读操作就生动形象的描述了这种Burst传输,一拍的地址和控制信号,操控了四拍的读出数据。通过这种形式,控制信号的效率大大提升。

Burst传输的流程:

  1. 主机在读/写地址通道写入起始地址(AxADDR)以及突发传输的长度(AxLEN)、宽度(AxSIZE)、类型(AxBURST)等信息;
  2. 从机将在起始地址开始,依次接收主机传输的写数据,或者读取连续地址上的数据,作为读数据传输给主机。

(burst传输不能超过4KB的地址边界,同时burst传输一旦开始,不允许中止)

Burst 信号

AxLEN ---- burst length

        burst length(突发传输长度)对应8位的ARLEN信号,和8位的AWLEN信号,这个信号代表额外的transfer数量即从设备在首地址外计算几次地址,或者说在首地址对应的数据外,需要额外进行多少次传输

        ARLEN[7:0]与AWLEN[7:0]能表示0-255之间的数值,加上首地址对应的一次传输,引申出了burst length的数值范围为1-256,即在burst规则下总共进行多少次数据传输。

        明白了这个概念,这里AXI3与AXI4协议的规定就出现了区别

  1. AXI3,取信号的低四位,只使用一半的ARLEN和AWLEN信号,burst length的范围在1到16之间。
  2. AXI4,使用了ARLEN和AWLEN的全部八位信号,burst length的范围在1-256之间。

除此以外,具体的突发传输种类,也决定着burst length的有效值

AxSIZE ---- burst size

        (burst size)突发传输大小对应3位的AWSIZE和ARSIZE,这个信号代表的是传输的数据位宽,单位为8bit的字节。Bytes=2^Burst_size

AxBURST ---- burst type

  1. 主机通过驱动传输控制信息和传输中第一个byte的地址来开始每个突发
  2. 从机计算突发中后续传输的地址。

突发传输有以下几种类型:

  1. FIXED (Fixed addressn burst),所有数据都使用起始地址。该模式适合对某个固定地址进行多次数据更新,比如读写一个fifo时,读写地址就是固定的。
  2. INCR (increase 常用),后续数据的地址在初始地址的基础上进行递增,递增幅度与传输宽度AxSIZE 相同。适合对于RAM等通过地址映射(mapped memory )的存储介质进行读写操作。
  3. WRAP(p48),它除了有初始地址外,还有一个最高地址的界限。在这种模式下,地址递增,但当达到最高地址后,地址会直接回到起始地址,然后重新开始递增。这种传输类型适用于对缓存行(cache line)的操作。

突发传输的地址计算(ARADDR/AWADDR)

看协议P48

Narrow transfers

窄位宽传输

        master产生比它的数据总线窄的传输时,地址和控制信息确定传输使用哪些字节通道。

        在这种传输过程中,Master需要告知slave数据通道中哪些字节是有效的,这就需要使用到W通道中的WSTRB信号。

        WSTRB信号(写选通信号,写数据总线的每8位有一个写选通信号)

        WSTRB[n] 对应 WDATA[8n+7:8n],也就是:当 WSTRB[n] 为 1 时,WDATA[8n+7:8n]有效。

Byte invariance

大小端问题

小端:高字节数据存在低地址位

大端:高字节数据存在高地址位

  1. 无论大端或小端模式,每个数据结构存储空间的分配方式是相同的
  2. 该数据结构按照其大端或小端模式决定字节存储的地址顺序
  3. 在传输过程中不考虑数据结构的大小端,按照字节原先存储的顺序,原样传输并存放至对端

Unaligned transfers

非对齐传输

(很少用)

        AXI 协议支持地址非对齐的传输,允许突发传输的首字节地址,即起始地址与突发传输位宽不对齐。

  1. 传输时只需要在传输时给出首地址,后续传输地址由首地址、突发大小和突发类型决定。
  2. 在第一个数据的传输过程中,如果第一个地址没有对齐,主设备会在第一个传输中填充数据,直到第一个传输填充到地址对齐,然后用WSTRB信号(写选通信号,写数据总线的每8位有一个写选通信号)将填充的数据标记为无效。这样,后续的传输地址就对齐了。

Outstanding translation

超前传输

        之前讨论的burst传输,可以看做“单次传输对应多个地址”,主要的目的是为了提高单次传输的效率,这三种对应的是提高多次传输的效率根据ID来指示传输特性

看资料:

https://zhuanlan.zhihu.com/p/368204066

Out of order

乱序传输

Interleaving

交错传输

  • 17
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值