为了和先前提到的1位锁存器保持一致,我们将它可以画成下面这种形式。
还有另一种方法集成8个1位锁存器,但其结构并不像上面的这样直观。假设我们只想用一个数据输入和输出信号端,而且希望锁存器能将输入信号数据分8次独立存储,这个任务可以在长达一天内完成,或者可能迅速在下一分钟内搞定。最后一项要求就是我们还希望能够通过观察数据输出信号端确定实际的8位输出。
换句话说,在这种锁存器中我们只想存储8个单独的比特,而不是存储1个8位二进制数。
为什么会有这种需求呢?原因可能在于仅有一个灯泡!
我们知道现在所需要的是8个1位锁存器。先不去考虑数据如何存储在这些锁存器中,把重点放在如何用一个灯泡来确定锁存器的数据输出信号。最简单的方法就是把这个灯泡依次连接到每个锁存器上,分若干次来测试各个锁存器的输出,但是我们要追求更加自动化的方法。用开关来选择想要检查的锁存器是一个好的办法。
究竟需要多少个开关才能解决问题呢?我们可以把这个过程进一步抽象,问题变成了怎么样从8个物体中选出一个我们想要的,我们需要3个开关。这是因为通过3个开关连通与闭合的排列组合,总共可表示出8个不同的值:000、001、010、011、100、101、110和111。
现在我们手头上已有8个1位锁存器、3个开关、1个灯泡,此外在开关和灯泡之间还有另外一种装置,如下图所示。
编码隐匿在计算机软硬件背后的语言
200