四章数据的机器运算

上传人:re****.1 文档编号:570013093 上传时间:2024-08-01 格式:PPT 页数:95 大小:567KB
返回 下载 相关 举报
四章数据的机器运算_第1页
第1页 / 共95页
四章数据的机器运算_第2页
第2页 / 共95页
四章数据的机器运算_第3页
第3页 / 共95页
四章数据的机器运算_第4页
第4页 / 共95页
四章数据的机器运算_第5页
第5页 / 共95页
点击查看更多>>
资源描述

《四章数据的机器运算》由会员分享,可在线阅读,更多相关《四章数据的机器运算(95页珍藏版)》请在金锄头文库上搜索。

1、第四章第四章 数据的机器运算数据的机器运算n计算机的主要功能是对数据进行各种加工和处理,包括计算机的主要功能是对数据进行各种加工和处理,包括加、减、乘、除这些基本的算术运算,与、或、非这些加、减、乘、除这些基本的算术运算,与、或、非这些基本的逻辑运算,以及由此构成的其它复杂的运算。基本的逻辑运算,以及由此构成的其它复杂的运算。运运算器则是实现这些运算的主要部件算器则是实现这些运算的主要部件。n无论多么复杂的运算,最终都要分解为加法运算来实现。无论多么复杂的运算,最终都要分解为加法运算来实现。其中,减法运算通过补码转化为加法来实现其中,减法运算通过补码转化为加法来实现 ;乘、除运;乘、除运算可以

2、转换为加减运算、移位操作来实现。加法和移位算可以转换为加减运算、移位操作来实现。加法和移位是计算机中最基本的两种运算操作。是计算机中最基本的两种运算操作。n可见,可见,加法器又是运算器的核心部件加法器又是运算器的核心部件。在加法器的基础。在加法器的基础上增加移位功能,并通过选择输入控制条件,就可以实上增加移位功能,并通过选择输入控制条件,就可以实现所有的运算。现所有的运算。 蛆蒸稀掘奉栓厉鸭贪民些暴识魂茹龄卯释蚜习夫邵垛庙颓豫太裂语拐套刮四章数据的机器运算四章数据的机器运算1本章主要内容本章主要内容主要内容主要内容n算术、逻辑运算的实现算术、逻辑运算的实现n定点加、减运算定点加、减运算n数的移

3、位和舍入操作数的移位和舍入操作n定点乘、除运算定点乘、除运算n规格化浮点运算规格化浮点运算葵裙姑侣靠墅氯整屯贝吓懊摊啤吹邻犬共车婆终誓峦餐雍蟹皮恕址譬纤汞四章数据的机器运算四章数据的机器运算2一、一、算术逻辑运算的实现算术逻辑运算的实现 计计算算机机中中最最基基本本的的算算术术运运算算是是加加法法运运算算,不不论论加加、减减、乘乘、除除运运算算最最终终都都可可以以归归结结为为加加法法运运算算。所所以以首首先先讨讨论论最最基基本本、最最核核心心的的运运算算部部件件加加法法器器,以及并行加法器的进位问题。以及并行加法器的进位问题。加加法法器器是是由由全全加加器器和和其其它它必必要要的的逻逻辑辑电电

4、路路组组成成的的,所以我们从全加器开始讨论。所以我们从全加器开始讨论。谁烦跺臻酸遇俩炽彻皖藩塔怨溃久胞尺疟意露苛坞植臭畦汛勿茸麓祸仅揽四章数据的机器运算四章数据的机器运算31 1、全加器(、全加器(FA)n全加器(全加器(FA)是最基本)是最基本的运算单元,由它构成的运算单元,由它构成加法器。加法器。n全加器有全加器有三个输入量三个输入量:操作数操作数Ai、Bi、以及低、以及低位传来的进位信号位传来的进位信号Ci-1。n全加器有全加器有两个输出量两个输出量:本位和本位和Si、以及向高位、以及向高位的进位信号的进位信号Ci。 Ai Bi Ci-1 Si Ci 0 0 0 0 0 0 0 1 1

5、0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1 全加器真值表全加器真值表弛柑川摹辑瞳株格雅君源活镐椽血句醛熄柏因锌慧伯滔倡绝抒象寄号灼洞四章数据的机器运算四章数据的机器运算4全加器的全加器的逻辑方程和电路逻辑方程和电路根据真值表得:根据真值表得: Si=Ai Bi Ci-1Ci=AiBi+(Ai Bi)Ci-1Si: : 本位和本位和Ci: : 向高位的进位向高位的进位实现电路实现电路逻辑框图逻辑框图一个全加器只完成一位加法一个全加器只完成一位加法微皿碍逊南蹲赃桅百板蜕谗货屋酵悠定谣曙铭含腊糯洲却磕郎吕种谦境豫四章数据

6、的机器运算四章数据的机器运算5全加器构成加法器全加器构成加法器n全加器并不存储信息,可用门电路来实现。用全加全加器并不存储信息,可用门电路来实现。用全加器能够方便地构成加法器。加法器分为器能够方便地构成加法器。加法器分为串行加法器串行加法器和和并行加法器并行加法器。 n串行加法器只有一个全加器,数据逐位串行送入加串行加法器只有一个全加器,数据逐位串行送入加法器进行计算。由于运算速度慢,一般不用。法器进行计算。由于运算速度慢,一般不用。n并行加法器则由若干个这样的全加器构成,各位数并行加法器则由若干个这样的全加器构成,各位数据同时运算。并行加法器的位数与操作数的位数相据同时运算。并行加法器的位数

7、与操作数的位数相等。等。并行加法器的最并行加法器的最长运算运算时间主要取决于主要取决于进位信位信号的号的传递时间。例如:例如:1111和和0001相加,最低相加,最低位位产生的生的进位将逐位影响到最高位位将逐位影响到最高位. .n由此可由此可见,提高并行加法器速度的关,提高并行加法器速度的关键是是尽量加快尽量加快进位位产生和生和传递的速度的速度。汝鲤袖堪处纶濒咯斋杯逞揍妊博号迁该畦汐氧械毫醉绩废豆蛾蜘镶菇山藻四章数据的机器运算四章数据的机器运算62 2、进位产生与传递、进位产生与传递n进位链的概念:进位链的概念:并行加法器中的每一个全加器都有一个从低位送来的并行加法器中的每一个全加器都有一个从

8、低位送来的进位输入和一个传送给高位的进位输出。我们把构成进位输入和一个传送给高位的进位输出。我们把构成进位信号产生和传递的逻辑网络称为进位信号产生和传递的逻辑网络称为进位链进位链。n进位链上每一位的进位表达式为:进位链上每一位的进位表达式为:Ci=AiBi+(Ai Bi)Ci-1设设Gi=AiBi,称为称为进位产生函数进位产生函数Pi=Ai Bi,称为称为进位传递函数进位传递函数进位表达式进位表达式Ci=Gi+PiCi-1履窟桔伙画俭狠玩羹澡咐允捞蜘乙寡加淤螺沃防祝篓询中侈刊漠蛮厚蚀昼四章数据的机器运算四章数据的机器运算7串行进位串行进位n把把n个全加器串联起来,就可以实现两个个全加器串联起来

9、,就可以实现两个n位数的相加。这种加法器称位数的相加。这种加法器称为为串行进位串行进位的并行加法器,串行进位又叫的并行加法器,串行进位又叫行波进位行波进位。 其中其中:C1=G1+P1C0C2=G2+P2C1 Cn=Gn+PnCn-1n串行进位的并行加法器,总的延迟时间正比于字串行进位的并行加法器,总的延迟时间正比于字长,字长越长,总延迟时间也越长。长,字长越长,总延迟时间也越长。n若一位进位需若一位进位需2ty时间,完成时间,完成n位进位就需要位进位就需要2nty.n要提高加法运算速度,必须改进进位方式。要提高加法运算速度,必须改进进位方式。 屿其萎赫估企倔拙身得霖疮卞狄旷轧径颠默快乖困擒县

10、主癸操技饲耍版读四章数据的机器运算四章数据的机器运算83 3、并行加法器的快速进位、并行加法器的快速进位l改改进进串串行行进进位位方方式式的的基基本本思思路路是是让让各各进进位位同同时时形形成成,避避免免各各进进位位之之间的依赖关系。现在来分析一下进位关系。间的依赖关系。现在来分析一下进位关系。 展开展开C1=G1+P1C0;C2=G2+P2C1;,Cn=Gn+PnCn-1 得关系式:得关系式:C1=G1+P1C0C2=G2+P2C1=G2+P2G1+P2P1C0C3=G3+P3C2=G3+P3G2+P3P2G1+P3P2P1C0C4=G4+P4C3=G4+P4G3+P4P3G2+P4P3P2

11、G1+P4P3P2P1C0 以以上上进进位位输输出出只只与与Gi、Pi以以及及最最低低进进位位C0有有关关,而而且且不不依依赖赖于于其其低低位进位位进位Ci-1的输入,因此各级进位可以同时产生,形成的输入,因此各级进位可以同时产生,形成并行进位。并行进位。乐沫途研晾掉伐破沼仆施蚤责砖谅舷咖剩催肄冲挎律窜一诚丰丝慑隔芥波四章数据的机器运算四章数据的机器运算9并行进位的特点并行进位的特点n并行进位的特点是各级进位信号同时形成,与字长无并行进位的特点是各级进位信号同时形成,与字长无关,提高了整体运算速度关,提高了整体运算速度 。并行进位又叫先行进位。并行进位又叫先行进位。n最长延迟时间仅为最长延迟时

12、间仅为2ty。n随着加法器位数的增加,随着加法器位数的增加,Ci的逻辑表达式会变得越来的逻辑表达式会变得越来越长,输入变量会越来越多,电路结构也会变得越来越长,输入变量会越来越多,电路结构也会变得越来越复杂,导致电路实现也越来越困难。越复杂,导致电路实现也越来越困难。n并行进位方式需继续改进,才能有实用价值。这就是并行进位方式需继续改进,才能有实用价值。这就是下面要介绍的分组进位方式。下面要介绍的分组进位方式。鹰骄风乙暂悍疼远椽答赖沧露葛饰切夹钠垫划阑仅鲜焕娇邹脚瓦卒腰泞胰四章数据的机器运算四章数据的机器运算10n以以16位加法器为例,将其分为位加法器为例,将其分为4组,每组组,每组4位。位。

13、n在组内,按照并行进位函数直接产生在组内,按照并行进位函数直接产生C1C4,这,这些进位可同时得到。实现这种进位逻辑的电路称为些进位可同时得到。实现这种进位逻辑的电路称为4位位先行进位电路(先行进位电路(CLA),如,如74181ALU。n利用这种利用这种4位一组的位一组的CLA电路和电路和4位全加器可以构位全加器可以构成成4位位CLA加法器。注意,加法器。注意,4位位CLA加法器包含了加法器包含了两部分逻辑:两部分逻辑:4位全加器和位全加器和4位一组的先行进位链,位一组的先行进位链,这个组内的进位为一级进位。这个组内的进位为一级进位。n在组间,每个组的进位输入是前一个组的进位输出,在组间,每

14、个组的进位输入是前一个组的进位输出,而每个组的进位输出是下一个组的进位输入而每个组的进位输出是下一个组的进位输入.构成构成1616位加法位加法器很容器很容易实现易实现 单级先行进位单级先行进位戚莫坑换琐盔吮嘉吐汞杭尖靠九咙剂士奉浴咕办泻绘赏梨饵闽泄届抬遏雁四章数据的机器运算四章数据的机器运算11单级先行进位(续一)单级先行进位(续一)n上述组内并行、组间串行的进位方式也称为单级先上述组内并行、组间串行的进位方式也称为单级先行进位方式,原理如下图所示。行进位方式,原理如下图所示。辩盏囱绰宣镰盈校拄睦孽而勿烂泳扰丽窑摩疙港遗遮物猪拜靡援渠潞存卵四章数据的机器运算四章数据的机器运算12单级先行进位(

15、续二)单级先行进位(续二)n组内并行、组间串行进位的时间图组内并行、组间串行进位的时间图(16位位)如下:如下:n完成进位时间完成进位时间8ty.n进位时间与组数成正比,组数越多,进位时间越长。进位时间与组数成正比,组数越多,进位时间越长。钎好淄棋带堤陇擂琐帚辛宴镍毛话惮肢朔潞明啡抑瘟霞捆抗援臃费咬笆龙四章数据的机器运算四章数据的机器运算13多级先行进位多级先行进位n为说明问题,我们不妨仍以为说明问题,我们不妨仍以16位加法器为例,仍然位加法器为例,仍然4位一组,分成位一组,分成4个小组,先就第一小组的进位输出函个小组,先就第一小组的进位输出函数数C4做一下分析:做一下分析:C4=G4+P4G

16、3+P4P3G2+P4P3P2G1+P4P3P2P1C0G1*P1*=G1*+P1*C0nG1*称为称为组进位产生函数组进位产生函数,P1*称为称为组进位传递函数组进位传递函数;这两个函数类似于进位产生函数这两个函数类似于进位产生函数G和进位传递函数和进位传递函数P.溅听婚孽蒜大遍篆仓括稽郁奏裂蛆涛堵濒噪挪滑朱坤错熬赣侥改额自肌绘四章数据的机器运算四章数据的机器运算14多级先行进位(续一)多级先行进位(续一)n四个组内的最高进位四个组内的最高进位C16、C12、C8、C4可以分别表示为可以分别表示为: : C4 = G1* + P1* C0 C8 = G2* + P2* C4 C12 = G3

17、* + P3* C8 C16 = G4* + P4* C12现在逐项代入、并展开得关系式:现在逐项代入、并展开得关系式:C4 = G1* + P1* C0C8 = G2*+P2*C4=G2*+P2*G1* +P2*P1*C0C12 = G3*+P3*G2*+P3*P2*G1* +P3*P2*P1*C0C16 = G4*+P4*G3*+P4*P3*G2*+P4*P3*P2*G1*+P4*P3*P2*P1*C0可以看出,这可以看出,这4组进位结构与前述组进位结构与前述4位先行进位逻辑完全相同,位先行进位逻辑完全相同,组间进位信号只与最低进位组间进位信号只与最低进位C0有关,所以能同时产生。有关,所

18、以能同时产生。希拿景啡隶钠没庄党谭萧割故柄狼枣遵湘讶辗欲羊任西赔侦统鄂朽钓炊注四章数据的机器运算四章数据的机器运算15多级先行进位(续二)多级先行进位(续二)n组内进位信号能同时产生、组间进位信号也能同时产组内进位信号能同时产生、组间进位信号也能同时产生,由此可以构成多级并行进位逻辑。生,由此可以构成多级并行进位逻辑。16位位2级先行级先行进位加法器如下图所示。进位加法器如下图所示。踪踢酮够暗习癌铭溶暮桶蛾颠通悬壹卸虚际出橱莫钎晶饯轴茫钻馒浓景楼四章数据的机器运算四章数据的机器运算16多级先行进位(续三)多级先行进位(续三)n问题是这问题是这4个组间进位信号如何用硬件来产生呢?个组间进位信号如

19、何用硬件来产生呢?对于多级先行进位的实现可以按如下思路来理解:对于多级先行进位的实现可以按如下思路来理解:n先把单级先行进位加法器的串行进位链断开;先把单级先行进位加法器的串行进位链断开;n增加一级先行进位链,这个新增加的先行进位链的增加一级先行进位链,这个新增加的先行进位链的进位称为二级进位;进位称为二级进位;n组间进位信号组间进位信号C4、C8、C12、C16由二级进位链来产由二级进位链来产生,其逻辑关系式已经得到;生,其逻辑关系式已经得到;n让一级进位链多产生两个辅助函数让一级进位链多产生两个辅助函数Gi*和和Pi*,并且,并且作为二级进位链的输入。作为二级进位链的输入。 疚疥汇砂瀑疙搔

20、珐晦烷装徐过寄轧碰峦潍特陷宽掉斜度问箱菱脖嗽沤扛拐四章数据的机器运算四章数据的机器运算17多级先行进位(续四)多级先行进位(续四)16位位2级级先行进位时间图先行进位时间图 进位产生次序如下:进位产生次序如下:n产生第一小组的产生第一小组的C1C3、所有、所有组进位产生函数组进位产生函数Gi*和组进位传和组进位传递函数递函数Pi*,时间为,时间为2ty.n由由CLA电路产生第二、三、四电路产生第二、三、四小组的组间进位信号小组的组间进位信号C4、C8、C12、C16,时间为,时间为2ty.n产生第二、三、四小组的组内产生第二、三、四小组的组内进位信号进位信号C5、C6、C7、C9、C10、C1

21、1、C13、C14、C15,时间为,时间为2ty.店雷酶间和绢擦告谁冷毛半汪园唬摧猪宛巢篮康鸥牙淹闷过谢牛乌掩疆练四章数据的机器运算四章数据的机器运算184 4、多功能算术逻辑部件、多功能算术逻辑部件ALUn前面介绍了运算器的算术运算功能,为了完成多种算前面介绍了运算器的算术运算功能,为了完成多种算术逻辑运算,需要将加法器的功能进行扩展,扩展的术逻辑运算,需要将加法器的功能进行扩展,扩展的基本思想如下:基本思想如下:参加运算的两个数参加运算的两个数Ai、Bi和低位进位和低位进位Ci-1先不进行全加,先把两个输入先不进行全加,先把两个输入Ai、Bi和四个控制参数和四个控制参数S0、S1、S2、S

22、3进进行组合,形成函数行组合,形成函数Xi和和Yi,然后再将,然后再将Xi、Yi和低位进位和低位进位Ci-1通过全加器进行全加。通过全加器进行全加。这样一来,控制参数不同,得到的组这样一来,控制参数不同,得到的组合函数也不同,从而实现多种算术和合函数也不同,从而实现多种算术和逻辑运算。逻辑运算。 布颈姬库药静摈爪恤赏割妈雷涟参巩谱幸玄脆博蚜俭佃莆醚乳靖汹五傻膳四章数据的机器运算四章数据的机器运算19算术逻辑部件算术逻辑部件ALUn算术逻辑部件算术逻辑部件ALU大体上有三部分组成:大体上有三部分组成:n全加器全加器n进位链进位链n输入选择器输入选择器n下面以下面以ALU的一位逻辑为例,原理性地说

23、明的一位逻辑为例,原理性地说明算术、逻辑功能是如何实现的。算术、逻辑功能是如何实现的。叶忍此鬼晰垃赚劣拎侵揍烹钢檀古憋潦锚哼尸灌袜蕉衡范畸骚楷祟挂亭悄四章数据的机器运算四章数据的机器运算20算术逻辑部件算术逻辑部件ALU(续一)(续一)l一位加法器由全加器和进位门构一位加法器由全加器和进位门构成,其中,两个半加器构成全加成,其中,两个半加器构成全加器、与或非门构成一位进位门。器、与或非门构成一位进位门。l一位输入选择器,由两个与或非一位输入选择器,由两个与或非门构成,可输入门构成,可输入2个本位操作数个本位操作数或非、或非、4个控制信号(个控制信号(S3S0)l一个控制门一个控制门M,选择算逻

24、运算。,选择算逻运算。当当M=0时,开门接收低位来的进时,开门接收低位来的进位信号,执行算术运算;当位信号,执行算术运算;当M=1时,关门不接收低位进位信号,时,关门不接收低位进位信号,执行逻辑运算,与进位无关。执行逻辑运算,与进位无关。载视衫婚巴娇醉窿饥薄川该泵可拉砍趁午棋拆昭寨通叼扛镐柏伙拷霉振倔四章数据的机器运算四章数据的机器运算21算术逻辑部件算术逻辑部件ALU(续二)(续二)控制信号与选择器输出关系表:控制信号与选择器输出关系表:S3S2XiS1S0Yi00100Ai01Ai+Bi01AiBi10Ai+Bi10AiBi11Ai110 进位传递函数进位传递函数进位产生函数进位产生函数通

25、过不同的输入选择,实现不同的功能,这进一步说明:数据是在传通过不同的输入选择,实现不同的功能,这进一步说明:数据是在传送过程实现运算、并得到处理的。多位送过程实现运算、并得到处理的。多位ALUALU的实现思路完全一样。的实现思路完全一样。钞观斥霖植藏单牲拐北赃废厨靖闺渊锭藏岩歪熊晤裴汤恃蹦胁稚宙虐奖桨四章数据的机器运算四章数据的机器运算225 5、运算器的组织、运算器的组织n运算器主要由算逻部件运算器主要由算逻部件ALU、寄存器、多路转换、寄存器、多路转换器、内部数据总线组成。器、内部数据总线组成。n在运算器内部,各功能模块之间的连接大都采用在运算器内部,各功能模块之间的连接大都采用总线结构,

26、称为运算器的内部总线,总线结构,称为运算器的内部总线,ALU和各寄和各寄存器都挂在上面。存器都挂在上面。n运算器大体上有如下三种结构:单总线结构、双运算器大体上有如下三种结构:单总线结构、双总线结构和三总线总线结构。总线结构和三总线总线结构。稽力抓点忻炯月制梗卿斡糊窜醛渍据毁旁狠节靠扑燕炮檄占擒挎趟致隶痰四章数据的机器运算四章数据的机器运算23l操作数需要分两次送入操作数需要分两次送入ALU,而,而且需要两个缓冲寄存器;完成一且需要两个缓冲寄存器;完成一次运算需要次运算需要3步。特点是控制电路步。特点是控制电路简单,而速度较慢。简单,而速度较慢。 l两个操作数可以同时到达两个操作数可以同时到达

27、ALU进行进行运算,且马上可以得到运算结果,运算,且马上可以得到运算结果,输出端需要设置一个缓冲寄存器输出端需要设置一个缓冲寄存器;完成一次运算需要完成一次运算需要2步步。l两条总线同时供给操作数,输出与两条总线同时供给操作数,输出与第三条总线相连;完成一次运算需第三条总线相连;完成一次运算需要要1步。特点是操作速度快,控制步。特点是操作速度快,控制相对复杂一些。相对复杂一些。运算器的运算器的3种组织结构种组织结构颁敖星地它绞诸渡础捡搔鞭缝鸯她防攘莲实忻卓融畸萧家荷万迄事础屏遭四章数据的机器运算四章数据的机器运算24二、定点加减运算二、定点加减运算 n原码加减运算原码加减运算n当原码做加减运算

28、时,符号位不参加运算,只当原码做加减运算时,符号位不参加运算,只在两数的绝对值之间进行。在两数的绝对值之间进行。n加法时可能要做减法(两数异号)、减法时又加法时可能要做减法(两数异号)、减法时又可能做加法(两数异号)。可能做加法(两数异号)。n操作结果需要根据绝对值的大小来确定运算结操作结果需要根据绝对值的大小来确定运算结果的符号。计算机中通常没有减法器,减法运果的符号。计算机中通常没有减法器,减法运算需要转换为加法来实现。算需要转换为加法来实现。结论:原码加减运算过程比较复杂,一般不用结论:原码加减运算过程比较复杂,一般不用. .句曳嚷氏坍胶崎智笔唆袭厌衡程卷辗辖蝇沦椰湾哼蘸漫嗜契略恋颖昨撼

29、吊四章数据的机器运算四章数据的机器运算251 1、补码加减运算、补码加减运算 补码加减运算的依据如下:补码加减运算的依据如下:n和的补码等于补码的和和的补码等于补码的和nX+Y补补=X补补+Y补补n相反数的补码等于补码的相反数相反数的补码等于补码的相反数n-X补补=-X补补n差的补码等于补码的差差的补码等于补码的差nX-Y补补=X补补+-Y补补=X补补-Y补补 补码的运算规则:补码的运算规则: n参加运算的操作数用补码表参加运算的操作数用补码表示。示。n补码的符号位与数值位同时补码的符号位与数值位同时参加运算。参加运算。n若做加法,则两数补码直接若做加法,则两数补码直接相加;相加;若做减法,用

30、被减数与减数若做减法,用被减数与减数的的机器负数机器负数相加。相加。n运算结果为和运算结果为和、差的补码。差的补码。注注:机器负数等于补码连同机器负数等于补码连同符号位按位求反,末位加符号位按位求反,末位加1。俯霉绎丈侵掸野威供续工戏亦辜声延敲埋铣搭铆俭棵戒笼瞬看时桓砍禽休四章数据的机器运算四章数据的机器运算26补码加减示例补码加减示例例例1、A=0.1011,B=-0.1110,求,求A+B.解:解:A补补=0.1011,B补补=1.00100.1011+1.00101.1101A+B补补=1.1101A+B=-0.0011例例2、A=0.1011,B=-0.0010,求,求A-B.解:解:

31、A补补=0.1011,B补补=1.1110,-B补补=0.00100.1011+0.00100.1101A-B补补=0.1101A-B=0.1101挖眯腆筏铸陋眺严揭演哼的袒圃绪癸洁蛾羽爸宪钙握履栗咬媳咖芦仙嫁攻四章数据的机器运算四章数据的机器运算272 2、补码加减溢出的判别、补码加减溢出的判别例例3、X=1011,Y=111 求X+Y。 例例4、X=-1011,Y=-111 求X+Y。解解:X补=0,1011,Y补=0,0111 解解:X补=1,0101,Y补=1,10010,1011 (+11) 1,0101 (-11)+0,0111 (+7) + 1,1001 (-7 )1,0010

32、0,1110 X+Y补 =1,0010 X+Y补=0,1110 X+Y=-1110 (-14) X+Y=+1110 (+14) 出错原因在于用了出错原因在于用了4个二进制位来表示绝对值为个二进制位来表示绝对值为18的和数的和数。污悉桅认幕役羚犬胁吊帛悲哗奸弊涵堪森先攘幻叛肩蠕棉拳睦字芹袜宛六四章数据的机器运算四章数据的机器运算28补码加减运算溢出补码加减运算溢出n当运算结果超出了机器所能表示的范围时,当运算结果超出了机器所能表示的范围时,数值位侵占了符号位,这种现象称为数值位侵占了符号位,这种现象称为溢出溢出。两个同符号的数相加会产生溢出。两个同符号的数相加会产生溢出。 n两个正数相加,结果大

33、于机器所能表示的两个正数相加,结果大于机器所能表示的最大正数,称为最大正数,称为上溢(正溢)上溢(正溢)。n两个负数相加,结果小于机器所能表示的两个负数相加,结果小于机器所能表示的最小负数,称为最小负数,称为下溢(负溢)下溢(负溢)。颁够次酒齐肉妊延沦黄脂圈筏漂戍仁再觅睦取淮棋碳爪洗腑匹瞩窗揣沾哇四章数据的机器运算四章数据的机器运算29补码加减溢出的判别方法补码加减溢出的判别方法 判断溢出的三种基本方法:判断溢出的三种基本方法: 采用一个符号位判别采用一个符号位判别 l当参加运算的两个数的符号为当参加运算的两个数的符号为0、而和的符号、而和的符号位为位为1时上溢;时上溢;l当参加运算的两个数的

34、符号为当参加运算的两个数的符号为1、而和的符号、而和的符号位为位为0时下溢。时下溢。 判别条件为:溢出判别条件为:溢出= XsYsSs+XsYsSs其中,其中,Xs、Ys为参加运算两数的符号,为参加运算两数的符号, Ss为结果符号位。为结果符号位。繁巍岸碍赘撮启紧毙咎臀因少寐褂敞蛮庞凝闭阀到粘降写比压鱼减救瓦运四章数据的机器运算四章数据的机器运算30补码加减溢出的判别方法补码加减溢出的判别方法( (续续) ) 采用进位位判别采用进位位判别l两两个个正正数数相相加加,当当最最高高有有效效位位产产生生进进位位(C1=1)而而符号位不产生进位(符号位不产生进位(Cs=0)时,发生上溢;)时,发生上溢

35、;l两两个个负负数数相相加加,当当最最高高有有效效位位不不产产生生进进位位(C1=0)而符号位产生进位,发生下溢。而符号位产生进位,发生下溢。判别条件为:溢出判别条件为:溢出=CsC1+CsC1=Cs C1采用变形补码(双符号位补码)采用变形补码(双符号位补码)l采用变形补码检测,当运算结果的两符号位不一致采用变形补码检测,当运算结果的两符号位不一致时表示溢出。若符号位用时表示溢出。若符号位用Ss1Ss2表示,则表示,则Ss1Ss2=01结果上溢,结果上溢,Ss1Ss2=10结果下溢结果下溢.判别溢出的条件为:判别溢出的条件为:溢出溢出=Ss1 Ss2SS1始终正确始终正确稀掩兢昔跟医辽痉苞卯

36、顽孺涡两挫陷流谢蛋暮蚊戈昂枚最棕谚芝扩羊翘掀四章数据的机器运算四章数据的机器运算313 3、补码定点加减运算器的基本组成、补码定点加减运算器的基本组成 l补码加法:补码加法:在在XF、YF、FX三个控制三个控制信号的控制下,打开门信号的控制下,打开门A、门、门B和门和门C,把寄,把寄存器存器X和寄存器和寄存器Y的内的内容送入加法器的两个输容送入加法器的两个输入端进行加法运算,把入端进行加法运算,把结果送回寄存器结果送回寄存器X中中.l补码减法:与补码加法补码减法:与补码加法不同之处在于要用不同之处在于要用YF来代替来代替YF、并、并在在1F控制信号作用控制信号作用下使结果加下使结果加1,即可完

37、,即可完成补码减法运算。成补码减法运算。筏慧巾睛蚂晦街帐夯牛霓勾别港熔幸夺傣凿尧腰芝椎炬著短刁找楔菩晴琉四章数据的机器运算四章数据的机器运算32三、带符号数的移位与舍入三、带符号数的移位与舍入 n移位移位是算术、逻辑运算的又一基本操作,而且几乎是算术、逻辑运算的又一基本操作,而且几乎所有机器的指令系统都设有移位指令。所有机器的指令系统都设有移位指令。比如,乘法比如,乘法运算大多数是通过运算大多数是通过“累加累加移位移位”来实现的。来实现的。n算术移位操作时,算术移位操作时,符号位不变符号位不变,数值大小则会发生,数值大小则会发生变化。左移一位相当于乘以变化。左移一位相当于乘以2,右移一位相当于

38、除,右移一位相当于除以以2,因为移位使位权发生了变化,因为移位使位权发生了变化。n在移位过程中,有效数位会被移出数据字而丢失。在移位过程中,有效数位会被移出数据字而丢失。因此,还需要考虑数据的舍入问题,以尽可能提高因此,还需要考虑数据的舍入问题,以尽可能提高数据的表示精度。数据的表示精度。足棉拢耪姥酚瞬鬼梦梳旅考拓愁得俩奴卜豌基蕾糙似眼诣蔼寸口讲则浙坤四章数据的机器运算四章数据的机器运算331 1、移位规则、移位规则 n原码移位规则原码移位规则n符号位不变符号位不变n空出位补空出位补0例如:例如:1X1X2X3Xn左移后为:左移后为:1X2X3Xn0右移后为:右移后为:10X1X2Xn-1n补

39、码移位规则补码移位规则n符号位不变符号位不变n左移时,空出位补左移时,空出位补0n右移时,符号位补充空出位右移时,符号位补充空出位例如:例如:1X1X2X3Xn左移后为:左移后为:1X2X3Xn0右移后为:右移后为:11X1X2Xn-1算术左移在不产生溢出时,算术左移在不产生溢出时,符号位保持不变。符号位保持不变。 我们用的微机使用补码我们用的微机使用补码来表示数据来表示数据. 唱白待查枫或茧嚷瓮帜娇祖退诱先搬发馁扛尿烁云卵颊钦刺亭碎吹堰承珠四章数据的机器运算四章数据的机器运算342 2、移位器逻辑电路、移位器逻辑电路 n移位器移位器是由与是由与门和或和或门组成的成的逻辑电路(路(实际是一个是

40、一个多路多路选择器),可以器),可以实现直直传(不移位)、左斜一位(不移位)、左斜一位送(左移一位)和右斜一位送(右移一位)的功能。送(左移一位)和右斜一位送(右移一位)的功能。移位器移位器逻辑电路如路如图所示。所示。 左移由左移由2FL控制,控制,Fi-1Li直传由直传由FL来控制,来控制,FiLi右移由右移由F/2L来控制,来控制,Fi+1Li移位器无数据寄存能力。移位器无数据寄存能力。素私骸窒蜘拴镭级道址颊寨肩冒鲤喜画腆选蛔芹妮沮狙在蔫佩颅捎孜碾倡四章数据的机器运算四章数据的机器运算353 3、舍入操作、舍入操作 n舍入操作有以下几种:舍入操作有以下几种:n截断法截断法:无条件地舍去多余

41、的位。无条件地舍去多余的位。n恒置恒置1法法:舍去多余位,保留部分最低位置舍去多余位,保留部分最低位置1。 n0舍舍1入法入法:舍去部分的最高位为舍去部分的最高位为1时,则保留部时,则保留部分末位加分末位加1,与四舍五入法类似,与四舍五入法类似。n截断法和恒置截断法和恒置1法误差比较大;法误差比较大;0舍舍1入法比较合理,入法比较合理,但当保留部分为但当保留部分为0.111时,会导致再次溢出。末时,会导致再次溢出。末位恒置位恒置1,在除法中非常有用。,在除法中非常有用。枷谢邮慨迸舍步香傈红舰试手辜伴察排今惜商该坍畴沉突丛呕渭压瓤釜岛四章数据的机器运算四章数据的机器运算36四、定点乘法运算四、定

42、点乘法运算 乘法运算要比加法运算复杂。先举一个大家熟悉的手工定点乘法乘法运算要比加法运算复杂。先举一个大家熟悉的手工定点乘法的例子;之后我们来看,如果将手工运算改为机器运算,会出现的例子;之后我们来看,如果将手工运算改为机器运算,会出现什么问题?该如何解决?什么问题?该如何解决?l例:例:0.11010.1011=?0.11010.1011110111010000+11010.10001111l手工计算的二进制乘法规则:手工计算的二进制乘法规则:数值位:数值位: 00 = 0 10 = 0 11 = 1,逻辑与。,逻辑与。符号位:符号位: 同号相乘为正同号相乘为正 异号相乘为负,逻辑异或异号相

43、乘为负,逻辑异或其结果:乘积其结果:乘积 = 符号位符号位 / 数值位。数值位。 金颠柱岳届躯佳买皿棋恃焊趣坝辆宫故卸汕侩筷稿添捉乡蚜牌软契兵悦婴四章数据的机器运算四章数据的机器运算37乘法:由手工计算到机器运算乘法:由手工计算到机器运算n由手工计算到机器运算,需要解决由手工计算到机器运算,需要解决3个问题:个问题:n符号如何处理?符号如何处理?n多个部分积如何相加?多个部分积如何相加?n为保持两次部分积之间的位权对应关系,会导致加法器位数的增为保持两次部分积之间的位权对应关系,会导致加法器位数的增加,能否在不增加位数的情况下保持位权对应?加,能否在不增加位数的情况下保持位权对应?n由于解决方

44、式的不同,形成了两种主要的乘法器结构由于解决方式的不同,形成了两种主要的乘法器结构n采用常规的加法器来实现采用常规的加法器来实现n将将n位乘法转换为位乘法转换为n次累加和移位,每次处理次累加和移位,每次处理1位。位。n为避免加法器位数的扩充,可以把手工计算时的新部分积为避免加法器位数的扩充,可以把手工计算时的新部分积“左移左移累加累加”改为机器运算的原部分积改为机器运算的原部分积“累加累加右移右移”。n采用阵列乘法器实现采用阵列乘法器实现n利用中大规模集成电路把多项部分积同时相加,这种结构的利用中大规模集成电路把多项部分积同时相加,这种结构的乘法器称为阵列乘法器。乘法器称为阵列乘法器。 兜矣权

45、瘩炼棵蓬托暗级斜相臻婴睫私穷申历撒苇粉抠淖纠衙对驱敛秋辅年四章数据的机器运算四章数据的机器运算381 1、原码一位乘法、原码一位乘法 n原码一位乘法是从手算演变而来的,即用两个操作数的绝对值相原码一位乘法是从手算演变而来的,即用两个操作数的绝对值相乘,乘积的符号为两操作数符号的异或值乘,乘积的符号为两操作数符号的异或值(同号为正,异号为负同号为正,异号为负).乘积乘积P=|X|Y|符号符号Ps=Xs Ysn原码一位乘法的规则原码一位乘法的规则被乘数和乘数取绝对值。被乘数和乘数取绝对值。乘数的最低位为乘数的最低位为1时,部分积加被乘数,否则加时,部分积加被乘数,否则加0。部分积和乘数右移一位。部

46、分积和乘数右移一位。重复重复,直到乘数全部移出。,直到乘数全部移出。积的符号由两乘数符号的异或得到。积的符号由两乘数符号的异或得到。积的符号与积的数值拼接得到积的原码。积的符号与积的数值拼接得到积的原码。铺舔谭龚瞄襟荚彭便歪悯丘瑶舒舅摇颖陡超日逆谚卞模痉拥纱呸殷便葡胎四章数据的机器运算四章数据的机器运算39原码一位乘示例原码一位乘示例实际运算的准备工作:实际运算的准备工作:n|被乘数被乘数|B寄存器寄存器n|乘数乘数|C寄存器(将要存放部分积的低位)寄存器(将要存放部分积的低位)n0A寄存器(将要存放部分积的高位)寄存器(将要存放部分积的高位)例例4:已知:已知:X=0.1101,Y=-0.1

47、011,求求:XY。解:解:|X|=00.1101B(被乘数采用双符号位被乘数采用双符号位)|Y|=.1011C(乘数取数值乘数取数值)0A岳赚炯跳潮舵差溪密凯妻酷梢看出祝膘毅湍师您邓表钎厨根醋鹿志酿孕巡四章数据的机器运算四章数据的机器运算40AC说明说明原码一位乘原码一位乘00.00001011+|X|00.1101C4=1,+|X|00.110100.01101101部分积右移一位部分积右移一位01.0011+|X|00.1101C4=1,+|X|00.10011110部分积右移一位部分积右移一位+000.0000C4=0,+000.100100.01001111部分积右移一位部分积右移一

48、位+|X|00.1101C4=1,+|X|01.000100.10001111部分积右移一位部分积右移一位Ps=Xs Ys=0 1=1X Y=-0.10001111翻谈专精挚熔镊身绽诞衰账截腿翼怠殆忽蠢猖篇株逐庭梳载库卯腹耘靳拱四章数据的机器运算四章数据的机器运算41原码一位乘法的硬件实现原码一位乘法的硬件实现 nA、B为为n+2位,位,C为为n位,加法器位,加法器为为n+2位,异或门。位,异或门。nA、C寄存器级连在一起,具有右寄存器级连在一起,具有右移功能。每次移位时,移功能。每次移位时,A的最低位的最低位进入进入C的最高位,而的最高位,而C的最低位被的最低位被丢掉。最后,丢掉。最后,A的

49、内容为乘积的高的内容为乘积的高位部分,位部分,C的内容为乘积的低位部的内容为乘积的低位部分。分。nC的最低位作为控制信号,控制运的最低位作为控制信号,控制运算器加被乘数还是加零。算器加被乘数还是加零。汾淖叔特涵亲朝梦毅捅釉善连甜类售异锹蒋岿拙几戴播问能阀卉撰狄绑敦四章数据的机器运算四章数据的机器运算422 2、补码一位乘法、补码一位乘法 n原码乘法虽然容易实现,但一般计算机中数据多以补码表原码乘法虽然容易实现,但一般计算机中数据多以补码表示。若仍用原码做乘法,需要进行码制转换,反倒不方便示。若仍用原码做乘法,需要进行码制转换,反倒不方便而且又影响速度。而且又影响速度。n因为补码符号位直接参加运

50、算,所以补码乘法不能简单地因为补码符号位直接参加运算,所以补码乘法不能简单地套用原码乘法的算法。实现补码乘法有套用原码乘法的算法。实现补码乘法有2种方法。种方法。n一种方法为一种方法为校正法校正法,使用较少,只给出算式:,使用较少,只给出算式:XY补补=X补补(0.X1X2Xn)-X补补Yn另一种更好的方法为另一种更好的方法为比较法比较法,该算法是英国人,该算法是英国人Booth夫妇夫妇提出,所以也称为提出,所以也称为Booth法。该算法无需校正,控制较为法。该算法无需校正,控制较为简单。以下主要讨论比较法。简单。以下主要讨论比较法。蔓袒骗躲检冈鼓灰策颤叮离批敬榜元跺习逢幂豁寂义蕾奄侣谐了砒乌

51、晰怂四章数据的机器运算四章数据的机器运算43Booth的推导的推导设:被乘数设:被乘数X补补=X.X1X2Xn,乘数,乘数Y补补=Y.Y1Y2Yn,则:,则:XY补补=X补补0.Y1Y2Yn-X补补Y=X补补2-1Y1+2-2Y2+2-nYn-X补补Y=X补补-Y+2-1Y1+2-2Y2+2-nYn=X补补-Y+(Y1-2-1Y1)+(2-1Y2-2-2Y2)+(2-(n-1)Yn-2-nYn)=X补补(Y1-Y)+(Y2-Y1)2-1+(0-Yn)2-n=X补补(Y1-Y)+(Y2-Y1)2-1+(Yn+1-Yn)2-n;Yn+1=0上式表明:上式表明:XY补补可以根据乘数相邻两项的比较结果

52、,可以根据乘数相邻两项的比较结果,即用即用“低位低位-高位高位”的值来确定每步的运算操作。的值来确定每步的运算操作。浓香符肠桥箩装涣航塔芯丹馆降娟题绕步鸯科龟伍臭追臃酋酪锥真略润祟四章数据的机器运算四章数据的机器运算44Booth法的递推公式法的递推公式从前面的推导中得出递推公式:从前面的推导中得出递推公式:Z0补补=0Z1补补=2-1Z0补补+(yn+1-yn)X补补Z2补补=2-1Z1补补+(yn-yn-1)X补补 Zn补补=2-1Zn-1补补+(y2-y1)X补补XY补补=Zn补补+(y1-ys)X补补式中,式中,Z0补补为初始部分积,为初始部分积,Z1补补Zn补补为每次累加并右移之后的

53、部分积。为每次累加并右移之后的部分积。XY补补=X补补(y1-y0)+(y2-y1)2-1+(yn+1-yn)2-nn12营啃全交飞死耍造脐救恐见豢晒斌恿凋拈锦租翰访末托苞昌呛簿仙富猫菇四章数据的机器运算四章数据的机器运算45Booth乘法运算规律与规则乘法运算规律与规则n判断位判断位YnYn+1操操作作00原部分积右移一位原部分积右移一位01原部分积加原部分积加X补补后右移一位后右移一位10原部分积加原部分积加-X补补后右移一位后右移一位11原部分积右移一位原部分积右移一位n参加运算的数用补码表示,结果也是补码;符号位直接参加运算。参加运算的数用补码表示,结果也是补码;符号位直接参加运算。

54、n乘数最低位后面增加一位附加位乘数最低位后面增加一位附加位Yn+1,初值为,初值为0。n乘数的最低两位乘数的最低两位YnYn+1的值决定每次执行的操作。的值决定每次执行的操作。 n部分积和乘数一起右移一位。部分积和乘数一起右移一位。 n共做共做n+1次累加、次累加、n次移位,最后累加不移位。次移位,最后累加不移位。由于符号位参加运算,部分积累加时最高有效位的进位可能侵占符由于符号位参加运算,部分积累加时最高有效位的进位可能侵占符号位,所以被乘数和部分积应取双符号位,乘数只需取一个符号位号位,所以被乘数和部分积应取双符号位,乘数只需取一个符号位规律规律规则规则帕革寞罗羡党盔链黔龚絮悟谐瞩虽翰蒸斜

55、喻醉闷符打镇座塘寻幂橇笨分支四章数据的机器运算四章数据的机器运算46补码一位乘示例补码一位乘示例例例5:已知:已知:X=-0.1101,Y=0.1011;求:求:XY。解:解:X补补=11.0011B,Y补补=0.1011C,-X补补=00.11010A运算过程见下页:运算过程见下页:菌合春歼蹬乔屉网韩遭蚌娟辣窃舆索连前壬武摔甘僻侦泉钵屎蔡峭厨碎衔四章数据的机器运算四章数据的机器运算47补补码一位乘码一位乘AC附加位附加位说明说明00.00000.10110+-X补补00.1101C4C5=10,+-X补补00.110100.0110101011部分积右移一位部分积右移一位+000.0000C

56、4C5=11,+000.011000.0011010101部分积右移一位部分积右移一位+X补补11.0011C4C5=01,+X补补11.011011.1011001010部分积右移一位部分积右移一位+-X补补00.1101C4C5=10,+-X补补00.100000.0100000101部分积右移一位部分积右移一位+X补补11.0011C4C5=01,+X补补11.0111X Y补补=1.01110001X Y=-0.10001111锑肿分硷匠包索咐闺贞融罕箔飘筋宾哄汪陈龋系趟酣梧硅缩瑶要漓摩氨醚四章数据的机器运算四章数据的机器运算48补码一位乘法的硬件实现补码一位乘法的硬件实现nA、B、C

57、为为n+2位,位,加法器为加法器为n+2位。位。与或门有与或门有n+2个。个。n各器件的作用与原码各器件的作用与原码一位乘法相同。控制一位乘法相同。控制方式上有所不同,即方式上有所不同,即由由C寄存器的最低两寄存器的最低两位来控制加、减被乘位来控制加、减被乘数或加数或加0操作。操作。 东厅防贵拂芭禹札觉幼诞补役录颜辟檀化倦脉念迢姿肛右霜击浚彼醋寅臂四章数据的机器运算四章数据的机器运算493 3、阵列乘法器、阵列乘法器 为了提高乘法运算速度,还可以采用高速阵列乘法器为了提高乘法运算速度,还可以采用高速阵列乘法器执行乘法运算。执行乘法运算。设有两个设有两个不带符号不带符号的二进制整数:的二进制整数

58、: A、B两数的乘积两数的乘积P为:为:假设,当假设,当m=n=4时,来考虑乘法的情况:时,来考虑乘法的情况: 忧枢盆茸笼步涟慌矿谰吟茧泻戴缩闭烯白性铂元式药球跺俘其嘻丑夜摄佑四章数据的机器运算四章数据的机器运算50阵列乘法器原理阵列乘法器原理a3a2a1a0b3b2b1b0a3b0a2b0a1b0a0b0a3b1a2b1a1b1a0b1a3b2a2b2a1b2a0b2+a3b3a2b3a1b3a0b3P7p6p5p4p3p2p1p0招睦碘邱谢黎孩斟矢旺抬皑溅螟隧么腑韭枪屯悼坊件台债瞧柱序萌皑皋二四章数据的机器运算四章数据的机器运算51阵列乘法器原理(续一)阵列乘法器原理(续一)n一个基本乘法

59、单元由两部分组成:一个基本乘法单元由两部分组成:naibi是逻辑与运算,可用与门实现是逻辑与运算,可用与门实现n错位相加可用全加器完成错位相加可用全加器完成基本乘法单元原理图基本乘法单元原理图碎池楚乃院微琶至施辑讽花里京斤下锄辰衅鄂态赚消讨犀友普闰摸逗扇川四章数据的机器运算四章数据的机器运算52阵列乘法器原理(续二)阵列乘法器原理(续二)由乘法单元构成的乘法器如图所示,每个方框代表一个基本乘法单元由乘法单元构成的乘法器如图所示,每个方框代表一个基本乘法单元.门宰晦鸥杖括邪继惦即蘸杏降秧刽航遵膳爆滑禽黔队本算叼戴荡桥害唁哎四章数据的机器运算四章数据的机器运算53阵列乘法器原理(三)阵列乘法器原理

60、(三)n构成构成nn整数阵列乘法器,共需要整数阵列乘法器,共需要nn个个乘法单元。乘法单元。n若采用补码相乘时,可在上述乘法阵列外若采用补码相乘时,可在上述乘法阵列外增加三个求补器,两个为增加三个求补器,两个为算前求补器算前求补器,将两个操作数先变成正整数,一个为将两个操作数先变成正整数,一个为算算后求补器后求补器,在相乘两数符号不一致时,在相乘两数符号不一致时,把运算结果变成补码把运算结果变成补码。谐偏勺登暮信渝瘟狡籽抚汉枷爷恨合侗毛临谅装俞瞪族兽晚受五占席听恶四章数据的机器运算四章数据的机器运算54五、定点除法运算五、定点除法运算 n大家很熟悉除法运算。手工计算大家很熟悉除法运算。手工计算

61、除法的关键是比较余除法的关键是比较余数与除数的大小,根据比较结果决定商值。数与除数的大小,根据比较结果决定商值。n问题是,当将手工计算转换为机器运算时,如何判断问题是,当将手工计算转换为机器运算时,如何判断够减?如何处理符号位?如何提高运算速度?够减?如何处理符号位?如何提高运算速度?n除法运算是乘法运算的逆运算。乘法通过除法运算是乘法运算的逆运算。乘法通过加加- -右移右移实实现现,不难想到机器除法运算是通过,不难想到机器除法运算是通过减减-左移左移实现的。实现的。n机器实现除法运算有两个先决条件(纯小数):机器实现除法运算有两个先决条件(纯小数):n除数不等于除数不等于0,否则商为无穷大。

62、,否则商为无穷大。n被除数要小于除数,否则商会溢出。被除数要小于除数,否则商会溢出。熬广恨早周钮分掉抹馁允岩梨懂谢散饱暑泛摹妄窑冲颇饿绍迷兆娩夹描锗四章数据的机器运算四章数据的机器运算551 1、原码恢复余数法、原码恢复余数法 n所谓恢复余数法,不管被除数(或部分余数)是否所谓恢复余数法,不管被除数(或部分余数)是否够减除数,都一律先做减法。若部分余数为正,表够减除数,都一律先做减法。若部分余数为正,表示够减,该位商上示够减,该位商上“1 1”;若部分余数为负,表示不;若部分余数为负,表示不够减,该位商上够减,该位商上“0 0”,并要恢复余数(加除数)。,并要恢复余数(加除数)。n恢复余数法恢

63、复余数法固有的缺点固有的缺点:n由于部分余数的正、负是随机出现的,使得除法由于部分余数的正、负是随机出现的,使得除法运算的实际运算的实际操作次数不固定操作次数不固定,控制控制电路路较复复杂。n在恢复余数时,要在恢复余数时,要多作一次加法多作一次加法,降低了除法的,降低了除法的执行的速度。执行的速度。 紫碍咏朔葡银请玲冯尊绳磐穿酵症凝北闭倘民钙昌塔纵慧坚膝炳籽办值辉四章数据的机器运算四章数据的机器运算562 2、原码不恢复余数法、原码不恢复余数法n分析恢复余数法发现,当减除数操作使得余数为负数时,分析恢复余数法发现,当减除数操作使得余数为负数时,商为商为“0”,并恢复余数,然后左移,再减除数。,

64、并恢复余数,然后左移,再减除数。若用若用R表示余数,用表示余数,用B表示除数,上述操作过程可表示为:表示除数,上述操作过程可表示为:(R+B)2B=2R+B结论:当余数为负时,商上结论:当余数为负时,商上“0”,余数左移一次后加除数,余数左移一次后加除数,结果不变。这就是结果不变。这就是不恢复余数法不恢复余数法的实现思想。的实现思想。n不恢复余数法(加减交替法)的运算规则为:不恢复余数法(加减交替法)的运算规则为:n若余数若余数0,上商,上商“1”,余数左移一位,减除数。,余数左移一位,减除数。n若余数若余数0,上商,上商“0”,余数左移一位,加除数。,余数左移一位,加除数。n由于加减运算交替

65、地进行,所以又称为由于加减运算交替地进行,所以又称为原码加减交替法原码加减交替法。烛忧误族辑烁哉犀催妨孙羹单漂苦誉匆邦粗掌稍据娟采熙思傍循术衡碱据四章数据的机器运算四章数据的机器运算57原码不恢复余数法示例原码不恢复余数法示例除法运算需要除法运算需要3个寄存器:个寄存器:nA寄存器存放被除数:寄存器存放被除数:被除数被除数AnB寄存器存放除数:寄存器存放除数:除数除数BnC寄存器存放商:寄存器存放商:商商C例例6:已知:已知:X=-0.10101,Y=0.11110,求:,求:XY。解:解:|X|=00.10101A,0C|Y|=00.11110B,-|Y|=11.00010贯灯批坝碗摊抡嚷篆

66、啃众妆梭洞环愁跺泪蔬屿影贫光湿击瘫莉售贴锑享瓜四章数据的机器运算四章数据的机器运算58原码不恢原码不恢复余数法复余数法AC说明说明00.101010.00000-|Y|11.00010-|Y|11.101110.00000余数为负,商011.01110左移一位+|Y|00.11110+|Y|00.011000.00001余数为正,商100.11000左移一位-|Y|11.00010-|Y|11.110100.00010余数为负,商011.10100左移一位 +|Y|00.11110+|Y|00.100100.00101余数为正,商101.00100左移一位-|Y|11.00010-|Y|00.

67、001100.01011余数为正,商100.01100左移一位-|Y|11.00010-|Y|11.011100.10110余数为负,商0+|Y|00.11110恢复余数,恢复余数,+|Y|00.01100原码原码需要需要腆足而叹关软辩铸抚漳镊考碴奏盏哀乍牧眺樟钙诊候曲租落玉株冕嗣政荆四章数据的机器运算四章数据的机器运算59原码不恢复余数法示例(续)原码不恢复余数法示例(续)Qs=Xs Ys=1 0=1商商=0.10110余数余数=0.01100 2-5XY=-(0.10110+)0.01100 2-50.11110需要注意几点:需要注意几点: 1 1、不恢复余数法,被除数、除数需要取双符号位

68、。、不恢复余数法,被除数、除数需要取双符号位。2 2、如果最终余数为负,必须恢复一次余数且不需左移。、如果最终余数为负,必须恢复一次余数且不需左移。 3 3、符号位不参加原码运算,应单独处理。、符号位不参加原码运算,应单独处理。窃狱观换醋董子辈福痛渭阀虫尧棺康滨衡字吐卤燃损削上恩喊换卷游喂痹四章数据的机器运算四章数据的机器运算60原码不恢复余数法的硬件实现原码不恢复余数法的硬件实现nA、B寄存器,寄存器,n+2位位C寄存器,寄存器,n+1位位加法器,加法器,n+2位位与或门,与或门,n+2个个nA、C寄存器级连在一起,具寄存器级连在一起,具有左移一位功能。每次移位时,有左移一位功能。每次移位时

69、,C的最高位进入的最高位进入A的最低位,的最低位,而而C的最低位用来保存每次运的最低位用来保存每次运算得到的商。算得到的商。A的初值为被除的初值为被除数,最后变为余数,数,最后变为余数,C的内容的内容为除法得到的商。为除法得到的商。在运算过程中,由余数的符号在运算过程中,由余数的符号决定商值和下一步操作,即控决定商值和下一步操作,即控制运算器加除数还是减除数。制运算器加除数还是减除数。氟椽剂纲慌妥唆扛著挎牢烛塞桨谭谴郸存外燃徽闰棱峭淋蓬咏点椎铝哎应四章数据的机器运算四章数据的机器运算613 3、补码、补码不恢复余数除法不恢复余数除法n牢记补码的定义。如果牢记补码的定义。如果被除数和除数异号且够

70、减,则被除数和除数异号且够减,则商为商为0,因为商将是负数的补码;原码正好相反。,因为商将是负数的补码;原码正好相反。 n除法的实质是除法的实质是“减法减法”,当用补码表示的两个数执行,当用补码表示的两个数执行除法运算时,同号时应该做减法,异号时应该做加法。除法运算时,同号时应该做减法,异号时应该做加法。n当相除两数同号时,余数和除数也同号则够减,商为当相除两数同号时,余数和除数也同号则够减,商为1,因为商是正数,因为商是正数,补码补码 = 原码;原码;当相除两数异号时,当相除两数异号时,余数和除数同号则不够减,商也为余数和除数同号则不够减,商也为1,因为商为负数,因为商为负数,补码补码 =

71、反码反码+2-n (或(或+1) 。显淋宪墓绩埋药瞒抉桐惕碱涨涡负环苏瞅蝴遂春撵液阳显织茧兢港堂印宝四章数据的机器运算四章数据的机器运算62关于除法的够除和不够除关于除法的够除和不够除渔税塘渐塘很不哮泽善君画沟刺轴晌吱爸堵皋碉歉罐塑付犯电增略晕阁菠四章数据的机器运算四章数据的机器运算63补码不恢复余数除法的补码不恢复余数除法的上商上商和和商符商符1 1、只能通、只能通过余数和除数作比余数和除数作比较,判断是否够减。,判断是否够减。n被除数、除数被除数、除数同号同号,余数、除数同号则,余数、除数同号则够减够减,上商,上商1 1n被除数、除数被除数、除数异号异号,余数、除数同号,余数、除数同号不够

72、减不够减,上商,上商1 1 所以,补码除法的上商规则可归结为:所以,补码除法的上商规则可归结为: 余数、除数同号,上商余数、除数同号,上商1 1 ; 余数、除数异号,上商余数、除数异号,上商0 0 。2、商的符号在求、商的符号在求商商的的过程中自程中自动形成形成:在除法的先决条件下(在除法的先决条件下(|X|Y|和和Y0)n当被除数与除数同号当被除数与除数同号时,第一次除法肯定不,第一次除法肯定不够减,减,商商为0,恰恰好表示好表示正号正号;n当被除数与除数异号当被除数与除数异号时,部分余数一定跟除数同号,部分余数一定跟除数同号,商商为1,也恰好表示,也恰好表示负号号。举例说明举例说明械方白是

73、而浊阂洲乞瓦画贼弗绍豪垣顾踪秤映又酌绪镶圣息荒梧换滁栅殿四章数据的机器运算四章数据的机器运算64补码不恢复余数除法的补码不恢复余数除法的操作操作n补码加减交替法操作规则:补码加减交替法操作规则:n部分余数和除数同号,上商部分余数和除数同号,上商1 1,下一步左移一位、减除数;,下一步左移一位、减除数;n部分余数和除数异号,上商部分余数和除数异号,上商0 0,下一步左移一位、加除数。,下一步左移一位、加除数。n结果修正:结果修正: n得到正商,不需要修正。得到正商,不需要修正。 n得到负商,实质上是商的反码,低位得到负商,实质上是商的反码,低位+1才能成为补码。才能成为补码。n一般的一般的处理方

74、法理方法为:为:无无论正商正商还是是负商,末位恒置商,末位恒置为为1。 膀疙目皮仔襄狄臣胡状捧疡丝巾瘤吼腊均帖犊描辩扦盆胳她谗滑绷党足迁四章数据的机器运算四章数据的机器运算65补码不恢复余数除法示例补码不恢复余数除法示例例例7:已知已知X=0.1000,Y=-0.1010;求求XY。解:解:X补补=00.1000A,Y补补=11.0110B,0C-Y补补=00.1010壶箭董平限烷舀狠献禽富舷夜悦腰藉耳眠驮权古盖费胡惩壳儿隐奠歹复蚂四章数据的机器运算四章数据的机器运算66补码不恢复补码不恢复余数除法余数除法AC说明说明00.10000.0000+Y补补11.0110X补补、Y补补异号,异号,+

75、Y补补11.1100左移一位左移一位+-Y补补00.1010+-Y补补00.01100.0010ri补补、Y补补异号,商异号,商000.1100左移一位左移一位+Y补补11.0110+Y补补00.00100.0100ri补补、Y补补异号,商异号,商0+Y补补11.0110+Y补补11.10100.1001ri补补、Y补补同号,商同号,商111.0100左移一位左移一位+-Y补补00.1010+-Y补补11.11100.0001ri补补、Y补补同号,商同号,商100.0100左移一位左移一位11.11101.0011末位恒置末位恒置1补码不补码不需校正需校正肌撒蓉愿盅理才悸做郝趋嵌澄砒零尧涨巢月

76、叫漂凛纽早苗怨摘概聊鞋昌泄四章数据的机器运算四章数据的机器运算67补码不恢复余数除法示例(续)补码不恢复余数除法示例(续)商商补补=1.0011余数余数补补=1.1110 2-4商商=-0.1101余数余数=-0.0010 2-4-0.0010 2-4-0.1010XY=-0.1101+1.1110 2-41.0110XY补补=1.0011+=-0.1101+0.0010 2-40.1010膳舆滑凛辱仙鸣摔崎玲匈愁封斡哦磷讲篆豆履几杀茧晕穗萍片隶姬沦觉磁四章数据的机器运算四章数据的机器运算68补码不恢复余数除法的硬件实现补码不恢复余数除法的硬件实现 n补码不恢复余数补码不恢复余数除法的硬件实现

77、除法的硬件实现与原码基本相同,与原码基本相同,只是加减和上商只是加减和上商的条件不同,也的条件不同,也不需要异或门处不需要异或门处理符号位。理符号位。嫉臣赵医鸡空嘱钠虾益石岸往血像扒倒药疼怒怨淄王称僻歇蹦贪格拧涕乃四章数据的机器运算四章数据的机器运算694 4、阵列除法器、阵列除法器 n可控加减单元可控加减单元CAS是构成是构成阵列除法器的基本单元。阵列除法器的基本单元。由一个全加器和一个异或由一个全加器和一个异或门组成。如下图所示。门组成。如下图所示。n可控加减单元可控加减单元CAS有四个输入端和四个输出端。有四个输入端和四个输出端。当控制线当控制线P=0时,时,Yi P=Yi,全加器完成,

78、全加器完成Yi+Xi;当控制线当控制线P=1时,时,Yi P=Yi,全加器完成,全加器完成Yi+Xi。 n同乘法一样,为提高除法的运算速度,可采用阵列除同乘法一样,为提高除法的运算速度,可采用阵列除法器。以下介绍法器。以下介绍两个正数的不恢复余数阵列除法器两个正数的不恢复余数阵列除法器。被除数被除数除数除数丙棱鄙税湾星费灭疑配宾捐赔羽秤蜡鸵玛门粳哭揪凭邹库岛胳喇寝堵篷吵四章数据的机器运算四章数据的机器运算70阵列除法器原理阵列除法器原理被除数被除数X各位沿竖直线送到各位沿竖直线送到CAS,除数,除数Y沿斜线送到沿斜线送到CAS。做。做加法还是做减法,由控制线加法还是做减法,由控制线P决定。由于

79、是两正数相除,除法决定。由于是两正数相除,除法阵列第一行应执行减法操作,所以该行控制端阵列第一行应执行减法操作,所以该行控制端P=1,同时将,同时将P作为该行末端的进位输入,从而完成减法运算。作为该行末端的进位输入,从而完成减法运算。如果够减,有进位,商为如果够减,有进位,商为1,下行做减法。如果不够减,无进,下行做减法。如果不够减,无进位,商为位,商为0,下行做加法。其它行工作同上,得出商和余数。,下行做加法。其它行工作同上,得出商和余数。歼兽测就橙狡纽付滩履慨争淳奉埂且票棒世舌洁冯垄仍柳陕裤邪弯喷挠龚四章数据的机器运算四章数据的机器运算71商与进位的关系商与进位的关系n通过以下通过以下有模

80、运算进位图有模运算进位图理解商与进位的关系:理解商与进位的关系:够减,有进位,商为够减,有进位,商为1;不够减,无进位,商为;不够减,无进位,商为0。索谚气遗邢琉紧卞费仑澎贩产剔涝游允矗揪捷运亢黎拐墩添溜象妥腾赋止四章数据的机器运算四章数据的机器运算72六、浮点运算六、浮点运算n浮点数比定点数的表示范围宽,有效精度高,更浮点数比定点数的表示范围宽,有效精度高,更适合于科学与工程计算的需要。适合于科学与工程计算的需要。 n浮点数中包含两组代码,采用浮点数中包含两组代码,采用定点整数定点整数格式的阶格式的阶码和采用码和采用定点小数定点小数格式的尾数。因此,浮点运算格式的尾数。因此,浮点运算实质上包

81、含两组定点运算,阶码运算和尾数运算,实质上包含两组定点运算,阶码运算和尾数运算,但这两部分运算既有各自的作用,也有相互间的但这两部分运算既有各自的作用,也有相互间的关联。关联。n主要讨论规格化浮点数的运算,并特别强调主要讨论规格化浮点数的运算,并特别强调对阶对阶和和规格化规格化两个概念。两个概念。 东橱坯立某冉诉侩沸匆吻法紊陷曳惑扔证颅祥含仅硷镊疤泳俏荤浴丢搓豆四章数据的机器运算四章数据的机器运算731 1、浮点加减运算、浮点加减运算 设两个浮点数设两个浮点数x和和y,分别为:,分别为:x=2Ex.Mxy=2Ey.My两浮点数进行加减运算的规则为:两浮点数进行加减运算的规则为:当当ExEy时,

82、时,z=xy=(Mx.2Ex-EyMy)2Ey当当ExEy时,时,z=xy=(MxMy.2Ey-Ex)2Ex提取提取大阶大阶秧崖部颇脐变债毛誊考镜雕撅儿畜蛾莲洲犯毛竞腺施肛股掺儿哇庶状盾漆四章数据的机器运算四章数据的机器运算74浮点加减运算的操作过程浮点加减运算的操作过程0操作数检查操作数检查在两个浮点数中,如果有一个操作数为在两个浮点数中,如果有一个操作数为0,即可知道运算结果而,即可知道运算结果而没有必要进行后续的操作,这样可以节约时间。没有必要进行后续的操作,这样可以节约时间。对阶对阶两浮点数进行加减运算,首先要看阶码是否相同,即小数点位置两浮点数进行加减运算,首先要看阶码是否相同,即小

83、数点位置是否对齐。如果两数的阶码不相等,说明小数点没有对齐,此时是否对齐。如果两数的阶码不相等,说明小数点没有对齐,此时必须使两数的阶码相等,这个过程叫必须使两数的阶码相等,这个过程叫对阶对阶。首先求出两数的阶差:首先求出两数的阶差:E=ExEy:如果如果E=0,表明两阶码相等,对阶完成。,表明两阶码相等,对阶完成。如果如果E0,执行对阶,执行对阶,小阶向大阶看齐小阶向大阶看齐。尾数每右移一位,阶码加尾数每右移一位,阶码加1,直到两阶码相等为止;,直到两阶码相等为止;右移的位数等于阶差。右移的位数等于阶差。晒伙奉账岛炸劣坊日棠押晌靠壮汗斟太啄吓榔馁腕拜翻毋荣粘衣身榴唁肤四章数据的机器运算四章数

84、据的机器运算75浮点加减运算操作过程浮点加减运算操作过程( (续一续一) )尾数加减尾数加减Mz=MxMy,其算法与定点加减法相同。,其算法与定点加减法相同。结果规格化(结果规格化(以补码表示为例以补码表示为例)n结果的形式为结果的形式为00.1xxx或者或者11.0xxx,已经是规格化数据。,已经是规格化数据。n结果的形式为结果的形式为00.0xxx或者或者11.1xxx,尾数需要左移来规格化,尾数需要左移来规格化,称为左规。称为左规。n结果的形式为结果的形式为01.xxxx或者或者10.xxxx,表明尾数的绝对值大于,表明尾数的绝对值大于1,数值位侵占了符号位。尾数需要右移来规格化,称为右

85、规。,数值位侵占了符号位。尾数需要右移来规格化,称为右规。舍入舍入n在对阶或者向右规格化时,尾数右移,字的低位部分可能移出字在对阶或者向右规格化时,尾数右移,字的低位部分可能移出字外而被丢掉,从而引起误差。因此需要进行舍入处理。外而被丢掉,从而引起误差。因此需要进行舍入处理。n舍入舍入处理方法很多,如理方法很多,如截断法、恒置截断法、恒置1法、法、0舍舍1入法等。入法等。酱靠旗玫督叶喷骆叼琳闪行痕锡赵脐礼旗后泣概鳞杰洋解威卉过荔铲毙悔四章数据的机器运算四章数据的机器运算76浮点加减运算操作过程浮点加减运算操作过程( (续二续二) ) 溢出判断溢出判断 ( (注意:浮点数的溢出是以阶码溢出表现出

86、来的注意:浮点数的溢出是以阶码溢出表现出来的) ) n如果阶码正常,加减运算即可正常结束;如果阶码正常,加减运算即可正常结束; n如果阶码超过了可能表示的最大正指数值,阶码如果阶码超过了可能表示的最大正指数值,阶码上溢,认为数据为上溢,认为数据为,发生溢出中断。,发生溢出中断。 n如果阶码超过了可能表示的最小负指数值,阶码如果阶码超过了可能表示的最小负指数值,阶码下溢,一般认为数据为下溢,一般认为数据为0。 n两个同号尾数相加,出现的最高位向上的进位,两个同号尾数相加,出现的最高位向上的进位,在浮点数中不算溢出。在浮点数中不算溢出。桐朽愤霉惶焦硬钝萧煞兄瞄戎磕熊浙达臃挟诉竿填积扯淌懂窑斜钎槽邯

87、凛四章数据的机器运算四章数据的机器运算77浮点加减运算示例浮点加减运算示例例例8:A=0.1011102-01,B=-0.1010112-10,求,求A+B。解:假设这两个数的格式为:解:假设这两个数的格式为:阶码阶码4位,用移码(偏置量位,用移码(偏置量23)表示;)表示;尾数尾数8位,用补码表示,含一位符号位。位,用补码表示,含一位符号位。A浮浮=0111;0.1011100B浮浮=0110;1.0101010跑掸鉴休更傲亦幂帽拭秒穴便设偿揩抱晦眩蚤刃阵疤槛迫氮哩舵惜辟沪瓢四章数据的机器运算四章数据的机器运算78浮点加减运算示例(续)浮点加减运算示例(续)n对阶对阶E=EA-EB=-1-(

88、-2)=1EAEB,MB右移,右移,EB+1EB,对阶得到:,对阶得到:MB浮浮=0111;1.1010101n尾数求和尾数求和00.1011100+11.101010100.0110001n 规格化规格化 尾数需要左规:尾数需要左规:A+B浮浮=0110;0.110001A+B=0.1100012-10n 未发生溢出。未发生溢出。 泅缄款刑辊忘饮仓夸愤越塌栽议捉弥臻吉涤佩柔矣讲禹巴钢阴夯姑语证明四章数据的机器运算四章数据的机器运算792 2、浮点乘除运算、浮点乘除运算 设两个浮点数设两个浮点数x和和y,分别为:,分别为:x=2Ex.Mxy=2Ey.My两浮点数进行乘法运算的规则为:两浮点数进

89、行乘法运算的规则为:xy=2(Ex+Ey)(MxMy)xy=2(ExEy)(MxMy)啦报竖鲤诽钡廉茹圣涡傣胎模谊抒巫给串鹅顶裁颗窑雪桶饿畸行谬栖齿肺四章数据的机器运算四章数据的机器运算80浮点乘法运算步骤浮点乘法运算步骤l乘法运算的步骤如下:乘法运算的步骤如下:两浮点数相乘,乘两浮点数相乘,乘积的的阶码为相乘两数的相乘两数的阶码之和,而乘之和,而乘积的的尾数尾数为相乘两数尾数之相乘两数尾数之积。阶码相加相加如果如果阶码用用补码表示,表示,阶码相加之和无需校正;相加之和无需校正;如果如果阶码用移用移码表示,表示,阶码相加后要减去一个偏相加后要减去一个偏置置量量2n。另外,如果相加后,和发生溢出

90、,也要进行处理。另外,如果相加后,和发生溢出,也要进行处理。尾数相乘尾数相乘如果相乘两数都不为如果相乘两数都不为0,则可进行尾数相乘,尾数相乘的规则,则可进行尾数相乘,尾数相乘的规则与定点数乘法相同。与定点数乘法相同。尾数规格化尾数规格化如果尾数不是规格化数,则需要规格化,一般需要进行左规。如果尾数不是规格化数,则需要规格化,一般需要进行左规。左规时,如果阶码发生下溢,做机器零处理。左规时,如果阶码发生下溢,做机器零处理。颂把巴岂鱼骆木肺逢毕膨几蹿时寡智扶膛本不染爸魔庄熄两柔疹惰榔心饶四章数据的机器运算四章数据的机器运算81浮点数除法运算步骤浮点数除法运算步骤l除法运算的步骤如下:除法运算的步

91、骤如下:两浮点数相除,商的两浮点数相除,商的阶码为相除两数的相除两数的阶码之差,商的尾数之差,商的尾数为相除两数的尾数之商。相除两数的尾数之商。 尾数尾数调整整 被除数尾数的绝对值要小于除数尾数的绝对值,否则要被除数尾数的绝对值要小于除数尾数的绝对值,否则要通通过被被除数尾数的右移作出除数尾数的右移作出调整,每右移一次,其整,每右移一次,其阶码加加1。阶码相减相减如果如果阶码用用补码表示,表示,阶码相减之后无需校正;相减之后无需校正;如果阶码用移码表示,阶码相减后要加上一个偏移量如果阶码用移码表示,阶码相减后要加上一个偏移量2n。另外,如果相减后发生溢出,需另作处理。另外,如果相减后发生溢出,

92、需另作处理。尾数相除尾数相除如果相除两数的尾数都不为如果相除两数的尾数都不为0,则可进行尾数相除。由于第一,则可进行尾数相除。由于第一步进行了调整,运算结果就是规格化数。步进行了调整,运算结果就是规格化数。庭欺褥麦嚏佣彦庭裳刊尺行煮构脏梅溯烟拿毗烧邱袖浊泵渭咨花攻舒撇驻四章数据的机器运算四章数据的机器运算823 3、浮点运算器的硬件实现、浮点运算器的硬件实现 浮点运算器由阶码运算部件和尾数运算部件组成。浮点运算器由阶码运算部件和尾数运算部件组成。阶码运算部件阶码运算部件执行加执行加减两种运算、同时配合对阶或者规格化完成阶码的调整(减两种运算、同时配合对阶或者规格化完成阶码的调整(11););尾

93、数尾数运算部件运算部件完成加、减、乘、除运算,以及尾数规格化和溢出处理。完成加、减、乘、除运算,以及尾数规格化和溢出处理。CPU之外的浮点运算器之外的浮点运算器例如例如80x87是美国是美国Intel公司为处理浮点数的运算生产的专用算术运算公司为处理浮点数的运算生产的专用算术运算处理器,它是配合处理器,它是配合80x86CPU进行算术运算的,又称为协处理器。进行算术运算的,又称为协处理器。它它相当于相当于CPU的一个的一个I/O设备,虽然有自己的指令,但不能单独使用。,虽然有自己的指令,但不能单独使用。CPU之内的浮点处理器之内的浮点处理器例如奔腾例如奔腾CPU将浮点处理器包含在芯片内部,并且

94、采用流水设计。它将浮点处理器包含在芯片内部,并且采用流水设计。它有有U、V两条流水线,指令执行过程分为两条流水线,指令执行过程分为8个过程段。个过程段。浮点流水运算部件浮点流水运算部件根据浮点运算步骤,分别设置专门硬件来完成特定的运算。根据浮点运算步骤,分别设置专门硬件来完成特定的运算。例如,浮例如,浮点数加减操作,点数加减操作,设置置4套硬件,分套硬件,分别完成求完成求阶差、差、对阶、尾数求和、尾数求和、规格化等操作,形成流水作格化等操作,形成流水作业。成本虽高,但速度特快。成本虽高,但速度特快。惠糯雍暮峙叛铲朔噪乖圆苟借柑添郎钦前烽喷严劫贞敖救验稚旦拷耶拨飘四章数据的机器运算四章数据的机器

95、运算83* *七、十进制整数的加法运算七、十进制整数的加法运算 在计算机中,十进制数是用在计算机中,十进制数是用BCD码表示的,由码表示的,由4位二进制数表示位二进制数表示1位十进制数。通常这种二进位十进制数。通常这种二进制表示的十进制数的运算规律是:先按二进制制表示的十进制数的运算规律是:先按二进制规则运算,然后根据不同的编码加以校正,从规则运算,然后根据不同的编码加以校正,从而得到十进制运算结果。而得到十进制运算结果。 知招疽箔何唐逸贾枉醇宗茂料误云岁詹深倚诊俱奶湾圭凹凯蘸犊乳瞅伪蛤四章数据的机器运算四章数据的机器运算841 1、84218421码加法规则码加法规则n两个两个8421码相加

96、,按码相加,按“逢二进一逢二进一”原则进行。原则进行。n当和当和9时,无需校正。时,无需校正。n当和当和9时,则加时,则加6校正。校正。n在在+6校正的同时,将产生向上一位的进位。校正的同时,将产生向上一位的进位。削锣巴谭坠蘸耽菱海盂爸堰熬辅哩潮幂熟涸鸵钳多紧坟侥清钾叶踌殊痕絮四章数据的机器运算四章数据的机器运算8584218421码加法校正关系码加法校正关系101000001010+6校正校正11100010101112100100110013100110110114101000111015101010111116101101000017101111000118110001001019110

97、0110011十进制十进制8421码码C4S4S3S2S1校正前二进制校正前二进制C4S4S3S2S1校正规则校正规则校校正正函函数数 = = C C4 4+ + S S4 4SS3 3+ + S S4 4SS2 2向上一位的向上一位的进位位C4=校正函数校正函数疯衔桔龄涣别腊浆帝挺寐阴纤烫鹰蝴竟米粹逛阵龙脾绪掠戚隅里郁条渣逊四章数据的机器运算四章数据的机器运算8684218421码加法器的构成码加法器的构成校正函数校正函数 = C = C4 4+ S+ S4 4SS3 3+ S+ S4 4SS2 2向上一位的向上一位的进位位C4=校正函数校正函数敞茂髓笆劲蹿憎介伸桌密操衍舜桌宣贝椅倪广默候伸

98、拯气邯姿嗡磅讥岔立四章数据的机器运算四章数据的机器运算872 2、余、余3 3码的加法规则码的加法规则 n两个余两个余3码相加,按码相加,按“逢二进一逢二进一”的原则进行。的原则进行。n若其和没有进位,则减若其和没有进位,则减3校正。校正。n若其和有进位,则加若其和有进位,则加3校正。校正。矾沏别裹苹崖境芝啼师冲子寥蜜颈摄烁宋沟浙嘶拟汕踌崭铰杜胀二痕聚扰四章数据的机器运算四章数据的机器运算88余余3 3码加法校正关系码加法校正关系十进制数十进制数余余3码码C4S4S3S2S1校正前的二进制数校正前的二进制数C4S4S3S2S1校正与否校正与否01890001100100010110110000

99、110001110111001111-3校正校正101118191001110100110111110010000100011100011001+3校正校正C4=0,-3校正校正C4=1,+3校正校正向上一位的进位向上一位的进位C4=C4森双耐形嚣卷泛栅洁霜鸦偶即挤志溅虱残忘煌榴频矮乎捕会昭坡桥暇蹲磐四章数据的机器运算四章数据的机器运算89余余3 3码加法器的构成码加法器的构成C4=0,-3校正;校正;C4=1,+3校正校正蔷掸溉济来庶炭淮杖跺边疮柒粤尔捡僵赦殖宿征绘炎晒簇炬漓瞒服醚柠飞四章数据的机器运算四章数据的机器运算90* *八、逻辑运算与实现八、逻辑运算与实现 n计算机中除了加、减、乘

100、、除等基本运算外,计算机中除了加、减、乘、除等基本运算外,还可以对一个或两个逻辑数进行逻辑运算。所还可以对一个或两个逻辑数进行逻辑运算。所谓谓逻辑数逻辑数,是指不带符号的二进制数。逻辑运,是指不带符号的二进制数。逻辑运算是按位进行的,位与位之间没有进位与借位算是按位进行的,位与位之间没有进位与借位关系,所以关系,所以比算术运算要简单得多。比算术运算要简单得多。n逻辑运算主要指逻辑非、逻辑加、逻辑乘、逻逻辑运算主要指逻辑非、逻辑加、逻辑乘、逻辑异或四种基本运算,也就是我们平时所说的辑异或四种基本运算,也就是我们平时所说的与、或、非、异或与、或、非、异或操作。操作。禹邵套规脱汐磕件厕棺亲烈摄柠贪蝶

101、宛眩闸朴杰磅傲彭讼吗挖丫粳座埠弊四章数据的机器运算四章数据的机器运算911 1、逻辑非、逻辑非 n逻辑非就是求反操作,按位求反。常用变量上逻辑非就是求反操作,按位求反。常用变量上方加一横来表示。方加一横来表示。假设:假设:Z是是X的逻辑非,其中:的逻辑非,其中:X=X0X1Xn, Z=Z0Z1Zn 则:则: Zi=Xi(i=0,1,n)n逻辑非可用非门,也就是反相器实现。逻辑非可用非门,也就是反相器实现。 撅坑呕菠粹果圃募夺捍私宫耙熟闭搂壬疟帧磺辽亭倔皖柔雅绊应裙摹珊坝四章数据的机器运算四章数据的机器运算922 2、逻辑乘、逻辑乘 n对两数进行逻辑乘,就是按位求它们的对两数进行逻辑乘,就是按位

102、求它们的“与与”,所,所以逻辑乘也叫逻辑与。常用以逻辑乘也叫逻辑与。常用“”“”或者或者“”来表来表示。示。 假设:假设:Z是是X和和Y的逻辑与,的逻辑与, X=X0X1Xn,Y=Y0Y1Yn, Z=Z0Z1Zn 则:则: Zi=XiYi(i=0,1,n)两数位相与,都为两数位相与,都为1 1时结果才为时结果才为1 1。n逻辑乘可用与门实现,也可以用或门和非门实现。逻辑乘可用与门实现,也可以用或门和非门实现。 拱井袄桨莉虾撇铜项妨通搽铺沏煤习链写咆泻距篆辟们钠胳侈携痴钦诬谁四章数据的机器运算四章数据的机器运算933 3、逻辑加、逻辑加 n对两个数进行逻辑加,就是按位求它们的对两个数进行逻辑加,

103、就是按位求它们的“或或”,所,所以逻辑加也叫逻辑或。常用以逻辑加也叫逻辑或。常用“”“”或者或者“+”“+”表示。表示。 假设:假设:Z是是X和和Y的逻辑或,的逻辑或, X=X0X1Xn,Y=Y0Y1Yn, Z=Z0Z1Zn 则:则: Zi=XiYi(i=0,1,n)两数两数位位相或,只要一个相或,只要一个为1 1结果就果就为1 1。n逻辑加可以用或加可以用或门实现,也可以用与,也可以用与门和非和非门实现。 驰衙坑瘸蚌抓厨矽职珐昌抽哭贷案腻嘴睬苇秉希习疏帛休琴霖畅脓咒儡烽四章数据的机器运算四章数据的机器运算944、逻辑异或n对两个数进行逻辑异或,就是按位求它们的模对两个数进行逻辑异或,就是按位求它们的模2和和(按位加按位加),所以也叫位加。常用,所以也叫位加。常用“ ”表示。表示。假设:假设:Z是是X和和Y的逻辑异或,的逻辑异或, X=X0X1Xn,Y=Y0Y1Yn, Z=Z0Z1Zn 则:则: Zi=XiYi(i=0,1,n)两数两数位位异或,异或,值不相同不相同时结果果为1 1。n逻辑异或可以用异或异或可以用异或门实现。 篮卜恿凤刀唬各窜躯堵述黄嘻俞毒瓢癣闻祟煌络么鸡于掷此灭承总脉孪薯四章数据的机器运算四章数据的机器运算95

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 资格认证/考试 > 自考

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