CN117093161B - 一种基于光收发芯片的内存管理系统、方法、介质及设备 - Google Patents
一种基于光收发芯片的内存管理系统、方法、介质及设备 Download PDFInfo
- Publication number
- CN117093161B CN117093161B CN202311359193.5A CN202311359193A CN117093161B CN 117093161 B CN117093161 B CN 117093161B CN 202311359193 A CN202311359193 A CN 202311359193A CN 117093161 B CN117093161 B CN 117093161B
- Authority
- CN
- China
- Prior art keywords
- memory
- node
- optical
- optical signal
- memory operation
- 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
- 230000015654 memory Effects 0.000 title claims abstract description 698
- 230000003287 optical effect Effects 0.000 title claims abstract description 532
- 238000000034 method Methods 0.000 title claims abstract description 41
- 238000007726 management method Methods 0.000 claims description 208
- 238000013507 mapping Methods 0.000 claims description 46
- 238000006243 chemical reaction Methods 0.000 claims description 45
- 238000004590 computer program Methods 0.000 claims description 13
- 238000004891 communication Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 18
- 230000006870 function Effects 0.000 description 18
- 238000012360 testing method Methods 0.000 description 16
- 238000012544 monitoring process Methods 0.000 description 12
- 230000006872 improvement Effects 0.000 description 8
- 230000008569 process Effects 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 7
- 238000012545 processing Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 5
- 230000009467 reduction Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 230000001419 dependent effect Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 229920001296 polysiloxane Polymers 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 239000010979 ruby Substances 0.000 description 1
- 229910001750 ruby Inorganic materials 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0661—Format or protocol conversion arrangements
-
- 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- 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/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
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)
- Software Systems (AREA)
- Optical Communication System (AREA)
Abstract
本说明书公开了一种基于光收发芯片的内存管理系统、方法、介质及设备,第一节点的服务器将内存操作指令发送给第一节点的光收发芯片设备,光收发芯片设备将内存操作指令转换成第一光信号发送给第二节点的内存管理设备,内存管理设备将第一光信号转换成内存操作指令,并执行对应操作,将内存操作结果转换成第二光信号返回第一节点的光收发芯片设备,光收发芯片设备将第二光信号转换成内存操作结果并返回第一节点的服务器,服务器接收内存操作结果。系统中的各节点之间不再依赖TCP协议,通过光链路传输操作指令以及返回操作结果。实现了高速低延时的内存共享,还能减少对处理器计算资源的占用,提高系统运行效率,提高内存资源的使用率。
Description
技术领域
本说明书涉及计算机技术领域,尤其涉及一种基于光收发芯片的内存管理系统、方法、介质及设备。
背景技术
目前,服务器有三个重要的性能评价指标,分别是处理器的计算性能、内存容量以及输入/输出接口的带宽。其中,计算性能可以通过处理器集群方案提升,输入/输出接口的带宽可以更新接口标准提高,如PCI-Express 5.0、400G以太网等高速接口,但内存容量依然是提升服务器性能的一个瓶颈。
现有技术中,分布式系统使用基于传输控制协议(Transmission ControlProtocol,TCP)的内存共享,在TCP之上构建共享内存接口,但是TCP作为传统传输层协议存在性能不足的问题。尤其对于带宽在400G以上的以太网,传统TCP难以满足其高带宽需求。在面对大量跨设备内存访问请求时,TCP占用大量处理器的计算资源,从而导致处理器中用于业务逻辑所需的计算资源减少,影响分布式系统性能。
因此,本说明书提出了一种基于光收发芯片的内存管理系统。
发明内容
本说明书提供一种基于光收发芯片的内存管理系统、方法、介质及设备,以部分的解决现有技术存在的上述问题。
本说明书采用下述技术方案:
本说明书提供了一种基于光收发芯片的内存管理系统,所述系统为由若干节点组成的分布式系统,针对每个节点,该节点包括:服务器、光收发芯片设备以及内存管理设备,所述内存管理设备与所述服务器的内存连接,所述光收发芯片设备与所述服务器连接,其中:
第一节点的服务器,用于向所述第一节点的光收发芯片设备发送内存操作指令,所述内存操作指令包括第二节点的物理内存地址与所述第一节点的服务器虚拟内存地址的映射关系;接收所述第一节点的光收发芯片设备返回的内存操作结果;
所述第一节点的光收发芯片设备,用于根据接收到的所述内存操作指令,确定所述映射关系,并根据所述映射关系确定需要访问的所述第二节点,以及将所述内存操作指令转换成第一光信号;通过光链路向所述第二节点的内存管理设备发送所述第一光信号;接收第二光信号,并将所述第二光信号转换成所述内存操作结果;将所述内存操作结果发送至所述第一节点的服务器;
所述第二节点的内存管理设备,用于接收所述第一光信号,并将所述第一光信号转换成所述内存操作指令;根据所述内存操作指令包含的所述第二节点的物理内存地址,访问所述第二节点的内存并执行对应的操作,得到内存操作结果;将所述内存操作结果转换成所述第二光信号,通过所述光链路发送至所述第一节点的光收发芯片设备。
可选的,所述光收发芯片设备至少包括:管理组件以及收发组件,其中,在所述第一节点的光收发芯片设备中:
所述管理组件,用于接收所述第一节点的服务器发送的所述内存操作指令,将所述内存操作指令发送给所述收发组件;将所述内存操作指令转换成所述第一光信号,发送给所述收发组件;接收所述收发组件返回的所述第二光信号,并将所述第二光信号换成内存操作结果;
所述收发组件,用于接收所述管理组件发送的所述内存操作指令以及所述第一光信号,根据所述映射关系确定需要访问的第二节点,以切换至与所述第二节点的内存管理设备连接的光链路,向所述第二节点的内存管理设备发送所述第一光信号;接收所述第二节点的内存管理设备返回的所述第二光信号,并返回所述管理组件。
可选的,所述管理组件至少包括:访问管理模块以及第一光电转换模块,所述收发组件至少包括:光路控制模块以及光路收发切换模块,其中,在所述第一节点的光收发芯片设备中:
所述访问管理模块,用于接收所述第一节点的服务器发送的所述内存操作指令,将所述内存操作指令发送给所述第一光电转换模块和所述光路控制模块;接收所述第一光电转换模块返回的内存操作结果,向所述第一节点的服务器返回所述内存操作结果;
所述第一光电转换模块,用于将所述内存操作指令转换成所述第一光信号,并向所述光路收发切换模块发送所述第一光信号;接收所述光路收发切换模块返回的所述第二光信号,将所述第二光信号转换成所述内存操作结果,以及向所述访问管理模块返回所述内存操作结果;
所述光路控制模块,用于根据接收到的所述内存操作指令,确定所述映射关系,并根据所述映射关系确定需要访问的第二节点,将所述第二节点的标识发送至所述光路收发切换模块;
所述光路收发切换模块,用于接收所述第一光电转换模块发送的所述第一光信号,以及接收所述光路控制模块发送的所述第二节点的标识;根据所述第二节点的标识,切换至与所述第二节点的内存管理设备连接的光链路,并通过所述光链路向所述第二节点的内存管理设备发送所述第一光信号;接收所述第二节点的内存管理设备返回的所述第二光信号,并向所述第一光电转换模块返回所述第二光信号。
可选的,所述内存管理设备至少包括:光收发模块,第二光电转换模块以及内存访问模块;所述内存访问模块与所述服务器的内存连接,其中,在所述第二节点的内存管理设备中:
所述光收发模块,用于接收所述第一光信号,并转发至所述第二光电转换模块;接收所述第二光信号,通过所述光链路向所述第一节点的光收发芯片设备返回所述第二光信号;
所述第二光电转换模块,用于将所述第一光信号转换成所述内存操作指令,向所述内存访问模块发送所述内存操作指令;接收所述内存操作结果,将所述内存操作结果转换成所述第二光信号,并向所述光收发模块返回所述第二光信号;
所述内存访问模块,用于根据所述内存操作指令包含的所述第二节点的物理内存地址,访问所述第二节点的内存并执行对应的操作,得到所述内存操作指令对应的内存操作结果;向所述第二光电转换模块返回所述内存操作结果。
可选的,内存操作指令包含指令标识,其中:
所述第二节点的内存管理设备,还用于当将所述第一光信号转换成所述内存操作指令时,确定所述指令标识;当将所述内存操作结果转换成所述第二光信号时,根据所述指令标识,确定与所述第一节点的光收发芯片设备对应的光链路,并通过所述光链路将所述第二光信号,返回所述第一节点的光收发芯片设备。
可选的,所述内存操作指令包括:写操作指令和读操作指令中的一种,其中:
第一节点的服务器,还用于当需要写入数据时,确定待写入的数据,以及根据写操作指令以及所述待写入的数据,生成内存操作指令;
所述第二节点的内存管理设备,还用于当所述内存操作指令为写操作指令时,确定所述待写入的数据,以及访问所述第二节点的内存并执行写操作,确定写操作的操作结果,作为所述内存操作结果;
所述第二节点的内存管理设备,还用于当所述内存操作指令为读操作指令时,访问所述第二节点的内存并执行读操作,确定读取的数据,将所述读取的数据作为所述内存操作结果。
可选的,第一节点的光收发芯片设备根据接收到的所述内存操作指令,确定所述映射关系,具体包括:
所述第一节点的光收发芯片设备根据接收到的所述内存操作指令,从第一节点的服务器获取第二节点的物理内存地址与所述第一节点的服务器虚拟内存地址的映射关系。
本说明书提供了一种基于光收发芯片的内存管理方法,所述方法应用于内存管理系统中第一节点的光收发芯片设备,包括:
接收内存操作指令;
根据所述内存操作指令,确定第二节点的物理内存地址与所述第一节点的服务器虚拟内存地址的映射关系;
根据所述映射关系确定需要访问的所述第二节点,以及将所述内存操作指令转换成第一光信号;
通过光链路向所述第二节点的内存管理设备发送所述第一光信号,使所述内存管理设备基于所述第一光信号访问所述第二节点的内存并执行对应的操作,得到内存操作结果,并将所述内存操作结果转换为第二光信号;
接收所述内存管理设备返回的所述第二光信号,并将所述第二光信号转换成所述内存操作结果;
将所述内存操作结果作为所述内存操作指令的执行结果返回。
本说明书提供了一种基于光收发芯片的内存管理方法,所述方法应用于内存管理系统中第二节点的内存管理设备,包括:
接收第一节点的光收发芯片设备发送的第一光信号,并将所述第一光信号转换成内存操作指令;
根据所述内存操作指令包含的第二节点的物理内存地址,访问所述第二节点的内存并执行对应的操作,得到内存操作结果;
将所述内存操作结果转换成第二光信号,通过光链路返回所述第一节点的光收发芯片设备。
本说明书提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述内存管理方法。
本说明书采用的上述至少一个技术方案能够达到以下有益效果:
本说明书提供的基于光收发芯片的内存管理系统中,系统为由若干节点组成的分布式系统,每个节点包括:服务器、光收发芯片设备以及内存管理设备,内存管理设备与服务器的内存连接,光收发芯片设备与服务器连接。第一节点的服务器将内存操作指令发送给第一节点的光收发芯片设备,光收发芯片设备将内存操作指令转换成第一光信号发送给第二节点的内存管理设备,内存管理设备将第一光信号转换成内存操作指令,并执行对应操作,将内存操作结果转换成第二光信号返回第一节点的光收发芯片设备,光收发芯片设备将第二光信号转换成内存操作结果并返回第一节点的服务器,服务器接收内存操作结果。
可见,系统中的各节点之间的跨设备内存访问,不再依赖TCP协议,而是通过光链路传输操作指令以及返回操作结果。避免了采用TCP协议导致的延迟较大、性能不足的问题。实现了在分布式系统中高速低延时的内存共享,并且还能减少对处理器计算资源的占用,提高了系统运行效率,提高服务器内存资源的使用率。
附图说明
此处所说明的附图用来提供对本说明书的进一步理解,构成本说明书的一部分,本说明书的示意性实施例及其说明用于解释本说明书,并不构成对本说明书的不当限定。在附图中:
图1为本说明书中提供的一种基于光收发芯片的内存管理系统的结构示意图;
图2为本说明书中提供的一种基于光收发芯片的内存管理系统中光收发芯片设备的结构示意图;
图3为本说明书提供的一种基于光收发芯片的内存管理系统中光收发芯片设备的结构示意图;
图4为本说明书提供的一种基于光收发芯片的内存管理系统中内存管理设备的示意图;
图5为本说明书提供的一种基于光收发芯片的内存管理方法的流程图;
图6为本说明书提供的一种基于光收发芯片的内存管理方法的流程图;
图7为本说明书提供的图5为本说明书提供的一种基于光收发芯片的内存管理装置的示意图;
图8为本说明书提供的图6为本说明书提供的一种基于光收发芯片的内存管理装置的示意图。
具体实施方式
为使本说明书的目的、技术方案和优点更加清楚,下面将结合本说明书具体实施例及相应的附图对本说明书技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
以下结合附图,详细说明本说明书各实施例提供的技术方案。
图1为本说明书中提供的基于光收发芯片设备的内存管理系统的结构示意图,该系统由多个节点组成。当然,该系统具体用于执行何种业务,本说明书不做限制,具体可根据需要设置。例如,该系统为分布式业务系统,用于处理并发的海量业务请求,或者该系统为分布式计算平台,用于提供高性能计算解决方案,等等。在该系统中,各节点之间的内存共享使用,因此对于每一个节点来说,该节点需要跨设备访问其他节点的内存。基于此,本说明书提供的内存管理系统中的各节点,针对每一个节点,该节点包括:服务器、光收发芯片设备以及内存管理设备,其中内存管理设备与服务器的内存连接,光收发芯片设备与服务器连接。该服务器内部各种器件之间通过传输电信号通信,服务器与光收发芯片设备之间也通过传输电信号通信,服务器与内存管理设备之间同样通过传输电信号进行相互通信,在图1中用实线表示。一个节点的光收发芯片设备可以与其他节点的内存管理设备通过光链路连接,一个节点的内存管理设备也可以与其他节点的光收发芯片设备通过光链路连接,在图1中用虚线表示。本说明书对光链路如何实现不做限制,例如节点之间光收发芯片设备与内存管理设备可以通过光纤进行通信。
在本说明书中,为了方便描述,将该系统中需要访问其他节点的内存的节点,称为第一节点,而被第一节点访问的节点,称为第二节点。
对于该系统中的任一节点来说,当该节点的服务器在执行业务时,需要先确定执行业务所需的数据。于是,该节点的服务器可以先判断,该服务器的内存中是否存储有该数据。若是,则该服务器可从本地获取执行业务所需的数据,以执行对应的业务。但是,若该服务器的内存未存储该数据,则说明该服务器需要跨设备访问其他节点的服务器内存,以获取该数据。于是该节点为第一节点。
在本说明书一个或多个实施例中,当确定需要跨设备访问其他节点的内存时,该第一节点的服务器,可先根据预先存储的虚拟内存地址与物理内存地址的映射列表,确定需要访问的虚拟内存地址所对应的物理内存地址,该物理内存地址为第二节点的服务器中内存的物理地址。之后,便可根据需要执行对应的操作以及该第二节点的物理内存地址,生成内存操作指令。
在本说明书实施例中,该服务器生成的内存操作指令对应的操作包括增、删、改、查。例如,在服务器中增加一条新的用户数据、删除重复的数据、更改用户信息以及查询任务进程信息等等。
在本说明书一个或多个实施例中,为了将内存操作指令以光信号的形式发送至第二节点,本说明书中使用光收发芯片设备将内存操作指令转换成光信号发送至第二节点。
具体的,第一节点的服务器将内存操作指令发送至第一节点的光收发芯片设备。
第一节点的光收发芯片设备接收到该内存操作指令之后,解析该内存操作指令,得到第一节点的服务器虚拟内存地址与第二节点的物理内存地址的映射关系。
确定需要访问的虚拟内存地址所对应的物理内存地址,确定需要访问的第二节点。
将内存操作指令转换成第一光信号,通过光链路发送给第二节点的内存管理设备。
在本说明书一个或多个实施例中,第二节点的内存管理设备接收第一节点的光收发芯片设备发送的第一光信号,并将该第一光信号转换成内存操作指令。
第二节点的内存管理设备解析该内存操作指令,确定该内存操作指令包含的需要访问的第二节点的物理内存地址,并根据该物理内存地址访问第二节点的内存,执行内存操作指令对应的操作,得到内存操作结果。当内存操作指令所要执行的操作是增、删、改时,得到的内存操作结果为执行操作成功或者失败的信息,当内存操作指令所要执行的操作是查询时,得到的内存操作结果为需要查询的数据或者查询失败的信息。此时已经完成了对第二节点内存的内存管理操作,之后将内存操作结果返回第一节点的服务器,以告知第一节点的服务器内存操作结果。
在本说明书一个或多个实施例中,第二节点的内存管理设备将内存操作结果转换成第二光信号,并通过光链路将该第二光信号返回第一节点的光收发芯片设备。
在本说明书一个或多个实施例中,第一节点的光收发芯片设备接收第二节点的内存管理设备返回的第二光信号,并将第二光信号转换成内存操作结果,以及将内存操作结果返回第一节点的服务器。
在本说明书一个或多个实施例中,第一节点的服务器接收第一节点的光收发芯片设备返回的内存操作结果。后续是要对该内存操作结果进行使用,或者是执行其他内存操作任务,都可以在该分布式系统中进行,本说明书对此不做限制。
图1所示的基于光收发芯片的内存管理系统中,系统为由若干节点组成的分布式系统,每个节点包括:服务器、光收发芯片设备以及内存管理设备,内存管理设备与服务器的内存连接,光收发芯片设备与服务器连接。第一节点的服务器向第一节点的光收发芯片设备发送内存操作指令。第一节点的光收发芯片设备根据接收到的内存操作指令,确定需要访问的第二节点,并将内存操作指令转换成第一光信号发送给第二节点的内存管理设备。第二节点的内存管理设备接收第一光信号并转换成内存操作指令,并根据内存操作指令执行对应的操作,得到内存操作结果并转换成第二光信号返回给第一节点的光收发芯片设备。第一节点的光收发芯片设备接收第二光信号并转换成内存操作结果,返回至第一节点的服务器。第一节点的服务器接收内存操作结果。
可见,系统中的各节点之间的跨设备内存访问,不再依赖TCP协议,而是通过光链路传输操作指令以及返回操作结果。避免了采用TCP协议导致的延迟较大、性能不足的问题。实现了在分布式系统中高速低延时的内存共享,并且还能减少对处理器计算资源的占用,提高了系统运行效率,提高服务器内存资源的使用率。同样避免了使用远程内存共享协议(Remote Direct Memory Access,RDMA)导致的配置要求高,不同标准需要不同硬件,成本高的问题。
此外,在本说明书一个或多个实施例中,本说明书中内存操作指令包含指令标识。第二节点的内存管理设备,还用于当将第一光信号转换成内存操作指令时,确定指令标识。当将内存操作结果转换成第二光信号时,根据指令标识,确定与第一节点的光收发芯片设备对应的光链路,并通过光链路将第二光信号,返回第一节点的光收发芯片设备。
在高并发的场景中,第二节点的内存管理设备接收到若干内存操作指令时,可根据内存操作指令包含的指令标识,确定该内存操作指令对应的内存操作结果返回的光链路。
具体的,该第一节点的服务器,在生成内存操作指令时,可确定该第一节点对应的指令标识,该指令标识是全局唯一的,用于标识该第一节点的标识。然后,将该指令标识作为该内存操作指令的包含的数据,生成该内存操作指令。则该内存操作指令中携带有该指令标识,以便第二节点的内存管理设备可根据该指令标识,确定该内存操作指令对应的内存操作结果需要返回的第一节点的光收发芯片设备。
第二节点的内存管理设备接收到第一光信号之后,将第一光信号转换成内存操作指令,解析内存操作指令,从而确定内存操作指令中的指令标识和该内存操作指令包含的需要访问的第二节点的物理内存地址。根据该物理内存地址访问第二节点的内存,执行对应的操作,得到内存操作结果。将内存操作结果转换成第二光信号,根据该指令标识,第二节点的内存管理设备确定内存操作结果要返回的光链路。通过该光链路将第二光信号返回第一节点的光收发芯片设备。
本说明书中内存操作指令包括:写操作指令和读操作指令中的一种。
在本说明书一个或多个实施例中,当内存操作指令为写操作指令时,第一节点的服务器,还用于当需要写入数据时,确定待写入的数据。以及根据写操作指令以及待写入的数据,生成内存操作指令。
第二节点的内存管理设备,还用于当所述内存操作指令为写操作指令时,确定待写入的数据。以及访问所述第二节点的内存并执行写操作,确定写操作的操作结果,作为内存操作结果。
具体的,在本说明书一个或多个实施例中,第一节点的服务器,当需要写入数据时,确定待写入的数据,以及根据写操作指令以及待写入的数据,生成内存操作指令。向第一节点的光收发芯片设备发送内存操作指令,内存操作指令包括第二节点的物理内存地址与第一节点的服务器虚拟内存地址的映射关系。接收第一节点的光收发芯片设备返回的内存操作结果。
在本说明书一个或多个实施例中,当内存操作指令为读操作指令时,第二节点的内存管理设备,还用于当内存操作指令为读操作指令时,访问第二节点的内存并执行读操作。确定读取的数据,将读取的数据作为内存操作结果。
具体的,在本说明书一个或多个实施例中,第一节点的服务器,向第一节点的光收发芯片设备发送读操作指令,读操作指令包括第二节点的物理内存地址与第一节点的服务器虚拟内存地址的映射关系。接收第一节点的光收发芯片设备返回的内存操作结果。
本说明书中内存操作指令还包括:删操作指令和改操作指令中的一种。
在本说明书一个或多个实施例中,当内存操作指令为删操作指令时,第一节点的服务器,还用于当需要删除数据时,确定待删除的数据。以及根据删操作指令以及待删除的数据,生成内存操作指令。
第二节点的内存管理设备,还用于当所述内存操作指令为删操作指令时,确定待删除的数据。以及访问所述第二节点的内存并执行删操作,确定删操作的操作结果,作为内存操作结果。
在本说明书一个或多个实施例中,当内存操作指令为改操作指令时,第一节点的服务器,还用于当需要更改数据时,确定待更改的数据和更改后的数据。以及根据改操作指令以及待更改的数据和更改后的数据,生成内存操作指令,以使第二节点的内存管理设备将待更改的数据改为新的数据,该新的数据为该更改后的数据。
第二节点的内存管理设备,还用于当所述内存操作指令为改操作指令时,确定待更改的数据和更改后的数据。以及访问所述第二节点的内存并执行改操作,确定改操作的操作结果,作为内存操作结果。
本说明书中内存操作指令还包括内存测试指令。
第一节点的光收发芯片设备,响应于监测到光收发芯片设备与其他节点建立新的光链路,向第一节点的服务器返回监测结果。接收第一节点的服务器发送的内存测试指令,将内存测试指令转换成第一光信号,并通过光链路发送至其他节点的内存管理设备。接收第二光信号,并将第二光信号转换成内存操作结果;将内存操作结果返回第一节点的服务器。
第一节点的服务器,用于接收第一节点的光收发芯片设备返回的监测结果。根据监测结果,向第一节点的光收发芯片设备发送内存测试指令;接收第一节点的光收发芯片设备返回的内存操作结果。根据内存操作结果中包含的第二节点的物理内存地址,将其他节点的物理内存地址与第一节点的服务器虚拟内存地址进行映射。
其他节点的内存管理设备,用于接收第一光信号,并将第一光信号转换成内存测试指令。根据内存测试指令,访问其他节点的物理内存地址,将物理内存地址作为内存操作结果。将内存操作结果转换成第二光信号,通过光链路发送至第一节点的光收发芯片设备。
具体的,在本说明书一个或多个实施例中,第一节点的光收发芯片设备,监测到光收发芯片设备与其他节点建立新的光链路后,向第一节点的服务器返回监测结果。
第一节点的服务器,接收到第一节点的光收发芯片设备返回的监测结果后,根据该监测结果,向第一节点的光收发芯片设备发送内存测试指令。
第一节点的光收发芯片设备,接收第一节点的服务器发送的内存测试指令。将内存测试指令转换成第一光信号,并通过光链路发送至其他节点的内存管理设备。
其他节点的内存管理设备接收第一光信号,并将第一光信号转换成内存测试指令。根据内存测试指令,访问该节点的物理内存地址,将物理内存地址作为内存操作结果。将内存操作结果转换成第二光信号,通过光链路发送至第一节点的光收发芯片设备。
第一节点的光收发芯片设备接收第二光信号,并将第二光信号转换成内存操作结果,将内存操作结果返回第一节点的服务器。
第一节点的服务器接收第一节点的光收发芯片设备返回的内存操作结果。根据内存操作结果中包含的第二节点的物理内存地址,将其他节点的物理内存地址与第一节点的服务器虚拟内存地址进行映射。
本说明书中对节点的扩容和缩减操作,与传统的对数据的增加和删除的操作不同,扩容操作,指针对第一节点添加新的第二节点。对节点的缩减操作,将第一节点服务器中需要缩减的第二节点的物理内存地址对应的虚拟地址删除,也可以将分布式系统中若干节点的服务器中的空闲内存卸载下来,给其他节点需要扩充内存的服务器使用。
本说明书中内存操作指令还包括内存扩容指令。
在本说明书一个或多个实施例中,第一节点的服务器,向第一节点的光收发芯片设备发送内存扩容指令。接收第一节点的光收发芯片设备返回的搭建请求,通知用户为额外的第二节点的内存管理设备与第一节点的光收发芯片设备建立光链路。
第一节点的光收发芯片设备,用于根据接收到的内存扩容指令,向第一节点的服务器返回搭建请求。开始监测额外的第二节点的内存管理设备与第一节点的光收发芯片设备连接的光链路,监测到光链路后,向第一节点的服务器返回监测结果。
具体的,在本说明书一个或多个实施例中,第一节点的服务器,向第一节点的光收发芯片设备发送内存扩容指令。
第一节点的光收发芯片设备,根据接收到的内存扩容指令,向第一节点的服务器返回搭建请求。
第一节点的服务器接收第一节点的光收发芯片设备返回的搭建请求,通知用户为额外的第二节点的内存管理设备与第一节点的光收发芯片设备建立光链路。
第一节点的光收发芯片设备,向第一节点的服务器返回搭建请求后,开始监测额外的第二节点的内存管理设备与第一节点的光收发芯片设备连接的光链路,监测到光链路后,向第一节点的服务器返回监测结果。
第一节点的服务器,接收第一节点的光收发芯片设备返回的监测结果。根据监测结果,向第一节点的光收发芯片设备发送内存测试指令。
第一节点的光收发芯片设备接收第一节点的服务器发送的内存测试指令。将内存测试指令转换成第一光信号,并通过光链路发送至第二节点的内存管理设备。
第二节点的内存管理设备,接收第一光信号,并将第一光信号转换成内存测试指令。根据内存测试指令,访问该节点的物理内存地址,将物理内存地址作为内存操作结。将内存操作结果转换成第二光信号,通过光链路发送至第一节点的光收发芯片设备。
第一节点的光收发芯片设备,接收第二光信号,并将第二光信号转换成内存操作结果,将内存操作结果返回第一节点的服务器。
第一节点的服务器,接收第一节点的光收发芯片设备返回的内存操作结果。根据内存操作结果中包含的第二节点的物理内存地址,将第二节点的物理内存地址与第一节点的服务器虚拟内存地址进行映射。
本说明书中内存操作还包括内存备份。
具体的,在本说明书一个或多个实施例中,第一节点先执行内存扩容指令,连接到新的第二节点。若待备份数据存在第一节点的服务器本地内存,第一节点执行写操作指令将待备份数据写入第二节点。若待备份数据未存在第一节点的服务器本地内存,第一节点先执行读操作将待备份数据从其他节点读取出来,再执行写操作将待备份数据写入第二节点。
本说明书中内存操作指令还包括内存缩减指令。
具体的,在本说明书一个或多个实施例中,第一节点的服务器,确定待缩减的第二节点的内存。将第二节点的物理内存地址与所述第一节点的服务器虚拟内存地址进行重映射。当然,还可以将其他节点的服务器上的内存中,在当前节点集群稳定运行后不需要的空闲内存,卸载给其他节点的服务器使用,以达到资源的最大化利用。
本说明书中第一节点的光收发芯片设备根据接收到的所述内存操作指令,确定所述映射关系。
具体的,在本说明书一个或多个实施例中,第一节点的光收发芯片设备根据接收到的内存操作指令,从第一节点的服务器获取第二节点的物理内存地址与第一节点的服务器虚拟内存地址的映射关系。
图2为本说明书中提供的一种基于光收发芯片的内存管理系统中光收发芯片设备的结构示意图,该光收发芯片设备至少包括:管理组件以及收发组件。其中,该管理组件用于根据服务器发送的内存操作指令,控制管理收发组件向第二节点发送第一光信号,以及接收收发组件返回的第二光信号,并转换为返回该服务器的内存操作结果。而该收发组件,则用于根据该管理组件的控制,切换光链路以及收发光信号。
具体的,对于第一节点中的光收发芯片设备,在进行内存管理过程中,该管理组件可接收该第一节点的服务器发送的内存操作指令,并将内存操作指令发送给收发组件。以使收发组件可根据内存操作指令中携带的映射关系,确定与第二节点的内存管理设备连接的光链路。
收发组件,用于接收管理组件发送的内存操作指令,解析该内存操作指令,确定映射关系。映射关系指需要访问的虚拟内存地址与所对应的物理内存地址的映射。
收发组件根据映射关系确定需要访问的第二节点。
收发组件根据确定出的第二节点,切换至与该第二节点的内存管理设备连接的光链路。
收发组件发送光链路切换完成的信息至管理组件。
管理组件接收到光链路切换完成的信息后,将内存操作指令转换成第一光信号,发送给收发组件。
收发组件接收到管理组件发送的第一光信号后,向第二节点的内存管理设备发送第一光信号。使第二节点的内存管理设备基于第一光信号访问第二节点的内存并执行对应的操作,得到内存操作结果,并将内存操作结果转换为第二光信号。
收发组件,接收第二节点的内存管理设备返回的第二光信号。由于第一节点的服务器需要基于内存操作结果执行后续操作,因此需要将第二光信号转换成内存操作结果,而收发组件无法进行光信号与电信号的转换,所以将第二光信号返回管理组件。
管理组件,接收收发组件返回的第二光信号,并将第二光信号换成内存操作结果。将内存操作结果作为内存操作指令的执行结果返回第一节点的服务器。
图3为本说明书提供的一种基于光收发芯片的内存管理系统中光收发芯片设备的结构示意图,管理组件至少包括:访问管理模块以及第一光电转换模块,收发组件至少包括:光路控制模块以及光路收发切换模块。
由于管理组件的功能包括收发内存操作指令,收发内存操作结果,将数据进行光信号与电信号的转换,故管理组件的包含的功能较为复杂。因此,将光信号与电信号转换的功能细化给一个专门进行光电转换的第一光电转换模块。将收发内存操作指令,收发内存操作结果的功能集中到访问管理模块,访问管理模块专门管理收发功能。将管理组件功能复杂的情况简化为两个模块,使得管理组件结构简洁,各部门功能清晰。同样的,收发组件中的收发光信号的功能,由光路收发切换模块实现。控制切换光链路的功能由光路控制模块。
其中,访问管理模块用于根据服务器发送的内存操作指令,控制管理光路控制模块确定需要访问的第二节点,将该内存操作指令发送给第一光电转换模块,以及接收第一光电转换模块返回的内存操作结果,并返回该服务器。第一光电转换模块用于接收内存操作指令和第二光信号,将内存操作指令转换成第一光信号后发送给光路收发切换模块,将第二光信号转换成内存操作结果后返回访问管理模块。光路控制模块用于根据访问管理模块的控制,切换光链路。光路收发切换模块用于收发光信号。
具体的,对于第一节点中的光收发芯片设备,在进行内存管理过程中,访问管理模块,用于接收第一节点的服务器发送的内存操作指令,将内存操作指令发送给光路控制模块。以使光路控制模块可根据内存操作指令中携带的映射关系,确定与第二节点的内存管理设备连接的光链路。
光路控制模块,用于接收访问管理模块发送的内存操作指令,解析该内存操作指令,确定映射关系。映射关系指需要访问的虚拟内存地址与所对应的物理内存地址的映射。
光路控制模块根据映射关系确定需要访问的第二节点的标识。以便光路收发切换模块切换至与该第二节点的内存管理设备连接的光链路。
光路控制模块将第二节点的标识发送给光路收发切换模块。
光路收发切换模块根据第二节点的标识,切换至与该第二节点的内存管理设备连接的光链路。
光路收发切换模块返回光链路切换完成的信息至光路控制模块。
光路控制模块返回光链路切换完成的信息至访问管理模块。
访问管理模块接收到光链路切换完成的信息后,将内存操作指令发送给第一光电转换模块。
第一光电转换模块,用于将接收到的内存操作指令转换成第一光信号,并向光路收发切换模块发送第一光信号。
光路收发切换模块,用于接收第一光电转换模块发送的第一光信号。并通过光链路向第二节点的内存管理设备发送第一光信号。使第二节点的内存管理设备基于第一光信号访问第二节点的内存并执行对应的操作,得到内存操作结果,并将内存操作结果转换为第二光信号。
光路收发切换模块,接收第二节点的内存管理设备返回的第二光信号。由于第一节点的服务器需要电信号形式的内存操作结果,需要将第二光信号转换成内存操作结果,光路收发切换模块无法进行光信号与电信号的转换,所以将第二光信号返回第一光电转换模块。
第一光电转换模块,接收光路收发切换模块返回的第二光信号,将第二光信号转换成内存操作结果,以及向访问管理模块返回内存操作结果。
访问管理模块,接收第一光电转换模块返回的内存操作结果,向第一节点的服务器返回内存操作结果。
另外,本说明书中光收发芯片设备的结构,可以至少包括管理组件、光路控制模块以及光路收发切换模块。也可以至少包括访问管理模块、第一光电转换模块以及收发组件。当然也可以是一种包含光路控制模块、光路收发切换模块、访问管理模块、第一光电转换模块功能的光收发芯片设备。本说明书在此不做限制。
本说明书中管理组件可由现场可编程门阵列(Field Programmable Gate Array,FPGA)实现,也可由专用芯片实现,本说明书在此不做限制。
图4为本说明书提供的一种基于光收发芯片的内存管理系统中内存管理设备的示意图,内存管理设备至少包括:光收发模块,第二光电转换模块以及内存访问模块。内存访问模块与服务器的内存连接。
其中,光收发模块用于接收和发送光信号。第二光电转换模块用于将第一光信号转换成内存操作指令后发送至内存访问模块,将内存操作结果转换成第二光信号后发送至光收发模块。内存访问模块用于根据内存操作指令访问第二节点的内存。
具体的,对于第二节点的内存管理设备,在进行内存管理过程中,光收发模块,用于接收第一光信号。由于内存访问模块需要内存操作指令,所以需要将第一光信号转发至第二光电转换模块,由第二光电转换模块将第一光信号转换成内存访问模块可接受的内存操作指令。
第二光电转换模块,用于将接受到的第一光信号转换成内存操作指令,向内存访问模块发送内存操作指令。
内存访问模块,用于根据内存操作指令包含的第二节点的物理内存地址,访问第二节点的内存并执行对应的操作,得到内存操作指令对应的内存操作结果。向第二光电转换模块返回内存操作结果。
第二光电转换模块,接收内存操作结果,将内存操作结果转换成第二光信号,并向光收发模块返回第二光信号。
光收发模块,接收第二光信号,通过光链路向第一节点的光收发芯片设备返回第二光信号。使第一节点的光收发芯片设备将第二光信号转换成内存操作结果,并返回第一节点的服务器。
本说明书中第二光电转换模块和内存访问模块可由FPGA实现,也可由专用芯片实现,本说明书在此不做限制。
图5为本说明书中提供的一种基于光收发芯片的内存管理方法,应用于内存管理系统中第一节点的光收发芯片设备的流程示意图,包括以下步骤:
S500:接收内存操作指令。
在本说明书一个或多个实施例中,第一节点的光收发芯片设备接收第一节点的服务器发送的内存操作指令。
S502:根据所述内存操作指令,确定第二节点的物理内存地址与所述第一节点的服务器虚拟内存地址的映射关系。
在本说明书一个或多个实施例中,第一节点的光收发芯片设备接收到内存操作指令之后,解析该内存操作指令,得到第一节点的服务器虚拟内存地址与第二节点的物理内存地址的映射关系。
S504:根据所述映射关系确定需要访问的所述第二节点,以及将所述内存操作指令转换成第一光信号。
在本说明书一个或多个实施例中,第一节点的光收发芯片设备得到映射关系后,确定需要访问的虚拟内存地址所对应的物理内存地址,确定需要访问的第二节点。并将内存操作指令转换成第一光信号。
S506:通过光链路向所述第二节点的内存管理设备发送所述第一光信号,使所述内存管理设备基于所述第一光信号访问所述第二节点的内存并执行对应的操作,得到内存操作结果,并将所述内存操作结果转换为第二光信号。
在本说明书一个或多个实施例中,第一节点的光收发芯片设备将内存操作指令转换成第一光信号后,通过光链路发送给第二节点的内存管理设备。第二节点的内存管理设备接收第一节点的光收发芯片设备发送的第一光信号,并将该第一光信号转换成内存操作指令。第二节点的内存管理设备根据该内存操作指令,执行内存操作指令对应的操作,得到内存操作结果。之后,第二节点的内存管理设备将内存操作结果转换成第二光信号,并通过光链路将该第二光信号返回第一节点的光收发芯片设备。
S508:接收所述内存管理设备返回的所述第二光信号,并将所述第二光信号转换成所述内存操作结果。
在本说明书一个或多个实施例中,第一节点的光收发芯片设备接收第二节点的内存管理设备返回的第二光信号,并将第二光信号转换成内存操作结果。
S510:将所述内存操作结果作为所述内存操作指令的执行结果返回。
在本说明书一个或多个实施例中,第一节点的光收发芯片设备将内存操作结果返回第一节点的服务器。
上述方法中步骤S500~S510的具体细节,参考前面系统的描述,在此不再详细描述。
基于图5,本说明书提供的一种基于光收发芯片的内存管理方法,应用于内存管理系统中第一节点的光收发芯片设备,进行跨设备内存访问,不再依赖TCP协议,而是通过光链路传输操作指令以及返回操作结果。避免了采用TCP协议导致的延迟较大、性能不足的问题。实现了在分布式系统中高速低延时的内存共享,并且还能减少对处理器计算资源的占用,提高了分布式系统的运行效率,提高服务器内存资源的使用率。同样避免了使用远程内存共享协议(Remote Direct Memory Access,RDMA)导致的配置要求高,不同标准需要不同硬件,成本高的问题。
图6为本说明书中提供的一种基于光收发芯片的内存管理方法,应用于内存管理系统中第二节点的内存管理设备的流程示意图,包括以下步骤:
S600:接收第一节点的光收发芯片设备发送的第一光信号,并将所述第一光信号转换成内存操作指令。
在本说明书一个或多个实施例中,第二节点的内存管理设备接收第一节点的光收发芯片设备发送的第一光信号,并将该第一光信号转换成内存操作指令。
S602:根据所述内存操作指令包含的第二节点的物理内存地址,访问所述第二节点的内存并执行对应的操作,得到内存操作结果。
在本说明书一个或多个实施例中,第二节点的内存管理设备解析该内存操作指令,确定该内存操作指令包含的需要访问的第二节点的物理内存地址,并根据该物理内存地址访问第二节点的内存,执行内存操作指令对应的操作,得到内存操作结果。之后将内存操作结果返回第一节点的服务器,以告知第一节点的服务器内存操作结果。
S604:将所述内存操作结果转换成第二光信号,通过光链路返回所述第一节点的光收发芯片设备。
在本说明书一个或多个实施例中,第二节点的内存管理设备将内存操作结果转换成第二光信号,并通过光链路将该第二光信号返回第一节点的光收发芯片设备。
同样的,上述方法中步骤S600~S604的具体细节,参考前面系统的描述,在此不再详细描述。
基于图6,本说明书提供的一种基于光收发芯片的内存管理方法,应用于内存管理系统中第二节点的内存管理设备,各节点之间的跨设备内存访问,不再依赖TCP协议,而是通过光链路传输操作指令以及返回操作结果。避免了采用TCP协议导致的延迟较大、性能不足的问题。实现了在分布式系统中高速低延时的内存共享,并且还能减少对处理器计算资源的占用,提高了系统运行效率,提高服务器内存资源的使用率。同样避免了使用远程内存共享协议(Remote Direct Memory Access,RDMA)导致的配置要求高,不同标准需要不同硬件,成本高的问题。
根据本说明书的一个或多个实施例提供的一种基于光收发芯片的内存管理方法,基于同样的思路,本说明书还提供了相应的一种基于光收发芯片的内存管理装置,如图7和图8所示。
图7为本说明书提供的一种基于光收发芯片的内存管理装置的示意图,所述装置应用于执行所述基于光收发芯片的内存管理方法的系统中第一节点的光收发芯片设备,包括:
接收模块700,接收内存操作指令;
映射模块702,根据所述内存操作指令,确定第二节点的物理内存地址与所述第一节点的服务器虚拟内存地址的映射关系;
第一转换模块704,根据所述映射关系确定需要访问的所述第二节点,以及将所述内存操作指令转换成第一光信号;
访问模块706,通过光链路向所述第二节点的内存管理设备发送所述第一光信号,使所述内存管理设备基于所述第一光信号访问所述第二节点的内存并执行对应的操作,得到内存操作结果,并将所述内存操作结果转换为第二光信号;
第二转换模块708,接收所述内存管理设备返回的所述第二光信号,并将所述第二光信号转换成所述内存操作结果;
返回模块710,将所述内存操作结果作为所述内存操作指令的执行结果返回。
图8为本说明书提供的一种基于光收发芯片的内存管理装置的示意图,所述装置应用于执行所述基于光收发芯片的内存管理方法的系统中第二节点的内存管理设备,包括:
接收指令模块800,用于接收第一节点的光收发芯片设备发送的第一光信号,并将所述第一光信号转换成内存操作指令;
访问内存模块802,用于根据所述内存操作指令包含的第二节点的物理内存地址,访问所述第二节点的内存并执行对应的操作,得到内存操作结果;
转换返回模块804,用于将所述内存操作结果转换成第二光信号,通过光链路返回所述第一节点的光收发芯片设备。
本说明书还提供了一种计算机可读存储介质,该存储介质存储有计算机程序,计算机程序可用于执行上述图7和图8提供的一种基于光收发芯片的内存管理方法。
当然,除了软件实现方式之外,本说明书并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device, PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20 以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本说明书的实施例可提供为方法、系统、或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书是参照根据本说明书实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本说明书的实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。
Claims (10)
1.一种基于光收发芯片的内存管理系统,其特征在于,所述系统为由若干节点组成的分布式系统,针对每个节点,该节点包括:服务器、光收发芯片设备以及内存管理设备,所述内存管理设备与所述服务器的内存连接并通过电信号通信,所述光收发芯片设备与所述服务器连接并通过电信号通信,节点之间内存管理设备与光收发芯片设备通过光链路连接,其中:
第一节点的服务器,用于向所述第一节点的光收发芯片设备发送内存操作指令,所述内存操作指令包括第二节点的物理内存地址与所述第一节点的服务器虚拟内存地址的映射关系;接收所述第一节点的光收发芯片设备返回的内存操作结果;
所述第一节点的光收发芯片设备,用于根据接收到的所述内存操作指令,确定所述映射关系,并根据所述映射关系确定需要访问的所述第二节点,以及将所述内存操作指令转换成第一光信号;通过光链路向所述第二节点的内存管理设备发送所述第一光信号;接收第二光信号,并将所述第二光信号转换成所述内存操作结果;将所述内存操作结果返回所述第一节点的服务器;
所述第二节点的内存管理设备,用于接收所述第一光信号,并将所述第一光信号转换成所述内存操作指令;根据所述内存操作指令包含的所述第二节点的物理内存地址,访问所述第二节点的内存并执行对应的操作,得到内存操作结果;将所述内存操作结果转换成所述第二光信号,通过所述光链路返回所述第一节点的光收发芯片设备。
2.如权利要求1所述的系统,其特征在于,所述光收发芯片设备至少包括:管理组件以及收发组件,其中,在所述第一节点的光收发芯片设备中:
所述管理组件,用于接收所述第一节点的服务器发送的所述内存操作指令,将所述内存操作指令发送给所述收发组件;将所述内存操作指令转换成所述第一光信号,发送给所述收发组件;接收所述收发组件返回的所述第二光信号,并将所述第二光信号换成内存操作结果;
所述收发组件,用于接收所述管理组件发送的所述内存操作指令以及所述第一光信号,根据所述映射关系确定需要访问的第二节点,以切换至与所述第二节点的内存管理设备连接的光链路,向所述第二节点的内存管理设备发送所述第一光信号;接收所述第二节点的内存管理设备返回的所述第二光信号,并返回所述管理组件。
3.如权利要求2所述的系统,其特征在于,所述管理组件至少包括:访问管理模块以及第一光电转换模块,所述收发组件至少包括:光路控制模块以及光路收发切换模块,其中,在所述第一节点的光收发芯片设备中:
所述访问管理模块,用于接收所述第一节点的服务器发送的所述内存操作指令,将所述内存操作指令发送给所述第一光电转换模块和所述光路控制模块;接收所述第一光电转换模块返回的内存操作结果,向所述第一节点的服务器返回所述内存操作结果;
所述第一光电转换模块,用于将所述内存操作指令转换成所述第一光信号,并向所述光路收发切换模块发送所述第一光信号;接收所述光路收发切换模块返回的所述第二光信号,将所述第二光信号转换成所述内存操作结果,以及向所述访问管理模块返回所述内存操作结果;
所述光路控制模块,用于根据接收到的所述内存操作指令,确定所述映射关系,并根据所述映射关系确定需要访问的第二节点,将所述第二节点的标识发送至所述光路收发切换模块;
所述光路收发切换模块,用于接收所述第一光电转换模块发送的所述第一光信号,以及接收所述光路控制模块发送的所述第二节点的标识;根据所述第二节点的标识,切换至与所述第二节点的内存管理设备连接的光链路,并通过所述光链路向所述第二节点的内存管理设备发送所述第一光信号;接收所述第二节点的内存管理设备返回的所述第二光信号,并向所述第一光电转换模块返回所述第二光信号。
4.如权利要求1所述的系统,其特征在于,所述内存管理设备至少包括:光收发模块,第二光电转换模块以及内存访问模块;所述内存访问模块与所述服务器的内存连接,其中,在所述第二节点的内存管理设备中:
所述光收发模块,用于接收所述第一光信号,并转发至所述第二光电转换模块;接收所述第二光信号,通过所述光链路向所述第一节点的光收发芯片设备返回所述第二光信号;
所述第二光电转换模块,用于将所述第一光信号转换成所述内存操作指令,向所述内存访问模块发送所述内存操作指令;接收所述内存操作结果,将所述内存操作结果转换成所述第二光信号,并向所述光收发模块返回所述第二光信号;
所述内存访问模块,用于根据所述内存操作指令包含的所述第二节点的物理内存地址,访问所述第二节点的内存并执行对应的操作,得到所述内存操作指令对应的内存操作结果;向所述第二光电转换模块返回所述内存操作结果。
5.如权利要求1所述的系统,其特征在于,内存操作指令包含指令标识,其中:
所述第二节点的内存管理设备,还用于当将所述第一光信号转换成所述内存操作指令时,确定所述指令标识;当将所述内存操作结果转换成所述第二光信号时,根据所述指令标识,确定与所述第一节点的光收发芯片设备对应的光链路,并通过所述光链路将所述第二光信号,返回所述第一节点的光收发芯片设备。
6.如权利要求1所述的系统,其特征在于,所述内存操作指令包括:写操作指令和读操作指令中的一种,其中:
第一节点的服务器,还用于当需要写入数据时,确定待写入的数据,以及根据所述写操作指令以及所述待写入的数据,生成内存操作指令;
所述第二节点的内存管理设备,还用于当所述内存操作指令为所述写操作指令时,确定所述待写入的数据,以及访问所述第二节点的内存并执行写操作,确定写操作的操作结果,作为所述内存操作结果;
所述第二节点的内存管理设备,还用于当所述内存操作指令为所述读操作指令时,访问所述第二节点的内存并执行读操作,确定读取的数据,将所述读取的数据作为所述内存操作结果。
7.如权利要求1所述的系统,其特征在于,第一节点的光收发芯片设备根据接收到的所述内存操作指令,确定所述映射关系,具体包括:
所述第一节点的光收发芯片设备根据接收到的所述内存操作指令,从第一节点的服务器获取第二节点的物理内存地址与所述第一节点的服务器虚拟内存地址的映射关系。
8.一种基于光收发芯片的内存管理方法,其特征在于,所述方法应用于如权利要求1~7任一项所述的内存管理系统中第一节点的光收发芯片设备,包括:
接收内存操作指令;
根据所述内存操作指令,确定第二节点的物理内存地址与所述第一节点的服务器虚拟内存地址的映射关系;
根据所述映射关系确定需要访问的所述第二节点,以及将所述内存操作指令转换成第一光信号;
通过光链路向所述第二节点的内存管理设备发送所述第一光信号,使所述内存管理设备基于所述第一光信号访问所述第二节点的内存并执行对应的操作,得到内存操作结果,并将所述内存操作结果转换为第二光信号;
接收所述内存管理设备返回的所述第二光信号,并将所述第二光信号转换成所述内存操作结果;
将所述内存操作结果作为所述内存操作指令的执行结果返回。
9.一种基于光收发芯片的内存管理方法,其特征在于,所述方法应用于如权利要求1~7任一项所述的内存管理系统中第二节点的内存管理设备,包括:
接收第一节点的光收发芯片设备发送的第一光信号,并将所述第一光信号转换成内存操作指令;
根据所述内存操作指令包含的第二节点的物理内存地址,访问所述第二节点的内存并执行对应的操作,得到内存操作结果;
将所述内存操作结果转换成第二光信号,通过光链路返回所述第一节点的光收发芯片设备。
10.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述权利要求8~9任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311359193.5A CN117093161B (zh) | 2023-10-19 | 2023-10-19 | 一种基于光收发芯片的内存管理系统、方法、介质及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311359193.5A CN117093161B (zh) | 2023-10-19 | 2023-10-19 | 一种基于光收发芯片的内存管理系统、方法、介质及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117093161A CN117093161A (zh) | 2023-11-21 |
CN117093161B true CN117093161B (zh) | 2024-01-26 |
Family
ID=88777306
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311359193.5A Active CN117093161B (zh) | 2023-10-19 | 2023-10-19 | 一种基于光收发芯片的内存管理系统、方法、介质及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117093161B (zh) |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101047610A (zh) * | 2007-04-30 | 2007-10-03 | 华为技术有限公司 | 数据存储、读取、传输方法和管理服务器及网络节点 |
CN105162721A (zh) * | 2015-07-31 | 2015-12-16 | 重庆大学 | 基于软件定义网络的全光互连数据中心网络系统及数据通信方法 |
CN105573824A (zh) * | 2014-10-10 | 2016-05-11 | 腾讯科技(深圳)有限公司 | 分布式计算系统的监控方法及系统 |
CN106164847A (zh) * | 2014-03-31 | 2016-11-23 | 柯法克斯公司 | 针对分布式体系架构的可扩展商业过程智能和预测性分析 |
CN109274647A (zh) * | 2018-08-27 | 2019-01-25 | 杭州创谐信息技术股份有限公司 | 分布式可信内存交换方法及系统 |
CN110225423A (zh) * | 2019-06-28 | 2019-09-10 | 苏州浪潮智能科技有限公司 | 一种交换机系统的自适应光信号速率的方法、设备和介质 |
CN110392407A (zh) * | 2018-04-16 | 2019-10-29 | 埃森哲环球解决方案有限公司 | 自组织的基于光的网状网络 |
CN113010470A (zh) * | 2021-03-30 | 2021-06-22 | 上海西井信息科技有限公司 | 边缘节点远程控制系统、方法、设备及存储介质 |
CN113918223A (zh) * | 2020-07-09 | 2022-01-11 | 威讯柏睿数据科技(北京)有限公司 | 用于数据处理的分布式计算系统和方法以及存储介质 |
CN114338661A (zh) * | 2021-08-27 | 2022-04-12 | 南京曦光信息科技研究院有限公司 | 一种基于光分组交换的分布式边缘数据中心系统及应用 |
CN115549774A (zh) * | 2022-12-05 | 2022-12-30 | 北京百度网讯科技有限公司 | 一种光信号的处理方法、装置、芯片、系统及介质 |
CN115967873A (zh) * | 2021-10-09 | 2023-04-14 | 华为技术有限公司 | 光通信方法、设备、系统和存储介质 |
WO2023066268A1 (zh) * | 2021-10-21 | 2023-04-27 | 华为技术有限公司 | 一种处理请求的方法、装置及系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10706005B2 (en) * | 2017-12-08 | 2020-07-07 | Vmware, Inc. | File system interface for remote direct memory access |
US20220222118A1 (en) * | 2022-03-31 | 2022-07-14 | Intel Corporation | Adaptive collaborative memory with the assistance of programmable networking devices |
-
2023
- 2023-10-19 CN CN202311359193.5A patent/CN117093161B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101047610A (zh) * | 2007-04-30 | 2007-10-03 | 华为技术有限公司 | 数据存储、读取、传输方法和管理服务器及网络节点 |
CN106164847A (zh) * | 2014-03-31 | 2016-11-23 | 柯法克斯公司 | 针对分布式体系架构的可扩展商业过程智能和预测性分析 |
CN105573824A (zh) * | 2014-10-10 | 2016-05-11 | 腾讯科技(深圳)有限公司 | 分布式计算系统的监控方法及系统 |
CN105162721A (zh) * | 2015-07-31 | 2015-12-16 | 重庆大学 | 基于软件定义网络的全光互连数据中心网络系统及数据通信方法 |
CN110392407A (zh) * | 2018-04-16 | 2019-10-29 | 埃森哲环球解决方案有限公司 | 自组织的基于光的网状网络 |
CN109274647A (zh) * | 2018-08-27 | 2019-01-25 | 杭州创谐信息技术股份有限公司 | 分布式可信内存交换方法及系统 |
CN110225423A (zh) * | 2019-06-28 | 2019-09-10 | 苏州浪潮智能科技有限公司 | 一种交换机系统的自适应光信号速率的方法、设备和介质 |
CN113918223A (zh) * | 2020-07-09 | 2022-01-11 | 威讯柏睿数据科技(北京)有限公司 | 用于数据处理的分布式计算系统和方法以及存储介质 |
CN113010470A (zh) * | 2021-03-30 | 2021-06-22 | 上海西井信息科技有限公司 | 边缘节点远程控制系统、方法、设备及存储介质 |
CN114338661A (zh) * | 2021-08-27 | 2022-04-12 | 南京曦光信息科技研究院有限公司 | 一种基于光分组交换的分布式边缘数据中心系统及应用 |
CN115967873A (zh) * | 2021-10-09 | 2023-04-14 | 华为技术有限公司 | 光通信方法、设备、系统和存储介质 |
WO2023066268A1 (zh) * | 2021-10-21 | 2023-04-27 | 华为技术有限公司 | 一种处理请求的方法、装置及系统 |
CN115549774A (zh) * | 2022-12-05 | 2022-12-30 | 北京百度网讯科技有限公司 | 一种光信号的处理方法、装置、芯片、系统及介质 |
Non-Patent Citations (3)
Title |
---|
IMA系统ICP光纤通道接口板设计与实现;王勇;李炳乾;刘达;;计算机工程(第12期);全文 * |
一种面向虚拟化云计算平台的内存优化技术;李亚琼;宋莹;黄永兵;;计算机学报(第04期);全文 * |
直接内存通信技术的研究与实现;陈艳平;冯萍;徐代阳;姚荦;;计算机测量与控制(第04期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN117093161A (zh) | 2023-11-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210342071A1 (en) | Input/output processing in a distributed storage node with rdma | |
CN111309732B (zh) | 数据处理方法、装置、介质和计算设备 | |
CN109614404B (zh) | 一种数据缓存系统及方法 | |
CN108628688B (zh) | 一种消息处理方法、装置及设备 | |
CN110765165B (zh) | 一种跨系统数据同步处理的方法、装置及系统 | |
CN113032099B (zh) | 云计算节点、文件管理方法及装置 | |
WO2023160083A1 (zh) | 执行交易的方法、区块链、主节点和从节点 | |
CN110955720B (zh) | 一种数据加载方法、装置及系统 | |
CN112003922B (zh) | 一种数据传输方法及装置 | |
JPWO2014192867A1 (ja) | 分散処理システム、分散処理装置、分散処理方法および分散処理プログラム | |
CN109347936B (zh) | Redis代理客户端的实现方法、系统、存储介质及电子设备 | |
CN117093161B (zh) | 一种基于光收发芯片的内存管理系统、方法、介质及设备 | |
CN111400032B (zh) | 一种资源分配的方法及装置 | |
CN116107999B (zh) | 一种数据库服务和存储系统及方法 | |
WO2024001025A1 (zh) | 一种预执行缓存数据清理方法和区块链节点 | |
CN111666184A (zh) | 固态驱动器ssd硬盘测试方法、装置及电子设备 | |
CN113051244B (zh) | 数据访问方法和装置、数据获取方法和装置 | |
CN111163171B (zh) | 一种终端设备的远程控制方法以及装置 | |
CN112181979B (zh) | 一种数据更新方法、装置、存储介质及电子设备 | |
CN113126884B (zh) | 数据迁移方法、装置、电子设备及计算机存储介质 | |
CN117193670B (zh) | 一种清除缓存的方法、装置、存储介质以及电子设备 | |
CN117041980B (zh) | 一种网元管理方法、装置、存储介质及电子设备 | |
CN115174587B (zh) | 一种数据传输系统、方法、装置、计算机可读存储介质及电子设备 | |
CN112578996B (zh) | 一种存储系统的元数据的发送方法及存储系统 | |
CN117081931B (zh) | 一种异构分布式存储系统在线扩容方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |