电压调节器的微处理器辅助自动校准的制作方法

文档序号:6485494阅读:178来源:国知局
电压调节器的微处理器辅助自动校准的制作方法
【专利摘要】相对于向处理器或耦合到处理器的存储器子系统供电的特定电压调节器的处理器动态运行时校准可以减少或消除对功率管理计算中的保护带的需要。处理器从电压调节器接收电流测量,并基于所测量的值和已存储的预期值计算校准因子。校准因子可以用于做出功率管理判决而不是把保护带添加到功率读数。处理器的生产商或分销商可以用具有比计算系统中所使用的典型商用电源更高的精度的受控电源计算已存储的值。所计算的、已存储的值指示预期值,该预期值可以用来确定相对于有源系统的电压调节器的校准因子。
【专利说明】电压调节器的微处理器辅助自动校准
[0001] 领域
[0002] 本发明的各实施例通常涉及功率管理,且尤其涉及处理器功耗。
[0003] 版权声明/许可
[0004] 本专利文件的公开内容的各部分包含受到版权保护的材料。版权所有人不反对任 何人按照本专利文件或本专利公开内容出现在专利和商标局的专利文件或记录中的那样 复制本专利文件或本专利公开内容,但在其他方面无论如何保留所有版权权利。版权声明 适用于下面描述的所有数据及其附图,并适用于下面描述的任何软件:版权所有?2011,英 特尔公司,保留所有权利。
[0005] 背景
[0006] 许多现代微处理器依赖于外部板载电压调节器(VR)来测量处理器、存储器或其 他平台上的组件所消耗的电流和功率。VR通常有一定的额定误差,这种误差通常是由于大 规模制造 VR时的组件容限而引入的。因而,由于部件和部件之间的制造差异,VR所递送的 电流或功率读数中存在不准确性。
[0007] 为了避免损害,组件应从不超过其功率额定值。传统上,在做出功率管理判决时, 保守地把"保护带"应用到VR功率读数。对于典型的(不是最坏的情况)场景,保护带直 接地转化成性能损失。例如,如果100W的组件由在其功率或电流报告能力中有+/-5%误差 的VR供电,则该组件被有效地限制为95W,以便为可能的误差留下空间。可用功率中的这样 的5W损耗暗示该组件的降低的峰值性能。
[0008] 另外,VR的性能倾向于随着时间的推移而下降。因而,即使假定VR在具体功率的 操作,当VR老化的时候,可用功率也可能波动。这样的VR波动可以给组件带来降低其预期 寿命期限的压力。
[0009] 附图简述
[0010] 下列描述对具有作为本发明的各实施例的实现的示例给出的阐释的附图的讨论。 应作为示例而非限制理解各附图。在此所使用的对一个或多个"实施例"的引用应被理解 为描述本发明的至少一个实现中所包括的具体的特征、结构或特性。因而,在此出现的诸如 "在一种实施例中"或"在一种备选实施例中"等的短语描述本发明的各种实施例和实现,且 并不一定都是指相同的实施例。然而,它们也并不一定相互排斥。
[0011] 图1是带有自动校准到关联电压调节器的处理器的系统的实施例的框图。
[0012] 图2是处理器和关联电压调节器的未校准和已校准的电流线的实施例的图示。
[0013] 图3是用于把处理器的预期值加载到处理器的过程的实施例的流程图。
[0014] 图4是用于把处理器动态地校准到关联电压调节器的过程的实施例的流程图。
[0015] 图5是其中可以执行处理器辅助VR校准的计算系统的实施例的框图。
[0016] 图6是其中可以执行处理器辅助VR校准的移动设备的实施例的框图。
[0017] 图7A是阐释示例性有序流水线和示例性寄存器重命名、无序发出(issue)/执行 流水线两者的实施例的框图。
[0018] 图7B是阐释处理器中所包括的有序体系结构核的示例性实施例和示例性寄存器 重命名、无序发出/执行体系结构核两者的实施例的框图。
[0019] 图8A-8B阐释更具体的示例性有序核体系结构的框图,其中该核将是芯片中的若 干逻辑块(包括相同的类型和/或不同的类型的其他核)中的一个。
[0020] 图9是可以具有多于一个的核、集成存储器控制器和/或集成显卡的处理器的实 施例的框图。
[0021] 图10-13是示例性计算机体系结构的框图。
[0022] 图14是对比使用软件指令转换器来把源指令集的二进制指令转换成目标指令集 的二进制指令的一种实施例的框图。
[0023] 下面描述特定细节和实现,包括【专利附图】

【附图说明】(【专利附图】
附图
【附图说明】可以描绘下面所描述的实施 例中的一些或全部),并且讨论在此呈现的本发明概念的其他潜在实施例或实现。下面提供 本发明的各实施例的概览,然后参考附图提供更详细的描述。
[0024] 详细描述
[0025] 如在此描述的,相对于给处理器和/或连接到处理器的存储器子系统供电的具体 的关联电压调节器的处理器动态运行时校准可以减少或消除对在功率管理计算中应用保 护带的需要。如在此描述的,可以计算偏差,其允许基于所报告的测量功率读数和所计算的 偏差调整功率管理。该过程因而可以自动校准到其关联电压调节器。
[0026] 处理器从电压调节器接收电流测量,并基于所测量的值和已存储的预期值计算偏 差。处理器的生产商或分销商可以借助于具有比典型商用电源计算系统中所使用的更高的 精度受控电源计算已存储的值。所计算的、已存储的值指示预期值,该预期值可以用来确定 相对于有源系统的电压调节器的偏差。在一种实施例中,自动校准是减少所报告的测量功 率读数中的误差并允许把更精确的功率读数应用到处理器平台中的功率管理的引导时校 准机制。
[0027] 在此描述的校准机制不要求电压调节器(VR)处的改变。尽管可以对VR做出改变, 但在此描述的处理器本身被用作VR的已知负载。在一种实施例中,在不同的负载水平(或 工作量)设置微处理器,且在处理器-VR接口上读取VR在每一负载水平处所进行的电流测 量。在处理器的运行时(即,对于被部署在消费者的活跃计算系统中的处理器),处理器把 VR测量与其自己的所存储的负载值进行比较,以便计算VR的校正因子。
[0028] 图1是带有自动校准到关联电压调节器的处理器的实施例的框图。系统100包括 具有关联电压调节器(VR) 130的处理器110。VR130从电源140接收功率,并向处理器110 提供经调节的电压。将理解,VR可以与多于一个的处理器相关联。还应理解,处理器110可 以是多核处理器,且一个或多个核可以是用于把处理器校准到VR的负载。
[0029] VR130向处理器110提供电流132,且包括本领域中已知的用于测量被提供给处理 器的电流的一个或多个机制。VR130可以向处理器110提供电流测量134。电流测量134 表示在此被称为功率读数的、被传送给处理器110的任何值或信号。
[0030] 在一种实施例中,在给处理器110提供电流132的意义上,VR130不与处理器110 相关联。相反,VR130给存储器设备(未示出)提供功率。因而,VR130给存储器设备提供 电流132,且仍然把测量134传输给处理器110。根据在此描述任何实施例,处理器110可 以为与存储器设备相关联的VR计算一个或多个校准因子(例如,偏差(offset))。在这样 的实施例中,处理器110将包括存储器设备的存储器访问(即,读和/或写)负载的预期值, 这些预期值可以用来计算校准因子。应理解,存储器设备将被加载到处理器110放置在其 上的平台上。
[0031] 对于处理器辅助校准,处理器110包括提供校准功能的各种组件。处理器110经 由接口 112与VR130连接。接口 112提供处理器110读取VR电流测量134的能力。处理 器110包括熔断器(fuse)或ROM (只读存储器)114或其他存储,其存储在制造期间编程的 值。尽管可以使用熔断器或R0M,但处理器110可以替代地使用另一存储器或存储技术来存 储各值。由于需要保持上电,非易失性存储器较不优选。
[0032] BI0S118表示可以在处理器110上执行的固件。BI0S118通常被存储在与处理器 110分离的存储设备上,且在处理器上执行。在一种实施例中,不同于BI0S118的控制固件 或软件用来触发自动校准。系统级的保护进程可以例如用于管理模式。为了提供精确的读 数,处理器110应仅执行在确定R0M114中所存储的值时运行的相同过程。
[0033] P⑶(功率控制单元)120表示处理器110的功率管理逻辑。在一种实施例中, P⑶120包括诸如状态机等的逻辑,用于管理处理器110的功率操作。P⑶120与BI0S118或 其他控制软件/固件联合操作以便基于电流测量134和电流132计算校正因子。校正因子 被存储在校正因子寄存器116中。寄存器116需要可由正在执行以便维护所计算的校正因 子的控制程序访问。
[0034] 在制造处理器110(也可以被称为微处理器110)时,处理器110的生产商或测试 实体或分销商在受控条件(例如,受控的电压、温度)下在给定的负载水平执行测试程序。 功率消耗可被测试设备小心地监视,并被写入到与处理器110相关联的诸如R0M114等的持 久性存储中。在一种实施例中,测试设备也确定针对温度或其他条件变化而调整的比例因 子(scaling factor),且同样地把这样的值存储在R0M114以供校准中的潜在使用。在一种 实施例中,这样的基于温度和电压的比例因子可以被称为指示工作量的环境的值。
[0035] 因而,R0M114存储一个或多个测试模式的一个或多个预期的或已知的值。在校准 时,例如在引导时,BIOS或其他控制118可以执行相同的测试模式并把预期的(所存储的) 功率值与来自VR130的电流测量134进行比较。基于该比较,BI0S118计算校正因子并把它 们写到专用硬件寄存器116。在另一实施例中,P⑶可以计算校正因子并使其可供BI0S118 使用。在处理器110的随后引导中,BI0S118把校正因子编程到专用硬件寄存器。P⑶120 访问被存储在寄存器116中的校正因子并使用它们来补偿VR误差,且获取更精确的读数以 便用于功率计算。
[0036] 在一种实施例中,P⑶120把误差校正因子应用到与处理器110中的功率管理相关 的计算。在一种实施例中,P⑶120计及由R0M114中所存储的比例因子指示的条件(在包 括比例因子或环境值时)。
[0037] 应理解,在许多处理器中,在正常引导序列期间,BI0S118获得对处理器的控制。 BIOS 118执行处理器110放置在其中的设备的启动序列。BI0S118也可以在每一设备引导 时触发对VR的校准,或者保持引导的次数,或者保持日期的跟踪并基于日历/定时执行自 动校准。BIOS可以运行与在制造期间运行的那些测试程序相似的测试程序,以便创建"预 期"值,并观察或监视VR电流读数。使用所存储的功耗值和任何校正因子以及已知的操作 电压,BI0S118可以计算处理器实际上消耗的电流的预期值。在一种实施例中,BI0S118使 用若干这样的读数来计算要编程的校正因子。校正因子由BI0S118编程到硬件寄存器116。 在一种实施例中,校正因子至少包括要添加到VR读数的带符号的静态偏差。校正因子可选 地包括斜率因子或其他高级校正因子。
[0038] 图2是处理器和关联电压调节器的未校准和已校准的电流线的实施例的图示。电 流响应线可以是系统100的响应线的一个示例。其他示例是可能的。X轴示出VR监视的 电流(I M)测量。y轴示出PCU估计的电流,或由已存储的值指示的预期电流值。已校准线 220和未校准线210表示处理器与关联VR的电流响应线。应理解,该图的曲线(线)并不 一定是按比例的。如果理想的话,将预期已校准线220具有以(x,y) = (x,x+c)形式的每 一个点,其中c是静态偏差230。然而,理想的线和未校准的线210的斜率并不一定相同。 在一种实施例中,斜率是不同的。
[0039] 在一种实施例中,由处理器所计算的校正因子可以包括静态偏差230,即c。各线 的斜率可能足够接近,使得静态偏差可以是所计算的唯一偏差因子。在一种实施例中,针对 未校准线210计算斜率216 (m)作为一阶计算,以提供更精确的校正因子。在一种实施例中, 可以计算二阶计算以提供甚至更精确的校正因子。在其他实施例中,也可以计算更高阶的 因子。
[0040] 对于由微处理器做出的功率管理判决(例如,通过rcu),使用经校正的VR读数。 可以通过应用所计算的校正因子确定经校正的VR读数。在一种实施例中,经校正的VR读数 由以下给出:校正_电流=偏差_校正+未校正_电流*斜率_校正(CORRECTED_CURRENT =0FFSET_C0RRECTI0N+UNC0RRECTED_CURRENT*SL0PE_C0RRECTION)。在一种实施例中,其 中不提供斜率的实现可以使用1.0的斜率校正值。也可以增加高阶项(例如未校正_电流 ~2*四_校正(UNC0RRECTED_CURRENT~2*QUAD_C0RRECTI0N))以便得到进一步的精度。基于 校准校正因子,处理器可以补偿VR误差,从而得到更精确的经校正读数。因而,减少或消除 了对保护带的需要,这得到改善的峰值性能和更精确的功率管理。可以使用最小二乘回归、 最佳拟合分析、二点分析或其他已知的数学技术和试探法来计算实际的校正因子。
[0041] 在制造工艺期间,P⑶执行以测量和存储预期值。在运行时期间,P⑶执行以执行 与自动校准相关的计算。在一种实施例中,PCU在两种不同的电流水平运行校准。多于两 种的不同电流水平可以用于执行校准计算。在一种实施例中,在TDC (热设计电流)240的 任一侧上选择至少一种电流水平。TDC是在处理器在TDP (热设计功率)水平运行时所汲取 的稳态电流。在提到在TDC的任一侧上选择电流水平时,应理解,沿着少于TDC240的电流 响应线选择至少一个水平,且沿着大于TDC240的电流响应线选择另一水平。
[0042] 如图2中所示出,校准点212处于大于TDC240的水平,而校准点214处于小于 TDC240的水平。校准点212可以被定义为yl = mxl+c,而校准点214可以被定义为y2 = mx2+c,其中c是偏差230 (静态偏差)。在HVM(大批量制造)处理期间,可以把制造时所测 量的电流熔断(fuse in)或以另外方式设置到ROM。所使用的值以参考电压和温度下的参 考校准工作量(预定义的工作量)为基础。在一种实施例中,HVM处理也存储向PCU指示 所存储的电流值如何随操作电压和温度缩放的参数。
[0043] 在运行时(校准),对于每一校准点,P⑶具有存储到处理器的所估计的电流(y) 以及来自VR的所测量的电流(X)。PCU使用这种信息来计算偏差值。在一种实施例中, P⑶求解m和c。该斜率是1"误差分量,它是所汲取的电流的函数。可以按m= (y2-yl)/ (x2-xl)计算斜率m。可以以多种不同的方式计算静态偏差c。一种方式是选择校准点中 的一个并代入m以便求解c。替代地,通过把处理器置于仍然可以采样VR IM的最低功率 状态、测量1"所报告的电流并基于低功率状态的所报告的电流和所存储的电流计算偏差, P⑶可以使用低功率测试来独立地校准偏差。
[0044] 图3是用于把处理器的预期值加载到处理器的过程的实施例的流程图。过程300 是加载与处理器相关联的存储中的处理预期值的过程。过程300也可以用来提供连接到处 理器的存储器设备的预期值,这可以允许处理器为与存储器设备相关联的VR计算校准因 子。在一种实施例中,该存储是在处理器本身上。在另一实施例中,该存储相对于处理器片 外定位,且与处理器相关联,且可由处理器访问。
[0045] 生产商制造处理器,302。制造实体本身或另一实体(例如,配置/测试实体或处 理器分销商或把处理器放置在系统中的OEM (原始设备制造商))配置处理器以供稍后自动 校准。该实体引起处理器在处理器上执行预定义的(例如,测试)工作量,304。可以针对 电压小心地监视连接到处理器的电源,且还可以针对温度控制环境。电源或耦合到电源的 测试设备测量供处理器执行预定义的工作量的电流,306。
[0046] 类似于VR可如何在设备的操作中提供功率测量,测试设备或电源把所测量的值 提供给处理器。处理器把测量存储在处理器中的ROM或其他存储中、或者在外置于处理器 且可由处理器访问的ROM或存储中,308。在一种实施例中,除了电流值之外,该系统也可以 把环境值存储在处理器(或其他存储)中,310。这样的环境变量可以包括关于电压和/或 温度的信息,例如处理器如何针对环境的改变而缩放。
[0047] 在一种实施例中,测试多个分离的工作量。如果存在要执行的更多工作量,312,则 处理器再次在304处执行,且对所有工作量重复该过程的该部分。当不存在要执行以便收 集预期数据的更多工作量,312,则该过程完成。
[0048] 应理解,将以相似的方式加载存储器设备的预期值。代替在处理器上执行的工作 量,或者除此之外,将可能存在由存储器设备处理以便判断预期值的一个或多个存储器访 问工作量。这样的值可以被存储在处理器中以供稍后用于自动校准。
[0049] 图4是用于把处理器动态地校准到关联电压调节器的过程的实施例的流程图。过 程400是用于处理器的动态自动校准的过程。过程400可以用于与处理器相关联的VR和 /或与耦合到处理器的存储器设备相关联的VR的自动校准。控制组件(例如,BIOS)检测 或生成校准触发,402。触发可以是事件,例如启动、或时间、或由操作系统触发以在下次引 导中引起校准事件的寄存器、或其他触发。
[0050] 处理器执行预定义的工作量以执行校准,404。该工作量是与用来计算已存储的预 期值的相同的工作量。处理器经由VR接口从关联VR接收电流测量,406。电流测量指示由 VR测量的、用于执行预定义的工作量的电流值。PCU或处理器上的其他功率管理器访问对 应于由VR测量电流的校准点的所存储的预期电流值,408。可以存在所存储的多个值,且每 一个都可以对应于特定的校准点。
[0051] 在一种实施例中,处理器(例如,通过功率管理器)基于所测量的值和已存储的值 计算静态偏差,410。在一种实施例中,处理器基于所测量的值和已存储的值计算一阶偏差 值(例如,斜率),412。在一种实施例中,处理器基于所测量的值和已存储的值计算二阶偏 差值,414。
[0052] 通过基于偏差计算调整功率管理器的功率管理行为,处理器使用任何所计算的值 来校准处理器,416。偏差计算可以由功率管理器用来构建经校正的电流值的表或列表。经 校正的值被用于代替所提供的值来计算功率管理行为。
[0053] 应理解,将以相似的方式加载存储器设备的预期值。代替在处理器上执行的工作 量,或者作为其补充,可能将存在由存储器设备处理以便判断预期值的一个或多个存储器 访问工作量。在一种实施例中,所计算的校准因子可以由处理器用于与存储器设备交互。在 一种实施例中,处理器把校准因子传送给存储器设备,以便允许存储器设备基于校准因子 调整其功率操作。
[0054] 图5是其中可以利用I/O逻辑关闭的计算系统的实施例的框图。系统500表示根 据在此描述的任何实施例的计算设备,且可以是膝上型计算机、台式计算机、服务器、游戏 或娱乐控制系统、扫描仪、复印机、打印机或其他电子设备。系统500包括处理器520,处理 器520为系统500提供处理、操作管理和指令执行。处理器520可以包括任何类型的微处 理器、中央处理单元(CPU)、处理核或为系统500提供处理的其他处理硬件。处理器520控 制系统500的全部操作,且可以包括一个或多个可编程通用或专用微处理器、数字信号处 理器(DSP)、可编程控制器、专用集成电路(ASIC)、可编程逻辑器件(PLD)等等或这样的设 备的组合。
[0055] 存储器530表示系统500的主存储器,且为要由处理器520执行的代码或要用于 执行例程的数值提供临时存储。存储器530可以包括一个或多个存储器设备,例如只读存 储器(ROM)、闪速存储器、一个或多个品种的随机存取存储器(RAM)或其他存储器设备、或 这样的设备的组合。存储器530存储和主存操作系统(0S) 532以及其他事物,以便提供用 于在系统500中执行指令的软件平台。另外,从存储器530存储和执行其他指令534,以提 供系统500的逻辑和处理。0S532和指令534由处理器520执行。
[0056] 处理器520和存储器530被耦合到总线/总线系统510。总线510是表示任何一 个或多个分离的物理总线、通信线路/接口和/或通过适当的桥接器、适配器和/或控制器 连接的点对点连接的抽象。因此,总线510可以包括,例如,系统总线、外围组件互连(PCI) 总线、传输或工业标准体系结构(ISA)总线、小型计算机系统接口(SCSI)总线、通用串行总 线(USB)或电气和电子工程师协会(IEEE)标准1394总线(通常被称为"火线")中的一种 或多种。总线510的各种总线也可以对应于网络接口 550中的接口。
[0057] 系统500也包括耦合到总线510的一个或多个输入/输出(I/O)接口 540、网络接 口 550、一个或多个内部大容量存储设备560和外设接口 570、I/O接口 540可以包括用户 通过其与系统500交互的一个或多个接口组件(例如,视频、音频和/或字母数字连接)。 网络接口 550给系统500提供在一个或多个网络上与远程设备(例如,服务器、其他计算设 备)通信的能力。网络接口 550可以包括以太网适配器、无线互连组件、USB(通用串行总 线)或其他基于有线或无线标准的接口或专有的接口。
[0058] 存储560可以是用于以非易失性方式存储大量数据的任何常规的介质或包括这 样的介质,例如一个或多个基于磁、固态或光的盘、或组合。存储560把代码或指令和数据 562保持在持久性状态(即,尽管系统500断电,但仍能保留值)。存储560可以通常被认 为是"存储器",尽管存储器530正在执行或操作存储器以便向处理器520提供指令。尽管 存储560是非易失性的,但存储器530可以包括易失性存储器(即,如果系统500断电,则 数据的值或状态不确定)。
[0059] 外设接口 570可以包括上面没有具体提到的任何硬件接口。外围设备通常是指独 立地连接到系统500的设备。非独立连接是其中系统500提供在其上执行操作的软件和/ 或硬件平台且用户与其交互的连接。
[0060] 在一种实施例中,系统500包括处理器520的动态校准522。动态校准522是指在 此描述的允许执行处理器辅助VR校准的组件。
[0061] 图6是其中可以执行处理器辅助VR校准的移动设备的实施例的框图。设备600 表示移动计算设备,例如计算平板、移动电话或智能手机、启用无线的电子阅读器或其他移 动设备。应理解,一般性地示出各组件中的某些,且设备600中没有示出这样的设备的所有 组件。
[0062] 设备600包括处理器610,处理器610执行设备600的主要处理操作。处理器610 可以包括一个或多个物理设备,例如微处理器、应用处理器、微型控制器、可编程逻辑器件 或其他处理装置。由处理器610执行的处理操作包括在其上执行应用和/或设备功能的操 作平台或操作系统的执行。处理操作包括与到人类用户或其他设备的1/〇(输入/输出) 相关的操作、与功率管理相关的操作和/或与把设备600连接到另一设备相关的操作。处 理操作也可以包括与音频I/O和/或显示I/O相关的操作。
[0063] 在一种实施例中,设备600包括音频子系统620,音频子系统620表示与向计算设 备提供音频功能相关联的硬件(例如,音频硬件和音频电路)和软件(例如,驱动器、编解 码器)组件。音频功能可以包括扬声器和/或头戴式耳机输出以及话筒输入。用于这样的 功能的设备可以被集成到设备600,或者被连接到设备600。在一种实施例中,用户通过提 供由处理器610接收和处理音频命令来与设备600交互。
[0064] 显示子系统630表示为用户提供可视和/或触觉显示器以便与计算设备交互的硬 件(例如,显示设备)和软件(例如,驱动器)组件。显示子系统630包括显示器接口 632, 显示器接口 632包括用来向用户提供显示器的具体的屏幕或硬件设备。在一种实施例中, 显示接口 632包括执行与显示相关的至少一些处理的、与处理器610分离的逻辑。在一种 实施例中,显示子系统630包括向用户提供输出和输入两者的触摸屏设备。
[0065] I/O控制器640表示和与用户交互相关的硬件设备和软件组件。I/O控制器640 可以操作为管理作为音频子系统620和/或显示子系统630的一部分的硬件。另外,I/O控 制器640阐释连接到设备600的附加设备的连接点,用户可以通过该附加设备与系统交互。 例如,可以附加到设备600的设备可以包括话筒设备、扬声器或立体声系统、视频系统或其 他显示设备、键盘或键区设备或与特定应用一起使用的诸如读卡器等的其他I/O设备、或 其他设备。
[0066] 如上所述,I/O控制器640可以与音频子系统620和/或显不子系统630交互。例 如,通过话筒或其他音频设备的输入可以为设备600的一个或多个应用或功能提供输入或 命令。另外,代替显示输出或者作为其补充,可以提供音频输出。在另一示例中,如果显示 子系统包括触摸屏,则显示设备也充当输入设备,该输入设备可以至少部分地由I/O控制 器640管理。设备600上也可以存在附加的按钮或开关,以便提供由I/O控制器640管理 的I/O功能。
[0067] 在一种实施例中,I/O控制器640管理诸如加速度计、相机、光传感器或其他环境 传感器、陀螺仪、全球定位系统(GPS)、或设备600中可以包括的其他硬件等的设备。输入可 以是直接用户交互的一部分,并且向系统提供环境输入以便影响其操作(例如过滤噪声、 针对亮度检测调整显示器、为相机应用闪光灯或其他特征)。
[0068] 在一种实施例中,设备600包括功率管理650,功率管理650管理电池功率使用、电 池的充电和与节电操作相关的特征。存储器子系统660包括用于把信息存储在设备600中 的存储器设备。存储器660可以包括非易失性(如果给存储器设备的功率被中断,则状态 不改变)和/或易失性(如果给存储器设备的功率被中断,则状态未定)存储器设备。存 储器660可以存储与系统600的应用和功能的执行相关的应用数据、用户数据、音乐、照片、 文档、或其他数据、以及系统数据(无论是长期的还是临时的)。
[0069] 连通性670包括允许设备600与外部设备通信硬件设备(例如,无线和/或有线 连接器和通信硬件)和软件组件(例如,驱动器、协议栈)。该设备可以是诸如其他计算设 备、无线接入点或基站等的分离的设备、以及诸如头戴式耳麦、打印机等的外围设备、或其 他设备。
[0070] 连通性670可以包括多个不同类型的连通性。为一般起见,用蜂窝式连通性672 和无线连通性674来阐释设备600。蜂窝式连通性672通常是指由无线载波提供的蜂窝式 网络连通性,例如经由GSM(全球移动通信系统)或变种或衍生物、CDMA(码分多址)或变种 或衍生物、TDM(时分多路复用)或变种或衍生物、LTE(长期演进--也称为"4G")或其他 蜂窝式服务标准所提供的。无线连通性674是指不是蜂窝式的无线连通性,且可以包括个 域网(例如蓝牙)、局域网(例如WiFi)和/或广域网(例如WiMax)或其他无线通信。无 线通信是指通过使用穿过非固态介质的经调制电磁辐射的数据传输。有线通信(包括光通 信)通过固态通信介质而发生。
[0071] 外围连接680包括形成外围连接的硬件接口和连接器以及软件组件(例如,驱动 器、协议栈)。应理解,设备600可以是去往其他计算设备的外围设备("去往"682)以及 具有连接到它的外围设备("来自"684)。出于诸如管理(例如,下载和/或上传、改变、同 步)设备600上的内容等的目的,设备600通常具有"坞接"连接器以便连接到其他计算设 备。另外,坞接连接器可以允许设备600连接到允许设备600控制到例如视听或其他系统 的内容输出的某些外围设备。
[0072] 除了专有坞接连接器或其他专有连接硬件之外,设备600可以经由公共的或基于 标准的连接器形成外围连接680。公共类型可以包括通用串行总线(USB)连接器(它可以 包括许多不同硬件接口中的任何)、包括MiniDisplayPort (MDP)的DisplayPort、高清多媒 体接口(HDMI)、火线或其他类型。
[0073] 在一种实施例中,功率管理650包括用于处理器610的动态校准652。动态校准 652是指在此描述的允许执行处理器辅助VR校准的组件。
[0074] 可以以不同的方式、出于不同的目的以及在不同的处理器中实现各处理器核。举 例来说,这样的核的实现可以包括:1)预期用于通用计算的通用有序核;2)预期用于通用 计算的高性能通用无序核;3)预期主要用于图形和/或科学(吞吐量)计算的专用核。不 同的处理器的实现可以包括:1)包括预期用于通用计算的一个或多个通用有序核和/或预 期用于通用计算的一个或多个通用无序核的CPU ;以及2)包括预期主要用于图形和/或科 学(吞吐量)计算的一个或多个专用核的协处理器。这样的不同的处理器得到不同的计算 机系统体系结构,其可以包括:1)在与CPU分离的芯片上的协处理器;2)在与CPU相同的封 装中的分离的管芯上的协处理器;3)在与CPU相同的管芯上的协处理器(在这种情况中, 这样的协处理器有时被称为专用逻辑,例如集成显卡和/或科学(吞吐量)逻辑,或者被称 为专用核);以及4)可以在相同的管芯上包括所描述的CPU(有时被称为应用核或应用处 理器)、上面所描述的协处理器和附加功能性的片上系统。接下来描述示例性核体系结构, 然后描述示例性处理器和计算机体系结构。
[0075] 图7A是阐释示例性有序流水线和示例性寄存器重命名、无序发出/执行流水线两 者的实施例的框图。图7B是阐释处理器中所包括的有序体系结构核的示例性实施例和示 例性寄存器重命名、无序发出/执行体系结构核两者的实施例的框图。图7A-7B中的实线 框阐释有序流水线和有序核,同时虚线框的可选增加阐释寄存器重命名、无序发出/执行 流水线和核。假定有序方面是无序方面的一个子集,将描述无序方面。
[0076] 在图7A中,处理器流水线700包括取出阶段702、长度解码阶段704、解码阶段 706、分配阶段708、重命名阶段710、调度(也称为分派或发出)阶段712、寄存器读/存储 器读阶段714、执行阶段716、回写/存储器写阶段718、异常处理阶段722和提交阶段724。
[0077] 图7B示出包括耦合到执行引擎单元750的前端单元730的处理器核790,且两 者均耦合到存储器单元770。核790可以是精简指令集计算(RISC)核、复杂指令集计算 (CISC)核、超长指令字(VLIW)核或混合的或备选的核类型。作为又一选项,核790可以是专 用核,诸如例如网络或通信核、压缩引擎、协处理器核、通用计算图形处理单元(GPGPU)核、 图形核等等。
[0078] 前端单元730包括稱合到指令高速缓存单元734的分支预测单元732,指令高速 缓存单元734耦合到指令翻译后备缓冲器(TLB) 736,指令翻译后备缓冲器(TLB) 736耦合 到指令取出单元738,指令取出单元738耦合到解码单元740。解码单元740 (或解码器) 可以解码指令,且作为输出生成一个或多个微操作、微代码入口点、微指令、其他指令或其 他控制信号,它们反映原始输入指令或者是从原始输入指令导出。可以使用各种不同的机 制实线解码单元740。合适的机制的示例包括但不限于查找表、硬件实现、可编程逻辑阵列 (PLA)、微代码只读存储器(ROM)或其他机制。在一种实施例中,核790包括存储用于某些 宏指令的微代码的微代码ROM或其他介质(例如,在解码单元740中或以另外方式在前端 单元730内)。解码单元740耦合到执行引擎单元750中的重命名/分配器单元752。
[0079] 执行引擎单元750包括耦合到隐退单元754和一组一个或多个调度器单元756的 重命名/分配器单元752。调度器单元756表示任何数量的不同的调度器,包括保留站、中 央指令窗口或其他调度机制。调度器单元756耦合到物理寄存器堆单元758。物理寄存器 堆单元758中的每一个表示一个或多个物理寄存器堆,不同的寄存器堆存储一种或多种不 同的数据类型,例如标量整数、标量浮点数、经打包整数、经打包浮点数、矢量整数、矢量浮 点数、状态(例如,要执行的下一指令的地址的指令指针)或其他数据类型。在一种实施例 中,物理寄存器堆单元758包括矢量寄存器单元、写掩码寄存器单元和标量寄存器单元。这 些寄存器单元可以提供体系结构矢量寄存器、矢量掩码寄存器和通用寄存器。物理寄存器 堆单元758与隐退单元754重叠,以便阐释可以实现的各种方式(例如,使用重新排序缓冲 器和隐退寄存器堆;使用未来文件、历史缓冲器和隐退寄存器堆;使用寄存器映射和寄存 器池)。隐退单元754和物理寄存器堆单元758耦合到执行集群760。执行集群760包括 一组一个或多个执行单元762和一组一个或多个存储器访问单元764。执行单元762可以 执行各种操作(例如,移位、加、减、乘)且对各种类型的数据(例如,标量浮点、经打包整 数、经打包浮点数、矢量整数、矢量浮点)执行操作。尽管一些实施例可以包括专用于特定 功能或功能的集合的多个执行单元,但其他实施例可以仅包括全都执行全部函数的一个执 行单元或多个执行单元。调度器单元756、物理寄存器堆单元758和执行集群760被示出为 可能是多个,这是因为某些实施例为某些类型的数据/操作创建分离的流水线(例如,标量 整数流水线、标量浮点数/经打包整数/经打包浮点数/矢量整数/矢量浮点数流水线和 /或存储器访问流水线,它们均具有其自己的调度器单元、物理寄存器堆单元和/或执行集 群--并且在分离的存储器访问流水线的情况中,实现了其中仅这种流水线的执行集群具 有存储器访问单元764的某些实施例)。应理解,在使用分离的流水线时,这些流水线中的 一个或多个可以是无序发出执行,且剩下的可以是有序发出/执行。
[0080] 这一组存储器访问单元764耦合到存储器单元770,存储器单元770包括耦合到 数据高速缓存单元774的数据TLB单元772,数据高速缓存单元774耦合到2级(L2)高速 缓存单元776。在一个示例性实施例中,存储器访问单元764可以包括负载单元、存储地址 单元和存储数据单元,它们均耦合到存储器单元770中的数据TLB单元772。指令高速缓 存单元734还耦合到存储器单元770中的2级(L2)高速缓存单元776。L2高速缓存单元 776耦合到一个或多个其他级别的高速缓存且最终耦合到主存储器。
[0081] 作为示例,示例性寄存器重命名、无序发出/执行核体系结构可以如下实现流水 线700 :1)指令取出738执行取出阶段702和长度解码704 ;2)解码单元740执行解码阶段 706 ;3)重命名/分配器单元752执行分配阶段708和重命名阶段710 ;4)调度器单元756 执行调度阶段712 ;5)物理寄存器堆单元758和存储器单元770执行寄存器读/存储器读 阶段714 ;执行集群760执行执行阶段716 ;6)存储器单元770和物理寄存器堆单元758执 行回写/存储器写阶段718 ;7)各种单元可以涉及异常处理阶段722 ;以及8)隐退单元754 和物理寄存器堆单元758执行提交阶段724。
[0082] 核790可以支持一个或多个指令集(例如,x86指令集(带有较新版本中已经添 加的一些扩展);加利福尼亚州桑尼维尔市的MIPS科技的MIPS指令集;加利福尼亚州桑尼 维尔市的ARM控股的ARM指令集(带有诸如NEON等的可选附加扩展),包括在此描述的指 令。在一种实施例中,核790包括支持经打包数据指令集扩展(例如,AVXUAVX2)的逻辑, 由此允许由使用经打包数据执行的多种多媒体应用使用各操作。
[0083] 应理解,该核可以支持多线程(执行两个或更多个并行的操作或线程的集合),且 可以以各种方式这样做,包括分时多线程、同时多线程(其中单个物理核给该物理核同时 多线程化的线程中的每一个提供逻辑核)或其组合(例如,比如在英特尔⑧超线程技术中, 此后的分时取出和解码以及同时多线程)。
[0084] 尽管在无序执行的上下文中描述了寄存器重命名,但应理解,寄存器重命名可以 用于有序体系结构。尽管所阐释的处理器的实施例也包括分离的指令和数据高速缓存单 元734/774和共享L2高速缓存单元776,但替代的实施例可以具有用于指令和数据两者的 单个内部高速缓存,诸如例如1级(L1)内部高速缓存或多个级别的内部高速缓存。在一些 实施例中,该系统可以包括内部高速缓存和外置于该核和/或处理器的外部高速缓存的组 合。替代地,所有高速缓存都可以是外置于核和/或处理器。
[0085] 在一种实施例中,根据所描述的实施例的处理器包括相对于关联VR执行用于处 理器的动态校准的功率管理。动态校准组件允许执行处理器辅助VR校准。把各预期值与 所监视值进行比较,以确定校准偏差值。
[0086] 图8A-8B阐释更具体的示例性有序核体系结构的框图,该核将是芯片中的若干逻 辑块(包括相同类型和/或不同类型的其他核)中的一个。取决于应用,各逻辑块通过高 带宽互连网络(例如,环状网络)与一些固定功能逻辑、存储器I/O接口和其他必要I/O逻 辑通信。
[0087] 图8A是单个处理器核(连同其到芯上互连网络802的连接及其2级(L2)高速缓 存804的本地子集)的实施例的框图。在一种实施例中,指令解码器800支持带有经打包 数据指令集扩展的x86指令集。L1高速缓存806允许低延迟时间访问以便把存储器缓存到 标量和矢量单元。尽管在一种实施例中(为简化设计),标量单元808和矢量单元810使用 分离的寄存器组(分别是标量寄存器812和矢量寄存器814),且在它们之间传输的数据被 写到存储器,且然后从1级(L1)高速缓存806回读该数据,但替代的实施例可以使用不同 的方法(例如,使用单个寄存器组,或者包括允许在两个寄存器堆之间传输数据而无需写 入和回读的通信路径)。
[0088] L2高速缓存804的本地子集是全局L2高速缓存的一部分,其被分割成分离的本 地子集,每个处理器核一个本地子集。每一处理器核具有到L2高速缓存804的其自己的本 地子集的直接访问路径。由处理器核读取的数据被存储在其L2高速缓存子集804中,且 可以与访问它们自己的本地L2高速缓存子集其他处理器核并行地快速访问。由处理器核 写入的数据被存储在其自己的L2高速缓存子集804中,且如果必要的话从其他子集冲刷 (flush)掉。环状网络确保共享数据的相关性。环状网络是双向网络,允许诸如处理器核、 L2高速缓存和其他逻辑块等的代理在芯片内相互通信。在一种实施例中,每一环状数据路 径在每个方向为1012比特宽。
[0089] 图8B是图8A中的处理器核的一部分的一种实施例的扩展视图。图8B包括L1高速 缓存804的L1数据高速缓存806A部分以及关于矢量单元810和矢量寄存器814的更多细 节。具体地,矢量单元810是16比特宽的矢量处理单元(VPU)(参见16比特宽的ALU828), 其执行整数、单精度浮点数和双精度浮点数指令中的一种或多种。VPU支持对存储器输入进 行的借助于混写单元820混写寄存器输入、借助于数字转换单元822A-B的数字转换和借助 于复制单元824的复制。写掩码寄存器826允许断言所得到的矢量写。
[0090] 在一种实施例中,根据所描述的实施例的处理器包括相对于关联VR执行用于一 个或多个处理器核的动态校准的功率管理。动态校准组件允许执行处理器辅助VR校准。把 各预期值与所监视的值进行比较,以确定校准偏差值。
[0091] 图9是处理器900的实施例的框图处理器900可以具有多于一个的核,可以具有 集成存储器控制器,且可以具有集成显卡。图9中的实线框阐释单个核902A、系统代理910、 一组一个或多个总线控制器单元916的处理器900,而虚线框的可选增加阐释带有多个核 902A-N、系统代理单元910中的一组一个或多个集成存储器控制器单元914和专用逻辑908 的替代的处理器900。
[0092] 因而,处理器900的不同实现可以包括:1)带有专用逻辑908以及核902A-N的 CPU,专用逻辑908是集成显卡和/或科学(吞吐量)逻辑(其可以包括一个或多个核), 并且核902A-N是一个或多个通用核(例如,通用有序核、通用无序核、两者的组合);2)带 有核902A-N的协处理器,核902A-N是预期主要用于图形和/或科学(吞吐量)的大量专 用核;以及3)带有核902A-N的协处理器,核902A-N是大量通用有序核。因而,处理器900 可以是通用处理器、协处理器或专用处理器,诸如例如网络或通信处理器、压缩引擎、图形 处理器、GPGPU (通用图形处理单元)、高吞吐量多集成核(MIC)协处理器(包括30个或更 多个核)、嵌入式处理器等等。可以在一个或多个芯片上实现处理器。处理器900可以是 使用多种工艺技术中的任何的一个或多个衬底的一部分,以及/或者可以在这些衬底上实 现,这些工艺技术诸如例如BiCMOS、CMOS或NMOS。
[0093] 存储器分层结构包括在各核内的一个或多个级别的高速缓存、一组或一个或多个 共享高速缓存单元906和耦合到一组集成存储器控制器单元914的外部存储器(未示出)。 该组共享高速缓存单元906可以包括一个或多个中级高速缓存,例如2级(L2)、3级(L3)、 4级(L4)或其他级别的高速缓存、末级高速缓存(LLC)和/或其组合。尽管在一种实施例 中基于环的互连单元912互连集成图形逻辑908、该组共享高速缓存单元906和系统代理单 元910/集成存储器控制器单元914,但替代的实施例可以使用任何数量的公知的技术来互 连这样的单元。在一种实施例中,维持在一个或多个高速缓存单元906和核902A-N之间的 一致性。
[0094] 在一些实施例中,核902A-N中的一个或多个能够多线程化。系统代理910包括协 调和操作核902A-N的那些组件。系统代理单元910可以包括例如功率控制单元(P⑶)和 显示单元。PCU可以是调节核902A-N和集成图形逻辑908的功率状态所需要的逻辑和组件 或包括这些逻辑和组件。显示单元用于驱动一个或多个外部连接的显示器。
[0095] 在体系结构指令集方面,核902A-N可以是同质或异质;即是说,核902A-N中的两 个或更多个能够执行相同的指令集,同时其他能够仅执行该指令集的一个子集或不同的指 令集。
[0096] 在一种实施例中,根据所描述的实施例的处理器包括相对于关联VR执行用于一 个或多个处理器核的动态校准的功率管理。动态校准组件允许执行处理器辅助VR校准。把 各预期值与所监视的值进行比较,以确定校准偏差值。
[0097] 图10-图13是示例性计算机体系结构的框图。本领域中已知用于膝上型计算机、 台式机、手持式PC、个人数字助理、工作站、服务器、网络设备、网络集线器、交换机、嵌入式 处理器、数字信号处理器(DSP)、图形设备、视频游戏设备、机顶盒、微控制器、蜂窝式电话、 便携式媒体播放器、手持式设备和各种其他电子设备的其他系统设计和配置也是合适的。 一般地,能够合并在此公开的处理器和/或其他执行逻辑的各种系统或电子设备通常是合 适的。
[0098] 现在参见图10,所示出的是系统1000的实施例的框图。系统1000可以包括耦合 到控制器中枢1020的一个或多个处理器1010、1015。在一种实施例中,控制器中枢1020包 括图形存储器控制器中枢(GMCH) 1090和输入/输出中枢(Ι0Η) 1050(它们可以是在分离的 芯片上);GMCH1090包括存储器1040和协处理器1045耦合到其的存储器和图形控制器; I0H1050把输入/输出(I/O)设备1060耦合到GMCH1090。替代地,存储器和图形控制器中 的一个或两者被集成在处理器(如在此描述的)内,存储器1040和协处理器1045直接耦 合到处理器1010以及带有I0H1050的单个芯片中的控制器中枢1020。
[0099] 图10中用虚线指示附加的处理器1015的可选性质。每一处理器1010、1015可以 包括在此描述的处理核中的一个或多个,且可以是某种版本的处理器900。
[0100] 存储器1040可以是例如动态随机存取存储器(DRAM)、相变存储器(PCM)或两者的 组合。对于至少一种实施例,控制器中枢1020经由多点式总线与处理器1010、1015通信, 多点式总线例如前端总线(FSB)、诸如快速通道互连(QuickPath Interconnect,QPI)等的 点对点接口或类似的连接1095。
[0101] 在一种实施例中,协处理器1045是专用处理器,诸如例如高吐量MCI处理器、网络 或通信处理器、压缩引擎、图形处理器、GPGPU、嵌入式处理器等等。在一种实施例中,控制器 中枢1020可以包括集成显卡加速器。
[0102] 在包括体系结构、微体系结构、热、功耗特性等等的优点的指标谱方面,在物理资 源1010、1015之间可以存在各种差异。
[0103] 在一种实施例中,处理器1010执行控制一般类型的数据处理操作的指令。被嵌入 在指令内的可以是协处理器指令。处理器1010把这些协处理器指令识别为属于应由附加 协处理器1045执行的类型。相应地,处理器1010在协处理器总线或其他互连上把这些协 处理器指令(或表示协处理器指令的控制信号)发给协处理器1045。协处理器1045接受 和执行所接收的协处理器指令。
[0104] 在一种实施例中,根据所描述的实施例的处理器包括相对于关联VR执行用于处 理器的动态校准的功率管理。动态校准组件允许执行处理器辅助VR校准。把各预期值与 所监视的值进行比较,以确定校准偏差值。
[0105] 现在参见图11,所示出的是第一更具体的示例性系统1100的实施例的框图。如 图11中所示出,多处理器系统1100是点对点互连系统,且包括经由点对点互连1150耦合 的第一处理器1170和第二处理器1180。处理器1170和1180中的每一个可以是某种版本 的处理器900。在一种实施例中,处理器1170和1180分别是处理器1010和1015,而协处 理器1138是协处理器1045。在另一实施例中,处理器1170和1180分别是处理器1010和 协处理器1045。
[0106] 处理器1170和1180被示出为分别包括集成存储器控制器(MC)单元1172和 1182。处理器1170也包括点对点(P-P)接口 1176和1178,作为其总线控制器单元的一部 分;类似地,第二处理器1180包括P-P接口 1186和1188。处理器1170、1180可以经由点对 点(?-?)接口1150使用?_?接口电路1178、1188来交换信息。如图11中所示出,頂(:1172 和1182把处理器耦合到各自的存储器,即存储器1132和存储器1134,它们可以是本地附加 到各自的处理器的主存储器的部分。
[0107] 处理器1170U180均可以使用点对点接口电路1176、1194、1186、1198经由个体 P-P接口 1152U154与芯片组1190交换信息。芯片组1190可以可选地经由高性能接口 1139 与协处理器1138交换信息。在一种实施例中,协处理器1138是专用处理器,诸如例如高吞 吐量麦克风处理器、网络或通信处理器、压缩引擎、图形处理器、GPGPU、嵌入式处理器等等。
[0108] 共享高速缓存(未示出)可以被包括在任一个处理器中或在两种处理器外,然而 经由P-P互连与处理器连接,以使得如果处理器被置于低功率模式则处理器中的任一个或 两者的本地高速缓存信息可以被存储在共享高速缓存中。
[0109] 芯片组1190可以经由接口 1196耦合到第一总线1116。在一种实施例中,第一总 线1116可以是外围组件互连(PCI)总线、或诸如PCI Express总线等的总线、或另一第三 代I/O互连总线,但这些是非限制性示例。
[0110] 如图11中所示出,各种I/O设备1114可以连同总线桥1118-起耦合到第一总线 1116,总线桥1118把第一总线1116耦合到第二总线1120。在一种实施例中,诸如协处理 器、高吞吐量MIC处理器、GPGPU、加速器(诸如例如,图形加速器或数字信号处理(DSP)单 元)、现场可编程门阵列或任何其他处理器等的一个或多个附加的处理器1115耦合到第一 总线1116。在一种实施例中,第二总线1120可以是低引脚数(LPC)总线。各种设备可以 耦合到第二总线1120,在一种实施例中,这些设备包括例如键盘和/或鼠标1122、通信设备 1127和诸如可以包括指令/代码和数据1130的盘驱动器或其他大容量存储设备等的存储 单元1128。进一步,音频1/01124可以被耦合到第二总线1120。注意,其他体系结构是可 能的。例如,代替图11的点对点体系结构,系统可以实现多点式总线或其他这样的体系结 构。
[0111] 在一种实施例中,处理器的功率控制单元执行动态电源校准。可以把在预先确定 工作量下的负载的测量值与已存储的值进行比较,以确定偏差。
[0112] 现在参见图12,所示出的是第二更具体的示例性系统1200的实施例的框图。图 11和图12中的类似元素具有类似的标号,且已经从图12忽略了图11的某些方面,以便避 免模糊图12的其他方面。
[0113] 图12阐释处理器1170U180可以分别包括集成存储器和I/O控制逻辑 ("CL")1172和1182。因而,CL1172、1182包括集成存储器控制器单元且包括I/O控制逻 辑。图12阐释不仅存储器1132、1134被耦合到CL1172、1182,而且I/O设备1214也被耦合 到控制逻辑1172、1182。遗留I/O设备1215耦合到芯片组1190。
[0114] 在一种实施例中,处理器的功率控制单元执行动态电源校准。可以把在预先确定 工作量下的负载的测量值与已存储的值进行比较,以确定偏差。
[0115] 现在参见图13,所示出的是S〇C1300的实施例的框图。图9中的相似元素具有类 似的标号。而且,虚线框是更高级的SoC上的可选特征。在图13中,互连单元1302耦合 至IJ :应用处理器1310,其包括一组一个或多个核902A-N和共享高速缓存单元906 ;系统代 理单元910 ;总线控制器单元916 ;集成存储器控制器单元914 ;一组或一个或多个协处理 器1320,其可以包括集成图形逻辑、图像处理器、音频处理器和视频处理器;静态随机存取 存储器(SRAM)单元1330 ;直接存储器访问(DMA)单元1332 ;以及用于耦合到一个或多个外 部显示器的显示单元1340。在一种实施例中,协处理器1320包括专用处理器,诸如例如网 络或通信处理器、压缩引擎、GPGPU、高吞吐量MIC处理器、嵌入式处理器等等。
[0116] 诸如图11中所阐释的代码1130等的程序代码可以被应用到输入指令以执行在此 描述的功能并生成输出信息。该输出信息可以以任何已知的方式应用到一个或多个输出设 备。对于本申请的目的,处理系统包括具有处理器的任何系统,处理器诸如例如数字信号处 理器(DSP)、微控制器、专用集成电路(ASIC)或微处理器。
[0117] 可以以高级过程或对象面向编程语言实现程序代码以便与处理系统通信。如果期 望的话,也可以以汇编或机器语言实现程序代码。事实上,在此描述的机制的范围不限于任 何具体的编程语目。在任何情况中,语目可以是编译语目或解释语目。
[0118] 在一些情况中,指令转换器可以用来把指令从源指令集转换到目标指令集。例如, 指令转换器可以把指令翻译(例如,使用静态二进制翻译、包括动态编译的动态二进制翻 译)、拟态、仿真或以另外方式转换成要由核处理的一个或多个其他指令。指令转换器可以 以软件、硬件、固件或其组合实现。指令转换器可以是在处理器上、离开处理器或部分在处 理器上且部分离开处理器。
[0119] 图14是对比使用软件指令转换器来把源指令集的二进制指令转换成目标指令集 的二进制指令的一种实施例的框图。在所阐释的实施例中,指令转换器是软件指令转换器, 但替代地指令转换器可以以软件、固件、硬件或其各种组合实现。图14示出可以使用x86 编译器1404来编译高级语言1402的程序以便生成可以由带有至少一个x86指令集核1416 的处理器本机执行的x86二进制代码1406。带有至少一个x86指令集核1416的处理器表 示可以执行与带有至少一个x86指令集核的英特尔处理器几乎相同的功能的任何处理器, 通过兼容地执行或以另外方式处理(1)英特尔x86指令集核的指令集的主要部分或(2)定 位为在带有至少一个x86指令集核的英特尔处理器上运行、以便取得与带有至少一个x86 指令集核的英特尔处理器几乎相同的结果的应用或其他软件的目标代码版本。x86编译器 1404表示可操作为生成x86二进制代码1406 (例如,目标代码)的编译器,借助于或无需 附加的联动装置处理,x86二进制代码1406可以在带有至少一个x86指令集核1416的处 理器上执行。类似地,图14示出可以使用替代的指令集编译器1408来编译高级语言1402 的程序以便生成可以由没有至少一个x86指令集核1414的处理器(例如,带有执行加利福 尼亚州桑尼维尔市的MIPS科技的MIPS指令集和/或执行加利福尼亚州桑尼维尔市的ARM 控股的ARM指令集的核的处理器)本机执行的替代的指令集二进制代码1410。指令转换 器1412用来把x86二进制代码1406转换成可以由没有x86指令集核1414的处理器本机 执行的代码。这种经转换的代码不可能与替代的指令集二进制代码1410相同,这是因为难 以制成能够这样做的指令转换器;然而,所转换的代码将完成一般操作且由来自替代的指 令集的指令构成。因而,指令转换器1412表示通过仿真、模拟或任何其他过程允许不具有 x86指令集处理器或核的处理器或其他电子设备执行x86二进制代码1406的软件、固件、硬 件或其组合。
[0120] 在此描述的各种操作或功能的范围内,它们可以被描述为或被定义为软件代码、 指令、配置和/或数据。内容可以直接可执行("对象"或"可执行"形式)、源代码或差异 代码("增量(delta)"或"补丁"代码)。可以经由其上存储由内容的制品或经由操作通 信接口以便经由通信接口发送数据的方法提供在此描述的各实施例的软件内容。机器可读 存储介质可以引起机器执行所描述的功能或操作,且包括以可由机器(例如,计算设备、电 子系统等等)访问的形式存储信息的任何机制,例如可记录/不可记录介质(例如,只读存 储器(ROM)、随机存取存储器(RAM)、磁盘存储介质、光存储介质、闪速存储器设备等等)。通 信接口包括连接到与诸如存储器总线接口、处理器总线接口、因特网连接、盘控制器等等的 另一设备通信的硬布线、无线、光学等等的介质中的任一个的任何机制。可以通过提供配置 参数和/或发送信号以便准备通信接口以提供描述软件内容数据信号来配置通信接口。可 以经由发送给通信接口的一个或多个命令或信号访问通信接口。
[0121] 在此描述的各种组件可以是用于执行所描述的操作或功能的装置。在此描述每 一组件包括软件、硬件或这些的组合。各组件可以被实现为软件模块、硬件模块、专用硬件 (例如,特定应用的硬件、专用集成电路(ASIC)、数字信号处理器(DSP)等等)、嵌入式控制 器、硬布线电路等等。
[0122] 除了在此描述的内容之外,在不偏离本发明的所公开的实施例和实现的范围的前 提下,可以对本发明的所公开的实施例和实现做出各种修改。因此,应以说明性的而非限制 性的意义来理解本文的阐释和示例。应通过参考下面的权利要求单独地衡量本发明的范 围。
【权利要求】
1. 一种方法,包括: 由处理器执行预定义的工作量; 在所述处理器处接收向所述处理器提供电流、电压和功率的电压调节器的测量,所述 测量指示所述电压调节器所测量的、由所述处理器汲取来用于执行所述工作量的电流量; 访问指示供所述处理器执行所述工作量的预期电流的所存储的值; 基于所测量的电流和所存储的值计算校准因子;以及 基于所述校准因子调整所述处理器的功率操作。
2. 如权利要求1所述的方法,其特征在于,执行所述预定义的工作量包括: 响应于来自BIOS (基本输入/输出系统)的指令,执行所述工作量。
3. 如权利要求1所述的方法,其特征在于,在包括所述处理器的系统的初始化时进行 所述执行、访问、计算和调整。
4. 如权利要求1所述的方法,其特征在于,接收所述测量包括: 接收对低于热设计电流的电流做出的至少一个测量以及对高于所述热设计电流的电 流做出的至少一个测量。
5. 如权利要求1所述的方法,其特征在于,计算所述校准因子进一步包括: 计算静态偏差。
6. 如权利要求1所述的方法,其特征在于,计算所述校准因子进一步包括: 计算电流响应线的斜率。
7. 如权利要求1所述的方法,其特征在于,计算所述校准因子进一步包括: 计算电流响应线的斜率的二阶计算。
8. 如权利要求1所述的方法,其特征在于,所述执行预定义的工作量进一步包括: 向耦合到所述处理器的存储器设备提供存储器访问工作量; 在所述处理器处接收向所述存储器设备提供电流、电压和功率的电压调节器的测量, 所述测量指示所述电压调节器所测量的、由所述存储器设备汲取来用于执行所述工作量的 电流量; 访问指示供所述存储器设备执行所述工作量的预期电流的所存储的值;以及 基于所测量的电流和所存储的值计算校准因子。
9. 一种方法,包括: 由处理器执行预定义的工作量; 在所述处理器处接收参考功率发生器的测量,所述测量指示所述功率发生器所测量 的、由所述处理器汲取来用于执行所述工作量的电流量;以及 把所述测量存储在所述处理器中作为供所述处理器执行所述工作量的预期电流,用于 计算动态运行时校准的校准因子。
10. 如权利要求9所述的方法,其特征在于,存储所述测量包括: 用所述测量的值设置只读存储器(ROM)。
11. 如权利要求9所述的方法,其特征在于,存储所述测量包括: 把所述测量的值设置到所述处理器上的熔断器。
12. 如权利要求9所述的方法,其特征在于,存储所述测量进一步包括: 存储用于指示执行所述预定义的工作量的电压和温度环境的环境值。
13. 如权利要求12所述的方法,其特征在于,存储所述环境值进一步包括: 基于温度变化计算执行所述工作量的所述处理器的比例因子。
14. 如权利要求12所述的方法,其特征在于,存储所述环境值进一步包括: 基于源电压变化计算执行所述工作量的所述处理器的比例因子。
15. -种处理器,包括: 执行硬件,其用于响应于触发执行预定义的工作量,以执行动态校准; 输入路径,其用于接收向所述处理器提供功率的电压调节器的测量,所述测量指示所 述电压调节器所测量的、由所述处理器汲取来用于执行所述工作量的电流量; 存储设备,其用于存储指示供所述处理器执行所述工作量的预期电流的值;以及 功率控制单元(PCU),其用于访问所存储的值和所述测量,基于所测量的电流和所存储 的值计算校准因子,并基于所计算的校准因子调整所述处理器的功率操作。
16. 如权利要求15所述的处理器,其特征在于,所述执行硬件响应于来自耦合到所述 处理器BIOS (基本输入/输出系统)的触发执行所述工作量。
17. 如权利要求15所述的处理器,其特征在于,接收所述测量包括: 接收对低于热设计电流的电流做出的至少一个测量和对高于所述热设计电流的电流 做出的至少一个测量。
18. 如权利要求15所述的处理器,其特征在于,所述PCU计算所述校准因子包括计算静 态偏差。
19. 如权利要求15所述的处理器,其特征在于,所述PCU计算所述校准因子包括计算电 流响应的斜率。
20. 如权利要求15所述的处理器,其特征在于,所述PCU计算所述校准因子包括计算电 流响应的斜率的二阶计算。
21. -种系统,包括: 处理器,其包括: 执行硬件,其用于响应于触发执行预定义的工作量,以执行动态校准; 输入路径,其用于接收向所述处理器提供功率的电压调节器的测量,所述测量指示所 述电压调节器所测量的、由所述处理器汲取来用于执行所述工作量的电流量; 存储设备,其用于存储指示供所述处理器执行所述工作量的预期电流的值;以及 功率控制单元(PCU),其用于访问所存储的值和所述测量,基于所测量的电流和所存储 的值计算校准因子,并基于所计算的校准因子调整所述处理器的功率操作;以及 硬件控制器,其用于管理触摸屏接口设备,以便要由所述处理器处理的接收输入/输 出(I/O)。
22. 如权利要求21所述的系统,其特征在于,所述输入路径接收所述测量包括: 接收对低于热设计电流的电流做出的至少一个测量和对高于所述热设计电流的电流 做出的至少一个测量。
23. 如权利要求21所述的系统,其特征在于,所述PCU计算所述校准因子包括计算静态 偏差。
24. 如权利要求21所述的系统,其特征在于,所述PCU计算所述校准因子包括计算电流 响应的斜率。
25. 如权利要求21所述的系统,其特征在于,所述PCU计算所述校准因子包括计算电流 响应的斜率的二阶计算。
26. 如权利要求21所述的系统,进一步包括耦合到所述处理器的存储器设备,其特征 在于, 所述处理器向所述存储器设备提供存储器访问工作量; 所述输入路径接收向所述存储器设备提供电流、电压和功率的电压调节器的测量,所 述测量指示所述电压调节器所测量的、由所述存储器设备汲取来用于执行所述工作量的电 流量;以及 所述PCU访问指示供所述存储器设备执行所述工作量的预期电流的所存储的值,且基 于所测量的电流和所存储的值计算校准因子。
27. -种方法,包括: 由存储器设备执行预定义的工作量; 在耦合到所述存储器设备的处理器处接收向所述存储器设备提供电流、电压和功率的 电压调节器的测量,所述测量指示所述电压调节器所测量的、由所述存储器设备汲取来用 于执行所述工作量的电流量; 访问所存储的值指示供所述存储器设备执行所述工作量的预期电流;以及 基于所测量的电流和所存储的值计算校准因子。
28. 如权利要求27所述的方法,其特征在于,计算所述校准因子进一步包括: 计算静态偏差。
29. 如权利要求27所述的方法,其特征在于,计算所述校准因子进一步包括: 计算电流响应线的斜率。
30. 如权利要求27所述的方法,其特征在于,计算所述校准因子进一步包括: 计算电流响应线的斜率的二阶计算。
【文档编号】G06F1/32GK104115092SQ201180076369
【公开日】2014年10月22日 申请日期:2011年12月30日 优先权日:2011年12月30日
【发明者】A·万玛, J·J·斯克劳尔, K·V·西斯特拉, A·N·阿南塔克里什南, V·加吉, C·普艾里耶, M·T·罗兰德, E·R·斯坦福 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1