1.1 绪论
1.1.1 计算机发展简史
计算工具的演化经历了由简单到复杂、从低级到高级的不同阶段,例如从“结绳记事”中的绳结到算筹、算盘计算尺、机械计算机等。它们在不同的历史时期发挥了各自的历史作用,同时也启发了电子计算机的研制和设计思路。
1889年,美国科学家赫尔曼·何乐礼研制出以电力为基础的电动制表机,用以储存计算资料。
1930年,美国科学家范内瓦·布什造出世界上首台模拟电子计算机。
1946年2月14日,由美国军方定制的世界上第一台电子计算机“电子数字积分计算机”(ENIAC Electronic Numerical And Calculator)在美国宾夕法尼亚大学问世了。ENIAC(中文名:埃尼阿克)是美国奥伯丁武器试验场为了满足计算弹道需要而研制成的,这台计算器使用了17840支电子管,大小为80英尺×8英尺(1英尺=30.48厘米),重达28t(吨),功耗为170kW,每秒能进行5000次的加法运算,造价约为487000美元。ENIAC的问世具有划时代的意义,表明电子计算机时代的到来。在以后60多年里,计算机技术展现了惊人的速度发展,没有任何一门技术的性能价格比能在30年内增长6个数量级。
自从第一台电子计算机问世以来,计算机科学和技术获得了日新月异的飞速发展。计算机的发展大致经历了四代:
(1)第1代:电子管数字机(1946~1958年)
硬件方面,逻辑元件采用的是真空电子管;主存储器采用汞延迟线、阴极射线示波管静电存储器、磁鼓、磁芯;外存储器采用的是磁带;软件方面采用的是机器语言、汇编语言;应用领域以军事和科学计算为主。
特点是体积大、功耗高、可靠性差、速度慢(一般为每秒数千次至数万次)、价格昂贵,但为以后的计算机发展奠定了基础。
(2)第2代:晶体管数字机(1958~1964年)
这一代计算机的主要逻辑元件为晶体管,主存储器仍用磁芯,外存储器已开始使用磁盘,软件也有较大发展,出现了各种高级语言。应用领域以科学计算和事务处理为主,并开始进入工业控制领域。特点是体积缩小、能耗降低、可靠性提高、运算速度提高(一般为每秒数十万次,可高达300万次)、性能比第1代计算机有很大的提高。
(3)第3代:集成电路数字机(1964~1970年)
硬件方面,逻辑元件采用中、小规模集成电路(MSI、SSI),主存储器仍采用磁芯;软件方面出现了分时操作系统以及结构化、规模化程序设计方法,操作系统、会话式高级语言等软件发展迅速。特点是速度更快(一般为每秒数百万次至数千万次),而且可靠性有了显著提高,价格进一步下降,产品有了通用化、系列化和标准化的趋势,应用领域开始进入文字处理和图形图像处理领域。机种多样化,生产系列化,结构积木化,使用系统化,是这一阶段计算机发展的主要特点。
(4)第4代:大规模集成电路机(1970年至今)
硬件方面,逻辑元件采用大规模和超大规模集成电路(LSI和VLSI),软件方面出现了数据库管理系统、网络管理系统和面向对象语言等。1971年世界上第一台微处理器在美国硅谷诞生,开创了微型计算机的新时代。计算机的应用领域从科学计算、事务管理、过程控制逐步走向家庭。
由于集成技术的发展,半导体芯片的集成度更高,每块芯片可容纳数万乃至数百万个晶体管,并且可以把运算器和控制器都集中在一个芯片上,从而出现了微处理器,并且可以用微处理器和大规模、超大规模集成电路组装成微型计算机,就是我们常说的微电脑或PC机。微型计算机体积小,价格便宜,使用方便,但它的功能和运算速度已经达到甚至超过了过去的大型计算机。另一方面,利用大规模、超大规模集成电路制造的各种逻辑芯片,已经可以制成体积并不很大,但运算速度可达一亿甚至几十亿次的巨型计算机。
随着物理元器件的变化,不仅计算机主机经历了更新换代,它的外部设备也在不断地变革。比如外存储器,由最初的阴极射线显示管发展到磁芯、磁鼓,之后又发展为通用的磁盘,现在又出现了体积更小、容量更大、速度更快的只读光盘(CD-ROM)。
1.1.2 计算机工作原理
计算机的基本原理是存储程序和程序控制。预先要把指挥计算机如何进行操作的指令序列(称为程序)和原始数据通过输入设备输入到计算机内存储器中。每一条指令中明确规定了计算机从哪个地址取数,进行什么操作,然后送到什么地址去等步骤。
1. 基本原理
计算机在运行时,先从内存中取出第一条指令,通过控制器的译码,按指令的要求,从存储器中取出数据进行指定的运算和逻辑操作等加工,然后再按地址把结果送到内存中去。接下来,再取出第二条指令,在控制器的指挥下完成规定操作,依此进行下去,直至遇到停止指令。
程序与数据一样存储,按程序编排的顺序,一步一步地取出指令,自动地完成指令规定的操作是计算机最基本的工作原理。这一原理最初是由美籍匈牙利数学家冯·诺依曼(John von Neumann)于1945年提出来的,故称为冯·诺依曼原理。
按照冯·诺依曼存储程序的原理,计算机在执行程序时须先将要执行的相关程序和数据放入内存储器中,在执行程序时CPU根据当前程序指针寄存器的内容取出指令并执行指令,然后再取出下一条指令并执行,如此循环下去直到程序结束指令时才停止执行。其工作过程就是不断地取指令和执行指令的过程,最后将计算的结果放入指令指定的存储器地址中。计算机工作过程中所要涉及的计算机硬件部件有内存储器、指令寄存器、指令译码器、计算器、控制器、运算器和输入/输出设备等,在后续的内容中将会着重介绍。
2. 系统架构
计算机系统由硬件系统和软件系统两大部分组成。美籍匈牙利科学家冯·诺依曼(John von Neumann)奠定了现代计算机的基本结构,这一结构又称冯·诺依曼结构,其特点如下。
(1)使用单一的处理部件来完成计算、存储以及通信的工作。
(2)存储单元是定长的线性组织。
(3)存储空间的单元是直接寻址的。
(4)使用低级机器语言,指令通过操作码来完成简单的操作。
(5)对计算进行集中的顺序控制。
(6)计算机硬件系统由运算器、存储器、控制器、输入设备、输出设备五大部件组成并规定了它们的基本功能。
(7)采用二进制形式表示数据和指令。
(8)在执行程序和处理数据时必须将程序和数据从外存储器装入主存储器中,然后才能使计算机在工作时能够自动调整地从存储器中取出指令并加以执行。
3. 硬件系统
硬件通常是指构成计算机的设备实体。一台计算机的硬件系统应由五个基本部分组成:运算器、控制器、存储器、输入和输出设备。现代计算机还包括中央处理器和总线设备。这五大部分通过系统总线完成指令所传达的操作,当计算机在接受指令后,由控制器指挥,将数据从输入设备传送到存储器存放,再由控制器将需要参加运算的数据传送到运算器,由运算器进行处理,处理后的结果由输出设备输出。
4. 软件系统
所谓软件是指为方便使用计算机和提高使用效率而组织的程序以及用于开发、使用和维护的有关文档。软件系统可分为系统软件和应用软件两大类。
(1)系统软件
系统软件(System Software),由一组控制计算机系统并管理其资源的程序组成,其主要功能包括:启动计算机,存储、加载和执行应用程序,对文件进行排序、检索,将程序语言翻译成机器语言等。实际上,系统软件可以看作用户与计算机的接口,它为应用软件和用户提供了控制、访问硬件的手段,这些功能主要由操作系统完成。此外,编译系统和各种工具软件也属此类,它们从另一方面辅助用户使用计算机。
(2)应用软件
为解决各类实际问题而设计的程序系统称为应用软件。从其服务对象的角度,又可分为通用软件和专用软件两类。
1.1.3 计算机应用领域
1. 信息管理
信息管理是以数据库管理系统为基础,辅助管理者提高决策水平,改善运营策略的计算机技术。信息处理具体包括数据的采集、存储、加工、分类、排序、检索和发布等一系列工作。信息处理已成为当代计算机的主要任务,是现代化管理的基础。据统计,80%以上的计算机主要应用于信息管理,成为计算机应用的主导方向。信息管理已广泛应用于办公自动化、企事业计算机辅助管理与决策、情报检索、图书馆、电影电视动画设计、会计电算化等各行各业。
2. 科学计算
科学计算是计算机最早的应用领域,是指利用计算机来完成科学研究和工程技术中提出的数值计算问题。在现代科学技术工作中,科学计算的任务是大量的和复杂的。利用计算机的运算速度高、存储容量大和连续运算的能力,可以解决人工无法完成的各种科学计算问题。例如,工程设计、地震预测、气象预报、火箭发射等都需要由计算机承担庞大而复杂的计算量。
3. 过程控制
过程控制是利用计算机实时采集数据、分析数据,按最优值迅速地对控制对象进行自动调节或自动控制。采用计算机进行过程控制,不仅可以大大提高控制的自动化水平,而且可以提高控制的时效性和准确性,从而改善劳动条件、提高产量及合格率。因此,计算机过程控制已在机械、冶金、石油、化工、电力等行业得到广泛的应用。
4. 辅助技术
计算机辅助技术包括CAD、CAM和CAI等。
(1)计算机辅助设计(Computer Aided Design,简称CAD)
计算机辅助设计是利用计算机系统辅助设计人员进行工程或产品设计,以实现最佳设计效果的一种技术。CAD技术已应用于飞机设计、船舶设计、建筑设计、机械设计、大规模集成电路设计等。采用计算机辅助设计,可缩短设计时间,提高工作效率,节省人力、物力和财力,更重要的是提高了设计质量。
(2)计算机辅助制造(Computer Aided Manufacturing,简称CAM)
计算机辅助制造是利用计算机系统进行产品的加工控制过程,输入的信息是零件的工艺路线和工程内容,输出的信息是刀具的运动轨迹。将CAD和CAM技术集成,可以实现设计产品生产的自动化,这种技术被称为计算机集成制造系统。有些国家已把CAD和计算机辅助制造(Computer Aided Manufacturing)、计算机辅助测试(Computer Aided Test)及计算机辅助工程(Computer Aided Engineering)组成一个集成系统,使设计、制造、测试和管理有机地组成为一体,形成高度的自动化系统,因此产生了自动化生产线和“无人工厂”。
(3)计算机辅助教学(Computer Aided Instruction,简称CAI)
计算机辅助教学是利用计算机系统进行课堂教学。教学课件可以用PowerPoint或Flash等制作。CAI不仅能减轻教师的负担,还能使教学内容生动、形象逼真,能够动态演示实验原理或操作过程,激发学生的学习兴趣,提高教学质量,为培养现代化高质量人才提供有效方法。
5. 翻译
1947年,美国数学家、工程师沃伦·韦弗与英国物理学家、工程师安德鲁·布思提出了以计算机进行翻译(简称“机译”)的设想,机译从此步入历史舞台,并走过了一条曲折而漫长的发展道路。机译被列为21世纪世界十大科技难题。与此同时,机译技术也拥有巨大的应用需求,机译消除了不同文字和语言间的隔阂,堪称高科技造福人类之举。
6. 多媒体应用
随着电子技术特别是通信和计算机技术的发展,人们已经有能力把文本、音频、视频、动画、图形和图像等各种媒体综合起来,构成一种全新的概念——“多媒体”(Multimedia)。在医疗、教育、商业、银行、保险、行政管理、军事、工业、广播、交流和出版等领域中,多媒体的应用发展很快。
7. 计算机网络
计算机网络是由一些独立的和具备信息交换能力的计算机互联构成,以实现资源共享的系统,计算机在网络方面的应用使人类之间的交流跨越了时间和空间障碍。计算机网络已成为人类建立信息社会的物质基础,它给我们的工作带来极大的方便和快捷,如在全国范围内的银行信用卡系统的使用、火车和飞机订票及检票系统的使用等。可以在全球最大的互联网络——Internet上进行浏览、检索信息、收发电子邮件、阅读书报、玩网络游戏、选购商品、参与众多问题的讨论、实现远程医疗服务等。
1.1.4 计算机发展趋势
随着科技的进步,各种计算机技术、网络技术的飞速发展,计算机的发展已经进入了一个快速而又崭新的时代,计算机已经从功能单一、体积较大发展到了功能复杂、体积微小、资源网络化等。计算机的未来充满了变数,性能的大幅度提高是不可置疑的,而实现性能的飞跃却有多种途径。不过性能的大幅提升并不是计算机发展的唯一路线,计算机的发展还应当变得越来越人性化,同时也要注重环保等等。
计算机从出现至今,经历了机器语言、程序语言、简单操作系统和Linux、Macos、BSD、Windows等现代操作系统四代,运行速度也得到了极大的提升,第四代计算机的运算速度已经达到每秒几十亿次。计算机也由原来的仅供军事科研使用发展到人人拥有,计算机强大的应用功能,产生了巨大的市场需求,未来计算机性能应向着微型化、网络化、智能化和巨型化的方向发展。
1. 巨型化
巨型化是指为了适应尖端科学技术的需要,发展高速度、大存储容量和功能强大的超级计算机。随着人们对计算机的依赖性越来越强,特别是在军事和科研教育方面对计算机的存储空间和运行速度等要求会越来越高。
2. 微型化
随着微型处理器(CPU)的出现,计算机中开始使用微型处理器,这使计算机体积缩小了,成本降低了。另一方面,软件行业的飞速发展提高了计算机内部操作系统的便捷度,计算机外部设备也趋于完善。计算机理论和技术上的不断完善促使微型计算机很快渗透到全社会的各个行业和部门中,并成为人们生活和学习的必需品。四十年来,计算机的体积不断地缩小,台式电脑、笔记本电脑、掌上电脑、平板电脑体积逐步微型化,为人们提供便捷的服务。因此,未来计算机仍会不断趋于微型化,体积将越来越小。
3. 网络化
互联网将世界各地的计算机连接在一起,从此进入了互联网时代。计算机网络化彻底改变了人类世界,人们通过互联网进行沟通、交流(QQ、微博等)、教育资源共享(文献查阅、远程教育等)、信息查阅共享(百度、谷歌)等,特别是无线网络的出现,极大地提高了人们使用网络的便捷性,未来计算机将会进一步向网络化方面发展。
4. 人工智能化
计算机人工智能化是未来发展的必然趋势。现代计算机具有强大的功能和运行速度,但与人脑相比,其智能化和逻辑能力仍有待提高。人类不断在探索如何让计算机能够更好地反映人类思维,使计算机能够具有人类的逻辑思维判断能力,可以通过思考与人类沟通交流,抛弃以往的通过编码程序来运行计算机的方法,直接对计算机发出指令。
5. 多媒体化
传统的计算机处理的信息主要是字符和数字。事实上,人们更习惯的是图片、文字、声音、视频等多种形式的多媒体信息。多媒体技术可以集图形、图像、音频、视频、文字为一体,使信息处理的对象和内容更加接近真实世界。
电子数字计算机诞生于1946年,直到20世纪70年代,随着集成电路的不断发展,微处理器的出现,计算机的使用有了历史性的变化。以微处理器为核心的微型计算机以其小型、价廉、高可靠性的特点,迅速走出机房,在满足数据、文字、图像等信息处理的同时,在工业控制领域也得到了日益广泛的应用,将微型机嵌入一个对象体系中,实现对象体系的智能化控制。这样一来,计算机便失去了原来的形态与通用的计算机功能。为了区别于原有的通用计算机系统,把嵌入对象体系中,实现对象体系智能化控制的计算机,称作嵌入式计算机系统。如果说微型机的出现,使计算机进入现代计算机发展阶段,那么嵌入式计算机系统的诞生,则标志了计算机进入了通用计算机系统与嵌入式计算机系统两大分支并行发展时代,从而导致20世纪末,计算机的高速发展时期。
由于嵌入式计算机系统要嵌入对象体系中,实现的是对象的智能化控制,因此,它有着与通用计算机系统完全不同的技术要求与技术发展方向。通用计算机系统的技术要求是高速、海量的数值计算;技术发展方向是总线速度的无限提升,存储容量的无限扩大。而嵌入式计算机系统的技术要求则是对象的智能化控制能力;技术发展方向是与对象系统密切相关的嵌入性能、控制能力与控制的可靠性。现代计算机技术发展的两大分支的里程碑意义在于:它不仅形成了计算机发展的专业化分工,而且将发展计算机技术的任务扩展到传统的电子系统领域,使计算机成为进入人类社会全面智能化时代的有力工具。