首页> 中国专利> 大核和小核中的任务调度

大核和小核中的任务调度

摘要

本发明涉及大核和小核中的任务调度。一个方面提供了一种方法,该方法包括:查明具有两个或更多个不同大小的核的信息处理设备处的中断;基于中断调度策略来确定是否应该将中断引向较大核和较小核中之一;基于中断调度策略,如果中断没有取得例外的资格,则将中断引向较小核;以及,在根据中断调度策略的适当的核上处理中断。其他方面被描述并要求保护。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-01-01

    授权

    授权

  • 2014-10-08

    实质审查的生效 IPC(主分类):G06F9/48 申请日:20130813

    实质审查的生效

  • 2014-03-12

    公开

    公开

说明书

技术领域

本发明涉及对大核和小核进行任务调度的方法及其信息处理设备。

背景技术

传统的多核处理器包括单个组件或芯片,其中设置了多个中央处理单 元或核以读取并执行程序指令。通常,多核处理器具有在处理能力方面相 同的核。

当前,考虑到电池供电的移动设备的能效要求,对设置有不同大小的 核的多核芯片不断做出改进。例如,在延长电池寿命方面,作为非限制性 的示例,ARM CORTEXTM-A7处理器既提供了高性能又省电。目标是将 较大核(例如ARM CORTEX-A15MPCORETM处理器)的性能与较小核 (例如ARM CORTEXTM-A7处理器)的能效联系起来。ARM CORTEXTM-A7MPCORETM处理器架构和特征集与Cortex-A15处理器 的架构和特征集相关联地进行保存,其中微架构被配置成通过使两个处理 器能够协同工作来提供能效。

发明内容

总的来说,一个方面提供了一种方法,该方法包括:查明具有两个或 更多个不同大小的核的信息处理设备处的中断;基于中断调度策略来确定 是否应该将中断引向较大核和较小核中之一;如果基于中断调度策略中断 没有取得例外的资格,则将中断引向较小核;以及,在根据中断调度策略 的适当的核上处理中断。

另一方面提供了一种信息处理设备,该信息处理设备包括:一个或更 多个处理器以及与该一个或更多个处理器通信的存储器。该存储器存储程 序指令,该程序指令在由一个或更多个处理器执行时执行下述步骤:查明 具有两个或更多个不同大小的核的信息处理设备处的中断;基于中断调度 策略来确定是否应该将中断引向较大核和较小核中之一;如果基于中断调 度策略中断没有取得例外的资格,则将中断引向较小核;以及,在根据中 断调度策略的合适的核上处理中断。

再一方面提供了一种程序产品,该程序产品包括存储介质,该存储介 质具有程序代码。该程序代码包括被配置成执行下述步骤的程序代码:查 明具有两个或更多个不同大小的核的信息处理设备处的中断;基于中断调 度策略来确定是否应该将中断引向较大核和较小核中之一;如果基于中断 调度策略中断没有取得例外的资格,则将中断引向较小核;以及,在根据 中断调度策略的适当的核上处理中断。

前述是概要,从而可以包含细节的简化、概括和省略;因此,本领域 技术人员将理解的是,该概要仅仅是说明性的并且不意在以任何方式进行 限制。

为了更好地理解实施方式连同实施方式的其他的和进一步的特征和 优点,参照以下的结合附图的描述。本发明的范围将在所附权利要求中指 出。

附图说明

图1示出了示例信息处理设备。

图2示出了另一示例信息处理设备。

图3示出了任务调度的示例。

图4示出了将核签名分配给任务的示例。

图5A至5B示出了任务调度的另一示例。

图6示出了任务调度的又一示例。

具体实施方式

将容易地理解,此处附图中具体描述和示出的实施方式的组件可以除 所描述的示例实施方式以外的多种不同的配置来布置和设计。从而,以下 如示出在附图中的、示例实施方式的更详细的描述,不意在限制所要求保 护的实施方式的范围,而只是典型的示例实施方式。

本说明书全文中,对“一个(one)实施方式”或“一种(an)实施 方式”(等)的引用意味着结合实施方式所描述的特定特征、结构或特性 包含在至少一个实施方式中。因此,在本说明书全文的各处所出现的短语 “在一个实施方式中”或“在一种实施方式中”等未必都指同一实施方式。

而且,在一个或更多个实施方式中,所描述的特征、结构或特性可以 以任何适当的方式进行组合。在下面的描述中,提供了许多具体的细节以 给出对实施方式的透彻的理解。然而,相关领域的技术人员将认识到,可 以在没有一个或更多个具体细节的情况下实施各种实施方式,或可以使用 其他的方法、组件、材料等来实施各种实施方式。在其他的示例中,不再 详细地示出或描述公知的结构、材料或操作以避免困惑。

对于有时依靠电池电力来长时间工作的移动设备的用户来说,增加电 池寿命是重要的。片上系统(SoC,System on Chip)设计中的处理器核随 着性能提升而耗费较多的电力。这是因为采用了增加时钟频率和/或额外 逻辑的方法。这两种方法都耗费较多的电力来运行系统。

传统的多核处理器都具有相同的性能、频率和功率。操作系统将任务 平均地调度给每个核,并对每个核进行类似的功率管理。随着在公共管芯 上具有不同性能水平的多个核的芯片的发展,可以有差别地采用核。因为 较小的核耗费较少的电力但具有较低的性能,因此可以使用的较小核越多 (偏向于使用较大核)则电池寿命越长,这是由于当不使用较大核时系统 可以将较大核关闭以节省电力。然而,如果以不适当的方式采用较小核, 那么性能甚至节电效果会下降。

因此,实施方式自动地确定如何调度在小核和大核上执行的任务,以 使得一个或更多个较小核的使用最佳化,从而使得一个或更多个大核尽可 能多地被关闭。另一实施方式提供了在大核和小核的情形中使用编译时间 选项来管理任务调度。又一实施方式提供了在大核和小核的环境中使用中 断处理过程来管理任务调度。

可以通过参考附图来最好地理解所示出的示例实施方式。下面的描述 意在仅作为示例,并且仅示出了某些示例实施方式。

图1描绘了信息处理设备电路、电路系统或组件的一个示例的框图, 但可以采用多种其他电路、电路系统或组件。图1中描绘的示例可以对应 于计算系统,例如由位于北卡罗来纳州莫里斯维尔的联想(美国)公司销 售的THINKPAD系列个人电脑或其他设备。根据此处的描述明显的是, 实施方式可以包括图1中示出的示例的特征中的仅一些特征或其他特征。

图1的示例包括所谓的芯片组110(一组一起工作的集成电路或芯片、 芯片组),该芯片组110具有可以根据制造商(例如,INTEL、AMD、 ARM等)而变化的架构。芯片组110的架构包括核和存储器控制组120 以及I/O控制器中枢150,该I/O控制器中枢150经由直接管理接口(DMI) 142或链路控制器144交换信息(例如,数据、信号、命令等)。在图1 中,DMI142是芯片到芯片的接口(有时被称为“北桥”与“南桥”之间 的链路)。核和存储器控制组120包括经由前端总线(FSB)124交换信息 的一个或更多个处理器122(例如,单核或多核)和存储器控制器中枢126; 注意,核和存储器控制组120的组件可以被集成在代替传统的“北桥”式 架构的芯片中。

在图1中,存储器控制器中枢126与存储器140有接口(例如,为可 被称为“系统存储器”或“存储器”的一类RAM提供支持)。存储器控 制器中枢126还包括用于显示设备192(例如,CRT、平板、触摸屏等) 的LVDS(低压差分信号)接口132。块138包括可以经由LVDS接口132 支持的一些技术(例如,串行数字视频、HDMI/DVI(高清晰度多媒体接 口/数字视频接口)和显示端口)。存储器控制器中枢126还包括可以支持 独立显卡136的PCI-express(串行总线)接口(PCI-E)134。

在图1中,I/O控制器中枢150包括SATA(串行高级技术附件)接 口151(例如,用于HDD(硬盘驱动器)/SDD(固态硬盘)180等)、 PCI-E接口152(例如,用于无线连接182)、USB接口153(例如,用于 诸如数字转换器、键盘、鼠标、照相机、电话、存储器、其他连接设备等 设备184)、网络接口154(例如,LAN)、GPIO(通用输入输出)接口 155、LPC(低引脚数)接口170(用于ASIC(专用集成电路)171、TPM (可信平台模块)172、超级I/O173、固件集线器174、BIOS支持175 以及诸如ROM177、闪存178和NVRAM(非易失性随机存储器)179 等各种类型的存储器176)、电力管理接口161、时钟发生器接口162、音 频接口163(例如,用于扬声器194)、TCO接口164、系统管理总线接 口165和可以包括BIOS(基本输入输出系统)168和引导代码190的 SPI(串行)闪存166。I/O控制器中枢150可以包括千兆以太网支持。

系统在通电时可以被配置来执行在SPI闪存166内存储的、用于BIOS 168的引导代码190,此后,在一个或更多个操作系统和应用软件(例如, 存储在系统存储器140中)的控制下处理数据。操作系统可以存储在多种 位置中的任何位置处,并例如根据BIOS168的指令来访问。如此处所述, 设备可以包括比在图1的系统中示出的特征更少或者更多的特征。

例如,参考图2,关于诸如智能电话和/或平板电脑电路图200等电池 供电的设备,其示例包括基于ARM的系统(片上系统)设计,其中软件 和处理器合并在单个芯片210中。内部总线等依赖于不同的供应商,但基 本上所有的外围设备(220)都可以附接到单个芯片210。与图1示出的 电路系统相比,平板电路系统200将处理器、存储器控制和I/O控制器中 枢全都结合到了单个芯片210中。而且,基于ARM的系统200通常不使 用SATA或PCI或LPC。通用接口例如包括SDIO(安全数字输入输出 卡)和I2C(集成电路间)。存在一个或更多个电力管理芯片230,该电力 管理芯片230对例如经由可再充电电池240供应的电力进行管理,该可再 充电电池240可以通过连接到电源(没有示出)来再充电,且在至少一个 设计中,单个芯片(例如210)用于提供类似BIOS的功能和DRAM(动 态随机存取器)存储器。

基于ARM的系统200通常包括WWAN(无线广域网)收发器250 和WLAN(无线局域网)收发器260中的一个或更多个以用于连接到各 种网络,例如通信网络和无线基站。通常,基于ARM的系统200包括用 于数据输入和显示的触摸屏270。基于ARM的系统200通常还包括各种 存储设备,例如闪存280和SDRAM(动态随机存取存储器)290。

参考图3,实施方式可以使用预测性学习来确定在每个核中哪些任务 可以最佳地运行。例如,实施方式可以学习哪些应用程序最适合在小核上 执行。作为一种机制,在步骤310中实施方式可以在较大核中通过启动 “新”任务,即没有执行历史以利于学习的任务(应用程序或进程),来 开始学习处理,以确保可接受的性能。可替换地,实施方式在一些情况下 (例如当采用编译时间或编程选项时)可以排除这种保守方法,如下文所 述。

然后,当任务在较大核120上执行时实施方式可以跟踪一个或更多个 参数,同时考虑任务的一个或更多个特性。例如,实施方式可以跟踪例如 大核利用的百分比或任务在大核上运行的时间等性能(执行)参数。而且, 实施方式可以考虑任务的一个或更多个特性,例如:确定任务是否为高优 先级,如当系统处于常开启时需要运行的任务;或确定任务是否需要在常 连接模式(深度睡眠模式)下运行等。

由此,随着时间的推移,实施方式可以为每个任务130建立历史,以 为任务通知适当的核签名。从而,实施方式可以针对给定任务适当地确定 调度策略,并为任务分配核签名以用于后续使用。例如,实施方式可以基 于任务的历史和任务特性来确定哪些任务应该被移至较小核,如在步骤 340中由任务核签名所反映的那样。因此,例如如果在步骤340中任务被 确定为具有小核签名,则在步骤350中该任务可以被引向芯片上的小核; 反之,如果任务具有大核签名,则在步骤360中该任务可以被引向较大核。 一些示例确定方式可以由下面的实施方式来实现。

参考图4,实施方式可以采用任务历史和/或特性来确定任务应该引向 大核还是引向小核。例如,在步骤410中实施方式可以使用任务是否能够 与较小核的容量相“适配”的确定结果或估计结果来作为标准。例如,实 施方式可以通过确定或访问较小核与较大核(例如,在处理性能和/或其 他相关参数方面)的比率并将较大核的百分比利用率转换成较小核来计算 这个“适配”。从而,实施方式可以根据较大核的百分比利用率跟踪任务 在较大核上的执行,并将其映射到较小核的容量。这些信息可以包含在形 成任务的核签名的过程中。

从而,如果任务适配,则实施方式可以作出关于任务是否应该被移至 较小核的确定。这个决定结果可能依赖于各种因素,例如,是否存在与具 有较高优先级的较小核相适配的其他任务,其中,该较高优先级以多种方 式确定(例如,使用频率、临界状态等)。

在步骤420中实施方式可以确定任务是否被视为高优先级。具有最高 优先级的任务可以被引向较小核中来执行,例如在系统处于重度或深度睡 眠模式时运行的任务。这些任务要求设备处于常开启状态或常连接模式 (“AOAC模式”,例如,深度睡眠)。这么做的原因是在深度睡眠模式中 能够完全关闭较大核。如果任务与两个标准(与较小核适配并具有高优先 级)适配,则下一个步骤430可以包括确定随着时间变化的总CPU利用 率以确保在任务被置于小核上的情形下,即使该任务与小核适配且为高优 先级任务,则该任务的(该小核的)CPU利用率仍是合理的。

从而,可能存在有如下情况:与较小核适配的高优先级任务仍然应该 在较大核上运行,例如,因为较小核上特定的过高CPU利用率事件将使 用较多的电力来结束,如在任务需要花费很长时间来完成或者任务在时帧 期间被重复地执行的情形,或者节能不是主要关注点(例如,当设备被插 入到电源中并且电池正在充电时)的情形。由于与较小核适配且在AOAC 模式期间运行的任务趋向于更加频繁地运行(从而具有较高的优先级), 所以这些任务很可能是用于在小核上执行的候选。使用这种调度,实施方 式可以使得被分配给较小核的任务最优化,从而尽可能地降低系统能耗。

参考图5(A至B),实施方式可以提供提示,这些提示被编程到任 务中或被分配给任务(或任务中的子组件),从而能够有更多的机会将正 确的核签名分配给任务或任务的子组件。再者,因为较小核耗费较少电力 但具有较低性能,所以系统使用较小核(而非使用较大核)越多,电池寿 命越长,这是由于在不使用较大核时系统基本上可以将较大核关闭。实施 方式在任务本身中提供提示,在该提示中程序员可以在编写程序时指示要 使用的最佳核。从而,实施方式通过将核签名或提示编程到任务程序中来 在运行期间为任务更有效地选择适当的核。

确定在传统多核芯片中使用的适当的核基于最近运行程序的经验来 执行而不知晓程序的将来需要,这在一些情况下可能是不适当的。因为程 序员可能使用编译器标志和语言元素来指示任务的某些运行时间行为,例 如待使用的指令集特征和动态对静态加载,这些特征可以有益地应用在具 有大核和小核架构的芯片的环境中。

当程序员在编写程序时可能能够指定最佳地利用大核和小核的方式, 因为程序的性质和所需资源的估计是可用的。因此,实施方式提供了一种 功能,即程序员可以指定包括下述情况的核调度的提示:例如1)在可用 的最小核上运行该程序;2)该程序需要高性能核;3)基于最近的性能历 史将该任务动态地分配给各个核;或其他核调度的提示。

如在图5A的示例中所示,在步骤510A中程序员可以将提示指定为 标志。从而,在步骤510A中程序员在标志中指定一个或更多个提示,在 步骤520A中在编译时间将程序和标志发送至编译器时,在步骤530A中 适当地应用提示(例如,应用于整个任务/程序)。在这种情况下,提示可 以静态地应用到整个程序,以便在步骤540A中将程序引向标志所指示的 核。然后,在步骤550A中程序和一个或更多个提示可以被安装在设备上 以按照所编程的那样运行,换言之,程序和提示根据一个或更多个提示而 被引向一个或更多个适当的核。从而,可以将任务适当地引向较小核或较 大核。

还可以通过语言元素来动态地应用提示以便在步骤510B中运行程序 时,在步骤520B中提示出现冲突的情形下可以根据程序的状态来改变提 示。这些提示可以是编译器指示(仅在编译时间有效)中的任何一个,以 指示代码段的提示。可替换地,在步骤530B中该提示不是静态(固定) 提示的情况下,在步骤550B中可以由程序使用系统功能调用来调整提示。 例如,程序可以导致新的线程开始。新线程中的代码可以进行系统调用以 指定该线程可以完全在最小的且最低性能的可用核上运行。可替换地,如 果没有动态地更新提示,则在步骤560B中可以将提示如初始编程的那样 应用到程序子组件。

实施方式还可以在任务调度策略中包含中断处理以影响芯片上的大 核和小核的可用性。如此处所述,大核机制和小核机制结合了不同大小的 CPU,从而在同一封装或芯片中具有不同数量的晶体管。这些大小核的设 计,在适当管理的情形下可以带来显著的节能效果,因为较小CPU对小 任务具有较高的效率。根据实施方式,中断处理被配置成充分发挥由这样 的执行环境所提供的节能效果。

照常规,在多CPU系统中,随机地引入中断或者将中断引入到特定 CPU(例如最后的CPU)以运行与中断相关联的设备驱动程序。当使用 不同大小和能耗的CPU(大核和小核)时,这些方法未必会给出最佳性 能。

因此,在图6示出的实施方式中,除了至一个低功率(小)CPU的 中断以外,可以屏蔽至所有CPU的中断。例如,默认情况下,在启动时, 实施方式可以将所有的或几乎所有的中断路由给该小核。实施方式可以根 据适当的策略对中断去屏蔽。

例如,由于任务的工作历史(例如对于给定设备驱动程序,小核的循 环饱和)或通过特定的配置或策略,其他核可以具有去屏蔽的中断。从而, 在步骤610中,对于中断,可以查明任务的工作历史以确定中断与证明去 屏蔽有效的策略是否适配。如果不适配,则在步骤620中可以将中断默认 地引向小核。然而,在步骤610中,如果中断与将中断引向大核的策略适 配,则在步骤630中可以根据策略将中断去屏蔽,并在步骤640中将中断 引向大核进行处理。以下是根据策略对中断进行去屏蔽以便将中断引向其 他核(例如,大核)并被其他核处理的一些示例情况。

在第一示例中,如果处理给定的中断时出现消耗小核CPU的全部或 大部分可用功率的历史,例如,超过了某个阈值,可以将这样的中断路由 到一个或更多个大核上,因为这些大核是高性能CPU。从而,通过将已 知的处理密集的中断引向适当大小的核,即使需要利用较大核,来实现节 能。

在第二示例中,已知,中断频率很高以致当将中断重复地引向小核时 CPU不能处理该中断。在这样的情况下,中断可能被丢弃或所有的小核 CPU循环将耗费一段时间(例如,100毫秒)。可以将这样的多个中断分 配给多个CPU以均衡负载。在这样的情况下,可以查明芯片环境以根据 预定的策略来确定中断是被适当地引向一个或更多个小核还是被引向一 个或更多个大核,还是被引向小核和大核的一些适当的组合。

在第三示例中,开发者或管理员可以知道特定的驱动程序或其他任务 需要高性能CPU。因此,在实施方式中,内核可以被配置成屏蔽到高性 能(大)CPU中进行处理的相关中断。

如此处所述,各种实施方式提供给各种任务处理或调度过程以使得大 /小核环境可以被最佳地利用。在实施方式中,可以利用预测性任务调度 或动态任务调度,或可以利用静态任务调度。在实施方式中,可以根据工 作环境(例如,设备的工作状态或充电状态)和待调度的任务的性质(例 如,具有已知历史的任务、包括有或包含提示的任务等),来利用预测性 任务调度和静态任务调度二者。应该注意的是,尽管给出了任务的具体示 例(程序、中断、引用程序子组件或线程),并说明了具体的任务处理或 调度过程,但这些是非限制性的示例且各种方面可以以任何适当的方式组 合以实现在大核和小核之间的任务工作负载的合当调度。

可以在以下一个或更多个信息处理设备中来实现实施方式:所述一个 或更多个信息处理设备适当地配置成执行与此处描述的实施方式的功能 一致的程序指令。在这方面,图1和图2示出了这样的设备及其组件的非 限制性示例。虽然诸如平板电脑、膝上型计算机和智能电话等移动计算系 统已在此处作为示例被具体地说明,但可以使用其他的系统或设备(例如 电子阅读器、导航系统、公用电话亭等)来实现实施方式。

本领域的普通技术人员将理解的是,本发明的各个方面可以实施为系 统、方法或设备程序产品。因此,本发明的各个方面可以采用完全硬件实 施方式的形式或采用包括软件的实施方式的形式,所述软件在本文中可以 全部统称为“电路”、“模块”或“系统”。而且,本发明的各个方面可以 采用在一个或更多个设备可读介质中实施的设备程序产品的形式,所述一 个或更多个设备可读介质包含有设备可读程序代码。

可以利用一个或更多个无信号设备可读介质的任何组合。无信号介质 可以是存储介质。存储介质可以是例如电子的、磁的、光学的、电磁的、 红外线的或半导体的系统、装置或设备,或前述的任何适当的组合。存储 介质的更多的具体示例包括如下:便携式计算机磁盘、硬盘、随机存取存 储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM 或闪存)、光纤、便携式光盘只读存储器(CD-ROM)、光学储存设备、 磁存储设备,或前述的任何适当的组合。

可以使用任何适当的介质包括但不限于无线、有线、光缆、RF等或 前述的任何适当的组合来传输在存储介质上所包含的程序代码。

可以以一种或更多种编程语言的任何组合来编写用于执行操作的程 序代码。程序代码可以完全在单个设备上执行或部分地在单个设备上执 行、作为独立软件包部分地在单个设备上且部分地在另一设备上执行或完 全在其他设备上执行。在一些情况下,可以通过任何类型的连接或网络(包 括局域网(LAN)或广域网(WAN))来连接设备,或可以通过其他设备 (例如,通过使用因特网服务提供商的因特网)或通过硬线连接(例如通 过USB连接)来进行连接。

在此参考示出了根据各种示例实施方式的示例方法、设备和程序产品 的附图来描述各个方面。将理解的是,示出的动作和功能可以至少部分地 由程序指令来实现。可以将这些程序指令提供给通用信息处理设备、专用 信息处理设备或其他可编程数据处理设备或信息处理设备的处理器以产 生机制,使得指令实现指定的功能/动作,所述指令经由设备的处理器来 执行。

也可以将程序指令存储在设备可读介质中,该设备可读介质可以以特 定的方式引导设备运行,以使得存储在设备可读介质中的指令生成制品, 该制品包括实现指定的功能/动作的指令。

也可以将程序指令加载到设备上以使得待在设备上执行的一系列操 作步骤生成设备实现的处理,使得在设备上执行的指令提供用于实现指定 功能/动作的处理。

给出本公开内容是为了说明和描述,而非意在是穷举或限制。对本领 域技术人员来说,许多修改和变化是明显的。选择并描述示例实施方式是 为了说明原理和实际应用,并且使得除了本领域技术人员以外的其他人员 能够理解本公开内容,本公开内容对应于与预期的特定使用相称的、具有 多种修改的多种实施方式。

从而,尽管在此参考附图描述了说明性的示例实施方式,但要理解的 是,该描述不是限制性的,并且在不偏离本公开内容的范围或精神的情况 下本领域技术人员可以作出各种其他变化和修改。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号