计算机组织中的 ALU 和数据通路

17 Mar 2025 | 6 分钟阅读

早期,表示和存储数字是计算机的基本操作。但当计算机出现计算时,诸如加法、乘法之类的数字运算,这些运算由计算机的ALU或算术逻辑单元处理。

中央处理单元 (CPU) 可分为两个部分

  1. 数据部分:内存、寄存器、加法器、ALU 和通信总线。每个步骤(取指令、译码、执行、保存结果)都需要内存、寄存器和 ALU 之间的通信(数据传输)路径。它也称为数据通路。
  2. 控制部分:每个步骤的数据通路由控制信号设置,这些信号设置通信总线上的数据流方向并选择 ALU 和内存功能。控制信号由一个或多个有限状态机组成的控制单元生成。

数据通路

假设 CPU 中需要执行任何数据处理操作,例如将寄存器的内容从一个地方转移到另一个地方,从一个寄存器转移到另一个寄存器,在 ALU 中执行两个数字的加法,将某内容复制到内存并复制到寄存器。所以,CPU 中发生的任何数据处理操作,然后对于该数据操作,数据会遵循一条特定路径,称为“数据通路”。

ALU and Data Path in Computer Organization

数据通路是执行数据处理操作的功能单元(如算术逻辑单元或乘法器)、寄存器总线的集合。它与控制单元一起组成中央处理单元 (CPU)。通过使用多路复用器连接多个数据通路,可以构建一个更大的数据通路。

数据通路是ALU、一组寄存器以及允许数据在它们之间流动的 CPU 内部总线。

CPU 最简单的设计使用一个通用的内部总线,而高效的加法需要一个稍微复杂的三总线内部结构。许多相对简单的 CPU 都有一个 2 读、1 写寄存器文件连接到 ALU 的 2 个输入和 1 个输出。

1. 算术逻辑单元 (ALU)

ALU 是计算机的数学大脑。ALU 是一个提供算术和逻辑运算的数字电路。它是计算机中央处理单元的基本构建块。它存在于每个 CPU 中,用于执行加法、减法、除法、乘法以及更多操作。

它是系统执行特定指令或程序逻辑的主要组成部分。ALU 接收两个操作数作为输入和一个功能码,ALU 可以执行多种功能,如减法、X-NOR、除法等。

ALU and Data Path in Computer Organization

除了 ALU,现代 CPU 还包含一个控制单元和一组寄存器。大多数操作由一个或多个 ALU 执行,它们从输入寄存器加载数据。寄存器是 CPU 可用的少量存储空间,并且可以非常快速地访问这些寄存器。控制单元告诉 ALU 对可用数据执行什么操作。在计算或处理之后,ALU 将输出存储在输出寄存器中。

2. 寄存器

寄存器就像一个门,信号通过这些门进一步发送到组件执行微操作。寄存器受控制,寄存器的信号由控制单元导向。这里有五个寄存器用于存储输入-输出信号数据

  1. 程序计数器
    程序计数器 (PC) 是计算机处理器中的一个 CPU 寄存器,它存储内存中将要执行的下一条指令的地址。每取一条指令,程序计数器就将其存储值增加 1。它是一个数字计数器,对于更快地执行任务和跟踪当前执行点是必需的。
  2. 指令寄存器
    在计算中,指令寄存器 (IR) 是 CPU 控制单元中保存当前正在执行或解码的指令的部分。指令寄存器是 CPU 控制单元中保存当前正在执行或解码的指令的部分。指令寄存器专门保存指令并将其提供给指令解码器电路。
  3. 内存地址寄存器
    内存地址寄存器 (MAR) 是 CPU 寄存器,它要么存储将从 CPU 获取数据的内存地址,要么存储将发送数据并存储到其中的地址。它是 CPU(中央处理单元)中的一个临时存储组件,它临时存储由内存单元发送的数据的地址(位置),直到执行特定数据的指令。
  4. 内存数据寄存器
    内存数据寄存器 (MDR) 是计算机处理器或中央处理单元 (CPU) 中的寄存器,它存储正在与即时访问存储器进行传输的数据。内存数据寄存器 (MDR) 也称为内存缓冲区寄存器 (MBR)。
  5. 通用寄存器
    通用寄存器用于在微处理器内存储临时数据,并且它是一个多用途寄存器。它们可以由程序员或用户使用。

3. 总线

在早期计算机中,总线是带有多个硬件连接的并行电线。因此,总线是一种在计算机内部或计算机之间传输数据的通信系统。它包括导线、光纤等硬件组件,以及包括通信协议在内的软件。

寄存器、ALU 和互连总线统称为数据通路。总线有以下几种类型:

  1. 地址总线:用于传输地址的总线。
  2. 数据总线:用于传输数据的总线。
  3. 控制总线:如果总线传输控制信号。
  4. 电源总线:如果传输时钟脉冲、电源信号,则称为电源总线。

总线可用于单一目的或多个目的。当有不同类型的总线时,会发生不同类型的总线组织,例如:

单总线组织

在单总线组织中,使用单个总线实现多种功能。一组通用寄存器、程序计数器、指令寄存器、内存地址寄存器 (MAR) 和内存数据寄存器 (MDR) 连接到单个总线。内存的读/写可以通过 MAR 和 MDR 完成。

ALU and Data Path in Computer Organization

程序计数器指向将要从中获取下一条指令的内存位置。指令寄存器将保存当前指令的副本。在单总线组织中,一次只能从总线读取一个操作数。

如果需要读取两个操作数进行运算,则需要读取两次。这就是为什么这个过程有点冗长。单总线组织的一个优点是它是最简单的,而且实现成本非常低。

同时,它有一个缺点,就是只有一个总线。这个“一个总线”被所有通用寄存器、程序计数器、指令寄存器、MAR 和 MDR 访问,使得所有操作都是顺序的。如今没有人推荐这种架构。

双总线组织

这克服了单总线组织的缺点,并开发了另一种称为双总线组织的架构。在双总线组织中,有两个总线,通用寄存器可以从两个总线读取/写入。在这种情况下,由于有两个总线,可以同时获取两个操作数。

一个总线用于为 ALU 获取操作数,另一个总线用于为寄存器获取。当两个总线都在忙于获取操作数时,会发生这种情况,输出可以存储在临时寄存器中。当总线空闲时,就可以将特定输出发送到总线上。

ALU and Data Path in Computer Organization

双总线组织有两种版本,即内总线和外总线。通过内总线,通用寄存器可以读取数据,并通过外总线,通用寄存器可以写入数据。这里总线是专用的。

三总线组织

在三总线组织中,我们有三个总线:OUT bus1、OUT bus2 和 IN bus。通过输出总线,可以获取来自通用寄存器的操作数并在 ALU 中进行评估,输出被发送到输入总线以发送到相应的寄存器。

ALU and Data Path in Computer Organization

这种实现很复杂但速度更快,因为两个操作数可以并行流入 ALU 并流出 ALU。它是为了克服双总线组织的“忙等待”问题而开发的。

在这种结构中,执行完成后,由于多了一个总线,输出可以立即发送到总线而无需等待。与单总线相比,多总线组织的主要优点是:

  • 增加寄存器的大小。
  • 减少执行周期数。
  • 提高执行速度,或者我们可以说执行速度更快。