用于改进便携式计算设备中的牺牲(victim)缓存模式的系统和方法技术方案

技术编号:16112635 阅读:20 留言:0更新日期:2017-08-30 05:59
本文给出了用于便携式计算设备(PCD)中的牺牲缓存的改进操作的系统和方法。低级别缓存被操作成高级别缓存的牺牲者,该低级别缓存包含多个缓存行。过滤器与低级别牺牲缓存相关联地操作,其反映包含在牺牲缓存中的缓存行。对于高级别缓存处的未命中,检查该过滤器以判断所请求的缓存行是否在牺牲缓存中。如果检查该过滤器确定所请求的缓存行在牺牲缓存中,则从牺牲缓存中取回该请求的缓存行。如果检查该过滤器确定所请求的缓存行不在牺牲缓存中,则旁路牺牲缓存,以及从存储器控制器请求该缓存行。

【技术实现步骤摘要】
【国外来华专利技术】用于改进便携式计算设备中的牺牲(victim)缓存模式的系统和方法
技术介绍
具有处理器、通过各种各样的通信介质(其包括无线信号)与其它设备进行通信的设备到处可见。包括便携式计算设备(PCD)的移动设备可以用于经由无线、模拟、数字和其它手段,与各种各样的其它设备进行通信。这些移动设备可以包括移动电话、便携式数字助理(PDA)、便携式游戏控制台、掌上型计算机、平板计算机和其它便携式电子设备。除了主要功能之外,PCD还可以用于:下载和玩游戏;下载和播放音乐;下载和观看视频;全球定位系统(GPS)导航、web浏览、以及运行应用。为了适应这些不断增长的用途和对更高性能的需求,现代PCD通常包括用于控制或者执行该PCD的不同功能的一个或多个内核(例如,处理单元)。此外,这些PCD还可以包括以不同级别按照分层方式布置的缓存存储器,多个内核或者处理单元可以通过总线或互连来共享这些缓存存储器。为了努力提高这种分层缓存存储器的性能,具有更慢访问时间的更大容量的低级别缓存存储器,可以被操作成具有更快访问时间的更低容量的高级别缓存存储器的“牺牲”缓存。在这种布置中,随着缓存行从高级别缓存中被删除或者“逐出”,分层结构中低级别“牺牲”缓存被高级别缓存所独占和完全填充。例如,处理器可以从高级别L2缓存中获取数据。如果该数据在L2缓存中,则发生“命中”,并将该数据提供给处理器。如果该数据不在L2缓存中,则发生“未命中”,而从其它地方取回所请求的数据。此外,还将所请求的数据放置在L2缓存中,替换L2缓存中的现有缓存行。根据替换策略,将现有的L2缓存行删除或逐出到低级别的牺牲缓存(例如,L3缓存)中。但是,该“牺牲”缓存系统可能会由缓存存储器带来额外的带宽和功耗,其中,这些缓存存储器没有通过从将低级别缓存操作成“牺牲”缓存中获得的任何增益来适当化。因此,需要用于适应性实现牺牲缓存模式的系统和方法。此外,当以“牺牲”模式操作时,由于缓存之间可能存在迂回的路由数据,从而缓存存储器本身的物理布置可能导致增加的时延。因此,还需要用于牺牲模式下的缓存的改进操作的系统和方法。
技术实现思路
公开了用于允许便携式计算设备(PCD)中的牺牲缓存的改进操作的系统和方法。在操作时,低级别缓存被操作成高级别缓存的牺牲者,该低级别缓存包含多个缓存行。过滤器与低级别牺牲缓存相关联地操作,以及对过滤器进行更新以反映包含在低级别牺牲缓存中的多个缓存行。当在高级别缓存处发生未命中时,通过检查与低级别牺牲缓存相关联的过滤器,来做出关于请求的缓存行是否是低级别缓存中包含的多个缓存行里的一个的判断。如果该判断是该请求的缓存行是低级别缓存中包含的多个缓存行里的一个,则从该低级别牺牲缓存中取回该请求的缓存行。如果该判断是该请求的缓存行不是低级别缓存中包含的多个缓存行里的一个,则旁路该低级别牺牲缓存,以及从与高级别缓存通信的存储器控制器请求该缓存行。一种示例性实施例是用于便携式计算设备(PCD)中的片上系统(SoC)的计算机系统,该系统包括:高级别缓存;与高级别缓存通信的低级别缓存,该低级别缓存被配置为操作成高级别缓存的牺牲者,该低级别缓存包含多个缓存行;与低级别牺牲缓存通信的过滤器,其中,该过滤器被配置为反映包含在低级别牺牲缓存中的所述多个缓存行;以及逻辑组件,其配置为:当在高级别缓存处发生未命中时,通过检查与低级别牺牲缓存相关联的过滤器,判断请求的缓存行是否是低级别缓存中包含的所述多个缓存行里的一个;以及,如果该判断是所请求的缓存行是低级别缓存中包含的所述多个缓存行里的一个,则使得从低级别牺牲缓存中取回所请求的缓存行,以及如果该判断是所请求的缓存行不是低级别缓存中包含的所述多个缓存行里的一个,则旁路低级别牺牲缓存,以及从与高级别缓存通信的存储器控制器请求该缓存行。另一种示例性实施例是一种包括非临时性计算机可使用介质的计算机程序产品,所述非临时性计算机可使用介质中体现有计算机可读程序代码,所述计算机可读程序代码适于被执行,以实现用于便携式计算设备(PCD)中的牺牲缓存的改进操作的方法,该方法包括:将低级别缓存操作成高级别缓存的牺牲者,该低级别缓存包含多个缓存行;将过滤器与低级别牺牲缓存相关联地操作;对该过滤器进行更新以反映包含在低级别牺牲缓存中的所述多个缓存行;当在高级别缓存处发生未命中时,判断请求的缓存行是否是低级别缓存中包含的所述多个缓存行里的一个,其中,所述判断包括:检查与低级别牺牲缓存相关联的过滤器;以及如果所述判断是所请求的缓存行是低级别缓存中包含的所述多个缓存行里的一个,则从低级别牺牲缓存中取回所请求的缓存行,以及如果所述判断是所请求的缓存行不是低级别缓存中包含的所述多个缓存行里的一个,则旁路低级别牺牲缓存,并从与高级别缓存通信的存储器控制器请求该缓存行。附图说明在附图中,除非另外指出,否则贯穿各个视图的相同附图标记指代类似的组件。对于利用诸如“102A”或“102B”之类的字母字符进行命名的附图标记而言,这些字母字符命名可以区分在同一附图中出现的两个类似组件或者组成部分。当一个附图标记旨在涵盖所有附图之中具有相同附图标记的所有组件时,可以省略用于附图标记的字母字符命名。类似地,对于具有‘诸如102之类的名称’的附图标记而言,该‘名称’可以代表具有相同附图标记(但不具有该‘名称’)的基本元素的替代实施例。图1是可以实现本专利技术的便携式计算设备(PCD)的示例性实施例的框图;图2是示出用于在PCD(例如,图1所示出的PCD实施例)中适应性实现牺牲缓存模式的系统的示例性实施例的框图;图3A是示出图2的示例性系统中的缓存存储器的示例性实施例的细节的框图;图3B是示出图2的示例性系统中的缓存存储器的另一个示例性实施例的细节的框图;图4是示出用于在PCD(例如,图1所示出的PCD实施例)中在改进缓存存储器的操作的情况下、适应性实现牺牲缓存模式的系统的另一个示例性实施例的框图;图5A是描述用于在PCD中适应性实现牺牲缓存模式的方法的示例性实施例的方面的流程图;图5B描绘了能够执行图5A中所示出的方法的方面的示例性组件;图6A是描述用于在PCD中适应性实现牺牲缓存模式的方法的另一个示例性实施例的方面的流程图;图6B描绘了能够执行图6A中所示出的方法的方面的示例性组件;图7A是描述用于在PCD中在改进缓存存储器的操作的情况下、适应性实现牺牲缓存模式的方法的示例性实施例的方面的流程图;以及图7B描绘了能够执行图7A中所示出的方法的方面的示例性组件。具体实施方式本文所使用的“示例性”一词意味着“用作例子、例证或说明”。本文中被描述为“示例性”的任何方面不一定被解释为比其它方面更优选或更具优势。在本说明书中,术语“应用”还可以包括具有可执行内容的文件,例如:目标代码、脚本、字节码、标记语言文件和补丁。此外,本文所引用的“应用”还可以包括:在性质上不可执行的文件,例如,可能需要被打开的文档或者需要进行访问的其它数据文件。此外,术语“内容”还可以包括具有可执行内容的文件,例如:目标代码、脚本、字节代码、标记语言文件和补丁。此外,本文所引用的“内容”还可以包括:在性质上不可执行的文件,例如,可能需要被打开的文档或者需要进行访问的其它数据文件或者数据值。如本说明书中所使用的,术语“组件”、本文档来自技高网
...
用于改进便携式计算设备中的牺牲(victim)缓存模式的系统和方法

【技术保护点】
一种用于改进便携式计算设备(PCD)中的牺牲缓存的操作的方法,所述方法包括:将低级别缓存操作成高级别缓存的牺牲者,所述低级别缓存包含多个缓存行;将过滤器与所述低级别牺牲缓存相关联地操作;对所述过滤器进行更新以反映包含在所述低级别牺牲缓存中的所述多个缓存行;倘若在所述高级别缓存处发生未命中,判断请求的缓存行是否是所述低级别缓存中包含的所述多个缓存行里的一个缓存行,其中,所述判断包括:检查与所述低级别牺牲缓存相关联的所述过滤器;以及如果所述判断是所述请求的缓存行是所述低级别缓存中包含的所述多个缓存行里的一个缓存行,则从所述低级别牺牲缓存中取回所述请求的缓存行,以及如果所述判断是所述请求的缓存行不是所述低级别缓存中包含的所述多个缓存行里的一个缓存行,则旁路所述低级别牺牲缓存,以及从与所述高级别缓存通信的存储器控制器请求所述缓存行。

【技术特征摘要】
【国外来华专利技术】2015.01.15 US 14/598,0491.一种用于改进便携式计算设备(PCD)中的牺牲缓存的操作的方法,所述方法包括:将低级别缓存操作成高级别缓存的牺牲者,所述低级别缓存包含多个缓存行;将过滤器与所述低级别牺牲缓存相关联地操作;对所述过滤器进行更新以反映包含在所述低级别牺牲缓存中的所述多个缓存行;倘若在所述高级别缓存处发生未命中,判断请求的缓存行是否是所述低级别缓存中包含的所述多个缓存行里的一个缓存行,其中,所述判断包括:检查与所述低级别牺牲缓存相关联的所述过滤器;以及如果所述判断是所述请求的缓存行是所述低级别缓存中包含的所述多个缓存行里的一个缓存行,则从所述低级别牺牲缓存中取回所述请求的缓存行,以及如果所述判断是所述请求的缓存行不是所述低级别缓存中包含的所述多个缓存行里的一个缓存行,则旁路所述低级别牺牲缓存,以及从与所述高级别缓存通信的存储器控制器请求所述缓存行。2.根据权利要求1所述的方法,其中:所述高级别缓存包括与处理器相关联的L2缓存,以及所述低级别牺牲缓存包括经由互连与所述L2缓存进行通信的L3缓存。3.根据权利要求1所述的方法,其中,所述滤波器是布隆过滤器。4.根据权利要求3所述的方法,其中,对所述过滤器进行更新以反映包含在所述低级别牺牲缓存中的所述多个缓存行还包括:对所述布隆过滤器进行更新以显示从所述高级别缓存驱逐的缓存行已经被所述低级别牺牲缓存接受。5.根据权利要求4所述的方法,其中,对所述布隆过滤器进行更新以显示从所述高级别缓存驱逐的缓存行已经被所述低级别牺牲缓存接受还包括:当从所述低级别缓存驱逐的缓存行包括干净的数据缓存行时,发出没有数据驱逐消息。6.根据权利要求3所述的方法,其中,对所述过滤器进行更新以反映包含在所述低级别牺牲缓存中的所述多个缓存行还包括:对所述布隆过滤器进行更新,以显示在所述低级别牺牲缓存中不再存在从所述低级别牺牲缓存中驱逐的缓存行。7.根据权利要求3所述的方法,其中,所述过滤器与用于所述低级别牺牲缓存的序列化点通信。8.根据权利要求7所述的方法,其中,所述序列化点包括所述过滤器的一部分。9.根据权利要求1所述的方法,其中,旁路所述低级别牺牲缓存,以及从与所述高级别缓存通信的存储器控制器请求所述缓存行还包括:从与所述存储器控制器通信的非缓存存储器中,请求所述缓存行。10.根据权利要求1所述的方法,其中:所述高级别缓存包括与处理器相关联的第一L2缓存,以及所述低级别牺牲缓存包括经由互连与所述第一L2缓存进行通信的第二L2缓存。11.一种用于便携式计算设备(PCD)中的片上系统(SoC)的计算机系统,所述系统包括:高级别缓存;与所述高级别缓存通信的低级别缓存,所述低级别缓存被配置为操作成所述高级别缓存的牺牲者,以及所述低级别缓存包含多个缓存行;与所述低级别牺牲缓存通信的过滤器,其中,所述过滤器被配置为反映包含在所述低级别牺牲缓存中的所述多个缓存行;以及逻辑组件,其被配置为:倘若在所述高级别缓存处发生未命中,通过检查与所述低级别牺牲缓存相关联的所述过滤器,来判断请求的缓存行是否是所述低级别缓存中包含的所述多个缓存行里的一个缓存行;以及如果所述判断是所述请求的缓存行是所述低级别缓存中包含的所述多个缓存行里的一个缓存行,则使得从所述低级别牺牲缓存中取回所述请求的缓存行,以及如果所述判断是所述请求的缓存行不是所述低级别缓存中包含的所述多个缓存行里的一个缓存行,则旁路所述低级别牺牲缓存,以及从与所述高级别缓存通信的存储器控制器请求所述缓存行。12.根据权利要求11所述的系统,其中:所述高级别缓存包括与处理器相关联的L2缓存,以及所述低级别牺牲缓存包括经由互连与所述L2缓存进行通信的L3缓存。13.根据权利要求11所述的系统,其中,所述滤波器是布隆过滤器14.根据权利要求13所述的系统,其中,所述过滤器被配置为反映包含在所述低级别牺牲缓存中的所述多个缓存行还包括:所述布隆过滤器被配置为反映从所述高级别缓存驱逐的缓存行已经被所述低级别牺牲缓存接受。15.根据权利要求14所述的系统,其中,所述布隆过滤器被配置为反映从所述高级别缓存驱逐的缓存行已经被所述低级别牺牲缓存接受还包括:当从所述低级别缓存驱逐的缓存行包括干净的数据缓存行时的没有数据驱逐消息。16.根据权利要求13所述的系统,其中,所述过滤器被配置为反映包含在所述低级别牺牲缓存中的所述多个缓存行还包括:所述...

【专利技术属性】
技术研发人员:王峰B·雷赫利克M·卡恩
申请(专利权)人:高通股份有限公司
类型:发明
国别省市:美国,US

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

1