计算机组成原理:乘法和除法操作过程

引言

对《计算机系统概论 — 计算机基本组成 — 运算器的基本组成及操作过程》中乘法和除法操作过程的详细理解。


原课程内容

刘宏伟老师对计算机系统中运算器的乘法操作过程讲解见视频 05:54,除法操作过程讲解见视频 09:00。
运算器的乘法操作通过加法移位来实现;除法操作通过减法移位来实现。能这样优化的原因在于计算机使用二进制数据类型。
操作数和寄存器的对应关系为:

ACC MQ X
乘法 乘积高位 乘数,乘积低位 被乘数
除法 被除数,余数 除数

乘法细节

我们以 2345 x 9876 为例,下图是进行笔算的过程。乘数的每一位要和被乘数相乘(例如计算 6 x 2345 ,需要4次乘法,4次进位加法),得到4个中间结果,所有中间结果相加得到乘积,这个过程比较繁琐。但是在二进制下将变得很简单。
计算机组成原理:乘法和除法操作过程_第1张图片
下图使用十进制 1000 x 1001 模拟二进制乘法,对于每一个中间结果,若当前参与运算的乘数位为1,直接将被乘数放在对应位置上,若为0,则放0。这就是计算机使用移位和累加实现乘法的原理基础。
计算机组成原理:乘法和除法操作过程_第2张图片
对应到硬件中,乘法过程如下:

  1. 运算开始,乘积寄存器初始化为0
  2. 检查乘数寄存器第1位(从右到左),若为1,将被乘数寄存器中的值加到乘积寄存器中;若为0,则不管
  3. 被乘数寄存器左移一位
  4. 检查乘数寄存器第2位,…
  5. 重复2~3,直到乘数寄存器的位被检查完,此时乘积寄存器中的值为乘法结果

除法细节

注意被除数和余数共享一个寄存器。
计算机组成原理:乘法和除法操作过程_第3张图片

  1. 被除数寄存器和除数寄存器对应位不够减,商寄存器补0左移一位,除数寄存器右移一位
  2. 同上
  3. 同上
  4. 被除数寄存器和除数寄存器对应位够减,商寄存器补1左移一位,除数寄存器右移一位,减法结果保存在被除数/余数寄存器
  5. 被除数寄存器和除数寄存器对应位够减,商寄存器补1左移一位,除数寄存器已不能右移,除法结束

注意

除法的位宽和乘法正好相反!乘法中,乘数和被乘数宽度相同,乘积为2倍位宽;除法中,被除数,余数位宽相同,除数和商为前者1/2位宽。

参考

401乘法的运算过程
405除法的运算过程

你可能感兴趣的:(计算机组成原理,其他)