2计算机的基本组成

现在的计算机都是以二进制存储的程序,这样的计算机都叫冯诺依曼计算机。

冯诺依曼计算机特点

1冯诺依曼计算机有5大组成部分,运算器,控制器,存储器,输入设备,输出设备

2指令和数据以同等地位存于存储器,可以按地址寻访

3指令和数据以二进制表示

4指令由操作码和地址码组成

5能存储程序

6以运算器为中心

现阶段指令和数据是可以放在不同的cash中,如运算器和控制器整合到CPU中

1

如上,我们的计算机硬件框图可以如上,实线表示数据,虚线表示控制指令。

运算器,进行算术运算和逻辑运算

控制器,提供控制指令控制程序运行

输入设备,将信息转换成机器识别形式

输出设备,将机器信息转换成人熟悉的形式

存储器,存放数据和程序

冯诺依曼计算机的瓶颈

1以运算器为中心,导致运算器成为瓶颈

2不具有层次划分

2

我们创建了以存储器为中心的计算机框图如上,但是这样的系统仍然存在层次不够分明的情况

3

如上,我们进行层次划分,运算器ALU,控制器CU,一起构成CPU,存储器分为主存和辅存,又和CPU一起构成主机,输入输出设备作为IO设备,和主机一起构成了硬件

系统复杂性管理的方法3Y

层次化Hierachy,将被设计的系统划分为多个模块或子模块

模块化Modularity,有明确定义的功能和接口

规则性regularity,模块更容易被重用

用程序来理解计算机系统模型

比如说我想一个问题来让计算机解决,我们需要先考虑计算机能否实现,即可计算性的问题,是否存在y=f(x)这样的映射,如果问题就是计算机能解决的,我们就可以加工计算机程序

1上机前准备:

建立数学模型,比如我们确定了要计算y=sinx

确定计算方法,计算机指令集并不包括sin求法,我们可以转为泰勒公式展开计算

编制解题程序,程序,运算的全部步骤,指令,每个步骤

举个例子计算y=ax2+bx+c,我们假设a,b,c已经保存到存储器,将x取到运算器,乘x放置运算器中,乘a放到运算器,把ax2放到存储器,b放到运算器中,乘x放到运算器,最后加ax2+c计算结果,输出到输入设备。

当然我们可以使用因数提取方法,x提取至运算器,乘以a放在运算器+b放在运算器,乘以x放到运算器,最后加c放到运算器,可以看到执行的步骤会减少

指令格式举例

操作码           地址码                    实现操作

000001     0000001000              a-[ACC]

假设a的地址8,取数操作是000001,则指令实现将a放到累加器中

当然还有很多指令

4

如上,我们对计算多项式结果的指令程序清单放到上面,上面就是冯诺依曼计算机的指定演示。

存储器的基本组成

存储体由若干存储单元组成,存储单元又有多个存储元件组成,存储单元存放一串二进制代码,存储单元存放二进制代码的组合称为存储字存储字长-存储单元二进制码

5

我们可以看到存储体包含MAR,MDR,其中MAR是存储器地址寄存器,反映存储单元的个数,MDR存储器的数据寄存器,反映存储字长

我们假设MAR是4位,MDR8位,则存储字长8,设存储单元16,则可按下图的长方体理解

6

上面我们就知道了存储器的基本结构和工作过程

运算器的基本功能

运算器的功能:完成算数逻辑运算,ALU

我们需要累加器ACC,还有数据存储器存储数据,如果我们做乘法或还需要考虑MQ来实现处理多出来的位数

7

如上x就是放在数据寄存器

8

如上,我们计算加法,那X就是放在数据寄存器,被加数是放在ACC中,计算结果也是在ACC中,如果是减法,类似。乘法呢,由于可能会出现越界,把结果放到ACC和MQ分高低位存储,使用累加和移位实现乘法计算。除法则商放到MQ,余数放到ACC

加法操作过程

9

如上加法过程:我们首先有指令  加M(M为X的地址),然后ACC就存储被加数,数据存储器(内存单元)就存放X,我们把X提取,和ACC中的数值相加存储到ACC中(注意,我们所有的操作都默认是被操作数已经被读取到相应的单元)

减法操作过程

10

如上,和加法类似,也是指令为减M,然后ACC存储被减数,M为存放X的地址,取值后放到ACC中减法操作

乘法操作过程

11

乘法过程如上,稍微复杂点。获得指令后,把乘数放到MQ中,把ACC的内容即被乘数放到x中,这是ACC要进行清零,然后将X,MQ的乘积结果高、低位分别放到ACC和MQ中,我们的4条过程是有一定顺序的,但是前两条先后顺序不限,是可以同时进行的,这部分的顺序控制就是控制器CU进行

除法操作过程

12

上面也没什么说的,就是ACC读取被除数,M地址获得X除数,将余数放到ACC中,将商放到MQ中,所以我们看到MQ乘除法都有放结果,也叫乘商寄存器

你可能感兴趣的:(2计算机的基本组成)