流水线管理体系——Gigathread
除了在底层执行单元效率上的彻底革新外,G80图形核心还为整个流水线引入了一道更加严格科学且富有效率的管理体系——Gigathread技术。实际上,G80图形核心整个架构动力的源泉就来自于此。
□-改善流水线效率
当数据从游戏引擎传送至G80图形核心的流水线之后,会首先被送入一个叫做Thread Control Unit的地方,相当于G80图形核心整个流水线的仲裁和控制机构。这个类似于处理器的线程管理单元会将所有的着色单元的数据平行的拆成超过1000个平行的Threading(线程),并动态监测整个shader array流水线的工作状况。一旦它发现其下某个着色单元由于等待数据或工作完成而处于闲置状态,就会马上递交一个新的线程供其执行。这样让整个流水线保持极高的运行效率。

G80的Gigathread为整个标量渲染流水线维持超过1000个平行的线程(Thread)
Gigathread带来的另一个好处就是,能够减缓SIMD流水线中指令间的依存。在之前的G7X或R5XX架构中,由于SIMD流水线本身指令发射数有限,而它们能保有的threading数目又受到限制,流水线中的Alu算术指令和Tex纹理指令必须按照一定的比例配对,才能发挥出全部的运算能力。而G80上,由于Gigathread能硬件的将各个thread的stage(如Register file与各种控制的现况)保存下来,所以整个流水线对非规则指令的“忍耐”能力大大提高,即使是未经过优化排序的指令,也能被高效方便的执行。

G80的Gigathread多线程架构消除了指令限制
由于DX10将所有的Pixel和Vertex视做同等的Shader操作,因此这个管理器也负责进行高效的VS or PS的鉴别。它同时还会判定当前需要渲染场景的具体Vertex以及Pixel Shader的计算需求量,根据这个数据动态的调整所有通用着色单元中PS和VS的比例。
□-对抗数据延迟
Gigathread除了负责整个流水线的动态管理外,还担负着另一项重要使命,那就是对抗延迟。对于当今频率越来越高的GPU而言,如何对抗外部存储器延迟成为了一个关系到最终性能发挥的重要课题。一个以500MHz时钟频率运行的GPU,它的单个GPU时钟周期的长度在2ns以下。而我们可怜的外部存储器(显存),还在以200MHZ左右的速度工作。这就意味着,如果碰到一个Texture Fetch(纹理拾取指令,它需要GPU去读取显存里某个部位的数据),GPU从开始存取外部DRAM,到DRAM的第一个数据包实际送出之间,大概有十几到几十个ns的时间差,换算成GPU内部的时钟,就是几十乃至数百个周期的数据等待延迟,这种延迟会让整个流水线都陷入停顿,对于高速运行的GPU来说无疑是灾难性的。

完善的Threading管理体系可以隐藏存取显存动作所造成的延迟
在G80图形核心上,一旦Thread Control Unit发现某一个Shader Unit因为Texture Cachemiss(纹理缓存命中失败)而必须进入显存去寻找需要的纹理数据(Texture Fetch),它便会立刻将这个Shader Unit当前正在执行的Threading的各种控制现况冻结并保存在Register file(临时寄存器)里,然后立刻将另外的新Threading提交给这个Shader Unit执行,直到Texture Fetch完成为止,从而保证了整个流水线的效率不受DRAM延迟的影响。可以说,是Gigathread保证了整个流水线的运行效率,使它们得以免受延迟等因素的困扰。
□-维持SIMD正常运转
在之前的GPU架构中,除了运算能力之外,GPU本身对3D渲染流程的进行还有很多限制。比如,面对阴影作边缘柔和取样的时候,通过合理的使用if / else指令可以让Shader在不需要取样的像素直接跳过,节省出大量的Pixel shader资源,这就是动态分支(Flow Control)。
对于大多数DX9规格的GPU而言,如何保持SIMD流水线的平行度是个很令人头痛的问题。因为SIMD流水线单指令,多数据流的特点,位于同一个Quad内的4条Pixel Shader着色管线都共享同一套指令分配体系,并处于同一个控制电路的控制之下。所以,在执行动态分支的时候,这个Quad内的4条Pixel Shader着色管线在每个时钟周期只有跑同一种指令,才能让所有ALU都保持工作。如果遇到不同的指令介入,那么因为指令发射器和控制单元共享的问题,实际无法在单周期完成。

Batch Size对于分支性能的影响
那么,对于要尽量维持并行能力的SIMD体系来说,这种状况就毫无意义了。G80图形核心的Gigathread架构能够为流水线维持尽量多的平行线程,从而能将进行分支时的Batch Size(可以理解为分支工作的区域)做得很小(G80图形核心最小能够做到对单个连续的4*4象素块进行分支处理而保持峰值性能)。这样就能尽量减少在一个象素块里遇到两条不同指令的可能性, 从而避免SIMD流水线的并行度被破坏。
对于北桥散热器,要重点考察的是散热能力和人性化设计两方面,人性化设计包括外型、安装难易、兼容性、噪音水平等,综合散热能力、价格、人性化设计,作为此次评测的最终目的……
