TWI882091B - 用於管理記憶體資源的系統以及實行遠端直接記憶體存取的方法 - Google Patents
用於管理記憶體資源的系統以及實行遠端直接記憶體存取的方法 Download PDFInfo
- Publication number
- TWI882091B TWI882091B TW110108561A TW110108561A TWI882091B TW I882091 B TWI882091 B TW I882091B TW 110108561 A TW110108561 A TW 110108561A TW 110108561 A TW110108561 A TW 110108561A TW I882091 B TWI882091 B TW I882091B
- Authority
- TW
- Taiwan
- Prior art keywords
- server
- switch
- memory
- memory module
- cxl
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/0828—Cache consistency protocols using directory methods with concurrent directory accessing, i.e. handling multiple concurrent coherency transactions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9063—Intermediate storage in different physical parts of a node or terminal
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; 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/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F12/1045—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/1652—Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
- G06F13/1663—Access to shared memory
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; 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/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4022—Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/4221—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or systems
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/10—Current supply arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/35—Switches specially adapted for specific applications
- H04L49/351—Switches specially adapted for specific applications for local area network [LAN], e.g. Ethernet switches
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/35—Switches specially adapted for specific applications
- H04L49/356—Switches specially adapted for specific applications for storage area networks
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/04—Addressing variable-length words or parts of words
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/10—Address translation
- G06F12/1072—Decentralised address translation, e.g. in distributed shared memory systems
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5022—Workload threshold
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/505—Clust
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/1008—Correctness of operation, e.g. memory ordering
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/1028—Power efficiency
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/1032—Reliability improvement, data loss prevention, degraded operation etc
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/1041—Resource optimization
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/1041—Resource optimization
- G06F2212/1044—Space efficiency improvement
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/16—General purpose computing application
- G06F2212/163—Server or database system
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/20—Employing a main memory using a specific memory technology
- G06F2212/205—Hybrid memory, e.g. using both volatile and non-volatile memory
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/30—Providing cache or TLB in specific location of a processing system
- G06F2212/304—In main memory subsystem
- G06F2212/3042—In main memory subsystem being part of a memory device, e.g. cache DRAM
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/40—Specific encoding of data in memory or cache
- G06F2212/401—Compressed data
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/62—Details of cache specific to multiprocessor cache arrangements
- G06F2212/621—Coherency control relating to peripheral accessing, e.g. from DMA or I/O device
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
- G06F2212/657—Virtual address space management
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7208—Multiple device management, e.g. distributing data over multiple flash devices
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Human Computer Interaction (AREA)
- Mathematical Physics (AREA)
- Multi Processors (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Memory System (AREA)
- Bus Control (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 COMPUTE EFFICIENCY)」的第63/031,509號美國臨時申請案;以及在2020年8月20日提出申請且名稱為「具有快取同調記憶
體及伺服器連結交換機場的系統(SYSTEM WITH CACHE-COHERENT MEMORY AND SERVER-LINKING SWITCH FIELD)」的第63/068,054號美國臨時申請案;以及在2020年7月28日提出申請且名稱為「具有新穎內連件的分解記憶體架構(DISAGGREGATED MEMORY ARCHITECTURE WITH NOVEL INTERCONNECTS)」的第63/057,746號美國臨時申請案,所有所述美國臨時申請案的全部內容通過引用方式併入本案。
本背景技術部分旨在僅提供上下文,且本部分中的任何實施例或概念的揭露不構成對所述實施例或概念是先前技術的承認。
一些伺服器系統可包括藉由網路協定連接的伺服器的集合。此種系統中的伺服器中的每一者可包括處理資源(例如,處理器)及記憶體資源(例如,系統記憶體)。在某些情況下,一個伺服器的處理資源存取另一伺服器的記憶體資源可能是有利的,且在將任一伺服器的處理資源最小化的同時進行此種存取可能是有利的。
因此,需要一種用於管理包括一或多個伺服器的系統中的記憶體資源的改善的系統及方法。
在一些實施例中,資料儲存及處理系統包括由伺服器連結交換機連接的多個伺服器。每一伺服器可包括一或多個處理電路、系統記憶體、以及藉由快取同調交換機連接至處理電路的一或多個記憶體模組。快取同調交換機可連接至伺服器連結交換機且它可包括向其提供增強的能力的控制器(例如,現場可程式化閘陣列(field-programmable gate array,FPGA)或應用專用積體電路(application specific integrated circuit,ASIC))。該些能力可包括將記憶體模組虛擬化,進而使得交換機能夠使用非常適於所儲存資料的儲存要求(例如,延遲、頻寬或持續性)的基礎技術將資料儲存於記憶體模組中。由於該些要求已由處理電路傳輸至快取同調交換機,或者由於對存取模式進行檢測,因此快取同調交換機可接收所述儲存要求。增強的能力可更包括使伺服器能夠與另一伺服器的記憶體進行交互,而不必存取例如中央處理單元(central processing unit,CPU)等處理器(例如,藉由實行遠端直接記憶體存取(remote direct memory access,RDMA))。
根據本發明的實施例,提供一種系統,所述系統包括第一伺服器、以及第二伺服器、以及連接至所述第一伺服器及所述第二伺服器的伺服器連結交換機,所述第一伺服器包括所儲存程式處理電路、快取同調交換機及第一記憶體模組,其中:所述第一記憶體模組連接至所述快取同調交換機,所述快取同調交換機連接至所述伺服器連結交換機,且所述所儲存程式處理電路連接至所述快取同調交換機。
在一些實施例中,所述伺服器連結交換機包括快速周邊組件互連(Peripheral Component Interconnect Express,PCIe)交換機。
在一些實施例中,所述伺服器連結交換機包括計算快速鏈路(Compute Express Link,CXL)交換機。
在一些實施例中,所述伺服器連結交換機包括架頂(top of rack,ToR)CXL交換機。
在一些實施例中,所述伺服器連結交換機被配置成發現所述第一伺服器。
在一些實施例中,所述伺服器連結交換機被配置成使所述第一伺服器重新啟動。
在一些實施例中,所述伺服器連結交換機被配置成使所述快取同調交換機將所述第一記憶體模組去能。
在一些實施例中,所述伺服器連結交換機被配置成將資料自所述第二伺服器傳輸至所述第一伺服器,且對所述資料實行流量控制。
在一些實施例中,所述系統更包括連接至所述伺服器連結交換機的第三伺服器,其中:所述伺服器連結交換機被配置成:自所述第二伺服器接收第一封包,自所述第三伺服器接收第二封包,且將所述第一封包及所述第二封包傳輸至所述第一伺服器。
在一些實施例中,所述系統更包括連接至所述快取同調交換機的第二記憶體模組,其中所述第一記憶體模組包括揮發性
記憶體且所述第二記憶體模組包括持續性記憶體。
在一些實施例中,所述快取同調交換機被配置成將所述第一記憶體模組及所述第二記憶體模組虛擬化。
在一些實施例中,所述第一記憶體模組包括快閃記憶體,且所述快取同調交換機被配置成向所述快閃記憶體提供快閃轉換層。
在一些實施例中,所述第一伺服器包括連接至所述第一伺服器的擴展插座的擴展插座轉接器(expansion socket adapter),所述擴展插座轉接器包括:所述快取同調交換機;以及記憶體模組插座,所述第一記憶體模組藉由所述記憶體模組插座連接至所述快取同調交換機。
在一些實施例中,所述記憶體模組插座包括M.2插座。
在一些實施例中,所述快取同調交換機藉由連接件連接至所述伺服器連結交換機,且所述連接件位於所述擴展插座轉接器上。
根據本發明的實施例,提供一種在計算系統中實行遠端直接記憶體存取的方法,所述計算系統包括第一伺服器、第二伺服器、第三伺服器、以及連接至所述第一伺服器、所述第二伺服器及所述第三伺服器的伺服器連結交換機,所述第一伺服器包括所儲存程式處理電路、快取同調交換機及第一記憶體模組,所述方法包括:由所述伺服器連結交換機自所述第二伺服器接收第一封包;由所述伺服器連結交換機自所述第三伺服器接收第二封
包;以及將所述第一封包及所述第二封包傳輸至所述第一伺服器。
在一些實施例中,所述方法更包括:由所述快取同調交換機接收遠端直接記憶體存取(RDMA)請求;以及由所述快取同調交換機發送RDMA響應。
在一些實施例中,所述接收所述RDMA請求包括藉由所述伺服器連結交換機接收所述RDMA請求。
在一些實施例中,所述方法更包括:由所述快取同調交換機自所述所儲存程式處理電路接收針對第一記憶體位址的讀取命令;由所述快取同調交換機將所述第一記憶體位址轉換成第二記憶體位址;以及由所述快取同調交換機在所述第二記憶體位址處自所述第一記憶體模組檢索資料。
根據發明的實施例,提供一種系統,所述系統包括第一伺服器、以及第二伺服器、以及連接至所述第一伺服器及所述第二伺服器的伺服器連結交換機,所述第一伺服器包括所儲存程式處理電路、快取同調交換構件、第一記憶體模組,其中:所述第一記憶體模組連接至所述快取同調交換構件,所述快取同調交換構件連接至所述伺服器連結交換機,且所述所儲存程式處理電路連接至所述快取同調交換構件。
105:伺服器/遠端伺服器/接收伺服器
110:架頂(ToR)以太網路交換機
112:伺服器連結交換機/ToR伺服器連結交換機/ToR交換機
115:處理電路/所儲存程式處理電路/第二處理電路
120:系統記憶體
125:網路介面電路
130:能力增強型CXL交換機/快取同調交換機/遠端能力增強型CXL交換機/本地能力增強型CXL交換機
135:記憶體模組/CXL記憶體模組/第一記憶體模組
137:控制器/CXL控制器/FPGA(或ASIC)控制器
140:擴展插座轉接器
145:擴展插座/PCIe連接件
150:記憶體伺服器
205、210、215、220、222、225、230、235、240、245、250、252、254、256、258、260、262、264、266:步驟
本文中提供的圖式僅僅是出於例示某些實施例的目的;可能未明確示出的其他實施例並不排除在本揭露的範圍之外。
參照說明書、申請專利範圍及附圖,將領會及理解本揭露的該些及其他特徵及優點,在附圖中:圖1A是根據本揭露實施例的用於使用快取同調連接將記憶體資源貼合至計算資源的系統的方塊圖。
圖1B是根據本揭露實施例的採用擴展插座轉接器的、用於使用快取同調連接將記憶體資源貼合至計算資源的系統的方塊圖。
圖1C是根據本揭露實施例的用於採用乙太網路ToR交換機來聚集(aggregating)記憶體的系統的方塊圖。
圖1D是根據本揭露實施例的用於採用乙太網路ToR交換機及擴展插座轉接器來聚集記憶體的系統的方塊圖。
圖1E是根據本揭露實施例的用於聚集記憶體的系統的方塊圖。
圖1F是根據本揭露實施例的用於採用擴展插座轉接器來聚集記憶體的系統的方塊圖。
圖1G是根據本揭露實施例的用於分解(disaggregating)伺服器的系統的方塊圖。
圖2A是根據本揭露實施例的針對圖1A至圖1G中所示實施例的繞過處理電路實行遠端直接記憶體存取(RDMA)傳送的示例性方法的流程圖。
圖2B是根據本揭露實施例的針對圖1A至圖1D中所示實施例的在處理電路的參與下實行RDMA傳送的示例性方法的流程
圖。
圖2C是根據本揭露實施例的針對圖1E及圖1F中所示實施例的藉由計算快速鏈路(CXL)交換機實行RDMA傳送的示例性方法的流程圖。
圖2D是根據本揭露實施例的針對圖1G中所示實施例的藉由CXL交換機實行RDMA傳送的示例性方法的流程圖。
以下結合附圖陳述的詳細說明旨在作為對根據本揭露所提供的用於管理記憶體資源的系統及方法的示例性實施例的說明,而不旨在代表本揭露可被構造或利用的唯一形式。本說明結合所示實施例陳述本揭露的特徵。然而應理解,可藉由亦旨在囊括於本揭露的範圍內的不同實施例來達成相同或等效的功能及結構。如本文其他地方所表明,相同的元件編號旨在指示相同的元件或特徵。
快速周邊組件互連(PCIe)可指可具有相對高且可變的延遲的電腦介面,所述相對高且可變的延遲可能會限制電腦介面在建立通往記憶體的連接方面的有用性。CXL是用於經由PCIe 5.0進行通訊的開放的行業標準,所述行業標準可提供固定的、相對短的封包大小,且因此可能夠提供相對高的頻寬及相對低的固定延遲。如此一來,CXL可能夠支援快取同調且CXL可非常適於建立通往記憶體的連接。CXL可進一步用於提供主機與伺服器中的
加速器、記憶體裝置及網路介面電路(或「網路介面控制器」或「網路介面卡」(network interface card,NIC))之間的連接。
例如CXL等快取同調協定亦可用於例如純量(scalar)、向量(vector)及緩衝記憶體系統中的異質處理(heterogeneous processing)。CXL可用於利用通道、重定時器、系統的實體(Physical,PHY)層、介面的邏輯態樣、以及來自PCIe 5.0的協定來提供快取同調介面。CXL事務處理層(transaction layer)可包括在單個鏈路上同時運行的三個多工子協定且可被稱為CXL.io、CXL.cache及CXL.memory。CXL.io可包含輸入/輸出(input/output,I/O)語義,I/O語義可類似於PCIe。CXL.cache可包含快取語義,且CXL.memory可包含記憶體語義;快取語義及記憶體語義二者可為可選的。如PCIe那般,CXL可支援:(i)x16、x8及x4的原始寬度(native width),所述原始寬度可能是可分區的;(ii)32千兆傳輸/秒的資料速率,所述資料速率可降至8千兆傳輸/秒及16千兆傳輸/秒、128位元/130位元;(iii)300瓦特(x16連接件中為75瓦特);以及(iv)即插即用(plug and play)。為支援即插即用,PCIe或CXL裝置鏈路中的任一者可以PCIe開始第1代訓練、協商CXL、完成第1代至第5代訓練、且然後開始CXL事務處理。
在一些實施例中,在包括藉由網路連接於一起的多個伺服器的系統中,使用通往聚集或「彙集(pool)」的記憶體(例如,一定數量的記憶體,包括連接於一起的多個記憶體胞元)的CXL
連接可提供各種優點,如以下進一步詳細論述。舉例而言,除了為CXL封包提供封包交換功能之外,具有又一些能力的CXL交換機(本文中稱為「能力增強型CXL交換機(enhanced capability CXL switch)」)可用於將聚集的記憶體連接至一或多個中央處理單元(CPU)(或「中央處理電路」)以及一或多個網路介面電路(其可具有增強的能力)。此種配置可使得能夠達成:(i)聚集的記憶體包括具有不同特性的各種類型的記憶體;(ii)能力增強型CXL交換機將聚集的記憶體虛擬化,並且將不同特性(例如,存取頻率)的資料儲存於適當類型的記憶體中;(iii)能力增強型CXL交換機支援遠端直接記憶體存取(RDMA),進而使得RDMA可在很少或沒有伺服器的處理電路參加的情況下實行。如本文所使用的,將記憶體「虛擬化」意指在處理電路與記憶體之間實行記憶體位址轉換。
CXL交換機可進行:(i)藉由單級交換(single level switching)支援記憶體及加速器分解;(ii)使資源能夠基於需要在域之間離線(off-lined)及在線(on-lined),此可使得能夠達成跨域的時間多工(time-multiplexing);以及(iii)支援下游埠的虛擬化。CXL可用於實施聚集的記憶體,此可使得能夠達成一對多及多對一交換(例如,其可能夠(i)將多個根埠連接至一個端點,(ii)將一個根埠連接至多個端點,或者(iii)將多個根埠連接至多個端點),其中在一些實施例中,聚集裝置被分區成多個邏輯裝置,所述多個邏輯裝置各自具有相應的邏輯裝置識別符(logical
device identifier,LD-ID)。在此種實施例中,實體裝置(physical device)可被分區成多個邏輯裝置,所述多個邏輯裝置各自對於相應的發起者而言是可見的。裝置可具有一個實體功能(physical function,PF)及多個(例如,16個)隔離的邏輯裝置。在一些實施例中,邏輯裝置的數目(例如,分區的數目)可能是受限的(例如,限制至16個),且亦可存在一個控制分區(其可為用於控制裝置的實體功能)。
在一些實施例中,結構管理器(fabric manager)可用於:(i)實施裝置發現及虛擬CXL軟體創建;以及(ii)將虛擬埠綁定至實體埠。此種結構管理器可藉由經由系統管理匯流排(System Management Bus,SMBus)邊帶進行的連接而進行操作。結構管理器可以硬體、軟體、韌體、或其組合來實施,且結構管理器可駐留於例如主機中、記憶體模組135中的一者中、或能力增強型CXL交換機130中、或網路中的其他地方。結構管理器可發出命令,所述命令包括經由邊帶匯流排或經由PCIe樹發出的命令。
參照圖1A,在一些實施例中,伺服器系統包括藉由架頂(ToR)以太網路交換機110連接於一起的多個伺服器105。儘管此交換機被闡述為使用以太網路協定,但可使用任何其他適合的網路協定。每一伺服器包括一或多個處理電路115,所述一或多個處理電路115各自連接至(i)系統記憶體120(例如,雙倍資料速率(版本4)(Double Data Rate(version 4),DDR4)記憶體或任何其他適合的記憶體)、(ii)一或多個網路介面電路125、以及
(iii)一或多個CXL記憶體模組(MEM)135。處理電路115中的每一者可為所儲存程式處理電路,例如中央處理單元(CPU(例如,x86 CPU))、圖形處理單元(GPU)或高階精簡指令集計算(Reduced instruction set computing,RISC)機器(Advanced RISC Machine,ARM)處理器。在一些實施例中,網路介面電路125可嵌置於記憶體模組135中的一者中(例如,嵌置於與記憶體模組135中的所述一者相同的半導體晶片上,或者嵌置於與記憶體模組135中的所述一者相同的模組中),或者網路介面電路125可與記憶體模組135分開封裝。
如本文使用的,「記憶體模組」是包括一或多個記憶體晶粒的封裝(例如,包括印刷電路板(printed circuit board)及連接至印刷電路板的組件的封裝,或者包括印刷電路板的外殼(enclosure)),每一記憶體晶粒包括多個記憶體胞元。每一記憶體晶粒或一組記憶體晶粒的群組中的每一者可處於封裝(例如,環氧模製化合物(epoxy mold compound,EMC)封裝)中,所述封裝焊接至記憶體模組的印刷電路板(或藉由連接件連接至記憶體模組的印刷電路板)。記憶體模組135中的每一者可具有CXL介面且可包括控制器137(例如,FPGA、ASIC、處理器、及/或類似物),控制器137用於在CXL封包與記憶體晶粒的記憶體介面(例如適合於記憶體模組135中的記憶體的記憶體技術的訊號)之間進行轉換。如本文所使用的,記憶體晶粒的「記憶體介面」是記憶體晶粒的技術所固有的介面,例如,在動態隨機存取記憶
體(dynamic random access memory,DRAM)的情形中,例如記憶體介面可為字元線及位元線。記憶體模組亦可包括控制器137,控制器137可提供增強的能力,如以下進一步詳細闡述。每一記憶體模組135的控制器137可經由快取同調介面(例如經由CXL介面)連接至處理電路115。控制器137亦可有利於繞過處理電路115進行的不同伺服器105之間的資料傳輸(例如,RDMA請求)。ToR以太網路交換機110及網路介面電路125可包括RDMA介面,以有利於不同伺服器上的CXL記憶體裝置之間的RDMA請求(例如,ToR以太網路交換機110及網路介面電路125可提供經由會聚的以太網路進行的RDMA(RDMA over Converged Ethernet,RoCE)、無限頻寬(Infiniband)及網際網路廣域RDMA協定(Internet Wide Area RDMA Protocol,iWARP)封包的硬體卸載或硬體加速)。
系統中的CXL互連可符合快取同調協定(例如CXL 1.1標準,或者在一些實施例中符合CXL 2.0標準、符合CXL的未來版本)、或者任何其他適合的協定(例如,快取同調協定)。如圖所示,記憶體模組135可直接貼合至處理電路115,且架頂以太網路交換機110可用於將系統按比例縮放至更大的大小(例如,具有更大數目的伺服器105)。
在一些實施例中,每一伺服器可填充有多個直接貼合的CXL的記憶體模組135,如圖1A中所示。每一記憶體模組135可向主機的基本輸入/輸出系統(Basic Input/Output System,BIOS)
展示一組基本位址暫存器(base address register,BAR)作為記憶體範圍。記憶體模組135中的一或多者可包括韌體,以透明地管理記憶體模組135中的所述一或多者的位於主機操作系統(operating system,OS)映射後面的記憶體空間。記憶體模組135中的每一者可包括記憶體技術中的一者或組合,所述記憶體技術包括例如(但不限於)動態隨機存取記憶體(Dynamic Random Access Memory,DRAM)、反及(not-AND,NAND)快閃、高頻寬記憶體(High Bandwidth Memory,HBM)、及低功率雙倍資料速率同步動態隨機存取記憶體(Low-Power Double Data Rate Synchronous Dynamic Random Access Memory,LPDDR SDRAM)技術,且記憶體模組135中的每一者亦可包括快取控制器或用於不同技術記憶體裝置(用於對不同技術的若干記憶體裝置進行組合的記憶體模組135)的單獨的相應分離控制器(split controller)。每一記憶體模組135可包括不同的介面寬度(x4至x16),且可根據例如以下各種相關的形狀因數(form factor)中的任意者來構造:U.2、M.2、半高半長(half height,half length,HHHL)、全高半長(full height,half length,FHHL)、E1.S、E1.L、E3.S、及E3.H。
在一些實施例中,如上所述,能力增強型CXL交換機130包括FPGA(或ASIC)控制器137且提供CXL封包的交換之外的附加特徵。能力增強型CXL交換機130的控制器137亦可充當記憶體模組135的管理裝置且有助於主機控制平面處理,且控制器137可使得能夠達成豐富的控制語義及統計。控制器137可
包括附加的「後門(backdoor)」(例如,100千兆以太網路(gigabit Ethernet,GbE))網路介面電路125。在一些實施例中,控制器137向處理電路115呈現為CXL類型2裝置,此使得能夠在接收到遠端寫入請求時向處理電路115發出快取無效指令。在一些實施例中,啟用資料直接I/O(Data Direct I/O,DDIO)技術,且首先將遠端資料拉至處理電路的末級快取(last level cache,LLC),且稍後將遠端資料寫入記憶體模組135(自快取)。如本文所使用的,「類型2」CXL裝置是可發起事務處理且實施可選的同調快取及主機管理的裝置記憶體的裝置,並且對於其適用的事務處理類型包括所有CXL.cache及所有CXL.mem事務處理。
如上所述,記憶體模組135中的一或多者可包括持續性記憶體或「持續性儲存體」(即,當外部電源斷開連接時其內資料不會丟失的儲存體)。若記憶體模組135被呈現為持續性裝置,則當請求持續性儲存體時,記憶體模組135的控制器137可藉由處理電路115管理持續性域,例如,控制器137可在持續性儲存體中儲存被識別的資料(例如,作為應用對於對應操作系統功能進行調用的結果)。在此種實施例中,軟體應用程式介面(application programming interface,API)可將快取及資料刷新至持續性儲存體。
在一些實施例中,啟用自網路介面電路125至記憶體模組135的直接記憶體傳送。此種傳送可為用於分佈式系統中的快速通訊的通往遠端記憶體的單向傳送。在此種實施例中,記憶體
模組135可向系統中的網路介面電路125展示硬體細節,以使得能夠達成更快的RDMA傳送。在此種系統中,端視處理電路115的資料直接I/O(DDIO)是啟用亦或禁用而定,可能發生兩種情況。DDIO可使得能夠達成以太網路控制器或以太網路轉接器與處理電路115的快取之間的直接通訊。若啟用處理電路115的DDIO,則傳送的目標可為處理電路的末級快取,資料隨後可自所述末級快取被自動刷新至記憶體模組135。若禁用處理電路115的DDIO,則記憶體模組135可在裝置偏置模式下進行操作,以強制目的地記憶體模組135直接接收存取(在不使用DDIO的條件下)。可採用具有主通道轉接器(host channel adapter,HCA)、緩衝器及其他處理的能夠進行RDMA的網路介面電路125來達成此種RDMA傳送,此可繞過在RDMA傳送的其他模式中可能存在的目標記憶體緩衝器傳送。舉例而言,在此種實施例中,可避免使用回彈緩衝器(bounce buffer)(例如,當記憶體中的最終目的地在RDMA協定不支援的位址範圍內時,遠端伺服器中的緩衝器)。在一些實施例中,RDMA使用除以太網路之外的另一實體媒體選項(例如,用於被配置成處置其他網路協定的交換機)。可能啟用RDMA的伺服器間連接件的實例包括(但不限於)無限頻寬、經由會聚的以太網路進行的RDMA(RoCE)(其使用以太網路使用者資料報協定(User Datagram Protocol,UDP))及iWARP(其使用傳輸控制協定/網際網路協定(transmission control protocol/Internet protocol,TCP/IP))。
圖1B示出類似於圖1A所示系統的系統,在圖1B中處理電路115藉由記憶體模組135連接至網路介面電路125。記憶體模組135及網路介面電路125位於擴展插座轉接器140上。每一擴展插座轉接器140可插入至伺服器105的母板上的擴展插座145,例如M.2連接件。如此一來,伺服器可為任何適合的(例如,行業標準)伺服器,所述伺服器藉由在擴展插座145中安裝擴展插座轉接器140來修改。在此種實施例中,(i)每一網路介面電路125可被整合至記憶體模組135中的相應的一個記憶體模組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請求。在一些實施例中,所述方法更包括:由第一記憶體模組的控制器自所儲存程式處理電路接收針對第一記憶體位址的讀取命令;由第一記憶體模組的控制器將第一記憶體位址轉換成第二記憶體位址;以及由第一記憶體模組的控制器在第二記憶體位址處自第一記憶體模組檢索資料。在一些實施例中,所述方法更包括:由第一記憶體模組的控制器接收資料;由第一記憶體模組的控制器將資料儲存於第一記憶體模組中;以及由第一記憶體模組的控制器向所儲存程式處理電路發送用於使快取列無效的命令。根據本發明的實施例,提供一種系統,所述系統包括第一伺服器,所述第一伺服器包括所儲存程式處理電路、第一網路介面電路及第一記憶體模組,其中:所述第一記憶體模組包括第一記憶體晶粒及控制器構件,控制器構件經由記憶體介面連接至第一記憶體晶粒、經由快取同調介面連接至所儲存程式處理電路、且連接至第一網路介面電路。
參照圖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快閃的固態驅動器(solid state drive,SSD)))進行分組。每一記憶體模組可具有CXL介面且包括介面電路,所述介面電路用於在CXL封包與適合於記憶體模組135中的記憶體的訊號之間進行轉換。在一些實施例中,該些介面電路改為處於能力增強型CXL交換機130中,且記憶體模組135中的每一者具有作為記憶體模組135中的記憶體的本地介面(native interface)的介面。在一些實施例中,能力增強型CXL交換機130被整合至記憶體模組135中(例如,與記憶體模組135整合於M.2形狀因數封裝中,或者與記憶體模組135的其他組件整合至單個積體電路中)。
ToR以太網路交換機110可包括介面硬體,以有利於不同伺服器上的聚集的記憶體裝置之間的RDMA請求。能力增強型CXL交換機130可包括一或多個電路(例如,它可包括FPGA或ASIC),以繞過處理電路115而進行以下操作:(i)基於工作負荷將資料路由至不同的記憶體類型;(ii)將主機位址虛擬化為裝置位址;及/或(iii)有利於不同伺服器之間的RDMA請求。
記憶體模組135可位於擴展盒(expansion box)中(例如,位於與容納外殼的主板的外殼相同的機架(rack)中),擴展盒可包括預定數目(例如,多於20個或多於100個)記憶體模組135,所述預定數目的記憶體模組135各自插入適合的連接件中。模組可處於M.2形狀因數,且連接件可為M.2連接件。在一些實施例中,伺服器之間的連接是經由除以太網路之外的不同的網路進行的,例如,所述連接可為無線連接,例如無線保真(wireless fidelity,WiFi)或第五代(Fifth Generation,5G)連接。每一處理電路可為x86處理器或另一處理器,例如ARM處理器或GPU。上面CXL鏈路被實例化的PCIe鏈路可為PCIe 5.0或另一版本(例如,較早的版本或較晚的(例如,未來)版本(例如,PCIe 6.0))。在一些實施例中,代替或除了CXL之外在系統中使用不同的快取同調協定,且代替或除了能力增強型CXL交換機130之外可使用不同的快取同調交換機。此種快取同調協定可為另一種標準協定或標準協定的快取同調變體(以與其中CXL是PCIe 5.0的變體的方式相似的方式)。標準協定的實例包括但不限於非揮發性雙行記
憶體模組(版本P)(non-volatile dual in-line memory module(version P),NVDIMM-P)、加速器快取同調互連(Cache Coherent Interconnect for Accelerator,CCIX)及開放同調加速器處理器介面(Open Coherent Accelerator Processor Interface,OpenCAPI)。
系統記憶體120可包括例如DDR4記憶體、DRAM、HBM或LDPPR記憶體。記憶體模組135可被分區或包含快取控制器,以處置多種記憶體類型。記憶體模組135可處於不同的形狀因數,其實例包括但不限於HHHL、FHHL、M.2、U.2、夾層卡(mezzanine card)、子卡、E1.S、E1.L、E3.L及E3.S。
在一些實施例中,系統實施包括多個伺服器的聚集架構,其中每一伺服器聚集有多個貼合有CXL的記憶體模組135。記憶體模組135中的每一者可包含多個分區,可向多個處理電路115單獨展示所述多個分區作為記憶體裝置。能力增強型CXL交換機130的每一輸入埠可獨立地存取能力增強型CXL交換機130的多個輸出埠及與能力增強型CXL交換機130的所述多個輸出埠連接的記憶體模組135。如本文所使用的,能力增強型CXL交換機130的「輸入埠」或「上游埠」是連接至(或適合於連接至)PCIe根埠的埠,且能力增強型CXL交換機130的「輸出埠」或「下游埠」是連接至(或適合於連接至)PCIe端點的埠。如在圖1A所示實施例的情形中,每一記憶體模組135可向主機BIOS展示一組基本位址暫存器(BAR)作為記憶體範圍。記憶體模組135中的一或多者可包括韌體,以透明地管理記憶體模組135中的所述
一或多者的位於主機OS映射後面的記憶體空間。
在一些實施例中,如上所述,能力增強型CXL交換機130包括FPGA(或ASIC)控制器137,且提供CXL封包的交換之外的附加特徵。舉例而言,控制器137可(如上所述)將記憶體模組135虛擬化(即,作為轉換層操作)(所述記憶體模組135在處理電路側位址(或「處理器側」位址,即,包括在由處理電路115發出的記憶體讀取及寫入命令中的位址)與記憶體側位址(即,能力增強型CXL交換機130用來對記憶體模組135中的儲存位置進行尋址的位址)之間轉換),藉此屏蔽記憶體模組135的實體位址且呈現虛擬聚集的記憶體。能力增強型CXL交換機130的控制器137亦可充當記憶體模組135的管理裝置且有利於主機控制平面處理。控制器137可在沒有處理電路115參與的條件下透明地移動資料且相應地更新記憶體映射(或「位址轉換表」),進而使得後續存取如預期那般運行。控制器137可包含交換機管理裝置,所述交換機管理裝置(i)可在運行時間期間適當地將上游連接及下游連接綁定及解除綁定、以及(ii)可使得能夠達成與進出記憶體模組135的資料傳送進出相關聯的豐富的控制語義及統計。控制器137可包括用於連接至其他伺服器105或其他聯網設備的附加的「後門」100千兆以太網路或其他網路介面電路125(除了用於連接至主機的網路介面之外)。在一些實施例中,控制器137向處理電路115呈現為類型2裝置,此使得能夠在接收到遠端寫入請求時向處理電路115發出快取無效指令。在一些實施
例中,啟用DDIO技術,且首先將遠端資料拉至處理電路115的末級快取(LLC),且稍後將遠端資料寫入記憶體模組135(自快取)。
如上所述,記憶體模組135中的一或多者可包括持續性記憶體。若記憶體模組135被呈現為持續性裝置,則當請求持續性儲存體時,能力增強型CXL交換機130的控制器137可藉由處理電路115管理持續性域(例如,控制器137可在持續性儲存體中儲存被識別(例如,使用對應的操作系統功能)的資料)。在此種實施例中,軟體API可將快取及資料刷新至持續性儲存體。
在一些實施例中,通往記憶體模組135的直接記憶體傳送可以與以上針對圖1A及圖1B所示實施例闡述的方式相似的方式來實行,其中由記憶體模組135的控制器實行的操作是由能力增強型CXL交換機130的控制器137實行。
如上所述,在一些實施例中,記憶體模組135被組織成群組,例如,組織成一個記憶體密集型群組、另一HBM集中型(HBM heavy)群組、另一密度及效能有限的群組、以及另一容量密集型群組。此些群組可具有不同的形狀因數或基於不同的技術。能力增強型CXL交換機130的控制器137可基於例如工作負荷、標記或服務品質(quality of service,QoS)而智慧地路由資料及命令。對於讀取請求,可能不存在基於此些因素的路由。
能力增強型CXL交換機130的控制器137亦可(如上所述)將處理電路側位址及記憶體側位址虛擬化,進而使得能力
增強型CXL交換機130的控制器137能夠確定資料將被儲存於何處。能力增強型CXL交換機130的控制器137可基於能力增強型CXL交換機130可自處理電路115接收的資訊或指令做出此種確定。舉例而言,操作系統可提供記憶體分配特徵,進而使得應用可規定待分配的低延遲儲存體、高頻寬儲存體或持續性儲存體,且然後可在確定何處(例如,哪個記憶體模組135中)分配記憶體時由能力增強型CXL交換機130的控制器137考慮由應用發起的此種請求。舉例而言,可在包含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請求,且可將資料自一個記憶體模組135傳輸至能力增強型CXL交換機130後面的另一記憶體模組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請求且能力增強型CXL交換機130可處理接收伺服器105(即,接收RDMA請求的伺服器)中的記憶體模組135的群組作為其自己的記憶體空間。在本地伺服器中,能力增強型CXL交換機130可接收RDMA請求作為直接RDMA請求(即,未藉由本地伺服器中的處理電路115路由的RDMA請求)且能力增強型CXL交換機130可發送對RDMA請求的直接響應(即,能力增強型CXL交換機130可在不藉由本地伺服器中的處理電路115進行路由的條件下發送響應)。在遠端伺服器中,響應(例如,由本地伺服器發送的資料)可由遠端伺服器的能力增強型CXL交換機130接收,並儲存於遠端伺服器的記憶體模組135中,而不藉由遠端伺服器中的處理電路115進行路由。
圖1D示出類似於圖1C所示系統的系統,在圖1D中處理電路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端點),進而使得每一網路介面電路125所連接的處理電路115可藉由根埠至端點PCIe連接與網路介面電路125進行通訊。能力增強型CXL交換機130(其可具有連接至處理電路115及網路介面電路125的PCIe輸入埠)的控制器137可藉由同級間PCIe連接與網路介面電路125進行通訊。
根據本發明的實施例,提供一種系統,所述系統包括第一伺服器,所述第一伺服器包括所儲存程式處理電路、網路介面電路、快取同調交換機及第一記憶體模組,其中:第一記憶體模組連接至快取同調交換機,快取同調交換機連接至網路介面電路,且所儲存程式處理電路連接至快取同調交換機。在一些實施例中,所述系統更包括連接至快取同調交換機的第二記憶體模組,其中第一記憶體模組包括揮發性記憶體且第二記憶體模組包括持續性記憶體。在一些實施例中,快取同調交換機被配置成將第一記憶體模組及第二記憶體模組虛擬化。在一些實施例中,第一記憶體模組包括快閃記憶體,且快取同調交換機被配置成向快閃記憶體提供快閃轉換層。在一些實施例中,快取同調交換機被配置成:監測第一記憶體模組中的第一記憶體位置的存取頻率;確定存取頻率超過第一臨限值;以及將第一記憶體位置的內容複製至第二記憶體位置中,第二記憶體位置處於第二記憶體模組中。在一些實施例中,第二記憶體模組包括高頻寬記憶體(HBM)。
在一些實施例中,快取同調交換機被配置成維持用於將處理器側位址映射至記憶體側位址的表。在一些實施例中,所述系統更包括第二伺服器、以及連接至第一伺服器及第二伺服器的網路交換機。在一些實施例中,網路交換機包括架頂(ToR)以太網路交換機。在一些實施例中,快取同調交換機被配置成接收直接的遠端直接記憶體存取(RDMA)請求,並發送直接的RDMA響應。在一些實施例中,快取同調交換機被配置成藉由ToR以太網路交換機及網路介面電路接收遠端直接記憶體存取(RDMA)請求,並藉由ToR以太網路交換機及網路介面電路發送直接的RDMA響應。在一些實施例中,快取同調交換機被配置成支援計算快速鏈路(CXL)協定。在一些實施例中,第一伺服器包括連接至第一伺服器的擴展插座的擴展插座轉接器,所述擴展插座轉接器包括:快取同調交換機;以及記憶體模組插座,第一記憶體模組藉由記憶體模組插座連接至快取同調交換機。在一些實施例中,記憶體模組插座包括M.2插座。在一些實施例中,網路介面電路位於擴展插座轉接器上。根據本發明的實施例,提供一種用於在計算系統中實行遠端直接記憶體存取的方法,所述計算系統包括第一伺服器及第二伺服器,所述第一伺服器包括所儲存程式處理電路、網路介面電路、快取同調交換機及第一記憶體模組,所述方法包括:由快取同調交換機接收直接的遠端直接記憶體存取(RDMA)請求;以及由快取同調交換機發送直接的RDMA響應。在一些實施例中,計算系統更包括以太網路交換機,且所述接收
直接的RDMA請求包括藉由以太網路交換機接收直接的RDMA請求。在一些實施例中,所述方法更包括:由快取同調交換機自所儲存程式處理電路接收針對第一記憶體位址的讀取命令;由快取同調交換機將第一記憶體位址轉換為第二記憶體位址;以及由快取同調交換機在第二記憶體位址處自第一記憶體模組檢索資料。在一些實施例中,所述方法更包括:由快取同調交換機接收資料;由快取同調交換機將資料儲存於第一記憶體模組中;以及由快取同調交換機向所儲存程式處理電路發送用於使快取列無效的命令。根據本發明的實施例,提供一種系統,所述系統包括第一伺服器,所述第一伺服器包括所儲存程式處理電路、網路介面電路、快取同調交換構件及第一記憶體模組,其中:第一記憶體模組連接至快取同調交換構件,快取同調交換構件連接至網路介面電路,且所儲存程式處理電路連接至快取同調交換構件。
圖1E示出其中多個伺服器105中的每一者連接至ToR伺服器連結交換機112的實施例,所述ToR伺服器連結交換機112可為具有PCIe能力的PCIe 5.0 CXL交換機,如圖所示。伺服器連結交換機112可包括FPGA或ASIC,且可提供優於以太網路交換機的效能(在通量及延遲方面)的效能。伺服器105中的每一者可包括多個記憶體模組135,所述多個記憶體模組135藉由能力增強型CXL交換機130及多個PCIe連接件連接至伺服器連結交換機112。如圖所示,伺服器105中的每一者亦可包括一或多個處理電路115及系統記憶體120。伺服器連結交換機112可作為主裝置
(mater)操作,且能力增強型CXL交換機130中的每一者可作為從裝置(slave)操作,如以下進一步詳細論述。
在圖1E所示實施例中,伺服器連結交換機112可對自不同伺服器105接收的多個快取請求進行分組或分批處理,且伺服器連結交換機112可對封包進行分組,進而減少控制附加費(overhead)。能力增強型CXL交換機130可包括從控制器(例如,從FPGA或從ASIC),以繞過處理電路115而進行以下操作:(i)基於工作負荷將資料路由至不同的記憶體類型;(ii)將處理器側位址虛擬化為記憶體側位址;以及(iii)有利於不同伺服器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可被分區或包含快取控制器以處置多種記憶體類型,且記憶體模組135可處於不同的形狀因數,例如HHHL、FHHL、M.2、U.2、夾層卡、子卡、E1.S、E1.L、E3.L及E3.S。
在圖1E所示實施例中,能力增強型CXL交換機130可使得能夠達成一對多及多對一交換,且它可使得能夠達成微片(flit)(64位元組(byte))水準的細粒度加載-儲存介面。每一伺服器可具有聚集的記憶體裝置,每一裝置被分區成多個邏輯裝置,所述多個邏輯裝置各自具有相應的LD-ID。ToR交換機112(其可被稱為「伺服器連結交換機」)使得能夠達成一對多功能,且伺服器105中的能力增強型CXL交換機130使得能夠達成多對一功能。伺服器連結交換機112可為PCIe交換機、或CXL交換機、或者兩者。在此種系統中,請求者可為所述多個伺服器105的處理電路115,響應者可為許多聚集的記憶體模組135。兩個交換機的層次(hierarchy)(如上所述,主交換機是伺服器連結交換機112,且從交換機是能力增強型CXL交換機130)使得能夠達成任意者-任意者通訊。記憶體模組135中的每一者可具有一個實體功能(PF)及多達16個隔離的邏輯裝置。在一些實施例中,邏輯裝置的數目(例如,分區的數目)可能是受限的(例如,限制至16個),且亦可存在一個控制分區(其可為用於控制裝置的實體功能)。記憶體模組135中的每一者可為具有cxl.cache、cxl.mem及cxl.io以及位址轉換服務(address translation service,ATS)實施方式的類型2裝置,以處置處理電路115可保存的快取列副本。
能力增強型CXL交換機130及結構管理器可控制記憶體模組135的發現,且進行以下操作:(i)實行裝置發現及虛擬CXL軟體創建;以及(ii)將虛擬埠綁定至實體埠。如在圖1A至圖1D所示實施例中,結構管理器可藉由經由SMBus邊帶進行的連接而進行操作。通往記憶體模組135的介面(其可為智慧平台管理介面(IPMI))或符合紅魚標準(Redfish standard)的介面(且亦可提供標準並不要求的附加特徵)可使得能夠達成可配置性。
如上所述,一些實施例實施分層結構(其中主控制器(其可在FPGA或ASIC中實施)是伺服器連結交換機112的部分,且從控制器是能力增強型CXL交換機130的部分),以提供加載-儲存介面(即,具有快取列(例如,64位元組)粒度且在沒有軟體驅動器參加的條件下在同調域內進行操作的介面)。此種加載-儲存介面可將同調域擴展至單個伺服器、或者CPU或主機之外,且可包括電性的或光學的中的任一者的實體媒體(例如,兩端處帶有電光收發器的光學連接件)。在操作中,主控制器(在伺服器連結交換機112中)啟動(boot)(或「重新啟動」)並配置機架上的所有伺服器105。主控制器可在所有主機上具有可視性,且主控制器可進行以下操作:(i)發現每一伺服器並發現伺服器群集中存在多少個伺服器105及記憶體模組135;(ii)獨立地配置伺服器105中的每一者;(iii)基於例如機架的配置而將不同伺服器上的一些記憶體區塊賦能或去能(例如,將記憶體模組135中的任意者賦能或去能);(iv)控制存取(例如,哪個伺服器可控制哪個其他伺
服器);(v)實施流量控制(例如,由於所有主機及裝置請求經過主裝置,因此主控制器可將資料自一個伺服器傳輸至另一伺服器並對資料實行流量控制);(vi)對請求或封包(例如,由主機自不同的伺服器105接收的多個快取請求)進行分組或分批處理;以及(vii)接收遠端軟體更新、廣播通訊、及類似物。在分批處理模式下,伺服器連結交換機112可接收去往同一伺服器(例如,去往第一伺服器)的多個封包並將所述多個封包一起發送(即,所述多個封包之間沒有停頓)至第一伺服器。舉例而言,伺服器連結交換機112可自第二伺服器接收第一封包,且自第三伺服器接收第二封包,且將第一封包及第二封包一起傳輸至第一伺服器。伺服器105中的每一者可向主控制器展示(i)IPMI網路介面、(ii)系統事件日誌(system event log,SEL)、以及(iii)板管理控制器(board management controller,BMC),進而使主控制器能夠量測效能、即時(on-the-fly)量測可靠性、且重新配置伺服器105。
在一些實施例中,使用有利於高可用性加載-儲存介面的軟體架構。此種軟體架構可提供可靠性、複製、一致性、系統同調性、散列、快取及持續性。軟體架構可經由IPMI對CXL裝置組件實行定期硬體檢查來提供可靠性(在具有大數目的伺服器的系統中)。舉例而言,伺服器連結交換機112可經由記憶體伺服器150的IPMI介面查詢記憶體伺服器150的狀態,例如查詢電源狀態(記憶體伺服器150的電源供應(power supply)是否正常工
作)、網路狀態(通往伺服器連結交換機112的介面是否正常工作)及錯誤檢查狀態(在記憶體伺服器150的子系統中的任意者中是否存在錯誤情況)。軟體架構可提供複製,此乃因主控制器可複製儲存於記憶體模組135中的資料且維持複製物(replica)之間的資料一致性。
軟體架構可提供一致性,此乃因主控制器可配置有不同的一致性水準,且伺服器連結交換機112可根據待維持的一致性水準來調整封包格式。舉例而言,若維持最終的一致性,則伺服器連結交換機112可對請求重新排序,同時為了維持嚴格一致性,伺服器連結交換機112可在交換機處維持具有精確時戳(timestamp)的所有請求的記分板(scoreboard)。軟體架構可提供系統同調性,此乃因可自相同的記憶體位址讀取或向相同的記憶體位址寫入多個處理電路115,且為了保持同調性,主控制器可負責到達位址的歸屬節點(home node)(使用目錄查找(directory lookup))或者在公共匯流排上廣播請求。
軟體架構可提供散列,此乃因伺服器連結交換機112及能力增強型CXL交換機可維持位址的虛擬映射,所述虛擬映射可使用具有多個散列函數的一致散列來在啟動時將資料均勻地映射至跨越所有節點的所有CXL裝置(或者在一個伺服器停機或發動時進行調整)。軟體架構可提供快取,此乃因主控制器可指定某些記憶體分區(例如,在包括HBM或具有類似能力的技術的記憶體模組135中)來充當快取(例如,採用直寫式快取或回寫式快取)。
軟體架構可提供持續性,此乃因主控制器及從控制器可管理持續性域及刷新。
在一些實施例中,CXL交換機的能力被整合至記憶體模組135的控制器中。在此種實施例中,伺服器連結交換機112仍然可充當主裝置且具有如本文別處所論述的增強特徵。伺服器連結交換機112亦可管理系統中的其他儲存體裝置,且伺服器連結交換機112可具有用於連接(例如連接至並非由伺服器連結交換機112形成的PCIe網路的部分的客戶機)的以太網路連接(例如,100千兆以太網路連接)。
在一些實施例中,伺服器連結交換機112具有增強的能力且亦包括整合的CXL控制器。在其他實施例中,伺服器連結交換機112僅為實體路由裝置,且每一伺服器105包括主CXL控制器。在此種實施例中,跨越不同伺服器的主裝置可協商主從架構。(i)能力增強型CXL交換機130及(ii)伺服器連結交換機112的智慧功能可在一或多個FPGA、一或多個ASIC、一或多個ARM處理器、或具有計算能力的一或多個SSD中實施。伺服器連結交換機112可例如藉由對獨立的請求重新排序而實行流量控制。在一些實施例中,由於介面是加載-儲存的,因此RDMA是可選的,但可能存在使用PCIe實體媒體(而非100千兆以太網路)的中間RDMA請求。在此種實施例中,遠端主機可發起RDMA請求,所述RDMA請求可藉由伺服器連結交換機112被傳輸至能力增強型CXL交換機130。伺服器連結交換機112及能力增強型CXL交換
機130可優先考慮RDMA 4KB請求或CXL的微片(64位元組)請求。
如在圖1C及圖1D所示實施例中,能力增強型CXL交換機130可被配置成接收此種RDMA請求且能力增強型CXL交換機130可處理接收伺服器105(即,接收RDMA請求的伺服器)中的記憶體模組135的群組作為其自己的記憶體空間。此外,能力增強型CXL交換機130可跨越處理電路115進行虛擬化且在遠端能力增強型CXL交換機130上發起RDMA請求,以在沒有處理電路115參加的條件下在伺服器105之間來回移動資料。
圖1F示出與圖1E所示系統類似的系統,在圖1F中處理電路115藉由能力增強型CXL交換機130連接至網路介面電路125。如在圖1D所示實施例中,在圖1F中,能力增強型CXL交換機130、記憶體模組135及網路介面電路125位於擴展插座轉接器140上。擴展插座轉接器140可為插入至伺服器105的母板上的擴展插座(例如PCIe連接件145)中的電路板或模組。如此一來,伺服器可為任何適合的伺服器,所述伺服器僅藉由在PCIe連接件145中安裝擴展插座轉接器140來修改。記憶體模組135可安裝於擴展插座轉接器140上的連接件(例如,M.2連接件)中。在此種實施例中,(i)網路介面電路125可被整合至能力增強型CXL交換機130中,或者(ii)每一網路介面電路125可具有PCIe介面(網路介面電路125可為PCIe端點),進而使得每一網路介面電路125所連接的處理電路115可藉由根埠至端點PCIe連接與
網路介面電路125進行通訊,且能力增強型CXL交換機130(其可具有連接至處理電路115及網路介面電路125的PCIe輸入埠)的控制器137可藉由同級間PCIe連接與網路介面電路125進行通訊。
根據本發明的實施例,提供一種系統,所述系統包括第一伺服器、以及第二伺服器、以及連接至第一伺服器及第二伺服器的伺服器連結交換機,所述第一伺服器包括所儲存程式處理電路、快取同調交換機及第一記憶體模組,其中:第一記憶體模組連接至快取同調交換機,快取同調交換機連接至伺服器連結交換機,且所儲存程式處理電路連接至快取同調交換機。在一些實施例中,伺服器連結交換機包括快速周邊組件互連(PCIe)交換機。在一些實施例中,伺服器連結交換機包括計算快速鏈路(CXL)交換機。在一些實施例中,伺服器連結交換機包括架頂(ToR)CXL交換機。在一些實施例中,伺服器連結交換機被配置成發現第一伺服器。在一些實施例中,伺服器連結交換機被配置成使第一伺服器重新啟動。在一些實施例中,伺服器連結交換機被配置成使快取同調交換機將第一記憶體模組去能。在一些實施例中,伺服器連結交換機被配置成將資料自第二伺服器傳輸至第一伺服器,並對資料實行流量控制。在一些實施例中,所述系統更包括連接至伺服器連結交換機的第三伺服器,其中:伺服器連結交換機被配置成:自第二伺服器接收第一封包;自第三伺服器接收第二封包;且將第一封包及第二封包傳輸至第一伺服器。在一些實施例
中,所述系統更包括連接至快取同調交換機的第二記憶體模組,其中第一記憶體模組包括揮發性記憶體且第二記憶體模組包括持續性記憶體。在一些實施例中,快取同調交換機被配置成將第一記憶體模組及第二記憶體模組虛擬化。在一些實施例中,第一記憶體模組包括快閃記憶體,且快取同調交換機被配置成向快閃記憶體提供快閃轉換層。在一些實施例中,第一伺服器包括連接至第一伺服器的擴展插座的擴展插座轉接器,所述擴展插座轉接器包括:快取同調交換機;及記憶體模組插座,第一記憶體模組藉由記憶體模組插座連接至快取同調交換機。在一些實施例中,記憶體模組插座包括M.2插座。在一些實施例中,快取同調交換機藉由連接件連接至伺服器連結交換機,且連接件位於擴展插座轉接器上。根據本發明的實施例,提供一種用於在計算系統中實行遠端直接記憶體存取的方法,所述計算系統包括第一伺服器、第二伺服器、第三伺服器、以及連接至第一伺服器、第二伺服器及第三伺服器的伺服器連結交換機,所述第一伺服器包括所儲存程式處理電路、快取同調交換機及第一記憶體模組,所述方法包括:由伺服器連結交換機自第二伺服器接收第一封包;由伺服器連結交換機自第三伺服器接收第二封包;以及將第一封包及第二封包傳輸至第一伺服器。在一些實施例中,所述方法更包括:由快取同調交換機接收直接的遠端直接記憶體存取(RDMA)請求;以及由快取同調交換機發送直接的RDMA響應。在一些實施例中,所述接收直接的RDMA請求包括藉由伺服器連結交換機接收直接
的RDMA請求。在一些實施例中,所述方法更包括:由快取同調交換機自所儲存程式處理電路接收針對第一記憶體位址的讀取命令;由快取同調交換機將第一記憶體位址轉換為第二記憶體位址;以及由快取同調交換機在第二記憶體位址處自第一記憶體模組檢索資料。根據本發明的實施例,提供一種系統,所述系統包括第一伺服器、以及第二伺服器、以及連接至第一伺服器及第二伺服器的伺服器連結交換機,所述第一伺服器包括所儲存程式處理電路、快取同調交換構件、第一記憶體模組,其中:第一記憶體模組連接至快取同調交換構件,快取同調交換構件連接至伺服器連結交換機,且所儲存程式處理電路連接至快取同調交換構件。
圖1G示出其中多個記憶體伺服器150中的每一者連接至ToR伺服器連結交換機112的實施例,所述ToR伺服器連結交換機112可為PCIe 5.0 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可被分區或包含快取控制器以處置多種記憶體類型,且記憶體模組135可處於不同的形狀因數,例如HHHL、FHHL、M.2、U.2、夾層卡、子卡、E1.S、E1.L、E3.L及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中的每一者可為具有cxl.cache、cxl.mem及cxl.io以及位址轉換服務(ATS)實施方式的類型2裝置,以處置處理電路115可保存的快取列副本。
能力增強型CXL交換機130及結構管理器可控制記憶體模組135的發現,且進行以下操作:(i)實行裝置發現及虛擬CXL軟體創建;以及(ii)將虛擬埠綁定至實體埠。如在圖1A至圖1D所示實施例中,結構管理器可藉由經由SMBus邊帶進行的連接而進行操作。通往記憶體模組135的介面(其可為智慧平台管理介面(IPMI))或符合紅魚標準的介面(且亦可提供標準並不要求的附加特徵)可使得能夠達成可配置性。
對於圖1G所示實施例,構建區塊可包括(如上所述)
實施於FPGA或ASIC上的CXL控制器137,所述CXL控制器137進行交換以使得能夠達成記憶體裝置(例如,記憶體模組135)、SSD、加速器(GPU、NIC)、CXL及PCIe5連接件以及韌體的聚集,進而將裝置細節展示給操作系統的高級配置及電源介面(advanced configuration and power interface,ACPI)表,例如異質記憶屬性表(heterogeneous memory attribute table,HMAT)或靜態資源親和性表(static resource affinity table,SRAT)。
在一些實施例中,系統提供可組合性。所述系統可基於軟體配置向在線及離線CXL裝置及其他加速器提供能力,且所述系統可能夠對加速器、記憶體、儲存體裝置資源進行分組,且將它們定量分配至機架中的每一記憶體伺服器150。系統可隱藏實體位址空間且使用更快的裝置(如HBM及SRAM)提供透明快取。
在圖1G所示實施例中,能力增強型CXL交換機130的控制器137可進行以下操作:(i)管理記憶體模組135;(ii)整合及控制例如NIC、SSD、GPU、DRAM等異質裝置;以及(iii)藉由電源閘控達成儲存體至記憶體裝置的動態重新配置。舉例而言,ToR伺服器連結交換機112可將記憶體模組135中的一者的電源去能(即,切斷電源或降低電源)(藉由指示能力增強型CXL交換機130將記憶體模組135的電源去能)。在得到伺服器連結交換機112的將記憶體模組的電源去能的指示時,能力增強型CXL交換機130可然後將記憶體模組135的電源去能。此種去能可節約功率且此種去能可改善記憶體伺服器150中的其他記憶體模組
135的效能(例如,通量及延遲)。每一遠端伺服器105可基於協商看到記憶體模組135及其連接件的不同邏輯視圖。能力增強型CXL交換機130的控制器137可維持狀態,進而使得每一遠端伺服器維持分配的資源及連接件,且控制器137可實行記憶體的壓縮或重複資料刪除以節省記憶體容量(使用可配置的塊大小)。圖1G所示分解機架可能有其自己的BMC。圖1G所示分解機架亦可向遠端裝置展示IPMI網路介面及系統事件日誌(SEL),進而使得主裝置(例如,使用由記憶伺服器150提供的儲存體的遠端伺服器)來即時量測效能及可靠性,且重新配置分解機架。圖1G所示分解機架可以與本文中針對圖1E所示實施例所闡述的方式相似的方式來提供可靠性、複製、一致性、系統同調性、散列、快取及持續性,其中例如,同調性是由多個遠端伺服器自相同的記憶體位址讀取或向相同的記憶體位址寫入來提供,且其中每一遠端伺服器配置有不同的一致性水準。在一些實施例中,伺服器連結交換機維持儲存於第一記憶體伺服器上的資料與儲存於第二記憶體伺服器上的資料之間的最終一致性。伺服器連結交換機112可為不同的伺服器對維持不同的一致性水準;舉例而言,伺服器連結交換機亦可在儲存於第一記憶體伺服器上的資料與儲存於第三記憶體伺服器上的資料之間維持作為嚴格一致性、順序一致性、因果一致性或處理器一致性的一致性水準。所述系統可採用「局部頻帶(local-band)」(伺服器連結交換機112)及「全域頻帶(global-band)」(分解伺服器)域中的通訊。寫入可能會被刷新
至「全域頻帶」,以便自其他伺服器的新讀取可見。能力增強型CXL交換機130的控制器137可為每一遠端伺服器單獨管理持續性域及刷新。舉例而言,快取同調交換機可監測第一記憶體區(揮發性記憶體,作為快取進行操作)的完全性,且當完全性水準超過臨限值時,快取同調交換機可將資料自第一記憶體區移動至第二記憶體區,第二記憶體區位於持續性記憶體中。可藉由以下方式來處置流量控制:可由能力增強型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請求,以在任一伺服器中沒有處理電路115參加的條件下在伺服器105之間來回移動資料(其中虛擬化由能力增強型CXL交換機130的控制器137處置)。舉例而言,在205處,記憶體模組135的控制器137或能力增強型CXL交換機130產生對附加遠端記憶體(例如,CXL記憶體或聚集的記憶體)的RDMA請求;在210處,網路介面電路125繞過處理電路而將請求傳輸至ToR以太網路交換機110(其可具有RDMA介面);在215處,ToR以太網路交換機110繞過遠端處理電路115、經由存取遠端聚集的記憶體的RDMA而將RDMA請求路由至遠端伺服器105,以由記憶體模組135的控制器137進行處理,或者由遠端能力增強型CXL交換機130進行處理;在220處,ToR以太網路交換機110繞過本地處理電路115、經由RDMA而接收經處理的資料並將經處理的資料路由至本地記憶體模組135或者本地能力增強型CXL交換機130;並且,在222處,圖1A及圖1B所示實施例的記憶體模組135的控制器137或者能力增強型CXL交換機130直接地接收RDMA響應(例如,在不被處理電路115轉發的條件下)。
在此種實施例中,遠端記憶體模組135的控制器137或遠端伺服器105的能力增強型CXL交換機130被配置成接收直接
的遠端直接記憶體存取(RDMA)請求並發送直接的RDMA響應。如本文所使用的,遠端記憶體模組135的控制器137接收或能力增強型CXL交換機130接收「直接的RDMA請求」(或「直接地」接收此種請求)意指在所述請求不被遠端伺服器的處理電路115轉發或以其他方式處理的條件下由遠端記憶體模組135的控制器137或由能力增強型CXL交換機130接收此種請求,且由遠端記憶體模組135的控制器137或者由能力增強型CXL交換機130發送「直接的RDMA響應」(或者「直接地」發送此種請求)意指在直接的RDMA響應不被遠端伺服器的處理電路115轉發或以其他方式處理的條件下發送此種響應。
參照圖2B,在另一實施例中,可在遠端伺服器的處理電路參加資料處置的條件下實行RDMA。舉例而言,在225處,處理電路115可經由以太網路傳輸資料或工作負荷請求;在230處,ToR以太網路交換機110可接收請求並將請求路由至所述多個伺服器105中的對應的伺服器105;在235處,可在伺服器內經由網路介面電路125(例如,100千兆以太網路賦能的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(例如,100千兆以太網路賦能的NIC)的埠接收請求。在262處,記憶體模組135自PCIe連接件接收請求;在264處,記憶體模組135的控制器使用本地記憶體處理請求;在250處,記憶體模組135的控制器識別自不同伺服器存取記憶體內容(例如,聚集的記憶體內容)的要求;在252處,記憶體模組135的控制器經由CXL協定發送對來自不同伺服器的所述記憶體內容(例如,聚集的記憶體內容)的請求;在254處,所述請求藉由本地PCIe連接件傳播至伺服器連結交換機112,且伺服器連結交換機112然後將請求傳輸至機架上的第二伺服器的第二PCIe連接件;且在266處,第二PCIe連接件經由CXL協定提供存取以共享聚集的記憶體,進而容許記憶體模組135的控制器檢索記憶體內容。
如本文所使用的,「伺服器」是包括至少一個所儲存程式處理電路(例如,處理電路115)、至少一個記憶體資源(例如,系統記憶體120)及用於提供網路連接的至少一個電路(例如,網路介面電路25)的計算系統。如本文所使用的「某事物的一部分」意指「所述事物的至少一些」,且因此可意指少於所述事物的全部
或所述事物全部。如此一來,「事物的一部分」包括作為特殊情形的整個事物,即整個事物是所述事物的一部分的實例。
在本揭露部分的背景技術部分中提供的背景僅被包括來設定上下文,且此部分的內容不被認為是先前技術。所闡述的組件中的任意者或組件的任何組合(例如,在本文所包括的任何系統圖中)可用於實行本文所包括的任何流程圖的操作中的一或多個操作。此外,(i)操作是示例性操作,且可包括未明確涵蓋的各種附加步驟,且(ii)操作的時間順序可發生變化。
本文使用的用語「處理電路」或「控制器構件」意指用於處理資料或數位訊號的硬體、韌體及軟體的任何組合。處理電路硬體可包括例如應用專用積體電路(ASIC)、通用或專用中央處理單元(CPU)、數位訊號處理器(digital signal processor,DSP)、圖形處理單元(GPU)及可程式化邏輯裝置,例如現場可程式化閘陣列(FPGA)。如本文所使用的處理電路中,每一功能或者由被配置(即,硬接線)成實行所述功能的硬體來實行,或者由被配置成執行儲存於非暫態儲存媒體中的指令的更通用的硬體(例如,CPU)來實行。處理電路可製作於單個印刷電路板(PCB)上,或者分佈於幾個互連的PCB之上。處理電路可包含其他處理電路;舉例而言,處理電路可包括在PCB上互連的兩個處理電路FPGA及CPU。
如本文所使用的,「控制器」包括電路,且控制器亦可被稱為「控制電路」或「控制器電路」。類似地,「記憶體模組」
亦可被稱為「記憶體模組電路」或「記憶體電路」。如本文所使用的,用語「陣列」是指有序的數字集合,而不論如何儲存(例如,無論是儲存於連續的記憶體位置中,亦或儲存於連結列表中)。如本文所使用的,當第二個數字是第一個數字的「Y%以內」時,此意指第二個數字是第一個數字的至少(1-Y/100)倍,且第二個數字是第一個數字的至多(1+Y/100)倍。如本文所使用的,用語「或」應被解釋為「及/或」,進而使得例如,「A或B」意指「A」或「B」或「A及B」中的任一者。
如本文所使用的,當方法(例如,調整)或第一數量(例如,第一變數)被稱為「基於」第二數量(例如,第二變數)時,其意指第二數量是所述方法的輸入或者影響第一數量,例如,第二數量可為計算第一數量的函數的輸入(例如,唯一的輸入,或者幾個輸入中的一者),或者第一數量可等於第二數量,或者第一數量可相同於第二數量(例如,儲存於記憶體中的相同的一或多個位置處)。
將理解,儘管可在本文中使用用語「第一」、「第二」、「第三」等來闡述各種元件、組件、區、層、及/或區段,但該些元件、組件、區、層、及/或區段不應受限於該些用語。該些用語僅用於區分各個元件、組件、區、層或區段。因此,在不背離本發明概念的精神及範圍的條件下,本文所述第一元件、組件、區、層或區段可被稱為第二元件、組件、區、層或區段。
為易於說明,本文中可能使用例如「位於...之下
(beneath)」、「位於...下方(below)」、「下部的(lower)」、「位於...下面(under)」、「位於...上方(above)」、「上部的(upper)」等空間相對性用語來闡述圖中所示的一個元件或特徵與另一(其他)元件或特徵的關係。應理解,所述空間相對性用語旨在除圖中所繪示的定向外亦囊括裝置在使用或操作中的不同定向。舉例而言,若圖中的裝置被翻轉,則被闡述為位於其他元件或特徵「下方」或位於其他元件或特徵「之下」或位於其他元件或特徵「下面」的元件將被定向為位於其他元件或特徵「上方」。因此,示例性用語「位於...下方」及「位於...下面」可囊括上方及下方二者的定向。裝置可具有其他定向(旋轉90度或處於其他定向),且本文中所使用的空間相對性描述語可同樣相應地進行解釋。另外,亦將理解,當層被指位於兩個層「之間」時,該層可為所述兩層之間的唯一層,或者亦可存在一或多個中間層。
本文所用術語僅出於闡述特定實施例的目的,而不旨在限制本發明概念。本文中所使用的用語「實質上」、「約」及類似用語是作為近似值用語來使用、而並非作為程度用語來使用,並且旨在慮及此項技術中具有通常知識者將認識到的量測值或計算值的固有偏差。除非上下文中清楚地另外指明,否則本文中所使用的單數形式「一(a及an)」旨在亦包括複數形式。更應理解,當在本說明書中使用用語「包括(comprises及/或comprising)」時,是指明所述特徵、整數、步驟、操作、元件及/或組件的存在,但不排除一或多個其他特徵、整數、步驟、操作、元件、組件及/
或其群組的存在或添加。本文中所使用的用語「及/或(and/or)」包括相關所列項中一或多個項的任意及所有組合。例如「...中的至少一者(at least one of)」等表達當出現在一系列元件之前時,是修飾整個系列的元件而並非修飾所述系列的各別元件。此外,當闡述本發明概念的實施例時使用「可(may)」是指「本揭露的一或多個實施例」。另外,用語「示例性的」旨在指實例或例示。本文所用的用語「使用(use)」、「正使用(using)」、及「被使用(used)」可被視為分別與用語「利用(utilize)」、「正利用(utilizing)」、及「被利用(utilized)」同義。
應理解,當稱一元件或層被指位於另一元件或層「上」、「連接至」、「耦合至」或「相鄰於」另一元件或層時,所述元件可直接位於所述另一元件或層上、直接連接至、直接耦合至或直接相鄰於所述另一元件或層,或者可存在一或多個中間元件或層。相比之下,當稱一元件或層「直接」位於另一元件或層「上」、「直接連接至」、「直接耦合至」或「緊鄰於」另一元件或層時,則不存在中間元件或層。
本文中所述的任何數值範圍旨在包括所述範圍內所包含的具有相同數值精度的所有子範圍。舉例而言,範圍「1.0至10.0」或「介於1.0與10.0之間」旨在包括介於所述最小值1.0與所述最大值10.0之間(且包括1.0及10.0)的所有子範圍,即,具有等於或大於1.0的最小值及等於或小於10.0的最大值(例如(舉例而言,2.4至7.6))。本文中所述任何最大數值限制旨在包括其中
所包含的所有較低的數值限制,且本說明書中所述的任何最小數值限制旨在包括其中所包含的所有較高的數值限制。
儘管已在本文中具體闡述及例示用於管理記憶體資源的系統及方法的示例性實施例,然而諸多潤飾及變型將對熟習此項技術者顯而易見。因此,應理解,根據本揭露的原理構造的用於管理記憶體資源的系統及方法可被實施成不同於本文中所具體闡述者。亦在以下申請專利範圍及其等效範圍中界定本發明。
105:伺服器/遠端伺服器/接收伺服器
112:伺服器連結交換機/ToR伺服器連結交換機/ToR交換機
115:處理電路/所儲存程式處理電路/第二處理電路
120:系統記憶體
125:網路介面電路
130:能力增強型CXL交換機/快取同調交換機/遠端能力增強型CXL交換機/本地能力增強型CXL交換機
135:記憶體模組/CXL記憶體模組/第一記憶體模組
137:控制器/CXL控制器/FPGA(或ASIC)控制器
140:擴展插座轉接器
145:擴展插座/PCIe連接件
Claims (20)
- 一種用於管理記憶體資源的系統,包括:第一伺服器,包括:所儲存程式處理電路,快取同調交換機,以及第一記憶體模組;第二伺服器;以及伺服器連結交換機,連接至所述第一伺服器及所述第二伺服器,其中:所述第一記憶體模組連接至所述快取同調交換機,所述快取同調交換機連接至所述伺服器連結交換機,且所述所儲存程式處理電路連接至所述快取同調交換機,其中所述伺服器連結交換機與所述快取同調交換機形成分層結構,其中所述分層結構具有主控制器與從控制器,所述主控制器是所述伺服器連結交換機的一部分,且所述從控制器是所述快取同調交換機的一部分。
- 如請求項1所述的系統,其中所述伺服器連結交換機包括快速周邊組件互連(PCIe)交換機。
- 如請求項1所述的系統,其中所述伺服器連結交換機包括計算快速鏈路(CXL)交換機。
- 如請求項3所述的系統,其中所述伺服器連結交換 機包括架頂(ToR)計算快速鏈路交換機。
- 如請求項1所述的系統,其中所述伺服器連結交換機被配置成發現所述第一伺服器。
- 如請求項1所述的系統,其中所述伺服器連結交換機被配置成使所述第一伺服器重新啟動。
- 如請求項1所述的系統,其中所述伺服器連結交換機被配置成使所述快取同調交換機將所述第一記憶體模組去能。
- 如請求項1所述的系統,其中所述伺服器連結交換機被配置成將資料自所述第二伺服器傳輸至所述第一伺服器,且對所述資料實行流量控制。
- 如請求項1所述的系統,更包括連接至所述伺服器連結交換機的第三伺服器,其中:所述伺服器連結交換機被配置成:自所述第二伺服器接收第一封包,自所述第三伺服器接收第二封包,且將所述第一封包及所述第二封包傳輸至所述第一伺服器。
- 如請求項1所述的系統,更包括連接至所述快取同調交換機的第二記憶體模組,其中所述第一記憶體模組包括揮發性記憶體且所述第二記憶體模組包括持續性記憶體。
- 如請求項10所述的系統,其中所述快取同調交換機被配置成將所述第一記憶體模組及所述第二記憶體模組虛擬化。
- 如請求項11所述的系統,其中所述第一記憶體模組包括快閃記憶體,且所述快取同調交換機被配置成向所述快閃記憶體提供快閃轉換層。
- 如請求項1所述的系統,其中所述第一伺服器包括連接至所述第一伺服器的擴展插座的擴展插座轉接器,所述擴展插座轉接器包括:所述快取同調交換機;以及記憶體模組插座,所述第一記憶體模組藉由所述記憶體模組插座連接至所述快取同調交換機。
- 如請求項13所述的系統,其中所述記憶體模組插座包括M.2插座。
- 如請求項13所述的系統,其中:所述快取同調交換機藉由連接件連接至所述伺服器連結交換機,且所述連接件位於所述擴展插座轉接器上。
- 一種在計算系統中實行遠端直接記憶體存取的方法,所述計算系統包括:第一伺服器;第二伺服器;第三伺服器;以及伺服器連結交換機,連接至所述第一伺服器、所述第二伺服 器及所述第三伺服器,所述第一伺服器包括:所儲存程式處理電路;快取同調交換機,以及第一記憶體模組;其中所述伺服器連結交換機與所述快取同調交換機形成分層結構,其中所述分層結構具有主控制器與從控制器,所述主控制器是所述伺服器連結交換機的一部分,且所述從控制器是所述快取同調交換機的一部分,所述方法包括:由所述伺服器連結交換機自所述第二伺服器接收第一封包;由所述伺服器連結交換機自所述第三伺服器接收第二封包;以及將所述第一封包及所述第二封包傳輸至所述第一伺服器。
- 如請求項16所述的方法,更包括:由所述快取同調交換機接收遠端直接記憶體存取(RDMA)請求,以及由所述快取同調交換機發送遠端直接記憶體存取響應。
- 如請求項17所述的方法,其中接收所述遠端直接記憶體存取請求包括藉由所述伺服器連結交換機接收所述遠端直接記憶體存取請求。
- 如請求項17所述的方法,更包括:由所述快取同調交換機自所述所儲存程式處理電路接收針對第一記憶體位址的讀取命令,由所述快取同調交換機將所述第一記憶體位址轉換成第二記憶體位址,以及由所述快取同調交換機在所述第二記憶體位址處自所述第一記憶體模組檢索資料。
- 一種用於管理記憶體資源的系統,包括:第一伺服器,包括:所儲存程式處理電路;快取同調交換構件,第一記憶體模組;第二伺服器;以及伺服器連結交換機,連接至所述第一伺服器及所述第二伺服器,其中:所述第一記憶體模組連接至所述快取同調交換構件,所述快取同調交換構件連接至所述伺服器連結交換機,且所述所儲存程式處理電路連接至所述快取同調交換構件,其中所述伺服器連結交換機與所述快取同調交換構件形成分層結構,其中所述分層結構具有主控制器與從控制器,所述主控制器是所述伺服器連結交換機的一部分,且所述從控制器是所述 快取同調交換構件的一部分。
Applications Claiming Priority (10)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US202063031509P | 2020-05-28 | 2020-05-28 | |
| US202063031508P | 2020-05-28 | 2020-05-28 | |
| US63/031,509 | 2020-05-28 | ||
| US63/031,508 | 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/026,074 | 2020-09-18 | ||
| US17/026,074 US11416431B2 (en) | 2020-04-06 | 2020-09-18 | System with cache-coherent memory and server-linking switch |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TW202145025A TW202145025A (zh) | 2021-12-01 |
| TWI882091B true TWI882091B (zh) | 2025-05-01 |
Family
ID=74859383
Family Applications (4)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW110108447A TWI882090B (zh) | 2020-05-28 | 2021-03-10 | 用於管理記憶體資源的系統以及用於在計算系統中執行遠端直接記憶體存取的方法 |
| TW110108561A TWI882091B (zh) | 2020-05-28 | 2021-03-10 | 用於管理記憶體資源的系統以及實行遠端直接記憶體存取的方法 |
| TW110112837A TWI886248B (zh) | 2020-05-28 | 2021-04-09 | 用於管理記憶體資源的系統以及用於在計算系統中執行遠端直接記憶體存取的方法 |
| TW110114337A TWI850550B (zh) | 2020-05-28 | 2021-04-21 | 管理記憶體資源的系統及實行遠端直接記憶體存取的方法 |
Family Applications Before (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW110108447A TWI882090B (zh) | 2020-05-28 | 2021-03-10 | 用於管理記憶體資源的系統以及用於在計算系統中執行遠端直接記憶體存取的方法 |
Family Applications After (2)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW110112837A TWI886248B (zh) | 2020-05-28 | 2021-04-09 | 用於管理記憶體資源的系統以及用於在計算系統中執行遠端直接記憶體存取的方法 |
| TW110114337A TWI850550B (zh) | 2020-05-28 | 2021-04-21 | 管理記憶體資源的系統及實行遠端直接記憶體存取的方法 |
Country Status (6)
| Country | Link |
|---|---|
| US (1) | US20210373951A1 (zh) |
| EP (4) | EP3916563B1 (zh) |
| JP (4) | JP7779665B2 (zh) |
| KR (5) | KR102820747B1 (zh) |
| CN (4) | CN113810312B (zh) |
| TW (4) | TWI882090B (zh) |
Families Citing this family (55)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US12271322B2 (en) | 2019-06-24 | 2025-04-08 | Samsung Electronics Co., Ltd. | Multi-function flexible computational storage device |
| US11656967B2 (en) * | 2020-02-13 | 2023-05-23 | MemRay Corporation | Method and apparatus for supporting persistence and computing device |
| US11461263B2 (en) | 2020-04-06 | 2022-10-04 | Samsung Electronics Co., Ltd. | Disaggregated memory server |
| US20210373951A1 (en) * | 2020-05-28 | 2021-12-02 | Samsung Electronics Co., Ltd. | Systems and methods for composable coherent devices |
| US20210374056A1 (en) | 2020-05-28 | 2021-12-02 | Samsung Electronics Co., Ltd. | Systems and methods for scalable and coherent memory devices |
| EP3945425A1 (en) * | 2020-07-30 | 2022-02-02 | Sipearl | A high-performance computing system |
| DE102021121105A1 (de) * | 2020-09-28 | 2022-03-31 | Samsung Electronics Co., Ltd. | Intelligente ablagespeichervorrichtung |
| US11442858B1 (en) * | 2021-03-10 | 2022-09-13 | Micron Technology, Inc. | Bias control for a memory device |
| US12020070B2 (en) * | 2021-04-02 | 2024-06-25 | Red Hat, Inc. | Managing computer workloads across distributed computing clusters |
| US11755251B2 (en) * | 2021-06-02 | 2023-09-12 | Samsung Electronics Co., Ltd. | Virtual computational storage devices |
| EP4352618A4 (en) * | 2021-06-09 | 2025-04-23 | Enfabrica Corporation | Multi-level and multi-protocol storage switch with configurable transport |
| US11782832B2 (en) * | 2021-08-25 | 2023-10-10 | Vmware, Inc. | Low latency host processor to coherent device interaction |
| US20230086149A1 (en) * | 2021-09-23 | 2023-03-23 | Intel Corporation | Reducing memory power usage in far memory |
| US12445524B2 (en) * | 2021-09-24 | 2025-10-14 | Intel Corporation | Methods and apparatus to share memory across distributed coherent edge computing system |
| US11632337B1 (en) * | 2021-10-11 | 2023-04-18 | Cisco Technology, Inc. | Compute express link over ethernet in composable data centers |
| TW202334397A (zh) | 2021-11-24 | 2023-09-01 | 日商雷格細胞股份有限公司 | 用於治療或預防t細胞相關疾病之醫藥組合物 |
| TWI818385B (zh) * | 2021-12-16 | 2023-10-11 | 神雲科技股份有限公司 | 儲存設備 |
| US12468578B2 (en) * | 2021-12-22 | 2025-11-11 | Intel Corporation | Infrastructure managed workload distribution |
| US12360912B2 (en) * | 2021-12-23 | 2025-07-15 | Advanced Micro Devices, Inc. | Approach for providing indirect addressing in memory modules |
| US20230222068A1 (en) * | 2022-01-11 | 2023-07-13 | Flipkart Internet Private Limited | System and method for optimizing cached memory comprising varying degrees of sla and crg |
| US11966590B2 (en) | 2022-02-25 | 2024-04-23 | Samsung Electronics Co., Ltd. | Persistent memory with cache coherent interconnect interface |
| US12475050B2 (en) * | 2022-03-03 | 2025-11-18 | Samsung Electronics Co., Ltd. | Cache-coherent interconnect based near-data-processing accelerator |
| US12468640B2 (en) | 2022-03-21 | 2025-11-11 | Samsung Electronics Co., Ltd. | Systems and methods for sending a command to a storage device |
| CN114896223B (zh) * | 2022-04-07 | 2025-02-25 | 支付宝(杭州)信息技术有限公司 | 数据库实现装置、方法、系统、介质以及计算机程序产品 |
| US12093540B2 (en) | 2022-04-21 | 2024-09-17 | Samsung Electronics Co., Ltd. | Systems, methods, and apparatus for selecting devices in tiered memory |
| KR20230156524A (ko) * | 2022-05-06 | 2023-11-14 | 삼성전자주식회사 | 스토리지 장치들 및 메모리 장치들과 통신하도록 구성된 호스트의 동작 방법, 및 스토리지 장치들 및 메모리 장치들을 포함하는 시스템 |
| US12182449B2 (en) | 2022-05-25 | 2024-12-31 | Samsung Electronics Co., Ltd. | Systems and methods for managing a storage system |
| US12293090B2 (en) | 2022-07-14 | 2025-05-06 | Samsung Electronics Co., Ltd. | Systems and methods for managing bias mode switching |
| US12517849B2 (en) * | 2022-07-28 | 2026-01-06 | Microchip Technology Incorporated | System and methods for matrix multiplication |
| CN115408329B (zh) * | 2022-08-26 | 2023-07-25 | 上海玫克生储能科技有限公司 | 即插即用型边缘计算终端硬件系统架构 |
| US20230029026A1 (en) * | 2022-09-30 | 2023-01-26 | Intel Corporation | Flexible resource sharing in a network |
| US12489812B2 (en) | 2022-10-26 | 2025-12-02 | Samsung Electronics Co., Ltd. | Scalable memory pool |
| WO2024117572A1 (ko) * | 2022-11-29 | 2024-06-06 | 한국전자통신연구원 | 대용량 온칩 메모리를 갖는 인공지능 프로세서를 위한 가상주소 기반의 캐시 코헤런시 지원 방법 및 이를 위한 장치 |
| KR20240110284A (ko) | 2023-01-06 | 2024-07-15 | 삼성전자주식회사 | 전자 장치 및 이의 동작 방법 |
| EP4398085A1 (en) * | 2023-01-06 | 2024-07-10 | Samsung Electronics Co., Ltd. | Electronic device and operating method thereof |
| US20240248869A1 (en) * | 2023-01-19 | 2024-07-25 | Samsung Electronics Co., Ltd. | Method and apparatus with peripheral component interconnect express (pcie) data transmission |
| CN115982078A (zh) * | 2023-01-19 | 2023-04-18 | 北京超弦存储器研究院 | 一种cxl内存模组及内存存储系统 |
| CN116466879B (zh) * | 2023-03-17 | 2023-12-29 | 北京超弦存储器研究院 | 一种cxl内存模组、内存数据的置换方法及计算机系统 |
| US12235766B2 (en) | 2023-03-17 | 2025-02-25 | Beijing Superstring Academy Of Memory Technology | CXL memory module, memory data swap method and computer system |
| CN116436879A (zh) * | 2023-05-06 | 2023-07-14 | 北京火山引擎科技有限公司 | 数据缓存处理方法、装置、介质及网络设备 |
| CN116700887A (zh) * | 2023-05-10 | 2023-09-05 | 阿里巴巴(中国)有限公司 | 机柜以及虚拟服务器创建方法 |
| US12468628B2 (en) | 2023-05-11 | 2025-11-11 | Samsung Electronics Co., Ltd. | Systems and methods for synchronous cell switching for scalable memory |
| US20250238360A1 (en) * | 2023-08-07 | 2025-07-24 | Samsung Electronics Co., Ltd. | Systems and methods for managing memory devices |
| KR20250026635A (ko) | 2023-08-17 | 2025-02-25 | 삼성전자주식회사 | 인메모리 데이터베이스를 위한 컴퓨터 네트워킹 장치 및 방법 |
| CN116886751B (zh) * | 2023-09-04 | 2024-01-19 | 浪潮(北京)电子信息产业有限公司 | 一种异构设备的高速通信方法、装置和异构通信系统 |
| CN116932229B (zh) * | 2023-09-13 | 2023-12-12 | 新华三信息技术有限公司 | 一种内存分配方法、装置、网络管理器及存储介质 |
| KR20250066111A (ko) * | 2023-11-06 | 2025-05-13 | 삼성전자주식회사 | Cxl 장치, 전자 장치, 및 데이터 저장 방법 |
| TWI880468B (zh) * | 2023-11-20 | 2025-04-11 | 英業達股份有限公司 | 記憶體裝置及系統 |
| US12407630B2 (en) * | 2023-12-13 | 2025-09-02 | Unifabrix Ltd. | Elastic multi-directional resource augmentation in a switched CXL fabric |
| US20250335384A1 (en) * | 2024-04-24 | 2025-10-30 | Sandisk Technologies Llc | Single Sideband Signals Set for Multi-Port Storage Devices |
| US20260003777A1 (en) * | 2024-06-28 | 2026-01-01 | Seagate Technology Llc | Memory appliance sharing memory between multiple hosts |
| CN119046184B (zh) * | 2024-08-27 | 2025-03-21 | 沐曦科技(成都)有限公司 | 一种gpu固件日志的存储方法 |
| CN119544819B (zh) * | 2024-11-27 | 2025-10-31 | 齐鲁工业大学(山东省科学院) | 一种rdma与cxl协议双向高速转换方法、装置及系统 |
| CN119357090A (zh) * | 2024-12-26 | 2025-01-24 | 西安紫光国芯半导体股份有限公司 | 一种存储装置及其存储方法 |
| CN120780616B (zh) * | 2025-09-05 | 2025-11-21 | 芯潮流(珠海)科技有限公司 | 设备内存管理方法、计算机装置及存储介质 |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20080025289A1 (en) * | 2006-07-28 | 2008-01-31 | Suvansh Krishan Kapur | Transaction flow and ordering for a packet processing engine, located within an input-output hub |
| WO2018141061A1 (en) * | 2017-02-01 | 2018-08-09 | Cerebian Inc. | System and method for measuring perceptual experiences |
| US20200125956A1 (en) * | 2017-05-20 | 2020-04-23 | Google Llc | Application Development Platform and Software Development Kits that Provide Comprehensive Machine Learning Services |
| US20200412798A1 (en) * | 2019-06-25 | 2020-12-31 | Western Digital Technologies, Inc. | Connection Load Distribution in Distributed Object Storage Systems |
Family Cites Families (63)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH07281953A (ja) * | 1994-04-06 | 1995-10-27 | Taiichi Nakayama | 通信回数を節減する分散共有メモリの制御機構 |
| JPH09204403A (ja) * | 1996-01-26 | 1997-08-05 | Hitachi Ltd | 並列計算機 |
| US6449699B2 (en) * | 1999-03-29 | 2002-09-10 | International Business Machines Corporation | Apparatus and method for partitioned memory protection in cache coherent symmetric multiprocessor systems |
| US7079535B2 (en) * | 2000-07-28 | 2006-07-18 | The Regents Of The Universtiy Of California | Method and apparatus for real-time fault-tolerant multicasts in computer networks |
| JP5136652B2 (ja) | 2008-11-10 | 2013-02-06 | 富士通株式会社 | 情報処理装置及びメモリ制御装置 |
| US8725946B2 (en) * | 2009-03-23 | 2014-05-13 | Ocz Storage Solutions, Inc. | Mass storage system and method of using hard disk, solid-state media, PCIe edge connector, and raid controller |
| US10877695B2 (en) * | 2009-10-30 | 2020-12-29 | Iii Holdings 2, Llc | Memcached server functionality in a cluster of data processing nodes |
| US8937622B2 (en) * | 2010-09-20 | 2015-01-20 | Qualcomm Incorporated | Inter-processor communication techniques in a multiple-processor computing platform |
| US9009406B2 (en) * | 2010-12-10 | 2015-04-14 | International Business Machines Corporation | Determining server write activity levels to use to adjust write cache size |
| WO2013029051A2 (en) * | 2011-08-25 | 2013-02-28 | to fuVIRTUSTREAM, INC. | Systems and methods of host-aware resource management involving cluster-based resource pools |
| US20190235777A1 (en) * | 2011-10-11 | 2019-08-01 | Donglin Wang | Redundant storage system |
| US9280468B2 (en) * | 2011-10-26 | 2016-03-08 | Qualcomm Technologies, Inc. | Three channel cache-coherency socket protocol |
| US8719464B2 (en) | 2011-11-30 | 2014-05-06 | Advanced Micro Device, Inc. | Efficient memory and resource management |
| US20130318308A1 (en) * | 2012-05-24 | 2013-11-28 | Sonics, Inc. | Scalable cache coherence for a network on a chip |
| WO2014052826A1 (en) * | 2012-09-28 | 2014-04-03 | Cycle Computing, Llc | Routing job submissions between disparate compute environments |
| US20140115579A1 (en) * | 2012-10-19 | 2014-04-24 | Jonathan Kong | Datacenter storage system |
| US20140195672A1 (en) * | 2013-01-09 | 2014-07-10 | Microsoft Corporation | Automated failure handling through isolation |
| JP6155769B2 (ja) | 2013-03-29 | 2017-07-05 | 富士通株式会社 | ストレージ制御装置、制御プログラム及び制御方法 |
| KR20150047784A (ko) | 2013-10-25 | 2015-05-06 | 삼성전자주식회사 | 서버 시스템 및 스토리지 시스템 |
| WO2015075837A1 (ja) | 2013-11-25 | 2015-05-28 | 株式会社日立製作所 | ストレージ装置及びその制御方法 |
| US9727503B2 (en) * | 2014-03-17 | 2017-08-08 | Mellanox Technologies, Ltd. | Storage system and server |
| US9479457B2 (en) * | 2014-03-31 | 2016-10-25 | Juniper Networks, Inc. | High-performance, scalable and drop-free data center switch fabric |
| US9710173B2 (en) | 2014-05-20 | 2017-07-18 | Micron Technology, Inc. | Read cache memory with DRAM class promotion |
| US10445134B2 (en) * | 2014-06-03 | 2019-10-15 | Amazon Technologies, Inc. | Identifying candidate workloads for migration |
| JP6924671B2 (ja) | 2014-09-15 | 2021-08-25 | 華為技術有限公司Huawei Technologies Co.,Ltd. | データ書込み要求処理方法及びストレージアレイ |
| US10523585B2 (en) * | 2014-12-19 | 2019-12-31 | Amazon Technologies, Inc. | System on a chip comprising multiple compute sub-systems |
| WO2016170632A1 (ja) | 2015-04-22 | 2016-10-27 | 株式会社日立製作所 | 計算機及び電源制御方法 |
| US9936051B2 (en) * | 2015-07-07 | 2018-04-03 | International Business Machines Corporation | Managing network sockets |
| CN108702374A (zh) * | 2015-09-02 | 2018-10-23 | 科内克斯实验室公司 | 用于以太网类型网络上的存储器和I/O的远程访问的NVM Express控制器 |
| KR102430561B1 (ko) * | 2015-09-11 | 2022-08-09 | 삼성전자주식회사 | 듀얼 포트 디램을 포함하는 메모리 모듈 |
| US10019360B2 (en) * | 2015-09-26 | 2018-07-10 | Intel Corporation | Hardware predictor using a cache line demotion instruction to reduce performance inversion in core-to-core data transfers |
| WO2017131749A1 (en) * | 2016-01-29 | 2017-08-03 | Hewlett Packard Enterprise Development Lp | Remote direct memory access |
| JP2017151911A (ja) | 2016-02-26 | 2017-08-31 | 東芝メモリ株式会社 | 半導体装置及び制御方法 |
| JP6740683B2 (ja) | 2016-04-07 | 2020-08-19 | 富士通株式会社 | 並列処理装置及び通信制御方法 |
| US10944842B2 (en) * | 2016-05-27 | 2021-03-09 | Home Box Office, Inc. | Cached data repurposing |
| US12210476B2 (en) * | 2016-07-19 | 2025-01-28 | Pure Storage, Inc. | Disaggregated compute resources and storage resources in a storage system |
| US10503655B2 (en) * | 2016-07-21 | 2019-12-10 | Advanced Micro Devices, Inc. | Data block sizing for channels in a multi-channel high-bandwidth memory |
| US10225344B2 (en) * | 2016-08-12 | 2019-03-05 | International Business Machines Corporation | High-performance key-value store using a coherent attached bus |
| US10389800B2 (en) * | 2016-10-11 | 2019-08-20 | International Business Machines Corporation | Minimizing execution time of a compute workload based on adaptive complexity estimation |
| CN108228082B (zh) * | 2016-12-21 | 2021-04-02 | 伊姆西Ip控股有限责任公司 | 存储系统和用于存储控制的方法 |
| US10417092B2 (en) * | 2017-09-07 | 2019-09-17 | Pure Storage, Inc. | Incremental RAID stripe update parity calculation |
| NO344681B1 (en) | 2017-09-05 | 2020-03-02 | Numascale As | Coherent Node Controller |
| US10831404B2 (en) * | 2018-02-08 | 2020-11-10 | Alibaba Group Holding Limited | Method and system for facilitating high-capacity shared memory using DIMM from retired servers |
| US10838647B2 (en) * | 2018-03-14 | 2020-11-17 | Intel Corporation | Adaptive data migration across disaggregated memory resources |
| US10599548B2 (en) * | 2018-06-28 | 2020-03-24 | Intel Corporation | Cache monitoring |
| WO2020000316A1 (zh) * | 2018-06-28 | 2020-01-02 | 华为技术有限公司 | 容错处理的方法、装置和服务器 |
| US10884662B2 (en) * | 2018-08-06 | 2021-01-05 | Silicon Motion, Inc. | Method for performing storage control in a storage server, associated memory device and memory controller thereof, and associated storage server |
| WO2020057638A1 (en) * | 2018-09-21 | 2020-03-26 | Suzhou Kuhan Information Technologies Co., Ltd. | Systems, methods and apparatus for storage controller with multi-mode pcie functionality |
| US10956230B2 (en) * | 2018-10-01 | 2021-03-23 | Vmware, Inc. | Workload placement with forecast |
| US11100040B2 (en) * | 2018-10-17 | 2021-08-24 | Cisco Technology, Inc. | Modular remote direct memory access interfaces |
| US10909012B2 (en) * | 2018-11-12 | 2021-02-02 | H3 Platform, Inc. | System having persistent memory |
| US11379254B1 (en) * | 2018-11-18 | 2022-07-05 | Pure Storage, Inc. | Dynamic configuration of a cloud-based storage system |
| US11070527B2 (en) * | 2018-12-07 | 2021-07-20 | Intel Corporation | Securing platform link with encryption |
| US11036658B2 (en) * | 2019-01-16 | 2021-06-15 | Advanced Micro Devices, Inc. | Light-weight memory expansion in a coherent memory system |
| US11169854B2 (en) * | 2019-01-31 | 2021-11-09 | Hewlett Packard Enterprise Development Lp | Node eligibility determinations |
| US11025544B2 (en) * | 2019-06-07 | 2021-06-01 | Intel Corporation | Network interface for data transport in heterogeneous computing environments |
| US11216404B2 (en) | 2019-08-05 | 2022-01-04 | Intel Corporation | Mechanism for device interoperability of switches in computer buses |
| US11573900B2 (en) * | 2019-09-11 | 2023-02-07 | Intel Corporation | Proactive data prefetch with applied quality of service |
| US11036650B2 (en) | 2019-09-19 | 2021-06-15 | Intel Corporation | System, apparatus and method for processing remote direct memory access operations with a device-attached memory |
| US11392511B2 (en) | 2019-09-25 | 2022-07-19 | Intel Corporation | Secure address translation services using a permission table |
| US20200104275A1 (en) * | 2019-12-02 | 2020-04-02 | Intel Corporation | Shared memory space among devices |
| US11789878B2 (en) | 2019-12-19 | 2023-10-17 | Intel Corporation | Adaptive fabric allocation for local and remote emerging memories based prediction schemes |
| US20210373951A1 (en) * | 2020-05-28 | 2021-12-02 | Samsung Electronics Co., Ltd. | Systems and methods for composable coherent devices |
-
2020
- 2020-12-28 US US17/135,901 patent/US20210373951A1/en not_active Abandoned
-
2021
- 2021-02-22 EP EP21158412.3A patent/EP3916563B1/en active Active
- 2021-02-23 EP EP21158607.8A patent/EP3916564B1/en active Active
- 2021-02-26 KR KR1020210026299A patent/KR102820747B1/ko active Active
- 2021-03-02 KR KR1020210027533A patent/KR20210147867A/ko active Pending
- 2021-03-10 TW TW110108447A patent/TWI882090B/zh active
- 2021-03-10 TW TW110108561A patent/TWI882091B/zh active
- 2021-03-15 EP EP21162578.5A patent/EP3916565A1/en active Pending
- 2021-03-24 KR KR1020210038306A patent/KR20210147871A/ko active Pending
- 2021-04-09 TW TW110112837A patent/TWI886248B/zh active
- 2021-04-21 TW TW110114337A patent/TWI850550B/zh active
- 2021-04-29 CN CN202110472003.5A patent/CN113810312B/zh active Active
- 2021-04-30 EP EP21171532.1A patent/EP3916566B1/en active Active
- 2021-05-21 KR KR1020210065587A patent/KR20210147911A/ko active Pending
- 2021-05-25 JP JP2021087728A patent/JP7779665B2/ja active Active
- 2021-05-26 CN CN202110578313.5A patent/CN113742259A/zh active Pending
- 2021-05-27 CN CN202110585663.4A patent/CN113746762B/zh active Active
- 2021-05-27 CN CN202110584677.4A patent/CN113742257A/zh active Pending
- 2021-05-27 JP JP2021089584A patent/JP7752489B2/ja active Active
- 2021-05-27 JP JP2021089285A patent/JP7739693B2/ja active Active
-
2025
- 2025-06-10 KR KR1020250075842A patent/KR20250093272A/ko active Pending
- 2025-09-30 JP JP2025164350A patent/JP2025185007A/ja active Pending
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20080025289A1 (en) * | 2006-07-28 | 2008-01-31 | Suvansh Krishan Kapur | Transaction flow and ordering for a packet processing engine, located within an input-output hub |
| WO2018141061A1 (en) * | 2017-02-01 | 2018-08-09 | Cerebian Inc. | System and method for measuring perceptual experiences |
| US20200125956A1 (en) * | 2017-05-20 | 2020-04-23 | Google Llc | Application Development Platform and Software Development Kits that Provide Comprehensive Machine Learning Services |
| US20200412798A1 (en) * | 2019-06-25 | 2020-12-31 | Western Digital Technologies, Inc. | Connection Load Distribution in Distributed Object Storage Systems |
Also Published As
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| TWI882091B (zh) | 用於管理記憶體資源的系統以及實行遠端直接記憶體存取的方法 | |
| US11841814B2 (en) | System with cache-coherent memory and server-linking switch | |
| US11720290B2 (en) | Memcached server functionality in a cluster of data processing nodes | |
| KR20190112626A (ko) | 어레이 내에서 솔리드 스테이트 드라이브들을 자율적으로 관리하는 메커니즘 | |
| TW202601390A (zh) | 用於管理記憶體資源的系統以及用於在計算系統中執行遠端直接記憶體存取的方法 |