增进绘图处理单元的总处理量的方法与系统的制作方法

文档序号:6357095阅读:96来源:国知局
专利名称:增进绘图处理单元的总处理量的方法与系统的制作方法
技术领域
本发明涉及改善绘图处理单元的总处理量的方法与系统,特别是涉及可同时处理 多个线程的多个存取要求的执行单元改善方法和系统。
背景技术
众所皆知,三维计算机绘图技术着重于将三维(3D)物体以二维QD)影像的方 式呈现出来,并显示于诸如阴极线真空管(CRT)屏幕或液晶屏幕(LCD)之类的显示装置 上。此三维物体可以是简单的几何基元(primitive),例如点、线段、三角形或是多边形 (polygon)。较为复杂的物体则是以一系列相连的平面多边形的方式呈现在显示装置上,例 如一连串的平面三角形。所有的图形基元都可以单一顶点或一组顶点的方式来表示,例如 以座标(Χ,Υ,Ζ)来定义一个点,或是线段的某一端点,或是多边形的某一个顶点。为了产生用来代表三维物体的二维投影数据使物体可呈现在显示装置上,图形基 元的顶点需要经过一连串的操作,以及绘图显像管线的多个阶段来处理。一般的管线是由 一连串相连的处理单元或阶段所组成,上一阶段的输出可做为下一阶段的输入。对于绘图 处理单元而言,管线阶段包括以下逐一顶点操作,基元合成操作,像素操作,像素合成操 作,光栅扫描(rasterization)操作以及碎型(fragment)操作等等。在典型的绘图显示系统中,可利用影像数据库来储存场景中物体的叙述符。物体 可以多个小多边形来表示,这些小多边形是涵盖物体表面的多边形,如同墙面上的磁砖。每 一个多边形又可以顶点座标清单以及表面材质特性来表示,甚或再包括每一顶点相对于表 面的法线向量。顶点座标清单可以是模型空间的CTZ座标,表面材质特性可包括颜色,纹理 或亮度等。对于具有复杂曲面的三维物体,通常是以三角形或四边形来表示,而四边形又可 拆解为一对三角形。当使用者决定了观看的角度,转换引擎单元便将物体座标转换至相对于观赏角 度。此外,使用者可以指定视野范围,所产生的影像的大小,以及可见物体的后方是否包含 某一背景或是将背景删除。当视野区域选定之后,裁剪单元将位于视野区域之外的多边形剔除,并且将部份 位于视野区域之外部份位于视野区域之内的多边形加以裁剪。裁减后的多边形对应至原多 边形位于视野区域之内的部份,其裁减后的边缘对应至视野区域的边界。接着多边形的顶 点会传递到下一个管线阶段,包含每一顶点在视野区域的座标(XY)以及其相对的深度值 (Z)。之后一般的绘图处理系统会进行光源模型处理,再将多边形以及其颜色值传递至光栅 扫描器。对每一个多边形而言,光栅扫描器会判断哪些像素位在此多边形,并将其对应的 颜色值和深度值写入帧缓冲器(frame buffer)。光栅扫描器会比较目前处理的多边形其像 素的深度值与原先储存在帧缓冲器相对应位置的像素的深度值,如果多边形像素的深度值 较小,表示其位于帧缓冲器所储存的像素的前方,则以多边形像素的深度值取代原帧缓冲 器的深度值,因为目前处理的多边形会遮蔽原先储存于帧缓冲器内的多边形。上述步骤会持续重复直到所有的多边形都已显像处理过。之后,影像控制器会将帧缓冲器的内容以逐 一扫描线的方式呈现在显示装置上。实现即时显像的典型方式是以像素来显示多边形,此像素可能位于多边形之内或 之外,所产生的多边形边缘在静态显示之下可能产生不规则外观,而在动态显示之下则是 模糊的影像。其问题的背后成因在于锯齿(aliasing)效应,而用以降低此效应的方法就称 ^ixfIfS (anti-aliasing) τ^。以屏幕为基础的反锯齿方法并不需要欲显像的物体的相关信息,因为此种方法只 需要绘图管线的输出样本。其中一种典型的反锯齿方法是利用扫描线反锯齿技术,称为多 取样反锯齿(Multi-Sample Anti-Aliasing,MSAA)方法,此方法在每一次传递时都对单一 像素作一个以上的取样。从每一个像素所取样出来的样本,或称做次像素的数量即是所谓 的取样率,一般来说取样率越高就会耗费越多的存储器流量。虽然上文仅简略说明绘图处理单元的各个元件的大致操作,本领域的技术人员应 可理解绘图数据的处理十分繁复,因此提高处理效能与降低设计复杂度为常见考量和需 求。若能提高绘图处理单元的数据总处理量(throughput),不仅可达到提高处理效能的目 的,亦可在维持一定效能之下,减少硬件需求的复杂度。

发明内容
本发明的一实施例提供一种绘图处理单元,包含一执行单元,用以处理可编程着 色器操作,并可用以同时处理多个线程的处理操作;一第一存储器单元,用以形成一暂存器 文件来调节该多个线程的暂存器操作,该存储器单元包含多个存储库,其中多个第一存储 库分配给多个第一线程,多个第二存储库分配给多个第二线程;一第二存储器单元,用以形 成一常数闪速存储器来调节该执行单元的该多个线程所对应的多个着色器操作的常数存 取,该常数闪速存储器用以储存对应于该多个着色器操作的多个内文,并用以储存该多个 内文的多个常数的多个版本;以及一第三存储器单元,用以形成一顶点属性闪速存储器来 调节该执行单元的该多个线程所对应的多个着色器操作的顶点属性存取。本发明的另一实施例提供一种绘图处理单元,包含一执行单元,可用以执行多线 程操作,该执行单元包含一线程控制器,该线程控制器包含一第一指令撷取仲裁器和一第 二指令撷取仲裁器;其中该第一指令撷取仲裁器用以代表该执行单元的多个第一线程来撷 取指令;以及该第二指令撷取仲裁器用以代表该执行单元的多个第二线程来撷取指令。本发明的又一实施例一种适用于执行单元的指令处理方法,包含对应于多个有 效线程的一第一有效线程,从一指令闪速存储器撷取一执行单元的一第一指令;传播该第 一指令给该多个有效线程;维持该第一指令于对应于该多个有效线程至少其中一个的一指 令队列中;解码该指令队列中的一第二指令;以及发送该第二指令的数据存取要求给至少 下列一个一常数闪速存储器、一顶点属性闪速存储器、一共同暂存器文件和一执行单元数 据路径。


图1为现有技术的计算机系统的绘图管线的部份元件的功能方块图。图2为本发明一实施例的绘图处理管线的部分元件方块图。
图3为本发明一实施例的绘图处理器的方块图。图4为本发明一实施例的执行单元的内部方块图。图5为本发明一实施例的常数闪速存储器的功能方块图。图6为本发明另一实施例的执行单元的内部方块图。图7为本发明一实施例的操作流程图。附图符号说明100 绘图处理管线110 顶点着色器120 几何着色器130 三角形设置单元140 跨距/像砖产生器150 属性设置单元160 像素着色器170 帧缓冲器200 绘图处理管线250:存储器单元252 命令串流处理器254 顶点着色器256 几何着色器257 三角形设置单元258 跨距/像砖产生器259 属性设置单元260 像素着色器262 帧缓冲器304 执行单元集区控制单元306:执行单元集区308 顶点着色器310 几何着色器312 像素着色器318:跨距/像砖产生器320 三角形设置单元322 属性设置单元400、600 执行单元402、604 线程控制器404、606 指令撷取仲裁器0406、608 指令撷取仲裁器1408、602 指令闪速存储器410,624 常数闪速存储器412 :L2闪速存储器存取单元
6
413 指令传播总线414,628 顶点属性闪速存储器416,632 共同暂存器文件0417,610,612 偶数线程418,634 共同暂存器文件1419、614、616 奇数线程420、636 执行单元数据路径422,638 算术逻辑单元0424,640 算术逻辑单元1似6、642:内插器428,644 输出缓冲器500 常数闪速存储器502 头标表504 对照表506 闪速存储器508,626,630 先进先出缓冲器618 常数闪速存储器仲裁器620 共同暂存器文件仲裁器622 顶点属性闪速存储器仲裁器940 存取对应的存储器地址
具体实施例方式以下将结合附图来说明本发明的各个实施例,虽然本发明是藉由这些实施例来说 明,但本发明不局限于下面所揭示的实施例,下述实施例的变形、改进与等同实施方式皆属 于本发明的范围。本发明提供一种可提高绘图处理单元的数据总处理量的系统和方法。在详细探 讨本发明的各个实施例之前,请先参见图1,其绘示绘图处理管线100的的部分元件方块 图,特别是绘图处理管线100的基本元件。这些基本元件包含顶点着色器110、几何着色 器120、三角形设置单元(triangle setupunit) 130、跨距与像砖产生器(span and tile generator) 140、属性设置单元150、像素着色器160以及帧缓冲器170。上述元件的基本功 能和操作为本领域的现有技术,故在此不多加赘述。简而言之,绘图基元可以位置数据(X、 Y、Z和W座标)还有亮度及纹理数据来定义,以上所有数据可传送至顶点着色器110。如所 已知,顶点着色器110可对从命令清单所接收的绘图数据执行各种转换,例如从世界座标 转换至视野座标,再到投影座标,最后是屏幕座标。顶点着色器110可执行的各项功能为本 领域技术人员所熟习,在此不加以叙述。顶点着色器110输出几何基元给几何着色器120。几何着色器120所产生的几何和其他绘图数据会传送到三角形设置单元130来执 行三角形设置操作,其细部功能和实现方式可依据需求有所不同。一般来说,三角形设置单 元130接收三角形基元的顶点信息,并依据基元的类型执行各项操作,例如某些几何转换。对每一顶点而言,所提供的几何信息包含X、Y、Z和W座标,其中X、Y、Z为几何座标,而W为齐次(hoogenous)座标。如本领域技术人员所熟习,相关转换可能是例如 从模型空间到世界空间,再到视野空间,投影空间,然后是齐次空间以及正规化装置座标 (normalized device coordinates,NDC),最后是屏幕空间。请注意,为了简化说明之便,本 发明的叙述省略部分绘图管线元件,但这些绘图管线元件的操作应为本领域技术人员所熟 习。举例来说,本发明未揭示光栅扫描管线的所有阶段,但本领域的技术人员应可理解其包 含未揭示的管线阶段。以上所述的绘图管线阶段通常实现于绘图处理单元或绘图处理装置的中。某些 管线阶段依循已公开的应用程序界面(application program interface, API)的规范,或 是多个应用程序界面群组所制定的需求限制。上述应用程序界面可能是例如Direct 3D API。下文将以另一观点阐述绘图管线的实现。请参见图2,其绘示本发明一实施例的绘图处理管线200的部分元件方块图。首先 是命令串流处理器(command stream processor, CSP) 252,主要用以从存储器接收或读取 顶点。顶点可用以形成几何基元和管线的工作项目。命令串流处理器252从存储器读取数 据,并利用这些数据来产生绘图管线的三角形、线段、点或其他基元,这些几何信息组合完 毕之后接着被传送到顶点着色器254。某些绘图API常有的限制在于,诸如顶点着色器之 类的着色器是使用者可编程阶段,也就是说使用这些API的程序设计者可以自行设计着色 器,以及编程着色器可执行的操作。因此,在图2中以圆角标示的管线阶段即为可编程的阶 段,例如顶点着色器254,这些可编程阶段可藉由绘图处理器的处理核心单元的可编程执行 单元(或集区)的指令执行来实现。顶点着色器2M藉由执行例如转换、扫描或打光等操 作来处理顶点,然后传送给几何着色器256。几何着色器256所接收的输入为一完整基元的 所有顶点,并将这些顶点以单一拓朴的形式输出,例如三角形串,线段串或是点清单等。此 外几何着色器256还可执行诸如镶嵌和阴影锥生成等操作。几何着色器256输出数据至三角形设置阶段257,其用以执行例如三角形删除 (triangle trivial rejection)、行列式(determinant)计算、剔除(culling)、前属性设 置(pre-attribute setup)、边缘函数计算以及安全频带剪裁(guardbandclipping),其操 作为本领域技术容易所熟知,在此不赘述。三角形设置阶段257输出信息至跨距与像砖产 生器258,其用以将不需呈现于屏幕上的三角形剔除以及执行其他操作。本领域的技术人员 应可理解绘图管线还包含其他处理阶段,例如深度测试。深度测试可以据三角形的深度值 来决定此三角形是否会显示于屏幕之上,若不需显示则剔除此三角形。其他未讨论的管线 阶段为本领域的已知技术,故在此省略。如果三角形设置阶段257所处理的三角形没有被跨距与像砖产生器258或其他管 线阶段所剔除,则属性设置(attribute setup)阶段259会对这些三角形做属性设置操作。 属性设置阶段259会产生后续管线阶段所需的属性的内插函数清单,并且对管线阶段所处 理的几何基元的各项属性值作处理。像素着色器260则是在属性设置阶段259每次输出可覆盖一个完整基元的各个顶 点时被启动。如所已知,像素着色器260可执行内插或其他操作来决定输出至帧缓冲器沈2 的像素颜色值。图2的各元件的功能操作为本领域技术人员所熟知,在此不赘述,因此上述 各元件的内部操作亦省略讨论。接着请参见图3,其为本发明一实施例的绘图处理器环境的方块图。图3仅绘示有助于理解本发明的相关元件,并未完整绘示绘图处理器的所有元件,本领域的技术人员应 可自图3理解相关绘图处理器的一般功能和架构。于本实施例中,为叙述简洁之便,绘图处理单元300的部份元件被省略,但本领域 的技术人员应可理解其中还包含其他硬件或逻辑元件。绘图处理单元300包含执行单元集 区306和执行单元集区控制单元304。执行单元集区306包含多个可编程的执行单元,而执 行单元集区控制单元304用以掌控执行单元集区306的执行单元的线程管理,以及系统使 用者和绘图处理单元300的其他元件的相互沟通。执行单元集区控制单元304还包含闪速 存储器次系统,其具有可供执行单元集区306使用的一个或多个闪速存储器,并可用以储 存数据或一般的存储器存取,例如顶点着色器线程可储存数据以供后续的三角形设置单元 使用。此外,执行单元集区306的每一个执行单元可各自具有执行单元缓冲器,用以储存此 执行单元本身的后续线程所需使用的数据。如上所述,绘图管线的可编程阶段包含顶点着色器308、几何着色器310、像素着 色器312都是在执行单元集区306所执行。由于执行单元集区306通常是可执行多线程操 作的处理核心单元,执行单元集区控制单元304需负责执行单元集区306的线程调度。当 执行单元集区控制单元304接收到执行某一可编程着色器的要求时,其会指示执行单元集 区306中的某一执行单元建立一个新线程来执行着色器要求。执行单元集区控制单元304 可管理执行单元集区306的相互载入,以及将某一着色器的资源转移给另一着色器来改善 管线整理效能,相关管理技术为已知技术,在此不赘述。举例来说,如果以绘图处理单元300 的数据总处理量来看,像素着色器312是造成瓶颈的源头,那么执行单元集区控制单元304 可以配置更多的执行单元资源给像素着色器312来做改善。图4为本发明一实施例的执行单元400的部份元件方块图。本实施例的单一执 行单元400可同时执行多个指令,因此执行单元的集区可同时执行多个着色器线程。执 行单元400包含线程控制器402,用以管理分派给执行单元400的任务,以及其中的有效 (active)线程和休眠(slewing)线程。有效线程是指对应于该任务的线程已经准备好可 执行,也就是说,线程所需要的数据可被取得因此执行单元可以执行该线程。而休眠线程则 是指线程控制器402所指派的任务尚未准备好,亦即休眠线程处在等待绘图管线其他元件 传送数据的状态。线程控制器402包含指令撷取仲裁器0 404和指令撷取仲裁器1406,而 在本实施例中线程则可分为偶数线程和奇数线程。举例而言,如果执行单元400可执行16 个线程,其中8个线程,也就是偶数线程可分派给指令撷取仲裁器0 404,而剩下8个奇数线 程则分派给指令撷取仲裁器1 406。将所有线程分成两组并且具有个别的指令撷取仲裁器 可减少指令撷取所造成的指令延迟,进而增进执行单元400的数据总处理量。当然,于其他 实施例中线程可以其它方式分组或配置。指令撷取仲裁器404和406可以各自独立替执行单元400的有效线程仲裁其要求 来撷取指令,仲裁方式是依据提出要求的线程的时序。自线程接收到指令要求之后,指令撷 取仲裁器404和406从指令闪速存储器408撷取指令。指令闪速存储器408可包含指令 闪速控制器,用以执行闪速命中测试来判断所要求的指令是否存在指令闪速存储器408之 内。如果指令不在指令闪速存储器408之内,或是闪速命中测试的结果是误失,就必须通过 二阶L2闪速存储器存取单元412从二阶L2闪速存储器或其他存储器索取指令。撷取到的 指令会在指令传播总线413上传播给偶数线程417和奇数线程419,如此一来,若有一个以上的线程要求相同指令时,至少可以减少一次指令撷取,进而减少指令延迟。也就是说,如 果有不只一个线程向指令闪速存储器408要求同一个指令,不需要分别为各个线程撷取和 传送指令,因为所要求的指令是通过指令传播总线413回传至指令闪速存储器408,而执行 单元400中无论是偶数线程417或奇数线程419都可存取指令传播总线413。指令撷取到之后,偶数线程417和奇数线程419之内的线程会判断所撷取的指令 是否需要与常数闪速存储器410、顶点属性闪速存储器414、共同存储器文件0 416和共同 存储器文件1 418相互动。举例来说,材质特性可能储存于常数闪速存储器410,还有其他 对某一内文而言不会改变的参数,以及所要渲染的物体的所有顶点的常数。此外光源特性 也是储存于常数闪速存储器410,因为这些参数通常在帧产生的过程中是稳定不变的。如所 绘示,共同暂存器文件分成偶数和奇数群组,与线程划分为偶数和奇数群组相同。如果指令 需要从常数闪速存储器410存取数据,那么在所需的数据准备好之前,指令不会被发送出 去。同样地,如果指令需要常数闪速存储器410的数据,指令在数据从常数闪速存储器410 获得数据之前不会被发送。更进一步,如果所需的数据是位于绘图处理单元之内,但位于执 行单元外部,在取得这些外部数据之前指令不会被发送。举个例子,某个指令需要从执行单 元外部的元件撷取纹理数据并储存于暂存器,线程就必须等待所要求的数据成功撷取并回 传。当指令的执行所需的数据已经准备完备,线程控制器402可以发送指令以供执行 单元数据路径420来执行。执行单元数据路径420包含算术逻辑单元0 422、算术逻辑单元 1似4和内插器426。当执行单元数据路径420对指令的执行结束后,所产生的结果可以从 执行单元400的输出缓冲器4 作输出,进而传送至执行单元400外绘图处理单元内的元 件,或是执行单元内的其他元件,例如顶点属性闪速存储器414。举例而言,若某个指令的执 行需要更新顶点属性闪速存储器414内的数据,这些数据就可以在执行单元数据路径420 执行完毕后,通过输出缓冲器4 传送至顶点属性闪速存储器414。在另一个范例中,执行 单元数据路径420可以计算纹理座标或其他参数,然后通过输出缓冲器4 输出至纹理单 元或其他执行单元外部的元件。请注意本发明各实施例中并未绘示所有的元件和数据路径,以利于文字说明的简 洁之便。例如线程控制器可以耦接至执行单元集区控制单元,以用于接收执行单元需管理 的任务。再者,某些元件可能需要从L2闪速存储器获取数据,而L2闪速存储器可能位于执 行单元外部。因此,L2闪速存储器存取单元所代表的是存取L2闪速存储器或其他存储器 的机制。接着请参见图5,其绘示本发明一个实施例的常数闪速存储器的方块图,此闪速存 储器可用于执行单元内。由于执行单元可以同时处理对应于多种类型的着色器操作的多个 执行线程,例如像素着色器、顶点着色器和几何着色器,执行单元地须维持多组常数以供执 行单元数据路径来使用。举例来说,一个同时执行像素着色器和顶点着色器的执行线程的 执行单元需要维持像素着色器常数和顶点着色器常数。此外执行单元还必须维持常数的多 个内文以及每个常数内文的多个版本。例如执行单元内有两条执行线程在执行像素着色器 操作,而执行线程内存在多个不同的内文,因此执行单元必须维持至少两组不同内文的像 素着色器常数。根据上述原因,本实施例的常数闪速存储器可用以维持不同类型的着色器 执行线程的至少两组常数内文,同理执行单元也必须维持各内文的常数的多个变化版本。举例来说,如果存储器中的顶点着色器内文的一个常数被顶点着色器执行线程所改变,常 数闪速存储器可以维持此常数的先前版本以及从存储器中撷取更新后的版本。如此一来, 执行单元内的其他顶点着色器执行线程可以根据需求存取此常数的先前版本或更新版本。常数闪速存储器500包含头标表502、闪速存储器506、对照表504。着色器内文的 各个常数可以根据头标表502的定义储存在闪速存储器内。例如,头标表502可以根据着 色器类型、内文或内文识别符概括常数的分组。在本实施例中,对应于同一着色器类型和内 文识别符的常数连续地将基底地址存入闪速存储器。像素着色器可以直接向常数闪速存储 器500对某个常数提出要求,但不需要有关该常数位置的信息。着色器执行线程只需要知 道该常数在某个内文内位置即可向常数闪速存储器500提出要求。在图5的实施例中,如 果像素着色器执行线程内有一个内文识别符为0的内文,那么只需要提出对内文识别符0 的常数要求,常数闪速存储器500就会回传头标表502中对应的基底地址或其附近的第一 常数。同样地,如果顶点着色器执行线程内有一个内文识别符为1的内文,那么只需要提出 对内文识别符1的常数要求,常数闪速存储器500就会回传头标表502中对应的基底地址 或其附近的第二常数。另外,常数闪速存储器500也可以储存常数经过执行单元内的执行续处理的多个 版本。本实施例的对照表504可维持有关经过各着色器执行线程处理的常数的数据,还有 追踪每个常数的各版本,举例来说,对照表504的第一个项目包含经过顶点着色器执行线 程处理的顶点着色器常数A。因此,常数闪速存储器500可已在闪速存储器中维持此常数的 每个版本,以备在其他执行线程需要时可以使用。常数值的多个版本可依上述范例来维持。常数闪速存储器500还包含先进先出缓冲器FIFO 508,用以传送数据给执行单元 所处理的着色器线程或是其他线程。FIFO 508可以配置为任何大小而包含不同数目的项 目,以符合常数闪速存储器500所在的执行单元的实际需要。举例来说,当某一着色器线程 向常数闪速存储器500要求常数时,可利用头标表502和对照表504来定位此常数并传送 给FIFO 508。FIFO 508接着可以传播讯号给执行单元的其他元件以示意此常数已准备好。 因为执行单元可同时处理多个指令,FIFO 508允许在先前线程所要求的常数撷取完成并准 备传送之前,其他线程即可发送其他常数要求。常数闪速存储器500的总数据处理量可因 此提高,因为常数闪速存储器500可服务的线程要求数量增加了。请注意本发明的常数闪 速存储器500的头标表502、对照表504和FIFO 508可以任何形式来实现,本领域的技术人 员应可理解本实施例仅为其中一种实现方式。图6绘示本发明图4的执行单元的另一实施例方块图。除了线程控制器604、指 令撷取器0 606和指令撷取器1 608之外,本实施例还包含执行单元600内有效线程610、 612、614和616,以及对应的指令队列。为表述简洁之便,图6并未绘示所有的有效线程和指 令队列,本领域的技术人员应可理解执行单元600可能包含较多或较少数量的有效线程。 在本实施例中执行单元600可同时处理至少八条有效线程,而有效线程又可分为偶数群组 和奇数群组。换个角度来说,执行单元600可已包含至少八个指令队列,分别对应至上述至 少八条有效线程。本实施例中有效线程分别包含可保持四个指令的指令队列。指令撷取器 0 606和指令撷取器1 608替有效线程向指令闪速存储器602撷取指令,其中指令撷取器0 606代表偶数有效线程610、612,而指令撷取器1 608代表奇数有效线程614、616。请注意对应于有效线程的指令队列可用以根据从指令闪速存储器或其他存储器
11撷取指令的延迟量,因而维持较多或较少数量的指令,而不一定是四个指令。每条有效现成 的指令都是在实际执行之前预先撷取(prefetch),藉此减少发送指令要求给指令闪速存储 器的延迟,还有在指令不存在于指令闪速存储器时,从L2闪速存储器或其他存储器获得指 令所造成的延迟。再者,请注意将有效线程的指令的撷取与指令的解码和执行分离处理可 以改善执行单元的效能和总处理量。撷取到的指令可以通过指令传播总线617传播给偶数 线程和奇数线程。如此一来,若有一个以上的线程要求相同指令时,至少可以减少一次指令 撷取,进而减少指令延迟。也就是说,如果有不只一个线程向指令闪速存储器602要求同一 个指令,不需要分别为各个线程撷取和传送指令,因为所要求的指令是通过指令传播总线 617回传至指令闪速存储器602,而执行单元600中无论是偶数线程或奇数线程都可存取指 令传播总线617。每个有效线程还包含指令预解码器(predecoder),用以判断下一个要处理的指令 是否包含常数的撷取或储存,或是顶点属性数据的撷取或储存,或是需要与共同暂存器文 件632、634其中一个互动。如果指令预解码器发现指令包含常数的撷取或储存,或是需要 与常数闪速存储器拟4互动,那么该指令所在的有效线程所对应的指令预解码器可以向常 数闪速存储器仲裁器618发送要求。常数闪速存储器仲裁器618是用以仲裁常数闪速存储 器624的存取。在本实施例中,常数闪速存储器仲裁器618会对常数闪速存储器拟4提出 要求。如上所述,常数闪速存储器6M会处理常数撷取要求,并将所要求的常数储存于常数 闪速存储器624的FIFO 6沈。相似地,如果指令队列的指令要求顶点属性数据的撷取或储存,或是需要与顶点 属性闪速存储器622互动,那么指令预解码器可以向顶点属性闪速存储器仲裁器622发送 要求。顶点属性闪速存储器6 会处理常数撷取要求,并将所要求的顶点属性数据储存于 与顶点属性闪速存储器6 耦接的FIF0630。如果指令需要与共同暂存器文件632、634其 中一个互动,那么该指令所在的有效线程所对应的指令预解码器可以向共同暂存器仲裁器 620发送要求。共同暂存器仲裁器620是用以仲裁共同暂存器文件0 632或是共同暂存器 文件1 634的存取要求,其可以根据指令是来自偶数线程或是奇数线程,发送指令要求给 共同暂存器文件0 632或共同暂存器文件1 634。请注意根据图6的执行单元架构,因为常数闪速存储器624、共同暂存器文件0 632和共同暂存器文件1 634、顶点属性闪速存储器6 的存取要求可以在指令于执行单元 数据路径636执行之前先发送和处理,如此一来减少了处理瓶颈,执行单元的总处理量可 以获得提升。举例来说,如果指令包含常数撷取要求,而且常数闪速存储器需要从L2闪速 存储器或是其他存储器撷取所要求的常数,那么可能需要多耗费数个时脉周期来完成。然 而本发明的执行单元则不需要暂停线程来等待常数撷取,因为执行单元可以同时处理其他 指令,例如对共同暂存器文件0 632和共同暂存器文件1 634,或是顶点属性闪速存储器 628的要求。如上所述,执行单元600还包含执行单元数据路径636,用以利用从常数闪速存储 器624、共同暂存器文件0 632、共同暂存器文件1 634,或是顶点属性闪速存储器6 所撷 取的数据执行指令。线程控制器604在指令执行所需的数据准备完成之后可发送指令给执 行单元数据路径636。举例来说,在指令需要向常数闪速存储器6M要求常数的情况下,当 所要求的常数已经储存在常数闪速存储器FIFO 626时,那么线程控制器604可以发送指令给执行单元数据路径636,而执行单元数据路径636可以从常数闪速存储器FIFO 626读取 数据,并且把数据通过数据输出缓冲器644输出。同样地,在指令需要与共同暂存器文件0 632或共同暂存器文件1 634其中一个互动的情况下,当指令准备好可被执行单元数据路 径636所执行时,线程控制器604可以发送指令给执行单元数据路径636。换句话说,当指 令执行所需的数据准备好时,线程控制器604可以发送指令以供执行。除此之外,为了更近一步改善执行单元的总处理量,本发明可以对执行单元数据 路径636进行量测以最佳化指令的执行。举例来说,可以将两个指令合并来改善执行单元 的总处理量,一个是对某一个共同暂存器文件的两个数值做运算的算术指令,一个是接续 将运算结果存入另一个共同暂存器文件的指令。合并后的指令只需执行算术运算并将结果 存入目的暂存器,减少了将算术指令储存于共同暂存器文件的执行。实现方式是分析指令 队列内的指令,或是在编译器(compiler)将软件程序码转译为机器指令时来进行。举例来 说,编译器在将软件程序码转译为机器指令可进行识别来判断是否有如上述先执行算术指 令,接续将结果搬移至另一个共同暂存器文件的情况,在这种情况下,编译器可以产生单一 指令来合并算术指令和搬移结果的指令,而非产生两个分离的指令。在本发明的另一个实施例中,执行单元的线程所执行的共同算术指令包含纹理座 标的计算和将纹理座标存入共同暂存器文件的某一个暂存器。一般来说,此线程执行完纹 理座标计算之后的下一个指令会是采样指令,或是将纹理座标输出至纹理单元或是其他元 件的输出指令,纹理座标的输出是通过数据输出缓冲器来实现的。利用上述的架构,这两个 指令可以合并成一个指令,计算纹理座标和输出至指令的纹理单元或是其他管线元件。因 此,本发明的架构下的执行单元可以允许至少五个操作同时间进行。举例来说,执行单元可 以同时执行常数闪速存储器撷取、顶点属性闪速存储器撷取、常数暂存器文件0撷取、常数 暂存器文件1撷取、以及自执行单元路径输出数据,输出可以是如上述将纹理座标输出至 纹理单元或是其他元件。图7绘示本发明一实施例的方法流程图,其中各项步骤可由执行单元或是执行单 元的元件来执行,例如通过对应于各着色器的线程来执行被分派的指令。首先于步骤702, 一开始可分支为两个平行流程,第一个流程描述指令撷取和队列于线程阶层的仲裁,第二 个流程描述指令阶层的执行仲裁和调度。线程阶层起始于步骤718,决定需指令预取的有效 线程,其方式可依据执行单元内有效线程的时序,选择替最旧(oldest)的线程预取指令。 另一种方式是选择自上一次预取之后等待时间最长的线程,本领域的技术人员应可理解尚 有其它选择方式。步骤720中,从指令闪速存储器中替所选择的有效线程撷取指令,如果指令不存 在于指令闪速存储器,则必须从L2闪速存储器或是其他存储器中撷取指令。所撷取到的指 令会通过传播总线传送给有效线程,如步骤722所示。所有的有效线程皆可通过传播总线 获取指令,因此若有一个以上的线程要求相同的指令,可以减少重复撷取相同指令所产生 的延迟。也就是说,在不同线程要求相同指令的情况下,不需要逐一为每个线程撷取指令, 因为所有线程都可通过传播总线获取指令,不管线程是属于偶数群组或奇数群组。接着在步骤724中有效线程会将指令放入其指令队列,如上所述,执行单元中的 每个有效线程都具有各自的指令队列,指令队列的大小可储存一定数量的指令来减少向指 令闪速存储器撷取指令的延迟。
指令阶层的流程起始于步骤704,解码或是预解码某一有效线程所要执行的下一 个指令,据此决定该指令所需的操作类型。步骤706中判断指令操作的类型,例如常数闪速 存储器存取要求、顶点属性闪速存储器存取要求、共同暂存器文件存取要求、或是执行单元 数据路径可直接执行的操作。于步骤712中,如果指令需要撷取或储存常数,或是与常数闪 速存储器之间有互动,将该指令传送至常数闪速存储器。于步骤710中,如果指令需要撷取 或储存顶点属性,或是与顶点属性闪速存储器之间有互动,将该指令传送至顶点属性闪速 存储器。于步骤708中,如果指令需要与共同暂存器文件之间有互动,将该指令传送至共同 暂存器文件。于步骤714中,如果执行单元数据路径可直接执行指令,将该指令传送至执行 单元数据路径。当执行单元数据路径对指令执行完毕,步骤716将数据输出至目的地,例如 纹理单元之类执行单元内的元件,或是执行单元的外部元件。本发明的各实施例皆可以硬件、软件、韧体或是上述的任意组合来实现。于部分实 施例中,数据的压缩可以通过执行软件或固件来实现,而软件或固件可以是储存于存储器 中并可由适当的指令执行系统来执行。于其他实施例中,本发明可以硬件方式来实现诸如 三角形设置或属性设置阶段,硬件可能是以下各类的任意组合离散逻辑电路、特殊应用整 合电路(ASIC)、可编程门阵列(PGA)、场域可编程门阵列(FPGA)。本发明的流程方法实施例所包含的各项操作或方块应解读为程序码的模块、片段 或部分,其包含可实现特定逻辑功能或步骤的一或多个指令。任何可实现本发明各实施例 的目的和功能的其他变形或替换实施例仍属于本发明所涵盖的范围,在不脱离本发明精神 之下,其他实施例亦可依据功能特性改变操作顺序或同步执行。上述各项操作也可理解为 可实现特定逻辑功能或步骤的硬件逻辑电路的模块或部分。本领域的技术人员应可理解,上述所提的执行单元还可包含额外的元件以实现各 项功能和操作。虽然本发明以多个实施例揭示如上,但本领域技术人员应可理解上述实施 例的各种替换、变更或改进仍属于本发明的范围。
权利要求
1.一种绘图处理单元,包含一执行单元,用以处理可编程着色器操作,并可用以同时处理多个线程的处理操作;一第一存储器单元,用以形成一暂存器文件来调节该多个线程的暂存器操作,该存储 器单元包含多个存储库,其中多个第一存储库分配给多个第一线程,多个第二存储库分配 给多个第二线程;一第二存储器单元,用以形成一常数闪速存储器来调节该执行单元的该多个线程所对 应的多个着色器操作的常数存取,该常数闪速存储器用以储存对应于该多个着色器操作的 多个内文,并用以储存该多个内文的多个常数的多个版本;以及一第三存储器单元,用以形成一顶点属性闪速存储器来调节该执行单元的该多个线程 所对应的多个着色器操作的顶点属性存取。
2.如权利要求1所述的绘图处理单元,还包含一暂存器仲裁器,用以仲裁该执行单元所执行的指令的暂存器文件存取要求。
3.如权利要求1所述的绘图处理单元,还包含一常数闪速存储器仲裁器,用以仲裁该执行单元所执行的指令的常数闪速存储器存取 要求。
4.如权利要求1所述的绘图处理单元,还包含一顶点属性闪速存储器仲裁器,用以仲裁该执行单元所执行的指令的顶点属性闪速存 储器存取要求。
5.如权利要求1所述的绘图处理单元,其中该常数闪速存储器是用以根据一头标表来 维持几何着色器、顶点着色器和像素着色器的多个内文的多个常数。
6.如权利要求5所述的绘图处理单元,其中该常数闪速存储器是用以根据一对照表来 维持该内文的该多个版本。
7.如权利要求3所述的绘图处理单元,还包含一常数闪速存储器先进先出缓冲器,用以储存从该常数闪速存储器所撷取的该多个常 数,并使该多个常数可以被该执行单元的该多个线程所存取。
8.如权利要求4所述的绘图处理单元,还包含一顶点属性闪速存储器先进先出缓冲器,用以储存从该顶点属性闪速存储器所撷取的 该多个顶点属性,并使该多个顶点属性可以被该执行单元的该多个线程所存取。
9.一种绘图处理单元,包含一执行单元,可用以执行多线程操作,该执行单元包含一线程控制器,该线程控制器包 含一第一指令撷取仲裁器和一第二指令撷取仲裁器;其中该第一指令撷取仲裁器用以代表该执行单元的多个第一线程来撷取指令;以及该第二指令撷取仲裁器用以代表该执行单元的多个第二线程来撷取指令。
10.如权利要求9所述的绘图处理单元,其中该执行单元可用以处理至少八个有效线 程,其中该有效线程的第一部分被分配给该第一指令撷取仲裁器,该有效线程的其余部分 被分配给该第二指令撷取仲裁器,该有效线程的该第一部分包含至少四个。
11.如权利要求10所述的绘图处理单元,还包含一指令闪速存储器,用以传送指令给该至少八个有效线程;其中该第一指令撷取仲裁器用以代表该有效线程的该第一部分从该指令闪速存储器撷取指令,该第二指令撷取仲裁器用以代表该有效线程的该其余部分从该指令闪速存储器 撷取指令;其中该第一指令撷取仲裁器和该第二指令撷取仲裁器可用以传播所撷取的指令给该 至少八个有效线程。
12.如权利要求11所述的绘图处理单元,其中该至少八个有效线程的每一个还包含一指令队列,用以维持该指令闪速存储器所传送的第一指令;以及一指令预解码器,用以决定该指令队列中的一第二指令的数据存取要求类型。
13.如权利要求12所述的绘图处理单元,其中该第二指令的数据存取要求类型包含至 少下列一个常数闪速存储器要求、顶点属性闪速存储器要求、共同暂存器文件要求和一执 行单元数据路径可直接执行的要求。
14.如权利要求12所述的绘图处理单元,其中该指令预解码器还用以发送该第二指令 的要求给至少下列一个该常数闪速存储器仲裁器、该顶点属性闪速存储器仲裁器、该共同 暂存器文件仲裁器和该执行单元数据路径。
15.如权利要求12所述的绘图处理单元,其中该执行单元可同时撷取该第一指令以及 决定该指令队列中的该第二指令的该数据存取要求的类型。
16.如权利要求12所述的绘图处理单元,其中该线程控制器用以发送一第三指令给一 执行单元数据路径。
17.一种适用于执行单元的指令处理方法,包含对应于多个有效线程的一第一有效线程,从一指令闪速存储器撷取一执行单元的一第 一指令;传播该第一指令给该多个有效线程;维持该第一指令于对应于该多个有效线程至少其中一个的一指令队列中;解码该指令队列中的一第二指令;以及发送该第二指令的数据存取要求给至少下列一个一常数闪速存储器、一顶点属性闪 速存储器、一共同暂存器文件和一执行单元数据路径。
18.如权利要求17所述的指令处理方法,其中该撷取第一指令的步骤和该发送第二指 令的步骤可同时执行。
19.如权利要求17所述的指令处理方法,还包含传送一要求给该常数闪速存储器,其中该常数闪速存储器维持一头标表,该头标表包 含根据着色器类型和内文所区分的至少一组常数的实体基底地址,该常数闪速存储器可用 以维持对应于顶点着色器、几何着色器和像素着色器的至少两个内文的常数。
20.如权利要求19所述的指令处理方法,其中该常数闪速存储器还包含一对照表,该 对照表用以维持该常数存储器中所更改的常数以及被更改的常数的地址。
21.如权利要求17所述的指令处理方法,其中该常数闪速存储器、该顶点属性闪速存 储器、该共同暂存器文件和该执行单元数据路径可同时处理指令。
22.如权利要求17所述的指令处理方法,还包含当指令执行所需的数据准备好时,发送该指令给该执行单元数据路径;以及通过一数 据输出缓冲器从该执行单元数据路径输出数据。
全文摘要
本发明涉及增进绘图处理单元的总处理量的方法与系统,此系统包含可执行多个线程的执行单元,该执行单元可同时处理对常数闪速存储器、顶点属性闪速存储器、至少一个共同暂存器文件以及执行单元数据路径的存取要求。
文档编号G06T1/00GK102136128SQ20111007851
公开日2011年7月27日 申请日期2011年3月30日 优先权日2010年4月21日
发明者洪洲, 焦阳 申请人:威盛电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1