第二章 运算方法和运算器.ppt_第1页
第二章 运算方法和运算器.ppt_第2页
第二章 运算方法和运算器.ppt_第3页
第二章 运算方法和运算器.ppt_第4页
第二章 运算方法和运算器.ppt_第5页
已阅读5页,还剩130页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、,华北电力大学计算机系 王晓霞,计算机组成与结构,第二章,本章结构,2.4 定点数乘法运算,2.3 定点数加减运算及实现,2.2 机器数的编码格式,2.1 数据信息的表示方法,2.5 定点数除法运算,2.6 浮点数运算方法,2.7 运算器部件及进位链结构,2.8 位片式运算器部件Am2901,2.1 数据信息的表示方法,数值数据的表示方法,小数点按约定方式标出,1. 定点表示法,2. 浮点表示,计算机中 r取 2、4、8、16 等,当 r= 2,N = 11.0101,= 0.110101210,= 1.1010121,= 1101.012-10,= 0.001101012100,计算机中 S

2、 正负定点小数,可用补码或原码表示,j 正负整数,可用补码或移码表示,规格化数,数值数据的表示方法,(1) 浮点数的表示形式,Sf 代表浮点数的符号,n 其位数反映浮点数的精度,m 其位数反映浮点数的表示范围,jf 和 m 共同表示小数点的实际位置,浮点表示,(2) 浮点数的表示范围,2( 2m1)( 1 2n),2( 2m1)2n,2( 2m1)( 1 2n),2( 2m1)2n,215 ( 1 2-10),2-15 2-10,2-15 2-10,215 ( 1 2-10),上溢 阶码 最大阶玛 下溢 阶码 最小阶码 按 机器零 处理,练习,设机器数字长为 24 位,欲表示3万的十进制数,试

3、问在保证数的最大精度的前提下,除阶符、数符各 取1 位外,阶码、尾数各取几位?,满足 最大精度 可取 m = 4,n = 18,解:,(3) 浮点数的规格化形式,r = 2,尾数最高位为 1,r = 4,尾数最高 2 位不全为 0,r = 8,尾数最高 3 位不全为 0,基数不同,浮点数的 规格化形式不同,浮点表示,(4) 浮点数的规格化,r = 2,左规 尾数左移 1 位,阶码减 1,右规 尾数右移 1 位,阶码加 1,r = 4,左规 尾数左移 2 位,阶码减 1,右规 尾数右移 2 位,阶码加 1,r = 8,左规 尾数左移 3 位,阶码减 1,右规 尾数右移 3 位,阶码加 1,基数

4、r 越大,可表示的浮点数的范围越大,基数 r 越大,浮点数的精度降低,浮点表示,例如:,最大正数,= 215( 1210 ),最小正数,最大负数,最小负数,= 21521,= 215( 12 10 ),= 216,= 21521,设 m = 4,n = 10,尾数规格化后的浮点数表示范围,3、举例,解:,二进制形式,定点表示,浮点规格化形式,x原 = 1, 0010; 0. 1001100000,x补 = 1, 1110; 0. 1001100000,x反 = 1, 1101; 0. 1001100000,定点机中,浮点机中,000,x = 0.0010011,x = 0.0010011,x

5、= 0.10011000002-10,x原 = x补 = x反 = 0.0010011000,将 58 表示成二进制定点数和浮点数,并写出它在定点机和浮点机中的三种机器数及阶码为移码,尾数为补码的形式(其他要求同上例)。,x = 111010,0000,例 2,解:,设 x = 58,二进制形式,定点表示,浮点规格化形式,x原 = 1, 0000111010,x补 = 1, 1111000110,x反 = 1, 1111000101,x原 = 0, 0110; 1. 1110100000,x补 = 0, 0110; 1. 0001100000,x反 = 0, 0110; 1. 00010111

6、11,定点机中,浮点机中,x阶移、尾补 = 1, 0110; 1. 0001100000,x = 111010,x = (0.1110100000) 2110,写出对应下图所示的浮点数的补码形式。 设 n = 10,m = 4, 阶符、数符各取 1位。,例3,解:,真值,最大正数,最小正数,最大负数,最小负数,215(1 210),215 210,215 210,215(1 210),0,1111; 0.1111111111,1,0001; 0.0000000001,1,0001; 1.1111111111,0,1111; 1.0000000001,补码,当浮点数 尾数为 0 时,不论其阶码为

7、何值 按机器零处理,机器零,当浮点数 阶码等于或小于它所表示的最小 数 时,不论尾数为何值,按机器零处理,如 m = 4 n = 10,当阶码用移码,尾数用补码表示时,机器零为,有利于机器中“ 判 0 ” 电路的实现,当阶码和尾数都用补码表示时,机器零为,4、IEEE 754 标准,符号位 S 阶码 尾数 总位数,1 8 23 32,1 11 52 64,1 15 64 80,尾数为规格化表示,非 “0” 的有效位最高位为 “1”(隐含),实数 178.125的几种不同表示,作业,1. 将(100.25)10转换成短浮点数格式 0;10000101;1001000100000000000000

8、 十六进制代码:42C88000 2. 把短浮点数C1C90000H转换成十进制数 -25.125,2.3 定点数加减运算及实现,第二章,1. 补码加减运算公式,(1) 加法,(2) 减法,整数,A补 + B补,= A+B补(mod 2n+1),小数,A补 + B补,= A+B补(mod 2),整数,A B补,= A+(B )补,= A补 + B补,(mod 2n+1),小数,A B补,= A+(B )补,(mod 2),连同符号位一起相加,符号位产生的进位自然丢掉,= A补 + B补,补码加减运算,(1)参加运算的两个操作数都用补码表示; (2)符号位作为数的一部分参加运算; (3)若做加法

9、,则两数直接相加;若做减法,则将减 数变补后再与被减数相加; (4)运算结果仍用补码表示; (5)符号位的进位为模值,应该去掉。,2. 补码加减运算规则,补码加减运算,举例,解:,A补,B补,A补 + B补,+,= 0 . 1 0 1 1,= 1 . 1 0 1 1,= 1 0 . 0 1 1 0,= A + B补,验证,0.1011, 0.0101,0.0110, A + B = 0 . 0 1 1 0,A补,B补,A补 + B补,+,= 1 0 1 1 1,= 1 1 0 1 1,= 1 1 0 0 1 0,= A + B补,验证, 1001, 1110,解:,1. 单符号位法,参加操作的

10、 两个数符号相同(减法时即为被减数和“求补”以后的减数) ,其结果的符号与原操作数的符号不同,即为溢出。 设操作数X补的符号位为Xs,Y补的符号位为Ys,结果的符号位为Ss。则判定溢出的逻辑表达式为:,补码的溢出判断,溢出 =,2. 进位判断法,设最高数值位的进位信号为C1,符号位的进位信号为Cs,则判定溢出的逻辑表达式为:,溢出=,补码的溢出判断,3. 两位符号位判溢出,结果的双符号位 相同 未溢出,结果的双符号位 不同 溢出,最高符号位 代表其 真正的符号,溢出= Ss1Ss2,将符号位扩充为两位:Ss1和Ss2,则溢出表达式为:,补码的溢出判断,1. 移位的意义,15 米 = 1500

11、厘米,小数点右移 2 位,机器用语,15 相对于小数点 左移 2 位,( 小数点不动 ),左移 绝对值扩大,右移 绝对值缩小,在计算机中,移位与加减配合,能够实现乘除运算,移位运算,2. 算术移位规则,1,右移 添 1,左移 添 0,0,反 码,补 码,原 码,负数,0,原码、补码、反码,正数,添补代码,码 制,符号位不变,移位运算,例1:设机器数字长为 8 位(含一位符号位),写出A = +26时,三种机器数左、右移一位和两位后的表示形式及对应的真值,并分析结果的正确性。,解:,A = +26,则 A原 = A补 = A反 = 0,0011010,+ 6,0,0000110,+13,0,00

12、01101,+104,0,1101000,+ 52,0,0110100,+26,0,0011010,移位前,= +11010,例2:设机器数字长为 8 位(含一位符号位),写出A = 26时,三种机器数左、右移一位和两位后的表示形式及对应的真值,并分析结果的正确性。,解:,A = 26, 6,1,0000110, 13,1,0001101, 104,1,1101000, 52,1,0110100, 26,1,0011010,移位前,原码,= 11010, 6,1,1111001, 13,1,1110010, 104,1,0010111, 52,1,1001011, 26,1,1100101,移

13、位前, 7,1,1111001, 13,1,1110011, 104,1,0011000, 52,1,1001100, 26,1,1100110,移位前,补码,反码,3. 算术移位的硬件实现,(a)真值为正,(b)负数的原码,(c)负数的补码,(d)负数的反码,出错,影响精度,出错,影响精度,正确,影响精度,正确,正确,4. 算术移位和逻辑移位的区别,算术移位,有符号数的移位,逻辑移位,无符号数的移位,逻辑左移,逻辑右移,低位添 0,高位移丢,高位添 0,低位移丢,例如 01010011,逻辑左移,10100110,逻辑右移,01011001,算术左移,算术右移,00100110,110110

14、01(补码),高位 1 移丢,10110010,一、原码一位乘,1. 分析笔算乘法,A = 0.1101 B = 0.1011,AB = 0.10001111,0 . 1 1 0 1,0 . 1 0 1 1,1 1 0 1,1 1 0 1,0 0 0 0,1 1 0 1,0 . 1 0 0 0 1 1 1 1,符号位单独处理,乘数的某一位决定是否加被乘数,4个位积一起相加,乘积的位数扩大一倍,乘积的符号心算求得,?,2.4 定点乘法运算,笔算乘法改进,A B = A 0.1011,= 0.1A + 0.00A + 0.001A +0.0001A,= 0.1A + 0.00A + 0.001(

15、A +0.1A),= 0.1A + 0.010 A + 0. 1( A +0.1A),= 0.1A +0.1 0 A+0.1(A + 0.1A),= 2-1A +2-1 0 A+2-1(A + 2-1(A+0),第一步 被乘数A + 0,第三步 部分积 + 被乘数,改进后的笔算乘法过程(竖式),0 . 0 0 0 0,0 . 1 1 0 1,0 . 1 1 0 1,0 . 1 1 0 1,0 . 0 0 0 0,0 . 1 1 0 1,初态,部分积 = 0,乘数为 1,加被乘数,乘数为 1,加被乘数,乘数为 0,加 0,乘数为 1,加 被乘数,小结,被乘数只与部分积的高位相加,硬件,3个寄存器

16、,具有移位功能,一个全加器,2. 原码一位乘运算规则,则: ps xs ys,P =XY,(1)被乘数和乘数均取绝对值参加运算,符号位单独处理,(2)被乘数取双符号位,(3)从乘数的最低位yn开始判断:,若 yn1,则部分积加上被乘数X ,然后右移一位 若 yn 0,则部分积加上0,然后右移一位,(4)重复(3),判断n次,求P 的运算规则:,00 . 0 0 0 0,00 . 1 1 0 1,00 . 1 1 0 1,00 . 1 1 0 1,00 . 0 0 0 0,00 . 1 1 0 1,00 . 1 0 0 0,1 1 1 1,1,得结果,00 . 0 1 1 0,00 . 1 0

17、0 1,00 . 0 1 0 0,例:X0.1101,Y0.1011,求XY?,数值部分的运算,解:, 数值部分按绝对值相乘, 乘积的符号位 xs ys = 0 1 = 1,XY = 0. 1 0 0 0 1 1 1 1,X Y原 = 1. 1 0 0 0 1 1 1 1,结果,则 X Y= 0. 1 0 0 0 1 1 1 1,特点,绝对值运算,逻辑移位,用移位的次数判断乘法是否结束,开始,X B,Y C , 0 A, 0 CR,Cn=1?,A+0 A,A+B A,A和C右移一位,CR+1CR,CR=n?,结束,xs ys ps,3. 原码一位乘流程,N,Y,N,Y,4. 原码一位乘法逻辑结

18、构图,计数器:对移位的次数进行计数,以便判断乘法运算是否结束。 当计数器i=n时,计数器i的溢出信号使控制触发器Cx 置0,关闭时序脉冲T,乘法操作结束。,设被乘数X补 = xs. x1x2 xn,乘数Y补 = ys.y1y2 yn,1. 校正法,X补 Y补 =(2n+1+X) Y=2n+1 Y+X Y =2 2n 0.y1y2 yn +X Y =2+ X Y=X Y补 (mod 2),分两种情况讨论:, 被乘数任意,乘数为正,X补 = xs. x1x2 xn=2+X=2n+1+X (mod 2),Y补 =Y=0.y1y2 yn,即:X补 Y补= X Y补= X补 Y,可见,当乘数为正时,可按

19、原码一位乘法的规则运算, 结果不需要校正,二、补码一位乘, 被乘数任意,乘数为负,故 X Y补 = X 0.y1y2 yn 补+ - X 补,X补 = xs. x1x2 xn,Y补 =1.y1y2 yn2Y (mod 2),则 X Y补= X补 ( 0.y1y2 yn ) + - X 补,可见,当乘数为负时,先把y补的符号位丢掉不管, 仍按原码一位乘运算,最后 加X补进行校正,则 Y = Y补 -2=1.y1y2 yn-2 0.y1y2 yn-1,X Y =X (0.y1y2 yn-1) =X 0.y1y2 yn-X,将上式中 0.y1y2 yn 视为一个正数,正好与情况相同,二、补码一位乘,

20、校正法的运算规则如下:,设 被乘数,乘数, 被乘数任意,乘数为正,同原码乘,但 加 和 移位 按 补码规则 运算,乘积的符号自然形成, 被乘数任意,乘数为负,乘数y补,去掉符号位,操作同 ,最后 加x补,校正,以小数为例,例:已知 x = +0.1101 y = 0.1011 求xy补,解:,X补 = 0 0 . 1 1 0 1,Y补 = 1 . 0 1 0 1,X补 = 1 1 . 0 0 1 1,举例,00 . 0 0 0 0,00 . 1 1 0 1,00 . 1 1 0 1,00 . 0 0 0 0,00 . 1 1 0 1,00 . 0 0 0 0,00 . 0 1 0 0,0 0

21、0 1,00 . 0 1 1 0,00 . 0 0 1 1,00 . 1 0 0 0,11 . 0 0 1 1,11 . 0 1 1 1,0 0 0 1,所以 X Y补1 1 . 0 1 1 1 0 0 0 1,X Y 0 . 1 0 0 0 1 1 1 1,结果,2. 比较法 ( Booth 算法 ),X Y补= X补 ( 0.y1y2 yn ) Y0,X Y补= X补 ( 0.y1y2 yn ) + - X 补 Y0,合并,得:,X Y补= X补 ( 0.y1y2 yn ) + - X 补 ys,二、补码一位乘,X Y补,2-1,2-2,附加位 yn+1,二、补码一位乘,Booth 算法递

22、推公式,Z0补= 0,Z1补= 2-1(yn+1yn)X补+Z0补 yn+1 = 0,Zn补= 2-1(y2y1)X补+Zn-1补,X Y补= Zn补+(y1ys)X补,最后一步不移位,如何实现 yi+1yi ?,Zi补= 2-1(yn-i+2yn-i+1)X补+Zi-1补,(1)参加运算的数均以补码表示 (2)符号位参加运算 (3)被乘数和部分积取双符号位参加运算,部分积初值为0 (4)乘数取单符号位,以决定最后一步是否需要校正,即是 否要加X补 (5) 乘数末位增加附加位yn+1,且初始值为0 (6)乘数的最低两位yn和yn+1构成了各步运算的判断位,如下 表所示 (7)移位按补码右移规则

23、进行 (8)按照上述算法进行 n1步操作,但第n1步 不移位,仅根据y0与y1的比 较结果判断加或者不加,比较法( Booth 算法)运算规则:,原部分积+X补,右移一位,例:已知 x = +0.0011 y = 0.1011 求xy补,解:,0 0 . 0 0 0 0,1 1 . 1 1 0 1,1 1 . 1 1 0 1,0 0 . 0 0 1 1,1 1 . 1 1 0 1,0 0 . 0 0 1 1,1 1 . 1 1 0 1,1 . 0 1 0 1,0,x补 = 0.0011,y补 = 1.0101,x补 = 1.1101,+x补,+x补,+x补,+x补,+x补, xy补 =1.11

24、011111,最后一步不移位,开始,X补 B, Y补C, 0A, 0 CR, 0 C n+1,Cn Cn +1=?,A+B A,A-B A,CR+1CR,CR=n+1?,结束,A和C右移一位,N,Y,10,01,00/11,比较法( Booth 算法)流程图,补码一位乘法逻辑结构图,三、原码两位乘,原码乘,符号位 和 数值位 部分 分开运算,两位乘,每次用 乘数的 2 位判断 原部分积 是否加 和 如何加 被乘数,3 ?,先 减 1 倍 的被乘数X 再 加 4 倍 的被乘数+4X,原码两位乘运算规则:,(1)乘积的符号位单独处理 (2)部分积与被乘数均取三位符号位 (3)CJ是一位独立的触发器

25、,初始值为0 (4)按下表所示的操作进行 (5)运算之前,要将乘数凑为偶数。 若乘数的数值位n为偶数,乘数取双符号位, 这种情况共做(n/2)+1步,最后一步不移位;若乘数 的数值位n为奇数,乘数取单符号位,每步处理2位, 恰好做(n+1) / 2步,最后一步移一位。,1,1 1,0,1 1,1,1 0,0,1 0,1,0 1,0,0 1,1,0 0,0,0 0,操 作 内 容,触发器CJ,乘数判断位yi-1yi,原部分积右移两位,0=CJ,原部分积右移两位,1=CJ,原部分积-X, 右移两位,1=CJ,原部分积+X, 右移两位,0=CJ,原部分积+X, 右移两位,0=CJ,原部分积+2X,

26、右移两位,0=CJ,原部分积-X, 右移两位,1=CJ,原部分积+2X, 右移两位,0=CJ,原码两位乘运算规则表,例:已知 x = 0.111111 y = 0.111001 求xy原,0 0 0 . 0 0 0 0 0 0,0 0 0 . 1 1 1 1 1 1,0 0 0 . 1 1 1 1 1 1,0 0 . 1 1 1 0 0 1,0,初始部分积为 0,+ X , CJ = 0,0 0 1 . 1 1 1 1 1 0,+ 2X ,CJ = 0,1 1 1 . 0 0 0 0 0 1, X, CJ = 1,0 0 0 . 1 1 1 1 1 1,+ X , CJ = 0,0,0,1,解

27、:,数值部分的运算, 数值部分的运算, x y = 0. 1 1 1 0 0 0 0 0 0 1 1 1,则 x y原 = 1. 1 1 1 0 0 0 0 0 0 1 1 1,结果,原码两位乘和原码一位乘比较,绝对值,绝对值的补码,逻辑右移,算术右移,n,n,思考 n 为奇数时,原码两位乘 移 ?次,设上一步的部分积为Pi补,本步的部分积应为: Pi+1补2-1Pi补+(y n -i +1y n-i) X补 下一步的部分积应为: Pi+2补2-1Pi+1补+(y n-iy n-i -1) X补 将前一个公式中的Pi+1补代入Pi+2补公式中,则 Pi+2补2-12-1Pi补+(y n-i+1

28、y n-i) X补+ (y n-iy n-i -1) X补 2-2Pi补+(y n-i+1y n-i) X补+ 2(y n-iy n-i -1) X补 2-2Pi补+ (y n-i+1+ y n-i2y n-i -1) X补,四、补码两位乘,由上式可见,补码两位乘可以通过y n-i+1 ,y n-i,y n-i -1作为判断位来确定运算操作。,补码两位乘法的运算规则为:,(1) 两数均用补码表示,符号位参加运算。 (2) 部分积与被乘数均采用3位符号表示,乘数末位增加一位附加位y n+1 ,其初始值为0。 (3) 按下表所示操作。 (4) 若乘数的数值位n为偶数,乘数取双符号位,这种情况共做(

29、n/2)+1步,最后一步不移位;若乘数的数值位n为奇数,乘数取单符号位这种情况共做(n+1)/2步,最后一步移一位。,1,1 1,0,1 1,1,1 0,0,1 0,1,0 1,0,0 1,1,0 0,0,0 0,操 作 内 容,yn-i-1 yn-i yn-i+1,原部分积右移两位,原部分积右移两位,原部分积+-X补,右移两位,原部分积+X补,右移两位,原部分积+X补,右移两位,原部分积+2X补,右移两位,原部分积+-X补,右移两位,原部分积+2-X补,右移两位,补码两位乘运算规则表,乘法小结,原码乘 符号位 单独处理 补码乘 符号位 自然形成,原码乘去掉符号位运算 即为无符号数乘法,不同的

30、乘法运算需有不同的硬件支持,整数乘法与小数乘法完全相同 可用 逗号 代替小数点,一、 分析笔算除法,x = 0.1011 y = 0.1101 求 xy,0 . 1 0 1 1,0 . 1 1 0 1,0 . 0 1 1 0 1,0 . 0 1 0 0 1,0 . 0 0 1 1 0 1,0 . 0 0 0 1 0 1,0 . 0 0 0 0 1 1 0 1,0 . 0 0 0 0 0 1 1 1,1,商符单独处理,心算上商,余数不动低位补“0” 减右移一位的除数,上商位置不固定,商符心算求得,0,0 .,1,0,1,0,0,0,?,?,?,2.5 定点除法运算,笔算除法和机器除法的比较,商符

31、单独处理,心算上商,符号位异或形成,| x | | y | 0 上商 1,| x | | y | 0 上商 0,2 倍字长加法器,上商位置 不固定,1 倍字长加法器,在寄存器 最末位上商,二、 原码除法,以小数为例,被除数不等于 0,除数不能为 0,约定,1、恢复余数法,0 . 1 0 1 1,1 . 0 0 1 1,1 . 0 0 1 1,1 . 0 0 1 1,0 . 0 0 0 0,+ y*补,0,0 . 1 1 0 1,恢复余数,+ y*补,+y*补,解:,x原 = 1.1011 y原 = 1.1101,1,+y*补,y*补 = 0.1101 y*补 = 1.0011,1 . 0 0

32、1 1,0 . 1 1 0 1,1 . 0 0 1 1,+ y*补,恢复余数,+ y*补,上商 5 次,第一次上商判溢出,余数为正 上商 1,余数为负 上商 0,恢复余数,移 4 次,1,0,1,+y*补,2、不恢复余数法(加减交替法),余数 Ri0 上商 “1”,2Ri y*,余数 Ri0 上商 “0”, Ri + y* 恢复余数,2( Ri+y*) y* = 2Ri + y*,加减交替,恢复余数法运算规则,不恢复余数法运算规则,余数 Ri0 上商“1” 2Ri y*,余数 Ri0 上商“0” 2Ri + y*,解:,例,0 . 1 0 1 1,1 . 0 0 1 1,0 . 1 1 0 1

33、,1 . 0 0 1 1,1 . 0 0 1 1,0 . 1 1 0 1,0 . 0 0 0 0,+ y*补,0,+y*补,+ y*补,+ y*补,+y*补,x原 = 1.1011,y*补 = 0.1101,y*补 = 1.0011,y原 = 1.1101,1,1,0,1,结果,Ri补= 0.1000,三、 补码不恢复余数除法,(1) 商值的确定,x补 = 0.1011,y补 = 1.1101,Ri补= 0.1000,x补 = 1.1101,y补 = 0.1011,x*y*,Ri补与y补同号,“够减”,x*y*,Ri补与y补异号,“不够减”,+,+, 比较被除数和除数绝对值的大小,x 与 y

34、同号,小结,x补 = 0.1011,y补 = 1.1101,Ri补= 0.1000,x补 = 1.1101,y补 = 0.1011,Ri补= 0.1000,x*y*,Ri补与y补异号,“够减”,x*y*,Ri补与y补同号,“不够减”,+,+,x 与 y 异号, 商值的确定,x补与 y补同号,正商,按原码上商,x补与 y补异号,负商,按反码上商,末位恒置“1”法,小 结,(同号),(异号),(异号),(同号),小 结,简 化 为,(同号),(异号),(异号),(同号),(2) 商符的形成,除法过程中自然形成,x补和y补同号,x补y补,比较Ri补和y补,同号(够)“1”,异号(不够)“0”,原码上

35、商,小数除法 第一次“不够”上“0”,正商,x补和y补异号,x补+y补,比较Ri补和y补,异号(够)“0”,同号(不够)“1”,反码上商,小数除法 第一次“不够”上“1”,负商,(3) 新余数的形成,加减交替,例,解:,x补 = 1.0101 y补 = 0.1101 y补 = 1.0011,1 . 0 1 0 1,0 . 1 1 0 1,1 . 0 0 1 1,0 . 1 1 0 1,0 . 1 1 0 1,0 . 0 0 0 0,异号做加法,1,0 . 0 0 1 0,同号上“1”,异号上“0”,+y补,异号上“0”,+y补,同号上“1”,末位恒置“1”,0,0,1,1,+y补,一、浮点加减

36、运算,x = Sx 2jx,y = Sy 2jy,1. 对阶,(1) 求阶差,(2) 对阶原则,j = jx jy =,jx= jy 已对齐,jx jy,jx jy,x 向 y 看齐,y 向 x 看齐,x 向 y 看齐,y 向 x 看齐,小阶向大阶看齐,2.6 浮点数运算方法,例如,x = 0.1101 201 y = (0.1010) 211,求 x + y,解:,x补 = 00, 01; 00.1101 y补 = 00, 11; 11.0110,1. 对阶,j补 = jx补 jy补,= 00, 01,11, 01,11, 10,阶差为负( 2),11.1001, x+y补 = 00, 11

37、; 11. 1001, 对阶,x补 = 00, 11; 00.0011,+,+,对阶后的Sx补, 求阶差,2. 尾数求和,3. 规格化,(1) 规格化数的定义,(2) 规格化数的判断,S0,真值,原码,补码,反码,规格化形式,S 0,规格化形式,真值,原码,补码,反码,原码 不论正数、负数,第一数位为1,补码 符号位和第 1 数位不同,特例,S = 1, 1补 是规格化的数,(3) 左规,(4) 右规,上例 x+y补 = 00, 11; 11. 1001,左规后 x+y补 = 00, 10; 11. 0010, x + y = ( 0.1110)210,当 尾数溢出( 1)时,需 右规,例1,

38、解:,x补 = 00, 010; 00. 110100,y补 = 00, 001; 00. 101100, 对阶, 尾数求和,j补 = jx补 jy补,= 00, 010,11, 111,100, 001,阶差为 +1, y补 = 00, 010; 00. 010110,Sx补 = 00. 110100,Sy补 = 00. 010110,对阶后的Sy补,01. 001010,+,+,尾数溢出需右规, 右规,x +y补 = 00, 010; 01. 001010,x +y补 = 00, 011; 00. 100101,右规后, x +y = 0. 100101 211,4. 舍入,在 对阶 和

39、右规 过程中,可能出现 尾数末位丢失 引起误差,需考虑舍入,(1) 0 舍 1 入法,(2) 恒置 “1” 法,例 2,解:,x补 = 11, 011; 11. 011000,y补 = 11, 100; 00. 111000, 对阶,j补 = jx补 jy补,= 11, 011,00, 100,11, 111,阶差为 1, x补 = 11, 100; 11. 101100,x = ( 0.101000)2-101,y = ( 0.111000)2-100,+, 尾数求和,Sx补 = 11. 101100,Sy补 = 11. 001000,+,110. 110100, 右规,x+y补 = 11,

40、 100; 10. 110100,x+y补 = 11, 101; 11. 011010,右规后, x y = (0.100110)2-11,5. 溢出判断,设机器数为补码,尾数为 规格化形式,并假 设阶符取 2 位,阶码的数值部分取 7 位,数符取 2 位,尾数取 n 位,则该 补码 在数轴上的表示为,2127(1), 2-128(2-1+ 2-n),2-1282-1,2127(12-n),阶码 01, ,阶码 01, ,阶码 10, ,按机器零处理,二、浮点乘除运算,x = Sx 2jx,y = Sy 2jy,1. 乘法,x y = (Sx Sy)2jx+jy,2. 除法,(2) 尾数乘除同

41、 定点 运算,4. 浮点运算部件,阶码运算部件,尾数运算部件,3. 步骤,(3) 规格化,(1) 阶码采用 补码定点加(乘法)减(除法)运算,思考题,假定有4个整数用8位补码分别表示 r1=FEH,r2=F2H,r3=90H,r4=F8H, 若将运算结果存放在一个8位寄存器中,则下列运算会发生溢出的是() A. r1 x r2 B. r2 x r3 C. r1 x r4 D. r2 x r4,2. 一个 C 语言程序在一台 32 位机器上运行。程序中定义了三个变量 xyz, 其中x和z是 int 型,y为 short 型。当 x=127,y=-9 时,执行赋值语句 z=x+y 后,xyz 的值

42、分别是() AX=0000007FH,y=FFF9H,z=00000076H BX=0000007FH,y=FFF9H,z=FFFF0076H CX=0000007FH,y=FFF7H,z=FFFF0076H DX=0000007FH,y=FFF7H,z=00000076H 3.浮点数加减运算过程一般包括对阶、尾数运算、规格化、舍入和判溢出 等步骤。设浮点数的阶码和尾数均采用补码表示,且位数分别为 5 位和 7 位(均 含 2 位符号位)。若有两个数 X=2729/32,Y=255/8,则用浮点加法计算 X+Y 的最终结果是() A00111 1100010 B.00111 0100010C0

43、1000 0010001 D.发生溢出,思考题,答案,1、B 2、D 3、D,2.7 运算器部件及进位链结构,2.7.1 加法器,一、全加器 3个输入量:Ai,Bi,Ci-1 2个输入量:本位和Si,向高位的进位Ci 全加器的逻辑表达式为: Si = AiBiCi-1 Ci = AiBi+(AiBi)Ci-1,2.7.1 加法器,2.7.1 加法器,二、串行加法器与并行加法器,2.7.2 并行加法器的进位链,一、进位信号的基本逻辑 Ci= AiBi+(AiBi)Ci-1 设 Gi =AiBi 为进位产生函数。 Pi =AiBi为进位传递函数 PiCi-1为传送进位。,2.7.2 并行加法器的进

44、位链,二、串行进位 串行进位又称行波进位,每一级进位直接依赖于前一级进位,进位信号的逻辑式如下: C1=A1B1+(A1B1)C0=G1+P1C0 C2=A2B2+(A2B2)C1=G2+P2C1 Cn=AnBn+(AnBn)Cn-1=Gn+PnCn-1,2.7.2 并行加法器的进位链,图2-22 串行进位的并行加法器,C1,S1,C0,A1,B1,C2,S2,A2,B2,Cn,Sn,An,Bn,Cn-1,2.7.2 并行加法器的进位链,三、并行进位 并行进位又称先行进位、跳跃进位,其特点是各级进位信号同时形成。逻辑式如下: C1=G1+P1C0 C2= G2+P2C1= G2+P2G2+P2

45、P1C0 C3=G3+P3C2=G3+P3G2+P3P2G1+P3P2P1C0 Cn=Gn+PnCn-1=Gn+PnGn-1+PnPn-1P2G1+ PnPn-1P1C0,2.7.2 并行加法器的进位链,四、分组并行进位 主要思想:将n位全加器分成若干小组,组内各位之间并行 进位,组间可以并行进位,也可以串行进位。 1.组内并行,组间串行的进位链 也称为单重分组跳跃进位。 以16位加法器为例讨论。 第一小组组内各位的进位逻辑表达式为: C1=G1+P1C0 C2=G2+P2C1=G2+P2G2+P2P1C0 C3=G3+P3C2=G3+P3G2+P3P2G1+P3P2P1C0 C4=G4+P4

46、C3=G4+P4G3+P4P3G2+P4P3P2G1+P4P3P2P1C0,2.7.2 并行加法器的进位链,C4=G4+P4C3=G4+P4G3+P4P3G2+P4P3P2G1+P4P3P2P1C0,G,P,C=C4=G+PC0,同理, C=C8=G+PC C=C12=G+PC C=C16=G+PC,2.7.2 并行加法器的进位链,图2-23 4位一组并行进位示意图,2.7.2 并行加法器的进位链,第二章,图2-24 16位组内并行组间串行进位链框图,2.7.2 并行加法器的进位链,2. 组内并行,组间并行的进位链 仍以16位加法器为例。 由串行进位:,C=C4=G+PC0 C=C8=G+PC

47、 C=C12=G+PC C=C16=G+PC,2.7.2 并行加法器的进位链,C=C4=G+PC0 C=C8=G+PC= G+PG+PPC0 C= C12=G+PC= G+PG+PP G+ PPPC0 C= C16=G+PC = G+PG+ PPG+ PPPG+ P PPPC0,2.7.2 并行加法器的进位链,为了要产生每个小组的进位生成函数Gi和进位传递函数Pi,需要对小组内的并行进位线路进行修改: 第一小组内产生G、P、C3、C2、C1,不产生C4; 第二小组内产生G、P、C7、C6、C5,不产生C8; 第三小组内产生G、P、C11、C10、C9,不产生C12; 第四小组内产生G、P、C1

48、5、C14、C13,不产生C16。,2.7.2 并行加法器的进位链,各小组的进位生成函数和进位传递函数的逻辑表达式为: G= G4+P4G3+P4P3G2+P4P3P2G1 G= G8+P8G7+P8P7G6+P8P7P6G5 G= G12+P12G11+P12P11G10+P12P11P10G9 G= G16+P16G15+P16P15G14+P16P15P14G13 P= P4P3P2P1 P= P8P7P6P5 P= P12P11P10P9 P= P16P15P14P13,2.7.2 并行加法器的进位链,2.7.3 多位ALU部件,一、4位ALU芯片,图2-26 SN74181芯片示意图

49、,2.7.3 多位ALU部件,2.7.3 多位ALU部件,*:A加A=2A,算术左移一位,2.7.3 多位ALU部件,二、多位ALU部件的设计,74181ALU为4位并行加法器, 组成16位的并行加法器怎么办? 4片(组)74181连接 怎样连? 组与组之间串行连接 组与组之间并行连接,2.7.3 多位ALU部件,图2-27 16位组内并行组间串行进位ALU,C0,C4,C8,C12,C16,1. 组间串行,组内并行进位的16位ALU的设计,2.7.3 多位ALU部件,第二章,2. 组内并行,组间并行的16位ALU的设计,2.7.3 多位ALU部件,并行进位部件SN74182的芯片示意图,图2

50、-29 SN74182芯片示意图,2.7.3 多位ALU部件,图2-30 16位两级并行进位ALU重分组跳跃,SN74182,P,G,P3,G3,P2,G2,P1,G1,P0,G0,Cn+z,Cn+y,Cn+x,SN74181,SN74181,SN74181,SN74181,C0,P,G,P,G,P,G,P,G,4片SN74181和1片SN74182构成的16位两级并行进位ALU,2.7.3 多位ALU部件,例:用SN74181和SN74182设计如下的32位ALU (1)行波进位方式 (2)两重进位方式 (3)三重进位方式 解:(1)行波进位方式的32位ALU,SN74181,SN74181,SN74181,SN74181,.,C0,C4,C8,C28,C32,2.7.3 多位ALU部件,(2)两重进位方式的32位ALU,2.7.3 多位ALU部件,(3)三重进位方式的32位A

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论