平码五不中公式规律
  • / 18
  • 下载费用:30 金币  

用于缓存线路去重的方法和系统.pdf

关 键 ?#21097;?/dt>
用于 缓存 线路 方法 系统
  专利查询网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
摘要
申请专利号:

CN201580043956.2

申请日:

2015.10.07

公开号:

CN106663060A

公开日:

2017.05.10

当前法律状态:

实审

?#34892;?#24615;:

审中

法?#19978;?#24773;: 著录事项变更IPC(主分类):G06F 12/0897变更事项:申请人变更前:谷歌公司变更后:谷歌有限责任公司变更事项:地址变更前:美国加利福尼亚州变更后:美国加利福尼亚州|||实质审查的生效IPC(主分类):G06F 12/0897申请日:20151007|||公开
IPC分类号: G06F12/0897(2016.01)I; G06F12/1009(2016.01)I; G06F12/1027(2016.01)I 主分类号: G06F12/0897
申请人: 谷歌公司
发明人: 新叶·邵
地址: 美国加利福尼亚州
优?#28909;ǎ?/td> 2014.10.07 US 62/060,949
专利代理机构: 中原信达知识产权代理有限责任公司 11219 代理人: 李佳;穆德骏
PDF完整版下载: PDF下载
法律状态
申请(专利)号:

CN201580043956.2

授权公告号:

||||||

法律状态公告日:

2018.02.09|||2017.06.06|||2017.05.10

法律状态类型:

著录事项变更|||实质审查的生效|||公开

摘要

提供了用于通过检测缓存线路数据模式并且在多个物理地址及其公共数据值之间建立链接列表来对物理存储器中的缓存线路进行去重的方法和系统。按照这种方式,应用所述方法和系统以实现对片上缓存的去重。一种缓存线路过滤器包括限定最通常重复的内容模式的一个表和保存来自所述第一个表的模式编号和所述重复缓存线路的所述物理地址的第二个表。由于能够在写入操作期间检测缓存线路复本,因此每个写入能够涉及表查找和比较。如果在所述表中存在命中,则仅保存所述地址而不是所述整个数据串。

权利要求书

1.一种用于对缓存线路进行去重的方法(400),所述方法包括:
检测(405)在对缓存线路的写入中的数据模式;
确定(410)所述写入的物理地址与最后一级缓存中的条目是否匹配;
确定(415、420)在所述写入中的所述数据模式和与所述条目相关联的数据模式是否匹
配;以及
响应于确定所述写入的所述物理地址与所述最后一级缓存中的条目匹配以及确定在
所述写入中的所述数据模式和与所述条目相关联的数据模式匹配,使所述最后一级缓存中
的所述条目无效(430)。
2.根据权利要求1所述的方法,进一步包括:
响应于确定所述写入的所述物理地址与所述最后一级缓存中的条目匹配以及确定在
所述写入中的所述数据模式和与所述条目相关联的数据模式匹配,在对应的缓存线路过滤
器的表中分配(430)用于所述写入的新条目。
3.根据权利要求1所述的方法,进一步包括:
响应于确定所述写入的所述物理地址与所述最后一级缓存中的条目匹配以及确定在
所述写入中的所述数据模式不同于与所述条目相关联的所述数据模式,利用所述写入的所
述数据模式来更新(440)所述最后一级缓存中的所述条目。
4.根据权利要求1所述的方法,进一步包括:
响应于确定所述写入的所述物理地址不同于所述最后一级缓存中的所有条目以及确
定在所述写入中的所述数据模式和与所述最后一级缓存中的条目相关联的数据模式匹配,
在对应的缓存线路过滤器的表中分配(435)用于所述写入的新条目。
5.根据权利要求1所述的方法,进一步包括:
响应于确定所述写入的所述物理地址不同于所述最后一级缓存中的所有条目以及确
定在所述写入中的所述数据模式不同于与所述最后一级缓存中的条目相关联的所有数据
模式,在所述最后一级缓存中写入(425)用于所述写入的新条目。
6.根据权利要求5所述的方法,其中,所述新条目包括关于所述写入的所述物理地理和
在所述写入中所检测到的所述数据模式的信息。
7.一种用于对缓存线路进行去重的系统(100),包括:
至少一个处理器;以及
耦?#29616;了?#36848;至少一个处理器的非暂时性计算机可读介?#21097;?#20855;有存储在其上的指令,所
述指令在由所述至少一个处理器执行时致使所述至少一个处理器:
检测在对缓存线路的写入中的数据模式;
确定所述写入的物理地址与最后一级缓存(110)中的条目是否匹配;
确定在所述写入中的所述数据模式和与所述条目相关联的数据模式是否匹配;以及
响应于确定所述写入的所述物理地址与所述最后一级缓存中的条目匹配以及确定在
所述写入中的所述数据模式和与所述条目相关联的数据模式匹配,使所述最后一级缓存中
的所述条目无效。
8.根据权利要求7所述的系统,其中,所述至少一个处理器被进一步致使:
响应于确定所述写入的所述物理地址与所述最后一级缓存中的条目匹配以及确定在
所述写入中的所述数据模式和与所述条目相关联的数据模式匹配,在对应的缓存线路过滤
器(120)的表中分配用于所述写入的新条目。
9.根据权利要求7所述的系统,其中,所述至少一个处理器被进一步致使:
响应于确定所述写入的所述物理地址与所述最后一级缓存中的条目匹配以及确定在
所述写入中的所述数据模式不同于与所述条目相关联的所述数据模式,利用所述写入的所
述数据模式来更新所述最后一级缓存中的所述条目。
10.根据权利要求7所述的系统,其中,所述至少一个处理器被进一步致使:
响应于确定所述写入的所述物理地址不同于所述最后一级缓存中的所有条目以及确
定在所述写入中的所述数据模式和与所述最后一级缓存中的条目相关联的数据模式匹配,
在对应的缓存线路过滤器的表中分配用于所述写入的新条目。
11.根据权利要求7所述的系统,其中,所述至少一个处理器被进一步致使:
响应于确定所述写入的所述物理地址不同于所述最后一级缓存中的所有条目以及确
定在所述写入中的所述数据模式不同于与所述最后一级缓存中的条目相关联的所有数据
模式,在所述最后一级缓存中写入用于所述写入的新条目。
12.根据权利要求11所述的系统,其中,所述新条目包括关于所述写入的所述物理地址
和在所述写入中所检测到的所述数据模式的信息。
13.一种用于在存储器读取操作期间对缓存线路进行去重的方法(600),所述方法包
括:
在片上缓存线路过滤器的表中执行(605)查找;
基于所述查找,确定(610)与读取请求相关联的数据在所述缓存线路过滤器中是否是
可用的;
响应于确定与所述读取请求相关联的所述数据在所述缓存线路过滤器中是可用的,从
所述缓存线路过滤器获得(615)所述数据;以及
响应于确定与所述读取请求相关联的所述数据在所述缓存线路过滤器中是不可用的,
从最后一级缓存获得(625)所述数据。
14.根据权利要求13所述的方法,进一步包括:
响应于确定与所述读取请求相关联的所述数据在所述缓存线路过滤器中是不可用的,
在工作存储器缓存溢出表中执行(620)查找。
15.根据权利要求14所述的方法,进一步包括:
基于所述查找,确定(635)与所述读取请求相关联的所述数据是被包含在所述工作存
储器缓存中的重复数据。
16.根据权利要求14所述的方法,进一步包括:
基于所述查找,确定与所述读取请求相关联的所述数据存在于所述工作存储器缓存
中;以及
从所述工作存储器缓存获得(640)所述数据。

说明书

用于缓存线路去重的方法和系统

相关申请的交叉引用

本申请要求2014年10月7日提交的美国临时专利申请序列号62/060,949的优先
权,其全部公开内容通过引用合并入本文。

背景技术

已经观察到:在操作系统的存储器中通常存在许多重复的缓存线路。虽然软件有
可能扫描存储器并且检测重复的内容,但是按照这样的方式来使用软件通常非常昂贵。相
反,更经济并且更?#34892;?#30340;途径是使用硬件来检测存储器中的数据模式。

发明内容

本发明内容以简化的形式介绍了对概念的选择以便提供对本公开的一些方面的
基本理解。本发明内容不是对本公开的广泛概述,并且不旨在表示本公开的关键或者重要
元素或者描绘本公开的范围。本发明内容仅呈现了本公开的概念中的一些以作为下面提供
的具体实施方式的前序。

本公开大体上涉及用于管理存储器的方法和系统。更具体地,本公开的方面涉及
通过检测缓存线路数据模式并且在多个物理地址及其公共数据值之间建立链接列表来对
存储器中的缓存线路进行去重。

本公开的一个实施例涉及一种用于对缓存线路进行去重的方法,该方法包括:检
测在对缓存线路的写入中的数据模式;确定该写入的物理地址是否与最后一级缓存中的条
目匹配;确定在该写入中的数据模式是否和与该条目相关联的数据模式匹配;以及响应于
确定该写入的物理地址与最后一级缓存中的条目匹配,以及确定在写入中的数据模式和与
该条目相关联的数据模式匹配,使最后一级缓存中的该条目无效。

在另一实施例中,用于对缓存线路进行去重的方法进一步包括:响应于确定写入
的物理地址与最后一级缓存中的条目匹配,以及确定在该写入中的数据模式和与该条目相
关联的数据模式匹配,在对应的缓存线路过滤器的表中分配用于该写入的新条目。

在另一实施例中,用于对缓存线路进行去重的方法进一步包括:响应于确定写入
的物理地址与最后一级缓存中的条目匹配,以及确定在该写入中的数据模式不同于与该条
目相关联的数据模式,利用该写入的数据模式来更新最后一级缓存中的该条目。

在另一实施例中,用于对缓存线路进行去重的方法进一步包括:响应于确定该写
入的物理地址不同于最后一级缓存中的所有条目,以及确定在该写入中的数据模式和与最
后一级缓存中的条目相关联的数据模式匹配,在对应的缓存线路过滤器的表中分配用于写
入的新条目。

在又一实施例中,用于对缓存线路进行去重的方法进一步包括:响应于确定写入
的物理地址不同于最后一级缓存中的所有条目,以及确定在该写入中的数据模式不同于与
最后一级缓存中的条目相关联的所有数据模式,在最后一级缓存中写入用于该写入的新条
目。

本公开的另一实施例涉及一种用于对缓存线路进行去重的系统,该系统包括至少
一个处理器和耦?#29616;?#35813;至少一个处理器的非暂时性计算机可读介?#21097;?#20854;具有存储在其上的
指令,该指令在由至少一个处理器执行时致使该至少一个处理器:检测在对缓存线路的写
入中的数据模式;确定该写入的物理地址是否与最后一级缓存中的条目匹配;确定在写入
中的数据模式是否和与条目相关联的数据模式匹配;以及响应于确定写入的物理地址与最
后一级缓存中的条目匹配,以及确定在该写入中的数据模式和与该条目相关联的数据模式
匹配,使最后一级缓存中的条目无效。

在另一实施例中,用于对缓存线路进行去重的系统中的至少一个处理器被进一步
致使来:响应于确定该写入的物理地址与最后一级缓存中的条目匹配,以及确定在写入中
的数据模式和与该条目相关联的数据模式匹配,在对应的缓存线路过滤器的表中分配用于
写入的新条目。

在另一实施例中,用于对缓存线路进行去重的系统中的至少一个处理器被进一步
致使来:响应于确定该写入的物理地址与最后一级缓存中的条目匹配,以及确定在该写入
中的数据模式不同于与条目相关联的数据模式,利用该写入的数据模式来更新最后一级缓
存中的条目。

在另一实施例中,用于对缓存线路进行去重的系统中的至少一个处理器被进一步
致使来:响应于确定该写入的物理地址不同于最后一级缓存中的所有条目,以及确定在该
写入中的数据模式和与最后一级缓存中的条目相关联的数据模式匹配,在对应的缓存线路
过滤器的表中分配用于写入的新条目。

在又一实施例中,用于对缓存线路进行去重的系统中的至少一个处理器被进一步
致使来:响应于确定该写入的物理地址不同于最后一级缓存中的所有条目,以及确定在写
入中的数据模式不同于与最后一级缓存中的条目相关联的所有数据模式,在最后一级缓存
中写入用于该写入的新条目。

本公开的再一实施例涉及一种用于在存储器读取操作期间对缓存线路进行去重
的方法,该方法包括:在片上缓存线路过滤器的表中执行查找;基于该查找,确定与读取请
求相关联的数据是否在缓存线路过滤器中可用;响应于确定与该读取请求相关联的数据在
缓存线路过滤器中可用,从缓存线路过滤器获得数据;以及响应于确定与读取请求相关联
的数据在缓存线路过滤器中不可用,从最后一级缓存获得数据。

在另一实施例中,用于在存储器读取操作期间对缓存线路进行去重的方法进一步
包括:响应于确定与读取请求相关联的数据在缓存线路过滤器中不可用,在工作存储器缓
存溢出表中执行查找。

在再一实施例中,用于在存储器读取操作期间对缓存线路进行去重的方法进一步
包括:基于该查找,确定与读取请求相关联的数据是被包含在工作存储器缓存中的重复数
据。

在又一实施例中,用于在存储器读取操作期间对缓存线路进行去重的方法进一步
包括:基于该查找,确定与读取请求相关联的数据存在于工作存储器缓存中;以及从该工作
存储器缓存获得数据。

本公开的适用性的进一步范围将根据下面给出的具体实施方式而变得显而易见。
然而,应当理解,具体实施方式和特定示例虽然指示优选实施例,但是仅通过说明的方式给
出,这?#19988;?#20026;在本公开的精神和范围内的各个改变和修改将根据该具体实施方式而对本领
域的技术人员变得显而易见。

附图说明

本公开的这些和其它目的、特征、和特性根据与所附权利要求书和附图相结合的
以下具体实施方式的研究,将对本领域的技术人员变得更显而易见,其所有内容形成本说
明书的一部分。在附图中:

图1是图示了根据本文描述的一个或多个实施例的、用于对存储器中的缓存线路
进行去重的示例系统的框图。

图2是图示了根据本文描述的一个或多个实施例的、示例片上缓存线路过滤器表
的框图。

图3是图示了根据本文描述的一个或多个实施例的、示例片外缓存器溢出表的框
图。

图4是图示了根据本文描述的一个或多个实施例的、用于在写入操作期间进行存
储器去重的示例方法的流程图。

图5是图示了根据本文描述的一个或多个实施例的、用于在写入操作期间进行存
储器去重的另一示例方法的流程图。

图6是图示了根据本文描述的一个或多个实施例的、用于在读取操作期间进行存
储器去重的示例方法的流程图。

图7是图示了根据本文描述的一个或多个实施例的、被布置用于对存储器中的缓
存线路的去重的示例计算设备的框图。

本文提供的标题仅仅是为了方便,并不一定会影响本公开中所要求保护的范围或
含义。

在附图中,为了便于理解和便利,相同的附图标记和任何首字母缩?#28304;时?#35782;具有
相同或类似结?#22815;?#21151;能的元件或动作。将在下面的具体实施方式的过程中对附图进行详细
描述。

具体实施方式

现在将对各个示例和实施例进行描述。以下描述提供具体?#38468;?#20197;用于彻底理解并
且实现对这些示例的描述。然而,相关领域的技术人员将理解,本文所描述的一个或多个实
施例可以在没有这些?#38468;?#20013;的许多?#38468;?#30340;情况下实践。类似地,相关领域的技术人员还将
理解,本公开的一个或多个实施例能够包括本文中未详细描述的许多其它明显的特征。此
外,下面将不会详细示出或者描述一些公知的结?#22815;?#21151;能,以便避免不必要地模糊相关描
述。

本公开的实施例涉及用于通过检测缓存线路数据模式并且在多个物理地址与该
多个物理地址的共同数据值之间建立链路列表来对物理存储器中的缓存线路进行去重的
方法和系统。按照这种方式,例如,可以用32位(4?#32440;?的地址来替换64?#32440;?#30340;数据。根据至
少一个实施例,可以应用该方法和系统以实现对片上缓存的去重。

如上面所提及的,硬件善于检测缓存线路数据模式。例如,可以通过使用数?#33268;?#36753;
门(例如,XOR门)和硬布线导出的、软件限定的、和/或硬件训练的模式来检测缓存线路数据
模式。

图1是用于存储器去重的示例系统100。根据本文描述的一个或者多个实施例,系
统100可以包括最后一级缓存(LLC)110、缓存线路过滤器(CL过滤器)120、构架130、低功率
双倍数据速率存储器控制器(例如,LPDDR3Ctl)140、和具有LPDDR3接口标准150的物理动态
随机存取存储器(DRAM)。

根据至少一个实施例,例如,LLC 110可以是8MB的片上静态随机存取存储器
(SRAM),并且CL过滤器120可以是检测重复数据模式并且维持地址-数据?#25104;?#32780;不是将重复
数据写入高速缓冲存储器的缓存线路过滤器。构架130是在系统的各个代理(例如,组件、元
件等)之间移动命令/分组的片上互连,例如包括,CPU、GPU、片上SRAM缓存、片外DRAM?#21462;?#27492;
外,LPDDR3Ctl 140是与JEDEC LPDDR3DRAM对接的存储器控制器。

图2示出了片上缓存线路过滤器表(CL过滤器表)200的示例。根据本文所描述的一
个或多个实施例,CL过滤器表200可以形成CL过滤器的一部分和/或由CL过滤器利用(例如,
在图1中示出的示例系统中的CL过滤器120)。

如图所示,根据本公开的至少一个实施例,两个数据结构可以被用于构成CL过滤
器表200。例如,可以存在限定最常见的重复内容模式(例如,在模式寄存器中的16至64个条
目)的一个表210。第二表220可以保存来自第一个表210的模式编号和重复缓存线路的物理
地址。

可以在写入操作期间检测缓存线路复本。因此,每个写入可以涉及表查找和比较。
如果存在命中,则仅保存地址而不是整个数据?#22336;?#20018;。经去重的数据不在LLC(例如,在图1
中示出的示例系统100中的LLC 110)中,其仅在表220中。例如,假设表220具有16K个条目并
且每个条目具有模式编号和物理地址的4B?#34892;?#36733;荷,则表220将覆盖多达1MB的重复内容。

根据一个或者多个实施例,当例如存在模式命中并且确定该模式命中是新的写入
地址?#20445;?#21487;以向CL过滤器表200分配新条目(例如,由表220表示的数据结构)。例如,可以通
过将地址与LLC标签(其中,“标签”是整个缓存线路的地址)相比较来确定(例如识别)新的
写入地址。现有地?#26041;?#19982;LLC标签相匹配,而新地?#26041;?#19981;会与LLC标签匹配。此外,?#27604;?#23450;旧
写入具?#34892;?#27169;式?#20445;?#21487;以更新CL过滤器表200中的条目或者使其无效。例如,如果在LLC中找
到旧写入数据,但是新写入数据是例如“0000?#20445;?#21017;可以将数据从LLC移动到CL过滤器表200
中。将这样的?#24405;?#35270;为对旧缓存条目的重写。

根据至少一个实施例,当发生“路?#32972;?#31361;?#20445;?#21487;以将CL过滤器表200中的条目逐出
(例如,去除)并且移动至DRAM溢出表(将在下面提供关于DRAM溢出表和“路?#32972;?#31361;的进一步
?#38468;?。应当理解,CL过滤器表200是片上结构,并且因此空间是有限的。因此,当例如达到容
量?#20445;?#21487;以将CL过滤器表200中的条目逐出至DRAM溢出表。由于在CL过滤器表200中的最近
写入的条目具有最高的被读取概?#21097;?#22240;此,CL过滤器表200中最旧的条目很可能是被逐出至
DRAM溢出表的第一条目。LLC(例如,在图1示出的示例系统100中的LLC 110)中没有重复内
容。

如本文所使用的,“n-路”表示可以将地址划分成两个字段-“索引”字段和“路”字
段(如由在图2中示出的示例CL过滤器表200的表220中的列和行所表示)。索引字段基于待
分配的条目的数目(例如,缓存的深度)。此外,缓存线路偏移基于缓存线路的大小。

例如,在路索引的场境(context)中,“4-路”指示能够容纳多达四个唯一标签,其
中标签是在由深度和宽度条目限定的表中的任何框的值。同样,可以将4-路缓存理解为意
指在任何表条目中允许四个唯一标签。在这个意义上,例如,当存在试图进入索引的第五标
签?#20445;?#21487;能出现路冲突。

图3是根据本文描述的一个或者多个实施例的片外存储器(例如DRAM)溢出表300
的示例。

DRAM溢出表300扩展了片上SRAM概念以释放额外层级的DRAM缓存空间。例如,4MB
的DRAM溢出表能够释放64MB的DRAM缓存空间。应当注意,DRAM溢出表300比片上SRAM慢。片
上SRAM空间在MB范围内。DRAM缓存能够在数百MB范围内。数量?#23545;?#39640;,时间/成本越高。虽然
DRAM溢出表300不一定提供速度效益,但是其确实使缓存覆盖区(cache footprint)看起来
比其物理大小更大。效能与未优化的缓存大致相同,因为CL过滤器表(例如,图2中示出的CL
过滤器表200)总是比缓存更快快,即使是在DRAM中。

DRAM溢出表300将去重概念应用于DRAM存储器缓存。例如,根据至少一个实施例,
DRAM溢出表(128K个条目×32B?#34892;?#36733;荷)充当片上缓存线路过滤器的备份。取决于实施方
式,DRAM溢出表能够覆盖多达64MB的重复内容。应当注意,散列函数能够被用于分散条目索
引以避免冲突并且使传入地址随机化。物理地址为32位,散列为17位。因此,散列通过使用
来自标签的31-6的附加位来生成半随机索引。随机化是好的,因为否则只有特定索引会被
写入,所以通过这种方式,使用了更多索引来分散索引字段。

根据本公开的至少一个实施例,可选地,可以将DRAM溢出表300用作硬件垃圾收集
器。例如,软件可以?#32423;?#36827;行场境切换并且清理页表,使得DRAM溢出表中的重复地址不再有
效。因此,当存在软件可以清理某些页面的可能性?#20445;?#21487;以执行周期性垃圾收集以清理属性
并且重新设置每个?#34892;?#20301;。例如,由于不知道“脏”数据是否在当前页面中,因此可以将这样
的数据写入回存储器。页表需要与软件数据一致。因此,对于来自存储器的无效的任何页
面,不写回任何脏数据。按照这种方式,垃圾收集允许缓存与主存储器同步。

图4和图5图示了根据本文描述的一个或多个实施例的、在存储器写入操作期间进
行去重的示例过程。如在示例过程400和500中示出的,取决于仅在模式中找到命中、仅在物
理地址中找到命中、在模式和物理地址两者中找到命中、还是既没有在模式中也没有在物
理地址中找到命中,可以关于LLC和/或CL过滤器表(例如,在图1示出的示例系统100中的
LLC 110和/或在图2中示出的示例CL过滤器表200,上面对其中的每一个都进行了详细描
述)而执行不同的操作。下面提供了关于在写入操作期间的存储器去重的示例过程400和
500中的框405至440和505至540中的一个或多个的各个?#38468;凇?br />

应当注意,虽然在图4中示出的去重400的示例过程中包括的框中的许多与在图5
中示出的去重500的示例过程中的对应框类似,但是框410和510表示可以根据本文描述的
一个或多个实施例来应用的两个分离的情况。具体地,在示例过程400的框410处,可以确定
新的写入地址是否与LLC中的条目匹配,而在示例过程500的框510处,可以确定新的写入地
址是否与CL过滤器表中的条目匹配。

例如,如果新的写入地址命中物理地址上的现有条目,但是写入数据是不同的模
式,则能够确定存在利用预定义模式中的一个的在前写入。因此,已经在CL过滤器表中分配
了条目。在这样的情况下,只有必要利用正被写入的新模式(例如,全部为1)来更新该模式
编号(例如,全部为零)。

在LLC中已经存在条目但是新的写入数据与预定义模式中的一种(例如,全部为1)
相匹配的实例中,则可以使该LLC条目无效并且在CL过滤器表中分配新条目。

如果对现有CL过滤器地址的重写导致唯一数据,则使CL过滤器表条目无效并且对
LLC的写入继续。

如上所述,物理地址命中意指存在利用预定义模式中的一个的在前写入。如果其
是唯一模式,则使在CL过滤表中的条目无效并且作为替代存在对LLC的写入。另一方面,如
果该在前写入是不同的模式,则利用新的模式编号来更新该CL过滤器表中的条目。

当存在模式命中?#20445;?#20165;在不存在物理地址命中的情况下向CL过滤器表分配条目。
其原因?#19988;?#20026;:否则这意指CPU正试图再次写入相同的数据。如果不存在物理地址命中或模
式命中,则该过程继续对LLC的写入。

如果新的写入数据是重复的,则使LLC条目无效并且将其移动至CL过滤器表(分配
新的CL过滤器表条目,因为如果是在LLC中则能够没有物理地址命中)。

根据本公开的一个或多个实施例,在使用DRAM的情况下,如果片上CL过滤器表条
目已满(在图4中未示出),则可能有必要对DRAM溢出表(例如,在图3中示出的DRAM溢出表
300)实施RMW(读取-修改-写入),例如{模式#,物理地址}。在这样的场景中,检查DRAM溢出
表,修改条目,并且?#32531;?#21521;表写入新条目(例如,如果片上CL过滤器表已满)。

可以并行(例如,同时)检查CL过滤器表和LLC。如果片上CL已满,则DRAM溢出表有
可能具有该数据。基于索引来进行读取,针对匹配进行检查(修改),并且?#32531;?#20351;LLC无效或
者对LLC进行写入,并且将状态写入回DRAM溢出。写入动作与CL过滤器表相同。溢出只是CL
过滤器数据的更大的表。

图6是根据本文描述的一个或者多个实施例的、在存储器读取操作期间进行存储
器去重的示例过程。先前在上面提供了关于在读取操作期间的存储器去重的示例过程600
中的框605至640中的一个或多个的各个?#38468;凇?br />

图7是被布置用于提供对存储器中的缓存线路的去重的示例性计算机(700)的高
级框图。例如,根据本文描述的一个或多个实施例,可以将计算机(700)配置为检测缓存线
路数据模式并且在多个物理地址及其公共数据值之间建立链接列表。在非常基本的配置
(701)中,计算设备(700)通常包括一个或多个处理器(710)和系统存储器(720)。存储器总
线(730)能够被用于在处理器(710)和系统存储器(720)之间进行通信。

取决于期望的配置,处理器(710)能够是任何类型的处理器,包括但不限于:微处
理器(μΡ)、微控制器(μθ)、数?#20013;?#21495;处理器(DSP)、或者其任何组合。处理器(710)能够包括
更多级别的缓存,诸如,级1缓存(711)和级2缓存(712)、处理器内核(713)、和寄存器(714)。
处理器内核(713)能够包括算术逻辑单元(ALU)、浮点单元(FPU)、数?#20013;?#21495;处理核心(DSP
Core)、或者其任何组合。存储控制器(716)还能?#32531;?#22788;理器(710)一起使用,或者在一些实
施方式中,存储控制器(715)能够是处理器(710)的内部部分。

取决于期望的配置,系统存储器(720)能够是任何类型的存储器,包括但不限于:
?#36164;?#24615;存储器(诸如,RAM)、?#19988;资?#24615;存储器(诸如,ROM、?#20102;?#23384;储器等)或者其任何组合。系
统存储器(720)通常包括操作系统(721)、一个或者多个应用(722)、和程序数据(724)。应用
(722)可以包括用于对存储器缓存线路进行去重的系统(723)。

程序数据(724)可以包括存储指令,该存储指令在由一个或多个处理设备执行时
实现用于对存储器缓存线路进行去重的系统和方法。此外,根据至少一个实施例,程序数据
(724)可以包括模式和物理地址数据(725),该模式和物理地址数据可以被用于例如检测缓
存线路中的重复数据模式,并且维持地址-数据?#25104;?#32780;不是将重复数据写入高速缓冲存储
器。在一些实施例中,能够将应用(722)布置为与操作系统(721)上的程序数据(724)一起操
作。

计算设备(700)能够具有附加特征或功能、和附加接口以促进基本配置(701)与任
何所需的设备和接口之间的通信。

系统存储器(720)是计算机存储介质的示例。计算机存储介质包括但不限于:RAM、
ROM、EEPROM、?#20102;?#23384;储器或者其它存储器技术、CD-ROM、数字多功能盘(DVD)、或者其它光学
储存器、盒式磁带、磁带、磁盘储存器或者其它磁存储设备、或者能够被用于存储期望的信
息并且能够由计算设备700访问的任何其它介质。任何这样的计算机存储介质都能够是设
备(700)的一部分。

能够将计算设备(700)实施为小封装技术(small-formfactor)便携式(或者移动)
电?#30001;?#22791;,诸如?#21482;?#26234;能电话、个人数?#31181;?#29702;(PDA)、个人媒体播放器设备、平板计算机(平
板)、无线网络观看设备、个人?#21453;?#24335;送受话器设备、专用设备、或者包括上面的功能中的任
何一种的混合设备)的一部分。还能够将计算设备(700)实现为包括膝上?#22270;?#31639;机和非膝上
?#22270;?#31639;机配置二者的个人计算机。

前面描述的详细描述已经经由使用框图、流程图、和/或示例来对设备和/或过程
的各个实施例进行了阐述。在这样的框图、流程图、和/或示例包含一个或多个功能和/或操
作的情况下,本领域技术人员将理解,在这样的框图、流程图、或者示例中的每个功能和/或
操作能够由广泛多种硬件、软件、固件、或者几乎其任何组合来单独地和/或共同地实现。在
一个实施例中,可以经由专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数?#20013;?#21495;处理器
(DSP)、或者其它整合的格式来实现本文描述的主题的若干部分。然而,本领域的技术人员
将认识到,本文所公开的实施例的一些方面能够整体地或部分地在集成电路中等效地被实
现为在一个或多个计算机上运行的一个或多个计算机程序、在一个或多个处理器上运行的
一个或多个程序、固件、或者几乎其任何组合,并且根据本公开,设计电路系统和/或编写软
件和/或固件的代码也将在本领域的技术人员的技能范围内。

此外,本领域的技术人员将认识到,能够将本文描述的主题的机制作为各?#20013;?#24335;
的程序产品来?#22336;ⅲ?#24182;且无论被用于实际执行该?#22336;?#30340;非暂时性信号承载介质的特定类型
如何,本文描述的主题的说明性实施例都适用。非暂时性信号承载介质的示例包括但不限
于以下:可记录型介?#21097;?#35832;如软盘、硬盘驱动器、压缩盘(CD)、数?#36136;?#39057;盘(DVD)、数?#25191;?#24102;、
计算机存储器等;以及传输型介?#21097;?#35832;如数字和/或模拟通信介质(例如,光纤线缆、波导、有
线通信链路、无线通信链路等)。

关于本文几乎任何复数的和/或单数的术语的使用,本领域的技术人员能够从复
数转化为单数和/或从单数转化为复数,以适于场境和/或应用。为了清楚起见,可以在此对
各?#20540;?复数置换进行清楚地阐述。

因此,已经对本主题的特定实施例进行了描述。其它实施例在所附权利要求书的
范围内。在一些情况下,在权利要求书中记载的动作能够按照不同的顺序来执行并且仍然
实现期望的结果。此外,在附图中描绘的过程不一定要求所示的特定顺序或者连续顺序来
实现期望的结果。在某些实施方式中,多任务处理和并行处理可以是有利的。

关于本文
本文标题:用于缓存线路去重的方法和系统.pdf
链接地址:http://www.pqiex.tw/p-6091889.html
关于我们 - 网?#26087;?#26126; - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

[email protected] 2017-2018 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备17046363号-1 
 


收起
展开
平码五不中公式规律 双色球中奖规则及奖金 陕西十一选五开奖情况 腾讯棋牌合集 高频彩单双 江苏11选5基本走势 5月27日短线股票推荐 山西十一选五最新遗漏 福彩快三开奖投注技巧 青海十一选五今天奖号 澳洲幸运5开奖直播