计算机基本组成

335 阅读5分钟

冯·诺依曼计算机的特点

  • 计算机硬件由五大部件组成
  • 指令和数据以同等地位存于存储器,可按地址访问
  • 指令和数据用二进制表示
  • 指令由操作码和数据地址码组成
  • 存储程序(核心特征)
  • 以运算为中心

其中计算机五大硬件可以细分如下

  1. 输入设备(将信息转换成机器能够识别的形式)
  2. 运算器(用于算术运算和逻辑运算,还有数据的输入输出)
  3. 存储器(存放数据和程序)
  4. 控制器(指挥程序控制运行)
  5. 输出设备(将处理结果转换成人们熟悉的形式)

不足:数据的输入输出和运算全部都由运算器实现,运算器会十分繁忙,成为计算机系统的瓶颈期。

改进:根据冯·诺依曼计算机五大组成部分,现在计算机硬件可以划分为如下层次

  • 运算器(ALU)+控制器(AU)结合形成CPU
  • 存储器可以分为主存(内存)和辅存
  • 输入和输出设备抽象为I/0设备

其中CPU和主寸可以抽象为计算机的主机。

image.png

存储器

指令和数据都保存在存储器中,存储器可以分为主存(一般叫做内存)和辅存。

存储器的基本组成

存储体
  1. 储存体中包含若干个存储单元(对应的电子设备),存储单元由存储元件(对应的用0/1表示)构成。
  2. 存储单元存放一串二进制代码
  3. 存储单元中二进制代码的组合叫做存储字
  4. 存储单元中二进制代码的位数叫做存储字长(0和1的个数)
  5. 每个存储单元赋予一个地址,存储单元中存放一个存储字

通过地址就可以对存储单元就行访问查找。

MAR

存储器地址寄存器,保存了存储单元的地址,反映了存储单元的个数

MDR

存储器数据寄存器,保存了从存储器去除的数据或者要放入到存储器的数据,其长度和存储字长一致,反映了存储字长

例如设置MAR=4,MDR=8,那么MAR可以表示的地址是0000,....,11111,共计16种,说明存储体共有16个存储单元,存储单元中的存储字字长为8位

image.png

运算器

运算器用于算术运算或者逻辑运算,针对累加计算机来说,运算器的机构可以分为如下

  • MQ寄存器:商乘寄存器
  • ACC寄存器:累加寄存器
  • X寄存器:操作数寄存器
  • ALU:计算处理

image.png

针对运算器执行加减乘除的操作过程如下:

加法

  1. 通过指令的操作码分析出是执行加法操作
  2. 通过指令的地址码,去内存读取数据,放入到X寄存器中
  3. ALU通过ACC(默认会把被加数保存)和X两个寄存器中的数据执行加法操作
  4. 得出的结果,放入到ACC中

减法

  1. 通过指令的操作码分析出是执行减法操作

  2. 通过指令的地址码,去内存读取数据,放入到X寄存器中

  3. ALU通过ACC(默认会把被减数保存)和X两个寄存器中的数据执行减法操作

  4. 得出的结果,放入到ACC中

乘法

  1. 通过指令的操作码分析出是执行乘法操作
  2. 通过指令的地址码,去内存读取数据,放入到MQ寄存器中
  3. ACC(默认会把乘数保存)中的数据放入到X寄存器中,然后ACC进行清零操作
  4. ALU通过X和MQ的数据执行乘法操作
  5. 把乘积高位放入到ACC中,乘积地位放入到MQ中

除法

  1. 通过指令的操作码分析出是执行除法操作
  2. 通过指令的地址码,去内存读取数据,放入到X寄存器中
  3. ALU通过ACC(默认会把被除数保存)和X两个寄存器中的数据执行除法操作
  4. 得出的结果,余数放入到ACC中,商保存到MQ中

image.png 其中的执行顺序都是通过控制器来实现的。

控制器

控制器的功能:

  1. 解析指令
  2. 保证指令的按序执行

控制器用于指挥程序控制运行,其结构分为如下:

  • PC寄存器:存放当前欲执行指令的地址,具有计数功能,用于下一次取出地址。(PC+N->PC)
  • IR寄存器:存放当前欲执行的指令。
  • CU:控制单元,控制信号的发出。

image.png

通过运算器、控制器、存储器组合基础的主机结构如下:

image.png 取数指令基础过程如下

  1. PC把指令地址送给MAR
  2. MAR送给存储体
  3. 存储体把存储单元中保存的取数指令,送给MDR
  4. MRD把指令送给IR
  5. IR把指令的操作码送给CU,通过CU控制单元进行指令操作分析
  6. IR把指令地址码送给MAR
  7. MAR把地址送给存储体
  8. 存储体把数据送给MDR
  9. MDR把数据送给ACC

存数指令基础过程如下

  1. PC把指令地址送给MAR
  2. MAR送给存储体
  3. 存储体把存储单元中保存的取数指令,送给MDR
  4. MRD把指令送给IR
  5. IR把指令的操作码送给CU,通过CU控制单元进行指令操作分析
  6. IR把指令地址码送给MAR(将要存放的数据地址)
  7. MAR把地址送给存储体
  8. ACC把数据送到MDR
  9. MDR把数据送到存储体(根据之前的地址存储数据)