
03运算方法和运算器.ppt
119页2017年 8月 11日星期五 南理工紫金学院 朱娴 1 第三章 运算方法与运算器 本章学习内容 基本的二进制加法器和 ALU部件 定点加、减、乘、除运算 (重点 ) 浮点加、减 、乘、除运算(重点) 十进制数的运算与十进制加法器 逻辑运算与移位操作 2017年 8月 11日星期五 南理工紫金学院 朱娴 2 § 3.1 基本的二进制加法器和 ALU部件 一、 全加器 FA ai bi si ci-1 ci 图 3-1 全加器逻辑符号 ai bi ci-1 si ci 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1 表 3-1 全加器真值表 2017年 8月 11日星期五 南理工紫金学院 朱娴 3 全加器的逻辑表达式为 (1) si=ai⊕ bi⊕ ci-1 ci=aibi+(ai⊕ bi)ci-1 (2) si=ai⊕ bi⊕ ci-1 ci=aibi+aici-1+bici-1 ai bi ci-1 si ci =1 =1 + & ai bi ci-1 si ci =1 =1 + & 2017年 8月 11日星期五 南理工紫金学院 朱娴 4 二、并行加法器及其进位链 1. 串行进位(行波进位) FA FA FA … C1 C2 Cn-1 Cn A1 B1 A2 B2 An Bn S1 S2 Sn C0 2017年 8月 11日星期五 南理工紫金学院 朱娴 5 cn c0 c1 ci ty 2 4 … 2n c2 sn s1 si ty 2 4 … 2n s2 2017年 8月 11日星期五 南理工紫金学院 朱娴 6 串行进位加法器的速度受限于进位位 ci的传递。
提高速度有两种途径: ① 采用更高速的器件,减短 ci的传递时延 ② 改进进位链的结构,减少延迟级数 2017年 8月 11日星期五 南理工紫金学院 朱娴 7 2. 并行进位(先行进位) ci=aibi+(ai⊕ bi)ci-1 ∴ ci=gi+pici-1 例如: 4位的并行进位加法器 本地进位,用 gi表示 进位传递函数 ,用 pi表示 c1=g1+p1c0 c2=g2+p2c1 =g2+p2g1+p2p1c0 c3=g3+p3c2 =g3+p3g2+p3p2g1+p3p2p1c0 c4=g4+p4c3 =g4+p4g3+p4p3g2+p4p3p2g1+p4p3p2p1c0 a a ⊕ 2017年 8月 11日星期五 南理工紫金学院 朱娴 8 图 3-2 4位并行进位加法器的逻辑图 2017年 8月 11日星期五 南理工紫金学院 朱娴 9 c4 c0 c1 ci ty c2 c3 s4 s1 si ty s2 s3 2 4 2017年 8月 11日星期五 南理工紫金学院 朱娴 10 3. 分组并行进位 ⑴ 组内并行、组间串行 进位方式 以 16位加法器为例 , 可分为 四组 , 每组四位 。
组内并行 :每组内的进位位同时产生 即 c1~ c4同时产生 , c5~ c8同时产生 , c9~ c12同时产生 ,c13~ c16同时产生 组间串行 :组间的进位位不同时产生 例如c5~ c8迟于 c1~ c4产生 2017年 8月 11日星期五 南理工紫金学院 朱娴 11 CLA c4 a4~ a1 C0 b4~ b1 … … CLA C8 a8~ a5 b8~ b5 … … … s4 ~ s1 … s8 ~ s5 CLA c12 a12~ a9 b12~ b9 … … … s12 ~ s9 CLA a16~ a13 b16~ b13 … … … s16 ~ s13 C16 2017年 8月 11日星期五 南理工紫金学院 朱娴 12 c16 c12 c8 c4 c0 c1 ci ty 2017年 8月 11日星期五 南理工紫金学院 朱娴 13 s16 s12 s8 s4 s1 si ty 2017年 8月 11日星期五 南理工紫金学院 朱娴 14 ⑵ 组内并行、组间并行 进位方式 第一组: c4=g4+p4g3+p4p3g2+p4p3p2g1 + p4p3p2p1c0 ∴ c4=G1+P1c0 依次类推: 第二组: c8=G2+P2c4=G2+P2G1+P2P1c0 第三组: c12=G3+P3c8=G3+P3G2 +P3P2G1+P3P2P1c0 第四组: c16=G4+P4c12=G4+P4G3+P4P3G2+P4P3P2G1+ P4P3P2P1c0 小组本地进位,用 G1表示 小组进位传递函数,用 P1表示 2017年 8月 11日星期五 南理工紫金学院 朱娴 15 图 3-3 组间并行进位逻辑 2017年 8月 11日星期五 南理工紫金学院 朱娴 16 图 3-4 G1、 P1的逻辑电路图 2017年 8月 11日星期五 南理工紫金学院 朱娴 17 c16 c12 c8 c4 c0 c1 ci ty 2017年 8月 11日星期五 南理工紫金学院 朱娴 18 s16 s12 s8 s4 s1 si ty 2017年 8月 11日星期五 南理工紫金学院 朱娴 19 三、 ALU部件及其举例 n+4 3-5 用于并行连接 用于串行连接 2017年 8月 11日星期五 南理工紫金学院 朱娴 20 2017年 8月 11日星期五 南理工紫金学院 朱娴 21 § 3.2 定点补码加减运算及实现 一、补码加减的基本依据 [x]补 + [y]补 = [x+ y]补 (mod M) [x]补 - [y]补 = [x]补 + [-y]补 = [x- y]补 (mod M) 2017年 8月 11日星期五 南理工紫金学院 朱娴 22 二、补码加减运算的基本规则 ① 参加运算的各个 操作数 均以 补码表示 ,运算 结果 仍以补码表示。
② 符号位与数值位一起参加运算 ③ 若求 和 ,则将两补码数直接相加,得到 两数之和的补码 ;若求 差 ,则将 减数变补 (由 [y]补 求 [- y]补 ),然后与被减数 相加 ,得到 两数之差的补码 ④ 补码总是对确定的模而言,若运算结果超过模 (有从符号位上产生的进位 ),则将 模自动丢掉 2017年 8月 11日星期五 南理工紫金学院 朱娴 23 例 1: x=+1001, y=+0110,求 x± y 解: ∵ [x] 补 =01001, [y]补 =00110 ∴[x+y] 补 = [x]补 + [y]补 = 01001+00110=01111 ∴ x+y=+1111 ∵[ -y]补 =11010 ∴[x -y]补 = [x]补 + [-y]补 = 01001+11010= 00011 ∴ x -y=+0011 2017年 8月 11日星期五 南理工紫金学院 朱娴 24 例 2: x=+0.1011, y=+0.0110,求 x+y 解: ∵ [x] 补 =0.1011, [y]补 =0.0110 ∴[x+y] 补 = [x]补 + [y]补 =0.1011+ 0.0110=1.0001 ∴ x+y= -0.1111 例 3: x=- 1010, y=- 1101,求 x+y。
解: ∵ [x] 补 =10110, [y]补 =10011 ∴[x+y] 补 = [x]补 + [y]补 =10110+10011= 1 01001 ∴ x+y=+1001 错! 正溢出 错! 负溢出 2017年 8月 11日星期五 南理工紫金学院 朱娴 25 三、溢出判别与变形补码 设 [x]补 = x0.x1x2…x n , [y]补 = y0.y1y2…y n, [s]补 =[x]补 + [y]补 = s0.s1s2…s n ; OVR为溢出判别信号,且当 OVR= 1时,表示溢出 三种判断溢出的方法: (1) 根据符号 x0、 y0及 s0判别溢出 OVR= x0y0s0 + x0y0s0 = (x0⊕s 0)(y0⊕ s 0) & =1 =1 x0 s0 y0 OVR 2017年 8月 11日星期五 南理工紫金学院 朱娴 26 即 x0和 y0均与 s0不同时,产生溢出,且 x0= y0 =0时为 正 溢出; x0= y0 =1时为 负 溢出 2017年 8月 11日星期五 南理工紫金学院 朱娴 27 (2) 根据两数相加时产生的进位判别 设 Cf为 符号位 上产生的进位, C1为 最高数值位上产生的进位,则溢出的条件为: OVR= CfC1+ CfC1= Cf⊕C 1 即若 Cf≠C1 ,则产生溢出,且 Cf = 0时,为 正 溢出 ; Cf = 1时,为 负 溢出。
=1 OVR Cf C1 溢出判断电路 2017年 8月 11日星期五 南理工紫金学院 朱娴 28 (3) 采用变形补码运算 变形补码的实质是 双符号位补码 即 [x]变形补 = x0x0.x1x2… xn , [y]变形补 = y0y0.y1y2… yn 设 [s]变形补 = [x]变形补 +[y]变形补 = sf1sf2.s1s2…s n 变形补码的溢出判断条件: OVR= sf1⊕s f2 =1 OVR sf1 sf2 2017年 8月 11日星期五 南理工紫金学院 朱娴 29 当 sf1≠sf2时,出现溢出其中: sf1sf2= 01 表示 正 溢出 sf1sf2= 10 表示 负 溢出 例: x=+ 0.1010, y=+ 0.1001,求 x+ y=? 解: [x]变形补 = 00.1010, [y]变形补 = 00.1001 [s]变形补 = [x+ y]变形补 = 00.1010+ 00.1001 OVR=sf1⊕s f2= 1 溢出! 00.1010 00.1001 + 01.0011 正溢出 2017年 8月 11日星期五 南理工紫金学院 朱娴 30 练习 1. 分别用三种判别溢出的方法判别下列运算是否发生溢出。
① x=+ 0.1001, y=- 0.0101,求 x- y=? ② x=- 0.1101, y=- 0.1011,求 x+ y=? 不溢出 负溢出 2017年 8月 11日星期五 南理工紫金学院 朱娴 31 [A]补 + [B]补 = [A+ B]补 [A]补 - [B]补 = [A]补 。












