在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)。

本文引用地址:

图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内核里已经实现,容易测试和产品化。

图2. IKS(4+4)和Cortex-A7和Cortex-A15核组架构图全局任务调度(Global Task Scheduling ,大小核MP/ big.LITTLE MP)

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

图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 Migration   big.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的架构一样适用。总结

linux核能软件,ARM big.LITTLE大小核架构在Linux和Android内核下多核调度算法相关推荐

  1. android cpu调度策略_ARM big.LITTLE大小核架构在Linux和Android内核下多核调度算法

    在2013年,big.LITTLE 家族又增加了新的SoC实现,有2个Cortex-A15+3个Cortex-A7核的ARM的参考测试芯片TC2,以及在三星Galaxy S4手机中应用的Samsung ...

  2. linux 多核 arm,ARM big.LITTLE巨细核架构在Linux和Android内核下多核调度算法

    在2013年,big.LITTLE宗族又添加了新的SoC完成,有2个Cortex-A15+3个Cortex-A7核的ARM的参阅测验芯片TC2,以及在三星Galaxy S4手机中运用的Samsung- ...

  3. 涵盖从java入门到深入架构,Linux、云计算、分布式、大数据Hadoop、ios、Android、互联网技术应有尽有

    [涵盖从java入门到深入架构,Linux.云计算.分布式.大数据Hadoop.ios.Android.互联网技术应有尽有] 1.javascript视频教程 链接: http://pan.baidu ...

  4. intel服务器单核性能提升,Intel 12代酷睿最大担心解除:Win11优化大小核架构、单核性能大涨...

    再过几天,微软就会在6月24日的发布会上推出Windows 11(简称Win11)系统了,界面比Win10改变不少,此前的性能测试也是有喜有忧,多核比Win10还差了.不过对Intel来说,Win11 ...

  5. 中兴linux下载软件,国产操作系统中兴新支点使用WPS For Linux办公软件的体验报告...

    以下将给你带来在国产操作系统中兴新支点操作系统下使用WPS For Linux办公软件的体验报告,WPS For Linux提供Deb.Rpm.Tar.xz.Snap软件包,你可以选择Tar.xz源码 ...

  6. 【已阅】Linux的软件生态与两个方面,客户端/Linux软件下载安装的认识,yum源/仓库(repo)与yum指令的本质,yum指令操作等

    铺垫1:服务器属于硬件 服务器是一种计算机硬件设备,主要用于存储.管理和处理数据以及为其他计算机提供服务. 服务器通常具有高性能的处理器.大容量的硬盘.大内存和高速网络连接等特点,可以提供各种服务,如 ...

  7. arm架构的linux芯片方案,ARM推64位处理器架构ARMV8及芯片[多图]

    北京时间10月31日消息,ARM宣布推出ARMv8 64位架构指令集之际,Applied Micro Circuits Corporation(AMCC)就推出了面向服务器市场的处理器X-Gene. ...

  8. Linux打包软件版本带时间,带你写一个 linux 下的打包软件 tar

    相信你对 linux 的 .tar.gz 有点熟悉,这就是先 tar 打包(.tar 后缀),再对此 tar 文件用 gzip 压缩(.tar.gz)的后缀名. 值得注意的是, tar 不是压缩软件, ...

  9. edge linux 下载软件,如何下载安装微软Microsoft Edge for Linux预览版?

    最简单的方法是直接从Microsoft Edge网站下载并安装.deb或.rpm包. 下载地址:https://www.microsoftedgeinsider.com/en-us/download/ ...

最新文章

  1. 10.07-Idea的使用
  2. python输出所有组合数_生成两个列表的所有组合,并在python中一一输出
  3. 小米5 android 4.1.2,小米1刷机包 V5稳定版V1.2 流畅纯净 精简省电 默认开启未知来源 Android4.1.2...
  4. boost::hana::cartesian_product用法的测试程序
  5. 探索 dotnet core 为何在 Windows7 系统需要补丁的原因
  6. 使用Docker快速搭建Tensorflow开发环境
  7. 【kubernetes系列】master节点部署Pod处于Pending状态
  8. 小鹏汽车北京车展发布免费加电、电池租赁计划以及低空飞行汽车
  9. 12. JavaScript Number 对象
  10. 差分GPS-RTK-千寻
  11. pdca管理循环基本主张_PDCA循环在生产管理中的应用
  12. 爬虫项目十八:用Python对拉钩网全部城市所有招聘信息爬取
  13. 计算机系统如何恢复出厂设置路由器,斐讯p.to怎么恢复出厂设置?-斐讯路由器设置...
  14. 凯恩斯主义中的当今世界
  15. usemvc永远不会被使用_你永远不会离开
  16. python 强类型 弱类型_Python 到底是强类型语言,还是弱类型语言?
  17. Excel2003工作簿密码和工作表保护的加密和解密
  18. 基于FPGA的FFT
  19. Leetcode 345: Reverse Vowels of a String
  20. 一个屌丝程序猿的人生(一百二十三)

热门文章

  1. Python 函数参数传递
  2. 算法练习day6——190323(求中位数、堆排序、稳定性)
  3. 数据结构与算法 / 二叉搜索树(Binary Search Tree)
  4. linux socket API / bind
  5. #pragma once与#ifndef的区别?
  6. fieldset 添加2个legend_第231号!增补乙基纤维素等2个饲添进入饲料添加剂品种目录(2013)...
  7. acf滞后数必须为正整数。_【知识点】“勾股定理”的必考点,必须掌握!
  8. 计算机是怎样知道屏幕位置的,如何看自己的电脑显示器是多少寸
  9. 英伟达账号登录邮箱验证收不到_【硬核教学】解决登录230锁定
  10. node+Mysql,数据库时区显示正确,查询时却显示另一个时区