CN106605243A - 由无特权应用进行的图形工作量提交 - Google Patents

由无特权应用进行的图形工作量提交 Download PDF

Info

Publication number
CN106605243A
CN106605243A CN201580027664.XA CN201580027664A CN106605243A CN 106605243 A CN106605243 A CN 106605243A CN 201580027664 A CN201580027664 A CN 201580027664A CN 106605243 A CN106605243 A CN 106605243A
Authority
CN
China
Prior art keywords
orders
workload
submitted
controller
transfer
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.)
Pending
Application number
CN201580027664.XA
Other languages
English (en)
Inventor
M·拉马多斯
N·R·彭卢鲁
J·S·弗里泽尔
A·N·沙
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of CN106605243A publication Critical patent/CN106605243A/zh
Pending legal-status Critical Current

Links

Classifications

    • 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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/509Offload
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/28Indexing scheme for image data processing or generation, in general involving image processing hardware
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Controls And Circuits For Display Device (AREA)
  • User Interface Of Digital Computer (AREA)
  • Power Sources (AREA)
  • Advance Control (AREA)

Abstract

方法和***可以提供:在控制器处接收由缺乏***级别特权的应用进行的工作量提交的通知。此外,所述控制器可以用于调度工作量提交到图形硬件组件的转移以用于执行,其中所述控制器具有***级别特权。在一个示例中,所述转移绕过操作***和与图形硬件组件相关联的内核模式驱动器。

Description

由无特权应用进行的图形工作量提交
相关申请的交叉引用
本申请要求于2014年6月26日提交的美国非临时专利申请No. 14/315,626的优先权权益。
背景技术
图形相关应用(诸如例如三维(3D)渲染和媒体播放器应用)可能不具有提供对图形处理单元(GPU)资源的直接访问的特权。相应地,驻留在相对无特权“Ring 3(环3)”保护级别(例如缺乏***级别特权)处的给定图形应用可能加载图形用户模式驱动器(UMD),其进而将工作量提交到驻留在“Ring 0(环0)”保护级别(例如具有***级别特权)处的操作***(OS)和/或内核模式驱动器(KMD)。OS可能例如管理存储器操作,诸如分页,并且KMD可能例如利用与所提交的工作量相对应的命令填充GPU命令缓冲器和硬件寄存器,其中GPU可以使用该命令来执行工作量。由OS和KMD对工作量的中间处理可能增加中央处理单元(CPU)开销并增多处理等待时间,其可能对性能、功率消耗和/或电池寿命具有负面影响。
附图说明
实施例的各种优点将通过阅读以下说明书和随附权利要求且通过参考以下附图而对本领域技术人员来说变得明显,在附图中:
图1是根据实施例的图形工作量提交环境的示例的框图;
图2是根据实施例的基于队列的图形工作量提交架构的示例的框图;
图3A、3B和3C分别是根据实施例的对应用、存储器设备和控制器进行操作的方法的示例的流程图;
图4是根据实施例的控制器的示例的框图;
图5是根据实施例的***的示例的框图;
图6是根据实施例的具有导航控制器的***的示例的框图;以及
图7是根据实施例的具有小形状因子的***的示例的框图。
具体实施方式
图1示出了下述环境:其中,在无特权保护级别(例如,Ring 3保护级别)处操作的各种应用10(10a-10d)经由显示器或其他合适设备(未示出)生成与图像、视频、图形、数据和/或其他信息的视觉输出相关联的工作量。例如,第一应用10a(“应用#1”)可能包括显示三维(3D)场景的视频游戏,第二应用10b(“应用#2”)可以包括提供电影和/或视频剪辑的回放的媒体播放器,第三应用10c(“应用#3”)可能包括对在线内容进行流送的网页浏览器,第四应用10d(“应用#4”)可以包括显示消息传递内容的电子邮件程序,等等。
在所图示的示例中,应用10加载各种类型的图形用户模式驱动器(UMD)14(14a-14d)和/或其他中间件来促进工作量提交。例如,第一和第二UMD 14a、14b可能是特定类型(“类型A”,例如Microsoft公司的注册商标DIRECTX)的,第三UMD 14c可以是另一个类型(“类型B”,例如Silicon Graphics公司的注册商标OPENGL)的,第四UMD 14d可能是又一个类型(“类型C”,例如Khronos Group的标志Open Computing Language/OPENCL)的,等等。所图示的UMD 14将与其相应内容的渲染相关联的图形工作量提交到控制器12(例如微控制器、嵌入式控制器)。控制器12可以驻留在有特权保护级别处(例如,控制器能够访问硬件资源(诸如GPU中的寄存器))且具有将工作量直接提交到图形硬件(HW)16(诸如例如图形处理器、管线、寄存器、命令缓冲器、队列、显示器等等)的权力。
要特别注意的是,所图示的工作量提交转移绕过了操作***(OS)模块18(例如,与主机处理器(未示出)相关联和/或在主机处理器上运行)以及与图形硬件16相关联和/或在图形硬件16上运行的图形内核模式驱动器(KMD)20。通过将图形调度从OS模块18和KMD 20卸载到控制器12,所图示的可以减少等待时间,减小主机处理器开销,改进性能,降低功率消耗,延长电池寿命等等。
现在转到图2,示出了基于队列的图形工作量提交架构。在所图示的示例中,缺乏***级别特权的第一应用22(“应用A”)生成涉及例如3D内容(诸如红(R)基元)的渲染的第一工作量24(“图形工作#A1”)并(例如经由UMD(未示出))将第一工作量24提交到与第一应用22相关联的工作队列28(例如循环缓冲器)。在将第一工作量24的提交(“提交#A1”)放置在工作队列28中时,第一应用22可以通过例如写入到高速缓存线或与第一应用22相关联的其他地址/存储器位置来触发门铃30。监视器32(例如,运行在存储器设备(未示出)中的中断处理程序或探听模块)可以检测门铃30的触发,基于门铃地址来识别第一应用22,以及将由第一应用22进行的工作量提交的通知直接发布给具有***级别特权的控制器34。在一个示例中,该通知是中断。
已经讨论的控制器34(其可以类似于控制器12(图1))可以执行下述固件指令(例如,由运行在主机处理器上的驱动器加载、从内部非易失性存储器/NVM加载等):从监视器32接收工作量提交的通知,从工作队列28检索工作量提交以及调度工作量提交到图形硬件36的组件的转移以用于执行。如已经注意到的,工作量提交的转移可以绕过OS和/或KMD(未示出)以便减小主机处理器开销且减少图形提交时间。更特别地,控制器34可以解析工作量提交以获得一个或多个命令,将该一个或多个命令添加到图形硬件36中的提交队列38,并基于图形提交策略(例如定时器到期、工作完成事件)将该一个或多个命令从提交队列38转移到图形硬件36的其他组件。
因此,该命令可以被直接从提交队列38转移到组件,诸如例如图形管线组件(例如命令流送器、顶点处理、栅格化/Z缓冲、媒体采样器、纹理采样器、媒体像素操作/Ops、像素操作/Ops)、执行单元组件40、媒体处理组件42、多格式编解码器组件44、显示组件46等等。此外,解析工作量提交可以涉及例如修改、添加和/或按优先顺序排列命令、检查命令以及确保不可信用户模式应用不可以提交有特权的命令到硬件(例如丢弃非法命令)等等。
类似地,缺乏***级别特权的第二应用48(“应用B”)可以生成第二工作量50(“图形工作#B1”),其涉及例如媒体内容的重放。所图示的第二应用48(例如经由UMD(未示出))将第二工作量50提交到与第二应用48相关联的工作队列52(例如循环缓冲区)。在将第二工作量50的提交(“提交#B1”)放置在工作队列52中时,第二应用48可以通过例如写入到高速缓存线或与第二应用48相关联的其他地址/存储器位置来触发门铃54。监视器32可以检测门铃54的触发,基于门铃地址来识别第二应用48,以及将由第二应用48进行的工作量提交的通知(例如DPC、中断)直接发布给具有***级别特权的控制器34。在不涉及OS模块或KMD的情况下,控制器34可以调度工作量提交到图形硬件36的一个或多个组件的转移。由第一应用22生成的第三工作量26可以以绕过OS和KMD的方式类似地加以处理。控制器34可以被并入图形硬件36内或在图形硬件36外部实现。
图3A、3B和3C分别示出了对应用、存储器设备和控制器进行操作的方法56、58和60。方法56、58和60可以被实现为:可执行软件中的模块,作为存储在存储器(诸如随机存取存储器(RAM)、只读存储器(ROM)、可编程ROM(PROM)、固件、闪速存储器等)的机器可读或计算机可读存储介质中的逻辑指令的集合;可配置逻辑(诸如例如可编程逻辑阵列(PLA)、现场可编程门阵列(FPGA)、复杂可编程逻辑器件(CPLD))中的模块;使用电路技术(诸如例如专用集成电路(ASIC)、互补金属氧化物半导体(CMOS)或晶体管-晶体管逻辑(TTL)技术)的固定功能逻辑硬件中的模块;或者其任何组合。
具体参考图3A,方法56可能被并入到应用(诸如例如应用10(图1)、第一应用22(图2)、第二应用48(图2)等等中的一个或多个)中。所图示的处理框62提供了创建图形工作量,其中在框64处可以将该图形工作量提交到工作队列。框66可以写入到或以其他方式触发被分配给应用的门铃以就图形工作量的可用性向***报警。
具体参考图3B,方法58可以被并入到存储器设备监视器(诸如例如已经讨论的监视器32(图2))中。在所图示的示例中,框68检测门铃触发器(诸如高速缓存线写入),并且在框70处识别与门铃相关联的应用。该应用可能缺乏***级别特权。所图示的框72将由所识别的应用进行的工作量提交的通知直接发布给具有***级别特权的控制器。
具体参考图3C,方法60可以被并入到控制器(诸如例如控制器12(图1)、控制器34(图2)等等)中。所图示的处理框74提供了接收由缺乏***级别特权的应用进行的工作量提交的通知(例如DPC、中断)。一般地,具有***级别特权的控制器可以用于将工作量提交转移到图形硬件组件以用于执行。更特别地,在框76处可以从与应用相关联的工作队列检索工作量提交,其中在框78处可以解析该工作量提交以获得一个或多个命令。框78可以包括例如修改该一个或多个命令中的至少一个、添加至少一个命令到该一个或多个命令、按优先顺序排列该一个或多个命令等或其任何组合。此外,在框80处可以将该一个或多个命令添加到与图形硬件组件相关联的提交队列。在框82处可以根据图形提交策略(例如定时器到期、工作完成事件)将该一个或多个命令从提交队列转移到图形硬件组件。
图4示出了可被配置成管理图形工作量的控制器84。控制器84可以容易地代替控制器12(图1)和/或控制器34(图2),且可以实现方法60(图3C)的一个或多个方面。在所图示的示例中,通知模块86接收由缺乏***级别特权的应用进行的工作量提交的通知(例如中断),并且调度器88(88a-88d)可以调度工作量提交到一个或多个图形硬件组件的转移以用于执行。调度器88和/或控制器84可以具有***级别特权。如已经注意到的,工作量提交的转移可以绕过与图形硬件组件相关联的OS以及KMD。
在一个示例中,调度器88包括:检索组件88a,从与应用相关联的工作队列检索工作量提交;以及解析器88b,解析工作量提交以获得命令。解析器88b可以例如修改命令、添加命令、按优先顺序排列命令等等。调度器88还可以包括:入队组件88c,将命令添加到与一个或多个图形硬件组件相关联的提交队列;以及离队组件88d,根据图形提交策略将命令从提交队列转移到一个或多个图形硬件组件。图形提交策略可以涉及例如确定定时器是否已经到期、确定工作完成事件是否已经发生等等。此外,操作通知模块86和/或调度器88的固件/代码和必要数据结构可以被存储在内部静态随机存取存储器(SRAM)90或其他合适存储器中,以最小化对***存储器等待时间的影响。控制器84还可以包括定时器91、存储器映射的输入/输出(MMIO)93、页面表95等等来促进图形工作量管理操作。
现在转到图5,示出了计算***92,其中***92可以是移动平台(诸如膝上型电脑、移动互联网设备(MID)、个人数字助理(PDA)、媒体播放器、成像设备、可穿戴计算机等)、任何智能设备(诸如智能电话、智能平板、智能TV(电视)等等)或其任何组合的一部分。***92还可以是固定平台(诸如个人计算机(PC)、服务器、工作站等)的一部分。所图示的***92包括中央处理单元(CPU,例如主机处理器)94,其具有提供对***存储器98的访问的集成存储器控制器(iMC)96,***存储器98可以包括例如双数据速率(DDR)同步动态随机存取存储器(SDRAM,例如DDR3 SDRAM JEDEC标准JESD79- 3C,2008年4月)模块。***存储器98的模块可以被并入到例如单列直插存储器模块(SIMM)、双列直插存储器模块(DIMM)、小型DIMM(SODIMM)等等。
CPU 94还可以具有由缺乏***级别特权的一个或多个执行应用102加载的一个或多个用户模式驱动器(UMD)100以及一个或多个处理器核(未示出),其中每个核可以是全功能的,具有指令取单元、指令解码器、一级(L1)高速缓存、执行单元等等。在一个示例中,应用102和/或UMD 100被配置成创建图形工作量,将图形工作量提交到工作队列并写入到/触发相关联的门铃。CPU 94可以可替换地经由使***92中的组件中的每一个互连的前侧总线或点对点结构来与iMC 96的芯片外变型(也称为北桥)进行通信。在一个示例中,iMC 96包括监视器,诸如例如:监视器32(图2),被配置成检测门铃触发,识别与门铃触发相关联的应用以及将由所识别的应用进行的工作量提交的通知直接发布给具有***级别特权的控制器84。CPU 94还可以执行操作***(OS)104。
所图示的CPU 94经由总线来与输入/输出(IO)模块106(也称为南桥)进行通信。iMC 96/CPU 94和IO模块106有时被称为芯片集。CPU 94还可以通过IO模块106和各种其他控制器108经由网络端口而操作地连接到网络(未示出)。因此,其他控制器108可以出于诸如有线通信或无线通信之类的多种多样的目的而提供平台外的通信功能,该无线通信包括但不限于蜂窝电话(例如宽带码分多址、W-CDMA(通用移动电信***/UMTS)、CDMA2000(IS-856/IS-2000)等)、Wi-Fi(无线保真,例如电气与电子工程师协会/IEEE 802.11,2007版)、蓝牙(例如,IEEE 802.15.1-2005,无线个域网)、WiMax(例如IEEE 802.16-2004)、全球定位***(GPS)、扩频(例如900MHz)以及其他射频(RF)电话目的。IO模块106还可以与显示器110进行通信以提供视频、图像和其他内容的视觉输出/呈现。其他控制器108还可以与IO模块106进行通信以提供针对用户接口设备(未示出)(诸如键盘、鼠标等)的支持,以便允许用户与***92交互并感知来自***92的信息。
IO模块106还可以具有内部控制器(未示出),诸如USB(通用串行总线,例如USB规范2.0,USB实现者论坛)控制器、串行ATA(SATA,例如SATA Rev. 3.0规范,2009年5月27日,SATA国际组织/SATA-IO)控制器、高清晰度音频控制器、以及其他控制器。所图示的IO模块106还耦合到存储装置,该存储装置可以包括硬盘驱动器112、只读存储器(ROM)、光盘、闪速存储器(未示出)等。
所图示的***92还包括专用的图形处理单元(GPU,图形处理器)114,其耦合到专用图形存储器116。专用图形存储器116可以包括例如GDDR(图形DDR)或DDR SDRAM模块、或者适合于支持图形渲染的任何其他存储器技术。GPU 114和图形存储器116可能被安装在图形/视频卡上,其中GPU 114可以经由图形总线118(诸如PCI高速图形(PEG, PCI ExpressGraphics,例如,***组件互连/PCI高速x16图形150W-ATX规范1.0,PCI特别兴趣组)总线或加速图形端口(例如,AGP V3.0接口规范,2002年9月)总线)来与CPU 94进行通信。图形卡和/或GPU 114可以集成到***母板上,集成到主CPU 94管芯中(例如在集成的GPU/iGPU配置中),被配置为母板上的分立卡,等等。CPU 94还可以执行内核模式驱动器(KMD)120,并且GPU 114可以包括存储指令和其他数据的内部高速缓存124和图形管线122。
可替换地,GPU 114可能缺乏专用图形存储器,且取而代之与CPU 94共享***存储器98。这样的配置可能用于集成的图形架构,其中GPU 114和CPU 94是相同管芯的一部分(例如,且通过适当接口而连接)。
所图示的GPU 114还包括:控制器84,其可以被配置成接收工作量提交的通知并调度工作量提交到图形硬件组件(诸如例如图形管线122)的转移。该转移可以绕过OS 104以及KMD 120。此外,尽管控制器84被图示为驻留在GPU 114上,但控制器84可以可替换地位于***92中的别处,诸如例如在CPU 94上或在另一个芯片上。
图6图示了***700的实施例。在实施例中,***700可以是媒体***,尽管***700不限于该上下文。例如,***700可以被并入到个人计算机(PC)、膝上型计算机、超级膝上型计算机、平板、触摸板、便携式计算机、手持计算机、掌上计算机、个人数字助理(PDA)、蜂窝电话、组合蜂窝电话/PDA、电视、智能设备(例如,智能电话、智能平板或智能电视)、移动互联网设备(MID)、消息传递设备、数据通信设备等等。
在实施例中,***700包括耦合到呈现视觉内容的显示器720的平台702。平台702可以从诸如(一个或多个)内容服务设备730或(一个或多个)内容递送设备740之类的内容设备或者其他类似内容源接收视频比特流内容。包括一个或多个导航特征的导航控制器750可以用于与例如平台702和/或显示器720交互。这些组件中的每一个在下文中被更详细描述。
在实施例中,平台702可以包括芯片集705、处理器710、存储器712、存储装置714、图形子***715、应用716和/或无线电装置718(例如,网络控制器)的任何组合。芯片集705可以提供处理器710、存储器712、存储装置714、图形子***715、应用716和/或无线电装置718之间的相互通信。例如,芯片集705可以包括能够提供与存储装置714的相互通信的存储适配器(未描绘)。
处理器710可以被实现为复杂指令集计算机(CISC)或精简指令集计算机(RISC)处理器、x86指令集兼容处理器、多核或任何其他微处理器或中央处理单元(CPU)。在实施例中,处理器710可以包括(一个或多个)双核处理器、(一个或多个)双核移动处理器等等。
存储器712可以被实现为易失性存储器设备,诸如但不限于随机存取存储器(RAM)、动态随机存取存储器(DRAM)或静态RAM(SRAM)。
存储装置714可以被实现为非易失性存储设备,诸如但不限于磁盘驱动器、光盘驱动器、带驱动器、内部存储设备、附连存储设备、闪速存储器、电池备份SDRAM(同步DRAM)和/或网络可访问存储设备。在实施例中,存储装置714可以包括例如在包括多个硬盘驱动器时增加用于有价值的数字媒体的存储性能增强保护的技术。
图形子***715可以执行诸如静止或视频之类的图像的处理以用于显示。图形子***715可以是例如图形处理单元(GPU)或视觉处理单元(VPU)。图形子***715因此可以包括已经讨论的GPU 114(图5)。此外,处理器710可以被配置成包括已经讨论的CPU 94(图5)。模拟或数字接口可以被用于通信耦合图形子***715和显示器720。例如,接口可以是高清晰度多媒体接口(HDMI)、MIPI(移动行业处理器接口)、WiGIG(无线吉比特联盟)、显示端口、无线HDMI和/或无线HD兼容技术中的任一个。图形子***715可以集成到处理器710或芯片集705中。图形子***715可以是通信耦合到芯片集705的独立卡。
本文描述的图形和/或视频处理技术可以被实现在各种硬件架构中。例如,图形和/或视频功能可以集成在芯片集内。可替换地,可以使用分立的图形和/或视频处理器。作为又一个实施例,图形和/或视频功能可以由通用处理器实现,该通用处理器包括多核处理器。在另外的实施例中,功能可以被实现在消费者电子设备中。
无线电装置718可以是网络控制器,其包括能够使用各种合适无线通信技术发射和接收信号的一个或多个无线电装置。这样的技术可以涉及跨一个或多个无线网络的通信。示例性无线网络包括(但不限于)无线局域网(WLAN)、无线个域网(WPAN)、无线城域网(WMAN)、蜂窝网络和卫星网络。在跨这样的网络的通信中,无线电装置718可以根据任何版本中的一个或多个适用的标准来进行操作。
在实施例中,显示器720可以包括任何电视类型的监视器或显示器。显示器720可以包括例如计算机显示屏、触摸屏显示器、视频监视器、电视类设备和/或电视。显示器720可以是数字的和/或模拟的。在实施例中,显示器720可以是全息显示器。而且,显示器720可以是可接收视觉投影的透明表面。这样的投影可以传达各种形式的信息、图像和/或对象。例如,这样的投影可以是用于移动增强现实(MAR)应用的视觉覆盖。在一个或多个软件应用716的控制之下,平台702可以在显示器720上显示用户界面722。
在实施例中,(一个或多个)内容服务设备730可以由任何全国、国际和/或独立服务托管且因而对平台702来说经由例如互联网可访问。(一个或多个)内容服务设备730可以耦合到平台702和/或显示器720。平台702和/或(一个或多个)内容服务设备730可以耦合到网络760以向网络760且从网络760传送(例如,发送和/或接收)媒体信息。(一个或多个)内容递送设备740也可以耦合到平台702和/或显示器720。
在实施例中,(一个或多个)内容服务设备730可以包括有线电视盒、个人计算机、网络、电话、能够递送数字信息和/或内容的互联网启用的设备或器具、以及能够单向地或双向地经由网络760或直接地在内容提供商和平台702和/显示器720之间传送内容的任何其他类似设备。将领会到,内容可以经由网络760而向内容提供商和***700中的任何一个组件且从内容提供商和***700中的任何一个组件单向地和/或双向地传送。内容的示例可以包括任何媒体信息,其包括例如视频、音乐、医疗和游戏信息等等。
(一个或多个)内容服务设备730接收内容,诸如有线电视节目编排,包括媒体信息、数字信息和/或其他内容。内容提供商的示例可以包括任何有线或***或无线电或互联网内容提供商。所提供的示例不意在限制实施例。
在实施例中,平台702可以从具有一个或多个导航特征的导航控制器750接收控制信号。控制器750的导航特征可以用于例如与用户界面722交互。在实施例中,导航控制器750可以是指点设备,其可以为允许用户将空间(例如,连续和多维)数据输入到计算机中的计算机硬件组件(具体地,人机接口设备)。许多***(诸如图形用户界面(GUI),以及电视和监视器)允许用户使用身体手势来控制数据并将数据提供给计算机或电视。
控制器750的导航特征的移动可以通过指针、光标、聚焦环或者在显示器上显示的其他视觉指示符的移动而在显示器(例如显示器720)上回波。例如,在软件应用716的控制之下,位于导航控制器750上的导航特征可以被映射到例如在用户界面722上显示的虚拟导航特征。在实施例中,控制器750可以不是分离的组件,而是集成到平台702和/或显示器720中。然而,实施例不限于这些元素或者不被限制在本文描述或示出的上下文中。
在实施例中,驱动器(未示出)可以包括使得用户能够在初始启动之后、例如在被启用时利用按钮的触摸来即时开启和关闭平台702(像电视)的技术。程序逻辑可以允许平台702在平台被“关闭”时将内容流送给媒体适配器或(一个或多个)其他内容服务设备730或(一个或多个)内容递送设备740。此外,芯片集705可以包括用于例如5.1环绕声音频和/或高清晰度7.1环绕声音频的硬件和/或软件支持。驱动器可以包括用于集成图形平台的图形驱动器。在实施例中,图形驱动器可以包括***组件互连(PCT)高速图形卡。
在各种实施例中,在***700中示出的组件中的任何一个或多个可以被集成。例如,平台702和(一个或多个)内容服务设备730可以被集成,或者平台702和(一个或多个)内容递送设备740可以被集成,或者例如平台702、(一个或多个)内容服务设备730和(一个或多个)内容递送设备740可以被集成。在各种实施例中,平台702和显示器720可以是集成单元。显示器720和(一个或多个)内容服务设备730可以被集成,或者例如显示器720和(一个或多个)内容递送设备740可以被集成。这些示例不意在限制实施例。
在各种实施例中,***700可以被实现为无线***、有线***或二者的组合。当被实现为无线***时,***700可以包括适合于通过无线共享介质进行通信的组件和接口,诸如一个或多个天线、发射器、接收器、收发器、放大器、滤波器、控制逻辑等等。无线共享介质的示例可以包括无线频谱的部分,诸如RF频谱等等。当被实现为有线***时,***700可以包括适合于通过有线通信介质进行通信的组件和接口,诸如输入/输出(I/O)适配器、将I/O适配器与对应有线通信介质相连接的物理连接器、网络接口卡(NIC)、盘控制器、视频控制器、音频控制器等等。有线通信介质的示例可以包括导线、线缆、金属引线、印刷电路板(PCB)、底板、开关结构、半导体材料、双绞线、同轴线缆、光纤等等。
平台702可以建立一个或多个逻辑或物理信道以传送信息。该信息可以包括媒体信息和控制信息。媒体信息可以指代表示意在用于用户的内容的任何数据。内容的示例可以包括例如来自语音对话、视频会议、流送视频、电子邮件(“电邮”)消息、语音邮件消息、字母数字符号、图形、图像、视频、文本等等的数据。来自语音对话的数据可以是例如话音信息、沉默时段、背景噪声、舒适噪声、音调等等。控制信息可以指代表示意在用于自动化***的命令、指令或控制字的任何数据。例如,控制信息可以用于使媒体信息路由通过***,或者指示节点以预定方式处理媒体信息。然而,实施例不限于这些元素或者不被限制在图6中示出或描述的上下文中。
如上文所述,***700可以以变化的物理样式或形状因子体现。图7图示了其中可以体现***700的小形状因子设备800的实施例。在实施例中,例如,设备800可以被实现为具有无线能力的移动计算设备。移动计算设备可以指代具有处理***和移动电源或电力供给(诸如例如一个或多个电池)的任何设备。
如上文所述,移动计算设备的示例可以包括个人计算机(PC)、膝上型计算机、超级膝上型计算机、平板、触摸板、便携式计算机、手持计算机、掌上计算机、个人数字助理(PDA)、蜂窝电话、组合蜂窝电话/PDA、电视、智能设备(例如,智能电话、智能平板或智能电视)、移动互联网设备(MID)、消息传递设备、数据通信设备等等。
移动计算设备的示例还可以包括被布置成由人穿戴的计算机,诸如手腕计算机、手指计算机、戒指计算机、眼镜计算机、皮带夹计算机、臂章计算机、鞋子计算机、衣物计算机以及其他可穿戴计算机。在实施例中,例如,移动计算设备可以被实现为能够执行计算机应用以及语音通信和/或数据通信的智能电话。尽管作为示例可以利用被实现为智能电话的移动计算设备来描述一些实施例,但是可以领会到,也可以使用其他无线移动计算设备实现其他实施例。实施例不被限制在该上下文中。
如图7中所示,设备800可以包括外壳802、显示器804、输入/输出(I/O)设备806和天线808。设备800还可以包括导航特征812。显示器804可以包括用于显示适于移动计算设备的信息的任何合适显示单元。I/O设备806可以包括用于将信息录入到移动计算设备中的任何合适I/O设备。I/O设备806的示例可以包括字母数字键盘、数字键盘、触摸板、输入按键、按钮、开关、摇臂开关、麦克风、扬声器、语音识别设备和软件等等。还可以通过麦克风的方式将信息录入到设备800中。这样的信息可以由语音识别设备数字化。实施例不被限制在该上下文中。
附加注释和示例:
示例1可以包括一种管理图形工作量的***,包括图形硬件组件、执行缺乏***级别特权的应用的主机处理器、发布由所述应用进行的工作量提交的通知的存储器设备、以及控制器。所述控制器可以包括:通知模块,接收工作量提交的通知;以及调度器,调度工作量提交到图形硬件组件的转移以用于执行。
示例2可以包括示例1的***,其中所述转移绕过与主机处理器相关联的操作***。
示例3可以包括示例1的***,其中所述转移绕过与图形硬件组件相关联的内核模式驱动器。
示例4可以包括示例1的***,其中所述通知是中断。
示例5可以包括示例1到4中任一项的***,其中所述调度器包括:检索组件,从与所述应用相关联的工作队列检索工作量提交;解析器,解析工作量提交以获得一个或多个命令;入队组件,将所述一个或多个命令添加到与图形硬件组件相关联的提交队列;以及离队组件,根据图形提交策略将所述一个或多个命令从提交队列转移到图形硬件组件。
示例6可以包括示例5的***,其中所述解析器修改所述一个或多个命令中的至少一个,将至少一个命令添加到所述一个或多个命令,以及按优先顺序排列所述一个或多个命令。
示例7可以包括一种操作控制器的方法,包括:在所述控制器处接收由缺乏***级别特权的应用进行的工作量提交的通知;以及使用所述控制器来调度工作量提交到图形硬件组件的转移以用于执行,其中所述控制器具有***级别特权。
示例8可以包括示例7的方法,其中所述转移绕过操作***。
示例9可以包括示例7的方法,其中所述转移绕过与图形硬件组件相关联的内核模式驱动器。
示例10可以包括示例7的方法,其中所述通知是中断。
示例11可以包括示例7到10中任一项的方法,其中使用所述控制器来调度转移包括:从与所述应用相关联的工作队列检索工作量提交;解析工作量提交以获得一个或多个命令;将所述一个或多个命令添加到与图形硬件组件相关联的提交队列;以及根据图形提交策略将所述一个或多个命令从提交队列转移到图形硬件组件。
示例12可以包括示例11的方法,其中解析工作量提交包括:修改所述一个或多个命令中的至少一个;将至少一个命令添加到所述一个或多个命令;以及按优先顺序排列所述一个或多个命令。
示例13可以包括一种管理图形工作量的控制器,包括:通知模块,接收由缺乏***级别特权的应用进行的工作量提交的通知;以及调度器,调度工作量提交到图形硬件组件的转移以用于执行,其中所述调度器具有***级别特权。
示例14可以包括示例13的控制器,其中所述转移绕过操作***。
示例15可以包括示例13的控制器,其中所述转移绕过与图形硬件组件相关联的内核模式驱动器。
示例16可以包括示例13的控制器,其中所述通知是中断。
示例17可以包括示例13到16中任一项的控制器,其中所述调度器包括:检索组件,从与所述应用相关联的工作队列检索工作量提交;解析器,解析工作量提交以获得一个或多个命令;入队组件,将所述一个或多个命令添加到与图形硬件组件相关联的提交队列;以及离队组件,根据图形提交策略将所述一个或多个命令从提交队列转移到图形硬件组件。
示例18可以包括示例17的控制器,其中所述解析器修改所述一个或多个命令中的至少一个,将至少一个命令添加到所述一个或多个命令,以及按优先顺序排列所述一个或多个命令。
示例19可以包括至少一个计算机可读存储介质,包括指令集,所述指令集在由控制器执行时使所述控制器:接收由缺乏***级别特权的应用进行的工作量提交的通知;以及调度工作量提交到图形硬件组件的转移以用于执行,其中所述控制器具有***级别特权。
示例20可以包括示例19的至少一个计算机可读存储介质,其中所述转移绕过操作***。
示例21可以包括示例19的至少一个计算机可读存储介质,其中所述转移绕过与图形硬件组件相关联的内核模式驱动器。
示例22可以包括示例19的至少一个计算机可读存储介质,其中所述通知是中断。
示例23可以包括示例19到22中任一项的至少一个计算机可读存储介质,其中指令在被执行时使所述控制器:从与所述应用相关联的工作队列检索工作量提交;解析工作量提交以获得一个或多个命令;将所述一个或多个命令添加到与图形硬件组件相关联的提交队列;以及根据图形提交策略将所述一个或多个命令从提交队列转移到图形硬件组件。
示例24可以包括示例23的至少一个计算机可读存储介质,其中指令在被执行时使所述控制器:修改所述一个或多个命令中的至少一个;将至少一个命令添加到所述一个或多个命令;以及按优先顺序排列所述一个或多个命令。
示例25可以包括一种管理图形工作量的控制器,包括用于执行示例7到12中任一项的方法的装置。
本文所描述的技术因此可以从OS和内核模式驱动器卸载GPU调度。这样的方法可以在不导致针对用户模式应用的特权升级的情况下提供低分派开销/等待时间、提前任务分配/排队选项(例如,乱序执行、基于GPU的提交/先占/重新入队)等。此外,可以支持通过传统OS/驱动器路径而提交的遗留工作量,同时保持OS需要的语义(例如,按照次序要求)和其他OS支持功能。而且,基于优先级的调度选项可以使高优先级工作能够被更早地执行,并且,可以在所有上下文(包括交错引导和OS提交)当中实现公平调度。此外,针对KMD的控制接口可以管理上下文数据的共享、稀缺硬件资源的虚拟化、涉及破坏和/或崩溃的应用的“边缘情况”的处理等。技术还可以使控制器上的固件的低执行开销能够满足分派等待时间目标并确保固件不是关于实现完全GPU利用的限制因素。确实,最少工作量解析和使用控制器内部的SRAM来存储代码和关键数据结构可以减少***存储器等待时间。
各种实施例可以使用硬件元件、软件元件或二者的组合而实现。硬件元件的示例可以包括处理器、微处理器、电路、电路元件(例如,晶体管、电阻器、电容器、电感器等等)、集成电路、专用集成电路(ASIC)、可编程逻辑器件(PLD)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、逻辑门、寄存器、半导体器件、芯片、微芯片、芯片集等等。软件的示例可以包括软件组件、程序、应用、计算机程序、应用程序、***程序、机器程序、操作***软件、中间件、固件、软件模块、例程、子例程、功能、方法、过程、软件接口、应用程序接口(API)、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号或其任何组合。确定实施例是否使用硬件元件和/或软件元件实现可以根据任何数目的因素(诸如期望的计算速率、电力水平、热耐受性、处理周期预算、输入数据速率、输出数据速率、存储器资源、数据总线速度和其他设计或性能约束)而变化。
至少一个实施例的一个或多个方面可以由存储在机器可读介质上的代表性指令实现,机器可读介质表示处理器内的各种逻辑,其在由机器读取时使机器建造执行本文描述的技术的逻辑。被称为“IP核”的这样的表示可以存储在有形机器可读介质上且被供给到各种客户或制造设施以加载到实际制作逻辑或处理器的建造机器中。
实施例适用于供所有类型的半导体集成电路(“IC”)芯片所使用。这些IC芯片的示例包括但不限于处理器、控制器、芯片集组件、可编程逻辑阵列(PLA)、存储器芯片、网络芯片等等。此外,在一些图中,以线条表示信号导体线路。一些可以是不同的以指示更多构成信号路径,具有号码标签以指示数个构成信号路径,和/或具有一个或多个末端处的箭头以指示主要信息流动方向。然而,这不应当以限制的方式被解释。相反,这样的所添加的细节可以与一个或多个示例性实施例结合使用以促进对电路的更容易理解。任何所表示的信号线路,不管是否具有附加信息,都可以实际上包括可在多个方向上行进的一个或多个信号且可以利用任何合适类型的信号方案而实现,例如,利用差分对实现的数字或模拟线路、光纤线路和/或单端线路。
可能已经给出示例尺寸/模型/值/范围,尽管实施例不限于此。随着制造技术(例如,光刻法)随时间而成熟,所预期的是,可以制造更小尺寸的设备。此外,到IC芯片和其他组件的公知电力/接地连接可以或可以不在图内示出,以为了图示和讨论的简明,并且为了不使实施例的某些方面模糊。另外,可以以框图形式示出布置以便避免使实施例模糊,并且还考虑到以下事实:关于这样的框图布置的实现的细节非常依赖于要在其内实现实施例的平台,即,这样的细节应当很好地处于本领域技术人员的眼界内。在阐述具体细节(例如,电路)以便描述示例实施例的情况下,对本领域技术人员来说应当显而易见的是,可以在没有这些具体细节的情况下或者在具有这些具体细节的变型的情况下实践实施例。描述因而应被视为说明性的而非限制性的。
一些实施例可以例如使用可存储指令或指令集的机器或有形计算机可读介质或物件而实现,该指令或指令集在由机器执行的情况下可以使机器执行根据实施例的方法和/或操作。这样的机器可以包括例如任何合适处理平台、计算平台、计算设备、处理设备、计算***、处理***、计算机、处理器等等,且可以使用硬件和/或软件的任何合适组合而实现。机器可读介质或物件可以包括例如任何合适类型的存储器单元、存储器设备、存储器物件、存储器介质、存储设备、存储物件、存储介质和/或存储单元,例如存储器、可移除或不可移除介质、可擦除或不可擦除介质、可写入或可重写介质、数字或模拟介质、硬盘、软盘、致密盘只读存储器(CD-ROM)、致密盘可记录(CD-R)、致密盘可重写(CD-RW)、光盘、磁介质、磁光介质、可移除存储器卡或盘、各种类型的数字多功能盘(DVD)、带、盒式带等等。指令可以包括任何合适类型的代码,诸如源代码、编译代码、解译代码、可执行代码、静态代码、动态代码、加密代码等等,其使用任何合适的高级、低级、面向对象、视觉、编译和/或解译编程语言而实现。
除非具体以其他方式陈述,可以领会到,诸如“处理”、“计算”、“核算”、“确定”等等之类的术语指代计算机或计算***或者类似电子计算设备的动作和/或过程,其将被表示为计算***的寄存器和/或存储器内的物理量(例如,电子的)的数据操控和/或变换成被类似地表示为计算***的存储器、寄存器或其他这样的信息存储、传送或显示设备内的物理量的其他数据。实施例不被限制在该上下文中。
术语“耦合”在本文中可以用于指代所讨论的组件之间直接或间接的任何类型的关系,且可以适用于电气、机械、流体、光学、电磁、机电或其他连接。此外,术语“第一”、“第二”等可以在本文中仅用以便于讨论,且不承载特定时间或时间顺序重要性,除非以其他方式指示。
本领域技术人员将从前面的描述领会到,实施例的宽泛技术可以以多种形式实现。因此,尽管已经结合其特定示例描述了实施例,但是实施例的真实范围不应当如此受限,因为对技术人员而言,在研究了附图、说明书和所附权利要求后,其他修改将变得显而易见。

Claims (25)

1.一种管理图形工作量的***,包括:
图形硬件组件;
主机处理器,执行缺乏***级别特权的应用;
存储器设备,发布由所述应用进行的工作量提交的通知;
控制器,包括:
通知模块,接收工作量提交的通知;以及
调度器,调度工作量提交到图形硬件组件的转移以用于执行。
2.根据权利要求1所述的***,其中所述转移绕过与主机处理器相关联的操作***。
3.根据权利要求1所述的***,其中所述转移绕过与图形硬件组件相关联的内核模式驱动器。
4.根据权利要求1所述的***,其中所述通知是中断。
5.根据权利要求1到4中任一项所述的***,其中所述调度器包括:
检索组件,从与所述应用相关联的工作队列检索工作量提交;
解析器,解析工作量提交以获得一个或多个命令;
入队组件,将所述一个或多个命令添加到与图形硬件组件相关联的提交队列;以及
离队组件,根据图形提交策略将所述一个或多个命令从提交队列转移到图形硬件组件。
6.根据权利要求5所述的***,其中所述解析器修改所述一个或多个命令中的至少一个,将至少一个命令添加到所述一个或多个命令,以及按优先顺序排列所述一个或多个命令。
7.一种操作控制器的方法,包括:
在所述控制器处接收由缺乏***级别特权的应用进行的工作量提交的通知;以及
使用所述控制器来调度工作量提交到图形硬件组件的转移以用于执行,其中所述控制器具有***级别特权。
8.根据权利要求7所述的方法,其中所述转移绕过操作***。
9.根据权利要求7所述的方法,其中所述转移绕过与图形硬件组件相关联的内核模式驱动器。
10.根据权利要求7所述的方法,其中所述通知是中断。
11.根据权利要求7到10中任一项所述的方法,其中使用所述控制器来调度转移包括:
从与所述应用相关联的工作队列检索工作量提交;
解析工作量提交以获得一个或多个命令;
将所述一个或多个命令添加到与图形硬件组件相关联的提交队列;以及
根据图形提交策略将所述一个或多个命令从提交队列转移到图形硬件组件。
12.根据权利要求11所述的方法,其中解析工作量提交包括:
修改所述一个或多个命令中的至少一个;
将至少一个命令添加到所述一个或多个命令;以及
按优先顺序排列所述一个或多个命令。
13.一种管理图形工作量的控制器,包括:
通知模块,接收由缺乏***级别特权的应用进行的工作量提交的通知;以及
调度器,调度工作量提交到图形硬件组件的转移以用于执行,其中所述调度器具有***级别特权。
14.根据权利要求13所述的控制器,其中所述转移绕过操作***。
15.根据权利要求13所述的控制器,其中所述转移绕过与图形硬件组件相关联的内核模式驱动器。
16.根据权利要求13所述的控制器,其中所述通知是中断。
17.根据权利要求13到16中任一项所述的控制器,其中所述调度器包括:
检索组件,从与所述应用相关联的工作队列检索工作量提交;
解析器,解析工作量提交以获得一个或多个命令;
入队组件,将所述一个或多个命令添加到与图形硬件组件相关联的提交队列;以及
离队组件,根据图形提交策略将所述一个或多个命令从提交队列转移到图形硬件组件。
18.根据权利要求17所述的控制器,其中所述解析器修改所述一个或多个命令中的至少一个,将至少一个命令添加到所述一个或多个命令,以及按优先顺序排列所述一个或多个命令。
19.至少一个计算机可读存储介质,包括指令集,所述指令集在由控制器执行时使所述控制器:
接收由缺乏***级别特权的应用进行的工作量提交的通知;以及
调度工作量提交到图形硬件组件的转移以用于执行,其中所述控制器具有***级别特权。
20.根据权利要求19所述的至少一个计算机可读存储介质,其中所述转移绕过操作***。
21.根据权利要求19所述的至少一个计算机可读存储介质,其中所述转移绕过与图形硬件组件相关联的内核模式驱动器。
22.根据权利要求19所述的至少一个计算机可读存储介质,其中所述通知是中断。
23.根据权利要求19到22中任一项所述的至少一个计算机可读存储介质,其中指令在被执行时使所述控制器:
从与所述应用相关联的工作队列检索工作量提交;
解析工作量提交以获得一个或多个命令;
将所述一个或多个命令添加到与图形硬件组件相关联的提交队列;以及
根据图形提交策略将所述一个或多个命令从提交队列转移到图形硬件组件。
24.根据权利要求23所述的至少一个计算机可读存储介质,其中指令在被执行时使所述控制器:
修改所述一个或多个命令中的至少一个;
将至少一个命令添加到所述一个或多个命令;以及
按优先顺序排列所述一个或多个命令。
25.一种管理图形工作量的控制器,包括:
用于在所述控制器处接收由缺乏***级别特权的应用进行的工作量提交的通知的装置;以及
用于使用所述控制器来调度工作量提交到图形硬件组件的转移以用于执行的装置,其中所述控制器具有***级别特权。
CN201580027664.XA 2014-06-26 2015-06-09 由无特权应用进行的图形工作量提交 Pending CN106605243A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/315626 2014-06-26
US14/315,626 US9773292B2 (en) 2014-06-26 2014-06-26 Graphics workload submissions by unprivileged applications
PCT/US2015/034890 WO2015199971A1 (en) 2014-06-26 2015-06-09 Graphics workload submissions by unprivileged applications

Publications (1)

Publication Number Publication Date
CN106605243A true CN106605243A (zh) 2017-04-26

Family

ID=54931074

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580027664.XA Pending CN106605243A (zh) 2014-06-26 2015-06-09 由无特权应用进行的图形工作量提交

Country Status (7)

Country Link
US (1) US9773292B2 (zh)
EP (1) EP3161759A4 (zh)
JP (1) JP6419856B2 (zh)
KR (1) KR102223446B1 (zh)
CN (1) CN106605243A (zh)
SG (1) SG11201609203VA (zh)
WO (1) WO2015199971A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10410311B2 (en) * 2016-03-07 2019-09-10 Intel Corporation Method and apparatus for efficient submission of workload to a high performance graphics sub-system
US10613972B2 (en) * 2017-12-29 2020-04-07 Intel Corporation Dynamic configuration of caches in a multi-context supported graphics processor
US10424043B1 (en) 2018-07-02 2019-09-24 Intel Corporation Efficiently enqueuing workloads from user mode to hardware across privilege domains
US11863469B2 (en) * 2020-05-06 2024-01-02 International Business Machines Corporation Utilizing coherently attached interfaces in a network stack framework

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040187122A1 (en) * 2003-02-18 2004-09-23 Microsoft Corporation Systems and methods for enhancing performance of a coprocessor
US20060146057A1 (en) * 2004-12-30 2006-07-06 Microsoft Corporation Systems and methods for virtualizing graphics subsystems
US20110210976A1 (en) * 2009-09-16 2011-09-01 Nvidia Corporation Techniques for transferring graphics data from system memory to a discrete gpu
US20140026137A1 (en) * 2012-07-18 2014-01-23 Balaji Vembu Performing scheduling operations for graphics hardware

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6070219A (en) * 1996-10-09 2000-05-30 Intel Corporation Hierarchical interrupt structure for event notification on multi-virtual circuit network interface controller
US5861893A (en) * 1997-05-27 1999-01-19 Intel Corporation System and method for graphics data concurrency and coherency
US8478907B1 (en) * 2004-10-19 2013-07-02 Broadcom Corporation Network interface device serving multiple host operating systems
US7613898B2 (en) * 2006-01-17 2009-11-03 Globalfoundries Inc. Virtualizing an IOMMU
US20090160867A1 (en) 2007-12-19 2009-06-25 Advance Micro Devices, Inc. Autonomous Context Scheduler For Graphics Processing Units
US9582919B2 (en) * 2009-10-09 2017-02-28 Microsoft Technology Licensing, Llc Automatic run-time identification of textures
US8872823B2 (en) * 2009-10-09 2014-10-28 Microsoft Corporation Automatic real-time shader modification for texture fetch instrumentation
US8086765B2 (en) * 2010-04-29 2011-12-27 Hewlett-Packard Development Company, L.P. Direct I/O device access by a virtual machine with memory managed using memory disaggregation
US9176795B2 (en) * 2010-12-13 2015-11-03 Advanced Micro Devices, Inc. Graphics processing dispatch from user mode
US9176794B2 (en) * 2010-12-13 2015-11-03 Advanced Micro Devices, Inc. Graphics compute process scheduling
US9294869B2 (en) 2013-03-13 2016-03-22 Aliphcom Methods, systems and apparatus to affect RF transmission from a non-linked wireless client
US9146785B2 (en) * 2011-09-14 2015-09-29 Microsoft Technology Licensing, Llc Application acceleration in a virtualized environment
US8578129B2 (en) * 2011-12-14 2013-11-05 Advanced Micro Devices, Inc. Infrastructure support for accelerated processing device memory paging without operating system integration
US9099051B2 (en) * 2012-03-02 2015-08-04 Ati Technologies Ulc GPU display abstraction and emulation in a virtualization system
US9979438B2 (en) 2013-06-07 2018-05-22 Apple Inc. Controlling a media device using a mobile device

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040187122A1 (en) * 2003-02-18 2004-09-23 Microsoft Corporation Systems and methods for enhancing performance of a coprocessor
US20060146057A1 (en) * 2004-12-30 2006-07-06 Microsoft Corporation Systems and methods for virtualizing graphics subsystems
US20110210976A1 (en) * 2009-09-16 2011-09-01 Nvidia Corporation Techniques for transferring graphics data from system memory to a discrete gpu
US20140026137A1 (en) * 2012-07-18 2014-01-23 Balaji Vembu Performing scheduling operations for graphics hardware

Also Published As

Publication number Publication date
US20150379662A1 (en) 2015-12-31
EP3161759A1 (en) 2017-05-03
WO2015199971A1 (en) 2015-12-30
JP6419856B2 (ja) 2018-11-07
US9773292B2 (en) 2017-09-26
SG11201609203VA (en) 2016-12-29
KR102223446B1 (ko) 2021-03-04
EP3161759A4 (en) 2018-03-21
KR20160148638A (ko) 2016-12-26
JP2017526998A (ja) 2017-09-14

Similar Documents

Publication Publication Date Title
CN105184113B (zh) 用于实现安全视频输出路径的硬件辅助虚拟化
CN104380258B (zh) 对图形硬件实施调度操作
CN105264513B (zh) 用于过程返回地址验证的***和方法
CN104050416A (zh) 显示表面的安全绘制
CN104583933A (zh) Gpu和fpga组件之间的直接通信
US7900078B1 (en) Asynchronous conversion circuitry apparatus, systems, and methods
CN104346224B (zh) 使用组页面错误描述符来处理上下文切换和进程终止
EP2765530A1 (en) Securing display output data against malicious software attacks
JP6374038B2 (ja) ドローコールにわたる共有リソースデータコヒーレンシを確実にするための効率的なハードウェアメカニズム
US10089264B2 (en) Callback interrupt handling for multi-threaded applications in computing environments
CN104951358A (zh) 基于优先级的上下文抢占
CN107003965A (zh) 向用户级应用传递中断
CN104781845B (zh) 处理视频内容
CN106605243A (zh) 由无特权应用进行的图形工作量提交
WO2017039865A1 (en) Facilitating efficient scheduling of graphics workloads at computing devices
US20150091809A1 (en) Skeuomorphic ebook and tablet
CN103927223B (zh) 用于对图形资源的串行化访问的方法、***、装置、设备以及存储介质
CN104067318A (zh) 使用三维光栅化的时间连续碰撞检测
CN104737198A (zh) 在输入几何对象粒度上记录可见度测试的结果
CN109857573A (zh) 一种数据共享方法、装置、设备及***
CN104054049B (zh) 用于复制源数据从而实现对源数据的并行处理的方法和***
EP3284058A1 (en) Supporting multi-level nesting of command buffers in graphics command streams at computing devices
WO2017222646A1 (en) Extension of register files for local processing of data in computing environments
JP5955915B2 (ja) グラフィック処理アーキテクチャにおけるポストシンクロナイゼーションオペレーションとしてのアトミックオペレーションのサポート
CN104040501A (zh) 显示控制器中断寄存器

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination