三个野心家的车库创业:从游戏显卡开始的帝国梦
三个野心家的车库创业:从游戏显卡开始的帝国梦
1993年的加利福尼亚,阳光依旧灿烂,圣何塞的街道上弥漫着硅谷特有的创业气息。在一家名为Denny's的连锁餐厅里,三位年轻人围坐在一张靠窗的桌子旁,面前摆着几杯已经凉透的咖啡。他们热烈地讨论着一个在当时看来近乎疯狂的想法——为个人电脑开发专门的3D图形处理器。这家餐厅后来被誉为“GPU的诞生地”,因为就在这次看似平常的聚会中,全球最具影响力的芯片公司之一的雏形诞生了。
这三位年轻人分别是黄仁勋(Jensen Huang)、克里斯·马拉科夫斯基(Chris Malachowsky)和柯蒂斯·普里姆(Curtis Priem)。黄仁勋当时年仅30岁,出生于台湾的他早年随家人移民美国,在俄勒冈州立大学获得电气工程学位后,又在斯坦福大学攻读了硕士学位。他曾在超威半导体(AMD)和LSI Logic等公司工作,积累了丰富的芯片设计经验。马拉科夫斯基是黄仁勋在AMD的同事,同样是才华横溢的工程师。而普里姆则是另一位业界老将,曾在Silicon General Chips和Sun Microsystems担任图形工程师。三人因为共同的理想和对图形技术的热爱而走到了一起,他们敏锐地察觉到,一个改变世界的历史机遇正在向他们招手。
要理解这三位野心家为何选择在1993年创立英伟达(NVIDIA),我们必须将目光投向更广阔的时代背景。那时的全球个人电脑市场正在经历一场深刻的变革,而这场变革的种子早在十几年前就已经埋下。
让我们把时钟拨回到1981年。那一年,国际商业机器公司(IBM)推出了它的第一台个人电脑——IBM PC 5150。这台电脑采用了开放架构设计,将关键的处理器、内存和存储组件标准化,并向外公布了详细的技术规格。任何厂商都可以基于这些公开标准生产兼容的零部件和整机。这一战略决策在当时看似平常,却为后来的PC兼容机产业革命埋下了伏笔。
IBM PC采用英特尔8088处理器作为核心,这是一款16位微处理器,主频仅为4.77MHz。它配备了16KB基本内存(可扩展至256KB),以及5.25英寸软盘驱动器和可选的硬盘。在图形显示方面,IBM PC最初使用的是单色显示适配器(MDA),只能显示简单的绿色文字。随后,IBM又推出了彩色图形适配器(CGA),支持4种颜色的显示,分辨率为320×200。这是个人电脑图形显示的早期形态,虽然简陋,却开启了PC图形技术的序幕。
IBM的这一开放策略迅速催生了一个庞大的兼容机产业。康柏(Compaq)、戴尔(Dell)、惠普(HP)等公司纷纷效仿,推出与IBM PC兼容的个人电脑。到1980年代末,PC兼容机已经成为市场主流,IBM反而在自己的开放策略下逐渐失去了对市场的控制权。一个有趣的现象是,虽然这些电脑都叫“IBM PC兼容机”,但真正赚取巨额利润的往往是那些提供关键零部件的厂商——首当其冲的就是英特尔(Intel)和微软(Microsoft)。
说到英特尔,我们不得不提到它的x86处理器系列。1985年,英特尔推出了划时代的80386处理器,这是世界上第一款32位个人电脑处理器。386处理器首次支持多任务操作系统,能够运行完整的保护模式,这意味着个人电脑终于具备了运行复杂操作系统和高级应用的能力。1989年,英特尔又推出了80486处理器,通过在芯片上集成数学协处理器和8KB一级缓存,大幅提升了系统性能。1993年,就在英伟达成立的那一年,英特尔发布了划时代的Pentium(奔腾)处理器,内部代号为P54C,采用0.8微米工艺制造,集成了310万个晶体管,主频从60MHz起步。
Pentium处理器的发布标志着个人电脑正式迈入了高性能时代。但这里出现了一个看似矛盾的现象:处理器变得越来越快,但图形显示的质量却始终停滞不前。问题的根源在于,早期的PC图形系统主要依靠中央处理器来计算和渲染图像。处理器需要一边运行游戏逻辑和物理模拟,一边计算每一个像素应该如何显示。这种工作方式在当时2D游戏时代勉强可以应付,但面对即将到来的3D图形革命,就显得力不从心了。
让我们来深入了解一下为什么3D图形对计算能力的需求如此之大。在3D图形学中,现实世界中的物体被抽象为由顶点(vertices)构成的几何形状。每个顶点都有三维坐标(x、y、z),以及法线向量、颜色、纹理坐标等属性。一个简单的立方体有8个顶点,而一个复杂的人物模型可能有数万个顶点。3D渲染的第一步是将这些顶点从三维模型空间变换到屏幕空间,这涉及到一系列矩阵运算。
这个过程可以用数学公式来描述。假设我们有一个三维空间中的点P,其坐标为$(x, y, z)$,要将其变换到屏幕上的二维点S$(x_s, y_s)$,需要经过以下步骤:
首先是模型变换(Model Transformation),将物体从模型空间移动到世界空间:
$$P_{world} = M_{model} \times P$$
其中$M_{model}$是4×4的模型变换矩阵。然后是视图变换(View Transformation),将世界空间中的点变换到摄像机空间:
$$P_{view} = M_{view} \times P_{world}$$
接着是投影变换(Projection Transformation),将三维点投影到二维平面上:
$$P_{clip} = M_{projection} \times P_{view}$$
最后是视口变换(Viewport Transformation),将裁剪坐标转换为屏幕像素坐标:
$$x_s = \frac{clip_x}{clip_w} \times \frac{width}{2} + center_x$$ $$y_s = \frac{clip_y}{clip_w} \times \frac{height}{2} + center_y$$
对于一个拥有数十万顶点的复杂3D场景,每一帧都需要进行数十万甚至数百万次这样的矩阵运算。假设一个3D游戏以每秒30帧的速度运行,那么处理器每秒钟需要处理上亿次浮点运算。而当时的Pentium处理器虽然已经相当强大,但它还要同时处理游戏逻辑、物理模拟、人工智能、音频处理等任务,根本无法胜任如此繁重的图形计算工作。
与此同时,在操作系统领域,一场革命也在悄然发生。1992年4月6日,微软正式发布了Windows 3.1操作系统,这是第一个真正意义上的成功图形用户界面操作系统。在Windows 3.1之前,微软虽然推出了Windows 3.0,但这个系统存在诸多问题,用户接受度并不高。Windows 3.1引入了TrueType字体技术,使得屏幕上显示的文字质量大幅提升;它还增加了对象链接与嵌入(OLE)技术和多媒体扩展,使得Windows系统具备了处理多媒体内容的能力。
更重要的是,Windows 3.1采用了图形设备接口(GDI)的设计理念,将应用程序与硬件设备隔离开来。开发者只需要调用标准的图形API,而不需要关心底层硬件的具体实现。这意味着什么呢?意味着任何能够支持Windows GDI的图形硬件都可以运行所有为Windows开发的应用程序。同时,Windows还引入了与设备无关的位图(DIB)格式,使得图像处理变得更加标准化。
然而,Windows 3.1时代的图形显示仍然存在严重的瓶颈。在当时最流行的游戏《毁灭战士》(DOOM)中,游戏开发者发现Windows的图形子系统根本无法提供足够的性能。因此,像id Software这样的游戏公司选择了绕过Windows,直接访问底层硬件,通过DOS扩展程序来获得更高的图形渲染性能。这一现象揭示了一个巨大的市场空白:Windows需要一个能够充分发挥图形硬件潜力的新标准。
1993年,微软推出了Windows NT 3.1,这是第一个32位的Windows操作系统。同年晚些时候,Windows 3.11(也称为Windows for Workgroups 3.11)发布,加入了对即插即用(Plug and Play)功能和真彩色(True Color)显示的支持。这些技术进步为3D图形在个人电脑上的普及奠定了基础,但关键的硬件支持——专门用于3D图形处理的芯片——仍然是一片空白。
就在这样一个技术转折点上,游戏产业也开始展现出了惊人的增长潜力。1993年5月5日,id Software发布了《毁灭战士》,这款游戏迅速风靡全球,成为有史以来最成功的电子游戏之一。《毁灭战士》是一款真正的3D游戏(尽管其内部引擎实际上是2.5D),它开创了第一人称射击游戏(FPS)这个全新的游戏类型。游戏中的3D环境、动态光照、立体音效给玩家带来了前所未有的沉浸感。
《毁灭战士》的成功绝非偶然。在它之前,已经有多款游戏为3D时代的到来做好了铺垫。1992年,Westwood Studios推出了《沙丘魔堡2》(Dune II),这款游戏确立了即时战略游戏(RTS)的基本模式。1993年,约翰·卡马克(John Carmack)领导的id Software团队发布了《德军总部3D》(Wolfenstein 3D),这是第一款真正意义上在PC上实现伪3D效果的游戏引擎。虽然《德军总部3D》使用的技术被称为“射线投射”(raycasting),与我们今天所说的“真3D”还有一定差距,但它证明了PC游戏市场对高质量3D图形的强烈需求。
与此同时,在街机游戏领域,世嘉(Sega)于1992年推出了《VR战士》(Virtua Fighter),这款游戏使用了当时最先进的3D多边形渲染技术。1993年,世嘉又推出了《VR战士2》,以及后来成为经典的《索尼克赛车》(Sonic the Hedgehog)。这些街机游戏的3D效果让无数PC玩家羡慕不已,他们迫切希望在自己的电脑上也能体验到类似的视觉冲击。
游戏市场的数据更是令人振奋。据统计,1993年全球电子游戏市场规模约为150亿美元,其中个人电脑游戏的份额约为20亿美元。虽然这个数字看起来不算惊人,但增长率却是惊人的——PC游戏市场正以每年超过40%的速度增长。更重要的是,PC游戏的玩家群体正在从最初的电脑爱好者向更广泛的人群扩展。《毁灭战士》的横空出世证明了PC游戏可以拥有不亚于街机游戏的视觉体验,而这种体验的提供者正是3D图形技术。
正是在这样的大背景下,黄仁勋和他的伙伴们看到了一个前所未有的机遇。他们意识到,随着Windows操作系统的普及和3D游戏市场的兴起,个人电脑迫切需要一种专门用于图形处理的硬件。而这种硬件在当时的市场上几乎是一片空白。已有的图形芯片厂商,如S3、Tseng Labs、Matrox等,主要生产的是2D图形加速卡,它们能够加速Windows的图形渲染和简单的2D游戏,但完全无法处理3D图形的复杂计算。
三位创始人的战略眼光在于,他们没有选择与英特尔正面竞争处理器市场,也没有选择进入已经相对成熟的2D图形芯片市场,而是瞄准了一个全新的细分领域——3D图形处理器。这个选择后来被证明是英伟达成功的关键起点。历史证明,专注于一个足够大的细分市场,并成为这个市场的绝对领导者,往往比在成熟市场上与巨头正面竞争更容易取得成功。
有了好的想法,接下来就是筹集资金了。黄仁勋后来回忆说,他们最初的资金来源颇具戏剧性。当时他还是LSI Logic的工程师,在一次公司聚会上,他向同桌的两位同事——也就是后来的联合创始人马拉科夫斯基和普里姆——提出了创办一家图形芯片公司的想法。普里姆回忆说:“黄仁勋告诉我,他想在3D图形领域做些什么。我问他具体想做什么,他说还不知道。但他告诉我,如果他不能自己开公司,他就会去一家已经存在的3D公司工作。”这个坦诚的回答反而打动了普里姆。
三人决定各自出资4万美元,凑齐了12万美元的启动资金。这在硅谷的创业史上是一个相当微薄的起步。但对于芯片设计公司来说,这笔钱已经足够完成最初的原型设计——至少在1990年代初期是这样,因为那时芯片设计工具和流片成本还没有后来那么高昂。
有了初始资金,三人开始寻找风险投资。他们接触了多家投资机构,但过程并不顺利。当时的硅谷正处在上一轮PC热潮的尾声,市场对图形芯片公司的前景并不看好。许多投资者认为,3D图形只是昙花一现的时尚,不会成为个人电脑的标配。黄仁勋后来开玩笑说:“我们见了15位投资人,每一位都说图形芯片没有市场。”
最终,英伟达获得了来自红杉资本(Sequoia Capital)和Sutter Hill Ventures的投资。Sutter Hill Ventures的合伙人大卫·戈伊尔(David Goel)和韦斯利·张(Wesley Chan)成为英伟达的早期支持者。虽然具体的投资金额没有被公开披露,但据说这是一笔“足够让公司运转两到三年”的资金。红杉资本的合伙人阿洛克·帕代尔(Alok Pagdhar)后来回忆说,他投资英伟达的逻辑很简单:“我们正处于从字符界面向图形界面转变的时期。3D图形是这一转变的自然延伸。只要个人电脑还在进化,图形处理器的需求就会持续增长。”
1993年1月,英伟达正式成立,总部设在加州圣何塞。公司名称“NVIDIA”源自于拉丁语“invidia”,意为“嫉妒”。黄仁勋选择这个名字,是希望公司的产品能够“让竞争对手嫉妒”。这个命名逻辑体现了三位创始人的野心——他们从一开始就不满足于做一个小而美的公司,而是志在成为行业的引领者。
公司成立后的首要任务是确定产品方向。英伟达的创始团队面临着几个关键的技术决策:采用什么架构?支持什么接口标准?瞄准什么市场?每一个决策都将影响公司的未来走向。
首先是架构选择的问题。当时的图形芯片设计主要有两种流派:一种是基于现有通用处理器的定制设计,另一种是专门为图形处理从头设计的专用集成电路(ASIC)。前者的优势是技术风险低,开发周期短;后者的优势是性能可以做到极致,但风险更高、开发周期更长。
英伟达选择了后者,但以一种务实的方式。他们没有完全从头设计,而是基于已有的技术积累,设计了一款专门用于2D图形加速的芯片。这颗芯片被命名为NV1。NV1的内部架构采用了一种创新的设计方案,它集成了一个被称为“几何引擎”(Geometry Engine)的协处理器。这个协处理器专门用于加速2D图形的仿射变换(平移、旋转、缩放),虽然不是完整的3D处理能力,但它证明了英伟达将图形计算从CPU卸载到专用硬件上的思路是正确的。
在接口标准方面,英伟达做了一个大胆的决定:NV1采用了一种专有的接口,而不是当时流行的VESA或PCI总线标准。这是一个有争议的选择。支持者认为,专有接口可以获得更高的带宽,从而实现更好的性能;批评者则认为,这种做法会限制NV1的适用范围,因为消费者和OEM厂商更倾向于选择兼容性更好的产品。
后来的市场反应证明了批评者是对的。NV1在1995年发布时,市场反响平平。虽然它的2D性能相当不错,但它与Windows 95的兼容性存在问题,而且专有的接口需要主板厂商专门设计支持。最终,NV1的销量远低于预期,英伟达的第一款产品遭遇了商业上的挫折。
这次失败给英伟达上了宝贵的一课。黄仁勋后来总结说:“NV1教会我们,技术领先是不够的。你必须与行业标准保持一致,否则市场会惩罚你。”这个教训后来深刻地影响了英伟达的产品战略,也成为公司能够在后续竞争中脱颖而出的关键因素之一。
NV1的失败差点让初创的英伟达陷入困境。公司烧光了大部分风险投资,员工人数从最初的几十人减少到了不足20人。黄仁勋回忆说,那是英伟达最艰难的时期:“我们几乎到了破产的边缘。”
转机出现在1995年。那一年,微软发布了Windows 95操作系统,这是个人电脑历史上最具影响力的软件发布之一。Windows 95彻底改变了个人电脑的用户体验,它的图形化界面、即插即用功能、开始菜单和任务栏成为后来所有Windows版本的基础。Windows 95的成功推动了PC图形硬件的快速发展,市场对高性能图形加速器的需求急剧增长。
更重要的是,微软在Windows 95中引入了一个新的图形API——DirectX。DirectX是一套多媒体编程接口,它包括了图形(DirectDraw、Direct3D)、声音(DirectSound)、输入(DirectInput)等多个组件。Direct3D的推出意义重大——它为3D图形提供了标准化的编程接口,使得开发者可以编写一次代码,就能在任何支持Direct3D的硬件上运行。
Direct3D的出现标志着PC 3D图形行业标准开始形成。但早期的Direct3D实现存在许多问题,性能低下,API设计也不够完善。这为第三方图形芯片厂商提供了一个绝佳的机会:谁能提供更好的Direct3D硬件加速,谁就能赢得市场。
英伟达敏锐地察觉到了这个机会。1997年3月,公司推出了RIVA 128(也称为NV3),这是英伟达第一款真正意义上取得市场成功的图形处理器。RIVA是“Revolutionary Interactive Video and Animation”的缩写,意为“革命性的互动视频和动画”。
RIVA 128采用了0.35微米工艺制造,集成了约250万个晶体管。它的核心架构与NV1有了本质的区别。RIVA 128放弃了NV1的专有接口,转而采用当时最流行的PCI总线,这意味着任何一台PC都可以使用它。更重要的是,RIVA 128从一开始就针对Direct3D进行了深度优化,它提供了完整的Direct3D硬件加速能力。
在性能方面,RIVA 128的表现令人惊艳。它使用了128位的2D/3D图形引擎,可以同时处理双像素的32位颜色。对于当时主流的640×480和800×600分辨率,RIVA 128可以轻松实现30帧以上的3D游戏运行速度。而在分辨率更高的1600×1200下,它仍然能够提供可用的3D性能,这在当时的图形芯片中是相当罕见的。
RIVA 128的技术规格在当时处于什么水平呢?让我们来做一些具体的比较。当时市场上主要的竞争对手包括3dfx Interactive的Voodoo Graphics、S3的ViRGE、以及Matrox的MGA1064等。3dfx的Voodoo Graphics是公认的图形性能冠军,但它是一款纯3D加速卡,不支持2D图形和Windows加速,用户必须同时配备一张2D显卡和一张Voodoo卡。这种设计不仅增加了成本,也带来了兼容性问题。
相比之下,RIVA 128是一款真正的单芯片解决方案。它同时具备2D和3D加速能力,可以直接替代原有的2D显卡,安装简便,兼容性也好得多。更重要的是,RIVA 128的价格非常具有竞争力——它的零售价约为99美元,而Voodoo Graphics加上配套2D显卡的总价通常在200美元以上。
让我们来分析一下RIVA 128为何能够做到高性能和低成本的兼得。首先是工艺选择。RIVA 128使用的是0.35微米CMOS工艺,这是当时主流的工艺节点。相比于3dfx Voodoo使用的0.5微米工艺,更先进的工艺意味着可以在相同的芯片面积上集成更多的晶体管,同时降低功耗和发热。
其次是架构设计。RIVA 128的像素渲染流水线采用了简单的单纹理映射设计,虽然这限制了它在某些高级