首页> 中国专利> 多处理器架构中的高速缓存一致性目录

多处理器架构中的高速缓存一致性目录

摘要

总体描述了用于多处理器架构中高速缓存一致性目录的技术。在一个示例中,晶片中的目录可以接收针对特定块的请求。该目录可以确定与包括特定数据块的数据块被存储在晶片中的一个或多个高速缓存中的可能性相关的老化阈值。该目录可以进一步分析存储器以识别指示为存储特定数据块的特定高速缓存并识别特定高速缓存的高速缓存缺失数量。该目录可以确定针对特定数据块的事件发生时的时间并基于老化阈值、事件的时间以及高速缓存缺失数量确定是否将针对特定数据块的请求发送至特定高速缓存。

著录项

  • 公开/公告号CN104781797A

    专利类型发明专利

  • 公开/公告日2015-07-15

    原文格式PDF

  • 申请/专利权人 英派尔科技开发有限公司;

    申请/专利号CN201280077067.4

  • 发明设计人 Y·索林因;

    申请日2012-09-14

  • 分类号

  • 代理机构北京市铸成律师事务所;

  • 代理人孟锐

  • 地址 美国特拉华州

  • 入库时间 2023-12-18 09:43:13

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-05-31

    授权

    授权

  • 2015-08-12

    实质审查的生效 IPC(主分类):G06F13/00 申请日:20120914

    实质审查的生效

  • 2015-07-15

    公开

    公开

说明书

背景技术

除非本文中另有指示,否则本部分中描述的材料并不是针对本申请中 权利要求的现有技术,并且不因包括在本部分中而被承认是现有技术。

在多核处理器架构中,多个处理器内核可以被包括在单个集成电路晶 片中或者被包括在被设置在单个芯片封装中的多个集成电路晶片上。高速 缓存可以被用于存储供处理器内核中的一个或多个访问的数据。数据可以 是存储在通常位于晶片外侧的更大存储器中的数据的子集。每个处理器可 以被设置有存储用于处理器的数据的高速缓存。由于单条数据可以被存储 在多个高速缓存中,高速缓存一致性协议可以被配置为记录存储在多个高 速缓存中的数据。高速缓存一致性协议可以被配置为帮助确保对数据的多 个请求一致地使得相同的数据被返回。

概述

在一些示例中,总体上描述了用于处理多处理器架构中的晶片中的请 求的方法。该方法可以包括接收对特定数据块的请求。该方法可以进一步 包括确定与包括所述特定数据块的数据块被存储在晶片中的一个或多个 高速缓存中的可能性相关的老化阈值(aging threshold)。该方法可以进一 步包括分析存储器以识别指示为存储所述特定数据块的特定高速缓存。该 方法可以进一步包括分析所述存储器以识别所述特定高速缓存的高速缓 存缺失(cache miss)数量。该方法可以进一步包括分析所述存储器以识别针 对所述特定数据块的事件发生时的时间。该方法可以进一步包括基于老化 阈值、事件的时间以及高速缓存缺失数量确定是否将对所述特定数据块的 请求发送至所述特定高速缓存。

在一些示例中,总体上描述了多处理器架构中的目录。该目录可以包 括存储器和被配置为与存储器通信的目录控制器。目录控制器可以用于接 收对特定数据块的请求。目录控制器可以用于确定与包括所述特定数据块 的数据块被存储在晶片中的一个或多个高速缓存中的可能性相关的老化 阈值。目录控制器可以进一步用于分析所述存储器以识别指示为存储所述 特定数据块的特定高速缓存。目录控制器可以用于分析存储器以识别在第 一时间和第二时间之间针对所述特定高速缓存的高速缓存缺失数量。目录 控制器可以用于分析存储器以识别针对所述特定数据块的事件发生时的 时间。目录控制器可以进一步用于基于老化阈值、事件的时间以及高速缓 存缺失数量来确定是否将对所述特定数据块的请求发送至所述特定高速 缓存。

在一些示例中,总体上描述了多处理器架构中的晶片。该晶片可以包 括第一片(tile)、第二片以及目录。第一片可以包括第一高速缓存和第一 处理器。第二片可以包括第二高速缓存和第二处理器。目录可以被配置为 与第一片和第二片通信。目录可以包括存储器和目录控制器。目录控制器 可以用于接收对特定数据块的请求。目录控制器可以用于确定与包括所述 特定数据块的数据块被存储在晶片中的一个或多个高速缓存中的可能性 相关的老化阈值。目录控制器可以进一步用于分析所述存储器以识别指示 为存储所述特定数据块的特定高速缓存。目录控制器可以用于分析所述存 储器以识别在第一时间和第二时间之间针对所述特定高速缓存的高速缓 存缺失数量。目录控制器可以用于分析所述存储器以识别针对所述特定数 据块的事件发生时的时间。目录控制器可以进一步用于基于老化阈值、事 件的时间以及高速缓存缺失数量来确定是否将对所述特定数据块的请求 发送至所述特定高速缓存。

前面的概述仅仅是示例性的,而不意在以任何方式进行限制。通过参 考附图以及下面的详细说明,除了上文所描述的示例性的方面、实施方式、 示例和特征之外,另外的方面、实施方式、示例和特征将变得清晰可见。

附图说明

通过下面结合附图给出的详细说明和随附的权利要求,本公开的前述 特征以及其它特征将变得更加清晰。应理解的是,这些附图仅描绘了依照 本公开的多个实施例,因此,不应视为对本公开范围的限制,将通过利用 附图结合附加的具体描述和细节对本公开进行说明,在附图中:

图1示出能够被用于在多处理器架构中实施高速缓存一致性目录的示 例系统;

图2示出能够被用于在图1的多处理器架构中实施高速缓存一致性目 录的一个示例系统,其包括示例目录的进一步的细节;

图3描述了用于在多处理器架构中实施高速缓存一致性目录的示例处 理的流程图;

图4示出能够被用于在多处理器架构中实施高速缓存一致性目录的计 算机程序产品;以及

图5是示出被安排为在多处理器架构中实施高速缓存一致性目录的示 例计算设备的框图。

具体实施方式

在本具体实施方式中,将参考附图,附图构成了本具体实施方式的一 部分。在附图中,除非上下文指出,否则相似的符号通常表示相似的组件。 在具体实施方式、附图和权利要求中所描述的示例性实施例不意在限制。 在不偏离本文呈现的主题的精神或范围的情况下,可以使用其它实施例, 并且可以做出其它改变。将易于理解的是,如本文大致描述且如图中所图 示的,本公开的各方面能够以各种不同配置来布置、替代、组合、分离和 设计,所有这些都在本文中明确地构思出。

本公开一般尤其涉及与在多处理器架构中的高速缓存一致性目录有 关的方法、装置、系统、设备和计算机程序产品。

简而言之,大致描述了用于多处理器架构中的高速缓存一致性目录技 术。在一个示例中,晶片中的目录可以接收对特定块的请求。目录可以确 定与包括特定数据块的数据块被存储在晶片中的一个或多个高速缓存中 的可能性相关的块老化阈值。目录可以进一步分析存储器以识别指示为存 储特定数据块的特定高速缓存以及识别特定高速缓存的高速缓存缺失数 量。目录可以识别针对特定数据块的事件发生时的时间以及基于老化阈 值、事件的时间以及高速缓存缺失的数量来确定是否将对特定数据块的请 求发送至特定高速缓存。

图1示出根据本文中描述的至少一些实施例安排的能够被用于在多处 理器架构中实施高速缓存一致性目录的示例系统。示例系统100可以包括 晶片(die)102,晶片102包括多个片(tile)。针对片118进行说明,片118 可以包括高速缓存110、处理器或处理器内核(以下称为“处理器”)112 和/或目录114。处理器112可以适于处理包括代码的数据(以下数据和/ 或代码都称为“数据块”)。高速缓存110可以被配置为存储处理器112本地 的数据块。目录114可以包括目录控制器120。目录控制器120可以被用 于如本文中所解释的控制目录114的操作。

如以下更具体的描述,目录控制器120可以被配置为生成和/或存储数 据,用于记录数据已经在各个高速缓存中存储了多久。基于高速缓存缺失 的数量以及本文中所描述的其他启发式方法,目录控制器120可以用于确 定可能性分析。可能性分析可以指示目录中的高速缓存一致性数据可能过 时以及块可能仍被存储在由目录识别的高速缓存中或者可能不再存储在 由目录识别的高速缓存中的可能性。目录控制器可以在对块的请求被发送 至高速缓存之前执行此可能性分析。进行该分析可以由此在块不再存储在 高速缓存中的情况下避免浪费的延迟。在目录控制器确定针对特定块的高 速缓存数据过时的示例中,目录控制器可以将对该特定块的请求离开晶片 而发送以从主存储器中取得该特定块。基于可能性分析和过时性的确定, 目录中的空间可以被创建,并且条目被剔除(evicted)。

晶片102可以包括片118、130-144的矩阵(例如,阵列),它们包括 各自的高速缓存110、150-164。每一片还可以包括各自的处理器112和/ 或目录114中的一个或多个。晶片102中的每个片可以如在同构布置 (homogenous arrangement)中是大致相同的,或者一些片可以如在异构布置 中是不同的。晶片102可以被设置为与另一晶片103通信,从而使得数据 可以在多个晶片之间共享。

目录114可以包括存储器,该存储器标识(例如,索引)与存储在晶 片102的片中的每个数据块相关联的位置。目录114可以被定位在晶片102 上的单个片中,或者分布在一些或者所有片之间。如果目录114是分布式 的,例如,第一范围的地址(例如0x0000-0x1000)可以被存储在第一片 中,第二范围的地址(例如0x1001-0x2000)被存储在第二片中,等等。 图中的目录114由此可以示出整个晶片目录的第一部分,其中该第一部分 可以被存储在片118中并且额外的部分可以被存储在其他片(例如片130、 131、132等等)中。

目录114可以包括存储在晶片102中的块的列表连同块的状态以及哪 些高速缓存可能正在共享该块。例如,目录114可以使用MESI、MOESI、 MSI、MOSI等协议。在这些类型的协议中,目录114可以记录共享状态, 例如:修改(M),例如在高速缓存线已经由于该高速缓存线已经从主存储 器被移动而被修改时;专用(E),例如在高速缓存线仅仅在一个高速缓存 中但该线与主存储器匹配时;专用-修改(EM),例如在高速缓存线被修改 并且专用于一个高速缓存时;共享(S),例如在高速缓存线可以被存储在 其他高速缓存中并且该线与主存储器匹配时;无效(I),例如在高速缓存 线无效时;和/或持有(O),例如在所指示的高速缓存线包括最新的数据 副本时。

目录114可以被配置为存储与高速缓存相关的一致性数据。目录114 可以存储与存储在晶片102中的高速缓存中的数据相关的一致性表170和 第二表172。表170可以将数据包括在字段(例如标签174、状态176和/ 或共享者178)中。标签字段174可以指示数据块,例如,在一个示例中, 块“B1”、“B2”、“B3”和/或“B4”。状态字段176可以通过使用以上提到的 协议中的一个协议来指示这些块的一致性状态。字段178可以指示哪些高 速缓存(如果有的话)正在共享该块。在所示的示例中,块B1以共享“S” 状态被存储,并且被高速缓存C1和C3共享;块B2处于专用-修改状态, 并且仅仅被高速缓存C2共享;块B3以共享状态被存储,并且被高速缓存 C1和C3共享;块B4处于专用修改状态,并且仅仅被高速缓存C4共享。

第二表172可以将数据包括在字段(例如“高速缓存”180、“缺失时钟 (miss clock)”182和/或“最后事件的时间”184)中。高速缓存字段180可以 存储标识晶片102中的高速缓存的数据。缺失时钟字段182可以指示高速 缓存缺失的数量。最后事件的时间字段184可以指示在各高速缓存中发生 的事件(例如高速缓存缺失或对更新一致性状态的请求)的最后时间。对更 新一致性状态的请求可以与写到块的请求一起发生。最后事件的时间字段 184可以记录目录114可知的块已经由处理器访问的最后时间。最后事件 的时间字段可以记录将缺失时钟用作计数器的时间,如以下所述的。

目录控制器120可以计算块老化阈值186,块老化阈值186可以用于 确定与块的一致性状态相关的数据是否已经过时。块老化阈值186可以基 于块已经从高速缓存移除的可能性和/或高速缓存一致性数据已经过时的 可能性。在一个示例中,块老化阈值186可以基于发生在晶片102中的其 他块的缺失的数量来计算,并且可以被用于确定特定块的一致性状态已经 过时的可能性。块老化阈值可以基于指示为被存储在高速缓存中的块仍然 被存储在高速缓存中的期望的置信度。块老化阈值可以由目录控制器120 使用在脏块(dirty block)(例如自被主存储器访问以来数据已经写入的块) 从高速缓存被剔除时收集的数据来计算。块老化阈值还可以由目录控制器 120使用从已经被它们各自的高速缓存剔除的专用于一个高速缓存的清洁 块(clean block)收集的数据来计算。

在一个示例中,块老化阈值186可以以以下方式被计算:

假定对于高速缓存C中的每个块Bn,在Bn从高速缓存C剔除之前对 高速缓存C中的其他区块发生的缺失的数量为xn。x的均值 avgx=(x1+x2…+xn)/n。x的标准偏差stdevx=sqrt(((x1-avgx) 2+(x2-avgx)2=…xn-avgx)2)/n),其中sqrt是平方根运算。块老化阈值可以是 avgx+stdevx,在一个示例中,关于块是否已经从高速缓存剔除的可能性, 其可以实现84%的置信度。在另一示例中,块老化阈值可以是 avgx+2*stdevx,并且关于块是否已经从高速缓存剔除的可能性,可以实现 99.5%的置信度。

随着片102工作,可以由处理器内核中的高速缓存请求数据。内核可 能被通知指示所请求的块未被存储在各高速缓存中的高速缓存缺失。目录 控制器120可以记录各高速缓存的高速缓存缺失的数量,并基于这些高速 缓存缺失更新缺失时钟字段182。大的缺失时钟(例如64位元的缺失时钟) 可以被用于避免溢出。如以上提到的,最后事件的时间字段184可以基于 缺失时钟指示由目录可知的块已经由处理器访问的最后时间。这可以是目 录具有精确的一致性数据的最后时间。基于块老化阈值、缺失时钟和最后 事件的时间,目录控制器可以确定一致性数据的过时性。

在图1中所示的示例中,块B1由高速缓存C1和C3共享。对于高速 缓存C1的最后事件的时间184为345(涉及缺失时钟),并且在该示例中, 块老化阈值(BAT)被计算为1024。由于最后事件的时间小于缺失时钟减 去块老化阈值(345<6531-1024),因此目录控制器120可以确定高速缓存 C1中的块B1已经老化,因此一致性数据可能过时。类似地,对于高速缓 存C3的最后事件的时间为411且小于C3的缺失时钟减去块老化阈值(411 <9261-1024),所以目录控制器120可以确定在高速缓存C3的块B1也已 经老化。关于高速缓存C1和C3中的块B1的这些确定指示块B1不太可 能仍然存储于高速缓存C1和C3中。因此,目录控制器120可以将对块 B1的请求不转达至高速缓存C1或C3,而是离开晶片102转达至例如存 储器控制器188。

针对块B2,块B2可能仍然存储在高速缓存C2中,因为最后事件的 时间大于C2的缺失时钟减去块老化阈值(155>394-1024)。块B3可以提 供混合的可能性,因为块B3在高速缓存C1中可能已经老化但在高速缓存 C3中没有老化。在该示例中,块B4刚刚被存储在高速缓存中,因为最后 事件的时间是77,缺失时钟计数为78,所以块B4可能仍然被存储在高速 缓存C4中。

最后事件的时间数据可以由目录控制器120以多种方式保持。例如, 最后事件的时间数据可以记录每一缺失时钟滴答(clock tick)。在另一示例 中,最后事件的时间数据可以记录更大量缺失时钟滴答,例如每2x(2的 x次幂)缺失时钟滴答,以减少存储在目录114中的最后事件的时间数据 的大小。

最后事件的时间数据可以针对每一个块保持。最后事件的时间数据可 以针对多组或多页块保持,例如可在存储器中形成页的4KB连续块。页中 的块很可能具有过时性或老化的类似水平以及可能性,因为这些块很可能 由于空间局部性而一起被访问。高速缓存缺失或无效请求,作为将导致目 录控制器更新最后事件的时间数据的事件,可以针对整页被保持。可以在 针对在该页上的块的事件发生时更新最后事件的时间数据。在块大小为64 字节的示例中,记录页的最后事件的时间数据的这一方法可以将对最后事 件的时间数据的存储器使用减少4KB/64=64。

可以针对每一高速缓存保持最后事件的时间数据。在示例中,可以针 对用于代表多个高速缓存的一些代表性高速缓存保持最后事件的时间数 据。来自代表的高速缓存中任一个的高速缓存缺失可以更新最后事件的时 间数据。最后事件的时间数据存储技术的组合或子组合可以被使用。例如, 可以由目录控制器120使用记录多个(2x)高速缓存缺失、保持多页de块 的数据和/或保持代表性的高速缓存的数据中的一些或所有。

图2示出根据本文中描述的至少一些实施例布置的能够被用于在图1 的多处理器架构中实施高速缓存一致性目录的示例系统,其包括示例目录 的进一步的细节。图2类似于系统100,其具有额外的细节。为清晰目的, 被标记为与图1的组件一致的图2中的那些组件将不再次描述。

目录114可以进一步包括受害者选择和确认逻辑190,受害者选择和 确认逻辑190可以被用于如本文中所描述的基于条目过时的可能性剔除目 录114的存储器中的条目。图2示出了执行系统100的示例。在该示例中, 一致性表200a、200b、200c和200d、缺失时钟表202a、202b、202c和202d、 块老化阈值204a、204b、204c和204d以及最后事件的时间表206a、206b、 206c和206d各自被显示针对四个不同的时间192、194、196、198,并由 字母a、b、c和d指示。针对时间192,在示例中,与高速缓存C2相对应 的处理器可能在请求块P1.1时经历高速缓存缺失。块Px.y指示在第x页 上的第y块。根据高速缓存一致性表200a目录,高速缓存C1正在以共享 “S”状态存储块P1.1。最后事件的时间表206a指示块P1.1被访问的最后时 间是在C1高速缓存缺失时钟时间1500。C1的缺失时钟202a指示当前缺 失时间4567。因为缺失时钟减去最后事件的时间大于块老化阈值 (4567-1500>1000),因此目录控制器120可以确定块P1.1过时并且很可 能不再高速缓存在C1中。目录控制器120可以因此将对块P1.1的请求发 送至存储器控制器188而不是发送至高速缓存C1。通过不首先将请求发送 至高速缓存C1以查看高速缓存C1是否具有块P1.1,节省了延迟,因为很 可能块P1.1不再存储在高速缓存C1中。

在该示例中,对于P1.1的目录条目存在,所以不必做出关于在目录 114中剔除(为P1.1腾出空间)的决定。可以通过使用针对高速缓存C2- 与请求块P1.1的处理器相关的高速缓存的缺失时钟条目来更新最后事件 的时间表206。在该示例中,C2的缺失时钟202a是7101,所以最后事件 的时间表206b被更新(如在194显示),指示页P1(包括块P1.1)的最后 事件由高速缓存C2在时间7101作出。在此示例中,可以基于在页中块的 改变(块P1.1在页P1中)来保持最后事件的时间数据。如在缺失时钟202b 所显示的,缺失时钟202被增加到7102。

针对194,在另一示例中,与高速缓存C1相对应的处理器可以在请求 块P1.2中经历高速缓存缺失,并且可以将对块P1.2的请求发送至目录控 制器120。目录控制器120可以分析高速缓存一致性表200b,并确定块P1.2 以被高速缓存C2和C3共享的共享状态S存储。最后事件的时间表206b 指示针对页P1的最后事件的时间为7101,并且由高速缓存C2访问。由于 C2的缺失时钟时间减去最后事件的时间小于块老化阈值(7102-7101< 1000),块很可能是新的并且仍然存储在所指示的高速缓存中。因此,目 录控制器120可以将对块P1.2的请求发送至高速缓存C2或C3。由于不需 要访问芯片外存储器,因此节省了延迟。

现在,如一致性表200c所指示的,块P1.2被高速缓存C1、C2和C3 共享。缺失时钟表206可以被更新,以指示C1的时钟缺失数量如缺失时 钟202c所示的现在为4568。最后事件的时间表可以被更新,以指示页P1 的最后事件现在为4567,并且事件来自高速缓存C1。

在另一示例中,针对时间196,与C1相对应的处理器可以在请求访问 块P1.3时经历高速缓存缺失。与C1相对应的处理器可以将对块P1.3的请 求发送至目录控制器120,并且目录控制器120可以确定目录中不存在针 对块P1.3的数据,所以应当制作条目并且选择用于剔除的条目。在该示例 中,块P1.3映射到与块P2.1或者块P3.5相对应的空间,并且应当作出剔 除这些块中的一个的决定。

目录控制器120可以分析与块P2.1以及块P3.5相关的数据,并且确 定这些块仍然被存储在所指示的高速缓存中的各个可能性。例如,目录控 制器120可以确定P2.1还没有老化(995-95<1000),并且块P3.5已经老 化4568-2000>1000。由于块P3.5已经老化,很可能页P3中的块不再被高 速缓存,所以受害者选择和确认逻辑190可以通过向正在存储块P3.5的高 速缓存发送无效消息来剔除块P3.5。在该示例中,高速缓存C1和C2可以 接收无效消息。在另一示例中,由于页P3的所有块已经老化,目录控制 器120可以向存储针对页P3的数据的所有高速缓存发送消息。在该示例 中,高速缓存C1、C2和C3都接收消息,以无效与页P3相关的数据。这 在高速缓存一致性表200d中显示,其中与页P3相关的数据已经被块P1.3 的条目替换。

在其他可能的优点中,根据本公开的系统可以确定块是否仍然存储在 高速缓存中的可能性。响应于特定块已经老化的确定,目录控制器可以将 对块的请求离开晶片而发送,并且通过首先将请求发送至被指示为最后存 储该块的高速缓存来避免增加延迟。响应于特定块在特定高速缓存未老化 的确定,目录控制器可以将对块的请求发送至特定高速缓存,通过不将请 求发送至存储器控制器来避免延迟和带宽使用的增加。根据本公开的系统 可以负责相对空闲的一些高速缓存,其中少许块或没有块被剔除或者其中 数据并不集中的线程正在运行。在这些示例中,块可能不会迅速老化。在 其他示例中,在数据集中线程正在处理的情况下,块可以以更快的速率被 剔除,并且可通过使用块缺失数据来解释数据。目录性能和能量效率可以 被改善,因为目录控制器被提供有将请求发送至目录中所指示的高速缓存 或者发送至芯片外的存储器控制器的指令。由于过时数据条目可被识别, 因此那些条目可以从目录被移除,腾出空间来产生更少的目录开销。关于 目录剔除的逻辑可以被改善,因为剔除可以基于条目的过时性。

图3描述了根据本文中描述的至少一些实施例布置的用于在多处理器 架构中执行高速缓存一致性目录的示例处理的流程图。在一些示例中,图 3中的处理可以使用如上所述的系统100执行,并且可以用于处理多处理 器架构中的晶片中的请求。

示例处理可以包括由一个或多个方框S2、S4、S6、S8、S10和/或S12 所示出的一个或多个操作、动作或功能。虽然图示为离散的方框,基于所 期望的实施方式,各方框可以划分成额外的方框、组合成较少的方框,或 者被去除。

处理可以在方框S2“接收对特定数据块的请求”开始。在方框S2,目 录控制器可以接收对特定数据块的请求。请求可以是例如从数据块读或者 写到数据块的请求。

处理可以从方框S2向S4“确定与包括所述特定数据块的数据块被存储 在晶片中的一个或多个高速缓存中的可能性相关的老化阈值”继续。在方框 S4,目录可以确定与数据块被存储在晶片中的一个或多个高速缓存中的可 能性相关的老化阈值。例如,目录可以确定与晶片中的块在过去已经发生 的缺失数量相关的均值和标准偏差。

处理还可以从方框S4向S6“分析存储器以识别指示为存储所述特定数 据块的特定高速缓存”继续。在方框S6,目录可以分析存储器以确定指示 为存储所述特定数据块的特定高速缓存。

处理可以从方框S6向方框S8“分析存储器以识别特定高速缓存的高速 缓存缺失数量”继续。在方框S8,目录可以分析存储器以确定对于特定高 速缓存的高速缓存缺失数量。

处理可以从方框S8向方框S10“分析存储器以识别针对特定数据块的 事件发生时的时间”继续。在方框S10,目录可以分析存储器以识别针对特 定数据块或包括该数据块的页的事件发生时的时间。事件可以包括例如高 速缓存缺失或者请求更新一致性状态。事件的时间可以识别由目录已知的 块已经被访问的最后时间。

处理可以从方框S10向方框S12“基于老化阈值、事件的时间以及高速 缓存缺失的数量来确定是否将对所述特定数据块的请求发送至所述特定 高速缓存”继续。在方框S12,目录可以基于老化阈值、事件的时间以及高 速缓存缺失的数量来确定是否将对所述特定数据块的请求发送至所述特 定高速缓存或存储器控制器。例如,如果事件的时间小于高速缓存缺失的 数量减去老化阈值,则目录可以确定该块未老化,并且可以将该请求发送 至所述特定高速缓存。相反,如果事件的时间大于高速缓存缺失的数量减 去老化阈值,则目录可以确定该块已经老化,并且可以将该请求发送至存 储器控制器。

图4示出根据本文中所描述的至少一些实施例布置的能够被用于在多 处理器架构中实施高速缓存一致性目录的示例计算机程序产品300。程序 产品300可以包括信号承载介质302。信号承载介质302可以包括一条或 多条指令304,当由例如处理器执行时,这些指令可以提供上文结合图1-3 描述的功能。由此,例如,参考系统100,目录控制器120可以响应于由 介质302传递到系统100的指令304而进行图4显示的方框中的一个或多 个。

在一些实施方式中,信号承载介质302可以包含计算机可读介质306, 例如但不限于硬盘驱动器、压缩盘(CD)、数字视频盘(DVD)、数字磁带、 存储器等。在一些实施方式中,信号承载介质302可以包含可记录介质308, 例如但不限于存储器、读/写(R/W)CD、R/W DVD,等等。在一些实施 方式中,信号承载介质302可以包含通信介质310,例如但不限于数字和/ 或模拟通信介质(例如,光纤电缆、波导、有线通信链路、无线通信链路 等)。因此,例如,程序产品300可以通过RF信号承载介质302传送到系 统100的一个或多个模块,其中信号承载介质302由无线通信介质310(例 如,符合IEEE 802.11标准的无线通信介质)来传送。

图5是示出根据本文中所描述的至少一些实施例布置的被布置为在多 处理器架构中实施高速缓存一致性目录的示例计算设备400的框图。在最 基本的配置402中,计算设备400通常包括一个或多个处理器404和系统 存储器406。存储器总线408可用于在处理器404与系统存储器406之间 通信。

根据所需的配置,处理器404可以是任意类型,包括但不限于微处理 器(μP)、微控制器(μC)、数字信号处理器(DSP)或其任意组合。处理 器404可以包括例如一级高速缓存410和二级高速缓存412的一级或多级 高速缓存、处理器内核414和寄存器416。示例的处理器内核414可以包 括算术逻辑单元(ALU)、浮点单元(FPU)、数字信号处理核(DSP Core) 或其任意组合。示例的存储器控制器418还可与处理器404一起使用,或 者在一些实施方式中,存储器控制器418可以是处理器404的内部组件。

根据所需的配置,系统存储器406可以是任意类型,包括但不限于易 失性存储器(例如RAM)、非易失性存储器(例如ROM、闪存等)或其 任意组合。系统存储器406可以包括操作系统420、一个或多个应用422 以及程序数据424。应用422可以包括高速缓存一致性目录算法426,该 算法426可布置成执行如本文所描述的功能,包括参考如图1和2所示的 系统100所描述的功能。程序数据424可以包括高速缓存一致性目录数据 428,其可以用于如本文中描述的在多处理器架构中实施高速缓存一致性 目录。在一些示例中,应用422可布置成在操作系统420上操作程序数据 424,使得可以提供在多处理器架构中的高速缓存一致性目录。此描述的 基本配置402在图5中通过内部虚线内的那些组件示出。

计算设备400可具有附加的特征或功能以及附加的接口以便于在基础 配置402与任何所需的设备和接口之间的通信。例如,总线/接口控制器 430可用于利于基础配置402与一个或多个数据存储设备432之间经由存 储接口总线434的通信。数据存储设备432可以是可移除存储设备436、 非可移除存储设备438或者其组合。可移除存储设备和非可移除存储设备 的示例包括例如软盘驱动器和硬盘驱动器(HDD)的磁盘设备、例如压缩 盘(CD)驱动器或数字多功能盘(DVD)驱动器的光盘驱动器、固态驱 动器(SSD)和磁带驱动器,仅列举了几个。示例的计算机存储媒体可以 包括以用于例如计算机可读指令、数据架构、程序模块或其它数据的信息 的存储的任何方法或技术实现的易失性和非易失性的媒体以及可移除和 非可移除的媒体。

系统存储器406、可移除存储设备436和非可移除存储设备438是计 算机存储媒体的示例。计算机存储媒体包括但不限于RAM、ROM、 EEPROM、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或 其它光学存储设备、磁盒、磁带、磁盘存储设备或其它磁存储设备、或者 可用于存储所需信息并且可由计算设备400访问的任何其它媒体。任意这 样的计算机存储媒体可以是计算设备400的部分。

计算设备400还可以包括接口总线440,该接口总线440用于方便从 各接口设备(例如,输出接口442、外围设备接口444和通信设备446) 经由总线/接口控制器430到基础配置402的通信。示例的输出设备442包 括图形处理单元448和音频处理单元450,其可配置为经由一个或多个A/V 端口452与例如显示器或扬声器的各外部设备通信。示例的外围设备接口 444包括串行接口控制器454或并行接口控制器456,其可配置为经由一 个或多个I/O端口458与例如输入设备(例如,键盘、鼠标、笔、语音输 入设备、触摸输入设备等)或其它外围设备(例如,打印机、扫描仪等) 的外部设备通信。示例的通信设备446包括网络控制器460,其可布置成 便于经由一个或多个通信端口464通过网络通信链路与一个或多个计算设 备462的通信。

网络通信链路可以是通信媒体的一个示例。通信媒体通常可通过计算 机可读指令、数据架构、程序模块或例如载波或其它传输机制的调制数据 信号中的其它数据来具体化,并且可以包括任何信息输送媒体。“调制数据 信号”可以是使得其特性中的一个或多个以将信号中的信息编码的方式设 定或改变的信号。通过举例而不是限制的方式,通信媒体可以包括例如有 线网络或直接线连接的有线媒体,以及例如声波、射频(RF)、微波、红 外(IR)和其它无线媒体的无线媒体。如本文所使用的术语计算机可读媒 体可以包括存储媒体和通信媒体两者。

计算设备400可实现为例如蜂窝电话、个人数据助理(PDA)、个人 媒体播放器设备、无线网页监视设备(wireless web-watch device)、个人头 戴送受话器设备、专用设备或包括上述功能中的任一种的混合设备的小形 状因数的便携式(或移动)电子设备的一部分。计算设备400还可实现为 包括膝上型计算机和非膝上型计算机配置两者的个人计算机。

本公开不限于本申请所描述的特定实施例,这些实施例意在示出各方 面。能够在不偏离其精神和范围的情况下做出多种改进和变型,这对于本 领域技术人员而言是显而易见的。通过前面的说明,除了本文所列举的那 些之外,在本公开的范围内的功能上等同的方法和装置对于本领域技术人 员而言将是显而易见的。旨在使这些改进和变型落在所附权利要求书的范 围内。本公开仅受所附权利要求书以及这些权利要求所给予权利的等同方 案的整个范围所限制。应当理解的是,本公开不限于特定的方法、试剂、 化合物组成或生物系统,当然这些会变化。还应理解的是,本文所使用的 术语是仅仅是为了描述特定实施例的目的,而不意在限制。

关于本文中基本上任何复数和/或单数术语的使用,本领域技术人员能 够根据上下文和/或应用适当地从复数变换成单数和/或从单数变换成复 数。为了清晰的目的,各单数/复数的置换本文中可被明确地阐明。

本领域技术人员将理解,一般地,本文所使用的术语,尤其是随附权 利要求(例如,随附权利要求的主体)中所使用的术语,通常意在为“开放 式”术语(例如,术语“包括”应当解释为“包括但不限于”,术语“具有”应解 释为“至少具有”,术语“包括”应解释为“包括但不限于”,等等)。本领域技 术人员还理解,如果意表达引导性权利要求记述项的具体数量,该意图将 明确地记述在权利要求中,并且在不存在这种记述的情况下,不存在这样 的意图。例如,为辅助理解,下面的随附权利要求可能包含了引导性短语 “至少一个”和“一个或多个”的使用以引导权利要求记述项。然而,这种短 语的使用不应解释为暗指不定冠词“一”或“一个”引导权利要求记述项将包 含该所引导的权利要求记述项的任何特定权利要求局限于仅包含一个该 记述项的实施例,即使当同一权利要求包括了引导性短语“一个或多个”或 “至少一个”以及例如“一”或“一个”的不定冠词(例如,“一”和/或“一个”应 当解释为表示“至少一个”或“一个或多个”);这同样适用于对于用于引导权 利要求记述项的定冠词的使用。另外,即使明确地记述了被引导的权利要 求记述项的具体数量,本领域技术人员将理解到这些记述项应当解释为至 少表示所记述的数量(例如,没有其它修饰语的裸记述“两个记述项”表示 至少两个记述项或两个以上的记述项)。此外,在使用类似于“A、B和C 等中的至少一个”的惯用法的那些示例中,通常这样的构造旨在表达本领域 技术人员理解该惯用法的含义(例如,“具有A、B和C中的至少一个的 系统”将包括但不限于仅具有A、仅具有B、仅具有C、具有A和B、具有 A和C、具有B和C、和/或具有A、B和C等等的系统)。在使用类似于“A、 B或C等中的至少一个”的惯用法的那些示例中,通常这样的构造旨在表 达本领域技术人员理解该惯用法的含义(例如,“具有A、B或C中的至 少一个的系统”将包括但不限于仅具有A、仅具有B、仅具有C、具有A和 B、具有A和C、具有B和C、和/或具有A、B和C等等的系统)。本领 域技术人员将进一步理解,呈现两个以上可选项的几乎任何分离词和/或短 语,无论是在说明书、权利要求或附图中,都应理解为设想包括一项、任 一项或两项的可能性。例如,术语“A或B”将理解为包括“A”或“B”或“A和 B”的可能性。

另外,在根据马库什组(Markush group)描述本公开的特征或方案的 情况下,本领域技术人员将理解的是本公开也因此以马库什组的任何独立 成员或成员的子组来描述。

本领域技术人员将理解的是,为了任何以及全部的目的,例如在提供 所撰写的说明书方面,本文所公开的全部范围也涵盖了任何和全部的可能 的子范围及其子范围的组合。能够容易地认识到任何所列范围都充分地描 述了同一范围并且使同一范围分解成至少均等的一半、三分之一、四分之 一、五分之一、十分之一等等。作为非限制示例,本文所论述的每个范围 能够容易地分解成下三分之一、中三分之一和上三分之一,等等。本领域 技术人员还将理解的是,例如“多达”、“至少”等所有的语言包括所记述的 数量并且是指如上文所论述的随后能够分解成子范围的范围。最后,本领 域技术人员将理解的是,范围包括每个独立的成员。因此,例如,具有1-3 个单元的组是指具有1个、2个或3个单元的组。类似地,具有1-5个单 元的组是指具有1个、2个、3个、4个、或5个单元的组,等等。

通过前面的论述,将理解到本文已经为了示例的目的描述了本公开的 各实施例,并且可以在不偏离本公开的范围和精神的情况下进行各种改 进。因此,本文所公开的各个实施例不意在限制,真正的范围和精神是通 过随附的权利要求表示的。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号