1.2 计算机系统组成原理
1.2.1 计算机的基本结构
1946年,冯·诺依曼、戈德斯坦等人共同发表一篇题为“电子计算机装置逻辑结构初探”的论文,该论文详细描述了计算机的逻辑设计、程序存储的概念以及计算机的电子电路,提出了一个完整的现代计算机雏形,它由运算器、控制器、存储器和输入/输出设备组成,如图1.3所示。
图1.3 冯·诺依曼型机器结构
冯·诺依曼型机器结构的出现对计算机的发展产生了深远的影响。迄今为止,绝大多数计算机的基本结构都是基于冯·诺依曼型机器结构设计的。
1.存储程序思想
冯·诺依曼型机器结构规定控制器是根据存放在存储器中的程序来工作的,即计算机的工作过程就是运行程序的过程。为了使计算机能正常工作,程序必须预先存放在存储器中。这就是存储程序的概念。
2.冯·诺依曼型机器结构的基本特点
(1)采用二进制形式表示数据和指令。
(2)计算机应包括运算器、控制器、存储器、输入设备和输出设备5大基本部件。整个结构以运算器为中心,数据流动必须经过运算器,并由控制器集中控制。
(3)采用存储程序和程序控制的工作方式。
计算机5大部件的相互关系如下。
① 通过输入设备输入原始数据、计算程序以及给控制器的控制命令等,由控制器控制,将有关部分存入存储器(存储程序)。
② 在控制器控制下从存储器读出一条指令到控制器,经译码分析发出全机的控制信号。若需要的话,还要从存储器读出数据到运算器。
③ 运算器在控制器控制下完成规定操作,并将结果送回存储器或送到输出设备输出。
④ 从存储器取出下一条指令,重复②,直至程序结束。
冯·诺依曼的上述思想奠定了现代计算机设计的基础,后来人们将采用这种设计思想的计算机称为冯·诺依曼型计算机。从1946年第一台计算机诞生至今,尽管计算机的设计和制造技术都有了极大的发展,但是目前使用的绝大多数计算机的工作原理和基本结构仍然遵循冯·诺依曼的思想。
3.冯·诺依曼型机器结构的演变
现代计算机与早期计算机相比在结构上已有不少变化,如从以运算器为中心改为以存储器为中心。但就计算机的结构原理来说,目前绝大多数计算机仍建立在存储程序概念的基础上。随着计算机技术的不断发展,计算机系统结构有了许多改进,主要包括以下6个方面。
(1)从基于串行算法变为适应并行算法,出现了向量计算机、并行计算机、多处理机等。
(2)高级语言与机器语言的语义距离缩小,出现了面向高级语言的计算机和直接执行高级语言的计算机。
(3)从传统的控制驱动型变为数据驱动型和需求驱动型,出现了数据流计算机和归约机。
(4)为适应特定应用环境而出现了各种专用计算机,如快速傅里叶变换机器、过程控制计算机等。
(5)计算机系统功能分散化、专业化,出现了各种功能分布计算机,包括外围处理机、通信处理机等。
(6)出现了处理非数值化信息的智能计算机,如处理自然语言、声音、图形和图像等信息的计算机。
1.2.2 计算机系统的组成
一个完整的计算机系统包含硬件系统和软件系统两大部分,如图1.4所示。
图1.4 计算机系统的组成
1.计算机硬件系统
电子计算机从诞生至今,其体系结构基本未发生变化,沿用的仍是冯·诺依曼体系结构,即计算机硬件由运算器、控制器、存储器、输入设备和输出设备组成,如图1.5所示。
(1)运算器
运算器又称算术逻辑单元(Arithmetic Logic Unit,ALU),它是计算机对数据进行加工处理的部件,它对二进制数码进行加、减、乘、除等算术运算,或进行与、或、非等基本逻辑运算,从而实现逻辑判断。运算器在控制器的控制下实现算术逻辑运算功能,运算结果由控制器送到内存中。
图1.5 计算机的基本结构
(2)控制器
控制器是计算机的指挥和控制中心。它负责从内存中取出指令,确定指令类型,并对指令进行译码,按时间的先后顺序,向计算机的各个部件发出控制信号,使整个计算机系统的各个部件协调一致地工作,从而一步一步地完成各种操作。
控制器主要由指令寄存器、指令译码器、程序计数器、时序部件、操作控制部件等组成。
(3)存储器
存储器是计算机存储数据的部件,用于保存程序和数据以及运算的结果。它包括数据寄存器和地址寄存器。数据寄存器用于暂存操作数和运算结果,地址寄存器用于存放需要访问的存储单元的地址。
(4)输入设备
输入设备负责把用户命令(包括程序和数据)输入到计算机中,它是人与计算机之间对话的重要工具。文字、图形、声音、图像等信息都要通过输入设备才能被计算机接受。常见的输入设备有键盘、鼠标、扫描仪、数码相机等。
(5)输出设备
输出设备的作用是将计算机运算或处理的结果转换成用户所需要的各种形式的输出。常见的输出设备有显示器、打印机等。
2.计算机软件系统
计算机软件是各种程序和文档的总称,程序是人们为使计算机完成某项特定任务而编写的按一定次序排列和执行的命令与数据的集合,文档则是应用各种编辑系统编写的文本或带格式的文本。计算机软件系统包括系统软件和应用软件。系统软件是指控制、管理和协调计算机及其外部设备,支持应用软件的开发和运行的软件的总称。系统软件包括操作系统、语言处理程序和服务程序等。
(1)操作系统
操作系统是管理、控制和监督计算机软/硬件资源协调运行的程序系统,它由一系列具有不同控制和管理功能的程序组成,是直接运行在计算机硬件上的、基本的系统软件,是系统软件的核心。操作系统是计算机发展中的产物,它的主要目的有两个:一是方便用户使用计算机,是用户和计算机的接口,比如用户输入一条简单的命令计算机就能自动完成复杂的功能,这就是操作系统帮助计算机执行用户命令的结果;二是统一管理计算机系统的全部资源,合理组织计算机工作流程,以便充分、合理地发挥计算机的效率。
(2)程序设计语言
计算机语言是人们根据描述实际问题的需要而设计的、用于书写计算机程序的语言。程序设计语言就是人们设计出来的能让计算机读懂并能完成某个特定事务的语言。程序设计语言从低级到高级依次分为机器语言、汇编语言和高级语言3类。
除机器语言外,采用其他程序设计语言编写的程序,计算机都不能直接识别其指令,这种程序称为源程序,必须把源程序翻译成等价的机器语言程序,即计算机能识别的0与1的组合,承担翻译工作的即为语言处理程序。语言处理程序是把源程序翻译成与之等价的用另外一种语言表示的程序。语言处理程序的工作方法有编译和解释两种,分别如图1.6(a)和图1.6(b)所示。
图1.6 编译过程和解释过程示意图
(3)应用软件
应用软件是为计算机在特定领域中的应用而开发的专用软件。应用软件包含的范围极其广泛,可以这样说,哪里有计算机应用,哪里就有应用软件,如办公应用软件 Office、WPS,平面设计软件PhotoShop、Illustrator、CorelDraw,视频处理软件Premiere、After Effects,网站建设软件FrontPage、Dreamweaver,辅助设计软件AutoCAD,三维制作软件3ds Max,多媒体开发软件Authorware、Flash等。
1.2.3 计算机工作原理
计算机的工作过程实际上就是执行指令和程序的过程。
1.指令和程序
指令是能被计算机识别并执行的二进制代码,它完成某一特定的操作。计算机指令通常用二进制代码形式表示,也可以用助记符表达的汇编语言形式表示。
一条指令由操作码和操作数两部分组成。操作码表示计算机要完成的操作,如取数、加法等;操作数表示要操作对象的内容或所在内存单元的地址。
一台计算机所有指令的集合称为该计算机的指令系统。不同类型的计算机,其指令系统的指令条数不同。根据各条指令功能的不同,指令系统可分为以下5种类型。
(1)数据传送:负责数据在内存与中央处理器(Central Processing Unit,CPU)之间的传输。
(2)数据处理:对数据进行算术、逻辑或关系运算。
(3)程序控制:控制程序中指令的执行顺序,如条件转移、无条件转移、调用子程序、返回、停机等。
(4)输入/输出:用来实现外部设备与主机之间的数据传输。
(5)状态管理:对计算机的硬件进行管理等。
程序是指能完成特定功能的一组指令的有序集合。计算机按照程序设定的指令顺序依次执行,并完成对应的一系列操作,这就是程序执行的过程。
2.计算机的工作原理
计算机的工作过程实际上就是快速执行指令的过程。用户首先根据实际任务要求编写相应的程序,通过输入设备将程序和数据送到计算机的外存储器中存储起来;运行该程序后从外存调入内存,计算机从内存中依次取出指令,送往控制器进行分析,然后执行,将最终的运算结果送往输出设备进行输出。
计算机工作过程的实质就是依次执行指令的过程,控制器对各部件的控制都是通过指令实现的。通常一条指令的执行过程如下。
(1)取指令:根据当前控制器中程序计数器的指令起始地址值,从内存中取出指令送往控制器的指令寄存器存储起来。
(2)分析指令:将指令寄存器中存放的指令送往指令译码器,对操作码进行译码,即将指令的操作码转换成相应的控制电位信号,由地址码确定操作数地址。
(3)执行指令:由操作控制部件发出该操作所需要的一系列控制信号,驱动相应部件完成该指令所要求的操作。
(4)程序计数器自动加1:为执行下一条指令做好准备,即形成下一条指令地址。
一般把计算机完成一条指令所花费的时间称为一个指令周期。指令周期越短,指令的执行就越快。通常人们所说的CPU主频或工作频率就反映了指令执行周期的长短。
计算机的工作就是执行程序,即自动、连续地执行一系列指令,而程序开发人员的工作就是编制程序。
1.2.4 计算机系统的主要性能指标
计算机系统的性能指标主要取决于其本质属性,即时空属性。在实际评价一个计算机系统时,要根据其用途有重点地选择有关指标。
(1)主频:机器内部主时钟的运行频率,常以MHz、GHz为单位,其倒数称为时钟周期。时钟周期是计算机内部操作的最小时间单位,计算机内部的每个基本操作在一个或多个时钟周期内完成。一般来说,主频越高,运算速度越快。但机器运行速度不仅取决于主频,而且取决于其他因素。
(2)字长:指CPU一次能处理的数据的位数。通常与CPU的寄存器的位数有关,字长越长,数的表示范围越大,精度也越高。机器字长也会决定计算机的运算速度。
(3)CPU核数:多核CPU可以增强计算机的并行处理能力。目前CPU有双核、4核、8核和12核等多种类型。
(4)运算速度:通常用每秒百万条指令(Million Instructions Per Second,MIPS)、每秒百万次浮点运算(Million Floating-Point Operations Per Second,MFLOPS)或执行一条指令所需的时钟周期数(Cycles Per Instruction,CPI)来衡量。
(5)存储容量:指能存储信息的最大容量,一般包含主存容量和辅存容量,常用单位有MB、GB、TB等。目前主流微机的内存配置为GB数量级,外存配置为TB数量级。