打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
ARM big.LITTLE大小核架构在Linux和Android内核下多核调度算法

2013年,big.LITTLE 家族又增加了新的SoC实现,有2Cortex-A15+3Cortex-A7核的ARM的参考测试芯片TC2,以及在三星Galaxy S4手机中应用的Samsung-LSI4Cortex-A15+4Cortex-A7核的'Octa-core'芯片。LinaroARMbig.LITTLE SoCs上针对LinuxAndroid内核做了很多的性能优化(包括负载控制、针对big.LITTLE架构的性能和电源管理),以提高多核multi-core程序的能效,增加待机时间。最新的多核多任务的调度方法包括内核里交换器(或者说CPU迁移算法CPU Migration/IKS In Kernel Switcher)、全局任务调度(Global Task Scheduling,或者大小核MP/ big.LITTLE MP)

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)

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

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

全局任务调度(Global Task Scheduling ,大小核MP/ big.LITTLE MP)

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

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

相比IKS算法,GTS算法有如下的优势:

  • 更精细的核间负载控制,因为调度器Scheduler能直接切换核间任务,内核的额外开销减少从而减少功耗;
  • 调度器Scheduler里的实现相比基于cpufreq框架的实现决策更快,相比IKS大概有10%的性能提升。
  • GTS支持非对称的架构,如2Cortex-A15核加上4Cortex-A7核;
  • 可以同时应用所有的峰值处理能力,如图3中的处理能力为4Cortex-A15核加上4Cortex-A7核的处理能力。

big.LITTLE MP内核补丁能创建一个处理当前任务的Cortex-A15Cortex-A7核列表,然后根据历史负载统计分配并跟踪每个任务并进行核间任务切换。高处理能力需求的往Cortex-A15转移,而低处理能力需求的往低功耗的Cortex-A7核迁移。

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

 

big.LITTLE IKS CPU Migration

big.LITTLE MPGTS

核配置

Cortex-A15+Cortex-A7核对

任意数量的Cortex-A15+Cortex-A7核,并且可以同时运行。

对内核影响

最低限度的修改,修改只应用于governor

对内核修改较多,包括调度器scheduler、流程标注等

最大处理能力

所有的Cortex-A15

所有的Cortex-A15+Cortex-A7

任务切换

基于cpufreq框架

直接使用scheduler10%性能提升;

可用性

存在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核系统,即4Cortex-A15核加上4Cortex-A7核的系统已经采用基于簇的迁移算法。即便是采用性能最不经济的cluster Migration算法在高通Qualcomm的多核Snapdragon系统中证明其能效的优越性。SamsungExynos 5中已经用Cortex-A7的能耗带来了类似Cortex-A15级别的性能。

Reference

http://houh-1984.blog.163.com/

Versatile Express V2P-CA15_A7 CoreTile

http://blogs.arm.com/soc-design/1009-ten-things-to-know-about-biglittle/

http://www.linaro.org/linaro-blog/2013/07/10/big-little-software-update/

2013年,big.LITTLE 家族又增加了新的SoC实现,有2Cortex-A15+3Cortex-A7核的ARM的参考测试芯片TC2,以及在三星Galaxy S4手机中应用的Samsung-LSI4Cortex-A15+4Cortex-A7核的'Octa-core'芯片。LinaroARMbig.LITTLE SoCs上针对LinuxAndroid内核做了很多的性能优化(包括负载控制、针对big.LITTLE架构的性能和电源管理),以提高多核multi-core程序的能效,增加待机时间。最新的多核多任务的调度方法包括内核里交换器(或者说CPU迁移算法CPU Migration/IKS In Kernel Switcher)、全局任务调度(Global Task Scheduling,或者大小核MP/ big.LITTLE MP)

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
基于多核处理器的RTOS多核扩展分析与研究一
一文解析ARM处理器都经历了哪些技术变革(做出了一台RISC指令集的计算机ARM上64位计算的好处并不仅限于智能手机和平板电脑生态系统很广阔被许多不同类型的设备所使用)
高通现役所有的骁龙SoC都在这里了!三大级别对比PK
FreeRTOS系列第1篇
从big.LITTE到DynamIQ
【AET原创】双核STM32H7:Cortex-M通用MCU性能之巅
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服