具有高速缓存相干存储器和服务器链接交换机的系统

文档序号:1925256 发布日期:2021-12-03 浏览:10次 >En<

阅读说明:本技术 具有高速缓存相干存储器和服务器链接交换机的系统 (System with cache coherent memory and server linked switches ) 是由 K.T.马拉迪 A.张 E.M.纳贾法巴迪 于 2021-05-27 设计创作,主要内容包括:一种用于管理存储器资源的系统和方法。在一些实施例中,该系统包括第一服务器、第二服务器和连接到第一服务器并连接到第二服务器的服务器链接交换机。第一服务器可以包括存储程序处理电路、高速缓存相干交换机和第一存储器模块。在一些实施例中,第一存储器模块连接到高速缓存相干交换机,高速缓存相干交换机连接到服务器链接交换机,并且存储程序处理电路连接到高速缓存相干交换机。(A system and method for managing memory resources. In some embodiments, the system includes a first server, a second server, and a server linked switch connected to the first server and to the second server. The first server may include a stored program processing circuit, a cache coherent switch, and a first memory module. In some embodiments, the first memory module is connected to a cache coherent switch, the cache coherent switch is connected to a server link switch, and the stored program processing circuit is connected to the cache coherent switch.)

具有高速缓存相干存储器和服务器链接交换机的系统

相关申请的交叉引用

本申请要求2020年5月28日提交的名称为“EXTENDING MEMORY ACCESSES WITHNOVEL CACHE COHERENCE CONNECTS(用新型高速缓存相干连接来扩展存储器访问)”的美国临时申请第63/031,508号的优先权和权益,要求2020年5月28日提交的名称为“POOLINGSERVER MEMORY RESOURCES FOR COMPUTE EFFICIENCY(为了计算效率池化服务器存储器资源)”的美国临时申请第63/031,509号的优选权和权利,要求2020年8月20日提交的名称为“SYSTEM WITH CACHE-COHERENT MEMORY AND SERVER-LINKING SWITCH FIELD(具有高速缓存相干存储器和服务器链接交换机场的系统)”的美国临时申请第63/068,054号的优先权和权益,并要求2020年7月28日提交的名称为“DISAGGREGATED MEMORY ARCHITECTURE WITHNOVEL INTERCONNECTS(具有新型互连的分解的存储器架构)”的美国临时申请第63/057,746的优先权和权益,所有这些申请的全部内容通过引用合并于此。

技术领域

根据本公开的实施例的一个或更多个方面涉及计算系统,更具体地,涉及用于在包括一个或更多个服务器的系统中管理存储器资源的系统和方法。

背景技术

背景技术

部分旨在仅提供上下文,并且该部分中的任何实施例或概念的公开不构成对所述实施例或概念是现有技术的承认。

一些服务器系统可以包括通过网络协议连接的服务器的集合。这样的系统中的每个服务器可以包括处理资源(例如,处理器)和存储器资源(例如,系统存储器)。在一些情况下,一个服务器的处理资源访问另一服务器的存储器资源可以是有利的,并且使该访问在最小化任一服务器的处理资源的同时发生可以是有利的。

因此,需要用于在包括一个或更多个服务器的系统中管理存储器资源的改善的系统和方法。

发明内容

在一些实施例中,数据存储和处理系统包括通过服务器链接交换机连接的多个服务器。每个服务器可以包括一个或更多个处理电路、系统存储器和通过高速缓存相干交换机连接到处理电路的一个或更多个存储器模块。高速缓存相干交换机可以连接到服务器链接交换机,并且它可以包括为其提供增强能力的控制器(例如,现场可编程门阵列(FPGA)或专用集成电路(ASIC))。这些能力可以包括虚拟化存储器模块、使交换机能够使用非常适合于存储数据的存储要求(例如,延迟、带宽或持久性)的底层技术来将数据存储在存储器模块中。作为存储需要已由处理电路发送到高速缓存相干交换机的结果,或者作为监视访问模式的结果,高速缓存相干交换机可以接收到这些需要。增强的能力还可以包括使服务器能够与另一服务器的存储器进行交互,而不必访问诸如中央处理单元(CPU)的处理器(例如,通过执行远程直接存储器访问(RDMA))。

根据本发明的实施例,提供了一种系统,其包括:第一服务器,包括存储程序处理电路、高速缓存相干交换机和第一存储器模块;以及第二服务器;以及连接到第一服务器并连接到第二服务器的服务器链接交换机,其中:第一存储器模块连接到高速缓存相干交换机,高速缓存相干交换机连接到服务器链接交换机,以及存储程序处理电路连接到高速缓存相干交换机。

在一些实施例中,服务器链接交换机包括快速外围组件互连(PCIe)交换机。

在一些实施例中,服务器链接交换机包括计算快速链接(CXL)交换机。

在一些实施例中,服务器链接交换机包括机架顶部(ToR)CXL交换机。

在一些实施例中,服务器链接交换机配置为发现第一服务器。

在一些实施例中,服务器链接交换机配置为使第一服务器重新启动。

在一些实施例中,服务器链接交换机配置为使高速缓存相干交换机禁用第一存储器模块。

在一些实施例中,服务器链接交换机配置为将数据从第二服务器发送到第一服务器,并对该数据执行流控制。

在一些实施例中,该系统还包括连接到服务器链接交换机的第三服务器,其中:服务器链接交换机配置为从第二服务器接收第一分组、从第三服务器接收第二分组、以及将第一分组和第二分组发送到第一服务器。

在一些实施例中,该系统还包括连接到高速缓存相干交换机的第二存储器模块,其中第一存储器模块包括易失性存储器,第二存储器模块包括持久存储器。

在一些实施例中,高速缓存相干交换机配置为虚拟化第一存储器模块和第二存储器模块。

在一些实施例中,第一存储器模块包括闪速存储器,并且高速缓存相干交换机配置为向闪速存储器提供闪存转换层。

在一些实施例中,第一服务器包括连接到第一服务器的扩展插槽的扩展插槽适配器,该扩展插槽适配器包括高速缓存相干交换机和存储器模块插槽,第一存储器模块通过存储器模块插槽连接到高速缓存相干交换机。

在一些实施例中,存储器模块插槽包括M.2插槽。

在一些实施例中:高速缓存相干交换机通过连接器连接到服务器链接交换机,并且该连接器在扩展插槽适配器上。

根据本发明的实施例,提供了一种用于在计算系统中执行远程直接存储器访问的方法,该计算系统包括:第一服务器,第二服务器,第三服务器,以及连接到第一服务器、连接到第二服务器并连接到第三服务器的服务器链接交换机,第一服务器包括存储程序处理电路、高速缓存相干交换机和第一存储器模块,该方法包括由服务器链接交换机从第二服务器接收第一分组、由服务器链接交换机从第三服务器接收第二分组、以及将第一分组和第二分组发送到第一服务器。

在一些实施例中,该方法还包括由高速缓存相干交换机接收远程直接存储器访问(RDMA)请求、以及由高速缓存相干交换机发送RDMA响应。

在一些实施例中,接收RDMA请求包括通过服务器链接交换机接收RDMA请求。

在一些实施例中,该方法还包括由高速缓存相干交换机从存储程序处理电路接收针对第一存储器地址的读命令、由高速缓存相干交换机将第一存储器地址转换为第二存储器地址、以及由高速缓存相干交换机从第一存储器模块中检索第二存储器地址处的数据。

根据本发明的实施例,提供了一种系统,其包括:第一服务器,包括存储程序处理电路、高速缓存相干交换机构、第一存储器模块;以及第二服务器;以及连接到第一服务器并连接到第二服务器的服务器链接交换机,其中:第一存储器模块连接到高速缓存相干交换机构,高速缓存相干交换机构连接到服务器链接交换机,存储程序处理电路连接到高速缓存相干交换机构。

附图说明

这里提供的附图仅出于示出某些实施例的目的;可能未明确示出的其他实施例不被排除在本公开的范围之外。

将参照说明书、权利要求书和附图来认识和理解本公开的这些及其他特征和优点,其中:

图1A是根据本公开的实施例的用于使用高速缓存相干连接将存储器资源附接到计算资源的系统的框图;

图1B是根据本公开的实施例的用于使用高速缓存相干连接将存储器资源附接到计算资源的采用扩展插槽适配器的系统的框图。

图1C是根据本公开的实施例的用于采用以太网ToR交换机来聚合存储器的系统的框图;

图1D是根据本公开的实施例的用于采用以太网ToR交换机和扩展插槽适配器来聚合存储器的系统的框图;

图1E是根据本公开的实施例的用于聚合存储器的系统的框图;

图1F是根据本公开的实施例的采用扩展插槽适配器的用于聚合存储器的系统的框图;

图1G是根据本公开的实施例的用于分解服务器的系统的框图;

图2A是根据本公开的实施例的用于图1A-1G所示的实施例的绕过处理电路执行远程直接存储器访问(RDMA)传输的示例方法的流程图;

图2B是根据本公开的实施例的用于图1A-1D所示的实施例的在处理电路的参与下执行RDMA传输的示例方法的流程图;

图2C是根据本公开的实施例的用于图1E和图1F所示的实施例的通过计算快速链路(CXL)交换机执行RDMA传输的示例方法的流程图;以及

图2D是根据本公开的实施例的用于图1G所示的实施例的通过CXL交换机执行RDMA传输的示例方法的流程图。

具体实施方式

下面结合附图阐述的详细描述旨在作为对根据本公开提供的用于管理存储器资源的系统和方法的示例性实施例的描述,而不旨在代表其中可构建或利用本公开的唯一形式。该描述结合示出的实施例阐述本公开的特征。然而,将理解,相同或等同的功能和结构可以通过不同的实施例来实现,这些不同的实施例也旨在被涵盖在本公开的范围内。如这里其他地方所表示的,同样的元件编号旨在指示同样的元件或特征。

快速外围组件互连(PCIe)可以指可具有相对高的且可变的延迟的计算机接口,该延迟可能限制该接口在建立与存储器的连接中的有用性。CXL是用于通过PCIe 5.0进行通信的开放式行业标准,其可以提供固定的、相对短的数据包大小,结果,可以能够提供相对高的带宽和相对低的固定延迟。这样,CXL可以能够支持高速缓存相干性,并且CXL可以非常适合与存储器建立连接。CXL还可以用于在主机和服务器中的加速器、存储器设备和网络接口电路(或“网络接口控制器”或网络接口卡”(NIC))之间提供连接性。

诸如CXL的高速缓存相干协议也可以用于例如标量、向量和缓冲存储器系统中的异构处理。CXL可以用于利用通道、重定时器、系统的PHY层、接口的逻辑方面和PCIe 5.0中的协议来提供高速缓存相干接口。CXL事务层可以包括在单个链路上同时运行的三个多路复用子协议,并且可以被称为CXL.io、CXL.cache和CXL.memory。CXL.io可以包括可类似于PCIe的I/O语义。CXL.cache可以包括高速缓存语义,CXL.memory可以包括存储器语义;高速缓存语义和存储器语义者可以是可选的。像PCIe一样,CXL可以支持(i)可以是可划分的x16、x8和x4原始宽度,(ii)可降为8GT/s和16GT/s、128b/130b的32GT/s数据速率,(iii)300W(x16连接器中为75W),以及(iv)即插即用。为了支持即插即用,PCIe或CXL设备链路可以以Gen1开始PCIe中的训练、协商CXL、完成Gen1-5的训练、然后开始CXL事务。

在一些实施例中,在如下面进一步详细讨论的包括通过网络连接在一起的多个服务器的系统中,对存储器的集体或“池”(例如,一定数量的存储器,包括连接在一起的多个存储器单元)使用CXL连接可以提供各种优点。例如,除了提供用于CXL分组的分组交换功能之外还具有进一步的能力的CXL交换机(在这里称为“增强能力CXL交换机”)可以用于将存储器的聚合连接到一个或更多个中央处理单元(CPU)(或“中央处理电路”)并连接到一个或更多个网络接口电路(其可具有增强的能力)。这样的配置可以使得以下成为可能:(i)存储器的聚合包括具有不同特性的各种类型的存储器;(ii)增强能力CXL交换机虚拟化存储器的聚合,并在适当类型的存储器中存储不同特性的数据(例如,访问频率);(iii)增强能力CXL交换机支持远程直接存储器访问(RDMA),使得可以在服务器的处理电路很少参与或不参与的情况下执行RDMA。如这里所使用的,“虚拟化”存储器意思是在处理电路和存储器之间执行存储器地址转换。

CXL交换机可以(i)通过单级交换来支持存储器和加速器分解;(ii)使资源能够基于需求在域之间离线和上线,这可以启用跨域的时分复用;以及(iii)支持下游端口的虚拟化。可以采用CXL来实现聚合的存储器,其可以启用一对多和多对一交换(例如,其可以能够(i)将多个根端口连接到一个端点,(ii)将一个根端口连接到多个端点,或(iii)将多个根端口连接到多个端点),聚合的设备在一些实施例中被划分为多个逻辑设备,每个逻辑设备具有相应的LD-ID(逻辑设备标识符)。在这样的实施例中,物理设备可以被划分为多个逻辑设备,每个逻辑设备对于相应的启动器是可见的。设备可以具有一个物理功能(PF)和多个(例如,16个)隔离的逻辑设备。在一些实施例中,逻辑设备的数量(例如,分区的数量)可以受到限制(例如,取于16),并且还可以存在一个控制分区(其可以是用于控制设备的物理功能)。

在一些实施例中,可以采用结构(fabric)管理器来(i)执行设备发现和虚拟CXL软件创建,以及(ii)将虚拟端口绑定到物理端口。这样的结构管理器可以通过SMBus边带上的连接进行操作。结构管理器可以以硬件、软件或固件或以其组合来实现,并且它可以驻留在例如主机中、在存储器模块135之一中或在增强能力CXL交换机130中、或在网络中的其他地方。结构管理器可以发布命令,该命令包括通过边带总线或通过PCIe树发布的命令。

参照图1A,在一些实施例中,服务器系统包括通过机架顶部(ToR)以太网交换机110连接在一起的多个服务器105。虽然该交换机被描述为使用以太网协议,但是可以使用任何其他合适的网络协议。每个服务器包括一个或更多个处理电路115,每个处理电路115连接到(i)系统存储器120(例如,双倍数据速率(版本4)(DDR4)存储器或任何其他合适的存储器)、(ii)一个或更多个网络接口电路125、以及(iii)一个或更多个CXL存储器模块135。每个处理电路115可以是存储程序处理电路,例如中央处理单元(CPU(例如,x86 CPU)、图形处理单元(GPU)或ARM处理器。在一些实施例中,网络接口电路125可以嵌入存储器模块135之一中(例如,在与存储器模块135之一相同的半导体芯片上,或在与存储器模块135之一相同的模块中),或者网络接口电路125可以与存储器模块135分离地封装。

如这里所使用的,“存储器模块”是包括一个或更多个存储器管芯的封装(例如,包括印刷电路板和与其连接的组件的封装,或包括印刷电路板的附件),每个存储器管芯包括多个存储器单元。每个存储器管芯或多组存储器管芯的集合中的每个可以在焊接到存储器模块的印刷电路板(或通过连接器连接到存储器模块的印刷电路板)的封装(例如,环氧模塑料(EMC)封装)中。每个存储器模块135可以具有CXL接口,并且可以包括控制器137(例如,FPGA、ASIC、处理器等),该控制器137用于在CXL分组和存储器管芯的存储器接口之间转换例如适合于存储器模块135中的存储器的存储器技术的信号。如这里所使用的,存储器管芯的“存储器接口”是存储器管芯的技术固有的接口,例如在DRAM的情况下,存储器接口可以是字线和位线。存储器模块还可以包括如下面进一步详细描述的可提供增强的能力的控制器137。每个存储器模块135的控制器137可以通过高速缓存相干接口(例如,通过CXL接口)连接到处理电路115。控制器137还可以绕过处理电路115促进不同服务器105之间的数据传输(例如,RDMA请求)。ToR以太网交换机110和网络接口电路125可以包括RDMA接口,以促进在不同的服务器上的CXL存储器设备之间的RDMA请求(例如,ToR以太网交换机110和网络接口电路125可以提供融合以太网上的RDMA(RoCE)、无限带宽和iWARP分组的硬件卸载或硬件加速)。

系统中的CXL互连可以符合高速缓存相干协议,诸如CXL 1.1标准,或者在一些实施例中,符合CXL 2.0标准、符合未来版本的CXL或任何其他合适的协议(例如,高速缓存相干协议)。存储器模块135可以如所示出地直接附接到处理电路115,并且机架顶部以太网交换机110可以用于将系统缩放到更大的尺寸(例如,具有更多数量的服务器105)。

在一些实施例中,每个服务器可以填充有多个直接附接的CXL附接式存储器模块135,如图1A所示。每个存储器模块135可以将基址寄存器(BAR)的集合公开给主机的基本输入/输出系统(BIOS)作为存储器范围。存储器模块135中的一个或更多个可以包括固件以透明地管理其在主机OS映射后面的存储器空间。每个存储器模块135可以包括存储器技术中的一个或存储器技术的组合,存储器技术包括例如(但不限于)动态随机存取存储器(DRAM)、非与(NAND)闪存、高带宽存储器(HBM)和低功耗双倍数据速率同步动态随机存取存储器(LPDDR SDRAM)技术,每个存储器模块135还可以包括高速缓存控制器或用于不同技术存储器设备(用于组合不同技术的若干存储器设备的存储器模块135)的单独的相应分离控制器。每个存储器模块135可以包括不同的接口宽度(x4-x16),并且可以根据各种相关规格(例如,U.2、M.2、半高半长(HHHL)、全高半长(FHHL)、E1.S、E1.L、E3.S和E3.H)来构造。

在一些实施例中,如上所述,增强能力CXL交换机130包括FPGA(或ASIC)控制器137,并提供除了交换CXL分组之外的附加功能。增强能力CXL交换机130的控制器137还可以充当存储器模块135的管理设备,并帮助进行主机控制平面处理,并且它可以启用丰富的控制语义和统计信息。控制器137可以包括附加的“后门”(例如,100吉比特以太网(GbE))网络接口电路125。在一些实施例中,控制器137作为CXL类型2设备呈现给处理电路115,这使得能够在接收到远程写请求之后向处理电路115发布高速缓存无效指令。在一些实施例中,启用DDIO技术,并且首先将远程数据拉到处理电路的最后一级高速缓存(LLC),稍后将该远程数据(从高速缓存)写入到存储器模块135。如这里所使用的,“类型2”CXL设备是可以发起事务并实现可选的相干高速缓存和主机管理的设备存储器的设备,并且对于该设备适用的事务类型包括所有CXL.cache和所有CXL.mem事务。

如上所述,存储器模块135中的一个或更多个可以包括持久存储器或“持久存储”(即,当断开外部电源时在其中不丢失数据的存储)。如果将存储器模块135呈现为持久设备,则存储器模块135的控制器137可以管理持久域,例如,它可以存储在由处理电路115(例如,作为应用调用对应的操作系统功能的结果)识别为需要持久存储的持久存储数据中。在这样的实施例中,软件API可以将高速缓存和数据刷新到持久存储。

在一些实施例中,启用从网络接口电路125到存储器模块135的直接存储器传输。这样的传输可以是到远程存储器的单向传输,以在分布式系统中进行快速通信。在这样的实施例中,存储器模块135可以将硬件细节公开给系统中的网络接口电路125,以实现更快的RDMA传输。在这样的系统中,取决于处理电路115的数据直接I/O(DDIO)是启用还是禁用,可以发生两种情况。DDIO可以启用以太网控制器或以太网适配器和处理电路115的高速缓存之间的直接通信。如果处理电路115的DDIO被启用,则传输的目标可以是处理电路的最后一级高速缓存,数据随后可以从该最后一级高速缓存自动刷新到存储器模块135。如果处理电路115的DDIO被禁用,则存储器模块135可以在设备偏置模式下操作,以强制将要由目的地存储器模块135直接接收(而不用DDIO)的访问。具有主机通道适配器(HCA)、缓冲器和其他处理的能够进行RDMA的网络接口电路125可以用于启用这样RDMA传输,该RDMA传输可以绕过可存在于RDMA传输的其他模式中的目标存储器缓冲器传输。例如,在这样的实施例中,可以避免使用回弹缓冲器(例如,远程服务器中的缓冲器,当存储器中的最终目的地在RDMA协议不支持的地址范围内时)。在一些实施例中,RDMA使用除了以太网以外的另一物理介质选项(例如,用于配置为处理其他网络协议的交换机)。可以启用RDMA的服务器间连接的示例包括(但不限于)无限带宽、聚合以太网上的RDMA(RoCE)(其使用以太网用户数据报协议(UDP))和iWARP(其使用传输控制协议/互联网协议(TCP/IP))。

图1B示出了与图1A的系统类似的系统,其中处理电路115通过存储器模块135连接到网络接口电路125。存储器模块135和网络接口电路125在扩展插槽适配器140上。每个扩展插槽适配器140可以插入到服务器105的主板上的扩展插槽145(例如,M.2连接器)中。这样,服务器可以是通过在扩展插槽145中安装扩展插槽适配器140而修改的任何合适的(例如,行业标准)服务器。在这样的实施例中,(i)每个网络接口电路125可以被集成到存储器模块135中的相应一个中,或者(ii)每个网络接口电路125可以具有PCIe接口(网络接口电路125可以是PCIe端点(即,PCIe从设备),使得其所连接的处理电路115(可作为PCIe主设备或“根端口”操作)可以通过根端口到端点的PCIe连接与之通信,存储器模块135的控制器137可以通过对等PCIe连接与之通信。

根据本发明的实施例,提供了一种系统,其包括第一服务器,该第一服务器包括存储程序处理电路、第一网络接口电路和第一存储器模块,其中第一存储器模块包括第一存储器管芯和控制器,控制器通过存储器接口连接到第一存储器管芯,通过高速缓存相干接口连接到存储程序处理电路,并且连接到第一网络接口电路。在一些实施例中:第一存储器模块还包括第二存储器管芯,第一存储器管芯包括易失性存储器,第二存储器管芯包括持久存储器。在一些实施例中,持久存储器包括NAND闪存。在一些实施例中,控制器配置为向持久存储器提供闪存转换层。在一些实施例中,高速缓存相干接口包括计算快速链接(CXL)接口。在一些实施例中,第一服务器包括连接到第一服务器的扩展插槽的扩展插槽适配器,该扩展插槽适配器包括第一存储器模块和第一网络接口电路。在一些实施例中,第一存储器模块的控制器通过扩展插槽连接到存储程序处理电路。在一些实施例中,扩展插槽包括M.2插槽。在一些实施例中,第一存储器模块的控制器通过对等快速外围组件互连(PCIe)连接而连接到第一网络接口电路。在一些实施例中,该系统还包括第二服务器以及连接到第一服务器并连接到第二服务器的网络交换机。在一些实施例中,网络交换机包括机架顶部(ToR)以太网交换机。在一些实施例中,第一存储器模块的控制器配置为接收直接的远程直接存储器访问(RDMA)请求,并发送直接的RDMA响应。在一些实施例中,第一存储器模块的控制器配置为通过网络交换机以及通过第一网络接口电路接收直接的远程直接存储器访问(RDMA)请求,并通过网络交换机以及通过第一网络接口电路发送直接的RDMA响应。在一些实施例中,第一存储器模块的控制器配置为:从第二服务器接收数据;将数据存储在第一存储器模块中;以及向存储程序处理电路发送使高速缓存行无效的命令。在一些实施例中,第一存储器模块的控制器包括现场可编程门阵列(FPGA)或专用集成电路(ASIC)。根据本发明的实施例,提供了一种用于在计算系统中执行远程直接存储器访问的方法,该计算系统包括第一服务器和第二服务器,第一服务器包括存储程序处理电路、网络接口电路和包含控制器的第一存储器模块,该方法包括由第一存储器模块的控制器接收直接的远程直接存储器访问(RDMA)请求、以及由第一存储器模块的控制器发送直接的RDMA响应。在一些实施例中:计算系统还包括连接到第一服务器并连接到第二服务器的以太网交换机,接收直接的RDMA请求包括通过以太网交换机接收直接的RDMA请求。在一些实施例中,该方法还包括由第一存储器模块的控制器从存储程序处理电路接收针对第一存储器地址的读命令,由第一存储器模块的控制器将第一存储器地址转换为第二存储器地址、以及由第一存储器模块的控制器从第一存储器模块检索第二存储器地址处的数据。在一些实施例中,该方法还包括由第一存储器模块的控制器接收数据、由第一存储器模块的控制器将所述数据存储在第一存储器模块中、以及由第一存储器模块的控制器向存储程序处理电路发送用于使高速缓存行无效的命令。根据本发明的实施例,提供了一种系统,其包括第一服务器,该第一服务器包括存储程序处理电路、第一网络接口电路和第一存储器模块,其中第一存储器模块包括第一存储器管芯和控制器机构,该控制器机构通过存储器接口连接到第一存储器管芯,通过高速缓存相干接口连接到存储程序处理电路,并且连接到第一网络接口电路。

参照图1C,在一些实施例中,服务器系统包括通过机架顶部(ToR)以太网交换机110连接在一起的多个服务器105。每个服务器包括一个或更多个处理电路115,每个处理电路连接到(i)系统存储器120(例如,DDR4存储器)、(ii)一个或更多个网络接口电路125、以及(iii)增强能力CXL交换机130。增强能力CXL交换机130可以连接到多个存储器模块135。即,图1C的系统包括第一服务器105,该第一服务器105包括存储程序处理电路115、网络接口电路125、高速缓存相干交换机130和第一存储器模块135。在图1C的系统中,第一存储器模块135连接到高速缓存相干交换机130,高速缓存相干交换机130连接到网络接口电路125,并且存储程序处理电路115连接到高速缓存相干交换机130。

存储器模块135可以按类型、规格或技术类型(例如,DDR4、DRAM、LDPPR、高带宽存储器(HBM)或NAND闪存或其他持久存储(例如,结合NAND闪存的固态驱动器))来分组。每个存储器模块可以具有CXL接口,并包括用于在CXL分组和适合于存储器模块135中的存储器的信号之间进行转换的接口电路。在一些实施例中,这些接口电路替代地在增强能力CXL交换机130中,并且每个存储器模块135具有作为存储器模块135中的存储器的固有接口的接口。在一些实施例中,增强能力CXL交换机130被集成到存储器模块135中(例如,与存储器模块135的其他组件集成在M.2规格的封装中,或与存储器模块135的其他组件集成到单个集成电路中)。

ToR以太网交换机110可以包括接口硬件,以促进不同服务器上的聚合的存储器设备之间的RDMA请求。增强能力CXL交换机130可以包括一个或更多个电路(例如,它可以包括FPGA或ASIC),以(i)基于工作负荷将数据路由到不同的存储器类型、(ii)将主机地址虚拟化为设备地址和/或(iii)绕过处理电路115促进不同服务器之间的RDMA请求。

存储器模块135可以在扩展盒中(例如,在与容纳附件的主板的附件相同的机架中),该扩展盒可以包括预定数量的(例如,多于20个或多于100个)存储器模块135,每个存储器模块插入到合适的连接器中。所述模块可以呈M.2规格,所述连接器可以是M.2连接器。在一些实施例中,服务器之间的连接经由除了以太网以外的不同网络,例如,它们可以是无线连接,诸如WiFi或5G连接。每个处理电路可以是x86处理器或另一处理器,例如ARM处理器或GPU。其上实例化CXL链接的PCIe链接可以是PCIe 5.0或另一版本(例如,较早版本或较晚(例如,未来)版本(例如,PCIe 6.0)。在一些实施例中,代替CXL或除了CXL之外,在系统中使用不同的高速缓存相干协议,并且代替增强能力CXL交换器130或除了增强能力CXL交换器130之外,可以使用不同的高速缓存相干交换机。这样的高速缓存相干协议可以是另一种标准协议或标准协议的高速缓存相干变体(以与CXL是PCIe 5.0的变体的方式类似的方式)。标准协议的示例包括但不限于非易失性双列直插式存储器模块(版本P)(NVDIMM-P)、加速器的高速缓存相干互连(CCIX)和开放式相干加速器处理器接口(OpenCAPI)。

系统存储器120可以包括例如DDR4存储器、DRAM、HBM或LDPPR存储器。存储器模块135可以被划分或包含高速缓存控制器以处理多种存储器类型。存储器模块135可以呈不同的规格,规格的示例包括但不限于HHHL、FHHL、M.2、U.2、夹层卡、子卡、E1.S、E1.L、E3.L和E3.S。

在一些实施例中,系统实现包括多个服务器的聚合架构,其中每个服务器聚合有多个附接CXL的存储器模块135。每个存储器模块135可以包含多个分区,这些分区可以分开地作为存储器设备被公开给多个处理电路115。增强能力CXL交换机130的每个输入端口可以独立地访问增强能力CXL交换机130的多个输出端口以及与其连接的存储器模块135。如这里所使用的,增强能力CXL交换机130的“输入端口”或“上游端口”是连接到PCIe根端口(或适合于连接到PCIe根端口)的端口,增强能力CXL交换机130的“输出端口”或“下游端口”是连接到PCIe端点(或适合于连接到PCIe端点)的端口。如在图1A的实施例的情况下,每个存储器模块135可以向主机BIOS公开基址寄存器(BAR)的集体作为存储器范围。存储器模块135中的一个或更多个可以包括固件以透明地管理其在主机OS映射后面的存储器空间。

在一些实施例中,如上所述,增强能力CXL交换机130包括FPGA(或ASIC)控制器137,并提供除了CXL分组的交换之外的附加功能。例如,它可以(如上所述)虚拟化存储器模块135,即作为在处理电路侧地址(或“处理器侧”地址,即处理电路115发布的处理器读写命令中包括的地址)和存储器侧地址(即,增强能力CXL交换机130用来对存储器模块135中的存储位置进行寻址的地址)之间进行转换的转换层操作,从而掩盖存储器模块135的物理地址并呈现出存储器的虚拟聚合。增强能力CXL交换机130的控制器137还可以充当存储器模块135的管理设备,并促进主机控制平面处理。控制器137可以在没有处理电路115参与的情况下透明地移动数据并相应地更新存储器映射(或“地址转换表”),使得随后的访问按预期起作用。控制器137可以包含交换机管理设备,该交换机管理设备(i)可以在运行时间期间适当地绑定和解绑上游和下游连接,并且(iii)可以启用与进出存储器模块135的数据传输相关联的丰富的控制语义和统计信息。控制器137可以包括附加的“后门”100GbE或其他网络接口电路125(除了用于连接到主机的网络接口之外),用于连接到其他服务器105或连接到其他联网设施。在一些实施例中,控制器137作为类型2设备呈现给处理电路115,其使得能够在接收到远程写请求之后向处理电路115发布高速缓存无效指令。在一些实施例中,启用DDIO技术,并且首先将远程数据拉到处理电路115的最后一级高速缓存(LLC),稍后将该远程数据(从高速缓存)写入到存储器模块135。

如上所述,存储器模块135中的一个或更多个可以包括持久存储。如果存储器模块135被呈现为持久设备,则增强能力CXL交换机130的控制器137可以管理持久域(例如,其可以在持久存储中存储由处理电路115(例如,通过使用对应的操作系统功能)识别为需要持久存储的数据。在这样的实施例中,软件API可以将高速缓存和数据刷新到持久存储。

在一些实施例中,可以以与以上针对图1A和图1B的实施例描述的方式类似的方式来执行到存储器模块135的直接存储器传输,存储器模块135的控制器所执行的操作由增强能力CXL交换机130的控制器137执行。

如上所述,在一些实施例中,存储器模块135被组织成组,例如,组织成存储器密集的一组、HBM稠密的另一组、具有有限的密度和性能的另一组、以及具有密集的容量的另一组。这样的组可以具有不同的规格或基于不同的技术。增强能力CXL交换机130的控制器137可以基于例如工作负荷、标签或服务质量(QoS)来智能地路由数据和命令。对于读请求,可能没有基于此类因素的路由。

增强能力CXL交换机130的控制器137也可以(如上所述)虚拟化处理电路侧地址和存储器侧地址,从而使增强能力CXL交换机130的控制器137可以确定数据要存储在哪里。增强能力CXL交换机130的控制器137可以基于其可从处理电路115接收到的信息或指令来做出这种确定。例如,操作系统可以提供存储器分配特征,使得应用可以指定低延迟存储或高带宽存储或持久存储将被分配,然后增强能力CXL交换机130的控制器137可以在确定将存储器分配在哪里(例如,在哪个存储器模块135中)时将应用发起的此类请求考虑在内。例如,可以在包含HBM的存储器模块135中分配应用针对其请求高带宽的存储,可以在包含NAND闪存的存储器模块135中分配应用针对其请求数据持久性的存储,可以在包含相对便宜的DRAM的存储器模块135上存储其他存储(应用没有针对其提出请求)可以存储。在一些实施例中,增强能力CXL交换机130的控制器137可以基于网络使用模式来做出关于将某些数据存储在哪里的确定。例如,增强能力CXL交换机130的控制器137可以通过监视使用模式来确定物理地址的一定范围内的数据正比其他数据被更频繁地访问,然后增强能力CXL交换机130的控制器137可以将这些数据复制到包含HBM的存储器模块135中,并修改其地址转换表,使得新位置的数据被存储在相同范围的虚拟地址中。在一些实施例中,存储器模块135中的一个或更多个包括闪存(例如,NAND闪存),并且增强能力CXL交换机130的控制器137为该闪速存储器实现闪存转换层。闪存转换层可以支持覆盖处理器侧的存储位置(通过将数据移动到不同位置并将数据的先前位置标记为无效),并且它可以执行垃圾收集(例如,当块中标记为无效的数据部分超过阈值时,在将该块中的任何有效数据移动到另一个块之后擦除该块)。

在一些实施例中,增强能力CXL交换机130的控制器137可以促进物理功能(PF)到PF的传输。例如,如果处理电路115之一需要将数据从一个物理地址移动到另一物理地址(其可以具有相同的虚拟地址;这一事实不一定影响处理电路115的操作),或者如果处理电路115需要在两个虚拟地址(处理电路115会需要具有这两个虚拟地址)之间移动数据,则增强能力CXL交换机130的控制器137可以在没有处理电路115参与的情况下监督传输。例如,处理电路115可以发送CXL请求,并且数据可以在增强能力CXL交换机130后面而不行进到处理电路115地,从一个存储器模块135被发送到另一个存储器模块135(例如,数据可以从一个存储器模块135被复制到另一个存储器模块135)。在这种情况下,因为处理电路115发起CXL请求,所以处理电路115可以需要刷新其高速缓存以确保一致性。如果类型2存储器设备(例如,存储器模块135之一或也可连接到CXL交换机的加速器)代替地发起CXL请求并且该交换机未虚拟化,则类型2存储器设备可以向处理电路115发送消息以使高速缓存无效。

在一些实施例中,增强能力CXL交换机130的控制器137可以促进服务器之间的RDMA请求。远程服务器105可以发起这样的RDMA请求,并且该请求可以通过ToR以太网交换机110发送,并到达响应RDMA请求的服务器105(“本地服务器”)中的增强能力CXL交换机130。增强能力CXL交换机130可以配置为接收这样的RDMA请求,并且它可以将接收服务器105(即,接收RDMA请求的服务器)中的一组存储器模块135视为其自己的存储器空间。在本地服务器中,增强能力CXL交换机130可以接收RDMA请求作为直接RDMA请求(即,未通过本地服务器中的处理电路115路由的RDMA请求),并且它可以向该RDMA请求发送直接响应(即,它可以发送响应而无需通过本地服务器中的处理电路115来路由该响应)。在远程服务器中,响应(例如,由本地服务器发送的数据)可以由远程服务器的增强能力CXL交换机130接收,并被存储在远程服务器的存储器模块135中而无需通过远程服务器中的处理电路115来路由。

图1D示出了与图1C的系统类似的系统,其中处理电路115通过增强能力CXL交换机130连接到网络接口电路125。增强能力CXL交换机130、存储器模块135和网络接口电路125在扩展插槽适配器140上。扩展插槽适配器140可以是插入到服务器105的主板上的扩展插槽(例如,PCIe连接器145)中的电路板或模块。这样,服务器可以是仅通过在PCIe连接器145中安装扩展插槽适配器140而修改的任何合适的服务器。存储器模块135可以安装在扩展插槽适配器140上的连接器(例如,M.2连接器)中。在这样的实施例中,(i)可以将网络接口电路125集成到增强能力CXL交换机130中,或者(ii)每个网络接口电路125可以具有PCIe接口(网络接口电路125可以是PCIe端点),使得其所连接的处理电路115可以通过根端口到端点的PCIe连接与网络接口电路125进行通信。增强能力CXL交换机130(其可以具有连接到处理电路115并连接到网络接口电路125的PCIe输入端口)的控制器137可以通过对等PCIe连接与网络接口电路125进行通信。

根据本发明的实施例,提供了一种系统,其包括第一服务器,该第一服务器包括存储程序处理电路、网络接口电路、高速缓存相干交换机和第一存储器模块,其中:第一存储器模块连接到高速缓存相干交换机,高速缓存相干交换机连接到网络接口电路,以及存储程序处理电路连接到高速缓存相干交换机。在一些实施例中,该系统还包括连接到高速缓存相干交换机的第二存储器模块,其中第一存储器模块包括易失性存储器,第二存储器模块包括持久存储器。在一些实施例中,高速缓存相干交换机配置为虚拟化第一存储器模块和第二存储器模块。在一些实施例中,第一存储器模块包括闪存,高速缓存相干交换机配置为向闪速存储器提供闪存转换层。在一些实施例中,高速缓存相干交换机配置为:监视第一存储器模块中的第一存储器位置的访问频率;确定访问频率超过第一阈值;以及将第一存储器位置的内容复制到第二存储器位置,第二存储器位置在第二存储器模块中。在一些实施例中,第二存储器模块包括高带宽存储器(HBM)。在一些实施例中,高速缓存相干交换机配置为维护用于将处理器侧地址映射到存储器侧地址的表。在一些实施例中,该系统还包括第二服务器以及连接到第一服务器和第二服务器的网络交换机。在一些实施例中,网络交换机包括机架顶部(ToR)以太网交换机。在一些实施例中,高速缓存相干交换机配置为接收直接的远程直接存储器访问(RDMA)请求,并发送直接的RDMA响应。在一些实施例中,高速缓存相干交换机配置为通过ToR以太网交换机以及通过网络接口电路接收远程直接存储器访问(RDMA)请求,并通过ToR以太网交换机以及通过网络接口电路发送直接的RDMA响应。在一些实施例中,高速缓存相干交换机配置为支持计算快速链接(CXL)协议。在一些实施例中,第一服务器包括连接到第一服务器的扩展插槽的扩展插槽适配器,扩展插槽适配器包括高速缓存相干交换机和存储器模块插槽,第一存储器模块通过存储器模块插槽连接到高速缓存相干交换机。在一些实施例中,存储器模块插槽包括M.2插槽。在一些实施例中,网络接口电路在扩展插槽适配器上。根据本发明的实施例,提供了一种用于在计算系统中执行远程直接存储器访问的方法,该计算系统包括第一服务器和第二服务器,第一服务器包括存储程序处理电路、网络接口电路、高速缓存相干交换机和第一存储器模块,该方法包括由高速缓存相干交换机接收直接的远程直接存储器访问(RDMA)请求、以及由高速缓存相干交换机发送直接的RDMA响应。在一些实施例中:计算系统还包括以太网交换机,接收直接的RDMA请求包括通过以太网交换机接收直接的RDMA请求。在一些实施例中,该方法还包括由高速缓存相干交换机从存储程序处理电路接收针对第一存储器地址的读命令、由高速缓存相干交换机将第一存储器地址转换为第二存储器地址、以及由高速缓存相干交换机从第一存储器模块中检索第一存储器地址处的数据。在一些实施例中,该方法还包括由高速缓存相干交换机接收数据、由高速缓存相干交换机将该数据存储在第一存储器模块中、以及由高速缓存相干交换机将向存储程序处理电路发送用于使高速缓存行无效的命令。根据本发明的实施例,提供了一种系统,其包括第一服务器,该第一服务器包括存储程序处理电路、网络接口电路、高速缓存相干交换机构和第一存储器模块,其中:第一存储器模块连接到高速缓存相干交换机构,高速缓存一致交换机构连接到网络接口电路,以及存储程序处理电路连接到高速缓存相干交换机构。

图1E示出了多个服务器105中的每个连接到所示出的ToR服务器链接交换机112的实施例,该ToR服务器链接交换机112可以是具有PCIe能力的PCIe 5.0CXL交换机。服务器链接交换机112可以包括FPGA或ASIC,并且可以提供优于以太网交换机的性能的性能(就吞吐量和延迟而言)。每个服务器105可以包括通过增强能力CXL交换机130以及通过多个PCIe连接器连接到服务器链接交换机112的多个存储器模块135。如所示出的,每个服务器105还可以包括一个或更多个处理电路115和系统存储器120。服务器链接交换机112可以作为主宰机操作,并且每个增强能力CXL交换机130可以作为从属机操作,如下面进一步详细讨论的。

在图1E的实施例中,服务器链接交换机112可以对从不同的服务器105接收到的多个高速缓存请求进行分组或批处理,并且它可以对分组进行分组,从而减少控制开销。增强能力CXL交换机130可以包括从控制器(例如,从FPGA或从ASIC),以(i)基于工作负荷将数据路由为不同的存储器类型、(ii)将处理器侧地址虚拟化为存储器侧地址、以及(iii)绕过处理电路115促进不同的服务器105之间的相干请求。图1E所示的系统可以基于CXL 2.0,它可以包括机架内的分布式共享存储器,并且它可以使用ToR服务器链接交换机112与远程节点进行本地连接。

ToR服务器链接交换机112可以具有用于与其他服务器或与客户机进行连接的附加网络连接(例如,如所示出的以太网连接,或另一种连接,例如无线连接,诸如WiFi连接或5G连接)其他服务器或客户端。服务器链接交换机112和增强能力CXL交换机130可以均包括控制器,该控制器可以是或包括诸如ARM处理器的处理电路。PCIe接口可以符合PCIe 5.0标准,或符合PCIe标准的较早版本或符合PCIe标准的未来版本,或者可以采用符合不同标准(例如,NVDIMM-P、CCIX或OpenCAPI)的接口来代替PCIe接口。存储器模块135可以包括各种存储器类型,包括DDR4 DRAM、HBM、LDPPR、NAND闪存或固态驱动器(SSD)。存储器模块135可以被划分或包含高速缓存控制器以处理多种存储器类型,并且它们可以呈不同的规格,诸如HHHL、FHHL、M.2、U.2、夹层卡、子卡、E1.S、E1.L、E3.L或E3.S。

在图1E的实施例中,增强能力CXL交换机130可以启用一对多和多对一的交换,并且它可以在微片(flit)(64字节)级别启用细粒度的负载存储接口。每个服务器可以具有聚合的存储器设备,每个设备被划分为多个逻辑设备,每个逻辑设备具有相应的LD-ID。ToR交换机112(其可称为“服务器链接交换机”启用一对多功能,服务器105中的增强能力CXL交换机130启用多对一功能。服务器链接交换机112可以是PCIe交换机或CXL交换机或两者。在这样的系统中,请求者可以是多个服务器105的处理电路115,响应者可以是许多聚合的存储器模块135。两个交换机(如上所述,主交换机是服务器链接交换机112,从交换机是增强能力CXL交换机130)的分层启用任何通信。每个存储器模块135可以具有一个物理功能(PF)和多达16个隔离的逻辑设备。在一些实施例中,逻辑设备的数量(例如,分区的数量)可以受到限制(例如,限于16),并且也可以存在一个控制分区(其可以是用于控制的物理功能)。每个存储器模块135可以是类型2设备,其具有cxl.cache、cxl.mem和cxl.io以及地址转换服务(ATS)实现方式以处理处理电路115可保持的高速缓存行副本。增强能力CXL交换机130和结构管理器可以控制存储器模块135的发现,并且(i)执行设备发现和虚拟CXL软件创建、以及(ii)将虚拟端口绑定到物理端口。如在图1A-1D的实施例中那样,结构管理器可以通过SMBus边带上的连接进行操作。到存储器模块135的接口可以实现可配置性,该接口可以是智能平台管理接口(IPMI)或符合Redfish标准(并且还可以提供该标准不需要的附加功能)的接口。

如上所述,一些实施例实现其中主控制器(其可以以FPGA或ASIC来实现)是服务器链接交换机112的部分并且从控制器是增强能力CXL交换机130的部分的分层结构,以提供加载-存储接口(即具有高速缓存行(例如,64字节)粒度并在不涉及软件驱动器的情况下在相干域内运行的接口)。这样的加载-存储接口可以将相干域扩展到单个服务器、CPU或主机之外,并且可以涉及电或光的物理介质(例如,与两端的电到光收发器的光学连接)。在操作中,主控制器(在服务器链接交换机112中)启动(或“重新启动”)并配置机架上的所有服务器105。主控制器可以在所有主机上具有可见性,并且它可以(i)发现每个服务器并发现在服务器群集中存在多少个服务器105和存储器模块135,(ii)独立地配置每个服务器105,(iii)基于例如机架的构造启用或禁用不同服务器上的一些存储器块(例如,启用或禁用任何存储器模块135),(iv)控制访问(例如,哪个服务器可以控制哪个另外的服务器),(v)实现流控制(例如,因为所有主机和设备请求通过主宰机,所以它可以将数据从一个服务器发送到另一个服务器,并对该数据执行流控制),(vi)对请求或分组(例如,由主宰机从不同的服务器105接收到的多个高速缓存请求)进行分组或批处理,以及(vii)接收远程软件更新、广播通信等。在批处理模式下,服务器链接交换机112可以接收目的地为同一服务器(例如,目的地为第一服务器)的多个分组,并将它们一起(即,在它们之间没有暂停)发送到第一服务器。例如,服务器链接交换机112可以从第二服务器接收第一分组,并从第三服务器接收第二分组,并且将第一分组和第二分组一起发送给第一服务器。每个服务器105可以向主控制器公开(i)IPMI网络接口、(ii)系统事件日志(SEL)和(iii)板管理控制器(BMC),从而使主控制器能够测量性能、测量运行中的可靠性以及重新配置服务器105。

在一些实施例中,使用促进高可用性的加载-存储接口的软件架构。这样的软件体系架构可以提供可靠性、复制性、一致性、系统相干性、散列、高速缓存和持久性。通过经由IPMI执行对CXL设备组件的定期硬件检查,软件架构可以提供可靠性(在具有大量服务器的系统中)。例如,服务器链接交换机112可以通过存储器服务器150的IPMI接口查询存储器服务器150的状态,例如查询电源状态(存储器服务器150的电源是否在正常工作)、网络状态(服务器链接交换机112的接口是否在正常工作)和错误检查状态(在存储器服务器150的任何子系统中是否存在错误条件)。该软件架构可以提供复制性,因为主控制器可以复制存储在存储器模块135中的数据,并在所有副本之间保持数据一致性。

该软件架构可以提供一致性,因为主控制器可以配置为具有不同的一致性级别,并且服务器链接交换机112可以根据要维持的一致性级别来调节分组格式。例如,如果维持最终的一致性,则服务器链接交换机112可以重新排序请求,同时为了保持严格的一致性,服务器链接交换机112可以维护具有交换机处的精确时间戳的所有请求的记分板。该软件架构可以提供系统相干性,因为多个处理电路115可以从同一存储器地址进行读取或对同一存储器地址进行写入,并且为了保持相干性,主控制器可以负责到达该地址的主节点(使用目录查找)或在公共总线上广播请求。

该软件架构可以提供散列,因为服务器链接交换机112和增强能力CXL交换机可以维护地址的虚拟映射,该虚拟映射可以使用具有多个散列函数的相干散列以在启动时将数据均匀地映射到所有节点上的所有CXL设备(或调节一台服务器何时沉寂或启动)。软件架构可以提供高速缓存,因为主控制器可以指定某些存储器分区(例如,在包括HBM或具有类似能力的技术的存储器模块135中)以充当高速缓存(其采用例如直写式高速缓存或回写式高速缓存)。该软件架构可以提供持久性,因为主控制器和从控制器可以管理持久域和刷新。

在一些实施例中,CXL交换机的能力被集成到存储器模块135的控制器中。在这样的实施例中,服务器链接交换机112仍然可以充当主宰机并具有如这里其他地方所讨论的增强的特征。服务器链接交换机112还可以管理系统中的其他存储设备,并且它可以具有以太网连接(例如,100GbE连接),用于例如连接到客户端计算机,该客户端计算机不属于由服务器链接交换机112形成的PCIe网络的部分。

在一些实施例中,服务器链接交换机112具有增强的能力,并且还包括集成的CXL控制器。在另外的实施例中,服务器链接交换机112仅是物理路由设备,并且每个服务器105包括主CXL控制器。在这样的实施例中,跨不同服务器的主宰机可以协商主从架构。(i)增强能力CXL交换机130和(ii)服务器链接交换机112的智能功能可以以一个或更多个FPGA、一个或更多个ASIC、一个或更多个ARM处理器或以具有计算能力的一个或更多个SSD设备来实现。服务器链接交换机112可以例如通过重新排序独立请求来执行流控制。在一些实施例中,因为接口是加载-存储,所以RDMA是可选的,但是可能存在使用PCIe物理介质(而不是100GbE)的中间RDMA请求。在这样的实施例中,远程主宰机可以发起RDMA请求,该RDMA请求可以通过服务器链接交换机112被发送到增强能力CXL交换机130。服务器链接交换机112和增强能力CXL交换机130可以对RDMA 4KR请求或CXL的微片(64字节)请求进行优先级排序。

如在图1C和图2的实施例中那样,增强能力CXL交换机130可以配置为接收这样的RDMA请求,并且它可以将接收服务器105(即,接收RDMA请求的服务器)中的一组存储器模块135视为其自己的存储器空间。此外,增强能力CXL交换机130可以跨处理电路115虚拟化,并在远程增强能力CXL交换机130上发起RDMA请求,以在服务器105之间来回移动数据,而不涉及处理电路115。

图1F示出了与图1E的系统类似的系统,其中处理电路115通过增强能力CXL交换机130连接到网络接口电路125。如在图1D的实施例中那样,在图1F中,增强能力CXL交换机130、存储器模块135和网络接口电路125在扩展插槽适配器140上。扩展插槽适配器140可以是插入到服务器105的主板上的扩展插槽(例如,PCIe连接器145)中的电路板或模块。这样,服务器可以是仅通过在PCIe连接器145中安装扩展插槽适配器140而修改的任何合适的服务器。存储器模块135可以安装在扩展插槽适配器140上的连接器(例如,M.2连接器)中。在这样的实施例中,(i)网络接口电路125可以被集成到增强能力CXL交换机130中,或者(ii)每个网络接口电路125可以具有PCIe接口(网络接口电路125可以是PCIe端点),使得它所连接的处理电路115可以通过根端口到端点的PCIe连接与网络接口电路125进行通信,并且增强型能力CXL交换机130(其可以具有连接到处理电路115并连接到网络接口电路125的PCIe输入端口)的控制器137可以通过对等PCIe连接与网络接口电路125进行通信。

根据本发明的实施例,提供了一种系统,其包括:第一服务器,包括存储程序处理电路、高速缓存相干交换机和第一存储器模块;以及第二服务器;以及连接到第一服务器并连接到第二服务器的服务器链接交换机,其中:第一存储器模块连接到高速缓存相干交换机,高速缓存相干交换机连接到服务器链接交换机,以及存储程序处理电路连接到高速缓存相干交换机。在一些实施例中,服务器链接交换机包括快速外围组件互连(PCIe)交换机。在一些实施例中,服务器链接交换机包括计算快速链接(CXL)交换机。在一些实施例中,服务器链接交换机包括机架顶部(ToR)CXL交换机。在一些实施例中,服务器链接交换机配置为发现第一服务器。在一些实施例中,服务器链接交换机配置为使第一服务器重新启动。在一些实施例中,服务器链接交换机配置为使高速缓存相干交换机禁用第一存储器模块。在一些实施例中,服务器链接交换机配置为将数据从第二服务器发送到第一服务器,并对该数据执行流控制。在一些实施例中,该系统还包括连接到服务器链接交换机的第三服务器,其中服务器链接交换机配置为:从第二服务器接收第一分组,从第三服务器接收第二分组,以及将第一分组和第二分组发送给第一服务器。在一些实施例中,该系统还包括连接到高速缓存相干交换机的第二存储器模块,其中第一存储器模块包括易失性存储器,第二存储器模块包括持久存储器。在一些实施例中,高速缓存相干交换机配置为虚拟化第一存储器模块和第二存储器模块。在一些实施例中,第一存储器模块包括闪速存储器,高速缓存相干交换机配置为向闪速存储器提供闪存转换层。在一些实施例中,第一服务器包括连接到第一服务器的扩展插槽的扩展插槽适配器,该扩展插槽适配器包括高速缓存相干交换机和存储器模块插槽,第一存储器模块通过存储器模块插槽连接到高速缓存相干交换机。在一些实施例中,存储器模块插槽包括M.2插槽。在一些实施例中:高速缓存相干交换机通过连接器连接到服务器链接交换机,该连接器在扩展插槽适配器上。根据本发明的实施例,提供了一种用于在计算系统中执行远程直接存储器访问的方法,该计算系统包括:第一服务器,第二服务器,第三服务器,以及连接到第一服务器、连接到第二服务器并连接到第三服务器的服务器链接交换机,第一服务器包括存储程序处理电路、高速缓存相干交换机和第一存储器模块,该方法包括由服务器链接交换机从第二服务器接收第一分组、由服务器链接交换机从第三服务器接收第二分组、以及将第一分组和第二分组发送到第一服务器。在一些实施例中,该方法还包括由高速缓存相干交换机接收直接的远程直接存储器访问(RDMA)请求、以及由高速缓存相干交换机发送直接的RDMA响应。在一些实施例中,接收直接的RDMA请求包括通过服务器链接交换机接收直接的RDMA请求。在一些实施例中,该方法还包括由高速缓存相干交换机从存储程序处理电路接收针对第一存储器地址的读命令、由高速缓存相干交换机将第一存储器地址转换为第二存储器地址、以及由高速缓存相干交换机从第一存储器模块中检索第二存储器地址处的数据。根据本发明的实施例,提供了一种系统,其包括:第一服务器,包括存储程序处理电路、高速缓存相干交换机构、第一存储器模块;以及第二服务器;以及连接到第一服务器并连接到第二服务器的服务器链接交换机,其中:第一存储器模块连接到高速缓存相干交换机构,高速缓存相干交换机构连接到服务器链接交换机,以及存储程序处理电路连接到高速缓存相干交换机构。

图1G示出了多个存储器服务器150中的每个连接到如所示出的ToR服务器链接交换机112的实施例,该ToR服务器链接交换机112可以是PCIe 5.0CXL交换机。如在图1E和图1F的实施例中那样,服务器链接交换机112可以包括FPGA或ASIC,并且可以提供优于以太网交换机的性能的性能(就吞吐量和延迟而言)。如在图1E和图1F的实施例中那样,存储器服务器150可以包括通过多个PCIe连接器连接到服务器链接交换机112的多个存储器模块135。在图1G的实施例中,可以不存在处理电路115和系统存储器120,并且存储器服务器150的主要目的可以是提供存储器,以供具有计算资源的其他服务器105使用。

在图1G的实施例中,服务器链接交换机112可以对从不同的存储器服务器150接收到的多个高速缓存请求进行分组或批处理,并且它可以对分组进行分组,从而减少控制开销。增强能力CXL交换机130可以包括可组合的硬件构造块,以(i)基于工作负荷将数据路由为不同的存储器类型,以及(ii)虚拟化处理器侧地址(将这些地址转换为存储器侧地址)。图1G所示的系统可以基于CXL 2.0,它可以包括机架内的可组合的且分解的共享存储器,并且它可以使用ToR服务器链接交换机112向远程设备提供池化的(即,聚合的)存储器。

ToR服务器链接交换机112可以具有用于与其他服务器或客户机进行连接的附加网络连接(例如,如所示出的以太网连接,或另一种连接,例如无线连接,诸如WiFi连接或5G连接)。服务器链接交换机112和增强能力CXL交换机130可以均包括控制器,该控制器可以是或包括诸如ARM处理器的处理电路。PCIe接口可以符合PCIe 5.0标准,或符合PCIe标准的较早版本或符合PCIe标准的未来版本,或者可以采用不同的标准(例如,NVDIMM-P、CCIX或OpenCAPI)来代替PCIe。存储器模块135可以包括各种存储器类型,包括DDR4 DRAM、HBM、LDPPR、NAND闪存和固态驱动器(SSD)。存储器模块135可以被划分或包含高速缓存控制器以处理多种存储器类型,并且它们可以呈不同的规格,诸如HHHL、FHHL、M.2、U.2、夹层卡、子卡、E1.S、E1.L、E3.L或E3.S。

在图1G的实施例中,增强能力CXL交换机130可以启用一对多交换和多对一交换,并且它可以在微片(64字节)级别实现细粒度的加载-存储接口。每个存储器服务器150可以具有聚合的存储器设备,每个设备被划分为多个逻辑设备,每个逻辑设备具有相应的LD-ID。增强能力CXL交换机130可以包括控制器137(例如,ASIC或FPGA)以及用于设备发现、枚举、划分和呈现物理地址范围的电路(其可以与这样的ASIC或FPGA分离或是其部分)。每个存储器模块135可以具有一个物理功能(PF)和多达16个隔离的逻辑设备。在一些实施例中,逻辑设备的数量(例如,分区的数量)可以受到限制(例如,限于16),并且还可以存在一个控制分区(其可以是用于控制设备的物理功能)。每个存储器模块135可以是类型2设备,其具有cxl.cache、cxl.mem和cxl.io以及地址转换服务(ATS)实现以处理处理电路115可保持的高速缓存行副本。

增强能力CXL交换机130和结构管理器可以控制存储器模块135的发现,并且(i)执行设备发现和虚拟CXL软件创建,以及(ii)将虚拟端口绑定到物理端口。如在图1A-1D的实施例中那样,结构管理器可以通过SMBus边带上的连接进行操作。到存储器模块135的接口可以实现可配置性,该接口可以是智能平台管理接口(IPMI)或符合Redfish标准的接口(并且还可以提供该标准不需要的附加特征)。

对于图1G的实施例,构造块可以包括(如上所述)在FPGA或ASIC上实现的进行交换以使存储器设备(例如,存储器模块135)能够聚合的CXL控制器137、SSD、加速器(GPU、NIC)、CXL和PCIe5连接器以及用于将设备细节公开给操作系统的高级配置和电源接口(ACPI)表(诸如异构存储器属性表(HMAT)或静态资源相似性表SRAT)的固件。

在一些实施例中,该系统提供可组合性。该系统可以基于软件配置提供使CXL设备和其他加速器上线和离线的能力,并且它可以能够对加速器、存储器、存储设备资源进行分组并将它们配给到机架中的每个存储器服务器150。该系统可以隐藏物理地址空间,并使用像HBM和SRAM的更快的设备来提供透明高速缓存。

在图1G的实施例中,增强能力CXL交换机130的控制器137可以(i)管理存储器模块135,(ii)集成和控制诸如NIC、SSD、GPU、DRAM的异构设备,以及(iii)通过电源门控对存储器设备实现存储的动态重新配置。例如,ToR服务器链接交换机112可以禁用存储器模块135之一的供电(即,切断供电,或降低供电)(通过指示增强能力CXL交换机130禁用存储器模块135的供电)。然后,增强能力CXL交换机130可以在由服务器链接交换机112指示禁用存储器模块的供电之后禁用存储器模块135的供电。这样的禁用可以节省功率,并且可以改善存储器服务器150中的其他存储器模块135的性能(例如,吞吐量和延迟)。每个远程服务器105可以基于协商看到存储器模块135及其连接的不同逻辑视图。增强能力CXL交换机130的控制器137可以维持状态,使得每个远程服务器维护分配的资源和连接,并且它可以执行存储器的压缩或重复数据删除以节省存储器容量(使用可配置的块大小)。图1G的分解的机架可以具有其自己的BMC。它还可以向远程设备公开IPMI网络接口和系统事件日志(SEL),从而使主宰机(例如,使用存储器服务器150提供的存储的远程服务器)能够测量性能和运行中的可靠性,并重新配置分解的机架。图1G的分解的机架可以以与这里针对图1E的实施例所描述的方式类似的方式来提供可靠性、复制性、一致性、系统相干性、散列、高速缓存和持久性,例如用从同一存储器地址进行读取或对同一存储器地赶进行写入的多个远程服务器来提供相干性,并且每个远程服务器配置为具有不同的一致性级别。在一些实施例中,服务器链接交换机维持存储在第一存储器服务器上的数据和存储在第二存储器服务器上的数据之间的最终一致性。服务器链接交换机112可以为不同的服务器对维持不同的一致性级别;例如,服务器链接交换机还可以在存储在第一存储器服务器上的数据和存储在第三存储器服务器上的数据之间维持一致性级别,该一致性级别是严格一致性、顺序一致性、因果一致性或处理器一致性。该系统可以采用“本地频带”(服务器链接交换机112)和“全局频带”(分解的服务器)域中的通信。写可以刷新到“全局频带”,以对于来自其他服务器的新读取是可见的。增强能力CXL交换机130的控制器137可以管理持久域,并分开地为每个远程服务器刷新。例如,高速缓存相干交换机可以监视存储器(易失性存储器,用作高速缓存)的第一区域的充满度,并且当充满度级别超过阈值时,高速缓存相干交换机可以将数据从存储器的第一区域移动到存储器的第二区域,存储器的第二区域在持久存储器中。可以处理流控制,因为可以由增强能力CXL交换机130的控制器137在远程服务器之间建立优先级,以呈现不同的感知到的延迟和带宽。

根据本发明的实施例,提供了一种系统,其包括:第一存储器服务器,包括高速缓存相干交换机和第一存储器模块;以及第二存储器服务器;以及服务器链接交换机,连接到第一存储器服务器和第二存储器服务器,其中:第一存储器模块连接到高速缓存相干交换机,高速缓存相干交换机连接到服务器链接交换机。在一些实施例中,服务器链接交换机配置为禁用对第一存储器模块的供电。在一些实施例中:服务器链接交换机配置为通过指示高速缓存相干交换机禁用对第一存储器模块的供电来禁用对第一存储器模块的供电,高速缓存相干交换机配置为在由服务器链接交换机指示禁用对第一存储器模块的供电之后禁用对第一存储器模块的供电。在一些实施例中,高速缓存相干交换机配置为在第一存储器模块内执行重复数据删除。在一些实施例中,高速缓存相干交换机配置为压缩数据并将压缩后的数据存储在第一存储器模块中。在一些实施例中,服务器链接交换机配置为查询第一存储器服务器的状态。在一些实施例中,服务器链接交换机配置为通过智能平台管理接口(IPMI)查询第一存储器服务器的状态。在一些实施例中,查询状态包括查询从由电源状态、网络状态和错误检查状态构成的组中选择的状态。在一些实施例中,服务器链接交换机配置为对定向到第一存储器服务器的高速缓存请求进行批处理。在一些实施例中,该系统还包括连接到服务器链接交换机的第三存储器服务器,其中服务器链接交换机配置为在存储在第一存储器服务器上的数据和存储在第三存储器服务器上的数据之间保持一致性级别,该一致性级别从由严格一致性、顺序一致性、因果一致性和处理器一致性构成的组中选择。在一些实施例中,高速缓存相干交换机配置为:监视存储器的第一区域的充满度,以及将数据从存储器的第一区域移动到存储器的第二区域,其中:存储器的第一区域在易失性存储器中,存储器的第二区域在持久存储器中。在一些实施例中,服务器链接交换机包括快速外围组件互连(PCIe)交换机。在一些实施例中,服务器链接交换机包括计算快速链接(CXL)交换机。在一些实施例中,服务器链接交换机包括机架顶部(ToR)CXL交换机。在一些实施例中,服务器链接交换机配置为将数据从第二存储器服务器发送到第一存储器服务器,并对该数据执行流控制。在一些实施例中,该系统还包括连接到服务器链接交换机的第三存储器服务器,其中:服务器链接交换机配置为从第二存储器服务器接收第一分组、从第三存储器服务器接收第二分组、以及将第一分组和第二分组发送到第一存储器服务器。根据本发明的实施例,提供了一种用于在计算系统中执行远程直接存储器访问的方法,该计算系统包括:第一存储器服务器;第一服务器;第二服务器;以及连接到第一存储器服务器、连接到第一服务器并连接到第二服务器的服务器链接交换机,第一存储器服务器包括高速缓存相干交换机和第一存储器模块,第一服务器包括存储程序处理电路,第二服务器包括存储程序处理电路,该方法包括由服务器链接交换机从第一服务器接收第一分组、由服务器链接交换机从第二服务器接收第二分组、以及将第一分组和第二分组发送到第一存储器服务器。在一些实施例中,该方法还包括由高速缓存相干交换机压缩数据、以及将该数据存储在第一存储器模块中。在一些实施例中,该方法还包括由服务器链接交换机查询第一存储器服务器的状态。根据本发明的实施例,提供了一种系统,其包括:第一存储器服务器,包括高速缓存相干交换机和第一存储器模块;以及第二存储器服务器;以及连接到第一存储器服务器和第二存储器服务器的服务器链接交换机构,其中:第一存储器模块连接到高速缓存相干交换机,以及高速缓存相干交换机连接到服务器链接交换机构。

图2A-2D是各种实施例的流程图。在这些流程图的实施例中,处理电路115是CPU;在另外的实施例中,其可以是另外的处理电路(例如,GPU)。参照图2A,图1A和图1B的实施例的存储器模块135的控制器137或图1C-1G的任何实施例的增强能力CXL交换机130可以跨处理电路115进行虚拟化并在另一个服务器105中的增强能力CXL交换机130上发起RDMA请求,以在服务器105之间来回移动数据,而不在任一服务器中涉及处理电路115(由增强能力CXL交换机130的控制器137处理虚拟化)。例如,在205处,存储器模块135的控制器137或增强能力CXL交换机130产生对附加的远程存储器(例如,CXL存储器或聚合存储器)的RDMA请求;在210处,网络接口电路125绕过处理电路将请求发送到ToR以太网交换机110(其可以具有RDMA接口);在215处,ToR以太网交换机110绕过远程处理电路115经由对远程聚合存储器的RDMA访问将RDMA请求路由到远程服务器105,以由存储器模块135的控制器137或由远程增强能力CXL交换机130进行处理;在220处,ToR以太网交换机110接收处理后的数据,并经由RDMA绕过本地处理电路115将数据路由到本地存储器模块135或路由到本地增强能力CXL交换机130;在222处,图1A和图1B的实施例的存储器模块135的控制器137或增强能力CXL交换机130直接接收RDMA响应(例如,该响应没有被处理电路115转发)。

在这样的实施例中,远程存储器模块135的控制器137或远程服务器105的增强能力CXL交换机130配置为接收直接的远程直接存储器访问(RDMA)请求并发送直接的RDMA响应。如这里所使用的,远程存储器模块135的控制器137接收或增强能力CXL交换机130接收“直接的RDMA请求”(或“直接地”接收这样的请求)意思是由远程存储器模块135的控制器137或由增强能力CXL交换机130在响应不被远程服务器的处理电路115转发或以其他方式处理的情况下接收这样的请求,由远程存储器模块135的控制器137或由增强能力CXL交换机130发送“直接的RDMA响应”(或“直接地”发送这样的请求)意思是在响应不被远程服务器的处理电路115转发或以其他方式处理的情况下发送这样的响应。

参照图2B,在另一实施例中,可以在远程服务器的处理电路参与数据处理的情况下执行RDMA。例如,在225处,处理电路115可以通过以太网发送数据或工作负荷请求;在230处,ToR以太网交换机110可以接收请求并将其路由到多个服务器105中的对应的服务器105;在235处,可以在服务器内通过网络接口电路125的(多个)端口(例如,启用100GbE的NIC)接收请求;在240处,处理电路115(例如,x86处理电路)可以从网络接口电路125接收请求;以及在245处,处理电路115可以经由CXL 2.0协议使用DDR和附加存储器资源(例如,一起)处理请求以共享存储器(其在图1A和图1B的实施例中可以是聚合存储器)。

参照图2C,在图1E的实施例中,可以在远程服务器的处理电路参与数据处理的情况下执行RDMA。例如,在225处,处理电路115可以通过以太网或PCie发送数据或工作负荷请求;在230处,ToR以太网交换机110可以接收该请求并将其路由到多个服务器105中的对应的服务器105;在235处,可以在服务器内通过PCIe连接器的(多个)端口接收该请求;在240处,处理电路115(例如,x86处理电路)可以从网络接口电路125接收该请求;以及在245处,处理电路115可以经由CXL 2.0协议使用DDR和附加存储器资源(例如,一起)处理该请求以共享存储器(其在图1A和图1B的实施例中可以是聚合存储器)。在250处,处理电路115可以识别访问来自不同服务器的存储器内容(例如,DDR或聚合存储器内容)的需要;在252处,处理电路115可以经由CXL协议(例如,CXL 1.1或CXL 2.0)发送对来自不同服务器的所述存储器内容(例如,DDR或聚合存储器内容)的请求;在254处,该请求通过本地PCIe连接器传播到服务器链接交换机112,然后该服务器链接交换机112将该请求发送到机架上的第二服务器的第二PCIe连接器;在256处,第二处理电路115(例如,x86处理电路)从第二PCIe连接器接收该请求;在258处,第二处理电路115可以经由CXL 2.0协议使用第二DDR和第二附加存储器资源一起处理该请求(例如,存储器内容的检索)以共享聚合存储器;以及在260处,第二处理电路(例如,x86处理电路)经由各自的PCIe连接器并通过服务器链接交换机112将请求的结果发送回原来的处理电路。

参照图2D,在图1G的实施例中,可以在远程服务器的处理电路参与数据处理的情况下执行RDMA。例如,在225处,处理电路115可以通过以太网发送数据或工作负荷请求;在230处,ToR以太网交换机110可以接收该请求并将其路由到多个服务器105中的对应的服务器105;在235处,可以在服务器内通过网络接口电路125的(多个)端口(例如,启用100GbE的NIC)接收该请求。在262处,存储器模块135从PCIe连接器接收该请求;在264处,存储器模块135的控制器使用本地存储器处理该请求;在250处,存储器模块135的控制器识别访问来自不同服务器的存储器内容(例如,聚合存储器内容)的需要;在252处,存储器模块135的控制器经由CXL协议发送对来自不同服务器的所述存储器内容(例如,聚合存储器内容)的请求;在254处,该请求通过本地PCIe连接器传播到服务器链接交换机112,然后该服务器链接交换机112将该请求发送到机架上的第二服务器的第二PCIe连接器;在266处,第二PCIe连接器经由CXL协议提供访问以共享聚合存储器,从而允许存储器模块135的控制器检索存储器内容。

如这里所使用的,“服务器”是包括至少一个存储程序处理电路(例如,处理电路115)、至少一个存储器资源(例如,系统存储器120)和用于提供网络连接性的至少一个电路(例如,网络接口电路125)的计算系统。如这里所使用的,某物的“一部分”意味着该事物的“至少一些”,因此可以意味着少于该物的全部或该物的全部。这样,事物的“一部分”包括整个事物作为特例,即,整个事物是事物的一部分的示例。

本公开的“背景技术”部分中提供的背景仅被包括用于设置上下文,并且该部分的内容不被承认是现有技术。所描述的任何组件或组件的任何组合(例如,在这里包括的任何系统图中)可以用于执行这里包括的任何流程图的一个或更多个操作。此外,(i)这些操作是示例操作,并且可以涉及未明确涵盖的各种附加步骤,(ii)这些操作的时间顺序可以改变。

术语“处理电路”或“控制器机构”在这里用于表示用来处理数据或数字信号的硬件、固件和软件的任何组合。处理电路硬件可以包括例如专用集成电路(ASIC)、通用或专用中央处理单元(CPU)、数字信号处理器(DSP)、图形处理单元(GPU)和诸如现场可编程门阵列(FPGA)的可编程逻辑设备。在如这里所使用的处理电路中,每个功能由配置(即硬连线)为执行该功能的硬件来执行,或由配置为运行存储在非暂时性存储介质中的指令的更通用的硬件(诸如CPU)来执行。处理电路可以被制造在单个印刷电路板(PCB)上,或分布在几个互连的PCB上。处理电路可以包含其他处理电路;例如,处理电路可以包括在PCB上互连的两个处理电路、FPGA和CPU。

如这里所使用的,“控制器”包括电路,并且控制器也可以被称为“控制电路”或“控制器电路”。类似地,“存储器模块”也可以被称为“存储器模块电路”或“存储器电路”。如这里所使用的,术语“阵列”是指数字的有序集合,而不管其如何存储(例如,是存储在连续的存储器位置中,还是存储在链表中)。如这里所使用的,当第二数字在第一数字的“Y%之内”时,意味着第二数字至少是第一数字的(1-Y/100)倍,并且第二数字至多是第一数字的(1+Y/100)倍。如这里所使用的,术语“或”应被解释为“和/或”,使得例如“A或B”意味着“A”或“B”或“A和B”中的任何一个。

如这里所使用的,当方法(例如,调节)或第一数量(例如,第一变量)被称为“基于”第二数量(例如,第二变量)时,意味着第二数量是该方法的输入或影响第一数量,例如,第二数量可以是计算第一数量的函数的输入(例如,唯一输入或若干输入之一),或者第一数量可以等于第二数量,或者第一数量可以与第二数量相同(例如,存储在存储器中相同的一个或多个位置)。

将理解,尽管术语“第一”、“第二”、“第三”等可以在这里用于描述各种元件、组件、区域、层和/或部分,但是这些元件、组件、区域、层和/或部分不应受这些术语限制。这些术语仅用于将一个元件、组件、区域、层或部分与另一元件、组件、区域、层或部分区分开。因此,这里讨论的第一元件、组件、区域、层或部分可以被称为第二元件、组件、区域、层或部分而不背离本发明构思的精神和范围。

为了描述的容易,这里可以使用空间关系术语诸如“在……下面”、“在……之下”、“下”、“在……下方”、“在……之上”、“上”等来描述一个元件或特征的与另外的(多个)元件或(多个)特征的如图中所示的关系。将理解,除了图中所绘的取向之外,这样的空间关系术语旨在涵盖设备在使用或在操作中的不同取向。例如,如果图中的设备被翻转,则被描述为“在”另外元件或特征“之下”或“下面”或“下方”的元件将取向在该另外的元件或特征“之上”。因此,示例术语“在……之下”和“在……下方”可以涵盖上和下两个方向。设备可以另行取向(例如,旋转90度或取向在其他方向),并且这里使用的空间关系描述语应被相应地解释。此外,还将理解,当层被称为“在”两层“之间”时,它可以是这两层之间的唯一层,或者也可以存在一个或更多个居间层。

这里使用的术语仅出于描述特定实施例的目的,并且不旨在限制本发明构思。如这里所使用的,术语“基本上”、“约”和类似术语用作近似术语而不用作程度术语,并且旨在解释测量值或计算值中的将会被本领域普通技术人员辨别的固有偏差。如这里所使用的,单数形式“一”旨在还包括复数形式,除非上下文清楚地另外指出。还将理解,当在本说明书中使用时,术语“包括”和/或“包含”指明所陈述的特征、整体、步骤、操作、元件和/或组件的存在,但不排除一个或更多个其他特征、整体、步骤、操作、元件、组件和/或其组的存在或添加。如这里所使用的,术语“和/或”包括一个或更多个相关所列举项目的任何和所有组合。当在一列元件之后时,诸如“中的至少一个”的表达修饰整列元件而不修饰该列中的个别元件。此外,当描述本发明构思的实施例时,“可以”的使用是指“本公开的一个或更多个实施例”。此外,术语“示例性”旨在指代示例或说明。如这里所使用的,术语“使用”、“使用……的”和“被使用的”可分别被认为与术语“利用”、“利用……的”和“被利用的”同义。

将理解,当元件或层被称为“在”另一元件或层“上”、“连接到”另一元件或层、“联接到”另一元件或层或“邻近”另一元件或层时,它可以直接在该另一元件或层上、连接到该另一元件或层、联接到该另一元件或层或邻近该另一元件或层,或者可以存在一个或更多个居间的元件或层。相比之下,当元件或层被称为“直接在”另一元件或层“上”、“直接连接到”另一元件或层、“直接联接到”另一元件或层或“紧邻”另一元件或层时,不存在居间的元件或层。

这里叙述的任何数值范围旨在包括归入所述及的范围内的相同数值精度的所有子范围。例如,范围“1.0至10.0”或“在1.0和10.0之间”旨在包括在所述及的最小值1.0和所述及的最大值10.0(并且包括所述及的最小值1.0和所述及的最大值10.0)之间的所有子范围,即使得最小值等于或大于1.0且最大值等于或小于10.0,诸如例如2.4到7.6。这里叙述的任何最大数值限制旨在包括归入其中的所有较低数值限制,并且本说明书中叙述的任何最小数值限制旨在包括归入其中的所有较高数值限制。

尽管这里已经具体地描述和示出了用于管理存储器资源的系统和方法的示例性实施例,但是许多修改和变化对于本领域技术人员将是明显的。因此,将理解,除了这里具体描述的以外,可以体现用于管理根据本公开的原理构造的存储器资源的系统和方法。本发明也由所附权利要求及其等同物限定。

36页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种数据处理的方法、装置和设备

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!