芯片多处理器中的核心级动态电压和频率调节的制作方法

文档序号:6498449阅读:255来源:国知局
芯片多处理器中的核心级动态电压和频率调节的制作方法
【专利摘要】本文中所描述的技术一般地包括与制造具有多个处理器核心的芯片多处理器相关的方法和系统。一个示例方法可以包括:接收与所述多个处理器核心中的每一个相关联的性能或可靠性信息,其中,在所述芯片多处理器的封装之前确定所接收到的性能或可靠性信息;以及存储所接收到的性能或可靠性信息,使得存储的性能或可靠性信息被用来调整所述芯片多处理器的多个处理器核心中的至少一个的操作参数。
【专利说明】芯片多处理器中的核心级动态电压和频率调节

【背景技术】
[0001]除非在本文中另外指示,否则在此部分中所描述的方式对于本申请中的权利要求而言不是现有技术,并且通过包括在此部分中不被承认是现有技术。
[0002]与摩尔定律相一致,能够被可实行地并入集成电路的晶体管的数目每两年近似地翻倍。这个趋势已持续长达半个世纪并且预期继续直到至少2015或2020年为止。然而,简单地将更多晶体管添加到单线程处理器不再产生显著地更快的处理器。替代地,已通过在单个芯片上集成多个处理器核心来创建芯片多处理器并且在芯片多处理器的多个处理器核心之中共享进程达到了提高的系统性能。此外,芯片处理器的多个处理器核心能够共享其它公共系统组件,这可以促进与共同地可以具有相同的处理性能的多个单核心处理器相比在成本上较低的并且在尺寸上较小的系统的制造。


【发明内容】

[0003]依照本公开内容的至少一些实施方式,一般地描述了用于制造具有多个处理器核心的芯片多处理器的方法。本文中所描述的示例方法可以包括接收与多个处理器核心中的每一个相关联的性能或可靠性信息,其中,能够在芯片多处理器的封装之前确定所接收到的性能或可靠性信息。一些描述的方法还可以包括存储所接收到的性能或可靠性信息,使得所接收到的性能或可靠性信息能够被检索和用来调整芯片多处理器的多个处理器核心中的一个或多个处理器核心的一个或多个操作参数。
[0004]依照本公开内容的至少一些实施方式,描述了用于管理分配给芯片多处理器中的处理器核心的操作频率和电压的方法。一些示例方法可以包括为待由芯片多处理器完成的任务确定计算要求。基于所确定的计算要求并且基于与处理器核心中的每一个相关联的存储的性能或可靠性信息,能够调整处理器核心中的至少一个处理器核心的一个或多个操作参数。在一些示例中,能够在芯片多处理器的封装之前确定所存储的性能或可靠性信息。
[0005]依照本公开内容的至少一些实施方式,描述了能够在单个管芯(die)上形成多处理器的芯片多处理器。例如,能够在管芯上形成第一处理器核心、第二处理器核心以及片上(on-chip)寄存器。片上寄存器能够被构造成存储与第一处理器核心相关联的性能或可靠性信息和与第二处理器核心相关联的性能或可靠性信息。在多处理器的操作期间,能够从片上寄存器中检索所存储的性能或可靠性信息,并且能够调整第一和/或第二处理器核心的各种操作参数。
[0006]上述
【发明内容】
仅是说明性的,并且不旨在以任何方式为限制性的。除了上面所描述的说明性方面、实施方式以及特征之外,另外的方面、实施方式以及特征通过参照图和以下【具体实施方式】将变得显而易见。

【专利附图】

【附图说明】
[0007]本公开内容的上述和其它特征从结合附图进行的以下描述和所附权利要求将变得更完全显而易见。这些图仅描绘了依照本公开内容的数个实施方式,并且因此,将不被认为限制其范围。将通过使用附图附加具体地并详细地描述本公开内容。
[0008]图1示出了芯片多处理器的示例实施方式的框图;
[0009]图2示出了处理器核心的示例实施方式的框图;
[0010]图3阐述了概括用于制造具有多个处理器核心的芯片多处理器的示例方法的流程图;以及
[0011]图4阐述了概括用于管理向芯片多处理器中的处理核心提供的频率和电压的示例方法的流程图;
[0012]图5是用于实现用于制造具有多个处理器核心的芯片多处理器的方法的计算机程序产品的说明性实施方式的框图;以及
[0013]图6是例示了被布置用于制造具有全部依照本公开内容的至少一些实施方式所布置的多个处理器核心的芯片多处理器的示例计算装置的框图。

【具体实施方式】
[0014]在以下具体描述中,参照形成其一部分的附图。在图中,除非上下文另外指示,否则类似的符号典型地标识类似的组件。在【具体实施方式】、图以及权利要求中所描述的说明性实施方式不意在为限制性的。在不背离在这里所呈现的主题的精神或范围的情况下,可以利用其它实施方式,并且可以做出其它改变。将容易地理解,像在本文中一般地描述和图中所例示的那样,能够在各式各样的不同构造中布置、取代、组合并且设计本公开内容的方面,所述不同构造中的全部都被显式地设想到并且构成本公开内容的一部分。
[0015]半导体芯片制造常常包括摄影和化学处理步骤的序列,在这期间在由半导体材料制成的晶圆(wafer)上逐渐创建电子装置和电路。从晶圆的前段(front-end_of-line)处理到由晶圆形成的芯片的封装的整个制造工艺能够包括数百个工艺步骤,其中的每一个都可以经受一定程度的随机振动。因此,已名义上经历相同处理的芯片甚至从相邻位置形成在相同晶圆上的芯片可以具有变化的性能。相同的设计、工艺以及掩模可以被用于整个晶圆运行,但是在制造工艺末期每个芯片典型地经受长的且复杂的测试以确立什么最大时钟速度(或操作频率)被认为是可靠的,使得芯片能够基于所测量到的最大可靠时钟速度被装箱并且作为不同的产品出售。
[0016]当前,芯片多处理器(CMP)的制造商典型地为CMP中的每个处理器核心分配单个最大操作频率,而不管核心计数如何,并且预先设置计时到最大操作频率的CMP管芯。差分电压频率调节(DVFS)即微处理器的操作频率和/或操作电压在操作期间的调整然后能够被用来管理CMP的功率使用以保存功率,减少热产生等。对于具有少量处理器核心的CMP,这样的方法可能是简单的且有效的。然而,对于具有较高核心计数的CMP,所有处理器核心以基本上相同的性能和/或可靠性参数操作的假设能够导致CMP的显著性能损失和/或无用功率使用。这些性能损失可能发生,因为在高核心计数CMP中的大量处理器核心一般地具有最大操作频率和其它性能参数的宽分布。因此,将高核心计数CMP的最大操作频率设置为与CMP中的最低执行处理器核心兼容可以防止大多数处理器核心在它们的最大性能级下使用。采用较高核心计数CMP,最大操作频率的分布可以加宽并且这样的CMP的丢失的潜在性能可以按比例增加。
[0017]本文中所公开的实施方式设计用于向包含处理器核心的CMP提供处理器核心的核心级性能或可靠性信息的系统、方法和/或装置。可以在CMP的在封装之前发生的测试(诸如晶圆级测试)期间获得每个处理器核心的核心级性能或可靠性信息。因为这样的预封装测试允许为每个单独处理器核心和每个处理器核心的计算子模块收集具体性能和/或可靠性信息,所以这样的信息可以向CMP的电源管理单元(PMU)传达处理器核心的性能或可靠性的更全面表征。因此,在操作期间PMU可以被构造成根据其唯一特性来管理每个单独处理器核心的操作频率和电压。此外,在一些实施方式中,PUM可以被构造成基于分配给CMP的特定任务的组成来调整单独处理器核心的使用、操作频率和/或操作电压。
[0018]图1示出了依照本公开内容的至少一些实施方式所布置的芯片多处理器(CMP)10的示例实施方式的框图。CMP 100是由单个集成电路管芯形成的多核心处理器,所述单个集成电路管芯能够被构造成使用形成在管芯上的多个处理器核心来执行并行处理任务(例如,处理多个线程)。CMP 100可以包括电源管理单元(PMU) 110和多个处理器核心140。此夕卜,CMP 100可以被耦合到全局队列120和分配器130。
[0019]PMU 110可以作为CMP 100的全局控制器或多核心管理器,并且可以被构造成调整用于多个处理器核心140中的每一个的工作电压和/或频率级。PMU 110可以在组织和操作上与被构造用于CMP的现有PMU基本上类似。在一些实施方式中,PMUl 10可以被构造成相对于多个处理器核心140来执行DVFS。因此,PMU 110可以包括多个电压控制装置,每个都被构造成根据需要而独立地调整被施加到处理器核心140中的每一个的操作电压。在一些示例中,PMU 110可以包括DC/DC控制器和多个DC/DC转换器。PMU 110还可以包括时钟源单元或某个其它频率控制装置,其能够被构造成视需要而动态地调整向每个处理器核心140提供的时钟信号。在图1中所例示的实施方式中,PMU 110与CMP 100 一起布置在片上并且因此可以是CMP 100的组件。在其它实施方式中,可以相对于CMP 100在片外布置酬110。
[0020]已开发了能够被PMU 100使用的数个电源管理方法,涵盖各式各样的系统特性,包括:用于DVFS的硬件技术、高级操作系统驱动策略、对预测使用的响应、处理器资源根据活动需求的动态管理、以及任务在芯片多处理器(CMP)环境中到处理器的动态调度。其它方法包括自适应体偏压(ABB)和自适应电源(ASV)实施方式。
[0021]根据一些实施方式,可用于这样的电源管理的硬件执行器包括:结电压和频率调节、频率调节以及微架构开关,例如指令取出节流。PMU 110以规则时间间隔查询所有组件的性能、能力以及功率并且描述如何最好地控制每个组件的可用执行器以便遵照给定电源管理策略,例如,固定功率预算。用于通过硬件执行器来实现策略的算法为单个核心而存在,并且多亏单独核心级表征数据(即,性能/可靠性信息145)而能够在这里被用于CMP100上。适合由PMU 110用于DVFS的这样的实施方式算法的两个示例是MaxBIPS和LinOpt。
[0022]MaxBIPS算法假定PMU 110能够单独地针对处理器核心140中的每一个控制的一组离散电源模式(Vdd-频率对)。这样的算法的目标在于在给定功率预算下最大化通过每时间段由处理器核心140中的全部完成的指令的总数所测量到的CMP 100的总体性能。MaxBIPS算法依赖于如下事实:当给定核心从观测窗N中的电源模式A (VddA,频率A)切换至观测窗N+1中的电源模式B(VddB,频率B)时,将来的性能和功率可使用简单公式预测。LinOpt使用线性编程来为CMP中的每个核心查找最好的电压和频率级。预先这些公式已使用可用性能窗的芯片范围估计。根据一些实施方式,可以将这些算法修改成使用诸如在CMP 100上的处理器核心140被封装之前在核心级所收集的、由片上寄存器143 (在下面描述)所提供的数据这样的数据。
[0023]以每周期指令(IPC)所测量到的在处理器核心140之一上运行的应用的性能取决于应用在做计算上花多少时间与在等待存储器访问上花的时间的关系。特定处理器核心140的频率直接地影响计算速度,但是对与处理器核心140相关联的存储器等待时间有较少影响。因此,与存储器受限应用的性能相比,计算上密集的应用的性能对电压和频率调节更敏感。因此,用于处理器核心140的策略可以与它们正在运行什么任务相关,并且PMU110可以具有由在架构中诸如计算机操作系统(OS) 190或虚拟机管理器的较高层管理器所递送的策略,所述较高层管理器可以使不同的策略与不同的处理器核心140或任务101相关联。
[0024]根据一些实施方式,由PMU 110所使用的观测窗可以是变化的。在PM算法在运行时在100 μ S与500 μ S之间变化PMU观测窗在试验期间仅具有较少影响,所以能够随着活动核心的数目而改变PMU观测时间。附加地,在一些实施方式中,单个PMUllO能够被用于大CMP 100,因为单个PMU能够将多个处理器核心140的观测划分成在不同的时间段所取得的一系列样本。PMU 110可以同时(at once)观测处理器核心140中的全部,或者一次仅观测多个处理器核心140的子组并且在不同时间观测处理器核心的不同子组。根据一些实施方式,CMP 100可以包括多个PMU 110,其中的每一个都可以被构造成管理CMP 100的子域。例如,在一个这样的实施方式中,总体上四个PMU 110每个都可以大致地管理CMP 100的四分之一。在这样的实施方式中,多个PMU 110可以与彼此进行通信以合作地管理全局策略,或者,另选地,每个PMU 110可以从诸如虚拟机管理器或OS 190的软件管理器接收针对其子域的策略。
[0025]一些控制系统可以发现优化减少数目的控制更容易,在这种情况下,上面所描述的子域系统可以与由与处理器核心140相关的性能/可靠性信息145例如通过一起对具有类似性能/可靠性信息145的处理器核心140进行分组所分组的子域一起使用。在一些实施方式中,这样的分组可以在预封装测试时被定义并且以在这里针对性能/可靠性信息145所描述的方式存储。在其它实施方式中,可以稍后执行这样的分组以便简化管理。分组还可以由分配器130例如通过将一组任务101分配给由性能/可靠性信息145所标识的处理器核心140用来以比其它任务更低的功率运行。
[0026]全局队列120可以被构造成接收和存储来自OS 190的传入任务。分配器130是能够被构造成周期性地将全局队列120中的任务101分配给处理器核心140中的每一个的调度程序模块。分配器130的功能可以分布在OS 190与CMP 100之间,但是为了清楚,在图1中被例示为单个元件。在一些实施方式中,片上寄存器143可以位于处理核心140中的每一个中或者以其它方式分别与分配与处理核心140相关联。例如,在一些这样的实施方式中,片上寄存器可以在与处理核心140相同的芯片上,但是物理上不是如图1中所例示的处理核心140的一部分。在其它实施方式中,片外寄存器102 (也在图1中不出)可以被布置在CMP 100外部。
[0027]图2示出了依照本公开内容的至少一些实施方式所布置的处理器核心140中的一个的示例实施方式的框图。处理器核心140可以包括局部队列141、处理器电路142以及片上寄存器143。局部队列141可以被构造成接收和存储由分配器130分配给核心140的任务101。处理器电路142可以包括能够被构造成执行存储在局部队列141中的任务的处理器核心140的各种计算子模块149。处理器电路142中这样的计算子模块149的示例可以包括移位器、加法器、高速缓存、存储器通信单元、总线处理单元、网络接口、浮点单元、算术单元、特殊运算单元等等。片上寄存器143是能够与处理器核心140相关联的寄存器,其可以被形成为组成处理器核心140的集成电路的一部分。在一些实施方式中,片上寄存器143可以被构造成存储与处理器核心140相关的性能/可靠性信息145,其中所存储的信息145能够被PMU 110检索到或者提供给PMU 110。片上寄存器143可以是寄存器的任何技术上可行的表示,包括只读存储器(ROM)、可编程ROM(PROM)、可擦除PROM(EPROM)、电可擦除PROM (EEPROM)、熔丝映射、闪速存储器等等。
[0028]性能/可靠性信息145可以包括计量数据,该计量数据能够在CMP 100的封装之前(例如,在晶圆级测试工艺期间)在处理器核心140上测量到。因为可以在CMP 100的封装之前在晶圆级或在经切割的芯片上收集性能/可靠性信息145,所以与针对封装管芯相比,更多的测试触点是可用的,在一些示例中多达四倍之多。此外,计算机芯片在封装之前的测试可以在受控温度下并且用复杂的测试信号和测试装置加以执行,并且能够确立集成电路在预定可靠性下的最大时钟频率以及其它性能参数。由于在管芯的封装之前可用的附加的测试触点,可用于这样的测试的集成电路可以包括每个单独处理器核心140和/或每个处理器核心140的计算子模块149中的每一个。因此,在一些实施方式中,性能/可靠性信息145能够包括高度具体的核心级和/或子模块级信息,其能够被利用来使得PMU 110能够在操作期间有效地优化CMP 100的操作频率和/或功率使用。
[0029]在一些实施方式中,性能/可靠性信息145可以包括与所关联的处理器核心140的可靠操作相关联的最大操作电压和/或时钟频率值。在一些实施方式中,性能/可靠性信息145可以包括用于处理器核心140中的每一个的平均功率消耗值和/或峰值功率消耗值。在一些实施方式中,性能/可靠性信息145可以进一步包括跨越所关联的处理器核心140的操作范围所测量到的泄漏率和/或其它性能度量。在一些实施方式中,性能/可靠性信息145可以具有用于生成表示感兴趣处理器核心140的特定行为的函数(例如,频率与功率使用的关系)的斜率和截距(intercept)值的形式。另选地,在一些实施方式中,性能/可靠性信息145可以具有多个数据点的形式,所述多个数据点能够被用来跨越感兴趣处理器核心140的操作范围构建表示特定行为的最佳拟合曲线。在这样的实施方式中,数据点可以对应于在封装之前在测试期间所测量到的性能特性。因此,在CMP 100的操作期间,能够向PMU 110提供每个处理器核心140的唯一性能特性,从而在每核心基础上促进每个处理器核心140的最优功率使用和/或频率。
[0030]在一些实施方式中,性能/可靠性信息145可以包括针对在处理器核心140中的计算模块149和/或其它子电路中的一个或多个的性能或可靠性信息。具体地,性能/可靠性信息145可以包括针对在处理器核心140中的计算子模块和/或其它子电路中的每一个的功率使用、泄漏电流等,其中这样的信息可以包括跨越处理器核心的操作范围所定义的单独值或函数。以这种方式,能够确定CMP 100中的每个处理器核心140的唯一操作特性,并且PMU 100能够基于所述操作特性来改编每个处理器核心140的使用。
[0031]例如,在一些实施方式中,为了优化特定任务所需要的功率使用,PMU 110可以被构造成向分配器130提供输入数据,使得能够将任务从全局队列110分配给特定处理器核心140。任务的分配可以基于包含在任务中的执行指令并且基于分配了任务的处理器核心140的唯一操作特性。在这样的实施方式中,性能/可靠性信息145可以包括关于每个处理器核心140中的每个计算子模块149的功率使用的频率斜率值和截距值。能够生成这样的功率使用信息的表(例如,通过PMU 110,OS 190或分配器130)使得任务在被OS 190编译后,能够在由处理器核心的每个计算子模块和子电路所执行的指令的类别中被加权。以这种方式,可以产生有效的度量借此能够估计每个处理器核心140的性能并且经编译的任务能够被分配给被确定为最适合于完成该任务的处理器核心140。在简单的示例中,考虑到具有大量乘法的任务,对于乘法运算具有最低功率使用的处理器核心140将被选择来执行任务。在一些实施方式中,处理器核心的选择可以由PMU 110执行。在其它实施方式中,处理器核心的选择可以由OS 190或分配器130执行。
[0032]在操作中,CMP 100可以被构造成经由分配器130从OS 190接收任务101。PMUllO可以被构造成作为CMP 100的全局控制器,使得PMU 110能够有效地设置多个处理器核心140中的每一个的工作电压和频率级。在一些实施方式中,PMU 110可以被构造成从位于每个处理核心140中的片上寄存器143接收性能/可靠性信息145。在其它实施方式中,性能/可靠性信息145可以被存储在单个片外寄存器102中。在这样的实施方式中,性能/可靠性信息145可以被存储在能够被OS 190 (例如,在CMP100的初始启动期间)访问的远程数据库中。例如,远程数据库可以被构造成经由因特网来访问,使得CMP 100或OS 190能够使用与CMP 100相关联的唯一标识符代码自动地访问远程数据库,其中性能/可靠性信息145可以被存储在远程数据库中。考虑到隐私担忧,唯一标识符代码可以在性能/可靠性信息145被CMP 100接收到之后由OS 190删除或者阻挡。另选地,非唯一代码可以被包括在CMP 100的芯片ID中,所述芯片ID能够被远程数据库用来在算法上再现性能/可靠性信息145。其它手段还可以被用来在正常操作之前向CMP 100提供性能/可靠性信息145。
[0033]在其中CMP 100可以被构造用于DVFS的实施方式中,PMU 110可以被动态地构造成动态地变化多个处理器核心140中的每一个的工作电压和/或频率级。尽管在芯片多处理器中的多个核心的DVFS是稍微常规的,但是能够通过本公开内容中所描述的各种实施方式显著地改进DVFS的有效性,因为每核心、每封装测试信息(即,性能/可靠性信息145)可以被采用来为CMP 100中的大多数处理器核心140提供比可以典型地通过常规技术可得到的更宽的可靠操作范围。
[0034]注意的是,典型地不能够在CMP 100已被封装之后测量相当于性能/可靠性信息145的信息。虽然能够对封装的CMP使用“疲劳测试”并且通过一次仅一个核心被激活情况下对CMP执行测试而做出一些核心级性能特性的一些间接测量结果和估计,但是这样的结果是比本公开内容中所描述的那些固有地不太准确的。此外,这样的间接测量结果是基本上不准确的,因为它们不确定计算子模块或子电路性能,是费时的,并且固有地合并多个性能参数。因此,这样的常规测量结果不提供比得上通过在封装之前测试CMP所生成的核心级信息的信息。
[0035]图3示出了依照本公开内容的至少一些实施方式的概括用于制造具有多个处理器核心的CMP的示例方法300的流程图。方法300可以包括如由块301和/或302中的一个或多个所例示的一个或多个操作、功能或动作。尽管以顺序次序例示了块,但是还可以并行地和/或以与本文中所描述的那些不同的次序执行这些块。并且,各个块可以基于所期望的实施方式被组合成较少的块、划分成附加的块和/或消除。
[0036]为了易于描述,在与CMP 100基本上类似的CMP方面对方法300进行描述。技术人员将了解,方法300可以由CMP的其它构造执行并且仍然落入本公开内容的范围内。在方法300的第一操作之前,CMP 100可以被形成在半导体晶圆上并且在封装之前经历测试。
[0037]预封装测试可以被利用来产生与包括在CMP 100中的各个处理器核心140中的每一个相关联的性能/可靠性信息145,并且,在一些实施方式中,产生针对每个处理器核心140的计算子模块149和/或其它子电路的性能/可靠性信息145。
[0038]方法300的处理可以在操作301 “接收核心级性能/可靠性信息”中开始。在块301之后可以跟着块302 “存储核心级性能/可靠性信息”。
[0039]在操作301中,可以接收与CMP 100中的多个处理器核心140中的每一个相关联的性能/可靠性信息145。注意的是,可以在晶圆级测试或芯片级测试期间在多核心处理器的封装之前生成性能/可靠性信息145。
[0040]在操作302中,可以存储性能/可靠性信息145,使得能够在CMP 100的操作期间调整处理器核心140中的至少一个的操作参数。在一些实施方式中,存储性能/可靠性信息145可以包括将该性能或可靠性信息记录到单个片外寄存器102或者到多个片上寄存器143。在其它实施方式中,单个片上寄存器可以被用来存储性能/可靠性信息145。在另外的其它的实施方式中,存储性能/可靠性信息145可以包括将性能/可靠性信息145存储在可由PMU 110访问的数据库中,所述性能/可靠性信息145可以在PMU 110的启动时经由OS 190访问。
[0041]在一些实施方式中,调整处理器核心140中的至少一个的操作参数可以包括对PMU 110进行编程以基于在操作301中预先存储的性能/可靠性信息145来确定CMP100的处理器核心140中的至少一个的额定功率、频率以及操作电压中的一个。例如,PMU 110能够被构造成使用性能/可靠性信息145来优化DVFS过程以用于减少功率使用或者提高处理性能。具体地,当CMP 100被确定为具有轻处理负荷时,PMU 110能够将任务分配给已知为具有较低功率消耗的处理器核心140。在相同的计算性能下的核心对核心功率消耗差已在文献中示出为超过约20%,在PMU 110使适当的性能/可靠性信息145可得到时能够实现的功率节约。类似地,当CMP 100具有重处理负荷时,PMU 110能够将任务导向已知为具有较高计算性能的处理器核心。此外,因为PMU 110具有与每个处理器核心140的性能或可靠性相关的具体信息,所以PMUllO能够在近似峰值频率下操作每个处理器核心140,而不是对于CMP 100在单个标称峰值频率下操作所有处理器核心140。当芯片多处理器设计有大量处理核心时,每个处理核心140在单独地测量到的峰值频率下的操作像本文中所描述的那样能够在CMP 100的总体计算性能方面提供显著改进,例如,多达约100%。
[0042]图4示出了依照本公开内容的至少一些实施方式的概括用于管理向芯片多处理器中的处理核心提供的频率和/或电压的示例方法400的流程图。方法400可以包括如由块401、402和/或403中的一个或多个所例示的一个或多个操作、功能或动作。尽管以顺序次序例示了块,但是还可以并行地和/或以与本文中所描述的那些不同的次序执行这些块。并且,多个块可以基于所期望的实施方式被组合成较少的块、划分成另外的块和/或消除。
[0043]为了易于描述,在与CMP 100基本上类似的CMP方面对方法400进行描述。考虑到本公开内容,应当了解,方法400可以由CMP的其它构造执行,这落入本公开内容的范围内。在方法400的第一操作之前,可以在CMP 100的预封装测试期间收集与每个处理器核心140相关联的性能/可靠性信息145。
[0044]方法400的处理可以在操作401 “为任务确定计算要求”中开始。操作401可以继之以操作402 “调整处理器核心的操作参数”。操作402可以继之以操作403 “选择处理器核心”。
[0045]在操作401中,可以确定针对待由CMP 100完成的任务的计算要求。例如,通过分析任务的指令,执行指令可以被确定为低要求任务或高要求任务。在一些实施方式中,能够基于执行指令的组成并且同样基于每个处理器核心140的唯一操作特性来估计每个处理器核心140在执行任务时的性能。在一些实施方式中,可以在步骤401中通过PMU 110并且在其它实施方式中通过OS 190来确定针对指令的计算要求。
[0046]在操作402中,可以基于在操作401中所确定的计算要求并且基于与处理器核心中的每一个相关联的存储的性能/可靠性信息145来调整处理器核心140中的一个或多个的操作参数。在一些实施方式中,在操作402中调整的操作参数可以包括优化处理器核心140中的一个或多个的功率使用和/或时钟频率。
[0047]在可选操作403中,可以基于性能/可靠性信息145选择一个或多个处理器核心140。然后可以防止所选择的一个或多个处理器核心140执行任务。例如,如果在操作401中确定了执行指令表示低要求任务,则像由性能/可靠性信息145所指示的那样具有高功率使用的处理器核心可以不被用来执行任务中的一些或全部,从而最小化CMP 100的功率使用。
[0048]图5是用于实现用于制造具有依照本公开内容的至少一些实施方式所布置的多个处理器核心的CMP的方法的计算机程序产品500的说明性实施方式的框图。计算机程序产品500可以包括信号承载介质504。信号承载介质504可以包括一组或更多组可执行指令502,其当被例如计算装置的处理器执行时,可以至少提供关于图3在上面所描述的功能性。
[0049]在一些实施方式中,信号承载介质504可以包含非暂时性计算机可读介质508,诸如但不限于硬盘驱动器、紧致盘(CD)、数字视频盘(DVD)、数字磁带、存储器等。在一些实施方式中,信号承载介质504可以包含可记录介质510,诸如但不限于存储器、读/写(R/W)⑶、R/W DVD等。在一些实施方式中,信号承载介质504可以包含通信介质506,诸如但不限于数字和/或模拟通信介质(例如,光纤光缆、波导、有线通信链路、无线通信链路等)。可以在非暂时性计算机可读介质508或另一类似的可记录介质510上记录计算机程序产品500。
[0050]图6是例示了根据本公开内容的至少一些实施方式的被布置用于制造具有多个处理器核心的芯片多处理器的示例计算装置600的框图。在非常基本的构造602中,计算装置600典型地包括一个和多个处理器604和系统存储器606。存储器总线608可以被用于在处理器604与系统存储器606之间进行通信。
[0051]取决于所期望的构造,处理器604可以具有任何类型,包括但不限于微处理器(μ P)、微控制器(μ C)、数字信号处理器(DSP)或其任何组合。处理器604可以包括一级或更多级缓存(诸如第一级高速缓存610和第二级高速缓存612)、处理器核心614以及寄存器616。示例处理器核心614可以包括算术逻辑单元(ALU)、浮点单元(FPU)、数字信号处理核心(DSP核心)或其任何组合。示例存储器控制器618还可以与处理器604 —起使用,或者在实施方式中,存储器控制器618可以是处理器604的内部部分。
[0052]取决于所期望的构造,系统存储器606可以具有任何类型,包括但不限于易失性存储器(诸如RAM)、非易失性存储器(诸如ROM、闪速存储器等)或其任何组合。系统存储器606可以包括操作系统620、一个或多个应用622以及程序数据624。应用622可以包括被布置成管理分配给芯片多处理器中的处理器核心的操作频率和电压的算法626,如关于图3的方法300和/或图4的方法400所描述的。程序数据624可以包括像在本文中所描述的那样可以用于用数据监控算法626操作的性能/可靠性数据628。在一些实施方式中,应用622可以被布置成在操作系统620上对程序数据624进行操作。这个描述的基本构造602在图6中由内部虚线内的那些组件例示。
[0053]计算装置600可以具有附加的特征或功能性以及附加的接口以促进基本构造602及任何需要的装置与接口之间的通信。例如,总线/接口控制器640可以被用来经由存储接口总线641促进基本构造602与一个或多个数据存储装置650之间的通信。数据存储装置650可以是可拆卸存储装置651、不可拆卸存储装置652或其组合。可拆卸存储和不可拆卸存储装置的示例包括诸如柔性盘驱动器和硬盘驱动器(HDD)的磁盘装置、诸如紧致盘(CD)驱动器或数字通用盘(DVD)驱动器的光盘驱动器、固态驱动器(SSD)以及磁带驱动器等等。示例计算机存储介质可以包括以任何方法或技术实现以用于存储信息的易失性和非易失性、可拆卸和不可拆卸介质,所述信息诸如计算机可读指令、数据结构、程序模块或其它数据。
[0054]系统存储器606、可拆卸存储装置651以及不可拆卸存储装置652是计算机存储介质的示例。计算机存储介质包括但不限于RAM、R0M、EEPR0M、闪速存储器或其它存储器技术、CD-ROM、数字通用盘(DVD)或其它光学存储装置、磁盒、磁带、磁盘存储装置或其它磁存储装置,或可以被用来存储所期望的信息并且可以被计算机600访问的任何其它介质。任何这样的计算机存储介质可以是计算装置600的一部分。
[0055]计算装置600还可以包括接口总线660以用于经由总线/接口控制器640促进从各种接口装置(例如,输出装置642、外围接口 670以及通信装置680)到基本构造602的通信。示例输出装置660包括图形处理单元661和音频处理单元662,其可以被构造成经由一个或多个AV端口 663与诸如显示器或扬声器的各种外部装置进行通信。示例外围接口670包括串行接口控制器671或并行接口控制器672,其可以被构造成经由一个或多个I/O端口 673与诸如输入装置(例如,键盘、鼠标、笔、语音输入装置、触摸输入装置等)或其它外围装置(例如,打印机、扫描器等)的外部装置进行通信。示例通信装置680包括网络控制器681,其可以被布置成经由一个或多个通信端口 682通过网络通信链路来促进与一个或多个其它计算装置690的通信,所述网络通信链路诸如但不限于光纤、长期演进(LTE)、3G、WiMax。
[0056]网络通信链路可以是通信介质的一个示例。通信介质可以典型地由计算机可读指令、数据结构、程序模块或其它数据具体化在诸如载波的已调制数据信号或其它传输机制中,并且包括任何信息传送介质。“已调制数据信号”可以是使其特性中的一个或多个以如用来将信息编码在信号中这样的方式设置或者改变的信号。通过示例而非限制,通信介质包括诸如有线网络或直接有线连接的有线介质,以及诸如声学、射频(RF)、微波、红外线(IR)的无线介质和其它无线介质。如本文中所使用的术语计算机可读介质可以包括存储介质和通信介质两者。
[0057]计算装置600可以被实现为小形状因素便携式(或移动)电子装置的一部分,所述电子装置诸如手机、个人数据助理(PDA)、个人媒体播放机装置、无线web观看装置、个人头戴式耳机装置、专用装置,或包括上述功能中的任一个的混合装置。计算装置600还可以被实现为包括膝上型计算机和非膝上型计算机构造两者的个人计算机。
[0058]总之,本公开内容的实施方式提供了用于将向包含处理器核心的CMP提供处理器核心的核心级性能或可靠性信息的系统和方法。核心级性能或可靠性信息到多核心管理进程中的并入可以允许CMP的多核心管理器对于每个核心使用更宽的操作范围。这可以增强高要求任务的总体处理能力并且降低低要求任务的总体能力使用。此外,注意的是,可以在没有对现有芯片设计或工艺的改变的情况下做出这些改进。
[0059]在系统的方面的硬件和软件实施方式之间存在很少不同;硬件或软件的使用一般地是(但不总是,因为在特定上下文中硬件与软件之间的选择能够变得有效)表示成本与效率权衡的关系的设计选择。存在本文中所描述的过程和/或系统和/或其它技术能够通过其而被实现的各种工具(例如,硬件、软件和/或固件),并且优选工具将随着过程和/或系统和/或其它技术被部署在其中的上下文而变化。例如,如果实施者确定速度和准确性是最高的,则实施者可以选择主要硬件和/或固件工具;如果灵活性是最高的,则实施者可以选择主要软件实施方式;或者,又再次另选地,实施者可以选择硬件、软件和/或固件的某种组合。
[0060]前面的具体描述已经由框图、流程图和/或示例阐述了装置和/或过程的各种实施方式。在这样的框图、流程图和/或示例包含一个或多个功能和/或操作的范围内,本领域内的技术人员将理解,这样的框图、流程图或示例能够由各式各样的硬件、软件、固件或实际上其任何组合个别地和/或共同地实现。在一个实施方式中,本文中所描述的主题的数个部分可以经由专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)或其它集成格式来实现。然而,本领域的技术人员将认识到,本文中所公开的实施方式的一些方面总体上或部分地能够被同样地实现在集成电路中、作为在一个或多个计算机上运行的一个或多个计算机程序(例如,作为在一个或多个计算机系统上运行的一个或多个程序)、作为在一个或多个处理器上运行的一个或多个程序(例如,作为在一个或多个微处理器上运行的一个或多个程序)、作为固件或作为实际上其任何组合,并且设计电路和/或为软件和/或固件写代码将也在考虑到本公开的本领域的技术人员内。此外,本领域的技术人员将了解,本文中所描述的主题的机制能够被以各种形式作为程序产品分布,并且本文中所描述的主题的说明性实施方式适用,而不管用来实际上执行分布的信号承载介质的特定类型如何。信号承载介质的示例包括但不限于下列的:诸如柔性盘、硬盘驱动器、紧致盘(CD)、数字通用盘(DVD)、数字磁带、计算机存储器等的可记录型介质;以及诸如数字和/或模拟通信介质(例如,光纤光缆、波导、有线通信链路、无线通信链路等)的传输型介质。
[0061]本领域的技术人员将认识到,在本领域内通常以本文中所阐述的方式来描述装置和/或过程,并且其后使用工程实践来将这样描述的装置和/或过程集成到数据处理系统中。也就是说,本文中所描述的装置和/或过程的至少一部分能够经由合理数量的试验被集成到数据处理系统中。本领域的技术人员将认识到,典型的数据处理系统一般地包括系统单元外壳、视频显示装置、诸如易失性和非易失性存储器的存储器、诸如微处理器和数字信号处理器的处理器、诸如操作系统、驱动程序、图形用户接口的计算实体以及应用程序、一个或多个交互装置(诸如触摸板或屏幕)和/或控制系统中的一个或多个,所述控制系统包括反馈回路和控制电机(例如,用于感测位置和/或速度的反馈;用于移动和/或调整组件和/或量的控制电机)。典型的数据处理系统可以利用任何适合的商业上可得到的组件来实现,所述组件诸如典型地在数据计算/通信和/或网络计算/通信系统中找到的那些。
[0062]本文中描述的主题有时例示了包含在不同的其它组件内或与不同的其它组件连接的不同组件。应当理解,这样描绘的架构仅仅是示例性的,并且实际上能够实现完成相同的功能性的许多其它架构。在概念意义上,实现相同的功能性的组件的任何布置被有效地“关联”使得所期望的功能性被完成。从而,在本文中组合来完成特定功能性的任何两个组件能够被视为与彼此“相关联”使得所期望的功能性被完成,而不管架构或中间组件如何。同样地,如此关联的任何两个组件还能够被视为被“在操作上连接”或“在操作上耦合”到彼此以完成所期望的功能性,并且能够被如此关联的任何两个组件还能够被视为“在操作上可耦合”到彼此以完成所期望的功能性。在操作上可耦合的特定示例包括但不限于物理上可配对的和/或物理上进行交互的组件和/或无线地可交互的和/或无线地进行交互的组件和/或逻辑上进行交互的和/或逻辑上可交互的组件。
[0063]关于大体上任何复数和/或单数术语在本文中的使用,像适于上下文和/或应用那样本领域的技术人员能够从复数向单数和/或从单数向复数转化。为了清楚起见,可以在本文中明确地阐述各种单数/复数置换。
[0064]本领域内的技术人员将理解,一般而言,在本文中以及尤其在所附权利要求(例如,所附权利要求的正文)中所使用的术语一般地意为“开放式”术语(例如,术语“包括有”应该被解释为“包括有但不限于”,术语“具有”应该被解释为“至少具有”,术语“包括”应该被解释为“包括但不限于”等)。本领域内的技术人员将进一步理解,如果特定数目的引入的权利要求引用是预定的,则这样的意图将被显式地记载在该权利要求中,并且在缺少这样的引用情况下不存在这样的意图。例如,作为对理解的帮助,以下所附权利要求可以包含介绍性短语“至少一个”和“一个或多个”的使用以便引入权利要求引用。然而,即便当相同的权利要求包括介绍性短语“一个或多个”或“至少一个”和诸如“一”或“一个”的不定冠词时(例如,“一”和/或“一个”应该典型地被解释成意指“至少一个”或“一个或多个”),这样的短语的使用不应该被解释成暗示权利要求引用通过不定冠词“一”或“一个”的引入将包含这样引入的权利要求应用的任何特定权利要求限制于包含仅一个这样的引用的发明;相同情况适用于用来引入权利要求引用的限定冠词的使用。此外,即使特定数目的引入的权利要求引用被显式地记载,本领域的技术人员也将认识到,这样的引用典型地应该被解释成至少意指所记载的数目(例如,“两个引用”的仅有引用,而没有其它修改者,典型地意指至少两个引用或两个或更多个引用)。此外,在其中使用了类似于“A、B以及C等中的至少一个”的约定的那些实例中,一般而言这样的构造在本领域的技术人员将理解该约定的意义上被打算(例如,“具有A、B以及C中的至少一个的系统”将包括但不限于只有A、只有B、只有C、A和B —起、A和C 一起、B和C共同和/或A、B以及C 一起等的系统)。在其中使用了类似于“A、B以及C等中的至少一个”的约定的那些实例中,一般而言这样的构造在本领域的技术人员将理解该约定的意义上被打算(例如,“具有A、B以及C中的至少一个的系统”将包括但不限于只有A、只有B、只有C、A和B —起、A和C 一起、B和C共同和/或A、B以及C 一起等的系统)。本领域内的技术人员将进一步理解,实际上任何转折词和/或短语呈现两个或更多替代术语,无论在本描述、权利要求还是附图中,应该被理解成设想到包括术语中的一个、术语中的任何一个或两个术语的可能性。例如,短语“A或B”将被理解成包括“A”或“B”或“A和B”的可能性。
[0065]虽然已经在本文中公开了各种方面和实施方式,但是其它方面和实施方式对于本领域的技术人员而言将是显而易见的。本文中所公开的各种方面和实施方式用于例示的目的并且不旨在为限制性的,其中真实范围和精神由随附权利要求指示。
【权利要求】
1.一种制造具有多个处理器核心的芯片多处理器的方法,所述方法包括以下步骤: 接收与所述多个处理器核心中的每一个相关联的性能或可靠性信息,其中,在所述芯片多处理器的封装之前确定所接收到的性能或可靠性信息;以及 存储所接收到的性能或可靠性信息,使得所存储的性能或可靠性信息被用来调整所述芯片多处理器的所述多个处理器核心中的至少一个处理器核心的操作参数。
2.根据权利要求1所述的方法,其中,调整所述多个处理器核心中的至少一个处理器核心的操作参数包括对与所述芯片多处理器相关联的电源管理单元进行编程以基于所存储的性能或可靠性信息来优化所述至少一个处理器核心的功率使用或时钟频率。
3.根据权利要求2所述的方法,其中,优化所述芯片多处理器的功率使用和时钟频率中的一个包括基于与所述至少一个处理器核心相关联的所存储的性能或可靠性信息将任务分配给所述多个处理器核心中的至少一个处理器核心。
4.根据权利要求1所述的方法,其中,所述操作参数包括由电源管理单元向所述多个处理器核心中的至少一个处理器核心提供的电压或频率。
5.根据权利要求1所述的方法,其中,与所述多个处理器核心中的每一个处理器核心相关联的所述性能或可靠性信息包括每一个处理器核心的至少一个计算子模块的频率与功率使用信息的关系。
6.根据权利要求5所述的方法,其中,所述至少一个计算子模块包括移位器、加法器、高速缓存、总线处理单元、网络接口、浮点单元、算术单元或特殊运算单元。
7.根据权利要求5所述的方法,其中,所述至少一个计算子模块的所述频率与功率信息的关系包括关于所述至少一个计算子模块的功率使用的频率斜率和截距。
8.根据权利要求1所述的方法,其中,存储所接收到的性能或可靠性信息包括将所述性能或可靠性信息记录到所述芯片多处理器的片上寄存器。
9.根据权利要求1所述的方法,其中,存储所接收到的性能或可靠性信息包括将所述性能或可靠性信息存储在可由与所述芯片多处理器相关联的电源管理单元访问的数据库中。
10.根据权利要求1所述的方法,其中,存储所接收到的性能或可靠性信息包括将关于所述至少一个处理器核心的所接收到的性能或可靠性信息存储在所述处理器核心上。
11.根据权利要求1所述的方法,其中,调整所述多个处理器核心中的至少一个处理器核心的操作参数包括基于所接收到的性能或可靠性信息来确定所述多个处理器核心中的至少一个处理器核心的额定功率、频率以及操作电压中的一个。
12.根据权利要求11所述的方法,其中,所述额定功率包括所述至少一个处理器核心的平均功率消耗和峰值功率消耗中的一个。
13.—种管理向芯片多处理器中的处理器核心提供的频率和电压的方法,所述方法包括以下步骤: 为待由所述芯片多处理器完成的任务确定计算要求;以及 基于所确定的计算要求并且基于与所述处理器核心中的每一个处理器核心相关联的所存储的性能或可靠性信息,调整所述芯片多处理器的所述处理器核心中的至少一个处理器核心的操作参数,其中,在所述芯片多处理器的封装之前确定所存储的性能或可靠性信肩、O
14.根据权利要求13所述的方法,其中,调整所述处理器核心中的至少一个处理器核心的操作参数包括基于所存储的性能或可靠性信息来优化所述至少一个处理器核心的功率使用或时钟频率。
15.根据权利要求14所述的方法,其中,优化所述芯片多处理器的功率使用和时钟频率中的一个包括基于与所述处理器核心中的至少一个处理器核心相关联的所存储的性能或可靠性信息将任务分配给所述至少一个处理器核心。
16.根据权利要求13所述的方法,其中,所存储的性能或可靠性信息被设置在所述芯片多处理器的片上寄存器中。
17.根据权利要求13所述的方法,所述方法还包括: 基于与所述处理器核心相关联的所存储的性能或可靠性信息,从所述芯片多处理器中的所述处理器核心选择处理器核心;以及 防止所述处理器核心执行所述任务。
18.—种芯片多处理器,所述芯片多处理器被形成在单个管芯上并且包括: 形成在所述管芯上的第一处理器核心; 形成在所述管芯上的第二处理器核心;以及 片上寄存器,所述片上寄存器被形成在所述管芯上并且被配置有与所述第一处理器核心相关联的性能或可靠性信息和与所述第二处理器核心相关联的性能或可靠性信息。
19.根据权利要求18所述的芯片多处理器,其中,所述片上寄存器包括设置在所述第一处理器核心中的寄存器和设置在所述第二处理器核心中的寄存器。
20.根据权利要求18所述的芯片多处理器,其中,所述性能或可靠性信息包括关于所述第一处理器核心的至少一个计算子模块的频率与功率使用信息的关系和关于所述第二处理器核心的至少一个计算子模块的频率与功率使用信息的关系。
【文档编号】G06F15/76GK104205087SQ201280071995
【公开日】2014年12月10日 申请日期:2012年2月4日 优先权日:2012年2月4日
【发明者】E·克鲁格里克 申请人:英派尔科技开发有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1