寄存器与存储器

复习

  1. 第十一章:设计完成了除法器,本质是移位和减法的组合
  2. 第十二章:利用上面的部件,制造了一个简单的 ALU(Arithmetic Logic Unit,算术逻辑单元)
  3. 第十三章:突发奇想将部件门首尾相连,观察到了“记忆”现象
  4. 第十四章:利用首尾相连的“记忆”,实现了简单的 1 位锁存器
  5. 第十五章:利用锁存器和边沿触发,实现触发器,进而实现了简单的 1 位边沿敏感 D 触发器

TL;DR

  • 多个触发器相连接,形成寄存器

正文

引言

  还记得我们怎样做出 ALU(算数逻辑单元)吗?我们利用与或非基础三门,造出复杂逻辑门,进而造出加法器、减法器、乘法器、除法器,配上一些组合逻辑,让逻辑门识别我们需要做的特定运算,ALU 就完成了。

  寄存器也是如此,甚至更简单。我们造出了 1 位触发器,实现了锁存功能,还屏蔽了噪声信号干扰,完全可以把这个 1 位触发器当作新元件使用。

  恭喜你!我们的抽象能力上升了一级。

触发器与寄存器

  触发器只能保存 1 位信息,我们在《第三章:计算机的数据表示》中谈到,仅仅表示 0-9 这十个数,都需要 4 位。

  所以,我们需要更多的位数,用来表示更多的信息。

  用多个 1 位触发器,并排连接成 8 位,寄存器就完成了。

  对,就这么简单。

  当然,现代的家用微型计算机一般都是 64 位了,所以如果要跟上现代计算机的脚步,就需要 64 位的寄存器了,需要并排连接 64 个 1 位触发器。

思考题

  仅仅有 8 位或者 64 位的寄存器就够了吗?我们会不会需要更大量的存储呢?

寄存器的用处

  8 位或者 64 位的寄存器有什么用呢?

  回想一下,在《第十二章:算术逻辑单元》中,我们初步接触了“指令”的概念。比如“0001”并不表示数字 1,而是表示“做加法”运算。

  “指令”不能和“数据”混为一谈,所以我们需要更多的寄存器,分开保存信息。

//  我们暂时使用 1 个寄存器,用来保存指令,把它叫做指令寄存器(Instruction Register,IR)。另外,再预留出其他寄存器,用来分别保存数据和中间结果。

小结

知识点

  • 寄存器的构成及作用

思考题答案(仅供参考)

  肯定需要,保存 1-100 这 100 个数,总不可能拿 100 个寄存器来保存吧?

参考资料

  1. Wikipedia(zh):寄存器:寄存器的详细介绍
  2. Wikipedia(zh):存储器层次结构:存储层次的基本概念

推荐

协议

  本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。

封面图

设计师 | 南国微雪