ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

四. 控制器与运算器(CPU)

2021-08-05 20:30:07  阅读:277  来源: 互联网

标签:控制器 TR KGA 开关 加法器 RA 寄存器 CPU 运算器


四. 控制器与运算器

前面我们已经造出了加法机,但是这种机器其实并没有什么卵用;首先需要人伺候着,不停地按动开关输入数据;其次它还只能计算两个数字,如果是多个数字就需要每次记下前两个数的结果,然后再输入这个结果和下一个数再运算,这会很麻烦;显然,我们还有一段路要走。

1.使用寄存器保存中间数

前面我们也造出了寄存器,就可以用到这里来保存中间数(即前两个数的运算结果),最后计算的结果也一样保存到寄存器。寄存器符号如下图:
在这里插入图片描述
注意: cp端左侧的三角形表示该寄存器只在cp脉冲的上升沿才工作;

将寄存器与加法器按照下图连接:
在这里插入图片描述
如图,左侧的开关可以将二进制数输入寄存器RA中,RA直接输入到加法器中;也可以开关直接输入到加法器的另一端,加法器输出结果也可以进入RA中保存或作为中间数参加下次运算;KRA为一个按键开关,按一下,RA就会保存左侧输入的二进制数;

可以看到,这个装置的输入和输出共用了一段线路,在逻辑电路里,大家共用的公共线路称为总线,而这容易引起混乱;想解决这个问题可以使用传输门,即电子开关。

2. 使用传输门来轮流使用总线
在这里插入图片描述
如图,RA和TR是临时寄存器,GA、GB是传输门(通过KGA、KGB控制);下面来看看这个装置怎么来操作,例如计算10 + 5 + 7 + 2 + 6;

首先要做的是用左边那排开关扳出第一个数“10”,并将其保存到寄存器RA中称之为装载

装载的过程是这样的:假设数已经扳好了,接下来,按住KGA不要松开,使传输门GA打开,于是数据到达寄存器RA;接着,再按一下KRA将数据锁进RA中;最后,松开KGA。

可以看出,这个数不但到达寄存器RA,还到达加法器的另一个输入端,以及传输门GB。同时,加法器也一直在工作。但是,因为传输门GB没有打开,这里不会出什么乱子。

这是个单一的过程,但却需要两只手操作,同时还有一个手法问题比较讲究。什么手法呢?那就是不允许同时按下KGA和KRA。当按下KGA时,数据还没有稳定下来,要是RA在这个当口工作,它保存的数据就很有可能是错的。

装载过程已经结束,第一个数“10”已经位于寄存器RA中了。现在,我们要用第二个数与它相加。这需要再次扳动那排开关,得到第二个数“5”。然后,按住KGA不要松开,使“5”进入加法器的另一个输入端。加法器是自动即时相加的,它会立即计算出相加的结果“15”。此时,按一下KTR将其保存到临时寄存器TR中,然后松开KGA。

因为是要做一连串的加法,所以当前的计算结果还必须参与下一次计算,这意味着要把数据从临时寄存器TR移动到RA。

通常情况下,传输门GA是断开的,所以不用担心数据冲突,直接按住KGB不要松手,使计算结果从寄存器TR通过GB流向RA;接着,按一下KRA将数据锁存,最后将KGB松开。

有趣的是,一旦数据从传输门GB流出来,它不但会等待RA将其保存,同时也流向加法器的另一个输入端,并和RA中原有的数相加。不过不用担心,寄存器TR会将结果拦住。

很明显,在这道加法题中,除了第一个数字“10”需要预先保存到寄存器RA之外,从第二个数字“5”开始,一直到最后一个数字“6”,所有数字在相加时的操作过程都是一样的,都要经历用开关扳数、相加并保存到寄存器TR,然后从TR移动到RA的过程,这个过程可以简单地称为相加。当最后一个数加完之后,最终的结果仍然在寄存器RA中。

3. 简化操作过程

这个机器虽然能做一连串的加法,但操作过于复杂,怎么可以去掉那些开关以简化操作?一个方法就是使用逻辑电路替代那些开关;如图:
在这里插入图片描述
图中,K字开头的开关就可以通过“我们的新电路”来完成连续相加(这里先不关心具体过程),再简化可以到下图:
在这里插入图片描述
这就是一个极其简单的控制器,他可以控制运算器按照规定的步骤有条不紊的计算,而控制器和运算器是cpu主要的组成部分。

4. 说明

本文为《穿越计算机的迷雾》读书笔记,如有错误,还请兄弟们指正,大家一起进步。

标签:控制器,TR,KGA,开关,加法器,RA,寄存器,CPU,运算器
来源: https://blog.csdn.net/weixin_50260670/article/details/119297672

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有