计算机组成原理电子教案第3章.ppt
《计算机组成原理电子教案第3章.ppt》由会员分享,可在线阅读,更多相关《计算机组成原理电子教案第3章.ppt(78页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
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根据试商时的不同处理方式,有根据试商时的不同处理方式,有“恢复余数法恢复余数法”和和“加减交替法加减交替法”两种原码一位除法的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 组成 原理 电子 教案
限制150内