CN103631656A - 大核和小核中的任务调度 - Google Patents
大核和小核中的任务调度 Download PDFInfo
- Publication number
- CN103631656A CN103631656A CN201310351523.6A CN201310351523A CN103631656A CN 103631656 A CN103631656 A CN 103631656A CN 201310351523 A CN201310351523 A CN 201310351523A CN 103631656 A CN103631656 A CN 103631656A
- Authority
- CN
- China
- Prior art keywords
- task
- core
- signature
- described task
- core signature
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5044—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
- G06F9/4887—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
- G06F9/4893—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues taking into account power or heat criteria
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5021—Priority
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Power Sources (AREA)
Abstract
本发明涉及大核和小核中的任务调度。一个方面提供了一种方法,该方法包括:对待被调度来在具有两个或更多个不同大小的核的信息处理设备上执行的任务进行识别;确定任务的适当调度以在两个或更多个不同大小的核上执行,其中,任务的适当调度经由任务的核签名来确定;基于所确定的适当调度将任务引向适当的核来执行;以及,在适当的核上执行任务。其他方面也被描述并要求保护。
Description
技术领域
本发明涉及进行任务调度的方法及其信息处理设备。
背景技术
传统的多核处理器包括单个组件或芯片,其中设置了多个中央处理单元或核以读取并执行程序指令。通常,多核处理器具有在处理能力方面相同的核。
当前,考虑到电池供电的移动设备的能效要求,对设置有不同大小的核的多核芯片不断做出改进。例如,在延长电池寿命方面,作为非限制性的示例,ARM CORTEXTM-A7处理器既提供了高性能又省电。目标是将较大核(例如ARM CORTEX-A15MPCORETM处理器)的性能与较小核(例如ARM CORTEXTM-A7处理器)的能效联系起来。ARMCORTEXTM-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内存储的、用于BIOS168的引导代码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连接)来进行连接。
在此参考示出了根据各种示例实施方式的示例方法、设备和程序产品的附图来描述各个方面。将理解的是,示出的动作和功能可以至少部分地由程序指令来实现。可以将这些程序指令提供给通用信息处理设备、专用信息处理设备或其他可编程数据处理设备或信息处理设备的处理器以产生机制,使得指令实现指定的功能/动作,所述指令经由设备的处理器来执行。
也可以将程序指令存储在设备可读介质中,该设备可读介质可以以特定的方式引导设备运行,以使得存储在设备可读介质中的指令生成制品,该制品包括实现指定的功能/动作的指令。
也可以将程序指令加载到设备上以使得待在设备上执行的一系列操作步骤生成设备实现的处理,使得在设备上执行的指令提供用于实现指定功能/动作的处理。
给出本公开内容是为了说明和描述,而非意在是穷举或限制。对本领域技术人员来说,许多修改和变化是明显的。选择并描述示例实施方式是为了说明原理和实际应用,并且使得除了本领域技术人员以外的其他人员能够理解本公开内容,本公开内容对应于与预期的特定使用相称的、具有多种修改的多种实施方式。
从而,尽管在此参考附图描述了说明性的示例实施方式,但要理解的是,该描述不是限制性的,并且在不偏离本公开内容的范围或精神的情况下本领域技术人员可以作出各种其他变化和修改。
Claims (20)
1.一种任务执行方法,包括:
对待被调度来在具有两个或更多个不同大小的核的信息处理设备上执行的任务进行识别;
确定所述任务的适当调度以在所述两个或更多个不同大小的核上执行,其中,所述任务的适当调度经由所述任务的核签名来确定;
基于所确定的适当调度将所述任务引向适当的核来执行;以及
在所述适当的核上执行所述任务。
2.根据权利要求1所述的方法,其中,所述不同大小的核中的大核是高功率中央处理单元,此外,所述不同大小的核中的小核是相对于所述大核功率较低的中央处理单元。
3.根据权利要求1所述的方法,其中,所述核签名包括被跟踪的执行历史。
4.根据权利要求1所述的方法,其中,所述核签名包括被确定的任务特性。
5.根据权利要求4所述的方法,其中,所述被确定的任务特性包括指示所述任务是高优先级任务的特性。
6.根据权利要求1所述的方法,其中,针对所述任务,对核签名进行编程,且所述核签名包括与整个任务相关联的提示。
7.根据权利要求1所述的方法,其中,针对所述任务,对核签名进行编程,且所述核签名包括与所述任务的子组件相关联的提示。
8.根据权利要求1所述的方法,其中,针对所述任务,对核签名进行编程,且所述核签名是静态的。
9.根据权利要求1所述的方法,其中,针对所述任务,对核签名进行编程,且所述核签名在所述任务的执行期间被动态地更新。
10.根据权利要求1所述的方法,其中,所述核签名经由如下过程确定,所述过程包括:
确定所述任务与小核是否适配;
确定所述任务是否为高优先级;以及
确定所述任务是否能够在小核利用率的阈值容限范围内在所述小核上执行。
11.一种信息处理设备,包括:
一个或更多个处理器;以及
存储器,所述存储器与所述一个或更多个处理器通信;
所述存储器存储程序指令,所述程序指令在由所述一个或更多个处理器执行时执行下述步骤:
对待被调度来在具有两个或更多个不同大小的核的信息处理设备上执行的任务进行识别;
确定所述任务的适当调度以在所述两个或更多个不同大小的核上执行,其中,所述任务的适当调度经由所述任务的核签名来确定;
基于所确定的适当调度将所述任务引向适当的核来执行;以及
在所述适当的核上执行所述任务。
12.根据权利要求11所述的信息处理设备,其中,所述不同大小的核中的大核是高功率中央处理单元,此外,所述不同大小的核中的小核是相对于所述大核功率较低的中央处理单元。
13.根据权利要求11所述的信息处理设备,其中,所述核签名包括被跟踪的执行历史。
14.根据权利要求11所述的信息处理设备,其中,所述核签名包括被确定的任务特征。
15.根据权利要求14所述的信息处理设备,其中,所述被确定的任务特性包括指示所述任务是高优先级任务的特性。
16.根据权利要求11所述的信息处理设备,其中,针对所述任务,对核签名进行编程,且所述核签名包括与整个所述任务相关联的提示。
17.根据权利要求11所述的信息处理设备,其中,针对所述任务,对核签名进行编程,且所述核签名包括与所述任务的子组件相关联的提示。
18.根据权利要求11所述的信息处理设备,其中,针对所述任务,对核签名进行编程,且所述核签名是静态的。
19.根据权利要求11所述的信息处理设备,其中,针对所述任务,对核签名进行编程,且所述核签名在所述任务的执行期间被动态地更新。
20.根据权利要求11所述的信息处理设备,其中,所述核签名经由如下过程确定,所述过程包括:
确定所述任务与小核是否适配;
确定所述任务是否为高优先级;以及
确定所述任务是否能够在小核利用率的阈值容限的范围内在所述小核上执行。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/590,467 | 2012-08-21 | ||
US13/590,467 US9619282B2 (en) | 2012-08-21 | 2012-08-21 | Task scheduling in big and little cores |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103631656A true CN103631656A (zh) | 2014-03-12 |
Family
ID=48746871
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310351523.6A Pending CN103631656A (zh) | 2012-08-21 | 2013-08-13 | 大核和小核中的任务调度 |
Country Status (4)
Country | Link |
---|---|
US (2) | US9619282B2 (zh) |
CN (1) | CN103631656A (zh) |
DE (1) | DE102013104328B4 (zh) |
GB (1) | GB2505273B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105677467A (zh) * | 2015-12-31 | 2016-06-15 | 中国科学院深圳先进技术研究院 | 基于量化标签的Yarn资源调度器 |
CN106095544A (zh) * | 2016-05-31 | 2016-11-09 | 北京小米移动软件有限公司 | 中央处理器控制方法及装置 |
CN107368255A (zh) * | 2017-07-25 | 2017-11-21 | 广东欧珀移动通信有限公司 | 解锁方法、移动终端及计算机可读存储介质 |
CN107608797A (zh) * | 2017-09-30 | 2018-01-19 | 广东欧珀移动通信有限公司 | 文件处理方法、装置、存储介质及电子设备 |
CN109947569A (zh) * | 2019-03-15 | 2019-06-28 | Oppo广东移动通信有限公司 | 绑定核心的方法、装置、终端及存储介质 |
CN113204425A (zh) * | 2021-04-21 | 2021-08-03 | 深圳市腾讯网络信息技术有限公司 | 供进程管理内部线程的方法、装置、电子设备及存储介质 |
CN116737346A (zh) * | 2023-08-14 | 2023-09-12 | 南京翼辉信息技术有限公司 | 一种大小核处理器调度配置系统及其实现方法 |
Families Citing this family (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8994827B2 (en) | 2012-11-20 | 2015-03-31 | Samsung Electronics Co., Ltd | Wearable electronic device |
US10185416B2 (en) | 2012-11-20 | 2019-01-22 | Samsung Electronics Co., Ltd. | User gesture input to wearable electronic device involving movement of device |
US11157436B2 (en) | 2012-11-20 | 2021-10-26 | Samsung Electronics Company, Ltd. | Services associated with wearable electronic device |
US11237719B2 (en) | 2012-11-20 | 2022-02-01 | Samsung Electronics Company, Ltd. | Controlling remote electronic device with wearable electronic device |
US11372536B2 (en) | 2012-11-20 | 2022-06-28 | Samsung Electronics Company, Ltd. | Transition and interaction model for wearable electronic device |
US10423214B2 (en) * | 2012-11-20 | 2019-09-24 | Samsung Electronics Company, Ltd | Delegating processing from wearable electronic device |
US9477313B2 (en) | 2012-11-20 | 2016-10-25 | Samsung Electronics Co., Ltd. | User gesture input to wearable electronic device involving outward-facing sensor of device |
US10551928B2 (en) | 2012-11-20 | 2020-02-04 | Samsung Electronics Company, Ltd. | GUI transitions on wearable electronic device |
KR102082859B1 (ko) * | 2013-01-07 | 2020-02-28 | 삼성전자주식회사 | 복수의 이종 코어들을 포함하는 시스템 온 칩 및 그 동작 방법 |
US20150084583A1 (en) * | 2013-09-24 | 2015-03-26 | Nvidia Corporation | Control of wireless battery charging |
US9858115B2 (en) | 2013-10-30 | 2018-01-02 | Mediatek Inc. | Task scheduling method for dispatching tasks based on computing power of different processor cores in heterogeneous multi-core processor system and related non-transitory computer readable medium |
CN103645954B (zh) * | 2013-11-21 | 2018-12-14 | 华为技术有限公司 | 一种基于异构多核体系的cpu调度方法、装置和系统 |
US10691332B2 (en) | 2014-02-28 | 2020-06-23 | Samsung Electronics Company, Ltd. | Text input on an interactive display |
US9424092B2 (en) | 2014-09-26 | 2016-08-23 | Microsoft Technology Licensing, Llc | Heterogeneous thread scheduling |
JP2016091137A (ja) * | 2014-10-31 | 2016-05-23 | コニカミノルタ株式会社 | 画像形成装置、特定処理実行方法、およびコンピュータプログラム |
US10628214B2 (en) | 2015-06-01 | 2020-04-21 | Samsung Electronics Co., Ltd. | Method for scheduling entity in multicore processor system |
US9811389B2 (en) * | 2015-09-23 | 2017-11-07 | Intel Corporation | Task assignment for processor cores based on a statistical power and frequency model |
KR102501240B1 (ko) * | 2016-03-18 | 2023-02-17 | 삼성전자주식회사 | 태스크 스케줄링 방법 및 이를 구현한 전자 장치 |
US10459760B2 (en) * | 2016-07-08 | 2019-10-29 | Sap Se | Optimizing job execution in parallel processing with improved job scheduling using job currency hints |
US10394604B2 (en) * | 2017-03-15 | 2019-08-27 | Samsung Electronics Co., Ltd. | Method for using local BMC to allocate shared GPU resources inside NVMe over fabrics system |
US10459517B2 (en) * | 2017-03-31 | 2019-10-29 | Qualcomm Incorporated | System and methods for scheduling software tasks based on central processing unit power characteristics |
EP3662368B1 (en) * | 2017-08-16 | 2022-07-20 | Samsung Electronics Co., Ltd. | Method and apparatus for managing scheduling of services during boot-up |
KR102563648B1 (ko) | 2018-06-05 | 2023-08-04 | 삼성전자주식회사 | 멀티 프로세서 시스템 및 그 구동 방법 |
CN110968415B (zh) * | 2018-09-29 | 2022-08-05 | Oppo广东移动通信有限公司 | 多核处理器的调度方法、装置及终端 |
CN110347486B (zh) * | 2019-07-02 | 2023-09-15 | Oppo广东移动通信有限公司 | 应用程序的线程分配方法、装置、设备及可读存储介质 |
US11314558B2 (en) * | 2019-07-23 | 2022-04-26 | Netapp, Inc. | Methods for dynamic throttling to satisfy minimum throughput service level objectives and devices thereof |
KR20210101071A (ko) | 2020-02-07 | 2021-08-18 | 삼성전자주식회사 | 이종의 다중-프로세서에 기반하여 스케줄링을 수행하기 위한 전자 장치 및 그의 동작 방법 |
US11789520B1 (en) * | 2023-04-24 | 2023-10-17 | RTSync Corp. | System and method for activity-based design process framework for discrete event systems chip |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101354693A (zh) * | 2008-09-11 | 2009-01-28 | 重庆邮电大学 | 一种异构多核处理器的核间通信调度系统及方法 |
US7996839B2 (en) * | 2003-07-16 | 2011-08-09 | Hewlett-Packard Development Company, L.P. | Heterogeneous processor core systems for improved throughput |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4090908B2 (ja) | 2003-02-21 | 2008-05-28 | シャープ株式会社 | 画像処理装置および画像形成装置 |
JP4082706B2 (ja) | 2005-04-12 | 2008-04-30 | 学校法人早稲田大学 | マルチプロセッサシステム及びマルチグレイン並列化コンパイラ |
US20080127192A1 (en) | 2006-08-24 | 2008-05-29 | Capps Louis B | Method and System for Using Multiple-Core Integrated Circuits |
JP2008084009A (ja) | 2006-09-27 | 2008-04-10 | Toshiba Corp | マルチプロセッサシステム |
WO2008148625A1 (en) | 2007-06-05 | 2008-12-11 | Siemens Aktiengesellschaft | Method and device for scheduling a predictable operation of an algorithm on a multi-core processor |
US8615647B2 (en) * | 2008-02-29 | 2013-12-24 | Intel Corporation | Migrating execution of thread between cores of different instruction set architecture in multi-core processor and transitioning each core to respective on / off power state |
US20090288092A1 (en) | 2008-05-15 | 2009-11-19 | Hiroaki Yamaoka | Systems and Methods for Improving the Reliability of a Multi-Core Processor |
US20100262966A1 (en) | 2009-04-14 | 2010-10-14 | International Business Machines Corporation | Multiprocessor computing device |
US9069553B2 (en) * | 2011-09-06 | 2015-06-30 | Marvell World Trade Ltd. | Switching tasks between heterogeneous cores |
-
2012
- 2012-08-21 US US13/590,467 patent/US9619282B2/en active Active
-
2013
- 2013-04-29 DE DE102013104328.3A patent/DE102013104328B4/de active Active
- 2013-05-16 GB GB1308857.0A patent/GB2505273B/en active Active
- 2013-08-13 CN CN201310351523.6A patent/CN103631656A/zh active Pending
-
2015
- 2015-03-18 US US14/661,146 patent/US9710309B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7996839B2 (en) * | 2003-07-16 | 2011-08-09 | Hewlett-Packard Development Company, L.P. | Heterogeneous processor core systems for improved throughput |
CN101354693A (zh) * | 2008-09-11 | 2009-01-28 | 重庆邮电大学 | 一种异构多核处理器的核间通信调度系统及方法 |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105677467A (zh) * | 2015-12-31 | 2016-06-15 | 中国科学院深圳先进技术研究院 | 基于量化标签的Yarn资源调度器 |
CN106095544A (zh) * | 2016-05-31 | 2016-11-09 | 北京小米移动软件有限公司 | 中央处理器控制方法及装置 |
CN106095544B (zh) * | 2016-05-31 | 2019-10-11 | 北京小米移动软件有限公司 | 中央处理器控制方法及装置 |
CN107368255A (zh) * | 2017-07-25 | 2017-11-21 | 广东欧珀移动通信有限公司 | 解锁方法、移动终端及计算机可读存储介质 |
CN107368255B (zh) * | 2017-07-25 | 2019-04-12 | Oppo广东移动通信有限公司 | 解锁方法、移动终端及计算机可读存储介质 |
CN107608797A (zh) * | 2017-09-30 | 2018-01-19 | 广东欧珀移动通信有限公司 | 文件处理方法、装置、存储介质及电子设备 |
CN109947569A (zh) * | 2019-03-15 | 2019-06-28 | Oppo广东移动通信有限公司 | 绑定核心的方法、装置、终端及存储介质 |
CN109947569B (zh) * | 2019-03-15 | 2021-04-06 | Oppo广东移动通信有限公司 | 绑定核心的方法、装置、终端及存储介质 |
CN113204425A (zh) * | 2021-04-21 | 2021-08-03 | 深圳市腾讯网络信息技术有限公司 | 供进程管理内部线程的方法、装置、电子设备及存储介质 |
CN113204425B (zh) * | 2021-04-21 | 2023-04-07 | 深圳市腾讯网络信息技术有限公司 | 供进程管理内部线程的方法、装置、电子设备及存储介质 |
CN116737346A (zh) * | 2023-08-14 | 2023-09-12 | 南京翼辉信息技术有限公司 | 一种大小核处理器调度配置系统及其实现方法 |
CN116737346B (zh) * | 2023-08-14 | 2023-10-24 | 南京翼辉信息技术有限公司 | 一种大小核处理器调度配置系统及其实现方法 |
Also Published As
Publication number | Publication date |
---|---|
US9710309B2 (en) | 2017-07-18 |
US20150261579A1 (en) | 2015-09-17 |
GB2505273A (en) | 2014-02-26 |
US20140059558A1 (en) | 2014-02-27 |
GB2505273B (en) | 2015-01-07 |
DE102013104328B4 (de) | 2018-05-24 |
US9619282B2 (en) | 2017-04-11 |
DE102013104328A1 (de) | 2014-02-27 |
GB201308857D0 (en) | 2013-07-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103631656A (zh) | 大核和小核中的任务调度 | |
CN103631655B (zh) | 大核和小核中的任务调度 | |
US10775873B2 (en) | Performing power management in a multicore processor | |
CN106843430B (zh) | 用于能效和节能的方法、装置和系统 | |
US7689838B2 (en) | Method and apparatus for providing for detecting processor state transitions | |
US10254818B2 (en) | Priority based application event control (PAEC) to reduce power consumption | |
CN107209545B (zh) | 在多核处理器中执行功率管理 | |
CN102812439B (zh) | 用于在多处理器计算机系统中分派任务的方法和系统 | |
CN111886562A (zh) | 用于处理器的优化节流的系统、装置和方法 | |
US9081577B2 (en) | Independent control of processor core retention states | |
US20140181811A1 (en) | Hypervisor modification of advanced configuration and power interface (acpi) tables | |
CN104137024A (zh) | 包括使用深降电模式的高能效处理器热节流的用于高能效且节能的方法、装置和系统 | |
JP2022526765A (ja) | プロセッサのパワーライセンス制御のためのシステム、装置、および方法 | |
JP2017073000A (ja) | 並列化方法、並列化ツール、車載装置 | |
CN103853527A (zh) | 切换多线程程序中的对象锁定模式的方法和系统 | |
TW201339822A (zh) | 包括可組配最大處理器電流之用於能源效率及節能之方法、裝置及系統 | |
US20240103601A1 (en) | Power management chip, electronic device having the same, and operating method thereof | |
WO2023097426A1 (en) | Methods and apparatus to improve sleep state demotion with hardware power monitor | |
WO2023225991A1 (en) | Dynamic establishment of polling periods for virtual machine switching operations | |
CN115617470A (zh) | 用于向软件进程提供线程调度提示的设备、方法和系统 | |
KR20240043635A (ko) | 전력 관리 칩, 그것을 포함하는 전자 장치, 및 그것의 동작 방법 | |
JP2012230488A (ja) | 情報処理装置、スケジューリング方法、プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20140312 |