首页 / 专利库 / 电脑零配件 / 硬件 / 设置高速缓冲存储器的时钟速度/电压的装置及方法

设置高速缓冲存储器的时钟速度/电压的装置及方法

阅读:223发布:2024-02-12

专利汇可以提供设置高速缓冲存储器的时钟速度/电压的装置及方法专利检索,专利查询,专利分析的服务。并且提供了一种用来基于内存 请求 信息设置高速缓冲 存储器 的时钟速度/ 电压 的装置和方法。为响应接收内存请求,利用与 高速缓冲存储器 进行电通信的 硬件 ,识别与所述内存请求有关的信息。基于所述信息,利用与所述高速缓冲存储器进行电通信的硬件,设置所述高速缓冲存储器的至少一部分的时钟速度和/或电压。,下面是设置高速缓冲存储器的时钟速度/电压的装置及方法专利的具体信息内容。

1.一种方法,其特征在于,包括:
接收内存请求
为响应接收所述内存请求,利用与高速缓冲存储器进行电通信的硬件,识别与所述内存请求有关的信息;
基于所述信息,利用与所述高速缓冲存储器进行电通信的硬件,设置所述高速缓冲存储器的至少一部分的时钟速度或电压中的至少一个。
2.根据权利要求1所述的方法,其特征在于,所述信息与引起所述内存请求的至少一个处理器的至少一部分有关。
3.根据权利要求1所述的方法,其特征在于,所述信息与引起所述内存请求的至少一个处理器的至少一部分的时钟速度或电压中的至少一个有关。
4.根据权利要求1所述的方法,其特征在于,所述信息与所述内存请求的类型有关。
5.根据权利要求4所述的方法,其特征在于,所述内存请求的类型包括读取类型、一致性类型、写入类型、预取类型或刷新类型中的至少一个。
6.根据权利要求1所述的方法,其特征在于,所述信息与作为所述内存请求对象的数据状态有关。
7.根据权利要求6所述的方法,其特征在于,所述数据的状态包括命中状态、未命中状态或先前未命中后命中状态中的至少一个。
8.根据权利要求1所述的方法,其特征在于,所述信息与所述内存请求引起的高速缓冲存储器的操作有关。
9.根据权利要求8所述的方法,其特征在于,所述内存请求引起的高速缓冲存储器的操作包括读取操作、写入操作、外部存储器请求、刷新操作或空操作中的至少一个。
10.根据权利要求1所述的方法,其特征在于,从所述内存请求的字段中识别所述信息。
11.根据权利要求10所述的方法,其特征在于,所述内存请求的字段包括请求程序标识字段。
12.根据权利要求10所述的方法,其特征在于,所述内存请求的字段包括类型字段。
13.根据权利要求1所述的方法,其特征在于,所述时钟速度或电压中的至少一个可以设置为至少一个处理器中的至少一部分中的时钟速度或电压中的至少一个,其中所述处理器表现出最高时钟速度或电压。
14.根据权利要求1所述的方法,其特征在于,为所述高速缓冲存储器的子集设置了所述时钟速度或电压中的至少一个。
15.根据权利要求14所述的方法,其特征在于,所述高速缓冲存储器的子集包括所述高速缓存内存的至少一个存储体。
16.根据权利要求1所述的方法,其特征在于,为所述高速缓冲存储器的整体设置了所述时钟速度或电压中的至少一个。
17.根据权利要求1所述的方法,其特征在于,基于所述信息同时设置所述时钟速度和电压。
18.根据权利要求1所述的方法,其特征在于,所述硬件与所述高速缓冲存储器相集成。
19.一种装置,其特征在于,包括:
用于识别与所述内存请求有关的信息,以响应接收内存请求的电路
用于基于所述信息设置所述高速缓冲存储器的至少一部分中的时钟速度或电压中的至少一个的电路。
20.一种系统,其特征在于,包括:
高速缓冲存储器,用来存储数据;
与所述高速缓冲存储器进行电通信的硬件,所述硬件用于:
用于识别与所述内存请求有关的信息,以响应接收内存请求;
用于基于所述信息设置所述高速缓冲存储器的至少一部分中的时钟速度或电压中的至少一个。

说明书全文

设置高速缓冲存储器的时钟速度/电压的装置及方法

[0001] 相关申请案交叉申请
[0002] 本申请要求于2016年7月22日递交的发明名称为“用来基于内存请求信息设置高速缓冲存储器的时钟速度/电压的装置及方法”的第15/217,911号美国非临时专利申请案的在先申请优先权,该在先申请的内容以引入的方式并入本文。

技术领域

[0003] 本发明涉及高速缓冲存储器,尤其涉及设置高速缓冲存储器的时钟速度和/或电压。

背景技术

[0004] 现代处理器通常使用高速缓冲存储器以可加快数据访问速度的方式存储这些数据,从而提高整体性能。这种高速缓冲存储器通常配备有动态电压/频率缩放(dynamic voltage/frequency scaling,简称DVFS)功能,用来改变高速缓冲存储器工作所使用的电压和/或时钟频率,从而达到节电的目的。到目前为止,这种DVFS功能通常仅限用来在空闲模式下缩放所述电压/频率(例如,当没有服务内存请求时等)的系统,或者仅仅基于所服务的处理器、代理等的时钟缩放所述电压/频率的系统。

发明内容

[0005] 提供了一种用来基于内存请求信息设置高速缓冲存储器的时钟速度/电压的方法。为响应接收内存请求,利用与高速缓冲存储器进行电通信的硬件,识别与所述内存请求有关的信息。基于所述信息,利用与所述高速缓冲存储器进行电通信的硬件,设置所述高速缓冲存储器的至少一部分的时钟速度和/或电压。
[0006] 此外,还提供了一种用来基于内存请求信息设置高速缓冲存储器的时钟速度/电压的装置和系统。其中包括的电路用来识别与内存请求有关的信息,以响应接收所述内存请求。基于所述信息,附加电路用来设置所述高速缓冲存储器的至少一部分的时钟速度和/或电压。
[0007] 在第一实施例中,所述信息可以与引起内存请求的至少一个处理器中的至少一部分有关。例如,所述信息可以与引起所述内存请求的所述处理器中所述一部分中的时钟速度和/或电压有关。
[0008] 在第二实施例中(可以与第一实施例结合,也可以不结合),所述信息可以与所述内存请求的类型有关(例如,读取类型、一致性类型、写入类型、预取类型或刷新类型等)。
[0009] 在第三实施例中(可以与第一和/或第二实施例结合,也可以不结合),所述信息可以与作为所述内存请求对象的数据状态有关(例如,命中状态、未命中状态或先前未命中后命中状态等)。
[0010] 在第四实施例中(可以与第一、第二和/或第三实施例结合,也可以不结合),所述信息可以与所述内存请求引起的所述高速缓冲存储器的操作有关(例如,读取操作、写入操作、外部存储器请求、刷新操作或空操作等)。
[0011] 在第五实施例中(可以与第一、第二、第三和/或第四实施例结合,也可以不结合),所述信息可以从所述内存请求的字段中识别(例如,请求程序标识字段、类型字段等)。
[0012] 在第六实施例中(可以与第一、第二、第三、第四和/或第五实施例结合,也可以不结合),所述时钟速度或电压中的至少一个可以设置为至少一个处理器中的至少一部分中的时钟速度或电压中的至少一个,其中所述处理器表现出最高时钟速度或电压。
[0013] 在第七实施例中(可以与第一、第二、第三、第四、第五和/或第六实施例结合,也可以不结合),可以为所述高速缓冲存储器的子集设置所述时钟速度或电压中的至少一个。
[0014] 在第八实施例中(可以与第一、第二、第三、第四、第五、第六和/或第七实施例结合,也可以不结合),可以为所述高速缓冲存储器的整体设置所述时钟速度或电压中的至少一个。
[0015] 在第九实施例中(可以与第一、第二、第三、第四、第五、第六、第七和/或第八实施例结合,也可以不结合),可以基于所述信息同时设置所述时钟速度和电压。
[0016] 在第十实施例中(可以与第一、第二、第三、第四、第五、第六、第七、第八和/或第九实施例结合,也可以不结合),所述硬件可以与所述高速缓冲存储器集成。
[0017] 在第十一实施例中(可以与第一、第二、第三、第四、第五、第六、第七、第八、第九和/或第十实施例结合,也可以不结合),所述信息可以从所述内存请求的字段中以请求程序标识字段和/或类型字段的形式识别。
[0018] 为此,在一些可选的实施例中,上述装置、系统和/或方法的上述特征中的一个或多个可以在高速缓存内存处于活动状态时启用时钟速度和/或电压控制,其中由于识别了与活动内存请求相关的特定信息,可以用更高的精度管理这种控制,从而又进一步大幅省电,而在缺乏这种精细的时钟速度和/或电压控制的系统中则摒弃此类节省。在其他实施例中,也可以增强性能。应注意的是,前述的潜在优点仅出于说明的目的而进行阐述,并且不应被解释为以任何方式进行限制。附图说明
[0019] 图1示出了根据一个实施例所述的一种用来基于内存请求信息设置高速缓冲存储器的时钟速度/电压的方法;
[0020] 图2示出了根据另一实施例所述的一种用来基于内存请求信息设置高速缓冲存储器的时钟速度/电压的系统;
[0021] 图3示出了根据又一实施例所述的一种用来基于内存请求信息设置高速缓冲存储器的时钟速度/电压的共享缓存控制器
[0022] 图4示出了根据又一实施例所述的一种样本内存请求,其具有可用来设置高速缓冲存储器的时钟速度/电压的信息;
[0023] 图5示出了根据又一实施例所述的一种用来基于内存请求信息设置高速缓冲存储器的时钟速度/电压的方法;
[0024] 图6示出了根据又一实施例所述的一种用来基于内存请求信息设置高速缓冲存储器的时钟速度/电压的附加变型;
[0025] 图7A示出了根据又一实施例所述的一种用来基于内存请求信息设置高速缓冲存储器的时钟速度/电压的示例性时序图;
[0026] 图7B示出了根据一个实施例所述的一种用来基于内存请求信息设置高速缓冲存储器的时钟速度/电压的系统;
[0027] 图8示出了根据一个可能的实施例所述的网络架构;
[0028] 图9示出了根据一个实施例所述的示例性系统。

具体实施方式

[0029] 图1示出了根据一个实施例所述的一种用来基于内存请求信息设置高速缓冲存储器的时钟速度/电压的方法100。如图所示,在步骤102中接收内存请求。在本说明书的上下文中,这种内存请求可以包括旨在引起高速缓冲存储器操作的任何请求。
[0030] 如步骤104所示,为响应接收内存请求,识别与所述内存请求相关的信息。在本说明书中,这种信息可以包括所述内存请求中包括的任何信息,也可以包括由所述内存请求的内容获得和/或创建的任何信息。如图1所示,利用与高速缓冲存储器进行电通信的硬件来执行步骤104。这种硬件可以包括能够识别所述信息并使用同一信息的任何硬件(例如集成元件、分立元件等)。此外,在本说明书的上下文中,“电通信”一词可以指相关电子元件之间的任何直接和/或间接电耦合。例如,这些电子元件之间的电连通可以有中间元件,也可以没有。
[0031] 此外,在本说明书的上下文中,所述高速缓冲存储器可以包括能够比系统中其他RAM访问速度更快的任何随机存取内存(random access memory,简称RAM)。例如,在一个可能的实施例中,所述高速缓冲存储器可以包括静态随机存取内存(static random access memory,简称SRAM)或任何其他类型的RAM。还设想了所述高速缓冲存储器包括混合内存类型/类系统的实施例。
[0032] 在一实施例中,所述高速缓冲存储器可以包括与本地高速缓冲存储器分开的共享高速缓冲存储器。在此实施例中,所述本地高速缓冲存储器的单独实例可以仅由多个单独计算机或处理器组件(例如,集群、内核、窥探代理等)中的一个访问,而所述共享高速缓冲存储器可以在所述单独的计算机或处理器组件中的多个之间共享。应注意的是,所述前述处理器可包括通用处理器、中央处理单元、图形处理器和/或任何其他类型的所需处理器。
[0033] 在一实施例中,所述信息可以与引起内存请求的至少一个处理器中的至少一部分有关。例如,所述信息可以与引起所述内存请求的至少一个处理器中的至少一部分中的时钟速度和/或电压有关。在另一实施例中,所述信息可以与所述内存请求的类型有关(例如,读取类型、写入类型、一致性类型、预取类型或刷新类型等)。在本说明书的上下文中,读取类型内存请求可涉及从内存读取数据的请求;写入类型内存请求可涉及将数据写入内存的请求;一致性类型内存请求可涉及确保数据在系统中的多个内存位置之间保持一致的请求;预取类型内存请求可涉及尝试使数据可避免未命中的请求;刷新类型内存请求可涉及清空高速缓冲存储器中的至少一部分的请求。
[0034] 在又一实施例中,所述信息可以与作为所述内存请求对象的数据状态有关(例如,命中状态、未命中状态或先前未命中后命中状态等)。在本说明书的上下文中;命中状态可以指数据的内存请求导致所述数据可以在所述高速缓冲存储器中访问的情况;未命中状态可以指数据的内存请求未导致所述数据可以在所述高速缓存内存中访问的情况;先前未命中后命中状态可以指数据的内存请求导致所述数据在先前的相同数据内存请求未导致所述数据可以在所述高速缓冲存储器中访问之后可以在所述高速缓冲存储器中访问的情况。
[0035] 在又一实施例中,所述信息可以与所述内存请求引起的所述高速缓冲存储器的操作有关(例如,读取操作、写入操作、外部存储器请求、刷新操作或空操作等)。在本说明书的上下文中,所述读取动作可以指导致从高速缓冲存储器读取数据的任何操作;所述写入动作可以指导致数据写入高速缓冲存储器的任何操作;所述外部存储器请求内存可以指从所述高速缓存内存以外的内存请求数据的任何操作;所述刷新操作可以指导致至少一些数据从所述高速缓冲存储器中清空的任何操作;所述空操作可以指没有采取任何措施来响应内存请求的任何情况。尽管可以以任何期望的方式识别前述信息,但是在一实施例中,也可以从内存请求的字段(例如,请求程序标识字段、类型字段等)中识别所述信息。关于前述信息的更多细节将在下文的后续实施例描述中更详细地阐述。
[0036] 基于步骤104中识别的信息,利用与所述高速缓冲存储器进行电通信的硬件,在操作106中设置所述高速缓冲存储器的至少一部分的时钟速度和/或电压。应注意的是,结合步骤104和106使用的硬件的一个或多个部分可以相同,也可以不同。此外,所述硬件可以与所述高速缓冲存储器(或包括但不限于处理器、内存控制器等的任何其他组件)集成,也可以不集成。在一实施例中,可以同时设置所述时钟速度和电压,而在其他实施例中则可以仅设置所述时钟速度或仅设置所述电压。例如,在一实施例中,所述时钟速度和电压可以包括所述高速缓冲存储器的操作点(operating point,简称OPP)。此外,可以为所述高速缓冲存储器的子集或所述高速缓冲存储器的整体设置所述时钟速度和/或电压。在前一种情况下,所述高速缓冲存储器的子集可以包括所述高速缓冲存储器中的至少一个存储体,就此而言,也可以包括其任何子集。
[0037] 根据用户的需求,现在将阐述关于在各种可选结构和应用中可以或不可以实现所述方法的更多说明性信息。应注意的是,下面的信息是为了说明的目的而提出的,不应该被解释为以任何方式进行限制。任何以下特征可以可选地进行合并,而不管其他特征是否描述。
[0038] 例如,在一些可选的实施例中,所述方法100可以在所述高速缓冲存储器处于活动状态时启用时钟速度和/或电压控制。由于识别了与活动内存请求相关的特定信息,可以用更高的精度管理这种控制,从而又进一步大幅省电,而在缺乏这种精细的时钟速度和/或电压控制的系统中则摒弃此类节省。在其他实施例中,也可以增强性能。仅作为示例,在一个可能的实施例中,作为高速率窥探(以实现缓存一致性等)对象的高速缓冲存储器可以通过根据窥探设备设置相应的时钟速度和/或电压控制来避免停顿。当然,前述的潜在优点是严格可选的。
[0039] 图2示出了根据另一实施例所述的一种用来基于内存请求信息设置高速缓冲存储器的时钟速度/电压的系统200。可选地,所述系统200可以在任何先前的和/或随后的附图和/或其描述中阐述的任何一个或多个实施例的上下文中实现。但是,应理解的是,所述系统200可以在任何期望环境的上下文中实现。
[0040] 如图所示,所述系统200包括多个集群202,其中每个集群202包括多个内核204。在使用中,所述内核204分别可以独立地和/或共同地分配计算任务,而所述计算任务又可以具有各种计算和存储要求。这种存储要求的至少一部分可以由与所述多个内核204集成的本地高速缓冲存储器206提供服务。此外,所述内核204可以按所示方式由集群时钟208[例如,相环(phase locked loop,简称PLL)电路等)驱动。
[0041] 此外,还提供了共享高速缓冲存储器210,其经由高速缓存一致性互连212与所述集群202的内核204进行电通信。通过这种设计,所述共享高速缓冲存储器210可用于所述内核204,其采用的方式类似于本地高速缓冲存储器206可用的方式。此外,可以进一步利用高速缓存一致性互连212来确保在公共数据同时存储在所述本地高速缓冲存储器206和所述共享高速缓冲存储器210的情况下,这种公共数据仍保持一致。
[0042] 继续结合图2,提供了与所述共享高速缓冲存储器210进行电通信的共享高速缓存控制器215。如图进一步所示,所述共享高速缓存控制器215接收由集群202(和/或其他来源)的内核204引起的内存请求216作为输入,而且可以经由任何期望的路由接收(例如,经由内存控制器(未示出)、直接从内核204、经由其他组件等接收)。作为进一步的输入,所述共享高速缓存控制器215还接收与所述内核204和/或由所述共享高速缓存控制器215服务的任何其他系统组件有关的一个或多个时钟信号218。
[0043] 在操作中,所述共享高速缓存控制器215利用所述内存请求216和/或一个或多个时钟信号218(和/或从其收集的任何信息)将至少一个时钟和/或电压信号220输出到所述共享高速缓冲存储器210的目的是设置所述共享高速缓冲存储器210的工作时钟和/或电压。为此,通过设置作为所述内存请求216功能的时钟和/或电压并在可能的情况下设置时钟信号218,可以使共享高速缓冲存储器210在工作时提高节电量。在各种实施例中,这种提高的节电量可能取决于收集的信息以及它如何用来设置所述共享高速缓冲存储器210的时钟和/或电压。现在将针对所述共享高速缓存控制器215的一种可能架构阐述更多信息。
[0044] 图3示出了根据又一实施例所述的一种用来基于内存请求信息设置高速缓冲存储器的时钟速度/电压的共享缓存控制器300。可选地,所述共享高速缓存控制器300可以在任何先前的和/或随后的附图和/或其描述中阐述的任何一个或多个实施例的上下文中实现。例如,在一实施例中,所述共享缓存控制器300可以包括图2的共享缓存控制器215。但是,应理解的是,所述共享缓存控制器300可以在任何期望环境的上下文中实现。
[0045] 如图所示,所述共享高速缓存控制器300包括高速缓存控制单元302,其与作为高速缓存操作的SRAM 304保持电通信。在使用中,所述高速缓存控制单元302接收多个内存请求306,其可以采用各种类型中的任何一种或多种(例如,读取类型、写入类型、一致性类型、预取类型或刷新类型等)。如下文后续实施例明确所述,所述内存请求306可以包括各种字段,其中包括具有要操作数据的数据字段,识别所述内存请求类型的类型字段等。为响应所述内存请求306,所述高速缓存控制单元302引起与SRAM 304有关的一个或多个操作(例如,读取操作、写入操作、外部存储器请求、刷新操作或空操作等)。
[0046] 如图进一步所示,所述内存请求306还可以引起所述共享高速缓存控制器300经由一个或多个总线307与(例如,读取、写入等)外部存储器305交互。即便如此,所述高速缓存控制单元302还可以报告由每个内存请求306产生的数据状态信号308(例如,命中、未命中或先前未命中后命中状态等)。在一实施例中,可以在没有必要请求的情况下推送该数据状态信号308,而在其他实施例中,可以由所述共享高速缓存控制器300的其他组件请求所述数据状态信号308。
[0047] 所述共享高速缓存控制器300还包括高速缓存电源管理单元309,其接收所述内存请求306、数据状态信号308和多个时钟信号310作为输入。该时钟信号310可以包括要由所述SRAM304服务的多个组件(例如,计算机、处理器、内核、窥探代理、其各部分等)中的每个组件的时钟信号(例如,REQUESTOR_CLK1、REQUESTOR_CLK2...REQUESTOR_CLKN等)。此外,也可以提供参考时钟(REF_CLK)。
[0048] 在操作中,所述共享高速缓存控制器300用于输出电压设置312以及内部时钟设置314A、314B,其中所述输出电压设置312用来设置所述SRAM 304的工作电压(和/或其任何部分),所述内部时钟设置314A、314B用来设置所述SRAM 304的工作时钟频率(和/或其任何部分)。此外,该电压设置312和内部时钟设置314A、314B具体设置为从所述内存请求306的内容收集、获得和/或产生(通过原因)信息的功能,包括但不限于所述内存请求306、所述数据状态信号308和/或结合所述内存请求306收集和/或处理的任何其他信息的字段。
[0049] 如图所示,为了设置所述SRAM 304的时钟,所述内部时钟设置314A、314B包括馈送到多路复用器315的时钟选择信号314A,其中所述多路复用器315将时钟信号310中的一个时钟信号馈送到时钟分频器316,所述时钟分频器316根据由高速缓存电源管理单元309提供的分频比信号314B来分频时钟信号310。为此,输出外部时钟设置318以设置所述SRAM 304的时钟。通过这种设计,可以降低所述时钟信号310中适当选择的一个时钟信号(为服务组件提供时钟等),以便为SRAM 304提供时钟。
[0050] 通过这种设计,提供了第一模(例如,高速缓存控制单元302,其他电路等),用来识别与所述内存请求有关的信息,以响应接收内存请求。此外,提供了第二模块(例如,高速缓存电源管理单元309,其他电路等),以基于所述信息设置所述高速缓冲存储器的至少一部分中的时钟速度或电压中的至少一个。如前所述,这种电压/时钟由于识别了与活动内存请求相关的特定信息,可以用更高的精度管理这种控制,从而又进一步大幅省电,而在缺乏这种智能精细的时钟速度和/或电压控制的系统中则摒弃此类节省。
[0051] 图4示出了根据又一实施例所述的一种样本内存请求400,其具有可用来设置高速缓冲存储器的时钟速度/电压的信息。可选地,所述样本内存请求400可以在任何先前的和/或随后的附图和/或其描述中阐述的任何一个或多个实施例的上下文中使用。例如,在一实施例中,所述样本内存请求400可以包括图2的共享缓存控制器215、图3的共享缓存控制器300等。
[0052] 如图所示,所述内存请求400包括多个字段,其中包括类型字段402、请求程序标识符字段404、地址字段406、数据字段408、脏位字段410、高速缓存提示字段412和其他属性字段414。在使用中,所述类型字段402可以标识所述内存请求的类型(例如,读取类型、写入类型、一致性类型、预取类型或刷新类型等),而请求程序标识符字段404可以标识导致所述内存请求400的组件(例如,集群、内核、窥探代理等)。这可以使用任何期望的标识符(例如,唯一的二进制数等)来实现。通过这种设计,所述类型字段402、所述请求程序标识符字段404和/或任何其他字段的内容可以用来设置高速缓冲存储器的时钟速度/电压。现在将针对可以使用所述内存请求400来设置高速缓冲存储器的时钟速度/电压所采用的一种可能方法阐述更多信息。
[0053] 图5示出了根据又一实施例所述的一种用来基于内存请求信息设置高速缓冲存储器的时钟速度/电压的方法500。可选地,所述方法500可以在任何先前的和/或随后的附图和/或其描述中阐述的任何一个或多个实施例的上下文中实现。例如,在一实施例中,所述方法500可以由图2的共享高速缓存控制器215、图3的共享高速缓存控制器300等执行。此外,所述方法500可以在包括非阻塞多存储库高速缓存的环境中操作,提供回写/写分配功能以及预取器引擎、多个写缓冲器和填充/逐出队列。但是,应理解的是,所述方法500可以在任何期望环境的上下文中实现。
[0054] 如图所示,在步骤502中接收内存请求。在各种实施例中,所述内存请求可以由本文公开的任何组件(例如,图2的共享高速缓存控制器215、图3的共享高速缓存控制器300等)接收,就此而言,也可以由其他组件接收。在步骤504中存储类型字段的内容以及所述内存请求的请求程序标识符字段(例如,图4的类型字段402、请求程序标识符字段404等)。
[0055] 然后在判定506中确定步骤502中接收的内存请求是否导致命中(即,请求数据可访问到等)。如果不是,则在缓冲器中放置用来从外部存储器获取数据的请求,以此从外部存储器(与高速缓冲存储器分开)请求数据。参见步骤508。然后,根据判定510,所述方法500轮询,直到提供所述请求数据(例如,数据等)。然后根据判定512确定数据是否被复制到所述高速缓冲存储器。应注意的是,在一些实施例中,请求的数据直接发送到所述请求组件(因此不被复制到所述高速缓冲存储器)。
[0056] 因此,如果在判定506中确定所述内存请求导致命中,或者在判定512中确定将数据复制到所述高速缓冲存储器中;所述方法500接着在步骤514中调度队列中的内存请求以访问高速缓冲存储器的目标部分(例如,存储体等)而。然后,所述方法500轮询,直到根据判定516调度所述请求,之后在步骤518中为所述内存请求设置访问指示符。在各种实施例中,这种访问指示符可以是与所述内存请求一起存储或与其分开的任何一个或多个位,目的是指示所述内存请求(以及其中包含的/由其获得的任何信息)是活动的,因此应该在引起所述内存请求的相关组件(或其一个或多个部分)访问期间设置所述高速缓冲存储器的电压/时钟时考虑所述内存请求。
[0057] 接下来,所述方法500在判定520中确定在上述队列中是否存在任何未决的内存请求。如果没有,则所述方法500处于空闲状态(并且可以采用其他节电技术,也可以不采用)。另一方面,如果在上述队列中存在任何未决的内存请求(例如,所述方法500是活动的),则为所述高速缓冲存储器的相应的目标部分确定最佳电压和/或时钟(例如,OPP等)。参见步骤522。在各种实施例中,这种OPP可以按利用所述内存请求(和/或其内容或由此获得/产生的信息)在所述高速缓冲存储器活动时提高节电量的任何期望方式确定。在一实施例中,最优OPP可以按照队列中未决内存请求的访问指示符的指示,由高速缓存电源管理单元(例如,图3的高速缓存电源管理单元309等)确定为当前正在访问高速缓冲存储器的请求程序的最高(即,与其他相比最快)时钟。
[0058] 在另一实施例中,为限制改变OPP的频率,可以在改变OPP之前使用最小时间量。因此,可以在每个周期缓冲所述内存请求来改变OPP,但是也可以仅每隔N个周期进行改变,其中N=1,2,3,…X(任何整数)。为此,可以基于正在访问所述高速缓冲存储器的上下文来延迟缩放高速缓存内存的时钟的判定,其中这种上下文可以由所述内存请求信息定义。
[0059] 在另一个可能的实施例中,可以强制这种时间量补偿基于内存请求速率改变OPP的延迟时间。在其他实施例中,使用无干扰多路复用器设计可以在选择和改变时钟时最大程度减少锁定延迟时间。此外,所述高速缓冲存储器的所选高速缓存/存储体电压可以与所述时钟发生器所需的电压不同或相同。
[0060] 在任何情况下,可以将所述高速缓冲存储器的目标部分调整到最优OPP,然后将数据返回给请求程序。参见步骤524。然后,所述方法500按照判定526轮询到访问完成,之后在步骤528中针对导致访问的内存请求清除上述访问指示符,因为这种内存请求在此时已经获得服务并且不再与最优OPP的任何后续计算有关。
[0061] 图6示出了根据又一实施例所述的一种用来基于内存请求信息设置高速缓冲存储器的时钟速度/电压的附加变型600。可选地,所述附加变型600可以在任何先前的和/或随后的附图和/或其描述中阐述的任何一个或多个实施例的上下文中实现。但是,应理解的是,所述附加变型600可以在任何期望环境的上下文中实现。
[0062] 如图所示,可以提供各种高速缓存时钟判定602作为访问类型604、数据状态606和高速缓存动作608的不同组合的功能。例如,在读取或窥探访问类型的情况下,所述数据状态指示命中并且所述高速缓存操作为读取,则可以针对所有当前请求程序缩放所述时钟。此外,也是在读取或窥探访问类型的情况下,但所述数据状态指示未命中并且所述高速缓存操作为空,可以在从内存中取出所述请求数据之前,针对所述请求程序缩放所述时钟。此外,在写入访问类型的情况下,所述数据状态指示命中并且所述高速缓存操作为写入,则可以针对所有当前请求程序缩放所述时钟。甚至还示出了其他示例,其中没有执行操作来优化所述时钟/电压。
[0063] 图7A示出了根据又一实施例所述的一种用来基于内存请求信息设置高速缓冲存储器的时钟速度/电压的示例性时序图700。可选地,所述示例性时序图700可以反映任何先前的和/或随后的附图和/或其描述中阐述的任何一个或多个实施例的操作。
[0064] 如图所示,第一域702(例如,包括至少一个请求组件等)包括第一时钟702A及导致数据状态702C的高速缓存请求702B。此外,第二域704(例如,包括至少一个其他请求组件等)包括第二时钟704A及导致数据状态704C的高速缓存请求704B。此外,高速缓冲存储器706显示为包括第三时钟706A。虽然在本实施例的上下文中描述了两个域702、704,但是应注意的是,其他实施例设想的这种域或是更多或是更少。
[0065] 由于所述第一域702的数据状态702C在周期706C期间指示未命中,所述第二时钟704A用来通过在此周期期间将所述高速缓冲存储器的第三时钟704A设置为所述第二域704的第二时钟704A来驱动所述高速缓冲存储器的第三时钟706A,如图所示。然而,一旦所述数据状态702C指示在周期706B期间命中,则所述第一时钟702A用来通过在此周期期间将所述高速缓冲存储器706的第三时钟706A设置为所述第一域702的第一时钟702A来驱动所述高速缓冲存储器706的第三时钟706A。虽然所述高速缓冲存储器706的第三时钟706A显示为在所述两个不同的时钟速率之间切换,但应注意的是,在这种转换之间可以包含一些延迟。
[0066] 因此,基于正在访问所述高速缓冲存储器的上下文,可以将缩放高速缓存内存的时钟的判定延迟到稍后的时间。通过延迟任何电压/时钟缩放,可以提供节电。
[0067] 图7B示出了根据另一实施例所述的一种用来基于内存请求信息设置高速缓冲存储器的时钟速度/电压的系统750。可选地,所述系统750可以在任何先前的和/或随后的附图和/或其描述中阐述的任何一个或多个实施例的上下文中实现。但是,应理解的是,所述系统750可以在任何期望环境的上下文中实现。
[0068] 如图所示,所述系统750包括采用第一模块752(例如,第一电路(执行图1操作104的模块),图2中所述控制器215的第一部分(例如图3中的高速缓存控制单元302)等。)形式的第一装置,其中所述第一模块752用于识别与所述内存请求有关的信息以响应接收内存请求。此外,还包括采用与所述第一模块752通信的第二模块754(例如,第二电路(执行图1操作106的模块),图2中所述控制器215的第二部分(例如图3中的高速缓存电源管理单元309和时钟分频器316)等。)形式的第二装置,其中所述第二模块754用于基于所述信息设置所述高速缓冲存储器的至少一部分中的时钟速度或电压中的至少一个。在一实施例中,所述系统750可以用于根据图1的所述方法100进行操作。例如,在此实施例中,所述系统750可以包括用来根据图1的操作102接收内存请求的接收模块(或装置)。
[0069] 图8示出了根据一个实施例所述的网络架构800。在一实施例中,在任何先前和/或后续附图和/或其描述中阐述的任何一个或多个实施例的前述高速缓冲存储器电压/时钟控制可以并入
[0070] 图8中所示的任何组件中。
[0071] 如图所示,提供至少一个网络802。在本网络架构800的上下文中,所述网络802可以采取任何形式,包括但不限于电信网络、局域网(local area network,简称LAN)、无线网络、广域网(wide area network,简称WAN),例如互联网、对等网络,有线网络等。虽然仅示出了一个网络,但是应该理解的是,可以提供两个或更多个类似或不同的网络802。
[0072] 有多个设备耦合到所述网络802。例如,服务器计算机812和终端用户计算机808可以耦合到所述网络802,用于通信目的。这种终端用户计算机808可以包括台式计算机、笔记本电脑和/或任何其他类型的逻辑。此外,各种其他设备可以耦合到网络802,包括个人数字助理(personal digital assistant,简称PDA)设备810、移动电话设备806、电视804等。
[0073] 图9示出了根据一个实施例所述的示例性系统900。可选地,所述系统900可以在图8中所述网络架构800的任何设备的上下文中实现。但是,应理解的是,所述系统900可以在任何期望环境中实现。
[0074] 如图所示,提供了系统900,其包括至少一个中央处理器902,其中所述中央处理器902连接到总线912。所述系统900还包括主存储器904[例如,硬盘驱动器、固态磁盘、随机存取存储器(random access memory,简称RAM)等]。所述系统900还包括图形处理器908和显示器910。
[0075] 所述系统900还可以包括辅助内存906。所述辅助存储906可以包括例如硬盘驱动器和/或可移动存储驱动器,比如软盘驱动器、磁带驱动器和光盘驱动器等。所述移动存储驱动器以众所周知的方式从可移动存储单元读取和/或向可移动存储单元写入。
[0076] 就此而言,计算机程序或计算机控制逻辑算法可以存储于主存储器904、辅助存储906和/或任何其他存储器。这种计算机程序执行时使系统900能够执行各种功能(例如,如上所述)。存储器904、辅助存储器906和/或任何其他存储器是非瞬时性计算机可读介质的可能示例。应注意,在一个方面中,此处描述的技术在存储在计算机可读介质中的可执行指令中体现,以供指令执行机器、装置或设备使用或与其结合使用,例如,基于计算机的或包括处理器的机器、装置或设备。本领域技术人员将认识到,对于一些实施例,包括其他类型的计算机可读介质,可存储计算机可访问的数据,比如磁带盒、闪存卡、数字视频光盘、伯努利盒、随机存取存储器(random access memory,简称RAM)和只读存储器(read-only memory,简称ROM)等。
[0077] 如这里所使用的,“计算机可读介质”包括用于存储计算机程序的可执行指令的任何合适介质中的一个或多个,使得指令执行机器、系统、装置或设备可以读取(或取出)来自计算机可读介质的指令并执行用于执行所述方法的指令。合适的存储格式包含电子、磁性、光和电磁格式中的一个或多个。常规的示例性计算机可读介质的非穷举清单包括:便携式计算机磁盘;RAM;ROM;可擦除可编程只读存储器(erasable programmable read only memory,简称EPROM,或闪存);以及光存储设备,其中包括便携式光盘(compact disc,简称CD)、便携式数字视频光盘(digital video disc,简称DVD)、高清晰度DVD(high definition digital video disc,简称HD-DVDTM)和蓝光光碟等。
[0078] 应理解,所描述的图中示出的组件的布置是示例性的,并且可能有其它布置。还应理解,由权利要求书界定的、下文描述的并且在各种框图中所说明的各种系统组件(和装置)表示根据本文中所公开的主题配置的一些系统中的逻辑组件。
[0079] 例如,这些系统组件(和装置)中的一个或多个可以整体或部分地通过所描述的图中示出的布置中示出的至少部分组件实现。另外,尽管这些组件中的至少一个至少部分地实现于电子硬件组件并因此构成机器,但是其它组件可以实现于软件,当包含于执行环境中时所述组件构成机器、硬件或软件和硬件的组合。
[0080] 更具体地,由权利要求书界定的至少一个组件至少部分实现于电子硬件组件,例如指令执行机器(例如,基于处理器的或包含处理器的机器),和/或实现于专用电路或电路系统(例如,互连以执行专用功能的离散逻辑)。其它组件可以实现于软件、硬件或软件和硬件的组合中。此外,可以组合这些其它组件中的一些或全部组件,可以完全省略一些组件并且可以添加其它组件,同时仍实现本文中描述的功能。因此,本文中描述的主题可以许多不同变化形式体现,且所有此类变化形式涵盖在权利要求书的范围内。
[0081] 在以上描述中,除非另外指明,否则参考动作和由一个或多个设备执行的操作的符号表示来描述主题。因而,应理解,有时被称为计算机执行动作和操作的此类动作和操作包含构造形式的数据处理器的操作。这种操作对数据进行变换或将该数据保持在计算机的内存系统中各个位置,以本领域技术人员容易理解的方式重新配置或改变设备的操作。数据作为数据结构保存在内存的物理位置处,数据结构具有由数据格式限定的特定性质。然而,虽然在前文上下文中描述了主题,但这并不表示对所述主题的限制,因为所属领域的技术人员将了解,下文中描述的各种动作和操作也可以实施于硬件中。
[0082] 为了促进对本文中描述的主题的理解,根据动作顺序描述许多方面。由权利要求限定的这些方面中的至少一个方面由电子硬件组件执行。例如,将认识到,可通过专用电路或电路系统,通过正由一个或多个处理器执行的程序指令或通过这两者的组合执行各个动作。本文中对任何动作顺序的描述并不意图暗示必须遵循用于执行此顺序而描述的特定次序。本文所描述的所有方法可以以任何适当的次序来执行,除非本文中另有说明或上下文另有清楚否定。
[0083] 在描述主题(特别是在下面的权利要求的上下文中)中使用术语“一”,“一个”和“所述”以及类似的指示物将被解释为涵盖单数和复数,除非本文另有说明或与上下文明显矛盾。在此引证数值的范围仅旨在用作单独地提及每个单独的数值落在所述范围内描述的方法,除非在此另有说明,并且每个单独的数值并入到本说明书中就像它被单独地在此引证一样。此外,上述描述仅出于说明的目的,而不是出于限制的目的,寻求保护的范围由附属权利要求及其任何等效物来限定。本文提供的任何和所有示例或示例性语言(例如,“比如”)的使用仅旨在更好地说明主题,并且不会对主题的范围提出限制,除非另有声明。使用术语“基于”和其它类似短语指示在附属权利要求和书面描述中产生结果的条件,并不旨在排除产生所述结果的其它条件。本说明书中的任何语言都不应理解为指示实践本发明所必需的任何非声明的要素。
[0084] 本文中描述的实施例包含发明人实施所要求的主题已知的一个或多个模式。应理解,所属领域的一般技术人员读了上述描述将明显了解上述实施例的变化形式。本发明人期望熟练的业内人士适当时采用此类变化,并且本发明人想以不同于本文中特定描述的其它方式来实践本发明所主张的主题。因此,所主张的主题包含可适用法律所准许的在附属权利要求中叙述的主题的所有变化和等效物。此外,除非本文另外指示或以其它方式明确指出与内容相矛盾,否则本发明涵盖上述要素以其所有可能的变化形式的任何组合。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈