1、图形芯片设计全过程 人类对视觉信号天生的敏感决定了对图形处理硬件性能的渴求成了现阶段硬件产业最 炙手可热的话题。与满足听觉的音频设备相比,现在的图形处理技术水平给图形处理还留有 很大的发展空间,要实现电影级别的实时三维渲染效果还有很长一段路要走。这就决定了这 个产业的竞争充满了变数,在技术开发和市场推广策略上稍有不慎就会别别人赶超。为了应 付激烈的行业竞争,图形处理芯片产业的各个厂商为了作为一种 ASIC(Application Specif ic Integrated Circuit)特定用途集成电路已经衍生出特定运作的策略,产品研发程序,以 保持自身在整个产业的竞争力水平。现将图形芯片设计
2、研发的全过程介绍给大家,以供大家 学习,事实上现在绝大多数的图形芯片设计厂商都是依照这个程序来进行新品研发的。 确定研发方案和硬件语言描述 与任何一个靠生产产品谋求发展的企业一样,设计推出一款新的 GPU 的第一步理所当 然的是市场的调研和产品的开发规划。在这段时间内,未来产品的相关定位,主要占领的市 场范围等话题都被提到桌面上讨论,这些问题讨论的结果最终将决定产品最终的研发方案的 大体内容:研发成本,研发周期以及开发过程中需要的资源等等。 接下来就要在研发方案确定的大方向的技术上研究从生产工艺, 芯片代工等具体的细节 问题进行商议。在成本的限制范围内决定诸如集成晶体管
3、数量等物理参数;紧接着就要在符 合生产工艺的芯片代工厂中做出选择了,决定这个的因素很多,当然第一点是能提供生产芯 片要求的工艺水平,比如 0.15 微米,0.13 微米,甚至 90 纳米,其次是代工厂的产品质量和 价格因素。当然很多时候芯片在设计的时候就计划使用比较超前的工艺,保证选择的代工厂 (即芯片生产的公司比如 TSMC )在芯片设计完成开始投片的时候完成相关工艺改造是十分 重要的,如果你在这一点上面做出错误的判断,那对公司造成的损失是巨大的,因为图形芯 片行业是一个最求速度的产业,Nv30 被芯片代工厂拖累,眼看着 ATI 在高端大量出货也是没 辙。因为在生产工艺已经决定的情况下,如果
4、要在回过头来修订成别的工艺指标,那进行的 工作又会持续几个月,其中的工作量不比重新一块芯片要少多少! 当这一切前期环节确定以 后,就开始我们这篇文章最主要的部分了,显示芯片构架的设计。一个设计团队被组织起来 定义 GPU 支持的技术特征并且制定整个设计工作的日程表(比如团队 1 在三周内完成反锯齿 单元的设计)。在我们深入介绍芯片的设计过程之前,我们先来了解一下现在芯片制造公司一 般的设计流程。 现在,芯片构架的设计一般是通过专门的硬件设计语言 Hardware Description Langua ges (HDL)来完成,所谓硬件设计语言( HDL)顾名思义,是一种用来描述硬件
5、工作过程的语 言。现在被使用的比较多的有 Verilog 、 VHDL。 这些语言写成的代码能够用专门的合成器 生成逻辑门电路的连线表和布局图,这些都是将来发给芯片代工厂的主要生产依据。对于硬 件设计语言( HDL)一般的人都基本上不会接触到,我们在这里只给大家简略的介绍一下: 在程序代码的形式上 HDL 和 C 也没有太大的不同,但他们的实际功能是完全的不同。比如下 面这个 Verilog 语言中非常基本的一条语句: always(posedge clock) Q = D; 这相当于 C 语言里面的一条条件判断语句,意思就是在时钟有上升沿信号的时候,输出
6、信号 'D' 被储存在'Q'。就是通过诸如此类的语句描述了触发器电路组成的缓存和显存之间 数据交换的基本方式。合成器就是依靠这些代码描述出来的门电路的工作方式关系生成电路 的。在芯片的设计阶段基本上都是通过工程师们通过 Verilog 语言编制 HDL 代码来设计芯片 中的所有工作单元,也决定该芯片所能支持的所有技术特征。这个阶段一般要持续 3 到 4 个 月(这取决于芯片工程的规模),是整个设计过程的基础。 在上述的工作完成后,就进入了产品设计的验证阶段,一般也有一两个月的时间。这个 阶段的任务就是保证在芯片最后交付代工厂的设计方案没有缺陷的,就是
7、我们平时所说的产 品的“bug”。这一个阶段对于任何芯片设计公司来说都是举足轻重的一步,因为如果芯片设 计在投片生产出来以后验证出并不能像设计的那样正常工作,那就不仅意味着继续投入更多 的金钱修改设计,重新投片,还会在图形芯片产业最为重视的产品推出速度方面失去先机。 整个验证工作分为好几个过程,基本功能测试验证芯片内的所有的门电路能正常工作,工作 量模拟测试用来证实门电路组合能达到的性能。当然,这时候还没有真正物理意义上真正的 芯片存在,这些所有的测试依旧是通过 HDL 编成的程序模拟出来的。 接下来的验证工作开始进行分支的并行运作,一个团队负责芯片电路的静态时序分析, 保证成品芯片能够达到设
8、计的主频;另外一个主要由模拟电路工程师组成的团队进行关于储 存电路,供电电路的分析修改。和数字电路的修正工作相比,模拟工程师们的工作要辛苦的 多,他们要进行大量的复数,微分方程计算和信号分析,即便是借助计算机和专门的软件也 是一件很头疼的事情。同样,这时候的多有测试和验证工作都是在模拟的状态下进行的,最 终,当上述所有的工作完成后,一份由合成器生成的用来投片生产门电路级别的连线表和电 路图就完成了。但是,图形芯片设计者不会立即把这个方案交付厂家,因为它还要接受最后 一个考验,那就是我们通常所说的 FPGA (Field Programmable Gate Array)现场可编程门阵 列模拟芯片
9、的最终功能正确性。 对于 NV30 那样集成一亿多个晶体管超级复杂芯片,在整个使用硬件设计语言( HDL) 设计和模拟测试的过程中,要反复运行描述整个芯片的数十亿条的指令和进行真正“海量” 的数据储存,因此对执行相关任务的的硬件有着近乎变态的考验。下面是 NVIDIA 实验室的配 备。 此主题相关图片如下: 此主题相关图片如下: 11 台 Sun 微系统公司提供的 SunFire 6800 架式服务器,身高 6 英尺,每一台都配备有 196G B 的内存,单价都在百万美元左右。 此主题相关图片如下: Racksaver 公司的 1U 单元组成的架式服务器,每一个 1U 单元可以配置
10、两块主板,24 块 Pentium 4 处理器 ,整套系统包括 2800 块 CPU 并行运行。 此主题相关图片如下: 这是 NVIDIA 的硬盘阵列机柜,每一台都放满了硬盘,给上面的那些服务器提供“深不见 底”储存容量。 可编程门阵列 FPGA 模拟 现场可编程门阵列 FPGA 可以能完成任何数字器件的功能,上至高性能 CPU 下至简单的 74 电路,都可以用它来实现。FPGA 其实是一个包含有大量门电路的逻辑元件,但是它的每一 个门的定义可以有使用者来定义,如同一张白纸或是一堆积木, 工程师可以通过传统的原理图 输入法,或是硬件描述语言自由的设计一个数字系统。通过软件仿真,我们可以事先验证
11、设 计的正确性。在 PCB 完成以后,还可以利用 FPGA 的在线修改能力,随时修改设计而不必改动 硬件电路。所以说使用 FPGA 来开发数字电路,可以大大缩短设计时间,更为重要的是大大减 少了再出现成品芯片以后反复修改,投片资金和时间的消耗,一块几千美元的 FPGA 和花费数 百万美元得到一块成品芯片相比,消耗是微不足道的.在这个方面, ATI 和 NVIDIA 都使用了 名为 IKOS 的 FPGA,这实际上是属于超大型的 FPGA 产品了,因为到了 R300 和 NV30 世代,图形 芯片已经成了最复杂的 ASIC 芯片了. 当然, FPGA也不是完美无缺的,它固有的缺点就是
12、运行速度很低. 和现在动不动运行频 率都在 200-300MHz 的 GPU 相比,IKOS 的运行主频大概只有可怜的 1KHz 左右.当然这些缺点 在应用在产品的设计过程中没什么大不了的.它负责的工作就是最终验证芯片设计功能的实 现,你可以让 IKOS 作为显示部分的系统正常运行,进行驱动程序的开发和验证,当然如果你硬 要在这样的系统上运行游戏也不是不可能,不过能维持在零点几帧就不错了. 此主题相关图片如下: 此主题相关图片如下: 此主题相关图片如下: 这就是 NVIDIA IKOS 实验室中用 IKOS 模拟 NV30 的情形,是不是很不可思议,很难把这 样一个红色的大盒子和显
13、卡芯片联系在一起。 试验人员正在这样的 NV30 下运行 WINDOWS2000。 投片生产样片和修正 经过前面一系列的验证工作,这道工序就可以告一段落了,几经修订的设计方案被送到 了芯片代工厂开始投片生产.代工厂从拿到设计方案到第一批产品下线一般需要四周的时间, 不过在这段时间里,设计人员仍旧马不停蹄,继续进行芯片的模拟测试和上市产品PCBs(Print ed Circuit Boards 印刷电路板) 的设计,这就产生了一般官方钦定的“公板”.四周以后,第 一批产品下线了,这就是我们一般称为的”A0”版本。 一般情况下, A0 版本的产量不会很多,它们的主要用途还是用来进行测试
14、和修改,一 些被送到开发小组继续测试和查错,另一部分被送到相关的卡板厂商处进行相关的测试和设 计。由于现在是有了真正的芯片到手了,查错的手段当然也要和前面的模拟手段不同。FIB (Focused Ion Beam 聚焦离子束) 系统在这里被引入查错过程。简单的说 FIB 系统相当于我 们平时在医院看到的各种依靠波束能量进行外科类手术的仪器,它们能在不破坏芯片功能的 前提下,对芯片进行门电路级别的修改切断原有的或者是布置新的门连线,不管你需要 修改的电路是在芯片金属布线的哪一层,也不会对芯片造成任何的物理损坏。 此主题相关图片如下: 这就是 nvidia 使用的一台 FIB 设备 此
15、主题相关图片如下: 当然,除了 FIB 设备外,还要使用很多其他的测试手段,像上图这台机器同样是一台探测芯 片缺陷的设备,工作原理又完全不同,实际上它是一台高性能原子级别电子显微镜。下面这 张图显示的就是一块 NVIDIA 芯片在 45,000X 放大倍数下的面目。我们在图中用红线框围绕 的部分就是该芯片的缺陷。一般这种缺陷都是在生产过程中造成的, 由于某种其他物质的原 子混进高纯度硅晶体中造成的。这台机器能够辨别出混入的这种原子的种类并且判断可能是 什么原因这些原子会进入到芯片的这个部分,从而能采取措施避免这种情况的发生,改善成 品率。 此主题相关图片如下: 当“所有”的缺陷都得到了修正之后
16、,最终的设计被交付到代工厂进行投片生产,这时的产 量就不会像 A0 版本那么少了,但也不是最终的量产版本,在前面验证基本功无误的情况下, 这次生产的芯片要进行各种各样的和正式上市产品相关的测试:产品兼容性,工作温度,外 围供电电路的稳定性,信号完整性等等,直到产品能达到作为产品上市的程度,这时芯片生 产方就可以投入量产了。 此主题相关图片如下: 在最后的这些测试过程中,要测试大量的 GPU,方便期间,显卡上面都做出了 GPU 的插座, 一个个独立的 GPU 芯片只要插接在上面就能进行测试了。当然这些插座都是为特定的 GPU 芯 片所设计的,只能来测试引脚定义相同的 GPU。也许有朋友说,要是现在市面上的显卡也做 成这种插座式的设计,并且能够不断进行升级该有多好,我们先不说每一款芯片针脚定义不 同。假设这方面不是问题,那我们至少也要保证显存有能力向新核心提供数据的带宽同步增 长才有意义。所以说,显卡上 GPU 插座的设计注定只能存在在实验室。 此主题相关图片如下: 其实芯片设计过程中的插座原则也适用于其它产品,在主板芯片组的测试过程中也很常见, 瞧瞧上面这块 nForce 2 主板,它的北桥芯片同样是安放在插座上的。 此主题相关图片如下: 到了这个阶段就会有很多芯片用来进行各种测试,上图就是等待测试一堆 Quadro4