移动模拟器优化设备间数据共享方法、装置、设备、介质及产品
- 国知局
- 2024-11-18 18:14:25
本发明实施例涉及数据处理,尤其涉及一种移动模拟器优化设备间数据共享方法、装置、设备、介质及产品。
背景技术:
1、目前,在移动模拟器中,传统的数据传输方案主要受到pc/服务器硬件架构的启发,因此保持共享虚拟内存(shared virtual memory,svm)一致性成为实现高效数据共享的关键挑战。在诸如qemu-kvm的模拟器中,虚拟设备被模块化设计,类似于在个人电脑或服务器设备上的物理实现。为了提供更好的兼容性和稳定性,这些设备可以单独启用或禁用,通常独立运行,以防止一个设备中的错误影响到其他设备。不同的虚拟设备甚至可以使用不同的i/o虚拟化技术,例如半虚拟化的gpu和直通的摄像头,它们彼此完全无关。即使是针对移动系统特别优化的模拟器,虚拟设备之间的交互也非常有限。例如,在google android模拟器中,仅观察到gpu和视频编解码器之间存在很有限的功能复用。
2、因此,移动模拟器上的应用无法感知到在虚拟设备间传输数据是缓慢的,而由于针对物理设备(如手机、计算机等)的片上系统架构设计,在物理设备架构上,各个设备硬件被紧密耦合在一起,不会出现数据共享缓慢的问题,因而在这个物理设备架构之上的应用被迁移到移动模拟器上后,会因为该预期外的问题造成大量运行问题,导致移动模拟器中的不同虚拟设备间无法高效进行数据共享的问题。
技术实现思路
1、基于上述技术问题,本发明实施例提供一种移动模拟器优化设备间数据共享方法、装置、设备、介质及产品,以实现移动模拟器中不同虚拟设备间的高效数据共享。
2、本发明实施例提供了一种移动模拟器优化设备间数据共享方法,所述方法包括:
3、移动模拟器上的应用发起写分发;
4、通过移动模拟器上第一设备驱动,控制宿主机上的第一设备开始将所述应用的应用数据写入所述第一设备的物理内存中;
5、通过所述移动模拟器上的超图结构预测所述宿主机上将要共享所述应用数据的第二设备,以及将要共享所述应用数据的时间;
6、所述第一设备进行预取,从所述第一设备的物理内存中读取所述应用数据并存入所述第二设备的物理内存,其中,所述第一设备的物理内存和所述第二设备的物理内存被所述移动模拟器视为一块共同的共享虚拟内存;
7、所述第二设备在所述将要共享所述应用数据的时间到达时,从所述第二设备的物理内存中读取并开始使用所述应用数据。
8、可选地,所述方法还包括:
9、基于所述共享虚拟内存的id,通过所述超图结构获取所述共享虚拟内存对应的数据流的历史统计信息,所述历史统计信息至少包括:所述共享虚拟内存的区域大小、所述第一设备与其他所有设备之间的总线带宽;
10、所述通过所述移动模拟器上的超图结构预测所述宿主机上将要共享所述应用数据的第二设备,包括:基于所述共享虚拟内存的区域大小和所述第一设备与所述第二设备之间的总线带宽,预测所述第一设备进行预取的预取时间;以及,从其它所有设备中预测出所述第二设备;
11、在所述预取时间小于等于松弛间隔的情况下,所述第一设备进行预取,从所述第一设备的物理内存中读取所述应用数据并存入所述第二设备的物理内存,包括:
12、所述第一设备利用所述松弛间隔,异步将所述应用数据存入所述第二设备的物理内存中;所述松弛间隔为两个设备针对所述共享虚拟内存的两次相邻访问之间的间隔。
13、可选地,在所述预取时间大于所述松弛间隔的情况下,所述第一设备进行预取,从所述第一设备的物理内存中读取所述应用数据并存入所述第二设备的物理内存的过程包括:同步预取阶段和异步预取阶段;
14、所述同步预取阶段包括:通过所述第一设备驱动在所述松弛间隔之前的补偿时间段进行阻塞,使得所述第一设备在所述补偿时间段只对所述应用数据进行预取,将所述应用数据存入所述第二设备的物理内存中;所述补偿时间段的取值为所述预取时间与所述松弛间隔的差值;
15、所述异步预取阶段包括:所述第一设备利用所述松弛间隔,继续对所述应用数据进行预取,异步将所述应用数据存入所述第二设备的物理内存中。
16、可选地,所述方法还包括:
17、所述第一设备驱动设置虚拟屏障指令,所述虚拟屏障指令用于保证所述第一设备预取结束之后所述第二设备才允许使用所述应用数据;
18、所述从所述第二设备的物理内存中读取并开始使用所述应用数据,包括:
19、所述第二设备在开始从所述第二设备的物理内存中读取所述应用数据之前,基于所述虚拟屏障指令检测所述第一设备是否预取结束;
20、在所述第一设备未预取结束的情况下,所述第二设备等待并持续检测所述第一设备是否预取结束,直至检测到所述第一设备预取结束;
21、在所述第一设备预取结束的情况下,所述第二设备从所述第二设备的物理内存中读取所述应用数据,并开始使用所述应用数据。
22、可选地,所述第二设备的物理内存包括存储所述应用数据的目标内存,所述第二设备等待并持续检测所述第一设备是否预取结束,直至检测到所述第一设备预取结束,包括:
23、所述共享虚拟内存的管理单元基于所述虚拟屏障指令为所述目标内存加锁,直至检测到所述第一设备预取结束;
24、在所述第一设备预取结束的情况下,所述第二设备从所述第二设备的物理内存中读取所述应用数据,并开始使用所述应用数据,包括:
25、在所述第一设备预取结束的情况下,所述共享虚拟内存的管理单元基于所述虚拟屏障指令为所述目标内存解锁,所述第二设备从所述目标内存中读取所述应用数据并开始使用所述应用数据。
26、可选地,所述方法还包括:
27、所述移动模拟器利用全局视角收集多个共享虚拟内存的历史使用数据,并基于所述历史使用数据维护构建得到双层的超图结构;其中,在所述双层的超图结构中,一层超图结构包括所述移动模拟器中虚拟设备之间的历史数据流,另一层超图结构包括所述宿主机上真实设备之间的历史数据流;
28、所述通过所述移动模拟器上的超图结构预测所述宿主机上将要共享所述应用数据的第二设备,以及将要共享所述应用数据的时间,包括:
29、通过所述双层的超图结构,利用指数平滑方法预测得到所述第二设备和所述将要共享所述应用数据的时间。
30、本发明实施例第二方面提供了一种移动模拟器优化设备间数据共享装置,所述装置包括:
31、写分发模块,部署于移动模拟器上的应用,用于发起写分发;
32、写入模块,用于通过移动模拟器上第一设备驱动,控制宿主机上的第一设备开始将所述应用的应用数据写入所述第一设备的物理内存中;
33、设备预测模块,用于通过所述移动模拟器上的超图结构预测所述宿主机上将要共享所述应用数据的第二设备,以及将要共享所述应用数据的时间;
34、预取模块,部署于所述第一设备,用于进行预取,从所述第一设备的物理内存中读取所述应用数据并存入所述第二设备的物理内存,其中,所述第一设备的物理内存和所述第二设备的物理内存被所述移动模拟器视为一块共同的共享虚拟内存;
35、读取模块,部署于所述第二设备,用于在所述将要共享所述应用数据的时间到达时,从所述第二设备的物理内存中读取并开始使用所述应用数据。
36、可选地,所述装置还包括:
37、信息获取模块,用于基于所述共享虚拟内存的id,通过所述超图结构获取所述共享虚拟内存对应的数据流的历史统计信息,所述历史统计信息至少包括:所述共享虚拟内存的区域大小、所述第一设备与其他所有设备之间的总线带宽;
38、所述设备预测模块,包括:
39、时间预测模块,用于基于所述共享虚拟内存的区域大小和所述第一设备与所述第二设备之间的总线带宽,预测所述第一设备进行预取的预取时间;以及,从其它所有设备中预测出所述第二设备;
40、所述预取模块,包括:
41、第一预取子模块,部署于第一设备,用于在所述预取时间小于等于松弛间隔的情况下,利用所述松弛间隔,异步将所述应用数据存入所述第二设备的物理内存中;所述松弛间隔为两个设备针对所述共享虚拟内存的两次相邻访问之间的间隔。
42、可选地,所述预取模块,包括:同步预取子模块和异步预取子模块;所述同步预取子模块,用于在所述预取时间大于所述松弛间隔的情况下,执行同步预取阶段;所述异步预取子模块,用于在所述预取时间大于所述松弛间隔的情况下,执行异步预取阶段;其中,
43、所述同步预取阶段包括:通过所述第一设备驱动在所述松弛间隔之前的补偿时间段进行阻塞,使得所述第一设备在所述补偿时间段只对所述应用数据进行预取,将所述应用数据存入所述第二设备的物理内存中;所述补偿时间段的取值为所述预取时间与所述松弛间隔的差值;
44、所述异步预取阶段包括:所述第一设备利用所述松弛间隔,继续对所述应用数据进行预取,异步将所述应用数据存入所述第二设备的物理内存中。
45、可选地,所述装置还包括:
46、指令设置模块,部署于所述第一设备驱动,用于设置虚拟屏障指令,所述虚拟屏障指令用于保证所述第一设备预取结束之后所述第二设备才允许使用所述应用数据;
47、所述读取模块,包括:
48、检测子模块,部署于所述第二设备,用于在开始从所述第二设备的物理内存中读取所述应用数据之前,基于所述虚拟屏障指令检测所述第一设备是否预取结束;
49、等待子模块,部署于所述第二设备,用于在所述第一设备未预取结束的情况下,等待并持续检测所述第一设备是否预取结束,直至检测到所述第一设备预取结束;
50、读取子模块,部署于所述第二设备,用于在所述第一设备预取结束的情况下,从所述第二设备的物理内存中读取所述应用数据,并开始使用所述应用数据。
51、可选地,所述第二设备的物理内存包括存储所述应用数据的目标内存,所述等待子模块,包括:
52、加锁子模块,部署于所述共享虚拟内存的管理单元,用于基于所述虚拟屏障指令为所述目标内存加锁,直至检测到所述第一设备预取结束;
53、所述读取子模块,包括:
54、解锁子模块,部署于所述共享虚拟内存的管理单元,用于在所述第一设备预取结束的情况下,基于所述虚拟屏障指令为所述目标内存解锁,所述第二设备从所述目标内存中读取所述应用数据并开始时使用所述应用数据。
55、可选地,所述装置还包括:
56、超图构建模块,部署于所述移动模拟器,用于利用全局视角收集多个共享虚拟内存的历史使用数据,并基于所述历史使用数据维护构建得到双层的超图结构;其中,在所述双层的超图结构中,一层超图结构包括所述移动模拟器中虚拟设备之间的历史数据流,另一层超图结构包括所述宿主机上真实设备之间的历史数据流;
57、所述设备预测模块,包括:
58、预测子模块,用于通过所述双层的超图结构,利用指数平滑方法预测得到所述第二设备和所述将要共享所述应用数据的时间。
59、本发明实施例第三方面提供一种电子设备,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如本发明实施例第一方面所述的移动模拟器优化设备间数据共享方法的步骤。
60、本发明实施例第四方面提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如本发明实施例第一方面所述的移动模拟器优化设备间数据共享方法的步骤。
61、本发明实施例第五方面提供一种计算机程序产品,包括计算机程序/指令,所述计算机程序/指令被处理器执行时实现如本发明实施例第一方面所述的移动模拟器优化设备间数据共享方法的步骤。
62、通过本发明实施例的移动模拟器优化设备间数据共享方法,基于移动模拟器上的超图结构实现下一次共享虚拟内存访问信息(即第二设备和将要共享应用数据时间)的预测,以保证共享虚拟内存访问的预测准确率;通过第一设备进行内存预取,将待共享的应用数据提前更新存入第二设备的物理内存中,以最小化移动模拟器中设备之间数据共享造成的延迟和开销,高效地支持了跨虚拟设备的共享资源操作,实现了移动模拟器中不同虚拟设备间的高效数据共享。
本文地址:https://www.jishuxx.com/zhuanli/20241118/327749.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
下一篇
返回列表