用于使性能最大化并降低芯片温度和功率的优选内核排序的算法的制作方法

文档序号:12287812阅读:186来源:国知局
用于使性能最大化并降低芯片温度和功率的优选内核排序的算法的制作方法与工艺

本申请要求于2014年5月20日递交的、名称为“Algorithm For Preferred Core Sequencing To Maximize Performance And Reduce Chip Temperature”的美国临时申请No.62/000,855的优先权,故以引用方式将其全部内容并入本文。



背景技术:

在轻薄系统(例如,智能电话和平板电脑)中对更多性能的需求在增加。对这一需求的工业响应一直是在处理器芯片上添加更多处理器内核以提高性能。额外的处理器内核可以提供更高的性能,但是处理内核的增加导致使用更多功率,这导致更高的温度和更短的电池寿命。更高的温度和更短的电池寿命对可靠性和用户体验有消极影响。

无论处理内核数量是多少,大部分用户应用还是被编写为处理集中在仅仅两个内核中(即,双处理内核密集),因此添加更多处理内核可能不会直接转化为更好的用户体验/性能。例如,在四处理器系统中,处理器内核中的两个内核可能没有用于进程密集用户应用。此外,被选择用于处理该用户应用的处理器内核的组合可能不是针对该应用的优选处理器内核。



技术实现要素:

各个方面的方法和装置提供用于使性能最大化并降低芯片温度和功率的优选内核排序的电路和方法。方面方法可以包括:确定所述计算设备的状态;通过将多个处理器内核中的每一个处理器内核的电流泄漏与所述多个处理器内核中的其它处理器内核的电流泄漏进行比较,来确定多个电流泄漏比率;在多个不等式中将所述多个电流泄漏比率与对应于所述计算设备的所述状态的多个边界值进行比较;以及响应于确定所述多个不等式中的至少两个不等式为真,来选择与至少两个边界值相关联的处理器内核。

在一个方面中,通过将所述多个处理器内核中的每一个处理器内核的所述电流泄漏与所述多个处理器内核中的其它处理器内核的电流泄漏进行比较,来确定所述多个电流泄漏比率可以包括:通过将第一处理器内核的电流泄漏与第二处理器内核的电流泄漏进行比较,来确定第一电流泄漏比率;以及通过将第三处理器内核的电流泄漏与所述第二处理器内核的所述电流泄漏进行比较,来确定第二电流泄漏比率。在所述多个不等式中将所述多个电流泄漏比率与对应于所述计算设备的所述状态的所述多个边界值进行比较可以包括:在第一不等式中将所述第一比率与对应于所述计算设备的所述状态的第一边界值进行比较;以及在第二不等式中将所述第二电流泄漏比率与对应于所述计算设备的所述状态的第二边界值进行比较。以及响应于确定所述多个不等式中的所述至少两个不等式为真,来选择与所述至少两个边界值相关联的所述处理器内核可以包括:响应于确定所述第一不等式和所述第二不等式为真,来选择与所述第一边界值和所述第二边界值相关联的优选处理器内核。

一个方面方法可以包括:存储均与所述计算设备的状态相关联的多个边界值和被确定为在所述计算设备的所述状态期间优选使用的处理器内核集合;以及加载针对所述计算设备的所述状态的所述多个边界值。

一个方面方法可以包括:从所述多核处理器的存储设备取回所述多个处理器内核的所述电流泄漏。

在一个方面中,响应于确定所述至少两个不等式为真,来选择与所述至少两个边界值相关联的所述处理器内核可以包括:取回与所述至少两个边界值相关联的多个处理器内核集合;将所述多个处理器内核集合中的每一个处理器内核集合与所述多个处理器内核集合中的其它集合比较;以及选择出现在所述多个处理器内核集合中的至少两个处理器内核集合中的所述处理器内核。

在一个方面中,确定所述计算设备的所述状态可以包括:选择所述计算设备的当前状态或所述计算设备的预测状态。

一个方面方法可以包括:使所选择的处理器内核结合另一个处理器内核来执行任务。

一个方面方法可以包括:构成处理器内核启动序列,其中,所选择的处理器内核是所述处理器内核启动序列中的下一个。

在一个方面中,通过将所述多个处理器内核中的每一个处理器内核的所述电流泄漏与所述多个处理器内核中的其它处理器内核的电流泄漏进行比较,来确定所述多个电流泄漏比率可以包括:将所述多个电流泄漏比率表达为所述多个处理器内核中的每一个处理器内核的静止状态的数字域中的静态电流泄漏(IDDq)比率,使得所述多个电流泄漏比率包括IDDqi+1/IDDqi、IDDqi+2/IDDqi、IDDqi+3/IDDqi、IDDqi+4/IDDqi、…IDDqn/IDDqi

一个方面包括一种具有处理器的计算设备,所述处理器被配置有用于执行上述方面方法中的一个或多个方面方法的操作的处理器指令。

一个方面包括一种其上存储有处理器可执行软件指令的非暂时性处理器可读介质,所述处理器可执行软件指令用于使得处理器执行上述方面方法中的一个或多个方面方法的操作。

一个方面包括一种计算设备,其具有用于执行上述方面方法中的一个或多个方面方法的功能的单元。

附图说明

并入本文并且构成本说明书的一部分的附图示出了本发明的示例方面,并且与上文给出的一般描述和下文给出的具体实施方式一起用于解释本发明的特征。

图1是示出了适用于实现一个方面的计算设备的组件框图。

图2是示出了适用于实现一个方面的示例多核处理器的组件框图。

图3是根据一个方面,示出了被配置为针对计算设备的各种状态来选择优选处理器内核组合的片上系统(“SoC”)的组件框图。

图4A是根据一个方面的针对计算设备的状态的大量处理器的模拟结果集合的绘图的示例。

图4B是绘图的示例。

图5是示出了用于开发处理器内核组合选择边界的方面方法的过程流图。

图6是示出了用于针对计算设备的状态来选择优选处理器内核组合的方面方法的过程流图。

图7是示出了用于针对计算设备的状态来动态地确定优选处理内核组合的方面方法的过程流图。

图8是示出了适合与各个方面一起使用的示例移动设备的组件框图。

图9是示出了适合与各个方面一起使用的示例移动设备的组件框图。

图10是示出了适合与各个方面一起使用的示例服务器设备的组件框图。

具体实施方式

将参照附图详细描述各个方面。在任何可能的地方,将遍及附图使用相同的附图标记指代相同或相似的部分。对特定示例和实现方式做出的引用是出于说明性的目的,并且不旨在限制本发明或权利要求书的范围。

术语“计算设备”和“移动设备”在本文中可互换地用于指代蜂窝电话、智能电话、个人或移动多媒体播放器、个人数字助理(PDA)、膝上型计算机、平板型计算机、智能本、超级本、掌上型计算机、无线电子邮件接收机、具有多媒体互联网功能的蜂窝电话、无线游戏控制器和类似的包括存储器和多核可编程处理器的个人电子设备。虽然各个方面具体用于诸如智能电话之类的具有有限资源的移动计算设备,但是这些方面一般也可用于实现多个存储设备和有限的功率预算的任何电子设备中,其中,降低处理器的功耗能够延长该移动计算设备的电池工作时间。

术语“片上系统”(SoC)在本申请中用于指代互相连接的电子电路的集合,典型地但并不专有地包括硬件内核、存储器和通信接口。硬件内核可以包括各种不同类型的处理器,诸如通用处理器、中央处理电路(CPU)、数字信号处理器(DSP)、图形处理单元(GPU)、加速处理单元(APU)、辅助处理器、单核处理器和多核处理器。硬件内核还可以包含其它硬件和硬件组合,诸如现场可编程门阵列(FPGA)、专用集成电路(ASCI)、其它可编程逻辑设备、分立门逻辑、晶体管逻辑、性能监控硬件、看门狗硬件和时间参考。集成电路可以被配置为使得集成电路的组件驻留在单片半导体材料(诸如硅)上。

在一个方面中,可以针对特定的系统状态(诸如特定工作负载、温度、功率或频率)来确定多核处理器的优选处理器内核。选择优选处理器内核来执行任务可以降低功耗和处理器内核的温度,和/或可以提高处理器内核的性能。用于确定优选处理器内核的过程还可以确定所述优选处理器内核通电序列或启动序列。对于具有“n”个处理器内核的多核处理器,其中对于从事特定工作负载的处理器内核的数量(“m”)没有施加限制,则可以总共有nCm(或者n选m)种从事工作的处理器内核的潜在组合。例如,在四核处理器(即,处理器包括四个处理内核)中,在对于从事特定工作负载的处理器内核数量没有限制的情况下,从事工作的处理器内核的总的潜在组合可以是4C4(或者四选四)种。在其中从事特定工作负载的处理器内核的数量受限的方面中,值m可以是对从事工作的处理器内核的限制。例如,在具有两个处理器内核限制的四核处理器中(即,两个处理器内核可以从事特定工作负载),从事工作的处理器内核的总的潜在组合可以是4C2(或者四选二)种。

在一个方面中,可以基于每个处理器内核与其它处理器内核中的每一个处理器内核的电流泄漏比率与该芯片或SoC的制造商所确定的参数的比较,针对系统的特定状态,从可能的处理器内核的所有可能的组合中选择该多核处理器的优选处理器内核,所述参数可以是针对特定芯片或大批量芯片制造确定的。每个处理器内核的电流泄漏(也被称为静态电流泄漏)可以由制造商预先确定并存储在多核处理器上的ROM中。在处理器内核是异步的一个方面中,该确定可以是基于电流泄漏比率的,该电流泄漏比率是相应处理器内核的电压和该处理器内核的静态泄漏的函数。在另一个方面中,包括多核处理器的计算设备可以通过测量处理不同负载时的电流泄漏或功耗以及处理器内核的温度和/或工作频率,来确定每个处理器内核的电流泄漏,以便形成与温度和/或频率相关的电流泄漏的表格。

在一个方面中,处理器内核中的每个处理器内核的电流泄漏(IDDq,其是数字域和静态中的处理器内核的电流)比率可以用在将该电流泄漏比率与指定的一个或多个参数(诸如针对该比率的处理器内核的组合的工作负载、温度、功率或频率)的预定值进行比较的不等式中。该预定值可以定义针对指定的参数的处理器内核的优选使用的边界,其中优选使用是基于最小功耗、最大性能或这两个因素的组合的。这些边界值可以通过测试大量SoC以获取不同操作状况下的泄漏电流(IDDq)值,并且将结果绘制成不同处理器内核组合的比率来确定。该结果可以是由处理器内核的性能的不同(由于制造工艺不同)驱动的散点图。

如下面关于图4更详细描述的,这种泄漏电流(IDDq)值可以聚集到具有定义的边界(虚线)的图中的区域,所述边界可以被定义为处理器内核电流泄漏值的比率。所定义的边界可以对应于可在特定系统状态和状况处的测试数据中发现的边界,针对所述特定系统状态和状况可以选择成对的处理器内核。数据区域可以显示在各种状况中要选择的更优的处理器内核对(即,在特定的操作状况或状态中要选择的两个最优的内核)。多核处理器所在的数据区域可以由电流泄漏比率来确定。可以通过计算该比率并且确定该比率落入的不等式来快速地识别该处理器操作在其中的数据区域。可以针对每个温度或操作状况来完成不同的散点图分析,并且所识别的边界比率值可以被存储为将优选处理器内核的边界比率与温度/操作状况关联起来的表格。该表格可以存储在对所有处理器都可用,或者至少对执行内核的处理器或调度器可用的ROM中,其中该调度器调度线程和应用的处理,并且因此选择用于处置各个应用的处理器内核。

在一个方面中,可以在内核或调度器中实现一种算法,该算法测量电流泄漏并且使用边界比率的数据表格来选择用于在当前操作状况下执行特定应用的最优内核对(这可以取决于其执行的处理的类型)。在一个方面中,该算法可以涉及:确定当前温度或操作状态;并且在ROM中执行表格查找以获取对数据区域边界进行定义的比率边界值和与每个数据区域相关联的优选处理器内核。该算法还可以包括:(在动态方面中)测量该处理器内核的电流泄漏(IDDq)或(在静态方面中)从ROM查找该值;计算不同的替代处理器内核的泄漏值比率,以与所要求的处理器内核组合;以及将所计算的泄漏值比率与根据该表格查找确定的比率边界值进行比较,以选择用于执行特定应用的处理器内核组合。选择处理器内核组合可以涉及:基于泄漏值比率落入的数据区域,选择要使用的两个处理器内核。该算法使处理器内核对选择能够随系统的状态而变化。

除了基于温度或操作状态来选择处理器内核对,一个方面算法可以基于应用将需要的处理的特性来进行选择。例如,涉及处理器密集型操作(例如,很多具有很少等待状态的复杂计算)的应用可能在某个温度和/或操作状况下使用一个处理器内核对来更好地执行,而不同的处理器内核对可能在相同的温度和/或操作状况下,在执行涉及更多存储器访问和更少计算(以及因此涉及很多在其期间产生更少热量的等待状态)的应用时更好地执行或节省更多功率。举另一个示例,涉及大量图形处理的应用(例如,游戏)可以使用位于距离产生热量的图形处理器单元(GPU)很远的一对处理器内核来最优地操作,而涉及很少图形处理或不涉及图形处理的应用(例如,通信应用)可以使用位于离GPU较近的一对处理器内核来最优地操作。因此,针对特定类型的应用或处理需求的最优的一对处理内核的选择可以是依赖于SoC设计的。

执行内核的处理器或对用于执行应用的处理器内核进行选择的调度器可以基于在不等式中与预定值相比是有利的比率来选择处理器内核。处理器内核的通电序列或启动序列可以通过选择按最有利的处理器内核到最不利的处理器内核的顺序启动处理器内核来确定。

图1示出了包括适合于与各个方面一起使用的系统,其包括与远程计算设备50相通信的计算设备10。计算设备10可以包括SoC 12,SoC 12具有处理器14、存储器16、通信接口18和存储接口20。计算设备还可以包括:通信组件22,诸如有线或无线调制解调器;存储组件24;天线26,其用于建立到无线网络30的无线连接32;和/或网络接口28,其用于连接到至互联网40的有线连接44。处理器14可以包括多种硬件内核以及多个处理器内核中的任何一个。SoC 12可以包括一个或多个处理器14。计算设备10可以包括多于SoC 12,从而增加处理器14和处理器内核的数量。计算设备10还可以包括不与SoC 12相关联的处理器内核14。单独的处理器14可以是如下参考图2所描述的多核处理器。处理器14均可以被配置用于与计算设备10的其它处理器14相同或不同的目的。具有相同或不同配置的处理器14和处理器内核中的一个或多个可以被分组在一起。

SoC 12的存储器16可以是易失性或非易失性存储器,其被配置用于存储由处理器14访问的数据和处理器可执行代码。在一个方面中,存储器16可以被配置为至少暂时地存储数据结构,诸如用于管理计算设备的各种状态处的各种优选的处理器内核组合的边界的预定值的表格。在其中边界值的表格是由制造商确定并存储的方面中,存储器16将包括非易失性只读存储器(ROM),以便保留数据表格用于SoC 12的操作寿命。

计算设备10和/或SoC 12可以包括被配置用于各种目的一个或多个存储器16。在一个方面中,一个或多个存储器16可以被配置为专用于存储包含预定值的数据结构。存储器16可以采用使数据结构信息能够被执行内核的处理器或调度器(其选择用于执行应用的处理器内核)访问的方式来存储预定值,使得该表格数据可以用于管理从该计算设备的所有处理器内核或一组处理器内核中选择优选处理器内核。在一个方面中,存储器16可以与所选择的处理器内核在同一个SoC 12上,或者在不同的SoC 12上。存储器16还可以是计算设备10的、没有与计算设备10的任何其它组件(诸如SoC 12)集成的单独组件。在一个方面中,在与计算设备10不同的计算设备(诸如远程服务器)上的存储器设备可以用于存储数据和处理器可执行代码并且向计算设备10提供数据和处理器可执行代码,如上所述。

通信接口18、通信组件22、天线26和/或网络接口28可以联合工作,以使通信设备10能够经由无线连接32在无线网络30上进行通信,和/或在有线网络44上与远程计算设备50进行通信。无线网络30可以是使用多种无线通信技术(包括例如用于无线通信的射频频谱)实现的,以向计算设备10提供到互联网40的连接,计算设备可以通过该连接与远程计算设备50交换数据。

存储接口20和存储组件24可以联合工作以便允许计算设备10在非易失性存储介质上存储数据。存储组件24可以被配置为非常类似于存储器16的一个方面,其中存储组件24可以存储数据结构,使得可以由一个或多个处理器14访问的数据结构信息。非易失性的存储组件24可以即使在计算设备10的电源已经被切断之后也继续保存数据结构信息。当电源被再次接通并且计算设备10重启时,存储组件24上存储的数据结构信息对于计算设备10可以是可用的。存储接口20可以控制对存储设备24的访问并且允许处理器14从存储设备24读取数据和向存储设备24写入数据。

计算设备10的组件中的一些或全部组件可以以不同的方式排列和/或组合,同时仍然提供必要的功能。此外,计算设备10可以不受限于这些组件中的每个组件中的一个组件,并且每个组件的多个实例可以包括在计算设备10的各种配置中。

图2示出了适用于实现一个方面的多核处理器14。多核处理器14可以具有多个同类的或异类的处理器内核200、201、202、203。处理器内核200、201、202、203可以是同类的,这是因为单个处理器14的处理器内核200、201、202、203可以被配置用于相同的目的并且具有相同或相似的性能特性。例如,处理器14可以是通用处理器,并且处理器内核200、201、202、203可以是同类的通用处理器内核。另外,处理器14可以是图形处理单元或数字信号处理器,并且处理器内核200、201、202、203可以分别是同类的图形处理器内核或数字信号处理器内核。

由于制造处理和材料的不同,同类的处理器内核200、201、202、203的性能特性可以根据相同多核处理器14或在使用相同设计的处理器内核的另一个多核处理器14中的处理器内核的不同而不同。

处理器内核200、201、202、203可以是异类的,这是因为单个处理器14的处理器内核200、201、202、203可以被配置用于不同目的和/或具有不同的性能特性。因此,示例处理器内核可以被配置用于相同和不同的目的,同时具有相同或不同的性能特性。示例异类的处理器内核可以包括众所周知的“big.LITTLE”架构,其中,较慢的低功率处理器内核可以与更强大的并且高耗电的处理器内核耦合。

在图2中示出的示例中,多核处理器14包括四个处理器内核200、201、202、203(即,处理器内核0、处理器内核1、处理器内核2和处理器内核3)。为了便于解释说明,本文中的示例可以指的是图2中示出的四个处理器内核200、201、202、203。但是,图2中示出的并且本文中描述的四个处理器内核200、201、202、203仅仅是作为示例提供的,并且无论如何也不意味四核处理器系统的各种方面。计算设备10、SoC 12或多核处理器14可以单独地或组合地包括比本文中示出和描述的四个处理器内核200、201、202、203更少或更多的处理器内核。

图3示出了被配置为针对计算设备的各种状态来选择优选处理器内核组合的SoC 12。SoC 12可以包括如上所述的很多组件,诸如处理器14,其可以是包含例如四个处理器内核200、201、202、203的多核通用处理器。SoC 12还可以包括其它组件,诸如第一DSP 1 308、第二DSP 2 310、调制解调器312GPU 314、视频子系统316、无线局域网(WLAN)收发机318和视频前端(VFE)子系统320。

SoC 12上的组件中的每个组件在SoC 12的基板上占用物理空间,并且根据在开发和制造过程中考虑的各种参数排列在SoC 12上。SoC 12上的组件的布置可能对组件性能,尤其是它们的操作温度有影响。当计算设备可操作时,SoC 12的组件产生热量,该热量必须从SoC 12和从计算设备消散。组件的操作温度可以受到其自己的功耗(自发热)和周围组件的温度影响(相互加热)的影响。相互加热组件可以包括SoC 12上的产生温度的任何东西。因此,SoC 12上的每个组件的操作温度将取决于其相对于散热片和SoC上的产生热量的其它组件的位置。例如,处理器14和GPU 314在执行图形密集型应用时都产生大量热量。在这些组件被靠近地放置在一起时,一个组件可能由于其在操作期间产生的热量而造成另一个组件的性能受损。因此,如图3中所示,处理器14和GPU 314可以被放置为彼此距离足够远,使得任一组件暴露给另一个组件的热量可以得到减少。不过,一些处理器内核(例如,内核2 202)可以被放置的更靠近GPU 314,并且因此与位于很远位置的处理器内核(例如,内核0 200)相比,更多地受到由GPU产生的热量的影响。

SoC 12可以包括散热片330(以虚线显示以便示出放置在SoC 12的安装表面上的散热片),其用于从SoC 12及其组件消散热量。散热片330可以根据设计被放置在SoC 12中的不同位置,但是散热片的一般位置是在SoC 12的中心,如图所示。由于热量必须通过SoC 12到达散热片330,因此那些位于距离该散热片很远的位置的组件(例如,内核0 200)可能在操作时比位置靠近散热片的那些组件(例如,内核2 202)显示出更高的操作温度。

各个组件上的热量的影响对于多核处理器14的处理器内核200、201、202、203来说是尤其普遍的,因为它们可能被紧密的包装在一起。随着热量增加,处理器内核可能变得不那么高效,这是因为电流泄漏经常与处理器内核的温度相关。在操作期间,处理器内核将产生一些可能影响其性能的热量,并且其可能遭受相邻的可操作处理器内核和/或其它组件的热量。处理器内核200、201、202、203中的一些内核可以被放置的更靠近散热片330(例如,内核202)并且因此能够比其它处理器内核(例如,内核201、202、203)更好的消散热量。因此,放置在距离散热片330更远处的处理器内核201、202、203在计算密集型处理(即,涉及很少等待状态的处理)期间操作在更高的温度处,这是因为它们可能无法同样地消散热量。一般来讲,放置在更靠近散热片处的处理器内核200、201、202、203将会受到它们自己的热量产生和其它组件所产生的热量的更小的影响。

如上所讨论的热量产生和消散的影响是依赖于设计的,并且根据处理器的数量的布置、散热片的热传导特性和布置以及SoC的构造材料而针对每个SoC设计有所不同。因此,用于选择处理内核对的算法应该考虑设计差异。

除了设计差异之外,制造变化对SoC 12中的各个组件的操作温度、效率和处理速度也有显著影响。这些变化可以影响对用于在不同温度和操作状况下执行特定操作的处理内核的最优选择。一些处理器内核200、201、202、203可以呈现更好或更差的电流泄漏以及因此的热量产生。此外,处理器内核的散热特性可能随批次而变化。类似地,散热片330的散热性能也可能随SoC和随批次而变化。在其中位于最靠近散热片330处的处理器内核202具有最差的电流泄漏特性的SoC 12中,预期的从其布置所获得的效率上的益处可能被其在一些温度和操作状况下的电流泄漏特性所压倒。因此,简单地依靠针对给定设计SoC所预设的、不考虑批次变化的处理器内核对选择可能导致在一些情况下的不是最优的选择。

图4A示出了描绘了针对计算设备的状态的大量处理器的模拟结果的图400。处理器的制造商可以对来自给定设计或制造批次的处理器的样本执行可操作测试,并且使用获取的关于电压泄漏、操作温度和操作性能的信息来运行在计算设备的各个状态下的处理器性能模拟。所测试和模拟的状态可以包括诸如温度、工作负载(例如,计算密集度)、功率可用性、功耗和操作频率之类的变量。对这些变量中的每个变量的各种水平和/或组合的模拟可以使用大批量测试数据在给定SoC设计中的处理器和/或处理器内核组合中的每一个中运行。由于制造变化,SoC中的处理器的处理器内核中的每个处理器内核可以在不同操作状况和处理工作负载下呈现不同的热量产生和操作温度。这种变化可以通过对来自给定批次的大量样本芯片进行测试来观察。通过在不同操作温度和不同操作状况(例如,不同的处理器工作负载)下运行样本芯片并且测量电流泄漏和/或温度,可以获得样本数据的数据库。还可以使用该数据来运行模拟以便扩展样本集合,以解决不同的操作温度和操作状况。

通过执行这些测试和模拟,已经观察到在给定的特定设计批次中,处理器温度和性能结果将趋向于一起聚集到区域中。这在图4A中示出,图4A示出了两个内核的泄漏电流比率的图,具体为针对模拟中测试的每个芯片的内核0与内核1的泄漏电流比率、内核0与内核2的泄漏电流比率和内核0与内核3的泄漏电流比率。图400a中绘制的每个点可以是针对单个芯片的比较结果。如图4A所示,可以确定测试和模拟结果的一些分组,并且可以画出包含所绘制的数据区域的边界408、410、412,如图4B所示。这些边界408、410、412可以用作定义测试和模拟数据的区域的比率值,其指示用于模拟的一类芯片的优选处理器内核配对。

使用基于批量测试数据的模拟结果,可以基于多种标准,针对每个操作状态来选择优选处理器内核配对。在各个方面中,优选组合中的处理器内核的数量可以是预先确定的或者可以基于模拟结果来确定。在各个方面中,优选组合中的处理器内核可以是基于显示某些水平的处理速度、功耗、温度、电流泄漏或基于这些因素的组合的效率的结果来选择的。针对每个模拟的状态,可以生成不同的散点图并且用于识别能够用于选择针对每个操作状况的优选处理器内核组合的边界线。为了分析优选处理器内核,可以将每个处理器内核的参数与处理器内核中的另一个处理器内核的相同参数进行比较。虽然图4B将这些参数示为处理器内核中的每个处理器内核的电流泄漏(IDDq),但是在各个方面中,参数可以包括处理速度、功耗、温度、电流泄漏或基于这些参数组合的效率。通过比较分析结果,可以确定某些处理器内核组合在某个结果范围内是优选的模式。为了便于解释说明,将围绕处理器内核参数是电流泄漏来描述本文中的示例,但是无论如何都不意味是在进行限制。

图4A中的散点图400a示出了测试和模拟结果可以如何用于定义图4B中示出的相对值边界,该相对值边界可以用于基于给定SoC的处理内核的性能的测试分析和模拟分析,来选择针对特定状态的优选处理器内核组合。这些结果,尤其是所识别的边界线可以被视为根据可测量参数的优选处理器内核组合的区域。这在图4B中的图400b中示出,图400b绘制了针对四核处理器的特定状态的优选双核组合的区域,如由上文所述的参数(例如,电流泄漏)和参数边界线408、410、412定义的。在该示例中,该图是在假设处理器内核0必须在所模拟的状态期间参与执行任务时,处理器内核1、处理器内核2和处理器内核3的结果的比较的二维表示。其它图可以被编译为显示当其它处理器内核中的任何处理器内核被假设为在所模拟的状态期间参与执行过程时的结果的比较。针对每个比较结果的给定处理器可以不受限于一个处理器,而是可以包括处理器的组合。例如,处理器内核的组合可能已经被视为是优选的,并且比较结果可以用于帮助选择要参与所模拟的状态的额外处理器。还有可能在多维图(针对每个处理器内核对具有一个轴)中描绘对所有处理器内核组合的结果的比较。

在一个方面中,图400b可以代表作为结果的处理器内核1和3的电流泄漏与作为结果的处理器内核2的电流泄漏的比较。在该示例中,处理器内核的比较结果产生了将优选处理器内核组合划分成三个扇区402、404和406的模式。扇区402包含处理器内核0和处理器内核1的组合被确定为优选时的电流泄漏的比较结果。扇区404包含处理器内核0和处理器内核2的组合被确定为优选时的电流泄漏的比较结果。扇区406包含处理器内核0和处理器内核3的组合被确定为优选时的电流泄漏的比较结果。

作为结果的比较模式还可以产生将扇区402、404和406分隔开的边界408、410、412,如上所述。可以按照在优选处理器内核组合的分析中使用的处理器内核的参数相互之间的比率的方面来定义边界408、410、412。边界402、404和406可以被表示为可以在将两个处理器内核的比率与边界进行比较的不等式中使用的值。这些边界值连同与这些边界值相关联的优选内核集合可以被存储在存储器中的可由执行内核的处理器或调度器访问的数据表格中。可以针对每个模拟的操作状态来存储这些边界值和优选处理器内核集合,并且存储器中可以存储有针对不同操作状态和状况的若干边界值集合。

在一个示例方面中,上述电流泄漏比率可以定义边界408、410、412。在图400b中,内核1与内核2的电流泄漏比率值可以定义边界408。类似地,内核3与内核2的电流泄漏比率值可以定义边界410。其它比率的比率值可以定义边界412。各个方面中的边界值可以围绕比率的公式。例如上述比率可以被指定为R1和R2,并且边界值可以被表达为R2>R1+0.5。该边界值可以是根据对位于两个扇区的边界上的图的点的拟合来获取的值或公式。

改变确定优选内核所根据的标准可以通过在模拟中测试的芯片性能的不同测量来实现,这可以产生曲线图上的不同绘制。类似地,改变确定优选内核所针对的计算设备的状态也可以产生曲线图上的不同绘制。不同的绘制可以产生将不同扇区分隔开的不同边界。为了确定针对特定状态的计算设备中的处理器的优选处理器内核,可以将处理器的参数(例如,电流泄漏)与从具有相同或相似芯片类型和状态的测试和模拟中产生的边界进行比较。

虽然本文中对边界的描述(诸如图4A和4B中的示例性示出及其描述)可以描绘针对处理器内核的比较中的每个比较的不同的边界,但是也有可能边界是重叠的。处理器内核比率可以产生相同的边界。响应于重叠或相同的边界,可以从满足如上所述标准的处理器内核组合的群组中选择优选处理器内核组合。从群组中选择优选处理器内核组合可以是基于运行时间效率参数的。

应该注意的是,图400b仅仅是优选内核组合的分析的可视化表示。在一个方面中,用于确定边界值和优选处理器内核集合的分析可以通过计算设备使用各种数学分析方法而不创建可视化表示来完成。

在操作中,可以确定计算设备的状态和处理器内核的参数,诸如电流泄漏或者可以用于计算电流泄漏的因素。可以以比率的形式来将每个处理器内核的电流泄漏与彼此进行比较。可以在不等式中将电流泄漏比率的结果与用于比率中的计算设备的状态和处理器内核相关联的边界值进行比较。例如,CurrentLeakage(Cx)和CurrentLeakage(Cy)可以分别表示两个不同处理器内核的电流泄漏。BoundaryValue(z)可以表示与内核Cx和Cy的电流泄漏比率相关联的边界值。用于将内核Cx和Cy的电流泄漏与相关联的边界值进行比较的不等式可以用下面的公式来表示:

针对x,y,z=1,2,3,…nCm

当该不等式结果为真时,与该不等式的边界值相关联的优选处理器内核集合可以用于确定优选处理器内核组合。一般来讲,每个优选内核可以是针对至少一对为真的不等式选择的。所选择的优选处理器内核可以是存在于所识别的至少两个为真的不等式的集合中的优选处理器内核。当两个以上处理器内核被用于优选内核组合中时,内核的电流泄漏与边界值的比较可以针对每个要参与的额外内核再次执行。可以针对排除了已经针对优选内核组合选择了的内核的精简处理器内核集合执行该比较。这一比较的额外执行也可以用于针对计算设备的状态,确定额外内核的通电序列或启动序列。这些额外的内核可能初始不是针对计算设备的状态优选的,但是响应于对额外处理器内核的需求,这些内核可以按照通电序列的顺序进行加入。

在一个方面中,使用电流泄漏的示例可以应用于同步处理器内核。在其中处理器内核是异步的另一个方面中,比率中使用的处理器内核的参数可以是电压和电流泄漏的函数。使用与如上文针对内核和边界值相同的记号,f(Voltage(Cx),CurrentLeakage(Cx))和f(Voltage(Cy),CurrentLeakage(Cy))可以分别代表内核Cx和Cy的函数。将内核Cx和Cy的函数与相关联的边界值进行比较的不等式可以通过如下来表示:

针对x,y,z=1,2,3,…nCm

图5示出了用于开发处理器内核组合选择边界的一个方面方法500。多核处理器芯片制造商可以生产多种同类和/或异类的多核处理器芯片类型。为了开发一种类型的多核处理器芯片的处理器内核组合选择边界,该制造商可以在多个相同类型的多核处理器芯片上实现方法500。该制造商还可以针对不同批量或批次的相同类型的多核处理器芯片实现方法500。在方框502中,可以针对该类型的多核处理器芯片运行各种计算设备状态的模拟。如上所述,计算设备状态模拟可以包括诸如温度、工作负载、功率可用性、功耗和操作频率之类的各种变量。这些变量可以用于定义计算设备状态。针对这些变量中的每一个变量的各种水平和/或组合的模拟可以在多个处理器中的每一个处理器上运行。在方框504中,可以收集计算设备状态的模拟中使用的处理器内核的操作数据。如上所述,处理器内核的这一操作数据可以包括处理速度/可操作频率、功耗、温度、电流泄漏或基于这些参数的组合的效率。在一个方面中,这些参数中的一些参数可以用于计算其它参数中的一个或多个其它参数。每个收集到的可操作数据/参数的集合可以与从中产生所述可操作数据/参数的集合的具体模拟的计算设备状态相关联,使得它们可以在稍后用于选择针对可操作计算设备的相同或相似计算设备状态的优选内核组合。

在方框506中,可以针对所模拟的计算设备状态中的每一个计算设备状态,确定在该计算设备状态的模拟中使用的多核处理器芯片中的每个多核处理器芯片的优选内核组合。可以基于来自基于不同优化目标的模拟的处理器内核的可操作数据的分析来做出该确定。例如,优化目标可以包括最大化的处理速度、最小化的功耗或基于针对给定功耗水平或功率简档的处理速度的各种组合的效率水平。可以分析每个多核处理器上的处理器内核的可操作数据,以确定多核处理器的哪些处理器内核组合针对特定优化目标是优选的。优选处理器内核组合的确定可能受到要在组合中使用的处理器内核的数量限制的影响。例如,一些方面可以涉及使用通常针对双核处理优化的软件。因此,优选处理器内核组合的确定可以受限于两个处理器内核。即使在这种情况中,可以选择两个以上处理器内核的优选组合,以帮助确定剩余处理器内核的通电序列或启动序列(如果需要的话)。

继续上文参考图4A和4B所讨论的示例,可以基于处理器内核中的每个处理器内核的电流泄漏来确定针对优化目标的优选处理器内核组合。组成优选内核组合的处理器内核的这些可操作数据可以包括用于在图4A中的图400a上进行绘制的数据。例如,针对优选内核组合被确定为是内核0和内核2的处理器,内核1与内核2的电流泄漏比率和内核3与内核2的电流泄漏比率将产生绘制在扇区404中的点。绘制针对在模拟中使用的一些或所有多核处理器的点可以产生如图4B中示出的以及上面描述的扇区402、404、406。扇区402、404、406可以定义具有所模拟的计算设备状态的相同的优选处理器内核组合的多核处理器的群组。

在方框508中,可以确定具有所模拟的状态的相同的优选处理器内核组合的多核处理器的群组的边界。在一个方面中,可以按照处理器内核的参数与其它处理器内核的参数的比率来定义这些边界。这些边界可以表示与优选处理器内核组合相关联的处理器内核的参数的比较的终值。在方框510中,所模拟的设备状态的边界可以被存储到多核处理器或包含多核处理器的计算设备的存储器设备(例如,ROM)。存储边界值还可以包括:存储边界值与优选处理器内核组合的关联关系。边界与优选处理器内核组合的关联关系可以在可操作计算设备中用于:基于可操作处理器内核的参数的比较,确定哪个处理器内核组合针对计算设备的状态是优选的。

图6示出了用于选择针对计算设备的操作状态和/或状况的优选处理器内核组合的方面方法600。方法600可以在计算设备中使用软件、通用或专用硬件、或软件和硬件的组合来执行。例如,处理器上执行的操作系统内核或调度器(例如,多核处理器的处理器内核之一)可以实现方法600。在一个方面中,边界值和针对计算设备的各个状态的优选处理器内核集合可以被存储在计算设备的存储器中的一个或多个存储器中。存储在存储器中的边界值和和优选处理器内核集合可以是特定于计算设备的多核处理器的。在方框602中,计算设备可以从计算设备的存储器加载边界值和其相关的处理器内核集合中的一些或全部。该信息可以被加载到SoC或特定多核处理器的更快的存储器。加载到SoC的存储器的信息可以包括边界和优选处理器内核集合中的全部或一些,或者只包括专门关于SoC的多核处理器的边界集合和优选处理器内核集合。加载到特定多核处理器的存储器的信息可以包括专门关于该多核处理器的信息。

在方框604中,计算设备可以确定表示该计算设备的当前状态的参数。如上文关于计算设备的状态的模拟所讨论的,计算设备的这些参数可以包括温度、工作负载、功率可用性、功耗和操作频率。在一个方面中,确定这些参数中的至少一些参数可以涉及测量来自传感器读数或其它信号的参数。在一个方面中,确定这些参数中的至少一些参数可以涉及从计算设备的硬件或软件组件取回参数的值。计算设备参数可以是针对该计算设备整体的,或者是针对该计算设备的特定组件的(诸如多核处理器)。可以根据这些参数中的一个或组合来确定该计算设备的状态。在一个方面中,在可选方框606中,计算设备可以确定针对某些时间状况的预测的计算设备状态,该计算设备可以针对所述时间状况来选择优选内核组合。确定预测的计算设备状态可以包括:使用该计算设备的当前参数计算该计算设备的参数。

在方框608中,该计算设备可以确定多核处理器的处理器内核的参数。如上所述,这些参数可以包括处理速度/可操作频率、功耗、温度、电流泄漏或基于这些参数的组合的效率。在一个方面中,这些参数中的一些参数可以用于计算其它参数中的一个或多个参数。继续先前的示例,所确定的参数(测量的、从硬件或软件取回的、或计算的)可以是处理器内核的电流泄漏。在一个方面中,处理器内核中的每个处理器内核的电流泄漏可以被存储在多核处理器的存储设备中,所述存储设备可以包括单独的处理器内核的存储设备。这种存储设备可以包括上述存储器或eFUSE。

在方框610中,计算设备可以比较处理器内核的参数。使用电流泄漏作为处理内核的参数来进行比较,计算设备可以将多核处理器的每个处理器内核的电流泄漏与多核处理器的每个其它处理器内核的电流泄漏进行比较。在一个方面中,该比较可以包括在方框612中确定处理器内核中的每个处理器内核的比率,诸如每个处理器内核组合的电流泄漏的比较。

在可选的确定方框614中,计算设备可以确定是否可以针对该计算设备的当前状态或该计算设备的预测的状态找到优选处理器内核组合。该确定可以基于各种因素,其可以包括该计算设备和/或该计算设备上执行的程序的配置,或者该计算设备的状态参数中的一个或多个状态参数。例如,在计算设备上执行的软件程序可以被配置为请求针对预测状态的优选内核组合,以执行软件的特征。计算设备可以使用该信息来确定是否执行该特征。另一个示例可以包括用于指示减小功率可用性简档或高温度的状态参数。计算设备可以确定使用当前状态找到可以降低该计算设备的功耗速率或温度的优选处理器内核组合。

响应于计算设备确定使用该计算设备的当前状态(即,确定方框614=“当前”)的响应,在方框616中,计算设备可以确定多核处理器的当前设备状态的边界。换句话说,计算设备可以从存储器取回与该计算设备的当前状态相关联的边界和优选处理器内核集合。在针对多个多核处理器在存储器中存储该信息的一个方面中,该计算设备可以取回还与特定多核处理器相关联的信息。

在方框618中,该计算设备可以将每个处理器内核组合的参数比率(在该示例中是电流泄漏)与相关的边界信息进行比较。在一个方面中,将比率与相关的边界信息进行比较可以包括使用如上所述的不等式。在一个方面中,该计算设备可以将所有比率与相应的边界信息进行比较。在另一个方面中,该计算设备可以将所有比率与相应的边界信息进行比较,直到该不等式针对至少一对比率为真为止。在一个方面中,该对比率可以包括其中第一内核与第二内核的比率和第三内核与第二内核的比率二者都产生针对它们相应的边界信息为真的不等式的任何一对比率。

在方框620中,该计算设备可以选择针对与为真的不等式的边界信息相关联的计算设备的当前状态的优选内核。如上所述,该边界信息可以与优选内核集合相关联。不等式针对其为真的边界值的标识可以用于识别针对为真的不等式的边界值中的每个边界值的优选内核集合。从该集合选择的优选处理器内核可以是存在与在与为真的不等式的边界值相关联的所有集合中的优选处理器内核。

在一个方面中,额外的优选内核可以与先前选定的优选内核组合。在可选方框622中,该计算设备可以针对额外的优选内核来将选定的优选内核从考虑中移除。将选定的优选内核从考虑中移除可以避免未来重新选择该相同的内核。这也可以导致更少的计算,从而降低功耗并加快对额外的处理器内核的选择。计算设备可以返回到方框602来重复针对选择优选内核的过程,这可以使得随着该计算设备的操作状态和状况随时间变化而得到对不同的优选处理器内核组合的选择。

响应于计算设备确定使用该计算设备的预测状态(即,确定方框614=“预测”),在方框624中,计算设备可以确定多核处理器的预测设备状态的边界。换句话说,计算设备可以从存储器取回与该计算设备的预测状态相关联的边界和优选处理器内核集合。在针对多个多核处理器在存储器中存储该信息的一个方面中,该计算设备可以取回与特定多核处理器相关联的信息。

在方框626中,计算设备可以将每个处理器内核组合的参数中的每个参数的比率(在该示例中是电流泄漏)与方框618中描述的相关的边界信息进行比较。在方框628中,计算设备可以如类似于方框620中针对当前状态所描述的,选择针对与为真的不等式的边界信息相关联的计算设备的预测状态的优选处理器内核或处理器内核组合。计算设备可以如上所述地在可选方框622中针对额外的优选内核来将选定的优选内核从考虑中移除,并且重复选择优选内核方框602的过程,这可以使得随着计算设备的操作状态和状况随时间变化而得到对不同的优选处理器内核组合的选择。

图7示出了用于动态地确定针对计算设备的状态的优选处理器内核组合的方面方法700。方法700可以在计算设备中使用硬件、通用或专用硬件、或软件和硬件的组合执行。在方框702中,计算设备可以确定要应用于多核处理器用于执行任务的动态功率。在一个方面中,对要应用的动态功率的确定可以包括要应用于单独处理器内核用于执行任务的动态功率。在方框704中,计算设备可以确定特定内核的温度,所述特定内核在本文中由变量“i”的值指示并且被称为内核“i”。温度可以由靠近内核“i”放置的传感器测量,根据来自包含处理器内核“i”的多核处理器中的或靠近它的传感器的读数来估计,或者基于来自各个硬件组件和/或软件的信息来计算。在方框706中,计算设备可以确定内核“i”的电流泄漏。可以通过从内核“i”或存储该内核“i”的泄漏电流的存储器读取电流泄漏的值来确定电流泄漏。还有可能基于从其它硬件组件和/或软件取回的测量或信息来计算内核“i”的电流泄漏。

在确定方框708中,计算设备可以确定内核“i”的温度是否小于温度门限。响应于确定内核“i”的温度不小于温度门限(即,确定方框708=“否”),在方框720中,计算设备可以增加变量“i”的值。然后,计算设备可以返回到方框704以便针对下一个处理器内核实现方法700。响应于确定内核“i”的温度小于温度门限(即,确定方框708=“是”),在方框710中,计算设备可以估计在感兴趣的时间内的内核“i”的温度和内核“i”的平均电流泄漏。在一个方面中,感兴趣的时间可以是针对完成任务所预期的时间。

在确定方框712中,计算设备可以确定所估计的内核“i”的温度是否小于温度门限。响应于确定所估计的内核“i”的温度不小于温度门限(即,确定方框712=“否”),在方框720中,计算设备可以增加变量“i”的值。然后,计算设备可以返回到方框704以便针对下一个处理器内核实现方法700。响应于确定所估计的内核“i”的温度小于温度门限(即,确定方框712=“是”),在方框714中,计算设备可以存储所估计的内核“i”的平均电流泄漏。

在确定方框716中,计算设备可以确定变量“i”是否大于或等于处理器内核的总数。响应于确定变量“i”不大于或等于处理器内核的总数(即,确定方框716=“否”),在方框720中,计算设备可以增加变量“i”的值。然后,计算设备可以针对下一个处理内核重复方框704至716的操作。

响应于确定变量“i”大于或等于处理器内核的总数(即,确定方框716=“是”),在方框718中,计算设备可以确定所有处理器内核的最小平均电流泄漏,并且选择相关的内核“i”作为优选处理器内核。还可以诸如定期地重复方法700以选择进一步的优选处理器内核来与所选定的处理器内核组合,以便调整以适应操作状态和状况的变化。与方法600很类似,在一个方面中,可以将所选定的内核“i”从作为方法700的稍后迭代中的优选处理器内核的考虑中移除,以避免重复选择相同的处理器内核以及减少做出该选择所需要的资源和时间。

图8示出了适合与各个方面一起使用的示例移动设备。移动设备800可以包括处理器802,处理器802耦合到触摸屏控制器804和内部存储器806。处理器802可以是设计用于通用或专用处理任务的一个或多个多核集成电路。内部存储器806可以是易失性或非易失性存储器,并且还可以是安全和/或加密存储器,或不安全/未加密存储器,或其任意组合。可以使用的存储器类型的示例包括但不仅限于:DDR、LPDDR、GDDR、WIDEIO、RAM、SRAM、DRAM、P-RAM、R-RAM、M-RAM、STT-RAM和嵌入式DRAM。触摸屏控制器804和处理器802还可以耦合到触摸屏面板812,诸如电阻式感应触摸屏、电容式感应触摸屏、红外感应触摸屏等。另外,计算设备800的显示器不需要具有触摸屏能力。

移动设备800可以具有耦合到彼此和/或耦合到处理器802的一个或多个无线信号收发机808(例如,花生(Peanut)、紫蜂、Wi-Fi、RF无线单元)和天线810,用于发送和接收通信。收发机808和天线810可以与上述电路一起使用来实现各种无线传输协议栈和接口。移动设备800可以包括经由蜂窝网络实现通信并且耦合到处理器的蜂窝网络无线调制解调器芯片816。

移动设备800可以包括耦合到处理器802的外围设备连接接口818。外围设备连接接口818可以被特别地配置为接受一种类型的连接,或者可以被配置为接受各种类型的公共的或专用的物理和通信连接,诸如USB、火线(FireWire)、雷电(Thunderbolt)或PCIe。外围设备连接接口818还可以耦合到类似配置的外围设备连接端口(未示出)。

移动设备800还可以包括用于提供音频输出的扬声器814。移动设备800还可以包括外壳820,其由塑料、金属或材料的组合来构造,用于包含本文论述的组件中的所有或一些组件。移动设备800可以包括耦合到处理器802的电源822,诸如一次性或可再充电的电池。可再充电的电池还可以耦合到外围设备连接端口,以从在移动设备800外部的源接收充电电流。移动设备800还可以包括用于接收用户输入的物理按钮824。移动计算设备800还可以包括用于打开或关闭移动设备800的电源按钮826。

上述各个方面也可以实现在多种多样的移动设备内,诸如在图9中示出的膝上型计算机900。许多膝上型计算机包括触摸板触摸表面917,其充当计算机的定点设备,并且因此可以接收拖拽、滚动和轻击手势,类似于在装配有上述触摸屏显示器的移动设备上实现的那些操作。膝上型计算机900将典型地包括处理器911,其耦合到易失性存储器912和大容量非易失性存储器,诸如闪速存储器的磁盘驱动器913。另外,计算机900可以具有用于发送和接收电磁辐射的一个或多个天线908,其可以连接到无线数据链路和/或耦合到处理器911的蜂窝电话收发机916。计算机900还可以包括耦合到处理器911的软盘驱动914和压缩盘(CD)驱动915。在笔记本计算机配置中,计算机外壳包括触摸板917、键盘918以及显示器919,它们全部耦合到处理器911。如公知的,计算设备的其它配置可以包括耦合到处理器(例如,经由USB输入)的计算机鼠标或轨迹球,其还可以结合各个方面来使用。

各个方面也可以实现在任何不同的商业用途服务器设备上,诸如图10中示出的服务器1000。这种服务器1000通常包括耦合到易失性存储器1002和大容量非易失性存储器(诸如硬盘驱动1004)的一个或多个多核处理器装配组件1001。如图10所示,可以通过将多核处理器装配组件1001插入组装的插槽而将它们添加到服务器1000。服务器1000还可以包括耦合到处理器1001的软盘驱动、光盘(CD)或DVD盘驱动1006。服务器1000还可以包括耦合到多核处理器装配组件1002的网络接入端口1003,用于与网络1005(诸如耦合到其它广播系统计算机和服务器的局域网、互联网、公共交换电话网络和/或蜂窝数据网络(例如,CDMA、TDMA、GSM、PCS、3G、4G、LTE或任何其它类型的蜂窝数据网络))建立网络接口连接。

用于在用于执行各个方面的操作的可编程处理器上执行的计算机程序代码或“程序代码”可以以高级编程语言来书写,例如,C、C++、C#、Smalltalk、Java、JavaScript、Visual Basic、结构化查询语言(例如,Transact-SQL)、Perl或各种其它编程语言。如在本申请中使用的,在计算机可读存储介质上存储的程序代码或程序可以指代格式可被处理器理解的机器语言代码(诸如对象代码)。

许多计算设备操作系统内核被组织到用户空间(非特权代码运行处)和内核空间(特权代码运行处)中。该分离在安卓(Android)和其它通用公共许可证(GPL)环境中是尤其重要的,其中作为内核空间的一部分的代码必须被GPL许可,而在用户空间中运行的代码可以不被GPL许可。应当理解的是,除非明确地另外陈述,否则这里论述的各种软件组件/模块可以实现在内核空间或用户空间中。

前述方法描述和过程流程图仅是作为说明性的示例来提供的,并且不旨在要求或暗示各个方面的步骤必须按给出的次序来执行。如本领域的技术人员将认识到的,前述方面中的操作的次序可以按任意次序来执行。诸如“其后”、“随后”、“接下来”等的词语不旨在限制操作的次序;这些词语仅用于引导读者浏览方法的描述。此外,任何以单数形式的对权利要求元素的引用,例如使用冠词“一”、“一个”或“这个”不被解释为将元素限制为单数形式。

结合各个方面描述的各种说明性的逻辑方框、模块、电路和算法操作可以实现为电子硬件、计算机软件或二者的组合。为了清楚地说明硬件和软件的这种互换性,上文依据各种说明性的组件、方框、模块、电路和操作的功能,已经对它们进行了一般性描述。至于这样的功能是实现为硬件还是软件,取决于特定的应用以及施加在整个系统上的设计约束。熟练的技术人员可以针对每个特定的应用,以变通的方式来实现所描述的功能,但是这样的实现决策不应当被解释为引起脱离本发明的范围。

用于实现结合本文公开的方面描述的各种说明性的逻辑单元、逻辑方框、模块和电路的硬件可以利用被设计为执行本文描述的功能的通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件或者其任意组合来实现或执行。通用处理器可以是微处理器,但是在替代的方式中,处理器可以是任何常规的处理器、控制器、微控制器或者状态机。处理器还可以被实现为计算设备的组合,例如,DSP和微处理器的组合、多个微处理器、一个或多个微处理器与DSP内核的结合,或者任何其它这样的配置。替代地,一些操作和方法可以由特定于给定功能的电路来执行。

在一个或多个方面中,所描述的功能可以在硬件、软件、固件或其任意组合中实现。如果在软件中实现,则所述功能可以作为一个或多个指令或代码存储在非暂时性计算机可读介质上或非暂时性处理器可读介质上。本文公开的方法或算法的操作可以体现在处理器可执行软件模块中,其可以位于非暂时性计算机可读或处理器可读存储介质上。非暂时性计算机可读或处理器可读存储介质可以是可由计算机或处理器存取的任何存储介质。通过举例而非限制性的方式,这样的非暂时性计算机可读或处理器可读介质可以包括RAM、ROM、EEPROM、闪速存储器、CD-ROM或其它光盘存储、磁盘存储或其它磁存储设备、或者可以用于以指令或数据结构的形式存储期望的程序代码并且可以由计算机来存取的任何其它介质。如本文所使用的,磁盘和光盘包括压缩光盘(CD)、激光光盘、光盘、数字多功能光盘(DVD)、软盘和蓝光光盘,其中磁盘通常磁性地复制数据,而光盘则利用激光来光学地复制数据。上述的组合也应当包括在非暂时性计算机可读和处理器可读介质的范围内。另外,方法或算法的操作可以作为代码和/或指令集合中的一个集合或任意组合而位于非暂时性处理器可读介质和/或计算机可读介质上,所述非暂时性处理器可读介质和/或计算机可读介质可以并入到计算机程序产品中。

提供对所公开的方面的前述描述,以使本领域的任何技术人员能够实现或使用本发明。对这些方面的各种修改对于本领域的技术人员将是显而易见的,并且本文所定义的通用原则可以应用到其它方面,而不会脱离本发明的精神或范围。因此,本发明不旨在限于本文示出的方面,而是要符合与下面的权利要求书和本文所公开的原则和新颖性特征相一致的最宽的范围。

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