绘图处理单元、执行单元以及工作管理方法

文档序号:6584125阅读:268来源:国知局
专利名称:绘图处理单元、执行单元以及工作管理方法
技术领域
本发明有关于一种三维计算机绘图系统,特别是有关于如何动态地调度绘图处理 核心系统内的平行着色器单元。
背景技术
用来将三维世界(真实或假想)的对象呈现于二维显示屏幕之上的三维计算机绘 图系统目前正被广泛地使用于各种的应用类型之中。例如,三维计算机绘图可以用于实时 互动的应用程序,像是计算机游戏、虚拟实境、科学研究等等,以及离线应用程序,像是高分 辨率电影的制作、绘图设计等。由于对三维计算机绘图的需求与日俱增,此技术领域于过去 几年间有了长足的发展和进步。为了将三维的对象以二维方式呈现,使用了空间坐标和色彩特征将欲显示的对象 定义于一个三维世界空间中。先决定一个对象表面的点的坐标,并且用这些点(或顶点) 来建立连接这些点的线框以定义此对象的大致形状。在某些情况,这些对象可具有骨干和 接合点,其可绕转、旋转等,或者具有使对象弯曲、压缩和变形等特性。绘图处理系统可集结 对象线框的顶点来建立三角形或多边形。举例来说,对于一个具有简单结构的对象,例如一 面墙或大楼的一个面,可简单地以一个平面上形成一矩形多边形或两个三角形的四个顶点 所定义。对于更复杂的对象,像是树或球体,可能需要上百个顶点形成上百个三角形来定义 此对象。除了定义一对象的顶点,绘图处理器亦可执行其它的工作,像是决定三维的对象 将如何出现在一个二维的屏幕上。此过程包括由朝向一特定方向的单一相机景像决定一个 三维世界的窗口框架景象。从此景象,绘图处理器可剪裁一对象其可能在框架外面的部分、 被其它对象遮蔽的部分、或是偏离相机且被此对象其它部分所遮蔽的部分。此外,绘图处理 器也可决定三角形或多边形的顶点的颜色,并且依照光线效果、反射特性和透明特性等等 来做适当的调整。使用纹理贴图可将平面图片的纹理或颜色显示于三维对象的表面之上, 就好像覆盖表皮层于对象之上。在某些情况,对于位于两顶点之间的像素,或位于由三个或 更多个顶点所形成的一多边形的表面之上的像素,其像素颜色值是可以被插值的,如果顶 点的颜色值已知的话。其它的绘图处理技术可用来将这些对象呈现于一平面屏幕之上。如本领域技术人员所知,绘图处理器包括了被称为着色器的核心数据处理组件, 软件开发者或本领域技术人员可以利用这些着色器来建立影像且随意控制连续影格的视 频。举例来说,顶点着色器、几何着色器和像素着色器通常包含于绘图处理器之内以执行 上述的诸多工作。有些工作也由像是扫描场解析器(rasterizer)、像素插补器(pixel interpolators)和三角设定单元等的固定功能单元所执行。借着建构具有上述个别组件的 绘图处理器,制造商可以提供建构逼真三维影像或视频的基本工具。因为不同的软件开发者或本领域技术人员基于他们的特殊应用而有不同的需求, 因此不容易一开始就能决定整个处理核心内每一着色器单元或固定功能单元应该要包含 于绘图处理器的部分。因此,有需要于绘图处理器此领域提出基于不同的应用类别,而将分
4离的着色器和固定功能单元作结合和比例分配等调度的方法或系统。因而需要提供有能力 于三维绘图技术中克服这些和其它缺失的绘图处理系统。

发明内容
本发明揭露处理和储存绘图数据的系统和方法。其中一个实施例揭露一个绘图处 理单元(Graphics Processing Unit, GPU)包括用以执行多个着色功能的着色装置。此着 色装置包含可平行操作的多个执行单元,每一执行单元有多个可平行操作的线程。每一线 程用以执行多个绘图着色功能。绘图处理单元还包括与着色装置连接的控制装置,此控制 装置用来接收绘图数据,并将绘图数据分配给至少一个执行单元中至少一个的线程。此控 制装置还用以动态地将绘图数据从被认定为较繁忙的线程重新分配到被认定为较不繁忙 的线程。在另一实施例中,一执行单元具有多个线程处理路径、一存储器装置以及一线程 控制装置。线程处理路径用以处理绘图数据,每一线程处理路径具有用以执行顶点着色功 能的逻辑单元、用以执行几何着色功能的逻辑单元和用以执行像素着色功能的逻辑单元。 存储装置用来储存正在处理的绘图数据。线程控制装置用来根据初始配置分配绘图数据到 线程处理路径,线程控制装置还根据线程处理路径的可用性控制绘图数据到线程处理路径 的重新配置。经过阅读以下所述的图示和详细解释,对本领域技术人员而言,本发明其它的系 统、方法、特征和优点将会是显而易见的。本发明的保护范围当视所附的申请专利范围所界 定者为准。


通过以下的图示可更了解本发明所揭露的所有实施例的各个观点。同一个标号于 全文代表同一个组件。图1显示本发明一实施例的绘图处理系统的方块图;图2显示图1的绘图处理单元的一实施例的方块图;图3A显示图1的绘图处理单元的另一实施例的方块图;图3B显示图1的绘图处理单元的另一实施例的方块图;图3C还是显示图1的绘图处理单元的另一实施例的方块图;图4显示根据图3A至3C的执行单元的一实施例的方块图;图5显示根据图3A至3C的执行单元的另一实施例的方块图;图6还是显示根据图3A至3C的执行单元的另一实施例的方块图;图7显示线程控制器和相关的信号流的一实施例的方块图;图8显示线程控制器的另一实施例的方块图;图9显示线程队列的一实施例的方块图;图10显示用来管理绘图处理单元内的工作的一实施例的方法流程图。[主要组件标号说明]12 运算系统14 绘图软件模块16 显示装置18 绘图处理单元
20 应用程序接口24 绘图处理管线26、106 高速缓存系统28-30 顶点着色器3234 扫描场解析器3640 顶点串流高速缓存42、196 第一级高速缓存44,90 第二级高速缓存46 -48 纹理高速缓存5052、56、82、102 执#亍单元54,60,92 高速缓存/控制装置55 调度器62 只读高速缓存64、132 数据高速缓存66 顶点着色器控制装置70、100 命令串流处理器72、96 存储器存取单元74 扫描场解析装置78 包装器84、112 输出闩94 存储器接口104 线程控制装置114、146 指令高速缓存117 顶点和属性高速缓存118、152 公用缓存器文件120、154 执行单元数据路径122 算数逻辑单元126、134 执行单元集区控制单元128、136 高速缓存130 纹理缓冲器140 索引输入撷取单元142、158 断言缓存器文件 144-148 线程高速缓存150156 请求先进先出缓冲器160162 数据输出控制单元
164 Xout接口逻辑单元166 线程工作接口170、186 线程控制器172 ^174 时间阶段比较装置176-
22 软件应用程序
O^M O^M
色色
紅着着 _何素
£ J
Z高速缓存 -统一着色器单元
58 纹理单元
68 扫描场接口
76,86 回写单元 80、110 输入闩 88 纹理寻址产生器 98 三角设定单元 108 线程处理路径 116 常数高速缓存
124 插补器
138 输出缓冲器
Xin接口逻辑单元 -常数缓冲器 -纯量缓存器文件
-线程状态装置 -有效选择装置
178 -、线程指令队列180 -、多工器
182 -、冲突检查装置184 -、仲裁器
188 -、执行单元集区负载线程装置
190 - 1m程缓冲器192,206 线程队列
194,210 ‘ 第一级高速缓存接口
198 -数线程仲裁装置
200 -数线程仲裁装置
202 -数执行单元数据路径
204 -数执行单元数据路径
208 - m程缓冲器212 -、指令撷取装置
214 -、解压缩队列装置216 -、线程控制装置
218 -、计分装置220 -、线程仲裁器
222、224、225、227、228 步骤
具体实施例方式传统上,绘图处理器或绘图处理单元(Graphics Processing Units,GPUs)是合并 于计算机系统内以专门地执行计算机绘图。随着三维计算机绘图的普遍使用,绘图处理单 元变得更加进步且功能强大,某些一般由中央处理单元(Central Processing Unit, CPU) 所处理的工作现在都交由绘图处理单元处理,以达成具有高度复杂性的绘图处理任务。一 般来说,绘图处理单元可嵌入于附接到计算机处理系统的主机板,或与主机板沟通的绘图 卡之内。绘图处理单元包括许多独立的单元来执行不同的工作以最终呈现三维的景象于 二维的显示屏幕之上。例如电视、计算机屏幕、视频屏幕或其它适当的显示装置。这些独立 的处理单元一般称为着色器,其可包括顶点着色器、几何着色器以及像素着色器等等。绘图 处理单元亦包含了其它被称为固定功能单元的处理单元,像是像素插补器和扫描场解析器 等。在设计绘图处理单元的时候,上述组件的每一种组合都会被考虑进去以便能执行各种 工作。根据这些组合,绘图处理单元可能具有较大的能力处理某一件工作,但缺乏完整执行 另一项工作的能力。因此,硬件开发者始终尝试将一些着色器单元放进一个组件中。然而, 独立单元结合在一起的程度却是有限的。本发明揭露了将着色器单元和固定功能单元结合成一单一单元的机制,在此称为 统一着色器。统一着色器具有执行顶点着色、几何着色和像素着色等功能的能力,同时亦能 执行扫描场解析和像素插补等功能。同样地,借着包括用来决定配置处理的装置,三维绘图 的成像可基于当下的特殊需求来动态调整。借着观察个别功能目前和先前的需求,此配置 机制可适当地调整处理设备的分配以有效率及快速地处理绘图数据。举例来说,当统一着色器确定定义于三维世界空间之内的诸多对象具有简单的结 构,例如一房间里面所看到的诸多平面墙壁、地版、天花板和门等场景等等,这个时候,将不 会太过频繁使用顶点着色器。因此,可以把更多的处理能力分配给可能需要处理复杂纹理 的像素着色器。相对地,如果一场景包含许多复杂的形状,例如森林的场景,顶点着色器可 能需要更多的处理能力,而像素着色器只需要较少的处理能力。即使一场景改变了,例如从户外场景移到户内场景或相反,统一着色器可动态地调整着色器的分配以符合特殊的需 求。此外,统一着色器可设计成具有多个平行处理单元,例如执行单元,其中每一个执 行单元皆有能力执行完全的绘图处理着色任务和固定功能任务。如此一来,此配置机制可 动态地架构每一个或部分的执行单元以处理特定的绘图功能。此具有许多相似的功能执行 单元的统一着色器,可有足够的弹性以允许软件开发者根据特定的场景或对象来做资源的 分配。如此一来,可借着资源的分配使得绘图处理单元更有效率地运算。此基于需求的资 源分配机制可提供较快速的处理速度,并且允许更复杂的对象成像。本发明的统一着色器的另一个优点就是每一个执行单元的功能和大小可相对地 简单。借着平行地结合执行单元,可借着增加或减少执行单元的数目来轻易地改变绘图处 理单元的效能。因为执行单元的数目是可以改变的,具有较低的执行能力的绘图处理单元 可用于简单的绘图处理。同样地,执行单元的数目也可以增加以符合需求较高的使用者的 需求。由于执行单元具有执行广泛绘图处理功能的多用性,绘图处理单元的效能可单纯地 以其所包含的执行单元的数目来决定。执行单元的增加或减少可相对简单,且不需复杂的 重新设计来满足低阶或高阶范围的使用者。如同这里所定义的,每一个平行执行单元可包括许多的线程。在此线程是指执行 单元内的一工作或基本工作单元。由此来看,许多个平行的工作或线程可同时于相同的周 期内执行。在本发明中,不只执行单元本身可经过仲裁以决定哪些执行单元用于不同的着 色功能,个别的线程也可经过仲裁以对执行单元集区提供较精密的调度。因此,本发明的动 态调度机制执行于线程层级而非执行单元层级,进而提供了较大的弹性。本发明中所述的绘图处理单元、统一着色器和执行单元设计成符合OpenGL和 (或)DirectX的规格。以下将会讨论这些组件的实施例的详细说明。图1显示计算机绘图系统10的一实施例的方块图,此计算机绘图系统10包括运 算系统12、绘图模块14和显示装置16。除了上述的组件,运算系统12还包括绘图处理单 元18以至少处理运算系统12所负责的一部分绘图数据。在某些实施例中,绘图处理单元 18可设计为运算系统12内的绘图卡之上。绘图处理单元18处理图形数据以产生图框的 每一像素的颜色值及亮度值,并显示于显示装置16之上,一般来说是以每秒30个图框的比 率来处理。绘图软件模块14包括应用程序接口(Application Programming Interface, API) 20和软件应用程序22。在本实施例中,应用程序接口 20支持最新的OpenGL和(或) DirectX 规格。在最近几年,对具有大量可程序逻辑的绘图处理单元的使用需求渐增。在此实施 例中,绘图处理单元18具有较高的可程序性,使用者可以借着绘图软件模块14控制许多的 输入/输出装置来互动地输入数据和(或)命令。应用程序接口 20根据软件应用程序22 内的逻辑单元来控制绘图处理单元18的硬件以建立绘图处理单元18可用的绘图功能。在 本实施例中,使用者可以不需要了解绘图处理单元18与其功能,特别是如果此绘图软件模 块14是电动游戏操纵器,且该使用者纯粹是一个玩家。如果该绘图软件模块14是用来建 立三维绘图视频、计算机游戏或是其它实时或离线成像的装置,并且该使用者是软件开发 者或本领域技术人员,则此使用者一般比较了解绘图处理单元18的功能。要了解的是,绘 图处理单元18可使用于诸多不同的应用类型中。然而为了简化叙述,本发明特别着重影像于二维显示装置16上的实时成像。图2显示图1所示的绘图处理单元18的一实施例的方块图。在此实施例中,绘图 处理单元18包括绘图处理管线24,其与高速缓存系统26之间被总线接口 28所分离。绘图 处理管线24包括顶点着色器30、几何着色器32、扫描场解析器34和像素着色器36。绘图 处理管线24的输出可被送到一回写单元(图未显示)。高速缓存系统26包括顶点串流高 速缓存40、第一级高速缓存42、第二级高速缓存44、Z高速缓存46和纹理高速缓存48。顶点串流高速缓存40接收命令和图形数据,并且传送这些命令和数据给顶点着 色器30,其用以对这些数据执行顶点着色的运算。顶点着色器30使用顶点信息建立欲显 示的对象的三角形和多边形。顶点数据从顶点着色器30传送到几何着色器32和第一级高 速缓存42。如果有需要的话,某些数据可被第一级高速缓存42和第二级高速缓存44所共 享。第一级高速缓存也可传送数据给几何着色器32,其用以执行某些像是镶嵌、阴影计算、 单点子画面(point sprite)的建立等等的功能。几何着色器32也可借着从单一顶点建立 三角形,或从单一三角形建立多个三角形来提供流畅的运算。在此阶段以后,绘图处理管线24所包括的扫描场解析器34对几何着色器32和第 二级高速缓存44的数据进行运算。扫描场解析器34亦可利用Z高速缓存46做深度分析, 以及纹理高速缓存48做有关颜色特性的处理。扫描场解析器34可包括固定功能的运算, 像是三角设定、跨砖运算(span tileoperations)(或跨砖产生功能)、深度测试(Z测试)、 预包装、像素插值、包装等等。扫描场解析器34亦可包括用来将一个对象的顶点从世界空 间转换至屏幕空间上的坐标体系的转换矩阵。完成扫描场解析之后,扫描场解析器34将数据传送给像素着色器36来决定最后 的像素值,像素着色器36的功能包括根据各种颜色特性处理每一个个别的像素以及改变 颜色值。举例来说,像素着色器36可包括根据光源的位置及顶点的法线来决定反射或镜像 色值和透明值的功能,然后从绘图处理管线24输出所完成的视频图框。诚如图中所示,着 色器单元和固定功能单元于许多阶段使用到高速缓存系统26。假如总线接口 28是一异步 的接口,则于管线24和高速缓存系统26之间的通讯可包括另外的缓冲机制。在此实施例中,绘图处理管线24的组件设计成分离的单元,这些单元在根据需要 存取不同的高速缓存组件。然而,着色器组件可被集中于统一着色器之内,使得绘图处理管 线24可以较简单的形式设计,且仍提供相同的功能。数据流可被映像在实体装置之上,在 此称为执行单元,其用于执行一部分的着色器功能。如此一来,绘图处理管线24结合成有 能力执行绘图处理管线24的功能的至少一个执行单元。同样的,高速缓存系统26的某些高 速缓存单元也可并入这些执行单元。借着将这些组件合并成单一的单元可简化绘图处理的 流量,并且可包括与异步接口的切换。因此,可在小区域范围(local)内进行数据的处理, 因而允许较快速度的执行。图3A显示图1中所示的绘图处理单元18实施例的方块图(或其它绘图处理装置 的方块图)。绘图处理单元18包括统一着色器单元50和高速缓存/控制装置54,其中统 一着色器单元50具有多个执行单元52。执行单元52平行地连接设置并通过高速缓存/控 制装置54来存取,统一着色器单元50可包括任意数量的执行单元52以适当地根据各种规 格执行所要的绘图处理量。当设计情况需要处理到更多的绘图任务时可以加入更多的执行 单元,如此一来,统一着色器单元50具有可扩充性的特色。
在此实施例中,统一着色器单元50具有比传统绘图管线更具弹性的简化设计。在 其它实施例中,每一着色器单元可能需要较大量的资源以因应运作之需(例如高速缓存和 控制装置)。在此实施例中资源是可以共享的,每一个执行单元52也可以以类似的方法制 造,并且依照当前的工作负载量来做存取。根据此工作负载量,可以视需求来配置执行单元 52以执行一或多个绘图处理管线24的功能。因此,统一着色器单元50于绘图处理中提供 一个成本效能比更佳的解决方案。此外,当应用程序接口 20的设计和规格改变的时候(此属常见现象),统一着色 器单元50不需要为了配合应用程序接口的改变而重新设计。如同非限定的实施例,其它的 着色器可以加到此绘图管线,此即为应用程序接口 20规格的改变。相反地,统一着色器单 元50可动态调整以便依照需求提供特定的着色功能。高速缓存/控制装置54包括一动态 调度装置,以依照当前正在处理的对象或场景来平衡所处理的负载量。依照调度装置的决 定,可分配更多的执行单元52来提供较大的处理能力于特殊的绘图处理,例如着色器功能 或固定功能,如此一来就可以减少延迟。执行单元52也可以操作于所有着色器功能的指令 之上,进而简化处理的过程。高速缓存/控制装置54可包括调度器55,用来依照需求分配执行单元52,调度器 55储存执行单元根据预先分配的初始配置。当某些着色功能对于处理某一类型的着色运算 遇到瓶颈时,调度器55确认此瓶颈的情况,同时也确认目前哪些资源是处于闲置状态且可 用于其它工作。闲置的执行单元资源被重新分配到此瓶颈功能以舒缓其情况,此重新分配 机制是由调度器55根据目前的需求而动态执行。处理需求随着时间改变,调度器55持续 适当地分配资源以适时地平衡处理的负载量。此方式可被视为执行单元52的资源的粗糙 等级调度。另外,执行单元52可分成许多的线程,其代表可于执行单元52中所平行处理的工 作。在某些实施例中,执行单元52的资源分成32个线程。调度器55可以储存执行单元52 的线程的初始配置,并且以较细腻的方式)调整资源的配置。再次强调,此分配机制为动态 且根据调度器55所决定的当下需求而定的。此第二方法可被称为精密细等级调度。一般来说,调度器55是操作于线程层级之上的动态调度装置,但亦可操作于执行 单元层级之上。当需要较高的精密度时,调度器55于分配一个执行单元的一或多个线程给 某一着色阶段时,亦分配此执行单元的一或多个线程给另一着色阶段。此配置机制包括根 据需求来切换线程。对于具有较少执行单元52的较低阶处理器来说,高分辨率的分配机制 或切换尤其实用。否则,如果一具有少数执行单元的装置无法具备线程层级调度控制的能 力,于一执行单元从一阶段切换到另一阶段时,可能会发生乒乓效应而无法于多个着色阶 段中减少瓶颈的现象。调度器55可用来根据过去和先前的需求以计算预估的指令流通量 (throughput)。根据此预估的指令流通量,调度器55借着切换线程资源执行所需的着色功 能来尝试最佳化、或至少降低此瓶颈情况。因此,调度器55分析出遇到瓶颈的线程和闲置 的线程。借着比较预估的流通量和目前的情况,如果确定切换后可改善流通量的话,调度器 55可动态地切换线程的功能。图3B显示绘图处理单元18的另一实施例的方块图,成对的执行单元56和纹理单 元58平行并列,并且连接到高速缓存/控制装置60。在此实施例中,纹理单元58为执行单元集区的一部分,执行单元56和纹理单元58可因此共享高速缓存/控制装置60内的高速 缓存,使得纹理单元58可比传统纹理单元更快速地存取指令。此实施例中的高速缓存/控 制装置60包括只读高速缓存62,数据高速缓存64,顶点着色器控制装置66和扫描场接口 68。绘图处理单元18亦包括命令串流处理器70、存储器存取单元72、扫描场解析单元74 以及回写单元76。因为数据高速缓存64为读/写高速缓存,并且成本比只读高速缓存62高,所以这 两个高速缓存是分开的。只读高速缓存62可包括约32个快取列,但这个数目是可以增减 的,并且每一个快取列的大小是可以增减的,这样的做法主要是为了减少所需的数目比较。 只读高速缓存62的命中/失误测试与一般CPU的命中/失误测试不同,主要是因为绘图数 据是持续地串流。对于失误的情况,高速缓存仅更新数据并且继续动作而不需要将数据储 存于外部的存储器。对于命中的情况,则稍微延迟读取的动作以接收高速缓存的数据。只 读高速缓存62和数据高速缓存64可以是第一级高速缓存装置以减少延迟,其对使用第二 级高速缓存的传统绘图处理单元高速缓存系统来说是更进步的。顶点着色器控制装置66从命令串流处理器70接收命令和数据,执行单元56和纹 理单元58接收只读高速缓存62的纹理信息、指令和常数的串流。执行单元56和纹理单元 58也接收数据高速缓存64的数据,以及将处理后的数据提供回数据高速缓存64。只读高 速缓存62和数据高速缓存64是与存储器存取单元72连接。扫描场接口 68和顶点着色器 控制装置66提供信号给执行单元56并从执行单元56接收回处理过的信号。扫描场接口 68与扫描场解析单元74连接,执行单元56的输出也接到回写单元76。高速缓存/控制装置60还包括用来调度执行单元56的工作的调度器(图未显 示),其与图3A中所示的调度器55类似。此实施例中的调度器也将工作分配给不同的执行 单元56以及执行单元56中的个别线程。当工作完成时,调度器移除或丢弃只读高速缓存 62中的工作,并且送出某些线程位置处于未使用状态的指示。当闲置的线程位置可用的时 候,调度器会安排另外的工作给这些线程。图3C显示此绘图处理单元18的另一实施例的方块图。在此实施例中,绘图处理 单元18包括包装器(packer) 78、输入闩80 (又称为异步输入接口)、多对的执行单元装置 82、输出闩84(又称为异步输出接口)、回写单元86、纹理寻址产生器88、第二级高速缓存 90、高速缓存/控制装置92、存储器接口 94、存储器存取单元96、三角设定单元98以及命令 串流处理器100。命令串流处理器100提供一串流的索引给高速缓存/控制装置92,这些索引是关 于顶点的身份标记。举例来说,高速缓存/控制装置92可一次识别一先进先出缓冲器内的 256个索引。包装器78,通常为一固定功能单元,其送出一请求给高速缓存/控制装置92请 求以取得相关的信息来执行像素着色的功能。高速缓存/控制装置92送回像素着色器信息 以及关于一特定执行单元号码和线程号码的配置消息。该执行单元号码是指执行单元装置 82中的其中一个执行单元,而线程号码是指每一个执行单元中用来处理数据的许多平行线 程的其中一个线程。之后,包装器78传送像素着色运算所需的相关纹理像素和颜色信息给 输入闩80。举例来说,可把连接至输入闩80的两个输入指定给纹理像素信息,另外两个输 入指定给颜色信息。每一个输入具有传送一特定位数的能力,例如512位。输入闩80可为总线接口,其依照高速缓存/控制装置92所定义的分配任务将像素着色器数据安排给特定的执行单元和线程。此分配的任务可根据执行单元和线程的可用 性、或是其它的因素来决定,且可依需求改变。在多个执行单元82平行连接,且每个执行单 元有能力平行处理数个工作(或线程)的架构下,可同时执行更大量的绘图处理任务。由 于高速缓存存取的便利性,数据流可维持在局部区域而不需要从较不易存取的高速缓存获 取数据。另外,与传统绘图系统相比,流经输入闩80和输出闩84的数据流可以被减少,因 而降低处理时间。每一个执行单元82依照其被指派的方式使用顶点着色和几何着色的功能来处理 数据。另外,执行单元82可根据包装器78的纹理像素信息和颜色信息来执行像素着色的 功能。如所绘示,本实施例包括了五个执行单元,且每一个执行单元分成两个部分,每一个 部分代表数个线程。每一部分可以第4-6图来表示,执行单元装置82的输出是传送到输出 闩84。当绘图数据完成后,这些数据从输出闩84传送到回写单元86,其连接至用来将图 框显示在显示装置16之上的图框缓冲器。在一或多个执行单元装置82以像素着色功能将 数据处理完毕之后,回写单元86会接收完成的图框,此系绘图处理的最后阶段。然而,在每 一个图框的处理完成之前,数据处理流可一或多次地通过高速缓存/控制装置92回绕。在 中间处理的期间,纹理寻址产生器88从输出闩84接收纹理坐标以决定要取样的地址。纹 理寻址产生器88可运算于一预取模式或一相依读取模式。纹理寻址产生器88传送一纹理 号码(texture number)加载请求给第二级高速缓存90,所加载的数据可传回至纹理寻址 产生器88。输出闩84还可输出顶点数据,这些顶点数据被传送至高速缓存/控制装置92。高 速缓存/控制装置92可传送关于顶点着色器或几何着色器运算的数据输入给输入闩80。 同样地,读取请求也从输出闩84送到第二级高速缓存90,第二级高速缓存90也可传送数据 给输入闩80作为响应。第二级高速缓存90执行命中/失误测试确认数据是否储存于高速 缓存之内。如果不是储存于高速缓存之内,存储器接口 94可通过存储器存取单元96存取 存储器以读取所需的数据。第二级高速缓存90依所读取的数据更新其存储器并且根据需 要把旧的数据丢弃。高速缓存/控制装置92也包括一输出,用来传送顶点着色器和几何着 色器数据至三角设定单元98以执行三角设定处理。高速缓存/控制装置92可包括用来调度执行单元56的多个着色器阶段的调度装 置(图未显示),其与图3A中所示的调度器55类似。此调度装置可根据当下的特定处理需 求将工作分配给不同的执行单元56,甚至可分配不同类型的着色工作给执行单元56中的 个别线程。如此一来即可动态地执行资源的配置和分配以大致平衡处理的负载。借着平衡 处理的负载,可最小化执行单元和(或)线程过度繁忙的瓶颈情况。随着工作的完成,调度器自只读高速缓存62中的资源表移除此项工作,并且送出 关于某些线程位置处于未使用状态的指示。当闲置的线程位置可用的时候,调度器会安排 另外的工作给这些线程。图4显示一常见执行单元102的一实施例的方块图。执行单元102实现的方式可 如图3A中的执行单元52、图3B中的执行单元56、图3C中执行单元装置82其中一半等,或 其它具有多重着色器和固定功能运算的平行处理能力的适当执行单元。在此实施例中,执 行单元102包括线程控制装置104、高速缓存系统106以及线程处理路径108。这些组件都经由输入闩110和输出闩112连接到绘图处理单元18的其它部分,输入闩110和输出闩 112可个别对应到图3C中所示的输入闩80和输出闩84。线程控制装置104包括控制硬件以决定执行单元数据路径的资源的适当分配,例 如线程处理路径108。线程处理路径108所定义的精简处理管线的优点是减少数据流,故 可需求较少的频率周期和高速缓存失误。同样地,减少数据流带给异步接口较少的压力,因 而潜在地减少这些组件的瓶颈情况。借着使用本发明所述的执行单元102或其它的执行单 元,与传统绘图处理器相比可减少处理时间。线程控制装置104控制执行单元内的数据流。借着管理每一线程的状态,线程控 制装置104可决定将如何执行每一线程。同样地,线程控制装置104决定配置的机制以利用 可用的执行单元和线程,并减少可能处于过度繁忙或瓶颈情况的处理装置上的负载量。借 着动态地重新分配资源,线程控制装置104可最大化数据流通量以允许执行更多的着色功 能及提升的速度。线程处理路径108是绘图处理管线的核心,并且可以是可编程的。由于线程处理 路径108的弹性,使用者可以编程这些执行单元以执行比传统实时绘图处理器更大量的绘 图运算。线程处理路径108包括顶点着色处理、几何着色处理、三角设定、插值、像素着色处 理等等。由于执行单元102的精简设计,减少了把数据传送出去给存储器并且于稍后读取 的需求。举例来说,如果线程处理路径108正在处理一三角带,此三角带的其中几个顶点可 由一执行单元处理,而另一执行单元则同时处理其它的顶点。同样地,对于三角形剔拒绝 (triangle rejection)的情况,线程处理路径108可更快地确认一三角形是否被拒绝,因 而减少延迟的时间和不必要的计算处理。在一些实施例中,输入闩110和输出闩112为允许执行单元操作于与绘图处理单 元其它部分不同频率速度的异步接口。举例来说,执行单元可操作于比绘图处理单元快两 倍的频率速度之上。同样地,线程处理路径108可操作于比线程控制装置104和高速缓存 系统106快两倍的频率速度之上。由于频率速度的不同,闩110和112的设计可包含缓冲 器以同步介于内部执行单元组件和外部组件之间的处理。这些或其它类似的缓冲器于图5 中显示。图5显示图4所述的执行单元102的一实施例的细部方块图。在此实施例中,高速 缓存系统106包括指令高速缓存114、常数高速缓存116以及顶点和属性高速缓存117。线 程处理路径108包括公用缓存器文件118和执行单元数据路径120。公用缓存器文件118 包括奇数和偶数路径。执行单元数据路径120包括算数逻辑单元122、123和插补器124。 输入闩110包括执行单元集区控制单元126、高速缓存128、纹理缓冲器130和数据高速缓 存132。输出闩112包括执行单元集区控制单元134、高速缓存136、输出缓冲器138。图5 的实施例也包括索引输入撷取单元140和断言缓存器文件142。由于输入闩110和输出闩112的异步性质,异步接口包含了缓冲器以与绘图处理 单元的外部组件做协调。执行单元集区控制单元126的信号被送到线程控制装置104以维 持线程处理路径108的多重线程。高速缓存128分别传送指令和常数给指令高速缓存114 和常数高速缓存116。纹理坐标从纹理缓冲器130传送到公用缓存器文件118,数据从数据 高速缓存132传送到公用缓存器文件118以及顶点和属性高速缓存117。指令高速缓存114传送指令撷取给线程控制装置104。在此实施例中,大部分的撷取将会是命中的情况,小部分的失误从指令高速缓存114送到高速缓存136以便从存储器读取。同样地,常数高速缓存116传送失误给高速缓存136以便读取数据。线程处理路径 108的处理包括根据偶数或奇数指定加载公用缓存器文件118的数据。偶数边的数据传送 到算数逻辑单元0 (122),而奇数边的数据传送到算数逻辑单元1 (123)。算数逻辑单元122 和123可包括着色器处理硬件以根据线程控制装置104的配置视需求处理数据。在执行单 元数据路径120中,数据也送到插补器124。图6显示图4的执行单元102的另一实施例的细部方块图。在此实施例中,执行 单元102可包括图3C中所述的执行单元装置82的其中一半。此半个执行单元102 (执行 单元0或执行单元1)包括Xin接口逻辑单元144、指令高速缓存146、线程高速缓存148、 常数缓冲器150以及公用缓存器文件152。此半个执行单元102还包括执行单元数据路径 154、请求先进先出缓冲器156、断言缓存器文件158、纯量缓存器文件160、数据输出控制单 元162、Xout接口逻辑单元164和线程工作接口 166。指令高速缓存146可以是第一级高速缓存,并且可包括大约8K字节的静态随机存 取存储器。指令高速缓存146从Xin接口逻辑单元144接收指令,指令失误以请求的形式 被送到Xout接口逻辑单元164。线程高速缓存148接收指定的线程并且发出指令给执行单 元数据路径154。在某些实施例中,线程高速缓存148包括32个线程。常数缓冲器150从 Xin接口逻辑单元144接收常数,并且将常数数据加载执行单元数据路径154。在某些实施 例中,常数缓冲器包括4K字节的存储器。公用缓存器文件152接收纹理像素数据,其被传 送到执行单元数据路径154。公用缓存器文件152可包括16K字节的存储器,举例来说。执行单元数据路径154解码指令、撷取操作数以及执行分支计算。执行单元数据 路径154还执行数据的浮点或整数计算,以及位移/逻辑、发牌/洗牌和载入/储存的运算。 纹理像素数据和失误从执行单元数据路径154经由请求先进先出缓冲器156送到Xout接 口逻辑单元164。断言缓存器文件158和纯量缓存器文件160可以各是IK字节,并且视需 求提供数据给执行单元数据路径154。控制信号从执行单元102外部输入至数据输出控制单元162。数据输出控制单元 162也接收执行单元数据路径154的信号和Xin接口逻辑单元144的数据。数据输出控制 单元162也可视需求向公用缓存器文件152请求取得数据。数据输出控制单元162输出数 据给Xout接口逻辑单元164和线程工作接口 166以根据已经完成或正在进行的数据决定 线程未来的工作分配。流经执行单元数据路径154的数据流可被分成三个层级,包括本文层级、线程层 级和指令(执行)层级。在任何给定的时间,每个执行单元内有两个本文。本文信息于此本 文的工作开始之前发送到执行单元数据路径154。本文层级信息包括例如着色器类型、输入 /输出缓存器的数目、指令起始地址、输出映像表、水平重组表、顶点识别和常数缓冲器150 内的常数。每一个执行单元于线程高速缓存148中可包括多达32个线程,举例来说。线程对 应至类似顶点着色器、几何着色器或像素着色器等的功能。一个位用来识别于线程中所使 用到的两个本文,线程被分配到尚未额满的执行单元数据路径中的其中一个线程位置。此 线程位置可以是空的或部分使用。线程被分成偶数和奇数群组,每一群组包括16个线程的 队列,举例来说。在线程开始之后,此线程将被放入一个八线程的缓冲器。线程根据一程序计数器于每一周期中撷取指令,例如多达256位的指令数据。在等待一些数据进来的时,线程将保持非作用的状态。反之,此线程将处于作用模式。线程执行的仲裁视线程的时间阶段和其它的资源冲突(例如算数逻辑单元或公 用缓存器文件冲突)从八线程的缓冲器配对两个作用的线程在一起。因为某些线程于执行 期间可能进入非作用模式,故可达成此八个线程的较佳配对。在执行末期时,线程从工作缓 冲器移开,并且一程序结束的标记被发出。此标记进入数据输出控制单元162以将数据移 出至Xout接口逻辑单元164。一旦所有的数据都被移出,线程将从线程位置移除并且通知 执行单元数据路径154。数据输出控制单元162也根据一映像表移动公用缓存器文件152 的数据。一旦这些缓存器被清空,执行单元数据路径154可加载公用缓存器文件152以为 下个线程准备。关于指令数据流,线程执行产生指令撷取。举例来说,每一压缩的指令中可有64 位的数据。如果需要的话,线程控制可解压缩指令,并且执行计分板测试然后进入仲裁阶 段。为了提高效率,硬件可将属于不同线程的指令配对在一起。介于线程控制和指令高速缓存之间的指令撷取机制可包括失误的情况,其会送回 四位的集合地址(set address)外加两位的信道地址(way address)。从Xin接口逻辑单 元144所进来的数据的广播信号可被接收。指令撷取也包括命中的情况,其于下个频率周 期接收数据。命中失误(hit-on-miss)与失误的结果相似,双重失误(miss-on-miss)的情 况会回传四位的集合地址,并且Xin接口逻辑单元144的广播信号可于第二请求之上接收。 为了使线程保持运作,计分板维持回传的请求数据。如果进来的指令需要这些数据来继续 处理的话,可以停止线程的运作。图7显示执行单元的线程控制器170的一实施例的方块图。在此实施例中,线程 控制器170包括线程状态装置172、时间阶段比较装置174、多个有效选择装置176、线程指 令队列178、多工器180、冲突检查装置182和仲裁器184。此实施例包括四个有效选择装 置176和28组的多工器180对和冲突检查装置182,此实施例特别是针对执行单元中包括 了 32个线程的系统。在其它的实施例中,若执行单元包括了不同数目的线程,本领域技术 人员可了解线程控制器170中的组件数目可依此改变。在执行单元内有32个线程的情况下,这些线程可被分成两个相等的偶数和奇数 群组,每个群组包括16个线程。每个群组中的线程时间阶段、可用性和仲裁皆个别分开管 理。线程的控制于两个阶段中提供,在第一阶段中,此16个线程被分成四个组,每个组有四 个线程。每一组的四个线程被提供至一个对应的有效选择装置176。在偶数群组的范例中, 第一有效选择装置176的线程号码为0、2、4和6,举例来说。在每一周期中,会选择出每一 组中多达两个的有效线程,且将其送到有效选择装置176的输出。这些输出在此亦称为“位 置”或“指令选择位置”,其中第一有效选择装置176输出位置0和1(S0,Si)。所选定的线 程的指令被储存于线程指令队列178以便稍后使用(将于以下说明)。在同一周期中,时间 阶段比较装置174比较此16个线程的时间阶段来决定最久的可用线程,此最久的线程被选 定且传送至仲裁器184以于下个周期处理。在下个周期中会执行第二阶段的线程控制,此八个选定的线程的下个指令从线程 指令队列178输出到多工器180。这些指令以如下的方式提供给多工器180,以实现此八个 选定线程之间所有可能配对的指令比较。举例来说,在位置O(SO)和位置I(Sl)的指令提供给第一多工器180对的情况下,第一冲突检查装置182将位置0和位置1的指令与每个 位置中对应的指令作比较。因此,每个位置需与其它的七个位置比较。如此一来,共有28 个配对组合需要比较,其中每一种组合可以多重冲突检查装置182平行执行。每一个冲突检查装置182比较个别位置的指令,并且以多个不同的标准决定任何 冲突。首先,冲突检查装置182检查任何源头、目的存储器和算数逻辑单元存取冲突,例如 公用缓存器文件库(bank)读/写冲突、常数缓冲器读取冲突、纯量缓存器文件和断言缓存 器文件冲突。冲突检查装置182也可检查浮点、整数、逻辑或L/S算数逻辑单元存取冲突。仲裁器184将此28个组合的冲突检查结果与前一周期中选定的最久线程做多任 务处理。如果发现某一包括最久线程的配对是符合的(没有冲突),这两个指令被同时于仲 裁器184的输出发送出去到执行单元数据路径以作执行。如果所有包括最久线程的配对都 不是符合的,则其它相合的配对(如果有的话)可从仲裁器184发出。如果这些配对都不 符合,则发送此最久线程。以偶数和奇数群组线程的组合,可于同一周期中送出多达四个的 指令以做执行。因此如所述,线程的控制包括从执行单元集区接收线程。在此范例中每一执行单 元包括32个线程,线程的信息被缓冲,并且32个作用线程中的16个被分配。然后这些线 程被管理以决定每一个状态,举例来说,包括空闲(empty)、备妥(ready)、休眠(sle印)、唤 醒(wakeup)或非作用状态(inactive)。线程控制还包括仲裁队列中的线程以选择出要被 发送且具有最高优先级的线程,亦即最久的线程,如果已作用线程单元中有一空位置可供 使用的话。图8显示线程控制器186的另一实施例的方块图,其可设计成相似于图4和5中 所示的线程控制装置104,以及(或)图7所示的线程控制170。在图8的实施例中,线程 控制器186包括执行单元集区负载线程装置188、线程缓冲器190、多个线程队列192、第一 级高速缓存接口 194、第一级高速缓存196、线程仲裁装置198和200以及执行单元数据路 径 202 和 204。在运算中,执行单元集区负载线程装置188从执行单元集区接收要被处理的新线 程,并且将其加载线程缓冲器190。当线程缓冲器190加载32个新的线程时,其中的16个 线程通过偶数信道分配到线程队列192的第一集合,而另外16个线程通过奇数信道分配到 线程队列192的第二集合。偶数线程从线程队列192的第一集合传送到第一级高速缓存接 口 194,也传送到偶数线程仲裁装置198。奇数线程从线程队列192的第二集合传送到第一 级高速缓存接口 194,也传送到奇数线程仲裁装置200。第一级高速缓存接口 194提供线程 数据给第一级高速缓存196,并且可根据储存于第一级高速缓存196内的数据确认于第一 级高速缓存196内的数据请求造成命中或失误的结果。偶数线程仲裁装置198执行仲裁算法以从这16个偶数线程中选择一或二个线程 来进行处理。选定的线程继续传送到偶数执行单元数据路径202以执行指派给该线程的特 定着色处理功能。此外,奇数线程仲裁装置200于16个奇数线程中进行仲裁以选择一或二 个要被处理的线程。选定的奇数线程传送到奇数执行单元数据路径204以执行指派给该线 程的特定着色处理功能。线程仲裁装置198和200所使用的仲裁算法可包括用来仲裁线程的任何适当技 术。在某些实施例中,仲裁算法可包括掌控线程的状态。举例来说,每一线程可被决定包括一个状态,像是空闲、备妥、睡眠、唤醒、作用或非作用等的状态。在某些实施例中,仲裁算法 包括选择对于某一特性具有最高优先级的线程。此优先级的决定可根据线程的时间阶段, 其中最久的线程具有最高的优先级。当线程单元内一个空的位置可供使用的时候,所选定 的线程被设定为作用状态。图9显示线程队列206的一实施例的方块图。在某些实施例中,图9的线程队列 206可代表图8所示的一或多个的线程队列192。根据图9所述的实施方法,线程队列206 包括线程缓冲器208、第一级高速缓存接口 210、指令撷取装置212、解压缩队列装置214、线 程控制装置216、计分装置218以及线程仲裁器220。为了说明之用,图9中某些的组件的 功能和设计可与图8中的对应组件相同。举例来说,线程缓冲器208可类似于线程缓冲器 190、第一级高速缓存接口 210可类似于第一级高速缓存接口 194、线程仲裁器220可类似于 偶数和奇数线程仲裁装置198和200。储存于线程缓冲器208内的线程被加载队列等待处理。线程控制装置216接收一 个请求以对选定的线程执行特定的功能。特别来说,线程控制装置216接收执行单元数据 路径的程序计数,并且提供此程序计数给指令撷取装置212。基本上,线程控制装置216命 令指令撷取装置212撷取要于线程上执行的处理指令,如果这个指令当时有储存于高速缓 存内的话。此指令于命中情形下通过第一级高速缓存接口 210被读取,但也可能接收到有 关未于高速缓存内找到指令的指示消息。同时,计分装置218执行本发明所揭露的调度装置的功能。同样地,计分装置218 从图6的公用缓存器文件152接收地址。计分装置218提供计分或数据相依测试给解压缩 队列装置214,其亦通过第一级高速缓存接口 210接收高速缓存的指令数据。然后符合的指 令数据被提供给线程仲裁器220。如此一来,正确的指令可与个别的线程相合以进行处理。图10显示绘图处理单元内用来管理工作的方法或程序的一实施例的流程图。如 步骤222所示,图10的方法包括缓冲要被处理的新线程(工作或工作单元)。在步骤224 中,线程被分成两个相等的偶数和奇数群组。举例来说,在步骤222中当线程被缓冲的期 间,步骤224的分割程序包括分割线程成两个分别具有16个线程的群组。在步骤225中,如 以上图9所述可完成一计分测试。在步骤226中包括指令的撷取,例如从高速缓存或其它 适当的存储器撷取。指令的撷取是根据当前的程序计数器来执行,以便将指令数据和要被 执行的个别工作做同步。每一个指令可以是256位,举例来说。然而,指令可于储存于存储 器之前被压缩。如此一来,如步骤226中所示,指令的撷取还包括解压缩任何压缩的指令。在步骤227中,线程或是指令层级仲裁可被完成。然后于步骤228中,借着将两个 线程配对在一起以改善效率,其方式是借着允许同时处理两个具有相同指令的线程。如此 一来,此配对机制包括了将具有相同工作要执行的线程配对起来,因而减少对存储器的指 令撷取动作。此线程的配对亦可根据线程的时间阶段以及任何可能存在的冲突,例如算数 逻辑单元存取冲突、公用缓存器文件库读/写冲突、常数缓冲器读取冲突、向量缓存器文件 和断言缓存器文件冲突,以及浮点/整数/逻辑/算数逻辑单元存取冲突。线程的配对可 还包括分配每一线程或工作单元给执行单元内一个空的位置。本发明所述的统一着色器和执行单元可以硬件、软件、固件或其组合等方式实 现。在所揭露的实施例中,部分以例如软件或固件实现的统一着色器和执行单元可被储存 于一存储器,并且可被一适当的指令执行单元执行。部分以例如硬件实现的统一着色器和执行单元,可以被任何具有逻辑门、专用集成电路(Application Specific Integrated Circuit,ASIC)、一可编程门阵列(Programmable Gate Array,PGA)、场可编程门阵列 (Field ProgrammableGate Array, FPGA)等等的离散逻辑电路,或上述任何组合的离散逻 辑电路所实现。在此所描述的统一着色器和执行单元的功能,以及图10的方法,可包括用来实现 逻辑功能的可执行指令的顺序列表。这些可执行指令可嵌入于任何计算机可读取的媒体 以让指令执行系统、机械或装置使用,像是基于计算机的系统、处理器控制的系统或其它系 统。计算机可读取媒体可以是能容纳、储存、通讯、传播或传输程序以让指令执行系统、机械 或装置所使用的任何媒体。举例来说,此计算机可读取媒体可以是一电子、磁力、光学、电 磁、红外线或半体导的系统、机械、装置或传播媒体。本发明虽以较佳实施例揭露如上,然其并非用以限定本发明的范围,任何本领域 技术人员,在不脱离本发明的精神和范围内,当可做些许的更动与润饰,因此本发明的保护 范围当视所附的权利要求范围所界定者为准。
权利要求
一种绘图处理单元,包括一统一着色器装置,用以执行多重绘图着色功能,上述统一着色器装置具有平行操作的多个执行单元,每一个上述执行单元具有平行操作的多个线程,上述线程用来执行多个绘图着色功能;以及一控制装置,耦接于上述统一着色器装置,上述控制装置用以接收绘图数据以及分配上述绘图数据的一部分给至少一个上述执行单元的至少一个上述线程;其中上述绘图数据包括接顶点数据、几何数据或像素,其中上述控制装置还用以动态地将上述绘图数据从被认定为较繁忙的上述执行单元或上述线程,重新分配到被认定为较不繁忙的上述执行单元或上述线程。
2.根据权利要求1所述的绘图处理单元,其中上述绘图着色功能包括顶点着色功能、 几何着色功能和像素着色功能。
3.根据权利要求2所述的绘图处理单元,其中上述绘图着色功能还包括扫描场解析功能。
4.根据权利要求3所述的绘图处理单元,其中上述扫描场解析功能包括选自一三角设 定功能、一跨砖产生功能、一 Z测试功能和一像素颜色插补功能中的至少一个功能。
5.根据权利要求1所述的绘图处理单元,还包括一异步输入接口和一异步输出接口, 其中上述执行单元平行耦接于上述异步输入接口和上述异步输出接口之间,上述控制装置 经由上述异步输入接口控制上述绘图数据至上述执行单元的分配。
6.根据权利要求5所述的绘图处理单元,其中上述控制装置还包括耦接到上述异步输 入接口的一包装器。
7.根据权利要求5所述的绘图处理单元,其中上述控制装置还包括耦接到上述异步输 出接口的一回写单元和一纹理寻址产生器。
8.根据权利要求1所述的绘图处理单元,其中上述执行单元操作于与上述绘图处理单 元其它部分的不同的一频率速度之上。
9.一种执行单元,包括多个线程处理路径,用以处理绘图数据,每一个上述线程处理路径具有执行一顶点着 色功能的逻辑单元、执行一几何着色功能的逻辑单元以及执行一像素着色功能的逻辑单 元;一存储器装置,用以储存正被处理的上述顶绘图数据;以及一线程控制装置,用以根据一初始配置分配上述绘图数据至上述线程处理路径;其中上述绘图数据包括顶点数据、几何数据与像素数据,上述线程控制装置根据上述 线程处理路径的可用性控制上述绘图数据至上述线程处理路径的重新分配。
10.根据权利要求9所述的执行单元,其中上述线程处理路径还包括一公用缓存器文 件和一执行数据路径。
11.根据权利要求10所述的执行单元,其中上述公用缓存器文件包括指定给偶数的上 述线程的一第一通道,以及指定给奇数的上述线程的一第二通道。
12.根据权利要求10所述的执行单元,其中上述执行数据路径包括多个算数逻辑单元 和一插补器。
13.根据权利要求9所述的执行单元,其中上述线程处理路径耦接于一异步输入接口和一异步输出接口之间。
14.根据权利要求9所述的执行单元,其中上述线程处理路径操作于与一外部频率速 度不同的一频率速度之上。
15.根据权利要求13所述的执行单元,还包括一数据输出控制装置,用以控制与上述 异步输入接口的相关的输入逻辑单元和与上述异步输出接口相关的输出逻辑单元。
16.一种工作管理方法,适用于管理一绘图处理单元内执行的多个工作,包括 于存储器中缓冲多个线程;撷取对应至上述线程的指令;以及分配每一个上述线程至一执行单元的一空线程位置,其中上述绘图处理单元包括用以 执行多个绘图着色功能的多个执行单元。
17.根据权利要求16所述的工作管理方法,还包括将上述线程分成两个群组。
18.根据权利要求16所述的工作管理方法,其中指令的撷取是根据一程序计数。
19.根据权利要求16所述的工作管理方法,还包括 执行一计分测试;以及执行一指令或线程层级仲裁。
20.根据权利要求16所述的工作管理方法,还包括根据上述线程的时间阶段以及上述 线程之间的冲突将两个上述线程配对在一起。
全文摘要
本发明揭露关于绘图处理的系统和方法,绘图处理单元包括一统一着色器装置和一控制装置。统一着色器装置用来执行多个绘图着色功能,并且包括多个执行单元。执行单元间为平行操作,而每一个执行单元本身具有同样平行操作的多个线程,每一个线程用来执行多重绘图着色功能。绘图处理单元的控制装置与着色器装置连接,用来接收绘图数据,并且分配绘图数据的一部分给至少一个执行单元中的至少一个线程。控制器装置用来将绘图数据从被判定为较繁忙的线程动态地重新分配到被判定为较不繁忙的线程。
文档编号G06T1/00GK101877116SQ20091022644
公开日2010年11月3日 申请日期2009年11月20日 优先权日2008年11月20日
发明者焦阳 申请人:威盛电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1