什么是 ALU (算术逻辑单元)?

2025年5月19日 | 阅读 17 分钟

在计算机系统中,ALU 是中央处理器 (CPU) 的主要组成部分,它代表算术逻辑单元,执行算术和逻辑运算。它也被称为整数单元 (IU),是 CPU 或 GPU 内部的集成电路,是处理器中执行计算的最后一部分。它能够执行与算术和逻辑运算相关的所有过程,例如加法、减法和移位运算,包括布尔比较(XOR、OR、AND 和 NOT 运算)。

此外,二进制数可以完成数学和位运算。算术逻辑单元分为 AU(算术单元)和 LU(逻辑单元)。ALU 使用的操作数和代码告诉它根据输入数据需要执行哪些操作。当 ALU 完成输入处理后,信息将被发送到计算机内存

What is ALU

除了执行加法和减法相关的计算外,ALU 还可以处理两个整数的乘法,因为它们被设计为执行整数计算;因此,其结果也是一个整数。然而,除法运算通常可能不由 ALU 执行,因为除法运算可能会产生浮点数结果。相反,浮点单元 (FPU) 通常处理除法运算;其他非整数计算也可以由 FPU 执行。

此外,工程师可以设计 ALU 来执行任何类型的操作。但是,随着操作变得更加复杂,ALU 的成本会更高,因为 ALU 会产生更多热量并占用 CPU 中的更多空间。这就是工程师制造强大 ALU 的原因,它确保了 CPU 的快速和强大。

CPU 所需的计算由算术逻辑单元 (ALU) 处理;其中大多数操作在性质上是逻辑性的。如果 CPU 变得更强大,这是基于 ALU 的设计。然后它会产生更多热量并消耗更多电力或能量。因此,ALU 的复杂性和强大程度之间必须有一个适中的度,并且不应过于昂贵。这就是为什么更快的 CPU 更昂贵;因此,它们消耗大量电力并产生更多热量。算术和逻辑运算是 ALU 执行的主要运算;它还执行位移运算。

虽然 ALU 是处理器中的一个主要组件,但 ALU 的设计和功能在不同的处理器中可能有所不同。例如,有些 ALU 被设计为仅执行整数计算,而有些则用于浮点运算。一些处理器包含一个算术逻辑单元来执行操作,而另一些可能包含多个 ALU 来完成计算。ALU 执行的操作是

  • 逻辑运算: 逻辑运算包括 NOR、NOT、AND、NAND、OR、XOR 等。
  • 位移运算: 它负责将位的ョ置向右或向左移动指定数量的位置,这称为乘法运算。
  • 算术运算: 虽然它执行乘法和除法,但这指的是二进制加法和减法。但乘法和除法运算的制造成本更高。在乘法中,加法可用作替代,减法可用作除法的替代。

历史与演变

ALU 的历史几乎和计算机的历史一样悠久。考虑到过去几年,它发生了很大变化

  • 20 世纪 40 年代:第一批 ALU 出现在早期数字计算机中,例如 ENIAC,它使用真空管进行简单的算术功能。
  • 20 世纪 50 年代 - 70 年代:从真空管到晶体管的转变缩小了 ALU 的尺寸,使其更快、更可靠、更节能。
  • 20 世纪 80 年代 - 90 年代:微处理器的引入导致独立的 ALU 集成到芯片中,这提高了速度并使个人计算成为可能。
  • 21 世纪至今:如今,新处理器中的每个 CPU 核心都拥有多个 ALU,能够并行执行指令并大大提高性能。

在开发过程中,ALU 的能力和准确性不断提高。它从简单的 4 位和 8 位运算发展到更复杂的 32 位和 64 位运算,甚至更高。这反映了 CPU 设计相对于系统其他组件的整体改进,以及对更复杂计算的需求。

ALU 的关键特性

ALU 是 CPU 最基本和最基础的单元之一,其一些显著特征列于下文

  • 执行数学和逻辑运算:ALU 执行涉及以下操作的算术任务:加法、减法、乘法和除法。它还执行 AND、OR、NOT 和 XOR 等逻辑运算。
  • 处理二进制数据:使用 0 和 1 的序列来执行逻辑和/或操作值。ALU 处理所有以二进制形式接收的数据。
  • 由控制单元 (CU) 控制:ALU 根据 CPU 控制单元的反馈(接收到的指令和信号)执行命令。该单元指示 ALU 何时执行以及执行哪些操作。
  • 处理整数运算:ALU 设计上处理整数数据类型。与小数或浮点数相关的更复杂的计算通常由另一个称为浮点单元 (FPU) 的单元完成。

如前所述,ALU 对处理器的功能至关重要。

ALU 的工作原理

ALU 主要对一组二进制数执行算术和逻辑函数——它通过数字逻辑电路网络执行加法、减法、乘法等。以下是其简化的工作方式

What is ALU

接收输入

ALU 从 CPU 接收两个二进制输入,例如 1010 和 0110,以及一个操作码(opcode),该操作码描述了如何处理这些数字,例如在此情况下为加法。

操作选择

控制逻辑或操作解码器执行一个操作码,激活相应的内部电路。在这种情况下,它会打开算术单元的加法电路。

执行

算法逻辑单元接收二进制数,并将它们处理成算术单元的全加器。全加器执行位运算,将当前位和前一位的进位相加并生成结果。

生成输出

输出寄存器将接收临时存储的结果,例如 10000,然后可以将其发送到需要该信息的系统组件的另一个内存。

标志更新

根据输出,状态寄存器中的状态标志将被递增。例如,由于输出超过了四位限制,因此会指示进位标志。

所有这些操作都必须在纳秒内完成,并且通过使用逻辑门来实现,这些逻辑门设计为并行处理以获得最大效率。

算术逻辑单元 (ALU) 信号

ALU 包含各种输入和输出电气连接,这导致了外部电子设备和 ALU 之间的数字信号传输。

ALU 输入接收来自外部电路的信号,作为响应,外部电子设备从 ALU 接收输出信号。

数据: ALU 包含三个并行总线,其中包括两个输入和输出操作数。这三个总线处理相同数量的信号。

操作码: 当 ALU 将要执行操作时,操作选择码描述了 ALU 将要执行的算术或逻辑运算的类型。

地位

  • 输出: ALU 操作的结果以补充数据的形式通过状态输出提供,因为它们是多个信号。通常,通用 ALU 包含溢出、零、进位输出、负等状态信号。当 ALU 完成每次操作时,外部寄存器包含状态输出信号。这些信号存储在外部寄存器中,从而可以用于未来的 ALU 操作。
  • 输入: 当 ALU 完成操作后,状态输入允许 ALU 访问更多信息以成功完成操作。此外,来自先前 ALU 操作的已存储进位输出称为单个“进位输入”位。
What is ALU

ALU 的配置

下面描述了 ALU 与处理器的交互方式。每个算术逻辑单元都包含以下配置

  • 指令集架构
  • 累加器
  • Stack
  • 寄存器到寄存器
  • 寄存器堆栈
  • 寄存器内存

累加器

每个操作的中间结果都存储在累加器中,这意味着指令集架构 (ISA) 不会过于复杂,因为只需要保存一位。

通常,它们速度很快且不复杂,但为了使累加器更稳定,需要编写额外的代码来填充适当的值。不幸的是,对于单个处理器,很难找到累加器来执行并行处理。累加器的例子是桌面计算器。

Stack

每当执行最新操作时,这些操作都会存储在以自顶向下顺序保存程序的堆栈中,这是一个小的寄存器。当添加新程序以执行时,它们会推动旧程序。

寄存器-寄存器架构

它包含一个用于 1 个目标指令和 2 个源指令的位置,也称为 3 寄存器操作机器。此指令集架构必须更长才能存储三个操作数,1 个目标和 2 个源。操作结束后,将结果写回寄存器会很困难,而且字长也应该更长。然而,如果在此处遵循写回规则,可能会导致同步问题。

MIPS 组件是寄存器到寄存器架构的一个例子。对于输入,它使用两个操作数,对于输出,它使用第三个独立的组件。存储空间难以维护,因为每个都需要独立的内存;因此,它必须始终保持最高优先级。此外,执行某些操作可能很困难。

寄存器 - 堆栈架构

通常,寄存器和累加器操作的组合被称为寄存器-堆栈架构。需要在寄存器-堆栈架构中执行的操作会被推送到堆栈的顶部。并且其结果保存在堆栈的顶部。通过使用逆波兰表示法,可以分解更复杂数学运算。一些程序员使用二叉树的概念来表示操作数。这意味着逆波兰表示法对这些程序员来说可能很容易,而对其他程序员来说可能很难。为了执行推入和弹出操作,需要创建新硬件。

寄存器和内存

在此架构中,一个操作数来自寄存器,另一个来自外部内存,因为它是最复杂的架构之一。其原因在于,每个程序都可能非常长,因为它们需要保存在完整的内存空间中。通常,这项技术与寄存器-寄存器技术集成,并且实际上不能单独使用。

ALU 的功能

计算机的基本运算主要分为两大类

ALU 逻辑运算和活动,也称为算术运算。所有这些操作对于观察计算机系统中的参数和控制流是必需的。

What is ALU

A. 算术运算

对二进制数据执行加法、减法、乘法和除法等运算

  • 加法:将两个二进制数相加并产生和。
  • 减法:计算两个二进制数之间的差值。
  • 乘法:基本 ALU 可以通过重复加法来实现。
  • 除法:一些 ALU 通过重复减法来执行此操作。
  • 增量/减量:对循环计数器和内存寻址很有用;这些对给定值加一或减一。

B. 逻辑运算

逻辑函数根据布尔逻辑操作单个位

  • AND:仅当两个位都为 1 时才返回 1。
  • OR: 当至少有一个位为 1 时返回 1。
  • NOT: 反转位,将零转换为一,反之亦然。
  • XOR: 当位不相同时返回 1。
  • NAND/NOR: AND 和 OR 运算的补码。

附加功能

现代 ALU 也可能支持

  • 位移: 将位向左或向右移动,通常用于乘以或除以二的幂。
  • 比较运算: 确定相等性或关系条件(例如,等于、大于、小于)。

这些功能使 ALU 对计算逻辑至关重要。

ALU 的组成部分

算术逻辑单元,或 ALU,是 CPU 的一个组成部分。它执行算术和逻辑运算。以下是其最重要的组成部分的细分

What is ALU

1. 输入寄存器

ALU 直接接收要处理的操作数,这些操作数存储在这些寄存器中。它们也称为 A 和 B,并在执行操作之前保存输入信息。

2. 操作解码器(控制逻辑)

每个单元都配备两个控制单元,用于解码操作码。然后根据需要,在 ALU 中依次执行加法或减法、AND 或 OR 以及其他操作。

3. 算术电路

加法和减法,甚至乘法,都可以分配给它。其中还包含其他基本功能,例如全加器。还有加法器/减法器,有时还有乘法器等重要组件。

4. 逻辑电路

这部分执行布尔逻辑工作。它实现 AND、OR、NOT、XOR 等核心逻辑设备,允许在操作数级别执行位运算。

5. 移位器

6. 它有助于实现将位左移或右移,通常用于乘以或除以二的幂。它执行逻辑和算术移位,以及循环移位。

7. 输出寄存器

执行操作后,此寄存器保存结果,直到将其移至 CPU 或内存的其他部分。

8. 标志或状态寄存器

此寄存器保存状态标志,指示结果的特定状态条件

  • 零标志 (Z):如果结果为 0,则设置。
  • 进位标志 (C):如果存在进位输出,则设置。
  • 溢出标志 (O):表示算术溢出。
  • 负标志 (N):如果结果为负,则设置。

ALU 的类型

ALU,或算术逻辑单元,可以根据它接收和处理的数据类型进行分类。然而,在许多 ALU 类别中,有三种最为突出

1) 整数 ALU

这是当今通用计算机应用程序中最常见的 ALU 类型。它接受逻辑语句,其中值既可以作为操作数也可以作为操作数。整数 ALU 执行各种计算任务,从加法和减法到 AND、OR、位移和比较值。整数 ALU 针对整数操作进行了优化,并处理日常计算任务。

2) 浮点 ALU (FPU)

这些是当今最强大的计算机。它能够处理实数或浮点数。这些包括带小数点的数字,常用于科学计算、工程应用和多媒体处理。浮点数上的操作通常比整数上的操作更复杂,因此 FPU 通常作为处理器内的独立单元来制造,以避免性能冲突。

3) 向量 ALU

向量 ALU 是一个一次性对数据数组(向量)执行操作的单元。此功能对于计算活动(如科学模拟、图像处理和渲染)非常有用。当执行科学图像处理时,向量 ALU 的性能提升是巨大的,因为它并行处理多个数据元素。

ALU 的优点

ALU 有各种优点,如下

  • 它支持并行架构和高性能应用程序。
  • 它能够同时获取所需输出并将整数和浮点变量组合起来。
  • 它能够执行大量指令,并且精度范围很高。
  • ALU 可以组合同一代码中的两个算术运算,例如加法和乘法,或加法和减法,或任何两个操作数。例如,A+B*C。
  • 在整个程序中,它们保持均匀,并且它们的间隔方式不会中断中间部分。
  • 总的来说,它速度非常快;因此,它能快速提供结果。
  • ALU 没有敏感性问题,也没有内存浪费。
  • 它们成本较低,并最大限度地减少了逻辑门需求。

ALU 的缺点

ALU 的缺点如下

  • 使用 ALU,浮点变量的延迟更大,并且设计的控制器不容易理解。
  • 如果内存空间是确定的,则会在我们的结果中出现错误。
  • 对于业余爱好者来说,由于其电路复杂,并且流水线概念也很难理解。
  • ALU 的一个已知缺点是延迟不规律。
  • 另一个缺点是四舍五入,这会影响准确性。

ALU 的应用

ALU 是任何现代数字设备中不可或缺的主要部分之一。它执行所有基本的计算算术和逻辑功能,并提供执行计算机操作所需的服务。它在最新的个人设备和先进的科学系统中都有使用;以下是它的一些重要应用领域

1. 通用计算

服务器、台式机和笔记本电脑中的所有计算活动都由算术逻辑单元 (ALU) 驱动,ALU 负责执行任何和所有的算术运算,包括计算、加法和减法的子集、通过逻辑比较进行的决策以及所有核心编程。ALU 执行所有核心处理任务,无论是参与生产力软件、互联网浏览,还是运行复杂的模拟。ALU 对于满足和确保系统无阻碍的性能至关重要,没有任何延迟。

2. 移动设备

在平板电脑和智能手机等移动设备中,ALU 锁定在处理器中,以极其紧凑和低功耗的形式存在。ALU 支持应用程序、用户界面和其他隐藏服务的快速计算,这些服务非可视化运行。例如,ALU 有助于处理触摸输入并在用户每次屏幕交互时在不到一秒的时间内渲染屏幕输出。为了实现多任务处理、轻松执行多媒体功能并节省电池电量,现代移动处理器配备了多个 ALU。

3. 嵌入式系统

洗衣机、汽车控制单元、智能恒温器,甚至工业机械也使用嵌入在微控制器和嵌入式处理器中的 ALU。实时执行计算和控制至关重要,ALU 负责评估传感器数据、定时逻辑功能以及对这些系统操作做出最基本的逻辑决策。

4. 图形处理

图形处理器 (GPU) 由一个多任务系统组成,其中包含专门用于管理像素着色、顶点变换和其他关键图形计算的 ALU 阵列。这些系统并行处理数据,实现海量数据的即时处理,从而在游戏期间实现流畅、高分辨率的视觉效果和 3D 渲染。

5. 科学计算

配备超级计算机和高性能计算 (HPC) 系统的先进 ALU 通过使用浮点算术来处理复杂的科学问题。气候建模、分子模拟、天体物理计算和工程设计模拟等复杂性,其中数十亿次计算必须在最短的时间内以准确的结果完成,这些都是使用 HPC 系统完成的。

6. 人工智能 (AI)

当今的人工智能已开始整合更复杂的硬件加速器,其中包括面向矩阵的 ALU 或 TPU。这些枢轴 ALU 专注于矩阵和向量算术等个体任务,特别是在深度学习和机器学习领域。能够每秒执行数十亿次运算的专用 ALU 支持自然语言处理、图像识别、自主系统以及无数其他应用。

ALU 设计的未来趋势

算术逻辑单元 (ALU) 的需求不断增加,需要超越其现有功能的更高复杂性。量子计算和人工智能以及神经形态计算等新范式有望重新定义 ALU 的运行方式。以下是一些可能塑造 ALU 技术世界的趋势

1. 多核和众核 ALU 的并行性增加

目前,大多数现代 CPU 每个核心都有多个 ALU,以实现并行指令执行。然而,未来的处理器可能会在一个芯片中集成数百甚至数千个 ALU,特别是在为高性能计算 (HPC) 或人工智能驱动的任务设计的众核架构中。

  • 类似 GPU 的 ALU 阵列:当今的 GPU 已经使用了并行工作的 ALU,用于渲染和 AI 算法等任务。未来的 CPU 可能会采用类似的架构来扩展通用计算的并行能力。
  • 特定领域 ALU:未来的处理器可能具有针对密码学、机器学习或实时信号处理等特定功能的独立 ALU,而不是采用通用方法。

2. 与 AI 和机器学习加速器集成

不断增长的 AI 和深度学习领域需要大量的矩阵乘法和浮点运算。由于 ALU 并非总是针对这些功能进行优化,因此提出了以下建议

  • 张量处理单元 (TPU):Google 的 TPU 包含为深度学习任务特有的神经网络功能而定制设计的 ALU。未来,可能会采用类似的概念,将矩阵乘法子系统放置在 CPU(中央处理器)中。
  • 混合精度 ALU: AI 任务受益于以较低精度(例如 8 或 16 位)进行的计算。未来 ALU 可能会在整数、浮点和低精度模式之间实现切换策略以优化效率。

3. 量子 ALU 和后硅计算

量子 ALU 和后硅计算 量子计算引入了一种尚未完全探索的新范式:一种基于量子比特而非二进制位。量子 ALU 在密码学、优化和药物发现等领域带来革命性变革的前景令人震惊。

  • 混合经典-量子 ALU: 早期的量子计算机可能需要与经典 ALU 协同工作。由四核 CPU 执行的任务将由量子处理器执行,例如因子分解或模拟。
  • 纠错量子 ALU: 当今的量子系统缺乏冗余。在设计中添加量子纠错 (QEC) 可能会提供更可靠的量子 ALU。

4. 高能效和低功耗 ALU

高能效和低功耗 ALU 边缘计算和物联网设备的出现放大了功耗效率的重要性。最有可能的 ALU 发展将增强以下方面

  • 近阈值电压 (NTV) 计算: 使用较低的工作电压以在不牺牲性能的情况下提高节能效果。
  • 近似计算: 例如,图像处理不需要完美的精度。未来的 ALU 可能会牺牲一定程度的精度以换取能效。

5. 神经形态和类脑 ALU

神经形态计算与人脑齐头并进,包括具有脉冲神经网络 (SNN) 的系统,而不是常规逻辑。未来的 ALU 可能具有

  • 事件驱动处理: ALU 将仅在需要时激活,而不是连续计算,类似于神经元放电。
  • 模拟 ALU: 与传统的数字逻辑 ALU 不同,遵循神经形态原理的系统可能会使用模拟电路,因为它们更高效且以类似大脑的方式执行计算。

常见问题 - ALU

1. 什么是 ALU?

算术逻辑单元 (ALU) 是 CPU 内的一个单元,它执行加法和减法等数学函数,以及 AND 和 OR 等逻辑函数。在控制单元 (CU) 协调整体功能的情况下,它控制二进制运算的执行和数据上的控制流计算。

2. ALU 如何工作?

ALU 将寄存器中的二进制数据作为输入,并带有一个指定要进行的具体计算的操作码。ALU 使用数字逻辑电路进行计算,将答案返回输出寄存器,并将相关寄存器标记为状态溢出或零。现代 CPU 中内置的 ALU 设计允许不同的 ALU 同时进行计算。

3. ALU 的主要类型有哪些?

标准 ALU 只处理整数计算。FPU 被认为是 ALU,它们执行涉及小数的运算。对于 AI 和图形工作负载,有向量 ALU,它们执行并行计算。新兴的量子 ALU 使用量子比特而非二进制位来执行计算。

4. ALU 面临哪些挑战?

对于下一代 ALU,在 3D 结构中的散热管理、量子退相干的稳定性、新技术制造的难度以及与新伪架构神经形态计算与其他软件和逻辑的兼容性,仍将构成操作上的障碍。

5. ALU 如何发展?

如今,有专为 AI 深度学习功能设计的 ALU、用于移动技术和物联网设备的节能结构、类脑神经形态处理器,以及专门从事量子密码计算的 ALU。这些进步致力于在不同技术中提供更快、更高效、更专业的计算。


下一主题什么是链接器