多处理器系统,数据管理方法和非暂时性计算机可读媒体与流程

文档序号:15931729发布日期:2018-11-14 01:44阅读:227来源:国知局
本文所揭露的主题的实施例大体涉及用于存取计算机存储器装置中的数据的方法和系统,且更具体地说,涉及用于实施相干高速缓存层次的机制和技术。
背景技术
:如今的处理器常常配备有可以存储数据和指令的副本的高速缓存,所述数据和指令存储于一些大容量存储器中。如今的此类大容量存储器的风行实例为动态随机存取存储器(dynamicrandomaccessmemory;dram)。在本文中,术语“存储器”将用来共同地指代所有现有及将来的存储器实施方案。高速缓存存储器或简称为“高速缓存”通常是由相比其它存储器实施方案小得多及快得多的存储器构建,且随后可在任何给定时间仅保持一部分存储在主存储器或辅助存储装置中的数据的副本。如今,常使用sram来实施高速缓存且可使用dram来实施大型高速缓存。本文所描述的高速缓存可使用任何现有及将来的存储器技术来实施。通常,计算机系统的存储器系统包含一系列高速缓存,其中较大及较慢高速缓存(此处被称作较高级高速缓存)接近主存储器,且较小及较快高速缓存(此处被称作较低级高速缓存)更接近处理器。这种配置通常被称作高速缓存层次、存储器层次或存储器系统。高速缓存层次中的每一级别被称作高速缓存级别。图1描绘计算机系统,其中为每一处理器(cpu)101指配其自有的1级专用高速缓存102(l1高速缓存)。专用高速缓存是其中用于数据单元的空间仅可能对在高速缓存本地的cpu(或与高速缓存处于同一节点的cpu,其中所述高速缓存是所述节点专用的)的活动作出响应的高速缓存。在此实例中,二级高速缓存103由所有cpu101共享,并可含有由所有cpu101存取的数据和指令。高速缓存103是全局高速缓存,是因为可以使用于数据单元的空间对任何cpu101的活动作出响应。此外,高速缓存103为共享高速缓存,是因为每一数据单元仅可能存在于一个共享副本中(而每一专用高速缓存可具有其自有的复制副本)。存储器105还存储由所有cpu101存取的指令及数据。(主)存储器105通常使用物理地址(或简称为pa)存取,而由cpu101产生的地址通常是虚拟地址。具有若干cpu和若干专用高速缓存的计算机系统(诸如图1中所示的系统)需要用于在一个高速缓存中寻找所请求数据单元以及用于保持存储于不同节点中的数据的多个副本相干的高效机制。除主存储器及高速缓存存储器以外,此类计算机系统通常也将包含一个或多个辅助存储装置。这些辅助存储装置可包含硬盘驱动器、光驱、闪存驱动器或类似驱动器中的一或多者,其在此共同地由磁盘104表示。磁盘或辅助存储装置104可存储比存储器105多的若干数量级数据,但并非可使用物理地址直接存取。如果cpu101想要存取存储在磁盘104上的数据,那么虚拟存储器系统(图1中未绘示)将通常被称为页面的数据信息块从磁盘104移动到存储器105,并产生从对应于所述页面的虚拟地址到物理地址的转译。通常被称为“转译后备缓冲器”或简称为tlb的一类特殊的转译高速缓存(图1中未绘示)对从虚拟页面到物理页面的转译映射进行高速缓存。虚拟存储器系统可被视为高速缓存系统,其将位于磁盘104中的数据的一部分存储在存储器105中。图2绘示来自图1的高速缓存组织的更详细视图,其中cpu204经绘示为含有若干高速缓存类结构,如指令tlb(itlb,201)及数据tlb(dtldb,205)以及cpu核心202。1级高速缓存102经绘示为包含插入在cpu204与2级(且潜在地较高级)高速缓存207之间的指令高速缓存200及数据高速缓存206。图2还绘示连接到高速缓存层次的大容量存储器208。当cpu204请求存在于高速缓存中的数据(其被称作高速缓存命中)时,可相比对不存在于高速缓存中的数据的存取而更快地为所述请求提供服务,其被称作高速缓存未命中。通常,假设两个版本的应用程序另外具有类似特性,相比相同应用程序遭受更多高速缓存未命中的情况,在经历更少高速缓存未命中的cpu204上运行的应用程序将更快地执行并消耗较少能量。因此,已将相当大的努力投入在用于避免高速缓存未命中的技术中,并且还设计出可使高速缓存命中及高速缓存未命中相对于其存取时延及这些存储器事务所消耗的能量高效的实施方案。为了理解如何开发对此高速缓存命中/未命中问题的解决方案,对高速缓存组织及技术的部分理解将是有用的。通常,数据安设到比处理器的字长大的固定信息块中的高速缓存(被称为高速缓存线)中。如今的共同高速缓存线大小为(例如)32、64及128个字节,但如所属领域的技术人员将了解,针对各种高速缓存实施方案存在较大及较小的高速缓存线大小。高速缓存线大小对于一些高速缓存实施方案来说也可以是可变的。组织存储器208中的数据放置的常见方式是将每一数据字静态地映射为驻留在一个特定高速缓存线的方式。每一高速缓存通常具有索引功能,其识别每一高速缓存线可驻留的高速缓存的一部分(被称为集合)中。所述集合可含有同时保持一或多个高速缓存线的空间。所述集合可保持的高速缓存线的数量被称作其关联性。通常,高速缓存中的所有集合的关联性是相同的。此类高速缓存常常被称作集合相联高速缓存。关联性还可在集合之间变化。集合中的可保持高速缓存线的每一个空间被称作路径。为了确定存储于每个集合中的每个高速缓存线的身份,高速缓存中的高速缓存线各自具有与其相关联的一些识别符。此类识别符的一个常见实例是地址标记。在查找高速缓存中的特定高速缓存线时,其地址可用于确定所述特定高速缓存线可能驻留的高速缓存的集合。将对应集合的高速缓存线的地址标记与用于识别高速缓存线的地址的标记部分(参见例如图3所描绘及下文所描述的标记(tag)及atag),以确定所需高速缓存线是否驻留在高速缓存中,且若如此,则确定其所驻留的途径,即,其驻留在可保持高速缓存线的集合中的哪个空间中。通常,每一高速缓存具有内置策略以确定哪一高速缓存线保持在集合中且将收回哪一高速缓存线(还被称作替换),以使新高速缓存线的空间进入集合中,被称作其替换策略。所替换的高速缓存线被称为牺牲或替换高速缓存。与高速缓存存储器结合使用的常用替换策略包含但不限于:最近最少使用(least-recentlyused;lru)策略、伪-lru策略及随机替换策略。所谓的包含性高速缓存层次要求存在于一个高速缓存级别中的数据块(例如高速缓存线)的副本(例如l1高速缓存中的数据块)也存在于较高级高速缓存级别中(此处,较高是指具有比1大的编号的高速缓存级别),例如存在于2级(l2)及3级(l3)高速缓存中。排它性的高速缓存层次仅具有存在于整个高速缓存层次的数据块(例如高速缓存线)的一个副本,而非包含性层级可具有两种策略的混合。在排它性及非包含性高速缓存层次中,常见的是,在从给定高速缓存级别收回后,高速缓存线安设在下一较高高速缓存级别中。出于对关于高速缓存及高速缓存线的这种背景的考虑,此论述现继续进行以说明一种用于识别高速缓存层次(如同图1及图2中所绘示的高速缓存层次)内的特定高速缓存位置的常规技术。图3绘示含有cpu301、dtlb303、l1高速缓存307及l2高速缓存311的计算机系统节点的组织的实例。cpu301产生含有虚拟地址302(vaddr)的存储器请求,其用于在dtlb303中执行相联查找。在此实例中,虚拟地址302分成三个部分:p_offset(页面偏移,例如由低级位组成)、tag及索引(index)。虚拟地址302的index部分用于识别可存储地址转译的dtlb303内的集合。此实例中所使用的所说明dtlb303具有双途径相联组织,其示出所识别集合中的两个条目。每一条目由地址标记(addresstag;atag)304及物理页框(physicalpageframe;ppf)305组成。将虚拟地址302的标记部分与所识别集合中的每一条目的atag304相比较。逻辑318确定是否存在对于任何条目的匹配,并且若如此,则控制多路复用器(mux)306选择对应ppf305。物理地址paddr316通过将由mux306所选择的ppf305与虚拟地址302的p_offset部分串接组成。替代地,如果所识别集合中的条目无一者与虚拟地址302的tag部分匹配,那么执行tlb填充操作并使需要的转译条目进入dtlb303中。paddr316用于在l1高速缓存307中执行查找。更具体地说,paddr316的index部分用于识别可存储含有所请求数据的高速缓存线的集合。(应注意,此l1index可含有与dtlbindex不同的位)。所描绘的l1高速缓存307具有双途径相联组织,其具有所识别集合中的两个条目。每一条目由地址标记(atag)308及对应高速缓存线的数据309组成。将paddr316的tag部分与所识别集合的每一条目的atag相比较。逻辑319确定是否存在对于任何条目的匹配,并且控制mux310选择对应数据。如果没有条目匹配(由l1未命中317描绘),那么需要在l2高速缓存311中查找。虽然将paddr316划分成用于l2高速缓存查找的index部分及tag部分可能不同于为l1高速缓存查找所进行的划分,但用于l2高速缓存查找的剩余步骤通常类似于针对l1高速缓存中的查找所执行的步骤。如果确定l2高速缓存中的未命中,那么可能需要在较高级高速缓存中的新查找或对存储器的存取。可注意,如果l1高速缓存所使用的paddr316的index部分完全由p_offset位组成,那么可在来自mux306的ppf信息可用之前开始对l1高速缓存307的存取。这常被称作虚拟索引物理标记高速缓存(virtuallyindexed,physicallytagged;vipt)。本领域的技术人员将了解,若干“节点”(其各自具有与图3中所描绘的存储器层次类似的存储器层次)可连接在一起以形成相干多处理器系统。多处理器的另一实例绘示于图1中,其中每一cpu具有其自有的专用l1高速缓存。这进一步使定位所请求数据的驻留位置的任务变复杂,是因为其不再足以一直搜索下一较高高速缓存级别中的数据。需要用于搜索其它节点的高速缓存以及用于保持存储于不同节点中的数据的多个副本相干的机制。为概述与图3相关联的论述,所属领域的技术人员应了解,高速缓存层次的当代实施方案可能需要可在确定所请求高速缓存线的位置之前在tlb中以及在不同高速缓存级别下执行相联查找。此外,每一转译条目及经高速缓存的高速缓存线需要配上地址标记,且多个这些标记需要在这些级别中的每一级别下与地址的一部分相比较。大体上,这种实施方案在用于每一相联查找的动态能量的方面付出巨大代价。其还需要在静态能量及存储器容量方面的实质开销,以存储执行比较所需要的额外标记信息。此外,含有若干cpu或若干节点的多处理器(其各自具有自有的专用高速缓存层次)需要用于定位驻留在专用高速缓存中的数据以及保持专用高速缓存中的同一日期的复制副本相干的昂贵相干活动的需要的额外昂贵搜索机制。因此,将期望提供避免与对数据的高速缓存查找相关联的前述问题及缺点的系统和方法。技术实现要素:用于基于地点信息实施相干存储器的系统和方法根据实施例,数据单元存储于多处理器系统的节点中的专用高速缓存中,每一节点含有至少一个处理器(cpu)、节点专用的至少一个高速缓存以及节点专用的至少一个高速缓存位置缓冲器(clb)。在每一clb中存储位置信息值,每一位置信息值指示与相应数据单元相关联的位置,其中存储于给定clb中的每一位置信息值指示所述位置是在与给定clb设置于同一节点中的专用高速缓存内的位置,是在其它节点中的一个节点中的位置,或是在主存储器中的位置。使用高速缓存相干性协议维持数据单元的值的相干性。通过高速缓存相干性协议根据位置信息值的相应数据单元的移动来更新存储在clb中的位置信息值。根据实施例,下文涵盖并描述用于实施上述方法的系统。用于实施促进附近全局高速缓存的相干存储器的系统和方法根据实施例,一种方法将数据单元存储在多处理器系统的节点中的专用高速缓存中及全局高速缓存中以及存储器中,其中每一节点含有至少一个处理器(cpu)、节点专用的至少一个高速缓存。使用高速缓存相干性协议维持存储在专用高速缓存及全局高速缓存中的数据单元的值的相干性,所述高速缓存相干性协议在存储数据单元的地点信息的目录中执行查找。位置信息将数据单元所驻留的位置识别为以下中的一个:节点、全局高速缓存或存储器。根据实施例,下文涵盖并描述用于实施上述方法的系统。用于通过封堵相干性实施相干存储器的系统和方法根据实施例,数据单元存储在多处理器系统的节点中的专用高速缓存中及全局高速缓存中以及存储器中,其中每一节点含有至少一个处理器(cpu)、节点专用的至少一个高速缓存。节点经由网络连接。通过在网络上发送相干消息的分布式高速缓存相干性协议维持存储在高速缓存中的数据单元的值的相干性。阻止一些相干性消息在网络上发送。如果其它相干性消息是用于与相干性消息相同的地址区域,那么所发送的相干性信息触发封堵功能以封堵其它相干性消息。根据实施例,下文涵盖并描述用于实施上述方法的系统。附图说明并入到说明书中并且构成说明书的一部分的附图说明了一个或多个实施例,并且连同描述一起阐释这些实施例。在图中:图1是多处理器系统的框图。图2是单处理器系统高速缓存层次的框图。图3说明由集合相联高速缓存及集合相联数据转译后备缓冲器组成的两级高速缓存层次的常规实施方案。图4是说明包含两级高速缓存层次及两级clb层次的实施例的框图,其中以虚拟方式存取第一级且以物理方式存取第二级。图5是说明包含连接到两级高速缓存层次和两级clb层次的两个cpu的实施例的框图。图6是说明根据实施例的具有单一整体式末级高速缓存的一般化无标记高速缓存层次的框图。图7是说明根据实施例的具有末级高速缓存的许多切片的一般化无标记高速缓存层次的框图。图8是说明方法实施例的流程图。图9至图13描绘根据实施例的一起实施用于数据相干性和clb相干性的集成相干性方案的局部和全局活性的顺序。图14至图15是说明方法实施例的流程图。附图标号说明101、204、301、401、501、511、610、696、710、796:处理器;102、200、206、307、430、504、514、620、640、692、694、720、740、792、794:1级高速缓存;103、207、311、440、523:2级高速缓存;104:磁盘;105、208、680、780:存储器;200:指令高速缓存;201:指令转译后备缓冲器;202、301:处理器核心;205、303:数据转译后备缓冲器;206:数据高速缓存;208:大容量存储器;302:虚拟地址;304、308、312、411、421、611、631、661、711、731、761:地址标记;305:物理页框;306、310、314:多路复用器;309、313:数据;316:物理地址;317:l1未命中;318、319、320:逻辑;402、417、418、502、512:地址;410、503、513、610、691:高速缓存位置缓冲器1;412、422、662、712、732、762:高速缓存位置表;413、425、613、663、713、733、763:区域信息;414:位置信息;415、416:多路复用器;420:高速缓存位置缓冲器2;423:高速缓存位置缓冲器1指针;432、442、506、672:后向指针;431、441:高速缓存线;315、450、505:数据;570、571:箭头;580、590、601、690、699、701、771、790、799:节点;612、632:高速缓存位置表格字段;621、641、671、721、7411、773、774:位置;650、750:片上网络;660、760:目录;670:全局末级高速缓存;630、691、693:高速缓存位置缓冲器;663:区域信息字段;710、791:高速缓存位置缓冲器-1;630、693、730、793:高速缓存位置缓冲器-x;745、772、779:末级高速缓存切片;774:数据单元;775、776、777:替换计数器;800、1400、1500:方法;802、804、806、808、901、902、903、904、1001、1002、1003、1004、1005、1006、1007、1008、1009、1010、1101、1102、1103、1104、1105、1106、1107、1108、1109、1110、1111、1112、1113、1201、1202、1203、1204、1205、1206、1207、1208、1209、1210、1301、1302、1303、1304、1305、1306、1307、1308、1309、1310、1311、1402、1404、1406、1502、1504、1506、1508:步骤。具体实施方式实施例的以下描述参考附图。不同图中的相同参考标号标识相同或类似的元件。以下详细描述并不限制本发明。实际上,本发明的范围由所附权利要求书界定。为简单起见,论述关于特定高速缓存层次的术语及结构以及用于在此类层次中执行查找的方法的一些以下实施例。然而,随后将论述的实施例不限于这些配置,但可延伸到如稍后论述的其它布置。说明书中各处提到“一个实施例”或“一实施例”意味着结合一实施例描述的特定特征、结构或特性包含在所揭示的主题的至少一个实施例中。因此,短语“在一个实施例中”或“在一实施例中”在说明书各处的出现并不一定需要指代相同实施例。另外,特定特征、结构或特性可以任何合适方式组合在一或多个实施例中。在以下描述中,大量细节提供对实施例的透彻理解。这些细节包含功能块及示范性高速缓存位置缓冲器clb以用于实施对传统高速缓存标记方案的高效替代。此外,虽然参考特定高速缓存及计算机架构描述了实施例的clb方案,但所述实施例适用于大范围存储器及系统架构。在其它情况下,并未详细描述众所周知的电路及结构,以免不必要地混淆实施例。根据本文所描述的各种实施例,除了其它以外,方法和系统提供明确存储位置信息(locationinformation;li)的高速缓存处理方案(cachehandlingscheme;chs)。li是用来高效地存取具有主存储器及一或多个处理器的计算机系统的多路高速缓存。chs追踪所谓高速缓存层次的内容,但由于本文所描述的一些特征的性质,存储器系统的拓扑未必需要是层次。通过高速缓存位置缓冲器(clb)或clb的部分层次执行追踪。高速缓存包含多个高速缓存线,其分成对应于途径的数量的多个片段。根据实施例,代替丢弃每次已知的可用位置信息,在层次中的级别之间及在节点之间移动高速缓存线,将位置信息存储(例如更新)在chs中并用于稍后的高速缓存存取。以相联途径组织clb。因此,每一clb条目包含地址标记字段及与所述地址标记字段相关联的多个li,但根据其它实施例,其它用于存储位置信息的技术是可能的。随后,存储于clb中的位置信息可用于快速存取所请求数据的位置而不需要另外的相联查找。更确切地说,clb提供可自其确定适宜高速缓存身份以及高速缓存内的适宜位置的位置信息li而不需要存取高速缓存的任何地址标记。li还可将远程节点识别为相联数据的位置。因此,使用根据这些实施例的技术,可更快速地在高速缓存层次中并以消耗较少能量的方式找到所请求数据。所描述技术还使得更灵活及较少层次的高速缓存拓扑能够高效地实施。对于由具有相同关联性的集合相联高速缓存组成的高速缓存层次来说,每一li中的位的数量取决于途径的数量、不同高速缓存的数量以及由clb覆盖的节点的数量。可保留一些li值以存储具有某些硬译码含义的某些图案。举例来说,可为存储器图案保留一个li值,意味着数据不在由chs覆盖的存储器层次的一部分中。在一个实施方案中,假设节点的数量小于所识别的高速缓存的数量乘以途径的数量,li位的数量等于途径的数量加上由clb覆盖的高速缓存的数量加1的对数底2(即log2(途径+级别+1))。如果不同高速缓存级别的途径的数量变化或如果使用除集合相联高速缓存以外的高速缓存,那么所属领域的技术人员应了解,其它li表示是可能的。可例如如下根据实施例大体执行通过chs经由clb存取高速缓存。在接收到目标高速缓存线的地址后,clb尝试匹配一个高速缓存位置条目(cachelocationentry;cle)的地址字段,所述高速缓存位置条目在其中存储地址的tag部分。如果存在匹配,那么使用地址的li偏移部分检索clb条目的li。chs使用li值及地址的索引部分直接索引到高速缓存的单一高速缓存线中。因此,高速缓存并不需要存储任何地址标记信息。因此,根据实施例,系统(如图1及图2中所说明的系统)还可包含如本文所描述的高速缓存处理方案(chs)。所述方案包含高速缓存位置缓冲器(clb)或跟踪存储于高速缓存层次中的数据单元的位置的clb的层次。每当数据单元在高速缓存层次中移动时,其新位置记录在clb中。根据此类实施例的clb可实施为相联组织,其存储多个高速缓存位置条目(cle)。每一cle含有用于相联查找的地址标记及一些有效载荷(例如,存储多个位置信息(li)的高速缓存位置表(cachelocationtable;clt))。实际上,clb自身可被视为存储位置信息的高速缓存。为说明各种实施例的这些及其它特征,现将参考图4到图15描述此类实施例。为清楚起见,所属领域的技术人员应了解,这些图说明实施例的逻辑实施方案而非实际物理实施方案。因此,所属领域的技术人员应理解,这些图绘示实施方案的逻辑表示且物理实施方案在其实施细节方面可实质上不同。在一个实施例中,所追踪的数据单元对应于高速缓存线,且以集合相联方式组织存储所述数据单元的高速缓存。在一个实施例中,对应于匹配cle的所请求高速缓存线的位置信息(li)可指示所请求高速缓存线驻留在哪一高速缓存中。这将引起实施例在适当高速缓存处执行直接高速缓存查找。举例来说,在图4中所绘示的系统(其可为多处理器系统中的节点)中,位置信息可区分l1高速缓存与l2高速缓存。其还可能够区分存在于此图中未绘示的多处理器系统剩余部分中的其它高速缓存。图4绘示无标记节点,其可连接到具有集合相联高速缓存的两级高速缓存层次及cpu(其可含有一或多个传统高速缓存,此处描绘为0级(l0))的多处理器系统中的其它节点,其中cpu401产生地址(addr)402。图4还绘示集合相联clb的两级clb层次,其中利用addr索引clb1410及clb2420。clb1中的每一条目由至少一个地址标记(at)411、高速缓存位置表(clt)412组成。其可存储额外信息,如区域信息(regioninformation;ri)413。clt存储对应区域(还被称作微页面)的高速缓存线的位置信息(li)。图4绘示每个区域四个li作为一实例。发明人的经验研究示出每个区域8到16个li(即每个区域8到16个数据单元(高速缓存线))是有成本效益的及高效的。位置信息编码其中可在多处理器系统内找到对应高速缓存线的位置。位置信息可例如含有其中可找到数据单元的高速缓存的身份。位置信息还可含有在可在其中找到数据单元的所述高速缓存内的位置。替代地,位置信息可含有可在其中找到数据单元的节点的身份或含有提供关于其位置的信息的一些符号,例如符号“mem”指示可在存储器中找到数据单元。在一个实施例中,符号“不知道”指示对应数据单元的位置并未记录在对应于区域的clt中。mux416选择其中at411匹配addr402的tag部分的clt且mux415基于addr402的l-offset(li偏移)部分选择对应于所请求高速缓存线的li414。如果存储于所选择li中的高速缓存身份对应于l2高速缓存440,那么用于存取l2高速缓存440中的所请求数据单元的地址417使用地址402的index部分及位置信息414的一部分形成。在集合相联l2高速缓存440的实例中,所述部分含有对应于其中存储所请求数据单元的相联途径的信息。如果存储于所选择li中的高速缓存身份对应于l1高速缓存430,那么用于存取l1高速缓存430中的所请求数据单元的地址418形成于类似途径中。图4绘示其中l1高速缓存430及l2高速缓存440中的每一条目分别具有与其高速缓存线(data)431及高速缓存线(data)441分别相关联的后向指针(bp)432及后向指针(bp)442的实施例。在此实例中,bp指针指向其在clb2420中的相应相关联cle。clb2420中的每一cle含有地址标记(at)421、clt422以及clb1指针(cip)423。如果clb2条目具有驻留在clb1410中的对应clt,其cip将指向所述条目。在所述情况下,clb1410将含有此区域的最新信息。在所述情况下,clb1中的cle被称为有源clb条目,而clb2420中的区域的clb条目含有无源条目。在一个实施例中,如果clb1410含有区域的有源条目,那么要求clb2420含有区域的无源条目。在一个实施例中,当未在clb1410中找到匹配的cle时,在clb2420中查找对应cle并复制到clb1,而clb1中的旧条目复制到clb2420,其被称为溢出及填充或简称为溢出/填充(图4中的溢出及填充)。例如,在传统包含性高速缓存将数据单元收回到下一级别时另外执行溢出,以为新数据单元腾出空间,其可自下一高速缓存级别带来(填充)。将在不同clb级别之间执行类似溢出/填充活动,其中clb条目在clb级别之间移动,是因为clb级别形成包含性层次。在一个实施例中,目录dir处于clb层次及具有最高级clb的溢出/填充的根部。有可能在溢出/填充活动的同时起始对所请求数据单元的存取。在一个实施例中,保持多级clb实施方案的clb的内容与其管理的多级高速缓存系统的数据单元的位置一致。在高速缓存层次中移动的数据单元(包含但不限于由对于来自cpu的数据单元的请求、收回数据单元、预取活动及相干活动引起的移动)引起在一个或多个clb中对其对应位置信息的更新。举例来说,在图4中,从高速缓存440中收回数据单元441可涉及以下步骤:跟随其相关联bp442指针以找到其对应cle(其在此实例中处于clb2420中)及更新其对应位置信息以指向数据单元的新位置(例如存储mem符号)。并且,如果对应clb2的cle的cip指针有效,那么跟随cip找到其在clb1410中的对应cle及更新其与高速缓存线相关联的位置信息。在一个实施例中,如果存在有效cip指针,那么不更新clb2中的条目。在一个实施例中,仅更新有源clt。如将从前文了解,使用根据这些实施例的无标记高速缓存系统(即,存储在高速缓存中的数据单元不具有与其相关联的地址标记的高速缓存系统)将产生多个不同类型的事务,其将在由cpu401请求位于不同存储装置中的各种高速存取线时出现。图4中所描绘的节点可为由若干此类高速缓存节点构成的较大多处理器系统的子系统(或节点)。保持高速缓存的数据在许多节点中相干需要(例如)实施侦听或基于目录的相干性的高速缓存相干性协议。相干性协议将发送相干性请求到图4中描绘的节点(外部请求)。这些请求通常将转到clb2420,其可确定此高速缓存系统不具有所请求的高速缓存线(clb2未命中或clb2命中到具有无源cip及保持值存储器图案的所请求高速缓存线的位置信息的条目)。若如此,则不需要关于数据高速缓存l1及数据高速缓存l2的另外行为(被称为相干滤波),虽然如此,但有源clt中的对应li可能需要更新以追踪与数据单元相关联的新位置。否则,clb2查找可提供所请求位置信息(clb2命中及保持存储高速缓存线的位置的所请求高速缓存线的位置信息),或其可确定clb1410存储相关联位置信息(clb2命中及有效cip)。在后一种情况下,需要在clb1410中查找以确定所请求高速缓存线的位置或确定高速缓存线不驻留在此高速缓存子系统中。(clb1中的对应位置信息含有存储器图案)。取决于相干性请求(例如失效请求、读取请求或排它性读取请求)的性质,相干性协议将对所请求数据单元执行一些操作且可能改变其状态。有源clt中的对应li还可能需要更新以追踪与数据单元相关联的新位置。即使图4中所绘示的节点由两个高速缓存级别组成,但本领域的技术人员将理解,节点可使用其它数量的级别来装配且可含有超过一个cpu。此外,节点中的高速缓存级别的数量及clb级别的数量不需要是相同的。实施例还可应用于具有若干共享clb所管理的高速缓存的cpu的系统上。举例来说,图5绘示根据实施例的从两个cpu节点(cpu节点580及cpu节点590)构建的系统,各节点在其自有的具有一个clb1(clb1503及clb1513)及专用高速缓存l1高速缓存(l1高速缓存504及l1高速缓存514)的一级高速缓存层次内。所述系统还含有全局共享l2高速缓存523(有时被称作末级高速缓存llc),其在两个cpu501、511之间共享。clb1(513或503)中的查找基于由其相应cpu(501、511)产生的地址(例如使用类似于clb1410的技术)来选择单一li。如由clb1a503及clb1b513中的两个示出clt条目所起始的三个箭头指示,所选择li可识别所述位置是在对应l1高速缓存(分别为l1高速缓存504及l1高速缓存514),在l2高速缓存523中或在另一节点(分别由570及571示出)中。在此实例中,clb1a503在共享l2523中将其存取的数据识别为505,而clb1a503在其l1514中将其存取的数据识别为505(由实线箭头绘示)。图6绘示无标记多处理器存储器系统的概括图片。此实例由范围从节点-1601到节点-n699的n个节点组成。每一节点具有x个级别的clb及y个级别的专用高速缓存(即,节点专用的高速缓存)。所述节点通过片上网络(networkonchip;noc)650电路彼此连接在一起。noc650还将节点连接到目录(dir)660、全局末级高速缓存(lastlevelcache;llc)670及存储器680。dir660以clb类似方式组织并具有由至少地址标记(at)661及高速缓存位置表(clt)662组成的条目。条目还可含有额外信息,如区域信息(ri)663,其在下文得以更详细描述。节点中的最高级clb(clb-x630、693)溢出/填充到dir/从dir溢出/填充。dir也在保持高速缓存及clb的内容相干及一致的相干性协议中发挥核心重要。可查看clb及dir以形成一个包含性“高速缓存层次”,其利用关于数据高速缓存层次的内容的信息对元数据进行高速缓存。含有l-1到l-y及llc的数据层次可被视为单独高速缓存层次而不包含强加于其的属性。其可例如是意味着非包含性的。在图6中所绘示的实施例中,每一节点具有一个cpu,可能含有零个、一个或许多个传统的基于标记的高速缓存,其描绘为lo-d及lo-1。无法由传统l0高速缓存中的任一个满足的存储器请求将可能使用类似于图4中的clb-1410的方案产生在节点的clb-1(例如clb-1610)中的查找以搜索对应clb条目clt。如果在clb-1中找到对应条目,那么对应于所请求数据单元的位置信息(li)可位于其clt字段(612)中。li识别可找到所请求数据单元的位置。在一个实施例中,驻留在节点-1601中的clb610中的li可将节点的自有高速缓存(高速缓存l-1620到高速缓存l-y640)中的任一个、llc(llc670)、存储器680或其它节点(节点-2690到节点-n699)中的任一个识别为其追踪的数据单元的位置。在一个实施例中,li还可识别数据单元在所识别高速缓存内的位置。在一个实施例中,li可指示数据单元是否驻留在连接到节点的cpu610的传统高速缓存lo-d或lo-1中的任一个中。如果将高速缓存位置(或存储器)识别为可找到数据的位置,那么可以通过在不查阅目录(dir)660的情况下直接读取所述高速缓存来满足请求。如果将节点识别为可找到所请求数据的位置,那么将请求发送到所述节点的clb-x且所满足的请求类似于针对图4所论述的外部请求。但并不需要查阅目录来找到数据。这不同于大部分基于传统目录的相干方案,其中查阅及更新目录以获得超出节点范围的存取。即使图6绘示每个节点中的一个cpu,但本领域的技术人员将认识到,节点可含有任何数量(包含零个)cpu、gpu、加速器或可存取存储器的其它装置(如i/o装置)。此外,clb及高速缓存的配置及大小在节点之间可有极大差异。在一个实施例中,在包含性clb/dir层次中存在严格的逐级层次搜索。如果未在级别clb-i处找到位置信息,那么在下一级clb-(i+1)处执行查找。如果无法在节点的最高级(clb-x)中找到位置信息,那么在dir执行查找。如果在clb级别或在dir中找到位置信息,那么可将读取请求发送到由其在所述级别处的对应位置信息所识别的数据位置,且在clb-1中创建对应于所请求区域的新cle条目。在一个实施例中,clb/dir层次是包含性的。这暗示如果存在于级别clb-l处可用的clb条目,那么必须存在安设于级别clb-(l+1)处的条目。最接近于cpu的clb条目是有源的。在一个实施例中,可能会在高速缓存级别k(以及较低高速缓存,即在图6中更高)与某一clb级别c(以及所有较高clb级别,即在图6中更低)之间执行包含。作为一实例,为了使数据在高速缓存l-1620到高速缓存l-y640中的任一个中可用,在clb-x630中必须有对应条目。如果收回clb-x630中的所述条目,那么应从高速缓存l-1620到高速缓存l-y640收回对应区域的所有数据。这被称作强制收回。此外,还需要收回同一节点直到clb-1610的所有clb条目。应注意,在节点内的高速缓存级别(例如高速缓存l-1620到l-y640)之间或在llc660与节点中的高速缓存(例如高速缓存l-1620到l-y640)之间不存在包含要求。举例来说,对应于特定地址的有效数据可存在于l1高速缓存620中,但既不存在于高速缓存l-y640中,也不存在于llc高速缓存670中。其开放以用于高速缓存旁通优化,其中(例如)流式数据仅需要安设在l1(实际上,若其存在,则仅安设在l0)且不安设在其它级别下。然而,对应的clb条目(其通常比其对应数据区域小50倍)需要安设在所有级别下。目录(dir)660含有clb类信息:地址标记(at)661、高速缓存位置表(clt)及区域信息(ri)。虽然这些字段的名称与clb(例如clb-x630)的字段相同,但这些字段的内容可不同于对应的clb字段。在一个实施例中,dir660的ri字段663含有n个所谓的存在位(presencebit;pb),其指示哪些节点在追踪所述区域,其中n对应于系统中的节点的数量。如果设置了pb中的位k,那么其暗示在节点k的clb-x中存在对应条目。这进一步暗示在节点k的高速缓存级别l1到高速缓存级别l-y中的任一个中可能存在经过高速缓存的数据,并且还暗示在节点k中的clb-1中可能存在对应条目,其将使得节点k中的cpu能够存取对应区域的任何高速缓存线。虽然所述描述是指pb信息的n位实施方案,但本领域的技术人员将认识到,用于目录实施方案的许多可扩展技术(包含但不限于粗粒局限指针及链表)可用于实施类似功能性。pb位可用于对区域进行分类。如果恰好设置了目录660中的对应条目的一个pb位,那么区域被分类为专用区域(privateregion;(pr))。经验研究显示,平均约80%的所有存取区域跨越许多种所研究基准是pr区域。区域分类pr暗示区域的数据可仅存在于其对应pb位经过设置的一个节点中,并且还保证此时没有其它节点可及时从区域存取数据。可以通知其pb位是dir中仅经过设置的位的节点601对应区域是专用区域(pr)且可能将其对应区域信息(ri)中的区域分类中记录在其clb中(例如在clb-1610到clb-×630中)。可在许多方面高效存取pr区域。举例来说,节点不需要全局相干性(即,不需要存取dir660)来获取对于存在于节点中的数据单元的写入权限(节点目前仅具有读取权限(用以将数据单元从状态s升级到状态e)),是因为仅一个节点可对其数据的副本进行高速缓存且没有其它节点能够存取区域的任何数据单元。并且,可高效实施pr区域的数据单元的移动,因为数据可在整个高速缓存层次上下移动(例如,执行从l-x到llc的收回或将数据从llc移动到l-1)而不需要告知在节点外的任何结构。所述移动还需要记录在节点本地的clb(clb610到clb630)中。这暗示存储于节点的clb(clb610到clb630)中的pr区域的clt信息可与存储于dir660中的区域的clt信息不同(例如,为最新的)。当第二节点(例如节点690)存取pr区域(经验研究显示其是相对罕见事件)时,所述第二节点将未命中其所有clb691到clb693,并将向dir660发送请求以获得存取数据所需的适当位置信息li并且还允许在clb691到clb693中创建其自有的clb条目。由于此请求是用于pr区域,所以660可能不具有最新信息,其需要从节点601获得最新位置是信息并确保节点601的clb不再将区域标记为pr,更新其用于所述区域的自有的clt信息,并设置对应于节点-2690的pb位,并且将用于区域的适当clb信息发送到节点690。节点-2690现可创建其与所述区域相关联的自有本地clb条目。在一个实施例中,在将最新位置信息发送到dir660之前,节点601必须完成其对所述区域的所有进行中的导入到数据存储器请求。如果另一节点(例如节点-n699)存取区域,其将还会未命中其所有clb且还将向dir660发送请求,所述请求现具有关于所述区域的最新信息,并可用适当信息对节点-n699作出回复并且还将会针对请求节点(即节点699)设置区域的pb位。超过一个pb位经过设置的区域被分类为共享区域(sharedregion;sr)。这暗示着超过一个节点有clb在追踪此区域的位置信息。这还暗示,对应pb位经过设置的节点可将区域的数据单元存储在其高速缓存(例如高速缓存620到高速缓存640)中的任一个中。如果所述区域被分类为sr,那么来自cpu(例如cpu610)的存取数据单元的请求可能需要起始全局相干性事务,所述请求无法在节点内在本地得到满足(例如,通过高速缓存l-1620到高速缓存l-y640)。在一个实施例中,到sr或pr区域的全局相干性读取事务(无法从本地高速缓存(例如,高速缓存l-1620到高速缓存l-y640))满足的读取)可利用从其本地clb(例如,clb-1610到clb-x630)检索的位置信息来直接存取数据而不会涉及dir660或不会与除了可由位置信息识别的节点以外的任何节点通信。这在本文中被称作导入到主控装置存取。经验研究显示出到sr区域的75%的所有相干事务是导入到主控装置的读取事务存取。因此,如果由cpu起始的20%的全局事务是到sr页面且75%的全局事务不需要存取dir,那么在使用根据这些实施例的高速缓存结构及技术时,95%的全局相干事务不需要存取dir,而所有全局相干事务需要存取传统的基于目录的协议的dir。由于sr区域有若干节点在追踪其数据单元的位置,所以其数据单元移动必须反映在追踪所述区域的所有节点(即,具有用于所述区域的有源clb条目的那些节点)中,且所移动的数据单元的位置信息在所述节点中更新。在一个实施例中,追踪数据单元的不同节点的clb的位置信息应以相干方式更新,使得clb约定数据驻留位置(被称作其主控装置位置)。在一个实施例中,还保证基于从clb检索的位置信息存取的数据单元位置含有校正数据(被称作确定性)。此类数据单元移动的一个常见原因是全局相干写入请求,即,目前没有对数据单元的写入权限的请求节点通过全局相干请求(例如失效请求或排它式读取请求)来请求写入权限。在请求完成后,数据单元将仅驻留在请求节点中。在一个实施例中,通过请求节点(例如节点601)将全局相干写入请求发送到目录660,其定位对应的目录条目,检索所述区域的对应pb位并将请求转发到对应pb位经过设置的所有节点(除请求节点以外),所述节点被称作从节点(例如节点690及节点699)。当从节点确保起源于从节点的对于数据单元的任何进一步请求将导入到请求节点时,所述从节点发送应答(ack)消息。这可能(例如)通过在其clb中改变数据单元的位置信息以指向请求节点(601)来实现,所述请求节点将变为新的主节点。ack消息可发送到dir660或直接发送到请求节点601,所述dir660聚集所述ack消息并在所有ack已被接收后向请求节点发送ack。一旦请求节点了解到已接收所有ack,则所述请求节点获取对于高速缓存线的排它性写入权限并完成请求。在一个实施例中,在完成请求后,将完成信息发送到dir660。数据移动的另一常见原因是收回(也被称为替换)。在节点本地的收回(例如,从l-1620到l-y640的收回)是在本地处理,通过其本地clb条目追踪且在节点外是不可见的。然而,主数据单元的全局收回(例如,从l-y640中的位置641到llc670中的新位置671)必须由所有追踪所述区域的节点(即,具有用于所述区域的clb条目的所有节点)反映。在一个实施例中,通过首先复制存储于其旧位置(641)到新位置(671)中的数据单元的值同时保持存储在旧位置(641)中的数据有效来实施全局收回。随后,将具有关于新位置(671)的信息的全局相干收回请求从请求节点(例如节点601)发送到dir(660),所述dir将请求转发到从节点(例如,节点690及节点699)。一旦从节点已将其对应位置信息更新为新位置(671),那么其发送ack消息。一旦请求节点了解到已发送所有ack,则所述请求节点获取对于数据单元的收回权限并可回收旧位置,且所述请求完成。在一个实施例中,在完成请求后,将完成信息发送到dir660。在一个实施例中,从节点不会发送ack消息,直到其待处理的对于所请求高速缓存线的请求(例如,所有导入到主控装置请求)中的一些已完成为止。在一个实施例中,目录660实施封堵机制,其确保对于每一数据单元可存在至多一个特定类型的待处理全局请求。此类请求类型的实例可为全局相干写入请求及全局相干收回请求。对于高速缓存线的封堵在请求完成后结束,或如另外由相干协议所指定。封堵机制可为准确的,例如通过在目录中每一数据单元一个锁实施,或可为过近似,其中地址散列到有限锁池且数据单元的封堵将封堵对于所有其它数据单元的存取散列到同一锁。在一个实施例中,利用区域粒度而非数据单元粒度来进行封堵,且一些clb/目录溢出/填充请求还需要封堵,直到其更新完成为止。这保证没有全局相干写入请求正在进行中,同时节点及目录溢出/填充clb信息。另一有用区域分类是在dir660中的没有与所述区域相关联的pb位经过设置的区域。这暗示,区域数据单元无法存在于节点的高速缓存l-1到高速缓存l-y中的任一个中,且没有一个节点目前可存取其数据单元。这被称作未追踪区域(untrackedregion;ur)。ur区域的数据仍可在llc中高速缓存。在一个实施例中,可从llc670收回ur区域的数据单元而无需任何全局相干请求。dir660中的没有对应条目的区域被分类为存储器区域(memoryregion;mr)。mr区域的数据单元既无法在节点中也无法在llc中高速缓存。替换来自dir660的clt条目暗示所述区域的所有数据单元应从llc强力收回。在一个实施例中,图6的高速缓存系统是无标记高速缓存系统,即,其中存储在高速缓存(例如,节点的高速缓存l-1到高速缓存l-y及llc)中的数据单元没有与其相关联的地址标记的高速缓存系统。相反,具有与其相关联的地址标记的位置信息将识别存储数据单元的位置。但图6中所包含的传统高速缓存(lo-1及lo-d)仍可具有与其高速缓存数据单元相关联的地址标记。图7与图6不同,是因为llc已切成llc切片(llc-1771、llc-2772以及llc-n779)并放置在接近节点的片上网络(noc)750的另一侧上。每一切片分别配置有替换计数器(replacementcounter;rc)775、替换计数器776及替换计数器777。这些计数器对每一llc切片中的高速缓存替换的数量进行计数。应注意,图7的实施例将llc切片放置在每一节点(由虚线框表示)之外。即使每一llc切片(例如切片771)靠近每一节点且可利用极短时延从节点的cpu(710)存取,其仍可被看作一件大型全局llc。从clb-x(例如clb-x730)收回区域条目不必要求驻留在接近节点(例如节点771)的llc切片中的对应区域数据强力收回。此外,节点(例如节点701)可将位置信息存储在其clb(例如clb710)中,所述clb直接指向靠近远程节点的远程llc切片中的位置(例如,切片772中的位置),且所述节点可存取所述数据而不需要间接通过dir760或者所述节点(790)的任一clb。如今可存在llc实施方案,其是对图7的联想(仅从某种意义来说,llc在物理上划分成存储体,其物理放置为接近节点且并非参考图7的其它元件放置)。然而,如今的解决方案(例如来自因特尔的服务器芯片)将数据单元根据其地址放置在llc存储体中,这导致假设有四个节点,命中llc存储体的25%存取将命中接近节点的存储体。根据实施例(例如基于位置信息指针)描述的高速缓存存取技术允许对数据单元的放置有完全灵活性且并不取决于数据单元的地址,其可潜在地增加llc命中的本地部分。一个选项将为复制在所有存取所述数据单元的llc切片中的所有共享数据。然而,复制所有llc切片中的所有共享数据将消耗llc容量。如先前所陈述,通常共享20%区域。假设所有共享区域将需要复制在所有节点中,四节点系统将用完其存储所复制llc数据的80%的llc容量。这是明确次佳的,促进对更智能llc分配/复制决策的需要。当首先将数据单元分配给llc切片时,始终将其放在靠近存取所述数据单元的cpu的llc切片中可表现为有益的。然而,由于在不同cpu中运行的线程可具有不同llc容量需求,将数据单元放置在远程llc切片中且因此“窃取”其本地llc容量的部分有时可是有益的。在一个实施例中,基于llc切片高速缓存压力作出分配决策。每一llc切片具有替换计数器(rc775、776、777),其登记发生在切片中的替换的数量。在一个实施例中,定期监测这些计数器以确定每一llc切片的高速缓存压力,其中较高计数指示较高压力。在为数据单元分配llc空间时,如果其高速缓存压力最低,则始终在本地llc切片中分配空间。否则,将对当前具有最低压力的远程llc切片进行其分配的可配置部分,而在本地llc切片中进行其余分配。在一个实施例中,在远程llc切片中分配空间将仅仅会在某些情况下(例如,在本地llc切片的高速缓存压力高于某一阈值的情况下)发生。在传统高速缓存拓扑中,在单个末级高速缓存(如图1的l2103或图6的llc670)由若干节点共享的情况下,通常存在驻留在llc(被称作共享高速缓存)中的每一数据单元的至多一个副本,而节点专用的高速缓存(还被称作专用高速缓存)(如图1的l1高速缓存102)可各自存储同一数据单元的复制副本。图7的llc切片具有以下选项:将数据单元的单个副本存储在一个llc切片中且使用相同位置信息存取所有节点;或将数据单元的若干所谓的复制副本存储在若干llc切片中。举例来说,数据单元774可以仅为数据单元的llc副本,且clb-1710中的clt712及clb-1791中的clt两者具有其指向位置774的相关联位置信息。这在本文中被称作共享llc数据。在已作出复制数据的决策后,可将数据副本放在位置773且将clt712中的相关联位置信息变为指向位置773。存储于773中的数据单元被称作本地llc数据单元。存储在位置773中的本地数据仅可通过节点1701本地的clb中的查找间接存取,而存储在位置774中的全局数据仍可由(例如)节点n799通过使用指向位置774的位置信息直接存取。在一个实施例中,通过指令未命中(例如指令高速缓存lo-1中的未命中)对远程llc切片的存取可导致数据单元被复制并且还驻留在靠近请求cpu的节点的llc切片中。这由对于指令的高速缓存未命中通常导致相比数据未命中的较大性能下降的事实促发。在一个实施例中,存取远程llc切片中的所谓“热”数据单元可导致数据单元被复制并且还驻留在靠近请求cpu的节点的llc切片中。热数据单元为频繁存取的数据单元。热数据可例如通过测量从上次存取数据以来的持续时间来检测。这可例如通过提供与数据单元相关联或与位置信息相关联的“存取时间戳”来实施。热数据还可以通过高速缓存替换算法(例如lru算法或伪lru算法)检测,所述算法可检测最近是否存取数据单元。在一个实施例中,标示为集合中的最近使用(mru)的数据单元的所存取数据单元被分类为热数据单元并引起复制。发明人自身的经验研究显示出,智能分配及复制决策(如上文所论述的决策)可使平均80%的llc存取命中本地llc切片。在一个实施例中,存取远程llc切片可导致数据单元迁移到靠近请求cpu的节点的llc切片。可基于区域的类别作出迁移决策。举例来说,存取专用区域可导致数据单元迁移到靠近请求cpu的节点的llc切片。更具体地说,如果所存取区域被分类为专用区域(pr),那么指令存取或对热数据的存取可导致迁移。在一个实施例中,图7的高速缓存系统是无标记高速缓存系统,即,其中存储在高速缓存(例如,节点的高速缓存l-1到高速缓存l-y及llc)中的数据单元没有与其相关联的地址标记的高速缓存系统。相反,具有与其相关联的地址标记的位置信息将识别存储数据单元的位置。但图7中所包含的传统高速缓存(lo-1及lo-d)仍可具有与其高速缓存数据单元相关联的地址标记。图8说明将在下文详细描述的方法实施例以及其它方法实施例。通过参考实际存储器存取事务来更好地理解前述实施例的操作,所述实际存储器存取事务将发生在采用此类实施例的多处理器系统中。举例来说,图9到图13描述可由实施例用来维持数据高速缓存层次与图6中描绘的clb层次之间的某些相干性及确定性的序列。类似序列还可用来保持图7中描绘的多处理器系统的相干性及确定性。图9到图13绘示有编号步骤,包含在图6中所识别的四个不同元件之间的通信步骤,所述四个不同元件由在图9到图13的顶部处的块表示。具体地说,这些四个不同元件包含:1)请求者节点(例如节点601),其是例如通过源自节点内部的请求开始活动的节点,所述请求无法在所述节点内在本地得到满足;2)dir660,其充当用于存储在节点1到节点n中的clb信息的后备存储(溢出/填充)并且还参加全局相干活动以保持数据单元相干;3)数据单元的主位置,例如llc670中的位置671;以及4)共同表示“pb节点”(即,dir660中的其对应pb位经过设置并且对应于所请求数据单元的节点,而非请求节点)的元件,其还被称作从节点。通常,请求并非是从节点且并不被视为pb节点,即使其对应pb位经过设置。在这些实施例中将所采用的步骤描述为一个有编号的序列,即使本领域的技术人员将认识到,一些步骤可并行地执行且在所述步骤之间可能存在其它可能的次序。转向图9,此图描绘根据实施例的结合请求节点601中的clb命中(即,针对不存在于节点601中的数据单元在节点-1601中起始的读取请求)解析全局相干“读取未命中”所需的全局步骤及局部步骤。数据单元的主位置处于llc670内的位置671。此实例可适用于pr区域及sr区域两者。采用以下步骤:步骤901)节点601命中其clb中的一个,从li确定需要全局读取请求,并利用li信息形成将数据单元的主位置671作为目标的读取请求(readreq)。步骤902)readreq请求中提供的信息足以找到高速缓存(llc670)及数据单元在其内的驻留位置(671)。这导致数据响应(数据)发送回到节点-1601。步骤903)节点601寻找在节点内的适当本地位置(ll)(例如自由位置,即可使其自由的位置或在其它方面可用的位置),并将与数据单元相关联的对应的本地clb条目的位置信息(li)变为指向所述本地位置。步骤904)将本地位置标示为具有共享状态(s)以指示副本是可读而非可写的。此数据单元的主副本保持位置671,其是不需要与dir660或从节点通信的原因(或经由位置671与“pb节点690及pb节点699”块之间的信号示出)。转向图10,此图描绘根据实施例的结合请求节点中的clb未命中的解析全局相干“读取未命中”所需的全局步骤及局部步骤。此实例适用于sr区域及ur区域两者(在对应于所请求数据单元的dir中的设置的pb位的数量不等于1)。采用以下步骤:步骤1001)节点601无法在其本地clb中找到对应条目,且形成以dir660作为目标的读取请求clb未命中(readreqcm)。步骤1002)dir660将此区域标示为封堵的(可能通过采用来自有限散列锁池中的锁定)。步骤1003)dir660将对应于节点601的pb位设置为等于1。步骤1004)dir660确定主位置是位置671且向所述位置发送读取请求。步骤1005)同时,dir660将clb信息发送到节点601,以允许其创建与数据单元相关联的本地clb条目。步骤1006)将数据从主位置671发送到请求节点601。步骤1007)节点601在节点内找到适当本地位置(ll)并改变本地clb条目以指向所述本地位置。步骤1008)将本地位置标示为共享状态(s)以指示副本是可读而非可写的。步骤1009)请求节点601将完成消息(cmp)发送到dir660。步骤1010)dir660解除对区域的封堵。转向图11,此图描绘根据实施例的结合请求节点中的clb未命中的解析全局相干“读取未命中”所需的全局步骤及局部步骤。此实例适用于pr区域(在对应于所请求数据单元的dir中的设置的pb位的数量等于1)。所述实例假设pb位是仅针对节点690而设置。采用以下步骤:步骤1101)节点601无法在其本地clb中找到对应条目,且形成以dir660作为目标的读取请求clb未命中(readreqcm)。步骤1102)dir660将此区域标示为封堵的。步骤1103)dir660设置对应于节点601的pb位。步骤1104)dir660确定所述区域为pr且其没有最新clb信息。将clbreq发送到节点690,是因为所述clb使其对应的pb位设置于dir的ri字段663中。步骤1105)节点690的clb清除区域信息(ri),其指示用于所述区域的分类pr。步骤1106)一旦其完成待完成的导入到数据读取请求,节点690以clb信息回复dir660。步骤1107)dir660将clb信息转发到请求节点601,以允许其创建与数据单元相关联的本地clb条目。步骤1108)节点690确定所请求数据的主位置是位置671并向所述位置发送读取请求。步骤1109)将数据发送到请求节点601。步骤1110)节点601在节点(ll)内找到本地位置(ll)并改变本地clb条目以指向所述本地位置。步骤1111)将本地位置标示为共享状态(s)以指示副本是可读而非可写的。步骤1112)节点601将完成消息(cmp)发送到dir660步骤1113)dir660解除对区域的封堵。转向图12,此图描绘根据实施例的结合请求节点中的clb命中的解析全局相干“写入升级未命中中”所需的全局步骤及局部步骤。此实例适用于sr区域(在对应于所请求数据单元的dir中的设置的pb位的数量大于1)。所述实例假设pb位仅针对节点690及节点699而设置。采用以下步骤:步骤1201)节点601在其本地clb中找到对应条目并确定其具有在共享状态(s)下的数据单元的本地副本,并形成以dir660作为目标的失效请求(invreg)。步骤1202)dir660将此区域标示为封堵的。步骤1203)dir660将对应于所请求数据单元的li设置为指向节点601。步骤1204)dir660将失效请求(inv)发送到两个从属装置,其对应pb位设置于dir660(即,节点690及节点699)中。步骤1205)两个从节点(节点690及节点699)将其对应于所请求数据单元的li设置为指向601。步骤1206)两个从节点(节点690及节点699)确保其可能具有的数据单元的任何本地副本不能再存取(由状态变化到无效状态(状态:=i)所描绘)。步骤1207)两个从节点(节点690及节点699)将应答消息发送到请求节点(601)。步骤1208)在请求节点已接收所有应答消息(一定数量的待接收的消息可由消息本身承载)后,将节点601中的数据单元的副本标示为排它式状态(e),以指示副本是可读取及可写入的。步骤1209)节点601将完成消息(cmp)发送到dir660。步骤1210)dir660解除对区域的封堵。转向图13,此图描绘根据实施例的解析来自节点601的全局相干收回请求所需的全局步骤及局部步骤。举例来说,节点601可将数据单元的脏副本存储在其高速缓存l-y640中,所述脏副本应收回到llc670中的位置671。所述实例假设对应于dir660中的相关数据单元的pb位是针对节点690及节点699而设置。采用以下步骤:步骤1301)节点601将数据单元的数据值复制到新位置671(复制数据)。步骤1302)在此步骤期间,确定复制数据操作已达到可受到保证的点,使得将保证以此数据单元作为目标的任何readreq返回数据单元的更新副本。在已接收到复制数据信号后,这可例如通过网络排序属性通过从网络内部产生的信号,或如图13的实施例中所示,通过将复制信号发送回节点601的目标位置771来实现。步骤1303)请求节点601将收回数据(evictreq)的请求发送到dir660。步骤1304)dir660封堵区域。步骤1305)dir660将目标位置671标示为用于数据单元的li。步骤1306)dir660将新位置信息(newli)发送到两个从属装置,其对应pb位设置于dir660(即,节点690及节点699)中。步骤1307)两个从节点(节点690及节点699)设置其对应于目标位置671的li。步骤1308)两个从节点(节点690及节点699)将应答消息发送到请求节点(601)。步骤1309)在请求节点已接收所有应答消息后,其可释放由收回的数据单元保持的空间(描绘为状态:=i)。步骤1310)节点601将完成消息(cmp)发送到dir660。步骤1311)dir660解除对区域的封堵。排序属性上述协议执行三个任务:第一,确保存储于参考同一高速缓存线的若干clb中的li与彼此一致,且还基于来自请求者(例如请求者601)的clb的li信息确保确定性(即导入到主存取请求(例如,readreq901)得到保证以返回高速缓存线的有效数据。第二,其将在仅一个节点中具有clb条目的区域分类为专用区域(pr)并避免某些存取请求与这些区域的全局相干性(例如避免存取dir660)。第三,其通过发送全局相干请求(例如发送到dir660的请求)保持高速缓存线的多个副本的相干性,所述高速缓存线可驻留在高速缓存(例如高速缓存620、高速缓存692及高速缓存670中)。如果某些全局相干请求以及由相干协议响应于所述请求执行的一些动作实现了某些排序属性,那么一旦其对应li从请求节点(601)的clb(610或630)中读取,作为对于来自cpu(例如cpu610)的读取请求的响应而发送的导入到主读取请求(例如请求901)可考虑以总存储器次序排序。即使所请求高速缓存线的数据必须从远程节点(例如节点669),从llc(670)或从存储器(680)读取,即,即使所述请求导致可能花费100个循环来实现的传统高速缓存未命中,仍是这种情况。排序读取请求的传统途径在其所请求高速缓存线的数据返回到cpu时是另外将其视为有序的。此外,在其对应li从请求节点(601)的clb(610或630)读取时,可将一些写入事务视为有序的。在一个实施例中,在li从clb中读取时,到专用区域(pr)的在请求节点的clb中寻找其对应li的写入请求可被视为按总存储器次序来排序。在一个实施例中,在其发送到dir660的请求(例如readreqcm1001或1101)已相对于响应于写入请求(例如invreq1201)而发送到dir660的请求而排序时,并未在请求节点(601)的clb(610或630)中找到li的一些事务被视为有序的。本领域的技术人员将认识到,提前对读取或写入请求排序具有许多优点。这对于导致高速缓存未命中的请求(如由cpu610在节点601中产生的请求)尤其宝贵,所述请求可不能由l1高速缓存620查找满足,或略糟的是可不能由l2640查找满足,或甚至更糟的是,在其对应li从一级clb610中或略糟的是从在请求节点601本地的某一其它级别读取时,即使通过llc670查找仍不能满足,所述llc670查找需要存取缓慢存储器或甚至需要存取共享dir660,可比排序此类请求的传统途径早多个数量级。为了实施特定存储器模型,例如总存储次序(totalstoreorder;tso),可不从cpu发送新读取请求直到所有较早读取请求已排序为止。此外,在特定乱序流水线实施方案中,cpu可开始在所有先前读取已排序之前返回推测性数据的推测性读取请求。不排序推测性读取直到排序所有先前读取并且同时由致使推测性读取请求再执行的相干性协议使得推测性数据可失效为止。这暗示可不释放由推测性读取使用的许多流水线资源直到其排序为止。还暗示可能需要再执行利用推测性数据的任何指令。在依序流水线中,如果没有排序读取请求,那么因为可不实施再执行且因此可既不送出推测性读取请求也不开始执行使用推测性数据的指令,所以通常需要停止流水线。在一个实施例中,如果需要由存储用于两个存储的li信息的所有其它cpu按相同次序观测在两个存储(例如两个存储到共享区域)之间的可不由存取本地高速缓存到请求节点满足(例如在节点601中产生的可不由存取高速缓存620或高速缓存640满足的写入请求以及在节点690中的可不由高速缓存692或高速缓存694满足的写入请求)的全局次序,那么可以实现较早li存取排序。在一个实施例中,这可通过以下来实现:第一,在两个写入之间建立次序(例如来自节点601的写入a在来自节点690的写入b之前产生);以及第二,确保作为对两个写入请求(例如invreq1201)的响应发送到pb节点(例如699)的相干性事务(例如inv1204)将按所述次序将它们的改变(1205)应用于它们相应的li。在与写入b相关的改变1205改变与b相关的li以存储节点690的身份(li:=690)之前,与写入a相关的改变1205应改变与相关a的li以存储节点601的身份(li:=601)。在一个实施例中,这可通过在dir660中排序两个存储来实现,其效果是发送到pb节点的相干性事务(例如inv1204)按所述次序发送到每一节点,在dir与每一pb之间的通信并不重新排序这些事务并且它们的相应li改变按所述次序应用。被较早排序的写入事务暗示可以开始下一个写入事务来自相同请求节点(601),即使尚未执行先前写入(高速缓存线的值尚未改变),同时仍可保证总存储次序(tso)。在一个实施例中,除了inv事务(1214)以外,还有一个额外重新排序(ordered)事务(图12中未绘示)被从dir发送到请求者601。ordered事务的排序要求与上文实施例中论述的inv事务1214的要求相同。在ordered事务已被请求者接收之前,请求节点中的写入请求不能被视为排序并且不能执行写入。在一个实施例中,一旦ordered事务已接收,写入请求就可以视为排序,但是在接收所有预期ack事务1207之前可不执行写入。在一个实施例中,一旦相关的li已从本地clb(610或630)读取到请求节点(601),由cpu(610)起始到专用区域(pr)的写入事务就可以视为排序。较早排序读取请求或写入请求的优势包含(但不限于)得到乱序流水线的指示,即请求自身将不造成所谓的回退(即需要产生所述请求的指令并且挤压所有随后指令),这可能允许较早释放与指令相关的资源(重新排序缓冲器(reorderbuffer;rob)条目、物理寄存器等)。即使较早指令致使高速缓存未命中,较早排序请求也可以允许按序停止使用的流水线能够启动新的读取指令或写入指令。即使新指令也致使高速缓存未命中,可启动在其等之后的指令。允许更严格的存储器模型(例如tso或依序一致性)具有发出更多指令的优势,同时存在尚未解决的致使高速缓存未命中的旧指令(例如尚未传回用于读取指令的数据或尚未授予用于写入指令的写入权限)。在一个实施例中,一旦排序所有较早读取指令,但在其全部接收数据之前,极其简单的流水线可开始新的读取指令。每一寄存器具有与其相关的有效位。在新指令被允许执行时,取决于尚未含有有效数据的寄存器的指令被停放。在相应寄存器接收有效数据时停放的指令被唤醒。在推测分支指令之后执行的指令将不标记为有效直到已确定所述分支的推测行为实际上为正确的为止。由分支控制的有效位可与数据写入到寄存器时设置的有效位不同。如果分支错误推测,那么程序计数器改变以再执行分支指令以及其之后的所有指令。可注意到,在图12的步骤1204中,dir660使用有效clb条目将inv消息发送到所有节点。这可能潜在地导致比常规基于目录的相干性协议发送更多inv消息,所述常规基于目录的相干性协议仅将inv消息发送到已知已读取请求数据单元的节点。在一个实施例中,这效果由被称为clb清理(clbweeding)的技术达成,其中如果检测到节点接收不必要的inv消息,那么一些clb条目被收回。举例来说,如果没有对应区域的数据单元存在于节点的高速缓存且inv消息被接收以用于区域,那么clb条目可以被收回。本发明人在经验上已展示不管发送更多inv消息的潜能,由实施例中所提出的系统发送的消息总数量比由常规基于目录的相干系统发送的消息的数量低一半。在一个实施例中,如果仍检测到由于dir中的pb位表示,区域产生太多相干消息,那么可将所述区域转换为被称为微粒区域(fine-grainregion;fr)的特殊类别。fr区域(预期极少)在dir中具有特殊条目,所述条目可能使用目录表示技术(如全映射、dirn-b、dirn-nb或粗粒表示)追踪具有与每一高速缓存线相关联的共享副本的节点的集合。区域的clb条目将被标记为fr区域,且将初始地使其位置条目设置为符号“不知道”(don'tknow;dk)。这将促使全局相干性读取请求查阅dir以找到数据单元的位置,使得dir追踪具有与所请求数据单元相关联的共享副本的节点。此信息使得dir仅将inv消息发送到已请求高速缓存线的节点。在一个实施例中,节点在其clb条目(例如,610到630)中将pb位存储为区域信息(regioninformation;ri)的一部分。这使得请求相干写入权限的节点将失效请求直接发送到从属装置,而非通过目录间接进入。如果提供封堵机制(如结合dir660描述的机制),那么将大大简化多处理器系统的高速缓存相干性协议。然而,存在节点之间的直接通信优于间接通过目录的情况,例如其中pb位在节点clb中存储为区域信息(ri)的一部分的一些实例中,从而允许在节点之间直接发送失效消息而不需要目录查找。使封堵机制自目录解除将为有益的。这将不仅节省额外目录查找时延及能量;还可能导致发送更少noc事务及更少时钟域的交叉点。在一个实施例中,网络实施封堵功能性,阻止某些消息在网络上发送。这可由网络中整合的锁数组来实施,其中与消息相关联的地址的一部分用于选择与消息对应的锁。当在网络上发送某些类型的消息时,可获取对应的锁(设定锁)。当保持获取锁时,阻止某些类型的其它消息在网络上发送。在可发送与锁相关联的封堵消息之前,将需要通过由相干性协议指定的某一事件来释放锁。获取锁的消息可为广播类型,这意味着可能存在超过一个节点接收消息。在一个实施例中,在可发送封堵消息之前,接收消息的一或多个节点需要采取行动(如由相干性协议指定)以释放相关联的锁。在一个实施例中,当锁释放时告知发送节点。在一个实施例中,由请求节点所起始的单个写入请求可产生发送到若干从节点的失效广播消息,这将使得获取到锁。从节点中的每一个使其数据单元失效且将释放机制应用于锁。一旦所有从节点已应用其释放机制,则锁经释放,且请求节点得以告知并将授予写入权限。这将与传统的基于目录的相干性系统进行比较,其中在节点中起始的写入请求将包含以下步骤:将写入请求发送到目录;目录锁定失效消息并将其发送到从节点;从节点使数据单元失效并发送ack消息;请求请节检测何时接收到所有ack并获得写入权限;在目录中使锁呈解锁状态。相较使用传统的基于标记的高速缓存构建的常规的基于目录的相干高速缓存存储器系统,本文中所描述的机制具有许多显著差异。已描述具有以下唯一特性中的一或多个的实施例:1)标识可在何处发现数据单元的可读副本的高速缓存位置信息在靠近cpu的所谓的高速缓存位置缓冲器(cachedlocationbuffer;clb)中高速缓存。2)clb形成单独的包含性“clb高速缓存层次”,其中目录dir处于其根部,存储关于数据单元在何处存储于单独的“数据高速缓存层次”的“元数据”信息。这不同于存储与每条高速缓存线相关联的地址标记“元数据”的常规的高速缓存,以识别其标识且因此需要检索所请求的数据单元的每个级别。以层次方式组织及搜索clbs+dir。3)不需要以层次方式组织及检索“数据高速缓存层次”的数据高速缓存,如常规的高速缓存一般。4)目录使用“pb位”追踪可具有区域的高速缓存线的副本的节点(或可存取所述区域)。此信息用于操控一些相干消息,例如失效消息(inv)。这不同于追踪可具有与每条高速缓存线相关联的共享副本的节点的集合的常规目录。5)检测到专用区域,其中仅一个节点可存取且可高速缓存区域的数据单元的副本。这些特征使得若干独特属性能够不存在于常规的基于目录的相干存储器系统中:●全局相干请求的80%不需要将相干性考虑其中,因为其例如归因于上文特征(5)可保证仅一个节点可存取数据且可能具有存取的数据的高速缓存副本。●全局相干的读取请求不需要查阅目录,因为在本地高速缓存的位置信息可告知数据所位于的位置(例如归因于上文特征(1)),且追踪可具有与每一高速缓存线相关联的共享副本的节点集合(例如归因于上文特征(4))。●llc被划分成llc切片,其中数据单元到llc切片的分配可以自由完成且不视数据单元的位址而定(例如归因于上文特征(1))。llc切片被置于节点附近,且将智能探试法用于增加节点将存取其llc切片中的数据单元的可能性。●读取存取可寻找所述局部llc中的所请求数据单元(如归因于上文特征(1)),可寻找一个(1)切片而不需要查阅目录(例如归因于上文特征(4))。本发明人进行的经验性研究已展示,所提出技术跨广泛应用将全局noc消息的数量、跨noc发送的数据的数量和应用程序的全部平均减少超过50%,同时将l1未命中的平均时延平均削减30%。根据前述实施例,可能注意到所述实施例的各种一般特征。这些特征在一些实施例中可以一起使用,或在其它实施例中以各种组合和子组合使用。举例而言,高速缓存位置缓冲器(clb)用于追踪高速缓存线在多处理器高速缓存层次中的位置。所述高速缓存层次可能包含不同大小和/或存取时间的一个或许多个高速缓存。每一高速缓存可以存储以相联途径存储(例如划分成数个集合)的多个高速缓存线,每一高速缓存线含有数个途径。虽然识别高速缓存线的位址可以用来识别高速缓存内将驻留高速缓存线的集合,但其途径位置的身份无法在不进行搜索的情况下通过其位址来确定。根据一些实施例的clb的一个任务是高效地寻找高速缓存和所述高速缓存级别内存储特定高速缓存线的位置、存储所述高速缓存线的节点或有效地确定高速缓存线根本未驻留于高速缓存层次中。在此情形下,“高效地”可能指使用较少能量、更快速地操作、使用较少存储空间、其某一组合或其它有益结果。clb可以根据一些实施例实施为相联结构,从而存储多个高速缓存表条目(cte)。每一这类条目存储例如用于由所述cte识别的高速缓存线群组的位址标记和位置信息。clb可能使用由较大但较慢clb支持的较小且较快clb以层次方式实施。不同clb级别可被设计成使用虚拟或物理地址存取。所请求的高速缓存线的位置藉由clb中的查找来确定,之后可以在不需要任何其它相联查找的情况下在其所确定级别和位置处存取所述高速缓存线。这样去除将额外位址标记存储在高速缓存层次中的要求。涵盖以上实施例的众多变化形式及置换。举例而言,在一个实施例中,对于不同clb级别而言,与cte相关联的位置信息位元的数量可能不同,且所述clb级别之间的li信息的复制可以是部分复制操作。在另一实施例中,第一级clb的功能性与tlb的功能性集成或含有通常在tlb中发现的功能性的部分。在这个实施方案的实例中,clb条目可能含有虚拟地址标记(virtualaddresstag;vat)、高速缓存位置表格(cachelocationtable;clt)、存取许可编码和实际地址转译以及通常在tlb实施方案中发现的其它元数据的某一组合。此外,即使以上实例含有高达两个高速缓存级别并且高达两个clb级别,但本领域的技术人员将理解本文中所描述的技术可以被一般化以适用于更多级别的高速缓存和更多级别的clb。不要求高速缓存级别的数量与clb级别的数量相同。还将理解上一级别的clb可能溢出并填充到传统(主)存储器中的专用区域,且如此充当clb高速缓存。在一个实施例中,cte的信息可以含有与其相关高速缓存线相关联的其它元数据,包含(但不限于)关于其存取图案和过去使用的信息、高速缓存线状态、一般存储在tlb中的保护信息以及产生实际地址所需的实际地址部分。一些所述数据可以存储在例如413和425的区域信息(ri)字段中。实施例还可以表达为方法,其实例作为方法800提供在图8的流程图中。其中,在步骤802处,数据单元存储在多处理器系统的节点中的专用高速缓存中,其中每一节点含有至少一个处理器(cpu)、节点专用的至少一个高速缓存以及节点专用的至少一个高速缓存位置缓冲器(clb)。在步骤804处,在每一clb中,存储位置信息值,每一位置信息值指示与相应数据单元相关联的位置,其中存储于给定clb中的每一位置信息值指示所述位置是在与给定clb设置于同一节点中的专用高速缓存内的位置、是在其它节点中的一个节点中的位置,或是在主存储器中的位置。在步骤806处使用高速缓存相干性协议维持数据单元的值的相干性。通过高速缓存相干性协议根据其相应数据单元的移动来更新存储在clb中的位置信息值。根据图14的流程图中说明的另一方法实施例,方法1400包含在步骤1402处将数据单元存储于多处理器系统的节点中的专用高速缓存中以及全局高速缓存和存储器中,其中每一节点含有至少一个处理器(cpu)、节点专用的至少一个高速缓存。在步骤1404处,使用高速缓存相干性方案维持存储在专用和全局高速缓存中的数据单元的值的相干性,所述高速缓存相干性协议在存储数据单元的地点信息的目录中执行查找。如由步骤1406指示,位置信息识别数据单元作为以下中的一者驻留的位置:节点、全局高速缓存或存储器。根据图15中说明的另一方法实施例,方法1500包含:在步骤1502处,将数据单元存储在多处理器系统的节点中的专用高速缓存中以及全局高速缓存和存储器中,其中每一节点含有至少一个处理器(cpu)、节点专用的至少一个高速缓存,所述节点经由网络连接。在步骤1504处,通过在网络上发送相干消息的分布式高速缓存相干性协议维持存储在高速缓存中的数据单元的值的相干性。在步骤1506处,封堵一些相干性消息在网络上发送,其中如果其它相干性消息是用于与相干性消息相同的地址区域(步骤1508所示),那么发送相干性消息触发封堵功能以封堵其它相干性消息。图8、图14以及图15中描绘的步骤可能以各种次序执行,且一些步骤可以并行或依序执行。这些方法实施例、上文所描述的系统实施例以及其它实施例可提供各种有益结果。举例而言,申请人已进行详细的模拟研究,其已展示与本文中所描述的实施例相关联的高速缓存实施方案与常规高速缓存系统相比较可以节省大量能量,并且还可以产生具有实质上较短存取时间的高速缓存。为了清晰起见,本文中的大多数描述通常描述如何使高速缓存线定位并返回到请求cpu的技术。这些描述并不详细描述选择高速缓存线内所含的所请求字和使其返回到cpu的各种方式,其对于本领域的技术人员将显而易见并且会不必要地混淆本发明。为了清晰起见,本文中描述高速缓存层次的数据的处理的大多数描述描述了排他性高速缓存层次。本领域的技术人员将理解所描述的实施例可以延伸以同样覆盖包含性存储器层次及非排他性存储器层次。尽管上文在某些示范性计算机架构的情形中进行了描述,但高速缓存存在于计算机系统内和外的许多其它设置中,并且前述实施例同样适用于这类其它情形。这类使用的实例为虚拟存储器系统,其将来自缓慢的大容量存储器(例如磁盘或快闪存储器)的数据高速缓存到可以使用动态ram实施的更快且较小的大容量存储器。计算机系统中的高速缓存的其它实例包含(但不限于)磁盘高速缓存、网站高速缓存以及名称高速缓存。这类高速缓存的组织和高速缓存机制可能不同于上文所论述的高速缓存的组织和高速缓存机制,例如,一个集合的大小的变化、其集合实施方案以及关联性等。无论高速缓存机制自身的实施方案如何,本文中所描述的实施例同样适用于实施各种高速缓存方案。所揭露的实施例描述例如与各种高速缓存层次相关联的系统和方法。应理解,本说明书并不意图限制本发明。相反,示范性实施例意图涵盖包含在本发明的精神和范围中的替代方案、修改以及等效物。此外,在示范性实施例的详细描述中,阐述众多具体细节以便提供对本发明的全面理解。然而,本领域的技术人员将理解,可在不具有这类具体细节的情况下实践各种实施例。虽然本发明的实施例的特征和元件是以特定组合在实施例中描述的,但是可以在不具有所述实施例的其它特征和元件的情况下单独使用每个特征或元件,或者在具有或不具有本文所揭露的其它特征和元件的情况下可以以各种组合使用每个特征或元件。本申请中所提供的方法或流程图可以在计算机程序、软件或固件有形地实施于计算机可读存储媒体中以用于通过通用计算机或处理器执行来实施。本书面描述使用了所揭露的主题的实例以使得本领域的技术人员能够实践本发明,包含制作和使用任何装置或者系统并且执行任何所并入方法。主题的可获专利的范围由权利要求书界定,并且可以包含本领域的技术人员构想出的其它实例。这类其它实例意图涵盖在权利要求书的范围内的。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1