《计算机组成原理第八讲运算方法优秀课件.ppt》由会员分享,可在线阅读,更多相关《计算机组成原理第八讲运算方法优秀课件.ppt(44页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、计算机组成原理第八讲运算方法计算机组成原理第八讲运算方法第1页,本讲稿共44页定点加减运算定点加减运算补码加减运算基本关系式补码加减运算基本关系式(X+Y)补补 =X补补 +Y补补 (1)(X-Y)补补 =X补补 +(-Y)补补 (2)式(式(1):):操作码为操作码为“加加”时,两数直接相加。时,两数直接相加。2)X=3 Y=2 X补补=1 1101 Y补补=1 11101 1011(5补码)补码)1)X=3 Y=2 X补补=0 0011 Y补补=0 00100 0101(+5补码)补码)例例.求求(X+Y)补补第2页,本讲稿共44页定点加减运算定点加减运算补码加减运算基本关系式补码加减运算
2、基本关系式(X+Y)补补 =X补补 +Y补补 (1)(X-Y)补补 =X补补 +(-Y)补补 (2)式式(2):):操作码为操作码为“减减”时,将减转换为加。时,将减转换为加。即将减数变补后与被减数相加。即将减数变补后与被减数相加。Y补补 (Y)补:补:将将Y Y补变补补变补不管不管Y Y补为正或负,将其符号连同补为正或负,将其符号连同尾数一起各位变反,末位加尾数一起各位变反,末位加1 1。第3页,本讲稿共44页定点加减运算定点加减运算1)X=4 Y=5 X补补=0 0100 Y补补=1 1011(-Y)补补=0 01010 1001(+9补码)补码)2)X=4 Y=5 X补补=1 1100
3、Y补补=0 0101(-Y)补补=1 10111 0111(9补码)补码)例例.求求(X Y)补补 X补补=0 0100 Y补补=1 1011 X补补=1 1100 Y补补=0 0101第4页,本讲稿共44页注意:某数的注意:某数的补码表示补码表示与某数与某数变补变补的区别。的区别。例例.1 0101.1 0101原原 1 10111 1011补码表示补码表示1 00111 0011补补 0 11010 1101变补变补例例.1 1 0101 0101原原 1 1 1011 1011 0 01010 0101原原 0 01010 0101补码表示补码表示符号位不变符号位不变;0 0 0101
4、0101原原 0 0 0101 01011 01011 0101原原 1 10111 1011 0 01010 0101原原 0 01010 0101负数尾数改变,负数尾数改变,正数尾数不变。正数尾数不变。0 00110 0011补补 1 11011 11011 1 0011 0011补补 0 0 1101 11010 0 0011 0011补补 1 1 1101 11011 00111 0011补补 0 11010 11010 00110 0011补补 1 11011 1101变补变补符号位改变符号位改变,尾数改变尾数改变。补码的机器负数补码的机器负数第5页,本讲稿共44页定点加减运算定点加
5、减运算算法流程算法流程操作数用补码表示,操作数用补码表示,符号位参加运算符号位参加运算结果为补码表示,符结果为补码表示,符号位指示结果正负号位指示结果正负X X补补+Y+Y补补X X补补+(-Y)+(-Y)补补ADDSUB第6页,本讲稿共44页n逻辑实现逻辑实现A(X补补)B(Y补补)+AABB+B+B+1CPA A(1)控制信号)控制信号加法器输入端:加法器输入端:+A+A:打开控制门,将:打开控制门,将A A送送 。+B+B:打开控制门,将:打开控制门,将B B送送 。+1+1:控制末位加:控制末位加 1 1。+B+B:打开控制门,将:打开控制门,将B B送送 。加法器输出端:加法器输出端
6、:A:打开控制门,将结打开控制门,将结 果送果送A输入端。输入端。CPCPA A:将结果打入:将结果打入A A。(2)补码加减运算器粗框)补码加减运算器粗框第7页,本讲稿共44页溢出判断溢出判断溢出判断方法溢出判断方法在什么情况下可能产生溢出?在什么情况下可能产生溢出?例例.数数A A有有4 4位尾数,位尾数,1 1位符号位符号SA SA 数数B B有有4 4位尾数,位尾数,1 1位符号位符号SB SB 符号位参加运符号位参加运算算 结果符号结果符号SfSf 符号位进位符号位进位CfCf 尾数最高位进位尾数最高位进位C C第8页,本讲稿共44页正确正确0 00110 0010(1)A=3 B=
7、2 3+2:0 0101 (2)A=10 B=7 10+7:0 10100 01111 0001 正溢正溢正确正确负溢负溢正确正确正确正确(3)A=-3 B=-2-3+(-2):1 1011 1 11011 1110(4)A=-10 B=-7 -10+(-7):0 1111 1 01101 1001(5)A=6 B=-4 6+(-4):0 0010 0 01101 1100(6)A=-6 B=4 -6+4:1 1110 1 10100 0100第9页,本讲稿共44页溢出判断溢出判断硬件判断逻辑一硬件判断逻辑一(SA、SB与与Sf的关系)的关系)(1)A=10 B=7 10+7:0 1010 0
8、 01111 0001 (2)A=-10 B=-7 -10+(-7):0 1111 1 01101 1001溢出溢出=SASASBSB SfSfSASASfSfSBSB第10页,本讲稿共44页溢出判断溢出判断硬件判断逻辑二硬件判断逻辑二(Cf与与C的关系)的关系)正确正确0 00110 0010(1)A=3 B=2 3+2:0 0101 (2)A=10 B=7 10+7:0 10100 01111 0001 正溢正溢正确正确负溢负溢(3)A=-3 B=-2-3+(-2):1 1011 1 11011 1110(4)A=-10 B=-7 -10+(-7):0 1111 1 01101 1001C
9、f=0Cf=0C=0C=0Cf=0Cf=0C=1C=1Cf=1Cf=1C=1C=1Cf=1Cf=1C=0C=01111溢出溢出=Cf=Cf C C第11页,本讲稿共44页溢出判断溢出判断硬件判断逻辑三(双符号位)硬件判断逻辑三(双符号位)(1)3+2:正确正确00 001100 001000 0101 (2)10+7:00 101000 011101 0001 正溢正溢正确正确负溢负溢(3)-3+(-2):11 0111 11 110111 1110(4)-10+(-7):10 1111 11 011011 1001第一符号位第一符号位Sf1第二符号位第二符号位Sf2第12页,本讲稿共44页1
10、.1.硬件判断逻辑一(硬件判断逻辑一(SASA、SBSB与与SfSf的关系)的关系)2.2.硬件判断逻辑二(硬件判断逻辑二(CfCf与与C C的关系)的关系)溢出溢出=Sf1=Sf1 Sf2 Sf23.3.硬件判断逻辑三(双符号位)硬件判断逻辑三(双符号位)溢出溢出=Cf=Cf C C溢出溢出=SASA SBSB SfSfSASASfSfSBSB 0 0 0 0 结果为正结果为正 0 0 1 1 结果正溢出结果正溢出 1 1 0 0 结果负溢出结果负溢出 1 1 1 1 结果为负结果为负第13页,本讲稿共44页移位操作移位操作逻辑移位逻辑移位逻辑移位:数码位置变化,数值不变逻辑移位:数码位置变
11、化,数值不变算术移位:数码位置变化,数值变化,符号算术移位:数码位置变化,数值变化,符号位不变位不变1 0 0 0 1 1 1 1循环左移:循环左移:0 1 0 0 1 1 1 1 算术左移算术左移:1 0 0 1 1 1 1 10 1 1 1 1 0(-15)原原(-30)原原第14页,本讲稿共44页移位操作移位操作移位寄存器:在寄存器中移位(串行接口中)移位寄存器:在寄存器中移位(串行接口中)移位门:斜位传送(运算器中)移位门:斜位传送(运算器中)D4 D3 D2 D1D4 D3 D2 右移右移左移左移 D3 D2 D1 移位寄存器移位寄存器左斜左斜 右斜右斜 4 3 1 2门门4 门门3
12、 门门2 门门1移位门移位门加法器加法器第15页,本讲稿共44页移位操作移位操作算术移位算术移位正数补码(包括原码)移位规则正数补码(包括原码)移位规则0 01110 1110 2)双符号位:)双符号位:00 1110 00 0111左移左移右移右移右移右移0 0111 0 0011 左移左移左移左移右移右移右移右移01 1100 00 1110 00 0111 1)单符号位)单符号位:第16页,本讲稿共44页移位操作移位操作3 3)移位规则)移位规则 数符不变数符不变:单:符号位不变;双:第一符号位不变单:符号位不变;双:第一符号位不变空位补空位补0:右移时第二符号位移至尾数最高位右移时第二
13、符号位移至尾数最高位第17页,本讲稿共44页移位操作移位操作负数补码移位规则负数补码移位规则 1)单符号位)单符号位:1 10111 0110 2)双符号位:)双符号位:10 1100 11 0110左移左移右移右移右移右移1 1011 1 1101 左移左移右移右移右移右移11 0110 11 1011 第18页,本讲稿共44页移位操作移位操作3 3)移位规则)移位规则数符不变:数符不变:单:符号位不变;双:第一符号位不变单:符号位不变;双:第一符号位不变左移空位补左移空位补0第二符号位移至尾数最高位第二符号位移至尾数最高位右移空位补右移空位补1:第19页,本讲稿共44页移位操作移位操作易出
14、错处(双符号位)易出错处(双符号位)00 1110 左左右右01 1100 正确:正确:11 0110 10 1100 00 1100 01 1100 00 0110 正确:正确:00 1110 11 1100 左左正确:正确:10 1100 11 1110 右右11 0110 正确:正确:第20页,本讲稿共44页移位操作移位操作舍入方法舍入方法0 0舍舍1 1入(原码、补码)入(原码、补码)0 00100原原 1 00101原原 1 11011补补 0 0010原原 1 0011原原 1 1110补补 例例.保留保留4 4位尾数:位尾数:第21页,本讲稿共44页移位操作移位操作舍入方法舍入方
15、法末位恒置末位恒置1 1(原码、补码)(原码、补码)0 00100原原 1 11011补补 1 00101原原 0 0011原原 1 0011原原 1 1101补补 1 0011原原 1 1101补补 例例.保留保留4 4位尾数:位尾数:第22页,本讲稿共44页浮点加减运算浮点加减运算浮点数真值浮点数真值:S=+R MS=+R M E E阶码阶码Ef E1 Ef E1 Em Mf M1 Em Mf M1 Mn Mn浮点数机器格式:浮点数机器格式:尾数尾数阶符阶符数符数符R R:阶码底,隐含约定。:阶码底,隐含约定。E E:阶码,为定点整数,补码或移码表示。:阶码,为定点整数,补码或移码表示。其
16、其位数位数决定决定数值范围数值范围;第23页,本讲稿共44页浮点加减运算浮点加减运算M M:尾数,为定点小数,原码或补码表示。:尾数,为定点小数,原码或补码表示。其其位数位数决定决定数的精度数的精度;尾数规格化:尾数规格化:1/2 M 11/2 M 1最高有效位绝对值为最高有效位绝对值为1 1数符数符表示表示数的正负数的正负。第24页,本讲稿共44页浮点加减运算浮点加减运算步骤:步骤:检测能否简化操作检测能否简化操作对阶对阶对阶:使两数阶码相等(小数点实际位置对阶:使两数阶码相等(小数点实际位置对齐)对齐)对阶规则:小阶向大阶对齐对阶规则:小阶向大阶对齐对阶操作:小阶阶码增大,尾数右移对阶操作
17、:小阶阶码增大,尾数右移阶码比较:比较线路或减法阶码比较:比较线路或减法判操作数是否为判操作数是否为0 0尾数为尾数为0 0阶码下溢阶码下溢第25页,本讲稿共44页浮点加减运算浮点加减运算尾数相加减尾数相加减结果规格化结果规格化 1)1.00011)1.0001 +0.1001 +0.10011.10101.1010 2)0.01012)0.0101 +0.1101 +0.1101 W 1/2W 1W 1应应左移规格化左移规格化应应右移规格化右移规格化A AM M+B+BM M A AM M第26页,本讲稿共44页浮点加减运算浮点加减运算结果规格化结果规格化A AJ J-1 A-1 AJ J
18、1)11.00011)11.0001 +00.1001 +00.100111.101011.1010(-1/2(-1/2除外除外)A Af1f1A Af2 f2 A A1 1A AM M1111.1 1010010若若 A Af1f1A Af2f2A A1 1+A+Af1f1A Af2f2A A1 1=1,=1,则左规则左规:第27页,本讲稿共44页浮点加减运算浮点加减运算结果规格化结果规格化若若 A Af1f1A Af2f2=1,=1,则右规:则右规:2)00.01012)00.0101 +00.1101 +00.110101.001001.00100101.0010.0010A Af1f1
19、A Af2f2 A AM MA AJ J+1 A+1 AJ J第28页,本讲稿共44页浮点加减运算浮点加减运算例:例:例:例:A=(0.1101)2A=(0.1101)21 1 ,B=(-0.1010)2B=(-0.1010)23 3,求求求求X+Y=?(X+Y=?(其浮点数的格式:阶码其浮点数的格式:阶码其浮点数的格式:阶码其浮点数的格式:阶码4 4位,尾数位,尾数位,尾数位,尾数6 6位,且均为双位,且均为双位,且均为双位,且均为双符号位的补码。符号位的补码。符号位的补码。符号位的补码。)解:解:AA补补=0001,00.1101 =0001,00.1101 B B补补=0011,11.0
20、110=0011,11.0110检测操作数是否为检测操作数是否为0 0对阶:对阶:求阶差求阶差E=AEE=AE补补-BE-BE补补=0001-0011=1110=0001-0011=1110即即E=-2E=-2,将,将X X的尾数右移二位:的尾数右移二位:AA补补=0011,00.0011=0011,00.0011第29页,本讲稿共44页浮点加减运算浮点加减运算尾数的加减尾数的加减 AMAM补补补补=00.0011 BM=00.0011 BM补补补补=11.0110=11.0110 00.0011 00.0011 +11.0110 +11.0110 11.1001 11.1001 即即AAM
21、M M M+B+BM M M M 补补=11.1001=11.1001规格化和判溢出规格化和判溢出A+BA+B补补补补=0011,11.1001=0011,11.1001 若运算结果为非规格化的数,需左规若运算结果为非规格化的数,需左规 A+BA+B补补=0010,11.0010=0010,11.0010第30页,本讲稿共44页浮点加减运算浮点加减运算设浮点数字长设浮点数字长16位,其中阶码位,其中阶码8位,尾数位,尾数8位,且均为双符号位的补码。求位,且均为双符号位的补码。求AB=?(1)A=11/16 2-4,B=13/16 2-3(2)A=33/256,B=-63第31页,本讲稿共44页
22、定点乘法运算定点乘法运算 手算手算 0.11010.1101 0.1011 0.1011 11011101 1101 1101 0000 0000 1101 1101 0.100011110.10001111部分积部分积改进:将一次相加改为改进:将一次相加改为分步累加;分步累加;部分积左移一位改为累部分积左移一位改为累加和右移一位。加和右移一位。问题:问题:1 1)加的数增多)加的数增多(N(N个数,由乘数位数决定个数,由乘数位数决定)。2 2)加数的位数增多)加数的位数增多(与被乘数、乘数位数有关与被乘数、乘数位数有关)。第32页,本讲稿共44页定点乘法运算定点乘法运算每次将一位乘数所对应的
23、部分积与原部每次将一位乘数所对应的部分积与原部分积的累加和相加,并移位。分积的累加和相加,并移位。设置寄存器:设置寄存器:A A:存放:存放部分积累加和、乘积高位部分积累加和、乘积高位 B B:存放:存放被乘数被乘数 C C:存放:存放乘数、乘积低位乘数、乘积低位 第33页,本讲稿共44页定点乘法运算定点乘法运算例:原码一位乘法例:原码一位乘法0.11011.1011乘积:乘积:P=X YP=X Y符号:符号:S SP P=S=SX X S SY Y设置初值设置初值 A=00.0000 A=00.0000 B=X=00.1101 B=X=00.1101 C=Y=.1011 C=Y=.1011第
24、34页,本讲稿共44页 步数步数 条件条件 操作操作 A C A C 00.0000 .10100.0000 .1011 1 1 1)Cn=1Cn=1+B+BCnCn+00.1101+00.110100.00.1101110100.00.011001101 1.10.101 12 2)Cn=1Cn=1+B+B+00.1101+00.11010 01 1.0011001100.00.100110011111.1.10 03 3)Cn=0Cn=0+0+0+00.0000+00.000000.00.1001100100.00.01000100111111.1 14 4)Cn=1Cn=1+B+B+00
25、.1101+00.11010 01 1.0001000100.00.1000100011111111X X原原YY原原 =1.10001111=1.10001111第35页,本讲稿共44页算法流程算法流程0 A0 A、X BX B、Y CY C、0 CR0 CRC Cn n=1 =1?CR=n CR=n?1/21/2(A+BA+B)A A,C C1/21/2(A+0A+0)A A,C C CR+1 CRCR+1 CRYYNN Sx+Sy SSx+Sy SA A第36页,本讲稿共44页定点乘法运算定点乘法运算运算规则运算规则操作数、结果用原码表示操作数、结果用原码表示绝对值运算,符号单独处理绝对
26、值运算,符号单独处理被乘数、累加和取双符号位被乘数、累加和取双符号位乘数末位乘数末位(Cn)(Cn)为判断位,其状态决定下步操为判断位,其状态决定下步操作作作作n n次循环(累加、右移)次循环(累加、右移)第37页,本讲稿共44页定点除法运算定点除法运算除法除法 若干余数与除数加减、移位。若干余数与除数加减、移位。例例.0.101100.11111.0.101100.111110.101100.10110 110111010.0.0 01 1 1111111111 0.111110.111110 00 00 01 1 1111111111 10101101010 01 1 1111111111
27、 101110110 00 0.0000000000.0.0.商:商:0.101100.10110余数:余数:0.1011020.101102 5实现除法的关键:实现除法的关键:比较余数、除数比较余数、除数绝对值大小,以绝对值大小,以决定上商。决定上商。第38页,本讲稿共44页定点除法运算定点除法运算如何判断够减?如何判断够减?比较逻辑电路:比较两数的大小比较逻辑电路:比较两数的大小减法试探减法试探 余数余数-除数除数=新余数新余数如何处理符号位?如何处理符号位?如何提高除法运算速度?如何提高除法运算速度?若为正若为正:够减够减,商商1 1。若为负若为负:不够减不够减,商商0,0,方法:恢复原
28、余数或不恢复原余数。方法:恢复原余数或不恢复原余数。第39页,本讲稿共44页1.原码不恢复余数法(加减交替法)原码不恢复余数法(加减交替法)(1)(1)算法分析算法分析 比较两数大小用减法试探。比较两数大小用减法试探。22余数余数-除数除数=新余数新余数为正为正:够减够减,商商1 1。为负为负:不够减不够减,商商0 0。若第若第i i步步:2 2r ri-1i-1-Y=-Y=r ri i00第第i+1i+1步步:2 2r ri i-Y=-Y=r ri+1i+1第第i i步步:2 2r ri-1i-1-Y=-Y=r ri i00第第i+1i+1步步:2 2r ri i+Y=+Y=r ri+1i+
29、1(不恢复余数不恢复余数)2r2ri i-Y=2(r-Y=2(ri i+Y)-Y+Y)-Y =2r =2ri i+Y=r+Y=ri+1i+1 若第若第i i步步:2 2r ri-1i-1-Y=-Y=r ri i00第第i+1i+1步步:r ri i+Y=+Y=r ri(i(恢复余数恢复余数)第第i+2i+2步步:2 2r ri i-Y=-Y=r ri+1i+1第40页,本讲稿共44页(2)(2)运算实例运算实例X=-0.10110X=-0.10110,Y=0.11111Y=0.11111,求求X/Y=X/Y=?,给出商?,给出商Q Q和余数和余数R R。初值初值:A=X=00.10110A=X
30、=00.10110 B=Y=00.11111 B=Y=00.11111 C=Q=0.00000C=Q=0.00000 -B=11.00001-B=11.00001第41页,本讲稿共44页步数步数 条件条件 操作操作 A CA C 00.10110 0.0000000.10110 0.00000 1 1)为正为正-B-B 01.0110001.01100+11.00001+11.0000100.0110100.011010.00000.00001 12 2)为负为负 -B-B00.1101000.11010+11.00001+11.0000111.1101111.110110.0000.0001
31、0103 3)+B+B+00.11111+00.1111111.1011011.101100.000.00101101为正为正00.1010100.10101C Cn n r rQ Q1 1 Q Q2 2 Q Q3 3 r r0 02r2r0 0r r1 12r2r1 1r r2 22r2r2 2r r3 34 4)为正为正-B-B 01.0101001.01010+11.00001+11.0000100.0101100.010110.00.010111011Q Q4 4 2r2r3 3r r4 4第42页,本讲稿共44页步数步数 条件条件 操作操作 A CA C 00.01011 0.000
32、.01011 0.010111011 6 6)为负为负 恢复余数恢复余数+B+B+00.11111+00.1111100.1011000.10110Q=-0.10110Q=-0.10110C Cn nQ Q4 4 r r4 45 5)为正为正-B-B 00.1011000.10110+11.00001+11.0000111.1011111.101110.0.1011010110Q Q5 5 2r2r4 4r r5 5r r5 5R=0.10110R=0.1011022-5-5X/Y=-0.10110+X/Y=-0.10110+0.101100.1011022-5-5 -0.11111-0.11111第43页,本讲稿共44页 运算规则说明运算规则说明(1 1)A A、B B取双符号位,取双符号位,X X、Y Y取绝对值运算,取绝对值运算,X Y X Y。(2 2)根据余数的正负决定商值及下一步操作。)根据余数的正负决定商值及下一步操作。(3 3)求)求n n位商,作位商,作n n步操作;若第步操作;若第n n步余数为负,步余数为负,则第则第n+1n+1步恢复余数,步恢复余数,不移位不移位。第44页,本讲稿共44页