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的数据已经被标记为无效了,该地址的数据是被填充以满足传输地址对齐的需求。