信息一致性维护系统和方法

文档序号:6525242阅读:244来源:国知局
信息一致性维护系统和方法
【专利摘要】本申请提供了一致性维护系统和方法。所述系统和方法包括在不同内存或存储级别使用多种信息状态追踪方法或协议。在一个实施例中,在一个存储级可以实施第一一致性维护方法(例如类似于MESI协议等等),而在另一个存储级则可以实施第二一致性维护方法(例如类似于MOESI协议等等)。处于特定存储级或存储层的信息可以用一组本地状态指示和一组实质状态指示来追踪。该实质状态指示可以“在外部”从存储层目录(例如在别的高速缓存等级目录中,在高速缓存等级之间的集线器等等)进行追踪。一个存储级可以基于本地状态指示来控制操作,另一个存储级则可以至少部分基于实质状态指示来控制操作。
【专利说明】信息一致性维护系统和方法
【技术领域】
[0001]本发明涉及信息存储。特别地,本发明涉及一种用于追踪高速缓存操作的系统和方法。
【背景技术】
[0002]电子系统及电路对现代社会的进步做出了极大贡献,其被用在了大量应用中以实现有利的结果。诸如数字计算机、计算器、音频设备、视频设备和电话系统之类的众多电子技术极大促进了生产力的提升,并且在商业、科技、教育及娱乐等诸多领域中降低了分析和传递数据的成本。这些活动通常都包括信息存储。电子设备执行存储操作的方式对性能和最终结果有着极大影响。然而,在信息存储方面进行的传统尝试存在很多限制,并且有可能是非常复杂和繁琐的。
[0003]很多传统的存储方法尝试使用包括高速缓存(cache)、系统存储器以及大容量存储器在内的存储等级或层次,其中在使用了多个等级的情况下,保持信息一致性将会非常重要。在高速缓存一致性协议方面进行过很多传统尝试。一些常见的高速缓存一致性协议是围绕高速缓存行所处的简单状态及其在这些状态之间的转换来组织的。
[0004]在传统的MESI —致性协议中,高速缓存行有可能处于以下状态之一:修改(Modified),独享(Exclusive),共享(Shared)或无效(Invalid)。在修改状态中,高速缓存行被特定高速缓存所独享,并且从被获取(fetch)时起对其进行过修改。一旦收回高速缓存行,则需要将其回写到起始位置(例如DRAM)。在独享状态中,高速缓存行是被拥有处于该状态的高速缓存行的高速缓存独享的,并且此后有可能会被修改。如果没有修改过数据,那么在收回的时候什么都不需要回写。在共享状态中,高速缓存行包含了可能为其他代理所具有的数据,如果具有的话,那么该数据是相同数据。由于没有修改数据,因此在回收时是不需要回写的。在无效状态中,高速缓存行不包含有效数据。所述高速缓存行可被随意地重新分配。
[0005]此外还有一种传统的MOESI —致性协议。除了 MESI状态之外,MOESI协议还引入了 “拥有(Owned)”状态,该状态与共享状态相似,但是行在被收回时必须被回写至起始位置。当在某个高速缓存中修改了高速缓存行并且另一个代理请求共享该行时,这时将会出现拥有状态。在MESI系统中,行会被写回到后备存储器,并且同时会被提供给请求共享该行的代理,而在原始高速缓存中,所述行会从修改状态变换到共享状态。在MOESI系统中,所述行不会被回写,其仅仅会被提供给请求共享该行的代理,但是不会变换到拥有状态,由此,虽然(有可能)因为其他代理共享了高速缓存行而不允许原始代理写入该行,但是原始代理实际会记得将其回写。
[0006]每一种传统的一致性协议相比于别的一致性协议通常都具有长处和弱点,并且传统的使用一种一致性协议的方法在总体效率上是受到限制的。MESI协议通常实施起来较为简单,因为代理只需要在修改了某一个行的时候(由其处于M个状态来指示)将其回写。如果修改了某个行,那么如果保证所述行是独享的,那么同样可以写入该行。在MOESI协议中,如果某一个行被修改,即使由于所述行现在处于拥有状态而不再能写入该行,代理也还是必须回写该行。由此,MOESI协议包含了对于需要回写的状态进行区分的处理,即便是在处于所述状态的行不接受新的写入的情况下。此外,这两种协议还存在着更多的变化。
[0007]在一些状况中,MOESI协议可以避免使用与MESI协议一样多的DRAM带宽。例如,当两个代理进行通信时,如果其中一方偶尔写入数据,而另一方仅仅请求更新的拷贝,那么与MESI协议相比,MOESI协议通常会包含较少的回写,并且消耗较少的DRAM带宽。通常,在MESI协议中,每一个此类关于更新拷贝的请求都会导致将所述行回写到DRAM。在MOESI协议中,通常只有对行进行了修改的代理最终收回该行的处理才会导致使用DRAM带宽。

【发明内容】
[0008]这里给出的是一致性维护系统和方法。所述系统和方法包括在不同内存或存储级别使用多种信息状态追踪方法或协议。在一个实施例中,在一个存储级可以实施第一一致性维护方法(例如与MESI协议等等相似),而在另一个存储级则可以实施第二一致性维护方法(例如与MOESI协议等等相似)。处于特定存储级或存储层的信息可以用一组本地状态指示和一组实质状态指示来追踪。该实质状态指示可以“在外部”从存储层目录(例如在别的高速缓存等级目录中,在高速缓存等级之间的集线器(hub )等等)进行追踪。一个存储级可以基于本地状态指示来控制操作,另一个存储级则可以至少部分基于实质状态指示来控制操作。
[0009]在一个实施例中,一种系统包括:在外部追踪存储状态指示的第一级存储部件;以及第二级存储组件,用于接收来自第一级存储组件的信息,以及至少部分基于与第一级存储组件相关联的信息的存储状态来作用于所述信息。在一个例示实施方式中,外部追踪信息包括第一级目录原本实际指示的信息(例如拥有相比于共享)之外的附加信息(例如更详细的?目息,细化?目息等等)。该彳目息状态可以是闻速缓存行的状态,并且第二级存储组件可以追踪高速缓存行的存储状态。高速缓存行的存储状态可以由一个一致性集线器(coherent hub)进行追踪。L2高速缓存可以设想高速缓存行处于MESI状态,并且L3可以实际追踪哪些行已被实际回写到后备存储器。在一个实施例中,在从L2高速缓存中回收高速缓存行时,L3高速缓存在适当时实际将该高速缓存行传送到后备存储器,如果不适当的话,那么L3高速缓存不会传送该高速缓存行。L3可以追踪每一个高速缓存行的额外状态,其中所述额外状态表明行是否为脏,并且L3目录指示的是回写所述行。
【专利附图】

【附图说明】
[0010]在这里引入并构成本说明书一部分的附图举例示出了本发明的实施例,但其并不具有限制意义。除非特别指示,否则本说明书中引用的附图应被理解成是非按比例绘制的。
[0011]图1是根据本发明一个实施例的例示存储器架构的框图。
[0012]图2是根据本发明一个实施例的例示方法的流程图。
[0013]图3是根据本发明一个实施例的例示存储器架构的框图。
[0014]图4是计算机系统、即可以实施本发明实施例的计算机系统的一个实施例的框图。【具体实施方式】
[0015]现在将详细参考附图中例示的本发明的优选实施例。虽然本发明是结合优选实施例而被示出的,但是应该理解,本发明并不局限于这些实施例。与此相反,本发明旨在覆盖可能包含在附加权利要求所限定的发明实质和范围以内的替换、修改及等价物。此外,在以下关于本发明的详细描述中将会阐述众多细节,以便提供关于本发明的全面理解。然而,对本领域普通技术人员来说,很明显,本发明是可以在没有这些具体细节的情况下实施的。在其他实例中,众所周知的方法、过程、组件和电路未被详细描述,以免不必要地与本发明的方面相混淆。
[0016]所给出的系统和方法可以促成有效的信息存储和追踪操作。所述系统和方法包括在不同的内存或存储级使用多种信息状态追踪方法或协议。保存在特定存储级或存储层(例如L2、L3、主存储器等等)的信息可以用多种不同的状态指示来追踪,并且通过使用不同的状态指示集合,可以促使在不同的存储或内存级实施不同的一致性维护协议。在一个例示实施方式中,在一个存储级可以实施第一一致性维护方法(例如与MESI协议等等相似),而在另一个存储级则可以实施第二一致性维护协议(例如与MOESI协议等等相似)。
[0017]在一个实施例中,处于特定存储级或层的信息是用一组本地状态指示以及一组实质状态指示追踪的。该实质状态指示可以在“外部”从一个存储层级目录(例如在别的高速缓存级目录中,在闻速缓存级之间的集线器中等等)追踪。在一个实施例中,本地状态指不能在本地存储等级上实现较为简单的实施方式(例如MESI协议,简化的控制器等等),而实质状态指示则能在别的存储级上实现较高性能的实施方式(例如MEOSI协议,更好的带宽等等)。所述实质状态指示可以与处于特定等级(例如清洁共享,脏共享等等)的信息的更完整的一致性状态指示相关联,并且本地状态指示可以与处于该特定等级(例如共享,修改等等)的权宜状态指示相关联。在以下的描述部分中给出了关于实质状态指示外部追踪以及本地状态指示追踪的附加信息。
[0018]图1是根据本发明一个实施例的例示存储器架构100的框图。在一个实施例中,存储器架构100包括信息状态外部追踪存储器系统。存储器架构100包括等级105、110、120、130,140以及150。等级105、110、120、130、140和150是存储级。在一个例示实施方式中,存储级105可被认为是处理级(例如包括寄存器、触发器等等),存储级110、120和130可被认为是高速缓存级(例如包括LI高速缓存、L2高速缓存、L3高速缓存等等),存储级140可被认为是后备存储器或主存储器级(例如RAM、DRAM等等),以及存储级150可被认为是大容量存储器(例如硬盘、CD等等)。存储级105、110、120、130、140包括存储组件111、121、131、141以及151。在一个实施例中,存储器架构100包括可选的集线器组件170。
[0019]保存在存储器架构100的组件中的信息可以与状态指示相关联。状态指示可以包括关于存储组件中的信息的状态的指示(例如共享,修改,脏等等)。该状态指示可以用于触发或协调将要执行且与所述信息相关的操作或处理(例如分配存储空间,回写,不分配,不回写等等)。在一个例示实施方式中,存储组件(例如高速缓存,内存等等)中的信息与一个在外部追踪的实质状态指示(例如拥有,清洁,脏,修改等等)相关联。存储组件中的信息还可以与本地目录追踪的本地状态指不(例如共孕,修改等等)相关联。
[0020]在一个实施例中,存储级110包括存储组件111,并且关于与存储组件111相关联的信息的实质状态的指示是在存储组件111的外部追踪的。关于与存储组件111相关联的信息的实质状态的指示可以由存储级120中的组件追踪。在一个例示实施方式中,与存储组件111相关联的信息的实质状态是由一个集线器(例如与集线器组件170等等相似)追踪的。应该了解的是,信息的本地状态可以由存储组件111追踪,并且可以不同于从存储组件111的外部追踪的与存储组件111相关联的信息的实质状态。
[0021]系统100中的行为或操作可以基于存储状态。在一个实施例中,存储组件111将处于不同本地状态的信息回写到等级120。然而,在存储组件121中,用于被回写信息的存储空间是以在存储组件111外部追踪的实质状态的指示为基础分配的。在一个实施例中,在存储组件111外部追踪的实质状态可以用于确定等级120的本地存储状态,并且还可以相应地将信息从存储级120写回到存储级130。在一个例示实施方式中,在等级100本地被作为共享追踪的信息可以在外部由等级120作为拥有来进行追踪,并且可以根据所述拥有状态指示而被回写到等级130。应该了解的是,从一个等级回写到另一个等级的处理可以在不同的时间进行(例如在等级120中对其进行分配的时候回写,在从等级120回收的时候回写等等)。
[0022]图2是根据本发明一个实施例的例示方法200的流程图。
[0023]在方框210,追踪实质存储状态指示和本地存储状态指示。在一个实施例中,与一个存储级中包含的存储组件相关的信息是在外部从存储级本地状态目录追踪的。在一个实施例中,存储级可以是高速缓存级,并且存储组件中的高速缓存行的本地存储状态可以由存储组件作为一个状态(例如共享,修改等等)来追踪,而高速缓存行的实质状态则可以在外部作为类似状态或别的状态(例如拥有,脏等等)来追踪。
[0024]在方框220,在一个存储级上基于本地存储状态指示来作用于该级存储组件中的信息。在一个实施例中,所述一个存储级的存储组件回写处于多个存储状态的信息。在一个例示实施方式中,除了处于修改状态的信息之外,处于共享状态和独享状态的信息也会被回写到别的存储级中的别的存储组件。
[0025]在方框230,至少部分基于在其他存储组件中接收的信息的实质存储状态来作用于该信息。在一个实施例中,所述其他等级的存储组件接收所述一个存储级的存储组件的回写并作用于该信息,这其中包括基于实质存储状态而丢弃外来的回写,以及为剩余信息分配存储空间。在一个例示实施方式中,其他等级的存储组件至少部分基于实质状态指示来创建子集的本地状态指示,并且基于自己的本地状态指示来作用于该信息(例如将回写转发到别的存储级等等)。
[0026]在一个实施例中,在外部追踪的存储状态指示包括与存储状态指示原本在内部所做的指示不同的信息。在一个例示实施方式中,外部追踪信息包括与第一级目录原本实际指示的信息(例如拥有相比于共享)不同的附加信息(例如更详细的信息,细化信息等等)。所述外部追踪的信息可以包括通过将多个第一级上的信息组合在一起以及通过保持第一级如何转到当前状态的历史信息而被确定的信息。常规的单个第一级方法通常不能便利地追踪该附加信息,因为其并不知道其他的第一级方法即将或者做或者做过什么。第一一致性维护方法(例如与MESI等等相似)可以在第一级存储组件上实施,而在外部追踪的存储状态指示则与第二一致性维护方法(例如与MOESI等等相似)兼容,并且第二一致性维护方法是在第二级存储组件上实施的。
[0027]应该了解的是,所给出的系统和方法很容易在多种配置和环境中实施。多个对等的存储组件可以处于类似存储级的存储架构中。对于实质状态的追踪可以至少部分由一个回写、写入-分配、独享的下一级组件来实施。在不同存储级可以实施不同类型的一致性协议。在一个例示实施方式中,除了被修改成在回收时回写处于多个不同状态(例如除了修改之外的共享和独享等等)的信息之外,第一协议可以类似于MESI—致性协议,并且第二协议可以类似于MOESI —致性协议。存储组件可以是处于高速缓存存储器架构等级的高速缓存组件。
[0028]图3是根据本发明一个实施例的例示存储器架构300的框图。存储器架构300包括处理组件310 (例如寄存器、触发器等等),一级(LI)高速缓存320,二级(L2)高速缓存330,三级(L3)高速缓存340,主存储器350以及可选的大容量存储器370。处理组件310耦合到LI高速缓存320,所述LI高速缓存320耦合到L2,而L2则转而耦合到L3高速缓存340。L3高速缓存耦合到主存储器350,并且所述主存储器转而可以耦合到可选的大容量存储器370。在一个实施例中,一级高速缓存320可以包括一级高速缓存控制器321,二级高速缓存330可以包括二级高速缓存控制器331,三级缓存340可以包括三级缓存341。高速缓存控制器可以包括用于追踪状态指示的目录。
[0029]系统300的组件可以通过协同操作来实施多个存储级。在一个实施例中,L3高速缓存包括L2高速缓存中不包含的行。当L2高速缓存请求某个行的时候,该结果可以是命中或失效。如果结果是在L3高速缓存中命中,那么所述行将被发送到L2高速缓存,并且会在L3高速缓存中被无效化。如果结果是在L3高速缓存中失效,那么该请求被发送到存储器,并且响应将被发送到L2高速缓存你,而不会分配L3高速缓存中的行。L3高速缓存中的行是在从L2高速缓存回收的时候分配的。所述L2高速缓存回写处于不同状态(例如修改,共享,独享等等)的高速缓存行,这样做有助于分配原本不会在L3高速缓存中分配并且必须从存储器中重新请求的未修改(例如只读等等)数据。
[0030]在一个实施例中,当L3高速缓存接收到来自L2高速缓存的回收(例如包含了关于L2高速缓存是否修改了所述行的信息等等)时,L3高速缓存将会分配该行。L3高速缓存可以替换已经存储L3高速缓存中的行。如果恰当的话(例如在处于修改、拥有等等的状态的情况下),所替换的行可被回收到别的存储级(例如DRAM,后备存储器等等)。
[0031]在一个例示实施方中,在外部追踪实质状态有助于保留独享属性。在一个实施例中,L3高速缓存可以追踪处于不同L2高速缓存中的行的行状态。在一个例示实施方式中,如果在若干个L2高速缓存中共享一个行,那么L3高速缓存将会丢弃除了最后一个之外的来自L2高速缓存的所有回收。如果L3高速缓存中的行是在每一个L2高速缓存回收“共享”行的时候分配的,那么这样做将有助于避免所述行在L3高速缓存与具有该行的剩余L2高速缓存之间重复。如果没有本系统的避免重复的特征,那么重复有可能会在其他方面导致L3高速缓存相对于L2高速缓存而言不再是独享的,并且还会极大地减小L3高速缓存的容量。
[0032]在一个实施例中,L3具有追踪不同L2闻速缓存中的行的状态的目录,并且L3闻速缓存实施了拥有状态(例如与MOESI协议等等相似),其中所述实施是在对L2高速缓存的修改没有超出使得L2高速缓存将清洁的行回收到L3高速缓存以在L3高速缓存中进行分配的修改。在L3高速缓存中,用于L2高速缓存的重复目录可以追踪到在从DRAM中取回该行时起,是否有任一高速缓存对其进行了修改,即使若干个L2可能让该行处于共享状态,外部重复目录也可以追踪到所述行已被修改,以及在被回收(从L3)的时候需要将其回写到初始位置,而不是静默地将其无效化。
[0033]在一个实施例中,用于L2高速缓存的外部重复目录可以区分“清洁共享”状态和“脏共享”状态,其中清洁共享状态表明在回收行的时候不需要将其回写到DRAM,脏共享状态表明在从DRAM中取回行的时起的某些点已经对其进行了修改,并且由此最终需要被回写。当最后一个L2高速缓存将“脏共享”行回写到L3时,L3可以在L3中分配处于修改状态的行,由此,如果从L3回收该行,那么,即使回收该行的实际L2高速缓存认为所述行仅仅是共享的(以及清洁的),也可以将该行回写到DRAM。然而,如果最后一个L2将“清洁共享”行回写到L3,那么L3可以在共享状态(或未修改状态)中分配该行,这意味着在从L3回收该行的时候不需要将其回写到DRAM。
[0034]在一个实施例中,在L2级可以实施与MOESI协议相似的DRAM带宽节约处理,而不会显著改变原本与MESI协议相关的L2高速缓存。在一个例示实施方式中,L2高速缓存与MESI协议相似,但是将其简洁地修改成在被回收的时候回写或写出不同状态的行,以使其在L3中可以根据需要而被分配。在共享此类行的时候,由于只有源于L2高速缓存的最后一次回收实际是需要将所述行发送到L3高速缓存的,因此,在L2高速缓存与L3高速缓存之间有可能存在附加带宽。然而,由于大多数的行通常只存在于一个代理中,因此,附加带宽(例如针对L3高速缓存而不是DRAM等等)通常很小,并且与外置高速缓存相比,在去往DRAM的时候,片上高速缓存往往具有高出很多的可用带宽。由此,与常规方法相比,保存或减小DRAM带宽的消耗是非常重要的,即便因为片上带宽往往更多可用或者更为丰富而没有保存或减小片上带宽的情况下也是如此。即使有可能存在附加的带宽消耗,L2高速缓存和控制器也可以保持相对简单(例如实施较简单的协议,实施与MESI相似的协议等等)。应该了解的是,虽然大部分的详细描述是依照L2和L3高速缓存描述的,但是该方法是可以在具有多种不同存储配置的多种配置中使用和实施的。在一个例示实施方式中,对等高速缓存或较低等级的高速缓存可以是LI高速缓存,并且回写、写入-分配、独享的下一级高速缓存可以是L2高速缓存。
[0035]应该了解的是,对于一级存储或高速缓存以及二级存储或高速缓存的参考可以用于指示这些等级相对于彼此的区别,而不是指示其在层级中的绝对位置。例如,在存储器架构300中,LI高速缓存相对于二级L2高速缓存可以是第一级,而L2高速缓存相对于第二级L3高速缓存可以是第一级。在一个实施例中,第一级存储组件可以是L2高速缓存,第二级存储组件可以是L3高速缓存。L2高速缓存中的高速缓存行的存储状态可以由不同组件追踪。L2高速缓存中的高速缓存行的存储状态可以由L3高速缓存追踪。L2中的高速缓存行的存储状态可以由一致性集线器追踪。
[0036]虽然众多的实施例是结合高速缓存以及单个裸片或芯片上的追踪处理来描述的,但是应该了解,本系统和方法可以在多种配置中使用。在一个实施例中,所述系统和方法可被灵活扩展。在一个例示实施方式中,组件可被分布在不同的芯片上。在外部追踪存储状态的一致性集线器可以处于不同的裸片或芯片上。多个CPU中的每一个可以具有处于不同裸片上且使用共享存储器作为后备存储器的不同L2。在外部追踪L2的高速缓存行的处理可以在不同的组件中实施(例如网络中的裸片上的一致性集线器,未必与L2处于相同裸片上的组件或L3等等)。[0037]图4是计算机系统400的框图,其中该计算机系统是可以实施本发明实施例的计算机系统的一个实施例。计算机系统400包括中央处理器401,主存储器402 (例如随机存取存储器),具有北桥421和南桥425的芯片组420,可移除数据存储设备404,输入设备407,信号通信端口 408,以及与显示器470耦合的图形子系统450。计算机系统440包括用于可通信地耦合计算机系统400的组件的若干条总线。通信总线491 (例如前端总线)将芯片组420的北桥421耦合到中央处理器401。通信总线492 (例如主存储器总线)将芯片组420的北桥421耦合到主存储器402。通信总线493 (例如高级图形端口接口)将芯片组420的北桥耦合到图形子系统450。通信总线494-497 (例如PCI总线)将芯片组420的南桥分别耦合到可移除数据存储设备404、输入设备407、信号通信端口 408。图形子系统450包括图形处理器451、存储器管理单元455以及图形缓存(buffer)459。
[0038]计算机系统400的组件通过协同操作来执行多种处理任务,以及促成有效的存储器访问。通信总线491、492、493、494、495以及497传递信息。中央处理器401处理信息。主存储器402存储用于中央处理器401的信息和指令。可移除数据存储设备404同样存储信息和指令(例如充当大型信息存储库)。输入设备407提供了一种用于输入信息和/或在显示器470上指向或强调信息的机制。信号通信端口 408提供了一个对接到外部设备的通信接口(例如与网络的接口)。显示设备470依照帧缓存459中存储的数据来显示信息。图形处理器451处理来自中央处理器401的图形命令,并且将结果数据提供给图形缓存459,以供显示器监视器470进行存储和检索。存储器管理单元455处理图形处理器451与图形缓存459之间的存储器访问请求。应该了解的是,通过实施类似的存储器管理单元,还可以促成对计算机系统400的其他存储器组件进行有效独立的访问请求,这其中包括主存储器402和大容量数据存储器404。
[0039]应该了解的是,本发明可以在多种实施例中实施。在一个例示实施方式中,本发明可以在用于提供包括视频游戏在内的多种图形应用的处理系统中使用。例如,本发明可以在游戏机、个人计算机、个人数字助理、手机或是用于实施视频游戏的任何数量的平台中使用。此外还应该了解,对于视频游戏应用实施方式的引用是例示性的,并且本发明并不局限于这些实施方式。
[0040]同样,应该了解的是,虽然大部分的详细描述是依照L2和L3高速缓存描述的,但是该方法是可以在具有多种不同存储配置的多种配置中使用和实施的。在一个实施例中,仅仅在作为系统可选组件的L3上引入复杂度。
[0041]本详细描述的一些部分是依照方法给出并论述的。虽然在这里的描述方法操作的附图中公开了方法的步骤和顺序,但是这些步骤和顺序是例示性的。这里的实施例同样很适合按照与这里描述和叙述的顺序不同的顺序来执行其他不同的步骤或是这里的流程图中述及的步骤的变体。
[0042]本详细描述的一些部分是依照过程、步骤、逻辑部件、处理以及可以在计算机存储器内部执行的数据比特操作的其他符号表示给出的。这些描述和表示是供数据处理领域的技术人员最有效地将其工作本质传递给本领域的其他技术人员的手段。过程、计算机执行的步骤、逻辑部件、处理等等在这里通常被认为是导致产生预期结果的前后一致的步骤或指令序列。这些步骤包括对于物理参量的物理操作。通常,这些参量会采用能在计算机系统中存储、传送、组合、比较以及进行其他操作的电、磁、光或量子信号的形式,但这并不是必需的。出于共同使用的目的,将这些信号称为比特、数值、元素、符号、字符、项、数字等等已被多次证明是非常便利的。
[0043]然而,应该牢记的是,所有这些及类似的项都是与恰当的物理参量相关联的,并且仅仅是应用于这些参量的便利标签。除非采用了可以从以下描述中清楚看出的其他方式特别说明,否则应该了解,在本公开中,使用了诸如“分配”、“关联”、“移动”、“拷贝”、“设置”、“访问”、“控制”、“计算”、“添加”、“记录”、“确定”、“识别”、“缓存”、“保持”、“递增”、“比较”、“移除”、“生成”、“读取”、“写入”、“传送”、“接收”等术语的论述指的是由计算机系统或类似计算设备或处理器执行的行为或处理。计算系统或类似电子计算设备在计算机系统存储器、寄存器、或其他此类信息存储、传输或显示设备内部操作和变换被表示成物理(电子)参量的数据。
[0044]—些实施例可以在由一个或多个计算机或其他设备运行的计算机可执行指令的通用上下文中被论述,例如程序模块。通常,程序模块包括执行特定任务或是实施特定抽象数据类型的例程、程序、对象、组件、数据结构等等。程序模块的功能通常可以按照不同实施例的需要而被组合或分布。
[0045]以上关于本发明具体实施例的描述是出于例证和描述目的给出的。这些描述既不是穷举性的,也没有将本发明局限于所公开的确切形式。这里的实施例是为了以最佳的方式说明本发明的原理及其实际应用而被选择和描述的,由此允许本领域其他技术人员以最佳的方式来使用本发明以及带有与所考虑的特定用途相适合的不同修改的不同实施例。本发明的范围是由附加于此的权利要求及其等价物限定的。
【权利要求】
1.一种系统,包括:在外部追踪存储状态指示的第一级存储组件,其中在所述第一级存储组件上实施第一一致性维护方法,而在外部追踪的所述存储状态指示与第二一致性维护方法兼容;以及第二级存储组件,用于接收来自第一级存储组件的信息,以及至少部分地基于与第一级存储组件相关联的信息的存储状态来作用于该信息,其中在第二级存储组件上实施第二一致性维护方法。
2.权利要求1的存储系统,其中所述信息的状态是高速缓存行状态。
3.权利要求2的存储系统,其中所述高速缓存行的存储状态是由第二级存储组件追踪的。
4.权利要求2的存储系统,其中所述高速缓存行的存储状态是由一致性集线器追踪的。
5.权利要求2的存储系统,其中第一级存储组件是L2高速缓存,并且第二级存储组件是L3高速缓存。
6.权利要求5的存储系统,其中所述L2高速缓存中的高速缓存行的存储状态是由所述L3高速缓存追踪的。
7.权利要求5的存储系统,其中所述高速缓存行的存储状态是由一致性集线器追踪的。
8.权利要求2的存储系统,其中所述L2高速缓存认为所述高速缓存行处于MESI状态,并且所述L3实际追踪哪些行被实际`回写到后备存储器。
9.权利要求5的存储系统,其中在从所述L2高速缓存回收所述高速缓存行时,所述L3高速缓存在适当情况下将该高速缓存行实际传送到后备存储器,并且如果不适当则不传送所述高速缓存行。
10.权利要求5的存储系统,其中L3追踪每一个高速缓存行的额外状态,并且其中所述额外状态指明所述L2高速缓存中的行是否是脏的,以及L3目录指明所述行是要被回写的。
11.一种方法: 在外部追踪与一个存储级中包含的存储组件相关联的信息的实质存储状态; 基于本地存储状态指示来作用于该级存储组件中的信息;以及 至少部分地基于在另一个存储组件中接收的信息的实质存储状态来作用于该信息。
12.权利要求11的方法,其中所述一级存储组件不追踪拥有状态。
13.权利要求11的方法,其中所述其他等级的存储组件接收来自该级存储组件的回写,并且基于所述实质存储状态而丢弃外来回写。
14.权利要求11的方法,其中所述其他等级的存储组件依照所述实质存储状态来转发从所述一个存储组件接收的回写。
15.—个系统,包括: 多个一级高速缓存,所述多个一级高速缓存使用基础的MESI协议,以及所述多个一级高速缓存回写包括脏共享高速缓存行在内的被回收的高速缓存行;以及 二级高速缓存,其在所述二级高速缓存中分配处于修改状态的脏共享高速缓存行,以便,如果从所述二级高速缓存中回收所述脏共享高速缓存行,则将所述脏共享高速缓存行回写到三级存储组件。
16.权利要求15的系统,其中如果从所述二级高速缓存中回收所述脏共享高速缓存行,那么即使回收所述脏共享高速缓存行的多个一级高速缓存之一将所述脏共享高速缓存行作为仅仅是共享和清洁的共享高速缓存行来处理,所述脏共享缓存也被回写到三级存储组件。
17.权利要求15的系统,其中所述多个一级高速缓存中的最后一个将“清洁共享”高速缓存行回写到L3,并且L3在共享状态或未修改状态中分配所述行,这意味着,如果将所述行从L3回收,则不需要将其回写到DRAM。
18.权利要求15的系统,其中多个一级高速缓存还回写独享高速缓存行和未修改高速缓存行。
19.权利要求15的系统,其中二级高速缓存是回写的、写入-分配的、独享的下一级高速缓存。
20.权利要求15的系统,其中二级高速缓存行是在从多个一级高速缓存之一中回收时被分配的 。
【文档编号】G06F12/08GK103885894SQ201310718837
【公开日】2014年6月25日 申请日期:2013年12月23日 优先权日:2012年12月21日
【发明者】阿努拉格·乔杜里, 吉列尔莫·胡安·罗扎斯 申请人:辉达公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1