概括而言,本公开内容涉及图形处理系统,并且更具体地,涉及签名和执行图形处理器命令流。
背景技术:
1、诸如图形处理单元(gpu)之类的专用处理器越来越多地用于执行计算机系统中的特定操作。例如,gpu在操纵计算机图形和图像处理方面是非常高效的。对于并行地处理大数据块的算法,gpu的高度并行结构使gpu比许多其它处理器更高效。因此,gpu通常用于处理计算机图形并且渲染图形内容以在显示设备上呈现。此外,gpu通常与其它处理器(诸如中央处理单元(cpu))协同工作,以更高效地执行计算机应用并且卸载某些处理任务。在一些示例中,cpu可以向gpu发送一个或多个命令流,gpu可以将其作为由cpu和gpu执行的计算机应用的部分来执行。
技术实现思路
1、本文公开了用于签名和执行图形处理单元(gpu)命令流的系统、方法和计算机可读介质。根据至少一个示例,提供了一种用于签名和执行gpu命令流的方法。一种示例方法可以包括:由图形处理单元(gpu)接收一个或多个命令,所述一个或多个命令包括使用处理器而生成的一个或多个验证签名,所述一个或多个验证签名中的每个验证签名包括基于所述一个或多个命令而生成的第一值;由所述gpu生成与所述一个或多个命令相关联的一个或多个额外验证签名,其中,所述一个或多个额外验证签名中的每个验证签名包括由所述gpu基于所述一个或多个命令而生成的第二值;以及由所述gpu基于对所述一个或多个验证签名和所述一个或多个额外验证签名的比较来确定所述一个或多个命令的有效性。
2、根据至少一些示例,提供了一种用于签名和执行gpu命令流的装置。在一个示例在,一种示例装置可以包括:存储器和一个或多个处理器,其被配置为:通过图形处理单元(gpu)接收一个或多个命令,所述一个或多个命令包括使用处理器而生成的一个或多个验证签名,所述一个或多个验证签名中的每个验证签名包括基于所述一个或多个命令而生成的第一值;通过所述gpu生成与所述一个或多个命令相关联的一个或多个额外验证签名,其中,所述一个或多个额外验证签名中的每个验证签名包括由所述gpu基于所述一个或多个命令而生成的第二值;以及通过所述gpu基于对所述一个或多个验证签名和所述一个或多个额外验证签名的比较来确定所述一个或多个命令的有效性。
3、在另一示例中,一种示例装置可以包括:用于通过图形处理单元(gpu)接收一个或多个命令的单元,所述一个或多个命令包括使用处理器而生成的一个或多个验证签名,所述一个或多个验证签名中的每个验证签名包括基于所述一个或多个命令而生成的第一值;用于通过所述gpu生成与所述一个或多个命令相关联的一个或多个额外验证签名的单元,其中,所述一个或多个额外验证签名中的每个验证签名包括由所述gpu基于所述一个或多个命令而生成的第二值;以及用于通过所述gpu基于对所述一个或多个验证签名和所述一个或多个额外验证签名的比较来确定所述一个或多个命令的有效性的单元。
4、根据至少一个示例,提供了用于签名和执行gpu命令流的非暂时性计算机可读介质。一种示例非暂时性计算机可读介质可以存储指令,所述指令在由一个或多个处理器执行时使得所述一个或多个处理器进行以下操作:通过图形处理单元(gpu)接收一个或多个命令,所述一个或多个命令包括使用处理器而生成的一个或多个验证签名,所述一个或多个验证签名中的每个验证签名包括基于所述一个或多个命令而生成的第一值;通过所述gpu生成与所述一个或多个命令相关联的一个或多个额外验证签名,其中,所述一个或多个额外验证签名中的每个验证签名包括由所述gpu基于所述一个或多个命令而生成的第二值;以及通过所述gpu基于对所述一个或多个验证签名和所述一个或多个额外验证签名的比较来确定所述一个或多个命令的有效性。
5、在一些方面中,如在上述方法、装置和计算机可读介质中描述的确定所述一个或多个命令的所述有效性可以包括:确定与所述一个或多个验证签名相关联的所述第一值与同所述一个或多个额外验证签名相关联的所述第二值匹配;以及确定所述一个或多个命令是有效的。在一些示例中,确定所述一个或多个命令是有效的可以导致(和/或包括)以下各项中的至少一项:确定所述一个或多个命令被授权以由所述gpu执行,确定所述一个或多个命令的完整性,和/或确定所述一个或多个命令不包括未经授权的改动。
6、在一些方面中,上述方法、装置和计算机可读介质可以包括:基于所述一个或多个命令是有效的,授权在所述gpu处对所述一个或多个命令的执行。
7、在一些情况下,确定所述一个或多个命令的所述有效性可以包括:确定与所述一个或多个验证签名相关联的所述第一值与同所述一个或多个额外验证签名相关联的所述第二值不匹配;以及确定所述一个或多个命令是无效的。在一些示例中,确定所述一个或多个命令是无效的可以导致(和/或包括)以下各项中的至少一项:确定所述一个或多个命令未被授权以由所述gpu执行和/或确定所述一个或多个命令包括一个或多个未经授权的改动。
8、在一些方面中,上述方法、装置和计算机可读介质可以包括:基于所述一个或多个命令是无效的,防止在所述gpu处对所述一个或多个命令的执行和/或在所述gpu处的所述一个或多个命令的当前执行的完成。
9、在一些示例中,所述一个或多个命令指定要由所述gpu执行的一个或多个操作,并且所述一个或多个命令的所述有效性是在所述一个或多个命令和/或与所述一个或多个命令相关联的软件应用的运行时执行期间确定的。
10、在一些情况下,所述第一值和所述第二值是基于所述一个或多个命令的一个或多个特性来生成的。在一些示例中,所述一个或多个特性可以包括:命令数量、一种或多种类型的命令的数量、所述一个或多个命令中的至少一个命令的内容、和/或在所述一个或多个命令中包括的一个或多个间接指针。在一些情况下,所述一个或多个间接指针可以包括对一个或多个额外命令的一个或多个引用。
11、在一些方面中,所述一个或多个验证签名和所述第一值可以是由用户空间设备驱动器、内核空间驱动器和/或被授权以创建命令流和/或操纵命令流的处理器生成的。在一些示例中,所述一个或多个额外验证签名和所述第二值可以是由与所述gpu相关联的命令处理器、与所述gpu相关联的着色器处理器和/或被授权以创建命令流和操纵命令流中的至少一个操作的处理器生成的。在一些情况下,所述一个或多个命令的所述有效性可以是由所述命令处理器和/或所述着色器处理器来确定的。
12、在一些示例中,所述一个或多个命令可以包括:命令流、着色器程序、引用所述着色器程序的命令、和/或针对存储器中的与所述一个或多个命令相关联的一个或多个位置的一个或多个指针。
13、在一些情况下,所述一个或多个命令的所述有效性可以是在与所述一个或多个命令相关联的软件应用的运行时执行期间以及在所述一个或多个命令的执行和/或与所述一个或多个命令相关联的一个或多个操作的完成之前确定的。
14、在一些情况下,所述一个或多个验证签名可以包括指示当所述一个或多个验证签名被确定为无效时应当拒绝所述一个或多个命令的执行的命令和/或指令。
15、在一些情况下,上述装置可以是和/或可以包括移动电话、智能可穿戴设备、便携式计算机、台式计算机、服务器、和/或相机系统。在一些情况下,上述装置可以包括图像传感器、gpu、中央处理单元(cpu)和/或显示器。
16、本
技术实现要素:
并不旨在标识所要求保护的主题的关键或必要特征,也不旨在孤立地用于确定所要求保护的主题的范围。本发明内容应当通过参考本公开内容的整个说明书、附图和权利要求的合适部分来理解。
17、在参考以下说明书、权利要求和附图之后,前述内容以及其它特征和实施例将变得更加显而易见。