AXI/AHB/APB总线协议

目录

目录

1.学习笔记

2.AXI/AHB/APB差别

a. APB如果不考虑ready信号的话 即非等待模式下读写都需要2个周期,如果考虑ready,读写都需要slave的ready拉高。只有一个master

b. AHB的读写地址总线是共用一根的,共3个通道,AHB的传输可以被打断,本来需要Burst4只传了burst1被打断,后续需要重新取得总线控制权,传输剩下的burst3,相比AXI的传输可以被反压,不会被中断。

c.AXI是5个通道

 


 


1.学习笔记

转自月见樽github文章

APB学习笔记

AHB学习笔记

AXI学习笔记

转自Paul安

接口与协议学习笔记-AMBA片上通信协议_APB_AHB_AXI_AXI4不同版本(二)

2.AXI/AHB/APB差别

a. APB如果不考虑ready信号的话 即非等待模式下读写都需要2个周期,如果考虑ready,读写都需要slave的ready拉高。只有一个master

b. AHB的读写地址总线是共用一根的,共3个通道,AHB的传输可以被打断,本来需要Burst4只传了burst1被打断,后续需要重新取得总线控制权,传输剩下的burst3,相比AXI的传输可以被反压,不会被中断。支持Burst传输

AHB的多设备connect构架和AXI也不相同

c.AXI是5个通道

下面分别给出AXI和AHB的 interconnect结构

AXI/AHB/APB总线协议_第1张图片

 

AXI/AHB/APB总线协议_第2张图片

 

转自arm社区APB, AHB, AXI 3, AXI 4 的区别是什么?

APB是双cycle设计,只有一半的cycle在传数据,设计简单,一般用来连接吞吐量需求较低配置端口,不过在ARM总线内部都会转成AXI来传输。AHB算是三通道协议,分别是读写数据和地址通道,读写共用一个地址通道,所以吞吐量也不是很理想,但是设计简单,cortex m0就是ahb的,还有很多legacy device采用ahb,ahb在ARM总线内部也是转成AXI传输和仲裁。AXI的是5通道设计的,读写地址分开,吞吐量大,第一个版本叫AXI3,后来更新到AXI4,支持最多256beat的long burst和QoS。AMBA 4之后ARM还发布了AMBA CHI,以便更多处理器通过环形总线互联,实现环形总线上的数据传输。

 

APB一般用来连接配置接口,AHB和AXI多用来接数据传输接口,从性能和设计复杂度来看 APB < AHB < AXI。

APB (Advanced Peripherals Bus)是低带宽的总线,主要用来连接外设,比如系统外设的寄存器接口。它的信号要少的多,但必须支持32位

AHB(Advanced High-performance Bus)是AMBA2里定义的总线协议。它支持单边时钟协议,单周期总线权限交接,64/128位总线带宽等特性。速度比AHB高

AXI(Advanced eXtensible Interface)是最初AMBA3定义的总线标准。目标服务高性能和高时钟频率的系统设计。它提供单独的地址/控制和数据周期,支持非对齐的数据传输,爆发(burst)型总线事务等特性。AXI3和AXI4就是AMBA3和AMBA4定义的高速总线标准。

APB和AHB用在ARM7, ARM9和Cortex-M的ARM处理器中。AXI3应用比较广泛,比如Cortex-A9,Cortex-R5/F。AXI4在最新的Cortex-A7和Cortex-A15使用。

你可能感兴趣的:(soc,总线及总线互联)