当前位置: 首页 > 专利查询>英特尔公司专利>正文

支持完全虚拟化图形架构中的自修改图形工作负载制造技术

技术编号:28686921 阅读:28 留言:0更新日期:2021-06-02 03:07
系统、设备和方法可以提供在与虚拟机相关联的访客命令缓冲器中设置写保护标志、并且响应于错误而将信号量命令注入到阴影命令缓冲器中的技术。错误与由在图形硬件中执行的代码将图形命令写入访客命令缓冲器相对应。在一个示例中,该技术还响应于图形硬件中的上下文切换来对图形命令进行安全性扫描,其中上下文切换与信号量命令相关联。

【技术实现步骤摘要】
【国外来华专利技术】支持完全虚拟化图形架构中的自修改图形工作负载
实施例总体上涉及图形架构。更具体地,实施例涉及支持完全虚拟化图形架构中的自修改图形工作负载。
技术介绍
虚拟化图形处理单元(vGPU)架构可以在模拟计算系统的虚拟机(VM)中执行图形工作负载(例如,三维/3D和/或计算工作负载)。如果图形工作负载包括在执行期间填充VM内的命令缓冲器的自修改代码,则可能引起安全性隐患。附图说明通过阅读以下说明书和所附权利要求并通过参考以下附图,实施例的各种优势对本领域技术人员将变得显而易见,其中:图1是根据实施例的支持特权自修改代码的虚拟化图形架构的示例的框图;图2是根据实施例的操作安全性增强的计算系统的方法的示例的流程图;图3是根据实施例的命令边界位映射的示例的图示;图4是根据实施例的将信号量命令注入到阴影缓冲器中的示例的图示;图5是根据实施例的安全性增强的计算系统的示例的框图;图6是根据实施例的半导体封装设备的示例的图示;图7是根据实施例的处理器的示例的框图;以及图8是根据实施例的基于多处理器的计算系统的示例的框图。具体实施方式现在转到图1,示出了虚拟化图形架构10,其中虚拟机(VM)12包括虚拟图形处理器14(例如,vGPU)和访客命令缓冲器16(例如,环形缓冲器、特权批量缓冲器)。所图示的访客命令缓冲器16通常存储与图形工作负载(例如,3D和/或计算工作负载)相关联的命令,其中虚拟图形处理器14从访客命令缓冲器16中检取命令并将这些命令提交给中介器18以进行进一步处理。在一个示例中,架构10包括VM12的多个独立实例并且每个VM12经由虚拟机管理器(VMM,例如,管理程序)与中介器18进行通信。所图示的中介器18包括命令扫描器20,该命令扫描器20分析来自访客命令缓冲器16的命令以确定该命令是否存在安全性风险。不存在安全性风险的命令被放置到阴影命令缓冲器22中,该阴影命令缓冲器22通常镜像访客命令缓冲器16。在实施例中,主机图形处理器驱动器24从阴影命令缓冲器22中检取命令并将这些命令作为工作负载提交/分派到图形硬件26(例如,高度并行化图形执行单元/EU的阵列、图形流水线等)。在一个示例中,由图形硬件26执行的工作负载包括自修改代码28,该自修改代码28将图形命令30写入访客命令缓冲器16。自修改代码28可提供优化的媒体解码器/编码器操作、涉及跨引擎合作的通用计算着色器操作,等等。在实施例中,图形硬件26隔离工作负载中的非特权自修改命令以进行安全性扫描。但是,如果自修改代码28是特权代码(例如,具有系统级或“环0”特权的代码),则图形硬件26可能缺乏扫描该自修改代码28中的安全性风险的能力。在所图示的示例中,输入/输出存储器映射单元(IOMMU)32设置访客命令缓冲器16的写保护标志(例如,读/写位),使得由自修改代码28将图形命令30写入访客命令缓冲器16的尝试将生成错误(例如,直接存储器访问/DMA写入错误)。当错误发生时,所图示的中介器18将信号量(semaphore)(例如,等待)命令(未示出)注入/写入阴影命令缓冲器22中。在实施例中,信号量命令是控制对图形硬件26的访问的同步指令,其可以在运行线程之间共享。因此,当所图示的图形硬件26遇到阴影命令缓冲器22中的信号量命令时,图形硬件26将发起上下文切换并停止执行。响应于上下文切换,命令扫描器20对图形命令30进行安全性扫描。如果安全性扫描未检测到安全性风险,则所图示的命令扫描器20用图形命令30覆写信号量命令。因此,中介器18可以恢复图形硬件26对来自阴影命令缓冲器22的命令30的执行。因此,所图示的解决方案使得特权自修改代码28能够由虚拟化图形架构10支持,而无需担心安全性漏洞(例如,恶意软件、间谍软件)。此外,所图示的解决方案在在其将命令30写入访客命令缓冲器16后不立即尝试对命令30进行扫描的意义上可以被认为是“惰性”扫描和更新系统。相反,所图示的解决方案等待直到图形硬件26准备好执行命令30。此类方法在自修改代码28在图形硬件26准备好执行命令之前多次写入访客命令缓冲器16时可能是有利的。在该情况下,命令扫描器20可以通过一次覆写阴影命令缓冲器22中的信号量命令的多个实例来实现更高的效率并且最小化性能影响。图2示出了操作安全性增强的计算系统的方法34。方法34一般可被实现于虚拟图形架构中,虚拟图形架构诸如例如已讨论的架构10(图1)。更具体地,方法34可采用一组逻辑指令被实现为一个或多个模块,这组逻辑指令被存储在诸如随机存取存储器(RAM)、只读存储器(ROM)、可编程ROM(PROM)、固件、闪存等之类的机器或计算机可读存储介质中,被存储在诸如例如可编程逻辑阵列(PLA)、现场可编程门阵列(FPGA)、复杂可编程逻辑器件(CPLD)之类的可配置逻辑中,被存储在使用诸如例如专用集成电路(ASIC)、互补式金属氧化物半导体(CMOS)的电路技术或晶体管-晶体管逻辑(TTL)技术之类的固定功能逻辑硬件或其任何组合中。例如,可以用一种或多种编程语言的任何组合来编写用于实施在方法34中所示的操作的计算机程序代码,这些编程语言包括诸如JAVA、SMALLTALK、C++等的面向对象的编程语言以及诸如“C”编程语言或类似编程语言的常规的过程编程语言。另外,逻辑指令可包括汇编程序指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、状态设置数据、用于集成电路的配置数据、使对于硬件(例如,主机处理器、中央处理单元/CPU、微控制器等)而言是原生的电子电路和/或其他结构组件个性化的状态信息。所图示的处理框36提供在与虚拟机相关联的访客命令缓冲器中设置写保护标志。在一个示例中,可经由支持DMA的I/O(输入/输出)总线访问访客命令缓冲器。在框38处,响应于错误,将信号量命令注入到阴影命令中。在所图示的示例中,错误与由在图形硬件中执行的代码将图形命令写入访客命令缓冲器相对应。在实施例中,在图形硬件中执行的代码是自修改代码和/或特权代码。如将更详细地讨论的,框38可包括基于命令边界位映射来确定错误是相对于访客命令缓冲器中的命令区域发生还是相对于访客命令缓冲器中的数据区域发生。如果错误相对于访客命令缓冲器中的命令区域发生,则框38将信号量命令注入到阴影命令缓冲器的命令区域中。相反,如果错误相对于访客命令缓冲器中的数据区域发生,则框38可以将信号量命令注入到与阴影命令缓冲器的数据区域相邻的命令区域中。在框40处,响应于图形硬件中的上下文切换,对图形命令进行安全性扫描,其中上下文切换与信号量命令相关联。如果在框42处确定安全性扫描未在图形命令中检测到安全性风险,则所图示的框44用图形命令覆写信号量命令。然后可以允许图形硬件继续执行来自阴影命令缓冲器的图形命令。如果在框42处确定安全性扫描在图形命令中检测到安全性风险,则可以绕过框44。因此,所图示的方法34使得能够支持特权自修改代码而无需担心安全性漏洞(例如,恶意软件、间谍软件)。此外,方法34本文档来自技高网...

【技术保护点】
1.一种安全性增强的计算系统,包括:/n图形硬件;/n与虚拟机相关联的访客命令缓冲器;以及/n处理器,所述处理器包括阴影命令缓冲器和逻辑,所述逻辑用于:/n在所述访客命令缓冲器中设置写保护标志,/n响应于错误而将信号量命令注入到所述阴影命令缓冲器中,其中所述错误与由在所述图形硬件中执行的代码将图形命令写入所述访客命令缓冲器相对应,以及/n响应于所述图形硬件中的上下文切换而对所述图形命令进行安全性扫描,其中所述上下文切换与所述信号量命令相关联。/n

【技术特征摘要】
【国外来华专利技术】1.一种安全性增强的计算系统,包括:
图形硬件;
与虚拟机相关联的访客命令缓冲器;以及
处理器,所述处理器包括阴影命令缓冲器和逻辑,所述逻辑用于:
在所述访客命令缓冲器中设置写保护标志,
响应于错误而将信号量命令注入到所述阴影命令缓冲器中,其中所述错误与由在所述图形硬件中执行的代码将图形命令写入所述访客命令缓冲器相对应,以及
响应于所述图形硬件中的上下文切换而对所述图形命令进行安全性扫描,其中所述上下文切换与所述信号量命令相关联。


2.如权利要求1所述的计算系统,其中,所述逻辑用于:如果所述安全性扫描未在所述图形命令中检测到安全性风险,则用所述图形命令覆写所述信号量命令。


3.如权利要求1所述的计算系统,其中,如果所述错误相对于所述访客命令缓冲器中的命令区域发生,则将所述信号量命令注入到所述阴影命令缓冲器的命令区域中,并且其中,如果所述相对于所述访客命令缓冲器中的数据区域发生,则将所述信号量命令注入到与所述阴影命令缓冲器的数据区域相邻的命令区域中。


4.如权利要求3所述的计算系统,其中,所述逻辑基于命令边界位映射来确定所述错误相对于所述访客命令缓冲器中的命令区域还是所述访客命令缓冲器中的数据区域发生。


5.如权利要求1所述的计算系统,其中,在所述图形硬件中执行的所述代码是自修改代码。


6.如权利要求1至5中任一项所述的计算系统,其中,在所述图形硬件中执行的所述代码是特权代码。


7.一种半导体设备,包括:
一个或多个衬底;以及
逻辑,所述逻辑耦合至所述一个或多个衬底,其中,所述逻辑至少部分地在能配置逻辑或固定功能硬件逻辑中的一者或多者中实现,耦合至所述一个或多个衬底的所述逻辑用于:
在与虚拟机相关联的访客命令缓冲器中设置写保护标志,
响应于错误而将信号量命令注入到阴影命令缓冲器中,其中所述错误与由在图形硬件中执行的代码将图形命令写入所述访客命令缓冲器相对应,以及
响应于所述图形硬件中的上下文切换而对所述图形命令进行安全性扫描,其中所述上下文切换与所述信号量命令相关联。


8.如权利要求7所述的半导体设备,其中,耦合至所述一个或多个衬底的所述逻辑用于:如果所述安全性扫描未在所述图形命令中检测到安全性风险,则用所述图形命令覆写所述信号量命令。


9.如权利要求7所述的半导体设备,其中,如果所述错误相对于所述访客命令缓冲器中的命令区域发生,则将所述信号量命令注入到所述阴影命令缓冲器的命令区域中,并且其中,如果所述错误相对于所述访客命令缓冲器中的数据区域发生,则将所述信号量命令注入到与所述阴影命令缓冲器的数据区域相邻的命令区域中。


10.如权利要求9所述的半导体设备,其中,耦合至所述一个或多个衬底的所述逻辑用于基于命令边界位映射来确定所述错误是相对于所述访客命令缓冲器中的命令区域还是所述访客命令缓冲器中的数据区域发生。


11.如权利要求7至10中任一项所述的半导体设备,其中在所述图形硬件中执行的所述代码是自修改代码或特权代码中的一者或多者。


12.如权利要求7至10中任一项所述的半导体设备,其中,...

【专利技术属性】
技术研发人员:W·李赵嫣王智
申请(专利权)人:英特尔公司
类型:发明
国别省市:美国;US

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

1