在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的架构一样适用。
总结
以上的big.LITTLE架构的任务调度算法已经在Linaro的构建里存在,并且有些算法在实际的系统中做了性能评估。如三星最新的Galaxy S4手机采用的是8核系统,即4个Cortex-A15核加上4个Cortex-A7核的系统已经采用基于簇的迁移算法。即便是采用性能最不经济的cluster Migration算法在高通Qualcomm的多核Snapdragon系统中证明其能效的优越性。Samsung在Exynos 5中已经用Cortex-A7的能耗带来了类似Cortex-A15级别的性能。
关键字:大小核架构 Linux Android内核 多核调度算法
引用地址:
ARM big.LITTLE大小核架构在Linux和Android内核下多核调度算法
推荐阅读最新更新时间:2024-03-16 15:00
基于ARM9和Linux的嵌入式打印终端系统
1 嵌入式打印终端系统 的设计原理 图1 打印终端原理图 嵌入式打印终端原理连接图如图1所示。主要由开发板、主机、打印机和扫描仪四部分组成。主机是一台PC机。开发板采用的是三星公司S3C2410开发板,ARM9的核,跑的是2.4内核版本的嵌入式Linux操作系统。扫描仪为超市等用的手持扫描仪。再加一台微型打印机接在开发板的GPIO口上。 工作流程为:开发板将扫描仪的数据从串口读出,然后通过网口将数据发送给主机进行检索处理。开发板等待直至接收到主机处理完毕的数据后转发给打印机,将信息打印出来。 2 嵌入式打印终端系统的硬件设计 2.1硬件开发平台S3C2410结构 三星公司的S
[单片机]
基于S3C2410微处理器和Linux实现嵌入式网关的设计
介绍了一种基于ARM9的嵌入式以太网的设计方案。基于ARM内核微处理器S3C2410的功能特点及其外扩组成部分,分析了以太网控制器芯片RTL8019AS的性能以及与S3C2410的接口。在软件设计上,分析了BootLoader的作用,介绍了Linux的移植,并给出了通信程序的流程图,实现了嵌入式以太网的数据传输。 无所不在的网络给网络接入设备带来了巨大的发展机遇。而随着网络接入市场的迅速增长,嵌入式网络接入开始成为嵌入式系统技术中最令人关注的一个领域。在嵌入式网络技术的推动下将会形成这样一个局面:在网络上传输的信息中,将有70%的信息来自嵌入式系统,也许将有数以亿计的汽车、通信设备、家用电气以及工厂系统接入到不同网络中,然后再
[单片机]
基于数字电视系统的嵌入式linux操作系统实现
1. 简介: 数字电视是在电视信号产生后的处理、传送、接收、记录等过程都采用数字技术的电视。在设计数字电视系统时,应用于传统模拟电视系统中的硬件,不能满足音频、视频和数据处理等功能的需要,因此,数字电视系统需要更高性能的处理器和大规模的存储器。嵌入式操作系统可以有效的管理这些硬件资源。 本文将嵌入式linux操作系统移植到一个数字电视上,使其能够接收数字广播节目。为了将操作系统移植到数字电视系统上,需要修改内核和交叉开发环境,重新设计基本的设备驱动,配置系统的存储器映像以便加载内核到主存储器中,并且设计一个总线接口设备的驱动程序来控制整个系统。 2. 数字电视操作系统 数字电视比模拟电视能够提供更优质的电视图像和更多的视
[单片机]
Linux之ARM(IMX6U)裸机C语言蜂鸣器驱动实验--驱动编写,编译
前几篇博文试验中的驱动 LED 灯亮灭属于 GPIO 的输出控制,本章再巩固一下 I.MX6U 的 GPIO输出控制,在 I.MX6U-ALPHA 开发板上有一个有源蜂鸣器,通过 IO 输出高低电平即可控制蜂鸣器的开关,本质上也属于 GPIO 的输出控制 1、有源蜂鸣器简介 蜂鸣器常用于计算机、打印机、报警器、电子玩具等电子产品中,常用的蜂鸣器有两种:有源蜂鸣器和无源蜂鸣器,这里的有“源”不是电源,而是震荡源,有源蜂鸣器内部带有震荡源,所以有源蜂鸣器只要通电就会叫。无源蜂鸣器内部不带震荡源,直接用直流电是驱动不起来的,需要 2K-5K 的方波去驱动。 I.MX6U-ALPHA 开发板使用的是有源蜂鸣器,因此只要给其供电就会工作
[单片机]
Linux将成为21世纪汽车主流操作系统
据科技博客ZDNet报道,开源软件组织Linux基金会表示,Linux操作系统将成为21世纪汽车产品的主流操作系统。
Linux将成为21世纪汽车主流操作系统
Linux系统不仅支持电脑服务器产品,还能通过Android运行在用户的智能手机上;此外,在汽车上也能找到它的踪影。当然,没有人在购买汽车产品时考虑它使用了何种操作系统,但是包括丰田、尼桑、捷豹路虎、福特、马自达、三菱和斯巴鲁等主流汽车品牌在内,它们的车载信息娱乐、显示、车载4G网络、Wi-Fi系统,都离不开Linux操作系统的支持。
各大软件厂商也都纷纷加入了面向汽车行业的这场移动物联网盛宴当中。Movimento、甲骨文、高通、德仪、UIEvolu
[嵌入式]
基于Linux的嵌入式测控系统设计
0 引 言 当前,在工业控制领域,网络控制技术快速发展。网络控制要求测控系统必须具备两方面的功能:一方面要在现场完成复杂的测控任务,通常一些任务具有一定的实时性的要求;另一方面要求测控系统能够与某一类型的控制网相连,实现远程监控。而在目前应用的大多数测控系统中,嵌入式系统的硬件采用8/16位的单片机;软件多采用汇编语言编程,仅包含一个简单的循环处理的控制流程;单片机与单片机或上位机之间通信通过RS232、RS485来组网。这些网络存在通信速度慢、联网功能差、开发困难的问题。而工业以太网已逐步完善,在工业控制领域获得越来越多的应用。工业以太网使用了TCP/IP协议,便于联网,并具有高速控制网络的优点。现在,32位嵌入式CPU价格的
[单片机]
arm-linux 学习(1)点亮第一个led程序
1.学习Gpio原理图 led与开发板的接线图, 总结: nled1—– GPF4 nled2—– GPF5 nled4—– GPF6 2. 寄存器 这里用到两个寄存器,一个是端口控制寄存器:GPACON-GPJCON,还有一个寄存器是端口数据寄存器GPADAT-GPJDAT 这里可以看出端口控制寄存器的地址是:0x56000000 端口数据寄存器的地址是:0x56000004 所以我们只需要配置这两个寄存器对应的LED位就可以实现控制led的亮或者灭。 第一步:首先配置LED引脚为输出模式 直接依次配置好:0001 0101 0000 0000==0x1500 第二步:对应位置输出低电平 需要设置
[单片机]
达芬奇数字媒体片上系统的架构和Linux启动过程
达芬奇( DaVinci)数字媒体技术平台TMS320DM6446/3采用了ARM+DSP双核的架构,本文从芯片的硬件结构入手介绍达芬奇DMSoC硬件部分及Linux OS的启动过程。 达芬奇DMSoC硬件概述 如图1所示,达芬奇数字媒体片上系统(DMSoC)提供:两个内核(ARM+DSP);视频处理子系统(VPSS);多种 Boot模式(NOR Flash/NAND Flash/UART0 Boot Mode);两个电源域;多个时钟树;多个引脚独立或复用的外设。 图1 DM6446功能结构框图 ● ARM-DSP集成 对于双核的达芬奇架构,大家最关心的就是两个核之间的资源分配、通信方式及如何高效地实现资源共享各尽其
[嵌入式]