资讯动态

计算机组成原理:定点乘法、除法运算与浮点运算器详解

发布时间:2026/10/24 4:13:29 来源:尧图企业网站定制
1. 引言在计算机组成原理中运算器是 CPU 的核心部件之一负责完成算术运算与逻辑运算。其中定点乘法、定点除法是整数运算的基础而浮点运算则是科学计算、图形处理等场景的关键。本文将从定点乘法与除法的算法原理出发逐步过渡到定点运算器的组成再深入浮点数的表示与浮点运算方法最后介绍浮点运算器的结构设计。2. 定点乘法运算2.1 原码一位乘法原码一位乘法是最直观的乘法实现方式。其核心思想是符号位单独处理数值位按位相乘并累加。设被乘数xxx与乘数yyy均为原码表示乘积的符号位xs⊕ysx_s \oplus y_sxs​⊕ys​异或乘积的数值位∣x∣×∣y∣|x| \times |y|∣x∣×∣y∣计算过程采用「移位 相加」的方式每次根据乘数当前最低位决定是否加上被乘数然后部分积右移一位。例x 0.1101, y 0.1011原码数值位 4 位 部分积初值0.0000 乘数最低位为 1 → 加 x0.1101右移 → 0.0110 1 乘数次低位为 1 → 加 x1.0011右移 → 0.1001 11 乘数第三位为 0 → 加 00.1001右移 → 0.0100 111 乘数最高位为 1 → 加 x1.0001右移 → 0.1000 1111 结果符号位 0⊕00数值位 0.100011112.2 补码一位乘法Booth 算法补码乘法可以直接对带符号数进行运算无需先转换为原码。Booth 算法通过判断乘数相邻两位的差值来决定加/减被乘数yiy_iyi​yi−1y_{i-1}yi−1​操作00加 001加[x]补[x]_{补}[x]补​10减[x]补[x]_{补}[x]补​即加[−x]补[-x]_{补}[−x]补​11加 0Booth 算法的优势在于符号位参与运算且对于连续的 1 可以减少加法次数提高效率。2.3 阵列乘法器为了提升乘法速度硬件上常采用阵列乘法器。它由多个全加器按二维阵列排列所有部分积同时产生并逐级相加实现并行计算。其延迟与位数的平方成正比但相比串行移位加法速度提升显著。3. 定点除法运算3.1 原码一位除法原码除法分为恢复余数法和加减交替法不恢复余数法。恢复余数法每次试减后若余数为负则恢复原余数商上 0若余数为正商上 1。加减交替法根据上次余数的符号决定本次是加还是减避免了恢复操作效率更高。加减交替法规则 - 余数为正 → 商上 1下一步减除数 - 余数为负 → 商上 0下一步加除数 - 最后若余数为负需恢复一次3.2 补码一位除法补码除法同样可以采用加减交替法但判断规则需考虑符号位被除数与除数同号 → 做减法被除数与除数异号 → 做加法余数与除数同号 → 商上 1异号 → 商上 0补码除法的商符在运算过程中自然形成无需单独处理。3.3 除法溢出判断定点除法必须判断是否溢出当被除数绝对值大于等于除数绝对值时商将超出表示范围此时应产生溢出标志终止运算。4. 定点运算器的组成定点运算器是完成定点算术与逻辑运算的部件其基本组成包括算术逻辑单元ALU执行加、减、与、或、异或等运算累加寄存器存放操作数与运算结果数据缓冲寄存器暂存从内存读取的数据状态条件寄存器保存进位、溢出、零、符号等标志通用寄存器组提供多操作数的高速存取多路选择器与总线控制数据流向通用寄存器组多路选择器ALU 算术逻辑单元累加寄存器 ACC状态寄存器 PSW数据缓冲寄存器 DR内部总线定点运算器的设计重点在于数据通路的组织与控制信号的时序配合常见结构有单总线、双总线和三总线结构总线越多并行度越高但硬件成本也越大。5. 浮点运算方法5.1 浮点数的表示浮点数由阶码和尾数两部分组成通用格式为NM×2EN M \times 2^{E}NM×2E其中MMM为尾数决定精度EEE为阶码决定范围。IEEE 754 标准定义了单精度32 位和双精度64 位格式类型符号位阶码尾数单精度1 位8 位23 位双精度1 位11 位52 位5.2 浮点加减运算浮点加减法的步骤可归纳为「对阶 → 尾数运算 → 规格化 → 舍入 → 溢出判断」对阶求阶差ΔEEx−Ey\Delta E E_x - E_yΔEEx​−Ey​小阶向大阶看齐尾数右移ΔE\Delta EΔE位尾数加减对阶后尾数按定点加减法运算规格化结果尾数需满足1/2≤∣M∣11/2 \le |M| 11/2≤∣M∣1左规或右规舍入处理常用「0 舍 1 入」或「恒置 1」法溢出判断检查阶码是否超出表示范围否是是否开始浮点加减对阶小阶向大阶看齐尾数加减运算尾数是否规格化左规或右规舍入处理阶码是否溢出溢出异常输出结果5.3 浮点乘除运算浮点乘除法的规则相对简单乘法阶码相加尾数相乘结果规格化除法阶码相减尾数相除结果规格化需要注意阶码运算可能产生溢出上溢或下溢以及尾数运算后的规格化与舍入。6. 浮点运算器浮点运算器FPU是专门处理浮点运算的部件其结构比定点运算器复杂得多。典型组成包括浮点寄存器堆存放浮点操作数阶码运算部件完成阶码的加减与比较尾数运算部件完成尾数的乘除与加减规格化与舍入部件对结果进行标准化处理异常处理逻辑检测上溢、下溢、除零等异常现代处理器中浮点运算器通常采用流水线设计将浮点加减、乘除拆分为多个流水级以提升吞吐率。例如经典的 x87 协处理器、以及现代 CPU 中的 SSE/AVX 浮点单元都体现了这一设计思想。浮点寄存器堆阶码运算部件尾数运算部件规格化与舍入异常处理逻辑结果写回7. 总结本文系统梳理了计算机组成原理中运算器的核心内容定点乘法原码一位乘法、Booth 补码乘法、阵列乘法器定点除法恢复余数法、加减交替法、补码除法与溢出判断定点运算器ALU、寄存器组、状态寄存器与总线结构浮点运算浮点数表示、加减法的对阶与规格化、乘除法的阶码运算浮点运算器阶码/尾数运算部件、规格化舍入、流水线设计

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑