一.逻辑门电路
逻辑门的与门知道吧
逻辑门的或门听说过吧
逻辑门中的非门简单吧
基础知识就复习到这里(—...—)
二.AND—OR锁存器
如果把与门的其中一个输入与输出连接在一起会发生什么?
我们可以观察到,激活状态后无论IN1输入“1”或者“0”,OUT都总是“0”,因此我们就有了一个可以存储“0”的电路了!
那如果把非门的其中一个输入与输出连接在一起会发生什么?
我们可以观察到,激活状态后无论IN1输入“1”或者“0”,OUT都总是“1”,因此我们就有了一个可以存储“1”的电路了!
如果把我们两个电路同时连接起来,就可以组成一个名为“AND-OR锁存器”的电子器件:
当INPUT1=1,RESET=0时,输出如下(深色部分意味着电路通):
当INPUT1=1,RESET=1时,输出如下(深色部分意味着电路通):
如图上所示,在“与”逻辑电路中,由于两个输入“1”和“0”导致条件没有成立,所以“AND”这个电路没有通,这也意味着电路的输出(OUTPUT)1为上次锁保存到的1,也就意味着电路记住了1个bit的信息。
我们再来,当INPUT1=0,RESET=1时,输出如下(深色部分意味着电路通):
这样可能很难发现问题所在,我们把前面三个图的输出汇总成一个表格:
发现问题了吗?其实RESET线是起到开关的作用!当RESET=1时,锁存器电路关闭数据输入,这时候不管INPUT1输入什么数据,OUTPUT端都是保存了上一次保存到的数据。当RESET=0时,锁存器电路打开数据输入,这时候INPUT1输入什么就会把上一次保存的数据替换掉,不信吗?那你尝试下把RESET打开,INPUT1输入0,不出意外你会得到以下表格:
PS:要是问最后两个结果为什么和之前不一样,请认真看看上面的文字
总结下:之所以叫锁存器,是因为它将1个值锁住保持不变,输入该值的操作被称为写入,输出该值的操作被称为读取。
三.门控锁存器
只要了解了前面的AND-OR锁存器,门控锁存器其实很容易理解,因为使用INPUT1和RESET这两个端口来储存数据一般人很难理解,所以在AND-OR锁存器基础上加多一个门锁电路,来控制数据是否允许被写入,这就叫做门控锁存器。电路图如下:
这个电路看起来似乎很复杂,其实你只要知道,只有当“允许写入线”打开时(输入为1),才允许电路放入需要保存的数据,而当“允许写入线”关闭时(输入为0),数据输入线输入啥都不会被储存(原理)。
四.寄存器
以上的锁存器只能保存一位数据,但用一排锁存器组成的电路就叫寄存器。多少位的寄存器就有多少个锁存器,比如以下有个八位的寄存器:
(这里借用B站宝藏课程:计算机速成课Crash Course Computer Science 的图片)
这八个寄存器用一个线来连接所有的“允许写入线”,当需要写入一个八位数据时,先接通“允许写入线”,紧接着就可以在“数据输入线”里把所要保存的数字传输进去。现今计算机中有很多名称的寄存器(PC计数寄存器、地址寄存器等等),但其实本质只是一个可以存N位数据的锁存器而已,至于怎么用就是人为定义的了。
当然,采用以上并排连接的方式在少位数的寄存器中或许可行,但在一些多位数的寄存器里就是耗费巨多线路的事情了(比如256bit寄存器,需要513根线),解决的办法就是矩阵。
(继续借用B站宝藏课程:计算机速成课Crash Course Computer Science 的图片)
将并排放置的寄存器改为网格,对于256位寄存器,我们将其放置为16x16的网格,如果启用某个寄存器,仅需要打开对应行和列的线:
真方便!