CN102934046B - 高速缓存控制的方法和装置 - Google Patents
高速缓存控制的方法和装置 Download PDFInfo
- Publication number
- CN102934046B CN102934046B CN201180028667.7A CN201180028667A CN102934046B CN 102934046 B CN102934046 B CN 102934046B CN 201180028667 A CN201180028667 A CN 201180028667A CN 102934046 B CN102934046 B CN 102934046B
- Authority
- CN
- China
- Prior art keywords
- value
- cache memory
- processor
- power
- cips
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 105
- 230000015654 memory Effects 0.000 claims abstract description 90
- 230000008569 process Effects 0.000 claims abstract description 56
- 230000004044 response Effects 0.000 claims abstract description 21
- 230000008859 change Effects 0.000 claims description 29
- 238000012545 processing Methods 0.000 claims description 16
- 230000009471 action Effects 0.000 description 46
- 238000003860 storage Methods 0.000 description 44
- 238000010586 diagram Methods 0.000 description 17
- 239000002609 medium Substances 0.000 description 14
- 230000000694 effects Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 7
- 238000009826 distribution Methods 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 6
- 230000001427 coherent effect Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 230000008878 coupling Effects 0.000 description 5
- 238000010168 coupling process Methods 0.000 description 5
- 238000005859 coupling reaction Methods 0.000 description 5
- 238000013507 mapping Methods 0.000 description 5
- 230000009466 transformation Effects 0.000 description 4
- 230000015572 biosynthetic process Effects 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- GOLXNESZZPUPJE-UHFFFAOYSA-N spiromesifen Chemical compound CC1=CC(C)=CC(C)=C1C(C(O1)=O)=C(OC(=O)CC(C)(C)C)C11CCCC1 GOLXNESZZPUPJE-UHFFFAOYSA-N 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000002372 labelling Methods 0.000 description 2
- 239000003550 marker Substances 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000000750 progressive effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000003786 synthesis reaction Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000003213 activating effect Effects 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 230000003542 behavioural effect Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 238000005315 distribution function Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 238000011010 flushing procedure Methods 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000012120 mounting media Substances 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000002829 reductive effect Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 239000000523 sample Substances 0.000 description 1
- 238000005728 strengthening Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/325—Power saving in peripheral device
- G06F1/3275—Power saving in memory, e.g. RAM, cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/324—Power saving characterised by the action undertaken by lowering clock frequency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3296—Power saving characterised by the action undertaken by lowering the supply or operating voltage
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0864—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1028—Power efficiency
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
公开一种动态地控制高速缓存大小的方法和装置。在一个实施方案中,一种方法包括将处理器的工作点从第一工作点改变为第二工作点;以及响应于改变所述工作点而从高速缓冲存储器的一个或多个通道中选择性地移除功率。所述方法进一步包括在从高速缓冲存储器的一个或多个通道中移除功率之后,处理器中的一个或多个指令,其中所述处理包括访问未移除功率的高速缓冲存储器的一个或多个通道。
Description
背景
1.技术领域
本发明涉及处理器,尤其涉及处理器中的高速缓冲存储器。
2.发明背景
高速缓冲存储器在计算机系统处理器的性能中占有突出的位置。随着处理器技术的进步和性能的需求的增加,高速缓冲存储器的数量和容量随之增加。一些处理器可以具有单一高速缓存或单级高速缓冲存储器,而其它处理器可以具有多级高速缓存。一些高速缓冲存储器可以用于存储数据,而其它高速缓冲存储器可以用于存储指令,而一些高速缓冲存储器可以存储数据和指令。用于存储其它类型的信息(例如,地址转换)的高速缓冲存储器也可以用于一些处理器中。
可以基于高速缓冲存储器与处理器核心的执行单元的接近度,以级数来定义高速缓冲存储器。例如,一级(L1)高速缓存可以是最接近于执行单元的高速缓存,二级(L2)高速缓存可以是第二个接近于执行单元的高速缓存,并且三级(L3)高速缓存可以是第三个接近于执行单元的高速缓存。当访问待执行指令的信息(例如,操作数)时,执行单元可以首先查询L1高速缓存。如果信息没有存储在L1高速缓存中(即,高速缓存缺失),那么可以查询L2高速缓存,依此类推。如果信息没有存储在任何高速缓存中,那么可以从例如主存储器的其它存储器或从磁盘存储器访问信息。由于与存储器和磁盘存储器访问相关联的等待时间比与高速缓存访问相关联的等待时间大得多,故高速缓冲存储器变得更大以容纳更多数据和/或指令。然而,这些更大的高速缓冲存储器可能比其更小的对应物消耗更多的功率。相应地,在处理器闲置时,一些处理器可以移除部分或所有的高速缓冲存储器的功率。
发明概要
公开一种用于动态地控制高速缓存大小的方法和装置。在一个实施方案中,一种方法包括将处理器的工作点从第一工作点改变为第二工作点;以及响应于改变工作点响应而从高速缓冲存储器的一个或多个通道中选择性地移除功率。该方法进一步包括在从高速缓冲存储器的一个或多个通道中移除功率之后,处理处理器中的一个或多个指令,其中该处理包括访问未移除功率的高速缓冲存储器的一个或多个通道。
在一个实施方案中,一种处理器包括至少一个执行单元、具有多个通道的高速缓冲存储器,以及功率管理单元。功率管理单元被配置来响应于处理器将工作点从第一工作点改变为第二工作点而从多个通道的第一子集中选择性地移除功率。至少一个执行单元被配置来在从多个通道的第一子集中选择性地移除功率之后,访问未移除功率的多个通道的第二子集的一个或多个通道。
在另一个实施方案中,一种方法包括为执行指令的处理器确定CIPS(每秒提交指令)值、计算阈值与保护频带值的总和,以及比较CIPS值与阈值和总和。该方法进一步包括如果CIPS值小于阈值,那么从高速缓冲存储器的多个通道的子集中选择性地移除功率;如果CIPS值大于总和,那么启动高速缓冲存储器的任何先前断电的通道,以使得启动多个通道中的每个。如果CIPS值大于阈值或小于总和,那么不启动或关闭高速缓冲存储器的额外通道。
一种用于动态地控制高速缓存大小的方法的另一个实施方案包括将处理器的性能状态从第一性能状态改变为第二性能状态,其中第一性能状态包括以第一电压和第一时钟频率操作处理器核心。第二性能状态包括以小于第一电压的第二电压和小于第一时钟频率的第二时钟频率操作核心。该方法进一步包括响应于改变性能状态而从高速缓冲存储器的一个或多个通道中选择性地移除功率;以及在从高速缓冲存储器的一个或多个通道中移除功率之后,处理处理器核心中的一个或多个指令,其中该处理包括核心访问未移除功率的高速缓冲存储器的一个或多个通道。
附图简述
在阅读以下详细描述和参考附图后,本发明的其它方面将变得明显,附图中:
图1为处理器的一个实施方案的框图;
图2为处理器的另一个实施方案的框图;
图3为示出与高速缓冲存储器的实施方案耦合的功率管理单元的一个实施方案的框图;
图4为功率管理单元的一个实施方案的框图;
图5为示出处理器的不同工作点的高速缓冲存储器的动态控制的一系列框图;
图6为动态高速缓存控制的方法的一个实施方案的流程图;
图7为动态高速缓存控制的方法的另一个实施方案的流程图;
图8为多核心处理器的一个实施方案的框图;
图9为计算机系统的一个实施方案的框图;以及
图10为载体介质的一个实施方案的框图。
尽管本发明易具有各种修改和替代形式,但是在附图中以实例示出并且在本文中将详细地描述本发明的特定实施方案。然而,应理解,附图及其描述并不试图将本发明局限于所公开的特定形式,而相反地,本发明将覆盖属于由随附权利要求书界定的本发明的精神和范围内的所有修改、等效物和替代。
具体实施方式
处理器实施方案的概述:
图1为处理器100的一个实施方案的框图。处理器100被配置来执行存储在系统存储器200中的指令。这些指令中的许多指令对存储在系统存储器200中的数据进行操作。应注意,系统存储器200可以物理地分布在计算机系统中和/或可以被一个或多个处理器100访问。
在所示实施方案中,处理器100可以包括一级(L1)指令高速缓存106和L1数据高速缓存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内的哪些寄存器。
图1的处理器100可以支持乱序执行。回退队列102可以追踪寄存器读写操作的原始程序序列、允许推测性的指令执行和分支错误预测恢复,以及促进精确的异常。在一些实施方案中,回退队列102也可以通过为推测性的寄存器状态提供数据值存储而支持寄存器重命名(例如,类似于重排序缓冲器)。在其它实施方案中,回退队列102可以类似地用作重排序缓冲器,但是不可以提供任何数据值存储。当回退操作时,回退队列102可以解除分配寄存器文件116中的寄存器,不再需要这些寄存器来存储推测性的寄存器状态,以及向寄存器映射134提供指示哪些寄存器目前空闲的信号。通过在寄存器文件116内(或在替代实施方案中,在重排序缓冲器内)维持推测性的寄存器状态直到验证产生那些状态的操作,如果分支预测是错误的,那么可以在寄存器文件116中使沿着错误预测的路径的推测执行操作的结果无效。
在一个实施方案中,寄存器文件116的给定寄存器可以被配置来存储执行指令的数据结果,并且也可以存储可以由该执行指令更新的一个或多个标记位。标记位可以传递各种类型的信息,这些信息在执行后续指令(例如,指示进位或溢出情况由于加法或乘法运算而存在)时是重要的。架构上,可以定义存储标记的标记寄存器。因此,对给定寄存器的写入可以更新逻辑寄存器和标记寄存器。应注意,并非所有的指令均可以更新一个或多个标记。
寄存器映射134可以将物理寄存器指派给特定逻辑寄存器(例如,架构寄存器或微架构指定寄存器),该特定逻辑寄存器被指定为用于操作的目的操作数。分派单元104可以确定寄存器文件116具有先前分配的物理寄存器,其被指派给指定为给定操作中的源操作数的逻辑寄存器。寄存器映射134可以为最近被指派给该逻辑寄存器的物理寄存器提供标签。该标签可以用于访问寄存器文件116中的操作数的数据值,或用于通过在结果总线130上转发的结果接收数据值。如果操作数对应于存储器位置,那么可以通过负载/存储单元(未示出)在结果总线上提供操作数值(用于在寄存器文件116中的结果转发和/或存储)。在调度器118中的一个发布操作时,可以向执行单元124提供操作数数据值。应注意,在替代实施方案中,在分派操作时,可以向相应的调度器118提供操作数值(而不是在发布操作时,向相应的执行单元124提供操作数值)。
如本文中所用,调度器是一种检测何时操作准备执行并且向一个或多个执行单元发布准备操作的设备。例如,保留站可以是一种类型的调度器。可以向每一个执行单元提供独立的保留站,或可以提供发布操作的中央保留站。在其它实施方案中,可以使用保持操作直到回退为止的中央调度器。每个调度器118能够为等待向执行单元124发布的几个未决定的操作保存操作信息(例如,操作以及操作数值、操作数标签和/或直接数据)。在一些实施方案中,每个调度器118可以不提供操作数值存储。代替地,每个调度器可以监视可用于寄存器文件116中的已发布的操作和结果,以确定何时操作数值将可用于由执行单元124(从寄存器文件116或结果总线130)读取。
在一些实施方案中,可以在操作期间通过选择性地对某些高速缓存通道断电或加电而动态地调整本文所示的高速缓存中的一个或多个的大小。甚至在给定的高速缓存的一些通道已被断电后,处理器可以继续在活动状态中操作。在一个或多个执行单元124执行指令期间,剩余的高速缓存通道(即,仍提供功率的那些高速缓存通道)可以被访问。因此,在仍允许处理器100保持在活动状态时可以对一些高速缓存通道断电,而不是仅在处理器100闲置时对高速缓存通道断电。这可以进而在允许处理器继续活动时减少功率消耗。现将从图2开始进一步详细地论述处理器100的各种实施方案和用于动态地控制高速缓存大小以节省功率的方法。
图2为处理器的另一个实施方案的框图。图1中还包括的特定单元在这里被指定为相同,并且可以执行图2的实施方案中的相同或类似功能。在所示实施方案中,处理器100除包括上述各种单元之外,还包括功率管理单元150、性能状态/模式控制器135(以下称“状态控制器135”)和存储控制器145。时钟控制电路136和可调电压调节器137被示出为与所示实施方案中的处理器100耦合,尽管在芯片上(即,在作为处理器100的同一集成电路晶片上)实施这些单元的实施方案是可能的和涵盖的。例如,可以将时钟控制和电压调节/控制的功能实施到状态控制器135中。
在所示实施方案中,处理器100包括耦合至L2高速缓存140的功率管理单元,通过选择性地控制在给定时间启动哪些通道来动态地控制L2高速缓存140的大小。在执行单元124的工作负荷减少时,可以对L2高速缓存140的选定通道断电。类似地,当许多高速缓存通道被断电时,如果执行单元124的工作负荷增加,那么可以加电L2高速缓存140的选定通道。L1高速缓存类似地可控制的实施方案也是可能的和涵盖的,且在下文将进一步详细地论述实例。
功率管理单元150可以使用许多各种度量中的一个或多个,以确定是否对L2高速缓存140的某些通道断电。处理器的工作点可以由度量中的至少一个来定义,并且可以由度量的组合来定义。在图2的实施方案中,处理器100被配置来在各种性能状态(“P状态”)中进行操作,每个性能状态可以由特定工作电压和特定工作频率来定义。处理器100可以进一步被配置来在省电模式(其中重点将放在节省功率,例如,在操作电池功率时)和性能模式(其中重点将放在最大化性能)中操作。以下表1说明可以为各种P状态和操作模式的组合承担的各种高速缓存设定大小行动。
表1
表1可以应用于上述处理器100的实施方案,以及处理器的其它实施方案。此外,上述表1所示的特定方案不同的其它处理器实施方案是可能和涵盖的。在该特定实施方式中,当在P0状态和P1状态(其包括两个最高的工作电压和两个最高的时钟频率)中操作时,可以打开L2高速缓存140的所有通道,而不管处理器100是在省电模式还是在性能模式中操作。当在P2状态中操作时,如果在性能模式中操作,那么可以打开所有高速缓存通道;而如果在省电模式中操作,那么可以关闭1/2数量的高速缓存通道。保持打开的高速缓存通道可以由执行单元124访问,以用于检索存储在其中的数据和/或指令。当处理器100在P3状态中操作时,如果在省电模式中,可以继续启动1/4缓存通道,而在性能模式中可以启动1/2高速缓存通道。在P4状态和P5状态中,如果在性能模式中操作,那么可以启动1/4高速缓存通道。当在省电模式中操作时,如果在P4状态中,可以启动1/4高速缓存通道,而在P5状态中时,可以对高速缓存完全断电。
上述在表1中所示的信息可以存储在功率管理单元150中的存储结构中。状态控制器135可以向功率管理单元150提供指示处理器100的特定工作点的信息,这些信息可以包括关于P状态、性能模式、两者的信息,和/或其它信息。功率管理单元150也被耦合以从回退队列102接收关于待回退或已被回退的指令的信息。功率管理单元150可以使用从状态控制器135和/或回退队列102接收的信息,以确定采取什么高速缓存设定大小行动(如果有的话)。在其它实施方案中,功率管理单元150可以并入上述其它单元的功能,并且因此能够生成关于工作点和回退指令的信息,而不是从外部来源接收信息。
所示实施方案中的状态控制器135被配置来执行控制行动以控制处理器100的工作点。由状态控制器135从回退队列102和/或执行单元124以及其它地方接收的信息可以用于确定处理器100的工作负荷。例如,状态控制器135可以追踪在给定的时间间隔内回退的指令的数量和/或类型。类似地,控制器135可以从执行单元124接收关于已发布用于执行的指令的数量和类型的信息。尽管这里没有明确示出,但是状态控制器135也可以与图1所示的调度器118耦合,调度器118可以提供关于被调度以被执行的指令的信息。在各种实施方案中,状态控制器135可以从其它处理节点(例如,多核心处理器中的其它处理器核心,和/或多处理器计算机中的其它处理器)接收关于其特定工作点的信息。
由状态控制器135从各种来源接收的信息可以用于基于例如工作负荷、可用功率、功率和频率限制等的因素来确定处理器的适当工作点。在确定处理器100(或在多核心实施方案的情况下,处理器100的核心101)的特定工作点后,状态控制器135可以执行各种行动以完成状态改变。在该特定实施方案中,状态控制器135可以向时钟控制器136和可调电压调节器137提供信号以改变工作电压和/或时钟频率,从而改变处理器100的工作点(尽管如上所述,在其它实施方案中,这些功能可以被并入状态控制器135)。另外,可以从状态控制器135提供信号,以向功率管理单元150提供关于工作点的任何改变的信息。此外,功率管理单元150可以向状态控制器135提供采取关于L2高速缓存140的动态设定大小的哪些行动(如果有的话)的信息。
高速缓存的功率管理:
现在转到图3,示出图示与高速缓冲存储器的实施方案耦合的功率管理单元的一个实施方案的框图。在所示实施方案中,功率管理单元150与高速缓存140耦合。在该特定实例中,高速缓存140为每集合(即,每组)具有2个通道的16个通道一个集合的关联高速缓存。然而,通道的数量、集合(或组)的数量或每组通道的数量与这里示出不同的其它实施方案是可能和涵盖的。此外,直接映射和完全关联高速缓存也是可能和涵盖的,以用于本文所述的各种方法和装置实施方案中。
在所示实施方案中,功率管理单元150与多个PMOS(p型金属氧化物半导体)晶体管152中的每个耦合。所示实施方案中的PMOS晶体管152充当用于将全局功率节点VDD与相应的本地电压节点154耦合或从相应的本地电压节点154解耦全局功率节点VDD的开关。在其它实施方案中,可以使用例如传输门的设备/电路来代替这里示出的单一的PMOS晶体管152。一般来说,可以实施任何适合的开关设备以将全局电压节点与本地电压节点耦合和从本地电压节点解耦全局电压节点。也应注意,开关设备用于将本地地面节点与全局地面节点耦合或从全局地面节点解耦本地地面节点的实施方案是可能和涵盖的。此等开关设备可以与将全局电压节点和本地电压节点耦合和解耦的开关设备结合使用,或作为将全局电压节点和本地电压节点耦合和解耦的开关设备的替代来使用。
当PMOS晶体管152各自的门接线端被驱动低时,可以接通PMOS晶体管152中的每个。在该实施方案中,功率管理单元150被配置来为所示实施方案中的每个组两个通道驱动断电信号(“PwrDn集合0”、“PwrDn集合1”等)。如果特定组的通道将被断电,那么功率管理单元150可以将其相应的断电信号驱动高。响应于PMOS晶体管152的门接线端上的高信号而可以停用相应的PMOS晶体管152。当PMOS晶体管152被停用时,从与相应组的通道耦合的本地功率节点解耦全局功率节点VDD的功率。相应地,所示实施方案中的功率管理单元150可以选择性地对独立于其它组的任何一个组断电。当响应于工作点的改变而对许多组(例如,1/2总数量)断电时,功率管理单元150可以断电连续组、可以选择性地断电非连续组,或执行这两个选项的组合。
图4为功率管理单元的一个实施方案的框图。在所示实施方案中,功率管理单元150可以包括决策单元156,其被耦合以从各种来源接收信息并且被配置来确定采取哪些高速缓存调整大小行动(如果有的话)。另外,决策单元156被配置来提供指示状态(例如,高速缓存调整大小行动)改变的信号,该信号可以由各种单元在内部使用。在该实施方案中,被配置来从外部来源接收信息的功率管理单元150的单元包括活动监视器164、CIPS(每秒提交指令)单元154、状态改变检测器152和决策单元156。通知单元160和开关单元158被配置来向功率管理单元150外部的单元提供信息。另外,功率管理单元150包括驻留计时器166、下比较器168和上比较器170。
在所示实施方案中,状态改变检测器152被耦合以从状态控制器135接收指示工作点改变的信号。工作点信息可以包括P状态、模式(即,省电或性能)和关于处理器100的工作点的任何其它相关信息。状态改变检测器152可以向决策单元156提供指示工作点已改变的一个或多个信号(“工作点改变”),以及提供识别新的工作点的信息。
决策单元156可以使用关于处理节点(其可以是核心101或整个处理器100)的状态的信息以指示高速缓存调整大小行动是否是必要的,以及如果是必要的,那么将采取什么特定行动。此外,决策单元156也可以使用关于多核心处理器实施方案和/或多处理器计算机系统中的其它处理节点的状态的信息。此等系统可以在处理节点中重新分配功率,以使得当一个节点进入其消耗更少功率的状态时,另一节点可以在有必要满足工作负荷需求的情况下消耗更多功率。
如果决策单元156确定通过断电或加电所选定的通道或集合而对高速缓存调整大小,那么可以将一个或多个信号(“对高速缓存调整大小”)发送到开关单元158。响应于接收这些信号,开关单元158可以产生用于加电或断电所选定的高速缓存通道或集合的一个或多个信号(“PwrDn[N:0]”)。将图3的实施方案用作相应的实例,开关单元158可以使在PMOS晶体管152的门上接收到的一个或多个有源高信号有效,从而导致高速缓存通道的相应集合被断电。如果将加电所选定的高速缓存通道或集合,那么开关单元158可以使有源低信号无效,从而在相应PMOS晶体管152的门接线端上产生低电平,并且因此引起激活和加电高速缓存通道的相应集合。这里应注意,该实例只是一个可能的实施方案,并且根据用于将高速缓存通道/集合与全局电压供应节点和/或地面节点耦合或从全局电压供应节点和/或地面节点解耦高速缓存通道/集合的开关设备,此等信号可以是有源高信号或有源低信号。
在对高速缓存调整大小后,决策单元156可以将改变的通知(“高速缓存状态改变”)发送到通知单元160。进而,通知单元160可以将通知其改变(“状态改变通知”)的信息发送到其它处理节点,这些信息包括关于改变的细节(例如,被断电或加电的高速缓存通道或集合的数量)、高速缓存的类型(例如,L1、L2、L3等)等的信息。在另一歌实施方案中,如下文将进一步详细地论述,通知单元160可以将关于对高速缓存调整大小的信息发送到控制器,该控制器可以用于在处理器100的各种单元中分配功率。
除将对高速缓存调整大小的通知发送到通知单元160之外,决策单元156也可以向驻留计时器166提供相同的信息。在驻留计时器166的情况下,信息变可以被简化为用作复位信号的单一信号。在接收信号后,驻留信号可以开始运行,并且由于对高速缓存调整大小可以提供当前时间。可以将该时间与第一时间阈值和第二时间阈值进行比较。这些阈值可以指示高速缓存调整大小行动的最小驻留要求。一个阈值可以为向上调整大小行动(即,当加电更多高速缓存通道/集合时)建立最小驻留,而另一阈值可以为向下调整大小行动(即,当对更多高速缓存通道/集合断电时)建立最小驻留。
在可以再次加电额外的通道/集合前,上比较器170可以比较时间值与为当前高速缓存大小建立最小驻留的阈值。在可以再次断电额外的通道/集合前,下比较器168可以比较时间值与为当前高速缓存大小建立最小驻留的阈值。在一些情况下,时间阈值可以相同,并且因此可以使用单一比较器代替这里示出的两个比较器。阈值可以被编程,和/或可以基于处理器或处理节点的特定工作点而改变的实施方案也是可能和涵盖的。例如,当对电池操作(或在省电模式中)时,向上调整大小行动的最小驻留可以长于在性能模式中操作时。类似地,在省电模式中对高速缓存向下调整大小的最小驻留可以小于在性能模式中。当在性能模式中操作时这种现象可能被倒置过来,其中向上调整大小行动的最小驻留更短,并且向下调整大小行动的最小驻留更长。
所示实施方案中的决策单元156被耦合以从上比较器170接收第一信号(“UpRes”),并且从下比较器168接收第二信号(“DownRes”)。当各自的比较器确定从驻留计时器166接收到的时间值超过各自的阈值时,可以使这些信号有效。如果这些信号中的一个或两个无效,那么决策单元156可以禁止进一步的高速缓存调整大小行动。例如,如果发生工作点变化(该变化原本将导致通过加电额外的高速缓存通道/集合而对高速缓存调整大小),那么可以禁止调整大小行动直到上比较器170使UpRes信号有效,从而指示在启动额外的通道/集合前已建立当前高速缓存大小的最小驻留。类似地,如果发生工作点(该变化原本将导致通过断电额外的通道/集合而对高速缓存调整大小,那么决策单元156可以禁止对高速缓存向下调整大小直到下比较器168指示已建立额外的向下调整大小行动的最小驻留。通过使用如由上比较器170和下比较器168所确定的驻留要求,决策单元156可以阻止高速缓存抖动,即,对高速缓存太频繁的调整大小。此抖动可能导致额外的功率消耗、功率噪声的增加,并且可以降低处理器的计算性能。
在所示实施方案中,功率管理单元150包括被配置来监视指令执行活动的活动监视器164。该实施方案中的活动监视器164被耦合以从(例如,图2的)执行单元124接收信息。使用从执行单元124接收到的信息,活动监视器可以在预定的时间间隔内为相应的处理节点(例如,在此情况下,核心101)计算平均活动。活动监视器164可以接收关于执行指令、管线停滞的信息,或指示执行单元的活动的任何其它类型的信息。该等信息在确定是否可以对高速缓存调整大小中可能是有用的。例如,如果活动监视器164确定在管线停滞中消耗每个时间间隔内的大量时间,那么有可能对高速缓存向下调整大小,这是因为与高速缓存缺失相关联的额外等待时间不太可能对整体性能有很大的影响。在另一方面,如果活动监视器164确定在每个间隔期间执行大量的指令(指示相对完整的管线),那么可能需要对高速缓存向上调整大小,这是因为由高速缓存缺失造成的高等待时间和可能的管线停滞可以不利地影响管线效率。
由活动监视器164生成的活动信息可以被提供到决策单元156(“平均节点活动”),并且可以用于确定是否有必要对高速缓存调整大小。在一些实施方案中,或在一些操作模式中,该信息仅供决策单元156使用,以确定高速缓存调整大小操作的需要。在其它实施方案中,从活动监视器164接收的信息可以结合由决策单元156接收的其它信息来使用。
功率管理单元150也包括CIPS单元154,CIPS单元154可以接收指示执行指令的数量的信息,其中在一秒的间隔将结果提交给寄存器。如上所述,CIPS为“每秒提交指令”,并且因此指示处理器的工作负荷。在所示实施方案中,CIPS单元154被耦合以接收关于从回退队列(例如,图1和图2的回退队列102)回退的指令的信息。CIPS单元154可以确定在预定间隔内回退的许多指令,且可以使用该值来推算CIPS值。因此,CIPS值可以指示指令被执行并且实际上被回退的速率(完全不同于例如由于分支错误预测而造成的推测性执行并且不回退的一些指令)。CIPS值可以结合其它值来使用以产生决策单元156可用的额外信息,从而确定是否执行对高速缓存调整大小。在该特定实施方案中,CIPS单元154可以使用阈值和总和值作为比较的基础来计算阈值与保护频带(或滞后)值的总和。CIPS单元154可以使第一信号(“CIPS>阈值+保护频带”)、第二信号(“CIPS<阈值”)或无信号有效。决策单元156被耦合以接收第一信号和第二信号,并且可以在给定间隔确定是否使这些信号中的任何一个有效。在一个实施方案中,可以基于以下的表2采取高速缓存调整大小行动。
表2
在上述表2中,示出一个实例,其中决策单元156的一个实施方案可以考虑P状态和CIPS值,以确定是否执行高速缓存调整大小行动,以及确定将采取什么行动。对于该特定实施方案,每个P状态与该P状态独有的阈值相关联。然而,单一阈值用于所有P状态的实施方案,以及额外阈值是可能的(例如,当在性能模式中操作时,给定状态的第一阈值;以及在省电模式中操作时,给定状态的第二阈值)的实施方案是可能和涵盖的。
对于该实施方案中的P状态0和P状态1,高速缓存大小可以保持在其全大小。如果处理节点在P状态2中操作,那么确定的CIPS值可以用于确定高速缓存调整大小操作而无需进一步的状态改变。如果CIPS值大于总和(即,阈值2+保护频带),那么可以对高速缓存向上调整大小到其全大小,而不管其先前的大小。在这种情况下,CIPS值指示回退指令的高速率,并且因此指示高或受计算量限制的工作负荷。如果CIPS值小于阈值(阈值2),那么可以对高速缓存从全大小高速缓存调整大小到1/2高速缓存。如果CIPS值大于阈值但是小于总和值,那么在该实例中不对高速缓存调整大小。在该实施方案中,用于为P状态3和P状态4确定高速缓存调整大小行动的算法类似于为P状态2确定高速缓存调整大小行动的算法,不同之处主要在于使用的阈值和使用的所得总和值。下文将进一步详细地论述CIPS单元154可以利用的算法的额外实施方案。
在对高速缓存调整大小后,决策单元156可以将改变的通知(“高速缓存状态改变”)发送到通知单元160。进而,通知单元160可以将通知其改变(“状态改变通知”)的信息发送到其它处理节点,这些信息包括关于改变的细节(例如,被断电或加电的高速缓存通道或集合的数量)、高速缓存的类型(例如,L1、L2、L3等)等的信息。
额外因素也可以包括确定特定程序或指令序列是受处理器限制还是受存储器限制。受计算量限制的应用可能需要频繁的高速缓存访问并且可能不能容忍等待时间,因此可以实现具有最大量的高速缓存大小的更高性能。受存储器限制的应用可以执行具有更长执行停滞的频繁的存储器访问(导致存储于高速缓存中的信息的更新换代频繁),并且因此可以容忍更多等待时间,因为预期高速缓存缺失损失。因此,对于受存储器限制的应用,可以减小高速缓存大小而不显著地影响性能。可以通过执行在实施处理节点的计算机系统上的操作系统向决策单元156提供该信息。
相应地,功率管理单元150的决策单元156可以确定将基于许多不同的因素执行什么高速缓存调整大小操作。这些因素可以包括P状态、操作模式(省电或性能)、CIPS、平均活动和关于其它处理节点和功率分配的信息。决策单元156可以被配置来使高速缓存调整大小信息仅基于这些因素中的单一因素,或基于这些因素的任何组合。
现在转到图5,示出图示处理器的不同工作点的高速缓冲存储器的动态控制的一系列框图。所示实施方案中的高速缓存140为每集合或组具有4个通道的16个通道一个集合的关联高速缓存。然而,如上所述,具有不同数量的通道、组或每组通道的实施方案也是可能和涵盖的,如直接映射和完全关联的高速缓存。可以使用适合于给定实施方式的任何特定的粒度执行根据本文的公开的高速缓存调整大小。
在所示实例的(a)中,打开高速缓存140的所有通道。当对于实施高速缓存140的处理器而言性能需求高时,可以利用该高速缓存大小。根据上文所述的各种实施方案,在其它实例中,当在P状态0中操作时、当在性能模式中操作时、当检测到高CIPS值时,或当检测到高平均活动水平时,可以打开所有高速缓存通道。
在所示实例的(b)中,16个高速缓存通道中的8个已被断电,但剩余的高速缓存通道仍被启动并可访问。当在某一P状态中时(例如,当在P状态2中操作时)、当检测到较低CIPS水平时,或当检测到较低平均活动水平时,从状态(a)转变到状态(b)的情况可能发生,并伴随着到较低功率P状态(例如,从P状态1到P状态2)的转变、从性能模式到省电模式的转变。
在(c)中,已发生另一高速缓存调整大小行动,这次将启动通道的数量减少了一半,即从8个通道减少到4个通道。触发该高速缓存调整大小的事件可能与上述情况类似。尽管在该实例中,总共16个高速缓存通道中的12个被断电,但是4个通道仍可以用来由处理节点的执行单元访问数据和/或指令。
在(d)中,所有高速缓存通道已被断电。响应于进入最低级P状态(例如,在上述实例中P状态5),进入睡眠模式等,而可能发生该高速缓存调整大小行动。
也可以颠倒地执行图5所示的从(a)到(d)的顺序。例如,如果退出关闭所有高速缓存通道的睡眠模式,那么在图5所示的高速缓存140的实施方案中,可以启动至少四个或更多个高速缓存通道。平均活动增加、CIPS值增加、到较高P状态的转变(例如,从P状态3到P状态2)或从省电模式到性能模式的转变都是可以触发启动高速缓存通道的行动,以对高速缓存140向上调整大小。此外,应注意,如图5所示,不需要依次转变每个步骤。例如,在一个实施方案中,性能需求的突然增加(例如,由于检测到高CIPS值)可以导致从(c)直接跳越到(a)。
应注意,触发高速缓存调整大小行动的上述事件为示例性的,并且可以响应于其它触发事件而执行高速缓存调整大小行动的实施方案也是可能和涵盖的。此外,高速缓存调整大小行动可以独立于其他某些事件发生。通过使用图4的功率管理单元150的实例,决策单元156可以接收P状态改变、操作模式改变或其它类型的工作点改变的通知。这些改变可以被纳入关于是否对高速缓存140调整大小的决策中,但是在一些实施方案中不独立地触发改变。
在图5的实例中,除了进入或退出关闭所有通道的状态时以外,以2的幂对高速缓存通道加电或断电。因此,在向下调整大小行动中,断电的高速缓存通道的数量从原始16个通道进行减少到8个通道,然后4个通道,然后到0个通道。类似地,当对高速缓存向上调整大小时,该行动包括打开4个通道,然后向上调整大小到8个通道,然后到16个通道。然而,应注意,以增量发生向下调整大小和向上调整大小行动不同于这里所述的实施方案是可能和涵盖的。例如,可以用2个通道的增量对16个通道高速缓存向下调整大小或向上调整大小的实施方案是可能和涵盖的,从而允许有8个可能的高速缓存大小。可以通过每个高速缓存大小增量一个通道对高速缓存向下调整大小或向上调整大小的实施方案也是可能的。
动态高速缓存控制的方法流程:
图6和图7图示用于动态地控制高速缓存大小的方法的两个可能的实施方案。应注意,这些实施方案是示例性的,并且其它实施方案是可能和涵盖的。也应注意,许多不同的方法可以用于上述功率管理单元150的特定实施方案,并且这些方法可以在一些情况下组合。例如,可以部分或完全地组合参照图6和图7所述的方法实施方案,以确定是否对处理器工作点改变回应而执行对高速缓存调整大小。
现在转到图6,图示动态高速缓存控制的方法的一个实施方案的流程图。在所示实施方案中,方法600以处理器在第一工作点操作(方框605)开始。为了该实例的目的,该工作点可以被认为是特定方案的最高性能工作点(例如,根据上文提供的表1,P状态0)。在所示实施方案中,如果工作点改变(方框610,否),那么不会发生高速缓存设定大小行动(方框612),并且继续在第一工作点进行操作。然而,如果工作点改变(方框610,是),那么可以对高速缓存通道的子集断电(方框615)。该子集可以仅包括单一通道、一组通道或多组通道。
在工作点改变后,处理器操作可以继续处理指令,该指令可以包括访问仍被加电的剩余通道中的高速缓存(方框620)。若工作点再次尚未改变(方框625,否),那么不进一步采取高速缓存调整大小行动(方框627),并且可以继续在最近的工作点进行操作,该操作包括处理指令,及访问来自保持加电的任何高速缓存通道的数据和/或指令(方框620)。
如果发生另一工作点改变(方框625,是),并且工作点改变是向下到较低的性能或较低的功率状态(方框630,向下),那么可以断电高速缓存的额外通道(方框640)。可以继续处理指令,并且该处理可以包括访问保持加电的任何高速缓存通道(方框642)。如果发生另一工作点改变(方框625,是),并且工作点改变是到较高的性能状态或允许较高功率消耗的状态(方框630,向上),那么可以通过选择性地启动被先前断电的高速缓存通道对高速缓存向上调整大小(方框635)。如果新的工作点是最高性能工作点(方框645,是),那么可以启动所有缓存通道(方框650)。如果新的工作点不是最高性能工作点(方框645,否),那么操作可能会发生,其中一些高速缓存通道保持断电,而加电的那些高速缓存通道可以被访问以用于检索数据和/或指令。
因此,根据图6的实施方案,在工作点从一个最大性能进行到一个最小功率消耗时,方法600可以执行对高速缓存渐进向下调整大小。高速缓存调整大小操作的增量的数量可以取决于工作点的数量(例如,P状态的数量)、高速缓存通道或多组通道的数量、断电高速缓存所用的增量的大小和方式(例如,从全大小减少到1/2、减少到1/4等)等。类似地,在处理器的工作点从一个最小功率消耗进行到最大性能时,方法600可以执行对高速缓存渐进向上调整大小。
应注意,对于参照图7所述的每个调整大小行动,在发生调整大小行动前,可能必须建立驻留要求。例如,在方框640中,如果由于先前的高速缓存调整大小行动,足够量的时间尚未消逝,那么可以禁止或延迟对额外的高速缓存通道断电。一旦该特定量的时间已消逝,则驻留要求可以被认为是已建立的,并且此后可以发生调整大小行动。在高速缓存调整大小行动之后为高速缓存大小建立驻留要求可以阻止高速缓存调整大小过于频繁发生。过于频繁地对高速缓存调整大小可能消耗更多功率、降低处理性能,并且由于在频繁的间隔启动和关闭高速缓存通道引起的频繁瞬变,可能在配电系统中导致不良的噪声。相应地,可以通过使用驻留要求阻止这些不良后果。驻留计时器(例如,图4的驻留计时器166)可以用于建立和加强驻留要求。
图7为动态高速缓存控制的方法的另一个实施方案的流程图。在该特定实施方案中,方法700针对确定是否基于CIPS值而采取高速缓存调整大小行动。如上文先前所述,可以通过接收关于回退指令的信息、确定在某一时间间隔回退指令的数量(即,其中将指令执行的结果提交给寄存器),以及将该值推算到一秒来确定CIPS值。
该实施方案中的方法700以开始新的时间间隔(方框701)开始。可以进行统计以确定回退指令的数量,其中在最近的先前时间间隔内将结果提交给寄存器。根据该值,可以确定CIPS值(方框705)。除确定CIPS值之外,可以计算阈值和保护频带值的总和(方框707)。
在一个实施方案中,阈值可以取决于处理器正操作的特定P状态,然而阈值不取决于P状态(例如,对于所有P状态,阈值相同)的实施方案也是可能和涵盖的。阈值可以是用于与在给定间隔确定的CIPS值比较的目的的某一CIPS值。保护频带可以是为比较提供额外裕度以确保可以将某些因素(例如,导致管线冲洗的分支错误预测)计算在内的CIPS值。在一些实施方案中,可以在CIPS计算/确定中包括保护频带,以及因此不需要包括单独的保护频带。
在确定CIPS值和总和后,可以比较CIPS值与阈值和总和(方框710)。如果CIPS值大于阈值和保护频带的总和(方框715,是),那么在尚未启动高速缓存通道的情况下,可以对高速缓存调整大小以启动所有高速缓存通道(方框730)。如果CIPS值小于总和(方框715,否),并且小于阈值(方框720,是),那么可以通过选择性地断电总数量的高速缓存通道的子集执行高速缓存调整大小(方框735)。在已采取高速缓存调整大小行动后,可以不进一步采取行动直到下一间隔开始(方框701)。
如果CIPS值小于总和值(方框715,否)但是大于阈值(方框720,否),那么高速缓存大小可以保持不变(方框725)。可以不进一步执行高速缓存调整大小行动直到下一间隔开始(方框701)。
实施方案700的许多变化是可能和涵盖的。例如,可以启动高速缓存通道的选定子集,而不是响应于CIPS值大于总和值响应而启动所有高速缓存通道。这可能导致启动一些但不是所有高速缓存通道的情况,然而比在先前间隔内启动更多通道。此外,如上所述,方法700可以结合方法600的各种实施方案或用于确定高速缓存调整大小行动的任何其它适合的方法来使用。
另一变化可以允许基于被当前加电的高速缓存通道的数量使用差异CIPS阈值,这是因为CIPS值可能取决于高速缓存容量。因此,如果在此实施方案中已断电高速缓存通道,那么也可以相应地减少CIPS阈值。一般来说,可以基于被启动和关闭的通道的数量使用许多不同的CIPS阈值,其中每个阈值对应于特定高速缓存容量。
多核心处理器实施方案:
图8为多核心处理器的一个实施方案的框图。在所示实施方案中,处理器100包括两个处理器核心101。然而,具有额外核心的实施方案是可能和涵盖的,并且这些核心可以彼此相同(即,处理器100是对称多核心处理器)或一些核心可以彼此不同(即,处理器100是不对称或异质多核心处理器)。所示实施方案中的每个核心101包括执行单元124、L1高速缓存117和功率管理单元150。每个核心101可以包括根据上文结合图1和图2所述的处理器实施方案的额外单元。此外,根据那些相同的附图,L1高速缓存117可以被分成单独的指令和数据高速缓存。
每个核心101中的功率管理单元150可以被配置来使用本文所述的各种方法执行对各自的L1高速缓存117调整大小。核心101中的每个功率管理单元150可以被类似地布置成图4所示的功率管理单元150。相应地,可以考虑许多不同的因素以确定是否对相应的L1高速缓存117调整大小,以及在确定将执行调整大小的情况下确定如何对那些高速缓存调整大小。
除每个核心101中的功率管理单元150之外,处理器100包括另一功率管理单元150,其被配置来对L2高速缓存140执行调整大小行动。用于确定对L2高速缓存140执行调整大小行动的各种方法可以包括上述方法中的任何一个。
尽管没有明确示出,但是处理器100的一些实施方案也可以包括L3高速缓存。在该等实施方案中,包括L3高速缓存可以随附包括功率管理单元150的另一实例。或者,可以利用单一的功率管理单元150以控制L2和L3高速缓存中的两个。一般来说,在特定处理器实施方案中包括的高速缓冲存储器的数量不受限制。此外,尽管论述针对存储数据和/或指令的高速缓存,但是本文中所述的动态高速缓存控制也可以应用于其它类型的高速缓冲存储器,例如,用于存储地址转换信息的转译后备缓冲器(TLB)。
处理器100也包括与每个功率管理单元150耦合的控制器170。在一些实施方案中,控制器170可以提供原本由状态控制器135提供的功能,如图2所示。尽管这里没有明确示出,但是处理器100可以包括在同一集成电路晶片上实施为处理器100的其它单元的时钟控制电路和可调电压调节器(例如,图2所示的时钟控制电路136和可调电压调节器137)。在一个实施方案中,如果总体上设置集成电路晶片,那么可以将电压设置为所有核心101的P状态所需的最大电压。另一个实施方案可以涉及软件基于任何核心101所需的最高性能P状态设置所有核心的P状态。一般来说,控制器170可以被配置来为每个核心101以及为处理器100总体上设置工作电压和时钟频率(即,P状态)。在一些情况下,核心101的P状态可能总体上受处理器100的P状态限制。此外,所示实施方案中的控制器170被配置来分别对彼此设置核心101的P状态。响应于一个或所有处理器核心101的增加的工作负荷,控制器170可以增加各自的P状态和/或总体上增加处理器100的P状态以满足需求。
由于控制器170可以总体上控制核心101和处理器100的P状态,因此控制器170可以在核心101中控制功率分配。例如,如果对核心101的第一核心的L1高速缓存向下调整大小(例如,响应于低CIPS值),那么控制器170可以向第二核心101分配所节省的功率,并且也可以调整其P状态以满足更大的工作负荷需求。在一些情况下,作为由于对高速缓存向下调整大小可用的额外功率的结果,控制器170可以向一个或多个额外核心分配额外功率。在这种情况下,控制器170也可以调整核心的P状态。核心101的P状态使其满足更大的工作负荷需求。在一些情况下,控制器170可以指示与L2高速缓存140耦合的功率管理单元150向下调整大小,以使能够向核心101中的一个或多个分配额外功率。
控制器170可以从在各自的功率管理单元150内实施的通知单元160接收关于L1高速缓存和L2高速缓存中每个的状态的信息。控制器170也可以将信息发送到功率管理单元150中每个的决策单元156,以指示各种状态改变,例如,更新一个或多个核心101的P状态。
一般来说,控制器170可以追踪核心101、L2高速缓存140的功率使用,也可以追踪处理器100的其它单元(例如,存储控制器)的功率使用,并且可以基于所追踪的功率使用执行功率控制和分配行为。基于关于核心101、L2高速缓存140和处理器100的其它单元的功率使用的信息,控制器170可以执行功率分配行为以使处理器100能够最大化消耗功率的每瓦特性能。
计算机系统:
现在转到图9,示出计算机系统300的实施方案。在图9的实施方案中,计算机系统300包括几个处理节点100A、100B、100C和100D。处理节点100A-100D中的一个或多个可以是根据上述图1、图2或图8的一个实施方案,或那些实施方案中一个的变化的处理器。相应地,处理节点100A-100D中的一个或多个可以包括根据上述方法的各种实施方案的一个或多个功率管理单元150,其被配置来执行对各自的处理节点中的一个或多个高速缓冲存储器动态调整大小。
通过在每个各自的处理节点100A-100D内包括的存储控制器316A-316D使每个处理节点100A-100D与各自的存储器314A-314D耦合。可以根据上述存储控制器18的实施方案配置这些存储控制器316A-316D中的一个或多个。因此,在这样配置的处理单元中,可以进行功率管理以最小化相应的存储器子系统的功率使用。
处理节点100A-100D中的每个包括用于在处理节点100A-100D之间通信的接口逻辑。例如,处理节点100A包括用于与处理节点100B通信的接口逻辑318A、用于与处理节点100C通信的接口逻辑318B以及用于与另一处理节点(未示出)通信的第三接口逻辑318C。类似地,处理节点100B包括接口逻辑318D、318E和318F;处理节点100C包括接口逻辑318G、318H和318I;并且处理节点100D包括接口逻辑318J、318K和318L。处理节点100D被耦合以通过接口逻辑318L与多个输入/输出设备(例如,菊花链配置中的设备320A-320B)通信。其它处理节点可以以类似的方式与其它I/O设备通信。
处理节点100A-100D实施处理节点间通信的基于数据包的链路。在本实施方案中,将链路实施为单向线的集合(例如,线324A用于将数据包从处理节点100A传输到处理节点100B,并且线324B用于将数据包从处理节点100B传输到处理节点100A)。线324C-324H的其它集合用于在其它处理节点之间传输数据包,如图4所示。一般来说,线324的每个集合可以包括一个或多个数据线,对应于数据线的一个或多个时钟线,以及指示被传递的数据包的类型的一个或多个控制线。可以以高速缓存相干方式来操作链路以在处理节点之间通信,或以非相干方式来操作链路以在处理节点与I/O设备(或常规结构的I/O总线,例如,外围部件互连(PCI)总线或工业标准架构(ISA)总线的总线桥)之间通信。以高速缓存相干方式执行处理节点与I/O设备之间的通信的实施方案也是可能和涵盖的。此外,可以使用如图所示的I/O设备之间的菊花链结构以非相干方式操作链路。应注意,被从一个处理节点传输到另一个处理节点的数据包可以通过一个或多个中间节点。例如,由处理节点100A传输到处理节点100D的数据包可以通过处理节点100B或处理节点100C,如图9所示。可以使用任何适合的路由算法。计算机系统300的其它实施方案可以包括比图9所示的实施方案更多或更少的处理节点。
一般来说,可以传输数据包作为在节点之间的线324上的一个或多个位时间。位时间可以是在相应的时钟线上的时钟信号的上升或下降沿。数据包可以包括用于开始事务的命令数据包、用于维持高速缓存相关性的探测数据包,以及来自响应于探测和命令的响应数据包。
处理节点100A-100D除包括存储控制器和接口逻辑之外,还可以包括一个或多个处理器。概括地说,处理节点包括至少一个处理器,并且根据需要可以任选地包括用于与存储器和其它逻辑通信的存储控制器。更具体来说,每个处理节点100A-100D可以包括图1所示的处理器10的一个或多个副本(例如,包括图2至图3所示的各种结构和操作细节)。一个或多个处理器可以包括处理节点中或形成处理节点的芯片多处理(CMP)或芯片多线程(CMT)集成电路,或处理节点可以具有任何其它所需的内部结构。
存储器314A-314D可以包括任何适合的存储器设备。例如,存储器314A-314D可以包括一个或多个RAMBUSDRAM(RDRAMs)、同步DRAM(SDRAMs)、DDRSDRAM、静态RAM等。在存储器314A-314D之间划分计算机系统300的地址空间。每个处理节点100A-100D可以包括用于确定将哪些地址映射到哪些存储器314A-314D,并且因此应将特定地址的存储器请求路由到哪些处理节点100A-100D的存储器映射。在一个实施方案中,计算机系统300内的地址的相干点为与存储对应于地址的字节的存储器耦合的存储控制器316A-316D。换句话说,存储控制器316A-316D负责确保以高速缓存相干方式发生每个存储器对相应的存储器314A-314D的访问。存储控制器316A-316D可以包括用于连接到存储器314A-314D的控制电路。另外,存储控制器316A-316D可以包括用于排队等候存储器请求的请求队列。
一般来说,接口逻辑318A-318L可以包括用于从链路接收数据包和用于缓冲在链路上传输的数据包的各种缓冲区。计算机系统300可以使用用于传输数据包的任何适合的流量控制机制。例如,在一个实施方案中,每个接口逻辑318在连接接口逻辑的链路的另一端存储接收器内的每种类型的缓冲区的数量的计数。除非接收的接口逻辑具有用于存储数据包的空闲缓冲区,否则接口逻辑不传输数据包。当通过向前路由数据包释放接收缓冲区时,接收接口逻辑将消息传输到发送接口逻辑以指示该缓冲区已被释放。此机制可以被称为“基于优惠券”系统。
I/O设备320A-320B可以是任何适合的I/O设备。例如,I/O设备320A-320B可以包括用于与可以耦合设备的另一计算机系统通信的设备(例如,网络接口卡或调制解调器)。此外,I/O设备320A-320B可以包括视频加速器、音频卡、硬盘或软盘驱动器或驱动控制器、SCSI(小型计算机系统接口)适配器和电话卡、声卡和各种数据采集卡,例如,GPIB或现场总线接口卡。此外,实施为卡的任何I/O设备也可以实施为系统300的主电路板上的电路和/或执行在处理节点上的软件。应注意,术语“I/O设备”和术语“外围设备”在本文中规定为同义的。
计算机系统300也包括与处理节点100A-100D中的每个耦合的控制器170。控制器170可以执行与图8所示的控制器170类似的功能,但是在系统级上而不是在处理器级上。即,控制器170可以追踪处理节点100A-100D中的每个的功率使用,可以相应地改变其工作点,并且可以将功率从一个处理节点重新分配到其它处理节点中的一个或多个。应注意,尽管这里将控制器170示出为与处理节点100A-100D中的每个分离,但是实施在处理节点中的一个上的控制器170执行系统级功率追踪和分配功能的实施方案是可能的。
应注意,尽管上述处理器和系统的各种实施方案针对计算机系统和其相应的处理器,但是应注意上述方法和装置也可以应用于其它类型。一般来说,包括高速缓存的任何类型的处理器可以适合于实施上述动态高速缓存调整大小方法。此外,包括处理器的任何类型的系统也可以适合于上文公开的动态高速缓存调整大小方法,这些系统包括服务器系统、桌面系统和便携式计算机。此外,其它类型的平台和其各自的处理器可以适合于动态高速缓存调整大小。此等平台可以包括“智能”电话、个人数字助理、嵌入式控制器等。
计算机可读介质:
然后转到图10,示出包括处理器100的数据库代表的计算机可访问存储介质800的框图。一般来说,计算机可访问存储介质可以包括计算机在用于向计算机提供指令和/或数据期间可访问的任何存储介质。例如,计算机可访问存储介质可以包括例如磁性或光学介质的存储介质,例如,磁盘(固定或移动)、磁带、CD-ROM或DVD-ROM、CD-R、CD-RW、DVD-R、DVD-RW或蓝光。存储介质可以进一步包括通过外围接口(例如,通用串行总线(USB)接口等)可访问的易失性或非易失性存储介质,例如,RAM(例如,同步动态RAM(SDRAM)、双倍数据速率(DDR、DDR2、DDR3等)SDRAM、低功率DDR(LPDDR2等)SDRAM、RambusDRAM(RDRAM)、静态RAM(SRAM)等)、ROM、闪速存储器、非易失性存储器(例如,闪速存储器)。存储介质可以包括微机电系统(MEMS),以及通过通信介质(例如,网络和/或无线链路)可访问的存储介质。
一般来说,在计算机可访问存储介质800上携带的处理器的数据库可以是一种由程序读取并且直接或间接地用于促进包括系统10的硬件的数据库。例如,数据库可以是用例如Verilog或VHDL的高级设计语言(HDL)的硬件功能性的行为级描述或寄存器传输级(RTL)描述。可以使用合成工具读取描述,该合成工具可以合成描述以产生包括合成库的门列表的网表。网表包括也表示包括处理器100的硬件的功能性的门的集合。然后,网表可以被放置和路由以产生描述应用于掩膜的几何形状的数据集。然后,掩膜可以用于各种半导体制造步骤中以产生对应于处理器100的一个或多个半导体电路。或者,计算机可访问存储介质800上的数据库可以根据需要是网表(具有或不具有合成库)或数据集。
尽管计算机可访问存储介质800携带处理器100的表示,但是其它实施方案可以根据需要携带处理器100的任何部分的表示,包括代理的任何集合(例如,L2高速缓存140、功率管理单元150等)、代理的部分,或上述部分。
尽管已参照特定实施方案对本发明进行描述,但是应理解,实施方案是说明性的,且发明范围不受此限制。所述实施方案的任何变化、修改、添加和改进均是可能的。这些变化、修改、添加和改进可以属于在以下权利要求书内详述的本发明的范围。
Claims (12)
1.一种用于动态高速缓存控制的方法,其包括:
将处理器的工作点从第一工作点改变为第二工作点;
读取CIPS(每秒提交指令)值;
计算阈值与保护频带值的总和;
比较所述CIPS值与所述阈值和所述总和;
如果所述CIPS值小于所述阈值,那么响应于改变为所述第二工作点而从高速缓冲存储器的一个或多个额外通道中选择性地移除功率;
如果所述CIPS值大于所述总和,那么启动所述高速缓冲存储器的所有通道;
其中如果所述CIPS值大于所述阈值并且小于所述总和,那么不启动所述高速缓冲存储器的额外通道或关闭所述高速缓冲存储器的额外通道;以及
在改变所述高速缓冲存储器的一个或多个通道的功率之后,处理所述处理器中的一个或多个指令,其中所述处理包括访问未被改变功率的所述高速缓冲存储器的一个或多个通道。
2.如权利要求1所述的方法,其中改变所述高速缓冲存储器的一个或多个通道的功率包括从所述高速缓冲存储器的所述一个或多个通道中移除功率。
3.如权利要求1所述的方法,其中改变所述工作点包括改变所述处理器操作的工作电压和时钟频率。
4.如权利要求1所述的方法,其进一步包括响应于改变所述工作点而从所述高速缓冲存储器的多个当前活动通道中的一半移除功率。
5.如权利要求1所述的方法,其进一步包括:
将所述处理器的所述工作点从所述第二工作点改变为第三工作点;以及
响应于所述工作点从所述第二工作点改变为所述第三工作点而从高速缓冲存储器的一个或多个额外通道中选择性地移除功率。
6.如权利要求1所述的方法,其进一步包括:
确定由于从所述高速缓冲存储器的一个或多个通道中选择性地移除功率而消逝的时间量;
比较所述时间量与第一时间阈值;以及
如果所述时间量小于所述第一时间阈值,那么阻止对所述高速缓冲存储器的额外通道断电。
7.如权利要求6所述的方法,其进一步包括:
比较所述时间量与第二时间阈值;以及
如果所述时间量小于所述第二时间阈值,那么阻止对所述高速缓冲存储器的额外通道加电。
8.一种处理器,其包括:
功率管理单元,其被配置来:
将所述处理器的工作点从第一工作点改变为第二工作点;
读取CIPS(每秒提交指令)值;
计算阈值与保护频带值的总和;
比较所述CIPS值与所述阈值和所述总和;
如果所述CIPS值小于所述阈值,那么响应于改变为所述第二工作点而选择性地改变高速缓冲存储器的多个通道的第一子集的功率;
如果所述CIPS值大于所述总和,那么启动所述高速缓冲存储器的所有通道;
其中如果所述CIPS值大于所述阈值并且小于所述总和,那么不启动所述高速缓冲存储器的额外通道或关闭所述高速缓冲存储器的额外通道;
其中所述处理器的至少一个执行单元被配置来在选择性地改变所述多个通道的第一子集的功率之后,访问未被改变功率的所述多个通道的第二子集的一个或多个通道。
9.如权利要求8所述的处理器,其中所述功率管理单元被进一步配置来将指示所述高速缓冲存储器的一个或多个通道已被断电的通知发送到一个或多个额外处理器。
10.一种用于动态高速缓存控制的方法,其包括:
计算第一阈值与第二阈值,其中所述第二阈值为所述第一阈值与保护频带值的总和;
比较CIPS(每秒提交指令)值与所述第一阈值和所述第二阈值,其中所述CIPS值是指每秒将指令的数量的对应结果提交给寄存器的多个指令的数量;
如果处理器的所述CIPS值小于第一阈值,那么从高速缓冲存储器的多个通道的子集中选择性地移除功率;以及
如果所述CIPS值大于第二阈值,那么启动所述高速缓冲存储器的任何先前断电的通道;
其中如果所述CIPS值大于所述第一阈值并且小于所述第二阈值,那么不改变所述高速缓冲存储器的通道的功率。
11.如权利要求10所述的方法,其进一步包括:为包括所述高速缓冲存储器的处理器确定所述CIPS值。
12.一种用于动态高速缓存控制的方法,其包括:
将处理器的性能状态从第一性能状态改变为第二性能状态,其中所述第一性能状态包括以第一电压和第一时钟频率操作所述处理器的核心,并且其中所述第二性能状态包括以小于所述第一电压的第二电压和小于所述第一时钟频率的第二时钟频率操作所述核心;
读取CIPS(每秒提交指令)值;
计算阈值与保护频带值的总和;
比较所述CIPS值与所述阈值和所述总和;
如果所述CIPS值小于所述阈值,那么响应于改变为第二性能状态而从高速缓冲存储器的一个或多个额外通道中选择性地移除功率;
如果所述CIPS值大于所述总和,那么启动所述高速缓冲存储器的所有通道;
其中如果所述CIPS值大于所述阈值并且小于所述总和,那么不启动所述高速缓冲存储器的额外通道或关闭所述高速缓冲存储器的额外通道;以及
在从所述高速缓冲存储器的一个或多个通道中移除功率之后,处理所述处理器的所述核心中的一个或多个指令,其中所述处理包括所述核心访问未移除功率的所述高速缓冲存储器的一个或多个通道。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/777,657 US8412971B2 (en) | 2010-05-11 | 2010-05-11 | Method and apparatus for cache control |
US12/777,657 | 2010-05-11 | ||
PCT/US2011/035975 WO2011143256A1 (en) | 2010-05-11 | 2011-05-10 | Method and apparatus for cache control |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102934046A CN102934046A (zh) | 2013-02-13 |
CN102934046B true CN102934046B (zh) | 2016-06-22 |
Family
ID=44303932
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201180028667.7A Active CN102934046B (zh) | 2010-05-11 | 2011-05-10 | 高速缓存控制的方法和装置 |
Country Status (6)
Country | Link |
---|---|
US (2) | US8412971B2 (zh) |
EP (1) | EP2569680B1 (zh) |
JP (1) | JP5735638B2 (zh) |
KR (1) | KR101673500B1 (zh) |
CN (1) | CN102934046B (zh) |
WO (1) | WO2011143256A1 (zh) |
Families Citing this family (74)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9311245B2 (en) | 2009-08-13 | 2016-04-12 | Intel Corporation | Dynamic cache sharing based on power state |
US20110055610A1 (en) * | 2009-08-31 | 2011-03-03 | Himax Technologies Limited | Processor and cache control method |
US9043533B1 (en) * | 2010-06-29 | 2015-05-26 | Emc Corporation | Sizing volatile memory cache based on flash-based cache usage |
KR101661111B1 (ko) * | 2010-11-23 | 2016-09-30 | 한국전자통신연구원 | 멀티 코어 프로세서의 전력 제어 장치 및 방법 |
US8972707B2 (en) | 2010-12-22 | 2015-03-03 | Via Technologies, Inc. | Multi-core processor with core selectively disabled by kill instruction of system software and resettable only via external pin |
US9201677B2 (en) * | 2011-05-23 | 2015-12-01 | Intelligent Intellectual Property Holdings 2 Llc | Managing data input/output operations |
JP5653315B2 (ja) * | 2011-07-28 | 2015-01-14 | 株式会社東芝 | 情報処理装置 |
US8769316B2 (en) | 2011-09-06 | 2014-07-01 | Intel Corporation | Dynamically allocating a power budget over multiple domains of a processor |
JP5674611B2 (ja) * | 2011-09-22 | 2015-02-25 | 株式会社東芝 | 制御システム、制御方法およびプログラム |
JP5674613B2 (ja) | 2011-09-22 | 2015-02-25 | 株式会社東芝 | 制御システム、制御方法およびプログラム |
US9074947B2 (en) | 2011-09-28 | 2015-07-07 | Intel Corporation | Estimating temperature of a processor core in a low power state without thermal sensor information |
US8954770B2 (en) | 2011-09-28 | 2015-02-10 | Intel Corporation | Controlling temperature of multiple domains of a multi-domain processor using a cross domain margin |
US9026815B2 (en) | 2011-10-27 | 2015-05-05 | Intel Corporation | Controlling operating frequency of a core domain via a non-core domain of a multi-domain processor |
US8832478B2 (en) | 2011-10-27 | 2014-09-09 | Intel Corporation | Enabling a non-core domain to control memory bandwidth in a processor |
US9158693B2 (en) * | 2011-10-31 | 2015-10-13 | Intel Corporation | Dynamically controlling cache size to maximize energy efficiency |
US8943340B2 (en) | 2011-10-31 | 2015-01-27 | Intel Corporation | Controlling a turbo mode frequency of a processor |
US20130145101A1 (en) * | 2011-12-06 | 2013-06-06 | Lisa Hsu | Method and Apparatus for Controlling an Operating Parameter of a Cache Based on Usage |
US8924758B2 (en) | 2011-12-13 | 2014-12-30 | Advanced Micro Devices, Inc. | Method for SOC performance and power optimization |
CN107220029B (zh) | 2011-12-23 | 2020-10-27 | 英特尔公司 | 掩码置换指令的装置和方法 |
US9946540B2 (en) * | 2011-12-23 | 2018-04-17 | Intel Corporation | Apparatus and method of improved permute instructions with multiple granularities |
CN111831335A (zh) * | 2011-12-23 | 2020-10-27 | 英特尔公司 | 经改进的插入指令的装置和方法 |
JP5458132B2 (ja) * | 2012-03-13 | 2014-04-02 | 株式会社東芝 | キャッシュ装置 |
US8943274B2 (en) * | 2012-05-22 | 2015-01-27 | Seagate Technology Llc | Changing power state with an elastic cache |
US8972665B2 (en) * | 2012-06-15 | 2015-03-03 | International Business Machines Corporation | Cache set selective power up |
US9292283B2 (en) * | 2012-07-11 | 2016-03-22 | Intel Corporation | Method for fast large-integer arithmetic on IA processors |
US9261945B2 (en) * | 2012-08-30 | 2016-02-16 | Dell Products, L.P. | Dynanmic peak power limiting to processing nodes in an information handling system |
US9218040B2 (en) | 2012-09-27 | 2015-12-22 | Apple Inc. | System cache with coarse grain power management |
US8977817B2 (en) * | 2012-09-28 | 2015-03-10 | Apple Inc. | System cache with fine grain power management |
US9734548B2 (en) * | 2012-10-26 | 2017-08-15 | Nvidia Corporation | Caching of adaptively sized cache tiles in a unified L2 cache with surface compression |
US9183144B2 (en) * | 2012-12-14 | 2015-11-10 | Intel Corporation | Power gating a portion of a cache memory |
JP6116941B2 (ja) * | 2013-02-28 | 2017-04-19 | 株式会社東芝 | 情報処理装置 |
US10642735B2 (en) | 2013-03-15 | 2020-05-05 | Oracle International Corporation | Statement cache auto-tuning |
JP6038699B2 (ja) | 2013-03-22 | 2016-12-07 | シャープ株式会社 | 電子機器 |
US8984227B2 (en) * | 2013-04-02 | 2015-03-17 | Apple Inc. | Advanced coarse-grained cache power management |
US9400544B2 (en) | 2013-04-02 | 2016-07-26 | Apple Inc. | Advanced fine-grained cache power management |
US9396122B2 (en) | 2013-04-19 | 2016-07-19 | Apple Inc. | Cache allocation scheme optimized for browsing applications |
KR102027573B1 (ko) * | 2013-06-26 | 2019-11-04 | 한국전자통신연구원 | 캐시 메모리 제어 방법 및 그 장치 |
JP6130750B2 (ja) * | 2013-07-16 | 2017-05-17 | 株式会社東芝 | メモリ制御回路およびプロセッサ |
WO2015030756A1 (en) | 2013-08-29 | 2015-03-05 | Empire Technology Development Llc | Cache partitioning in a multicore processor |
US9430434B2 (en) | 2013-09-20 | 2016-08-30 | Qualcomm Incorporated | System and method for conserving memory power using dynamic memory I/O resizing |
KR101490072B1 (ko) * | 2014-01-28 | 2015-02-06 | 한양대학교 산학협력단 | 캐시의 전력 제어를 위한 장치 및 방법 |
US20150310902A1 (en) | 2014-04-23 | 2015-10-29 | Texas Instruments Incorporated | Static Power Reduction in Caches Using Deterministic Naps |
US9494997B2 (en) | 2014-06-16 | 2016-11-15 | Apple Inc. | Hierarchical clock control using hysterisis and threshold management |
US9886207B2 (en) * | 2014-09-16 | 2018-02-06 | Mediatek Inc. | Memory-access method using batch command queue and associated controller |
US9911508B2 (en) | 2014-09-18 | 2018-03-06 | Via Alliance Semiconductor Co., Ltd | Cache memory diagnostic writeback |
US10928882B2 (en) * | 2014-10-16 | 2021-02-23 | Futurewei Technologies, Inc. | Low cost, low power high performance SMP/ASMP multiple-processor system |
US10248180B2 (en) * | 2014-10-16 | 2019-04-02 | Futurewei Technologies, Inc. | Fast SMP/ASMP mode-switching hardware apparatus for a low-cost low-power high performance multiple processor system |
US9952650B2 (en) * | 2014-10-16 | 2018-04-24 | Futurewei Technologies, Inc. | Hardware apparatus and method for multiple processors dynamic asymmetric and symmetric mode switching |
WO2016082205A1 (zh) * | 2014-11-28 | 2016-06-02 | 华为技术有限公司 | 一种多级缓存的功耗控制方法、装置及设备 |
US9734072B2 (en) | 2015-03-24 | 2017-08-15 | Macom Connectivity Solutions, Llc | Main memory prefetch operation and multiple prefetch operation |
US10268262B2 (en) | 2015-08-02 | 2019-04-23 | Dell Products, L.P. | Dynamic peak power limiting to processing nodes in an information handling system |
US11068401B2 (en) | 2015-09-25 | 2021-07-20 | Intel Corporation | Method and apparatus to improve shared memory efficiency |
US10255190B2 (en) * | 2015-12-17 | 2019-04-09 | Advanced Micro Devices, Inc. | Hybrid cache |
CN105404591B (zh) * | 2015-12-18 | 2019-02-26 | 杭州士兰微电子股份有限公司 | 处理器系统及其存储器控制方法 |
US10073787B2 (en) * | 2016-04-18 | 2018-09-11 | Via Alliance Semiconductor Co., Ltd. | Dynamic powering of cache memory by ways within multiple set groups based on utilization trends |
JP2018005667A (ja) * | 2016-07-05 | 2018-01-11 | 富士通株式会社 | キャッシュ情報出力プログラム、キャッシュ情報出力方法及び情報処理装置 |
US10713170B2 (en) * | 2016-08-01 | 2020-07-14 | Tsvlink Corp. | Multiple channel cache memory and system memory device utilizing a pseudo-multiple port for commands and addresses and a multiple frequency band QAM serializer/deserializer for data |
US10255181B2 (en) * | 2016-09-19 | 2019-04-09 | Qualcomm Incorporated | Dynamic input/output coherency |
US10424107B2 (en) | 2017-04-01 | 2019-09-24 | Intel Corporation | Hierarchical depth buffer back annotaton |
US10241921B2 (en) * | 2017-04-17 | 2019-03-26 | Intel Corporation | Avoid cache lookup for cold cache |
US20180300238A1 (en) * | 2017-04-17 | 2018-10-18 | Balaji Vembu | Adaptive cache sizing per workload |
US11010953B2 (en) | 2017-04-21 | 2021-05-18 | Intel Corporation | Dedicated fixed point blending for energy efficiency |
CN108805276B (zh) * | 2017-06-16 | 2020-09-22 | 上海兆芯集成电路有限公司 | 处理器、用于操作处理器的方法和计算机可用介质 |
KR102462507B1 (ko) * | 2017-06-29 | 2022-11-02 | 삼성전자주식회사 | 프로세서, 이를 포함하는 컴퓨팅 장치 및 프로세서 저전력 모드 진입 방법 |
US10178619B1 (en) | 2017-09-29 | 2019-01-08 | Intel Corporation | Advanced graphics power state management |
US20190332166A1 (en) * | 2018-04-27 | 2019-10-31 | Qualcomm Incorporated | Progressive power-up scheme for caches based on occupancy state |
US20200103956A1 (en) * | 2018-09-28 | 2020-04-02 | Qualcomm Incorporated | Hybrid low power architecture for cpu private caches |
US11106261B2 (en) | 2018-11-02 | 2021-08-31 | Nvidia Corporation | Optimal operating point estimator for hardware operating under a shared power/thermal constraint |
US10540802B1 (en) * | 2019-01-31 | 2020-01-21 | Advanced Micro Devices, Inc. | Residency map descriptors |
KR20200114481A (ko) | 2019-03-28 | 2020-10-07 | 에스케이하이닉스 주식회사 | 메모리 시스템, 메모리 컨트롤러 및 그 동작 방법 |
CN112540796B (zh) * | 2019-09-23 | 2024-05-07 | 阿里巴巴集团控股有限公司 | 一种指令处理装置、处理器及其处理方法 |
US11385693B2 (en) | 2020-07-02 | 2022-07-12 | Apple Inc. | Dynamic granular memory power gating for hardware accelerators |
US20230094030A1 (en) * | 2021-09-30 | 2023-03-30 | Advanced Micro Devices, Inc. | Cache resizing based on processor workload |
KR20230047823A (ko) * | 2021-10-01 | 2023-04-10 | 삼성전자주식회사 | 시스템 온 칩 및 어플리케이션 프로세서 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1517886A (zh) * | 2003-01-07 | 2004-08-04 | ض� | 一种支持处理器的功率操作模式的高速缓存存储器 |
EP1628210A2 (en) * | 2004-08-19 | 2006-02-22 | Matsushita Electric Industrial Co., Ltd. | Processing apparatus |
CN101243379A (zh) * | 2005-08-22 | 2008-08-13 | 英特尔公司 | 用于降低功率的动态存储器大小调整 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6845432B2 (en) * | 2000-12-28 | 2005-01-18 | Intel Corporation | Low power cache architecture |
GB2378778B (en) | 2001-08-13 | 2005-03-23 | Ibm | Computer system with heap and card table |
US7051221B2 (en) * | 2003-04-28 | 2006-05-23 | International Business Machines Corporation | Performance throttling for temperature reduction in a microprocessor |
US7127560B2 (en) * | 2003-10-14 | 2006-10-24 | International Business Machines Corporation | Method of dynamically controlling cache size |
US7395372B2 (en) * | 2003-11-14 | 2008-07-01 | International Business Machines Corporation | Method and system for providing cache set selection which is power optimized |
JP3834323B2 (ja) * | 2004-04-30 | 2006-10-18 | 日本電気株式会社 | キャッシュメモリおよびキャッシュ制御方法 |
US7647514B2 (en) * | 2005-08-05 | 2010-01-12 | Fujitsu Limited | Reducing power consumption at a cache |
US20070083783A1 (en) * | 2005-08-05 | 2007-04-12 | Toru Ishihara | Reducing power consumption at a cache |
US7516274B2 (en) | 2005-11-15 | 2009-04-07 | Sun Microsystems, Inc. | Power conservation via DRAM access reduction |
US7752474B2 (en) | 2006-09-22 | 2010-07-06 | Apple Inc. | L1 cache flush when processor is entering low power mode |
US7606976B2 (en) * | 2006-10-27 | 2009-10-20 | Advanced Micro Devices, Inc. | Dynamically scalable cache architecture |
US7966457B2 (en) | 2006-12-15 | 2011-06-21 | Microchip Technology Incorporated | Configurable cache for a microprocessor |
JP5231867B2 (ja) * | 2008-05-23 | 2013-07-10 | 株式会社東芝 | キャッシュメモリシステム |
US8271732B2 (en) * | 2008-12-04 | 2012-09-18 | Intel Corporation | System and method to reduce power consumption by partially disabling cache memory |
US8156357B2 (en) * | 2009-01-27 | 2012-04-10 | Freescale Semiconductor, Inc. | Voltage-based memory size scaling in a data processing system |
US9311245B2 (en) * | 2009-08-13 | 2016-04-12 | Intel Corporation | Dynamic cache sharing based on power state |
US8412885B2 (en) * | 2009-11-12 | 2013-04-02 | Intel Corporation | Searching a shared cache by using search hints and masked ways |
US8352683B2 (en) * | 2010-06-24 | 2013-01-08 | Intel Corporation | Method and system to reduce the power consumption of a memory device |
-
2010
- 2010-05-11 US US12/777,657 patent/US8412971B2/en active Active
-
2011
- 2011-05-10 CN CN201180028667.7A patent/CN102934046B/zh active Active
- 2011-05-10 WO PCT/US2011/035975 patent/WO2011143256A1/en active Application Filing
- 2011-05-10 EP EP11720946.0A patent/EP2569680B1/en active Active
- 2011-05-10 JP JP2013510258A patent/JP5735638B2/ja active Active
- 2011-05-10 KR KR1020127032300A patent/KR101673500B1/ko active IP Right Grant
-
2013
- 2013-04-01 US US13/854,616 patent/US8832485B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1517886A (zh) * | 2003-01-07 | 2004-08-04 | ض� | 一种支持处理器的功率操作模式的高速缓存存储器 |
EP1628210A2 (en) * | 2004-08-19 | 2006-02-22 | Matsushita Electric Industrial Co., Ltd. | Processing apparatus |
CN101243379A (zh) * | 2005-08-22 | 2008-08-13 | 英特尔公司 | 用于降低功率的动态存储器大小调整 |
Also Published As
Publication number | Publication date |
---|---|
EP2569680A1 (en) | 2013-03-20 |
KR20130115090A (ko) | 2013-10-21 |
EP2569680B1 (en) | 2020-06-03 |
CN102934046A (zh) | 2013-02-13 |
JP2013526739A (ja) | 2013-06-24 |
US20110283124A1 (en) | 2011-11-17 |
JP5735638B2 (ja) | 2015-06-17 |
KR101673500B1 (ko) | 2016-11-07 |
US8832485B2 (en) | 2014-09-09 |
WO2011143256A1 (en) | 2011-11-17 |
US20130227321A1 (en) | 2013-08-29 |
US8412971B2 (en) | 2013-04-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102934046B (zh) | 高速缓存控制的方法和装置 | |
US6038673A (en) | Computer system with power management scheme for DRAM devices | |
CN102934084B (zh) | 用于通过将第一核类型与第二核类型耦合来提高功率性能的装置、方法和系统 | |
KR101560860B1 (ko) | 전력 소모를 제한하기 위해 비휘발성 메모리에서의 동작들을 동적으로 제어하는 방법들 및 시스템들 | |
TWI534599B (zh) | 用於配合動態電壓脈波結構而改良電力遞送效能的裝置、方法與系統 | |
US7904658B2 (en) | Structure for power-efficient cache memory | |
US9021207B2 (en) | Management of cache size | |
US20150026407A1 (en) | Size adjusting caches based on processor power mode | |
US20040105918A1 (en) | Semiconductor integrated circuit device | |
US7870400B2 (en) | System having a memory voltage controller which varies an operating voltage of a memory and method therefor | |
EP2596413A1 (en) | Managing current and power in a computing system | |
KR20130106789A (ko) | 계층적으로 캐싱되는 프로세서들에서의 조정된 프리페칭 | |
US10095432B2 (en) | Power management and monitoring for storage devices | |
US8484418B2 (en) | Methods and apparatuses for idle-prioritized memory ranks | |
WO2005069148A2 (en) | Memory management method and related system | |
US11829619B2 (en) | Resource usage arbitration in non-volatile memory (NVM) data storage devices with artificial intelligence accelerators | |
US10379748B2 (en) | Predictive scheduler for memory rank switching | |
WO2024114728A1 (zh) | 一种异构处理器及相关调度方法 | |
US20230376222A1 (en) | On-demand activation of memory path during sleep or active modes | |
CN114429776A (zh) | 具有多种类型的介质的存储系统中的耐久性感知的数据放置 | |
US20150026406A1 (en) | Size adjusting caches by way | |
US20240111351A1 (en) | Frequency/State Based Power Management Thresholds | |
Bhebhe et al. | A survey of emerging architectural techniques for improving cache energy consumption | |
CN117348715A (zh) | 节能管理方法、装置、计算设备及计算机可读存储介质 | |
Ohneda et al. | Design and evaluation of high performance microprocessor with reconfigurable on-chip memory |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |