CN105393258A - 用于提供对图形处理单元的安全访问控制的系统和方法 - Google Patents

用于提供对图形处理单元的安全访问控制的系统和方法 Download PDF

Info

Publication number
CN105393258A
CN105393258A CN201480037591.8A CN201480037591A CN105393258A CN 105393258 A CN105393258 A CN 105393258A CN 201480037591 A CN201480037591 A CN 201480037591A CN 105393258 A CN105393258 A CN 105393258A
Authority
CN
China
Prior art keywords
gpu
area
dll
dynamic link
link library
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.)
Granted
Application number
CN201480037591.8A
Other languages
English (en)
Other versions
CN105393258B (zh
Inventor
T·曾
A·托兹尼
W·托尔泽乌斯基
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN105393258A publication Critical patent/CN105393258A/zh
Application granted granted Critical
Publication of CN105393258B publication Critical patent/CN105393258B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting 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/74Protecting 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing 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/2113Multi-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、并且名称为“SystemandMethodforProvidingSecureAccessControltoaGraphicsProcessingUnit”的美国临时专利申请的优先权,以引用方式将该临时申请的全部内容并入本文。
背景技术
诸如移动电话之类的便携式计算设备(“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以及一个或多个GPU102,所述GPU102用于执行与一个或多个应用118和/或一个或多个操作系统120相关联的图形和/或计算指令。CPU402和GPU102可以通过硬件总线、连接或者其它接口连接起来。系统100为GPU访问控制提供多个安全性和/或内容保护地带(“安全性地带”)。
GPU硬件和/或软件向CPU402提供多个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可以包括用于实施特定的安全的和隔离的地址空间的硬件资源。
工作命令包括将要由GPU102来执行的图形指令。应当领会的是,应用118可以包括从GPU102请求资源的任何合适的应用。操作系统120可以包括一个或多个操作系统,例如,高级操作系统(HLOS)。在一个实施例中,GPU102可以从被特别配置的内容保护应用(例如,内容保护应用117或者与操作系统120相关联的内容保护内核119)接收工作命令。
本领域的技术人员将领会,GPU编程接口104包括控制资源。在一个实施例中,控制资源可以包括寄存器资源,以用于接受来自对应的安全性地带中的应用的工作命令,以及一个或多个中断资源,以指示工作命令执行的完成或者失败状态。可以基于例如虚拟机的大小以及安全性策略管理器106或者受信任地带部件108(即,系统100中的“信任的根”)是否需要对GPU402的访问,来由虚拟机管理器(VMM)110配置GPU编程接口104。系统100中的“信任的根”基于安全性策略管理器106的系统安全性策略来动态地将GPU编程接口104指派给所指定的安全性地带,这可以在安全性使用案例的启动时刻发生。
如上文所提到的,每个GPU编程接口104可以是取决于特定使用场景被映射到对应的上下文库122的存储器,在该情况下,它们可以包括存储器映射的输入/输出(MIMO)寄存器。GPU编程接口104可以直接地可被指派给一个或多个虚拟机或者VMM110。应当进一步认识到,可以由硬件实施的访问控制使用系统存储器管理单元(SMMU)116来保护每个GPU编程接口104。以这种方式,在特定的使用案例已经启动之后,每个安全性地带对与GPU编程接口104相关联的寄存器和中断资源可以具有完全的控制。
如图1中进一步示出的,GPU102可以包括与多个GPU编程接口104相通信的命令处理器114。命令处理器114可以被配置为从与GPU编程接口104相关联的内容队列204(图2)中选择工作命令。就这一点而言,命令处理器114可以基于例如GPU调度策略来确定处理哪些工作命令,并且然后使用被分配给安全性地带的合适的上下文库来控制对所述工作命令的执行。
应当认识到,在一个实施例中,可以由并发地运行在CPU402上的应用118并行地管理多个安全性地带。每个应用118可以直接地管理相关联的命令队列。安全性地带中的一个或多个安全性地带还可以是安全的和/或不安全的。应用118(以及其相关联的存储器)是安全的和/或不安全的所基于的安全性策略可以由控制GPU102的处理器(例如,CPU408)来确定。应当进一步领会到,由CPU402来执行和/或管理的分段可以通过包括例如以下示例性方式的各种方式来实现:(1)与超级监督者(hypervisor)层(例如,管理多个访客操作系统120的软件层)的隔离;和/或(2)定义了硬件安全域(例如,ARM架构中所使用的“信任地带”安全性扩展)的硬件过程构造,其可以经由对指令的额外的硬件标记来控制受信任的和不受信任的硬件之间的分离,以跟踪存储器访问和GPU命令,以及隔离请求的来源。超级监督者层可以包括硬件上的软件抽象,所述硬件上的软件抽象可以被限制为控制单元的存储器访问隔离。
系统101可以支持任何可取的、与GPU访问控制相关的安全性使用案例。例如,系统101可以支持诸如(举几个例子来说)数字版权管理(DRM)和控制对用于包括银行、病历、指纹等的应用的保密数据的访问之类的使用案例。在一个实施例中,系统101可以提供与各自的安全性地带相关联的四个异常级别,其中每个级别具有不同的或者经排序的安全性特权。第一异常级别(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编程接口104c,所述GPU编程接口104c与受信任地带部件108相关联,并且具有内容队列204d。受信任地带部件108拥有受信任的上下文库122d,所述受信任的上下文库122d包括仅对受信任地带部件108可见的隔离的地址空间。
应当领会的是,安全性地带202可以支持具有合适的应用118的任何可取的使用案例。例如,在一个实施例中,安全性地带202a可以与游戏应用和相关联的虚拟存储器空间相关联。安全性地带202b可以与视频应用和相关联的优质的视频虚拟存储器空间相关联。安全性地带202c可以与浏览器应用和相关联的虚拟存储器空间相关联。安全性地带202d可以与银行应用和相关联的虚拟存储器空间相关联。
如图2中进一步示出的,每个GPU编程接口104a、104b、104c和104d可以通过单独的数据流标识符(分别为SID206a、SID206b、SID206c和SID206d)来标识。应当领会的是,流标识符可以被CPU402用于例如将工作命令注入到合适的GPU编程接口。命令处理器114可以根据流标识符来选择工作命令,并且SMMU116可以根据流标识符来管理存储器资源。
图3示出了用于在系统100中提供GPU访问控制的方法300的实施例。在框301处,针对将要由GPU104执行的指令定义多个安全性地带202。可以由安全性策略管理器106、受信任地带部件108或者与系统101相关联的其它软件和/或硬件来定义安全性地带202。在一个实施例中,可以并行地管理安全性地带202中的两个或更多个安全性地带。此外,应当领会的是,在一些实施例中,可以实现安全的地带和不安全的地带两者。在框303处,每个安全性地带202被指派给单独的GPU编程接口,并且被分配给单独的存储器区域(例如,上下文库122a、122b、122c和122d)。如上文提到的,可以由VMM110基于例如虚拟机的大小以及安全性策略管理器106或者受信任地带部件108是否需要对GPU104的访问,来配置GPU编程接口104。在一个实施例中,系统100中的“信任的根”基于安全性策略管理器106的系统安全性策略来动态地将GPU编程接口104指派给所指定的安全性地带,这可以在安全性使用案例启动时刻发生。在框305处,存在于安全性地带202中的一个安全性地带中的应用118可以向合适的GPU编程接口104发出工作命令。CPU402可以使用流标识符206来注入工作命令。在框307处,可以基于对应的安全性地带202向合适的GPU编程接口105提供工作命令。在框309处,命令处理器114和/或SMMU116可以使用分配给对应的安全性地带202和GPU编程接口104的单独的存储器区域(例如,上下文库122a、122b、122c和122d)来控制对工作命令的执行。
本领域的技术人员将领会的是,可以实现替代的使用案例。将描述涉及受信任地带部件108的示例性的“受信任地带”使用案例,以进一步示出GPU访问控制功能的特定方面。受信任地带部件108可以声明对受信任的上下文库122d(图2)的所有权。可以配置与SMMU上下文库相关联的页表。所述页表可以是利用由受信任地带(即,安全性地带202d)拥有的缓冲器来填充的,并且所述缓冲器对任何其它部件(除了与另一个安全性地带202a、202b或者202c共享的缓冲器之外)而言是不可见的。安全性策略可以指定受信任地带部件108声明对GPU编程接口104d的所有权。SID206d可以被配置为映射到受信任的上下文库122d的安全的SID。在操作中,受信任地带部件108通过向命令队列204d中注入请求来发出GPU工作命令。
当工作命令被注入到命令队列204中时,可以(例如,通过“门铃”寄存器)提示命令处理器114开始处理。命令处理器114扫描GPU编程接口104d以选择对哪个GPU编程接口进行工作。当根据GPU编程接口104d设置了SID206d时,可以处理工作命令。SID206d选择建立了合适的存储器保护的特定上下文库。当成功地完成了工作时或者在错误的情况下,命令处理器144使CPU402中断,和/或受信任地带部件108接收该中断。在完成工作命令之后,受信任地带部件108可以发出进一步的工作命令。如果中断指示错误,则受信任地带部件108可以停止进一步的处理,并且根据错误处理策略来处理错误。
图4示出了被并入到示例性的便携式计算设备(PCD)400中的、上文所描述的系统100。应当领会的是,系统100中的一些部件被包括在SoC322中,而其它的部件可以位于芯片之外。SoC322可以包括任何可以被单独地制造并且并入到便携式计算设备400的设计中的嵌入式系统。
如所示出的,PCD400包括SoC322,所述SoC322包括多核CPU402A。多核CPU402A可以包括第零核410、第一核412和第N核414。显示控制器328和触摸屏控制器330可以耦合到GPU104,所述GPU104可以存在于CPU402上或者连接到CPU402。继而,在SoC322外部的触摸屏显示器108可以耦合到显示控制器328和触摸屏控制器330。
图4进一步示出了视频编码器334(例如,逐行倒相(PAL)编码器、按顺序传送彩色与存储(SECAM)编码器或者国家电视系统委员会(NTSC)编码器)耦合到多核CPU402A。进一步,视频放大器336耦合到视频编码器334和触摸屏显示器108。此外,视频端口338耦合到视频放大器336。如图4中所示,通用串行总线(USB)控制器340和其它跟踪宿109和跟踪转储110可以耦合到多核CPU402A。此外,USB端口342耦合到USB控制器340。存储器404A和用户身份模块(SIM)卡346也可以耦合到多核CPU402A。
进一步,如图4中所示,数字照相机348可以耦合到多核CPU402A。在示例性的方面中,数字照相机348是电荷耦合设备(CCD)照相机或者互补金属氧化物半导体(CMOS)照相机。
如图4中进一步示出的,立体声音频编码解码器(CODEC)350可以耦合到多核CPU402A。此外,音频放大器352可以耦合到立体声音频CODEC350。在示例性的方面中,第一立体声扬声器354和第二立体声扬声器356耦合到音频放大器352。图4示出了麦克风放大器358也可以耦合到立体声音频CODEC350。此外,麦克风360可以耦合到麦克风放大器358。在特定的方面中,频率调制(FM)无线电调谐器362可以耦合到立体声音频CODEC350。此外,FM天线364耦合到FM无线电调谐器362。进一步,立体声耳机366可以耦合到立体声音频CODEC350。
图4进一步示出了,射频(RF)收发机368可以耦合到多核CPU402A。RF开关370可以耦合到RF收发机368和RF天线372。如图4中所示,键区204可以耦合到多核CPU402A。此外,具有麦克风的单声道耳机376可以耦合到多核CPU402A。进一步,振动器设备378可以耦合到多核CPU402A。
图4还示出了电源380,其可以耦合到SoC322。在特定的方面中,电源380是向PCD400的需要功率的各种部件提供功率的直流(DC)电源。进一步,在特定的方面中,电源是可再充电的DC电池或者从连接到AC功率源的交流(AC)到DC变压器得到的DC电源。
图4进一步指示PCD400,其还可以包括网卡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所描述的模块。
可以由多核CPU402A和/或GPU102来执行这些指令,以执行本文所描述的方法。进一步,PCD400中的多核CPU402A、GPU102、存储器404A或者其组合可以充当用于执行本文所描述的方法步骤中的一个或多个方法步骤的单元。
为了本发明如所描述的那样起作用,本说明书中所描述的过程或者过程流中的特定步骤自然地先于其它步骤。然而,如果所描述的步骤的次序或者顺序不改变本发明的功能,那么本发明不限于所描述的步骤的次序。也就是说,应当认识到,在不脱离本发明的范围和精神的情况下,一些步骤可以在其它步骤之前、之后或者与之并行地(与之大体上同时地)执行。在一些实例中,在不脱离本发明的情况下,可以省略或者不执行某些步骤。进一步,诸如“其后”、“然后”、“继而”等之类的词语不旨在限制步骤的次序。这些词语仅仅用于引导读者遍历对示例性的方法的描述。
额外地,例如,编程领域的普通技术人员能够没有困难地基于本说明书中的流程图和相关联的描述来编写计算机代码或者识别实现所公开的发明的合适的硬件和/或电路。
因此,不认为对程序代码指令的特定集合或者详细的硬件设备的公开对于充分地理解如何做出和使用本发明是必要的。在上面的描述中详细地并且结合附图来解释了所要求保护的计算机实现的过程的创造性的功能,所述附图可能示出了各种过程流。
在一个或多个示例性的方面中,所描述的功能可以用硬件、软件、固件或者其任意组合来实现。如果用软件来实现,则所述功能可以作为一个或多个指令或者代码被存储在计算机可读介质上或者被发送。计算机可读介质包括计算机存储介质和通信介质两者,所述通信介质包括促进计算机程序从一个地方到另一地方的传送的任何介质。存储介质可以是可以通过计算机来访问的任何可用的介质。作为示例而非限制,这样的计算机可读介质可以包括RAM、ROM、EEPROM、CD-ROM或者其它光盘存储器,磁盘存储器或者其它磁存储设备,或者可以用于以指令或者数据结构的形式携带或者存储期望的程序代码并且可以通过计算机来访问的任何其它介质。
此外,任何连接都被合适地称为计算机可读介质。例如,如果软件是使用同轴电缆、光缆、双绞线、数字用户线(“DSL”)或者诸如红外线、无线和微波之类的无线技术从网站、服务器或者其它远程源发送的,则同轴电缆、光缆、双绞线、DSL或者诸如红外线、无线和微波之类的无线技术包括在介质的定义中。
如本文所使用的,磁盘(disk)或者光盘(disc)包括压缩光盘(“CD”)、激光光盘、光盘、数字多功能光盘(“DVD”)、软盘和蓝光光盘,其中,磁盘通常磁性地复制数据,而光盘则利用激光光学地复制数据。以上的组合也应当被包括在计算机可读介质的范围之内。

Claims (40)

1.一种用于提供对图形处理单元的安全访问控制的方法,所述方法包括:
定义用于控制对图形处理单元的访问的多个安全性地带;
将所述安全性地带中的每个安全性地带指派给由GPU提供的多个GPU编程接口中的对应的一个GPU编程接口,所述GPU编程接口中的每个GPU编程接口用于接收由与对应的安全性地带相关联的一个或多个应用发出的工作命令,所述工作命令包括将要由所述GPU来执行的指令;以及
使用单独的安全存储器区域来控制对由所述多个GPU编程接口所接收的所述工作命令的执行,每个安全存储器区域被分配给所述多个安全性地带中的一个安全性地带。
2.根据权利要求1所述的方法,其中,所述GPU编程接口包括各自的命令队列,所述命令队列用于存储由对应的GPU编程接口所接收的工作命令。
3.根据权利要求1所述的方法,其中,所述工作命令是由中央处理单元(CPU)根据所述安全性地带注入到对应的GPU编程接口中的。
4.根据权利要求3所述的方法,其中,所述工作命令被使用流标识符来注入,所述流标识符标识对应的GPU编程接口。
5.根据权利要求1所述的方法,其中,单独的存储器区域是由安全存储器管理单元来分配的。
6.根据权利要求5所述的方法,其中,所述单独的存储器区域中的一个或多个单独的存储器区域包括具有硬件实施的保护的隔离的地址空间,所述硬件实施的保护是在所述安全存储器管理单元中使用相关联的上下文库来进行的。
7.根据权利要求6所述的方法,其中,所述隔离的地址空间是经由以下各项中的一项或多项来实现的:管理两个或更多个操作系统的超级监督者软件层;以及受信任的硬件与不受信任的硬件之间的分离。
8.根据权利要求1所述的方法,其中,所述安全性地带中的两个或更多个安全性地带是被并行地管理的。
9.根据权利要求1所述的方法,其中,所述安全性地带中的一个或多个安全性地带包括不安全的地带或者安全的地带。
10.根据权利要求1所述的方法,其中,发出所述工作命令的所述一个或多个应用包括以下各项中的一项或多项:内容保护地带应用、与操作系统相关联的内容保护地带内核、高级操作系统内核和受信任地带安全性监控器。
11.一种用于提供对图形处理单元的安全访问控制的系统,所述方法包括:
用于定义用于控制对图形处理单元(GPU)的访问的多个安全性地带的单元;
用于将所述安全性地带中的每个安全性地带指派给由所述GPU提供的多个GPU编程接口中的对应的一个GPU编程接口的单元,所述GPU编程接口中的每个GPU编程接口用于接收由与对应的安全性地带相关联的一个或多个应用发出的工作命令,所述工作命令包括将要由所述GPU来执行的指令;以及
用于使用单独的安全存储器区域来控制对由所述多个GPU编程接口所接收的所述工作命令的执行的单元,每个安全存储器区域被分配给所述多个安全性地带中的一个安全性地带。
12.根据权利要求11所述的系统,其中,所述GPU编程接口包括各自的用于存储由对应的GPU编程接口所接收的工作命令的单元。
13.根据权利要求11所述的系统,其中,所述工作命令是由中央处理单元(CPU)根据所述安全性地带注入到对应的GPU编程接口中的。
14.根据权利要求13所述的系统,其中,所述工作命令被使用流标识符来注入,所述流标识符标识对应的GPU编程接口。
15.根据权利要求11所述的系统,其中,单独的存储器区域是由安全存储器管理单元来分配的。
16.根据权利要求15所述的系统,其中,所述单独的存储器区域中的一个或多个单独的存储器区域包括具有硬件实施的保护的隔离的地址空间,所述硬件实施的保护是在所述安全存储器管理单元中使用相关联的上下文库来进行的。
17.根据权利要求16所述的系统,其中,所述隔离的地址空间是经由以下各项中的一项或多项来实现的:管理两个或更多个操作系统的超级监督者软件层;以及受信任的硬件与不受信任的硬件之间的分离。
18.根据权利要求11所述的系统,其中,所述安全性地带中的两个或更多个安全性地带是被并行地管理的。
19.根据权利要求11所述的系统,其中,所述安全性地带中的一个或多个安全性地带包括不安全的地带或者安全的地带。
20.根据权利要求11所述的系统,其中,发出所述工作命令的所述一个或多个应用包括以下各项中的一项或多项:内容保护地带应用、与操作系统相关联的内容保护地带内核、高级操作系统内核和受信任地带安全性监控器。
21.一种用于提供对图形处理单元的安全访问控制的计算机程序,所述计算机程序被包含在计算机可读介质中用于由处理器来执行,所述计算机程序包括被配置为进行以下操作的逻辑单元:
定义用于控制对图形处理单元(GPU)的访问的多个安全性地带;
将所述安全性地带中的每个安全性地带指派给由所述GPU提供的多个GPU编程接口中的对应的一个GPU编程接口,所述GPU编程接口中的每个GPU编程接口用于接收由与对应的安全性地带相关联的一个或多个应用发出的工作命令,所述工作命令包括将要由所述GPU来执行的指令;以及
使用单独的安全存储器区域来控制对由所述多个GPU编程接口所接收的所述工作命令的执行,每个安全存储器区域被分配给所述多个安全性地带中的一个安全性地带。
22.根据权利要求21所述的计算机程序,其中,所述GPU编程接口包括各自的命令队列,所述命令队列用于存储由对应的GPU编程接口所接收的工作命令。
23.根据权利要求21所述的计算机程序,其中,所述工作命令是由中央处理单元(CPU)根据所述安全性地带注入到对应的GPU编程接口中的。
24.根据权利要求23所述的计算机程序,其中,所述工作命令被使用流标识符来注入,所述流标识符标识对应的GPU编程接口。
25.根据权利要求21所述的计算机程序,其中,单独的存储器区域是由安全存储器管理单元来分配的。
26.根据权利要求25所述的计算机程序,其中,所述单独的存储器区域中的一个或多个单独的存储器区域包括具有硬件实施的保护的隔离的地址空间,所述硬件实施的保护是在所述安全存储器管理单元中使用相关联的上下文库来进行的。
27.根据权利要求26所述的计算机程序,其中,所述隔离的地址空间是经由以下各项中的一项或多项来实现的:管理两个或更多个操作系统的超级监督者软件层;以及受信任的硬件与不受信任的硬件之间的分离。
28.根据权利要求21所述的计算机程序,其中,所述安全性地带中的两个或更多个安全性地带是被并行地管理的。
29.根据权利要求21所述的计算机程序,其中,所述安全性地带中的一个或多个安全性地带包括不安全的地带或者安全的地带。
30.根据权利要求21所述的计算机程序,其中,发出所述工作命令的所述一个或多个应用包括以下各项中的一项或多项:内容保护地带应用、与操作系统相关联的内容保护地带内核、高级操作系统内核和受信任地带安全性监控器。
31.一种用于提供对图形处理单元的安全访问控制的系统,所述系统包括:
图形处理单元(GPU);
多个GPU编程接口,其由所述GPU来提供,每个GPU编程接口被动态指派给多个安全性地带中的不同的一个安全性地带,并且被配置为接收由与对应的安全性地带相关联的一个或多个应用发出的工作命令,所述工作命令包括将由所述GPU来执行的指令;以及
命令处理器,其与所述多个GPU编程接口相通信,所述命令处理器被配置为使用单独的安全存储器区域来控制对由所述多个GPU编程接口所接收的所述工作命令的执行,每个安全存储器区域被分配给所述多个安全性地带中的一个安全性地带。
32.根据权利要求31所述的系统,其中,所述GPU编程接口包括各自的命令队列,所述命令队列用于存储由对应GPU编程接口所接收的工作命令。
33.根据权利要求31所述的系统,其中,所述工作命令是由中央处理单元(CPU)根据所述安全性地带注入到对应的GPU编程接口中的。
34.根据权利要求33所述的系统,其中,所述工作命令被使用流标识符来注入,所述流标识符标识对应的GPU编程接口。
35.根据权利要求31所述的系统,其中,单独的存储器区域是由安全存储器管理单元来分配的。
36.根据权利要求35所述的系统,其中,所述单独的存储器区域中的一个或多个单独的存储器区域包括具有硬件实施的保护的隔离的地址空间,所述硬件实施的保护是在所述安全存储器管理单元中使用相关联的上下文库来进行的。
37.根据权利要求36所述的系统,其中,所述隔离的地址空间是经由以下各项中的一项或多项来实现的:管理两个或更多个操作系统的超级监督者软件层;以及受信任的硬件与不受信任的硬件之间的分离。
38.根据权利要求31所述的系统,其中,所述安全性地带中的两个或更多个安全性地带是被并行地管理的。
39.根据权利要求31所述的系统,其中,所述安全性地带中的一个或多个安全性地带包括不安全的地带或者安全的地带。
40.根据权利要求31所述的系统,其中,发出所述工作命令的所述一个或多个应用包括以下各项中的一项或多项:内容保护地带应用、与操作系统相关联的内容保护地带内核、高级操作系统内核和受信任地带安全性监控器。
CN201480037591.8A 2013-07-01 2014-06-30 用于提供对图形处理单元的安全访问控制的系统和方法 Active CN105393258B (zh)

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 true CN105393258A (zh) 2016-03-09
CN105393258B 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)

* Cited by examiner, † Cited by third party
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 (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060095793A1 (en) * 2004-10-08 2006-05-04 International Business Machines Corporation Secure memory control parameters in table look aside buffer data fields and support memory array
CN1991906A (zh) * 2005-10-18 2007-07-04 威盛电子股份有限公司 在多重图形处理单元图形子系统中进行多重缓冲
CN101427282A (zh) * 2006-04-26 2009-05-06 高通股份有限公司 具有可配置高速缓存器的图形系统
US20100031342A1 (en) * 2007-04-12 2010-02-04 Honeywell International, Inc Method and system for providing secure video data transmission and processing
CN102754077A (zh) * 2009-12-14 2012-10-24 思杰系统有限公司 可从外部媒体装置引导的安全虚拟化环境

Family Cites Families (16)

* Cited by examiner, † Cited by third party
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
JP3965408B2 (ja) * 2004-12-28 2007-08-29 イーストラテジー株式会社 デジタルコンテンツデータ提供システム
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

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060095793A1 (en) * 2004-10-08 2006-05-04 International Business Machines Corporation Secure memory control parameters in table look aside buffer data fields and support memory array
CN1991906A (zh) * 2005-10-18 2007-07-04 威盛电子股份有限公司 在多重图形处理单元图形子系统中进行多重缓冲
CN101427282A (zh) * 2006-04-26 2009-05-06 高通股份有限公司 具有可配置高速缓存器的图形系统
US20100031342A1 (en) * 2007-04-12 2010-02-04 Honeywell International, Inc Method and system for providing secure video data transmission and processing
CN102754077A (zh) * 2009-12-14 2012-10-24 思杰系统有限公司 可从外部媒体装置引导的安全虚拟化环境

Also Published As

Publication number Publication date
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
CN105393258B (zh) 2018-05-25
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
CN105393258A (zh) 用于提供对图形处理单元的安全访问控制的系统和方法
CN109086100B (zh) 一种高安全可信移动终端安全体系架构及安全服务方法
US11954204B2 (en) Artificial intelligence AI processing method and AI processing apparatus
CN103797437B (zh) 用于管理异构多核处理器中的热能产生的系统和方法
CN102232221B (zh) 用于检查安全代码的运行时完整性的方法和系统
EP3678021B1 (en) User interface display method and terminal device
CN106797388A (zh) 跨系统多媒体数据编解码方法、装置、电子设备和计算机程序产品
KR20160008885A (ko) 전자 장치 및 전자 장치의 메모리 관리 방법
US20180365425A1 (en) Systems and methods for securely booting a system on chip via a virtual collated internal memory pool
US10395028B2 (en) Virtualization based intra-block workload isolation
CN104598841A (zh) 一种面向终端安全的双系统引导方法和装置
US9881151B2 (en) Providing selective system privileges on an information handling device
CN103473037A (zh) 信息处理装置、信息处理方法和程序
CN103473132A (zh) 一种使用双存储芯片实现智能设备的双系统启动的方法
US8307361B2 (en) Platform dependent replacement of digital content asset components
CN104115413A (zh) 用于在支持安全执行环境的便携式终端中输出内容的方法和设备
US20160019602A1 (en) Advertisement method of electronic device and electronic device thereof
US20080320490A1 (en) Method, apparatus and computer program product for providing sub-process resource management
US10275924B2 (en) Techniques for managing three-dimensional graphics display modes
US20210034364A1 (en) Processing unit, processor, processing system, electronic device and processing method
CN104427097A (zh) 终端设备以及切换方法
CN106503577A (zh) 一种系统权限管理方法、装置及相应的设备
CN113032290A (zh) 闪存配置方法、装置、电子设备和存储介质
CN105809011B (zh) 一种可以动态加载应用的二代USB Key兼容Java Card平台的方法
CN110737902B (zh) 嵌入式终端及其可信安全模块的固件设计方法

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