缓存存储器请求流制造技术

技术编号:29042912 阅读:29 留言:0更新日期:2021-06-26 05:53
包括在计算机存储介质上编码的计算机程序的方法、系统和装置用于根据页面级属性值来分配缓存资源。在一种实施方式中,所述系统包括一个或多个集成客户端设备和缓存。每个客户端设备被配置为至少生成存储器请求。每个存储器请求具有相应物理地址以及所述物理地址所属的页面的相应页面描述符。所述缓存被配置为缓存所述一个或多个集成客户端设备中的每个集成客户端设备的存储器请求。所述缓存包括具有多个道路的缓存存储器。所述缓存被配置为使用所述存储器请求的相应页面描述符的页面级属性来区分不同的存储器请求,并且将所述缓存存储器的不同部分分配给不同的相应存储器请求。求。求。

【技术实现步骤摘要】
【国外来华专利技术】缓存存储器请求流
[0001]相关申请的交叉引用
[0002]本申请要求于2019年2月13日提交的标题为“Caching Streams of Memory Requests”的美国临时申请序列号62/805,167的优先权,该申请的全部内容通过引用并入本文。

技术介绍

[0003]本说明书涉及具有集成电路设备的系统。
[0004]缓存是针对系统中的一个或多个不同的硬件设备存储从存储器取回的数据或者要写入存储器的数据的设备。硬件设备可以是集成到片上系统(SOC)中的不同组件。在本说明书中,通过缓存提供读取请求和写入请求的设备将被称为客户端设备。
[0005]缓存可以用于通过减少对主存储器的总体请求来减少功耗。另外,只要客户端设备可以访问缓存中所需的数据,就可以通过将主存储器以及通往主存储器的数据路径置于低功率状态来进一步节省功率。因此,缓存使用与总功耗相关,并且缓存使用的增加导致总功耗的减少。因此,依赖于电池电量的设备(例如移动计算设备)可以通过增加集成客户端设备的缓存使用来延长其电池寿命。
[0006]缓存通常被组织为具有多个道路的多个集合。请求的存储器地址用于标识放置缓存行的特定集合,如果必须更换现有的缓存行,则特定的缓存策略确定应该更换集合内的哪些道路。例如,缓存可以实施首先更换集合内最近最少使用的缓存行的缓存策略。
[0007]缓存通常是低级硬件设备,它们对正被缓存的地址的解释不具有可见性。换言之,传统的缓存没有用于确定该地址用于什么或该地址处存储什么类型的数据的机制。由于不相关的数据请求集可以竞争相同的缓存资源,这可能会导致缓存性能的效率低下,从而导致更少的缓存命中和更多的缓存未命中以及所得的更多存储器行程。

技术实现思路

[0008]本说明书描述了用于在由相关数据流(在本文中也称为“数据流”)驱动的缓存中实现缓存策略的技术。在本说明书中,流是在软件中彼此相关的多个存储器请求。例如,流可以包括对同一软件驱动器的所有指令请求。流还可以包括对同一软件驱动器的所有数据请求。
[0009]缓存可以通过检查不同存储器请求共有的页面级属性来标识数据流。然后,缓存可以将缓存存储器的不同部分分配给不同的数据流。因此,例如与数据请求相比,可以将指令请求分配给缓存的不同部分。该能力允许缓存基于数据的属性而不是仅基于地址范围、页面标识符或发出请求的客户端设备或客户端驱动器的标识来分配缓存部分。
[0010]可以实施本说明书中描述的主题的特定实施例,以便实现一个或多个以下优点。缓存可以通过使用页面级属性确定相关的存储器请求流来提高缓存的性能和使用。因此,缓存可以减少针对不同的存储器请求流的缓存资源的竞争,从而提高缓存命中率。在依赖于电池电量的移动设备中,提高缓存命中率减少了功耗并延长了电池寿命。另外,通过使用
页面级属性,缓存可以将缓存的相同部分分配给具有生产者/消费者关系的客户端设备,从而有效地增加整个系统可用的缓存资源量。
[0011]在下面的附图和描述中陈述了本说明书的主题的一个或多个实施例的细节。主题的其他特征、方面和优点将通过描述、附图和权利要求而变得显而易见。
附图说明
[0012]图1是根据本公开的实施方式的示例系统的框图。
[0013]图2是根据本公开的实施方式的用于将页面级属性值分配给所分配的存储器页面的示例过程的流程图。
[0014]图3是根据本公开的实施方式的用于分配缓存的道路的示例过程的流程图。
[0015]图4是根据本公开的实施方式的用于使用专用于存储器请求流的缓存部分来为存储器请求服务的示例过程的流程图。
[0016]在各个附图中,相同的附图标记和名称指示相同的元件。
具体实施方式
[0017]图1是示例系统100的图。系统100包括通信地耦合至存储器设备140的片上系统(SOC)102。SOC 102具有使用缓存120的多个客户端设备110a、110b至110n,该缓存120被布置在通往存储器140的数据路径中。在该示例中,由于缓存120在单个SOC 102中缓存对多个客户端设备的数据请求,因此缓存120可以被称为系统级缓存。然而,下面描述的相同技术也可以用于仅缓存单个客户端设备或软件驱动器的存储器请求的其他缓存。
[0018]SOC 102是可以安装在任何适当的计算设备上或集成到任何适当的计算设备中的设备的示例,该计算设备可以被称为主机设备。因为本说明书中描述的技术特别适合于节省主机设备的功耗,所以当SOC 102安装在依赖于电池电量的移动主机设备(例如智能电话、智能手表或另一可穿戴计算设备、平板计算机或膝上型计算机,仅举几个示例)上时,SOC 102可能会特别有益。
[0019]缓存120是可以实施通过标识经过缓存120的不同的存储器请求流来分配缓存资源的缓存策略的缓存的示例。例如,缓存120的第一缓存部分和第二缓存部分可以分别分配给两个不同的流。示例SOC 102被图示为具有一个系统级缓存120。然而,SOC可以具有多个缓存,每个缓存可以是或可以不是系统级缓存。
[0020]SOC 102具有多个客户端设备110a至110n。客户端设备110a至110n中的每个客户端设备可以是任何适当的模块、设备或功能组件,这些模块、设备或功能组件被配置为通过SOC结构150读取数据并将其存储在存储器设备140中。例如,客户端设备可以是CPU、专用集成电路或SOC 102本身的低级组件,每个组件都能够发起通过SOC结构150的通信。
[0021]每个客户端设备110a至110n包括相应的地址转化单元(ATU),例如ATU 112a至112n。ATU 112a至112n负责将由在客户端设备上执行的过程提供的虚拟地址转化为已经或将要存储相应数据的存储器设备140中的物理地址。在一些实施方式中,ATU 112a至112n中的一个或多个被实施为存储器管理单元,其被配置为使用存储虚拟到物理地址转化的页表的硬件实施遍历来执行地址转化。
[0022]无论实施方式如何,当ATU 112a至112n接收到存储器请求时,ATU执行地址转化并
生成具有所得的物理地址以及该物理地址所属的存储器中的页面的页面描述符的存储器请求。作为该过程的一部分,每个ATU 112a至112n可以被配置为用物理地址所属的存储器中的页面的页面级属性来填充页面描述符。
[0023]页面描述符可以具有与虚拟存储器系统的各个方面相关的多个属性的值。例如,页面描述符可以指定与页表本身相关的表格级属性以及与各个物理或虚拟地址相关的地址级属性。因此,页面级属性值可以是ATU生成并包括在存储器请求内的页面描述符的子集。页面级属性可以是页面描述符的基于页面的硬件属性。每个页面级属性值都为特定于该物理地址所属页面的属性指定值。
[0024]页面级属性的值可以由客户端设备110a至110n的软件驱动器指派。例如,当为客户端设备执行的软件驱动器请求在存储器140中分配页面时,软件驱动器可以指示ATU将特定页面级本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种系统,包括:一个或多个集成客户端设备,每个客户端设备被配置为生成存储器请求,每个存储器请求具有相应物理地址以及所述物理地址所属的页面的相应页面描述符;以及缓存,所述缓存被配置为缓存所述一个或多个集成客户端设备中的每个集成客户端设备的存储器请求,其中所述缓存包括具有多个道路的缓存存储器,以及其中所述缓存被配置为使用所述存储器请求的相应页面描述符的页面级属性来区分不同的存储器请求,并且将所述缓存存储器的不同部分分配给不同的相应存储器请求。2.根据权利要求1所述的系统,其中,每个客户端设备具有相应的地址转化模块,所述地址转化模块被配置为将从软件驱动器接收的虚拟地址转换为具有相应物理地址和相应页面描述符的相应存储器请求,以及其中,每个客户端设备被配置为更新页表以将特定页面级属性值指派给特定页面。3.根据权利要求2所述的系统,其中,所述缓存被配置为使用由所述客户端设备的相应的地址转化单元生成的页面描述符的特定页面级属性来区分不同的存储器请求。4.根据权利要求3所述的系统,其中,所述地址转化模块是被配置为执行存储器中的页表的硬件遍历以执行地址转化的存储器管理单元。5.根据权利要求1所述的系统,其中,所述缓存被配置为将在不同页面上发生的物理地址标识为相同存储器请求的一部分。6.根据权利要求1所述的系统,其中,所述缓存被配置为使用所述页面级属性来将由客户端设备执行的第一指令流与由所述客户端设备使用的第二数据流区分开,以及其中,所述缓存被配置为将所述缓存存储器的第一部分分配给所述第一指令流并且将所述缓存存储器的第二部分分配给所述第二数据流。7.根据权利要求1所述的系统,其中,所述缓存被配置为使用所述页面级属性来将由第一客户端设备执行的第一指令流与由所述第一客户端设备或不同的第二客户端设备执行的第二指令流区分开,以及其中,所述缓存被配置为将所述缓存存储器的第一部分分配给所述第一指令流并且将所述缓存存储器的第二部分分配给所述第二指令流。8.根据权利要求1所述的系统,其中,所述缓存被配置为使用所述页面级属性来将写入第一数据缓冲器的第一数据流与写入第二数据缓冲器的第二数据流区分开,以及其中,所述缓存被配置为将所述缓存存储器的第一部分分配给所述第一数据流并且将所述缓存存储器的第二部分分配给所述第二数据流。9.根据权利要求8所述的系统,其中,所述缓存被配置为使用所述页面级属性来与存储非页表数据的数据缓冲器相比将更多的缓存存储器分配给存储页表数据的数据缓冲器。10.根据权利要求1所述的系统,其中,所述缓存被配置为基于所述存储器请求的所述相应页面级属性来将不同的更换策略指派给不同的存储器请求。11.根据权利要求10所述的系统,其中,所述缓存被配置为标识由在所述一个或多个客户端设备中的一个客户端设备上执行的生产者过程写入的第一数...

【专利技术属性】
技术研发人员:维诺德
申请(专利权)人:谷歌有限责任公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1