《计算机组成原理(第二版)》 第7章 运算方法和运算器

上传人:E**** 文档编号:89409339 上传时间:2019-05-24 格式:PPT 页数:80 大小:1.99MB
返回 下载 相关 举报
《计算机组成原理(第二版)》 第7章 运算方法和运算器_第1页
第1页 / 共80页
《计算机组成原理(第二版)》 第7章 运算方法和运算器_第2页
第2页 / 共80页
《计算机组成原理(第二版)》 第7章 运算方法和运算器_第3页
第3页 / 共80页
《计算机组成原理(第二版)》 第7章 运算方法和运算器_第4页
第4页 / 共80页
《计算机组成原理(第二版)》 第7章 运算方法和运算器_第5页
第5页 / 共80页
点击查看更多>>
资源描述

《《计算机组成原理(第二版)》 第7章 运算方法和运算器》由会员分享,可在线阅读,更多相关《《计算机组成原理(第二版)》 第7章 运算方法和运算器(80页珍藏版)》请在金锄头文库上搜索。

1、2019年5月24日星期五,2019年5月24日星期五,第七章 运算方法和运算器,重点内容: 定点算术运算; 浮点算术运算; 逻辑运算; 算术/逻辑单元(ALU)。,2019年5月24日星期五,7.1 定点加减法运算,要进行加减法运算首先面临的一个问题就是编码的选择问题,是选择原码还是补码? 用原码进行加减运算时,数值部分和符号部分要分别处理,操作不方便。 计算机中广泛采用补码进行定点加减运算。 符号同数值一同运算,一次运算同时获得结果的符号和数值; 使用补码可使减法运算变为加法运算,运算器里只需要一个加法器就可以了。,2019年5月24日星期五,7.1.1 补码加法,负数用补码表示后,就可以

2、和正数一样来处理,运算器里只需要一个加法器,不必为了负数的加法运算,再配一个减法器。 补码加法运算前将X和Y分别用补码形式表示,运算后得到XY的补码形式,即由X补、Y补求X Y补。 补码加法公式: X Y补 X补 Y补,2019年5月24日星期五,7.1 定点加减法运算,4位定点整数补码加法运算的具体实例,2019年5月24日星期五,7.1.2 补码减法,补码减法运算前X和Y分别用补码形式表示,运算后得到XY的补码形式,即由X补、Y补求X Y补。 补码减法公式: X Y补 X补 Y补,2019年5月24日星期五,7.1.2 补码减法,4位定点整数补码减法运算的具体实例,2019年5月24日星期

3、五,7.1 定点加减法运算,补码加减法规则 参加运算的操作数用补码表示。 补码的符号位与数值位同时进行加运算。 若做加,则两数补码直接相加;若做减,将减数补码连同符号位一起按位取反,末位加1,然后再与被减数相加。 运算结果即为和/差的补码。,2019年5月24日星期五,7.1.3 溢出,加减法运算溢出,2019年5月24日星期五,7.1.3 溢出,溢出是指运算结果超过了机器数能表示的范围。 两个正数相加,结果大于机器所能表示的最大正数,称为上溢。 两个负数相加,结果小于机器所能表示的最小负数,称为下溢。 在图7-3中,第一个算式发生了上溢,而第二个算式发生了下溢。,2019年5月24日星期五,

4、溢出检测方法一 双符号位法(“变形补码”或“模4补码” ) 任何正数,两个符号位都是0,任何负数,两个符号位都是1,两个数相加后,其结果的符号位出现01或10两种组合时,表示发生溢出。,7.1.3 溢出,2019年5月24日星期五,溢出检测方法二 单符号位法 当最高有效位产生进位而符号位无进位时,产生上溢 当最高有效位无进位而符号位有进位时,产生下溢 溢出逻辑表达式为 其中 为符号位产生的进位 为最高有效位产生的进位 此逻辑表达式也可用异或门实现,7.1.3 溢出,2019年5月24日星期五,7.1.4 基本的加/减法器,2019年5月24日星期五,7.2 定点乘法运算,计算机中乘除法的主要实

5、现方式有: 软件实现,指令系统中无乘除法指令。 经常用在乘法使用很少的计算机中,如一些功能简单的单片机。优点是无需额外硬件支持,缺点是乘除法运算速度慢。 在加/减法器的基础上,增加左移、右移位及其他一些逻辑线路实现乘法,指令系统中设置乘除法指令。 微型或小型计算机普遍采用这种方式,因为只需增加很少的硬件即可实现较为快速的乘除法。 设置专用的高速阵列乘除运算器,指令系统中设置乘除法指令。 大、中型计算机系统采用,能获得最佳的运算性能,但同时造价也是最高的。,2019年5月24日星期五,7.2.1 原码乘法,无符号数乘法的手工运算方法 乘法涉及部分积的生成,乘数的每一位对应一个部分积。然后,部分积

6、相加得到最后的乘积 部分积是容易确定的。当乘数的位是0,其部分积也是0;当乘数的位是1,其部分积是被乘数 部分积通过求和而得到最后乘积。为此,后面的部分积总要比它前面的部分积左移一个位置 两个n位二进制整数的乘法导致其积为2n位长,2019年5月24日星期五,原码一位乘法 将被乘数左移一位相加变为部分积与被乘数相加后右移一位,将k个部分积同时相加转换为k次“累加与右移”,即每一步只求一位乘数所对应的新部分积,并与原部分积做一次累加,然后右移一次,这样操作重复k次,得到最后的乘积。,7.2.1 原码乘法,2019年5月24日星期五,7.2.1 原码乘法,2019年5月24日星期五,7.2.1 原

7、码乘法,2019年5月24日星期五,【例7-1】X2(0010),Y3(0011),用原码一位乘法方法求XY。,结果: XY0000 01106,7.2.1 原码乘法,2019年5月24日星期五,布思(Booth)算法 乘数和被乘数分别放入Q和M寄存器内。这里也有一个1位寄存器,逻辑上位于Q寄存器最低位Q0的右边,并命名为Q-1。乘法的结果将出现在A和Q寄存器中。 A和Q-1初始化为0。与前述相同,控制逻辑也是每次扫描乘数的一位。只不过检查某一位时,它右边的一位也同时被检查。,7.2.2 补码一位乘,2019年5月24日星期五,布思(Booth)算法(续) 若两位相同(1-1或0-0),则A、

8、Q和Q-1寄存器的所有位向右移一位。若两位不同,根据两位是0-1或1-0,则被乘数被加到A寄存器或由A寄存器减去,加减之后再右移。 无论哪种情况,右移是这样进行的:A的最左位,即An-1位,不仅要移入An-2,而且还要保留在An-1中。这要求保留A和Q中的符号。这称为一种算术移位(Arithmetic Shift),因为它保留了符号位。,7.2.2 补码一位乘,2019年5月24日星期五,7.2.2 补码一位乘,2019年5月24日星期五,【例7-2】X5(1011),Y3(1101),用Booth算法求XY。,X补0101 XY补0000 111115,7.2.2 补码一位乘,2019年5月

9、24日星期五,原码两位乘 使用原码一位乘法,每次按照乘数的一位状态决定运算操作,若乘数有k位,则需k次累加与右移。 采用两位乘法,即每次根据连续两位乘数决定本次操作,这样k位数的乘法一般只需要k/2次操作。,7.2.3 快速乘法,2019年5月24日星期五,原码两位乘运算规则,7.2.3 快速乘法,2019年5月24日星期五,5位5位阵列乘法器,7.2.3 快速乘法,2019年5月24日星期五,7.3 定点除法运算,恢复余数除法 不恢复余数除法 补码不恢复余数除法 快速除法,2019年5月24日星期五,7.3.1 恢复余数除法,进行每一步运算时,不论是否够减,都将被除数(或余数)减去除数,若所

10、得符号位为0(即为正数)表明够减,上商1,左移一位再做下一步运算;若余数符号为为1(即为负数)表明不够减,因此上商0,由于已做减法,因此要把除数加回去(恢复余数),然后余数左移一位再做下一步运算。,2019年5月24日星期五,7.3.2 不恢复余数除法,加减交替法规则 当余数为正时,商1,余数左移一位,减除数;当余数为负时,商0,余数左移一位,加除数。 加减交替法实现定点小数除法的步骤 判断除数是否为0。 判断被除数是否大于除数。 根据每一步余数的符号,判断下次运算是做加法还是减法。 最后的运算结果,余数要进行右移。,2019年5月24日星期五,原码加减交替除法运算的基本硬件配置框图,7.3.

11、2 不恢复余数除法,2019年5月24日星期五,原码加减交替除法控制流程图(1),7.3.2 不恢复余数除法,2019年5月24日星期五,原码加减交替除法控制流程图(2),7.3.2 不恢复余数除法,2019年5月24日星期五,【例7-3】x0.101001,y0.111,求x/y。,y补1.001 商qq0. q1 q2 q3 0.101 余数r0.000110,7.3.2 不恢复余数除法,2019年5月24日星期五,7.3.3 补码不恢复余数除法,2019年5月24日星期五,可控加法/减法(CAS)单元的逻辑图,7.3.4 快速除法,2019年5月24日星期五,4位除4位阵列除法器,7.3

12、.4 快速除法,2019年5月24日星期五,7.4 逻辑运算,计算机中除了进行加、减、乘、除等基本算术运算以外,还可对两个或一个逻辑数进行逻辑运算。 逻辑数,是指不带符号的二进制数。 利用逻辑运算可以进行两个数的比较,或者从某个数中选取某几位操作。 计算机中的逻辑运算,主要是指逻辑非、逻辑加、逻辑乘、逻辑异或等基本运算。,2019年5月24日星期五,7.4.1 基本逻辑运算,“与”运算 “或”运算 “非”运算,2019年5月24日星期五,7.4.2 复合逻辑运算,“与非”运算 “或非”运算 “异或”运算 “同或”运算,2019年5月24日星期五,算术/逻辑单元(ALU)是计算机实际完成数据算术

13、运算和逻辑运算的部分,计算机系统的其他部件,控制器、寄存器、存储器、I/O,主要是为ALU处理带入数据和取回运算结果。,7.5 算术/逻辑单元(ALU),2019年5月24日星期五,为了实现算术/逻辑多功能运算,则必须对全加器的功能进行扩展。 具体方法是:先不将输入的Ai、Bi和下一位的进位数Ci直接进行全加,而是将Ai和Bi先组合成由控制参数S0、S1、S2、S3控制的组合函数Xi和Yi,如图7-16所示,然后再将Xi,Yi和下一位进位数通过全加器进行全加。这样,不同的控制参数可以得到不同的组合函数,因而能够实现多种算术运算和逻辑运算。,7.5.1 ALU的组成,2019年5月24日星期五,

14、ALU的逻辑结构,7.5.1 ALU的组成,2019年5月24日星期五,74181是一个4位算术/逻辑运算单元,7.5.1 ALU的组成,2019年5月24日星期五,74181是一个4位算术/逻辑运算单元,7.5.1 ALU的组成,2019年5月24日星期五,通过将多个一位全加器串联在一起,可形成多位的行波进位加法器,进而构成多位ALU。但是这种ALU有一个问题,串行进位,它的运算时间很长。 假如加法器由n位全加器构成,每一位的进位延迟时间为20ns,那么最坏情况下,进位信号从最低位传递到最高位而最后输出稳定,至少需要n20ns,这在高速计算中显然是不利的。因此,我们必须要解决多位ALU的串行

15、进位问题。,7.5.2 先行进位的实现,2019年5月24日星期五,一位ALU的逻辑表达式,7.5.2 先行进位的实现,2019年5月24日星期五,一个4位ALU的进位关系如下: 第0位向第1位的进位公式为: 第1位向第2位的进位公式为: 第2位向第3位的进位公式为: 第3位的进位输出(即整个4位ALU得输出)公式为:,7.5.2 先行进位的实现,2019年5月24日星期五,74181的进位公式可改写为 其中: G称为进位发生输出 P称为进位传输输出,7.5.2 先行进位的实现,2019年5月24日星期五,如果将4片74181的P、G输出端送入到与之配套使用的先行进位部件74182,则可实现第二级的先行进位,即组与组之间的先行进位。其中: G*称为成组进位发生输出 P*称为成组进位传输输出,7.5.2 先行进位的实现,2019年5月24日星期五,用4位ALU级联组成的16位ALU逻辑方框图,7.5.2 先行

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

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号