人类对视觉信号天生的敏感决定了对图形处理硬件性能的渴求成了现阶段硬件产业最炙手可热的话题。 与满足听觉的音频设备相比,现在的图形处理技术水平给图形处理还留有很大的发展空间, 这就决定了这个产业的竞争充满了变数,在技术开发和市场推广策略上稍有不慎就会别别人赶超。 为了应付激烈的行业竞争, 设计出更高性能的图形处理芯片已经成为各个厂商保持自身竞争力水平最重要的手段。 今天我就来大家做一次特殊的旅行,了解图形芯片设计研发的全过程,事实上现在绝大多数的芯片设计厂商都是依照这个程序来进行新品研发的。
芯片,英文为Chip;芯片组为Chipset。芯片一般是指集成电路的载体,也是集成电路经过设计、制造、封装、测试后的结果,通常是一个可以立即使用的独立的整体。“芯片”和“集成电路”这两个词经常混着使用,比如在大家平常讨论话题中,集成电路设计和芯片设计说的是一个意思,芯片行业、集成电路行业、IC行业往往也是一个意思。实际上,这两个词有联系,也有区别。集成电路实体往往要以芯片的形式存在,因为狭义的集成电路,是强调电路本身,比如简单到只有五个元件连接在一起形成的相移振荡器,当它还在图纸上呈现的时候,我们也可以叫它集成电路,当我们要拿这个小集成电路来应用的时候,那它必须以独立的一块实物,或者嵌入到更大的集成电路中,依托芯片来发挥他的作用;集成电路更着重电路的设计和布局布线,芯片更强调电路的集成、生产和封装。而广义的集成电路,当涉及到行业(区别于其他行业)时,也可以包含芯片相关的各种含义。
芯片也有它独特的地方,广义上,只要是使用微细加工手段制造出来的半导体片子,都可以叫做芯片,里面并不一定有电路。比如半导体光源芯片;比如机械芯片,如MEMS陀螺仪;或者生物芯片如DNA芯片。在通讯与信息技术中,当把范围局限到硅集成电路时,芯片和集成电路的交集就是在“硅晶片上的电路”上。芯片组,则是一系列相互关联的芯片组合,它们相互依赖,组合在一起能发挥更大的作用,比如计算机里面的处理器和南北桥芯片组,手机里面的射频、基带和电源管理芯片组。
确定研发方案和硬件语言描述
与任何一个靠生产产品谋求发展的企业一样,设计推出一款新的 GPU 的第一步理所当然的是市场的调研和产品的开发规划。在这段时间内,未来产品的相关定位,主要占领的市场范围等话题都被提到桌面上讨论,这些问题讨论的结果最终将决定产品最终的研发方案的大体内容:研发成本,研发周期以及开发过程中需要的资源等等。
接下来就要在研发方案确定的大方向的技术上研究从生产工艺,芯片代工等具体的细节问题进行商议。在成本的限制范围内决定诸如集成晶体管数量等物理参数;紧接着就要在符合生产工艺的芯片代工厂中做出选择了,决定这个的因素很多,当然第一点是能提供生产芯片要求的工艺水平,比如0.15微米,0.13微米,甚至90纳米,其次是代工厂的产品质量和价格因素。当然很多时候芯片在设计的时候就计划使用比较超前的工艺,保证选择的代工厂(即芯片生产的公司比如TSMC )在芯片设计完成开始投片的时候完成相关工艺改造是十分重要的,如果你在这一点上面做出错误的判断,那对公司造成的损失是巨大的,因为图形芯片行业是一个最求速度的产业,在生产工艺已经决定的情况下,如果要在回过头来修订工艺指标,那进行的工作又会持续几个月,其中的工作量不比重新一块芯片要少多少!
当这一切前期环节确定以后,就开始我们这篇文章最主要的部分了,显示芯片构架的设计。一个设计团队被组织起来定义GPU 支持的技术特征并且制定整个设计工作的日程表(比如团队1在三周内完成反锯齿单元的设计)。
在我们深入介绍芯片的设计过程之前,我们先来了解一下现在芯片制造公司一般的设计流程。 现在,芯片构架的设计一般是通过专门的硬件设计语言Hardware Description Languages (HDL)来完成,所谓硬件设计语言( HDL)顾名思义,是一种用来描述硬件工作过程的语言。现在被使用的比较多的有 Verilog 、 VHDL。 这些语言写成的代码能够用专门的合成器生成逻辑门电路的连线表和布局图,这些都是将来发给芯片代工厂的主要生产依据。对于硬件设计语言( HDL)一般的人都基本上不会接触到,我们在这里只给大家简略的介绍一下:在程序代码的形式上HDL和C也没有太大的不同,但他们的实际功能是完全的不同。比如下面这个Verilog语言中非常基本的一条语句:
always@(posedge clock) Q 《= D;
这相当于C里面的一条条件判断语句,意思就是在时钟有上升沿信号的时候,输出信号 ‘D’ 被储存在‘Q’。 就是通过诸如此类的语句描述了触发器电路组成的缓存和显存之间数据交换的基本方式。综合软件就是依靠这些代码描述出来的门电路的工作方式关系生成电路的。在芯片的设计阶段基本上都是通过工程师们通过Verilog语言编制HDL代码来设计芯片中的所有工作单元,也决定该芯片所能支持的所有技术特征。这个阶段一般要持续3到4个月(这取决于芯片工程的规模),是整个设计过程的基础。
在上述的工作完成后,就进入了产品设计的验证阶段,一般也有一两个月的时间。这个阶段的任务就是保证在芯片最后交付代工厂的设计方案没有缺陷的,就是我们平时所说的产品的“bug”。这一个阶段对于任何芯片设计公司来说都是举足轻重的一步,因为如果芯片设计在投片生产出来以后验证出并不能像设计的那样正常工作,那就不仅意味着继续投入更多的金钱修改设计,重新投片,还会在图形芯片产业最为重视的产品推出速度方面失去先机。整个验证工作分为好几个过程,基本功能测试验证芯片内的所有的门电路能正常工作,工作量模拟测试用来证实门电路组合能达到的性能。当然,这时候还没有真正物理意义上真正的芯片存在,这些所有的测试依旧是通过HDL 编成的程序模拟出来的。
接下来的验证工作开始进行分支的并行运作,一个团队负责芯片电路的静态时序分析,保证成品芯片能够达到设计的主频 ;另外一个主要由模拟电路工程师组成的团队进行关于储存电路,供电电路的分析修改。 和数字电路的修正工作相比,模拟工程师们的工作要辛苦的多,他们要进行大量的复数,微分方程计算和信号分析,即便是借助计算机和专门的软件也是一件很头疼的事情。同样,这时候的多有测试和验证工作都是在模拟的状态下进行的,最终,当上述所有的工作完成后,一份由综合软件生成的用来投片生产门电路级别的连线表和电路图就完成了。 但是,图形芯片设计者不会立即把这个方案交付厂家,因为它还要接受最后一个考验,那就是我们通常所说的FPGA (Field Programmable Gate Array)现场可编程门阵列来对设计进行的最终功能进行验证。 对于NV30那样集成一亿多个晶体管超级复杂芯片,在整个使用硬件设计语言( HDL)设计和模拟测试的过程中,要反复运行描述整个芯片的数十亿条的指令和进行真正“海量”的数据储存,因此对执行相关任务的的硬件有着近乎变态的考验。我们从下面NVIDIA实验室的配备可见一斑。
可编程门阵列FPGA模拟验证
现场可编程门阵列FPGA可以能完成任何数字器件的功能,上至高性能CPU下至简单的74电路,都可以用它来实现。FPGA其实是一个包含有大量门电路的逻辑元件,但是它的每一个门的定义可以有使用者来定义,如同一张白纸或是一堆积木,工程师可以通过传统的原理图输入法,或是硬件描述语言自由的设计一个数字系统。通过软件仿真,我们可以事先验证设计的正确性。在PCB完成以后,还可以利用FPGA的在线修改能力,随时修改设计而不必改动硬件电路。所以说使用FPGA来开发数字电路,可以大大缩短设计时间,更为重要的是大大减少了再出现成品芯片以后反复修改,投片资金和时间的消耗,一块几千美元的FPGA(这里指目前最大容量的FPGA)和花费数百万美元得到一块成品芯片相比,消耗是微不足道的。
在这个方面,ATI 和 NVIDIA 公司都使用了名为IKOS的FPGA验证系统。 IKOS内部是由多块插卡构成,每块插卡都是一个FPGA阵列,由许多块大规模FPGA组成。 因为到了R300和NV30世代,图形芯片已经成了最复杂的ASIC芯片了,无法用一两块FPGA就能完成验证工作,必须使用这样的专业FPGA验证设备。 当然, FPGA也不是完美无缺的,它固有的缺点就是运行速度还没有ASIC芯片这么快。 和现在动不动运行频率都在200-300MHz 的GPU相比,IKOS 的运行主频大概只有可怜的几十兆Hz左右。当然这些缺点在应用在产品的设计过程中没什么大不了的。它负责的工作就是最终验证芯片设计功能的实现,你可以让IKOS作为显示部分的系统正常运行,进行驱动程序的开发和验证,当然如果你硬要在这样的系统上运行游戏也不是不可能,不过能维持在每秒几帧就不错了。
投片生产样片和修正
经过前面一系列的验证工作,这道工序就可以告一段落了,几经修订的设计方案被送到了芯片代工厂开始投片生产。代工厂从拿到设计方案到第一批产品下线一般需要四周的时间,不过在这段时间里,设计人员仍旧马不停蹄,继续进行芯片的模拟测试和上市产品PCB(Printed Circuit Boards印刷电路板) 的设计,这就产生了一般官方钦定的“公板”。四周以后,第一批产品下线了,这就是我们一般称为的”A0”版本。 (编者:就是常说的“工程样片”)
一般情况下, A0版本的产量不会很多,它们的主要用途还是用来进行测试和修改,一些被送到开发小组继续测试和查错,另一部分被送到相关的卡板厂商处进行相关的测试和设计。由于现在是有了真正的芯片到手了,查错的手段当然也要和前面的模拟手段不同。FIB (Focused Ion Beam聚焦离子束) 系统在这里被引入查错过程。简单的说FIB系统相当于我们平时在医院看到的各种依靠波束能量进行外科类手术的仪器,它们能在不破坏芯片功能的前提下,对芯片进行门电路级别的修改——切断原有的或者是布置新的门连线,不管你需要修改的电路是在芯片金属布线的哪一层,也不会对芯片造成任何的物理损坏。
当然,除了FIB设备外,还要使用很多其他的测试手段,像上图这台机器同样是一台探测芯片缺陷的设备,工作原理又完全不同,实际上它是一台高性能原子级别电子显微镜。下面这张图显示的就是一块NVIDIA 芯片在45,000X放大倍数下的面目。 我们在下图中用红线框围绕的部分就是该芯片的缺陷。一般这种缺陷都是在生产过程中造成的, 由于某种其他物质的原子混进高纯度硅晶体中造成的。这台机器能够辨别出混入的这种原子的种类并且判断可能是什么原因这些原子会进入到芯片的这个部分,从而能采取措施避免这种情况的发生,改善成品率。
当“所有”的缺陷都得到了修正之后,最终的设计被交付到代工厂进行投片生产,这时的产量就不会像A0版本那么少了,但也不是最终的量产版本,在前面验证基本功无误的情况下,这次生产的芯片要进行各种各样的和正式上市产品相关的测试:产品兼容性,工作温度,外围供电电路的稳定性,信号完整性等等,直到产品能达到作为产品上市的程度,这时芯片生产方就可以投入量产了。
在最后的这些测试过程中,要测试大量的GPU,方便期间,显卡上面都做出了GPU的插座,一个个独立的GPU芯片只要插接在上面就能进行测试了。当然这些插座都是为特定的GPU芯片所设计的,只能来测试引脚定义相同的GPU。也许有朋友说,要是现在市面上的显卡也做成这种插座式的设计,并且能够不断进行升级该有多好,我们先不说每一款芯片针脚定义不同。假设这方面不是问题,那我们至少也要保证显存有能力向新核心提供数据的带宽同步增长才有意义。所以说,显卡上GPU插座的设计注定只能存在在实验室。
其实芯片设计过程中的插座原则也适用于其它产品,在主板 芯片组 的测试过程中也很常见,瞧瞧上面这块nForce 2主板,它的 北桥 芯片同样是安放在插座上的,当然这是题外话了。
芯片研发基本过程
一款芯片的设计开发,首先是根据产品应用的需求,设计应用系统,来初步确定应用对芯片功能和性能指标的要求,以及哪些功能可以集成,哪些功能只能外部实现,芯片工艺及工艺平台的选择,芯片管脚数量,封装形式等等,达到整个应用系统的成本低性能高,达到最优的性价比。
之后,进入系统开发和原型验证阶段。根据芯片的框架结构,采用分立元件设计电路板,数字系统一般用FPGA开发平台进行原型开发和测试验证(常见的FPGA有XILINX和ALTERA两个品牌,我公司用的是XILINX)。
模拟芯片的设计,验证手段主要是根据工艺厂提供的参数模型来仿真,最终能达到的性能指标只能通过真实的投片,进行验证设计;而数字系统设计一般可通过计算机仿真和FPGA系统,进行充分的设计验证,然后可以直接投片。因此数模混合的芯片产品开发,一般需要模拟模块先投片验证,性能指标测试通过后,然后再进行整体投片。
系统开发和原型验证通过后,就进入芯片版图的设计实现阶段,就是数字后端、与模拟版图拼接。版图设计过程中,要进行设计验证,包括DRC、LVS、ANT、后仿真等等。芯片版图通过各种仿真验证后就可以生成GDS文件,发给代工厂(或者制版厂),就是常说的tapeout了。
代工厂数据处理,拿到GDS数据后,需要再次进行DRC检查,然后数据处理,版层运算,填充测试图形等操作,之后发给制版厂开始制版。
制版完成后,光刻版交给代工厂就可以进行圆片加工了。
圆片加工完成后,送至中测厂进行中测,也叫晶圆测试(Chip Test,简称CP)。中测完成,圆片上打点标记失效的管芯,交给封装厂。
封装厂进行圆片减薄、贴膜、划片、粘片、打线、注塑、切金、烘干、镀锡等等操作后,封装完成。目前封装技术比较成熟,常见封装良率在99.5%以上,甚至99.9%以上。
芯片有些功能和性能在中测时无法检验的,需要进行成测(Final Test,简称FT)。 成测完成的芯片,即可入产品库,转入市场销售了。
芯片的研发过程,是一个多次循环迭代的过程。测试验证过程中发现问题,就需要返回修改设计,然后再次测试验证;后端版图实现过程中,如果时序、功耗、面积、后仿真等通不过,也可能要返回原始设计进行修改;芯片投片出来后,测试性能指标和可靠性达不到设计要求,需要分析定位问题,修改设计,再次投片验证,等等。
芯片研发环节多,投入大,周期长。任何一个细节考虑不到或者出错,都有可能导致投片失败;技术研发充满了不确定性,可能导致时间拖延及投片失败。因此,一个成熟产品的研发,可能需要多次的投片验证,导致周期很长。
现在芯片设计的规模比较大,系统复杂,为了减小投片风险,系统设计和测试验证的工作十分重要,一方面依靠强大的EDA工具,另一方面依靠经验和人员时间投入。
芯片转入量产后,如果成品率不稳定或低于预期,需要与代工厂分析原因,进行工艺参数调整,多次实验后,找到最稳定的工艺窗口,提高芯片的可靠性和良率,降低成本。
常见的芯片投片方式说明
芯片常用投片方式有工程批(FULLMASK)和多项目晶圆(Multi Project Wafer,简称MPW)两种方式。
随着制造工艺水平的提高,在生产线上制造芯片的费用不断上涨,一次0.6微米工艺的工程批生产费用就要20-30万元,而一次0.18微米工艺的工程批生产费用则需要60-120万元,如果采用高阶工艺,试验片成本更会呈几何倍数提高。如果设计中存在问题,那么制造出来的所有芯片将全部报废。
MPW就是将多个具有相同工艺的集成电路设计放在同一晶圆片上流片,流片后,每个设计品种可以得到几十片芯片样品,这一数量对于设计开发阶段的实验、测试已经足够。而实验费用就由所有参加MPW的项目按照芯片面积分摊,成本仅为工程批的10%-20%,极大地降低新产品开发成本和开发风险。MPW一般由工艺厂组织,每年定期有班次。
虽MPW降低了集成电路研发阶段的费用门槛,但也伴随着一些投片灵活度低、生产周期长、单位面积有限制等制约因素。具体的投片方式,需要根据设计成功率、资金预算、时间周期来具体选择。两种投片方式对比表:
研发一款新的显卡的过程真好比“万里长征”一般,讲的小编都有些疲惫了,更不要讲参与研发的那些工程师们所要付出辛劳和智慧了。而通过整个产品研发有条不紊,环环相扣的程序制定,我们也看到了西方工业在科学理论系统化和产业化方面的强大能量,这也是我们值得学习的啊。
评论
查看更多