




已阅读5页,还剩44页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
计算机组成原理 主编:杨光煜 第4章 运算方法和运算器 计算机中的运算包括算术运算和逻辑运算两大类。算术运算是指带符号数的加法 、减法、乘法和除法运算。由于在计算机中数值有定点和浮点两种表示方式,因此算 术运算应有定点数的算术运算和浮点数的算术运算之分。逻辑运算是指不考虑进位“ 位对位”的运算,参加逻辑运算的操作数,常被称作逻辑数。一般来说,逻辑数是不 带符号的整数,广义的逻辑运算可定义为非算术运算。本章主要讨论各种运算的运算 方法及其实现。运算器就是计算机中完成各种运算的一个必不可少的重要部件。 4.1定点加减法运算 4.2定点乘法运算 4.3定点除法运算 4.4浮点运算的基本思想 4.5运算器的基本结构及分类 4.6 浮点运算器基本思路 4.7小结 4.1 定点加减法运算 4.1.1 补码加、减法运算 4.1 定点加减法运算 4.1 定点加减法运算 4.1 定点加减法运算 4.1.2 反码加、减法运算 对于反码加、减法运算有如下的公式: 4.1 定点加减法运算 4.1 定点加减法运算 4.1 定点加减法运算 4.1 定点加减法运算 4.1.3 定点加、减法中的溢出问题 所谓“运算溢出”是指运算结果大于机器所能表示的最大正数或者小于机器所能表 示的最小负数,这就是说,运算溢出只对带符号数的运算有效。下面举例说明补码加 法运算中什么情况下会产生运算溢出。 【例4-10】两个正数相加 【例4-11】两个负数相加 4.1 定点加减法运算 常用的判定溢出方法有以下三种: 4.1 定点加减法运算 4.1 定点加减法运算 4.1 定点加减法运算 4.1.4 加法器 计算机中的加、减、乘、除四则运算,都是在加法器的基础上再辅之以适当的电路 来实现的。因 此,加法运算电路是计算机中最基本的运算电路。本节先介绍加法运算的核心部件半加单 元和全加单元。 1.半加单元 不考虑进位输入时,两数码、相加称为半加。图4-1(a)是半加单元的真值表。由此 表可以得出半加和的表达式如下: 4.1 定点加减法运算 4.1 定点加减法运算 4.2 定点乘法运算 4.2.1 原码乘法运算及原码乘法器 首先要给原码乘法下个定义:“符号位单独运算,将两个操作数的数码 位相乘,最后给乘积冠以正确符号”称作原码乘法。从最低位开始,每次取 一位乘数与被乘数相乘,最后累加结果,称作“原码一位乘法”。 原码一位乘法的操作过程与十进制乘法运算的过程很类似,下面通过一 个具体例子来说明。 4.2 定点乘法运算 4.2 定点乘法运算 这是二进制乘法的手算过程。这一过程如果在计算机中实现,存在两个问题:其一是两个n位 数相乘,需要2n位的加法器,这不合算;其二是n此部分积一次累加,实现有困难,而这两个问题 只需要操作上稍微改动就可以得到满意的解决。 我们首先假设被乘数与乘数为N+1位的原码,分别为: 4.2 定点乘法运算 在计算机中实现上述乘法过程的具体做法是:每得到一次部分积,立即与上次部分积相加,然后将结 果右移一位,待n次的“相加右移”操作结束,乘法运算过程也告结束。 用递推公式描述如下: 4.2 定点乘法运算 我们还用上面的这个例子,在计算机内实现原码一位乘法的操作过程如下: 4.2 定点乘法运算 可以看出,上面的例子中经过四次相加右移的操作,在粗黑线左方可得到正确的运算结果,最后给它冠 以正确的符号“1”,所以 从上述过程来看,两个n位带符号数相乘需要一个n+1位加法器。并且需要两个n+1位寄存器,操作前分别存 放部分积和乘数Y,操作后分别存放最后乘积的高n位和低n位,并要求这两个寄存器能连接起来一起进 行右移操作。 4.2 定点乘法运算 4.2.2 补码乘法运算及补码乘法器 “补码乘法”是指采用操作数的补码进行乘法运算,最后乘积仍为补码,能自然 得到乘积的正确符号。从乘数的最低位开始,每次取一位乘数与被乘数相乘,经过( n+1)次“相加右移”操作完成乘法运算的过程被称为“补码一位乘法”。 4.2 定点乘法运算 4.2 定点乘法运算 4.2 定点乘法运算 4.2 定点乘法运算 4.2 定点乘法运算 4.2 定点乘法运算 4.2 定点乘法运算 4.2 定点乘法运算 4.2 定点乘法运算 4.3 定点除法运算 定点除法运算与定点乘法运算类似,也有原码除法和补码除法之 分。本节先讨论原码除法运算。 N位原码除法是指被除数为2n位,除数、商数和余数均为n位。在 实际的运算中,如果被除数也是n位,则需扩展为2n位后再进行运算 。 原码除法运算有恢复余数法和不恢复余数法(加减交替法)之分 。 4.3 定点除法运算 4.3.1恢复余数法 恢复余数法的计算与手算过程很类似。两个原码数相除,商的 符号为两数符号的异或值,数值则为两数绝对值相除后的结果。 在计算机中,右移除数,可以通过左移被除数(余数)来替代, 左移出界的被除数(余数)的最高位,对运算不会产生任何影响。 另外,上商0还是1,用做减法判断结果的符号为正还是负。当差为 负时,上商为0,同时还应该把除数再加到差上去,恢复余数为原来 的正值之后再将其左移一位。若减得的差为0或为正值,就没有恢复 余数的操作。上商为1,余数左移一位。 4.3 定点除法运算 4.3.2不恢复余数法 不恢复余数法是对恢复余数法的一种修正。当某一次得的差值(余数)为负时,不是恢复它 ,而是继续求下一位商,但用加上除数(+Y)的办法来取代(Y)操作,其他操作依然不变,和 恢复余数法是一样的。 4.3 定点除法运算 由此可得不恢复余数法的计算规则:当余数为正时,商上1,求下一位 商的办法,是余数左移一位,再减去除数;当余数为负时,商上0,求下一 位商的办法,是余数左移一位,再加上除数。但若最后一次上商为0,而又 得到正确余数,则在这最后一次仍需恢复余数。 4.4 浮点运算的基本思想 4.4.1浮点数加减法的运算规则 前面已经讲过,浮点数通常被写成 X=Mx2Ex 的形式,其中Mx是该浮点数的尾数,一般为绝对值小于1的规格化的二进制小数,在 计算机中通常使用补码或原码的形式表示。Ex为该浮点数的阶码,一般为二进制整 数, 在计算机中多用补码或移码表示。 假设有两个浮点数: X=Mx2Ex ,Y=My2Ey 要完成XY运算,通常需要以下几个步骤: 4.4 浮点运算的基本思想 1对阶操作 两浮点数进行加减,首先要看两数的阶码是否相同,也就是看两数的小数点位置是否对齐。若二 数阶码相同,表示小数点是对齐的,就可以进行尾数的加减运算。反之,若二数阶码不同,表示 小数点位置没有对齐,此时必须使二数阶码相同,这个过程称为“对阶”。要进行对阶,首先应 求出两数阶码Ex和Ey之差,即 E = Ex - Ey 若E=0,表示两数阶码相等,即Ex = Ey;若ExEy,则需要通过尾数的移动以改变Ex或Ey,使 之相等。原则上,既可以通过Mx移位以改变Ex来达到Ex = Ey,也可以通过My移位以改变Ey来实现 Ex = Ey。但是,由于浮点表示的数多是规格化的,尾数左移会引起最高有效位的丢失,造成很大 误差。尾数右移虽引起最低有效位的丢失,但造成的误差较小。基于这种考虑,对阶操作规定使 尾数右移,尾数右移后阶码作相应增加。因此,在进行对阶时,总是使小阶向大阶看齐,即小阶 的尾数向右移位(相当于小数点左移)每右移一位,其阶码加1,直到两数的阶码相等为止,右移 的位数等于阶差的绝对值|E|,这种方法同时也是为了保证浮点数的尾数部分为纯小数。尾数右 移时,如果是原码形式的尾数,符号位不参与加移位,尾数高位补0;如果尾数采用补码形式,则 符号位要参加移位并使自己保持不变。 4.4 浮点运算的基本思想 2尾数加减运算 对阶完毕后就可对尾数进行加减运算。不论是加法运算还是减法运算,都按加法进行操作,其方法与定点加 减运算完全一样。 3规格化处理 若上一步得到的结果不满足规格化的规则,则必须将其变成规格化的形式。当尾数用二进制表示时,浮点规 格化的定义是尾数M应满足: 1/2 |M| 1 对于双符号位的补码尾数,如果是正数,其形式应为M=001.;如果是负数,其形式应为 M=110.。如果不满足上述形式,则应该按照以下两种情况进行规格化处理: 第一种情况,尾数运算的结果得到如01.或10.的形式,即两符号位不相等,表明尾数运 算结果溢出,此时将尾数运算结果右移以实现规格化表示,称为向右规格化,简称右规,即尾数右移1位,阶 码加1。 第二种情况,尾数运算的结果并不溢出,但得到如000.或111.的形式,即运算结果的符 号位和小数点后的第一位相同,表明不满足规格化规则,此时应重复地使尾数左移、阶减减1,直到出现在最 高数值位上的值与符号位的值不同为止,这是向左规格化的操作,简称左规。 4.4 浮点运算的基本思想 4舍入操作 在执行对阶或右规操作时,会使尾数低位上的一位或若干位的数值被移掉,使数值的精度降低,从而造成误 差,因此要进行舍入操作。舍入操作总的原则是要有舍有入,而且尽量使舍和入的机会均等,以避免误差累 积。常用的方法有两种,一种是“0舍1入”法,即移掉的最高位为1时,则在尾数末位加1;移掉的最高位为0 时,则舍去移掉的数值。这种方法的最大误差为2-(n+1) 。另一种方法是“恒置1”法,即在右移时只要有效数 位被移掉,就在结果的最低位置1。在IEEE754浮点数标准中,舍入处理提供了四种可选方法: l 就近舍入:其实质就是通常所说的“四舍五入”。例如,尾数超出规定的23位的多余位数字是10010,多余 位的值超过规定的最低有效位值的一半,故最低有效位应加1。若多余的5位是01111,则简单的截尾即可。对 多余的5位10000这种特殊情况,若最低有效位现为0,则截尾;若最低有效位现为1,则向上进一位使其变为 0。 l 朝0舍入:即朝数轴原点方向舍入,就是简单的截尾。无论尾数是正数还是负数,截尾都使取值的绝对 值比原值的绝对值小。这种方法容易导致误差积累。 l 朝舍入:对正数来说,只要多余位不全为0则向最低有效位进1;对负数来说则是简单的截尾。 朝舍入:处理方法正好与朝舍入情况相反。对正数来说,只要多余位不全为0则简单截尾;对负 数来说,向最低有效位进1。 4.4 浮点运算的基本思想 5溢出检查 首先,考察一下浮点机器数在数轴上的分布情况,如图所示: 在图中,“可表示的负浮点数”区域和“可表示的正数区域”及0,是机器可表示的数据区域;上溢区(包括负上溢和正上溢) 是数据绝对值太大,机器无法表示的区域;下溢区(包括负下溢和正下溢)是数据绝对值太小,机器无法表示的区域。 若运算结果落在上溢区,就产生了溢出错误,使得结果不能被正确表示,要停止机器运行,进行溢出处理。若运算结果落在下 溢区,也不能正确表示之,机器当0处理,称为机器零。 浮点数的溢出是以其阶码溢出表现出来的。在加减运算过程中要检查是否产生了溢出:若阶码正常,加减运算正常结束;若阶 码溢出,则要进行相应处理:若阶码下溢,要置运算结果为浮点形式的机器0;若阶码上溢,则置溢出标志。 4.4 浮点运算的基本思想 4.4.2浮点数乘除法的运算规则 设有两个浮点数和: X= Mx2Ex Y= My2Ey 浮点乘法运算的规则是 XY = (MxMy)2(ExEy) 即乘积的尾数是相乘两数的尾数之积,乘积的阶码是相乘两数的阶码之和。 浮点除法运算的规则是 XY = (MxMy)2(Ex-Ey) 即商的尾数是相除两数的尾数之商,商的阶码是相除两数的阶码之差。 浮点数的乘除运算,通常需要以下几个步骤: 4.4 浮点运算的基本思想 1阶码进行加减运算 根据阶码表示形式的不同(补码或移码),利用前文所讨论过的计算规则进行计算。 2尾数进行乘除运算 尾数的乘除法运算根据4.2、4.3小节中讨论的定点乘除法的规则进行计算。 3结果规格化和舍入处理 浮点加减法对结果的规格化及舍入处理也适用于浮点乘除法。由于在计算机中,浮 点数的尾数的位数通常是确定的,但浮点运算结果常常会超过给定的位数,如前面讨 论过的浮点数加减法计算过程中的对阶和右规处理。而浮点的乘除运算可能会得到位 数更多的结果,因此舍入问题,即如何处理多出来的这些位上的数值的问题比加减运 算更需要注意。 4判结果的正确性,即检查阶码是否溢出 根据前面分别介绍的用补码或移码表示阶码时判断溢出的方法进行判断并处理即可。 4.5 运算器的基本结构及分类 4.5.1 运算器的基本组成 具有普通代表性的、以加法器为核心部件的运算器的基本结构主要包括以下几个部分: 1加法器 实现两个数的相加运算,及支持逻辑运算,也常作为数据通路,对数据进行加工处理。 2通用寄存器组 用来暂存参加运算的数据、运算结果以及或中间结果。此外还有变址寄存器、状态寄存器、堆栈指 示器等。 3输入数据选择电路 用来选择将哪一个或哪两个数据(数据来源于寄存器或总线等部件)送入加法器;此外,还用来控 制数据以何种编码形式送入加法器。 4输出数据控制电路 控制加法器的数据输出,具有移位功能,且将加法器输出的数据送到运算器、通用寄存器和送往总 线控制电路。 4.5 运算器的基本结构及分类 上述运算器的基本结构如图所示 : 4.5 运算器的基本结构及分类 4.5.2 运算器的分类 对运算器的分类可以从不同的角度进行: 1从加法器的电路设计的角度分类,可以分为串行加法器和并行加法器。 (1) 串行加法器:串行加法器可以只用一个全加单元实现,也可以由多个全加单元级联构成,高位的 进位依赖于低位的进位。串行加法器的特点是:被加数和加数的各位能同时并行到达各位的输入 端,而各位全加单元的进位输入则是按照由低位向高位逐级串行传递的,各进位形成一个进位链 。由于每一位相加的和都与本位进位输入有关,所以,最高位必须等到各低位全部相加完成并送 来进位信号之后才能产生运算结果。显然,这种加法器运算速度较慢,而且位数越多,速度就越 低。 (2)并行加法器:为了提高加法器的运算速度,必须设法减小或去除由于进位信号逐级传送所花的时间 ,使各位的进位直接由加数和被加数来决定,而不需依赖低位进位。根据这一思想设计的加法器 称为并行加法器,称为超前进位并行加法器。其特点是由逻辑电路根据输入信号同时形成各位向 高位的进位。 4.5 运算器的基本结构及分类 2从工作性质角度分类,可以分为定点运算器和浮点运算器。 在本章的前面部分已经分别讨论过计算机内定点运算和浮点运算的基本思想。定点 运算器用于完成定点算术运算,其基本结构可以参阅4.5.1小节中的介绍。除算术运 算之外,定点运算器还被用于实现逻辑运算,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025福建漳州市丹诏资产运营有限公司及权属公司度秋季招聘20人笔试历年参考题库附带答案详解
- 2025福建宁德市国有融资再担保有限公司秋季公开招聘12名工作人员笔试历年参考题库附带答案详解
- 2025湖南中烟工业有限责任公司招聘拟录用人员笔试历年参考题库附带答案详解
- 2025中国燃气控股呼和浩特中燃城市燃气发展有限公司招聘笔试历年参考题库附带答案详解
- 2025年甘肃省庆阳市西峰区招聘城镇公益性岗位20人模拟试卷及答案详解(名校卷)
- 2025呼伦贝尔莫旗消防救援大队招聘消防文员考前自测高频考点模拟试题及参考答案详解1套
- 2025江苏南京地铁集团有限公司校园招聘(三)模拟试卷及答案详解(全优)
- 2025年上半年资中县面向社会公开选聘社区工作者的(71人)考前自测高频考点模拟试题含答案详解
- 2025年4月贵州黔南州福泉市招聘城镇公益性岗位4人模拟试卷及答案详解(易错题)
- 2025贵州省卫生健康委员会“银龄计划”(引进退休高级医疗卫生人才)模拟试卷附答案详解(考试直接用)
- 人教版数学四年级上册-第五单元《平行四边形和梯形》练习题(含答案)
- 零工市场(驿站)运营管理 投标方案(技术方案)
- 新《全面质量管理(习题集)》考试题库(含答案)
- 农村建房的邻居协议书模板
- 水杨酸软膏剂的制备
- 《铁皮石斛的介绍》课件
- JCT478.2-2013 建筑石灰试验方法 第2部分 化学分析方法
- 大数据、智慧城市与智慧交通(上)
- 砌砖抹灰工程劳务承包施工合同范文
- GB/T 19812.2-2017塑料节水灌溉器材第2部分:压力补偿式滴头及滴灌管
- GB/T 19249-2017反渗透水处理设备
评论
0/150
提交评论