数据处理的制作方法

文档序号:15829198发布日期:2018-11-03 00:18阅读:160来源:国知局

本公开涉及数据处理。

背景技术

arm快速模型(fastmodeltm)系统代表用于模拟集成在系统或子系统中的多系统ip核或块的示例性软件建模系统。这里,这种“ip”核或块可以是例如电路布局的可重用单元(通常用在集成电路中),其具有属于某一方的知识产权(ip)的设计。但是该术语可以更加广泛地用于例如集成电路布局块,该集成电路布局块能够被装配在一起以提供复合功能。

快速模型系统允许客户(例如,打算根据所建模的设计制造物理电路的制造者)运行包括在系统ip的规范刚准备好时的全部软件栈的模拟。示例涉及对图形处理单元(gpu)建模和检验的模拟,这在此前是困难的,因为针对gpu检验的3d(三维)图形渲染模拟可能速度会很慢。

通过快速模型或类似的系统,硬件ip接口可以被代码(例如,所谓的“lisa+”代码)定义,并被轻松地可视化以及被合并以生成完整的子系统。gpu架构正在迅速发展,并趋向于使用大量统一标量核来解决并行数据流处理问题。与gpu相比,cpu(中央处理单元)一般具有较少的核,但是单个cpu核可能比单个gpu核更为复杂,例如具有更深的流水线和/或更大的缓存。出于历史原因,gpu往往可以被视作基于cpu的计算机架构中的外围设备。因此,在整个系统模拟中,cpu通常被用于模拟包括使用gpu的3d渲染在内的所有设备,但是cpu和gpu之间显著的架构级差异使得快速gpu模拟很困难。此外,移动系统中增大的显示分辨率(作为使用这类模型化gpu的示例)需要甚至更高的计算资源用于模拟环境。



技术实现要素:

在示例布置中提供了一种数据处理装置,包括服务器设备和客户端设备,它们通过数据通信路径被连接用于数据通信;

服务器设备包括:

服务器图形处理单元(gpu),用于接收并处理图形处理命令以生成经处理的图形数据;以及

客户端设备包括:

客户端数据处理单元;以及

客户端gpu接口,用于从客户端数据处理单元接收图形处理命令,将图形数据命令发送至服务器gpu,从服务器gpu接收经处理的图形数据,以及将经处理的图形数据提供至客户端数据处理单元。

在另一示例布置中提供了一种电路仿真装置,包括:

如上面所定义的数据处理装置;

其中客户端数据处理单元被配置为执行电路仿真指令,并且响应于对电路仿真指令的执行,生成要经由客户端gpu接口被提供至服务器设备的图形处理命令。

在另一示例布置中提供了一种通过数据通信路径能连接用于到客户端设备的数据通信的服务器设备,该服务器设备包括:

服务器图形处理单元(gpu),用于接收并处理图形处理命令以生成经处理的图形数据;

服务器gpu接口,用于从客户端设备接收采用第一命令格式的图形处理命令,并且向服务器gpu提供采用第二命令格式的图形处理命令以用于执行。

在另一示例布置中提供了一种通过数据通信路径能连接用于到服务器设备的数据通信的客户端设备,该客户端设备包括:

客户端数据处理单元;以及

客户端图形处理单元(gpu)接口,用于从客户端数据处理单元接收图形处理命令,将图形处理命令发送至服务器设备的服务器gpu,从服务器gpu接收经处理的图形数据,以及将经处理的图形数据提供至客户端数据处理单元。

在另一示例布置中提供了一种操作数据处理装置的方法,该数据处理装置包括通过数据通信路径被连接用于数据通信的服务器设备和客户端设备,该方法包括:

客户端设备的客户端gpu接口从客户端设备的客户端数据处理单元接收图形处理命令;

客户端gpu接口将图形处理命令发送至服务器设备的服务器gpu;

服务器gpu接收并处理图形处理命令以生成经处理的图形数据;

服务器设备将经处理的图形数据发送至客户端设备;

客户端gpu接口从服务器gpu接收经处理的图形数据并将经处理的图形数据提供至客户端数据处理单元。

在另一示例布置中提供了一种操作服务器设备的方法,该服务器设备通过数据通信路径能连接用于到客户端设备的数据通信,该方法包括:

服务器设备的服务器gpu接口从客户端设备接收采用第一命令格式的图形处理命令,并且向服务器设备的服务器gpu提供采用第二命令格式的图形处理命令以用于执行;以及

服务器gpu接收并处理图形处理命令以生成经处理的图形数据。

在另一示例布置中提供了一种操作客户端设备的方法,该客户端设备通过数据通信路径能连接用于到服务器设备的数据通信,该方法包括:

客户端设备的客户端图形处理单元(gpu)接口从客户端设备的客户端数据处理单元接收图形处理命令;

客户端gpu接口将图形处理命令发送至服务器设备;

客户端gpu接口从服务器设备接收经处理的图形数据;以及

客户端gpu接口将经处理的图形数据提供至客户端数据处理单元。

本技术的其他相应的方面和特征由所附权利要求限定。

附图说明

本技术将参考如附图中所示出的其实施例,仅通过示例的方式被进一步描述,其中:

图1示意性地示出了数据处理系统;

图2示意性地示出了连接至服务器设备的客户端设备;

图3至图5是示出相应方法的示意流程图;

图6示意性地示出了客户端设备和服务器设备之间的数据通信的方面;

图7至图9示意性地示出了客户端设备和服务器设备中的缓冲区的交互;以及

图10和图11示意性地示出了用于客户端设备和服务器设备之间的存储器一致性的技术。

具体实施方式

在参考附图讨论实施例之前,提供了以下对实施例的描述。

示例实施例提供了数据处理装置,包括通过数据通信路径被连接用于数据通信的服务器设备和客户端设备;

服务器设备包括:

服务器图形处理单元(gpu),用于接收并处理图形处理命令以生成经处理的图形数据;以及

客户端设备,包括:

客户端数据处理单元;以及

客户端gpu接口,用于从客户端数据处理单元接收图形处理命令,将图形处理命令发送至服务器gpu,从服务器gpu接收经处理的图形数据,以及向客户端数据处理单元提供经处理的图形数据。

示例实施例可以提供有利于允许从客户端设备远程进行图形处理操作的布置,并且经处理的结果被提供回客户端设备,例如用于显示。这适用于其他领域,不过尤其有助于对模拟gpu的性能进行评估的仿真或模拟布置。

在示例中,服务器设备包括服务器gpu接口,并且在示例中服务器gpu接口被配置为向服务器gpu提供用于执行的图形处理命令。

在客户端数据处理单元被配置为生成采用第一命令格式的图形处理命令的情况下可以实施命令转译或映射,服务器gpu被配置为执行采用第二命令格式的图形处理命令,以及服务器gpu接口和客户端gpu接口被配置为将采用第一命令格式的图形处理命令转译成采用第二命令格式的图形处理命令。这意味着服务器gpu不一定要对客户端gpu命令集进行响应。

在示例中,客户端数据处理单元被配置为接收采用第一图形数据格式的经处理的图形数据;服务器gpu被配置为生成采用第二图形数据格式的经处理的图形数据;以及服务器gpu接口和客户端gpu接口被配置为将采用第二图形数据格式的经处理的图形数据转译成采用第一图形数据格式的经处理的图形数据。客户端gpu接口可以被配置为针对客户端gpu接口和客户端数据处理单元之间的交互,对图形处理单元进行仿真以处理采用第一格式的图形处理命令。

客户端设备可以包括客户端gpu。在示例中,客户端gpu接口被配置为选择性地将从客户端数据处理单元接收的图形处理命令提供至客户端gpu或服务器设备。但是如果没有提供客户端gpu,由于服务器设备向客户端设备提供图形处理服务,则系统仍然可以操作。

在不同指令或命令集的示例中,服务器gpu可以被配置为处理表示第一组图形处理操作的图形处理命令,并且客户端gpu可以被配置为处理表示第二组图形处理操作的图形处理命令,第一组图形处理操作包括第二组图形处理操作中没有的图形处理操作。

在示例中,客户端gpu接口被配置为保留客户端设备处的一个或多个内存区域以用于存储经处理的图形数据。

为了降低传输带宽要求,在示例中,服务器gpu接口被配置为对要通过数据通信路径发送至客户端设备的经处理的图形数据进行压缩;以及客户端gpu接口被配置为对从服务器设备接收的经处理的图形数据进行解压缩。

在图形处理期间,在客户端设备和服务器设备处可以使用各种缓冲区。为了避免过度传输,在数据准备用于显示时才进行数据传输,在一些示例中客户端设备包括显示缓冲区;服务器gpu被配置为对经处理的图形数据进行缓冲;以及客户端设备被配置为响应于服务器gpu处的经处理的图形数据的缓冲区大小与显示缓冲区的缓冲区大小相同,从服务器设备向客户端设备传输经处理的图形数据。

然而,在中间缓冲区恰好具有与客户端显示缓冲区相同大小的情况下,在示例中客户端设备被配置为响应于检测到与服务器gpu处的缓冲区相关联的描述符数据指示该服务器gpu处的缓冲区映射至显示缓冲区,传输来自服务器设备的经处理的图形数据。

另一示例实施例提供了电路仿真装置,包括:

如上面所定义的数据处理装置;

其中客户端数据处理单元被配置为执行电路仿真指令,并且响应于对电路仿真指令的执行,生成要经由客户端gpu接口提供至服务器设备的图形处理命令。

另一示例实施例提供了服务器设备,该服务器设备通过数据通信路径可连接用于到客户端设备的数据通信,该服务器设备包括:

服务器图形处理单元(gpu),用于接收并处理图形处理命令以生成经处理的图形数据;

服务器gpu接口,用于从客户端设备接收采用第一命令格式的图形处理命令,并且向服务器gpu提供采用第二命令格式的图形处理命令以用于执行。

另一示例实施例提供了客户端设备,该客户端设备通过数据通信路径可连接用于到服务器设备的数据通信,该客户端设备包括:

客户端数据处理单元;以及

客户端图形处理单元(gpu)接口,用于从客户端数据处理单元接收图形处理命令、将图形处理命令发送至服务器设备的服务器gpu、从服务器gpu接收经处理的图形数据、以及向客户端数据处理单元提供经处理的图形数据。

另一示例实施例提供了操作数据处理装置的方法,该数据处理装置包括通过数据通信路径被连接用于数据通信的服务器设备和客户端设备;该方法包括:

客户端设备的客户端gpu接口从客户端设备的客户端数据处理单元接收图形处理命令;

客户端gpu接口向服务器设备的服务器gpu发送图形处理命令;

服务器gpu接收并处理图形处理命令以生成经处理的图形数据;

服务器设备向客户端设备发送经处理的图形数据;

客户端gpu接口从服务器gpu接收经处理的图形数据并向客户端数据处理单元提供经处理的图形数据。

另一示例实施例提供了一种操作服务器设备的方法,该服务器设备通过数据通信路径可连接用于到客户端设备的数据通信,该方法包括:

服务器设备的服务器gpu接口从客户端设备接收采用第一命令格式的图形处理命令,并且向服务器设备的服务器gpu提供采用第二命令格式的图形处理命令;以及

服务器gpu接收并处理图形处理命令以生成经处理的图形数据。

另一示例实施例提供了一种操作客户端设备的方法,该客户端设备通过数据通信路径可连接用于到服务器设备的数据通信,该方法包括:

客户端设备的客户端图形处理单元(gpu)接口从客户端设备的客户端数据处理单元接收图形处理命令;

客户端gpu接口向服务器设备发送图形处理命令;

客户端gpu接口从服务器设备接收经处理的图形数据;以及

客户端gpu接口将经处理的图形数据提供至客户端数据处理单元。

图1示意性地示出了数据处理系统。

图1的装置包括服务器设备100和客户端设备120、140的集群110。每个客户端设备可以单独与服务器设备100交互,并且可以执行相应的操作,从客户端设备的角度来看这些操作是独立的。因此,下面的讨论将集中在示例性单个客户端设备(例如,客户端设备120),这是基于对类似及相应的操作可由其他客户端设备(例如,客户端设备140)执行(如上面提到的,从客户端设备的角度来看是独立地)的理解。图1中没有示出的另外的客户端设备可以组成集群110的部分和/或可以单独访问服务器设备100。

将要描述客户端设备用于运行表示所谓的快速模型模拟环境的软件的操作。具体地,与快速模型环境122、142有关的操作将被详细描述,而客户端设备的其他无关操作将不被详细描述。这里示出的示例客户端设备运行所谓的android操作系统(os)124、144。在androidos下,应用126、146(“app”)是使用gpu功能的应用程序,该功能由快速模型的模拟环境提供。因此,从应用126、146的角度来看,目的在于应用可以生成针对gpu操作的函数调用,并且像提供与模型化的gpu相对应的物理gpu那样处置这些功能调用。

与gpu操作有关的函数调用从app被提供至所谓的中介层(shimlayer)128、148。它们可以是使用所谓的应用程序接口(api)的函数调用,并且如果系统使用正被模拟的类型的物理gpu,则api可由这样的物理gpu识别和作用。

gpu函数调用由中介层128路由至图形驱动器130(其与组成快速模型的部分的所谓的grm软件132交互,并且下面还将对grm软件132进行描述)或tcp(传输控制协议)服务器134、154,tcp服务器134、154提供与服务器设备100的通信路径,在服务器设备100处与相应的tcp服务器136、156交互。因此,出于这些目的,中介层构成了客户端gpu接口的示例,该客户端gpu接口被配置为针对客户端gpu接口和客户端数据处理单元之间的交互,对图形处理单元进行仿真,以处理采用第一格式(客户端gpu所期望的格式)的图形处理命令。它被配置为选择性地将从客户端数据处理单元接收的图形处理命令提供至客户端gpu或服务器设备。

但是要注意,grm软件不是必需的。如果提供了grm软件,则图形处理命令可以选择性地由快速模型或服务器设备处置。如果没有提供grm软件,则图形处理命令可以由服务器设备处置。因此,即便没有提供grm,仍然可以获得或利用图形结果(例如,用于显示)。

因而,应用126、146所需的gpu操作可以由grm132、152处置或者可以经由客户端和服务器设备处的tcp服务器被路由至服务器设备100。

因此在该执行gpu命令以向app126提供渲染操作的示例中,存在两种方式。一种方式是使用grm(图形寄存器模型),grm是作为快速模型的部分提供的并在每个客户端设备处执行的图形处理资源。另一种方式是使用gga(通用图形加速),gga至少部分地由服务器设备100提供。在具体的模拟情景中可以使用它们中的一者或两者。例如,并且如下面所论述的,服务器100的图形处理吞吐量可以大于可由具体客户端的grm提供的图形处理吞吐量,从而模拟可以从使用gga机制和服务器100的资源开始。作为交叉检查,可以使用客户端设备的grm来执行进一步的模拟。在图1中示意性地以阴影示出了与gga和grm有关的处理的各个部分。

回到服务器100,经由tcp服务器136、146接收的gpu命令被提供至所谓的快速模型边信道插件102,该快速模型边信道插件102与gga调解器104交互。边信道102和/或gga调解器104可以提供高速缓冲存储器资源103,以用于存储输入命令和/或经处理的输出结果。为了当前操作起见,边信道102和gga调解器104协作接收来自客户端设备的gpu命令并按照在服务器100的模拟系统处执行的顺序安排这些命令。gga调解器104和边信道102还协作将适当处理的结果(例如,经由高速缓冲存储器资源103)提供回请求这些结果的相应客户端。

gga调解器104还完成以下各项:(a)维护服务器处的所谓的opengles(用于嵌入式系统的开放图形库)状态并准备用于在服务器设备处调用api调用的参数;(b)通过mali仿真器106或本地图形驱动器108调用服务器处的api操作;以及(c)将服务器处的帧缓冲区格式转换成适用于请求客户端设备的目标格式,并且将要返回至请求客户端设备的数据写回边信道102。

因此,如上面提到的,在一些示例中,从客户端设备接收的命令可以采用opengles格式。然而,一些命令可能需要访问服务器处的opengl状态,诸如所谓的transformfeedbackbuffer或shaderstoragebuffer命令。对于这些命令,服务器处的缓冲区数据必须被访问并写回至请求客户端设备中的缓冲存储器。mali仿真器106是将opengles转换为opengl格式交互的现有系统,因而mali仿真器106能够从gga调解器104接收api命令并且按照opengl格式将这些命令分发至本地图形驱动器108。如果服务器100处的本地图形驱动器直接支持opengles,则mali仿真器106不是必要的并且可以将openglesapi命令直接提供至本地图形驱动器108。

本地图形驱动器108访问服务器设备处的gpu资源109。

对命令或命令格式的转换或转译可以在客户端侧、服务器侧或它们两侧执行。例如,这可由中介层、gga调解器和/或mali仿真器执行。在示例实施例中,客户端数据处理单元被配置为生成采用第一命令格式的图形处理命令;服务器gpu被配置为执行采用第二命令格式的图形处理命令;以及服务器gpu接口和客户端gpu接口被配置为将采用第一命令格式的图形处理命令转译为采用第二命令格式的图形处理命令。

类似地,可以例如在gga调解器处实现对适合被返回至客户端设备的数据的准备。在示例实施例中,客户端数据处理单元被配置为接收采用第一图形数据格式的经处理的图形数据;服务器gpu被配置为生成采用第二图形数据格式的经处理的图形数据;以及服务器gpu接口和客户端gpu接口被配置为将采用第二图形数据格式的经处理的图形数据转译为采用第一图形数据格式的经处理的图形数据。

这些布置可以在图2的示意表示中被概述,图2示出了数据处理装置,该装置包括通过数据通信路径200被连接用于数据通信的服务器设备100和客户端设备120(它们可以包括上面所论述的tcp服务器)。服务器设备包括服务器图形处理单元(gpu)210(例如,实现为上面所论述的108、109),用于接收并处理图形处理命令以生成经处理的图形数据。服务器gpu接口220被配置为将图形处理命令提供至服务器gpu以用于执行。客户端设备120包括客户端数据处理单元230(例如,执行图1中所示的快速模型布置122的cpu);以及客户端gpu接口240(例如,中介层128),用于从客户端数据处理单元接收图形处理命令、将图形处理命令发送至服务器gpu、从服务器gpu接收经处理的图形数据、以及将经处理的图形数据提供至客户端数据处理单元。

为了节省带宽,服务器gpu接口(例如,边信道102)可以被配置为对要通过数据通信路径发送至客户端设备的经处理的图形数据进行压缩;以及客户端gpu接口可以被配置为对从服务器设备接收的经处理的图形数据进行解压缩。

在一些示例中,客户端数据处理单元230被配置为生成采用第一命令格式的图形处理命令;服务器gpu210被配置为执行采用第二命令格式的图形处理命令;以及如上面所论述的,服务器gpu接口220和客户端gpu接口240被配置为将采用第一命令格式的图形处理命令转译成采用第二命令格式的图形处理命令。

这些系统可以被实现为电路仿真装置,包括:如上面所定义的数据处理装置,其中客户端数据处理单元被配置为执行电路仿真指令,并且响应于对电路仿真指令的执行,生成要经由客户端gpu接口被提供至服务器设备的图形处理命令。

示例实施例提供了通过数据通信路径可连接用于到客户端设备的数据通信的服务器设备100,该服务器设备包括:服务器图形处理单元(gpu),用于接收并处理图形处理命令以生成经处理的图形数据;服务器gpu接口,用于从客户端设备接收采用第一命令格式的图形处理命令,并将采用第二命令格式的图形处理命令提供至服务器gpu以用于执行。

示例实施例提供了通过数据通信路径可连接用于到服务器设备的数据通信的客户端设备120,该客户端设备包括:客户端数据处理单元;以及客户端图形处理单元(gpu)接口,用于从客户端数据处理单元接收图形处理命令、将图形处理命令发送至服务器设备的服务器gpu、从服务器gpu接收经处理的图形数据、以及将经处理的图形数据提供至客户端数据处理单元。

图3是示出操作数据处理装置的方法的示意流程图,该数据处理装置包括通过数据通信路径被连接用于数据通信的服务器设备和客户端设备;该方法包括:

客户端设备的客户端gpu接口从客户端设备的客户端数据处理单元接收(在步骤300处)图形处理命令;

客户端gpu接口将图形处理命令发送(在步骤310处)至服务器设备的服务器gpu;

服务器gpu接收并处理(在步骤320处)图形处理命令以生成经处理的图形数据;

服务器设备将经处理的图形数据发送(在步骤330处)至客户端设备;

客户端gpu接口从服务器gpu接收经处理的图形数据并将经处理的图形数据提供至客户端数据处理单元(在步骤340处)。

图4是示出操作服务器设备的方法的示意流程图,该服务器设备通过数据通信路径可连接用于到客户端设备的数据通信,该方法包括:

服务器设备的服务器gpu接口从客户端设备接收采用第一命令格式的图形处理命令,并将采用第二命令格式的图形处理命令提供至服务器设备的服务器gpu(在步骤400处);以及

服务器gpu接收并处理(在步骤410处)图形处理命令以生成经处理的图形数据。

图5是示出操作客户端设备的方法的示意流程图,该客户端设备通过数据通信路径可连接用于到服务器设备的数据通信,该方法包括:

客户端设备的客户端图形处理单元(gpu)接口从客户端设备的客户端数据处理单元接收(在步骤500处)图形处理命令;

客户端gpu接口将图形处理命令发送(在步骤510处)至服务器设备;

客户端gpu接口从服务器设备接收(在步骤520处)经处理的图形数据;以及

客户端gpu接口将经处理的图形数据提供(在步骤530处)至客户端数据处理单元。

在一些示例中,服务器gpu被配置为处理表示第一组图形处理操作的图形处理命令,并且客户端gpu被配置为处理表示第二组图形处理操作的图形处理命令,第一组图形处理操作包括第二组图形处理操作中没有的图形处理操作。

图6示意性地示出了在客户端设备处使用所谓的库,以提供中介层128、148和所谓的nwh抽象层129的功能,其中nwh抽象层129可以被提供在图1中的中介层旁边。

在图6中,在客户端设备处,api调用(例如,“gieglimagetargettexture2does”操作)经由中介层128被提供至服务器设备。该操作将图像附加至纹理数据。

在服务器设备处,接下来的步骤用于创建适当的纹理600以创建eglimage(egl图像)610,然后在步骤620处更新图形处理数据。为了实现该步骤,服务器访问客户端设备处的nwh抽象层129以便于访问执行gieglimagetargettexture2does命令所需的诸如客户端设备处的本地窗口缓冲区指针之类的信息。这导致对所需纹理640的生成,其中所需纹理640作为纹理650被返回至客户端,如上面所论述的。

服务器侧glesapi执行可以根据从客户端设备复制的存储缓冲区。在一些示例实施方式中,服务器设备和客户端设备之间的最大存储器带宽消耗是针对每个可视窗口从服务器设备读取和向客户端设备写入的本地渲染缓冲区。

图7示意性地示出了示例布置,通过该示例布置可以关于实现硬件复合的“surfaceflinger”700读取和写入渲染缓冲区。这里,surfaceflinger是android系统服务,负责将项复合成将由显示器控制器显示的单个缓冲区710。

如上面所论述的,客户端设备运行快速模型,而服务器提供真正的3d渲染工作。当在客户端设备处调用诸如egicreatesurface之类的命令时,在客户端处创建本地缓冲区。相应地,客户端设备通知服务器设备为服务器设备中的gpu109创建相应的缓冲区。当完成服务器侧处的渲染时,命令egiswapbuffer将被调用以如(1)和(2)所指示的将内存复制回客户端。在图表中,两个缓冲区b0和b1被用作示例。

当(例如,由来自客户端设备处的显示设备的显示同步信号vsync信号)触发surfaceflinger时,软件复合操作将分发glesapigieglimagetargettexture2does以将客户端中的缓冲区b0和b1复制到服务器中的缓冲区b0’和b1’。此时,就数据内容来说,b0’是b0,并且b1’是b1。当在服务器中完成了真正的复合操作之后,将生成适合所需显示大小的帧缓冲区720,并且调用egiswapbuffer以将其复制回客户端的androidos中的帧缓冲设备fb0。

实际上,可以省去如(1)(2)(3)(4)所描述的内存复制,并且通过减少一些内存复制可以相应地降低内存带宽消耗。

参考图8,为了识别在服务器侧处的b0’与b0相同并且b1’与b1相同而检查客户端处的显示大小。如果渲染缓冲区的大小恰好是显示器所使用的大小,就假设渲染缓冲区是用于硬件复合目标,也就是说设备fb0。通过这种方案,可以潜在地降低约3/4的帧缓冲区复制数据流量。

因而,这些布置提供了这样的示例,其中客户端设备包括显示缓冲区(710);服务器gpu被配置为对经处理的图形数据进行缓冲(720);以及客户端设备被配置为响应于服务器gpu处的经处理的图形数据(720)的缓冲区大小与显示缓冲区(710)的缓冲区大小相同,将经处理的图形数据从服务器设备传输至客户端设备。

然而,对于一些示例情形,如果渲染缓冲区大小与客户端设备中的显示大小相同,但缓冲区不是表面硬件复合的目标,则图8的布置可能会不正确地操作。为了能够检测在服务器侧中的b0’是b0而b1’是b1,可以使用进一步的检测。在图8中,在服务器侧处无法观察到b0/b1和b0’/b1’之间的显式连接,但是它们被客户端侧处的本地缓冲区b0/b1隐式连接。因此,方案可以是向服务器通知连接,这是因为否则的话就需要使用帧缓冲区的特征来推断该连接。

在示例实施例中,fd查询驱动器900被提供(例如,通过集成或添加到androidos)以检查b0/b1和b0’/b1’是否能够与彼此进行映射。该驱动器通过用户空间中所提供的fd描述符找到驱动器中隐藏的数据结构,然后该信息可被用于检测用户空间中暴露的缓冲区的关系。

在图9中,虚线表示用于通过安装在客户端设备中的fd查询驱动器查询唯一内核缓存区id的操作,从而唯一id其后可以例如被fd查询驱动器用于检查分配在客户端侧处的缓冲区的关系,然后确定是否存在从客户端向服务器复制本地缓冲区的需要。如果发现在服务器侧已经存在缓冲区缓存,则不执行该复制,因此也就不需要从服务器向客户端复制回缓冲区。服务器中所有的渲染工作将基于缓冲区缓存,并且只有特别被映射至客户端侧中的设备fb0的帧缓存区需要被写回。因此,可以节省许多数据传输带宽。

这提供了客户端设备被配置为响应于检测到与服务器gpu处的缓冲区相关联的描述符数据只是该服务器gpu处的缓冲区映射至显示缓冲区,传输来自服务器设备的经处理的图形数据。

图10和图11示意性地示出了用于客户端设备和服务器设备之间的存储器一致性的技术。

在于客户端设备处执行所有处理操作的布置中,可由通用内核空间中的操作系统和驱动支持保障cpu和gpu之间的存储器访问。

然而,当客户端api调用被分发至在(潜在地)不同地址空间中操作的服务器设备时,这就不是必要的了。

这尤其与两个示例api操作gimapbufferrange和giunmapbuffer有关,它们用于从gpu向cpu映射或解映射(unmap)特定缓冲区对象的所有或部分数据存储。

图10和图11示意性地示出了用于正确处置这两个api(或导致类似问题的api)的示例技术。

参考图10,对于gimapbufferrange,首先在客户端设备中调用操作,然后在服务器设备处调用操作,接下来将映射的缓冲区数据从主机向目标复制,即(1)-(2)-(3)。

对于giunmapbuffer,按相反的顺序执行步骤,也就是说从目标向主机复制回缓冲区,接下来在服务器设备处调用该缓冲区以对主机gpu的缓冲区对象进行解映射,最后也在客户端设备处调用操作,即(4)-(5)-(6)。步骤(3)和(6)确保目标应用中的正确语法执行,并且它们对于维护目标驱动器中的opengles缓冲区对象状态是强制性的。

这种方式可以实现目标和主机之间的存储器一致性。

在本申请中,词语“被配置为……”被用于表示装置的元件具有能够执行所定义的操作的配置。在该上下文中,“配置”表示硬件或软件的互连布置或方式。例如,装置可以具有提供所定义的操作的专用硬件,或者处理器或其他处理设备可以被编程以执行功能。“被配置为”并非暗示装置元件需要以任何方式被改变以便于提供所定义的操作。

尽管本文已经参考附图详细描述了本技术的说明性实施例,但是要理解的是本技术不限于这些明确的实施例,并且本领域技术人员在不背离如由所附权利要求所限定的范围和精神的情况下可以对其实施各种改变、添加和修改。例如,在不背离本技术的范围的情况下,从属权利要求的特征可以与独立权利要求的特征进行各种组合。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1