Dynamic IQ扫盲文

综述:android

  ARM CPU的架构都基于big.LITTLE大小核技术。而再big.LITTLE的基础上,又添加了DynamicIQ。单一Cluster中能够又8个core,且支持不一样架构的core,以及支持不一样的clk。从而提高了工做效率和配置弹性。缓存

如下利用网上的图片来讲明DynamicIQ的工做原理:架构

(上图解释为:DynamicIQ支持多颗不一样架构的处理器,也能让处理器各自在不一样的clk下工做)dom

 一、DynamicIQ是ARM一个新的底层solution,用于链接在一个芯片上的不一样core。机器学习

有了DynamicIQ,咱们能够将不一样类型的core放到一个cluster中。好比,将性能高的core,和功耗低的core放进一个cluster。若是没有DynamicIQ,咱们是将其放在2个不一样cluster中的。异步

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

 

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

二、DynamicIQ的cluster也能够与其余不一样的DynamicIQ cluster配对。DynamicIQ cluster还能够应用了ARMv8.2架构和DynamicIQ Share Unit hardware,目前支持的平台有:Cortex-A76, Cortex-A75, Cortex-A55学习

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

 

DynamicIQ 的Key Feature

一、Single cluster Design

就是大小核能够放在同一个簇里。每一个核能够按照各自需求工做在不一样的频率,也能够单独的控制每一个核开关。

虽然能够有8个不一样频率的核,可是实现起来,会带来更多的cost。

二、Power Saving Featues

把全部核到放到同一个簇里,能够下降memory latency,而且简化了核与核之间的tasks sharing。LITTLE核是对memory latency很是敏感的。换句话说,就是在不增长功耗的前提下,提高性能。ARM也让核能更快的下电,进一步省电了。

三、Advance compute capablities

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

Meet the DynamIQ Shared Unit

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

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

二、 L3 cache是16路相联的缓存,能够配置0KB~4MB大小。memory setup是高度专用的,仅有一小部分被L一、L二、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,这须要从新考虑一套经过DynamicIQ来管理功耗和频率的方法。可选的异步bridges的使用,就能够在单个core的基础上配置的CPU clk domains;而以前只能基于单个cluster控制。Designer也能够选择core的频率与DSU的速度同步。

换句话说,经过DynamicIQ,每一个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的设计,固然这回增长设计复杂度和成本。

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

最后

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

 

翻译自:https://www.androidauthority.com/arm-dynamiq-need-to-know-770349/

相关文章
相关标签/搜索