- 1、本文档共39页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计算机组成原理no4数据的表示和运算3
* 补码比较法(Booth 算法) 设[x]补 = x0.x1x2 xn [y]补 = y0.y1y2 yn … … [x · y]补 = [x]补( 0.y1 yn ) – [x]补 · y0 … = [x]补(y1 2-1+y22-2+ +yn2-n) – [x]补 · y0 … = [x]补(–y0+y1 2-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)+(0 –yn)2-n)] … y1 2-1 + + … yn 2-n –[x]补= +[–x]补 2-1 = 20 – 2-1 2-2 = 2-1 – 2-2 = [x]补[(y1–y0)+(y2–y1)2-1+ +(yn+1–yn)2-n] … 附加位 yn+1 * Booth 算法递推公式 [z0]补= 0 [z1]补= 2-1{(yn+1–yn)[x]补+[z0]补} yn+1 = 0 [zn]补= 2-1{(y2–y1)[x]补+[zn-1]补} … [x · y]补= [zn]补+(y1–y0)[x]补 最后一步不移位 如何实现 yi+1–yi ? 0 0 0 1 1 0 1 1 1 +[x]补 1 +[–x]补 1 1 yi yi+1 操作 yi+1–yi 0 1 -1 0 * 例 已知 x = +0.0011 y = – 0.1011 求[x·y]补 解: 0 0 . 0 0 0 0 1 1 . 1 1 0 1 1 1 . 1 1 0 1 0 0 . 0 0 1 1 1 1 . 1 1 0 1 0 0 . 0 0 1 1 1 1 . 1 1 0 1 1 . 0 1 0 1 0 0 0 . 0 0 0 1 1 1 1 . 1 1 0 1 1 1 0 0 . 0 0 0 1 1 1 1 1 1 . 1 1 0 1 1 1 1 1 [x]补 = 0.0011 [y]补 = 1.0101 [–x]补 = 1.1101 +[–x]补 1 1 . 1 1 1 0 1 1 0 1 0 1 1 +[x]补 0 0 . 0 0 0 0 1 1 1 0 1 0 1 +[–x]补 1 1 . 1 1 1 0 1 1 1 1 0 1 1 0 0 . 0 0 0 0 1 1 1 1 1 0 1 +[–x]补 +[x]补 ∴ [x·y]补 =1 最后一步不移位 * 2.2.2?定点数的运算 Booth 算法的硬件配置 A、X、Q 均 n + 2 位 移位和加受末两位乘数控制 0 A n+1 n + 2 位加法器 控 制 门 0 X n+1 0 Q n n+1 移位和加 控制逻辑 计数器 C GM 00,11 01 10 右移 * 2.2.2?定点数的运算 补码两位乘 补码两位乘运算规则是根据补码一位乘的规则,把比较yiyi+1的状态应执行的操作和比较yi-1yi 的状态应执行的操作合并成一步,便可得出补码两位乘的运算方法。 判断位yi-1y iyi+1 操作内容 000 [zi+1]补=2-2[zi]补 001 [zi+1]补=2-2{[zi]补+[x]补} 010 [zi+1]补=2-2{[zi]补+[x]补} 011 [zi+1]补=2-2{[zi]补+2[x]补} 100 [zi+1]补=2-2{[zi]补+2[-x]补} 101 [zi+1]补=2-2{[zi]补+ [-x]补} 110 [zi+1]补=2-2{[zi]补+-x}补} 111 [zi+1]补=2-2[zi]补 * 2.2.2?定点数的运算 操作中出现加2[x]补和加2[-x]补,故除右移两位的操作外,还有被乘数左移一位的操作;而加2[x]补和加2[-x]补,都可能因溢出而侵占双符号位,故部分积和被乘数采用三位符号位。 补码两位乘的部分积多取一位符号位(共3位),乘数也多取一位符号位(共2位),这是由于乘数每次右移2位,且用3位判断,故采用双符号位更便于硬件实现。可见,当乘数数值位为偶数时,乘数取2位符号位,共需作n/2次移位,最多作n/2+1次加法,最后一步不移位;当n为奇数时,可补0变为偶数位,以简化逻辑操作。
文档评论(0)