第1章 计算机系统概论
1.1 计算机系统介绍
1.1.1 计算机的软硬件概念
计算机系统由"软件"和"硬件“两大部分组成。
所谓硬件,是指计算机的实体部分,它由各种看的见摸得着的各种电子元器件,各类光、电、机设备的实物组成,如主机、外部设备等
所谓软件,它看不见,摸不着,由人们事先编程的具有各类特殊功能能的程序组成。通常把这些话层序寄寓于各类媒体(如RAM、ROM、磁带、光盘、甚至纸带等),它们通常储存在计算机的主存或者辅存内
计算机的软件通常又可以分为两大类:系统软件和应用软件。
系统软件又称为系统程序,主要用来管理整个计算机系统,监视服务,使系统资源得到合理调度,高效运行
应用软件又称为应用程序,它是用户根据任务需要所编制的各种程序
1.1.2 计算机系统的层次概念
这里不做详细介绍,仅介绍"多层次结构的计算机系统"
虚拟机器M4(高级语言机器) | 用编程程序翻译成汇编语言程序 |
虚拟机器M3(汇编语言机器) | 用汇编语言程序翻译成机器语言程序 |
虚拟机器M2(操作系统机器) | 用机器语言解释操作系统 |
虚拟机器M1(机器语言机器) | 用微程序解释机器指令 |
虚拟机器M0(微指令系统) | 由硬件直接执行微指令 |
1.1.3 计算机组成和计算机体系结构
计算机体系结构是指那些能够被程序员所见到的计算机系统的属性,即概念性的结构与功能特性
总结下来,计算机体系结构就是我们直观能看到的属性,如机器的指令集、数据类型、寻址技术
计算机组成是指如何实现计算机体系结构所体现的属性,它包含了许多对程序员来说是透明的硬件细节
总结下来,计算机组成就是上述提到过的--"概念性的结构与功能特性"的更深一步--即如何实现(探讨取指令、分析指令、取操作数、运算、送结果等操作的本质过程)
1.2 计算机的基本构成
1.2.1 冯.诺依曼计算机的特点
<1>计算机由运算器、存储器、控制器、输入设备和输出设备五大部件组成
<2>指令和数据以同等地位存放于存储器内,并可按地址寻访
<3>指令和数据均用二进制数表示
<4>指令由操作码和地址码组成,操作码用来表示操作的性质,地址码用来表示操作数在存储器中的位置
<5>指令在存储器内按顺序存放。通常,指令是顺序进行的,在特定条件下,可根据运行结果或根据设定的条件改变执行顺序
<6>机器以运算器为中心,输入输出设备与存储器间的数据传送通过运算器完成
1.2.2 计算机的硬件框图
1.2.3 计算机的工作步骤
1.上机前的准备
(1)建立数学模型:将抽象的模型具体化为数学问题
(2)确认计算方法:
(3)编制解题过程:在这里涉及到程序的简化--计算机一次能够计算的次数有限,所以要在有限的算力下解决尽可能多的问题
2.计算机的工作过程
(1)主存储器:主存的工作方式就是按存储单元的地址号来实现对存储字各位的存(写入)、取(读出)
主存储器(简称主存或内存)包括存储体M、各种逻辑部件及控制电路等。
存储体由许多存储单元组成,每个存储单元又包含若干个存储元件(或称存储基元、存储元),每个存储元件能寄存一位二进制代码"0"或"1"
可见,一个存储单元可以存储一串二进制代码,称这串二进制代码为一个存储字,这串二进制代码的位数称为存储字长。(存储子长一般为2的倍数)
一个存储字可代表一个二进制数,也可表示一串字符,如存储字"0011011001111101"
总结:存储元件->存储单元(内部含有存储字,存储字内部含有一串二进制代码)->存储体
实际上为了实现按地址访问的方式,主存中还必须配置两个寄存器--MAR与MDR
MAR:存储器地址寄存器
用来存放预访问的存储的单元的地址,其位数对应存储单元的个数(如MAR有十位,则有1024个存储单元,记为1k)
MDR:存储器数据寄存器
用来存放预访问的存储的单元的地址,其位数对应存储单元的个数(如MAR有十位,则有1024个存储单元,记为1k)
(2)运算器
运算器最少包括3个寄存器和一个算术逻辑单元。
其中ACC为累加器,MQ为乘商寄存器,X为操作数寄存器
(3)控制器
控制器由程序计数器(简称PC)、指令寄存器(简称IR)以及控制单元(简称CU)组成
PC用来存放当前预执行指令的地址,它与主存的MAR之间有一条直接通路,且具有自动加一的功能--用来生成下一条指令的地址;
IR用来存放当前的指令,IR的内容来自主存的MDR
CU用来分析当前指令所需要执行的指令,并发出一系列微指令,用以控制所有受控对象
经过三个阶段:
<1>取指过程(也被称为取指阶段 )
<2>分析过程(也称为分析阶段)
<3>执行过程(也称为执行过程)
(4)I/O
I/O子系包含各种I/O设备以及相应的接口
1.3 计算机的主要技术指标
1.3.1 机器字长
机器字长是指CPU一次能处理数据的位数,通常与CPU的寄存器位数有关(且机器字长越长,相应的硬件的造价就越高)
1.3.2 存储容量
存储器的容量应该包括主存容量和辅存容量
主存容量(运行内存):
主存容量是指主存中存放的二进制代码的总位数,即
存储容量=存储单位个数*存储字长
辅存容量(硬盘容量):
辅存容量通常用字节数来表示
1.3.4 运算速度
普通法:完成一次加法或者乘法所需的事件来衡量运算速度
吉普森法:综合考虑每条指令的执行时间以及他们在所有操作中所占的百分比
现在机器的运算速度普遍采用单位时间内执行指令的平均条数来衡量看,并用MIPS(百万条指令每秒)作为计量单位
CPI:执行一条指令所需的时钟周期(机器主频的倒数)
FLOATS:浮点运算次数每秒