第三章_运算方法与运算部件(第二讲)讲义

上传人:今*** 文档编号:108177545 上传时间:2019-10-22 格式:PPT 页数:36 大小:345KB
返回 下载 相关 举报
第三章_运算方法与运算部件(第二讲)讲义_第1页
第1页 / 共36页
第三章_运算方法与运算部件(第二讲)讲义_第2页
第2页 / 共36页
第三章_运算方法与运算部件(第二讲)讲义_第3页
第3页 / 共36页
第三章_运算方法与运算部件(第二讲)讲义_第4页
第4页 / 共36页
第三章_运算方法与运算部件(第二讲)讲义_第5页
第5页 / 共36页
点击查看更多>>
资源描述

《第三章_运算方法与运算部件(第二讲)讲义》由会员分享,可在线阅读,更多相关《第三章_运算方法与运算部件(第二讲)讲义(36页珍藏版)》请在金锄头文库上搜索。

1、第三章 运算方法与运算部件,(2),3.3 二进制乘法运算 3.3.1 定点数一位乘法 (1),1. 原码定点一位乘法 两个原码数相乘,其乘积的符号为相乘两数的异或值,数值两数绝对值之积。 假设 X原=X0 X1 X2 Xn Y原=Y0 Y1 Y2 Yn XY原=X原Y原 = (X0Y0)(X1 X2 Xn)(Y1 Y2 Yn) 符号表示把符号位和数值邻接起来。,3.3.1 定点数一位乘法 (2),例:X=0.1101,Y=0.1011计算XY 解: 0.1101 0.1011 1101 1101 0000 1101 0.10001111 XY=0.10001111, 符号为正,3.3.1 定

2、点数一位乘法 (3),分解乘法操作,两个n位数相乘,结果是2n位。 1101 1011 1101 1101 0000 1101 10001111,积有8位,我们把积的中间形式称为部分积。 00000000 第0步 部分积 + 1101 00001101 第1步 部分积 + 1101 00100111 第2步 部分积 + 0000 00100111 第3步 部分积 + 1101 10001111 第4步 部分积,3.3.1 定点数一位乘法 (4),重复执行下列操作n次: (1)加被乘数或0(由乘数的相应位决定)到部分积; (2)部分积右移1位。 由于乘数的各个位决定加被乘数或0,我们采用值判断乘

3、数最低位,每次判断完毕,右移1位的方法。而且由于乘数右移空出的高位可以留给部分积的低位。 所以,保存乘数的寄存器,最后保存部分积的低n位。 因此,最后的乘法规则是: 部分积(只占n位)初始值为0 重复执行下列操作n次: (1) 由乘数的最低位的值决定:1,加被乘数;0,加0; (2) 部分积连同乘数一道右移1位。,3.3.1 定点数一位乘法 (5),A 部分积,计数器,n 位 加法器,B 被乘数,Cy,Cd,A, C 联合右移 1 位,3.3.1 定点数一位乘法 (6),部分积 乘数 00 0000 1011 +X 1101 00 1101 右移1位 00 0110 1101 +X 1101

4、01 0011 右移1位 00 1001 1110 +0 0000 00 1001 右移1位 00 0100 1111 +X 1101 01 0001 右移1位 00 1000 1111,3.3.1 定点数一位乘法 (7),2. 定点补码一位乘法 有的机器为方便加减法运算,数据以补码形式存放。乘法直接以补码进行,以减少转换次数。 证明略。 具体规则如下: XY补=X补(Y0 + 0. Y1 Y2 Yn ) Y为正数: XY补=X补( 0. Y1 Y2 Yn ) Y为负数: XY补=X补( 0. Y1 Y2 Yn )+-X补,3.3.1 定点数一位乘法 (8),部分积 乘数 X=-0.1101,

5、 Y=0.1011 00 0000 1011 X补=11.0011,Y补=0.1011 +X补 11 0011 11 0011 右移1位 11 1001 1101 +X补 11 0011 10 1100 右移1位 11 0110 0110 +0 00 0000 11 0110 右移1位 11 1011 0011 +X补 11 0011 10 1110 右移1位 11 0111 0001 Y0=0 XY补=11.01110001,3.3.1 定点数一位乘法 (9),部分积 乘数 X=-0.1101, Y=-0.1011 00 0000 0101 X补=11.0011,Y补=11.0101 +X补

6、 11 0011 11 0011 右移1位 11 1001 1010 +0 00 0000 11 1001 右移1位 11 1100 1101 +X补 11 0011 10 1111 右移1位 11 0111 1110 +0 00 0000 11 0111 右移1位 11 1011 1111 Y0=1 +-X补 00 1101 00 1000 1111 XY补=0.10001111,3.3.1 定点数一位乘法 (10),“布斯公式”: 在乘数Yn后添加Yn+1=0。按照Yn+1 ,Yn相邻两位的三种情况,其运算规则如下: (1) Yn+1 -Yn =0( Yn+1 Yn =00或11),部分积

7、加0,右移1位; (2) Yn+1 -Yn =1( Yn+1 Yn =10) ,部分积加X补,右移1位; (3) Yn+1 -Yn =-1( Yn+1 Yn =01) ,部分积加X补,右移1位 最后一步不移位。,3.3.1 定点数一位乘法 (11),X=-0.1101, Y=0.1011 部分积 乘数 Yn Yn+1 00 0000 01011 0 +-X补 00 1101 Yn+1Yn=01,+-X补 00 1101 右移1位 00 0110 10101 1 +0 00 0000 Yn+1Yn=00,+0 00 0110 右移1位 00 0011 01010 1 +X补 11 0011 Yn

8、+1Yn=10,+X补 11 0110 右移1位 11 1011 00101 0 +-X补 00 1101 Yn+1Yn=01,+-X补 00 1000 右移1位 00 0100 00010 1 +X补 11 0011 Yn+1Yn=10,+X补 11 0111 0001 XY=-0.10001111,3.3.2 定点数两位乘法 (1),1原码两位乘 乘数和被乘数都用原码表示。 两位乘数有四种可能组合,每种组合对应于以下操作: 00相当于0X。部分积 Pi 右移2位,不进行其他运算; 01相当于1X。部分积 Pi + X,右移2位; 10相当于2X。部分积 Pi + 2X,右移2位; 11相当

9、于3X。部分积 Pi+3X,右移2位。 同前述的一位乘法比较,多出了+2X和 +3X两种情况。把调左移1位即得2X,在机器内采用向左斜送1位来实现。 可是 +3X一般不能一次完成,如分成两次进行,又降低了运算速度。解决问题的办法是:以(4X-X)来代替3X运算,在本次运算中只执行一次-X,而+4X归并到下一次执行。 此时部分积已右移了两位,上一步欠下的+4X已变成X,在实际线路中要用一个触发器C来记录是否欠下+4X,若是,则1C。,3.3.2 定点数两位乘法 (2),因此实际操作用Yi-1、Yi、C三位来控制,运算规则如下:,3.3.2 定点数两位乘法 (3),X=0.100111, Y=0.

10、100111 部分积 乘数 Yi-1Yi,欠位 C 00 000000 100111 0 +-X补 11 011001 110: -X, 1C 11 011001 右移2位 11 110110 011001 1 +2X 01 001110 011: +2X,0C 01 000100 右移2位 00 010001 000110 0 +2X 01 001110 100: +2X,0C 01 011111 右移2位 00 011111 110001 0,3.3.2 定点数两位乘法 (4),2补码两位乘 根据前述的布斯算法,将两步合并成一步,即可推导出补码两位乘的公式。,3.3.2 定点数两位乘法 (

11、5),求部分积的次数和右移操作的控制问题。 当乘数由1位符号位和以n(奇数)位数据位组成时,求部分积的次数为(1n)2,而且最后一次的右移操作只右移一位。 若数值位本身为偶数n,可采用下述两种方法之一: (1)可在乘数的最后一位补一个0,乘数的数据位就成为奇数,而且其值不变,求部分积的次数为1+(n+l)/2,即n/21,最后一次右移操作也只右移一位。 (2)乘数增加一位符号位,使总位数仍为偶数,此时求部分积的次数为n/2+1,而且最后一次不再执行右移操作。,3.3.2 定点数两位乘法 (6),X=-0.1101,Y=-0.1011;X补=1.0011,Y补=1.0101 乘数的最低位补0,Y

12、补=1.01010 部分积 乘数,附加位 000 0000 101010 0 +2-X补 001 1010 100: +2-X补 001 1010 右移2位 000 0110 101010 1 +-X补 000 1101 101: +-X补 001 0011 右移2位 000 0100 111010 1 +-X补 000 1101 101: +-X补 001 0001 右移1位 000 1000 111101 0,3.3.2 定点数两位乘法 (6),乘数增加1位符号位,Y补=11.0101 部分积 乘数,附加位 000 0000 110101 0 +X补 111 0011 010: +X补 1

13、11 0011 右移2位 111 1100 111101 0 +X补 111 0011 010: +X补 110 1111 右移2位 111 1011 111111 0 +-X补 000 1101 110: +-X补 000 1000 111111 0,3.7 数据校验码(1),计算机系统中的数据,在读写、存取和传送的过程中不可避免地产生错误。 为减少和避免错误,一方面是精心设计各种电路,提高计算机硬件的可靠性; 另一方面是在数据编码的方法减少出错的可能性,即采用某种编码法,通过少量的附加电路,使之能发现某些错误,甚至能确定出出错的位置,进而实现自动改错的能力。,3.7 数据校验码(2),数据

14、校验码是一种常用的带有发现某些错误或自动改错能力的数据编码方法。其实现原理,是加进一些冗余码,使合法数据编码出现某些错误时,就成为非法编码。 这样,可以通过检测编码的合法性来达到发现错误的目的。合理地安排非法编码数量和编码规则,可以提高发现错误的能力,或达到自动改正错误的目的。,3.7 数据校验码(3),这里用到一个码距的概念。码距根据任意两个合法码之间至少有几个二进制位不相同而确定的,仅有一位不同,称其码距为1。 例如,用四位二进制表示16种状态,则16种编码都用到了,此时码距为1,就是说,一个状态的四位码中的一位或几位出错,就变成另一个合法码,此时无查错能力。 若用二进制位表示8个状态,就可以只用其中的8种编码,而把另8种编码作为非法编码,码距为2。 一般来说,合理地增大码距,就能提高发现错误的能力,但码所使用的二进位变多,增加了数据存储的容量或数据传送的数量。常用的数据校验码有: 奇偶校验码、海明校验码和循环冗余校验码。,3.7.1 奇偶校验码(1),它的实现原理,是使码距由1增加到2。 若编码中有1位二进制数出错了,即由1变成0,或者由0变成1。这样出错

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号