计算机组成原理xu.ppt_第1页
计算机组成原理xu.ppt_第2页
计算机组成原理xu.ppt_第3页
计算机组成原理xu.ppt_第4页
计算机组成原理xu.ppt_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

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

文档简介

6/18/2019,1,3.4 二进制乘法运算 3.4.1 定点数一位乘法,6/18/2019,2,1. 定点原码一位乘法 XY原 = (X0 Y0)|(X1X2Xn) (Y1Y2Yn) 用我们传统人工方法(二进制) X = 0.1101 ,Y = 0.1011 XY = 0.10001111 0 . 1 1 0 1 x 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,6/18/2019,3,机器实现在传统人工的方法的基础上做些修改. (1) 形成部分积. (2) 部分积右移. (3) 乘数右移(空出高位存乘积的低位). 用N位加法器 实现 2N位积的运算.,6/18/2019,4,运算过程举例: X = 0.1101 ,Y = 0.1011 求 XY 用双符号位,乘积高位,乘积低位,XY = 0.10001111,积的符号: 0 0 = 0,6/18/2019,5,实现加法运算的逻辑结构,6/18/2019,6,图3.5 实现原码一位乘法的逻辑电路框图,6/18/2019,7,图3.6 乘法运算的控制流程,6/18/2019,8,2. 定点补码一位乘法,补码运算的几个基本问题,(1) 补码与真值的转换关系,X = X0 + Xi2 -i,n,i=1,p75,(2) 补码右移: 二进制条件下,定点小数补码整体右移一位, 符号不变,相当于除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,6/18/2019,9,(3) 补码一位乘法的一般讨论 p75 X负 Y 正 X补 Y补 = 2n+1Y + XY = 2 + XY mod 2 XY补 = X补 Y补 XY补 = X补 (0.Y1Y2Yn) X正负 Y负 XY补 = X补 (0.Y1Y2Yn) X补 X,Y 正负 都有 XY补 = X补 (0.Y1Y2Yn) X补Y0 p76 例 3.33 3.34 p76 -77,6/18/2019,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补 ( Yi 1 Yi ) 2 i,n,i=0,定点补码一位乘法 (1) 布斯 Booth 算法原理,6/18/2019,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,6/18/2019,12,(3).补码一位乘法的运算规则,c、Yn与Yn+1构成了各步运算的乘数判断位。,规则:,a、被乘数与部分积取双符号位,并参与运算。,b、乘数取单符号位,但在最末位要加一附加位 (Yn+1),其初始值为“0”,Yn Y n+1 操 作 0 0 Pi右移一位 0 1 PiX补后,再右移一位 1 0 Pi X补后,再右移一位 1 1 Pi右移一位 ,6/18/2019,13,e、按补码右移规则,部分积为正时,补“0”,部分积 为负时补“1”。,d、按上述算法进行N+1步(N为乘数的数值位数) 但第N+1步不再右移。,(4)补码一位乘法举例,已知:X补=11.0011, Y补=0.1011;求XY补,解:由题有 X补= 0.1101,按补码一位乘法,设置部分积,乘数及操作说明完成运算,6/18/2019,14,部分积 乘数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 0100 00010 1 右移一位,+ 11 0011 判别位01, + X补,6/18/2019,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位 ;,6/18/2019,16,部分积Pi +2X, X左移一位得2X 部分积Pi +3X, (4X-X) 代替 3X 先减X 并引入寄存C 纪录是否拖欠+4X. 部分积Pi 右移2位后 上步+4X 变为+ X 规则总结 表3.4 p88 幻灯片 17 2. 补码两位乘(不细讲了)p89 将布斯算法的求部分积过程两步合并考虑。 判断乘数三位的01组合,6/18/2019,17,表3.4 原码两位乘法规则,6/18/2019,18,3.4.3 阵列乘法器 p82 每个小单元处理一位。四位是同时处理的 输入都在右(y)上(x),输出都在左下(p)。 每梯形列处理一位部分积。 乘数从上倒下每行送一位 上低位下高位 被乘数每位沿右上到左下的梯形列传送 每行正下输出pi最下一行输出是结果 每列左输出进位最左输出为下一行的p新位 乘数的一零判断用小单元内的与门实现。 左下进位输出结果最高位,6/18/2019,19,6/18/2019,20,3.5 二进制除法运算 3.5.1 定点数除法运算 1. 原码一位除法,(被除数除数和商都是原码),6/18/2019,21,恢复余数法 符号位和数值位分别处理。 商符号位是相除的两数符号的异或;数值是两数绝对值相除的结果。 被除数加除数数值部分的负补码。 判断余数的正负,正,商1。负,商零并加除数的数值部分-恢复余数, 余数与商左移位 重复上3步到余数为零或满足精度为止。 例:p92 X = 0.1011 Y = 0.1101 求X/Y,6/18/2019,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,111101 00110 不够减,商值取“0”,+ 001101 Y, 恢复正余数,001010 余数与商数左移一位,010100 01100,+ 110011 Y,000111 01101 够减,商值取“1”,6/18/2019,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 的操作.,6/18/2019,24,加减交替法规则 a, 商的符号为两数符号异或. b, 被除数减除数. c, 余数为正商1 为负商0 ,余数与商左移一位 d, 求下一位商,上次商为0加Y 反复到C,为 1 反复到b e, 余数为0 或精度满足 结束. 加减交替法举例,X补=00.1011,Y补=00.1101,-Y补=11.0011,6/18/2019,25,6/18/2019,26,图3.5 实现原码一位乘法的逻辑电路框图,6/18/2019,27,6/18/2019,28,对于定点原码一位除法的几点说明:p94 被除数绝对值要比除数小。 商符号 两数符号位半加和。 被除数位数可以比除数多一倍,初始时低位放在商寄存器,后随计算时与余数一同左移。,6/18/2019,29,2.定点补码一位除法,总之: QiSri Sy (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补Y补,异号 1 X补Y补 同号(不够减) 1 Ri+1补=2Ri补Y补,异号 1 X补Y补 异号(够减) 0 Ri+1补=2Ri补Y补,6/18/2019,30,3.补码不恢复余数法举例,设:X补=10111,Y补=01101,-Y补=10011,用不恢复余数法及末位恒置一法求: X补 Y补,补充说明: (1) 商的符号,是在第一次求商试算时求出的,若定点 除不溢出,得到的就是正确的符号位的值。 (2) 商的修正问题。在对精度要求不高时,将商的最低一位恒置1。最大误差为 | 2-n |。,6/18/2019,31,被除数 商 操作说明,110111 00000 开始情形,+001101 两数异号+Y补,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,6/18/2019,32,3.5.2 快速除法举例 1,跳0跳1 法 p87 2,除法运算通过乘法操作实现,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,6/18/2019,33,当Fi = 1 + 第i+1次的迭代结果 Yi = Yi-1 Fi = (1- )(1+) = 1 - Fi = 1 + = 2 1 + = 2 (1 ) Fi = 2 Yi-1 求Fi 的过程举例 p98 关键操作: = 1 Y F0 = 1 + Fi = 2 Yi-1,2i,2 i,2 i,2 i+1,2 i,2 i,2 i,6/18/2019,34,3.6 浮点数运算方法,什么是浮点数?如何表示?,6/18/2019,35,3.6 浮点数运算方法 基本表示 N = M 2 E 3.6.1 浮点数加减法运算 原理:阶码相等的两数相加减。 对阶 -将相加减的两数,阶码凑为相等(趋较大者),X=Mx*2 Ex,Y=My*2 Ey,6/18/2019,36,对阶操作: a,求阶差E = |Ex Ey| b,阶码小者 M 右移 E 位,同时阶码加上E (原码,符号位不参加位移不论正负高位补零 补码,符号位参加位移) (2) 尾数相加/减 得俩数尾数的和/差 (3) 规格化 右规,和/差M双符号位不同时 M 右移一位,E+1 左规,和/差M双符号位相同时 视M数值最高位 而左移,直到与符号位不同。E减左移位 数(尾数补码表示),6/18/2019,37,(4) 舍入处理 运算中保留移掉的数据做舍入处理,其原则是: 要有舍有入,尽量使舍与入的机会均等,以防止误 差积累。 (5) 检查阶码是否溢出。阶码上溢,要置溢出标志,阶码下溢,要置运算结果为浮点形式的机器零。,6/18/2019,38,浮点数加运算举例,假定: X=2 010 *0.11011011,Y=2 100 *(-0.10101100),他们的浮点表示分别为:,阶符 阶码 数符 尾数,X浮= 00 010 00 11011011,Y浮= 00 100 11 01010100,(阶码为补码表示,尾数为补码表示),6/18/2019,39,1.求阶差和对阶,E=ExEy=Ex补+Ey补=00010+11100=11110,即E为-2,X的阶码小,应使Mx右移两位,即有:,Mx= 00 0011011011(保留),2.尾数求和,0000110110 + 1101010100 = 1110001010,3.规格化处理,符号位与最高位同值,应执行左规处理,结果为:,1110001010 1100010101,阶码为00011 (100-1),4.舍入处理,采用“0舍1入”,则有:,1100010101 10,+ 1,1100010110 - -0.11101010,5.判溢出 阶码符号位为00,不溢出 2 011 (-0.11101010),6/18/2019,40,浮点数加减法运算流程图,6/18/2019,41,3.6.2 浮点数的乘除法运算 原理,两浮点数相乘除,阶码相加减,尾数相乘除 两浮点数相除,阶码相减(被除减除),尾数相除 辅以规格化,舍入,判溢处理 1, 浮点数的阶码运算 阶码四种运算,+1,-1,和,差 阶码表示-移码,补码,6/18/2019,42,移码运算规则 移码的定义为: X移 = 2n + X -2n X 2n (Mod 2n+1) X移 + Y移 = ? X+Y移,6/18/2019,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,6/18/2019,44,那么有: X移 + Y补 = 2n+ X + 2n+1 + Y = 2n+1 + (2n + (X + Y)) (mod 2n+1 ) = X + Y 移 同理有,X移 + -Y补 = X - Y 移 实际中阶码加减运算时,对加数或减数的符号送的是移码符号位的反码。,6/18/2019,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移+Y补= 10001;上溢出 Case 2: X-Y移= X移+-Y补= 00101;结果正确 -3,6/18/2019,46,X = -

温馨提示

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

评论

0/150

提交评论