搜索

ARM bigLITTLE大小核架构在Linux和Android内核下多核调度算法

gecimao 发表于 2019-05-27 16:15 | 查看: | 回复:

  早期的big.LITTLE软模型才去簇迁移或者CPU迁移(cluster migration或者CPU migration)调度算法,即软件在核间切换,但不能把所有的核同时运行。最新的软件模型,全局任务调度(Global Task Scheduling)能同时使能所有的核,直接控制各核间的线程分配。大小核切换是使用动态电压和频率调整(dynamic voltage and frency scaling (DVFS))方法让任务在高电压的大核和低电压的小核间切换,进而提高各种负载情况下的能效。核间任务切换时间为30微秒,而DVFS驱动每50微秒评估OS和核。GTS算法下会根据线程的负载进行负荷均衡。以上多核任务调度算法都是在内核层次进行的,因而不用对用户应用程序进行任何修改。

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

  ARM开发的GTS算法也在Linaro里被称为big.LITTLE MP。此算法下,所有的大小核在Linxu内核下都可见用于任务调度,日前的Linaro构建里都包含了该调度算法。

  更精细的核间负载控制,因为调度器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核迁移。

  以上的big.LITTLE架构的任务调度算法已经在Linaro的构建里存在,并且有些算法在实际的系统中做了性能评估。如三星最新的Galaxy S4手机采用的是8核系统,即4个Cortex-A15核加上4个Cortex-A7核的系统已经采用基于簇的迁移算法。即便是采用性能最不经济的cluster Migration算法在高通Qualcomm的多核Snapdragon系统中证明其能效的优越性。Samsung在Exynos 5中已经用Cortex-A7的能耗带来了类似Cortex-A15级别的性能。

本文链接:http://olivierlutaud.net/diaodusuanfa/444.html
随机为您推荐歌词

联系我们 | 关于我们 | 网友投稿 | 版权声明 | 广告服务 | 站点统计 | 网站地图

版权声明:本站资源均来自互联网,如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

Copyright @ 2012-2013 织梦猫 版权所有  Powered by Dedecms 5.7
渝ICP备10013703号  

回顶部