计算机组成原理电子教案第3章.ppt

上传人:wuy****n92 文档编号:91512788 上传时间:2023-05-27 格式:PPT 页数:78 大小:1.19MB
返回 下载 相关 举报
计算机组成原理电子教案第3章.ppt_第1页
第1页 / 共78页
计算机组成原理电子教案第3章.ppt_第2页
第2页 / 共78页
点击查看更多>>
资源描述

《计算机组成原理电子教案第3章.ppt》由会员分享,可在线阅读,更多相关《计算机组成原理电子教案第3章.ppt(78页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第三章第三章 运算方法和运算部件运算方法和运算部件计算机组成原理电子教案 陆 遥3.1 定点加减法运算定点加减法运算 3.1.1 补码加减法运算 3.1.2 行波进位补码加法/减法器3.2 定点乘法运算定点乘法运算 3.2.1 原码一位乘法 3.2.2 补码一位乘法 3.2.3 阵列乘法器3.3 定点除法运算定点除法运算 3.3.1 原码一位除法 3.3.2 补码一位除法 3.3.3 阵列除法器3.4 定点运算器的组成定点运算器的组成与结构与结构 3.4.1 逻辑运算与移位操作逻辑运算与移位操作 3.4.2 算术逻辑单元(ALU)的功能设计 3.4.3 定点运算器的基本结构3.5 浮点运算浮点

2、运算 3.5.1 浮点加法、减法运算 3.5.2 浮点乘法、除法运算 3.5.3 浮点运算部件3.1 定点加减法运算定点加减法运算3.1.1 补码加减法运算n计算机中均采用补码进行加减运算。计算机中均采用补码进行加减运算。n定点整数补码加、减运算规则:定点整数补码加、减运算规则:x补补+y补补=x+y补补 (mod 2n)x补补-y补补=x补补+-y补补=x-y补补 (mod 2n)n定点小数补码加、减运算规则:定点小数补码加、减运算规则:x补补+y补补=x+y补补 (mod 21)x补补-y补补=x补补+-y补补=x-y补补 (mod 21)n补码减法运算可以转换为补码加法运算,这样可补码减

3、法运算可以转换为补码加法运算,这样可以简化运算器的设计。以简化运算器的设计。【例3.1】设存放数据的寄存器为设存放数据的寄存器为8位,位,x=+1010110,y=-1001001,求,求 x+y补补。解解:首先求出:首先求出x和和y的补码的补码x补补=01010110 y补补=10110111 按补码加法规则,有按补码加法规则,有 0 1 0 1 0 1 1 0 x补补 +1 0 1 1 0 1 1 1 y补补 0 0 0 0 1 1 0 1 x+y补补 (mod 28)从运算结果来看,最高位上产生了进位从运算结果来看,最高位上产生了进位1,但在模,但在模28的作用下,该位不被保留,所以的作

4、用下,该位不被保留,所以x+y补补=00001101 (mod 28)其符号位为其符号位为0,说明和为,说明和为正数正数。【例3.2】设存放数据的寄存器为设存放数据的寄存器为8位,位,x=+1010110,y=+1101001,求,求 x-y补补。解解:首先求出:首先求出x和和y的补码的补码x补补=01010110 y补补=01101001 要将减法转换为加法,先求出要将减法转换为加法,先求出-y补补=10010111 由此可得由此可得 0 1 0 1 0 1 1 0 x补补 +1 0 0 1 0 1 1 1 -y补补 1 1 1 0 1 1 0 1 x-y补补 (mod 28)所以所以x-y

5、补补=11101101 (mod 28)从运算结果来看,符号位为从运算结果来看,符号位为1,说明差为,说明差为负数负数。【例3.3】设存放数据的寄存器为设存放数据的寄存器为8位,位,x=+1010110,y=+1001001,求,求 x+y补补。解解:首先求出:首先求出x和和y的补码的补码x补补=01010110 y补补=01001001 按补码加法规则,有按补码加法规则,有 0 1 0 1 0 1 1 0 x补补 +0 1 0 0 1 0 0 1 y补补 1 0 0 1 1 1 1 1 x+y补补 (mod 28)从运算结果来看,符号位为从运算结果来看,符号位为1,说明为负数。但由,说明为负

6、数。但由于于x、y均为正数,其和不可能为负数。究竟是什均为正数,其和不可能为负数。究竟是什么原因造成这样的错误呢?么原因造成这样的错误呢?n补码是有一定的数据表示范围的;当两个数的补补码是有一定的数据表示范围的;当两个数的补码相加(减),其和(差)超出特定位数的补码码相加(减),其和(差)超出特定位数的补码所能表示的数据范围时,称为所能表示的数据范围时,称为“溢出溢出”。“溢出溢出”表现为,数的最高有效数字位表现为,数的最高有效数字位占据并改变了数占据并改变了数的符号位的符号位,从而造成数据表示的错误。,从而造成数据表示的错误。n补码加减运算必须检测运算结果的补码加减运算必须检测运算结果的“溢

7、出溢出”状态,状态,并将检测结果反馈给处理器。并将检测结果反馈给处理器。n几种常用的几种常用的“溢出溢出”检测方法:检测方法:根据运算结果的符号与运算数据的符号之间的根据运算结果的符号与运算数据的符号之间的关系检测关系检测“溢出溢出”。设。设 x补补=xn-1 xn-2 x1 x0 y补补=yn-1 yn-2 y1 y0 x+y补补=sn-1 sn-2 s1 s0 其中,其中,xn-1、yn-1 和和 sn-1 分别为分别为 x补补、y补补 和和 x+y补补 的符号位。以的符号位。以V 表示表示“溢出溢出”状态,则有状态,则有 根据根据变形补码变形补码两个符号位之间的关系检测两个符号位之间的关

8、系检测“溢溢出出”。变形补码是具有两个符号位的补码;正数。变形补码是具有两个符号位的补码;正数的变形补码,其两个符号位为的变形补码,其两个符号位为00,负数的变形补,负数的变形补码,其两个符号位为码,其两个符号位为11。【例3.4】设设x=+1010110,y=+1001001,用变形,用变形补码求补码求 x+y补补。解:首先求出:首先求出x和和y的变形补码的变形补码x补补=001010110 y补补=001001001 则有则有 0 0 1 0 1 0 1 1 0 x补补 +0 0 1 0 0 1 0 0 1 y补补 0 1 0 0 1 1 1 1 1 x+y补补 (mod 29)当变形补码

9、产生溢出时,数的最高有效数字位会当变形补码产生溢出时,数的最高有效数字位会占据并改变两个符号位中的低位,但两个符号位占据并改变两个符号位中的低位,但两个符号位中的高位不会受到影响;因此,中的高位不会受到影响;因此,变形补码两个符变形补码两个符号位中的高位总能表示数的正确符号号位中的高位总能表示数的正确符号。变形补码检测变形补码检测“溢出溢出”的方法:设的方法:设x+y补补用变形用变形补码一般表示为补码一般表示为x+y补补=sn sn-1 sn-2 s1 s0 则有则有 按补码相加时最高有效数字位产生的进位与符按补码相加时最高有效数字位产生的进位与符号位产生的进位之间的关系检测号位产生的进位之间

10、的关系检测“溢出溢出”。设最。设最高有效数字位产生的进位为高有效数字位产生的进位为CMSB,符号位产生的,符号位产生的进位为进位为CS,则有,则有 以上三种检测方式对应的检测电路如下图所示以上三种检测方式对应的检测电路如下图所示3.1.2 行波进位补码加法/减法器n由于补码减法可以转换成补码加法进行,因此,由于补码减法可以转换成补码加法进行,因此,补码加法补码加法/减法器的主体是加法器。构成加法器的减法器的主体是加法器。构成加法器的主要器件是主要器件是全加器全加器;一个全加器是实现带进位的;一个全加器是实现带进位的1位加法的器件。位加法的器件。n根据二进制加法运算的特点,有根据二进制加法运算的

11、特点,有n将多个全加器按进位相联的方式级联起来,即可将多个全加器按进位相联的方式级联起来,即可构造一个单纯的多位补码加法器。构造一个单纯的多位补码加法器。n对减法,由于对减法,由于A补补-B补补=A补补+-B补补,且,且 因此,可以在做减法时,先求得因此,可以在做减法时,先求得-B补补,再送入,再送入加法器相加;而在做加法时不做这种转换,直接加法器相加;而在做加法时不做这种转换,直接使用使用B补补相加。这样,就得到了补码加法相加。这样,就得到了补码加法/减法器。减法器。n下图是一个下图是一个n位的行波进位补码加法位的行波进位补码加法/减法器减法器3.2 定点乘法运算定点乘法运算3.2.1 原码

12、一位乘法n当两个用原码表示的数相乘时,可以用其数字部当两个用原码表示的数相乘时,可以用其数字部分直接相乘,得到乘积的数字部分,而乘积的符分直接相乘,得到乘积的数字部分,而乘积的符号取两个数符号的异或值即可。号取两个数符号的异或值即可。n设设x=1010,y=1101,则人工计算,则人工计算x y的过程是的过程是 1 0 1 0 1 1 0 1 1 0 1 0 0 0 0 0 1 0 1 0 1 0 1 0 1 0 0 0 0 0 1 0n在计算机中,部分积可用乘数的在计算机中,部分积可用乘数的1位与被乘数的每位与被乘数的每一位按一位按“逻辑与逻辑与”运算求得;部分积相加需要按运算求得;部分积相

13、加需要按累加方式进行;部分积累加时的数位偏移,可采累加方式进行;部分积累加时的数位偏移,可采用移位技术实现。由此,可以归纳出计算机执行用移位技术实现。由此,可以归纳出计算机执行二进制乘法的步骤如下:二进制乘法的步骤如下:其中,第一个部分积是与其中,第一个部分积是与0累加。累加。n原码一位乘法的逻辑电路框图原码一位乘法的逻辑电路框图最终,积的低位部分在最终,积的低位部分在R1中,高位部分在中,高位部分在R0中,积中,积的符号(的符号(zs)则是)则是x和和y的符号(的符号(xs和和ys)的)的“异或异或”。3.2.2 补码一位乘法n补码一位乘法可按布斯(补码一位乘法可按布斯(Booth)公式进行

14、。)公式进行。n设有设有n位补码位补码 x补补=xn-1 xn-2 x1 x0 y补补=yn-1 yn-2 y1 y0 y-1 其中,其中,xn-1 和和yn-1 是是x补补 和和y补补 的符号位,的符号位,y-1 是是给给y补补 添加的一个附加位,且添加的一个附加位,且y-1=0,则布斯公,则布斯公式为式为n由布斯公式导出的布斯算法流程图如下由布斯公式导出的布斯算法流程图如下 【例3.5】设设x=+101101,y=-110010,用布斯算法求,用布斯算法求x y补补。解:x补补=0101101,-x补补=1010011,y补补=1001110,y-1=0。计。计算算 过程如下:过程如下:A

15、 Y Y0 Y-1 说说 明明 0 0 0 0 0 0 0 1 0 0 1 1 1 0 0 A、Y、Y-1的初始状态,的初始状态,Y0Y-1=00 0 0 0 0 0 0 0 0 1 0 0 1 1 1 0 A、Y、Y-1算术右移算术右移1位,位,Y0Y-1=10 +1 0 1 0 0 1 1 A A-X(即(即A A+-x补补)1 0 1 0 0 1 1 0 1 0 0 1 1 1 0 1 1 0 1 0 0 1 1 0 1 0 0 1 1 1 A、Y、Y-1算术右移算术右移1位,位,Y0Y-1=11 1 1 1 0 1 0 0 1 1 0 1 0 0 1 1 A、Y、Y-1算术右移算术右移

16、1位,位,Y0Y-1=11 1 1 1 1 0 1 0 0 1 1 0 1 0 0 1 A、Y、Y-1算术右移算术右移1位,位,Y0Y-1=01 +0 1 0 1 1 0 1 A A+X(即(即A A+x补补)0 1 0 0 1 1 1 0 1 1 0 1 0 0 1 0 0 1 0 0 1 1 1 0 1 1 0 1 0 0 A、Y、Y-1算术右移算术右移1位,位,Y0Y-1=00 0 0 0 1 0 0 1 1 1 0 1 1 0 1 0 A、Y、Y-1算术右移算术右移1位,位,Y0Y-1=10 +1 0 1 0 0 1 1 A A-X(即(即A A+-x补补)1 0 1 1 1 0 0

17、1 1 0 1 1 0 1 0 1 1 0 1 1 1 0 0 1 1 0 1 1 0 1 A、Y、Y-1最后算术右移最后算术右移1位位 因此,计算结果为因此,计算结果为x y补补=11011100110110 真值为真值为x y=-100011001010n图图3.5是针对定点整数补码乘法的布斯算法,如为是针对定点整数补码乘法的布斯算法,如为定点小数补码乘法,则最后一步时,不应再做算定点小数补码乘法,则最后一步时,不应再做算术右移,而乘积中也不包含术右移,而乘积中也不包含Y寄存器的最低位寄存器的最低位Y0(或者也可将(或者也可将Y0 清零)。清零)。n一位乘法是一种全串行的乘法方法,运算速度

18、慢。一位乘法是一种全串行的乘法方法,运算速度慢。3.2.3 阵列乘法器n阵列乘法器具有一定的并行工作特征,属于并行阵列乘法器具有一定的并行工作特征,属于并行乘法器。乘法器。1无符号数阵列乘法器无符号数阵列乘法器n设设X和和Y是两个是两个n位无符号二进制数位无符号二进制数 X=xn-1 xn-2 x1 x0 Y=yn-1 yn-2 y1 y0 若以若以X为被乘数,为被乘数,Y为乘数,则可以采用下图所示为乘数,则可以采用下图所示的的部分积产生电路部分积产生电路同时求得同时求得n个部分积。个部分积。n对部分积相加则采用一个对部分积相加则采用一个乘法阵列乘法阵列来完成。下图来完成。下图所示为实现两个所

19、示为实现两个5位无符号二进制数相乘的乘法阵位无符号二进制数相乘的乘法阵列逻辑电路图。列逻辑电路图。n设设x=10110,y=11001,用阵列求,用阵列求x yn将部分积产生电路与乘法阵列相连接,就得到完将部分积产生电路与乘法阵列相连接,就得到完整的无符号数阵列乘法器。整的无符号数阵列乘法器。n对对n位无符号数乘法而言,阵列乘法器的运算速度位无符号数乘法而言,阵列乘法器的运算速度是一位乘法器的大约是一位乘法器的大约n/4倍。倍。1有符号数阵列乘法器有符号数阵列乘法器n如有符号数采用如有符号数采用原码原码表示,在相乘时,可将被乘表示,在相乘时,可将被乘数和乘数的数字部分看作无符号数,直接送入无数

20、和乘数的数字部分看作无符号数,直接送入无符号数阵列乘法器进行运算,而乘积的符号则由符号数阵列乘法器进行运算,而乘积的符号则由两数的符号经逻辑两数的符号经逻辑“异或异或”产生。产生。n如有符号数采用如有符号数采用补码补码表示,一种方法是,先将被表示,一种方法是,先将被乘数和乘数转换成原码,然后送入原码阵列乘法乘数和乘数转换成原码,然后送入原码阵列乘法器进行运算,最后再将乘积由原码转换成补码,器进行运算,最后再将乘积由原码转换成补码,即构造一种即构造一种间接补码阵列乘法器间接补码阵列乘法器;另一种方法则;另一种方法则是直接采用补码相乘,即构造是直接采用补码相乘,即构造直接补码阵列乘法直接补码阵列乘

21、法器器。n对间接补码阵列乘法器,需要设计原码与补码之对间接补码阵列乘法器,需要设计原码与补码之间的转换电路。间的转换电路。一种有效的转换方法是一种有效的转换方法是:正数无:正数无需转换;对负数转换时,符号位保持不变,数字需转换;对负数转换时,符号位保持不变,数字部分从最低位向高位方向寻找第一个部分从最低位向高位方向寻找第一个“1”,该位,该位“1”及其以右的低位数字保持不变,以左的高位及其以右的低位数字保持不变,以左的高位数字则按位取反。数字则按位取反。n下图所示为实现下图所示为实现n位补码相乘的间接补码阵列乘法位补码相乘的间接补码阵列乘法器组成框图。器组成框图。注意注意:符号位必须参与转换。

22、:符号位必须参与转换。3.3 定点除法运算定点除法运算3.3.1 原码一位除法n原码除法以原码表示被除数与除数,以它们的数原码除法以原码表示被除数与除数,以它们的数字部分(相当于绝对值或无符号数)相除,商的字部分(相当于绝对值或无符号数)相除,商的符号为两数符号的逻辑符号为两数符号的逻辑“异或异或”,余数的符号则,余数的符号则总是与被除数符号相同。总是与被除数符号相同。n计算机中的定点除法运算规定,计算机中的定点除法运算规定,被除数的位数应被除数的位数应是除数位数的两倍是除数位数的两倍。当被除数的每一位都参加运当被除数的每一位都参加运算后,运算即结束算后,运算即结束。n定点除法运算的结果包含两

23、个部分:定点除法运算的结果包含两个部分:商商和和余数余数。n在被除数与除数以绝对值相除时,若第一次上的在被除数与除数以绝对值相除时,若第一次上的商为商为1,则除法出错,称为,则除法出错,称为“除法溢出除法溢出”。n以下是人工进行无符号数除法运算的基本过程:以下是人工进行无符号数除法运算的基本过程:设被除数设被除数x和除数和除数y 分别为分别为x=11001,y=111,为,为了使被除数的位数达到除数位数的两倍,在了使被除数的位数达到除数位数的两倍,在x的最的最高位添高位添1个个0,得,得x=011001。除法运算过程如下:。除法运算过程如下:0 0 1 1 商商1 1 1 0 1 1 0 0

24、1 -1 1 1 首次试商,不够减,上商首次试商,不够减,上商0,不减除数,不减除数 0 1 1 0 0 1 r0 部分余数部分余数r0 -0 1 1 1 除数右移除数右移1位试商,不够减,上商位试商,不够减,上商0,不减除数,不减除数 0 1 1 0 0 1 r1 部分余数部分余数r1 -0 0 1 1 1 除数右移除数右移1位试商,够减,上商位试商,够减,上商1,减除数,减除数 0 0 1 0 1 1 r2 部分余数部分余数r2 -0 0 0 1 1 1 除数右移除数右移1位试商,够减,上商位试商,够减,上商1,减除数,减除数 0 0 0 1 0 0 r3 除法结束,部分余数除法结束,部分

25、余数r3也就是最终的余数也就是最终的余数n以上除法运算过程可以描述为以上除法运算过程可以描述为 直到被除数的每一位均参与了运算为止。直到被除数的每一位均参与了运算为止。n计算机做除法时,是根据试商时部分余数的正负计算机做除法时,是根据试商时部分余数的正负性来判断是否够减,并以此决定上商的。因此,性来判断是否够减,并以此决定上商的。因此,需要给被除数和除数的数字部分都添加一个符号需要给被除数和除数的数字部分都添加一个符号位,并设置为正号(位,并设置为正号(“0”)。)。n根据试商时的不同处理方式,有根据试商时的不同处理方式,有“恢复余数法恢复余数法”和和“加减交替法加减交替法”两种原码一位除法的

26、方法。两种原码一位除法的方法。n恢复余数法恢复余数法始终采用减除数试商,其思想是:当始终采用减除数试商,其思想是:当减除数试商得到部分余数为正时,上商减除数试商得到部分余数为正时,上商1,部分余,部分余数正确;当出现部分余数为负时,上商数正确;当出现部分余数为负时,上商0,然后在,然后在错误的部分余数上再加上除数,使部分余数恢复错误的部分余数上再加上除数,使部分余数恢复正常。正常。n加减交替法加减交替法的思想是:首次试商采用减除数试商;的思想是:首次试商采用减除数试商;当部分余数为正时,上商当部分余数为正时,上商1,下次试商采用减除数,下次试商采用减除数试商;当部分余数为负时,上商试商;当部分

27、余数为负时,上商0,不恢复余数,不恢复余数,但在下次试商时采用加除数试商。但在下次试商时采用加除数试商。【例3.6】设设x原原=0.101001,y原原=1.111。用恢复余数法求。用恢复余数法求xy。解:分别以:分别以 x和和 y表示表示 x 和和 y 的数字部分,并添加正号的数字部分,并添加正号0,则有,则有x=0.101001,y=0.111 考虑到计算机把减法变成加法来计算的特点,减除数考虑到计算机把减法变成加法来计算的特点,减除数 y试商时,实际试商时,实际上是在加上是在加-y补补,因此给出,因此给出-y补补=1.001。运算过程如下:。运算过程如下:0.1 0 1 0 0 1 +1

28、.0 0 1 减减 y试商试商 1.1 1 0 0 0 1 符号为符号为1,部分余数为负,上商,部分余数为负,上商 0 +0.1 1 1 加加 y,恢复余数恢复余数 0.1 0 1 0 0 1 +1.1 0 0 1 y右移右移1位,减位,减 y试商试商 0.0 0 1 1 0 1 符号为符号为0,部分余数为正,上商,部分余数为正,上商 1 +1.1 1 0 0 1 y右移右移1位,减位,减 y试商试商 1.1 1 1 1 1 1 符号为符号为1,部分余数为负,上商,部分余数为负,上商 0 +0.0 0 1 1 1 加加 y,恢复余数恢复余数 0.0 0 1 1 0 1 +1.1 1 1 0 0

29、 1 y右移右移1位,减位,减 y试商试商 0.0 0 0 1 1 0 符号为符号为0,部分余数为正,上商,部分余数为正,上商 1,运算结束,运算结束 第一次上商为第一次上商为0,故未产生除法溢出,运算结果正确。商的数字部分,故未产生除法溢出,运算结果正确。商的数字部分 为为0.101,余数的数字部分为,余数的数字部分为0.000110。由于。由于 x 与与 y 异号,且异号,且 x 为正,为正,故得商故得商=-0.101,余数,余数=+0.000110,表示成原码为,表示成原码为商商原原=1.101,余数余数原原=0.000110 【例3.7】仍设仍设x原原=0.101001,y原原=1.1

30、11。用加减交替法求。用加减交替法求 xy。解:分别以:分别以 x和和 y表示表示 x 和和 y 的数字部分,并添加正号的数字部分,并添加正号0,则有,则有x=0.101001,y=0.111,-y补补=1.001 0.1 0 1 0 0 1 +1.0 0 1 首次试商,采用减首次试商,采用减 y试商试商 1.1 1 0 0 0 1 符号为符号为1,部分余数为负,上商,部分余数为负,上商 0 +0.0 1 1 1 不恢复余数,不恢复余数,y右移右移1位,加位,加 y试商试商 0.0 0 1 1 0 1 符号为符号为0,部分余数为正,上商,部分余数为正,上商 1 +1.1 1 0 0 1 y右移

31、右移1位,减位,减 y试商试商 1.1 1 1 1 1 1 符号为符号为1,部分余数为负,上商,部分余数为负,上商 0 +0.0 0 0 1 1 1 不恢复余数,不恢复余数,y右移右移1位,加位,加 y 试商试商 0.0 0 0 1 1 0 符号为符号为0,部分余数为正,上商,部分余数为正,上商 1,运算结束,运算结束 【例3.8】设设x原原=00111,y原原=011。用加减交替法求。用加减交替法求 xy。解:分别以:分别以 x和和 y表示表示 x 和和 y 的数字部分,并添加正号的数字部分,并添加正号0,则有,则有x=00111,y=011,-y补补=101。0 0 1 1 1 +1 0

32、1 首次试商,采用减首次试商,采用减 y试商试商 1 1 0 1 1 符号为符号为1,部分余数为负,上商,部分余数为负,上商 0 +0 0 1 1 不恢复余数,不恢复余数,y右移右移1位,加位,加 y试商试商 0 0 0 0 1 符号为符号为0,部分余数为正,上商,部分余数为正,上商 1 +1 1 1 0 1 y右移右移1位,减位,减 y试商试商 1 1 1 1 0 符号为符号为1,部分余数为负,上商,部分余数为负,上商 0,运算结束,运算结束 第一次上商为第一次上商为0,故未产生除法溢出,运算结果正确,故未产生除法溢出,运算结果正确,商商原原=010。由于由于最后一次部分余数为负最后一次部分

33、余数为负,故还需做一次恢复余数的运算故还需做一次恢复余数的运算,即再加,即再加上上00011,得正确的部分余数为,得正确的部分余数为00001;因为是整数除法,且;因为是整数除法,且x为正,为正,故最终余数为故最终余数为+01,余数余数原原=001。n下面通过将加减交替法与恢复余数法对比的方式,来证明下面通过将加减交替法与恢复余数法对比的方式,来证明加减交替法的正确性。加减交替法的正确性。设除数为设除数为y,运算过程中采用除数右移方式。当部分余数,运算过程中采用除数右移方式。当部分余数为正时,两种方法的处理过程是相同的;若第为正时,两种方法的处理过程是相同的;若第i次试商所得次试商所得的部分余

34、数的部分余数ri为负,对恢复余数法,处理过程是:为负,对恢复余数法,处理过程是:上商上商0;恢复余数:恢复余数:ri+y;除数右移:除数右移:y2-1;(右移;(右移1位相当于除以位相当于除以2)第第i+1次减除数试商,得:次减除数试商,得:ri+1=(ri+y)-y2-1=ri+y2-1。对加减交替法,处理过程是:对加减交替法,处理过程是:上商上商0;除数右移:除数右移:y2-1;第第i+1次采用加除数试商,得:次采用加除数试商,得:ri+1=ri+y2-1。3.3.2 补码一位除法n补码除法采用补码直接相除,即从补码除法采用补码直接相除,即从x补补 和和y补补 直接求直接求xy补补。同样要

35、求被除数的数字部分位。同样要求被除数的数字部分位数是除数的两倍。数是除数的两倍。n在不产生除法溢出的前提下,补码加减交替法的在不产生除法溢出的前提下,补码加减交替法的运算规则如下:运算规则如下:第一次试商时,若被除数与除数同号,则减除第一次试商时,若被除数与除数同号,则减除数试商,否则加除数试商;若试商所得部分余数数试商,否则加除数试商;若试商所得部分余数与除数同号,则上商与除数同号,则上商1,否则上商,否则上商0。这是第一次。这是第一次上的商,也就是最终商的符号位。(如果在被除上的商,也就是最终商的符号位。(如果在被除数与除数同号时,商的符号位为数与除数同号时,商的符号位为1,或在被除数与,

36、或在被除数与除数异号时,商的符号位为除数异号时,商的符号位为0,均产生除法溢出。),均产生除法溢出。)求商的数字部分时,先将除数右移求商的数字部分时,先将除数右移1位,如果上位,如果上次上商次上商1,则减除数试商,否则加除数试商;若试,则减除数试商,否则加除数试商;若试商所得部分余数与除数同号,则上商商所得部分余数与除数同号,则上商1。否则上商。否则上商0。重复。重复,直到被除数每一位均参加运算为止。,直到被除数每一位均参加运算为止。当除不尽时,若商为负,则需对商加当除不尽时,若商为负,则需对商加1修正;若修正;若商为正,则无需修正。当正好除尽时,若除数为商为正,则无需修正。当正好除尽时,若除

37、数为负,则需对商加负,则需对商加1修正;若除数为正,则无需修正。修正;若除数为正,则无需修正。若最后一次试商所得部分余数与被除数同号,若最后一次试商所得部分余数与被除数同号,则余数正确,否则需要恢复余数。恢复余数是一则余数正确,否则需要恢复余数。恢复余数是一个余数回溯的过程,可能需要连续多次回溯,才个余数回溯的过程,可能需要连续多次回溯,才能将余数恢复到与被除数同号。能将余数恢复到与被除数同号。【例3.9】设设x补补=1.0111,y补补=0.1101。用补码加减交替法求。用补码加减交替法求xy补补 解:将被除数的数字位数扩展到除数的两倍,有:将被除数的数字位数扩展到除数的两倍,有 x补补=1

38、.01110000,并按加减交替法的需要,给出并按加减交替法的需要,给出-y补补=1.0011。运算过程如下:。运算过程如下:1.0 1 1 1 0 0 0 0 +0.1 1 0 1 x 与与 y 异号,第一次加除数试商异号,第一次加除数试商 0.0 1 0 0 0 0 0 0 部分余数与除数同号,上商部分余数与除数同号,上商1,即商的符号位为,即商的符号位为1 +1.1 0 0 1 1 除数右移除数右移1位,上次上商位,上次上商1,本次减除数试商,本次减除数试商 1.1 1 0 1 1 0 0 0 部分余数与除数异号,上商部分余数与除数异号,上商0 +0.0 0 1 1 0 1 除数右移除数

39、右移1位,上次上商位,上次上商0,本次加除数试商,本次加除数试商 0.0 0 0 0 1 1 0 0 部分余数与除数同号,上商部分余数与除数同号,上商1 +1.1 1 1 0 0 1 1 除数右移除数右移1位,上次上商位,上次上商1,本次减除数试商,本次减除数试商 1.1 1 1 1 0 0 1 0 部分余数与除数异号,上商部分余数与除数异号,上商0 +0.0 0 0 0 1 1 0 1 除数右移除数右移1位,上次上商位,上次上商0,本次加除数试商,本次加除数试商 1.1 1 1 1 1 1 1 1 部分余数与除数异号,上商部分余数与除数异号,上商0,运算结束,运算结束 最后一次部分余数与被除

40、数同号,余数正确;余数不为最后一次部分余数与被除数同号,余数正确;余数不为0,未除尽,未除尽,且商为负,商需加且商为负,商需加1修正,即修正,即1.0100+1=1.0101。故得。故得商商补补=1.0101,余数余数补补=1.111111111【例【例3.10】设设x补补=0.0100,y补补=0.1000。用补码加减交替法求。用补码加减交替法求xy补补 解:将被除数的数字位数扩展到除数的两倍,有:将被除数的数字位数扩展到除数的两倍,有x补补=0.01000000,并按加减交替法的需要,给出并按加减交替法的需要,给出-y补补=1.1000。运算过程如下:。运算过程如下:0.0 1 0 0 0

41、 0 0 0 +1.1 0 0 0 x 与与 y 同号,第一次减除数试商同号,第一次减除数试商 1.1 1 0 0 0 0 0 0 部分余数与除数异号,上商部分余数与除数异号,上商0,即商的符号位为,即商的符号位为0 +0.0 1 0 0 0 除数右移除数右移1位,上次上商位,上次上商0,本次加除数试商,本次加除数试商 0.0 0 0 0 0 0 0 0 部分余数与除数同号,上商部分余数与除数同号,上商1 +1.1 1 1 0 0 0 除数右移除数右移1位,上次上商位,上次上商1,本次减除数试商,本次减除数试商 1.1 1 1 0 0 0 0 0 部分余数与除数异号,上商部分余数与除数异号,上

42、商0 +0.0 0 0 1 0 0 0 除数右移除数右移1位,上次上商位,上次上商0,本次加除数试商,本次加除数试商 1.1 1 1 1 0 0 0 0 部分余数与除数异号,上商部分余数与除数异号,上商0 +0.0 0 0 0 1 0 0 0 除数右移除数右移1位,上次上商位,上次上商0,本次加除数试商,本次加除数试商 1.1 1 1 1 1 0 0 0 部分余数与除数异号,上商部分余数与除数异号,上商0,运算结束,运算结束 最后一次部分余数与被除数异号,余数错误,需要恢复余数,整个过最后一次部分余数与被除数异号,余数错误,需要恢复余数,整个过 程需要程需要3次回溯,才能将余数恢复到与被除数同

43、号,即:次回溯,才能将余数恢复到与被除数同号,即:(1.11111000-0.00001000)-0.0001000)-1.111000)=(1.11111000+1.11111000)+1.1111000)+0.001000)=0.00000000 可见,最终余数为可见,最终余数为0,说明除尽,并且除数为正,商无需修正,故得,说明除尽,并且除数为正,商无需修正,故得商商补补=0.1000,余数余数补补=0.00000000n下面的例下面的例3.11与例与例3.10中的除数相等,但被除数符中的除数相等,但被除数符号相反,其最终的商和余数的绝对值发生了明显号相反,其最终的商和余数的绝对值发生了明

44、显的改变。这是补码除法与原码除法之间的差异。的改变。这是补码除法与原码除法之间的差异。【例3.11】设设x补补=1.1100,y补补=0.1000。用补码加减交替法求。用补码加减交替法求xy补补 解:将被除数的数字位数扩展到除数的两倍,有解:将被除数的数字位数扩展到除数的两倍,有x补补=1.11000000并按加减交替法的需要,给出并按加减交替法的需要,给出-y补补=1.1000。运算过程如下:。运算过程如下:1.1 1 0 0 0 0 0 0 +0.1 0 0 0 x 与与 y 异号,第一次加除数试商异号,第一次加除数试商 0.0 1 0 0 0 0 0 0 部分余数与除数同号,上商部分余数

45、与除数同号,上商1,即商的符号位为,即商的符号位为1 +1.1 1 0 0 0 除数右移除数右移1位,上次上商位,上次上商1,本次减除数试商,本次减除数试商 0.0 0 0 0 0 0 0 0 部分余数与除数同号,上商部分余数与除数同号,上商1 +1.1 1 1 0 0 0 除数右移除数右移1位,上次上商位,上次上商1,本次减除数试商,本次减除数试商 1.1 1 1 0 0 0 0 0 部分余数与除数异号,上商部分余数与除数异号,上商0 +0.0 0 0 1 0 0 0 除数右移除数右移1位,上次上商位,上次上商0,本次加除数试商,本次加除数试商 1.1 1 1 1 0 0 0 0 部分余数与

46、除数异号,上商部分余数与除数异号,上商0 +0.0 0 0 0 1 0 0 0 除数右移除数右移1位,上次上商位,上次上商0,本次加除数试商,本次加除数试商 1.1 1 1 1 1 0 0 0 部分余数与除数异号,上商部分余数与除数异号,上商0,运算结束,运算结束 最后一次部分余数与被除数同号,余数正确;余数不为最后一次部分余数与被除数同号,余数正确;余数不为0,未除尽,未除尽,且商为负,商需加且商为负,商需加1修正,即修正,即1.1000+1=1.1001。故得。故得商商补补=1.1001,余数余数补补=1.111110003.3.3 阵列除法器n原码加减交替法阵列原码加减交替法阵列除法器要

47、求被除数与除法器要求被除数与除数均以正数表示,除数均以正数表示,商和余数的符号另行商和余数的符号另行处理。由于试商时,处理。由于试商时,既有减除数试商,也既有减除数试商,也有加除数试商,因此,有加除数试商,因此,每次试商都要用到加每次试商都要用到加/减法器。构成加减法器。构成加/减法减法器的基本电路称为可器的基本电路称为可控加控加/减(减(CAS)单元。)单元。n设被除数的数字位数为设被除数的数字位数为6位,除数的数字位数为位,除数的数字位数为3位,则对应规模的阵列除法器如下图所示。位,则对应规模的阵列除法器如下图所示。n设设 x=+0.101001,y=+0.111。在阵列除法器上计。在阵列

48、除法器上计算算 xy,得:商,得:商=+0.101,余数,余数=+0.000110。3.4 定点运算器的组成与结构定点运算器的组成与结构n定点运算器不仅要有定点算术运算的功能,还要定点运算器不仅要有定点算术运算的功能,还要具有逻辑运算、移位操作等功能。具有逻辑运算、移位操作等功能。3.4.1 逻辑运算与移位操作逻辑运算与移位操作n逻辑运算是计算机进行判断、实现控制等操作的逻辑运算是计算机进行判断、实现控制等操作的重要手段。重要手段。1逻辑非逻辑非n“逻辑非逻辑非”运算也称运算也称“非非”运算,其逻辑表达式运算,其逻辑表达式为为“非非”逻辑真值表逻辑真值表AF0110 2逻辑加逻辑加n“逻辑加逻

49、辑加”运算也称运算也称“或或”运算,其逻辑表达式运算,其逻辑表达式为为“或或”逻辑真值表逻辑真值表 ABF000011101111n计算机中常用的计算机中常用的“或或”运算规则为运算规则为 ,(x=0,1)3逻辑乘逻辑乘n“逻辑乘逻辑乘”运算也称运算也称“与与”运算,其逻辑表达式运算,其逻辑表达式为为“与与”逻辑真值表逻辑真值表n计算机中常用的计算机中常用的“与与”运算规则为运算规则为 ,(x=0,1)ABF000010100111 4逻辑异逻辑异n“逻辑异逻辑异”运算也称运算也称“异或异或”运算,其逻辑表达运算,其逻辑表达式为式为“异或异或”逻辑真值表逻辑真值表n计算机中常用的计算机中常用的

50、“异或异或”运算规则为运算规则为 ,(x=0,1)ABF000011101110n各类各类移位操作移位操作3.4.2 算术逻辑单元(ALU)的功能设计n算术逻辑单元(算术逻辑单元(ALU)是组成运算器的核心器是组成运算器的核心器件,其主要功能是执行件,其主要功能是执行定点数算术加定点数算术加/减法运算减法运算及各种逻辑运算。早期及各种逻辑运算。早期的乘法器和除法器也以的乘法器和除法器也以ALU为主,配合移位寄为主,配合移位寄存器等辅助电路构成。存器等辅助电路构成。n下面以一种下面以一种4位多功能位多功能ALU芯片芯片74181为例,为例,说明多功能说明多功能ALU的设计的设计方法。方法。n全加

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

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁