Cypress架构概览 粗略一看,Cypress的架构同RV770的架构非常相似,倍增了硬件处理单元的规模,增添了许多新的特性以支持DX11,下面就让我们深入到Cypress架构的细节中去,好好品评一番. 图形引擎(Graphics Engine) 当把Cypress的图形引擎和RV770的相对比时,我们首先注意到有两个光栅器(Rasterizer),联想到之前的双核心传闻,双光栅器是一个微妙的暗示.Chiphell认为如果Cypress有两个图形核心,那么这两个图形核心一定是以SFR的方式进行任务分配.因此两个光栅器,每一个都对几何数据进行光栅化,将生成的特定的像素数据分别送到各自的图形核心中去,这个猜想是合理的.但是,这只是我们的猜测,AMD官方并未做任何Cypress采用双图形核心架构的表态. 图形引擎的另一个重大变化是支持DX11的镶嵌(Tessellation)功能.在过去的十几年中,GPU一直快速演进,更多的可编程单元,统一的着色器架构,更多的算术运算单元,但这些改变多集中在像素处理阶段,现在的GPU的像素处理能力有了长足的进步,但是在几何处理阶段,仍然能力有限.当前实时渲染的画面,相当多的瑕疵都是由于几何细节不够造成的.从DX10开始,DirectX的流水线引入了新的着色器(shader)类型:几何着色器(Geometry Shader),试图提高几何处理能力.在DX11中,微软正式引入了镶嵌功能. DX11渲染流水线 图形引擎中的镶嵌器(Tessellator)是一个固定功能单元,RV770甚至R600就已经包含了镶嵌器单元,但是老的镶嵌器单元并不能完整支持DX11的镶嵌(Tessellation)功能.Cypress支持两类全新的着色器:壳着色器(Hull Shader)和域着色器(Domain Shader).可编程单元同图形引擎中的镶嵌器相配合,能完整支持DX11的镶嵌功能. HS处理流程 HS首先读入曲面控制点,对控制点进行基本的变换,然后对曲面的每一边计算镶嵌因子(Tessellation Factor).请注意,在DX11之前,三维图形流水线只能处理三角形图元(点、线通常被当做特殊的三角形).通过Tessellation,现在硬件能直接处理诸如贝塞尔曲面等高阶曲面或曲线. 镶嵌器处理流程 镶嵌器(TS)首先读入壳着色器(HS)输出的镶嵌因子和镶嵌模式描述符,以此决定镶嵌模式和镶嵌程度.然后对每一个曲面进行镶嵌处理,生成几何拓扑信息(即点与点之间的连接关系到底是线还是三角形),同时输出UV或者UVW域点. 域着色器 域着色器(DS)读入控制点和镶嵌因子信息,对每一个镶嵌器产生的点进行处理,将点从UV空间变换到顶点空间或者切空间,并输出给后续的处理单元. 镶嵌(Tessellation)使得GPU能够以粗糙的模型为基础生成精细的模型,提高渲染效果.由于只需要将粗糙模型数据传送给GPU,也缓解了显存容量和显存带宽的使用压力.同时,DX11的Tessellation也非常的灵活.比如低端硬件同高端硬件相比,由于硬件规格的限制,能够生成相对粗糙的模型,从而保证帧率的稳定. 相较于RV770,图形引擎中另一个显著的变化是插值单元(Interpolator)的消失.在Cypress中,顶点数据的插值不再由固定功能的插值单元完成,而是送到流处理器中完成.由于插值实质是通过流处理器执行算术运算指令完成,因此程序员能够更加精确灵活的控制整个插值过程,从而灵活高效的实现很多新的算法,改善画质. 着色器核心(Shader Core) Cypress的流核心(Stream Cores)和RV770相比并没有本质的改变,仍然是基于超长指令字架构(VLIW).流核心从指令缓存(Instruction Cache)中读入指令,从通用寄存器(GPR)中读入数据,然后进行运算.不同类型的指令由流核心中的不同单元执行.普通的算术指令由4个流处理器执行(图中"瘦"方框所示).这4个流处理器不但可以单独运行4条指令,也可以4个协作或2个协作等多种方式组合,可以实现32-bit 浮点乘加运算(单独运作)、64bit 浮点乘或加运算(两两协作)、64bit 浮点乘加运算(四个协作)、24bit 整形乘或加运算(单独运作).超越函数(sin,cos,log等等)由特殊功能流处理器执行(图中"胖"方框所示).分支跳转等流控制指令则由分支处理单元(图中黄色方框所示)执行.编译器负责指令的调度,试图寻找能并行执行的5条指令,然后将他们打包,co-issue到一个流核心中执行.但是由于指令的依赖关系,最坏情况下,只有1条指令能被一个流核心执行.根据AMD的论文,通常情况下,大约3-4条指令能被co-issue到一个流核心中去,效率还是相当高的. Cypress中的整个流处理器布局同RV770有所不同,由于整个SIMD数量倍增,而SIMD的宽度不变,仍然为16个流核心,因此仍然像RV770一样至上而下的排列方式已不再可行.Cypress的SIMD被分成了两组,左右排列.每一组包含10个SIMD,每一个流核心包含5个流处理器,一共是20*16*5=1600个流处理器.当芯片运行在850MHZ的频率上时,能提供2.72 TFLOPS的峰值浮点计算能力. 很自然,Cypress的纹理单元数目以及Texture Cache大小也提高到了RV770的两倍.同时支持新的纹理压缩格式.纹理单元方面最大的改进在于AMD重新设计了各向异性过滤(Anisotropic Filtering)算法.新的算法完全实现了角度无关化,即纹理的层次细节不会随纹理和相机间角度的变化而变化.AMD声称新的算法在确保画质的同时不会造成额外的性能损失. 为了满足DX11的要求,AMD增加了本地数据共享缓存的大小(Local Data Share,LDS),容量达到了32KB,是RV770的两倍.LDS用于同一个线程组(Thread Group)中的线程共享数据.从下图中,我们可以看到,每一个SIMD连接一个LDS,不同的SIMD是不能共享LDS的,因此所有属于同一个线程组的线程都会被线程调度器发送到同一个SIMD上执行.如果不同的SIMD上的线程要共享数据,需要用到全局数据共享缓存(Global Data Share,GDS).在Cypress中,GDS的容量也倍增了,达到64KB.到目前为止,我们对GDS的了解仍然有限,与LDS不同,并没有指令能显式的操作GDS.据Beyond3D的消息,在未来的OpenCL扩展中会提供对GDS的访问,目前GDS只对编译器可见. 流核心能够将运算结果直接通过Memory Export Buffer写入到显存中.在Cypress中,Memory Export Buffer的大小也被提高到了256 Bytes,其规模同样两倍于RV770. 总的来说,整个着色器的核心并没有根本性的改变,仍然延续了经典的VLIW架构,大幅提升了处理单元的规模(很多地方规模直接倍增),并针对通用计算增添了新的指令,新的全局同步方式,优化了性能. 显存控制器 Cypress的显存控制器并未采用R600所使用的ring-bus,而是延续了RV770的方式,并优化了面积,增添了新的功能. Cypress采用了更高频率的GDDR5显存,为了保证数据传输的可靠性,Cypress的显存控制器使用了错误检测代码(Error Detecting Code)技术.在实际中,该技术是通过在显存数据传输中增加循环冗余检验(Cyclic Redundant Checking,CRC)实现的.CRC使用一个多项式函数将待传输的数据进行分段,并生成一组效验码(CRC digits),效验码和数据一同传输.当数据被传输后,显存控制器对经过传输的数据按照相同的机制重新生成效验码,并同传输前的效验码相比较,如果两个效验码是相同的则说明数据传输正确,反之则说明传输过程中有错误发生.为了尽可能的检测到所有错误,需要非常仔细的设计用于生成效验码的多项式函数.我们并不清楚AMD采用了何种多项式函数,但是考虑到Cypress的显存位宽是256 bits,如果要检测到尽可能多的错误.这个多项式函数应当是非常高阶的. 另一个重大的改变是每一个显存控制器连接了两个渲染后端(Render Backend),在Cypress中,渲染后端的数目同样是RV770的两倍,这样正好同SIMD数目的倍增相匹配.显存控制器可能以轮询的方式(Round-Robin)来处理两个渲染后端读写显存的请求.4个显存控制器,连同其他模块(UVD2,PCIE等等)都被连接到一个Hub上,AMD并未披露采用了何种仲裁机制来处理各个模块的读写请求.我们猜测其基本原理应当是对不同模块赋予不同的优先级,根据特定的调度算法来进行仲裁,尽可能的优化显存位宽的使用率. 从我们上述的架构分析来看,Cypress的架构仍然基于R600的架构,它并不是一个完全革新的架构,而是对老架构的优化和增强,这个架构所体现出的性能是令人满意的,这也证明了R600架构优异的可扩展性. 对于Cypress,我们还有很多问题不能回答,比如是否采用了两个图形核心,为什么AMD决定设计一颗面积为334mm2的芯片,这与AMD在RV770中贯彻的小核心策略并不完全相符.我们会日后继续探讨这些让人着迷的问题. |
Archiver|手机版|小黑屋|Chiphell ( 沪ICP备12027953号-5 )310112100042806
GMT+8, 2024-11-25 07:29 , Processed in 0.007619 second(s), 7 queries , Gzip On, Redis On.
Powered by Discuz! X3.5 Licensed
© 2007-2024 Chiphell.com All rights reserved.