用于图形处理的任意控制点处的容错抢占机制的制作方法

文档序号:9756975阅读:409来源:国知局
用于图形处理的任意控制点处的容错抢占机制的制作方法
【技术领域】
[0001] 本发明涉及用于图形处理的技术,且更明确地说涉及用于图形处理中的任意控制 点处的抢占的技术。
【背景技术】
[0002] 用于显示的视觉内容(例如用于图形用户接口和视频游戏的内容)可由图形处理 单元(GPU)产生。GPU可将二维或三维(3D)对象转换为可显示的二维(2D)像素表示。将关于 3D对象的信息转换为可显示的位图被称为像素渲染,且需要相当大的存储器及处理能力。 在过去,3D图形能力仅在强大的工作站上可用。然而,现在3D图形加速器通常在个人计算机 (PC)以及例如智能电话、平板计算机、便携式媒体播放器、便携式视频游戏控制台及类似者 等移动装置中就能找到。通常,移动装置与常规的PC相比具有较小的计算能力及存储器能 力。由此,在移动装置上实施3D图形渲染技术时所述技术中的增加的复杂度呈现难题。
[0003] 在许多系统中,利用用于抢占 GPU上的命令的执行的技术,使得可执行要求GPU处 理的较高优先级任务。所述抢占技术一般包含借以跟踪穿过一个命令流的GPU的进展的过 程。以此方式,所述GPU可转变到较高优先级任务,且随后在GPU停止时返回到原始任务。

【发明内容】

[0004] -般来说,本发明描述用于图形处理系统中的任意控制点处的抢占的技术。具体 来说,本发明的技术允许在任一点处抢占 GPU上的当前执行命令缓冲区,且允许GPU快速转 变到较高优先级任务。在完成较高优先级任务之后,所述GPU返回到原始命令缓冲区,在起 点处开始。为了促进此重新开始,本发明的技术提出对由命令缓冲区中的命令使用的任何 读取-修改-写入存储器资源进行双重缓冲,使得可恢复所述读取-修改-写入资源的原始状 ??τ 〇
[0005] 在本发明的一个实例中,一种图形处理方法包括:执行用于图形处理单元的命令 缓冲区中的命令,所述命令对读取-修改-写入存储器资源中的数据进行操作;将所述读取-修改-写入存储器资源的原始数据存储在第一缓冲区中;将由执行所述命令缓冲区中的所 述命令所产生的任何修改的数据存储在第二缓冲区中;在完成所述命令缓冲区中的所有命 令之前抢占所述命令缓冲区中的所述命令的执行;及在抢占执行之后,使用第一缓冲区中 的原始数据在所述命令缓冲区的开始处重新开始执行所述命令。
[0006] 本发明的技术还在设备、图形处理单元及存储用于致使处理器执行所述技术的指 令的计算机可读存储媒体的方面进行描述。附图及以下描述中陈述一或多个实例的细节。 其它特征、目标和优点将从所述描述和图式以及权利要求书而显而易见。
【附图说明】
[0007] 图1是展示经配置以使用本发明的技术的实例计算装置的框图。
[0008] 图2是展示实例图形渲染系统的框图。
[0009] 图3是展示使用GPU的实例通用计算系统的框图。
[0010] 图4是展示抢占请求的概念图。
[0011]图5是展示根据本发明的一或多个实例的抢占请求处置的概念图。
[0012] 图6是展示根据本发明的技术的实例方法的流程图。
【具体实施方式】
[0013] 本发明涉及用于图形处理的技术,且更具体来说涉及用于任意控制点处的抢占的 技术。具体来说,本发明涉及用于计算系统中的输入/输出(I/O)装置的抢占机制的技术。具 体来说,将在用于操作系统中以停止及恢复图形处理(例如,在图形处理单元(GPU)上执行 的图形处理)的抢占机制方面描述本发明。
[0014] 简单来说,GPU上的抢占请求是由在图形处理系统的另一实体(例如,在中央处理 单元(CPU)上执行的应用)作出的用以停止命令缓冲区的当前图形处理以支持需要GPU处理 的另一较高优先级操作的请求。经常,此类抢占请求将源自操作系统。用于图形处理的抢占 的常规技术依赖于使用所谓的"安全点"。即,如果GPU接收到抢占当前处理的请求,那么所 述GPU继续处理直到特定点(例如,命令缓冲区中的特定点)且保存关于所述点处的处理的 状态的信息。此信息可包含命令缓冲区中的处理曾被停止且应重新开始的点、接收GPU处理 的输出的任何缓冲区的内容,及可用作所述命令中的所述点处的任何GPU处理的输入数据 的一或多个缓冲区的内容。
[0015]保存此状态信息允许GPU以正确的输入及输出数据在已知点处重新开始处理。然 而,在接收抢占请求时处理直到安全点及保存状态信息要花费不确定的时间量。抢占请求 可在由GPU执行的命令缓冲区中的异步点处发生,并且因此,可能不可能预测在到达安全点 之前GHJ可需要操作多长时间。在一些情形中,响应于抢占请求使GPU到达安全点、保存状态 信息及开始处理新命令缓冲区的时间可能不合意地长。如果较高优先级图形任务不能够立 即开始,那么一些应用可导致较差的用户体验。
[0016] 鉴于所述缺点,本发明呈现用于处理任意控制点处的抢占请求的技术。具体来说, 本发明的技术包含对由GPU使用的读取-修改-写入资源进行双重缓冲以执行用于原始任务 的命令缓冲区,使得可丢掉部分处理命令缓冲区的结果,且命令缓冲区可响应于执行较高 优先级任务的抢占请求而从起点重新运行。以此方式,可立即处置抢占请求,同时仍维持重 新开始处理原始任务的稳定状态。
[0017] 在一个实例中,用于图形处理的命令流可读取且随后修改先前渲染的帧缓冲区的 内容以便渲染后续帧。如果在完成当前帧之前对所述帧的渲染被抢占,那么本发明的技术 包含从开始重新开始执行命令缓冲区(即,从起点开始渲染所述帧)。在抢占期间,存储所述 命令缓冲区的整个内容以用于在稍后点处重播。如果在抢占之前已修改先前帧缓冲区的部 分,那么帧缓冲区的此些部分将不是当前处理的帧的正确输入。由此,本发明的技术还包含 存储读取-修改-写入资源的副本(例如,先前帧的帧缓冲区的内容),直到处理整个命令缓 冲区为止。对先前帧缓冲区的内容的任何修改存储在不同的缓冲区中(即,读取-修改-写入 缓冲区被双重缓冲)。
[0018]图1是说明可用于实施本发明的用于任意控制点处的抢占的技术的实例计算装置 2的框图。计算装置2可包括(例如)个人计算机、桌上型计算机、膝上型计算机、平板计算机、 计算机工作站、视频游戏平台或控制台、移动电话(例如蜂窝式或卫星电话,包含例如所谓 的智能电话、陆线电话、因特网电话)、手持式装置(例如,便携式视频游戏装置或个人数字 助理(PDA)、个人音乐播放器、视频播放器)、显示装置、电视、电视机顶盒、服务器、中间网络 装置、主机计算机、任何移动装置或处理及/或显示图形数据的任何其它类型的装置。
[0019] 如图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中展示的不同组件之间的总线及通信接口的特定配置 仅是示范性的,且具有相同或不同组件的计算装置及/或其它图形处理系统的其它配置可 用于实施本发明的技术。
[0020] CPU 6可包括控制计算装置2的操作的通用或专用处理器。用户可提供对计算装置 2的输入以致使CPU 6执行一或多个软件应用。在CPU 6上执行的软件应用可包含(例如)操 作系统、字处理器应用、电子邮件应用、总分析表应用、媒体播放器应用、视频游戏应用、图 形用户接口应用或另一程序。另外,CPU 6可执行用于控制GPU 12的操作的GPU驱动程序7。 用户可经由一或多个输入装置(未图示)(例如,键盘、鼠标、麦克风、触摸垫或经由用户输入 接口 4耦合到计算装置2的另一输入装置)将输入提供到计算装置2。
[0021] 在CPU 6上执行的软件应用可包含指令CPU 6以致使向显示器18渲染图形数据的 一或多个图形渲染指令。在一些实例中,所述软件指令可符合图形应用编程接口(API),例 如开放图形库(OpenG:L?)API、开放图形库嵌入系统(OpenGL ES)API、Direct3D API、X3D API、RenderMan API、WebGL API或任何其它公共或专有标准图形API。为了处理图形渲染指 令,CPU 6可将一或多个图形渲染命令发布到GPU 12(例如,通过GPU驱动程序7)以致使GPU 12执行对图形数据的一些或所有渲染。在一些实例中,将渲染的图形数据可包含例如点、 线、三角形、四边形、三角形带等图形基元的列表。
[0022] 存储器控制器8促进数据进出系统存储器10的传递。举例来说,存储器控制器8可 接收存储器读取及写入命令,且服务关于系统存储器10的此类命令以便为计算装置2中的 组
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1