1.1 计算机的发展
计算机是一种能够按照程序运行,自动、高速处理海量数据的现代化智能电子设备,是20世纪最伟大的科学技术发明之一。 其发明者是著名数学家约翰·冯·诺依曼(John Von Neu⁃mann)。
计算机对人类的生产活动和社会活动产生了极其重要的影响,并以强大的生命力飞速发展。 它的应用领域从最初的军事科研应用扩展到社会的各个领域,已形成了规模巨大的计算机产业,带动了全球范围的技术进步,由此引发了深刻的社会变革。 计算机已遍及学校、企事业单位,进入寻常百姓家中,成为信息社会必不可少的工具。 它是人类进入信息时代的重要标志之一。 随着物联网的提出和发展,计算机与其他技术又一次掀起信息技术的革命,物联网是当下几乎所有技术与计算机、互联网技术的结合,实现物体与物体之间环境以及状态信息实时的共享以及智能化的搜集、传递、处理、执行。
1983年1月3日出版的《时代周刊》(见图1.1)中,为上年度当选的“风云人物”撰文中这样写道:“在这一年里,这是最具影响力的新闻,它代表着一种进程,一种被全社会广泛接受并带来巨大变革的进程,这就是为什么《时代周刊》在风云激荡的当今世界中选择这么一位‘人物’,但它不是一个人,而是一台机器——计算机。 因此,《时代周刊》将计算机选定为1982年的年度‘人物’。”

图1.1 《时代周刊》
1.1.1 早期计算机
计算机原意为“计算”的机器,这也是发明者当初为之其计算为目的。 而发展到今天,它的触角延伸向了社会的各个领域,对推动当今物质文明的进步起着决定性的作用。 而计算工具的演化经历了由简单到复杂、从低级到高级的不同阶段。 早期计算机主要有结绳记事、算筹和算盘3种。
1)结绳记事
结绳记事(见图1.2)是文字发明前,人们所使用的一种记事方法。 即在一条绳子上打结,用以记事。 上古时期的中国及秘鲁印第安人皆有此习惯,即使到近代,一些没有文字的民族,仍然采用结绳记事来传播信息。
2)算筹
根据史书的记载和考古材料的发现,古代的算筹(见图1.3)实际上是一根根同样长短和粗细的小棍子,一般长为13~14cm,径粗为0.2~0.3cm,多用竹子制成,也有用木头、兽骨、象牙、金属等材料制成的,大约270根为一束,放在一个布袋中,系在腰部随身携带。 需要记数和计算时,就将其取出,放于桌上、炕上或地上摆弄。 别看这些都是一根根不起眼的小棍子,在中国数学史上它们却是立有大功的。 而它们的发明,也同样经历了一个漫长的历史发展过程。
3)算盘
算盘,又称为祘盘(见图1.4)。 在计算机已被普遍使用的今天,古老的算盘不仅没有被废弃,反而因它的灵便、准确等优点,在许多国家方兴未艾。 因此,人们往往把算盘的发明与中国古代四大发明相提并论,珠算盘也是汉族发明创造的一种简便的计算工具。 北宋名画《清明上河图》中赵太丞家药铺柜就画有一架算盘。 由于珠算盘运算方便、快速,几千年来一直是人们普遍使用的计算工具,即使现代最先进的电子计算器也不能完全取代珠算盘的作用。

图1.2 结绳记事

图1.3 算筹记事

图1.4 算盘
而以上三者其实不能严格地称为“计算机”,只能称为计算的工具。
1.1.2 近代计算机
近代计算机包括机械式计算机、差分机和机电式计算机3种,具体内容如下:
1)机械式计算机
1642年法国数学家布莱士·帕斯卡设计并制作了一台能自动进位的加减法计算装置(见图1.5),被称为是世界上第一台数字计算器,为以后的计算机设计提供了基本原理。

图1.5 机械式计算机
2)差分机
1819年,英国科学家巴贝奇设计了“差分机”(见图1.6),并于1822年制造出可动模型。这台机器能提高乘法速度和改进对数表等数字表的精确度。1991年,为纪念巴贝奇诞辰200周年,伦敦科学博物馆制作出了完整差分机,它包含4000多个零件,质量达2.5t。1834年,巴贝奇又提出了一项新的更大胆的设计并称之为分析机。 差分机和分析机为现代计算机设计思想的发展奠定了基础。
3)机电式计算机
美国数学家艾肯在1937年提出题为《自动计算机建议》的备忘录。 他在IBM公司的资助下,于1944年8月成功研制世界第一台通用自动计算机——“自动程控计算机”,又称MarkⅠ(见图1.7)。 这台计算机使用了3000多个继电器,又称继电器计算机。 MarkⅠ的基本结构和巴贝奇的设想相同,机器十进制23位数字的加减计算时间为0.3s,乘法为6s,除法为11.4s。之后,艾肯研制出速度更快的MarkⅡ计算机。 在1956年,成功研制出使用电子管的计算机MarkⅢ。

图1.6 差分机

图1.7 机电式计算机
1.1.3 现代计算机
20世纪初,Boole创立了布尔代数,为电子数字计算机的诞生奠定了理论基础。 用两个电子管等元件构成的双稳态触发器,用于表示二进制“0”和“1”,为电子数字计算机的诞生奠定了物质基础。
1945年,一组工程师开始了一项秘密工程——建造“电子离散变量自动计算机”,简称EDVAC(Electronic Discrete Variable Computer)。 美籍匈牙利数学家约翰·冯·诺依曼(见图1.8)在一个报告中对EDVAC计划进行了描述。 这个报告被称为“计算机科学史上最具影响力的论文”,该报告是最早专门定义计算机部件并描述其功能的文献之一。 在报告中,冯·诺依曼使用了术语“自动计算机系统”,现在取而代之的术语是“计算机”或“计算机系统”。 基于冯·诺依曼论文中提出的概念,我们可以定义“计算机”为一种可以接收输入、处理数据、存储数据、产生输出的电子设备。

图1.8 冯·诺依曼
在第二次世界大战中,美国政府寻求计算机以开发潜在的战略价值,这促进了计算机的研究与发展。1944年How⁃ard H.Aiken研制出全电子计算器,为美国海军绘制弹道图。 这台简称的机器有半个足球场大,内含8000多米的电线,使用电磁信号来移动机械部件,速度很慢并且适应性较差,只用于专门领域,但是,它既可以执行基本算术运算也可以运算复杂的等式。
第二次世界大战使美国军方产生了快速计算导弹弹道的需求,军方请求宾夕法尼亚大学的约翰·莫克利博士研制具有这种用途的机器。 莫克利与研究生普雷斯泊·埃克特一起用真空管建造了这一装置——ENIAC(见图1.9),即电子数字积分计算机(Electronic Numerical In⁃tegratorand Computer,ENIAC),它是人类第一台全自动电子计算机,它开辟了信息时代的新纪元,是人类第三次产业革命开始的标志。 这台计算机从1946年2月开始投入使用到1955年10月最后切断电源,服役9年多。 它用了18000多只电子管,70000多个电阻,10000多只电容,6000多个开关,重达30t,占地170m2,耗电150k W,运算速度为每秒5000次加减法。
1946年6月,美籍匈牙利科学家冯·诺依曼教授发表了《电子计算机装置逻辑结构初探》的论文,并设计出了第一台“存储程序式”计算机EDVAC,即电子离散变量自动计算机(The Electronic Discrete Variable Automatic Computer,EDVAC),与ENIAC相比有了重大改进,具体如下:
①采用二进制数字0、1直接模拟开关电路连通、断开两种状态,用于表示数据和计算机指令。
②把指令存储在计算机内部的存储器中,且能自动依次执行指令。
③奠定了当代计算机硬件由控制器、运算器、存储器、输入设备、输出设备等组成的体系结构。
冯·诺依曼提出的EDVAC计算机结构为后人普遍接受,此结构又称为冯·诺依曼结构。迄今为止的计算机系统基本上都是建立在冯·诺依曼计算机原理上的。

图1.9 ENIAC
1.1.4 计算机发展的四个时代
1)第一代电子管计算机
以ENIAC为代表,它是第一台真正意义上的电子数字计算机。 硬件方面的逻辑元件采用真空电子管,主存储器采用汞延迟线、阴极射线示波管静电存储器、磁鼓、磁芯;外存储器采用磁带。 软件方面采用机器语言、汇编语言。 应用领域以军事和科学计算为主。 特点是体积大、功耗高、可靠性差、速度慢(一般为每秒数千次至数万次)、价格昂贵,但为以后的计算机发展奠定了基础。
2)第二代晶体管计算机
1956年,晶体管在计算机中使用,晶体管和磁电子设备的体积不断减小。 芯存储器导致了第二代计算机的产生。 第二代计算机体积小、速度快、功耗低、性能更稳定。 首先使用晶体管技术的是早期的超级计算机,主要用于原子科学的大量数据处理,这些机器价格昂贵,生产数量极少。1955年,贝尔实验室研制出世界上第一台全晶体管计算机TRADIC,装有800只晶体管,功率仅100W,占地也只有0.085m3。它成为第二代计算机的典型机器。
计算机中存储的程序使得计算机有很好的适应性,可以更有效地用于商业用途。 在这一时期出现了更高级的COBOL语言和FORTRAN语言等,以单词、语句和数学公式代替了含混晦涩的二进制机器码,使计算机编程更容易。 新的职业(程序员、分析员和计算机系统专家)和整个软件产业由此诞生。
3)第三代集成电路计算机
1958年德州仪器的工程师Jack Kirby发明了集成电路(见图1.10),将3种电子元件结合到一片小小的硅片上,使更多的元件集成到单一的半导体芯片上。 随着固体物理技术的发展,集成电路工艺已可以在几平方毫米的单晶硅片上集成由十几个甚至上百个电子元件组成的逻辑电路。 其基本特征是逻辑元件采用小规模集成电路SSI(Small Scale Integration)和中规模集成电路MSI(Middle Scale Integration)。 第三代电子计算机的运算速度每秒可达几十万次到几百万次。 存储器进一步发展,体积越来越小,价格越来越低,而软件越来越完善。1964年IBM生产出了由混合集成电路制成的IBM350系统,这成为第三代计算机的主要里程碑。 典型机器是:IBM360。

图1.10 小规模集成电路

图1.11 大规模集成电路
高级程序设计语言在这个时期有了很大发展,并出现了操作系统和会话式语言,计算机开始广泛应用于各个领域。计算机在中心程序的控制协调下可以同时运行许多不同的程序。
4)第四代大规模及超大规模集成电路计算机
大规模集成电路(见图1.11)可以在一个芯片上容纳几百个元件。 到了1980年,超大规模集成电路(VLSI)芯片上容纳了几十万个元件,后来的技术将数字扩充到百万级、千万级,甚至到了现在的亿万级。 可以在硬币大小的芯片上容纳如此数量的元件使得计算机的体积和价格不断下降,而功能和可靠性不断增强,中央处理器CPU高度集成是这一代计算机的主要特征。 目前,计算机的速度最高可达到每秒上百万亿次浮点运算。
表1.1

1.1.5 计算机的分类
按用途计算机可分为专用计算机和通用计算机两大类。
1)专用计算机
专用计算机的特点是针对某类问题的需要设计的,因此,专用计算机在其专用的领域里运行效率和运行效果是最好的。 例如,用于银行自动取款机中的处理器,家用电器中完成实时控制功能的处理器等。 若将某专用计算机用于其他领域则适应性很差,甚至无法运行,例如军事控制系统中,广泛使用了专用计算机。
2)通用计算机
通用计算机是计算机应用的主流,主要是完成计算、信息搜索、文字处理与图形图像处理等人文科学和自然科学方方面面的工作,人们对计算机的评价和分类一般也相对于通用计算机而言。 通常所说的计算机及本书所介绍的就是指通用计算机。
在通用计算机中,根据用途及性能(主频、数据处理能力、主存储器容量和输入、输出能力等)和价格等综合指标进行计算机分类。 每一时期都有该时期的计算机分类参考标准,其标准随计算机技术的发展而不断提高。
(1)巨型计算机
巨型计算机又称超级计算机(Super Computer),诞生于1983年12月,它使用通用处理器及Unix或类Unix操作系统(如Linux),计算的速度与内存性能大小相关,长于数值计算(科学计算),所以它一般都需要使用大量处理器,通常由多个机柜组成。 在政府部门和国防科技领域曾得到广泛的应用。 诸如石油勘探、国防科研等都依赖巨型机的海量运算能力。 自20世纪90年代中期以来,巨型机的应用领域开始得到扩展,从传统的科学和工程计算延伸到事务处理、商业自动化等领域。 在2006年国际商业机器公司(IBM)致力于尖端超级计算的一个项目:在计算机体系结构中,在必须编程和控制整体并行系统的软件中和在重要生物学的高级计算应用,如蛋白质折叠。 而Blue Gene/L超级计算机(见图1.12)就是IBM公司、利弗摩尔实验室和美国能源部为此而联合制作完成的超级计算机。 在我国,巨型机的研发也取得了很大的成绩,推出了“曙光”“银河”等代表国内最高水平的巨型机系统(见图1.13),并在国民经济的关键领域得到了广泛应用。

图1.12 Blue Gene/L超级计算机

图1.13 曙光5000超级计算机
(2)大型计算机
大型计算机(见图1.14),体积大,速度非常快,使用专用指令系统和操作系统,长于非数值计算(数据处理),在处理数据的同时需要读写或传输大量信息,大量使用冗余等技术确保其安全性及稳定性。 因此大型机主要用于高可靠性、高数据安全性和中心控制等情况,适用于高科技部门、大企业或政府机构,以及需要进行大量的数据存储、处理和管理的其他部门和机构。 大型机的使用日渐广泛,已深入机械、气象、电子、人工智能等几十个科学领域。
3)小型计算机
小型计算机(见图1.15),规模小、结构简单、设计试制周期短,便于及时采用先进工艺技术,软件开发成本低,易于操作维护。 近年来,小型机的发展也引人注目。 特别是RISC(Re⁃duced Instruction Set Computer,缩减指令系统计算机)体系结构,顾名思义是指令系统简化、缩小了的计算机,而过去的计算机则统属于CISC(复杂指令系统计算机)。

图1.14 浪潮天梭K1

图1.15 IBM550小型机服务器机柜
4)工作站
工作站是一种高档的微型计算机,通常配有高分辨率的大屏幕显示器及容量很大的内部存储器和外部存储器,且具有较强的信息处理功能和高性能的图形、图像处理功能以及联网功能。 主要面向专业应用领域,具备强大的数据运算与图形、图像处理能力,为满足工程设计、动画制作、科学研究、软件开发、金融管理、信息服务、模拟仿真等专业领域而设计开发的高性能计算机。
5)微型计算机
微型计算机又称个人计算机(Personal Computer,PC)。 IBMPC是全球首款个人计算机,该机采用主频4.77MHz的Intel8088微处理器,运行微软公司专门为IBMPC开发的MS⁃DOS操作系统。 IBMPC的诞生才真正具有划时代的意义,因为它首创了个人电脑的概念,并为PC制定了全球通用的工业标准。 它所用的处理器芯片来自Intel公司,DOS磁盘操作系统来自由32人组成的微软公司。 直到今天,“IBM PC及其兼容机”(见图1.16)始终是PC工业标准的代名词,也从此揭开了微型计算机大发展的帷幕。
随后许多公司(如Motorola等)也争相研制微处理器,推出了8位、16位、32位、64位的微处理器。 每18个月,微处理器的集成度和处理速度提高一倍,价格却下降一半。 微型计算机的种类很多,主要分台式机(Desktop Computer)、笔记本(Notebook)电脑和个人数字助理PDA3类,如图1.17所示。

图1.16 早期的IBMPC

图1.17 台式机、笔记本电脑和个人数字助理
6)网络计算机
网络计算机(Network Computer,NC),当计算机最初用于信息管理时,信息的存储和管理是分散的。 这种方式的弱点是数据的共享程度低,数据的一致性难以保证,于是以数据库为标志的一代信息管理技术发展起来了,同时以大容量磁盘为手段、以集中处理为特征的信息系统也逐渐发展起来。20世纪80年代,PC机的兴起冲击了这种集中处理的模式,而计算机网络的普及更加剧了这一变化。 数据库技术也相当延伸到了分布式数据库,客户机—服务器的应用模式出现了。 这不是向分散处理的简单的回归,随着Internet的迅猛发展,把需要共享和需要保持一致的数据相对集中地存放,把经常要更新的软件比较集中地管理,而把用户端的功能仅限于用户界面与通信功能。 网络计算机适用于行业用户使用,如,政府办公网络、税收征收系统、电力系统、医疗领域等。 又如,首钢医院门诊收费系统、北京市劳动局综合业务系统等均使用网络计算机。
1.1.6 计算机的发展趋势
作为人类最伟大的发明之一,计算机技术的发展深刻地影响着人们生产和生活。 特别是随着微型处理器结构的微型化,计算机从之前的应用于国防军事领域开始向社会各个行业发展,如教育系统、商业领域、家庭生活等。 计算机的应用在我国越来越普遍,改革开放以后,我国计算机用户的数量不断攀升,应用水平不断提高,特别是互联网、通信、多媒体等领域的应用取得了不错的成绩。1996—2009年,计算机用户数量从原来的630万台增长至6710万台,联网计算机台数由原来的2.9万台上升至5940万台。 互联网用户已达到3.16亿,无线互联网有6.7亿移动用户,其中手机上网用户达1.17亿,居全球第一位。 此外中文网站数量也逐渐提升,据CNNIC统计,截至2009年,我国中文网站数量达到了287.8万。
计算机从出现至今,经历了机器语言、程序语言、简单操作系统和Linux、Macos、BSD、Win⁃dows等现代操作系统,运行速度也得到了极大的提升,第四代计算机的运算速度已经达到几十亿秒。 计算机也由原来的仅供军事、科研使用发展到人人拥有。 由于计算机强大的应用功能,从而产生了巨大的市场需要,未来计算机性能应向着微型化、网络化、智能化和巨型化等方向发展。
1)巨型化
巨型化是指研制速度更快的、存储量更大的和功能更强大的巨型计算机。 主要应用于天文、气象、地质和核技术、航天飞机和卫星轨道计算等尖端科学技术领域,研制巨型计算机的技术水平是衡量一个国家科学技术和工业发展水平的重要标志。
2)微型化
微型化是指利用微电子技术和超大规模集成电路技术,把计算机的体积进一步缩小,价格进一步降低。 计算机的微型化已成为计算机发展的重要方向,各种笔记本电脑和PDA的大量面世和使用,是计算机微型化的一个标志。
3)多媒体化
多媒体化是对图像、声音的处理是目前计算机普遍需要具有的基本功能。
4)网络化
计算机网络是通信技术与计算机技术相结合的产物。 计算机网络将使不同地点、不同计算机之间,在网络软件的协调下共享资源。 为适应网络上通信的要求,计算机对信息处理速度、存储量的大小均有较高的要求,计算机的发展必须适应网络发展。
5)智能化
计算机智能化是指使计算机具有模拟人的感觉和思维过程的能力。 智能化的研究包括模拟识别、物形分析、自然语言的生成和理解、博弈、定理自动证明、自动程序设计、专家系统、学习系统和智能机器人等。 目前,已研制出多种具有人的部分智能的机器人,可代替人在一些危险的工作岗位上工作。 有人预测,家庭智能化的机器人将是继PC机之后下一个家庭普及的信息化产品。
6)网格化
网格(Grid)技术可以更好地管理网上的资源,它把整个互联网虚拟成一台空前强大的一体化信息系统,犹如一台巨型机,在这个动态变化的网络环境中,实现计算资源、存储资源、数据资源、信息资源、知识资源、专家资源的全面共享,从而让用户从中享受可灵活控制的、智能的、协作式的信息服务,并获得前所未有的使用方便性和超强能力。
7)非冯·诺依曼式计算机
随着计算机应用领域的不断扩大,采用存储方式进行工作的冯·诺依曼式计算机逐渐显露出局限性,从而出现了非冯·诺依曼式计算机的构想。 在软件方面,非冯·诺依曼语言主要有LISP,PROLOG和F.P;而在硬件方面,提出了与人脑神经网络类似的新型超大规模集成电路——分子芯片。
1.1.7 下一代计算机的展望
基于集成电路的计算机短期内还不会退出历史舞台。 而一些新的计算机正在跃跃欲试地加紧研究,这些计算机是:能识别自然语言的计算机、高速超导计算机、纳米计算机、激光计算机、DNA计算机、量子计算机、神经元计算机、生物计算机等。
1)纳米计算机
纳米计算机是用纳米技术研发的新型高性能计算机。 纳米管元件尺寸在几到几十纳米范围,质地坚固,有着极强的导电性,能代替硅芯片制造计算机。 “纳米”是一个计量单位,一个纳米等于10-9m,大约是氢原子直径的10倍。纳米技术是从20世纪80年代初迅速发展起来的新的前沿科研领域,最终目标是人类按照自己的意志直接操纵单个原子,制造出具有特定功能的产品。 纳米技术正从微电子机械系统起步,把传感器、电动机和各种处理器都放在一个硅芯片上而构成一个系统。 应用纳米技术研制的计算机内存芯片,其体积只有数百个原子大小,相当于人的头发丝直径的1/1000。 纳米计算机不仅几乎不需要耗费任何能源,而且其性能要比今天的计算机强大许多倍。
2)生物计算机
20世纪80年代以来,生物工程学家对人脑、神经元和感受器的研究倾注了很大精力,以期研制出可以模拟人脑思维、低耗、高效的第六代计算机——生物计算机。 用蛋白质制造的电脑芯片,存储量可达普通电脑的10亿倍。 生物电脑元件的密度比大脑神经元的密度高100万倍,传递信息的速度也比人脑思维的速度快100万倍。
3)神经元计算机
其特点是可以实现分布式联想记忆,并能在一定程度上模拟人和动物的学习功能。 它是一种有知识、会学习、能推理的计算机,具有能理解自然语言、声音、文字和图像的能力,并且还具有说话的能力,使人机能够用自然语言直接对话,它可以利用已有的和不断学习到的知识,进行思维、联想、推理,并得出结论,能解决复杂问题,具有汇集、记忆、检索有关知识的能力。
目前,推出的一种新的超级计算机采用世界上速度最快的微处理器之一,并通过一种创新的水冷系统进行冷却。
IBM公司已经制造出世界上最小的计算机逻辑电路,也就是一个由单分子碳组成的双晶体管元件。 这一成果将使未来的电脑芯片变得更小、传输速度更快、耗电量更少。