地址对齐和非对齐是指什么?

“地址对齐”是对于数据传输(data transfer)的起始和结束内存地址位置来讲的。

如果数据传输(data transfer)的所有数据节拍(data beats)利用了总线的所有字节通道(byte lanes),则称其是“对齐的”。
一个“数据节拍”被定义为,在一个时间间隔或时钟周期内,通过总线的全宽度或更小宽度(full width or less)的数据传输(data transfer)。

在数据传输(data transfers)期间,对齐并且使用所有的字节通道,可产生最大的总线吞吐量和整体系统性能。
为了实现对齐,一个传输(transfer)的起始地址和总大小必须是总线大小的倍数。例如,对于4-byte总线,对齐传输的起始地址必须是 4 的倍数(即 0、4、8 等),并且它们的总大小必须是 4 的倍数。

如果数据传输的一个或多个数据节拍(data beats)没有使用总线的全部字节通道(byte lanes),则这个data transfer是“未对齐的(unaligned)”。当传输的起始地址(starting address)或总大小(total size),或两者都不是总线大小的倍数,这种情况就会发生。
例如,对于 4-byte的总线,如果起始地址是 2(不是 4 的倍数),那么传输的第一个数据节拍将只使用总线的两个bytes。
另一个例子,同样使用4-byte总线,传输 6 bytes(同样,不是 4 的倍数)。在这种情况下,即使起始地址是 4 的倍数(例如地址 0),那么第一个数据节拍将对齐(即使用总线的所有四个bytes),但第二个数据节拍将未对齐,因为它只会使用总线的两个bytes。
要注意,起始地址不是总线大小倍数的传输可能会导致第一个和最后一个数据节拍未对齐。例如,对于4-byte总线,起始地址为 2 的 8 bytes传输将导致:
第一个数据节拍2 bytes(地址2和3)未对齐传输
第二个数据节拍4 bytes(地址4到7)对齐传输
最终的数据节拍2 bytes(地址8和9)未对齐传输。

对于AXI,总线位宽和burst size一致。所以,如果(start address % burst size == 0) 地址是对齐的,否则地址是未对齐的。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值