1.2计算机的基本组成原理
一、冯诺依曼计算机特点
- 计算机由五大部件组成:运算器ALU、控制器CU、存储器、输入设备、输出设备(I/O设备)
- 指令和数据以同等地位存于存储器,可按地址寻访
- 指令和数据用二进制表示
- 指令由操作码和地址码组成
- 存储程序
- 以运算器为中心
二、系统复杂化管理的方法
- 层次化:让被设计得系统划分为多个模块或者子模块
- 模块化:有明确定义的功能和接口
- 规则性:让模块更容易被重用,不仅仅在自己的系统上用,在其他地方也能用,比如现在市面上卖的内存,可以只关心某部件的生产而不用再去顾及计算机其他部分的生产
Q1一个现实中的问题,如何用计算机解决
Q2是不是所有的问题都可以用计算的方法来解决
三、计算机的工作步骤
1、上机前的准备
- 建立数学模型
- 确定计算方法
- 编制解题程序
程序---运算的全部步骤
指令---每一个步骤
编程举例:
ax^2+bx+c
假设我们使用的是一个累加器型的机器,即再计算运行加减乘除操作的时候,参与运算的数有两个,其中的一个操作数要把它保存在累加器当中,另外的一个操作数来自于计算机的主存储器。另外,我们假设,我们使用的机器包含了6条指令,加法指令、乘法指令、从内存中取出数据放到累加器的指令、存储指令(存储计算结果)、打印指令、停机指令
步骤:
ax^2+bx+c
- 将x取出,送到运算器当中(实际上是把x保存在运算器中的累加器里面,累加器是一个寄存器)
- 乘以x在运算器中
- 乘以a在运算器中
- 存ax^2在存储器中
- 取b到运算器中
- 乘以x在运算器中
- 加ax^2在运算器中
- 加c在运算器中
(ax+b)x+c
- 取x到计算器中
- 乘以a在运算器中
- 加b在运算器中
- 乘以x在运算器中
- 加c在运算器中
- 运算包含:操作码+地址码
- 都是用二进制表示
- 指令和数据都是保存在存储器中的
2、计算机的解题过程
(1)存储器的基本组成
MAR
存储地址寄存器
反应存储单元个数
MDR
存储器数据寄存器
反应存储字长
比如
MAR=4位 MDR=8位
MAR有4位,说明从0000到1111可以有2^4种可能,存储个数位2^4=16位
存储单元个数2^4=16位,存储字长8位
运算器的结构功能如何工作的?
(2)运算器的基本组成及操作过程
加/减法指令:被加/减数ACC 加/减数X 运算ALU 结果存入ACC
[M]-->X [M]表示加/减数M里的内容
[ACC]+-[X]--->ACC 将M取出来放到X里去之后进行调用
乘法指令:被乘数ACC-->X 乘数MQ 运算ALU 结果存入ACC和MQ
[M]-->MQ [ACC]-->X 0-->ACC
[X]*[MQ]-->ACC//MQ 高位放在ACC低位放在MQ
操作顺序:需要对ACC进行清零操作,所以ACC里的东西必须要先存入X,才能对ACC清零,不然数据不久清没了
这个操作顺序是由控制器来控制的
除法指令:被除数ACC 除数X 运算ALU 结果存入ACC和MQ
[M]-->X
[ACC]/[X]-->MQ 结果放在MQ种,余数放在ACC
(3)控制器基本组成
功能:解释指令,保证指令按序执行
完成一条指令:取指令PC 分析指令IR 执行指令CU
PC存放反潜与执行之林的地址,具有计数功能(PC)+1-->PC
IR存放当前欲执行的指令
一条指令在主机上的完成过程?
程序在主机上是如何执行的?
主机+I/O组成硬件系统
ax^2+bx+c程序运行过程:
- 将程序通过输入设备送至计算机
- 程序首地址-->pc
- 启动程序运行
- 取指令 PC-->MAR-->M(存储体)-->MDR-->IR , (PC)+1-->PC
- 分析指令OP(IR)-->CU OP(IR)表示IR指令寄存器里保存的指令的操作码部分
- 执行指令AD(IR)-->MAR-->M-->MDR-->ACC AD(IR)表示IR指令寄存器里保存的指令的地址码部分
- 打印结果:取值分析执行
- 停机