计算机的奥秘原来这么简单(五)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机的奥秘原来这么简单(五)
前面几篇大体把加/减法器的工作原理讲了一下,此时我们先不对乘法和除法的运算做拓展,因为还有一些必要的问题没有解决,比如多个数相加,如何把过程中的结果临时存储起来?也就是计算机中存储器相关原理的问题。为此,我们要知道存储器是如何一步步设计出来的。
触发器
1、时钟(CLOCK)的概念
在介绍时钟之前,先看一个简单的继电器电路:
我们想像一下这个电路的工作过程,为什么继电器要这么连接?在原来的继电器中,输入和输出通常是分开的,这里却构成一个闭环。当闭合开关时,电路连通了:
接通的电路使电磁铁把金属簧片拉下来(如下图),当金属簧片改变位置后,电路不再完整,电磁铁失去了磁性,金属簧片又弹回原来的位置(如上图)
就这样,电路反复接通然后断开,金属簧片就会上下跳动—使电路闭合或断开。这时候如果金属簧片制造了一种刺耳的声音,它就构成了一个蜂鸣器。如果金属簧片附上一把小锤子,再加一个金属锣,它就构成了一个电铃,就像我们以前的上课铃。
我们回头想一下前面介绍过的反向器,然后再结合上图中的电路,很容易就能把它简化成下面这样:
对于反向器而言,当输入为0时,输出为1;输入为1时,输出为0。在该电路中闭合开关会使反向器中的继电器间断地闭合和断开。如果去掉开关,可以使反向器连续地工作,如下图示:
这样的话,上图看着就有逻辑矛盾,反向器的输出是和其输入相反的,但是在这里,其输出同时又是其输入。当然,反向器实际上是一个继电器,而继电器从一个状态转换到另一个状态是需要时间的。所以,即使输入和输出是相等的,输出也会很快地改变,成为输入的倒置(当然,随即输出也就改变了输入,如此反复)。电路的输出是
什么呢?其实就是提供电压和不提供电压之间的变换。或者说输出要么是0,要么是1。
我们把这个电路称为“振荡器”,它和我们以前见到的每样东西都有区别。以前,所有的电路都靠手动地断开或闭合开关来改变状态,而振荡器却不需要人的干涉,它可以自主地工作。
当然,单独的一个振荡器不会有什么用,但在本文的后面及接下来的几篇文章里,你会看到这个电路和其他电路连接后构成了自动控制中一个十分关键的部分。因为所有计算机都靠某种振荡器来使其他部件同步工作。
那么振荡器的输出是0和1的交替序列,可以用下图形象地来表示它:
我们还可以从上图中看到随着时间的变化,振荡器的输出在0和1之间交替变化,而通过对振荡次数计数还可确定时间,基于这个原因,振荡器有时就被称为时钟。那么时钟的概念就得到了,下面就围绕这个说一下它周边的一些常见的名称吧。
我们把振荡器从某个时间的输出开始,经历一段变化又回到同样输出的这一段间隔称为振荡器的一个循环:
一个循环所需要的时间称为振荡器的周期。假设一个振荡器的周期是0.05秒,那么振荡器的频率就是周期的倒数。即频率是1÷0.05秒,每秒钟20个循环。这表明振荡器的输出每秒钟改变2 0次。这个循环也叫赫兹,频率是20HZ。(一个能持续稳定工作的时钟不是这个简单电路可以做到的,这里只是说明原理)
2、触发器的概念
前面说通过对振荡次数计数还可确定时间,所以振荡器又被称为时钟,那我们首先就要确定的就是震荡的次数,不然光数震荡的速度也没有意义。那么如何测量一个振荡器的次数呢?
在此之前,因为我们要用到或非门,所以先了解一下它的特点:只有两个输入都为0时,输出才为1
然后我们着重分析一下下图这个电路
注意图中的连接方式:左边或非门的输出C是右边或非门的输入,
右边或非门的输出E是左边或非门的输入A。这是一种反馈。然后输入B和D是开关。我们结合下表说明一下上图工作的几种状态。
•两个开关都断开时:除了C处为1,都为0。(1为高电平,0为低电平)
•B闭合D断开时:A处继承上次循环E处的0,所以C=0,D=0,E=1。灯亮
•B闭合D断开保持住:除了A继承上次循环E处的1外,其余不变。
•两个开关都再次断开时:A继承上次循环E处的1,B/C/D=0,E=1。灯依然亮。
•B断开D闭合时:A继承上次循环E处的1,所以C=0,D=1,E=0。灯灭。
•B断开D闭合保持住:除了A继承上次循环E处的0外,其余不变。
•两个开关都再次断开时:A继承上次循环E处的0,所以C=1,E=0。灯依然灭。
(结合或非门的特点分析,AB或非得C;CD或非得E)
通过上面的说明,我们会发现奇特之处:有时当两个开关都断开时,灯泡亮着(图中第四行);而有时,当两个开关都断开时,灯泡却不亮(图中第一行)。当两个开关都断开时,电路有两个稳定状态,这样的一个电路就被称为触发器。触发器是1918年在英国射电物理学家William Henry Eccles和F.W.Jordan在工作中发明的。
总结:触发器电路可以保持信息,也就是它有记忆性。它可以“记住”最近一次是哪个开关先闭合的。如果你遇到这样一个触发器,它的灯泡亮着时,你可以确定最近闭合的是B开关;而灯泡灭着时则是D开关。触发器赋予电路“记忆”,使其知道以前曾有过的状态。所以,如果要计数,那肯定就要用到触发器了。
现在,通过上面的分析和总结之后,我们根据B/D开关的作用重新给他们取个名字,B为S(SET),D为R(RESET),因为E是灯,相当于输出,则命名为Q,为了对称起来,另外在C出去一个输出为Q
反,表示为Q上加横线代表输出取反(通过上表可以看到C和E的输出正好相反,第5行为持续一个循环暂态)。那么,上面的触发器把图画的对称一下,然后封装前后就是这样(注意RS位置和上图中BD 位置区别):
上图的装置也叫作R-S触发器,它能够通过输出侧的两个端口反应哪一个输入端最近被输入高电位。但相对于我们的目的而言,更有用的电路应该是能记住某个特定时间点上上一个信号是0还是1。这也是现在和过去概念上的区别。
3、锁存器的概念
在想实现这个目标之前,我们要先来分析一下它具体的行为功能。
•它应该有两个输入,一个输出。
•输入一称为数据端:像所有数字信号一样,数据端输入可以是0或1。
•输入二称为保持位,即当保持位设为0时,数据端对电路没什么影响。当保持位置为1时,电路就反映出数据端的值。
•保持位从1又置为0后,电路将记住数据端输入的最近一个值。数据端接下来的信号都不会再对电路有的任何影响。
总结一下,它的功能图反应出来应该是这样:
在第1、2、3、6、7、8行情况下,保持位置为1,Q端输出和数据端输入相同;其余行,当保持位置为0时,Q端输出和它以前的值相同,即保持原状态。即当保持位为0时,Q端输出不再受数据端输入的影响。
如何实现上图的功能呢?我们基于R-S触发器来实现保持位的功能要求在输入端增加两个与门,如下图所示:
其中A-J分别表示各逻辑门的输入输出端口,E相当于RS触发器的R,H相当于S,我们通过下表和看下,上图的逻辑功能。
总结:
•当保持位为0时,置位信号和复位信号对于输出没有任何影响。
•当保持位为1时,电路的功能和前述的R-S触发器相同。