我是靠谱客的博主 柔弱眼睛,最近开发中收集的这篇文章主要介绍linux 多核 arm,ARM big.LITTLE巨细核架构在Linux和Android内核下多核调度算法,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

在2013年,big.LITTLE宗族又添加了新的SoC完成,有2个Cortex-A15+3个Cortex-A7核的ARM的参阅测验芯片TC2,以及在三星Galaxy S4手机中运用的Samsung-LSI的4个Cortex-A15核+4个Cortex-A7核的Octa-core芯片。Linaro在ARM的big.LITTLE SoCs上针对Linux和Android内核做了许多的功能优化(包含负载操控、针对big.LITTLE架构的功能和电源办理),以进步多核multi-core程序的能效,添加待机时刻。最新的多核多使命的调度办法包含内核里交换器(或许说CPU搬迁算法CPU Migration/IKS In Kernel Switcher)、大局使命调度(Global Task Scheduling,或许巨细核MP/ big.LITTLE MP)。

8da2d4dcd8e19c38ceb12aef2668f0a6.png

图1. big.LITTLE SoCs的多核使命调度算法

前期的big.LITTLE软模型才去簇搬迁或许CPU搬迁(cluster migration或许CPU migration)调度算法,即软件在核间切换,但不能把一切的核一起运转。最新的软件模型,大局使命调度(Global Task Scheduling)能一起使能一切的核,直接操控各核间的线程分配。巨细核切换是运用动态电压和频率调整(dynamic voltage and frequency scaling (DVFS))办法让使命在高电压的大核和低电压的小核间切换,然后进步各种负载情况下的能效。核间使命切换时刻为30微秒,而DVFS驱动每50微秒评价OS和核。GTS算法下会依据线程的负载进行负荷均衡。以上多核使命调度算法都是在内核层次进行的,因此不必对用户运用程序进行任何修正。

CPU搬迁算法IKS – In Kernel Switcher (CPU Migration)

IKS是Linaro开发的适用于对称的Cortex-A7和Cortex-A15核组的芯片。每一对Cortex-A7和Cortex-A15核组在Linux内核里被视为虚拟的对称核。线程在互斥的两个对称核里运转,即要么在高功能的Cortex-A15内运转,要么在低功耗的Cortex-A7核内运转,即最高功能只取决于Cortex-A15的核。IKS算法在Linux内核里现已完成,简单测验和产品化。

1c2fca595bc28476abdd7b1e9e6f96b5.png

图2. IKS(4+4)和Cortex-A7和Cortex-A15核组架构图

大局使命调度(Global Task Scheduling ,巨细核MP/ big.LITTLE MP)

ARM开发的GTS算法也在Linaro里被称为big.LITTLE MP。此算法下,一切的巨细核在Linxu内核下都可见用于使命调度,日前的Linaro构建里都包含了该调度算法。

80b699d8ce932b4a96f59be9c227035b.png

图3. GTS(4+4)和Cortex-A7和Cortex-A15核组架构图

比较IKS算法,GTS算法有如下的优势:更精密的核间负载操控,由于调度器Scheduler能直接切换核间使命,内核的额定开支削减然后削减功耗;

调度器Scheduler里的完成比较依据cpufreq结构的完成决议计划更快,比较IKS大概有10%的功能提高。

GTS支撑非对称的架构,如2个Cortex-A15核加上4个Cortex-A7核;

能够一起运用一切的峰值处理才能,如图3中的处理才能为4个Cortex-A15核加上4个Cortex-A7核的处理才能。

big.LITTLE MP内核补丁能创立一个处理当前使命的Cortex-A15和Cortex-A7核列表,然后依据前史负载计算分配并盯梢每个使命并进行核间使命切换。高处理才能需求的往Cortex-A15搬运,而低处理才能需求的往低功耗的Cortex-A7核搬迁。

表1. big.LITTLE IKS vs big.LITTLE MP(GTS)内核调度算法比较big.LITTLE IKS CPU Migrationbig.LITTLE MP、GTS

核装备Cortex-A15+Cortex-A7核对恣意数量的Cortex-A15核+Cortex-A7核,而且能够一起运转。

对内核影响最低极限的修正,修正只运用于governor对内核修正较多,包含调度器scheduler、流程标示等

最大处理才能一切的Cortex-A15一切的Cortex-A15核+Cortex-A7核

使命切换依据cpufreq结构直接运用scheduler,10%功能提高;

可用性存在Linaro的每月构建里存在Linaro的每月构建里

Kernel.org在3.11或许3.12里会存在在后续的几个季度内会上传

以上的调度算法以Cortex-A15核+Cortex-A7核的多核SoCs为例,但更多的big.LITTLE SoCs或许选用ARM更新的Cortex-A57+ Cortex-A53的架构相同适用。

总结

以上的big.LITTLE架构的使命调度算法现已在Linaro的构建里存在,而且有些算法在实践的体系中做了功能评价。如三星最新的Galaxy S4手机选用的是8核体系,即4个Cortex-A15核加上4个Cortex-A7核的体系现已选用依据簇的搬迁算法。即便是选用功能最不经济的cluster Migration算法在高通Qualcomm的多核Snapdragon体系中证明其能效的优越性。Samsung在Exynos 5中现已用Cortex-A7的能耗带来了相似Cortex-A15级其他功能。

最后

以上就是柔弱眼睛为你收集整理的linux 多核 arm,ARM big.LITTLE巨细核架构在Linux和Android内核下多核调度算法的全部内容,希望文章能够帮你解决linux 多核 arm,ARM big.LITTLE巨细核架构在Linux和Android内核下多核调度算法所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(74)

评论列表共有 0 条评论

立即
投稿
返回
顶部