计算机组成原理组成.ppt,计算机组成原理xu.ppt

《计算机组成原理xu.ppt》由会员分享,可在线阅读,更多相关《计算机组成原理xu.ppt(51页珍藏版)》请在装配图网上搜索。

1、8/17/2020,1,3.4 二进制乘法运算 3.4.1 定点数一位乘法,8/17/2020,2,1. 定点原码一位乘法 XY原 = (X0 Y0)|(X1X2Xn) (Y1Y2Yn) 用我们传统人工方法(二进制) X = 0.1101 ,Y = 0.1011 XY = 0.10001111 0 . 1 1 0 1 x0 . 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,8/17/2020,3,机器实现在传统人工的方法的基础上做些修改. (1) 形成部分积. (2) 部分积右移. (3) 乘数右移(空出高位存乘积的低位)。

2、. 用N位加法器 实现 2N位积的运算.,8/17/2020,4,运算过程举例: X = 0.1101 ,Y = 0.1011 求 XY 用双符号位,乘积高位,乘积低位,XY = 0.10001111,积的符号: 0 0 = 0,8/17/2020,5,实现加法运算的逻辑结构,8/17/2020,6,图3.5 实现原码一位乘法的逻辑电路框图,8/17/2020,7,图3.6 乘法运算的控制流程,8/17/2020,8,2. 定点补码一位乘法,补码运算的几个基本问题,(1) 补码与真值的转换关系,X = X0 + Xi2 -i,n,i=1,p75,(2) 补码右移: 二进制条件下,定点小数补码整。

3、体右移一位, 符号不变,相当于除2,若 X补 = X0.X1X2Xn,X = X0 + Xi2 -i,n,i=1,X/2 = X0/2 + Xi2 i2-1,n,X/2 = X0/2 + Xi2 (i+1) + X0/2 - X0/2,i=1,i=1,n,X/2 = X0+ Xi2 (i+1),n,i=0,若 X补 = X0.X1X2Xn,有 X/2补 = X0.X0X1X2Xn,8/17/2020,9,(3) 补码一位乘法的一般讨论 p75 X负 Y 正 X补 Y补 = 2n+1Y + XY = 2 + XY mod 2 XY补 = X补 Y补 XY补 = X补 (0.Y1Y2Yn) X正负。

4、 Y负 XY补 = X补 (0.Y1Y2Yn) X补 X,Y 正负 都有 XY补 = X补 (0.Y1Y2Yn) X补Y0 p76 例 3.33 3.34 p76 -77,8/17/2020,10,设: Y补 = Y0Y1Y2Yn,Y = Y0 + Yi2 -i,n,i=1, XY补 = X补Y0 Yi2 -i,n,i=1,= 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 (Yn Yn-1) 2 (n 1) (0Yn) 2 n ,= X补 。

5、( Yi 1 Yi ) 2 i,n,i=0,定点补码一位乘法 (1) 布斯 Booth 算法原理,8/17/2020,11,(2).分步运算逻辑实现的递推,P1补 = 2 1 (Yn+1 Yn) X补,P2补 = 2 1 (P1 补 (Yn Yn-1) X补 ),Pi补= 2 1(Pi-1 补 (Yn-i+2 Yn-i+1) X补),Pn补= 2 1 (Pn-1 补 (Y2 Y1) X补),X*Y补= Pn+1补=( Pn 补 (Y1Y0) X补),Yn+1=0,8/17/2020,12,(3).补码一位乘法的运算规则,c、Yn与Yn+1构成了各步运算的乘数判断位。,规则:,a、被乘数与部分积。

6、取双符号位,并参与运算。,b、乘数取单符号位,但在最末位要加一附加位(Yn+1),其初始值为“0”,Yn Y n+1 操 作 0 0 Pi右移一位 0 1 PiX补后,再右移一位 1 0 Pi X补后,再右移一位 1 1 Pi右移一位 ,8/17/2020,13,e、按补码右移规则,部分积为正时,补“0”,部分积 为负时补“1”。,d、按上述算法进行N+1步(N为乘数的数值位数) 但第N+1步不再右移。,(4)补码一位乘法举例,已知:X补=11.0011, Y补=0.1011;求XY补,解:由题有 X补= 0.1101,按补码一位乘法,设置部分积,乘数及操作说明完成运算,8/17/2020,1。

7、4,部分积 乘数Yn Yn+1(附加位) 操 作 说 明,00 0000 01011 0 初始情形,设置附加位Yn+1,+ 00 1101 判别位10,+ -X补,00 0110 10101 1 右移一位,+ 00 0000 判别为11,+ 0,00 0110 ,+ 11 0011 判别位01, + X补,11 0111 0001 最后一次不移位,XY补1101110001 XY = - 0.10001111,00 1101,00 0011 01010 1 右移一位,11 0110,11 1011 00101 0 右移一位,+ 00 1101 判别位10,+ -X补,00 1000,00 01。

8、00 00010 1 右移一位,+ 11 0011 判别位01, + X补,8/17/2020,15,3.4.2 定点两位乘法 一位乘法是以乘数单一数位处理为基础。 两位乘法:一次求出对应两位乘数的部分积。 1,原码两位乘 乘数(Y)被乘数(X)都是原码表示 两位乘数由四种可能组合: 00-相当于 X0。 部分积Pi, 右移2位 无其它运算 01-相当于 X1。 部分积Pi +X,右移2位 ; 10-相当于 X2。 部分积Pi +2X,右移2位 ; 11-相当于 X3。 部分积Pi +3X,右移2位 ;,8/17/2020,16,部分积Pi +2X, X左移一位得2X 部分积Pi +3X, (。

9、4X-X) 代替 3X 先减X 并引入寄存C 纪录是否拖欠+4X. 部分积Pi 右移2位后 上步+4X 变为+ X 规则总结 表3.4 p88 幻灯片 17 2. 补码两位乘(不细讲了)p89 将布斯算法的求部分积过程两步合并考虑。 判断乘数三位的01组合,8/17/2020,17,表3.4 原码两位乘法规则,8/17/2020,18,3.4.3 阵列乘法器 p82 每个小单元处理一位。四位是同时处理的 输入都在右(y)上(x),输出都在左下(p)。 每梯形列处理一位部分积。 乘数从上倒下每行送一位 上低位下高位 被乘数每位沿右上到左下的梯形列传送 每行正下输出pi最下一行输出是结果 每列左输。

10、出进位最左输出为下一行的p新位 乘数的一零判断用小单元内的与门实现。 左下进位输出结果最高位,8/17/2020,19,8/17/2020,20,3.5 二进制除法运算 3.5.1 定点数除法运算 1. 原码一位除法,(被除数除数和商都是原码),8/17/2020,21,恢复余数法 符号位和数值位分别处理。 商符号位是相除的两数符号的异或;数值是两数绝对值相除的结果。 被除数加除数数值部分的负补码。 判断余数的正负,正,商1。负,商零并加除数的数值部分-恢复余数, 余数与商左移位 重复上3步到余数为零或满足精度为止。 例:p92 X = 0.1011 Y = 0.1101 求X/Y,8/17/。

11、2020,22,解: X=00.1011,Y=00.1101,-Y补=11.0011(数值部分负补码),被除数/余数 商 操作说明,001011 00000 开始情形,+ 110011 Y,111110 00000 不够减,商值取“0”,+ 001101 Y,恢复正余数,001011 00000 余数与商左移一位,010110 00000,+ 110011 Y,001001 00001 够减,商值取“1”,010010 00010 余数与商数左移一位,+ 110011 Y,000101 00011 够减,商值取“1”,001010 00110 余数与商左移一位,+ 110011 Y,11110。

12、1 00110 不够减,商值取“0”,+ 001101 Y, 恢复正余数,001010 余数与商数左移一位,010100 01100,+ 110011 Y,000111 01101 够减,商值取“1”,8/17/2020,23,加减交替法 恢复余数法的一种修正. 原理分析: 第i次求商余数的计算和上一次余数有 Ri = 2Ri-1 Y 恢复余数法中Ri 0 ,商的第 i 位上 0 ,后 加 Y 并余数左移一位 再减Y 即: Ri+1 = 2(Ri+Y) Y = 2Ri + 2Y Y= 2Ri + Y 第 i-1次求商所得余数 Ri 0 时不再恢复余数而继续下一位求商.但是用加Y 而 不是减Y 。

13、的操作.,8/17/2020,24,加减交替法规则 a, 商的符号为两数符号异或. b, 被除数减除数. c, 余数为正商1 为负商0 ,余数与商左移一位 d, 求下一位商,上次商为0加Y 反复到C,为 1 反复到b e, 余数为0 或精度满足 结束. 加减交替法举例,X补=00.1011,Y补=00.1101,-Y补=11.0011,8/17/2020,25,8/17/2020,26,图3.5 实现原码一位乘法的逻辑电路框图,8/17/2020,27,8/17/2020,28,对于定点原码一位除法的几点说明:p94 被除数绝对值要比除数小。 商符号 两数符号位半加和。 被除数位数可以比除数多。

14、一倍,初始时低位放在商寄存器,后随计算时与余数一同左移。,8/17/2020,29,2.定点补码一位除法,总之: QiSriSy (Syi-余数数符,Sy-除数数符)且Q 是反码,补码不恢复余数法的运算操作过程:,(1).运算应使余数的绝对值越来越少。,(2).操作中要用余数Ri与除数Y进行符号比较,这是因为除数Y在运算中 保持 不变,进行符号比较方便。,(3).运算操作规则: p85, p87-表3.6,X补Y补(数符) 商符 操作 R补Y补(数符) Qi商值 下一步操作,同号 0 X补Y补同号(够减) 1 Ri+1补=2Ri补Y补,同号 0 X补Y补异号(不够减) 0 Ri+1补=2Ri补。

15、Y补,异号 1 X补Y补同号(不够减) 1 Ri+1补=2Ri补Y补,异号 1 X补Y补异号(够减) 0 Ri+1补=2Ri补Y补,8/17/2020,30,3.补码不恢复余数法举例,设:X补=10111,Y补=01101,-Y补=10011,用不恢复余数法及末位恒置一法求: X补 Y补,补充说明: (1) 商的符号,是在第一次求商试算时求出的,若定点 除不溢出,得到的就是正确的符号位的值。(2) 商的修正问题。在对精度要求不高时,将商的最低一位恒置1。最大误差为 | 2-n |。,8/17/2020,31,被除数 商 操作说明,110111 00000 开始情形,+001101 两数异号+Y。

16、补,000100 00001 余数与除数同号,商为1,001000 00010 余数左移一位,+110011 上次商1,+-Y补,111011 00010 余数与除数异号,商为0,110110 00100 余数左移一位,+001101 上次商0,+Y补,000011 00101 余数与除数同号,商为1,000110 01010 左移一位,+110011 上次商1,+-Y补,111001 01010 余数与除数异号,商为0,110010 10101 左移,商的最低位恒置1,不恢复余数法,X补 Y补 1.0101,8/17/2020,32,3.5.2 快速除法举例 1,跳0跳1 法 p87 2,除。

17、法运算通过乘法操作实现,X XF0F1Fr,Y YF0F1Fr,=,Fi(0ir) 为迭代系数,如若使 分母YF0F1Fr趋近于1 了分子就是商了,若X和Y为规格化正的二进制小数代码时,可写成: Y=1- (0 1/2)那么可取Fi 的值如下: F0 = 1+ Y0 = YF0 = (1-)(1+)=1-2 F = 1+2 Y =(1-2)(1+2)=1-4 可见i增加 Y 将趋近于1,8/17/2020,33,当Fi = 1 + 第i+1次的迭代结果 Yi = Yi-1 Fi = (1- )(1+) = 1 - Fi = 1 + = 2 1 + = 2 (1 ) Fi = 2 Yi-1 求F。

18、i 的过程举例 p98 关键操作: = 1 Y F0 = 1 + Fi = 2 Yi-1,2i,2 i,2 i,2 i+1,2 i,2 i,2 i,8/17/2020,34,3.6 浮点数运算方法,什么是浮点数?如何表示?,8/17/2020,35,3.6 浮点数运算方法 基本表示 N = M 2 E 3.6.1 浮点数加减法运算 原理:阶码相等的两数相加减。 对阶 -将相加减的两数,阶码凑为相等(趋较大者),X=Mx*2 Ex,Y=My*2 Ey,8/17/2020,36,对阶操作: a,求阶差E = |Ex Ey| b,阶码小者 M 右移 E 位,同时阶码加上E (原码,符号位不参加位移不。

19、论正负高位补零 补码,符号位参加位移) (2) 尾数相加/减 得俩数尾数的和/差 (3) 规格化 右规,和/差M双符号位不同时 M 右移一位,E+1 左规,和/差M双符号位相同时 视M数值最高位 而左移,直到与符号位不同。E减左移位 数(尾数补码表示),8/17/2020,37,(4) 舍入处理 运算中保留移掉的数据做舍入处理,其原则是: 要有舍有入,尽量使舍与入的机会均等,以防止误 差积累。 (5) 检查阶码是否溢出。阶码上溢,要置溢出标志,阶码下溢,要置运算结果为浮点形式的机器零。,8/17/2020,38,浮点数加运算举例,假定: X=2 010 *0.11011011,Y=2 100 。

20、*(-0.10101100),他们的浮点表示分别为:,阶符 阶码 数符 尾数,X浮= 00 010 00 11011011,Y浮= 00 100 11 01010100,(阶码为补码表示,尾数为补码表示),8/17/2020,39,1.求阶差和对阶,E=ExEy=Ex补+Ey补=00010+11100=11110,即E为-2,X的阶码小,应使Mx右移两位,即有:,Mx= 00 0011011011(保留),2.尾数求和,0000110110 + 1101010100 = 1110001010,3.规格化处理,符号位与最高位同值,应执行左规处理,结果为:,1110001010 110001010。

21、1,阶码为00011 (100-1),4.舍入处理,采用“0舍1入”,则有:,1100010101 10,+ 1,1100010110 - -0.11101010,5.判溢出 阶码符号位为00,不溢出 2 011 (-0.11101010),8/17/2020,40,浮点数加减法运算流程图,8/17/2020,41,3.6.2 浮点数的乘除法运算 原理,两浮点数相乘除,阶码相加减,尾数相乘除 两浮点数相除,阶码相减(被除减除),尾数相除 辅以规格化,舍入,判溢处理 1, 浮点数的阶码运算 阶码四种运算,+1,-1,和,差 阶码表示-移码,补码,8/17/2020,42,移码运算规则 移码的定义。

22、为: X移 = 2n + X -2n X 2n (Mod 2n+1) X移 + Y移 = ? X+Y移,8/17/2020,43,X移 = 2n + X -2n X 2n (Mod 2n+1)按此定义,则有X移 + Y移 = 2n + X + 2n + Y = 2n + (2n + X + Y)= 2n + X + Y 移直接用移码实现求阶码之和时,结果的最高位(符号位)多加了个1,要得到移码形式的结果,必须对结果的符号再执行一次求反操作。 借助补码 Y补 = 2n+1 + Y,8/17/2020,44,那么有: X移 + Y补 = 2n+ X + 2n+1 + Y = 2n+1 + (2n 。

23、+ (X + Y)) (mod 2n+1 ) = X + Y 移 同理有,X移 + -Y补 = X - Y 移 实际中阶码加减运算时,对加数或减数的符号送的是移码符号位的反码。,8/17/2020,45,阶码运算溢出判断 (1) 阶码运算溢出判断用双符号位 (2) 移码最高符号位恒用0 (3)当计算结果最高符号位为1时则溢出发生。 (双符号位 “10” 上溢出,“11”下溢出; “01”结果正,“00”结果负) 举例说明: 设有四位阶码(符号1位数值3位) X = + 011, Y = +110; X移= 01011,Y补 = 00110,-Y补= 11010 Case 1: X+Y移= X移。

24、+Y补= 10001;上溢出 Case 2: X-Y移= X移+-Y补= 00101;结果正确 -3,8/17/2020,46,X = - 011, Y = -110; X移= 00101,Y补 = 11010,-Y补= 00110 Case 3: X+Y移= X移+Y补= 11111;下溢出 Case 4: X -Y移= X移+-Y补= 01011 结果正确 +3 2,浮点数运算舍入处理 浮点数运算结果尾数超出给定位数,处理原则尽可能减小误 差及累计误差。 武断截取;丢1保1;恒置1;0舍1入 例:p93,3.46(0舍1入),8/17/2020,47,3, 浮点乘法运算步骤 举例说明运算步。

25、骤 浮点数: X=2 -5 *0.1110011,Y=2 3 *(-0.1110010), 阶码位,尾数8位,X浮0011 01110011,Y浮1011 10001110 (移阶),(1) 阶码运算乘积的阶码是两数阶码的和(双符号), Ex 移Ey补 000110001100110 (-2),(2) 尾数相乘(定点补码乘法双符号位),尾数补码:,X补001110011,-X补110001101,XY补 110011001 1001010,(3) 规格化 (本结果已规格化),高位,低位,8/17/2020,48,(4) 舍入处理,XY补 10011001 1001010,舍入 XY补 10011010,(5) 判断溢出积阶码, Ex 移Ey补 000110001100110,阶码和结果最高符号位为0未溢出,XY:0110 10011010,XY = 2 -2 (-0.1100110),8/17/2020,49,4 浮点数除法运算 与乘法类似,也是五个步骤,不同的是阶码相减 尾数相除 。 3.7 运算部件,8/17/2020,50,8/17/2020,51,浮点远算部件 阶码远算部件: 和定点运算部件相似,但只做 加减法 尾数运算部件: 定点运算部件.配合多位移位 电路。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值