PowerVR简史 (The Chronicles of PowerVR)
PowerVR简史
The Chronicles of PowerVR
文/Sobereva 写于约2007年8月
英国公司Videologic最初创立了PowerVR,PowerVR第一代分PCX1和PCX2两种,PCX1采用0.5微米,PCX2采用0.35微米,二者皆为PCI卡,仅限于3D功能,类似voodoo1/2,但不需要外置连接线而是通过PCI总线传输数据,显存64bit,8MB,核心同显存运行频率约60-66Mhz,单渲染管线单周期单纹理。PCX1采用了TBR技术,这是PowerVR系列芯片的技术中的一大重要特点,全称Tile Based Deferred Rendering。虽然PowerVR不是第一个采用这种渲染方式的公司,但却是将这种渲染方式成功应用于实际的市场产品上的公司。
众所周知传统早期3D显示芯片处理过程是先进行几何运算,然后读取、生成纹理等操作,然后通过深度测试决定像素是否可见,之后将可见像素进行必要的处理后输出到Framebuffer(帧缓存)显存上,之后由RAMDAC读取显存经过数模转换输出到显示器上。这个过程中有一大缺点就是无论像素是否可见,都必须经过渲染,这将浪费大量填充率和带宽,这被称为overdraw。
为了解决这一矛盾,PowerVR的TBR在几何运算后,将屏幕的像素分成了很多矩形小块,先经过每个小块的深度测试,测试小块是否可见决定小块中的像素是否应当被渲染,之后将需要被渲染的再交给渲染管线去处理,之后输出。这样一来,不可见的像素已经提前被剔去不用被渲染,很大程度上节省了带宽,减少了渲染管线的压力。
然而这一技术并非完美无缺,在经过小块的深度测试的过程中需要一定时间,尤其对于比较多的碎小密集的多边形的时候这更为明显,在PCX1/2当中这一过程需要CPU的处理,因此加重了对CPU能力的需求,PCX至少需求MMX 166才能发挥功效。此外一些涉及到Z-buffer技术的程序在TBR的模式下往往运行有问题。是延续传统渲染模式,加大带宽和填充率来弥补这一问题,或是采用TBR技术,二者孰优孰劣这对并无绝对定论。nVidia一直沿用传统模式,芯片设计以更多的渲染管线、更高的频率、更高规格的显存来解决问题。后来ATI也拿出了自己的解决办法---Hyper-Z。
PCX2的性能比PCX1有了一定提升,速度并不慢,可以在运行转为它们优化的Quake2的时候效果很好,硬件指标上也胜过Voodoo,达到每秒120万多边形和6000万像素的填充速度,在同时代产品中首屈一指。同时支持D3D、OpengGL,SGL,其中SGL是OpenGL的部分子集特为PowerVR进行了专有扩展。但是在实际使用中,由于驱动使兼容性较差,许多游戏运行有问题,并且对CPU要求较高(甚至不如更低平台上voodoo的速度),导致销售收了很大影响,但在Voodoo2之前的一段时间里市场占有率却达到第二。
PCX1芯片的产品中比较常见的是Apocalypse 3D和NEC PC 3DEngine,PCX2中比较有名的是Matrox在看到PCX2的优势后而决定生产的唯一没采用自己芯片的加速卡产品M3D。
后来在1998年的3月的CeBit展览Videologic拿出了ARC-1,但只是beta版,依然PCI接口,频率66Mhz,依然仅有3D功能,貌似基于PCX2,据说创新和帝盟有意去生产此芯片的零售版显卡。但是似乎后来没了音讯。
此后Videologic与Sega合作,为Sega的新游戏机设计图形芯片,实际就是PowerVR二代,所对应的DC版核心是PVR250DC,桌面版产品叫做Neon250,采用它的Dreamcast于1998年2月推出。但是因此极大地导致了Neon250的PC桌面产品的延期,比预期Neon250发布时间晚了一年有余,比DC推出时间则晚了一年半。这是因为NEC更看重长期的订单量大、市场稳固的游戏机图形芯片的制造,游戏机一般3-5年更新换代一次,而风云多变的PC市场平均6个月为一周期,从长远利益考虑,显然NEC更愿意为了上百万订单的游戏机市场投入更多精力。这款芯片同时也有对应于Sega的街机NAOMI(NewArcadeOperationMachineIdea)的版本,相应的图形核心名为CLX2,搭载16MB显存,250万多边形每秒,5亿像素每秒,这款街机板于1998年问世。而2000年问世的NAOMI2则搭配两颗CLX2,搭配VideoLogic的ELEN芯片做为几何变换和光影效果加速器,搭载32MB显存,画面效果相当不错。
1998年12月2日的COMDEX刚结束,NEC和Videologic宣布联合推出Neon250,开始提供样片,大家对这款产品十分有信心,对外公布多边形处理速度500万每秒,像素渲染速度2-5亿每秒。虽然比DC版性能有所下降,但是其公布的资料在当时来说性能仍然是很有竞争力的。NEC产品销售经理Charles Bellfield说“PowerVR 250令人难忘的性能表现超出了我们的预期”,同时还表达了Neon250的战略意义“PowerVR 250标志着NEC/VideoLogic针对游戏市场的跨平台战略终于初具规模了,该战略将使家用游戏机、个人电脑和街头游戏机上的游戏软件具有前所未有的可移植性,因而能够通过大量销售的硬件和软件极大的降低硬件系统成本和游戏软件价格”。一切看起来很美好,无论是性能还是战略前景。然而此后Neon250却迟迟没有真正上市,直到1999年秋季Neon250才终于上市,芯片仍然由NEC制造,也称PVR250,有AGP-2X和PCI接口两种,而AGP版比PCI的速度仅快很少一点。核心和显存都是125Mhz,采用SDRAM,64bit,32MB显存,渲染管线仍然是1条,每条管线单纹理单元。拥有250Mhz RAMDAC,支持OpenGL、SGL、DirectX6。仅由Videologic制造过此芯片的显卡。支持FSAA,不支持mipmap dithering,使用三线性过滤的时候不能像voodoo3/TNT2那样通过mipmap dithering那样来实现相同效果,所以只能用真正的三线性过滤很影响速度。因为发售时间极大地延迟,3dfx和nvidia的第四代产品已经上市了,加上它频率低,所以其性能在当时来说比较慢,介于TNT-TNT2的程度,价格也不便宜,所以销量很差,在欧洲市场相对于其它地方情况还算好一点,目前存世量颇小。虽然这款产品情况销售十分糟糕,但是采用这款芯片的DC游戏机的情况却挺不错。
值得一提的是从Neon250开始TBR渲染模式前期的深度测试功能不再需要CPU处理,而是集成于显示芯片内部,分担了CPU的负担,以后PowerVR的显示芯片设计亦是如此。
VideoLogic后来变为声、显卡制造,从VideoLogic分出来的Imagination Technologies成为VideoLogic、PowerVR、Ensigma、Metagence这四者的母公司,其中Ensigma、Metagence是面向DSP设计。
Imagination Technologies将PowerVR技术授权给了STMicroelectronics(意法半导体),称为PowerVR三代的Kyro诞生,由PowerVR设计ST最终成型并且制造,此系列驱动一直由PowerVR开发。ST有自己的芯片生产厂,曾经nVidia的NV1、Riva128/ZX的芯片有很大部分就是由ST生产的。ST产的NV1叫做STG2000用于Diamond Edge 2120/2200,市场上很多riva128/ZX产品芯片上都有ST的Logo。
Kyro采用0.25微米工艺,核心代号STG 4000X,0.12亿晶体管,有PCI和AGP-4X版本,工程版核心、显存皆115Mhz,最终出货版提升到125Mhz核心,128bit 32/64MB SDRAM显存,270Mhz RAMDAC,2*1管线架构即双管线单纹理单元。支持DX6、EMBM(环境凹凸贴图),不支持T&L,继续采用TBR模式。
Kyro的核心尺寸很小,同时发热量也小,晶体管数量也明显低于同期nVidia的产品,其目的在于降低生产成本,使晶圆能切割出更多的芯片,以性价比优势来和其它产品竞争。其性能基本介于TNT2 Ultra与GF256 SDR版之间,一大特点就是32bit色相对于16bit色性能下降很小,在32bit色下甚至可胜于GF256 SDR。由于Kyro采用了块状渲染架构,所以进行高分辨率渲染之后输出到低分辨率这样方式的全屏抗锯齿时可以避免大量高分辨率下不必要的像素渲染,所以打开全屏抗锯齿时速度降低也比较小。产品基本还算成功,采用其芯片的有Inno3D KYRO 2000,VideoLogic Vivid!, 撼迅Evil Kyro,Hercules 3D Prophet 4000。不过驱动仍然不算很完善,有时会出现不兼容、死机的情况。
仅仅过了几个月,Kyro2推出,核心代号STG 4500,0.18微米,0.15亿晶体管,核心、显存频率提升至175Mhz,仍然不支持T&L,依然是2*1管线,270Mhz RAMDAC,支持部分DX7功能,TBR模式。其内部接口为AGP-2X,但可通过硬改显卡刷新BIOS支持AGP-4X模式。采用它的芯片的有Hercules 3D Prophet 4500、VideoLogic Vivid!XS。由于ST没有0.18微米生产能力,所以芯片的生产交由TSMC(台积电)。
Kyro2在16bit色性能介于MX和GTS,32bit性能相对于16bit色依然下降很小,此时往往比GTS还好。整体来说比KYRO平均提升1/3以上,尤其在高分辨率在某些项目甚至提升可达将近1/2。在当时号称MX400杀手,在欧洲市场较受欢迎,甚至据说比MX400销售量还好一点,尤其Prophet 4500销量颇大。此卡还支持渲染通道内最大8层纹理,对于多层贴图的游戏中比较占优势,比如SeriousSam部分场景采用多达5层贴图。虽然和TNT2、Voodoo3一样都是只有两条纹理管线,每个周期只能处理两个层纹理,但是面对多纹理时,TNT2、Voodoo3这样传统架构需要拥有至少同等数量的管线才能在一个周期内处理完这样的多层纹理,若层数超过管线数量则只能占用更多周期处理完纹理之后再进行硬件混合,将会降低运行效率。而如果依靠增加纹理管线则会使芯片过于复杂。而对于Kyro2,会把纹理分成多进程处理,将已处理过的存入缓冲区中,然后再累加进行下一个纹理合成处理,这样就减少了以往多个管线合成所占用的资源,对于提高性能和降低带宽利用都是有好处的。只是在早期驱动只开放了4层,而发售时的驱动已经比较完善了,驱动控制面板功能丰富,甚至包括超频选项,运行比较稳定,而且大多数不兼容的现象都可以通过驱动程序里面的选项设置进行解决。
Kyro2存在的问题在于渲染管线明显太少,2*1管线相对于当时GF2的4*2管线来说填充率严重受到限制,并且SDR显存提供的显存带宽相对于已普遍使用的DDR在一定程度上限制了性能的发挥。
随后KyroII SE发布,核心代号STG 4800,相对于Kyro2变化的只有核心、显存频率提高到200Mhz,接口完整支持AGP-4X,其它部分保持不变。采用它的显卡有Hercules 3D Prophet 4800、VideoLogic Vivid!XS Elite。
此后PowerVR的第四代KyroIII开始研发,代号STG5000,但是一直没有结果。PowerVR此后转向掌上图形市场并且取得很大成功,它们的显示芯片PowerVR MBX授权给了Intel,0.13微米工艺诞生出来的就是众所周知的2700G,代号Marathon,和PXA27x系列处理其搭配用于PPC,比如DELL X50/51v,其中2700G3/G5分别集成384/704KB显存,可以在640*480下流畅运行Quake3。拥有83万/秒多边形及像素填充能力,支持全屏抗锯齿和硬件T&L,拥有MPEG1/2/4解码运算能力,功耗仅1mW左右,性能已经接近99年的台式机图形芯片。
它们的新一代掌上图形芯片PowerVR SGX510/520/530属于第五代PowerVR产品,采用统一架构,支持DX9,SM3.0,OpenGL 2.0,依然采用TBR渲染模式,支持H264解码,目前已经授权给NEC和Intel,作为Intel产品计划命名为2900G。
总体来说PowerVR是一家技术型公司,在当年显示芯片纷争的时候,曾有过多达150家以上公司研发显示芯片市场,然而如今却所剩寥寥无几,显示芯片更新周期短竞争激烈,不仅需要强大的研发能力,而且需要很好的市场运作。PowerVR规模和实力无法与nVIDIA、ATI相比,之所以能一直生存下来的原因是及时转向适合自己发展方向的领域即移动市场,走精、专的路线,很好地发挥了自己的技术优势,同时也避免了桌面图形市场的残酷竞争,我认为是非常明智的。
昔日兴盛的ATI消失了,在桌面图形领域真正屹立不倒的只有nVIDIA。希望PowerVR公司能一直走下去,带给大家更好的产品,推动科技的进步。希望PowerVR与Intel加强技术合作,不仅可以加快Intel集成图形芯片的研发来面对ATI与AMD的联手,同时亦可借规模雄厚的Intel之力有朝一日重回桌面图形市场和nVIDIA一争高下,再现辉煌,它们有技术,有能力,有机会,这相信会是无数PowerVR支持者的最大心愿!
References
[1]Mike Andrawes,Matthew Witheiler.AnandTech.2000:www.anandtech.com/showdoc.aspx?i=1253&p=5
[2]Kristof Beets,Marco van Zuylen.Beyond3D.1999:www.beyond3d.com/reviews/videologic/neon250/index1.php
[3]Dave "Wavey" Baumann.Beyond3D.2001:www.beyond3d.com/previews/videologic/vividxs
[4]EX3D.隐藏的危险-Videologic PowerVR3—KYRO.微型计算机.2000年14期:7-10