计算机组成原理
第一章 计算机系统概论 1.1 计算机的分类和应用 1.2 计算机的硬件 1.3 计算机的软件 1.4 计算机系统的层次结构
1.1 计算机的分类和应用 1.1.1 计算机的分类 电子计算机从总体上来说分为两大类: 电子模拟计算机: 电子模拟计算机的特点是 数值由连续量来表示,运算 过程也是连续的。 电子数字计算机: 电子数字计算机的主要特 点是按位运算,并且不连续 地跳动计算。
数字计算机与模拟计算机的主要区别: 比较内容 数字计算机 模拟计算机 数据表示方式 数字0和1 电压 计算方式 数字计算 电压组合和测量值 控制方式 程序控制 盘上连线 精度 高 低 数据存储量 大 小 逻辑判断能力 强 无
电子数字计算机是以近似于人类的“思维过程”来进行工作的,所以有人把它叫做电脑。它的发明和发展是20世纪人类最伟大的科学技术成就之一,也是现代科学技术发展水平的重要标志。 数字计算机又可分为专用计算机和通用计算机。专用和通用是根据计算机的效率、速度、价格、运行的经济性和适应性来划分的。专用机是最有效、最经济和最快速的计算机,它是针对某一任务设计的计算机,但是它的适应性很差。通用机适应性很大,但是牺牲了效率、速度和经济性。
通用计算机又分巨型机、大型机、中型机、小型机、微型机和单片机六类,见图所示。
它们的区别在于体积、简易性、功率损耗、性能指标、数据存储容量、指令系统规模和机器价格。巨型计算机主要用于科学计算,其运算速度在每秒一万亿次以上,数据存储容量很大,结构复杂,价格昂贵。单片计算机是只用一片集成电路做成的计算机,体积小,结构简单,性能指标较低,价格便宜。介于巨型机和单片机之间的是大型机、中型机、小型机和微型机,它们的结构规模和性能指标依次递减。 随着超大规摸集成电路的迅速发展,今天的小型机可能是明天的微型机,而今天的微型机可能是明天的单片机。
★ 科学计算:科学研究和工程计术计算领域,是计算机应用最早的领域,也是应用得较广泛的领域。 1.1.2 计算机的应用 计算机所以迅速发展,其生命力在于它的广泛应用。计算机的应用范围几乎涉及人类社会的所有领域。下面归纳成六个方面来叙述: ★ 科学计算:科学研究和工程计术计算领域,是计算机应用最早的领域,也是应用得较广泛的领域。 ★ 自动控制和测量:自动控制是涉及面极广的一门学科,应用于工业、农业、科学技术、国防以至我们日常生活等。
★ 信息处理:计算机发展初期,仅仅用于数值计算。后来应用范围逐渐发展到非数值计算领域,可用来处理文字、表格、图象、声音等各类问题。商务处理: 管理应用: ★ 教育和卫生:计算机被誉为“教育史上的第四次革命”:较多的应用是CAI(计算机辅助教学)。 ★ 家用电器: 21世纪,国际互联网络和计算机控制的设备将广泛应用于家庭。 ★ 人工智能:人工智能,又称“智能模拟”,简单地说,就是要使计算机能够模仿人的高级思维活动。
1.2 计算机的硬件 1.2.1 数字计算机的硬件组成 数字计算机主要组成部分: 1.运算器 2.存储器 3.控制器 4.适配器与输入输出设备
1.运算器: 运算器能进行加、减、乘、除等算术运算,还可进行逻辑运算。考虑到电子器件的特性,计算机中通常采用二进制数。这是因为二进制数的运算规律非常简单,在电子线路中 比较容易实现,而且设备也最省,其示意图如下:
2.存储器: 存储器的功能:保存或“记忆”计算机的有关信息。 存储器地址: 存储器是由许多存储单元组成,每个存储单元的编号,称为地址。 存储单元: 由多个触发器构成的存储位,称为一个存储单元,通常由8个组成。 存储位: 存储的是0或1表示的二进制代码。 存储容量: 存储器所有存储单元的总数。通常用单位“KB、MB”表示,如64KB,128KB。 外存储器: 计算机中又配备的存储容量更大的磁盘存储器、光盘存储器等。相对而言,半导体存储器称为内存储器,简称内存。
3.控制器 控制器是计算机中发号施令的部件,它控制计算机的各部件有条不紊地进行工作。具体的讲,控制器的任务是从内存中取出操作指令加以分析,然后执行某种操作: (1) 计算程序 运算器只能完成加、减、乘、除四则运算及其他一些辅助操作。对于比较复杂的算题,计算机在运算前必须化成一步一步简单的加、减、乘、除等基本操作来做。每一个基本操作就叫做一条指令,而解算某一问题的一串指令序列,叫做该问题的计算程序,简称为程序。
(2) 指令的形式 每条指令应当明确告诉控制器,从存储器的那个单元取数,并进行何种操作。 指令的内容由两部分组成,即操作的性质和操作的地址。前者称为操作码,后者称为地址码。 操作码 地址码 操作码: 指出指令所进行的操作,如加、减、乘、除、取数、存数等等; 地址码: 参加运算的数据应从存储器的哪个单元取,运算的结果应存到哪个单元。
表1.3 指令的操作码定义 指令 操作码 加法 001 减法 010 乘法 011 除法 100 取数 101 存数 110 打印 111 停机 000
(3) 控制器的基本任务 计算机进行计算时,指令必须是按一定的顺序一条接一条地进行。控制器的基本任务,就是按照计算程序所排的指令序列,先从存储器取出一条指令放到控制器中,对该指令的操作码由译码器进行分析判别,然后根据指令性质,执行这条指令,进行相应的操作。接着从存储器取出第二条指令,在执行这第二条指令。依次类推,通常把取指令的一段时间叫做取指周期,而把执行指令的一段时间叫做执行周期。因此控制器反复交替地处在取指周期与执行周期之中。每取出一条指令,控制器中的指令计数器就加1,从而为取下一条指令做好准备,这也就是指令为什么在存储器中顺序存放的原因。
(4) 指令流和数据流 由于计算机件使用0和1两个二进制数字,所以使用“位”(bit)作为数字计算机的最小信息单位。CPU向存储器送入或从存储器取出信息时,用B(字节)和W(字)等较大的信息单位来工作。一个“字节”由8位二进制信息组成,而一个“字”则至少由一个以上的字节组成。通常把组成一个字的二进制位数叫做字长。 计算机字既可以代表指令,也可以代表数据。如果某字代表要处理的数据则称为数据字;如果某字为一条指令则称为指令字。 指令和数据统统放在内存中,从形式上看它们都是二进制数码。一般来讲,在取指周期中从内存读出的信息是指令流,它流向控制器;而执行周期中从内存读出的信息流是数据流,它由内存流向运算器。
4.适配器与输入输出设备 目前常用的输入设备是键盘、鼠标器、数字扫描仪等。它们的作用是把人们所熟悉的某种信息形式变换为机器内部所能接收和识别的二进制信息形式。输出设备的作用是把计算机处理的结果变换为人或其他机器所能接收和识别的信息形式。如激光印字机、绘图仪、CRT显示器等。计算机的输入/输出设备通常称为外围设备。由于种类繁多且速度各异,因而它们不是直接地同高速工作的主机相连接,而是通过适配器部件与主机相连接。适配器的作用相当与一个转换器,它可以保证外围设备用计算机所要求的形式发送或接受信息。计算机系统中还必须有总线。系统总线是构成计算机系统的骨架,是多个系统部件之间进行数据传送的公共通路。借助系统总线,计算机在各系统部件之间实现传送地址、数据和控制信息的操作。
1.2.2 计算机系统结构的过去和未来 (1) 1946年开始的第一代电子管计算机: 1.2.2 计算机系统结构的过去和未来 自1946年在美国宾夕法尼亚大学制成的世界上第一台电子数字计算机以来,计算机的发展大致经历了五代的变化: (1) 1946年开始的第一代电子管计算机: 计算机运算速度一般为每秒几千次至几万次,体积庞大,成本很高,可靠性较底,在此期间,形成了计算机的基本体系,确定了程序设计的基本方法,数据处理机开始得到应用。 (2) 1958年开始的第二代晶体管计算机: 运算速度提高到几万次至几十万次,可靠性提高,体积缩小,成本降低,工业控制机开始得到应用。
可靠性更进一步提高,体积更进一步缩小,成本更进一步降低,速度提高到每秒几百万次至几千万次。有机片大规模集成电路组成的微型机开始出现。 (3) 1965年开始第三代中小规模集成电路计算机: 可靠性进一步提高,体积进一步缩小,成本进一步下降,运算速度提高到几十万次至几百万次。在此期间,形成机种多样化,生产系列化,使用系统化,小型计算机开始出现。 (4) 1971年开始的第四代大规模集成电路计算机: 可靠性更进一步提高,体积更进一步缩小,成本更进一步降低,速度提高到每秒几百万次至几千万次。有机片大规模集成电路组成的微型机开始出现。
(5) 1986年开始的第五代巨大规模集成电路计算机: (5) 1986年开始的第五代巨大规模集成电路计算机: 运算速度提高到每妙几亿次至上百亿次。由一片巨大规模集成电路实现的单片机开始出现。 总之,从1946年计算机诞生以来,大约每隔五年运算速度提高10倍,可靠性提高10倍,成本降低10倍,体积缩小10倍。而70年代以来,计算机的生产数量每年以25%的速度递增。 随着社会需求和微电子技术的不断发展,计算机的系统结构仍在继续发展,其发展趋势是: 将进入以通信为中心的体系结构。 计算机智能化将进一步发展,进入知识处理阶段。 不仅用多处理机技术来实现并行计算机,而且会出现计算机的动态结构。 多媒体技术将有重大突破和发展。
1.3 计算机的软件 1.3.1 软件的组成和分类 计算机是由运算器、存储器、控制器、适配器、总线和输入/输出设备组成的。这些部件或设备都是由元件构成的有形物体,因而称为硬件或硬设备。然而计算机只有硬件,它仍是个“死”东西。那么计算机靠什么东西才能变“活”,从而高速自动地完成各种运算呢?这就是我们前面讲过的计算程序。因为它是无形的东西,所以称为软件或软设备。比方说,用算盘进行运算,算盘本身就是硬件,而运算法则和解题步骤等就是软件。 事实上,利用电子计算机进行计算、控制或作其他工作时,需要有各种用途的程序。
因此,凡是用于一台计算机的各种程序,统称为这台计算机的程序或软件系统。 计算机软件一般分为两大类:一类叫系统程序,一类叫应用程序 系统程序用来简化程序设计及使用方法,提高计算机的使用效率,发挥和扩大计算机的功能及用途。 它包括以下四类: 各种服务性程序,如诊断程序排错程序等; 语言程序,如汇编程序编译程序解释程序等; 操作系统; 数据库管理系统 应用程序是用户利用计算机来解决某些问题所编制的程序,如工程设计程序、数据处理程序、自动控制程序、企业管理程序、情报检索程序、科学计算程序等等。随着计算机的广泛应用,这类程序的种类越来越多。
1.3.2 软件的发展演变 如同硬件一样,计算机软件也是在不断发展的,下面以系统程序为例,简要说明软件的发展演变过程。 1. 目的程序 早期计算机中,人们直接用机器语言编写程序,这种编写程序的方式称为手编程序。这种用机器语言书写的程序,计算机完全可以识别并能执行,所以又叫做目的程序。但是用机器语言编写程序很繁琐,又耗费大量的人力和时间,容易出错,出错后寻找错误也相当费事,这就大大限制了计算机的使用。
2. 汇编程序 为了编写程序方便翻译和提高机器的使用效率,人们用一些约定的文字、符号和数字按规定的格式来表示各种不同的指令,然后再用这些特殊符号表示的指令来编写程序,这就是所谓的汇编语言。借助于汇编程序,计算机本身自动地把符号语言表示的程序(称为汇编源程序)翻译成用机器语言表示的目的程序。
3. 源程序 为了进一步实现程序自动化和便于程序交流,使不熟悉具体计算机的人也能很方便地使用计算机,人们又创造了各种接近于数学语言的算法语言。 算法语言是指按实际需要规定好的一套基本符号以及由这套基本符号构成程序的规则。比较接近数学语言,直观通用,与具体机器无关,只要稍加学习就能掌握,便于推广使用计算机。 用算法语言编写的程序称为源程序,这种源程序是不能由机器直接识别和执行的,必须给计算机配备一个即懂算法语言又懂机器语言的翻译,才能把源程序翻译为机器语言。
翻译通常采用下面两种方法: 1.计算机配置一套用机器语言写的编译程序,它把源程序翻译成目的程序,然后机器执行目的程序,得出计算结果。但由于目的程序一般不能独立运行,还需要一种叫做运行系统的辅助软件来帮助。通常,把编译程序和运行系统和称为编译系统。 2.使源程序通过所谓的解释系统进行解释执行,即逐个解释并立即执行源程序的语句,它不是编出目的程序后再执行,而是直接逐一解释语句并得出计算结果。
4. 操作系统 为了摆脱用户直接使用机器并独占机器这种情况,依靠计算机来管理自己和管理用户,于是人们又创造出一类程序,叫做操作系统。它是随着硬件和软件不断发展而逐渐形成的一套软件系统,用来管理计算机资源(如处理器、内存、外部设备和各种编译、应用程序)和自动调度用户的作业程序,而使多个用户能有效地共用一套计算机系统。 根据不同使用环境要求,操作系统目前大致分为批处理操作系统、分时操作系统、网络操作系统、实时操作系统等多种。
5. 数据库管理系统 随着计算机在信息处理、情报检索及各种管理系统中应用的发展,要求大量处理某些数据,建立和检索大量的表格。这些数据和表格按一定的规律组织起来,使得处理更方便,检索更迅速,用户使用更方便,于是出现了数据库。所谓数据库就是实现有组织地、动态地存储大量相关数据,方便多用户访问的计算机软、硬件资源组成的系统。数据库和数据库管理软件一起,组成了数据库管理系统。
1.4 计算机系统的层次结构 1.4.1 多级组成的计算机系统 1.4 计算机系统的层次结构 1.4.1 多级组成的计算机系统 1. 微程序设计级 这是一个实在的硬件级,他由机器硬件直接执行微命令。如果某一个应用程序直接用微命令来编写,那么可在这一级上运行应用程序。 2. 一般机器级 也称为机器语言级,由微程序解释机器指令系统。这一级也是硬件级。 3. 操作系统级 由操作系统程序实现。这些操作系统由机器指令和广义指令组成,这些广义指令是操作系统定义和解释的软件指令,所以这一级也称为混合级。
4. 汇编语言级 给程序人员提供一种符号形式语言,以减少程序编写的复杂性。这一级由汇编程序支持和执行。如果应用程序采用汇编语言编写,则机器必须要有这一级的功能;如果应用程序不采用汇编语言编写,则这一级可以不要。 5. 高级语言级 面向用户,为方便用户编写应用程序而设置的。这一级由各种高级语言编译程序支持和执行。
1.4.2 软件与硬件的逻辑等价性 随着大规模集成电路技术的发展和软件硬化的趋势,计算机系统软、硬件界限已经变得模糊了。因为任 1.4.2 软件与硬件的逻辑等价性 随着大规模集成电路技术的发展和软件硬化的趋势,计算机系统软、硬件界限已经变得模糊了。因为任 何操作可以由软件来实现,也可以由硬件来实现;任何指令的执行可以由硬件完成,也可以由软件来完成。对于某一功能采用硬件方案还是软件方案,取决于器件价格、速度、可靠性、存储容量、变更周期等因素。 当研制一台计算机的时候,设计者必须明确分配每一级的任务,确定哪些情况使用硬件,哪些情况使用软件,而硬件始终放在最低级。 就目前而言,一些计算机的特点是,把原来明显地在一般机器级通过编制程序实现的操作,如整数乘除法指令、浮点运算指令、处理字符串指令等等,改为直接由硬件完成。
总之,随着大规模集成电路和计算机系统结构的发展,实体硬件机的功能范围不断在扩大。第一级和第二级的边界范围,要向第三级乃至更高级扩展。这是因为容量大、价格低、体积小、可以改写的只读存储器提供了软件固化的良好物质手段。现在已经可以把许多复杂的、常用的程序制作成所谓固件。就它的功能来说,是软件;但从形态来说,又是硬件。其次,目前在一片硅单晶芯片上制作复杂的逻辑电路已经是实际可行的,这就为扩大指令的功能提供了物质基础,因此本来通过软件手段来实现的某种功能,现在可以通过硬件来直接解释执行。进一步的发展,就是设计所谓面向高级语言的计算机。这样的计算机,可以通过硬件直接解释执行高级语言的语句而不需要先经过编译程序的处理。传统的软件部分,今后完全有可能“固化”甚至“硬化”。
第一章 小结 通用计算机又分为巨型机、大型机、中型机、小型机、微型机、单片机六类,其结构复杂性、性能、价格、依次递减。 第一章 小结 习惯上所称的“电子计算机”是指现在广泛应用的电子数字计算机,它分为专用计算机和通用计算机两大类。专用和通用是根据计算机的效率、速度、价格、运行的经济性和适应性来划分的。 通用计算机又分为巨型机、大型机、中型机、小型机、微型机、单片机六类,其结构复杂性、性能、价格、依次递减。 计算机的生命在于它的广泛应用,应用的范围几乎涉及人类社会的所有领域。归纳起来,在科学计算、自动控制、测量与测试、信息处理、教育卫生、家庭电器、人工智能等领域的应用成就最为突出。
计算机的硬件是由有形的电子器件等构成的,它包括运算器、存储器、控制器、适配器、输入输出设备。传统上将运算器和控制器称为CPU,而将CPU和存储器称为主机。存储程序并按地址顺序执行,这是冯·诺依曼型计算机的工作原理,也是计算机自动化工作的关键。 计算机的软件是计算机系统结构的重要组成部分,也是计算机不同于一般电子设备的本质所在。计算机软件一般分为系统程序和应用程序两大类。系统程序用来简化程序设计,简化使用方法,提高计算机的使用效率,发挥和扩大计算机的功能和用途,它包括:(1)各种服务程序,(2)语言类程序,(3)操作系统,(4)数据库管理系统。应用程序是针对某一应用课题领域开发的软件。 计算机系统是一个又硬件、软件组成的多级层次结构,它通常由微程序级、一般机器级、操作系统级、汇编语言级、高级语言级组成,每一级上都能进行程序设计,且得到下面各级的支持。
作业: 第一章: 5、8、9