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/

相關文章
相關標籤/搜索