结构化计算机组织

17 Mar 2025 | 6 分钟阅读

数字计算机是一种机器,它可以处理人们给它的指令来解决问题。计算机的原始指令构成了一种人们可以与计算机交流的语言。这种语言称为机器语言。

当我们进入计算机设计时代时,人们面临一个大问题:人们方便的东西和计算机方便的东西之间存在很大的差距。这个问题导致计算机被构建成一系列抽象,每个抽象都建立在它下面的抽象之上。

通过这种方法,可以控制复杂性,并且可以系统地设计和组织计算机系统。这种方法称为结构化计算机组织。

他们试图使其机器语言的原始指令尽可能简单,以满足计算机的使用和性能要求,从而降低所需电子器件的复杂性和成本。

例如,人们想做 X 任务,但计算机只能做 Y 任务。这对人们来说是个问题,这就是为什么人们决定设计一种称为结构化计算机组织的新计算机。

解决此问题的方法

该问题可以通过两种方式解决。这两种解决方案都涉及设计一套新的指令集,该指令集比内置的机器指令对人们来说更方便使用。

假设有两种语言,L0(机器语言)和 L1(机器不理解的语言)。现在我们有两种方法可以让 L1 也在机器上执行。

第一种方法:执行用 L1 编写的程序,并将每条指令替换为 L0 中的等效指令序列。现在,生成的程序完全由 L0 指令组成。然后,计算机执行新的 L0 程序而不是旧的 L1 程序。此技术称为翻译。

Structured Computer Organization

第二种方法:在此方法中,用 L0 编写一个程序,该程序以 L1 中的程序作为输入数据,通过检查每条指令并直接执行等效的 L0 指令序列来执行它们。它不需要生成新的 L0 程序。此技术称为解释,执行它的程序称为解释器。

Structured Computer Organization

翻译解释是相似的。在这两种方法中,计算机都通过执行 L0 指令的等效序列来执行 L1 中的指令。主要区别在于,在翻译中,首先将整个 L1 程序转换为 L0 程序,然后丢弃 L1 程序,然后将新的 L0 程序加载到计算机内存中。在执行过程中,新生成的 L0 程序控制着计算机。

在解释中,在检查和解码了每条 L1 指令之后,会立即执行它。不会生成翻译后的程序。在这里,解释器控制着计算机,L1 程序只是数据。这两种方法以及两者的组合都得到了广泛应用。

多级机器

与其考虑翻译或解释,不如想象一个假想计算机虚拟机,其机器语言是 L1。我们将虚拟机称为 M1,将对应于 L0 的虚拟机称为 M0。

人们可以简单地用 L1 编写程序,然后计算机直接执行它们。即使语言为 L1 的虚拟机价格昂贵或复杂到无法用电子电路构建,人们仍然可以为其编写程序。这些程序可以通过用 L0 编写的程序来解释或翻译。

Structured Computer Organization
  • 要执行翻译解释,语言 L0 和 L1 不能差异太大。这个限制意味着 L1 比 L0 更好,但对于大多数应用程序来说仍然远非理想。与创建 L1 的初衷相比,这个结果可能令人失望。
  • 现在,我们发明了一套新的指令,它比 L1 更面向人类,更少面向机器。这第三套指令也构成了一种语言,我们称之为 L2,对应的虚拟机为 M2。人们可以用 L2 编写程序。这些程序可以翻译成 L1,或者由用 L1 编写的解释器执行。
  • 在所有语言系列中,每种语言都比其前代更方便。它一直持续到找到合适的语言。每种语言都以上一代为基础,因此我们可以将使用此技术的计算机视为一系列级别,一层叠在另一层之上,如图所示。最底层的语言或级别最简单,最顶层的语言或级别最复杂。

在某种情况下,具有 n 层的计算机可以看作是 n 个不同的虚拟机,每个虚拟机都有不同的机器语言。电子电路可以直接执行用语言 L0 编写的程序,无需翻译或解释。用 L1、L2、...、Ln 编写的程序必须由在较低级别上运行的解释器解释,或者翻译成对应于较低级别的另一种语言。

当代多级机器

当代多级机器有六个级别,如图所示。最底层的 0 级是机器的真实硬件,其电路执行 1 级的机器语言程序。

Structured Computer Organization
  1. 数字逻辑级别:它由模拟组件构建而成,例如门和晶体管。每个门有一个或多个数字输入,并计算这些输入的某个简单函数,例如 AND 或 OR。每个门最多由一个晶体管构建而成。
    少量门组合成一个 1 位存储器,存储 0 或 1。1 位存储器组合成 16、32 或 64 位,形成寄存器。每个寄存器可以保存一个最多为某个最大值的二进制数字。门也可以组合成主要的计算引擎本身。
  2. 微体系结构级别:它包含一组 8 到 32 个寄存器,构成本地内存,以及一个称为 ALU(算术逻辑单元)的电路,该电路可以执行简单的算术运算。寄存器连接到 ALU,形成一个数据通路,数据通过该通路流动。数据通路的基本操作包括选择一个或两个寄存器,让 ALU 对它们进行操作,并将结果存储回某个寄存器。
    在某些机器上,数据通路的操作由一个称为微程序的程序控制。在其他机器上,数据通路直接由硬件控制。在具有软件控制数据通路的机器上,微程序是 2 级指令的解释器。它逐条获取、检查并执行指令,并使用数据通路来实现。
  3. 指令集体系结构 (ISA) 级别:如果计算机制造商为其一台机器提供了两个解释器,并解释了两个不同的 ISA 级别,那么它将需要提供两个机器语言参考手册,每个解释器一本。
  4. 操作系统机器级别:此级别通常是混合级别,其语言中的大多数指令也处于 ISA 级别。还有新的指令、不同的内存组织、并行运行两个或多个程序以及各种其他功能。操作系统解释了 3 级指令中的一部分,另一部分由微程序直接解释。
  5. 汇编语言级别:此级别允许人们以一种不如虚拟机语言本身那么令人不愉快的方式为 1、2 和 3 级编写程序。汇编语言程序首先被翻译成 1、2 或 3 级语言,然后由适当的虚拟机或实际机器解释。执行翻译的程序称为汇编器。
  6. 面向问题语言级别:它包含应用程序程序员为解决问题而设计的语言。这些语言通常称为高级语言,用这些语言编写的程序通常通过称为编译器的翻译器翻译成 3 级或 4 级语言。
    在某些情况下,5 级包含特定应用领域的解释器,例如符号数学。它提供了用于解决该领域问题的​​数据和操作,以便人们易于理解。