《4-3定点乘法运算.ppt》由会员分享,可在线阅读,更多相关《4-3定点乘法运算.ppt(27页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、4-3定点乘法运算v在计算机中实现乘除法运算,根据对运算速度和价格在计算机中实现乘除法运算,根据对运算速度和价格的要求通常有三种方式:的要求通常有三种方式:1)若对运算速度要求不高可用)若对运算速度要求不高可用软件实现软件实现;2)在加减运算电路的基础上在加减运算电路的基础上增加左、右移位及其他一增加左、右移位及其他一些逻辑线路以实现乘除运算,并在机器中设有乘除法些逻辑线路以实现乘除运算,并在机器中设有乘除法指令;指令;3)在要求快速乘除运算的机器中,设置)在要求快速乘除运算的机器中,设置专用的高速阵专用的高速阵列乘除运算器列乘除运算器,指令系统中有相应的乘除法指令,指令系统中有相应的乘除法指
2、令2原码乘法及实现原码乘法及实现v原码乘法的运算规则:原码乘法的运算规则:1)积的符号位由两乘数的符号位异或得到)积的符号位由两乘数的符号位异或得到2)积的原码数值部分由两乘数原码数值部分相乘得到)积的原码数值部分由两乘数原码数值部分相乘得到3)将积的符号与积的数值拼接就得到积的原码)将积的符号与积的数值拼接就得到积的原码3乘法分解为加法和移位操作乘法分解为加法和移位操作v例:求例:求(1101)2(1011)2的手算式的手算式110110111101110111010000Xy0 20Xy1 21Xy2 22Xy3 230+Xy0 20+Xy1 21+Xy2 22+Xy3 23XY=y3y2
3、y1y0机算与手算的区别:机算与手算的区别:多项相加改为两项逐次累多项相加改为两项逐次累加,只需要普通加法器;加,只需要普通加法器;左移改为右移,只需要左移改为右移,只需要n位加法器;位加法器;乘数乘数Y与积的低与积的低n位共用一位共用一个寄存器,右移后只需判个寄存器,右移后只需判断断y0决定加决定加X或加或加04硬件实现原码乘法硬件实现原码乘法&+X/+0A(部分积部分积)Bn-1B1B0 (乘数乘数y)CF全加器全加器控制门控制门C(被乘数被乘数X)计数器计数器&QRSMUL积积时钟脉冲时钟脉冲右移右移5例:若例:若例:若例:若XX原原原原=0,1101=0,1101,YY原原原原=1,1
4、011=1,1011,求,求,求,求ZZ原原原原=?解:符号:解:符号:Zs=Xs Ys=0 1=1部分积部分积乘乘 数数操作说明操作说明 0 0 0 01 0 1 1Y0=1,+|X|+1 1 0 1 1 1 0 10 0 0 1 11 0 0 0 11+1 1 0 1+1 1 0 1 0 1 1 001 1 0 1 1 0 0 111 1 1 0 0 1 0 001 1 1 1 1 0 0 001 1 1 1 Y0=1,+|X|Y0=1,+|X|1111积高部积高部积低部积低部Z原原=1,10001111Y0计数器计数器01234CF+0 0 0 0 1 0 0 10Y0=0,+006原码
5、两位乘原码两位乘v原码一位乘原码一位乘依据依据Yi 决定操作,原码两位乘每次根据决定操作,原码两位乘每次根据连续两位乘数连续两位乘数Yi+1Yi(=2Yi+1+Yi)决定本次操作决定本次操作vn位数的乘法一般只需位数的乘法一般只需n/2次操作次操作Yi+1 Yi2Yi+1+Yi操作操作0,右移,右移2位位1|X|,右移,右移2位位22|X|,右移,右移2位位33|X|,右移,右移2位位|X|,右移,右移2位,下一步多加位,下一步多加|X|7原码两位乘运算规则原码两位乘运算规则Yi+1 YiCjYi+1 Yi+)Cj操作操作00000 00000+020Cj00001 10101+|X|20Cj
6、01010 00101+|X|20Cj01011 11010+2|X|20Cj10100 01010+2|X|20Cj10101 11111-|X|21Cj11110 01111-|X|21Cj11111 10000+021Cj+3|X|=-|X|+4|X|,即:,即:减减|X|,右移右移2位位,下一步再加下一步再加|X|欠账标志:欠账标志:Cj8原码两位乘法原码两位乘法 例例例例:若若X原原=0,0111111,Y原原=1,0111001,求求Z原原=?解:符号:解:符号:Zs=XsYs=01=1|X|=000,01111112|X|=000,1111110-|X|补补=111,100000
7、1|X|转换为转换为+-|X|补补,所以采用补码加法,所以采用补码加法因为因为2X可能溢出可能溢出,再再+|X|又可能再次溢出又可能再次溢出,故采用故采用3位符号位位符号位|Y|=0数值位增加一位数值位增加一位v注意:运算数是注意:运算数是X、Y的绝对值。的绝对值。v结果结果1,1119例例例例:X:X原原原原=0,0111111,Y=0,0111111,Y原原原原=1,0111001,=1,0111001,求求求求ZZ原原原原1Cj1Cj,221 1 0 0 1 0 01 1 1+|X|10 0 0 1 1 1 0 01 1 1 1 0 0 11 1 10 1 1 1 1 1 1+0 0 0
8、0Cj0Cj,110 1 1 1 0 0 00 0 01 0 0 0 0 0 1+1 1 100 0 0 0 1 1 1 00 0 1 1 1 0 00 0 0-|X|00 1 1 1 0 0 1 1 0 1 0 0 0 1 10 0 00Cj0Cj,220 0 0 1 1 0 10 0 11 1 1 1 1 1 0+0 0 0+2|X|01 1 0 0 1 1 1 00 0 0 1 1 1 10 0 00Cj0Cj,220 1 1 1 1 1 10 0 00 1 1 1 1 1 1+0 0 0+|X|00 0 1 1 1 0 0 10 0 0 0 0 0 00 0 0操作操作Cj乘数乘数Y部
9、分积部分积符号符号积高位积高位积低位积低位最后一步只移一位最后一步只移一位Z原1,111104.3.2 补码乘法运算补码乘法运算Booth法。目标:求法。目标:求XY补补设被乘数设被乘数X、乘数、乘数Y均为均为n+1位的定点小数,位的定点小数,X补补x0.x1x2xn,Y补补y0.y1y2yn。则则Y补补=y020+y121+yn2nvy00(Y0)时,)时,YY补补y020+y121+y n2nv当当y01(Y0)时,)时,Y补补2Y可得可得YY补补2y0+y121+yn2n 2y0 =y020+y121+yn2n两式可合写为:两式可合写为:Y=y020+y121+yn2n11Y=y020+
10、y121+yn-12(n-1)+yn2n =y0 20+y1 20 y1 21+yn-1 2(n-2)yn-12(n-1)+yn2(n-1)yn2n+02n=(y1 y0)20+(y2 y1)21+(yn yn-1)2(n-1)+(0 yn)2nXY补补=(y1 y0)20 X补补 +(y2 y1)21 X补补 +(yn yn-1)2(n-1)X补补+(0 yn)2n X补补上式表明:求上式表明:求XY补补也可以转化为加法和移位也可以转化为加法和移位 2n-1=2n 2n-112Booth乘法操作乘法操作v(yi+1 yi)2i X补补=(yi+1 yi)X补补 2i yi yi+1yi+1-
11、yi操操 作作0 00 11 01 10110部分积部分积+0,1部分积部分积+X补补,1部分积部分积+X补补,1部分积部分积+0,113Booth算法算法vBooth算法描述如下:算法描述如下:1)参加乘法运算的两乘数用补码表示,乘积也是补码)参加乘法运算的两乘数用补码表示,乘积也是补码2)符号位参与运算,无须单独处理)符号位参与运算,无须单独处理3)乘数最低位后附加一位)乘数最低位后附加一位yn+1,初值为,初值为04)判断)判断ynyn+1,决定,决定+X补补或或+-X补补或或+05)部分积)部分积算术右移算术右移一位一位6)重复)重复4、5步骤,共需做步骤,共需做n+1次累加,次累加,
12、n次移位,第次移位,第n+1次不移位。次不移位。14Booth乘法原理框图乘法原理框图zf1 zf2 A zfnyf B yn yn+1Xf1 xf2 C xfn计数器计数器 CR加法器加法器右移右移C C&ynyn+1&ynyn+11&1001(被乘数被乘数X)(乘数乘数Y)(部分积部分积)15+X补补不移位不移位1 1 1 0 11 0 1 1 1 1 0 1 1 0+-X补补01 1 1 0 10 0 0 0 1+0,1+0,101 1 0 1 00 0 0 1 1110 0 1 1 10 1 0 1 0+11 0 1 0 01 1 1 0 1+0,1+0,110 1 0 0 11 1
13、0 1 1111 0 1 1 01 0 1 1 0+-X补补01 0 0 1 1 0 0 0 0 0操作操作附加位附加位乘数乘数部分积部分积XY补补=1.01111110例:已知例:已知例:已知例:已知XX补补补补=0.1010=0.1010,YY补补补补=1.0011=1.0011,用,用,用,用BoothBooth法求法求法求法求XYXY补补补补解:解:解:解:-X-X补补补补=1.0110=1.0110计数器计数器012345是否需要双符号位?是否需要双符号位?16补码两位乘补码两位乘v将比较将比较Yi-1Yi的状态与比较的状态与比较YiYi+1的状态所执行的运算合成一的状态所执行的运算
14、合成一步步2(Yi Yi-1)+(Yi+1Yi)=Yi+1+Yi 2Yi-1Yi-1YiYi+1Yi+Yi+1 2Yi-1操作操作0 0 00+0,20 0 11+X补补,20 1 0 1+X补补,20 1 12+2X补补,21 0 0-2+2-X补补,21 0 1-1+-X补补,21 1 0-1+-X补补,21 1 10+0,2对照:补码一位乘法对照:补码一位乘法17v例:已知例:已知X补补=0,0110011,Y补补=1,1001110,用补,用补码两位乘求码两位乘求XY补补v解:解:-X补补 =11,10011012-X补补=11,00110102X补补 =00,0110011因为因为2
15、X可能溢出,故可能溢出,故采用双符号位采用双符号位19例例例例:X:X补补补补=0,0110011,Y=0,0110011,Y补补补补=1,1001110,=1,1001110,求求求求XYXY补补补补10 0 0 1 0 1 0 11 1 0 1 1 0 0 1 111 0 1 1 0 0 01 11 0 0 1 1 0 1+1 1+-X补00 0 1 0 1 0 1 10 0 0 1 0 1 10 020 1 0 1 1 0 00 00 1 1 0 0 1 1+0 0+X补11 0 1 0 1 1 0 01 1 1 1 0 0 11 1+0,211 0 1 1 0 0 1 11 1 0 0
16、 1 1 01 120 0 1 1 0 1 01 10 0 1 1 0 1 0+1 1+2-X补01 1 0 0 1 1 1 00 0 0 0 0 0 00 0操作操作附加位附加位乘数乘数部分积部分积Z补补=1,110204.3.3 阵列乘法器阵列乘法器随着大规模集成电路的迅速发展以及硬件价格的降随着大规模集成电路的迅速发展以及硬件价格的降低,出现了多种阵列乘法组件,目的就是利用硬件的低,出现了多种阵列乘法组件,目的就是利用硬件的叠加方法或流水处理的方法来提高乘法运算速度。叠加方法或流水处理的方法来提高乘法运算速度。设设A=a3a2a1a0,Bb3b2b1b0,AB手算式:手算式:21阵列乘法
17、器阵列乘法器基本思想:基本思想:位积位积ajbi可用与门产生可用与门产生 设计加法网络,将多项位积设计加法网络,将多项位积一次求和一次求和22进位传递进位传递进位传递进位传递CPA(Carry Propagate Adder)CPA(Carry Propagate Adder)的加法网络的加法网络的加法网络的加法网络第一行加的是第一行加的是0,实际上不,实际上不需要加法器,只用与门即可需要加法器,只用与门即可23nnnn位的乘法位的乘法位的乘法位的乘法,需要需要需要需要n n2 2个与门个与门个与门个与门,n-1n-1个个个个n n位的并行加法器位的并行加法器位的并行加法器位的并行加法器进位传
18、递路径复杂进位传递路径复杂(红线红线,横向、纵,横向、纵向都有),难以实向都有),难以实现完全先行进位现完全先行进位,影响运算速度。影响运算速度。24采用采用采用采用CSA(Carry Save Adder)CSA(Carry Save Adder)进位存储的加法网络进位存储的加法网络进位存储的加法网络进位存储的加法网络基本思想:进位信息基本思想:进位信息不向同级传递,而是不向同级传递,而是暂时保存下来,留待暂时保存下来,留待下一级加法器处理。下一级加法器处理。斜向的加法单元斜向的加法单元设计成先行进位设计成先行进位的并行加法器的并行加法器25作业作业v4.6(2)v4.926谢谢大家!结结 语语