高速缓存控制的方法和装置的制作方法

文档序号:6360847阅读:165来源:国知局
专利名称:高速缓存控制的方法和装置的制作方法
技术领域
本发明涉及处理器,尤其涉及处理器中的高速缓冲存储器。2.
背景技术
高速缓冲存储器在计算机系统处理器的性能中占有突出的位置。随着处理器技术的进步和性能的需求的增加,高速缓冲存储器的数量和容量随之增加。一些处理器可以具有单一高速缓存或单级高速缓冲存储器,而其它处理器可以具有多级高速缓存。一些高速缓冲存储器可以用于存储数据,而其它高速缓冲存储器可以用于存储指令,而一些高速缓冲存储器可以存储数据和指令。用于存储其它类型的信息(例如,地址转换)的高速缓冲存储器也可以用于一些处理器中。 可以基于高速缓冲存储器与处理器核心的执行单元的接近度,以级数来定义高速缓冲存储器。例如,一级(LI)高速缓存可以是最接近于执行单元的高速缓存,二级(L2)高速缓存可以是第二个接近于执行单元的高速缓存,并且三级(L3)高速缓存可以是第三个接近于执行单元的高速缓存。当访问待执行指令的信息(例如,操作数)时,执行单元可以首先查询LI高速缓存。如果信息没有存储在LI高速缓存中(即,高速缓存缺失),那么可以查询L2高速缓存,依此类推。如果信息没有存储在任何高速缓存中,那么可以从例如主存储器的其它存储器或从磁盘存储器访问信息。由于与存储器和磁盘存储器访问相关联的等待时间比与高速缓存访问相关联的等待时间大得多,故高速缓冲存储器变得更大以容纳更多数据和/或指令。然而,这些更大的高速缓冲存储器可能比其更小的对应物消耗更多的功率。相应地,在处理器闲置时,一些处理器可以移除部分或所有的高速缓冲存储器的功率。
发明概要公开一种用于动态地控制高速缓存大小的方法和装置。在一个实施方案中,一种方法包括将处理器的工作点从第一工作点改变为第二工作点;以及响应于改变工作点响应而从高速缓冲存储器的一个或多个通道中选择性地移除功率。该方法进一步包括在从高速缓冲存储器的一个或多个通道中移除功率之后,处理处理器中的一个或多个指令,其中该处理包括访问未移除功率的高速缓冲存储器的一个或多个通道。在一个实施方案中,一种处理器包括至少一个执行单元、具有多个通道的高速缓冲存储器,以及功率管理单元。功率管理单元被配置来响应于处理器将工作点从第一工作点改变为第二工作点而从多个通道的第一子集中选择性地移除功率。至少一个执行单元被配置来在从多个通道的第一子集中选择性地移除功率之后,访问未移除功率的多个通道的第二子集的一个或多个通道。在另一个实施方案中,一种方法包括为执行指令的处理器确定CIPS (每秒提交指令)值、计算阈值与保护频带值的总和,以及比较CIPS值与阈值和总和。该方法进一步包括如果CIPS值小于阈值,那么从高速缓冲存储器的多个通道的子集中选择性地移除功率;如果CIPS值大于总和,那么启动高速缓冲存储器的任何先前断电的通道,以使得启动多个通道中的每个。如果CIPS值大于阈值或小于总和,那么不启动或关闭高速缓冲存储器的额外通道。一种用于动态地控制高速缓存大小的方法的另一个实施方案包括将处理器的性能状态从第一性能状态改变为第二性能状态,其中第一性能状态包括以第一电压和第一时钟频率操作处理器核心。第二性能状态包括以小于第一电压的第二电压和小于第一时钟频率的第二时钟频率操作核心。该方法进一步包括响应于改变性能状态而从高速缓冲存储器的一个或多个通道中选择性地移除功率;以及在从高速缓冲存储器的一个或多个通道中移除功率之后,处理处理器核心中的一个或多个指令,其中该处理包括核心访问未移除功率的高速缓冲存储器的一个或多个通道。附图简述在阅读以下详细描述和参考附图后,本发明的其它方面将变得明显,附图中
图I为处理器的一个实施方案的框图;图2为处理器的另一个实施方案的框图;图3为示出与高速缓冲存储器的实施方案耦合的功率管理单元的一个实施方案的框图;图4为功率管理单元的一个实施方案的框图;图5为示出处理器的不同工作点的高速缓冲存储器的动态控制的一系列框图;图6为动态高速缓存控制的方法的一个实施方案的流程图;图7为动态高速缓存控制的方法的另一个实施方案的流程图;图8为多核心处理器的一个实施方案的框图;图9为计算机系统的一个实施方案的框图;以及

图10为载体介质的一个实施方案的框图。尽管本发明易具有各种修改和替代形式,但是在附图中以实例示出并且在本文中将详细地描述本发明的特定实施方案。然而,应理解,附图及其描述并不试图将本发明局限于所公开的特定形式,而相反地,本发明将覆盖属于由随附权利要求书界定的本发明的精神和范围内的所有修改、等效物和替代。
具体实施例方式处理器实施方案的概沭=图I为处理器100的一个实施方案的框图。处理器100被配置来执行存储在系统存储器200中的指令。这些指令中的许多指令对存储在系统存储器200中的数据进行操作。应注意,系统存储器200可以物理地分布在计算机系统中和/或可以被一个或多个处理器100访问。在所示实施方案中,处理器100可以包括一级(LI)指令高速缓存106和LI数据高速缓存128。处理器100可以包括与指令高速缓存106耦合的预取单元108。分派单元104可以被配置来从指令高速缓存106接收指令以及将操作分派到调度器118。调度器118中的一个或多个可以被耦合以接收从分派单元104分派的操作以及向一个或多个执行单元124发布操作。执行单元124可以包括一个或多个整数单元、一个或多个浮点单元和一个或多个负载/存储单元。由执行单元124产生的结果可以被输出到一个或多个结果总线130(虽然多个结果总线是可能和涵盖的,但是为了清楚起见,这里示出单一的结果总线)。这些结果可以用作操作数值以随后发布指令和/或被存储到寄存器文件116。回退队列102可以被耦合到调度器118和分派单元104。回退队列102可以被配置来确定何时可以回退每个发布的操作。在一个实施方案中,处理器100可以被设计成与x86架构(也称为英特尔架构-32或IA-32)兼容。在另一个实施方案中,处理器100可以与64位架构兼容。也涵盖与其它架构兼容的处理器100的实施方案。应注意,处理器100也可以包括许多其它部件。例如,处理器100可以包括被配置来在执行指令线程时预测分支的分支预测单元(未示出)。处理器100也可以包括被配置来控制关于存储器200的读写的存储控制器。指令高速缓存106可以存储由分派单元104获取的指令。可以将指令代码提供给 指令高速缓存106,以通过预取单元108从系统存储器200预取代码进行存储。指令高速缓存106可以在各种配置(例如,设置关联、完全关联或直接映射)中实施。处理器100也可以包括二级(L2)高速缓存140。然而,指令高速缓存106可以用于存储指令,并且数据高速缓存128可以用于存储数据(例如,操作数),L2高速缓存140可以统一用于存储指令和数据。尽管这里没有明确示出,但是一些实施方案也可以包括三级(L3)高速缓存。一般来说,在不同实施方案中高速缓存的级数可以不同。预取单元108可以从存储在指令高速缓存106内的系统存储器200预取指令代码以存储。预取单元108可以使用各种特定的代码预取技术和算法。分派单元104可以输出可由执行单元124执行的操作以及操作数地址信息、直接数据和/或位移数据。在一些实施方案中,分派单元104可以包括用于将某些指令解码成可由执行单元124内执行的操作的解码电路(未示出)。简单的指令可以对应于单一的操作。在一些实施方案中,更复杂的指令可以对应于多个操作。在解码涉及更新寄存器的操作后,可以保留寄存器文件116内的寄存器位置以存储推测性的寄存器状态(在替代实施方案中,重排序缓冲器可以用于存储每个寄存器的一个或多个推测性的寄存器状态,并且寄存器文件116可以存储每个寄存器的提交的寄存器状态)。寄存器映射134可以将源操作数和目的操作数的逻辑寄存器名称转换为物理寄存器数量以促进寄存器重命名。寄存器映射134可以追踪目前分配和未分配寄存器文件116内的哪些寄存器。图I的处理器100可以支持乱序执行。回退队列102可以追踪寄存器读写操作的原始程序序列、允许推测性的指令执行和分支错误预测恢复,以及促进精确的异常。在一些实施方案中,回退队列102也可以通过为推测性的寄存器状态提供数据值存储而支持寄存器重命名(例如,类似于重排序缓冲器)。在其它实施方案中,回退队列102可以类似地用作重排序缓冲器,但是不可以提供任何数据值存储。当回退操作时,回退队列102可以解除分配寄存器文件116中的寄存器,不再需要这些寄存器来存储推测性的寄存器状态,以及向寄存器映射134提供指示哪些寄存器目前空闲的信号。通过在寄存器文件116内(或在替代实施方案中,在重排序缓冲器内)维持推测性的寄存器状态直到验证产生那些状态的操作,如果分支预测是错误的,那么可以在寄存器文件116中使沿着错误预测的路径的推测执行操作的结果无效。
在一个实施方案中,寄存器文件116的给定寄存器可以被配置来存储执行指令的数据结果,并且也可以存储可以由该执行指令更新的一个或多个标记位。标记位可以传递各种类型的信息,这些信息在执行后续指令(例如,指示进位或溢出情况由于加法或乘法运算而存在)时是重要的。架构上,可以定义存储标记的标记寄存器。因此,对给定寄存器的写入可以更新逻辑寄存器和标记寄存器。应注意,并非所有的指令均可以更新一个或多个
己 O寄存器映射134可以将物理寄存器指派给特定逻辑寄存器(例如,架构寄存器或微架构指定寄存器),该特定逻辑寄存器被指定为用于操作的目的操作数。分派单元104可以确定寄存器文件116具有先前分配的物理寄存器,其被指派给指定为给定操作中的源操作数的逻辑寄存器。寄存器映射134可以为最近被指派给该逻辑寄存器的物理寄存器提供标签。该标签可以用于访问寄存器文件116中的操作数的数据值,或用于通过在结果总线 130上转发的结果接收数据值。如果操作数对应于存储器位置,那么可以通过负载/存储单元(未示出)在结果总线上提供操作数值(用于在寄存器文件116中的结果转发和/或存储)。在调度器118中的一个发布操作时,可以向执行单元124提供操作数数据值。应注意,在替代实施方案中,在分派操作时,可以向相应的调度器118提供操作数值(而不是在发布操作时,向相应的执行单元124提供操作数值)。如本文中所用,调度器是一种检测何时操作准备执行并且向一个或多个执行单元发布准备操作的设备。例如,保留站可以是一种类型的调度器。可以向每一个执行单元提供独立的保留站,或可以提供发布操作的中央保留站。在其它实施方案中,可以使用保持操作直到回退为止的中央调度器。每个调度器118能够为等待向执行单元124发布的几个未决定的操作保存操作信息(例如,操作以及操作数值、操作数标签和/或直接数据)。在一些实施方案中,每个调度器118可以不提供操作数值存储。代替地,每个调度器可以监视可用于寄存器文件116中的已发布的操作和结果,以确定何时操作数值将可用于由执行单元124 (从寄存器文件116或结果总线130)读取。在一些实施方案中,可以在操作期间通过选择性地对某些高速缓存通道断电或加电而动态地调整本文所示的高速缓存中的一个或多个的大小。甚至在给定的高速缓存的一些通道已被断电后,处理器可以继续在活动状态中操作。在一个或多个执行单元124执行指令期间,剩余的高速缓存通道(即,仍提供功率的那些高速缓存通道)可以被访问。因此,在仍允许处理器100保持在活动状态时可以对一些高速缓存通道断电,而不是仅在处理器100闲置时对高速缓存通道断电。这可以进而在允许处理器继续活动时减少功率消耗。现将从图2开始进一步详细地论述处理器100的各种实施方案和用于动态地控制高速缓存大小以节省功率的方法。图2为处理器的另一个实施方案的框图。图I中还包括的特定单元在这里被指定为相同,并且可以执行图2的实施方案中的相同或类似功能。在所示实施方案中,处理器100除包括上述各种单元之外,还包括功率管理单元150、性能状态/模式控制器135(以下称“状态控制器135”)和存储控制器145。时钟控制电路136和可调电压调节器137被示出为与所示实施方案中的处理器100耦合,尽管在芯片上(即,在作为处理器100的同一集成电路晶片上)实施这些单元的实施方案是可能的和涵盖的。例如,可以将时钟控制和电压调节/控制的功能实施到状态控制器135中。
在所示实施方案中,处理器100包括耦合至L2高速缓存140的功率管理单元,通过选择性地控制在给定时间启动哪些通道来动态地控制L2高速缓存140的大小。在执行单元124的工作负荷减少时,可以对L2高速缓存140的选定通道断电。类似地,当许多高速缓存通道被断电时,如果执行单元124的工作负荷增加,那么可以加电L2高速缓存140的选定通道。LI高速缓存类似地可控制的实施方案也是可能的和涵盖的,且在下文将进一步详细地论述实例。功率管理单元150可以使用许多各种度量中的一个或多个,以确定是否对L2高速缓存140的某些通道断电。处理器的工作点可以由度量中的至少一个来定义,并且可以由度量的组合来定义。在图2的实施方案中,处理器100被配置来在各种性能状态(“P状态”)中进行操作,每个性能状态可以由特定工作电压和特定工作频率来定义。处理器100可以进一步被配置来在省电模式(其中重点将放在节省功率,例如,在操作电池功率时)和性能模式(其中重点将放在最大化性能)中操作。以下表I说明可以为各种P状态和操作模式的组合承担的各种高速缓存设定大小行动。
权利要求
1.一种方法,其包括 响应于处理器已从第一工作点改变为第二工作点而选择性地改变高速缓冲存储器的一个或多个通道的功率;以及 在改变所述高速缓冲存储器的所述一个或多个通道的功率之后,处理所述处理器中的一个或多个指令,其中所述处理包括访问已被改变功率的所述高速缓冲存储器的一个或多个通道。
2.如权利要求I所述的方法,其中改变一个或多个高速缓存通道的功率包括从所述一个或多个高速缓存通道中移除功率。
3.如权利要求I所述的方法,其中改变所述工作点包括改变所述处理器操作的工作电压和时钟频率。
4.如权利要求I所述的方法,其中改变所述工作点包括从高性能操作模式改变为省电模式。
5.如权利要求I所述的方法,其进一步包括响应于改变所述工作点而从所述高速缓冲存储器的多个当前活动通道中的一半移除功率。
6.如权利要求I所述的方法,其进一步包括 将所述处理器的所述工作点从所述第二工作点改变为第三工作点;以及 响应于改变所述工作而从高速缓冲存储器的一个或多个额外通道中选择性地移除功率。
7.如权利要求6所述的方法,其进一步包括 将处理器的所述工作点从所述第三工作点改变为所述第一工作点或所述第二工作点中的一个;以及 在将所述工作点从所述第一工作点改变为所述第二工作点或从所述第二工作点改变为所述第三工作点时,将功率选择性地应用于已被移除功率的一个或多个通道。
8.如权利要求5所述的方法,其进一步包括 将所述处理器的所述工作点从所述第二工作点改变为第三工作点; 读取CIPS (每秒提交指令)值; 计算阈值与保护频带值的总和; 比较所述CIPS值与所述阈值和所述总和; 如果所述CIPS值小于所述阈值,那么响应于改变为所述第三工作点而从高速缓冲存储器的一个或多个额外通道中选择性地移除功率;以及 如果所述CIPS值大于所述总和,那么启动所述高速缓冲存储器的所有通道; 其中如果所述CIPS值大于所述阈值并且小于所述总和,那么不启动或关闭所述高速缓冲存储器的额外通道。
9.如权利要求I所述的方法,其进一步包括将指示所述高速缓冲存储器的一个或多个通道已被断电的通知发送到一个或多个额外处理器。
10.如权利要求I所述的方法,其进一步包括 确定由于从所述高速缓冲存储器的一个或多个通道中选择性地移除功率而消逝的时间量; 比较所述时间量与第一时间阈值;以及如果所述时间量小于所述第一时间阈值,那么阻止对所述高速缓冲存储器的额外通道断电。
11.如权利要求10所述的方法,其进一步包括 比较所述时间量与第二时间阈值;以及 如果所述第二时间量小于所述第二时间阈值,那么阻止对所述高速缓冲存储器的额外通道加电。
12.一种处理器,其包括 功率管理单元,其被配置来响应于至少一个执行单元将工作点从第一工作点改变为第二工作点而选择性地改变高速缓冲存储器的多个通道的第一子集的功率;以及 其中所述处理器的所述至少一个执行单元被配置来在选择性地改变所述多个通道的所述第一子集的功率之后,访问被改变功率的所述多个通道的第二子集的一个或多个通道。
13.如权利要求12所述的处理器,其中改变通道的所述第一子集的功率包括从通道的所述第一子集中移除功率。
14.如权利要求12所述的处理器,其中所述功率管理单元被进一步配置来通过使所述处理器工作的工作电压和时钟频率发生改变,改变所述处理器的所述工作点。
15.如权利要求12所述的处理器,其中所述处理器被配置来在高性能模式和省电模式下工作,其中改变所述工作点包括从高性能操作模式改变为省电模式。
16.如权利要求12所述的处理器,其中所述功率管理单元被配置来响应于改变所述工作点响应而对所述高速缓冲存储器的多个活动通道中的一半断电。
17.如权利要求12所述的处理器,其中所述功率管理单元被进一步配置来响应于所述处理器将所述工作点从所述第二工作点改变为第三工作点而从高速缓冲存储器的一个或多个额外通道中选择性地移除功率。
18.如权利要求17所述的处理器,其中所述功率管理单元被配置来响应于将所述处理器的所述工作点从所述第三工作点改变为所述第一工作点或所述第二工作点中的一个而将功率选择性地应用于先前被移除功率的一个或多个通道。
19.如权利要求12所述的处理器,其中所述功率管理单元被进一步配置来将指示所述高速缓冲存储器的一个或多个通道已被断电的通知发送到一个或多个额外处理器。
20.一种方法,其包括 计算第一阈值与第二阈值的总和; 比较工作负荷指示值与所述第一阈值和所述第二阈值; 如果处理器的工作负荷指示值小于第一阈值,那么从高速缓冲存储器的多个通道的子集中选择性地移除功率;以及 如果所述工作负荷指示值大于第二阈值,那么启动所述高速缓冲存储器的任何先前断电的通道; 其中如果所述工作负荷指示值大于所述第一阈值并且小于所述第二阈值,那么改变所述高速缓冲存储器的通道的功率。
21.如权利要求20所述的方法,其进一步包括为包括所述高速缓冲存储器的处理器确定所述工作负荷指示值。
22.如权利要求20所述的方法,其中所述第二阈值为所述第一阈值与保护频带值的总和。
23.如权利要求20所述的方法,其中所述工作负荷指示值为CIPS(每秒提交指令)值。
24.如权利要求20所述的方法,其进一步包括 确定由于从所述高速缓冲存储器的一个或多个通道中选择性地移除功率而消逝的时间量; 比较所述时间量与第一时间阈值;以及 如果所述时间量小于所述第一时间阈值,那么阻止对所述高速缓冲存储器的额外通道断电。
25.如权利要求20所述的方法,其进一步包括 如果对通道的第一子集断电,那么将第一通知发送到一个或多个额外处理器,所述第一通知指示通道的所述第一子集断电;以及响应于加电所述高速缓冲存储器的任何先前断电的通道而将第二通知发送到所述一个或多个额外处理器,所述第二通知指示已加电所述高速缓冲存储器的所述先前断电的通道。
26.—种方法,其包括 将处理器的性能状态从第一性能状态改变为第二性能状态,其中所述第一性能状态包括以第一电压和第一时钟频率操作所述处理器的核心,并且其中所述第二性能状态包括以小于所述第一电压的第二电压和小于所述第一时钟频率的第二时钟频率操作所述核心;响应于改变所述性能状态而从高速缓冲存储器的一个或多个通道中选择性地移除功率;以及 在从所述高速缓冲存储器的所述一个或多个通道中移除功率之后,处理所述处理器的所述核心中的一个或多个指令,其中所述处理包括所述核心访问未移除功率的所述高速缓冲存储器的一个或多个通道。
27.如权利要求26所述的方法,其进一步包括 将所述处理器的所述性能状态从所述第二性能状态改变为第三性能状态,其中所述第三性能状态包括以第三电压和第三时钟频率操作所述核心,所述第三电压小于所述第二电压,并且所述第三时钟频率小于所述第二时钟频率; 响应于从所述第二性能状态改变为所述第三性能状态而从所述高速缓冲存储器的一个或多个额外通道中选择性地移除功率;以及 在从所述一个或多个额外通道中移除功率之后,处理所述处理器的所述核心中的一个或多个指令,其中所述处理包括所述核心访问未移除功率的所述高速缓冲存储器的一个或多个通道。
28.如权利要求27所述的方法,其进一步包括 将所述处理器的所述性能状态从所述第三性能状态改变为所述第一性能状态或所述第二性能状态中的一个;以及 选择性地加电先前断电的所述高速缓存通道中的一个或多个。
29.如权利要求26所述的方法,其进一步包括比较由于从所述高速缓存通道中的所述一个或多个中选择性地移除的功率产生的时间量与第一驻留要求和第二驻留要求,其中所述方法进一步包括如果所述时间量小于所述第一驻留要求,那么阻止对任何额外的高速缓存通道断电;以及如果所述时间量小于所述第二驻留要求,那么阻止加电任何额外的高速缓存通道。
30.一种包括数据结构的计算机可读介质,所述数据结构由可在计算机系统上执行的程序来操作,所述程序对所述数据结构操作以执行制造集成电路的过程的一部分,所述集成电路包括由所述数据结构描述的电路,所述数据结构中描述的所述电路包括 功率管理单元,其被配置来响应于至少一个执行单元将工作点从第一工作点改变为第二工作点而选择性地改变高速缓冲存储器的多个通道的第一子集的功率;以及 其中所述至少一个执行单元被配置来在选择性地改变所述多个通道的所述第一子集的功率之后,访问已被改变功率的所述多个通道的第二子集的一个或多个通道。
31.如权利要求25所述的计算机可读介质,其中所述数据结构包括以下类型的数据中的一种或多种 HDL (高级设计语言)数据; RTL (寄存器传输级)数据; 图形数据系统(⑶S) II数据。
全文摘要
公开一种动态地控制高速缓存大小的方法和装置。在一个实施方案中,一种方法包括将处理器的工作点从第一工作点改变为第二工作点;以及响应于改变所述工作点而从高速缓冲存储器的一个或多个通道中选择性地移除功率。所述方法进一步包括在从高速缓冲存储器的一个或多个通道中移除功率之后,处理处理器中的一个或多个指令,其中所述处理包括访问未移除功率的高速缓冲存储器的一个或多个通道。
文档编号G06F12/08GK102934046SQ201180028667
公开日2013年2月13日 申请日期2011年5月10日 优先权日2010年5月11日
发明者亚历山大·布兰欧威, 诺曼·M·哈克, 莫里塞·B·斯泰曼, 约翰·卡拉马丁纳斯, 乔纳森·M·欧文 申请人:超威半导体公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1