ARMv8-A编程指导之big.LITTLE技术(2)

本文介绍了big.LITTLE架构的两种主要执行模式:迁移模式和全局任务调度。迁移模式包括集群迁移和CPU迁移,其中全局任务调度提供了更优的电源管理和性能。全局任务调度允许操作系统根据线程性能需求智能分配任务到合适的核,提高效率并节省能源。此外,该模式支持不同数量的big和LITTLE核心,提供更好的负载平衡和性能表现。
摘要由CSDN通过智能技术生成

2 在big.LITTLE上的软件执行模式

        在big.LITTLE上主要有两种执行模式:

Migration: 迁移模式是电源性能管理技术如DVFS的外延。迁移模式有两种类型:

  1. Cluster迁移;
  2. Cpu 迁移;

        迁移行为与DVFS操作点转换类似。一个core的DVFS曲线操作点遍历响应负载的变化。当当前core或cluster达到最高操作点时,若软件栈要求更高性能,core或cluster的迁移行为生效。然后再另一个core或cluster上继续执行,并遍历此core或cluster上的操作点。当性能没有要求时,执行可以切换回来。

Global Task Scheduling:在全局任务调度时,操作系统任务调度器能够意识到big和LITTLE core在计算容量上的差异。调度器追踪每个独立的软件线程的性能要求,并使用这个信息来决定哪种类型的core来用于那个任务。不使用的core会被下电。这种方式相比迁移模式有很多优势。

2.1 Cluster迁移

        只有一个cluster,要么big要么LITTLE,在任何某个时刻是活动的,除了在一个cluster短暂切换到另一个cluster的时候。为了完成最好的电源和性能,软件栈大多数运行在节能的LITTLE cluster上,仅在很短的周期才运行在big cluster上。这个模式要求两个cluster上运行相同数量的core。

        该模式无法很好的应对不平衡的软件负载,即在一个cluster上每个core的负载明显不一样。在这种场景下,cluster迁移会导致完全迁移到big cluster,尽管并非所有的core需要这种性能级别。因为这个原因,cluster迁移没有其他方法受欢迎。

2.2 CPU迁移

        在这种模式下,每个big core与LITTLE core成对。在成对的core中仅有一个core在某一时刻处于active状态,inactive的core被下电。根据当前负载条件active core被选择。使用下图例子,操作系统可以看到4个逻辑core。每个逻辑core可以为big或LITTLE core。这是由DVFS来选择。这个模式要求cluster中的core数目相同。

        系统主动监控每个core上的负载。高负载会导致执行上下文被移到big core上,当低负载时,执行被移动到LITTLE core上。成对的仅一个core在任意时刻能工作。当负载从outbound core移动到inbound core,前者core被关闭。这个模式允许big和LITTLE core的混合运行。

2.3 全局任务的调度

        随着big.LITTLE技术的发展,ARM已经将软件模型从各种迁移模式进化到全局任务调度,全局任务调度GTS形成了所有big.LITTLE技术将来发展的基础。ARM实现的GTS成为big.LITTLE多进程(MP)。

        在这种模式下,操作系统任务调度器能够意识到big和LITTLE core在计算容量上的差异。使用统计数据,调度器跟踪每个独立软件线程的性能要求,并使用该信息来决定那种core运行那个线程。这个模式可以工作在每个cluster上有任意数据的core的big.LITTLE系统上。如上图所示。这个方法相比迁移模式有很多优势,如:

  1. 系统可以有不同数目的big和LITTLE core;
  2. 不像迁移模式,任何数量的core可以在任何时刻被运行。若要求最大性能,这可以增加最大有效的计算容量;
  3. 可以隔离big cluster用于密度线程的昂贵使用,轻量级的线程可以运行在LITTLE cluster上。这可以让高计算任务完成得更快,因为没有其他后台线程;
  4. 也可以将独立的中断直接发送到big core或LITTTLE core上。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值