CN104981811A - 用于图形处理单元的硬件强制内容保护 - Google Patents
用于图形处理单元的硬件强制内容保护 Download PDFInfo
- Publication number
- CN104981811A CN104981811A CN201380072797.XA CN201380072797A CN104981811A CN 104981811 A CN104981811 A CN 104981811A CN 201380072797 A CN201380072797 A CN 201380072797A CN 104981811 A CN104981811 A CN 104981811A
- Authority
- CN
- China
- Prior art keywords
- gpu
- dangerous
- memory
- safe
- unit
- 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
Links
- 238000012545 processing Methods 0.000 title claims abstract description 44
- 230000015654 memory Effects 0.000 claims abstract description 255
- 238000000034 method Methods 0.000 claims abstract description 63
- 230000008569 process Effects 0.000 claims description 41
- 238000003672 processing method Methods 0.000 claims 1
- 238000005516 engineering process Methods 0.000 description 27
- 238000007726 management method Methods 0.000 description 18
- 230000033458 reproduction Effects 0.000 description 16
- 238000004364 calculation method Methods 0.000 description 15
- 238000010586 diagram Methods 0.000 description 14
- 230000008859 change Effects 0.000 description 10
- 238000006243 chemical reaction Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 8
- 230000009466 transformation Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 238000013507 mapping Methods 0.000 description 5
- 238000012360 testing method Methods 0.000 description 5
- VEMKTZHHVJILDY-UHFFFAOYSA-N resmethrin Chemical compound CC1(C)C(C=C(C)C)C1C(=O)OCC1=COC(CC=2C=CC=CC=2)=C1 VEMKTZHHVJILDY-UHFFFAOYSA-N 0.000 description 4
- 238000004040 coloring Methods 0.000 description 3
- 230000005055 memory storage Effects 0.000 description 3
- 238000009877 rendering Methods 0.000 description 3
- 238000010276 construction Methods 0.000 description 2
- 238000005286 illumination Methods 0.000 description 2
- 239000003595 mist Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 244000141353 Prunus domestica Species 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 239000003638 chemical reducing agent Substances 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000011960 computer-aided design Methods 0.000 description 1
- 239000002772 conduction electron Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000002159 nanocrystal Substances 0.000 description 1
- 230000037361 pathway Effects 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 150000003839 salts Chemical class 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
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/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/53—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- 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/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- 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/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
-
- 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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1081—Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Technology Law (AREA)
- Multimedia (AREA)
- Mathematical Physics (AREA)
- Storage Device Security (AREA)
- Image Generation (AREA)
Abstract
本发明提出用于图形处理的技术。在一个实例中,图形处理单元GPU经配置以根据不安全模式及安全模式中的一者而存取第一存储器单元。所述GPU包括存储器存取控制器,所述存储器存取控制器经配置以在所述GPU处于所述不安全模式中时允许GPU仅从所述第一存储器单元的不安全部分读取数据,且经配置以在所述GPU处于所述安全模式中时允许所述GPU仅将数据写入到所述第一存储器单元的安全部分。
Description
技术领域
本发明涉及用于图形处理的技术,且更具体来说,涉及用于内容保护的技术。
背景技术
现代操作系统(包含开放平台(例如,安卓或其它开放源平台)及封闭平台(例如,微软)通常在保护安全内容方面不受信任,所述安全内容被串流传输到所述开放平台或由所述开放平台处理。虽然现代操作系统经由用户内核模式分离而提供安全水平,但最终内核模式的组件在封闭平台中并且尤其在开放平台中不提供强信任水平。可容易地安装内核模式驱动程序,且恶意的内核模式驱动程序自然绕过安全边界。此类开放平台中的内核模式硬件驱动程序用于控制可处理安全内容的硬件(例如,图形处理单元(GPU))的操作。然而,因为此类驱动程序常常是开放源,及/或未被认为是关于受保护内容“安全的”,所以它们更易受第三方更改。此类更改可导致通过由此类驱动程序控制的硬件串流传输或由所述硬件处理的受保护内容(例如,数字权利管理(DRM)内容)存储在不安全的存储器中且被复制。由此,常常难以控制开放平台上的安全内容。
发明内容
一般来说,本发明描述用于图形处理单元(GPU)的硬件强制内容保护的技术。为了控制硬件平台上的安全内容,可由例如GPU但硬件控制对安全存储器的存取。
在本发明的一个实例中,一种用于图形处理的设备包括图形处理单元(GPU),其经配置以根据不安全模式及安全模式中的一者而存取第一存储器单元,所述GPU包括存储器存取控制器,所述存储器存取控制器经配置以在所述GPU处于所述不安全模式中时允许所述GPU仅从所述第一存储器单元的不安全部分读取数据,且经配置以在所述GPU处于所述安全模式中时允许所述GPU仅将数据写入到所述第一存储器单元的安全部分。
在本发明的另一实例中,一种图形处理的方法包括使用图形处理单元(GPU)根据不安全模式及安全模式中的一者而存取第一存储器单元,其中存取包括在所述GPU处于所述不安全模式中时允许所述GPU仅从所述第一存储器单元的不安全部分读取数据,及在所述GPU处于所述安全模式中时允许所述GPU仅将数据写入到所述第一存储器单元的安全部分。
在本发明的另一实例中,一种经配置以用于图形处理的设备包括用于使用图形处理单元(GPU)根据不安全模式及安全模式中的一者而存取第一存储器单元的装置,其中所述用于存取的装置包括用于在所述GPU处于所述不安全模式中时允许所述GPU仅从所述第一存储器单元的不安全部分读取数据的装置,及用于在所述GPU处于所述安全模式中时允许所述GPU仅将数据写入到所述第一存储器单元的安全部分的装置。
一或多个实例的细节陈述于附图及以下描述中。其它特征、目标和优点将从所述描述和图式以及权利要求书而显而易见。
附图说明
图1是展示经配置以使用本发明的技术的实例计算装置的框图。
图2是说明图1的系统存储器的实例物理页的概念图。
图3是展示经配置以使用本发明的技术的实例处理单元的框图。
图4是展示本发明的硬件强制内容保护技术的实例结构的框图。
图5是展示本发明的硬件强制内容保护技术的另一实例结构的框图。
图6是展示根据本发明的一个实例的高速缓冲存储器清除技术的框图。
图7是展示根据本发明的另一实例的高速缓冲存储器清除技术的框图。
图8是说明根据本发明的一个实例的方法的流程图。
具体实施方式
本发明涉及用于图形处理的技术,且更具体来说,涉及用于图形处理单元(GPU)的硬件强制内容保护的技术。
现代操作系统(包含开放平台(例如,安卓或其它开放源平台)及封闭平台(例如,微软)通常在保护安全内容方面不受信任,所述安全内容被串流传输到所述开放平台或由所述开放平台处理。虽然现代操作系统经由用户内核模式分离而提供安全水平,但最终内核模式的组件在封闭平台中并且尤其在开放平台中不提供强信任水平。可容易地安装内核模式驱动程序,且恶意的内核模式驱动程序自然绕过安全边界。此类开放平台中的内核模式硬件驱动程序用于控制可处理安全内容的硬件(例如,图形处理单元(GPU))的操作。然而,因为此类驱动程序常常是开放源,及/或未被认为是关于受保护内容“安全的”,所以它们更易受第三方更改。此类更改可导致通过由此类驱动程序控制的硬件串流传输或由所述硬件处理的受保护内容(例如,数字权利管理(DRM)内容)存储在不安全的存储器中且被复制。由此,常常难以控制开放平台上的安全内容。为解决此问题,本发明提出一种方法及设备,借此通过硬件自身(例如,通过GPU)控制对安全存储器的存取。
不是直接通过驱动程序代码控制硬件对安全或不安全存储器的存取,在一个实例中,本发明提出使用图形驱动程序(例如,开放源不安全驱动程序)以仅将GPU置于安全模式或不安全模式中。一旦置于安全模式中,可读取安全存储器的GPU组件受约束以仅作出到安全存储器区中的写入。此防止不受信任的驱动程序使用GPU将存储器内容从安全存储器区复制到不安全存储器区。
在此安全模式中,GPU可读取安全(例如,副本受保护(CP))内容以及不安全内容(例如,存储在不安全存储器中的内容)。在不安全模式中,GPU拒绝对安全存储器的所有存取。以此方式,即使更改不安全驱动程序以将GPU置于不安全模式中,将防止GPU自身从安全存储器读取任何数据。由此,防止对安全存储器中的安全内容的存取。
在本发明的一个实例中,一种用于图形处理的设备包括图形处理单元(GPU),其经配置以根据不安全模式及安全模式中的一者而存取第一存储器单元,所述GPU包括存储器存取控制器,所述存储器存取控制器经配置以在所述GPU处于所述不安全模式中时允许所述GPU仅从所述第一存储器单元的不安全部分读取数据,且经配置以在所述GPU处于所述安全模式中时允许所述GPU仅将数据写入到所述第一存储器单元的安全部分。
图1是说明可用于实施本发明的用于GPU的硬件强制内容保护的技术的实例计算装置2的框图。计算装置2可包括(例如)个人计算机、桌上型计算机、膝上型计算机、平板计算机、计算机工作站、视频游戏平台或控制台、移动电话(例如,蜂窝式或卫星电话、陆线电话、因特网电话、所谓的智能电话)、手持式装置(例如,便携式视频游戏装置或个人数字助理(PDA)、个人音乐播放器、视频播放器)、显示装置、电视、电视机顶盒、服务器、中间网络装置、主机计算机、任何移动装置或处理及/或显示图形数据的任何其它类型的装置。
如图1的实例中所说明,计算装置2可包含用户输入接口4、中央处理单元(CPU)6、一或多个存储器控制器8、系统存储器10、图形处理单元(GPU)12、图形存储器14、显示接口16、显示器18以及总线20及22。应注意,在一些实例中,图形存储器14可与GPU 12“在芯片上”。在一些情况下,图1中展示的所有硬件元件可在(例如)系统芯片(SoC)设计中的芯片上。用户输入接口4、CPU 6、存储器控制器8、GPU 12及显示接口16可使用总线20彼此通信。存储器控制器8及系统存储器10也可使用总线22彼此通信。总线20、22可为多种总线结构中的任一者,例如第三代总线(例如,HyperTransport总线或InfiniBand总线)、第二代总线(例如,高级图形端口总线、外围组件互连(PCI)高速总线,或高级eXentisible接口(AXI)总线)或另一类型的总线或装置互连件。应注意,图1中展示的不同组件之间的总线及通信接口的特定配置仅是示范性的,且具有相同或不同组件的计算装置及/或其它图形处理系统的其它配置可用于实施本发明的技术。
CPU 6可包括控制计算装置2的操作的通用或专用处理器。用户可提供对计算装置2的输入以致使CPU 6执行一或多个软件应用。在CPU 6上执行的软件应用可包含(例如)操作系统、字处理器应用、电子邮件应用、总分析表应用、媒体播放器应用、视频游戏应用、图形用户接口应用或另一程序。另外,CPU 6可执行用于控制GPU 12的操作的GPU驱动程序7。用户可经由一或多个输入装置(未图示)(例如,键盘、鼠标、麦克风、触摸垫、触摸屏或经由用户输入接口4耦合到计算装置2的另一输入装置)将输入提供到计算装置2。
在CPU 6上执行的软件应用可包含指令CPU 6以致使向显示器18再现图形数据的一或多个图形再现指令。在一些实例中,所述软件指令可符合图形应用编程接口(API),例如开放图形库API、开放图形库嵌入系统(OpenGL ES)API、开放计算语言API、Direct3D API、X3D API、RenderMan API、WebGL API或任何其它公共或专有标准图形API。为了处理图形再现指令,CPU 6可将一或多个图形再现命令发布到GPU 12(例如,通过GPU驱动程序7)以致使GPU 12执行对图形数据的一些或所有再现。在一些实例中,将再现的图形数据可包含例如点、线、三角形、四边形、三角形带等图形基元的列表。
存储器控制器8促进数据进出系统存储器10的传递。举例来说,存储器控制器8可接收存储器读取及写入命令,且服务关于存储器系统10的此类命令以便为计算装置2中的组件提供存储器服务。存储器控制器8经由存储器总线22通信地耦合到系统存储器10。虽然在图1中将存储器控制器8说明为与CPU 6及系统存储器10两者分开的处理模块,但在其它实例中,存储器控制器8的一些或全部功能性可实施在CPU 6、GPU12及系统存储器10中的一者或任一者上。系统存储器10可包括一或多个存储器单元。可物理上划分存储器单元(例如,单独的物理磁盘或固态存储器单元)或可通过存储器地址范围划分存储器单元。具体来说,可将系统存储器10划分成由“安全”的存储器单元及“不安全”的存储器单元组成的两个或更多个存储器单元。安全存储器单元可利用加密及/或其它数字权限管理(DRM)技术来防止存取、复制或解密存储在其上的数据。
存储器控制器8还可包含一或多个存储器管理单元(MMU),其包含用于控制IO装置对系统存储器10的存取(例如,GPU)的IOMMU(即,输入/输出MMU)。存储器管理单元可实施虚拟存储器系统。可将虚拟存储器空间划分成多个虚拟页。这些虚拟页可为邻接的,但这些虚拟页所对应的系统存储器10中的物理页可在系统存储器10中不是邻接的。可将页视为MMU可能够管理的最小单元。
运行在中央处理单元(CPU)上的现代操作系统(OS)通常使用用于将存储器分配给在CPU上操作的多个程序的虚拟存储器方案。虚拟存储器是一种存储器管理技术,其将计算机系统的物理存储器(例如,RAM、磁盘存储装置等)虚拟化,使得应用仅需要涉及一组存储器(即,虚拟存储器)。虚拟存储器由映射到物理存储器中的多个位置的邻接地址空间组成。以此方式,物理存储器的分段“隐藏”起来而不让应用看见,所述应用可替代地与虚拟存储器的邻接块交互。虚拟存储器中的邻接块通常布置成“页”。每一页是虚拟存储器地址的某一固定长度的邻接块。从虚拟存储器到物理存储器的映射常常由存储器管理单元(MMU)处置。当前映射到物理存储器中的位置的虚拟存储器空间被视为“背对”物理存储器。
虚拟存储器空间中的位置到物理存储器的映射与翻译旁视缓冲器(TLB)存储在一起。TLB由MMU使用以将虚拟地址快速翻译为物理地址。可将TLB实施为将虚拟存储器地址用作输入且输出物理存储器地址的内容可寻址存储器(CAM)。MMU可随后使用输出的物理存储器地址快速检索所请求的数据。
图2是说明系统存储器10的实例物理页的概念图。例如,图2说明包含虚拟页42的IOMMU 40,虚拟页42包含四个区段(区段0到3)。应理解,虚拟页42是图2中为了易于理解而说明的虚拟构造。在图2中,系统存储器10可包含对应于虚拟页42的物理页44。
可跨越系统存储器10的多个存储器单元存储物理页42。例如,物理页42可包含存储器单元11A及存储器单元11N两者。在一个实例中,存储器单元11A是“安全”存储器单元且存储器单元11N是“不安全”存储器单元。存储器单元11A可存储物理页44的一部分(指示为部分44A),且存储器单元11N可存储物理页44的一部分(指示为部分44B)。如所说明,存储器单元11A存储物理页44的区段0及区段2,且存储器单元11N存储物理页44的区段1及区段3。
出于说明的目的,图2的实例仅包含两个存储器单元,但可使用任何数目的存储器单元。举例来说,返回参看图1,GPU驱动程序7可传输致使GPU 12存储像素值或任何其它所计算的值的指令,且可传输将在其处存储像素值的虚拟地址。GPU 12继而可请求IOMMU 40根据虚拟地址而存储像素值。IOMMU 40继而可将虚拟地址映射到物理地址且基于所述物理地址以交错方式将像素值存储在系统存储器10的页中。
参看图1,系统存储器10可存储可由CPU 6存取以用于执行的程序模块及/或指令及/或由在CPU 6上执行的程序使用的数据。举例来说,系统存储器10可存储由CPU 6使用以在显示器18上呈现图形用户接口(GUI)的窗口管理器应用。另外,系统存储器10可存储与所述应用相关联的用户应用及应用表面数据。系统存储器10可另外存储由计算装置2的其它组件使用及/或产生的信息。举例来说,系统存储器10可充当用于GPU12的装置存储器且可存储将在GPU 12上操作的数据以及由GPU 12执行的操作而产生的数据。例如,系统存储器10可存储DRM受保护的游戏内容或由GPU 12产生的经解码视频。在此情况下,此类DRM受保护内容优选存储在系统存储器10的安全存储器单元中。作为其它实例,系统存储器10可存储其它图形数据,例如纹理缓冲器、深度缓冲器、模板缓冲器、顶点缓冲器、帧缓冲器或类似者的任何组合。系统存储器10可包含一或多个易失性或非易失性存储器或存储装置,例如随机存取存储器(RAM)、静态RAM(SRAM)、动态RAM(DRAM)、只读存储器(ROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、快闪存储器、磁性数据媒体或光学存储媒体。
GPU 12可经配置以执行图形操作以向显示器18再现一或多个图形基元。因此,当在CPU 6上执行的软件应用中的一者需要图形处理时,CPU 6可向GPU 12提供图形命令及图形数据以用于向显示器18再现。所述图形数据可包含(例如)绘制命令、状态信息、基元信息、纹理信息等。在一些情况下,GPU 12可内置有高度并行的结构,其提供比CPU 6对复杂图形相关操作的更有效的处理。举例来说,GPU 12可包含经配置而以并行方式对多个顶点或像素操作的多个处理元件。在一些情况下,GPU 12的高度并行性质允许GPU 12比使用CPU 6直接将场景绘制到显示器18更快速地将图形图像(例如,GUI及二维(2D)及/或三维(3D)图形场景)绘制到显示器18上。
在一些情况下,可将GPU 12集成到计算装置2的母板中。在其它情况下,GPU 12可存在于图形卡上,所述图形卡安装在计算装置2的母板中的端口中或可以其它方式并入经配置以与计算装置2互操作的外围装置内。GPU 12可包含一或多个处理器,例如一或多个微处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)或其它等效的集成或离散逻辑电路。
GPU 12可直接耦合到图形存储器14。因此,GPU 12可在不使用总线20的情况下从图形存储器14读取数据且将数据写入到图形存储器14。换句话说,GPU 12可使用本地存储装置而不是使用其它较慢的系统存储器在本地处理数据。此允许GPU 12通过消除GPU 12经由系统总线20读取及写入数据的需要而以更有效的方式操作,其中经由总线操作可经历繁重的总线业务。然而,在一些情况下,GPU 12可不包含单独的存储器,而是经由总线20利用系统存储器10。图形存储器14可包含一或多个易失性或非易失性存储器或储存装置,例如随机存取存储器(RAM)、静态RAM(SRAM)、动态RAM(DRAM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、快闪存储器、磁性数据媒体或光学存储媒体。
CPU 6及/或GPU 12可将再现的图像数据存储在帧缓冲器15中。通常,帧缓冲器15将被分配在系统存储器10内,但在一些情况下可为独立的存储器。显示接口16可从帧缓冲器15检索数据且配置显示器18以显示由再现的图像数据表示的图像。在一些实例中,显示接口16可包含经配置以将从帧缓冲器检索的数字值转换为可由显示器18消耗的模拟信号的数/模转换器(DAC)。在其它实例中,显示接口16可将数字值直接传递到显示器18以进行处理。显示器18可包含监视器、电视、投影装置、液晶显示器(LCD)、等离子显示面板、发光二极管(LED)阵列(例如,有机LED(OLED)显示器)、阴极射线管(CRT)显示器、电子纸、表面传导电子发射显示器(SED)、激光电视显示器、纳米晶体显示器或另一种类型的显示单元。显示器18可集成在计算装置2内。举例来说,显示器18可为移动电话或平板计算机的屏幕。或者,显示器18可为经由有线或无线通信链路而耦合到计算机装置2的独立装置。举例来说,显示器18可为经由电缆或无线链路而连接到个人计算机的计算机监视器或平板显示器。
图3是更详细地说明图1的CPU 6、GPU 12及系统存储器10的实例实施方案的框图。CPU 6可包含至少一个软件应用24、图形API 26及GPU驱动程序7,其中的每一者可为在CPU 6上执行的一或多个软件应用或服务。GPU 12可包含3D图形处理管线30,所述图形处理管线包含一起操作以执行图形处理命令的多个图形处理级。GPU 12可经配置而以多种再现模式执行图形处理管线30,包含分箱再现模式(也被称为基于瓦片的或延迟再现模式)及直接再现模式。GPU 12也可以是可操作以执行通用着色器39的,以用于执行适用于由GPU硬件的高度并行性质执行的更一般的计算。此类通用应用可为所谓的通用图形处理单元(GPGPU)且可符合通用API,例如OpenCL。
如图3中所展示,图形处理管线30可包含命令引擎32、几何处理级34、光栅化级36,及像素处理管线38。图形处理管线30中的组件中的每一者可实施为固定功能组件、可编程组件(例如,作为在可编程着色器单元上执行的着色器程序的部分),或实施为固定功能与可编程组件的组合。可用于CPU 6及GPU 12的存储器可包含系统存储器10,系统存储器10自身可包含帧缓冲器15。帧缓冲器15可存储再现的图像数据。
软件应用24可为利用GPU 12的功能性的任何应用。例如,软件应用24可为GUI应用、操作系统、便携式制图应用、用于工程或艺术应用的计算机辅助设计程序、视频游戏应用,或使用2D或3D图形的另一种类型的软件应用。软件应用24也可以是使用GPU执行更一般的计算(例如GPGPU应用中)的应用。
软件应用24可包含指令GPU 12再现图形用户接口(GUI)及/或图形场景的一或多个绘图指令。例如,绘图指令可包含界定将由GPU 12再现的一组一或多个图形图元的指令。在一些实例中,绘图指令可共同地界定用于GUI中的多个开窗表面的全部或部分。在额外实例中,所述绘图指令可共同地界定图形场景的全部或部分,所述图形场景包含在由应用界定的模型空间或世界空间内的一或多个图形对象。
软件应用24可经由图形API 26调用GPU驱动程序7以将一或多个命令发布到GPU12,以用于将一或多个图形图元再现为可显示的图形图像。例如,软件应用24可经由图形API 26调用GPU驱动程序7以将图元定义提供给GPU 12。在一些情况下,可以绘图图元(例如,三角形、矩形、三角扇、三角带等)的列表的形式将图元定义提供给GPU12。所述图元定义可包含指定与将要再现的图元相关联的一或多个顶点的顶点规格。所述顶点规格可包含每一顶点的位置坐标,并且在一些情况下,包含与顶点相关联的其它属性,例如色彩坐标、法向量及纹理坐标。所述图元定义还可包含图元类型信息(例如,三角形、矩形、三角扇、三角带等)、缩放信息、旋转信息及类似者。基于由软件应用24发布到GPU驱动程序7的指令,GPU驱动程序7可制定指定供GPU 12执行的一或多个操作以便再现图元的一或多个命令。在GPU 12从CPU 6接收命令时,图形处理管线30解码所述命令且配置图形处理管线30内的一或多个处理元件以执行所述命令中指定的操作。在执行指定操作之后,图形处理管线30将再现的数据输出到与显示装置相关联的帧缓冲器15。图形管线30可经配置以在多个不同的再现模式中的一者中执行,包含分箱再现模式及直接再现模式。
GPU驱动程序7可进一步经配置以编译一或多个着色器程序,且将经编译的着色器程序下载到GPU 12内所包含的一或多个可编程着色器单元上。可以高级着色语言编写着色器程序,所述高级着色语言例如为OpenGL着色语言(GLSL)、高级着色语言(HLSL)、用于图形的C(Cg)着色语言等。经编译的着色器程序可包含控制GPU 12内的可编程着色器单元的操作的一或多个指令。例如,着色器程序可包含顶点着色器程序及/或像素着色器程序。顶点着色器程序可控制可编程顶点着色器单元或统一着色器单元的执行,且包含指定一或多个逐顶点操作的指令。像素着色器程序可包含控制可编程像素着色器单元或统一着色器单元的执行的像素着色器程序,且包含指定一或多个逐像素操作的指令。根据本发明的一些实例,像素着色器程序还可包含选择性地致使基于源像素的对应目的地阿尔法值而检索源像素的纹理值的指令。
图形处理管线30可经配置以经由图形驱动程序7从CPU 6接收一或多个图形处理命令,且执行图形处理命令以产生可显示的图形图像。如上文所论述,图形处理管线30包含一起操作以执行图形处理命令的多个级。然而,应注意,所述级不需要一定实施在单独的硬件块中。例如,几何处理级34及像素处理管线38的部分可实施为统一着色器单元的部分。同样,图形管线30可经配置以在多个不同的再现模式中的一者中执行,包含分箱再现模式及直接再现模式。
命令引擎32可接收图形处理命令且配置图形处理管线30内的剩余的处理级以执行用于实行图形处理命令的各种操作。图形处理命令可包含(例如)绘图命令及图形状态命令。所述绘图命令可包含顶点规格命令,所述顶点规格命令指定一或多个顶点的位置坐标,并且在一些情况下,指定与所述顶点中的每一者相关联的其它属性值,例如色彩坐标、法向量、纹理坐标及雾坐标。所述图形状态命令可包含图元类型命令、变换命令、光照命令等。所述图元类型命令可指定将要再现的图元的类型及/或顶点如何组合以形成图元。所述变换命令可指定对顶点执行的变换的类型。所述光照命令可指定图形场景内的不同光的类型、方向及/或布局。命令引擎32可致使几何处理级34相对于与一或多个所接收的命令相关联的顶点及/或图元而执行几何处理。
几何处理级34可对一或多个顶点执行逐顶点操作及/或图元设置操作以便产生用于光栅化级36的图元数据。每一顶点可与一组属性(例如,位置坐标、色彩值、法向量及纹理坐标)相关联。几何处理级34根据各种逐顶点操作而修改这些属性中的一或多者。例如,几何处理级34可对顶点位置坐标执行一或多个变换以产生经修改的顶点位置坐标。几何处理级34可(例如)向顶点位置坐标应用模型化变换、观看变换、投影变换、ModelView变换、ModelViewProjection变换、视口变换及深度范围缩放变换中的一或多者以产生经修改的顶点位置坐标。在一些情况下,顶点位置坐标可为模型空间坐标,且经修改的顶点位置坐标可为屏幕空间坐标。可在所述模型化、观看、投影及视口变换的应用之后获得屏幕空间坐标。在一些情况下,几何处理级34还可对顶点执行逐顶点光照操作以产生顶点的经修改的色彩坐标。几何处理级34还可执行其它操作,包含(例如)正常变换、正常规格化操作、观看量修剪、均匀划分及/或隐面消除操作。
几何处理级34可产生包含界定将被光栅化的图元的一组一或多个经修改的顶点的图元数据以及指定顶点如何组合以形成图元的数据。所述经修改的顶点中的每一者可包含(例如)与所述顶点相关联的经修改的顶点位置坐标及经处理的顶点属性值。所述图元数据可共同地对应于将由图形处理管线30的其它级光栅化的图元。在概念上,每一顶点可对应于图元的其中所述图元的两个边缘会合的隅角。几何处理级34可将图元数据提供到光栅化级36以用于进一步处理。
在一些实例中,几何处理级34的全部或部分可由在一或多个着色器单元上执行的一或多个着色器程序实施。例如,在此些实例中,几何处理级34可由顶点着色器、几何着色器或其任何组合实施。在其它实例中,可将几何处理级34实施为固定功能硬件处理管线或实施为固定功能硬件与在一或多个着色器单元上执行的一或多个着色器程序的组合。
光栅化级36经配置以从几何处理级34接收表示将被光栅化的图元的图元数据,且光栅化所述图元以产生对应于光栅化的图元的多个源像素。在一些实例中,光栅化级36可确定哪些屏幕像素位置由将被光栅化的图元覆盖,且产生用于被确定为由图元覆盖的每一屏幕像素位置的源像素。光栅化级36可通过使用所属领域的技术人员已知的技术(例如边缘行走技术、评估边缘等式等)来确定哪些屏幕像素位置由图元覆盖。光栅化级36可将所得的源像素提供到像素处理管线38以供进一步处理。
由光栅化级36产生的源像素可对应于屏幕像素位置,例如目的地像素,且与一或多个色彩属性相关联。可称针对特定光栅化的图元所产生的所有源像素与光栅化的图元相关联。由光栅化级36确定的将由图元覆盖的像素可在概念上包含表示图元的顶点的像素、表示图元的边缘的像素及表示图元的内部的像素。
像素处理管线38经配置以接收与光栅化的图元相关联的源像素,且对所述源像素执行一或多个逐像素操作。可由像素处理管线38执行的逐像素操作包含(例如)阿尔法测试、纹理映射、色彩计算、像素着色、逐像素光照、雾处理、混合、像素所有权文本、源阿尔法测试、模板测试、深度测试、剪刀测试及/或点刻操作。另外,像素处理管线38可执行一或多个像素着色器程序以执行一或多个逐像素操作。由像素处理管线38产生的所得数据可在本文中被称作目的地像素数据且存储在帧缓冲器15中。所述目的地像素数据可与帧缓冲器15中的具有与被处理的源像素相同的显示位置的目的地像素相关联。所述目的地像素数据可包含例如色彩值、目的地阿尔法值、深度值等数据。
帧缓冲器15存储GPU 12的目的地像素。每一目的地像素可与唯一屏幕像素位置相关联。在一些实例中,帧缓冲器15可存储每一目的地像素的色彩分量及目的地阿尔法值。例如,帧缓冲器15可存储每一像素的红色、绿色、蓝色阿尔法(RGBA)分量,其中“RGB”分量对应于色彩值,且“A”分量对应于目的地阿尔法值。像素值也可以由亮度分量(Y)及一或多个色度分量(例如,U及V)表示。虽然帧缓冲器15及系统存储器10被说明为单独的存储器单元,但在其它实例中,帧缓冲器15可为系统存储器10的部分。
通用着色器39可为可在GPU 12上执行以执行计算的任何应用。通常,此类计算是利用GPU处理核心(包含算术逻辑单元(ALU)的高度并行结构的类型。实例通用着色器39可符合OpenCL API。OpenCL是允许应用跨越异构系统(例如,包含CPU、GPU、DSP等的系统)中的多个处理器具有存取权的API。通常,在符合应用的OpenCL中,GPU 12将用于执行非图形计算。非图形计算应用的实例可包含基于物理学的仿真、快速傅立叶变换、音频信号处理、数字图像处理、视频处理、后图像滤波、计算相机、气候研究、天气预报、神经网络、密码学及大规模并行数据处理,以及许多其它应用。
图4是展示经配置以实施本发明的硬件强制内容保护技术的实例装置的框图。在图4的实例中,GPU 12可经配置以根据安全模式或不安全模式而操作。在安全模式中,GPU 12被约束不能将输出数据(例如,游戏数据、视频等)写入到不安全存储器56。相反,在安全模式中,GPU 12可仅将输出数据写入到安全存储器57。当在安全模式中时,GPU 12可从安全存储器57或不安全存储器56读取数据。在不安全模式中,GPU 12被约束不能从安全存储器57读取任何数据。相反,在不安全模式中,GPU 12可仅从不安全存储器56读取数据。同样,当在不安全模式中时,GPU 12可仅将数据写入到不安全存储器56。
不安全存储器56及安全存储器57可为任何类型的存储器,包含一或多个易失性或非易失性存储器或存储装置。实例存储器及存储装置包含RAM、SRAM、DRAM、ROM、EPROM、EEPROM、快闪存储器、磁性数据媒体或光学存储媒体。安全存储器57包含不安全存储器56中找不到的额外特征。例如,安全存储器57可利用加密、认证及/或其它数字权限管理技术以防止对存储在其上的数据的存取、复制或解密。
GPU 12使用存储器存取控制器53控制从哪里读取数据及将数据写入到哪里。存储器存取控制器53响应于GPU 12在其下操作的模式(即,安全模式或不安全模式),且基于所述模式而作出读取/写入决策。
在一个实例中,GPU存储器模式由在CPU 6上操作的GPU驱动程序7设定。GPU驱动程序7可以若干不同方式改变GPU 12中的存储器模式。在一个实例中,GPU驱动程序7将一值直接写入到GPU 12中的寄存器中,所述值向GPU 12指示要使用哪一存储器模式(例如,安全模式或不安全模式)。在另一实例中,GPU 12可在命令流中包含可由GPU 12执行的一或多个指令,其指令GPU 12自身将指示要使用哪一存储器模式的某一值写入到寄存器。以此方式,GPU驱动程序7可仅选择GPU在其下操作的存储器模式,且不作出指定哪些数据将被写入到哪些存储器的任何直接指令。以此方式,即使更改GPU驱动程序7以将GPU 12置于不安全模式中,通过存储器存取控制器53的功能,GPU 12将防止从安全存储器57进行任何读取存取,因为在不安全模式中,存储器存取控制器53仅能够从不安全存储器56读取。同样,即使更改GPU 7以将GPU 12置于安全模式中,通过存储器存取控制器53的功能,GPU 12将防止对不安全存储器56的任何写入存取,因为在安全模式中,存储器存取控制器53仅能够写入到安全存储器57。
在一个实例中,存储器控制器53分别经由安全及不安全存储器管理单元(MMU)页表而存取安全及不安全存储器单元。在此实例中,由GPU驱动程序7将虚拟地址范围提供到GPU 12。所述虚拟地址范围包含用于安全存储器的虚拟地址范围及用于不安全存储器的虚拟地址范围。在由GPU驱动程序7置于安全模式中时,GPU 12将利用用于安全存储器的虚拟地址范围以执行读取及写入。GPU 12将还能够在安全模式中使用用于不安全存储器的虚拟地址范围以执行读取,但不执行写入。在由GPU驱动程序7置于不安全模式中时,GPU 12将利用用于不安全存储器的虚拟地址范围以执行读取及写入。
在一个实例中,存储器存取控制器53通过确定用于读取或写入请求中的虚拟地址是在不安全虚拟存储器地址范围内还是在安全虚拟地址范围内而将读取及写入路由到适当的存储器单元(即,安全存储器57或不安全存储器56)。基于所述范围确定,存储器存取控制器利用不安全IOMMU 51或安全IOMMU 52中的一者。
不安全IOMMU 51是经配置以将虚拟存储器地址映射到不安全存储器56中的物理存储器地址的IOMMU。安全IOMMU 52是经配置以将虚拟存储器地址映射到安全存储器57中的物理存储器地址的IOMMU。不安全IOMMU 51使用不安全页表执行到不安全存储器56的映射。不安全页表是将虚拟存储器地址范围(例如,由GPU驱动程序7提供的范围)映射到不安全存储器56中的位置的页表。同样,安全IOMMU 52使用安全页表执行到安全存储器57的映射。所述安全页表是将虚拟存储器地址范围(例如,由GPU驱动程序7提供的范围)映射到安全存储器57中的位置的页表。如图4中所描绘,不安全IOMMU 51及安全IOMMU 52是单一IOMMU 50的部分。实际上,IOMMU 50在其与安全页表操作时变为安全IOMMU,且在其与不安全页表操作时变为不安全IOMMU。在其它实例中,不安全IOMMU 51及安全IOMMU 52可为物理上分开的MMU。
在本发明的一个实例中,通过在CPU 6上执行的安全操作系统(OS)54将安全及不安全页表两者提供到安全IOMMU 52及不安全IOMMU 51。安全OS是与正常“丰富”OS(例如,苹果iOS、谷歌Android、微软视窗等)并排操作的OS。安全OS提供安全应用以保护安全内核及任何安全外围设备(例如,安全IOMMU 52)且将其与在丰富OS上运行的任何代码(例如,GPU驱动程序7)分离。安全OS的实例是由ARM Holdings制成的TrustZone软件。一般来说,安全OS被视为比在丰富OS上运行的软件(包含例如图形驱动程序等软件)不易受到更改及攻击得多。根据本发明的技术,仅允许安全OS更新用于将虚拟存储器地址范围映射到物理存储器地址的页表。由此,更改图形驱动程序(包含由驱动程序提供的虚拟地址范围)的任何尝试将不导致安全内容存储在不安全存储器中,因为仅安全OS提供到安全及不安全存储器的最终映射。
在其中安全及不安全页表两者在IOMMU 50处都可用的实例中(即,IOMMU 50由不安全IOMMU 51及安全IOMMU 52两者组成),GPU 12能够在安全模式中从不安全存储器56及安全存储器57两者读取数据。其它读取/写入限制仍适用。即,在安全模式中,GPU 12仅作出对安全存储器57的写入,且在不安全模式中,GPU 12的读取及写入两者限于不安全存储器56。
在本发明的另一实例中,不是使安全及不安全IOMMU两者都可用于GPU,其中数据业务经由存储器存取控制器53被引导到安全或不安全IOMMU,将使仅一个IOMMU(即,不安全IOMMU 51或安全IOMMU 52)可用于GPU 12,其取决于选定的存储器模式。即,如果存储器模式所述不安全模式,那么安全OS 54仅提供用于不安全IOMMU 51的页表映射。在此情况下,安全IOMMU 52将不可用。如果存储器模式是安全模式,那么安全OS 54仅提供用于安全IOMMU 52的页表映射。在此情况下,不安全IOMMU 51将不可用。每一存储器模式仅使一个IOMMU可用的此实例将提供更简单的实施方案,其中每一存储器模式约束读取及写入两者。也就是说,仅在安全模式中GPU12将允许对安全存储器57的读取及写入,而仅在不安全模式中GPU 12将允许对不安全存储器56的读取及写入。此略微不同于上文描述的其中两个IOMMU可为都可用的方法,不同之处在于安全模式将不再允许对不安全存储器56的读取。
甚至在安全模式中时,存在除GPU 12的最终输出产品之外的某一写入,其将更好地使GPU写入到不安全存储器。这些写入包含GPU 12与图形驱动程序7之间的通信权标。此类数据包含时戳及其它辅助数据及控制数据,例如计数器数据及查询数据。GPU12使用存储器(例如,不安全存储器56)以将此类时戳及数据传送回到驱动程序。由于图形驱动程序7不受信任,所以参与通信路径的存储器需要是不安全的(例如,不安全存储器56)。作为一个实例,在GPU 12到达处理中的某一点时,GPU 12将时戳/连续标记写入到存储器。图形驱动程序7使用此信息确定GPU已在特定命令流中进行多远。此确定(例如)允许图形驱动程序7在GPU 12结束时释放GPU 12对其操作的存储器对象。存在GPU 12使用存储器写入以用于将信息提供到图形驱动程序7的许多其它类型的信令及通信路径。作为另一实例,图形驱动程序7可请求GPU 12在绘图调用之后报告性能计数。GPU 12随后将这些性能计数写入到由图形驱动程序7指定的存储器位置(例如,不安全存储器56中)。
为了解决以上一般规则的此例外,GPU 12在安全模式中不写入到不安全存储器,GPU 12硬件可经修改以使得某些硬件块经配置以具有不安全存储器存取,而在GPU在安全模式中运行时也不具有对连接到或含有安全内容的数据路径及高速缓冲存储器的存取。
图5描绘实例实施方案,其中GPU 12的某些硬件块仅具有通过GPU 12的存储器接口块(VBIF 60)及随后通过不安全IOMMU 51对不安全存储器的直接存取,甚至在GPU12处于安全模式中时也如此。此硬件块的一个实例是GPU的前端处的命令处理器(CP)62块。CP 62可执行命令引擎,例如图3中展示的命令引擎32。CP 62负责(经由不安全存储器)将消息发送回到GPU驱动程序7。如图5中所展示,CP 62经配置以仅具有通过不安全IOMMU 51到(在此情况下,不安全存储器)存储器的一个物理路径。由此,不管GPU 12的任何其它硬件块是否对安全内容操作,CP 62可永不获得对此类安全内容的存取。为了进一步确保CP 62不具有对安全内容的存取,CP 62还可以在物理上与可以用于存储安全内容的任何寄存器(包含调试总线)隔离(例如,不具有连接)。如图5中所展示,CP 62不具有对L2高速缓冲存储器61及图形存储器(GMEM)70的直接存取。GMEM 70是GPU 12在GPU 12的一些操作模式中再现内容以供显示时用作再现目标或帧缓冲器的快速存储器(常称为SRAM)。L2高速缓冲存储器61是用于存储最近寻址的数据或频繁使用的数据以使得可减小对主存储器(例如,安全存储器)的存取的数目的辅助高速缓冲存储器。L2高速缓冲存储器61也可以用于缓冲程序指令。通常,L2高速缓冲存储器61大于GMEM 70。
GPU 12的其它硬件块还可经配置以仅具有对不安全存储器的存取权。例如,图元控制(PC)单元及可见性流压缩器(VSC)可经配置以仅具有对不安全存储器的存取权。PC单元控制图元(例如,三角形)如何前进或“行走”穿过图形管线(例如,图3的图形3D处理管线30)。VSC用于基于瓦片或延迟再现方案中以压缩及管理可见性流。一般来说,在一些情况下,避免要求某些硬件块写入到安全存储器可为有益的。此类情形包含其中硬件块不写入安全内容的情形及在硬件块写入图形驱动程序所需的控制数据时。
图5中的其它硬件块基于上文描述的技术而将内容存储到不安全存储器或安全存储器。即,在不安全模式中,可仅从不安全存储器读取数据或将数据写入到不安全存储器。在不安全模式中,不可从安全存储器读取数据。在安全模式中,仅可将数据写入到安全存储器。在安全模式中,不可将数据写入到不安全存储器。然而,在一些实例中,在安全模式中,可从安全存储器及不安全存储器两者读取数据。可根据存储器模式存取存储器的GPU 12的这些额外硬件块包含顶点获取解码(VFD)单元65、高级定序器(HLSQ)66、顶点着色器(VS)67、像素着色器(PS)68,及再现后端(RB)69。VFD 65负责在PC 63的请求下获取顶点数据。HLSQ 66控制着色器处理器(即,GPU上的执行着色器代码的可编程处理器)、填充正执行的工作的正确状态,及将工作启动到着色器处理器中。VS 67是在着色器处理器上执行的顶点着色器。例如,VS 67可包含执行图3的图形3D处理管线30的几何处理级34的顶点着色器代码。PS 68是在着色器处理器上执行的像素着色器。例如,PS 68可包含执行图3的图形3D处理管线30的像素处理管线38的像素着色器代码。再现后端(RB)69负责写入及读取用于深度缓冲器及模板缓冲器的像素。
在GPU从安全模式转变到不安全模式时,可存在保留在GPU的各种高速缓冲存储器、存储器及寄存器内的安全内容。在本发明的一个实例中,提供一机制以清除可能保持安全内容的GPU 12的各种储存单元及/或使各种储存单元失效,之后允许使用不安全存储器模式的不安全工作在GPU上启动。在此上下文中,清除存储器是指存储于所述存储器中的数据被擦除及/或允许被覆写。实际上,清除可涉及解除分配存储器单元的所有存储器地址,以使得存储器单元中的所有数据可被覆写。在其它实例中,清除可涉及覆写存储器单元中的所有数据(例如,使用全1或全0),以使得任何先前存储的数据不再可用。如果未清除存储器单元,那么不安全工作可将安全数据的后续保留复制到不安全存储器。可经由安全软件技术、硬件技术或两种技术的组合来解决此问题。无论如何,清除及到不安全的转变可为原子操作,这是因为此操作是由不安全驱动程序触发的。在此上下文中,原子操作包含与回到不安全模式的转变一起清除内部GPU 12存储器(即,原子级)。例如,必须存在做两件事(改变模式及清除内部存储器)的单一“命令”,否则,恶意软件可仅执行回到不安全模式的转变,且不执行清除操作。
在一些实例中,在从安全模式转变到不安全模式时可能没有必要清除GPU 12的所有存储单元。替代地,仅需要清除存储单元的一部分以有效地防止对安全内容的未授权的存取。作为一个实例,仅需要清除所存储的内容。作为另一实例,可清除数据的每隔一个数据块(例如,每隔32个字节)。
图6是展示根据本发明的一个实例的高速缓冲存储器清除技术的框图。在图6的实例中,安全软件解决方案用于使GPU在安全模式与不安全模式之间转变。在一个实例中,GPU寄存器(例如,清除寄存器74)是在运行在主机CPU 6上的安全软件(例如,安全OS 54)的控制下。如果GPU驱动程序7将GPU 12的存储器模式从不安全模式切换到安全模式,那么GPU驱动程序7还将在安全OS 54中调用安全软件以清除GPU 12的高速缓冲存储器、存储器或寄存器(包含L2高速缓冲存储器61、GMEM 70及其它寄存器72)上保留的任何安全内容。在那时,安全OS 54可首先通过将存储器清除及/或失效指令写入到清除寄存器74中而启动GPU 12上的工作。所述指令将导致清除GPU 12中的所有保留的安全数据。所述指令可为着色器程序、存储器写入及/或寄存器编程(例如,GPU L2高速缓冲存储器失效)的组合。
图7是展示根据本发明的另一实例的高速缓冲存储器清除技术的框图。在图7的实例中,硬件解决方案用于使GPU 12在安全模式与不安全模式之间转变。在此实例中,外部可见(例如,存储器映射的输入/输出(MMIO))或内部(例如,命令流)寄存器76可经配置以使得其由图形驱动程序7直接写入。在寄存器76被写入时(例如,在从安全模式转为不安全模式)时,GPU 12硬件将经配置以完成当前安全工作、排空管线(即,移除正处理的任何保留的安全内容),及清除可能含有安全内容的所有寄存器、存储器及高速缓冲存储器(包含L2高速缓冲存储器61、GMEM 70及其它寄存器72)及/或使其失效。此清除过程可包含使用驻留在GPU 12上的硬接线或安全地加载及受保护的着色器代码。
图8是说明根据本发明的一个实例的方法的流程图。图8的技术可由GPU 12实施。在一些实例中,图8的技术的部分可由CPU 6实施。首先,图形驱动程序7可经配置以将GPU 12置于安全模式或不安全模式中(802)。图形驱动程序7还可经配置以向GPU 12提供虚拟存储器地址范围,包含第一虚拟存储器地址范围及第二虚拟存储器地址范围(804)。GPU 12经配置以根据不安全模式及安全模式中的一者而存取第一存储器单元(806)。
在本发明的一个实例中,存取第一存储器单元包含在GPU 12处于不安全模式中时允许GPU 12仅从第一存储器单元的不安全部分读取数据,及在GPU 12处于安全模式中时允许GPU 12仅将数据写入到第一存储器单元的安全部分。在本发明的另一实例中,存取第一存储器单元进一步包含在GPU 12处于不安全模式中时允许GPU 12仅将数据写入到第一存储器单元的不安全部分,及在GPU 12处于安全模式中时允许GPU 12从第一存储器单元的安全部分及不安全部分读取数据。在GPU 12被置于安全模式中的情况下,GPU 12通过利用安全存储器管理单元将数据写入到第一存储器单元的安全部分(808),所述安全存储器管理单元利用含有用于第一存储器单元的安全部分的地址范围的安全页表。在GPU 12被置于不安全模式中的情况下,GPU 12通过利用不安全存储器管理单元从第一存储器单元的不安全部分读取数据(810),所述不安全存储器管理单元利用含有用于第一存储器单元的不安全部分的地址范围的不安全页表。在本发明的另一实例中,GPU 12可经配置以使用前端命令处理器将数据写入到第一存储器的不安全部分,而不管GPU是处于不安全模式还是安全模式中。
在本发明的一个实例中,根据来自虚拟存储器地址范围的虚拟存储器地址而读取及写入数据,其中所述虚拟存储器地址范围包含与由安全存储器管理单元利用的安全页表中的条目相关的第一虚拟存储器地址范围,及与由不安全存储器管理单元利用的不安全页表中的条目相关的第二虚拟存储器地址范围。在本发明的进一步实例中,安全操作系统(例如,安全OS 54)可经配置以将安全页表供应到安全存储器管理单元且将不安全页表供应到不安全存储器管理单元。
在本发明的另一实例中,安全操作系统可进一步经配置以将指令从安全操作系统发送到GPU的清除寄存器,所述指令致使GPU在GPU从安全模式转变到不安全模式时清除来自一或多个内部存储器的至少一些内容及使所述一或多个内部存储器失效。在本发明的另一实例中,安全操作系统可经配置以将指令从图形驱动程序发送到GPU的命令流寄存器,所述指令致使GPU在GPU从安全模式转变到不安全模式时清除来自一或多个内部存储器的至少一些内容及使所述一或多个内部存储器失效。
用于在切换到不安全模式时清除来自GPU的安全内容的上述解决方案仅是实例。GPU在安全模式与不安全模式之间的转变可以多种方式进行。最简单的装置将是图形驱动程序或安全驱动程序替代物可写入的外部可见的寄存器(例如,MMIO),如上文所描述。然而,此可需要在转变必定发生的时间点处驱动程序与GPU硬件之间的硬同步。
可优选允许此切换发生在驱动程序呈现给GPU的命令流内。此允许驱动程序将大量工作(包含彼此交错的安全及不安全工作)排队。这些工作的前同步码将包含到GPU的用以切换到考虑中的工作所需的模式中的命令。从应用角度来看,这将导致安全或不安全的应用GPU背景。
在一或多个实例中,上文所描述的功能可以硬件、软件、固件或其任何组合实施。如果以软件来实施,那么功能可作为一或多个指令或代码存储在包括非暂时性计算机可读媒体的制品上。计算机可读媒体可包含计算机数据存储媒体。数据存储媒体可为可由一或多个计算机或一个或多个处理器存取以检索用于实施本发明中描述的技术的指令、代码及/或数据结构的任何可用媒体。举例来说而非限制,此类计算机可读媒体可包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储装置、磁盘存储装置或其它磁性存储装置、快闪存储器,或可用以携载或存储呈指令或数据结构的形式且可由计算机存取的所要程序代码的任何其它媒体。如本文所使用,磁盘及光盘包含压缩光盘(CD)、激光光盘、光学光盘、数字多功能光盘(DVD)、软性磁盘及蓝光光盘,其中磁盘通常以磁性方式重现数据,而光盘用激光以光学方式重现数据。上述各者的组合也应包含在计算机可读媒体的范围内。
代码可由一或多个处理器执行,所述一或多个处理器例如为一或多个DSP、通用微处理器、ASIC、FPGA,或其它等效集成或离散逻辑电路。另外,在一些方面中,可在专用硬件和/或软件模块内提供本文中所描述的功能性。并且,可将所述技术完全实施于一或多个电路或逻辑元件中。
本发明的技术可实施在广泛多种装置或设备中,包含无线手持机、集成电路(IC)或一组IC(例如,芯片组)。本发明中描述各种组件、模块或单元是为了强调经配置以执行所揭示技术的装置的功能方面,但未必需要通过不同硬件单元实现。实际上,如上文所描述,各种单元可以结合合适的软件及/或固件组合在编码解码器硬件单元中,或者通过互操作硬件单元的集合来提供,所述硬件单元包含如上文所描述的一或多个处理器。
已描述各种实例。这些及其它实例在所附权利要求书的范围内。
Claims (33)
1.一种用于图形处理的设备,其包括:
图形处理单元GPU,其经配置以根据不安全模式及安全模式中的一者而存取第一存储器单元,所述GPU包括:
存储器存取控制器,其经配置以在所述GPU处于所述不安全模式中时允许所述GPU仅从所述第一存储器单元的不安全部分读取数据,且经配置以在所述GPU处于所述安全模式中时允许所述GPU仅将数据写入到所述第一存储器单元的安全部分。
2.根据权利要求1所述的设备,其中:
所述存储器存取控制器经配置以在所述GPU处于所述不安全模式中时允许所述GPU仅将数据写入到所述第一存储器单元的所述不安全部分,且
所述存储器存取控制器经配置以在所述GPU处于所述安全模式中时允许所述GPU从所述第一存储器单元的所述安全部分及所述不安全部分读取数据。
3.根据权利要求1所述的设备,其中所述存储器存取控制器经配置以通过利用安全存储器管理单元而将数据写入到所述第一存储器单元的所述安全部分,所述安全存储器管理单元利用含有用于所述第一存储器单元的所述安全部分的地址范围的安全页表,且
其中所述存储器存取控制器经配置以通过利用不安全存储器管理单元从所述第一存储器单元的所述不安全部分读取数据,所述不安全存储器管理单元利用含有用于所述第一存储器单元的所述不安全部分的地址范围的不安全页表。
4.根据权利要求3所述的设备,其中所述存储器存取控制器根据来自虚拟存储器地址范围的虚拟存储器地址而读取及写入数据,其中所述虚拟存储器地址范围包含与由所述安全存储器管理单元利用的所述安全页表中的条目相关的第一虚拟存储器地址范围,及与由所述不安全存储器管理单元利用的所述不安全页表中的条目相关的第二虚拟存储器地址范围。
5.根据权利要求4所述的设备,其进一步包括:
第二存储器单元,其存储图形驱动程序,所述图形驱动程序经配置以将所述GPU置于安全模式或不安全模式中。
6.根据权利要求5所述的设备,其中所述图形驱动程序进一步经配置以向所述GPU提供包含所述第一虚拟存储器地址范围及所述第二虚拟存储器地址范围的所述虚拟存储器地址范围。
7.根据权利要求6所述的设备,其进一步包括:
所述安全存储器管理单元;
所述不安全存储器管理单元;及
中央处理单元CPU,其执行安全操作系统及所述图形驱动程序,所述安全操作系统经配置以将所述安全页表供应到所述安全存储器管理单元且将所述不安全页表供应到所述不安全存储器管理单元。
8.根据权利要求7所述的设备,其中所述GPU进一步包括清除寄存器及一或多个内部存储器,且其中所述安全操作系统经配置以将指令发送到所述清除寄存器,所述指令致使所述GPU在所述GPU从所述安全模式转变到所述不安全模式时清除来自所述一或多个内部存储器的至少一些内容且使所述一或多个内部存储器失效。
9.根据权利要求7所述的设备,其中所述GPU进一步包括命令流寄存器及一或多个内部存储器,且其中所述图形驱动程序经配置以将指令发送到所述命令流寄存器,所述指令致使所述GPU在所述GPU从所述安全模式转变到所述不安全模式时清除来自所述一或多个内部存储器的至少一些内容且使所述一或多个内部存储器失效。
10.根据权利要求1所述的设备,其中所述GPU进一步包括:
一或多个硬件块,其经配置以将数据写入到所述第一存储器的所述不安全部分,而不管所述GPU是处于所述不安全模式还是所述安全模式中,其中所述一或多个硬件块不具有对所述第一存储器单元的所述安全部分的读取存取权。
11.根据权利要求10所述的设备,其中所述一或多个硬件块包含前端命令处理器。
12.一种图形处理方法,其包括:
使用图形处理单元GPU根据不安全模式及安全模式中的一者而存取第一存储器单元,其中存取包括:
在所述GPU处于所述不安全模式中时允许所述GPU仅从所述第一存储器单元的不安全部分读取数据,及
在所述GPU处于所述安全模式中时允许所述GPU仅将数据写入到所述第一存储器单元的安全部分。
13.根据权利要求12所述的方法,其进一步包括:
在所述GPU处于所述不安全模式中时允许所述GPU仅将数据写入到所述第一存储器单元的所述不安全部分,及
在所述GPU处于所述安全模式中时允许所述GPU从所述第一存储器单元的所述安全部分及所述不安全部分读取数据。
14.根据权利要求12所述的方法,其进一步包括:
通过利用安全存储器管理单元而将数据写入到所述第一存储器单元的所述安全部分,所述安全存储器管理单元利用含有用于所述第一存储器单元的所述安全部分的地址范围的安全页表,及
通过利用不安全存储器管理单元从所述第一存储器单元的所述不安全部分读取数据,所述不安全存储器管理单元利用含有用于所述第一存储器单元的所述不安全部分的地址范围的不安全页表。
15.根据权利要求14所述的方法,其进一步包括:
根据来自虚拟存储器地址范围的虚拟存储器地址而读取及写入数据,其中所述虚拟存储器地址范围包含与由所述安全存储器管理单元利用的所述安全页表中的条目相关的第一虚拟存储器地址范围,及与由所述不安全存储器管理单元利用的所述不安全页表中的条目相关的第二虚拟存储器地址范围。
16.根据权利要求15所述的方法,其进一步包括:
使用图形驱动程序将所述GPU置于安全模式或不安全模式中。
17.根据权利要求16所述的方法,其进一步包括:
使用所述图形驱动程序向所述GPU提供包含所述第一虚拟存储器地址范围及所述第二虚拟存储器地址范围的所述虚拟存储器地址范围。
18.根据权利要求17所述的方法,其进一步包括:
使用在中央处理单元CPU上执行的安全操作系统将所述安全页表供应到所述安全存储器管理单元且将所述不安全页表供应到所述不安全存储器管理单元。
19.根据权利要求18所述的方法,其进一步包括:
将指令从所述安全操作系统发送到所述GPU的清除寄存器,所述指令致使所述GPU在所述GPU从所述安全模式转变到所述不安全模式时清除来自一或多个内部存储器的至少一些内容且使所述一或多个内部存储器失效。
20.根据权利要求18所述的方法,其进一步包括:
将指令从所述图形驱动程序发送到所述GPU的命令流寄存器,所述指令致使所述GPU在所述GPU从所述安全模式转变到所述不安全模式时清除来自一或多个内部存储器的至少一些内容且使所述一或多个内部存储器失效。
21.根据权利要求12所述的方法,其进一步包括:
使用所述GPU的一或多个硬件块将数据写入到所述第一存储器的所述不安全部分,而不管所述GPU是处于所述不安全模式还是所述安全模式中,其中所述一或多个硬件块不具有对所述第一存储器单元的所述安全部分的读取存取权。
22.根据权利要求21所述的方法,其中所述一或多个硬件块包含前端命令处理器。
23.一种经配置以用于图形处理的设备,其包括:
用于使用图形处理单元GPU根据不安全模式及安全模式中的一者而存取第一存储器单元的装置,其中所述用于存取的装置包括:
用于在所述GPU处于所述不安全模式中时允许所述GPU仅从所述第一存储器单元的不安全部分读取数据的装置,及
用于在所述GPU处于所述安全模式中时允许所述GPU仅将数据写入到所述第一存储器单元的安全部分的装置。
24.根据权利要求23所述的设备,其进一步包括:
用于在所述GPU处于所述不安全模式中时允许所述GPU仅将数据写入到所述第一存储器单元的所述不安全部分的装置,及
用于在所述GPU处于所述安全模式中时允许所述GPU从所述第一存储器单元的所述安全部分及所述不安全部分读取数据的装置。
25.根据权利要求23所述的设备,其进一步包括:
用于通过利用安全存储器管理单元而将数据写入到所述第一存储器单元的所述安全部分的装置,所述安全存储器管理单元利用含有用于所述第一存储器单元的所述安全部分的地址范围的安全页表,及
用于通过利用不安全存储器管理单元从所述第一存储器单元的所述不安全部分读取数据的装置,所述不安全存储器管理单元利用含有用于所述第一存储器单元的所述不安全部分的地址范围的不安全页表。
26.根据权利要求25所述的设备,其进一步包括:
用于根据来自虚拟存储器地址范围的虚拟存储器地址而读取及写入数据的装置,其中所述虚拟存储器地址范围包含与由所述安全存储器管理单元利用的所述安全页表中的条目相关的第一虚拟存储器地址范围,及与由所述不安全存储器管理单元利用的所述不安全页表中的条目相关的第二虚拟存储器地址范围。
27.根据权利要求26所述的设备,其进一步包括:
用于使用图形驱动程序将所述GPU置于安全模式或不安全模式中的装置。
28.根据权利要求27所述的设备,其进一步包括:
用于使用所述图形驱动程序向所述GPU提供包含所述第一虚拟存储器地址范围及所述第二虚拟存储器地址范围的所述虚拟存储器地址范围的装置。
29.根据权利要求28所述的设备,其进一步包括:
用于使用在中央处理单元CPU上执行的安全操作系统将所述安全页表供应到所述安全存储器管理单元且将所述不安全页表供应到所述不安全存储器管理单元的装置。
30.根据权利要求29所述的设备,其进一步包括:
用于将指令从所述安全操作系统发送到所述GPU的清除寄存器的装置,所述指令致使所述GPU在所述GPU从所述安全模式转变到所述不安全模式时清除来自一或多个内部存储器的至少一些内容且使所述一或多个内部存储器失效。
31.根据权利要求29所述的设备,其进一步包括:
用于将指令从所述图形驱动程序发送到所述GPU的命令流寄存器的装置,所述指令致使所述GPU在所述GPU从所述安全模式转变到所述不安全模式时清除来自一或多个内部存储器的至少一些内容且使所述一或多个内部存储器失效。
32.根据权利要求23所述的设备,其进一步包括:
用于使用所述GPU的一或多个硬件块将数据写入到所述第一存储器的所述不安全部分而不管所述GPU是处于所述不安全模式还是所述安全模式中的装置,其中所述一或多个硬件块不具有对所述第一存储器单元的所述安全部分的读取存取权。
33.根据权利要求32所述的设备,其中所述一或多个硬件块包含前端命令处理器。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/769,687 | 2013-02-18 | ||
US13/769,687 US8931108B2 (en) | 2013-02-18 | 2013-02-18 | Hardware enforced content protection for graphics processing units |
PCT/US2013/032984 WO2014126597A1 (en) | 2013-02-18 | 2013-03-19 | Hardware enforced content protection for graphics processing units |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104981811A true CN104981811A (zh) | 2015-10-14 |
CN104981811B CN104981811B (zh) | 2017-09-29 |
Family
ID=48045127
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380072797.XA Active CN104981811B (zh) | 2013-02-18 | 2013-03-19 | 用于图形处理单元的硬件强制内容保护 |
Country Status (6)
Country | Link |
---|---|
US (1) | US8931108B2 (zh) |
EP (1) | EP2956881B1 (zh) |
JP (1) | JP5917784B1 (zh) |
KR (1) | KR101649089B1 (zh) |
CN (1) | CN104981811B (zh) |
WO (1) | WO2014126597A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230222010A1 (en) * | 2022-01-10 | 2023-07-13 | Nvidia Corporation | Application programming interface to indicate execution of graph nodes |
Families Citing this family (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9507961B2 (en) * | 2013-07-01 | 2016-11-29 | Qualcomm Incorporated | System and method for providing secure access control to a graphics processing unit |
US9672162B2 (en) * | 2013-08-16 | 2017-06-06 | Arm Limited | Data processing systems |
US9170957B2 (en) * | 2013-08-29 | 2015-10-27 | Qualcomm Incorporated | Distributed dynamic memory management unit (MMU)-based secure inter-processor communication |
US9569385B2 (en) * | 2013-09-09 | 2017-02-14 | Nvidia Corporation | Memory transaction ordering |
US10515231B2 (en) * | 2013-11-08 | 2019-12-24 | Symcor Inc. | Method of obfuscating relationships between data in database tables |
US9886736B2 (en) | 2014-01-20 | 2018-02-06 | Nvidia Corporation | Selectively killing trapped multi-process service clients sharing the same hardware context |
KR102218202B1 (ko) * | 2014-08-01 | 2021-02-23 | 삼성전자주식회사 | 반도체 장치 |
KR102297383B1 (ko) | 2014-09-25 | 2021-09-03 | 삼성전자주식회사 | 보안 데이터 처리 |
US9690928B2 (en) * | 2014-10-25 | 2017-06-27 | Mcafee, Inc. | Computing platform security methods and apparatus |
US10515014B1 (en) | 2015-06-10 | 2019-12-24 | EMC IP Holding Company LLC | Non-uniform memory access (NUMA) mechanism for accessing memory with cache coherence |
US10503416B1 (en) | 2015-06-10 | 2019-12-10 | EMC IP Holdings Company LLC | Flash memory complex with a replication interface to replicate data to another flash memory complex of a data processing system |
US10713334B1 (en) | 2015-06-10 | 2020-07-14 | EMC IP Holding Company LLC | Data processing system with a scalable architecture over ethernet |
US11010054B1 (en) * | 2015-06-10 | 2021-05-18 | EMC IP Holding Company LLC | Exabyte-scale data processing system |
US10496284B1 (en) | 2015-06-10 | 2019-12-03 | EMC IP Holding Company LLC | Software-implemented flash translation layer policies in a data processing system |
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 |
GB2544452B (en) * | 2015-08-26 | 2019-09-11 | Advanced Risc Mach Ltd | Data processing systems |
US9734095B2 (en) | 2015-09-01 | 2017-08-15 | International Business Machines Corporation | Nonvolatile memory data security |
EP3246845B1 (en) | 2016-05-17 | 2018-12-05 | Inside Secure | Secure asset management system |
FR3054945B1 (fr) | 2016-08-05 | 2019-09-06 | Viaccess | Procede de lecture et de generation d'un flux video contenant des images compressees et chiffrees |
US10223292B2 (en) * | 2016-11-28 | 2019-03-05 | Microsoft Technology Licensing, Llc | Securing stream buffers |
US10848483B2 (en) * | 2016-12-08 | 2020-11-24 | Ricoh Company, Ltd. | Shared terminal, communication system, and display control method, and recording medium |
EP4089531B1 (en) | 2016-12-31 | 2024-06-26 | Intel Corporation | Systems, methods, and apparatuses for heterogeneous computing |
JP2018181162A (ja) * | 2017-04-19 | 2018-11-15 | 富士通株式会社 | 情報処理装置、情報処理方法、及び情報処理システム |
FR3065607B1 (fr) | 2017-04-20 | 2019-06-14 | Viaccess | Procede de lecture d'un flux video |
US10614356B2 (en) * | 2017-04-24 | 2020-04-07 | International Business Machines Corporation | Local multicast in single-host multi-GPU machine for distributed deep learning systems |
US10824467B2 (en) * | 2018-08-07 | 2020-11-03 | Arm Limited | Data processing system with protected mode of operation for processing protected content |
US10534730B1 (en) * | 2018-12-20 | 2020-01-14 | Ati Technologies Ulc | Storing microcode for a virtual function in a trusted memory region |
US11347869B2 (en) | 2019-03-08 | 2022-05-31 | International Business Machines Corporation | Secure interface control high-level page management |
US11403409B2 (en) * | 2019-03-08 | 2022-08-02 | International Business Machines Corporation | Program interruptions for page importing/exporting |
US11206128B2 (en) | 2019-03-08 | 2021-12-21 | International Business Machines Corporation | Secure paging with page change detection |
KR20210125330A (ko) * | 2020-04-08 | 2021-10-18 | 삼성전자주식회사 | 보안 데이터 처리 방법 및 이를 지원하는 전자 장치 |
JP7164267B2 (ja) * | 2020-12-07 | 2022-11-01 | インテル・コーポレーション | ヘテロジニアスコンピューティングのためのシステム、方法及び装置 |
IL280027B1 (en) * | 2021-01-07 | 2024-09-01 | Sec Labs Ltd High | A device for improved secure mediation between console peripherals and host computers |
KR102346900B1 (ko) * | 2021-08-05 | 2022-01-04 | 주식회사 애자일소다 | 픽 앤 플레이스 시스템을 위한 심층 강화학습 장치 및 방법 |
FR3129505B1 (fr) * | 2021-11-25 | 2023-11-24 | Stmicroelectronics Grand Ouest Sas | Procédé d’exécution d’un programme logiciel par une unité de traitement comprenant une phase de compilation. |
US20240111688A1 (en) * | 2022-09-30 | 2024-04-04 | Advanced Micro Devices, Inc. | Memory access engine |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080091930A1 (en) * | 2006-10-13 | 2008-04-17 | Texas Instruments Incorporated | Security measures for preventing attacks that use test mechanisms |
US20090150631A1 (en) * | 2007-12-06 | 2009-06-11 | Clifton Labs, Inc. | Self-protecting storage device |
CN101802774A (zh) * | 2007-09-20 | 2010-08-11 | 苹果公司 | 在图形源之间切换以便于实现功率管理和/或安全性 |
CN102567662A (zh) * | 2010-10-21 | 2012-07-11 | Arm有限公司 | 对于显示在非安全域中的主题图像的安全性设置 |
WO2012154996A1 (en) * | 2011-05-10 | 2012-11-15 | Qualcomm Incorporated | Apparatus and method for hardware-based secure data processing using buffer memory address range rules |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4184201A (en) * | 1978-04-26 | 1980-01-15 | Sperry Rand Corporation | Integrating processor element |
US6986052B1 (en) * | 2000-06-30 | 2006-01-10 | Intel Corporation | Method and apparatus for secure execution using a secure memory partition |
US7055038B2 (en) | 2001-05-07 | 2006-05-30 | Ati International Srl | Method and apparatus for maintaining secure and nonsecure data in a shared memory system |
US7065651B2 (en) | 2002-01-16 | 2006-06-20 | Microsoft Corporation | Secure video card methods and systems |
EP1495401B1 (en) * | 2002-04-18 | 2007-01-24 | Advanced Micro Devices, Inc. | Initialization of a computer system including a secure execution mode-capable processor |
KR20040000348A (ko) * | 2002-06-24 | 2004-01-03 | 마이크로소프트 코포레이션 | 비디오 카드 출력을 보호하기 위한 시스템 및 방법 |
GB2402785B (en) * | 2002-11-18 | 2005-12-07 | Advanced Risc Mach Ltd | Processor switching between secure and non-secure modes |
US7474312B1 (en) * | 2002-11-25 | 2009-01-06 | Nvidia Corporation | Memory redirect primitive for a secure graphics processing unit |
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 |
US7782329B2 (en) * | 2004-12-10 | 2010-08-24 | Rockwell Collins, Inc. | Method and apparatus for protected graphics generation |
GB0427973D0 (en) * | 2004-12-21 | 2005-01-26 | Falanx Microsystems As | Microprocessor systems |
CN1984298B (zh) * | 2005-12-14 | 2010-05-19 | 辉达公司 | 芯片组安全卸载引擎 |
US7610464B2 (en) * | 2006-02-22 | 2009-10-27 | Sony Computer Entertainment Inc. | Methods and apparatus for providing independent logical address space and access management |
US8478959B1 (en) * | 2007-11-13 | 2013-07-02 | Nvidia Corporation | Method and system for protecting content in graphics memory |
US8156565B2 (en) * | 2008-04-28 | 2012-04-10 | Microsoft Corporation | Hardware-based protection of secure data |
US8393008B2 (en) | 2008-05-21 | 2013-03-05 | Microsoft Corporation | Hardware-based output protection of multiple video streams |
US8243088B2 (en) * | 2009-02-26 | 2012-08-14 | Presagis | Two dimensional memory access controller |
WO2011074168A1 (ja) * | 2009-12-14 | 2011-06-23 | パナソニック株式会社 | 情報処理装置 |
US8296538B2 (en) * | 2010-02-17 | 2012-10-23 | Arm Limited | Storing secure mode page table data in secure and non-secure regions of memory |
JP5485055B2 (ja) | 2010-07-16 | 2014-05-07 | パナソニック株式会社 | 共有メモリシステム及びその制御方法 |
GB2482700A (en) * | 2010-08-11 | 2012-02-15 | Advanced Risc Mach Ltd | Memory access control |
US9086989B2 (en) * | 2011-07-01 | 2015-07-21 | Synopsys, Inc. | Extending processor MMU for shared address spaces |
US20130166922A1 (en) * | 2011-12-23 | 2013-06-27 | Ati Technologies Ulc | Method and system for frame buffer protection |
-
2013
- 2013-02-18 US US13/769,687 patent/US8931108B2/en active Active
- 2013-03-19 KR KR1020157025119A patent/KR101649089B1/ko active IP Right Grant
- 2013-03-19 JP JP2015557988A patent/JP5917784B1/ja active Active
- 2013-03-19 EP EP13713702.2A patent/EP2956881B1/en active Active
- 2013-03-19 WO PCT/US2013/032984 patent/WO2014126597A1/en active Application Filing
- 2013-03-19 CN CN201380072797.XA patent/CN104981811B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080091930A1 (en) * | 2006-10-13 | 2008-04-17 | Texas Instruments Incorporated | Security measures for preventing attacks that use test mechanisms |
CN101802774A (zh) * | 2007-09-20 | 2010-08-11 | 苹果公司 | 在图形源之间切换以便于实现功率管理和/或安全性 |
US20090150631A1 (en) * | 2007-12-06 | 2009-06-11 | Clifton Labs, Inc. | Self-protecting storage device |
CN102567662A (zh) * | 2010-10-21 | 2012-07-11 | Arm有限公司 | 对于显示在非安全域中的主题图像的安全性设置 |
WO2012154996A1 (en) * | 2011-05-10 | 2012-11-15 | Qualcomm Incorporated | Apparatus and method for hardware-based secure data processing using buffer memory address range rules |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230222010A1 (en) * | 2022-01-10 | 2023-07-13 | Nvidia Corporation | Application programming interface to indicate execution of graph nodes |
Also Published As
Publication number | Publication date |
---|---|
JP2016516224A (ja) | 2016-06-02 |
WO2014126597A1 (en) | 2014-08-21 |
CN104981811B (zh) | 2017-09-29 |
US20140237609A1 (en) | 2014-08-21 |
EP2956881B1 (en) | 2017-03-08 |
EP2956881A1 (en) | 2015-12-23 |
JP5917784B1 (ja) | 2016-05-18 |
US8931108B2 (en) | 2015-01-06 |
KR101649089B1 (ko) | 2016-08-17 |
KR20150119278A (ko) | 2015-10-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104981811A (zh) | 用于图形处理单元的硬件强制内容保护 | |
CN107851139B (zh) | 用于图形处理单元的硬件强制内容保护 | |
CN104662583B (zh) | 用于避免页面错误的gpu存储缓冲器预提取和预备份信令 | |
EP3332346B1 (en) | Hardware enforced content protection for graphics processing units | |
CN105518742B (zh) | 用于图形处理的任意控制点处的容错抢占机制 | |
CN108701366B (zh) | 用于图形处理中的阴影光线的树遍历的开始节点确定的方法、设备及可读存储媒体 | |
US8274518B2 (en) | Systems and methods for virtualizing graphics subsystems | |
US20170004647A1 (en) | Rendering graphics data on demand | |
CN108027957A (zh) | 用于上下文切换的上下文信息的高效保存和恢复 | |
CN105556487A (zh) | 对页驻留的条件性页错误控制 | |
CN104823220A (zh) | 用于图形处理的图形存储器加载掩模 | |
US9779471B2 (en) | Transparent pixel format converter |
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 |