计算机组成原理第八讲(运算方法).ppt_第1页
计算机组成原理第八讲(运算方法).ppt_第2页
计算机组成原理第八讲(运算方法).ppt_第3页
计算机组成原理第八讲(运算方法).ppt_第4页
计算机组成原理第八讲(运算方法).ppt_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

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

文档简介

1、计算机组成原理,主讲:颜俊华 第八讲:运算方法,定点加减运算,补码加减运算基本关系式,( X + Y )补 = X补 + Y补 (1) ( X - Y )补 = X补 + (-Y)补 (2),式(1):操作码为“加”时,两数直接相加。,2) X= 3 Y= 2,X补=1 1101 Y补=1 1110,1 1011,( 5补码),1) X=3 Y=2,X补=0 0011 Y补=0 0010,0 0101,(+5补码),例. 求(X+Y)补,定点加减运算,补码加减运算基本关系式,( X + Y )补 = X补 + Y补 (1) ( X - Y )补 = X补 + (-Y)补 (2),式(2):操作

2、码为“减”时,将减转换为加。,即将减数变补后与被减数相加。,Y补 (Y)补:,将Y补变补,不管Y补为正或负,将其符号连同尾数一起各位变反,末位加1。,定点加减运算,1) X= 4 Y= 5,X补=0 0100 Y补=1 1011 (-Y)补=0 0101,0 1001,(+9补码),2) X= 4 Y= 5,X补=1 1100 Y补=0 0101 (-Y)补=1 1011,1 0111,(9补码),例. 求(X Y)补,X补=0 0100 Y补=1 1011,X补=1 1100 Y补=0 0101,注意:某数的补码表示与某数变补的区别。,例. 1 0101原 1 1011,补码表示,1 001

3、1补 0 1101,变补,例. 1 0101原 1 1011,0 0101原 0 0101,补码表示,符号位不变;,0 0101原 0 0101,1 0101原 1 1011,0 0101原 0 0101,负数尾数改变,正数尾数不变。,0 0011补 1 1101,1 0011补 0 1101,0 0011补 1 1101,1 0011补 0 1101,0 0011补 1 1101,变补,符号位改变,,尾数改变。,补码的机器负数,定点加减运算,定点加减运算,算法流程,逻辑实现,+1,(1)控制信号,加法器输入端:,+A:打开控制门,将A送 。,+B:打开控制门,将B送 。,+1:控制末位加 1

4、 。,加法器输出端:,CPA:将结果打入A。,(2)补码加减运算器粗框,溢出判断,溢出判断方法 在什么情况下可能产生溢出?,例.数A有4位尾数,1位符号SA 数B有4位尾数,1位符号SB,符号位参加运算,结果符号Sf 符号位进位Cf 尾数最高位进位C,正确,正溢,正确,负溢,正确,正确,溢出判断,硬件判断逻辑一(SA、SB与Sf的关系),溢出=,SA,SB,Sf,SA,Sf,SB,溢出判断,硬件判断逻辑二(Cf与C的关系),正确,正溢,正确,负溢,Cf=0 C =0,Cf=0 C =1,Cf=1 C =1,Cf=1 C =0,1,1,1,1,溢出判断,硬件判断逻辑三(双符号位),(1)3+2:

5、,正确,00 0011 00 0010,00 0101,(2)10+7:,00 1010 00 0111,01 0001,正溢,正确,负溢,(3)-3+(-2):,11 0111,11 1101 11 1110,(4)-10+(-7):,10 1111,11 0110 11 1001,第一符号位Sf1,第二符号位Sf2,1. 硬件判断逻辑一(SA、SB与Sf的关系),2. 硬件判断逻辑二(Cf与C的关系),3. 硬件判断逻辑三(双符号位),0 0 结果为正 0 1 结果正溢出 1 0 结果负溢出 1 1 结果为负,溢出判断,移位操作,逻辑移位 逻辑移位:数码位置变化,数值不变 算术移位:数码位

6、置变化,数值变化,符号位不变,1 0 0 0 1 1 1 1,循环左移:,0,1 0 0 1 1 1 1,算术左移:,1,0,0,1,1,1,1,1,0,1,1,1,1,0,(-15)原,(-30)原,移位操作,移位寄存器:在寄存器中移位(串行接口中) 移位门:斜位传送(运算器中),移位寄存器,移位门,加法器,移位操作,算术移位 正数补码(包括原码)移位规则,0 0111,0 1110,2)双符号位:,00 1110,00 0111,0 0111,0 0011,01 1100,00 1110,00 0111,1)单符号位 :,移位操作,3)移位规则,数符不变:,单:符号位不变;双:第一符号位不

7、变,空位补0:,右移时第二符号位移至尾数最高位,移位操作,负数补码移位规则,1)单符号位 :,1 1011,1 0110,2)双符号位:,10 1100,11 0110,1 1011,1 1101,11 0110,11 1011,移位操作,3)移位规则,数符不变:,单:符号位不变;双:第一符号位不变,左移空位补0,第二符号位移至尾数最高位,右移空位补1:,移位操作,易出错处(双符号位),00 1110,01 1100,正确:,11 0110,10 1100,00 1100,01 1100,00 0110,正确:,00 1110,11 1100,正确:,10 1100,11 1110,11 01

8、10,正确:,移位操作,舍入方法 0舍1入(原码、补码),0 00100原,1 00101原,1 11011补,0 0010原,1 0011原,1 1110补,例. 保留4位尾数:,移位操作,舍入方法 末位恒置1(原码、补码),0 00100原,1 11011补,1 00101原,0 0011原,1 0011原,1 1101补,1 0011原,1 1101补,例. 保留4位尾数:,浮点加减运算,阶码,Ef E1 Em Mf M1 Mn,浮点数机器格式:,尾数,阶符,数符,R:阶码底,隐含约定。,E:阶码,为定点整数,补码或移码表示。 其位数决定数值范围;,浮点加减运算,M:尾数,为定点小数,原

9、码或补码表示。 其位数决定数的精度;,尾数规格化:1/2 M 1,最高有效位绝对值为1,数符表示数的正负。,浮点加减运算,步骤: 检测能否简化操作 对阶 对阶:使两数阶码相等(小数点实际位置对齐) 对阶规则:小阶向大阶对齐 对阶操作:小阶阶码增大,尾数右移 阶码比较:比较线路或减法,判操作数是否为0,尾数为0 阶码下溢,浮点加减运算,尾数相加减 结果规格化,1) 1.0001 +0.1001,1.1010,2) 0.0101 +0.1101,1.0010,应左移规格化,应右移规格化,浮点加减运算,结果规格化,1) 11.0001 +00.1001,11.1010,(-1/2除外),Af1Af2

10、 A1,11.1010,浮点加减运算,结果规格化,若 Af1Af2=1,则右规:,2) 00.0101 +00.1101,01.0010,01.0010,Af1Af2,浮点加减运算,例:A=(0.1101)21 ,B=(-0.1010)23, 求X+Y=?(其浮点数的格式:阶码4位,尾数6位,且均为双符号位的补码。) 解: A补=0001,00.1101 B补=0011,11.0110 检测操作数是否为0 对阶: 求阶差E=AE补- BE补=0001-0011=1110 即E=-2,将X的尾数右移二位: A补=0011,00.0011,浮点加减运算,尾数的加减 AM补=00.0011 BM补=

11、11.0110 00.0011 +11.0110 11.1001 即AM+BM补=11.1001 规格化和判溢出 A+B补=0011,11.1001 若运算结果为非规格化的数,需左规 A+B补=0010,11.0010,浮点加减运算,设浮点数字长16位,其中阶码8位,尾数8位,且均为双符号位的补码。求AB=? (1)A= 11/16 2-4 , B= 13/16 2-3 (2)A= 33/256 , B= -63,定点乘法运算,手算 0.1101 0.1011,1101 1101 0000 1101,0.10001111,部分积,改进:将一次相加改为分步累加; 部分积左移一位改为累加和右移一位

12、。,问题: 1)加的数增多(N个数,由乘数位数决定)。 2)加数的位数增多(与被乘数、乘数位数有关)。,定点乘法运算,每次将一位乘数所对应的部分积与原部 分积的累加和相加,并移位。,设置寄存器: A:存放部分积累加和、乘积高位 B:存放被乘数 C:存放乘数、乘积低位,定点乘法运算,例:原码一位乘法0.11011.1011 乘积:P = X Y 符号: SP= SX SY 设置初值 A = 00.0000 B = X = 00.1101 C = Y = .1011,步数 条件 操作 A C,00.0000 .1011,1),Cn=1,+B,Cn,+ 00.1101,00.1101,00.0110

13、,1.101,2),Cn=1,+B,+ 00.1101,01.0011,00.1001,11.10,3),Cn=0,+0,+ 00.0000,00.1001,00.0100,111.1,4),Cn=1,+B,+ 00.1101,01.0001,00.1000,1111,X原Y原 = 1.10001111,算法流程,定点乘法运算,运算规则 操作数、结果用原码表示 绝对值运算,符号单独处理 被乘数、累加和取双符号位 乘数末位(Cn)为判断位,其状态决定下步操作 作n次循环(累加、右移),定点除法运算,例. 0.101100.11111,0.10110,1101,0.,0,1,11111,0.111

14、11,0,0,0,1,11111,10101,0,1,11111,1011,0,0,.,00000,.,0.,商: 0.10110 余数:0.101102,实现除法的关键: 比较余数、除数 绝对值大小,以 决定上商。,定点除法运算,如何判断够减? 比较逻辑电路:比较两数的大小 减法试探 余数-除数=新余数 如何处理符号位? 如何提高除法运算速度?,若为正:够减,商1。 若为负:不够减,商0, 方法:恢复原余数或不恢复原余数。,1. 原码不恢复余数法(加减交替法) (1)算法分析 比较两数大小用减法试探。,2余数-除数=新余数,为正:够减,商1。 为负:不够减,商0。,若第i步:2ri-1-Y=

15、ri0 第i+1步:2ri-Y=ri+1,第i步: 2ri-1-Y=ri0 第i+1步: 2ri+Y=ri+1 (不恢复余数),2ri-Y=2(ri+Y)-Y =2ri+Y=ri+1,若第i步:2ri-1-Y=ri0 第i+1步:ri+Y=ri(恢复余数) 第i+2步:2ri-Y=ri+1,(2) 运算实例,X= - 0.10110,Y=0.11111, 求X/Y=?,给出商Q和余数R。,初值:A= X = 00.10110,B= Y = 00.11111,C= Q = 0.00000,-B=11.00001,步数 条件 操作 A C,00.10110 0.00000,1),为正,-B,01.01100,+11.00001,00.01101,0.00001,2),为负,-B,00.11010,+11.00001,11.11011,0.00010,3),+B,+00.11111,11.10110,0.00101,为正,00.10101,Cn,r,Q1,Q2,Q3,r0,2r0,r1,2r1,r2,2r2,r3,4),为正,-B,01.01010,+11.00001,00.01011,0.01011,Q4,

温馨提示

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

评论

0/150

提交评论