减少的可扩展缓存目录的制作方法

文档序号:8269376阅读:407来源:国知局
减少的可扩展缓存目录的制作方法
【专利说明】减少的可扩展缓存目录
[0001]相关申请案交叉申请
[0002]本发明要求2013年7月29日由Iulin Lih等人递交的发明名称为“减少的可扩展缓存目录(Reduced Scalable Cache Directory) ”的第13/952895号美国非临时专利申请案的在先申请优先权,所述申请案要求2012年8月17日由Iulin Lih等人递交的发明名称为“减少的可扩展缓存目录(Reduced Scalable Cache Directory) ”的第61/684322号美国临时专利申请案的在先申请优先权,两个在先申请的内容以引入的方式并入本文本中。
[0003]关于由联邦政府赞助的
[0004]研宄或开发的声明
[0005]不适用。
[0006]缩微平片附件的引用
[0007]不适用。
【背景技术】
[0008]现代计算机系统可依赖于多个互联的处理器来处理数据。此类处理器(多个处理器)和/或所得到的处理器簇(多个处理器簇)可以同时在大体相同的数据上进行处理操作。为了减少系统延迟,处理数据的多个副本可以存储在多个存储位置中。因此,这种多地存储系统可能需要相干存储方案。缓存相干存储方案可能是一个协议,当其他部件和/或过程修改了共享数据时,其可以允许缓存和/或随机存储器(RAM)等多个存储部件维护共享数据的本地副本并且接收更新。

【发明内容】

[0009]在一项实施例中,本发明包括一种处理网络,所述处理网络包括缓存,用于存储存储数据的副本作为多个缓存线;缓存控制器,用于接收来自多个缓存代理的数据请求,并且指定至少一个所述缓存代理作为第一缓存线的所有者;以及目录,用于存储所述第一缓存线的缓存所有权指定,其中对所述目录进行编码来支持多个但少于所有所述缓存代理对所述第一缓存线的基本同步所有权。
[0010]在另一项实施例中,本发明包括一种处理网络,所述处理网络包括存储部件,用于存储共享存储数据的副本作为多个缓存线,从多个缓存代理接收针对所述缓存线的数据请求,以及维护目录以存储所述缓存代理对所述缓存线的缓存所有权指定,其中对所述目录进行编码以基本同步地指定任意但少于所有的所述存储缓存线。
[0011]在另一项实施例中,本发明包括一种方法,所述方法包括从多个缓存代理接收相干事务,并且在目录中存储所述多个缓存代理对多个缓存线的所有权指定,其中所述目录用于支持存储多个但少于所有所述缓存代理的基本同步所有权指定。
[0012]结合附图和权利要求书,可从以下的详细描述中更清楚地理解这些和其他特征。
【附图说明】
[0013]为了更完整地理解本发明,现在参考以下结合附图和详细描述进行的简要描述,其中相同参考标号表不相同部分。
[0014]图1是多处理器网络架构的实施例的示意图。
[0015]图2是通用计算机系统的实施例的示意图。
[0016]图3示出了基于RAM的目录的实施例。
[0017]图4示出了基于缓存的目录的实施例。
[0018]图5示出了基于RAM的目录的另一实施例。
[0019]图6示出了基于缓存的目录的另一实施例。
[0020]图7是一种管理存储请求的方法的实施例的流程图。
【具体实施方式】
[0021]最初应理解,尽管下文提供一个或多个实施例的说明性实施方案,但可使用任意数目的当前已知或现有的技术来实施所公开的系统和/或方法。本发明决不应限于下文所说明的所述说明性实施方案、图式和技术,包含本文所说明并描述的示范性设计和实施方案,而是可以在所附权利要求书的范围以及其均等物的完整范围内修改。
[0022]处理器可更改存储器作为执行处理功能的一部分。处理器可通过更新缓存存储器中存储的数据的本地副本进行这些更改。然后这些更改可向主存储器传播。这种系统可能引发多处理器系统错误,因为第一处理器可能对数据的第一本地副本进行更改,而第二处理器可能在不了解第一处理器所进行的更改的情况下几乎同时对该数据的第二本地副本进行更改。缓存相干方案可以减轻这类错误。缓存目录或侦听过滤器(以下称为缓存目录或目录)可能是记录系统的缓存线的共享和缓存状态的表。缓存目录可用于引导共享存储系统中的缓存访问和/或侦听过程作为缓存相干方案的一部分。多个缓存代理可以访问每个缓存线,每个缓存代理可以指定为给定缓存线的所有者。
[0023]本文所公开的是可以呈现共享内存并行计算系统的改进的可扩展性的缓存目录实施例。缓存目录可以包括缩减的表格宽度,这可以限制为包括每个缓存线的所有者列的静态数目,而不是为每个可能的缓存线所有者提供一列。目录可以包括缩减的表格深度,这可以限制为包括条目的静态数目,而不是为每个可能的缓存线提供一行。如果希望共享缓存线的所有权的实体数目超过了目录的记录能力,那么目录可以强制一个或多个所有者放弃另一缓存线的所有权。类似地,如果请求的缓存线的数目超过了目录的记录能力,那么目录可以强制缓存线的所有所有者放弃所有权,这样可以从目录中移除该线。通过限制每个缓存线的所有者数目和每次目录中呈现的缓存线的数目可以减少目录大小,这样可以提高访问速度。此外,具有静态宽度和/或深度的目录可能支持没有实质性修改的不同复杂程度的处理器网络。在一些实施例中,限制目录深度可能导致错误的缓存丢失。可以采用地址映射以确定可能的丢失是否应被视作丢失或作为向所有较低缓存广播请求的指令。为了最小化所有权和广播的损失,目录宽度和深度限制的选择可能基于统计分析。
[0024]图1是多处理器网络架构的实施例的示意图。网络100可以包括多个通过路由网络150耦合到I级(LI)缓存120、2级(L2)缓存130和3级(L3)缓存140的处理器110。每个LI缓存120可以包括LI缓存控制器124。每个L2缓存130可以包括L2缓存控制器134、地址映射136和目录132。L3缓存140可能包括L3缓存控制器144、目录142和地址映射146。较高阶缓存可存储数据并且响应较低阶缓存和/或处理器的请求。每个实体都可作为缓存代理和/或归属代理。归属代理可以是响应请求的较高阶实体。缓存代理可以是发起请求的较低阶实体。根据该实施例,可能关于相同的事务和/或一系列事务,存储部件(例如,缓存120、130、140和/或RAM)可作为较低阶存储部件的归属代理和较高阶存储部件的缓存代理可能关于。
[0025]处理器110可被称为中央处理器或CPU。处理器110可以是网络100内通过执行网络100的算术、逻辑和/或输入/输出操作来处理程序指令的实体。每个处理器110可包含可执行算术、逻辑和/或其他操作的算术逻辑单元和可向存储器请求指令的控制单元(如缓存120、130和/或140)。该控制单元还可协同算术逻辑单元解码和执行这些指令。
[0026]LI缓存120、L2缓存130和L3缓存140可以是透明存储数据和快速响应请求的部件。出于成本和数据使用效率的原因,缓存120、130和140可包括相对小容量的存储器,并且可紧邻CPU110。较低阶缓存,如LI缓存120,可包含较小的存储空间,并且可离CPUllO较近;而较高阶缓存,如L3缓存140,可包含较大存储空间,并且可离CPUllO较远。缓存120、130和/或140的位置和大小的选择需兼顾存储和低时延这两个设计目标。每个缓存120,130和/或140都可为保存在主存储器(例如RAM)中的数据存储本地副本。
[0027]LI缓存控制
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1