Appearance
乘法电路与除法电路的基本结构
大纲定位
二(二)3 乘/除运算
大纲原文是「乘/除法运算的基本原理,乘法电路和除法电路的基本结构」——两件事并列。前面几篇(Booth 乘法、恢复余数除法、加减交替法)讲的是「原理」,本篇补的是结构。
要求:能说出乘法器/除法器由哪些部件构成、各寄存器装什么、计数器在哪个模块、ALU 受控做哪几种运算,以及不同实现层次的速度差别从何而来。
考情分析
408 的题型只有单项选择题和综合应用题两类。真题对乘除的考查主要落在结构层而不是演算层:给一张乘法器或除法器的框图,问某寄存器的初值是什么、计数器属于哪个模块、ALU 需要支持哪几种运算、什么情况下会触发异常。
也就是说,手推 Booth 表和试减表是为了读懂这类框图,卷面上真正要写的是部件与控制流。
一、乘法的三种实现层次
同一个乘法,可以用三种代价完全不同的方式做出来。速度差别的根源是"用几个时钟周期"和"用多少硬件"之间的交换。
| 层次 | 做法 | 耗时 | 硬件代价 |
|---|---|---|---|
| 软件循环 | 用加法和移位指令写循环 | 最慢,每位一次循环、每次循环若干条指令 | 无额外硬件 |
| ALU + 移位器(多周期) | 一套加法器反复用,每周期处理一位 | 一个 ALU + 移位逻辑 + 计数器 | |
| 阵列乘法器(单周期) | 把 | 一个时钟周期(纯组合逻辑) | 面积随 |
为什么阵列乘法器能一拍出结果
它是纯组合逻辑电路——没有寄存器、没有时钟、没有循环,数据从输入端进去,穿过一层层全加器,从输出端出来就是结果。代价是硬件量按位数平方增长:
这也是它与前两种的本质区别:前两种是"同一套硬件用
阵列乘法器的内部

(袁春风《计算机组成与系统结构》第 3 版,见文末教材出处)
左上角是一个单元的内部:一个与门(算
二、多周期乘法器的部件构成

(唐朔飞《计算机组成原理》第 3 版,见文末教材出处)
三个寄存器 + 一个计数器 + 控制逻辑,是这类迭代式运算器的通用骨架:
| 部件 | 作用 |
|---|---|
| 存放部分积,初值为 0,每步累加后右移 | |
| 存放被乘数,全程不变,按需送 ALU | |
| 初值为乘数;每步右移,末位(配合 | |
| 计数器 | 存循环次数,初值 |
| 移位与控制逻辑 | 产生每一步的加/减/移位控制信号 |
记住这条通用规律:迭代式乘除法器里,乘数/商寄存器是"边腾边填"的——每次移位腾出一位,正好填进新产生的一位结果。所以运算结束时它装的不再是操作数,而是结果。
三、除法器的结构(重点)

(袁春风《计算机组成与系统结构》第 3 版,见文末教材出处)
以 64 位 ÷ 32 位为例(这是综合题最常给的形态):
| 部件 | 初值 | 结束时 |
|---|---|---|
| 除数 | 不变 | |
| 被除数的高 32 位 | 余数 | |
| 被除数的低 32 位 | 32 位商 | |
| 计数器 | 32 | 减到 0 时运算结束 |
| ALU | — | 受控制逻辑指挥,对 |
关键机制:每次循环
三个判分点
- 计数器属于控制逻辑模块,不是独立部件,也不在 ALU 里——它控制的是迭代次数。
- ALU 只需支持加法和减法两种运算(加减交替法:够减做减、不够减做加),不需要乘除。
和 的初值要按数据类型分别处理:被除数是带符号数时 装的高位要符号扩展;除数若是无符号数(如 8 位无符号量扩到 32 位),高位补 0 而不是符号扩展。这一条最容易想当然。
除法的两类异常
除法是唯一会在运算部件内部触发异常的算术运算,综合题常问"什么情况下会出异常":
| 异常 | 触发条件 | 例子(32 位补码) |
|---|---|---|
| 除数为 0 | 被除数取任意值,$Y = $ 00000000H | |
| 商溢出 | 商超出目标位数能表示的范围 |
第二类容易被漏掉:两个合法的数相除,商却可能不合法。补码的范围是
CPU 检测到这两类情况后的响应流程与其他异常一致:关中断 → 保护断点(PC)和程序状态(PSW)→ 切换到内核态 → 跳转到异常处理程序入口。
四、加减运算部件(对照)
除法器和乘法器里的 ALU,本身就是补码加减运算器:

(袁春风《计算机组成与系统结构》第 3 版,见文末教材出处)
考点清单
- [ ] 乘法三种实现层次:软件循环 / ALU+移位器多周期 / 阵列乘法器单周期
- [ ] 阵列乘法器是纯组合逻辑,一个时钟周期出结果,硬件量随位数平方增长
- [ ] 迭代式乘除法器的通用骨架:三寄存器 + 计数器 + 控制逻辑
- [ ] 乘数/商寄存器"边腾边填",结束时装的是结果而不是操作数
- [ ] 除法器:
存除数、 初置被除数高位(结束存余数)、 初置被除数低位(结束存商) - [ ] 计数器在控制逻辑模块内,存迭代次数
- [ ] 除法器的 ALU 只需加、减两种运算
- [ ] 初值扩展方式看数据类型:带符号数符号扩展,无符号数高位补 0
- [ ] 除法两类异常:除数为 0、商溢出(
) - [ ] 异常响应:关中断 → 保护 PC 与 PSW → 转内核态 → 跳异常处理程序
真题练习
相关真题(3题)
教材出处
- 阵列乘法器结构(图 3.13):袁春风《计算机组成与系统结构》第 3 版 §3.3 定点数乘法运算,印刷页 p68
- 32 位除法运算逻辑结构与各寄存器职责(图 3.15):同书 §3.4 定点数除法运算,印刷页 p70
- 补码加减运算部件(图 3.9):同书 §3.3.1 补码加减运算,印刷页 p60
- 补码一位乘运算的基本硬件配置(图 6.9):唐朔飞《计算机组成原理》第 3 版 §6.2 定点运算,印刷页 p255