第二章运算方法和运算器精选PPT.ppt
第二章运算方法和运算器第1页,本讲稿共86页三、数据表示的发展:数据表示即类型不是一开始就有多三、数据表示的发展:数据表示即类型不是一开始就有多种多样,有一个随应用需要而发展的过程。种多样,有一个随应用需要而发展的过程。早期只有定点表示,表示数的范围很有限;早期只有定点表示,表示数的范围很有限;为扩大数的表示范围而出现了浮点数表示;为扩大数的表示范围而出现了浮点数表示;计算机应用扩大到商业和事务处理,出现了字符串计算机应用扩大到商业和事务处理,出现了字符串数据;数据;堆栈数据表示;堆栈数据表示;向量数据表示。向量数据表示。一般介绍一般介绍数值型数据数值型数据(能进行算术运算能(能进行算术运算能得到明确数值概念的得到明确数值概念的数字数据数字数据)非数值型数据非数值型数据(以(以数字数据形式进入计数字数据形式进入计算机的声音、图像、算机的声音、图像、文字等信息)文字等信息)二进制(定点、浮点)二进制(定点、浮点)十进制(二十进制(二-十进制)十进制)字符型字符型逻辑型逻辑型第2页,本讲稿共86页2.1.2 2.1.2 数值型数据的表示方法数值型数据的表示方法 一、数的机器码表示一、数的机器码表示 真值和机器数真值和机器数 真值:正负号加绝对值表示的数值真值:正负号加绝对值表示的数值;机器数:因为机器数:因为“+”+”与与“-”-”号在计算机中无法识别,号在计算机中无法识别,故需要把数的符号数码化。在计算机中使用的连同数符故需要把数的符号数码化。在计算机中使用的连同数符一起数码化的数称为机器数。通常约定二进制数的最高一起数码化的数称为机器数。通常约定二进制数的最高位为符号位,位为符号位,“0”0”代表正号,代表正号,“1”1”代表负号。常见的代表负号。常见的机器数有原码、反码、补码等。机器数有原码、反码、补码等。例如:例如:11011101若为原码机器数,则其真值为若为原码机器数,则其真值为 5 5 第3页,本讲稿共86页二、数据格式二、数据格式1 1、定点数(、定点数(Fix-Point NumberFix-Point Number )含义:定点、浮点的含义:定点、浮点的“点点”都指二进制数中的小数点。定都指二进制数中的小数点。定点指小数点位置固定。点指小数点位置固定。小数点不占位小数点不占位,隐含。隐含。定点数分为定点小数定点数分为定点小数(纯小数纯小数)和定点整数和定点整数(纯整数纯整数)。符号位符号位 数值部分数值部分小数点位置小数点位置小数点位置小数点位置符号位符号位 数值部分数值部分小数点位置小数点位置小数点位置小数点位置定点整数定点整数定点小数定点小数第4页,本讲稿共86页(1 1)定点数常见的三种机器码编码形式)定点数常见的三种机器码编码形式例:例:X =X =0.1011010.101101,Y=+101101 Y=+101101 X X原原=1.101101=1.101101,Y Y原原=0101101=0101101 X X反反=1.010010=1.010010,Y Y反反=0101101=0101101XX补补=1.010011=1.010011,Y Y补补=0101101=0101101 注意:对正数它们都等于真值本身,而对负注意:对正数它们都等于真值本身,而对负数各有不同的表示。数各有不同的表示。(2 2)三种编码的比较)三种编码的比较 第5页,本讲稿共86页 不同码制中真值不同码制中真值0 0的表示方法不同的表示方法不同 对于真值对于真值0 0,原码和反码各有两种不同的表,原码和反码各有两种不同的表示形式,而补码只有唯一的一种表示形式。示形式,而补码只有唯一的一种表示形式。假设字长为假设字长为8 8位,则:位,则:+0+0原原=00000000=00000000-0-0原原=10000000=10000000+0+0补补=-0=-0补补=00000000=00000000+0+0反反=00000000=00000000-0-0反反=11111111=11111111第6页,本讲稿共86页 定点数的表示范围定点数的表示范围 原码、反码表示的正、负数范围相对原码、反码表示的正、负数范围相对零来说是对称的,但补码负数表示范围较零来说是对称的,但补码负数表示范围较正数表示范围宽,能多表示一个最负的数正数表示范围宽,能多表示一个最负的数(绝对值最大的负数)。原因是原码和反(绝对值最大的负数)。原因是原码和反码的真值码的真值0 0各有两种不同的表示形式,而补各有两种不同的表示形式,而补码只有唯一的一种表示形式。码只有唯一的一种表示形式。第7页,本讲稿共86页定点数的表示数的范围(字长为定点数的表示数的范围(字长为n+1n+1位)位)小数表数范围:小数表数范围:原码原码 (1 1 2 2-n-n )N 1 N 1 2 2-n-n补码补码 1 1 N 1 N 1 2 2-n-n 反码反码 (1 1 2 2-n-n)N 1 N 1 2 2-n-n 整数表数范围:整数表数范围:原码原码 (2 2n n 1 1)N N 2 2 n n 1 1 补码补码 2 2 n n N 2N 2 n n 1 1反码反码 (2 2n n 1 1)N 2 N 2n n 1 1特别注意补码的最小负数表示特别注意补码的最小负数表示第8页,本讲稿共86页习题:习题:P.69 P.69 第第1 1、2 2题题1 1、写出下列各数的原码、反码、补码表示、写出下列各数的原码、反码、补码表示(用(用8 8位二进制数)。其中位二进制数)。其中MSBMSB是最高位(又是最高位(又是符号位),是符号位),LSBLSB是最低位。如果是小数,小是最低位。如果是小数,小数点在数点在MSBMSB之后;如果是整数,小数点在之后;如果是整数,小数点在LSBLSB之后。之后。(1 1)35/64 35/64 (2 2)23/128 23/128 (3 3)127127(4 4)用小数表示)用小数表示 1 1 (5 5)用整数表示)用整数表示 1 1解答解答:(1 1)现将)现将-35/64-35/64写成二进制真值写成二进制真值-1000112-1000112-6-6=-0.100011=-0.100011原码:原码:1.1000110 1.1000110 反码:反码:1.01110011.0111001补码:补码:1.01110101.0111010第9页,本讲稿共86页(2 2)先将)先将23/12823/128写成二进制真值为写成二进制真值为101112101112-7-7=0.0010111=0.0010111原码:原码:0.00101110.0010111反码:反码:0.00101110.0010111补码:补码:0.00101110.0010111(3 3)先将)先将-127-127写成二进制真值为写成二进制真值为-1111111-1111111原码:原码:11111111 11111111 (1 1,11111111111111)反码:反码:10000000 10000000 (1 1,00000000000000)补码:补码:10000001 10000001 (1 1,00000010000001)(4 4)用小数表示)用小数表示-1-1:原码与反码的小数表示中没有:原码与反码的小数表示中没有-1-1;补;补码表示的小数码表示的小数-1-1为为1.00000001.0000000(5 5)用整数表示)用整数表示-1-1:原码为:原码为1000000110000001;反码为;反码为1111111011111110;补码为;补码为1111111111111111。第10页,本讲稿共86页2 2、设、设XX补补=a=a0 0.a.a1 1a a2 2aa6 6,其中,其中a ai i取取0 0或或1 1,若要,若要x x 0.50.5,求,求a a0 0,a a1 1,a a2 2,a a6 6的取值。的取值。补充题:将下列数由小到大排序:补充题:将下列数由小到大排序:1616,1010.11B1010.11B,25.3Q25.3Q,X1X1补补=10001101=10001101,1CH1CH,X2X2反反=01001101=01001101,0110.1001BCD0110.1001BCD,X3X3原原=10101011=10101011,X4X4补补=10111111=10111111,-X5X5补补=10100101 =10100101 解题要点:解题要点:(1 1)统一各个数的表示形式,一般均表示为十进制)统一各个数的表示形式,一般均表示为十进制 (2 2)所需知识:了解所需知识:了解B(binary)B(binary)、Q(octa-)Q(octa-)、H(hex)H(hex)、BCD(Binary-BCD(Binary-Coded Decimal,Coded Decimal,简称简称BCD,BCD,即二即二-十进制编码十进制编码)含义;各种进制数向十进制含义;各种进制数向十进制的转换;机器码求真值。的转换;机器码求真值。以上十个数由小到大排序结果:以上十个数由小到大排序结果:X1X1,X3 X3,X4 X4,0110.1001BCD,1010.11B 0110.1001BCD,1010.11B,1616,25.3Q25.3Q,1CH1CH,X2 X2,X5 X5 第11页,本讲稿共86页例例.已知已知:机器字长机器字长1616位位,定点表示定点表示,尾数尾数1515位位,数符数符1 1位位,问问:(1)(1)定点原码整数表示时定点原码整数表示时,最大正数是多少最大正数是多少?最小负数是多最小负数是多少少?(2)(2)定点原码小数表示时定点原码小数表示时,最大正数是多少最大正数是多少?最小负数是多少最小负数是多少?解解:(1):(1)定点原码整数表示定点原码整数表示:最小负整数表示最小负整数表示:1 111 111 111 111 111:1 111 111 111 111 111 最小负整数最小负整数=-(2=-(21515-1)-1)1010=(-32767)=(-32767)1010 最大正整数表示最大正整数表示:0 111 111 111 111 111:0 111 111 111 111 111 最大正整数最大正整数=(2=(21515-1)-1)1010=(+32767)=(+32767)1010 (2)(2)定点原码小数表示定点原码小数表示:最大正数值最大正数值=(1-2=(1-2-15-15)1010=(+0.11111)=(+0.11111)2 2 1515个个1 1 最小负数值最小负数值=-(1-2=-(1-2-15-15)1010=(-0.11111)=(-0.11111)2 2第12页,本讲稿共86页2.1.2 2.1.2 数值型数据的表示方法数值型数据的表示方法二、数据格式二、数据格式1 1、定点数(、定点数(Fix-Point NumberFix-Point Number )2 2、浮点数(、浮点数(Float-Point NumberFloat-Point Number):小数点位置可小数点位置可以自由浮动,数的范围和精度分别表示。浮点数以自由浮动,数的范围和精度分别表示。浮点数的一般表示格式为:的一般表示格式为:N=r N=rE EMM 其中其中:r:r称为浮点数阶码的底,或尾数基数,一般称为浮点数阶码的底,或尾数基数,一般r=2r=2;E-E-阶码,一般为定点整数,决定浮点数的表示范围;阶码,一般为定点整数,决定浮点数的表示范围;M-M-尾数,一般为定点小数,决定浮点数的精度。尾数,一般为定点小数,决定浮点数的精度。第13页,本讲稿共86页例例:N=-0.000001011,:N=-0.000001011,可将其表示为以下的浮可将其表示为以下的浮点数形式点数形式:N=2N=2-3-3x x(-0.001011-0.001011)=2=2-4-4(-0.01011)-0.01011)=2=2-5-5(-0.1011)=(-0.1011)=(1 1)浮点数的规格化)浮点数的规格化 目的:为了提高运算精度,充分利用尾数的目的:为了提高运算精度,充分利用尾数的有效位数,同时保证浮点数表示形式唯一,通有效位数,同时保证浮点数表示形式唯一,通常采取浮点规格化形式。常采取浮点规格化形式。定义:规定尾数小数点后第一位,即尾数数定义:规定尾数小数点后第一位,即尾数数值位的最高有效位值位的最高有效位(MSB)(MSB)必须是非零有效数字,必须是非零有效数字,即尾数满足:即尾数满足:1/2=|M|=11/2=|M|=1 第14页,本讲稿共86页例:将下列数表示成规格化的浮点数形式例:将下列数表示成规格化的浮点数形式:11.101B,-10,16,7.DH 11.101B,-10,16,7.DH解解:11.101B=0.11101B2:11.101B=0.11101B22 2 -10=-1010B=-0.101B2 -10=-1010B=-0.101B24 4 16=10000B=0.1B216=10000B=0.1B25 5 7.DH=111.1101B=0.1111101B2 7.DH=111.1101B=0.1111101B23 3 第15页,本讲稿共86页 具体形式具体形式 当尾数当尾数MM的基数为的基数为2 2时,规格化表示的尾数形式为:时,规格化表示的尾数形式为:正数正数(原码、补码原码、补码):0.1,0.1,其最大值为其最大值为0.1111,0.1111,最小最小值为值为0.1000,0.1000,尾数的表示范围尾数的表示范围1/2=M1;1/2=M1;负数负数(原码原码):):1.1,1.1,其最大值为其最大值为1.1000,1.1000,最小值为最小值为1.1111,1.1111,尾数表示的范围为尾数表示的范围为-1M=-1/2;-1M=-1/2;负数负数(补码补码):):1.0,1.0,其最大值为其最大值为1.0111,1.0111,最小值为最小值为1.0000,1.0000,尾数的表示范围为尾数的表示范围为-1=M-1/2.-1=M0N0时时,MSB=1,MSB=1,当当N0N0 X0 时:时:2 2-1-1 X 1-2 X 1-2-21-21当当X0X0时:时:-1 X2-1 X0X0时:时:2 2-513-513 X 2 X 2511511(1-2-1-2-2121)当当X0X0时:时:-2-2511511 X-2 X-2-512-512 2 2-1-1或或 -2 -2511511 X -2 X -2-512-512(2 2-1-1+2+2-21-21)(4 4)最接近于零的正规格化数与负规格化数。)最接近于零的正规格化数与负规格化数。第25页,本讲稿共86页例:将下列十进制数表示成浮点规格化数,例:将下列十进制数表示成浮点规格化数,阶码阶码3 3位,用补码表示;尾数位,用补码表示;尾数9 9位,用补码表位,用补码表示。示。各包含各包含1 1位符号位在内。位符号位在内。(1)27/64 (2)-27/64解答解答(1)27/64=11011X2-6=0.11011X2-1表示成阶码(补码)、尾码(补码)为:表示成阶码(补码)、尾码(补码)为:1,11;0.11011000(2)-27/64=-11011X2-6=-0.11011000X2-1表示成如下形式为:表示成如下形式为:1,11;1.00101000第26页,本讲稿共86页2.1.2 2.1.2 数值数据的表示法数值数据的表示法三、数字编码三、数字编码以一种中间编码形式表示数以一种中间编码形式表示数(BCDBCD码)码)1 1、编码目的:以机器能表示与识别的二进制形式存在,又比纯二进、编码目的:以机器能表示与识别的二进制形式存在,又比纯二进制数(制数(pure binarypure binary)更接近日常所习惯的十进制数。)更接近日常所习惯的十进制数。2 2、BCDBCD编码:编码:Binary Coded DecimalBinary Coded Decimal,即二进制编码的十进,即二进制编码的十进制数,种类有很多,如制数,种类有很多,如 Gray Gray码、码、余余3 3码、码、8421BCD8421BCD码、码、EBCDEBCD码等。码等。3 3、8421BCD8421BCD码:用四位二进制数表示一位十进制数码:用四位二进制数表示一位十进制数0909。0000000000,00011,00011,,1001910019,0001000010 0001000010,00010001110001000111,00010101150001010115,00010110160001011016。注意。注意1010以后的十进制数的表示。以后的十进制数的表示。第27页,本讲稿共86页一、出错的原因:一、出错的原因:1 1、元器件质量不可靠;、元器件质量不可靠;2 2、线路工艺不过关;、线路工艺不过关;3 3、远距离传输带来的干扰等等,均会导致存取、加工、远距离传输带来的干扰等等,均会导致存取、加工、传输时出现传输时出现0 0变成变成1 1或或1 1变成变成0 0的错误。的错误。二、错误检测与纠正二、错误检测与纠正 方法有很多:常见的一种是对数据信息进行扩充,加入方法有很多:常见的一种是对数据信息进行扩充,加入新代码,使之与原数据共同按某种规律编码后具有发现错新代码,使之与原数据共同按某种规律编码后具有发现错误的能力,有些甚至具有指出具体的错误位置并使机器校误的能力,有些甚至具有指出具体的错误位置并使机器校正的能力。我们称之为正的能力。我们称之为“校验码校验码”(check codecheck code)。)。几种常用的校验码包括:奇偶校验码、几种常用的校验码包括:奇偶校验码、CRCCRC码、海明码码、海明码等。等。2.1.3 2.1.3 校验码校验码(check code)(check code)第28页,本讲稿共86页三、奇偶校验码三、奇偶校验码 广泛用于主存的读写校验或广泛用于主存的读写校验或ASCII码字符传送过码字符传送过程中的检查。程中的检查。1 1、编码方式:在、编码方式:在n n位有效信息位上加一个二进制位作为校验位有效信息位上加一个二进制位作为校验位位P P,构成,构成n+1n+1位的奇偶校验码。校验位位的奇偶校验码。校验位P P的位置可以在有效的位置可以在有效信息位的最高位之前,也可在有效信息位的最高位之后。信息位的最高位之前,也可在有效信息位的最高位之后。奇校验奇校验(odd):(odd):编码中含编码中含“1”1”的个数的个数(连同校验位连同校验位)共有奇数个共有奇数个“1”1”;偶校验偶校验(even):(even):编码中含编码中含“1”1”的个数的个数(连同校验位连同校验位)共有偶数个共有偶数个“1”1”。例例:信息编码为信息编码为:10001000B:10001000B1 0 0 0 1 0 0 0 11 0 0 0 1 0 0 0 0奇校验位奇校验位奇校验位奇校验位偶校验位偶校验位偶校验位偶校验位第29页,本讲稿共86页若采用偶校验若采用偶校验,则校验位则校验位P可由下式确定:可由下式确定:Peven=D0 D1 D2 D3 D4 D5 D6 D7 (2-12-1)若若D7-D0中有偶数个中有偶数个1,则则“偶形成偶形成”=0 若若D7-D0中有奇数个中有奇数个1,则则“偶形成偶形成”=1若若采用奇校验采用奇校验,则校验位则校验位P可由下式确定:可由下式确定:Podd=Peven (2-22-2)根据式(根据式(2-1)和()和(2-2),可得到),可得到9位奇偶校验位位奇偶校验位P的形成电的形成电路,如下图示。路,如下图示。+第30页,本讲稿共86页+偶校验位形成D7D6 D5D4D3D2D1D0奇校验位形成奇偶校验位P的形成电路PevenPodd第31页,本讲稿共86页+偶校错偶校错校验位校验位D7D6 D5D4D3D2D1D0奇校错奇校错奇偶校验位电路奇偶校验位电路Peven2 2、奇偶校验码的奇偶校验码的校验校验:8:8位代码与位代码与1 1位校验位同时送入偶校位校验位同时送入偶校验逻辑电路验逻辑电路.若若“偶校错偶校错”=0,=0,表明数据无奇数个错表明数据无奇数个错,可视可视为正确为正确.第32页,本讲稿共86页3、主存读写过程中的奇偶校验 假设CPU准备写入主存某单元的数据为01010101,若采用奇校验,经过奇偶校验电路,形成奇偶校验位,实际写入贮存的9位校验码为101010101(最高位为校验位)。从主存单元读出的9位信息首先送入奇偶校验电路,若9位信息中“1”的个数为奇数个,表示读出信息正确,将校验位去掉后的8位数据送CPU;否则,表示读出信息不正确,向CPU发出奇偶校验出错的中断请求信号。CPU奇偶校验电路主存主存8 8位位9 9位位8 8位位9 9位位第33页,本讲稿共86页2.22.2定点数加减运算定点数加减运算 2.2.1 2.2.1 补码加法运算补码加法运算1.1.补码加法的公式补码加法的公式:x:x补补+y+y补补=x+y=x+y补补 (mod 2)(mod 2)2.2.补码加法的特点补码加法的特点:符号位作为数的一部分一起参加运算符号位作为数的一部分一起参加运算;在模在模2 2的意义下相加的意义下相加,超过超过2 2的进位要丢掉的进位要丢掉.例例:x=+0.1001,y=-0.0101,:x=+0.1001,y=-0.0101,求求x+yx+y解解:x:x补补=0.1001,y=0.1001,y补补=1.1011=1.1011 xx补补 0.1 0 0 1 0.1 0 0 1 y y补补 1.1 0 1 11.1 0 1 1 x+y x+y补补 1 01 0.0 1 0 0.0 1 0 0 故故:x+y=0.0100:x+y=0.0100+进位超过进位超过2 2,丢掉,丢掉第34页,本讲稿共86页2.2.22.2.2补码减法运算补码减法运算1.1.补码减法的公式补码减法的公式:x-y:x-y补补=x=x补补-y-y补补=x=x补补+-y+-y补补2.2.补码减法的特点补码减法的特点:减法运算可以化为加法减法运算可以化为加法,可和常规加法运算使用可和常规加法运算使用 同一加法器电路同一加法器电路,从而简化计算机的设计从而简化计算机的设计.3.3.从从yy补补求求-y-y补补的法则是的法则是:对对yy补补包括符号位包括符号位:“:“求反且末位加求反且末位加1”,1”,即即 可得可得-y-y补补.例例:x=+0.1101,y=+0.0110,:x=+0.1101,y=+0.0110,求求x-y=?x-y=?解解:x:x补补=0.1101,y=0.1101,y补补=0.0110,-y=0.0110,-y补补=y y补补+2+2-4-4=1.1001+0.0001=1.1010=1.1001+0.0001=1.1010 x-y x-y补补=x补补+-y补补=10.0 1 1 1=0.011110.0 1 1 1=0.0111所以所以 x-y=+0.0111 x-y=+0.0111第35页,本讲稿共86页2.2.32.2.3溢出及其检测溢出及其检测1.1.定义定义:运算的结果超出机器所能表示的数据范围运算的结果超出机器所能表示的数据范围。分上溢和分上溢和下溢。下溢。例例:x=+0.1011,y=+0.1001,:x=+0.1011,y=+0.1001,求求x+y.x+y.解解:x:x补补=0.1011,y=0.1011,y补补=0.1001=0.1001 xx补补 0.1 0 1 1 0.1 0 1 1 yy补补 0.1 0 0 1 0.1 0 0 1+x+yx+y补补 1.0 1 0 01.0 1 0 0 注意:补码注意:补码XX补与真值补与真值X X的转换。的转换。当当X X=0=0时,时,XX补补=X=X;当;当X0X0时,时,XX补补=M+X =M+X 注意:只有当两数同号时,才会出现溢出。注意:只有当两数同号时,才会出现溢出。第36页,本讲稿共86页2 2、几种检测方法、几种检测方法(1)(1)单符号位法单符号位法1(1(根据两个操作数的符号与结果的符号判根据两个操作数的符号与结果的符号判别溢出)别溢出):当操作数中的加数与被加数符号相同时当操作数中的加数与被加数符号相同时,若若结果的符号与操作数的符号不一致结果的符号与操作数的符号不一致,表示溢出表示溢出;否则否则,表表示无溢出示无溢出.设设X X的符号位为的符号位为X Xf f,Y Y的符号为的符号为Y Yf f,运算结果的符号,运算结果的符号为为S Sf f,则溢出逻辑表达式,则溢出逻辑表达式 :V=XV=Xf fY Yf fS Sf f+X+Xf fY Yf fS Sf f V=0 V=0无溢出;无溢出;V=1V=1有溢出有溢出第37页,本讲稿共86页(2)单符号位法2(进位判断法):当最高有效位产生进位而符号位无进位时,产生上溢;当最高有效位无进位而符号位有进位时,产生下溢.其逻辑表达式为:V=S C 其中S为符号位产生的进位,C为最高有效位产生的进位。+第38页,本讲稿共86页 (3)(3)双符号位法双符号位法(变形补码法变形补码法):):在进行补码加减运在进行补码加减运算时,如果只使用一个符号位,出现溢出的时算时,如果只使用一个符号位,出现溢出的时候正确的符号位将被数值侵占,符号位含义将候正确的符号位将被数值侵占,符号位含义将发生混乱。因此,如果将符号位扩展为两位,发生混乱。因此,如果将符号位扩展为两位,即使出现溢出,数值侵占了一个符号位,仍能即使出现溢出,数值侵占了一个符号位,仍能保持最左边的符号为正确。保持最左边的符号为正确。溢出逻辑表达式为溢出逻辑表达式为:V=S:V=Sf1 f1 S Sf2f2+其中其中,S,Sf1 f1和和S Sf2f2分别为最高符号位及第二符号位。分别为最高符号位及第二符号位。第39页,本讲稿共86页2.2.4 2.2.4 基本的二进制加基本的二进制加/减法器减法器一、回忆加法单元一、回忆加法单元 两个一位二进制数两个一位二进制数所使用的硬件所使用的硬件1 1、一位半加器、一位半加器HA(Half Adder)HA(Half Adder)(逻辑符号、真值表、逻辑(逻辑符号、真值表、逻辑式)式)A S A B S C S=A A S A B S C S=A B BB C 0 0 0 0 =AB+ABB C 0 0 0 0 =AB+AB A A、B B:两个一位加数;:两个一位加数;0 1 1 0 C=AB 0 1 1 0 C=AB S S:半加和;:半加和;1 0 1 0 1 0 1 0 C C(CarryCarry):半加进位。):半加进位。1 1 0 1 1 1 0 1HAHA第40页,本讲稿共86页2 2、一位全加器、一位全加器FAFA(Full AdderFull Adder):在半加器的):在半加器的基础上考虑进位输入基础上考虑进位输入(1 1)逻辑符号、真值表、逻辑表达式)逻辑符号、真值表、逻辑表达式A Ai i S Si i A Ai i Bi Ci Si CBi Ci Si Ci+1 i+1 B Bi i C Ci+1 i+1 0 0 0 0 0 0 0 0 0 0C Ci i 0 0 1 1 00 0 1 1 0 0 1 0 1 0 0 1 0 1 0Si=Ai Si=Ai Bi Bi Ci 0 1 1 0 1 Ci 0 1 1 0 1Ci+1=AiBi+BiCi+CiAi 1 0 0 1 0Ci+1=AiBi+BiCi+CiAi 1 0 0 1 0 =AiBi+=AiBi+(Ai Ai Bi Bi)Ci 1 0 1 0 1Ci 1 0 1 0 1AiAi,BiBi:n n位加法器位加法器 1 1 0 0 1 1 1 0 0 1 第第i i位的加数位的加数 1 1 1 1 1 1 1 1 1 1FAFA第41页,本讲稿共86页 Ci+1 Si Ci+1 Si Ci+1 Si Ci+1 Si Ci Ai Bi Ai Bi Ci Ci Ai Bi Ai Bi Ci&异或&异或&或或(2)全加器的硬件实现:电路形式有很多,选两例典型做介绍。第一种在教材P.35图2.2(b)。第42页,本讲稿共86页(3 3)计算全加器电路的时间延迟:从电路的输入产生)计算全加器电路的时间延迟:从电路的输入产生起直到输出出现所经过的时间,用起直到输出出现所经过的时间,用T T的个数表示。的个数表示。T T叫延叫延迟单位。迟单位。以此表格为依据可推以此表格为依据可推算出前两种算出前两种FAFA的时的时间延迟。间延迟。第一例:生成第一例:生成Si Si的延的延迟为迟为6T6T,生成,生成Ci+1Ci+1的延迟为的延迟为5T5T。第二例:生成第二例:生成Si Si、Ci+1Ci+1的延迟均为的延迟均为2T2T。可见同功能不同形式可见同功能不同形式的电路具有不同的时的电路具有不同的时间延迟。间延迟。与非门NAND T逻辑符号或非门NOR T非 门NOT T与 门AND 2T 或 门OR 2T异或门XOR 3T同或门XNOR 3T与或非(接线逻辑)AOIT+TrcT第43页,本讲稿共86页二、由加法单元二、由加法单元FAFA组成加法器:介绍行波进位组成加法器:介绍行波进位即串行进位的补码加即串行进位的补码加/减法器减法器 (一)加法器类型及(一)加法器类型及进位方式进位方式 串行加法器串行加法器加法器加法器 并行加法器并行加法器 串行进位方式串行进位方式并行加法器并行加法器 并行进位方式并行进位方式 并行加法器不同进位方式的依据:并行加法器不同进位方式的依据:回忆回忆FAFA逻辑表达式逻辑表达式Ci+1=AiBi+Ci+1=AiBi+(Ai Ai Bi Bi)CiCi,现,现将其分成两部分考虑。将其分成两部分考虑。1 1、AiBiAiBi:它与:它与CiCi无关,常记无关,常记为为Gi=AiBiGi=AiBi,叫做,叫做“本地进位本地进位”或或“生成进位生成进位”。2 2、(、(Ai Ai Bi Bi)CiCi:它与:它与CiCi有关,有关,叫做叫做“传送进位传送进位”,而记,而记Pi=Ai Pi=Ai Bi Bi为为“传送条件传送条件”。由上有:由上有:Ci+1=Gi+PiCiCi+1=Gi+PiCi,即,即 C C1 1=G=G0 0+P+P0 0C C0 0 C C2 2=G=G1 1+P+P1 1C C1 1 C C3 3=G=G2 2+P+P2 2C C2 2 .第44页,本讲稿共86页(二)、并行加法器及其进位链二)、并行加法器及其进位链 并行加法器并行加法器:使用的全加器的位数与操作数的位数相同使用的全加器的位数与操作数的位数相同,能能同时对操作数的各位进行相加。同时对操作数的各位进行相加。进位链进位链:进位传递逻辑进位传递逻辑,分为串行和并行进位两种。分为串行和并行进位两种。1.1.基本进位公式基本进位公式 设相加的两个操作数为设相加的两个操作数为:A=A n-1 A n-2 AiA0 A=A n-1 A n-2 AiA0 B=B n-1 B n-2BiB0 B=B n-1 B n-2BiB0 则进位信号的逻辑式为则进位信号的逻辑式为 C i+1=AiBi+(Ai C i+1=AiBi+(Ai Bi)Ci=Gi+PiCi Bi)Ci=Gi+PiCi Gi=Ai Bi Gi=Ai Bi Pi=Ai Pi=Ai Bi Bi 其中其中,Pi Pi称为进位传递函数称为进位传递函数,GiGi称为进位产生函数称为进位产生函数。第45页,本讲稿共86页2.2.串行进位的并行加法器串行进位的并行加法器串行进位的并行加法器:串行进位的并行加法器:将将n n个全加器串接起来个全加器串接起来,可以进行两个可以进行两个n n位数相加。其中的进位是逐级形位数相加。其中的进位是逐级形成的成的,每一级的进位直接依赖于前一级的进位每一级的进位直接依赖于前一级的进位.串串行进位的逻辑表达式为行进位的逻辑表达式为:C1=A C1=A0 0B B0 0+(A+(A0 0 B B0 0)C)C0 0=G=G0 0+P+P0 0C C0 0 C2=A C2=A1 1B B1 1+(A+(A1 1 B B1 1)C)C1 1=G=G1 1+P+P1 1C C1 1 Cn=A Cn=A n-1 n-1 B B n-1n-1+(A +(A n-1n-1 B B n-1n-1)C)C n-1n-1=G=G n-1n-1+P +P n-1 n-1 C C n-1 n-1 可见,串行进位的进位输出信号可见,串行进位的进位输出信号CiCi与低位的进位与低位的进位信号有关信号有关,所以造成延迟时间较长。所以造成延迟时间较长。第46页,本讲稿共86页例例:行波(串行)进位的补码加法行波(串行)进位的补码加法/减法器减法器:可由可由n个一位的全加器个一位的全加器(FA)联成一个联成一个n位的行波进位并行加减器位的行波进位并行加减器.M为方式控制输入线为方式控制输入线,当当M=0时时,做加法做加法(A+B)运算运算;当当M=1时时,做减法做减法(A-B)运算运算,此时此时,A-B运算运算化为化为A补补+-B补补运算运算,-B B 补补用用B B补补包括符号位包括符号位“取反末位加取反末位加1”1”来实现来实现.另外另外,采用单符号位法采用单符号位法2 2的溢出检测逻辑的溢出检测逻辑:V=C:V=Cn n C Cn-1n-1,其其中中,C,Cn n为符号位为符号位,C,Cn-1n-1为最高有效位产生的进位为最高有效位产生的进位=1FAFAFAFA=1=1=1=1.V溢出Sn-1Sn-2S1S0C0C1C2Cn-2Cn-1CnBn-1An-1Bn-2An-2B1A1B0A0方式控制线M=0 加M=1 减+第47页,本讲稿共86页3.3.并行进位(先行进位、同时进位)的并行加法器并行进位(先行进位、同时进位)的并行加法器并行进位的并行加法器:并行进位的并行加法器:为提高加法器的运算速度为提高加法器的运算速度,必须解决必须解决进位信号的产生和传递问题进位信号的产生和传递问题.将串行进位链改变形式将串行进位链改变形式,使各进使各进位信号的产生不再与低位的进位信号有关位信号的产生不再与低位的进位信号有关,而只与两个参加而只与两个参加运算的数和运算的数和C C0 0有关有关.各级进位信号同时生成各级进位信号同时生成,并行进位的逻辑表达式为,并行进位的逻辑表达式为:C1=A0B0+(A0 B0)C0=G0+P0C0 C2=G1+P1C1=G1+P1(G0+P0C0)C i+1=Gi+PiCi=Gi+PiGi-1+PiPi-1G i-2+PiP i-1 P i-2P0C0 Cn=G n-1+P n-1 C n-1=G n-1+P n-1G n-2+P n-1P n-2G i-3+P n-1 P n-2 P n-3P0C0以四位并行加法器为例,看其内部结构:以四位并行加法器为例,看其内部结构:第48页,本讲稿共86页&11&异或或或或或&C4 C3 C2 C1 GiAi BiPiAi BiG3 P3 G2 P2 G1 P1 G0 P01四位并行进位线路:产生四位并行进位线路:产生C4C1C4C1的延时相同,的延时相同,故称并行进位(同时进位)。故称并行进位(同时进位)。C0第49页,本讲稿共86页&11或或或或&C4 C3 C2 C1 G3 P3 G2 P2 G1 P1 G0 P01C0异或异或S3异或异或S2异或异或S1异或异或S0具有并行进位的四位加法器逻辑图:因为进位信号先由具有并行进位的四位加法器逻辑图:因为进位信号先由逻辑线路产生,再送去求和,所以常称为先行进位逻辑线路产生,再送去求和,所以常称为先行进位CLACLA(Carry Look AheadCarry Look Ahead)加法器。)加法器。第50页,本讲稿共86页虽然并行加法器的运算速度快,但是以增加硬