CN117478625A - 一种基于vmfunc的高性能Unikernel虚拟机通信方法及装置 - Google Patents
一种基于vmfunc的高性能Unikernel虚拟机通信方法及装置 Download PDFInfo
- Publication number
- CN117478625A CN117478625A CN202311230216.2A CN202311230216A CN117478625A CN 117478625 A CN117478625 A CN 117478625A CN 202311230216 A CN202311230216 A CN 202311230216A CN 117478625 A CN117478625 A CN 117478625A
- Authority
- CN
- China
- Prior art keywords
- unikernel
- virtual machine
- vmfunc
- data
- value
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 51
- 238000004891 communication Methods 0.000 title claims abstract description 49
- 230000015654 memory Effects 0.000 claims abstract description 46
- YQYRYHNCVCFNHU-UHFFFAOYSA-N 1-ethyl-4-phenyl-3,6-dihydro-2h-pyridine Chemical compound C1N(CC)CCC(C=2C=CC=CC=2)=C1 YQYRYHNCVCFNHU-UHFFFAOYSA-N 0.000 claims abstract description 27
- 230000005540 biological transmission Effects 0.000 claims abstract description 26
- 230000009191 jumping Effects 0.000 claims abstract description 5
- 238000012544 monitoring process Methods 0.000 claims description 4
- 238000012546 transfer Methods 0.000 claims description 3
- 230000006870 function Effects 0.000 description 17
- 238000012545 processing Methods 0.000 description 8
- 230000001133 acceleration Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000006798 recombination Effects 0.000 description 1
- 238000005215 recombination Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/901—Buffering arrangements using storage descriptor, e.g. read or write pointers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/70—Virtual switches
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9005—Buffering arrangements using dynamic buffer space allocation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9057—Arrangements for supporting packet reassembly or resequencing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1074—Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
- H04L67/1078—Resource delivery mechanisms
- H04L67/108—Resource delivery mechanisms characterised by resources being split in blocks or fragments
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种基于vmfunc的高性能Unikernel虚拟机通信方法:构建Unikernel虚拟机,包括uk1与uk2,启动Unikernel虚拟机并初始化,以及为Unikernel虚拟机分配EPTP Index;uk2开始监听连接请求,uk1向uk2发起一次连接请求,uk2接收来自uk1的连接请求,并清空连接信息,双方进入数据传输阶段;uk1将待传输数据d划分为n个块,并准备好内存指针;uk1将待传输数据d中第一个块分别装入CPU的通用寄存器,使用vmfunc指令将内存视图跳转至uk2,将通用寄存器的值分别移至uk2;如此循环将n个块移至uk2;完成一次传输;循环进行上述步骤来进行下一个数据的传输。可以有效降低了Unikernel网络通信所带来的高额开销与通信延迟,实现了Unikernel间大型数据的高效传输。
Description
技术领域
本发明属于云计算技术领域,特别涉及一种基于vmfunc的高性能Unikernel虚拟机通信方法及装置。
背景技术
Serverless计算(serverless computing,无服务器计算)已经成为一种越来越流行的开发模式。它允许用户只专注于开发他们的应用程序,同时依靠云服务提供商来管理底层操作系统和硬件基础设施。用户承担的典型成本仅用于处理传入的请求和设计功能容器以实现FaaS(Function as aService,函数即服务)。这对间歇性业务场景特别有利,因为它可以大大降低租用计算资源的成本。作为新一代的虚拟机技术,Unikernel(单地址空间操作系统)生成了一个单一地址空间的虚拟机镜像,只保留了应用程序所需的内核模块。因此,Unikernel可以避免不必要的指令周期和状态切换开销。此外,它适用于serverless情况下的轻量级、高性能和安全的应用。
目前Unikernel在serverless场景下的优化工作主要围绕冷启动内存节省和通信加速展开(Cadden J,Unger T,Awad Y,et al.SEUSS:skip redundant paths to makeserverless fast[C]//Proceeidngs of the Fifteenth European Conference onComputer Systems.2020:1-15.)。现有的方法考虑了Unikernel基于vmfunc(一种CPU虚拟化指令)的实例间通信加速(Tan B,Liu H,Rao J,et al.Towards lightweightserverless computing via unikernel as a function[C]//2020IEEE/ACM 28thInternational Symposium on Quality of Service(IWQoS).IEEE,2020:1-10.),并提出了一个会话-功能(s-f)的架构,功能是一个专门用于执行功能的Unikernel,会话作为对功能Unikernel的远程调用。会话功能通过vmfunc将内存空间切换到功能Unikernel的内存空间,并返回直到执行结束。它假设现有的微服务有许多重叠的业务功能,而多个会话可以通过重用这些函数Unikernels来减少实例的启动。此外,通过利用vmfunc等虚拟机功能来避免vm退出,通信效率远远超过RPC。该方法不能支持大型数据的传输,从而不能够执行需要大型数据参数的函数调用。
因此,目前Unikernel间通信存在以下问题:
(1)目前多数时候,Unikernel间通信使用的是传统的网络通信方法,这样会引入较高的开销和延迟。在传统通信方法中,数据需要进行多次拷贝和格式转换,这会消耗大量的CPU时间和内存带宽。
(2)Unikernel作为一种轻量级操作系统I/O能力十分有限,其通过传统网络通信方法在面对大量大型数据传输时容易导致自身崩溃。
(3)现有的Unikernel间使用vmfunc指令通信的技术只能支持小型数据的传输,不能执行某些需要大型数据参数的函数调用。
发明内容
本发明的目的在于提供一种基于vmfunc的高性能Unikernel虚拟机通信方法及装置,可以有效降低Unikernel网络通信所带来的高额开销与通信延迟,实现了Unikernel间大型数据的高效传输。
本发明提供如下技术方案:
一种基于vmfunc的高性能Unikernel虚拟机通信方法,其特征在于,所述方法包括以下步骤:
(1)构建Unikernel虚拟机,包括uk1与uk2,启动Unikernel虚拟机并初始化,以及为Unikernel虚拟机分配EPTP Index(Extended Page Table Pointer Index,扩展页表指针索引);
(2)uk2开始监听连接请求,uk1向uk2发起一次连接请求,uk2接收来自uk1的连接请求,并清空连接信息,双方进入数据传输阶段;
(3)uk1将待传输数据d划分为n个块,并准备好内存指针;
(4)uk1将待传输数据d中第一个块分别装入CPU的通用寄存器,使用vmfunc指令将内存视图跳转至uk2,将通用寄存器的值分别移至uk2;如此循环将n个块移至uk2;完成一次传输;
(5)循环进行步骤(2)-(4)来进行下一个数据的传输。
进一步地,在步骤(1)中,构建Unikernel虚拟机uk1与uk2的方法为:将Lib-vmfunc加入到Unikernel中进行构建,Lib-vmfunc为每个Unikernel提供了固定物理地址的数组,包括数据接收缓冲区数组和连接池数组。
进一步地,在步骤(1)中,通过启动对应的虚拟机镜像来启动Unikernel虚拟机;初始化并为Unikernel虚拟机分配EPTP Index的方法为:
(1-1)为KVM(Kernel-based Virtual Machine,内核内建虚拟机)创建一个全局的拓展页表指针数组,KVM会将EPTP List的首地址和EPTP List中第一个为0的值的下标EPTPIndex写入Unikernel虚拟机中;
(1-2)将Unikernel虚拟机中的EPTP Index值写入eax寄存器中,而后恢复到Unikernel虚拟机内部的运行中;
(1-3)Unikernel虚拟机恢复内部运行后,读取eax寄存器的值,从而在Unikernel虚拟机内部拿到本身的EPTP Index值。
进一步地,在步骤(2)中,所述双方进入数据传输阶段的方法为:
(2-1)Unikernel虚拟机中的连接池数组中项值均为0,uk2对连接池数组的值进行循环轮询监听,等待某个值变为非零值;
(2-2)uk1本身的EPTP Index值为eid1,uk1在获取uk2的EPTP Index值eid2后,使用vmfunc指令将自身的内存视角切换至uk2,并将uk2的连接池数组的下标为eid1的项值修改为非零值,并再次使用vmfunc切换回自身的内存视角,监听自身的连接池数组下标为eid1的项,并等待该项变为非零值;
(2-3)uk2查询到自身连接池数组下标为eid1的项被修改为非零值后,打破监听循环,并将该值重新修改为0,使用vmfunc指令将自身的内存视角切换至uk1,将uk1的连接池数组下标为eid1的项修改为非零值;
(2-4)uk1查询自身连接池数组下标为eid1的项被修改为非零值后,打破监听循环,并将该值重新修改为0,uk1与uk2进入数据传输阶段。
进一步地,在步骤(3)中,uk1将待传输数据d划分为n个大小为64个字节的块。
进一步地,在步骤(3)中,在uk1准备待传输数据d时,在待传输数据d的尾部加一个int类型大小的标志位flag。
进一步地,在步骤(3)中,uk1准备两个无类型内存指针p1与p2,p1指向数据接收缓冲区数组的首地址,p2指向待传输数据d的首地址。
进一步地,在步骤(4)中,uk1将待传输数据d中第一个块分别装入CPU的其中8个通用寄存器,使用vmfunc指令将内存视图跳转至uk2,将8个通用寄存器的值分别移至uk2;如此循环将n个大小为64个字节的块移至uk2。
本发明还提供了基于vmfunc的高性能Unikernel虚拟机通信装置,包括存储器和一个或多个处理器,所述存储器中存储有可执行代码,其特征在于,所述一个或多个处理器执行所述可执行代码时,用于实现上述基于vmfunc的高性能Unikernel虚拟机通信方法。
本发明还提供了一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时,用于实现上述基于vmfunc的高性能Unikernel虚拟机通信方法。
本发明提供的基于vmfunc的高性能Unikernel虚拟机通信方法通过vmfunc指令实现CPU在不同Unikernel虚拟机间的内存视图切换,通过CPU通用寄存器在不同内存视图中进行数据的搬运与重组,并开创性地使用vmfunc指令进行多台Unikernel虚拟机间数据传输的并发控制。
与现有技术相比,本发明提供的方法及装置具有以下优异效果::
本发明基于vmfunc技术,为Unikernel虚拟机设计了一套高性能数据传输协议,通过直接在处理器级别执行通信操作,绕过传统通信的多次数据拷贝和格式转换,减少CPU时间和内存带宽的消耗,从而降低通信的开销和延迟;因此,本发明可以有效解决Unikernel传统网络通信引入的高开销、高延迟问题。
本发明的高性能数据传输协议从CPU硬件层面进行通信,充分利用处理器的性能和资源,避免Unikernel的I/O限制,实现高效的大型数据传输,提升数据传输性能;从而可以有效解决Unikernel I/O能力有限、容易导致自身崩溃的问题。
本发明基于vmfunc提供的快速虚拟机间内存切换的功能,使用cpu寄存器在Unikernel间对特定变量进行搬运重组,支持传输大型数据和执行需要大型数据参数的函数调用,克服了现有的Unikernel间基于vmfunc的实例间通信加速不能进行大型数据传输的问题,使通信方法更加灵活和全面。
附图说明
图1为本发明实施例提供的一种基于vmfunc的高性能Unikernel虚拟机通信方法的流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
需要说明的是,在不冲突的情况下,下述的实施例及实施方式中的特征可以相互组合。
如图1所示,本实施例提供的基于vmfunc的高性能Unikernel虚拟机通信方法包括:
步骤1:构建若干个特定Unikernel虚拟机,启动Unikernel虚拟机并初始化,以及为Unikernel虚拟机分配EPTP Index
在本实施例中,Unikernel虚拟机包括uk1与uk2,将以uk1与uk2这两个虚拟机间通信方法进行举例说明。
在本实施例中,使用QEMU启动uk1与uk2,KVM进行EPTP List的初始化并为uk1与uk2分配EPTP Index。具体包括以下步骤:
步骤1-1:Unikernel虚拟机uk1与uk2需要将Lib-vmfunc加入到Unikernel中进行构建,Lib-vmfunc为每个Unikernel提供了固定物理地址的数组:数据接收缓冲区buffer与连接池connections,并且提供了一整套基于vmfunc的Unikernel通信协议,该通信协议具体运作方式将在下述步骤2、步骤3与步骤4中详细说明。
步骤1-2:构建Unikernel虚拟机完毕后,使用QEMU启动对应的虚拟机镜像,将会进入KVM中进行虚拟机的初始化阶段。在虚拟机的初始化阶段,本发明所述方法将为KVM创建一个全局的拓展页表指针数组(EPTP List)。每当一个Unikernel虚拟机被创建时,KVM会将EPTP List的首地址写入该虚拟机vmcs结构中的EPTP_List字段中,并从EPTP List中找到第一个为0的值的下标EPTP Index,将其下标写入该虚拟机vmcs结构中的EPTP_Index字段中。
步骤1-3:Unikernel虚拟机启动完毕后,其中的主函数会对0xe123端口进行一次I/O操作,从而发生vm退出,进入KVM中的io_handler函数中。本发明所述方法为io_handler增加了一个功能,当虚拟机对0xe123端口进行I/O操作时,io_handler会捕获信息,并将该虚拟机的EPTP Index值写入eax寄存器中,而后恢复到虚拟机内部的运行中。
步骤1-4:虚拟机恢复内部运行后,读取eax寄存器的值,从而在虚拟机内部拿到本身的EPTP Index值。
步骤2:uk2开始监听连接请求,uk1向uk2发起一次连接请求,uk2接收来自uk1的连接请求,并清空连接信息,双方进入数据传输阶段。
具体方法为:
步骤2-1:最初时,Unikernel虚拟机中的connections数组项值均为0,uk2对connections内数组项的值进行死循环轮询监听,等待某个值变为非零值。
步骤2-2:uk1本身的EPTP Index值为eid1,uk1在获取uk2的EPTP Index值eid2后,使用vmfunc指令将自身的内存视角切换至uk2,并将uk2的connections数组的下标为eid1的项值修改为非零值,并再次使用vmfunc切换回自身的内存视角,监听自身的connections数组下标为eid1的项,并等待该项变为非零值。
步骤2-3:uk2查询到自身connections数组下标为eid1的项被修改为非零值后,打破监听循环,并将该值重新修改为0,使用vmfunc指令将自身的内存视角切换至uk1,将uk1的connections数组下标为eid1的项修改为非零值。
步骤2-4:uk1查询自身connections数组下标为eid1的项被修改为非零值后,打破监听循环,并将该值重新修改为0,uk1与uk2进入数据传输阶段。
步骤3:uk1将待传输数据d划分为n个块,并准备好内存指针
在本实施例中,uk1将数据d划分为n个大小为64个字节的块(n为sizeof(d)/64向上取整)。
在本实施例中,uk1准备待传输数据d,并在数据d的尾部加一个int类型大小的标志位flag。
具体的,内存指针为:uk1准备两个无类型内存指针p1与p2,p1指向buffer数组的首地址,p2指向待传输数据d的首地址。
步骤4:uk1将待传输数据d中第一个块分别装入CPU的通用寄存器,使用vmfunc指令将内存视图跳转至uk2,将通用寄存器的值分别移至uk2;如此循环将n个块移至uk2;完成一次传输
在本实施例中,具体为:将第一个64字节分别装入CPU的其中8个通用寄存器,使用vmfunc指令将内存视图跳转至uk2,将8个通用寄存器的值分别移至uk2预先准备好的buffer数组。如此循环至n个64字节的块都被移至uk2 buffer数组对应的位置。
具体举例来说,从p2开始的0、8、16、24、32、40、48、56字节内存偏移的8个字节分别存入CPU的rdi、rsi、rdx、r8、r9、r10、r11、r12寄存器中,并将p2的地址值自增64个字节。uk1使用vmfunc指令将自身的内存视角切换至uk2,并将上述8个CPU寄存器分别移至从p1开始的0、8、16、24、32、40、48、56字节内存偏移的8个内存地址处。如此重复n次,一个数据便在两台Unikernel虚拟机中进行了完整、高效的传输。
步骤5:若要进行下一个数据的传输,从步骤2开始执行即可。
本发明实施例还提供了一种基于vmfunc的高性能Unikernel虚拟机通信装置,包括一个或多个处理器,存储器中存储有可执行代码,处理器执行可执行代码时,用于实现上述实施例中的基于vmfunc的高性能Unikernel虚拟机通信方法。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在任意具备数据处理能力的设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的从硬件层面而言,除处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的任意具备数据处理能力的设备通常根据该任意具备数据处理能力的设备的实际功能,还可以包括其它硬件,对此不再赘述。
本发明实施例还提供一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时,实现上述实施例中的于vmfunc的高性能Unikernel虚拟机通信方法:计算机可读存储介质可以是前述任一实施例所述的任意具备数据处理能力的设备的内部存储单元,例如硬盘或内存。所述计算机可读存储介质也可以是任意具备数据处理能力的设备,例如所述设备上配备的插接式硬盘、智能存储卡(Smart Meida Card,SMC)、SD卡、闪存卡(Flash8Card)等。进一步的,所述计算机可读存储介质还可以既包括任意具备数据处理能力的设备的内部存储单元也包括外部存储设备。所述计算机可读存储介质用于存储所述计算机程序以及所述任意具备数据处理能力的设备所需的其它程序和数据,还可以用于暂时地存储已经输出或者将要输出的数据。
以上所述仅为本发明的实施例而已,并不用于限制本发明。对于本领域技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。
Claims (10)
1.一种基于vmfunc的高性能Unikernel虚拟机通信方法,其特征在于,所述方法包括以下步骤:
(1)构建Unikernel虚拟机,包括uk1与uk2,启动Unikernel虚拟机并初始化,以及为Unikernel虚拟机分配EPTP Index;
(2)uk2开始监听连接请求,uk1向uk2发起一次连接请求,uk2接收来自uk1的连接请求,并清空连接信息,双方进入数据传输阶段;
(3)uk1将待传输数据d划分为n个块,并准备好内存指针;
(4)uk1将待传输数据d中第一个块分别装入CPU的通用寄存器,使用vmfunc指令将内存视图跳转至uk2,将通用寄存器的值分别移至uk2;如此循环将n个块移至uk2;完成一次传输;
(5)循环进行步骤(2)-(4)来进行下一个数据的传输。
2.根据权利要求1所述的基于vmfunc的高性能Unikernel虚拟机通信方法,其特征在于,在步骤(1)中,构建Unikernel虚拟机uk1与uk2的方法为:将Lib-vmfunc加入到Unikernel中进行构建,Lib-vmfunc为每个Unikernel提供了固定物理地址的数组,包括数据接收缓冲区数组和连接池数组。
3.根据权利要求1所述的基于vmfunc的高性能Unikernel虚拟机通信方法,其特征在于,在步骤(1)中,通过启动对应的虚拟机镜像来启动Unikernel虚拟机;初始化并为Unikernel虚拟机分配EPTP Index的方法为:
(1-1)为KVM创建一个全局的拓展页表指针数组,KVM会将EPTP List的首地址和EPTPList中第一个为0的值的下标EPTP Index写入Unikernel虚拟机中;
(1-2)将Unikernel虚拟机中的EPTP Index值写入eax寄存器中,而后恢复到Unikernel虚拟机内部的运行中;
(1-3)Unikernel虚拟机恢复内部运行后,读取eax寄存器的值,从而在Unikernel虚拟机内部拿到本身的EPTP Index值。
4.根据权利要求2所述的基于vmfunc的高性能Unikernel虚拟机通信方法,其特征在于,在步骤(2)中,所述双方进入数据传输阶段的方法为:
(2-1)Unikernel虚拟机中的连接池数组中项值均为0,uk2对连接池数组的值进行循环轮询监听,等待某个值变为非零值;
(2-2)uk1本身的EPTP Index值为eid1,uk1在获取uk2的EPTP Index值eid2后,使用vmfunc指令将自身的内存视角切换至uk2,并将uk2的连接池数组的下标为eid1的项值修改为非零值,并再次使用vmfunc切换回自身的内存视角,监听自身的连接池数组下标为eid1的项,并等待该项变为非零值;
(2-3)uk2查询到自身连接池数组下标为eid1的项被修改为非零值后,打破监听循环,并将该值重新修改为0,使用vmfunc指令将自身的内存视角切换至uk1,将uk1的连接池数组下标为eid1的项修改为非零值;
(2-4)uk1查询自身连接池数组下标为eid1的项被修改为非零值后,打破监听循环,并将该值重新修改为0,uk1与uk2进入数据传输阶段。
5.根据权利要求1所述的基于vmfunc的高性能Unikernel虚拟机通信方法,其特征在于,在步骤(3)中,uk1将待传输数据d划分为n个大小为64个字节的块。
6.根据权利要求1所述的基于vmfunc的高性能Unikernel虚拟机通信方法,其特征在于,在步骤(3)中,在uk1准备待传输数据d时,在待传输数据d的尾部加一个int类型大小的标志位flag。
7.根据权利要求2所述的基于vmfunc的高性能Unikernel虚拟机通信方法,其特征在于,在步骤(3)中,uk1准备两个无类型内存指针p1与p2,p1指向数据接收缓冲区数组的首地址,p2指向待传输数据d的首地址。
8.根据权利要求5所述的基于vmfunc的高性能Unikernel虚拟机通信方法,其特征在于,在步骤(4)中,uk1将待传输数据d中第一个块分别装入CPU的其中8个通用寄存器,使用vmfunc指令将内存视图跳转至uk2,将8个通用寄存器的值分别移至uk2;如此循环将n个大小为64个字节的块移至uk2。
9.一种基于vmfunc的高性能Unikernel虚拟机通信装置,包括存储器和一个或多个处理器,所述存储器中存储有可执行代码,其特征在于,所述一个或多个处理器执行所述可执行代码时,用于实现权利要求1-8任一所述的基于vmfunc的高性能Unikernel虚拟机通信方法。
10.一种计算机可读存储介质,其上存储有程序,其特征在于,该程序被处理器执行时,用于实现权利要求1-8任一所述的基于vmfunc的高性能Unikernel虚拟机通信方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311230216.2A CN117478625A (zh) | 2023-09-22 | 2023-09-22 | 一种基于vmfunc的高性能Unikernel虚拟机通信方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311230216.2A CN117478625A (zh) | 2023-09-22 | 2023-09-22 | 一种基于vmfunc的高性能Unikernel虚拟机通信方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117478625A true CN117478625A (zh) | 2024-01-30 |
Family
ID=89638691
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311230216.2A Pending CN117478625A (zh) | 2023-09-22 | 2023-09-22 | 一种基于vmfunc的高性能Unikernel虚拟机通信方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117478625A (zh) |
-
2023
- 2023-09-22 CN CN202311230216.2A patent/CN117478625A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8407376B2 (en) | Recording a communication pattern and replaying messages in a parallel computing system | |
CN111314799A (zh) | 终端系统构架、通信系统及通信方法、存储介质 | |
US7231638B2 (en) | Memory sharing in a distributed data processing system using modified address space to create extended address space for copying data | |
CN105122210B (zh) | Gpu虚拟化的实现方法及相关装置和系统 | |
Duato et al. | An efficient implementation of GPU virtualization in high performance clusters | |
US7805546B2 (en) | Chaining direct memory access data transfer operations for compute nodes in a parallel computer | |
CN112491426B (zh) | 面向多核dsp的服务组件通信架构及任务调度、数据交互方法 | |
US20090031001A1 (en) | Repeating Direct Memory Access Data Transfer Operations for Compute Nodes in a Parallel Computer | |
US11784946B2 (en) | Method for improving data flow and access for a neural network processor | |
CN108064377A (zh) | 一种多系统共享内存的管理方法及装置 | |
Guleria et al. | EMF: Disaggregated GPUs in datacenters for efficiency, modularity and flexibility | |
CN115686836A (zh) | 一种安装有加速器的卸载卡 | |
CN117493027B (zh) | 热升级方法、装置及电子设备 | |
CN108829530B (zh) | 一种图像处理方法及装置 | |
CN116820527B (zh) | 程序升级方法、装置、计算机设备和存储介质 | |
CN113691466B (zh) | 一种数据的传输方法、智能网卡、计算设备及存储介质 | |
US20230153153A1 (en) | Task processing method and apparatus | |
CN117478625A (zh) | 一种基于vmfunc的高性能Unikernel虚拟机通信方法及装置 | |
Wagner et al. | NIC-based offload of dynamic user-defined modules for Myrinet clusters | |
CN116662229A (zh) | 一种数据传输方法及电子设备 | |
TWI235921B (en) | System and method for effectively performing physical direct memory access operations | |
CN114553980A (zh) | 一种控制流与数据流解耦的消息服务方法 | |
CN114428757A (zh) | 一种架构可重构的计算装置及其重构方法 | |
CN116418848A (zh) | 网络节点的配置和访问请求的处理方法、装置 | |
CN112925739A (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 |