数值的机器运算_第1页
数值的机器运算_第2页
数值的机器运算_第3页
数值的机器运算_第4页
数值的机器运算_第5页
已阅读5页,还剩74页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第4章数值的机器运算基本算数运算的实现4.1定点加减运算4.2带符号数的移位和舍入操作4.3定点乘法运算4.4定点除法运算4.5规格化浮点运算4.6十进制整数的加法运算4.7逻辑运算与实现4.8运算器的基本组成4.94.1基本算数运算的实现加法器进位的产生和传递并行加法器的快速进位4.1.14.1.24.1.34.1.1加法器加法器是由全加器再配以其他必要的逻辑电路组成的。1.全加器全加器(FA)是最基本的加法单元,它有3个输入量:操作数Aͥ和Bі,低位传进来的进位Cί-1。两个输出量:本位和Sί,向高位的进位Cί。全加器的逻辑框图如图4-1所示,其真值表如表4-1所示。根据真值表,可得到全加器的逻辑表达式:Si=Ai⊕Bi⊕Ci-1Ci=AiBi+(Ai⊕Bi)Ci-1图4-1全加器逻辑图框图表4-1全加器真值表2.串行加法器与并行加法器加法器有串行和并行之分。在串行加法器中,只有一个全加器,数据逐位串行送入加法器进行运算;并行加法器则由多个全加器组成,其位数的多少取决于机器的字长,数据的各位同时运算。串行加法器如图4-2所示。图中FA是全加器,A、B是两个具有右移功能的寄存器,C为进位触发器。由移位寄存器从低位到高位逐位串行提供操作数相加。如果操作数长n位,加法就要分n次进行,每次产生一位和,并行地送回A寄存器。进位触发器用来寄存进位信号,以便参与下一次的运算。串行加法器具有器件少、成本低的优点,但运输速度太慢,所以除了某些低速的专用运算器外很少采用。并行加法器可同时对数据的各位相加,但存在着一个加法的最长运算时间问题。这是因为虽然操作数的各位是同时提供的,但运算所产生的进位会影响高位的运算结果。例如:11.....11和00.....01相加,最低位运算所产生的进位将逐位影响至最高位,因此,并行加法器的最长运算时间主要是由进位信号的传递时间决定的而每个全加器本身的求和延迟只是次要因素,很明显,提高并行加法器速度的关键是尽量加快进位和传递的速度。图4-2串行加法器4.1.2进位的产生和传递并行加法器中的每一个全加器都有一个从低位送进来的进位输入和一个传送给高位的进位输出。通常将传递进位信号的逻辑线路连接起来构成的进位网络称为进位链。每一位的进位表达为:Ci=AiBi+(Ai⊕Bi)Ci-1其中,“AίBί”取决于本位参加运算的两个数,而与低进位无关,因此称AίBί为进位产生函数(本次进位产生),用Gί表示,其含义是:若本位的两个输入均为1,必然要向高位产生进位。“(Aί+Bί)Cί-1”则不但与本位的两个数有关,还依赖于低位送来的进位,因此称Aί+Bί为进位传递函数(低位进位传递),用Pί表示,其含义是:当两个输入中有一个为1,低位传来的进位的进位Cί-1将向更高位传送,所以进位表达示又可以写成:Ci=Gi+PiCi把n个全加器串接起来,就可以进行两个n位数的相加。这种加法器称为穿行进位的并行加法器。4.1.3并行加法器的快速进位2.分组并行进位方式实际上,通常采用分组并行进位方式。这种进位方式是把n位字长分为若干小组,在组内各位之间实行并行快递进位,在组间既可以采用串行进位方式,也可以采用并快速进位方式,因此有两种情况。(1)单级先进位方式(组内并行、组间串行)以16位加法器为例,可分为四组,每组四位。第一小组组内的进位逻辑函数C、C、C、C的表达式与前述相同,C1——C4信号时同时产生的,实现上述进位逻辑函数的电路称之为4位先行进位电路,其延迟时间是2ty。

利用这种4位的CLA电路及进位产生/传递电路和求和电路可以构成4位的CLA加法器。用4个这样的CLA加法器,很容易构成16位的单级先行进位加法器。(2)多级先行进位方式(组内并行、组间并行)在单级先行进位电路中,进位的延迟时间是和组数成正比的,组数越多,进位的延迟时间久越长,因此当加法器的字长较长(n>=16)时,为了加快进位传递时间,就有必要采用多级先行进位方式。4.2定点加减运算4.2.1原码加减运算4.2.2补码加减运算4.2.3补码的溢出判断与检测方法4.2.4补码定点加减运算的实现

4.2.1原码加减运算4.2.2补码加减运算3.补码加减运算规则补码加减运算规则如下:①参加运算的两个操作数均用补码表示。②符号位作为数的一部分参加运算。③若做加法,则两个直接相加,若做减法,则将被减数与减数的机器负数相加。④运算结果仍用补码表示。4.2.3补码的溢出判断与检测方法1.溢出的产生在补码加减运算中,有时会遇到这样的情况:两个正数相加,而结果的符号位却为1(结果为负);两个负数相加,而结果的符号位却为0(结果为正)。2.溢出检测方法

假设,被操作数为:[X]补=Xs,X1,X2...Xn

操作数为:[Y]补=Ys,Y1,Y2...Yn

其和(差)为:[S]补=Ss,S1,S2...Sn(1)采用一个符号位(2)采用进位位(3)采用变形补码(双符号位补码)4.2.4补码定点加减运算的实现实现补码加减运算的逻辑电路如图4-8所示。图4-8中F代表一个多为的并行加法器,其功能是:接受参加运算的两个数,进行加法运算,并在输出端给出本次运算结果。X和Y时两个寄存器,用来存放参加运算的数据,寄存器X同时还用来保存运算结果。门A、B、C分别是字级的与门和与或门,门A用来控制把寄存器X各位的输出送到加法器F的左输入端,其控制信号为X→F;门C用来控制把加法器F各位的运算结果送回寄存器X,其控制信号为F→X;门B则通过两个不同的控制信号Y→F和→F,分别实现把寄存器Y各位的内容(即各触发器的Q端)送加法器F,或实现把寄存器Y各位的内容取反后(即各触发器的端)送加法器F。加法器F最低位还有一个进位控制信号1→F。CPx是寄存器X的打入脉冲。若要实现补码加法,则需要给出X→F、Y→F和F→X3个控制信号,同时打开门A、门B和门C,把寄存器X和寄存器Y的内容送入加法器的两个输入端进行加法运算并把结果送回,最后打入脉冲CPx打入寄存器X。减法与加法的不同之处在于,加法使用Y→F控制信号,减法使用→F和1→F控制信号,其余控制信号相同。4.3带符号数的移位和舍入操作4.3.1带符号数的移位操作4.3.2带符号数的舍入操作在计算机中,实现乘除运算的方案通常有3种:⑴软件实现。在低档微机中无乘除运算指令,只能用乘法和除法子程序来实现乘除运算。⑵在原有实现加减运算的运算器基础上增加一些逻辑线路,使乘除运算变换成加减和移位操作。在机器中设有乘除指令。⑶设置专用的乘、除法器,机器中设有相应的乘除指令。不管采用什么方案实现乘除法,基本原理是相同的。如果采用第⑵种方案,则必然会涉及到移位操作。4.3.1带符号数的移位操作4.3.2带符号数的舍入操作在算数右移时受到硬件的限制,,由于运算结果有可能处理需要舍去一定的尾数,这会造成一些误差。为了缩小误差,就要进行舍入。假定经过运算后的数共有p+q位现仅允许保留前p位。舍入方法有很多种,常见的舍入方法有:(1)恒舍(切断)。这是一种最容易实现的舍入方法,无论多余部分q位为何代码,一律舍去,保留部分的p位不做任何改变。(2)冯.诺依曼舍入法。这种舍入法又称为恒置1法,即不论多余部分q为何代码,都将保留部分p位的最低位置1。(3)下设上入法。下设上入就是0舍1入,相当于十进制中的四舍五入,用将要舍去的q位的最高位作为判断标志,以决定保留是否加1.如该位为0,则舍去整个q位(相当于恒舍);如该位为1,则在保留的p位的最低位上加1。(4)查表舍入法。查表舍入法又称ROM舍入法,因为它用ROM来存放舍入处理表,每次经查表来读得相应的处理结果。4.4定点乘法运算

4.4.1原码一位乘法 4.4.2补码一位乘法4.4.3补码两位乘法4.4.4陈列乘法器4.4.1原码一位乘法

2.原码一位乘法运算的实现实现源码一位乘法运算器框如图4-12所示。图中A、B是n+2位的寄存器,C是n位的寄存器,A寄存器和C寄存器是级联在一起的,它们都具有右移一位的功能,在右移控制信号的作用下,A寄存器最低一位的值将移入C寄存器的最高位。C寄存器的最低位的值作为字级与门的控制信号,以控制加被乘数还是被乘数(即加0)。C寄存器中的乘数在逐次右移过程中将逐步丢失,取而代之的是乘积的最低部分。原码一位乘法运算器电路中除去3个寄存器外,还需要一个n+2位的加法器、一个计数器、n+2个与门(控制是否被乘数)和一个异或门(处理符号位)。4.4.2补码一位乘法4.4.3补码两位乘法至此,介绍了原码、补码一位乘法和补码两位乘法,对于初学者来说,往往会在运算次数、符号位取多少位、符号位是否参加运算等问题上出错,为了帮助大家记忆,特将这3种乘法运算的上述问题统一列于表4-5中。4.4.4陈列乘法器4.5定点除法运算

4.5.1原码除法运算4.5.2补码除数运算4.5.3阵列除法器4.5.1原码除法运算手工计算的规则是:首先判断被除数和除数的大小,若除数小雨或等于被除数的最高几位,就将该位商上“1”,并从被除数中减除数,得到新的余数;若除数大于被除数,就将该为商上“0”,被除数不变。然后,将被除数的下一位挪下来或在部分余数的最低位补“0”,再与除数进行比较,直至除尽或得到的商的位数满足要求为止。比较法类似于手工运算,只是为了便于机器操作,将除数右移该为部分余数左移,每一位的上商直接写到寄存器的最低位。设A寄存器中存放被除数,B寄存器中存放除数,C寄存器用来存放商Q,若A>=B,则上商1,并减除数;若A<B,则上商0,比较过程的流程如图4-16(a)所示。比较法需要设置比较线路,从而增加了硬件的代价。(2)恢复余数法恢复余数法是直接作减法试探方法,不管被除数减除数是否够减,都一律先做减法。若部分余数为正,表示够减,该位商上“1”;若部分余数为负,表示不够减,该位商上“0”,并要恢复余数。恢复余数过程的流程如图4-16(b)所示。由于部分余数的正、负是根据不同的操作数组合随机出现的,恢复除数法会使得除法运算的实际操作次数不固定,从而导致控制电路比较复杂。而且在恢复余数时,要多作一次加法,降低了除法的执行速度。因此,原码恢复余数法在计算机中一般很少采用。3.原码加减交替除法的实现实现原码加减交替法的运算器框如图4-18所示,A、B寄存器长n+2个与或门、一个计算器和一个异或门。其中,A寄存器和C寄存器是级联在一起的,它们都具有左移控制信号的作用下,C寄存器最高位的值将移入A寄存器的最低位。A寄存器中的初值是被除数,但在运算过程中将变为部分余数。C寄存器的最低位用来保存每次得到的商值,此商值同时也作为下一次操作是做加法还是做减法的控制信号。4.5.2补码除数运算被除数和除数都用补码表示,符号位参加运算,商和余数也用补码表示,运算时应考虑以下问题:1.够减的判断参加运算的两个数符号任意,当被除数(或部分除数)的绝对值大于或等于除数的绝对值时,称为够减;反之称为不够减。为了判断是否够减,当两数同号时,实际应作减法;两数异号时,实际应作加法。判断的方法和结果如下:当被除数(或部分余数)与除数同号时,如果得到的新部分余数与除数同号,表示够减,否则为不够减;当被除数(或部分余数)与除数异号时,如果得到的新部分余数与除数同号,表示够减,否则为不够减。2.上商规则补码除法运算的商也是用补码表示的,上商的规则是:如果[X]补和[Y]补同号,则商为正数,够减时上商“1”,不够减时上商“0”;如果[X]补和[Y]补异号,则商为负数,够减时上商“0”,不够减时上商“1”。将上商规则与够减的判断结合起来,可得到商的确定方法,如表4-6所示。[X]补和[Y]补商[ri]补和[Y]补上商同号正同号,表示够减1异号,表示不够减0异号负异号,表示够减0同号,表示不够减1表4-6商的确定3.商符的确定商符是在求商的过程中自动形成的,按补码上商规则,第一次得出的商,就是实际应得的商符。为了防止溢出,必须有|X|<|Y|,所以第一次肯定不够减。当被除数与除数同号时,部分余数与除数必然异号,商上“0”,恰好与商符一致;当被除数与除数异号时,部分余数与除数必然同号,商上“0”,也恰好就是商的符号。4.求新部分余数表4-7补码加减交替法规则[X]补和[Y]补第一次操作[ri]补和[Y]补上商下一次操作同号[X]补-[Y]补同号,表示够减1[ri+1]补=2[ri]补-[Y]补异号,表示不够减0[ri+1]补=2[ri]补+[Y]补异号[X]补+[Y]补同号,表示不够减1[ri+1]补=2[ri]补-[Y]补异号,表示够减0[ri+1]补=2[ri]补+[Y]补4.5.3阵列除法器4.6规格化浮点运算

4.6.1浮点加减运算4.6.2浮点乘除运算 4.6.3浮点运算器的实现 4.6.1浮点加减运算4.6.2浮点乘除运算4.6.3浮点运算器的实现由于浮点运算分成阶码和尾数两部分,因此,浮点运算器的实现比定点运算器复杂得多。分析上述的浮点四则运算可以发现,对于浮点阶码只有加减运算,尾数则有加、减、乘、除四种运算。可见浮点运算器主要由两个定点运算部件组成,一个是阶码运算部件,用来完成阶码加、减,以及控制对阶时小阶的尾数右移次数和规格化时对阶码的调整;另一个是尾数运算部件,用来完成尾数的四则运算以及判断尾数是否已规格化。此外,还需要有溢出判断电路等。现代计算机可把浮点运算部件做成任选件,或称为协处理器。所谓协处理器是因为它只能协助主处理器工作,不能单独工作。4.7十进制整数的加法运算4.7.1一位十进制加法运算

4.7.2十进制加法器

4.7.3多位十进制加法

4.7.1一位十进制加法运算1.8421

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论