计算机组成原理2.2运算方法

上传人:san****019 文档编号:70825236 上传时间:2019-01-18 格式:PPT 页数:77 大小:1.09MB
返回 下载 相关 举报
计算机组成原理2.2运算方法_第1页
第1页 / 共77页
计算机组成原理2.2运算方法_第2页
第2页 / 共77页
计算机组成原理2.2运算方法_第3页
第3页 / 共77页
计算机组成原理2.2运算方法_第4页
第4页 / 共77页
计算机组成原理2.2运算方法_第5页
第5页 / 共77页
点击查看更多>>
资源描述

《计算机组成原理2.2运算方法》由会员分享,可在线阅读,更多相关《计算机组成原理2.2运算方法(77页珍藏版)》请在金锄头文库上搜索。

1、2.2 运算方法,2.2.1 定点加减法运算及其实现 2.2.2 定点乘法运算及其实现 2.2.3 定点除法运算及其实现 2.2.4 浮点数的运算方法,2.2.1 定点加减法及其实现,一、补码加减法运算 1. 运算规则 X+Y补 = X补 + Y补 X-Y补 = X补 + -Y补,例1:X=0.1011, Y= -0.1110, 求 X+Y。 解:因为 X补=0.1011 Y补=1.0010,所以 : X+Y补= 1.1101 X+Y = - 0.0011,例2:X=0.1011, Y= -0.0010, 求 XY。 解:因为 X补=0.1011 Y补=1.1110 -Y补=0.0010,所以

2、 : X-Y补= 0.1101 X-Y = + 0.1101,2.利用补码的优点,采用补码进行加、减法运算可将减法变为加法运算实现。 运算过程中,符号位与数值位一样参加运算。 符号位向更高位的进位自然丢失,可方便获得结果的符号。,1.溢出的定义: 当运算结果超出所定义的有符号数的范围时即发生溢出。,二、定点加减法运算中的溢出问题,溢出发生,结果就不正确了,因此需要进行检测和指示。 “机器字长和数据的表示方法”,两个正数相加结果为负数的情况,两个负数相加结果为正数的情况,例如:在字长5位时,溢出发生的情况,1)用双符号补码运算的结果来判断。若运算结果的符号位为: 01 正溢:在正数端溢出 10

3、负溢:在负数端溢出 00 11,2.溢出的检测和判断方法,若X=0.1011 Y= -0.0101 X补 = 00 1011, Y补 = 11 1011 -Y补= 00 0101,X+Y,去掉最高位进位 结果无溢出,X-Y,结果溢出!,双符号位溢出的检测和判断举例,若定义 操作数: X补 = XS1 XS2. X1X2 Xn y补 = yS1 yS2. y1y2 yn 其和为: Z补 = zS1 zS2. z1z2 zn 则溢出信号为 OF = ZS1 ZS2,如何利用变形补码产生溢出信号,2)利用两种进位信号判定溢出,则溢出信号为 OF =Cs C1=1,最高数值位的进位为C1,定义:符号位

4、的进位为Cs,三、定点加减法运算的实现,1.全加器结构,2.串行进位的并行加法器,N位串行进位的并行加法器逻辑结构,符号位的进位,最高数值位的进位,产生溢出标志,3. 并行进位的并行加法器,如何实现并行进位呢? 根据:,定义:P = AiBi G = Ai Bi P:称为进位传递函数 G:称为进位产生函数,由此可以导出各位的进位函数,并行进位加法器,由上述逻辑表达式可知,并行进位信号仅由两个加数以及最低位的进位信号有关,所以是可以由附加逻辑电路产生的。 并行进位的优点:速度快! 缺点:增加电路的复杂程度,位数长时受逻辑门扇入系数的限制难以实现或造价昂贵。,2.2.2 定点乘法运算及其实现,软件

5、实现; 在原有实现加减运算的基础上增加少量逻辑部件实现乘法(累加和移位); 设计专用的乘法电路;,机内实现乘法运算的方案有三种,一、移位运算与实现,1. 移位运算:左移和右移 逻辑移位 算术移位(符号位不变),0 1 1 0,0 0 1 1,1 1 0 1,1 1 1 0,2. 移位功能的实现 a.利用寄存器移位 b.移位器(左移、右移一位、直送),二、原码一位乘算法,定义:操作数用原码表示,从最低位开始,每次取一位乘数进行处理的方法。,1.从手算过程理解,新部分积左移,多个部分积一次相加,给结果加上符号,结果为2倍字长,根据手算的规律,在机内实现需要解决如下问题: 对于运算结果符号的处理;

6、多个部分积相加; 两个n位数相乘,需要2n位的加法器。, 符号:设操作数的原码为,2.原码一位乘算法,ZS = XSYS Z=XY,X原 = XS.X1X2 Xn Y原 = YS.y1y2 yn 其积为 Z原 = ZS.Z1Z2 Zn, 多个部分积相加 将多个部分积的一次相加改为逐次累加 将新部分积的左移改为部分积和的右移 可解决用n位运算电路实现两个n位数相乘。 用寄存器共享解决结果为2倍字长,例如: X = 0.1101 Y = -0.1011,原码一位乘运算过程演示:,例如: X = 0.1101 Y = - 0.1011 0. 1 1 0 1 初值取零值 * 0. 1 0 1 1 +

7、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 手工运算过程,例如: X = 0.1101 Y = - 0.1011 0. 1 1 0 1 * 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 1 手工运算过程,例如: X = 0.1101 Y = - 0.1011 0. 1 1 0 1 * 0. 1 0 1 1 + 1 1 0 1 部分积加 1 1 0 1 右移

8、0 0 0 0 移出位保存 + 1 1 0 1 求第三次部分积 0 . 1 0 0 0 1 1 1 1 手工运算过程,例如: X = 0.1101 Y = - 0.1011 0. 1 1 0 1 * 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 1 手工运算过程,再用一步完成数符号异或求积的符号, 结果为 -0.10001111,原码一位乘算法,加 法 器,部分积(高位),被 乘 数,乘数/(低位积),F,最低位,加运算,移位线路 每位1套,所用逻辑线路框图,R2,R

9、1,R0,0 0 0 0 0 0,1 0 1 1,加 法 器,部 分 积,被 乘 数,乘 数,F,最低位,加运算,移位线路 每位1套,0 0 0 0 0 0,0 0 1 1 0 1,1 0 1 1,为各寄存器给初值,原码一位乘算法,R2,R0,R1,0 0 0 0 0 0,1 0 1 1,加 法 器,部 分 积,被 乘 数,乘 数,F,最低位,加运算,移位线路 每位1套,0 0 0 0 0 0,0 0 1 1 0 1,1 0 1 1,0 0 1 1 0 1,0 0 0 1 1 0,1 0 1 1,0 0 0 1 1 0,1,1 0 1,0 0 1 1 0 1,第一次求部分积,原码一位乘算法,R

10、0,R1,原码一位乘法,0 0 0 0 0 0,1 0 1 1,加 法 器,部 分 积,被 乘 数,乘 数,F,最低位,加运算,移位线路 每位1套,0 0 0 0 0 0,0 0 1 1 0 1,1 0 1 1,0 0 0 1 1 0,0 1 0 0 1 1,0 1 0 0 1 1,1 1 0 1,0 0 1 0 0 1,0 0 0 1 1 0,0 0 1 0 0 1,1 0,1 1,1,1 0 1,第二次求部分积,R0,R1,原码一位乘法,0 0 0 0 0 0,1 0 1 1,加 法 器,部 分 积,被 乘 数,乘 数,F,最低位,加运算,移位线路 每位1套,0 0 0 0 0 0,0 0

11、 1 1 0 1,1 0 1 1,0 0 0 1 1 0,0 0 1 0 0 1,0 0 0 1 1 0,0 0 1 0 0 1,1 0,1 1,0 0 1 0 0 1,0 0 0 1 0 0,1,1 0 1,1 1 1,1,0 0 0 1 0 0,0 0 1 0 0 1,0 0 1 0 0 1,第三次求部分积,R0,R1,0 0 0 0 0 0,1 0 1 1,0 0 0 0 0 0,0 0 1 1 0 1,1 0 1 1,0 0 0 1 1 0,0 0 1 0 0 0,0 0 1 0 0 1,0 0 0 1 1 0,0 0 1 0 0 1,1 0,1 1,0 0 0 1 0 0,0 0 0

12、 1 0 0,1,1 0 1,1 1 1,1,0 0 1 0 0 0,低位积,0 1 0 0 0 1,0 1 0 0 0 1,第四次求部分积,高位积,原码一位乘法,R0,R1,原码一位乘法,0 0 0 0 0 0,1 0 1 1,加 法 器,部 分 积,被 乘 数,乘 数,F,最低位,加运算,移位线路 每位1套,0 0 0 0 0 0,0 0 1 1 0 1,1 0 1 1,0 0 0 1 1 0,0 0 1 0 0 0,0 0 1 0 0 1,0 0 0 1 1 0,0 0 1 0 0 1,1 0,1 1,0 0 0 1 0 0,0 0 0 1 0 0,1,1 0 1,1 1 1,1,0 0

13、 1 0 0 0,低位积,高位积,符号位异或, 积符号得负, 结果为: 1 10001111,R0,R1,3. 原码一位乘算法流程,原码一位乘法逻辑结构框图,Ti为节拍信号,三、补码一位乘算法,原码乘法不难实现,但有两个问题: 符号位与数值位分别处理,不方便; 若数据为补码形式,可能多两次原码与补码变换(即从存储器或寄存器中取得的操作数是补码,运算后的乘积仍需变换成补码存放到存储器或寄存器中)。,因此,可以直接用补码完成乘法运算, 即从补码开始,直接得到补码的积。(Booth算法),1)XY补 = 补补 不必区分符号位与数值位。 2)乘数最低一位之后要增加初值为的附加位(Yn+1);并且每次乘运算需要看附加位和最低位(Yn、Yn+1)取值的不同情况决定如何计算部分积,其规则是:,Yn、Yn+1的取值及部分积的操作:,3)算法共需n+1次累加,n次移位(第n+1次只相加,不移位)。 4)右移均为算术右移。,X = + 0.1 1 0 1 Y = -

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

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

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