[计算机组成原理-02] 计算机硬件的基本组成和工作原理

1、基本组成

1.1 早期冯诺依曼机的结构

在这里插入图片描述

  早期的计算机每次运算都需要人手动接线来控制计算,冯诺依曼因此设计出以存储程序为核心的计算机。

  “存储程序”的概念是指:将指令以二进制代码的形式事先输入计算机的主存储器,然后按其在存储器中的首地址执行程序的第一条指令,以后就按该程序的规定顺序执行其他指令,直至程序执行结束。
在这里插入图片描述
  早期的冯诺依曼机结构如下:
在这里插入图片描述
  其中,实线箭头表示数据线,虚线箭头表示控制线和反馈线。

  在计算机系统中,软件和硬件在逻辑上是等效的。

  Eg:对乘法运算,可以设计一个专门的硬件电路实现乘法运算也可以用软件的方式,执行多次加法运算来实现。

  冯·诺依曼计算机的特点:

  • 1.计算机由五大部件组成
  • 2.指令和数据以同等地位存于存储器,可按地址寻访
  • 3.指令和数据用二进制表示
  • 4.指令由操作码和地址码组成
  • 5.存储程序
  • 6.以运算器为中心

  输入输出设备与存储器之间的数据传送通过运算器完成。

1.2 现代计算机的结构

  现代计算机的结构如下所示:
在这里插入图片描述
  五大部件的关系如下:
在这里插入图片描述
  需要注意的是:主存就是我们常说的内存,辅存是我们常说的硬盘等。
在这里插入图片描述

2、内部结构

在这里插入图片描述

2.1 主存储器

  主存储器结构如下:
在这里插入图片描述

  • MAR:存储地址寄存器
  • MDR:存储数据寄存器

  程序和数据都保存在存储体中。

  读的过程:CPU 把要获取的指令或者数据在存储体中的地址给 MAR 并发出读取的命令,存储体就会把对应地址的指令或数据给 MDR ,然后 CPU 就从 MDR 取走,整个过程类似于菜鸟驿站:
在这里插入图片描述
  我(CPU)把要拿的快递(指令或数据)的地址给店员(MAR),然后店员(MAR)拿着地址从货架(存储体)找到后拿给柜台(MDR),最后我(CPU)从柜台拿走。

  写的过程:CPU 把要写的内容发给 MDR,把要存储的地址给 MAR,接着向主存储器发出写入的命令,主存储器就会把 MDR 的数据存储到 MAR 指定的地址中。
在这里插入图片描述

  • 存储单元:每个存储单元存放一串二进制代码;
  • 存储字(word):存储单元中二进制代码的组合;
  • 存储字长:存储单元中二进制代码的位数;
  • 存储元:即存储二进制的电子元件,每个存储元可存1bit。

  例如:MAR = 4位,那么总共可以表示 24 个存储单元。MDR = 16 位,则每个存储单元可以存储 16 bit 的数据。

2.2 运算器

  运算器用于实现算术运算(加减乘除)、逻辑运算(与或非)。
在这里插入图片描述

  • ACC:累加器,用于存放操作数,或运算结果;
  • MQ:乘商寄存器,在乘、除运算时,用于存放操作数或运算结果;
  • X:通用的操作数寄存器,用于存放操作数;
  • ALU:算术逻辑单元,通过内部复杂的电路实现算数运算、逻辑运算。
ACC被加数、和被减数、差乘积高位被除数、余数
MQ乘数、乘积低位
x加数减数被乘数除数

2.3 控制器

在这里插入图片描述

  • CU:控制单元,分析指令,给出控制信号;
  • lR:指令寄存器,存放当前执行的指令;
  • PC:程序计数器,存放下一条指令地址,有自动加1功能。

  完成一条指令的过程:

  • 1、取指令(PC)
  • 2、分析指令(IR)
  • 3、执行指令(CU)

3、计算机的工作过程

  假设一段代码如下:

int a = 2, b = 3, c = 1, y = 0;
void main(){
	y = a * b + c;
}

  编译并装入主存:
在这里插入图片描述

  计算机内部组成如下所示:
在这里插入图片描述
  初始时,PC 指向主存地址 0 的地方。
在这里插入图片描述
  控制器把 PC 的值给主存储器的 MAR ,如下图:
在这里插入图片描述
  MAR 此时值为 0,主存储器即从主存地址 0 的地方取出指令(000001 0000000101)并赋值给 MDR,如下图:
在这里插入图片描述
在这里插入图片描述
  控制器取到了 MDR 的数据后就赋值给 IR,使得 IR = 000001 0000000101,其中操作码(000001)部分会发送到 CU,CU 分析后得知是”取数“指令,如下图所示:
在这里插入图片描述
  接着控制器把 IR 的地址码(0000000101,换算成十进制为 5)发送到主存储器的 MAR,主存储器就把主存地址 5 的指令发给 MDR,控制器从 MDR 把指令取走并赋值给 IR,此时 IR = 0000000000000010,换成十进制就是 2,如下图所示:
在这里插入图片描述
  接着控制器又把这个 2 赋值给运算器的 ACC,使得 ACC = 2,如下图所示:
在这里插入图片描述
  至此,计算机就完成了“取数 a 至 ACC”的操作。剩余的 1 - 4 执行过程都是按照:取指令、分析指令、执行指令的过程完成所有代码操作。

  总结:计算机的工作过程先从主存中取指令放入 IR,PC 自动加一,接着 CU 分析指令,最后 CU 指挥其他部件执行指令。

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值