通过在空间上和/或在时间上改变采样模式增强抗锯齿的制作方法_2

文档序号:9647034阅读:来源:国知局
冲区并由前端单元212从主机接口 206接收的命令流中。可以编码为TMD的处理任务包括与所要处理的数据相关联的的索引,以及定义数据将被如何处理的状态参数和命令。例如,状态参数和命令可以定义将在数据上执行的程序。任务/工作单元207从前端212接收任务并确保在每一个TMD所指定的处理任务发起前,将GPC 208配置为有效状态。可以为每个TMD指定用来调度处理任务的执行的优先级。还可从处理集群阵列230接收处理任务。可选地,TMD可包括控制将TMD添加到处理任务列表(或指向处理任务的指针的列表)的头部还是尾部的参数,从而提供除执行优先级以外的另一级别的控制。
[0038]有利地,PPU 202基于处理集群阵列230实现高度并行处理架构,处理集群阵列230包括一组C个通用处理集群(GPC)208,其中C多1。每个GPC 208能够并发执行大量的(例如,几百或几千)线程,其中每个线程是程序的实例(instance)。在各种应用中,可分配不同的GPC 208用于处理不同类型的程序或用于实施不同类型的计算。GPC 208的分配依赖于每种类型的程序或计算所产生的工作量而可以变化。
[0039]存储器接口 214包括一组D个分区单元215,其中D彡1。每个分区单元215耦连到驻留在PP存储器204内的一个或多个动态随机存取存储器(DRAM) 220。在一个实施例中,分区单元215的数目等于DRAM 220的数目,并且每个分区单元耦连到不同的DRAM 220。在其他实施例中,分区单元215的数目可以与DRAM 220的数目不同。本领域的普通技术人员应该理解DRAM 220可以用任何其他技术上合适的存储设备来替代。在操作中,诸如纹理映射图和帧缓冲区的各种渲染目标可以跨DRAM 220加以存储,这允许分区单元215并行写入每个渲染目标的各部分以有效地使用PP存储器204的可用带宽。
[0040]给定GPC 208可以处理要被写到PP存储器204内的任何DRAM 220的数据。交叉开关单元210配置为路由每个GPC 208的输出到任何分区单元215的输入或到任何其他GPC 208用于进一步处理。GPC 208经由交叉开关单元210与存储器接口 214通信,以对各种DRAM 220进行读取或写入。在一个实施例中,交叉开关单元210具有到I/O单元205的连接,以及经由存储器接口 214到PP存储器204的连接,从而使得在不同GPC 208内的处理内核能够与系统存储器104或对于PPU 202而言非本地的其他存储器通信。在图2的实施例中,交叉开关单元210直接与I/O单元205连接。在各实施例中,交叉开关单元210可使用虚拟信道来分开GPC 208与分区单元215之间的业务流。
[0041]另外,GPC 208可被编程以执行与种类繁多的应用相关的处理任务,包括但不限于线性和非线性数据变换、视频和/或音频数据过滤、建模操作(例如,应用物理定律以确定对象的位置、速率和其他属性)、图像渲染操作(例如,曲面细分(tessellat1n)着色器、顶点着色器、几何着色器、和/或像素/片段着色器程序)、通用计算操作等等。在操作中,PPU 202配置为将数据从系统存储器104和/或PP存储器204转移到一个或多个片上存储器单元、处理该数据、并且将结果数据写回到系统存储器104和/或PP存储器204。结果数据随后可以由其他系统部件访问,所述其他系统部件包括CPU 102、并行处理子系统112内的另一个PPU 202、或计算机系统100内的另一个并行处理子系统112。
[0042]如上所示,在并行处理子系统112中可以包括任何数目的PPU 202。例如,可在单个插卡上提供多个PPU 202、或可将多个插卡连接到通信路径113、或可将一个或多个PPU202集成到桥式芯片中。在多PHJ系统中的PPU 202可以彼此同样或不同。例如,不同的PPU 202可能具有不同数目的处理内核和/或不同容量的PP存储器204。在存在多个PPU202的实现方案中,可并行操作那些PHJ从而以高于单个PPU 202所可能达到的吞吐量来处理数据。包含一个或多个PPU 202的系统可以以各种配置和形式因素来实现,包括但不限于台式电脑、笔记本电脑、手持式个人计算机或其他手持设备、服务器、工作站、游戏控制台、肷入式系统等等。
[0043]图3A为根据本发明的一个实施例的、图2的PPU 202中所包括的GPC 208的框图。在操作中,GPC 208可以配置为并行执行大量线程,以实施图形、通用处理和/或计算操作。所本文所使用的,“线程”是指在特定输入数据集上执行的特定程序的实例。在一些实施例中,单指令、多数据(sniD)指令发出技术用于在不提供多个独立指令单元的情况下支持大量线程的并行执行。在其他实施例中,单指令、多线程(simt)技术用于使用配置为向GPC 208内的处理引擎集发出指令的公共指令单元来支持大量一般来说同步的线程的并行执行。不同于所有处理引擎通常都执行同样指令的sn?执行机制,s頂τ执行通过给定程序允许不同线程更容易跟随分散执行路径。本领域普通技术人员应该理解sn?处理机制代表s頂τ处理机制的功能子集。
[0044]经由管线管理器305来控制GPC 208的操作,管线管理器305将从任务/工作单元207内的工作分布单元(未示出)所接收的处理任务分布到一个或多个流多处理器(SM)310o管线管理器305还可配置为通过为由SM 310所输出的处理数据指定目的地来控制工作分布交叉开关330。
[0045]在一个实施例中,GPC 208包括一组Μ个SM 310,其中Μ彡1。另外,每个SM 310包括功能执行单元集(未示出),诸如执行单元和加载-存储单元。特定于任何功能执行单元的处理操作都可以被管线化,其使能在前一个指令完成执行之前发出新指令用于执行。可提供给定SM 310内的功能执行单元的任何组合。在各实施例中,功能执行单元可配置为支持各种各样的不同操作,包括整数和浮点运算(例如加法和乘法)、比较操作、布尔操作(AND、OR、X0R)、移位和各种代数函数的计算(例如平面插值和三角函数、指数函数和对数函数等等)。有利地,相同功能执行单元可配置为实施不同的操作。
[0046]在操作中,每个SM 310配置为处理一个或多个线程组。如本文所使用的,“线程组”或“线程束(warp) ”是指对不同输入数据并发执行相同程序的一组线程,所述组的一个线程被指派到SM 310内的不同执行单元。线程组可以包括比SM 310内的执行单元数目少的线程,在这种情况下一些执行单元将在该线程组正在被处理的周期期间处于闲置状态。线程组还可以包括比SM 310内的执行单元数目多的线程,在这种情况下处理可在连续的时钟周期内发生。因为每个SM 310可以并发支持多达G个线程组,结果是在任何给定时间在GPC 208中可以执行多达G*M个线程组。
[0047]此外,多个相关线程组可以在SM 310内同时活动(在执行的不同阶段)。该线程组集合在本文中称为“协作线程阵列”(“CTA”)或“线程阵列”。特定CTA的大小等于m*k,其中k是线程组中并发执行线程的数目,其通常是SM 310内的执行单元数目的整数倍,以及m是SM 310内同时活动的线程组的数目。
[0048]虽然未在图3A中示出,但每个SM 310包含一级(L1)高速缓存或使用另外支持由执行单元所实施的加载和存储操作的SM 310外部的相应L1高速缓存中的空间。每个SM310都还有权访问在PPU 202中的所有GPC 208之间共享的二级(L2)高速缓存(未示出)。L2高速缓存可用于在线程之间转移数据。最后,SM 310还有权访问片外“全局”存储器,所述“全局”存储器可以包括例如PP存储器204和/或系统存储器104。应该理解,PPU 202外部的任何存储器可用作全局存储器。此外,如图3A中所示的,一点五级(L1.5)高速缓存335可以包括在GPC 208内并且配置为接收并保持由SM 310经由存储器接口 214从存储器请求的数据。这类数据可以包括但不限于指令、一致(uniform)数据和常数数据。在GPC208中具有多个SM 310的实施例中,SM 310可有利地共享高速缓存在L1.5高速缓存335中的公共指令和数据。
[0049]每个GPC 208可以具有配置为将虚拟地址映射到物理地址中的相关联的存储器管理单元(MMU)320。在各实施例中,MMU 320可以驻留在GPC 208内或存储器接口 214内。MMU 320包括用于将虚拟地址映射到像素块(tile)的物理地址或存储器页面的页表条目(PTE)集和可选地包括高速缓存行索引。MMU 320可以包括地址转译后备缓冲区(TLB)或可以驻留在SM 310、一个或多个L1高速缓存或GPC 208内的高速缓存。
[0050]在图形和计算应用中,GPC 208可配置为使得每个SM 310耦连到用于实施纹理映射操作诸如确定纹理样本位置、读取纹理数据以及过滤纹理数据的纹理单元315。
[0051]在操作中,为了将所处理的任务提供给另一个GPC 208用于进一步处理或为了经由交叉开关单元210将所处理的任务存储在L2高速缓存、并行处理存储器204或系统存储器104中,每个SM 310将所处理的任务传送到工作分布交叉开关330。此外,预光栅操作(preROP)单元325配置为从SM 310接收数据、将数据引导到分区单元215内的一个或多个光栅操作(R0P)单元、针对颜色混合实施优化、组织像素颜色数据和实施地址转译。
[0052]应该理解本文所述的内核架构是示例性的并且变化和修改都是可能的。此外,任何数目的处理单元诸如SM 310、纹理单元315或preROP单元325可以包括在GPC 208内。进一步地,如上文结合图2所述,PPU 202可以包括任何数目的GPC 208,所述GPC 208配置为在功能上彼此相似以使得执行行为不取决于哪个GPC 208接收特定处理任务。进一步地,每个GPC 208独立于PPU 202中的其他GPC 208操作以为一个或多个应用程序执行任务。鉴于前面所述,本领域普通技术人员将理解图1-3A中所描述的架构决不限制本发明的范围。
图形管线架构
[0053]图3B是根据本发明的一个实施例的、可在图2的PPU 202中实现的图形处理管线350的概念图。如所示的,图形处理管线350包括但不限于以下单元:基元分配器(PD)355,顶点属性获取单元(VAF) 360,顶点、曲面细分、几何处理单元(VTG) 365,视口缩放、剔除和裁剪单元(VPC)370,分块(tiling)单元375,设置单元(setup) 380,光栅化器(光栅)385,片段处理单元也认定为像素着色单元(PS) 390,以及光栅操作(R0P)单元395。
[0054]PD 355从前端212收集与高阶表面、图形基元等相关联的顶点数据,并将顶点数据传送到VAF 360。
[0055]VAF 360检索与来自共享存储器的每个进入顶点相关联的顶点属性,并将顶点数据与相关联的顶点属性一起存储到共享存储器。
[0056]VTG 365是配置为执行顶点着色器程序、曲面细分程序和几何程序的可编程执行单元。这些程序处理从VAF 360所接收的顶点属性和顶点数据,并产生图形基元和图形基元的每个顶点处的透明度值、颜色值、以及表面法向量,用于在图形处理管线350内进一步处理。在一些实施例中,虽未明确示出,但VTG 365可以包括顶点处理单元、曲面细分初始化处理单元、任务生成单元、任务分配器、拓扑生成单元、曲面细分处理单元以及几何处理单元中的一个或多个。
[0057]顶点处理单元是配置为执行顶点着色器程序的可编程执行单元,按顶点着色器程序所指定的来亮化和变换顶点数据。例如,顶点处理单元可被编程以将顶点数据从基于对象的坐标表示(对象空间)变换到可替代地基于诸如世界空间或规格化设备坐标(NDC)空间的坐标系。顶点处理单元可读取由VAF存储在共享存储器中的顶点数据和顶点属性,并且可以处理顶点数据和顶点属性。顶点处理单元415可以将经处理的顶点存储到共享存储器。
当前第2页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1