串行乘法器

因为早期晶体管数量大会产生大量的发热, 因此早期使用循环加法移位的方式实现乘法
在这里插入图片描述
乘数右移等价于取出每一位1, 被乘数左移, 相当于十进制做乘法过程中每选择一位要进行×10\times 10×10

阵列并行乘法器

但是上述的计算过程是串行的, 需要O(n)O(n)O(n)的时间复杂度, 现在一般使用并行的方式计算
在这里插入图片描述
每一步的中间结果都可以通过and运算得到, 从乘数的位数从低到高, 相应的每次计算的结果都需要向左移动相应的位数
在这里插入图片描述
阵列乘法器的原理图如下
在这里插入图片描述

有符号的乘法

在这里插入图片描述
假设计算−4×5-4 \times 54×5, 首先将两个数字进行求补码, 也就是负数取反加一, 正数保持不变, 经过乘法器计算, 然后在最后检查两个输入的数字, 如果符号相同不做考虑, 如果符号不同对输出的结果取反加一, 使用异或门实现

串行除法器

二进制除法的商是0或者1, 从最高位开始使得被除数和除数相减, 如果不够减将除数右移, 并且商是0, 直到够减或者除数和被除数最后一位对齐
在这里插入图片描述
控制信号可以控制除数和商做右移或者左移也可以控制ALU做加法或者减法, 也可以控制ALU的结果是否写入到余数寄存器当中
在这里插入图片描述

  1. 使用余数减去除数, 如果是负数, 说明不够减
  2. 控制ALU做加法, 将余数恢复, 接下来将除数右移一位, 将商左移一位
  3. 将余数减去除数, 因为除数进行了右移, 这时候是够减的, 得到余数
  4. 将商置1并且将除数右移一位, 将商左移一位
  5. 重复上述流程

并行除法器

阵列除法器的核心部件CAS, 可以做加法或者减法, P端机型判断
在这里插入图片描述
阵列除法器的原理图如下, 向右倾斜相当于除数向右移动
在这里插入图片描述先做减法, 然后看余数是否是负数决定下一步做加法还是减法