big.LITTLE&DynamIQ

简介: big.LITTLE&DynamIQ

最近看到了DynamIQ,于是来了解一下什么是DynamIQ?

前言

首先要知道DynamIQ,那么你肯定得知道big.LITTLE。因为DynamIQ可以说是big.LITTLE新一代或者是升级版。

那么在这之前你肯定得知道什么是big.LITTLE?

然后知道了后你就会想知道DynamIQ与big.LITTLE是什么关系?

以及DynamIQ说的这么好,到底有什么好处呢?

下面来依次看看。

big.LITTLE

1、学术派

ARM big.LITTLE 处理技术旨在为适当的作业分配适当的处理器。目前实现的 big.LITTLE 系统中,一个“big”ARM Cortex™-A15 处理器和一个“LITTLE”Cortex™-A7 处理器组成一个系统,以最节能的方式同时完成高强度和低强度任务。例如,可以利用 Cortex-A15 处理器的高性能来承担繁重的工作负载,同时利用 Cortex-A7 以最高效的方式处理智能手机的大部分工作负载。这些操作包括操作系统活动、用户界面和其他持续运行、始终连接的任务。

通过 CoreLink™ CCI-400 一致性互连将 Cortex-A15 和 Cortex-A7 处理器连贯地连接起来,使系统足以灵活支持各种 big.LITTLE 使用模式(使用模式可根据任务的处理要求而定制)。

big.LITTLE 的基本原则是处理器的体系结构要相同。Cortex-A15 和 Cortex-A7 都采用完整的 ARMv7A 体系结构,包括虚拟化和大物理地址扩展。(留意这里)

因此,尽管性能不同,但所有的指令在 Cortex-A15 和 Cortex-A7 上都会以体系结构一致的方式执行。Cortex-A15 和 Cortex-A7 功能集的实现也相似。两种处理器均可配置为单核到四核,并且都在处理群集内集成一个 2 级高速缓存。此外,每个处理器都实现单个 AMBA® 4 一致性接口,该接口可以连接到诸如 CoreLink CCI-400 之类的一致性互连

2、白话文

用两个人来分别代表big.LITTLE架构中的“角色”,身材魁梧高大的男士是big,身材娇小的是LITTLE。

Mr Big先生主要处理具有挑战性的重任,Little小姐则负责小任务。我们这样比喻,在大扫除的时候,男同学负责提水、抬桌子抬椅子,女同学负责扫地擦黑板。当手机不需要工作时,Big核心和LITTLE核心都可以停下来休息。

基于big.LITTLE技术的八核处理器,并没有将传统内核放在单一的处理器上,而是一分为二,其**中一个使用了4个“小核心”,另一个则使用了4个“大核心”,**这两个“核心”都有着自己独立的速度和性能。通过两大核心自主运行,搭载Big.little技术的处理器比之前的手机CPU更加高效,毕竟后者只有一个或者两个内核。

当需要用智能手机打开一个网页时,手机就可以用一个大的内核来处理该任务,而小的内核则同时处理其他小任务,比如查看电子邮件、拨打电话等。

ARM解释道,big.LITTLE是一种节能省耗技术,最高性能的ARM CPU核心与最高效的ARM CPU核心相结合,可以以更低的功耗提供最好的工作性能,最快的处理任务速度。

big.LITTLE软件与平台能够节省75%的CPU功耗,同时在线程负载方面提升40%的性能。

根据任务所需的性能,big.LITTLE软件和big.LITTLE MP自动和无缝的将工作负载转至适合的CPU核心进行任务处理。ARM big.LITTLE技术同时兼顾了最佳性能和最低功耗,减少手机的电量消耗。

智能手机与平板电脑对性能的要求越来越高,与此同时,电池的技术发展缓慢。人们希望手机或平板电脑有足够高的性能,处理任务的速度足够快,同时又希望设备电池续航更长一些。传统的处理器技术已经无法满足用户的这种需求,因此ARM不得不设计出创新的big.LITTLE大小架构。

big.LITTLE是ARM的诸多电力系统管理技术之一,它与动态电压和频率调节(DVFS)、时钟门控以及温度管理协调工作,全面控制着片上处理器的功耗。

现在你对big.LITTLE有了一定的感性认识。下面看看为什么有了DynamIQ。

DynamIQ

ARM CPU的架构都基于big.LITTLE大小核技术。而再big.LITTLE的基础上,又添加了DynamIQ。单一Cluster中可以又8个core,且支持不同架构的core,以及支持不同的clk。从而提升了工作效率和配置弹性。

DynamIQ本质上是ARM一个新的底层solution,用于连接在一个芯片上的不同core。有了DynamIQ,我们可以将不同类型的core放到一个cluster中。比如,将性能高的core,和功耗低的core放进一个cluster。如果没有DynamIQ,我们是将其放在2个不同cluster中的。(想想之前我让你留意的big.LITTLE,他们是只能把相同的core放进同一个cluster中。)

最常见 4个Cortex-A72 核与4个Cortex-A53核,或者4个Cortex-A53与另外的4个Cortex-A53核配对。

把核心放在同一个cluster中能保证核与核之间更好的通信。

DynamIQ的cluster也可以与其他不同的DynamIQ cluster配对。DynamIQ cluster还可以应用了ARMv8.2架构和DynamIQ Share Unit hardware,目前支持的平台有:Cortex-A76, Cortex-A75, Cortex-A55

比如:QCOM Krait385 Gold配合三星M3核集成至SDM845中;而三星Exynos9810则使用Cortex-A75作为base结构。海思麒麟98和SDM855使用Cortex-A76作为base结构。

大小核可以放在同一个簇里。每个核可以按照各自需求工作在不同的频率,也可以单独的控制每个核开关。

把所有核到放到同一个簇里,可以降低memory latency,并且简化了核与核之间的tasks sharing。LITTLE核是对memory latency非常敏感的。换句话说,就是在不增加功耗的前提下,提升性能。ARM也让核能更快的下电,进一步省电了。

基于DynamIQ技术的Cortex A系列CPU能带来在AI和机器学习上更强大的计算能力。基于DynamIQ的系统能在AI的性能上提供50倍boost。

所有弹性的设计架构都仰仗着DynamIQ Shared Unit(DSU)。它构建了CPU、L3 cache、Snoop Filter、外围设备总线buses、power management features之间Asynchronous (异步)通信的桥梁。DSU的设计同时也起到了节省功耗和时间的作用。

1、DynamIQ中首次允许设计带有L3 cache的ARM SOC。这块memeory pool被簇中的所有核共享,它最大的好处是在于能简化big核与LITTLE核之间的task sharing,同时减少memory latency。

2、 L3 cache是16路相联的缓存,可以配置0KB~4MB大小。memory setup是高度专用的,仅有一小部分被L1、L2、L3共享。L3 cache最多可以分成4块partition,这样可以避免cache chrashing、不同进程使用同一块内存等。并且partition可以通过软件进行动态分配。

ARM也实现了对不用的partition进行下电,以此来省电。当一个boot up 单个CPU时,也不会需要所有内存系统为了短暂的过程,都上电起来。L3 cache的power control是Energy Aware Scheduling。

L3 cache的引入也促进了L2 cache的速度。这是考虑到使用高latency的异步bridges的使用,ARM也优化了L2的memory latency。

为了提高performance和充分利用新的memory子系统,ARM也在DSU中使用了cache stashing。它允许相近的coupled accelerators和I/O agents 对部分CPU memory进行direct access(direct读写每一个核的shared L3/L2 caches)。

思路是这样的:peripherals和accelerator的需要CPU进行快速处理的信息,可以以最小的latency,直接inject到CPU的memory中;而不是通过高latency的RAM读写或者prefetch。

包括network系统的包处理,与DSP、虚拟加速器的通信,或者是VR应用所使用的视觉捕捉芯片的数据。这钟就是基于特定应用的new feature,但能给SOC和designers更灵活、更强大的潜在性能提升。

回到功耗部分,不同CPU集成到一个cluster,这需要重新考虑一套通过DynamIQ来管理功耗和频率的方法。可选的异步bridges的使用,就可以在单个core的基础上配置的CPU clk domains;而之前只能基于单个cluster控制。Designer也可以选择core的频率与DSU的速度同步。

换句话说,通过DynamIQ,每个CPU理论上都可以跑在自己所需的频率上。

而事实上,相同类型的core更多地是绑定到同一个domain group组,同步控制频率和电压,因此功耗是是按group组控制的,而非以单个core。ARM表示:big.LITTLE需要big cores和LITTLE cores分别动态的进行分频和分压。

这会对thermal limited的use case非常有帮助,比如手机,因为它能保证big和LITTILE cores能根据work loading持续地进行power scaled,即使仍然占用了同一个cluster。理论上,SOC designer能针对不同的CPU power points使用多个domains,类似MTK那样使用3个cluster的设计,当然这会增加设计复杂度和成本。

有了DynamIQ,ARM就可以在使用硬件控制时简化下电流程,意思是不在使用的cores可以更快地关闭。通过memory的进步及整合coherency management到硬件中,ARM已经移除通过了对下电的方式来disable和flush memory caches的耗时步骤。

DynamIQ体现了对移动端多核处理技术的一个重要的进步。对移动设备,它不仅对多核系统提供了一些潜在的性能提升,而且也使SOC developer能实现新的big.LITTLE的设计,以及多样的计算方案。


目录
相关文章
|
6月前
|
负载均衡 调度 Android开发
有关big.LITTLE,你需要知道的十件事情
有关big.LITTLE,你需要知道的十件事情
101 0
|
SQL 关系型数据库 MySQL
LeetCode 595. Big Countries
LeetCode 595. Big Countries
82 0
Bear and Big Brother
Bear and Big Brother
97 0
Bear and Big Brother
|
算法 编译器
渐进符号 big-O、big-Ω、big-Θ
算法分析 渐进符号 big-O、big-Ω、big-Θ
1091 0
渐进符号 big-O、big-Ω、big-Θ
|
存储 NoSQL 分布式数据库
带你玩转 Big Data
Big Data(大数据)技术简析 Big Data是近来的一个技术热点,但从名字就能判断它并不是什么新词。毕竟,大是一个相对概念。历史上,数据库、数据仓库、数据集市等信息管理领域的技术,很大程度上也是为了解决大规模数据的问题。
1775 0
Denodo For Big Data
In order to build Virtual Data Services, the user follows three simple steps: 1. Connect & Virtualize Any Source.
2286 0
|
存储 NoSQL 关系型数据库
|
SQL 流计算 HIVE
big data 文章汇总
flink和spark的异同: https://www.zhihu.com/question/30151872 presto 还是hive? http://geek.
1172 0