作者简介
甄建勇,高级架构师(某国际大厂),十年以上半导体从业经验。主要研究领域:CPU/GPU/NPU架构与微架构设计。感兴趣领域:经济学、心理学、哲学。
“以铜为鉴,可以正衣冠;以人为鉴,可以明得失;以史为鉴,可以知兴替。”
----唐太宗,《旧唐书·魏徵传》
从事一个领域的研究,首先要了解的就是这个领域的发展历史,“人民群众是历史的创造者”,所以在介绍计算机体系结构的历史的同时,还要重视‘人’的重要作用。
关于太极和八卦,神书《易经》中有如下描述:“易有太极,是生两仪,两仪生四象,四象生八卦。”关于太极,孔颖达疏:“太极谓天地未分之前,元气混而为一,即是太初、太一也。”从中可以看出,太极就是2的0次方,两仪就是2的1次方,四象就是2的2次方,八卦就是2的3次方。太极到八卦的演变如图8所示。
图8 太极到八卦的演变
仔细观察上图,太极分为阴阳两部分,如果把‘阳’,也就是长实线当做数字‘1’,把‘阴’,也就是两条短线当做数字‘0’,我们就会发现,八卦的顺序,从‘坤’开始,到‘乾’结束,正好是,坤‘000’,艮‘001’,坎‘010’,巽‘011’,震‘100’,离‘101’,兑‘110’,乾‘111’。
同样,如果也按这个顺序,将8个数字对称的放在一个圆上,就是一个八卦图了。如图1-8就是伏羲八卦。
图9 伏羲八卦方位
前面说过,在十进制计算机的发展历史中是‘三十年河东,三十年河西’,二进制计算机也不例外。我们中华民族很早就开始使用二进制,但是属于‘河西’的舞台还是到来了。
上面提到第一台电子管计算机ENIAC,这台计算机出现时采用的还是十进制,让研制工作十分幸运的是,当时任弹道研究所顾问、正在参加美国第一颗原子弹研制工作的数学家冯·诺依曼带着原子弹研制(1944年)过程中遇到的大量计算问题,在研制过程中期加入了研制小组。原本的ENIAC存在两个问题,没有存储器且用布线接板进行控制。如果要使用,甚至要搭接几天,计算速度也就被这一工作抵消了。1945年,冯·诺依曼和他的研制小组在共同讨论的基础上,发表了一个全新的“存储程序通用电子计算机方案”,就是著名的EDVAC(ElectronicDiscrete Variable Automatic CompUter),在此过程中他对计算机的许多关键性问题的解决作出了重要贡献,从而保证了现代计算机的顺利问世。
EDVAC,(离散变量自动电子计算机)是一台美国早期电子计算机。与它的前任ENIAC不同,EDVAC采用二进制,而且是一台冯·诺伊曼结构的计算机。
ENIAC和EDVAC的建造者均为宾夕法尼亚大学的电气工程师约翰·莫奇利和普雷斯波·艾克特。1944年8月,EDVAC的建造计划就被提出;在ENIAC充分运行之前,其设计工作就已经开始。和ENIAC一样,EDVAC也是为美国陆军阿伯丁试验场的弹道研究实验室研制。
后来,冯·诺伊曼以技术顾问身份加入,总结和详细说明了EDVAC的逻辑设计,1945年6月发表了一份长达101页的报告,这就是著名的关于EDVAC的报告草案,报告提出的体系结构一直延续至今,即冯·诺伊曼结构。关于101页报告的内容,请参考后面‘参考文献’的相关部分。
图10 101页报告
EDVAC的初步预算为十多万美元,但最终的成本大约超过估计的4倍,约五十万美元。EDVAC使用了大约6000个真空管和12000个二极管,占地45.5平方米,重达7850千克,消耗电力56千瓦。EDVAC是二进制串行计算机,具有加减乘和软件除的功能。一条加法指令约864微秒,乘法指令2900微秒(或2.9毫秒)。 使用延迟线存储器,具有1000个44位(bit)的字。
物理上包括:
一个磁带记录仪
一个连接示波器的控制单元
一个分发单元,用于从控制器和内存接受指令,并分发到其他单元
一个运算单元
一个定时器
使用汞延迟线的存储器单元
EDVAC于1949年8月交付给弹道研究实验室。在发现和解决许多问题之后,直到1951年EDVAC才开始运行,而且局限于基本功能。延迟的原因是因为莫奇利和艾克特从宾夕法尼亚大学离职,开始组建莫奇利-艾克特电子计算机公司并带走了大部分高级工程师,由此与宾夕法尼亚大学产生了专利纠纷。到1960年,EDVAC每天运行超过20小时,平均8小时无差错时间。EDVAC的硬件不断升级,1953年添加穿孔卡片输入输出;1954年添加额外的磁鼓内存;1958年添加浮点运算单元。直到1961年,EDVAC才被BRLESC所取代;在其运行周期里,EDVAC被证明是一台可靠的计算机。
人的欲望是一个无底洞,自从电子管发明之后,人们发现电子管有很多缺点,比如电子管的重量和体积都很大,功耗也很高。人们想克服这些缺点,于是在电子管发明后不久的1947年,重量更轻,体积更小,功耗更低的晶体管被发明了。如图11所示。
图11 点接触晶体管
晶体管,本名半导体三极管。它是内部含有两个PN结,外部通常为三个引出电极的半导体器件,对电信号有放大和开关等作用。晶体管经历了点接触晶体管、结型晶体管到新型晶体管的发展历程。
1947年,美国贝尔实验室的物理学家肖克利(William Shockley,1910-1989)、巴丁(John Bardeen,1908-1991)和布拉顿(Walter Houser Brattain,1902-1987)研制成功世界上第一只晶体管。这是利用两个靠得很近的触须接点制造而成的“点接触型晶体管”,能把音频信号放大100倍。点接触型晶体管存在制造工艺复杂、噪声大、适用范围窄等缺点。为此,肖克利提出用“整流结”来代替金属半导体接点的设想。1950年,基于这一设想的锗结型晶体管问世。此后,各种新型晶体管不断被发明出来,如合金晶体管、漂移晶体管、台面晶体管,平面晶体管、外延晶体管、金属氧化物半导体晶体管、功率晶体管等。
说到晶体管的发明过程,这里还要多说几句。其实世界上第一个晶体管是1947年由肖克利和他的两助手布拉顿、巴丁在贝尔实验室工作时发明的,为此,肖克利三人于1956年获得诺贝尔物理学奖。用晶体管代替电子管制造电脑,在电脑史上是一次突破性技术飞跃。
1945年二战结束后,贝尔实验室迅速批准固体物理学研究项目上马,凯利作为决策者在课题任务书上签署了大名。由肖克利领衔,布拉顿、巴丁等人组成的半导体小组把目光盯住了那些特殊的“矿石”。肖克利首先提出了“场效应”半导体管实验方案。
1947年的圣诞前某一天,贝尔实验室中,布拉顿平稳地用刀片在三角形金箔上划了一道细痕,恰到好处地将顶角一分为二,分别接上导线,随即准确地压进锗晶体表面的选定部位。电流表的指示清晰地显示出,他们得到了一个有放大作用的新电子器件!布拉顿和巴丁兴奋地大喊大叫起来,闻声而至的肖克利也为眼前的奇迹感到格外振奋。布拉顿在笔记本上这样写道:“电压增益100,功率增益40…… 实验演示日期1947年12月23日下午。”作为见证者,肖克利在这本笔记上郑重地签了名。
1948年,美国专利局批准了贝尔实验室这种被命名为晶体管的发明专利。然而,专利书上的发明人只列着布拉顿和巴丁。此后,肖克利一举攻克晶体管中的另一座“堡垒”:他发明了一种“结型晶体管 ”,离布拉顿和巴丁发明“点接触型晶体管”的时间仅隔一年。人们后来知道,结型晶体管才是现代晶体管的正宗始祖,它预示着半导体技术的发展方向。
1948年7月1日,美国《纽约时报》只用了8个句子的篇幅,简短地公开了贝尔实验室发明晶体管的消息。“一石激起千层浪”,它就像颗重磅炸弹,在全世界电子行业“引爆”出强烈的冲击波。电子计算机终于就要大步跨进第二代的门槛!
1954年,贝尔实验室使用800支晶体管组装成功人类有史以来第一台晶体管计算机 TRADIC。如图12所示。
图12 第一台晶体管计算机TRADIC
晶体管可以说是20世纪最伟大的发明之一,是微电子技术革命的先声。与电子管相比,晶体管体积大为缩小,因其低成本、灵活性和可靠性等特点而被广泛应用于通信、广播电视、计算机等电子工业领域,并为后来集成电路的诞生奠定了基础。
晶体管发明并大量生产之后,各式固态半导体组件如二极管、晶体管等大量使用,取代了真空管在电路中的功能与角色。到了20世纪中后期半导体制造技术进步,使得集成电路成为可能。相对于手工组装电路使用个别的分立电子组件,集成电路可以把很大数量的微晶体管集成到一个小芯片,是一个巨大的进步。集成电路的规模生产能力,可靠性,电路设计的模块化方法确保了快速采用标准化IC 代替了设计使用离散晶体管。
IC 对于离散晶体管有两个主要优势:成本和性能。成本低是由于芯片把所有的组件通过照相平版技术,作为一个单位印刷,而不是在一个时间只制作一个晶体管。性能高是由于组件快速开关,消耗更低能量,因为组件很小且彼此靠近。2006年,芯片面积从几平方毫米到几百平方毫米,每平方毫米可以达到一百万个晶体管。
第一个集成电路雏形是由杰克·基尔比于1958年完成的,其中包括一个双极性晶体管,三个电阻和一个电容器。
图13 Jack Kiby
杰克·基尔比(Jack Kilby)是集成电路的两位发明人之一(另一位是罗伯特·诺伊斯),为德州仪器的工程师,其于1958年发明集成电路,我们在学习数字电路的时候经常看到的‘JK触发器器’就是以他的名字命名的。
Jack Kilby是美国物理学家。1923年11月8日生于密苏里州杰裴逊城。1947年获伊利诺大学理学士学位,1950年获威斯康星大学理科硕士学位。1947~1958年任全球联合公司设计负责人。1958~1970年任得克萨斯仪器公司助理副经理。1978年后任得克萨斯A&M大学教授。基尔比在集成电路方面获50项专利。1958年宣布制成第一块集成电路。稍后美国仙童公司的R.N. 诺伊斯也宣称制出第一块集成电路。1966 年研制出第一台袖珍计算器。获巴伦坦奖章、萨尔诺夫奖章、国家科学奖章、兹沃雷金奖章和伊利诺大学迪斯廷校友奖。2000年获得诺贝尔物理学奖。2005年6月20日因癌症在美国德州达拉斯市去世,享年81岁。
集成电路发明以后,其器件规模不断增大,根据一个芯片上集成的微电子器件的数量,集成电路可以分为以下几类:
小规模集成电路
SSI ( Small Scale Integration)逻辑门10个以下 或 晶体管 100个以下。
中规模集成电路
MSI ( Medium Scale Integration)逻辑门11~100个 或 晶体管 101~1k个。
大规模集成电路
LSI ( Large Scale Integration) 逻辑门101~1k个 或 晶体管 1,001~10k个。
超大规模集成电路
VLSI (Very large scale integration)逻辑门1,001~10k个 或 晶体管 10,001~100k个。
甚大规模集成电路
ULSI (Ultra Large Scale Integration)逻辑门10,001~1M个 或 晶体管 100,001~10M个。
GLSI ( Giga Scale Integration)逻辑门1,000,001个以上 或 晶体管10,000,001个以上。
而根据处理信号的不同,可以分为模拟集成电路、数字集成电路、和兼具模拟与数字的混合信号集成电路。
有了集成电路,计算机不再是用整栋大楼存放的巨无霸了,计算机的体积变得越来越小,于是就出现了笔记本电脑-- Osborne 1,如图14所示。
图14 第一台笔记本电脑
这台电脑的配置如下:
上市时间: 1981年4月
价格: 1795美元
重量: 24.5 磅
CPU: Zilog Z80 @ 4.0 MHz
RAM: 64K RAM
显示器: 内置 5吋 显示器 53 X 24 文本
接口: 并口 / IEEE-488 调制解调器/ 串口
存储: 两个 5-1/4英寸的 91K 软驱
操作系统: CP/M
历史的车轮终于走到了今天,计算机变得越来越小,性能变得越来越高,计算机已经变成了我们的日常用品。如yy,就是我写本书时使用的电脑—T430s。
图15 我现在使用的笔记本电脑
我的电脑的配置如下:
屏幕尺寸:14英寸 1366x768
CPU型号:Intel 酷睿i5 3210M
CPU主频:2.5GHz
内存容量:4GB DDR3 1600MHz
硬盘容量:500GB 7200转
显卡芯片:NVIDIA Quadro NVS
操作系统:Windows 7 Home Bas
摄像头:集成摄像头
光驱类型:DVD刻录机 Rambo
无线网卡:Intel 2200 BGN
自此,我们回顾了计算机的发展历史,需要说的是,计算机发展的脚步并没有停下,而是越走越快,计算机的变化也是日新月异,我们需要在这巨变中把握住那些不变的东西,正是本文即将介绍的重点—计算机的体系结构。
精彩回顾
甄建勇:芯片架构方法学
甄建勇:五分钟搞定MMU
甄建勇:五分钟搞定Cache(上)
甄建勇:五分钟搞定Cache(下)
扫码加入社群