AXI规范学习(二) byte invariant endianness

对尾端的定义,AXI采用了所谓的“byte invariant”方案。可以理解为一种“little endian”方案。因为这种方案对于小端的实现是比较方便的。

所谓“byte invariant”,即字节所在的位置于大小端定义无关。完全按照其地址所对应的偏移来决定其采用哪一个字节通道(byte lane)来传输。换句话说,在AXI中,认为所有的传输都是以byte为单位的,每次传输都是传了多少个byte。因此也就没有尾端的问题了。

而在AHB规范中,对大小端是敏感的。对一个32位的总线,系统认为每次传输都是在传送一个32位字,只不过通过地址可以知道哪些字节通道是有效的。

byte invariant的实现是依靠如下信号来完成的:

AWADDR/AWLEN/AWSIZE

ARADDR/ARLEN/ARSIZE

对一次数据请求,地址会根据SIZE决定对齐。在第一次传输后,对齐问题就解决了。随后的传输就会是按SIZE完成的。一共传输LEN次。因此对byte invariant的实现,要求总路线的接口逻辑根据这些信号来完成。相关计算在4.5节(Burst address)中,有详细描述。对于非对齐传输,在第十章(Unaligned Transfers)有详细描述。

WSTRB[n] 指示了在这次写传输中哪些字节通道是有效的,这是为了所谓的sparse transfer定义的。虽然这个信号会指示出哪些字节通道是有效的,但byte invariant似乎并不依赖于这个信号。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值