计算机系统概论
计算机系统简介
计算机系统由“硬件”和“软件”两大部分组成
- 硬件:指计算机的实体部分,由各种电子元器件组成
- 软件:分为系统软件和应用软件
系统软件:又称系统程序,主要用来管理整个计算机系统,监视服务,使系统资源得到合理调度,高效运行,例如:标准程序库,操作系统,数据库管理系统,网络软件等
应用软件:又称应用程序,是用户根据任务需要所编制的各种程序,例如数据处理程序,过程控制程序
计算机系统的层次结构
- 实际机器包括传统机器和微程序机器
- 翻译程序有两种:
(1)编译程序: 高级语言一次全部翻译成机器语言程序, 而后再执行机器语言程序
(2)解释程序是将源程序的一条语句翻译成对应的机器语言的一条语句,并立即执行这条语句
计算机体系结构是指那些能够被程序员所见到的计算机系统的属性, 即概念性的结构与功能特性. ( 指令集, 数据类型, 存储器寻址技术, I/O 机理等 )
计算机组成是指如何实现计算机体系结构所体现的属性, 它包含了很多对于程序员来说是透明的硬件细节
p.s. 指令系统体现了机器的属性, 属于计算机结构问题
指令的实现, 即如何取指令, 分析指令属于计算机组成问题
计算机的基本组成
冯. 诺依曼计算机: 以“存储程序”概念为基础, 以运算器为核心
计算机由运算器 , 存储器, 控制器, 输入设备和输出设备五大部件组成
现代计算机已转化为以存储器为核心:
算术逻辑单元( Arithmetic, ALU )简称算逻部件, 用来完成算术逻辑运算. 控制单元(Control Unit, CU)用来解释存储器中的指令, 并发出各种操作命令来执行指令. ALU和CU是CPU的核心部件.
运算器和控制器合起来统称为*处理器(Central Processing Unit, CPU), 把输入设备和输出设备简称I/O设备(Input/Output Equippment)
现代计算机可认为由三大部分组成:CPU, I/O设备以及主存储器( Main Memory, MM )
CPU和主存储器合起来可以称为主机, I/O设备可称为外部设备
计算机的工作步骤
主存储器:
一个存储单元可存储一串二进制代码,这串二进制代码为一个存储字, 这串二进制代码的位数称为存储字长
主存的工作方式就是按存储单元的地址号来实现对存储字各位的存(写入)、取(读出)。这种存取方式称为按地址存取方式,即按地址访问存储器( 简称访存 )
为此, 主存中还必须配置两个寄存器MAR和MDR:
MAR(Memory Address Register): 存储器地址寄存器,存放欲访问的存储单元的地址,其位数对应存储单元的个数
e.g MAR为10位,则存储单元个数为:
MDR(Memory Data Register): 存储器数据寄存器,存放从存储体某单元取出的代码或者准备往某存储单元存入的各种控制信号运算器
运算器至少包括三个寄存器和一个算术逻辑单位(ALU)
ACC ( Accumulator ): 累加器
MQ ( Multiplier-Quotient Register ): 乘商寄存器
X 为操作数寄存器-
控制器
控制器是计算机的神经中枢,由它指挥各部件自动、协调地工作。
分为以下三个步骤:
- 取指过程:命令存储器读出一条指令
- 分析过程:对这条指令进行分析,指出该指令要完成什么样的操作,并按寻址特征指明操作数的地址
- 执行过程:根据操作数所在的地址以及指令的操作码完成某种操作
控制器由程序计数器(Program Counter, PC)、指令寄存器(Instruction Register, IR)、以及控制单元(CU)组成:
- PC: 用来存放当前欲执行指令的地址,它与主存的MAR之间有一条直接通路且具有自动加1的功能,即自动形成下一条指令的地址
-
IR: 用来存放当前的指令,IR的内容来自主存的MDR
IR中的操作码(OP(IR))送至CU, 记作OP(IR)->CU;
IR中的地址码(Ad(IR))作为操作数的地址送至存储器的MAR, 记作Ad(IR)->MAR - CU:用来分析当前指令所需完成的操作,并发出各种微操作命令序列, 用以控制所有被控制对象.
4.I/O
I/O子系统包括I/O设备及其相应的接口.
计算机硬件的主要指标
机器字长
机器字长是指CPU一次能处理数据的位数,通常与CPU的寄存器位数有关存储容量
存储器的容量应该包括主存容量和辅存容量.
存储容量 = 存储单元个数 * 存储字长运算速度
吉普森 (Gibson) 法, 它综合考虑每条指令的执行时间以及它们在全部操作中所占的百分比,即:
现在机器的运算速度普遍采用单位时间内执行指令的平均条数拉来衡量:- MIPS( Million Instruction Per Second ): 百万条指令每秒
- CPI( Cycle Per Instruction ): 执行一条指令所需的时钟周期
- FLOPS(Floating Point Operation Per Second): 浮点运算次数每秒