G06F9/455
1.一种虚拟机调用定制化硬件的方法,其特征在于,所述方法应用于移动终端,所述移 动终端安装有虚拟机,所述方法包括:
获取所述虚拟机的虚拟软件生成的触发指令和申请目标容量的缓存的创建指令;
根据所述创建指令在所述虚拟机中申请所述目标容量的前端缓存,所述前端缓存用于 作为所述虚拟软件对应的存储空间;
根据所述创建指令在所述移动终端中申请所述目标容量的后端缓存,所述后端缓存用 于作为定制化硬件对应的存储空间,所述定制化硬件为与所述虚拟软件的标识对应的所述 移动终端的物理硬件;
确定所述前端缓存的地址为所述后端缓存的地址;
调用所述定制化硬件执行所述触发指令以生成目标数据;
将所述目标数据存储至所述后端缓存内。
2.根据权利要求1所述的虚拟机调用定制化硬件的方法,其特征在于,确定所述前端缓 存的地址为所述后端缓存的地址包括:
获取所述后端缓存的虚拟地址;
确定所述前端缓存的物理地址为所述后端缓存的虚拟地址。
3.根据权利要求1或2所述的虚拟机调用定制化硬件的方法,其特征在于,在将所述目 标数据存储至所述后端缓存内的步骤以后,所述方法还包括:
在接收到所述虚拟机的虚拟软件发送的读取所述前端缓存内的所述目标数据的指令 时,根据所述前端缓存的地址读取所述后端缓存内的所述目标数据。
4.根据权利要求1或2所述的虚拟机调用定制化硬件的方法,其特征在于,在将所述目 标数据存储至所述后端缓存内的步骤以后,所述方法还包括:
在接收到所述虚拟机的虚拟软件向所述前端缓存写入指定数据的指令时,根据所述前 端缓存的地址在所述后端缓存内写入所述指定数据。
5.根据权利要求1或2所述的虚拟机调用定制化硬件的方法,其特征在于,在将所述目 标数据存储至所述后端缓存内的步骤以后,所述方法还包括:
在接收到所述虚拟机的虚拟软件发送的删除所述前端缓存内的目标数据的指令时,根 据所述前端缓存的地址在所述后端缓存内删除所述目标数据。
6.根据权利要求1或2所述的虚拟机调用定制化硬件的方法,其特征在于,在将所述目 标数据存储至所述后端缓存内的步骤以后,所述方法还包括:
在接收到所述虚拟机的虚拟软件发送的将所述前端缓存内的所述目标数据修改为指 定数据的指令时,根据所述前端缓存的地址在所述后端缓存内将所述目标数据修改为所述 指定数据。
7.一种虚拟机调用定制化硬件的装置,其特征在于,该装置包括:
接收模块,用于获取所述虚拟机的虚拟软件生成的触发指令和申请目标容量的缓存的 创建指令;
第一申请模块,用于根据所述创建指令在所述虚拟机中申请所述目标容量的前端缓 存,所述前端缓存用于作为所述虚拟软件对应的存储空间;
第二申请模块,用于根据所述创建指令在所述移动终端中申请所述目标容量的后端缓 存,所述后端缓存用于作为定制化硬件对应的存储空间,所述定制化硬件为与所述虚拟软 件的标识对应的所述移动终端的物理硬件;
确定模块,用于确定所述前端缓存的地址为所述后端缓存的地址;
执行模块,用于调用所述定制化硬件执行所述触发指令以生成目标数据;
存储模块,用于将所述目标数据存储至所述后端缓存内。
8.根据权利要求7所述的虚拟机调用定制化硬件的装置,其特征在于,所述确定模块包 括:
获取子模块,用于获取所述后端缓存的虚拟地址;
确定子模块,用于确定所述前端缓存的物理地址为所述后端缓存的虚拟地址。
9.根据权利要求7或8所述的虚拟机调用定制化硬件的装置,其特征在于,所述装置还 包括:
读取模块,用于在接收到所述虚拟机的虚拟软件发送的读取所述前端缓存内的所述目 标数据的指令时,根据所述前端缓存的地址读取所述后端缓存内的所述目标数据。
10.根据权利要求7或8所述的虚拟机调用定制化硬件的装置,其特征在于,所述装置还 包括:
写入模块,用于在接收到所述虚拟机的虚拟软件向所述前端缓存写入指定数据的指令 时,根据所述前端缓存的地址在所述后端缓存内写入所述指定数据。
11.根据权利要求7或8所述的虚拟机调用定制化硬件的装置,其特征在于,所述装置还 包括:
删除模块,用于在接收到所述虚拟机的虚拟软件发送的删除所述前端缓存内的目标数 据的指令时,根据所述前端缓存的地址在所述后端缓存内删除所述目标数据。
12.根据权利要求7或8所述的虚拟机调用定制化硬件的装置,其特征在于,所述装置还 包括:
修改模块,用于在接收到所述虚拟机的虚拟软件发送的将所述前端缓存内的所述目标 数据修改为指定数据的指令时,根据所述前端缓存的地址在所述后端缓存内将所述目标数 据修改为所述指定数据。
13.一种虚拟机调用定制化硬件的装置,其特征在于,包括:处理器和存储器,其中,存 储器内存储有处理器能够执行的操作指令,处理器读取存储器内的操作指令用于实现以下 方法:
获取所述虚拟机的虚拟软件生成的触发指令和申请目标容量的缓存的创建指令;
根据所述创建指令在所述虚拟机中申请所述目标容量的前端缓存,所述前端缓存用于 作为所述虚拟软件对应的存储空间;
根据所述创建指令在所述移动终端中申请所述目标容量的后端缓存,所述后端缓存用 于作为定制化硬件对应的存储空间,所述定制化硬件为与所述虚拟软件的标识对应的所述 移动终端的物理硬件;
确定所述前端缓存的地址为所述后端缓存的地址;
调用所述定制化硬件执行所述触发指令以生成目标数据;
将所述目标数据存储至所述后端缓存内。
本申请实施例涉及通信技术领域,更具体的说,涉及虚拟机调用定制化硬件的方 法及装置。
目前,Android系统是流行的移动终端的操作系统,Android系统可以运行在智能 手机或平板电脑等设备上。Android系统包括底层的Linux内核和上层的系统软件包。很多 硬件厂商为了保护自身的利益,利用自制的系统软件包支持不开源的定制化硬件工作,定 制化硬件包括显示屏、图像处理器、摄像头和视频编解码器等硬件。由于定制化硬件的信息 处于保密状态,所以在Android系统下运行的虚拟机无法获取到定制化硬件的信息,从而使 得虚拟机无法直接调用移动终端的定制化硬件。
由于虚拟机无法直接调用定制化硬件,所以虚拟机的虚拟软件通常会采用以下方 法来间接获取定制化硬件生成的数据:
首先,在虚拟机的虚拟软件发送控制指令时,虚拟机会根据虚拟软件的使用需求 申请目标容量的前端图形缓存。
然后,虚拟机会向移动终端发送虚拟软件的标识、控制指令和申请目标容量的图 形缓存的指令。
其次,在移动终端接收到虚拟机发送的虚拟软件的标识、控制指令和申请目标容 量的图形缓存的指令时,移动终端会申请目标容量的后端图形缓存,并调用与虚拟软件的 标识对应的定制化硬件执行该控制指令,以使定制化硬件生成的图像数据存储至后端图形 缓存中。
最后,将后端图形缓存中的数据拷贝到前端图形缓存中,从而实现虚拟机的虚拟 软件可以间接调用移动终端的定制化硬件。
由于虚拟机的虚拟软件无法直接访问定制化硬件生成的数据,而是通过将后端图 形缓存中的数据拷贝到前端图形缓存中的方式来访问定制化硬件生成的数据,所以虚拟机 的虚拟软件访问定制化硬件生成的数据会存在一定的延迟;而且,上述拷贝的方式会占用 移动终端大量的硬件处理资源。
本申请实施例提供一种虚拟机调用定制化硬件的方法及装置,以使虚拟机的虚拟 软件直接访问定制化硬件生成的数据,以提高虚拟机的虚拟软件访问定制化硬件的数据的 速度,还可减少占用移动终端大量的硬件处理资源。
本申请第一方面提供一种虚拟机调用定制化硬件的方法,方法应用于移动终端, 移动终端安装有虚拟机,该方法包括:获取虚拟机的虚拟软件生成的触发指令和申请目标 容量的缓存的创建指令;根据创建指令在虚拟机中申请目标容量的前端缓存,前端缓存用 于作为虚拟软件对应的存储空间;根据创建指令在移动终端中申请目标容量的后端缓存, 后端缓存用于作为定制化硬件对应的存储空间,定制化硬件为与虚拟软件的标识对应的移 动终端的物理硬件;确定前端缓存的地址为后端缓存的地址;调用定制化硬件执行触发指 令以生成目标数据;将目标数据存储至后端缓存内。
结合上述第一方面,在第一种可能的实现方式中,确定前端缓存的地址为后端缓 存的地址包括:获取后端缓存的虚拟地址;确定前端缓存的物理地址为后端缓存的虚拟地 址。
其中,虚拟软件可以通过后端缓存的虚拟地址访问后端缓存,所以移动终端会将 后端缓存的虚拟地址赋值给前端缓存的物理地址,从而实现了虚拟软件通过前端缓存的物 理地址访问后端缓存。
结合上述第一方面或以上任意一种实现方式,在第二种可能的实现方式中,在将 目标数据存储至后端缓存内的步骤以后,方法还包括:在接收到虚拟机的虚拟软件发送的 读取前端缓存内的目标数据的指令时,根据前端缓存的地址读取后端缓存内的目标数据。
其中,由于虚拟机的虚拟软件可以获取到前端缓存的地址,所以虚拟软件便可以 随时通过前端缓存的地址读取后端缓存内的目标数据,从而实现虚拟机的虚拟软件直接读 取定制化硬件生成的数据,从而提高了虚拟机的虚拟软件读取定制化硬件的数据的速度, 并减少对移动终端的硬件处理资源的占用。
结合上述第一方面或以上任意一种实现方式,在第三种可能的实现方式中,在将 目标数据存储至后端缓存内的步骤以后,方法还包括:在接收到虚拟机的虚拟软件向前端 缓存写入指定数据的指令时,根据前端缓存的地址在后端缓存内写入指定数据。
其中,由于虚拟机的虚拟软件可以获取到前端缓存的地址,所以虚拟软件便可以 随时通过前端缓存的地址在后端缓存内写入指定数据,从而实现虚拟机的虚拟软件直接在 后端缓存内写入指定数据,从而提高了虚拟机的虚拟软件向定制化硬件对应的后端缓存写 入指定数据的速度,并减少对移动终端的硬件处理资源的占用。
结合上述第一方面或以上任意一种实现方式,在第四种可能的实现方式中,在将 目标数据存储至后端缓存内的步骤以后,方法还包括:在接收到虚拟机的虚拟软件发送的 删除前端缓存内的目标数据的指令时,根据前端缓存的地址在后端缓存内删除目标数据。
其中,由于虚拟机的虚拟软件可以获取到前端缓存的地址,所以虚拟软件便可以 随时通过前端缓存的地址在后端缓存内删除目标数据,从而实现虚拟机的虚拟软件直接在 后端缓存内删除目标数据,从而提高了虚拟机的虚拟软件删除定制化硬件对应的后端缓存 内的目标数据的速度,并减少对移动终端的硬件处理资源的占用。
结合上述第一方面或以上任意一种实现方式,在第五种可能的实现方式中,在将 目标数据存储至后端缓存内的步骤以后,方法还包括:在接收到虚拟机的虚拟软件发送的 将前端缓存内的目标数据修改为指定数据的指令时,根据前端缓存的地址在后端缓存内将 目标数据修改为指定数据。
其中,由于虚拟机的虚拟软件可以获取到前端缓存的地址,所以虚拟软件便可以 随时通过前端缓存的地址在后端缓存内将目标数据修改为指定数据,从而实现虚拟机的虚 拟软件直接在后端缓存内将目标数据修改为指定数据,从而提高了虚拟机的虚拟软件修改 定制化硬件对应的后端缓存内的目标数据的速度,并减少对移动终端的硬件处理资源的占 用。
本申请第二方面提供了一种虚拟机调用定制化硬件的装置,该装置包括:
接收模块,用于获取虚拟机的虚拟软件生成的触发指令和申请目标容量的缓存的 创建指令;第一申请模块,用于根据创建指令在虚拟机中申请目标容量的前端缓存,前端缓 存用于作为虚拟软件对应的存储空间;第二申请模块,用于根据创建指令在移动终端中申 请目标容量的后端缓存,后端缓存用于作为定制化硬件对应的存储空间,定制化硬件为与 虚拟软件的标识对应的移动终端的物理硬件;确定模块,用于确定前端缓存的地址为后端 缓存的地址;执行模块,用于调用定制化硬件执行触发指令以生成目标数据;存储模块,用 于将目标数据存储至后端缓存内。
结合上述第二方面,在第一种可能的实现方式中,确定模块包括:获取子模块,用 于获取后端缓存的虚拟地址;确定子模块,用于确定前端缓存的物理地址为后端缓存的虚 拟地址。
结合上述第二方面或以上任意一种实现方式,在第二种可能的实现方式中,装置 还包括:读取模块,用于在接收到虚拟机的虚拟软件发送的读取前端缓存内的目标数据的 指令时,根据前端缓存的地址读取后端缓存内的目标数据。
结合上述第二方面或以上任意一种实现方式,在第三种可能的实现方式中,装置 还包括:写入模块,用于在接收到虚拟机的虚拟软件向前端缓存写入指定数据的指令时,根 据前端缓存的地址在后端缓存内写入指定数据。
结合上述第二方面或以上任意一种实现方式,在第四种可能的实现方式中,装置 还包括:删除模块,用于在接收到虚拟机的虚拟软件发送的删除前端缓存内的目标数据的 指令时,根据前端缓存的地址在后端缓存内删除目标数据。
结合上述第二方面或以上任意一种实现方式,在第五种可能的实现方式中,装置 还包括:修改模块,用于在接收到虚拟机的虚拟软件发送的将前端缓存内的目标数据修改 为指定数据的指令时,根据前端缓存的地址在后端缓存内将目标数据修改为指定数据。
本申请第三方面提供了一种虚拟机调用定制化硬件的装置,包括:处理器和存储 器,其中,存储器内存储有处理器能够执行的操作指令,处理器读取存储器内的操作指令用 于实现以下方法:
获取虚拟机的虚拟软件生成的触发指令和申请目标容量的缓存的创建指令;根据 创建指令在虚拟机中申请目标容量的前端缓存,前端缓存用于作为虚拟软件对应的存储空 间;根据创建指令在移动终端中申请目标容量的后端缓存,后端缓存用于作为定制化硬件 对应的存储空间,定制化硬件为与虚拟软件的标识对应的移动终端的物理硬件;确定前端 缓存的地址为后端缓存的地址;调用定制化硬件执行触发指令以生成目标数据;将目标数 据存储至后端缓存内。
与现有技术相比,本实施例提供的技术方案具有以下优点和特点:
在本申请实施例提供的方案中,在移动终端获取到虚拟机的虚拟软件发送的触发 指令和申请目标容量的缓存的创建指令时,移动终端会在虚拟机中申请目标容量的前端缓 存,在移动终端中申请目标容量的后端缓存,并将后端缓存的地址赋值给前端缓存的地址, 从而使得虚拟机的虚拟软件可以通过前端缓存的地址来访问后端缓存内的目标数据,所以 虚拟机的虚拟软件可以直接访问定制化硬件生成的数据,从而提高了虚拟机的虚拟软件访 问定制化硬件的数据的速度,并减少对移动终端的硬件处理资源的占用。
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例中所 需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施 例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获 得其他的附图。
图1所示的为本申请实施例提供的移动终端的框架示意图。
图2所示的为本申请实施例提供的一种虚拟机调用定制化硬件的方法的流程图。
图3所示的为本申请实施例提供的一种虚拟机调用定制化硬件的装置的示意图。
图4所示的为本申请实施例提供的另一种虚拟机调用定制化硬件的装置的示意 图。
图5所示的为本申请实施例提供的一种终端100的结构示意图。
图6所示的为本申请实施例提供的一种终端200的结构示意图。
为了更清楚的介绍本申请实施例,在此需要先介绍本申请实施例涉及的应用场 景。
请参见图1所示,图1所示的为本申请实施例提供的移动终端的框架示意图。在图1 所示的实施例中,移动终端100安装有虚拟机101,移动终端100上设置有摄像头104,假设摄 像头104为定制化硬件,虚拟机101无法直接访问摄像头104生成的图像数据。其中,虚拟机 101安装有虚拟拍照软件102。
在图1所示的实施例中,首先,用户在使用虚拟机101内的虚拟拍照软件102时,如 果用户向虚拟拍照软件102输入拍照指令,那么虚拟拍照软件102会计算出需要申请图形缓 存的目标容量,并生成申请目标容量的图形缓存的创建指令。
然后,移动终端100会获取到虚拟机101的虚拟拍照软件102生成的拍照指令和申 请目标容量的图形缓存的创建指令。
其次,移动终端100会根据创建指令在虚拟机101中申请目标容量的前端图形缓存 103,移动终端100会根据创建指令在移动终端100中申请目标容量的后端图形缓存105。其 中,前端图形缓存103用于作为虚拟拍照软件102对应的存储空间,后端图形缓存105用于作 为摄像头104对应的存储空间,摄像头104为与虚拟拍照软件102的标识对应的移动终端100 的物理硬件。
最后,移动终端100将后端图形缓存105的地址赋值给前端图形缓存103的地址,并 调用摄像头104执行拍照指令以生成图像数据,再将图像数据存储至后端图形缓存105内。 此时,由于后端图形缓存105的地址与前端图形缓存103的地址相同,所以虚拟拍照软件102 可以通过前端图形缓存103的地址直接访问后端图形缓存105内的图像数据,所以本申请实 施例提供的方法可以提高虚拟机101的虚拟拍照软件102访问摄像头104的数据的速度,并 减少对移动终端100的硬件处理资源的占用。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
图2所示的为本申请实施例提供的一种虚拟机调用定制化硬件的方法的流程图。 图2所示的虚拟机调用定制化硬件的方法可以使虚拟机的虚拟软件直接访问定制化硬件生 成的数据,从而提高了虚拟机的虚拟软件访问定制化硬件的数据的速度,并减少对移动终 端的硬件处理资源的占用。该方法包括以下步骤。
步骤S21、获取虚拟机的虚拟软件生成的触发指令和申请目标容量的缓存的创建 指令。
其中,本申请实施例提供的方法可以应用于安装有虚拟机的移动终端内,移动终 端可以为智能手机或平板电脑等设备,移动终端的操作系统可以为Android系统,当然,也 可以为其他类型的操作系统。
虚拟机(Virtual Machine)是指通过软件模拟的具有完整硬件系统功能的、运行 在一个完全隔离环境中的计算机系统。虚拟机可以运行在移动终端的操作系统下,在虚拟 机运行的情况下,虚拟机可以模拟出一套计算机系统。
虚拟机的虚拟软件指的是,在虚拟机模拟出计算机系统以后,运行在该计算机系 统内的应用软件。例如,虚拟机的虚拟软件可以为虚拟拍照软件等。
触发指令指的是虚拟软件接收到的指令。例如,假设虚拟软件为虚拟拍照软件,那 么用户可以在虚拟拍照软件内输入拍照指令,该拍照指令为触发指令。
创建指令指的是,在虚拟软件根据触发指令计算出需要申请的缓存的目标容量以 后,生成的申请目标容量的缓存的指令。
本申请实施例的应用场景为,在移动终端内安装有虚拟机,并利用虚拟机模拟出 一套计算机系统,并在该计算机系统下安装有虚拟软件,在用户向该虚拟软件输入触发指 令时,虚拟软件会根据触发指令计算出需要申请的缓存的目标容量,并生成申请目标容量 的缓存的创建指令。移动终端会获取到虚拟机的虚拟软件生成的触发指令和申请目标容量 的缓存的创建指令。
步骤S22、根据创建指令在虚拟机中申请目标容量的前端缓存。
其中,移动终端会根据创建指令在虚拟机中申请目标容量的前端缓存,该前端缓 存用于作为虚拟软件对应的存储空间。
例如,假设创建指令为申请5MB容量的缓存,移动终端会根据该创建指令在虚拟机 中申请5MB容量的前端缓存,用于作为虚拟软件对应的存储空间。
步骤S23、根据创建指令在移动终端中申请目标容量的后端缓存。
其中,移动终端会根据创建指令在移动终端中申请目标容量的后端缓存,该后端 缓存用于作为定制化硬件对应的存储空间,定制化硬件为与虚拟软件的标识对应的移动终 端的物理硬件。
例如,假设创建指令为申请5MB容量的缓存,移动终端会根据该创建指令在虚拟机 中申请5MB容量的后端缓存,用于作为定制化硬件对应的存储空间。
可以理解的是,前端缓存是在虚拟机模拟出来的计算机系统中创建出来的,后端 缓存并不是在虚拟机模拟出来的计算机系统中创建出来的,后端缓存是在移动终端的操作 系统中创建出来的。
步骤S24、确定前端缓存的地址为后端缓存的地址。
其中,由于已经创建出前端缓存和后端缓存,所以移动终端可以获取到后端缓存 的地址,并将后端缓存的地址赋值给前端缓存的地址,以使前端缓存的地址与后端缓存的 地址相同。由于前端缓存是在虚拟机内部申请的,所以虚拟软件可以获取到前端缓存的地 址,虚拟软件便可以利用前端缓存的地址访问后端缓存内的数据。
可选的,在步骤S24中,即将后端缓存的地址赋值给前端缓存的地址,还可以包括 以下步骤:首先,获取后端缓存的虚拟地址;其次,确定前端缓存的物理地址为后端缓存的 虚拟地址。在移动终端内,后端缓存的虚拟地址与后端缓存的物理地址存在着预先设定好 的对应关系,为了使虚拟软件能够访问后端缓存内的数据,可以将后端缓存的虚拟地址赋 值给前端缓存的物理地址。由于前端缓存的物理地址与后端缓存的虚拟地址相同,所以前 端缓存的物理地址与后端缓存的物理地址相对应,所以使得虚拟软件可以通过前端缓存的 物理地址访问后端缓存。
其中,上述实施例提到的前端缓存的物理地址指的是虚拟机物理地址(Guest Physic Address,GPA),上述实施例提到的后端缓存的虚拟地址指的是宿主机虚拟地址 (Host Virtual Address,HVA),上述实施例提到的后端缓存的物理地址指的是宿主机物理 地址(Host Physic Address,HPA)。
步骤S25、调用定制化硬件执行触发指令以生成目标数据。
其中,由于移动终端已经获取到虚拟机的虚拟软件生成的触发指令,所以移动终 端会调用定制化硬件执行触发指令以生成目标数据。
请结合图1所示,例如,假设虚拟机101的虚拟软件为虚拟拍照软件102,触发指令 为拍照指令,定制化硬件为摄像头104,那么在移动终端100获取到虚拟机101的虚拟软件 102生成的触发指令以后,移动终端100便可以调用摄像头104执行拍照指令以生成图像数 据。
步骤S26、将目标数据存储至后端缓存内。
其中,在移动终端调用定制化硬件执行触发指令以生成目标数据以后,移动终端 会将目标数据存储至后端缓存内,以便于虚拟软件获取到前端缓存的地址以后,虚拟软件 便可以利用前端缓存的地址访问后端缓存内的数据,以实现虚拟机的虚拟软件直接访问定 制化硬件生成的数据,从而提高了虚拟机的虚拟软件访问定制化硬件的数据的速度,并减 少对移动终端的硬件处理资源的占用。
在图2所示的实施例中,在移动终端获取到虚拟机的虚拟软件发送的触发指令和 申请目标容量的缓存的创建指令时,移动终端会在虚拟机中申请目标容量的前端缓存,在 移动终端中申请目标容量的后端缓存,并将后端缓存的地址赋值给前端缓存的地址,从而 使得虚拟机的虚拟软件可以通过前端缓存的地址来访问后端缓存内的目标数据,所以虚拟 机的虚拟软件可以直接访问定制化硬件生成的数据,从而提高了虚拟机的虚拟软件访问定 制化硬件的数据的速度,并减少对移动终端的硬件处理资源的占用。
可选的,在步骤S26之后,即将目标数据存储至后端缓存内之后,本申请实施例的 方法还可以包括以下步骤:在接收到虚拟机的虚拟软件发送的读取前端缓存内的目标数据 的指令时,根据前端缓存的地址读取后端缓存内的目标数据。
其中,由于虚拟机的虚拟软件可以获取到前端缓存的地址,所以虚拟软件便可以 随时通过前端缓存的地址读取后端缓存内的目标数据,从而实现虚拟机的虚拟软件直接读 取定制化硬件生成的数据,从而提高了虚拟机的虚拟软件读取定制化硬件的数据的速度, 并减少对移动终端的硬件处理资源的占用。
可选的,在步骤S26之后,即将目标数据存储至后端缓存内之后,本申请实施例的 方法还可以包括以下步骤:在接收到虚拟机的虚拟软件向前端缓存写入指定数据的指令 时,根据前端缓存的地址在后端缓存内写入指定数据。
其中,由于虚拟机的虚拟软件可以获取到前端缓存的地址,所以虚拟软件便可以 随时通过前端缓存的地址在后端缓存内写入指定数据,从而实现虚拟机的虚拟软件直接在 后端缓存内写入指定数据,从而提高了虚拟机的虚拟软件向定制化硬件对应的后端缓存写 入指定数据的速度,并减少对移动终端的硬件处理资源的占用。
可选的,在步骤S26之后,即将目标数据存储至后端缓存内之后,本申请实施例的 方法还可以包括以下步骤:在接收到虚拟机的虚拟软件发送的删除前端缓存内的目标数据 的指令时,根据前端缓存的地址在后端缓存内删除目标数据。
其中,由于虚拟机的虚拟软件可以获取到前端缓存的地址,所以虚拟软件便可以 随时通过前端缓存的地址在后端缓存内删除目标数据,从而实现虚拟机的虚拟软件直接在 后端缓存内删除目标数据,从而提高了虚拟机的虚拟软件删除定制化硬件对应的后端缓存 内的目标数据的速度,并减少对移动终端的硬件处理资源的占用。
可选的,在步骤S26之后,即将目标数据存储至后端缓存内之后,本申请实施例的 方法还可以包括以下步骤:在接收到虚拟机的虚拟软件发送的将前端缓存内的目标数据修 改为指定数据的指令时,根据前端缓存的地址在后端缓存内将目标数据修改为指定数据。
其中,由于虚拟机的虚拟软件可以获取到前端缓存的地址,所以虚拟软件便可以 随时通过前端缓存的地址在后端缓存内将目标数据修改为指定数据,从而实现虚拟机的虚 拟软件直接在后端缓存内将目标数据修改为指定数据,从而提高了虚拟机的虚拟软件修改 定制化硬件对应的后端缓存内的目标数据的速度,并减少对移动终端的硬件处理资源的占 用。
图3所示的为本申请实施例提供的一种虚拟机调用定制化硬件的装置的示意图。 图3为图2对应的装置实施例,图3中与图2相同的内容请参见图2对应的实施例即可。参照图 3,该装置包括以下模块:
接收模块11,用于获取虚拟机的虚拟软件生成的触发指令和申请目标容量的缓存 的创建指令。
第一申请模块12,用于根据创建指令在虚拟机中申请目标容量的前端缓存,前端 缓存用于作为虚拟软件对应的存储空间。
第二申请模块13,用于根据创建指令在移动终端中申请目标容量的后端缓存,后 端缓存用于作为定制化硬件对应的存储空间,定制化硬件为与虚拟软件的标识对应的移动 终端的物理硬件。
确定模块14,用于确定前端缓存的地址为后端缓存的地址。
执行模块15,用于调用定制化硬件执行触发指令以生成目标数据。
存储模块16,用于将目标数据存储至后端缓存内。
可选的,确定模块14还可以包括以下子模块:获取子模块,用于获取后端缓存的虚 拟地址;确定子模块,用于确定前端缓存的物理地址为后端缓存的虚拟地址。
可选的,本申请实施例提供的装置还可以包括以下模块:读取模块,用于在接收到 虚拟机的虚拟软件发送的读取前端缓存内的目标数据的指令时,根据前端缓存的地址读取 后端缓存内的目标数据。
可选的,本申请实施例提供的装置还可以包括以下模块:写入模块,用于在接收到 虚拟机的虚拟软件向前端缓存写入指定数据的指令时,根据前端缓存的地址在后端缓存内 写入指定数据。
可选的,本申请实施例提供的装置还可以包括以下模块:删除模块,用于在接收到 虚拟机的虚拟软件发送的删除前端缓存内的目标数据的指令时,根据前端缓存的地址在后 端缓存内删除目标数据。
可选的,本申请实施例提供的装置还可以包括以下模块:修改模块,用于在接收到 虚拟机的虚拟软件发送的将前端缓存内的目标数据修改为指定数据的指令时,根据前端缓 存的地址在后端缓存内将目标数据修改为指定数据。
图4所示的为本申请实施例提供的另一种虚拟机调用定制化硬件的装置的示意 图。参照图4,该装置包括:处理器21和存储器22,其中,存储器22内存储有处理器21能够执 行的操作指令,处理器21读取存储器22内的操作指令用于实现上述各方法实施例中的方 法。
图5所示的为本申请实施例提供的一种终端100的结构示意图。该终端100可以为 手机、平板电脑、PDA(Personal Digital Assistant,个人数字助理)、POS(Point of Sales,销售终端)、或车载电脑等。
参考图5,本申请实施例的一种终端100,包括:处理器105和分别与处理器105连接 的触摸屏101、图形处理器102、编解码设备103、摄像头104、物理内存106、硬盘107和图形缓 存设备108。其中,触摸屏101、图形处理器102、编解码设备103和摄像头104可以为终端100 内的定制化硬件,处理器105、物理内存106、硬盘107和图形缓存设备108为终端100内的非 定制化硬件。另外,终端100可以安装虚拟机,虚拟机可以包括虚拟处理器、虚拟内存、虚拟 硬盘、虚拟图形缓存设备、客户操作系统(Guest Operation System,Guest OS)和虚拟软 件,其中Guest OS是运行在虚拟处理器、虚拟内存、虚拟硬盘和虚拟图形缓存设备等虚拟设 备之上的操作系统。在Guest OS之上还运行有虚拟软件。
请结合图5所示,作为实例,下面通过图5所示的终端100来说明本申请实施例的实 行过程。
首先,用户在使用终端100的虚拟机的虚拟拍照软件时,如果用户通过触摸屏101 向虚拟拍照软件输入拍照指令,那么虚拟拍照软件会计算出需要申请图形缓存的目标容 量,并生成申请目标容量的图形缓存的创建指令。其中,拍照指令和创建指令会存储在物理 内存106中。
然后,终端100的处理器105会获取物理内存106内的拍照指令和创建指令。
其次,终端100的处理器105会根据物理内存106内的创建指令在虚拟机的虚拟图 形缓存设备中申请目标容量的前端图形缓存,终端100的处理器105会根据物理内存106内 的创建指令在图形缓存设备108中申请目标容量的后端图形缓存。其中,前端图形缓存用于 作为虚拟拍照软件对应的存储空间,后端图形缓存用于作为摄像头104对应的存储空间。
最后,终端100的处理器105将后端图形缓存的地址赋值给前端图形缓存的地址, 并调用摄像头104执行拍照指令以生成图像数据,再将图像数据存储至后端图形缓存内。此 时,由于后端图形缓存的地址与前端图形缓存的地址相同,所以虚拟拍照软件可以通过前 端图形缓存的地址直接访问后端图形缓存内的图像数据,所以本申请实施例提供的方法可 以提高虚拟机的虚拟拍照软件访问摄像头104的数据的速度,并减少对终端100的硬件处理 资源的占用。另外,由于触摸屏101、图形处理器102、编解码设备103和摄像头104均为终端 100内的定制化硬件,所以触摸屏101、图形处理器102和编解码设备103也可以按照上述实 施例的原理来提高虚拟机访问触摸屏101、图形处理器102和编解码设备103的数据的速度, 并减少对终端100的硬件处理资源的占用。
图6所示的为本申请实施例提供的一种终端200的结构示意图。请参考图6,该终端 200中包括硬件层201、运行在硬件层204之上的虚拟机监视器(Virtual Machine Monitor, VMM)202和运行在VMM202上的一个或多个虚拟机(Virtual Machine,VM)203。
硬件层201可以包括显示屏2011、图形处理器2012、编解码设备2013、摄像头2014、 处理器2015、物理内存2016、硬盘2017和图形缓存设备2018,其中,处理器2015可以是一个, 也可以是多个。另外,显示屏2011、图形处理器2012、编解码设备2013和摄像头2014可以为 终端200内的定制化硬件,处理器2015、物理内存2016、硬盘2017和图形缓存设备2018可以 为终端200内的非定制化硬件。
VM203可以包括虚拟处理器2031、虚拟内存2032、虚拟硬盘2033、虚拟图形缓存设 备2034、客户操作系统(Guest Operation System,Guest OS)2035和虚拟软件2036,其中 Guest OS 2035是运行在虚拟处理器2031、虚拟内存2032、虚拟硬盘2033和虚拟图形缓存设 备2034等虚拟设备之上的操作系统。在Guest OS 2035之上还运行有虚拟软件2036,例如, 虚拟软件2036为虚拟拍照软件。
请结合图6所示,作为实例,下面通过图6所示的终端200来说明本申请实施例的实 行过程。由于摄像头2014为定制化硬件,且摄像头2014的信息处于保密状态,所以VM203无 法获取到摄像头2014的信息,所以VM203无法直接调用移动终端的定制化硬件,VM203也无 法直接访问摄像头2014生成的图像数据。其中,VM203安装有虚拟软件2036,例如,假设虚拟 软件2036为虚拟拍照软件。
首先,用户在使用终端200的VM203的虚拟拍照软件时,如果用户向虚拟拍照软件 输入拍照指令,那么虚拟拍照软件会计算出需要申请图形缓存的目标容量,并生成申请目 标容量的图形缓存的创建指令。其中,拍照指令和创建指令会存储在物理内存2016中。
然后,终端200的处理器2015会获取到物理内存2016内的拍照指令和创建指令。
其次,终端200的处理器2015会根据物理内存2016内的创建指令在VM203的虚拟图 形缓存设备2034中申请目标容量的前端图形缓存,终端200会根据物理内存2016内的创建 指令在硬件层201的图形缓存设备2018中申请目标容量的后端图形缓存。其中,前端图形缓 存用于作为虚拟拍照软件对应的存储空间,后端图形缓存用于作为摄像头2014对应的存储 空间。
最后,终端200的处理器2015将后端图形缓存的地址赋值给前端图形缓存的地址, 并调用摄像头2014执行拍照指令以生成图像数据,再将图像数据存储至后端图形缓存内。 此时,由于后端图形缓存的地址与前端图形缓存的地址相同,所以虚拟拍照软件可以通过 前端图形缓存的地址直接访问后端图形缓存内的图像数据,所以本申请实施例提供的方法 可以提高VM203的虚拟拍照软件访问摄像头2014的数据的速度,并减少对终端200的硬件处 理资源的占用。
另外,由于显示屏2011、图形处理器2012、编解码设备2013和摄像头2014均为终端 200内的定制化硬件,所以显示屏2011、图形处理器2012和编解码设备2013也可以按照上述 实施例的原理来提高虚拟机访问显示屏2011、图形处理器2012和编解码设备2013的数据的 速度,并减少对终端200的硬件处理资源的占用。
需要说明的是,图1至图6所示的实施例只是本申请所介绍的可选实施例,本领域 技术人员在此基础上,完全可以设计出更多的实施例,因此不在此处赘述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单 元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟 以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员 可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出 本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、 装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以 通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分, 仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以 结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论 的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或 通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的 部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络 单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以 是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储 在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现 有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机 软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计 算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施例方法的全部 或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程 序代码的介质。
以上,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉 本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在 本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
本文发布于:2023-04-13 23:20:44,感谢您对本站的认可!
本文链接:https://patent.en369.cn/patent/3/86280.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |