您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 其它相关文档 > 运算方法和运算器(5定点运算器的组成)
第二章运算方法和运算器*数据的表示方法*定点和浮点加减运算*定点乘运算*定点除运算*定点运算器的组成2.5.1基本逻辑运算计算机中除了进行加、减、乘、除等基本算术运算外,还可对两个或一个逻辑数进行逻辑运算。逻辑数:是指不带符号的二进制数。逻辑运算主要指逻辑与、或、非、异或四种基本运算。2.5定点运算器的组成2.5定点运算器的组成2.5.2多功能算术/逻辑运算单元一、基本思想仍然以FA为主体介绍的多功能算术/逻辑运算单元(ALU),不仅具有多种算术运算和逻辑运算的功能,而且具有先行进位逻辑,从而能实现高速运算。设相加的两个操作数为:A=An-1An-2…Ai…A0和B=Bn-1Bn-2…Bi…B0基本的一位全加器FA逻辑:Fi=AiBiCiCi+1=AiBi+BiCi+CiAi=AiBi+(AiBi)Ci已经证明1.串行加法器:只用一位全加器来实现对两个数的相加运算特点:速度慢,元器件少,成本低2.并行加法器:(1)串行进位的并行加法器行波进位加法器,采用的是串行进位链:逐级形成各位进位,每一级进位直接依赖于前一级进位,其速度慢的主要原因是进位信号的产生和传递所占用的时间C1=A0B0+(A0B0)C0=G0+P0C0C2=A1B1+(A1B1)C1=G1+P1C1…Cn=An-1Bn-1+(An-1Bn-1)Cn-1=Gn-1+Pn-1Cn-1优点:所用元器件较少缺点:运算时间较长(2)并行进位的并行加法器为提高加法器的运算速度,采用并行进位结构,并行地形成各级进位信号,这种进位链称为并行进位或先行进位,又称为同时进位。并行进位的逻辑表达式为:C1=A0B0+(A0B0)C0=G0+P0C0C2=G1+P1C1=G1+P1(G0+P0C0)…Ci+1=Gi+PiCi=Gi+PiGi-1+PiPi-1Gi-2+…+PiPi-1Pi-2…P0C0…Cn=Gn-1+Pn-1Cn-1=Gn-1+Pn-1Gn-2+Pn-1Pn-2Gi-3+…+Pn-1Pn-2Pn-3…P0C0串行进位:后一级的进位依赖于前一级的进位,Cn=f(Cn-1)并行进位:后一级的进位不依赖于前一级的进位,Cn=f(C0、A0、B0)*组内并行、组间串行的进位链:用四位加法器来实现16位加法器,分为4个小组,每个小组4位(四位加法器),每组内部采用并行进位结构,组间采用串行进位传送结构.(1)小组内并行进位逻辑(第一组的有关进位逻辑)C1=G0+P0C0C2=G1+P1C1=G1+P1G0+P1P0C0C3=G2+P2C2=G2+P2G1+P2P1G0+P2P1P0C0C4=G3+P3C3=G3+P3G2+P3P2G1+P3P2P1G0+P3P2P1P0C0(2)组间串行进位逻辑(第二组的有关进位逻辑)C5=G4+P4C4C6=G5+P5C5=G5+P5G4+P5P4C4…..C1-4=f(G,P,C0)故同时生成C5-8=f(G,P,C4)故滞后于C1-4F15F14F13F12A15-A12B15-B12第二组4-7位……第一组0-3位……第四组12-15位……F11F10F9F8第三组8-11位……A11-A8B11-B8A7-A4B7-B4A3-A0B3-B0F7F6F5F4F3F2F1F0C016位组内并行进位组间串行进位链框图C16C12C8C4优点:进位延迟比纯串行方式短很多缺点:对高位小组而言,各进位信号仍依赖低位小组的最高位进位信号的产生.上图中各个进位的生成顺序图*组内并行、组间并行的进位链仍以16位加法器为例,将加法器分为4个小组,每组包括4位,将进位链分为两级.C1=A0B0+(A0B0)C0=G0+P0C0(1)第一级:小组内并行进位逻辑(第一组的有关进位逻辑)C1=G0+P0C0C2=G1+P1C1=G1+P1G0+P1P0C0C3=G2+P2C2=G2+P2G1+P2P1G0+P2P1P0C0C4=G3+P3C3=G3+P3G2+P3P2G1+P3P2P1G0+P3P2P1P0C0令G0*=G3+P3G2+P3P2G1+P3P2P1G0P0*=P3P2P1P0则:C4=G0*+P0*C0(2)第二级:小组间并行进位逻辑小组间产生的四个进位分别是C4、C8、C12和C16C4=G0*+P0*C0C8=G1*+P1*C4=G1*+P1*(G0*+P0*C0)=G1*+P1*G0*+P1*P0*C0C12=G2*+P2*C8=G2*+P2*G1*+P2*P1*G0*+P2*P1*C0C16=G3*+P3*C12=G3*+P3*G2*+P3*P2*G1*+P3*P2*P1*G0*+P3*P2*P1*P0*C0其中,Gi*与Pi*的逻辑表达式为:G0*=G3+P3G2+P3P2G1+P3P2P1G0P0*=P3P2P1P0G1*=G7+P7G6+P7P6G5+P7P6P5G4P1*=P7P6P5P4G2*=G11+P11G10+P11P10G9+P11P10P9G8P2*=P11P10P9P8G3*=G15+P15G14+P15P14G13+P15P14P13G12P3*=P15P14P13P12仍以16位加法器为例,将加法器分为4个小组,每组包括4位,组内、组间均采用并行进位。组内并行、组间并行的加法器C16C12C8C4F15F12A15-A12B15-B12第二组4-7位……第一组0-3位……第四组12-15位……F11F8第三组8-11位……A11-A8B11-B8A7-A4B7-B4A3-A0B3-B0F7F4F3F0C0组间并行进位链(II级)G3*P3*G2*P2*G1*P1*G0*P0*两级先行进位逻辑中进位生成顺序图2.5定点运算器的组成AiBiFA函数发生器Cn+iFiCn+i+1XiYiS0S1S2S3二、逻辑表达式:了解由Ai、Bi、S0、S1、S2、S3生成Xi、Yi,再由Xi、Yi、Cn+i生成Fi,Cn+i+1的过程。Fi=Xi⊕Yi⊕Cn+iCn+i+1=XiYi+YiCn+i+Cn+iXi2.5定点运算器的组成1、由Ai、Bi、S0、S1、S2、S3生成Xi、YiS0S1AiBiYi00001000110010000110010000101101100011101000110010101001011011000110101110011100S2S3AiBiXi00001000110010100111010010101101101011101000110011101001011111001110111110011100可以写出真值表输入为:Yi(Ai,Bi,S0,S1),Xi(Ai,Bi,S0,S1)。根据上面所列的真值表,化简后可列出Xi和Yi的逻辑表达式进一步化简并代入前面的求和与进位表达式,可得ALU的某一位逻辑表达式如下进位公式可递推2、先行进位逻辑的实现Cn+i+1=XiYi+YiCn+i+XiCn+i=Yi+XiCn+I和前面介绍的先行进位逻辑形式相同。实现现行进位可以参照前面的推导(略)3、M端如何控制算术/逻辑运算的实现M=1、0实现数据位之间(进位)的隔离与联系正逻辑:1高电平0低电平负逻辑:1低电平1高电平比如:低电平时表示有进位高电平时表示无进位X0Y0Cn+1Cn+2Cn+374181ALU算术/逻辑运算功能表2.5.3总线总线是计算机系统各部件间的公共信息通路.1.总线的分类(1)根据总线所处的位置*内部总线:CPU内各部件的连线*外部总线(系统总线):CPU与存储器、I/O系统之间的连线(2)根据总线的逻辑结构来分*单向传送总线*双向传送总线2.总线的组成总线按其功能分为3组:数据线、地址线和控制线.2.5.4定点运算器的基本结构运算器包括ALU、阵列乘除器、寄存器、多路开关、三态缓冲器、数据总线等。内部总线的结构设计思想主要以ALU为核心,考虑各寄存器和ALU之间的数据传送的方便性和快速性而定.运算器一般有以下三种结构形式:1.单总线结构的运算器优点:所有部件都接到同一总线上,控制电路比较简单缺点:CPU的各部件只能分时使用总线,传送操作数的并行性差,速度较慢ABALUGPRSPRGPR:GeneralPurposeRegister通用寄存器SPR:SpecialPurposeRegister专用寄存器单总线2.双总线结构的运算器GPRSPRSPR缓冲器总线1总线2优点:两个操作数可同时加到ALU的两个输入端,加快了运算速度.专用寄存器分两组分别与一条总线交换数据,使数据传送更灵活.优点:ALU的两个输入端分别与两条总线相连,而输出端同第三条总线相连.故ALU的运算可一步完成,执行速度最快.其中总线旁路器的作用是把总线2上的数据不经修改,可直接传送给总线3,无需经过ALUGPRALUSPR总线旁路器总线1总线2总线33.三总线结构的运算器设有两个浮点数x和y,它们分别为:其中Ex和Ey分别为数x和y的阶码,Mx和My为数x和y的尾数。两浮点数进行加法和减法的运算规则是:x±y=(Mx2Ex-Ey±My)2Eyx=2Ex·Mxy=2Ey·My2.6.1浮点加法、减法运算一、步骤说明1、零操作数检查2、对阶3、求和4、规格化、舍入处理5、检查溢出完成浮点加减运算的操作过程大体分为五步:通过尾数的移位使两个浮点数的阶码相同,且应为小阶向大阶看齐。例:20*0.100100+20*0.001101(右移)20*0.11000120*0.100100+2-2*0.110100对阶使二数阶码相同(即小数点位置对齐),这个过程叫作对阶。•先求两数阶码Ex和Ey之差,即△E=Ex-Ey若△E=0,表示Ex=Ey若△E0,ExEy若△E0,ExEy通过尾数的移动来改变Ex或Ey,使其相等.尾数求和方法同定点加减运算。结果规格化当尾数用二进制补码表示时,浮点规格化的定义是尾数M应满足:½=|M|=1对正数而言,有M=00.1??…?对负数而言,有M=11.0??…?左规:若运算结果为00.0?..?或11.1?..?时,需尾数左移(左移一位,阶码减1),称为向左规格化右规:当尾数求和的结果为01.?..?或10.?..?时,即两个符号位不相等,应将尾数运算结果右移一位,阶码加1,称之为向右规格化。结果规格化有六种可能形式(1)00.1XXXX(2)11.0XXXX(3)00.0XXXX(4)11.1XXXX(5)01.XXXXX(6)10.XXXXX分析:(1)、(2)不需规格化操作;(3)、(4)需要“左规”;(5)、(6)需要“右规”。结果舍入对阶或向右规格化时,尾数要向右移位,其低位部分要丢掉,从而造成误差,应进行舍入处理.常用的方法有“截断法”,“末位恒置1法”和“0舍1入法”。而“舍入”是减小误差的一种方法。(1)截断法将予保留的末位数据右面的数据统统地截掉,无论是0还是1(2)末位恒置1法只要有数位移出去,就在末位恒置1。(3)0舍1入法右移出去的最高位为0,直接移出去即可;右移出去的最高位为1,则移出去后末位加1。结果舍入二、实例X=+01;0.1101,Y=+11;-0.1010(n=5)将以上二操作数表示成补码,即:X=001;00.1101,Y=011;11.0110对阶:先求阶差,用减法完成。例中,ΔE=[Ex]补-[Ey]补=[Ex]补+[-Ey]补=001+101=1100∴ExEy,采用小阶向大阶看齐的对阶法:让小阶等于大阶,同时使小阶所对应的浮点数的尾数的右移(阶差的绝对值位)。令Ex´=Ey=011,则Mx´=0.001101,于是对阶结果为[X]补=011;00.0011,[Y]补=011;11.0110求和:对对阶后的尾数进行求和。[X]补+[Y]补=00.0011+11.0110=11.1001,于是求和结果为[X+Y]补=011;11.1001规格化[X+Y]补=011;11.1001,经“左规”成为[X+Y]补=010;11.00101.浮点乘法、除法运算规则设有两个浮点数x和y:X=2Ex·MxY
本文标题:运算方法和运算器(5定点运算器的组成)
链接地址:https://www.777doc.com/doc-1999993 .html