用于在时钟源的时钟网格的自动时钟门控的方法和系统的制作方法

文档序号:6507864阅读:290来源:国知局
用于在时钟源的时钟网格的自动时钟门控的方法和系统的制作方法
【专利摘要】公开了用于在时钟源的时钟网格的自动时钟门控的方法和系统。用于通过在时钟源实施时钟门控来进行功率管理的系统和方法。在方法中,在处理单元的核心的经钟控部件内检测关键停顿情形。核心包括通过由时钟网格所分配的时钟信号在操作中进行同步的一个或多个经钟控部件。在关键停顿情形期间时钟网格被时钟门控以中止时钟信号分配到核心。
【专利说明】用于在时钟源的时钟网格的自动时钟门控的方法和系统
【背景技术】
[0001]高频微处理器以及其他计算引擎通常使用时钟网格(代替时钟树)作为全局时钟 分配机制以减少时钟不确定性并使更多额定时钟周期可用于计算。
[0002]另一方面,当时钟树用于时钟分配时,大部分全局时钟分配网络可被相对容易地 门控,从而以相对局部的方式大量消除全局时钟分配(有功/动态)功率。
[0003]然而在另一方面,出于功率管理的目的,当与时钟树相比较时,时钟网格不易被门 控。尽管当活动时时钟网格具有频率优势并因此具有概念上的能量效率优势,但是当微处 理器不活动时,诸如当等待处理器没有其则不可继续的、来自存储器的信息时,时钟网格具 有一些功率缺点。也就是说,功率被时钟的分配和处理器电路部分地消耗。
[0004]时钟网格依靠其全局地处于“on (打开)”来减少偏差(skew)。由于其配置,比起 当使用时钟树时可能的情况,传统的时钟门控被迫时钟门控得更接近“叶”。由于比起相 应生成树,网格典型地具有更多电容和晶体管,所以针对由时钟网格所钟控的电路,较多功 率被潜在地消耗和/或浪费。在这种不活动的情况下,即使所有单元被局部时钟门控,全 局时钟网格可能消耗数百毫瓦,然而处理器由于这种对存储器未命中的性质或等同的停顿 (stalling)情形仍无法取得进展。
[0005]在一些情况下,可使用功率管理软件控制来管理时钟网格。例如,针对受限的关键 (critical)情形,可通过使用显式软件功率管理指令和序列来处置时钟网格的有功时钟功 率。例如,可通过显式地进入软件控制之下的低功率状态来达成通过软件控制的功率管理。 经软件控制的低功率状态可在源处门控时钟网格。
[0006]然而,经软件控制的功率管理解决方案不帮助在动态和/或关键情形下节省功 率,因为当存在关键情形时软件无法以及时的方式识别。例如,经软件控制的管理解决方案 无法确定指令分支何时将进行误预测并随后在较低级高速缓存或底层的存储器系统中搜 索适当的指令和/或数据。

【发明内容】

[0007]公开了用于实施功率管理的方法和系统。方法包括在时钟源实施时钟门控。具体 来讲,在处理单元的核心的基于硬件的经钟控部件内检测关键停顿情形。核心包括通过由 时钟网格所分配的时钟信号在操作中进行同步的一个或多个经钟控部件。在关键停顿情形 期间,时钟网格在供应时钟信号给核心的根分支处被时钟门控以中止时钟信号遍及核心的 分配。
[0008]在另一个实施例中,公开了用于功率管理的另一个方法。方法包括检测指令何时 从处理单元的核心的经钟控部件发送。指令与响应相关联,其中在等待响应的接收之际,核 心中的数据的处理是中止的或不活动的。在一些示例中,响应从存储器系统返回。核心包括 通过由时钟网格所分配的时钟信号在操作中进行同步的一个或多个经钟控部件。方法包括 开始计数器。计数器增加,诸如,每个时钟周期计数器增加一。针对响应,事务经监视。例 如,针对对指令的响应,来自存储器系统的事务经监视。方法包括确定在检测到响应之前计数器何时达到阈值。如果在响应的检测之前计数器达到阈值,方法包括在关键停顿情形期 间时钟门控时钟网格以中止时钟信号分配到核心。
[0009]在又一个实施例中,公开了用于功率管理的设备。设备包括用于提供时钟信号的 时钟源。设备还包括用于将时钟信号分配到处理单元的核心的时钟网格。核心包括通过由 时钟信号在操作中进行同步的一个或多个经钟控部件。包括基于硬件的监视器,用于检测 核心的经钟控部件内的关键停顿情形。在一个实施例中,经钟控部件包括基于硬件的监视 器。设备包括时钟网格控制单元,用于在关键停顿情形期间在时钟网格的根分支处时钟门 控时钟网格以中止时钟信号遍及核心的分配。根分支将时钟信号分配到核心。
[0010]在阅读接下来各种附图中所示出的实施例的详细描述之后,本领域普通技术人员 将理解本公开的各种实施例的这些和其他目的和优点。
【专利附图】

【附图说明】
[0011]附图被包括在本说明书中并形成本说明书的一部分,其中类似数字描绘类似元 素,附图示出本公开的实施例,并且与描述一起用来解释本公开的原理。
[0012]图1描绘根据本公开的一个实施例的、适合于实现所呈现的方法的示例性计算机 系统的框图。
[0013]图2是根据本公开的一个实施例的、用于将指令处理为一系列非独立步骤的处理 器的示例性核心的示例性指令管线的图。
[0014]图3是根据本公开的一个实施例的、配置为通过当检测关键停顿情形时时钟门控 时钟源以中止时钟信号的分配来实施功率管理的设备的框图。
[0015]图4是根据本公开的一个实施例的、示出用于通过当检测关键停顿情形时时钟门 控时钟源以中止时钟信号的分配来实施功率管理的方法的流程图。
[0016]图5是根据本公开的一个实施例的、示出用于通过当在指令已发送之后并且在已 检测或接收对指令的响应之前计数器已达到阈值时时钟门控时钟源以中止时钟信号的分 配来实施功率管理的方法的流程图。
【具体实施方式】
[0017]现在将对本公开的各种实施例进行详细参考,其示例在附图中示出。虽然结合这 些实施例加以描述,但应理解其并不意图将本公开限定于这些实施例。相反,本公开意在涵 盖可包括在如所附的权利要求所定义的本公开的精神和范围内的替代、修改以及等同物。 此外,在本公开接下来的详细描述中,阐述了大量具体细节以提供对本公开的彻底理解。然 而,应理解的是本公开可在没有这些具体细节的情况下加以实施。在其他实例中,未详细描 述公知的方法、过程、部件和电路以避免对本公开的各方面内容造成不必要的混淆。
[0018]接下来的一些详细描述部分以过程、逻辑块、处理以及对计算机存储器内的数据 位的操作的其他象征性表示来呈现。这些描述和表示是由数据处理领域技术人员用来向本 领域的其他技术人员最有效地传达他们工作的实质所使用的手段。在本申请中,过程、逻辑 块、进程等等,被设想为得出期望结果的步骤或指令的自洽序列。步骤利用物理量的物理操 纵。通常,尽管不是必要地,这些量采用能在计算机系统中被存储、转移、组合、比较和另外 操纵的电或磁信号的形式。已经证明,主要是出于共同使用的原因,将这些信号称为事务、位、值、元素、符号、字符、样本、像素等等有时是方便的。
[0019]然而,要牢记的是,所有的这些和类似的术语都要与适当的物理量相关联,且仅仅 是应用于这些量的便捷标签。除非特别声明,否则在下面的论述中很明显,应意识到贯穿本 公开,利用术语诸如“识别”、“确定”、“监视”、“门控”等等的讨论,指的是计算机系统或类似 的电子计算设备或处理器(如图1的系统100和图3的微架构300)的动作与处理(分别如图 4和5的流程400和500)。计算机系统或类似的电子计算设备对计算机系统存储器、寄存 器或其他这类信息存储、传输或显示设备内以物理(电子)量表示的数据进行操纵和转换。
[0020]图4和5是根据本发明的实施例的、用于处理数据的计算机实现的方法的示例的 流程图。虽然在流程图中公开了具体步骤,但这种步骤是示例性的。也就是说,本发明的实 施例适合于实施各种其他步骤或在流程图中所叙述的步骤的变形。
[0021]本文所描述的本发明的实施例在配置为用于监视和执行指令的基于硬件的部件 的上下文内经讨论。也就是说,本发明的实施例在硬件设备或微架构内实现,并配置为出于 功率管理的目的监视关键停顿情形以及实施适当的时钟门控。
[0022]本文描述的其他实施例可一般围绕着存在于某形式的计算机可读存储介质上的 计算机可执行指令加以讨论,诸如由一台或多台计算机或其他设备执行的程序模块。以示 例的方式但非限制,计算机可读存储介质可以包括非暂时性计算机存储介质和通信介质。 通常,程序模块包括例程、程序、对象、组件、数据结构等等,其执行特定任务或实现特定的 抽象数据类型。程序模块的功能可以在各种实施例按照期望加以组合或分配。
[0023]计算机存储介质包括易失性和非易失性、可移动的和不可移动的以任意方法或技 术实现的介质,用于存储信息诸如计算机可读指令、数据结构、程序模块或其他数据。计算 机存储介质包括但不限于,随机存取存储器(RAM)、只读存储器(ROM)、电可擦可编程ROM (EEPR0M)、闪速存储器或其他存储器技术、压缩光盘ROM (⑶-ROM)、数字多用盘(DVD)或其 他光学存储、盒式磁带、磁带、磁盘存储或其他磁性存储设备、或任意其他可用来存储期望 信息并可访问以检索该信息的介质。
[0024]通信介质可体现计算机可执行指令、数据结构及程序模块,并包括任意信息递送 介质。以示例的方式而非限制,通信介质包括有线介质诸如有线网络或直接有线连接,以及 无线介质诸如声、射频(RF)、红外及其他无线介质。以上的任意组合也可包括在计算机可读 介质范围内。
[0025]图1是能够实现本公开的实施例的计算系统100的示例的框图。计算系统100广 泛地表示能够执行计算机可读指令的任意单或多处理器计算设备或系统。计算系统100的 示例包括但不限于,工作站、膝上型计算机、客户端终端、服务器、分布式计算系统、手持设 备或任意其他计算系统或设备。在其最基本配置中,计算系统100可包括至少一个处理器 110以及系统存储器140。
[0026]中央处理单元(CPU) 110和图形处理单元(GPU) 120均耦连到存储器140。系统存 储器140总地表示能够存储数据和/或其他计算机可读指令的任意类型或形式的易失性或 非易失性存储设备或介质。系统存储器140的示例包括但不限于,RAM、ROM、闪速存储器或 任意其他合适的存储器设备。在图1的示例中,存储器140是共享存储器,存储器靠其存储 指令和数据用于CPUl 10和GPU120。可替代地,可以分别有专用于CPUl 10和GPU120的分开 的存储器。存储器可包括帧缓冲区用于存储驱动显示屏130的像素数据。[0027]系统100包括用户接口 160,在一个实现方案中,该用户接口包括屏上光标控制设 备。用户接口可包括键盘、鼠标和/或触摸屏设备(触摸板)。
[0028]CPUllO和/或GPU120总地表示能够处理数据或翻译和执行指令的任意类型或形 式的处理单元。在某些实施例中,处理器110和/或120可从软件应用或硬件模块接收指 令。这些指令可使处理器110和/或120实施本文所描述和/或所示出的一个或多个示范 性实施例的功能。例如,处理器110和/或120可单独地或与其他元件组合地实施监视、确 定、选通以及检测或本文所描述的等等中的一个或多个和/或是用于单独地或与其他元件 组合地实施上述操作的装置。处理器110和/或120还可实施本文所描述的和/或所示出 的任意其他步骤、方法或过程和/或是用于实施本文所描述的和/或所示出的任意其他步 骤、方法或过程的装置。
[0029]在一些实施例中,可将包括计算机程序的计算机可读介质加载到计算系统100。存 储在计算机可读介质上的计算机程序的所有或一部分可随后存储在系统存储器140和/或 存储设备的各部分中。当由处理器110和/或120所执行时,被加载到计算系统100的计 算机程序可使处理器110和/或120实施本文所描述的和/或所示出的示范性实施例的功 能和/或是用于实施上述功能的装置。附加地或可替代地,可在固件和/或硬件中实现本 文所描述的和/或所示出的示范性实施例。
[0030]图2是根据本公开的一个实施例的、用于将指令处理为一系列非独立步骤的处理 器的示例性核心的示例性指令管线200的图。管线200配置为执行指向特定特征或功能性 的高级指令。如图2中所示,管线200示出单个指令路径,尽管针对增加的性能,管线200 可包括多个并行的同时操作的数据路径。
[0031]总而言之,管线200包括一个或多个非独立阶段(stage)用于实施多个指令,其中 每个阶段实施特定指令。也就是说,阶段以具体顺序执行,因为一个阶段的输出是接下来阶 段的输入。每个指令和/或阶段在一个时钟周期中执行。如图2中所示,阶段通常由相应执 行单元所表示。例如,管线200包括一个或多个执行单元,包括执行单元210、220、230等。 更具体地,执行单元210位于管线200的前端,并且执行单元230位于管线200的后端。
[0032]在高级别,管线200的执行单元可包括但不限于指令获取单元(IFU)、指令解码单 元、执行单元、分支预测单元、算术逻辑单元(ALU)、加载存储单元、存储器管理单元、单指令 多数据(SMID)单元以及写回单元。这些执行单元实施被设计为执行特定功能的微架构的 操作和/或计算。
[0033]此外,执行单元可能经历停顿情形。例如,在管线200中的处理可能停顿在具体执 行单元,其中在当前时钟周期期间在执行单元的指令无法得到处理。这样,在执行单元经历 停顿情形的同时,管线200部分地停顿直到相应执行单元能够完成其指令并解决其被停顿 的情形为止。更具体地,管线200针对经停顿的执行单元之前的阶段停顿。如图2中所示, 在停顿情形中的执行单元由停顿情形循环所表示,其中指令循环回来以由执行单元再次进 行处理。具体地,执行单元210包括相应停顿情形循环215,执行单元220包括相应停顿情 形循环225,并且执行单元230包括相应停顿情形循环235。
[0034]停顿情形可在微架构之间改变。本发明的实施例配置为监视由特定微架构所经历 的一个或多个停顿情形。更特别地,本发明的实施例配置为监视一个或多个关键或动态停 顿情形。例如,在管线200的执行单元中触发停顿的一个关键或动态停顿情形是转译后备缓冲区(translation lookaside buffer TLB)未命中,其中对应于所请求的虚拟地址的物 理地址未位于TLB高速缓存中,并且也未位于TLB L-2高速缓存中。这样,转译处理必须实 施相对应页面表的漫游(walk-through)以确定适当的物理地址。在管线200的执行单元 中触发停顿的另一个动态停顿情形是屏障指令,经实现以在存储器操作上强制实行排序约 束和/或确保在屏障指令之前所要求的所有存储器访问的完成。在屏障指令的执行期间, 在等待屏障指令的完成之际,诸如当等待来自很慢的存储器系统的返回或确认时,相应执 行单元停顿。在管线200的执行单元中触发停顿的又一个动态停顿情形是分支的误预测, 诸如当分支预测在条件分支上未命中时,其触发管线200的清洗(flush)。当正在获取的适 当的指令或数据未位于呈现在芯片上的指令高速缓存(1-高速缓存或L-1高速缓存)中并 且也未位于其他片外较高级高速缓存(例如L-2高速缓存)上时,停顿情形转到长时延未命 中,这样,为了得到适当的信息,正在获取的适当的指令或数据必须去其他较低级高速缓存 (例如主存储器)。在管线200的执行单元中触发停顿的另一个动态停顿情形是对非高速缓 存的加载的请求,其中信息必须从主存储器系统而非从高速缓存中检索。在某种意义上,对 非高速缓存的加载的请求类似于TLB未命中。针对可被识别用于实施用于功率管理的时钟 门控的目的的各种微架构,还考虑其他关键或动态停顿情形。
[0035]图3是根据本公开的一个实施例的、配置为通过当检测关键停顿情形时时钟门控 时钟源以中止时钟信号的分配来实施功率管理的计算资源的微架构300的框图。例如,微 架构300可配置为检测诸如图2的管线200的管线内指令的执行内的关键停顿情形。
[0036]如图3中所示,微架构300包括配置为提供时钟信号的时钟源360。例如,在一个 实现方案中,时钟源360是生成时钟信号的锁相环(PLL)电路。此外,时钟信号经由分配网 络被分配遍及微架构300。例如,时钟分配网络包括用于分配时钟信号到处理器的核心305 的时钟网格310,其中虽然图3中仅示出处理器的核心305,但处理器可包括一个或多个核 心。更特别地,核心305包括一个或多个经钟控的部件(例如部件330、340等),其中每个通 过由时钟网格315所分配的时钟信号在操作中进行同步。
[0037]时钟网格315是若干分配网络或模式中的任何一个的代表。总而言之,时钟网格 配置为:诸如随着时钟信号的分配,在某种程度上通过最小化时钟信号的偏差,同时将时钟 信号分配遍及核心305。时钟网格315的示例包括二进制树、H树、X树等。
[0038]如图3中所示,分配遍及核心305的时钟信号由一个或多个经钟控部件所接收,包 括经钟控部件330和经钟控部件340。经钟控部件配置为实施一个或多个功能,并且在一个 实施例中是基于硬件的。在一个实现方案中,经钟控部件包括先前在图2中所引入的执行 单元、或与执行单元相关联的或配置为监视执行单元的部件。
[0039]例如,在一个实施例中,经钟控部件330包括监视器335,用于在核心305的经钟控 部件内检测关键停顿情形。在一个实现方案中,监视器335是基于硬件的并配置为监视经 钟控部件330的预定义的情形或状态。作为示例,监视器335配置为监视高速缓存未命中, 其中经钟控部件包括L-21-高速缓存,并且配置为检测指令何时与1-高速缓存未命中、以 及L-21-高速缓存未命中相关联,从而引起核心305的管线内的长时延期。
[0040]在另一个实施例中,经钟控部件330主要包括并且起监视器335的作用。也就是 说,监视器335配置为监视对于经钟控部件330是远程的另一个设备的状态。例如,监视器 335可配置为监视先前在图2中所引入的执行单元的活动和响应。以先前所提供的示例继续,监视器335可正监视分开放置的诸如L-21-高速缓存的经钟控部件的状态。
[0041]此外,微架构300包括时钟网格控制单元320,用于管理源自时钟源360的时钟信 号的分配。具体来讲,时钟网格控制单元320电气地耦连到核心305,并且更具体地,耦连到 核心305的一个或多个监视器(例如监视器335和345)。这样,时钟网格控制单元320能够 接收来自核心305中的监视器中的每一个的消息,该消息指导时钟网格控制单元320在时 钟网格310的根分支317处时钟门控时钟网格310。根分支317分配源自时钟源360的时 钟信号。通过门控根分支317,时钟网格控制单元320配置为在由相应监视器所识别的关键 停顿情形期间中止时钟信号分配到核心305。
[0042]如图3中所示,时钟网格控制单元320未位于将时钟信号供应到核心305的时钟 网格310的部分上。具体来讲,当相比于从时钟源360经由根分支317时钟门控核心305 时,时钟网格控制单元320从时钟源360单独经门控。通过该方式,即使根分支317经时钟 门控,时钟网格控制单元320也不经时钟门控,并且仍接收来自时钟源360的时钟信号。此 夕卜,时钟源360、时钟网格控制单元320、外部单元370 (例如存储器系统)以及响应监视器 325和370位于核心305外部,如界限350所示。
[0043]还如图3中所示,微架构300包括响应监视器,用于监视对应于关键或动态停顿情 形的响应的目的。例如,响应监视器配置为监视对从停顿情形(例如由于TLB未命中而访问 物理地址)所生成的指令的响应,以包括来自外部单元380 (例如存储器系统)的访问信息。 更特别地,在一个实施例中,响应监视器325位于时钟网格控制单元320内。在另一个实施 例中,响应监视器370是与时钟网格控制单元320分开的独立单元,并且电气地耦连到时钟 网格控制单元320。此外,响应监视器325和370位于核心305外部,其中其位于与将时钟 信号供应到核心305的根分支317不同的分支(例如根分支)上。通过该方式,即使时钟信 号在根分支317处经门控,到响应监视器325和/或370的时钟信号也不被抑制,即使时钟 信号未传递到核心305。通过该方式,一旦响应被识别为与关键或动态停顿情形相关联,相 应响应监视器配置为告知时钟网格控制单元320在时钟网格310的根分支317处对时钟网 格310解除时钟门控。这样,当响应返回时,由于核心305再次接收时钟信号,起接收作用 的经钟控部件被供电回到打开(on )。
[0044]在一个实施例中,响应监视器325和/或370配置为识别对应于生成自停顿情形 的和/或强制造成停顿情形的指令的唯一事务标识符,以及对该指令的响应。例如,事务标 识符是存储器地址。在另一个示例中,事务标识符是经生成用于事务的多位数,典型地比存 储器地址所要求的位使用更少的位。这样,响应监视器能够针对事务标识符结合来自外部 单元(例如存储器系统)380的时钟网格控制单元响应进行监视。在识别外部单元380中所 使用的术语“外部”表明单元380在核心305外部,并且更具体地在与将时钟供应到核心305 的根分支317不同的分支(例如根分支)上。通过该方式,即使时钟信号在根分支317处经 门控,到外部单兀380的时钟信号也不被抑制,即使时钟信号未传递到核心305。一旦确定 响应包括事务标识符,那么响应监视器(例如监视器325和370)配置为指导时钟网格控制 单元320对时钟网格解除门控或解除时钟门控以使能时钟信号分配到核心305,为接收核 心305的相应经钟控部件(例如执行单元)中的响应做准备。
[0045]图4是根据本公开的一个实施例的、描述用于通过当检测关键停顿情形时时钟门 控时钟源以中止时钟信号的分配来实施功率管理的方法的流程图400。在一个实施例中,流程图400中所概述的方法可在图3的微架构300内实现,该微架构300配置为确定关键和 /或动态停顿情形并发起包括门控时钟源的功率管理序列。
[0046]在410,检测其中预计长时延期的关键和/或动态停顿情形。例如,位于处理器的 核心内的、基于硬件的监视器配置为监视硬件设备的特定状态情形,如先前所描述的(例如 TLB未命中等)。核心包括通过由时钟网格所分配的时钟信号在操作中进行同步的一个或多 个经钟控部件或硬件设备。这些经钟控部件包括可能遭受长时延关键停顿情形的各种单元 (例如IFU、存储器管理单元、加载存储单元等)。监视器配置为监视经钟控部件内的那些关 键和/或动态停顿情形。在一个实施例中,监视器包括在被监视的相应经钟控部件内。在 另一个实施例中,监视器在正被监视的相应经钟控部件外部。并且,在一个实现方案中,基 于硬件的监视器可包括图3的监视器335和345。
[0047]关键停顿情形通过其长时延特性所识别,如在一个或多个微架构中所经历的。例 如,检测关键停顿情形可包括一个或多个以下情形的检测:1)管线的清洗,诸如当分支误预 测发生时;2) 1-高速缓存未命中;以及L-2高速缓存未命中。在管线清洗的情况中,核心 包括管线,其中管线包括经钟控部件中的一个或多个。在一个实施例中,监视器位于1-高 速缓存中,其能够检测上面经识别情形中的一个或多个。其他关键停顿情形包括但不限于 以下内容:1)以下情形中的一个或多个,诸如1-高速缓存未命中和L-2高速缓存未命中; 2)TLB未命中和L-2高速缓存未命中;非高速缓存加载的获取;以及屏障指令。在一个实施 例中,存储器系统配置为当未命中是长时延未命中时(例如未命中末级高速缓存)告知监视 器。
[0048]在420,在关键停顿情形期间时钟网格经时钟门控以中止时钟信号分配到核心。也 就是说,通过门控时钟信号,使得时钟信号的分配被防止遍及核心来达成功率管理。这样, 核心中的经钟控部件将不会抽运功率,或将最低限度地抽运功率。
[0049]更特别地,配置为监视相应经钟控部件的监视器能够告知时钟网格控制单元何时 时钟门控时钟网格,诸如在检测关键停顿之后。也就是说,基于挂起的、到诸如存储器系统 的外部单元的事务,监视器能够告知时钟网格控制单元在根分支时钟门控时钟网格。更特 别地,根分支配置为将时钟信号分配到核心,使得门控根分支也防止时钟信号被分配遍及 核心。通过该方式,面对长时延未命中或其他关键停顿情形,对于足够关键的存储器,在停 顿期期间,核心处理器将实施很少或不实施有用的工作,与核心相关联的时钟网格在根分 支经门控。这通过各种空闲的经钟控部件节省了有功功率的使用,而且时钟的动态功率被 分配遍及时钟网格。
[0050]时钟网格控制单元耦连到对挂起的事务提供响应的外部单元(例如存储器系统)。 此外,时钟网格控制单元位于将不会被中止的时钟网格的分支上,并且在关键停顿情形中 自始至终是活动的。例如,与时钟网格控制单元相关联的响应监视器配置为监视挂起的事 务流中的响应,并且以及时的方式对时钟网格解除时钟门控,使得相应响应到达通过时钟 信号的分配适当地活动的网格中的相应经钟控部件。对时钟网格解除时钟门控的经协调的 定时在存储器和核心之间的同步接口中尤其重要,使得时钟网格在响应传递到核心之前被 解除时钟门控。更特别地,一旦响应由响应监视器和/或时钟网格控制单元所识别,那么指 令被发送到时钟门控控制单元以对时钟网格解除时钟门控(例如对根分支解除时钟门控)。
[0051]在一个实施例中,通过事务标识符的使用识别响应。具体来讲,事务标识符结合诸如强制造成关键停顿情形的指令的挂起的事务所生成。作为示例,指令可以是一个在误预 测的情况下检索适当的数据或指令的指令。在关键停顿情形期间,来自存储器的响应由与 时钟网格控制单元相关联的响应监视器所监视。具体地,响应被监视以识别具有事务标识 符的响应何时返回。当确定具有适当事务标识符的响应已从存储器系统返回时,时钟网格 经解除时钟门控以及时使能时钟信号分配到核心用于由现在活动的适当经钟控部件将要 接收的响应。
[0052]在本发明的实施例中,时钟网格被临时地解除时钟门控以临时地使能时钟信号 分配到核心,用于处理指向核心的经选择的传入事务。例如,时钟网格控制单元配置为当 接收响应时退出自动功率管理状态,如先前所描述的,但还配置为临时地重新使能时钟网 格以处理传入的请求。例如,时钟网格被临时地重新使能以处置一致性(coherence)窥探 (snoop),并且接受对在时钟网格经门控时是未解决的(例如未解决的预获取)非关键事务 的响应。
[0053]图5是根据本公开的一个实施例的、示出用于通过当在指令已发送之后并且在已 检测或接收对指令的响应之前计数器已达到阈值时时钟门控时钟源以中止时钟信号的分 配来实施功率管理的方法的流程图500。在一个实施例中,在流程图500中所概述的方法在 图3的微架构300内实现,该微架构300配置为确定关键和/或动态停顿情形并发起包括 门控时钟源的功率管理序列。
[0054]在510,方法包括检测指令何时从处理单元的核心的经钟控部件发送,其中指令与 挂起的事务有关。核心包括通过由时钟网格所分配的时钟信号在操作中进行同步的一个或 多个经钟控部件或硬件设备。这些经钟控部件包括可能遭受长时延关键停顿情形的各种单 元(例如IFU、存储器管理单元、加载存储单元等)。在一个实施例中,所检测的指令可被预定 义,或在经选择用于经钟控部件内的检测的指令组内,已知指令组中的所有在一点处易受 长时延停顿的影响。在其他实施例中,指令可以是源自经钟控部件的任何指令。也就是说, 任何指令被假定易受长时延停顿的影响,并且受制于针对出于功率管理目的时钟门控时钟 源的考虑。
[0055]在一个实施例中,指令由基于硬件的监视器所检测,其位于核心处理器内,并配置 为监视通用或特定指令。例如监视器配置为监视和与处理器核心中的经钟控部件相关联的 挂起的事务有关的指令。在一个实施例中,监视器包括在被监视的相应经钟控部件内,诸如 经钟控部件330的监视器335,以及经钟控部件340的监视器345。在另一个实施例中,监 视器在正被监视的相应经钟控部件外部。
[0056]在520,当检测到指令时,计数器开始。计数器给出指令和与该指令相关联的任何 响应是否是关键或动态停顿情形的特性的指示。计数器在每个新时钟周期增加。在一个实 施例中,计数器包括在被监视的相应经钟控部件内,诸如部件330的计数器337,以及部件 340的计数器347。在又一个实施例中,计数器在正被监视的相应经钟控部件外部。在又一 个实施例中,计数器包括在相应监视器内,或在相应监视器外部。
[0057]在530,监视与指令有关的事物。例如,耦连到计数器的事务和/或响应监视器配 置为监视与挂起的事务流中的指令有关的事务和响应。在另一个实施例中,监视实现在核 心之外,使得即使已出于功率管理的目的时钟门控核心,事务(例如响应)的监视也可发生。 也就是说,事务或响应监视器位于当将时钟信号供应到核心的根分支已被门控时不会中止的时钟网格的分支上。此外,事务或响应监视器配置为监视挂起的事务流中的事务和响应。 在一个实施例中,出于监视挂起的事务流中的事务和响应的目的,事务或响应监视器耦连 到存储器系统。
[0058]在540,计数器能够确定在检测到与挂起的事务流中的指令有关的事务或响应之 前计数器何时达到阈值。也就是说,当计数器达到阈值时,挂起的事务流正经历关键和/ 或动态停顿情形是很有可能的。另一方面,如果在计数器达到阈值之前检测到与挂起的事 务流中的指令有关的事务或响应,那么计数器重置用于与另一个经检测的指令相关联的使 用。也就是说,在挂起的事务流之下,微架构或微架构的经钟控部件当前没经历关键和/或 动态停顿情形。
[0059]在550,当在检测到与指令有关的事务或响应之前计数器达到阈值时,通过在关键 停顿情形期间在根分支处时钟门控时钟网格以中止时钟信号分配到核心来采用功率管理 技术。换句话说,通过门控时钟信号,使得时钟信号的分配被防止遍及核心来达成功率管 理。通过该方式,核心中的经钟控部件将不会抽运功率或将最低限度地抽运功率。更特别 地,计数器配置为告知时钟网格控制单元何时在根分支处时钟门控时钟网格,诸如当计数 器达到阈值时。这样,面对关键停顿情形,由于有功功率的使用由核心中的各种空闲的经钟 控部件所最小化,并且还通过门控与分配遍及时钟网格的时钟信号有关的动态功率的使用 所最小化,所以停顿期期间核心处理器将实施很少或不实施有用的工作。
[0060]如先前所描述的,时钟网格控制单元耦连到对与指令有关的挂起的事务提供事务 和响应的外部单元(例如存储器系统)。此外,时钟网格控制单元位于将不会被中止的、时钟 网格的分支上,并且在关键停顿情形中自始至终是活动的。此外,事务和响应监视器类似地 经配置,使得其位于将不会被中止的、时钟网格的分支上,并且在关键停顿期中自始至终是 活动的。这样,一旦检测到与挂起的事务流中的指令有关的事务或响应,监视器配置为指导 时钟网格控制单元以及时的方式对时钟网格解除时钟门控(例如对根分支解除时钟门控)。 通过该方式,在相应的事务或响应到达网格中的相应经钟控部件之前,核心处理器是活动 的。对时钟网格解除时钟门控的经协调的定时在存储器和核心之间的同步接口中尤其重 要,使得时钟网格在响应传递到核心之前被解除时钟门控。
[0061]在一个实施例中,通过事务标识符的使用,识别与挂起的事务流中的指令有关的 事务或响应。具体来讲,事务标识符结合挂起的事务所生成,诸如与强制造成关键停顿情形 的指令有关。在关键停顿情形期间,来自存储器或任何其他外部单元的事务和响应由与时 钟网格控制单元相关联的响应监视器所监视。具体地,响应被监视以识别何时检测到具有 相同事务标识符的事务或响应。
[0062]因此,根据本公开的实施例描述了系统和方法,其中出于对处于经识别的关键和 动态停顿情形之下的处理器的核心进行功率管理的目的,时钟网格在根分支被自动地门 控。本发明的实施例包括确定微架构的核心面对关键和/或动态停顿情形,并且自动地/ 自主地发起功率管理序列。
[0063]同时,前述公开阐述了使用具体框图、流程图和示例的各种实施例,每个框图部 件、流程图步骤、操作和/或本文描述和/或示出的部件均可单独地和/或共同地,通过使 用各种不同的硬件、软件或固件(或其任意组合)配置来实现。另外,对包含在其他部件内的 部件的任何公开应视为示例,因为可实现许多其他架构来达到相同的功能性。[0064]本文描述和/或示出的工艺参数和步骤顺序仅以示例方式给出并可按期望进行 变化。举例来说,虽然本文示出和/或描述的步骤可能以特定的顺序显示或论述,但这些步 骤不必按所示出或论述的顺序来实施。本文描述和/或示出的各种示范性方法也可以省略 一个或多个本文描述或示出的步骤,或包括附加步骤作为那些所公开步骤的补充。
[0065]虽然本文已围绕全功能计算系统描述和/或示出了各种实施例,但这些示范性实 施例中的一个或多个可分配为各种各样的形式的程序产品,而与用来实际执行分配的计算 机可读介质的特定类型无关。本文公开的实施例也可使用实施某些任务的软件模块来实 现。这些软件模块可包括脚本、批处理或其他可被存储在计算机可读存储介质上或计算系 统内的可执行文件。这些软件模块可以配置计算系统来实施一个或多个本文公开的示范性 实施例。本文公开的软件模块中的一个或多个可在云计算环境中实现。云计算环境可经由 因特网提供各种服务和应用。这些基于云的服务(例如,软件即服务、平台即服务、基础设施 即服务等等)可通过Web浏览器或其他远程接口访问。本文描述的各种功能可通过远程桌 面环境或任何其他基于云计算的环境提供。
[0066]前述的描述,出于解释的目的,已参考特定实施例进行了描述。然而,上述说明性 的论述不旨在穷举或将本发明限制在所公开的明确形式上。鉴于以上教导,许多修改和变 形是可能的。实施例被选择和描述以最好地解释本发明的原理及其实际应用,从而使其他 的本领域技术人员采用各种适用于特定预期用途的修改来最好地利用本发明和各种实施 例。
[0067]根据本公开的实施例因此被描述。虽然本公开已在特定实施例中加以描述,但应 理解本公开不应被解释为限于这些实施例,而应根据以下的权利要求来进行解释。
【权利要求】
1.一种用于功率管理的方法,包括:在处理单元的核心的经钟控部件内检测关键停顿情形,其中所述核心包括通过由时钟网格所分配的时钟信号在操作中进行同步的一个或多个经钟控部件;以及在所述关键停顿情形期间,时钟门控所述时钟网格以中止所述时钟信号分配到所述核心。
2.根据权利要求1所述的方法,其中所述检测包括:在基于硬件的监视器处检测所述关键停顿情形,其中所述经钟控部件包括所述基于硬件的监视器。
3.根据权利要求2所述的方法,其中所述检测关键停顿情形包括:在所述监视器处检测管线的清洗,其中所述核心包括包括所述经钟控部件中的一个或多个的所述管线,并且其中所述经钟控部件包括1-高速缓存;检测1-高速缓存未命中;以及检测L-2未命中。
4.根据权利要求1所述的方法,其中所述时钟门控包括:在所述时钟网格的根分支处门控所述时钟信号,其中所述根分支将所述时钟信号分配到所述核心。
5.根据权利要求1所述的方法,其中所述时钟门控包括:发送指令到时钟控制单元 以时钟门控所述时钟信号,其中所述时钟控制单元位于所述时钟网格的未中止的分支上。
6.根据权利要求5所述的方法,进一步包括:确定强制造成所述关键停顿情形的指令的事务标识符;结合来自存储器的所述时钟网格控制单元响应,监视所述事务标识符;确定响应包括所述事务标识符;以及对所述时钟网格解除时钟门控以使能所述时钟信号分配到所述核心。
7.根据权利要求6所述的方法,其中所述对所述时钟网格解除时钟门控进一步包括: 在所述存储器和所述核心之间的同步接口中,在所述响应被传递到所述核心之前对所述时钟网格解除时钟门控。
8.根据权利要求1所述的方法,进一步包括:临时地对所述时钟网格解除时钟门控以临时地使能所述时钟信号分配到所述核心,用于处理指向所述核心的经选择的传入的事务。
9.根据权利要求1所述的方法,其中所述关键停顿情形取自实质上包括以下内容的组:管线清洗、1-高速缓存未命中以及L-2高速缓存未命中;LI高速缓存和L2高速缓存中的经高速缓存的数据加载未命中;TLB未命中和L-2高速缓存未命中;非高速缓存的加载的获取;以及屏障指令。
10.根据权利要求1所述的方法,其中所述经钟控部件取自实质上包括以下内容的组: 加载存储单元,指令获取单元;以及存储器管理单元。
11.根据权利要求1所述的方法,其中所述检测关键停顿情形包括:检测指令何时从处理单元的核心的经钟控部件发送,其中所述核心包括通过由时钟网格所分配的时钟信号在操作中进行同步的一个或多个经钟控部件;开始计数器;针对对所述指令的响应监视来自存储器系统的事务;以及确定在检测到所述响应之前所述计数器何时达到阈值。
12.一种用于功率管理的设备,包括:提供时钟信号的时钟源;时钟网格;处理单元的核心,其中所述核心包括通过由所述时钟网格所分配的所述时钟信号在操作中进行同步的一个或多个经钟控部件;基于硬件的监视器,用于检测所述核心的经钟控部件内的关键停顿情形,其中所述经钟控部件包括所述基于硬件的监视器;时钟网格控制单元,用于在所述关键停顿情形期间在所述时钟网格的根分支处时钟门控所述时钟网格以中止所述时钟信号分配到所述核心,其中所述根分支将所述时钟信号分配到所述核心。
13.根据权利要求12所述的设备,其中所述时钟源包括锁相环电路,并且其中所述时钟网格控制单元位于与所述根分支不同的分支上。
14.根据权利要求12所述·的设备,其中所述时钟网格控制单元配置为实施以下操作: 确定强制造成所述关键停顿情形的指令的事务标识符;结合来自存储器的所述时钟网格控制单元响应,监视所述事务标识符;确定响应包括所述事务标识符;以及对所述时钟网格解除时钟门控以使能所述时钟信号分配到所述核心。
15.根据权利要求12所述的方法,其中所述经钟控部件取自实质上包括以下内容的组:加载存储单元,指令获取单元;以及存储器管理单元。
【文档编号】G06F1/10GK103592997SQ201310356742
【公开日】2014年2月19日 申请日期:2013年8月15日 优先权日:2012年8月15日
【发明者】吉列尔莫·胡安·罗扎斯 申请人:辉达公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1