CN115443453A - 用于减少传输延迟的链路关联 - Google Patents

用于减少传输延迟的链路关联 Download PDF

Info

Publication number
CN115443453A
CN115443453A CN202080100180.4A CN202080100180A CN115443453A CN 115443453 A CN115443453 A CN 115443453A CN 202080100180 A CN202080100180 A CN 202080100180A CN 115443453 A CN115443453 A CN 115443453A
Authority
CN
China
Prior art keywords
cluster
target
memory
cache coherency
die
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.)
Pending
Application number
CN202080100180.4A
Other languages
English (en)
Inventor
维尼特·马修·亚伯拉罕
杰弗里·D·张伯伦
刘彦呈
埃斯瓦拉穆尔蒂·纳鲁萨马
苏米亚·S·赫特姆帕蒂
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of CN115443453A publication Critical patent/CN115443453A/zh
Pending legal-status Critical Current

Links

Images

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • 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/0824Distributed directories, e.g. linked lists of caches
    • 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/0826Limited pointers directories; State-only directories without pointers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • 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
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/16Memory access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/40Bus coupling

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本文所描述的示例涉及处理器电路系统,该处理器电路系统用于通过选择目标集群并且将请求发出到目标集群来向中央处理单元(CPU)集群发出缓存一致性消息,其中,目标集群包括该集群或者目标集群直接连接到该集群。在一些示例中,所选择的目标集群与最小数量的管芯边界遍历相关联。在一些示例中,处理器电路系统用于读取集群的地址范围以使用对包括本地集群和远程集群的存储器区域的单个范围检查来识别目标集群。在一些示例中,向集群发出缓存一致性消息是为了使缓存一致性消息遍历一个或多个管芯互连以到达目标集群。

Description

用于减少传输延迟的链路关联
优先权声明
本申请根据35 U.S.C.§365(c)要求2020年6月5日提交的名称为“LINKAFFINITIZATION TO REDUCE TRANSFER LATENCY”的美国申请No.16/894,402的优先权,该申请整体并入本文。
背景技术
计算系统允许存储器的内容被多个处理器元件同时访问。例如,处理器可以将内容的副本存储在缓存中,并且另一个处理器可以将内容的相同副本存储在另一个缓存中。相比于使用存储器设备提供的由处理器对数据的访问,缓存设备可以提供更快速的由处理器对数据的访问。缓存一致性旨在在存储器和缓存中提供内容的最新版本,以便最新版本被访问和处理。在设备或进程向其他远程设备或远程进程发送关于它们对经缓存内容的访问或使用的查询的情况下,到接收对查询的响应的时间可能引入延迟,该延迟使系统性能变慢。
附图说明
图1描绘了示例系统。
图2描绘了示例系统和流程。
图3描绘了示例系统存储器地址范围组织。
图4描绘了示例系统和流程。
图5描绘了示例过程。
图6描绘了系统。
图7描绘了环境。
具体实施方式
图1描绘了示例系统。处理器100包括多个核心110-0至110-N。核心可以是能够执行指令的执行核心或计算引擎。核心可以访问自己的缓存和只读存储器(ROM),或者多个核心可以共享缓存或ROM。核心可以是同构的设备(例如,相同的处理能力)和/或异构的设备(例如,不同的处理能力)。核心的频率或功率使用可以是可调节的。可以使用任何类型的处理器间通信技术,例如但不限于消息传递、处理器间中断(IPI)、处理器间通信等等。核心可以以任何类型的方式连接,例如但不限于总线、环或网状结构。
在给定的多核心处理器实现方式中,核心110可以访问包括一个或多个级的缓存层次结构的缓存。例如,在一些实施例中,核心110可以包括私有缓存存储器,包括1级(L1)、2级(L2)和3级(L3)缓存存储器。在一些实施例中,这样的缓存存储器可以被非包含性地维持,使得存在于这些缓存存储器中的一个或多个中的信息可以不出现在缓存层次结构的较高级别中,例如核心可以耦合到的共享缓存。
核心可以通过互连耦合到系统代理(非核心)。系统代理可以包括共享缓存,该共享缓存可以包括任何类型的缓存(例如,1级、2级或最后一级缓存(LLC))。系统代理可以包括以下中的一项或多项:存储器控制器、缓存一致性管理器、算术逻辑单元、浮点单元、核心或处理器互连、或总线或链路控制器。系统代理或非核心可以提供以下中的一项或多项:直接存储器访问(DMA)引擎连接、非缓存一致主连接、核心之间的数据缓存一致性和仲裁缓存请求、或高级微控制器总线架构(AMBA)能力。系统代理或非核心可以管理接收和发送基础结构和存储器控制器的优先级和时钟速度。
核心可以耦合到经组合的缓存代理和本地代理(这里称为缓存本地代理(CHA)120,或缓存代理(CA)122和本地代理(HA)124)。通常,CHA 120可以用作本地一致性和缓存控制器(通过缓存控制器122,在本文中也称为缓存代理),并且还用作(通过本地代理124)全局一致性和存储器控制器接口。在一些实施例中,CHA 120可以具有分布式设计,包括与核心之一相关联的分布式CHA 120-0至120-N中的一个或多个。CHA 120可以包括缓存代理122和本地代理124。
在一些实施例中,一个或多个CHA 120耦合到LLC 130-0至130-N的分布式部分。更具体地,一个或多个个体的缓存代理122可以与对应的LLC部分或切片130交互。CHA 120可以尝试在其他集群或插槽中的不同存储器和缓存设备之间维持缓存一致性。
核心可以向其CA 122发送请求。CA 122可以从其缓存切片提供数据或从另一个核心的缓存获得数据的副本。在缓存未命中的情况下,CA 122可以向本地代理124转发请求,该本地代理124从存储器提供数据或者向其他缓存代理122和向本地代理124发送探听请求。如果另一个缓存代理122将缓存行的副本维持为处于修改、排他或转发状态,缓存行的副本可以被提供给请求者。
缓存代理122可以包括缓存控制器,该缓存控制器包括缓存流水线和/或与缓存存储器的对应部分(例如最后一级缓存(LLC)的分布式部分)相关联的其他电路系统。缓存代理122和本地代理124可以一起工作以通过在连接上交换消息来实现数据一致性。缓存代理122可以发起到一致性存储器中的事务并且可以将副本保留在缓存中。缓存代理122可以根据缓存一致性协议来接收或发送消息。可以使用任何类型的缓存一致性协议,例如但不限于MESIF(Modified Exclusive Shared Invalid Forward,修改排他共享无效转发)、MOESI(Modified Owned Exclusive Shared Invalid,修改自有排他共享无效)等。
缓存代理122可以向其他缓存代理提供一致性存储器内容的副本。本地代理124可以为一致性事务提供服务,包括与缓存代理握手。本地代理124可以监督一致性存储器的地址空间。本地代理124可以管理不同缓存代理122之间可能出现的冲突。本地代理124可以提供数据和所有权响应。
图2描绘了示例系统和流程。插槽200可以包括集群200-0到200-3。类似地,插槽220可以包括集群220-0到220-3。插槽可以包括到主板或电路板的连接器,该主板或电路板包括中央处理单元(CPU)并且提供与CPU的电接口。任何集群可以包括CA、HA、CHA、一个或多个处理器或核心、以及一个或多个缓存(例如,L1、L2、L3、LLC)。在一些示例中,对CA或HA的引用可以替代地指代CHA,或者对CHA的任何引用可以指代CA或HA。在一些示例中,集群可以与将数据从缓存复制到存储器(或反之)的存储器控制器(MC)相关联。在插槽200或220内,集群可以使用任何多管芯到管芯连接性技术(例如,MDF)以通信方式耦合到同一插槽内的另一个集群。
例如,硅中介层和穿硅过孔(TSV)可以被用来以硅互连速度连接管芯。在一些情况下,单个衬底中的嵌入式桥可以被用来提供高输入/输出(I/O)速率和多个管芯之间的电气互连路径。嵌入在两个互连管芯边缘之下的硅桥可以被用来在多个维度上以导电方式耦合管芯。微凸块可以被用来支持高密度信号,并且倒装芯片凸块可以被用来从芯片到封装的直接电源和接地连接。在一些示例中,英特尔嵌入式多管芯互连桥(EMIB)可以被用于管芯到管芯连接性。模块化管芯基础结构(MDF)可以被用来互连两个不同的集群。
在250,集群200-3的核心或CA可以请求缓存一致性操作。缓存一致性操作可以包括向一个或多个缓存设备发出缓存一致性请求或消息(例如,一致性读取或所有权请求),以根据任何缓存一致性协议确定任何其他缓存设备是否存储或使用与特定地址范围相关联的内容。在该示例中,集群200-3中的核心或其CA可以发出一致性消息,由此使用随机散列将一致性消息的目的地确定为集群200-0。一致性消息被发送到集群200-0。在251,消息可以被从集群200-3通过集群200-2传输到集群200-0或通过集群200-1传输到插槽200的集群200-0。在252,插槽200的集群200-0中的缓存代理(CA)解码器具有系统地址映射的完整视图,并且确定缓存一致性请求可以被插槽220的集群220-3满足。集群200-0的CA选择紧邻插槽200的集群200-0的跨插槽链路号0(UPI0)以将缓存一致性消息传输到插槽220的集群220-0。例如,跨插槽链路可以是具有共享地址空间的任何类型的处理器到处理器互连,例如
Figure BDA0003907209610000041
超级路径互连(UPI)或任何其他连接技术,例如本文所述的那些。
在253,在远程插槽220的集群220-0上的缓存一致性消息到达后,本地代理(HA)被集群220-0的CA识别为在集群220-3中。例如,可以通过UPI连接接口中的地址解码器来识别HA。在254,缓存一致性消息通过集群220-2或通过集群220-1从集群220-0传送到集群220-3。在这种情况下,事务采取四个MDF跨越(例如,集群200-3到集群200-2、集群200-2到集群200-0、集群220-0到集群220-2、以及集群220-2到集群220-3)。MDF跨越可能会引入延迟,因此限制MDF跨越的数量可以减少确定缓存一致性的延迟,该延迟可能会影响何时可以开始使用来自缓存的数据进行处理。
注意在250中,在一些示例中,插槽200的集群200-3中的散列可以选择插槽200的集群200-2并且遍历UPI2到插槽220的集群220-2,这可能导致两个MDF跨越,这是对所描述的场景中的四个MDF跨越的改进。然而,可能期望在插槽200中选择集群的确定性方式来减少MDF跨越的数量。
在一些情况下,在本地插槽中识别用于将请求传输到另一个插槽的缓存代理(CA)以减少延迟(例如,本地和远程插槽中的MDF跨越的数量)可能具有挑战性。各种实施例提供使用本地插槽中如下的缓存代理:对于在远程插槽中作为远程访问的接收器的本地代理而言,该缓存代理在连接性方面是最接近的(例如,减少的或最小化的MDF跨越和在物理距离或信号传导路径方面最接近的跨插槽链路)。相应地,本地插槽中的与远程插槽中的目标本地代理共享跨插槽链路的缓存代理可以从本地插槽中的CPU集群接收事务,并且该事务可以遍历零个或更多个集群边界以到达缓存代理。然而,在远程插槽处,目标本地代理将接收并处理事务,并且没有其他的集群边界被遍历。
对于跨插槽事务(例如,缓存一致性消息),由于增加的MDF跨越,服务器产品的延迟正在逐代增加。各种实施例可以通过以如下的方式配置存储器映射来减少与另一个插槽的事务延迟:该方式使得跨插槽事务使用最少的管芯到管芯连接跨越以及与目标集群共享跨插槽链路的集群。一些实施例提供根据插槽号的针对本地插槽和远程插槽的单个连续地址范围查找的使用,以便可以发生单个查找(而不是使用多个查找操作)来确定负责管理缓存行的一致性的集群。系统地址映射可以被组织,以便将属于跨插槽的连接集群的存储器被分组在一起,从而能够向对于远程插槽中的本地代理而言最接近的(例如,通过直接连接)的缓存代理提供远程访问。各种实施例可以使基础结构代理关联,这些基础结构代理使用系统地址映射中最近跨插槽链路(例如,直接链路连接)直接通信。
在一些示例中,固件(例如,基本输入/输出系统(BIOS)、通用可扩展固件接口(UEFI)、或引导加载程序)可以配置核心的系统地址映射,以便核心可以向本地插槽中的与目标本地代理直接连接(例如,使用UPI链路)的缓存代理提供请求。
图3示出了使用和不使用地址关联的地址映射群体的示例。为了确定缓存一致性,核心或CA可以在与存储器进行事务处理之前检查其管芯上的其L3缓存。核心或CA可以发出一致性的读取或所有权请求,该请求通过集群代理以传输到另一个集群。核心或CA可以使用地址映射来确定与哪个集群通信以确定缓存一致性。地址映射可以包括本地插槽和(一个或多个)远程插槽中一个或多个集群的地址范围。例如,地址映射302可以提供与插槽1(例如,远程插槽)的集群3到0相关联的地址范围,然后是与插槽0(例如,本地插槽)的集群3到0相关联的地址范围。地址映射304可以提供与插槽1的集群3相关联的地址范围,然后是与插槽0的集群3相关联的地址范围;与插槽1的集群2相关联的地址范围,然后是与插槽0的集群2相关联的地址范围;等等。例如,AD-WB可以是物理存储器的第一地址范围;2LM可以是物理存储器的第二地址范围;而1LM可以是物理存储器的地址范围。
对于地址映射302,为了确定哪个集群来确定与缓存行相关联的地址的缓存一致性,核心或CA将执行对远程插槽存储器的集群3的地址范围的搜索,然后是对远程插槽存储器的集群2的地址范围的搜索等。然而,使用映射302,为了确定地址范围是否对应于远程插槽或本地插槽的集群3,核心或CA针对远程插槽的集群3和本地插槽的集群3发出多个范围检查操作。对于更多的插槽,范围检查操作的数量或用于执行多个范围检查操作的电路系统的量增加。使用映射304,为了确定地址范围是否对应于任何数量的远程插槽和本地插槽的集群3,核心或CA对连续的地址范围针对集群3发出单个范围检查操作。基于范围命中,核心或CA可以与范围命中所关联的集群进行事务处理,以请求缓存一致性操作。
例如,使用映射302,核心或CA可能需要执行多达8次范围检查,而使用映射304的地址关联可能涉及多达4次范围检查。在一些示例中,与使用映射304相比,使用映射302的情况下,核心或CA确定的范围检查可能需要两倍的逻辑或电路系统。减少范围检查的数量可以潜在地减少目的地接收缓存一致性请求并完成缓存一致性响应花费的时间。本地集群的CA可以执行地址解码以确定存储器范围是本地的还是远程的,并且如果存储器范围是远程的,则集群可以使用其UPI链路将请求传输到另一个插槽中的相应远程集群。
图4描绘了示例系统和流程。在402,插槽400中的集群400-3上的核心或CA可以发起缓存一致性消息(例如,一致性读取、所有权请求事务、或探听请求)。利用根据各种实施例的存储器映射组织,来自集群400-3的核心的远程访问被确定为使用如下的缓存代理:该缓存代理与远程插槽420中的、该特定地址位置所映射到的管芯集群接近(对于跨插槽链路连接而言)。在此示例中,核心位于管芯集群400-3中,并且一致性消息被确定为使用集群400-3中的缓存代理被路由到插槽420中的集群420-3。
在404,缓存代理(CA)解码器可以访问系统地址映射,该映射识别由插槽400和420管理的可寻址存储器位置的缓存一致性,并且CA解码器可以选择跨插槽链路3(UPI 3)来传输一致性消息。在到达插槽420的集群420-3后,在406,本地代理确定事务目的地在集群420-3中。在此示例中,插槽420上的MDF跨越为0,并且与MDF相关的延迟为零。MDF跨越的最坏情况的数量限制为在本地插槽(插槽400)中的2个。
在此示例中,作为目标地的存储器(未示出)连接到集群420-3,并且来自集群400-0、400-1或400-2中的核心的任何请求都可以路由到作为到集群420-3的代理的集群400-3缓存代理。在其他示例中,对于源于集群400-0、400-1或400-2的缓存一致性消息,最多有2个MDF跨越(例如,集群400-0到集群400-1或集群400-2,集群400-1或集群400-2到集群400-3)。此后,可以提供对一致性读取或所有权请求事务的响应(例如,不匹配、与数据匹配、数据被共享、数据被排他拥有,等等)。响应可以采取MDF跨越最少的路径或与请求相同的路径、或其他路径。
在一些示例中,在目的地HA不在集群420-3中的情况下,集群400-3的CA解码器可以通过UPI3向集群420-3发出事务,并且允许UPI连接接口中的地址解码器识别目的地HA以及是否将事务传输到另一个集群。例如,如果目标集群是集群420-0,集群420-3的UPI连接接口可以将事务传输到集群420-1或集群420-2,并且从集群420-1或集群420-2传输到集群420-0。
各种实施例可以应用于多于两个的插槽。集群可以包括用于每个集群到集群连接的链路(例如,UPI)。例如,在集群400-0要与四个其他集群通信的情况下,可以在集群400-0和四个其他集群中的每一个之间使用四个不同的UPI链路。
图5描绘了一个过程。该过程可以被核心使用,来确定向其发送缓存一致性消息(例如,一致性读取或所有权请求或HA生成的探听请求)的集群。在502,系统地址映射被生成,该系统地址映射针对不同插槽的不同集群提供连续地址范围。地址范围可以被设置,以使得要被传输到另一个插槽中的集群的缓存一致性消息被提供给负责对缓存一致性消息做出响应的本地集群并且该本地集群直接连接到远程集群。例如,系统地址映射可以被生成以供核心或关联的CA或HA使用。在504,核心或CA可以访问系统地址,以确定缓存一致性消息的目标集群。例如,核心可以在访问或处理缓存中的内容之前确定生成缓存一致性消息。在506,核心可以向所确定的目标集群发出缓存一致性消息。利用根据各种实施例的存储器映射组织,所确定的目标集群被确定性地或一致地选择,以使得如果所确定的目标集群要将缓存一致性消息传输到另一插槽上的目标集群,则仅进行一次跨越链路传输而没有其他跨管芯传输发生在另一个插槽上。在508,目标集群可以确定缓存一致性消息要由目标集群还是另一个集群来处置。例如,缓存和本地代理(CHA)可以确定与缓存一致性消息相关联的地址是由目标集群还是另一个集群(例如,另一个插槽中的通过直接链路连接的远程集群)来处置。如果缓存一致性消息要由另一个集群处置,则目标集群可以通过直接链路(例如,UPI)将缓存一致性消息传输到另一个集群(例如,远程目标集群)。目标集群(例如,本地或远程)可以向发出缓存一致性消息的核心提供响应,从而以与用于向本地集群或远程集群中的HA发送缓存一致性消息类似的方式减少管芯到管芯遍历的次数。
图6描绘了一个系统。该系统可以使用这里描述的实施例来传输缓存一致性消息和响应。系统600包括处理器610,该处理器610为系统600提供处理、操作管理和指令的执行。处理器610可以包括任何类型的微处理器、中央处理单元(CPU)、图形处理单元(GPU)、处理核心或为系统600提供处理的其他处理硬件、或处理器的组合。处理器610控制系统600的整体操作,并且可以是或包括一个或多个可编程通用或专用微处理器、数字信号处理器(DSP)、可编程控制器、专用集成电路(ASIC)、或可编程逻辑器件(PLD)等,或此类设备的组合。
在一个示例中,系统600包括耦合到处理器610的接口612,该接口612可以代表需要较高带宽连接的系统组件(例如存储器子系统620或图形接口组件640或加速器642)的较高速接口或高吞吐量接口。接口612代表接口电路,其可以是独立组件或集成到处理器管芯上。在存在的情况下,图形接口640与图形组件接口连接以向系统600的用户提供视觉显示。在一个示例中,图形接口640可以驱动向用户提供输出的高清(HD)显示器。高清可以指具有大约100PPI(每英寸像素)或更高像素密度的显示器,并且可以包括诸如全HD(例如,1080p)、视网膜显示器、4K(超高清或UHD)或其他的格式。在一个示例中,显示器可以包括触摸屏显示器。在一个示例中,图形接口640基于被存储在存储器630中的数据或基于由处理器610执行的操作或两者来生成显示。在一个示例中,图形接口640基于被存储在存储器630中的数据或基于由处理器610执行的操作或两者来生成显示。
加速器642可以是处理器610可以访问或使用的可编程或固定功能卸载引擎。例如,加速器642中的加速器可以提供压缩(DC)能力、密码服务(例如,公钥加密(PKE)、密码、散列/认证能力、解密)、或其他能力或服务。在一些实施例中,附加地或替代地,加速器642中的加速器提供如本文所述的场选择控制器能力。在一些情况下,加速器642可以被集成到CPU插槽中(例如,到包括CPU并提供与CPU的电接口的主板或电路板的连接器)。例如,加速器642可以包括单核心或多核心处理器、图形处理单元、逻辑执行单元单级或多级缓存、可用于独立执行程序或线程的功能单元、专用集成电路(ASIC)、神经网络处理器(NNP)、可编程控制逻辑、以及可编程处理元件,例如现场可编程门阵列(FPGA)。加速器642可以提供多个神经网络、CPU、处理器核心、通用图形处理单元、或者可以供人工智能(AI)或机器学习(ML)模型使用的图形处理单元。例如,AI模型可以使用或包括以下任何一种或组合:强化学习方案、Q学习方案、深度Q学习、或异步优势Actor-Critic(A3C)、组合神经网络、循环组合神经网络、或其他AI或ML模型。多个神经网络、处理器核心、或图形处理单元可以供AI或ML模型使用。
存储器子系统620代表系统600的主存储器并且为要由处理器610执行的代码或要在执行例程中使用的数据值提供存储。存储器子系统620可以包括一个或多个存储器设备630,例如只读存储器(ROM)、闪存、一种或多种随机存取存储器(RAM)(例如DRAM)、或其他存储器设备,或这些设备的组合。存储器630尤其存储和托管操作系统(OS)632以提供用于在系统600中执行指令的软件平台。另外,应用634可以从存储器630在OS 632的软件平台上执行。应用634表示有自己的操作逻辑来执行一个或多个功能的执行的程序。进程636代表向OS 632或一个或多个应用634或组合提供辅助功能的代理或例程。OS 632、应用634和进程636提供软件逻辑来为系统600提供功能。在一个示例中,存储器子系统620包括存储器控制器622,存储器控制器622是用于生成并向存储器630发出命令的存储器控制器。将理解的是,存储器控制器622可以是处理器610的物理部分或接口612的物理部分。例如,存储器控制器622可以是集成存储器控制器,与处理器610集成到电路上。
尽管未具体说明,但应理解系统600可以包括设备之间的一个或多个总线或总线系统,例如存储器总线、图形总线、接口总线或其他。总线或其他信号线可以将组件通信地或电气地耦合在一起,或者将组件通信地并且电气地耦合。总线可以包括物理通信线路、点对点连接、桥接器、适配器、控制器或其他电路系统或组合。总线可以包括例如系统总线、外围组件互连(PCI)总线、超传输或工业标准架构(ISA)总线、小型计算机系统接口(SCSI)总线、通用串行总线(USB)或电气和电子工程师协会(IEEE)标准1394总线(Firewire)中的一个或多个。
在一个示例中,系统600包括接口614,接口614可以耦合到接口612。在一个示例中,接口614表示接口电路,该接口电路可以包括独立组件和集成电路系统。在一个示例中,多个用户接口组件或外围组件或两者耦合到接口614。网络接口650为系统600提供通过一个或多个网络与远程设备(例如,服务器或其他计算设备)通信的能力。网络接口650可以包括以太网适配器、无线互连组件、蜂窝网络互连组件、USB(通用串行总线)、或其他基于有线或无线标准的或专有的接口。网络接口650可以将数据传输到同一数据中心或机架中的设备或远程设备,这可以包括发送被存储在存储器中的数据。网络接口650可以从远程设备接收数据,这可以包括将接收到的数据存储到存储器中。各种实施例可以与网络接口650、处理器610和存储器子系统620结合使用。
在一个示例中,系统600包括一个或多个输入/输出(I/O)接口660。I/O接口660可以包括一个或多个接口组件,用户通过这些接口组件与系统600交互(例如,音频、字母数字、触觉/触摸、或其他接口)。外围接口670可以包括上面没有具体提到的任何硬件接口。外围设备通常是指依赖地连接到系统600的设备。依赖连接是系统600提供软件平台或硬件平台或两者的连接,操作在这些平台上执行并且用户与这些平台交互。
在一个示例中,系统600包括用于以非易失性方式存储数据的存储子系统680。在一个示例中,在某些系统实现中,存储子系统680的至少某些组件可以与存储器子系统620的组件有重叠。存储子系统680包括(一个或多个)存储设备684,存储设备684可以是或包括用于以非易失性方式存储大量数据的任何常规介质,例如一个或多个磁性、固态或基于光的盘、或组合。存储设备684将代码或指令和数据686保持在持久状态(例如,即使到系统600的电力中断,值仍被保留)。存储设备684可以一般性地被认为是“存储器”,但存储器630通常是用于向处理器610提供指令的执行或操作存储器。虽然存储684是非易失性的,但存储器630可以包括易失性存储器(例如,如果到系统600的电力被中断,数据的值或状态是不确定的)。在一个示例中,存储子系统680包括用于与存储设备684接口连接的控制器682。在一个示例中,控制器682是接口614或处理器610的物理部分,或者可以包括处理器610和接口614两者中的电路或逻辑。
易失性存储器是在到该设备的电力被中断的情况下其状态不确定(并且因此被存储在其中的数据不确定)的存储器。动态易失性存储器需要刷新被存储在该设备中的数据以维持状态。动态易失性存储器的一个示例包括DRAM(动态随机存取存储器)或诸如同步DRAM(SDRAM)之类的一些变体。易失性存储器的另一个示例包括缓存或静态随机存取存储器(SRAM)。如本文所述的存储器子系统可以与多种存储器技术兼容,例如DDR3(双倍数据速率版本3,JEDEC(联合电子设备工程委员会)于2007年6月27日最初发布)。DDR4(DDR版本4,初始规范由JEDEC于2012年9月发布)、DDR4E(DDR版本4),LPDDR3(低功耗DDR版本3,JESD209-3B,JEDEC于2013年8月发布),LPDDR4(LPDDR版本4、JESD209-4、最初由JEDEC于2014年8月发布),WIO2(宽输入/输出版本2,JESD229-2,最初由JEDEC于2014年8月发布),HBM(高带宽存储器,JESD325,最初由JEDEC于2013年10月发布)、LPDDR5(当前在被JEDEC讨论)、HBM2(HBM版本2,当前在被JEDEC讨论),或其他存储器技术或存储器技术的组合,以及基于此类规范的衍生或扩展的技术。JEDEC标准可在www.jedec.org获得。
非易失性存储器(NVM)设备是这样的存储器:即使在到该设备的电力被中断的情况下,其状态也是确定的。在一个实施例中,NVM设备可以包括块可寻址存储器设备,例如NAND技术,或更具体地,多阈值级NAND闪存(例如,单级单元(“SLC”)、多级单元(“MLC”)、四级单元(“QLC”)、三级单元(“TLC”)、或其他一些NAND)。NVM设备还可以包括可字节寻址的就地写入的三维交叉点存储器设备,或其他可字节寻址的就地写入的NVM设备(也称为持久性存储器),例如单级或多级相变存储器(PCM)或带开关的相变存储器(PCMS)、
Figure BDA0003907209610000131
OptaneTM存储器、使用硫属化物相变材料(例如硫属化物玻璃)的NVM设备、包括金属氧化物基、氧空位基和导电桥式随机存取存储器(CB-RAM)的电阻式存储器、纳米线存储器、铁电随机存取存储器(FeRAM、FRAM)、结合忆阻器技术的磁阻随机存取存储器(MRAM)、自旋转移矩(STT)-MRAM、基于自旋电子磁结存储器的器件、基于磁隧道结(MTJ)的器件、基于DW(畴壁)和SOT(自旋轨道转移)的器件、基于晶闸管的存储器件、或上述任何一种的组合、或其他存储器。
电源(未描绘)向系统600的组件提供电力。更具体地,电源通常与系统600中的一个或多个电力供应接口连接以向系统600的组件提供电力。在一个示例中,电源包括AC到DC(交流到直流)适配器,用于插入墙壁插座。这种AC电源可以是可再生能源(例如太阳能)电源。在一个示例中,电源包括DC电源,例如外部AC到DC转换器。在一个示例中,电源或电力供应包括无线充电硬件以通过靠近充电场进行充电。在一个示例中,电源可以包括内部电池、交流电源、基于运动的电源、太阳能电源或燃料电池源。
在示例中,系统600可以使用处理器、存储器、存储设备、网络接口和其他组件的互连计算托架来实现。可以使用高速互连,例如PCIe、以太网或光学互连(或它们的组合)。
图7描绘了包括多个计算机架702的环境702,每个计算机架702包括架顶式(ToR)交换机704、豆荚管理器706和多个池化系统抽屉。该环境可以使用这里描述的实施例来传输缓存一致性消息和响应。通常,池化系统抽屉可以包括池化计算抽屉和池化存储抽屉。可选地,池化系统抽屉还可以包括池化存储器抽屉和池化输入/输出(I/O)抽屉。在所示实施例中,池化系统抽屉包括
Figure BDA0003907209610000132
池化计算机抽屉708、
Figure BDA0003907209610000133
ATOMTM池化计算抽屉710、池化存储抽屉712、池化存储器抽屉714和池化I/O抽屉716。每个池化系统抽屉通过高速链路718连接到ToR交换机704,例如40千兆位/秒(Gb/s)或100Gb/s以太网链路或100+Gb/s硅光子(SiPh)光链路。在一个实施例中,高速链路718包括800Gb/s SiPh光链路。
计算机架702中的多个可以通过它们的ToR交换机704互连(例如,连接到豆荚级交换机或数据中心交换机),如到网络720的连接所示。在一些实施例中,计算机架702的组通过(一个或多个)豆荚管理器706作为分离的豆荚被管理。在一个实施例中,单个豆荚管理器被用来管理豆荚中的所有机架。替代地,分布式豆荚管理器可以被用于豆荚管理操作。
环境700还包括被用来管理环境的各个方面的管理接口722。这包括管理机架配置,其中相应的参数被存储为机架配置数据724。环境700可以被用于计算机架。
本文的实施例可以在各种类型的计算和联网设备中实现,例如交换机、路由器、机架和刀片服务器,例如在数据中心和/或服务器群环境中采用的那些。数据中心和服务器群中使用的服务器包括阵列服务器配置,例如基于机架的服务器或刀片服务器。这些服务器通过各种网络规定以通信的方式相互连接,例如将服务器集划分为局域网(LAN),在这些LAN之间使用适当的交换和路由设施,以形成私有内联网。例如,云托管设施通常可以采用具有大量服务器的大型数据中心。刀片包含单独的计算平台,该平台被配置为执行服务器类型的功能,即“卡上的服务器”。因此,每个刀片包括常规服务器共有的组件,包括主印刷电路板(主板),该主印刷电路板(主板)提供用于耦合适当的集成电路(IC)和安装到板上的其他组件的内部布线(例如,总线)。
可以使用硬件元素、软件元素或两者的组合来实现各种示例。在一些示例中,硬件元素可以包括设备、组件、处理器、微处理器、电路、电路元件(例如,晶体管、电阻器、电容器、电感器等)、集成电路、ASIC、PLD、DSP、FPGA、存储器单元、逻辑门、寄存器、半导体器件、芯片、微芯片、芯片集等。在一些示例中,软件元素可以包括软件组件、程序、应用、计算机程序、应用程序、系统程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、函数、方法、过程、软件接口、API、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号或它们的任何组合。确定一示例是否使用硬件元素和/或软件元素来实现可以按照给定的实现方式所期望的根据任意数量的因素而变化,例如期望的计算速率、功率水平、热容差、处理周期预算、输入数据速率、输出数据速率、存储器资源、数据总线速度和其他设计或性能限制。注意,硬件、固件和/或软件元素在本文中可以统称为“模块”或“逻辑”。处理器可以是硬件状态机、数字控制逻辑、中央处理单元或任何硬件、固件和/或软件元素的一种或多种组合。
一些示例可以利用制品或者至少一个计算机可读介质来实现或者被实现为制品或者至少一个计算机可读介质。计算机可读介质可以包括非暂时性存储介质,用于存储逻辑。在一些示例中,非暂时性存储介质可以包括一种或多种类型的能够存储电子数据的计算机可读存储介质,包括易失性存储器或非易失性存储器、可移除或不可移除存储器、可擦除或不可擦除存储器、可写或可重写存储器等。在一些示例中,逻辑可以包括各种软件元素,例如软件组件、程序、应用、计算机程序、应用程序、系统程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、函数、方法、过程、软件接口、API、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号或它们的任何组合。
根据一些示例,计算机可读介质可以包括非暂时性存储介质,用于存储或维持指令,这些指令当由机器、计算设备或系统执行时,使机器、计算设备或系统执行根据所描述示例的方法和/或操作。指令可以包括任何合适类型的代码,例如源代码、编译代码、解释代码、可执行代码、静态代码、动态代码等。指令可以根据预定义的计算机语言、方式或语法来实现,用于指示机器、计算设备或系统执行特定功能。可以使用任何合适的高级、低级、面向对象、可视、编译和/或解释的编程语言来实现指令。
至少一个示例的一个或多个方面可以通过存储在至少一种机器可读介质上的代表性指令来实现,该指令表示处理器内的各种逻辑,这些指令当被机器、计算设备或系统读取时,导致机器、计算设备或系统制造逻辑来执行这里描述的技术。这种被称为“IP核心”的表示形式可以被存储在有形的机器可读介质上,并被提供给各种客户或制造设施,以加载到实际制造逻辑或处理器的制造机器中。
短语“一个示例”或“一示例”的出现不一定都指相同的示例或实施例。本文描述的任何方面可以与本文描述的任何其他方面或类似方面组合,无论这些方面是否是相对于相同的图或元素来描述的。附图中描绘的块功能的划分、省略或包含并不意味着用于实现这些功能的硬件组件、电路、软件和/或元件将必然在实施例中被划分、省略或包含。
一些示例可以使用表达“耦合”和“连接”以及它们的派生词来描述。这些术语不一定是彼此的同义词。例如,使用术语“连接”和/或“耦合”的描述可以指示两个或更多个元素彼此直接物理或电接触。然而,术语“耦合”也可能意味着两个或更多个元素彼此不直接接触,但仍然相互合作或相互作用。
术语“第一”、“第二”等在这里并不表示任何顺序、数量或重要性,而是用于将一个元素与另一个元素区分开来。本文中的不定冠词术语并不表示数量的限制,而是表示至少有一个引用项目的存在。在此使用的关于信号的术语“断言”表示信号的状态,在这种状态下,信号是有效的,并且该状态可以通过向该信号施加任何逻辑电平(无论是逻辑0还是逻辑1)来实现。术语“随后”或“之后”可以指紧随在后或者跟随在某个或某些其他事件之后。根据替代实施例,也可以执行其他步骤序列。此外,可以根据特定应用添加或删除额外的步骤。可以使用改变的任何组合,并且受益于本公开的本领域普通技术人员将理解其许多变化、修改和替代实施例。
除非另有具体声明,否则诸如短语“X、Y、或Z中的至少一者”这样的析取语言在上下文内被理解为一般用来陈述一项目、术语等等可以是X、Y、或Z,或者其任意组合(例如,X、Y、和/或Z)。从而,这种析取语言一般不打算也不应当暗示某些实施例要求至少一个X、至少一个Y、或者至少一个Z的每一者存在。此外,除非另有具体声明,否则诸如短语“X、Y、和Z中的至少一者”这样的连接性语言也应当被理解为指X、Y、Z或者其任意组合,包括“X、Y、和/或Z。”
下面提供本文公开的设备、系统和方法的说明性示例。设备、系统和方法的实施例可以包括下述示例中的任何一个或多个以及它们的任何组合。
如本文所示的流程图提供了各种过程动作序列的示例。流程图可以指示要由软件或固件例程执行的操作,以及物理操作。在一个实施例中,流程图可以说明有限状态机(FSM)的状态,其可以在硬件和/或软件中实现。尽管以特定的顺序或次序显示,但除非另有说明,否则动作的次序可以被修改。因此,所示实施例应仅被理解为示例,并且该过程可以以不同的顺序执行,并且一些动作可以并行执行。此外,在各种实施例中可以省略一个或多个动作;因此,并非在每个实施例中都需要所有动作。其他处理流程是可能的。
本文描述的各种组件可以是用于执行所描述的操作或功能的手段。这里描述的每个组件包括软件、硬件或这些的组合。这些组件可以被实现为软件模块、硬件模块、专用硬件(例如,专用硬件、专用集成电路(ASIC)、数字信号处理器(DSP)等)、嵌入式控制器、硬接线电路系统等。
示例1包括一种方法,包括:通过从两个或更多个目标集群中选择目标集群并且向所选择的目标集群发出缓存一致性请求,来向集群发出缓存一致性请求,其中,目标集群被一致地分配为该集群或者目标集群以最小数量的管芯边界遍历直接连接到该集群。
示例2包括任何示例,其中,该集群包括具有以下中的一项或多项的管芯:核心、缓存代理、本地代理、或缓存和本地代理。
示例3包括任何示例,并且包括:读取该集群的存储器地址范围,以使用对与本地集群和远程集群相关联的存储器区域的单个范围检查来识别目标集群。
示例4包括任何示例,其中,缓存一致性请求是从源集群发出的,并且其中,源集群是具有多个集群的多中央处理单元(CPU)系统的一部分。
示例5包括任何示例,其中,管芯边界遍历包括管芯到管芯互连的遍历。
示例6包括任何示例,其中,管芯到管芯互连与嵌入式多管芯互连桥(EMIB)兼容。
示例7包括任何示例,其中,目标集群的缓存代理执行地址解码,以确定存储器地址对应于本地集群还是远程集群。
示例8包括任何示例,并且包括:基于存储器地址对应于远程集群,目标集群通过插槽到插槽连接来将缓存一致性请求传输到远程目标集群,其中,远程目标集群包括该集群。
示例9包括任何示例,并且包括:接收对缓存一致性请求的响应,该响应包括以下中的一项或多项:不匹配、与数据匹配、数据被共享、或数据被排他拥有。
示例10包括任何示例,并且包括:一种装置,包括:处理器电路系统,该处理器电路系统用于通过在两个或更多个目标集群中选择目标集群并且将缓存一致性消息发出到目标集群来向中央处理单元(CPU)集群发出缓存一致性消息,其中,目标集群包括CPU集群或目标集群直接连接到CPU集群。
示例11包括任何示例,其中,所选择的目标集群与最小数量的管芯边界遍历相关联。
示例12包括任何示例,其中,该处理器电路系统用于:读取该集群的地址范围,以使用对与本地和远程集群相关联的存储器区域的单个范围检查来识别目标集群。
示例13包括任何示例,其中,该处理器电路系统包括源集群的核心,并且其中,源集群是具有多个集群的多中央处理单元(CPU)系统的一部分。
示例14包括任何示例,其中,管芯边界遍历包括管芯到管芯互连的遍历。
示例15包括任何示例,其中,管芯到管芯互连与嵌入式多管芯互连桥(EMIB)兼容。
示例16包括任何示例,其中,缓存一致性消息用于:使目标集群的缓存代理执行地址解码,以确定存储器地址范围是对应于本地集群还是远程集群。
示例17包括任何示例,其中:基于存储器地址范围对应于远程集群,目标集群用于将缓存一致性消息传输到远程目标集群,其中,远程目标集群包括CPU集群。
示例18包括任何示例,其中,缓存一致性消息用于使远程目标集群使用本地代理来处理缓存一致性消息。
示例19包括任何示例,其中,该处理器电路系统用于接收对缓存一致性消息的响应,该响应包括以下中的一项或多项:不匹配、与数据匹配、数据被共享、或数据被排他拥有。
示例20包括任何示例,并且包括以下中的一项或多项:存储器设备、存储器控制器、或网络接口。

Claims (20)

1.一种方法,包括:
通过从两个或更多个目标集群中选择目标集群并且向所选择的目标集群发出缓存一致性请求,来向集群发出所述缓存一致性请求,其中,所述目标集群被一致地分配为所述集群,或者所述目标集群以最小数量的管芯边界遍历直接连接到所述集群。
2.如权利要求1所述的方法,其中,所述集群包括具有以下中的一项或多项的管芯:核心、缓存代理、本地代理、或缓存和本地代理。
3.如权利要求1所述的方法,包括:
读取所述集群的存储器地址范围,以使用对与本地集群和远程集群相关联的存储器区域的单个范围检查来识别所述目标集群。
4.如权利要求1所述的方法,其中,所述缓存一致性请求是从源集群发出的,并且其中,所述源集群是具有多个集群的多中央处理单元(CPU)系统的一部分。
5.如权利要求1所述的方法,其中,管芯边界遍历包括管芯到管芯互连的遍历。
6.如权利要求5所述的方法,其中,所述管芯到管芯互连与嵌入式多管芯互连桥(EMIB)兼容。
7.如权利要求1所述的方法,其中,所述目标集群的缓存代理执行地址解码,以确定存储器地址对应于本地集群还是远程集群。
8.如权利要求7所述的方法,包括:
基于所述存储器地址对应于远程集群,所述目标集群通过插槽到插槽连接来将所述缓存一致性请求传输到远程目标集群,其中,所述远程目标集群包括所述集群。
9.如权利要求1所述的方法,包括:
接收对所述缓存一致性请求的响应,所述响应包括以下中的一项或多项:不匹配、与数据匹配、数据被共享、或数据被排他拥有。
10.一种装置,包括:
处理器电路系统,所述处理器电路系统用于:通过在两个或更多个目标集群中选择目标集群并且将缓存一致性消息发出到所述目标集群,来向中央处理单元(CPU)集群发出所述缓存一致性消息,其中,所述目标集群包括所述CPU集群或者所述目标集群直接连接到所述CPU集群。
11.如权利要求10所述的装置,其中,所选择的目标集群与最小数量的管芯边界遍历相关联。
12.如权利要求10所述的装置,其中,所述处理器电路系统用于:读取所述集群的地址范围,以使用对与本地集群和远程集群相关联的存储器区域的单个范围检查来识别所述目标集群。
13.如权利要求10所述的装置,其中,所述处理器电路系统包括源集群的核心,并且其中,所述源集群是具有多个集群的多中央处理单元(CPU)系统的一部分。
14.如权利要求11所述的装置,其中,管芯边界遍历包括管芯到管芯互连的遍历。
15.如权利要求14所述的装置,其中,所述管芯到管芯互连与嵌入式多管芯互连桥(EMIB)兼容。
16.如权利要求14所述的装置,其中,所述缓存一致性消息用于:使所述目标集群的缓存代理执行地址解码,以确定存储器地址范围是对应于本地集群还是远程集群。
17.如权利要求16所述的装置,其中:
基于存储器地址范围对应于远程集群,所述目标集群用于将所述缓存一致性消息传输到远程目标集群,其中,所述远程目标集群包括所述CPU集群。
18.如权利要求17所述的装置,其中,所述缓存一致性消息用于使所述远程目标集群使用本地代理来处理所述缓存一致性消息。
19.如权利要求10所述的装置,其中,所述处理器电路系统用于接收对所述缓存一致性消息的响应,所述响应包括以下中的一项或多项:不匹配、与数据匹配、数据被共享、或数据被排他拥有。
20.如权利要求10所述的装置,包括以下中的一项或多项:存储器设备、存储器控制器或网络接口,并且其中,所述存储器设备、存储器控制器或网络接口用于访问被存储在与所述缓存一致性消息相关联的缓存中的数据。
CN202080100180.4A 2020-06-05 2020-12-11 用于减少传输延迟的链路关联 Pending CN115443453A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/894,402 2020-06-05
US16/894,402 US11966330B2 (en) 2020-06-05 2020-06-05 Link affinitization to reduce transfer latency
PCT/US2020/064654 WO2021247077A1 (en) 2020-06-05 2020-12-11 Link affinitization to reduce transfer latency

Publications (1)

Publication Number Publication Date
CN115443453A true CN115443453A (zh) 2022-12-06

Family

ID=72514379

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080100180.4A Pending CN115443453A (zh) 2020-06-05 2020-12-11 用于减少传输延迟的链路关联

Country Status (4)

Country Link
US (1) US11966330B2 (zh)
EP (1) EP4162366A4 (zh)
CN (1) CN115443453A (zh)
WO (1) WO2021247077A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11966330B2 (en) * 2020-06-05 2024-04-23 Intel Corporation Link affinitization to reduce transfer latency
US20220107808A1 (en) * 2021-12-16 2022-04-07 Intel Corporation Method to reduce register access latency in split-die soc designs
US12019576B2 (en) * 2022-08-02 2024-06-25 Xilinx, Inc. Systems and methods to transport memory mapped traffic amongst integrated circuit devices

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7315919B1 (en) * 2004-06-15 2008-01-01 Sun Microsystems, Inc. Bandwidth reduction technique in a snooping-based cache-coherent cluster of multiprocessing nodes
KR101365940B1 (ko) * 2009-10-27 2014-02-24 한국전자통신연구원 코어 클러스터, 및 코어 클러스터를 포함하는 에너지 스케일러블 벡터 프로세싱 장치 및 방법
US9235519B2 (en) 2012-07-30 2016-01-12 Futurewei Technologies, Inc. Method for peer to peer cache forwarding
US9252131B2 (en) 2013-10-10 2016-02-02 Globalfoundries Inc. Chip stack cache extension with coherency
US9727464B2 (en) * 2014-11-20 2017-08-08 International Business Machines Corporation Nested cache coherency protocol in a tiered multi-node computer system
US9886382B2 (en) * 2014-11-20 2018-02-06 International Business Machines Corporation Configuration based cache coherency protocol selection
US9606925B2 (en) 2015-03-26 2017-03-28 Intel Corporation Method, apparatus and system for optimizing cache memory transaction handling in a processor
US9940287B2 (en) * 2015-03-27 2018-04-10 Intel Corporation Pooled memory address translation
US11163682B2 (en) * 2015-12-29 2021-11-02 Intel Corporation Systems, methods, and apparatuses for distributed consistency memory
JP6687845B2 (ja) * 2016-04-26 2020-04-28 富士通株式会社 演算処理装置及び演算処理装置の制御方法
US10509738B2 (en) * 2016-07-01 2019-12-17 Intel Corporation Remote memory operations
US10795853B2 (en) 2016-10-10 2020-10-06 Intel Corporation Multiple dies hardware processors and methods
US10402327B2 (en) 2016-11-22 2019-09-03 Advanced Micro Devices, Inc. Network-aware cache coherence protocol enhancement
US10339060B2 (en) * 2016-12-30 2019-07-02 Intel Corporation Optimized caching agent with integrated directory cache
US10534687B2 (en) 2017-06-30 2020-01-14 Intel Corporation Method and system for cache agent trace and capture
US10296459B1 (en) * 2017-12-29 2019-05-21 Intel Corporation Remote atomic operations in multi-socket systems
US10558574B2 (en) 2018-05-30 2020-02-11 Intel Corporation Reducing cache line collisions
US20190236038A1 (en) * 2018-12-20 2019-08-01 Swadesh Choudhary Buffered interconnect for highly scalable on-die fabric
US10707169B1 (en) * 2018-12-28 2020-07-07 Intel Corporation Ceramic interposers for on-die interconnects
US11593273B2 (en) 2019-01-30 2023-02-28 Intel Corporation Management of cache use requests sent to remote cache devices
US11048427B2 (en) * 2019-02-20 2021-06-29 International Business Machines Corporation Evacuation of memory from a drawer in a live multi-node system
US10901902B2 (en) * 2019-03-21 2021-01-26 International Business Machines Corporation Efficient inclusive cache management
US11562959B2 (en) * 2019-09-27 2023-01-24 Intel Corporation Embedded dual-sided interconnect bridges for integrated-circuit packages
US11016913B1 (en) * 2020-03-30 2021-05-25 Apple Inc. Inter cluster snoop latency reduction
US11966330B2 (en) * 2020-06-05 2024-04-23 Intel Corporation Link affinitization to reduce transfer latency
US20220004439A1 (en) * 2021-09-16 2022-01-06 Intel Corporation Cluster identifier remapping for asymmetric topologies

Also Published As

Publication number Publication date
US20200301830A1 (en) 2020-09-24
US11966330B2 (en) 2024-04-23
EP4162366A4 (en) 2024-07-10
WO2021247077A1 (en) 2021-12-09
EP4162366A1 (en) 2023-04-12

Similar Documents

Publication Publication Date Title
US20210149812A1 (en) Network interface controller with eviction cache
US11908546B2 (en) In-memory lightweight memory coherence protocol
US11741012B2 (en) Stacked memory device system interconnect directory-based cache coherence methodology
US11929927B2 (en) Network interface for data transport in heterogeneous computing environments
CN112988632A (zh) 设备之间的共享存储器空间
US20210200667A1 (en) Memory thin provisioning using memory pools
US20200379922A1 (en) Adaptive routing for pooled and tiered data architectures
US11422944B2 (en) Address translation technologies
US20210209035A1 (en) Memory accesses using a memory hub
CN115443453A (zh) 用于减少传输延迟的链路关联
US10671148B2 (en) Multi-node system low power management
US11709774B2 (en) Data consistency and durability over distributed persistent memory systems
CN114461544A (zh) 对池化存储器的软件定义的一致性高速缓存
US11861219B2 (en) Buffer to reduce write amplification of misaligned write operations
US11989135B2 (en) Programmable address range engine for larger region sizes
US20220043475A1 (en) Access to multiple timing domains
WO2023113942A1 (en) Cache probe transaction filtering
US20210224190A1 (en) Technologies for configuration of memory ranges
Al Maruf et al. Memory Disaggregation: Open Challenges in the Era of CXL
US20210279128A1 (en) Buffer that supports burst transfers having parallel crc and data transmissions
US20220326962A1 (en) Accelerator capable of executing fast dynamic change in acceleration type

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