《计算机组成原理第八讲运算方法.ppt》由会员分享,可在线阅读,更多相关《计算机组成原理第八讲运算方法.ppt(41页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、计算机组成原理第八讲运算方法计算机组成原理第八讲运算方法现在学习的是第1页,共41页定点加减运算定点加减运算补码加减运算基本关系式补码加减运算基本关系式(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页,共41页定点加减运算定点加减运算补码加减运算基本关系式
2、补码加减运算基本关系式(X+Y)补补 =X补补 +Y补补 (1)(X-Y)补补 =X补补 +(-Y)补补 (2)式式(2):):操作码为操作码为“减减”时,将减转换为加。时,将减转换为加。即将减数变补后与被减数相加。即将减数变补后与被减数相加。Y补补 (Y)补:补:将将Y Y补变补补变补不管不管Y Y补为正或负,将其符号连同尾补为正或负,将其符号连同尾数一起各位变反,末位加数一起各位变反,末位加1 1。现在学习的是第3页,共41页定点加减运算定点加减运算1)X=4 Y=5 X补补=0 0100 Y补补=1 1011(-Y)补补=0 01010 1001(+9补码)补码)2)X=4 Y=5 X补
3、补=1 1100 Y补补=0 0101(-Y)补补=1 10111 0111(9补码)补码)例例.求求(X Y)补补 X补补=0 0100 Y补补=1 1011 X补补=1 1100 Y补补=0 0101现在学习的是第4页,共41页注意:某数的注意:某数的补码表示补码表示与某数与某数变补变补的区别。的区别。例例.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补码表示补码表示符号位不变符号位
4、不变;0 0 0101 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
5、页,共41页定点加减运算定点加减运算算法流程算法流程操作数用补码表示,操作数用补码表示,符号位参加运算符号位参加运算结果为补码表示,符结果为补码表示,符号位指示结果正负号位指示结果正负X X补补+Y+Y补补X X补补+(-Y)+(-Y)补补ADDSUB现在学习的是第6页,共41页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
6、B送送 。加法器输出端:加法器输出端:A:打开控制门,将结打开控制门,将结 果送果送A输入端。输入端。CPCPA A:将结果打入:将结果打入A A。(2)补码加减运算器粗框)补码加减运算器粗框现在学习的是第7页,共41页溢出判断溢出判断溢出判断方法溢出判断方法在什么情况下可能产生溢出?例例.数数A A有有4 4位尾数,位尾数,1 1位符号位符号SA SA 数数B B有有4 4位尾数,位尾数,1 1位符号位符号SB SB 符号位参加运算符号位参加运算 结果符号结果符号SfSf 符号位进位符号位进位CfCf 尾数最高位进位尾数最高位进位C C现在学习的是第8页,共41页正确正确0 00110 00
7、10(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 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页,共41页溢出判断溢出判断硬件判断逻辑一硬件判断逻辑一(SA、SB与与Sf的关系)的关系)(1)A=10 B=7
8、 10+7:0 1010 0 01111 0001 (2)A=-10 B=-7 -10+(-7):0 1111 1 01101 1001溢出溢出=SASASBSBSfSfSASASfSfSBSB现在学习的是第10页,共41页溢出判断溢出判断硬件判断逻辑二硬件判断逻辑二(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 11
9、11 1 01101 1001Cf=0Cf=0C=0C=0Cf=0Cf=0C=1C=1Cf=1Cf=1C=1C=1Cf=1Cf=1C=0C=01111溢出溢出=Cf=Cf C C现在学习的是第11页,共41页溢出判断溢出判断硬件判断逻辑三(双符号位)硬件判断逻辑三(双符号位)(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第二符号位第二
10、符号位Sf2现在学习的是第12页,共41页1.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页,共41页移位操作移位操作逻辑移位逻辑移位逻
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页,共41页移位操作移位操作移位寄存器:在寄存器中移位(串行接口中)移位门:斜位传送(运算器中)D4 D3 D2 D1D4 D3 D2 右移右移左移左移 D3 D2 D1 移位寄存器移位寄存器左斜左斜 右斜右斜 4 3 1 2门门4 门门3 门门2 门门1移位门移位门加法器加法器现在学习的是第15页,共41页移位操作移位操作算
12、术移位算术移位正数补码(包括原码)移位规则0 01110 1110 2)双符号位:)双符号位:00 1110 00 0111左移左移右移右移右移右移0 0111 0 0011 左移左移左移左移右移右移右移右移01 1100 00 1110 00 0111 1)单符号位)单符号位:现在学习的是第16页,共41页移位操作移位操作3 3)移位规则)移位规则 数符不变数符不变:单:符号位不变;双:第一符号位不变单:符号位不变;双:第一符号位不变空位补空位补0:右移时第二符号位移至尾数最高位右移时第二符号位移至尾数最高位现在学习的是第17页,共41页移位操作移位操作负数补码移位规则 1)单符号位)单符号
13、位:1 10111 0110 2)双符号位:)双符号位:10 1100 11 0110左移左移右移右移右移右移1 1011 1 1101 左移左移右移右移右移右移11 0110 11 1011 现在学习的是第18页,共41页移位操作移位操作3 3)移位规则)移位规则数符不变:数符不变:单:符号位不变;双:第一符号位不变单:符号位不变;双:第一符号位不变左移空位补左移空位补0第二符号位移至尾数最高位第二符号位移至尾数最高位右移空位补右移空位补1:现在学习的是第19页,共41页移位操作移位操作易出错处(双符号位)00 1110 左左右右01 1100 正确:正确:11 0110 10 1100 0
14、0 1100 01 1100 00 0110 正确:正确:00 1110 11 1100 左左正确:正确:10 1100 11 1110 右右11 0110 正确:正确:现在学习的是第20页,共41页移位操作移位操作舍入方法舍入方法0舍1入(原码、补码)0 00100原原 1 00101原原 1 11011补补 0 0010原原 1 0011原原 1 1110补补 例例.保留保留4 4位尾数:位尾数:现在学习的是第21页,共41页移位操作移位操作舍入方法舍入方法末位恒置1(原码、补码)0 00100原原 1 11011补补 1 00101原原 0 0011原原 1 0011原原 1 1101补
15、补 1 0011原原 1 1101补补 例例.保留保留4 4位尾数:位尾数:现在学习的是第22页,共41页浮点加减运算浮点加减运算浮点数真值浮点数真值:S=+R MS=+R M E E阶码阶码Ef E1 Ef E1 Em Mf M1 Em Mf M1 Mn Mn浮点数机器格式:浮点数机器格式:尾数尾数阶符阶符数符数符R R:阶码底,隐含约定。:阶码底,隐含约定。E E:阶码,为定点整数,补码或移码表示。:阶码,为定点整数,补码或移码表示。其其位数位数决定决定数值范围数值范围;现在学习的是第23页,共41页浮点加减运算浮点加减运算M M:尾数,为定点小数,原码或补码表示。:尾数,为定点小数,原码
16、或补码表示。其其位数位数决定决定数的精度数的精度;尾数规格化:尾数规格化:1/2 M 11/2 M 1最高有效位绝对值为最高有效位绝对值为1 1数符数符表示表示数的正负数的正负。现在学习的是第24页,共41页浮点加减运算浮点加减运算步骤:步骤:检测能否简化操作对阶对阶:使两数阶码相等(小数点实际位置对齐)对阶规则:小阶向大阶对齐对阶操作:小阶阶码增大,尾数右移阶码比较:比较线路或减法判操作数是否为判操作数是否为0 0尾数为尾数为0 0阶码下溢阶码下溢现在学习的是第25页,共41页浮点加减运算浮点加减运算尾数相加减结果规格化 1)1.00011)1.0001 +0.1001 +0.10011.1
17、0101.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页,共41页浮点加减运算浮点加减运算结果规格化A AJ J-1 A-1 AJ J 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=
18、1,=1,则左规则左规:现在学习的是第27页,共41页浮点加减运算浮点加减运算结果规格化若若 A Af1f1A Af2f2=1,=1,则右规:则右规:2)00.01012)00.0101 +00.1101 +00.110101.001001.00100101.0010.0010A Af1f1A Af2f2 A AM MA AJ J+1 A+1 AJ J现在学习的是第28页,共41页浮点加减运算浮点加减运算例:例:例:例:A=(0.1101)2A=(0.1101)21 1 ,B=(-0.1010)2B=(-0.1010)23 3,求求求求X+Y=?(X+Y=?(其浮点数的格式:阶码其浮点数的格式
19、:阶码其浮点数的格式:阶码其浮点数的格式:阶码4 4位,尾数位,尾数位,尾数位,尾数6 6位,且均位,且均位,且均位,且均为双符号位的补码。为双符号位的补码。为双符号位的补码。为双符号位的补码。)解:A补=0001,00.1101 B补=0011,11.0110检测操作数是否为0对阶:求阶差E=AE补-BE补=0001-0011=1110即E=-2,将X的尾数右移二位:A补=0011,00.0011现在学习的是第29页,共41页浮点加减运算浮点加减运算尾数的加减 AMAM补补补补=00.0011 BM=00.0011 BM补补补补=11.0110=11.0110 00.0011 00.0011
20、 +11.0110 +11.0110 11.1001 11.1001 即即AAM M M M+B+BM M M M 补补=11.1001=11.1001规格化和判溢出A+B补补补补=0011,11.1001 若运算结果为非规格化的数,需左规若运算结果为非规格化的数,需左规 A+BA+B补补=0010,11.0010=0010,11.0010现在学习的是第30页,共41页浮点加减运算浮点加减运算设浮点数字长设浮点数字长16位,其中阶码位,其中阶码8位,尾数位,尾数8位,且均为双符号位的补码。求位,且均为双符号位的补码。求AB=?(1)A=11/16 2-4,B=13/16 2-3(2)A=33/
21、256,B=-63现在学习的是第31页,共41页定点乘法运算定点乘法运算 手算手算 0.11010.1101 0.1011 0.1011 11011101 1101 1101 0000 0000 1101 1101 0.100011110.10001111部分积部分积改进:将一次相加改为改进:将一次相加改为分步累加;分步累加;部分积左移一位改为累部分积左移一位改为累加和右移一位。加和右移一位。问题:问题:1 1)加的数增多)加的数增多(N(N个数,由乘数位数决定个数,由乘数位数决定)。2 2)加数的位数增多)加数的位数增多(与被乘数、乘数位数有关与被乘数、乘数位数有关)。现在学习的是第32页,
22、共41页定点乘法运算定点乘法运算每次将一位乘数所对应的部分积与原部每次将一位乘数所对应的部分积与原部分积的累加和相加,并移位。分积的累加和相加,并移位。设置寄存器:设置寄存器:A A:存放:存放部分积累加和、乘积高位部分积累加和、乘积高位 B B:存放:存放被乘数被乘数 C C:存放:存放乘数、乘积低位乘数、乘积低位 现在学习的是第33页,共41页定点乘法运算定点乘法运算例:原码一位乘法例:原码一位乘法0.11011.1011乘积:P=X Y符号:SP=SX SY设置初值 A=00.0000 B=X=00.1101 C=Y=.1011现在学习的是第34页,共41页 步数步数 条件条件 操作操作
23、 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.1101+00.11010 01 1.000100
24、0100.00.1000100011111111X X原原YY原原 =1.10001111=1.10001111现在学习的是第35页,共41页算法流程算法流程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页,共41页定点乘法运算定点乘法运算运算规则运算规则操作数、结果用原码表示绝对值运算,符号单独处理被乘数、累加和取双符号位乘数末位(Cn)为判断位,其状态决定下步操
25、作作n次循环(累加、右移)现在学习的是第37页,共41页定点除法运算定点除法运算除法除法 若干余数与除数加减、移位。若干余数与除数加减、移位。例例.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 10111011 0 00 0.0000000000.0.0.商:商:0.101100.10110余数:余数:0.1011020.101102 5实现除法的关键:实现除法的
26、关键:比较余数、除数比较余数、除数绝对值大小,以绝对值大小,以决定上商。决定上商。现在学习的是第38页,共41页定点除法运算定点除法运算如何判断够减?如何判断够减?比较逻辑电路:比较两数的大小减法试探 余数-除数=新余数如何处理符号位?如何处理符号位?如何提高除法运算速度?如何提高除法运算速度?若为正若为正:够减够减,商商1 1。若为负若为负:不够减不够减,商商0,0,方法:恢复原余数或不恢复原余数。方法:恢复原余数或不恢复原余数。现在学习的是第39页,共41页1.原码不恢复余数法(加减交替法)原码不恢复余数法(加减交替法)(1)(1)算法分析算法分析 比较两数大小用减法试探。比较两数大小用减
27、法试探。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+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页,共41页(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=00.10110 B=Y=00.11111 B=Y=00.11111 C=Q=0.00000C=Q=0.00000 -B=11.00001-B=11.00001现在学习的是第41页,共41页