用于智能地对异构处理器组件供电的装置和方法_4

文档序号:8501081阅读:来源:国知局
算需求。在功率受约束的操作(例如,其 中功率预算被设置在阈值)下,小型高效核可通过显著地改善可玩游戏的质量来帮助改善 最终用户感知的性能。例如,特定的3D图形密集型游戏可能需要图形引擎以频率X运行来 实现每秒30帧。当使用大型核运行该游戏时,由于功率预算,不能够向该图形引擎分拨频 率X。相反,它将不得不以较低的频率Y运行,从而导致较低质量的图形和/或较低的帧率。 相比之下,如果利用小型核来运行该游戏,则通过将核功率节省分配给图形引擎,图形频率 能从Y被提升到X。
[0119] ?多线程场景:如果小型核的数量大于大型核的数量(N>M),则小型核将提供比大 型核更高的多线程性能。在此类异构系统的透明实现中,当大型核是超线程的而小型核不 是超线程的时候,这可能发生。
[0120] 用于智能地对异构组件供电的装詈和方法
[0121] 本发明的一个实施例包括芯片上系统(SoC)架构,在该架构中,同时以足够细的 粒度并且以针对理想的消费者体验的最大性能水平对该SoC的所有组件进行功率控制。在 该实施例中,功率预算和/或热预算算法用于对在时间中的当前时刻对用户体验最关键的 那些组件供电。在一个实施例中,每一个组件在单独可控的功率"平面"内操作。提供给功 率平面的频率和电压可以是独立受控的,以便响应于由功率控制单元(PCU)提供的控制信 号来调节功率。通过单独地控制SoC的每一个组件,使每一个组件按照功率-性能曲线中 的不同点来操作。
[0122] 可由功率控制器取决于旨在用于SoC的使用场景来实现不同的功率管理算法。例 如,如下文中所详述的那样,在台式或膝上型计算机中所使用的SoC可能需要与用于机顶 盒、平板计算机或智能电话中的相同SoC不同的功率管理算法以提供可接受的用户体验。
[0123] 在一个实施例中,这些算法是在具有控制寄存器的微控制器中被带外运行的,以 便动态调节各个功率平面。在另一实施例中,这些算法是在操作系统的上下文中,在主应用 处理器上被带内运行的,以便执行功率平面控制。在该实施例中,可经由图形用户接口使这 些功率控制算法对操作系统可见并可配置。此外,这些组件中的每一个都具有用于确定它 们当前需要更多功率/性能并且从带外或带内控制器请求所需的功率/性能的智能。在该 实施例中,该算法可通过判断用户体验要求来运作。
[0124] 图14a示出根据本发明的一个实施例的SoC 1410中的功率控制单元(P⑶)1400, 该PCU 1400控制若干示例性功率平面的功率/性能,这些示例性功率平面包括,与主存储 器(例如,随机存取存储器)相关联的存储器平面1404、与芯片互连和/或高速缓存存储器 相关联的互连/高速缓存平面1403、与图形处理单元(GPU)相关联的图形(GFX)平面1402 以及与SoC之内的主处理器或核相关联的处理器/核平面1401。虽然出于说明目的使用了 该特定实现,但是本发明的基本原理不限于功率平面的任何特定安排。在替代实现中,处理 器中的每一个核和/或每个核中的单独功能单元中的每一个可被实现在分开的功率平面 上。
[0125] 每一个功率平面1401-1404可配置有逻辑和电路,以便(当执行当前的功率管理 算法时)响应于由PCU 1400生成的控制信号,动态地调节操作电压和频率。例如,每一个功 率平面1401-1404可具有单独可控的电压调节器模块(VRM)和锁相环(PLL)以分别调节电 压和频率。在一个实施例中,响应于来自PCU 1400的控制信号,使用电压/频率组合的预 定集合来一起调节电压和频率。替代电压/频率缩放或附加于电压/频率缩放,功率平面 1401-1404可使用诸如指令发布节流、轮停、功率和时钟门控以及发布宽度减小之类的其他 技术来调节功耗。
[0126] 在一个实施例中,利用基于针对设备(在其中SoC 1410被使用)的用户体验度量 的特定功率管理算法1405加载PCU 1400。因此,对于不同类型的设备,用户体验度量(以 及因此产生的功率管理算法1405)将是不同的。作为示例而非限制,如果SoC 1410被用于 视频游戏控制台中,则PCU通常可以在用户正在执行视频游戏时将更多功率分配给图形平 面1402 (并且减少其他平面的功耗以维持在指定的功率阈值之内)。如果SoC 1410被用于 通用计算机系统中,则PCU 1400可在用户正在执行通用处理任务(例如,浏览互联网、执行 文字处理等)时将更多功率分配给处理器/核平面1401,但是如果用户正在执行图形密集 型任务,则PCU 1400可将更多功率分配给图形平面1402。如果SoC被用于诸如有线盒或卫 星盒之类的机顶盒中,则PCU 1400可在用户正在收看有线/卫星频道时将更多功率分配给 通信接口平面(没有示出)和视频解码器(没有示出)。因此,取决于其中使用SoC 1410 的设备的类型,可利用基于用户体验度量1405的不同功率管理算法对相同的SoC编程,以 便在减少总功耗的同时使用户体验最大化。
[0127] 在一个实施例中,P⑶1400鉴于指定的功率预算重新分配上述功率平面 1401-1404中的每一个的功率消耗,对于在其中SoC 1410被使用的不同设备,这可能是不 同的。例如,诸如平板或智能电话之类的智能设备(其通常靠电池运行)可能具有比机顶 盒或台式计算机系统(其通常靠交流电运行)相对更低的功率预算。
[0128] 以下示例说明上述概念的一个实施例。出于本示例的目的,将假定其中使用SoC 的设备具有2W的总功率预算。它消耗大约1. 5W用于以有保证的时钟速度运行处理器/核 平面1401,消耗1. 5W用于图形1402,并且消耗1. 75W用于互连/高速缓存平面1403。给定 这些数字,则这些系统组件中的两个或更多同时以满功率操作是不可能的。因此,本实施例 中的PCU1400必须基于在SoC上运行的任务的功率约束和工作负荷特性,智能地将功率分 配给功率平面1401-1404中的每一个。
[0129] 为了实现该目标,本发明的一个实施例包括连续的功率管理循环,其在基于当前 的工作负荷要求和功率约束横跨SoC的所有组件来管理功率分配的P⑶1400中运行。P⑶ 1400连续地跟踪热条件、各种活动组件的功率耗散特性以及正在SoC上运行的当前任务的 工作负荷特性。例如,当软件试图将某部分功率负荷卸载到图形处理器(例如以获取更好 的用户体验)时,PCU 1400将会将处理器/核功率平面1401切换到非常低的时钟速度,并 且迅速将图形平面1402提升到将适合SoC 1410的能量和功率预算的执行单元的合适集合 以及目标频率。因此,在时间中的该时刻,可从处理器/核平面1401和其他功率平面中获 取大部分的功率预算,并且将其重新分配到GFX平面1402。
[0130] GPU-完成渲染,互连结构和显示引擎就必须以非常高的速率在屏幕上显示被渲 染的数据。随着屏幕分辨率的增加超出HD,这需要许多带宽。此外,互连自身需要大带宽和 低等待时间以获取更平滑的消费者体验。因此,PCU 1400将周期性地提升(例如,增加频 率/电压)去往互连平面1403中的互连的功率以满足这些要求。因此,在这些周期性的刷 新时间期间,PCU将大部分功率预算递送给互连/高速缓存平面1403,同时减少去往其他平 面的功率。
[0131] 因此,在上述示例中,P⑶1400逐计算流地跟踪工作负荷要求,并且在时间中的任 何给定时刻将最大功率递送给对获取最佳用户体验最关键的功率平面。一个实施例的PCU 1400监测针对给定SoC使用的工作负荷要求,并且开发预测给定工作负荷的行为的试探 法。结果,PCU 1400横跨SoC的多个组件分配功率,以便实现改善的性能,同时仍然受功率 预算的限制。
[0132] 在图14a中所示的实施例中,有至少两类对P⑶1400的输入:(1)从请求功率的 功率平面1401-1404中的每一个接收到的信号,以及(2)基于用户体验度量和功率/热约 束而选择的当前的功率管理算法。
[0133] 在一个实施例中,功率平面1401-1404可根据需要从P⑶1400请求功率(例如, 进入高性能操作模式)。在该实施例中,PCU 1400可基于结合来自功率平面1401-1404的 请求的用户体验度量来实现当前的功率管理算法以确定如何分配功率。例如,如果服务来 自这些平面的功率请求将违反当前的功率/热预算,则PCU 1400将智能地将功率分配给实 现最佳用户体验的组件(即,基于针对在其中SoC被使用的设备的用户体验度量)。
[0134] 此外,对P⑶1400的可选输入可包括当前正被检测到的外部条件1406,例如,在 其中SoC芯片被使用的设备当前正由交流电还是电池供电。如果由电池供电,则检测到的 外部条件1406可指定电池的当前水平。在一个实施例中,取决于设备通过交流电还是电池 供电以及电池的当前水平,PCU可采用功率/热约束的不同集合(例如,如果靠电池电力供 电,则将功率预算降低到第一阈值,而如果电池水平降到低于指定水平,则将功率预算降到 第二阈值)。
[0135] 图14b示出根据本发明的一个实施例的方法。在1431处,基于与在其中将使用 SoC的设备相关联的用户体验度量,特定的功率管理算法被加载到PCU中。在一个实施例 中,PCU包括诸如闪存之类的非易失性存储器,功率管理算法可被加载到其中,并且随后被 更新。在该实施例中,在监测并评估了在其中使用PCU的系统的工作负荷要求之后,可对该 PCU重新编程。在一个实施例中,PCU是智能设备,其持续地监测并(基于当前的用户体验 度量)评估设备的工作负荷要求,并且基于检测到的工作负荷,自动地更新功率管理算法。 或者,可使用只读存储器(ROM)设备、专用集成电路(ASIC)或任何其他类型电路对PCU编 程。
[0136] 返回到图14b,在1432处,一旦已用功率管理算法对rcu编程,则rcu在时刻t,基 于当前的用户体验度量、正在被执行的任务/进程的工作负荷要求以及功率/热预算(其 自身可基于诸如电池电力或交流电之类的当前条件)来调节去往每一个功率平面的功率。 例如,如上文所讨论的那样,如果设备需要在时刻t为用户显示视频帧序列,则PCU 1400可 将功率预算中的很大一部分分配给互连/高速缓存平面1403。
[0137] 在1433处,将时间变量t增加以指示时间中的新时刻。可将时间变量t增加任何 方便的步长(例如,微妙、毫秒等)。在1434处,作出关于在时间中的该新时刻是否需要对 当前功率分配的改变的确定。例如,在设备如上文所述显示了一个或多个视频帧之后,GFX 平面1402可能需要更多的功率以执行渲染新视频帧的图形命令。如果需要对功率分配作 出改变,则过程返回到1432,在那里,基于当前的要求,将功率重新分配给每一个功率平面。 如果不需要,则先前的功率分配保持,并且过程往回循环到1433以再次使时间变量t递增。
[0138] 本文中所描述的多种技术的多个益处中的一个益处在于:单个的SoC能够容易地 被集成以在许多不同的情境和设备(诸如,电话、平板和机顶盒)中使用,同时仍然维持可 接受的用户体验和功率/热约束。
[0139] 虽然本文中所描述的本发明的多个实施例集中于通过调节频率和电压来控制功 率,但是也可由功率控制器来实现各种其他/附加的技术以控制由每一个功率平面消耗的 功率,这些技术例如,指令发布节流、轮停、功率和时钟门控以及发布宽度减小。此外,虽然 上文在芯片上系统(SoC)的情境中描述了多个实施例中的一些,但是也可在各种不同的 处理器架构上实现本发明的基本原理,各种不同的处理器架构例如,具有多个核的处理器 (例如,其中每一个核与不同的功率平面相关联)或具有多个功能单元的处理器或核(即, 其中,每一个功率单元在分开的功率平面中,或者功率单元的多个组被安排到不同的功率 平面中)。例如,可结合图8、9a-b、lla_b或13a_b中所示的架构中的任何一种(例如,在其 中,功率被智能地分配给不同物理处理器中的每一个)来采用这些功率管理技术。
[0140] 示例性指令格式
[0141] 能以不同的格式使本文所述的指令的多个实施例具体化。另外,在下文中详述示 例性系统、架构和流水线。指令的实施例可在此类系统、架构和及流水线上执行,但是不限 于详述的系统、架构和流水线。
[0142]向量友好指令格式是适于向量指令(例如,存在专用于向量操作的某些字段)的 指令格式。尽管描述了其中通过向量友好指令格式支持向量和标量操作两者的实施例,但 是替代实施例仅使用通过向量友好指令格式的向量操作。
[0143] 图15A-15B是示出根据本发明的实施例的通用向量友好指令格式及其指令模板 的框图。图15A是示出根据本发明的多个实施例的通用向量友好指令格式及其A类指令模 板的框图;而图15B是示出根据本发明的多个实施例的通用向量友好指令格式及其B类指 令模板的框图。具体而言,针对通用向量友好指令格式1500定义A类和B类指令模板,两 者都包括无存储器访问1505的指令模板和存储器访问1520的指令模板。在向量友好指令 格式的上下文中的术语"通用"是指不束缚于任何特定指令集的指令格式。
[0144] 尽管将描述其中向量友好指令格式支持以下情况的本发明的实施例,但是替代实 施例可支持更大、更小、和/或不同的向量操作数尺寸(例如,256字节向量操作数)与更 大、更小或不同的数据元素宽度(例如,168位(16字节)数据元素宽度):64字节向量操 作数长度(或尺寸)与32位(4字节)或64位(8字节)数据元素宽度(或尺寸)(并且 由此,64字节向量由16个双字尺寸的元素或者替代地8个四字尺寸的元素组成)、64字节 向量操作数长度(或尺寸)与16位(2字节)或8位(1字节)数据元素宽度(或尺寸)、 32字节向量操作数长度(或尺寸)与32位(4字节)、64位(8字节)、16位(2字节)、或 8位(1字节)数据元素宽度(或尺寸)、以及16字节向量操作数长度(或尺寸)与32位 (4字节)、64位(8字节)、16位(2字节)、或8位(1字节)数据元素宽度(或尺寸)。
[0145] 图15A中的A类指令模板包括:1)在无存储器访问1505的指令模板内,示出无 存储器访问的完全舍入控制型操作1510的指令模板以及无存储器访问的数据变换型操 作1515的指令模板;以及2)在存储器访问1520的指令模板内,示出存储器访问的时效性 1525的指令模板和存储器访问的非时效性1530的指令模板。图15B中的B类指令模板包 括:1)在无存储器访问1505的指令模板内,示出无存储器访问的写掩码控制的部分舍入控 制型操作1516的指令模板以及无存储器访问的写掩码控制的vsize型操作1517的指令模 板;以及2)在存储器访问1520的指令模板内,示出存储器访问的写掩码控制1527的指令 模板。
[0146] 通用向量友好指令格式1500包括以下列出的按照在图15A-15B中示出的顺序的 如下字段。
[0147] 格式字段1540 -该字段中的特定值(指令格式标识符值)唯一地标识向量友好 指令格式,并且由此标识指令在指令流中以向量友好指令格式出现。由此,该字段对于仅具 有通用向量友好指令格式的指令集是不需要的,在这个意义上该字段是可选的。
[0148] 基础操作字段1542 -其内容区分不同的基础操作。
[0149] 寄存器索引字段1544-其内容直接或者通过地址生成来指定源或目的地操作数 在寄存器中或者在存储器中的位置。这些字段包括从PxQ(例如,32x516、16xl68、32xl024、 64x1024)寄存器组中选择N个寄存器的足够数量的位。尽管在一个实施例中N可多至三个 源和一个目的地寄存器,但是替代实施例可支持更多或更少的源和目的地寄存器(例如, 可支持多至两个源(其中,这些源中的一个源还用作目的地),可支持多至三个源(其中,这 些源中的一个源还用作目的地),可支持多至两个源和一个目的地)。
[0150] 修饰符(modifier)字段1546 -其内容将指定存储器访问的以通用向量指令格式 出现的指令与不指定存储器访问的以通用向量指令格式出现的指令区分开;即在无存储器 访问1505的指令模板与存储器访问1520的指令模板之间进行区分。存储器访问操作读取 和/或写入到存储器层次结构(在一些情况下,使用寄存器中的值来指定源和/或目的地 地址),而非存储器访问操作不这样(例如,源和/或目的地是寄存器)。尽管在一个实施 例中,该字段还在三种不同的方式之间选择以执行存储器地址计算,但是替代实施例可支 持更多、更少或不同的方式来执行存储器地址计算。
[0151] 扩充操
当前第4页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1