001 AMBA 总线概述

AMBA总线协议是一套由ARM提供的互连规范,该规范标准化了各种IP之间的芯片通信机制。这些设计通常有一个或多个微处理器以及集成其他一些组件——内部存储器或外部存储器桥、DSP、DMA、加速器和各种其他外围设备,如USB、UART、PCIE、I2C等。

AMBA协议的主要目的是用一种标准和高效的方法来重用这些跨多个设计的IP。

学习AMBA协议的第一步是了解这些不同的协议在哪里使用,是如何演进的,以及它们适合什么样SOC设计

一、AMBA总线发展史

AMBA是由ARM公司研发推出的一种高级微控制器总线架构(Advanced Microcontroller Bus Architecture)。

  • AMBA 1.0
    • ASB 和 APB
  • AMBA 2.0
    • AHB, ASB 和 APB
  • AMBA 3.0
    • AMBA Advanced eXtensible Interface (AXI)
  • AMBA 4.0
    • AXI4,AXI4-lite,AXI4-stream,ACE,ACE-lite
  • AMBA 5.0
    • AXI5,AXI5-lite,ACE5,ACE5-lite,ACE5-liteDVM

下图展示了传统基于AMBA2.0的SOC设计,它使用AHB(高级高性能)协议进行高带宽互连,以及针对低带宽外围互连的APB(高级外围总线)协议。

随随着越来越多的IP集成到SOC设计中,读写共享的AHB、APB总线已经无法满足互联需求了。2003年,AMBA3.0引入了点对点连接协议——AXI(高级可扩展接口)。此外在2010年,又推出了一个增强版——AXI4。下图说明了协议的演变以及行业中的SOC设计趋势。

下图说明了如何使用AXI互连来构建各种IP通信的的SOC。与以前的AHB/ASB总线相比,AXI互连有助于提高连接数量。

在移动和智能手机时代发生了进一步的演进,SOC集成了2/4/8核处理器和共享cache,并且需要跨内存子系统的硬件管理一致性。这导致了在AMBA修订版4中引入了ACE(AXI一致性协议扩展)。

在当前HPC和数据中心市场的异构计算时代,单个芯片上集成越来越多的处理器核心以及GPU、DSP、FPGA、内存控制器和IO子系统。2013年,AMBA5引入了CHI协议,作为AXI/ACE协议的重新设计。基于信号的AXI/ACE协议被新的基于包的CHI协议所取代。

二、AMBA总线组成

ARM已经开源了所有的协议,所有的规范都可以从ARM的网站上免费下载。

1、ASB:ASB总线是位于APB总线架构之上的用于高性能的总线协议,具有突发连续传输,单管道数据传输,多总线主控制器等特点。

ASB总线通过DMA和DSP,允许在总线上存在一个或多个主控制器。虽然APB总线上可以挂接慢速外设,但是也允许在ASB上挂接一些慢速外设作为从设备,不过它们通常还是挂接在APB总线上。

  • 高速总线
  • 流水线操作
  • 支持多个总线主设备
  • 支持burst传输
  • 总线带宽:8、16、32bit/s
  • 三态、双向总线(不适合做DFT)
  • 上升沿或下降沿触发

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

  • 低速总线、低功耗
  • 接口简单
  • 在Bridge中锁存地址信号和控制信号
  • 适用于多种外设
  • 上升沿触发

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

  • 高速总线,高性能
  • 2级流水线操作
  • 支持最多16个总线主设备
  • 支持burst传输
  • 总线带宽:8、16、32、64、128bit/s
  • 上升沿触发

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

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

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

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

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

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

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

其中AXI是在AMBA3.0的协议中增加的,熟悉xilinx FPGA的小伙伴们应该是比较熟悉的,可以用于ARM和FPGA的高速数据交互。剩下的三种是在AMBA2.0协议中定义的总线标准。AHB是高级高性能总线,通常用于CPU和高性能设备之间的交互,类比于现代PC的北桥,ASB常用于高性能系统模块间的交互,在开发中相比剩下的几种不是非常常用。而APB是高级外设总线,通常和AHB相连接,来访问一些低速的外设。

三、基于AMBA 的典型微控制器

下图展示了一个典型的基于AMBA的微控制器架构。

 

举个栗子,下图中程序储存在Nor flash中,ARM通过AHB控制高带宽外部存储器把程序通过橘黄色的线读到RAM中,随后ARM在通过AHB从RAM中读取程序,再通过AHB2APB桥来通过APB访问低速外设。

 

再举个经典的DMA的例子,如下图所示:

DMA是个很特殊的模块,他既有AHB master端口又有slave端口,一个DMA搬运从memory1中数据到memory2的过程如下流程:

  1. CPU通过DMA的slave端口去检查DMA是否IDLE,若IDLE则对DMA进行配置,主要是配置DMA寄存器中的source addr,destination addr和size;
  2. 随后DMA通过master端口去读取memory1中对应的source addr的数据;
  3. 最后DMA通过master端口去向memory2对应的destination addr去写数据;
  4. 最后一次传输完成会向CPU发送一个中断信号提醒CPU完成了一次传输;注意中断信号是不走总线的,中断信号直连到CPU中的内核中断源。

四、术语

下面的条目贯穿整个规范中都有用到。
总线周期 总线周期是总线时间的基本单元并且对于 AMBA AHB 或者 APB 协议的描述目的是定义为从上升沿到上升沿的转移。 ASB 的总线周期定义为从下降沿到下降沿的转移。总线信号时序参考于总线周期时钟。
总线传输 AMBA AHB 或者 ASB 总线传输是对数据目标的读写操作,可能会持续一个或者多个总线周期。总线传输在收到从机地址的完成响应后终止。AMBA ASB 总线支持的传输大小包括字节( 位)、半字( 16 位)、字( 32 位)。 AMBA AHB 又支持较宽的数据传输,包括 64 位和 128 位的数据传输。 AMBA APB 总线传输是对数据目标的读写操作,总是需要 2个总线周期。
突发操作 突发操作定义为一个或多个数据传输,由总线主机发起,在地址空间增加时传输宽度保持一致。每次传输增加的(地址)步长由传输大小决定(字节,半字,字),对于 APB 而言不支持突发操作。 

五、AMBA总线信号

1、AMBA信号名称

所有 AMBA 信号的命名都用名称的第一个字母来指示信号和哪个总线相关联。信号名称中用一个小写的 表示该信号低电平有效,否则信号的名称总是用大写字母来表示。
测试信号有一个前缀T而与总线类型无关。关于测试信号的更多信息请参考第六章AMBA测试方法。

2、AHB信号前缀

 

H 表示一个AHB信号。

3、ASB信号前缀

 

 4、APB信号前缀

六、参考资料

1、https://new.qq.com/omn/20210725/20210725A08YNA00.html

2、https://zhuanlan.zhihu.com/p/155629044

3、ABMA v2.0总线规范(中文版).

4、https://wenku.baidu.com/view/bbacbd36e109581b6bd97f19227916888586b999.html

5、https://www.cnblogs.com/biglucky/p/4135567.html

posted on 2021-09-17 10:56  沐林枫  阅读(1192)  评论(0编辑  收藏  举报

导航