运算方法与运算器定点除法.ppt_第1页
运算方法与运算器定点除法.ppt_第2页
运算方法与运算器定点除法.ppt_第3页
运算方法与运算器定点除法.ppt_第4页
运算方法与运算器定点除法.ppt_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

2.4 定点除法运算 1. 分析笔算除法 x = 0.1011 y = 0.1101 求 xy 0 . 1 0 1 10 . 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 商符单独处理 心算上商 xy = 0. 1 1 0 1 余数 0. 0 0 0 0 0 1 1 1 商符心算求得 0 0 .1 0 1 0 0 0 ? ? ? 2. 笔算除法和机器除法的比较 笔算除法 机器除法 商符单独处理 心算上商 符号位异或形成 | x | | y | 0 上商 1 | x | | y | 0 上商 0 余数 不动 低位补“0” 减右移一位 的除数 2 倍字长加法器 上商位置 不固定 余数 左移一位 低位补“0” 减 除数 1 倍字长加法器 在寄存器 最末位上商 3. 原码除法 以小数为例 x 原 = x0. x1x2 xn y 原 = y0. y1y2 yn 式中 x* = 0. x1x2 xn 为 x 的绝对值 y* = 0. y1y2 yn 为 y 的绝对值 数值部分为绝对值相除 x* y* 被除数不等于 0 除数不能为 0 小数定点除法 x* y*整数定点除法 x* y* 商的符号位单独处理 x0 y0 原 = (x0 y0). x y x* y* 约定 3. 原码除法 商数值部分的计算通过比较上商。 数值大小的比较可用专门的逻辑电路进行,这 种方法会增加硬件代价,却没有明显的优点, 因而很少采用。 另一种方法是通过减法判别。 根据余数小于除数时的不同处理方法,又有两 种方法: 恢复余数法 不恢复余数法 (一)原码恢复余数法算法 两个正的定点小数X和Y,X=0.x1x2xn,Y=0.y1y2yn, 求解X/Y的商和余数的方法: 第1步:R1=X-Y 若R1=0,则上商q0=1。 q0位不是符号位,而是两定点小数相除时的整数部分; q0=1时,当作溢出处理。 (一)原码恢复余数法算法 第2步:若已求得第i次的部分余数为Ri,则第i+1次的部分余 数为:Ri+1= 2Ri-Y 若R i+1=0,则上商qi=1。 第3步:不断循环执行第2步,直到求得所需位数的商为止。 恢复余数除法的运算流程图 开始 R被除数, Q=0 Y除数 Cnn R (R)-(Y) (R)0 置溢出标志( 或上商“1”) R,Q同时左移一位 R (R)-(Y) qn0 R (R)+(Y) (R)0 qn0 R (R)+(Y) qn1 Cn (Cn) -1 (Cn )=0 结束 是 否 是 是否 否 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*补 01 . 1 1 1 0余数为负,上商 0 0 . 1 1 0 1 恢复余数 00 . 1 0 0 1余数为正,上商 1 + y*补 1 . 0 1 1 001 1 . 0 0 1 00 11 +y*补 解: 被除数(余数) 商 说 明 x原 = 1.1011 y原 = 1.1101 x0 y0 = 1 1 = 0 x = 0.1011 y = 0.1101求 原 x y 例 1 0 . 1 0 1 1 恢复后的余数 0 +y*补 y*补 = 0.1101 y*补 = 1.0011 逻辑左移 逻辑左移 + + + + 0 . 0 1 0 10 1 余数为正,上商 1 被除数(余数) 商 说 明 1 . 0 0 1 1 0 . 1 1 0 1 1 . 0 0 1 1 10 . 1 0 1 00 1 1 + y*补 1 . 1 1 0 10 1 1 余数为负,上商 0 恢复余数 1 . 0 1 0 00 1 1 01 + y*补 0 . 0 1 1 10 1 1 0 余数为正,上商 1 = 0.1101 x* y* 原 x y = 0.1101 上商 5 次 第一次上商判溢出 余数为正 上商 1 余数为负 上商 0,恢复余数 移 4 次 1 0 0 . 1 0 1 0 恢复后的余数 0 1 1 0 1 +y*补 逻辑左移 逻辑左移 + + + (一)原码恢复余数法 原码恢复余数法是一种基于除法基本算法的 处理方法,操作步数随着不够减情况出现的 次数而变化。这将给控制时序的安排带来一 些困难,并增加了运算时间,因而已很少采 用。 (二)原码不恢复余数法(原码加减交替法) 计算机中普遍采用的是不恢复余数不恢复余数的除法 ,它是对恢复余数除法的一种修正,即当 某一次减得的差值为负时,不是恢复它为 正差值后再继续运算,而是设法直接用这 个负的差值直接求下一位商。 原码不恢复余数法实现原理 在恢复余数除法中,若第i1次求商的余数为Ri-1时,下一 次求商的余数为Ri,则下一步操作为: Ri2Ri-1-Y 此时可能出现两种情况: (1)若Ri0,则第i位的商上1,下一步的操作为: R Ri+1 i+1 2R2R i i -Y-Y; (2)若Ri0,则第i位的商上0,并执行操作:恢复余数(+Y) ,将余数左移一位再减Y得Ri+1。其过程可用公式表示如 下: R Ri+1 i+1 2 2(R R i i +Y+Y)-Y-Y2R2R i i +2Y-Y +2Y-Y2R2R i i +Y+Y 由此可得出规则: 余数为正,上商1,余数左移一位,下一步减除数; 余数为负,上商0,余数左移一位,下一步加除数; 若最后一步所得余数为负,则应恢复余数,以保证R0。 x = 0.1011 y = 0.1101 求 原 x y 解: 例 0 . 1 0 1 1 1 . 0 0 1 1 0 . 1 1 0 1 1 . 0 0 1 1 1 . 0 0 1 1 0 . 1 1 0 1 0 . 0 0 0 0 + y*补 01 . 1 1 1 0 余数为负,上商 0 1 . 1 1 0 001 +y*补 00 . 1 0 0 1 余数为正,上商 1 + y*补 1 . 0 0 1 00 1 1 + y*补 +y*补 0 . 1 0 1 00 1 11 1 . 1 0 1 00 1 1 0 1 0 . 0 1 0 10 1余数为正,上商 1 0 . 0 1 1 10 1 1 0 余数为正,上商 1 1 . 1 1 0 10 1 1余数为负,上商 0 x原 = 1.1011 y*补 = 0.1101 y*补 = 1.0011 y原 = 1.1101 1 1 0 1 逻 辑 左 移 x*补 = 0.1011 逻 辑 左 移 逻 辑 左 移 逻 辑 左 移 x0 y0 = 1 1 = 0 x* y* = 0.1101 = 0.1101 原 x y 上商 n+1 次 结果 特点 用移位的次数判断除法是否结束 第一次上商判溢出 移 n 次,加 n+1 次 (3) 原码加减交替除法硬件配置 A、X、Q 均 n +1 位 用 Qn 控制加减交替 0 A n n + 1 位加法器 控 制 门 0 X n 0 Q n 计数器 CGD 加 减 移位和加控制逻辑 S V 左移 2.4.2 阵列除法器 仿效阵列乘法器结构思想,让各次“加减与移 位”操作以阵列形式在一拍内完成,提高除法 运算速度。 (一)可控加减单元CAS 由一个全加器和一个控制加减的异或门组成。 本

温馨提示

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

评论

0/150

提交评论