芯片互连技术(一)—AMBA总线

发布于 2022-12-26 14:48
浏览
0收藏

总线是芯片架构中非常核心的概念。例如,一个SoC芯片分为很多模块或子系统,如处理器、内存控制器、GPU、ISP等,通过总线把它们连接在一起,此即芯片架构。芯片内的总线互连常见的有:处理器核之间的互连、处理器核与内存的互连、处理器与缓存的互连、缓存与缓存之间的互连、处理器和I/O之间的互连、处理器与各种专有硬件加速模块之间的互连、DMA和内存的互连等。狭义的总线互连仅仅指通过简单总线接口连接多个组件,简单总线是一种临界资源,组件需要抢占到总线才能发起访问;而广义的总线互连泛指用于组件之间的互连结构。


芯片间的总线互连有:两个CPU之间的互连、CPU和异构GPU等加速器之间的互连、CPU和NIC等I/O设备之间的互连、加速器之间的互连、加速器和I/O设备之间的互连等。


下面介绍几种芯片互联结构。

AMBA总线

AMBA是ARM公司推出的芯片内互连系列总线,是一种开放标准的,片内互连的总线协议,用于管理系统芯片(SoC)设计中功能模块的互连规范。AMBA已广泛用于各种ASIC和SoC部件。AMBA协议的主要设计目标是实现一种标准有效的方法来互连芯片内部的模块,并且这些模块可以在多个设计中重复使用。AMBA协议已成为SoC及嵌入式处理器总线体系结构的事实上的标准,可以免费使用。


AMBA 4定义了如下三种类型的AXI总线。


·AXI4总线:高性能内存映射读写。


·AXI4-Lite总线:简单低吞吐量的内存映射通信,如用于操作控制和状态寄存器。


·AXI4-Stream总线:用于高速流数据传输。


AXI4总线是一种并行、高性能、高频率、同步的片内总线。AXI4总线具有如下非常强大的功能。


·独立的读写地址和数据通道。


·支持Burst事务(Transaction),一次可以传输多组数据。


·支持Outstanding事务(多组未完成事务共存)。


·支持乱序事务完成。


·支持原子操作。


·支持N∶M的多主多从互连结构。


AXI4总线的五个通道如图所示。AXI4总线把复杂的事务分解成简单无依赖的多个事务,并提供独立的读地址通道、读数据通道、写地址通道、写数据通道和写返回通道,这样不仅可以提升AXI4总线整体的传输带宽,还可以进一步提升运行频率及性能。

芯片互连技术(一)—AMBA总线-汽车开发者社区

AXI4总线的五个通道


AXI4-Lite协议是AXI4协议的子集,减少了功能并降低了复杂性。与AXI4协议相比,AXI4-Lite协议主要具有如下特点。


·没有Burst,每次事务仅传输一次数据。


·所有数据访问都使用完整的数据总线宽度。


AXI4-Lite虽然删除了部分AXI4信号,但其余部分仍遵循AXI4规范。作为AXI4协议的子集,AXI4-Lite协议事务与AXI4协议完全兼容,从而允许AXI4-Lite主设备和AXI4从设备之间的互操作性,而不需要其他转换逻辑。


AXI4-Stream协议定义了用于传输流数据的单个通道,AXI4-Stream通道对AXI4总线的写数据通道进行建模。与AXI4总线不同,AXI4-Stream总线可以处理无限数量的数据。需要注意的是,AXI4-Stream协议必须是顺序的,不支持乱序。


在内存映射(Memory Mapping)协议(AXI和AXI4-Lite)中,所有事务都涉及传输系统中内存空间的地址和数据的概念。而AXI4-Stream协议通常用于数据流场景,不存在或不需要地址的概念,每条AXI4-Stream总线都充当数据流的单个单向通道。


在多核场景中,每个处理器核都拥有自己的独立缓存,这意味着对共享数据的操作会导致数据的不一致。在具有缓存的多核场景中,需要使用一定的机制来解决数据一致性的问题。


如果处理器创建数据结构,再通过DMA引擎移动它,那么处理器和DMA引擎都必须看到相同的数据。如果该数据在处理器中缓存,而DMA引擎从外部DDR中读取,那么DMA引擎将读取到旧的数据。要想维护缓存一致性,有如下三种办法。


·禁用缓存是最简单的机制,但会严重影响处理器性能。


·采用软件管理一致性机制。在这种机制下必须从缓存中清理或清空脏数据,从而与系统中的其他处理器或控制器实现共享数据的一致性。这将占用处理器周期、总线带宽并增加功耗。


·通过硬件管理一致性提供可简化软件的替代方式。同一共享域中的所有处理器和总线主控制器看到完全相同的值。

芯片互连技术(一)—AMBA总线-汽车开发者社区

处理器缓存需要刷到DDR,DMA引擎才能看到最新的数据


AMBA 4 ACE协议在AXI协议基础上推出了“AXI一致性扩展”。完整的ACE接口允许同组(Cluster)内的处理器之间实现硬件一致性,并且允许SMP操作系统扩展到更多的处理器组。以两个处理器组为例,任何一个处理器组对内存的共享访问都可以“监听”另一个处理器组的缓存,以了解数据是否已在芯片上;如果数据没有在芯片上,则从外部DDR中获取。

芯片互连技术(一)—AMBA总线-汽车开发者社区

在ACE处理器之间的完全一致性


AMBA 4 ACE-Lite接口的设计面向I/O(或单向)一致性系统主控器,如DMA引擎、网络接口和GPU等,这些设备可能没有自己的缓存,但可以从ACE处理器读取共享数据;它们也可能有自己的缓存,但不缓存共享的数据。

芯片互连技术(一)—AMBA总线-汽车开发者社区

AEC-Lite的I/O一致性


文章转载自公众号:智车Robot

收藏
回复
举报
回复
相关推荐