AMBA总线笔记2-AHB协议

1.AHB介绍和组成

        AHB是针对高频率高频宽及快速系统模块设计的总线,构成包括主设备master、从设备slave、仲裁器arbiter、译码器decoder。每个AHB都需要一个仲裁器和一个译码器且只有一个。

2.AHB、AXI、APB对比

总线AHBAXIAPB
宽度32,64,128,2568,16,32,64,128,256,512,10248,16,32
地址宽度323232
特性不支持读写并行读写数据通道独立不支持读写并行
体系结构多主多从多住多从单主多从无仲裁
数据协议

支持流水

支持突发

支持乱序

不支持非对齐

支持流水

支持突发

支持乱序

支持非对齐

一次读写占用两个时钟

不支持突发

传输方式不支持读写并行支持读写并行不支持读写并行
时序同步同步同步

3.AHB接口

每个接口信号不过多介绍,可参考其他AHB文章,比如AMBA 系列之 AHB 协议_ahb resp-CSDN博客

接口图如下(重要):

 

arbiter和decoder:

        特别注意,流水线(pipeline)操作时,如果由hready拉低导致了数据拍传输需要等待,相应的下一个传输的地址周期也将被拉长。

4.不同AHB协议版本

        最早的AHB版本现在称为AHB2,后来又更新出了AHB-Lite和AHB5。AHB-Lite伴随AMBA3发布,相比于AHB2删掉了仲裁器,主要应用框架是单master多slave结构,属于简化版,类似于APB结构。AHB5 则将原来的hport位宽由[3:0]变成[6:0],变成扩展内存类型;同时增加了关于安全传输信号hnonsec,独立传输信号hexcl,并且取消了split传输对应的信号hsplit。

4.1AHB-Lite

        AHB-Lite协议有以下特性:突发传输、单时钟沿操作、无三态、数据总线配置,最大为1024bit、基于地址对齐的突发传输、流水线传输。相比AHB2,增加了HREADYOUT信号,并且HRESP由四种删减成了OKAY、ERROR两种。

        HREADYOUT是干嘛的呢?在实际传输中,AHB总线的slave一般有两个ready信号,一根输入,一根输出。有别于AHB2,此时的hready是slave的输入,表示上一笔数据的传输已经完成,可以准备下一笔传输;而hreadyout表示是当前这笔传输是否完成,向外输出用以拖延data phase周期。所以,Hready是slave用来判断master是否对其他slave操作已经完成。简单点理解,如果是单个master对多个slave,那么把slave的HREADYOUT通过一个MUX,产生HREADY相连,然后把HREADY接到master和各个slave上。

4.2AHB5

        相比于AHB-lite协议,AHB5协议新增了以下特性:锁定传输、多从机选择、原子性访问、用户信号。新增信号展示如下:

参考AHB2、AHB-Lite、AHB5的区别_ahb-lite和ahb的差别-CSDN博客

5.Q&A

Q:为什么要burst传输,跟single有什么区别?

        提高传输的效率。比如CPU要DRAM里面的数据,DRAM可以一次性读4个地址,放到buffer里面,然后再一个一个的发到总线上,这样不会占用DRAM。

Q:为什么出现ERROR时会有两个周期?

        给master一定反应时间,比如说更改掉一个地址。

Q:WRAP的用处是什么?

        用于CPU填充cacheline的时候,让地址可以从cacheline的起始地址继续传输。

  • 20
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值