一种虚拟化环境中的数据通信的方法、装置及处理器制造方法及图纸

技术编号:12543456 阅读:122 留言:0更新日期:2015-12-19 12:23
本发明专利技术实施例公开了一种虚拟化环境中的数据通信的方法、装置及处理器,通过图形处理程序通过图形处理接口调用图形驱动的写入函数,调用过程中的函数记录在函数栈中,根据所述图形驱动的写入函数的入口地址和所述函数栈的层数,确定所述图形处理接口的写入函数的入口地址,从所述图形处理接口的写入函数的入口地址中读取所述图形处理程序的顶点缓存的偏移量及长度,从而确定图形处理程序在顶点缓存中修改的数据区域,所述修改的数据区域即为图形渲染所必需的数据,用户虚拟机仅将图形渲染必需的数据发送到渲染服务器,从而避免非必要数据的传输,降低用户虚拟机与渲染服务器之间的通信开销,加快了渲染服务器的渲染速度,从而提高GPU虚拟化技术中共享的效率和用户体验。

【技术实现步骤摘要】
【国外来华专利技术】一种虚拟化环境中的数据通信的方法、装置及处理器
本专利技术涉及通信
,尤其是涉及一种虚拟化环境中的数据通信的方法、装置及处理器。
技术介绍
在虚拟桌面场景下存在至少一台服务器和至少一台客户机,用户通过客户机上安装的虚拟桌面客户端登陆到服务器中的用户虚拟机(UserVirtualMachine)上。虚拟机中可能会安装有依赖于GPU(GraphicProcessingUnit,图形处理器)进行图形运算的图形处理程序,如AutoCAD、3DsMax、Pro/E,3D(three-dimensional,三维)游戏等。当这些程序在虚拟机上运行时,GPU虚拟化技术可以使多台虚拟机共用一个物理显卡进行图形运算,来提高硬件资源的利用效率。用户虚拟机上的图形驱动(例如,用户态3D驱动以及内核态WDDM(WindowsDisplayDriverModel,视窗图形驱动模型))获取各类软件及操作系统的图形指令(例如,3D图形指令以及2DGDI(GraphicsDeviceInterface,图形设备接口)指令),并将上述图形指令及图形渲染所使用的数据发送到渲染服务器(RenderServer),渲染服务器调用物理GPU进行指令的渲染并生成用户虚拟机的桌面图像,将生成的用户虚拟机桌面图像发送到客户端进行显示。在上述过程中,大量的图形指令和数据会在用户虚拟机与渲染服务器之间进行通信,导致用户虚拟机与渲染服务器之间产生大量的通信开销,降低了GPU虚拟化技术中共享的效率和用户体验。
技术实现思路
本专利技术的目的在于提供一种虚拟化环境中的数据通信的方法、装置及处理器,用以提高GPU虚拟化技术中共享的效率与用户体验。第一方面,本专利技术实施例提供了一种虚拟化环境中数据通信的方法,包括:图形驱动接收图形处理接口发送的驱动函数调用请求,所述驱动函数调用请求为所述图形处理接口在接收到图形处理程序发送的系统函数调用请求后发送的,所述系统函数调用请求用于调用所述图形处理接口的写入函数,所述驱动函数调用请求用于调用所述图形驱动的写入函数,所述图形处理接口的写入函数的入口地址保存在函数栈中,所述图形驱动的写入函数的入口地址保存在所述函数栈中;根据所述图形驱动的写入函数的入口地址和所述函数栈的层数,所述图形驱动确定所述图形处理接口的写入函数的入口地址,从所述图形处理接口的写入函数的入口地址中读取所述图形处理程序的顶点缓存的偏移量及长度;所述图形驱动将所述顶点缓存的偏移量及长度对应的数据区域中的数据发送给渲染服务器。在第一方面的第一种可能的实现方式中,根据所述图形驱动的写入函数的入口地址和所述函数栈的层数,所述图形驱动确定所述图形处理接口的写入函数的入口地址包括:a.根据所述图形驱动的写入函数的入口地址,读取所述图形驱动所在的中央处理器上的扩展基址指针EBP寄存器中的值,所述EBP寄存器中的值为所述函数栈中上一层函数保存的栈帧地址;b.读取所述函数栈中上一层函数保存的栈帧地址中的值,所述函数栈中上一层函数保存的栈帧地址中的值为所述函数栈中更上一层函数保存的栈帧地址,按照所述函数栈的层数n重复执行步骤b,第n-1次获得的栈帧地址即为所述图形处理接口的写入函数的入口地址。结合所述第一方面或第一方面的第一种实现方式,在第一方面的第二种可能的实现方式中,所述方法还包括:在所述图形驱动的写入函数中加入软中断;运行测试程序调用所述图形驱动的写入函数,当所述测试程序通过所述图形处理接口调用所述图形驱动的写入函数,并执行到所述软中断时,根据测试程序调用位置与所述软中断位置,确定所述函数栈的层数。在第一方面的第三种可能的实现方式中,在图形驱动接收图形处理接口发送的驱动函数调用请求之前,还包括:所述图形驱动接收来自所述图形处理程序通过所述图形处理接口发送的应用编程接口调用请求,所述应用编程接口调用请求中包含顶点缓存长度和顶点缓存创建函数;所述图形驱动根据所述顶点缓存的长度调用所述顶点缓存创建函数为所述图形处理程序分配所述顶点缓存。结合本专利技术实施例第一方面或第一方面的第三种可能的实现方式中,在本专利技术实施例第四种可能的实现方式中,在读取所述顶点缓存的偏移量及长度之后,在将所述顶点缓存的偏移量及长度对应的数据区域中的数据发送给渲染服务器之前,所述方法还包括:向所述图形处理程序发送锁定成功消息;在所述图形处理程序在所述顶点缓存中完成数据写入操作后,接收所述图形处理程序发送的写入结束消息,所述写入操作的区域为所述顶点缓存的偏移量及长度对应的数据区域。在第一方面的第五种可能的实现方式中,所述图形处理接口为WindowRuntime接口。在第一方面的第六种可能的实现方式中,所述图形处理接口的写入函数具体为windows中的Lock函数。在第一方面的第七种可能的实现方式中,所述顶点缓存创建函数为windows中的create函数。结合第一方面的第四种可能的实现方式,在第八种可能的实现方式中,所述写入结束消息用于调用所述图形驱动的unlock函数。第二方面,本专利技术实施例提供了一种虚拟化环境中数据通信的装置,包括:接收模块,用于接收图形处理接口发送的驱动函数调用请求,所述驱动函数调用请求为所述图形处理接口在接收到图形处理程序发送的系统函数调用请求后发送的,所述系统函数调用请求用于调用所述图形处理接口的写入函数,所述驱动函数调用请求用于调用所述图形驱动的写入函数,所述图形处理接口的写入函数的入口地址保存在函数栈中,所述图形驱动的写入函数的入口地址保存在所述函数栈中;定位模块,用于根据所述图形驱动的写入函数的入口地址和所述函数栈的层数,确定所述图形处理接口的写入函数的入口地址,从所述图形处理接口的写入函数的入口地址中读取所述图形处理程序的顶点缓存的偏移量及长度;发送模块,用于将所述顶点缓存的偏移量及长度对应的数据区域中的数据发送给渲染服务器。在第二方面的第一种可能的实现方式中,所述定位模块具体包括:第一定位单元,用于根据所述图形驱动的写入函数的入口地址,读取所述图形驱动所在的中央处理器上的扩展基址指针EBP寄存器中的值,所述EBP寄存器中的值为所述函数栈中上一层函数保存的栈帧地址;第二定位单元,用于读取所述函数栈中上一层函数保存的栈帧地址中的值,所述函数栈中上一层函数保存的栈帧地址中的值为所述函数栈中更上一层函数保存的栈帧地址,按照所述函数栈的层数n重复执行本单元的读取步骤,第n-1次获得的栈帧地址即为所述图形处理接口的写入函数的入口地址。在本专利技术实施例第二方面的第二种可能的实现方式中,所述装置还包括:调试模块,用于在所述图形驱动的写入函数中加入软中断,运行测试程序调用所述图形驱动的写入函数,当所述测试程序通过所述图形处理接口调用所述图形驱动的写入函数,并执行到所述软中断时,根据测试程序调用位置与所述软中断位置,确定所述函数栈的层数。在本专利技术实施例第二方面的第三种可能的实现方式中,所述接收模块,还用于接收来自所述图形处理程序通过所述图形处理接口发送的应用编程接口调用请求,所述应用编程接口调用请求中包含顶点缓存长度和顶点缓存创建函数;所述装置还包括:顶点缓存创建模块,用于根据所述顶点缓存的长度调用所述顶点缓存创建函数为所述图形处理程序分配所述顶点缓存。在本专利技术实施例第二方面的第四种可能的实本文档来自技高网...
一种虚拟化环境中的数据通信的方法、装置及处理器

【技术保护点】
PCT国内申请,权利要求书已公开。

【技术特征摘要】
【国外来华专利技术】1.一种虚拟化环境中数据通信的方法,其特征在于,包括:图形驱动接收图形处理接口发送的驱动函数调用请求,所述驱动函数调用请求为所述图形处理接口在接收到图形处理程序发送的系统函数调用请求后发送的,所述系统函数调用请求用于调用所述图形处理接口的写入函数,所述驱动函数调用请求用于调用所述图形驱动的写入函数,所述图形处理接口的写入函数的入口地址保存在函数栈中,所述图形驱动的写入函数的入口地址保存在所述函数栈中;根据所述图形驱动的写入函数的入口地址和所述函数栈的层数,所述图形驱动确定所述图形处理接口的写入函数的入口地址,从所述图形处理接口的写入函数的入口地址中读取所述图形处理程序的顶点缓存的偏移量及长度;所述图形驱动将所述顶点缓存的偏移量及长度对应的数据区域中的数据发送给渲染服务器。2.如权利要求1所述的方法,其特征在于,所述函数栈中每一层函数保存的栈帧地址中的值为所述函数栈中更上一层函数保存的栈帧地址,根据所述图形驱动的写入函数的入口地址和所述函数栈的层数,所述图形驱动确定所述图形处理接口的写入函数的入口地址包括:a.根据所述图形驱动的写入函数的入口地址,读取所述图形驱动所在的中央处理器上的扩展基址指针EBP寄存器中的值,所述EBP寄存器中的值为所述函数栈中当前调用函数的上一层函数保存的栈帧地址;确定所述函数栈的层数n,重复执行n-1次步骤b,第n-1次获得的栈帧地址即为所述图形处理接口的写入函数的入口地址;b.调用所述函数栈中当前调用函数的上一层函数,读取所述函数栈中当前调用函数的上一层函数保存的栈帧地址中的值。3.如权利要求2所述的方法,其特征在于,所述确定函数栈的层数n包括:在所述图形驱动的写入函数中加入软中断;运行测试程序调用所述图形驱动的写入函数,当所述测试程序通过所述图形处理接口调用所述图形驱动的写入函数,并执行到所述软中断时,根据测试程序调用位置与所述软中断位置,确定所述函数栈的层数。4.如权利要求1所述的方法,其特征在于,在图形驱动接收图形处理接口发送的驱动函数调用请求之前,还包括:所述图形驱动接收来自所述图形处理程序通过所述图形处理接口发送的应用编程接口调用请求,所述应用编程接口调用请求中包含顶点缓存长度和顶点缓存创建函数;所述图形驱动根据所述顶点缓存的长度调用所述顶点缓存创建函数为所述图形处理程序分配所述顶点缓存。5.如权利要求1或4所述的方法,其特征在于,在读取所述顶点缓存的偏移量及长度之后,在将所述顶点缓存的偏移量及长度对应的数据区域中的数据发送给渲染服务器之前,所述方法还包括:向所述图形处理程序发送锁定成功消息;在所述图形处理程序在所述顶点缓存中完成数据写入操作后,接收所述图形处理程序发送的写入结束消息,所述写入操作的区域为所述顶点缓存的偏移量及长度对应的数据区域。6.如权利要求1所述的方法,其特征在于,所述图形处理接口为WindowRuntime接口。7.如权利要求6所述的方法,其特征在于,所述图形处理接口的写入函数具体为win...

【专利技术属性】
技术研发人员:艾楚越庞西豹
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1