为计算装置上部分模糊图形图像促进动态和有效的预启动裁剪的制作方法_2

文档序号:9471006阅读:来源:国知局
/媒体子系统315,子系统315包括用于仲裁和调度各种请求到可用线程执行资源的线程调度逻辑。执行资源包括处理3D和媒体线程的图形执行单元的阵列。在一个实施例中,3D/媒体子系统315包括用于线程指令和数据的一个或更多个内部高速缓存。在一个实施例中,子系统也包含包括寄存器和可寻址存储器的共享存储器,以在线程之间共享数据和存储输出数据。
[0045]3D/媒体处理-图4
图4是用于图形处理器的图形处理引擎410的一实施例的框图。在一个实施例中,图形处理引擎(GPE) 410是图3所示GPE 310的某个版本。GPE 410包括3D管线412和媒体管线416,它们每个能够不同或类似于图3的3D管线312和媒体管线316的实现。
[0046]在一个实施例中,GPE 410与提供命令流到GPE 3D和媒体管线412、416的命令流传送器403耦合。命令流传送器403耦合到能够是系统存储器或内部高速缓冲存储器和共享高速缓冲存储器的一项或更多项的存储器。命令流传送器403接收来自存储器的命令,并且将命令发送到3D管线412和/或媒体管线416。3D和媒体管线通过经相应管线内的逻辑执行操作,或者通过将一个或更多个执行线程调度到执行阵列单元414来处理命令。在一个实施例中,执行单元阵列414可扩展,使得阵列包括基于GPE 410的目标功率和性能级别的可变数量的执行单元。
[0047]采样引擎430与存储器(例如调整缓冲存储器或系统存储器)和执行单元阵列414耦合。在一个实施例中,采样引擎430提供用于可扩展执行单元阵列414,允许执行阵列414从存储器读取图形和媒体数据的存储器访问机制。在一个实施例中,采样引擎430包括为媒体执行专用图像采样操作的逻辑。
[0048]采样引擎430中的专用媒体采样逻辑包括解噪/解交错模块432、运动估计模块434和图像缩放和过滤模块436。解噪/解交错模块432包括在解码的视频数据上执行解噪或解交错算法的一项或更多项的逻辑。解交错逻辑将交错的视频内容的交替场组合成视频的单个帧。解噪逻辑降低或去除来自视频和图像数据的数据噪声。在一个实施例中,解噪逻辑和解交错逻辑是运动自适应式,并且基于在视频数据中检测到的运动量使用空间或时间过滤。在一个实施例中,解噪/解交错模块432包括专用运动检测逻辑(例如,在运动估计引擎434内)。
[0049]运动估计引擎434通过在视频数据上执行诸如运动向量估计和预测等视频加速功能,提供用于视频操作的硬件加速。运动估计引擎确定描述在连续视频帧之间图像数据的变换的运动向量。在一个实施例中,图形处理器媒体编解码器使用视频运动估计引擎434在宏级别在视频上执行操作,这些操作在其它情况下在使用通用处理器执行时可能是计算密集型的。在一个实施例中,运动估计引擎434通常可用于图形处理器组件以有助于对视频数据内运动的方向或量级敏感或与其相适应的视频解码和处理功能。
[0050]图像缩放和过滤模块436执行图像处理操作以增强生成的图像和视频的视觉质量。在一个实施例中,在将数据提供到执行单元阵列414前,缩放和过滤模块436在采样操作期间处理图像和视频数据。
[0051]在一个实施例中,图形处理引擎410包括数据端口 444,数据端口 444提供另外的机制以便图形子系统访问存储器。数据端口 444为包括再现目标写入、恒定缓冲器读取、暂存区存储器空间读取/写入及媒体表面访问等操作促进了存储器访问。在一个实施例中,数据端口 444包括高速缓冲存储器空间经缓存对存储器的访问。高速缓冲存储器能够是单个数据高速缓存,或者分隔成用于经数据端口访问存储器的多个子系统的多个高速缓存(例如,再现缓冲器缓存、恒定缓冲器缓存等)。在一个实施例中,在执行单元阵列414中执行单元上执行的线程通过经将图形处理引擎410的每个子系统耦合的数据分布互连交换消息,与数据端口进行通信。
[0052]执行单元-图5-7
图5是图形处理器的另一实施例的框图。在一个实施例中,图形处理器包括环形互连502、管线前端504、媒体引擎537及图形核580A-N。环形互连502将图形处理器耦合到其它处理单元,包括其它图形处理器或一个或更多个通用处理器核。在一个实施例中,图形处理器是集成在多核处理系统内的许多处理器之一。
[0053]图形处理器经环形互连502接收成批的命令。进入的命令由管线前端504中的命令流传送器503解释。图形处理器包括可扩展执行逻辑以经图形核580A-N执行3D几何形状处理和媒体处理。对于3D几何形状处理命令,命令流传送器503将命令供应到几何形状管线536。对于至少一些媒体处理命令,命令流传送器503将命令供应到与媒体引擎537耦合的视频前端534。媒体引擎537包括用于视频和图像后处理的视频质量引擎(VQE) 530和多格式编码/(MFX) 533引擎以提供硬件加速的媒体数据编码和解码。几何形状管线536和媒体引擎537每个生成用于至少一个图形核580A提供的线程执行资源的执行线程。
[0054]图形处理器包括具有模块化核580A-N (有时称为核片段(core slice))的可扩展线程执行资源,每个模块化核具有多个子核550A-N、560A_N (有时称为核子片(coresub-slice) )0图形处理器能够具有任何数量的图形核580A-580N。在一个实施例中,图形处理器包括具有至少第一子核550A和第二核子核560A的图形核580A。在另一实施例中,图形处理器是带有单个子核(例如,550A)的低功率处理器。在一个实施例中,图形处理器包括多个图形核580A-N,每个图形核具有第一子核550A-N集和第二核子核560A-N集。第一子核550A-N集中的每个子核包括执行单元552A-N和媒体/纹理采样器554A-N的至少第一集。第二子核560A-N集中的每个子核包括执行单元562A-N和采样器564A-N的至少第二集。在一个实施例中,每个子核550A-N、560A-N共享资源570A-N集。在一个实施例中,共享资源包括共享高速缓冲存储器和像素操作逻辑。其它共享资源也可包括在图形处理器的各种实施例中。
[0055]图6示出包括在图形处理引擎的一个实施例中采用的处理元素的阵列的线程执行逻辑600 ο在一个实施例中,线程执行逻辑600包括像素着色器602、线程调度器604、指令高速缓存606、包括多个执行单元608A-N的可扩展执行单元阵列、采样器610、数据高速缓存612及数据端口 614。在一个实施例中,包括的组件经链接到每个组件的互连结构互连。线程执行逻辑600包括通过指令高速缓存606、数据端口 614、采样器610和执行单元阵列608A-N的一项或更多项,到诸如系统存储器或高速缓冲存储器等存储器的一个或更多个连接。在一个实施例中,每个执行单元(例如,608A)是能够执行多个同时线程并且为每个线程平行处理多个数据元素的单独向量处理器。执行单元阵列608A-N包括任何数量的单独执行单元。
[0056]在一个实施例中,执行单元阵列608A-N主要用于执行“着色器”程序。在一个实施例中,阵列608A-N中的执行单元执行指令集,指令集包括对许多标准3D图形着色器指令的原生支持,从而以最小转换执行来自图形库(例如,Direct 3D和OpenGL)的着色器程序。执行单元支持顶点和几何形状处理(例如,顶点程序、几何形状程序、顶点着色器)、像素处理(例如,像素着色器、片段着色器)和通用处理(例如,计算和媒体着色器)。
[0057]执行单元阵列608A-N中的每个执行单元在数据元素的阵列上操作。数据元素的数量是“执行大小”或用于指令的通道的数量。执行通道是用于指令内数据元素访问、掩蔽和流控制的执行的逻辑单元。通道的数量可与用于特定图形处理器的物理ALU或FPU的数量无关。执行单元608A-N支持整数和浮点数据类型。
[0058]执行单元指令集包括单指令多数据(SMD)指令。各种数据元素能够存储为寄存器中的紧凑数据(packed data)类型,并且执行单元将基于元素的数据大小处理各种元素。例如,在256比特宽向量上操作时,向量的256比特存储在寄存器中,并且执行单元在向量上作为4个单独的64比特紧凑数据元素(四倍长字(QW)大小数据元素)、8个单独的32比特紧凑数据元素(双倍长字(DW)大小数据元素)、16个单独的16比特紧凑数据元素(字(W)大小数据元素)或32个单独的8比特紧凑数据元素(字节(B)大小数据元素)。然而,不同向量宽度和寄存器大小是可能的。
[0059]—个或更多个内部指令高速缓存(例如,606)包括在线程执行逻辑600中以缓存用于执行单元的线程指令。在一个实施例中,包括一个或更多个数据高速缓存(例如,612)以在线程执行期间缓存线程数据。包括采样器610以提供用于3D操作的纹理采样和用于媒体操作的媒体采样。在一个实施例中,采样器610包括专用纹理或媒体采样功能性以在将采样的数据提供到执行单元前的采样过程期间处理纹理或媒体数据。
[0060]在执行期间,图形和媒体管线将线程启动请求经线程派生和调度逻辑发送到线程执行逻辑600。线程执行逻辑600包括仲裁来自图形和媒体管线的线程启动请求并且在一个或更多个执行单元608A-N上例示请求的线程的本地线程调度器604。例如,几何形状管线(例如,图5的536)将顶点处理、镶嵌或几何形状处理线程调度到线程执行逻辑600。线程调度器604也能够处理来自执行着色器程序的运行时线程派生请求。
[0061]—旦已处理并且光栅化成像素数据一组几何对象,便调用像素着色器602以进一步计算输出信息,并且促使结果写入输出表面(例如,颜色缓冲器、深度缓冲器、模板缓冲器等)。在一个实施例中,像素着色器602计算要跨光栅化对象内插的各种顶点属性的值。像素着色器602随后执行API供应的像素着色器程序。为执行像素着色器程序,像素着色器602经线程调度器604将线程调度到执行单元(例如,608A)。像素着色器602使用采样器610中的纹理采样逻辑访问存储器中存储的纹理图中的纹理数据。纹理数据和输入几何形状数据上的算术运算计算用于每个几何片段的像素颜色数据,或者丢弃一个或更多个像素,免于进一步处理。
[0062]在一个实施例中,数据端口 614提供存储器访问机制,以便线程执行逻辑600将处理的数据输出到存储器以在图形处理器输出管线上处理。在一个实施例中,数据端口 614包括或耦合到一个或更多个高速缓冲存储器(例如,数据高速缓存612),以便为经数据端口的存储器访问缓存数据。
[0063]图7是示出根据一实施例的图形处理器执行单元指令格式的框图。在一个实施例中,图形处理器执行单元支持具有多种格式的指令的指令集。实线框示出通常在执行单元指令中包括的组件,而虚线包括可选或者只包括在指令的子集中的组件。所述和所示指令是宏指令,表现在它们是供应到执行单元的指令,而不同于一旦处理指令便从指令解码产生的微操作。
[0064]在一个实施例中,图形处理器执行单元本身支持128比特格式710的指令。基于选择的指令、指令选项和操作数的数量,64比特压缩指令格式730可用于一些指令。原生128比特格式710提供到所有指令选项的访问,而一些选项和操作受限于64比特格式730。64比特格式730中可用的原生指令随实施例变化。在一个实施例中,使用索引字段713中的索引值集,部分压缩指令。执行单元硬件基于索引值引用压缩表集,并且使用压缩表输出重构128比特格式710的原生指令。
[0065]对于每个格式,指令操作码712定义执行单元要执行的操作。指令单元跨每个操作数的多个数据元素平行执行每个指令。例如,响应加法指令,执行单元跨表示纹理元素或图片元素的每个颜色通道执行同时加法运算。默认情况下,执行单元跨操作数的所有数据通道执行每个指令。指令控制字段712允许对某些执行选项的控制,如通道选择(例如,预测)和数据通道顺序(例如,混合)。对于128比特指令710,执行大小字段716限制将平行执行的数据通道的数量。执行大小字段716不可用于在64比特压缩指令格式730中使用。
[0066]一些执行单元指令最多具有三个操作数,包括两个源操作数srcO 722、srcl 722和一个目的地718。在一个实施例中,执行单元支持双目的地指令,其中暗示了目的地之一。数据操纵指令能够具有第三源操作数(例如,SRC2 724),其中,指令操作码JJ12确定源操作数的数量。指令的最后源操作数能够是通过指令传递的立即(例如,硬编码)值。
[0067]在一个实施例中,基于操作码比特字段将指令编组以简化操作码解码740。对于8比特操作码,比特4、5和6允许执行单元确定操作码的类型。所示精确的操作码编组是示范。在一个实施例中,移动和逻辑操作码组742包括数据移动和逻辑指令(例如,mov.cmp)。移动和逻辑组742共享5个最高有效比特(MSB),其中,移动指令为OOOOxxxxb形式(例如,OxOx),并且逻辑指令为OOOlxxxxb形式(例如,0x01)。流控制指令组744(例如,call、jmp)包括00 1xxxxb形式的指令(例如,0x20)。杂项指令组746包括指令的混合,包括001 lxxxxb形式的同步指令(例如,wait、send)(例如,0x30)。平行数学指令组748包括OlOOxxxxb形式的组件式算术指令(例如,add、mul)(例如,0x40)。平行数学组748跨数据通道平行执行算术运算。向量数学组750包括OlOlxxxxb形式的算术指令(例如,dp4)(例如,0x50)。向量数学组执行诸如在向量操作数上的点积计算等算术。
[0068]图形管线-图8
图8是包括图形管线820、媒体管线830、显示引擎840、线程执行逻辑850及再现输出管线870的图形处理器的另一实施例的框图。在一个实施例中,图形处理器是包括一个或更多个通用处理核的多核处理系统内的图形处理器。通过到一个或更多个控制寄存器(未示出)的寄存器写入,或者经通过环形互连802发布到图形处理器的命令,控制图形处理器。环形互连802将图形处理器耦合到其它处理组件,如其它图形处理器或通用处理器。来自环形互连的命令由命令流传送器803截接,命令流传送器803将指令供应到图形管线820或媒体管线830的单独组件。
[0069]命令流传送器803引导顶点获取器805组件的操作,顶点获取器805组件从存储器读取顶点数据,并且执行由命令流传送器803提供的顶点处理命令。顶点获取器805将顶点数据提供到顶点着色器807,顶点着色器807执行对每个顶点的坐标空间变换和光照操作。顶点获取器805和顶点着色器807通过经线程调度器831将执行线程调度到执行单元852A、852B,执行顶点处理指令。
[0070]在一个实施例中,执行单元852A、852B是具有用于执行图形和媒体操作的指令集的向量处理器的阵列。执行单元852A、852B具有对每个阵列特定或者在阵列之间共享的附连LI高速缓存851。该高速缓存能够配置为数据高速缓存、指令高速缓存或被分区以便在不同分区中包含数据和指令的单个高速缓存。
[0071]在一个实施例中,图形管线8
当前第2页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1