高级微控制器总线架构(AMBA)总线协议是ARM的一组互连规范,它对各种IP之间的芯片通信机制进行标准化,以构建高性能SOC设计。这些设计通常有一个或多个微控制器或微处理器,以及其他几个组件——内部存储器或外部存储器桥、DSP、DMA、加速器和其他各种外围设备,如USB、UART、PCIE、I2C等——所有这些都集成在单个芯片上。

AMBA协议的主要动机是拥有一种标准和高效的方式,来互连这些模块。

学习AMBA协议的第一步是了解这些不同的协议到底在哪里使用,这些协议是如何演变的,以及它们如何融入SOC设计。以下图表(参考AMBA 2.0规范)说明了基于AMBA的传统SOC设计,该设计使用AHB(高级高性能)或ASB(高级系统总线)协议进行高带宽互连,使用APB(高级外围总线)协议进行低带宽外围互连。

AMBA Bus Architecture and Protocols

随着功能块(IP)集成到SOC设计中的数量越来越多,共享总线协议(AHB/ASB)开始遇到限制,2003年,新版本的AMBA 3引入了点对点连接协议——AXI(高级可扩展接口)。此外,在2010年,推出了增强版——AXI 4。下图说明了协议的演变以及行业中的SOC设计趋势。

AMBA Bus Architecture and Protocols

下图说明了如何使用AXI互连来构建具有各种功能块的SOC,这些功能块通过主从协议进行对话。互连可以是自定义crossbar或switch设计,甚至是支持多个AXI master和slave的NOC(芯片网络)IP。与之前的AHB/ASB总线相比,AXI互连有助于扩大agent数量的连接性。其中一个slave端口上的AXI到APB桥接通常用于将通信桥接到APB总线上共享的一组外围设备。

AMBA Bus Architecture and Protocols

AMBA Bus Architecture and Protocols

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

最后,在当前HPC和数据中心市场的异构计算时代,随着处理器内核以及GPU、DSP、FPGA、内存控制器和IO子系统等几个异构计算元素的数量不断增加,集成趋势仍在继续。2013年,AMBA 5引入了CHI(相干集线器互连)协议,作为AXI/ACE协议的重新设计。基于信号的AXI/ACE协议被基于新的数据包的CHI分层协议所取代,该协议可以在近期内很好地扩展。

ARM已经开源了所有协议,所有规格都可以通过注册从ARM网站免费下载。

  • APB:高级外围设备总线(APB)用于连接低带宽外围设备。这是一个简单的非pipeline协议,可用于通过共享总线从桥接/master到一些slave进行通信(读或写)。读取和写入共享同一组信号,不支持突发数据传输。最新的规格(APB 2.0)可在ARM网站上找到,是一个相对容易学习的协议。
  • AHB:高级高性能总线(AHB)用于连接共享总线上需要更高带宽的组件。这些可以是内部存储器或外部存储器接口、DMA、DSP等,但共享总线将限制agent的数量。与APB类似,这是一个用于多个master和slave的共享总线协议,但通过突发数据传输可以实现更高的带宽。最新的规格可以在ARM网站上找到,相对容易学习
  • AHB-lite协议是AHB的简化版本。简化仅支持单个master设计,这消除了对任何仲裁、重试、拆分事务等的需求。
  • AXI:高级可扩展接口(AXI)对高带宽和低延迟互连很有用。这是一个点对点互连,克服了共享总线协议在可连接的agent数量方面的局限性。该协议在支持多个突出的数据传输、突发数据传输、单独的读写路径以及支持不同的总线宽度方面也是AHB的增强。
  • AXI-lite协议是AXI的简化版本。
  • AXI stream协议是AXI协议的另一种风味,它仅支持将数据从master到slave。与完整的AXI或AXI-lite不同,stream协议中没有单独的读/写通道,因为意图是只向一个方向流。多个数据流可以在master和slave之间传输(即使有交织interleaving)。这在视频流应用程序等设计中变得有用。
  • 完整的AXI和AXI-lite规格可以在ARM网站上下载。
  • ACE——AXI Coherence扩展协议是AXI 4协议的扩展,在多个CPU内核与一致性缓存集成在单个芯片上的时代演变而来。ACE协议通过引入单独的snoop地址、snoop数据和snoop响应通道来扩展AXI读写数据通道。这些额外的通道提供了实现基于snoop的一致性协议的机制。如果您是一致性的新手,那么在学习ACE协议之前,了解一致性将是先决条件。
  • ACE-Lite——ACE还为那些没有自身缓存但仍是可共享一致性域的一部分的代理提供了简化版的协议。典型的代理,如DMA或网络接口代理,使用ACE-lite协议实现这种“单向”一致性。
  • CHI——(相干集线器接口)——ACE协议是作为AXI的扩展而开发的,以支持相干互连。ACE协议使用主/从之间的信号级通信,因此互连需要大量带有额外通道的电线来snoop和响应。这适用于具有双/四核移动SOC设计的小型相干集群。随着SOC上一致性集群以及其他异构计算元素和内存控制器数量的增加——AMBA 5修订版引入了CHI协议,作为ACE协议的完全重新设计。CHI协议使用基于分层数据包的通信协议,具有协议、链路层和物理层实现,还支持基于QoS的流量控制和重试机制。

希望这能提供一个概述,并有助于开始更深入地了解这些协议。进一步学习的最佳方法是阅读规范,以了解每个协议的详细信息。APB和AHB相对容易,很容易学习。AXI和ACE/CHI相对复杂,需要详细阅读,同时了解缓存一致性和一般通信协议的基础知识。

原文地址: 了解AMBA总线架构和协议