CN116880773B - 一种内存扩展装置及数据处理方法、系统 - Google Patents
一种内存扩展装置及数据处理方法、系统 Download PDFInfo
- Publication number
- CN116880773B CN116880773B CN202311133879.2A CN202311133879A CN116880773B CN 116880773 B CN116880773 B CN 116880773B CN 202311133879 A CN202311133879 A CN 202311133879A CN 116880773 B CN116880773 B CN 116880773B
- Authority
- CN
- China
- Prior art keywords
- processing
- data
- data stream
- processor
- mode
- 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
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 13
- 238000012545 processing Methods 0.000 claims abstract description 839
- 238000004364 calculation method Methods 0.000 claims abstract description 44
- 238000000034 method Methods 0.000 claims description 64
- 230000006870 function Effects 0.000 claims description 25
- 238000011144 upstream manufacturing Methods 0.000 claims description 13
- 238000011143 downstream manufacturing Methods 0.000 claims description 11
- 230000004044 response Effects 0.000 claims description 4
- 230000008569 process Effects 0.000 description 40
- 238000010586 diagram Methods 0.000 description 14
- 238000004590 computer program Methods 0.000 description 5
- 238000006243 chemical reaction Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 238000004148 unit process Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/1652—Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
- G06F13/1663—Access to shared memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Advance Control (AREA)
Abstract
本申请实施例公开了一种内存扩展装置及数据处理方法、系统,涉及计算机技术领域,可以提高主机端对计算任务的执行效率。该内存扩展装置中:协议控制器,用于与主机端通信,接收主机端发出的目标数据请求;弹性计算管理器,用于根据目标数据请求,切换处理核心的处理模式;处理核心,用于根据自身所处的不同处理模式,通过不同的数据处理路径对目标数据请求所关联的目标数据执行数据处理操作,并将处理后的目标数据提交至内存或经过协议控制器转发至所述主机端;其中,不同的数据处理路径至少包括:以在线处理方式和/或离线处理方式对目标数据执行数据处理操作所各自对应的数据处理路径。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种内存扩展装置及数据处理方法、系统。
背景技术
随着计算机系统对内存容量的需求越来越高,内存扩展技术被广泛应用于计算机系统中,以满足其内存容量需求。
然而,主机端在执行计算任务时,需要多次进行内存访问,但主机端对扩展的内存设备的访问时延通常较高,以致主机端在内存扩展后对计算任务的执行效率降低。
发明内容
本申请实施例的目的是提供一种内存扩展装置及数据处理方法、系统,可以提高主机端在内存扩展后对计算任务的执行效率。
为解决上述技术问题,第一方面,本申请实施例提供一种内存扩展装置,所述内存扩展装置包括处理核心、协议控制器、弹性计算管理器和内存,所述协议控制器用于连接主机端,所述处理核心分别与所述协议控制器、弹性计算管理器和所述内存连接,所述协议控制器与所述弹性计算管理器连接,其中:
所述协议控制器,用于与所述主机端通信,接收所述主机端发出的目标数据请求;
所述弹性计算管理器,用于根据所述目标数据请求,切换所述处理核心的处理模式;
所述处理核心,用于根据自身所处的不同处理模式,通过不同的数据处理路径对所述目标数据请求所关联的目标数据执行数据处理操作,并将处理后的目标数据提交至内存或经过所述协议控制器转发至所述主机端;
其中,所述不同的数据处理路径至少包括:以在线处理方式和/或离线处理方式对所述目标数据执行数据处理操作所各自对应的数据处理路径。
第二方面,本申请实施例还提供了一种数据处理系统,所述系统包括主机端、以及如第一方面所述的内存扩展装置,所述主机端与所述内存扩展装置连接。
第三方面,本申请实施例还提供了一种数据处理方法,应用于如第一方面所述的内存扩展装置,所述方法包括:
协议控制器接收主机端发出的目标数据请求;
弹性计算管理器根据所述目标数据请求,切换处理核心的处理模式;
所述处理核心通过自身所处的处理模式所对应的数据处理路径,对所述目标数据请求所关联的目标数据执行数据处理操作,并将处理后的目标数据提交至内存或经过所述协议控制器转发至所述主机端;
其中,所述数据处理路径至少包括:以在线处理方式和/或离线处理方式对所述目标数据执行数据处理操作所各自对应的数据处理路径。
由上述技术方案可以看出,通过在内存扩展装置内部的协议控制器与内存之间设置处理核心,由弹性计算管理器控制处理核心通过不同的数据处理路径,执行不同计算任务所需的数据处理操作,从而实现了一种支持可编程的内联计算功能的通用内存扩展装置,可以满足不同计算任务的计算需求,由此可以将主机端的部分运算卸载到该内存扩展装置上,由内存扩展装置内部进行计算任务相关的内存访问和数据处理操作,以使主机端执行计算任务过程中所涉及的主机端和内存扩展装置之间的大量高时延内存访问,被内存扩展设备内部的低时延访问代替,从而降低主机端执行计算任务的总时延,提高主机端对计算任务的执行效率。
附图说明
为了更清楚地说明本申请实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种内存扩展装置的结构示意图;
图2为本申请实施例提供的一种数据处理路径的示意图;
图3为本申请实施例提供的另一种数据处理路径的示意图;
图4为本申请实施例提供的另一种数据处理路径的示意图;
图5为本申请实施例提供的另一种数据处理路径的示意图;
图6为本申请实施例提供的另一种数据处理路径的示意图;
图7为本申请实施例提供的一种处理引擎的结构示意图;
图8为本申请实施例提供的一种处理器的结构示意图;
图9为本申请实施例提供的另一种内存扩展装置的结构示意图;
图10为本申请实施例提供的一种数据处理系统的结构示意图;
图11为本申请实施例提供的一种电子设备的示意图;
图12为本申请实施例提供的一种计算机可读存储介质的示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本申请保护范围。
本申请的说明书和权利要求书及上述附图中的术语“包括”和“具有”以及他们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可包括没有列出的步骤或单元。
目前,通常采用以下两种方式来对计算机系统中执行计算任务的主机端扩展内存容量:
1、采用大容量的双列直插式存储模块(Dual-Inline-Memory-Modules,DIMM),并使用主机端全部的DIMM插槽通道来提高内存容量;
2、利用主机端的高速互联接口来实现内存扩展,如计算快速链接(ComputeExpress Link,CXL)接口、高速串行计算机扩展总线标准(Peripheral ComponentInterconnect Express,PCIE)接口等。
可以理解的是,内存扩展会使得主机端进行内存访问的链路变长,以致主机端对扩展的内存设备的访问时延通常较高,尤其是通过CXL等高速互联协议扩展的内存设备。以通过CXL协议扩展的内存设备为例,由于CXL提出了交换的概念来支持内存资源池化,这使得主机端对通过CXL协议扩展的内存设备的访问链路会进一步变长,从而导致更高的访问时延,如主机端对CXL协议扩展的内存设备的访问时延将包括协议上的固定时延、交换机设备的硬件路径时延、软件时延等。
主机端执行计算任务时,一次典型的计算过程包括加载指令、加载数据、算术逻辑单元(Arithmetic and Logic Unit,ALU)计算,写数据四个过程,即一次计算过程可能需要3至4次内存访问,所以对于一个需要N次迭代上述计算过程的计算任务来说,主机端完成计算任务所涉及的所有计算过程需要3N次内存访问,假定每次内存访问的时延为L,则主机端执行计算任务所涉及的内存访问的总时延为3NL。在主机端进行ALU计算的时延不变的情况下,如果主机端进行了内存扩展则L将增大,即主机端执行计算任务所涉及的内存访问的总时延将增大,以致主机端执行计算任务的总时延增大,从而导致主机端在内存扩展后对计算任务的执行效率降低。
针对上述相关技术中存在的问题,本申请提出了具备可编程内联计算功能的内存扩展装置,可以将主机端的部分运算卸载到内存扩展装置,以降低主机访问内存扩展设备的次数,由此可以降低主机端执行计算任务的总时延,提高主机端在内存扩展后对计算任务的执行效率。
下面结合附图,通过一些实施例及其应用场景对本申请实施例提供的一种内存扩展装置进行详细地说明。
第一方面,参见图1所示,为本申请实施例所提供的一种内存扩展装置,所述内存扩展装置包括处理核心、协议控制器、弹性计算管理器和内存,所述协议控制器用于连接主机端,所述处理核心分别与所述协议控制器、弹性计算管理器和所述内存连接,所述协议控制器与所述弹性计算管理器连接,其中:
所述协议控制器,用于与所述主机端通信,接收所述主机端发出的目标数据请求;
所述弹性计算管理器,用于根据所述目标数据请求,切换所述处理核心的处理模式;
所述处理核心,用于根据自身所处的不同处理模式,通过不同的数据处理路径对所述目标数据请求所关联的目标数据执行数据处理操作,并将处理后的目标数据提交至内存或经过所述协议控制器转发至所述主机端;
其中,所述不同的数据处理路径至少包括:以在线处理方式和/或离线处理方式对所述目标数据执行数据处理操作所各自对应的数据处理路径;所述目标数据请求可以包括计算任务所关联的读请求和写请求中的至少一项;上述内存扩展装置支持可编程的内联计算功能,用户可以根据主机端所需执行的计算任务,预先通过弹性计算管理器对该处理核心配置相应的计算流程,以使该处理核心能够代替该主机端执行对数据的部分运算,例如,主机端可以通过协议控制器的指令总线配置弹性计算管理器,配置参数包括处理核心执行数据处理操作所需的计算参数,执行过程中弹性计算管理器通过控制处理核心的处理模式,以控制处理核心在计算任务中的参与状态(即控制处理核心以不同的数据处理路径执行计算任务所关联的数据处理操作)。协议控制器(如CXL协议控制器)包括物理层、数据链路层和事务层,物理层主要实现多种数据报文的编码与解码。数据链路层为处于物理层和事务层之间的中间媒介层,主要负责为物理层和事务层之间的数据交换提供一种可靠的机制。事务层提供输入/输出(Input/Output,IO)、内存(MEMory,MEM)、缓存(CACHE)三种子协议的总线,并且直接和处理核心通信。
在该实施例中,本申请实施例通过在协议控制器和内存之间设置处理核心,并设置弹性计算管理器控制该处理核心进行弹性地处理模式切换,以对内存扩展装置增加可编程的内联计算功能(即弹性计算管理器可以根据计算任务的计算需求,自适应地改变处理核心内部用于执行在线处理或离线处理的相关功能模块的处理模式,以使经过这些相关功能模块的数据可以随着处理模式的变换而进入不同的数据处理路径。如图1中虚线所示的各数据处理路径(路径1、2和3),在仅在线处理相关功能模块为工作模式的情况下,可以看作进入处理核心的目标数据沿路径1经过处理核心进行在线处理后,即可离开处理核心进入主机端或内存;在仅离线处理相关功能模块为工作模式的情况下,可以看作进入处理核心的目标数据沿路径2经过处理核心进行离线处理后,即可离开处理核心进入主机端或内存;在在线处理和离线处理相关功能模块均为工作模式的情况下,可以看作进入处理核心的目标数据沿路径3经过处理核心进行在线处理和离线处理后,再离开处理核心进入主机端或内存。
可以理解的是,弹性计算管理器控制处理核心通过不同的数据处理路径(即自适应地以在线处理方式和/或离线处理方式)执行加解密、编码与解码、键值计算等数据处理操作,由此可以满足不同计算任务的需求,从而将主机端执行计算任务的部分运算卸载到内存扩展装置,以降低主机访问内存扩展装置的次数。
例如,在执行某个计算任务时,由于主机端(如中央处理器(Central ProcessingUnit,CPU)等)通常为串行处理方式,而传统的内存扩展装置仅存储数据,主机端需要对计算任务所涉及的每个数据分别进行一次内存读取、ALU计算和内存写入操作,且在某一数据需要参与同一计算任务中的不同数据处理操作的情况下,主机端需要重复从内存中读取该数据,故在主机端与内存扩展装置之间的访问时延提高的情况下,主机端执行计算任务的总时延也会随之极大地提高。
相比于上述传统的内存扩展装置,采用本申请实施例提供的内存扩展装置,主机端可以通过发出读请求,使处理核心在主机端进行内存读取的过程中,对所需被主机端读取的读请求数据流进行数据处理操作,由此主机端可以从内存扩展装置中一次性读取到计算任务的计算结果(即被内存扩展装置处理后的读请求数据流),从而使得主机端可以知晓计算任务的计算结果,主机端也可以发出写请求,将计算任务所涉及的数据(即写请求数据流)一次性写入该内存扩展装置,在主机端将该多个数据写入该内存扩展装置的过程中,处理核心对写请求数据流进行数据处理操作,并将得到的计算结果(即处理后的写请求数据流)存入该内存扩展装置的内存中,从而完成对计算结果的内存写入。内存扩展装置通过在主机端进行内存读取和/或内存写入的过程中进行数据处理,可以避免主机端在执行计算任务时多次进行数据读写或重复进行数据读写的情况,从而降低主机端访问内存扩展设备的次数,进而降低计算任务的执行总时延。
可以理解的是,本申请实施例提供的内存扩展装置通过提供可编程的内联计算功能,由弹性计算管理器控制编程后的处理核心通过不同的数据处理路径,以在线处理方式和/或离线处理方式在主机端进行内存访问(如内存写入或内存读取)的过程中实现对数据(如写请求数据流或读请求数据流)的计算,即由内存扩展装置内部完成对计算所需数据的读取、数据计算、以及将计算结果存入指定内存地址范围内等操作,从而降低主机端访问内存扩展装置的次数,使得主机和内存扩展装置之间大量的高时延内存访问被内存扩展装置中的低时延访问(如内存扩展装置内部的处理核心与内存之间的低时延访问)代替,由此可以降低主机端执行计算任务时的总时延。
由上述技术方案可以看出,通过在内存扩展装置内部的协议控制器与内存之间设置处理核心,由弹性计算管理器控制处理核心通过不同的数据处理路径,执行不同计算任务所需的数据处理操作,从而实现了一种支持可编程的内联计算功能的通用内存扩展装置,可以满足不同计算任务的计算需求,由此可以将主机端的部分运算卸载到该内存扩展装置上,由内存扩展装置内部进行计算任务相关的内存访问和数据处理操作,以使主机端执行计算任务过程中所涉及的主机端和内存扩展装置之间的大量高时延内存访问,被内存扩展设备内部的低时延访问代替,从而降低主机端执行计算任务的总时延,提高主机端对计算任务的执行效率。
可选地,在一个实施例中,所述处理核心包括处理引擎和处理器,所述弹性计算管理器分别与所述处理引擎和所述处理器连接,其中:
所述弹性计算管理器,用于根据所述目标数据请求,切换所述处理引擎和所述处理器的处理模式;
所述处理引擎,用于根据自身所处的处理模式,选择以在线处理方式对经过所述处理引擎的数据执行数据处理操作,或选择不对经过所述处理引擎的数据执行数据处理操作;
所述处理器,用于根据自身所处的处理模式,选择以离线处理方式对经过所述处理器的数据执行数据处理操作,或选择不对经过所述处理器的数据执行数据处理操作。
在该实施例中,处理引擎可以是一种基于现场可编程逻辑门阵列(FieldProgrammable Gate Array,FPGA)的知识产权核(Intellectual Property core,简称为IP核),用户可以通过寄存器转换级电路(Register Transfer Level,RTL)对该处理引擎预先配置计算流程,并通过弹性计算管理器配置该处理引擎启动后所处的模式(如直通模式和工作模式),该处理引擎支持对当前自身接收到的数据流以极低的时延实现计算(即以在线处理方式对所述目标数据请求所关联的数据执行数据处理操作)。
处理器可以为单核处理器或多核处理器,包括但不限于硬核处理器或软核处理器等类型,用户可以通过C/C++等编程方法对该处理器预先配置计算流程,并通过弹性计算管理器配置该处理引擎启动后所处的模式(如旁路模式和工作模式),该处理器支持采用流水线等方式将自身缓存中的数据(即数据块)进行计算(即以离线处理方式对所述目标数据请求所关联的数据执行数据处理操作)。
可以理解的是,相比于处理引擎仅能够对当前接收的数据流(即主机端所需读写的数据)进行处理,处理器的处理对象包括整个内存区域,故处理方式更灵活,如处理器可以将接收到的数据流和处理该数据流所需的内存数据进行缓存后,再对缓存后的数据进行处理,而不局限于仅对接收到的数据流进行处理。
可选地,所述处理引擎的处理模式包括直通模式和工作模式,所述处理器的处理模式包括旁路模式和工作模式。
在该实施例中,在主机端提交的目标数据请求为写请求的情况下,如果该处理引擎处于工作模式,该处理引擎随后根据自身被配置的相关计算流程,对该写请求所携带的写请求数据流进行在线处理,并将处理后的写请求数据流提交至处理器,如果该处理引擎处于直通模式,该处理器直接将该写请求所携带的写请求数据流提交至处理器,处理器在旁路模式下会直接将处理引擎提交过来的数据提交至内存进行存储,而在工作模式下则会将处理引擎提交过来的数据进行离线处理后再提交至内存进行存储;类似地,在该目标数据请求为读请求的情况下,若处理器处于工作模式,则会对内存提交的读请求所需读取的读请求数据流进行离线处理后提交至处理引擎,若处理器处于旁路模式,则会将内存提交的读请求数据流直接提交至处理引擎,该处理引擎随后根据自身所处的处理模式,选择根据自身被配置的相关计算流程,对处理器提交的读请求数据流进行在线处理,并将处理后的读请求数据流经过协议控制器转发至主机端,或选择将处理器提交的读请求数据流直接经过协议控制器转发至主机端。
其中,为使进入处理引擎或处理器的数据能够继续进入相应的数据处理路径,用户(即主机端)可以通过弹性计算管理器在处理引擎或处理器启动前将其配置为工作模式或非工作模式(如直通模式、旁路模式),也可以通过弹性计算管理器在处理引擎或处理器启动后将其切换为工作模式或非工作模式,以开启或关闭处理引擎或处理器对经过自身的数据的处理功能。
作为一种可能的实施方式,所述处理核心,还用于执行以下至少一项:
在所述处理引擎处于工作模式,且所述处理器处于旁路模式的情况下,通过第一数据处理路径对经过所述处理核心的数据以在线处理方式执行数据处理操作;
在所述处理引擎处于直通模式,且所述处理器处于工作模式的情况下,通过第二数据处理路径对经过所述处理核心的数据以离线处理方式执行数据处理操作;
在所述处理引擎处于工作模式,且所述处理器处于工作模式的情况下,通过第三数据处理路径对经过所述处理核心的数据以在线处理方式和离线处理方式执行数据处理操作;
在所述处理引擎处于直通模式,且所述处理器处于旁路模式的情况下,通过第四数据处理路径不对经过所述处理核心的数据执行数据处理操作。
在该实施例中,如图2所示,处理核心可以通过以下四种数据处理路径单独或组合实现对计算任务所关联的读请求数据流和/或写请求数据流(即目标数据)的处理,从而使得本申请实施例所提供的内存扩展装置可以适用于多种计算任务。
1、实现仅处理引擎处理的第一数据处理路径(即路径1)。
处于该第一数据处理路径的处理器处于旁路模式,此时该路径可以看作目标数据经处理引擎处理后直接进入协议控制器或内存,处理器仅用于转发自身接收到的数据。
在具体实施时,处理器被配置或切换为旁路模式,不处理自身接收到的目标数据请求所关联的数据,处理引擎被配置或切换为工作模式,用于根据所述处理引擎被预先配置的计算流程,对自身接收到的所述目标数据请求所关联的数据进行在线处理,即此时处理核心通过第一数据处理路径对进入处理核心的目标数据进行处理。
其中,协议控制器通过指令总线与弹性计算管理器连接,通过数据总线与处理核心连接,根据实际的计算任务需求,弹性计算管理器可以通过自身的指令总线所连接的控制状态寄存器(Control Status Register,CSR)和中断控制器来对应控制处理器和处理引擎进行处理模式切换,主机端也可以通过协议控制器向处理器和处理引擎发送携带控制参数的数据流来对应控制处理器和处理引擎进行处理模式切换,从而改变处理核心的数据处理路径。
2、实现仅处理器处理的第二数据处理路径(即路径2)
处于该第二数据处理路径的处理引擎处于直通模式,不会执行数据处理操作而产生额外时延,此时该路径可以看作目标数据经处理器处理后直接进入协议控制器或内存,处理引擎仅用于转发自身接收到的数据。
在具体实施时,处理引擎被配置或切换为直通模式,不处理自身接收到的所述目标数据请求所关联的数据,处理器被配置或切换为工作模式,用于根据所述处理器被预先配置的计算流程,对自身接收到的所述目标数据请求所关联的数据进行离线处理,即此时处理核心通过第二数据处理路径对进入处理核心的目标数据进行处理。
3、实现混合处理的第三数据处理路径(即路径3)
处于该第三数据处理路径的处理引擎和处理器均处于工作模式,此时该路径可以看作目标数据经处理器和处理引擎分别处理后再进入协议控制器或内存。
在具体实施时,处理引擎被配置或切换为工作模式,用于根据所述处理引擎被预先配置的计算流程,对自身接收到的所述目标数据请求所关联的数据进行在线处理,处理器被配置或切换为工作模式,用于根据所述处理器被预先配置的计算流程,对自身接收到的所述目标数据请求所关联的数据进行离线处理,即此时处理核心通过第三数据处理路径对进入处理核心的目标数据进行处理。
4、不执行处理的第四数据处理路径(即路径4)
处于该第四数据处理路径的处理引擎和处理器均处于非工作模式,此时该路径可以看作目标数据在协议控制器和内存之间直接传输。
在具体实施时,处理引擎和控制器均被配置或切换为非工作模式,不对自身接收到的所述目标数据请求所关联的数据进行处理,即此时协议控制器通过第四数据处理路径直接对内存读写数据。
作为一种可能的实施方式,所述处理引擎包括写请求数据流处理单元和读请求数据流处理单元,其中:
所述弹性计算管理器,用于根据所述目标数据请求,选择将所述写请求数据流处理单元和所述读请求数据流处理单元中的至少一项切换为工作模式,以使所述处理引擎处于工作模式,或选择将所述写请求数据流处理单元和所述读请求数据流处理单元均切换为直通模式,以使所述处理引擎处于直通模式。
可以理解的是,处理核心可以基于对写请求数据流处理单元和读请求数据流处理单元处理的模式切换,灵活选择路径1-4的任一项作为处理写请求数据流的路径、处理读请求数据流的路径、或处理读请求数据流和写请求数据流的路径,如对于需要处理读写请求流的计算任务,处理核心可以基于写请求数据流处理单元的模式切换,灵活选择上述路径1-4中的至少一项完成对读写请求数据流的处理。
具体地,所述目标数据包括写请求数据流和读请求数据流中的至少一项,其中:
所述写请求数据流处理单元,用于在自身处于工作模式的情况下,以在线处理方式对所述第一数据处理路径或所述第三数据处理路径中的写请求数据流执行数据处理操作,在自身处于直通模式的情况下,不对所述第二数据处理路径或所述第四数据处理路径中的写请求数据流执行数据处理操作;
所述读请求数据流处理单元,用于在自身处于工作模式的情况下,以在线处理方式对所述第一数据处理路径或所述第三数据处理路径中的读请求数据流执行数据处理操作,在自身处于直通模式的情况下,不对所述第二数据处理路径或所述第四数据处理路径中的读请求数据流执行数据处理操作。
如图3所示,在应用于写请求数据流的处理时,上述路径1可以看作路径1.1,用于实现对写请求数据流的仅处理引擎处理,此时处理引擎处于工作模式即指写请求数据流处理单元至少处于工作模式,在应用于读请求数据流的处理时,上述路径1可以看作路径1.2,用于实现对读请求数据流的仅处理引擎处理,此时处理引擎处于工作模式即指读请求数据流处理单元至少处于工作模式,在应用于读写请求数据流的处理时,上述路径1可以看作路径1.1和1.2的组合,用于实现对读写请求数据流的仅处理引擎处理,此时处理引擎处于工作模式即指读请求数据流处理单元和写请求数据流处理单元均处于工作模式。
如图4所示,在应用于写请求数据流的处理时,上述路径2可以看作路径2.1,用于实现对写请求数据流的仅处理器处理,此时处理引擎处于直通模式即指写请求数据流处理单元至少处于直通模式,在应用于读请求数据流的处理时,上述路径2可以看作路径2.2,用于实现对读请求数据流的仅处理器处理,此时处理引擎处于直通模式即指读请求数据流处理单元至少处于直通模式,在应用于读写请求数据流的处理时,上述路径2可以看作路径2.1和2.2的组合,用于实现对读写请求数据流的仅处理器处理,此时处理引擎处于直通模式即指读请求数据流处理单元和写请求数据流处理单元均处于直通模式。
如图5所示,在应用于写请求数据流的处理时,上述路径3可以看作路径3.1,用于实现对写请求数据流的混合处理,此时处理引擎处于工作模式即指写请求数据流处理单元至少处于工作模式,在应用于读请求数据流的处理时,上述路径3可以看作路径3.2,用于实现对读请求数据流的混合处理,此时处理引擎处于工作模式即指读请求数据流处理单元至少处于工作模式,在应用于读写请求数据流的处理时,上述路径3可以看作路径3.1和3.2的组合,用于实现对读写请求数据流的仅处理器处理,此时处理引擎处于工作模式即指读请求数据流处理单元和写请求数据流处理单元均处于工作模式。
如图6所示,在应用于写请求数据流的处理时,上述路径4可以看作路径4.1,即处理核心不处理写请求数据流,此时处理引擎处于直通模式即指写请求数据流处理单元至少处于直通模式,在应用于读请求数据流的处理时,上述路径4可以看作路径4.2,即处理核心不处理读请求数据流,此时处理引擎处于直通模式即指读请求数据流处理单元至少处于直通模式,在应用于读写请求数据流的处理时,上述路径4可以看作路径4.1和4.2的组合,即处理核心不处理读写请求数据流,此时处理引擎处于直通模式即指读请求数据流处理单元和写请求数据流处理单元均处于直通模式。
可以理解的是,对写请求数据流和读请求数据流分别设置单独的处理单元来执行数据处理操作,使得处理引擎可以并行地处理写请求数据流和读请求数据流;且使得用户可以根据实际需求,灵活选择写请求数据流处理单元和/或读请求数据流处理单元,来构建处理引擎,以使构建出的处理引擎相应地支持对写请求数据流和/或读请求数据流的处理功能,从而提升处理引擎的灵活性;还使得用户在对处理引擎配置计算流程时,可以将该计算流程的配置灵活分解为针对读请求数据流的计算流程的配置(即对读请求数据流处理单元的配置),和/或,针对写请求数据流的计算流程的配置(即对写请求数据流处理单元的配置),从而可以降低开发复杂度并提升算法自由度。
可以理解的是,用户在对包含写请求数据流处理单元和读请求数据流处理单元的处理引擎配置计算流程时,可以根据计算任务整体的执行逻辑或选择卸载至内存扩展设备的部分运算的执行逻辑,配置处理引擎仅对写请求数据流进行处理,或仅对读请求数据流进行处理,或对读写请求数据流均进行处理。
例如,用户可以仅对写请求数据流处理单元或读请求数据流处理单元配置计算流程以执行数据处理操作,而未配置计算流程的处理单元(即写请求数据流处理单元或读请求数据流处理单元)将仅用于转发自身接收到的数据,用户或协议控制器也可以选择将处理单元(即写请求数据流处理单元或读请求数据流处理单元)配置为或切换为工作模式或直通模式,以开启或关闭相应的处理单元(即写请求数据流处理单元或读请求数据流处理单元)对自身所接收数据的处理功能。
作为一种可能的实施方式,所述处理引擎,还用于根据自身接收到的所述目标数据中的第一参数,切换自身的处理模式。
在该实施例中,主机端或协议控制器,可以通过在提交给处理引擎的数据流中嵌入控制状态参数(即第一参数)的方式,弹性地将处理引擎切换为直通模式或工作模式,以满足计算任务的实际需要。
作为一种可能的实施方式,所述处理引擎,还用于对自身接收到的所述目标数据添加第二参数并发送给所述处理器;
所述处理器,还用于根据自身接收到的所述目标数据中的第二参数,将切换自身的处理模式。
在该实施例中,主机端、协议控制器或处理引擎,可以通过在提交给处理器的数据流中嵌入控制状态参数(即第二参数)的方式,弹性地将处理器切换为直通模式或工作模式,以满足计算任务的实际需要。
在一个实施例中,如图2所示,所述内存包括第一区域和第二区域,所述第一区域用于存储未被所述处理核心处理过的数据,所述第二区域用于存储被所述处理核心处理过的数据。
在该实施例中,第一区域作为普通的内存区域,不会被处理核心修改任何内存数据,以用作内存扩展,可选地,该第一内存可以与协议控制器直接连接;第二区域作为处理核心的缓冲区,该区域将存放经过处理引擎(如写请求数据流处理单元)处理过的数据,也会在多核处理器执行计算过程的时候被修改,修改完的数据可以经过读数据流处理单元或处理器处理后再返回主机端。
作为一种可能的实施方式,所述处理器分别与所述第一区域和所述第二区域连接,其中:
所述处理器,还用于以离线处理方式对所述主机端经过所述协议控制器提交的写请求数据流执行数据处理操作,将处理后的写请求数据提交至所述第二区域,以及,以离线处理方式对所述第一区域和/或所述第二区域提交的读请求数据流执行数据处理操作,将处理后的读请求数据流经过所述协议控制器转发至所述主机端。
在该实施例中,处理器在处理目标请求所关联的数据时,可以根据预先配置的计算流程,从第一区域或第二区域中快速读取处理数据所需的数据,再根据读取到的数据对目标请求所关联的数据执行数据处理操作,从而进一步提高数据处理的灵活性。
作为一种可能的实施方式,如图7所示,所述处理引擎包括写请求数据流处理单元,所述处理引擎还包括元数据接口,所述写请求数据流处理单元分别与所述元数据接口和所述第二区域连接,所述元数据接口与所述第一区域连接,其中:
所述写请求数据流处理单元,还用于将所述主机端经过所述协议控制器提交的写请求数据流,经过所述元数据接口直接提交至所述第一区域,以及,对所述写请求数据流执行数据处理操作,并将处理后的写请求数据流提交至所述第二区域。
在该实施例中,写请求数据流处理单元会将主机端提交的写请求数据流在装置内分为两个路径转发,一个路径是写请求数据流处理单元通过元数据接口将自身接收到的写请求数据流直接转发至第一区域,该第一区域即用于存储主机端写入的原始数据(即元数据),从而提供传统的内存扩展功能,另一个路径是写请求数据流处理单元将主机端提交的写请求数据流处理后再转发至第二区域,该第二区域即用于存储处理核心处理后的数据(即动态数据),从而为处理引擎、处理器等处理核心执行数据处理操作提供缓冲区,并供主机端读取处理后的数据。
可选地,写请求数据流处理单元可以通过处理器与第二区域连接,写请求数据流处理单元可以将自身处理过或未处理过的写请求数据流提交至处理器进行处理,再由处理器将处理后的写请求数据流提交至第二区域进行存储,从而提高处理核心对写请求数据流的处理方式的灵活性。
作为一种可能的实施方式,如图7所示,所述处理引擎包括读请求数据流处理单元,所述处理引擎还包括元数据接口,所述读请求数据流处理单元分别与所述元数据接口和所述第二区域连接,所述元数据接口与所述第一区域连接,其中:
所述弹性计算管理器,还用于在所述主机端发出的目标数据请求包括第一读取请求的情况下,控制所述读请求数据流处理单元执行第一读取操作,接收所述第一区域经过所述元数据接口提交的读请求数据流,并将接收到的读请求数据流经过所述协议控制器直接转发至所述主机端;
所述弹性计算管理器,还用于在所述主机端发出的目标数据请求包括第二读取请求的情况下,控制所述读请求数据流处理单元执行第二读取操作,对所述第一区域或所述第二区域提交的读请求数据流执行数据处理操作,将处理后的读请求数据流经过所述协议控制器转发至所述主机端,或将所述第二区域提交的读请求数据流经过所述协议控制器转发至所述主机端。
在该实施例中,主机端发出的读取请求可以包括元数据读取请求(即第一读取请求)和处理后数据读取(即第二读取请求),主机端发出第一读取请求时,弹性计算管理器控制读请求数据流处理单元将第一区域经过元数据接口提交的对应读请求数据流提交至协议控制器进行转发,以使主机端读取到未被处理核心处理过的数据(如主机端写入的计算任务所涉及的原始数据),主机端发出第二读取请求时,弹性计算管理器控制读请求数据流处理单元接收第一区域或第二区域提交的对应读请求数据流,对该对应读请求数据流进行处理后,提交至协议控制器进行转发,或根据用户的实际配置,弹性计算管理器也可以控制读请求数据流处理单元不处理第二区域提交的对应读请求数据流,直接进行转发,以使主机端读取到第二区域中存储的被处理核心处理过的数据(即计算结果)。
需要说明的是,上述元数据接口的数据转发操作可以与处理引擎中的读请求数据流处理单元和写请求数据流处理单元所执行的操作并行执行。
可选地,如图7所示,所述处理引擎还包括控制状态寄存器,所述控制状态寄存器分别与所述读请求数据流处理单元和所述弹性计算管理器连接,其中:
所述弹性计算管理器,还用于通过所述控制状态寄存器控制所述读请求数据流处理单元执行所述第一读取操作或执行所述第二读取操作。
在该实施例中,弹性计算管理器可以通过CSR来控制读请求数据流处理单元的读取方式,该CSR通过指令总线与弹性计算管理器连接,根据主机端发出的第一请求或第二请求,对应控制读请求数据流处理单元执行第一读取操作或第二读取操作。
其中,用户也可以在CSR中预先配置读请求数据流处理单元所需执行的读取操作,如仅执行第一读取操作,或仅执行第二读取操作,或执行第一读取操作和第二读取操作,CSR在接收到主机端发出的读取请求时,即会自动控制读请求数据流处理单元以预先配置的读取操作进行内存读取和/或数据处理。
可选地,所述处理引擎还包括写请求数据流处理单元,所述控制状态寄存器与所述写请求数据流处理单元连接,其中:
所述控制状态寄存器,还用于设置或记录所述写请求数据流处理单元和所述读请求数据流处理单元的状态或参数。
在该实施例中,控制状态寄存器可以包含该处理引擎内部所有的控制寄存器和状态寄存器,从而设置或记录写请求数据流处理单元和所述读请求数据流处理单元的状态或参数,如处理引擎的缓存器(该缓存器用于以单元的形式缓存处理引擎待处理或待发送的写请求数据或读请求数据)中内存读写请求单元的队列状态、写数据流处理单元中处理核心的状态和参数、读数据流处理单元中处理核心的状态和参数等。可以理解的是,协议控制器可以通过控制CSR来将处理引擎切换为工作模式或直通模式。
作为一种可能的实施方式,所述写请求数据流处理单元包括多个下行流处理核心;所述多个下行流处理核心,用于在所述写请求数据流处理单元处于工作模式的情况下,并行地对所述写请求数据流处理单元所在的数据处理路径中的写请求数据流执行数据处理操作。
在该实施例中,写请求数据流处理单元可以包括一个或多个下行流处理核心,该多个下行流处理核心可并行执行,以提升处理效率。如图7所示,每个下行流处理核心通过缓存器与数据总线连接,主机端经过协议控制器提交的写请求数据流将经过数据总线进入相应的缓存器,再将缓存器以先进先出的顺序进入该一个或多个下行流处理核心。
具体地,写请求数据流会以单元的形式(即以内存写请求单元的形式)提交至缓存器,下行流处理核心将按照计算流程依次处理缓存器中的每个内存写请求单元。每个内存写请求单元在被处理完毕后会进入缓存器,再自缓存器依次通过数据总线提交至内存进行存储或提交至处理器继续进行处理。
作为一种可能的实施方式,所述读请求数据流处理单元包括多个上行流处理核心;所述多个上行流处理核心,用于在所述读请求数据流处理单元处于工作模式的情况下,并行地对所述读请求数据流处理单元所在的数据处理路径中的读请求数据流执行数据处理操作。
在该实施例中,如图7所示,读请求数据流处理单元可以包括一个或多个上行流处理核心,该多个上行流处理核心可并行执行,以提升处理效率。内存或处理器提交的写请求数据流将经过数据总线进入缓存器,再自缓存器依次进入该一个或多个上行流处理核心。
具体地,读请求数据流会以单元的形式(即以内存写请求单元的形式)提交至上行流处理核心的缓冲器,上行流处理核心将按照计算流程依次处理自身缓存器中的每个内存写请求单元。每个内存写请求单元在被处理完毕后会进入缓存器,再自缓存器会通过数据总线提交至协议管理器进行转发。
需要说明的是,上行流处理核心通过上游端口与数据总线连接,下行流处理核心通过下游端口与数据总线连接,该上游端口和下游端口均包含IO事务总线和MEM事务总线,两种总线也都可以支持突发模式。
在一个实施例中,如图8和图9所示,所述目标数据包括写请求数据流,所述处理器包括中断控制器和微处理器,所述中断控制器分别与所述弹性计算管理器和所述微处理器连接,所述弹性计算管理器与所述协议控制器连接,其中:
所述弹性计算管理器,还用于在所述处理器接收到所述目标数据的情况下,向所述中断控制器发出第一中断信号,以及,用于响应于接收到第二中断信号,触发所述协议控制器向所述主机端发送数据处理完成的信息;
所述中断控制器,用于响应于接收到所述第一中断信号,触发所述微处理器执行离线处理,以及,用于在所述微处理器对所述目标数据完成数据处理操作的情况下,向所述弹性计算管理器发送所述第二中断信号。
在该实施例中,弹性计算管理器通过指令总线与协议控制器连接,在目标数据请求所关联的数据进入(或全部进入)处理器时,弹性计算管理器可以向处理器(如向处理器的中断控制器)提交触发事件,以触发处理器对该目标数据请求所关联的数据进行处理。
示例性地,微处理器依次通过中断控制器、中断接口和弹性计算管理器与协议控制器的IO事务总线连接,以通过消息向主机端提交中断事件。该中断接口用于接收外部的中断信号(如第一中断信号),并且对外输出中断信号(如第二中断信号)。当数据流(如主机端所需写入的所有数据流)通过处理器的数据接口进入处理器之后,弹性计算管理器对中断控制器发出第一中断信号,此时处理器中的微处理器开始对写入的所有数据流执行预先配置的计算流程(即进行离线计算)。当所有计算流程执行完毕后,处理器中的中断控制器向弹性计算管理器发出第二中断信号,以使弹性计算管理器通过协议控制器告知主机端数据处理完成。
可以理解的是,上述弹性计算管理器除控制处理核心进行模式切换之外,还主要负责处理微处理器的中断信号、以及协议控制器的事务层中IO子协议报文的转换。例如,当主机端通过IO子协议将处理核心的中断寄存器置为有效值时,弹性计算管理器通过中断控制器提交触发事件,以触发微处理器执行离线处理。当微处理器执行完计算流程时,通过内存映射总线修改对应寄存器,然后弹性计算管理器生成信息信号中断(Message SignaledInterrupt,MSI)或扩充信息信号中断(Message Signaled Interrupts eXtended,MSI-X)报文并通过协议控制器的事务层的IO子协议提交至主机端,以告知主机端可以进行处理后数据的读取。
在一个实施例中,如图9所示,所述处理核心包括所述处理器和所述处理引擎,所述协议控制器与所述处理引擎连接,所述处理引擎与所述处理器连接,所述弹性计算管理器分别与所述处理引擎和所述处理器连接,所述处理器与所述内存连接。
可以理解的是,本申请实施例利用处理器和处理引擎构建了一种异构的处理核心,使得处理核心通过处理器和处理引擎的模式切换,能够自适应地支持对数据的在线处理和/或离线处理,可以进一步提升处理核心的灵活性和便捷开发性。
处理引擎处于整个处理核心的上游环节,通过数据总线分别与协议控制器和处理器连接,对自身当前接收到的数据流进行在线计算,且可以通过对需要转发至处理器的数据流嵌入控制状态参数,以将处理器切换为旁路模式或工作模式。处理器处于整个处理核心的下游环节,分别与处理引擎和内存连接,不同于处于上游环节的处理引擎,多核处理器作为下游引擎,处理方式更灵活,这主要有两个原因:一个是处理器的处理对象包括整个内存区域,而不仅仅局限于当前主机端读取或写入的数据流;另一个是编程方式的灵活性,处理器可以借助操作系统环境中各种优秀的库函数以及多核处理器的多线程机制实现离线计算。
作为一种可能的实施方式,如图8所示,所述处理器包括微处理器(该微处理器可以包括1个或多个CPU)和缓存一致性单元(Cache Coherency Unit,CCU),所述缓存一致性单元分别与所述处理引擎、所述内存和所述微处理器连接,其中:
所述微处理器,用于在所述处理器处于工作模式的情况下,根据所述微处理器被预先配置的计算流程,对所述缓存一致性单元接收到的所述目标数据请求所关联的数据进行离线处理,以及,在所述处理器处于旁路模式的情况下,不对所述缓存一致性单元接收到的所述目标数据请求所关联的数据进行离线处理;
所述缓存一致性单元,用于在所述处理器处于工作模式的情况下,将自身接收到的所述目标数据请求所关联的数据提交至所述微处理器进行离线处理,在所述处理器处于旁路模式的情况下,将自身接收到的所述目标数据请求所关联的数据直接提交至所述内存或所述处理引擎。
可以理解的是,缓存一致性单元可以用于转发自身接收到的数据流、缓存处理器执行数据处理操作所需要的内存数据、以及维护缓存的一致性。其中,可以基于硬件或软件方式来刷新微处理器的缓存,以维护缓存与内存的一致性。
可选地,可以设置微处理器开启CCU的缓存嗅探功能来对微处理器的缓存进行刷新,由此无需再通过软件方式刷新缓存,从而提升了处理效率。
可选地,如图8所示,所述处理器还包括内存控制器,所述内存控制器分别与所述缓存一致性单元和所述内存连接,其中:
所述内存控制器用于对所述内存写入自身接收到的数据(如写请求数据流),或根据所述主机端发出的读请求(或微处理器发出的数据读取请求,用于获取微处理器处理接收到的读写请求流所需的数据),从所述内存中读取数据,并将自身读取到的数据提交至所述缓存一致性单元进行转发或缓存。其中,CCU可以在将上述数据读取请求提交至内存控制器的过程中,对微处理器的缓存相应进行刷新,从而维护缓存一致性,使得微处理器可以使用当前最新的内存数据执行数据处理。
作为一种可能的实施方式,所述微处理器,还用于在所述处理器处于工作模式的情况下,开启所述缓存一致性单元的缓存嗅探功能,以使所述缓存一致性单元刷新所述处理器的缓存;
所述微处理器,还用于在所述处理器处于旁路模式的情况下,关闭所述缓存一致性单元的缓存嗅探功能,以使所述缓存一致性单元不刷新所述处理器的缓存。
在该实施例中,考虑到在处理器处于工作模式的情况下,微处理器需要根据缓存的数据执行数据处理操作,故微处理器可以控制CCU开启缓存嗅探功能,以在CCU接收到数据时及时刷新缓存,以维护缓存一致性;在处理器处于旁路模式的情况下,由于微处理器不执行数据处理操作,故微处理器可以控制CCU关闭缓存嗅探功能,不对缓存进行刷新,以降低时延。
第二方面,本申请实施例提供了一种数据处理系统,该系统包括主机端、以及如第一方面所述的内存扩展装置,所述主机端与所述内存扩展装置连接。
可选地,所述系统包括至少两个所述内存扩展装置,所述系统还包括交换机设备,所述主机端与所述交换机设备连接,所述交换机设备分别与至少两个所述内存扩展装置连接。
在该实施例中,如图10所示,在主机端的接口(如CXL接口)数量有限的情况下,可以使用交换机来连接多个如本申请实施例所述的内存扩展设备,每个内存扩展设备依次经过交换机和CXL接口与主机端的CPU连接,由此可以通过将CPU的部分运算卸载至内存扩展设备,来减少CPU通过交换机访问内存扩展设备的总时延,从而提高CPU执行计算任务的效率。
由上述技术方案可以看出,通过在内存扩展装置内部的协议控制器与内存之间设置处理核心,由弹性计算管理器控制处理核心通过不同的数据处理路径,执行不同计算任务所需的数据处理操作,从而实现了一种支持可编程的内联计算功能的通用内存扩展装置,可以满足不同计算任务的计算需求,由此可以将主机端的部分运算卸载到该内存扩展装置上,由内存扩展装置内部进行计算任务相关的内存访问和数据处理操作,以使主机端执行计算任务过程中所涉及的主机端和内存扩展装置之间的大量高时延内存访问,被内存扩展设备内部的低时延访问代替,从而降低主机端执行计算任务的总时延,提高主机端对计算任务的执行效率。
第三方面,本申请实施例提供了一种数据处理方法,该数据处理方法应用于如第一方面的实施例所公开的内存扩展装置,该方法可以包括以下步骤:
步骤S101:协议控制器接收主机端发出的目标数据请求;
步骤S102:弹性计算管理器根据所述目标数据请求,切换处理核心的处理模式;
步骤S103:所述处理核心通过自身所处的处理模式所对应的数据处理路径,对所述目标数据请求所关联的目标数据执行数据处理操作,并将处理后的目标数据提交至内存或经过所述协议控制器转发至所述主机端;
其中,所述数据处理路径至少包括:以在线处理方式和/或离线处理方式对所述目标数据执行数据处理操作所各自对应的数据处理路径。
由上述技术方案可以看出,通过在内存扩展装置内部的协议控制器与内存之间设置处理核心,由弹性计算管理器控制处理核心通过不同的数据处理路径,执行不同计算任务所需的数据处理操作,从而实现了一种支持可编程的内联计算功能的通用内存扩展装置,可以满足不同计算任务的计算需求,由此可以将主机端的部分运算卸载到该内存扩展装置上,由内存扩展装置内部进行计算任务相关的内存访问和数据处理操作,以使主机端执行计算任务过程中所涉及的主机端和内存扩展装置之间的大量高时延内存访问,被内存扩展设备内部的低时延访问代替,从而降低主机端执行计算任务的总时延,提高主机端对计算任务的执行效率。
作为一种可能的实施方式,所述处理核心包括处理引擎和处理器,所述弹性计算管理器分别与所述处理引擎和所述处理器连接;
所述弹性计算管理器根据所述目标数据请求,切换处理核心的处理模式,包括:
所述弹性计算管理器根据所述目标数据请求,切换所述处理引擎和所述处理器的处理模式;
所述方法还包括:
所述处理引擎根据自身所处的处理模式,选择以在线处理方式对经过所述处理引擎的数据执行数据处理操作,或选择不对经过所述处理引擎的数据执行数据处理操作;
所述处理器根据自身所处的处理模式,选择以离线处理方式对经过所述处理器的数据执行数据处理操作,或选择不对经过所述处理器的数据执行数据处理操作。
作为一种可能的实施方式,所述处理核心通过自身所处的处理模式所对应的数据处理路径,对所述目标数据请求所关联的目标数据执行数据处理操作,包括:
在所述处理引擎处于工作模式,且所述处理器处于旁路模式的情况下,所述处理核心通过第一数据处理路径对经过所述处理核心的数据以在线处理方式执行数据处理操作;
在所述处理引擎处于直通模式,且所述处理器处于工作模式的情况下,所述处理核心通过第二数据处理路径对经过所述处理核心的数据以离线处理方式执行数据处理操作;
在所述处理引擎处于工作模式,且所述处理器处于工作模式的情况下,所述处理核心通过第三数据处理路径对经过所述处理核心的数据以在线处理方式和离线处理方式执行数据处理操作;
在所述处理引擎处于直通模式,且所述处理器处于旁路模式的情况下,所述处理核心通过第四数据处理路径不对经过所述处理核心的数据执行数据处理操作。
作为一种可能的实施方式,所述处理引擎包括写请求数据流处理单元和读请求数据流处理单元;
所述弹性计算管理器根据所述目标数据请求,切换处理引擎的处理模式,包括:
所述弹性计算管理器根据所述目标数据请求,选择将所述写请求数据流处理单元和所述读请求数据流处理单元中的至少一项切换为工作模式,以使所述处理引擎处于工作模式,或选择将所述写请求数据流处理单元和所述读请求数据流处理单元均切换为直通模式,以使所述处理引擎处于直通模式。
作为一种可能的实施方式,所述目标数据包括写请求数据流和读请求数据流中的至少一项;
所述处理引擎根据自身所处的处理模式,选择以在线处理方式对经过所述处理引擎的数据执行数据处理操作,或选择不对经过所述处理引擎的数据执行数据处理操作,包括:
所述写请求数据流处理单元在自身处于工作模式的情况下,以在线处理方式对所述第一数据处理路径或所述第三数据处理路径中的写请求数据流执行数据处理操作,在自身处于直通模式的情况下,不对所述第二数据处理路径或所述第四数据处理路径中的写请求数据流执行数据处理操作;
所述读请求数据流处理单元在自身处于工作模式的情况下,以在线处理方式对所述第一数据处理路径或所述第三数据处理路径中的读请求数据流执行数据处理操作,在自身处于直通模式的情况下,不对所述第二数据处理路径或所述第四数据处理路径中的读请求数据流执行数据处理操作。
作为一种可能的实施方式,所述写请求数据流处理单元包括多个下行流处理核心,所述读请求数据流处理单元包括多个上行流处理核心;所述写请求数据流处理单元在自身处于工作模式的情况下,以在线处理方式对所述第一数据处理路径或所述第三数据处理路径中的写请求数据流执行数据处理操作,包括:
所述多个下行流处理核心在所述写请求数据流处理单元处于工作模式的情况下,并行地对经过所述写请求数据流处理单元的写请求数据流执行数据处理操作;
所述多个上行流处理核心在所述读请求数据流处理单元处于工作模式的情况下,并行地对经过所述读请求数据流处理单元的读请求数据流执行数据处理操作。
作为一种可能的实施方式,所述处理器包括微处理器和缓存一致性单元,所述缓存一致性单元分别与所述处理引擎、所述内存和所述微处理器连接;
所述处理器根据自身所处的处理模式,选择以离线处理方式对经过所述处理器的数据执行数据处理操作,或选择不对经过所述处理器的数据执行数据处理操作,包括:
所述微处理器在所述处理器处于工作模式的情况下,根据所述微处理器被预先配置的计算流程,对所述缓存一致性单元接收到的所述目标数据进行离线处理,以及,在所述处理器处于旁路模式的情况下,不对所述缓存一致性单元接收到的所述目标数据进行离线处理;
所述方法还包括:
所述缓存一致性单元在所述处理器处于工作模式的情况下,将自身接收到的所述目标数据提交至所述微处理器进行离线处理,在所述处理器处于旁路模式的情况下,将自身接收到的所述目标数据直接提交至所述内存或所述处理引擎。
作为一种可能的实施方式,所述方法还包括:
所述微处理器在所述处理器处于工作模式的情况下,开启所述缓存一致性单元的缓存嗅探功能,以使所述缓存一致性单元刷新所述处理器的缓存;
所述微处理器在所述处理器处于旁路模式的情况下,关闭所述缓存一致性单元的缓存嗅探功能,以使所述缓存一致性单元不刷新所述处理器的缓存。
作为一种可能的实施方式,所述目标数据包括写请求数据流,所述处理器还包括中断控制器,所述中断控制器分别与所述弹性计算管理器和所述微处理器连接;
所述方法还包括:
所述弹性计算管理器在所述处理器接收到所述目标数据的情况下,向所述中断控制器发出第一中断信号,以及,响应于接收到第二中断信号,触发所述协议控制器向所述主机端发送数据处理完成的信息;
所述中断控制器响应于接收到所述第一中断信号,触发所述微处理器执行离线处理,以及,在所述微处理器对所述目标数据完成数据处理操作的情况下,向所述弹性计算管理器发送所述第二中断信号。
作为一种可能的实施方式,所述方法还包括:
所述处理引擎根据自身接收到的所述目标数据中的第一参数,切换自身的处理模式。
作为一种可能的实施方式,所述方法还包括:
所述处理引擎对自身接收到的所述目标数据添加第二参数并发送给所述处理器;
所述处理器根据自身接收到的所述目标数据中的第二参数,切换自身的处理模式。
作为一种可能的实施方式,所述处理器为多核处理器,所述多核处理器包括硬核处理器或软核处理器。
作为一种可能的实施方式,所述内存包括第一区域和第二区域,所述第一区域用于存储未被所述处理核心处理过的数据,所述第二区域用于存储被所述处理核心处理过的数据。
作为一种可能的实施方式,所述处理核心包括用于以在线处理方式对所述目标数据执行数据处理操作的处理引擎,所述目标数据包括写请求数据流,所述处理引擎还包括元数据接口,所述处理引擎中的写请求数据流处理单元分别与所述元数据接口和所述第二区域连接,所述元数据接口与所述第一区域连接,所述方法还包括:
所述写请求数据流处理单元将所述主机端经过所述协议控制器提交的所述写请求数据流,经过所述元数据接口直接提交至所述第一区域,以及,对所述写请求数据流执行数据处理操作,并将处理后的写请求数据流提交至所述第二区域。
作为一种可能的实施方式,所述处理核心包括用于以在线处理方式对所述目标数据执行数据处理操作的处理引擎,所述目标数据包括读请求数据流,所述处理引擎包括读请求数据流处理单元,所述处理引擎中的读请求数据流处理单元分别与所述元数据接口和所述第二区域连接,所述元数据接口与所述第一区域连接,所述方法还包括:
所述弹性计算管理器在所述主机端发出的目标数据请求包括第一读取请求的情况下,控制所述读请求数据流处理单元执行第一读取操作,接收所述第一区域经过所述元数据接口提交的读请求数据流,并将接收到的读请求数据流经过所述协议控制器直接转发至所述主机端;
所述弹性计算管理器在所述主机端发出的目标数据请求包括第二读取请求的情况下,控制所述读请求数据流处理单元执行第二读取操作,对所述第一区域或所述第二区域提交的读请求数据流执行数据处理操作,将处理后的读请求数据流经过所述协议控制器转发至所述主机端,或将所述第二区域提交的读请求数据流经过所述协议控制器转发至所述主机端。
作为一种可能的实施方式,所述处理引擎还包括控制状态寄存器,所述控制状态寄存器分别与所述读请求数据流处理单元和所述弹性计算管理器连接,所述方法还包括:
所述弹性计算管理器通过所述控制状态寄存器控制所述读请求数据流处理单元执行所述第一读取操作或执行所述第二读取操作。
作为一种可能的实施方式,所述处理器分别与所述第一区域和所述第二区域连接,所述方法还包括:
所述处理器以离线处理方式对所述主机端经过所述协议控制器提交的所述写请求数据流执行数据处理操作,将处理后的写请求数据提交至所述第二区域,以及,以离线处理方式对所述第一区域和/或所述第二区域提交的所述读请求数据流执行数据处理操作,将处理后的读请求数据流经过所述协议控制器转发至所述主机端。
本申请实施例提供的数据处理方法能够实现第一方面所述的内存扩展装置中的处理核心侧的实施例实现的各个过程,并达到相同的技术效果,为避免重复,这里不再赘述。
本申请实施例还提供了一种电子设备,参照图11,图11是本申请实施例提出的电子设备的示意图。如图11所示,电子设备100包括:存储器110和处理器120,存储器110与处理器120之间通过总线通信连接,存储器110中存储有计算机程序,该计算机程序可在处理器120上运行,进而实现本申请实施例公开的所述数据处理方法中的步骤。
本申请实施例还提供了一种计算机可读存储介质,参见图12,图12是本申请实施例提出的计算机可读存储介质的示意图。如图12所示,计算机可读存储介质200上存储有计算机程序/指令210,该计算机程序/指令210被处理器执行时实现如本申请实施例公开的所述数据处理方法中的步骤。
本申请实施例还提供了一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现如本申请实施例公开的所述数据处理方法中的步骤。
其中,所述处理器包括上述实施例所述的内存扩展装置中的处理核心和弹性计算管理器,所述可读存储介质,包括计算机可读存储介质,如计算机只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。此外,需要指出的是,本申请实施方式中的方法和装置的范围不限按示出或讨论的顺序来执行功能,还可包括根据所涉及的功能按基本同时的方式或按相反的顺序来执行功能,例如,可以按不同于所描述的次序来执行所描述的方法,并且还可以添加、省去、或组合各种步骤。另外,参照某些示例所描述的特征可在其他示例中被组合。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以计算机软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端执行本申请各个实施例所述的方法。
上面结合附图对本申请的实施例进行了描述,但是本申请并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本申请的启示下,在不脱离本申请宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本申请的保护之内。
Claims (20)
1.一种内存扩展装置,其特征在于,所述内存扩展装置包括处理核心、协议控制器、弹性计算管理器和内存,所述协议控制器用于连接主机端,所述处理核心分别与所述协议控制器、所述弹性计算管理器和所述内存连接,所述协议控制器与所述弹性计算管理器连接,其中:
所述协议控制器,用于与所述主机端通信,接收所述主机端发出的目标数据请求;
所述弹性计算管理器,用于根据所述目标数据请求,切换所述处理核心的处理模式;
所述处理核心,用于根据自身所处的不同处理模式,通过不同的数据处理路径对所述目标数据请求所关联的目标数据执行数据处理操作,并将处理后的目标数据提交至内存或经过所述协议控制器转发至所述主机端;
其中,所述不同的数据处理路径至少包括:以在线处理方式和/或离线处理方式对所述目标数据执行数据处理操作所各自对应的数据处理路径。
2.根据权利要求1所述的装置,其特征在于,所述处理核心包括处理引擎和处理器,所述弹性计算管理器分别与所述处理引擎和所述处理器连接,其中:
所述弹性计算管理器,用于根据所述目标数据请求,切换所述处理引擎和所述处理器的处理模式;
所述处理引擎,用于根据自身所处的处理模式,选择以在线处理方式对经过所述处理引擎的数据执行数据处理操作,或选择不对经过所述处理引擎的数据执行数据处理操作;
所述处理器,用于根据自身所处的处理模式,选择以离线处理方式对经过所述处理器的数据执行数据处理操作,或选择不对经过所述处理器的数据执行数据处理操作。
3.根据权利要求2所述的装置,其特征在于,所述处理核心,还用于执行以下至少一项:
在所述处理引擎处于工作模式,且所述处理器处于旁路模式的情况下,通过第一数据处理路径对经过所述处理核心的数据以在线处理方式执行数据处理操作;
在所述处理引擎处于直通模式,且所述处理器处于工作模式的情况下,通过第二数据处理路径对经过所述处理核心的数据以离线处理方式执行数据处理操作;
在所述处理引擎处于工作模式,且所述处理器处于工作模式的情况下,通过第三数据处理路径对经过所述处理核心的数据以在线处理方式和离线处理方式执行数据处理操作;
在所述处理引擎处于直通模式,且所述处理器处于旁路模式的情况下,通过第四数据处理路径不对经过所述处理核心的数据执行数据处理操作。
4.根据权利要求3所述的装置,其特征在于,所述处理引擎包括写请求数据流处理单元和读请求数据流处理单元,其中:
所述弹性计算管理器,用于根据所述目标数据请求,选择将所述写请求数据流处理单元和所述读请求数据流处理单元中的至少一项切换为工作模式,以使所述处理引擎处于工作模式,或选择将所述写请求数据流处理单元和所述读请求数据流处理单元均切换为直通模式,以使所述处理引擎处于直通模式。
5.根据权利要求4所述的装置,其特征在于,所述目标数据包括写请求数据流和读请求数据流中的至少一项,其中:
所述写请求数据流处理单元,用于在自身处于工作模式的情况下,以在线处理方式对所述第一数据处理路径或所述第三数据处理路径中的写请求数据流执行数据处理操作,在自身处于直通模式的情况下,不对所述第二数据处理路径或所述第四数据处理路径中的写请求数据流执行数据处理操作;
所述读请求数据流处理单元,用于在自身处于工作模式的情况下,以在线处理方式对所述第一数据处理路径或所述第三数据处理路径中的读请求数据流执行数据处理操作,在自身处于直通模式的情况下,不对所述第二数据处理路径或所述第四数据处理路径中的读请求数据流执行数据处理操作。
6.根据权利要求5所述的装置,其特征在于,所述写请求数据流处理单元包括多个下行流处理核心,和/或,所述读请求数据流处理单元包括多个上行流处理核心,其中:
所述多个下行流处理核心,用于在所述写请求数据流处理单元处于工作模式的情况下,并行地对经过所述写请求数据流处理单元的写请求数据流执行数据处理操作;
所述多个上行流处理核心,用于在所述读请求数据流处理单元处于工作模式的情况下,并行地对经过所述读请求数据流处理单元的读请求数据流执行数据处理操作。
7.根据权利要求3所述的装置,其特征在于,所述处理器包括微处理器和缓存一致性单元,所述缓存一致性单元分别与所述处理引擎、所述内存和所述微处理器连接,其中:
所述微处理器,用于在所述处理器处于工作模式的情况下,根据所述微处理器被预先配置的计算流程,对所述缓存一致性单元接收到的所述目标数据进行离线处理,以及,在所述处理器处于旁路模式的情况下,不对所述缓存一致性单元接收到的所述目标数据进行离线处理;
所述缓存一致性单元,用于在所述处理器处于工作模式的情况下,将自身接收到的所述目标数据提交至所述微处理器进行离线处理,在所述处理器处于旁路模式的情况下,将自身接收到的所述目标数据直接提交至所述内存或所述处理引擎。
8.根据权利要求7所述的装置,其特征在于,所述微处理器,还用于在所述处理器处于工作模式的情况下,开启所述缓存一致性单元的缓存嗅探功能,以使所述缓存一致性单元刷新所述处理器的缓存;
所述微处理器,还用于在所述处理器处于旁路模式的情况下,关闭所述缓存一致性单元的缓存嗅探功能,以使所述缓存一致性单元不刷新所述处理器的缓存。
9.根据权利要求7所述的装置,其特征在于,所述目标数据包括写请求数据流,所述处理器还包括中断控制器,所述中断控制器分别与所述弹性计算管理器和所述微处理器连接,其中:
所述弹性计算管理器,还用于在所述处理器接收到所述目标数据的情况下,向所述中断控制器发出第一中断信号,以及,用于响应于接收到第二中断信号,触发所述协议控制器向所述主机端发送数据处理完成的信息;
所述中断控制器,用于响应于接收到所述第一中断信号,触发所述微处理器执行离线处理,以及,用于在所述微处理器对所述目标数据完成数据处理操作的情况下,向所述弹性计算管理器发送所述第二中断信号。
10.根据权利要求2所述的装置,其特征在于,所述处理引擎,还用于根据自身接收到的所述目标数据中的第一参数,切换自身的处理模式。
11.根据权利要求10所述的装置,其特征在于,所述处理引擎,还用于对自身接收到的所述目标数据添加第二参数并发送给所述处理器;
所述处理器,还用于根据自身接收到的所述目标数据中的第二参数,切换自身的处理模式。
12.根据权利要求2-11任一所述的装置,其特征在于,所述处理器为多核处理器,所述多核处理器包括硬核处理器或软核处理器。
13.根据权利要求1-11任一所述的装置,其特征在于,所述内存包括第一区域和第二区域,所述第一区域用于存储未被所述处理核心处理过的数据,所述第二区域用于存储被所述处理核心处理过的数据。
14.根据权利要求13所述的装置,其特征在于,所述处理核心包括用于以在线处理方式对所述目标数据执行数据处理操作的处理引擎,所述目标数据包括写请求数据流,所述处理引擎还包括元数据接口,所述处理引擎中的写请求数据流处理单元分别与所述元数据接口和所述第二区域连接,所述元数据接口与所述第一区域连接,其中:
所述写请求数据流处理单元,还用于将所述主机端经过所述协议控制器提交的所述写请求数据流,经过所述元数据接口直接提交至所述第一区域,以及,对所述写请求数据流执行数据处理操作,并将处理后的写请求数据流提交至所述第二区域。
15.根据权利要求13所述的装置,其特征在于,所述处理核心包括用于以在线处理方式对所述目标数据执行数据处理操作的处理引擎,所述目标数据包括读请求数据流,所述处理引擎还包括元数据接口,所述处理引擎中的读请求数据流处理单元分别与所述元数据接口和所述第二区域连接,所述元数据接口与所述第一区域连接,其中:
所述弹性计算管理器,还用于在所述主机端发出的目标数据请求包括第一读取请求的情况下,控制所述读请求数据流处理单元执行第一读取操作,接收所述第一区域经过所述元数据接口提交的读请求数据流,并将接收到的读请求数据流经过所述协议控制器直接转发至所述主机端;
所述弹性计算管理器,还用于在所述主机端发出的目标数据请求包括第二读取请求的情况下,控制所述读请求数据流处理单元执行第二读取操作,对所述第一区域或所述第二区域提交的读请求数据流执行数据处理操作,将处理后的读请求数据流经过所述协议控制器转发至所述主机端,或将所述第二区域提交的读请求数据流经过所述协议控制器转发至所述主机端。
16.根据权利要求15所述的装置,其特征在于,所述处理引擎还包括控制状态寄存器,所述控制状态寄存器分别与所述读请求数据流处理单元和所述弹性计算管理器连接,其中:
所述弹性计算管理器,还用于通过所述控制状态寄存器控制所述读请求数据流处理单元执行所述第一读取操作或执行所述第二读取操作。
17.根据权利要求13所述的装置,其特征在于,处理器分别与所述第一区域和所述第二区域连接,其中:
所述处理器,用于以离线处理方式对所述主机端经过所述协议控制器提交的写请求数据流执行数据处理操作,将处理后的写请求数据提交至所述第二区域,以及,以离线处理方式对所述第一区域和/或所述第二区域提交的读请求数据流执行数据处理操作,将处理后的读请求数据流经过所述协议控制器转发至所述主机端。
18.一种数据处理系统,其特征在于,所述系统包括主机端、以及如权利要求1-17任一所述的内存扩展装置,所述主机端与所述内存扩展装置连接。
19.根据权利要求18所述的系统,其特征在于,所述系统包括至少两个所述内存扩展装置,所述系统还包括交换机设备,所述主机端与所述交换机设备连接,所述交换机设备分别与至少两个所述内存扩展装置连接。
20.一种数据处理方法,其特征在于,应用于如权利要求1-17任一所述的内存扩展装置,所述方法包括:
协议控制器接收主机端发出的目标数据请求;
弹性计算管理器根据所述目标数据请求,切换处理核心的处理模式;
所述处理核心通过自身所处的处理模式所对应的数据处理路径,对所述目标数据请求所关联的目标数据执行数据处理操作,并将处理后的目标数据提交至内存或经过所述协议控制器转发至所述主机端;
其中,所述数据处理路径至少包括:以在线处理方式和/或离线处理方式对所述目标数据执行数据处理操作所各自对应的数据处理路径。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311133879.2A CN116880773B (zh) | 2023-09-05 | 2023-09-05 | 一种内存扩展装置及数据处理方法、系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311133879.2A CN116880773B (zh) | 2023-09-05 | 2023-09-05 | 一种内存扩展装置及数据处理方法、系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116880773A CN116880773A (zh) | 2023-10-13 |
CN116880773B true CN116880773B (zh) | 2023-11-17 |
Family
ID=88271772
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311133879.2A Active CN116880773B (zh) | 2023-09-05 | 2023-09-05 | 一种内存扩展装置及数据处理方法、系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116880773B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117707991B (zh) * | 2024-02-05 | 2024-04-26 | 苏州元脑智能科技有限公司 | 一种数据读写方法、系统、设备及存储介质 |
CN117785758B (zh) * | 2024-02-27 | 2024-05-28 | 北京超弦存储器研究院 | Cxl模组、控制器、任务处理方法、介质和系统 |
CN117807005A (zh) * | 2024-02-29 | 2024-04-02 | 苏州元脑智能科技有限公司 | 一种内存扩展系统、服务器、内存请求方法及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103076849A (zh) * | 2012-12-26 | 2013-05-01 | 无锡江南计算技术研究所 | 可重构微服务器系统 |
CN107203411A (zh) * | 2017-04-18 | 2017-09-26 | 中国科学院计算技术研究所 | 一种基于远程ssd的虚拟机内存扩展方法及系统 |
KR20200143922A (ko) * | 2019-06-17 | 2020-12-28 | 한국전자통신연구원 | 메모리 카드 및 이를 이용한 데이터 처리 방법 |
CN114020655A (zh) * | 2022-01-05 | 2022-02-08 | 苏州浪潮智能科技有限公司 | 一种内存扩展方法、装置、设备及存储介质 |
CN115934366A (zh) * | 2023-03-15 | 2023-04-07 | 浪潮电子信息产业股份有限公司 | 服务器存储扩展方法、装置、设备、介质及整机柜系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102021121105A1 (de) * | 2020-09-28 | 2022-03-31 | Samsung Electronics Co., Ltd. | Intelligente ablagespeichervorrichtung |
-
2023
- 2023-09-05 CN CN202311133879.2A patent/CN116880773B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103076849A (zh) * | 2012-12-26 | 2013-05-01 | 无锡江南计算技术研究所 | 可重构微服务器系统 |
CN107203411A (zh) * | 2017-04-18 | 2017-09-26 | 中国科学院计算技术研究所 | 一种基于远程ssd的虚拟机内存扩展方法及系统 |
KR20200143922A (ko) * | 2019-06-17 | 2020-12-28 | 한국전자통신연구원 | 메모리 카드 및 이를 이용한 데이터 처리 방법 |
CN114020655A (zh) * | 2022-01-05 | 2022-02-08 | 苏州浪潮智能科技有限公司 | 一种内存扩展方法、装置、设备及存储介质 |
CN115934366A (zh) * | 2023-03-15 | 2023-04-07 | 浪潮电子信息产业股份有限公司 | 服务器存储扩展方法、装置、设备、介质及整机柜系统 |
Also Published As
Publication number | Publication date |
---|---|
CN116880773A (zh) | 2023-10-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN116880773B (zh) | 一种内存扩展装置及数据处理方法、系统 | |
CN110647480B (zh) | 数据处理方法、远程直接访存网卡和设备 | |
JP5301381B2 (ja) | データドリブン型アーキテクチャメッシュアレイ中のメモリアクセスデバイス制御 | |
US20090307408A1 (en) | Peer-to-Peer Embedded System Communication Method and Apparatus | |
JP5360061B2 (ja) | マルチプロセッサシステム及びその制御方法 | |
CA2924881A1 (en) | Computing architecture with peripherals | |
US7418559B2 (en) | Address snoop method and multi-processor system | |
US20070156937A1 (en) | Data transfer in multiprocessor system | |
US20070073977A1 (en) | Early global observation point for a uniprocessor system | |
JP2000293436A (ja) | パイプラインメモリシステムにおける複数のターゲットへの複数の未解決要求のサポート | |
CN108234147B (zh) | Gpdsp中基于主机计数的dma广播数据传输方法 | |
JP6294732B2 (ja) | データ転送制御装置及びメモリ内蔵装置 | |
JP4409620B2 (ja) | 演算処理装置、キャッシュメモリ制御装置及び制御方法 | |
US10346328B2 (en) | Method and apparatus for indicating interrupts | |
CN116483259A (zh) | 一种数据处理方法以及相关装置 | |
US10983932B2 (en) | Processor and information processing apparatus | |
CN111860821A (zh) | 数据流架构神经网络芯片的数据传输的控制方法及系统 | |
JP2009037639A (ja) | ストリーミングidメソッドによるdmac発行メカニズム | |
JP2000227895A (ja) | 画像データ転送装置および画像データ転送方法 | |
JP5087884B2 (ja) | データ処理ユニット、およびこれを使用したデータ処理装置 | |
WO2011030498A1 (ja) | データ処理装置及びデータ処理方法 | |
JP2002175265A (ja) | 直接メモリ・アクセス・コントローラを有するディジタル信号プロセッサにおける複数の構成素子間での信号群交換装置および方法 | |
JP6535516B2 (ja) | マルチ・プログラマブルデバイス・システムとその制御方法 | |
CN115658601A (zh) | 多核处理器系统及其控制方法 | |
EP1193606B1 (en) | Apparatus and method for a host port interface unit in a digital signal processing unit |
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 |