绘图处理单元以及执行单元的制作方法

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

发明内容
本发明揭露了绘图处理单元(Graphics Processing Unit, GPU)的系统及其方法。在某些实施例中,绘图处理单元具有 实现于统一着色器单元或并行执行单元中的可编程着色单元, 如此一来可提供比传统绘图处理单元更大的弹性和扩充性。
在本发明的一个实施例中,绘图处理单元包括一控制装置 和并行连接的多个执行单元,上述控制装置用以接收顶点的数 据。每一个执行单元用以对上述顶点数据执行多个绘图着色功 能。上述控制装置还用以分配上述顶点数据的其中一部分给上 述每一个执行单元,以平衡上述执行单元之间的负载。类似的 控制装置可分配几何数据、像素数据于上述执行单元之间。
本发明也揭露了各个执行单元。在本发明的另一个实施例 中,执行单元包括一数据路径,具有执行顶点着色功能的逻辑 单元、执行几何着色功能的逻辑单元、执行扫描场解析功能的 逻辑单元以及执行像素着色功能的逻辑单元。上述执行单元还
包括 一 高速緩存系统和 一 执行线程控制装置,上述执行线程控 制装置用以根据所分配的任务控制上述数据路径。其中上述数 据^各径还用以才艮据分配任务执行一个或多个的上述顶点着色功 能、上述几何着色功能、上述扫描场解析功能或上述像素着色 功能。
本发明可适当地调整处理设备的分配以有效率及快速地处 理绘图数据。


图l显示根据本发明的实施例的绘图处理系统的方块图; 图2显示图1中所示的绘图处理单元的实施例的方块图; 图3A显示图1中所示的绘图处理单元的另 一 个实施例的方块图3B显示图l中所示的绘图处理单元的另 一个实施例的方 块图3C显示图1中所示的绘图处理单元的另 一 实施例的方块
图4显示根据图3A至图3C中所示的执行单元的 一个实施例 的方块图5显示根据图3A至图3C中所示的执行单元的另 一 个实施 例的方块图6显示根据图3A至图3C中所示的执行单元的另 一 个实施 例的方块图7显示根据图5和图6中所示的公用緩存器文件接口的一 个实施例的方块图
图8显示说明图5和图6中所示的公用緩存器文件的信号流 的流程图。
具体实施例方式
经过阅读以下所述的图示和详细解释,对本领域:技术人员 而言,本发明其它的系统、方法、特征和优点将会是显而易见 的。本发明的保护范围当视权利要求书所界定者为准。
传统上,《会图处理器或症会图处理单元(Graphics Processing Units, GPUs)合并于计算机系统内以专门地执行计算机绘图。 随着三维计算机绘图的普遍使用,绘图处理单元变得更加进步 且功能强大,某些一般由中央处理单元(Central Processing Unit, CPU)所处理的工作现在都交由绘图处理单元处理,以 达成具有高度复杂性的绘图处理任务。 一般来说,绘图处理单 元可实现于附接到计算机处理系统的主枳4反,或与主机板沟通
8的绘图卡之内。
绘图处理单元包括许多独立的单元来执行不同的工作以最 终呈现三维的景象于二维的显示屏幕之上,例如电视、计算机 屏幕、视频屏幕或其它适当的显示装置。这些独立的处理单元 一般称为着色器,其可包括顶点着色器、几何着色器以及像素 着色器等等。绘图处理单元亦包含了其它被称为固定功能单元 的处理单元,像是像素插补器和扫描场解析器等。在设计绘图 处理单元的时候,上述组件的每一种组合都会被考虑进去以便 能执行各种工作。根据这些组合,绘图处理单元可能具有较大 的能力处理某一件工作,但缺乏完整执行另 一项工作的能力。 因此,硬件开发者始终尝试将一些着色器单元放进一个组件 中。然而,独立单元结合在一起的程度却是有限的。
本发明揭露了将着色器单元和固定功能单元结合成一单一 单元的机制,在此称为统一着色器。统一着色器具有执行顶点 着色、几何着色和像素着色等功能的能力,同时亦能执行扫描 场解析和像素插补等功能。同样地,借着包括用来决定配置处 理的装置,三维绘图的成像可基于当下的特殊需求来动态调 整。借着观察各个功能目前和先前的需求,此配置机制可适当 地调整处理设备的分配以有效率及快速地处理绘图数据。
举例来说,当统一着色器确定定义于三维世界空间之内的 诸多物件具有的简单结构,例如 一 房间里面所看到的诸多平面 墙壁、地板、天花板和门等场景,这个时候,不会太过频繁地 使用顶点着色器。因此,可以把更多的处理能力分配给可能需 要处理复杂紋理的像素着色器。相对地,如果一个场景包含许 多复杂的形状,例如森林的场景,顶点着色器可能需要更多的 处理能力,而像素着色器只需要较少的处理能力。即使场景改 变了,例如从户外场景移到户内场景或相反,统一着色器可动态地调整着色器的分配以符合特殊的需求。
此外,统一着色器可设计成具有多个并行处理单元,例如 执行单元,其中每 一 个执行单元皆有能力执行完全的绘图处理 着色任务和固定功能任务。如此一来,此配置机制可动态地架 构每一个或部分的执行单元以处理特定的绘图功能。此具有许
多相似功能的执行单元的统一着色器,可有足够的弹性以允许 软件开发者根据特定的场景或物件来做资源的分配。如此一 来,可借着资源的分配使得绘图处理单元更有效率地运作。此 基于需求的资源分配机制可提供较快速的处理速度,并且允许
更复杂的物件成像。
本发明的统一着色器的另 一个优点就是每一个执行单元的 功能和大小可相对地简单。借着并行地结合执行单元,可增加 或减少执行单元的数目来轻易地改变绘图处理单元的效能。因 为执行单元的数目是可以改变的,具有较低的执行能力的绘图 处理单元可用于简单的绘图处理。同样地,执行单元的数目也 可以增加以符合需求较高的使用者的需求。由于执行单元具有 执行广泛绘图处理功能的多用性,绘图处理单元的效能可单纯 地以其所包含的寺丸行单元的数目来决定。执行单元的增加或减 少可相对简单,且不需复杂的重新设计来满足低阶或高阶范围 的使用者。
本发明中所述的绘图处理单元、统一着色器和执行单元设
计成符合OpenGL和(或)DirectX的规J各。以下将会讨"i仑这些 组件的实施例的详细"i兌明。
图l显示计算机绘图系统10的一实施例的方块图,此计算机 绘图系统10包括一运算系统12、 一绘图模块14和一显示装置 16。除了上述的组件,运算系统12还包括一绘图处理单元18以 至少处理运算系统12所负责的一部分绘图数据。在某些实施例中,绘图处理单元18可设计为运算系统12内的绘图卡之上。绘 图处理单元18处理图形数据以产生帧的每一像素的颜色值及亮 度值,并显示于显示装置16之上, 一般来说是以每秒30个帧的 频率来处理。绘图才莫块14包括一应用程序4妻口 (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、第一级高速
ii緩存42、第二级高速緩存44、 Z高速緩存46和紋理高速緩存48。 顶点串流高速緩存40接收命令和图形数据,并且传送这些 命令和数据给顶点着色器30,用以对这些数据执行顶点着色的 运算。顶点着色器30使用顶点信息建立欲显示的物件的三角形 和多边形。顶点数据从顶点着色器3 0传送到几何着色器3 2和第 一级高速緩存42。如果有需要的话,某些数据可被第一级高速 緩存42和第二级高速緩存44所共享。第一级高速緩存42也可传 送数据给几何着色器32,其用以执行某些像是镶嵌、阴影计算、 单点子画面(point sprite)的建立等功能。几何着色器32也可借着 从单一顶点建立三角形,或从单一三角形建立多个三角形来提 供流畅的运算。
在此阶段以后,绘图处理管线2 4所包括的扫描场解析器3 4 对几何着色器32和第二级高速緩存44的数据进行运算。扫描场 解析器34亦可利用Z高速緩存46做深度分析,以及紋理高速緩 存48做有关颜色特性的处理。扫描场解析器34可包括固定功能 的运算,像是三角设定、跨砖运算(span tile operations )、深 度测试(Z测试)、预包装、像素颜色插值、包装等等。扫描场 解析器34亦可包括用来将一个物件的顶点从世界空间转换至屏 幕空间的坐标体系的转换矩阵。
完成扫描场解析之后,扫描场解析器34将数据传送给像素 着色器36来决定最后的像素值,像素着色器36的功能包括根据 各种颜色特性处理每一各个的像素以及改变颜色值。举例来 说,像素着色器3 6可包括根据光源的位置及顶点的法线来决定 反射或镜像色值和透明值的功能,然后从绘图处理管线24输出 所完成的视频帧。诚如图2中所示,着色器单元和固定功能单元 于许多阶段使用到高速緩存系统26。假如总线接口28是一异步 的接口 ,则于绘图处理管线24和高速緩存系统26之间的通讯可包括另外的緩冲机制。
在此实施例中,绘图处理管线24的组件设计成分离的单 元,这些单元根据需要存取不同的高速緩存组件。然而,着色
器组件可被集中于统一着色器之内,使得绘图处理管线24可以
较简单的形式设计,且仍提供相同的功能。数据流可被映像在 实体装置之上,在此称为执行单元,用于执行一部分的着色器
功能。如此一来,绘图处理管线24结合成有能力执行绘图处理 管线24的功能的至少一个执行单元。同样的,高速緩存系统26 的某些高速緩存单元也可并入这些执行单元。借着将这些组件 合并成单一的单元可简化绘图处理的流量,并且可进行与异步 接口的切换。因此,可在小区域范围(local)内进行数据的处 理,因而允许较快速度的执行。
图3A显示图1中所示的绘图处理单元18实施例的方块图 (或其它绘图处理装置的方块图1绘图处理单元18包括一统一 着色器单元50和高速緩存/控制装置54,其中统一着色器单元50 具有多个执行单元52。执行单元52并行地连接设置并通过高速 緩存/控制装置54来存取,统一着色器单元50可包括任意数量的 执行单元5 2以适当地根据各种规格执行所要的绘图处理量。当 设计情况需要处理到更多的绘图任务时可以加入更多的执行单 元,如此一来,统一着色器单元50具有可扩充性的特色。
在此实施例中,统一着色器单元50具有比传统绘图处理管 线更具弹性的简化设计。在其它实施例中,每一着色器单元可 能需要较大量的资源以因应运作之需(例如高速緩存和控制装 置),在此实施例中资源是可以共享的。每一个执行单元52也可 以以类似的方法制造,并且依照当前的工作负载量来做存取。 根据此工作负载量,可以视需求来配置执4亍单元52以执行一或 多个绘图处理管线24的功能。因此,统一着色器单元50于绘图处理中提供一个成本效能比更佳的解决方案。
此外,当应用程序接口20的设计和规格改变的时候(此属 常见现象〗统一着色器单元50不需要为了配合应用程序接口的
改变而重新设计。相反地,统一着色器单元50可动态调整以便 依照需求提供特定的着色功能。高速緩存/控制装置54包括一动
态规划装置,以依照当前正在处理的物件或场景来平衡所处理
的负载量。依照规划装置的决定,可分配更多的执行单元52来 提供较大的处理能力于特殊的绘图处理,例如着色器功能或固 定功能,如此一来就可以减少延迟。才丸行单元52也可以适用于 操作所有着色器功能的相同指令集,进而简化处理的过程。
图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。
图3C显示此绘图处理单元18的另 一实施例的方块图。在此 实施例中,绘图处理单元18包括包装器(packer) 78、输入闩 80 (又称为异步输入接口 )、多对的执行单元82、输出闩84(又 称为异步输出接口 )、回写单元86、紋理寻址产生器88、第二级 高速緩存90、高速緩存/控制装置92、内存接口94、内存存取单 元96、三角i殳定单元98以及命令串流处理器100。
命令串流处理器1 OO提供一 串流的索引给高速緩存/控制装 置92,这些索引是关于顶点的身份标记。举例来说,高速緩存/ 控制装置92可一次辨识先进先出緩冲器内的256个索引。包装器 78,通常为固定功能单元,其送出要求给高速緩存/控制装置92 以取得相关的信息来执行像素着色的功能。高速緩存/控制装置 9 2送回像素着色器信息以及关于 一 特定执行单元号码和执行线 程号码的配置信息。该执行单元号码是指执行单元82中的其中 一个执行单元,而执行线程号码是指每一个执行单元中用来处
理数据的许多并行执行线程的其中一个执行线程。之后,包装器7 8传送像素着色运算所需的相关紋理像素和颜色信息给输入
闩80。举例来说,可把连接至输入闩80的两个输入指定给紋理 像素信息,另外两个输入指定给颜色信息。每一个输入具有传 送一特定位^t的能力,例如512位。
输入闩80可为总线接口 ,其依照高速緩存/控制装置92所定 义的分配任务将像素着色器数据安排给特定的执行单元和执行 线程。此分配的任务可根据执行单元和执行线程的可用性、或 是其它的因素来决定,且可依需求改变。在多个执行单元82并 行连接,且每个执行单元有能力并行处理多个工作(或执行线 程)的架构下,可同时执行更大量的绘图处理任务。由于高速 緩存存取的便利性,数据流可维持在局部区域而不需要从较不 易存取的高速緩存获取数据。另外,与传统绘图系统相比,流 经输入闩80和输出闩84的数据流可以被减少,因而降低处理时 间。
每一个执行单元82依照其被指派的方式使用顶点着色和几 何着色的功能来处理数据。另外,执行单元82可根据包装器78 的紋理像素信息和颜色信息来执行像素着色的功能。如图3C所 绘示,本实施例包括了五个执行单元,且每一个执行单元分成 两个部分,每一个部分代表多个执行线程。每一部分可以图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也 可传送数据给输入闩8 0做为响应。第二级高速緩存9 0执行命中/ 失误测试确认数据是否储存于高速緩存之内。如果不是储存于 高速緩存之内,内存接口94可通过内存存取单元96存取内存以 读取所需的数据。第二级高速緩存9 0依所读取的数据更新其内 存并且根据需要把旧的数据丢弃。高速緩存/控制装置92也包括 一个输出,用来传送顶点着色器和几何着色器数据至三角设定 单元98以执行三角i殳定处理。
图4显示常见执行单元102的一个实施例的方块图。执行单 元102实现的方式可如图3A中的寺丸行单元52、图3B中的^丸行单 元56、图3C中执行单元82的其中一半等,或其它具有多重着色 器和固定功能运算的并行处理能力的适当执行单元。在此实施 例中,执行单元102包括执行线程控制装置104、高速緩存系统 10 6以及数据^各径10 8 。这些组件都经由输入闩110和输出闩112 连接到绘图处理单元18的其它部分,输入闩110和输出闩112可 分别对应到图3C中所示的输入闩80和输出闩84。
执行线程控制装置10 4包括控制硬件以决定执行单元数据 路径的资源的适当分配,即用来执行着色器执行码的数据路径 108。数据路径108所定义的精简处理管线的优点是减少数据 流,故可需求较少的频率周期和高速緩存失误。同样地,减少 的数据流带给异步接口较少的压力,因而潜在地减少这些组件
17的瓶颈情况。借着使用本发明所述的执行单元102,与传统绘图 处理器相比可减少处理时间。
数据路径10 8是绘图处理管线的核心,并且可以是可编程 的。由于数据路径108的弹性,使用者可以程序化这些执行单元 以执行比传统实时绘图处理器更大量的绘图运算。数据路径10 8 包括支持顶点着色处理、几何着色处理、三角设定、插值、像 素着色处理、扫描场解析功能等等的硬件功能。由于执行单元 102的精简设计,减少了把数据传送出去给内存并且于稍后读取 的需求。举例来说,如果数据路径108正在处理一个三角带,此 三角带的其中几个顶点可由 一 个执行单元处理,而另 一 个执行 单元则同时处理其它的顶点。同样地,对于三角形拒绝的情况, 数据路径108可更快地确认某一个三角形是否被拒绝,因而减少 延迟的时间和不必要的计算处理。
在一些实施例中,输入闩110和输出闩112为允许^U亍单元 运算于与绘图处理单元其它部分不同频率速度的异步接口 。举 例来说,执行单元可运行于比绘图处理单元其它部分快两倍的 频率速度之上。同样地,数据路径108可运行于比执行线程控制 装置104和高速緩存系统106快两倍的频率速度之上。由于频率 速度的不同,输入闩110和输出闩112的设计可包含緩沖器以同 步内部执行单元组件和外部组件之间的处理。这些或其它类似 的緩冲器于图5中显示。
图5显示图4所述的寺丸行单元102的实施例的细部方块图。在 此实施例中,高速緩存系统106包括指令高速缓存114、常数高 速緩存116以及顶点和属性高速緩存117。数据路径108包括公用 缓存器文件118和执行单元数据路径120。公用緩存器文件118 包括指定给奇数执行线程的奇数路径以及指定给偶数执行线程 的偶数路径。执行单元数据路径120包括算数逻辑单元(ALU)122、 123和插补器124。输入闩110包括执行单元集区控制单元 126、高速緩存128、紋理緩沖器130和数据高速緩存132。输出 闩112包括执行单元集区控制单元134、高速緩存136、输出緩冲 器138。图5的实施例也包括索引输入撷耳又单元(IFU) 140和断 言緩存器文件(PRF) 142。
由于输入闩110和输出闩112的异步性质,异步接口包含了 緩冲器以与绘图处理单元的外部组件做协调。执行单元集区控 制单元12 6的信号被送到执行线程控制装置10 4以维持数据路径 108的多重执行线程。高速緩存128分别传送指令和常数给指令 高速緩存114和常数高速緩存116。紋理坐标从紋理緩冲器130 传送到公用緩存器文件118,数据从数据高速缓存132传送到公 用緩存器文件118以及顶点和属性高速緩存117 。
指令高速緩存114传送指令撷取给执行线程控制装置10 4 。 在此实施例中,大部分的撷取将会是命中的情况,小部分的失 误从指令高速緩存114送到高速緩存136以便从内存读取。同样 地,常数高速緩存116传送失误给高速緩存136以便读取数据。 数据路径108的处理包括根据一偶数或奇数指定加载公用緩存 器文件118的数据。偶数边的数据传送到算数逻辑单元O( 122), 而奇数边的数据传送到算数逻辑单元l (123)。算数逻辑单元O 122和算数逻辑单元1 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单元接收指令,指令失误以要求的形式(as requests)被送 到X o u t接口逻辑单元16 4 。执行线程高速缓存14 8接收指定的执 行线程并且发出指令给执行单元数据路径154。在某些实施例 中,执行线程高速緩存148包括32个执行线程。常数缓冲器150 从Xin接口逻辑单元144接收常数,并且将常数数据加载执行单 元数据路径154。在某些实施例中,常数緩冲器包括4K字节的 内存。公用緩存器文件152接收紋理像素数据,其被传送到执行 单元数据路径154。举例来说,公用緩存器文件152可包括16K 字节的内存。
执行单元数据路径15 4译码指令、撷取操作数以及执行分支 计算。执行单元数据路径154还执行数据的浮点或整数计算,以 及位移/逻辑、发牌/洗牌和载入/储存的操作。紋理像素数据和 失误从执行单元数据路径154经由要求先进先出緩冲器156送到 Xout接口逻辑单元164。断言緩存器文件158和纯量緩存器文件 160可以各是1K字节,并且视需求提供数据给执行单元数据路 径154。
控制信号从执行单元102外部输入至数据输出控制单元 162o数据输出控制单元162也接收执行单元数据路径154的信号 和Xin接口逻辑单元144的数据。数据输出控制162也可视需求向 公用緩存器文件15 2要求取得数据。数据输出控制单元16 2输出 数据给Xout接口逻辑164单元和执行线程工作接口 166以根据已经完成或正在进行的数据决定执行线程未来的工作分配。
流经执行单元数据路径1 5 4的数据流可被分成三个层级,包 括本文层级、执行线程层级和指令(执行)层级。在任何给定
的时间,每个执行单元内有两个本文(context)。本文信息于此 本文的工作开始之前发送到执行单元数据^各径154。本文层级信 息包括例如着色器类型、输入/输出緩存器的数目、指令起始地 址、输出映像表、水平重组表、顶点识别和常数緩沖器150内的常数。
在执行线程层级中,举例来说,每一个执行单元于执行线 程高速緩存148中可包括多达32个执行线禾艮执行线程对应顶点 着色器、几何着色器或像素着色器等类似功能。 一个位用来辨 识于执行线程中所使用到的两个本文,执行线程被分配到尚未 额满的执行单元数据路径154中的其中 一个执行线程位置,此执 行线程位置可以是空的或部分使用中。举例来说,执行线程被 分成偶数群组和奇数群组,每一群组包括16个执行线程的序 列。在执行线程开始之后,执行线程将被放入一个八执行线程 的緩沖器。执行线程根据程序计数器于每一 周期中撷取指令, 例如多达256位的指令数据。在等待一些进来的数据时,执行线 程将保持非作用的状态。反之,此执行线程将处于作用模式。
冲突(例如算数逻辑单元或公用緩存器文件冲突)从八执行线 程的緩冲器配对两个作用的执行线程在 一起。因为某些执行线 程于执行期间可能进入非作用模式,故可达成此八个执行线程 的较佳配对。在执行末期时,执行线程从工作緩冲器移开,并 且 一 程序结束的标记#1发出。此标记进入数据输出控制单元16 2 以将数据移出至Xout接口逻辑单元164。 一旦所有的数据都被移 出,执行线程将从执行线程位置移除并且通知执行单元数据路
21径154。数据输出控制单元162也根据 一 映像表移动公用緩存器 文件152的数据。 一旦这些緩存器被清空,执行单元数据路径154 可加载公用緩存器文件152以为下个执行线程作准备。
关于指令数据流,执行线程执行产生指令撷取。举例来说, 每一压缩的指令中可有64位的数据。如果需要的话,执行线程 控制可解压缩指令,并且执行计分板测试然后进入仲裁阶段。 为了提高效率,硬件可将属于不同执行线程的指令配对在一起
介于执行线程控制和指令高速緩存之间的指令撷取机制包 括失误的情况,其会送回四位的集合i也址(set address)外加两 位的信道地址(way address )。 /人Xin4姿口逻辑单元144所进来的 数据的广播信号可被接收。指令撷取也包括命中的情况,其于 下个频率周期接收数据。命中失误(hit-on-miss )与失误的结 果相似,双重失误(miss-on-miss )的情况会回传四位的集合地 址,并且Xin接口逻辑单元144的广播信号可于第二要求之上接 收。为了使执行线程保持运作,计分板维持回传的要求的数据。 如果进来的指令需要这些数据来继续处理的话,可以停止执行 线程的运作。
图7显示图5或6中所示的执行单元102的公用緩存器文件 接口的一个实施例的方块图。图8显示公用緩存器文件接口对应 的信号传输。在图7中,公用緩存器文件接口的实施例包括Xin 逻辑单元168、数据输出控制单元170、 Xout逻辑单元172、偶数 公用緩存器文件174、奇数公用緩存器文件176、偶数执行单元 数据路径178和奇数执行单元数据路径180。在图8中,根据所指 定的执行线程以标签比较的方式接收读取和写入的数据。标签 比较的输出被传送到区块读取选择,然后再到区块读取端口 。 在本实施例中标签比较4到6的输出为失误,其被送到一个配置 装置。在标签比较4和5的配置中,信号被传送到区块写入选择,然后再到区块写入端口。在标签比较6的配置中,信号被传送到 区块读/写选择,然后再到区块读/写端口。
本发明所述的统一着色器和执行单元可以硬件、软件、固 件或其组合等方式实现。在所揭露的实施例中,部分以例如软 件或固件实现的统一着色器和执行单元可被储存于内存,并且 可被适当的指令执行单元执行。部分以例如石更件实现的统一着 色器和执行单元,可以任何具有逻辑门、专用集成电路
(Application Specific Integrated Circuit, ASIC )、可编一呈门P车 列(Programmable Gate Array, PGA )、现场可编程门阵列(Field Programmable Gate Array, FPGA )等等的离散逻辑电路,或上
述任何组合的离散逻辑电路所实现。
在此所描述的统一着色器和执行单元的功能可包括用来实 现逻辑功能的可执行指令的顺序列表。这些可执行指令可嵌入 于任何计算机可读取的介质以让指令执行系统、机械或装置使 用,像是基于计算机的系统、处理器控制的系统或其它系统。 计算机可读取介质可以是能容纳、储存、通讯、传播或传输程 序以让指令执行系统、机械或装置所使用的任何介质。举例来 说,此计算机可读取介质可以是电子、-兹力、光学、电磁、红 外线或半体导的系统、机械、装置或传播介质。
以上所述仅为本发明较佳实施例,然其并非用以限定本发
明的范围,任何熟悉本项技术的人员,在不脱离本发明的精神 和范围内,可在此基础上做进一步的改进和变化,因此本发明 的保护范围当以本申请的权利要求书所界定的范围为准。
附图中符号的简单说明如下
12:运算系统
14:绘图模块
16:显示装置
2318:绘图处理单元
20:应用程序接口
22:软件应用程序
24:绘图处理管线
26、 106:高速緩存系统
28:总线接口
30:顶点着色器
32:几何着色器
34:扫描场解析器
36:像素着色器
40:顶点串流高速緩存
42、 196:第一级高速緩存
44、 90:第二级高速緩存
46: Z高速緩存
48:紋理高速緩存
50:统一着色器单元
52、 56、 82、 102:执行单元
54、 60、 92:高速緩存/控制装置
58:纟丈理单元
62:只读高速緩存
64、 132:数据高速緩存
66:顶点着色器控制装置
68:扫描场4妄口
70、 100:命令串流处理器
72、 96:内存存取单元
74:扫描场解析单元
76、 86:回写单元78:包装器
80、 110:输入闩
84、 112: llr出闩
88:紋理寻址产生器
94:内存接口
98:三角设定单元
104:执行线程控制装置
108:数据路径
114、 146:指令高速緩存
116:常数高速緩存
117:顶点和属性高速緩存
118、 152:公用緩存器文件
120、 154:执行单元数据路径
122:算数逻辑单元0
123:算数逻辑单元l
124:插补器
126、 134:执行单元集区控制单元
128、 136:高速緩存
130:紋理緩冲器
138:输出緩冲器
140:索引输入撷取单元
142、 158:断言緩存器文件
144: Xin接口逻辑单元
148:执行线程高速緩存
150:常数缓冲器
156:要求先进先出緩沖器
160:纯量緩存器文件162、 170: ^:据输出控制单元
164: Xout接口逻辑单元 166:-执行线程工作接口
168: Xin逻辑单元
172: Xout逻辑单元 174:偶数公用缓存器文件 176:奇数公用緩存器文件 178:偶数执行单元数据路径 180:奇数执行单元数据路径。
权利要求
1. 一种绘图处理单元,其特征在于,包括一个控制装置,用以接收顶点数据、几何数据和像素数据;以及一个统一着色器单元,具有并行耦接的多个执行单元,每一执行单元用以对上述顶点数据、几何数据和像素数据执行多个绘图着色功能中至少一个的绘图着色功能,其中上述控制装置还用以分配上述顶点数据、几何数据和像素数据其中的一部分给上述每一执行单元,以平衡上述执行单元之间的负载量。
2. 根据权利要求l所述的绘图处理单元,其特征在于,上 述绘图着色功能包括顶点着色功能、几何着色功能和像素着色 功能。
3. 根据权利要求l所述的绘图处理单元,其特征在于,上 述绘图着色功能还包括一个扫描场解析功能。
4. 根据权利要求3所述的绘图处理单元,其特征在于,上 述扫描场解析功能包括三角设定功能、跨砖运算功能、Z测试 功能和像素颜色插值功能其中的至少一个功能。
5. 根据权利要求l所述的绘图处理单元,其特征在于,上 述统一着色器单元还包括多个紋理单元,上述紋理单元与上述 执行单元并行。
6. 根据权利要求5所述的绘图处理单元,其特征在于,上 述控制装置包括一 个只读高速緩存和 一 个数据高速緩存,上述 执行单元和上述紋理单元可共享上述只读高速緩存和上述数据 高速緩存。
7. 根据权利要求l所述的绘图处理单元,其特征在于,还 包括一个异步输入闩和一个异步输出闩,其中上述执行单元并 行耦接于上述异步输入闩和上述异步输出闩之间,并且上述控 制装置经由上述异步输入闩控制上述顶点数据至上述执行单元的分配。
8. 根据权利要求7所述的绘图处理单元,其特征在于,上 述控制装置还包括耦接到上述异步输入闩的 一 个包装器。
9. 根据权利要求7所述的绘图处理单元,其特征在于,上 述控制装置还包括耦接到上述异步输出闩的一个回写单元和一 个紋理寻址产生器。
10. 根据权利要求l所述的绘图处理单元,其特征在于,还 包括一个命令串流处理器,用以输入一串流的输入顶点数据给 上述控制装置。
11. 一种执行单元,其特征在于,包括 一个数据路径,具有 一个执行顶点着色功能的逻辑单元、一个执行几何着色功能的逻辑单元以及一个执行像素着色功能的逻辑单元;一个高速緩存系统;以及一个执行线程控制装置,用以根据分配任务控制上述数据 路径,其中上述数据路径还设计来执行上述顶点着色功能、上述几何着色功能或上述像素着色功能其中的一个或多个。
12. 根据权利要求ll所述的执行单元,其特征在于,上述 数据路径还包括用来执行扫描场解析功能的逻辑单元。
13. 根据权利要求ll所述的执行单元,其特征在于,上述 数据路径还包括一个公用緩存器文件和一个执行单元数据路 径。
14. 根据斥又利要求13所述的执行单元,其特征在于,上述 公用緩存器文件包括指定给偶数执行线程的 一 个第 一通道,以 及指定给奇数执行线程的一个第二通道。
15. 根据权利要求13所述的执行单元,其特征在于,上述 数据路径包括两个算数逻辑单元和 一 个插补器。
16. 根据权利要求ll所述的执行单元,其特征在于,上述 高速緩存系统包括一 个指令高速緩存、 一 个常数高速緩存以及 一个顶点和属性高速緩存。
17. 根据权利要求ll所述的执行单元,其特征在于,上述数据路径耦接于 一 个异步输入总线接口和 一 个异步输出总线接 口之间,以分离上述数据路径和绘图处理单元其它部分的频率 频域。
18. 根据权利要求ll所述的执行单元,其特征在于,上述 数据路径操作于一频率速度之上,上述频率速度至少是一外部 频率速度的两倍。
19. 根据权利要求17所述的执行单元,其特征在于,还包 括一个数据输出控制装置,用以控制关于上述异步输入总线接 口的输入逻辑单元和关于上述异步输出总线接口的输出逻辑单 元。
20. 根据权利要求ll所述的执行单元,其特征在于,还包 括一个断言緩存器文件和一个纯量緩存器文件。
全文摘要
一种绘图处理单元以及执行单元,其中绘图处理单元是用来处理关于三维物件或场景的数据,并且将三维的数据成像于二维的显示屏幕之上。本发明揭露的绘图处理单元实施例包括用来接收顶点数据、几何数据和像素数据的控制装置。上述绘图处理单元还包括并行连接的多个执行单元,每一执行单元用来对顶点、几何和像素数据执行多种绘图着色功能。上述控制装置还分配一部分的顶点、几何和像素数据给每一执行单元以大致平衡执行单元之间的负载量。本发明可适当地调整处理设备的分配以有效率及快速地处理绘图数据。
文档编号G06T1/20GK101470892SQ200910000998
公开日2009年7月1日 申请日期2009年1月24日 优先权日2008年1月25日
发明者提莫·佩塔西, 阳 焦 申请人:威盛电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1