CN113742256A - 用于可扩展且一致性存储器装置的系统和方法 - Google Patents
用于可扩展且一致性存储器装置的系统和方法 Download PDFInfo
- Publication number
- CN113742256A CN113742256A CN202110589980.3A CN202110589980A CN113742256A CN 113742256 A CN113742256 A CN 113742256A CN 202110589980 A CN202110589980 A CN 202110589980A CN 113742256 A CN113742256 A CN 113742256A
- Authority
- CN
- China
- Prior art keywords
- memory
- controller
- cache
- data
- cxl
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0817—Cache consistency protocols using directory methods
- G06F12/0824—Distributed directories, e.g. linked lists of caches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0646—Configuration or reconfiguration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0813—Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0868—Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0871—Allocation or management of cache space
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0891—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
- G06F12/0897—Caches characterised by their organisation or structure with two or more cache hierarchy levels
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/1642—Handling requests for interconnection or transfer for access to memory bus based on arbitration with request queuing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4234—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17306—Intercommunication techniques
- G06F15/17331—Distributed shared memory [DSM], e.g. remote direct memory access [RDMA]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30047—Prefetch instructions; cache control instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0284—Multiple user address space allocation, e.g. using different base addresses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0888—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1048—Scalability
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/15—Use in a specific computing environment
- G06F2212/154—Networked environment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/21—Employing a record carrier using a specific recording technology
- G06F2212/217—Hybrid disk, e.g. using both magnetic and solid state storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/28—Using a specific disk cache architecture
- G06F2212/283—Plural cache memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/601—Reconfiguration of cache memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0026—PCI express
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- Human Computer Interaction (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
提供了用于可扩展且一致性存储器装置的系统和方法。所述方法可包括:根据高速缓存一致性协议来操作耦接到网络接口的第一控制器;使用耦接到第一控制器且耦接到第一存储器的第二控制器对与高速缓存相关联的数据执行至少一个操作;并且将所述数据存储在耦接到第一控制器或第二控制器中的一个的第二存储器上。
Description
本申请要求于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 WITHCACHE-COHERENT MEMORY AND SERVER-LINKING SWITCH FIELD)”的第63/068,054号美国临时申请的优先权和权益、以及于2020年7月28日提交的题为“具有新型互连的分解式存储器架构(DISAGGREGATED MEMORY ARCHITECTURE WITH NOVEL INTERCONNECTS)”的第63/057,746号美国临时申请的优先权和权益、以及于2021年4月30日提交的第17/246,448号美国临时申请的优先权和权益,所述美国临时申请的全部内容通过引用包含于此。
技术领域
本公开总体涉及高速缓存一致性,并且更具体地,涉及用于可扩展且一致性存储器装置的系统和方法。
背景技术
一些服务器系统可包括通过网络协议连接的服务器的集合。这样的系统中的每个服务器可包括处理资源(例如,处理器)和存储器资源(例如,系统存储器)。在一些情况下,一个服务器的处理资源访问另一服务器的存储器资源可以是有利的,并且在最小化任一服务器的处理资源的同时进行这种访问可以是有利的。
因此,需要一种用于管理包括一个或更多个服务器的系统中的存储器资源的改进的系统和方法。
在本背景技术部分公开的以上信息仅用于增强对公开的背景技术的理解,因此,它可包含不构成现有技术的信息。
发明内容
在各种实施例中,这里的描述包括用于提供存储资源的系统、方法和设备。具体地,描述了一种装置,所述装置包括:耦接到网络接口的第一控制器,其中,第一控制器能够利用高速缓存一致性协议进行操作;第二控制器,耦接到第一控制器且耦接到第一存储器,其中,第二控制器执行与所述装置的高速缓存相关联的至少一个操作;以及第二存储器,耦接到第一控制器或第二控制器中的至少一个。
在一些实施例中,所述装置可从主机接收配置信息;配置所述装置以在操作的启动时间模式下将第二控制器作为基于软件的高速缓存或基于硬件的高速缓存中的一个进行操作;经由第一控制器,使用所述高速缓存一致性协议经由所述网络接口接收数据;对所述数据执行至少一个第二操作以生成第二数据,并且基于所述高速缓存一致性协议将第二数据存储在第二存储器上。在另一实施例中,高速缓存一致性协议可包括快速计算链路(CXL)协议,并且其中,所述装置还包括确定与所述装置相关联的至少一个能力并将所述能力提供给主机的剖析器。
在其它实施例中,所述装置还包括耦接到第三存储器的第三控制器,其中,第三存储器包括非易失性存储器。在各种实施例中,第一存储器包括第一易失性存储器,并且第二存储器包括第二易失性存储器。在其他实施例中,第一易失性存储器包括双倍数据速率存储器或低功率双倍数据速率存储器。在一些实施例中,第一存储器包括第一非易失性存储器,并且第二存储器包括第二非易失性存储器。在实施例中,第一非易失性存储器包括三维闪存。
在各种实施例中,所述装置包括M.2形状因子、E1.L形状因子、E1.S形状因子、E3S/L形状因子、U.2形状因子、NF1形状因子、全高半长(FHHL)插卡(AIC)形状因子或半高半长(HHHL)AIC形状因子中的至少一个。
在其他实施例中,第二控制器包括流控制模块、高速缓存寻址模块或高速缓存策略模块中的至少一个。在一些实施例中,第二控制器包括信道请求队列、易失性存储器请求调度器或易失性存储器命令调度器中的至少一个。在其他实施例中,所述装置还包括加速器或网络接口卡(NIC)。
类似地,用于执行如上所述的基本相同或类似的操作的系统和方法进一步被公开。
因此,在此描述的主题的特定实施例可被实施,使得实现下面的优点中的一个或更多个。降低网络延迟、提高网络稳定和操作数据传送速率,继而改善用户体检。降低与路由网络流量、网络维护、网络升级等相关联的成本。此外,在一些方面,公开的系统可用于降低网络上的装置的功耗和/或带宽,并且可用于提高装置之间通信的速度和/或效率。
附图说明
当考虑下面的附图理解本申请时,将更好地理解本技术的上述方面和其他方面,附图中相同的标号表示相似或相同的元件:
图1A是根据本公开的实施例的用于使用高速缓存一致性连接将存储器资源附接到计算资源的系统的框图;
图1B是根据本公开的实施例的采用扩展插槽适配器的用于使用高速缓存一致性连接将存储器资源附接到计算资源的系统的框图;
图1C是根据本公开的实施例的用于采用以太网架顶式(ToR)交换机来聚合存储器的系统的框图;
图1D是根据本公开的实施例的采用以太网ToR交换机和扩展插槽适配器的用于聚合存储器的系统的框图;
图1E是根据本公开的实施例的用于聚合存储器的系统的框图;
图1F是根据本公开的实施例的采用扩展插槽适配器的用于聚合存储器的系统的框图;
图1G是根据本公开的实施例的用于分解式服务器的系统的框图;
图2描绘了根据公开的示例实施例的代表性系统架构的示图,其中,公开的实施例的各方面可结合能够通信和配置结合图1A至图1G描述的各种服务器的管理计算实体进行操作。
图3A描绘了根据公开的示例实施例的代表性系统架构的第一示图,其中,公开的实施例的各方面可结合能够通信和配置结合图1A至图1G描述的各种服务器的管理计算实体进行操作。
图3B描绘了根据公开的示例实施例的代表性系统架构的第二示图,其中,公开的实施例的各方面可结合能够通信和配置结合图1A至图1G描述的各种服务器的管理计算实体进行操作。
图3C描绘了根据公开的示例实施例的代表性系统架构的第三示图,其中,公开的实施例的各方面可结合能够通信和配置结合图1A至图1G描述的各种服务器的管理计算实体进行操作。
图3D描绘了根据公开的示例实施例的代表性系统架构的第四示图,,公开的实施例的各方面可结合能够通信和配置结合图1A至图1G描述的各种服务器的管理计算实体进行操作。
图4描绘了根据公开的示例实施例的可表征结合图1A至图1G描述的服务器的各方面的代表性参数表的示图,其中,管理计算实体基于参数表来配置各种服务器。
图5示出根据本公开的实例实施例的针对存储器装置的不同配置的示图。
图6是根据本公开的示例实施例的与装置相关参数相关联的示例性表的图示。
图7是根据本公开的实例实施例的示例性高速缓存一致性装置微架构的图示。
图8是根据本公开的示例实施例的用于资源管理的示例性装置的图示。
图9是根据本公开的示例实施例的示例性高速缓存一致性装置的图示。
图10是根据本公开的示例实施例的包括与所公开的系统相关联的示例操作的示例性流程的图示。
图11示出可用于实践本公开的实施例的系统的示例示意图。
图12示出根据公开的示例实施例的管理计算实体的示例示意图。
图13示出根据公开的示例实施例的用户装置的示例示意图。
虽然本技术易于进行各种修改和替代形式,但是本技术的具体实施例在附图中以示例的方式示出并且将在此进行描述。附图可不按比例。然而,应当理解,附图及其详细描述不意在将本技术限制于公开的特定形式,而是相反,意图在于覆盖落入由所附权利要求限定的本技术的精神和范围内的所有修改、等同物和替代物。
具体实施方式
在附图和下面的描述中阐述了在此描述的主题的一个或更多个实施例的细节。根据说明书、附图和权利要求书,主题的其他特征、方面和优点将变得清楚。
现在将在下文中参照附图更全面地描述本公开的各种实施例,在附图中示出了一些但不是所有实施例。实际上,公开可以以许多不同的形式实施,并且不应被解释为限于在此阐述的实施例;相反,提供这些实施例使得本公开将满足适用的法律要求。除非另外指示,否则术语“或”在此以可选和结合的含义使用。术语“说明性”和“示例”用作不指示质量水平的示例。相同的标号始终表示相同的元件。每个图中的箭头描绘了双向数据流和/或双向数据流能力。术语“路径”、“通路”和“路线”在此可互换使用。
本公开的实施例可以以各种方式实现,包括包含制造品的计算机程序产品。计算机程序产品可包括存储应用、程序、程序组件、脚本、源代码、程序代码、目标代码、字节代码、编译代码、解释代码、机器代码、可执行指令等(在此也称为可执行指令、用于执行的指令、计算机程序产品、程序代码和/或在此可互换使用的类似术语)的非暂时性计算机可读存储介质。这样的非暂时性计算机可读存储介质包括所有计算机可读介质(包括易失性和非易失性介质)。
在一个实施例中,非易失性计算机可读存储介质可包括软盘、柔性盘、硬盘、固态存储装置(SSS)(例如,固态驱动器(SSD))、固态卡(SSC)、固态组件(SSM)、企业级闪存驱动器、磁带或任何其他非暂时性磁介质等。非易失性计算机可读存储介质还可包括穿孔卡、纸带、光学标记片材(或具有孔图案或其他光学可识别标记的任何其他物理介质)、光盘只读存储器(CD-ROM)、可重写光盘(CD-RW)、数字通用盘(DVD)、蓝光盘(BD)、任何其他非暂时性光学介质等。这样的非易失性计算机可读存储介质还可包括只读存储器(ROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、闪存(例如,串行、NAND、NOR等)、多媒体存储卡(MMC)、安全数字(SD)存储卡、智能媒体(Smart Media)卡、紧凑式闪存(CF)卡、记忆棒等。此外,非易失性计算机可读存储介质还可包括导电桥接式随机存取存储器(CBRAM)、相变随机存取存储器(PRAM)、铁电随机存取存储器(FeRAM)、非易失性随机存取存储器(NVRAM)、磁阻随机存取存储器(MRAM)、电阻式随机存取存储器(RRAM)、硅-氧化物-氮化物-氧化物-硅存储器(SONOS)、浮动结栅极随机存取存储器(FJGRAM)、Millipede存储器、赛道存储器(racetrack memory)等。
在一个实施例中,易失性计算机可读存储介质可包括随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、快速页模式动态随机存取存储器(FPM DRAM)、扩展数据输出动态随机存取存储器(EDO DRAM)、同步动态随机存取存储器(SDRAM)、双倍数据速率同步动态随机存取存储器(DDR SDRAM)、双倍数据速率二型同步动态随机存取存储器(DDR2 SDRAM)、双倍数据速率三型同步动态随机存取存储器(DDR3SDRAM)、Rambus动态随机存取存储器(RDRAM)、双晶体管RAM(TTRAM)、晶闸管RAM(T-RAM)、零电容器(Z-RAM)、Rambus直插式存储器组件(RIMM)、双列直插式存储器组件(DIMM)、单列直插式存储器组件(SIMM)、视频随机存取存储器(VRAM)、高速缓存存储器(包括各种级别)、闪存、寄存器存储器等。将理解,在实施例被描述为使用计算机可读存储介质的情况下,其他类型的计算机可读存储介质可替代上述计算机可读存储介质,或者除了上述计算机可读存储介质之外还可使用其他类型的计算机可读存储介质。
应当理解,本公开的各种实施例还可实现为方法、设备、系统、计算装置、计算实体等。因此,本公开的实施例可采取执行存储在计算机可读存储介质上的指令以执行特定步骤或操作的设备、系统、计算装置、计算实体等的形式。因此,本公开的实施例还可采取完全硬件实施例、完全计算机程序产品实施例和/或包括执行特定步骤或操作的硬件和计算机程序产品的组合的实施例的形式。
以下参照框图和流程图图示描述本公开的实施例。因此,应当理解,框图和流程图图示的每个框可以以计算机程序产品、完全硬件实施例、硬件和计算机程序产品的组合、和/或执行计算机可读存储介质上的用于执行的指令、操作、步骤和可互换使用的类似词语(例如,可执行指令、用于执行的指令、程序代码等)的设备、系统、计算装置、计算实体等的形式实现。例如,代码的检索、加载和执行可被顺序地执行,使得一次检索、加载和执行一个指令。在一些示例实施例中,检索、加载和/或执行可被并行地执行,使得一起检索、加载和/或执行多个指令。因此,这样的实施例可产生执行框图和流程图图示中指定的步骤或操作的专门配置的机器。因此,框图和流程图图示支持用于执行指定指令、操作或步骤的实施例的各种组合。
在一些方面,随着数据需求的增加,联网计算和存储会面临一些问题。具体地,超大规模工作负载要求变得越来越苛刻,因为除了具有高带宽分配需求之外,工作负载还可表现出存储器和输入/输出(IO)延迟的多样性。此外,一些现有系统可在不重新配置硬件机架系统的情况下具有降低的资源弹性,这可导致会妨碍数据处理和存储要求的低效率。此外,计算和存储器资源越来越紧密地结合,并且对一个的增加的要求可能影响对另一个的要求。此外,整个行业面临可行的分布式共享存储器和大地址空间系统的短缺。在一些方面,固定资源可增加所有权成本(例如,对于基于数据中心的环境),并且还可限制子系统的峰值性能。在一些方面,在这样的环境中使用的硬件可具有不同的替换周期和相关联的时间线,这可能进一步使这样的系统的更新复杂化。因此,需要改进联网计算系统中的资源共享和与工作负载的匹配。
在一些实施例中,高速缓存一致性协议(诸如,快速计算链路(CXL))可实现存储器扩展和一致性加速器。在各种实施例中,公开的系统可使用高速缓存一致性协议(诸如,CXL)来实现一类存储器系统和加速器,而适应不同的工作负载需要唯一的配置。因此,公开的系统可通过利用向例如在数据中心的一个或更多个集群中横跨机架运行的每个工作负载呈现系统视图的结构和架构来实现可组合的高速缓存一致性(例如,CXL)存储器和加速器资源。在一些方面,公开的系统可用于将高速缓存一致性扩展到单个服务器之外,基于工作负载需求提供异构机架的管理,并且提供资源的可组合性。此外,在一些示例中,通过PCIe结构的CXL可用作另一协议的对应物(诸如,基于结构的非易失性存储器快速(NVMeoF),其可用于远程I/O装置的可组成性)。如在此所使用的,可组合可表示这样的属性,通过该属性,给定装置(例如,特定集群中的启用高速缓存一致性的装置)可从网络的不同部分(例如,第二集群中的至少一个其他启用高速缓存一致性的装置)请求和/或获得资源(例如,存储器、计算和/或网络资源)(例如用于执行工作负载的至少一部分)。在一些实施例中,如在此所使用的,可组成性可包括将物理和虚拟计算、存储和结构资源的流体池使用到任何合适的配置中以运行任何应用或工作负载。
在各种实施例中,公开的系统可包括一个或更多个架构组件,所述一个或更多个架构组件包括具有可被配置为执行与控制平面相关联的各种操作的一个或更多个处理器(例如,RISC-V处理器)的高速缓存一致性CXL模块。此外,公开的系统可能够使用高速缓存一致性CXL资源的一个或更多个同构池,这将在下面进一步讨论。具体地,公开的系统可以以管理计算装置为特征,用于暴露和利用高速缓存一致性资源的性能和容量以及加速特性以供各种网络装置使用。具体地,管理计算装置可确定与管理计算装置所操作的系统相关联的一个或更多个参数,并且基于参数将工作负载路由到不同的集群。
在各种实施例中,公开的系统可能够使用多个同构资源池,每个池专用于特定的高速缓存一致性架构。具体地,公开的系统可使用A型集群(可表示具有直连式存储器扩展装置(SCM、DRAM、DRAM-ZNAND混合)的服务器的集合)、B型集群(可表示CXL 2型可组合一致性加速器的集合)、C型集群(可包括在具有后门PCIe互连的分布式存储器系统架构中连接的CXL装置,由此进程共享相同的地址空间)、以及D型集群(包括在相同结构(例如,机箱)中的物理集群存储器和加速器扩展)。
在各种实施例中,包括管理计算装置的公开的系统可以以智能装置架构为特征。具体地,公开的系统可以以插入高速缓存一致性接口(例如,CXL/PCIe5接口)的装置为特征,并且可实现各种高速缓存和存储器协议(例如,基于2型装置的CXL高速缓存和CXL存储器协议(type-2device based CXL.cache and CXL.memory protocol))。此外,在一些示例中,装置可包括可编程控制器或处理器(例如,RISC-V处理器),可编程控制器或处理器可被配置为将远程一致性装置呈现为使用高速缓存一致性协议(例如,CXL.IO协议)协商的本地系统的一部分。
在各种实施例中,公开的系统可实现基于集群级性能的控制和管理能力,由此可基于远程架构配置和装置性能、功率特性等自动地路由(例如,经由算法方法和/或基于机器学习的方法)工作负载。在一些示例中,公开的系统可至少部分地经由ASIC电路、FPGA单元等进行编程。此外,这样的装置可实现基于AI的技术(例如,基于机器学习的方法)以如在此示出和描述的那样路由工作负载。此外,公开的系统可使用管理计算实体来基于预定标准(例如,每单位货币或功率的最佳性能)执行发现和/或工作负载分区和/或资源绑定。此外,管理计算实体可基于系统的各种参数来执行这样的操作,这些参数包括但不限于基于高速缓存一致性协议(例如,基于CXL)的往返时间、装置是主机偏置还是装置偏置的确定、基于高速缓存一致性协议(例如,基于CXL)的交换机层级和/或主机上游端口到装置下游端口的绑定、基于高速缓存一致性协议(例如,基于CXL)的交换机结构管理器配置、基于高速缓存一致性协议(例如,基于CXL)的协议数据包或物理介质数据包(例如,CXL.IO或PCIe介入批量4KB数据包)、网络延迟、基于高速缓存一致性协议(例如,基于CXL)的存储器技术(例如,存储器类型)、它们的组合等。
在各种实施例中,管理计算实体可在机架和/或集群级别操作和/或可至少部分地在作为给定集群架构(例如,A、B、C和/或D型集群)的一部分的给定装置(例如,启用高速缓存一致性的装置)内进行操作。在各种实施例中,给定集群架构内的装置可执行管理计算实体的操作的第一部分,而管理计算实体的操作的另一部分可在机架上和/或在集群级别实现。在一些实施例中,可以以协调的方式执行操作的两个部分(例如,集群中的装置向在机架上和/或在集群级别实现的管理计算实体发送协调消息和从管理计算实体接收协调消息)。在一些实施例中,与集群中的装置相关联的操作的第一部分可包括但不限于用于确定装置或集群的当前或未来资源需求、通告装置或集群的当前或未来资源可用性、同步与在装置或集群级别运行的算法相关联的特定参数、训练与装置或机架/集群的操作相关联的一个或更多个机器学习模块、记录与路由工作负载相关联的相应数据、它们的组合等的操作。
快速外围组件互连(PCIe)可表示可具有相对高且可变的延迟的计算机接口,延迟可限制计算机接口在与存储器进行连接时的有用性。CXL是用于通过PCIe 5.0进行通信的开放行业标准,可提供固定的、相对短的数据包大小,因此可能够提供相对高的带宽和相对低的固定的延迟。因此,CXL能够支持高速缓存一致性,并且CXL可以非常适合于连接到存储器。CXL还可用于提供主机与加速器、存储器装置和服务器中的网络接口电路(或“网络接口控制器”或“网络接口卡(NIC)”)之间的连接。
高速缓存一致性协议(诸如,CXL)也可用于异构处理(例如,在标量、矢量和缓冲存储器系统中)。CXL可用于利用信道、重定时器、系统的PHY层、接口的逻辑方面以及来自PCIe5.0的协议来提供高速缓存一致性接口。CXL事务层可包括在单链路上同时运行的三个复用的子协议,并且可被称为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连接用于存储器(例如,多个存储器,包括连接在一起的多个存储器单元)的聚合或“池化”可在包括通过网络连接在一起的多个服务器的系统中提供各种优点。例如,除了为CXL数据包提供分组交换功能之外还具有其他能力的CXL交换机(在此被称为“增强能力CXL交换机”)可用于将存储器的聚合连接到一个或更多个中央处理器(CPU)(或“中央处理电路”)和一个或更多个网络接口电路(可具有增强的能力)。这样的配置可使得(i)存储器的聚合可包括具有不同特性的各种类型的存储器,(ii)增强能力CXL交换机可虚拟化存储器的聚合,并且将不同特性(例如,访问频率)的数据存储在适当类型的存储器中,(iii)增强能力CXL交换机可支持远程直接存储器访问(RDMA),使得可在很少或没有来自服务器的处理电路的参与的情况下执行RDMA。如在此所使用的,“虚拟化”存储器意味着在处理电路与存储器之间执行存储器地址转换。
CXL交换机可以(i)通过单级交换支持存储器和加速器分解,(ii)使得资源能够在域之间离线和在线,这可基于需求实现跨域的时分复用,以及(iii)支持下游端口的虚拟化。CXL可用于实现聚合存储器,聚合存储器可实现一对多和多对一交换(例如,它可以能够(i)将多个根端口连接到一个端点,(ii)将一个根端口连接到多个端点,或(iii)将多个根端口连接到多个端点),其中,在一些实施例中,聚合装置被划分为多个逻辑装置,每个逻辑装置各自具有相应的LD-ID(逻辑装置标识符)。在这样的实施例中,物理装置可被划分为多个逻辑装置,每个逻辑装置对相应的发起者可见。装置可具有一个物理功能(PF)和多个(例如,16个)隔离的逻辑装置。在一些实施例中,逻辑装置的数量(例如,分区的数量)可被限制(例如,限制为16),并且还可存在一个控制分区(可以是用于控制装置的物理功能)。
在一些实施例中,架构管理器可被采用,用于(i)执行装置发现和虚拟CXL软件创建和(ii)将虚拟端口绑定到物理端口。这样的结构管理器可通过SMBus边带连接进行操作。结构管理器可以以硬件、或软件、或固件、或它们的组合来实现,并且它可存在于例如主机中、存储器模块135之一中、或增强型能力高速缓存一致性交换机130中、或网络中的其他地方。在一些实施例中,高速缓存一致性交换机可以是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分开封装。
在各种实施例中,管理计算实体102(将在下面详细描述)可被配置为包括处理元件(例如,处理器、FPGA、ASIC、控制器等),处理元件可监测与网络的任何部分相关联的一个或更多个参数(例如,以太网流量、数据中心参数、ToR以太网交换机110参数、与服务器105相关联的参数、网络接口电路(NIC)125的关联参数、一个或更多个CXL存储器模块135的关联参数、它们的组合等),以将工作负载和/或工作负载的部分路由到网络的不同部分(包括在此描述的图1A至图1G的任何合适的元件)。此外,如上所述,在各种实施例中,公开的系统可实现基于集群级性能的控制和管理能力,由此工作负载可基于远程架构配置和装置性能、功率特性等自动地路由(例如,经由算法方法和/或基于机器学习的方法)。在一些示例中,公开的系统可至少部分地经由ASIC电路、FPGA单元等进行编程。此外,这样的装置可实现基于AI的技术(例如,基于机器学习的方法)以如在此所示出和描述的那样路由工作负载。此外,公开的系统可使用管理计算实体来基于预定标准(例如,每单位货币或功率的最佳性能)执行发现和/或工作负载分区和/或资源绑定。此外,管理计算实体可基于系统的各种参数来执行这样的操作,这些参数包括但不限于:基于高速缓存一致性协议(例如,基于CXL)的往返时间、装置是主机偏置还是装置偏置的确定、基于高速缓存一致性协议(例如,基于CXL)的交换机层级和/或主机上游端口到装置下游端口的绑定、基于高速缓存一致性协议(例如,基于CXL)的交换机结构管理器配置、基于高速缓存一致性协议(例如,基于CXL)的协议数据包或物理介质数据包(例如,CXL.IO或PCIe中间批量4KB数据包)、网络延迟、基于高速缓存一致性协议(例如,基于CXL)的存储器技术(例如,存储器类型)、它们的组合等。
如在此所使用的,“存储器模块”是包括一个或更多个存储器裸片的封装件(例如,包括印刷电路板和与之连接的部件的封装件,或包括印刷电路板的包封件),每个存储器裸片包括多个存储器单元。每个存储器裸片或多组存储器裸片的集合中的每个可处于焊接到存储器模块的印刷电路板(或通过连接器连接到存储器模块的印刷电路板)的封装件(例如,环氧树脂模塑料(EMC)封装件)中。每个存储器模块135可具有CXL接口,并且可包括用于在CXL数据包与存储器裸片的存储器接口(例如,适合于存储器模块135中的存储器的存储器技术的信号)之间转换的控制器137(例如,FPGA、ASIC、处理器等)。如在此所使用的,存储器裸片的“存储器接口”是存储器裸片的技术固有的接口(例如,在DRAM的情况下,存储器接口可以是字线和位线)。存储器模块还可包括如下面进一步详细描述的可提供增强的能力的控制器137。每个存储器模块135的控制器137可通过高速缓存一致性接口(例如,通过CXL接口)连接到处理电路115。控制器137还可促进不同的服务器105之间的数据传输(例如,RDMA请求),从而绕过处理电路115。ToR以太网交换机110和网络接口电路125可包括RDMA接口,以促进不同服务器上的CXL存储器装置之间的RDMA请求(例如,ToR以太网交换机110和网络接口电路125可通过融合以太网的RDMA(RoCE)、Infiniband和iWARP数据包提供硬件卸载或硬件加速)。
系统中的CXL互连可符合高速缓存一致性协议(诸如,CXL 1.1标准),或者在一些实施例中,符合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),并且可根据各种相关形状因子(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的管理装置,并且帮助主机控制平面处理,并且它可实现丰富的控制语义和统计。控制器137可包括附加的“后门”(例如,100千兆以太网(GbE))网络接口电路125。在一些实施例中,控制器137作为2型CXL装置呈现给处理电路115,使得能够在接收到远程写入请求时向处理电路115发出高速缓存失效指令。在一些实施例中,DDIO技术被启用,并且远程数据首先被拉取到处理电路的最后一级缓存(LLC),并且稍后(从缓存)被写入到存储器模块135。如在此所使用的,“2型”CXL装置是能发起事务并且实现可选的一致性高速缓存和主机管理的装置存储器的CXL装置,并且其适用的事务类型包括所有CXL.cache和所有CXL.memory事务。
如上所述,存储器模块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的服务器间连接的示例包括(但不限于)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可通过点对点PCIe连接与网络接口电路125通信。
根据本发明的实施例,提供了一种系统,所述系统包括:第一服务器,包括存储程序处理电路、第一网络接口电路和第一存储器模块,其中,第一存储器模块包括第一存储器裸片和控制器,控制器通过存储器接口连接到第一存储器裸片,控制器通过高速缓存一致性接口连接到存储程序处理电路,并且连接到第一网络接口电路。在一些实施例中,第一存储器模块还包括第二存储器裸片,第一存储器裸片包括易失性存储器,第二存储器裸片包括持久性存储器。在一些实施例中,持久性存储器包括NAND闪存。在一些实施例中,控制器被配置为提供用于持久性存储器的闪存转换层。在一些实施例中,高速缓存一致性接口包括快速计算链路(CXL)接口。在一些实施例中,第一服务器包括连接到第一服务器的扩展插槽的扩展插槽适配器,扩展插槽适配器包括第一存储器模块和第一网络接口电路。在一些实施例中,第一存储器模块的控制器通过扩展插槽连接到存储程序处理电路。在一些实施例中,扩展插槽包括M.2插槽。在一些实施例中,第一存储器模块的控制器通过点对点外围组件互连快速(PCIe)连接而连接到第一网络接口电路。在一些实施例中,所述系统还包括第二服务器和连接到第一服务器和第二服务器的网络交换机。在一些实施例中,网络交换机包括架顶式(ToR)以太网交换机。在一些实施例中,第一存储器模块的控制器被配置为接收远程直接存储器访问(RDMA)请求,并且发送RDMA响应。在一些实施例中,第一存储器模块的控制器被配置为通过网络交换机并通过第一网络接口电路接收远程直接存储器访问(RDMA)请求,并且通过网络交换机并通过第一网络接口电路发送RDMA响应。在一些实施例中,第一存储器模块的控制器被配置为:从第二服务器接收数据;将数据存储在第一存储器模块中;以及向存储程序处理电路发送用于使高速缓存行失效的命令。在一些实施例中,第一存储器模块的控制器包括现场可编程门阵列(FPGA)或专用集成电路(ASIC)。根据本发明的实施例,提供一种用于在计算系统中执行远程直接存储器访问的方法,计算系统包括第一服务器和第二服务器,第一服务器包括存储程序处理电路、网络接口电路和包括控制器的第一存储器模块,所述方法包括:由第一存储器模块的控制器接收远程直接存储器访问(RDMA)请求;以及由第一存储器模块的控制器发送RDMA响应。在一些实施例中,计算系统还包括连接到第一服务器和第二服务器的以太网交换机,并且接收RDMA请求的步骤包括通过以太网交换机接收RDMA请求。在一些实施例中,所述方法还包括:由第一存储器模块的控制器从存储程序处理电路接收针对第一存储器地址的读命令,由第一存储器模块的控制器将第一存储器地址转换为第二存储器地址,以及由第一存储器模块的控制器在第二存储器地址处从第一存储器模块检索数据。在一些实施例中,所述方法还包括:由第一存储器模块的控制器接收数据,由第一存储器模块的控制器将数据存储在第一存储器模块中,以及由第一存储器模块的控制器向存储程序处理电路发送用于使高速缓存行失效的命令。根据本发明的实施例,提供一种系统,所述系统包括:第一服务器,包括存储程序处理电路、第一网络接口电路和第一存储器模块,其中,第一存储器模块包括第一存储器裸片和控制器装置,控制器装置通过存储器接口连接到第一存储器裸片,控制器装置通过高速缓存一致性接口连接到存储程序处理电路,并且连接到第一网络接口电路。
参照图1C,在一些实施例中,服务器系统包括通过架顶式(ToR)以太网交换机110连接在一起的多个服务器105。每个服务器包括一个或更多个处理电路115,每个处理电路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)促进不同服务器之间的RDMA请求,从而绕过处理电路115。
存储器模块135可处于可包括预定数量(例如,多于20个或多于100个)的存储器模块135的扩展盒中(例如,在与容纳包封件的主板的包封件相同的机架中),每个存储器模块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、夹层卡(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数据包的交换之外的附加特征。例如,它可(如上所述)虚拟化存储器模块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拥挤(heavy)的另一个组、具有有限密度和性能的另一个组、以及具有密集容量的另一个组)。这样的组可具有不同的形状因子或者基于不同的技术。增强能力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之后将数据从一个存储器模块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请求),并且它可发送对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的控制器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能力的PCIe 5.0CXL交换机(也称为ToRPCIe5交换机)。服务器链接交换机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)促进不同服务器105之间的一致性请求,从而绕过处理电路115。图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可实现一对多和多对一交换,并且它可在微片(64字节)级别实现细粒度加载-存储接口。每个服务器可具有聚合的存储器装置,每个装置被划分为各自具有相应的LD-ID的多个逻辑装置。ToR交换机112(可被称为“服务器链接交换机”)实现一对多功能,并且服务器105中的增强能力CXL交换机130实现多对一功能。服务器链接交换机112可以是PCIe交换机或CXL交换机或两者。在这样的系统中,请求方可以是多个服务器105的处理电路115,响应方可以是许多聚合的存储器模块135。两个交换机的层次结构(如上所述,主交换机是服务器链接交换机112,并且从交换机是增强能力CXL交换机130)使得能够进行任何通信。每个存储器模块135可具有一个物理功能(PF)和多达16个隔离的逻辑装置。在一些实施例中,逻辑装置的数量(例如,分区的数量)可被限制(例如,限制为16),并且还可存在一个控制分区(可以是用于控制装置的物理功能)。存储器模块135中的每一个可以是具有CXL.cache、CXL.memory和CXL.io以及地址转换服务(ATS)实现的2型装置,以对处理电路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请求。在这样的实施例中,远程主机可发起可通过服务器链接交换机112发送到增强能力CXL交换机130的RDMA请求。服务器链接交换机112和增强能力CXL交换机130可对RDMA 4KB请求或CXL的微片(64字节)请求进行优先级排序。
如图1C和图1D的实施例,增强能力CXL交换机130可被配置为接收这样的RDMA请求,并且它可将接收服务器105(即,接收RDMA请求的服务器)中的一组存储器模块135视为它自己的存储器空间。此外,增强能力CXL交换机130可横跨处理电路115进行虚拟化,并且在远程增强能力CXL交换机130上发起RDMA请求以在服务器105之间来回移动数据,而不涉及处理电路115。
图1F示出类似于图1E的系统,其中,处理电路115通过增强能力CXL交换机130连接到网络接口电路(例如,PCIe5连接器)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的控制器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接收的多个缓存请求进行分组或批处理,并且它可对数据包进行分组,从而减少控制开销。增强能力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可包括各种存储器类型,存储器类型包括DDR4DRAM、HBM、LDPPR、NAND闪存和固态驱动器(SSD)。存储器模块135可被分区或包含高速缓存控制器以处理多种存储器类型,并且它们可以具有不同的形状因子(诸如,HHHL、FHHL、M.2、U.2、夹层卡、子卡、E1.S、E1.1、E3.1或E3.S)。
在图1G的实施例中,增强能力CXL交换机130可实现一对多和多对一交换,并且它可在微片(64字节)级别实现细粒度加载-存储接口。每个存储器服务器150可具有聚合的存储器装置,每个装置被划分为各自具有相应的LD-ID的多个逻辑装置。增强能力CXL交换机130可包括控制器137(例如,ASIC或FPGA)以及用于装置发现、枚举、分区和呈现物理地址范围的电路(可与这样的ASIC或FPGA分离或者是这样的ASIC或FPGA的一部分)。每个存储器模块135可具有一个物理功能(PF)和多达16个隔离的逻辑装置。在一些实施例中,逻辑装置的数量(例如,分区的数量)可被限制(例如,限制为16),并且还可存在一个控制分区(可以是用于控制装置的物理功能)。存储器模块135中的每个可以是具有CXL.cache、CXL.memory和CXL.io和地址转换服务(ATS)实现的2型装置,以对处理电路115可保存的高速缓存行副本进行处理。
增强能力CXL交换机130和结构管理器可控制存储器模块135的发现,并且(i)执行装置发现和虚拟CXL软件创建以及(ii)将虚拟端口绑定到物理端口。如图1A至图1D的实施例,结构管理器可通过SMBus边带上的连接进行操作。到存储器模块135的接口可实现可配置性,所述接口可以是智能平台管理接口(IPMI)或符合Redfish标准的接口(还可提供标准不需要的附加特征)。
针对图1G的实施例,构建块可包括(如上所述)在FPGA或ASIC上实现的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)通过电源门控实现对存储器装置的存储的动态重新配置。例如,ToR服务器链接交换机112可(通过指示增强能力CXL交换机130禁用存储器模块135的电源)禁用存储器模块135之一的电源(即,关闭电源或降低电源)。然后,增强能力CXL交换机130可在被服务器链接交换机112指示禁用存储器模块的电源时禁用存储器模块135的电源。这样的禁用可节省电力,并且可提高存储器服务器150中的其他存储器模块135的性能(例如,吞吐量和延迟)。每个远程服务器105可基于协商而看到存储器模块135及其连接的不同逻辑视图。增强能力CXL交换机130的控制器137可维护状态,使得每个远程服务器维护分配的资源和连接,并且可执行存储器的压缩或重复数据删除以节省存储器容量(使用可配置的组块大小)。图1G的分解式机架可具有它自己的BMC。它还可向远程装置暴露IPMI网络接口和系统事件日志(SEL),使得主设备(例如,使用由存储器服务器150提供的存储的远程服务器)能够在运行中测量性能和可靠性,并且重新配置分解式机架。图1G的分解式机架可以以类似于在此针对图1E的实施例所描述的方式提供可靠性、复制、一致性、系统一致性、散列、高速缓存和持久性,其中,例如,从相同的存储器地址读取或写入相同的存储器地址的多个远程服务器被提供有一致性,并且每个远程服务器被配置有不同的一致性级别。在一些实施例中,服务器链接交换机维护存储在第一存储器服务器上的数据与存储在第二存储器服务器上的数据之间的最终一致性。服务器链接交换机112可针对不同的服务器对维护不同的一致性级别,例如,服务器链接交换机还可以在存储在第一存储器服务器上的数据与存储在第三存储器服务器上的数据之间维护严格一致、顺序一致、因果一致或处理器一致的一致性级别。系统可采用“本地带”(服务器链接交换机112)和“全局带”(分解式服务器)域中的通信。写入可被冲刷到“全局带”以对来自其他服务器的新的读取可见。增强能力CXL交换机130的控制器137可针对每个远程服务器单独地管理持久域和冲刷。例如,高速缓存一致性交换机可监测存储器的第一区域(易失性存储器,作为高速缓存操作)的满度(fulness),并且当满度水平超过阈值时,高速缓存一致性交换机可将数据从存储器的第一区域移动到存储器的第二区域,存储器的第二区域在持久性存储器中。因为可由增强能力CXL交换机130的控制器137在远程服务器之间建立优先级,以呈现不同的感知延迟和带宽,所以流控制可被处理。
根据本发明的实施例,提供了一种系统,所述系统包括:第一存储器服务器,包括高速缓存一致性交换机和第一存储器模块;第二存储器服务器;以及连接到第一存储器服务器和第二存储器服务器的服务器链接交换机,其中,第一存储器模块连接到高速缓存一致性交换机,并且高速缓存一致性交换机连接到服务器链接交换机。在一些实施例中,服务器链接交换机被配置为禁用第一存储器模块的电源。在一些实施例中,服务器链接交换机被配置为通过指示高速缓存一致性交换机禁用第一存储器模块的电源来禁用第一存储器模块的电源,并且高速缓存一致性交换机被配置为在由服务器链接交换机指示禁用第一存储器模块的电源时禁用第一存储器模块的电源。在一些实施例中,高速缓存一致性交换机被配置为在第一存储器模块内执行重复数据删除。在一些实施例中,高速缓存一致性交换机被配置为压缩数据并将压缩的数据存储在第一存储器模块中。在一些实施例中,服务器链接交换机被配置为查询第一存储器服务器的状态。在一些实施例中,服务器链接交换机被配置为通过智能平台管理接口(IPMI)查询第一存储器服务器的状态。在一些实施例中,查询状态的步骤包括查询从由电源状态、网络状态和错误检查状态组成的组中选择的状态。在一些实施例中,服务器链接交换机被配置为对指向第一存储器服务器的高速缓存请求进行批处理。在一些实施例中,所述系统还包括连接到服务器链接交换机的第三存储器服务器,其中,服务器链接交换机被配置为在存储在第一存储器服务器上的数据和存储在第三存储器服务器上的数据之间维护从由严格一致、顺序一致、因果一致和处理器一致组成的组选择的一致性级别。在一些实施例中,高速缓存一致性交换机被配置为:监测存储器的第一区域的满度,并且将数据从存储器的第一区域移动到存储器的第二区域,其中,存储器的第一区域在易失性存储器中,并且存储器的第二区域在持久性存储器中。在一些实施例中,服务器链接交换机包括快速外围组件互连(PCIe)交换机。在一些实施例中,服务器链接交换机包括快速计算链接(CXL)交换机。在一些实施例中,服务器链接交换机包括架顶式(ToR)CXL交换机。在一些实施例中,服务器链接交换机被配置为将数据从第二存储器服务器发送到第一存储器服务器,并且对数据执行流控制。在一些实施例中,系统还包括连接到服务器链接交换机的第三存储器服务器,其中,服务器链接交换机被配置为:从第二存储器服务器接收第一数据包,从第三存储器服务器接收第二数据包,并且将第一数据包和第二数据包发送到第一存储器服务器。根据本发明的实施例,提供了一种用于在计算系统中执行远程直接存储器访问的方法,计算系统包括第一存储器服务器、第一服务器、第二服务器以及连接到第一存储器服务器、第一服务器和第二服务器的服务器链接交换机,第一存储器服务器包括高速缓存一致性交换机和第一存储器模块,第一服务器包括存储程序处理电路,第二服务器包括存储程序处理电路,所述方法包括:由服务器链接交换机从第一服务器接收第一数据包;由服务器链接交换机从第二服务器接收第二数据包;并且将第一数据包和第二数据包发送到第一存储器服务器。在一些实施例中,所述方法还包括:由高速缓存一致性交换机压缩数据,并且将数据存储在第一存储器模块中。在一些实施例中,所述方法还包括:由服务器链接交换机查询第一存储器服务器的状态。根据本发明的实施例,提供一种系统,所述系统包括:第一存储器服务器,包括高速缓存一致性交换机和第一存储器模块;第二存储器服务器;以及连接到第一存储器服务器和第二存储器服务器的服务器链接交换装置,其中,第一存储器模块连接到高速缓存一致性交换机,并且高速缓存一致性交换机连接到服务器链接交换装置。
图2描绘了根据公开的示例实施例的代表性系统架构的示图200,其中,公开的实施例的各方面可结合能够通信和配置结合图1A至图1G描述的各种服务器的管理计算实体进行操作。在一些实施例中,公开的系统可包括可被配置为结合多个集群进行操作的管理计算实体202。如图所示,集群可包括A型池集群204、B型池集群206、C型池集群208和D型池集群210。在一个实施例中,A型池集群204可包括直连式存储器(例如,CXL存储器),B型池集群206可包括加速器(例如,CXL加速器),C型池集群208可包括池式/分布式存储器(例如,CXL存储器),D型池集群210可包括分解式存储器(例如,CXL存储器)。此外,每个集群可包括但不限于可包括计算元件214(诸如,处理器(例如,基于RISC-V的处理器)和/或可编程控制器(例如,基于FPGA的控制器))和相应介质216的插件模块212。
在各种实施例中,管理计算实体202可被配置为基于一个或更多个预定参数(例如,与由与管理计算实体202通信的网络上的主机或装置处理的相应工作负载相关联的参数)将I/O和存储器存储和检索操作引导到各种集群。
在各种实施例中,管理计算实体202可在机架和/或集群级别进行操作,或者可至少部分地在作为给定集群架构(例如,A型池集群204、B型池集群206、C型池集群208和D型池集群210)的一部分的给定装置(例如,启用高速缓存一致性的装置)内进行操作。在各种实施例中,给定集群架构内的装置可执行管理计算实体的操作的第一部分,而管理计算实体的操作的另一部分可在机架上和/或在集群级别实现。在一些实施例中,可以以协调的方式执行操作的两个部分(例如,集群中的装置向在机架上和/或在集群级别实现的管理计算实体发送协调消息和从管理计算实体接收协调消息)。在一些实施例中,与集群中的装置相关联的操作的第一部分可包括但不限于用于确定装置或集群的当前或未来资源需求、通告装置或集群的当前或未来资源可用性、同步与在装置或集群级别运行的算法相关联的特定参数、训练与装置或机架/集群的操作相关联的一个或更多个机器学习模块、记录与路由工作负载相关联的对应数据、它们的组合等的操作。
图3A描绘了根据公开的示例实施例的代表性系统架构的另一示图300,其中,公开的实施例的各方面可结合能够通信和配置结合图1A至图1G描述的各种服务器的管理计算实体进行操作。在一些实施例中,管理计算实体302可与上面结合图2示出和描述的管理计算实体202类似但不必相同。此外,管理计算实体202可与A型池通信。在各种实施例中,A型池集群312可包括若干服务器。此外,A型池集群312可以以例如可被配置为使用RCiEP进行操作的直连式高速缓存一致性(例如,CXL)装置为特征。在另一实施例中,A型池集群312可以以基于高速缓存一致性协议的存储器(诸如,CXL存储器)为特征,以减少CPU引脚的任何限制。在一个实施例中,A型池集群312可包括具有各种形状因子选项(例如,能够符合EDSFF标准和/或附加卡(AIC)形状因子的E1、E3形状因子)的直连式装置。在另一实施例中,公开的系统可包括交换机304(诸如,基于高速缓存一致性(例如,CXL)的交换机和/或基于硅光子的交换机)。在一个实施例中,交换机304可以以能够用于将系统扩展到机架级的基于架顶式(ToR)以太网的交换机为特征。
在各种实施例中,如图3B中所示,B型池集群314也可包括若干服务器。此外,B型池集群314可使用能够在服务器中的一个服务器内池化的基于高速缓存一致性(例如,基于CXL 2.0)的交换机和加速器(可简称为ACC)。此外,B型池集群314可以以根据工作负载的基于虚拟高速缓存一致性协议(例如,CXL协议)的交换机(VCS)层级结构能力为特征。具体地,VCS可被识别为交换机的一部分和一个特定根端口(例如,PCIe根端口)后面的连接组件。在另一实施例中,公开的系统可包括交换机306(诸如,基于高速缓存一致性(例如,CXL)的交换机和/或基于硅光子的交换机)。
在各种实施例中,如图3C中所示,C型池集群316也可包括若干服务器。此外,C型池集群316可使用服务器中的一个服务器内的CXL 2.0交换机。此外,C型池集群316可使用基于PCIe的结构和/或基于Gen-Z的系统来横跨服务器缩放高速缓存一致性存储器。此外,C型池集群316可在集群中引入至少三个一致性存储器池:本地DRAM、本地CXL存储器和远程存储器。在另一实施例中,公开的系统可包括交换机308(诸如,基于高速缓存一致性(例如,CXL)的交换机和/或基于硅光子的交换机)。
在各种实施例中,如图3D中所示,D型池集群318也可包括若干服务器。在一个实施例中,D型池集群318可包括物理分解式CXL存储器。此外,可为每个服务器分配分区,使得横跨服务器可存在有限的共享或不存在共享。在一些实施例中,D型池集群318最初可限于预定数量(例如,16)的多个逻辑装置(MLD)分区和主机。具体地,基于3型高速缓存一致性协议(例如,CXL)的存储器装置可以被划分为看起来像多个装置,其中,每个装置呈现唯一的逻辑装置ID。此外,D型池集群318可使用基于PCIe的结构和/或基于Gen-Z的系统来横跨服务器扩展高速缓存一致性存储器。在另一实施例中,公开的系统可包括交换机310(诸如,基于高速缓存一致性(例如,CXL)的交换机和/或基于硅光子的交换机)。
图4描绘了根据公开的示例实施例的可表征结合图1A至图1G描述的服务器的各方面的代表性参数表的示图,其中,管理计算实体基于参数表来配置各种服务器。具体地,表400示出可由所公开的系统并且具体地由在此以各种方式描述的管理计算实体考虑的各种示例参数,以基于上述针对不同池集群类型的这些参数(或类似参数)的值的比较来将工作负载的部分路由到不同的集群。具体地,表400示出与列中示出的不同集群类型(即,直连式406存储器集群(类似于A型池集群)、池式408存储器集群(类似于B型池集群)、分布式410存储器集群(类似于C型池集群)和分解式412存储器集群(类似于D型池集群))对应的参数402。这样的参数402的非限制性示例包括直接存储器容量、远存储器容量(例如,用于诸如CXL的高速缓存一致性协议)、远程存储器容量(例如,每个服务器)、远程存储器性能、总拥有成本(TCO)、总功率(平摊)和总面积(例如,具有E1形状因子)。在各种实施例中,如下以下进一步描述的,公开的系统可使用与管理计算实体相关联的机器学习算法来确定将工作负载的至少一部分路由到不同的集群。虽然图4示出一些示例参数,但是公开的系统可被配置为监测任何合适的参数以将工作负载或工作负载的部分路由到与集群相关联的不同装置。此外,管理计算实体可基于系统的各种参数来执行这样的操作,这些参数包括但不限于基于高速缓存一致性协议(例如,基于CXL)的往返时间、装置是主机偏置还是装置偏置的确定、基于高速缓存一致性协议(例如,基于CXL)的交换机层级和/或主机上游端口到装置下游端口的绑定、基于高速缓存一致性协议(例如,基于CXL)的交换机结构管理器配置、基于高速缓存一致性协议(例如,基于CXL)的协议数据包或物理介质数据包(例如,CXL.IO或PCIe中间批量4KB数据包)、网络延迟、基于高速缓存一致性协议(例如,基于CXL)的存储器技术(例如,存储器类型)、它们的组合等。
在各个方面,可存在可包括可能对现有数据中心和服务器架构造成挑战的特定特征的各种超大规模用户工作负载要求。例如,这样的工作负载可展现出存储器和I/O延迟要求、带宽需求的多样性,并且可以是计算资源和/或存储器资源受限的。
如所提到的,所公开的系统可包括诸如CXL的高速缓存一致性协议。具体地,CXL可使得另外类型的存储器扩展和一致性加速器能够与常规存储和计算一起工作。然而,在一些方面,诸如CXL相关协议的协议可能没有描述用于满足特定应用的需求的系统设计和/或微架构。此外,由于分布式和大型CXL存储器系统可能具有许多实现挑战,因此,可能存在各种不同类型的CXL系统和相关联的微架构。
在一些方面,诸如CXL的高速缓存一致性协议可实现存储器扩展和异构计算架构。此外,以CPU为中心的生态系统内的高速缓存一致性操作实现了加速器和存储器层级的设计和使用案例。在各种实施例中,所公开的系统可包括CXL装置微架构,CXL装置微架构可包括如在此将进一步描述的CXL 1型装置架构、2型装置微架构和/或3型存储器装置微架构。在另一实施例中,所公开的系统可被配置为在给定装置中共同定位不同的存储器类型(例如,易失性和非易失性存储器类型)并且利用高速缓存一致性协议进行通信。在另一实施例中,所公开的系统可在启动时重新配置存储器资源。可选地或另外地,所公开的系统可基于预定参数(例如,带宽或存储使用参数)禁用和/或启用特定存储器。
如所提到的,所公开的系统可使得能够例如在高速缓存一致性兼容装置的启动时重新配置资源。例如,所公开的系统可基于改变的网络参数被重新配置为禁用/启用特定存储器类型(例如,易失性存储器或非易失性存储器)。在另一实施例中,所公开的系统可基于网络参数被重新配置为使用硬件高速缓存或软件高速缓存。在一些实施例中,参数可由可确定装置的能力(装置的能力可基于使用等随时间改变)的装置上剖析(on-deviceprofiling)模块来确定。参数可被发送到可例如在运行时使用该信息来重新配置装置的诸如主机的另一装置。在另一实施例中,所公开的系统可用于将诸如PCIe接口的给定接口划分为专用接口(例如,将与多个信道对应的一个部分用作例如与第一存储器类型结合使用的第一接口,并且将与第二数量个信道对应的第二部分用作例如与第二存储器类型结合使用的第二接口)。在另一实施例中,所公开的系统可诸如经由基于CXL的逻辑域(LD-LD)将装置分区为不同的域。
如所提到的,所公开的系统可包括1型、2型和/或3型CXL装置微架构。在各种实施例中,1型CXL装置可指实现一致性高速缓存但可不包括主机管理的装置存储器的装置。此外,1型CXL装置可扩展PCIe协议能力(例如,原子操作能力)。在各种实施例中,2型CXL装置可实现一致性高速缓存和主机管理的装置存储器。此外,2型CXL装置可支持包括附接有高带宽存储器的装置的应用。此外,用于这样的2型CXL装置的可应用事务类型可包括各种CXL.cache和CXL.mem事务。在各种实施例中,3型CXL装置可包括主机管理的装置存储器。此外,在一些实施例中,所公开的系统可支持这样的装置的应用,诸如针对主机的存储器扩展。此外,3型CXL装置可包括诸如CXL.mem、存储器读事务和存储器写事务的可应用事务类型。
在另一实施例中,所公开的系统可包括但不限于各种架构块。在一些实施例中,所公开的系统可包括但不限于在此进一步描述的高速缓存控制器、CXL控制器、智能存储器控制器、装置一致性引擎(DCOH)和交织解码器、纠错控制(ECC)和安全块等。
在各种实施例中,DCOH和交织解码器可用作在装置上而不是主机上的装置一致性桥接器、简化归属代理和一致性桥接器。此外,在一些实施例中,一个装置(例如,3型装置)可例如在给定物理地址范围内与其他CXL装置交错。在各种实施例中,所公开的系统可在主桥接器、根端口或交换机级别执行存储器交错。此外,所公开的系统可以实现用于执行交织的管理层(例如,通过将叶节点组装成交织集合等)。
在各种实施例中,ECC和安全块可包括实现安全(例如,加密)算法的各种硬件块和软件块。在另一实施例中,ECC和安全块包括配置加密引擎(例如,经由针对CXL的高级加密标准伽罗瓦(Galois)/计数器模式(AES-GCM))的模块。在另一实施例中,ECC和安全块可包括直接或间接地与上述两个块进行通信的任意其他块。在各种实施例中,ECC和安全块可用于保护物理链路上的两个装置之间交换的事务(数据和元数据两者)。在基于加密的安全性的情况下,ECC和安全块可实现对称加密密钥(例如,针对AES-GCM的256比特密钥)。在各种实施例中,ECC和安全块可根据CXL.io和CXL.cachemem协议来执行操作。具体地,CXL.io路径可使用PCIe定义的IDE,而CXL.cachemem可包括来自CXL 2.0的附加更新。
在各种实施例中,ECC和安全块可执行包括以下方法中的一个或更多个方法的ECC生成和校验方法。ECC码可由所公开的系统基于写数据来生成。所公开的系统可存储写数据和ECC码两者。此外,在读操作期间,所公开的系统可读取数据和ECC码两者。然后,所公开的系统可从接收到的数据重新生成ECC码,并且可将重新生成的ECC码与接收到的ECC码进行比较。因此,如果所公开的系统发现匹配,则所公开的系统可确定没有发生错误。然而,如果存在不匹配,则所公开的系统可校正错误。在各种实施例中,ECC和安全块例如使用双倍数据速率(DDR)存储器(诸如DDR4和DDR5)来实现用于ECC(包括边带ECC(side-band ECC))的各种方案。具体地,所公开的系统可将ECC码作为边带数据连同实际数据一起发送到存储器。在另一实施例中,由于边带ECC可以是利用低功率DDR(LPDDR)的更复杂的实现,因此ECC和安全块可例如使用LPDDR存储器来实现内联ECC(inline ECC)。在各个实施例中,ECC和安全块可例如利用LPDDR5存储器实现链路ECC(link-ECC)。链路ECC可提供对LPDDR5链路或信道上的错误的附加保护。此外,ECC和安全块可确定针对写数据的ECC,并且可与数据一起发送特定比特的ECC。DRAM生成关于接收到的数据的ECC,对照接收到的ECC数据对该ECC进行核对,并校正任意错误。还可针对读数据使用与DRAM以及ECC和安全块相反的角色来实现该操作。
在各种实施例中,所公开的系统可包括将结合图5、图7、图8和图9进一步描述的CXL装置微架构,并且可包括可重新配置的架构(例如,在诸如DDR、LPDDR5、Z-NAND、其组合等的不同存储器类型之间)。在一些实施例中,所公开的系统可包括可使用用于存储器管理的第一协议(例如,CXL.mem协议)以及用于管理远程区域的第二协议(例如,CXL.cache协议)的高速缓存一致性装置(例如,CXL装置)。在一个实施例中,所公开的系统可使装置能够在启动时使用元数据(例如,CXL元数据)被配置。在另一实施例中,所公开的系统可实现数据和存储器层级的重新映射,同时满足DRAM时序要求。在一个实施例中,所公开的系统可提供在预定字节级(例如,64字节级)的加速和重复数据删除。
在一些实施例中,所公开的系统可包括智能控制器。在一个实施例中,智能控制器可包括在不同技术之间对存储器进行分层的逻辑。在另一实施例中,智能控制器可包括用于将PCIe接口分区到不同域、支持用于池化的多个逻辑ID和其他CXL特征的逻辑。智能控制器可包括接口逻辑和全局主机,以与DRAM/NAND控制器进行通信。智能控制器可包括重新映射传入的读/写事务的地址映射。智能控制器可直接与全局存储器控制器通过接口连接,并接收存储器地址和读/写事务。智能控制器可包括识别地址并将它们转换为索引/标签和其他高速缓存字段的高速缓存寻址模块。智能控制器可进行优化,该优化包括将相同高速缓存集合的分路映射到不同DRAM存储体以使查找时间最小化。智能控制器可包括高速缓存策略模块,其中,高速缓存策略模块可实现一个或更多个替代方案、关联性策略、存储体策略、复制和放置以管理DRAM高速缓存中的数据的移动和组织。智能控制器还可包括大的写缓冲器以将大部分写汇集到下游NAND。智能控制器可在控制器中包括事务队列,其中,所述事务队列识别独立的存储器事务并将它们推送到每个信道请求队列中。
在一些实施例中,所公开的系统可包括一个或更多个介质控制器。在各种实施例中,介质控制器可包括针对每个信道的模块,以有效地调度请求,同时满足所有DRAM时序策略和功率管理。此外,可与(多个)介质控制器相关联地实现来自标准DDR控制器的其他存储器控制器策略。
在一些实施例中,包括介质控制器的装置可包括闪存(例如,Z-NAND)控制器,在此也称为NAND控制器。在一些实施例中,当系统或装置需要从闪存读取数据或向闪存写入数据时,系统或装置可与闪存控制器进行通信。在一些实施例中,闪存控制器可使用称为损耗均衡的技术来尽可能均匀地在存储装置中的所有闪存块中分布写,以使得每个块能够被写入至其最大寿命。在另一实施例中,闪存控制器还可包括将主机侧或文件系统逻辑块地址映射到闪存的物理地址(逻辑到物理映射)的闪存转换层(FTL)(文件系统之下的层)。在一些实施例中,当闪存控制器实现损耗均衡和其他闪存管理算法(坏块管理、读干扰管理、安全闪存处理等)时,LBA的物理位置可动态地改变。因此,所公开的系统可将FTL的映射单元区分开,使得LBA是基于块、基于页或基于子页而被映射的。因此,所公开的系统可实现更精细的映射单位以减少闪存损耗并使基于闪存的存储介质的耐久性最大化。在另一实施例中,闪存控制器可实现垃圾收集,其中,在垃圾收集中,特定块可在它们不再具有当前数据(例如,旧块)之后被准备好以供使用。这些块中的数据被替换为新写入的块,并且因此排队以被擦除,使得新数据可被写入这些块中。
在一些实施例中,所公开的系统可包括预取模块,其中,所述预取模块可在检测到数据流之后执行高速缓存行预取并从DRAM高速缓存高效地访问数据流。在各种实施例中,高速缓存预取可指通过在指令或数据被需要之前将指令或数据从其在较慢存储器中的原始存储提取到较快本地存储器来提高执行性能的技术。在另一实施例中,预取模块可将数据或指令提取到高速缓存中。如所提到的,数据预取在数据被需要之前提取数据;然而,因为数据访问模式显示出比指令模式更少的规律性,所以准确的数据预取可能比指令预取更复杂。另一方面,指令预取在指令需要被执行之前提取指令。在另一实施例中,基于硬件的预取可由预取模块使用专用硬件机制来执行,其中,所述专用硬件机制监视由执行程序请求的指令或数据流,基于该流识别程序可能需要的接下来的若干元素并预取到高速缓存中。在另一实施例中,基于软件的预取可由预取模块使用软件机制来执行,其中,在所述软件机制中,附加预取指令被插入在程序中。在一些实施例中,所公开的系统可包括可提供用于按值查找和修改数据的模型的重复数据删除模块。因此,所公开的系统可确保在存储器系统中仅存在一个数据的副本并且具有相同数据的所有其他地址指向相同数据。
图5示出根据本发明的示例实施例的针对存储器装置的不同配置的示图。具体地,所公开的系统可包括可被配置为利用诸如CXL的高速缓存一致性协议进行操作的不同类型的控制器和存储器装置。示图501示出包括示例基于DDR的存储器的第一微架构配置。具体地,示图501示出DRAM包括DDR5506(或DDR4或任何其他合适的DDR存储器)和DRAM控制器504的配置502。DRAM控制器504可被配置为经由CXL与处理器508(例如,基于x86的CPU)的PCIe接口进行通信。在一些实施例中,DRAM控制器504可被配置为经由预定数量的信道(例如,16个信道)与处理器508进行通信。处理器508本身可被耦接到DRAM(例如,DDR5 510或任何合适的存储器)。在各种实施例中,这样的微架构配置502可被配置为加速和/或适应地址解码和/或交织机制。
示图503示出包括示例DDR和Z-NAND存储器的第二微架构配置512。具体地,示图503示出DRAM包括DDR5 520(或DDR4或任何其他合适的DDR存储器)和DRAM控制器514的配置,DRAM控制器514还可包括高速缓存控制器功能。此外,示图503示出可存在可具有对应控制器(例如,固态装置(SSD)控制器516)的闪存(例如,Z-NAND 518)存储器的配置512。DRAM控制器514可被配置为与SSD控制器516进行通信,以经由诸如PCIe和/或CXL的任何合适的协议来协调I/O。此外,DRAM控制器514和/或SSD控制器516可经由CXL与处理器522(例如,基于x86的CPU)的PCIe接口进行通信。在一些实施例中,DRAM控制器514和/或SSD控制器516可被配置为经由预定数量的信道(例如,16个信道)与处理器522进行通信。处理器522本身可被耦接到DRAM(例如,DDR5 524或任何合适的存储器)。在各种实施例中,这样的微架构配置512可被配置为向处理器提供针对两个存储器介质(例如,易失性和非易失性存储器)的分开的和/或专用的接口。
示图505示出包括示例DDR5 538和LPDDR5 536存储器的第三微架构配置532。具体地,示图505示出DRAM包括LDDR5 536(或LDDR4或任何其他合适的LDDR存储器)和DRAM控制器534的配置532。DRAM控制器534可被配置为经由CXL与处理器540(例如,基于x86的CPU)的PCIe接口进行通信。在一些实施例中,DRAM控制器534可被配置为经由预定数量的信道(例如,16个信道)与处理器540进行通信。处理器540本身可被耦接到DRAM(例如,DDR5 543或任何合适的存储器)。在各种实施例中,这样的微架构配置532可被配置为加速和/或适应地址解码和/或交织机制。
示图507示出包括示例分开的DDR和Z-NAND存储器(例如,八个这样的存储器)的第四微架构配置542。此外,示图507示出可存在可具有对应控制器(例如,SSD控制器546)的闪存(例如,Z-NAND 548)的配置542。DRAM控制器544可被配置为与SSD控制器546进行通信以协调预定数量的信道上的I/O。此外,DRAM控制器544和/或SSD控制器546可经由CXL与处理器552(例如,基于x86的CPU)的PCIe接口进行通信。此外,DRAM控制器544可通过第一数量的信道(例如,8个CXL信道)经由CXL与处理器552进行通信。此外,SSD控制器546可通过第二数量的信道(例如,8个PCIe信道)经由CXL与处理器552进行通信。在一些实施例中,DRAM控制器544和/或SSD控制器546可被配置为经由预定数量的信道(例如,16个信道)与处理器552通信。处理器552本身可被耦接到DRAM(例如,DDR5554或任何合适的存储器)。在各种实施例中,这样的微架构配置542可被配置为向处理器提供针对两个存储器介质(例如,易失性和非易失性存储器)的分开的和/或专用的接口。
在各种实施例中,如所提到的,所公开的系统可包括低功率双倍数据速率(低功率DDR SDRAM或LPDDR SDRAM)存储器。在另一实施例中,LPDDR可包括消耗较少功率(例如,低于预定阈值量的功率)且可结合移动装置被使用的双倍数据速率同步动态随机存取存储器。在各种实施例中,所公开的系统可使用LPDDR来实现提高的数据传送速率(例如,高达6400MT/s)。此外,所公开的系统可使用LPDDR并使用差分时钟。此外,存储体的数量可增加(例如,增加到16)并且可被划分为类DDR4存储体组。在各种实施例中,LPDDR可允许各种功率节省机制,诸如数据复制和写-X(全1或全0)命令,其中,所述命令也可减少数据传送并且可实现动态频率和电压调整。
在另一实施例中,如所提到的,所公开的系统可使用闪存。在一个实施例中,闪存是可被电擦除和重新编程的电子非易失性计算机存储器存储介质。在另一实施例中,所公开的系统可使用三维闪存,诸如Z-NAND。在一个实施例中,Z-NAND可包括3D单级单元(SLC)NAND或任意其它合适的闪存。具体地,所公开的系统可包括但不限于SLC NAND、多级单元(MLC)NAND(诸如三级单元(TLC)NAND、四级单元(QLC)NAND)、其组合等。
图6是根据本公开的示例实施例的与装置相关参数相关联的示例性表的示图。在各种实施例中,示图601示出对基于预定参数动态地重新配置微架构的各种模块架构限制的表。具体地,该表示出了包括形状因子602、尺寸604、功率606、接口608、BW比率610、芯片配置612、针对DDR5的功率受限容量614以及针对DDR5的面积受限容量616的参数。具体地,所公开的系统可基于这样的参数,通知针对数据中心或其他环境中的不同应用的对基于CXL的装置微架构的类型的不同选择。在各种实施例中,形状因子602可包括但不限于M.2、E1.1、E1.S、E3 S/L、U.2、NF1、全高半长(FHHL)附加卡(AIC)、半高半长(HHHL)AIC、其组合等。
在一个实施例中,尺寸604可以是表1中所示的与每个形状因子对应的尺寸。例如,M.2可具有约110mm×22mm的形状因子,而NF1可具有约110mm×33mm的形状因子。在一个实施例中,功率606要求可以是表中所示的与每个形状因子和尺寸对应的功率要求。例如,对于M.2,功率要求可以是约8W,而对于U.2,功率要求可以是约25W。在各种实施例中,每个模块可具有如该表中所示的与每个形状因子对应的相应PCIe接口608。例如,对于M.2模块,接口可包括具有16Gb/s的传输速率的4个信道,而对于E1.S模块,接口可包括以约16至32Gb/s的传输速率操作的4至8个信道中的任意信道。
此外,每个装置可具有如该表中所示的与每个形状因子对应的相应BW比率610(与DDR5信道BW相比)。例如,对于E1.L形状因子模块,BW比率可以是DDR5的BW比率的约0.5至约1倍,而对于U.2形状因子模块,BW比率可以是DDR5的BW比率的约0.5倍。在各种实施例中,针对每个模块提供示例芯片配置。例如,E1.S模块可具有在55mm2芯片中具有约12GB容量的LPDDR5存储器。NF1形状因子模块可具有在46mm2芯片中具有约64GB容量的Z-NAND闪存。此外,该表示出了可被用于每个模块的示例功率极限DDR5 614和面积极限DDR5 616容量。例如,对于使用功率受限DDR5的M.2模块,容量可以是约25GB,而面积受限DDR5(非3D)存储器容量可以是约16GB。
注意,这些参数都仅仅是可随着对各种底层存储器(例如,DRAM、DDR存储器和/或闪存)的技术改进而随时间改变的示例参数。此外,其他类型的存储器可被用于具有不同形状因子和/或尺寸的模块。在一些实施例中,所公开的系统可包括可管理装置微架构的各种装置级特征。具体地,给定微架构可根据许多因素(诸如使用装置的给定系统架构、高级CXL控制器行为、易失性存储器(例如,DRAM)高速缓存控制器和组织、以及/或者非易失性存储器(例如,Z-NAND)控制器和特性)单独地或组合地确定。
在一些实施例中,CXL控制器的微架构参数可包括但不限于DRAM高速缓存大小、行大小和/或集合组织。此外,CXL控制器的微架构可被配置为实现给定逐出策略、详细的未命中路径(例如,写分配、无分配等)并且/或者可支持预取。在另一实施例中,CXL控制器的微架构可被配置为使用包括与不包括。在一个实施例中,所公开的系统可使高速缓存一致性装置能够使用一个或更多个依赖于工作负载的运行时参数。可选地或另外地,所公开的系统可包括可在DRAM级别剖析空间/时间访问的装置上剖析器模块。因此,所公开的系统可在运行时剖析容量与BW与延迟敏感度,并且基于这样的敏感度来路由用于处理的数据。在各种实施例中,所公开的系统可包括支持装置微架构的软件架构。具体地,S/W架构可支持OS感知数据放置和迁移。此外,所公开的系统可实现S/W架构以利用一个或更多个非均匀存储器访问(NUMA)机制。
在各种实施例中,所公开的系统可确定启动时间事件并且可相应地重新配置它们自己。具体地,所公开的系统可配置或重新配置装置上的逻辑以将DRAM用作例如软件或硬件高速缓存。在一些实施例中,所公开的系统可例如使用DVSEC经由CXL向主机装置通告其能力。此外,所公开的系统可例如在上述启动时间接收主机命令以重新配置装置。在例各种实施中,装置可包括可执行各种操作(诸如确定存储器地址、R/W、存取的频率、一个或更多个地址模式等)的装置上剖析器模块。在各种实施例中,剖析器如上所述可将该信息提供给主机,使得当系统启动时,主机可基于由剖析器识别出的先前使用模式来重新配置装置。
在各种实施例中,所公开的系统可被扩展到2型CXL装置微架构实现。在一些实施例中,所公开的系统可包括实现高速缓存一致性协议的1型装置,诸如高速缓存控制器中的CXL.io和CXL.cache模块。此外,所公开的系统可包括装置附接的存储器,其中,该存储器也可以是高速缓存一致性的。
图7是根据本发明的示例实施例的示例性高速缓存一致性装置微架构的图示。在各种实施例中,示图702可包括CXL 3型装置,但不一定必须限于这样的协议。在一个实施例中,装置可包括CXL控制器704(或其他基于高速缓存一致性协议的控制器)、DRAM高速缓存控制器706(或其他易失性存储器高速缓存控制器)以及NAND控制器708(或其他非易失性存储器控制器)。在另一实施例中,CXL控制器704可被连接到根复合体714。具体地,根复合体714可将高速缓存一致性装置连接到由一个或更多个交换机装置组成的PCI Express交换机结构。根复合体714可被连接到在主机侧执行基本类似的操作的DRAM存储器控制器716和相关联的DDR4存储器718。
在另一实施例中,DRAM高速缓存控制器706可使用任何合适的协议(诸如CXL和/或PCIe)而被连接到DDR4 710和NAND控制器708。NAND控制器708可被连接到用于非易失性存储的SSD 712装置(例如,闪存芯片)。
图8是根据本公开的示例实施例的用于资源管理的示例性装置的图示。在各种实施例中,示图801可包括可进一步被耦接到CXL控制器802的装置。在另一实施例中,装置可包括智能件(例如,电路以及对应固件和/或软件),诸如预取逻辑804。在一个实施例中,装置可包括高速缓存控制器806,高速缓存控制器806可具有流控制模块、写缓冲器模块、高速缓存寻址模块、高速缓存策略实现模块和时序模块。此外,高速缓存控制器可被连接到SSD控制器808。
在一些实施例中,所公开的系统可包括与CXL兼容且可被用作针对计算密集型应用的加速器的装置组件,并且因此包括本地高速缓存并因此具有高速缓存控制器806。因此,如果主机组件想要访问存储器的相同位置,则它可迫使装置从其本地高速缓存逐出行并根据高速缓存行状态来更新对应存储器位置。在各种实施例中,所公开的系统可被配置为利用CXL.cache协议进行操作,其中,所述CXL.cache协议可将所公开的装置与主机之间的交互通知为各自具有至少一个相关联的响应消息且有时具有数据传送的多个请求。在一些实施例中,所公开的系统可经由接口与主机和其他装置进行通信,其中,所述接口在每个方向上包括三个信道:请求、响应和数据。
在一个实施例中,高速缓存控制器806的流控制模块可实现流控制以管理CXL控制器和任意其他装置(输入或输出)的数据传输速率,以防止快速发送器压倒慢速接收器。因此,流控制模块可为CXL控制器提供控制传输速度的机制,使得CXL控制器802不会被来自辅助装置(例如,SSD控制器或主机)的数据压倒。
在另一实施例中,高速缓存控制器806的写缓冲器模块可包括一种类型的数据缓冲器,其中,该类型的数据缓冲器可被用于保持正在被从高速缓存写入存储器或存储器层级中的下一高速缓存的数据。在一些实施例中,写缓冲器模块可在写发生时释放高速缓存以服务于读请求。因此,当写缓冲器已满(使得缓冲器被占用)时,后续写仍然必须等待,直到时隙被释放为止;因此,可由写缓冲器服务后续读。
在一些方面,存储器的块可能不被随机地放置在高速缓存中,而是可能需要通过高速缓存放置策略被限制到单个高速缓存行或高速缓存行的集合。在一个实施例中,高速缓存寻址模块可实现这样的高速缓存放置策略。具体地,主存储层级结构中的高速缓存可包括被分组为集合的高速缓存行。此外,数据请求具有指定所请求的数据的位置的地址。来自较低级的每个高速缓存行大小的数据块只能被放置到一个集合中;此外,可放置高速缓存行大小的块的集合可取决于其地址。因此,高速缓存寻址模块可生成可包括标识高速缓存行内的特定位置的偏移部分的请求地址。此外,请求可包括标识包含所请求的数据的集合的集合部分。此外,请求可包括可与其数据一起被保存在每个高速缓存行中的标签部分,以将可被放置在集合中的不同地址区分开。
在另一实施例中,高速缓存控制器806的高速缓存策略实现模块可实现用于在高速缓存中放置存储器块的不同策略:如本领域普通技术人员已知的直接映射、完全关联和集合关联放置策略。
在一个实施例中,高速缓存控制器806的时序模块可基于写策略来确定写的时序。在一些方面,所公开的系统可包括直写高速缓存,其中,对高速缓存的写基于由时序模块确定的写策略引起对存储器的写。可选地,所公开的系统可包括回写或回复制高速缓存,其中,写不被立即镜像到主存储器,而是高速缓存跟踪哪些位置已经被复写,从而基于由时序模块确定的写策略将它们标记为肮脏。此外,当这些位置中的数据从高速缓存被逐出时,该数据被回写到主存储器。此外,对尚未被映射在回写高速缓存中的主存储器位置的写可逐出已肮脏位置,从而基于由时序模块确定的写策略为新存储器位置释放高速缓存空间。所公开的系统也可基于由时序模块确定的写策略来实现中间策略。例如,所公开的系统可包括这样的高速缓存,其中,该高速缓存可以是直写的,但是写可被临时保持在存储数据队列中,通常因此可基于由时序模块确定的写策略一起处理多个存储(例如,以减少总线周转并提高总线利用率)。
在各种实施例中,装置可包括DRAM控制器。DRAM控制器可包括多个信道。每个信道可被耦接到各自的信道请求队列(例如,信道请求队列810和812),并且可包括各自的控制器子模块814和816,其中,各自的控制器子模块814和816包括DRAM时序/策略存储库、DRAM请求队列、DRAM请求调度器和DRAM命令调度器。在一个实施例中,信道请求队列814和816可使DRAM存储器和存储器控制器能够在指定信道经由请求变得可用时经由所述指定信道进行通信。
在另一实施例中,DRAM时序/策略存储库可被配置为控制各种时序参数。例如,DRAM时序/策略存储库可配置在行被激活与读命令或写命令之间必须经过的最少时间。DRAM时序/策略存储库可控制CAS延迟,该CAS延迟可包括读命令与第一数据字出现在相应数据总线上之间的内部操作所允许的时钟周期数。DRAM时序/策略存储库可确定其他可配置参数,包括但不限于读突发和写突发的长度,其中,所述读突发和写突发的长度包括每个读命令或写命令传送的字的数量。
在各种实施例中,DRAM请求调度器可调度与控制器相关联的命令以供所述控制器进行处理。在一个实施例中,DRAM请求队列可使与赢得仲裁且进入存储器控制器的事务相关联的命令的序列入队。所公开的系统可将这样的序列映射到存储器地址位置并转换为DRAM命令的序列。在一些实施例中,DRAM请求队列可被布置为池,并且CXL控制器802可从待执行的命令进行选择。可选地或另外地,队列可被布置,使得存储器的每个存储体或每个存储排存在一个队列。DRAM命令调度器可确定DRAM命令调度策略,并且可通过电信令接口将命令调度到DRAM装置。
图9是根据本公开的示例实施例的示例性高速缓存一致性装置902的图示。在各种实施例中,高速缓存一致性装置902可包括1型装置。在另一实施例中,高速缓存一致性装置902可包括CXL控制器904、加速器和/或网络接口卡(NIC)装置906、DDR4 908(或其他易失性存储器)、处理器910(可选的)以及第二DDR4 912(或其他易失性存储器,其可以是可选的)。高速缓存一致性装置902还可经由CXL控制器904而被连接到根复合体914。根复合体914可被耦接到DRAM控制器916,DRAM控制器916还可被连接到DDR4 918。
在各种实施例中,CXL控制器904可包括被设计用于专用集成电路(ASIC)和/或现场可编程门阵列(FPGA)实现的软IP。在另一实施例中,CXL控制器904可包括针对CXL.10路径的PCIe 5.0(或其他版本)架构,并且可添加特定于CXL的CXL.cache和CXL.mem路径。在各种实施例中,CXL控制器904可被实现为支持CXL协议(例如,CXL 2.0协议或任意其他版本)。在另一实施例中,CXL控制器904可被配置为与诸如CXL 1.1的更老的高速缓存一致性协议向后兼容。如上所述,CXL控制器904可被配置为实现CXL.io、CXL.mem和CXL.cache协议或其他合适的高速缓存一致性协议。在一些实施例中,CXL控制器904可被配置为支持不同的CXL装置类型,诸如1型、2型和/或3型的CXL装置。在各种实施例中,CXL控制器904可被配置为支持PCIe协议,诸如PCIe 5.0协议。在另一实施例中,CXL控制器904可被配置为使用任何合适的PIPE接口宽度(例如,8、16、32、64和128比特的可配置的PIPE接口宽度)来支持PIPE 5.x协议。在另一实施例中,CXL控制器904可被配置为支持各种CXL装置配置,诸如上面结合图5示出和描述的那些CXL装置配置。
在一个实施例中,加速器/NIC装置906可执行硬件加速,即以比在通用中央处理器(CPU)上运行的软件中可能的更有效地执行一些功能。在另一实施例中,加速器/NIC装置906可执行这样的加速作为硬件中的计算任务的实现,以减少延迟并增加与对工作负载或其他任务进行处理相关联的吞吐量。此外,加速器/NIC装置906可被配置为通过允许更大的并发性,具有针对其临时变量的特定数据路径,并减少提取-解码-执行周期中的指令控制的开销,来改善对特定算法的执行。
在另一实施例中,DDR4 908是可被用作用于存储数据和用于对数据执行相关联的任务的存储器的DRAM装置的示例。在另一实施例中,所公开的系统可包括任何合适的存储器,并且DDR4仅作为示例被讨论。具体地,这样的存储器可包括任意DRAM,其中,该DRAM的外部引脚接口的操作由外部提供的时钟信号来协调。在一些实施例中,存储器可包括具有高带宽(例如,双倍数据速率)接口的同步动态随机存取存储器,诸如DDR5或任何合适的DRAM。此外,存储器可包括高带宽存储器(HBM),其中,高带宽存储器(HBM)可包括用于3D堆叠的DRAM的高性能RAM接口。
在另一实施例中,第二DDR4 912还可以是可被用作用于存储数据和用于对数据执行相关联的任务的存储器的DRAM装置的示例。在另一实施例中,所公开的系统可包括任何合适的存储器,并且DDR4仅作为示例被讨论。具体地,这样的存储器可包括任意DRAM,其中,该DRAM的外部引脚接口的操作由外部提供的时钟信号来协调。在一些实施例中,存储器可包括具有高带宽(例如,双倍数据速率)接口的同步动态随机存取存储器,诸如DDR5或任何合适的DRAM。此外,存储器可包括HBM。
在一个实施例中,处理器910可包括执行包括计算机程序的指令的电子电路。CPU可被配置为执行由程序中的指令指定的算术、逻辑、控制和输入/输出(I/O)操作。
图10是根据本公开的示例实施例的包括与所公开的系统相关联的示例操作的示例性流程的图示。在框1002,所公开的系统可根据高速缓存一致性协议来操作耦接到网络接口的第一控制器。在框1004,所公开的系统可使用耦接到第一控制器且耦接到第一存储器的第二控制器对与高速缓存相关联的数据执行至少一个操作。在框1006,所公开的系统可将数据存储在耦接到第一控制器或第二控制器中的一个的第二存储器上。在各种实施例中,所公开的系统还可从主机接收配置信息,并且在操作的启动时间模式下将第二控制器作为基于软件的高速缓存或基于硬件的高速缓存中的一个进行操作。此外,所公开的系统可经由第一控制器使用高速缓存一致性协议经由网络接口接收数据,对数据执行至少一个第二操作以生成第二数据,并且基于高速缓存一致性协议将第二数据存储在第二存储器上。在一些方面,高速缓存一致性协议可包括CXL协议,并且其中,所公开的系统可包括确定与装置相关联的至少一个能力并将该能力提供给主机的剖析器。
图11示出可被用于实践本公开的实施例的系统的示例示意图。如图11中所示,特定实施例可包括一个或更多个管理计算实体1100、一个或更多个网络1105以及一个或更多个用户装置1110。这些组件、实体、装置、系统和在此可互换使用的类似词语中的每个可通过相同或不同的有线或无线网络彼此直接或间接通信。此外,管理计算实体1100可包括在此描述的机器学习组件。如上所述,可使用在此进一步描述的任何合适的协议来执行通信。
图12示出根据公开的示例实施例的管理计算实体的示例示意图。此外,管理计算实体1200可包括内容组件、处理组件和发送组件(未示出)。具体地,内容组件可用于确定指示将通过在此描述的架构传输的数据(例如,视频、音频、文本、数据、它们的组合等)的信号。在另一实施例中,用于传输的信号的确定可例如基于装置的用户输入、网络上的数据传输的预定调度、网络条件的变化等。在一个实施例中,信号可包括:数据可被封装在被配置为从装置发送到网络上的一个或更多个装置的数据帧中。
在另一实施例中,处理元件1205可用于确定与通过网络传输的数据相关联的各种参数和/或与网络的部分的集群相关联的参数。例如,处理元件1205可用于针对网络数据运行模型、针对网络数据运行机器学习技术、确定将由网络架构的各个部分处理的工作负载的分布、它们的组合等。作为另一示例。处理元件1205可用于针对网络数据运行模型、针对与网络的集群的不同性能能力相关联的参数运行机器学习技术、确定将由网络架构的部分的各种集群处理的工作负载的分布、它们的组合等。
在一个实施例中,发送组件(未示出)可用于将信号从一个装置发送到网络上的另一装置(例如,从第一集群上的第一装置发送到第二集群上的第二装置,例如,使用高速缓存一致性协议)。例如,发送组件可用于准备发送器(例如,下面的图12的发送器1204)以通过网络发送信号。例如,发送组件可在一个或更多个缓存中对数据进行排队,可确定发送装置和相关联的发送器正常工作并且具有足够的功率来通过网络发送信号,可调整与数据传输相关联的一个或更多个参数(例如,调制类型、信号放大、信号功率电平、噪声抑制、它们的组合等)。
通常,术语计算实体、计算机、实体、装置、系统和/或在此可互换使用的类似词语可表示例如一个或更多个计算机、计算实体、台式计算机、移动电话、平板计算机、平板手机、笔记本计算机、膝上型计算机、分布式系统、游戏控制台(例如Xbox、PlayStation、Wii)、手表、眼镜、iBeacons、临近信标、钥匙扣、射频识别(RFID)标签、耳机、扫描仪、电视、加密狗、相机、腕带、可穿戴物品/装置、自动服务终端、输入终端、服务器或服务器网络、刀片、网关、交换机、处理装置、处理实体、机顶盒、中继器、路由器、网络接入点、基站等和/或适于执行在此描述的功能、操作和/或处理的装置或实体的任何组合。这样的功能、操作和/或处理可包括例如发送、接收、操作、处理、显示、存储、确定、创建/生成、监测、评估、比较和/或在此可互换使用的类似术语。在一个实施例中,可对数据、内容、信息和/或在此可互换使用的类似术语执行这些功能、操作和/或处理。
如所指示的,在一个实施例中,管理计算实体1100还可包括用于与各种计算实体通信的一个或更多个通信接口1220(诸如,通过传送可被发送、接收、操作、处理、显示、存储等的数据、内容、信息和/或在此可互换使用的类似术语)。例如,管理计算实体1100可与用户装置1110和/或各种其他计算实体通信。
如图12中所示,在一个实施例中,管理计算实体1100可包括一个或更多个处理元件1205(也称为处理器、处理电路和/或在此可互换使用的类似术语)或与一个或更多个处理元件1205通信,所述一个或更多个处理元件1205例如经由总线与管理计算实体1100内的其他元件通信。如将被理解的,处理元件1205可以以多种不同的方式实施。例如,处理元件1205可被实施为一个或更多个复杂可编程逻辑器件(CPLD)、微处理器、多核处理器、协处理实体、专用指令集处理器(ASIP)、微控制器和/或控制器。此外,处理元件1205可被实施为一个或更多个其他处理装置或电路。术语电路可表示完全硬件实施例或硬件和计算机程序产品的组合。因此,处理元件1205可被实施为集成电路、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、硬件加速器、其他电路等。因此,如将被理解的,处理元件1205可被配置用于特定用途或被配置为执行存储在易失性或非易失性介质中或以其他方式可由处理元件1205访问的指令。因此,无论是由硬件还是计算机程序产品配置,还是由它们的组合配置,当相应地被配置时,处理元件1205可能够执行根据本公开的实施例的步骤或操作。
在一个实施例中,管理计算实体1100还可包括非易失性介质(也称为非易失性存储装置、存储器、存储器存储装置、存储器电路和/或在此可互换使用的类似术语)或与非易失性介质通信。在一个实施例中,非易失性存储装置或存储器可包括一个或更多个非易失性存储装置或存储介质1210,非易失性存储装置或存储介质1210包括但不限于硬盘、ROM、PROM、EPROM、EEPROM、闪存、MMC、SD存储卡、记忆棒、CBRAM、PRAM、FeRAM、NVRAM、MRAM、RRAM、SONOS、FJG RAM、Millipede存储器、赛道存储器等。如将认识到的,非易失性存储装置或存储器介质可存储数据库、数据库实例、数据库管理系统、数据、应用、程序、程序组件、脚本、源代码、目标代码、字节代码、编译代码、解释代码、机器代码、可执行指令等。术语数据库、数据库实例、数据库管理系统和/或在此可互换使用的类似术语可表示使用一个或更多个数据库模型(诸如,分层数据库模型、网络模型、关系模型、实体关系模型、对象模型、文档模型、语义模型、图模型等)存储在计算机可读存储介质中的记录或数据的集合。
在一个实施例中,管理计算实体1100还可包括易失性介质(也称为易失性存储装置、存储器、存储器存储装置、存储器电路和/或在此可互换使用的类似术语)或与易失性介质通信。在一个实施例中,易失性存储装置或存储器还可以包括一个或更多个易失性存储装置或存储介质1215,易失性存储装置或存储介质1215包括但不限于RAM、DRAM、SRAM、FPMDRAM、EDO DRAM、SDRAM、DDR SDRAM、DDR2 SDRAM、DDR3 SDRAM、RDRAM、TTRAM、T-RAM、Z-RAM、RIMM、DIMM、SIMM、VRAM、高速缓冲存储器、寄存器存储器等。如将认识到的,易失性存储装置或存储介质可用于存储例如由处理元件1205执行的数据库、数据库实例、数据库管理系统、数据、应用、程序、程序组件、脚本、源代码、目标代码、字节代码、编译代码、解释代码、机器代码、可执行指令等的至少一部分。因此,数据库、数据库实例、数据库管理系统、数据、应用、程序、程序组件、脚本、源代码、目标代码、字节代码、编译代码、解释代码、机器代码、可执行指令等可用于在处理元件1205和操作系统的帮助下控制管理计算实体1100的操作的某些方面。
如所指示的,在一个实施例中,管理计算实体1100还可包括用于与各种计算实体通信(诸如,通过传送可被发送、接收、操作、处理、显示、存储等的数据、内容、信息和/或在此可互换使用的类似术语)的一个或更多个通信接口1220。这样的通信可使用有线数据传输协议(诸如,快速外围组件互连(PCIe)、光纤分布式数据接口(FDDI)、数字用户线(DSL)、以太网、异步传输模式(ATM)、帧中继、电缆数据服务接口规范(DOCSIS)或任何其他有线传输协议)来执行。类似地,管理计算实体1100可被配置为使用各种协议(诸如,通用分组无线服务(GPRS)、通用移动通信系统(UMTS)、码分多址2000(CDMA2000)、CDMA2000 1X(1xRTT)、宽带码分多址(WCDMA)、时分同步码分多址(TD-SCDMA)、长期演进(LTE)、演进型通用陆地无线接入网络(E-UTRAN)、演进数据优化(EVDO)、高速分组接入(HSPA)、高速下行链路分组接入(HSDPA)、IEEE 802.11(Wi-Fi)、Wi-Fi直连、802.16(WiMAX)、超宽带(UWB)、红外(IR)协议、近场通信(NFC)协议、ZigBee、蓝牙协议、5G协议、无线通用串行总线(USB)协议和/或任何其他无线协议)中的任何一种经由无线外部通信网络进行通信。
尽管未示出,但是管理计算实体1100可包括一个或更多个输入元件(诸如,键盘输入、鼠标输入、触摸屏/显示器输入、运动输入、移动输入、音频输入、指示装置输入、操纵杆输入、小键盘输入等)或与一个或更多个输入元件通信。管理计算实体1100还可包括一个或更多个输出元件(未示出)(诸如,音频输出、视频输出、屏幕/显示器输出、运动输出、移动输出等)或与一个或更多个输出元件通信。
如将被理解的,管理计算实体1100的组件中的一个或更多个可设置得远离其他管理计算实体1100组件(诸如,在分布式系统中)。此外,一个或更多个组件可被组合,并且执行在此描述的功能的附加组件可包括在管理计算实体1100中。因此,管理计算实体1100可适合于适应各种需要和情况。如将认识到的,提供这些架构和描述仅出于示例目的,并且不限于各种实施例。
用户可以是个人、家庭、公司、组织、实体、组织内的部门、组织和/或个人的代表等。在一个示例中,用户可以是雇员、居民、客户等。例如,用户可操作用户装置1110,用户装置1110包括在功能上类似于管理计算实体1100的功能的一个或更多个组件。
在各个方面,处理组件、发送组件和/或接收组件(未示出)可被配置为在一个或更多个用户装置1110上进行操作,它们可以包括如这里结合图11和图12示出和描述的管理计算实体1100的功能的方面。具体地,处理组件、发送组件和/或接收组件可被配置为与一个或更多个处理元件1205、存储器1210、易失性存储器1215通信,并且可包括通信接口1220(例如,用于促进装置之间的通信)。
图13示出根据公开的示例实施例的用户装置的示例示意图。图13提供了表示可与本公开的实施例结合使用的用户装置1110(结合图11示出)的说明性示意图。通常,术语装置、系统、计算实体、实体和/或在此可互换使用的类似词语可表示例如一个或更多个计算机、计算实体、台式机、移动电话、平板计算机、平板手机、笔记本计算机、膝上型计算机、分布式系统、游戏控制台(例如Xbox、PlayStation、Wii)、手表、眼镜、钥匙扣、射频识别(RFID)标签、耳机、扫描仪、相机、腕带、自动服务终端、输入终端、服务器或服务器网络、刀片、网关、交换机、处理装置、处理实体、机顶盒、中继器、路由器、网络接入点、基站等和/或适于执行在此描述的功能、操作和/或处理等的装置或实体的任何组合。用户装置1110可由各方进行操作。如图13中所示,用户装置1110可包括天线1312、发送器1304(例如,无线电)、接收器1306(例如,无线电)以及分别向发送器1304提供信号和从接收器1306接收信号的处理元件(又称为处理装置)1308(例如,CPLD、FPGA、微处理器、多核处理器、协处理实体、ASIP、微控制器和/或控制器)。
分别提供给发送器1304和从接收器1306接收的信号可包括根据适用的无线系统的空中接口标准的信令信息。在这方面,用户装置1110可能够以一个或更多个空中接口标准、通信协议、调制类型和接入类型来操作。更具体地,用户装置1110可根据多个无线通信标准和协议(诸如,以上关于图10的管理计算实体1100描述的无线通信标准和协议)中的任何一个进行操作。在特定实施例中,用户装置1110可根据多个无线通信标准和协议(诸如,公开的IoT DOCSIS协议、UMTS、CDMA2000、1xRTT、WCDMA、TD-SCDMA、LTE、E-UTRAN、EVDO、HSPA、HSDPA、5G、Wi-Fi、Wi-Fi直连、WiMAX、UWB、IR、NFC、蓝牙、USB等)进行操作。类似地,用户装置1110可根据多个有线通信标准和协议(诸如,以上关于管理计算实体1100描述的有线通信标准和协议)经由网络接口1320进行操作。
经由这些通信标准和协议,用户装置1110可使用诸如非结构化补充服务数据(USSD)、短消息服务(SMS)、多媒体消息服务(MMS)、双音多频信令(DTMF)和/或订户身份组件拨号器(SIM拨号器)的构思与各种其他实体通信。用户装置1110还可将更改、附加件和更新下载到例如它的固件、软件(例如,包括可执行指令、应用、程序组件)和操作系统。
根据一个实施例,用户装置1110可包括位置确定方面、装置、组件、功能和/或在此可互换使用的类似词语。位置确定方面可用于通知由管理计算实体使用的模型以及在此描述的模型和/或机器学习技术中的一个或更多个。例如,用户装置1110可包括室外定位方面(诸如,适于获取例如纬度、经度、高度、地理编码、路线、方向、航向、速度、世界时(UTC)、日期和/或各种其他信息/数据的位置组件)。在一个实施例中,位置组件可通过识别视野中的卫星的数量和这些卫星的相对位置来获取有时被称为星历数据的数据。卫星可以是各种不同的卫星,包括近地轨道(LEO)卫星系统、美国国防部(DOD)卫星系统、欧盟伽利略定位系统、中国指南针导航系统、印度区域导航卫星系统等。可选地,可通过结合各种其他系统(包括蜂窝塔、Wi-Fi接入点等)对用户装置1110的位置进行三角测量来确定位置信息。类似地,用户装置1110可包括室内定位方面(诸如,适于获取例如纬度、经度、高度、地理编码、路线、方向、航向、速度、时间、日期和/或各种其他信息/数据的位置组件)。一些室内系统可使用各种位置或定位技术(包括RFID标签、室内信标或发射器、Wi-Fi接入点、蜂窝塔、附近的计算装置(例如,智能电话、膝上型计算机)等)。例如,这样的技术可包括iBeacon、万向节邻近信标(Gimbal proximity beacons)、蓝牙低功耗(BLE)发射器、NFC发射器等。这些室内定位方面可在各种设置中使用,以将某人或某物的位置确定在英寸或厘米内。
用户装置1110还可包括用户接口(其可包括连接到处理元件1308的显示器1316)和/或用户输入接口(连接到处理元件1308)。例如,如在此描述的,用户接口可以是在用户装置1110上执行和/或可经由用户装置1110访问的用户应用、浏览器、用户界面和/或在此可互换使用的类似词语,用于与管理计算实体1100进行交互和/或显示来自管理计算实体1100的信息。用户输入接口可包括允许用户装置1110接收数据的多个装置或接口(诸如,小键盘1318(硬或软)、触摸显示器、声音/语音或运动接口或其他输入装置)中的任何一个。在包括小键盘1318的实施例中,小键盘1318可包括(或能显示)常规数字(0-9)和相关键(#、*)以及用于操作用户装置1110的其他键,并且可包括完整的一组字母键或可被激活以提供一组完整的字母数字键的一组键。除了提供输入之外,用户输入接口可用于例如激活或去激活特定功能(诸如,屏幕保护和/或睡眠模式)。
用户装置1110还可包括可以是嵌入式和/或可以是可移除的易失性存储装置或存储器1322和/或非易失性存储装置或存储器1324。例如,非易失性存储器可以是ROM、PROM、EPROM、EEPROM、闪存、MMC、SD存储卡、记忆棒、CBRAM、PRAM、FeRAM、NVRAM、MRAM、RRAM、SONOS、FJG RAM、Millipede存储器、赛道存储器等。易失性存储器可以是RAM、DRAM、SRAM、FPMDRAM、EDO DRAM、SDRAM、DDR SDRAM、DDR2SDRAM、DDR3 SDRAM、RDRAM、TTRAM、T-RAM、Z-RAM、RIMM、DIMM、SIMM、VRAM、高速缓冲存储器、寄存器存储器等。易失性和非易失性存储装置或存储器可存储数据库、数据库实例、数据库管理系统、数据、应用、程序、程序组件、脚本、源代码、目标代码、字节代码、编译代码、解释代码、机器代码、可执行指令等,以实现用户装置1110的功能。如所指示的,这可包括存在于实体上或可通过浏览器或其他用户界面访问的用户应用,用于与管理计算实体1100和/或各种其他计算实体通信。
在另一实施例中,如上面更详细描述的那样,用户装置1110可包括与管理计算实体1100的组件或功能相同或相似的一个或更多个组件或功能。如将认识到的,提供这些架构和描述仅用于示例目的,并且不限于各种实施例。
特定实施例可以以硬件、固件和软件之一或其组合实现。其他实施例也可被实现为可由至少一个处理器读取和执行以执在此描述的操作的存储在计算机可读存储装置上的指令。计算机可读存储装置可包括用于以机器(例如,计算机)可读的形式存储信息的任何非暂时性存储器机构。例如,计算机可读存储装置可包括只读存储器(ROM)、随机存取存储器(RAM)、磁盘存储介质、光存储介质、闪存装置以及其他存储装置和介质。
在此使用词语“示例性”来表示“用作示例、实例或说明”。在此描述为“示例性”的任何实施例不必被解释为比其他实施例优选或有利。在此使用术语“计算装置”、“用户装置”、“通信站”、“站”、“手持装置”、“移动装置”、“无线装置”和“用户设备”(UE)表示无线通信装置(诸如,蜂窝电话、智能电话、平板计算机、上网本、无线终端、膝上型计算机、家庭基站、高数据速率(HDR)用户站、接入点、打印机、销售点装置、接入终端或其他个人通信系统(PCS)装置)。装置可以是移动的或静止的。
如本文档内所使用的,术语“通信”意在包括发送、或接收、或发送和接收两者。当描述由一个装置发送并由另一装置接收的数据的组织,但是仅需要这些装置之一的功能侵权时,这在权利要求中会特别有用。类似地,当仅要求这些装置之一的功能时,两个装置之间的双向数据交换(两个装置在交换期间发送和接收)可被描述为“通信”。如在此使用的针对无线通信信号的术语“通信”包括发送无线通信信号和/或接收无线通信信号。例如,能够传送无线通信信号的无线通信单元可包括用于将无线通信信号发送到至少一个其他无线通信单元的无线发送器、和/或用于从至少一个其他无线通信单元接收无线通信信号的无线通信接收器。
一些实施例可与各种装置和系统(例如,个人计算机(PC)、台式计算机、移动计算机、膝上型计算机、笔记本计算机、平板计算机、服务器计算机、手持计算机、手持装置、个人数字助理(PDA)装置、手持PDA装置、车载装置、非车载装置、混合装置、车辆装置、非车辆装置、移动或便携式装置、消费者装置、非移动或非便携式装置、无线通信站、无线通信装置、无线接入点(AP)、有线或无线路由器、有线或无线调制解调器、视频装置、音频装置、音频-视频(A/V)装置、有线或无线网络、无线区域网络、无线视频区域网络(WVAN)、局域网(LAN)、无线LAN(WLAN)、个人区域网络(PAN)、无线PAN(WPAN)等)结合使用。
一些实施例可与单向和/或双向无线电通信系统、蜂窝无线电话通信系统、移动电话、蜂窝电话、无线电话、个人通信系统(PCS)装置、包含无线通信装置的PDA装置、移动或便携式全球定位系统(GPS)装置、包含GPS接收器或收发器或芯片的装置、包含RFID元件或芯片的装置、多输入多输出(MIMO)收发器或装置、单输入多输出(SIMO)收发器或装置、多输入单输出(MISO)收发器或装置、具有一个或更多个内部天线和/或外部天线的装置、数字视频广播(DVB)装置或系统、多标准无线电装置或系统、有线或无线手持装置(例如,智能电话)、无线应用协议(WAP)装置等结合使用。
一些实施例可与遵循一个或更多个无线通信协议(例如,射频(RF)、红外(IR)、频分复用(FDM)、正交FDM(OFDM)、时分复用(TDM)、时分多址(TDMA)、扩展TDMA(E-TDMA)、通用分组无线服务(GPRS)、扩展GPRS、码分多址(CDMA)、宽带CDMA(WCDMA)、CDMA 2000、单载波CDMA、多载波CDMA、多载波调制(MDM)、离散多音调(DMT)、蓝牙(BluetoothTM)、全球定位系统(GPS)、Wi-Fi、Wi-Max、ZigBeeTM、超宽带(UWB)、全球移动通信系统(GSM)、2G、2.5G、3G、3.5G、4G、第五代(5G)移动网络、3GPP、长期演进(LTE)、高级LTE、增强型数据速率GSM演进(EDGE)等)的一种或多种类型的无线通信信号和/或系统结合使用。其他实施例可在各种其他装置、系统和/或网络中使用。
尽管以上已经描述了示例处理系统,但是在此描述的主题和功能操作的实施例可在其他类型的数字电子电路中实现,或者在计算机软件、固件或硬件(包括本说明书中公开的结构及其结构等同物)中实现,或者在它们中的一个或更多个的组合中实现。
在此描述的主题和操作的实施例可在数字电子电路中实现,或者在计算机软件、固件或硬件(包括本说明书中公开的结构及其结构等同物)中实现,或者它们中的一个或更多个的组合中实现。在此描述的主题的实施例可被实现为一个或更多个计算机程序(即,被编码在计算机存储介质上的计算机程序指令的一个或更多个组件,用于由信息/数据处理设备执行或控制信息/数据处理设备的操作)。可选地或另外地,程序指令可被编码在人工生成的传播信号(例如,机器生成的电、光或电磁信号)上,传播信号被生成以对信息/数据进行编码以便传输到合适的接收器设备,从而由信息/数据处理设备执行。计算机存储介质可以是计算机可读存储装置、计算机可读存储基板、随机或串行存取存储器阵列或装置、或者它们中的一个或更多个的组合,或者计算机存储介质可被包括在计算机可读存储装置、计算机可读存储基板、随机或串行存取存储器阵列或装置、或者它们中的一个或更多个的组合中。此外,虽然计算机存储介质不是传播信号,但是计算机存储介质可以是在人工生成的传播信号中编码的计算机程序指令的源或目的地。计算机存储介质还可以是一个或更多个单独的物理组件或介质(例如,多个CD、磁盘或其他存储装置),或者被包括在一个或更多个单独的物理组件或介质(例如,多个CD、磁盘或其他存储装置)中。
在此描述的操作可被实现为由信息/数据处理设备对存储在一个或更多个计算机可读存储装置上或从其他源接收的信息/数据执行的操作。
术语“数据处理设备”包括用于处理数据的所有类型的设备、装置和机器(包括例如可编程处理器、计算机、片上系统或前述设备的多个或组合)。设备可包括专用逻辑电路(例如,FPGA(现场可编程门阵列)或ASIC(专用集成电路))。除了硬件之外,设备还可包括为所讨论的计算机程序创建执行环境的代码(例如,构成处理器固件、协议栈、数据库管理系统、操作系统、跨平台运行时环境、虚拟机或它们中的一个或更多个的组合的代码)。设备和执行环境可实现各种不同的计算模型基础架构(诸如,web服务、分布式计算和网格计算基础架构)。
计算机程序(也称为程序、软件、软件应用、脚本或代码)可以以任何形式的编程语言(包括编译或解释语言、声明性或过程性语言)编写,并且可以以任何形式部署(包括作为独立程序或作为组件、组件、子例程、对象或适合于在计算环境中使用的其他单元)。计算机程序可以但不必对应于文件系统中的文件。程序可被存储在保存其他程序或信息/数据(例如,存储在标记语言文档中的一个或更多个脚本)的文件的一部分中,存储在专用于所讨论的程序的单个文件中,或者存储在多个协调文件(例如,存储一个或更多个组件、子程序或代码部分的文件)中。计算机程序可被部署为在一个计算机上或在位于一个站点或分布在多个站点并通过通信网络互连的多个计算机上执行。
在此描述的处理和逻辑流程可由执行一个或更多个计算机程序的一个或更多个可编程处理器执行,以通过对输入信息/数据进行操作并生成输出来执行动作。作为示例,适合于执行计算机程序的处理器包括通用微处理器和专用微处理器两者、以及任何种类的数字计算机的任何一个或更多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和信息/数据。计算机的基本元件是用于根据指令执行动作的处理器和用于存储指令和数据的一个或更多个存储器装置。通常,计算机还将包括用于存储数据的一个或更多个大容量存储装置(例如,磁盘、磁光盘或光盘),或者可操作地连接以从一个或更多个大容量存储装置接收信息/数据或将信息/数据传送到一个或更多个大容量存储装置或两者。然而,计算机不需要具有这样的装置。适合于存储计算机程序指令和信息/数据的装置包括所有形式的非易失性存储器、介质和存储器装置(例如包括半导体存储器装置(例如,EPROM、EEPROM和闪存装置);磁盘(例如,内部硬盘或可移动磁盘);磁光盘;以及CD-ROM和DVD-ROM盘)。处理器和存储器可由专用逻辑电路进行补充或包含在专用逻辑电路中。
为了提供与用户的交互,在此描述的主题的实施例可在具有用于向用户显示信息/数据的显示装置(例如,CRT(阴极射线管)或LCD(液晶显示器)监视器)以及用户可通过其向计算机提供输入的键盘和指向装置(例如,鼠标或轨迹球)的计算机上实现。也可使用其他类型的装置来提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈(例如,视觉反馈、听觉反馈或触觉反馈),并且可以以任何形式接收来自用户的输入(包括声音、语音或触觉输入)。此外,计算机可通过向用户使用的装置发送文档和从用户使用的装置接收文档来与用户交互(例如,通过响应于从网络浏览器接收的请求而向用户的客户端装置上的网络浏览器发送网页)。
在此描述的主题的实施例可在计算系统中实现,计算系统包括后端组件(例如,作为信息/数据服务器),或者包括中间件组件(例如,应用服务器),或者包括前端组件(例如,具有图形用户界面或网络浏览器的客户端计算机,用户可通过图形用户界面或网络浏览器与在此描述的主题的实施例交互),或者包括一个或更多个这样的后端、中间件或前端组件的任何组合。系统的组件可通过任何形式或介质的数字信息/数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“LAN”)和广域网(“WAN”)、互联网络(例如,互联网)和点对点网络(例如,自组织点对点网络)。
计算系统可包括客户端和服务器。客户端和服务器通常彼此远离,并且通常通过通信网络进行交互。客户端和服务器的关系借助于在相应计算机上运行并且彼此具有客户端-服务器关系的计算机程序而产生。在一些实施例中,服务器将信息/数据(例如,HTML页面)发送到客户端装置(例如,为了向与客户端装置交互的用户显示信息/数据以及从与客户端装置交互的用户接收用户输入的目的)。可在服务器从客户端装置接收在客户端装置生成的信息/数据(例如,用户交互的结果)。
虽然本说明书包含许多具体实施例细节,但是这些细节不应被解释为对任何实施例或可要求保护的范围的限制,而是作为针对特定实施例的特征的描述。在此在分开的实施例的上下文中描述的特定特征也可在单个实施例中组合实现。相反,在单个实施例的上下文中描述的各种特征也可分开地或以任何合适的子组合在多个实施例中实现。此外,尽管上面可将特征描述为以特定组合起作用并且甚至最初如此要求保护,但是在一些情况下,可从组合删除来自要求保护的组合的一个或更多个特征,并且要求保护的组合可针对子组合或子组合的变体。
类似地,虽然在附图中以特定顺序描绘了操作,但是这不应被理解为要求以示出的特定顺序或按顺序执行这些操作,或者执行所有示出的操作,以实现期望的结果。在特定情况下,多任务和并行处理可以是有利的。此外,上述实施例中的各种系统组件的分离不应被理解为在所有实施例中都需要这种分离,并且应当理解,描述的程序组件和系统通常可以一起集成在单个软件产品中或封装到多个软件产品中。
因此,已经描述了主题的特定实施例。其它实施例在权利要求的范围内。在一些情况下,权利要求中记载的动作可以以不同的顺序执行,并且仍然实现期望的结果。此外,附图中描绘的处理不一定需要示出的特定顺序或相继顺序来实现期望的结果。在特定实施例中,多任务和并行处理可以是有利的。
受益于前面的描述和相关联的附图中呈现的教导,这些实施例所属领域的技术人员将想到在此阐述的公开的许多修改和其他实施例。因此,应当理解,实施例不限于公开的具体实施例,并且修改和其他实施例意在包括在所附权利要求的范围内。尽管在此采用了特定术语,但是它们仅在一般和描述性意义上使用,而不是出于限制的目的。
Claims (20)
1.一种用于提供存储资源的装置,所述装置包括:
第一控制器,耦接到网络接口,其中,第一控制器能够利用高速缓存一致性协议进行操作;
第二控制器,耦接到第一控制器且耦接到第一存储器,其中,第二控制器执行与所述装置的高速缓存相关联的至少一个操作;以及
第二存储器,耦接到第一控制器和第二控制器中的至少一个。
2.如权利要求1所述的装置,其中,所述装置进行以下操作:
从主机接收配置信息;
配置所述装置以在操作的启动时间模式下将第二控制器作为基于软件的高速缓存和基于硬件的高速缓存中的一个进行操作;
经由第一控制器,使用所述高速缓存一致性协议经由所述网络接口接收数据;
对所述数据执行至少一个第二操作以生成第二数据,并且
基于所述高速缓存一致性协议将第二数据存储在第二存储器上。
3.如权利要求1所述的装置,其中,所述高速缓存一致性协议包括快速计算链路CXL协议,并且其中,所述装置还包括:剖析器,确定与所述装置相关联的至少一个能力并将该能力提供给主机。
4.如权利要求1所述的装置,其中,所述装置还包括耦接到第三存储器的第三控制器,其中,第三存储器包括非易失性存储器。
5.如权利要求1所述的装置,其中,第一存储器包括第一易失性存储器,并且第二存储器包括第二易失性存储器。
6.如权利要求5所述的装置,其中,第一易失性存储器包括双倍数据速率存储器或低功率双倍数据速率存储器。
7.如权利要求1所述的装置,其中,第一存储器包括第一非易失性存储器,并且第二存储器包括第二非易失性存储器。
8.如权利要求7所述的装置,其中,第一非易失性存储器包括三维闪存。
9.如权利要求1所述的装置,其中,所述装置包括M.2形状因子、E1.L形状因子、E1.S形状因子、E3 S/L形状因子、U.2形状因子、NF1形状因子、全高半长FHHL插卡AIC形状因子和半高半长HHHL AIC形状因子中的至少一个。
10.如权利要求1所述的装置,其中,第二控制器包括流控制模块、高速缓存寻址模块和高速缓存策略模块中的至少一个。
11.如权利要求1所述的装置,其中,第二控制器包括信道请求队列、易失性存储器请求调度器和易失性存储器命令调度器中的至少一个。
12.如权利要求1所述的装置,其中,所述装置还包括加速器或网络接口卡NIC。
13.一种用于提供存储资源的系统,所述系统包括:
第一控制器,耦接到网络接口,其中,第一控制器能够利用高速缓存一致性协议进行操作;
第二控制器,耦接到第一控制器且耦接到第一存储器,其中,第二控制器执行与高速缓存相关联的至少一个操作;以及
第二存储器,耦接到第一控制器和第二控制器中的至少一个。
14.如权利要求13所述的系统,其中,所述系统进行以下操作:
经由第一控制器,使用所述高速缓存一致性协议经由所述网络接口接收数据,
对所述数据执行至少一个第二操作以生成第二数据,并且
将第二数据存储在第一存储器或第二存储器上。
15.如权利要求13所述的系统,其中,所述高速缓存一致性协议包括CXL协议,并且所述系统还包括:剖析器,确定与所述系统相关联的至少一个能力并将该能力提供给主机。
16.如权利要求13所述的系统,其中,第一存储器包括易失性存储器,并且第二存储器包括易失性存储器。
17.如权利要求16所述的系统,其中,所述易失性存储器包括双倍数据速率存储器或低功率双倍数据速率存储器。
18.如权利要求13所述的系统,其中,第一存储器包括非易失性存储器,并且第二存储器包括非易失性存储器。
19.一种用于提供存储资源的方法,所述方法包括:
根据高速缓存一致性协议来操作耦接到网络接口的第一控制器;
使用耦接到第一控制器且耦接到第一存储器的第二控制器对与高速缓存相关联的数据执行至少一个操作;并且
将所述数据存储在耦接到第一控制器和第二控制器中的一个的第二存储器上。
20.如权利要求19所述的方法,其中,所述方法还包括:
从主机接收配置信息;
在操作的启动时间模式下将第二控制器作为基于软件的高速缓存和基于硬件的高速缓存中的一个进行操作;
经由第一控制器,使用所述高速缓存一致性协议经由所述网络接口接收第二数据;
对第二数据执行至少一个第二操作以生成第三数据,并且
基于所述高速缓存一致性协议将第三数据存储在第二存储器上。
Applications Claiming Priority (10)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202063031508P | 2020-05-28 | 2020-05-28 | |
US202063031509P | 2020-05-28 | 2020-05-28 | |
US63/031,508 | 2020-05-28 | ||
US63/031,509 | 2020-05-28 | ||
US202063057746P | 2020-07-28 | 2020-07-28 | |
US63/057,746 | 2020-07-28 | ||
US202063068054P | 2020-08-20 | 2020-08-20 | |
US63/068,054 | 2020-08-20 | ||
US17/246,448 US20210374056A1 (en) | 2020-05-28 | 2021-04-30 | Systems and methods for scalable and coherent memory devices |
US17/246,448 | 2021-04-30 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113742256A true CN113742256A (zh) | 2021-12-03 |
Family
ID=75914467
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110589980.3A Pending CN113742256A (zh) | 2020-05-28 | 2021-05-28 | 用于可扩展且一致性存储器装置的系统和方法 |
Country Status (5)
Country | Link |
---|---|
US (2) | US20210374056A1 (zh) |
EP (1) | EP3920034B1 (zh) |
KR (1) | KR20210147976A (zh) |
CN (1) | CN113742256A (zh) |
TW (1) | TW202145767A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114020655A (zh) * | 2022-01-05 | 2022-02-08 | 苏州浪潮智能科技有限公司 | 一种内存扩展方法、装置、设备及存储介质 |
CN114785797A (zh) * | 2022-04-26 | 2022-07-22 | 南京甄视智能科技有限公司 | 一种录像存储容灾系统及方法 |
CN115729849A (zh) * | 2022-11-04 | 2023-03-03 | 超聚变数字技术有限公司 | 内存管理方法及计算设备 |
CN116431530A (zh) * | 2023-02-08 | 2023-07-14 | 北京超弦存储器研究院 | 一种cxl内存模组、内存的处理方法及计算机系统 |
CN117785758A (zh) * | 2024-02-27 | 2024-03-29 | 北京超弦存储器研究院 | Cxl模组、控制器、任务处理方法、介质和系统 |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11704060B2 (en) * | 2020-12-18 | 2023-07-18 | Micron Technology, Inc. | Split protocol approaches for enabling devices with enhanced persistent memory region access |
US20220358042A1 (en) * | 2021-05-07 | 2022-11-10 | Samsung Electronics Co., Ltd. | Coherent memory system |
US20230017643A1 (en) * | 2021-07-18 | 2023-01-19 | Elastics.cloud, Inc. | Composable infrastructure enabled by heterogeneous architecture, delivered by cxl based cached switch soc |
US20210374087A1 (en) * | 2021-07-20 | 2021-12-02 | Intel Corporation | Technologies for increasing link efficiency |
US20210349840A1 (en) * | 2021-07-26 | 2021-11-11 | Intel Corporation | System, Apparatus And Methods For Handling Consistent Memory Transactions According To A CXL Protocol |
US11829619B2 (en) * | 2021-11-09 | 2023-11-28 | Western Digital Technologies, Inc. | Resource usage arbitration in non-volatile memory (NVM) data storage devices with artificial intelligence accelerators |
US20230236725A1 (en) * | 2022-01-25 | 2023-07-27 | Dell Products L.P. | Method to opportunistically reduce the number of SSD IOs, and reduce the encryption payload, in an SSD based cache in a deduplication file system |
US20230281128A1 (en) * | 2022-03-03 | 2023-09-07 | Samsung Electronics Co., Ltd. | Cache-coherent interconnect based near-data-processing accelerator |
US20230297520A1 (en) * | 2022-03-21 | 2023-09-21 | Micron Technology, Inc. | Compute express link memory and storage module |
US20230342240A1 (en) * | 2022-04-26 | 2023-10-26 | Nxp Usa, Inc. | Data processing system having a memory controller with inline error correction code (ecc) support |
EP4273708A1 (en) * | 2022-05-06 | 2023-11-08 | Samsung Electronics Co., Ltd. | Operation method of host configured to communicate with storage devices and memory devices, and system including storage devices and memory devices |
US12067385B2 (en) * | 2022-07-28 | 2024-08-20 | Dell Products L.P. | Configuring compute express link (CXL) attributes for best known configuration |
US20240045804A1 (en) * | 2022-08-01 | 2024-02-08 | Memverge, Inc. | Cache coherency for shared memory |
US12013788B2 (en) * | 2022-08-30 | 2024-06-18 | Micron Technology, Inc. | Evicting a cache line with pending control request |
TWI817834B (zh) * | 2022-11-18 | 2023-10-01 | 鯨鏈科技股份有限公司 | 記憶體架構及其資料處理方法 |
US20240193085A1 (en) * | 2022-12-12 | 2024-06-13 | Micron Technology, Inc. | Data Storage Device with Memory Services based on Storage Capacity |
KR20240097485A (ko) * | 2022-12-20 | 2024-06-27 | 삼성전자주식회사 | 병렬 싱글-스테이지 스위치를 이용한 전자 장치, 저장 장치 및 연산 장치 |
US20240220405A1 (en) * | 2022-12-29 | 2024-07-04 | Advanced Micro Devices, Inc. | Systems and methods for hosting an interleave across asymmetrically populated memory channels across two or more different memory types |
US20240264944A1 (en) * | 2023-02-08 | 2024-08-08 | Micron Technology, Inc. | Data Storage Device with Memory Services for Storage Access Queues |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3681647B2 (ja) * | 2001-02-21 | 2005-08-10 | 株式会社半導体理工学研究センター | キャッシュメモリシステム装置 |
US7526608B2 (en) * | 2004-05-28 | 2009-04-28 | Sony Computer Entertainment Inc. | Methods and apparatus for providing a software implemented cache memory |
US10877695B2 (en) * | 2009-10-30 | 2020-12-29 | Iii Holdings 2, Llc | Memcached server functionality in a cluster of data processing nodes |
US10225344B2 (en) * | 2016-08-12 | 2019-03-05 | International Business Machines Corporation | High-performance key-value store using a coherent attached bus |
US10599548B2 (en) * | 2018-06-28 | 2020-03-24 | Intel Corporation | Cache monitoring |
US11100040B2 (en) * | 2018-10-17 | 2021-08-24 | Cisco Technology, Inc. | Modular remote direct memory access interfaces |
US11025544B2 (en) * | 2019-06-07 | 2021-06-01 | Intel Corporation | Network interface for data transport in heterogeneous computing environments |
US20200104275A1 (en) * | 2019-12-02 | 2020-04-02 | Intel Corporation | Shared memory space among devices |
-
2021
- 2021-04-30 US US17/246,448 patent/US20210374056A1/en active Granted
- 2021-05-20 EP EP21175017.9A patent/EP3920034B1/en active Active
- 2021-05-21 TW TW110118357A patent/TW202145767A/zh unknown
- 2021-05-28 KR KR1020210069113A patent/KR20210147976A/ko active Search and Examination
- 2021-05-28 CN CN202110589980.3A patent/CN113742256A/zh active Pending
-
2023
- 2023-07-24 US US18/357,798 patent/US20230367711A1/en active Pending
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114020655A (zh) * | 2022-01-05 | 2022-02-08 | 苏州浪潮智能科技有限公司 | 一种内存扩展方法、装置、设备及存储介质 |
CN114785797A (zh) * | 2022-04-26 | 2022-07-22 | 南京甄视智能科技有限公司 | 一种录像存储容灾系统及方法 |
CN115729849A (zh) * | 2022-11-04 | 2023-03-03 | 超聚变数字技术有限公司 | 内存管理方法及计算设备 |
CN115729849B (zh) * | 2022-11-04 | 2024-02-20 | 超聚变数字技术有限公司 | 内存管理方法及计算设备 |
CN116431530A (zh) * | 2023-02-08 | 2023-07-14 | 北京超弦存储器研究院 | 一种cxl内存模组、内存的处理方法及计算机系统 |
CN116431530B (zh) * | 2023-02-08 | 2024-03-15 | 北京超弦存储器研究院 | 一种cxl内存模组、内存的处理方法及计算机系统 |
WO2024164465A1 (zh) * | 2023-02-08 | 2024-08-15 | 北京超弦存储器研究院 | 一种cxl内存模组、内存的处理方法及计算机系统 |
CN117785758A (zh) * | 2024-02-27 | 2024-03-29 | 北京超弦存储器研究院 | Cxl模组、控制器、任务处理方法、介质和系统 |
CN117785758B (zh) * | 2024-02-27 | 2024-05-28 | 北京超弦存储器研究院 | Cxl模组、控制器、任务处理方法、介质和系统 |
Also Published As
Publication number | Publication date |
---|---|
US20230367711A1 (en) | 2023-11-16 |
EP3920034A1 (en) | 2021-12-08 |
TW202145767A (zh) | 2021-12-01 |
US20210374056A1 (en) | 2021-12-02 |
KR20210147976A (ko) | 2021-12-07 |
EP3920034B1 (en) | 2024-06-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3920034B1 (en) | Systems and methods for scalable and coherent memory devices | |
US20210373951A1 (en) | Systems and methods for composable coherent devices | |
Chan et al. | {HashKV}: Enabling Efficient Updates in {KV} Storage via Hashing | |
US11709623B2 (en) | NAND-based storage device with partitioned nonvolatile write buffer | |
KR102519904B1 (ko) | 영구 메모리 할당 및 구성 | |
US11487675B1 (en) | Collecting statistics for persistent memory | |
US7979645B2 (en) | Multiprocessor system for memory mapping of processing nodes | |
US9836400B2 (en) | Method, apparatus and system for dynamically controlling an addressing mode for a cache memory | |
US10866737B2 (en) | Apparatus, method and system to store information for a solid state drive | |
EP3382557A1 (en) | Method and apparatus for persistently caching storage data in a page cache | |
US20220327068A1 (en) | Mechanism to autonomously manage ssds in an array | |
CN113553170A (zh) | 用于资源分配的系统、方法和装置 | |
US20210326270A1 (en) | Address translation at a target network interface device | |
US20140173203A1 (en) | Block Memory Engine | |
US20240069795A1 (en) | Access request reordering across a multiple-channel interface for memory-based communication queues | |
WO2019089057A1 (en) | Scalable storage system | |
US20160019128A1 (en) | Systems and methods providing mount catalogs for rapid volume mount | |
US11074202B1 (en) | Efficient management of bus bandwidth for multiple drivers | |
KR20220108710A (ko) | 연산 저장 장치에 대한 데이터 전송을 위한 시스템 및 방법 | |
Giannoula et al. | DaeMon: Architectural Support for Efficient Data Movement in Disaggregated Systems | |
US20240069805A1 (en) | Access request reordering for memory-based communication queues | |
US10853293B2 (en) | Switch-based inter-device notational data movement system | |
Das Sharma et al. | An Introduction to the Compute Express Link (CXL) Interconnect | |
Shankar | Designing Fast, Resilient and Heterogeneity-Aware Key-Value Storage on Modern HPC Clusters | |
CN117632784A (zh) | 静默高速缓存行逐出 |
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 |