【自学嵌入式:计算机组成原理】28. 系统的加减乘除组件

28. 系统的加减乘除组件

逻辑运算电路

1. 基本逻辑门电路(NOT、AND、OR)

计算机的逻辑运算基于布尔代数,通过基本逻辑门电路实现。核心门电路包括:

(1)非门(NOT)
  • 功能:对输入信号取反(1→0,0→1)。
  • 数学表示:输出为输入的逻辑非,记为 \(Y = \neg A\)(或 \(Y = \overline{A}\) )。
  • 真值表(输入输出关系):
    输入 \(A\) 输出 \(\neg A\)
    0 1
    1 0
(2)与门(AND)
  • 功能:仅当所有输入为1时,输出为1;否则输出0。
  • 数学表示:输出为输入的逻辑与,记为 \(Y = A \land B\)(或 \(Y = A \cdot B\) )。
  • 真值表
    输入 \(A\) 输入 \(B\) 输出 \(A \land B\)
    0 0 0
    0 1 0
    1 0 0
    1 1 1
(3)或门(OR)
  • 功能:只要任意输入为1,输出为1;否则输出0。
  • 数学表示:输出为输入的逻辑或,记为 \(Y = A \lor B\)(或 \(Y = A + B\) ,注意与算术加法区分)。
  • 真值表
    输入 \(A\) 输入 \(B\) 输出 \(A \lor B\)
    0 0 0
    0 1 1
    1 0 1
    1 1 1

2. 零检测电路

零检测电路用于判断一组数据是否全为0,核心逻辑是或运算的扩展

  • 原理:将数据的所有位输入或门网络。若所有位为0,则或运算结果为0(表示“全零”);若任意位为1,则或运算结果为1(表示“非零”)。
  • 示例(检测8位数据 \(D_7D_6\cdots D_0\) ):
    零标志可表示为:

    \[\text{零标志} = D_7 \lor D_6 \lor \cdots \lor D_0 \]

    若结果为0,说明数据全零;否则非零。

CPU的核心工作部件——ALU(算术逻辑单元)

image

ALU(Arithmetic and Logic Unit)是CPU的核心模块,负责执行算术运算(加减乘除等)逻辑运算(与、或、非等),其抽象模型简化了硬件设计复杂度。

1. ALU的功能与抽象意义

  • 作用
    封装底层电路细节,向工程师提供“输入→运算→输出”的抽象接口,降低系统设计复杂度。
  • 核心价值
    让设计者无需关注晶体管级电路,只需通过“输入、操作码(Opcode)、输出、标志位”交互,即可实现复杂运算。

2. ALU的输入与输出(结合结构图示)

ALU的典型结构包含三类关键信号:

  • 输入

    • \(\text{In A}\)\(\text{In B}\):参与运算的两个操作数(如算术运算的两个数、逻辑运算的位集合)。
    • \(\text{Opcode}\):操作码,指定ALU执行的运算类型(如加法、与运算、或运算等)。
  • 输出

    • \(\text{Out}\):运算结果(如算术运算的和、逻辑运算的布尔结果)。
  • 标志位(Flag)

    • \(\text{Carry flag}\)(进位/借位标志):算术运算时,若结果超出位宽(如8位加法产生第9位),置1;否则置0。
    • \(\text{Zero flag}\)(零标志):若运算结果为0,置1;否则置0(与“零检测电路”逻辑关联)。

3. ALU的运算逻辑

ALU通过硬件电路组合实现两类运算:

  • 算术运算
    依赖加法器、移位器等电路,执行加减乘除(本质:加法为基础,乘法=多次加法,除法=多次减法,结合移位优化)。

  • 逻辑运算
    依赖基本逻辑门(与、或、非),执行位级逻辑操作(如按位与、按位或、按位取反)。

4. 标志位的作用

标志位是ALU向CPU反馈运算状态的关键,支持程序流程控制(如条件跳转):

  • Zero flag:判断运算结果是否为0(如比较操作 \(A == B\) ,等价于 \(A - B\) 的结果是否为0)。
  • Carry flag:判断算术运算是否溢出(如无符号数加法超出最大值时,需通过进位标志处理)。

总结

  1. 逻辑运算电路:通过非门、与门、或门实现基础逻辑操作;零检测电路利用或运算判断数据是否全零。
  2. ALU的核心地位:作为CPU的“运算引擎”,封装算术与逻辑运算细节,通过输入(操作数、操作码)、输出(结果、标志位)与CPU协同。
  3. 设计思想:抽象与分层——ALU隐藏底层复杂度,让上层设计聚焦功能逻辑,体现计算机体系结构的“分层优化”理念。

掌握ALU与逻辑电路的关系,可理解CPU如何“高效执行运算”并“反馈状态”,为后续学习指令集、程序执行流程奠定基础。

posted @ 2025-07-15 13:31  秦瑞迁  阅读(258)  评论(0)    收藏  举报