用于在经暴露高速缓冲存储器停止运作时有效的时钟调整的方法及设备与流程

文档序号:14395258阅读:162来源:国知局

实施例是针对处理器,且更确切地说,是针对响应于高速缓冲存储器未命中而调整处理器时钟频率的处理器微架构。



背景技术:

处理器的时钟树可消耗由处理器消耗的总功率的主要部分。举例来说,对于一些现代处理器设计,据估计,时钟树动态功率可高达总处理器核心功率的15%到20%。假定处理器设计为完全时钟门控,那么对于此类实例,不论处理器是在作用中还是在等待来自存储器子系统的数据的闲置状态,处理器在运行时将总是耗散不明显的功率量。



技术实现要素:

本发明的示范性实施例是针对用于在经暴露高速缓冲存储器停止运作时有效的时钟调整的系统及方法。

附图说明

呈现附图以辅助对本发明的实施例的描述,且提供附图仅出于说明实施例而非限制实施例的目的。

图1为根据实施例的处理器的高级微架构。

图2为根据实施例的状态机的状态图。

图3a、3b及3c说明用于根据实施例检测候选加载指令的流程图。

图4说明可在其中应用实施例的电子装置。

具体实施方式

本发明的实施例揭示于以下描述及相关图式中。可在不脱离本发明的范围的情况下设计替代性实施例。此外,将不详细描述或将省略本发明的熟知元件以免混淆本发明的相关细节。

词语“示范性”在本文中用以意谓“充当实例、例子或说明”。本文中描述为“示范性”的任何实施例不必理解为比其它实施例更佳或更有利。同样,术语“本发明的实施例”不要求本发明的所有实施例包含所论述的特征、优点或操作模式。

本文所使用的术语仅出于描述特定实施例的目的,且不意欲限制本发明的实施例。如本文所用,单数形式“一”及“所述”同样意欲包含复数形式,除非上下文另外明确指示。将进一步理解,术语“包括”及/或“包含”在用于本文中时指定所陈述的特征、整体、步骤、操作、元件及/或组件的存在,但不排除一或多个其它特征、整体、步骤、操作、元件、组件及/或其群组的存在或添加。

此外,依据待由(例如)计算装置的元件执行的动作的序列而描述许多实施例。应认识到,可通过特定电路(例如,专用集成电路(asic))、通过正由一或多个处理器执行的程序指令或通过两者的组合来执行本文中所描述的各种动作。此外,可认为本文所描述的此些动作序列完全体现于任何形式的计算机可读存储媒体内,所述计算机可读存储媒体中存储有在执行时将使相关联的处理器执行本文所描述的功能性的计算机指令的对应集合。因此,本发明的各种方面可以数个不同形式体现,预期所有所述形式均在所主张的标的物的范围内。此外,对于本文中所描述的实施例中的每一者,任何此些实施例的对应形式可在本文中描述为(例如)“经配置以执行所描述的动作的逻辑”。

根据实施例的一种处理器在等待来自系统存储器的数据时识别其最可能在何时停止运作,且因此在等待所述数据从存储器子系统(例如,芯片外系统存储器)返回时调低其时钟频率。所述处理器在高速缓冲存储器停止运作状态解除时返回到全时钟频率。此机制旨在降低时钟树中消耗的功率而不明显地影响性能。

图1说明根据实施例的处理器100的微架构。为易于说明,不展示典型处理器微架构的所有组件。管线102从指令高速缓冲存储器104提取指令(例如加载指令或存储指令),能够存取数据高速缓冲存储器106以执行各种指令,且能够存取寄存器堆108中的寄存器。

存储器110表示芯片外存储器,其可包含系统存储器、比指令高速缓冲存储器104或数据高速缓冲存储器106更高级的高速缓冲存储器,或其任何组合。举例来说,存储器110可表示包含l2(2级)高速缓冲存储器的存储器阶层及可包含易失性及非易失性存储器两者的其它系统存储器组件。

实施例利用寄存器堆108中所展示的三个寄存器中的一或多者:寄存器112,称为经暴露加载寄存器112;寄存器114,称为未命中状态处置寄存器114(mshr114);及寄存器116,称为高速缓冲存储器未命中返回计数器116。实践中,可存在多于一个的mshr。因此,术语“mshr114”可用于指示多个未命中状态处置寄存器。状态机118能够存取寄存器112、114及116,且在输入端口122处接收高速缓冲存储器未命中信号及在输入端口124处接收数据返回信号。如以下将较详细地描述,视存储于状态机118中的状态、存储于寄存器112、114及116中的一或多者中的值及高速缓冲存储器未命中信号及数据返回信号而定,状态机118将时钟120设定为低频或高频。

因为处理器100可被视为状态机,所以如下文所描述的状态机118的状态也可被视为处理器100的可能的状态。

图2说明根据实施例的针对状态机118的状态转变图200。图2中说明四种状态:状态202、状态204、状态206及状态208。状态202、204及206也可分别称为hf0状态、hf1状态及hf2状态,且在图2中如此表示。此些状态标示中的“hf”为针对“高频”的助忆符,其中如进一步所描述,当状态机118处于状态hf0、hf1及hf2中的任一者时,在正常操作频率(即,相对较高频)下操作(或门控)处理器100。状态208也可称为lf状态,且在图2中如此表示。“lf”为针对“低频”的助忆符,其中如进一步所描述,当状态机118处于lf状态时,在小于正常操作频率的频率(即,相对较低频)下操作(或门控)处理器100。

图1中的时钟120可表示用于提供时钟信号的产生器,或用于门控处理器100以便在一或多个时钟频率下操作的电路。因此,当描述实施例时,提及将时钟120设定为某一频率应理解为也包含门控处理器100以使得可调整其操作频率的动作。

当状态机118处于状态202、204或206中的一者时,在高频下操作时钟120,而当状态机118处于状态208时,在低频下操作时钟120。起初,状态机100处于hf0状态,使得此状态也可称为初始状态。当检测到候选加载指令时,发生从状态202(hf0或初始状态)到状态204(hf1状态)的状态转变210。

候选加载指令为引发末级高速缓冲存储器未命中的加载指令,因此所述加载指令与因末级高速缓冲存储器未命中而造成分派停止运作的较早执行的加载指令无关。(分派停止运作有时称作高速缓冲存储器停止运作。)即,候选加载指令为当管线102中不存在其它未完成的引发末级高速缓冲存储器未命中的加载指令时引发末级高速缓冲存储器未命中的加载指令。“末级”高速缓冲存储器是指在由存储器110表示的存储器阶层中具有最高级的高速缓冲存储器。举例来说,存储器110中的末级高速缓冲存储器可为l2(2级)高速缓冲存储器。在一些实施例中,末级高速缓冲存储器可集成于处理器100中。稍后描述针对检测候选加载指令的不同实施例。

响应于检测到候选加载指令,管线102将加载指令id(标识符)存储在经暴露加载寄存器112的字段126中,且设定经暴露加载寄存器112的字段128以指示经暴露加载寄存器112的内容有效。字段128可称为有效字段,或有效位。针对检测到候选加载指令的此响应被指示于紧邻状态转变210的圆括号内。

响应于处理器100确定候选加载指令为尚未退除的最旧加载指令,发生从hf1状态到hf2状态的状态转变212。可通过存取加载队列130来确定最旧加载指令。然而,注意从hf1状态到hf0状态的状态转变211。当自从状态机118进入hf1状态以来的时钟循环的数目超出阈值(在图2中标示为n1)时,发生状态转变211。此外,如果输入端口124处的数据返回信号指示已从存储器110检索(由候选加载指令请求的)数据,或如果清空管线102,那么发生状态转变211。因此,如果自从状态机118从hf0状态转变到hf1状态已经过n1个处理器时钟循环,那么不发生状态转变212。换句话说,自从状态机118从hf0状态转变到hf1状态未经过n1个处理器时钟循环的条件为状态转变212的必要条件。

寄存器130(图1中称为counter_hf寄存器)可用于跟踪自从状态机118从hf0状态转变到hf1状态(即,当状态机118检测到候选加载指令时)以来的时钟循环的数目。counter_hf寄存器有时在状态机118进入hf1状态之前或之时初始化,且此后在每一处理器时钟循环上递增。

响应于处理器100检测到分派停止运作变量tstall已达到m1个连续时钟循环,发生从hf2状态到lf状态的状态转变214。在一个实施例中,分派停止运作变量tstall从候选加载指令成为最旧加载指令时开始计数,其中分派停止运作变量tstall以处理器时钟循环为单位。即,分派停止运作变量tstall在状态机118进入hf2状态之时或有时在其之前初始化,且此后针对每一处理器时钟循环递增,因此如果停止运作变量tstall达到m1,那么进入lf状态。tstall的值可存储于寄存器132中,其中(例如)状态机118在每一分派停止运作的开始处将寄存器132的值复位到零。

当进入lf状态时,状态机118将时钟120设定(或将处理器100门控)到低频,以便在无性能方面的明显损失的情况下达成功率节省。然而,注意从hf2状态到hf0状态的状态转变213,当自从状态机118进入hf2状态以来的时钟循环的数目超出阈值时发生所述状态转变,其在图2中标示为n2。整数n1不一定等于整数n2。此外,如果输入端口124处的数据返回信号指示已从存储器110检索(由候选加载指令请求的)数据,或如果清空管线102,那么发生状态转变213。

因此,仅当自从状态机118从hf1状态转变到hf2状态已经过n2个处理器时钟循环时才发生状态转变214。如前所述,寄存器130可用于计数自从状态机118从hf1状态转变到hf2状态以来的时钟循环的数目。

响应于存储器返回(其中来自存储器110的数据从加载指令的目标存储器位置返回)或当存在管线清空时,发生从lf状态到hf0状态的状态转变218。响应于状态转变218,字段128被清除以指示经暴露加载寄存器112的内容不再有效。

在另一实施例中,如通过针对状态转变216的虚线所指示,可跳过hf2状态。在此实施例中,不必如通过状态转变212所指示来确定候选加载指令为最旧加载指令。而是,响应于检测到分派停止运作变量tstall已达到m2个连续时钟循环(其中在此情况下,分派停止运作变量tstall在发生末级高速缓冲存储器未命中时(即,当状态机118进入hf1状态时)开始计数),状态机118从hf1状态直接转变到lf状态。整数m1不一定等于整数m2。但再次,状态转变216的必要条件为:自从状态机118从hf0状态转变到hf1状态以来的处理器时钟循环的数目不超过n1。

图3a、3b及3c说明针对检测到候选加载指令的三个实施例。参看图3a中所说明的实施例,如果加载指令引发末级高速缓冲存储器未命中(302),那么确定具有有效内容的mshr114的数目(304)。如果此些寄存器的数目为零,那么宣告所述加载指令为候选加载指令(306)。当软件过程开始时,可初始化mshr114以使得其所有内容无效。

在图3b中所说明的实施例中,在加载指令引发末级高速缓冲存储器未命中时,高速缓冲存储器未命中返回计数器116递增(308),且在来自针对引发末级高速缓冲存储器未命中的加载指令的目标存储器位置的数据返回时,高速缓冲存储器未命中返回计数器116递减(310),即,存在存储器返回。如在动作312中所指示,不论何时存在末级高速缓冲存储器未命中且确定高速缓冲存储器未命中返回计数器116为零,那么宣告引发所述末级高速缓冲存储器未命中的所述加载指令为候选加载指令。此举假定零为高速缓冲存储器未命中返回计数器116的初始值。

在图3c中所说明的实施例中,当加载指令引发如在动作314中所指示的末级高速缓冲存储器未命中时,那么处理器100在动作316中检查经暴露加载寄存器112。如果经暴露加载寄存器112的内容无效,那么如在动作318中所指示,宣告引发末级高速缓冲存储器未命中的加载指令为候选加载指令。

实施例可应用于数种装置中,例如(仅举几个实例)蜂窝式电话、膝上型计算机或计算机服务器,或具有因特网连接性的功率高效器具。图4说明可应用实施例的电子装置的实例,其中具有状态机118的处理器100借助于总线402耦合到存储器110。在图4的特定实例中,末级高速缓冲存储器为l2高速缓冲存储器404。调制解调器406也展示于图4中,其耦合到天线408以使得可实现无线连接到路由器、接入点或蜂窝式电话塔。用户接口410表示用户可与电子装置交互的一或多个装置,例如触敏式屏幕或键盘。

所属领域的技术人员将了解,可使用多种不同技术与技法中的任一者来表示信息及信号。举例来说,可通过电压、电流、电磁波、磁场或磁粒子、光场或光粒子或其任何组合来表示贯穿以上描述可能提及的数据、指令、命令、信息、信号、位、符号及码片。

此外,所属领域的技术人员将了解,结合本文所揭示的实施例而描述的各种说明性逻辑块、模块、电路及算法步骤可实施为电子硬件,或计算机软件与硬件的组合。为清晰说明硬件与软件的此可互换性,上文已大体在其功能性方面描述了各种说明性组件、块、模块、电路及步骤。将此功能性实施为硬件还是软件取决于特定应用及外加于整个系统上的设计约束。所属领域的技术人员可针对每一特定应用以变化的方式实施所描述的功能性,但不应将此些实施决策解释为导致脱离本发明的范围。

结合本文所揭示的实施例而描述的方法、序列及/或算法可实施为由处理器(应理解“处理器”可包含多个处理器或多个处理器核心)及电子电路执行的电子硬件或计算机软件与硬件的组合。用于实施实施例的部分的软件模块可驻留于ram存储器、快闪存储器、rom存储器、eprom存储器、eeprom存储器、寄存器、硬盘、可卸除式磁盘、cd-rom,或所属领域中已知的任何其它形式的存储媒体中。示范性存储媒体耦合到处理器,使得处理器可从存储媒体读取信息且将信息写入到存储媒体。在替代例中,存储媒体可与处理器成整体。

因此,本发明的实施例可包含一种体现用于在经暴露高速缓冲存储器停止运作时有效的时钟调整的方法的计算机可读媒体。因此,本发明不限于所说明的实例,且本发明的实施例中包含用于执行本文中所描述的功能性的任何装置。

虽然前述揭示内容展示本发明的说明性实施例,但应注意,可在不脱离如所附权利要求书所界定的本发明的范围的情况下在此作出各种改变及修改。无需以任何特定次序执行根据本文中所描述的本发明的实施例的权利要求方法项的功能、步骤及/或动作。此外,虽然可能以单数形式描述或主张本发明的元件,但除非明确陈述限于单数形式,否则也涵盖复数形式。

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