计算机先驱——罗伯特·诺伊斯与戈登·摩尔

Robert Norton Noyce,1927年12月12日—1990年6月3日
1953年,获麻省理工学院(MIT)博士学位;1949年,获格林尼学院文学学士学位。
1968年创办英特尔公司、1957年创办仙童半导体公司。

Gordon Moore,1929年1月3日—?
加州大学伯克利分校的化学学士学位,并且在加州理工学院(Caltech)获得物理化学(physical chemistry)博士学位
美国科学家,企业家,英特尔公司创始人之一。


摩尔定律

发明硅芯片后,罗伯特·诺伊斯继续和同事戈登·摩尔(Gordon Moore)在飞兆半导体公司(Fairchild Semiconductor Corporation)研究集成电路技术,直到1968年,两人成立了一家新公司,即著名的英特尔。他们和全世界的业内先驱一道,共同掀起了电子学领域的技术革新。早期的集成电路还只有几百个、乃至上千个晶体管,但制造工艺的稳步改进使单个芯片上可以容纳的晶体管数目越来越多。(20世纪60年代早期,集成电路技术之所以迅猛发展,很大程度上是因为美国导弹计划和阿波罗太空计划的推动。)
集成电路的日益复杂使戈登·摩尔在1965年做出了一个预测。当时,他注意到,从1958年集成电路问世到1965年,单个芯片上的晶体管数量每年都翻了一倍。于是,他预测,这个趋势至少还会持续十年。后来,他修正了自己的观点,认为单个芯片上的晶体管数量每两年就会翻一倍。1970年,加州理工学院(California Institute of Technology简称 Caltech)教授卡弗·米德(Carver Mead)发明了专门的术语,将这个预测称为“摩尔定律”。
令人惊叹的是,这个“定律”似乎一直都很准。单个芯片上可容纳的晶体管数量在20世纪70年代中期为一万个,在1986年达到了一百万个,在2005年则为十亿个。尽管经常有人提出,摩尔定律很快就会失效,因为晶体管的尺寸越做越小,已经快要达到物理定律的极限,不过到目前为止,这项卓越的技术依然保持着强劲的发展势头。
计算机技术一向与电子学的前沿技术联系紧密,因此从20世纪60年代开始,硅芯片技术的迅猛发展也带动了计算机的更新换代。摩尔在英特尔的同事大卫·豪斯(David House)认为,从摩尔定律可以推断出,计算机的性能每隔18个月就会翻一倍。他说的基本没错——这些年来,计算机的性能大约每隔20个月就翻了一倍。摩尔后来开玩笑说:“18个 月是豪斯说的,不关我的事。”

正因为电子学正向着微型化的方向大幅迈进,我们的计算机每年都在变得更小巧、更便宜、更强大。早期的计算机都是庞然大物,很多情况下只能靠远程终端控制(一台大型计算机就需要很多个键盘和显示屏)。很快,小型计算机和个人计算机(台式机)相继问世。随着单一芯片上集成的元件继续增多,计算机的尺寸进一步缩水,由此产生了便携式个人计算机,也就是笔记本。后来又出现了更迷你的上网本、平板计算机和掌上设备,比如智能手机。计算机已变得小巧、廉价,足以在儿童玩具上实现复杂的功能,甚至在贺卡中嵌入音乐,而且由于它的更新换代速度太快,被淘汰的设备无需多想就可以直接丢弃。本已小巧玲 的计算机还会向着更小巧、更便宜的方向迈进,这种发展趋势还没有任何减缓的迹象。
虽然有了摩尔定律这一强大利器,科学家并没有安于现状,不再绞尽脑汁寻找提升计算速度的新方法。事实上,计算机领域的创新远未止步。尽管所有计算机都具备冯·诺依曼当年在报告中提到的逻辑元件,但它们远非千篇一律。为了提升运算速度或效率,各种高明的优化设计方案层出不穷。举个例子,自从计算机问世以来,工程师就一直面临着两难的问题:要想扩大存储量,就必须牺牲速度。在存储量小的情况下,速度可以很快,但存储量一旦扩大,速度往往就会受到拖累。我们在日常生活中也经历过类似的事情——假如你有一张简短的历史购物单,要想在上面寻找某样东西,是一件轻而易举的事情,不需要花什么时间;但是,如果你写了二十年的日记,想在这些日记当中寻找某一天购买过的某样商品,那么寻找起来就会困难很多,花的时间也会长很多。因此,回到计算机的问题上,要想兼顾速度和存储量,可以结合采用多种不同类型的存储器如今的计算机处理器通常有如下配置:少量超快内部存储器(称为寄存器);一个内部高速缓冲存储器(cache,简称高速缓存)(或许还会加装一个容量稍大、但速度稍慢的高速缓存);一个比高速缓存更慢,但却更大的外部存储器;一个比外部存储器还慢,但却大很多的硬盘;此外或许还会加装一个比硬盘还慢,但却更大的备份存储器(磁带或硬盘)。只要在时机把握得当的情况下,将数据和指令从慢速存储器转移到快速存储器,计算机就能迅速调取信息,从而运行得更快。(这就好比你在写日记的时候,将重要的信息提取出来,写在一张纸上,这样日后查找起来就会更方便。)
现代计算机处理器还有一种典型的优化设计方案,称为流水线(pipelining,又称管线)。其具体执行过程非常类似于工厂中的流水线。下面我给大家具体解释一下。工厂制造一辆车可能需要一整天,但是几乎每时每刻都有新车出厂。这是因为采用了流水线操作,生产汽车的流程被分为许多道工序,所有工序并行操作,不同的车辆同时进入不 同的工序。比方说,生产汽车的部分工序依次包括:焊接门框,安装车门,安装电动车窗。第一辆车进入焊接工序的同时,第二辆车进入装门工序(比第一辆车早一道工序),第三辆车进入装窗工序(比第二辆车早一道工序)。接着,所有汽车通过运输带自动进入下一道工序:第一辆车进入装门工序,第二辆车进入装窗工序,同时,另有一辆车接替第一辆车,进入焊接工序。计算机处理器的流水线技术也是一样的道理:将一条或一组指令的执行过程拆分为多个步骤,然后通过硬件处理单元 尽可能多地并行执行这些步骤。处理器的流水线段数越多,在理论上可以并行执行的指令数也就越多。
除了流水线作业以外,还有其他方法可以让计算机并行执行指令,比如采用向量处理器。向量处理器不仅可以执行向量计算(一次直接操作一维数组,而不仅仅是一个数据),还可以并行运行多个处理器。

在当今时代,就连个人计算机的处理器中,也包含人类有史以来最精巧繁复的设计作品。它们已经复杂到无以复加,以至于没有其他计算机的辅助,就不可能完成设计过程。无论是安排硅芯片上晶体管的布局架构,还是设计处理器的集成电路,这类低端的设计工作现在已经基本上没有人在做了。未来计算机的细节设计已经交给当今时代的计算机来承担。

并行化是计算机的未来

计算机技术的进步看似永无止境,而且,摩尔定律可能会让人想当然地以为,处理器势必会一直朝着更小巧、更便宜、更快捷的方向发展下去。但是,任何事物都不可能永远保持飞速发展的状态。事实上,我们在前进的道路上已经遇到了一个障碍。
计算机体系结构教授戴维·帕特森道出了其中的缘由:“过去十年到十五年的时间里,我们为了提升计算机的性能,不断地增加晶体管的数量。每一次增加晶体管的数量,都会使硅芯片的功耗和散热压力更大。每块芯片约100瓦的功耗已经是其散热能力的极限。我们大概在2003年达到了这个水平。要想继续利用摩尔定律提升计算机的性能,唯一的出路就是制造并行计算机。这就意味着我们必须改变编程模型, 这是六十年的计算发展史上最重大的变革。”
也就是说,问题并不在于摩尔定律。因为在未来的许多年里,硅芯片上的晶体管数目似乎还会越来越多。真正的问题在于,一个体积较大、而且精密复杂的处理器会在运转的过程中发热。笔记本发烫到致人三度烧伤、处理器发烫到融化电路板,这种夸张的事情没有人愿意看到。唯一的解决办法是,制造更小、更简单的处理器,使单个处理器的功耗减小,同时在单个芯片上集成多个处理器。计算机处理器的设计理 念已然开始发生变迁。因此,现在市面上的计算机的时钟频率(clock speed)(用于衡量计算机解读新指令的速度)可能并没有快多少,但是处理器中的核数却增加了不少。
不过这里面有一个问题:既然有了并行或多核处理器,就理应配备能够高效利用其性能的软件,但是编写这样的软件对于程序员来说,是一件极其困难的事情。如今,硬件条件已经齐备,但是软件设施明显跟不上前进的步伐,无法充分发挥计算机的全部运算能力。帕特森同意这一观点,他在最近发表的一篇文章中写道:“处理器的并行化和微型化是计算发展史上的一个里程碑。”

有许多计算机科学家试图尝试帕特森的方法,但是到目前为止,问题尚未解决,我们还不知道怎样编写并行软件,才能使之与新的计算机体系结构相适应。怎样才能写出并行文字处理器或并行电子邮件程序?这个问题着实令人头疼。不过,值得庆幸的是,有一些应用程序在本质上讲就已经是并行程序了。其中最明显的例子,或许莫过于我们在每一台现代计算机上都会看到的、神奇的计算机图形。计算机图形往往由成千上万个微小的多边形拼接而成,多边形的表面覆盖着照片质量的图像。打个比方,假如你想制作某件物品的三维模型,可以先用铁丝网将其形状构建出来,然后在表面覆盖图像,用以表现物品表面的图案。计算机图形也是一样的道理。无论是展示动画效果(比如游戏角色的动作、行驶在车道上的汽车),还是纯粹显示窗口和图标,计算机都在同时改变成千上万个多边形和图像的位置,而且每个多边形和图像的位置改变方式都非常相似。由此可见,计算机不费吹灰之力,就可以并行处理这些计算过程,提升运转速度。事实上,时至今日,图形的并行处理已经变得轻而易举,以至于大多数最先进的多核计算机结构都是图形处理单元(graphics processing units,简称GPU)。这些处理器已经有数百个内核,所有的内核都并行计算。因此,大多数游戏机、个人计算机、乃至小型便携式计算机都采用了并行GPU,以使图形流畅逼真。正因为GPU运算如此之快,内核如此之多,它已成为许多超级计算机的重要部件。
处理器的并行化趋势并不仅仅表现在单个芯片上。云计算是最近出现的一个新概念。它提供了一个动态虚拟的架构,这个架构或许会改变我们对计算机的认识。有了它,计算机用户就可以购买处理时间,使用异地多台计算机的软件和存储器,而不需要知道提供服务的计算机位于何处、其部件究竟如何运转。从概念上讲,云计算将计算机视为一种资源——这跟水电的性质是一样的,我们在日常生活中都会用水用电,但却不需要知道自来水厂和发电站在哪里。云计算可以让用户使用最新软件,执行高强度计算,享受虚拟主机服务,而不需要参与异地物理主机的升级和维护。在线购书网站亚马逊就是云计算领域的创新先驱。该公司意识到,其庞大的数据中心通常只有10%的容量得到了有效利用,因此,在2006年,该公司开始推出亚马逊网络服务(Amazon Web Services),出售数据中心的闲置容量。其他公司可以按需购买亚马逊提供的任何计算服务、软件和存储空间,而不需要维护或升级任何计算机。这一做法已变得越来越受欢迎,很多公司将来或许会从“云端”购买 企业所需的一切计算服务,而不是大动干戈地建立和维护自己的内部计算机系统。另一方面,用户或许也可以通过为数众多的云端计算机执行并行处理,而不需要担心任务怎样拆分——只要云端软件足够智能,可以代劳就好。
处理器的并行化趋势还体现在汽车上,这里的并行处理比较容易实现。一台现代汽车上可能会搭载一百多个微处理器,它们协同工作,共同确保发动机和传动装置的平稳运转,同时控制仪表板、车门锁、倒车雷达、车载收音机、GPS、车灯、后视镜、座椅调节器……事实上,大多数汽车都有自己的计算机网络,使车内不同的计算机能够高效配合。 在这一方面,读者朋友们或许已经有了亲身体验。当你踩下油门,发动机猛然加速时,车载收音机的音量也会自动变大。有些汽车甚至更加智能,可以将安全气囊加速计、停车灯、GPS导航系统、手机和车门锁进行互联,万一出了什么严重的事故,车子就会呼叫应急号码,将你的GPS坐标发送出去,同时解锁车门,打开停车灯。

超越冯·诺依曼

不过,在有些人看来,如此惊人的技术进步依然远远不够。曼切斯特大学教授史蒂夫·弗伯(Steve Furber)在职业生涯的开始,曾为艾康(Acorn)计算机公司设计ARM 32位微处理器。这个设计在世界各地受到了热捧,如今,ARM内核的出货量已超过200亿个,比英特尔芯片的销量还多(ARM处理器本身也更昂贵)。多年来,全世界90%以上的手机都至少搭载了一个ARM内核。不过,弗伯虽然是正统的计算机设计师出身,但在1998年却决定改变方向。他意识到,生物大脑似乎比计算机处理器的计算和存储部件要优越许多。“最后,我一咬牙,就转方向了,”弗伯表示,“管他呢,反正我感兴趣的是神经网络。”
如今,有越来越多的计算机设计师开始研究仿生计算机,弗伯就是其中的一员。他有一项雄心勃勃的设计,称为SpiNNaker。SpiNNaker是一个通用脉冲神经网络结构,其中包含成百上千个并行运转ARM微处理器。弗伯并不是唯一一个具备前沿思想的计算机科学家。如今,各种类型的仿生处理器正在紧锣密鼓的研制当中,它们的性能有的类似于大脑神经元,有的类似于免疫细胞,有的类似于细胞中的基因。有些研究人员甚至在尝试用新的材料代替硅,来制作处理信息的芯片。现在,还有诸多问题等着科学家来解答:我们能否在DNA链中存储信息,让它们跟基因一起重组?我们能否对细菌进行基因改造,从而发明新的计算机?我们能否发明量子计算机,让它根据匪夷所思的物理学量子效应来执行计算?
约克大学(University of York)教授安迪·泰瑞尔是一名计算机工程师,专攻仿生计算机。他认为,在未来的一段时间里,计算机体系结构依然会采用经典的冯·诺依曼设计。“但是,你可以想象,有‘一小撮’计算机工程师已经在设计新的体系结构了(希望他们的设计不仅新奇,而且令人振奋)。研制过程中或许采取了新的材料(或材料组合),比如 分子器件、忆阻器(memresister)、生物电材料、各种化学结构(液晶已经被人试过了)。或许还有些新的材料我们根本就不知道。”
泰瑞尔认为,自然界中一定隐藏着某些秘诀,能够启发我们改善计算机的性能。毕竟,自然界中存在许多复杂而又高度精巧的事物。“怎样才能在保持原有优势的基础上,将材料换成新的呢?这是一个难关。采用生物材料的系统似乎能搭载更多(也更复杂)的部件,其数量(和复杂度)可能会超乎人的想象。因此,我们面临的一大挑战或许是:怎样才能制造这样的系统?应该采用什么材料?怎样才能发挥它的性能?”

谁都是要吃饭的嘛。