AHB总线—wrap burst的理解

一、Burst operation

  • AHB总线支持4、8和16拍的burst、未定义长度的burst以及单次传输。Burst传输包括 incrementing bursts和wrapping bursts。
  • HBURST[2:0]控制Burst类型
HBURST[2:0]类型描述
b000SINGLESingle burst
b001INCRIncrementing burst of undefined length
b010WRAP44-beat wrapping burst
b011INCR44-beat incrementing burst
b100WRAP88-beat wrapping burst
b101INCR88-beat incrementing burst
b110WRAP1616-beat wrapping burst
b111INCR1616-beat incrementing burst
  • HSIZE[2:0]控制每次传输数据的大小
HSIZE[2:0]大小(bits)描述
b0008byte
b00116halfword
b01032word
b01164doubleword
b1001284-word-line
b1012568-word-line
b110512-
b1111024-
  • Incrementing bursts:顺序访问地址,每个传输的地址是前一个地址的增量。
  • Wrapping bursts:在越过地址边界时进行wrap操作,地址边界为burst中节拍数与传输数据长度的乘积。节拍数由HBURST控制,传输数据的长度由HSIZE控制。例如,对于一个四拍的word(4字节),如果传输的起始地址是0x38,那么它包含四个到地址0x38、0x3C、0x30和0x34的传输。

二、Wrapping bursts模式的地址计算

以HSIZE = 010(word),HBURST = WRAP4,传输起始地址为0x38为例:
在这里插入图片描述
首先计算总传输数据大小,然后将当前位置除以总传输数据大小,若不能整除则以当前地址传输数据,否则将当前地址减去总传输数据大小,作为传输地址。

  1. 计算总传输数据大小为4byte*4=16byte。
  2. 起始地址0x38除以总传输数据大小(16byte),不能整除,以当前地址传输;
  3. 每次传输4byte,下一拍传输地址为0x3C,也不能被16byte整除,以当前地址传输;
  4. 再下一拍传输地址原本应为0x40,但其能被16byte整除,故传输地址变为0x30;
  5. 最后一拍传输地址0x34,不能被16byte整除,以当前地址传输,完成4拍共16byte的数据传输。
  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值