用于管理存储器资源的系统和方法

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

阅读说明:本技术 用于管理存储器资源的系统和方法 (System and method for managing memory resources ) 是由 克里希纳·泰贾·马拉迪 安德鲁·常 埃赫桑·M·纳贾法巴迪 于 2021-05-26 设计创作,主要内容包括:一种用于管理存储器资源的系统和方法。在一些实施例中,所述系统包括:第一服务器,包括存储程序处理电路、第一网络接口电路和第一存储器模块。第一存储器模块包括第一存储器裸片和控制器。控制器通过存储器接口连接到第一存储器裸片,通过高速缓存一致性接口连接到存储程序处理电路,并且连接到第一网络接口电路。(A system and method for managing memory resources. In some embodiments, the system comprises: a first server includes a stored program processing circuit, a first network interface circuit, and a first memory module. The first memory module includes a first memory die and a controller. The controller is coupled to the first memory die through a memory interface, to the stored program processing circuit through a cache coherency interface, and to the first network interface circuit.)

用于管理存储器资源的系统和方法

本申请要求于2020年5月28日提交的题为“利用新型高速缓存一致性连接扩展存储器访问(EXTENDING MEMORY ACCESSES WITH NOVEL CACHE COHERENCE CONNECTS)”的第63/031,508号美国临时申请的优先权和权益、于2020年5月28日提交的题为“集中服务器存储器资源以用于计算效率(POOLING SERVER MEMORY RESOURCES FOR COMPUTEEFFICIENCY)”的第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 WITH NOVEL INTERCONNECTS)”的第63/057,746号美国临时申请的优先权和权益以及于2020年9月18日提交的题为“具有高速缓存一致性的存储器(MEMORY WITH CACHE-COHERENT INTERCONNECT)”的第17/026,071号美国申请的优先权和权益,所述美国临时申请的全部内容通过引用包含于此。

技术领域

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

背景技术

背景技术

部分仅意在提供上下文,本部分中的任何实施例或构思的公开不构成所述实施例或构思是现有技术的承认。

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

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

发明内容

在一些实施例中,服务器包括一个或多个处理电路、系统存储器以及通过高速缓存一致性接口连接到处理电路的一个或多个存储器模块。存储器模块还可连接到一个或多个网络接口电路。每个存储器模块可包括为其提供增强能力的控制器(例如,现场可编程门阵列(FPGA)或专用集成电路(ASIC))。这些能力可包括使服务器能够在不必访问处理器(诸如,中央处理器(CPU))的情况下(例如,通过执行远程直接存储器访问(RDMA))与另外的服务器的存储器进行交互。

根据本发明的实施例,提供了一种系统,所述系统包括:第一服务器,包括存储程序处理电路、第一网络接口电路和第一存储器模块,其中,第一存储器模块包括第一存储器裸片和控制器,控制器通过存储器接口连接到第一存储器裸片,通过高速缓存一致性接口连接到存储程序处理电路,并且连接到第一网络接口电路。

在一些实施例中,第一存储器模块还包括第二存储器裸片,第一存储器裸片包括易失性存储器,并且第二存储器裸片包括持久性存储器。

在一些实施例中,持久性存储器包括NAND闪存。在一些实施例中,控制器被配置为提供用于持久性存储器的闪存转换层。

在一些实施例中,高速缓存一致性接口包括计算快速链接(CXL)接口。

在一些实施例中,第一服务器包括连接到第一服务器的扩展插座的扩展插座适配器,扩展插座适配器包括第一存储器模块和第一网络接口电路。

在一些实施例中,第一存储器模块的控制器通过扩展插座连接到存储程序处理电路。

在一些实施例中,扩展插座包括M.2插座。

在一些实施例中,第一存储器模块的控制器通过点对点外围组件互连快速(PCIe)连接而连接到第一网络接口电路。

在一些实施例中,所述系统还包括:第二服务器;和网络交换机,连接到第一服务器和第二服务器。

在一些实施例中,网络交换机包括架顶式(ToR)以太网交换机。

在一些实施例中,第一存储器模块的控制器被配置为:接收远程直接存储器访问(RDMA)请求,并且发送RDMA响应。

在一些实施例中,第一存储器模块的控制器被配置为:通过网络交换机并通过第一网络接口电路接收远程直接存储器访问(RDMA)请求,并且通过网络交换机并通过第一网络接口电路发送RDMA响应。

在一些实施例中,第一存储器模块的控制器被配置为:从第二服务器接收数据;将数据存储在第一存储器模块中;和将用于使高速缓存行无效的命令发送到存储程序处理电路。

在一些实施例中,第一存储器模块的控制器包括现场可编程门阵列(FPGA)或专用集成电路(ASIC)。

根据本发明的实施例,提供了一种用于在计算系统中执行远程直接存储器访问的方法,所述计算系统包括:第一服务器和第二服务器,第一服务器包括存储程序处理电路、网络接口电路和包括控制器的第一存储器模块,所述方法包括:由第一存储器模块的控制器接收远程直接存储器访问(RDMA)请求;和由第一存储器模块的控制器发送RDMA响应。

在一些实施例中,所述计算系统还包括:以太网交换机,连接到第一服务器和第二服务器;并且接收RDMA请求的步骤包括通过以太网交换机接收RDMA请求。

在一些实施例中,所述方法还包括:由第一存储器模块的控制器从存储程序处理电路接收针对第一存储器地址的读取命令;由第一存储器模块的控制器将第一存储器地址转换为第二存储器地址;和由第一存储器模块的控制器在第二存储器地址处从第一存储器模块检索数据。

在一些实施例中,所述方法还包括:由第一存储器模块的控制器接收数据;由第一存储器模块的控制器将数据存储在第一存储器模块中;和由第一存储器模块的控制器将用于使高速缓存行无效的命令发送到存储程序处理电路。

根据本发明的实施例,提供了一种系统,所述系统包括:第一服务器,包括存储程序处理电路、第一网络接口电路和第一存储器模块,其中,第一存储器模块包括第一存储器裸片和控制器装置,控制器装置通过存储器接口连接到第一存储器裸片,通过高速缓存一致性接口连接到存储程序处理电路,并且连接到第一网络接口电路。

附图说明

在此提供的附图仅用于示出特定实施例的目的;可能未明确示出的其它实施例不从在本公开的范围排除。

将参照说明书、权利要求书和附图领会和理解本公开的这些和其它特征和优点,在附图中:

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

图1B是根据本公开的实施例的用于使用高速缓存一致性连接将存储器资源附接到计算资源的采用扩展插座适配器(expansion socket adapter)的系统的框图;

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

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

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

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

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

图2A是根据本公开的实施例的图1A至图1G中示出的实施例的旁路处理电路执行远程直接存储器访问(RDMA)传送的示例方法的流程图;

图2B是根据本公开的实施例的图1A至图1D中示出的实施例的在处理电路的参与下执行RDMA传送的示例方法的流程图;

图2C是根据本公开的实施例的图1E和图1F中示出的实施例的通过计算快速链接(Compute Express Link,CXL)交换机执行RDMA传送的示例方法的流程图;以及

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

具体实施方式

以下结合附图阐述的具体实施方式意在作为根据本公开提供的用于管理存储器资源的系统和方法的示例性实施例的描述,并且不意在表示可构造或利用本公开的唯一形式。描述结合示出的实施例阐述本公开的特征。然而,将理解,相同或等同的功能和结构可通过也意在包含在公开的范围内的不同实施例来实现。如在此其它地方所示出的,相同的元件标号意在指示相同的元件或特征。

外围组件互连快速(PCIe)可表示可具有相对高且可变的延迟的计算机接口,延迟可限制计算机接口在与存储器进行连接时的有用性。CXL是用于通过PCIe 5.0进行通信的开放行业标准,该开放行业标准可提供固定的、相对短的包大小,因此可能够提供相对高的带宽和相对低的固定的延迟。因此,CXL可能能够支持高速缓存一致性,并且CXL可非常适合于与存储器进行连接。CXL还可用于提供主机与加速器、存储器装置和服务器中的网络接口电路(或“网络接口控制器”或“网络接口卡(NIC)”)之间的连接。

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

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

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

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

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

如在此所使用的,“存储器模块”是包括一个或多个存储器裸片的封装件(例如,包括印刷电路板和与印刷电路板连接的组件的封装件、或包括印刷电路板的包封件),每个存储器裸片包括多个存储器单元。每个存储器裸片或多组存储器裸片的集合中的每个组可处于焊接到存储器模块的印刷电路板(或通过连接器连接到存储器模块的印刷电路板)的封装件(例如,环氧树脂模塑料(EMC)封装件)中。每个存储器模块135可具有CXL接口,并且可包括用于在CXL包与存储器裸片的存储器接口(例如,适合于存储器模块135中的存储器的存储器技术的信号)之间转换的控制器137(例如,FPGA、ASIC和/或处理器等)。如在此所使用的,存储器裸片的“存储器接口”是存储器裸片的技术固有的接口(例如,在DRAM的情况下,例如,存储器接口可以是字线和位线)。存储器模块还可包括如以下进一步详细描述的可提供增强能力的控制器137。每个存储器模块135的控制器137可通过高速缓存一致性接口(例如,通过CXL接口)(例如,PCIe 5)连接到处理电路115。控制器137还可旁路处理电路115促进不同服务器105之间的数据传输(例如,RDMA请求)。ToR以太网交换机110和网络接口电路125可包括RDMA接口,RDMA接口用于促进不同服务器上的CXL存储器装置之间的RDMA请求(例如,ToR以太网交换机110和网络接口电路125可提供通过融合以太网的RDMA(RDMAover Converged Ethernet,RoCE)、Infiniband和iWARP包的硬件卸载或硬件加速)。

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

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

在一些实施例中,如上所述,增强能力CXL交换机130包括FPGA(或ASIC)控制器137,并且提供除了CXL包的交换之外的附加特征。增强能力CXL交换机130的控制器137还可用作存储器模块135的管理装置并帮助主机控制平面处理,并且增强能力CXL交换机130的控制器137可实现丰富的控制语义和统计。控制器137可包括附加的“后门”(例如,100千兆比特以太网(GbE))网络接口电路125。在一些实施例中,控制器137作为2型CXL装置呈现给处理电路115,这使得能够在接收到远程写入请求时向处理电路115发出高速缓存无效指令。在一些实施例中,DDIO技术被启用,远程数据首先被拉到处理电路的最后一级高速缓存(LLC),并且稍后(从高速缓存)被写入到存储器模块135。如在此所使用的,“2型”CXL装置是可发起事务并实现可选的一致性高速缓存和主机管理的装置存储器并且其适用的事务类型包括所有CXL.cache和所有CXL.memory事务的CXL装置。

如上所述,存储器模块135中的一个或多个可包括持久性存储器或“持久性存储设备”(即,当外部电力断开时其内的数据不丢失的存储设备)。如果存储器模块135被呈现为持久性装置,则存储器模块135的控制器137可管理持久性域(例如,控制器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传送模式中的目标存储器缓冲器传送。例如,在这样的实施例中,可避免使用回弹缓冲器(bounce buffer)(例如,当存储器中的最终目的地在RDMA协议不支持的地址范围中时,远程服务器中的缓冲器)。在一些实施例中,RDMA使用除以太网之外的另外的物理介质选择(例如,用于与被配置为处理其它网络协议的交换机一起使用)。可启用RDMA的服务器间连接的示例包括(但不限于)Infiniband、通过融合以太网的RDMA(RoCE)(这使用以太网用户数据报协议(UDP))以及iWARP(这使用传输控制协议/互联网协议(TCP/IP))。

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

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

参照图1C,在一些实施例中,服务器系统包括通过架顶式(ToR)以太网交换机110连接在一起的多个服务器105。每个服务器包括一个或多个处理电路115,每个处理电路115连接到(i)系统存储器120(例如,DDR4存储器)、(ii)一个或多个网络接口电路125以及(iii)增强能力CXL交换机130。增强能力CXL交换机130可连接到多个存储器模块(MEM)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可包括一个或多个电路(例如,增强能力CXL交换机130可包括FPGA或ASIC),一个或多个电路用于(i)基于工作负载将数据路由到不同存储器类型,(ii)将主机地址虚拟化为装置地址和/或(iii)旁路处理电路115促进不同服务器之间的RDMA请求。

存储器模块135可处于可包括预定数量(例如,多于20个或多于100个)的存储器模块135(每个存储器模块135插入合适的连接器)的扩展盒中(例如,与容纳包封件的主板的包封件在同一机架(rack)中)。存储器模块可以处于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、夹层卡(mezzanine card)、子卡(daughter card)、E1.S、E1.1、E3.1以及E3.S。

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

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

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

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

如上所述,在一些实施例中,存储器模块135被组织成组(例如,组织成存储器密集的一个组、HBM拥挤(heavy)的另外的组、具有有限密度和性能的另外的组、以及具有密集容量的另外的组)。这样的组可具有不同形状因子或者可基于不同技术。增强能力CXL交换机130的控制器137可基于例如工作负载、标记或服务质量(QoS)智能地路由数据和命令。针对读取请求,可不存在基于这样的因素的路由。

增强能力CXL交换机130的控制器137还可(如上所述)虚拟化处理电路侧地址和存储器侧地址,使得增强能力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之后的一个存储器模块135被发送到另外的存储器模块135(例如,数据可从一个存储器模块135被复制到另外的存储器模块135),而无需去往处理电路115。在这样的情形中,因为处理电路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请求),并且增强能力CXL交换机130可发送对RDMA请求的直接响应(即,增强能力CXL交换机130可发送响应而不通过本地服务器中的处理电路115路由)。在远程服务器中,响应(例如,由本地服务器发送的数据)可由远程服务器的增强能力CXL交换机130接收,并且被存储在远程服务器的存储器模块135中,而不通过远程服务器中的处理电路115路由。

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

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

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

在图1E的实施例中,服务器链接交换机112可对从不同服务器105接收的多个高速缓存请求进行分组或批处理,并且服务器链接交换机112可对包进行分组,从而减少控制开销。增强能力CXL交换机130可包括从控制器(例如,从FPGA或从ASIC),从控制器(例如,从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标准的早期版本或未来版本,或者符合不同标准(例如,NVDIMM-P、CCIX或OpenCAPI)的接口可被采用来代替PCIe接口。存储器模块135可包括包含DDR4 DRAM、HBM、LDPPR、NAND闪存或固态驱动器(SSD)的各种存储器类型。存储器模块135可被分区或包含高速缓存控制器以处理多种存储器类型,并且它们可处于不同形状因子(诸如,HHHL、FHHL、M.2、U.2、夹层卡、子卡、E1.S、E1.1、E3.1或E3.S)。

在图1E的实施例中,增强能力CXL交换机130可实现一对多交换和多对一交换,并且增强能力CXL交换机130可以以微片(flit)(64字节)级别实现细粒度加载-存储接口(fine grain load-store interface)。每个服务器可具有聚合的存储器装置,每个装置被划分为各自具有相应的LD-ID的多个逻辑装置。ToR交换机112(可被称为“服务器链接交换机”)实现一对多功能,服务器105中的增强能力CXL交换机130实现多对一功能。服务器链接交换机112可以是PCIe交换机或CXL交换机或两者。在这样的系统中,请求方可以是多个服务器105的处理电路115,响应方可以是许多聚合的存储器模块135。两个交换机的分层结构(如上所述,主交换机是服务器链接交换机112,从交换机是增强能力CXL交换机130)能够进行任何通信。每个存储器模块135可具有一个物理功能(PF)和多达16个隔离的逻辑装置。在一些实施例中,逻辑装置的数量(例如,分区的数量)可被限制(例如,被限制为16),并且还可存在一个控制分区(这可以是用于控制装置的物理功能)。每个存储器模块135可以是用于对处理电路115可保存的高速缓存行副本进行处理的具有CXL.cache、CXL.memory和CXL.io以及地址转换服务(ATS)实现的2型装置。增强能力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。

在一些实施例中,使用促进高可用性的加载-存储接口的软件架构。这样的软件架构可提供可靠性、复制性、一致性(consistency)、系统一致性(system coherence)、哈希(hashing)、高速缓存和持久性。软件架构可通过经由IPMI执行CXL装置组件的周期性硬件检查来提供可靠性(在具有大量服务器的系统中)。例如,服务器链接交换机112可通过存储器服务器150的查询例如电力状态(存储器服务器150的电源是否正常操作)、网络状态(到服务器链接交换机112的接口是否正常操作)和错误检查状态(在存储器服务器150的任何子系统中是否存在错误状况)的IPMI接口来查询存储器服务器150的状态。软件架构可提供复制,因为主控制器可复制存储在存储器模块135中的数据并且横跨副本保持数据一致性。

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

软件架构可提供哈希,因为服务器链接交换机112和增强能力CXL交换机130可保持地址的虚拟映射,其可使用具有多个哈希功能的一致性哈希来在启动时将数据均匀地映射到横跨所有节点的所有CXL装置(或者当一个服务器发生故障或出现时进行调整)。软件架构可提供高速缓存,因为主控制器可(例如,在包括HBM或具有类似能力的技术的存储器模块135中)指定特定存储器分区以充当高速缓存(例如,采用直写(write-through)高速缓存或回写(write-back)高速缓存)。软件架构可提供持久性,因为主控制器和从控制器可管理持久性域和冲刷。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

图2A至图2D是各种实施例的流程图。在这些流程图的实施例中,处理电路115是CPU;在其它实施例中,处理电路115可以是其它处理电路(例如,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请求路由到远程服务器105,以便由存储器模块135的控制器137或由远程增强能力CXL交换机130经由对远程聚合的存储器的RDMA访问进行处理;在220,ToR以太网交换机110经由RDMA旁路本地处理电路115接收处理后的数据,并且将该数据路由到本地存储器模块135或者路由到本地增强能力CXL交换机130;并且,在222,图1A和图1B的实施例的存储器模块135的控制器137或增强能力CXL交换机130直接地接收RDMA响应(例如,不由处理电路115转发RDMA响应)。

在这样的实施例中,远程存储器模块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条留言

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

精彩留言,会给你点赞!

技术分类