CN113810312B - 用于管理存储器资源的系统和方法 - Google Patents

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

Info

Publication number
CN113810312B
CN113810312B CN202110472003.5A CN202110472003A CN113810312B CN 113810312 B CN113810312 B CN 113810312B CN 202110472003 A CN202110472003 A CN 202110472003A CN 113810312 B CN113810312 B CN 113810312B
Authority
CN
China
Prior art keywords
server
memory
switch
memory module
cache coherence
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.)
Active
Application number
CN202110472003.5A
Other languages
English (en)
Other versions
CN113810312A (zh
Inventor
克里希纳·泰贾·马拉迪
安德鲁·常
崔秉熙
伊桑·M·纳贾法巴迪
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US17/026,087 external-priority patent/US11461263B2/en
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN113810312A publication Critical patent/CN113810312A/zh
Application granted granted Critical
Publication of CN113810312B publication Critical patent/CN113810312B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9063Intermediate storage in different physical parts of a node or terminal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation 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/505Allocation 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0817Cache consistency protocols using directory methods
    • G06F12/0828Cache consistency protocols using directory methods with concurrent directory accessing, i.e. handling multiple concurrent coherency transactions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations 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/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17306Intercommunication techniques
    • G06F15/17331Distributed shared memory [DSM], e.g. remote direct memory access [RDMA]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0284Multiple user address space allocation, e.g. using different base addresses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0813Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing 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/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • G06F13/1663Access to shared memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation 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/5016Allocation 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/10Current supply arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • H04L49/351Switches specially adapted for specific applications for local area network [LAN], e.g. Ethernet switches
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • H04L49/356Switches specially adapted for specific applications for storage area networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/04Addressing variable-length words or parts of words
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1072Decentralised address translation, e.g. in distributed shared memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5022Workload threshold
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/505Clust
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1008Correctness of operation, e.g. memory ordering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1028Power efficiency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/15Use in a specific computing environment
    • G06F2212/154Networked environment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/16General purpose computing application
    • G06F2212/163Server or database system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/205Hybrid memory, e.g. using both volatile and non-volatile memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/30Providing cache or TLB in specific location of a processing system
    • G06F2212/304In main memory subsystem
    • G06F2212/3042In main memory subsystem being part of a memory device, e.g. cache DRAM
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/40Specific encoding of data in memory or cache
    • G06F2212/401Compressed data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/62Details of cache specific to multiprocessor cache arrangements
    • G06F2212/621Coherency control relating to peripheral accessing, e.g. from DMA or I/O device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/657Virtual address space management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7208Multiple device management, e.g. distributing data over multiple flash devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy 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)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Multi Processors (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Memory System (AREA)
  • Bus Control (AREA)

Abstract

提供一种用于管理存储器资源的系统和方法。在一些实施例中,所述系统包括第一存储器服务器、第二存储器服务器以及连接到第一存储器服务器和第二存储器服务器的服务器链接交换机。第一服务器可包括高速缓存一致性交换机和第一存储器模块。在一些实施例中,第一存储器模块连接到高速缓存一致性交换机,并且高速缓存一致性交换机连接到服务器链接交换机。

Description

用于管理存储器资源的系统和方法
技术领域
根据本公开的实施例的一个或多个方面涉及计算系统,更具体地讲,涉及用于管理包括一个或多个服务器的系统中的存储器资源的系统和方法。
背景技术
本背景技术部分仅意在提供背景,并且本部分中的任何实施例或构思的公开不构成对所述实施例或构思是现有技术的承认。
一些服务器系统可包括通过网络协议连接的服务器的集合。这样的系统中的每个服务器可包括处理资源(例如,处理器)和存储器资源(例如,系统存储器)。在一些情况下,一个服务器的处理资源访问另一服务器的存储器资源可能是有利的,并且在使任一服务器的处理资源最小化的同时发生这种访问可能是有利的。
因此,存在对用于管理包括一个或多个服务器的系统中的存储器资源的改进的系统和方法的需要。
发明内容
在一些实施例中,数据存储和处理系统包括通过服务器链接交换机连接的一个或多个服务器和一个或多个存储器服务器。每个存储器服务器可包括通过高速缓存一致性交换机连接到服务器链接交换机的一个或多个存储器模块。每个存储器模块可包括为其提供增强能力的控制器(例如,现场可编程门阵列(FPGA)或专用集成电路(ASIC))。这些能力可包括使得服务器能够与存储器模块交互,而不必(例如,通过执行远程直接存储器访问(RDMA))访问处理器(诸如,中央处理器(CPU))。
根据本发明的实施例,提供一种系统,所述系统包括:第一存储器服务器,包括:高速缓存一致性交换机和第一存储器模块;以及第二存储器服务器;以及服务器链接交换机,连接到第一存储器服务器和第二存储器服务器,其中:第一存储器模块连接到高速缓存一致性交换机,并且高速缓存一致性交换机连接到服务器链接交换机。
在一些实施例中,服务器链接交换机被配置为:禁用第一存储器模块的电力。
在一些实施例中:服务器链接交换机被配置为:通过指示高速缓存一致性交换机禁用第一存储器模块的电力来禁用第一存储器模块的电力,并且高速缓存一致性交换机被配置为:在通过服务器链接交换机被指示禁用第一存储器模块的电力时,禁用第一存储器模块的电力。
在一些实施例中,高速缓存一致性交换机被配置为:在第一存储器模块内执行去重。
在一些实施例中,高速缓存一致性交换机被配置为:压缩数据并将压缩的数据存储在第一存储器模块中。
在一些实施例中,服务器链接交换机被配置为:查询第一存储器服务器的状态。
在一些实施例中,服务器链接交换机被配置为:通过智能平台管理接口(IPMI)查询第一存储器服务器的状态。
在一些实施例中,查询状态的步骤包括:查询从由电力状态、网络状态和错误检查状态组成的组选择的状态。
在一些实施例中,服务器链接交换机被配置为:对指向第一存储器服务器的高速缓存请求进行批处理。
在一些实施例中,所述系统还包括:第三存储器服务器,连接到服务器链接交换机,其中,服务器链接交换机被配置为:在存储在第一存储器服务器上的数据与存储在第三存储器服务器上的数据之间保持从由严格一致性、顺序一致性、因果一致性和处理器一致性组成的组选择的一致性水平。
在一些实施例中,高速缓存一致性交换机被配置为:监视存储器的第一区域的充满度,以及将数据从存储器的第一区域移动到存储器的第二区域,其中:存储器的第一区域在易失性存储器中,并且存储器的第二区域在持久性存储器中。
在一些实施例中,服务器链接交换机包括:外围组件互连快速(PCIe)交换机。
在一些实施例中,服务器链接交换机包括:计算快速链接(CXL)交换机。
在一些实施例中,服务器链接交换机包括:架顶式(ToR)CXL交换机。
在一些实施例中,服务器链接交换机被配置为:将数据从第二存储器服务器发送到第一存储器服务器,并且对数据执行流控制。
在一些实施例中,所述系统还包括:第三存储器服务器,连接到服务器链接交换机,其中:服务器链接交换机被配置为:从第二存储器服务器接收第一包,从第三存储器服务器接收第二包,以及将第一包和第二包发送到第一存储器服务器。
根据本发明的实施例,提供一种用于在计算系统中执行远程直接存储器访问的方法,所述计算系统包括:第一存储器服务器;第一服务器;第二服务器;以及服务器链接交换机,连接到第一存储器服务器、第一服务器和第二服务器,第一存储器服务器包括:高速缓存一致性交换机和第一存储器模块;第一服务器包括:存储程序的处理电路;第二服务器包括:存储程序的处理电路;所述方法包括:通过服务器链接交换机从第一服务器接收第一包;通过服务器链接交换机从第二服务器接收第二包;以及将第一包和第二包发送到第一存储器服务器。
在一些实施例中,所述方法还包括:通过高速缓存一致性交换机压缩数据,以及将数据存储在第一存储器模块中。
在一些实施例中,所述方法还包括:通过服务器链接交换机查询第一存储器服务器的状态。
根据本发明的实施例,提供一种系统,所述系统包括:第一存储器服务器,包括:高速缓存一致性交换机和第一存储器模块;以及第二存储器服务器;以及服务器链接交换装置,连接到第一存储器服务器和第二存储器服务器,其中:第一存储器模块连接到高速缓存一致交换机,并且高速缓存一致交换机连接到服务器链接交换装置。
附图说明
在此提供的附图仅用于示出特定实施例的目的;可能未被明确示出的其他实施例不排除在本公开的范围之外。
参照说明书、权利要求书和附图将领会和理解本公开的这些和其他特征和优点,其中:
图1A是根据本公开的实施例的用于使用高速缓存一致性连接将存储器资源附接到计算资源的系统的框图;
图1B是根据本公开的实施例的采用扩展插座适配器的用于使用高速缓存一致性连接将存储器资源连接到计算资源的系统的框图;
图1C是根据本公开的实施例的采用以太网ToR交换机的用于聚合存储器的系统的框图;
图1D是根据本公开的实施例的采用以太网ToR交换机和扩展插座适配器的用于聚合存储器的系统的框图;
图1E是根据本公开的实施例的用于聚合存储器的系统的框图;
图1F是根据本公开的实施例的采用扩展插座适配器的用于聚合存储器的系统的框图;
图1G是根据本公开的实施例的用于使服务器解聚合的系统的框图;
图2A是根据本公开的实施例的针对图1A至图1G中所示的实施例旁路处理电路来执行远程直接存储器访问(RDMA)传送的示例方法的流程图;
图2B是根据本公开的实施例的针对图1A至图1D中所示的实施例的在处理电路的参与下执行RDMA传送的示例方法的流程图;
图2C是根据本公开的实施例的针对图1E和图1F中所示的实施例的通过计算快速链接(CXL)交换机执行RDMA传送的示例方法的流程图;以及
图2D是根据本公开的实施例的针对图1G中所示的实施例的通过CXL交换机执行RDMA传送的示例方法的流程图。
具体实施方式
下面结合附图阐述的具体实施方式意在作为对根据本公开提供的用于管理存储器资源的系统和方法的示例性实施例的描述,而不意在表示本公开可被构造或利用的唯一形式。该描述结合示出的实施例阐述了本公开的特征。然而,应理解,相同或等同的功能和结构可通过也意在包括在公开的范围内的不同实施例来实现。如在此其他地方所表示的,相同的元件编号意在指示相同的元件或特征。
外围组件互连快速(PCIe)可表示可具有相对高的且可变的时延的计算机接口,这会限制其在与存储器进行连接时的有用性。CXL是用于通过PCIe5.0进行通信的开放行业标准,其可提供固定的、相对短的包(packet)大小,因此可能够提供相对高的带宽和相对低的、固定的时延。这样,CXL可能够支持高速缓存一致性,并且CXL可非常适合于与存储器进行连接。CXL还可用于提供主机与服务器中的加速器、存储器装置和网络接口电路(或者,“网络接口控制器”或“网络接口卡”(NIC))之间的连接。
例如在标量、矢量和缓冲存储器系统中,高速缓存一致性协议(诸如,CXL)也可被采用用于异构处理。CXL可用于利用通道、重定时器、系统的PHY(物理)层、接口的逻辑方面以及来自PCIe 5.0的协议来提供高速缓存一致性接口。CXL事务层可包括在单个链接上同时运行并且可被称为CXL.io、CXL.cache和CXL.memory(或CXL.mem)的三个复用的子协议。CXL.io可包括I/O语义,其可类似于PCIe。CXL.cache可包括高速缓存语义,CXL.memory可包括存储器语义;高速缓存语义和存储器语义两者可以是可选的。与PCIe一样,CXL可支持(i)x16、x8和x4的本机宽度,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包提供包交换(packet-switching)功能之外还具有更多能力的CXL交换机(在此称为“增强能力CXL交换机”)可用于将存储器的聚合连接到一个或多个中央处理器(或“中央处理电路”)以及一个或多个网络接口电路(其可具有增强能力)。这样的配置可使得(i)存储器的聚合可包括具有不同特性的各种类型的存储器,(ii)增强能力CXL交换机可将存储器的聚合虚拟化,并且将不同特性的数据(例如,访问频率)存储在适当类型的存储器中,(iii)增强能力CXL交换机可支持远程直接存储器访问(RDMA),使得RDMA可在很少或没有来自服务器的处理电路的参与的情况下被执行。如在此所使用的,将存储器“虚拟化”表示执行处理电路与存储器之间的存储器地址转换。
CXL交换机可(i)通过单级交换支持存储器和加速器解聚合,(ii)使得资源能够在域之间离线和在线,这可基于需求实现跨域的时间复用,以及(iii)支持下游端口的虚拟化。CXL可被采用以实现聚合的存储器,其可实现一对多和多对一交换(例如,它可能够(i)将多个根端口连接到一个端点,(ii)将一个根端口连接到多个端点,或(iii)将多个根端口连接到多个端点),在一些实施例中,聚合的装置被分区为多个逻辑装置,每个逻辑装置具有相应的LD-ID(逻辑装置标识符)。在这样的实施例中,物理装置可被分区为多个逻辑装置,每个逻辑装置对相应的发起者可见。装置可具有一个物理功能(PF)和多个(例如,16个)隔离的逻辑装置。在一些实施例中,逻辑装置的数量(例如,分区的数量)可被限制(例如,限制为16),并且一个控制分区(其可以是用于控制装置的物理功能)还可存在。
在一些实施例中,结构管理器(fabric manager)可被采用以(i)执行装置发现和虚拟CXL软件创建,以及(ii)将虚拟端口绑定到物理端口。这样的结构管理器可通过经由SMBus边带的连接来操作。结构管理器可以以硬件、或软件、或固件、或者以它们的组合来实现,并且结构管理器可驻留在例如主机中、存储器模块135之一中、或增强能力CXL交换机130中、或网络中的其他地方。结构管理器可发布命令,该命令包括通过边带总线或通过PCIe树发布的命令。
参照图1A,在一些实施例中,服务器系统包括通过架顶式(top of rack,ToR)以太网交换机110连接在一起的多个服务器105。虽然这个交换机被描述为使用以太网协议,但是任何其他合适的网络协议可被使用。每个服务器包括一个或多个处理电路115,每个处理电路115连接到(i)系统存储器120(例如,双倍数据速率(版本4)(DDR4)存储器或任何其他合适的存储器)、(ii)一个或多个网络接口电路(例如,100GbE NIC)125、以及(iii)一个或多个CXL存储器模块135。每个处理电路115可以是存储程序的处理电路(例如,中央处理器(CPU(例如,x86 CPU)、图形处理器(GPU)或ARM处理器)。在一些实施例中,网络接口电路125可嵌入在存储器模块135之一中(例如,在与存储器模块135之一相同的半导体芯片上,或在与存储器模块135之一相同的模块中),或者网络接口电路125可与存储器模块135分开封装。
如在此所使用的,“存储器模块”是包括一个或多个存储器裸片(die)的封装(例如,包括印刷电路板和连接到其的组件的封装,或包括印刷电路板的外壳(enclosure)),每个存储器裸片包括多个存储器单元。每个存储器裸片或存储器裸片组的集合中的每个可在焊接到存储器模块的印刷电路板(或通过连接器连接到存储器模块的印刷电路板)的封装(例如,环氧树脂模制化合物(epoxy mold compoun,EMC)封装)中。每个存储器模块135可具有CXL接口,并且可包括用于在CXL包与存储器裸片的存储器接口之间对例如适合于存储器模块135中的存储器的存储器技术的信号进行转换的控制器137(例如,FPGA、ASIC、处理器等)。如在此所使用的,存储器裸片的“存储器接口”是存储器裸片的技术固有的接口,例如,在DRAM的情况下,例如存储器接口可以是字线和位线。如下面进一步详细描述的,存储器模块还可包括可提供增强能力的控制器137。存储器模块135中的每个的控制器137可通过高速缓存一致性接口(例如,通过CXL接口)连接到处理电路115。控制器137还可旁路处理电路115来促进不同服务器105之间的数据传输(例如,RDMA请求)。ToR以太网交换机110和网络接口电路125可包括RDMA接口,以促进不同服务器上的CXL存储器装置之间的RDMA请求(例如,ToR以太网交换机110和网络接口电路125可提供通过融合以太网(RoCE)、无限带宽(Infiniband)和iWARP包的RDMA的硬件卸载或硬件加速)。
系统中的CXL互连可符合高速缓存一致性协议(诸如,CXL1.1标准),或者在一些实施例中,系统中的CXL互连可符合CXL2.0标准、未来版本的CXL或任何其他合适的协议(例如,高速缓存一致性协议)。存储器模块135可如所示出的直接附接到处理电路115,并且架顶式以太网交换机110可用于(例如,使用更大数量的服务器105)将系统缩放到更大的尺寸。
在一些实施例中,如图1A中所示,每个服务器可填有多个直接附接的CXL存储器模块135。每个存储器模块135可将一组基地址寄存器(BAR)暴露给主机的基本输入/输出系统(BIOS)作为存储器范围。存储器模块135中的一个或多个可包括用于透明地管理其在主机OS映射幕后的存储器空间的固件。存储器模块135中的每个可包括存储器技术中的一个或组合,所述存储器技术包括例如(但不限于)动态随机存取存储器(DRAM)、非与(NAND)闪存、高带宽存储器(HBM)和低功率双倍数据速率同步动态随机存取存储器(LPDDR SDRAM)技术,并且还可包括用于不同技术存储器装置(用于将不同技术的多个存储器装置进行组合的存储器模块135)的单独的相应的分离控制器或高速缓存控制器。每个存储器模块135可包括不同的接口宽度(x4至x16),并且可根据各种相关形状因子(例如,U.2、M.2、半高半长(halfheight,half length,HHHL)、全高半长(full height,half length,FHHL)、E1.S、E1.L、E3.S和E3.H)中的任何一种来构造。
在一些实施例中,如上所述,增强能力CXL交换机130(如图1C至图1G中所示)包括FPGA(或ASIC)控制器137,并且提供除了CXL包的交换之外的附加特征。增强能力CXL交换机130的控制器137还可充当存储器模块135的管理装置,并帮助主机控制平面处理,并且它可实现丰富的控制语义和统计。控制器137可包括附加的“后门(backdoor)”(例如,100千兆比特以太网(GbE))网络接口电路125。在一些实施例中,控制器137作为CXL类型2装置呈现给处理电路115,其使得能够在接收到远程写入请求时向处理电路115发出高速缓存无效指令。在一些实施例中,DDIO技术被启用,并且远程数据首先被拉取到处理电路的末级高速缓存(LLC),并且稍后(从高速缓存)被写入到存储器模块135。如在此所使用的,“类型2”CXL装置是这样的CXL装置:可发起事务并且实现可选的一致性高速缓存和主机管理的装置存储器,并且针对其适用的事务类型包括所有CXL.cache和所有CXL.mem事务。
如上所述,存储器模块135中的一个或多个可包括持久性存储器或“持久性存储装置”(即,当外部电力断开连接时其内的数据不会丢失的存储装置)。如果存储器模块135被呈现为持久性装置,则存储器模块135的控制器137可管理持久性域,例如,其可将由处理电路115识别为需要持久性存储的数据存储在持久性存储装置中(例如,作为应用对对应的操作系统功能进行调用的结果)。在这样的实施例中,软件API可将高速缓存和数据冲刷(flush)到持久性存储装置。
在一些实施例中,从网络接口电路125到存储器模块135的直接存储器传送被启用。这样的传送可以是到远程存储器的单向(one-way)传送,以用于分布式系统中的快速通信。在这样的实施例中,存储器模块135可向系统中的网络接口电路125暴露硬件细节以实现更快的RDMA传送。在这样的系统中,取决于处理电路115的数据直接I/O(DDIO)是被启用还是被禁用,可发生两种场景。DDIO可实现以太网控制器或以太网适配器与处理电路115的高速缓存之间的直接通信。如果处理电路115的DDIO被启用,则传送的目标可以是处理电路的末级高速缓存,数据可随后从该末级高速缓存自动冲刷到存储器模块135。如果处理电路115的DDIO被禁用,则存储器模块135可在装置偏置模式下操作为强制访问,以由目的地存储器模块135直接接收(在没有DDIO的情况下)。具有主机通道适配器(HCA)、缓冲器和其他处理的RDMA能力的网络接口电路125可被采用以实现这样的RDMA传送,其可旁路可能在RDMA传送的其他模式下存在的目标存储器缓冲器传送。例如,在这样的实施例中,可避免使用回弹缓冲器(例如,当存储器中的最终目的地在不被RDMA协议支持的地址范围中时,远程服务器中的缓冲器)。在一些实施例中,RDMA使用除以太网之外的另一物理介质选项(例如,用于与被配置为处理其他网络协议的交换机一起使用)。可启用RDMA的服务器间连接的示例包括(但不限于)无限宽带、通过融合以太网的RDMA(RDMA over Converged Ethernet,RoCE)(其使用以太网用户数据报协议(User Datagram Protocol 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从装置)),使得PCIe接口所连接到的处理电路115(其可作为PCIe主装置或“根端口”来操作)可通过用于端点PCIe连接的根端口与其通信,并且存储器模块135的控制器137可通过点对点PCIe连接与其通信。
根据本发明的实施例,提供一种系统,所述系统包括:第一服务器,包括:存储程序的处理电路、第一网络接口电路和第一存储器模块,其中:第一存储器模块包括:第一存储器裸片和控制器,控制器通过存储器接口连接到第一存储器裸片,通过高速缓存一致性接口连接到存储程序的处理电路,并且连接到第一网络接口电路。在一些实施例中,第一存储器模块还包括第二存储器裸片,第一存储器裸片包括易失性存储器,并且第二存储器裸片包括持久性存储器。在一些实施例中,持久性存储器包括NAND闪存。在一些实施例中,控制器被配置为:提供持久性存储器的闪存转换层。在一些实施例中,高速缓存一致性接口包括:计算快速链接(CXL)接口。在一些实施例中,第一服务器包括:扩展插座适配器,连接到第一服务器的扩展插座,扩展插座适配器包括:第一存储器模块;以及第一网络接口电路。在一些实施例中,第一存储器模块的控制器通过扩展插座连接到存储程序的处理电路。在一些实施例中,扩展插座包括M.2插座。在一些实施例中,第一存储器模块的控制器通过点对点外围组件互连快速(PCIe)连接连接到第一网络接口电路。在一些实施例中,所述系统还包括:第二服务器;以及网络交换机,连接到第一服务器和第二服务器。在一些实施例中,网络交换机包括架顶式(ToR)以太网交换机。在一些实施例中,第一存储器模块的控制器被配置为:接收直接远程直接存储器访问(RDMA)请求,并且发送直接RDMA响应。在一些实施例中,第一存储器模块的控制器被配置为:通过网络交换机并通过第一网络接口电路接收直接远程直接存储器访问(RDMA)请求,并且通过网络交换机并通过第一网络接口电路发送直接RDMA响应。在一些实施例中,第一存储器模块的控制器被配置为:从第二服务器接收数据;将数据存储在第一存储器模块中;以及将用于使高速缓存行无效的命令发送到存储程序的处理电路。在一些实施例中,第一存储器模块的控制器包括:现场可编程门阵列(FPGA)或专用集成电路(ASIC)。根据本发明的实施例,提供一种用于在计算系统中执行远程直接存储器访问的方法,所述计算系统包括:第一服务器和第二服务器,第一服务器包括:存储程序的处理电路、网络接口电路和包括控制器的第一存储器模块,所述方法包括:通过第一存储器模块的控制器接收直接远程直接存储器访问(RDMA)请求;以及通过第一存储器模块的控制器发送直接RDMA响应。在一些实施例中,计算系统还包括:以太网交换机,连接到第一服务器和第二服务器,并且接收直接RDMA请求的步骤包括:通过以太网交换机接收直接RDMA请求。在一些实施例中,所述方法还包括:通过第一存储器模块的控制器从存储程序的处理电路接收针对第一存储器地址的读取命令,通过第一存储器模块的控制器将第一存储器地址转换为第二存储器地址,以及通过第一存储器模块的控制器在第二存储器地址获取来自第一存储器模块的数据。在一些实施例中,所述方法还包括:通过第一存储器模块的控制器接收数据,通过第一存储器模块的控制器将数据存储在第一存储器模块中,以及通过第一存储器模块的控制器将用于使高速缓存行无效的命令发送到存储程序的处理电路。根据本发明的实施例,提供一种系统,所述系统包括:第一服务器,包括:存储程序的处理电路、第一网络接口电路和第一存储器模块,其中:第一存储器模块包括:第一存储器裸片和控制器装置,控制器装置:通过存储器接口连接到第一存储器裸片,通过高速缓存一致性接口连接到存储程序的处理电路,并且连接到第一网络接口电路。
参照图1C,在一些实施例中,服务器系统包括通过架顶式(ToR)以太网交换机110连接在一起的多个服务器105。每个服务器包括一个或多个处理电路115,每个处理电路115连接到:(i)系统存储器120(例如,DDR4存储器)、(ii)一个或多个网络接口电路125、以及(iii)增强能力CXL交换机130。增强能力CXL交换机130可连接到多个存储器模块135。也就是说,图1C的系统包括第一服务器105,第一服务器105包括存储程序的处理电路115、网络接口电路125、高速缓存一致性交换机130(其可以是增强能力CXL交换机)和第一存储器模块135。在图1C的系统中,第一存储器模块135连接到高速缓存一致性交换机130,高速缓存一致性交换机130连接到网络接口电路125,存储程序的处理电路115连接到高速缓存一致性交换机130。
存储器模块135可按类型、形状因子或技术类型(例如,DDR4、DRAM、LPDDR、高带宽存储器(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)基于工作负荷将数据路由(route)到不同的存储器类型,(ii)将主机地址虚拟化为装置地址,和/或(iii)旁路处理电路115来促进不同服务器之间的RDMA请求。
存储器模块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或LPDDR存储器。存储器模块135可被分区或包含用于处理多种存储器类型的高速缓存控制器。存储器模块135可处于不同的形状因子,形状因子的示例包括但不限于HHHL、FHHL、M.2、U.2、夹层卡、子卡、E1.S、E1.L、E3.L和E3.S。
在一些实施例中,系统实现包括多个服务器的聚合架构,其中,每个服务器与多个CXL附接的存储器模块135聚合。存储器模块135中的每个可包含多个分区,这些分区可作为存储器装置单独地暴露给多个处理电路115。增强能力CXL交换机130的每个输入端口可独立地访问增强能力CXL交换机130的多个输出端口和与其连接的存储器模块135。如在此所使用的,增强能力CXL交换机130的“输入端口”或“上游端口”是连接到(或适合于连接到)PCIe根端口的端口,并且增强能力CXL交换机130的“输出端口”或“下游端口”是连接到(或适合于连接到)PCIe端点的端口。如在图1A的实施例的情况下那样,每个存储器模块135可将基地址寄存器(BAR)的集合暴露给主机BIOS作为存储器范围。存储器模块135中的一个或多个可包括用于透明地管理其在主机OS映射幕后的存储器空间的固件。
在一些实施例中,如上所述,增强能力CXL交换机130包括FPGA(或ASIC)控制器137,并且提供超出CXL包的交换的附加特征。例如,增强能力CXL交换机130可(如上所述)将存储器模块135虚拟化(即,作为转换层操作,转换层在处理电路侧地址(或“处理器侧”地址,即,包括在由处理电路115发出的存储器读取命令和写入命令中的地址)与存储器侧地址之间进行转换)(即,将由增强能力CXL交换机130采用的地址转换为存储器模块135中的地址存储位置),从而掩蔽(mask)存储器模块135的物理地址并呈现存储器的虚拟聚合。增强能力CXL交换机130的控制器137还可充当存储器模块135的管理装置,并且促进主机控制平面处理。控制器137可在没有处理电路115的参与的情况下透明地移动数据,并相应地更新存储器映射(或“地址转换表”),使得后续访问如预期的那样起作用。控制器137可包含交换机管理装置,交换机管理装置(i)可适当地在运行时期间将上游连接和下游连接绑定和将上游连接和下游连接解除绑定,并且(ii)可实现与进出存储器模块135的数据传送相关联的丰富的控制语义和统计。控制器137可包括用于连接到其他服务器105或其他联网装置的附加的“后门”100GbE或其他网络接口电路125(除了用于连接到主机的网络接口之外)。在一些实施例中,控制器137作为类型2装置呈现给处理电路115,在接收到远程写入请求时,它使得能够向处理电路115发出高速缓存无效指令。在一些实施例中,DDIO技术被启用,并且远程数据首先被拉到处理电路115的末级高速缓存(LLC),并且稍后(从高速缓存)被写入到存储器模块135。
如上所述,存储器模块135中的一个或多个可包括持久性存储装置。如果存储器模块135被呈现为持久性装置,则增强能力CXL交换机130的控制器137可管理持久域(例如,它可将由处理电路115(例如,通过使用对应的操作系统功能)识别为需要持久性存储的数据存储在持久性存储装置中)。在这样的实施例中,软件API可将高速缓存和数据冲刷到持久性存储装置。
在一些实施例中,到存储器模块135的直接存储器传送可以以与上面针对图1A和图1B的实施例描述的方式类似的方式执行,由存储器模块135的控制器执行的操作通过增强能力CXL交换机130的控制器137执行。
如上所述,在一些实施例中,存储器模块135被组织成组,例如,组织成存储器密集的一个组、重HBM的另一组、具有有限密度和性能的另一组、以及具有密集容量的另一组。这样的组可具有不同的形状因子或者基于不同的技术。增强能力CXL交换机130的控制器137可基于例如工作负荷、标记或服务质量(QoS)智能地路由数据和命令。对于读取请求,可能不存在基于这样的因素的路由。
增强能力CXL交换机130的控制器137还可(如上所述)将处理电路侧地址和存储器侧地址虚拟化,使得增强能力CXL交换机130的控制器137可确定数据将被存储在哪。增强能力CXL交换机130的控制器137可基于其可从处理电路115接收的信息或指令来做出这样的确定。例如,操作系统可提供存储器分配特征,存储器分配特征使得应用可指定低时延存储装置、或高带宽存储装置、或者持久性存储装置将被分配,并且由应用发起的这样的请求然后可通过增强能力CXL交换机130的控制器137考虑确定在何处(例如,在哪个存储器模块135中)分配存储器。例如,通过应用请求高带宽的存储装置可在包含HBM的存储器模块135中被分配,通过应用请求数据持久性的存储装置可在包含NAND闪存的存储器模块135中被分配,并且其他存储装置(应用没有对其进行请求)可存储在包含相对廉价的DRAM的存储器模块135上。在一些实施例中,增强能力CXL交换机130的控制器137可基于网络使用模式来做出关于在何处存储特定数据的确定。例如,增强能力CXL交换机130的控制器137可通过监视使用模式来确定特定范围的物理地址中的数据比其他数据被更频繁地访问,然后增强能力CXL交换机130的控制器137可将这些数据复制到包含HBM的存储器模块135中,并修改其地址转换表,使得新位置中的数据被存储在相同范围的虚拟地址中。在一些实施例中,存储器模块135中的一个或多个包括闪存(例如,NAND闪存),增强能力CXL交换机130的控制器137实现这个闪存的闪存转换层。闪存转换层可支持处理器侧存储器位置的重写(通过将数据移动到不同的位置并将数据的先前位置标记为无效),并且它可执行垃圾收集(例如,当块中被标记为无效的数据的分数超过阈值时,在将块中的任何有效数据移动到另一块之后,擦除块)。
在一些实施例中,增强能力CXL交换机130的控制器137可促进物理功能(PF)到PF传送。例如,如果处理电路115中的一个处理电路需要将数据从一个物理地址移动到另一物理地址(其可具有相同的虚拟地址;该事实不需要影响处理电路115的操作),或者如果处理电路115需要在(处理电路115将需要具有的)两个虚拟地址之间移动数据,则增强能力CXL交换机130的控制器137可监督传送,而没有处理电路115的参与。例如,处理电路115可发送CXL请求,并且数据可在增强能力CXL交换机130之后从一个存储器模块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中的每个连接到服务器链接交换机112的实施例,其中,如所示出的,服务器链接交换机112可以是具有PCIe能力的PCIe5.0CXL交换机。服务器链接交换机112可被称为ToR服务器链接交换机。服务器链接交换机112可包括FPGA或ASIC,并且可(在吞吐量和时延方面)提供优于以太网交换机的性能的性能。服务器105中的每个可包括通过增强能力CXL交换机130和通过多个PCIe连接器连接到服务器链接交换机112的多个存储器模块135。如所示出的,服务器105中的每个还可包括一个或多个处理电路115和系统存储器120。如下面进一步详细讨论的,服务器链接交换机112可作为主装置(master)操作,并且增强能力CXL交换机130中的每个可作为从装置(slave)操作。
在图1E的实施例中,服务器链接交换机112可对从不同服务器105接收的多个高速缓存请求进行分组或批处理,并且它可对包进行分组,从而减少控制开销。增强能力CXL交换机130可包括从控制器(例如,从FPGA或从ASIC),从控制器用于(i)基于工作负荷将数据路由到不同的存储器类型,(ii)将处理器侧地址虚拟化为存储器侧地址,以及(iii)旁路处理电路115来促进不同服务器105之间的一致性请求。图1E中所示的系统可以是基于CXL2.0的,它可包括机架内的分布式共享存储器,并且它可使用服务器链接交换机112来与远程节点进行本地连接。
服务器链接交换机112可具有用于对其他服务器或对客户端进行连接的附加网络连接(例如,如所示出的以太网连接,或另一种类的连接(例如,无线连接(诸如,WiFi连接或5G连接)))。服务器链接交换机112和增强能力CXL交换机130可各自包括控制器,该控制器可以是或包括处理电路(诸如,ARM处理器)。PCIe接口可符合PCIe 5.0标准或符合早期版本或未来版本的PCIe标准,或者符合不同标准(例如,NVDIMM-P、CCIX或OpenCAPI)的接口可被采用来代替PCIe接口。存储器模块135可包括包含DDR4 DRAM、HBM、LPDDR、NAND闪存或固态驱动器(SSD)的各种存储器类型。存储器模块135可被分区或包含用于处理多种存储器类型的高速缓存控制器,并且它们可处于不同的形状因子(诸如,HHHL、FHHL、M.2、U.2、夹层卡、子卡、E1.S、E1.L、E3.L或E3.S)。
在图1E的实施例中,增强能力CXL交换机130可实现一对多和多对一交换,并且它可在微片(flit)(64字节)级别实现细粒度加载-存储接口。每个服务器可具有聚合的存储器装置,每个装置被分区为多个逻辑装置,每个逻辑装置具有相应的LD-ID。服务器链接交换机112实现一对多功能,并且服务器105中的增强能力CXL交换机130实现多对一功能。服务器链接交换机112可以是PCIe交换机或CXL交换机或两者。在这样的系统中,请求者可以是多个服务器105的处理电路115,响应者可以是许多聚合的存储器模块135。两个交换机(如上所述,主交换机是服务器链接交换机112,并且从交换机是增强能力CXL交换机130)的层次结构实现任意-任意通信。存储器模块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)或符合Redfish标准(并且还可提供标准不需要的附加特征)的接口。
如上所述,一些实施例实现分层结构以提供加载-存储接口(即,具有高速缓存行(例如,64字节)粒度并且在一致性域内进行操作而无需软件驱动器参与的接口),分层结构具有作为服务器链接交换机112的一部分的主控制器(其可在FPGA或ASIC中实现)、以及作为增强能力CXL交换机130的一部分的从控制器。这样的加载-存储接口可将一致性域扩展到超出单个服务器或CPU或主机,并且可涉及电或光的物理介质(例如,在两端具有电到光收发器的光学连接)。在操作中,主控制器(在服务器链接交换机112中)启动(或“重新启动”)并配置机架上的所有服务器105。主控制器可对所有主机具有可见性,并且它可(i)发现每个服务器并发现服务器集群中存在多少服务器105和存储器模块135,(ii)独立地配置服务器105中的每个,(iii)基于例如机架的配置来启用或禁用不同服务器上的存储器的一些块(例如,启用或禁用存储器模块135中的任何一个),(iv)控制访问(例如,哪个服务器可控制哪个其他服务器),(v)实施流控制(例如,由于所有主机和装置请求都通过主装置,因此流控制可将数据从一个服务器发送到另一服务器,并对数据执行流控制),(vi)对请求或包(例如,主装置从不同服务器105接收多个高速缓存请求)进行分组或批处理,以及(vii)接收远程软件更新、广播通信等。在批处理模式下,服务器链接交换机112可接收去往同一服务器(例如,去往第一服务器)的多个包,并将它们一起(即,在它们之间没有暂停的情况下)发送到第一服务器。例如,服务器链接交换机112可从第二服务器接收第一包,并且从第三服务器接收第二包,并且将第一包和第二包一起发送到第一服务器。服务器105中的每个可向主控制器暴露(i)IPMI网络接口、(ii)系统事件日志(SEL)、以及(iii)板管理控制器(BMC),使得主控制器能够测量性能,测量运行中的可靠性,并且重新配置服务器105。
在一些实施例中,使用促进高可用性的加载-存储接口的软件架构。这样的软件架构可提供可靠性、复制性、一致性(consistency)、系统一致性(system coherence)、哈希(hashing)、高速缓存和持久性。软件架构可通过经由IPMI执行CXL装置组件的周期性硬件检查来提供可靠性(在具有大量服务器的系统中)。例如,服务器链接交换机112可通过存储器服务器150的查询例如电力状态(存储器服务器150的电源是否正常操作)、网络状态(到服务器链接交换机112的接口是否正常操作)和错误检查状态(在存储器服务器150的任何子系统中是否存在错误状况)的IPMI接口来查询存储器服务器150的状态。软件架构可提供复制,因为主控制器可复制存储在存储器模块135中的数据并且横跨副本保持数据一致性。
软件架构可提供一致性,因为主控制器可用不同的一致性水平被配置,并且服务器链接交换机112可根据将被保持的一致性水平来调整包的格式。例如,如果最终一致性被保持,则服务器链接交换机112可对请求进行重新排序,而为了保持严格的一致性,服务器链接交换机112可保持在交换机的具有精确时间戳的所有请求的记分板。软件架构可提供系统一致性,因为多个处理电路115可从同一存储器地址读取或写入同一存储器地址,并且为了保持一致性,主控制器可负责(使用目录查找)到达地址的归属节点或在公共总线上广播请求。
软件架构可提供哈希,因为服务器链接交换机112和增强能力CXL交换机130可保持地址的虚拟映射,其可使用具有多个哈希功能的一致性哈希来在启动时将数据均匀地映射到横跨所有节点的所有CXL装置(或者当一个服务器发生故障或出现时进行调整)。软件架构可提供高速缓存,因为主控制器可(例如,在包括HBM或具有类似能力的技术的存储器模块135中)指定特定存储器分区以充当高速缓存(例如,采用直写(write-through)高速缓存或回写(write-back)高速缓存)。软件架构可提供持久性,因为主控制器和从控制器可管理持久性域和冲刷。
在一些实施例中,CXL交换机130的能力被集成到存储器模块135的控制器中。在这样的实施例中,服务器链接交换机112仍然可充当主装置并且具有如在此其他地方所讨论的增强特征。服务器链接交换机112还可管理系统中的其他存储装置,并且它可具有以太网连接(例如,100GbE连接),用于连接到例如不是由服务器链接交换机112形成的PCIe网络的一部分的客户端机器。
在一些实施例中,服务器链接交换机112具有增强能力,并且还包括集成的CXL控制器。在其他实施例中,服务器链接交换机112仅是物理路由装置,并且每个服务器105包括主CXL控制器。在这样的实施例中,横跨不同的服务器的主装置可协商主-从架构。(i)增强能力CXL交换机130的和(ii)服务器链接交换机112的智能功能可以以一个或多个FPGA、一个或多个ASIC、一个或多个ARM处理器、或者具有计算能力的一个或多个SSD装置实现。服务器链接交换机112可例如通过对独立请求进行重新排序来执行流控制。在一些实施例中,因为接口是加载-存储,所以RDMA是可选的,但是可存在使用PCIe物理介质(代替100GbE)的中间的RDMA请求。在这样的实施例中,远程主机可发起RDMA请求,该请求可通过服务器链接交换机112被发送到增强能力CXL交换机130。服务器链接交换机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连接到网络接口电路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中的每个连接到服务器链接交换机112的实施例,其中,如所示出的,服务器链接交换机112可以是PCIe 5.0CXL交换机。如在图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中所示的系统可以是基于CXL2.0的,图1G中所示的系统可包括机架内的可组合和解聚合的共享存储器,并且图1G中所示的系统可使用服务器链接交换机112将池化的(即,聚合的)存储器提供给远程装置。
服务器链接交换机112可具有用于连接到其他服务器或客户端的附加网络连接(例如,如所示出的以太网连接,或另一种类的连接(例如,无线连接(诸如,WiFi连接或5G连接)))。服务器链接交换机112和增强能力CXL交换机130可各自包括控制器,该控制器可以是或包括处理电路(诸如,ARM处理器)。PCIe接口可符合PCIe 5.0标准或符合早期版本或未来版本的PCIe标准,或者不同的标准(例如,NVDIMM-P、CCIX或OpenCAPI)可被采用来代替PCIe。存储器模块135可包括各种存储器类型,各种存储器类型包括DDR4 DRAM、HBM、LPDDR、NAND闪存和固态驱动器(SSD)。存储器模块135可被分区或包含用于处理多种存储器类型的高速缓存控制器,并且它们可以以不同的形状因子(诸如,HHHL、FHHL、M.2、U.2、夹层卡、子卡、E1.S、E1.L、E3.L或E3.S)。
在图1G的实施例中,增强能力CXL交换机130可实现一对多和多对一交换,并且它可在微片(64字节)级别实现细粒度加载-存储接口。每个存储器服务器150可具有聚合的存储器装置,每个装置被分区为多个逻辑装置,每个逻辑装置具有相应的LD-ID。增强能力CXL交换机130可包括控制器137(例如,ASIC或FPGA)以及用于装置发现、枚举、分区和表示物理地址范围的电路(其可与这样的ASIC或FPGA分离或者是这样的ASIC或FPGA的部分)。每个存储器模块135可具有一个物理功能(PF)和多达16个隔离的逻辑装置。在一些实施例中,逻辑装置的数量(例如,分区的数量)可被限制(例如,限制为16),并且一个控制分区(其可以是用于控制该装置的物理功能)还可存在。存储器模块135中的每个可以是具有cx1.cache、cx1.mem和cx1.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)通过电源门控实现对存储器装置的存储的动态重新配置。例如,服务器链接交换机112可(通过指示增强能力CXL交换机130禁用存储器模块135的电力)禁用存储器模块135之一的电力(即,关闭电力或降低电力)。在被服务器链接交换机112指示禁用存储器模块的电力时,增强能力CXL交换机130可然后禁用存储器模块135的电力。这样的禁用可节省电力,并且它可提高存储器服务器150中的其他存储器模块135的性能(例如,吞吐量和时延)。每个远程服务器105可基于协商看到存储器模块135以及它们的连接的不同逻辑视图。增强能力CXL交换机130的控制器137可保持状态,使得每个远程服务器保持分配的资源和连接,并且它可(使用可配置的组块(chunk)大小)执行存储器的压缩或去重(deduplication)以节省存储器容量。图1G的解聚合的机架可具有其自己的BMC。它还可向远程装置暴露IPMI网络接口和系统事件日志(SEL),使主装置(例如,使用由存储器服务器150提供的存储装置的远程服务器)能够测量运行中的性能和可靠性,并且重新配置解聚合的机架。图1G的解聚合的机架可以以与在此针对图1E的实施例描述的方式类似的方式提供可靠性、复制性、一致性、系统一致性、哈希、高速缓存和持久性,例如,一致性用从同一存储器地址读取或写入同一存储器地址的多个远程服务器被提供,并且每个远程服务器用不同的一致性水平被配置。在一些实施例中,服务器链接交换机保持存储在第一存储器服务器上的数据与存储在第二存储器服务器上的数据之间的最终一致性。服务器链接交换机112可为不同的服务器对保持不同的一致性水平;例如,服务器链接交换机112还可在存储在第一存储器服务器上的数据与存储在第三存储器服务器上的数据之间保持严格一致性、顺序一致性、因果一致性或处理器一致性的一致性水平。系统可采用“本地带”(服务器链接交换机112)和“全局带”(解聚合的服务器)域中的通信。写入可被冲刷到“全局带”以对来自其他服务器的新的读取可见。增强能力CXL交换机130的控制器137可针对每个远程服务器单独地管理持久域和进行冲刷。例如,高速缓存一致性交换器可监视存储器的第一区域(易失性存储器,作为高速缓存操作)的充满度,并且当充满度水平超过阈值时,高速缓存一致性交换器可将数据从存储器的第一区域移动到存储器的第二区域,存储器的第二区域在持久性存储器中。流控制可被处理,因为优先级可通过增强能力CXL交换机130的控制器137在远程服务器之中建立,以呈现不同的感知时延和带宽。
根据本发明的实施例,提供一种系统,所述系统包括:第一存储器服务器,包括:高速缓存一致性交换机和第一存储器模块;第二存储器服务器;以及服务器链接交换机,连接到第一存储器服务器和第二存储器服务器,其中:第一存储器模块连接到高速缓存一致性交换机,并且高速缓存一致性交换机连接到服务器链接交换机。在一些实施例中,服务器链接交换机被配置为:禁用第一存储器模块的电力。在一些实施例中,服务器链接交换机被配置为:通过指示高速缓存一致性交换机禁用第一存储器模块的电力来禁用第一存储器模块的电力,并且高速缓存一致性交换机被配置为:在通过服务器链接交换机被指示禁用第一存储器模块的电力时,禁用第一存储器模块的电力。在一些实施例中,高速缓存一致性交换机被配置为:在第一存储器模块内执行去重。在一些实施例中,高速缓存一致性交换机被配置为:压缩数据并将压缩的数据存储在第一存储器模块中。在一些实施例中,服务器链接交换机被配置为:查询第一存储器服务器的状态。在一些实施例中,服务器链接交换机被配置为:通过智能平台管理接口(IPMI)查询第一存储器服务器的状态。在一些实施例中,查询状态的步骤包括:查询从由电力状态、网络状态和错误检查状态组成的组选择的状态。在一些实施例中,服务器链接交换机被配置为:对指向第一存储器服务器的高速缓存请求进行批处理。在一些实施例中,所述系统还包括:第三存储器服务器,连接到服务器链接交换机,其中,服务器链接交换机被配置为:在存储在第一存储器服务器上的数据与存储在第三存储器服务器上的数据之间保持从由严格一致性、顺序一致性、因果一致性和处理器一致性组成的组选择的一致性水平。在一些实施例中,高速缓存一致性交换机被配置为:监视存储器的第一区域的充满度,以及将数据从存储器的第一区域移动到存储器的第二区域,其中:存储器的第一区域在易失性存储器中,并且存储器的第二区域在持久性存储器中。在一些实施例中,服务器链接交换机包括:外围组件互连快速(PCIe)交换机。在一些实施例中,服务器链接交换机包括:计算快速链接(CXL)交换机。在一些实施例中,服务器链接交换机包括:架顶式(ToR)CXL交换机。在一些实施例中,服务器链接交换机被配置为:将数据从第二存储器服务器发送到第一存储器服务器,并且对数据执行流控制。在一些实施例中,所述系统还包括:第三存储器服务器,连接到服务器链接交换机,其中:服务器链接交换机被配置为:从第二存储器服务器接收第一包,从第三存储器服务器接收第二包,以及将第一包和第二包发送到第一存储器服务器。根据本发明的实施例,提供一种用于在计算系统中执行远程直接存储器访问的方法,所述计算系统包括:第一存储器服务器;第一服务器;第二服务器;以及服务器链接交换机,连接到第一存储器服务器、第一服务器和第二服务器,第一存储器服务器包括:高速缓存一致性交换机和第一存储器模块;第一服务器包括:存储程序的处理电路;第二服务器包括:存储程序的处理电路;所述方法包括:通过服务器链接交换机从第一服务器接收第一包;通过服务器链接交换机从第二服务器接收第二包;以及将第一包和第二包发送到第一存储器服务器。在一些实施例中,所述方法还包括:通过高速缓存一致性交换机压缩数据,以及将数据存储在第一存储器模块中。在一些实施例中,所述方法还包括:通过服务器链接交换机查询第一存储器服务器的状态。根据本发明的实施例,提供一种系统,所述系统包括:第一存储器服务器,包括:高速缓存一致性交换机和第一存储器模块;以及第二存储器服务器;以及服务器链接交换装置,连接到第一存储器服务器和第二存储器服务器,其中:第一存储器模块连接到高速缓存一致性交换机,并且高速缓存一致性交换机连接到服务器链接交换装置。
图2A至图2D是各种实施例的流程图。在这些流程图的实施例中,处理电路115是CPU;在其他实施例中,它们可以是其他处理电路(例如,GPU)。参照图2A,图1A和图1B的实施例的存储器模块135的控制器137,或者图1C至图1G的任何实施例的增强能力CXL交换机130可跨过处理电路115进行虚拟化,并且对另一服务器105中的增强能力CXL交换机130发起RDMA请求,以在服务器105之间来回移动数据,而不涉及任一服务器中的处理电路115(在虚拟化通过增强能力CXL交换机130的控制器137被处理的情况下)。例如,在205,存储器模块135的控制器137或增强能力CXL交换机130生成对附加远程存储器(例如,CXL存储器或聚合的存储器)的RDMA请求;在210,存储器模块135的控制器137或增强能力CXL交换机130旁路处理电路115,将RDMA请求发送到ToR以太网交换机110(其可具有RDMA接口);在215,ToR以太网交换机110经由对远程的聚合的存储器的RDMA访问旁路远程处理电路115,通过存储器模块135的控制器137或通过远程增强能力CXL交换机130(例如,通过远程增强能力CXL交换机130的控制器137)将RDMA请求路由到远程服务器105来进行处理;在220,ToR以太网交换机110经由RDMA旁路本地处理电路115,接收处理的数据并将数据路由到本地存储器模块135,或者路由到本地增强能力CXL交换机130;在222,图1A和图1B的实施例的存储器模块135的控制器137或增强能力CXL交换机130直接接收RDMA响应(例如,在RDMA响应不通过处理电路115被转发的情况下)。
在这样的实施例中,远程存储器模块135的控制器137或远程服务器105的增强能力CXL交换机130被配置为:接收直接远程直接存储器访问(RDMA)请求并发送直接RDMA响应。如在此所使用的,远程存储器模块135的控制器137接收“直接RDMA请求”或增强能力CXL交换机130接收“直接RDMA请求”(或“直接地”接收这样的请求)表示通过远程存储器模块135的控制器137或通过增强能力CXL交换机130接收这样的请求,而它们不通过远程服务器105的处理电路115转发或另外处理,通过远程存储器模块135的控制器137或通过增强能力CXL交换机130发送“直接RDMA响应”(或“直接地”发送这样的请求)表示发送这样的响应,而它们不被远程服务器105的处理电路115转发或另外处理。
参照图2B,在另一实施例中,可在远程服务器105的处理电路115参与数据的处理的情况下执行RDMA。例如,在225,处理电路115可通过以太网发送数据或工作负荷请求;在230,ToR以太网交换机110可接收请求并将其路由到多个服务器105中的对应服务器105;在235,可通过网络接口电路125的一个或多个端口(例如,启用100GbE的NIC)在服务器内接收请求;在240,处理电路115(例如,x86处理电路)可从网络接口电路125接收请求;在245,处理电路115可经由CXL2.0协议使用DDR和附加的存储器资源来(例如,一起)处理请求,以共享存储器(在图1A和图1B的实施例中,其可以是聚合的存储器)。
参照图2C,在图1E和图1F的实施例中,可在远程服务器105的处理电路115参与数据的处理的情况下执行RDMA。例如,在225,处理电路115可通过以太网或PCIe发送数据或工作负荷请求;在230,ToR PCIe5交换机112(服务器链接交换机)可接收请求并将其路由到多个服务器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连接器传播到PCIe5交换机112,然后PCIe5交换机112将请求发送到机架上的第二服务器的第二PCIe连接器;在256,第二处理电路115(例如,x86处理电路)从第二PCIe连接器接收请求;在258,第二处理电路115可经由CXL 2.0协议使用第二DDR和第二附加存储器资源来一起处理请求(例如,存储器内容的获取),以共享聚合的存储器;在260,第二处理电路(例如,x86处理电路)经由相应的PCIe连接器并通过PCIe5交换机112将请求的结果发送回原始处理电路。
参照图2D,在图1G的实施例中,可在远程服务器105的处理电路115参与数据的处理的情况下执行RDMA。例如;在225,处理电路115可通过以太网发送数据或工作负荷请求;在230,ToR PCIe5 CXL交换机112可接收请求并将其路由到多个服务器105中的对应服务器105;在235,可在服务器内通过网络接口电路125的一个或多个端口(例如,启用的100GbENIC)接收请求。在262,存储器模块135从PCIe连接器接收请求;在264,存储器模块135的控制器使用本地存储器来处理请求;在250,存储器模块135的控制器137识别从不同服务器访问存储器内容(例如,聚合的存储器内容)的要求;在252,存储器模块135的控制器137经由CXL协议从不同服务器发送对所述存储器内容(例如,聚合的存储器内容)的请求;在254,该请求通过本地PCIe连接器传播到ToR PCIe5 CXL交换机112,然后ToR PCIe5CXL交换机112将请求发送到机架上的第二服务器的第二PCIe连接器;在266,第二PCIe连接器经由CXL协议提供访问以共享聚合的存储器,来允许存储器模块135的控制器137获取存储器内容。
如在此所使用的,“服务器”是包括至少一个存储程序的处理电路(例如,处理电路115)、至少一个存储器资源(例如,系统存储器120)和至少一个用于提供网络连接的电路(例如,网络接口电路125)的计算系统。如在此所使用的,某物的“一部分”表示该物的“至少一些”,因此,可表示少于该物的全部或表示该物的全部。因此,物的“一部分”包括整个物作为特殊情况,即,整个物是该物的一部分的示例。
在本公开部分的背景技术部分中提供的背景技术仅被包括以设置上下文,并且该部分的内容不被承认是现有技术。(例如,在在此包括的任何系统图中的)描述的任何组件或组件的任何组合可用于执行在此包括的任何流程图的操作中的一个或多个。此外,(i)操作是示例操作,并且可涉及未明确包括的各种附加步骤,并且(ii)操作的时间顺序可被改变。
在此使用术语“处理电路”或“控制器装置”表示用于处理数据或数字信号的硬件、固件和软件的任何组合。处理电路硬件可包括例如专用集成电路(ASIC)、通用或专用中央处理器(CPU)、数字信号处理器(DSP)、图形处理单元(GPU)以及可编程逻辑器件(诸如,现场可编程门阵列(FPGA))。在处理电路中,如在此所使用的,每个功能由被配置(即,硬连线)为执行所述功能的硬件执行,或由被配置为执行存储在非暂时性存储介质中的指令的更通用的硬件(诸如,CPU)执行。处理电路可被制造在单个印刷电路板(PCB)上或者分布在多个互连的PCB上。处理电路可包含其他处理电路,例如,处理电路可包括在PCB上互连的两个处理电路(FPGA和CPU)。
如在此所使用的,“控制器”包括电路,并且控制器也可被称为“控制电路”或“控制器电路”。类似地,“存储器模块”也可被称为“存储器模块电路”或“存储器电路”。如在此所使用的,术语“阵列”是指数字的有序集合,而不管如何存储(例如,是存储在连续的存储器位置中还是存储在链表中)。如在此所使用的,当第二数字“在”第一数字的“Y%”内”时,表示第二数字是第一数字的至少(1-Y/100)倍,并且第二数字是第一数字的最多(1+Y/100)倍。如在此所使用的,术语“或”应解释为“和/或”,使得例如“A或B”表示“A”或“B”或者“A和B”中的任一个。
如在此所使用的,当方法(例如,调整)或第一数量(例如,第一变量)被称为“基于”第二数量(例如,第二变量)时,它表示第二数量是对方法的输入或影响第一数量,例如,第二数量可以是对计算第一数量的功能的输入(例如,唯一输入或多个输入之一),或者第一数量可等于第二数量,或者第一数量可与(例如,存储在存储器中的相同的一个或多个位置的)第二数量相同。
将理解,尽管在此可使用术语“第一”、“第二”、“第三”等来描述各种元件、组件、区域、层和/或部分,但是这些元件、组件、区域、层和/或部分不应受这些术语的限制。这些术语仅用于将一个元件、组件、区域、层或部分与另一元件、组件、区域、层或部分区分开来。因此,在不脱离发明构思的精神和范围的情况下,在此讨论的第一元件、第一组件、第一区域、第一层或第一部分可被称为第二元件、第二组件、第二区域、第二层或第二部分。
为了便于描述,在此可使用诸如“在……之下”、“在……下方”、“下面的”、“在……下面”、“在……之上”、“上面的”等的空间相对术语来描述如附图中所示的一个元件或特征与另一元件或特征的关系。将理解,这样的空间相对术语意在包含除了附图中描述的方向之外的装置在使用或操作中的不同方向。例如,如果附图中的装置被翻转,则描述为“在”其他元件或特征“之下”或“下方”的元件将位于其他元件或特征“之上”。因此,示例术语“在……下方”和“在……下面”可包含“在……之上”和“在……下方”两种方向。装置可被另外定位(旋转90度或在其他方向),并且在此使用的空间相对描述符被相应地解释。此外,还将理解,当层被称为“在”两个层“之间”时,它可以是两个层之间的唯一层,或者一个或多个中间层也可存在。
在此使用的术语仅用于描述特定实施例的目的,并不意在限制本发明构思。如在此所使用的,术语“基本上”、“约”和类似术语用作近似术语而不是程度术语,并且意在考虑本领域普通技术人员将认识到的测量或计算值的固有偏差。如在此所使用的,除非上下文另外清楚地指示,否则单数形式也意在包括复数形式。还将理解,当在本说明书中使用术语“包括”和/或“包含”时,指定存在叙述的特征、整体、步骤、操作、元件和/或组件,但并不排除存在或添加一个或多个其他特征、整体、步骤、操作、元件、组件和/或它们的组。如在此所使用的,术语“和/或”包括相关联的所列项目中的一个或多个的任何组合和所有组合。当诸如“……中的至少一个”的表达在一列元素之后时修饰整列元素,而不修饰列的单个元素。此外,在描述发明构思的实施例时使用“可”表示“本公开的一个或多个实施例”。此外,术语“示例性”意在表示示例或说明。如在此所使用的,术语“使用”及其变型可被认为与术语“利用”及其变型同义。
将理解,当元件或层被称为“在”另一元件或层“上”、“连接到”、“结合到”或“邻近于”另一元件或层时,所述元件或层可直接在另一元件或层上、连接到、结合到或邻近于所述另一元件或层,或者可存在一个或多个中间元件或层。相反,当元件或层被称为“直接在”另一元件或层“上”、“直接连接到”、“直接结合到”或“紧邻”另一元件或层时,不存在中间元件或层。
在此列举的任何数值范围意在包含包括在所列举的范围内的相同数值精度的所有子范围。例如,“1.0至10.0”或“1.0与10.0之间”的范围意在包括所列举的最小值1.0与所列举的最大值10.0之间(并且包括所列举的最小值1.0和所列举的最大值10.0)的所有子范围(即,具有等于或大于1.0的最小值和等于或小于10.0的最大值,诸如,例如,2.4至7.6)。在此所列举的任何最大数值限制意在包含包括在其中的所有较低数值限制,并且本说明书中所列举的任何最小数值限制意在包含包括在其中的所有较高数值限制。
尽管在此已经具体描述和示出用于管理存储器资源的系统和方法的示例性实施例,但是对于本领域技术人员来说,许多修改和变化将是清楚的。因此,将理解,根据本公开的原理构造的用于管理存储器资源的系统和方法可以以不同于在此具体描述的方式来体现。发明还在所附权利要求及其等同物中限定。

Claims (20)

1.一种用于管理存储器资源的系统,包括:
第一存储器服务器,包括:高速缓存一致性交换机和第一存储器模块;以及
第二存储器服务器;以及
服务器链接交换机,连接到第一存储器服务器和第二存储器服务器,
其中:
第一存储器模块经由第一接口连接到高速缓存一致性交换机,并且
高速缓存一致性交换机经由与第一接口不同的第二接口连接到服务器链接交换机,
其中,服务器链接交换机与高速缓存一致性交换机形成分层结构,以提供加载-存储接口,分层结构具有作为服务器链接交换机的一部分的主控制器以及作为高速缓存一致性交换机的一部分的从控制器。
2.根据权利要求1所述的系统,其中,服务器链接交换机被配置为:禁用第一存储器模块的电力。
3.根据权利要求2所述的系统,其中:
服务器链接交换机被配置为:通过指示高速缓存一致交换机禁用第一存储器模块的电力来禁用第一存储器模块的电力,并且
高速缓存一致性交换机被配置为:在通过服务器链接交换机被指示禁用第一存储器模块的电力时,禁用第一存储器模块的电力。
4.根据权利要求1所述的系统,其中,高速缓存一致性交换机被配置为:在第一存储器模块内执行去重。
5.根据权利要求1所述的系统,其中,高速缓存一致性交换机被配置为:压缩数据并将压缩的数据存储在第一存储器模块中。
6.根据权利要求1所述的系统,其中,服务器链接交换机被配置为:查询第一存储器服务器的状态。
7.根据权利要求6所述的系统,其中,服务器链接交换机被配置为:通过智能平台管理接口(IPMI)查询第一存储器服务器的状态。
8.根据权利要求7所述的系统,其中,查询状态的步骤包括:查询从由电力状态、网络状态和错误检查状态组成的组选择的状态。
9.根据权利要求1所述的系统,其中,服务器链接交换机被配置为:对指向第一存储器服务器的高速缓存请求进行批处理。
10.根据权利要求1所述的系统,还包括:第三存储器服务器,连接到服务器链接交换机,
其中,服务器链接交换机被配置为:在存储在第一存储器服务器上的数据与存储在第三存储器服务器上的数据之间保持从由严格一致性、顺序一致性、因果一致性和处理器一致性组成的组选择的一致性水平。
11.根据权利要求1所述的系统,其中,高速缓存一致性交换机被配置为:
监视存储器的第一区域的充满度,以及
将数据从存储器的第一区域移动到存储器的第二区域,
其中:
存储器的第一区域在易失性存储器中,并且
存储器的第二区域在持久性存储器中。
12.根据权利要求1所述的系统,其中,服务器链接交换机包括:外围组件互连快速(PCIe)交换机。
13.根据权利要求1所述的系统,其中,服务器链接交换机包括:计算快速链接(CXL)交换机。
14.根据权利要求13所述的系统,其中,服务器链接交换机包括:架顶式(ToR)CXL交换机。
15.根据权利要求1所述的系统,其中,服务器链接交换机被配置为:将数据从第二存储器服务器发送到第一存储器服务器,并且对数据执行流控制。
16.根据权利要求1所述的系统,还包括:第三存储器服务器,连接到服务器链接交换机,其中:
服务器链接交换机被配置为:
从第二存储器服务器接收第一包,
从第三存储器服务器接收第二包,以及
将第一包和第二包发送到第一存储器服务器。
17.一种用于在计算系统中执行远程直接存储器访问的方法,所述计算系统包括:
第一存储器服务器;
第一服务器;
第二服务器;以及
服务器链接交换机,连接到第一存储器服务器、第一服务器和第二服务器,
第一存储器服务器包括:高速缓存一致性交换机和第一存储器模块,其中,第一存储器模块经由第一接口连接到高速缓存一致性交换机,并且高速缓存一致性交换机经由与第一接口不同的第二接口连接到服务器链接交换机;
第一服务器包括:存储程序的处理电路;
第二服务器包括:存储程序的处理电路;
所述方法包括:
通过服务器链接交换机从第一服务器接收第一包;
通过服务器链接交换机从第二服务器接收第二包;以及
将第一包和第二包发送到第一存储器服务器;
其中,服务器链接交换机与高速缓存一致性交换机形成分层结构,以提供加载-存储接口,分层结构具有作为服务器链接交换机的一部分的主控制器以及作为高速缓存一致性交换机的一部分的从控制器。
18.根据权利要求17所述的方法,还包括:
通过高速缓存一致性交换机压缩数据,以及
将数据存储在第一存储器模块中。
19.根据权利要求17所述的方法,还包括:
通过服务器链接交换机查询第一存储器服务器的状态。
20.一种用于管理存储器资源的系统,包括:
第一存储器服务器,包括:高速缓存一致性交换机和第一存储器模块;以及
第二存储器服务器;以及
服务器链接交换装置,连接到第一存储器服务器和第二存储器服务器,
其中:
第一存储器模块经由第一接口连接到高速缓存一致性交换机,并且
高速缓存一致性交换机经由与第一接口不同的第二接口连接到服务器链接交换装置,
其中,服务器链接交换装置与高速缓存一致性交换机形成分层结构,以提供加载-存储接口,分层结构具有作为服务器链接交换装置的一部分的主控制器以及作为高速缓存一致性交换机的一部分的从控制器。
CN202110472003.5A 2020-05-28 2021-04-29 用于管理存储器资源的系统和方法 Active CN113810312B (zh)

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/026,087 2020-09-18
US17/026,087 US11461263B2 (en) 2020-04-06 2020-09-18 Disaggregated memory server

Publications (2)

Publication Number Publication Date
CN113810312A CN113810312A (zh) 2021-12-17
CN113810312B true CN113810312B (zh) 2023-12-19

Family

ID=74859383

Family Applications (4)

Application Number Title Priority Date Filing Date
CN202110472003.5A Active CN113810312B (zh) 2020-05-28 2021-04-29 用于管理存储器资源的系统和方法
CN202110578313.5A Pending CN113742259A (zh) 2020-05-28 2021-05-26 用于管理存储器资源的系统和方法
CN202110584677.4A Pending CN113742257A (zh) 2020-05-28 2021-05-27 计算系统及用于在其中执行远程直接存储器访问的方法
CN202110585663.4A Pending CN113746762A (zh) 2020-05-28 2021-05-27 具有高速缓存相干存储器和服务器链接交换机的系统

Family Applications After (3)

Application Number Title Priority Date Filing Date
CN202110578313.5A Pending CN113742259A (zh) 2020-05-28 2021-05-26 用于管理存储器资源的系统和方法
CN202110584677.4A Pending CN113742257A (zh) 2020-05-28 2021-05-27 计算系统及用于在其中执行远程直接存储器访问的方法
CN202110585663.4A Pending CN113746762A (zh) 2020-05-28 2021-05-27 具有高速缓存相干存储器和服务器链接交换机的系统

Country Status (6)

Country Link
US (1) US20210373951A1 (zh)
EP (4) EP3916563A1 (zh)
JP (3) JP2021190121A (zh)
KR (4) KR20210147865A (zh)
CN (4) CN113810312B (zh)
TW (4) TW202147123A (zh)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11656967B2 (en) * 2020-02-13 2023-05-23 MemRay Corporation Method and apparatus for supporting persistence and computing device
US20210373951A1 (en) * 2020-05-28 2021-12-02 Samsung Electronics Co., Ltd. Systems and methods for composable coherent devices
US20210311871A1 (en) 2020-04-06 2021-10-07 Samsung Electronics Co., Ltd. System and method for aggregating server memory
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
US20220318065A1 (en) * 2021-04-02 2022-10-06 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
WO2022261200A1 (en) * 2021-06-09 2022-12-15 Enfabrica Corporation Multi-plane, multi-protocol memory switch fabric with configurable transport
US11782832B2 (en) * 2021-08-25 2023-10-10 Vmware, Inc. Low latency host processor to coherent device interaction
US11632337B1 (en) * 2021-10-11 2023-04-18 Cisco Technology, Inc. Compute express link over ethernet in composable data centers
TWI818385B (zh) * 2021-12-16 2023-10-11 神雲科技股份有限公司 儲存設備
US20230205705A1 (en) * 2021-12-23 2023-06-29 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
US20230281128A1 (en) * 2022-03-03 2023-09-07 Samsung Electronics Co., Ltd. Cache-coherent interconnect based near-data-processing accelerator
CN115982078A (zh) * 2023-01-19 2023-04-18 北京超弦存储器研究院 一种cxl内存模组及内存存储系统
CN116466879B (zh) * 2023-03-17 2023-12-29 北京超弦存储器研究院 一种cxl内存模组、内存数据的置换方法及计算机系统
CN116886751B (zh) * 2023-09-04 2024-01-19 浪潮(北京)电子信息产业有限公司 一种异构设备的高速通信方法、装置和异构通信系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110134329A (zh) * 2018-02-08 2019-08-16 阿里巴巴集团控股有限公司 用于使用来自退役服务器的dimm来促进高容量共享存储器的方法和系统
CN110659230A (zh) * 2018-06-28 2020-01-07 英特尔公司 高速缓存监视

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
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
US20130318308A1 (en) * 2012-05-24 2013-11-28 Sonics, Inc. Scalable cache coherence for a network on a chip
US20140195672A1 (en) * 2013-01-09 2014-07-10 Microsoft Corporation Automated failure handling through isolation
KR102430561B1 (ko) * 2015-09-11 2022-08-09 삼성전자주식회사 듀얼 포트 디램을 포함하는 메모리 모듈
US10944842B2 (en) * 2016-05-27 2021-03-09 Home Box Office, Inc. Cached data repurposing
US20180024964A1 (en) * 2016-07-19 2018-01-25 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
WO2020000316A1 (zh) * 2018-06-28 2020-01-02 华为技术有限公司 容错处理的方法、装置和服务器
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
US11379254B1 (en) * 2018-11-18 2022-07-05 Pure Storage, Inc. Dynamic configuration of a cloud-based storage system
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
US11573900B2 (en) * 2019-09-11 2023-02-07 Intel Corporation Proactive data prefetch with applied quality of service
US20200104275A1 (en) * 2019-12-02 2020-04-02 Intel Corporation Shared memory space among devices
US20210373951A1 (en) * 2020-05-28 2021-12-02 Samsung Electronics Co., Ltd. Systems and methods for composable coherent devices

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110134329A (zh) * 2018-02-08 2019-08-16 阿里巴巴集团控股有限公司 用于使用来自退役服务器的dimm来促进高容量共享存储器的方法和系统
CN110659230A (zh) * 2018-06-28 2020-01-07 英特尔公司 高速缓存监视

Also Published As

Publication number Publication date
EP3916566B1 (en) 2024-05-08
JP2021190121A (ja) 2021-12-13
TW202213104A (zh) 2022-04-01
KR20210147865A (ko) 2021-12-07
EP3916565A1 (en) 2021-12-01
KR20210147871A (ko) 2021-12-07
TW202145025A (zh) 2021-12-01
EP3916563A1 (en) 2021-12-01
CN113742259A (zh) 2021-12-03
CN113742257A (zh) 2021-12-03
JP2021190123A (ja) 2021-12-13
TW202213105A (zh) 2022-04-01
CN113746762A (zh) 2021-12-03
TW202147123A (zh) 2021-12-16
KR20210147867A (ko) 2021-12-07
EP3916566A1 (en) 2021-12-01
CN113810312A (zh) 2021-12-17
US20210373951A1 (en) 2021-12-02
JP2021190125A (ja) 2021-12-13
EP3916564A1 (en) 2021-12-01
KR20210147911A (ko) 2021-12-07

Similar Documents

Publication Publication Date Title
CN113810312B (zh) 用于管理存储器资源的系统和方法
US11416431B2 (en) System with cache-coherent memory and server-linking switch
US11526304B2 (en) Memcached server functionality in a cluster of data processing nodes
US10140245B2 (en) Memcached server functionality in a cluster of data processing nodes
US20210374056A1 (en) Systems and methods for scalable and coherent memory devices
US9648102B1 (en) Memcached server functionality in a cluster of data processing nodes
US11720290B2 (en) Memcached server functionality in a cluster of data processing nodes
KR20190112626A (ko) 어레이 내에서 솔리드 스테이트 드라이브들을 자율적으로 관리하는 메커니즘
US11860783B2 (en) Direct swap caching with noisy neighbor mitigation and dynamic address range assignment
WO2023172319A1 (en) Direct swap caching with noisy neighbor mitigation and dynamic address range assignment

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
GR01 Patent grant
GR01 Patent grant