基于线程重要性的处理器核停止和频率选择的制作方法

文档序号:17943338发布日期:2019-06-18 23:19阅读:168来源:国知局
基于线程重要性的处理器核停止和频率选择的制作方法

随着计算技术的进步,计算机在我们的生活中变得越来越普遍。很多计算设备被设计为使用电池供电,诸如移动电话、平板电脑等。具有计算设备的这样的移动性增加了它们的可用性,但是并非没有问题。这样的一个问题是由这些计算设备提供的各种功能消耗大量不必要的功率。这导致电池耗尽,使得用户无法使用计算设备直到计算设备被再充电。这可能导致用户无法以他们想要的方式使用他们的设备,并且用户对他们的设备感到沮丧。



技术实现要素:

提供本“发明内容”是为了以简化的形式介绍一些概念,这些概念将在下面的“具体实施方式”中进一步描述。本“发明内容”不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于限制所要求保护的主题的范围。

根据一个或多个方面,确定被调度为在处理器核上运行的第一线程的重要性级别。重要性级别是多个不同的重要性级别中的一个重要性级别。确定与重要性级别相关联的频率范围,或者确定与重要性级别相关联的能量性能偏好值,该频率范围是多个不同频率范围中的一个,该能量性能偏好值是多个能量性能偏好值中的一个。处理器核被配置为在运行第一线程的同时在频率范围或根据能量性能偏好值运行。

根据一个或多个方面,针对在给定持续时间内在处理器核上运行的多个线程中的每个线程,确定线程的重要性级别,每个重要性级别是多个不同的重要性级别中的一个。至少部分基于在给定持续时间内在处理器核上运行的线程的重要性级别来确定处理器核的利用因子。基于处理器核的利用因子来确定是否停止处理器核。响应于基于处理器核的利用因子而确定停止处理器核,停止处理器核。

附图说明

参考附图描述详细描述。在附图中,附图标记的最左边的(多个)数字标识首次出现附图标记的图。在说明书和附图中的不同实例中使用相同的附图标记可以指示相似或相同的项目。附图中表示的实体可以指示一个或多个实体,并且因此可以在讨论中将单数或复数形式的实体可互换地引用。

图1是示出根据一个或多个实施例的实现基于线程重要性的处理器核停止(park)和频率选择的示例计算设备的框图。

图2是示出根据一个或多个实施例的用于确定与线程的不同重要性级别相关联的不同频率范围的示例过程的流程图。

图3示出了根据一个或多个实施例的处理器核的性能的示例图。

图4是示出根据一个或多个实施例的用于实现本文中讨论的技术的示例过程的流程图。

图5是示出根据一个或多个实施例的用于实现本文中讨论的技术的另一示例过程的流程图。

图6示出了包括表示可以实现本文中描述的各种技术的一个或多个系统和/或设备的示例计算设备的示例系统。

具体实施方式

本文中讨论基于线程重要性的处理器核停止和频率选择。计算设备包括一个或多个处理器,并且每个处理器包括一个或多个处理器核(本文中也简称为核)。各种程序在计算设备上运行为一个或多个进程,每个进程包括一个或多个线程。每个处理器核支持各种不同的频率范围,也称为p状态,并且可以操作以在这些不同频率范围内的任何一个频率范围来运行线程。处理器核的效率在不同的频率范围发生变化,并且通常不是线性的。例如,由处理器完成的工作量与处理器核的频率近似线性地增加,但是执行该工作量所消耗的功率量可以以更快的速率(例如,指数地)增加。

计算设备中的线程被分配多个重要性级别中的一个重要性级别。可以存在两个重要性级别(例如,重要的和不重要的),或者替代地,可以存在任何数目的重要性级别。线程的重要性级别可以基于各种不同的因素来确定,诸如线程是否属于前台进程或其后代,线程是否拥有前台或可见窗口,线程是否涉及音频回放,线程是否正在代表另一高重要性或高质量的服务线程,等等。在一个或多个实施例中,处理器核被配置为基于其正在运行的线程的重要性级别来在特定频率范围运行。例如,具有不重要的重要性级别的线程可以在对于第一处理器核的最高效(或在阈值量内(诸如5%)是最高效的)的频率范围内执行。对于处理器核的最高效频率范围是指处理器核具有最大或最高每瓦特性能(单位功率)的一个或多个频率。然而,具有重要的重要性级别的线程可以在较高的频率范围执行,导致具有重要的重要性级别的线程比具有不重要的重要性级别的线程更快地执行,但是性能级别的效率(例如,每瓦特完成的工作较少,并且因此每单位工作的能耗较高)也低于执行具有不重要的重要性级别的线程的频率范围。

在一个或多个实施例中,重要性级别被称为服务质量级别。在这样的实施例中,线程被分配多个服务质量级别(例如,高服务质量和低服务质量)中的一个,该服务质量级别指示接收线程的服务质量。本文中关于不同重要性级别的讨论类似地适用于不同的服务质量级别。处理器核被配置为基于其运行的线程的服务质量级别来在特定频率范围运行。例如,被分配低服务质量级别的线程可以在对于处理器核最高效(或在最高效的阈值量(诸如5%)内)的频率范围内执行。但是,被分配高服务质量级别的线程可以在较高的频率范围执行,从而导致具有高服务质量的线程比具有低服务质量的线程更快地执行,但是性能级别的效率(例如,每瓦特完成的工作较少,并且因此每单位工作的能耗较高)也低于执行具有低服务质量的线程的频率范围。

另外地或替代地,每组处理器核被配置有特定能量性能偏好(epp)值。能量性能偏好值指示处理器核在执行线程时根据偏好较高性能或较低能量使用的特定能量性能偏好来运行。处理器核被配置为基于其正在运行的线程的重要性级别根据能量性能偏好来运行。例如,处理器核可以被配置为根据指示偏好较高性能(和较高能耗)执行具有重要的重要性级别的线程的能量性能偏好来运行,反之处理器核可以被配置为根据指示偏好较低能量使用执行具有不重要的重要性级别的线程的能量性能偏好来运行。

还可以在某个持续时间(例如,前100毫秒(ms))内确定处理器核的利用因子。利用因子基于处理器核运行(多个)线程的持续时间期间的时间量,并且基于在该持续时间期间运行的(多个)线程的重要性级别。特定重要性级别(例如,不重要的重要性级别)的线程可以从利用因子中被排除,或者与在其他重要性级别运行的线程相比,在确定利用因子时被给予较小权重。然后可以使用利用因子来确定是否停止处理器核,这是指将处理器核置于低功率模式。例如,如果处理器核的利用因子小于阈值量(例如,3%)并且在就绪队列中没有排队/备份的待决的高重要性级别线程,则可以停止处理器核达下一使用持续时间/时段。

使用本文中讨论的技术,当具有小于特定重要性级别的重要性级别的线程(例如,具有不重要的重要性级别的线程)在计算设备上运行时,降低计算设备的功耗。具有重要性级别小于特定重要性级别的重要性级别的线程可以在与处理器核能够运行线程(但是更有效)的频率范围相比更慢的频率范围和/或根据偏好较低能量使用的能量性能偏好进行运行。因此,具有重要性级别小于特定重要性级别的重要性级别的线程仍然可以执行,但是没有花费附加的功率来以更快的速率执行这些线程。另外地或替代地,当处理器核运行具有小于特定重要性级别的重要性级别的线程(例如,具有不重要的重要性级别的线程)时,可以从用于处理器核的利用因子的确定中去除这些线程(或者减少它们的影响)。这允许处理器核被停止以主要(或单独)基于具有至少特定重要性级别的线程(例如,具有重要的重要性级别的线程)而不是其他不太重要的线程来节省能量。

图1是示出根据一个或多个实施例的实现基于线程重要性的处理器核停止和频率选择的示例计算设备100的框图。计算设备100可以是各种不同类型的设备,诸如台式计算机、服务器计算机、膝上型计算机或上网本计算机、移动设备(例如,平板电脑或平板设备、蜂窝或其他无线电话(例如,智能手机)、记事本计算机、移动台)、可穿戴设备(例如,眼镜、头戴式显示器、手表、手镯、虚拟现实(vr)设备、增强现实(ar)设备)、娱乐设备(例如,娱乐器件、通信地耦合到显示设备的机顶盒、游戏控制台)、物联网(iot)设备(例如,具有软件、固件和/或硬件以允许与其他设备通信的对象或物品)、电视或其他显示设备、汽车计算机等。因此,计算设备100的范围可以从具有大量存储器和处理器资源的完全资源设备(例如,个人计算机、游戏控制台)到具有有限存储器和/或处理资源的低资源设备(例如,传统的机顶盒、手持游戏机)。

计算设备100包括一个或多个处理器核102、操作系统104、一个或多个应用106、以及一个或多个输入/输出(i/o)组件108。处理器核102可以被包括作为单个处理器(例如,多核处理器)芯片的一部分和/或作为单独的处理器芯片的一部分。

i/o组件108包括被配置为从计算设备100输出数据或指令和/或接收用于计算设备100的数据或指令的各种组件或模块。i/o组件包括例如通信组件(例如,所支持的无线和/或有线通信)、用户输出组件(例如,显示组件)、用户输入组件(例如,键盘)等。

操作系统104管理应用106的执行。应用106可以是各种不同类型的应用中的任何一种,诸如生产力应用、游戏或娱乐应用、实用程序应用等。操作系统104本身也可以由多个程序组成,并且操作系统104也管理这些模块或程序的执行。

应用106和操作系统104被执行作为在计算设备100上的一个或多个进程112。每个进程112是应用106或操作系统104的一部分(例如,模块)的实例化。每个进程112通常包括更多线程114。但是,在某些情况下,进程112不包括多个线程114,在这种情况下,该进程可以被视为单线程进程。

操作系统104通过调度应用106的线程114的执行来管理应用106的执行。操作系统104还调度操作系统104的程序的线程114的执行。调度线程以执行是指通知处理器核102执行线程的指令。

每个处理器核102操作以在特定频率范围处或在特定频率范围内运行线程114。处理器核102具有其可以运行的相关联的最大频率,但是在一个或多个实施例中,还可配置为在特定频率或在由在计算设备100上运行的程序指定的特定频率范围内运行。在一个或多个实施例中,处理器核102具有两个寄存器,这两个寄存器可以由在计算设备100上运行的程序写入以设置指定处理器核102要在其内运行的频率范围的上限频率和下限频率。处理器核102继续在该指定的频率范围内操作以执行线程。另外地或替代地,处理器102可以具有单个寄存器,该单个寄存器由在计算设备100上运行的程序写入,以指定处理器核102要以其运行的频率。处理器核102继续以该指定频率(或在基于指定频率范围而确定的频率范围内,诸如指定频率范围加上或减去5%)操作。

另外地或替代地,每个处理器核102可以被配置有能量性能偏好(epp)。能量性能偏好向处理器指示在执行线程时是偏好高性能还是较低能量使用。例如,在从0到100的epp级别上,epp值0表示“最高性能”,并且epp值100表示“最低能量”。处理器核102包含内部逻辑,以基于利用因子来调节频率本身。响应于处理器核102的利用因子的增加,较低的epp值将使处理器核102在频率增加时更积极,反之亦然。另外地或替代地,例如,内部处理器核102逻辑可以确定如果epp大于某个特定值,则处理器核102将不会将频率提升到某个点以上。在一个或多个实施例中,处理器核102具有寄存器,该寄存器可以由在计算设备100上运行的程序(例如,操作系统104的模块)写入以根据处理器核102将运行的程序来设置能量性能偏好的。

操作系统104包括调度器120和基于线程重要性的核配置系统122。调度器120确定哪些线程114在哪些时间调度以由哪些处理器核102执行。调度器120可以基于各种公共和/或专有技术以各种不同方式来做出这些调度决策,诸如基于由操作系统104分配给线程的优先级,基于每个线程已经被调度了多少执行时间,等等。

基于线程重要性的核配置系统122确定在计算设备100上运行的每个线程114的重要性级别,并且基于所确定的重要性级别来配置处理器核102。基于线程重要性的核配置系统122包括线程重要性确定模块132、核频率配置模块134和核停止模块136。线程重要性确定模块132使用各种不同的规则或标准来确定每个线程114的重要性级别,如下面更详细地讨论的。核频率配置模块134基于在该处理器核102上运行的线程114的重要性级别来确定处理器核102的频率范围,并且向该处理器核102提供配置信息,使得该处理器核102能够在所确定的频率范围运行。另外地或替代地,核频率配置模块134可以基于在该处理器核102上运行的线程114的重要性级别来确定处理器核102的能量性能偏好,并且向该处理器核102提供配置信息,使得处理器核102能够根据所确定的能量性能偏好来运行。核停止模块136基于处理器核102的利用因子来确定是否停止处理器核102,利用因子至少部分基于在该处理器核102上运行的线程114的重要性。尽管被示出为与调度器120分离,但是诸如线程重要性确定模块等基于线程重要性的核配置系统122的一个或多个模块可以实现为调度器120的一部分。

应当注意,在一些情况下,基于线程重要性的核配置系统122不包括核频率配置模块134和核停止模块136两者。例如,基于线程重要性的核配置系统122可能不支持基于利用因子来停止处理器核102,该利用因子基于在该处理器核102上运行的线程114的重要性,在这种情况下,核停止模块136不需要被包括在基于线程重要性的核配置系统122中。作为另一示例,基于线程重要性的核配置系统122可能不支持基于在该处理器核102上运行的线程的重要性级别来确定处理器核102的频率范围,在这种情况下,核频率配置模块134不需要被包括在基于线程重要性的核配置系统122中。

每个处理器核102可以操作以在不同频率范围内执行线程114。通常,在较高频率执行线程导致线程114的执行比在较低频率执行时更快,但是与在较低频率执行时相比还具有更多功耗。在一个或多个实施例中,基于线程重要性的核配置系统122被配置有或以其他方式获取与线程的不同重要性级别相关联的各种不同频率范围的指示。在一个或多个实施例中,这些相关联的频率范围被选择或确定为使得较低重要性的线程在更有效的频率范围(例如,在处理器核102执行线程的最高效频率范围的阈值量内)执行,但比重要性较高的线程慢。基于线程重要性的核配置系统利用线程的重要性级别来减少由处理器核102在执行线程时所消耗的功率,同时记住不重要的工作(例如,由具有较低重要性级别的线程完成)是不紧急的。

在一个或多个实施例中,与线程的不同重要性级别相关联的不同频率范围的指示被提供给基于线程重要性的核配置系统122。这些指示可以在基于线程重要性的核配置系统122中预先配置,可以被保持在基于线程重要性的核配置系统122可访问的数据存储器(例如,注册表、数据库等)中,等等。在这种情况下,指示由另一设备或组件预先确定,诸如处理器核102的制造商、计算设备100的原始设备制造商(oem)等。

另外地或替代地,基于线程重要性的核配置系统122确定与线程的不同重要性级别相关联的不同频率范围。基于线程重要性的核配置系统122可以以各种不同方式确定与线程的不同重要性级别相关联的不同频率范围。在一个或多个实施例中,基于线程重要性的核配置系统122包括在处理器核102上运行工作负荷(例如,指令集)的模块以确定各种频率范围,如下所述。

图2是示出根据一个或多个实施例的用于确定与线程的不同重要性级别相关联的不同频率范围的示例过程200的流程图。过程200由诸如图1的计算设备100等计算设备执行,并且可以用软件、固件、硬件或其组合来实现。过程200被示出为一组动作,并且不限于所示的用于执行各种动作的操作的顺序。过程200是用于实现确定与线程的不同重要性级别相关联的不同频率范围的示例过程;本文中参考不同附图包括实现确定与线程的不同重要性级别相关联的不同频率范围的附加讨论。

在过程200中,在多个不同频率中的每个频率处在处理器核上执行工作负荷(动作202)。工作负荷是一组指令。处理器核运行的频率可以由在计算设备102上运行的程序指定,诸如通过设置处理器核的一个或多个寄存器,如上所述。工作负荷在处理器核上以多个不同频率中的每个频率执行,诸如通过以较低频率(例如,500兆赫(mhz))开始并且将频率递增100mhz直到上限频率(例如,处理器核的最高额定频率,诸如2.9千兆赫(ghz))。因此,例如,工作负荷以500mhz执行,然后以600mhz执行,然后以700mhz执行,依此类推。

针对执行工作负荷的每个频率,确定处理器核在该频率下的功耗(动作204)。处理器核在该频率下的功耗可以以各种不同的方式确定。在一个或多个实施例中,处理器核包括寄存器,处理器核在该寄存器中记录处理器核在任何给定时间消耗多少能量(例如,多少焦耳)。该寄存器由在计算设备102上运行的程序读取,并且在处理器核运行的频率下的平均功耗可以通过将在以该频率运行时处理器核消耗的能量的量除以处理器核以该频率运行的时间量来容易地确定。

对于执行工作负荷的动作202中的多个不同频率中的每个频率,确定处理器核的每瓦特性能(动作206)。对于多个不同频率中的每个,可以通过将频率除以在该频率下确定的功耗来容易地生成每瓦特性能。尽管本文中讨论了每瓦特性能,但是应当注意,可以替代地使用除了瓦特之外的功率单位。

基于多个频率中的每个频率的每瓦特性能,将频率范围与每个重要性级别相关联(动作208)。可以应用各种不同的规则或标准来将重要性级别与频率范围相关联。在一个或多个实施例中,使用两个重要性级别:重要和不重要。给定多个不同频率中的每个频率的每瓦特性能,可以容易地标识出给出最大或最高每瓦特性能的一个或多个频率。不重要的重要性级别的频率范围包括具有最大或最高每瓦特性能的一个或多个频率(或者在给出最大或最高每瓦特性能的一个或多个频率的阈值量(诸如5%)内的一个或多个频率)。针对不重要的重要性级别的频率范围还可以包括附加频率,诸如每瓦特性能在最大或最高每瓦特性能的阈值量(例如,5%)内的频率。继续该示例,重要的重要性级别的频率范围的范围是从不重要的重要性级别的频率范围的上限到满足性能阈值的另一值。该性能阈值可以以各种方式确定,诸如每瓦特性能比最大或最高每瓦特性能低阈值量(例如,10%)的频率。

可以为计算设备100中的每个处理器核102执行过程200。或者,如果两个处理器核102相同(例如,以相同的速度操作,具有相同的架构,等等),则与在动作208中针对处理器核102中的一个处理核确定的每个重要性级别相关联的频率范围可以用于其他相同的处理器核102。

图3示出了根据一个或多个实施例的处理器核的性能的示例图300。横(x)轴上是以ghz为单位的处理器核频率,并且纵(y)轴上是每瓦特性能。范围从1.1ghz到1.8ghz的频率范围302与重要的重要性级别相关联。范围从1.8ghz到2.4ghz的频率范围304与不重要的重要性级别相关联。

返回图1,线程重要性确定模块132确定每个线程114的重要性级别。可以使用各种不同的规则或标准来确定线程114的重要性级别。在一个或多个实施例中,使用两个重要性级别:重要和不重要。在默认情况下,线程114被确定为具有不重要的重要性级别,除非一个或多个标准指示线程114具有重要的重要性级别。本文中讨论各种不同的标准。应当注意,这些标准是示例,并且并不是需要使用所有这些标准,和/或可以使用其他标准。

用于确定线程114是否具有重要的重要性级别的一个标准是线程114是否属于前台进程或其后代。前台进程是指在计算设备100上运行的最前面或前台进程。前台进程的后代是由前台进程产生的进程。如果线程114属于前台进程或前台进程的后代,则确定线程114具有重要的重要性级别。

用于确定线程114是否具有重要的重要性级别的另一标准是线程114是否拥有前台或可见窗口。前台或可见窗口是指由计算设备109显示并且可见的窗口(例如,由观看计算设备100的显示器的用户看到)。如果线程114拥有前台或可见窗口,则线程114被确定为具有重要的重要性级别。

用于确定线程114是否具有重要的重要性级别的另一标准是线程是否代表具有重要的重要性级别的另一线程工作(例如,经由跨线程/进程通信机制)。哪些线程代表另一线程工作在与线程相关联的数据中指示(例如,由操作系统104保持的线程元数据)。代表其他线程工作的线程链可以跟随有基于线程重要性的核配置系统122,以确定线程是否代表具有重要的重要性级别的另一线程工作。如果线程114代表具有重要的重要性级别的另一线程工作,则确定线程114具有重要的重要性级别。

用于确定线程114是否具有重要的重要性级别的另一标准是线程114是否具有高cpu(处理器)优先级。线程114通常具有正常优先级,但是可以由于各种不同原因中的任何一种而由操作系统104增加到高优先级线程,诸如线程114正在等待i/o,线程114属于前台进程,线程114正在竞争锁定,等等。如果线程114具有高cpu优先级,则确定线程114具有重要的重要性级别。

用于确定线程114是否具有重要的重要性级别的另一标准是线程114是否是系统线程。系统线程是指属于操作系统104的进程的线程。属于操作系统104的所有进程的线程可以是系统线程,或者替代地仅是一些线程(例如,内核(kernel)模式线程或由操作系统104指定的线程)可以是系统线程。如果线程114是系统线程,则确定线程114具有重要的重要性级别。

用于确定线程114是否具有重要的重要性级别的另一标准是线程114是否涉及音频回放。如果线程属于回放音频数据的进程(例如,作为音乐播放器程序的实例化的进程),则线程114涉及音频回放。如果线程114涉及音频回放,则确定线程114具有重要的重要性级别。

用于确定线程114是否具有重要的重要性级别的另一标准是线程114是否涉及显示图形。如果线程属于生成视频数据的进程(例如,作为电影播放器程序的实例化的进程)或以其他方式处理视频数据,则线程114涉及显示图形。如果线程114涉及显示图形,则确定线程114具有重要的重要性级别。

用于确定线程114是否具有重要的重要性级别的另一标准是线程114是否已经明确地请求以具有重要的重要性级别。线程114可以出于各种不同原因中的任何一个而请求具有重要的重要性级别,诸如线程114不希望被限制。如果线程114已经明确地请求具有重要的重要性级别,则确定线程114具有重要的重要性级别。

用于确定线程114是否具有重要的重要性级别的另一标准是线程114是否属于已知在后台中的应用。后台中的应用是指例如在计算设备102的显示器上最小化或以其他方式不可见(例如,查看计算设备102的显示器的计算设备102的用户不可见)的应用。如果线程114属于已知在后台中的应用,则确定线程114具有不重要的重要性级别。

尽管本文中针对两个不同的重要性级别包括示例,但是应当注意,基于线程重要性的核配置系统122可以支持任何数目的不同重要性级别。使用各种不同的规则或标准来确定线程114具有多个不同的重要性级别中的哪个。

例如,基于线程重要性的核配置系统122可以支持三个重要性级别:不重要、重要和超重要。可以使用上面讨论的一个或多个标准来确定线程114具有重要的重要性级别还是不重要的重要性级别。可以使用附加标准来确定线程114是否具有超重要的重要性级别,诸如线程114是否在错过最后期限的阈值时间量内。各种线程114可以具有必须运行的不同期限,诸如播放音频数据或视频数据。如果线程114在错过最后期限的阈值时间量(例如,5毫秒)内,则确定线程114具有超重要的重要性级别。

核频率配置模块134基于在该处理器核102上运行的线程114的重要性级别来确定处理器核102的频率范围,并且向该处理器核102提供配置信息使得该处理器核102在所确定的频率范围运行。对于给定线程114,核频率配置模块134访问与线程114的重要性级别相关联的频率范围,如上所述,并且向运行该线程的处理器核102提供配置信息,以在与线程114的重要性级别相关联的频率范围运行。

核频率配置模块134可以以各种不同方式向处理器核102提供配置信息。在一个或多个实施例中,处理器核102包括一个或多个寄存器,核频率配置模块134可以向寄存器写入频率或频率范围,如上所述。在处理器核102将开始执行特定线程114的处理器核102的上下文切换时,核频率配置模块134将指示频率或频率范围的值写入处理器核102的适当寄存器。然后,处理器核102继续在该指定的频率或频率范围运行线程114。应当注意,如本文中讨论的频率范围可以是宽范围(例如,跨越500mhz或更多)或窄范围(例如,跨越50mhz)。核频率配置模块134还可以指定与线程的重要性级别相关联的频率范围的单个频率,并且认识到处理器核102可以在大致等于(例如,在阈值量(诸如3%)内)指定频率的频率范围运行。

替代地,与线程114的重要性级别相关联的频率范围的指示可以被提供给处理器核102,作为上下文信息的一部分,而不是核频率配置模块134写入处理器核102的寄存器,上下文信息被包括作为上下文切换的一部分。在上下文切换期间,可以将各种信息作为上下文切换的一部分提供给处理器核102,包括各种处理器状态,诸如寄存器值。指示处理器核102将运行的频率范围的寄存器可以被包括作为该处理器状态的一部分,并且在线程114被切换出时被保存(因此另一线程可以由处理器核102运行),并且然后当上下文切换回线程114时被回写到处理器核102。保持频率范围作为上下文信息的一部分通过减少由核频率配置模块134对处理器核102的寄存器的单独写入,以指定与线程的重要性级别相关联的频率范围的需要而改善了计算设备100的性能。

在一个或多个实施例中,当线程114被切换出时(因此另一线程可以由处理器核102运行),该上下文信息被保存作为xsave(保存处理器扩展状态)指令的一部分。在一个或多个实施例中,作为xsave指令的一部分而保存的信息是指定处理器核102将针对线程114而运行的频率范围的处理器核102的寄存器的值。

另外地或替代地,上下文信息可以包括通过指定线程的重要性级别来对的对线程的重要性级别进行指示(例如,包括“重要”或“不重要”的数据值)。然后,处理器核102能够利用该信息在执行线程114时做出各种不同的功率节省决定。例如,处理器核102可以预先配置有每个重要性级别的频率范围,并且因此不需要由基于线程重要性的核配置系统122来通知这样的频率范围。作为另一示例,处理器核102可以针对处理器核102已知为不重要的线程采用附加功率节省技术,并且可以将这些附加功率节省技术应用于具有不重要的重要性级别的线程。

通过将线程重要性传送给处理器核(例如,使用xsave指令),处理器核102可以自主地做出更好的p状态调整决策。这减轻了操作系统104在每个上下文切换时手动调节处理器核的功率管理状态,这可能比向处理器核提供线程重要性信息并且允许其调节其功率管理参数的效率低。

应当注意,线程的优先级可以如上所述影响线程的重要性级别,但是线程的优先级不同于线程的重要性级别。调度器120使用线程的优先级来确定哪些线程以哪个顺序执行(例如,较高优先级线程在较低优先级线程之前执行)。调度器120使用线程的重要性级别来确定将执行线程的处理器核102的频率范围。

核停止模块136基于处理器核102的利用因子来确定是否停止处理器核102,利用因子至少部分基于在该处理器核102上运行的线程114的重要性。停止处理器102是指将处理器核102置于其中处理器核102不执行指令的低功率模式。核停止模块136可以响应于计算设备100中的其他事件等(例如,新进程的执行)而确定是否在各种不同时间停止处理器核102,诸如以规则或不规则的间隔。

核停止模块136确定处理器核102的利用因子。处理器核102的利用因子是指处理器核用于运行线程的频率,并且利用因子通过从利用因子中排除(或者在确定利用因子时被给予较少权重)具有较低重要性级别的线程来考虑所执行的线程的重要性级别。

核停止模块136在某个持续时间内(例如,前100毫秒(ms))确定处理器核102的利用因子。在一个或多个实施例中,核停止模块136忽略(排除考虑)由处理器核102运行的重要性级别小于阈值重要性级别的任何线程(例如,由处理器核102运行的具有不重要的重要性级别的任何线程)。例如,如果在前100ms内,处理器核运行具有重要的重要性级别的(多个)线程达50ms,并且运行具有不重要的重要性级别的(多个)线程达30ms,则核停止模块136忽略具有不重要的重要性级别的线程(在确定利用因子时不考虑这些线程)并且确定处理器核的利用因子为50%。

替代地,核停止模块136向由处理器核102运行的重要性级别小于阈值重要性级别的任何线程(例如,由处理器核102运行的具有不重要的重要性级别的任何线程)的影响给予较少权重或者减少该影响。这种减少的加权或影响可以以各种方式实现,诸如通过将该时间量比运行重要性级别小于阈值重要性级别的这些线程的全部时间量考虑得更少。例如,如果在前100ms内处理器核运行具有重要的重要性级别的(多个)线程达50ms,并且运行具有不重要的重要性级别的(多个)线程达30ms,则核停止模块136可以通过减少90%的时间量来减少具有不重要的重要性级别的线程的影响。例如,核停止模块136可以确定处理器核的利用因子是50ms(由于具有重要的重要性级别的线程)加上3ms(由于具有不重要的重要性级别的线程的30ms减少了90%),导致处理器核的利用因子为53%。

在其中基于线程重要性的核配置系统122支持三个或更多个重要性级别的情况下,核停止模块136可以以各种不同方式确定利用因子。在一个或多个实施例中,核停止模块136忽略由处理器核102运行的重要性级别小于阈值重要性级别的任何线程。例如,如果重要性级别是低、中和高,则核停止模块136可以忽略具有低重要性级别的线程,或者忽略具有低重要性级别或中等重要性级别的线程。

另外地或替代地,核停止模块136向具有不同重要性级别的线程给予不同的权重或影响。例如,如果重要性级别是低、中和高,则核停止模块136可以通过减少90%的时间量来减少具有低重要性级别的线程的影响,并且通过减少50%的时间量来减少具有中等重要性级别的线程的影响。因此,例如假定在前100ms内,处理器核运行具有高重要性级别的(多个)线程达50ms,并且运行具有中等重要性级别的(多个)线程达30ms,并且运行具有低重要性级别的线程达20ms。核停止模块136可以确定处理器核的利用因子是50ms(由于具有高重要性级别的线程)加上15ms(由于具有中等重要性级别的线程的30ms减少了50%)加上2ms(由于具有低重要性级别的线程的20ms减少了90%),导致处理器核的利用因子为67%。

核停止模块136使用每个处理器核102的利用因子来确定是否停止处理器核102。利用因子可以以各种不同的方式使用。在一个或多个实施例中,如果利用因子满足阈值(利用因子低于10%),则核停止模块136停止处理器核102。

类似地,核停止模块136使用处理器核102的利用因子来确定是否启动(unpark)所停止的处理器核102。启动处理器核是指使处理器核102从低功率模式退出,以允许线程再次在处理器核102上执行。可以以各种不同的方式使用利用因子来确定是否启动处理器核102。在一个或多个实施例中,如果处理器核102停止,则使用至少一个其他未停止的处理器核102的利用因子来确定是否启动所停止的处理器核102。例如,如果未停止的其他处理器核102(或者至少一个其他处理器核102)的利用因子不满足阈值(利用因子低于60%),则核停止模块136保持所停止的处理器核102继续停止。然而,如果未停止的其他处理器核102(或者至少一个其他处理器核102)的利用因子满足阈值(利用因子等于或高于60%),则核停止模块136启动所停止的处理器核102。

因此,核停止模块136减少或消除了重要性级别小于阈值重要性级别的线程(例如,由处理器核运行的具有不重要的重要性级别的任何线程)对于利用因子的贡献。因此,重要性级别小于阈值重要性级别的线程对处理器核的利用对于确定是否停止处理器核具有很小的影响或者没有影响,从而防止了重要性级别小于阈值重要性级别的线程(例如,不重要的线程)阻止处理器核的停止。

图4是示出根据一个或多个实施例的用于实现本文中讨论的技术的示例过程400的流程图。过程400由诸如图1的计算设备100等计算设备执行,并且可以用软件、固件、硬件或其组合来实现。过程400被示出为一组动作,并且不限于所示的用于执行各种动作的操作的顺序。过程400是用于实现本文中讨论的技术的示例过程;本文中参考不同的附图包括实现本文中讨论的技术的附加讨论。

在过程400中,确定被调度为在处理器核上运行的线程的重要性级别(动作402)。重要性级别是多个不同的重要性级别之一(例如,重要和不重要),并且可以以如上所述的各种不同方式确定。

确定与线程的重要性级别相关联的频率范围或能量性能偏好值(动作404)。如上所述,各种不同的频率范围可以与不同的重要性级别相关联。例如,如果线程具有不重要的重要性级别,则线程可以在针对处理器核最高效的频率范围内执行(例如,包括具有最大或最高每瓦特性能的一个或多个频率(或者提供最大或最高每瓦特性能的一个或多个频率的阈值量(诸如5%)内的一个或多个频率))。另外地或替代地,如上所述,各种不同的能量性能偏好值可以与不同的重要性级别相关联。

将处理器核被配置为在运行线程的同时根据在动作404中确定的频率范围或根据在动作404中确定的能量性能偏好值运行(动作406)。处理器核可以以如上所述的各种不同方式配置,诸如通过将指示频率范围的下限和上限频率的值写入处理器核的寄存器,在处理器核的上下文信息中提供频率范围的指示,向处理器核提供能量性能偏好值的指示,等等。

图5是示出根据一个或多个实施例的用于实现本文中讨论的技术的示例过程500的流程图。过程500由诸如图1的计算设备100等计算设备执行,并且可以用软件、固件、硬件或其组合来实现。过程500被示出为一组动作,并且不限于所示的用于执行各种动作的操作的顺序。过程500是用于实现本文中讨论的技术的示例过程;本文中参考不同的附图包括实现本文中讨论的技术的附加讨论。

在过程500中,确定在给定持续时间内在处理器核上运行的多个线程中的每个线程的重要性级别(动作502)。重要性级别每个是多个不同的重要性级别之一(例如,重要和不重要),并且可以以如上所述的各种不同方式确定。可以使用各种不同的持续时间,诸如100ms。

至少部分基于所确定的重要性级别来确定处理器核的利用因子(动作504)。利用因子反映处理器核在给定持续时间内用于运行线程的时间量。可以确定利用因子以便忽略该时间量,或者减少利用因子对运行某些线程(例如,重要性级别小于阈值重要性级别的线程,诸如不重要的线程)所花费的时间量的影响。

基于利用因子来确定是否停止处理器核(动作506)。可以以各种方式进行该确定,诸如将利用因子与阈值(例如,10%利用因子)进行比较。如果确定停止处理器核,则停止处理器核(动作508)。然而,如果确定不停止处理器核,则不停止处理器核(动作510)。

因此,本文中讨论的技术允许(例如,通过操作系统)决定处理器核的配置,诸如选择处理器核针对特定线程而运行的频率范围以及何时将处理器核停止在在处理器核上运行的线程的重要性级别。因此,可以实现智能节能系统,其允许被认为具有高重要性的线程快速运行,并且运行被认为不太重要的线程(例如,因为它们的工作不直接影响用户体验并且因此可能不是紧急的)以便以更大的功率节省(例如,处理器核的最高或接近最高效率)来运行。

图6总体上以600示出了包括示例计算设备602的示例系统,示例计算设备602表示可以实现本文中描述的各种技术的一个或多个系统和/或设备。计算设备602可以是例如服务提供商的服务器、与客户端(例如,客户端设备)相关联的设备、片上系统和/或任何其他合适的计算设备或计算系统。

如图所示的示例计算设备602包括处理系统604、一个或多个计算机可读介质606、以及彼此通信地耦合的一个或多个i/o接口608。虽然未示出,但是计算设备602还可以包括将各种组件彼此耦合的系统总线或其他数据和命令传输系统。系统总线可以包括利用各种总线架构中的任何总线架构的不同总线结构中的任何一个或组合,诸如存储器总线或存储器控制器、外围总线、通用串行总线、和/或处理器或本地总线。还构想了各种其他示例,诸如控制和数据线。

处理系统604表示使用硬件执行一个或多个操作的功能。因此,处理系统604被示出为包括可以被配置为处理器、功能块等的硬件元件610。这可以包括以硬件实现为专用集成电路或使用一个或多个半导体形成的其他逻辑器件。硬件元件610不受形成它们的材料或其中采用的处理机制的限制。例如,处理器可以包括(多个)半导体和/或晶体管(例如,电子集成电路(ic))。在这样的上下文中,处理器可执行指令可以是电子可执行指令。

计算机可读介质606被示出为包括存储器/存储设备612。存储器/存储设备612表示与一个或多个计算机可读介质相关联的存储器/存储容量。存储器/存储设备612可以包括易失性介质(诸如随机存取存储器(ram))和/或非易失性介质(诸如只读存储器(rom)、电阻ram(reram)、闪存、光盘、磁盘等)。存储器/存储设备612可以包括固定介质(例如,ram、rom、固定硬盘驱动器等)以及可移动介质(例如,闪存、可移动硬盘驱动器、光盘等)。计算机可读介质606可以以下面进一步描述的各种其他方式配置。

一个或多个输入/输出接口608表示允许用户向计算设备602输入命令和信息并且还允许使用各种输入/输出设备将信息呈现给用户和/或其他组件或设备的功能。输入设备的示例包括键盘、光标控制设备(例如,鼠标)、麦克风(例如,用于语音输入)、扫描仪、触摸功能(例如,被配置为检测物理触摸的电容或其他传感器)、相机(例如,其可以采用诸如红外频率等可见或不可见波长来检测不涉及作为手势的触摸的移动)等。输出设备的示例包括显示设备(例如,显示器或投影仪)、扬声器、打印机、网卡、触觉响应设备等。因此,计算设备602可以以下面进一步描述的各种方式配置以支持用户交互。

计算设备602还包括基于线程重要性的核配置系统614。基于线程重要性的核配置系统614提供各种功能以选择处理器核频率并且如上所述执行处理器核停止。基于线程重要性的核配置系统614通常被实现为计算设备602的操作系统的一部分,但是替代地可以与操作系统分开地实现。基于线程重要性的核配置系统614可以实现例如图1的基于线程重要性的核配置系统122。

本文中可以在软件、硬件元件或程序模块的一般上下文中描述各种技术。通常,这样的模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、元素、组件、数据结构等。本文中使用的术语“模块”、“功能”和“组件”通常表示软件、固件、硬件或其组合。本文中描述的技术的特征是平台无关的,这表示这些技术可以在具有各种处理器的各种计算平台上实现。

所描述的模块和技术的实现可以存储在某种形式的计算机可读介质上或通过其传输。计算机可读介质可以包括可以由计算设备602访问的各种介质。作为示例而非限制,计算机可读介质可以包括“计算机可读存储介质”和“计算机可读信号介质”。

“计算机可读存储介质”是指能够持久存储有形的信息和/或存储的介质和/或设备,与仅仅信号传输、载波或信号本身相反。计算机可读存储介质是指非信号承载介质。计算机可读存储介质包括以适于存储诸如计算机可读指令、数据结构、程序模块、逻辑元件/电路或其他数据等信息的方法或技术实现的硬件,诸如易失性和非易失性、可移动和不可移动介质和/或存储设备。计算机可读存储介质的示例可以包括但不限于ram、rom、eeprom、闪存或其他存储器技术、cd-rom、数字通用盘(dvd)或其他光学存储器、硬盘、磁带盒、磁带、磁盘存储器或其他磁存储设备、或者适于存储期望的信息并且可以由计算机访问的其他存储设备、有形介质或制品。

“计算机可读信号介质”是指被配置为诸如经由网络向计算设备602的硬件传输指令的信号承载介质。信号介质通常可以包含计算机可读指令、数据结构、程序模块或者诸如载波、数据信号或其他传输机制等调制数据信号中的其他数据。信号介质还包括任何信息传递介质。术语“调制数据信号”表示以使得能够在信号中对信息进行编码的方式设置或改变其一个或多个特征的信号。作为示例而非限制,通信介质包括诸如有线网络或直接有线连接等有线介质以及诸如声学、rf、红外和其他无线介质等无线介质。

如前所述,硬件元件610和计算机可读介质606表示在一些实施例中可以用于实现本文中描述的技术的至少一些方面的以硬件形式实现的指令、模块、可编程设备逻辑和/或固定设备逻辑。硬件元件可以包括集成电路或片上系统、专用集成电路(asic)、现场可编程门阵列(fpga)、复杂可编程逻辑器件(cpld)以及硅或其他硬件设备的其他实现的组件。在这个上下文中,硬件元件可以作为执行由硬件元件实现的指令、模块和/或逻辑定义的程序任务的处理设备以及用于存储用于执行的指令的硬件设备(例如,先前描述的计算机可读存储介质)进行操作。

还可以采用前述的组合来实现本文中描述的各种技术和模块。因此,软件、硬件或程序模块和其他程序模块可以实现为包含在某种形式的计算机可读存储介质上和/或由一个或多个硬件元件610实现的一个或多个指令和/或逻辑。计算设备602可以被配置为实现与软件和/或硬件模块相对应的特定指令和/或功能。因此,作为由计算设备602作为软件可执行的模块的模块的实现可以至少部分以硬件实现,例如,通过使用处理系统的计算机可读存储介质和/或硬件元件610。指令和/或功能可以由一个或多个制品(例如,一个或多个计算设备602和/或处理系统604)执行/操作以实现本文中描述的技术、模块和示例。

如图6中进一步所示,示例系统600使得无处不在的环境能够在个人计算机(pc)、电视设备和/或移动设备上运行应用时获取无缝的用户体验。服务和应用在所有三种环境中运行时基本上相似,以便在使用应用,玩视频游戏,观看视频等时从一个设备转换到下一设备时获取共同的用户体验。

在示例系统600中,多个设备通过中央计算设备互连。中央计算设备可以是多个设备的本地设备,或者可以远离多个设备。在一个或多个实施例中,中央计算设备可以是通过网络、因特网或其他数据通信链路连接到多个设备的一个或多个服务器计算机的云。

在一个或多个实施例中,该互连架构使得能够跨多个设备递送功能以向多个设备的用户提供共同且无缝的体验。多个设备中的每个设备可以具有不同的物理要求和能力,并且中央计算设备使用平台来实现向设备传递体验,该体验既是针对设备定制的又是所有设备共有的。在一个或多个实施例中,创建一类目标设备,并且为通用的一类设备定制体验。可以通过物理特征、使用类型或设备的其他共同特性来定义一类设备。

在各种实现中,计算设备602可以采用各种不同的配置,诸如用于计算机616、移动设备618和电视620使用。这些配置中的每个包括可以具有通常不同的构造和能力的设备,并且因此计算设备602可以根据一个或多个不同的设备类来配置。例如,计算设备602可以实现为计算机616类设备,其包括个人计算机、台式计算机、多屏幕计算机、膝上型计算机、上网本等。

计算设备602还可以实现为包括移动设备的移动设备618类设备,诸如移动电话、便携式音乐播放器、便携式游戏设备、平板计算机、多屏幕计算机等。计算设备602还可以实现为电视620类设备,其包括在休闲观看环境中具有或连接到通常更大的屏幕的设备。这些设备包括电视机、机顶盒、游戏机等。

本文中描述的技术可以由计算设备602的这些各种配置支持,并且不限于本文中描述的技术的特定示例。该功能还可以全部或部分地通过使用分布式系统来实现,诸如经由如下所述的平台624在“云”622上实现。

云622包括和/或表示用于资源626的平台624。平台624抽象云622的硬件(例如,服务器)和软件资源的基础功能。资源626可以包括在远离计算设备602的服务器上执行计算机处理时可以使用的应用和/或数据。资源626还可以包括通过因特网和/或通过订户网络(诸如蜂窝或wi-fi网络)提供的服务。

平台624可以抽象资源和功能以将计算设备602与其他计算设备连接。平台624还可以用于抽象资源的缩放以提供相应的规模级别以满足经由平台624实现的对资源626的需求。因此,在互连的设备实施例中,本文中描述的功能的实现可以分布在整个系统600中。例如,功能可以部分地在计算设备602上以及经由抽象云622的功能的平台624来实现。

在本文中的讨论中,描述了各种不同的实施例。应当了解和理解,本文中描述的每个实施例可以单独使用或与本文中描述的一个或多个其他实施例结合使用。本文中讨论的技术的其他方面涉及以下实施例中的一个或多个。

一种方法,包括:确定被调度为在处理器核上运行的第一线程的重要性级别,该重要性级别是多个不同的重要性级别中的一个重要性级别;确定与重要性级别相关联的频率范围或与重要性级别相关联的能量性能偏好值,频率范围是多个不同频率范围中的一个频率范围,能量性能偏好值是多个能量性能偏好值中的一个能量性能偏好值;以及将处理器核配置为在运行第一线程的同时在频率范围或根据能量性能偏好值运行。

作为任何上述方法的替代或补充,以下中的任何一个或组合:确定频率范围或能量性能偏好值包括确定频率范围,每个频率范围已经基于处理器核在处理器核可以运行的多个不同频率中的每个频率处的效率而被确定;多个不同的重要性级别包括重要级别和不重要级别,第一线程的重要性级别包括不重要级别,并且与不重要级别相关联的频率范围包括在处理器核的最高效频率的阈值量内的一个或多个频率;该方法还包括以编程方式确定处理器核可以运行的多个不同频率中的每个频率处的处理器核的效率,并且基于所确定的效率来标识与多个不同的重要性级别中的每个重要性级别相关联的频率范围;多个不同重要性级别包含两个或更多服务质量级别;配置处理器核包括将频率范围的指示写入处理器核的一个或多个寄存器;配置处理器核包括:当处理器核将上下文切换为运行第一线程时,在被提供给处理器核的上下文信息中包括重要性级别的指示;确定频率范围或能量性能偏好值包括确定能量性能偏好值,能量性能偏好值向处理器核指示在运行第一线程的同时是偏好高性能还是较低能量使用;该方法还包括至少部分基于在给定持续时间内在处理器核上运行的线程的重要性级别来确定处理器核的利用因子,并且基于处理器核的利用因子来确定是否停止处理器核。

一种方法,包括:针对在给定时间段内在处理器核上运行的多个线程中的每个线程,确定线程的重要性级别,每个重要性级别是多个不同的重要性级别中的一个重要性级别;至少部分地基于在给定持续时间内在处理器核上运行的线程的重要性级别来确定处理器核的利用因子;基于处理器核的利用因子来确定是否停止处理器核;以及响应于基于处理器核的利用因子而确定停止处理器核,停止处理器核。

作为任何上述方法的替代或补充,以下中的任何一个或组合:确定利用因子包括在确定利用因子中排除考虑多个线程中具有低于重阈值重要性级别的重要性级别的一个或多个线程;确定利用因子包括对于在给定持续时间内在处理器核上运行的每个线程,基于线程的重要性级别对线程进行加权;该方法还包括基于利用因子或一个或多个附加处理器核来确定启动所停止的处理器核,以及启动所停止的处理器核。

一种计算设备,包括:一个或多个处理器核;被配置为确定被调度为在一个或多个处理器核中的处理器核上运行的第一线程的重要性级别的线程重要性确定模块,重要性级别是多个不同的重要性级别中的一个重要性级别;以及核频率配置模块,被配置为确定与重要性级别相关联的频率范围或与重要性级别相关联的能量性能偏好值,并且将处理器核配置为在运行第一线程的同时在频率范围或根据能量性能偏好值运行,频率范围是多个不同频率范围中的一个频率范围,能量性能偏好值是多个能量性能偏好值中的一个能量性能偏好值。

作为任何上述计算设备的替代或补充,以下中的任何一个或组合:核频率配置模块还被配置为确定频率范围,每个频率范围已经基于处理器核可以运行的多个不同频率中的每个频率处的处理器核的效率而确定;多个不同的重要性级别包括重要级别和不重要级别,第一线程的重要性级别包括不重要级别,并且与不重要级别相关联的频率范围包括在处理器核的最高效频率的阈值量内的一个或多个频率;核频率配置模块还被配置为确定能量性能偏好值,能量性能偏好值向处理器核指示在运行第一线程的同时是偏好高性能还是较低能量使用;计算设备还包括核停止模块,核停止模块被配置为至少部分基于在给定持续时间内在处理器核上运行的多个线程的重要性级别来确定处理器核的利用因子,并且基于处理器核的利用因子来确定是否停止处理器核;核停止模块还被配置为通过在确定利用因子中排除多个线程中重要性级别小于阈值重要性级别的一个或多个线程来考虑利用因子;确定利用因子包括对于在给定持续时间内在处理器核上运行的每个线程,基于线程的重要性级别来对该线程进行加权。

尽管用结构特征和/或方法动作特定的语言描述了本主题,但是应当理解,所附权利要求书中定义的主题不必限于上述具体特征或动作。而是,上述具体特征和动作被公开作为实现权利要求的示例形式。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1