在图形处理单元上执行图形和非图形应用的制作方法

文档序号:6533218阅读:225来源:国知局
在图形处理单元上执行图形和非图形应用的制作方法
【专利摘要】本发明中所描述的技术针对于在图形处理单元GPU上有效并行地执行图形和非图形应用。所述GPU可包含着色器处理器内的多个着色器核心。所述技术可保留一或多个着色器核心以执行所述图形应用且保留一或多个其它着色器核心以执行所述非图形应用。以此方式,所述非图形应用的所述执行可不干扰所述图形应用的所述执行,且反之亦然。
【专利说明】在图形处理单元上执行图形和非图形应用

【技术领域】
[0001] 本发明针对于在图形处理单元(GPU)上执行的应用,且更特定来说,针对于GPU执 行此些应用的方式。

【背景技术】
[0002] 图形处理单元(GPU)传统上受限于仅在固定功能管线中执行图形相关处理,这提 供非常有限的功能灵活性。较新的GPU包含执行程序的可编程核心,且进而提供与传统GPU 相比的更大的功能灵活性。所述可编程核心可执行图形应用和非图形应用两者,从而准许 所谓的通用GPU(GPGPU)应用。


【发明内容】

[0003] -股来说,本发明针对于应用在图形处理单元(GPU)上并行地执行图形应用和非 图形应用的技术。所述GPU可包含多个着色器核心,所述多个着色器核心能够执行一或多 个图形应用及一或多个非图形应用。本发明中所描述的技术可选择性地保留第一组着色器 核心以用于图形应用且保留第二组着色器核心以用于非图形应用。所述技术还可在用于图 形应用的指令与用于非图形应用的指令之间刻画。以此方式,在所述第一组着色器核心上 执行的图形应用可不干扰在所述第二组着色器核心上执行的非图形应用的所述执行,且反 之亦然。此刻画的执行可提高GPU上的图形应用和非图形应用同时(即,并行)的有效执 行。
[0004] 在一个实例中,本发明描述一种方法,所述方法包含:用图形处理单元(GPU)接收 所述GPU的着色器处理器的为图形应用保留的第一组着色器核心的指示;及用所述GPU接 收所述GPU的所述着色器处理器的为非图形应用保留的第二组不同着色器核心的指示。所 述方法进一步包含:用所述GPU接收所述图形应用的指令;及用所述GPU接收所述非图形 应用的指令。所述方法还包含用所述GPU以所述第一组着色器核心执行所述图形应用的所 述指令,且在与执行所述图形应用的所述指令大体上相同时间用所述GPU以所述第二组着 色器核心执行所述非图形应用的所述指令。
[0005] 在另一实例中,本发明描述一种方法,所述方法包含:用处理器上的驱动程序确定 图形处理单元(GPU)的着色器处理器的为将在第一组着色器核心上执行的图形应用保留 的所述第一组着色器核心;及用所述处理器上的所述驱动程序确定所述GPU的所述着色器 处理器的为将在第二组不同着色器核心上执行的非图形应用保留的所述第二组着色器核 心。所述方法还包含将所述第一组着色器核心的指示及所述第二组着色器核心的指示传输 到所述GPU。
[0006] 在另一实例中,本发明描述一种图形处理单兀(GPU),其包含包括多个着色器核心 的着色器处理器。所述GPU还包含第一命令处理器,其经配置以接收为执行图形应用的指 令保留的第一组所述着色器核心的指示,且接收所述图形应用的所述指令。所述GPU还包 含第二命令处理器,其经配置以接收为执行非图形应用的指令保留的第二组不同所述着色 器核心的指示,且接收所述非图形应用的所述指令。
[0007] 在另一实例中,本发明描述一种处理器,所述处理器经配置以:确定图形处理单元 (GPU)的着色器处理器的为将在第一组着色器核心上执行的图形应用保留的所述第一组着 色器核心;及确定所述GPU的所述着色器处理器的为将在第二组不同着色器核心上执行的 非图形应用保留的所述第二组着色器核心。所述处理器还经配置以将所述第一组着色器核 心的指示及所述第二组着色器核心的指示传输到所述GPU。
[0008] 在另一实例中,本发明描述一种GPU,所述GPU包含:用于接收所述GPU的着色器 处理器的为图形应用保留的第一组着色器核心的指示的第一装置;及用于接收所述GPU的 所述着色器处理器的为非图形应用保留的第二组不同着色器核心的指示的第二装置。所述 GPU还包括:用于接收所述图形应用的指令的第三装置;及用于接收所述非图形应用的指 令的第四装置。所述GPU进一步包括用于以所述第一组着色器核心执行所述图形应用的所 述指令的装置,且在与执行所述图形应用的所述指令大体上相同时间,用于以所述第二组 着色器核心执行所述非图形应用的所述指令的装置。
[0009] 在另一实例中,本发明描述一种计算机可读存储媒体,其包括指令,所述指令致使 一或多个处理器:用图形处理单元(GPU)接收所述GPU的着色器处理器的为图形应用保留 的第一组着色器核心的指示;及用所述GPU接收所述GPU的所述着色器处理器的为非图形 应用保留的第二组不同着色器核心的指示。所述指令还致使所述一或多个处理器:用所述 GPU接收所述图形应用的指令;及用所述GPU接收所述非图形应用的指令。所述指令还致使 所述一或多个处理器用所述GPU以所述第一组着色器核心执行所述图形应用的所述指令, 且在与执行所述图形应用的所述指令相同时间,用所述GPU以所述第二组着色器核心执行 所述非图形应用的所述指令。
[0010] 在另一实例中,本发明描述一种处理器,所述处理器包含:用于确定图形处理单元 (GPU)的着色器处理器的为将在第一组着色器核心上执行的图形应用保留的所述第一组着 色器核心的装置;及用于确定所述GPU的所述着色器处理器的为将在第二组不同着色器核 心上执行的非图形应用保留的所述第二组着色器核心的装置。所述处理器还包含用于将所 述第一组着色器核心的指示及所述第二组着色器核心的指示传输到所述GPU的装置。
[0011] 在另一实例中,本发明描述一种计算机可读存储媒体,其包括指令,所述指令致使 一或多个处理器:用处理器上的驱动程序确定图形处理单元(GPU)的着色器处理器的为将 在第一组着色器核心上执行的图形应用保留的所述第一组着色器核心;及用所述处理器上 的所述驱动程序确定所述GPU的所述着色器处理器的为将在第二组不同着色器核心上执 行的非图形应用保留的所述第二组着色器核心。所述指令还致使所述一或多个处理器将所 述第一组着色器核心的指示及所述第二组着色器核心的指示传输到所述GPU。
[0012] 在另一实例中,本发明描述一种包含处理器及图形处理单元(GPU)的设备。所述 处理器经配置以:确定图形处理单元(GPU)的着色器处理器的为将在第一组着色器核心上 执行的图形应用保留的所述第一组着色器核心;确定所述GPU的所述着色器处理器的为将 在第二组不同着色器核心上执行的非图形应用保留的所述第二组着色器核心;及将所述第 一组着色器核心的指示及所述第二组着色器核心的指示传输到所述GPU。所述GPU包含: 所述着色器处理器,所述着色器处理器包含多个着色器核心,所述多个着色器核心包含所 述第一组着色器核心及所述第二组着色器核心;第一命令处理器,其经配置以接收为执行 所述图形应用的指令保留的所述第一组所述着色器核心的所述指示,且接收所述图形应用 的所述指令;及第二命令处理器,其经配置以接收为执行所述非图形应用的指令保留的所 述第二组不同所述着色器核心的所述指示,且接收所述非图形应用的所述指令。
[0013] 本发明的一或多个方面的细节在附图及以下描述中陈述。本发明的其它特征、目 标和优点将从所述描述和图式且从权利要求书变得显而易见。

【专利附图】

【附图说明】
[0014] 图1是说明可实施本发明中所描述的一或多种实例技术的装置的框图。
[0015] 图2是进一步详细地说明图1的图形处理单元(GPU)的一实例的框图。
[0016] 图3是进一步详细地说明图1的GPU的另一实例的框图。
[0017] 图4是说明根据本发明中所描述的一或多个实例的实例技术的流程图。
[0018] 图5是说明根据本发明中所描述的一或多个实例的另一实例技术的流程图。
[0019] 图6是进一步详细地说明图1中所说明的实例装置的框图。

【具体实施方式】
[0020] 图形处理单元(GPU)包含命令处理器、固定功能图形处理硬件单元,及形成着色 器处理器的一或多个着色器核心。常规上,着色器处理器的一或多个着色器核心执行程序, 所述程序受限于对图形数据执行功能。举例来说,一或多个着色器核心将执行顶点着色器 及片段着色器,且常规上将不执行非图形应用。
[0021] 然而,由GPU支持的大规模并行计算效率可有益于非图形相关应用。举例来说,较 新的GPU提供一股的处理功能性,且可被称作通用GPU (GPGPU)。这些GPGPU的着色器核心 可执行图形应用以及非图形应用。
[0022] 因为图形应用及非图形应用两者都在GPGPU的一或多个着色器核心上执行,所以 非图形应用的执行可潜在地干扰图形应用的执行。举例来说,假设GPGPU的着色器核心正 在执行非图形应用及产生装置的用户接口的图形应用。在此实例中,非图形应用的执行有 可能干扰用户接口的产生。此干扰可导致用户接口变得不响应,这可潜在地使用户体验降 级。
[0023] 如下文更详细地描述,本发明描述若干技术,单个GPGPU的着色器处理器的一或 多个着色器核心可借助所述技术执行图形应用和非图形应用,而不会使非图形应用干扰图 形应用的性能,且反之亦然。举例来说,着色器处理器的一或多个着色器核心可为图形应用 保留,且着色器处理器的一或多个其它着色器核心可为非图形应用保留。着色器核心的保 留可静态地或动态地发生。举例来说,着色器核心的保留可为预定的。在另一实例中,在图 像和非图形应用的执行期间,所述技术可选择应保留多少着色器核心来用于图形应用且保 留多少着色器核心来用于非图形应用。所述技术可使得在图形应用与非图形应用之间共享 单个嵌入式GPU会容易得多,这可允许运行高等待时间非图形应用而不会中断低等待时间 图形应用。
[0024] 图1是说明可实施本发明中所描述的一或多种实例技术的装置的框图。图1说明 装置10,所述装置包含处理器12、图形处理单元(GPU) 16及系统存储器26。装置10包含 除了图1中所说明的组件之外的组件,如图6中进一步说明。装置10的实例包含(但不限 于)例如媒体播放器等视频装置、机顶盒、例如移动电话或所谓的智能电话等无线手持机、 个人数字助理(PDA)、桌上型计算机、膝上型计算机、游戏控制台、视频会议单元、平板计算 装置等。
[0025] 处理器12可为装置10的中央处理单元(CPU)。GPU 16可为经配置以执行图形相 关功能的处理单元。举例来说,GPU 16可产生且输出图形数据以用于在显示器上呈现,以 及执行利用由GPU 16提供的大规模处理并行度的非图形相关功能。举例来说,GPU 16可 执行图形应用及非图形应用两者,其有时被称作计算应用。因为GPU 16可除了图形处理能 力之外还提供通用处理能力,所以GPU 16可被称作通用GPU(GPGPU)。
[0026] 处理器12和GPU 16的实例包含,但不限于,多种通用或专用处理硬件中的任一 者,例如数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵 列(FPGA)或其它等效集成或离散逻辑电路。在一些实例中,GPU 16可为具有针对特定使用 而设计的多个处理器核心的微处理器,所述特定使用例如为提供大规模并行处理以用于处 理图形,以及用于执行非图形相关应用。此外,虽然处理器12和GPU 16被说明为单独的组 件,但本发明的方面不限于此。举例来说,处理器12和GPU 16可驻留于共同集成电路(1C) 中。
[0027] 系统存储器26是装置10的系统存储器且驻留在处理器12和GPU 16外部。举例 来说,系统存储器26可相对于处理器12和GPU 16在芯片外,且可为可经由系统总线进行 存取的。如所说明,系统存储器26可存储由处理器12和GPU 16执行的应用。举例来说, 图形应用28是GPU 16执行的图形应用。图形应用28的实例包含顶点着色器和片段着色 器。非图形应用30是GPU 16执行的非图形应用。非图形应用30的实例是缝合不同图片 以产生全景图片的应用。举例来说,所述图片可为由装置10俘获的图片,且用GPU 16缝合 在一起。GPU驱动程序14是系统存储器26存储的应用的另一实例。处理器12可执行GPU 驱动程序14,所述GPU驱动程序可为促进处理器12与GPU 16之间的通信的应用。
[0028] 此外,系统存储器26可存储所执行的应用对其进行操作的数据以及由所述应用 产生的数据。然而,在每个实例中,不是所有此类数据都需要存储在系统存储器26中。在 一些例子中,数据可在本地存储在处理器12或GPU 16上的存储器中。
[0029] 系统存储器26可为计算机可读存储媒体的一实例。举例来说,系统存储器26可 存储致使处理器12和GPU 16执行归于本发明中的每一者的功能的指令。系统存储器26 可被视为包括指令的计算机可读存储媒体,所述指令致使一或多个处理器(例如,应用处 理器12或GPU 16)执行各种功能。
[0030] 系统存储器26的实例包含,但不限于,随机存取存储器(RAM),只读存储器(ROM), 或电可擦除可编程只读存储器(EEPR0M),或可用于以指令或数据结构的形式携载或存储所 需的程序代码且可由计算机或处理器存取的任何其它媒体。在一些实例中,系统存储器26 可被视为非暂时性存储媒体。术语"非暂时性"可指示所述存储媒体未体现于载波或所传 播信号中。然而,术语"非暂时性"不应被解释为意味着系统存储器26是非可移动的。作 为一个实例,系统存储器26可从装置10被移除,且移动到另一装置。作为另一实例,大体 上类似于系统存储器26的存储装置可插入到装置10中。在某些实例中,非暂时性存储媒 体可存储可随着时间改变的数据(例如,在RAM中)。
[0031] 如上文所描述,GPU 16可在同时(即,并行地)执行一或多个图形应用(例如,图 形应用28)及一或多个非图形应用(例如,非图形应用30)。然而,较差的资源管理可导致 非图形应用30的执行干扰图形应用28的执行。根据本发明的技术,GPU 16可能够在同时 以最少的执行干扰来执行图形应用28和非图形应用30。
[0032] 如所说明,GPU 16包含图形功能管线18A及18B(统称为图形功能管线18)、非图 形功能管线20A及20B (统称为非图形功能管线20)、着色器处理器22及GPU存储器24。 GPU存储器24可为GPU 16的芯片上存储器。举例来说,GPU存储器24可为允许图形功能 管线18、非图形功能管线20及着色器处理器22快速地存取数据的高速缓冲存储器。
[0033] 图形功能管线18处置图形相关功能且非图形功能管线20处置非图形相关功能。 以此方式,本发明中所描述的技术将图形相关功能的资源与非图形相关功能的资源划分 开。举例来说,由图形功能管线18处理的图形相关功能可不干扰由非图形功能管线20处 理的非图形相关功能,且反之亦然,甚至在GPU 16同时执行图形相关功能及非图形相关功 能两者时也如此。换句话说,图形功能管线18及非图形功能管线20可并行地执行相应的 功能。
[0034] 在一些实例中,图形功能管线18及非图形功能管线20可包含固定功能单元。然 而,图形功能管线18及非图形功能管线20可共享着色器处理器22。着色器处理器22经配 置以在同时执行图形应用及非图形应用两者。举例来说,着色器处理器22可执行图形应用 28且在同时执行非图形应用30。虽然图1仅说明一个图形应用及一个非图形应用,但本发 明的方面不限于此。在其它实例中,GPU 16可在同时执行一或多个图形应用及一或多个非 图形应用全部。
[0035] 为了执行图形应用28及非图形应用30,着色器处理器22包含执行图形应用28及 非图形应用30的指令的多个着色器核心。举例来说,着色器核心可执行图形应用28及非 图形应用30的被称作工作群组或任务的指令子集。这些着色器核心可被分配给图形应用 28或非图形应用30。
[0036] 在本发明中所描述的技术中,GPU驱动程序14可保留着色器处理器22内的第一 组着色器核心以用于执行图形应用28且保留着色器处理器22内的第二组着色器核心以用 于执行非图形应用30。如上文所描述,GPU驱动程序14可允许处理器12及GPU 15彼此通 信。保留着色器核心可涉及将着色器处理器22内的所述着色器核心分配给图形应用28或 非图形应用30中的特定一者。举例来说,为图形应用28保留的着色器核心经分配以用于 执行图形应用28的指令,且可不能执行非图形应用30的指令,直到所述着色器核心不再为 图形应用28保留为止。类似地,为非图形应用30保留的着色器核心可不可用于执行图形 应用28的指令,直到所述着色器核心不再为非图形应用30保留为止。
[0037] 作为说明性实例,着色器处理器22可包含四个着色器核心,但更多或更少的着色 器核心是可能的。在此实例中,GPU驱动程序14可保留四个着色器核心中的两者以用于图 形应用28,且保留另外两个着色器核心以用于非图形应用30。然而,着色器核心的任何组 合是可能的。举例来说,GPU驱动程序14可保留四个着色器核心中的三者以用于图形应用 28,且保留另一着色器核心以用于非图形应用30。甚至可有可能的是,GPU驱动程序14保 留所有四个着色器核心来用于图形应用28且不保留着色器核心来用于非图形应用30,或 反之亦然。
[0038] GPU驱动程序14可充当处理器12与GPU 16之间的接口,其允许处理器12控制 GPU 16。举例来说,当处理器12需要将命令传输到GPU 16时,这通过处理器12传输命令 的GPU驱动程序14。处理器12可传输到GPU 16的命令包含用以加载并执行图形应用28 和非图形应用30的指令的命令、向GPU 16指示数据位于系统存储器26中何处且加载此数 据的命令,及其它此类命令。以此方式,处理器12可控制GPU 16的功能性。
[0039] 如所说明,在处理器12内以虚线展示GPU驱动程序14。这将说明GPU驱动程序 14是正在处理器12上执行的软件。在此实例中,系统存储器26存储处理器12检索以用于 执行的GPU驱动程序14的源代码或目标代码。或者,GPU驱动程序14可为嵌入于处理器 12内的硬件,或在处理器12外部的耦合到处理器12和GPU 16的硬件。一股来说,GPU驱 动程序14可为硬件、软件、固件或其任何组合。仅出于说明和清楚的目的,本发明中描述的 实例是在GPU驱动程序14是在处理器12上执行的软件的背景中来描述的。
[0040] GPU驱动程序14可利用各种准则以确定应为图形应用28和为非图形应用30保 留的着色器核心的数目。作为一个实例,因为处理器12控制GPU 16,所以处理器12可了 解有多少图形应用28的指令及有多少非图形应用30的指令当前排成队以供着色器处理器 22的着色器核心执行。在此实例中,GPU驱动程序14可基于在队列中以供着色器处理器22 执行的图形应用28和非图形应用30的指令的数目来保留着色器核心。
[0041] 举例来说,图形应用28和非图形应用30存在相等数目的排队的指令,那么GPU驱 动程序14可为每种类型的应用保留着色器处理器22的相等数目的着色器核心。如果非图 形应用30存在比图形应用28更多的命令,那么与为图形应用28相比,GPU驱动程序14可 为非图形应用30保留更多的着色器核心。如果不存在当前排队以用于执行的非图形应用 30的命令,那么GPU驱动程序14可为图形应用28保留所有的着色器核心。在一些实例中, 为每一应用保留的着色器核心的数目可与排队用于执行的指令的数目成比例。然而,例如 执行时间和优先级等其它因素也可影响为应用中的每一者保留的着色器核心的数目。
[0042] 在一些实例中,GPU驱动程序14可偏向图形应用28。举例来说,不响应的图形应 用可能使用户体验降级。为了限制用户体验中的此降级,GPU驱动程序14可经配置以确保 存在专用于图形应用28的充分的着色器核心,即使其导致在执行非图形应用30的指令中 的略微降级也如此。换句话说,从用户体验角度来看,图形应用28的及时执行可比非图形 应用30的及时执行更有价值。为了辅助更好地用户体验,GPU驱动程序14可经配置以牺 牲非图形应用30的及时执行以将充分的着色器核心专用于图形应用28。
[0043] 对于这些情况,GPU驱动程序14可不相等地指派着色器核心。举例来说,如果存 在为图形应用28和非图形应用30排队的相等数目的指令,那么与为非图形应用30相比, GPU驱动程序14可为图形应用28保留更多的着色器核心。如果非图形应用30的指令是图 形应用28的指令的两倍,那么GPU驱动程序14可将相等数目的着色器核心指派给图形应 用28和非图形应用30中的每一者。
[0044] 以此方式,GPU驱动程序14可确定图形应用28需要多少着色器核心且非图形应 用30需要多少着色器核心以提供合适的用户体验。为了实现此合适的用户体验,GPU驱动 程序14可利用某一准则。举例来说,如上文所论述,图形应用28的无中断执行可比非图形 应用30的缓慢或延迟执行更重要,且GPU驱动程序14可经配置以确保充分的着色器核心 可用于图形应用28,即使这意味着将有较少的着色器核心用于非图形应用30也如此。
[0045] 在一些实例中,可有可能使非图形应用30的执行优先于图形应用28。举例来说, 非图形应用30可为重要的应用,其及时执行可比图形显示中的潜在较小降级更有价值。以 此方式,图形应用28和非图形应用30的相对优先级可为可配置的。
[0046] 例如由处理器12执行的GPU驱动程序14可利用额外的准则来确定应为图形应用 28保留多少着色器核心且应为非图形应用30保留多少着色器核心。举例来说,图形应用 28的一或多个任务可在相对短的时间周期(例如,数毫秒)内完成,而非图形应用30的一 或多个任务可在相对长的时间周期(例如,数秒)内完成作为说明性实例,GPU 16可执行 多个图形应用(其中的一者是图形应用28)以产生视频游戏或用户接口屏幕的帧。作为一 实例,GPU 16还可执行非图形应用30以将多个相机图片缝合为单个全景图像(作为一个 实例)或提供解密或解压缩(作为其它实例)。
[0047] 在此情形中,GPU 16可能需要以30到60帧/秒的刷新率产生帧以实现平滑动画。 此30到60帧/秒的刷新率可需要着色器处理器22在数毫秒内完成图形应用28的任务的 执行,使得GPU 16可实现30到60帧/秒的刷新率。非图形应用30的执行可能不需要实 现平滑动画,或用于那种情况的任何动画。因此,GPU 16在多于数毫秒内完成非图形应用 30的执行可为合适的。举例来说,在此实例中,可能不需要非图形应用30在大约数毫秒内 完成将相机图片缝合为单个全景图像,且其花费〇. 5秒到1秒来完成缝合可为合适的。
[0048] GPU驱动程序14可利用以下准则:一股来说,图形应用28和非图形应用30可需要 不同量的时间来用于完成任务以确定用于图形应用28和非图形应用30的着色器核心的数 目。如本发明中所使用的任务是指由图形应用28或非图形应用30执行的功能的子集。可 将任务视为工作群组。对于图形应用28,可存在用以划分工作群组的多种逻辑方式。举例 来说,一个工作群组可包含产生图形应用28的一个帧或帧中的一瓦片所需的所有功能。由 于工作群组的此逻辑划分,所以预测着色器处理器22将花费多少时间来完成图形应用28 的任务可为简单的。
[0049] 可能不存在用以划分非图形应用30的功能的逻辑方式,这可能使得难以估计着 色器处理器22完成非图形应用30的任务要花费的时间量。通过为图形应用28保留着色 器处理器22的着色器核心且为非图形应用30保留着色器处理器22的着色器核心,所述技 术可能够使图形应用28与非图形应用30之间的执行干扰最少化,甚至在可能难以预测非 图形应用30将花费多少时间来完成任务的情况下也如此。
[0050] 本发明中所描述的技术可允许图形应用28和非图形应用30的有效并行执行,而 不会过多地存取系统存储器26且不需要多个GPU。举例来说,GPU 16可不需要停止执行非 图形应用30来执行图形应用28。举例来说,着色器处理器22的专用于非图形应用的着色 器核心仅对非图形应用操作,而着色器处理器22的专用于图形应用的着色器核心仅对图 形应用单独地操作。而且,所述技术可允许图形应用28和非图形应用30两者在单个GPU 16上执行。
[0051] 一些技术可能停止执行非图形应用30以允许执行图形应用28。然而,为了停止 非图形应用30的执行,可能需要用于这些其它技术中的GPU在其暂停的时刻将非图形应用 的所有状态信息存储在系统存储器26中,且在重新开始执行非图形应用30时从系统存储 器26检索所有状态信息。此对所有状态信息的存储和检索可消耗总线带宽且需要相对大 量的电力。
[0052] 停止执行非图形应用30且随后稍后重新开始所述执行的这些其它技术可被视为 交错执行图形应用28和非图形应用30,而不是在同时执行这些应用。如本发明中所描述的 使用着色器处理器22的不同组处理器核心在同时对图形应用28和非图形应用30的有效 并行执行(即,在同时)可不需要交错执行这些应用,进而提高总线带宽和电力消耗的有效 使用。
[0053] 在一些其它额外技术的实例中,所述技术对例如非图形应用30等非图形应用将 在GPU上执行多长时间进行定时。如果执行花费比阈值时间长的时间,那么GPU将完全停 止执行非图形应用30。然而,此类技术不允许某些类型的非图形应用执行(例如,需要比被 分配用来执行的时间更多的时间的非图形应用)。
[0054] 在又一些其它技术中,装置将包含两个GPU。一个GPU将为图形应用28保留,且另 一者将为非图形应用30保留。然而,利用两个图形处理装置会利用装置上的额外基板面, 其中此额外基板面可能不可用。而且,对于给定时刻,可有可能不存在需要执行的图形应 用,但存在需要执行的非图形应用,或反之亦然。在其它情况中的任一者中,一个GPU保持 闲置,而另一 GPU保持作用中,其可为对GPU的低效使用。
[0055] 图2是进一步详细地说明图1的GPU的实例的框图。举例来说,图2进一步详细 地说明GPU 16,其中GPU 16是通用GPU(GPGPU)的实例。如所说明,除了着色器处理器22 和GPU存储器24之外,GPU 16可包含图形命令处理器32、图形工作负荷分布单元34、图形 固定功能单元36A及36B (统称为图形固定功能单元36),非图形命令处理器38和非图形工 作负荷分布单元40。着色器处理器22可包含多个着色器核心42A到42N(统称为着色器 核心42)。举例来说,着色器处理器22可包含四个着色器核心42,但更多或更少的着色器 核心42是可能的。在一些实例中,着色器核心42可被称作着色器/纹理核心以指示纹理 化也可发生在此些核心中。然而,为了易于理解,着色器核心42是指着色器核心或着色器 /纹理核心。
[0056] GPU 16可包含除了图2中所说明的组件之外的额外组件。举例来说,如所说明, 非图形工作负荷分布单元40直接输出到着色器处理器22,且着色器处理器22直接输出到 GPU存储器24。在其它实例中,在非图形工作负荷分布单元40与着色器处理器22之间且 在着色器处理器22与GPU存储器24之间可存在一或多个组件。此外,还提供GPU 16内的 组件的特定布置以用于说明的目的,且不应被视为限制性的。在替代实例中,可以不同于图 2中所说明的方式的方式对组件进行排序。
[0057] 在图2中,图形命令处理器32、图形工作负荷分布单元34、图形固定功能单元36A 及图形固定功能单元36B可为图形功能管线18A及18B (图1)的部分。而且,非图形命令 处理器38和非图形工作负荷分布单元40可为非图形功能管线20A(图1)的部分。GPU16 可包含将是非图形功能管线20B(图1)的部分的组件,其出于清楚起见而未在图2中说明。 GPU 16的这些各种组件可实施为硬件、在硬件上执行的软件或其组合。仅出于说明且不作 为限制的目的,GPU 16的组件被描述为硬件单元。
[0058] 如所说明,GPU 16包含两个命令处理器(即,图形命令处理器32和非图形命令处 理器38)。在替代实例中,GPU 16包含单个命令处理器可为可能的,如关于图3更详细地描 述。在图2的实例中,图形命令处理器32和非图形命令处理器38可彼此等同。图形命令 处理器32可对图形功能的命令或指令操作,且不对非图形功能的命令或指令操作。非图形 命令处理器38可对非图形功能的命令或指令操作,且不对图形功能的命令或指令操作。以 此方式,GPU 16可在图形与非图形命令和指令之间进行划分,这可提高图形和非图形应用 两者在GPU 16上的有效并行执行(例如,在同时)。
[0059] 举例来说,如图1中所说明的在处理器12上执行的GPU驱动程序14可指令图形 命令处理器32从系统存储器26检索图形应用28的指令及将由所述指令使用的数据。GPU 驱动程序14还可将指示传输到图形命令处理器32,所述指示指示为图形应用28保留的着 色器核心42的数目(为图形应用28保留的第一组着色器核心42),及可能着色器核心42 中的哪些着色器核心为图形应用28保留。类似地,GPU驱动程序14可指令非图形命令处 理器38从系统存储器26检索非图形应用30的指令及将由所述指令使用的数据。GPU驱动 程序14还可将指示传输到非图形命令处理器38,所述指示指示为非图形应用30保留的着 色器核心42的数目(为非图形应用30保留的第二组一或多个着色器核心42),及可能着色 器核心42中的哪些着色器核心为非图形应用30保留。
[0060] 与包含单个命令处理器的其它GPU相比,包含图形命令处理器32和非图形命令处 理器38两者的GPU 16可增加 GPU 16的总大小。然而,归因于包含额外的命令处理器而引 起的大小上的增加可相当小。在大多数情况下,归因于包含额外的命令处理器而引起的大 小上的增加可远小于使用两个单独的图形处理装置,如上文所描述。
[0061] 此外,与包含单个命令处理器的GPU相比,包含额外的命令处理器可导致GPU 16 使用额外的电力。然而,本发明中所描述的技术可使额外电力的使用最少化。举例来说,如 上文所描述,GPU驱动程序14可经配置以确定是否存在非图形应用30和图形应用28的指 令或命令。如果不存在非图形应用30的指令,那么GPU驱动程序14可指令非图形命令处 理器38掉电。GPU驱动程序14可随后在需要时指令给命令处理器38加电。
[0062] 图形工作负荷分布单元34及非图形工作负荷分布单元40确定如何将工作负荷分 布到相应的所保留的着色器核心42。举例来说,图形工作负荷分布单元34可从图形命令处 理器32接收着色器核心42中的哪些着色器核心为图形应用28保留的指示。图形工作负 荷分布单元34可确定图形命令处理器32从系统存储器26检索到的指令应如何在为图形 应用28保留的着色器核心42当中划分。非图形工作负荷分布单元40可从非图形命令处 理器38接收着色器核心42中的哪些着色器核心为非图形应用30保留的指示。非图形工 作负荷分布单元40可确定非图形命令处理器38从系统存储器26检索到的指令应如何在 为非图形应用30保留的着色器核心42当中划分。
[0063] 图形固定功能单元36可为执行特定图形功能的硬连线固定功能逻辑单元。举例 来说,在于着色器处理器22的所保留的着色器核心42上执行的图形应用28可允许功能灵 活性时,图形固定功能单元36可提供最少的功能灵活性(如果有的话)。图形固定功能单 元36中的每一者可包含各种硬连线单元,例如基元汇编单元、截锥单元、角度划分单元、视 口变换单元、深度测试单元、光栅化单元、每片段操作单元及阿尔法混合单元。可形成图形 功能管线18A的部分的固定功能单元36的这些单元是出于说明的目的而提供,且不应被视 为限制性的。另外,这些单元中的一些单元可驻留在图形固定功能单元36A中,而其它单元 可驻留于图形固定功能单元36B中。这些单元的特定排序在不同的实例中还可不同。
[0064] 在图2中,图形固定功能单元36B及着色器处理器22可输出到GPU存储器24。 GPU存储器24可为例如多级专用高速缓冲存储器的高速缓冲存储器,包含色彩高速缓冲存 储器或通用高速缓冲存储器(例如,基于地址),或其任何组合。在一些实例中,GPU存储器 24可被分裂为两个区域(即,图形存储器44及非图形存储器46)。在此实例中,图形存储 器44可为图形功能保留,且非图形存储器46可为非图形功能保留。
[0065] GPU存储器24可使图形存储器44的存储空间优先于非图形存储器46。作为一个 实例,图形命令处理器32及非图形命令处理器38中的至少一者可指令GPU存储器24使 存储图形数据优先于非图形数据。换句话说,可使图形功能(例如,指令或命令,将由指令 或命令使用的数据)的存储优先于非图形功能的存储。在此实例中,可随后将非图形功能 的数据存储在系统存储器26中,而不是在本地存储在GPU存储器24内。而且,在其中发生 高速缓冲存储器未命中的情况下,针对例如经由系统总线对系统存储器26的存取,可给予 图形应用28及一股来说图形功能的请求比非图形应用30及一股来说非图形功能高的优先 级。存储器存储及检索中的此优先级可进一步确保以及时的方式执行图形应用以使用户体 验的降级最小化。
[0066] 图3是进一步详细地说明图1的GPU的另一实例的框图。如图3中所说明的GPU 16可大体上类似于图2中所说明的GPU 16。因此,出于简明起见,仅详细地描述不同的那 些单元。图3中所说明的具有与图2中所说明的单元相同的参考数字的单元可以大体上类 似的方式起作用。
[0067] 在图3的实例中,GPU 16可包含单个命令处理器33,而不是两个不同的命令处理 器(例如,图2的图形命令处理器32及非图形命令处理器38)。在此实例中,命令处理器 33可经配置以并行地(S卩,在同时)处理命令的两个或更多流。举例来说,GPU驱动程序14 可将与GPU驱动程序14传输到图形命令处理器32及非图形命令处理器38的指令类似的 指令传输到命令处理器33。
[0068] 作为一个实例,GPU驱动程序14可指令命令处理器33 :从系统存储器26检索图 形应用28的指令;从系统存储器26检索由指令使用的数据;指示为图形应用28保留的着 色器核心42的数目;及可能指示着色器核心42中的哪些着色器核心为图形应用28保留。 在与在命令处理器33接收图形应用28的指令相同或重叠的时间,命令处理器33可从GPU 驱动程序14接收指令,所述指令指令命令处理器33 :从系统存储器26检索非图形应用30 的指令,从系统存储器26检索将由指令使用的数据,指示为非图形应用30保留的着色器核 心42的数目,及可能指示着色器核心42中的哪些着色器核心为非图形应用30保留。
[0069] 在此实例中,命令处理器33可经配置以在哪些指令适用于图形功能且哪些指令 是用于非图形功能之间划分。举例来说,GPU驱动程序14可指示GPU驱动程序14传输到 命令处理器33的指令是用于图形功能还是非图形功能。一股来说,GPU驱动程序14及命 令处理器33可利用任何技术来划分用于图形功能的指令(例如,图形应用28的指令)及 用于非图形功能的指令(例如,非图形应用30的指令)。
[0070] 在包含单个命令处理器的GPU的其它实例中,此命令处理器可能尚未能够在同时 或重叠的时间从处理器接收多个指令流。命令处理器33可GPU 16在同时处理图形应用28 及非图形应用30的指令。在一些例子中,如果不存在图形应用28的指令或图形应用28是 闲置的,那么命令处理器33可仍接收非图形应用30的指令以供执行。类似地,如果不存在 非图形应用30的指令或图形应用30是闲置的,那么命令处理器33可仍接收图形应用28 的指令以供执行。
[0071] 图4是说明根据本发明中所描述的一或多个实例的实例技术的流程图。仅出于说 明的目的且为了易于理解,参考图1到3。
[0072] GPU可接收GPU的着色器处理器的为图形应用保留的第一组一或多个着色器核心 (48)。所述GPU还可接收所述着色器处理器的为非图形应用保留的第二组不同一或多个着 色器核心(50)。作为一个实例,GPU 16的第一命令处理器(例如,图形命令处理器32)可 从GPU驱动程序14接收着色器处理器42的为图形应用28保留的第一组着色器核心的指 示。在此实例中,GPU 16的第二不同命令处理器(例如,非图形命令处理器38)可从GPU 驱动程序14接收着色器处理器42的为非图形应用30保留的第二组不同着色器核心的指 示。在替代实例中,第一和第二命令处理器可为相同的命令处理器。举例来说,在此替代实 例中,命令处理器33可从GPU驱动程序14接收为图形应用28保留的第一组着色器核心的 指示,及为非图形应用30保留的第二组不同着色器核心的指示。
[0073] 在这些实例中的任一者中,第一组着色器核心的指示及第二组不同着色器核心的 指示可包含指示为图形应用28保留多少着色器核心42且为非图形应用30保留多少着色 器核心42的指示。在一些实例中,第一组着色器核心的指示及第二组不同着色器核心的指 示还可包含指示为图形应用28保留着色器核心42中的哪些着色器核心且为非图形应用30 保留着色器核心42中的哪些着色器核心。
[0074] 第一组着色器核心(例如,一或多个着色器核心42)可执行例如图形应用28等图 形应用的指令(52)。举例来说,图形命令处理器32或命令处理器33可接收用于执行的图 形应用28的指令,且致使第一组着色器核心执行图形应用28的指令。在此实例中,第一组 着色器核心可不执行非图形应用30的指令。在一些实例中,第一工作负荷分布单元(例 如,图形工作负荷分布单元34)可确定第一组着色器核心中的哪些着色器核心执行图形应 用28的指令中的哪些指令。在此实例中,第一组着色器核心可执行由图形工作负荷分布单 兀34确定的指令。
[0075] 第二组着色器核心(例如,剩余着色器核心42中的一或多者)可执行非图形应用 30的指令(54)。举例来说,非图形命令处理器38或命令处理器33可接收用于执行的非图 形应用30的指令,且致使第二组着色器核心执行非图形应用30的指令。在此实例中,第二 组着色器核心可不执行图形应用28的指令。在一些实例中,第二工作负荷分布单元(例 如,非图形工作负荷分布单元40)可确定第二组着色器核心中的哪些着色器核心执行非图 形应用30的指令中的哪些指令。在此实例中,第二组着色器核心可执行由非图形工作负荷 分布单元40确定的指令。
[0076] 在一些实例中,在与在第一组着色器核心执行图形应用28的指令时相同的时间, 第二组着色器核心可执行非图形应用30的指令以允许并行地执行图形应用28及非图形应 用30。在一些实例中,在与在GPU 16经由图形命令处理器32或命令处理器33接收图形应 用28的指令时相同的时间,GPU 16经由非图形命令处理器38或命令处理器33接收非图 形应用30的指令。
[0077] 图5是说明根据本发明中所描述的一或多个实例的另一实例技术的流程图。仅出 于说明的目的且为了易于理解,参考图1到3。
[0078] 处理器上的驱动程序可确定GPU的着色器处理器的为将在第一组着色器核心上 执行的图形应用保留的所述第一组着色器核心(56)。举例来说,可在处理器12上执行的 GPU驱动程序14可确定为图形应用28保留GPU 16的着色器处理器22的着色器核心42中 的多少着色器核心及哪些着色器核心以用于执行图形应用28。
[0079] 处理器上的驱动程序可确定GPU的着色器处理器的为将在第二组不同着色器核 心上执行的非图形应用保留的所述第二组着色器核心(58)。举例来说,GPU驱动程序14可 确定为非图形应用30保留GPU 16的着色器处理器22的着色器核心42中的多少着色器核 心及哪些着色器核心以用于执行非图形应用30。
[0080] 在一些实例中,GPU驱动程序14可确定第一组着色器核心(即,为图形应用28保 留的着色器核心)包含比第二组着色器核心(即,为非图形应用30保留的着色器核心)多 的着色器核心。为了作出应为图形应用28保留多少着色器核心的确定,GPU驱动程序14可 确定当前排队的图形应用28的指令的数目。类似地,为了作出应为非图形应用30保留多 少着色器核心的确定,GPU驱动程序14可确定当前排队的非图形应用30的指令的数目。
[0081] 驱动程序可将第一组着色器核心的指示传输到GPU内的第一命令处理器(60)。驱 动程序还可将第二组着色器核心的指示传输到GPU内的第二命令处理器(62)。GPU可随后 在第一组着色器核心上执行图形应用28且在第二组着色器核心上执行非图形应用30。在 一些实例中,第一和第二命令处理器可为不同的命令处理器。在替代实例中,第一和第二命 令可为相同的命令处理器。举例来说,在其中第一和第二命令处理器是不同的命令处理器 的实例中,GPU驱动程序14可将指示为图形应用28保留着色器核心42中的多少着色器核 心及哪些着色器核心的指示传输到图形命令处理器32,且将指示为非图形应用30保留着 色器核心42中的多少着色器核心及哪些着色器核心的指示传输到非图形命令处理器38。 在另一实例中,在其中第一和第二命令处理器是相同的命令处理器的例子中,驱动程序 14可将指示为图形应用28保留着色器核心42中的多少着色器核心及哪些着色器核心的指 示传输到图形命令处理器33,且将指示为非图形应用30保留着色器核心42中的多少着色 器核心及哪些着色器核心的指示传输到命令处理器33。
[0082] 图6是进一步详细地说明图1中所说明的实例装置的框图。举例来说,图6更详 细地说明图1的装置10。出于简明起见,仅详细描述图6中所说明但图1中未说明的装置 10的组件。
[0083] 在图6的实例中,装置10可包含处理器12、GPU 16、存储器26、收发器模块64、用 户接口 66、显示器68及显示器处理器70。装置10可包含图6中出于清楚起见而未展示的 额外模块或单元。举例来说,装置10可包含扬声器和麦克风(其任一者都未在图6中展 示),从而在其中装置10是移动无线电话或其中装置10是媒体播放器的扬声器的实例中实 现电话通信。装置10还可包含摄像机。此外,装置10中所展示的各种模块和单元在装置 10的每个实例中可能不是必需的。举例来说,在其中装置10是桌上型计算机或经配备以与 用户接口或显示器介接的其它装置的实例中,用户接口 66和显示器68可在装置10外部。
[0084] 用户接口 66的实例包含(但不限于)跟踪球、鼠标、键盘,以及其它类型的输入装 置。用户接口 66还可为触摸屏且可被集成为显示器68的一部分。收发器模块64可包含 用以允许装置10与另一装置或网络之间的无线或有线通信的电路。收发器模块64可包含 调制器、解调器、放大器以及用于有线或无线通信的其它此类电路。显示器68可包括液晶 显示器(LCD)、有机发光二极管(0LED)、阴极射线管(CRT)显示器、等离子显示器、或另一类 型的显示装置。
[0085] 在一些实例中,在GPU 16产生图形数据以供在显示器68上显示之后,GPU 16可将 所得的图形数据输出到系统存储器26以进行临时存储。显示器处理器70可从系统存储器 26检索图形数据、对图形数据执行任何后处理,且将所得的图形数据输出到显示器68。举 例来说,显示器处理器70可执行任何进一步增强或缩放由GPU 16产生的图形数据。在其 它实例中,GPU 16可有可能将图形数据输出到系统存储器26内的帧缓冲器,所述帧缓冲器 随后将图形数据输出到显示器68。在此实例中,可能不需要显示器处理器70。
[0086] 在图6的实例中,处理器12和GPU 16可如上文关于图1到5所描述进行配置。举 例来说,GPU 16可包含包括多个着色器核心的着色器处理器。处理器12可保留GPU 16的 第一组多个着色器核心以执行图形应用,且保留GPU 16的第二组多个着色器核心以执行 非图形应用。在此实例中,且如上文所描述,为图形应用保留的着色器核心可不执行非图形 应用的指令,且反之亦然。
[0087] 在一或多个实例中,所描述的功能可以硬件、软件、固件或其任何组合来实施。如 果以软件来实施,则可将功能作为一或多个指令或代码存储在计算机可读媒体上。计算机 可读媒体可包含计算机数据存储媒体。数据存储媒体可为可由一或多个计算机或一或多 个处理器存取以检索指令、代码和/或数据结构来用于实施本发明中所描述的技术的任何 可用媒体。举例来说(且并非限制),所述计算机可读媒体可包括随机存取存储器(RAM)、 只读存储器(ROM)、EEPROM、CD-ROM或其它光盘存储装置、磁盘存储装置或其它磁性存储装 置,或可用于存储呈指令或数据结构的形式的所要程序码且可由计算机存取的任何其它媒 体。在本文中使用时,磁盘及光盘包括压缩光盘(CD)、激光光盘、光学光盘、数字多功能光 盘(DVD)、软性磁盘及蓝光光盘,其中磁盘通常以磁性方式再现数据,而光盘使用激光以光 学方式再现数据。以上各者的组合也应包含在计算机可读媒体的范围内。
[0088] 所述代码可由一或多个处理器执行,例如,一或多个数字信号处理器(DSP)、通用 微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)或其它等效的集成或离散的 逻辑电路。因此,如本文中所使用的术语"处理器"可指上述结构或适合于实施本文中所描 述的技术的任一其它结构中的任一者。并且,可将所述技术完全实施于一或多个电路或逻 辑元件中。
[0089] 本发明的技术可实施于广泛多种装置或设备中,包含无线手持机、集成电路(1C) 或1C组(S卩,芯片组)。本发明中描述各种组件、模块或单元来强调经配置以执行所揭示的 技术的装置的若干功能性方面,但不一定需要通过不同的硬件单元来实现。而是,如上文所 描述,各种单元可联合合适的软件和/或固件而组合于硬件单元中或通过互操作的硬件单 元的集合(包含如上文所描述的一或多个处理器)来提供。
[0090] 已描述各种实例。这些及其它实例属于所附权利要求书的范围内。
【权利要求】
1. 一种方法,其包括: 用图形处理单元GPU接收所述GPU的着色器处理器的为图形应用保留的第一组着色器 核心的指示; 用所述GPU接收所述GPU的所述着色器处理器的为非图形应用保留的第二组不同着色 器核心的指示; 用所述GPU接收所述图形应用的指令; 用所述GPU接收所述非图形应用的指令; 用所述GPU以所述第一组着色器核心执行所述图形应用的所述指令;及 在与执行所述图形应用的所述指令大体上相同的时间用所述GPU以所述第二组着色 器核心执行所述非图形应用的所述指令。
2. 根据权利要求1所述的方法,其中接收所述第一组着色器核心的所述指示包括用所 述GPU的第一命令处理器接收所述第一组着色器核心的所述指示,且其中接收所述第二组 着色器核心的所述指示包括用所述GPU的第二不同命令处理器接收所述第二组着色器核 心的所述指示。
3. 根据权利要求1所述的方法,其中接收所述第一组着色器核心的所述指示包括用所 述GPU的命令处理器接收所述第一组着色器核心的所述指示,且其中接收所述第二组着色 器核心的所述指示包括用所述相同命令处理器接收所述第二组着色器核心的所述指示。
4. 根据权利要求1所述的方法,其进一步包括: 不以所述第一组着色器核心执行所述非图形应用的所述指令;及 不以所述第二组着色器核心执行所述图形应用的所述指令。
5. 根据权利要求1所述的方法,其中接收所述非图形应用的指令包括在与接收所述图 形应用的指令相同的时间接收所述非图形应用的所述指令。
6. 根据权利要求1所述的方法,其进一步包括: 用第一工作负荷分布单元确定所述第一组着色器核心中的哪些着色器核心执行所述 图形应用的所述指令中的哪些指令;及 用第二不同工作负荷分布单元确定所述第二组着色器核心中的哪些着色器核心执行 所述非图形应用的所述指令中的哪些指令, 其中执行所述图形应用的所述指令包括基于所述第一组着色器核心中的哪些着色器 核心执行所述图形应用的所述指令中的哪些指令的所述确定来执行所述图形应用的所述 指令,且 其中执行所述非图形应用的所述指令包括基于所述第二组着色器核心中的哪些着色 器核心执行所述非图形应用的所述指令中的哪些指令的所述确定来执行所述非图形应用 的所述指令。
7. 根据权利要求1所述的方法,其进一步包括: 使将所述图形应用的所述指令的所述执行的结果存储在所述GPU内的高速缓冲存储 器中优先于将所述非图形应用的所述指令的所述执行的结果存储在所述GPU内的所述高 速缓冲存储器中。
8. 根据权利要求1所述的方法,其中接收所述第一组着色器核心的所述指示包括用所 述GPU的第一命令处理器接收所述第一组着色器核心的所述指示,且其中接收所述第二组 着色器核心的所述指示包括用所述GPU的第二不同命令处理器接收所述第二组着色器核 心的所述指示,所述方法进一步包括: 接收用以在不存在所述非图形应用的指令时将所述第二命令处理器掉电的指示;及 响应于接收到所述指示而将所述第二命令处理器掉电。
9. 根据权利要求1所述的方法,其中所述第一组着色器核心的着色器核心的数目不同 于所述第二组着色器核心的着色器核心的数目。
10. -种方法,其包括: 用处理器上的驱动程序确定图形处理单元GPU的着色器处理器的为将在第一组着色 器核心上执行的图形应用保留的所述第一组着色器核心; 用所述处理器上的所述驱动程序确定所述GPU的所述着色器处理器的为将在第二组 不同着色器核心上执行的非图形应用保留的所述第二组着色器核心;及 将所述第一组着色器核心的指示及所述第二组着色器核心的指示传输到所述GPU。
11. 根据权利要求10所述的方法,其中确定所述第一组着色器核心包括确定应为所述 图形应用保留多少所述着色器核心及所述着色器核心中的哪些着色器核心,且其中确定所 述第二组着色器核心包括确定应为所述非图形应用保留多少所述着色器核心及所述着色 器核心中的哪些着色器核心。
12. 根据权利要求10所述的方法,其进一步包括: 确定所述第一组着色器核心包含比所述第二组着色器核心多的着色器核心。
13. 根据权利要求10所述的方法,其中确定所述第一组着色器核心包括基于所述图形 应用的排队的指令的数目来确定所述第一组着色器核心。
14. 根据权利要求10所述的方法,其中确定所述第二组着色器核心包括基于所述非图 形应用的排队的指令的数目来确定所述第二组着色器核心。
15. 根据权利要求10所述的方法,其中传输包括: 将所述第一组着色器核心的所述指示传输到所述GPU内的第一命令处理器;及 将所述第二组着色器核心的所述指示传输到所述GPU内的第二不同处理器。
16. 根据权利要求10所述的方法,其中传输包括: 将所述第一组着色器核心的所述指示传输到所述GPU内的命令处理器;及 将所述第二组着色器核心的所述指示传输到所述GPU内的所述相同命令处理器。
17. -种图形处理单元GPU,其包括: 着色器处理器,其包含多个着色器核心; 第一命令处理器,其经配置以接收为执行图形应用的指令保留的第一组所述着色器核 心的指示,且接收所述图形应用的所述指令;及 第二命令处理器,其经配置以接收为执行非图形应用的指令保留的第二组不同所述着 色器核心的指示,且接收所述非图形应用的所述指令。
18. 根据权利要求17所述的GPU,其中所述第一命令处理器不同于所述第二命令处理 器。
19. 根据权利要求17所述的GPU,其中所述第一命令处理器与所述第二命令处理器相 同。
20. 根据权利要求17所述的GPU, 其中所述第一组所述着色器核心经配置以执行所述图形应用的所述指令,且 其中,在与所述图形应用的所述指令的所述执行大体上相同的时间,所述第二组所述 着色器核心经配置以执行所述非图形应用的所述指令。
21. 根据权利要求17所述的GPU, 其中所述第一组着色器核心经配置以不执行所述非图形应用的指令,且 其中所述第二组着色器核心经配置以不执行所述图形应用的指令
22. 根据权利要求17所述的GPU,其中所述第一命令处理器经配置以在与所述第二命 令处理器接收所述非图形应用的所述指令相同的时间接收所述图形应用的所述指令。
23. 根据权利要求17所述的GPU,其进一步包括: 第一工作负荷分布单元,其经配置以确定所述第一组所述着色器核心中的哪些着色器 核心执行所述图形应用的所述指令中的哪些指令;及 第二不同工作负荷分布单元,其经配置以确定所述第二组所述着色器核心中的哪些着 色器核心执行所述非图形应用的所述指令中的哪些指令, 其中所述第一组所述着色器核心经配置以基于所述第一工作负荷分布单元的所述确 定而执行所述图形应用的所述指令,且 其中所述第二组所述着色器核心经配置以基于所述第二工作负荷分布单元的所述确 定而执行所述非图形应用的所述指令。
24. 根据权利要求17所述的GPU,其进一步包括: 高速缓冲存储器, 其中所述第一命令处理器及所述第二命令处理器中的至少一者经配置以使将所述图 形应用的所述指令的所述执行的结果存储在所述高速缓冲存储器中优先于将所述非图形 应用的所述指令的所述执行的结果存储在所述高速缓冲存储器中。
25. 根据权利要求17所述的GPU,其中所述GPU经配置以接收用以在不存在所述非图 形应用的指令时将所述第二命令处理器掉电的指示,且响应于所述掉电的指示的所述接收 而将所述第二命令处理器掉电。
26. 根据权利要求17所述的GPU,其中所述第一组所述着色器核心的着色器核心的数 目不同于所述第二组所述着色器核心的着色器核心的数目。
27. -种处理器,其经配置以: 确定图形处理单元GPU的着色器处理器的为将在第一组着色器核心上执行的图形应 用保留的所述第一组所述着色器核心; 确定所述GPU的所述着色器处理器的为将在第二组不同着色器核心上执行的非图形 应用保留的所述第二组着色器核心;及 将所述第一组着色器核心的指示及所述第二组着色器核心的指示传输到所述GPU。
28. 根据权利要求27所述的处理器,其中所述处理器执行驱动程序,所述驱动程序执 行所述确定及到所述GPU的所述传输。
29. 根据权利要求27所述的处理器,其中所述处理器经配置以确定应为所述图形应用 保留多少所述着色器核心及所述着色器核心中的哪些着色器核心来确定所述第一组着色 器核心,且确定应为所述非图形应用保留多少所述着色器核心及所述着色器核心中的哪些 着色器核心来确定所述第二组着色器核心。
30. 根据权利要求27所述的处理器,其中所述处理器经配置以确定所述第一组着色器 核心包含比所述第二组着色器核心多的着色器核心。
31. 根据权利要求27所述的处理器,其中所述处理器经配置以基于所述图形应用的排 队的指令的数目来确定所述第一组着色器核心。
32. 根据权利要求27所述的处理器,其中所述处理器经配置以基于所述非图形应用的 排队的指令的数目来确定所述第二组着色器核心。
33. 根据权利要求27所述的处理器,其中所述处理器经配置以: 将所述第一组所述着色器核心的所述指示传输到所述GPU的第一命令处理器;及 将所述第二组所述着色器核心的所述指示传输到所述GPU的第二不同命令处理器。
34. 根据权利要求27所述的处理器,其中所述处理器经配置以: 将所述第一组所述着色器核心的所述指示传输到所述GPU的命令处理器;及 将所述第二组所述着色器核心的所述指示传输到所述GPU的所述相同命令处理器。
35. -种图形处理单元GPU,其包括: 用于接收所述GPU的着色器处理器的为图形应用保留的第一组着色器核心的指示的 第一装置; 用于接收所述GPU的所述着色器处理器的为非图形应用保留的第二组不同着色器核 心的指示的第二装置; 用于接收所述图形应用的指令的第三装置; 用于接收所述非图形应用的指令的第四装置; 用于以所述第一组着色器核心执行所述图形应用的所述指令的装置;及 用于在与执行所述图形应用的所述指令相同的时间以所述第二组着色器核心执行所 述非图形应用的所述指令的装置。
36. 根据权利要求35所述的GPU,其中所述用于接收的第一装置及所述用于接收的第 二装置包括不同的用于接收的装置。
37. -种计算机可读存储媒体,其包括致使一或多个处理器进行以下操作的指令: 用图形处理单元GPU接收所述GPU的着色器处理器的为图形应用保留的第一组着色器 核心的指示; 用所述GPU接收所述GPU的所述着色器处理器的为非图形应用保留的第二组不同着色 器核心的指示; 用所述GPU接收所述图形应用的指令; 用所述GPU接收所述非图形应用的指令; 用所述GPU以所述第一组着色器核心执行所述图形应用的所述指令;及 在与执行所述图形应用的所述指令相同的时间用所述GPU以所述第二组着色器核心 执行所述非图形应用的所述指令。
38. 根据权利要求37所述的计算机可读存储媒体,其中所述用以接收所述第一组着色 器核心的所述指示的指令包括用以用第一命令处理器接收所述第一组着色器核心的所述 指示的指令,且其中所述用以接收所述第二组着色器核心的所述指示的指令包括用以用第 二不同命令处理器接收所述第二组着色器核心的所述指示的指令。
39. -种处理器,其包括: 用于确定图形处理单元GPU的着色器处理器的为将在第一组着色器核心上执行的图 形应用保留的所述第一组着色器核心的装置; 用于确定所述GPU的所述着色器处理器的为将在第二组不同着色器核心上执行的非 图形应用保留的所述第二组着色器核心的装置;及 用于将所述第一组着色器核心的指示及所述第二组着色器核心的指示传输到所述GPU 的装置。
40. -种计算机可读存储媒体,其包括致使一或多个处理器进行以下操作的指令: 用所述一或多个处理器上的驱动程序确定图形处理单元GPU的着色器处理器的为将 在第一组着色器核心上执行的图形应用保留的所述第一组着色器核心; 用所述一或多个处理器上的所述驱动程序确定所述GPU的所述着色器处理器的为将 在第二组不同着色器核心上执行的非图形应用保留的所述第二组着色器核心;及 将所述第一组着色器核心的指示及所述第二组着色器核心的指示传输到所述GPU。
41. 一种设备,其包括: 处理器;及 图形处理单元GPU, 其中所述处理器经配置以: 确定所述GPU的着色器处理器的为将在第一组着色器核心上执行的图形应用保留的 所述第一组所述着色器核心;及 确定所述GPU的所述着色器处理器的为将在第二组不同着色器核心上执行的非图形 应用保留的所述第二组着色器核心;及 将所述第一组着色器核心的指示及所述第二组着色器核心的指示传输到所述GPU, 其中所述GPU包括: 所述着色器处理器,其包含多个所述着色器核心,所述多个所述着色器核心包含所述 第一组着色器核心和所述第二组着色器核心; 第一命令处理器,其经配置以接收为执行所述图形应用的指令保留的所述第一组所述 着色器核心的所述指示,且接收所述图形应用的所述指令;及 第二命令处理器,其经配置以接收为执行所述非图形应用的指令保留的所述第二组不 同所述着色器核心的所述指示,且接收所述非图形应用的所述指令。
【文档编号】G06T1/20GK104160420SQ201380012480
【公开日】2014年11月19日 申请日期:2013年2月18日 优先权日:2012年3月7日
【发明者】阿列克谢·V·布尔多 申请人:高通股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1