计算机组成用变形补码运算,计算机组成原理补码加减法运算

a7f4a3f590493a1e451dd952a488fd7c.gif 计算机组成原理补码加减法运算

(37页)

计算机组成用变形补码运算,计算机组成原理补码加减法运算_第1张图片

本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦!

14.90 积分

补码加减法运算 2019年7月9日计算机组成原理 1补码加减法运算 1.原码加/减法运算加法规则: 先判符号位,若相同,绝对值相加,结果符号不变; 若不同,则作减法, |大| - |小|,结果符号与|大|相同。减法规则: 两个原码表示的数相减,首先将减数符号取反,然后将被减数与符号取反后的减数按原码加法进行运算。计算机组成原理 22.补码加法运算 补码加法的公式: [ x ]补+[ y ]补=[ x+y ]补 (mod 2) 特点:不需要事先判断符号,符号位与码值位一起参加运算。 符号位相加后若有进位,则舍去该进位数字。 在模2意义下,任意两数的补码之和等于该两数之和的补码。 这是补码加法的理论基础。 补码加法的特点: (1)符号位要作为数的一部分一起参加运算; (2)在模2的意义下相加,即大于2的进位要丢掉。 其结论也适用于定点整数。计算机组成原理 3例: x=0.1001, y=0.0101, 求 x+y。解: [x]补=0.1001, [y]补=0.0101 [x]补   0. 1 0 0 1 + [y]补  0. 0 1 0 1   [x+y ]补  0. 1 1 1 0  所以  x+y=+0.1110 例: x=+0.1011, y=-0.0101, 求 x+y。解: [x]补=0.1011,  [y]补=1.1011 [x]补   0. 1 0 1 1 +[y]补  1. 1 0 1 1    [x+y]补 1 0. 0 1 1 0 所以  x+y=0.0110计算机组成原理 43.补码减法 补码减法运算的公式: [ x -y ]补=[ x ]补-[ y ]补=[ x ]补+[-y ]补 两数差的补码等于两数补码之差 公式证明: 只要证明[–y]补= –[y]补, 上式即得证。 证明:  ∵ [x+y]补=[x]补+[ y]补   (mod 2) 令 y = -x  ∴ [0]补 =[x]补 + [ -x]补  故 [-x]补=-[ x]补 (mod 2)    减法运算化为加法完成。关键是求[-Y]补计算机组成原理 5例: x=+0.1101, y=+0.0110, 求 x-y。 解:  [x]补=0.1101     [ y]补=0.0110 [ -y]补=1.1010  [x]补  0.1 1 0 1 +[-y]补     1.1 0 1 0    ∴ x-y=+0.0111 [x-y]补 1 0.0 1 1 1 例: x= -0.1101,y= -0.0110,求x-y=?解: [x]补=1.0011 [y]补=1.1010 [-y]补=0.0110 [x]补 1.0 0 1 1 + [-y]补 0.0 1 1 0 ∴x -y = - 0.0111 [x-y]补 1.1 0 0 1 计算机组成原理 6 溢出及与检测方法 1.概念 在定点小数机器中,数的表示范围为|x|<1。在运算过程中如出现大于1的现象,称为 “溢出”。 下溢 上溢 机器定点小数表示 发生溢出的原因,是因为运算结果超出编码所能表示的数字大小。 两个正数相加: 结果大于机器所能表示的最大正数,称为上溢; 两个负数相加:结果小于机器所能表示的最小负数,称为下溢。计算机组成原理 7 例:x=+0.1011, y=+0.1001, 求x+y。      解:      [x]补=0.1011     [y]补=0.1001                    [x]补    0. 1 0 1 1                +   [y]补    0. 1 0 0 1                    [x+y]补    1. 0 1 0 0  两个正数相加的结果成为负数,这显然是错误的。   正常结果 例:x= -0.1101, y= -0.1011, 求x+y。 解:      [x]补=1.0011    [y]补=1.0101                   [x]补    1. 0 0 1 1              +  [y]补    1. 0 1 0 1               [x+y]补   0. 1 0 0 0 两个负数相加的结果成为正数,这同样是错误的。 正常结果 计算机组成原理 8 2.溢出的检测方法      [x]补    0. 1 0 1 1      [x]补    1. 0 0 1 1   +   [y]补    0. 1 0 0 1             +   [y]补    1. 0 1 0 1      [x+y]补    1. 0 1 0 0           [x+y]补    0. 1 0 0 0 (1)单符号位检测方法1 设两数符号位分别为 S1、S2 x 和数符号位 SC 0 FA z0 y0 溢出逻辑表达式为: 判断 V V=S1 S2 Sc + S1 S2 Sc 电路 判断电路计算机组成原理 9(2)单符号位检测方法2 符号位进位Cf,最高位进位Cn Cf = 0,Cn = 0 Cf = 1,Cn = 1 Cf = 0,Cn = 1 Cf = 1,Cn = 0计算机组成原理 10从上面例中看到: 当最高有效位有进位而符号位无进位时,产生上溢; 当最高有效位无进位而符号位有进位时,产生下溢。 (简单地说是正数相加为负数或负数相加为正数则产生溢出) 故溢出逻辑表达式为: V=Cf?Co 其中Cf为符号位产生的进位,Co为最高有效位产生的进位。 此逻辑表达式也可用异或门实现。 V=C1?Co 判断电路 c0 x0 FA z0 y0 V c1 x1 FA z1 y1计算机组成原理 11 (3)双符号位法 一个符号位只能表示正、负两种情况,当产生溢出时,符号位的含义就会发生混乱。如果将符号位扩充为两位(Sf1、Sf2),其所能表示的信息量将随之扩大,既能判别是否溢出,又能指出结果的符号。 双符号位法也称为“变形补码”或“模4补码” 。 定点小数变形补码定义: x 0? x<1 (mod 4) [x]补= 4+x -1? x<0 字长n+2定点整数,变形补码定义: n n+2 x 0? x<2 (mod 2 ) [x]补= n+2 n 2 + x -2 ?x<0 计算机组成原理 12采用变形补码后数的表示: ? 任何小于1的正数: 两个符号位都是“0”,即 00.x1x2...xn; ? 任何大于-1的负数:两个符号位都是“1”,即 11.x1x2…xn 模4补码加法公式:[x]补+[ y]补=[x+y]补     (mod 4) 两数变形补码之和等于两数和的变形补码,要求: ? 两个符号位都看做数码一样参加运算; ? 两数进行以4为模的加法,即最高符号位上产生的进位要丢掉。计算机组成原理 13双符号数溢出检测 正常结果 符号位进位舍去,正常结果 非正常符号位,溢出 非正常符号位,溢出计算机组成原理 14双符号位的含义如下: Sf1Sf2 =00 结果为正数,无溢出 01 结果正溢 10 结果负溢 11 结果为负数,无溢出即:结果的两个符号位的代码不一致时,表示溢出; 两个符号位的代码一致时,表示没有溢出。 不管溢出与否,最高符号位永远表示结果的正确符号。 c 0 x z 0 0溢出逻辑表达式为:V=S ?S F A f1 f2 y 0式中:S 和S 分别为最高符号位和第二 c V f1 f2 1符号位,此逻辑表达式可用异或门实现。 x1 F A z 1 y1计算机组成原理 15 例 x= +0.1100, y= +0.1000, 求x+y。  解:    [x]补=00.1100    [y]补=00.1000                    [x]补    0 0. 1 1 0 0               +   [y]补    0 0. 1 0 0 0                           0 1. 0 1 0 0  符号位出现“01”,表示已溢出,正溢。即结果大于+1 例 x= -0.1100, y= -0.1000, 求x+y。     解:   [x]补=11.0100     [y]补=11.1000                   [x]补    1 1. 0 1 0 0                +   [y]补    1 1. 1 0 0 0                            1 0. 1 1 0 0 符号位出现“10”,表示已溢出,负溢出。即结果小于-1计算机组成原理 16基本的二进制加法/减法器1.一位全加器 逻辑方程 Si ? Ai ? Bi ? Ci Ci?1 ? Ai Bi ? (Ai ? Bi )Ci 一位全加器真值表 输入 输出 Si Ai Bi Ci Si Ci+1 0 0 0 0 0 0 0 1 1 0 Ci+1 FA Ci 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 ? 1 0 1 0 1 Ai Bi 1 1 0 0 1 一位全加器 1 1 1 1 1计算机组成原理 17逻辑方程 Si ? Ai ? Bi ? Ci ? ? ? C Ci?1 Ai Bi (Ai Bi )Ci i+1 Si ≥1 =1 S i & C i+1 F A C i & =1 A i B i 逻辑符号 Ci Ai Bi计算机组成原理 18 2.n位的行波进位加减器 n个1位的全加器(FA)可级联成一个n位的行波进位加减器。计算机组成原理 193.n位的行波进位加法器的问题 典型门电路的逻辑符号和延迟时间门的名称 门的功能 逻辑符号(正逻辑) 时间延迟 T被定义为相应 与非 NAND T 于单级逻辑电路 的单位门延迟。 或非 NOR T 非 NOT T 与 AND 2T T通常采用一个 或 OR 2T “与非”门或一 异或 XOT 3T 个“或非”门的 时间延迟来作为 异或非 XNOR 3T 度量单位。 接线逻辑 AOI T+T (与或非) RC计算机组成原理 20(1)对一位全加器(FA)来说,Si的时间延迟为6T(每级异或门延迟3T); Ci+1的时间延迟为5T。 Ci+1 Si ≥1 =1 & & =1 Ci Ai Bi计算机组成原理 21(2)n位行波进位加法器的延迟时间ta为: 考虑溢出检测时,有: ta=n·2T+9T=(2n+9)T ? 9T为最低位上的两极“异或”门再加上溢出“异或”门的总时间; ? 2T为每级进位链的延迟时间。当不考虑溢出检测时,有:ta=(n-1)·2T+9T  ta为在加法器的输入端输入加数和被加数后,在最坏的情况下加法器输出端得到稳定的求和输出所需要的最长时间。 ta越小越好。由一位全加器(FA)构成的行波进位加法器: 缺点: (1)串行进位,它的运算时间长; (2)只能完成加法和减法两种操作而不能完成逻辑操作。 能否提前产生各位的进位输入? 使得各位的加法运算能并行起来,即可提高多位加法器运算速度计算机组成原理 22 并行加法器进位链 n ? ? Si=Ai Bi Ci-1 ? n Ci= AiBi + (Ai Bi) Ci-1 n 进位生成函数 Gi = AiBi Gi Generate n ? 进位传递函数 Pi=Ai Bi Pi Propagate n Ci = Gi+PiCi-1 n ? Cn = AnBn+(An Bn)Cn-1=Gn+PnCn-1 n ? Cn-1 = An-1Bn-1+(An-1 Bn-1)Cn-2=Gn-1+Pn-1Cn-2 n …… n ? C1 = A1B1+(A1 B1)C0=G1+P1C0 n 高位的运算依赖于低位运算的进位输入计算不能并行 n 能否提前得到当前位的进位输入??计算机组成原理 23并行加法器进位链 ? C1 = A1B1+(A1 B1)C0=G1+P1C0 ? C2 = A2B2+(A2 B2) C1=G2+P2C1 =G2+P2(G1+P1C0) =G2+P2G1+P2P1C0 ? C3 = A3B3+(A3 B3) C2=G3+P3C2 =G3+P3(G2+P2G1+P2P1C0) =G3+P3G2+P3P2G1+P3P2P1C0 Cn-1 = Gn-1+Pn-1Gn-2+Pn-1Pn-2Gn-3 …+Pn Pn-1 …P1C0 …… Cn = Gn+PnGn-1+PnPn-1Gn-2 +PnPn-1Pn-2Gn-3… + PnPn-1 Pn-2 …P1C0 位数越长,进位链电路复杂度越高 通常按照4位一组进行分组运算计算机组成原理 24与门异或门电路 G4 P4 G3 P3 G2 P2 G1 P1 & =1 & =1 & =1 & =1 A B A B A B A B 先行进位电路 4 4 3 3 2 2 1 1 c4 c3 c2 c1 ≥1 ≥1 ≥1 ≥1 & & & & & & & & & &计算机组成原理 G4 P4 G3 P3 G2 P2 G1 P1 25四位快速加法器 S4 S3 S2 S1 C4 =1 =1 =1 =1 C4 C3 C2 C1 先行进位电路 G4 P4 G3 P3 G2 P2 G1 P1 C0 G4 P4 G3 P3 G2 P2 G1 P1 与门异或门电路 X4 Y4 X3 Y3 X2 Y2 X1 Y1 A4 B4 A3 B3 A2 B2 A1 B1计算机组成原理 2616位加法器 n 组内先行进位 C4 4位快速加法 C0 器 n 组间串行进位 n 可否组间并行? C16 快速加法器 C12 快速加法器 C8 快速加法器 C4 快速加法器 C0计算机组成原理 27成组进位n C4 = G4+P4G3+P4P3G2+P4P3P2G1+P4P3P2P1C0 *n 成组进位发生输出 G4 = G4+P4G3+P4P3G2+P4P3P2G1 *n 成组进位传递函数 P4 = P4P3P2P1 * *n C4 = G4 +P4 C0 n 比较原相邻位进位公式 C1 = G1 +P1 C0 * *n C4 = G4 +P4 C0 * * * *n C8 =G8 +P8 (G4 +P4 C4) * * * * * =G8 +P8 G4 +P8 P4 C0 * * * * * *n C16 =G16 +P16 G12 +P16 P12 G8 * * * * * * * * +P16 P12 P8 G4 +P16 P12 P8 P4 C0 * *n 用4组 P G 作输入,即可复用原先行进位电路n 产生组间先行进位信号计算机组成原理 28先行进位电路74182 n 输入 : P4G4 P3G3 P2G2 P1G1 C0 n 输出 先行进位输出 : C4 C3 C2 C1 成组进位传送输出P* 成组进位发生输出G* n Cn = Gn+PnGn-1+PnPn-1Gn-2 +PnPn-1Pn-2Gn-3…+Pn Pn-1 …P1C0 n ? Gi = XiYi Pi=Xi Yi C4 C3 C2 C1 * P 先行进位电路 74182 C0 G* P4G4 P3G3 P2G2 P1G1 计算机组成原理 29ALU74181n 先行进位的多功能算术/逻辑运算单元 13 11 10 9 16 7 C F3 F2 F1 F0 C0n+4 Cn 3 8 S3 M 4 SN74181 14 S2 A=B 5 4位ALU 15 S1 P 6 17 S0 G A3 A2 A1 A0 B3 B2 B1 B0 19 21 23 2 18 20 22 1计算机组成原理 30计算机组成原理 31 16位组内先行进位,组间先行进位 * * P G C 关 键 词: 计算机组成原理补码加减法运算 ppt、pptx格式 免费阅读 下载 天天文库

4d91c43bfc72ca913299809b07b4968f.gif  天天文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。

你可能感兴趣的:(计算机组成用变形补码运算)