【计算机组成】知识点整理2 - 运算方法与运算器

3.运算方法与运算器

3.1 定点加法、减法运算

3.1.1 补码加/减法运算

  • 补码加法 公式:[x+y]补=[x]补+[y]补 (mod 2n+1) 。
  • 补码减法
    [x - y]补 = [x]补 + [ -y]补
    [-y]补 = - [y]补 + 2^-n 即对[y]补进行求补操作。 各位取反,末位加一

3.1.2 溢出概念与检测方法(※) 3种

  1. 正正得负,负负得正:
    • 两正数加,结果变负数:正溢(大于机器所能表示的最大数)
    • 两负数加,变正数:负溢(小于机器所能表示的最小数)
  2. Cf为符号位产生的进位, C0为最高有效位产生的进位。Cf与C0相同时,不溢出
  3. 双符号位(变形补码)溢出检测法:
    双符号位中的最高符号位 永远是正确符号位。
    00.xxxx 11.xxxx 正确 01.xxxxx 10.xxxxx错误
    使用异或门判断

3.1.3 基本的二进制加法/减法器。

一位加法逻辑电路实现

在这里插入图片描述

带进位链的一位全加器

在这里插入图片描述

多位加法器 (※)

  • 思想: N位加法器包含n个全加器
  • 将多个一位全加器串联,低位进位输出连接到高位进位输入。
    在这里插入图片描述

补码减法电路实现

  • [X - Y]补= [X]补+ [-Y]补
  • 方法:加法器的改造
    • 输入[Y]补做加法,如果输入[-Y]补则做减法。
      [-Y]补=[[Y]补]补=[[Y]补]反 +1 将Y补 连同符号位一起,逐位取反末位加一 [-Y]补= [ [Y]补 ]补
    • 引入Sub位:
       Sub=0 时做加法,送入加法器的应是 [Y]补
       Sub=1 时做减法,送入加法器的应是 [-Y]补 。如下:

在这里插入图片描述

3.2 定点数的移位运算

在这里插入图片描述

3.3 定点乘法运算(※)

1、原码一位乘法
2、补码一位乘法
3、阵列乘法器

3.3.1 原码一位乘法

在这里插入图片描述

3.3.2 补码一位乘法

在这里插入图片描述
在这里插入图片描述

  • 算数右移(补码一位乘法)vs 逻辑右移(原码一位乘法)
  • 乘数开始时要手动在末位加0
  • 注意最后一步

3.3.3 无符号数的阵列乘法器

补码乘法器运算例子:

在这里插入图片描述

3.4 定点除法运算

原码不恢复余数法 (加减交替法)
得到的结果为原码 (加减计算过程中用补码)

  • 余数为正,商1,余数左移一位,减去除数
  • 余数为负,商0,余数左移一位,加上除数
  • 在这里插入图片描述

3.5 浮点加法、减法运算(※)

浮点运算步骤如下

  1. 比较阶码并完成对阶(小阶向大阶 对齐);移位
  2. 尾数求和(差)运算;
  3. 结果规格化:可采用规格化形式–绝对值0.1XXXX (也可采用IEEE754标准的,详见P85)
    在这里插入图片描述
  4. 舍入处理:末位恒置1 / 0舍1入
  5. 溢出判断。

IEEE754浮点数的加减运算
阶码采用移码表示,尾数采用原码表示

在这里插入图片描述

3.6 并行进位加法器(※)

  • 串行进位(行波进位) 加法器特点
    进位信号逐位形成, 前后依赖, 因此速度较慢
  • 并行进位加法器(※)
    [特点]各位进位信号同时形成 .
    1) 逻辑关系
    C1 = G1 + P1C0
    C2 = G2 + P2C1
    = G2 + P2G1 + P2 P1 C0

    Cn = Gn + PnCn-1
    = Gn + PnGn-1 + …+ PnPn-1…P2P1 C0
    仅与最低位的进位输入C0有关 ! 其他已知

组内并行、组间串行
在这里插入图片描述

组内并行、组间并行
在这里插入图片描述

  • P* =P0P1P2P3 G* = G3+G2P3+G1P2P3+G0P1P2P3
  • C4 =G0+P0·C0 C8 =G1+P1·C4 C12 =G2+P2·C8 C16 =G*+ P*·C0
  • 有了C0就都产生了

猜你喜欢

转载自blog.csdn.net/qq_51879318/article/details/126192380