CN109154910A - 用于存储器中处理的高速缓存一致性 - Google Patents

用于存储器中处理的高速缓存一致性 Download PDF

Info

Publication number
CN109154910A
CN109154910A CN201780030262.4A CN201780030262A CN109154910A CN 109154910 A CN109154910 A CN 109154910A CN 201780030262 A CN201780030262 A CN 201780030262A CN 109154910 A CN109154910 A CN 109154910A
Authority
CN
China
Prior art keywords
memory
processor
host
cache
state
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.)
Granted
Application number
CN201780030262.4A
Other languages
English (en)
Other versions
CN109154910B (zh
Inventor
迈克尔·W·波伊尔
努万·贾亚塞纳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Advanced Micro Devices Inc
Original Assignee
Advanced Micro Devices Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of CN109154910A publication Critical patent/CN109154910A/zh
Application granted granted Critical
Publication of CN109154910B publication Critical patent/CN109154910B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0817Cache consistency protocols using directory methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0817Cache consistency protocols using directory methods
    • G06F12/0822Copy directories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1004Compatibility, e.g. with legacy hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc

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)

Abstract

一种高速缓存一致性桥接协议,提供主机处理器的高速缓存一致性协议与存储器中处理器的高速缓存一致性协议之间的接口,由此解耦所述主机处理器和所述存储器中处理器的一致性机制。所述高速缓存一致性桥接协议可以用于促进由不同供应商设计的主机处理器和存储器中处理器装置之间的互操作性,并且所述主机处理器和存储器中处理器装置这两者都可以实施每个处理器内的计算单元之间的一致性技术。所述高速缓存一致性桥接协议可以支持的高速缓存一致性许可的粒度与主机处理器和/或存储器中处理器的高速缓存一致性协议所使用的高速缓存一致性许可的粒度不同。

Description

用于存储器中处理的高速缓存一致性
关于联邦资助的研究或开发的声明
本发明是在由DOE授予的主合同编号DE-AC52-07NA27344、第B608045号转包合同下根据政府支持而进行的。政府对本发明享有某些权利。
技术领域
本发明涉及处理系统,并且更具体地涉及处理系统中的高速缓存一致性。
背景技术
通常,存储器中处理器(即,存储器中处理或近存储器附处理)技术通过将处理元件与存储器(例如,随机存取存储器)相结合来提高数据密集型应用的能量效率和性能。在异构系统架构框架内结合存储器中处理并将常规编程模型扩展到那些系统处理器需要高速缓存一致性。高级处理器中存储器设计将复杂的处理引擎与其自己的高速缓存层次结构相结合。然而,为了正确操作,系统应当维持那些高速缓存与主机处理器(即,主处理器)的高速缓存之间的一致性。即使是简单的、无高速缓存的存储器中处理器设计也必须确保主机高速缓存与在存储器中处理器中处理的数据之间的一致性。
用于在包括存储器中处理器的系统中提供数据一致性的常规技术可以不包括硬件支持,而是可能需要软件来协调主机与存储器中处理器之间的高速缓存一致性。这种解决方案需要复杂的编程。其他技术扩展了现有的高速缓存一致性解决方案以包含任何存储器中处理器设计。将需要在系统中的所有处理器之间集成的传统高速缓存一致性解决方案扩展到存储器中处理器可能是不切实际的,因为它要求主机上的高速缓存一致性实现方式知道该系统包括多少存储器装置(即,存储器中处理器装置)并将系统设计限制为特定版本或类型的主机处理器,这限制了设计互操作性和可扩展性。另外,由于高速缓存一致性协议设计是复杂的,因此这种设计难以验证和确认,从而导致对现有的、经证明的主机高速缓存一致性协议的任何改变都是不可取的。不需要对现有的一致性协议进行任何修改的其他提出的存储器中处理器高速缓存一致性方案不允许常见的使用场景,诸如读共享(即,在主机和存储器中处理器这两者中缓存只读数据)。
存储器中处理器架构的又其他高速缓存一致性规定不考虑存储器中处理器装置的高速缓存,并且依赖于扩展主机端高速缓存一致性技术以确保主机高速缓存保持一致,因为存储器中处理器装置修改了数据。这样的技术要求存储器中处理器装置使用符合主机的高速缓存行大小和协议。另外,这些规定可能需要存储一个或多个专用高速缓存一致性状态位以及存储器(例如,动态随机存取存储器(DRAM))中的每个高速缓存行,这需要专门的存储器模块并且可能会妨碍使用现成的存储器部件。因此,需要用于实施用于结合存储器中处理器装置的系统的高速缓存一致性的改进技术。
发明内容
在本发明的至少一个实施方案中,一种系统包括存储器中处理器。该存储器中处理器包括影子目录存储装置,其被配置为存储常驻在该存储器中处理器中的数据块的桥接一致性状态。桥接一致性状态指示存储在该存储器中处理器外部的数据块的任何副本的状态。该存储器中处理器包括桥接协议转换逻辑,其被配置为在该存储器中处理器的第一高速缓存一致性协议与主机处理器的第二高速缓存一致性协议之间转换一致性消息。该第二高速缓存一致性协议与该第一高速缓存一致性协议不同。该存储器中处理器包括桥接协议控制逻辑,其被配置为使用一致性消息和影子目录存储装置的内容来维持存储器中处理器的存储器的数据一致性。该存储器中处理器可以包括集成电路管芯堆叠。该存储器中处理器的存储器可以包括在集成电路管芯堆叠的多个存储器集成电路管芯中。该桥接协议控制逻辑和该桥接协议转换逻辑可以包括在集成电路管芯堆叠的逻辑集成电路管芯中。该第二高速缓存一致性协议可以使用的块大小与该第一高速缓存一致性协议的块大小不同。该存储器中处理器可以包括对应处理器的至少一个高速缓存。该至少一个高速缓存可以位于该存储器中处理器的一致性域内。该至少一个高速缓存可以是直写高速缓存,并且该数据块的桥接一致性状态可以是无主机副本状态、主机读状态和主机写状态中的一者。该至少一个高速缓存可以是回写式高速缓存,并且该数据块的桥接一致性状态可以是无主机副本状态、主机读状态、主机写状态和存储器中处理器修改状态中的一者。该存储器中处理器可以包括在该存储器中处理器的一致性域之外的存储器端高速缓存。该桥接协议控制逻辑可以被配置为响应于对数据块的存储器访问而检查存储在存储器端高速缓存中的数据块的任何副本的状态。该存储器中处理器可以包括存储器中处理器目录,其被配置为存储在对应处理器的至少一个高速缓存内存储的数据块的存储器中处理器一致性状态。该存储器中处理器可以包括存储器中处理器内一致性控制器,其被配置为使用存储器中处理器目录的内容来维持存储在至少一个高速缓存中的数据块的数据一致性。该系统可以包括耦合到该存储器中处理器的主机处理器。该主机处理器可以包括主机桥接转换逻辑,其被配置为在存储器中处理器的第一高速缓存一致性协议与主机处理器的第二高速缓存一致性协议之间转换一致性消息。该主机处理器还可以包括存储器端高速缓存,其在该主机的一致性域之外并且在该存储器中处理器的一致性域之外。该影子目录存储器可以捕获存储在存储器端高速缓存中的数据块的任何副本的状态。该主机处理器还可以包括:主机目录,其被配置为存储在主机处理器内所存储的主机副本数据块的主机一致性状态;和主机内一致性控制逻辑,其被配置为使用主机目录维持常驻在主机处理器中的主机副本数据块的数据一致性。
在本发明的至少一个实施方案中,一种方法包括在影子目录中存储常驻在存储器中处理器的存储器中的数据块的桥接一致性状态。桥接一致性状态指示存储在该存储器中处理器外部的数据块的任何副本的状态。该方法包括在该存储器中处理器的第一高速缓存一致性协议与主机处理器的第二高速缓存一致性协议之间转换一致性消息。该第二高速缓存一致性协议与该第一高速缓存一致性协议不同。该方法包括使用一致性消息和影子目录的内容来维持存储器中处理器的存储器的数据一致性。该第二高速缓存一致性协议可以使用的块大小与该第一高速缓存一致性协议的块大小不同。维持存储器中处理器的存储器的数据一致性可以包括响应于对数据块的访问而更新数据块的桥接一致性状态。维持存储器中处理器的存储器的数据一致性可以包括维持存储器中处理器的处理器与存储器中处理器的存储器的至少一个高速缓存的一致性。该至少一个高速缓存可以位于该存储器中处理器的一致性域内。该方法可以包括响应于对存储器中处理器的存储器的访问而检查存储器中处理器的存储器端高速缓存。该方法可以包括实施从存储器中处理器的一致性域中的高速缓存到存储器中处理器的存储器端高速缓存的直写高速缓存策略。该影子目录中的数据块的桥接一致性状态可以是无主机副本状态、主机读状态和主机写状态中的一者。该方法可以包括实施从存储器中处理器的一致性域中的高速缓存到存储器中处理器的存储器端高速缓存的回写式高速缓存策略。该影子目录中的数据块的桥接一致性状态可以是无主机副本状态、主机读状态、主机写状态和存储器中处理器修改状态中的一者。维持存储器中处理器的存储器的数据一致性可以包括响应于对数据块的存储器访问而生成一致性消息。该方法可以包括存储在对应处理器的至少一个高速缓存内存储的数据块的存储器中处理器一致性状态。该方法可以包括使用存储器中处理器目录的内容来维持常驻在至少一个高速缓存中的数据块的数据一致性。该方法可以包括存储在所述主机处理器内所存储的主机副本数据块的主机一致性状态。该方法可以包括使用主机目录来维持常驻在主机处理器中的主机副本数据块的数据一致性。
在本发明的至少一个实施方案中,一种设备包括主机处理器。该主机处理器包括主机桥接转换逻辑,其被配置为在存储器中处理器的第一高速缓存一致性协议与主机处理器的第二高速缓存一致性协议之间转换一致性消息。该第二高速缓存一致性协议与该第一高速缓存一致性协议不同。该主机处理器可以包括主机目录,其被配置为存储与常驻在存储器中处理器中的数据块的主机副本(存储在主机内)对应的主机一致性状态。该主机处理器可以包括主机内一致性控制逻辑,其被配置为使用主机目录来维持常驻在该主机处理器中的数据块的数据一致性。该第二高速缓存一致性协议可以使用的块大小与该第一高速缓存一致性协议的块大小不同。
附图说明
通过参考附图,可以更好地理解本发明,并且本发明的众多目的、特征和优点对于所属领域技术人员而言是显而易见的。
图1示出了包括存储器中处理器装置的示例性处理系统的功能框图。
图2示出了示例性存储器中处理器的功能框图。
图3示出了符合本发明的至少一个实施方案的主机处理器和存储器中处理器之间的示例性高速缓存一致链路的功能框图。
图4示出了符合本发明的至少一个实施方案的多个主机和各种存储器中处理器装置之间的示例性高速缓存一致链路的功能框图。
图5示出了包括示例性存储器中处理器高速缓存组织的示例性存储器中处理器的功能框图。
图6示出了符合本发明的至少一个实施方案的主机处理器和存储器中处理器之间具有第一高速缓存协议的示例性高速缓存一致性桥接协议的状态图。
图7示出了符合本发明的至少一个实施方案的主机和存储器中处理器之间具有第二高速缓存协议的示例性高速缓存一致性桥接协议的状态图。
在不同附图中使用相同的附图标记指示类似或相同的项目。
具体实施方式
一种高速缓存一致性桥接协议提供主机处理器的高速缓存一致性协议与存储器中处理器的高速缓存一致性协议之间的接口,由此解耦主机处理器和存储器中处理器的一致性机制。高速缓存一致性桥接协议要求对现有主机处理器高速缓存一致性协议进行有限的改变。高速缓存一致性桥接协议可以用于促进由不同供应商设计的主机处理器与存储器中处理器装置之间的互操作性,并且主机处理器和存储器中处理器装置这两者都可以实施每个处理器内的计算单元之间的一致性技术。高速缓存一致性桥接协议可以支持的高速缓存一致性许可的粒度与主机处理器和/或存储器中处理器的高速缓存一致性协议所使用的高速缓存一致性许可的粒度不同。高速缓存一致性桥接协议使用影子目录,该影子目录维持状态信息,该状态信息指示数据副本的聚合视图,该数据副本高速缓存在包含该数据的存储器中处理器外部的系统中。相反,常规的一致性协议跟踪处理器中的本地数据副本的状态。
存储器中处理器可以被实施为一个或多个存储器管芯内的处理逻辑,或者被实施为与一个或多个存储器管芯堆叠在一起的单独逻辑管芯。参考图1,系统100包括主机110和内插器112上的四个存储器中处理器装置。存储器中处理器102包括处理逻辑104,该处理逻辑可以包括在与多个存储器管芯106堆叠在一起的单独管芯中。处理逻辑104可以包括至少一个加速处理单元(即,包括中央处理单元和图形处理单元的高级处理单元)、中央处理单元、图形处理单元或其他处理器,并且可以包括协处理器或固定功能处理硬件。
图2示出了示例性处理逻辑104,其包括高级处理单元,该高级处理单元包括图形处理单元(例如,计算单元群集206),该图形处理单元包括多个图形处理单元计算单元214。高级处理单元可以包括中央处理单元群集208,其包括多个中央处理单元核心216。高级处理单元还可以包括固定功能硬件210,其包括多个硬件加速器218。每个处理器存储器102内的部件(例如,每个图形处理单元计算单元214和处理逻辑104的每个中央处理单元核心216)可以实施它们之间的硬件高速缓存一致性。
返回参考图1,主机110可以包括多个处理核心,并且可以实施那些处理核心之间的硬件高速缓存一致性。主机110可以经由多插槽实施接口(例如,一致性超传输(HyperTransport))支持多个主机装置之间的高速缓存一致性。扩展常规的高速缓存一致性策略中的任一个以包含存储器中处理器要求主机和存储器中处理器实施相同的高速缓存一致性协议。由于不同供应商具有不同的现有一致性协议,因此这要求通过阻止来自不同供应商的主机和存储器中处理器设计之间的互操作性来限制存储器中处理器设计的商业机会。另外,支持具有大量存储器的高性能系统(其中每个存储器都可以包含存储器中处理器)要求主机和存储器中处理器高速缓存一致性协议可扩展到可变数量(即,大于没有存储器中处理器装置的系统中并且大于常规系统中的数量)的一致性节点,从而大幅增加了常规技术的一致性状态跟踪开销。
高速缓存一致性桥接协议提供现有的高速缓存一致性协议(例如,主机高速缓存一致性协议与存储器中处理器缓存一致性协议)之间的接口。高速缓存一致性桥接协议使用主机端支持,其可以包括在任意数量的存储器中处理器装置的系统中为任何特定高速缓存行仅添加单个潜在共享装置,从而导致仅开销增加可忽略不计并且所需要的有限附加状态与系统中的存储器中处理器装置的数量无关。高速缓存一致性桥接协议包括由单个附加潜在共享器对主机端上的所有部件的存储器中处理器端表示,从而导致存储器中处理器的仅开销增加可忽略,以及限制所需要的附加状态的数量,这与系统中的主机的本质和数量无关。
高速缓存一致性桥接协议包括在存储器中处理器上实施的桥接转换单元和桥接协议控制器。高速缓存一致性桥接协议包括存储在存储器中处理器的影子目录。影子目录存储用于以向外的角度跟踪高速缓存一致性的状态信息,即,代替跟踪存储器中处理器上的高速缓存副本的状态的是,影子目录存储跟踪数据元素的所有副本的聚合视图的桥接一致性状态,该数据元素高速缓存在其中常驻有该数据元素的存储器中处理器外部。影子目录存储可以包含在主机目录中但是从存储器中处理器的角度观察的信息子集。在至少一个实施方案中,高速缓存一致性桥接协议使用已由常规的高速缓存一致性协议生成的高速缓存一致性消息的子集,因此限制修改以适应有可能在主机上和在存储器中处理器内实施的先前开发的和确认的高速缓存一致性协议。
参考图3,在高速缓存一致性桥接协议的至少一个实施方案中,主机内一致性控制器302向存储器中处理器102生成高速缓存一致性消息,就好像存储器中处理器102只是主机一致性协议中的另一个节点一样。桥接转换单元304可以将那些高速缓存一致性消息转换为桥接协议一致性消息。在存储器中处理器102中,桥接转换单元316可以将所接收的高速缓存一致性消息从主机一致性协议或中间桥接一致性协议转换为桥接协议控制逻辑322可用的形式。在相反方向上,桥接协议控制逻辑322基于影子目录324的内容生成符合主机一致性协议或主机的中间桥接一致性协议的高速缓存一致性消息,来自存储器中处理器内一致性控制器320的消息可以基于目录326的内容,和/或由存储器中处理器102接收或生成的存储器请求。
桥接转换单元316将从桥接协议控制逻辑322接收的那些高速缓存一致性消息转换为桥接协议消息或主机一致性控制器协议消息。主机110的桥接转换单元304可以将高速缓存一致性消息从桥接协议转换为主机协议。虽然示为单独的逻辑,但是桥接转换单元304可以被实施为存储器接口控制器308的组成部分,并且桥接转换单元316可以被实施为存储器接口控制器314的组成部分。在高速缓存一致性桥接协议的至少一个实施方案中,不使用中间高速缓存一致性消息,并且桥接转换单元304和316基于预定协议格式将高速缓存一致性消息直接转换为存储器中处理器高速缓存一致性协议消息或主机高速缓存一致性协议消息,该预定协议格式可以在重置系统时或响应于其他用户配置而配置。
桥接协议控制逻辑322观察存储器中处理器内一致性消息,并且在一些情况下通过主机110干预对存储器中处理器102的一个或多个存储器通道的存储器访问(例如,高速缓存缺失)。由于桥接协议控制逻辑322在存储器中处理器102上实施,因此桥接协议控制逻辑322在不生成附加的装置外流量的情况下具有对存储器中处理器102的存储器通道内发生的所有访问(在存储器中处理器102内生成的那些访问以及由主机110或其他装置在外部生成的那些访问)的可见性。以下进一步描述桥接协议控制逻辑322的功能。
参考图4,包括高速缓存一致性桥接协议的示例性系统包括多个存储器中处理器装置和主机410和主机412,它们由主机到主机一致性链路411耦合。存储器中处理器402和406分别通过高速缓存一致性桥接协议链路403和高速缓存一致性桥接协议链路405耦合到主机410。存储器中处理器404和存储器中处理器408分别通过高速缓存一致性桥接协议链路407和高速缓存一致性桥接协议链路409耦合到主机412。如本文所提到的,关于特定存储器地址,归属存储器中处理器是存储该特定地址的数据的存储器中处理器。如本文所提到的,归属节点是附接到用于该特定地址的归属存储器中处理器的主机。可以分布主机一致性协议目录,使得用于一致性目录目的的归属节点是附接到保存数据的存储器中副本的存储器中处理器的节点。如本文所提到的,数据块是主机与存储器中处理器之间的一致性跟踪的粒度。数据块是主机内和主机到主机一致性跟踪的粒度的整数倍。在包括高速缓存一致性桥接协议的系统的至少一个实施方案中,主机410、主机412、存储器中处理器402、存储器中处理器404、存储器中处理器406和存储器中处理器408实施写分配高速缓存一致性策略(即,在写入高速缓存行的任何部分之前,主机或存储器中处理器将该高速缓存行从存储器读取到对应的高速缓存中)。
如上面参考图3所述,高速缓存一致性桥接协议使用主机端支持,其可以包括将仅单个共享装置添加到主机目录328。主机目录328中的单个共享装置可以用于从主机一致性协议的角度跟踪归属存储器中处理器的高速缓存一致性状态。返回参考图4,例如,对于存储器中处理器402是归属存储器中处理器并且在归属节点主机410上的主机一致性目录中被跟踪的高速缓存行,主机410上的主机一致性目录跟踪存储器中处理器402中的高速缓存行的高速缓存一致性状态。每个存储器中处理器中的影子目录维持可能存在于系统中其他位置的任何数据块的副本的聚合视图。在至少一个实施方案中,对于其归属存储器中处理器是存储器中处理器402的高速缓存块,存储器中处理器402上的影子目录维持可能存在于主机410或主机412的高速缓存中的高速缓存行的任何副本的聚合视图。
通常,存储器中处理器高速缓存可以是直写高速缓存或回写式高速缓存。如果存储器中处理器高速缓存是直写高速缓存,则不需要响应于主机进行的存储器访问而检查存储器中处理器高速缓存。如果存储器中处理器高速缓存是回写式高速缓存,则维修主机存储器访问包括检查存储器中处理器高速缓存以获取最新数据。例如,参考图5,一级高速缓存是存储器互连204的处理器端上的一致性域中的直写高速缓存,而二级高速缓存是通向存储器的路径中、在存储器互连204的处理器端上的一致性域外部的存储器端高速缓存。主机进行的每次存储器访问都会检查存储器中处理器高速缓存一致性域外部的存储器端高速缓存(例如,二级高速缓存)。在其他实施方案中,处理逻辑104不包括高速缓存,且因此不实施存储器中处理器内一致性。
返回参考图3,每个存储器中处理器102包括桥接协议控制逻辑322,其跟踪存储在该存储器中处理器102的存储器内的每个数据块的桥接一致性状态。该桥接一致性状态存储在影子目录324中。桥接协议控制逻辑322控制影子目录324中的状态转换并存储对应的指示符。参考图3和图6,在至少一个实施方案中,对于存储器中处理器中的每个数据块,影子目录324存储以下桥接一致性状态的指示符:无主机副本(I)状态602、主机读(S)状态604和主机写(M)状态606。状态图对应于存储器中处理器102在存储器中处理器高速缓存一致性域之外具有直写一级高速缓存和存储器端(例如,二级)高速缓存。桥接协议控制逻辑322响应于对存储器的每次访问(例如,来自存储器中处理器102或来自主机110)来检查存储器端高速缓存。无主机副本(I)状态602指示桥接高速缓存一致性域中的任何主机都没有将数据块的任何部分存储在高速缓存中。该桥接一致性状态类似于常规的MSI、MESI、MOESI高速缓存一致性协议中的无效状态,其中M表示已修改,O表示所有,E表示独占,S表示共享,而I表示无效。主机读(S)状态604指示桥接一致性域中的主机中的一个或多个已读取数据块的某个部分并且可能在其高速缓存中具有未修改的副本,但是尚未写入该数据块。该桥接一致性状态类似于MSI、MESI、MOESI高速缓存一致性协议中的共享状态。主机写(M)状态606指示桥接一致性域中的主机中的一个或多个具有数据块的独占所有权并且可能已写入该数据块的某个部分(例如,主机端核心具有在MSI高速缓存一致性协议的已修改状态、MESI高速缓存一致性协议中的修改状态或独占状态、或MOESI高速缓存一致性协议的已修改状态、所有状态或独占状态中的行的副本)。
由存储器中处理器102读取本地数据(即,与存储器中处理器102是归属存储器中处理器的存储器地址相关联的数据)和由存储器中处理器102写入本地数据分别由P.r和P.w指示,并且桥接协议控制逻辑322以影子目录324中的对应条目的相关状态转换进行响应。由主机110读取存储器中处理器数据和由主机110写入存储器中处理器数据分别由H.r和H.w指示,并且桥接协议控制逻辑322以影子目录324中的对应条目的相关状态转换进行响应。为了清楚起见,状态图中未示出中间状态和转换动作。
响应于对本地数据块的存储器中处理器读取访问(P.r),如果数据块在影子目录324中具有无主机副本(I)状态602或主机读(S)状态604,则桥接协议控制逻辑322不会在存储器中处理器之外生成任何一致性消息,并且保持在当前状态、无主机副本(I)状态602或主机读(S)状态604。如果数据块在影子目录中具有主机写(M)状态606,则桥接协议控制逻辑322生成对附接到存储器中处理器的归属节点的读取一致性请求,并且将一致性状态转变(704)到主机读(S)状态604。由于该主机也是归属节点,因此它将与主机的一致性协议集成,就好像它是任何其他读取请求一样。在继续读取之前,存储器中处理器必须等待直到一致性请求完成,接收一致性确认,并且更新的数据可用。
响应于对本地数据的存储器中处理器写入访问(P.w),如果数据块在影子目录324中具有无主机副本(I)状态602,则桥接协议控制逻辑322不会在存储器中处理器之外生成任何一致性消息,并且保持在当前状态、无主机副本(I)状态602。如果数据块在影子目录324中具有主机读(S)状态604,则桥接协议控制逻辑322生成对主机的无效请求,并且在继续写入之前等待完成信号,并转变(702)到无主机副本(I)状态602。如果数据块在影子目录324中具有主机写(M)状态606,则桥接协议控制逻辑322生成无效请求,等待修改的数据,且然后恢复状态转变(707)到无主机副本(I)状态602。
响应来自主机端的可能源自主机或通过主机访问存储器的另一个部件的读访问(H.r),如果数据块在影子目录324中具有无主机副本(I)状态602或主机写(M)状态606,则桥接协议控制逻辑322将状态转变(分别为702或704)到主机读(S)状态604。注意,在主机写(M)状态606的同时来自主机端的附加读请求意味着主机高速缓存中的修改副本(其导致主机写(M)状态606)已经被主机端高速缓存一致性协议降级。如果数据块在影子目录324中具有主机读(S)状态604,则桥接协议控制逻辑322不进行状态改变。
响应于从主机端读取所有权访问(H.w),如果数据块在影子目录中具有无主机副本(I)状态602或主机读(S)状态604,则桥接协议控制逻辑322将状态转变(分别为706或711)到主机写(M)状态606。另外,桥接协议控制逻辑322使存储器中处理器高速缓存一致性域中的任何高速缓存(例如,一级高速缓存)中的该数据块的任何副本无效,并且用所请求的数据来响应于对所有权访问的读取。如果数据块在影子目录324中具有主机写(M)状态606,则桥接协议控制逻辑322不对状态进行改变,并且用所请求的数据响应于读请求。
归属节点可以执行附加的主机一致性操作。例如,对于MSI、MESI和MOESI高速缓存一致性协议中从I或S到E、M或O的每个状态转变(或其他协议中的等效转变),归属节点必须生成对存储器中处理器(例如,存储器中处理器102)的转变为M请求。这可以通过修改主机协议来触发,以假设默认情况下所有未分配的行在存储器中处理器上处于主机读(S)状态604。转变为M请求可以与写入前的读取请求(用于分配)结合,前提是存储器接口协议支持这样做。在至少一个实施方案中,归属节点响应于从整个主机端高速缓存一致性域中逐出的最后一个高速缓存的副本而生成对存储器中处理器的转变为I请求。该请求可以与从主机端最终逐出时清除脏数据(dirty data)一起生成。该请求生成可能影响具有存储器端最后一级高速缓存的主机,如下面进一步讨论的。在其他实施方案中,主机不生成这样的请求。
返回参考图5,在至少一个实施方案中,处理器逻辑104包括处理器端(例如,GPUCU 214、CPU核216和硬件加速器218的一级高速缓存)回写式高速缓存。结果,每个数据块的桥接一致性状态还指示数据块的任何部分是否已被其处理器端高速缓存中的存储器中处理器102使用附加状态(存储器中处理器修改(P)状态)进行了修改。图7示出了用于桥接协议控制逻辑322更新为影子目录324中的桥接一致性状态信息的修改状态图。如果数据块在影子目录324中具有存储器中处理器修改(P)状态608,则响应于来自存储器中处理器外部的任何读或写访问,桥接协议控制逻辑322提供来自存储器中处理器高速缓存中的更新的数据,如果需要(如果外部请求是针对独占或写权限),使任何本地副本无效,并且分别经由转变710或转变717适当地修改数据块的桥接一致性状态。在至少一个实施方案中,当从高速缓存中逐出存储器中处理器的处理器端高速缓存中的特定数据块的修改副本(P.e)时,特定数据块的状态转变为影子目录324中的无主机副本(I)状态602(715)。
在至少一个实施方案中,归属节点响应于从整个主机端高速缓存一致性域中逐出的特定数据块的最后一个高速缓存的副本而生成对归属存储器中处理器的转变为I请求。如果特定数据块在影子目录324中具有主机读(S)状态604或主机写(M)状态606,则它转变到影子目录324中的无主机副本(I)状态602。该请求可以与最终逐出时清除脏数据一起生成。该请求生成可能影响具有存储器端最后一级高速缓存的主机。这种请求在高速缓存一致性桥接协议中是可选的(并且在图7中未示出),并且在其他实施方案中,归属节点不会生成这样的请求。
上述高速缓存一致性桥接协议与一致性跟踪的粒度无关。高速缓存一致性桥接协议可以具有高速缓存行粒度或者可以具有更粗的粒度(例如,区域一致性,其中该区域包括一个以上的高速缓存行)。因此,具有更粗粒度的高速缓存一致性桥接协议实现方式需要较少的状态存储和较小的影子目录。本文描述的高速缓存一致性桥接协议也可以用可变粒度来实施。例如,影子目录的一部分可以用于跟踪具有更粗粒度的数据块,而影子目录的另一个部分可以用于跟踪具有更细粒度的数据块。
在高速缓存一致性桥接协议的至少一个实施方案中,主机一致性协议的一致性粒度不同于高速缓存一致性桥接协议的一致性粒度和存储器中处理器的一致性粒度。例如,以比单独的高速缓存行更粗的粒度(例如,4KB)跟踪一致性许可的区域一致性可以大幅降低一致性流量(例如,主机与存储器中处理器之间的一致性流量)。因此,桥接一致性协议可以粗粒度(例如,4KB)操作,而现有的主机端一致性协议继续以常规的高速缓存行粒度(例如,64B)操作。另外,对主机一致性协议和存储器中处理器高速缓存一致性协议的不同一致性粒度的高速缓存一致性桥接协议的支持促进了来自不同供应商的部件(例如,具有不同高速缓存行大小的产品)之间的互操作性。为了提高效率,系统内的较粗的一致性粒度是该系统内更精细的一致性粒度的倍数,这是典型的,因为常规系统使用的是2的幂次个字节的一致性粒度。
在至少一个实施方案中,桥接转换单元将高速缓存一致性请求从粗粒度一致性许可请求(例如,来自存储器中处理器的4KB区域请求)转换为更细粒度一致性许可请求(例如,通向主机的64B缓存行)。该转换跨越粗请求的整个地址范围(例如,响应于来自存储器中处理器的单个4KB请求,对主机的64个64B请求)并且将请求发送到接收端上的对应的一致性控制器。然后,接收桥接转换单元在向请求桥接转换单元发信号表示完成之前收集对该集合内的所有请求的响应。
在至少一个实施方案中,发送桥接转换单元或接收桥接转换单元从细粒度许可请求(例如,来自主机的64B请求)转换为跟踪粗许可(例如,存储器中处理器处的4KB区域)的响应者。发送桥接转换单元或接收桥接转换单元将请求转换为包含原始请求的地址范围的粗粒度区域。注意,请求者(例如,主机)可能不知道它已接收到比它请求的区域更大的区域的一致性许可,并且可能继续在相同区域内发出附加请求。为了降低低效率,发送桥接转换单元可以维持最近接收的区域许可的高速缓存。如果来自相同请求者的后续细粒度请求与该区域许可高速缓存中的条目匹配,则发送桥接转换单元可以发信号通知完成而不向其他实体发起请求。
在以细粒度生成关于一致性降级的消息的系统中,如上所述,发送桥接转换单元可以丢弃降级消息,因为它们仅用于增强性能。在其他实施方案中,在细粒度下,发送桥接转换单元收集降级消息,直到在将降级传送给以粗粒度跟踪一致性的接收者之前降级连续粗粒区域。发送桥接转换单元可以传送细粒度降级并且期望接收桥接转换单元将它们聚合成粗粒区域。生成对粗粒区域的其他部分的降级请求的发送桥接转换单元可以强制完全粗粒区域的降级并传送区域降级。在至少一个实施方案中,发送桥接转换单元可以根据基于先前存储器请求的启发法来执行上述一个或多个选项。
返回参考图3,影子目录324可以使用单独的存储结构(例如,单独的管芯中的存储器中处理器102中或者与分布成与存储器中处理器102堆叠在一起的SRAM)来实施以存储存储器中处理器内的每个数据块的桥接一致性状态。该存储结构可以物理地分布在多个存储器通道上,并且存储器中处理器的每个存储器通道可以维持单独的表,这可以减轻对该结构的带宽限制。
在至少一个实施方案中,影子目录324与存储器集成,并且将每个数据块的桥接一致性状态存储在存储数据块的同一行存储器的位的子集中,例如,存储在允许定制DRAM以包含足够的附加位并且不需要非标准寻址支持的设计中。在至少一个实施方案中,影子目录324位于专用于与数据块(例如,存储器空间的最高地址范围)分开地存储桥接一致性状态的每个存储器通道的存储器空间的子集中。可以设计地址映射,使得特定存储器地址的高速缓存一致性状态总是常驻在除包含特定存储器地址的数据的通道之外的通道上以减少DRAM页面冲突。如果地址空间以相对较细的颗粒(即,远小于单个存储器通道的容量的粒度)分布在存储器中处理器装置之间以及存储器中处理器之间的通道中,则该映射技术可以引入相对较少的特殊寻址支持。使用DRAM和所描述的存储器空间可选方案的子集实施的影子目录可以用SRAM高速缓存来增强,以存储最近访问的影子目录条目以减少访问和修改影子目录状态所需的DRAM访问。
从存储器中处理器的角度来看,未包括在主机端一致性域中的主机的存储器端最后一级缓存被视为主机的一部分。高速缓存一致性桥接协议在上述影子目录跟踪方案中默认捕获高速缓存在主机上的数据块的状态。如果存储器端缓存是唯一包含该数据的唯一高速缓存(即,主机目录跟踪的其他高速缓存中不存在数据副本),则高速缓存一致性桥接协议可以修改存储器端最后一级高速缓存,就好像它是响应于来自存储器中处理器的高速缓存一致性请求(包括对来自主机高速缓存的修改数据的请求)的任何其他主机高速缓存一样。从主机角度来看,存储器端高速缓存不需要高速缓存一致性桥接协议的特殊处理。然而,如果如上所述向存储器中处理器发信号通知从目录跟踪的主机高速缓存中逐出,则这些消息应适当地考虑主机存储器端高速缓存中的数据。如果存储器端高速缓存中的状态与这些消息不一致,则这些消息不会将降级传送到存储器中处理器。可选地,高速缓存一致性桥接协议响应于从存储器端最后一级高速缓存中逐出数据块而生成这样的消息。
因此,已经描述了高速缓存一致性桥接协议。本文描述的结构可以使用在处理器上执行的软件(包括固件)或者通过软件与硬件的组合来实施。如本文所述,软件可以编码在至少一个有形(即,非暂时性)计算机可读介质中。如本文所提到的,有形计算机可读介质包括至少磁盘、磁带或其他磁性、光学或电子存储介质。本文阐述的本发明的描述是说明性的,而并不意图限制如所附权利要求中阐述的本发明的范围。例如,虽然已经在其中存储器中处理器装置包括高速缓存的实施方案中描述了本发明,但是所属领域技术人员将明白的是,本文的教导可以与不包括高速缓存但要求主机高速缓存与存储器中处理器访问一致的简易存储器中处理器装置一起利用。在不脱离所附权利要求中阐述的本发明的范围的情况下,可以基于本文阐述的描述对本文公开的实施方案做出改变和修改。

Claims (15)

1.一种系统,其包含:
存储器中处理器,其包含:
影子目录存储装置,其被配置为存储常驻在所述存储器中处理器的存储器中的数据块的桥接一致性状态,所述桥接一致性状态指示存储在所述存储器中处理器外部的所述数据块的任何副本的状态;
桥接协议转换逻辑,其被配置为在所述存储器中处理器的第一高速缓存一致性协议与主机处理器的第二高速缓存一致性协议之间转换一致性消息,所述第二高速缓存一致性协议与所述第一高速缓存一致性协议不同;和
桥接协议控制逻辑,其被配置为使用所述一致性消息和所述影子目录存储装置的内容来维持所述存储器中处理器的所述存储器的数据一致性。
2.如权利要求1所述的系统,其中所述第二高速缓存一致性协议使用的块大小与所述第一高速缓存一致性协议的块大小不同。
3.如权利要求1所述的系统,其中所述存储器中处理器还包含:
集成电路管芯堆叠,所述存储器中处理器的所述存储器包括在所述集成电路管芯堆叠的多个存储器集成电路管芯中,所述桥接协议控制逻辑和所述桥接协议转换逻辑包括在所述集成电路管芯堆叠的逻辑集成电路管芯中;和
对应处理器的至少一个高速缓存,所述至少一个高速缓存位于所述存储器中处理器的一致性域内。
4.如权利要求1、2或3所述的系统,其中所述至少一个高速缓存是直写高速缓存,并且所述数据块的所述桥接一致性状态是无主机副本状态、主机读状态和主机写状态中的一者。
5.如权利要求1、2或3所述的系统,其中所述至少一个高速缓存是回写式高速缓存,并且所述数据块的所述桥接一致性状态是无主机副本状态、主机读状态、主机写状态和存储器中处理器修改状态中的一者。
6.如权利要求1、2或3所述的系统,其中所述存储器中处理器还包含:
所述存储器中处理器的一致性域之外的存储器端高速缓存,其中所述桥接协议控制逻辑被配置为响应于对所述数据块的存储器访问而检查存储在所述存储器端高速缓存中的所述数据块的任何副本的状态;
存储器中处理器目录,其被配置为存储在所述对应处理器的所述至少一个高速缓存内存储的所述数据块的存储器中处理器一致性状态;和
存储器中处理器内一致性控制器,其被配置为使用所述存储器中处理器目录的内容来维持存储在所述至少一个高速缓存中的所述数据块的数据一致性。
7.如权利要求1、2或3所述的系统,其还包含:
耦合到所述存储器中处理器的所述主机处理器,所述主机处理器包含:
主机桥接转换逻辑,其被配置为在所述存储器中处理器的所述第一高速缓存一致性协议与所述主机处理器的所述第二高速缓存一致性协议之间转换一致性消息;
存储器端高速缓存,其在所述主机的一致性域之外并且在所述存储器中处理器的一致性域之外,其中所述影子目录存储装置捕获存储在所述存储器端高速缓存中的所述数据块的任何副本的状态;
主机目录,其被配置为存储在所述主机处理器内存储的主机副本数据块的主机一致性状态;和
主机内一致性控制逻辑,其被配置为使用所述主机目录来维持常驻在所述主机处理器中的所述主机副本数据块的数据一致性。
8.一种方法,其包括:
在影子目录中存储常驻在存储器中处理器的存储器中的数据块的桥接一致性状态,所述桥接一致性状态指示存储在所述存储器中处理器外部的所述数据块的任何副本的状态;和
在所述存储器中处理器的第一高速缓存一致性协议与主机处理器的第二高速缓存一致性协议之间转换一致性消息,所述第二高速缓存一致性协议与所述第一高速缓存一致性协议不同;
使用所述一致性消息和所述影子目录的内容来维持所述存储器中处理器的所述存储器的数据一致性。
9.如权利要求8所述的方法,其中所述第二高速缓存一致性协议使用的块大小与所述第一高速缓存一致性协议的块大小不同。
10.如权利要求8或9所述的方法,其中维持所述存储器中处理器的所述存储器的数据一致性包括响应于对所述数据块的访问而更新所述数据块的所述桥接一致性状态。
11.如权利要求8或9所述的方法,其中维持所述存储器中处理器的所述存储器的数据一致性包括:
维持所述存储器中处理器的处理器与所述存储器中处理器的所述存储器的至少一个高速缓存的一致性,所述至少一个高速缓存位于所述存储器中处理器的一致性域内。
12.如权利要求8或9所述的系统,其还包含:
响应于对所述存储器中处理器的所述存储器的访问而检查所述存储器中处理器的存储器端高速缓存;和
实施从所述存储器中处理器的一致性域中的高速缓存到所述存储器中处理器的所述存储器端高速缓存的直写高速缓存策略,其中所述影子目录中的所述数据块的所述桥接一致性状态是无主机副本状态、主机读状态和主机写状态中的一者。
13.如权利要求8或9所述的系统,其还包含:
实施从所述存储器中处理器的一致性域中的高速缓存到所述存储器中处理器的存储器端高速缓存的回写式高速缓存策略,其中所述影子目录中的所述数据块的所述桥接一致性状态是无主机副本状态、主机读状态、主机写状态和储存器中处理器修改状态中的一者。
14.如权利要求8或9所述的方法,其中维持所述存储器中处理器的所述存储器的数据一致性包括响应于对所述数据块的存储器访问而生成一致性消息。
15.如权利要求8或9所述的系统,其还包含:
存储在对应处理器的至少一个高速缓存内存储的所述数据块的存储器中处理器一致性状态;和
使用存储器中处理器目录的内容来维持常驻在所述至少一个高速缓存中的所述数据块的数据一致性;
存储在所述主机处理器内存储的主机副本数据块的主机一致性状态;和
使用主机目录来维持常驻在所述主机处理器中的所述主机副本数据块的数据一致性。
CN201780030262.4A 2016-05-31 2017-05-02 用于存储器中处理的高速缓存一致性 Active CN109154910B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/169,118 US10503641B2 (en) 2016-05-31 2016-05-31 Cache coherence for processing in memory
US15/169,118 2016-05-31
PCT/US2017/030586 WO2017209883A1 (en) 2016-05-31 2017-05-02 Cache coherence for processing in memory

Publications (2)

Publication Number Publication Date
CN109154910A true CN109154910A (zh) 2019-01-04
CN109154910B CN109154910B (zh) 2023-08-08

Family

ID=60418710

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780030262.4A Active CN109154910B (zh) 2016-05-31 2017-05-02 用于存储器中处理的高速缓存一致性

Country Status (6)

Country Link
US (1) US10503641B2 (zh)
EP (1) EP3465445B1 (zh)
JP (1) JP7160682B2 (zh)
KR (1) KR102442079B1 (zh)
CN (1) CN109154910B (zh)
WO (1) WO2017209883A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110059023A (zh) * 2019-04-04 2019-07-26 阿里巴巴集团控股有限公司 一种刷新级联缓存的方法、系统及设备
US10922236B2 (en) 2019-04-04 2021-02-16 Advanced New Technologies Co., Ltd. Cascade cache refreshing
CN115176237A (zh) * 2020-02-21 2022-10-11 斯法夫股份有限公司 具有混合回写和透写的数据高速缓存

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10866900B2 (en) * 2017-10-17 2020-12-15 Samsung Electronics Co., Ltd. ISA extension for high-bandwidth memory
US10474545B1 (en) 2017-10-31 2019-11-12 EMC IP Holding Company LLC Storage system with distributed input-output sequencing
US10365980B1 (en) * 2017-10-31 2019-07-30 EMC IP Holding Company LLC Storage system with selectable cached and cacheless modes of operation for distributed storage virtualization
KR20190075363A (ko) * 2017-12-21 2019-07-01 삼성전자주식회사 반도체 메모리 장치, 이를 포함하는 메모리 시스템 및 메모리 모듈
US11288195B2 (en) * 2019-03-22 2022-03-29 Arm Limited Data processing
US11126537B2 (en) 2019-05-02 2021-09-21 Microsoft Technology Licensing, Llc Coprocessor-based logging for time travel debugging
US11586369B2 (en) 2019-05-29 2023-02-21 Xilinx, Inc. Hybrid hardware-software coherent framework
CN111176582A (zh) * 2019-12-31 2020-05-19 北京百度网讯科技有限公司 矩阵存储方法、矩阵访问方法、装置和电子设备
US11467834B2 (en) * 2020-04-01 2022-10-11 Samsung Electronics Co., Ltd. In-memory computing with cache coherent protocol
KR20210154277A (ko) 2020-06-11 2021-12-21 삼성전자주식회사 메모리 모듈 및 그의 동작 방법
US11360906B2 (en) 2020-08-14 2022-06-14 Alibaba Group Holding Limited Inter-device processing system with cache coherency
KR20220032366A (ko) 2020-09-07 2022-03-15 삼성전자주식회사 가변적인 모드 설정을 수행하는 메모리 장치 및 그 동작방법
EP4024222A1 (en) 2021-01-04 2022-07-06 Imec VZW An integrated circuit with 3d partitioning
JP2023007601A (ja) * 2021-07-02 2023-01-19 株式会社日立製作所 ストレージシステム制御方法及びストレージシステム
US11989142B2 (en) 2021-12-10 2024-05-21 Samsung Electronics Co., Ltd. Efficient and concurrent model execution
US20230281128A1 (en) * 2022-03-03 2023-09-07 Samsung Electronics Co., Ltd. Cache-coherent interconnect based near-data-processing accelerator
US11809323B1 (en) * 2022-06-22 2023-11-07 Seagate Technology Llc Maintaining real-time cache coherency during distributed computational functions

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020087803A1 (en) * 2000-12-29 2002-07-04 Jones Phillip M. Apparatus for identifying memory requests originating on remote I/O devices as noncacheable
US6470429B1 (en) * 2000-12-29 2002-10-22 Compaq Information Technologies Group, L.P. System for identifying memory requests as noncacheable or reduce cache coherence directory lookups and bus snoops
US6751705B1 (en) * 2000-08-25 2004-06-15 Silicon Graphics, Inc. Cache line converter
US7167956B1 (en) * 2004-05-03 2007-01-23 Sun Microsystems, Inc. Avoiding inconsistencies between multiple translators in an object-addressed memory hierarchy
US20100228945A1 (en) * 2009-03-04 2010-09-09 Freescale Semiconductor, Inc. Access management technique with operation translation capability
CN103229152A (zh) * 2010-11-26 2013-07-31 国际商业机器公司 高速缓存一致性控制方法、系统和程序
US20140149681A1 (en) * 2012-11-27 2014-05-29 International Business Machines Corporation Coherent proxy for attached processor
US20140181417A1 (en) * 2012-12-23 2014-06-26 Advanced Micro Devices, Inc. Cache coherency using die-stacked memory device with logic die
US20140181414A1 (en) * 2012-12-21 2014-06-26 Advanced Micro Devices, Inc. Mechanisms to bound the presence of cache blocks with specific properties in caches
CN104969207A (zh) * 2012-10-22 2015-10-07 英特尔公司 高性能互连一致性协议

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0816474A (ja) * 1994-06-29 1996-01-19 Hitachi Ltd マルチプロセッサシステム
US5829034A (en) * 1996-07-01 1998-10-27 Sun Microsystems, Inc. Method and apparatus for a coherence transformer with limited memory for connecting computer system coherence domains
US6269428B1 (en) 1999-02-26 2001-07-31 International Business Machines Corporation Method and system for avoiding livelocks due to colliding invalidating transactions within a non-uniform memory access system
US6338123B2 (en) 1999-03-31 2002-01-08 International Business Machines Corporation Complete and concise remote (CCR) directory
US7177987B2 (en) 2004-01-20 2007-02-13 Hewlett-Packard Development Company, L.P. System and method for responses between different cache coherency protocols
US20050216637A1 (en) * 2004-03-23 2005-09-29 Smith Zachary S Detecting coherency protocol mode in a virtual bus interface
US7552236B2 (en) 2005-07-14 2009-06-23 International Business Machines Corporation Routing interrupts in a multi-node system
US7395376B2 (en) 2005-07-19 2008-07-01 International Business Machines Corporation Method, apparatus, and computer program product for a cache coherency protocol state that predicts locations of shared memory blocks
US7376799B2 (en) 2005-07-21 2008-05-20 Hewlett-Packard Development Company, L.P. System for reducing the latency of exclusive read requests in a symmetric multi-processing system
US7748037B2 (en) 2005-09-22 2010-06-29 Intel Corporation Validating a memory type modification attempt
US8539164B2 (en) * 2007-04-30 2013-09-17 Hewlett-Packard Development Company, L.P. Cache coherency within multiprocessor computer system
US7941613B2 (en) 2007-05-31 2011-05-10 Broadcom Corporation Shared memory architecture
US8082400B1 (en) 2008-02-26 2011-12-20 Hewlett-Packard Development Company, L.P. Partitioning a memory pool among plural computing nodes
US8176220B2 (en) 2009-10-01 2012-05-08 Oracle America, Inc. Processor-bus-connected flash storage nodes with caching to support concurrent DMA accesses from multiple processors
US8543770B2 (en) * 2010-05-26 2013-09-24 International Business Machines Corporation Assigning memory to on-chip coherence domains
US20120124297A1 (en) 2010-11-12 2012-05-17 Jaewoong Chung Coherence domain support for multi-tenant environment
US9753858B2 (en) 2011-11-30 2017-09-05 Advanced Micro Devices, Inc. DRAM cache with tags and data jointly stored in physical rows
GB2514024B (en) 2012-03-02 2020-04-08 Advanced Risc Mach Ltd Data processing apparatus having first and second protocol domains, and method for the data processing apparatus
US20140018141A1 (en) * 2012-07-11 2014-01-16 Sergey Anikin Method for expanding sales through computer game
US8922243B2 (en) 2012-12-23 2014-12-30 Advanced Micro Devices, Inc. Die-stacked memory device with reconfigurable logic
US9442852B2 (en) 2012-11-27 2016-09-13 International Business Machines Corporation Programmable coherent proxy for attached processor
US9235528B2 (en) 2012-12-21 2016-01-12 Advanced Micro Devices, Inc. Write endurance management techniques in the logic layer of a stacked memory
US9135185B2 (en) 2012-12-23 2015-09-15 Advanced Micro Devices, Inc. Die-stacked memory device providing data translation
US9244629B2 (en) 2013-06-25 2016-01-26 Advanced Micro Devices, Inc. Method and system for asymmetrical processing with managed data affinity
CN106415522B (zh) 2014-05-08 2020-07-21 美光科技公司 存储器内轻量一致性
CN106462501B (zh) 2014-05-08 2019-07-09 美光科技公司 基于混合存储器立方体系统互连目录的高速缓冲存储器一致性方法
US9542316B1 (en) * 2015-07-23 2017-01-10 Arteris, Inc. System and method for adaptation of coherence models between agents

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6751705B1 (en) * 2000-08-25 2004-06-15 Silicon Graphics, Inc. Cache line converter
US20020087803A1 (en) * 2000-12-29 2002-07-04 Jones Phillip M. Apparatus for identifying memory requests originating on remote I/O devices as noncacheable
US6470429B1 (en) * 2000-12-29 2002-10-22 Compaq Information Technologies Group, L.P. System for identifying memory requests as noncacheable or reduce cache coherence directory lookups and bus snoops
US7167956B1 (en) * 2004-05-03 2007-01-23 Sun Microsystems, Inc. Avoiding inconsistencies between multiple translators in an object-addressed memory hierarchy
US20100228945A1 (en) * 2009-03-04 2010-09-09 Freescale Semiconductor, Inc. Access management technique with operation translation capability
CN103229152A (zh) * 2010-11-26 2013-07-31 国际商业机器公司 高速缓存一致性控制方法、系统和程序
CN104969207A (zh) * 2012-10-22 2015-10-07 英特尔公司 高性能互连一致性协议
US20140149681A1 (en) * 2012-11-27 2014-05-29 International Business Machines Corporation Coherent proxy for attached processor
US20140181414A1 (en) * 2012-12-21 2014-06-26 Advanced Micro Devices, Inc. Mechanisms to bound the presence of cache blocks with specific properties in caches
US20140181417A1 (en) * 2012-12-23 2014-06-26 Advanced Micro Devices, Inc. Cache coherency using die-stacked memory device with logic die

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110059023A (zh) * 2019-04-04 2019-07-26 阿里巴巴集团控股有限公司 一种刷新级联缓存的方法、系统及设备
US10922236B2 (en) 2019-04-04 2021-02-16 Advanced New Technologies Co., Ltd. Cascade cache refreshing
CN115176237A (zh) * 2020-02-21 2022-10-11 斯法夫股份有限公司 具有混合回写和透写的数据高速缓存
CN115176237B (zh) * 2020-02-21 2024-05-28 斯法夫股份有限公司 具有混合回写和透写的数据高速缓存

Also Published As

Publication number Publication date
US20170344479A1 (en) 2017-11-30
JP2019517687A (ja) 2019-06-24
EP3465445A4 (en) 2020-01-22
WO2017209883A1 (en) 2017-12-07
US10503641B2 (en) 2019-12-10
EP3465445B1 (en) 2021-06-23
CN109154910B (zh) 2023-08-08
EP3465445A1 (en) 2019-04-10
KR102442079B1 (ko) 2022-09-08
KR20190003564A (ko) 2019-01-09
JP7160682B2 (ja) 2022-10-25

Similar Documents

Publication Publication Date Title
CN109154910A (zh) 用于存储器中处理的高速缓存一致性
US11908546B2 (en) In-memory lightweight memory coherence protocol
US11741012B2 (en) Stacked memory device system interconnect directory-based cache coherence methodology
KR102204751B1 (ko) 클러스터 레벨에서의 데이터 일관성 모델 및 프로토콜
US10402327B2 (en) Network-aware cache coherence protocol enhancement
US7669011B2 (en) Method and apparatus for detecting and tracking private pages in a shared memory multiprocessor
US20170177484A1 (en) Region probe filter for distributed memory system
JPS6284350A (ja) 階層キヤツシユメモリ装置および方法
TW201107974A (en) Cache coherent support for flash in a memory hierarchy
US6751705B1 (en) Cache line converter
US8209490B2 (en) Protocol for maintaining cache coherency in a CMP
CN103744799A (zh) 一种内存数据访问方法、装置和系统
US7117312B1 (en) Mechanism and method employing a plurality of hash functions for cache snoop filtering
US7325102B1 (en) Mechanism and method for cache snoop filtering
CN117667785A (zh) 数据处理方法、数据处理装置、电子设备和存储介质
CN113687955B (zh) 一种高效处理gpu片内和片间缓存一致性的数字电路设计方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant