首页 / 专利库 / 电脑零配件 / 计算机系统 / 硬件 / 中央处理器 / 算术逻辑单元 / 图形处理器单元管线中的条件执行位

图形处理器单元管线中的条件执行位

阅读:1029发布:2020-09-05

专利汇可以提供图形处理器单元管线中的条件执行位专利检索,专利查询,专利分析的服务。并且本 发明 涉及图形处理器单元管线中的条件执行位。一种在图形处理器单元中的算术逻辑级包含若干 算术逻辑单元 (ALU)。将指令应用于包括与不同 像素 相关联的像素数据的多组操作数。条件执行位的值确定所述ALU如何处理一组操作数中的所述像素数据。,下面是图形处理器单元管线中的条件执行位专利的具体信息内容。

1.一种图形处理器单元(GPU)管线,其包括:
多个算术逻辑单元(ALU),其可操作以用于根据指令执行算术运算,其中将所 述指令应用于多组包括像素数据的操作数,所述多组操作数中的每一组操作数与 多个像素中的相应像素和相应的条件执行位相关联,且其中与所述多组操作数中 的第一组操作数相关联的条件执行位的值确定所述ALU如何处理所述第一组操作 数中的所述像素数据。
2.根据权要求1所述的GPU管线,其中所述多个像素包括一像素,所述像素包括 用于所述像素的多个像素数据子组,其中与用于所述像素的一个像素数据子组相 关联的第一条件执行位和与用于所述像素的另一像素数据子组相关联的第二条件 执行位具有不同的值。
3.一种在图形处理器单元中的图形管线,所述管线包括:
数据获取级;以及
多个算术逻辑单元(ALU),其耦合到所述数据获取级,其中在连续的时钟循环 中,第一指令识别用于所述ALU的第一操作数和用于所述ALU的第二操作数, 其中所述第一操作数与第一像素和第一条件执行位相关联,且所述第二操作数与 第二像素和第二条件执行位相关联,其中所述第一条件执行位的值确定所述ALU 是否对所述第一操作数进行操作,且其中所述第二条件执行位的值确定所述ALU 是否对所述第二操作数进行操作。
4.根据权利要求3所述的图形管线,其中所述第一像素包括用于所述第一像素的多 个像素数据子组,其中与用于所述第一像素的一个像素数据子组相关联的条件执 行位和与用于所述第一像素的另一像素数据子组相关联的条件执行位具有不同的 值。
5.根据权利要求3所述的图形管线,其中所述ALU包括多个触发器,其中所述第一 条件执行位的所述值确定所述第一操作数是否由所述ALU存,且其中所述第二 条件执行位的所述值确定所述第二操作数是否由所述ALU锁存。
6.根据权利要求5所述的图形管线,其中所述触发器包括选通的时钟,其中所述选 通的时钟又由所述第一和第二条件执行位控制。
7.根据权利要求3所述的图形管线,其中所述第一条件执行位的所述值是根据按照 在时间上在所述第一指令之前的第二指令所执行的操作的结果而设置的。
8.一种在图形处理器单元中的算术逻辑单元(ALU)管道级,其包括:
存储器,其用于存储与多个像素相关联的多个操作数;
管线化的ALU,其耦合到所述存储器且包括用于对所述多个像素中的每一者的 操作数执行指令的多个管道级,其中与所述多个像素相关联的操作数以在每一时 钟循环上一个像素的形式进入所述ALU,其中每一组操作数与多个像素中的相应 像素相关联,且其中所述存储器也用于存储所述多个像素中的每一像素的相应旗 标位;以及
选通逻辑,其耦合到所述ALU且用于在所述第一像素设置有相关联旗标位的情 况下防止与所述多个像素中的第一像素相关联的操作数在第一时钟循环上进入所 述ALU。
9.根据权利要求8所述的ALU管道级,其中所述旗标位防止与所述第一像素相关联 的所述操作数被所述ALU的所述多个管道级处理。
10.根据权利要求9所述的ALU管道级,其中进一步地在所述旗标位被设置后,不是 与所述第一像素相关联的所述操作数进入所述ALU的第一管道级,而是所述第一 管道级保持与恰好在所述第一时钟循环之前的时钟循环上进入所述第一管道级的 第二像素相关联的操作数的值。

说明书全文

技术领域

发明实施例大体上涉及计算机图形。

背景技术

近年来在计算机性能方面的进步已令图形系统能够使用个人计算机、家庭电子游戏 计算机、手持装置等来提供更加真实的图形图像。在此类图形系统中,执行若干程序, 以便将图元渲染或绘制到系统的屏幕。图元是图形的基本组成部分,例如是点、线、多 边形等。所渲染的图像由这些图元的组合形成。可利用许多程序来执行三维(3-D)图 形渲染。
已经研发出专用的图形处理单元(GPU),以提高图形渲染程序的执行速度。GPU 通常并入有一个或一个以上渲染管线。每一渲染管线包含若干经设计以用于高速执行图 形指令/数据的基于硬件的功能单元。一般来说,将指令/数据馈送到管线前端,且计算 出的结果出现在管线后端。GPU的基于硬件的功能单元、高速缓冲存储器固件等经 设计以对基本图元进行操作,并产生实时渲染的3-D图像。
人们越来越关注于在例如手机、个人数字助理(PDA)和其它装置等便携或手持装 置中渲染3-D图形图像。然而,便携或手持装置通常相对于例如台式计算机等更大的装 置来说具有限制。举例来说,因为便携装置通常用电池供电,所以功率消耗成了人们关 注的一个问题。此外,由于其尺寸较小,所以便携装置内部的可用空间有限。需要在手 持装置中在此类装置的限制内快速地执行真实的3-D图形渲染。

发明内容

本发明的实施例提供用于在图形处理器单元管线中快速且高效地处理数据的方法 和系统。
用于一像素群组的像素数据沿着图形管线共同前进到算术逻辑单元(ALU)。在 ALU中,以SIMD(单个指令、多个数据)的方式向一群组中的所有像素应用同一指令。 举例来说,在给定的时钟循环中,指令将指定从用于所述像素群组中的第一像素的像素 数据中选出的一组操作数。在下一时钟循环中,指令将指定从用于所述群组中的第二像 素的像素数据中选出的另一组操作数,依此类推。根据本发明的实施例,一条件执行位 与每一组操作数相关联。所述条件执行位的值确定ALU如何(是否)处理相应组的操 作数。
一般来说,如果一条件执行位被设置成不执行,那么ALU不对与所述条件执行位 相关联的像素数据进行操作。更具体来说,在一个实施例中,如果条件执行位被设置成 不执行,则ALU不存像素数据;此可通过将到ALU的输入触发器选通以使得所述触 发器不在像素数据中计时来实现。因此,ALU不改变状态——ALU中的锁存器(触发 器)保持处于其在前一时钟循环中所处的状态。通过不为触发器计时节省了功率,而且 还因为对组合逻辑的输入保持不变且因此没有任何晶体管改变状态而节省了功率(触发 器之所以不从一个状态过渡成另一个状态,是因为如果条件位被设置成不执行,那么操 作数从一个时钟循环到下一时钟循环保持不变)。
总的来说,在一像素群组上应用指令,但可能不必对所述群组中的每一像素均执行 所述指令。为了在管线中维持适当的次序,向群组中的每一像素应用所述指令——针对 群组中的每一像素选择一组操作数。然而,如果与一组操作数相关联的条件执行位被设 置成不执行,那么ALU不对那些操作数进行操作——不对操作数执行相关联的指令, 而是改为复制下游操作数。因此,不必对触发器计时,且不必切换组合逻辑,因而节省 了功率。由此,本发明的实施例非常适合于手持和其它便携的用电池操作的装置中的图 形处理(但本发明不限于在那些类型的装置上使用)。
所属领域的技术人员在阅读了以下对各种图式中所说明的实施例的详细描述后,将 认识到本发明的各种实施例的这些和其它目的和优点。
附图说明
在附图各图中是以举例的方式而不是以限制的方式来说明本发明,且其中相同参考 数字指代类似元件。
图1是展示根据本发明一个实施例的计算机系统的组件的方框图
图2是展示根据本发明一个实施例的图形处理单元(GPU)的组件的方框图。
图3说明根据本发明一个实施例的GPU管线中的级。
图4说明根据本发明一实施例的一连串行的像素数据。
图5是根据本发明一个实施例的GPU中的算术逻辑级的方框图。
图6说明退出根据本发明一实施例的算术逻辑单元的像素数据。
图7A说明根据本发明一个实施例的ALU的各个级中的像素数据。
图7B说明根据本发明一实施例的ALU的各个级。
图8是根据本发明一个实施例的用于处理像素数据的由计算机实施的方法的流程 图。

具体实施方式

现在将详细参看本发明的实施例,在附图中说明所述实施例的实例。虽然将结合这 些实施例描述本发明,但将了解,这些实施例并不意欲将本发明限于这些实施例。相反, 本发明意欲涵盖所附权利要求书所界定的本发明的精神和范围内可包含的替代方案、修 改和等效物。此外,在对本发明实施例的以下详细描述中,为了提供对本发明的全面理 解而阐述了许多具体细节。然而,所属领域的技术人员将认识到,可在没有这些具体细 节的情况下实践本发明。在其它例子中,并未详细描述众所周知的方法、程序、组件和 电路,以免不必要地模糊本发明实施例的各方面。
在程序、步骤、逻辑区、处理和对计算机存储器内的数据位的操作的其它符号表 示方面呈现以下详细描述的一些部分。这些描述和表示是数据处理领域的技术人员用以 最有效地向所属领域的其他技术人员传达其工作的主旨的手段。此处,程序、由计算机 执行的步骤、逻辑区块、过程等大体上被设想成产生所要结果的自相一致的步骤或指令 序列。所述步骤是要求对物理量进行物理操纵的步骤。通常(但不必要),这些量采用 能够在计算机系统中存储、传送、组合、比较和以其它方式操纵的电信号或磁信号的形 式。事实证明,将这些信号称为位、值、元素、符号、字符、项、数字等有时候较方便, 主要原因是通用。
然而,应牢记,所有这些和类似的术语将与适当的物理量相关联,而且只是应用于 这些量的便利标记。如从以下论述将明白,除非另外明确声明,否则应了解,在本发明 各处,利用例如“确定”或“使用”或“设置”或“锁存”或“计时”或“识别”或“选 择”或“处理”或“控制”等术语的论述是指代计算机系统(例如图1的计算机系统 100)或类似的电子计算装置的动作和过程,所述动作和过程对表示为计算机系统的寄 存器和存储器内的物理(电子)量的数据进行操纵并将其转换成以类似方式表示为计算 机系统存储器或寄存器或其它此类信息存储、传输或显示装置内的物理量的其它数据。
图1展示根据本发明一个实施例的计算机系统100。所述计算机系统包含根据本发 明实施例的为特定的基于硬件和基于软件的功能性提供执行平台的基本计算机系统的 组件。一般来说,所述计算机系统包括至少一个中央处理单元(CPU)101、系统存储 器115和至少一个图形处理器单元(GPU)110。GPU可经由桥接组件/存储器控制器(未 图示)耦合到系统存储器,或者可经由CPU内部的存储器控制器(未图示)直接耦合 到系统存储器。GPU耦合到显示器112。一个或一个以上额外GPU可视情况而耦合到 系统100,以便进一步提高其计算能。GPU耦合到CPU和系统存储器。计算机系统 可实施成(例如)台式计算机系统或服务器计算机系统,其具有耦合到专用图形渲染 GPU的强大的通用CPU。在此实施例中,可包含添加外围总线、专用图形存储器、输 入/输出(I/O)装置等的组件。类似地,计算机系统可实施成手持装置(例如手机等) 或机顶视频游戏控制台装置。
GPU可实施成离散组件、经设计以经由连接器(例如,图形加速端口插槽、外围 组件互连Express插槽等)耦合到计算机系统的离散图形卡、离散集成电路电路小片(例 如,直接安装在母板上)或包含在计算机系统芯片组组件(未图示)的集成电路电路小 片内或PSOC(可编程芯片上系统)的集成电路电路小片内的集成的GPU。此外,可针 对GPU包含本机图形存储器114以用于高带宽图形数据存储。
图2展示说明根据本发明一个实施例的GPU 110和图形存储器114的内部组件的 图。如图2中所描绘,GPU包含图形管线210和耦合到如图所示的图形存储器的碎片 数据高速缓冲存储器250。
在图2的实例中,图形管线210包含若干功能模块。图形管线的三个此类功能模块 (例如,程序定序器220、算术逻辑级(ALU)230和数据写入组件240)通过渲染从图 形应用程序(例如,从图形驱动程序等)接收的图元而运作。功能模块220—240经由 碎片数据高速缓冲存储器250存取信息,以用于渲染与图元有关的像素。碎片数据高速 缓冲存储器充当用于存储在图形存储器(例如,缓冲存储器)中的信息的高速高速缓 冲存储器。
程序定序器通过控制图形管线的功能模块的操作而运作。程序定序器可与图形驱动 程序(例如在图1的CPU 101上执行的图形驱动程序)交互,以便控制图形管线的功 能模块接收信息、针对操作而自行配置和处理图元的方式。举例来说,在图2的实施例 中,图形管线通过来自上游功能模块(例如,来自上游光栅器模块、来自设置模块或来 自图形驱动程序)的共同输入260来接收图形渲染数据(例如图元、三形条带等)、 管线配置信息(例如模式设置、渲染轮廓等)和渲染程序(例如像素着色器程序、顶点 着色器程序等)。输入260充当图形管线的功能模块之间的主要的碎片数据路径或管线。 一般在管线前端接收图元,并在图元沿着管线从一个模块前进到下一模块时将图元逐渐 渲染成所得的所渲染的像素数据。
在一个实施例中,数据以基于包的格式在功能模块220—240之间前进。举例来说, 图形驱动程序以数据包或像素包的形式将数据传输到GPU,所述数据包或像素包专 经配置以与管线的碎片管道通信路径交互并沿着所述路径传输。像素包通常包含关于像 素群组或瓦片(例如,四个像素、八个像素、16个像素等)的信息和用于与所述像素 有关的一个或一个以上图元的覆盖信息。像素包也可包含边带信息,所述边带信息使得 管线的功能模块能够针对渲染操作自行配置。举例来说,像素包可包含配置位、指令、 功能模块地址等,其可由管线的一个或一个以上功能模块用来针对当前的渲染模式等配 置自身。除了像素渲染信息和功能模块配置信息之外,像素包还可包含对管线的功能模 块进行编程以对像素执行着色器处理的着色器程序指令。举例来说,可沿着图形管线传 输包括着色器程序的指令,并由一个或一个以上规定的功能模块来加载所述指令。一旦 在渲染操作期间加载了所述指令,功能模块便可对像素数据执行着色器程序,以便实现 所要的渲染效果。
以此方式,图形管线的功能模块所实施的高度优化和高效的碎片管道通信路径不但 可用来在功能模块(例如,模块220—240)之间传输像素数据,而且还可用来在功能 模块之间传输配置信息和着色器程序指令。
图3是展示根据本发明一个实施例的图形管线210中的选定级的方框图。图形管线 可包含额外级,或者其可布置成与图3的实例不同。换句话说,虽然在图3的管线的背 景下论述本发明,但本发明不限于此。
在图3的实例中,光栅器310使用内插将三角形翻译成像素。在其各种功能中,光 栅器接收顶点数据、确定哪些像素对应于哪个三角形,并确定需要对像素执行的着色器 处理操作(例如色彩、纹理和雾化操作)以作为渲染的一部分。
光栅器产生用于待处理的三角形的每一像素的像素包。一般来说,像素包是用来计 算图形显示器的帧中的像素的像素值的例子的一组描述。像素包与每一帧中的每一像素 相关联。每一像素与以屏幕坐标表示的特定(x,y)位置相关联。在一个实施例中,图 形系统渲染显示器屏幕的两个像素乘两个像素区域,其称为四边形。
每一像素包包含处理所需的像素属性的有效负载(例如,色彩、纹理、深度、雾化、 x和y位置等)和边带信息(数据获取级330提供的像素属性数据)。像素包可含有一 行数据,或者其可含有多行数据。行总的来说是管线总线的数据部分的宽度。
数据获取级获取用于像素包的数据。此数据可包含用于每一像素包的色彩信息、任 何深度信息和任何纹理信息。在将像素包继续发送到下一级之前,将所获取的数据放置 到一行像素数据中的适当域中,其在本文中可称为寄存器。
成行的像素数据从数据获取级进入算术逻辑级230。在本实施例中,在每一时钟循 环中,一行像素数据进入算术逻辑级。在一个实施例中,算术逻辑级包含四个ALU 0、 1、2和3(图5),其经配置以执行与三维图形操作有关的着色器程序,例如(但不限 于)纹理组合(纹理环境)、模板、雾化、阿尔法混合、阿尔法测试和深度测试。每一 ALU每个时钟循环中执行一指令,每一指令用于对对应于像素包的内容的操作数执行 算术运算。在一个实施例中,要花费四个时钟循环在ALU中对一行数据进行操作,每 一ALU具有四个循环的深度。
算术逻辑级的输出去往数据写入级。数据写入级将管线结果存储在存储器(例如, 图1和图2的图形存储器114或存储器115)中的写入缓冲器或帧缓冲器中。视情况, 如果需要对数据进行进一步的处理,则可将像素包/数据从数据写入级重新循环回到算 术逻辑级中。
图4说明根据本发明一实施例用于一像素群组的一连串像素数据——即一系列成 行的像素数据。在图4的实例中,所述像素群组包括四个像素的四边形:P0、P1、P2 和P3。如上文所提及,可将用于一像素的像素数据被分成数据子组或数据行。在一个 实施例中,可能每个像素有多达四行的数据。举例来说,行0包含四个像素数据的域或 寄存器P0r0、P0r1、P0r2和P0r3(“r”指示行中的域或寄存器,且“R”指示行)。每 一行可代表像素数据的一个或一个以上属性。这些属性包含但不限于z深度值、纹理坐 标、细节平、色彩和阿尔法。寄存器值可在算术逻辑级中的ALU执行的操作中用作 操作数。
边带信息420与每一行像素数据相关联。边带信息尤其包含识别或指向将要由ALU 使用指令所识别的像素数据执行的指令的信息。换句话说,与行0相关联的边带信息尤 其识别指令I0。指令可指定(例如)将要执行的算术运算的类型和哪些寄存器含有将要 用作运算中的操作数的数据。
在一个实施例中,边带信息针对每行像素数据包含条件执行位。条件执行位的值对 于每行像素数据可能不同,即使所述行与相同的像素相关联也是如此。可设置与一行像 素数据相关联的条件执行位,以防对相关联的像素的操作数执行指令。举例来说,如果 将与P0R0相关联的条件执行位设置成不执行,那么对于像素P0将不执行指令I0(但 仍可对于群组中的其它像素执行)。下文中将结合图7A进一步描述条件执行位的功能。 在一个实施例中,条件执行位在长度上是单个位。
图5是根据本发明一个实施例的算术逻辑级230的方框图。图5中只展示了特定的 元件;算术逻辑级可包含除了图5所展示且在下文中描述的元件之外的元件。
随着每一新的时钟循环,一行像素数据连续地从数据获取级前进到管线的算术逻辑 级。举例来说,行0在第一时钟上沿着管线前进,接着在下一时钟上是行1,依此类推。 一旦将与特定像素群组(例如,四边形)相关联的所有行均加载到管线中,便可开始将 与下一四边形相关联的行加载到管线中。
在一个实施例中,将用于一像素群组(例如,四边形)中的每一像素的成行的像素 数据与用于群组中的其它像素的成行的像素数据交错。举例来说,对于四个像素的群组、 每个像素四行来说,像素数据采用以下次序沿着管线前进:用于第一像素的第一行(P0r0 到P0r3)、用于第二像素的第一行(P1r0到P1r3)、用于第三像素的第一行(P2r0到P2r3)、 用于第四像素的第一行(P3r0到P3r3)、用于第一像素的第二行(P0r4到P0r7)、用于 第二像素的第二行(P1r4到P1r7)、用于第三像素的第二行(P2r4到P2r7)、用于第四 像素的第二行(P3r4到P3r7),依次类推直到第十五行,其包含P3r12到P3r15。如上 文所提及,可能对于每个像素有不到四个行。通过以此方式交错成行的像素包,可避免 管线中发生停滞,且可提高数据处理量。
因此,在本实施例中,每一时钟循环中将包含边带信息420的一行像素数据(例如, 行0)传递到解串行化器510。在图5的实例中,解串行化器对成行的像素数据进行解 串行化。如上所述,可将用于一像素群组(例如,四边形)的像素数据逐行地交错。此 外,像素数据逐行地到达算术逻辑级。因此,不是逐位地执行本文中所称的解串行化; 而是逐行地执行解串行化。如果图形管线有四个寄存器宽,且每个像素有四个行,那么 解串行化器将像素数据解串行化成每个像素16个寄存器。
在图5的实例中,解串行化器将用于一像素群组的像素数据发送到缓冲器0、1或 2中的一者。将像素数据发送到缓冲器中的一者,同时由ALU对其它缓冲器中的一者 中的像素数据进行操作,同时其余缓冲器中的已由ALU对其操作的像素数据由串行化 器550串行化,并逐行地馈送到图形管线的下一级。一旦缓冲器排空,其便准备使用用 于下一像素群组的像素数据来填充(覆写);一旦缓冲器已被加载,则其含有的像素数 据便准备被操作;且一旦缓冲器中的像素数据已经被操作,其便准备被排空(覆写)。
包含用于一像素群组(例如,四边形0)的边带信息的像素数据到达算术逻辑级, 接下来是包含用于下一像素群组(例如,四边形1)的边带信息的像素数据,接下来是 包含用于下一像素群组(例如,四边形2)的边带信息的像素数据。
一旦已将与特定像素相关联的所有行像素数据解串行化,便可由ALU对用于所述 像素的像素数据进行操作。在一个实施例中,将相同指令应用于群组(例如,四边形) 中的所有像素。ALU实际上是以SIMD(相同指令、多个数据)的方式在一像素群组上 操作的管线化处理器。
图6展示在任意选定的时钟循环0—15中退出ALU的像素结果。在时钟循环0—3 中,与使用用于像素P0—P3的像素数据执行第一指令I0相关联的像素结果退出ALU。 类似地,与使用用于像素P0—P3的像素数据执行第二指令I1相关联的像素结果退出 ALU,依此类推。再次参看图4,指令I0与用于像素P0—P3的像素数据的行0像素数 据相关联,指令I1与用于像素P0—P3的行1像素数据相关联,依此类推。因为在像素 P0—P3上应用相同的指令,所以ALU以SIMD的方式操作。
图7A展示流经根据本发明一个实施例的ALU的级的像素数据。在本实施例中, 要花费四个时钟循环对像素数据的操作数进行操作——更具体来说,执行指令。实质上, 每一ALU有四个管道级深。也参看图7B,在第一时钟循环期间,将用于第一像素的像 素数据读取到ALU(ALU的级1)中。在第二和第三时钟循环期间,对像素数据执行 计算(例如,在第二时钟循环中),可在乘法器中将操作数相乘,且在第三时钟循环中, 可在加法器(ALU的级2和3)中将乘法器结果相加。在第四时钟循环(ALU的级4) 期间,将像素数据写回到缓冲器或全局寄存器。此外,在第二时钟循环期间,将用于第 二像素的像素数据读取到ALU中——所述数据跟在用于第一像素的像素数据行之后穿 过ALU的其余级。此外,在第三时钟循环期间,将用于第三像素的像素数据读取到ALU 中——所述数据跟在用于第二像素的像素数据之后穿过ALU的其余级。一旦ALU“准 备完毕”,便如刚刚所描述的,用于一个像素的像素数据跟在用于另一像素的像素数据 之后穿过ALU。
如上所述,在一个实施例中,将源自每行的边带信息的相同指令应用于一群组(例 如,四边形)中的所有像素。举例来说,在给定的时钟循环处,指令将指定从用于像素 群组中的第一像素的像素数据中选出的一组操作数。在下一时钟循环中,所述指令将指 定从用于群组中的第二像素的像素数据中选出的另一组操作数,依此类推。根据本发明 的实施例,源自每行的边带信息的条件执行位与每组操作数相关联。一般来说,如果将 条件执行位设置成不执行,那么ALU不对与所述条件执行位相关联的操作数进行操作。
图7A展示根据本发明一个实施例的ALU的每一级中的操作数组。举例来说,也 参看图7B,在时钟循环N-1处,ALU的级1中的操作数组包含如指令I2所指定的用于 像素P1的像素数据(在图中指示为P1.I2);级2正在对却是根据指令I2指定的从用于 像素0的像素数据中选出的操作数组(P0.I2)进行操作;依此类推。在下一连续时钟 循环N中,每一组操作数移动到下一ALU级;将要加载到ALU中的下一组操作数是 P2.I2。
在图7A的实例中,将与操作数P2.I2相关联的条件执行位设置成“不执行”。可通 过着色器程序在图形管线顶部(前端)设置条件执行位。或者,可将条件执行位设置(或 重设)成先前执行的指令的结果。
因此,ALU不对操作数P2.I2进行操作。更具体来说,在一个实施例中,如果将条 件执行位设置成不执行,则ALU不锁存操作数P2.I2。因此,已经对这些操作数进行操 作的ALU的管道级不改变状态。因此,在时钟循环N处,ALU的级1和级2均含有相 同数据(P1.I2),因为触发器未被锁存且因此保持处于其在前一时钟循环N-1中所处的 状态。因此,ALU的下游管道级中的组合逻辑并不转变,且不会不必要地消耗功率。
在时钟循环N+1中,不切换ALU的级2中的组合逻辑,因为操作数与前一时钟 循环中的相同。类似地,在时钟循环N+2中,不切换ALU的级3中的组合逻辑。在 时钟循环N+3中,与级4相关联的触发器不改变状态,因为操作数组与前一时钟循环 相同。
即使条件执行位被设置成不针对操作数P2.I2执行,一组“无用的”操作数也有效 地传播穿过其位置中的ALU。以此方式,维持穿过图形管线的数据的次序,且也维持 ALU上的时序。
一般来说,当将条件执行位设置成不执行时,ALU不对与条件执行位相关联的像 素数据执行任何工作。实际上,条件执行位充当启用位——如果将所述位设置成不执行, 那么数据触发器不被启用且将不俘获新输入的操作数。而是,触发器的输出保持其当前 状态(当在前一时钟循环中俘获到数据时引入的状态)。在一个实施例中,这通过选通 触发器的时钟来实现。如果将条件执行位设置成不执行,那么不对俘获到输入操作数的 触发器进行计时——时钟信号不转变,且因此触发器未俘获到新数据。在一个实施例中, 如果将条件执行位设置成不执行,则只有ALU的第一级中的触发器(图7B的锁存器 710)不被计时;然而,本发明不限于此。也就是说,可在ALU的一个或一个以上级处 选通时钟。或者,不是选通时钟,而是可在条件执行位的控制下选通对触发器的数据输 入。
通过在不必要时不对ALU中的触发器进行计时来节省功率。也在ALU的组合逻辑 中节省了功率,因为在逻辑中未发生任何切换行为,因为操作数在时钟之间是相同的。
图8是根据本发明一个实施例的用于在图形处理器单元管线中处理像素数据的由 计算机实施的方法的实例的流程图800。虽然在流程图中揭示了具体步骤,但这些步骤 是示范性的。也就是说,本发明的实施例非常适合于执行流程图中提到的各种其它步骤 或步骤的变化形式。可采用与所展示的次序不同的次序来执行流程图中的步骤。
在方框810中,根据指令来执行算术运算。将相同的指令应用于不同组的像素数据 操作数。每一组操作数与一像素群组(例如四边形的)中的相应像素相关联。条件执行 位也与每一组操作数相关联。
在方框820中,与一组操作数相关联的条件执行位的值用来确定是否将要将那些操 作数加载到ALU中。更具体来说,如果将条件执行位设置成第一值(例如0或1),则 将操作数加载到ALU中并由ALU操作,但如果将条件执行位设置成第二值(例如,分 别是1或0),则不将操作数加载到ALU中或由ALU操作。
总之,在一像素群组上应用指令,但可能没必要对用于群组中的每一像素的像素数 据执行指令。为了在管线中维持适当的次序,将指令应用于群组中的每一像素——从用 于群组中的每一像素的像素数据中选出一组操作数。然而,如果将与用于像素的一组操 作数相关联的条件执行位设置成不执行,那么ALU不对用于所述像素的那些操作数进 行操作。因此,不会不必要地对ALU触发器进行计时和切换,因而节省了功率。由此, 本发明的实施例非常适合于手持和其它便携、用电池操作的装置以及其它类型的装置中 的图形处理。
已经出于说明和描述的目的而呈现了以上对本发明的具体实施例的描述。其并不期 望是详尽的或者将本发明限制于所揭示的精确形式,且鉴于以上教示,许多修改和变化 形式都是可能的。举例来说,本发明的实施例可在形式上或功能上不同于图2的GPU 110 的GPU上实施。之所以选择和描述了所述实施例,是为了最好地解释本发明的原理及 其实践应用,因而使得所属领域的技术人员能够以适合于所预期的特定用途的各种修改 来最好地利用本发明和各种实施例。希望本发明的范围由所附权利要求书及其等效物来 界定。
相关美国申请
本申请案涉及T.博格兰(T.Bergland)等人于2007年8月15日申请的第11/893,499 号美国专利申请案,标题为“在图形处理器单元管线中缓冲解串行化的像素数据” (Buffering Deserialized Pixel Data in a Graphics Processor Unit Pipeline)且代理人案号为 NVID-P003219,该申请案转让给本发明的受让人,且其全文在此以引用的方式并入本 文中。
本申请案涉及T.博格兰(T.Bergland)等人于2007年8月15日申请的第11/893,622 号美国专利申请案,标题为“图形处理器单元管线中的共用的可读取且可写入的总值” (Shared Readable and Writeable Global Values in a Graphics Processor Unit Pipeline)且代 理人案号为NVID-P003476,该申请案转让给本发明的受让人,且其全文在此以引用的 方式并入本文中。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈