本文参考
ARM文档“Introduction to AMBA AXI4 - Arm Developer”
手册可以在ARM官方文档中下载(ARM.com),也可以访问我的百度网盘资源 提取码:1234
目录
1. 总览
1.1 总线和协议
1.总线是计算机系统中用于传输数据的物理线路或信号线集合。
2.协议规定了总线上数据的传输方式、时序和格式等。
3.总线和协议的关系:在传统嵌入式系统中,总线和协议是紧密结合的;而在AMBA中,总线和协议可以分开理解。
1.2 AMBA总线协议
1.AMBA总线协议是一套标准规范,定义了总线上的数据传输方式。
2.AMBA包括多种总线协议,每种协议都有其特定的应用场景。
3.AMBA总线协议允许不同模块(master和slave)之间进行数据传输和通信。
1.3 AMBA总线互联一致性
1.AMBA总线互联一致性描述了不同总线模块之间的连接方式和通信规则。
2.五大类互联总线定义了具体的总线实现方式,包括物理接口和信号
2. AMBA架构基础知识
2.1 AMBA 是什么
“ARM AMBA(高级微控制器总线架构)协议是一种开放标准的片上互连规范,用于连接和管理片上系统(SoC)中的功能块。它有助于使用大量控制器和外设的多处理器设计进行首次开发。AMBA通过为SoC模块定义通用接口标准来促进设计重用。本质上,AMBA协议定义了功能块如何相互通信。
下图显示了SoC设计的一个示例。该SoC有几个功能块,它们使用AMBA协议(如AXI4和AXI3)相互通信。
在AX3和ax4中,只有两种AXI接口类型:主接口和从接口。这些接口类型是对称的。所有的axis连接都在主接口和从接口之间。
AXI互连接口包含相同的信号,使得不同IP的集成相对简单。下图图显示了AXI连接如何连接主接口和从接口。直接连接在主从组件之间提供最大带宽,不需要额外的逻辑。使用AXI,只需要验证一个协议。
2.2 AMBA使用在哪儿
AMBA简化了使用多个处理器和大量控制器和外设的设计开发。除了微控制器设备广泛使用AMBA,AMBA还广泛应用于一系列ASIC和SoC部件中。这些部件包括:物联网子系统、智能手机和网络soc等设备
2.3 为什么使用AMBA
来自ARM文档“Introduction to AMBA AXI4 - Arm Developer”
- Efficient lP reuse(高效的 IP 重用): AMBA规范了接口,成千上万的SOC和IP产品都在使用AMBA接口
- Flexibility(灵活性):比较灵活的规范和接口定义,AMBA提供了与一系列soc合作的灵活性。IP重用需要一个通用标准,同时支持具有不同功率、性能和面积要求的各种soc。Arm提供了一系列针对这些不同需求进行优化的接口规范。
- Compatibility(兼容性):一个标准的接口规范,允许来自不同设计团队或供应商的IP组件之间的兼容性。 AMBA 在整个半导体行业得到广泛实施和支持,包括来自第三方 IP 产品和工具的支持
- Bandwidth():在同步系统中,最大带宽受时钟速度和数据总线宽度限制
- Latency():事务启动和完成之间的延迟时间。在基于突发的系统中,延迟数字通常指的是第一次传输的完成,而不是整个突发。
2.4 AMBA 简史
ARM.com
AMBA的故事可以追溯到1995年,当时ARM的规模要小得多,并获得了一些欧盟的资助。在欧盟的支持下,高级微控制器总线架构(不是 ARM 总线架构)在前一年内部开发后于 1996 年作为开放式架构推出。它有助于开发具有大量控制器和外设的多处理器设计。自成立以来,AMBA的范围已经远远超出了微控制器设备。如今,AMBA 广泛用于一系列 ASIC 和 SoC 部件,包括通常用于智能手机等现代便携式移动设备的应用处理器。
AMBA很快成为ARM的注册商标。SoC 的一个重要方面不仅是它容纳了哪些组件或模块,还在于它们如何互连。AMBA是块之间如何相互连接的解决方案。它很快成为任何将控制器或外围 IP 块推向市场的人的“事实上”的标准接口。
- AMBA1:
在1997年,AMBA的第一个版本包括两条总线协议,高级系统总线ASB(Advanced System Bus)和高级外设总线APB(Advanced Peripheral Bus)。ASB已被较新的协议所取代,而APB今天仍被广泛使用。
APB主要应用于低带宽的外设,例如系统外设上的寄存器接口如UART、I2C等。该总线具有简单的地址和数据相位以及低复杂度的信号列表。 - AMBA 2
在1999年,AMBA的第二个版本AMBA2中,AMBA添加了AMBA高性能总线AHB协议,这是一个单时钟边缘协议。AHB上的一个简单事务由地址和随后的数据组成。通过MUX控制对目标设备的访问,每次只允许访问一个主机。AHB是为了提高性能而采用流水线。AHB支持burst传输和split事务处理,逐渐取代了ASB总线。广泛应用于ARM7、ARM9设计中,并持续应用于Cortex-M系列设计。 - AMBA3
在2003年,Arm推出了第三代AMBA 3,其中包括AXI,ATB和AHB-Lite。
高级可扩展接口AXI(Advanced eXtensible Interface)协议是AMBA3规范中定义的第三代AMBA接口,针对高性能、高时钟频率的系统设计。AXI适合高速互连。
高级跟踪总线(ATB)是CoreSight片上调试和跟踪解决方案的一部分。
AHB- lite是AHB的一个子集。这个子集简化了具有单个主机的总线的设计。 - AMBA4
在2010年,AMBA的第四个版本AMBA4中,开始推出AXI4,根据应用不同,可选AXI4、AXI4-lite、AXI4-stream。
在2011年为满足复杂SoC的操作一致性。推出了ACE(AXI Coherency Extensions)和ACE-lite协议。这种系统一致性允许不同的处理器集群共享内存,并支持 ARM 的 大小核。ACE-Lite协议支持单向一致性。单向一致性使网络接口能够从完全一致的ACE处理器的缓存中读取数据。适应了多核处理器和一致性缓存集成的需求,推动了SoC设计的进一步发展。它们广泛用于 ARM 的 Cortex-A9 和 Cortex-A15 处理器。
AXI4-Stream协议设计用于从主站到从站的单向数据传输,减少了信号路由,非常适合在fpga中实现。 - AMBA5
在2014年,AMBA 的第五个版本AMBA5中,引入了 CHI(Coherent Hub Interface)规范,是对AXI/ACE协议的重新设计。它的架构具有可扩展性,可在组件数量和流量增加时保持性能。AMBA 5 架构定义了用于连接完全一致处理器(如 Cortex-A57 和 Cortex-A53)的接口。CHI协议有几个版本,每个新版本都添加了新特性。
2016年,AHB-Lite协议更新为AHB5,以补充Armv8-M架构,并将TrustZone安全基础从处理器扩展到系统。
2019年,引入了AMBA自适应流量配置文件(ATP)。ATP补充了现有的AMBA协议,并用于以简洁、简单和可移植的方式对高级内存访问行为进行建模。