CN105393258B - 用于提供对图形处理单元的安全访问控制的系统和方法 - Google Patents
用于提供对图形处理单元的安全访问控制的系统和方法 Download PDFInfo
- Publication number
- CN105393258B CN105393258B CN201480037591.8A CN201480037591A CN105393258B CN 105393258 B CN105393258 B CN 105393258B CN 201480037591 A CN201480037591 A CN 201480037591A CN 105393258 B CN105393258 B CN 105393258B
- Authority
- CN
- China
- Prior art keywords
- processing unit
- graphics processing
- programming interface
- safely
- work order
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/74—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2113—Multi-level security, e.g. mandatory access control
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Storage Device Security (AREA)
- Image Generation (AREA)
Abstract
公开了用于提供对图形处理单元(GPU)的安全访问控制的系统、方法和计算机程序。一个系统包括GPU、多个GPU编程接口和命令处理器。每个GPU编程接口被动态指派给多个安全性地带中的不同的一个安全性地带。每个GPU编程接口被配置为接收由与对应的安全性地带相关联的一个或多个应用发出的工作命令。所述工作命令包括将要由所述GPU来执行的指令。所述命令处理器与所述多个GPU编程接口相通信。所述命令处理器被配置为使用单独的安全存储器区域来控制对由所述多个GPU编程接口所接收的所述工作命令的执行。每个安全存储器区域被分配给所述多个安全性地带中的一个安全性地带。
Description
优先权与相关申请声明
本申请基于35U.S.C.119(e)要求于2013年7月1日递交的、被指派了临时申请序列号61/841,881、并且名称为“System and Method for Providing Secure Access Controlto a Graphics Processing Unit”的美国临时专利申请的优先权,以引用方式将该临时申请的全部内容并入本文。
背景技术
诸如移动电话之类的便携式计算设备(“PCD”)正在变得更加复杂。现有PCD时常具有多个处理器(例如,中央处理单元(CPU)、图形处理单元(GPU)、数字信号处理器(DSP)等)以执行不同的功能并且满足针对这样的设备的增长的需求。现有的PCD还可以支持内容保护架构,所述内容保护架构通常支持针对例如以下使用案例的访问控制需求:数字版权管理(DRM)、控制对用于包括银行、病历、指纹等的应用的保密数据的访问。内容保护架构通常将存储器区域分离为不同的安全性地带,以用于控制通过应用对敏感内容进行的访问。然而,现有的PCD和内容保护架构被限制为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编程接口所接收的所述工作命令的执行。将每个安全存储器区域分配给所述多个安全性地带中的一个安全性地带。
附图说明
在附图中,除非另外指出,否则相似的附图标记贯穿各种视图指代相似的部分。对于诸如“102A”或者“102B”之类的带有字母字符名称的附图标记,字母字符名称可以区分出现在同一幅图中的两个相似的部分或者元件。当旨在使附图标记包含全部图中的具有相同附图标记的全部部分时,可以省略针对附图标记的字母字符名称。
图1是示出了用于提供对图形处理单元(GPU)的安全访问控制的系统的实施例的框图。
图2是示出了图1的系统的实施例的框图,所述图1中的系统配置有四个安全性地带以及对应的GPU编程接口和分配的存储器区域。
图3是示出了在图1中的系统中实现的方法的实施例的流程图,所述在图1的系统中实现的方法用于提供对GPU的安全访问控制。
图4是示出了用于并入图1中的系统的示例性的便携式计算设备的框图。
具体实施方式
本文使用词语“示例性的”来表示“用作示例、实例或者图示”。任何在本文中被描述为“示例性的”方面不必然将要被理解为比其它的方面优选或者有利。
在本说明书中,术语“应用”还可以包括具有可执行内容的文件,例如:目标代码、脚本、字节码、标记语言文件和补丁。另外,本文提到的“应用”还可以包括本质上不可执行的文件,例如,可能需要被打开的文档或者需要被存取的其它数据文件。
术语“内容”也可以包括具有可执行内容的文件,例如:目标代码、脚本、字节码、标记语言文件和补丁。另外,本文提到的“内容”还可以包括本质上不可执行的文件,例如,可能需要被打开的文档或者需要被存取的其它数据文件。
当用在本说明书中时,术语“部件”、“数据库”、“模块”、“系统”等旨在指与计算机相关的实体,要么是硬件、固件、硬件和软件的组合、软件,要么是执行中的软件。例如,部件可以是但是不限于是运行在处理器上的过程、处理器、对象、可执行文件、执行线程、程序和/或计算机。作为图示,运行在计算设备上的应用或者模块和所述计算设备两者都可以是部件。一个或多个部件可以存在于过程和/或执行线程内,并且,部件可以被本地化在一台计算机上和/或分布在两台或多台计算机当中。另外,可以从其上存储有各种数据结构的各种计算机可读介质来执行这些部件。部件可以例如根据具有一个或多个数据分组(例如,来自一个部件的数据,所述一个部件通过信号的方式与本地系统、分布式系统中的另一个部件进行交互,和/或跨诸如互联网之类的网络与其它系统进行交互)的信号经由本地和/或远程过程来进行通信。
“便携式计算设备”(“PCD”)例如可以包括蜂窝电话、卫星电话、寻呼机、个人数字助理、智能电话、导航设备、智能本或者电子阅读器、媒体播放器、平板型计算机、膝上型计算机或者其它这样的设备。
图1是可以被并入到例如用于提供对图形处理单元(GPU)102的安全访问控制的PCD(图4)中的系统100。系统100包括一个或多个中央处理单元(CPU)402以及一个或多个GPU 102,所述GPU 102用于执行与一个或多个应用118和/或一个或多个操作系统120相关联的图形和/或计算指令。CPU 402和GPU 102可以通过硬件总线、连接或者其它接口连接起来。系统100为GPU访问控制提供多个安全性和/或内容保护地带(“安全性地带”)。
GPU硬件和/或软件向CPU 402提供多个GPU编程接口104。GPU编程接口104中的每个GPU编程接口与不同的安全性地带相关联,以用于接收由存在于不同安全性地带中的一个或多个应用118和操作系统120发出的工作命令。安全性地带可以由安全性策略管理器106基于任何可取的安全性使用案例来定义。每个安全性地带被指派给单独的GPU编程接口104,并且被分配给单独的存储器区域。在图1的实施例中,系统100包括四个GPU编程接口104a、104b、104c和104d,它们具有对应的安全存储器区域。上下文库122a、122b、122c和122d可以被分配作为用于执行对应的安全性地带中的工作命令的存储器资源。就这一点而言,安全存储器区域可以包括具有硬件实施的保护的隔离的地址空间,所述硬件实施的保护是在系统存储器管理单元(SMMU)116中使用上下文库122a、122b、122c和122d来进行的。每个上下文库122可以包括用于实施特定的安全的和隔离的地址空间的硬件资源。
工作命令包括将要由GPU 102来执行的图形指令。应当领会的是,应用118可以包括从GPU 102请求资源的任何合适的应用。操作系统120可以包括一个或多个操作系统,例如,高级操作系统(HLOS)。在一个实施例中,GPU 102可以从被特别配置的内容保护应用(例如,内容保护应用117或者与操作系统120相关联的内容保护内核119)接收工作命令。
本领域的技术人员将领会,GPU编程接口104包括控制资源。在一个实施例中,控制资源可以包括寄存器资源,以用于接受来自对应的安全性地带中的应用的工作命令,以及一个或多个中断资源,以指示工作命令执行的完成或者失败状态。可以基于例如虚拟机的大小以及安全性策略管理器106或者受信任地带部件108(即,系统100中的“信任的根”)是否需要对GPU 402的访问,来由虚拟机管理器(VMM)110配置GPU编程接口104。系统100中的“信任的根”基于安全性策略管理器106的系统安全性策略来动态地将GPU编程接口104指派给所指定的安全性地带,这可以在安全性使用案例的启动时刻发生。
如上文所提到的,每个GPU编程接口104可以是取决于特定使用场景被映射到对应的上下文库122的存储器,在该情况下,它们可以包括存储器映射的输入/输出(MIMO)寄存器。GPU编程接口104可以直接地可被指派给一个或多个虚拟机或者VMM 110。应当进一步认识到,可以由硬件实施的访问控制使用系统存储器管理单元(SMMU)116来保护每个GPU编程接口104。以这种方式,在特定的使用案例已经启动之后,每个安全性地带对与GPU编程接口104相关联的寄存器和中断资源可以具有完全的控制。
如图1中进一步示出的,GPU 102可以包括与多个GPU编程接口104相通信的命令处理器114。命令处理器114可以被配置为从与GPU编程接口104相关联的内容队列204(图2)中选择工作命令。就这一点而言,命令处理器114可以基于例如GPU调度策略来确定处理哪些工作命令,并且然后使用被分配给安全性地带的合适的上下文库来控制对所述工作命令的执行。
应当认识到,在一个实施例中,可以由并发地运行在CPU 402上的应用118并行地管理多个安全性地带。每个应用118可以直接地管理相关联的命令队列。安全性地带中的一个或多个安全性地带还可以是安全的和/或不安全的。应用118(以及其相关联的存储器)是安全的和/或不安全的所基于的安全性策略可以由控制GPU 102的处理器(例如,CPU 402)来确定。应当进一步领会到,由CPU 402来执行和/或管理的分段可以通过包括例如以下示例性方式的各种方式来实现:(1)与超级监督者(hypervisor)层(例如,管理多个访客操作系统120的软件层)的隔离;和/或(2)定义了硬件安全域(例如,ARM架构中所使用的“信任地带”安全性扩展)的硬件过程构造,其可以经由对指令的额外的硬件标记来控制受信任的和不受信任的硬件之间的分离,以跟踪存储器访问和GPU命令,以及隔离请求的来源。超级监督者层可以包括硬件上的软件抽象,所述硬件上的软件抽象可以被限制为控制单元的存储器访问隔离。
系统100可以支持任何可取的、与GPU访问控制相关的安全性使用案例。例如,系统100可以支持诸如(举几个例子来说)数字版权管理(DRM)和控制对用于包括银行、病历、指纹等的应用的保密数据的访问之类的使用案例。在一个实施例中,系统100可以提供与各自的安全性地带相关联的四个异常级别,其中每个级别具有不同的或者经排序的安全性特权。第一异常级别(EL0)可以不严格地对应于用户模式。第二异常级别(EL1)可以对应于内核模式。第三异常级别(EL2)可以对应于超级监督者。第四异常级别(EL3)可以对应于包括享有最大特权的安全性地带的受信任地带部件108。
图2示出了涉及四个安全性地带202a、202b、202c和202d的示例性的使用案例。安全性地带202a被指派给GPU编程接口104a,所述GPU编程接口104a被配置用于第一HLOS内核119a,并且具有内容队列204a。内容库122a被分配给安全性地带202a。安全性地带202b被指派给GPU编程接口104b,所述GPU编程接口104b被配置用于内容保护应用117,并且具有内容队列204b。上下文库122b被分配给安全性地带202b。安全性地带202c被指派给GPU编程接口104c,所述GPU编程接口104c被配置用于第二HLOS内核119b,并且具有内容队列204c。上下文库122c被分配给安全性地带202c。安全性地带202d被指派给GPU编程接口104d,所述GPU编程接口104d与受信任地带部件108相关联,并且具有内容队列204d。受信任地带部件108拥有受信任的上下文库122d,所述受信任的上下文库122d包括仅对受信任地带部件108可见的隔离的地址空间。
应当领会的是,安全性地带202可以支持具有合适的应用118的任何可取的使用案例。例如,在一个实施例中,安全性地带202a可以与游戏应用和相关联的虚拟存储器空间相关联。安全性地带202b可以与视频应用和相关联的优质的视频虚拟存储器空间相关联。安全性地带202c可以与浏览器应用和相关联的虚拟存储器空间相关联。安全性地带202d可以与银行应用和相关联的虚拟存储器空间相关联。
如图2中进一步示出的,每个GPU编程接口104a、104b、104c和104d可以通过单独的数据流标识符(分别为SID 206a、SID 206b、SID 206c和SID 206d)来标识。应当领会的是,流标识符可以被CPU 402用于例如将工作命令注入到合适的GPU编程接口。命令处理器114可以根据流标识符来选择工作命令,并且SMMU 116可以根据流标识符来管理存储器资源。
图3示出了用于在系统100中提供GPU访问控制的方法300的实施例。在框301处,针对将要由GPU 104执行的指令定义多个安全性地带202。可以由安全性策略管理器106、受信任地带部件108或者与系统101相关联的其它软件和/或硬件来定义安全性地带202。在一个实施例中,可以并行地管理安全性地带202中的两个或更多个安全性地带。此外,应当领会的是,在一些实施例中,可以实现安全的地带和不安全的地带两者。在框303处,每个安全性地带202被指派给单独的GPU编程接口,并且被分配给单独的存储器区域(例如,上下文库122a、122b、122c和122d)。如上文提到的,可以由VMM 110基于例如虚拟机的大小以及安全性策略管理器106或者受信任地带部件108是否需要对GPU 104的访问,来配置GPU编程接口104。在一个实施例中,系统100中的“信任的根”基于安全性策略管理器106的系统安全性策略来动态地将GPU编程接口104指派给所指定的安全性地带,这可以在安全性使用案例启动时刻发生。在框305处,存在于安全性地带202中的一个安全性地带中的应用118可以向合适的GPU编程接口104发出工作命令。CPU 402可以使用流标识符206来注入工作命令。在框307处,可以基于对应的安全性地带202向合适的GPU编程接口105提供工作命令。在框309处,命令处理器114和/或SMMU 116可以使用分配给对应的安全性地带202和GPU编程接口104的单独的存储器区域(例如,上下文库122a、122b、122c和122d)来控制对工作命令的执行。
本领域的技术人员将领会的是,可以实现替代的使用案例。将描述涉及受信任地带部件108的示例性的“受信任地带”使用案例,以进一步示出GPU访问控制功能的特定方面。受信任地带部件108可以声明对受信任的上下文库122d(图2)的所有权。可以配置与SMMU上下文库相关联的页表。所述页表可以是利用由受信任地带(即,安全性地带202d)拥有的缓冲器来填充的,并且所述缓冲器对任何其它部件(除了与另一个安全性地带202a、202b或者202c共享的缓冲器之外)而言是不可见的。安全性策略可以指定受信任地带部件108声明对GPU编程接口104d的所有权。SID 206d可以被配置为映射到受信任的上下文库122d的安全的SID。在操作中,受信任地带部件108通过向命令队列204d中注入请求来发出GPU工作命令。
当工作命令被注入到命令队列204中时,可以(例如,通过“门铃”寄存器)提示命令处理器114开始处理。命令处理器114扫描GPU编程接口104d以选择对哪个GPU编程接口进行工作。当根据GPU编程接口104d设置了SID 206d时,可以处理工作命令。SID 206d选择建立了合适的存储器保护的特定上下文库。当成功地完成了工作时或者在错误的情况下,命令处理器144使CPU 402中断,和/或受信任地带部件108接收该中断。在完成工作命令之后,受信任地带部件108可以发出进一步的工作命令。如果中断指示错误,则受信任地带部件108可以停止进一步的处理,并且根据错误处理策略来处理错误。
图4示出了被并入到示例性的便携式计算设备(PCD)400中的、上文所描述的系统100。应当领会的是,系统100中的一些部件被包括在SoC 322中,而其它的部件可以位于芯片之外。SoC 322可以包括任何可以被单独地制造并且并入到便携式计算设备400的设计中的嵌入式系统。
如所示出的,PCD 400包括SoC 322,所述SoC 322包括多核CPU 402A。多核CPU402A可以包括第零核410、第一核412和第N核414。显示控制器328和触摸屏控制器330可以耦合到GPU 104,所述GPU 104可以存在于CPU 402上或者连接到CPU 402。继而,在SoC 322外部的触摸屏显示器108可以耦合到显示控制器328和触摸屏控制器330。
图4进一步示出了视频编码器334(例如,逐行倒相(PAL)编码器、按顺序传送彩色与存储(SECAM)编码器或者国家电视系统委员会(NTSC)编码器)耦合到多核CPU 402A。进一步,视频放大器336耦合到视频编码器334和触摸屏显示器108。此外,视频端口338耦合到视频放大器336。如图4中所示,通用串行总线(USB)控制器340和其它跟踪宿109和跟踪转储110可以耦合到多核CPU 402A。此外,USB端口342耦合到USB控制器340。存储器404A和用户身份模块(SIM)卡346也可以耦合到多核CPU 402A。
进一步,如图4中所示,数字照相机348可以耦合到多核CPU 402A。在示例性的方面中,数字照相机348是电荷耦合设备(CCD)照相机或者互补金属氧化物半导体(CMOS)照相机。
如图4中进一步示出的,立体声音频编码解码器(CODEC)350可以耦合到多核CPU402A。此外,音频放大器352可以耦合到立体声音频CODEC 350。在示例性的方面中,第一立体声扬声器354和第二立体声扬声器356耦合到音频放大器352。图4示出了麦克风放大器358也可以耦合到立体声音频CODEC 350。此外,麦克风360可以耦合到麦克风放大器358。在特定的方面中,频率调制(FM)无线电调谐器362可以耦合到立体声音频CODEC 350。此外,FM天线364耦合到FM无线电调谐器362。进一步,立体声耳机366可以耦合到立体声音频CODEC350。
图4进一步示出了,射频(RF)收发机368可以耦合到多核CPU 402A。RF开关370可以耦合到RF收发机368和RF天线372。如图4中所示,键区204可以耦合到多核CPU 402A。此外,具有麦克风的单声道耳机376可以耦合到多核CPU 402A。进一步,振动器设备378可以耦合到多核CPU 402A。
图4还示出了电源380,其可以耦合到SoC 322。在特定的方面中,电源380是向PCD400的需要功率的各种部件提供功率的直流(DC)电源。进一步,在特定的方面中,电源是可再充电的DC电池或者从连接到AC功率源的交流(AC)到DC变压器得到的DC电源。
图4进一步指示PCD 400,其还可以包括网卡388,网卡388可以被用于访问数据网络(例如,局域网、个域网或者任何其它网络)。网卡388可以是蓝牙网卡、WiFi网卡、个域网(PAN)卡、个域网超低功率技术(PeANUT)网卡或者本领域中公知的任何其它网卡。进一步,可以将网卡388并入芯片中,即,网卡388可以是芯片中的完全解决方案,并且可以不是单独的网卡388。
如图4中所描绘的,触摸屏显示器108、视频端口338、USB端口342、照相机348、第一立体声扬声器354、第二立体声扬声器356、麦克风360、FM天线364、立体声耳机366、RF开关370、RF天线372、键区374、单声道耳机376、振动器378和电源380可以在片上系统322的外部。
在特定的方面中,可以将本文所描述的方法步骤中的一个或多个方法步骤作为计算机程序指令存储在存储器404A中,例如上文结合如图1中示出的系统100所描述的模块。
可以由多核CPU 402A和/或GPU 102来执行这些指令,以执行本文所描述的方法。进一步,PCD 400中的多核CPU 402A、GPU 102、存储器404A或者其组合可以充当用于执行本文所描述的方法步骤中的一个或多个方法步骤的单元。
为了本发明如所描述的那样起作用,本说明书中所描述的过程或者过程流中的特定步骤自然地先于其它步骤。然而,如果所描述的步骤的次序或者顺序不改变本发明的功能,那么本发明不限于所描述的步骤的次序。也就是说,应当认识到,一些步骤可以在其它步骤之前、之后或者与之并行地(与之大体上同时地)执行。在一些实例中,在不脱离本发明的情况下,可以省略或者不执行某些步骤。进一步,诸如“其后”、“然后”、“继而”等之类的词语不旨在限制步骤的次序。这些词语仅仅用于引导读者遍历对示例性的方法的描述。
额外地,例如,编程领域的普通技术人员能够没有困难地基于本说明书中的流程图和相关联的描述来编写计算机代码或者识别实现所公开的发明的合适的硬件和/或电路。
因此,不认为对程序代码指令的特定集合或者详细的硬件设备的公开对于充分地理解如何做出和使用本发明是必要的。在上面的描述中详细地并且结合附图来解释了所要求保护的计算机实现的过程的创造性的功能,所述附图可能示出了各种过程流。
在一个或多个示例性的方面中,所描述的功能可以用硬件、软件、固件或者其任意组合来实现。如果用软件来实现,则所述功能可以作为一个或多个指令或者代码被存储在计算机可读介质上或者被发送。计算机可读介质包括计算机存储介质和通信介质两者,所述通信介质包括促进计算机程序从一个地方到另一地方的传送的任何介质。存储介质可以是可以通过计算机来访问的任何可用的介质。作为示例而非限制,这样的计算机可读介质可以包括RAM、ROM、EEPROM、CD-ROM或者其它光盘存储器,磁盘存储器或者其它磁存储设备,或者可以用于以指令或者数据结构的形式携带或者存储期望的程序代码并且可以通过计算机来访问的任何其它介质。
此外,任何连接都被合适地称为计算机可读介质。例如,如果软件是使用同轴电缆、光缆、双绞线、数字用户线(“DSL”)或者诸如红外线、无线和微波之类的无线技术从网站、服务器或者其它远程源发送的,则同轴电缆、光缆、双绞线、DSL或者诸如红外线、无线和微波之类的无线技术包括在介质的定义中。
如本文所使用的,磁盘(disk)或者光盘(disc)包括压缩光盘(“CD”)、激光光盘、光盘、数字多功能光盘(“DVD”)、软盘和蓝光光盘,其中,磁盘通常磁性地复制数据,而光盘则利用激光光学地复制数据。以上的组合也应当被包括在计算机可读介质的范围之内。
Claims (40)
1.一种用于提供对图形处理单元的安全访问控制的方法,所述方法包括:
定义用于通过公共通信信道来控制对图形处理单元的访问的多个安全性地带;
将所述安全性地带中的每个安全性地带指派给由图形处理单元提供的多个图形处理单元编程接口中的对应的一个图形处理单元编程接口,所述图形处理单元编程接口中的每个图形处理单元编程接口用于通过所述公共通信信道来接收由与对应的安全性地带相关联的一个或多个应用发出的工作命令,所述工作命令包括将要由所述图形处理单元来执行的指令;以及
使用单独的安全存储器区域来控制对由所述多个图形处理单元编程接口所接收的所述工作命令的执行,每个安全存储器区域被分配给所述多个图形处理单元编程接口中的一个图形处理单元编程接口。
2.根据权利要求1所述的方法,其中,所述图形处理单元编程接口包括各自的命令队列,所述命令队列用于存储由对应的图形处理单元编程接口所接收的工作命令。
3.根据权利要求1所述的方法,其中,所述工作命令是由中央处理单元根据所述安全性地带注入到对应的图形处理单元编程接口中的。
4.根据权利要求3所述的方法,其中,所述工作命令被使用流标识符来注入,所述流标识符标识对应的图形处理单元编程接口。
5.根据权利要求1所述的方法,其中,单独的存储器区域是由安全存储器管理单元来分配的。
6.根据权利要求5所述的方法,其中,所述单独的存储器区域中的一个或多个单独的存储器区域包括具有硬件实施的保护的隔离的地址空间,所述硬件实施的保护是在所述安全存储器管理单元中使用相关联的上下文库来进行的。
7.根据权利要求6所述的方法,其中,所述隔离的地址空间是经由以下各项中的一项或多项来实现的:管理两个或更多个操作系统的超级监督者软件层;以及受信任的硬件与不受信任的硬件之间的分离。
8.根据权利要求1所述的方法,其中,所述安全性地带中的两个或更多个安全性地带是被并行地管理的。
9.根据权利要求1所述的方法,其中,所述安全性地带中的一个或多个安全性地带包括不安全的地带或者安全的地带。
10.根据权利要求1所述的方法,其中,发出所述工作命令的所述一个或多个应用包括以下各项中的一项或多项:内容保护地带应用、与操作系统相关联的内容保护地带内核、高级操作系统内核和受信任地带安全性监控器。
11.一种用于提供对图形处理单元的安全访问控制的系统,所述系统包括:
用于定义用于通过公共通信信道来控制对图形处理单元的访问的多个安全性地带的单元;
用于将所述安全性地带中的每个安全性地带指派给由所述图形处理单元提供的多个图形处理单元编程接口中的对应的一个图形处理单元编程接口的单元,所述图形处理单元编程接口中的每个图形处理单元编程接口用于通过所述公共通信信道来接收由与对应的安全性地带相关联的一个或多个应用发出的工作命令,所述工作命令包括将要由所述图形处理单元来执行的指令;以及
用于使用单独的安全存储器区域来控制对由所述多个图形处理单元编程接口所接收的所述工作命令的执行的单元,每个安全存储器区域被分配给所述多个图形处理单元编程接口中的一个图形处理单元编程接口。
12.根据权利要求11所述的系统,其中,所述图形处理单元编程接口包括各自的用于存储由对应的图形处理单元编程接口所接收的工作命令的单元。
13.根据权利要求11所述的系统,其中,所述工作命令是由中央处理单元根据所述安全性地带注入到对应的图形处理单元编程接口中的。
14.根据权利要求13所述的系统,其中,所述工作命令被使用流标识符来注入,所述流标识符标识对应的图形处理单元编程接口。
15.根据权利要求11所述的系统,其中,单独的存储器区域是由安全存储器管理单元来分配的。
16.根据权利要求15所述的系统,其中,所述单独的存储器区域中的一个或多个单独的存储器区域包括具有硬件实施的保护的隔离的地址空间,所述硬件实施的保护是在所述安全存储器管理单元中使用相关联的上下文库来进行的。
17.根据权利要求16所述的系统,其中,所述隔离的地址空间是经由以下各项中的一项或多项来实现的:管理两个或更多个操作系统的超级监督者软件层;以及受信任的硬件与不受信任的硬件之间的分离。
18.根据权利要求11所述的系统,其中,所述安全性地带中的两个或更多个安全性地带是被并行地管理的。
19.根据权利要求11所述的系统,其中,所述安全性地带中的一个或多个安全性地带包括不安全的地带或者安全的地带。
20.根据权利要求11所述的系统,其中,发出所述工作命令的所述一个或多个应用包括以下各项中的一项或多项:内容保护地带应用、与操作系统相关联的内容保护地带内核、高级操作系统内核和受信任地带安全性监控器。
21.一种计算机可读介质,其用于由处理器来执行,所述计算机可读介质包括被配置为进行以下操作的逻辑单元:
定义用于通过公共通信信道来控制对图形处理单元的访问的多个安全性地带;
将所述安全性地带中的每个安全性地带指派给由所述图形处理单元提供的多个图形处理单元编程接口中的对应的一个图形处理单元编程接口,所述图形处理单元编程接口中的每个图形处理单元编程接口用于通过所述公共通信信道来接收由与对应的安全性地带相关联的一个或多个应用发出的工作命令,所述工作命令包括将要由所述图形处理单元来执行的指令;以及
使用单独的安全存储器区域来控制对由所述多个图形处理单元编程接口所接收的所述工作命令的执行,每个安全存储器区域被分配给所述多个图形处理单元编程接口中的一个图形处理单元编程接口。
22.根据权利要求21所述的计算机可读介质,其中,所述图形处理单元编程接口包括各自的命令队列,所述命令队列用于存储由对应的图形处理单元编程接口所接收的工作命令。
23.根据权利要求21所述的计算机可读介质,其中,所述工作命令是由中央处理单元根据所述安全性地带注入到对应的图形处理单元编程接口中的。
24.根据权利要求23所述的计算机可读介质,其中,所述工作命令被使用流标识符来注入,所述流标识符标识对应的图形处理单元编程接口。
25.根据权利要求21所述的计算机可读介质,其中,单独的存储器区域是由安全存储器管理单元来分配的。
26.根据权利要求25所述的计算机可读介质,其中,所述单独的存储器区域中的一个或多个单独的存储器区域包括具有硬件实施的保护的隔离的地址空间,所述硬件实施的保护是在所述安全存储器管理单元中使用相关联的上下文库来进行的。
27.根据权利要求26所述的计算机可读介质,其中,所述隔离的地址空间是经由以下各项中的一项或多项来实现的:管理两个或更多个操作系统的超级监督者软件层;以及受信任的硬件与不受信任的硬件之间的分离。
28.根据权利要求21所述的计算机可读介质,其中,所述安全性地带中的两个或更多个安全性地带是被并行地管理的。
29.根据权利要求21所述的计算机可读介质,其中,所述安全性地带中的一个或多个安全性地带包括不安全的地带或者安全的地带。
30.根据权利要求21所述的计算机可读介质,其中,发出所述工作命令的所述一个或多个应用包括以下各项中的一项或多项:内容保护地带应用、与操作系统相关联的内容保护地带内核、高级操作系统内核和受信任地带安全性监控器。
31.一种用于提供对图形处理单元的安全访问控制的系统,所述系统包括:
图形处理单元,其在公共通信信道上;
多个图形处理单元编程接口,其由所述图形处理单元来提供,每个图形处理单元编程接口被动态指派给多个安全性地带中的不同的一个安全性地带,并且被配置为通过所述公共通信信道来接收由与对应的安全性地带相关联的一个或多个应用发出的工作命令,所述工作命令包括将由所述图形处理单元来执行的指令;以及
命令处理器,其与所述多个图形处理单元编程接口相通信,所述命令处理器被配置为使用单独的安全存储器区域来控制对由所述多个图形处理单元编程接口所接收的所述工作命令的执行,每个安全存储器区域被分配给所述多个图形处理单元编程接口中的一个图形处理单元编程接口。
32.根据权利要求31所述的系统,其中,所述图形处理单元编程接口包括各自的命令队列,所述命令队列用于存储由对应图形处理单元编程接口所接收的工作命令。
33.根据权利要求31所述的系统,其中,所述工作命令是由中央处理单元根据所述安全性地带注入到对应的图形处理单元编程接口中的。
34.根据权利要求33所述的系统,其中,所述工作命令被使用流标识符来注入,所述流标识符标识对应的图形处理单元编程接口。
35.根据权利要求31所述的系统,其中,单独的存储器区域是由安全存储器管理单元来分配的。
36.根据权利要求35所述的系统,其中,所述单独的存储器区域中的一个或多个单独的存储器区域包括具有硬件实施的保护的隔离的地址空间,所述硬件实施的保护是在所述安全存储器管理单元中使用相关联的上下文库来进行的。
37.根据权利要求36所述的系统,其中,所述隔离的地址空间是经由以下各项中的一项或多项来实现的:管理两个或更多个操作系统的超级监督者软件层;以及受信任的硬件与不受信任的硬件之间的分离。
38.根据权利要求31所述的系统,其中,所述安全性地带中的两个或更多个安全性地带是被并行地管理的。
39.根据权利要求31所述的系统,其中,所述安全性地带中的一个或多个安全性地带包括不安全的地带或者安全的地带。
40.根据权利要求31所述的系统,其中,发出所述工作命令的所述一个或多个应用包括以下各项中的一项或多项:内容保护地带应用、与操作系统相关联的内容保护地带内核、高级操作系统内核和受信任地带安全性监控器。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201361841881P | 2013-07-01 | 2013-07-01 | |
US61/841,881 | 2013-07-01 | ||
US14/014,032 US9507961B2 (en) | 2013-07-01 | 2013-08-29 | System and method for providing secure access control to a graphics processing unit |
US14/014,032 | 2013-08-29 | ||
PCT/US2014/044776 WO2015002851A1 (en) | 2013-07-01 | 2014-06-30 | System and method for providing secure access control to a graphics processing unit |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105393258A CN105393258A (zh) | 2016-03-09 |
CN105393258B true CN105393258B (zh) | 2018-05-25 |
Family
ID=52115146
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480037591.8A Active CN105393258B (zh) | 2013-07-01 | 2014-06-30 | 用于提供对图形处理单元的安全访问控制的系统和方法 |
Country Status (8)
Country | Link |
---|---|
US (1) | US9507961B2 (zh) |
EP (1) | EP3017396B1 (zh) |
JP (1) | JP2016524257A (zh) |
KR (1) | KR20160025554A (zh) |
CN (1) | CN105393258B (zh) |
BR (1) | BR112015032790A2 (zh) |
CA (1) | CA2912929A1 (zh) |
WO (1) | WO2015002851A1 (zh) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
ES2843202T3 (es) | 2012-09-28 | 2021-07-16 | Cepheid | Métodos para la extracción de ADN y ARN a partir de muestras de tejido fijado embebido en parafina |
FR3026207B1 (fr) * | 2014-09-22 | 2018-08-17 | Prove & Run | Terminal a affichage securise |
US11055806B2 (en) * | 2015-02-27 | 2021-07-06 | Advanced Micro Devices, Inc. | Method and apparatus for directing application requests for rendering |
US9767320B2 (en) * | 2015-08-07 | 2017-09-19 | Qualcomm Incorporated | Hardware enforced content protection for graphics processing units |
US10102391B2 (en) | 2015-08-07 | 2018-10-16 | Qualcomm Incorporated | Hardware enforced content protection for graphics processing units |
US10127627B2 (en) * | 2015-09-23 | 2018-11-13 | Intel Corporation | Mapping graphics resources to linear arrays using a paging system |
US10769312B2 (en) | 2015-10-06 | 2020-09-08 | Carnegie Mellon University | Method and apparatus for trusted display on untrusted computing platforms to secure applications |
US10471543B2 (en) * | 2015-12-15 | 2019-11-12 | Lawrence Livermore National Security, Llc | Laser-assisted additive manufacturing |
US10089272B2 (en) * | 2016-02-22 | 2018-10-02 | Dell Products, Lp | Data-category switch module in the control plane for use with internet of things devices |
US10628611B2 (en) | 2016-11-04 | 2020-04-21 | Qualcomm Incorporated | Exclusive execution environment within a system-on-a-chip computing system |
US10848483B2 (en) * | 2016-12-08 | 2020-11-24 | Ricoh Company, Ltd. | Shared terminal, communication system, and display control method, and recording medium |
US10387679B2 (en) | 2017-01-06 | 2019-08-20 | Capitalogix Ip Owner, Llc | Secure intelligent networked architecture with dynamic feedback |
EP3355188B1 (en) | 2017-01-31 | 2021-08-25 | OpenSynergy GmbH | Instrument display on a car dashboard by checking frames of a gui by a realtime os |
WO2019012625A1 (ja) * | 2017-07-12 | 2019-01-17 | 日本電気株式会社 | 権限判定システム、セキュアデバイス、判定装置、権限管理方法及び権限判定プログラム |
US11295008B2 (en) * | 2019-02-13 | 2022-04-05 | Nec Corporation | Graphics processing unit accelerated trusted execution environment |
JP7416480B2 (ja) * | 2019-08-16 | 2024-01-17 | フィドゥシアエッジ テクノロジーズ カンパニー リミテッド | オープンインターコネクトを介してヘテロジニアスプロセッサ上でリモート認証及び情報分離を備えた信頼できるコンピューティングを実行するためのシステム及び方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1991906A (zh) * | 2005-10-18 | 2007-07-04 | 威盛电子股份有限公司 | 在多重图形处理单元图形子系统中进行多重缓冲 |
CN101427282A (zh) * | 2006-04-26 | 2009-05-06 | 高通股份有限公司 | 具有可配置高速缓存器的图形系统 |
CN102754077A (zh) * | 2009-12-14 | 2012-10-24 | 思杰系统有限公司 | 可从外部媒体装置引导的安全虚拟化环境 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7007025B1 (en) | 2001-06-08 | 2006-02-28 | Xsides Corporation | Method and system for maintaining secure data input and output |
US7203310B2 (en) * | 2001-12-04 | 2007-04-10 | Microsoft Corporation | Methods and systems for cryptographically protecting secure content |
US7673304B2 (en) | 2003-02-18 | 2010-03-02 | Microsoft Corporation | Multithreaded kernel for graphics processing unit |
US7421694B2 (en) | 2003-02-18 | 2008-09-02 | Microsoft Corporation | Systems and methods for enhancing performance of a coprocessor |
US7444523B2 (en) | 2004-08-27 | 2008-10-28 | Microsoft Corporation | System and method for using address bits to signal security attributes of data in the address space |
US8954751B2 (en) * | 2004-10-08 | 2015-02-10 | International Business Machines Corporation | Secure memory control parameters in table look aside buffer data fields and support memory array |
JP3965408B2 (ja) * | 2004-12-28 | 2007-08-29 | イーストラテジー株式会社 | デジタルコンテンツデータ提供システム |
US20100031342A1 (en) * | 2007-04-12 | 2010-02-04 | Honeywell International, Inc | Method and system for providing secure video data transmission and processing |
US8269780B2 (en) * | 2007-06-07 | 2012-09-18 | Apple Inc. | Batching graphics operations with time stamp tracking |
US8393008B2 (en) * | 2008-05-21 | 2013-03-05 | Microsoft Corporation | Hardware-based output protection of multiple video streams |
US9405931B2 (en) * | 2008-11-14 | 2016-08-02 | Dell Products L.P. | Protected information stream allocation using a virtualized platform |
JP5699755B2 (ja) * | 2011-03-31 | 2015-04-15 | 富士通株式会社 | 割当方法、割当装置、および割当プログラム |
US8562441B1 (en) | 2011-05-03 | 2013-10-22 | Zynga Inc. | Secure, parallel, and independent script execution |
US8943330B2 (en) * | 2011-05-10 | 2015-01-27 | Qualcomm Incorporated | Apparatus and method for hardware-based secure data processing using buffer memory address range rules |
US9727385B2 (en) * | 2011-07-18 | 2017-08-08 | Apple Inc. | Graphical processing unit (GPU) implementing a plurality of virtual GPUs |
GB2501470B (en) * | 2012-04-17 | 2020-09-16 | Advanced Risc Mach Ltd | Management of data processing security in a secondary processor |
GB2501274B (en) * | 2012-04-17 | 2020-05-13 | Advanced Risc Mach Ltd | Management of data processing security in a secondary processor |
US8931108B2 (en) * | 2013-02-18 | 2015-01-06 | Qualcomm Incorporated | Hardware enforced content protection for graphics processing units |
-
2013
- 2013-08-29 US US14/014,032 patent/US9507961B2/en active Active
-
2014
- 2014-06-30 JP JP2016524277A patent/JP2016524257A/ja not_active Ceased
- 2014-06-30 CA CA2912929A patent/CA2912929A1/en not_active Abandoned
- 2014-06-30 KR KR1020167000555A patent/KR20160025554A/ko not_active Application Discontinuation
- 2014-06-30 CN CN201480037591.8A patent/CN105393258B/zh active Active
- 2014-06-30 WO PCT/US2014/044776 patent/WO2015002851A1/en active Application Filing
- 2014-06-30 BR BR112015032790A patent/BR112015032790A2/pt not_active Application Discontinuation
- 2014-06-30 EP EP14745272.6A patent/EP3017396B1/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1991906A (zh) * | 2005-10-18 | 2007-07-04 | 威盛电子股份有限公司 | 在多重图形处理单元图形子系统中进行多重缓冲 |
CN101427282A (zh) * | 2006-04-26 | 2009-05-06 | 高通股份有限公司 | 具有可配置高速缓存器的图形系统 |
CN102754077A (zh) * | 2009-12-14 | 2012-10-24 | 思杰系统有限公司 | 可从外部媒体装置引导的安全虚拟化环境 |
Also Published As
Publication number | Publication date |
---|---|
CN105393258A (zh) | 2016-03-09 |
WO2015002851A1 (en) | 2015-01-08 |
EP3017396A1 (en) | 2016-05-11 |
JP2016524257A (ja) | 2016-08-12 |
US9507961B2 (en) | 2016-11-29 |
EP3017396B1 (en) | 2017-10-11 |
BR112015032790A2 (pt) | 2017-07-25 |
KR20160025554A (ko) | 2016-03-08 |
US20150002523A1 (en) | 2015-01-01 |
CA2912929A1 (en) | 2015-01-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105393258B (zh) | 用于提供对图形处理单元的安全访问控制的系统和方法 | |
US20210165883A1 (en) | Artificial intelligence ai processing method and ai processing apparatus | |
EP2857967B1 (en) | User interface management method and system | |
KR102187255B1 (ko) | 전자 장치의 디스플레이 방법 및 그 전자 장치 | |
CN104364758B (zh) | 用于有限能力操作系统的api重定向 | |
US8195860B2 (en) | Computing device with handheld and extended computing devices | |
CN104050416A (zh) | 显示表面的安全绘制 | |
KR20160008885A (ko) | 전자 장치 및 전자 장치의 메모리 관리 방법 | |
EP3033853B1 (en) | Communications techniques for a secure near field communication architecture | |
US20090198989A1 (en) | Bios for a computing device with handheld and extended computing units | |
CN106797388A (zh) | 跨系统多媒体数据编解码方法、装置、电子设备和计算机程序产品 | |
US9380463B2 (en) | Method for displaying lock screen and electronic device thereof | |
US20160300081A1 (en) | Activating an electronic privacy screen during display of sensitve information | |
CN103988211B (zh) | 用于增加计算机安全的方法和系统 | |
US20150063778A1 (en) | Method for processing an image and electronic device thereof | |
US9881151B2 (en) | Providing selective system privileges on an information handling device | |
US20160283701A1 (en) | Secure Connected Digital Media Platform | |
CN104115413A (zh) | 用于在支持安全执行环境的便携式终端中输出内容的方法和设备 | |
US20160019602A1 (en) | Advertisement method of electronic device and electronic device thereof | |
US8175646B2 (en) | Networking of multiple mode handheld computing unit | |
US10275924B2 (en) | Techniques for managing three-dimensional graphics display modes | |
KR20160077851A (ko) | 전자 장치에서 메모리에 대한 보안을 제공하기 위한 장치 및 방법 | |
US20140156781A1 (en) | Appending playback from multiple source devices to the same media stream | |
US11526619B2 (en) | System for securing and allowing access to electronic data in a data storage container | |
US12069049B2 (en) | Apparatus and methods for restricted binding of ports |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |