计算机的硬件组成及工作过程

目录

1.计算机的硬件组成

1.1 主存储器

1.2 运算器

1.3 控制器

1.4 I/O

1.5 细化的计算机组成框图

 2. 计算机的计算过程


1.计算机的硬件组成

1.1 主存储器

主存储器包括存储体M、各种逻辑部件以及控制电路等。为了能实现按地址访问的方式,还必须配置两个寄存器存储器地址寄存器(MAR)和存储器数据寄存器(MDR)。

  • 存储器地址寄存器(MAR):存放欲访问的存储单元的地址,其位数对应存储单元的个数。
  • 存储器数据寄存器(MDR):存放从存储体某单元取出的代码或者准备往某存储单元存入的代码,其位数与存储字长相等。

1.2 运算器

运算器最少包括3个寄存器和一个算术逻辑单元。

  • 累加器(ACC):存放操作数或运算结果。
  • 乘商寄存器(MQ):在乘、除法运算时,用于存放操作数或运算结果。
  • 通用的操作数寄存器(X):存放操作数。
  • 算术逻辑单元(ALU):通过内部复杂电路实现算术运算、逻辑运算。

1.3 控制器

控制器是计算机的神经中枢,由它指挥各部件自动、协调地工作。

具体而言,它首先要命令存储器读出一条指令,称为取指过程。接着,它要对这条指令进行分析,指出该指令要完成什么样的操作,并按寻址特征指明操作数的地址,称为分析过程。最后根据操作数所在的地址以及指令的操作码完成某种操作,称为执行过程

  • 控制单元(CU):分析指令,给出控制信息。
  • 指令寄存器(IR):存放当前执行的指令。
  • 程序计数器(PC):存放下一条指令的地址,有自动加1的功能,即可自动形成下一条指令的地址。

1.4 I/O

I/O子系统包括各种I/O设备及其相应的接口。每一种I/O设备都由I/O接口与主机联系,它接收CU发出的各种控制命令,并完成相应的操作。

1.5 细化的计算机组成框图

 2. 计算机的计算过程

接下来用我们熟悉的一段代码来了解一下计算机的计算过程。

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

编译并装入主存储器可以得到:

 (1)取出数值a=2

  1. 初:(PC)=0,指向第一条指令的存储地址
  2. (PC)->MAR,导致(MAR)=0
  3. M(MAR)->MDR,导致(MDR)=00001 0000000101
  4. (MDR)->IR,导致(IR)=00001 0000000101
  5. OP(IR)->CU,指令操作码送到CU,CU分析后得知,这是取指指令
  6. Ad(IR)->MAR,指令的地址码送到MAR,导致(MAR)=0000000101=5
  7. M(MAR)->MDR,导致(MDR)=0000000000000010=2
  8. (MDR)->ACC,导致(ACC)=0000000000000010=2

(2)进行a*b

  1. 上一条指令取指后PC自动+1,(PC)=1;执行后,(ACC)=2
  2. (PC)->(MAR),导致(MAR)=1
  3. M(MAR)->MDR,导致(MDR)=00100 0000000110
  4. (MDR)->IR,导致(IR)=00001 0000000110
  5. OP(IR)->CU,指令操作码送到CU,CU分析后得知,这是乘法指令
  6. Ad(IR)->MAR,指令的地址码送到MAR,导致(MAR)=0000000110=6
  7. M(MAR)->MDR,导致(MDR)=0000000000000011=3
  8. (ACC)->X,导致(X)=2
  9. (MQ)*(X)->ACC,由ALU实现乘法运算,导致(ACC)=6,如果乘积太大,则需要MQ辅助存储

(3)进行(a*b)+c

  1. 上一条指令取指后(PC)=2,执行后(ACC)=6
  2. (PC)->(MAR),导致(MAR)=2
  3. M(MAR)->MDR,导致(MDR)=00011 0000000111
  4. (MDR)->IR,导致(IR)=00011 0000000111
  5. OP(IR)->CU,指令操作码送到CU,CU分析后得知,这是加法指令
  6. Ad(IR)->MAR,指令的地址码送到MAR,导致(MAR)=0000000111=7
  7. M(MAR)->MDR,导致(MDR)=0000000000000001=1
  8. (ACC)+(X)->ACC,由ALU实现加法运算,导致(ACC)=7

(4)存储y=a*b+c

  1. 上一条指令取指后(PC)=3,执行后(ACC)=7
  2. PC)->(MAR),导致(MAR)=3
  3. M(MAR)->MDR,导致(MDR)=00010 0000001000
  4. (MDR)->IR,导致(IR)=00010 0000001000
  5. OP(IR)->CU,指令操作码送到CU,CU分析后得知,这是存数指令、
  6. Ad(IR)->MAR,指令的地址码送到MAR,导致(MAR)=0000001000=8
  7. (ACC)->MDR,导致(MDR)=7
  8. (MDR)->地址为8的存储单元,导致y=7

 注意:

  1. M:主存中的某存储单元
  2. ACC、MQ、X、MAR、MDR......:相应的存储器
  3. M(MAR):去存储单元中的数据
  4. (ACC)......:取相应存储器中的数据
  5. OP(IR):取操作码
  6. Ad(IR):取地址码
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Kk.巴扎嘿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值