1、单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,*,*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,*,2,.5,定点运算器的组成,2.5.1,逻辑运算,2,.5.2,多功能算术,/,逻辑运算单元,ALU,2,.5.3,内部总线,2.5.4,定点运算器的基本结构,2.5.1,逻辑运算,计算机中除了进行加、减、乘、除等基本算
2、术运算外,还可对两个或一个逻辑数进行逻辑运算。,所谓逻辑数,是指不带符号的二进制数。利用逻辑运算可以进行两个数的比较,或者从某个数中选取某几位等操作。,计算机中的逻辑运算,主要是指,逻辑非,、,逻辑加,、,逻辑乘,、,逻辑异,四种基本运算。,1.,逻辑非运算,逻辑非也称,求反,。如:,1,01001011,2,11110000,求,1,2,。,1,10110100,2,00001111,2.,逻辑加运算按位求它们的“或”,10100001,10011011,求,。,1 0 1 0 0 0 0 1,1 0 0 1 1 0 1 1,1 0 1 1 1 0 1 1,3.,逻辑乘运算按位求它们的“与”
3、10111001,11110011,求,。,1 0 1 1 1 0 0 1,1 1 1 1 0 0 1 1,1 0 1 1 0 0 0 1,4.逻辑异运算,按位求它们的模2和,10101011,11001100,求,。,解:,1 0 1 0 1 0 1 1,1 1 0 0 1 1 0 0,0 1 1 0 0 1 1 1,即,01100111,2,.5.2,多功能算术,/,逻辑运算单元,ALU,多功能算术,/,逻辑运算单元,ALU,,本节介绍的是,74LS181,的基本逻辑结构是先行进位加法器,通过改变其输入端,Ai,和,Bi,来实现算术运算和逻辑运算功能。怎样实现呢?,基本思想:一位全加器,
4、FA,的逻辑表达式:,为了实现多种算术逻辑运算,可将,Ai,和,Bi,输入一个函数发生器(进位传递函数和进位产生函数)得到输出,Xi,和,Yi,,作为一位全加器的输入(见下页图)。,加法器,FA,、减法单元,CAS,和一位,ALU,逻辑图,一位,ALU,逻辑图,ALU,的逻辑图与逻辑表达式,S,0,S,1,Y,i,S,2,S,3,X,i,0,00,11,01 1,0,00,11,01,1,1,XiYi,与控制参数和输入量的关系构造如下真值表,2,.5.2,多功能算术,/,逻辑运算单元,ALU,2,.5.2,多功能算术,/,逻辑运算单元,ALU,1,、可以证明:,Xi+Yi=Xi Xi.Yi=Y
5、i,(自己试试看),2,、,进一步化简得到下式,2,.5.2,多功能算术,/,逻辑运算单元,ALU,ALU,的某一位逻辑表达式见下,:,例如:,S,3,S,2,S,0,S,1,0000,代入:,则可以处理,16,种算术,逻辑运算,每种运算只针对,1,位二进制编码?,思考:如何设计,4,位,ALU,?,16,位呢?,2.5.2,多功能算术,/,逻辑运算单元,ALU,2.5.2,多功能算术,/,逻辑运算单元,ALU,4,位,ALU,问题,1,:片内是串行进位还是并行进位?,回答:由上图结构中可以看出,C,n1,Y,0,X,0,C,n,C,n2,Y,1,X,1,C,n1,C,n3,Y,2,X,2,C
6、n2,C,n4,Y,3,X,3,C,n3,显然是一个串行进位,速度慢,为了实现快速ALU,需加以改进。,2.5.2,多功能算术,/,逻辑运算单元,ALU,上述片内进位采用串行,具有延时长的缺点如何改进?,思考:,Cn,i,与,X,、,Y,有关,而每一位中,X,、,Y,的产生是不是同时的?,由于每一位中X、Y的产生是同时的,则可以由下面方法算出并行进位的C,n4,第0位向第1位的进位公式为,C,n1,Y,0,X,0,C,n,(1),其中C是向第0位(末位)的进位。第1位向第2位的进位公式为,:,C,n2,Y,1,X,1,C,n1,Y,1,Y,0,X,1,X,0,X,1,C,n,(,Cn1,用(
7、1)式代入),第2位向第3位的进位公式为,C,n3,Y,2,X,2,C,n2,Y,2,Y,1,X,1,Y,0,X,1,X,2,X,0,X,1,X,2,C,n,第3位的进位输出(即整个4位运算进位输出)公式为,C,n4,Y,3,X,3,C,n3,Y,3,Y,2,X,3,Y,1,X,2,X,3,Y,0,X,1,X,2,X,3,X,0,X,1,X,2,X,3,C,n,2.5.2,多功能算术,/,逻辑运算单元,ALU,令,G,Y,3,Y,2,X,3,Y,1,X,2,X,3,Y,0,X,1,X,2,X,3,P,X,0,X,1,X,2,X,3,C,n4,G,+,P,*,Cn,G为进位发生输出 P为进位传送
8、输出,增加P和G的目的在于实现多片(组)ALU之间的先行进位,需要配合电路,称为先行进位发生器(CLA),器件:74181,2.5.2,多功能算术,/,逻辑运算单元,ALU,具有正逻辑和负逻辑两种,内部逻辑结构图见下页,74181ALU,逻辑图(,1,),74181ALU,逻辑图(,2,),74181ALU,逻辑,图(,3,),P G,X,3,Y,3,X,2,Y,2,X,1,Y,1,X,0,Y,0,C,0,G,Y,3,Y,2,X,3,Y,1,X,2,X,3,Y,0,X,1,X,2,X,3,P,X,0,X,1,X,2,X,3,74181ALU,逻辑图(总体),2.5.2,多功能算术,/,逻辑运算
9、单元,ALU,算术逻辑运算的实现(,74181,),M=L,时,对进位信号没有影响,做算术运算,M=H,时,进位门被封锁,做逻辑运算,说明:,74181,执行正逻辑输入,/,输出方式的一组算术运算和逻辑运算和负逻辑输入,/,输出方式的一组算术运算和逻辑运算是等效的。,A=B,端可以判断两个数是否相等。,2.5.2,多功能算术,/,逻辑运算单元,ALU,设计,16,位,ALU,C,n+x,=G,0,+P,0,C,n,C,n+y,=G,1,+P,1,C,n+x,C,n+x,=G,2,+P,2,C,n+y,C,n+4,=G,3,+P,3,C,n+z,片内先行进位,片间串行进位,2,.4.3,先行进位
10、ALU,两级先行进位的,ALU,4,片(组)的先行进位逻辑,C,n+x,=G,0,+P,0,C,n,C,n+y,=G,1,+P,1,C,n+x,=G,1,+G,0,P,1,+P,0,P,1,C,n,C,n+x,=G,2,+P,2,C,n+y,=G,2,+G,1,P,2,+G,0,P,1,P,2,+P,0,P,1,P,2,C,n,C,n+4,=G,3,+P,3,C,n+z,=G,3,+G,2,P,3,+G,1,P,2,P,3,+G,0,P,1,P,2,P,3,+P,0,P,1,P,2,P,3,C,n,=G*+P*C,n,G*,为成组先行进位发生输出,P*,为成组先行进位传送输出,成组先行进位部
11、件,CLA,的逻辑图,2,.,5,.,2,先行进位ALU,32,位,ALU,逻辑方框图,2,个,74L182,8,个,4,位,ALU74L181,64,位组间先行进位,ALU,2.5.3,内部总线,内部总线,机器内部各部份数据传送频繁,可以把寄存器间的数据传送通路加以归并,组成总线结构。,分类,所处位置,内部总线(,CPU,内),外部总线(系统总线),逻辑结构,单向传送总线,双向传送总线,图(,2-14,),三态门组成的双向数据总线,由三态门组成的数据总线,2.5.4,定点运算器的基本结构,1,、单总线结构的运算器,2.5.4,定点运算器的基本结构,2,、,双总线结构的运算器,2.5.4,定点
12、运算器的基本结构,3,、三总线结构的运算器,定点运算器的组成,运算器主要由算术逻辑部件,通用寄存器和状态寄存器组成。,算术逻辑部件,ALU(Arithmetic and Logic Unit):,主要完成对二进制信息的定点运算,如:加、减、乘、除、与、或、非、异或、逻辑移位、算术移位等。,通用寄存器:主要用来保存参加运算的操作数和运算的结果。,状态寄存器:用来记录算术、逻辑运算或测试操作的状态结果。一般有零标志位,负标志位,溢出标志位、进位或借位标志位等。,2,.6,浮点运算方法和浮点运算器,2.6.1,浮点加法、减法运算,2.6.2,浮点乘法、除法运算,2.6.3,浮点运算流水线,2.6.4
13、浮点运算器实例,2.6.1,浮点加法、减法运算,1,、,浮点加减运算,设有两个浮点数和,它们分别为,2,E,M,2,E,M,其中,E,和,E,分别为数和的阶码,M,和,M,为数和的尾数。两浮点数进行加法和减法的运算规则是,(M,2,E,E,M,)2,E,,,设,E,0,表示,E,E,;,若,EE,。,当,E,E,时,要通过尾数的移动以改变,E,或,E,使之相等。,解:浮点表示为:,X,浮,=00 010,0.11011011,Y,浮,=00 100,1.01010100,()对阶,原则,:,小阶向大阶,设,E0,表示,E,E,,则移动,y,的尾数,,M,右移,E,位,问题:为什么要小阶向大阶
14、看齐?,阶差=Ex-Ey=00 010-00 100=11 110,即阶差为-2,Mx右移两位,Ex加2,X,浮,=00100,0.00110110(11),+,(2)尾数求和,(),(),(3),规格化和舍入处理,结果的符号位与最高符号数值位相同,应执行左规处理,所谓左规格化的规则,就是尾数左移1位,阶码减1,所以结果为1.00010101(10),阶码为00 011,舍入处理,采用0舍1入法处理,则有,1.0 0 0 1 0 1 0 1,1,1.0 0 0 1 0 1 1 0,判溢出,阶码的符号位为00,不溢出。所以最终的结果为,:,X+Y=2,011,*(-0.11101010),结果规
15、格化,(1)在浮点加减运算时,尾数求和的结果也可以得到,01.,或,10.,即两符号位不等,此时将运算结果右移以实现规格化表示,称为向右规格化。,规则:尾数右移,1,位,阶码加,1,(2),结果是,00.0.01.,或,11.1.10.,时,则向左规格化,规则:尾数左移,1,位,阶码减,1,,直到规格化,右规,阶码加1,左规,阶码减1,例子,中,左规为11.00010101(10),阶码减1为00011,练习:01.1101 10.0001 11.1001,舍入处理(对阶和向右规格化时),就近舍入,(0,舍,1,入,):,类似”四舍五入”,丢弃的最高位为,1,进,1,朝,0,舍入,:,截尾,朝
16、舍入,:,正数多余位不全为”,0”,进,1;,负数,截尾,朝,舍入,:,负数多余位不全为”,0”,进,1;,正数,截尾,溢出判断和处理,阶码上溢,,一般将其认为是,和,。,阶码下溢,则数值为,0,设,1,补,11.01100000,2,补,11.01100001,3,补,11.01101000,4,补,11.01111001,求执行只保留小数点后,4,位有效数字的舍入操作值。,课堂作业,例:,设,X=2,001,*(-0.111),Y=2,010,*0.101,,求,X-Y.(,假设两数均以补码表示,阶码采用3位,尾数采用4位,均包括符号位.),+,(2).尾数求差:-,Y,补,=1.011
17、1.1 0 0(1),1.0 1 1,1 0.1 1 1 (1),丢失,1,两个负数相加,结果为正数,说明产生了溢出.,但是在浮点数的运算中,只有当阶码产生溢出时,才是溢出。此时只是说明尾数的结果为不规格化数,应进行右规。,解:浮点表示为:,X,浮,=001,1.001,Y,浮,=010,0.101,()对阶,E,补=,Ex,补-,Ey,补=001+110=111,即,E,为-1,,X,的阶码小,应使,Mx,右移1位,,Ex,加1,,得:,X,浮,=010,1.100(1),(,3).,规格化和舍入处理,由于结果产生了溢出,应执行右规处理,所谓右规格化的规则,就是尾数右移,1,位,阶码加,1
18、所以结果为,1.011(1),,阶码为,011,舍入处理,采用恒舍法处理,则有尾数为,1.011,(4).,判溢出,阶码不溢出。所以最终的结果为,X+Y=2,011,*(-0.101),2.6.2,浮点乘法和除法运算,设有两个浮点数和:,2,E,M,2,E,M,2,(E,E,),(M,M,),2,(E,E,),(M,M,),乘除运算分为四步,0,操作数检查,阶码加减操作,尾数乘除操作,结果规格化和舍入处理,浮点乘、除法的运算步骤:,浮点数的阶码运算,阶码通常用补码和移码形式表示。对于移码来说:(课本的证明),X+Y,移,=,X,移,+,Y,补,X-Y,移,=,X,移,+-,Y,补,在用移码
19、进行计算时,判断溢出的条件是当结果的最高符号位为1时,则产生了溢出。,2.6.2,浮点乘法和除法运算,2.6.2,浮点乘法和除法运算,移码采用双符号位,为了对溢出进行判断,01,为正,00,为负,10,上溢,11,下溢,011,110,求,移,和,移,并判断是否溢出。,移,01 011,补,00 110,补,11 010,移,移,补,10 001,结果上溢。,移,移,补,00 101,结果正确,为,3,。,浮点数的尾数处理,第一种方法:无条件地丢掉正常尾数最低位之后的全部数值,这种方法称为截断处理。,第二种方法:运算过程中保留右移中移出的若干高位的值,最后按某种规则用这些位上的值修正尾数,这种
20、处理称为舍入处理。,2.6.2,浮点乘法和除法运算,尾数处理,截断,舍入,*,尾数用原码表示时,只要尾数最低为1或者移出位中有1数值位,使最低位置1,0舍1入,*,尾数用补码表示时,丢失的位全为0,不必舍入。,丢失的最高位为0,以后各位不全为0时;或者最高为1,以后各位全为0时,不必舍入。,丢失的最高位为1,以后各位不全为0时,则在尾数的最低位入1的修正操作。,2.6.2,浮点乘法和除法运算,设有浮点数,2,5,0.0110011,2,3,(,0.1110010),阶码用,4,位移码表示,尾数,(,含符号位,),用,8,位补码表示。求,浮。要求用补码完成尾数乘法运算,运算结果尾数保留高,8,位
21、含符号位,),并用尾数低位字长值处理舍入操作。,解,:,移码采用双符号位,尾数补码采用单符号位,则有,M,补,0.0110011,M,补,1.0001110,E,移,01 011,E,补,00 011,E,移,00 011,浮,00 011,0.0110011,浮,01 011,1.0001110,(1),判断操作是否为”,0”,求阶码和,E,E,移,E,移,E,补,00 011,00 011,00 110,值为移码形式,2,。,(2),尾数乘法运算可采用补码阵列乘法器实现,即有,M,补,M,补,0.0110011,补,1.0001110,补 ,1.1010010,1001010,补,(
22、3),规格化处理 乘积的尾数符号位与最高数值位符号相同,不是规格化的数,需要左规,阶码变为,00 101(-3),尾数变为,1.0100101,0010100,。,(4),舍入处理尾数为负数,取尾数高位字长,按舍入规则,舍去低位字长,故尾数为,1.0100101,。,最终相乘结果为,浮,00 101,1.0100101,其真值为,2,3,(,0.1011011),2.6.2,浮点乘法和除法运算,实现的逻辑框图,A,B,尾数相加以,及控制线路,C,C,阶码加法器,M,2.6.3,浮点运算流水线,1,、提高并行性的两个渠道:,空间并行性:增加冗余部件,如增加多操作部件处理机和超标量处理机,时间并
23、行性:改善操作流程如:流水线技术,2.6.3,浮点运算流水线,2,、流水技术原理,在流水线中必须是连续的任务,只有不断的提供任务才能充分发挥流水线的效率,把一个任务分解为几个有联系的子任务。每个子任务由一个专门的功能部件实现,在流水线中的每个功能部件之后都要有一个缓冲寄存器,或称为锁存器,流水线中各段的时间应该尽量相等,否则将会引起“堵塞”和“断流”的现象,流水线需要有装入时间和排空时间,只有当流水线完全充满时,才能充分发挥效率,流水线原理,设过程段,S,i,所需的时间为,i,缓冲寄存器的延时为,l,线性流水线的时钟周期定义为,max,i,l,m,l,流水线处理的频率为,f,1/,。,流水线原
24、理,一个具有,k,级过程段的流水线处理,n,个任务需要的时钟周期数为,T,k,k,(n,1),,,所需要的时间为:,T,T,k,而同时,顺序完成的时间为:,T,nk,k,级线性流水线的加速比:,C,k,TL,nk,Tk k,(n,1),流水线浮点运算器,A,a2,P,B,b2,q,在,4,级流水线加法器中实现上述浮点加法时,分为以下操作:,(1),求阶差,(2),对阶,(3),相加,(4),规格化,2.6.,4,浮点运算器实例,浮点运算器实例,CPU,之外的浮点运算器(数学协处理器)如,80287,完成浮点运算功能,不能单用。,可以和,80386,或,80286,异步并行工作。,高性能的,80
25、位字长的内部结构。有,8,个,80,位字长以堆栈方式管理的寄存器组。,浮点数格式完全符合,IEEE,标准。,CPU,之内的浮点运算器(,486DX,以上),返回,本 章 小 结,一个定点数由符号位和数值域两部分组成。按小数点位置不同,定点数有纯小数和纯整数两种表示方法。,按,IEEE754,标准,一个浮点数由符号位,S,、阶码,E,、尾数,M,三个域组成。其中阶码,E,的值等于指数的真值,e,加上一个固定偏移值。,为了使计算机能直接处理十进制形式的数据,采用两种表示形式:,(1),字符串形式,主要用在非数值计算的应用领域;,(2),压缩的十进制数串形式,用于直接完成十进制数的算术运算。,本
26、章 小 结,数的真值变成机器码时有四种表示方法:原码表示法,反码表示法,补码表示法,移码表示法。其中移码主要用于表示浮点数的阶码,E,,以利于比较两个指数的大小和对阶操作。,字符信息属于符号数据,是处理非数值领域的问题。国际上采用的字符系统是七单位的,ASCII,码。直接使用西文标准键盘输入汉字,进行处理,并显示打印汉字,是一项重大成就。为此要解决汉字的输入编码、汉字内码、字模码等三种不同用途的编码。,本 章 小 结,为运算器构造的简单性,运算方法中算术运算通常采用补码加、减法,原码乘除法或补码乘除法。为了运算器的高速性和控制的简单性,采用了先行进位、阵列乘除法、流水线等并行技术措施。运算方法和运算器是本章的重点。,定点运算器和浮点运算器的结构复杂程度有所不同。早期微型机中浮点运算器放在,CPU,芯片外,随着高密度集成电路技术的发展,现已移至,CPU,内部。,返回,






