AHB传输---突发操作

突发操作

在本协议中定义了4拍、8拍和16拍的突发,以及未定义长度的突发和单次传输。它支持增量和包装突发:

  • 增量突发访问连续位置,每个传输的地址是前一个地址的增量。
  • 包装突发在跨越地址边界时会包装。地址边界的计算方法是突发中拍数与传输大小的乘积。拍数由HBURST控制,传输大小由HSIZE控制。

例如,一个四拍的包装突发对字(4字节)访问在16字节边界处包装。因此,如果突发的起始地址是0x34,那么它由四个传输组成,地址分别是0x34、0x38、0x3C和0x30。

HBURST[2:0]控制突发类型。表3-3列出了可能的突发类型。

HBURST[2:0]类型描述
000SINGLE单次传输突发
001INCR未定义长度的增量突发
010WRAP44拍包装突发
011INCR44拍增量突发
100WRAPS8拍包装突发
101INCRS8拍增量突发
110WRAP1616拍包装突发
111INCR1616拍增量突发

master不应尝试开始一个跨越1KB地址边界的增量突发。

master可以使用以下方式执行单次传输:

  • 单次传输突发。
  • 长度为1的未定义长度突发。

注意 突发大小表示突发中的拍数,而不是传输的字节数。通过将拍数乘以每个拍中的数据量(由HSIZE[2:0]指示)来计算突发中传输的总数据量。

所有突发传输必须对齐到等于传输大小的地址边界。例如,字传输必须对齐到字地址边界(HADDR[1:0] = 00),半字传输必须对齐到半字地址边界(HADDR[0] = 0)。IDLE传输的地址也必须对齐,否则在仿真期间,总线监视器可能会报告错误的警告。

1. 在busy传输后终止突发

一旦突发开始,如果master在继续下一个传输之前需要更多时间,它将使用busy传输。

在未定义长度的增量突发(INCR)期间,master可能会插入busy传输,然后决定不再需要更多的数据传输。在这种情况下,master可以执行一个非顺序(NONSEQ)或空闲(IDLE)传输,从而有效地终止未定义长度的突发。

协议不允许master使用busy传输来结束固定长度的突发,对于以下类型的固定长度突发:

  • 增量突发:INCR4、INCR8 和 INCR16。
  • 包装突发:WRAP4、WRAP8 和 WRAP16。

这些固定长度的突发类型必须以顺序(SEQ)传输结束。

master在单次传输突发(SINGLE burst)后不允许立即执行busy传输。单次传输突发必须跟随一个空闲(IDLE)传输或非顺序(NONSEQ)传输。

2. 提前终止突发

突发可以通过以下任一方式终止:

  • slave错误响应(Slave error response)。
  • 多层互连终止(Multi-layer interconnect elimination)。

2.1 slave错误响应(Slave error response)。

如果slave提供错误响应,master可以取消突发中剩余的传输。然而,这不是一个严格的要求,master也可以继续完成突发中的剩余传输。

如果master取消突发中剩余的传输,那么它必须在两周期的错误响应期间改变HTRANS以指示空闲(IDLE)。

如果master没有完成那个突发,那么在下次访问该slave时,没有要求它重新构建突发。例如,如果一个master只完成了一个8拍突发中的3拍,那么在下次访问该slave时,它不必完成剩余的5个传输。

2.2 多层互连终止

尽管master不允许提前终止突发请求,但slave必须设计得能够在突发未完成时正确工作。

当在多master系统中使用多层互连组件时,它可以终止一个突发,以便另一个master可以访问slave。slave必须从原始master终止突发,然后,如果发生这种情况,适当地响应新master。

2.3 burst examples

2.3.1 四拍包装突发,WRAP4

图3-8 展示了使用四拍包装突发进行写传输的过程,为第一个传输添加了等待状态。

因为这是一个四拍字传输的包装突发,地址在16字节边界处包装,传输到地址0x3C后,紧接着是传输到地址0x30。 

2.3.2 四拍增量突发,INCR4

图3-9 展示了使用四拍增量突发进行读取传输的过程,为第一个传输添加了等待状态。 在这种情况下,地址在16字节边界处不会包装,地址0x3C之后的传输是到地址0x40。

2.3.3 八拍包装突发,WRAP8

图3-10 展示了使用八拍包装突发进行读取传输的过程。 

因为这是一个八拍字传输的包装突发,地址在32字节边界处包装,传输到地址0x3C后,紧接着是传输到地址0x20。

2.3.4 八拍增量突发,INCR8

图3-11 展示了一个使用半字(Halfword)传输的八拍增量突发。

这个突发使用半字传输,因此地址以2的增量递增。由于突发是增量的,地址在超过16字节地址边界后继续递增。 

2.3.5 未定义长度的增量突发,INCR

图3-12 展示了未定义长度的增量突发。

 图3-12 展示了两个突发:

  • 第一个突发是一个写操作,由两个半字传输组成,地址从0x20开始。这些传输的地址递增。
  • 第二个突发是一个读操作,由三个字传输组成,地址从0x5C开始。这些传输的地址也递增。
  • 30
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值