数据高速缓存制造技术

技术编号:28736501 阅读:27 留言:0更新日期:2021-06-06 11:44
本公开涉及数据高速缓存。用于对不经常访问的数据进行高速缓存的方法、系统和设备,包括在计算机存储介质上编码的计算机程序。所述方法中的一个包括:从装置的组件接收对数据的请求;确定所述数据满足不频发条件;响应于确定所述数据满足所述不频发条件:确定目标高速缓存层级,其定义在特定高速缓存的高速缓存层级层次内存储不经常访问的数据的高速缓存层级,所述目标高速缓存层级在所述高速缓存层级层次中比最高高速缓存层级低;从不是所述装置的高速缓存的存储器请求并接收所述数据;并且将所述数据存储在所述特定高速缓存的在所述高速缓存层级层次中处于或者低于所述目标高速缓存层级的层级中;以及将所述数据提供给所述组件。述组件。述组件。

【技术实现步骤摘要】
数据高速缓存
[0001]分案说明
[0002]本申请属于申请日为2016年4月29日的中国专利技术专利申请201680018844.6的分案申请。


[0003]本说明书涉及对数据进行高速缓存。

技术介绍

[0004]装置可以包括用于存储最近访问的数据或预期被访问的数据的高速缓存。例如,处理器可以包括一个或多个高速缓存层级。例如,与在高速缓存层级层次中位于下部的较大且较慢的L3高速缓存相比,最高高速缓存层级,例如L1高速缓存,可以是高速缓存层级层次中的最快高速缓存并且是最小高速缓存。

技术实现思路

[0005]在一些实施方式中,系统可指定嵌套页面表,例如用于虚拟机,或其它不经常访问的数据所被存储的高速缓存层级。可以随时改变高速缓存层级以降低高速缓存未命中率。将嵌套页面表和其它不经常访问的数据存储在特定高速缓存层级处可以允许处理器在较慢的存储器,例如L3高速缓存,中访问不经常访问的存储器,然而不在高速缓存层级层次中将不经常访问的数据向上移,并且弹出存储在较快的存储器中的更可能被访问的数据。
[0006]一般而言,在本说明书中描述的主题的一个创新方面可用方法加以具体实现,所述方法包括以下动作:从装置的组件接收对数据的请求;确定所述数据满足不频发条件;响应于确定所述数据满足所述不频发条件:确定目标高速缓存层级,所述目标高速缓存层级定义在特定高速缓存的高速缓存层级层次内存储不经常访问的数据的高速缓存层级,所述目标高速缓存层级在所述高速缓存层级层次中比最高高速缓存层级低;从不是所述装置的高速缓存的存储器请求并接收所述数据;并且将所述数据存储在所述特定高速缓存的在所述高速缓存层级层次中处于或者低于所述目标高速缓存层级的层级中;以及将所述数据提供给所述组件。此方面的其它实施例包括对应的计算机系统、设备和记录在一个或多个计算机存储装置上的计算机程序,其各自被配置成执行所述方法的所述动作。
[0007]一般而言,在本说明书中描述的主题的一个创新方面可用方法加以具体实现,所述方法包括以下动作:从装置的组件接收对数据的请求;确定所述数据满足不频发条件;响应于确定所述数据满足所述不频发条件:确定目标高速缓存层级,所述目标高速缓存层级定义在特定高速缓存的高速缓存层级层次内存储不经常访问的数据的高速缓存层级,所述目标高速缓存层级在所述高速缓存层级层次中比最高高速缓存层级低;从不是所述装置的高速缓存的存储器请求并接收所述数据;将所述数据存储在所述特定高速缓存的在所述高速缓存层级层次中处于或者低于所述目标高速缓存层级的层级中;并且在所述特定高速缓存的在所述高速缓存层级层次中高于所述目标高速缓存层级的特定层级中存储所述特定
层级的最近最少使用高速缓存行中的所述数据,而不更新所述最近最少使用高速缓存行的最近最少使用比特;以及将所述数据提供给所述组件。此方面的其它实施例包括对应的计算机系统、设备和记录在一个或多个计算机存储装置上的计算机程序,其各自被配置成执行所述方法的所述动作。
[0008]一般而言,在本说明书中描述的主题的一个创新方面可用方法加以具体实现,所述方法包括以下动作:由高速缓存从装置的组件接收对数据的请求;确定所述数据满足特定模式;响应于确定所述数据满足所述特定模式:确定定义在所述高速缓存的高速缓存层级层次内存储数据的高速缓存层级的目标高速缓存层级;从不是所述装置的高速缓存的存储器请求并接收所述数据;并且将所述数据存储在所述目标高速缓存层级中,而不是将所述数据存储在所述高速缓存的所述高速缓存层级中的全部中;以及将所述数据提供给所述组件。此方面的其它实施例包括对应的计算机系统、设备和记录在一个或多个计算机存储装置上的计算机程序,其各自被配置成执行所述方法的所述动作。
[0009]一个或多个计算机的系统可被配置成借助于具有安装在所述系统上的软件、固件、硬件或它们的组合来执行特定操作或动作,所述软件、固件、硬件或它们的组合在操作中导致或者使所述系统执行所述动作。一个或多个计算机程序可被配置成借助于包括指令来执行特定操作或动作,所述指令当由数据处理设备执行时,使所述设备执行所述动作。
[0010]上述和其它实施例可单独或相结合地各自可选地包括以下特征中的一个或多个。在一些实施方式中,从所述装置的所述组件接收对数据的所述请求可以包括从装置的处理器接收对所述数据的所述请求,并且将所述数据提供给所述组件可以包括将所述数据提供给所述处理器。从所述装置的所述组件接收对数据的所述请求可以包括从装置的存储器控制器接收对所述数据的所述请求,并且将所述数据提供给所述组件可以包括将所述数据提供给所述存储器控制器。从所述装置的所述组件接收对数据的所述请求可以包括从装置的存储器管理单元接收对所述数据的所述请求,并且将所述数据提供给所述组件可以包括将所述数据提供给所述存储器管理单元。从所述装置的所述组件接收对数据的所述请求可以包括从所述的输入/输出单元接收对所述数据的所述请求,并且将所述数据提供给所述组件可以包括将所述数据提供给所述输入/输出单元。
[0011]在一些实施方式中,所述方法可以包括确定对所述数据的所述请求包括对嵌套页面表的请求。确定所述数据满足所述不频发条件可以包括响应于确定对所述数据的所述请求包括对嵌套页面表的请求而确定所述数据满足所述不频发条件。所述方法可以包括接收指示所述目标高速缓存层级的标识符的输入。接收指示所述目标高速缓存层级的所述标识符的所述输入可以包括从基本输入/输出系统或统一可扩展固件接口接收所述输入。接收指示所述目标高速缓存层级的所述标识符的所述输入可以包括从管理员接收所述输入的指示。
[0012]在一些实施方式中,确定所述目标高速缓存层级可以包括使用所述特定高速缓存的高速缓存未命中率自动地确定所述目标高速缓存层级。使用所述特定高速缓存的所述高速缓存未命中率自动地确定所述目标高速缓存层级可以包括:确定所述特定高速缓存的所述高速缓存未命中率不满足阈值未命中率;以及响应于确定所述特定高速缓存的所述高速缓存未命中率不满足所述阈值未命中率,而将所述目标高速缓存层级改变为所述高速缓存层级层次中的较低高速缓存层级。使用所述特定高速缓存的所述高速缓存未命中率自动地
确定所述目标高速缓存层级可以包括:确定所述特定高速缓存的所述高速缓存未命中率满足阈值未命中率;以及响应于确定所述特定高速缓存的所述高速缓存未命中率满足所述阈值未命中率,而将所述目标高速缓存改变为高于所述高速缓存层级层次中的较低高速缓存层级。所述方法可以包括:从所述处理器接收对第二数据的第二请求;确定所述第二数据满足所述不频发条件;确定更新的目标高速缓存层级,其定义在所述特定高速缓存的所述高速缓存层级层次内存储不经常访问的数据的高速缓存层级,所述更新的目标高速缓存层级在所述高速缓存层级层次中比所述最高高速缓存层级低;从不是所述装置的高速缓存的另一存储器请求并接收所述第二数据;将所述第二数据存储在所述特定高速缓存的在所述高速缓存层级层次中处于或者低于所述更新的目标高速缓存层级的层级中;以及将所述第二数据提供给所述处理器。
[本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种计算机实现的方法,所述方法包括:从装置的组件接收对数据的请求;确定对所述数据的所述请求包括对嵌套页面表的请求;响应于确定对所述数据的所述请求包括对嵌套页面表的请求:确定所述数据是否是特定数据类型以及所述数据仅应以不高于目标高速缓存层级的层级存储在高速缓存中;响应于确定所述数据是所述特定数据类型以及所述数据仅应以不高于目标高速缓存层级的层级存储在高速缓存中:确定所述目标高速缓存层级,所述目标高速缓存层级定义在特定高速缓存的高速缓存层级层次内存储具有所述特定数据类型的数据的高速缓存层级,所述目标高速缓存层级在所述高速缓存层级层次中比最高高速缓存层级低;从不是所述装置的高速缓存的存储器请求并接收所述数据;以及将所述数据存储在所述特定高速缓存的在所述高速缓存层级层次中处于或者低于所述目标高速缓存层级的层级中;以及将所述数据提供给所述组件。2.根据权利要求1所述的方法,其中:从所述装置的所述组件接收对数据的所述请求包括从装置的处理器接收对所述数据的所述请求;以及将所述数据提供给所述组件包括将所述数据提供给所述处理器。3.根据权利要求1所述的方法,其中:从所述装置的所述组件接收对数据的所述请求包括从装置的存储器控制器接收对所述数据的所述请求;以及将所述数据提供给所述组件包括将所述数据提供给所述存储器控制器。4.根据权利要求1所述的方法,其中:从所述装置的所述组件接收对数据的所述请求包括从装置的存储器管理单元接收对所述数据的所述请求;以及将所述数据提供给所述组件包括将所述数据提供给所述存储器管理单元。5.根据权利要求1所述的方法,其中:从所述装置的所述组件接收对数据的所述请求包括从装置的输入/输出单元接收对所述数据的所述请求;以及将所述数据提供给所述组件包括将所述数据提供给所述输入/输出单元。6.根据权利要求1所述的方法,其中确定所述目标高速缓存层级包括使用所述特定高速缓存的高速缓存未命中率自动地确定所述目标高速缓存层级。7.根据权利要求6所述的方法,其中使用所述特定高速缓存的所述高速缓存未命中率自动地确定所述目标高速缓存层级包括:确定所述特定高速缓存的所述高速缓存未命中率不满足阈值未命中率;以及响应于确定所述特定高速缓存的所述高速缓存未命中率不满足所述阈值未命中率,而将所述目标高速缓存层级改变为所述高速缓存层级层次中的较低高速缓存层级。8.根据权利要求6所述的方法,其中使用所述特定高速缓存的所述高速缓存未命中率
自动地确定所述目标高速缓存层级包括:确定所述特定高速缓存的所述高速缓存未命中率满足阈值未命中率;以及响应于确定所述特定高速缓存的所述高速缓存未命中率满足所述阈值未命中率,而将所述目标高速缓存层级改变为所述高速缓存层级层次中的较低高速缓存层级。9.一种存储指令的非暂时性计算机可读存储介质,所述指令能够由数据处理设备执行并在这样的执行时,使所述数据处理设备执行操作,所述操作包括:从装置的组件接收对数据的请求;确定对所述数据的所述请求包括对嵌套页面表的请求;响应于确定对所述数据的所述请求包括对嵌套页面表的请求:确定所述数据是否是特定数据类型以及所述数据仅应以不高于目标高速缓存层级的层级存储在高速缓存中;响应于确定所述数据是所述特定数据类型以及所述数据仅应以不高于目标高速缓存层级的层级存储在高速缓存中:确定所述目标高速缓存层级,所述目标高速缓存层级定义在特定高速缓存的高速缓存层级层次内存储具有所述特定数据类型的数据的高速缓存层级,所述目标高速缓存层级在所述高速缓存层级层次中比最高高速缓存层级低;从不是所述装置的高速缓存的存储器请求并接收所述数据;以及将所述数据存储在所述特定高速缓存的在所述高速缓存层级层次中处于或者低于所述目标高速缓存层级的层级中;以及将所述数据提供给所述组件。10.根据权利要求9所述的非暂时性计算机可读存储介质,其中:从所述装置的所述组件接收对数据的所述请求包括从装置的处理器接收对所述数据的所述请求;以及将所述数据提供给所述组件包括将所述数据提供给所述处理器。11.根据权利要求9所述的非暂时性计算机可读存储介质,其中:从所述装置的所述组件接收对数据的所述请求包括从装置的存储器控制器接收对所述数据的所述请求;以及将所述数据提供给所述组件包括将所述数据提供给所述存储器控制器。12.根据权利要求9所述的非暂时性计算机可读存储介质,其中:从所述装置的所述组件接收对数据的所述请求包括从装置的存储器管理单元接收对所述数据的所述请求;以及将所述数据提供给所述组件包括将所述数据提供给所述存储器管理单元。13.根据权利要求9所述的非暂时性计算机可读存储介质,其中:从所述装置的所述组件接收对数据的所述请求包括从装置的输入/输出单元接收对所述数据的所述请求;以及将所述数据提供给所述组件包括将所述数据提供给所述输入/输出单元。14.根据权利要求9所述的非暂时性计算机可读存储介质,其中确定所述目标高速缓存层级包括使用所述特定高速缓存的高速缓存未命中率自动地确定所述目标高速缓存层级。15.根据权利要求14所述的非暂时性计算机可读存储介质,其中使用所述特定高速缓
存的所述高速缓存未命中率自动地确定所述目标高速缓存层级包括:确定所述特定高速缓存的所述高速缓存未命中率不满足阈值未命中率;以及响应于确定所述特定高速缓存的所述高速缓存未命中率不满足所述阈值未命中率,而将所述目标高速缓存层级改变为所述高速缓存层级层次中的较低高速缓存层级。16.一种系统,所述系统包括:数据处理设备;以及存储指令的非暂时性计算机可读存储介质,所述指令能够由数据处理设备执行并在这样的执行时,使所述数据处理设备执行操作,所述操作包括:从装置的组件接收对数据的请求;确定对所述数据的所述请求包括对嵌套页面表的请求;响应于确定对所述数据的所述请求包括对嵌套页面表的请求:确定所述数据是否是特定数据类型以及所述数据仅应以不高于目标高速缓存层级的层级存储在高速缓存中;响应于确定所述数据是所述特定数据类型以及所述数据仅应以不高于目标高速缓存层级的层级存储在高速缓存中:确定所述目标高速缓存层级,所述目标高速缓存层级定义在特定高速缓存的高速缓存层级层次内存储具有所述特定数据类型的数据的高速缓存层级,所述目标高速缓存层级在所述高速缓存层级层次中比最高高速缓存层级低;从不是所述装置的高速缓存的存储器请求并接收所述数据;以及将所述数据存储在所述特定高速缓存的在所述高速缓存层级层次中处于或者低于所述目标高速缓存层级的层级中;以及将所述数据提供给所述组件。17.根据权利要求16所述的系统,其中:从所述装置的所述组件接收对数据的所述请求包括从装置的处理器接收对所述数据的所述请求;以及将所述数据提供给所述组件包括将所述数据提供给所述处理器。18.根据权利要求16所述的系统,其中:从所述装置的所述组件接收对数据的所述请求包括从装置的存储器控制器接收对所述数据的所述请求;以及将所述数据提供给所述组件包括将所述数据提供给所述存储器控制器。19.根据权利要求16所述的系统,其中:从所述装置的所述组件接收对数据的所述请求包括从装置的存储器管理单元接收对所述数据的所述请求;以及将所述数据提供给所述组件包括将所述数据提供给所述存储器管理单元。20.根据权利要求16所述的系统,其中:从所述装置的所述组件接收对数据的所述请求包括从装置的输入/输出单元接收对所述数据的所述请求;以及将所述数据提供给所述组件包括将所述数据提供给所述输入/输出单元。21.一种存储指令的非暂时性计算机可读存储介质,所述指令能够由数据处理设备执
行并在这样的执行时,使所述数据处理设备执行操作,所述操作包括:从装置的组件接收对数据的请求;确定所述数据是预先确定的数据类型以及所述数据仅应以不高于目标高速缓存层级的层级存储在高速缓存中;响应于确定所述数据是所述预先确定的数据类型以及所述数据仅应以不高于目标高速缓存层级的层级存储在高速缓存中:使用特定高速缓存的高速缓存未命中率自动地确定所述目标高速缓存层级,所述目标高速缓存层级定义在所述特定高速缓存的高速缓存层级层次内存储具有所述预先确定的数据类型的数据的高速缓存层级并且在所述高速缓存层级层次中比最高高速缓存层级低;从不是所述装置的高速缓存的存储器请求并接收所述数据;以及将所述数据存储在所述特定高速缓存的在所述高速缓存层级层次中处于或者低于所述目标高速缓存层级的层级中;以及将所述数据提供给所述组件。22.根据权利要求21所述的计算机可读存储介质,其中使用所述特定高速缓存的所述高速缓存未命中率自动地确定所述目标高速缓存层级包括:确定所述特定高速缓存的所述高速缓存未命中率不满足阈值未命中率;以及响应于确定所述特定高速缓存的所述高速缓存未命中率不满足所述阈值未命中率,而将所述目标高速缓存层级改变为所述高速缓存层级层次中的较低高速缓存层级。23.根据权利要求21所述的计算机可读存储介质,其中使用所述特定高速缓存的所述高速缓存未命中率自动地确定所述目标高速缓存层级包括:确定所述特定高速缓存的所述高速缓存未命中率满足阈值未命中率;以及响应于确定所述特定高速缓存的所述高速缓存未命中率满足所述阈值未命中率,而将所述目标高速缓存层级改变为所述高速缓存层级层次中的较高高速缓存层级。24.根据权利要求21所述的计算机可读存储介质,包括:从所述装置的所述组件接收对第二数据的第二请求;确定所述第二数据是所述预先确定的数据类型并且所述第二数据仅应以不高于目标高速缓存层级的层级存储在高速缓存中;确定更新的目标高速缓存层级,所述更新的目标高速缓存层级定义在所述特定高速缓存的高速缓存层级层次内存储具有所述预先确定的数据类型的数据的高速缓存层级,并且所述更新的目标高速缓存层级在所述高速缓存层级层次中比最高高速缓存层级低;从不是所述装置的高速缓存的另一存储器请求并接收所述第二数据;将所述第二数据存储在所述特定高速缓存的在所述高速缓存层级层次中处于或者低于所述更新的目标高速缓存层级的层级中;以及将所述第二数据提供给所述装置的所述组件。25.一种存储指令的非暂时性计算机可读存储介质,所述指令能够由数据处理设备执行并在这样的执行时,使所述数据处理设备执行操作,所述操作包括:从装置的组件接收对数据的请求;确定所述数据是预先确定的数据类型以及所述数据仅应以不高于目标高速缓存层级的层级存储在高速缓存中;
响应于确定所述数据是所述预先确定的数据类型以及所述数据仅应以不高于所述目标高速缓存层级的层级存储在高速缓存中:确定所述目标高速缓存层级,所述目标高速缓存层级定义在特定高速缓存的高速缓存层级...

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

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

1