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的设计,以及多样的计算方案。


目录
相关文章
|
1月前
|
负载均衡 调度 Android开发
有关big.LITTLE,你需要知道的十件事情
有关big.LITTLE,你需要知道的十件事情
45 0
|
SQL 关系型数据库 MySQL
LeetCode 595. Big Countries
LeetCode 595. Big Countries
62 0
Bear and Big Brother
Bear and Big Brother
73 0
Bear and Big Brother
|
前端开发
HDOJ 1212 Big Number
HDOJ 1212 Big Number
87 0
HDOJ1018Big Number
HDOJ1018Big Number
93 0
|
算法 编译器
渐进符号 big-O、big-Ω、big-Θ
算法分析 渐进符号 big-O、big-Ω、big-Θ
931 0
渐进符号 big-O、big-Ω、big-Θ
Denodo For Big Data
In order to build Virtual Data Services, the user follows three simple steps: 1. Connect & Virtualize Any Source.
2232 0
|
存储 NoSQL 分布式数据库
带你玩转 Big Data
Big Data(大数据)技术简析 Big Data是近来的一个技术热点,但从名字就能判断它并不是什么新词。毕竟,大是一个相对概念。历史上,数据库、数据仓库、数据集市等信息管理领域的技术,很大程度上也是为了解决大规模数据的问题。
1720 0
|
分布式计算 Hadoop Spark
Drowning in Big Data? How to Start Getting Real Value Now, before It’s Too Late
Data is everywhere. Phenomena such as the Internet of Things (IoT) and widespread digitization have unleashed a tsunami of information on the world and enterprises are struggling to keep up.
2136 0

热门文章

最新文章