计算机组成原理 第3讲_定点加法_第1页
计算机组成原理 第3讲_定点加法_第2页
计算机组成原理 第3讲_定点加法_第3页
计算机组成原理 第3讲_定点加法_第4页
计算机组成原理 第3讲_定点加法_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

1、计算机组成原理Principles of Computer Organization广义双语教学课程09/skyclass25/青岛理工大学 校级精品课程http:/ 运算方法和运算部件运算方法和运算部件( 2 )The addition of two numbers in the signed-magnitude system follows the rules of ordinary arithmetic. If the signs are the same, we add the two magnitudes and give the sum the

2、common sign. If the signs are different, we subtract the smaller magnitude from the larger and give the result the sign of the larger magnitude. This a process that requires the comparison of the signs and the magnitudes and then performing either addition or subtraction. 原码加减运算要比较参与运算两数的符号和绝对值大小。做加

3、法时是同号相加,异号相减,和的符号取决于绝对值较大的数。做减法则是同号相减,异号相加,差的符号取决于绝对值较大的数。32.1.3加法器加法器 加法器加法器(Adder)是用来完成两个完成两个n位二进制数位二进制数的加法加法/减法减法运算运算的部件部件,它由全加器全加器(Full-Adder)和进位链组成进位链组成。 对两个操作数X、Y的第i位Xi和Yi以及低位向本位低位向本位的进位进位Ci-1进行求和求和,产生本位产生本位和和Fi及向高位向高位的进位进位Ci的逻辑电路逻辑电路称为全加器全加器全加器的逻辑表达式为:1)(iiiiCYXFCi = Xi Yi(XiYi)Ci-1全加器的逻辑符号为:

4、YiXiFiCi FAi iCi-1产生产生和传递进位信号传递进位信号的逻辑结构逻辑结构称为进位链进位链Carry-generation logic4并行加法器和进位链并行加法器和进位链 能对相加相加的两个两个 n 位二进制数位二进制数的所有数位同时进行求和所有数位同时进行求和的加法器称为并行加法器称为并行(Parallel)加法器加法器。它是用用 n 个一位全加器相连个一位全加器相连而组成组成的一个一个 n 位加法器位加法器。1串行进位串行进位(Serial Carry)加法器加法器XnYnX2Y2X1Y1FnF2F1Cn-1CnC2C1 FAn n FA2 2 FA1 1C0 串行进位加法

5、器串行进位加法器中,各位全加器各位全加器的进位信号进位信号以串联形式逐位串联形式逐位传递传递,逐位产生逐位产生。 串行进位串行进位又叫行波进位行波进位(Ripple Carry),其每一位每一位的进位直进位直接依赖于前一级接依赖于前一级的进位进位,是逐级形成逐级形成的。串行进位链结构简单串行进位链结构简单,但运算速度运算速度却受进位受进位的延迟时间延迟时间的严重影响严重影响。5例如: X 1111 1111 1111 1111 Y 0000 0000 0000 0001进位进位 C 1111 1111 1111 1111和和 F 10000 0000 0000 0000 每一位的半加和半加和可

6、立即产生,而真正的和和F要等低位的进位进位信号到来后才能产生。 进位在传递过程中每经过一级门都进位在传递过程中每经过一级门都要产生延迟产生延迟。每个全加器每个全加器的进位延迟时间进位延迟时间是 2tpdCi = Xi Yi(XiYi)Ci-1 = Xi Yi XiCi-1YiCi-1例如,16位串行进位加法器的进位延迟时间是32tpd。N位串行进位加法器的进位延迟时间是位串行进位加法器的进位延迟时间是 2Ntpd62并行进位并行进位( Parallel Carry)加法器加法器 为了提高运算速度,必须改变进位逐位传递改变进位逐位传递的路径路径,减少进减少进位传递的时间位传递的时间。进位Ci 可

7、分解为 Xi Yi 和(Xi+Yi)Ci1两部分。其中, Xi Yi 仅取决于本位参加运算的两数Xi和Yi,而与低位传来的进位Ci1无关,称为第i位产生的本地进位本地进位。可用进位产生函数进位产生函数 Gi =Xi Yi 表示。 (Xi+Yi)Ci1为第i位产生的传送进位传送进位或条件进位条件进位,称(Xi+Yi) 为进位的传送条件进位的传送条件,它决定从低位来的进位是被接通还是被阻断。可用进位传递函数进位传递函数 Pi = Xi+Yi 表示。将Pi和Gi 代入进位表达式中进行递推,得出:Ci = Xi Yi(XiYi)Ci-17 递推的结果,所有各位所有各位的进位进位都直接依赖最低位进位直接

8、依赖最低位进位C0,即所有各位所有各位的进位可以直接从进位可以直接从C0并行产生并行产生,因此又称为超前超前(先行先行)进位进位。 Carry -lookahead。并行进位链并行进位链的进位延迟时间进位延迟时间是 3tpd。Gi =Xi YiPi = Xi+YiCi = Gi + Pi Ci-1 = Gi + Pi( Gi-1 + Pi-1 Ci-2) = Gi + Pi( Gi-1 + Pi-1 (Gi-2 + Pi-2 Ci-3) = Gi + Pi( Gi-1 + Pi-1(Gi-2+ Pi-2 (Gi-3+(G2+ P2(G1 + P1C0) =Gi+PiGi-1+PiPi-1Gi-

9、2+PiPi-1Pi-2Gi-3+ (PiPi-1Pi-2P2G1 ) + (PiPi-1Pi-2 P2P1C0)用超前进位链构成的并行进位加法器也称为超前进位加法器超前进位加法器。Ci = Xi Yi(XiYi)Ci-18 并行进位的优点是速度快,但线路复杂,而且随着位数的增加,进位形成逻辑的输入变量将增多到没有可以实现的元器件。因此,实际采用的是分组跳跃进位分组跳跃进位的方式。 把加法器分成若干小组把加法器分成若干小组,每组包含若干位每组包含若干位,在组内采用并行在组内采用并行快速进位快速进位,组间可以是串行进位组间可以是串行进位,也可以是并行进位也可以是并行进位。组内并行组间串行的并行加

10、法器(单重分组)组内并行组间串行的并行加法器(单重分组)组内并行组间并行的并行加法器(双重分组组内并行组间并行的并行加法器(双重分组 / 多重分组)多重分组)93组内并行组间串行的进位链组内并行组间串行的进位链 以16位加法器为例,若将其分成4组,每组4位,组内组内采用并并行进位行进位,组间组间采用串行进位串行进位。则第一组的各位进位逻辑表达式为:C1= G1+ P1C0C2 = G2+ P2C1= G2+ P2G1+ P2P1C0C3 = G3+ P3C2= G3+ P3G2+ P3 P2G1+ P3 P2P1C0C4 = G4+ P4C3 = G4+ P4G3+ P4 P3G2+ P4P3

11、P2G1+ P4P3P2P1C0 在这个小组内,来自低位来自低位的进位信号进位信号只有C0,本组本组向高位高位小组小组的进位信号进位信号只有C4一个。小组内小组内的进位延迟时间进位延迟时间是 2tpd10C1= G1+ P1C0C2 = G2+ P2C1= G2+ P2G1+ P2P1C0C3 = G3+ P3C2= G3+ P3G2+ P3 P2G1+ P3 P2P1C0C4 = G4+ P4C3 = G4+ P4G3+ P4 P3G2+ P4P3P2G1+ P4P3P2P1C0C0C3C4C2C1P4G4G1& & & & & & & 1 111P1P2G2P3G3根据这组表达式得到的4位

12、组内并行进位链逻辑图:Gi PiAi Bi Ai Bi &111 其它各组的逻辑结构与第一组相同。将这样的四个小组按下图连接起来,就成为16位单重分组跳跃进位链位单重分组跳跃进位链。G16G13 P16P13 G12G9 P12P9 G8G5 P8P5 G4G1 P4P1 C16 C15 C14 C13 C12 C11 C10 C9 C8 C7 C6 C5 C4 C3 C2 C1 第四组第四组 1613位位 第三组第三组 129位位 第二组第二组 85位位 第一组第一组 41位位C016位组内并行组间串行进位链位组内并行组间串行进位链的进位延迟时间进位延迟时间是9tpd每个小组内小组内的进位延

13、迟时间进位延迟时间是2tpd12 用用4位位组内并行进位组内并行进位ALU组成组成16位组内并行组间串行进位的位组内并行组间串行进位的ALU的方法:的方法: 组内并行组间串行的进位方式可将进位传递时间压缩到串行进位的约1/3,但是当加法器的位数很多时,组间进位信号的串行传递仍会带来较大的时间延迟。Cn+4 Cn 4位组内并行进位ALU X YC0C4C8C12C16Cn+4 Cn 4位组内并行进位ALU X YCn+4 Cn 4位组内并行进位ALU X YCn+4 Cn 4位组内并行进位ALU X YX16X13 Y16Y13 X12X9 Y12Y9 X8X5 Y8Y5 X4X1 Y4Y1采用

14、组间并行进位方式可进一步提高运算速度。采用组间并行进位方式可进一步提高运算速度。134 组内并行组间并行的进位链组内并行组间并行的进位链 C4 = G4+ P4C3 = G4+ P4G3+ P4 P3G2+ P4P3P2G1+ P4P3P2P1C0仿照前面分析每一位进位的方法,每组的最高进位可分为两部分GN = G4+ P4G3+ P4 P3G2+ P4P3P2G1 最后一项P4P3P2P1C0依赖于低位的进位信号,称为本小组本小组的传送进位传送进位,称P4P3P2P1为小组的传送函数传送函数PN。PN = P4P3P2P1可得各小组的组间并行进位组间并行进位表达式在第一小组的最高进位C4的进

15、位表达式中,前四项G4+ P4G3+ P4 P3G2+ P4P3P2G1与低位来的进位C0无关,只与本小组内的Gi和 Pi有关,称为该小组的进位生成函数进位生成函数GN。144 组内并行组间并行的进位链各小组的组间并行进位组间并行进位表达式:C4 = GN1+ PN1 C0C8 = GN2+ PN2C4= GN2 + PN2GN1 + PN2PN1C0C12 = GN3+ PN3C8= GN3 + PN3GN2 + PN3 PN2GN1 + PN3PN2PN1C0C16 = GN4+PN4C12= GN4 +PN4GN3 +PN4PN3GN2+PN4PN3 PN2 GN1 +PN4PN3 PN

16、2PN1C0 这组表达式与组内并行进位表达式具有相同的形式,只是各变量的名称和含义不同,因此,可用相同的逻辑电路实现。 按照上面的逻辑函数设计的组间并行进位集成电路产品SN74182可与4位组内并行进位组内并行进位ALU集成电路产品74181配套,产生组间并行进位信号。 15 在组内并行进位、组间也并行进位时组内并行进位、组间也并行进位时,各小组内应产生本小各小组内应产生本小组组的进位生成函数进位生成函数GNi和进位传递函数进位传递函数PNi,以作为组间进位网络作为组间进位网络的输入变量输入变量。因此,小组内小组内的并行进位逻辑也应作相应修改:并行进位逻辑也应作相应修改:第二小组应产生GN2

17、、PN2、C7、C6和C5,而不产生C8。第三小组应产生GN3 、PN3、C11、C10和C9,而不产生C12。第四小组应产生GN4 、PN4、C15、C14和C13,而不产生C16。第一小组应产生GN1 、PN1、C3、C2和C1,而不产生C4。16双重分组跳跃进位链的逻辑框图:C15 C14 C13 C11 C10 C9 C7 C6 C5 C3 C2 C1G16G13 P16P13 G12G9 P12 P9 G8 G5 P8P5 G4 G1 P4 P1第四小组第四小组第一小组第一小组第二小组第二小组第三小组第三小组第第 二二 重重 进进 位位 链链 GN4 PN4 GN3 PN3 GN2

18、PN2 GN1 PN1C0C4C8C12C16当加法器位数很多时还可采用多重分组跳跃进位。当加法器位数很多时还可采用多重分组跳跃进位。17ALU电路电路 Arithmetic & Logic Unit算术逻辑运算单元的基本逻辑结构是先行进位加法器先行进位加法器。以 SN74181 为例介绍ALU的原理。 SN74181是一种4位片式位片式的中规模集成中规模集成ALU芯片,能完成4位数的16种算术运算算术运算和16种逻辑运算逻辑运算。它可以工作于正逻辑正逻辑或负负逻辑逻辑状态下。 SN74181片内有4位并行进位链位并行进位链,其结构很适合用来连接成不同位数的ALU部件,每片74181作为一个4

19、位的小组,组内是并行进位的。 芯片提供的输出信号G(小组进位生成函数)和P(小组进位传递函数)可供实现组间并行进位时使用。SN74181中一位中一位ALU单元:单元:YiXiS3 S2 S1 S0 M Ci-1 =1 =1 & 1 & 1 & 1 1 一位全加器一位全加器 函数发生器函数发生器Ci-1iBiAiAiBS0S1S2S3YiXiiFiF主要部分是由两个半加器组成的一位全加器。主要部分是由两个半加器组成的一位全加器。 在全加器的输入端附加了选择在全加器的输入端附加了选择输入控制输入控制S3S0。S3S0的的16种种组合可控制组合可控制16种运算。种运算。 类型控制输入信号类型控制输入

20、信号M控制控制ALU作算术运算(作算术运算(ML)或)或作逻辑运算(作逻辑运算(MH)。)。19用用74181组成组成16位组内并行组间串行进位的位组内并行组间串行进位的ALU:用用74181组成组间并行进位组成组间并行进位ALU时还需增加一片时还需增加一片SN74182。Cn+4 Cn 74181 X YC0C4C8C12C16X16X13 Y16Y13 X12X9 Y12Y9 X8X5 Y8Y5 X4X1 Y4Y1Cn+4 Cn 74181 X YCn+4 Cn 74181 X YCn+4 Cn 74181 X YC074181P G Cn74181P G Cn74181P G CnGPP

21、4* G4* C12 P3* G3* C8 P2* G2* C4 P1*G1* C07418274181P G Cn20定点加减法运算加减法运算 Fixed-Point Addition & Subtraction补码加法补码加法补码加法运算的基本公式:X+Y补X补+Y补 (mod M)定点小数 M=2,定点整数 M=2n+1。【例1】X=+0.1001B, Y=0.0101B, 求X+Y=?解:X补=0.1001 Y补=1.1011X+Y补 =X补+Y补=0.1001+1.1011 =0.0100X+Y+0.0100 X补 0.1001 +) Y补 1.1011 X+Y补 0.0100模21

22、【例2】X=11011B,Y=0011B, X+Y=?解:X补=100101 Y补=111101X+Y补 =X补+Y补=100101+111101 =100010X+Y11110 X补 100101 +) Y补 111101 X+Y补 100010 The rule for adding numbers in the signed-2s complement system dose not require a comparison or subtraction, only adding and complementation. The procedure is very simple and

23、can be stated as follows: add the two numbers, including their sign bits and discard any carry out of the sign (leftmost) bit position. 22补码减法补码减法补码减法的基本公式:XY补=X补+Y补(mod M) 已知Y补,求Y补,不论Y的真值是正还是负,只要将Y补连同符号位一起逐位变反,然后在最低位加1即可。这种方法称为对Y补求补,或将Y补变补。【例3】 X=0.1101B, Y=0.0110B, 求XY=?解:X补= 1.0011 Y补= 1.1010 Y补=

24、 0.0110XY补= X补+Y补= 1.0011+0.0110 =1.1001 X补 1.0011 +) -Y补 0.0110 X-Y补 1.1001 XY= 0.011123 参加运算的数用补码表示,符号位参加运算。 加法Addition ,两数补码直接相加。 减法Subtraction ,将减数变补后,与被减数相加。补码加减法运算:24溢出判断和变形补码溢出判断和变形补码【例4】X=+0.1011B, Y=+0.1101B, 求X+Y=?解:X补=0.1011 Y补=0.1101X+Y补 =0.1011+0.1101 =溢出 X补 0.1011 +) Y补 0.1101 X+Y补 1.1

25、000 正溢出【例5】X=0.1011B, Y=0.1100B, 求X+Y=?解:X补=1.0101 Y补=1.0100X+Y补 =1.0101+1.0100 =溢出 X补 1.0101 +) Y补 1.0100 X+Y补 0.1001负溢出25【例6】X=+0.100B, Y=0.110B, 求XY=?解:X补=0.1000 Y补=1.0100 Y补= 0.1100XY补= 0.1000+0.1100 =溢出 X补 0.1000 +) -Y补 0.1100 X-Y补 1.0100 注意,溢出和按模丢掉是不同的。 定点数加减法运算的结果若超出该定点数所能表示的范围时,就会产生溢出(Overfl

26、ow) ,结果无意义。26判断溢出的方法:1. 根据单符号位的判断方法 两个符号相异的数相加,以及两个符号相同的数相减,是不会发生溢出的; 两个符号相同的数相加,以及两个符号相异的数相减才有可能发生溢出。所以,可根据符号位来判断补码加减法是否发生溢出。即两同号数相加,结果的符号与参加运算的操作数符号相反,就表明有溢出。溢出表达式:SBASBAffffffV式中,V代表溢出, fA, fB和fS分别代表两个加数和结果的符号。发生溢出时V1。可用门电路实现此溢出判断。 X补 0.1001 +) Y补 1.1011 X+Y补 0.0100 X补 0.1011 +) Y补 0.1101 X+Y补 1.

27、1000 272. 利用进位值的判断方法 两补码数进行加减运算时,若最高数值位产生向符号位的进位,而符号位不产生进位时发生正溢出Positive Overflow X补 0.1011 +) Y补 0.1101 X+Y补 1.1000 若最高数值位无进位,而符号位有进位时,发生负溢出 Negative Overflow X补 1.0101 +) Y补 1.0100 X+Y补 0.1001溢出表达式:fffCCCCCCV式中,Cf为符号位的进位输出值,C为最高数值位向符号位产生的进位值。此判断方法可用异或门实现。 X补 0.1001 +) Y补 1.1011 X+Y补 0.0100283. 采用变

28、形补码的判断方法 变形补码又称模4补码。变形补码有两个符号位,“00”代表正号,“11”代表负号。变形补码(n+2位)的定义是:小数:4mod01104XXXXX补整数:222mod02202nnnnXXXXX补变形补码的两个符号位同时参加运算。29如果运算结果两个符号位相同,则没有发生溢出;若两个符号位不同,表明发生了溢出。“01”为正溢出,运算结果为正数;“10”为负溢出,运算结果为负数。溢出判断的逻辑表达式:f2f1f2f1f2f1SSSSSSV式中,Sf1和S f2分别代表结果的第一符号位和第二符号位。此逻辑表达式可用异或门实现。不论溢出与否,第一符号位总是表示结果的正确符号。Sf1S

29、 f230【例7】X=0.1011B, Y=0.1100B, 求X+Y=?解:X+Y补 = 11.0101+11.0100 X+Y补 10.1001负溢出【例8】X=+0.100B, Y=0.1010B, 求XY=?解:=溢出 X-Y补 01.0010 正溢出加减法运算的逻辑X补=Y补=溢出X补 11.0101+) Y补 11.0100X补=Y补=Y补=XY补=00.1000+00.1010X补 00.1000+) -Y补 00.101011.010111.010000.100011.011000.101031实现补码加减法运算补码加减法运算的逻辑做加法时的控制信号:AF,BF,FA。做减法时

30、的控制信号:AF, F ,F+1,FA。B累加器AccumulatorFABFAF& 1& &加法器FF+1BAFB0110CPACPB被加数X加数Y32例1 设浮点数基数为2,阶码为7位补码(包含1个符号位),尾数为9位原码(包含1个符号位)。 X= +13.25, Y= 1/8 。求X和Y的规格化浮点机器数。规格化浮点机器数规格化浮点机器数X=(+13.25)10 =(+1101.01)2 =+0.110101002+0100,Y=(-1/8)10 =(-0.001)2 = -0.1002010解:尾符尾数阶码浮点机器数: X浮点=0 0000100 11010100 Y浮点=1 1111

31、110 10000000设浮点数格式为: 1 2 8 9 16EX补=0000100 MX原=0.11010100EY补=1111110 MY原=1.10000000例1 浮点数基数为2,阶码为7位补码(包含1个符号位),尾数为9位原码(包含1个符号位)。X= +13.25,Y= -1/8。求X和Y的规格化浮点机器数X=(+13.25)10 =(+1101.01)2 =+0.110101002+0100,Y=(-1/8)10 =(-0.001)2 = -0.1002010解:尾符尾数阶码浮点机器数: X浮点=0 0000100 11010100 Y浮点=1 1111110 10000000如果阶码为阶码为移码移码,尾数为尾数为补码补码,则Y=(-1/8)10 =(-0.001)2 = -0.1002010= -1.0000000020011EX补=0000100 EX移=1000100 MX补=0.11010100EY补=1111101 EY移=0111101 MY补=1.00000000 浮点机器数: X浮点=0 1000100 11010100 Y浮点=

温馨提示

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

评论

0/150

提交评论