针对增加的工作寿命和最大化的性能的多核系统设计的运行时间优化的制作方法

文档序号:10475880阅读:238来源:国知局
针对增加的工作寿命和最大化的性能的多核系统设计的运行时间优化的制作方法
【专利摘要】方面包括用于调整向多核处理系统中的处理器内核分配任务以通过对处理器内核进行损耗均衡来增加工作寿命并且最大化设备性能的计算设备、系统和方法。可靠性引擎可以被配置为针对被配置用于相同目的的等效处理器内核的组来收集热输出和电流泄漏以及历史操作时间的操作或者内建对以上各项的自测试数据。可以将收集的数据应用于加权的函数以确定针对该组中的每个等效处理器内核的优先级。可靠性引擎可以根据等效处理器内核的优先级来重新排列虚拟处理器标识转换表。高级别操作系统可以发出用于指定处理器内核的处理请求,并且可以根据由优先级指定的处理器内核的顺序将所指定的处理器内核转换至不同的处理器内核。
【专利说明】针对増加的工作寿命和最大化的性能的多核系统设计的运行时间优化
[0001]相关申请
[0002]本申请要求享有于2013年12月18日递交的、标题为“Runtime Optimizat1n ofMult1-core System Designs for Increased Operating Life and MaximizedPerformance”的美国临时申请第61/917,487号的优先权的权益,出于所有的目的,通过引用方式将其整个内容并入本文。
【背景技术】
[0003]高性能数字系统的工作寿命部分地取决于系统的部件的供热和制冷循环。系统的部件的故障可以削弱或者致使该系统不能操作。一个这样的部件是系统的处理器,包括多核处理器的单个处理器内核。当发生持续的并且极端的热循环时,由于对于部件的模具、封装或者结合的物理性损坏,可能降低系统的部件的工作寿命。
[0004]在大的制造批次中生产的诸如处理器的电子部件在它们的内部阻抗方面趋向于表现出不同,所述它们的内部阻抗导致每单位时间针对给定操作状态使用的电流的量的不同。由于这样的制造的可变性,如果在计算设备中存在一个以上的这样的部件,则它们中的一个或几个可能比其它部件具有更大的电流使用率,并且因此在本文中被称为“较高的泄漏部件”。与它们的较低的泄漏相对物(counterpart)相比,较高的泄漏部件趋向于表现出较低的性能水平。由于较高的内部阻抗,与较低的泄漏部件相比,较高的泄漏部件还趋向于在较高的温度下运行。与较低的泄漏部件相比,较高的泄漏部件的较高的温度可能导致降低的工作寿命。热循环可以随着时间改变部件的泄漏特性,并且因此工作温度的不同和工作寿命的不同可以随着计算设备的老化而增加。

【发明内容】

[0005]各个方面的方法和装置提供了用于向多核处理器内的处理器内核分配处理任务以便延长多核处理器的工作寿命的电路和方法。方面方法可以包括:获得与关于多核处理器内的处理器内核中的每个处理器内核的损耗有关的信息,基于所获得的与损耗有关的信息来为处理器内核中的每个处理器内核计算优先级,以及基于所计算的优先级来将处理器请求重新分配给特定的处理器内核。在一个方面,获得与关于多核处理器内的处理器内核中的每个处理器内核的损耗有关的信息可以包括测量下列各项中的一项或多项:在正常操作下处理器内核的温度、累积的使用率和电流泄漏。在一个方面,获得与关于多核处理器内的处理器内核中的每个处理器内核的损耗有关的信息可以包括:确定处理器内核是否是活动的,响应于确定处理器内核是不活动的来向处理器内核中的每个处理器内核提供测试工作负荷,响应于提供测试工作负荷,来单独地或者针对成组的处理器内核,测量在测试工作负荷下处理器内核的热输出和电流泄漏中的一项或多项,响应于确定处理器内核是活动的,来单独地或者针对成组的处理器内核,测量在正常操作下处理器内核的热输出和电流泄漏中的一项或多项,以及取回处理器内核中的每个处理器内核的历史操作时间。
[0006]在一个方面,基于所获得的与损耗有关的信息来为处理器内核中的每个处理器内核计算优先级可以包括:通过对所测量的热输出、所测量的电流泄漏和历史操作时间乘以加权因子倍并且对积求和来为处理器内核中的每个处理器内核计算优先级。方面方法可以包括:通过网络连接来接收更新的加权因子,以及利用所更新的加权因子来更新在为处理器内核中的每个处理器内核计算优先级时使用的加权因子。
[0007]在一个方面,基于所计算的优先级来将处理器请求重新分配给特定的处理器内核可以包括从高级别操作系统接收指定第一处理器内核的第一虚拟标识符的处理请求,将该处理请求映射到第二处理器内核,以及将该处理请求的结果返回给高级别操作系统,如同第一处理器内核生成了处理请求的结果。
[0008]方面方法可以包括:确定所述处理器内核中是否有任何处理器内核的历史操作时间超过操作时间门限,将超过操作时间门限的那些处理器内核分组成第一组处理器内核,以及将未超过操作时间门限的那些处理器内核分组成第二组处理器内核,以及与针对第二组处理器内核的关联分开地,针对第一组处理器内核,根据针对处理器内核中的每个处理器内核所计算的优先级来对针对处理器内核中的每个处理器内核的虚拟标识符和处理器内核中的每个处理器内核之间的关联进行排序。
[0009]在一个方面,基于所计算的优先级来将处理器请求重新分配给特定的处理器内核可以包括:根据针对处理器内核中的每个处理器内核所计算的优先级来对针对处理器内核中的每个处理器内核的虚拟标识符与针对处理器内核中的每个处理器内核的物理标识符之间的关联进行排序,根据针对处理器内核中的每个处理器内核的虚拟标识符与物理标识符之间的所排序的关联来映射从高级别操作系统接收的处理请求,以及将处理请求的结果返回给高级别操作系统,如同由高级别操作系统识别的处理器内核已经生成了处理请求的结果。
[0010]方面方法可以包括:确定所述处理器内核中是否有任何处理器内核的历史操作时间超过操作时间门限,以及将超过操作时间门限的那些处理器内核分组成第一组处理器内核以及将未超过操作时间门限的那些处理器内核分组成第二组处理器内核,其中根据针对处理器内核中的每个处理器内核所计算的优先级来对针对处理器内核中的每个处理器内核的虚拟标识符与针对处理器内核中的每个处理器内核的物理标识符之间的关联进行排序包括:与针对第二组处理器内核的关联分开地,对针对第一组处理器内核的关联进行排序。
[0011 ] 一个方面包括一种装置,所述装置包括具有多个处理器内核的多核处理器,其中所述多核处理器被配置有处理器可执行指令以执行上面描述的方面方法中的一个或多个的操作。
[0012]一个方面包括一种计算设备,所述计算设备具有多核处理器,所述多核处理器具有多个处理器内核,包括用于执行上面描述的方面方法中的一个或多个的功能的单元。
[0013]一个方面包括一种非暂时性处理器可读介质,其具有被存储在其上的处理器可执行指令,所述处理器可执行指令被配置为使多核处理器执行上面描述的方面方法中的一个或多个的操作。
【附图说明】
[0014]其被并入本文并且构成本说明书的一部分的附图示出了本发明的示例性方面,并且与上面给出的概括描述和下面给出的详细描述一起用来解释本发明的特征。
[0015]图1是适合于实现方面的示例性计算设备的部件框图。
[0016]图2是适合于实现方面的示例性多核处理器的部件框图。
[0017]图3是适合于实现方面的片上系统的功能的和部件框图。
[0018]图4是根据方面的将高级别操作系统处理器内核标识与硬件处理器内核优先级相关的示例性表格,其用于针对增加的工作寿命和最大化的性能的多核系统设计的运行时间优化。
[0019]图5是示出了用于确定处理器内核的优先级的方面方法的过程流程图。
[0020]图6是示出了用于确定何时更新处理器内核的优先级的方面方法的过程流程图。
[0021]图7是示出了用于收集测试/操作数据并且计算处理器内核优先级的方面方法的过程流程图。
[0022]图8是示出了用于将高级别操作系统处理器内核标识转换成硬件处理器内核优先级的方面方法的过程流程图。
[0023]图9是示出了用于更新用于在基于操作经验来确定内核优先级时使用的加权值的方面方法的过程流程图。
[0024]图10是示出了用于更新用于在基于操作经验来确定内核优先级时使用的加权值的方面方法的过程流程图。
[0025]图11是示出了适合于与各个方面一起使用的计算设备的示例的部件框图。
[0026]图12是示出了适合于与各个方面一起使用的另一示例性计算设备的部件框图。
[0027]图13是示出了适合于与各个方面一起使用的示例性服务器设备的部件框图。
【具体实施方式】
[0028]将参照附图来详细地描述各个方面。在可能的情况下,遍及附图将使用相同的附图标记来指代相同的或者相似的部分。对特定示例和实现方式的提及是出于说明性的目的的,而不旨在限制本发明或者权利要求的范围。
[0029]本文使用术语“计算设备”来指代下列各项中的任何一项或者全部:蜂窝电话、智能电话、个人的或者移动的多媒体播放器、个人数据助理(PDA)、个人计算机、膝上型计算机、平板计算机、智能本、超级本、掌上计算机、无线电子邮件接收器、具有多媒体互联网功能的蜂窝电话、无线游戏控制器、台式计算机、计算服务器、数据服务器、电信基础设施机架服务器,视频分布服务器、专用服务器以及包括存储器和一个或多个可编程多核处理器的类似的个人的或者商业的电子设备。
[0030]本文可互换地使用术语“片上系统(SoC)”和“集成电路”来指代互相连接的电子电路的集合,其通常地但不排他地包括多个硬件内核、存储器和通信接口。硬件内核可以包括各种各样的不同类型的处理器,例如,通用多核处理器、多核中央处理单元(CPU)、多核数字信号处理器(DSP)、多核图形处理单元(GPU)、多核加速的处理单元(APU)以及多核辅助处理器。硬件内核还可以体现其它硬件和硬件组合,例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)、其它可编程逻辑设备、分立的门控逻辑器件、晶体管逻辑器件、性能监测硬件、看门狗硬件和时间基准。集成电路可以被配置,使得集成电路的部件存在于单片的半导体材料(例如,硅)上。这样的配置还可以被称为IC部件在单个芯片上。
[0031]计算设备可以包括多个等效的处理器内核,使得每个内核是出于相同的目的和/或为了具有相同的能力而构建的。即使在单个多核处理器芯片内,由于等效的处理器内核的部件材料的本质的、自然的变化,等效的处理器内核可能具有稍微不同的物理特性和性能特性。这些不同可能引入计算设备的每个处理器内核的处理速度、功耗和热性能的可变性。处理器内核可能由于可变的使用率、热循环以及由于它们的特有的电流泄漏而导致的工作温度而随时间不同地损耗。即使并非所有的处理器内核都故障,但是关于一个或多个处理器内核的过度损耗可能导致计算设备故障。
[0032]在所有等效的处理器内核可能不总是同时运行的计算设备中,一个方面能够增加等效处理器内核的工作寿命,并且通过按照由这些内核的使用历史以及电流性能特性确定的优先级顺序将任务指向这些内核,从而增加计算设备的工作寿命。一个方面还可以通过这样的方式将任务指向这些内核来改善系统的性能。处理器内核的特性可以随着处理器内核随时间的损耗而改变,因此制造商数据可能是不可靠的。处理器内核的电流特性可以是通过测量针对正常操作的处理器内核,或者针对在被指派用于生成对确定电流特性所必需的结果的内建自测试下的处理器内核的热输出和/或电流泄漏来确定的。还可以取回处理器内核的历史操作时间。可以将电流特性数据应用于加权的函数以生成针对处理器内核的优先级。该优先级可以被用来基于它们的损耗程度来向处理器内核分配进程和处理任务。例如,可以对具有最小损耗的处理器内核划分优先次序,以运行更多的进程,因为这些处理器内核不太可能故障。
[0033]在一个方面,可以通过空中来更新在用于确定处理器内核的优先级的函数中使用的加权的因子,使得原始的设备制造商(0ΕΜ)、无线服务提供商或者芯片集供应商可以修订这些加权的因子,并且改善现场的单元中的系统可靠性和性能。更新加权的因子可以是基于从检查被退回的商品(例如,在保修期之内故障的设备)来获得的信息以及来自现场的单元的操作数据和测试数据的。
[0034]图1示出了具有与处理器制造商服务器50相通信的计算设备10的系统。计算设备10可以包括具有处理器14、存储器16、通信接口 18和存储接口 20的SoC 12。计算设备还可以包括诸如有线的或者无线的调制解调器的通信部件22、存储部件24、用于与无线网络30建立无线连接32的天线26和/或用于连接至到互联网40的有线连接44的网络接口 28。处理器14可以包括如上所述的各种各样的硬件内核中的任意硬件内核。处理器14还可以包括多个处理器内核。SoC 12可以包括一个或多个处理器14。计算设备10可以包括一个或多个SoC12,由此增加处理器14和处理器内核的数量。计算设备10还可以包括不与SoC 12相关联的处理器内核14。处理器14均可以被配置用于特定的目的,其可以是与计算设备10的其它处理器14相同的或者不同的目的。被配置用于相同目的的处理器14可以被认为是等效处理器。此外,等效处理器14可以被配置为具有相似的性能特性。此外,单个处理器14可以是如下文参考图2描述的多核处理器。
[0035]SoC 12的存储器16可以是被配置用于存储由处理器14存取的数据和处理器可执行代码的易失性或者非易失性存储器。在一个方面,存储器16可以被配置为至少临时地存储诸如如下文参考图4描述的表格的数据结构,用于将高级别操作系统处理器内核标识相关至以及转换至硬件处理器内核优先级。如下文中进一步详细地讨论的,处理器14的处理器内核中的每个处理器内核可以被划分优先次序,或者给出与在计算设备10上运行的高级别操作系统共享的标识值。
[0036]计算设备10和/SSoC12可以包括被配置用于各种目的的一个或多个存储器16。在一个方面,一个或多个存储器16可以被配置为专用于存储用于存储内核优先级信息的数据结构,使得数据结构的信息可以由一个或多个处理器14存取。当存储数据结构的存储器15是非易失性的时,即使在已经切断计算设备10的电源之后,存储器16仍然可以保存数据结构的信息。当将电源转回到开启并且计算设备10重启时,存储器16可以是可用于计算设备10的以提供数据结构的信息。在另一方面中,存储器16还可以存储并且保持加权值以及历史的处理器内核操作和/或测试数据,它们可以被用来分配硬件处理器内核优先级或者发送给处理器内核制造商28用于在更新加权值时使用。
[0037]通信接口18、通信部件22、天线26和/或网络接口 28可以一致地工作,以使得计算设备10能够经由无线连接32通过无线网络30、和/或有线网络44与处理器内核制造商服务器50通信。无线网络30可以是使用各种各样的无线通信技术(包括例如,被用于无线通信的射频频谱)来实现的,以向计算设备10提供与互联网40的连接,计算设备10可以通过互联网40来与处理器内核制造商服务器50交换数据。在一个方面,无线网络30和/或与互联网40的有线连接44可以被用来向处理器内核制造商服务器50传送计算设备10的操作数据和/或测试数据。在另一方面中,无线网络30和/或与互联网40的有线连接44可以用来从处理器内核制造商服务器50向计算设备10传送更新的加权值,用于在分配硬件处理器内核优先级时使用。
[0038]存储接口20和存储部件24可以一致地工作以允许计算设备1在非易失性存储介质上存储数据。可以很像存储器16的方面来配置存储部件24,在其中,存储部件24可以存储数据结构,使得数据结构的信息可以由一个或多个处理器14存取。即使在已经切断了计算设备10的电源之后,为非易失性的存储部件24可以保存数据结构的信息。当将电源转回到开启并且计算设备10重启时,存储部件24可以是可用于计算设备10的以提供数据结构的信息。在另一方面中,存储部件24还可以存储并且保持加权值以及历史的处理器内核操作和/或测试数据,它们可以被用来分配硬件处理器内核优先级或者发送给处理器内核制造商28用于在更新加权值时使用。存储接口 20可以控制对存储设备24的存取并且允许处理器14从存储设备24读取数据以及向存储设备24写入数据。
[0039]应当注意到的是,可以不同地排列和/或组合计算设备10的部件中的一些或者全部部件,同时仍然提供必需的功能。此外,计算设备10可以不被限定到部件中的每个部件中的一个,并且可以将各种配置中的每个部件的多个实例包括在计算设备10中。
[0040]图2示出了适合于实现方面的多核处理器14。多核处理器14可以具有多个等效处理器内核200、201、202、203。如本文进一步描述的,由于单个处理器14的处理器内核200、
201、202、203可以被配置用于相同的目的并且具有相同的性能特性,处理器内核200、201、
202、203是等效的。例如,处理器14可以是通用处理器,并且处理器内核200、201、202、203可以是等效的通用处理器内核。或者,处理器14可以是图形处理单元或者数字信号处理器,并且处理器内核200、201、202、203可以分别是等效图形处理器内核或者数字信号处理器内核。通过制造工艺和材料的变化,其可能导致处理器内核200、201、202、203的性能特性在相同的多核处理器14内或者在使用相同设计的处理器内核的另一多核处理器14中,逐处理器内核地不同。在图2中示出的示例中,多核处理器14包括四个处理器内核200、201、202、203(即,处理器内核O、处理器内核1、处理器内核2、处理器内核3)。为了便于解释,本文的示例可以指代图2中示出的四个处理器内核200、201、202、203。然而,应当注意到的是,图2和本文示出的和描述的四个处理器内核200、201、202、203绝不意味着是限制性的。计算设备10、SoC 12或者多核处理器14可以单独地或者组合地包括比四个处理器内核200、201、202、203更少的或者更多的处理器内核。
[0041]图3示出了根据方面,具有SoC12的计算设备10,所述SoC 12包括多个处理器内核
320、321、322、324、326和用于针对增加的工作寿命和最大化的性能的多核系统设计的运行时间优化的可靠性引擎302。计算设备10可以包括SoC 12,其具有处理器内核320、321、322、324、326以及虚拟处理器标识转换表300和可靠性引擎302。计算设备10还可以包括软件应用304和高级别操作系统306,它们可以被配置为与SoC 12的部件进行通信。
[0042]在图3中,示出了不同类型的多核处理器,其包括高性能/高泄漏多核通用/中央处理单元(CPU)320(在图中被称为“高功率CPU内核”)、低性能/低泄漏多核通用/中央处理单元(CPU)321(在图中被称为“低功率CPU内核”)、多核图形处理单元(GPU)322、多核数字信号处理器(DSP)324、以及其它多核计算单元326。最近的计算设备架构包括表现出高性能但是以高电流泄漏为代价的通用CPU集群、以及表现出低性能但是低电流泄漏的另一CPU集群。CPU的两个集群可以保持一致性高速缓存,并且因此CPU的两个集群可以同时处于良好工作状态(up and running)。出于本公开内容的目的,可以独立地对CPU的每个集群划分优先次序。此外,出于本公开内容的目的,通常将具有类似特性的计算要素分组在一起;但是,这不是必须的。例如,可以以类似的方式来区分DSP集群,并且因此各方面包括在其它轴线上区分计算设备,以区分类似的处理元件。
[0043]图3还示出了在计算设备被卖出之后,处理器内核326可以被安装在该计算设备中,这例如是对处理能力的扩展或者增强,或者作为对计算设备的更新。对处理能力的后市扩展不限于中央处理器内核,并且可以是可以被添加到计算设备中的或者计算设备中被替代的任何类型的计算模块,其包括例如,另外的、升级的或者替代的调制解调器处理器、另外的或者替代的图形处理器(GPU)、另外的或者替代的音频处理器、以及另外的或者替代的DSP、可以作为(例如,SoC上的)处理器的单个芯片多核模块或者集群来安装的处理器中的任何处理器。此外,在服务器中,这种添加的或者替代的处理器部件可以作为插入到插座和线束接口的处理模块(或者刀片)来安装。下文参考图6来讨论将添加另外的或者替代的处理器内核到计算设备的可能影响(implicat1n)。
[0044]图3中示出的成组的处理器内核中的每个处理器内核可以是如上所述的多核处理器14的一部分。此外,这五个示例性多核处理器(或者成组的处理器内核)不意味着是限制性的,并且计算设备10或者SoC 12可以单独地或者组合地包括比这五个多核处理器320、
321、322、324、326(或者成组的处理器内核)更少或者更多的多核处理器,所述多核处理器包括未在图3中显示的类型。
[0045]可靠性引擎302可以用硬件、软件或者硬件和软件的组合来实现。可靠性引擎可以被配置为分析与各个处理器内核320、321、322、324、326有关的数据并且修改硬件处理器内核优先级,以增加工作寿命和各个处理器内核320、321、322、324、326的最大化性能,并且由此增加计算设备10的工作寿命和最大化性能。如上所述,多核处理器中的处理器内核可能不均匀地损耗。借助处理器、SoC和/或计算设备设计的某些处理器内核可能遭受来自同一计算设备10中的其它操作内核的不同的运行条件。在一个方面,处理器内核的热循环可能减弱处理器内核的部件,导致它们故障。一些处理器内核可以被放置在计算设备内,使得它们在较热的温度和较冷的温度之间经历较大速率和/或程度的热循环。热循环的差异还可能由在比其它处理器内核更多地使用一些处理器内核时的使用造成。这可能由在计算设备10上运行的进程的类型和软件302和高级别操作系统304被配置为如何指定某些处理器内核而造成。此外,相对于较低的电流泄漏处理器内核,具有较高的电流泄漏的处理器内核在较高的温度下运行。较高的电流泄漏处理器内核还相对于它们的较低的电流泄漏相对物在较低的性能水平下运行。热循环随时间改变处理器内核的电流泄漏特性。
[0046]为了延迟由热循环引起的潜在的损坏,可靠性引擎302可以分析与多核处理器
320、321、322、324、326中的处理器内核中的每个处理器内核有关的数据,并且修改硬件处理器内核优先级,改变使用某些处理器内核的频率。硬件处理器内核优先级还可以充当处理器内核的物理标识符。
[0047]由于与处理器内核有关的数据可能在不同的状态下而不同,并且通常关于处理器内核的损耗随时间改变,因此依赖处理器内核的制造商数据可能是不够充分的。可靠性引擎302可以使用所测量的各个处理器内核的数据,包括由位于或者靠近多核处理器320、
321、322、324、326的传感器捕获的传感器数据。在一个方面,所测量的数据可以是在多核处理器320、321、322、324、326的正常操作期间捕获的。在另一方面中,当处理器内核是空闲的或者处于静止状态时,诸如在计算设备10的启动时间期间,计算设备可以运行针对选择的处理器内核的内建自测试。该内建自测试可以将预先设置的例程或者工作负荷加载到正被测试的处理器内核上,并且测量各个性能参数,例如,处理时间、电压降、电流消耗、温升等等。在正常操作或者内建自测试中,可以针对至少所选择的处理器内核来捕获处理器内核的热输出和电流泄漏。可以从存储器16、存储部件24或者用于保存或者确定单个处理器内核的操作时间和加权因子的其它专用部件取回与处理器内核有关的其它数据。
[0048]使用与处理器内核有关的数据,可靠性引擎302可以为所选择的处理器内核的新的硬件处理器内核计算优先级。针对每个处理器内核的硬件处理器内核优先级可以是下列各项中的一项或多项的函数:针对单个处理器内核的热输出、电流泄漏和操作时间、以及它们各自的加权因子。要在被用于向处理器内核分配优先级的函数或者算法中使用的数据的类型可以包括热输出、电流泄漏和操作时间,仅使用选择的类型、或者可以被使用的所有类型、以及通过针对不期望的类型使用零加权因子来使其呈现为不相关的某些类型。用于计算优先级的函数或者算法可以是例如,作为通过首先每种类型乘上其各自的加权因子而增加的一种或多种类型的数据的总和。每种类型的数据的单位可以变化,并且操作时间可以用多核处理器14操作的同时处理器内核操作的时间的百分比来表示。可以比较用于每个处理器内核的函数或者算法的结果,并且根据函数的结果的数字顺序来确定优先级。例如,具有最低评价的结果的处理器内核可以指示最小的损耗量,并且可以被给出最高的优先级。下一个最低评价的结果可以指示下一个最小的损耗量并且相关联的处理器内核可以被给出下一个最高的优先级,并且依次类推针对其计算了函数结果的处理器内核中的所有处理器内核。可以在成组的等效处理器内核中选择处理器内核,并且硬件处理器内核优先级可以仅仅在这些组内应用。
[0049]虚拟处理器标识转换表300可以用硬件、软件、或者硬件和软件的组合来实现。虚拟处理器标识转换表300可以被配置为将高级别操作系统处理器内核标识与硬件处理器内核优先级相关。高级别操作系统处理器内核标识(或者内核ID)是软件应用304和高级别操作系统306如何识别将处理特定处理请求/线程或者任务的处理器内核。高级别操作系统处理器内核标识可以充当处理器内核的虚拟标识符。在一个方面,可以对软件应用304和高级别操作系统306进行编程,以通过某些高级别操作系统处理器内核标识来识别某些处理器内核。在另一方面中,在启动计算设备10或者开始软件应用304或高级别操作系统306时,计算设备可以指示软件应用304和高级别操作系统306关于哪些处理器内核与哪些高级别操作系统处理器内核标识相关联。这些关联可以是静态的并且被编程成计算设备10的固件,例如,B1S。因此,当软件应用304和高级别操作系统306向特定的处理器内核进行处理请求时,它们可以通过为特定的处理器内核指定高级别操作系统处理器内核标识来这样做。
[0050]然而,如下文进一步描述的,计算设备10可以改变处理器内核的优先级。计算设备10可以改变该优先级以增加工作寿命并且最大化处理器内核的性能。改变处理器内核的优先级可以导致高级别操作系统处理器内核标识与计算设备10不趋向于运行所请求的进程的处理器内核相关联。虚拟处理器标识转换表300可以跟踪处理器内核的优先级的变化并且将高级别操作系统处理器内核标识与适当优先级的处理器内核相关联。为了完成这个,虚拟处理器标识转换表300可以接收所更新的由可靠性引擎302计算的硬件处理器内核优先级。虚拟处理器标识转换表300还可以将高级别操作系统处理器内核标识与相应的硬件处理器内核优先级相关联,并且随着硬件处理器内核优先级的变化而更新该关联。当接收到用于指定特定高级别操作系统处理器内核标识的处理请求时,计算设备可以使用虚拟处理器标识转换表300来为适当优先级的处理器内核分配进程。本文使用表格来描述计算设备10的该特征,但是虚拟处理器标识转换可以使用可以实现如上所述的相同功能的各种各样的不同的硬件、数据结构和软件算法来实现。在一个方面,可以针对多组的处理器内核来实现一个或多个虚拟处理器标识转换表300。例如,可以在各种配置下将一种类型的处理器内核的每个组(例如,多核通用CPU 320、321,多核GPU 322,多核DSP 324和其它多核计算单元326)组合或者分离成一个或多个虚拟处理器标识转换表300。
[0051]图4示出了根据一个方面,将高级别操作系统处理器内核标识与硬件处理器内核优先级相关的示例性表格400 ο表格400继续图2中示出的四个处理器内核(处理器内核0-3)的示例。左列402表示高级别操作系统处理器内核标识,其可以被用作要在表格400中表示的组中选择的处理器内核中的每个处理器内核(例如,处理器内核0-3)的虚拟标识符。右列404表示处理器内核标识/优先级,其可以列出被分配给每个处理器内核的优先级,所述优先级可以被用来对要在表格400中表示的组中选择的处理器内核(处理器内核0-3)进行排序,并且作为这些处理器内核中的每个处理器内核的物理标识符。
[0052]表格400的每行406、408、410、412涉及处理器内核中的一个处理器内核。例如,当其被高级别操作系统识别时,第一行406与处理器内核O有关。但是,在该示例中,已经基于数据采集和由上面描述的可靠性引擎做出的计算搅乱了处理器内核的优先级。因此,该示例示出:在第一行406中,由于处理器内核2具有最高的优先级,因此高级别操作系统处理器内核标识处理器内核O与硬件处理器内核标识处理器内核2相关联。类似地,由于处理器内核O具有下一个最高的优先级,因此在第二行408中,高级别操作系统处理器内核标识处理器内核I与硬件处理器内核标识处理器内核O相关联。将同样地方式,分别应用于第三行410和第四行412中的高级别操作系统处理器内核标识处理器内核2与处理器内核3,以及硬件处理器内核标识处理器内核3与处理器内核I。
[0053]在一个方面,只要关注高级别操作系统,则当其进行用于指定高级别操作系统处理器内核标识的操作请求时,高级别操作系统就期望该操作由所指定的处理器内核来执行。但是,所指定的处理器内核可以或者可以不在已经根据所采集的数据和由可靠性引擎做出的计算搅乱了处理器内核的优先级时执行所请求的进程。执行所请求的进程的处理器内核可以是具有表格400中的相关联的硬件处理器内核标识的处理器内核。该处理的结果可以是与如同高级别操作系统指定的处理器内核执行了所请求的进程一样。该高级别操作系统可能察觉不到与其指定的处理器内核相比不同的处理器内核可能已经执行了所请求的进程的可能性。
[0054]虚拟标识符、物理标识符和优先级可以与成组的处理器内核相关联,并且针对成组的处理器内核来计算,使得表格400的行可以表示一组处理器内核而不是单个处理器内核。
[0055]确定处理器内核的优先级并且根据优先级顺序来映射/重新分配处理任务的结果可以是处理器内核随时间更均匀地损耗。通过降低处理器内核(通过分析与该处理器内核有关的所收集的数据,表明其有较大的损耗)的优先级,较少的进程和线程将由该处理器内核来执行。向该处理器内核分派越少的任务来执行,其就将经历越少的热循环,降低了内核老化的速率。为较高优先级的处理器内核分配越多的请求的进程和线程,则作为结果经历更多的热循环,其可能导致关于较高优先级的处理器内核的部件的较大损耗。因为较高优先级的处理器内核呈现(或者被计算为经历)更多的损耗,所以由方面方法分配给处理器内核的优先级将开始归一化,这导致对请求的进程的更平等的调度。与如果一个处理器内核被分配了比其它内核更多的任务或者与其它内核一样地向较高的泄漏内核分派任务(其可能导致一个内核在其它内核之前耗尽并且故障)相比,以该方式跨越处理器内核扩展请求的进程可能导致所有处理器内核中的多个处理器内核的更均匀的损耗,允许计算设备以较高的容量来运行更长时间。
[0056]图5示出了用于基于从处理器内核收集的信息来计算处理器内核优先级的方面方法500。执行可靠性引擎的处理器可以执行方法500。在框502中,处理器可以选择等效处理器内核的集群或者组。如先前描述的,等效处理器内核可以被配置用于相同的目的并且被配置为具有相同的性能特性,尽管性能特性可能由于制造的可变性而变化。因此,处理器可以选择被配置用于相同目的的处理器内核的组。例如,处理器可以分别选择通用处理器内核的组、或者成组的图形处理器内核或者数字信令处理器内核。当存在多个等效处理器时,成组的等效处理器内核可以跨越多个等效处理器来扩展,或者该组可能局限于单个处理器的等效处理器内核。
[0057]在确定框504中,处理器可以确定所选择的处理器内核是不活动的、空闲的还是处于静止状态的。该确定可能影响处理器如何实现数据采集和对处理器内核划分优先次序。当该内核是活动的时,可能不存在运行测试的需求,因为从处理器内核的正常活动测量的关于处理器内核的信息可能是足够的。此外,对活动的处理器内核划分优先次序可能是更复杂的过程,这是因为活动的处理器内核可以与其它部件(其可能期望特定的处理器内核是可用的以执行任务)交互。当处理器确定所选择的处理器内核是活动的(即,确定框504 =“否”)时,在框506中,处理器可以收集针对所选择的活动的内核的操作数据。换句话说,处理器可以在不运行单独的测试以获得针对所选择的处理器内核的相关数据的读数的情况下,监测传感器并且从所选择的处理器内核的正常操作中收集数据。例如,处理器可以在正常操作期间,监测所选择的处理器内核的热输出和电流泄漏。
[0058]在可选框507中,该收集的操作数据和相关的信息可以存储在由处理器可访问的任何非易失性存储器中,所述存储器包括计算设备的FLASH存储器、被配置为存储该信息的存储部件、或者专用于跟踪和存储关于处理器内核操作数据和累积的操作时间的数据的另一个部件。被存储在非易失性存储器中的操作数据可以在启动时间用来设置初始处理器内核优先级和映射。作为在框507中保存的数据的一部分,处理器内核的操作时间或者使用率可以存储在频繁更新的数据字段中。因此,作为框506中的操作的一部分,处理器可以从该存储器取回所选择的处理器内核的操作时间(S卩,总的或者相对的活动时间)。
[0059]在框508中,处理器可以基于所收集的操作数据和操作历史来为所选择的处理器内核中的每个处理器内核计算优先级。针对所选择的处理器内核中的每个处理器内核,处理器可以与用于该类型的数据中的每个数据的加权因子一起将函数或者算法应用于所收集的数据,为所选择的内核计算新的优先级值。被用来计算优先级的函数或者算法可以变化。在各个方面中,下列各项中的一项或多项的不同组合可以用来计算内核优先级:热输出、电流泄漏和操作时间以及它们的加权因子。在一个方面,三种类型的收集的数据可以被乘以它们各自的加权因子,并且将结果加在一起以生成针对每个处理器内核的优先级值。在另一方面中,当不考虑数据的类型中的一种类型时,可以将加权值设置为零,或者可以将不被考虑的类型的数据从函数或者算法中移除。
[0060]在框510中,计算设备可以等待所选择的处理器内核变成不活动的。如上所述,对活动的内核划分优先次序可能在计算设备的部件期望特定的处理器内核是可用的以执行某些任务时造成问题。但是,当期望的处理器内核与所期望的不同地来划分优先次序时,其可能使部件没有处理器内核来执行所期望的任务,导致计算设备的操作的潜在的错误。因此,当针对处理器内核不存在调度的或者期望的任务时,在改变处理器内核的优先级以便避免负面地影响其它部件之前,计算设备可以等待处理器内核变成不活动的。
[0061]在另一方面中,在可选框512中,处理器可以将所选择的处理器内核的当前的和期望的进程和数据移植到一个或多个其它处理器内核。处理器内核可以从所选择的处理器内核向可用的其它处理器内核重新分配当前的和调度的进程以及相关的数据,而不是等待所选择的处理器内核变为不活动的。在该方面中,计算设备的部件可以如期望的继续与被映射到不同的处理器内核的进程和数据进行操作,本质上当关于计算设备的处理需求比所有处理器内核需要更少的处理器内核时,强制所选择的处理器内核进入静止状态。
[0062]在任一方面中,无论等待所选择的处理器内核变成不活动的,还是移植该进程远离较低优先级的处理器内核,在框526中,处理器可以更新虚拟处理器标识转换表中的硬件处理器内核优先级。如上所述,更新所选择的处理器内核的优先级是由根据它们的优先级值来对硬件处理器内核标识的排序或者重新排序造成的。产生优先级值的数字顺序可以确定所选择的处理器内核的相对优先级。在一个方面,所选择的具有第一或者最高优先级值的处理器内核可以被移动到虚拟处理器标识转换表的顶部,并且与第一行中的高级别操作系统处理器内核标识相关联。所选择的具有第二优先级值的处理器内核可以被移动到虚拟处理器标识转换表的第二行,并且与第二行中的高级别操作系统处理器内核标识相关联,并且依此类推所选择的处理器内核中的所有处理器内核。
[0063]当处理器确定所选择的处理器内核是不活动的(S卩,确定框504=“是”)时,则在框514中,处理器可以运行针对所选择的处理器内核的内建自测试。该内建自测试可以提供针对所选择的处理器内核的要执行的工作负载,使得该处理器可以从所选择的处理器内核收集与计算针对该处理器内核的优先级有关的热输出和电流泄漏数据。该内建自测试可以在所选择的处理器内核是另外的不活动的、空闲的或者处于静止状态时运行。在一个方面,该内建自测试可以是在计算设备的启动过程期间针对所选择的处理器内核(其可以被预先选择为处理器内核的默认组)运行的。在框516中,处理器可以收集针对所选择的处理器内核的、在它们的内建自测试期间获得的相关的数据。
[0064]在可选框517中,自测试数据可以存储在由处理器可访问的非易失性存储器中,例如,在框507中用来存储收集的操作数据的非易失性存储器。将该自测试数据存储在非易失性存储器中可以使得该信息能够用来在启动时间设置初始的处理器内核优先级和映射。
[0065]作为收集该内建自测试数据的一部分,处理器还可以取回所选择的处理器内核的操作时间数据。在框518中,处理器可以基于所收集的操作数据和操作历史,以与框508中相同的方式来为所选择的处理器内核中的每个处理器内核计算优先级。在框526中,处理器可以更新如上所述的虚拟处理器标识转换表中的硬件处理器内核优先级。
[0066]在另一方面中,当处理器确定所选择的处理器内核是不活动的(S卩,确定框504 =“是”)时,在可选的确定框520中,处理器可以可选地确定计算设备是否处于冷启动,并且被配置为快速地启动而不是在框514中运行针对所选择的处理器内核的内建自测试。冷启动可以在计算设备从掉电状态启动时发生。当处理器确定计算设备不处于冷启动状态,或者处于冷启动状态但是未被配置为快速启动(即,可选的确定框520=“否”)时,处理器可以在框514中运行针对所选择的处理器内核的内建自测试,并且如上所述地进行。
[0067]当处理器确定计算设备处于冷启动状态并且被配置为快速启动(S卩,可选的确定框520=“是”)时,在可选框522中,处理器可以取回存储的内建自测试数据或者存储的操作数据,以及来自非易失性存储器的针对所选择的处理器内核的操作历史。非易失性存储器可以是用来在框507中存储收集的操作数据的相同的存储器和/或用来在框517中存储自测试数据的相同的存储器。在一个方面,对于处理器来说,取回所选择的处理器内核的存储的内建自测试数据和操作数据的组合可能是可行的。例如,针对所选择的处理器内核的所存储的内建自测试数据或者操作数据可能是不完整的,并且处理器可以在其他类型的数据可用时利用其来补充丢失的数据。处理器还可以做出关于在计算处理器内核的优先级时使用的、针对一种或多种类型的数据的内建自测试数据或者操作数据中的一者可能是较新的确定,并且确定使用针对该一种或多种类型的数据的、较新的数据。
[0068]在可选框524中,处理器可以基于所取回的存储的数据和操作历史,以如上所述的与框508和518中相同的方式来为所选择的处理器内核中的每个处理器内核计算优先级。在框526中,处理器可以更新如上所述的虚拟处理器标识转换表中的硬件处理器内核优先级。
[0069]在替代的方面中,计算设备或者系统可以被配置,使得处理器仅仅使用自测试或者运行时间测量结果来确定如何对处理器内核重新划分优先次序。在仅仅使用自测试的方面中,可以不执行框504至512的操作,并且在517中存储在存储器中的自测试的结果可以在启动时间用来在可以如上所述执行首次自测试之前设置初始的处理器优先级。在仅仅使用运行时间测量结果来对处理器内核重新划分优先次序的方面中,可以不执行框514至524的操作,并且运行时间测量结果的结果可以保存在非易失性存储中,使得在将来的启动循环或者运行时间期间来参考结果。在这样的方面中,处理器可以被配置有默认的处理器内核映射(例如,0 = 0,1 = 1,2 = 2,3 = 3),其可以在充足的运行时间测量结果已存储在存储器中之前,在初始的启动循环时使用。
[0070]图6示出了用于针对包括更新的硬件的系统的增加的工作寿命和最大化的性能的多核系统设计的运行时间优化的方面方法600。执行可靠性引擎的处理器可以执行方法600。
[0071]将包括新处理器内核的新处理硬件添加到计算设备,例如,图3中示出的扩展、升级的、替代的或者稍后添加的处理器内核326(例如,调制解调器处理器、另外的或者替代的图形处理器(GPU)、另外的或者替代的音频处理器、以及另外的或者替代的DSP)可能在新处理器内核与较老的处理器内核之间产生损耗级别的不平衡。这样的稍后添加的/替代的/升级的处理器内核的集合可能类似于在销售了计算设备之后有时可以被可选地添加的(例如,被插入到预先存在的接口插槽中)第二CPU集群326。该不平衡可能是如此大以至于极大地将新处理器内核比较老的处理器内核优先,以试图使关于处理器内核的损耗均等。但是,这可能使添加新硬件的目的落空,因为通常情况下,添加新硬件是为了通过添加补充的硬件来增加计算设备的性能。将新硬件的优先次序划分为高于老硬件直到硬件使用程度均等为止,可以具有取代老硬件一段时间而不是补充新硬件的无意识的效果。因此,为了避免太强烈地依赖于新硬件,在框602中,执行可靠性引擎的处理器可以将针对选择的内核的历史操作时间与操作时间门限进行比较。操作时间门限可以是基于针对新的和老的处理器内核的操作时间数据来预先确定的或者计算的。操作时间门限可以提供关于新处理器内核何时可以与老处理器内核一样被对待的分界线。在确定框604中,处理器可以确定所选择的处理器内核中是否有任何处理器内核的历史操作时间超过操作时间门限。换句话说,处理器可以检查以查看新处理器内核中的任何新处理器内核是否是太新,从而出于确定等效处理器内核的优先级的目的他们尚未充分地运行以与较老的处理器内核一起混合。
[0072]当处理器确定至少一个处理器内核的历史操作时间超过操作时间门限(S卩,确定框“604”=是)时,在框606中,处理器可以将所选择的处理器内核分成超过门限(或者新)的处理器内核,以及低于门限(或者老)的处理器内核。在框608中,处理器可以独立于其它组地,为选择的处理器内核的超过门限的组和低于门限的组中的每个来执行方法500。因此,例如,在框602中,处理器可以选择所选择的处理器内核的超过门限的组或者低于门限的组,并且如上所述执行剩余的框。处理器可以针对首先未被选择的组执行相同的操作。在该方面中,老的和新的处理器内核被单独地划分优先次序,并且仅仅与类似物品的其它处理器内核进行比较。因此,可以为老的组和新的组二者中的处理器内核分配来自高级别操作系统的处理请求。当处理器确定处理器内核中的任何一个的历史操作时间都不超过操作时间门限(即,确定框“604” =否)时,在框610中,处理器可以为所选择的处理器内核中的所有处理器内核执行方法500。
[0073]方法600在服务器的多核处理器的操作时间经常比消费者设备中的操作时间更高的服务器环境中可能是特别有用的。因为,服务器经常被用在服务器正常运行时间对于由服务器支持的功能可能是关键的商业设置中,所以关于多核处理器的需求可能是近似不变的。通常还可以将服务器配置为通过添加、去除和替代处理硬件来针对需求的不同用途和等级而被灵活地重新配置。在服务器中对处理硬件的添加和替代(例如,添加或者替代多核处理器)允许服务器执行新任务、相同任务中的多个任务,或者执行比添加之前更好的任务。服务器的多核处理器的高操作时间可能导致当前使用的多核处理器与新近引入的多核处理器之间的大的差异。如上面提及的,服务器系统可以包括计算服务器、数据服务器、电信基础设施机架服务器、视频分布服务器、专用服务器等等。在服务器环境中实现方法600可以增加产生较高的正常运行时间的服务器的可靠性,这对于服务器服务提供商和依赖于服务器访问的那些提供商来说是关键的方面。
[0074]图7示出了用于收集测试/操作数据并且计算处理器内核优先级的方面方法700。执行可靠性引擎的处理器可以执行方法700。该方法700描述用于在上面参考图5描述的方法500的框506、508、514和516中收集测试/操作数据并且计算处理器内核优先级的操作。当在确定框504中处理器确定所选择的处理器内核是不活动的(S卩,方法500中的确定框504 =“是”)时,在框702中,处理器可以将测试工作负荷应用于所选择的处理器内核。该测试工作负荷可以是被设计为导致处理器内核中的某些行为的预先确定的工作负荷。例如,测试工作负荷可以通过提供正常的工作负荷来尝试激励来自处理器内核的正常的工作响应。类似地,测试工作负荷可以通过向处理器内核提供重的任务工作负荷来尝试激励来自处理器内核的重的工作响应。可以为不同类型的处理器内核指定不同的工作负荷,例如,为图形处理器内核指定图形处理工作负荷。
[0075]在框704中,处理器可以基于在框702中的自测试期间采集的数据,或者基于在内核是活动的(即,方法500中的确定框504=“否”)时从处理器内核的正常操作采集的数据,来测量每个选择的处理器内核的热输出。例如,温度数据可以是从热传感器获得的,所述热传感器在策略上可以被放置在包含处理器内核的多核处理器的模具上。对来自多个传感器的温度数据的分析可以用来计算单个处理器内核的热输出。在处理器内核被如此靠近地放置在一起以至于处理器内核中的一个或多个处理器内核的热输出影响处理器内核中的另一个处理器内核的方面中,其可能足以观测处理器内核的组而不是单独地每个处理器内核的热输出。在这样的方面中,来降低每处理器内核观测热输出所需要的热传感器的数量可能是可行的。
[0076]在框706中,处理器可以测量每个选择的处理器内核的电流泄漏。电流传感器或者电压传感器在策略上可以被放置在包含处理器内核的多核处理器的模具上,使得通过内核的电压降或者由内核消耗的电流的量可以被观测到并且被记录。电流泄漏还可以基于可以使用温度传感器来观测的单个处理器内核的热输出来计算。
[0077]在框708中,处理器可以取回每个选择的处理器内核的历史操作时间。如上所述,历史操作时间可以是从存储器、存储部件、多核处理器、或者专用于跟踪并且记录处理器内核的历史操作时间的某个其它部件取回的。历史操作时间可以用多种不同的方式来表示。在一个方面,历史操作时间可以包括处理器内核已经是活动的时间的量的计数值(在本文被称为“活动的时间”)。在一个方面,历史操作时间可以包括针对处理器内核的相对活动时间值,所述相对活动时间值是基于关于该内核的活动的时间相比其它等效处理器内核的活动的时间的量的比较结果(或者相对的测量)的。例如,历史操作时间可以是针对其的特定操作内核已经是活动的所有等效处理器内核的总操作时间的百分比。
[0078]在框710中,处理器可以将热输出加权因子应用于所选择的处理器内核中的每个处理器内核的所测量的热输出。在框712中,处理器可以将电流泄漏加权因子应用于所选择的处理器内核中的每个处理器内核的所测量的电流泄漏。在框714中,处理器可以将操作时间加权因子应用于所选择的处理器内核中的每个处理器内核的历史操作时间。对于加权因子中的每个加权因子,加权因子可以跨越等效的处理器内核保持相同。例如,热输出加权因子对于等效处理器内核中的每个等效处理器内核可以是相同的。在一个方面,加权因子可以是相同的,或者可以针对非等效处理器内核而变化。例如,与图形处理器内核相比,热输出加权因子针对通用处理器内核可以是相同的或者可以不是相同的。在各个方面中,将加权因子应用于所测量的值或者历史的值可以包括使用任意数量的数学运算中的一个或多个数学运算。例如,所测量的值或者历史的值可以乘以它们各自的加权因子。
[0079]在框716中,处理器可以将每个选择的处理器内核的加权的热输出、加权的电流泄漏和/或加权的历史操作时间单独地组合,从而产生针对每个选择的处理器内核的优先级值。如上所述,这些值的组合可以用各种各样的形式来完成。在各个方面中,这些值中的一些或者全部值可以被组合以产生针对每个选择的处理器内核的优先级值。在一些方面中,可以通过不将通过数学运算所丢弃的值与其它值进行组合,或者通过使用其各自的加权因子取消该值来不考虑该值,来将一些值不包括在组合中。
[0080]应当注意到的是,关于处理器内核的不同类型的操作信息可以是独立的并且因此可以按照任何顺序来获得和处理,而不必按照图7中示出的操作的顺序来获得和处理。例如,处理器可以仅仅在启动或者系统初始化时对电流泄漏进行采样,并且其后,周期性地(例如,每小时地)获得温度/热测量结果,并且这作为正常操作的一部分。因此,图7中示出的操作的顺序仅仅是出于说明的目的的,而不旨在限制权利要求的范围。
[0081]图8示出了用于将高级别操作系统处理器内核标识转换至硬件处理器内核优先级的方面方法800。执行可靠性引擎的处理器可以执行方法800。在框802中,处理器可以从高级别操作系统接收用于指定高级别操作系统处理器内核标识的处理请求。在这样做时,高级别操作系统正期望将向由高级别操作系统处理器内核标识识别的处理器内核分配该处理请求。例如,虚拟的和物理的处理器内核标识符的原始配对可以将虚拟标识符处理器内核O与物理标识符处理器内核O配对。但是,如果如图4中的优先级表格示出的来对处理器内核划分优先次序,则虚拟标识符处理器内核O可以与物理标识符处理器内核2来配对。
[0082]在框804中,处理器可以根据其优先级将高级别操作系统处理器内核标识与相应的硬件处理器内核标识匹配。当处理器内核被划分优先次序并且不再与高级别操作系统处理器内核标识的、它们的原始配对相匹配时,处理器可以在高级别操作系统处理器内核标识与新近划分优先次序的处理器内核之间进行连接,使得由高级别操作系统做出的处理请求被映射到处理器内核,并且更具体地,被映射到恰当的处理器内核。但是,恰当的处理器内核可能不再是高级别操作系统期望的处理器内核。
[0083]在框806中,处理器可以将处理请求从针对所指定的处理器内核标识的高级别操作系统映射到被分配了相应的硬件处理器内核标识的处理器内核。处理器可以将该处理请求映射到现在与所请求的虚拟处理器内核标识符相关联的处理器内核。相关联的处理器内核可以是用于执行该处理请求的处理器内核。
[0084]在框808中,处理器可以将处理请求的结果返回给高级别操作系统,如同该处理请求已经被由处理请求中的高级别操作系统识别的处理器内核执行。通过不向高级别操作系统通知处理器内核的优先级的变化并且在高级别操作系统不必针对该变化进行调整的情况下管理该处理请求,可以消除高级别操作系统中的复杂的层,并且降低否则可能对于实现操作系统中的方面必需的成本。
[0085]图9示出了用于更新在对针对增加的工作寿命和最大化的性能的多核系统设计的运行时间优化时使用的加权值的方面方法900。制造商内的计算机可以执行方法900的至少一些操作。制造商可以在制造期间学习处理器内核的性能特性,并且然后使用该数据来调整使用中的处理器内核以改正诸如低效率和不均匀的热循环等在处理器内核的测试阶段期间未被检测出的问题。例如,当制造商在新工艺中提升对集成电路的生产时,制造商通常学习关于在调整晶片加工工艺期间的处理器内核的可变性和性能的东西。这样的学习可以引导制造商根据先前加工批次,例如通过在针对用于实现集成电路的计算设备的空中更新中发送更新的参数来修订已经现场的设备。作为另一示例,可以例如根据公知的退货授权(RMA)过程将发生故障的消费者产品退回到制造商。可以对被退回的货物进行分析,以发现导致设备故障(其激起货物的退回)的问题的模式。通过分析退回的货物的故障,制造商可以确定其能够通过更新加权因子以改变关于处理器内核的损耗,来改善其处理器内核的故障率和寿命。
[0086]在框902中,制造商可以接收并且分析退回的货物,以确定故障的原因和故障率数据。该数据可以包括客户的评论和对按照RMA过程获得的、潜在地缺陷的或者坏掉的处理器内核的技术分析。在一个方面,在框904中,制造商还可以经由通过有线的或者无线连接的通信从运行的计算设备接收处理器内核的操作和测试数据。
[0087]在框906中,制造商可以分析退回货物的分析数据和操作以及测试数据(如果接收到的话),以确定部件故障的原因。在框908中,制造商可以使用所接收的数据来确定针对处理器内核的、对于加权因子中的一个或多个加权因子的更新,其可以避免部件的故障的原因。可以对加权因子进行修改,以更重视或者不重视与处理器内核有关的数据中的一个或多个数据,来以被期望导致处理器内核的更好的或者更均匀的损耗的方式对内核的优先次序进彳丁偏斜。
[0088]在框910中,制造商可以例如以对计算设备的空中更新、由技术人员完成的店内更新、或者通过与互联网的有线的或者无线网络连接从互联网服务器向计算设备(例如,台式计算机或者膝上型计算机)下载的更新的形式,通过有线的或者无线的连接来来向计算设备发送所更新的加权因子。可以使用到计算设备的数据定向推送的或者广播推送来完成发送这样的更新,或者可以向计算设备通知该更新并且请求从互联网服务器下载(即,拉取)该更新。
[0089]图10是示出了用于更新在针对增加的工作寿命和最大化的性能的多核系统设计的运行时间优化时使用的加权值的方面方法的过程流程图。在相关联的方法1000至方法900中,计算设备可以向制造商发送和接收数据,以便更新加权值。
[0090]在框1002中,计算设备可以通过无线连接向制造商发送操作和测试数据。发送该数据可以是可选的,这是因为计算设备和/或制造商不是针对该数据的传输来设置的,或者其可选的作为关于计算设备的用户选项。
[0091]在框1004中,计算设备可以接收所更新的针对热输出、电流泄漏和操作时间中的一个或多个的加权因子。所接收的更新的加权因子可以是依赖于发送的或者对于计算设备可用的所更新的加权因子的、和/或由计算设备和/或用户接受的所更新的加权因子的。
[0092]在框1006中,执行可靠性引擎的处理器可以利用所更新的加权因子来取代该加权因子。在一个方面,当利用新的加权因子来更新时,老的加权因子中的一些或者全部老的加权因子可以被删除、与它们的指针取消关联,或者被重写。所更新的因子可以在下次对处理器内核划分优先次序时使用。
[0093]图11示出了适合于以智能电话的形式实现各个方面的计算设备的示例。智能电话计算设备1100可以包括被耦合至触摸屏控制器1104和内部存储器1106的多核处理器1102。多核处理器1102可以是被设计用于通用或者专用处理任务的一个或多个多核集成电路。内部存储器1106可以是易失性或者非易失性存储器,并且还可以是安全的和/或加密的存储器,或者非安全的和/或未加密的存储器、或者其任意组合。触摸屏控制器1104和多核处理器1102还可以被耦合至触摸屏面板1112,例如,电阻式感应触摸屏、电容式感应触摸屏、红外感应触摸屏等等。此外,计算设备1100的显示器不需要具有触摸屏能力。
[0094]智能电话计算设备1100可以具有被耦合至彼此和/或被耦合至多核处理器1102的一个或多个无线信号收发机1108(例如,Peanut、蓝牙、Zigbee、W1-F1、RF无线电)和天线1110,用于发送和接收通信。收发机1108和天线1110可以与上述电路一起使用,以实现各种无线传输协议栈和接口。智能电话计算设备1100可以包括蜂窝网络无线调制解调器芯片1116,其经由蜂窝网络实现通信并且被耦合至处理器。
[0095]智能计算设备1100可以包括被耦合至多核处理器1102的外围设备连接接口1118。外围设备连接接口 1118可以被单独地配置为接受一种类型的连接,或者可以被配置为接受各种类型的物理和通信连接,公共的或者专有的,例如,USB、火线、雷电术(thunderbolt)或者PCIe。外围设备连接接口 1118还可以被耦合至类似地配置的外围设备连接端口(未示出)。
[0096]智能电话计算设备1100还可以包括用于提供音频输出的扬声器1114。智能电话计算设备1100还可以包括外壳1120,其用塑料、金属或者材料的组合来构建,用于容纳本文讨论的部件中的所有或者一些部件。智能电话计算设备1100可以包括被耦合至多核处理器1102的电源1122,其例如一次性的或者可再充电的电池。可再充电的电池还可以被耦合至外围设备连接端口,以从智能电话计算设备1100之外的电源接收充电电流。智能电话计算设备1100还可以包括用于接收用户输入的物理按钮1124。智能电话计算设备1100还可以包括用于打开和关闭智能电话计算设备1100的电源按钮1126。
[0097]上面描述的各个方面还可以在各种各样的其它计算设备内实现,例如,图12中示出的膝上型计算机1200。许多膝上型计算机包括触摸板的触摸表面1217,其充当计算机的指向设备,并且因此可以接收与在装备有触摸屏显示器和上面描述的计算设备上实现的那些类似的拖动、滚动和轻打手势。膝上型计算机1200通常将包括被耦合至易失性存储器1212和大容量非易失性存储器(例如,闪存的磁盘驱动器1213)的多核处理器1211。此外,计算机1200可以具有用于发送和接收电磁辐射的一个或多个天线1208,其可以被连接至无线数据链路和/或被耦合至多核处理器1211的蜂窝电话收发机1216。计算机1200还可以包括被耦合至多核处理器1211的软盘驱动器1214和压缩光盘(CD)驱动器1215。在笔记本配置中,计算机外壳包括均被耦合至多核处理器1211的触摸板1217、键盘1218和显示器1219。如公知的,计算设备的其它配置可以包括(例如,经由USB输入)被耦合至处理器的计算机鼠标或者轨迹球,其还可以结合各个方面来使用。台式计算机可以在各种配置中类似地包括这些计算设备部件,包括在一个或多个单独的但是可连接的部分中分离和组合所述部件。
[0098]各个方面还可以在各种各样商业上可用的服务器设备中的任何设备上实现,例如,图13中示出的服务器1300。这样的服务器1300通常包括被耦合至易失性存储器1302和大容量非易失性存储器(例如,磁盘驱动器1304)的一个或多个多核处理器组件1301。如图13中示出的,多核处理器组件1301可以通过将它们插入到组件的机架而添加到服务器1300。服务器1300还可以包括被耦合至处理器1301的软盘驱动器、压缩光盘(⑶)或者DVD光盘驱动器1306。服务器1300还可以包括被耦合至多核处理器组件1301的网络接入端口1303,其用于与网络1305建立网络接口连接,所述网络1305例如耦合至其它广播系统计算机和服务器的局域网、互联网、公共交换电话网络和/或蜂窝数据网络(例如,CDMA、TDMA、GSM、PCS、3G、4G、LTE或者任何其它类型的蜂窝数据网络)。
[0099]用于在用于执行各个方面的操作的可编程处理器上执行的计算机程序代码或者“程序代码”可以用诸如C、C++、C#、Smal I talk、Java、JavaScript、Vi sual Basic、结构化查询语言(例如,事物处理-SQL)、Per I等尚级编程语言或者用各种其它编程语言来编写。被存储在如在本申请中使用的计算机可读存储介质上的程序代码或者程序可以指代其格式由处理器可理解的机器语言代码(例如,目标代码)。
[0100]许多计算设备操作系统内核被组织成用户空间(在其中运行非特许代码)和内核空间(在其中运行特许代码)。该分离在安卓和其它公众许可(GPL)环境中是特别重要的,在安卓和其它公众许可环境中,是内核空间的一部分的代码必须是GPL许可的,而在用户空间中运行的代码可以不是GPL许可的。应当理解的是,除非以其他方式另外明确地说明,否则这里讨论的各种软件部件/模块可以在内核空间或者用户空间中实现。
[0101]前述方法描述和过程流程图仅仅作为说明性的示例而提供,并不旨在要求或者暗示各个方面的操作必须按照提出的顺序来执行。如将由本领域的技术人员意识到的,前述方面中的操作的顺序可以按照任何顺序来执行。诸如“其后”、“然后”、“接下来”等等的词语不旨在限制操作的顺序;这些词语仅用于贯穿对方法的描述来引导读者。此外,例如,使用冠词“一”、“一个”或者“所述”,以单数形式对权利要求要素的任何提及不应当被解释为将该要素限制到单数形式。
[0102]结合各个方面描述的各种说明性的逻辑框、模块、电路和算法操作可以被实现为电子硬件、计算机软件或者这二者的组合。为了清楚地说明硬件和软件的该可互换性,上面已经围绕各种说明性的部件、框、模块、电路和操作的功能,概括性地对其进行了描述。至于这样的功能是被实现为硬件还是软件,取决于特定的应用和被施加到整个系统上的设计约束。熟练的技术人员可以针对每个特定的应用,以变通的方式来实现所描述的功能,但是这样的实现决策不应当被解释为导致背离本发明的范围。
[0103]可以利用被设计为执行本文描述的功能的通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其它可编程逻辑器件、分立的门器件、或者晶体管逻辑器件、分立的硬件部件或者其任意组合来实现或者执行用来实现结合本文公开的方面描述的各种说明性的逻辑器件、逻辑框、模块和电路的硬件。通用处理器可以是微处理器,但是在替代方案中,该处理器可以是任何传统的处理器、控制器、微控制器或者状态机。处理器还可以被实现为计算设备的组合,例如,DSP和微处理器的组合、多个微处理器、结合DSP内核的一个或多个微处理器、或者任何其它这样的配置。或者,一些操作或者方法可以由专用于给定功能的电路来执行。
[0104]在一个或多个方面中,描述的功能可以用硬件、软件、固件、或者其任意组合来实现。如果用软件来实现,则功能可以作为一个或多个指令或者代码被存储在非暂时性计算机可读介质或者非暂时性处理器可读介质上。本文公开的方法或者算法的操作可以被体现在可以存在于非暂时性计算机可读或者处理器可读存储介质上的处理器可执行软件模块中。非暂时性计算机可读或者处理器可读存储介质可以是能够由计算机或者处理器存取的任何存储介质。通过示例而非限制的方式,这样的非暂时性计算机可读或者处理器可读介质可以包括RAM、R0M、EEPR0M、FLASH存储器、CD-ROM或者其它光盘存储、磁盘存储或者其它磁存储设备或者可以被用来存储具有指令或者数据结构形式的期望的程序代码并且能够由计算机存取的任何其它介质。如本文使用的,磁盘和光盘包括压缩光盘(CD)、激光光盘、光盘、数字多功能光盘(DVD)、软盘以及蓝光光盘,其中磁盘通常磁性地复制数据,而光盘则利用激光来光学地复制数据。上面的组合也被包括在非暂时性计算机可读和处理器可读介质的范围内。此外,方法或者算法的操作可以作为代码和/或指令中的一个或者任意组合或者集合存在于非暂时性处理器可读介质和/或计算机可读介质上,其可以被并入到计算机程序产品中。
[0105]提供所公开的方面的在前描述,以使得本领域的任何技术人员能够实现或者使用本发明。对于本领域技术人员来说,对这些方面的各种修改将是显而易见的,并且在不背离本发明的精神或者范围的情况下,本文定义的一般性原理可以应用于其它方面。因此,本发明不旨在受限于本文示出的方面,而是要符合与所附的权利要求和本文公开的原理和新颖性特征相一致的最宽的范围。
【主权项】
1.一种向多核处理器内的处理器内核分配处理任务以便延长所述多核处理器的工作寿命的方法,包括: 获得与关于所述多核处理器内的所述处理器内核中的每个处理器内核的损耗有关的信息; 基于所获得的与损耗有关的信息来为所述处理器内核中的每个处理器内核计算优先级;以及 基于所计算的优先级来将处理器请求重新分配给特定的处理器内核。2.根据权利要求1所述的方法,其中,获得与关于所述多核处理器内的所述处理器内核中的每个处理器内核的损耗有关的信息包括测量下列各项中的一项或多项:在正常操作下所述处理器内核的温度、累积的使用率和电流泄漏。3.根据权利要求1所述的方法,其中,获得与关于所述多核处理器内的所述处理器内核中的每个处理器内核的损耗有关的信息包括: 确定所述处理器内核是否是活动的; 响应于确定所述处理器内核是不活动的,向所述处理器内核中的每个处理器内核提供测试工作负荷; 响应于提供所述测试工作负荷,单独地或者针对成组的所述处理器内核,测量在所述测试工作负荷下所述处理器内核的热输出和电流泄漏中的一项或多项; 响应于确定所述处理器内核是活动的,单独地或者针对成组的处理器内核,测量在正常操作下所述处理器内核的热输出和电流泄漏中的一项或多项;以及 取回所述处理器内核中的每个处理器内核的历史操作时间。4.根据权利要求3所述的方法,其中,基于所获得的与损耗有关的信息来为所述处理器内核中的每个处理器内核计算优先级包括:通过对所测量的热输出、所测量的电流泄漏以及所述历史操作时间乘以加权因子倍并且对乘积进行求和,来为所述处理器内核中的每个处理器内核计算所述优先级。5.根据权利要求4所述的方法,还包括: 通过网络连接来接收更新的加权因子;以及 利用所更新的加权因子来更新在为所述处理器内核中的每个处理器内核计算优先级时使用的所述加权因子。6.根据权利要求1所述的方法,其中,基于所计算的优先级来将处理器请求重新分配给特定的处理器内核包括: 从高级别操作系统接收指定第一处理器内核的第一虚拟标识符的处理请求; 将所述处理请求映射到第二处理器内核;以及 将所述处理请求的结果返回给所述高级别操作系统,如同所述第一处理器内核生成了所述处理请求的所述结果。7.根据权利要求6所述的方法,还包括: 确定所述处理器内核中是否有任何处理器内核的历史操作时间超过操作时间门限; 将超过所述操作时间门限的那些处理器内核分组成第一组处理器内核,以及将未超过所述操作时间门限的那些处理器内核分组成第二组处理器内核;以及 与针对所述第二组处理器内核的关联分开地,针对所述第一组处理器内核,根据针对所述处理器内核中的每个处理器内核所计算的所述优先级来对针对所述处理器内核中的每个处理器内核的虚拟标识符与所述处理器内核中的每个处理器内核之间的关联进行排序。8.根据权利要求1所述的方法,其中,基于所计算的优先级来将处理器请求重新分配给特定的处理器内核包括: 根据针对所述处理器内核中的每个处理器内核所计算的所述优先级来对针对所述处理器内核中的每个处理器内核的虚拟标识符与针对所述处理器内核中的每个处理器内核的物理标识符之间的关联进行排序; 根据针对所述处理器内核中的每个处理器内核的所述虚拟标识符与所述物理标识符之间的所排序的关联来映射从高级别操作系统接收的处理请求;以及 将处理请求的结果返回给所述高级别操作系统,如同由所述高级别操作系统识别的所述处理器内核已经生成了所述处理请求的所述结果。9.根据权利要求8所述的方法,还包括: 确定所述处理器内核中是否有任何处理器内核的历史操作时间超过操作时间门限;以及 将超过所述操作时间门限的那些处理器内核分组成第一组处理器内核,以及将未超过所述操作时间门限的那些处理器内核分组成第二组处理器内核, 其中,根据为所述处理器内核中的每个处理器内核所计算的所述优先级来对所述处理器内核中的每个处理器内核的虚拟标识符与所述处理器内核中的每个处理器内核的物理标识符之间的关联进行排序包括:与所述第二组处理器内核的关联分开地,对所述第一组处理器内核的关联进行排序。10.—种计算设备,其包括具有多个处理器内核的多核处理器,所述多核处理器被配置有处理器可执行指令,以执行包括下列各项的操作: 获得与关于所述多核处理器内的所述处理器内核中的每个处理器内核的损耗有关的信息; 基于所获得的与损耗有关的信息来为所述处理器内核中的每个处理器内核计算优先级;以及 基于所计算的优先级来将处理器请求重新分配给特定的处理器内核。11.根据权利要求10所述的计算设备,其中,所述多核处理器被配置有处理器可执行指令,以执行操作使得获得与关于所述多核处理器内的所述处理器内核中的每个处理器内核的损耗有关的信息包括: 确定所述处理器内核是否是活动的; 响应于确定所述处理器内核是不活动的,向所述处理器内核中的每个处理器内核提供测试工作负荷; 响应于提供所述测试工作负荷,单独地或者针对成组的处理器内核,测量在所述测试工作负荷下所述处理器内核的热输出和电流泄漏中的一项或多项; 响应于确定所述处理器内核是活动的,单独地或者针对成组的处理器内核,测量在正常操作下所述处理器内核的热输出和电流泄漏中的一项或多项;以及取回所述处理器内核中的每个处理器内核的历史操作时间。12.根据权利要求11所述的计算设备,其中,所述多核处理器被配置有处理器可执行指令,以执行操作使得基于所获得的与损耗有关的信息来为所述处理器内核中的每个处理器内核计算优先级包括:通过对所测量的热输出、所测量的电流泄漏以及所述历史操作时间乘以加权因子倍并且对乘积进行求和来为所述处理器内核中的每个处理器内核计算所述优先级。13.根据权利要求12所述的计算设备,其中,所述多核处理器被配置有处理器可执行指令,以执行还包括下列各项的操作: 通过网络连接来接收更新的加权因子;以及 利用所更新的加权因子来更新在为所述处理器内核中的每个处理器内核计算优先级时使用的所述加权因子。14.根据权利要求10所述的计算设备,其中,所述多核处理器被配置有处理器可执行指令,以执行还包括下列各项的操作: 根据针对所述第二处理器内核所计算的优先级来将针对第一处理器内核的第一虚拟标识符与第二处理器内核相关联; 从高级别操作系统接收指定所述第一处理器内核的所述第一虚拟标识符的处理请求; 将所述处理请求映射到所述第二处理器内核;以及 将所述处理请求的结果返回给所述高级别操作系统,如同所述第一处理器内核生成了所述处理请求的所述结果。15.根据权利要求14所述的计算设备,其中,所述多核处理器被配置有处理器可执行指令,以执行还包括下列各项的操作:根据针对所述处理器内核中的每个处理器内核所计算的所述优先级来对针对所述处理器内核中的每个处理器内核的虚拟标识符与针对所述处理器内核中的每个处理器内核的物理标识符之间的关联进行排序, 其中,根据针对所述第二处理器内核所计算的优先级来将针对第一处理器内核的第一虚拟标识符与第二处理器内核相关联包括:将针对所述第一处理器内核的所述第一虚拟标识符与针对所述第二处理器内核的物理标识符相关联,并且 其中,将所述处理请求映射到所述第二处理器内核包括:根据针对所述处理器内核中的每个处理器内核的所述虚拟标识符与所述物理标识符之间的所排序的关联来映射从所述高级别操作系统接收的处理请求。16.根据权利要求15所述的计算设备,其中,所述多核处理器被配置有处理器可执行指令,以执行还包括下列各项的操作: 确定所述处理器内核中是否有任何处理器内核的历史操作时间超过操作时间门限;以及 将超过所述操作时间门限的那些处理器内核分组成第一组处理器内核,以及将未超过所述操作时间门限的那些处理器内核分组成第二组处理器内核, 其中,根据为所述处理器内核中的每个处理器内核所计算的所述优先级来对所述处理器内核中的每个处理器内核的虚拟标识符与所述处理器内核中的每个处理器内核的物理标识符之间的关联进行排序包括:与所述第二组处理器内核的关联分开地,对所述第一组处理器内核的关联进行排序。17.—种计算设备,其具有多核处理器,所述多核处理器具有多个处理器内核,所述计算设备包括: 用于获得与关于所述多核处理器内的所述处理器内核中的每个处理器内核的损耗有关的?目息的单兀; 用于基于所获得的与损耗有关的信息来为所述处理器内核中的每个处理器内核计算优先级的单元;以及 用于基于所计算的优先级来将处理器请求重新分配给特定的处理器内核的单元。18.根据权利要求17所述的计算设备,其中,用于获得与关于所述多核处理器内的所述处理器内核中的每个处理器内核的损耗有关的信息的单元包括: 用于确定所述处理器内核是否是活动的单元; 用于响应于确定所述处理器内核是不活动的来向所述处理器内核中的每个处理器内核提供测试工作负荷的单元; 用于响应于提供所述测试工作负荷,单独地或者针对成组的处理器内核,测量在所述测试工作负荷下所述处理器内核的热输出和电流泄漏中的一项或多项的单元; 用于响应于确定所述处理器内核是活动的,单独地或者针对成组的处理器内核,测量在正常操作下所述处理器内核的热输出和电流泄漏中的一项或多项的单元;以及 用于取回所述处理器内核中的每个处理器内核的历史操作时间的单元。19.根据权利要求18所述的计算设备,其中,用于基于所获得的与损耗有关的信息来为所述处理器内核中的每个处理器内核计算优先级的单元包括:用于通过对所测量的热输出、所测量的电流泄漏和所述历史操作时间乘以加权因子倍并且对乘积进行求和来为所述处理器内核中的每个处理器内核计算所述优先级的单元。20.根据权利要求19所述的计算设备,还包括: 用于通过网络连接来接收更新的加权因子的单元;以及 用于利用所更新的加权因子来更新在为所述处理器内核中的每个处理器内核计算优先级时使用的所述加权因子的单元。21.根据权利要求17所述的计算设备,还包括: 用于根据针对所述第二处理器内核所计算的优先级来将针对第一处理器内核的第一虚拟标识符与第二处理器内核相关联的单元; 用于从高级别操作系统接收指定所述第一处理器内核的所述第一虚拟标识符的处理请求的单元; 用于将所述处理请求映射到所述第二处理器内核的单元;以及 用于将所述处理请求的结果返回给所述高级别操作系统,如同所述第一处理器内核生成了所述处理请求的所述结果的单元。22.根据权利要求21所述的计算设备,还包括:用于根据针对所述处理器内核中的每个处理器内核所计算的所述优先级来对针对所述处理器内核中的每个处理器内核的虚拟标识符与针对所述处理器内核中的每个处理器内核的物理标识符之间的关联进行排序的单元, 其中,用于根据针对所述第二处理器内核所计算的优先级来将针对第一处理器内核的第一虚拟标识符与第二处理器内核相关联的单元包括:用于将针对所述第一处理器内核的所述第一虚拟标识符与针对所述第二处理器内核的物理标识符相关联的单元,并且 其中,用于将所述处理请求映射到所述第二处理器内核的单元包括:用于根据针对所述处理器内核中的每个处理器内核的所述虚拟标识符与所述物理标识符之间的所排序的关联来映射从所述高级别操作系统接收的处理请求的单元。23.根据权利要求22所述的计算设备,还包括: 用于确定所述处理器内核中是否有任何处理器内核的历史操作时间超过操作时间门限的单元;以及 用于将超过所述操作时间门限的那些处理器内核分组成第一组处理器内核以及将未超过所述操作时间门限的那些处理器内核分组成第二组处理器内核的单元, 其中,用于根据为所述处理器内核中的每个处理器内核所计算的所述优先级来对所述处理器内核中的每个处理器内核的虚拟标识符与所述处理器内核中的每个处理器内核的物理标识符之间的关联进行排序的单元包括:用于与所述第二组处理器内核的关联分开地,对所述第一组处理器内核的关联进行排序的单元。24.—种非暂时性处理器可读介质,其具有被存储在其上的处理器可执行指令,所述处理器可执行指令被配置为使多核处理器执行包括下列各项的操作: 获得与关于所述多核处理器内的所述处理器内核中的每个处理器内核的损耗有关的信息; 基于所获得的与损耗有关的信息来为所述处理器内核中的每个处理器内核计算优先级;以及 基于所计算的优先级来将处理器请求重新分配给特定的处理器内核。25.根据权利要求24所述的非暂时性处理器可读介质,其中,所存储的处理器可执行指令被配置为使所述多核处理器执行操作,使得获得与关于所述多核处理器内的所述处理器内核中的每个处理器内核的损耗有关的信息包括: 确定所述处理器内核是否是活动的; 响应于确定所述处理器内核是不活动的,向所述处理器内核中的每个处理器内核提供测试工作负荷; 响应于提供所述测试工作负荷,单独地或者针对成组的处理器内核,测量在所述测试工作负荷下所述处理器内核的热输出和电流泄漏中的一项或多项; 响应于确定所述处理器内核是活动的,单独地或者针对成组的处理器内核,测量在正常操作下所述处理器内核的热输出和电流泄漏中的一项或多项;以及 取回所述处理器内核中的每个处理器内核的历史操作时间。26.根据权利要求25所述的非暂时性处理器可读介质,其中,所存储的处理器可执行指令被配置为使所述多核处理器执行操作,使得基于所获得的与损耗有关的信息来为所述处理器内核中的每个处理器内核计算优先级包括:通过对所测量的热输出、所测量的电流泄漏以及所述历史操作时间乘以加权因子倍并且对乘积进行求和来为所述处理器内核中的每个处理器内核计算所述优先级。27.根据权利要求26所述的非暂时性处理器可读介质,其中,所存储的处理器可执行指令被配置为使所述多核处理器执行还包括下列各项的操作: 通过网络连接来接收更新的加权因子;以及 利用所更新的加权因子来更新在为所述处理器内核中的每个处理器内核计算优先级时使用的所述加权因子。28.根据权利要求24所述的非暂时性处理器可读介质,其中,所存储的处理器可执行指令被配置为使所述多核处理器执行还包括下列各项的操作: 根据针对所述第二处理器内核所计算的优先级来将针对第一处理器内核的第一虚拟标识符与第二处理器内核相关联; 从高级别操作系统接收指定所述第一处理器内核的所述第一虚拟标识符的处理请求; 将所述处理请求映射到所述第二处理器内核;以及 将所述处理请求的结果返回给所述高级别操作系统,如同所述第一处理器内核生成了所述处理请求的所述结果。29.根据权利要求28所述的非暂时性处理器可读介质,其中,所存储的处理器可执行指令被配置为使所述多核处理器执行还包括下列各项的操作:根据针对所述处理器内核中的每个处理器内核所计算的所述优先级来对针对所述处理器内核中的每个处理器内核的虚拟标识符与针对所述处理器内核中的每个处理器内核的物理标识符之间的关联进行排序, 其中,根据针对所述第二处理器内核所计算的优先级来将针对第一处理器内核的第一虚拟标识符与第二处理器内核相关联包括:将针对所述第一处理器内核的所述第一虚拟标识符与针对所述第二处理器内核的物理标识符相关联,并且 其中,将所述处理请求映射到所述第二处理器内核包括:根据针对所述处理器内核中的每个处理器内核的所述虚拟标识符与所述物理标识符之间的所排序的关联,映射从所述高级别操作系统接收的处理请求。30.根据权利要求29所述的非暂时性处理器可读介质,其中,所存储的处理器可执行指令被配置为使所述多核处理器执行还包括下列各项的操作: 确定所述处理器内核中是否有任何处理器内核的历史操作时间超过操作时间门限;以及 将超过所述操作时间门限的那些处理器内核分组成第一组处理器内核,以及将未超过所述操作时间门限的那些处理器内核分组成第二组处理器内核, 其中,根据为所述处理器内核中的每个处理器内核所计算的所述优先级来对所述处理器内核中的每个处理器内核的虚拟标识符与所述处理器内核中的每个处理器内核的物理标识符之间的关联进行排序包括:与所述第二组处理器内核的关联分开地,对所述第一组处理器内核的关联进行排序。
【文档编号】G06F9/50GK105830034SQ201480068624
【公开日】2016年8月3日
【申请日】2014年12月9日
【发明人】J·J·安德森, R·A·斯图尔特
【申请人】高通股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1