CN100390758C - 缩短与高速缓存相关性目录遗漏关联的延迟的方法和系统 - Google Patents
缩短与高速缓存相关性目录遗漏关联的延迟的方法和系统 Download PDFInfo
- Publication number
- CN100390758C CN100390758C CNB2005101186780A CN200510118678A CN100390758C CN 100390758 C CN100390758 C CN 100390758C CN B2005101186780 A CNB2005101186780 A CN B2005101186780A CN 200510118678 A CN200510118678 A CN 200510118678A CN 100390758 C CN100390758 C CN 100390758C
- Authority
- CN
- China
- Prior art keywords
- catalogue
- omission
- looking ahead
- ahead
- directory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0817—Cache consistency protocols using directory methods
- G06F12/082—Associative directories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/50—Control mechanisms for virtual memory, cache or TLB
- G06F2212/507—Control mechanisms for virtual memory, cache or TLB using speculative control
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种用于在共享分布式存储器数据处理系统中缩短与外部高速缓存上的高速缓存相关性目录遗漏关联的延迟的系统、方法和产品。对高速缓存相关性目录进行评估,以了解可能进行的将目录条目预取到目录高速缓存中。如果预取评估导致目录遗漏,则设置预取遗漏指示符。在对对应于在预取评估过程中被遗漏的目录条目的存储块请求进行随后的处理期间,将查询预取遗漏指示符。如果设置了预取遗漏指示符,将采取加速的嗅探响应操作。从而就避免了否则会需要的对高速缓存相关性目录的第二次查询的延迟。
Description
技术领域
本发明涉及使用基于目录的高速缓存相关性技术的数据处理系统中的高速缓冲存储器的管理。具体来说,本发明旨在缩短与外部高速缓存上的高速缓存相关性目录遗漏关联的存储器访问延迟。
背景技术
作为背景,现代的计算机系统利用与关联的高速缓存控制器(统称为“高速缓存”)连接的高速缓冲存储器作为处理器和持有处理器数据的相对比较慢的主存储器之间的桥路。如图1所示,高速缓存通常驻留在它所服务的处理器的附近,一个或多个高速缓存级别常常位于处理器本身中。高速缓存的功能是临时存储所选择的主存储器的子集,具体来说,就是被频繁地访问的存储块。如此,高速缓存的信息可用于快速满足存储器访问,而没有与对主存储器的访问请求关联的延迟。
在多处理器系统中,如图2所示的多处理器系统中,每一个处理器通常都具有其自己的高速缓存,每一个高速缓存都可以独立地存储被所有处理器通过共同的系统总线共享的来自主存储器的相同存储块的副本。这种情况要求使用高速缓存相关模式,以便确保在多个处理器之间保持数据一致性。在当前技术中众所周知,为此目的通常使用“总线嗅探”协议。总线嗅探基于这样的概念,总线是对存储器的所有处理器启动的读取和写入请求的广播介质。每一个处理器的高速缓存都是总线代理,该代理可以如此在总线上收听或“嗅探”,以便通知其本身有关其他高速缓存相对于共享的存储块所采取的总线相关的操作。当处理器希望更新存储块并且一个写入到块中的存储器请求被其高速缓存放置在总线中时,持有相同存储块的所有其他高速缓存都将将知道要使它们的副本失效。与块写入处理器关联的高速缓存现在在系统中将具有存储块的唯一有效副本(直到块被写入到主存储器中)。当处理器请求存储块并且其高速缓存在总线上放置读取请求时,持有被请求的块的有效副本的另一个高速缓存可以作出响应。如果主存储器具有唯一有效副本,则该请求将从此存储器得到满足,如果处理器高速缓存具有唯一有效副本,则该请求必须通过高速缓存得到满足。
在较大规模的多处理器系统中,如图3所示的多处理器系统中,系统的主存储器常常在通过网络互连的多个处理节点之间分布。每一个节点通常都包括小规模的多处理器系统,如上文参考图2所述(即,多个处理器通过共享总线访问主存储器)。每一个节点的本地存储器都提供整个系统存储器的一部分。任何给定节点中的处理器都可以访问其自己的本地存储器以及其他节点的存储器。对于给定节点,系统中的任何其他节点任何其他节点处的存储器通常被称为远程存储器或外部存储器。
通常使用分布式基于目录的高速缓存相关模式来维护不同节点的高速缓存之间的相关性,所有的节点都可以从理论上来讲持有相同存储块的副本。每一个节点都维护了高速缓存相关性目录,以跟踪系统中的哪些处理器具有来自该节点的本地存储器的高速缓冲存储器块。每一个目录条目通常都包含对应于给定存储块的地址的标记,用于定位所有正在缓存该块的处理器的标识信息,以及表示高速缓存的副本是否有效的状态字段。节点的目录信息用来评估属于该节点的存储块的读取和写入请求,并向维护了副本的所有高速缓存发出相关性消息。当系统中的处理器更新共享存储块时,查询对存储块具有管辖权的目录以判断哪些高速缓存持有该块的副本。在写入操作可以进行之前,将失效消息发送到标识的高速缓存,必须返回失效确认,以证实所有高速缓存的副本都已经被失效。类似地,当处理器请求对共享存储块进行读取访问时,查询对存储块具有管辖权的目录以识别所有高速缓存的副本的位置和状态。基于目录中的信息,可以从其中一个持有有效副本的高速缓存中,或从存储了块的节点的主存储器,将被请求的块提供给请求者。
在每一个节点内,管理高速缓存相关性目录和协调相关性消息交换的作业由被称为“相关性控制器”的智能处理代理来执行。如图3所示,每一个相关性控制器都这样连接,以便它可以通过系统互连网络与其他节点上的其对等节点传递并行性消息。每一个相关性控制器还作为其主节点的本地存储器总线上的嗅探代理。相关性控制器可以如此跟踪在它们的管辖下的存储块的所有外部和本地缓存。
由于高速缓存相关性目录有时很大,并且通常存储在相对低速的存储器中,因此,相关性控制器实现目录高速缓存以便临时存储相关的目录条目的子集是常见的。这可以大大地缩短与目录查询关联的延迟。为了填充目录高速缓存,相关性控制器将在接收对特定存储块的实际查询请求之前执行目录条目的预取(投机查询)。可以使用基于空间局限性的原理的常规算法来选择最佳的预取候选。例如,在作为读取或写入操作的一部分而进行的对某些处理器请求的特定存储块的目录查询之后,高速缓存算法可以试图将对应于其地址位于被请求的块的地址附近的存储块的某些额外的目录条目预取到目录高速缓存中。
当使用目录预取方案时产生的一个问题是,预取操作可能会在候选目录条目上导致目录“遗漏”。目录遗漏表示,与预取尝试关联的存储块没有高速缓存在本地节点的外面的系统中的任何地方,即,在任何外部高速缓存中都不存在副本。在这种情况下,对于存储块,要么没有目录条目,要么目录条目将存在,但将被标记为无效。这样的目录条目将不会放在目录高速缓存中,因为高速缓存算法被设计为丢弃无效条目,以便为新高速缓存条目腾出空间,添加无效条目可能会潜在地替换有效条目,如此会消耗时间和系统资源来替换该条目。
随后,当与预取遗漏关联的存储块实际被本地处理器请求进行读取或写入操作时,将再次访问高速缓存相关性目录,目录遗漏将会再次发生。注意,由于请求者是本地处理器,第二次目录查询是完全无保证的。存在目录遗漏状况的事实表示,没有存储块的外部高速缓存的副本,可以使用存储块的本地副本,而不必通知其他节点。只要相关性控制器是本地总线嗅探代理(在可以满足来自本地请求者的存储块请求之前,必须等待其嗅探响应),本地节点就会体验到不适当的处理延迟。假如知道目录查询将遗漏,则发出请求的处理器可以提前许多周期地本地获取存储块,而不必等待相关性控制器。
应该提供一种对前面的问题的解决方案,从而可以避免这样的延迟,具体来说,由于本地存储器请求易于在任何给定节点占优势,而对其他节点上的远程或外部存储器的请求会更少。
发明内容
本发明提供了一种系统、方法和产品,用于缩短在共享的分布式存储器数据处理系统的外部高速缓存上的高速缓存相关性目录预取遗漏之后发生的延迟。在本发明的示范性实施例中,对高速缓存相关性目录进行评估,以了解可能进行的将目录条目预取到目录高速缓存中。如果预取评估是目录遗漏,则设置预取遗漏指示符。在对对应于在预取评估过程中被遗漏的目录条目的存储块请求的随后的处理期间,将查询预取遗漏指示符。如果设置了预取遗漏指示符,将采取加速的嗅探响应操作。如此,就避免了否则会需要的对高速缓存相关性目录的第二次查询的延迟。
预取遗漏指示符可以以多种方式来实现,包括通过建立预取遗漏缓冲区,用于存储与目录预取遗漏关联的标记。另一个选项是建立目录高速缓存条目的新状态标志,该标志表示在关联的标记上发生了目录预取遗漏。
附图说明
从下面比较具体的参考附图对本发明的优选实施例的描述中,本发明的前述的及其他特点和优点将变得显而易见,其中:
图1是显示了包含单处理器、高速缓存和主存储器的采用现有技术的数据处理系统的功能方框图;
图2是显示了包含多个处理器、多个关联的高速缓存、共享主存储器和共同的系统总线,并使用总线嗅探高速缓存相关性协议的另一个采用现有技术的数据处理系统的功能方框图;
图3是显示了包含访问共享存储空间的处理节点的网络的另一个采用现有技术的数据处理系统的功能方框图,每一个节点都包含根据图2的数据处理系统,同时具有用于实现基于目录的高速缓存相关性协议的功能;
图4是显示了代表根据本发明的原理的对图3的数据处理系统的改善的数据处理系统的功能方框图;
图5是显示了根据本发明的一个示范性实施例的相关性控制器、目录高速缓存、目录和预取遗漏缓冲区的功能方框图;
图6是显示了可以根据本发明而执行的示范性预取处理过程的流程图;
图7是显示了根据本发明的示范性协议逻辑处理过程的流程图;
图8是显示了根据本发明的另一个示范性实施例的相关性控制器、目录高速缓存、目录的功能方框图;以及
图9是可以用来存储计算机程序以提供用于实现根据本发明的功能的产品的存储介质的示意图。
具体实施方式
现在请参看图形,其中,在所有图形中,类似的参考编号表示类似的元素,图4显示了数据处理系统2,该系统提供了可以实现本发明的示范性环境。数据处理系统2被配置为共享分布式存储空间的数据处理节点的网络。cc-NUMA体系结构,代表“高速缓存相关非均匀的存储器访问”可以用作数据处理系统2的模型的一种共享分布式存储器系统。还可以潜在地使用其他共享分布式存储器体系结构类型。
数据处理系统2包括“N”个处理节点,其中,N可以根据处理要求、成本及其他因素,是任何所希望的数字。为清楚起见,图2只显示了第1和第n个节点,分别被表示为“节点1”和“节点N”。互连网络4将节点1到节点N互连,以构成在当前技术中所谓的“群集”。互连网络4可以通过开关织品拓扑、环形拓扑或任何其他合适的布局(包括环形和织品拓扑)来实现。
数据处理系统2中的每一个节点包括1到N个处理器6,与每一个处理器关联的高速缓存8,以及通过系统存储器总线12互连的共同的主存储器10。数据处理系统2的存储器跨系统的所有节点的主存储器10分布,以便每一个节点的主存储器都提供整个系统存储器的一部分。有单一的全系统范围的地址空间,给每一个节点的主存储器10都分配了地址空间内的唯一地址范围。由于节点之间的互连,任何给定节点中的处理器6都可以访问其自己的本地存储器10,以及其他节点的存储器(和高速缓存)(后者被视为相对于给定节点的远程或外部存储器)。哪一个节点将服务处理器存储器访问,取决于被请求的存储块的地址。
数据处理系统2的单个节点内的处理器6之间的高速缓存相关性在某种程度上得到常规的总线嗅探协议的支持,如上文作为背景所描述的。如此,节点内的每一个高速缓存8将嗅探本地总线12上的活动(即,通过没有单独显示的常规高速缓存控制器)。数据处理系统2进一步使用基于目录的高速缓存相关性协议来维护不同节点的高速缓存8之间的一致性。为此,如上文作为背景所描述的,每一个节点都包括由相关性控制器16进行管理的高速缓存相关性目录14。每一个相关性控制器16嗅探其自己的本地总线12,也与其他节点中的其对等物进行通信。
可以使用在基于目录的高速缓存相关性体系结构中通常发现的的任何已知的技术来配置目录14。一个选项是将目录14配置为完全映射的目录,其中,与给定目录关联的本地主存储器10中的每个存储块都由列出了缓存了该块的所有处理器的目录条目来表示。也可以使用稀疏的目录格式,在这样的情况下,在任何给定时间将只代表目录的本地主存储器10中的一小部分存储块。可以使用任何合适的存储技术来实现目录14,外部DRAM模块是对于完全目录的常规选择,嵌入的DRAM是最通常使用稀疏目录的技术。
除对相关性控制器16进行修改以便实现本发明的功能之外,它们在设计方面都是常规的。如此,它们可以根据已知的技术使用可编程协议处理器、用ASIC(特定用途集成电路)实现的自定义硬件设计,或通过任何其他合适的装置来实现。如上文作为背景所描述的,相关性控制器16的主要功能是维护存储在其他节点上的外部高速缓存中的本地存储块的相关性。涉及这样的存储块的访问请求作为来自对等相关性控制器的消息,来自相关性控制器16的互连网络端。在本地总线端,对本地存储块的访问请求作为本地总线12上的常规读取/写入请求到达。相关性控制器16的另一个功能是通过互连网络4转发对外部存储块(具有本地主存储器的范围外面的地址)的本地请求。
本发明涉及来自本地处理器的本地存储块请求,本讨论的其余部分将专门谈相关性控制器操作的这一方面。当本地处理器6请求对本地存储块进行访问时,它断言,通过其常规总线嗅探功能,通知总线12上的被请求的地址,以及本地相关性控制器16。同时,所有本地高速缓存8将同样嗅探请求,只要它们也是总线12上的代理。然后,发出请求的处理器6将等待几个周期,以接收来自不同总线代理的嗅探响应。例如,如果发出请求的处理器6试图读取存储块,总线12上的总线代理将提供嗅探响应,通知它们是否具有被请求的块的有效副本。关于这一点,相关性控制器16的嗅探响应和总线12上的其他总线代理的响应之间的唯一差别是,相关性控制器16共同地代表持有其他节点中的被请求的存储块的副本的所有外部高速缓存来发言。如此,相关性控制器16可以被视为外部高速缓存的总线嗅探代理。
每一个相关性控制器16使用其目录14来向本地处理器6提供嗅探响应。如果本地存储块的一个或多个副本正在被从外部高速缓存在其他节点中,在目录14中将会有目录条目,该目录条目包含用于识别正在缓存该块的其他节点中的外部处理器6的信息,以及表示外部副本是否有效的状态字段。如果正在使用稀疏的目录格式,并且没有被请求的本地存储块的从外部高速缓存的副本,则没有该块的目录条目。如果正在使用完全目录格式,将会有被标记为无效的目录条目,处理器标识信息将显示没有持有该块的外部处理器。此状况叫做“目录遗漏”。此情况下的相关性控制器的嗅探响应是通知发出请求的处理器6,控制器不在缓存被请求的存储块。
如上文作为背景技术所讨论的,通常可以由每一个相关性控制器16可以可以执行的各种不同的功能中,包括建立和管理目录高速缓存,如图图4中的附图标记18所示。每一个目录高速缓存18都用来持有目录条目的子集,以便让其相关性控制器16进行快速访问,因为后者服务于存储块访问请求。通常使用诸如SRAM(静态随机存取存储器)之类的快速存储器技术来实现这样的高速缓存。如作为背景所提及的,相关性控制器16通常实现预取算法来将预期的目录条目从其目录14中预加载到其目录高速缓存18中。
图5显示了对于某些存储块,从评估具有标记T1的目录高速缓存条目的相关性控制器16产生的典型的预取操作。相关性控制器16中的缓存逻辑20推测,应该从目录14中将具有标记T2和T3的额外的目录条目(对应于连续的存储块)预取到目录高速缓存18中。如此,缓存逻辑20访问目录14中的目录条目T2,并将它复制到目录高速缓存18中。然后,缓存逻辑20访问目录14中的目录条目T3。在稀疏的目录中,缓存逻辑20将发现,没有T3的条目。在完全目录中,缓存逻辑20将发现,T3的状态是无效的,其处理器标识字段没有显示持有与此条目关联的存储块的副本的外部处理器(在图5中被称为NULL字段)。如此,T3目录条目代表在目录预取尝试中发生的目录遗漏。
如上文作为背景所讨论的,在目录预取操作过程中遇到T3目录条目的常规相关性控制器将忽略它。相反,本发明认识到,预取目录遗漏状况提供了有用信息,该有用信息可以用来在实际(非投机性的)请求中涉及相同存储块时避免随后的处理延迟。为此,本发明提议预取遗漏指示符的设置来代表在目录预取操作过程中发生了目录遗漏的事实。在图5中,预取遗漏指示符被设置为预取遗漏缓冲区22中的T3标记的副本,预取遗漏缓冲区22使用它所在的节点中的高速数据存储硬件来实现(见下文)。当缓存逻辑20判断T3目录条目在预取操作过程中在该标记上产生了目录遗漏时,在预取遗漏缓冲区22中放置了T3标记。整个T3目录条目可以作为预取遗漏指示符存储在预取遗漏缓冲区22中。然而,不需要标记其本身之外的信息来表示预取遗漏。
随后,当接收到对T3存储块的非投机性的请求时,相关性控制器的协议逻辑24除了其在目录高速缓存18中的正常查询之外还在预取遗漏缓冲区22中执行查询。假设在远程节点上没有发生对T3存储块的干涉访问,则预取缓冲器查询将导致T3标记上的匹配。这又会终止该标记上的进一步处理。相关性控制器16能够立即向本地总线12返回嗅探响应,通知它没有T3存储块的高速缓存的副本。与如果在目录14中必须执行T3标记的第二次查询产生的嗅探响应相比,此嗅探响应更快。作为示例,外部DRAM目录中的目录查询的延迟大约为40-60时钟周期。嵌入的DRAM目录中的目录查询的延迟大约为8个周期。通过比较,如果预取遗漏缓冲区22在SRAM中实现或作为存储寄存器来实现,则它能够提供单周期访问,如上面所讨论的。
如果上述假设不成立,并且在预取操作的时间和非投机性的查询之间有对T3存储块的干涉访问,预取遗漏缓冲区22中的T3标记被相关性控制器16作废。此后,当进行非投机性的查询时,在预取遗漏缓冲区22中将不会发现T3标记,将进行常规的标记查询处理。
图6和7概括了示范性处理逻辑,该逻辑可以分别通过相关性控制器16的缓存逻辑20和协议逻辑24来实现,以支持本发明的如前所述的功能。在图6的步骤30中开始,缓存逻辑20访问目录14中的候选目录条目,以便可以预取到目录高速缓存18中。在步骤32中,缓存逻辑20进行测试,以检验是否有预取遗漏状况。如果不存在遗漏状况,则缓存逻辑20在步骤34中将目录条目复制到目录高速缓存18中。如果存在遗漏状况,缓存逻辑20通过将目录条目标记复制到预取遗漏缓冲区22中设置预取遗漏指示符。
在图7的步骤40中,协议逻辑24接收存储块访问请求。在步骤42中,它启动目录高速缓存18和预取遗漏缓冲区22的并行查询。如果在步骤44中协议逻辑24在预取遗漏缓冲区22中找到存储块的对应的标记,则它在步骤46中产生嗅探响应。否则,在步骤48中,协议逻辑24将在目录高速缓存18中查找对应的标记,或者,如果没有标记的目录高速缓存条目,随后在目录14中查找。
预取遗漏缓冲区22可以使用以比较高的速度工作的任何合适的数据存储硬件来实现。SRAM是一个选择。另一个选项是使用与用于相关性控制器16的处理器或ASIC关联的一个或多个存储寄存器。通过使用预取遗漏缓冲区22的快速存储硬件,与存储块请求关联的延迟从完全外部DRAM目录中的查询的40-60个周期,以及从稀疏的嵌入的DRAM目录中的查询的8个周期,加速到单周期访问延迟,后者是SRAM模块和存储寄存器的特征。如上所述,若不使用根据本发明的预取遗漏指示符,将对于任何目录条目执行这样的对目录14的查询,即使该条目预先产生了预取遗漏。
应该理解,预取遗漏缓冲区22不是在随后的非投机性的存储块请求过程中供考虑设置的预取遗漏指示符的唯一方法。如图8所示,一种可能的替代技术将是通过向目录高速缓存条目中添加新的状态标志字段来实现预取遗漏指示符。此标志由图8中的“I/M”指示符来作为示例,代表“无效/遗漏”。相关性控制器的协议逻辑24将在其在目录高速缓存18中的正常查询过程中遇到预取遗漏指示符。相关性控制器16中的缓存逻辑还将使用新的状态标志来区别由于预取遗漏而产生的目录高速缓存条目与正常的无效目录高速缓存条目。前者应该在高速缓存中保留某指定的时间段,而后者可以清除。
相应地,说明了用于缩短由于外部高速缓存上的高速缓存相关性目录遗漏而产生的本地存储器访问延迟的技术。可以理解,前面的概念可以用数据处理系统、机器实现的方法,以及产品(其中,编程装置记录在一个或多个数据存储介质上,以便在对诸如相关性控制器16之类的设备进行程序控制时使用)中的任何一种方式来实现,以执行所要求的功能。图9中的附图标记100显示了用于存储这样的编程装置的示范性数据存储介质。介质100被显示为通常用于商业化软件销售的便携式光存储光盘。这样的介质可以存储本发明的编程装置。编程装置也可以存储在便携式磁性介质(如软盘、flash记忆棒等等)上或存储与在装入计算机平台上的驱动系统(例如,光盘驱动器)相结合的磁性介质上。
尽管显示和描述了本发明的多个实施例,但是,显然,也可以实现许多修改和替代实施例。因此,可以理解,不对本发明进行任何形式的限制,除非符合所附权利要求和它们的等效物的精神。
Claims (31)
1.一种用于在共享分布式存储器数据处理系统中缩短与外部高速缓存上的高速缓存相关性目录遗漏关联的延迟的方法,包括:
为了可能进行的将目录条目预取到目录高速缓存中,对高速缓存相关性目录进行评估;
响应导致目录遗漏的所述为了预取进行的评估,设置预取遗漏指示符;
在随后处理对应于所述目录条目的存储器请求期间,查询所述预取遗漏指示符;以及
基于设置了所述预取遗漏指示符的情况,采取加速的嗅探响应操作。
2.根据权利要求1所述的方法,其中,所述目录评估包括评估完全映射的目录。
3.根据权利要求1所述的方法,其中,所述目录评估包括评估稀疏的的目录。
4.根据权利要求1所述的方法,其中,所述设置预取遗漏指示符包括存储所述目录条目的标记。
5.根据权利要求1所述的方法,其中,所述设置预取遗漏指示符包括将所述目录条目的标记存储在预取遗漏缓冲区中。
6.根据权利要求5所述的方法,其中,所述预取遗漏缓冲区包括可寻址存储器。
7.根据权利要求5所述的方法,其中,所述预取遗漏缓冲区包括存储寄存器。
8.根据权利要求1所述的方法,其中,所述设置预取遗漏指示符包括在所述目录条目中设置预取遗漏状态指示符并将所述条目存储在所述目录高速缓存中。
9.根据权利要求1所述的方法,其中,通过与查询所述目录高速缓存相关地查询预取遗漏缓冲区来执行所述预取遗漏指示符的所述查询。
10.根据权利要求1所述的方法,其中,通过查询所述目录高速缓存来执行所述预取遗漏指示符的所述查询以便识别具有预取遗漏状态指示符的目录条目。
11.一种用于在共享分布式存储器数据处理系统中缩短与外部高速缓存上的高速缓存相关性目录遗漏关联的延迟的基于目录的高速缓存相关性控制器系统,包括:
高速缓存相关性目录;
目录高速缓存;
第一高速缓存逻辑装置,用于为了可能进行的将目录条目预取到所述目录高速缓存中,对所述高速缓存相关性目录进行评估;
第二高速缓存逻辑装置,用于响应导致目录遗漏的所述为了预取进行的评估,设置预取遗漏指示符;
第一协议逻辑装置,用于,在随后处理对应于所述目录条目的存储器请求期间,查询所述预取遗漏指示符;以及
第二协议逻辑装置,用于,基于设置了所述预取遗漏指示符的情况,采取加速的嗅探响应操作。
12.根据权利要求11所述的系统,其中,所述高速缓存相关性目录是完全映射的目录。
13.根据权利要求11所述的系统,其中,所述高速缓存相关性目录是稀疏的目录。
14.根据权利要求11所述的系统,其中,所述第二高速缓存逻辑装置包括用于存储所述目录条目的标记的逻辑装置。
15.根据权利要求11所述的系统,进一步包括预取遗漏缓冲区,其中,所述第二高速缓存逻辑装置包括用于将所述目录条目的标记存储在预取遗漏缓冲区中的逻辑装置。
16.根据权利要求15所述的系统,其中,所述预取遗漏缓冲区包括可寻址存储器。
17.根据权利要求15所述的系统,其中,所述预取遗漏缓冲区包括存储寄存器。
18.根据权利要求11所述的系统,其中,所述第二高速缓存逻辑装置包括用于在所述目录条目中设置预取遗漏状态指示符并将所述条目存储在所述目录高速缓存中的逻辑装置。
19.根据权利要求11所述的系统,其中,所述第一协议逻辑装置包括用于与查询所述目录高速缓存相关地查询预取遗漏缓冲区的逻辑装置。
20.根据权利要求11所述的系统,其中,所述第一协议逻辑装置包括用于查询所述目录高速缓存以便识别具有预取遗漏状态指示符的目录条目的逻辑装置。
21.共享分布式存储器数据处理系统中的用于网络互连的数据处理设备,包括:
多个处理器;
分别与所述处理器关联的多个高速缓存;
节点主存储器;
相关性控制器;
互连所述高速缓存、所述主存储器和所述相关性控制器的总线;
用于定位所述数据处理系统的外部节点中的本地存储块的高速缓存的副本的高速缓存相关性目录;
用于临时存储来自所述高速缓存相关性目录的目录条目的目录高速缓存;
所述相关性控制器中的第一高速缓存逻辑装置,用于为了可能进行的将目录条目预取到所述目录高速缓存中,对所述高速缓存相关性目录进行评估;
所述相关性控制器中的第二高速缓存逻辑装置,用于响应导致目录遗漏的所述为了预取进行的评估,设置预取遗漏指示符,表示没有与所述目录条目关联的存储块的外部高速缓存的副本;
第一协议逻辑装置,用于,在随后处理对应于所述目录条目的存储块请求期间,查询所述预取遗漏指示符;以及
第二协议逻辑装置,用于,基于设置了所述预取遗漏指示符的情况,采取加速的嗅探响应操作;
从而,由于所述加速响应,而缩短与所述目录遗漏关联的延迟。
22.一种用于在共享分布式存储器数据处理系统中缩短与外部高速缓存上的高速缓存相关性目录遗漏关联的延迟的产品,包括:
一个或多个数据存储介质;
记录在所述数据存储介质上的用于对设备进行程序控制以便进行操作的装置:
为了可能进行的将目录条目预取到目录高速缓存中,对高速缓存相关性目录进行评估;
响应导致目录遗漏的为了所述预取进行的评估,设置预取遗漏指示符;
在随后处理对应于所述目录条目的存储器请求期间,查询所述预取遗漏指示符;以及
基于设置了所述预取遗漏指示符的情况,采取加速的嗅探响应操作。
23.根据权利要求22所述的产品,其中,所述目录评估包括评估完全映射的目录。
24.根据权利要求22所述的产品,其中,所述目录评估包括评估稀疏的的目录。
25.根据权利要求22所述的产品,其中,所述设置预取遗漏指示符包括存储所述目录条目的标记。
26.根据权利要求22所述的产品,其中,所述设置预取遗漏指示符包括将所述目录条目的标记存储在预取遗漏缓冲区中。
27.根据权利要求22所述的产品,其中,所述预取遗漏缓冲区包括可寻址存储器。
28.根据权利要求22所述的产品,其中,所述预取遗漏缓冲区包括存储寄存器。
29.根据权利要求22所述的产品,其中,所述设置预取遗漏指示符包括在所述目录条目中设置预取遗漏状态指示符并将所述条目存储在所述目录高速缓存中。
30.根据权利要求22所述的产品,其中,通过与查询所述目录高速缓存相关地查询预取遗漏缓冲区来执行所述预取遗漏指示符的所述查询。
31.根据权利要求22所述的产品,其中,通过查询所述目录高速缓存来执行所述预取遗漏指示符的所述查询以便识别具有预取遗漏状态指示符的目录条目。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/983,350 | 2004-11-08 | ||
US10/983,350 US7395375B2 (en) | 2004-11-08 | 2004-11-08 | Prefetch miss indicator for cache coherence directory misses on external caches |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1790296A CN1790296A (zh) | 2006-06-21 |
CN100390758C true CN100390758C (zh) | 2008-05-28 |
Family
ID=36317688
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005101186780A Expired - Fee Related CN100390758C (zh) | 2004-11-08 | 2005-11-07 | 缩短与高速缓存相关性目录遗漏关联的延迟的方法和系统 |
Country Status (2)
Country | Link |
---|---|
US (2) | US7395375B2 (zh) |
CN (1) | CN100390758C (zh) |
Families Citing this family (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1875393B1 (en) * | 2005-04-25 | 2015-08-05 | NetApp, Inc. | Architecture for supporting sparse volumes |
US7562190B1 (en) * | 2005-06-17 | 2009-07-14 | Sun Microsystems, Inc. | Cache protocol enhancements in a proximity communication-based off-chip cache memory architecture |
US7574566B2 (en) * | 2006-09-21 | 2009-08-11 | Sun Microsystems, Inc. | System and method for efficient software cache coherence |
US7657710B2 (en) * | 2006-11-17 | 2010-02-02 | Sun Microsystems, Inc. | Cache coherence protocol with write-only permission |
US20080307169A1 (en) * | 2007-06-06 | 2008-12-11 | Duane Arlyn Averill | Method, Apparatus, System and Program Product Supporting Improved Access Latency for a Sectored Directory |
US7779210B2 (en) * | 2007-10-31 | 2010-08-17 | Intel Corporation | Avoiding snoop response dependency |
US8055847B2 (en) * | 2008-07-07 | 2011-11-08 | International Business Machines Corporation | Efficient processing of data requests with the aid of a region cache |
CN101464839B (zh) * | 2009-01-08 | 2011-04-13 | 中国科学院计算技术研究所 | 一种访存缓冲装置及方法 |
US20100332762A1 (en) * | 2009-06-30 | 2010-12-30 | Moga Adrian C | Directory cache allocation based on snoop response information |
US8627015B2 (en) * | 2009-07-31 | 2014-01-07 | Emc Corporation | Data processing system using cache-aware multipath distribution of storage commands among caching storage controllers |
US20180054486A1 (en) * | 2009-10-29 | 2018-02-22 | International Business Machines Corporation | Speculative Requests |
US8751748B2 (en) * | 2010-01-15 | 2014-06-10 | International Business Machines Corporation | Reader set encoding for directory of shared cache memory in multiprocessor system |
US8832415B2 (en) * | 2010-01-08 | 2014-09-09 | International Business Machines Corporation | Mapping virtual addresses to different physical addresses for value disambiguation for thread memory access requests |
US8533399B2 (en) * | 2010-01-15 | 2013-09-10 | International Business Machines Corporation | Cache directory look-up re-use as conflict check mechanism for speculative memory requests |
US8392665B2 (en) | 2010-09-25 | 2013-03-05 | Intel Corporation | Allocation and write policy for a glueless area-efficient directory cache for hotly contested cache lines |
US10769021B1 (en) * | 2010-12-31 | 2020-09-08 | EMC IP Holding Company LLC | Cache protection through cache |
US8848576B2 (en) * | 2012-07-26 | 2014-09-30 | Oracle International Corporation | Dynamic node configuration in directory-based symmetric multiprocessing systems |
US10380030B2 (en) * | 2012-12-05 | 2019-08-13 | Arm Limited | Caching of virtual to physical address translations |
CN103455434B (zh) * | 2013-08-26 | 2016-12-28 | 华为技术有限公司 | 一种建立缓存目录的方法及系统 |
US10331560B2 (en) | 2014-01-31 | 2019-06-25 | Hewlett Packard Enterprise Development Lp | Cache coherence in multi-compute-engine systems |
CN104978283B (zh) * | 2014-04-10 | 2018-06-05 | 华为技术有限公司 | 一种内存访问控制方法,及装置 |
US9658963B2 (en) * | 2014-12-23 | 2017-05-23 | Intel Corporation | Speculative reads in buffered memory |
US9916259B1 (en) | 2015-02-02 | 2018-03-13 | Waymo Llc | System and method for low latency communication |
WO2017023252A1 (en) * | 2015-07-31 | 2017-02-09 | Hewlett Packard Enterprise Development Lp | Using a directory-based cache coherence system to regulate snooping |
KR102392844B1 (ko) | 2017-03-10 | 2022-05-03 | 삼성전자주식회사 | 메모리 컨트롤러 및 그것을 포함하는 저장 장치 |
US10592465B2 (en) * | 2017-10-26 | 2020-03-17 | Hewlett Packard Enterprise Development Lp | Node controller direct socket group memory access |
US10776282B2 (en) * | 2017-12-15 | 2020-09-15 | Advanced Micro Devices, Inc. | Home agent based cache transfer acceleration scheme |
US10691602B2 (en) * | 2018-06-29 | 2020-06-23 | Intel Corporation | Adaptive granularity for reducing cache coherence overhead |
EP3835959A4 (en) * | 2018-08-24 | 2021-11-10 | Huawei Technologies Co., Ltd. | DATA PRE-EXTRACTION PROCESS AND DEVICE |
US11169921B2 (en) | 2019-05-09 | 2021-11-09 | Hewlett Packard Enterprise Development Lp | Ternary content addressable memory-enhanced cache coherency acceleration |
US11928472B2 (en) | 2020-09-26 | 2024-03-12 | Intel Corporation | Branch prefetch mechanisms for mitigating frontend branch resteers |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0936557B1 (en) * | 1998-02-17 | 2003-05-28 | International Business Machines Corporation | Cache coherency protocol for a data processing system including a multilevel memory hierarchy |
CN1447940A (zh) * | 2000-06-28 | 2003-10-08 | 英特尔公司 | 以高速缓存连贯性为基础的高速缓存线的预加载和预控制 |
GB2390710A (en) * | 2002-04-09 | 2004-01-14 | Via Tech Inc | Data maintenance of a distributed shared memory system |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR0146059B1 (ko) * | 1995-04-11 | 1998-09-15 | 문정환 | 미참조 선인출 캐쉬를 이용한 명령어 선인출 방법 및 그 회로 |
US5715425A (en) * | 1996-02-22 | 1998-02-03 | Sun Microsystems, Inc. | Apparatus and method for prefetching data into an external cache |
US5835947A (en) * | 1996-05-31 | 1998-11-10 | Sun Microsystems, Inc. | Central processing unit and method for improving instruction cache miss latencies using an instruction buffer which conditionally stores additional addresses |
US5864671A (en) * | 1996-07-01 | 1999-01-26 | Sun Microsystems, Inc. | Hybrid memory access protocol for servicing memory access request by ascertaining whether the memory block is currently cached in determining which protocols to be used |
US5854911A (en) * | 1996-07-01 | 1998-12-29 | Sun Microsystems, Inc. | Data buffer prefetch apparatus and method |
DE69715203T2 (de) * | 1997-10-10 | 2003-07-31 | Bull Sa | Ein Datenverarbeitungssystem mit cc-NUMA (cache coherent, non-uniform memory access) Architektur und im lokalen Speicher enthaltenem Cache-Speicher für Fernzugriff |
US6012134A (en) * | 1998-04-09 | 2000-01-04 | Institute For The Development Of Emerging Architectures, L.L.C. | High-performance processor with streaming buffer that facilitates prefetching of instructions |
US20020002659A1 (en) * | 1998-05-29 | 2002-01-03 | Maged Milad Michael | System and method for improving directory lookup speed |
TW440761B (en) * | 1999-05-06 | 2001-06-16 | Ind Tech Res Inst | The cache device and method |
US6760817B2 (en) * | 2001-06-21 | 2004-07-06 | International Business Machines Corporation | Method and system for prefetching utilizing memory initiated prefetch write operations |
IL160997A0 (en) * | 2001-09-19 | 2004-08-31 | Bay Microsystems Inc | Vertical instruction and data processing in a network processor architecture |
US7437724B2 (en) * | 2002-04-03 | 2008-10-14 | Intel Corporation | Registers for data transfers |
US6931494B2 (en) * | 2002-09-09 | 2005-08-16 | Broadcom Corporation | System and method for directional prefetching |
US7155572B2 (en) * | 2003-01-27 | 2006-12-26 | Advanced Micro Devices, Inc. | Method and apparatus for injecting write data into a cache |
KR100510521B1 (ko) * | 2003-03-04 | 2005-08-26 | 삼성전자주식회사 | 더블 데이터 레이트 동기식 디램 반도체 장치 |
US8135915B2 (en) * | 2004-03-22 | 2012-03-13 | International Business Machines Corporation | Method and apparatus for hardware assistance for prefetching a pointer to a data structure identified by a prefetch indicator |
US20060010339A1 (en) * | 2004-06-24 | 2006-01-12 | Klein Dean A | Memory system and method having selective ECC during low power refresh |
US20050289551A1 (en) * | 2004-06-29 | 2005-12-29 | Waldemar Wojtkiewicz | Mechanism for prioritizing context swapping |
-
2004
- 2004-11-08 US US10/983,350 patent/US7395375B2/en not_active Expired - Fee Related
-
2005
- 2005-11-07 CN CNB2005101186780A patent/CN100390758C/zh not_active Expired - Fee Related
-
2008
- 2008-04-18 US US12/105,405 patent/US7669010B2/en not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0936557B1 (en) * | 1998-02-17 | 2003-05-28 | International Business Machines Corporation | Cache coherency protocol for a data processing system including a multilevel memory hierarchy |
CN1447940A (zh) * | 2000-06-28 | 2003-10-08 | 英特尔公司 | 以高速缓存连贯性为基础的高速缓存线的预加载和预控制 |
GB2390710A (en) * | 2002-04-09 | 2004-01-14 | Via Tech Inc | Data maintenance of a distributed shared memory system |
Also Published As
Publication number | Publication date |
---|---|
US7669010B2 (en) | 2010-02-23 |
US20060101209A1 (en) | 2006-05-11 |
CN1790296A (zh) | 2006-06-21 |
US20080195820A1 (en) | 2008-08-14 |
US7395375B2 (en) | 2008-07-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100390758C (zh) | 缩短与高速缓存相关性目录遗漏关联的延迟的方法和系统 | |
US8281079B2 (en) | Multi-processor system receiving input from a pre-fetch buffer | |
US8103835B2 (en) | Low-cost cache coherency for accelerators | |
US7360069B2 (en) | Systems and methods for executing across at least one memory barrier employing speculative fills | |
JP4101907B2 (ja) | コンピュータ・システム中でキャッシュされるべきデータを選択する方法,コンピュータ・システム,及びコンピュータ・システム用キャッシュ化装置 | |
JP6022849B2 (ja) | 共有キャッシュメモリ制御 | |
JP4928812B2 (ja) | タグ付きキャッシュ状態に基づいて下位レベル・キャッシュへの参照なしに相互接続ファブリック上にリクエストを送出するためのデータ処理システム、キャッシュ・システム、および方法 | |
KR100318104B1 (ko) | 공유 인터벤션을 지원하는 비균등 메모리접근 데이터처리시스템 | |
US7962696B2 (en) | System and method for updating owner predictors | |
US8806147B2 (en) | System and method for creating ordering points | |
US6405290B1 (en) | Multiprocessor system bus protocol for O state memory-consistent data | |
JP2006277762A (ja) | 分散共有メモリマルチプロセッサシステムのための分割疎ディレクトリ | |
JP2007257631A (ja) | 動作のスヌーピングに応答して無効コヒーレンシー状態を更新するデータ処理システム、キャッシュ・システム、および方法 | |
US6345341B1 (en) | Method of cache management for dynamically disabling O state memory-consistent data | |
US6721856B1 (en) | Enhanced cache management mechanism via an intelligent system bus monitor | |
TWI428754B (zh) | 以主動式預取寬度執行加強式停懸狀態之系統及方法 | |
US7024520B2 (en) | System and method enabling efficient cache line reuse in a computer system | |
JP4162493B2 (ja) | 下位レベルのキャッシュを含むアクセスを促進するためのリバースディレクトリ | |
JP4496455B2 (ja) | 共有メモリマルチプロセッサシステムのためのディレクトリベース予測方法および装置 | |
US6397303B1 (en) | Data processing system, cache, and method of cache management including an O state for memory-consistent cache lines | |
JP2004199677A (ja) | キャッシュを動作させるためのシステム及び方法 | |
JPH113280A (ja) | コンピュータ・システム内のデータを置換する方法 | |
US6356982B1 (en) | Dynamic mechanism to upgrade o state memory-consistent cache lines | |
US20020002659A1 (en) | System and method for improving directory lookup speed | |
US7380107B2 (en) | Multi-processor system utilizing concurrent speculative source request and system source request in response to cache miss |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C19 | Lapse of patent right due to non-payment of the annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |