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