【APU】浅谈APU(application processing unit)

PS端:APU的概述

介绍和概述Zynq@ UltraScale+T MPSoC器件的处理系统(PS)内的应用处理单元(APU)



前言

目标:
1、APU区别于其他PS段的是什么?
2、列举APU的主要部件。


一、APU属性总述

最高性能处理单元

SoC和ACAP设备都在处理系统中包含一个应用处理单元(APU)。APU代表设备中性能最高的处理器集群。这里所示的图代表了Zynq UltraScale+TM MPSoC的PS的高级视图。Versa设备包含类似的内容,两个最明显的区别是一对Arm CortexTM-A72处理器,而不是Zyng UltraScale+ MPSoC中的双或四Arm Cortex-A53处理器,以及缺少DDR内存控制器和GPU。
APU不仅仅是一堆处理器;它还包含支持处理器的元素集合。其中一些元素,如NEON数学协处理器、1级缓存、mmu和计时器支持单个处理器核心,而2级缓存、附加计时器、snoop控制单元和其他硬件则帮助处理器核心协同工作。在MPSoC和RFSoC启动期间,任何这些处理器核心(尽管通常是A53-0单元)都可以指定运行FSBL。Versal设备使用专用处理器进行引导。
APU在Zynq UltraScale+TM MPSoC的PS的高级视图

放大APU块

APU中的处理器被设计为设备的主力,能够运行一个或多个操作系统,每个操作系统都有自己的应用程序集合。虽然处理器本身非常强大,但它们还得到硬件资源的进一步支持,这些硬件资源在速度和范围上扩展了它们的能力。其中一些扩展采用NEON矢量化和浮点数学协处理器、一级和二级缓存、内存管理单元等形式!这些处理器中的任何一个都可以被定位为运行第一阶段引导加载程序,就像zyn_ultrascale + MPSoC设备中RPU中的任何一个处理器一样。通用设备支持不同的启动模型。

全功能域

Zynq UltraScale+ MPSoC和Versal器件由多个独立的电源域组成。有几个存在于承载APU的全功率域的处理系统中。在APU中,诸如cpu之类的资源组被聚集到功率岛中,其中岛上的所有成员都可以作为单个功率元件进行控制。此外,岛屿内的每个主要元素都是独立可控的。例如,当FPD上电并且包含CPU的孤岛上电时,每个CPU可以运行、低功耗状态或完全关闭。如果有必要,可以关闭整个岛的电源关闭岛上的所有元件。电源管理本身就是一项研究,并在其他学习模块中进行了深入讨论。

Arm Cortex应用处理器

MPSoC和RFSoC器件包含两个或四个64位Arm Cortex-A53处理器,具体取决于部件。通用设备支持一个或两个Arm CortexA72处理器,同样取决于部件。该应用系列处理器采用ARMv8A架构,专注于低功耗和高水平的性能。与Zynq7000系列设备相比,这是一个显着的功耗降低和性能增强,Zynq7000系列设备包含一个或两个Arm Cortex-A9处理器。通用ACAP设备中的每个A72处理器的功能大约是MPSoC或RFSoC设备中的A53处理器的两倍。

二、APU配套部件

APU不仅仅是处理器!APU中有几个支持组件,可以增强APU中处理器的性能和功能。以下是一些比较引人注目的组件。

1.Times

有三种不同类型的计时器可用。第一个是APU系统看门狗定时器。该计时器可用于核心中的所有处理器,通常在实现中,在操作系统下运行的一个处理器或一个应用程序管理该计时器。
看门狗定时器是一种特殊的倒计时定时器,在达到零时产生中断。在计数过期之前,这些看门狗计时器会定期重置到它们的初始值。这通常由操作系统或应用程序管理。这样做的目的是防止计时器过期,因为计时器过期标志着系统重新启动。此机制用于确保在操作系统崩溃或应用程序锁定时,系统具有无需用户干预即可恢复的机制。
第二组定时器称为三定时器计数器。这些可用于集群中的所有处理器,并且经常用于脉冲调制生成。三定时器计数器由两组三定时器组成。一个bank通常与非安全处理程序相关联,另一个bank与安全处理程序相关联。最后,还有与每个CPU相关联的通用计时器,它们在集群中不共享。

2.Performance Monitoring Unit性能监控单元

性能监控单元是APU中的一个专用块,用于跟踪关键性能统计数据。两个内部计数器被设置为在用户选择的处理器事件上触发。通常情况下,用户不直接处理这个模块。而是利用开发工具来观察处理器性能的各个方面。需要注意的是,这个位于APU内部的性能监控单元不同于平台管理单元,后者是一个独立的处理器组,其主要目标是管理有功功率变化。

3.Power Management Controls

平台管理固件针对单个和小组可控功率元件,这些元件遍布整个APU。APU内部的电源管理通过门控时钟和各种功能模块的输入进行管理。
请记住,逻辑通过泄漏静态地吸取功率,当它通过动态消耗改变状态时。通过时钟门控。各个区域的动态功率都可以降为零。有几种不同的电源模式,包括运行,这是正常的操作模式,和待机模式,禁用大部分处理器的时钟逻辑。
在待机模式下,只有一小部分逻辑被计时并用于使处理器脱离待机模式。休眠模式使处理器断电,但使内部内存块处于活动状态。此状态通过重置退出。最后,还有关机模式,它从内存块中移除电源。

4.Arm CoreSight Technology

Arm CoreSight技术是对调试逻辑的支持。这种逻辑允许系统访问诸如观察点和断点之类的调试资源。与性能监视单元一样,除了编写低级调试工具外,用户不需要直接与该模块进行交互。相反,开发工具通常处理这个接口。

5.Interfaces

一个重要的功能领域是如何将数据移入和移出APU。虽然PS和PL之间有许多不同类型的接口,但从APU到PS的其余部分基本上有两个接口。这些是加速器相干端口,使PL主机能够直接连接到snoop控制单元和L2缓存,以及AXI域桥接到缓存相干接口模块。从CCI,数据可以移动到FPD主开关(然后连接到PS的主端口)和DDR内存控制器。

6.interrupts

APU包括一个通用的中断控制器,用于缓冲、优先级、掩码和分配中断。在处理虚拟化和操作系统时,这一点非常重要。

7.Math

集群中的每个处理器都有自己的专用数学协处理器。这个协处理器,称为NEON协处理器,包含两个处理块。其中一个块用于向量处理(也称为SIMD,用于单指令多数据),它允许同时执行多个计算。另一个块是浮点引擎。PS中使用的NEON版本包括加密扩展。

请注意,处理器的数量和类型根据系列和部件选择而有所不同。每个APU都是同质的,也就是说,无论特定类型的处理器的数量如何,APU中的所有处理器都是同一类型的,例如,MPSoC或RFSoC的APU中可能有2或4个a53,并且在通用设备中会有a72,但永远不会有a53和a72的混合。

APU

三、Arm Cortex-A处理器背景知识

先进的Cortex-A处理器并不是凭空出现的。它经过了多年的发展和许多版本。

Cortex-A处理器

Cortex-A处理器是当前Arm处理器配置文件的性能领导者。有三种配置文件或体系结构样式,每一种都适合于特定的嵌入式需求。“A”系列是应用程序,这是一种架构,旨在支持运行多个应用程序的操作系统。“R”系列代表“实时”,旨在提供低延迟和确定性响应。第三个系列是微控制器的“M”系列,它提供了一种低成本,但功能相当强大的通用微控制器。目前的产品支持APU中的一个、两个或四个Cortex-A处理器和RPU中的一对Cortex-R处理器。这种组合为用户提供了APU中应用程序优化的64位处理器的强大功能和RPU中32位实时处理器的确定性行为。

Arm Architecture

APU中的64位Cortex-A处理器使用Arm架构的第8版。这是一个64位处理器,完全向后二进制兼容32位拇指指令。

地址分配

APU的处理器支持高达1tb的物理地址空间。Arm v8-A架构允许通过软件配置物理地址。全局地址映射由多个接口主地址宽度不同的地址映射组成。物理上,有40比特的连接。广泛使用SMMU进行地址转换,以达到该映射的上限。

4 G范围

提供地址映射的这一部分是为了保持与32位软件的兼容性。这个4gig块被分配到最低地址范围,并包括所有外设。

64G范围

36位地址映射是32位地址映射的超集。超过32位4gb到36位范围顶部的地址分配给可编程逻辑,特别是来自全功率域的从AXI HPM连接,PCle®接口和DDR控制器。在这个区域中,为DDR控制器分配了额外的32gb。

1 T范围

最上面的4位扩展了从64gb到1tb的范围。该区域分配用于扩展可编程逻辑,特别是从全功率域和PCle高地址接口的从AXI HPM连接。
address Map


总结

1、APU包含MPSoC/RFSoC器件中最强大的处理器集群:(1)Arm cortex - a53 -应用为中心(2)支持NEON支持的操作系统/管理程序,缓存,互连等。
2、40位地址映射利用smmu访问全范围的内存。

猜你喜欢

转载自blog.csdn.net/qq_41403946/article/details/131991301