主机完成一条指令的过程

前言

更新了!以后我会每个周稳定在更新三篇及以上。这一期主要是续上一期来讲,可以说是进行一个总结吧!

主机完成一条指令过程

先放图

举个例子现在我用a×b这个算式,来解释这个过程。

大概是先是把a这个数取出来,存入ACC中;再通过PC+1的功能找×b这个指令,在ALU中进行计算。下面来个详细的解释:(我先解释早期的CPU的硬件实现方法,之后再解释现代的)

早期的过程

取指令(访存指令)

1)PC会通过地址线把地址传给主存的MAR。

2)MAR在存储体(存储芯片)中选中PC传给他的地址。

3)CU通过控制线发出读的信号。

4)在第二步(也就是2))中通过地址码选中的指令传给MDR。

5)把MDR的值通过数据线传给IR。

6)PC自动加一,可自动形成下一条指令的地址。

分析指令(访存指令)

1)IR中的操作码送至CU进行分析。(在这个题中的第一步操作码是指取数)

2)准备取操作数。(IR中的地址码作为操作数的地址)(步骤如执行指令第一条)

执行指令(访存数据)

1)访存数据:IR中的地址码送至存储器的MAR。

2)MAR在存储体(存储芯片)中选中这个地址。

3)CU通过控制线发出读的信号。

4)在存储体中的数据传给MDR。

5)将这个数据送至ACC中。(这个数据就是a,a暂存在ACC中)

继续重复之前的步骤(不同的是在分析指令的第一步操作码的意思是乘b,以及在执行指令的第五步时,不把数据存在ACC中要存在MQ中。)(不懂可以看我上一个文章)

运算器内执行乘法操作

1)将ACC的值传给X寄存器。

2)将ACC清零。

3)ALU从MQ和X中读取数据,执行乘法操作。

4)乘积高位存入ACC中,低位存入MQ中。

现代的过程

取指令以及分析指令还有执行指令都和早期的一样。只有运算器内执行算法操作不一样。

因为早期CPU的硬件没有专用乘法器,必须分布计算。

现代的CPU直接用硬件乘法器一步完成。

 这个步骤比较早期简单,如下:

直接用ACC中的数(a)乘MQ中的数(b)把值传给ACC即可。

总结 

结束,感谢你们的点赞!!祝大家天天开心!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值