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