计算机原理第三章运算方法和运算器.ppt
《计算机原理第三章运算方法和运算器.ppt》由会员分享,可在线阅读,更多相关《计算机原理第三章运算方法和运算器.ppt(76页珍藏版)》请在三一办公上搜索。
1、第三章 运算方法和运算器,3.1快速加法器设计,一、全加器全加器有三个输入量:第 i 位的两个操作数 Ai、Bi 和低位送来的进位 Ci;两个输出量:全加和 i 及向高位的进位Ci+1。全加和 i 及进位 Ci+1 的逻辑表达式:,_ _ _ _ _ _ i=AiBiCi+AiBiCi+AiBiCi+AiBiCi=AiBiCi,_ _ _ Ci+1=AiBiCi+AiBiCi+AiBiCi+AiBiCi=AiBi+(AiBi)Ci,二、串行加法器和并行加法器加法器有两种形式:串行加法器和并行加法器。(一)串行加法器,n 位字长的加法器仅有一位全加器,使用移位寄存器从低位到高位串行地提供操作数,
2、分n步进行相加。,(二)并行加法器全加器位数和操作数位数相同,同时对所有位进行求和。三、并行加法器的进位结构进位线路结构分为:串行进位、并行进位,将整个加法器分组(分级),对组内、组间(级间)分别采用串行或并行进位。,(一)对进位公式的分析,Ci+1=AiBi+(AiBi)Ci 进位逻辑表达式设:Gi=AiBi 进位产生函数(Carry Generate Function)Pi=AiBi 进位传递函数(Carry Propagate Function)当Pi=1时,如果低位有进位,本位将产生进位。则:Ci+1=Gi+PiCi,(二)串行进位(行波进位),串行进位的逻辑表达式:,最长进位延迟时间
3、为 4+2.5(n-1)ty,与 n 成正比。,C1=G0+P0C0C2=G1+P1C1C3=G2+P2C2 Cn=Gn-1+Pn-1Cn-1,(三)并行进位(同时进位、先行进位),C1=G0+P0C0C2=G1+P1C1=G1+P1(G0+P0C0)C3=G2+P2C2=G2+P2(G1+P1(G0+P0C0)C4=G3+P3C3=G3+P3(G2+P2(G1+P1(G0+P0C0)展开整理:,C1=G0+P0C0C2=G1+P1G0+P1P0C0C3=G2+P2G1+P2P1G0+P2P1P0C0C4=G3+P3G2+P3P2G1+P3P2P1G0+P3P2P1P0C0,全部进位输出信号仅
4、由进位产生函数 Gi,进位传递函数 Pi 以及最低位进位 C0 决定,与低位进位无关。,因为进位信号同时产生,所以称为并行进位。又称为同时进位或先行进位。(四)组内并行、组间串行的进位结构将n位加法器分成若干个小组,小组采用并行、组间采用串行的进位结构。例:将16位加法器分成4组,每组4位,组内采用并行进位结构,组间采用串行进位结构。,最高进位的形成时间为(4+32)ty=10 ty,如果采用串行进位,最高进位的形成时间为(4+152.5)ty=41.5 ty(五)组内并行、组间并行的进位结构将加法器分成几个小组,每一小组包括几位,采用并行进位结构,小组间也采用并行进位。再引入两个辅助函数 G
5、i*和Pi*;分别称为组进位产生函数和传递函数。Gi*为本小组产生的进位(与低位小组来的进位无关)。,Pi*为小组进位的传递条件(决定于低位小组进位能否传送至高位小组)。,Gi*和Pi*的逻辑表达式:设:G0*=G3+P3G2+P3P2G1+P3P2P1G0G1*=G7+P7G6+P7P6G5+P7P6P5G4G2*=G11+P11G10+P11P10G9+P11P10P9G8G3*=G15+P15G14+P15P14G13+P15P14P13G12P0*=P3P2P1P0 P1*=P7P6P5P4P2*=P11P10P9P8 P3*=P15P14P13P12,小组间产生四个进位,C4、C8、
6、C12和C16。,C4=G0*+P0*C0C8=G1*+P1*G0*+P1*P0*C0C12=G2*+P2*G1*+P2*P1*G0*+P2*P1*P0*C0C16=G3*+P3*G2*+P3*P2*G1*+P3*P2*P1*G0*+P3*P2*P1*P0*C0组间并行进位线路如图7-11(b)所示。当Gi*、Pi*及C0形成后,C4、C8、C12和C16便可同时产生。,C4、C8、C12和C16已由组间进位线路产生,组内并行进位线路不需要再产生这些进位,将其作适当修改,便可产生小组的本地进位Gi*和小组的传送条件Pi*以及小组内的低3位进位(见图3-11(a))。,例:16位加法器采用组内并
7、行、组间并行进位结构的框图,如图7-10所示。进位形成过程如下:从Ai、Bi、C0输入开始:经过4ty形成C1、C2、C3及全部Gi*、Pi*;又经过2.5ty形成C4、C8、C12、和C16;,最后再经 2.5ty 形成二、三、四、小组内的其余进位 C75、C119、C1513。,最长进位形成时间:(4+2.5+2.5)ty=9ty组间串行:(4+32)ty=10ty完全串行:(4+152.5)ty=41.5ty四、组内并行、组间并行进位加法器实例1、SN74181算术逻辑单元,简称ALU,具有组内并行进位链,提供了辅助函数G,P供组间进位链使用。,一位ALU单元:,两个半加器构成全加器。A
8、i,Bi输入由选择控制S0S1S2S3进行控制。第二级半加器的输入由(电位)M控制,选择算术运算所需的低位进位或作逻辑运算。Xi,Yi的设计:Xi、Yi与输入信号Ai、Bi的关系:,_ _ _ _Xi=S3AiBi+S2AiBi _ _ _Yi=S1Bi+S0Bi+Ai,(当S3S2S1S0取不同值时),_Xi选择可以为:1,Ai+Bi,Ai+Bi,Ai可以提供进位传递条件:Pi=Ai+Bi,_Yi选择可以为:0,Ai,AiBi,AiBi可以提供进位产生函数:Gi=AiBi,2、SN74182(先行进位发生器)提供:组间并行进位信号Cn+x,Cn+y,Cn+z_ _大组辅助函数:P,G,例:用
9、SN74181和SN74182组成16位分二级同时进位的加法器。,利用并行进位链74182可产生向高一级进位链提供 _ _辅助函数G*、P*,用于位数更长时,组成第三级并行进位链。,3.2定点加减运算,一、原码加减运算二、补码加减运算(一)两个基本关系式:x+y补=x补+y补(mod M)x-y补=x补+-y补(mod M),由y补求-y补的方法:将y补连同符号位一起求反加1。,注意:求一个数的补码:正数时,补码和原码相同;负数时,对原码除符号位外求反加1。求-y补是对y补包括符号位求反加1。例1 y=-0.0110y补=1.1010-y补=0.0110例2y=0.0111y补=0.0111-
10、y补=1.1001,(二)补码加、减运算规则,参加运算的操作数用补码表示。符号位参加运算。操作码为加运算时,两数直接相加;当操作码为减运算时,将减数连同符号位一起求反加1与被减数相加。运算结果以补码表示。,例1:已知:x=0.1001,y=-0.0110,求 x+y=?,解:x补=0.1001 y补=1.1010 x补 0.1001+y补 1.1010 x+y补 1 0.0011x+y=0.0011,例2:已知:x=-0.1001,y=-0.0101,求 x+y=?,解:x补=1.0111 y补=1.1011 x补 1.0111+y补 1.1011x+y补 1 1.0010 x+y=-0.11
11、10,例3:已知:x=0.1001,y=0.0110,求 x-y=?,解:x补=0.1001 y补=0.0110-y补=1.1010 x补 0.1001+-y补 1.1010 x-y补 1 0.0011x-y=0.0011,例4:已知:x=-0.1001,y=-0.0110,求 x-y=?,解:x补=1.0111 y补=1.1010-y补=0.0110 x补 1.0111+-y补 0.0110 x-y补 1.1101x-y=-0.0011,(三)溢出检测采用双符号位(变形补码)判溢出。,正数:两个符号位均为0;00.x1x2xn,负数:两个符号位均为1;11.x1x2xn溢出判断:两数相加,结
12、果符号位为00、11,表示没溢出;结果符号位为01表示正溢出,为10表示负溢出。如果用 Sn+1、Sn 分别表示最高符号位和第二符号位,则采用变形补码溢出检测电路:OVR=Sn+1Sn,OVR,Sn+1,Sn,三、反码加减运算,反码加减运算的规则:参加运算的操作数用反码表示。符号位参加运算。当操作码为加运算时,两数直接相加;当操作码为减运算时,将减数连同符号位一起求反与被减数相加。如果符号位产生进位,则在末位加1。运算结果用反码表示。,3.3定点乘法运算,一、移位操作1.逻辑移位:只有数码位置的变化,而无数量的变化。左移:低位补0,右移:高位补0。例:A寄存器的初值为 10110101 逻辑右
13、移一位后为 01011010 逻辑左移一位后为 011010102.循环移位:寄存器两端触发器有移位通路,形成闭合的移位环路。,例:A寄存器的初值为 10011001,循环右移一位后为 11001100 循环左移一位后为 001100113.算术移位:数的符号不变而数量发生变化。左移一位将使数值扩大一倍(乘以2)右移一位则使数值缩小一倍(乘以1/2).算术移位规则:(1)正数:原码、补码、反码左右移位时,空位均补入0(符号不变)。,左移一位:0.1100右移一位:0.0011(2)负数:原码:符号位不变(为1),空位补0。例:A寄存器的初值为 1.0110 算术左移一位后为 1.1100 算术
14、右移一位后为 1.0011补码:左移后的空位补0,右移后的空位补1。,左移:|1|1|0,右移:|1|,例:A寄存器初值:0.0110,例:初值:1.1011,左移一位:1.0110右移一位:1.1101反码:移位后的空位补1例:初值:1.1011左移一位:1.0111右移一位:1.1101二、原码一位乘法乘积的符号:为相乘两数符号的异或值,数值部分:为两数绝对值之积。,0.1101)0.1011 1101 1101 0000 1101 0.10001111,例:x=0.1101y=0.1011,计算机计算:将n位乘转化为n次“累加与移位”。每一步只求一位乘数所对应的新部分积,并与原部分积作一
15、次累加,然后移位一次。,乘法步骤:(1)初始化:|被乘数|B,|乘数|C,0A,nCTR。(2)C0=1 时,A+BA。C0=0 时,A+0A。(3)A、C联合右移一位。,(4)CTR-1CTR,若CTR0按(2)、(3)、(4)步骤循环至CTR=0为止。,(5)乘积为2n位,高位在A,低位在C。符号由异或门决定并放在乘积最高位之前。三、补码一位乘法1.补码乘法算法的推导(1)被乘数x符号任意,乘数y符号为正设:x补=xn.xn-1x1.x0 y补=0.yn-1yn-2y1 y0,根据补码定义:,x补=2+x=2n+1+x(mod 2)y补=yx补y补=2n+1y+xy=2(yn-1y1 y0
16、)+xy(mod 2)2(yn-1y1 y0)=2(mod 2)x补y补=2+xy=xy补(mod 2)即:xy补=x补y补=x补 y=x补(0.yn-1y1 y0)(2)被乘数x符号任意,乘数y符号为负x补=xn.xn-1xn-2x0,y补=1.yn-1y1 y0=2+y(mod 2),y=y补-2=1.yn-1y1 y0-2=0.yn-1y1 y0-1x y=x(0.yn-1y1 y0)-xxy补=x(0.yn-1y1 y0)-x补=x(0.yn-1y1 y0)补+-x补=x(0.yn-1y1 y0)补-x补=x补(0.yn-1y1 y0)-x补(3)当被乘数x和乘数y符号任意,以补码表示
17、:xy补=x补(0.yn-1y1 y0)-x补yny0:yn=0 不需校正y0:yn=1 需要校正(-x补),2.补码乘法比较法布斯(Booth)乘法,运算法则xy补=x补-yn+yn-12-1+yn-22-2+y02-n=x补-yn+(yn-1-yn-12-1)+(yn-22-1-yn-22-2)+(y02-(n-1)-y02-n)=x补(yn-1-yn)+(yn-2-yn-1)2-1+(y0-y1)2-(n-1)+(0-y0)2-n=x补(yn-1-yn)+2-1(x补(yn-2-yn-1)+2-1(x补(yn-3-yn-2)+2-1(x补(y0-y1)+2-1(x补(y-1-y0)设:(
18、y-1=0),递推公式:,p0补=0p1补=2-1(p0补+(y-1-y0)x补)p2补=2-1(p1补+(y0-y1)x补)pi补=2-1(pi-1补+(yi-2-yi-1)x补)pn补=2-1(pn-1补+(yn-2-yn-1)x补)pn+1补=pn补+(yn-1-yn)x补=xy补,每一步乘法在前次部分积的基础上,根据 yi-2-yi-1(i=1,2n)的值决定对 x补 进行什么操作,然后右移一位,得到新的部分积。重复n步。第n+1步由(yn-1-yn)的值决定对x补的操作但不移位。,Booth算法:参加运算的数用补码表示 符号位参加运算 乘数最低位后面增加一位附加位y-1(初值为0),
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 原理 第三 运算 方法 运算器

链接地址:https://www.31ppt.com/p-6342293.html