验证那些事儿【AMBA 总线协议 Part 1】

本系列文章从秋招高频问题入手,深度剖析 AMBA 协议,如有错误之处,欢迎批评指正!

联系邮箱:zhangshaopu@ufl.edu

高频问题 1:AMBA 版本之间的区别?

AMBA 总线到目前为止演进到了 AMBA 5。最早只有 APB,后续逐渐增加了 AHBAXIACECHI 等高速协议。

  • AXI 是在 AMBA 3 提出的,有 AXI3AXI4 AXI5
  • AHB 是在 AMBA 2 提出的,有 AHBAHB-LiteAHB5
  • APB 是在 AMBA 1 提出的,有 APB1-5 五个版本。

【个人理解】在学习协议规范的时候,针对不同的版本,不应拘泥于局部信号的细节变化,应该重点关注三个宏观向:Master 和 Slave 之间的数据流Master 和 Slave 之间的控制流Master 和 Slave 之间的互联架构。这可以极大程度地避免初学者陷入 ARM SPEC 中某些特别边界的场景。

高频问题 2:不同版本的 AXI、AHB 和 APB 的区别?

谈到区别,就离不开【增加】和【删减】,在分析 AXI、AHB 和 APB 各自版本的区别时,也应该遵循这一思想。

注:下述三张信号对比图参考 咸鱼 IC 的博客

2.1 不同版本的 AXI 的区别

AXI3 ---> AXI4:经历了较大的变化

增加了 QOS 信号和 REGION 信号进一步细化对 AXI 事务的控制
扩展了 LEN 信号极大提升突发长度
LOCK 信号缩减为单 bit

只允许 exclusive 类型的原子操作

取消了 lock 类型的原子操作

取消了 WID 信号不允许写交织

AXI4 ---> AXI5:几乎没什么变化

增加了低功耗信号 AWAKEUP该信号用于低功耗设计

2.2 不同版本的 AHB 的区别

AHB ---> AHB-Lite:经历了巨大的变化

总线架构发生变化

AHB 支持多 Master,AHB-Lite 仅支持单 Master

删除 和 Arbiter 有关的所有信号

只保留 HMASTERLOCK

反馈信号发生变化HRESP 变为单比特
总线架构中,其上游 MUX 输出的 HREADY 需要反接 Slave 的 HREADYIN

HREADYIN 用于当前 Slave 判断:Master 对其他 Slave的操作是否已经完成。只有其他 Slave 处于完成状态下,当前 Slave才能响应 Master的操作。

AHB-Lite ---> AHB5:几乎没什么变化,仅新增了一些信号,适应 SoC 的常见需求

扩展 HPROT、增加了【安全传输】和【独占传输】等等

扩展 HPROT该信号提供 保护控制 的附加信息
增加 HNONSEC该信号提供 安全相关 的附加信息
增加 HMASTERHEXCLHEXOKAY

这些信号和 独占传输 相关

独占传输必定涉及到多 Master,但是 AHB5 相较于 AHB-Lite 并没有改变总线架构,本质上还是单 Master 的结构,为什么还会有独占传输呢?

这是因为 AHB5 使用了 AHB Interconnect 桥接器实现多 Master 的结构,其实 AHB-Lite 也可以这样实现多 Master 的结构。

2.3 不同版本的 APB 的区别

APB2 ---> APB3:

增加了 PREADY 信号和 PSLVERR 信号反馈信号更加精细

APB3 ---> APB4:

增加了 PSTRB 信号和 PPROT 信号支持稀疏写入,并附加保护控制的相关信息

APB4 ---> APB5:

增加了 PWAKEUP 信号该信号用于低功耗设计
增加了 Parity Protection 信号该信号用于奇偶校验保护

高频问题 3:AXI、AHB 和 APB 三者的区别?

最开始的 AMBA 系统只包含 APB 协议,这是一个 低速协议,从【总线结构】上看仅支持 单 Master 结构,从【传输类型】上看 没有突发没有流水,因此 APB 往往用于和低速外设通信。

后来 AHB 协议被提出了,它的适用场景对速度有一定要求,因此相较于 APB,AHB 加入了一些新的特性:从【总线结构】上看支持 多 Master,从【传输类型】上加入了 突发传输流水传输

后来,针对更高速的场景,AXI 协议被提出了。AHB 针对 APB 提升了时间上的性能,而 AXI 相较于 AHB 提高的更多是空间上的性能:从【总线结构】上,AXI 也是支持多主机的,但是它 完成了通道的分离,使得 读写可以并行,从【传输类型】上额外加入了 outstandingout-of-orderinterleaving

当然,从 APB 到 AXI 的演进过程中,数据总线的位宽 也在不断变大,从 32 逐渐扩大到了 1024

高频问题 4:AXI 和 AHB 的突发有什么区别?

我将从信号的角度分析 AXI 和 AHB 的区别:

AHB 和突发相关的信号有三个:HTRANSHBURSTHSIZE。其中,HTRANS 代表突发的起始和后续、HBURST 表示突发的类型和长度、HSIZE 表示每拍突发的数据大小

AXI 和突发相关的信号有四个:BURST、LEN、SIZE、LAST。其中,BURST 代表突发类型、LEN 表示突发拍数、SIZE 表示每拍突发的数据大小

可以看到,AXI 没有继承 AHB 的 HTRANS 信号,并且将 HBURST 拆分为了 BURST LEN。AXI 不使用类似 HTRANS 的信号是有原因的:AXI 的读写地址通道已经完成了分离,突发的起始地址会单独握手,并且会使用 LAST 信号指示突发结束,因此 AXI 不需要使用类似 HTRANS 的信号指示突发的起始和后续。AXI 由于分离出了 LEN 信号,因此突发长度相较于 AHB 提升显著。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值