📒
考研计算机组成原理笔记
  • 408机组考察范围
  • 第一章 计算机系统概述
    • 1.1 计算机发展历程
    • 1.2 计算机系统层次结构
    • 1.3 计算机的性能指标
  • 第二章 数据的表示和运算
    • 2.1 数制与编码
    • 2.2 定点数的表示与运算
    • 2.3 浮点数的表示和运算
    • 2.4 算数逻辑单元(ALU)
  • 第三章 存储系统
    • 3.1 存储器概述
    • 3.3 半导体随机存储器
    • 3.4 主存储器与CPU的连接
    • 3.5 双端口RAM和多模块存储器
    • 3.6 高速缓冲存储器
    • 3.7 虚拟存储器
  • 第四章 指令系统
    • 4.1 指令格式
    • 4.2 指令的寻址方式
    • 4.3 CISC和RISC
    • 4.4 程序的机器级代码
  • 第五章 中央处理器
    • 5.1 CPU的基本功能和结构
    • 5.2 指令执行过程
    • 5.3 数据通路的功能和基本结构
    • 5.4 控制器的工作原理和功能
    • 5.5 指令流水线
    • 5.6 多处理器
  • 第六章 总线
    • 6.1 总线概述
    • 6.2 总线仲裁
    • 6.3 总线操作和定时
    • 6.4 总线标准
  • 第七章 I/O系统
    • 7.1 I/O系统的基本概述
    • 7.2 外部设备
    • 7.3 I/O接口
    • 7.4 I/O方式
由 GitBook 提供支持
在本页
  • 2.4.1 串行加法器和并行加法器
  • 1、一位全加器
  • 2、串行加法器
  • 3、并行加法器
  • 2.4.3 补码加/减法运算器
  • 1、加法器原理
  • 2、补码加减器
  • 2.4.2 标志位

这有帮助吗?

  1. 第二章 数据的表示和运算

2.4 算数逻辑单元(ALU)

上一页2.3 浮点数的表示和运算下一页3.1 存储器概述

最后更新于2年前

这有帮助吗?

  • 算数运算:加、减、乘、除等

  • 逻辑运算:与、或、非、异或等

  • 辅助功能:移位、求补等

接收输入信号,再接收控制信号,根据控制信号得到相应的输出信号。

2.4.1 串行加法器和并行加法器

1、一位全加器

  • A、B:输入

  • Ci−1C_{i-1}Ci−1​ :前一级的进位信息

  • SiS_{i}Si​:输出结果

  • CiC_{i}Ci​:输出进位信息

和表达式: Si=Ai⊕Bi⊕CiS_{i}=A_{i} \oplus B_{i} \oplus C_{i}Si​=Ai​⊕Bi​⊕Ci​

进位表达式: Ci=Ai⋅Bi+(Ai⊕Bi)⋅Ci−1C_{i}=A_{i} \cdot B_{i} +(A_{i}\oplus B_{i})\cdot C_{i-1}Ci​=Ai​⋅Bi​+(Ai​⊕Bi​)⋅Ci−1​

2、串行加法器

只有一个全加器,数据逐位依次串行输入,用进位寄存器存储进位信号。

3、并行加法器

(1)串行进位的并行加法器

把n个全加器串接起来,就可进行两个n位数的相加。

(2)并行进位的并行加法器

并行加法器的进位表达式: Ci=Gi+PiCi−1C_{i} = G_{i}+P_{i}C_{i-1}Ci​=Gi​+Pi​Ci−1​ ,其中:

  • Gi=Ai⋅BiG_{i}=A_{i}\cdot B_{i}Gi​=Ai​⋅Bi​:进位产生函数

  • Pi=Ai⊕BiP_{i} = A_{i}\oplus B_{i}Pi​=Ai​⊕Bi​:进位传递函数

通过递推可知,所有位的 CiC_{i}Ci​ 都可以仅由 GiG_{i}Gi​,PiP_{i}Pi​ 和 C0C_{0}C0​ 得到。

1、单级先行进位方式(组内并行、组间串行)

2、多级先行进位方式(组内并行、组间并行)

2.4.3 补码加/减法运算器

1、加法器原理

例1:A=1000,B=0111,Cin=0

则:F=1111,Cout=0

例2:A=1000,B=0111,Cin=1

则:F=0000,Cout=1

2、补码加减器

补码加减法原理:

X+Y:直接按位相加

X-Y:

  1. Y全部按位取反,末位+1

  2. 减法变加法

Sub信号的作用

  • 控制多路选择器的输出

  • 若计算减法时,1同时输入到Cin,用作补码取反后的+1

例:4bit补码,X=-8,Y=7

$\text{X}{补} = 1000$,$\text{Y}{补} = 0111$

X+Y:直接输出:1111B(补)=-1D

X-Y:1000+(1000+1)=0001B(补)(产生溢出)

这一电路同样适用于无符号数的加减法,原理完全一致

2.4.2 标志位

  • 有符号数

    • OF:溢出标志位

      • 最高位产生的进位与次高位产生的进位异或

      • 判断有符号数的溢出

    • SF:符号标志位

      • 取运算结果的最高位

例:4bit补码,X=-8,Y=7

X补=1000\text{X}_{补} = 1000X补​=1000,Y补=0111\text{Y}_{补} = 0111Y补​=0111

  • X+Y

    • 直接输出:1111B(补)=-1D

    • OF=0⊕\oplus⊕0=0:没有溢出

    • SF=1:结果是负数

  • X-Y

    • 1000+(1000+1)=0001B

    • OF=1⊕\oplus⊕0=1:产生了溢出

    • SF=0:结果是正数

  • 无符号数

    • ZF:零标志位

      • 运算结果全部为零

    • CF:进位标志

      • 最高位的进位信号与sub进行异或

      • 为1代表发生了借位,产生溢出

      • 判断无符号数的溢出

例:4bit原码,无符号数X=3,Y=4

X=0011B,Y=0100B

  • X+Y

    • 直接输出:0111B(原)=7D

    • ZF:0

    • CF:0⊕\oplus⊕0=0

  • X-Y

    • 0011+(1011+1)=1111B(原)

    • ZF:0

    • CF:0⊕\oplus⊕1=1(产生了借位溢出)

常见电路符号
标志位