AHB、AXI、APB分类

        AMBA(Advanced Microcontroller Bus Architecture,高级微控制器总线结构)定义了嵌入式微处理器的通信标准,可以将RISC系列处理器集成在FPGA,ASIC的集成环境当中用于构建SOC系统,是ARM公司提出的开放性的片上总线标准,它是用来连接芯片内核和集成环境当中其他元件的连接线,并非芯片或者SOC与外部连接的接口,其具有高速度低功耗等特点。

        根据AMBA总线的发展主要分为以下总线协议:

AHBASBAPBAXI

        AHB高级高性能总线,通常用于CPU和高性能设备之间的交互,其可以连接微处理器,芯片上或芯片外的内存模块和DMA等高效率模块;

        ASB常用于高性能系统模块间的交互,在实际使用中和其他的总线协议相比,并不是太常用;

        APB高级外设总线,通常用于外挂低速外设,比如UART,SPI,TIMER,KEY,BOTTLE等低速外设;

        AXI高级可拓展总线是一种面向高性能、高带宽、低延迟的片内总线,现在常用来在FPGA中当作高性能总线,支持突发传输,具有双向握手协议,读写地址分离,能够支持初始延迟较高的外设,连线较多;

        

总线AXIAHBAPB
总线宽度8、16、32、64、128、256、512、102432、64、128、2568、16、32
地址宽度323232
通道特性读写地址通道,读写数据通道均独立读写地址通道共用,读写数据通道分离读写地址通道公用,读写数据通道分离
体系结构多主/从设备,含仲裁机制多主/从设备,含仲裁机制单主设备/多从设备,无仲裁机制
数据协议

支持流水/分裂传输

支持猝发传输

支持乱序访问

字节/半字/字

大小端对齐

非对其操作

支持流水/分裂传输

支持猝发传输

支持乱序访问

字节/半字/字

大小端对齐

不支持非对其操作

一次读/写传输占两个时钟周期

不支持突发传输

传输方式支持读写并行操作不支持读写并行操作不支持读写并行操作
时序同步 同步同步
互联多路多路无定义

AHB总线的组成:

Master:能够发起读写操作,提供地址和控制信号,同一时间只有一个master被激活。

Slave:给定的范围内对读写操作作相应,并对Master返回成功,失败或者等待状态。

Arbiter:仲裁,在多个Master要响应时进行仲裁,保证只有一个Master在工作,仲裁协议是规定的,但是仲裁算法可以根据应用决定。

Decoder:负责对地址进行译码,提供片选信号到各Slave。

所有的AHB都需要一个仲裁其一个中央解码器。

AHB的传输分为两个阶段:地址周期,只有一个cycle,数据周期,由HREADY信号决定需要几个cycle,采用流水线传送:先是地址周期,然后是数据周期;

AHB和AXI都支持Burst突发传输,但两者存在差异,在AHB总线的突发传输协议中,AHB需要一次突发传输的所有地址,地址和数据需要对应,后一次传输需要在前一次传输完成后才能进行。

但AXI线只需要一次突发的首地址,一个首地址后面跟着多个数据,后面多个数据的地址自动在首地址后面递增,而且在传输过程中,可以连续发好几个首地址,然后所有数据交错传递,利用该特征可以大大提供总线利用率。

AHB总线和AXI总线都适用与高性能,高带宽的SOC系统,但AXI线更加灵活,AXI支持乱序传输,提高SOC系统的灵活性,读写通道可以并行传输,多个数据可以交错传递,所以在目前的SOC系统中大多以AXI线为主。

APB总线主要应用在低带宽的外设上,比如UART,SPI,I2C,KEY,BOTTLE等,APB的架构没有多主设备一说,总线的唯一主设备就是APB桥,有AHB2APB的桥,也有AXI2APB的桥,也有AXI2AHB的桥,具体使用时可以根据所需具体使用,APB总线架构不需要仲裁器和,在读写上不遵从流水的形式,读和写只需要2个周期,其控制逻辑较为简单用一个状态机即可说明;

系统初始化位IDLE状态,没有任何传输操作,也没有选中任何从模块。

传输进行时,PSELx=1,PENABLE=0,系统进入SETUP,并只会停留一个周期,PCLK上升沿到来系统进入ENABLE状态。

系统进入ENABLE状态,维持SETUP,PSEL,PWRITE不变,并将PENABLE置1,传输只会在ENABLE状态维持一个周期,经过SETUP与ENABLE状态之后就已经完成传输,如果没有传输要进行,就进入IDLE状态等待,如果有连续的传输,则会进入SETUP状态。

1、APB:高级外围设备总线(APB)用于连接低带宽的外围设备。它是一个简单的非流水线协议。读写操作共享同一组信号,不支持burst数据传输。最新的规范(APB2.0)可以在ARM网站上找到,是最容易学习的AMBA 协议。

2、AHB:高级高性能总线(AHB)用于连接共享总线上需要更高带宽的组件。这些slave组件可以是内部内存或外部内存接口、DMA、DSP等。AHB可以通过burst数据传输来获得更高的带宽。

3、AHB-lite协议是AHB的一个简化版本。简化后只支持一个主设计,这消除了对任何仲裁、重试、分割事务等的需求。

4、高级可扩展接口(AXI)适合于高带宽和低延迟互连。这是一个点对点的互连,并克服了AHB、APB等共享总线协议在可连接的代理数量方面的限制性。该协议支持多个outstanding 的数据传输、burst数据传输、单独的读写通道和支持不同的总线宽度。

5、AXI-lite协议是AXI的简化版本,简化后不支持突发数据传输。

6、AXI-stream 协议是AXI协议的另一种风格,它只支持数据流从master 流到slave。与完整的AXI或AXI-lite不同,AXI-stream 协议中没有单独的读/写通道,因为其目的是只在一个方向上流。

7、ACE-AXI协议是AXI4协议的扩展,应用于在一个芯片上集成多个CPU核心与一致性cache的场景。ACE协议扩展了AXI读写数据通道,同时引入了单独的snoop 地址、snoop 数据和snoop 响应通道。这些额外的通道提供了实现基于snoop 的一致性协议的机制。

8、ACE-Lite—对于没有自己cache的agents ,但仍属于可共享一致性域的一部分,如DMA或网络接口agent,使用ACE-lite协议实现这种“单向”一致性。

9、CHI—ACE协议作为AXI的扩展而开发,以支持一致性互连。ACE协议使用了master/slave之间的信号电平通信,因此互连需要大量的线和增加的通道来进行snoops 和响应。这对于具有2/4核移动SOC 的小一致性clusters非常有效。随着SOC上集成越来越多的一致性clusters ——AMBA5修订版引入了CHI协议。CHI协议使用基于分层分组的通信协议,具有协议、链路层和物理层实现,还支持基于QoS的流控制和重试机制。

概述是我们深入地了解这些协议的开始,进一步了解的最好方法是阅读规范,以了解每个协议的细节。APB和AHB相对简单,而且很容易学习。AXI和ACE/CHI相对复杂,需要详细阅读,以及了解缓存一致性和一般通信协议的基本知识。
 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值