冯诺依曼计算机特点
- 计算机是由五大部件组成
- 指令和数据以相等的地位存于存储器
- 指令和数据用二进制表示
- 指令由操作码和地址码组成,操作码就是说明要干什么,地址码说明要操作的数据在哪里
- 是存储程序,程序存储在存储器中(核心)
- 以运算器为中心
冯诺依曼计算机的缺点:
以运算器为中心,导致运算器的是系统的瓶颈
看起来没有层次化
所以就优化成现代计算机的硬件框图
系统复杂性管理的方法(3’Y)
层次化(Hierachy):将被设计的系统 划分为多个模块或子模块
模块化(Modularity):有明确定义 (well-defined)的功能和接口
规则性(regularity):模块更容易被重用
计算机的工作步骤
- 上机前的准备
建立数学模型
确定计算方法
编写解题程序
编程举例,计算 ax^2 +bx+c
取x 至运算器中的累加器ACC中
乘以x 在运算器中
乘以a 在运算器中
存ax2 在存储器中
取b 至运算器中
乘以x 在运算器中
加ax2 在运算器中
加c 在运算器中
这样做麻烦,变换一下(ax+b)x+c
取x 至运算器中
乘以a 在运算器中
加b 在运算器中
乘以x 在运算器中
加c 在运算器中
确定步骤后开始编写指令格式,比如
指令是两部分组成:操作码,地址码
假设我的的指令是由16位组成,
比如现在需要取出数据a,就是[a]—>ACC(累加器)中
对应的指令可以写成这样,前面六位是操作码,后面是地址码
比如:000001 0000000001
存储器的基本组成
因为上面的操作的指令和数据都是保存在存储器里面,所以现在来了解一下存储器的结构,存储器到底是如何工作的
它的结构如下:
存储体–>存储单元–>存储元件(0/1)(可以一一对应下面的假设)
大楼 -->房间–>床位(有人/无人)
存储单元: 存放一串二进制代码 ,就相当于一个房间
存储字: 存储单元中二进制代码的组合,相当于房间里面的一个人
存储字长: 存储单元中二进制代码的位数 ,每个存储单元赋予一个地址号,按地址寻访 ,相当于一个人占的空间大小
MAR: 存储器 地址寄存器 ,反映存储单元的个数,就是看这个大楼有多少个房间
MDR: 存储器数据寄存器 ,反映存储字长,就是每一个人的占位多大
运算器的组成
了解存储器的结构后,接下来是下一个运算器
运算器的最大的作用就是数学逻辑的运算,
ALU就是里面的集成电路实现的运算功能,
但是为了实现功能,就在运算器里面增加ACC,X和MQ存储器,主要是存储运算前的数据和运算后的结果数据,MQ是乘法运算的时候结果超过储存字长的时候保存超出的大数据
加法的操作过程
乘法的操作过程
除法的操作
控制器的组成
PC 存放当前欲执行指令的地址,具有计数功能(PC)+ 1 PC
IR 存放当前欲执行的指令
了解运算器,控制器,存储器后,就可以知道一条指令在计算机上的执行过程
指令的执行过程
取数指令
存数指令