计算机组成原理三章ppt课件_第1页
计算机组成原理三章ppt课件_第2页
计算机组成原理三章ppt课件_第3页
计算机组成原理三章ppt课件_第4页
计算机组成原理三章ppt课件_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

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

文档简介

3.4 二进制乘法运算 3.4.1 定点数一位乘法 Date1 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 Date2 机器实现在传统人工的方法的基础上做些修改. (1) 形成部分积. (2) 部分积右移. (3) 乘数右移(空出高位存乘积的低位). 用N位加法器 实现 2N位积的运算. Date3 运算过程举例: X = 0.1101 ,Y = 0.1011 求 XY 用双符号位 乘积高位 乘积低位 XY = 0.10001111 积的符号: 0 0 = 0 Date4 实现加法运算的逻辑结构 Date5 图3.5 实现原码一位乘法的逻辑电路框图 *6 图3.6 乘法运算的控制流程 *7 2. 定点补码一位乘法 补码运算的几个基本问题 (1) 补码与真值的转换关系 X = X0 + Xi2 -i n i=1 p75 (2) 补码右移: 二进制条件下,定点小数补码整体右移一位, 符号不变,相当于除2 若 X补 = X0.X1X2XnX = 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 Date8 (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 Date9 设: 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 算法原理 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 补 (Y1Y0) X补) Yn+1=0 Date11 (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右移一位 Date12 e、按补码右移规则,部分积为正时,补“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 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补 Date14 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位 ; Date15 部分积Pi +2X, X左移一位得2X 部分积Pi +3X, (4X-X) 代替 3X 先减X 并引入寄存C 纪录是否拖欠+4X. 部分积Pi 右移2位后 上步+4X 变为+ X 规则总结 表3.4 p79 2. 补码两位乘(不细讲了)p80 将布斯算法的求部分积过程两步合并考虑。 判断乘数三位的01组合 Date16 3.4.3 阵列乘法器 p82 每个小单元处理一位。四位是同时处理的 输入都在右(y)上(x),输出都在左下(p)。 每梯形列处理一位部分积。 乘数从上倒下每行送一位 上低位下高位 被乘数每位沿右上到左下的梯形列传送 每行正下输出pi最下一行输出是结果 每列左输出进位最左输出为下一行的p新位 乘数的一零判断用小单元内的与门实现。 左下进位输出结果最高位 Date17 Date18 3.5 二进制除法运算 3.5.1 定点数除法运算 1. 原码一位除法(被除数除数和商都是原码) Date19 恢复余数法 符号位和数值位分别处理。 商符号位是相除的两数符号的异或;数值是两数绝 对值相除的结果。 被除数加除数数值部分的负补码。 判断余数的正负,正,商1。负,商零并加除数的数 值部分-恢复余数, 余数与商左移位 重复上3步到余数为零或满足精度为止。 例:p83 X = 0.1011 Y = 0.1101 求X/Y Date20 解: 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” Date21 加减交替法 恢复余数法的一种修正. 原理分析: 第i次求商余数的计算和上一次余数有 Ri = 2Ri-1 Y 恢复余数法中Ri -0.11101010 5.判溢出 阶码符号位为00,不溢出 2 011 (-0.11101010) Date36 浮 点 数 加 减 法 运 算 流 程 图 Date37 3.6.2 浮点数的乘除法运算 原理,两浮点数相乘除,阶码相加减,尾数相乘除 两浮点数相除,阶码相减(被除减除),尾数相除 辅以规格化,舍入,判溢处理 1, 浮点数的阶码运算 阶码四种运算,+1,-1,和,差 阶码表示-移码,补码 Date38 移码运算规则 移码的定义为: X移 = 2n + X -2n X 2n (Mod 2n+1) X移 + Y移 = ? X+Y移 Date39 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 Date40 那么有: X移 + Y补 = 2n+ X + 2n+1 + Y = 2n+1 + (2n + (X + Y)) (mod 2n+1 ) = X + Y 移 同理有,X移 + -Y补 = X - Y 移 实际中阶码加减运算时,对加数或减数的符号送的是移码符 号位的反码。 Date41 阶码运算溢出判断 (1) 阶码运算溢出判断用双符号位 (2) 移码最高符号位恒用0 (3)当计算结果最高符号位为1时则溢出发生。 (双符号位 “10” 上溢出,“11”下溢出; “01”结果正,“00”结果负) 举例说明: 设有四位阶码(符号1位数值3位) X = + 011, Y = +110; X移= 01011,Y补 = 00110,-Y补= 11001 +1 =11010 Case 1: X+Y移= X移+Y补= 10001;上溢出 Case 2: X-Y移= X移+-Y补= 00101;结果正确 -3 Date42 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入) Date43 3, 浮点乘法运算步骤 举例说明运算步骤 浮点数: X=2 -5 *0.1110011,Y=2 3 *(-0.1110010), 阶码位,尾数8位 X浮0011 01110011Y浮1011 10001110 (移阶) (1) 阶码运算 乘积的阶码是两数阶码的和(双符号) Ex 移Ey补 000110001100110 (-2) (2) 尾数相乘(定点补码乘法双符号位) 尾数补码: X补001110011-X补110001101 XY补 110011001 1001010 (3) 规格化 (本结果已规格化) 高位低位 Date44 (4) 舍入处理 XY补 10011001 1001010 舍入 X

温馨提示

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

评论

0/150

提交评论