计算机的基本组成
my blog:Something
冯·诺伊曼计算机
冯·诺伊曼计算机的特点:
- 由运算器、存储器、控制器、输入设备、输出设备五大组件组成
- 指令和数据以同等地位存放于存储器中,并可按地址寻访
- 指令和数据均用二进制表示
- 指令由操作码和地址码组成,操作码表示操作性质,地址码表示操作数在存储器的位置
- 指令在存储器中按顺序存放,但可以改变执行顺序
- 机器以运算器为中心,输入输出设备与存储器间的数据传送通过运算器完成(现代计算器中心不是运算器,是存储器)
硬件框图
- 典型的冯诺依曼计算机:以运算器为中心
- 现代的计算机:以存储器为中心
各部件的功能:
- 运算器:完成算术运算和逻辑运算,并将运算的中间结果暂存在运算器内
- 存储器:存放数据和程序
- 控制器:控制、指挥程序和数据的输入、运行及处理运算结果
- 输入设备:将人们熟悉的信息形式转换为机器能识别的信息形式
- 输出设备:将机器运算结果转换为人们熟悉的信息形式
中央处理器(CPU):运算器和控制器在电路中往往集成在同一芯片
I/O设备(外部设备):输入和输出设备
- 真正的现代计算机结构框图:
因此简化后,现代计算机由三大部分组成:
- CPU
- I/O设备
- 主存储器
主机:CPU和主存储器
存储器子系统分为两类:
- 主存储器:存放程序和数据,直接与CPU交换信息
- 辅助存储器:简称辅存或外存
CPU的核心部件:
-
算数逻辑单元(ALU):简称算逻部件,完成算数逻辑运算。
-
控制单元(CU):解释存储器中的指令,发出操作命令来执行指令,可控制I/O设备
计算机的工作步骤
-
上机前的准备
- 建立数学模型
- 确定计算方法
- 编制解题程序
-
计算机的工作过程
分析计算机各部件功能:
-
主存储器
包含存储体M、各种逻辑部件、控制电路。
- 存储体:由许多存储单元组成,每个存储单元包含若干个存储元件(又称存储基元、存储元),每个存储元件存储一位二进制代码
- 存储字:一个存储单元存储的二进制代码
- 存储字长:存储字的位数
- 存储单元的地址号:赋予每个存储单元的编号
主存的工作方式:按地址存取方式(即按地址访问存储器(简称访存),按存储单元的地址号来实现对存储字各位的存、取)
这样的方式让取指令和取数据操作相同,以一套线路进行两种操作。
实现按地址存取,配置两个寄存器 M A R MAR MAR和 M D R MDR MDR
-
M A R MAR MAR:存储器地址寄存器
用来存放欲访问的存储单元的地址,其位数对应存储单元的个数
-
M D R MDR MDR:存储器数据寄存器
用来存放从存储体某单元取出的代码或者准备往某存储单元存入的代码
其位数与存储字长相同
现代计算机MAR和MDR一般集成在CPU中
-
运算器
运算器最少包括3个寄存器和一个算数逻辑单元(ALU)
A C C ACC ACC:累加器
M Q MQ MQ:乘商寄存器
X X X:操作数寄存器
-
控制器
完成一条指令的三个步骤:
- 取指过程:命令存储器读取一条指令
- 分析过程:对指令进行分析,指出要完成的操作
- 执行过程:根据操作数所在地址和指令的操作码完成操作
控制器的组成:
- 程序计数器(PC):存放当前欲执行指令的地址,和主存的 M A R MAR MAR直接相连,可自动形成下一条指令的地址,也即加一
- 指令寄存器(IR):存放当前指令,内容来自主存的 M D R MDR MDR,IR中的操作码送至CU,分析指令;地址码作为操作数的地址送至 M A R MAR MAR
- 控制单元(CU):分析当前指令需完成的操作,发出各种微操作命令序列
-
I/O子系统
包括I/O设备和相应的接口。
接受CU发出的各种控制命令。
计算机硬件的主要技术指标
主要包括硬件的性能指标和软件的功能。
-
机器字长
机器字长:CPU一次能处理数据的位数,与CPU的寄存器位数有关。
字长影响数的表示范围和精度;也会影响机器的运算速度。
-
存储容量
包括主存容量和辅存容量
-
主存容量
存储单元个数 × \times ×存储字长,也即 M A R × M D R MAR\times MDR MAR×MDR
-
辅存容量
-
-
运算速度
-
影响运算速度的因数:机器的主频、执行什么样的操作、主存本身的速度
-
衡量运算速度的方法:吉普森法,综合考虑每条指令的执行时间以及它们在全部操作中所占的百分比
T M = ∑ i = 1 n f i t i T_M=\sum\limits_{i=1}^{n}f_it_i TM=i=1∑nfiti -
表示运算速度的单位:
- MIPS(百万条指令每秒)
- CPI:执行一条指令所需的时钟机器数(机器主频的倒数)
- FLOPS(浮点运算次数每秒)
-
及它们在全部操作中所占的百分比
T
M
=
∑
i
=
1
n
f
i
t
i
T_M=\sum\limits_{i=1}^{n}f_it_i
TM=i=1∑nfiti
-
表示运算速度的单位:
- MIPS(百万条指令每秒)
- CPI:执行一条指令所需的时钟机器数(机器主频的倒数)
- FLOPS(浮点运算次数每秒)
😄