版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、运算方法和运算器 计算机组成原理主编:杨光煜运算方法和运算器第4章 运算方法和运算器 计算机中的运算包括算术运算和逻辑运算两大类。算术运算是指带符号数的加法、减法、乘法和除法运算。由于在计算机中数值有定点和浮点两种表示方式,因此算术运算应有定点数的算术运算和浮点数的算术运算之分。逻辑运算是指不考虑进位“位对位”的运算,参加逻辑运算的操作数,常被称作逻辑数。一般来说,逻辑数是不带符号的整数,广义的逻辑运算可定义为非算术运算。本章主要讨论各种运算的运算方法及其实现。运算器就是计算机中完成各种运算的一个必不可少的重要部件。4.1定点加减法运算4.2定点乘法运算4.3定点除法运算4.4浮点运算的基本思
2、想4.5运算器的基本结构及分类4.6 浮点运算器基本思路4.7小结运算方法和运算器4.1 定点加减法运算4.1.1 补码加、减法运算运算方法和运算器4.1 定点加减法运算运算方法和运算器4.1 定点加减法运算运算方法和运算器4.1 定点加减法运算4.1.2 反码加、减法运算对于反码加、减法运算有如下的公式: 反反反YXYX 反反反YXYX运算方法和运算器4.1 定点加减法运算运算方法和运算器4.1 定点加减法运算运算方法和运算器4.1 定点加减法运算运算方法和运算器4.1 定点加减法运算4.1.3 定点加、减法中的溢出问题 所谓“运算溢出”是指运算结果大于机器所能表示的最大正数或者小于机器所能
3、表示的最小负数,这就是说,运算溢出只对带符号数的运算有效。下面举例说明补码加法运算中什么情况下会产生运算溢出。 【例4-10】两个正数相加 【例4-11】两个负数相加 1 1 0 1.0YX1 0 0 1 . 0Y0 1 0 1 . 0X补补补 0 1 1 0.0YX1 0 1 0 . 1Y1 0 0 0 . 1X补补补运算方法和运算器4.1 定点加减法运算常用的判定溢出方法有以下三种: 运算方法和运算器4.1 定点加减法运算运算方法和运算器4.1 定点加减法运算运算方法和运算器4.1 定点加减法运算4.1.4 加法器 计算机中的加、减、乘、除四则运算,都是在加法器的基础上再辅之以适当的电路来
4、实现的。因此,加法运算电路是计算机中最基本的运算电路。本节先介绍加法运算的核心部件半加单元和全加单元。1.半加单元 不考虑进位输入时,两数码、相加称为半加。图4-1(a)是半加单元的真值表。由此表可以得出半加和的表达式如下:nnnnnnnYXYXYXHnnYXC 运算方法和运算器4.1 定点加减法运算运算方法和运算器4.1 定点加减法运算运算方法和运算器4.2 定点乘法运算4.2.1 原码乘法运算及原码乘法器 首先要给原码乘法下个定义:“符号位单独运算,将两个操作数的数码位相乘,最后给乘积冠以正确符号”称作原码乘法。从最低位开始,每次取一位乘数与被乘数相乘,最后累加结果,称作“原码一位乘法”。
5、 原码一位乘法的操作过程与十进制乘法运算的过程很类似,下面通过一个具体例子来说明。运算方法和运算器4.2 定点乘法运算运算方法和运算器4.2 定点乘法运算 这是二进制乘法的手算过程。这一过程如果在计算机中实现,存在两个问题:其一是两个n位数相乘,需要2n位的加法器,这不合算;其二是n此部分积一次累加,实现有困难,而这两个问题只需要操作上稍微改动就可以得到满意的解决。 我们首先假设被乘数与乘数为N+1位的原码,分别为:运算方法和运算器4.2 定点乘法运算 在计算机中实现上述乘法过程的具体做法是:每得到一次部分积,立即与上次部分积相加,然后将结果右移一位,待n次的“相加右移”操作结束,乘法运算过程
6、也告结束。用递推公式描述如下: 运算方法和运算器4.2 定点乘法运算我们还用上面的这个例子,在计算机内实现原码一位乘法的操作过程如下: 运算方法和运算器4.2 定点乘法运算 可以看出,上面的例子中经过四次相加右移的操作,在粗黑线左方可得到正确的运算结果,最后给它冠以正确的符号“1”,所以 从上述过程来看,两个n位带符号数相乘需要一个n+1位加法器。并且需要两个n+1位寄存器,操作前分别存放部分积和乘数Y,操作后分别存放最后乘积的高n位和低n位,并要求这两个寄存器能连接起来一起进行右移操作。 10001111. 0Z1.10001111Z原运算方法和运算器4.2 定点乘法运算 4.2.2 补码乘
7、法运算及补码乘法器 “补码乘法”是指采用操作数的补码进行乘法运算,最后乘积仍为补码,能自然得到乘积的正确符号。从乘数的最低位开始,每次取一位乘数与被乘数相乘,经过(n+1)次“相加右移”操作完成乘法运算的过程被称为“补码一位乘法”。 运算方法和运算器4.2 定点乘法运算运算方法和运算器4.2 定点乘法运算运算方法和运算器4.2 定点乘法运算运算方法和运算器4.2 定点乘法运算运算方法和运算器4.2 定点乘法运算运算方法和运算器4.2 定点乘法运算运算方法和运算器4.2 定点乘法运算运算方法和运算器4.2 定点乘法运算运算方法和运算器4.2 定点乘法运算运算方法和运算器4.3 定点除法运算 定点
8、除法运算与定点乘法运算类似,也有原码除法和补码除法之分。本节先讨论原码除法运算。 N位原码除法是指被除数为2n位,除数、商数和余数均为n位。在实际的运算中,如果被除数也是n位,则需扩展为2n位后再进行运算。 原码除法运算有恢复余数法和不恢复余数法(加减交替法)之分。运算方法和运算器4.3 定点除法运算4.3.1恢复余数法 恢复余数法的计算与手算过程很类似。两个原码数相除,商的符号为两数符号的异或值,数值则为两数绝对值相除后的结果。 在计算机中,右移除数,可以通过左移被除数(余数)来替代,左移出界的被除数(余数)的最高位,对运算不会产生任何影响。另外,上商0还是1,用做减法判断结果的符号为正还是
9、负。当差为负时,上商为0,同时还应该把除数再加到差上去,恢复余数为原来的正值之后再将其左移一位。若减得的差为0或为正值,就没有恢复余数的操作。上商为1,余数左移一位。运算方法和运算器4.3 定点除法运算4.3.2不恢复余数法 不恢复余数法是对恢复余数法的一种修正。当某一次得的差值(余数)为负时,不是恢复它,而是继续求下一位商,但用加上除数(+Y)的办法来取代(Y)操作,其他操作依然不变,和恢复余数法是一样的。运算方法和运算器4.3 定点除法运算 由此可得不恢复余数法的计算规则:当余数为正时,商上1,求下一位商的办法,是余数左移一位,再减去除数;当余数为负时,商上0,求下一位商的办法,是余数左移
10、一位,再加上除数。但若最后一次上商为0,而又得到正确余数,则在这最后一次仍需恢复余数。运算方法和运算器4.4 浮点运算的基本思想 4.4.1浮点数加减法的运算规则 前面已经讲过,浮点数通常被写成X=Mx2Ex 的形式,其中Mx是该浮点数的尾数,一般为绝对值小于1的规格化的二进制小数,在 计算机中通常使用补码或原码的形式表示。Ex为该浮点数的阶码,一般为二进制整数, 在计算机中多用补码或移码表示。 假设有两个浮点数:X=Mx2Ex ,Y=My2Ey 要完成XY运算,通常需要以下几个步骤:运算方法和运算器4.4 浮点运算的基本思想1对阶操作 两浮点数进行加减,首先要看两数的阶码是否相同,也就是看两
11、数的小数点位置是否对齐。若二数阶码相同,表示小数点是对齐的,就可以进行尾数的加减运算。反之,若二数阶码不同,表示小数点位置没有对齐,此时必须使二数阶码相同,这个过程称为“对阶”。要进行对阶,首先应求出两数阶码Ex和Ey之差,即E = Ex - Ey 若E=0,表示两数阶码相等,即Ex = Ey;若ExEy,则需要通过尾数的移动以改变Ex或Ey,使之相等。原则上,既可以通过Mx移位以改变Ex来达到Ex = Ey,也可以通过My移位以改变Ey来实现Ex = Ey。但是,由于浮点表示的数多是规格化的,尾数左移会引起最高有效位的丢失,造成很大误差。尾数右移虽引起最低有效位的丢失,但造成的误差较小。基于
12、这种考虑,对阶操作规定使尾数右移,尾数右移后阶码作相应增加。因此,在进行对阶时,总是使小阶向大阶看齐,即小阶的尾数向右移位(相当于小数点左移)每右移一位,其阶码加1,直到两数的阶码相等为止,右移的位数等于阶差的绝对值|E|,这种方法同时也是为了保证浮点数的尾数部分为纯小数。尾数右移时,如果是原码形式的尾数,符号位不参与加移位,尾数高位补0;如果尾数采用补码形式,则符号位要参加移位并使自己保持不变。运算方法和运算器4.4 浮点运算的基本思想2尾数加减运算尾数加减运算 对阶完毕后就可对尾数进行加减运算。不论是加法运算还是减法运算,都按加法进行操作,其方法与定点加减运算完全一样。3规格化处理规格化处
13、理 若上一步得到的结果不满足规格化的规则,则必须将其变成规格化的形式。当尾数用二进制表示时,浮点规格化的定义是尾数M应满足: 1/2 |M| 1 对于双符号位的补码尾数,如果是正数,其形式应为M=001.;如果是负数,其形式应为M=110.。如果不满足上述形式,则应该按照以下两种情况进行规格化处理: 第一种情况,尾数运算的结果得到如01.或10.的形式,即两符号位不相等,表明尾数运算结果溢出,此时将尾数运算结果右移以实现规格化表示,称为向右规格化,简称右规,即尾数右移1位,阶码加1。 第二种情况,尾数运算的结果并不溢出,但得到如000.或111.的形式,即运算结果的符号位和小数点后的第一位相同
14、,表明不满足规格化规则,此时应重复地使尾数左移、阶减减1,直到出现在最高数值位上的值与符号位的值不同为止,这是向左规格化的操作,简称左规。运算方法和运算器4.4 浮点运算的基本思想4舍入操作舍入操作 在执行对阶或右规操作时,会使尾数低位上的一位或若干位的数值被移掉,使数值的精度降低,从而造成误差,因此要进行舍入操作。舍入操作总的原则是要有舍有入,而且尽量使舍和入的机会均等,以避免误差累积。常用的方法有两种,一种是“0舍1入”法,即移掉的最高位为1时,则在尾数末位加1;移掉的最高位为0时,则舍去移掉的数值。这种方法的最大误差为2-(n+1) 。另一种方法是“恒置1”法,即在右移时只要有效数位被移
15、掉,就在结果的最低位置1。在IEEE754浮点数标准中,舍入处理提供了四种可选方法:l 就近舍入:其实质就是通常所说的“四舍五入”。例如,尾数超出规定的23位的多余位数字是10010,多余位的值超过规定的最低有效位值的一半,故最低有效位应加1。若多余的5位是01111,则简单的截尾即可。对多余的5位10000这种特殊情况,若最低有效位现为0,则截尾;若最低有效位现为1,则向上进一位使其变为 0。l 朝0舍入:即朝数轴原点方向舍入,就是简单的截尾。无论尾数是正数还是负数,截尾都使取值的绝对值比原值的绝对值小。这种方法容易导致误差积累。l 朝舍入:对正数来说,只要多余位不全为0则向最低有效位进1;
16、对负数来说则是简单的截尾。 朝舍入:处理方法正好与朝舍入情况相反。对正数来说,只要多余位不全为0则简单截尾;对负数来说,向最低有效位进1。 运算方法和运算器4.4 浮点运算的基本思想5溢出检查溢出检查首先,考察一下浮点机器数在数轴上的分布情况,如图所示: 在图中,“可表示的负浮点数”区域和“可表示的正数区域”及0,是机器可表示的数据区域;上溢区(包括负上溢和正上溢)是数据绝对值太大,机器无法表示的区域;下溢区(包括负下溢和正下溢)是数据绝对值太小,机器无法表示的区域。 若运算结果落在上溢区,就产生了溢出错误,使得结果不能被正确表示,要停止机器运行,进行溢出处理。若运算结果落在下溢区,也不能正确
17、表示之,机器当0处理,称为机器零。 浮点数的溢出是以其阶码溢出表现出来的。在加减运算过程中要检查是否产生了溢出:若阶码正常,加减运算正常结束;若阶码溢出,则要进行相应处理:若阶码下溢,要置运算结果为浮点形式的机器0;若阶码上溢,则置溢出标志。运算方法和运算器4.4 浮点运算的基本思想4.4.2浮点数乘除法的运算规则设有两个浮点数和:X= Mx2ExY= My2Ey浮点乘法运算的规则是XY = (MxMy)2(ExEy) 即乘积的尾数是相乘两数的尾数之积,乘积的阶码是相乘两数的阶码之和。浮点除法运算的规则是 XY = (MxMy)2(Ex-Ey) 即商的尾数是相除两数的尾数之商,商的阶码是相除两
18、数的阶码之差。浮点数的乘除运算,通常需要以下几个步骤:运算方法和运算器4.4 浮点运算的基本思想1阶码进行加减运算 根据阶码表示形式的不同(补码或移码),利用前文所讨论过的计算规则进行计算。2尾数进行乘除运算 尾数的乘除法运算根据4.2、4.3小节中讨论的定点乘除法的规则进行计算。3结果规格化和舍入处理 浮点加减法对结果的规格化及舍入处理也适用于浮点乘除法。由于在计算机中,浮点数的尾数的位数通常是确定的,但浮点运算结果常常会超过给定的位数,如前面讨论过的浮点数加减法计算过程中的对阶和右规处理。而浮点的乘除运算可能会得到位数更多的结果,因此舍入问题,即如何处理多出来的这些位上的数值的问题比加减运
19、算更需要注意。 4判结果的正确性,即检查阶码是否溢出 根据前面分别介绍的用补码或移码表示阶码时判断溢出的方法进行判断并处理即可。运算方法和运算器4.5 运算器的基本结构及分类4.5.1 运算器的基本组成具有普通代表性的、以加法器为核心部件的运算器的基本结构主要包括以下几个部分:1加法器实现两个数的相加运算,及支持逻辑运算,也常作为数据通路,对数据进行加工处理。2通用寄存器组用来暂存参加运算的数据、运算结果以及或中间结果。此外还有变址寄存器、状态寄存器、堆栈指示器等。3输入数据选择电路用来选择将哪一个或哪两个数据(数据来源于寄存器或总线等部件)送入加法器;此外,还用来控制数据以何种编码形式送入加
20、法器。 4输出数据控制电路控制加法器的数据输出,具有移位功能,且将加法器输出的数据送到运算器、通用寄存器和送往总线控制电路。 运算方法和运算器4.5 运算器的基本结构及分类上述运算器的基本结构如图所示 :运算方法和运算器4.5 运算器的基本结构及分类4.5.2 运算器的分类对运算器的分类可以从不同的角度进行:1从加法器的电路设计的角度分类,可以分为串行加法器和并行加法器。(1) 串行加法器:串行加法器可以只用一个全加单元实现,也可以由多个全加单元级联构成,高位的进位依赖于低位的进位。串行加法器的特点是:被加数和加数的各位能同时并行到达各位的输入端,而各位全加单元的进位输入则是按照由低位向高位逐
21、级串行传递的,各进位形成一个进位链。由于每一位相加的和都与本位进位输入有关,所以,最高位必须等到各低位全部相加完成并送来进位信号之后才能产生运算结果。显然,这种加法器运算速度较慢,而且位数越多,速度就越低。(2)并行加法器:为了提高加法器的运算速度,必须设法减小或去除由于进位信号逐级传送所花的时间,使各位的进位直接由加数和被加数来决定,而不需依赖低位进位。根据这一思想设计的加法器称为并行加法器,称为超前进位并行加法器。其特点是由逻辑电路根据输入信号同时形成各位向高位的进位。运算方法和运算器4.5 运算器的基本结构及分类2从工作性质角度分类,可以分为定点运算器和浮点运算器。 在本章的前面部分已经分别讨论过计算机内定点运算和浮点运算的基本思想。定点运算器用于完成定点算术运算,其基本结构可以参阅4
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 团队建设管理培训40
- 中原地产-拓展客户与行销技巧
- 〈〈钱塘湖春行〉课件图
- 《我要健康成长》课件
- 《展会招商的技巧》课件
- 梵高-英文课件(在文辑中配有英文演讲稿)
- 低温预制食品智能化生产项目可行性研究报告模板-备案拿地
- 工学《动能 动能定理》课件设计
- 单位人力资源管理制度品读汇编十篇
- 单位管理制度展示汇编员工管理十篇
- 【讲座】2020年福建省高职分类考试招生指导讲座
- 性格决定命运课件
- 球磨机安全检查表分析(SCL)+评价记录
- 学习会计基础工作规范课件
- 口腔医学生职业生涯规划课件
- 双面埋弧焊螺旋钢管公称外公壁厚和每米理论重量
- 富士施乐VC2265打印机使用说明SPO
- 幼儿园绘本故事:《小年兽》 课件
- 简易呼吸气囊操作最全课件
- 小班数学《香香的饼干》
- 医院工会经费使用与管理办法、制度规则
评论
0/150
提交评论