微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > MCU和DSP > AMBA APB4 与 AMBA3 AHB-Lite 1.0 协议介绍

AMBA APB4 与 AMBA3 AHB-Lite 1.0 协议介绍

时间:09-18 来源:互联网 点击:
总结

我们通过对 APB protocol 的理解, 得知 APB 是 unpipeline 的 bus. 无论如何, setup state 将占据一个 cycle, 而 access state 将占据另一个.

这种 unpipeline 的设计, 很可能就是 APB 被作为连接外围的, 而不是用于 processor 之间的 memory 连接的 BUS 的重要原因. 因其不要求外围在一个 cycle 中对 address 进行取样, 这也给外围更多的时间反应, 至少比较而言, 使用 APB 的外围可以具备更小的 bandwidth.

[AMBA AHB-Lite]

AHB-Lite
AHB: Advanced High-performance Bus
用于高表现力高clock频率的系统. 最经常的使用是连接 internal memeory device, external memory interface, 以及 high bandwidth 外围. 其基本组元是: Master, Slave, Decoder, Multiplexor.
在 address/control phase 与 data phase 中, 存在 fixed pipeline.
AHB: 仅仅支持 AMBA AXI protocol 的功能子集(subset).
AHB-Lite: 如果除去在 master 与 slave IP 开发中不需要的部分, 则 AHB protocol 的这个 subset 则定义为 AHB-Lite.

Operation
每一个 trasfer 都包括 Address phase 与 Data Phase.

Address 不允许被 extend, 即便是来自 Slave 的请求, 因此我们可以想象, 全部的 Slaves 都必须在 Address phase(1 cycle) 完成 sampling address.

但是与 APB 一样, Slave 也可以通过 HREADY signal 请求 extend data phase, 增加额外的时间去 sample data.
HRESP signal 被用来说明 transfer 的成功与否.

Address 总是可以在一个 single HCLK cycle 中完成, 除非是之前的 bus transfer 被 extend(我们理解, 这里应该是只有 data 才能做这个 extend).

Data 可以占有数个 HCLK cycle, 这取决于 HREADY signal 是否 extend transfer.

因此, Address phase 可以与 Data phase 的 overlapping, 就是 pipeline 的基础.

[图例4: 在不同地址上的3个transfer的例子]




Transfer types
Transfer types 包括: IDLE, BUSY, NONSEQ, SEQ
同猜想的一样, 对于 Slave, 可以通过 HREADY 实现 extend transfer, 我们觉得, 这或者就是"较为慢速"的 Slave 实现 delay 的方式.

而 Master 如果在 HTRANS[1:0] 中使用 BUSY, 也可以在 burst transfer 的过程中, 插入idle cycles. 这让人觉得, 这应算是 master 试图做 delay 的方式.

[图例5: BUSY Transfer type]



值得注意的是, 该例子, 使用了 4-beat 的 burst operation.

Locked transfers
通过 HMASTLOCK, master 可以要求完成"锁定"的 transfer, 不能被打断. 而这个用法, 往往在多个 master 的用法中存在.

[图例6: Locked transfers]



Default slave
如果不存在的的 memory map 被 master 点中, AHB-Lite 协议给出了一个解决方案, 就是必须存在一个增加的 default slave 来进行回应.

Slave transfer responses
AHB-Lite 协议中指出, Master 一旦开始一个 transfer后, 将无法主动取消这个 transfer.
因此, 通过来自 Slave 的 HRESP signal 的状态, 判断 transfer 的成功与否将是重要的.

HWDATA 与 HRDATA

同 APB 协议一样, data bus 的 read 与 write 是分离的.
所以不需要"三态"的 drivers. 我们此时有点大脑短路, 不太理解这里的意思, 这应该是说, 如果我们在单一的, 而不是分离的 data bus 上实现 read data 以及 write data, 那么我们就需要"三态驱动器"? 这里的 tristate 为何意? --有知道的同行, 这里定能有教于我.

[参考文献]
1. AMBA3 AHB-Lite Protocol v1.0 Specification
2. AMBA APB protocol v2.0 Specification

[结语]
让我们引用 Sailing 的文章 "ARM与x86之4--EAGLE is Coming!" (From: http://blog.sina.com.cn/s/blog_6472c4cc0100mnza.html) 中的论述 AMBA 的片段作为结语:

<剪切>
"最令Intel尴尬的是,x86处理器并没有一个与 AMBA 总线类似的 SoC 平台总线,这是Intel 进军嵌入式领域一个不小的障碍。Intel 或者定义一条全新的SoC平台总线,或者集成AMBA总线。从加速推出产品的角度上,直接使用 AMBA 总线无疑是一条捷径。而世上没有捷径,从更长远的时间上看,借用AMBA总线,会使ARM阵营更加强大。最初的所谓捷径不过是为他人做的嫁衣裳。"
"面对ARM内核,Intel并不畏惧,面对AMBA总线阵营,Intel只剩下无奈。可以预计在相当长的一段时间里,Intel无法推出一条能和AMBA总线抗衡的SoC平台总线。Intel只能暂时向AMBA总线示弱。"
<剪切>


Written by Allen Zhan

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top