第三章 运算方法和运算器-1_第1页
第三章 运算方法和运算器-1_第2页
第三章 运算方法和运算器-1_第3页
第三章 运算方法和运算器-1_第4页
第三章 运算方法和运算器-1_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

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

文档简介

第三章运算方法和运算器运算方法:着重讨论计算机中数据的运算按什么规则进行

移位运算加减法(定点,浮点)(重点)乘除法(定点,浮点)(难点)逻辑运算运算器设计:着重讨论运算规则的具体物理实现(难点)规则1第三章运算方法和运算器§3.1移位运算和舍入操作一、移位运算

意义移位运算是计算机中最基本、最常见的运算操作之一,任何计算机都含有移位指令。逻辑移位:寄存器中整组数据进行移位,空位补0,只有数字位置的变化,无数量的变化。算术移位:寄存器中带符号数的移位,移位时,符号位保持不变,仅数量变化

左移:2x右移:在此仅讨论算术移位计算机中的字长固定,左、右移时,出现空位怎么办?2第三章运算方法和运算器2.算术移位规则前提:移位后,符号位保持不变⑴

原码的移位规则不论正数还是负数,在左移或右移时,符号位均不变,空出位一律以“0”补入。负数的原码移位前后结果为:左移:移位前有:1X1X2

…Xn-1

Xn

移位后有:1X2X3

Xn

0

右移:移位前有:1X1X2

…Xn-1

Xn

移位后有:10X1

…Xn-2Xn-1

3第三章运算方法和运算器⑵补码的移位规则

正数

符号位不变,不论左移或右移,空出位一律以“0”补入。

负数

符号位不变,左移后的空出位补“0”,右移后的空出位补“1”。左移:移位前有:1X1X2

…Xn-1

Xn

移位后有:1X2X3

Xn

0

右移:移位前有:1X1X2

…Xn-1

Xn

移位后有:11X1

…Xn-2Xn-1

4第三章运算方法和运算器练习:

X=-0.1001010[x]原=1.1001010[x]补=1.01101104[x]原=1/2[x]原=2[x]补=1/4[x]补=1.01010001.01001011.11011001.11011015第三章运算方法和运算器二、舍入操作在算术移位时,由于硬件的限制,会失去一定的位数,造成一些误差,为减小误差,就要进行舍入操作。恒舍法舍入法恒置法查表舍入法61.恒舍法又称为截断法、切断法。将尾数下溢部分简单截去,不必讨论它的值,保留位数部分不做任何改变。恒舍法:X=±X00….0

~±X11….1

均舍入为X’=±X恒舍法实现最简单,不增加硬件,不增加处理时间;但误差大,不适合运算精度要求较高的应用。72.舍入法在机器运算部分的规定字长之外增设一位附加位,存放下溢部分的最高位,处理时将此位加1,实现0舍1入。

舍入法在降低误差上有很大进步,但需要增加硬件做加法舍入,而且有处理速度慢的极端情况.1111↓1要一直进位到发生上溢再重新规格化。目前较少使用,主要用在软件实现的浮点算法中。83.恒置法又称为恒置1法、冯诺依曼法。将机器规定字长的最低位恒置为1,不必讨论它的值。最大误差在整数时为1,如10↓0000置为11,小数时为2-m,如.00↓0000置为.01。由于恒置法实现简单,平均误差接近0,应用较多94.查表舍入法又称为ROM舍入法、PLA舍入法。它基于存贮逻辑的思想,用ROM或PLA存放下溢处理表(内容自己安排)。处理时取尾数的低k-1位和下溢部分最高位查表,下溢处理表共2k字,每字的内容是k-1位的处理结果,如图3-1所示。下溢处理表的设计通常是当尾数最低k-1位全1时用截断法,其余用舍入法。查表法实现速度快,虽然增加了硬件,但是整体性能最佳。在硬件成本不断降低的今天,此方法使用越来越多。10第三章运算方法和运算器§3.2定点加减法运算一、原码加减法两原码表示的数相加,首先要考虑它们的符号:同号:仅数值部分相加,结果的符号取被加数或加数的符号,异号:数值部分相减,结果的符号取绝对值大的数的符号。但数值部分相减,要将减数取补,变为加法进行。原码一般不用来做加减运算,而多用来做乘除运算,做加减运算时,多用补码。11第三章运算方法和运算器二、补码加减法运算

引入补码后,不仅减法能变成加法,而且符号位能同数值位一样参与加运算,这样可以大大简化运算器的结构。1、运算规则

[X+Y]补=[X]补+[Y]补

[X-Y]补=[X]补+[-Y]补

12补码加法:[X+Y]补=[X]补+[Y]补两个补码相加,符号位也参与运算,最终两个数和的补码等于两个数的补码之和。即[X]补

+

[Y]补

=

[X+Y]补证明:按照补码的定义,下面分四种情况来证明以上结论(证明中设补码的模为M)。(1)X>0,Y>0,则X+Y>0由于参加运算的数都为正数,故运算结果也一定为正数。又由于正数的补码与真值有相同的表示形式,根据补码定义,[X]补

=

X, [Y]补

=

Y所以可得:[X]补

+[Y]补

=X+Y=[X+Y]补13(2)X>0,Y<0,则X+Y>0或X+Y<0由于参加运算的两个数一个为正、一个为负,则相加结果有正、负两种可能。根据补码定义,有[X]补

=

X, [Y]补

=

M+Y所以[X]补

+[Y]补

=

X+M+Y

=

M+(X+Y)当X+Y>0时,M+(X+Y)>M,模M被丢掉,又因为X+Y>0,所以[X]补

+

[Y]补

=

(X+Y)

=

[X+Y]补当X+Y<0时,M+(X+Y)<M,又因为X+Y<0,所以[X]补

+

[Y]补

=

M+(X+Y)

=[X+Y]补(modM)14(3)X<0,Y>0这与上一种情况一样,把X和Y的位置对调即可得证。(4)X<0,Y<0,则X+Y<0由于参加运算的数都为负数,故运算结果也一定为负数。根据补码定义可得:[X]补

=

M+X, [Y]补

=

M+Y(modM)所以[X]补

+[Y]补

=

M+X+M+Y(modM)=

M+(M+X+Y)由于X+Y<0,那么(M+X+Y)一定是小于M大于0的数,舍去一个模M,所以[X]补

+

[Y]补

=

M+(X+Y)

=

[X+Y]补 (modM)至此得证,任意两数的补码之和等于两数之和的补码。这是补码加法的理论基础。

15补码减法补码减法的公式可利用加法公式证明:

[X-Y]补=[X+(-Y)]补=[X]补+[-Y]补[-Y]补

=-[Y]补([-Y]补和[Y]补互为机器负数的关系)16

设[Y]补=YS,Y1Y2…Yn,按照正负分为两种情况:①0≤Y≤2n-1:Y为正数,[Y]补=[Y]原=0,Y1Y2…Yn,则[-Y]原=1,Y1Y2…Yn。-Y为负数,按原码变补码规则得[-Y]补=1,Y1Y2…Yn+1②-2n≤Y<0:Y为负数,[Y]补=1,Y1Y2…Yn,则

[Y]原=1,Y1Y2…Yn+1。-Y为正数,[-Y]原=[-Y]补=0,Y1Y2…Yn+1。综合以上情况得,已知[Y]补求[-Y]补的法则是:

对[Y]补各位(包括符号位)取反且末位加1,就可以得到[-Y]补17第三章运算方法和运算器2、溢出判断与处理例:设:X=1011B=11D,Y=111B=7D

[X]补=0,1011,[Y]补=0,01110,1011 [X]补

+0,0111 [Y]补

1,0010 [X+Y]补∴[X+Y]补=1,0010X+Y=-1110B=-14D

两正数相加结果为-14D,显然是错误的。

(1)何时会发生溢出?加法减法同号异号

(2)如何判断发生了溢出?

根据符号位、进位位来判断!18第三章运算方法和运算器根据符号位、进位位来判断!用一个符号位

Xs=Ys=0,Ss=1

正溢Xs=Ys=1,Ss=0负溢

溢出=XsYsSs+XsYsSs用进位位

Cs=0,C1=1

正溢Cs=1,C1=0负溢溢出=CsC1+CsC1=Cs+C1用变形补码(双符号位)当产生溢出时,用一个符号位无法指示正确的结果符号;19第三章运算方法和运算器用双符号位进行判断:符号位00:表示正数,11:表示负数结果的符号位为01时,称为正溢;为10时,称为负溢符号位为00,11无溢出[X]补

0.1101+[Y]补

0.1001[X+Y]补

1.0110[X]补

00.1101+[Y]补

00.1001[X+Y]补

01.011020第三章运算方法和运算器例1:X=0.0101Y=-0.1001求X±Y=?解:[X]补=00.0101[Y]补=11.0111[-Y]补=00.1001

两符号位相同,无溢出

[X]补

00.0101+[Y]补

11.0111[X+Y]补

11.1100[X]补

00.0101+[-Y]补

00.1001[X-Y]补

00.1110X+Y=-0.0100X-Y=+0.111021第三章运算方法和运算器例2:X=0.1011Y=0.1001求X±Y=?解:[X]补=00.1011[Y]补=00.1001[-Y]补=11.0111两符号位相异,正溢出第一符号位为正确符号

[X]补

00.1011+[Y]补

00.1001[X+Y]补

01.0100[X]补

00.1011+[-Y]补

11.0111[X-Y]补

100.0010X+Y=溢出X-Y=+0.0010

两符号位相同,无溢出

22第三章运算方法和运算器例3:X=-0.1011Y=-0.1001求X±Y=?解:[X]补=11.0101[Y]补=11.0111[-Y]补=00.1001两符号位相异,负溢出第一符号位为正确符号

[X]补

11.0101+[Y]补

11.0111[X+Y]补110.1100[X]补

11.0101+[-Y]补

00.1001[X-Y]补

11.1110X+Y=溢出X-Y=-0.0010

两符号位相同,无溢出

23第三章运算方法和运算器练习:求X±Y=?1.X=0.1001Y=-0.1100X+Y=-0.0011X-Y溢出2.X=-0.0110Y=0.1101X+Y=0.0111X-Y溢出3.X=-0.1010Y=-0.1001X+Y溢出

X-Y=-0.000124§3.3基本加减法运算器设计

基本的算逻运算部件——全加器

输入端3个:Ai,Bi——本位操作数

Ci-1——低位来的进位

输出端2个:

Si——本位和

Ci——本位向高位的进位FAAiBiCi-1SiCi252.串行加法器与并行加法器

加法器有串行和并行之分。

串行加法器中,只有一个全加器,数据逐位串行送入加法器进行运算;

并行加法器则由多个全加器组成,其位数的多少取决于机器的字长,数据的各位同时运算。26

串行加法器具有器件少、成本低的优点,但运算速度太慢,所以除去某些低速的专用运算器外很少采用。串行加法器逻辑电路图27并行加法器可同时对数据的各位相加,但存在着一个加法的最长运算时间问题。这是因为虽然操作数的各位是同时提供的,但低位运算所产生的进位会影响高位的运算结果。并行加法器的最长运算时间主要是由进位信号的传递时间决定的,而每个全加器本身的求和延迟只是次要因素。提高并行加法器速度的关键是尽量加快进位产生和传递的速度并行加法器逻辑电路图28

并行加法器中的每一个全加器都有一个从低位送来的进位输入和一个传送给高位的进位输出。每一位的进位表达式为:

Ci=AiBi+(Ai⊕Bi)Ci-1

∴进位表达式Ci=Gi+PiCi-1

其中:Gi=AiBi为进位产生函数

Pi=Ai⊕Bi为进位传递函数

3进位的产生和传递29

串行进位的并行加法器其中:C1=G1+P1C0C2=G2+P2C1

Cn=Gn+PnCn-1

(1)串行进位链

30

串行进位的并行加法器的总延迟时间与字长成正比,字长越长,总延迟时间就越长。假定,将一级“与门”、“或门”的延迟时间定为ty,从上述公式中可看出,每一级全加器的进位延迟时间为2ty。在字长为n位的情况下,若不考虑Gi、Pi的形成时间,从C0→Cn的最长延迟时间为2nty(设C0为加法器最低位的进位输入,Cn为加法器最高位的进位输出)。31(2)并行进位链

并行进位又叫先行进位、同时进位,其特点是各级进位信号同时形成。

C1=G1+PC0C2=G2+P2C1=G2+P2G1+P2P1C0C3=G3+P3C2=G3+P3G2+P3P2G1+P3P2P1C0

C4=G4+P4C3=G4+P4G3+P4P3G2+P4P3P2G1

+P4P3P2P1C0

┇32

这种进位方式是快速的,若不考虑Gi、Pi的形成时间,从C0→Cn的最长延迟时间仅为2ty,而与字长无关。但是随着加法器位数的增加,Ci的逻辑表达式会变得越来越长,输入变量会越来越多,这会使电路结构变得很复杂,所以完全采用并行进位是不现实的。33①

单级先行进位方式(组内并行、组间串行)以16位加法器为例,可分为4组,每组4位。第一小组组内的进位逻辑函数C1、C2、C3、C4的表达式与前述相同,它们是同时产生的,实现上述进位逻辑函数的电路称之为4位先行进位电路CLA,其延迟时间是2ty。

利用这种4位的CLA电路以及进位产生/传递电路和求和电路可以构成4位的CLA加法器。用4个这样的CLA加法器,很容易构成16位的单级先行进位加法器。

(3)实际应用的并行加法器加速进位方式3416位单级先行进位加法器3516位单级先行进位时间图

16位单级先行进位时间图36

②多级先行进位方式(组内并行、组间并行)仍以字长为16位的加法器作为例子,分析两级先行进位加法器的设计方法。第一小组的进位输出C4可以变成两个与项相或:

C4=G4+P4G3+P4P3G2+P4P3P2G1+P4P3P2P1C0=G1*+P1*C0

其中:G1*=G4+P4G3+P4P3G2+P4P3P2G1P1*=P4P3P2P1

Gi*称为组进位产生函数

Pi*称为组进位传递函数37依次类推,可以得到:

C8=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*C03816位两级先行进位加法器

16位两级先行进位加法器成组先行进位电路BCLA,其延迟时间是2ty。利用这种4位的BCLA电路以及进位产生/传递电路和求和电路可以构成4位的BCLA加法器。16位的两级先行进位加法器可由4个BCLA加法器和1个CLA电路组成。

39

进位产生和传递过程分3步

(1)若不考虑Gi、Pi的形成时间,C0经过2ty产生第一小组的C1、C2、C3及所有组进位产生函数Gi*和组进位传递函数Pi*;(2)再经过2ty,由CLA电路产生C4、C8、C12、C16;(3)再经过2ty后,才能产生第二、三、四小组内的C5~C7、C9~C11、C13~C15。此时加

温馨提示

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

评论

0/150

提交评论