锁存器
在之前, 为保持按钮开关输入的值, 已经初步地讨论了电路存储的原理, 也即是利用了反馈的机制.
而在上一章, 则深入分析了各种门电路进行反馈连接后具有的一些特性, 特别地, 我们已经接触由两个 或非门 交叉连接构成的互相反馈的电路.
在这个电路里, 已经可以实现诸如 置位, 复位 等操作, 而且这些状态也可以保持, 也即是我们可以把一位(one bit)的电路状态锁住并保存于电路中, 这样的电路也即是 内存(memory) 的雏形.
在最开始, 我们只是为保存按钮开关按下的值, 当然内存的作用远不止于此. 举个简单的例子, 前面已经实现了多位数的加法器, 但只是对两个数进行相加.
如果想对多个多位数进行相加呢? 一种方式是使用很多个多位数加法器, 但这样做显然是很不经济的. 除此之外, 我们只能采用一些比较笨的方法, 先把两个数相加, 然后把和作为第一个加数输入, 另一个加数放第三个数, 然后又得到一个新的和...
反复这样操作, 就可以把多个多位数加和了, 而且只需要用到一个多位数加法器.
自然, 这样的方案依然有它的弊端, 首要的一点就是很繁琐, 此外从输出又再次手动转到输入的过程也很容易出错.
如果有一个装置能够把临时的加和存储起来, 然后通过一个简易的控制手段又可以把结果转到输入端继续参与下一轮的加和, 事情就会方便很多.
而能够实现状态存储的这个装置, 称为 锁存器(latch). 我们将从最简单的 直接置位-复位锁存器(Set-Reset Latch) 开始, 然后是所谓的 D 锁存器 (也即是数据锁存器, D 指 Data), 最后, 按照简易的组合原则, 从一位的锁存器扩展到多位的锁存器, 这样就可以保存一个多为加法器的和了.