计算机组成原理xu2.ppt
(50页)
本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦!
19.90 积分
§3.4 二进制乘法运算 3.4.1 定点数一位乘法Date11. 定点原码一位乘法 [X٠Y]原 = (X0⊕ Y0)|(X1X2…Xn) ٠ (Y1Y2…Yn) 用我们传统人工方法(二进制) X = 0.1101 ,Y = 0.1011 X٠Y = 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 1Date2机器实现在传统人工的方法的基础上做些修改. (1) 形成部分积. (2) 部分积右移. (3) 乘数右移(空出高位存乘积的低位). 用N位加法器 实现 2N位积的运算.Date3运算过程举例: X = 0.1101 ,Y = 0.1011 求 X٠Y [用双符号位]乘积高位乘积低位X٠Y = 0.10001111 积的符号: 0 ⊕0 = 0Date4实现加法运算的逻辑结构Date5图3.5 实现原码一位乘法的逻辑电路框图*6图3.6 乘法运算的控制流程 *72. 定点补码一位乘法补码运算的几个基本问题(1) 补码与真值的转换关系 X = -X0 + ∑ Xi×2 -i ni=1p75(2) 补码右移: 二进制条件下,定点小数补码整体右移一位, 符号不变,相当于除2若 [X]补 = X0.X1X2…XnX = -X0 + ∑ Xi×2 -ini=1X/2 = -X0/2 + ∑ Xi×2 –i×2-1nX/2 = -X0/2 + ∑ Xi×2 –(i+1) + X0/2 - X0/2i=1i=1nX/2 = -X0+ ∑ Xi×2 –(i+1)ni=0若 [X]补 = X0.X1X2…Xn有 [X/2]补 = X0.X0X1X2…XnDate8(3) 补码一位乘法的一般讨论 p75 X负 Y 正 [X]补٠ [Y]补 = 2n+1٠Y + X٠Y = 2 + X٠Y mod 2 [X٠Y]补 = [X]补٠ [Y]补 [X٠Y]补 = [X]补 (0.Y1Y2…Yn) X正负 Y负 [X٠Y]补 = [X]补 (0.Y1Y2…Yn) – [X]补 X,Y 正负 都有 [X٠Y]补 = [X]补 (0.Y1Y2…Yn) – [X]补٠Y0 p76 例 3.33 3.34 p76 -77 Date9设: [Y]补 = Y0Y1Y2…YnY = -Y0 + ∑ Yi×2 -i ni=1[ X×Y]补 = [X]补×[-Y0 + ∑ Yi×2 -i]ni=1= [X]补×[-Y0 + Y1×2 -1 +Y2×2 - 2 + … +Yn×2 - n] = [X]补×[-Y0 +(Y1- Y1×2 - 1 ) +(Y2×2 - 1 - Y2×2 - 2 ) + … +(Yn×2 -(n - 1) – Yn×2 - n )]= [X]补×[(Y1 - Y0) +(Y2 -Y1 ) × 2 - 1 + … +(Yn - Yn-1) × 2 - (n - 1) +(0-Yn) × 2 -n ] = [X]补×∑ ( Yi + 1 - Yi )× 2 - ini=0 定点补码一位乘法 (1) 布斯 Booth 算法原理Date10(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 ]补 +(Y1-Y0)× [X]补) Yn+1=0 Date11(3).补码一位乘法的运算规则 c、Yn与Yn+1构成了各步运算的乘数判断位。 规则:a、被乘数与部分积取双符号位,并参与运算。b、乘数取单符号位,但在最末位要加一附加位 (Yn+1),其初始值为“0” Yn Y n+1 操 作 ——————————————————————— 0 0 [Pi]右移一位 0 1 [Pi]+[X]补后,再右移一位 1 0 [Pi] +[-X]补后,再右移一位 1 1 [Pi]右移一位 ———————————————————————Date12e、按补码右移规则,部分积为正时,补“0”,部分积 为负时补“1”。d、按上述算法进行N+1步(N为乘数的数值位数) 但第N+1步不再右移。(4)补码一位乘法举例已知:[X]补=11.0011, [Y]补=0.1011;求[XY]补解:由题有 [-X]补= 0.1101按补码一位乘法,设置部分积,乘数及操作说明完成运算Date13 部分积 乘数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 110100 0011 01010 1 右移一位 11 0110 11 1011 。省略部分。上∆E (原码,符号位不参加位移不论正负高位补零 补码,符号位参加位移) (2) 尾数相加/减 得俩数尾数的和/差 (3) 规格化 右规,和/差M双符号位不同时 M 右移一位,E+1 左规,和/差M双符号位相同时 视M数值最高位 而左移,直到与符号位不同。E减左移位 数(尾数补码表示)Date34(4) 舍入处理 运算中保留移掉的数据做舍入处理,其原则是: 要有舍有入,尽量使舍与入的机会均等,以防止误 差积累。 (5) 检查阶码是否溢出。阶码上溢,要置溢出标志,阶码下溢,要置运算结果为浮点形式的机器零。Date35浮点数加运算举例假定: X=2 010 *0.11011011,Y=2 100 *(-0.10101100),他们的浮点表示分别为:阶符 阶码 数符 尾数[X]浮= 00 010 00 11011011[Y]浮= 00 100 11 01010100(阶码为补码表示,尾数为补码表示)Date36 1.求阶差和对阶ΔE=Ex-Ey=[Ex]补+[-Ey]补=00010+11100=11110即ΔE为-2,X的阶码小,应使Mx右移两位,即有:Mx= 00 00110110|11(保留)2.尾数求和0000110110 + 1101010100 = 11100010103.规格化处理符号位与最高位同值,应执行左规处理,结果为: 1110001010 111100010101,阶码为00011 (100-1)4.舍入处理采用“0舍1入”,则有: 1100010101 10+ 11100010110 -> -0.111010105.判溢出 阶码符号位为00,不溢出 2 011 ٠(-0.11101010)Date37浮点数加减法运算流程图Date383.6.2 浮点数的乘除法运算原理,两浮点数相乘除,阶码相加减,尾数相乘除 两浮点数相除,阶码相减(被除减除),尾数相除 辅以规格化,舍入,判溢处理 1, 浮点数的阶码运算 阶码四种运算,+1,-1,和,差 阶码表示---移码,补码 Date39 移码运算规则 移码的定义为: [X]移 = 2n + X -2n ≤X < 2n (Mod 2n+1) [X]移 + [Y]移 == ? [X+Y]移 Date40 [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 Date41那么有: [X]移 + [Y]补 = 2n+ X + 2n+1 + Y = 2n+1 + (2n + (X + Y)) (mod 2n+1 ) = [ X + Y ]移 同理有,[X]移 + [-Y]补 = [ X - Y ]移 实际中阶码加减运算时,对加数或减数的符号送的是移码符号位的反码。 Date42阶码运算溢出判断 (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;结果正确 -3Date43X = - 011, Y = -110;[X]移= 00101,[Y]补 = 11010,[-Y]补= 00110Case 3: [X+Y]移= [X]移+[Y]补= 11111;下溢出Case 4: [X -Y]移= [X]移+[-Y]补= 01011 结果正确 +32,浮点数运算舍入处理 浮点数运算结果尾数超出给定位数,处理原则尽可能减小误 差及累计误差。 武断截取;丢1保1;恒置1;0舍1入 例:p93,3.46(0舍1入)Date443, 浮点乘法运算步骤 举例说明运算步骤 浮点数: X=2 -5 *0.1110011,Y=2 3 *(-0.1110010), 阶码4位,尾数8位[X]浮=0011 01110011[Y]浮=1011 10001110 (移阶)(1) 阶码运算 乘积的阶码是两数阶码的和(双符号)[ Ex ]移+[Ey]补= 00011+00011=00110 (-2)(2) 尾数相乘(定点补码乘法双符号位)尾数补码:[X]补=001110011[-X]补=110001101[X٠Y]补= 110011001 1001010 (3) 规格化 (本结果已规格化)高位低位Date45 (4) 舍入处理 [X٠Y]补= 10011001 1001010 0舍1入 [X٠Y]补= 10011010 (5) 判断溢出 积阶码[ Ex ]移+[Ey]补= 00011+00011=00110阶码和结果最高符号位为0未溢出X٠Y: 0110 10011010 X٠Y = 2 -2 ٠ (-0.1100110)Date464 浮点数除法运算 与乘法类似,也是五个步骤,不同的是阶码相减 尾数相除 。§3.7 运算部件Date47Date48Date49浮点远算部件 阶码远算部件: 和定点运算部件相似,但只做 加减法 尾数运算部件: 定点运算部件.配合多位移位 电路Date50 关 键 词: 组成 xu2 原理 xu 计算机
天天文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。