前言

在AMBA AHB协议中,AHB master可以用burst传输连续取多笔数据。AHB定义了4、8和16拍的burst传输、未定义长度的burst传输和单次传输。Burst传输中支持incrementing和wrapping。

  • Incrementing burst用于访问顺序的memory地址,burst中每个拍的地址都是前一拍地址的增量,增量大小取决于HSIZE。
  • Wrapping burst在跨越地址边界时会卷绕回去。地址边界值是由burst中的拍数和每拍传输大小的乘积得来的。Burst传输的拍数是受HBURST控制,每拍传输大小是受HSIZE控制。举个例子:如果1笔burst传输的HBURST为INCR4(传输4拍),HSIZE为3’b010(传输大小为Word),那么它的地址边界值为16Byte(4*4=16)。因此,假如这笔burst传输的起始地址是0x14,那么它4拍的地址将是:0x14, 0x18, 0x1c, 0x10。

那么burst传输允许没发完全部的beat就终止(termination)吗?答案是满足一定的条件就可以提前终止,不过AXI是无法提前终止的。

Burst termination场景1

对于未定义长度(undefined length)的burst传输(HBURST为INCR),AHB master如果需要更多时间才能送出INCR Burst的下一拍数据传输,那么它会先插入BUSY拍,表示master处于忙状态。但如果AHB master最终发现自己不需要下一拍数据了,那么它可以直接结束当前的INCR burst传输,回到IDLE或者发起另一个burst传输了。要回到IDLE的话,下一拍的HTRANS将是IDLE,要发起另一个burst传输的话,下一拍的HTRANS将是NONSEQUENTIAL。

未定义长度burst传输从INCR回到IDLE的时序图示例为:

未定义长度burst传输从INCR回到NONSEQUENTIAL的时序图示例为:

另外需要注意的是,AHB协议不允许其它有固定长度的burst传输以BUSY拍结束的,它们必须以SEQ拍结束。固定长度的burst传输有:INCR4, INCR8, INCR16, WRAP4, WRAP8, WRAP16。

对于单次传输(HBURST为SINGLE),它的下一拍只能是IDLE或者NONSEQUENTIAL,也就是不可能是BUSY。

总结这个场景,AHB中想要从BUSY拍直接结束的传输只可能是未定义长度的burst传输,不可能是其它传输的。

Burst termination场景2

在Burst传输过程中,如果AHB slave返回错误的响应,那么Burst传输也是可以终止的。

如果AHB slave返回ERROR响应,那么AHB master是可以取消burst传输中还未发出的拍,不过这也不是一个严格要求,AHB master仍然可以继续把剩下的拍都发送完。举个例子:在WRAP8的burst传输中,如果AHB master在收到slave的ERROR响应时,才完成了2拍,那么协议允许剩下的6拍不必发给AHB slave了。这样对AHB的性能提升和节省功耗还是有些帮助的,因为前面出现EROOR响应,AHB master通常要先去处理下,那么之后未发送的拍是可以省掉的。

Burst termination场景3

在多层互联总线和多AHB master情况下,也可能存在burst提前终止。

尽管AHB master不允许无缘无故提前终止burst传输,但是AHB slave必须设计成允许burst提前终止。当多层互联总线用于多个AHB master系统的场景中,当前互联总线正在burst访问1个slave,如果其它master来了个新请求,互联总线中的仲裁逻辑会决定新请求是否优先于当前的burts访问。如果不是,那么就等当前burst传输完之后,排序传输新来的请求。如果是,那么它可以提前终止当前的burst传输,以便给优先级更高的请求腾出总线去访问AHB slave。因此AHB slave必须终止原来burst传输,然后去处理新AHB master发出的请求。

AMBA AHB的burst termination相关推荐

  1. AMBA AHB总线协议详细说明(AHB5协议)

    一. AHB总线介绍 AHB总线用于性能要求较高的系统互连,比如内部memory.高带宽的外设.GMAC.eMMC/SD等,其仍然为分时独占式总线,也就是说一个时间点总线只会完成一个传输事件.下图是一 ...

  2. AMBA AHB面试题连载(七)

    22.AHB中的wrapping burst可以和总的传输字节数对齐么? 可以,此行为符合AHB协议. 以四拍传输大小为4字节的wrapping burst传输为例(共传输16字节).如果传输的起始地 ...

  3. AMBA AHB面试题连载(四)

    10.一定需要有一个default slave么? 如果定义了整个4G地址空间,则不需要默认的slave.如果内存映射中存在未定义的区域,那么必须确保对不存在的地址的访问不会锁定系统.在decoder ...

  4. AMBA AHB中的retry和split的区别是什么?

    在AMBA AHB传输过程中,slave使用信号HRESP[1:0]返回当前传输的状态: OKAY:表示当前传输正常,当HREADY变高时传输已成功完成. ERROR:表示发生了传输错误,且传输失败. ...

  5. [AMBA]AHB总线协议简介

    AHB总线协议简介 一.简介 AHB 总线规范是AMBA总线规范的一部分,AMBA总线规范是ARM公司提出的总线规范,被大多数SoC设计采用,它规定了AHB (Advanced High-perfor ...

  6. AMBA AHB面试题连载(一)

    1.当AHB写入数据之后从同一地址读取并且读取传输的地址阶段和写传输的数据阶段在同一周期时,读取返回的数据是旧数据还是新数据? 这个问题的答案取决于slave的设计.一个简单的slave将不会缓冲(c ...

  7. AMBA AHB介绍

    AMBA AHB介绍 AHB是为提出高性能可综合设计的要求而产生的新一代AMBA总线.它是一种支持多总线主机和提供高带宽操作的高性能总线. AMBA AHB实现了高性能,高时钟频率系统的以下特征要求: ...

  8. AMBA AHB面试题连载(二)

    3.什么时候可以提前终止burst传输? 在一个Burst 传输中的任何一拍,slave返回非OKAY响应之后Bursts 传输可以提前终止,或者仲裁器将HGRANT给其他master.但是请注意,除 ...

  9. AMBA AHB面试题连载(五)

    15.不同bursts 的用处是什么? 通常,wrapping bursts被用来进行 cacheline数据填充.此时,master首先获取它所请求的数据,然后预取cacheline中剩余的数据. ...

最新文章

  1. django两个服务器之间的通讯
  2. 虚幻4引擎角色蓝图Character的Movement组件学习
  3. 【数字图像】数字图像处理博客汇总
  4. 代理错误[WinError 10061]
  5. ORBSLAM2在Ubuntu14.04上详细配置流程
  6. 数字非压缩光端机的选购原则
  7. NS2仿真分析无线网络的攻击防御(1)
  8. JanusGraph(HugeGraph通用): 可视化 GraphEXP 插件安装
  9. Java中的对象、private关键字、this关键字、构造方法
  10. java 画金刚石_帮忙改错!java 画金刚石
  11. C#获取网上图片的宽高代码
  12. Windows Excel 中的符号字体 webdings (C:\Windows\Fonts\webdings.ttf)
  13. python软件下载百度云-python电子书学习资料打包分享百度云资源下载
  14. velocity模板使用建议
  15. 计算机万能知识,电脑知识讲解ppt课件.ppt
  16. 机器学习教程之语义分割入门教程
  17. Unity学习01-unity物体移动三种方式
  18. 手绘板计算机技术,手绘板怎么用 手绘板和数位板的差别区别【详解】
  19. favicon.ico在线制作,在线Favicon.ico制作转换工具
  20. 计算机组成原理课程设计 从1加到10,带进位左移三位,计算机组成原理课程设计--乘除法运算.docx...

热门文章

  1. 思科宣布推出面向中小企业的统一通信平台和全新销售效率计划
  2. IE11默认启用IE8文档模式提高兼容性
  3. ubuntu更换源的方法
  4. 用oFono来GPRS上网
  5. Node.js(一、Node.js基础、模块加载机制、包等)
  6. Spring Cloud应用的优雅下线与灰度发布
  7. HTMLEncode
  8. 离职总结(2020-9-15)
  9. IDEA配置Gitee
  10. Python运行闪退问题