第1章 计算机系统概论
1.1 计算机系统简介
1.1.1 计算机的软硬件概念
- 计算机系统由“硬件”和“软件”两大部分组成。
- 硬件
- 是指计算机的实体部分,它由看得见摸得着的各种电子元器件,各类光、电、机设备的实物组成
- 如主机、外部设备等
- 软件
- 软件看不见摸不着,由人们事先编制的具有各类特殊功能的程序组成。
- 通常把这些程序寄寓于各类媒体(如 RAM ROM、磁带、磁盘、光盘,甚至纸带等),它们通常存放在计算机的主存或辅存内。
- 计算机性能的好坏取决于“软”、“硬"件功能的总和。
- 计算机的软件通常又可以分为两大类
- 系统软件
- 系统软件又称为系统程序,主要用来管理整个计算机系统,监视服务,使系统资源得到合理调度,高效运行。
- 包括:
- 标准程序库
- 语言处理程序(如将汇编语言翻译成机器语言的汇编程序或将高级语言翻译成机器语言的编译程序)
- 操作系统(如批处理系统、分时系统、实时系统)
- 服务程序(如诊断程序、调试程序、连接程序等)
- 数据库管理系统
- 网络软件
- ……
- 系统软件运行过程中不需要人为干预,系统软件位于硬件和软件之间,屏蔽了硬件,使硬件有更高层次的抽象,使用户可用方便地使用计算机
- 应用软件
- 应用软件又称为应用程序,是用户根据任务需要所编制的各种程序
1.1.2 计算机系统的层次结构
- 现代计算机的解题过程
- 由用户用高级语言编写程序(称为源程序),然后将它和数据一起送入计算机内,再由计算机将其翻译成机器能识别的机器语言程序(称为目标程序),机器自动运行该机器语言程序,并将计算结果输出。
- 实际机器M 1 M_1M1(机器语言机器)
- 用户使用二进制代码编写的程序(机器语言程序)可以直接运行的机器
- 虚拟机器(汇编语言机器)
- 可以将用户编写的汇编语言程序翻译为机器语言程序的机器
- 这并不是一台实际的机器,只是可以感到存在的一台具有翻译功能的机器,所以称为虚拟机
- 将汇编语言程序翻译为机器语言程序的程序为汇编程序
- 虚拟机器(高级语言机器)
- 可以将高级语言程序翻译成汇编语言程序或其他中间语言程序,或可以将高级语言程序直接翻译为机器语言程序的机器
- 将高级语言程序翻译为机器语言程序的软件为翻译程序
- 翻译程序分为两种
- 编译程序
- 编译程序是将用户编写的高级语言程序(源程序)的全部语句一次全部翻译成机器语言程序,而后再执行机器语言程序。
- 只要源程序不变,就无须再次进行翻译。
- 解释程序
- 解释程序是将源程序的一条语句翻译成对应于机器语言的一条语句,并且立即执行这条语句,接着翻译源程序的下一条语句,并执行这条语句,如此重复直至完成源程序的全部翻译任务。
- 它的特点是翻译一次执行一次,即使下一次重复执行该语句时,也必须重新翻译。
- 微程序机器M 0 M_0M0
- 将机器M 1 M_1M1中的每一条机器指令翻译为一组微指令,即构成一个微程序
- 微程序机器是对实际机器M 1 M_1M1的分解,即用M 0 M_0M0的微程序解释并执行M i M_iMi的每一条机器指令
- 为了区分实际机器M 1 M_1M1与M 0 M_0M0,将M 1 M_1M1称为传统机器,M 0 M_0M0称为微程序机器
- 虚拟机器(操作系统机器)
- 实际上在实际机器M 1 M_1M1与虚拟机器M 2 M_2M2之间还有一级虚拟机器,它是由操作系统软件构成的。
- 操作系统提供了在汇编语言和高级语言的使用和实现过程中所需的某些基本操作,还起到控制并管理计算机系统全部硬件和软件资源的作用,为用户使用计算机系统提供极为方便的条件。
- 将硬件研究的主要对象归结为传统机器M 1 M_1M1和微程序机器M 0 M_0M0。
- 软件的研究对象主要是操作系统级以上的各级虚拟机。
- 固件:一部分软件功能由硬件来实现,把软件永恒地存于只读存储器中
1.1.3 计算机组成和计算机体系结构
- 计算机体系结构
- 是指那些能够被程序员所见到的计算机系统的属性,即概念性的结构与功能特性。
- 计算机系统的属性通常是指程序员所看到的传统机器的属性,站在不同层次上编程的程序员所看到的计算机属性是各不相同的
- 包括指令集数据类型、存储器寻址技术、I/O机理等,大都属于抽象的属性。
- 计算机组成
- 是指如何实现计算机体系结构所体现的属性,它包含了许多对程序员来说是透明的硬件细节。
- 计算机体系结构指出计算机系统具有哪些属性,如具有哪些指令;计算机组成实现计算机体系结构指出的计算机系统具有的属性,如每条指令如何实现。
1.2 计算机的基本组成
1.2.1 冯·诺依曼计算机的特点
- ENIAC:电子数字积分计算机,世界上第一台计算机
- 冯·诺依曼在研究EDVAC 机时提出了“存储程序”的概念。
- 以“存储程序”概念为基础的各类计算机通称为冯·诺依曼机。
- 冯·诺依曼计算机的特点:
- 计算机由运算器、存储器、控制器、输人设备和输出设备五大部件组成。
- 指令和数据以同等地位存放于存储器内,并可按地址寻访。
- 指令和数据均用二进制数表示。
- 指令由操作码和地址码组成
- 操作码用来表示操作的性质,即执行该指令需要完成什么操作;
- 地址码用来表示操作数在存储器中的位置,即参加运算的数在存储器内的位置。
- 机器指令的操作码和地址码采用0、1代码的组合表示
- 存储程序,程序存储在存储器中,指令在存储器内按顺序存放。通常,指令是顺序执行的,在特定条件下,可根据运算结果或根据设定的条件改变执行顺序。
- 机器以运算器为中心,输人输出设备与存储器间的数据传送通过运算器完成。
1.2.2 计算机的硬件框图
- 典型的冯·诺依曼计算机是以运算器为中心的
- 现代的计算机以存储器为中心
- 各部件的功能
- 运算器:
- 用来完成算术运算和逻辑运算,并将运算的中间结果暂存在运算器内。
- 运算器的核心为ALU(算术逻辑单元),能够完成算术运算和逻辑运算
- 存储器
- 用来存放数据和程序。
- 存储器分为主存储器和辅助存储器
- 主存储器:用来存放程序和数据,可以直接于CPU交换信息
- 辅助存储器,简称辅存,又称外存
- 控制器
- 用来控制、指挥程序和数据的输人、运行以及处理运算结果。
- 控制器的核心为CU(控制单元)
- 用于解释存储器中的指令,并发出各种操作命令来执行指令
- 输人设备
- 用来将人们熟悉的信息形式转换为机器能识别的信息形式
- 输出设备
- 可将机器运算结果转换为人们熟悉的信息形式
- 计算机的五大部件(又称五大子系统)在控制器的统一指挥下,有条不紊地自动工作
- 由于运算器和控制器在逻辑关系和电路结构上联系寸分紧密,这两大部件往往集成在同一芯片上,通常将它们合起来统称为中央处理器(CPU)。
- ALU和CU是CPU的核心部件
- 把输入设备与输出设备简称为I/O设备
- I/O设备受CU控制,完成相应的输入输出操作
- 现代计算机可认为由三大部分组成:CPU、I/O设备及主存储器
- CPU与主存储器合起来又可称为主机,I/O设备又可称为外部设备。
1.2.3 计算机的工作步骤
- 用计算机解决一个实际问题通常包含两大步骤
- 上机前的准备
- 建立数学模型,根据问题确定数学模型
- 确定计算方法,计算机并不一定完全支持数学方程中的运算,需要将其转为适合计算机的加减乘除等运算
- 编制解题程序
- 上机运行
- 细化的计算机组成框图
- 主存储器
- 主存储器(简称主存或内存)包括存储体M、各种逻辑部件及控制电路等。
- 存储体由许多存储单元组成,每个存储单元又包含若干个存储元件(或称存储基元、存储元),每个存储元件能寄存一位二进制代码“0”或“1”。
- 一个存储单元可存储一串二进制代码,称这串二进制代码为一个存储字,这串二进制代码的位数称为存储字长。
- 一个存储字可代表一个二进制数,也可代表一串字符
- 赋予每个存储单元一个编号,称为存储单元的地址号
- 主存的工作方式就是按存储单元的地址号来实现对存储字各位的存(写人)取(读出)。这种存取方式称为按地址存取方式,即按地址访问存储器(简称访存)。
- 为了能实现按地址访问的方式,主存中还必须配置两个寄存器MAR和MDR。
- MAR是存储器地址寄存器
- 用来存放欲访问的存储单元的地址,其位数对应存储单元的个数
- MDR是存储器数据寄存器
- 用来存放从存储体某单元取出的代码或者准备往某存储单元存入的代码,其位数与存储字长相等。
- 存储字长、指令字长、数据字长三者可各不相同,但它们必须是字节的整数倍。
- 运算器
- 运算器最少包括3个寄存器(现代计算机内部往往设有通用寄存器组)和一个算术逻辑单元(ALU)。
- ACC为累加器
- MQ为乘商寄存器
- X为操作数寄存器
- 这3个寄存器在完成不同运算时,所存放的操作数类别也各不相同。
- 不同机器的运算器结构是不同的
- M表示存储器的任一地址号,[M]表示对应M地址号单元中的内容;X表示X寄存器,[X]表示X寄存器中的内容;ACC表示累加器,[ACC]表示累加器中的内容;MQ表示乘商寄存器,[MQ]表示乘商寄存器中的内容
- 控制器
- 控制器是计算机的神经中枢,由它指挥各部件自动、协调地工作。
- 完成一条指令操作的具体过程
- 控制器首先要命令存储器读出一条指令,称为取指过程(也称取指阶段)。
- 对这条指令进行分析,指出该指令要完成什么样的操作,并按寻址特征指明操作数的地址,称为分析过程(也称分析阶段)。
- 根据操作数所在的地址以及指令的操作码完成某种操作,称为执行过程(也称执行阶段)。
- 通常,完成一条指令操作需要取指、分析和执行3个阶段。
- 控制器由程序计数器(PC)、指令寄存器(IR)以及控制单元(CU)组成。
- PC用来存放当前欲执行指令的地址,它与主存的MAR之间有一条直接通路,且具有自动加1的功能,即可自动形成下一条指令的地址。
- IR用来存放当前的指令,IR的内容来自主存的MDR。
- IR中的操作码(OP(IR))送至CU,记作 OP(IR)→CU,用来分析指令;
- 其地址码(Ad(IR))作为操作数的地址送至存储器的MAR,记作Ad(IR)→MAR。
- CU用来分析当前指令所需完成的操作,并发出各种微操作命令序列,用以控制所有被控对象。
- I/O
- I/O子系统包括各种I/O设备及其相应的接口。
- 每一种I/O设备都由I/O接口与主机联系,它接收CU发出的各种控制命令,并完成相应的操作。
1.3 计算机硬件的主要技术指标
1.3.1 机器字长
- 机器字长是指CPU一次能处理数据的位数,通常与CPU的寄存器位数有关。
- 字长越长,数的表示范围越大,精度也越高。
- 机器的字长直接影响加法器(或ALU)、数据总线以及存储字长的位数。
1.3.2 存储容量
- 存储器的容量包括
- 主存容量
- 主存容量是指主存中存放二进制代码的总位数
- 主存容量 = 存储单元个数 x 存储字长
- MAR的位数反映了存储单元的个数,MDR的位数反映了存储字长。
- 现代计算机中常以字节数来描述容量的大小,因一个字节已被定义为8位二进制代码,故用字节数便能反映主存容量。
- 辅存容量
- 辅存容量通常用字节数来表示
1.3.3 运算速度
- 吉普森(Gibson)法
- 它综合考虑每条指令的执行时间以及它们在全部操作中所占的百分比
- T m T_mTm为机器运行速度;f i f_ifi为第i种指令占全部操作的百分比数;t i t_iti为第i种指令的执行时间。
- 吉普森法计算出来的机器运行速度为各种指令执行时间的加权平均值
- MIPS( Million Instruction Per Second,百万条指令每秒 )
- 单位时间内执行指令的平均条数
- CPI( Cycle Per Instruction )
- 执行一条指令所需的时钟周期(机器主频的倒数)
- FLOPS( Floating Point Operation Per Second,浮点运算次数每秒)
- 单位时间内执行浮点运算的次数
1.4 本书结构
- 略
第2章 计算机的发展及应用
- 第一代计算机:电子管计算机
- 第一台计算机:电子数字积分计算机 ENIAC
- EDVAC:首次采用存储程序概念的计算机
- 第二代计算机:晶体管计算机
- 第三代计算机:集成电路计算机
- 第四代计算机:超大规模集成电路计算机