计算机组成原理-运算方法与运算器(华中科大).ppt
第三章 运算方法与运算器 谭志虎 TigerStan 2010 10 计算机组成原理Slide2 Outline 定点补码加 减法运算定点乘法运算定点除法运算浮点运算运算器组织运算器部件举例 计算机组成原理Slide3 3 1定点补码加 减法运算 运算方法及实现补码加减法运算公式溢出检测补码加减法逻辑实现快速加法器 计算机组成原理Slide4 补码加减法的实现 X Y 补 X 补 Y 补两数和的补码等于两数补码之和 X Y 补 X 补 Y 补 X 补 Y 补两数差的补码等于两数补码之差减法变加法 关键是求 Y 补 Y 补 Y 补 补对 Y 补逐位取反 再在最低位加1 计算机组成原理Slide5 补码加法公式证明 X Y 补 X 补 Y 补x 0y 0 无需证明 x 0y0 2 3证明相同 x 0y 0只需证明2 4两种情况即可 计算机组成原理Slide6 2 x 0y 0 x 补 x y 补 2 y x 补 y 补 x 2 y 2 x y 当x y0时2 x y 2进位位舍去 x 补 y 补 2 x y x y mod2 x y 补 mod2 计算机组成原理Slide7 4 x 0y 0 x y22 2 x y mod2 2 x y x y 补mod2 计算机组成原理Slide8 补码减法公式证明 X Y 补 X 补 Y 补 X Y 补 X 补 Y 补 加法公式 Y 补 Y 补 Y 补 Y 补 Y Y 补 0 补 0故 Y 补 Y 补成立 Y 补 Y 补 补 X Y 补 X 补 Y 补 X 补 Y 补 计算机组成原理Slide9 补码加法的几种情况 正正得负 正溢出 负负得正 负溢出 正常结果 符号位进位舍去 正常结果 计算机如何识别运算结果是否溢出 计算机组成原理Slide10 单符号数溢出检测1 正正得负负负得正结果溢出设两数符号位为f0f1和数符号位fs 计算机组成原理Slide11 单符号数溢出检测2 符号位进位Cf 最高位进位Cn Cf 0 Cn 0 Cf 1 Cn 1 Cf 0 Cn 1 Cf 1 Cn 0 计算机组成原理Slide12 单符号数溢出检测2 溢出信号V对应的真值表 计算机组成原理Slide13 双符号数溢出检测 非正常符号位 溢出 符号位进位舍去 正常结果 正常结果 非正常符号位 溢出 计算机组成原理Slide14 双符号数溢出检测 溢出信号V对应的真值表 计算机组成原理Slide15 二进制加法运算 Xn 1 X2X1X0 Yn 1 Y2Y1Y0 n 1 2 1 0 各位逐位相加 进位从右至左传递首先要考虑一位加法 然后考虑进位链 计算机组成原理Slide16 一位加法逻辑电路实现 S X Y 0 1 11 0 11 1 00 0 0 一个异或门即可实现自动实现一位加法 算术运算变成逻辑电路 计算机组成原理Slide17 带进位链的一位全加器 计算机组成原理Slide18 一位全加器逻辑实现 3级门电路延迟3T 计算机组成原理Slide19 多位加法器 N位加法器包含n个全加器将多个一位全加器串联低位进位输出连接到高位进位输入 计算机组成原理Slide20 单符号位补码加法器电路 ripplecarryadder 符号位 行波进位加法器 时间延迟 计算机组成原理Slide21 串行加法器时间延迟ripplercarryadder n个加法器延迟 3n个门电路延迟 符号位 计算机组成原理Slide22 双符号位补码加法器电路 符号位 计算机组成原理Slide23 补码减法电路实现 补码减法可以转换为加法 X 补 Y 补 X 补 Y 补实现减法的关键是求减数Y乘以负一的补码方法 将Y补连同符号位一起逐位取反末位加一 Y 补 Y 补 补S X 补 Y 补S X 补 Y 补 计算机组成原理Slide24 加法器的改造 C0 FAn 1 Sn 1 FAn 2 FA1 FA0 Cn 1 Cn 2 C1 Sn 2 S1 S0 Cn Xn 1 Yn 1 Xn 2 Yn 2 X1 Y1 X0 Y0 符号位 加法器输入Y补作加法 如果输入 Y 补则作减法 计算机组成原理Slide25 加法器的改造 引入控制位MM 0时作加法 送入加法器的是Y补M 1时作减法 送入加法器的是 Y 补 计算机组成原理Slide25 Y 补 Y 补 补 计算机组成原理Slide26 单符号补码加 减器电路实现 方式控制M M 0加M 1减 C0 FAn 1 Sn 1 FAn 2 FA1 FA0 Cn 1 Cn 2 C1 Sn 2 S1 S0 Cn Xn 1 Yn 1 Xn 2 Yn 2 X1 Y1 X0 Y0 减法的避免减少了逻辑器件控制信号M如何产生 符号位 计算机组成原理Slide27 串行加法器时间延迟ripplercarryadder n个加法器延迟 3n个门电路延迟 符号位 计算机组成原理Slide28 快速加法器 能否提前产生各位的进位输入使得各位的加法运算能并行起来即可提高多位加法器运算速度 计算机组成原理Slide29 并行加法器进位链 carry lookahead Si Xi Yi Ci 1 Ci Ci 1 Xi Yi XiYi Gi XiYiPi Xi Yi Gi进位生成函数Generate Pi进位传递函数Propagate Ci Gi PiCi 1 计算机组成原理Slide30 并行加法器进位链 Cn XnYn Xn Yn Cn 1 Gn PnCn 1 Cn 1 Xn 1Yn 1 Xn 1 Yn 1 Cn 2 Gn 1 Pn 1Cn 2 C1 X1Y1 X1 Y1 C0 G1 P1C0 高位的运算依赖于低位运算的进位输入计算不能并行能否提前得到当前位的进位输入 计算机组成原理Slide31 并行加法器进位链 C1 X1Y1 X1 Y1 C0 G1 P1C0 C2 X2Y2 X2 Y2 C1 G2 P2C1 G2 P2 G1 P1C0 G2 P2G1 P2P1C0 C3 X3Y3 X3 Y3 C2 G3 P3C2 G3 P3 G2 P2G1 P2P1C0 G3 P3G2 P3P2G1 P3P2P1C0 计算机组成原理Slide32 并行加法器进位链 Cn 1 Gn 1 Pn 1Gn 2 Pn 1Pn 2Gn 3 PnPn 1 P1C0 Cn Gn PnGn 1 PnPn 1Gn 2 PnPn 1Pn 2Gn 3 PnPn 1Pn 2 P1C0位数越长 进位链电路复杂度越高通常按照4位一组进行分组运算 仅仅与最低位的进位输入有关 计算机组成原理Slide33 Generate Propagate C1 G1 P1C0 C2 G2 P2G1 P2P1C0 计算机组成原理Slide34 与门异或门电路 计算机组成原理Slide35 先行进位电路carrylookahead c0 1 1 计算机组成原理Slide36 串行加法器时间延迟ripplercarryadder n个加法器延迟 3n个门电路延迟 符号位 S4 X4 Y4 C3S3 X3 Y3 C2S2 X2 Y2 C1S1 X1 Y1 C0进位信号得到后 所有运算只需要一级异或门即可完成 计算机组成原理Slide37 计算机组成原理Slide38 四位快速加法器 1 1 1 1 S1 计算机组成原理Slide39 16位加法器 组内先行进位组间串行进位可否组间并行 计算机组成原理Slide40 成组进位 C4 G4 P4G3 P4P3G2 P4P3P2G1 P4P3P2P1C0G4 G4 P4G3 P4P3G2 P4P3P2G1成组进位发生输出P4 P4P3P2P1成组进位传递函数C4 G4 P4 C0C1 G1 P1C0比较原相邻位进位公式 计算机组成原理Slide41 成组进位 C4 G4 P4 C0C8 G8 P8 G4 P4 C4 G8 P8 G4 P8 P4 C0C16 G16 P16 G12 P16 P12 G8 P16 P12 P8 G4 P16 P12 P8 P4 C0用4组P G 作输入 即可复用原先行进位电路产生组间先行进位信号 计算机组成原理Slide42 Groupgenerate propagate g1 g2 p2 g3 p3 g4 p4 G P4 P4P3P2P1G4 G4 P4G3 P4P3G2 P4P3P2G1C4 G4 P4 C0 计算机组成原理Slide43 两级先行进位电路 G 4 P 4 C 13 C 14 C 15 G 12 P 12 G 13 P 13 G 14 P 14 G 15 P 15 C 16 1 1 1 1 计算机组成原理Slide44 先行进位电路CLA74182 输入 P4G4P3G3P2G2P1G1C0输出 先行进位输出C4C3C2C1成组进位传送输出P 成组进位发生输出G Cn Gn PnGn 1 PnPn 1Gn 2 PnPn 1Pn 2Gn 3 PnPn 1 P1C0Gi XiYiPi Xi Yi 计算机组成原理Slide45 先行进位电路CLA74182 计算机组成原理Slide46 先行进位的多功能算术 逻辑运算单元 ALU74181 计算机组成原理Slide48 16位组内先行进位 组间先行进位 计算机组成原理Slide49 32位先行进位系统 计算机组成原理Slide50 64位先行进位系统 16片74181 5片74182芯片 计算机组成原理Slide51 先行进位电路时间延迟分析 Cn Gn PnGn 1 PnPn 1Gn 2 PnPn 1 P1C0假设所有门电路均按照2输入Gn需要1个门电路延迟PnGn 1需要2个门电路延迟PnPn 1Gn 2需要3个门电路延迟PnPn 1 P1C0需要n 1个门电路延迟Cn需要n 2个门电路延迟 计算机组成原理Slide52 快速加法器电路延迟 产生先行进位信号需要 n 2 TS X Y C需要 n 2 T T故总的运算时间为 n 3 T串行行波加法器的延迟为3nT加速比3n n 3 n较大时 速度提高约三倍n 4时 提高1 7倍 计算机组成原理Slide53 Outline 定点补码加 减法运算定点乘法运算定点除法运算浮点运算运算器组织运算器部件举例 计算机组成原理Slide54 3 2定点乘法运算 原码乘法运算方法原码乘法运算实现补码乘法运算方法补码乘法运算实现 计算机组成原理Slide55 乘法运算实现方法 设置专用乘法器实现乘法运算执行乘法运算子程序实现乘法运算借助加法器配置相应部件实现乘法运算 计算机组成原理Slide56 符号位直接异或即可得到乘积的符号仅仅需要考虑其数值部分的计算以定点小数为例进行讨论 多位原码乘法 p9 p3 p2 p1 p0 p9p8p7p6p5p4p3p2p1p0 a4a3a2a1a0 xb4b3b2b1b0 先计算相加数 然后逐列相加 二进制多位乘法运算 计算机组成原理Slide58 一位乘法逻辑实现 R X Y 一个与门即可实现一位乘法 1 1 11 0 00 1 00 0 0 计算机组成原理Slide59 相加数产生部件 经过一级门电路延迟 即可得到所有的相加数 p8 p2 p1 p0 横向进位的5位无符号数阵列乘法器电路 a3b2 a2b2 a1b2 a0b2 a4b2 a3b3 a2b3 a1b3 a0b3 a4b3 a3b4 a2b4 a1b4 a0b4 a4b4 a4b0 a3b0 a2b0 a1b0 a0b0 p8 p2 p1 p0 0 0 a1b1 a0b1 a3b1 a2b1 a4b1 p6 p7 p3 0 p4 0 p5 0 COUT COUT COUT p9 COUT 横向进位的5位无符号数阵列乘法器电路 a3b2 a2b2 a1b2 a0b2 a4b2 a3b3 a2b3 a1b3 a0b3 a4b3 a3b4 a2b4 a1b4 a0b4 a4b4 a4b0 a3b0 a2b0 a1b0 a0b0 p8 p2 p1 p0 0 0 a1b1 a0b1 a3b1 a2b1 a4b1 p6 p7 p3 0 p4 0 p5 0 COUT COUT COUT p9 COUT 横向进位无符号数阵列乘法器电路时延分析 a3b2 a2b2 a1b2 a0b2 a4b2 a3b3 a2b3 a1b3 a0b3 a4b3 a3b4 a2b4 a1b4 a0b4 a4b4 a4b0 a3b0 a2b0 a1b0 a0b0 p8 p2 p1 p0 1 0 3 0 7 9 a1b1 a0b1 a3b1 a2b1 a4b1 2 B p6 8 9 p7 A p3 0 3 4 5 p4 0 4 5 6 7 p5 6 7 8 5 0 COUT COUT COUT p9 COUT n 2 n 2 3T T 3n 4 3T T 横向进位无符号数阵列乘法器电路时延分析 p8 p2 p1 p0 5位无符号数阵列乘法器电路 p6 p7 p3 p4 p5 p9 p9p8p7p6p5p4p3p2p1p0 a4a3a2a1a0 xb4b3b2b1b0 p8 p2 p1 p0 a3b2 a2b2 a1b2 a0b2 a4b2 a3b3 a2b3 a1b3 a0b3 a4b3 a4b0 a3b0 a2b0 a1b0 a0b0 a4b1 p6 p7 p3 p4 p5 p9 0 a3b4 a2b4 a0b4 a4b4 a1b4 4 5个全加器 8个全加器延迟 计算机组成原理Slide66 原码阵列乘法器时间延迟 n n 1 个FA延迟时间 n 1 FA n 1 FA每一个FA包含三级门电路延迟T故总延迟为2 n 1 3T T 相加数产生时间 计算机组成原理Slide67 n n位原码乘法器框图 相加数产生部件 A af an 1an 2 a1a0 B bf bn 1bn 2 b1b0 n n乘法阵列 1 计算机组成原理Slide68 补码乘法器原理图 B 补 bf bn 1 b1b0 乘法阵列 同前n n阵列 2n位求补器 数值同原码 相加数 积绝对值 补码乘积 1 A 补 af an 1 a1a0 相加数产生电路 同前 n位求补器 n位求补器 计算机组成原理Slide69 乘法运算实现方法 设置专用乘法器实现乘法运算执行乘法运算子程序实现乘法运算借助加法器配置相应部件实现乘法运算原码一位乘法的运算方法与逻辑实现补码一位乘法的运算方法与逻辑实现 p8 p2 p1 p0 横向进位的5位无符号数阵列乘法器电路 p8 p2 p1 p0 0 0 0 0 0 横向进位的5位无符号数阵列乘法器电路 p8 p2 p1 p0 0 0 0 0 0 0 XYn XYn 1 右移一位 XYn 2 右移一位 XYn 3 右移一位 横向进位的5位无符号数阵列乘法器电路 计算机组成原理Slide73 部分积累加的数学表示 部分积 XYn部分积 XYn 1 XYn2 1部分积 XYn 2 XYn 1 XYn 2 1 2 1 XYn 2 XYn 12 1 XYn2 2 XY12 1 XY22 2 XYn2 nX Y X Y12 1 Y22 2 Yn2 n 开始 i 0 0 Yn 1 0 X Y右移一位i 1 i i n X0 Y0 P0 结束 Y N N Y 原码乘法算法流程图 加法次数 n次作完加法 一定移位符号位单独计算 计算机组成原理Slide75 例子 已知X 0 1101Y 0 1011计算 X 原 Y 原 00 110100 011000 1101 部分积 01 0011100 10011100 0000 00 10011100 010011100 1101 01 000111100 10001111 乘数 1 Y0 Y0 1011 Y0 101 Y0 10 判断位 说明 P0 0Y4 1 X 右移一位得P1Y4 1 X 右移一位得P2Y4 0 0 右移一位得P3Y4 1 X 右移一位得P4 X Y Y0 1 计算机组成原理Slide77 乘法运算实现方法 设置专用乘法器实现乘法运算执行乘法运算子程序实现乘法运算借助加法器配置相应部件实现乘法运算原码一位乘法的运算方法与逻辑实现补码一位乘法的运算方法与逻辑实现 计算机组成原理Slide78 原码乘法逻辑结构 R0部分积 计数器 Yn X 2 控制电路 部分积R0 乘数R1 Yn判断位 X 0 1101 Y 0 1011 X X 0 X 计算机组成原理Slide80 部分积累加的数学表示 部分积 XYn部分积 XYn 1 XYn 2 1部分积 XYn 2 XYn 1 XYn 2 1 2 1 XYn 2 XYn 12 1 XYn 2 2 XY1 2 1 XY2 2 2 XYn 2 nX Y X Y1 2 1 Y2 2 2 Yn 2 n 计算机组成原理Slide81 补码一位乘法 1 被乘数 X 符号任意 乘数 Y 为正 X 补 X0 X1X2 Xn Y 补 0 Y1Y2 Yn X 补 Y 补 2 X Y 2n 1 X Y 2n 1Y XY 2 2n 0 Y1Y2 Yn XY 2 Y1Y2 Yn XY 2 XY X Y 补 X Y 补 X 补 Y 补 计算机组成原理Slide82 补码一位乘法 1 被乘数 X 符号任意 乘数 Y 为负数 X 补 X0 X1X2 Xn Y 补 1 Y1Y2 Yn Y 补 2 YY Y 补 2 0 Y1Y2 Yn 1 X Y 补 X 0 Y1Y2 Yn 1 补 X 0 Y1Y2 Yn X 补 X 0 Y1Y2 Yn 补 X 补 X 补 0 Y1Y2 Yn X 补 X 补 0 Y1Y2 Yn Y0 X 补 计算机组成原理Slide83 补码一位乘法 X Y 补 X 补 0 Y1Y2 Yn Y0 X 补 X 补 Y0 0 Y1Y2 Yn X 补 Y0 Y12 1 Y22 2 Yn2 n X 补 Y0 Y1 Y12 1 Y22 1 Y22 2 Yn2 n 1 Yn2 n X 补 Y1 Y0 Y2 Y1 2 1 Y3 Y2 2 2 0 Yn 2 n XY X Y12 1 Y22 2 Yn2 n 原码乘法 开始 i 0 0 X 补 X 补 结束 01 10 00或11 Y N 不变 Y 补右移一位i 1 加法次数 n 1次最后一次加法不需移位符号位直接参与运算 计算机组成原理Slide85 例子 已知X 1 0101Y 1 0011计算 X 补 Y 补解 X 补 0 1011 00 101100 010100 0000 部分积 00 0101100 00101111 0101 11 01111111 101111100 0000 11 101111111 1101111100 1011 乘数 1 1 0 1 00110 1 0011 1 001 判断位 说明 Yn 1 0YnYn 1 10 加 X 补 右移一位得P1末2位为11 0 右移一位得P2末2位为01 X 补 右移一位得P3末2位为00 0 右移一位得P4末2位为10 X 补 1 00 00 10001111 计算机组成原理Slide87 补码一位乘法逻辑结构 R2被乘数 X 补 R0部分积 Yn 1 Yn X 补 2 计算机组成原理Slide88 3 3用补码一位乘法计算 X 补 Y 补 X 0 10111 Y 0 10101解 X 补 1 01001 X 补 0 10111 Y 补 0 10101 部分积R0 乘数R1 判断位YnYn 1 X 补 1 01001 X 补 0 10111 Y 补 0 10101 X 补 X 补 X 补 X 补 X 补 X 补 部分积R0 乘数R1 判断位YnYn 1 计算机组成原理Slide91 定点补码加 减法运算定点乘法运算定点除法运算浮点运算运算器组织运算器部件举例 Outline 计算机组成原理Slide92 定点除法运算 原码除法运算方法原码除法运算实现 计算机组成原理Slide93 0 100100 010110 0011100 0010110 00001100 00010110 000011000 000010110 00000001 不够减 商上零 0 1011 0 1101 除数右移1位 够减 减除数 商上1 除数右移1位 够减 减除数 商上1 除数右移1位 不够减 商上零 除数右移1位 够减 减除数 商上1 定点除法手工计算 计算机组成原理Slide94 恢复余数除法 如何判断是否够减原码运算判断借位利用补码作减法 判断余数符号即可余数为负数时 必须恢复余数即将余数加除数 恢复成原来的值 求下一位商 必须将余数左移一位 再与除数比较比较 上商 恢复 余数移位 再比较 直到获得商所需要的位数为止 00 100101 001011 0101 被除数 余数 00 011100 111011 0101 00 001100 011011 0101 商 上商位 说明 减Y比较 左移一位减Y比较 余数R0 0 商 0加Y恢复余数 余数R1 0 商上1左移一位减Y比较 R2 0 商上1左移一位减Y比较 R3 0 商上0加Y恢复 左移一位减Y比较 R4 0 商上1 11 111000 1011 00 0001 00 011000 110011 0101 11 101100 1011 0 110 0 1101 0 110 0 1 0 0 0 11 Y 补 Y 补 Y 补 Y 补 计算机组成原理Slide96 恢复余数乘法问题 需要进行恢复余数的操作恢复余数的操作次数不确定 故运算时间不固定 影响除法速度 实际应用通常采用不恢复余数除法 计算机组成原理Slide97 不恢复余数法 设某次余数为Ri 求下位商需要将Ri左移一位 然后减去除数进行比较 此过程可表为2Ri Y当结果小于0时商上0 此时 为获得下一位商需要恢复余数 左移一位 减Y比较三步操作 即 2Ri Y Y 2Ri2 2Ri Y 4Ri Y 2 2Ri Y Y 11 111011 110000 1011 被除数 余数 00 011100 111011 0101 00 001100 011011 0101 商 上商位 说明 减Y比较 R0 0商上零左移一位加Y比较 R1 0 商上1左移一位 减Y比较 R2 0 商上1左移一位 减Y比较 R3 0商上零左移一位 加Y比较 R4 0 商上1 00 0001 11 101111 011000 1011 0 110 0 1101 0 1 0 0 11 Y 补 Y 补 Y 补 Y 补 计算机组成原理Slide99 上商位 R0 控制逻辑 R2除数 R0被除数 余数 R1商 不恢复余数除法逻辑结构 1 计数器 计算机组成原理Slide100 Example 3 4用原码不恢复余数法计算 X 补 Y 补 1 X 0 10101 Y 0 11011 Y 补 1 00101 11 1101011 1010000 11011 被除数 余数 00 0111100 1111011 00101 00 0001100 0011011 00101 商 上商位 说明 减Y比较 R0 0商上零左移一位加Y比较 R1 0 商上1左移一位 减Y比较 R2 0 商上1左移一位 减Y比较 R3 0商上零左移一位 加Y比较 R4 0 商上0左移一位 加Y比较 11 1000111 0001000 11011 11 0101110 1011000 11011 0 110 0 1100 0 1 0 0 11 Y 补 Y 补 Y 补 Y 补 Y 补 11 11101 0 11000 R5 0商上零 X 00 10101 Y 00 11011 Y 补 11 00101 Y 补 Y 补 Y 补 Y 补 Y 补 Y 补 Y 补 被除数 余数R0 商R1 上商位Q0 计算机组成原理Slide104 可控制加 减法 CAS 单元 0 Q1 Q2 P 1 原码阵列除法器 1 0 Q1 Q2 P 1 原码阵列除法器延迟 CAS CAS CAS CAS CAS CAS CAS CAS CAS CAS CAS CAS CAS CAS CAS CAS CAS CAS CAS CAS CAS CAS CAS CAS CAS 1 计算机组成原理Slide107 除法器延迟 n n个CAS延迟单元每一个CAS包含4级门电路延迟T故总延迟为 n n 4T 移码加减法运算 X 移 X 移 X Y 补2n 2n x y X 移 Y 移 X Y 补 2n x y 2n 计算机组成原理Slide108 补码一位除法 计算机组成原理Slide109 计算机组成原理Slide110 移码加 减器电路实现 方式控制M M 0加M 1减 C0 FAn 1 FA1 FA0 Cn 2 C1 Sn S1 S0 Xf X1 Y1 X0 Y0 溢出位V 1 计算机组成原理Slide111 定点补码加 减法运算定点乘法运算定点除法运算浮点运算运算器组织运算器部件举例 Outline 计算机组成原理Slide112 浮点加减法运算 计算X Y 求解 如 Ex EyS 2Ex Mx My 如 Ex Ey 假设 计算机组成原理Slide113 对阶 对阶 使得小数部分可以按位权值按位相加 大阶对小阶还是小阶对大阶 210 0 11000 28 0 00110 大阶对小阶210 0 11000 28 11 000 11 000 0 00110 小阶对大阶28 0 00110 210 0 00001 0 00001 0 11000 0 11001对阶过程应该是小阶对大阶尾数右移 计算机组成原理Slide114 尾数运算 如 Ex EyS 2Ex Mx My 计算机组成原理Slide115 运算结果规格化 210 0 11000 也可表示为211 0 01100 同一个浮点数的编码唯一 为提高精度 尾数不为零的时 要求其绝对值大于1 2 即尾数最高有效位为1 否则要以修改阶码的方式同时左右移小数点 使其变成这一要求的表示形式 这个过程称为浮点数的规格化将运算结果右移以实现规格化表示称为向右规格化 右归将运算结果左移以实现规格化表示称为向左规格化 左归 计算机组成原理Slide116 规格化形式 规格化数形式0 1XXXX 0 1XXXX补码规格化形式00 1XXXX11 0XXXX补码非规格化数00 0XXXX11 1XXXX01 XXXXX10 XXXXX 定点数规格化区间 计算机组成原理Slide117 0 2 1 1 2 1 1 计算机组成原理Slide118 00 0XXXX 00 1XXX0左规11 1XXXX 11 0XXX0左规01 XXXXX 00 1XXXX右规10 XXXXX 11 0XXXX右规 连符号位一起移位 规格化方法 计算机在表示浮点数时 通常进行向左规格化处理上溢的时候 右归 下溢的时候 左归 计算机组成原理Slide119 右归规则 非正常符号位 溢出 符号位进位舍去 正常结果 正常结果 非正常符号位 溢出 计算机组成原理Slide120 X 11 1001 X 00 0110 1 00 0111左移一位2X 11 0010or2X 11 0011 2X 00 11102X 11 0001 1 11 0010 左归规则 计算机组成原理Slide121 向左规格化 尾数左移一位 阶码减1 尾数左移两位 阶码减2 计算机组成原理Slide122 尾数连同符号位进位位右移一位 阶码加1 尾数连同符号位进位位右移一位 阶码加1 向右规格化 计算机组成原理Slide123 规格化规则小结 运算结果产生溢出时 必须进行右归如变形补码结果出现10 XX或者01 XXX如运算结果出现0 0XXX或1 1XX必须左归左归时最低数据有效位补0右归时连同符号位进位位一起右移左归时 阶码作减法 右归时 阶码作加法 计算机组成原理Slide124 舍入处理 右规后低位部分丢失了一位 这会对数产生一定的误差 0舍1入法 如被丢的最高数位为0 舍去 如为1 则将尾数末位加一 截去法 舍入处理 计算机组成原理Slide125 向零舍入 1 1 1 2 2 向上舍入 2 2 2 3 3 向下舍入 1 1 1 2 2 向偶数舍入 1 2 2 2 3 1 1 2 2 计算机组成原理Slide126 溢出处理 尾数上溢右归尾数下溢左归阶码正上溢 X 阶码负上溢 X 0 计算机组成原理Slide127 浮点数加减法 五个基本步骤对阶尾数求和规格化 左规 右规 舍入 截去 0舍1入 检查溢出 例1两浮点数x 2101 0 11011011 y 2111 0 10101100 假设尾数在计算机中以补码表示 可存储10位尾数 2位符号位 阶码以补码表示 双符号位 求x y 解 将x y转换成浮点数据格式 x 浮 00101 00 11011011 Y 浮 00111 11 01010011 100111 11 01010100步骤1 对阶 阶差为Ex Ey Ex 补 Ey 补 Ey 补 11000 1 11001Ex Ey 00101 11001 11110 00001 1 00010 2 0Ex Ey 0Ex Ey小阶对大阶 X阶码加2X尾数右移2位 解 将x y转换成浮点数据格式 x 浮 00101 00 11011011 Y 浮 00111 11 01010011 100111 11 01010100步骤1 对阶 阶差为Ex Ey Ex 补 Ey 补Ex Ey 2 0Ex Ey 0Ex Ey小阶对大阶 X阶码加2X尾数右移2位 x 浮 00111 00 00110110 11 步骤2 尾数求和 X Y 浮 00111 00 00110110 11 00111 11 01010100 00111 11 10001010 11 步骤2 尾数求和 X Y 浮 00111 00 00110110 11 00111 11 01010100 00111 11 10001010 11 步骤3 计算结果规格化 X Y 浮为非规格化数 左归一位 阶码减一 00110 11 00010101 1 步骤4 舍入处理 X Y 浮 00110 11 00010110 0舍1如法 X Y 浮 00110 11 00010101 截去法 步骤5 溢出判断无溢出 X Y 浮 2110 x 00 11101011 例2 两浮点数x 201 0 1101 y 210 0 1010 假设尾数在计算机中以补码表示 可存储6位尾数 2位符号位 阶码以补码表示 双符号位 采用0舍1入 求x y 解 将x y转换成浮点数据格式 x 浮 0001 00 1101 Y 浮 0010 11 0101 10010 11 0110步骤1 对阶 阶差为Ex Ey Ex 补 Ey 补 Ey 补 1101 1 1110Ex Ey 0001 1110 1111 00000 1 00001 1 0Ex Ey 0Ex Ey小阶对大阶 X阶码加1X尾数右移1位 解 将x y转换成浮点数据格式 x 浮 0001 00 1101 Y 浮 0010 11 0101 10010 11 0110步骤1 对阶 阶差为Ex Ey Ex 补 Ey 补Ex Ey 1 0Ex Ey小阶对大阶 X阶码加1X尾数右移1位 x 浮 0010 00 0110 1 步骤2 尾数求和 X Y 浮 0010 00 0110 1 0010 11 0110 0010 11 1100 1 步骤2 尾数求和 X Y 浮 0010 00 0110 1 0010 11 0110 0010 11 1100 1 步骤3 计算结果规格化 X Y 浮为非规格化数 左归两位 阶码减二 0000 11 0010 0 步骤4 舍入处理 X Y 浮 0000 11 0010 0 0舍1如法 X Y 浮 0000 11 0010 0 截去法 步骤5 溢出判断无溢出 X Y 浮 2000 x 0 1110 计算机组成原理Slide134 特殊例子 X 2111 0 11111111 Y 2111 0 10000001 X 浮 0111 0 11111111 Y 浮 0111 0 10000001 X Y 浮 0111 1 10000000尾数运算溢出 右归 连同符号位进位位一起右移一位 阶码加1 X Y 浮 1000 0 11000000阶码溢出 运算结果正溢出 计算机组成原理Slide135 特殊例子 X 2 1000 0 11110000 Y 2 1000 0 10000001 X 浮 1000 1 00010000 Y 浮 1000 0 10000001 X Y 浮 1000 1 10010001非规格化数 左归 左移一位 阶码减1 X Y 浮 1000 0 110010001000 1111 0111 7阶码负溢出 运算结果下溢 计算机组成原理Slide136 浮点数乘法运算 如 X 2m MxY 2n MyX Y 2m Mx 2n My 2m n Mx My 计算机组成原理Slide137 浮点数乘法运算 1 阶码相加阶码相加可能产生溢出 若产生溢出 则给出溢出指示 计算机进行溢出处理 2 尾数相乘尾数部分相乘可得积的尾数 尾数相乘可按定点乘法运算的方法进行运算 3 结果规格化当运算结果需要进行规格化操作时 可按浮点加 减法运算规格化方式处理 舍入方式也与加 减法方式中的相同 计算机组成原理Slide138 浮点数除法运算 如 X 2m MxY 2n MyX Y 2m Mx 2n My 2m n Mx My 计算机组成原理Slide139 浮点数除法运算 尾数调整如果被除数尾数大于除数的尾数 从绝对值考虑 则将被除数尾数右移一位并相应调整阶码 由于给出运算的操作数是规格化数 一般只作一次调整便可达到要求 阶码求差商的阶码等于被除数的阶码减去除数的阶码 此步运算基本上获得了商的阶码 尾数相除以被乘数的尾数除以除数的尾数以获得商的尾数 尾数相除与定点除法运算相同 计算机组成原理Slide140 Outline 定点补码加 减法运算定点乘法运算定点除法运算浮点运算运算器组织运算器部件举例 计算机组成原理Slide141 运算器功能 数据进行算术运算和逻辑运算暂存参加运算的数据及运算的中间结果选取相应部件中的数据参与运算反映运算处理的状态 计算机组成原理Slide142 算术逻辑运算单元ALU组成 计算机组成原理Slide143 算术逻辑运算单元ALU组成 计算机组成原理Slide144 算术逻辑运算单元ALU组成 计算机组成原理Slide145 算术逻辑运算单元ALU组成 0 2 R e s u l t O p e r a t i o n a 1 C a r r y I n C a r r y O u t 0 1 B i n v e r t b 计算机组成原理Slide146 算术逻辑运算单元ALU组成 计算机组成原理Slide147 算术逻辑运算单元ALU组成 计算机组成原理Slide148 寄存器组 计算机组成原理Slide149 多路选择电路 OUT i R 0 i R 1 i R 2 i R 3 i R 3 OUT R 2 OUT R 1 OUT R 0 OUT 1 ALU 运算器结构 PSW 左路开关选择 右路开关选择 数据总线DBUS 移位器 操作数X 操作数Y ALU SR BUS 状态寄存器 A B ALU BUS 锁存器LA 锁存器LB 选择电路 R0 R1 Rn BUS bus LDLA LDLB L bus Ri L LDR0 LDRn bus L BUS bus bus BUS 1 假定有4个数组用8位补码分别表示为R1 FEH R2 F2H R3 90H 若将运算结果存放在一个8为寄存器中 则下列运算会发生溢出的是 10研究生统考 A R1 R2 B R2 R3 C R1 R4 D R2 R4 2 假定变量i f d的数据类型分别为int float double int用补码表示 float和double分别用IEE754单精度和双精度浮点格式表示 已知i 785 f 1 5678e3 d 1 5e1