CN112463307B - 一种数据传输方法、装置、设备及可读存储介质 - Google Patents
一种数据传输方法、装置、设备及可读存储介质 Download PDFInfo
- Publication number
- CN112463307B CN112463307B CN202011443530.5A CN202011443530A CN112463307B CN 112463307 B CN112463307 B CN 112463307B CN 202011443530 A CN202011443530 A CN 202011443530A CN 112463307 B CN112463307 B CN 112463307B
- Authority
- CN
- China
- Prior art keywords
- data
- memory address
- virtual
- target data
- address
- 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
- 230000005540 biological transmission Effects 0.000 title claims abstract description 55
- 238000000034 method Methods 0.000 title claims abstract description 53
- 230000015654 memory Effects 0.000 claims abstract description 161
- 238000004590 computer program Methods 0.000 claims description 12
- 230000008569 process Effects 0.000 claims description 11
- 238000012545 processing Methods 0.000 claims description 11
- 238000013507 mapping Methods 0.000 claims description 10
- 238000012546 transfer Methods 0.000 claims description 3
- 230000006854 communication Effects 0.000 abstract description 17
- 238000004891 communication Methods 0.000 abstract description 16
- 230000000694 effects Effects 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 3
- 230000008094 contradictory effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Classifications
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/167—Interprocessor communication using a common memory, e.g. mailbox
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45583—Memory management, e.g. access or allocation
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer And Data Communications (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本申请公开了一种数据传输方法、装置、设备及可读存储介质。本申请公开的方法应用于虚拟机,包括:存储目标数据至自身虚拟内存;确定存储目标数据的虚拟内存地址;将虚拟内存地址写入寄存器,并发送中断消息至主机,以使主机从寄存器中读取虚拟内存地址,并将虚拟内存地址转换为物理内存地址,按照物理内存地址读取目标数据。其中,虚拟机和主机通过二者共享的虚拟机内存和寄存器进行通信,提高了通信效率、容错能力和可维护性,降低了通信成本。相应地,本申请提供的一种数据传输装置、设备及可读存储介质,也同样具有上述技术效果。
Description
技术领域
本申请涉及计算机技术领域,特别涉及一种数据传输方法、装置、设备及可读存储介质。
背景技术
目前,虚拟机和主机通过安装在虚拟机上的虚拟串口设备进行通信。其中,利用虚拟串口设备在传输数据的过程中,数据需要从应用层转入内核层,进行了多重转发,导致通信效率较低,且容易出现问题,容错能力和可维护性也较差,通信成本也较高。
因此,如何提高虚拟机和主机之间的通信效率,是本领域技术人员需要解决的问题。
发明内容
有鉴于此,本申请的目的在于提供一种数据传输方法、装置、设备及可读存储介质,以提高虚拟机和主机之间的通信效率。其具体方案如下:
第一方面,本申请提供了一种数据传输方法,应用于虚拟机,包括:
存储目标数据至自身虚拟内存;
确定存储所述目标数据的虚拟内存地址;
将所述虚拟内存地址写入寄存器,并发送中断消息至主机,以使所述主机从所述寄存器中读取所述虚拟内存地址,并将所述虚拟内存地址转换为物理内存地址,按照所述物理内存地址读取所述目标数据。
优选地,所述确定存储所述目标数据的虚拟内存地址之前,还包括:
判断所述目标数据的数据量是否不小于预设阈值;
若是,则从所述目标数据中截取等于所述预设阈值的数据块,将所述数据块作为所述目标数据,并执行所述确定存储所述目标数据的虚拟内存地址的步骤。
优选地,还包括:
若所述目标数据的数据量小于所述预设阈值,则等待预设时长后,执行所述判断所述目标数据的数据量是否不小于预设阈值的步骤。
优选地,所述确定存储所述目标数据的虚拟内存地址,包括:
按照所述目标数据的数据量大小确定所述虚拟内存地址。
优选地,所述将所述虚拟内存地址转换为物理内存地址,包括:
按照虚拟机地址映射表将所述虚拟内存地址转换为所述物理内存地址。
优选地,所述虚拟机和所述主机共享多个寄存器和多个物理内存。
优选地,若所述目标数据包括数据写地址和待处理请求,则所述主机按照所述物理内存地址读取所述目标数据之后,还包括:
所述主机处理所述待处理请求,并将处理结果写入所述数据写地址,将所述数据写地址的虚拟地址写入所述寄存器,并发送中断消息至所述虚拟机,以使所述虚拟机从所述寄存器中读取所述虚拟地址,并将所述虚拟地址转换为所述数据写地址,按照所述数据写地址读取所述处理结果。
第二方面,本申请提供了一种数据传输装置,应用于虚拟机,包括:
存储模块,用于存储目标数据至自身虚拟内存;
确定模块,用于确定存储所述目标数据的虚拟内存地址;
执行模块,用于将所述虚拟内存地址写入寄存器,并发送中断消息至主机,以使所述主机从所述寄存器中读取所述虚拟内存地址,并将所述虚拟内存地址转换为物理内存地址,按照所述物理内存地址读取所述目标数据。
第三方面,本申请提供了一种数据传输设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序,以实现前述公开的数据传输方法。
第四方面,本申请提供了一种可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述公开的数据传输方法。
通过以上方案可知,本申请提供了一种数据传输方法,应用于虚拟机,包括:存储目标数据至自身虚拟内存;确定存储所述目标数据的虚拟内存地址;将所述虚拟内存地址写入寄存器,并发送中断消息至主机,以使所述主机从所述寄存器中读取所述虚拟内存地址,并将所述虚拟内存地址转换为物理内存地址,按照所述物理内存地址读取所述目标数据。
可见,本申请中的虚拟机和主机均能够访问物理内存和寄存器,即:虚拟机和主机共享物理内存和寄存器。虚拟机先将需要传输给主机的数据存储至自身虚拟内存,然后将存储该数据的虚拟内存地址写入寄存器,并发送中断消息给主机,从而主机可知悉寄存器中有需要读取的数据,便从寄存器中读取虚拟内存地址,并将虚拟内存地址转换为物理内存地址,最后按照物理内存地址直接读取该数据,从而使主机获得虚拟机要传输给主机的数据。在该过程中,虚拟机和主机通过二者共享的物理内存和寄存器进行通信,数据直接存储在虚拟机内存中且无需变更存储位置,因此数据无需进行多重转发,提高了通信效率,也可以避免传输出错,提高了容错能力和可维护性,降低了通信成本。
相应地,本申请提供的一种数据传输装置、设备及可读存储介质,也同样具有上述技术效果。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请公开的一种数据传输方法流程图;
图2为本申请公开的一种虚拟机与主机之间的数据传输方案示意图;
图3为本申请公开的另一种数据传输流程示意图;
图4为本申请公开的一种数据传输装置示意图;
图5为本申请公开的一种数据传输设备示意图;
图6为本申请公开的另一种数据传输设备示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
目前,虚拟机和主机通过安装在虚拟机上的虚拟串口设备进行通信,在该通信过程中,数据需要从应用层转入内核层,进行了多重转发,导致通信效率较低,且容易出现问题,容错能力和可维护性也较差,通信成本也较高。为此,本申请提供了一种数据传输方案,能够提高虚拟机和主机之间的通信效率。
参见图1所示,本申请实施例公开了一种数据传输方法,应用于虚拟机,包括:
S101、存储目标数据至自身虚拟内存。
需要说明的是,目标数据即虚拟机要传输给主机的数据,该数据可以为虚拟机和主机需要共享的数据,也可以为虚拟机向主机请求的某些应用参数或应用文件(如虚拟机中的某个应用访问主机的请求)。若目标数据为虚拟机向主机请求的某些应用参数或应用文件,则目标数据中还需要包括:后续主机给虚拟机返回的数据的写入地址(即数据写地址)。虚拟内存是虚拟机向主机申请的存储空间,该虚拟内存对应主机中的一部分物理空间。
由于虚拟机中安装有众多应用,因此若主机传输数据至虚拟机,就需要明确主机给虚拟机中的哪个应用传输数据。因此目标数据中需要包括虚拟机向主机请求的某些应用参数或应用文件的描述数据,以让主机知道需要给虚拟机中的哪个应用传输数据。
在一种具体实施方式中,若目标数据包括数据写地址和待处理请求,则主机按照物理内存地址读取目标数据之后,还包括:主机处理待处理请求,并将处理结果写入数据写地址(物理内存地址),将数据写地址的虚拟地址(物理内存地址在虚拟机中映射的虚拟内存地址)写入寄存器,并发送中断消息至虚拟机,以使虚拟机从寄存器中读取虚拟地址,并将虚拟地址转换为数据写地址,按照数据写地址读取处理结果。
S102、确定存储目标数据的虚拟内存地址。
其中,为了减少虚拟机与主机之间的交互次数,可以限制中断触发次数。在一种具体实施方式中,虚拟机确定存储目标数据的虚拟内存地址之前,还包括:虚拟机判断目标数据的数据量是否不小于预设阈值;若是,则从目标数据中截取等于预设阈值的数据块,将数据块作为目标数据,并执行S102-S103的步骤。若目标数据的数据量小于预设阈值,则等待预设时长后,执行判断目标数据的数据量是否不小于预设阈值的步骤。
在一种具体实施方式中,虚拟机确定存储目标数据的虚拟内存地址,包括:虚拟机按照目标数据的数据量大小以及地址偏移量确定虚拟内存地址。
S103、将虚拟内存地址写入寄存器,并发送中断消息至主机,以使主机从寄存器中读取虚拟内存地址,并将虚拟内存地址转换为物理内存地址,按照物理内存地址读取目标数据。
中断消息可以利用调用vmcall汇编指令实现。
在一种具体实施方式中,将虚拟内存地址转换为物理内存地址,包括:按照虚拟机地址映射表将虚拟内存地址转换为物理内存地址。其中,虚拟机地址映射表记录有物理内存地址与虚拟内存地址之间的映射关系,据此映射关系可以实现物理内存地址与虚拟内存地址的相互转换。
其中,由于虚拟机和主机共享物理内存,故虚拟机和主机可以看到相同的物理内存。但同一物理内存地址被映射至虚拟机或主机后,得到的虚拟内存地址可能不同,因此主机按照物理内存地址读取物理内存中的目标数据的过程中,需要将该物理内存地址转换为该物理内存地址在主机中映射的虚拟地址,进而按照该虚拟地址读取目标数据。
在一种具体实施方式中,虚拟机和主机共享多个寄存器和多个物理内存。其中,物理内存还可以划分为写内存区域和读内存区域。写内存区域用于虚拟机写入数据,以便主机读取。读内存区域用于主机写入数据,以便虚拟机读取。
若虚拟机和主机共享多个寄存器,则据此可实现数据的并发传输。也就是:针对每个寄存器,虚拟机并行执行S101-S103,从而同时将多个目标数据传输给主机。同理,主机也可以并发返回相应处理结果。
可见,本申请实施例中的虚拟机和主机均能够访问物理内存和寄存器,即:虚拟机和主机共享物理内存和寄存器。虚拟机先将需要传输给主机的数据存储至自身虚拟内存,然后将存储该数据的虚拟内存地址写入寄存器,并发送中断消息给主机,从而主机可知悉寄存器中有需要读取的数据,便从寄存器中读取虚拟内存地址,并将虚拟内存地址转换为物理内存地址,最后按照物理内存地址直接读取该数据,从而使主机获得虚拟机要传输给主机的数据。在该过程中,虚拟机和主机通过二者共享的物理内存和寄存器进行通信,数据直接存储在虚拟机内存中且无需变更存储位置,因此数据无需进行多重转发,提高了通信效率,也可以避免传输出错,提高了容错能力和可维护性,降低了通信成本。
参见图2所示,本申请实施例公开了一种虚拟机与主机之间的数据传输方案,该方案应用于HCI平台,虚拟机(guest)与主机(host)共享物理内存和寄存器,寄存器可以为任意类型的寄存器,如:rdi寄存器、rsi寄存器等。在图2中,主机对应N个虚拟机(即vm1-vmN),该主机给这N个虚拟机提供物理内存,也即:主机给这N个虚拟机提供虚拟内存。主机中的物理内存空间被划分为N份,每份物理内存空间被虚拟化为一个虚拟机对应的虚拟内存。
其中,虚拟机调用vmcall汇编指令实现的硬中断函数可以包括:
push rdi:保存寄存器rdi值
push rsi:保存寄存器rsi值
mov rdi vaddress:vaddress为通讯内容结构体虚拟地址
pop rsi:恢复寄存器rsi值
pop rdi:恢复寄存器rdi值
vmcall:调用cpu的vmcall硬中断指令陷入host机回调函数
mov rsi magic_id:magic_id为魔法数标识
mov iRet rax:返回vmcall指令返回值
retn:恢复栈平衡
if(rsi==dst_id):将虚拟地址转换为物理地址
{
pvoid lphostphymem=guest_va_to_host_pm(rdi):将物理地址映射至host地址空间
pvoid lphostvaddr=mmap(lphostphymem);lphostvaddr内容即为当前传输的数据
return result;
}
请参见图3,数据的具体传输过程包括:
1、虚拟机写入数据至虚拟内存地址(可以为数据所占用的虚拟内存首地址),即:虚拟机写入数据至自身虚拟内存。虚拟内存地址与物理内存地址建立有映射关系;
2、虚拟机将虚拟内存地址写入rdi寄存器,并调用vmcall汇编指令使虚拟机CPU挂起,以移交虚拟机CPU的控制权给主机KVM内核层;
3、主机KVM内核层捕获vmcall汇编指令,并响应相应的中断回调程序handle_vmcall_callback,并读取rdi寄存器中的虚拟内存地址,按照虚拟机地址映射表将虚拟内存地址转换为物理内存地址,再将物理内存地址映射成主机可访问的虚拟地址,从而主机据此虚拟地址读取数据,最终实现通信。
4、中断回调程序处理完后,将虚拟机CPU控制权由主机切换至虚拟机机。
可见,本实施例充分利用主机提供虚拟机虚拟化资源(如:内存资源)的特性,使得主机直接访问虚拟机内存。其中,虚拟机与主机共用CPU中断响应事件,共用物理内存和寄存器。无需设置额外的内存资源,数据也无需进行重重传递,从而提高了通信效率,甚至不用考虑每次所传输的数据量大小。每次所传输的数据量小于虚拟机当前的可用内存即可。
下面对本申请实施例提供的一种数据传输装置进行介绍,下文描述的一种数据传输装置与上文描述的一种数据传输方法可以相互参照。
参见图4所示,本申请实施例公开了一种数据传输装置,应用于虚拟机,包括:
存储模块401,用于存储目标数据至自身虚拟内存;
确定模块402,用于确定存储目标数据的虚拟内存地址;
执行模块403,用于将虚拟内存地址写入寄存器,并发送中断消息至主机,以使主机从寄存器中读取虚拟内存地址,并将虚拟内存地址转换为物理内存地址,按照物理内存地址读取目标数据。
在一种具体实施方式中,还包括:
判断模块,用于判断目标数据的数据量是否不小于预设阈值;
截取模块,用于若目标数据的数据量不小于预设阈值,则从目标数据中截取等于预设阈值的数据块,将数据块作为目标数据,并执行确定存储目标数据的虚拟内存地址的步骤。
在一种具体实施方式中,还包括:
等待模块,用于若目标数据的数据量小于预设阈值,则等待预设时长后,执行判断目标数据的数据量是否不小于预设阈值的步骤。
在一种具体实施方式中,确定模块具体用于:
按照目标数据的数据量大小确定虚拟内存地址。
在一种具体实施方式中,执行模块具体用于:
按照虚拟机地址映射表将虚拟内存地址转换为物理内存地址。
在一种具体实施方式中,虚拟机和主机共享多个寄存器和多个物理内存。
在一种具体实施方式中若目标数据包括数据写地址和待处理请求,则主机按照物理内存地址读取目标数据之后,主机处理待处理请求,并将处理结果写入数据写地址,将数据写地址的虚拟地址写入寄存器,并发送中断消息至虚拟机,以使虚拟机从寄存器中读取虚拟地址,并将虚拟地址转换为数据写地址,按照数据写地址读取处理结果。
其中,关于本实施例中各个模块、单元更加具体的工作过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
可见,本实施例提供了一种数据传输装置,该装置提高了业务系统的访问安全性,控制效率更高也易于实现,为后续运维工作也提供了诸多便利。
下面对本申请实施例提供的一种数据传输设备进行介绍,下文描述的一种数据传输设备与上文描述的一种数据传输方法及装置可以相互参照。
参见图5所示,本申请实施例公开了一种数据传输设备,包括:
存储器501,用于保存计算机程序;
处理器502,用于执行所述计算机程序,以实现上述任意实施例公开的方法。
请参考图6,图6为本实施例提供的另一种数据传输设备示意图,该数据传输设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(centralprocessing units,CPU)322(例如,一个或一个以上处理器)和存储器332,一个或一个以上存储应用程序342或数据344的存储介质330(例如一个或一个以上海量存储设备)。其中,存储器332和存储介质330可以是短暂存储或持久存储。存储在存储介质330的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对数据处理设备中的一系列指令操作。更进一步地,中央处理器322可以设置为与存储介质330通信,在数据传输设备301上执行存储介质330中的一系列指令操作。
数据传输设备301还可以包括一个或一个以上电源326,一个或一个以上有线或无线网络接口350,一个或一个以上输入输出接口358,和/或,一个或一个以上操作系统341。例如,Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等。
在图6中,应用程序342可以是执行数据传输方法的程序,数据344可以是执行数据传输方法所需的或产生的数据。
上文所描述的数据传输方法中的步骤可以由数据传输设备的结构实现。
下面对本申请实施例提供的一种可读存储介质进行介绍,下文描述的一种可读存储介质与上文描述的一种数据传输方法、装置及设备可以相互参照。
一种可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述实施例公开的数据传输方法。关于该方法的具体步骤可以参考前述实施例中公开的相应内容,在此不再进行赘述。
本申请涉及的“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法或设备固有的其它步骤或单元。
需要说明的是,在本申请中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本申请要求的保护范围之内。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的可读存储介质中。
本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (9)
1.一种数据传输方法,其特征在于,应用于虚拟机,包括:
存储目标数据至自身虚拟内存;
确定存储所述目标数据的虚拟内存地址;
将所述虚拟内存地址写入寄存器,并调用vmcall汇编指令使虚拟机CPU挂起,发送中断消息至主机,以使所述主机内核层捕获vmcall汇编指令,响应相应的中断回调程序,从所述寄存器中读取所述虚拟内存地址,并将所述虚拟内存地址转换为物理内存地址,按照所述物理内存地址读取所述目标数据;
其中,所述确定存储所述目标数据的虚拟内存地址之前,还包括:
判断所述目标数据的数据量是否不小于预设阈值;若所述目标数据的数据量小于所述预设阈值,则等待预设时长后,执行所述判断所述目标数据的数据量是否不小于预设阈值的步骤。
2.根据权利要求1所述的数据传输方法,其特征在于,若所述目标数据的数据量不小于所述预设阈值,则从所述目标数据中截取等于所述预设阈值的数据块,将所述数据块作为所述目标数据,并执行所述确定存储所述目标数据的虚拟内存地址的步骤。
3.根据权利要求1所述的数据传输方法,其特征在于,所述确定存储所述目标数据的虚拟内存地址,包括:
按照所述目标数据的数据量大小确定所述虚拟内存地址。
4.根据权利要求1所述的数据传输方法,其特征在于,所述将所述虚拟内存地址转换为物理内存地址,包括:
按照虚拟机地址映射表将所述虚拟内存地址转换为所述物理内存地址。
5.根据权利要求1所述的数据传输方法,其特征在于,所述虚拟机和所述主机共享多个寄存器和多个物理内存。
6.根据权利要求1至5任一项所述的数据传输方法,其特征在于,若所述目标数据包括数据写地址和待处理请求,则所述主机按照所述物理内存地址读取所述目标数据之后,还包括:
所述主机处理所述待处理请求,并将处理结果写入所述数据写地址,将所述数据写地址的虚拟地址写入所述寄存器,并发送中断消息至所述虚拟机,以使所述虚拟机从所述寄存器中读取所述虚拟地址,并将所述虚拟地址转换为所述数据写地址,按照所述数据写地址读取所述处理结果。
7.一种数据传输装置,其特征在于,应用于虚拟机,包括:
存储模块,用于存储目标数据至自身虚拟内存;
确定模块,用于确定存储所述目标数据的虚拟内存地址;
执行模块,用于将所述虚拟内存地址写入寄存器,并调用vmcall汇编指令使虚拟机CPU挂起,发送中断消息至主机,以使所述主机内核层捕获vmcall汇编指令,响应相应的中断回调程序,从所述寄存器中读取所述虚拟内存地址,并将所述虚拟内存地址转换为物理内存地址,按照所述物理内存地址读取所述目标数据;
其中,所述确定存储所述目标数据的虚拟内存地址之前,还包括:
判断所述目标数据的数据量是否不小于预设阈值;若所述目标数据的数据量小于所述预设阈值,则等待预设时长后,执行所述判断所述目标数据的数据量是否不小于预设阈值的步骤。
8.一种数据传输设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序,以实现如权利要求1至6任一项所述的数据传输方法。
9.一种可读存储介质,其特征在于,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述的数据传输方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011443530.5A CN112463307B (zh) | 2020-12-11 | 2020-12-11 | 一种数据传输方法、装置、设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011443530.5A CN112463307B (zh) | 2020-12-11 | 2020-12-11 | 一种数据传输方法、装置、设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112463307A CN112463307A (zh) | 2021-03-09 |
CN112463307B true CN112463307B (zh) | 2024-02-23 |
Family
ID=74800530
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011443530.5A Active CN112463307B (zh) | 2020-12-11 | 2020-12-11 | 一种数据传输方法、装置、设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112463307B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112860595B (zh) * | 2021-03-12 | 2022-10-14 | 湖南国科微电子股份有限公司 | Pci设备或pcie设备、数据存取方法及相关组件 |
CN114153779B (zh) * | 2021-10-31 | 2023-07-14 | 郑州云海信息技术有限公司 | 一种i2c通信方法、系统、设备、及存储介质 |
CN116107697B (zh) * | 2023-01-04 | 2023-10-31 | 芯动微电子科技(武汉)有限公司 | 一种不同操作系统之间互相通信的方法及系统 |
CN116339916B (zh) * | 2023-03-17 | 2023-11-10 | 摩尔线程智能科技(北京)有限责任公司 | 一种内存虚拟化方法及装置、电子设备和存储介质 |
CN116320469B (zh) * | 2023-05-16 | 2024-03-01 | 摩尔线程智能科技(北京)有限责任公司 | 一种虚拟化视频编解码系统及方法、电子设备和存储介质 |
CN117492933B (zh) * | 2023-12-28 | 2024-03-22 | 苏州元脑智能科技有限公司 | 数据交换方法、装置、电子设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1622071A (zh) * | 2004-12-31 | 2005-06-01 | 北京中星微电子有限公司 | 一种直接存储器存取装置及方法 |
CN105447203A (zh) * | 2015-12-31 | 2016-03-30 | 杭州华为数字技术有限公司 | 一种共享文件的访问方法、系统及相关设备 |
WO2017097114A1 (zh) * | 2015-12-09 | 2017-06-15 | 华为技术有限公司 | 一种共享文件的访问方法、系统及相关设备 |
CN106874128A (zh) * | 2017-01-22 | 2017-06-20 | 广州华多网络科技有限公司 | 数据传输方法及装置 |
CN107346260A (zh) * | 2017-06-29 | 2017-11-14 | 郑州云海信息技术有限公司 | 一种数据传输方法、装置及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10592431B2 (en) * | 2018-08-13 | 2020-03-17 | Hewlett Packard Enterprise Development Lp | Independent shared and process virtual address translations |
-
2020
- 2020-12-11 CN CN202011443530.5A patent/CN112463307B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1622071A (zh) * | 2004-12-31 | 2005-06-01 | 北京中星微电子有限公司 | 一种直接存储器存取装置及方法 |
WO2017097114A1 (zh) * | 2015-12-09 | 2017-06-15 | 华为技术有限公司 | 一种共享文件的访问方法、系统及相关设备 |
CN105447203A (zh) * | 2015-12-31 | 2016-03-30 | 杭州华为数字技术有限公司 | 一种共享文件的访问方法、系统及相关设备 |
CN106874128A (zh) * | 2017-01-22 | 2017-06-20 | 广州华多网络科技有限公司 | 数据传输方法及装置 |
CN107346260A (zh) * | 2017-06-29 | 2017-11-14 | 郑州云海信息技术有限公司 | 一种数据传输方法、装置及系统 |
Non-Patent Citations (1)
Title |
---|
ARM MMU中虚拟地址到物理地址转换的研究;王宏宇;;中国电力教育(第S3期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112463307A (zh) | 2021-03-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112463307B (zh) | 一种数据传输方法、装置、设备及可读存储介质 | |
US10810135B2 (en) | Data transmission method, apparatus, device, and system | |
JP4214682B2 (ja) | 計算機およびその入出力手段 | |
CN106301859B (zh) | 一种管理网卡的方法、装置及系统 | |
US9584628B2 (en) | Zero-copy data transmission system | |
EP3441878B1 (en) | Method and device for data transmission in virtual switch technique | |
CN111431757A (zh) | 虚拟网络的流量采集方法及装置 | |
US11741039B2 (en) | Peripheral component interconnect express device and method of operating the same | |
CN113760560A (zh) | 一种进程间通信方法以及进程间通信装置 | |
WO2015010646A1 (zh) | 混合内存的数据访问方法、模块、处理器及终端设备 | |
CN109857545B (zh) | 一种数据传输方法及装置 | |
US11868799B2 (en) | Command information transmission method, system, and apparatus, and readable storage medium | |
CN114880256A (zh) | 数据处理方法、存储系统和交换设备 | |
EP4407952A1 (en) | Network storage method, storage system, data processing unit, and computer system | |
CN113391881A (zh) | 中断的管理方法、装置、电子设备及计算机存储介质 | |
CN113794764A (zh) | 服务器集群的请求处理方法、介质和电子设备 | |
CN116860391A (zh) | Gpu算力资源调度方法、装置、设备和介质 | |
US20240205292A1 (en) | Data processing method and apparatus, computer device, and computer-readable storage medium | |
US9772776B2 (en) | Per-memory group swap device | |
Gootzen et al. | Dpfs: Dpu-powered file system virtualization | |
US20060242258A1 (en) | File sharing system, file sharing program, management server and client terminal | |
US20120191896A1 (en) | Circuitry to select, at least in part, at least one memory | |
JPWO2010050092A1 (ja) | 情報処理システム | |
EP4254207A1 (en) | Data processing apparatus and method, and related device | |
CN115098272A (zh) | Gpu资源调度方法、调度器、电子设备和存储介质 |
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 |