on-chip-bus(四)AXI总线:突发长度、突发大小以及非对齐传输的理解

1.突发长度、突发大小

突发长度(burst length):指在一次突发传输中进行的数据传输次数,用AxLEN字段标识。由于标识值是从0开始的,实际的突发长度应为标识值+1,即突发长度=AxLEN + 1.

突发大小(burst size):指突发传输中的每次数据传输的字节数,用AxSIZE字段标示。

突发大小=2^AxSIZE

2.非对齐传输(Unaligned Transfer)

        首先需要理解地址的对齐传输:在ARM的32bit的地址总线中,其最低两位[1:0]=0,所以从第三位开始,地址也就是4的倍数,如0x00,0x04,0x08等,都是对齐的。

        AHB总线只支持对齐传输,而AXI协议支持地址的非对齐传输。在AXI传输中,只需要在传输时给出首地址,其后的传输地址都是由首地址和突发大小、突发类型决定的。在第一笔数据的传输时,如果首地址不是对齐的,那么主设备会在第一笔传输中对数据进行填充,直到首次传输填充至地址对齐,然后,再用WSTRB信号将填充的数据标记为无效。这样,之后的传输地址也就都是对齐的了。

        举个例子,假设AwLEN = 3, AwSIZE=2,首地址为0x01,如图,则:

突发长度=AwLEN+1=4,

突发大小=2^2=4bytes=32bits

        图中传输的首地址为0x01,是非对齐的。AXI协议就会对0x00地址进行填充,并用WSTRB信号标记,这样传输的首地址就是0x00了。这么一来,随后三笔的传输自然就都是对齐的了。需注意的是,这笔突发传输的第一笔有效数据,在master端和slave端都是3bytes,因为第一byte的数据已经被标记为无效了,该地址的数据是被填充以满足传输地址对齐的需求。

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值