CN115687193A - 存储模块、包括其的系统以及存储模块的操作方法 - Google Patents

存储模块、包括其的系统以及存储模块的操作方法 Download PDF

Info

Publication number
CN115687193A
CN115687193A CN202210821174.9A CN202210821174A CN115687193A CN 115687193 A CN115687193 A CN 115687193A CN 202210821174 A CN202210821174 A CN 202210821174A CN 115687193 A CN115687193 A CN 115687193A
Authority
CN
China
Prior art keywords
memory
storage
storage area
controller
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202210821174.9A
Other languages
English (en)
Inventor
李宗键
苏镇麟
权容硕
金京守
尹一权
赵正显
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
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN115687193A publication Critical patent/CN115687193A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • 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/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • G06F13/4081Live connection to bus, e.g. hot-plugging
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • 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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0615Address space extension
    • G06F12/063Address space extension for I/O modules, e.g. memory mapped I/O
    • 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/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/387Information transfer, e.g. on bus using universal interface adapter for adaptation of different data processing systems to different peripheral devices, e.g. protocol converters for incompatible systems, open system
    • 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/4063Device-to-bus coupling
    • G06F13/409Mechanical coupling
    • 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/0604Improving or facilitating administration, e.g. storage management
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0634Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • G06F9/30189Instruction operation extension or modification according to execution mode, e.g. mode flag
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/08Word line control circuits, e.g. drivers, boosters, pull-up circuits, pull-down circuits, precharging circuits, for word lines
    • 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
    • G06F12/0835Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means for main memory peripheral accesses (e.g. I/O or DMA)
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • G06F12/1441Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a range
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/145Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being virtual, e.g. for virtual blocks or segments before a translation mechanism
    • 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/30Providing cache or TLB in specific location of a processing system
    • G06F2212/302In image processor or graphics adapter
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/45Caching of specific data in cache memory
    • G06F2212/454Vector or matrix 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/50Control mechanisms for virtual memory, cache or TLB
    • G06F2212/502Control mechanisms for virtual memory, cache or TLB using adaptive policy
    • 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)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Advance Control (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

提供了存储模块、包括其的系统以及存储模块的操作方法。所述存储模块包括设备存储器以及控制器,所述设备存储器被配置为存储数据,并且包括第一存储区域和第二存储区域,所述控制器包括加速器电路。所述控制器被配置为:控制所述设备存储器;响应于模式改变请求,向主机处理器发送用于从系统存储器映射排除所述第一存储区域的命令;并且修改存储配置寄存器,以从所述存储配置寄存器排除所述第一存储区域。所述加速器电路被配置为使用所述第一存储区域来执行加速操作。

Description

存储模块、包括其的系统以及存储模块的操作方法
相关申请的交叉引用
本申请要求于2021年7月23日在韩国知识产权局提交的韩国专利申请No.10-2021-0096985的优先权的权益,所述韩国专利申请的公开内容通过引用全部合并于此。
技术领域
本公开的示例实施例涉及存储模块以及包括存储模块的系统。
背景技术
近来,随着人工智能和大数据在各个领域越来越多地使用,待处理的数据量已经大大增加。为了克服计算系统的存储容量的物理限制,已经开发了各种技术。在这样的技术当中,存在计算快速链路(COMPUTE EXPRESS LINK,CXL),它是一种在高性能计算系统中更有效地利用与CPU一起使用的加速器、存储器和存储设备(storage device)的接口。加速器是专门用于执行特定功能的硬件模块(例如,处理器)。专门化可以提高性能和能源效率。
发明内容
本公开的示例实施例提供一种存储模块,所述存储模块可以可变地将专门用于系统存储器的存储区域的一部分改变为专门用于加速操作。
在本公开的示例实施例中,存储模块包括:设备存储器,所述设备存储器被配置为存储数据并且包括第一存储区域和第二存储区域;以及控制器,所述控制器包括加速器电路,其中,所述控制器被配置为:控制所述设备存储器,响应于模式改变请求,向主机处理器发送用于从系统存储器映射排除所述第一存储区域的命令,并且修改存储配置寄存器,以从所述存储配置寄存器排除所述第一存储区域,其中,所述加速器电路被配置为使用所述第一存储区域来执行加速操作。
在本公开的示例实施例中,系统包括:第一存储器;控制器,所述控制器被配置为直接与所述第一存储器通信;第二存储器;以及处理器,所述处理器被配置为直接与所述第二存储器通信并且通过异构计算接口与所述控制器通信,其中,所述处理器被配置为从系统存储器映射排除所述第一存储器的第一存储区域,其中,所述控制器被配置为从存储配置寄存器排除所述第一存储区域,并且其中,所述第一存储区域被配置为在从所述系统存储器映射被排除和从所述存储配置寄存器被排除之后,从用于系统存储器改变为专门用于加速操作。
在本公开的示例实施例中,操作存储模块的方法包括:控制器接收第一模式改变请求,所述第一模式改变请求用于将设备存储器的第一存储区域设置为专门用于加速操作;所述控制器响应于所述第一模式改变请求,识别所述设备存储器并且发送用于从系统存储器映射排除所述第一存储区域的命令;以及所述控制器修改存储配置寄存器,以从所述存储配置寄存器排除所述第一存储区域。
附图说明
根据以下结合附图的详细描述,将更清楚地理解本公开的以上以及其他方面、特征和优点,在附图中:
图1是示出根据本公开的示例实施例的系统的框图;
图2是示出根据本公开的示例实施例的系统的框图;
图3是示出根据本公开的示例实施例的系统的框图;
图4是示出根据本公开的示例实施例的操作系统的方法的流程图;
图5A和图5B是示出根据本公开的示例实施例的存储模块的图;
图6是示出根据本公开的示例实施例的系统存储器映射的图;
图7是示出根据本公开的另一示例实施例的操作系统的方法的流程图;
图8至图10是示出根据本公开的示例实施例的操作系统的方法的图;
图11是示出根据本公开的另一示例实施例的操作系统的方法的流程图;
图12至图14是示出根据本公开的示例实施例的操作系统的方法的图;
图15是示出根据本公开的示例实施例的操作系统的方法的流程图;
图16是示出根据本公开的示例实施例的系统存储器映射的图;
图17是示出根据本公开的示例实施例的操作系统的方法的图;
图18和图19是示出根据本公开的示例实施例的操作系统的方法的图;
图20和图21是示出根据本公开的示例实施例的操作系统的方法的图;
图22是示出根据本公开的示例实施例的应用了服务器系统的数据中心的框图;
图23是示出根据本公开的示例实施例的异构计算接口的图。
具体实施方式
在下文中,将参考附图如下地描述本公开的示例实施例。
图1是示出根据示例实施例的系统的框图。
参考图1,系统100可以被配置为计算系统(或包括在计算系统中的组件),计算系统包括彼此通信的设备110和主机处理器120。例如,系统100可以被包括在诸如台式计算机、服务器、自助服务终端(kiosk)等的固定计算系统中,或者可以被包括在诸如膝上型计算机、移动电话、可穿戴设备等的便携式计算系统中。此外,在示例实施例中,系统100可以被包括在片上系统(SoC)或系统级封装件(SiP)中,其中,设备110和主机处理器120被实现在芯片或封装件中。如图1所示,系统100可以包括设备110、主机处理器120、设备附加存储器(device-attached memory)130和主机存储器140。在示例实施例中,系统100可以不包括设备附加存储器130。参考图1,设备110和主机处理器120可以经由链路(link)150彼此通信,并且可以经由链路150相互发送或接收消息和/或数据。
将参考基于支持COMPUTE EXPRESS LINK(CXL)协议的CXL规范的链路150来描述示例实施例,但是设备110和主机处理器120可以基于诸如以下项的一致性互连(coherentinterconnect)技术彼此通信:XBus协议、NVLink协议、无限结构协议(infinity fabricprotocol)、用于加速器的高速缓存一致性互连(CCIX)协议、一致性加速器处理器接口(CAPI)等。
在示例实施例中,链路150可以支持多种协议,并且消息和/或数据可以通过多种协议来传送。例如,链路150可以支持CXL协议,其包括非一致性协议(例如,CXL.io)、一致性协议(例如,CXL.cache)和存储访问协议(或存储协议,诸如CXL.mem)。在示例实施例中,链路150可以支持诸如以下协议:外围组件互连(PCI)、快速PCI(PCIe)、通用串行总线(USB)、串行高级技术附件(SATA)等。在示例实施例中,链路150支持的协议可以被称为互连协议。
设备110可以指向主机处理器120提供功能的设备。在示例实施例中,参考CXL规范2.0,设备110可以对应于支持CXL规范的加速器或用于存储器扩展器的存储器缓冲器。
当设备110作为加速器操作时,在主机处理器120上执行的软件可以将计算和/或输入/输出(I/O)操作的至少一部分卸载到设备110。在示例实施例中,作为加速器操作的设备110可以包括可编程组件(诸如图形处理单元(GPU)、神经处理单元(NPU))、提供固定功能的组件(诸如知识产权(IP)核)、以及可重构组件(诸如现场可编程门阵列(FPGA))。如图1所示,设备110可以包括物理层111、多协议复用器(MUX)112、接口电路113和加速器电路114,并且可以与设备附加存储器130通信。
加速器电路114可以在设备110内执行提供给主机处理器120的功能,并且可以被称为加速器逻辑。当设备附加存储器130如图1所示被包括在系统100中时,加速器电路114可以与设备附加存储器130通信,并且可以基于链路150的非从属协议(protocolinsubordinate)(即,设备专用协议)与设备附加存储器130通信。此外,如图1所示,加速器电路114可以使用多种协议通过接口电路113与主机处理器120通信。加速器电路114可以包括例如可以用于补充主机处理器120的功能的协处理器或集成电路。
接口电路113可以基于用于加速器电路114与主机处理器120之间的通信的消息和/或数据,来确定多种协议之一。接口电路113可以连接到多协议复用器112中包括的至少一个协议队列,并且可以经由至少一个协议队列向主机处理器120发送消息和/或数据,以及可以从主机处理器120接收消息和/或数据。在示例实施例中,接口电路113和多协议复用器112可以集成为单个组件。在示例实施例中,多协议复用器112可以包括分别与链路150支持的多种协议相对应的多个协议队列。此外,在示例实施例中,多协议复用器112可以在不同协议的通信之间进行仲裁,并且可以向物理层111提供所选择的通信。在示例实施例中,物理层111可以通过单个互连、总线、迹线等连接到主机处理器120的物理层121。
当设备110作为存储器缓冲器操作时,主机处理器120可以识别和连接设备110,并且可以访问设备110的内存池(memory pool)。在示例实施例中,设备附加存储器130可以实现为各种类型存储器,诸如例如,存储级存储器(SCM,storage class memory)。存储级存储器可以具有非易失性存储器和易失性存储器二者的特性,并且可以以字节为单位被访问。例如,存储级存储器可以包括相变RAM(PCM)、铁电RAM(FeRAM)、磁性RAM(MRAM)、电阻RAM(RRAM)、STT-MRAM等。
主机处理器120可以被配置为系统100的主处理器,诸如例如,中央处理单元(CPU),并且在示例实施例中可以对应于CXL规范的主机处理器(或主机)。如图1所示,主机处理器120可以连接到主机存储器140,并且可以包括物理层121、多协议复用器122、接口电路123、一致性/高速缓存电路124、总线电路125、至少一个核126以及输入/输出装置127。
至少一个核126可以执行指令,并且可以连接到一致性/高速缓存电路124。一致性/高速缓存电路124可以包括高速缓存层次结构,并且可以被称为一致性/高速缓存逻辑。如图1所示,一致性/高速缓存电路124可以与至少一个核126和一个接口电路123通信。例如,一致性/高速缓存电路124可以通过包括一致性协议和存储访问协议的两种或更多种协议实现通信。在示例实施例中,一致性/高速缓存电路124可以包括直接存储器访问(DMA)电路。输入/输出装置127可以用于与总线电路125通信。例如,总线电路125可以被配置为PCIe逻辑装置,并且输入/输出装置127可以被配置为PCIe输入/输出装置。
接口电路123可以实现主机处理器120的组件(诸如例如,一致性/高速缓存电路124和总线电路125)与设备110之间的通信。在示例实施例中,接口电路123可以根据多种协议(诸如,非一致性协议(CXL.io)、一致性协议(CXL.cache)和存储协议(CXL.memory)),在主机处理器120的组件与设备110之间实现消息和/或数据的通信。例如,接口电路123可以基于用于在设备110与主机处理器120的组件之间通信的消息和/或数据来确定多种协议之一。
多协议复用器122可以包括至少一个协议队列。接口电路123可以连接到至少一个协议队列,并且可以通过至少一个协议队列向设备110发送消息和/或数据,以及可以从设备110接收消息和/或数据。在示例实施例中,接口电路123和多协议复用器122可以彼此集成为单个组件。在示例实施例中,多协议复用器122可以包括分别与链路150支持的多种协议相对应的多个协议队列。此外,在示例实施例中,多协议复用器122可以在不同协议的通信之间进行调解(mediate),并且可以向物理层121提供所选择的通信。
CXL可以支持非一致性协议(CXL.io)、一致性协议(CXL.cache)和存储协议(CXL.memory)之间的动态复用。非一致性协议(CXL.io)可以用于诸如以下功能:非一致性加载存储、使用生产者-消费者语义的设备发现、配置、初始化、I/O虚拟化和直接存储器访问(DMA)等。
一致性协议(CXL.cache)可以使设备使用简单的请求和响应协议来高速缓存来自主机存储器的数据。主机处理器可以使用监听消息(snoop message)来管理高速缓存在设备上的数据的一致性。
存储协议(CXL.memory)可以使主机处理器访问共享的设备存储器。存储协议(CXL.memory)事务可以是简单的存储器加载,并且可以存储在主机处理器下游执行的事务。CXL可以在主机处理器(CPU)与附加到CXL设备的存储器之间保持一致的统一存储空间,使得CPU和设备二者可以共享资源以提高性能并且降低软件栈(software stack)复杂性。
在示例实施例中,作为用于存储器扩展的存储器缓冲器操作的设备的存储区域的一部分可以被改变为用作存储加速操作所需的数据的区域。加速操作是由加速器以比诸如主机处理器120的通用处理器更有效的方式执行特定功能的处理。如果需要,存储在该存储区域中的数据可以移动到另一个存储区域。在移动数据之后,可以从系统存储器映射排除该存储区域,并且可以改变设备中包括的存储配置寄存器(memory configurationregister)中的信息。因此,用于系统存储器的存储区域的一部分可以改变为专门用于加速操作。此外,专门用于加速计算的存储区域可以改变为用作系统存储区域。当数据被移动时,现有数据可能被恢复到该存储区域。因此,可以自适应地改变设备的存储区域的使用,从而提高系统的效率。加速操作是由加速器以比诸如主机处理器120的通用处理器更有效的方式执行特定功能的处理。例如,加速操作可以包括密码操作、数字信号处理操作、图形处理操作、数据包处理操作、人工智能(AI)相关处理操作等。
图2是示出根据示例实施例的系统的框图。
参考图2,系统200可以包括设备210、主机处理器220、设备存储器230和主机存储器240。在示例实施例中,设备存储器230可以对应于图1中的设备附加存储器130。
如参考图1在前述示例实施例中所描述的,设备210和主机处理器220可以基于多种协议彼此通信。多种协议可以包括存储协议(MEM)、一致性协议(COH)和非一致性协议(IO)。在示例实施例中,参考CXL规范2.0,存储协议(MEM)、一致性协议(COH)和非一致性协议(IO)可以分别对应于CXL.mem、CXL.cache和CXL.io。非一致性协议(IO)可以对应于PCIe事务层,并且可以用于设备发现、中断管理、提供对寄存器的访问、以及处理系统200的信号错误。COMPUTE EXPRESS LINK CXL规范的公开内容(2020年10月,修订版2)通过引用全部包含于此。
当主机处理器220访问加速器(例如,图1中的加速器电路114)的存储器(例如,图1中的设备附加存储器130)时,存储协议(MEM)可以被使用。存储协议(MEM)可以定义主设备与从设备之间的事务。
主设备可以指在CXL.mem协议下触发请求的代理。例如,对于MemRd命令的事务,主设备可以对应于触发MemRd命令的主机处理器220。
从设备可以指在CXL.mem协议下负责响应由主设备触发的请求的代理。例如,在MemRd命令的事务的情况下,从设备可以对应于存储装置(memory device)。存储装置可以是图1中所示的主机存储器140或设备附加存储器130。
存储协议(MEM)可以定义从主设备到从设备的事务以及从从设备到主设备的事务。例如,参考CXL规范2.0,从主设备到从设备的事务可以被称为主从(M2S)事务,并且从从设备到主设备的事务可以被称为从主(S2M)事务。
在示例实施例中,设备210可以对应于至少三种类型之一。当设备210是分区全局地址空间(PGAS)网络接口卡(NIC)或原子NIC时,设备210可以对应于CXL规范中定义的第一类型(类型1)。系统200可以不包括设备存储器230。包括第一类型的设备210的系统200中的多种协议可以仅包括一致性协议(COH)和非一致性协议(IO)。当设备210对应于第一类型时,设备210可以通过一致性协议(COH)使用主机处理器220的存储器。当设备210对应于第一类型时,系统200可以支持设备到主机(D2H)高速缓存一致性以及主机到设备(H2D)监听事务。
当设备210包括存储器并且作为加速器操作时(当设备210可以包括图1中的加速器电路114时),设备210可以对应于CXL规范中定义的第二类型(类型2)。包括第二类型的设备210的系统200中的多种协议可以包括一致性协议(COH)、非一致性协议(IO)和存储协议(MEM)。例如,主机处理器220可以使用非一致性协议(IO)发现设备210,并且可以使用存储协议(MEM)访问与发现的设备210相对应的设备存储器230,并且可以使设备210通过一致性协议(COH)使用主机处理器220的存储器。
当设备210作为用于存储器扩展器的设备操作时,设备210可以对应于CXL规范中定义的第三类型(类型3)。包括第三类型的设备210的系统200中的多种协议可以包括存储协议(MEM)和非一致性协议(IO)。例如,主机处理器220可以经由非一致性协议(IO)识别和连接设备210,并且可以经由存储协议(MEM)访问设备210的内存池。设备210可以与设备存储器230通信,并且可以包括用于访问设备存储器230的存储器控制器211。在示例实施例中,不同于图2所示的示例,存储器控制器211可以存在于设备210的外部并且可以与设备存储器230集成。此外,主机处理器220可以与主机存储器240通信,并且可以包括用于访问主机存储器240的存储器控制器221。在示例实施例中,不同于图2所示的示例,存储器控制器221可以存在于主机处理器220的外部并且可以与主机存储器240集成。
在示例实施例中,设备存储器230可以实现为各种类型的存储器,并且作为示例,设备存储器230可以实现为存储级存储器(SCM)。存储级存储器可以具有非易失性存储器和易失性存储器二者的特性,并且可以以字节为单位被访问。例如,存储级存储器可以包括相变RAM(PCM)、铁电RAM(FeRAM)、磁性RAM(MRAM)、电阻RAM(RRAM)、STT-MRAM等。设备210可以作为使用存储级存储器的存储器带宽扩展或存储器容量扩展的设备来操作。
在示例实施例中,第三类型的设备210的存储器控制器211可以包括加速器电路。因此,设备210可以不仅用作主机存储器的存储器扩展器,还可以将设备存储器230的一部分存储区域用于执行加速操作。可以通过热插拔存储区域从系统存储器映射排除专用于加速操作的存储区域,并且可以通过改变设备210中包括的存储配置寄存器中的信息将设备存储器230的一部分存储区域专门用于加速操作。此外,在加速操作完成后,专门用于加速操作的存储区域可以被恢复回系统存储区域。
图3是示出根据示例实施例的系统的框图。
参考图3,系统300可以包括主机处理器310、主机存储器320和存储模块330。在示例实施例中,系统300可以是异构计算系统。异构计算系统可以被配置为使得不同类型的计算设备可以彼此有组织地(organically)连接并且可以执行各种功能。在异构计算系统中,不止一种处理器或核可以执行各种功能。系统300是异构计算系统的示例,因为它包括执行如下所述的各种功能的主机处理器310和控制器340。
主机处理器310可以是被配置为控制系统300的整体操作的处理器核。例如,主机处理器310可以被配置为通过解释操作系统的命令或在系统300上执行的各种程序来处理数据。主机处理器310可以与主机存储器320通信。由主机处理器310处理的数据或在主机处理器310的操作期间所需的数据可以存储在主机存储器320中。在示例实施例中,主机存储器320可以是基于双列直插式存储模块(DIMM)的存储器,并且可以直接与主机处理器310通信。主机存储器320可以用作主机处理器310的缓冲存储器、高速缓冲存储器或系统存储器。
存储模块330可以在主机处理器310的控制下操作。例如,存储模块330可以通过异构计算接口与主机处理器310通信。异构计算接口实现主机处理器(即,通用处理器)、存储器和加速器之间的一致性互连。在示例实施例中,异构计算接口可以包括基于CXL协议的接口。可以假设异构计算接口可以是基于CXL协议的接口,即,CXL接口,但其示例实施例不限于此。异构计算接口可以基于诸如以下各种计算接口中的至少一种来实现:Gen-Z协议、NVLink协议、用于加速器的高速缓存一致性互连(CCIX)协议、以及开放一致性加速器处理器接口(CAPI)协议。
存储模块330可以根据主机处理器310的控制通过CXL接口存储数据或者可以输出存储的数据。即,主机处理器310可以将存储模块330用作具有与主机存储器320类似的功能的存储区域。在示例实施例中,存储模块330可以对应于由CXL标准定义的第三类型(类型3)存储装置。
存储模块330可以包括控制器340和设备存储器350。设备存储器350可以是基于双列直插式存储模块(DIMM)的存储器,并且可以直接与控制器340通信。控制器340可以将数据存储在设备存储器350中,或者可以读取存储在设备存储器350中的数据。控制器340可以包括第一接口电路341(例如,CXL接口)和第二接口电路342。第一接口电路341可以与主机处理器310通信,并且可以根据例如CXL协议交换数据,但其示例实施例不限于此。第二接口电路342可以与设备存储器350通信,并且可以根据例如DDR1、DDR2、DDR3、DDR4、DDR5或DDR6协议交换数据,但其示例实施例不限于此。例如,第二接口电路342可以是双倍数据速率(DDR)接口。此外,设备存储器350可以是闪速存储器。
加速器电路343可以是被配置为执行特定操作的处理器核或运算器(operator)。例如,加速器电路343可以是被配置为执行人工智能(AI)操作的运算器或处理器,诸如,GPU、NPU等。在示例实施例中,加速器电路343可以在主机处理器310的控制下执行算术运算。
在示例实施例中,加速器电路343可以连接到CXL接口341。加速器电路343可以通过CXL接口341从主机处理器310接收操作命令,并且可以响应于接收到的操作命令对从存储设备360接收到的数据执行算术运算。从存储设备360接收到的数据可以存储在设备存储器350中。存储设备360可以存储加速操作所需的数据,例如,该数据可以指深度学习推荐模型(DLRM)表,但其示例实施例不限于此。
存储配置寄存器344可以包括关于设备存储器350的存储结构的信息。作为示例,存储配置寄存器344可以包括关于存储区域的信息。该信息可以包括多个成对的存储地址,其中,多个成对的存储地址中的每一对存储地址定义存储区域。例如,每个存储区域可以由高位存储地址和低位存储地址来定义或标识。该信息还可以包括单个地址以及相应的长度或大小,它们组合起来标识存储区域。
主机存储器320和设备存储器350可以被配置为用于在主机处理器310的控制下存储多条操作数据或输出所存储的多条操作数据的系统存储器。
在示例实施例中,系统300还可以包括一个或更多个存储模块370和基于NAND闪存的固态硬盘(SSD)380。一个或更多个存储模块370可以是通过上述异构计算接口与主机处理器310通信的存储模块。
每个组件310、330、360、370和380可以通过系统总线(BUS)彼此通信。
在示例实施例中,存储模块330可以用作在主机处理器310的控制下存储数据或输出所存储的数据的存储器扩展器,或者可以对从存储设备360接收到的数据执行加速操作。存储模块330可以响应于模式改变请求,可变地改变设备存储器350的一部分存储区域以用作系统存储器使用和加速操作使用之一。加速器电路可以使用存储区域来执行加速操作。
图4是示出根据示例实施例的操作系统的方法的流程图。
一起参考图3和图4,控制器340的加速器电路343可以对从主机处理器310分配的任务执行加速操作。存储在存储设备360中的数据的至少一部分可以用于加速器电路343的加速操作。操作系统(OS)可以控制系统300的软件或硬件资源,并且可以控制主机处理器310的程序执行。主机处理器310可以执行操作系统(OS)和应用程序。主机处理器310以两种模式操作,即,用户模式和内核模式。应用程序在用户模式下运行,并且需要系统300的硬件资源的功能在内核模式下运行。操作系统(OS)和应用程序可以存储在存储单元(storageunit)中,并且存储单元可以是非易失性存储设备。非易失性存储设备可以是闪速存储器,但其示例实施例不限于此。当在执行应用程序的同时从任务发生系统调用或中断时,操作系统可以将系统调用或中断识别为应用程序从用户模式切换到内核模式的事件。例如,应用程序可以使用系统调用接口向操作系统发送用于将设备存储器350的一部分存储区域设置为用于加速操作的模式改变请求,或者可以发送用于将存储区域恢复为用于系统存储器的模式改变请求。模式改变请求可以指应用程序从用户模式切换到内核模式的事件。例如,模式改变请求可以从主机处理器310发送到存储模块330的控制器340,或者操作系统可以向存储模块330的控制器340发送模式改变请求。控制器340可以接收模式改变请求。控制器340可以从操作系统接收指示数据量的信息。作为示例,对于机器学习算法,控制器340可以从操作系统接收批量大小,批量大小可以指在所有训练数据集被划分为多个组时属于单个组的数据量。
响应于模式改变请求(S110),控制器340可以识别设备存储器350的存储区域(S120),并且可以向主机处理器310发送用于从系统存储器映射排除要被设置为加速操作区域的存储区域的命令,以将设备存储器350的一部分存储区域设置为加速操作区域。因此,可以从系统存储器映射排除要被设置为加速操作区域的存储区域(S130)。此外,控制器340可以通过修改存储配置寄存器344从存储配置寄存器344排除要被设置为加速操作区域的存储区域(S140)。控制器340可以将加速操作所需的数据从存储设备360移动到被设置为加速操作区域的存储区域(S150),并且加速器电路343可以使用该数据执行加速操作(S160)。作为示例,加速操作所需的数据可以指深度学习推荐模型(DLRM)表。
在示例实施例中,由于存储模块330执行加速操作并且仅向主机处理器310发送计算的结果值,因此可以确保主机处理器310的带宽。因此,系统300的效率可以提高。
图5A和图5B是示出根据示例实施例的存储模块的图。如图5A所示,存储模块330A可以以区块(rank)RANK0和RANK1为单位设置或定义专用于加速操作的存储区域AR1和AR2。此外,如图5B所示,存储模块330B可以以通道(channel)CH0和CH1为单位设置或定义专用于加速操作的存储区域AR1和AR2。在示例实施例中,每个通道CH0和CH1可以包括多个子通道SCH0和SCH1。子通道SCH0和SCH1可以指控制器340与设备存储器之间存在的非从属数据路径。至少一个延迟装置(delay device)DE可以设置在子通道SCH0与SCH1之间。延迟装置DE可以是反相器可以并联连接的装置。存储区域AR1和AR2可以连接到子通道SCH0和SCH1。然而,其示例实施例不限于此,并且存储模块330A和330B可以以子通道、存储体组(bankgroup)和存储体(bank)为单位来设置或定义专用于加速操作的存储区域。
图6是示出根据示例实施例的系统存储器映射的图。
通常,当启动计算机时,固件可以创建为安装在系统中的设备分配存储空间的系统存储器映射。热插拔可以指在系统运行期间新设备(例如,PGAS NIC、原子NIC、加速器和存储器扩展器)被连接时立即被识别和被使用的功能。因此,分配给热插拔设备的存储空间可以从系统存储器映射排除或被包括在系统存储器映射中,而无需系统重新启动。
热插拔(hot-plug,hot-plugging)可以指在计算系统中用于在计算系统正运行时移除或添加资源的功能。例如,当计算系统的资源在计算系统正运行时被移除时,该资源可以被称为热拔出(离线),并且当计算系统的资源在计算系统正运行时被添加时,该资源可以被称为热插入(上线)。资源的热插入/热拔出可以指资源在逻辑上耦接到计算系统或从计算系统移除。
计算系统的要被热插拔的资源可以变化。例如,计算系统中包括的多个处理器中的至少一部分处理器可以被热插入/热拔出,并且计算系统中包括的存储装置中的至少一部分存储装置可以被热插入/热拔出,并且多核处理器中包括的多个核中的至少一部分核可以被热插入/热拔出,或者存储装置的至少一部分存储区域可以被热插入/热拔出。
系统存储器映射可以包括:设备存储区域(a)(其也可以被称为CXL存储区域)、主机存储区域(b)、以及孔(hole)区域(c)(其可以不是存储区域)。系统存储器映射可以包括每个区域的高位存储地址和低位存储地址。
主机处理器可以使用热插拔功能从系统存储器映射排除与加速操作区域相对应的存储区域AR1。因此,设备存储区域(a)可以改变为设备存储区域(a-2)。通过从系统存储器映射排除加速操作区域AR1,可以限制主机处理器对加速操作区域AR1的访问。
图7是示出根据另一示例实施例的操作系统的方法的流程图。
一起参考图3和图7,控制器340可以接收用于将设备存储器350的一部分存储区域设置为用于加速操作的模式改变请求。控制器340可以从操作系统接收指示数据量的信息。控制器340可以基于从操作系统接收到的数据量来计算执行加速操作所需的存储容量。
响应于模式改变请求(S210),控制器340可以检查设备存储器350的存储区域(S220),并且可以将设备存储器350的第一存储区域ARl设置为加速操作区域,第一存储区域AR1中的数据可以被移动到与第一存储区域AR1不同的第二存储区域AR2(S230)。控制器340可以将分布和存储在第一存储区域AR1中的数据移动到第二存储区域AR2,以将加速操作所需的数据存储在设备存储器350的连续位置中。因此,可以在设备存储器350中确保用于加速计算所需数据的连续空间。
控制器340可以向主机处理器310发送用于从系统存储器映射排除第一存储区域ARl的命令。因此,可以从系统存储器映射排除第一存储区域ARl(S240)。此外,控制器340可以修改存储配置寄存器344,并且可以从存储配置寄存器344排除第一存储区域AR1(S250)。控制器340可以将加速操作所需的数据从存储设备360移动到第一存储区域AR1(S260),并且加速器电路343可以使用该数据执行加速操作(S270)。
图8至图10是示出根据示例实施例的操作系统的方法的图。
参考图8,为了将加速操作所需的数据存储在设备存储器350的连续位置中,控制器340可以将分布和存储在第一存储区域AR1中的数据移动到第二存储区域AR2(PA1)。第二存储区域AR2可以是与包括第一存储区域AR1的设备存储器相同的设备存储器内的不同存储区域。
参考图9,在分布和存储在第一存储区域AR1中的数据移动到第二存储区域AR2(PA1)之后,主机处理器可以从系统存储器映射排除第一存储区域AR1。因此,设备存储区域(a)可以改变为设备存储区域(a-2)。通过从系统存储器映射排除第一存储区域AR1,可以限制主机处理器对第一存储区域AR1的访问。
参考图10,控制器340可以将加速操作所需的数据从存储设备360移动到第一存储区域AR1(PA2)。数据可以存储在第一存储区域AR1的连续位置中。加速器电路343可以使用该数据执行加速操作。
图11是示出根据另一示例实施例的操作系统的方法的流程图。
一起参考图3和图11,控制器340可以接收用于将设备存储器350的一部分存储区域设置为用于加速操作的模式改变请求。控制器340可以从操作系统接收指示数据量的信息。控制器340可以基于从操作系统接收到的数据量来计算执行加速操作所需的存储容量。
响应于模式改变请求(S310),控制器340可以识别设备存储器350的存储区域(S320),并且可以确定设备存储器350的剩余容量是否足够执行加速操作(S330)。
当确定存储装置的剩余容量足够时(在S330中“足够”),为了将设备存储器350的第一存储区域设置为加速操作区域,用于从系统存储器映射排除第一存储区域的命令可以被发送到主机处理器310。因此,可以从系统存储器映射排除第一存储区域(S350)。此外,控制器340可以修改存储配置寄存器344并且可以从存储配置寄存器344排除第一存储区域(S360)。控制器340可以将加速操作所需的数据从存储设备360移动到第一存储区域(S370),并且加速器电路343可以使用该数据执行加速操作(S380)。
当确定存储装置的剩余容量不足够时(在S330中“不足够”),为了确保设备存储器350的第一存储区域作为加速操作区域,存储在第一存储区域中的数据可以移动到另一存储装置的第二存储区域(S340)。第二存储区域可以被包括在与包括第一存储区域的设备存储器350不同的设备存储器中。根据示例实施例,第二存储区域可以被包括在主机存储器320和远程存储器之一中。远程存储器可以指距离主机处理器310相对较远的存储器,并且可以是例如基于NAND闪存的SSD,但其示例实施例不限于此。主机存储器320可以是相对靠近主机处理器310的本地存储器。因此,可以确保设备存储器350中用于存储加速计算所需的数据的空间。
控制器340可以向主机处理器310发送用于从系统存储器映射排除第一存储区域的命令。因此,可以从系统存储器映射排除第一存储区域(S350)。此外,控制器340可以修改存储配置寄存器344,并且可以从存储配置寄存器344排除第一存储区域(S360)。控制器340可以将加速操作所需的数据从存储设备360移动到第一存储区域(S370),并且加速器电路343可以使用该数据执行加速操作(S380)。
图12至图14是示出根据示例实施例的操作系统的方法的图。
参考图12,控制器340可以将第一存储区域AR1中的数据移动到主机存储器320中的第二存储装置,以确保用于存储加速操作所需的数据的空间(PA3)。例如,控制器340可以将数据移动到主机存储器320的第二存储区域AR2。
参考图13,在将第一存储区域AR1的数据移动到主机存储器320的第二存储区域AR2(PA3)之后,主机处理器可以从系统存储器映射排除第一存储区域AR1。因此,设备存储区域(a)可以改变为设备存储区域(a-2)。通过从系统存储器映射排除第一存储区域AR1,可以限制主机处理器对第一存储区域AR1的访问。
参考图14,控制器340可以将加速操作所需的数据从存储设备360移动到第一存储区域AR1(PA4)。数据可以存储在第一存储区域AR1中。加速器电路343可以使用该数据执行加速操作。
图15是示出根据示例实施例的操作系统的方法的流程图。
参考图3和图15,在加速操作完成之后,响应于用于将被设置为加速操作区域的存储区域恢复回系统存储器使用的模式改变请求(S410),主机处理器310可以使加速操作区域被包括在系统存储器映射中(S420)。控制器340可以响应于来自主机处理器310的模式改变请求或命令来修改存储配置寄存器344,并且可以使加速操作区域被包括在存储配置寄存器344中(S430)。
图16是示出根据另一示例实施例的系统存储器映射的图。
参考图16,主机处理器可以使加速操作区域(a-1)被包括在系统存储器映射中。例如,主机处理器可以使用热插拔功能使加速操作区域(a-1)被包括在系统存储器映射中。因此,设备存储区域(a-2)可以改变为设备存储区域(a)。通过使加速操作区域(a-1)被包括在系统存储器映射中,可以使主机处理器访问与加速操作区域(a-1)相对应的存储区域AR1。
图17是示出根据示例实施例的操作系统的方法的图。
如上所述,响应于模式改变请求,控制器340可以将分布和存储在第一存储区域AR1中的数据移动到第二存储区域AR2。因此,控制器340可以将加速操作所需的数据存储在设备存储器350的连续位置中。此外,当确定存储装置的剩余容量不足够时,控制器340可以将存储在第一存储区域AR1中的数据移动到另一存储装置的第二存储区域AR2。因此,控制器340可以确保设备存储器350的第一存储区域AR1作为加速操作区域。
参考图3和图17,响应于用于将设备存储器350中的被设置为加速操作区域的存储区域恢复为用于系统存储器使用的模式改变请求(S510),主机处理器310可以使第一存储区域被包括在系统存储器映射中(S520)。控制器340可以响应于来自主处机理器310的模式改变请求或命令,将存储在第二存储区域中的现有数据恢复到第一存储区域(S530)。控制器340可以使第一存储区域被包括在存储配置寄存器344中(S540)。
图18和图19是示出根据示例实施例的操作系统的方法的图。
参考图18,主机处理器可以使设备存储器的第一存储区域(a-1)被包括在系统存储器映射中。因此,设备存储区域(a-2)可以改变为设备存储区域(a)。通过将第一存储区域(a-1)包括在系统存储器映射中,可以使主机处理器访问第一存储区域AR1。
参考图19,在主机处理器使第一存储区域AR1被包括在系统存储器映射中之后,存储在第二存储区域中的现有数据可以被恢复到第一存储区域。
图20和图21是示出根据示例实施例的操作系统的方法的图。
参考图20,主机处理器可以使主机存储器的第一存储区域(a-1)被包括在系统存储器映射中。因此,设备存储区域(a-2)可以改变为设备存储区域(a)。通过将第一存储区域(a-1)包括在系统存储器映射中,可以使主机处理器访问第一存储区域AR1。
参考图21,在主机处理器使第一存储区域AR1被包括在系统存储器映射中之后,存储在第二存储区域AR2中的现有数据可以被恢复到第一存储区域AR1。
图22是示出根据示例实施例的应用了服务器系统的数据中心的框图。参考图22,数据中心3000可以是维护各种数据并且为各种数据提供各种服务的设施,并且可以被称为数据存储中心。数据中心3000可以是用于操作搜索引擎或数据库的系统,并且可以是在各种机构中使用的计算系统。数据中心3000可以包括多个应用服务器3100_1至3100_n和多个存储服务器3200_1至3200_m。多个应用服务器3100_1至3100_n的数目和多个存储服务器3200_1至3200_m的数目可以变化。
在下文中,将描述第一存储服务器3200_1的示例。其他存储服务器3200_2至3200_m和多个应用服务器3100_1至3100_n中的每一者可以具有与第一存储服务器3200_1的结构类似的结构。
第一存储服务器3200_1可以包括处理器3210_1、存储器3220_1、交换机3230_1、网络接口连接器(NIC)3240_1、存储设备3250_1和CXL接口控制器3260_1。处理器3210_1可以控制第一存储服务器3200_1的整体操作。存储器3220_1可以在处理器3210_1的控制下存储各种命令或数据。处理器3210_1可以被配置为访问存储器3220_1并且执行各种命令或处理数据。在示例实施例中,存储器3220_1可以包括诸如以下各种类型的存储装置中的至少一种:DDR双倍数据速率同步DRAM(SDRAM)、高带宽存储器(HBM)、混合存储立方体(HMC)、双列直插式存储模块(DIMM)、OPTANE DIMM、或非易失性DIMM(NVDIMM)。
在示例实施例中,包括在第一存储服务器3200_1中的处理器3210_1的数目和存储器3220_1的数目可以改变。在示例实施例中,包括在第一存储服务器3200_1中的处理器3210_1和存储器3220_1可以被包括在处理器-存储器对中,并且包括在第一存储服务器3200_1中的处理器-存储器对的数目可以变化。在示例实施例中,包括在第一存储服务器3200_1中的处理器3210_1的数目和存储器3220_1的数目可以彼此不同。处理器3210_1可以包括单核处理器或多核处理器。
交换机3230_1可以在处理器3210_1的控制下选择性地将处理器3210_1连接到存储设备3250_1,或者可以选择性地将NIC 3240_1、存储设备3250_1和CXL 3260_1彼此连接。
NIC 3240_1可以被配置为将第一存储服务器3200_1连接到网络NT。NIC 3240_1可以包括网络接口卡、网络适配器等。NIC 3240_1可以通过有线接口、无线接口、蓝牙接口、光学接口等连接到网络NT。NIC 3240_1可以包括内部存储器、DSP、主机总线接口等,并且可以通过主机总线接口连接到处理器3210_1或交换机3230_1。主机总线接口可以包括诸如以下各种接口中的至少一种:高级技术附件(ATA)、串行ATA(SATA)、外部SATA(e-SATA)、小型计算机系统接口(SCSI)、串行连接SCSI(SAS)、外围组件互连(PCI)、快速PCI(PCIe)、快速NVM(NVMe)、IEEE 1394、通用串行总线(USB)、安全数字(SD)卡、多媒体卡(MMC)、嵌入式多媒体卡(eMMC)、通用闪存(UFS)、嵌入式通用闪存(eUFS)、紧凑型闪存(CF)卡接口等。在示例实施例中,NIC 3240_1可以与处理器3210_1、交换机3230_1和存储设备3250_1中的至少一者集成。
存储设备3250_1可以在处理器3210_1的控制下存储数据或者可以输出所存储的数据。存储设备3250_1可以包括控制器(CTRL)3251_1、非易失性存储器3252_1、DRAM 3253_1和接口(I/F)3254_1。在示例实施例中,存储设备3250_1还可以包括用于安全或隐私的安全元件(SE)。
控制器3251_1可以控制存储设备3250_1的一般操作。在示例实施例中,控制器3251_1可以包括SRAM。控制器3251_1可以响应于通过接口3254_1接收到的信号,将数据存储在非易失性存储器3252_1中,或者可以输出存储在非易失性存储器3252_1中的数据。在示例实施例中,控制器3251_1可以被配置为基于切换(toggle)接口或ONFI接口来控制非易失性存储器3252_1。
DRAM 3253_1可以被配置为临时存储要存储在非易失性存储器3252_1中的数据或从非易失性存储器3252_1读取的数据。DRAM 3253_1可以被配置为存储控制器3251_1操作所需的各种数据(例如,元数据、映射数据等)。接口3254_1可以提供处理器3210_1、交换机3230_1或NIC 3240_1与控制器3251_1之间的物理连接。在示例实施例中,接口3254_1可以以用于将存储设备3250_1直接连接到专用电缆的直接附加存储(DAS)方法来实现。在示例实施例中,可以通过主机接口总线基于上述各种接口中的至少一种来配置接口3254_1。
上述第一存储服务器3200_1的配置可以是示例,并且其示例实施例不限于此。上述第一存储服务器3200_1的配置可以应用于其他存储服务器或多个应用服务器中的每一者。在示例实施例中,在多个应用服务器3100_1至3100_n的每一者中,可以选择性地省略存储设备3130_1。
多个应用服务器3100_1至3100_n和多个存储服务器3200_1至3200_m可以通过网络NT经由NIC 3140_1至3140_n和3240_1至3240_n彼此通信。网络NT可以使用光纤通道(FC)或以太网来实现。在这种情况下,FC可以是用于相对高速数据传输的介质,并且可以使用提供高性能/高可用性的光开关。依据网络NT的访问方法,存储服务器3200_1至3200_m可以被提供为文件存储、块存储或对象存储。
在示例实施例中,网络NT可以是存储专用网络,诸如,存储区域网络(SAN)。例如,SAN可以是使用FC网络并根据FC协议(FCP)实现的FC-SAN。或者,SAN可以是使用TCP/IP网络并根据iSCSI(SCSI over TCP/IP或Internet SCSI)协议实现的IP-SAN。在示例实施例中,网络NT可以是通用网络,诸如,TCP/IP网络。例如,网络NT可以根据诸如以太网上FC(FCoE)、网络附加存储(NAS)和NVMe over Fabrics(NVMe-oF)的协议来实现。
在示例实施例中,多个应用服务器3100_1至3100_n中的至少一者可以被配置为:通过网络NT访问多个应用服务器3100_1至3100_n中的至少另一者或者多个存储服务器3200_1至3200_m中的至少一者。
例如,第一应用服务器3100_1可以通过网络NT将用户或客户端请求的数据存储在多个存储服务器3200_1至3200_m中的至少一者中。或者,第一应用服务器3100_1可以通过网络NT从多个存储服务器3200_1至3200_m中的至少一者获得用户或客户端请求的数据。在这种情况下,第一应用服务器3100_1可以实现为网页服务器或DBMS(数据库管理系统)。
也就是说,第一应用服务器3100_1的处理器3110_1可以通过网络NT访问另一个应用服务器(例如,3100_n)的存储器3120_n或存储设备3130_n。或者,第一应用服务器3100_1的处理器3110_1可以通过网络NT访问第一存储服务器3200_1的存储器3220_1或存储设备3250_1。这样,第一应用服务器3100_1可以对存储在其他应用服务器3100_2至3100_n或多个存储服务器3200_1至3200_m中的数据执行各种操作。例如,第一应用服务器3100_1可以执行或发出用于在其他应用服务器3100_2至3100_n或多个存储服务器3200_1至3200_m之间移动或复制数据的命令。在这种情况下,移动或复制的数据可以从存储服务器3200_1至3200_m的存储设备3250_1至3250_m移动到存储服务器3200_1至3200_m的存储器3220_1至3220_m,或者可以直接移动到应用服务器3100_1至3100_n的存储器3120_1至3120_n。通过网络NT发送的数据可以是为了安全或隐私的加密数据。
在示例实施例中,多个存储服务器3200_1至3200_m和多个应用服务器3100_1至3100_n可以通过CXL接口(3260_1至3260_m和3150_1至3150_n)连接到存储器扩展器3300。存储器扩展器3300可以用作多个存储服务器3200_1至3200_m和多个应用服务器3100_1至3100_n中的每一者的扩展存储器。多个存储服务器3200_1至3200_m和多个应用服务器3100_1至3100_n中的每一者可以基于参考图1至图21描述的方法通过CXL接口和存储器扩展器3300进行通信。
图23是示出根据示例实施例的异构计算接口的图。参考图23,可以基于CXL接口来描述示例实施例中的连接到存储器扩展器的异构计算接口的示例实施例,但其示例实施例不限于此,并且异构计算接口可以基于诸如Gen-Z协议、NVLink协议、CCIX协议、开放CAPI协议等各种计算接口中的至少一种来实现。
参考图23,异构计算系统4000可以包括多个CPU 4100和4200、多个存储器4110和4210、加速器4120和4220、附加存储器4130和4230以及存储器扩展器4300。多个CPU 4100和4200中的每一者可以是被配置为处理各种操作的处理器。多个CPU 4100和4200可以通过单独的链路彼此通信。在示例实施例中,单独的链路可以包括CPU-CPU一致性链路。
多个CPU 4100和4200可以分别与多个存储器4110和4210通信。例如,第一CPU4100可以直接与第一存储器4110通信,并且第二CPU 4200可以直接与第二存储器4210通信。第一存储器4110和第二存储器4210可以是DDR存储器。在示例实施例中,示例实施例中的分配给虚拟机的虚拟存储器可以是从DDR存储器4110和4210分配的存储器。
多个CPU 4100和4200可以经由柔性总线(flex bus)与加速器4120和4220通信。加速器4120和4220可以是独立于多个CPU 4100和4200执行操作的集成电路或处理器。加速器4120和4220可以在对应的CPU 4100和4200的控制下操作。加速器4120和4220可以分别连接到附加存储器4130和4230。在示例实施例中,多个CPU 4100、4200可以被配置为经由柔性总线和加速器4120和4220访问附加存储器4130、4230。
多个CPU 4100和4200可以经由柔性总线与存储器扩展器4300通信。多个CPU 4100和4200可以使用存储器扩展器4300的存储空间。
在示例实施例中,柔性总线可以是被配置为选择PCIe协议或CXL协议的总线或端口。也就是说,柔性总线可以被配置为根据所连接设备的特性或通信类型来选择PCIe协议或CXL协议。在示例实施例中,存储器扩展器4300可以类似于参考图1至图21描述的存储模块进行操作,并且可以基于CXL协议与多个CPU 4100和4200通信。
在示例实施例中,在图23中,通过柔性总线的通信结构在组件之间被划分,但其示例实施例不限于此。可以通过相同的总线或相同的链路来执行图23中所示的各种组件之间的CXL通信。
根据前述示例实施例,由于用于系统存储器的存储区域的一部分可以可变地改变为专门用于加速操作,因此可以以低成本提高系统的效率。
此外,由于存储模块仅需要执行加速操作并且向主机处理器发送结果值,因此可以确保主机处理器的带宽。
尽管上面已经示出和描述了示例实施例,但是对于本领域技术人员将明显的是,可以在不脱离由所附权利要求限定的本公开的范围的情况下进行修改和变化。

Claims (20)

1.一种存储模块,包括:
设备存储器,所述设备存储器被配置为存储数据,并且包括第一存储区域和第二存储区域;以及
控制器,所述控制器包括加速器电路,
其中,所述控制器被配置为:
控制所述设备存储器,
响应于模式改变请求,向主机处理器发送用于从系统存储器映射排除所述第一存储区域的命令,以及
修改存储配置寄存器,以从所述存储配置寄存器排除所述第一存储区域,并且
其中,所述加速器电路被配置为使用所述第一存储区域来执行加速操作。
2.根据权利要求1所述的存储模块,其中,所述模式改变请求包括应用程序从用户模式切换到内核模式的事件。
3.根据权利要求1所述的存储模块,其中,所述第一存储区域是通过对所述第一存储区域进行热拔出而从所述系统存储器映射排除的。
4.根据权利要求1所述的存储模块,其中,所述控制器包括所述存储配置寄存器,所述存储配置寄存器包括至少一个标识所述第一存储区域的存储地址。
5.根据权利要求4所述的存储模块,其中,所述控制器还被配置为将所述加速操作所需的数据存储在所述第一存储区域中,并且使用所述数据执行所述加速操作。
6.根据权利要求1所述的存储模块,其中,所述第一存储区域被配置为在从所述系统存储器映射被排除和从所述存储配置寄存器被排除之后,从用于系统存储器改变为专门用于所述加速操作,并且所述第二存储区域被配置为用于所述系统存储器。
7.根据权利要求1所述的存储模块,其中,所述第一存储区域以通道、区块、存储体组和存储体之一为单位来定义。
8.根据权利要求7所述的存储模块,
其中,所述通道包括多个子通道,并且
其中,至少一个延迟装置设置在所述子通道之间。
9.一种系统,包括:
第一存储器;
控制器,所述控制器被配置为直接与所述第一存储器通信;
第二存储器;以及
处理器,所述处理器被配置为直接与所述第二存储器通信并且通过异构计算接口与所述控制器通信,
其中,所述处理器还被配置为从系统存储器映射排除所述第一存储器的第一存储区域,
其中,所述控制器还被配置为从存储配置寄存器排除所述第一存储区域,并且
其中,所述第一存储区域被配置为在从所述系统存储器映射被排除和从所述存储配置寄存器被排除之后,从用于系统存储器改变为专门用于加速操作。
10.根据权利要求9所述的系统,其中,所述控制器还被配置为将存储在所述第一存储区域中的数据移动到与所述第一存储区域不同的第二存储区域。
11.根据权利要求10所述的系统,其中,所述第二存储区域被包括在所述第一存储器中。
12.根据权利要求10所述的系统,其中,所述第二存储区域被包括在所述第二存储器中。
13.根据权利要求12所述的系统,其中,所述控制器进一步被配置为:确定所述第一存储器的剩余容量是否足够执行所述加速操作,并且当确定所述第一存储器的所述剩余容量不足够时,将存储在所述第一存储区域中的数据移动到所述第二存储区域。
14.根据权利要求10所述的系统,其中,所述处理器进一步被配置为:在存储在所述第一存储区域中的数据移动到所述第二存储区域之后,响应于来自所述控制器的请求从所述系统存储器映射排除所述第一存储区域。
15.根据权利要求10所述的系统,其中,所述控制器包括所述存储配置寄存器,所述存储配置寄存器包括至少一个标识所述第一存储区域的存储地址。
16.根据权利要求9所述的系统,其中,所述控制器和所述处理器通过计算快速链路接口彼此通信。
17.根据权利要求9所述的系统,其中,所述控制器和所述第一存储器通过双倍数据速率接口彼此通信。
18.一种操作存储模块的方法,所述方法包括:
控制器接收第一模式改变请求,所述第一模式改变请求用于将设备存储器的第一存储区域设置为专门用于加速操作;
所述控制器响应于所述第一模式改变请求,识别所述设备存储器并且发送用于从系统存储器映射排除所述第一存储区域的命令;以及
所述控制器修改存储配置寄存器,以从所述存储配置寄存器排除所述第一存储区域。
19.根据权利要求18所述的方法,所述方法还包括:
所述控制器将所述加速操作所需的数据存储在所述第一存储区域中;以及
所述控制器使用所述数据执行所述加速操作。
20.根据权利要求19所述的方法,所述方法还包括:
所述控制器在所述加速操作完成之后接收第二模式改变请求,所述第二模式改变请求用于将所述第一存储区域设置为用于系统存储器;以及
所述控制器在响应于所述第二模式改变请求而使所述第一存储区域被包括在所述系统存储器映射中时,修改所述存储配置寄存器以包括所述第一存储区域。
CN202210821174.9A 2021-07-23 2022-07-12 存储模块、包括其的系统以及存储模块的操作方法 Pending CN115687193A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2021-0096985 2021-07-23
KR1020210096985A KR20230016110A (ko) 2021-07-23 2021-07-23 메모리 모듈, 이를 포함하는 시스템, 및 메모리 모듈의 동작 방법

Publications (1)

Publication Number Publication Date
CN115687193A true CN115687193A (zh) 2023-02-03

Family

ID=82321470

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210821174.9A Pending CN115687193A (zh) 2021-07-23 2022-07-12 存储模块、包括其的系统以及存储模块的操作方法

Country Status (4)

Country Link
US (1) US20230028071A1 (zh)
EP (1) EP4123649A1 (zh)
KR (1) KR20230016110A (zh)
CN (1) CN115687193A (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102560109B1 (ko) 2023-03-20 2023-07-27 메티스엑스 주식회사 바이트 어드레서블 장치 및 이를 포함하는 컴퓨팅 시스템

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11416397B2 (en) * 2019-10-14 2022-08-16 Intel Corporation Global persistent flush
US20210011864A1 (en) * 2020-09-25 2021-01-14 Francesc Guim Bernat System, apparatus and methods for dynamically providing coherent memory domains

Also Published As

Publication number Publication date
KR20230016110A (ko) 2023-02-01
EP4123649A1 (en) 2023-01-25
US20230028071A1 (en) 2023-01-26

Similar Documents

Publication Publication Date Title
US11741034B2 (en) Memory device including direct memory access engine, system including the memory device, and method of operating the memory device
US11726701B2 (en) Memory expander, heterogeneous computing device using memory expander, and operation method of heterogenous computing
KR102365312B1 (ko) 스토리지 컨트롤러, 연산 스토리지 장치, 및 연산 스토리지 장치의 동작 방법
US11055220B2 (en) Hybrid memory systems with cache management
US11157191B2 (en) Intra-device notational data movement system
US11914903B2 (en) Systems, methods, and devices for accelerators with virtualization and tiered memory
US20220137864A1 (en) Memory expander, host device using memory expander, and operation method of sever system including memory expander
US11526441B2 (en) Hybrid memory systems with cache management
EP4123649A1 (en) Memory module, system including the same, and operation method of memory module
US20230229357A1 (en) Storage controller, computational storage device, and operational method of computational storage device
US20230325277A1 (en) Memory controller performing selective and parallel error correction, system including the same and operating method of memory device
US11983115B2 (en) System, device and method for accessing device-attached memory
CN114546902A (zh) 基于多协议访问存储器的系统、设备和方法
US11809341B2 (en) System, device and method for indirect addressing
US20230376238A1 (en) Computing system for managing distributed storage devices, and method of operating the same
Bai et al. An Analysis on Compute Express Link with Rich Protocols and Use Cases for Data Centers
CN114550805A (zh) 半导体装置
CN114528228A (zh) 与主机处理器通信的设备、包括该设备的系统以及操作该设备的方法
CN113704165A (zh) 一种超融合服务器、数据处理方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication