随着半导体制造业的发展,在相同尺寸的芯片上安装更多逻辑门的能力稳步提高。这使得能够在同一芯片上包含越来越多的元件,导致了SoC或片上系统的诞生。
SoC通常被定义为包括构成计算机的所有必要元件的集成电路。这包括CPU,RAM,非易失性存储器,UART以及系统所需的任何其他外设。由于在同一芯片上有大量不同的组件,因此有效地连接和管理这些子系统很快就成为一项挑战。
高级微控制器总线架构(AMBA,AdvancedMicrocontrollerBusArchitecture)是解决此问题的一种尝试。
什么是AMBA?
高级微控制器总线架构(AMBA,AdvancedMicrocontrollerBusArchitecture)是一个开放标准,它概述了如何连接和管理SoC中的不同组件或功能块。AMBA规范由ARM开发,已成为SoC中接口组件的事实标准。虽然AMBA目前正处于第5版,并且随着时间的推移已经有了很大的发展,但传统的实现仍被广泛使用并且新版和老版之间仍然具有相关性,所以建议牢记这一点,因此本文将使用版本2.0作为起点,并在以后的文章中构建这些想法。
为何选择AMBA?
开发AMBA规范是为了解决SoC设计中的一些关键问题。其中之一是正确的首次开发,这意味着如果使用得当,AMBA可以从一开始就确保一致的设计,减少昂贵的重新设计。AMBA的另一个关键要求是技术独立性或使设计可重复使用并且与系统组件的细节无关。通过模块化系统设计,AMBA鼓励开发组件库,以便一次完成的工作不需要重复。AMBA的最后一个动机是最小化片上和片外通信所需的芯片量。
AMBA总线
在版本2.0中,描述了三种不同的总线,用于促进片上通信的实现。这些是高级高性能总线(AHB,AdvancedHigh-PerformanceBus),高级系统总线(ASB,AdvancedSystemBus)和高级外设总线(APB,AdvancedPeripheralBus)。AHB是系统的主干,专为高性能,高频率组件而设计。这包括处理器,片上存储器和存储器接口等的连接。
ASB是AHB的替代方案,不需要某些高性能功能。APB是一种简化的接口,专为不需要AHB或ASB的高性能的低带宽外设而设计。其中包括UART,低频GPIO和定时器等组件。
图1
图1.包含AHB/ASB和APB的AMBA总线(取自AMBARev.2.0)
先进的高性能总线(AHB)
在修订版2.0中,AHB是AMBA的新成员。它被添加以适应高性能设计。添加的一些新特征是分离事务,单周期总线主控切换,单时钟边缘 *** 作和更宽的数据总线配置,即64/128位。
AHB必须包含主设备和从设备之外的许多组件。这些组件是地址和控制多路复用器,读多路复用器,写多路复用器,解码器和仲裁器。图2显示了连接到AHB上四个从站的三个主站。所示信号是地址信号(HADDR),写数据总线(HWDATA)和读数据总线(HRDATA)。该地址用于从连接选择,写数据总线用于将数据从主机移动到从机,读数据总线用于在从机和主机之间移动数据。
图2
图2.带有主设备,从设备,多路复用器,仲裁器和解码器的AHB(AMBARev.2.0)
当主设备需要控制总线时,它必须首先向仲裁器发送请求。
仲裁器基于优先级方案授予访问权限,该优先级方案确保首先给予具有较高优先级的主控器。该优先级方案不是由AMBA定义的,并且在设计之间会有所不同。许多控制信号用于定义数据传输的方向,宽度和类型。AHB解码器从主设备接收地址信号并将其解码为从设备选择信号。从机通过HRESP信号响应主机,主机和从机之间的数据传输开始。
总共有大约20种不同的AHB信号,每种信号都有一个独特的目的。图3显示了AHB信号和ASB信号以供参考。
高级系统总线(ASB)
ASB是AHB的简化版本,可为16位和32位系统提供高性能。除了允许分离事务的某些控制信号之外,AHB上的许多相同信号用于ASB。
ASB的 *** 作以请求从仲裁器访问总线的主设备开始。仲裁者授予请求并开始转移。解码器解码总线上的地址并选择从站设备。从站设备响应主站设备并进行数据传输。
图3
图3.与ASB信号相比的AHB信号
高级外设总线(APB)
高级外设总线(APB,AdvancedPeripheralBus)是用于低频系统组件的简化接口。修订版2通过使所有信号转换与时钟的上升沿同步来进一步简化总线。
高级外设总线(APB,AdvancedPeripheralBus)由一个称为APB桥的单总线主站组成,它充当AHB/ASB上的从站。因此,桥接器是高性能总线和低频外围设备之间的接口。APB上的外围设备是从属设备。图4列出了APB信号名称。
图4
图4.APB信号
AMBA系统
下面的图5显示了一个示例AMBA系统,它运行时有两个AHB主站,一个AHB从站和两个APB从站。注意AHB仲裁器,AHB解码器和APB桥的位置。
图5
图5.AMBA系统示例。
APB桥接器具有AHB从接口,因此它看起来像是主站的另一个从站。该系统已被简化,一些信号和次要元件(如复位信号和多路复用器)被移除。输出信号离开块的右侧,输入信号进入块的左侧。输入信号也用箭头表示。较粗的线表示较大的数据路径。
该系统在大约七个时钟周期的过程中对一个APB从设备执行写 *** 作。AHB是一个流水线总线,具有专用的读写路径,因此读取可能会在此写入过程中发生。有关更精确的时序信息,请参阅AMBA标准版本2.0。
AXI-展望未来
最终,AHB达到了性能极限,到2003年ARM已经发布了新一代的AMBA协议。AMBA3.0版引入了AXI协议。AXI代表高级可扩展接口,提供比AHB更高的性能,通过点对点连接方案实现。AXI互连不是使用系统总线,而是仅使用几个明确定义的接口,允许主站和从站之间的事务处理。
在下一篇AMBA文章中,我们将介绍AXI3和AXI4以及它们如何用于接口SoC组件,敬请关注。
图6
图6.AXI互连
结论
在本文中,我们介绍了高级微控制器总线架构或AMBA。AMBA是一个开放标准,概述了SoC上的组件如何以快速有效的方式交换数据。
AMBA已成为事实上的标准,目前正在进行第5次修订。从修订版2.0开始,我们查看了AHB,ASB和APB以及它们如何从高级别开始工作。虽然很多这些总线协议已被AMBA的未来修订所取代,但它们仍然与传统设计相关,并且可以作为未来学习的基础。
责任编辑人:CC
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)