冯·诺依曼计算机的特点
- 计算机硬件由五大部件组成
- 指令和数据以同等地位存于存储器,可按地址访问
- 指令和数据用二进制表示
- 指令由操作码和数据地址码组成
- 存储程序(核心特征)
- 以运算为中心
其中计算机五大硬件可以细分如下
- 输入设备(将信息转换成机器能够识别的形式)
- 运算器(用于算术运算和逻辑运算,还有数据的输入输出)
- 存储器(存放数据和程序)
- 控制器(指挥程序控制运行)
- 输出设备(将处理结果转换成人们熟悉的形式)
不足:数据的输入输出和运算全部都由运算器实现,运算器会十分繁忙,成为计算机系统的瓶颈期。
改进:根据冯·诺依曼计算机五大组成部分,现在计算机硬件可以划分为如下层次
- 运算器(ALU)+控制器(AU)结合形成CPU
- 存储器可以分为主存(内存)和辅存
- 输入和输出设备抽象为I/0设备
其中CPU和主寸可以抽象为计算机的主机。
存储器
指令和数据都保存在存储器中,存储器可以分为主存(一般叫做内存)和辅存。
存储器的基本组成
存储体
- 储存体中包含若干个存储单元(对应的电子设备),存储单元由存储元件(对应的用0/1表示)构成。
- 存储单元存放一串二进制代码
- 存储单元中二进制代码的组合叫做存储字
- 存储单元中二进制代码的位数叫做存储字长(0和1的个数)
- 每个存储单元赋予一个地址,存储单元中存放一个存储字
通过地址就可以对存储单元就行访问查找。
MAR
存储器地址寄存器,保存了存储单元的地址,反映了存储单元的个数
MDR
存储器数据寄存器,保存了从存储器去除的数据或者要放入到存储器的数据,其长度和存储字长一致,反映了存储字长
例如设置MAR=4,MDR=8,那么MAR可以表示的地址是0000,....,11111,共计16种,说明存储体共有16个存储单元,存储单元中的存储字字长为8位
运算器
运算器用于算术运算或者逻辑运算,针对累加计算机来说,运算器的机构可以分为如下
- MQ寄存器:商乘寄存器
- ACC寄存器:累加寄存器
- X寄存器:操作数寄存器
- ALU:计算处理
针对运算器执行加减乘除的操作过程如下:
加法
- 通过指令的操作码分析出是执行加法操作
- 通过指令的地址码,去内存读取数据,放入到X寄存器中
- ALU通过ACC(默认会把被加数保存)和X两个寄存器中的数据执行加法操作
- 得出的结果,放入到ACC中
减法
-
通过指令的操作码分析出是执行减法操作
-
通过指令的地址码,去内存读取数据,放入到X寄存器中
-
ALU通过ACC(默认会把被减数保存)和X两个寄存器中的数据执行减法操作
-
得出的结果,放入到ACC中
乘法
- 通过指令的操作码分析出是执行乘法操作
- 通过指令的地址码,去内存读取数据,放入到MQ寄存器中
- ACC(默认会把乘数保存)中的数据放入到X寄存器中,然后ACC进行清零操作
- ALU通过X和MQ的数据执行乘法操作
- 把乘积高位放入到ACC中,乘积地位放入到MQ中
除法
- 通过指令的操作码分析出是执行除法操作
- 通过指令的地址码,去内存读取数据,放入到X寄存器中
- ALU通过ACC(默认会把被除数保存)和X两个寄存器中的数据执行除法操作
- 得出的结果,余数放入到ACC中,商保存到MQ中
其中的执行顺序都是通过控制器来实现的。
控制器
控制器的功能:
- 解析指令
- 保证指令的按序执行
控制器用于指挥程序控制运行,其结构分为如下:
- PC寄存器:存放当前欲执行指令的地址,具有计数功能,用于下一次取出地址。(PC+N->PC)
- IR寄存器:存放当前欲执行的指令。
- CU:控制单元,控制信号的发出。
通过运算器、控制器、存储器组合基础的主机结构如下:
取数指令基础过程如下
- PC把指令地址送给MAR
- MAR送给存储体
- 存储体把存储单元中保存的取数指令,送给MDR
- MRD把指令送给IR
- IR把指令的操作码送给CU,通过CU控制单元进行指令操作分析
- IR把指令地址码送给MAR
- MAR把地址送给存储体
- 存储体把数据送给MDR
- MDR把数据送给ACC
存数指令基础过程如下
- PC把指令地址送给MAR
- MAR送给存储体
- 存储体把存储单元中保存的取数指令,送给MDR
- MRD把指令送给IR
- IR把指令的操作码送给CU,通过CU控制单元进行指令操作分析
- IR把指令地址码送给MAR(将要存放的数据地址)
- MAR把地址送给存储体
- ACC把数据送到MDR
- MDR把数据送到存储体(根据之前的地址存储数据)