7.5 数字设备

作为最后一节,本节主要解决的问题是,连接和控制我们在前两节中所讨论的电路模块。

第一个要处理的是计算部分,第二个是存储部分,第三个是控制部分(control)。ALU、总线复用器、寄存器和存储器占CPU门电路总数的99%以上,从某种意义上来说,我们已经基本完成了。但从另一个角度来说,我们刚刚开始能够解决“计算机如何运行”的问题,因为剩余的门电路将解决的是控制信息如何以及何时传给处理器。它们解决的是计算机核心的问题,即“执行程序”的问题。

TOY-8 首先,我们明确一下我们的目标:为我们的TOY系列最小的虚拟计算机设计一个CPU。我们之前已经提及了关于TOY-8的许多信息,现在我们将细化这些问题。

基础参数。我们真正的目标是易于讲解:我们想在本书的两页纸上展示一个完整计算机的电路实现,可以看到每个开关。因为TOY-8是一个非常小的计算机,只有16个8位字的存储器和一个寄存器。尽管有这些或多或少的限制,但用TOY-8完成非常重要的计算任务也不是不可能的(但我们不会花时间这样做)。

指令系统。由于只有一个寄存器,TOY-8的指令格式与TOY格式有很大不同。具体而言:

·每条指令都隐含地指向唯一的寄存器,所以指令不需要特别地指向寄存器。

·为了指定一个内存字的地址,我们需要4位二进制数。

·为了指定一个操作码,我们需要3位二进制数。

·位0未被使用(一直保持为0)。

TOY-8指令的格式如下图所示。

TOY-8指令解析

这些规定体现了指令集体系结构中涉及的因素,这是早期计算机设计中相当重要的一个因素。例如,我们可能并没有确定在计算机的下一个版本中是否要支持16条指令或32个字的内存。现在你可能会明白早期的设计师为什么留下一些未使用的位,这样可以在后续修改时保持一些灵活性。我们这里的设计目标是尽可能简单地开发一台能够说明真实计算机主要特性的计算机,所以我们认为8个指令和16个字的内存足以满足我们的需要。 ...

Get 计算机科学导论:跨学科方法 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.